Driving Business Decisions using IBM Operational Decision Manager (ODM)
- Posted by youssef El-Gabry
- On October 30, 2023
Does your project have tons of business rules that are usually eligible for a lot of modifications and expansion? IBM Organizational Decision Manager (ODM) is your saver, and in this article, we will discuss the benefits of using this tool.
First of all, ODM has 3 main components:
• Rule Designer: For developers.
• Rule Execution Server: Developers use for deployment.
• Decision Center: For stakeholders and developers.
First, we are going to talk about Rule Designer and how it eases the implementation and raises productivity for the developer by providing a way to write rules in English instead of the variables defined in the Java class.
For an example, let’s say that we want to enroll a student to a specific school and in order to be accepted, his/her parents need to satisfy a specific criteria (monthly salary and job title etc.). So instead of making many lines of code using IF statements we make and ODM Service.
ODM Service
Takes parents data as an input then decide whether the student is accepted or not using Decision Tables and Action Rules.
Note: Decision Tables and Action Rules can be used inside Rule Flow.
Variable Set
In our example we have the parent class and the student class which will be used in the variable set as input and output for our service.
We declare these classes using java code in a folder called XOM. Then these classes are converted to another folder called BOM in which these classes are declared using English verbalization.
The example below shows the verbalization of how you can perform action on or navigate to the job title of the parent.
Rule Flow
Manages the flow of Action Rules and Decision Tables within an ODM Service.
Action Rules
Contains only one IF statement and also written in English.
Check Parent Salary Example:
Decision Tables
You can consider it as criteria with each row representing an IF condition.
Parent Categorizing Example:
For example: row 10 to 12 is equivalent to the following IF condition:
Decision Operation
It’s a file used in the deployment of a service in which you declare the rule flow of this service and its’ variable set.
Using this Decision Operation, we can generate a file called Ruleset Archive which we will be used in the Rule Execution Server for deployment.
Second, we will talk about the Rule Execution Server and how it used in the deployment of an ODM Service.
RuleApp
Wraps number of Rulesets in a specific folder (in our example it will be called SchoolRuleApp)
Ruleset
Contains the ODM Service we just developed using the Rule Designer (in our example it will be called SchoolRuleSet)
After setting up the Ruleset we generate a WSDL file (you can consider it as an endpoint) by pressing Retrieve HTDS Description File.
This link will then be used for testing your service using SoapUI and then integrate it with your system.
Finally, the Decision Center which is used for small modifications (usually by the stakeholders) like changing a specific rule in a Decision Table or an Action Rule and it also can contain branches for source control and finally these modifications can be deployed using the Decision Center without the need for the Rule Execution Server.
And in order to connect all tools together, IBM offers one more functionality, which is the ability to sync between the Rule Designer and the Decision Centre. For example, if we make a modification to the XOM folder in the Rule Designer, we can simply sync these modifications to the Decision Centre to use the updated XOM folder directly.