Pattern 27 (Complete Multiple Instance Task)
Within a given process instance, multiple instances of a task can be created. The required number of instances is known at design time. These instances are independent of each other and run concurrently. It is necessary to synchronize the instances at completion before any subsequent tasks can be triggered. During the course of execution, it is possible that the task needs to be forcibly completed such that any remaining instances are withdrawn and the thread of control is passed to subsequent tasks.
Run 500 instances of the Protein Test task with distinct samples. One hour after commencement, withdraw all remaining instances and initiate the next task.
This pattern provides a means of finalising a multiple instance task that has not yet completed at any time during its execution such that any remaining instances are withdrawn and the thread of control is immediately passed to subsequent tasks. Any instances which have already completed are unaffected by the cancellation.
There are two variants of this pattern depending on whether the task instances are started sequentially or simultaneously. These scenarios are depicted in Figure 42 and 43. In both cases, transition C corresponds to the multiple instance task, which is executed numinst times. When the complete transition is enabled, any remaining instances of task C that have not already executed are withdrawn, as is the ability to add any additional instances (via the add transition). The subsequent task (illustrated by transition B) is enabled immediately.
Figure 42: Complete multiple instance task pattern (sequential initiation)
Figure 43: Complete multiple instance task pattern (concurrent initiation)
There is one context condition associated with this pattern: only one instance of a multiple instance task can execute at any time.
In order to implement this pattern, an offering also needs to support one of the Multiple Instance patterns that provide synchronization of the task instances at completion (i.e. WCP13 - WCP15). FLOWer provides indirect support for this pattern via the auto-complete condition on dynamic plans which force-completes unfinished plans when the condition evaluates to true however this can only occur when all subplans have completed. Similarly, it also provides deadline support for dynamic plans which ensures that all remaining instances are forced complete once the deadline is reached, however this action causes all subsequent tasks to be force completed as well.
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 demonstrates partial support if there are limitations on when the completion task can be initiated or if the force completion of the remaining instances does not result in subsequent tasks in the process instance being triggered normally.
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.
|Websphere MQ||3.4||-||Not supported. There is no direct support for multiple instance activities.|
|FLOWer||3.51||+/-||A dynamic subplan can have an auto-complete condition can be specified for the subplan based on a variety of conditions however it only completes when all instances have completed. The use of deadlines on a dynamic subplan results in both the remaining instances and all subsequent activities in the process instance being force completed when the deadline is reached.|
|COSA||5.1||-||Multiple instance activities are not supported.|
|iPlanet||3.0||-||No support for multiple instance activities.|
|SAP Workflow||4.6c||-||Not supported. An activity set to "logicaly deleted" is recursively scanned for items that do not yet have the status completed. These work items are then also set to the status "logically deleted". Hence it is not possible to complete the multiple instances still running.|
|FileNet||3.5||-||No inherent support for multiple instance activities.|
|BPEL||1.1||-||No support for multiple activity instances.|
|Websphere Integration Developer||6.0||-||No support for multiple activity instances.|
|Oracle BPEL||10.1.2||-||No support for multiple activity instances.|
|BPMN||1.0||-||Not supported. No means of cancelling remaining MI activity instances.|
|XPDL||2.0||-||Not supported. No means of cancelling remaining MI activity instances.|
|UML ADs||2.0||-||No means of cancelling remaining activity instances once a multiple instance activity has commenced.|
|EPC (implemented by ARIS toolset 6.2)||-||Not supported.|
|jBPM||3.1.4||-||jBPM does not support this pattern.|
|OpenWFE||1.7.3||-||OpenWFE does not support this pattern.|
|Enhydra Shark||2||-||Enhydra Shark does not support this pattern. (The options under Activity Management console, among them "complete activity", are not enabled in the evaluated version of Shark.)|