First look: JBoss Drools grows up, and out
Red Hat's open source rule engine turns full-goose enterprise BRMS, and decision management suite, in Version 5.0Follow @infoworld
Red Hat's JBoss Drools 5.0 -- and its commercial counterpart, JBoss Enterprise BRMS 5.0 -- is a suite of applications that Red Hat refers to as a Business Logic integration Platform. It encompasses the traditional BRMS (business rule management system) functionality of Drools 4.0 and adds BPM (workflow), a constraint solver module, an improved Web-based interface for business users to manage rules, and support for event and temporal rule processing.
Developing an application suite of this breadth is a tall order. BPM (workflow) and BRMS are related but separate technologies, and despite the technical elegance of an integrated solution, a great deal of tooling surrounds each. It's not a trivial exercise to reproduce either toolset, much less pull them together. Other parts of the Drools suite, such as Solver, Fusion, and Guvnor (BRMS) make a great match, and I'm unaware of any other suites bringing these three technologies under one umbrella.
[ JBoss Drools was the InfoWorld Test Center's pick for a 2008 Best of Open Source Software Award. Discover the Best of Open Source Software Award winners in app dev, collaboration, enterprise apps, platforms and middleware, productivity apps, security, and storage. ]
Drools is no longer a simple rules engine, but an application suite. The original rules engine has been renamed Expert and still underpins much of the suite's functionality. Fusion is an enhancement to the rules engine allowing one to write rules about events that occur over time. Flow implements BPM capabilities. Guvnor is the new Web-based rule editor and testing application. Finally there is Solver, an optimization module. More details on each of these follow.
Expert, the rules engine core, received several improvements. First, shadow facts, a mechanism required to keep the engine's internal view of the world consistent with the view from the JVM, have been eliminated, reducing complexity and developer workload. (Previously, without shadow facts, if an object in the JVM were to modify a fact in working memory and fail to tell the rule engine, the rules depending on that fact would not be fired.) The ability to dynamically declare facts at runtime makes it easier to write rules and allows for the definition of Business Object Models via XML schemas (XSD).
Also new is the ability to efficiently serialize working memory sessions, important when managing long-running stateful sessions, such as those often seen in applications of Fusion (covered next). Domain-specific languages (DSLs) also see minor improvements.
These features extend the stable and proven 4.x core rules engine. The API has been refactored to support the remainder of the suite and to further isolate developers from the engine's internal details. The refactoring also cleans up a few inconsistencies and makes the API a bit more coherent. While extensive, the changes should not present a challenge to any developer familiar with Version 4.0, and backward compatibility is maintained. Another welcome improvement is the ability to have multiple runtimes in the Eclipse interface, allowing developers to maintain legacy 4.x projects, while simultaneously working with projects using 5.x runtime JARs.
Performance of the engine is slightly slower than with Version 4.0, likely a result of the rule compiler and API refactoring. This will probably improve in subsequent versions, and the differences in speed are minor.
The new Guvnor is a browser-based application that allows business users to author, update, and test changes to business rules. Scenarios (shown here) allow regression testing of proposed changes.