Pattern 40 (Data-Based Routing)

FLASH animation of Data-based Routing pattern

Description

Data-based routing provides the ability to alter the control-flow within a case based on the evaluation of data-based expressions. A data-based routing expression is associated with each outgoing arc of an OR-split or XOR-split. It can be composed of any data-values, expressions and functions available in the process environment providing it can be evaluated at the time the split construct with which it is associated completes. Depending on whether the construct is an XOR-split or OR-split, a mechanism is available to select one or several outgoing arcs to which the thread of control should be passed based on the evaluation of the expressions associated with the arcs.

Example

If alert is red then execute the Inform Fire Crew task after the Handle Alert task otherwise run the Identify False Trigger task.

Motivation

Data-based Routing is a variant of the Exclusive Choice and Multi-Choice patterns (WCP4, WCP6) in the control-flow perspective which requires that the selection mechanism for evaluation of the pattern be based on data-based expressions evaluated using data elements available within the context of the process instance (footnote 14).

Overview

This pattern aggregates two control-flow patterns:

  • Exclusive Choice - where control flow is passed to precisely one of several subsequent tasks based on the evaluation of a data-based expression associated with each of the outgoing branches.
  • Multi-Choice - where, depending on the outcome of a decision or the value of an expression based on data elements, control flow is passed to several subsequent task instances.

Figure 25 illustrates data-based routing expressions as conditions associated with the control-flow branches from one task to another. These expressions can utilize task-level data passed from the completing task as well as any other data elements that are accessible to the task. In the example shown, task C will be triggered once A completes (as the value of data element M is greater than 3.0), task D will not and task B may be triggered depending on the value of data element R that is passed from A.

Figure 25: Data-based routing

Figure 25: Data-based routing

Context

There is one context condition associated with this pattern: the mechanism that evaluates the Data-based Routing is able to access any required data elements when determining which of the outgoing branches the thread of control should be passed.

Implementation

Both the Executive Choice and Multi-Choice variants of this construct are supported by WebSphere MQ, COSA, iPlanet, XPDL, BPEL, BPMN and UML 2.0 ADs. Staffware and FLOWer only support the Exclusive Choice pattern.

Issues

None identified.

Solutions

N/A.

Evaluation Criteria

Full support for this pattern is demonstrated by any offering which provides a construct which satisfies the description when used in a context satisfying the context assumption. It rates as partial support if only one variant of the pattern is supported.

Product Evaluation

To achieve a + rating (direct support) or a +/- rating (partial support) the product should satisfy the corresponding evaluation criterion of the pattern. Otherwise a - rating (no support) is assigned.

Product/Language

Version

Score

Motivation

Staffware 9 +/- Only exclusive choice supported
Websphere MQ Workflow 3.4 + Directly supported via transition conditions and start conditions
FLOWer 3.0 +/- Choices can depend on data but only exclusive choice supported
COSA 4.2 + Supported by conditions on input and output arcs. Both exclusive choice and multi-choice supported
XPDL 1.0 + Through transition conditions and transition restrictions. Both exclusive choice and multi-choice supported
BPEL4WS 1.1 + Both exclusive choice and multi-choice supported
BPMN 1.0 + Supported, as Condition Expressions are possible to specify for Sequence Flows
UML 2.0 + Supported via the DecisionNode construct and guard conditions on ActivityEdges.
Oracle BPEL 10.1.2 + Directly supported via links and <switch>
jBPM 3.1.4 +/- jBPM supports the data-based routing pattern through the Decision Node construct. The support is rated as partial as there is no support for the multi-choice variant of the pattern.
OpenWFE 1.7.3 +/- OpenWFE supports the data-based routing pattern, through the <case> and <if>-then constructs. The support is rated as partial as there is no full support for the multi-choice variant of the pattern.
Enhydra Shark 2 + Enhydra Shark supports this pattern. Both exclusive and multi choice are supported.

Summary of Evaluation

+ Rating

+/- Rating

  1. Any data element accessible at case level can be utilised in a routing construct
  2. Direct workflow support
  3. Support for both exclusive choice and multi-choice constructs
  1. Limited range of data elements can be used in routing constructs
  2. Limited range of routing constructs supported
  3. Programmatic extensions required