Savvion has just updated their BPMS product and the business rules module they released last year (I reviewed the Savvion BRMS previously). Savvion sees various kind of rules as being necessary for process management – data-driven rules, event-driven rules, conditions in processes, data validation rules and form validation rules. Their vision is to make it easy, for instance, to define process conditions without using a BRMS but then also make it easy to bring in a BRMS when necessary. Ease of use for the folks defining and managing a business process is key.
To recap the Savvion BRMS has:
- An IDE for rules definition (that plugs into Eclipse and could be plugged in to an Eclipse installation alone, without the process definition components).
- A rule sheet definition module – this is the core focus today and they call it a decision table
- Support for existing business objects (those driving a process) – a shared component so data is shared between rules and process
- APIs for direct access to the rules such as RMI access to session beans
- A web client
- A repository – sadly they don’t use their existing repository but have a separate one with project-level locking only and no access control
- Scalability, high performance and high availability
Each rule set can be registered with the main environment and then be consumed without having to see the innards, allowing process designers to use rule sets without having to be rule experts themselves. BizRules Adapters are used to allow process designers to bring in rules ruleset by ruleset. Linking multiple rule sets to make a decision is handled (entirely appropriately) using a sub process rather than a distinct decision flow or ruleflow. They have made some progress rolling rules into the same architecture as the process management tools – the Savvion web tier for instance has a BRMS portal where the user can see the rule sets in each rule sheet. The underlying engine is from JBoss Drools so there is DRL underlying each rule sheet. DRL is not a very chatty or user-friendly language but the intent is that users mostly use the rule sheet interface. They have a guided decision table wizard that allows users to pick condition columns and action columns to generate an outline rule sheet. Crucially rules are loaded and executed live based on when they are called not based on when process is instantiated. This loose coupling of rules and process is critical as it allows rules to change when they need to and not be tied to an update of the process.
As I said before, Savvion has made some good architectural decisions (allowing rules to be deployed and accessed outside of processes, loose coupling, integrated portals) and has the beginnings of a nice product. I would like to see some support for rule validation (there is nothing yet to detect overlaps or gaps for instance, though rules are syntax checked), impact analysis and an integrated repository and I hope to see some of this in future releases.
For those of you interested, Savvion is one of the sponsors of the Business Rules Forum. The Business Rules Forum is a great venue to see all the leading rules vendors and hear some great speakers. I am the track chair for the decisioning topics and will be giving a tutorial and a keynote. Hope to see you there.