Pattern 11 (Sub-Workflow Decomposition to Block Task)

FLASH animation of Data Interaction - Sub-Workflow Decomposition to Block Task pattern


The ability to pass data elements from the underlying subprocess back to the corresponding block task. Only nominated data elements defined as part of the subprocess are made available to the (parent) block task.


The Determine Optimal Trajectory subprocess passes the coordinates of the launch and target locations and flight plan back to the block task.


At the conclusion of the underlying subprocess, the data elements which have resulted from its execution need to be made available to the block task which called it.


The approaches taken to handling this pattern are essentially the same as those identified for Data Interaction - Block Task to Subprocess Decomposition pattern (WDP-10). Where data elements are passed on an explicit basis, a mapping needs to be specified for each output parameter indicating which data element at block level will receive the relevant output value.


There are no specific context conditions associated with this pattern.


As for the Data Interaction - Block Task to Subprocess Decomposition pattern.


One difficulty that can arise with the implementation of this pattern occurs when there is not a strict correspondence between the data elements returned from the subprocess and the receiving data elements at block task level. E.g. the subprocess returns more data elements than the block task is expecting, possibly as a result of additional data elements being created during its execution.


This problem can be solved in one of two ways. Some offerings such as Staffware support the ability for block tasks to create data elements at block task level for those data items at subprocess level which it has not previously encountered. Other products such as Websphere MQ require a strict mapping to be defined between subprocess and block task data elements to prevent this situation from arising.

Evaluation Criteria

An offering achieves full support if it has a construct that satisfies the description for the pattern. It achieves a partial support rating if it is not possible to limit the range of data elements which are passed from the subprocess to the block task.

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.





Staffware 9 + Indirectly supported via field mappings
Websphere MQ Workflow 3.4 + Facilitated via data containers and source/sink nodes
FLOWer 3.0 +/- As for Pattern 10
COSA 4.2 +/- As for Pattern 10
XPDL 1.0 + As for Pattern 10
BPEL4WS 1.1 - Not supported
BPMN 1.0 + i) Implicit data passing through global shared data is applied when a decomposition is realised via an Embedded Sub-Process. ii) Explicit data passing via parameters is applied when a decomposition is realised through an Independent Sub-Process. In such a case the data-transfer is defined through the Input - and OutputPropertyMaps Expression for the Sub-Process
UML 2.0 + Directly supported by the ExpansionRegion construct (where the ExpansionKind mode is set to parallel).
Oracle BPEL 10.1.2 - Not supported
jBPM 3.1.4 - jBPM does not support this pattern as any attempt for process decomposition defined through the GPD failed.
OpenWFE 1.7.3 + OpenWFE supports data interaction for sub-workflow decomposition through global sheared data.
Enhydra Shark 2 + Enhydra Shark supports data interaction from sub-process decomposition. There are two ways to define a sub-process: through the introduction of a block activity or through the introduction of a sub-flow. A block activity is embedded within the main workflow definition and shares the same global data as it embedding workflow. A subflow is an independent process, which can be invoked by any workflow in the same package. Data is passed to it through parameters.

Summary of Evaluation

+ Rating

+/- Rating

  1. Data elements at sub-workflow level can be passed to or made accessible in the corresponding block task
  1. There are limited facilities for controlling which sub-workflow data elements can be made available to the block task