Abstracting business logic from underlying code into a separate language that business users can understand, a BRMS (Business Rule Management System) puts the control of business applications into the hands of the business owners. An enterprise BRMS, such as ILOG's JRules or Fair Isaac's Blaze Advisor, removes the "impedance mismatch" between the IT department and business analysts, shortcutting the traditionally lengthy software change process and allowing applications to be updated quickly and easily as business requirements dictate.
JRules has always combined good run-time performance and rich rule-management features. In addition to a repository for managing rule sets, JRules provides a shared language -- the BAL (Business Action Language) -- for collaborating on rules. Its GUI allows business analysts to create rules by combining canned phrases and logical operators, and it also gives programmers access to the underlying Java and good debugging capabilities. Version 5.0 brings a substantial performance boost, a more powerful and flexible BAL, performance-monitoring capabilities, and some other nice improvements to an already mature product. Version 5.1, which should be available by the time you read this, will allow users to build and deploy identical rules to JRules' execution server and ILOG's rule engine for Microsoft .Net.
Someday JSR 94 may become the universal rules language we'd all like to see. In the meantime, JRules' BAL at least offers some welcome flexibility. Prior versions of BAL allowed you to express the rules of your application in the lingua franca of your industry. Now, with Version 5.0, BAL goes even further, allowing you to define your own rule language, with the sense of your own verbs, nouns, adjectives, etc.
For example, suppose your insurance company needed to define actions for a given set of circumstances. Using the BAL in JRules 5.0, you could define a complete language composed of rules such as this:
List the applicant first name and the applicant last name and the applicant age For applicants that are high-risk drivers and have a pickup with daytime running lights or driver and passenger airbags
That's about as clear as you can get in a single rule. By allowing you to express rules that are readily understood and easily manipulated by business analysts, JRules 5.0 smoothes the way for faster changes and fewer errors.
However, creating such a custom language isn't easy. It will take a lot of time and effort from your programmers and analysts. But the end results for a large company that wants to make optimal use of both programming and business expertise are well worth the effort.
For programmers, one huge development that's been brewing for about a year is ILOG's Business Rule Studio, an Eclipse plug-in now included with JRules 5.0. Although you can't do J2EE deployment from Studio -- as you can from the regular JRules tools -- Studio allows you to edit files, compile with Ant, maintain source-code control with CVS, and perform all those other tasks you normally do from the Eclipse IDE. And you can set breakpoints and debug rules just like you can in Java or C++.
One benefit all stakeholders will appreciate is the great leap forward in run-time performance. Overall, my Miss Manners 128 benchmark tests on a variety of systems showed JRules 5.0 to be almost 10 times faster than JRules 4.0 or 4.5 when the hash method was turned on; it was still two to three times faster with the hash disabled. As a matter of fact, with the hash enabled, JRules 5.0 performs Miss Manners about twice as fast as OPSJ, the speed demon of rule-based systems. Running the more complex Waltz 50 benchmark, JRules 5.0 proved twice as fast as prior versions but still a long way behind OPSJ. The difference between the benchmark results remained roughly the same, regardless of hardware or operating system (Windows XP, Windows Server 2003, Solaris 9, or Mac OS X). Although these benchmark results provide useful points of reference, you should run your own tests using your own application and data for the most meaningful comparison.
JRules 5.0 includes a few other nice touches and stepwise improvements. New performance reports provide graphical views of various performance parameters, which you can leverage to fine-tune the engine. These reports aren't everything you would desire in application performance monitoring, but they do allow a degree of optimization that was unavailable before. Further, new consistency checking of rules in the rule repository will bring potential "gotchas" to the attention of the user or programmer.
Role-based access to rules and rule sets is now more granular. A conversion utility allows shops to convert rule sets prior to Version 5.0 with as little pain as possible. And, finally, JRules 5.0 greatly expands on ILOG's excellent documentation; I especially liked the Enterprise Integration User's Manual, which discusses (in fair detail and refreshing honesty) almost any architecture, tool, or approach in the Java world today and how it might be used with JRules 5.0.
JRules was already a true enterprise-ready BRMS. Version 5.0 starts with a good product and makes it great, combining rich developer tools, friendly maintenance tools, and fantastic performance on the standard benchmarks.
Blaze Advisor still provides a better all-around set of tools, but JRules is rapidly closing that gap and increasing its lead in performance. ILOG needs only to flesh out the performance reporting tools for a truly complete enterprise product that just can't be beat.