Drools 5.0 Supports Workflow and Event Processing
The latest version of Drools, an open source business logic integration platform, supports workflow and event processing. Drools development team recently announced the release of Drools 5.0 final version. The major shift is that Drools 5.0 focus is on a knowledge oriented system rather than just a rules oriented system. The new version has four modules called Guvnor, Expert, Fusion and Flow.
Guvnor is Drools' web based governance system. It's basically a centralized repository for Drools knowledge bases, with web based GUIs, editors, and tools to aid in the management of large numbers of rules. The developers can use the Guvnor component to store versions of rules, models, functions, processes etc that all relate to the knowledge bases. The module has access controls so domain experts (non programmers) can view and edit rules without being exposed to all the features at once. It also provides the management of the versions and changes to the rules over time.
This is the traditional rules engine. The main elements of Expert module are the Rules Engine and Author. Rules engine supports an asymmetrical Rete implementation for managing the rules. It can also be used for pipeline data automation with handling for data sources like JMS, JAXB, Smooks, XStream and Jxls (Excel). The Author component provides Eclipse IDE based technical authoring with code completion and line debugger features. There is also a DSL sentence templating and Rule Flow authoring support in this module.
Fusion, the event processing module of Drools product, supports Complex Event Processing (CEP), event correlation, sliding time windows and time based constraint features. It also has the following features:
- Asynchronous multi-thread streams
- Temporal reasoning
- Events garbage collection
- Reasoning over absence of events
- Sliding Windows
This is the new workflow engine introduced in Drools 5.0 for orchestrating rules. It allows users to specify their business logic using both rules and processes. It supports new nodes called Timer, which can be used to make the execution of the node to wait for a specific period (with specified initial and repeat delay parameters) and Human Task, which can be used to manage the tasks that need to be executed by human actors. The process engine can be integrated with existing human task component (for example a WS-HumanTask implementation). Swimlanes and assignment rules are also supported.
Some of the other new features in Drools 5.0 release include improved support for persistence (JPA) and transactions (JTA) and Eclipse IDE support includes multiple runtimes where each runtime instance represents a specific release of the Drools project.