Decision engine
The decision engine is designed to optimize the execution performance of your rulesets.
Intermediate code generation is deprecated as of V9.0.0.0. For
more information, see Deprecated and removed features.
Before the deployment of a decision service with the XOM enabled in Decision Center, the rules are compiled by default to executable code (Java™ bytecode). For a decision service that does not have the XOM enabled, Decision Center compiles the rules to intermediate code that requires only a final translation into executable code at run time.
The following features are included with the decision engine:
- Fastpath, sequential, and RetePlus execution modes
- Working memory and agenda features that enable you to store and manipulate application objects
- Agenda that lists and orders the rule instances that are eligible for execution
Workflow for running rules with the decision engine
To run rules with the decision engine, do the following steps:
- Create a rule project to encapsulate the business logic of your legacy applications.
If these applications are based on COBOL, use COBOL management features in Rule Designer (see Designing a BOM for a COBOL model).
- Test the execution of the rules in Rule Designer, which uses the decision engine.
- Deploy the ruleset to the persistence layer:
- For Rule Execution Server, see Deploying business rules.
- For zRule Execution Server for z/OS, see Deploying RuleApps and XOMs
.
- Call the ruleset by using API:
- For Rule Execution Server, see Rule sessions.
- For zRule Execution Server for z/OS, see Adding API calls to a z/OS® client
application
.
In running the rules with Rule Execution Server, the API uses the decision engine.
Compilation and execution
The decision engine compiles rule artifacts into an archive that contains compiled and optimized code that becomes executable when translated to Java bytecode.
Parsing, compiling and optimizing code are demanding tasks when you load a ruleset. Consequently, the ruleset loading in the decision engine is fast because no code is parsed or interpreted at run time. All the code is already compiled (to intermediate code or Java bytecode) and fully optimized for rule execution.
The following figure shows the process of compilation and execution for the decision engine, with or without Java bytecode generation. This process goes through different stages from the initial compilation of rules until the execution of rules.

The following table shows features in the decision engine.
| Feature | Decision engine |
|---|---|
| Rule conversion | The BAL rules are converted to the Advanced Rule Language (ARL). In
Rule Designer, the ARL tab
for BAL rules and decision tables provides a preview of the compilation of the rule. In the BOM editor, you can work directly with ARL to define the BOM-to-XOM mapping for rule projects that are designed for decision engine. You can use IRL in technical rules, ruleflow action tasks, and functions. |
| BigDecimal objects | Doubles are converted to BigDecimal objects by using the following
statement: scoreResponse.cpScore = new
java.math.BigDecimal(Math.exp(value.doubleValue())); |
| Rule and ruleflow compilation | The rules and ruleflow are fully compiled to intermediate code or Java bytecode before deployment. |
| Execution code | The ruleset archive .dsar file consists of binary files that contain execution code for the rules and ruleflows. |