The External Rule Framework

In contrast to the Extension Framework, which provides predefined points (that is, pre- and post-execution) for the modification of behavior of every transaction, the External Rule Framework allows for the customization of core business logic for specific product features.

The External Rule Framework is leveraged in a number of product features serving to externalize key logic that is likely to require customization to meet the needs of the specific business. The survivorship rules for merging two parties into one, for example, is something that is likely to differ from business to business. The remainder of this chapter describes how to use the External Rule Framework and the InfoSphere® MDM external rules.

You can develop external business rules as Java™ classes or as rules to be executed within an external rule engine, such as IBM® Operational Decision Manager. The rules delivered with the product are Java rules, however users can replace any java rule with an equivalent Operational Decision Manager rule by implementing it using the tools.

Rules of both types, Java classes or rule engine rules, may be written and configured to coexist as desired. To determine which method to use for each rule, keep the following considerations in mind:
  • What is the purpose of the rule you are about to implement?
    • Rules that contain business knowledge (eligibility rules, product bundling rules) perform business judgment (suspect processing rules) or produce business event (party lifestyle management, business data corruption detection) may be implemented as either rule engine rules (that is, Operational Decision Manager rules) or as Java rules.
    • Rules that provide the ability to customize transaction processing logic and do not represent business policy or regulation, but are used as a plug-in point should be implemented as Java rules.
  • What is the life cycle of the rule?
    • Rules that have a short life cycle or that change frequently should be developed to be executed by a rules engine.
  • Does the rule need to be accessible to other programs?
    • The rules and data (such as enumerations) executed within a rules engine are not accessible to other programs (for example, consuming Java code). If the rule must be accessible this way, write a Java rule.
  • Consider the type and volume of data that the application would potentially be providing to the rules engine and volume of data the will be provided to the rules within the Rules Engine.
  • What is the skill set of the developers?
    • Developing rules for use by a rules engine requires a different skill set than writing pure Java rules. For example, writing Operational Decision Manager rules requires the creation of a Business Object Model (BOM) in Rules Studio. The BOM is an abstraction of the execution object model (XOM) of the application (for example, InfoSphere MDM) and it must be created using your own vocabulary, terms and needs.