Given a “situation” (either detected as a complex event, or pre-ordained through some business process execution pathway), one is faced with the decision on how to react. The decision can be again pre-ordained (such as the next acitivity in a business process pathway), or defined through some business logic represented in some appropriate form. And appropriate forms for such decision models include decision tables (one of the features upgraded in TIBCO BusinessEvents 4.0′s Decision Manager), and inference rules [*1].
- Inference rules (production rules in an if-then format): rule statements that infer new information or facts from events and data.
- Advantages: declarative; flexible “knowledge” representation; can operate against large amounts of data at runtime without additional control structures; (relatively) common execution semantics in Rete-based rule engines
- Disadvantages: semantics can be difficult to learn versus procedural if-then statements; potential for performance “gotchas”; not easily represented graphically
- Decision tables (business logic in a tabular form)
- Advantages: (relatively) standard visual notation; semantics easy to comprehend; flexible to many execution strategies
- Disadvantages: comprehension in large tables; extensibility may be expensive
The good thing is to have a choice of representation. Traditionally, business users have preferred the decision table format as it is much easier to provide for business control than over declarative rulesets – on the understanding that such business control will typically cost performance and/or flexibility.
However, choosing the right approach for the right use case can have a dramatic affect on performance. Recently one customer reported a 3x speedup and 30% reduction in CPU requirements after a refactoring exercise that replaced some inference rulesets with decision tables in TIBCO BusinessEvents. Food for thought, expecially considering that customer comparisons have shown that the TIBCO inference rule engine is anyway one of the fastest in the industry…
We will cover more on Decision Tables and the new BE4 Decision Manager features in a future article.
 Inference rules are also used in the pattern detection step in CEP (i.e. for situation identification). Event and data patterns represented in production rules using the Rete-type pattern matching algorithm can be very effective – and this is the default, standard event processing paradigm in TIBCO BusinessEvents.