
Release Notes 5.0
March 2008
OpenRules Release 5.0 essentially simplifies rules repository construction and
management and expedites initialization of the OpenRulesEngine.
OpenRules-5 introduces Rule Templates that allow rule designers to
completely hide implementation details of the business rules tables. Rule
templates are regular rules tables that were usually used in previous OpenRules
releases such as this "defineGreeting" rules table:

With OpenRules-5 you may define different tables for summer and winter greetings by extending this table-template with particular rules:
|
Rules summerGreeting extends defineGreeting |
||
|
Hour From |
Hour To |
Set Greeting |
|
0 |
10 |
Good Morning |
|
11 |
18 |
Good Afternoon |
|
19 |
22 |
Good Evening |
|
23 |
24 |
Good Night |
and
|
Rules winterGreeting extends defineGreeting |
||
|
Hour From |
Hour To |
Set Greeting |
|
0 |
11 |
Good Morning |
|
12 |
17 |
Good Afternoon |
|
18 |
22 |
Good Evening |
|
23 |
24 |
Good Night |
Note that Rules tables "summerGreeting" and "winterGreeting" do not contains technical information at all - Java snippets and signature are defined only once and reside in the template-table "defineGreeting". Any regular rule table may serve as a template (or a base table) for other rule tables that extend it - the only requirement is that base and extended tables should have exactly the same condition and action columns. Both vertical and horizontal rule templates are supported.
While the new rules templatization mechanism is simple and intuitive it brings enormous advantages from the business rules management perspective:
- Write
once use many times
- Write rules for one state or country and then use them as a template for all other states/countries
- Changes in the implementation of a rule template are automatically propagated to all rule tables that extend this template
-
Complete separation of business and technical views
- Business people have less to learn (and to be afraid of)
- Technical people have more freedom in rule templates design and maintenance not being afraid to scare their business counterparts by complexity of rules implementation logic
-
By placing
rule templates and rule tables in separate files
you may essentially simplify authorization
control and who-does-what assignments
- Rules repository becomes
smaller and easy to maintain
- Templates allow to avoid a "paste-copy" approach by minimizing the total amount of code and the size of rule tables
-
While
preserving the same structure changes in the
templates and rules could be done independently
-
Expedited
initialization of OpenRulesEngine
- Use of rule templates not only minimizes the total size of rule repositories but contain much less code to be interpreted when OpenRulesEngine downloads all rules for the first time
- Based on the size and design
of the existing rules repositories the gain in
the initialization time could vary from 2 to 5
times
-
Libraries
of rule templates specific for different lines of business
- An ability to create OpenRules template libraries may allow leading organizations in different industries to implement already established business standards such as ACORD for insurances or MISMO for mortgages as a set of Excel-based templates. Even if the library implementers prefers to use their own business models initially they always may change the templates implementation later on without changing the business rules themselves
- A similar model will work
well for OpenRules OEMs who may define and
maintain their rule template libraries in
accordance with their latest business object
models
-
Non-intrusive
approach
- Rule templates are regular rule tables that were always used in OpenRules repositories. They may include concrete rules and be executed as usual
- All rules repositories created before OpenRules-5 will continue to work without problems (just a little bit more efficiently)
OpenRules 5.0 includes a sample project "HelloJavaTemplates" that demonstrate the use of new features. The web site www.openrules.com as well as the online User's Guide have been modified to reflect the changes introduced by OpenRules-5.






