The Decision Model and Notation (DMN) specification is a relatively new standard by OMG (Object Management Group) that aims to do for business rules and business decisions what BPMN (it’s sibling specification) did for business processes: standardize the notation and execution semantics to enable both its use by business users, and the interchange of models between tools from different vendors.
The Drools team has been actively following the specification and the direction it is taking. The team believes that, in accordance with its long time commitment to open standards, it is now time to support the specification and provide a compliant implementation for the benefit of its users.
The specification defines among other things:
- an expression language called FEEL used to express constraints and decisions
- a graphical language to model decision requirements
- a metamodel and runtime semantics for decision models
- an XML-based interchange format for decision models
As part of the investigation, the Drools team implemented a PoC that is now public and available here. The PoC already covers:
- a complete, compliance level 3, FEEL language implementation.
- complete support for the XML-based interchange format for marshalling and unmarshalling.
- A partial implementation of the metamodel and runtime semantics
We expect to have a complete runtime implementation released with Drools 7.0 (expected for Q1/2017).
On a related note, this is also a great opportunity for community involvement. This being a standard implementation, and relatively isolated from other existing components, it is the perfect chance for any community member that wishes to get involved with Drools and open source development to get his/her hands dirty and help bring this specification to life. Contact me on the Drools mailing list or on IRC if you would like to help.
We will publish over the next few weeks several blogs on this subject, with both general explanations about the specification and with details of our plans and our implementation. Bellow you can find a quick Q&A. Feel free to ask additional questions you might have about this subject on the mailing list.
Questions & Answers
1. What DMN version and what compliance level will Drools support?
Drools is implementing DMN version 1.1 support at compliance level 3.
2. Is DMN support integrated with the Drools platform?
Yes, the DMN implementation leverages the whole Drools platform (including, among other things, the deployment model, infrastructure and tooling). DMN models are a first class citizen in the platform and an additional asset that can be included in kjars. DMN models will be supported in the kie-server and decision services exposed via the usual kie-server interfaces.
3. Is Drools DMN integrated with jBPM BPMN?
At the moment of this announcement, the integration is not implemented yet, but we expect it will be fully functional by the time Drools and jBPM 7.0 release (Q1 2017).
4. Will FEEL be a supported dialect for DRL rules?
At the moment this is not clear and requires additional research. While FEEL works well as part of the XML-based interchange format, its syntax (that supports spaces and special characters as part of identifiers) is ambiguous and cannot be easily embedded into another language like DRL. We will discuss this topic further in the upcoming months.