» Overview
» Engagement Models
» ProjectWorks
» SPDMM
» WhiteBox
» iLabs
» Offshore Success
   
   
» Technologies
» Product Design
» Product vs Application
   
   
Application Health
Monitoring System
Rule Engine
Security Framework
RM for Controlling QoS
Application Integration
Framework
SandStorm Peak Load
Tester
OR Mapping Tool
Generic Data Retrieval &
Manipulation Mechanism
MVC for Web Applications
Logging Framework
Java Exception Handling
   
  Home > Processes > iLabs  
 
   

Rule Engine

During the life span of a software application, most of the modification requests are triggered by the change(s) in the business policies of an organization. This typically leads to an undesirable iterative process of policy changes followed by application code changes. If an application can support dynamic modification of its business rules, then the overhead of application modification can be avoided, saving application maintenance cost and effort.

Rule Engine (RE) allows separation of information related to the business rules, or rules in general, pertaining to an organization, from the application code. Business policies are separated in the form of "Business Rule Repository," and kept out of the application code. The changes triggered by policy change can be stopped at the repository level itself.

Rules are defined in Event-Condition-Action format. Application program can invoke the desired rule by sending an event to the RE. An event mainly contains rule name, rule parameters and rule version. For each event, user can specify prioritized list of conditions, every condition has one action, which besides other things, can invoke another rule by generating the appropriate event.

Salient features of the RE are as follows:

- Rules are specified in Java language with the help of an intelligent rule editor. The editor also minimizes the need to know the Java language.

- Full access to Java API- As rules are specified in Java, the rule writer has the option of utilizing full potential of the language and use RE as a dynamic application extender.

- Optimized rule execution speed- Since rule invocation is direct call to Java method, there is no significant overhead during application execution.

- Dynamic rule reload upon rule modification.

- Rule versioning based on string tags and time interval.