Open source rule management

Jess and JBoss Rules reviewed

The code syntax is difficult for most C/C++ or Java or C# programmers to understand. For one thing, the rule syntax must follow that of the current CLIPS incarnation, which is archaic at best. Although Eclipse helps with everything else, it does not put a pretty face on CLIPS syntax. On the plus side, Jess code is much more concise than the equivalent code in JBoss Rules or some other BRMS engines. Some users (including E-Loan) have written an interface that brings a more industry-specific look to the underlying Jess code.

In addition to adding features, Jess has continually improved performance on the standard benchmark tests. It usually runs somewhere between the fastest commercial products and the current freebies. For this review, I tested Jess in two ways, one using internal objects and the other using external Java Beans, which runs a bit slower. On the Manners 128 benchmark (on Windows XP) Jess completed the run in 27 and 38 seconds; JBoss Rules took 21 seconds. On Waltz 50 (on Mac OS X), Jess ran the benchmark in 22 and 32 seconds; JBoss Rules took 25 seconds. Compared with the industry leaders, Jess runs faster or even with standard JRules and several steps behind OPSJ, Blaze Advisor, and optimized JRules. Their times for Manners 128 and Waltz 50 clock in the single digits, even less than a second for OPSJ on Waltz.

Documentation for an open source or shareware product is typically sparse, but not so for Jess. In 2003, Friedman-Hill published a book, Jess In Action: Java Rule-Based Systems that, although based on an earlier version of Jess, is still largely applicable to the current product. Friedman-Hill also maintains an up-to-date online manual, and the Java Docs are quite good. The only thing I found missing was an index for the online material.

Finally, the Jess User Group is probably one of the finest in the world. Friedman-Hill, Jason Morris, and Bob Orchard constantly monitor this group and give answers within 24 hours if not within the hour. Although rapid response is not a guarantee (because this is, after all, a support group, not a contract), I've discovered that these three will usually beat the response times of the Fair Isaac and ILOG technical support groups.

JBoss Rules 3.2

It wasn't until late last year, when JBoss bought Drools (Dynamic Rule Object-Oriented Language System) and hired Drools' project lead, Mark Proctor, that Jess had a real competitor in the open source arena. No longer Drools but JBoss Rules, the software is now in Version 3.2. I must emphasize the exact version number for JBoss Rules because it seems to be changing so quickly and gets so many improvements on a month-to-month basis. For the users, this is a good thing.

Before JBoss came along, the syntax in Drools was almost unreadable in its former XML incarnation, and many of the rulebase essentials were missing: features such as query support, dynamic rules, a truth maintenance system, and even operators such as "and," "or," "not," "nested nots," "exists," "exists with nesting," "for all," "accumulate," "from," and on and on. For JBoss Rules 3.0, chief guru Mark Proctor brought that unreadable XML into an easy-to-use IDE, the exact, same Eclipse 3.2 interface that Jess uses. JBoss even implemented the graphical version of the Rete network -- just like Jess. Compared with Jess code, the JBoss code is easy to read and understand. Most business analysts could learn it in a day's time with a bit of help from their favorite Java programmer.

The XML is still there, of course, and you can use ANTLR (ANother Tool For Language Recognition) to write your own parsing language, similar (but not quite as easy) to what ILOG and Blaze do with their GUIs. On the other hand, the JBoss approach is much more powerful in that you could create a Jess, JRules, Blaze Advisor, or Haley BRMS language, whatever syntax you might need, and donate the code to the JBoss Rules community.

As is Jess, JBoss Rules is being worked on around the world, and so is the documentation. JBoss Rules' worldwide group is mostly programmers who are helping to write the latest version. Jess's worldwide group includes programmers, newbies, students, professors, research scientists - almost anyone who might need help. Jess doesn't encourage highly technical discussion on its list, whereas you find quite a bit of that on the JBoss Rules wiki.

About the only things that JBoss Rules doesn't have that Jess has are fuzzy logic, backward chaining, internal objects, shadow objects, and Dr. Ernest Friedman-Hill -- but they have a good Friedman-Hill look-alike in Mark Proctor. JBoss Rules is also a close match to Jess in performance. Price/performance is pretty darn good too, because JBoss Rules is free.

What does JBoss Rules have that Jess doesn't? It has something like the decision tables in Blaze and JRules. But instead of first creating a spreadsheet-looking GUI and then creating rules in the background, you create a rules template that generates the spreadsheet-looking GUI, and then you fill in the values for the cells. It's a bit clumsy, but it does allow the business user to work in tandem with the programmer.

JBoss Rules 3.2 is a solid, true-blue, Rete-based inference engine with a fairly decent, Eclipse 3.2 developer GUI and debugger. The debugger isn't working exactly right at the moment, but Mark Proctor is working really hard at changing that very soon. Proctor and company are also developing a Rule Server.

Join the newsletter!


Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

More about CA TechnologiesCVSE-LoanIlogInferenceJBossJRulesNASAPLUSRed HatSpeedTandem

Show Comments