Pattern 10 (Arbitrary Cycles)
The ability to represent cycles in a process model that have more than one entry or exit point. It must be possible for individual entry and exit points to be associated with distinct branches.
Unstructured loop, iteration, cycle.
Figure 13 provides an illustration of the pattern with two entry point: p3 and p4.
Figure 13: Arbitrary cycles pattern
The Arbitrary Cycles pattern provides a means of supporting repetition in a process model in an unstructured way without the need for specific looping operators or restrictions on the overall format of the process model.
The only further consideration for this pattern is that the process model is able to support cycles (i.e. it is not block structured).
There are no specific context conditions associated with this pattern.
Staffware, COSA, iPlanet, FileNet, BPMN, XPDL, UML 2.0 ADs and EPCs are all capable of capturing the Arbitrary Cycles pattern. Block structured offerings such as WebSphere MQ, FLOWer, SAP Workflow and BPEL are not able to represent arbitrary process structures.
The unstructured occurrences of the Arbitrary Cycles pattern are difficult to capture in many types of PAIS, particularly those that implement structured process models.
In some situations it is possible to transform process models containing Arbitrary Cycles into structured processes, thus allowing them to be captured in offerings based on structured process models. Further details on the types of process models that can be transformed and the approaches to doing so can be found elsewhere - [KtHB00] and [Kie03].
An offering achieves full support for the pattern if it is able to capture unstructured cycles that have more than one entry and/or exit point.
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||10||+||In general, unstructured loops are supported although there are some syntactical limitations.|
|Websphere MQ||3.4||-||Not supported. Process models are block-structured.|
|FLOWer||3.51||-||Not supported. In fact there are no loops and the language is block structured. Each plan model is directed acyclic graph of nodes representing various plan elements and actions. Iteration is achieved through the sequential subplan and the redo role.|
|COSA||5.1||+||Supported. Any graph structure is allowed.|
|iPlanet||3.0||+||Arbitrary loop structures are able to be represented.|
|SAP Workflow||4.6c||-||SAP workflow models are inherently block structured, i.e. any split corresponds to a join and only structured loops (while/until loops) are possible using the loop step type.|
|FileNet||3.5||+||Directly supported: allows to specify cycles with multiple entry and exit points.|
|BPEL||1.1||-||Not supported. The language is block structured and cannot capture unstructred cycles.|
|Websphere Integration Developer||6.0||-||Not supported. The language is block structured and cannot capture unstructured cycles.|
|Oracle BPEL||10.1.2||-||Not supported. The language is block structured and cannot capture unstructured cycles.|
|BPMN||1.0||+||Unstructured repetition can be directly supported.|
|XPDL||2.0||+||Unstructured repetition can be directly supported.|
|UML ADs||2.0||+||Unstructured cycles can be captured in UML 2.0 ADs.|
|EPC (implemented by ARIS toolset 6.2)||+||Directly supported as there are no limitations on the graph structure.|
|jBPM||3.1.4||+||jBPM allows definitions of arbitrary cycles.|
|OpenWFE||1.7.3||+||OpenWFE supports arbitrary cycles with multiple exit points through the construct of <cursor>.|
|Enhydra Shark||2||+||Enhydra Shark supports arbitrary cycles. A loop can have multiple entrance and exit points.|