As promised when I was blogging from the Object Management Group standards meeting, I caught up with OpenRules recently. OpenRules was founded in 2003 by people who had previously developed a business rules management system. Their immediate focus was on business analysts and on empowering subject matter experts to build business rules with minimal IT involvement. Two things came out of this focus:
- No proprietary “Excel-like” UI: they decided to use Microsoft Excel directly as their rules editing environment
- No proprietary rule language: they built on Java
OpenRules business model is “professional open source” so revenue comes from support and consulting while the product is open sourced. The open source product is downloaded thousands of times per month and the company has been profitable since 2006. The company has remained small, focusing on development, support , and consulting. Their customers include large corporations like Thomson Reuters, Commerzbank, , RBS, and Fiserv, government agencies like IRS and the European Patent Office, health care providers, and many online businesses. OpenRules cooperates with leading research centers such as the Cork Constraint Computation Centre (4C) to develop new components.
OpenRules have added support for finite state machines, predictive analytics and optimization to their Business Rules Management System and now position it as a Decision Management System (a term I prefer).. The product has a repository integrated with the various decision management components.
With OpenRules 6 they implemented the KPI Decision Model approach (there’s a primer on how OpenRules implements the Decision Model on the OpenRules site). KPI Decision Model Rule Families can be typed directly into Excel, laid out with condition and conclusion columns as defined in the approach. OpenRules continues to also support a more compact but less rigorous decision table approach.
The basic approach in OpenRules is to allow business users to manage rules directly in Excel, OpenOffice or Google Docs (allowing collaborative rules management). Rulebooks contain RuleSheets which contain different types of decision tables such as KPI Rule Families. There are special tables that allow a user to define decisions and sub-decisions. Other Excel sheets contain a glossary – a set of fact definitions – and each fact name is linked to a business concept and mapped to a technical attribute name to support implementation. To support testing, other blocks of cells in Excel can be used to define new data types and example records. Finally decision objects are defined that map business concepts to object definitions. All these are different tables managed within multiple Excel Rulebooks that can be located in a local file system, a web server, a database, or can be created dynamically from a custom GUI. Rulebooks can be managed in the OpenRules repository with check-in/check-out and versioning at the Rulebook level. The repository allows advanced searches supported by Excel and related tools but little or no impact analysis in terms of database changes and their impact on rules – users can obviously do a lot in Excel, however, as Excel functionality remains available.
An ability to use Java snippets directly within Excel cells provides rules developers with the power of Java. The good news is this is very flexible and allows standard Java to be used (along with third party packages, if then logic, JDBC access and more) but obviously the bad news is the same – anything can be done in Java! Striking the right balance to keep complexity out of the Excel spreadsheets without writing a lot of code was clearly critical when using OpenRules. To hide Java snippets from business users, a few years ago OpenRules introduced a powerful templatization mechanism that allowed business people to write rules without Java snippets but based on templates created with help of software developers. With OpenRules 6 there is no need for Java snippets: business analysts can use Excel tables to define Decision Models, related Rule Families, and test cases. These Decision Models an be executed and tested directly.
OpenRules also has a Rule Dialog builder (that is being used by the folks at General Intelletics for instance) to build rules-based web questionnaires that capture data based on rules about required data, implications of data entered already etc. Like the rules themselves, everything is defined in Excel sheets. Users generally start with an example and then adapt or edit it. For each rule dialog there is a list of pages, a list of sections and a list of questions – the pages list the sections included and the sections list the questions. Dialogs can also have definitions of which page to go to in various conditions and rules can be defined to hide or show sections/questions, add/remove answers to available answers etc. Excel is used to manage drop downs such as lists of available questions, allowed answers etc. Rule dialog provides templates for page navigation rules, for automatically defining auto-responses based on already entered answers to other questions, for input validation, and more.
The overall environment looks very intuitive for a non technical user (it works just like other Excel spreadsheets) but obviously keeping everything consistent in Excel has challenges once you start editing extensively. Some problems will only show at compile time but there is an Eclipse plug in to allow developers to check an Excel file for errors. The automatically generated rules-based web interface can be deployed to a web server like Tomcat or WebSphere. You can see and download demos such as the 1040EZ application from the OpenRules website.
OpenRules also offer a constrained-based solver for solving complex optimization problems and a rule learner for predictive analytics. I hope to publish an update on this soon.