The dynamic execution object model (XOM) can be generated from native Java™ classes or from XML data. The rule engine accesses XML directly.
The execution object model (XOM) is an object model against which rules are executed. Business rules are written against the Business Object Model (BOM), then translated into the ILOG® Rule Language (IRL) and run against the XOM. The rule engine evaluates the rules against the application objects and executes them when appropriate.
When the rule engine looks for XOM classes, it looks first in the dynamic XOM, then in the Java XOM.
The following diagram shows the mapping between a XOM and Java classes and dynamic classes.
The XOM is represented by the Java class IlrReflect. Instances of this class contain all the classes that are required for the execution of IRL rules.
Consequently, rules can run directly on dynamic data without the data being converted to Java objects.
For native Java classes, the rule engine uses Java type introspection to apply rules directly to the application objects.
The following diagram shows how the rule engine reads XML schemas directly, through an XML driver.
You can define a dynamic XOM in the New Rule Project wizard when you create a rule project, or add it later by using the Rule Project Properties dialog.