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.