Pattern 11 (Sub-Workflow Decomposition to Block Task)
FLASH animation of Data Interaction - Sub-Workflow Decomposition to Block Task pattern
Description
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.
Example
The Determine Optimal Trajectory subprocess passes the coordinates of the launch and target locations and flight plan back to the block task.
Motivation
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.
Overview
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.
Context
There are no specific context conditions associated with this pattern.
Implementation
As for the Data Interaction - Block Task to Subprocess Decomposition pattern.
Issues
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.
Solutions
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.
Product/Language |
Version |
Score |
Motivation |
---|---|---|---|
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 |
---|---|
|
|