Budget-friendly BRMS

Jess and OPSJ require dedicated programmers, but are priced right for smaller shops

For companies struggling to improve responsiveness to changing business conditions, a BRMS (business rule management system) can make all the difference. A BRMS exposes the business logic of complex applications as sets of rules that can be changed more quickly and easily, allowing companies to adjust credit criteria or discounts for gold customers, for example, when the market dictates, instead of when the necessary C or Java programming skills are available.

In the BRMS world, only ILOG’s JRules and Fair Isaac’s Blaze Advisor have all of the features you’d want for a large enterprise deployment. In addition to rich toolsets for developers, these products include easy-to-learn, English-like rule-building languages and a variety of graphical interfaces that ordinary business people can understand and use. In companies that want large numbers of business people, with a variety of different skill sets, involved in configuring the application’s rules — and that are willing to pay a premium for ease of use — either JRules or Blaze Advisor is the way to go.

But JRules and Blaze aren’t the only BRMS products on the planet. While these products have more  bells than you can shake a whistle at, two bare-bones solutions, OPSJ from Production Systems Technologies (PST) and Jess from Sandia National Laboratories, present good alternatives for companies willing to place business rules management in the hands of a few expert coders. OPSJ has won a place in the BRMS landscape by being extremely fast; Jess has gained a foothold by having one of the most active user groups in the world. Although more difficult to use than JRules or Blaze, both offer significantly better performance at a fraction of the price.

Fastest on Earth

OPSJ is without peer in terms of speed, as my tests using the standard Miss Manners and Waltz benchmarks. Because it is a superset of Java, there is no cumbersome API needed to access the engine itself. Further, because the engine takes less than 100KB of memory (156KB on disk), it is easily embedded into almost anything that will use a Java VM (virtual machine). OPSJ does all of this without using threads, thereby making it easy to use in any J2EE application. Another bonus is that the OPSJ language will be familiar to most programmers, giving them programming power directly related to business requirements not available from the other BRMS engines.

OPSJ’s ease of use is enhanced by the fact that it includes nested And/Or clauses as well as flagged Else clauses. The ability to use Else clauses makes many complex rule sets dramatically easier for programmers to express and easier to understand later when trying to implement changes to existing rules. OPSJ also features a “when needed” type of backward chaining. This capability is highly advantageous in solving problems involving large numbers of interdependent conditions, such as medical diagnosis and application configuration.

For rules editing and application development, OPSJ provides an Eclipse plug-in, which allows the user to edit Java, OPSJ, and J2EE files, and a limited, Windows-type debugger. The debuggers in both OPSJ and Jess are not very sophisticated, making it difficult to step through the rules, find objects, or find which rules are associated with which objects.

Unlike Jess, OPSJ does allow you to set break-points and fire subsets of rules. But ultimately, it’s much more difficult in OPSJ — and Jess — to find bugs, optimize ruleflow, and tune performance than it is in JRules or Blaze Advisor.

Linux of BRMS

Jess was developed by Dr. Ernest Friedman-Hill of Sandia Labs as a Java version of CLIPS (C-Language Interface to Production Systems); it even uses the same CLP-suffix type of file. Most CLIPS files are easily ported to Jess, which seems to have been one of the original intentions. And Jess uses a LISP (LISt Processing)-like syntax, which will be familiar to traditional AI programmers who grew up using CLIPS, but is less natural, less adaptable to business logic, and harder to learn than OPSJ code.

Nevertheless, Jess is without doubt one of the most innovative of all of the commercial BRMSes, and what it lacks in ease of use it makes up for in community support. Jess has an extremely active worldwide user group that not only contributes applications and code changes (much like Linux development), but helps Jess users solve mutual problems — everything from beginner nuts-and-bolts issues to sophisticated fuzzy-logic problems. Even the inventor, Dr. Friedman-Hill, usually responds within a few hours and sometimes within a few minutes.

One of the great advantages to Jess is the many third-party add-ons. Two of these are JessWin, a Windows-like editor and debugger, and FuzzyJess, a fuzzy-logic add-on tool. While FuzzyJess documentation does not provide deep Dempster-Schaefer analysis, it does an excellent job of explaining fuzzy logic by example. Although both of these tools could be dramatically improved, they offer Jess users capabilities not available in other BRMSes. Finally, like most BRMSes today, Jess has an extensive API and supports JSR 94, the standard API for Java rule engines.

Jess can be used in either interpreted mode (just like interpreted BASIC, JRules, or Advisor) or embedded as part of a larger Java project. And, like OPSJ, Jess features automatic type backward chaining, using a “when needed” type of clause, and it provides an Eclipse plug-in for easier integrated development.

How to choose between Jess and OPSJ? OPSJ is mind-bogglingly fast and very easy for programmers to understand, but PST is a one-man shop so support can be spotty. While Jess beats JRules and Blaze Advisor on performance, it’s slower than OPSJ, harder to learn, more difficult to implement in a J2EE environment, and harder to scale. Choose OPSJ when performance and ease of use are more important than community support.

Both Jess and OPSJ have a long way to go to become enterprise tools, but their pricing structures make them highly attractive to small commercial users. Similarly, for larger companies who have an on-staff rule-base programmer or two, or who want to explore the benefits of a BRMS before investing in a large-scale system, either would be an excellent choice. But if your company needs graphical interfaces, factory-level support and consulting, and a high-level business language, and it’s willing to pay for them, JRules or Blaze Advisor is the BRMS for you.

InfoWorld Scorecard
Support (10.0%)
Documentation (10.0%)
Ease of use (15.0%)
Scalability (15.0%)
Value (10.0%)
Performance (15.0%)
Developer tools (25.0%)
Overall Score (100%)
Jess 6.1p5 8.0 6.0 5.0 6.0 6.0 8.0 5.0 6.1
OPSJ 6.0 5.0 5.0 6.0 9.0 6.0 10.0 4.0 6.4