IBM has been developing Decision Composer since 2017 and is releasing it as part of its core Business Rules Management System, Operational Decision Manager, in December 2018. Decision Composer is a browser-based tool, currently available on the IBM cloud, that uses a decision model metaphor to design decision logic and deploy it as a decision service. You can think of it as a free, streamlined (and simplified) version of ODM. Decision Composer allows you to define multiple projects, each containing a decision model for a particular decision service. It has components for modeling data, modeling decisions, specifying decision logic (business rules) and testing.
- The design page shows a decision model for the project. Using a subset of the Decision Model and Notation (DMN) format, the design includes Decisions and Input Data shapes that can be linked using Information Requirements or dependencies. The diagram supports the normal kinds of features and layout is automated with a limited number of ways to rearrange things. The result of each decision is defined, using a standard datatype or a type defined for the project.
- From each decision you can access the Decision Logic Editor. This allows you to either edit a decision table or write a business rules. The decision logic is edited in the same language as ODM uses with a natural language-like option (Business Action Language) as well as a tabular decision table. Multiple rules can be written for a single decision or a decision table can be defined. The conditions in the rule or table match to the requirements drawn in the decision model. Decision tables support merged fields, calculated columns, column reordering etc. and provide a description of the rule implied by each row in the table. Overlap and gap checking are provided also. Rules and tables can be controlled through interaction policies, similar to DMN’s hit policies. Supported interactions include sequential, first rule, smallest or greatest value, sum and collect. For example, collect gathers the results of applicable rules as a list.
- Each Input Data represents a Type. The types can be imported from existing data definitions or defined on the fly in the design environment. Types can use the normal data types, can be lists, can have structure, allowed values and restrictions as you would expect. When complex types with multiple fields are defined, the user can determine which specific fields are used by a decision when writing the decision logic.
- A simple test interface is provided to make it easy to submit sample data and confirm results. Multiple test datasets can be defined and saved. Executed rules and their respective input and output values are visible to help understand how the logic was processed.
- Decision projects can be shared with others. The different parties can then collaborate on the same decisions, with simple version control.
New versions can be saved, undo is supported etc.
Decision services can be deployed as REST services in the IBM cloud and using the ODM infrastructure. and the deployed services have well defined signatures. Lazy deployment to IBM Cloud allows you to put the service immediately into production – the code will be deployed the first time someone tries to use the service.
Decision Composer also allows you to import sample projects for a quick start tutorial experience. You can also import an XSD, JSON file, swagger URL (for an existing service) or a Watson Conversation Workspace to create an initial data model, allowing you to rapidly develop decision logic against a known data set.
For those wondering about the differences between ODM and Decision Composer, ODM offers much more scalable execution, more extensive governance and permission management, more robust testing and powerful simulation tools.