A basic rule of technology is that you only get smart results from smart tools. One such "smart tool" is a business rule management system (BRMS) that takes business logic out of procedural code and puts it where it belongs: in the hands of business analysts. A BRMS can extract and isolate business rules from all of the other control code in an application, allowing business analysts to configure the rules (for discount pricing, loan interest rates, insurance premiums, and so on) using simple if-then-else statements and ordinary business language.
Exposing business logic in this way can yield amazing cost benefits. Rules-management systems are especially useful in industries such as banking, mortgage lending, insurance, and telecommunications, where the logic is complex, changes are frequent, and the rules are best left under the control of the business experts.
Of course, putting business rules in the hands of nonprogrammers doesn't take programmers off the hook. Indeed, the main benefit of a BRMS is that, by allowing them to share a rules language they both understand, it facilitates closer communication between the programmer and the analyst, making the job of each much easier. A good BRMS serves two masters, giving the programmer effective tools for creating the rule base and deploying applications, and giving analysts easy-to-use tools for building and changing rules.
For Java applications, ILOG's JRules 4.5 offers all of the bells and whistles that enterprise developers and business analysts require. Improvements from version 4.0, which was introduced in March 2002, include automatic code generation and point-and-click deployment for programmers, and friendlier rule-building tools for business analysts. Version 4.5 also performs better than 4.0, and provides the useful ability to configure role-based access privileges to rule sets and individual rules. (See sidebar, "How I Tested.")
JRules provides the richest set of tools I've seen in a BRMS. Only Blaze Advisor from Fair Isaac rivals JRules' ability to "expose business logic to daylight." OPSJ from Production Systems Technologies and Jess from Sandia National Laboratories deserve honorable mention, but JRules and Blaze are the only rules engines for the Java platform truly geared to enterprise use.
The importance of developer tools for both programmers and business analysts cannot be overestimated. Nontechnical users must be able to determine that business rules have been written correctly. Over the lifetime of a rule-based application, these same business users must be able to modify rules to accommodate changing business processes. JRules has always provided a graphical user interface (GUI) that allows analysts to build rules and programmers to view the underlying code, but until version 4.0 the GUI wasn't very stable.
In version 4.5 the GUI is not only stable, but the Business Action Language (BAL), which the programmer uses to describe an application's objects, attributes, and methods in the lingua franca of the business user, now has all of the features of JRules' underlying rule language. With version 4.5, analysts can do anything in BAL that can be done in the less-accessible JRules syntax. Further, BAL can be extended to include words and phrases common to the industry and company.