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.