In the last post, we discussed how to use different decision tables in an orchestration as a decision flow. In this post, we are using the same bases on the implemented decision tables, but this time we will link them together using a Decision Requirement Diagram.
Decision Requirement Diagram
DRD or Decision Requirement Diagram is a graph model that allows you to define a hierarchical decision. This graph works based on dependencies of nodes and is part of the standard called Decision Model and Notation (DMN). It simply connects multiple decisions (and other type of nodes in the graph) to each other based on their dependencies.
The model shown below is a sample Decision Requirement Diagram (DRD) for calculating a car premium. The “car” and “High theft probability auto list” are the “Input Data” for this DRD:
Dependencies and Implementation
In the above model, the top decision is “Car Premium” which depends on “Base Premium” and “Auto Premium” and then the “Auto Premium” depends on “Car Style Premium” and “Determine Rating” and lastly “Determine Rating” Depends on “Potential Theft Rating” and “Potential Occupant Injury Rating“.
Now each of the Decision nodes (i.e., blue rectangles) and business knowledge nodes (i.e., cross cut green rectangles) can implement the logic using Decision Table, Tree or Sub-tree, Natural Language, and so on.
Hosting as a Service – Decision as a Service
The whole Decision Requirement Diagram (DRD) model can be hosted as a service. This is called Decision as a Service which allows any other applications and/or systems (e.g., BPM) communicate with this DRD by passing the input parameters. Then the DRD will be executed on the server side, and returns the result back to the caller. To publish a DRD as a REST API service, FlexRule Server is used.
Once a DRD is published as a service, all other aspect of it can be managed (i.e., security, permissions and roles, versions, time based scheduling , etc.).
Orchestration of Data and Reusability
A Decision Requirement Diagram (DRD) can be used as part of a flow task. In the following orchestration, “Premium Calculator DRD” is a DRD task that is linked to the above model.
Flow tasks for a DRD allows reusability of the model. This reusability is not only possible via a task in a flow but as a function across all other models.
Conclusion
A Decision Requirement Diagram (or in short, DRD) is a graph model that allows you to model hierarchical decisions using a graph. This enables a higher level communication with stockholders and allows one to approach the decision modeling in an intuitive way, rather than thinking in rules initially and trapping yourself in the big bucket of rules problem.
So next time you start modeling rules, first think of which business decisions you are trying to make, and how those decisions will impact other decisions.
Read More
- Natural Language Business Rules Modeling in DMN
- Assessing Borrowing Capacity Using Decision Automation
- Why Automate Insurance Pricing Model?
- Insurance Premium Calculation
- Import DMN models – XML 1.1
- Boxed Expressions – DMN
- Decision Model and Notation – DMN
- Reusable DRD or Sub DRD in Decision Model and Notation (DMN)
- Decision model and Notation – Policy Example
- Reuse Business Decision as a Function
Last updated October 6th, 2020 at 06:33 am, Published April 21st, 2015 at 06:33 am
CEO and the founder of FlexRule – He is an expert in architecture, design, and implementation of operational decisions, business rules, and process automation. Created Decision-Centric Approach, a methodology that brings People, Data, Rules, and Processes together to automate operational business decisions.
This approach is recognized by Gartner as the missing link to provide business value to organizations.
[…] an enterprise you would need to: 1. A better way of orchestrating decisions – Flow can get really big and hard to maintain 2. Expose the decision as a service with a Web […]
[…] Execute Decision Model and Notation (DMN) and connect external datasource […]
[…] post, we discussed how to orchestrate and link multiple decision table in a flow, and then how to model and execute decisions using DMN (Decision Model and Notation) approach. Now to just remind your, there are multiple different ways […]
[…] this post we are going to call this decision which is host as a […]
[…] to use a server that hosts them as a service. Let’s consider the following decision that we ran the decision previously. To host this as a service, you need to create a package containing this decision and its related […]
[…] Execute Decision Model and Notation (DMN) and connect external datasource […]