XPDL Evaluation Results

Evaluation results for XPDL version 2.0 against the workflow control-flow patterns

Pattern

Rating

Motivation

Sequence + Supported by the transition construct.
Parallel Split +

Supported by the AND-split construct

Synchronization + Supported by the AND-join construct.
Exclusive Choice + Supported by the XOR-split construct.

Simple Merge

+ Supported by the XOR-join construct.
Multi-Choice + Supported by the AND-split construct together with conditions on the outgoing transitions.
Structured Synchronizing Merge + Supported by the OR-join construct.
Multi-Merge + Supported by the XOR-join construct.
Structured Discriminator +/- Although the COMPLEX-join gateway appears to offer support for this pattern, it is unclear how the IncomingCondition expression is specified.
Arbitrary Cycles + Unstructured repetition can be directly supported.
Implicit Termination + Supported by ending every thread with an End Event. When the last token generated by the Start Event is comsumed, the process instance terminates.
Multiple Instances without Synchronization + Supported by spawning off activity instances in a loop.
Multiple Instances with a Priori Design-Time Knowledge + Supported by the multi-instance loop construct.
Multiple Instances with a Priori Run-Time Knowledge + Supported by the multi-instance loop construct where MI_Ordering = parallel.
Multiple Instances without a Priori Run-Time Knowledge - Not supported. There is no means of adding further instances to a multi-instance loop once started.
Deferred Choice + Supported by the XOREVENT-split construct.
Interleaved Parallel Routing - Supported for single activities (but not sequences) by grouping them using the ActivitySet construct with the AdHoc attribute set.
Milestone - Not supported. No concept of state.
Cancel Activity + Supported via an error type trigger attached to the boundary of the activity to be cancelled.
Cancel Case + Directly supported by including the entire process in a transaction. Triggering the cancel end event associated with the transaction will effectively terminate all activities associated with a process instance.
Structured Loop + Both while and repeat loops are supported for individual activities and sub-processes.
Recursion - Not supported. No means of specifying recursive composition with a process model.
Transient Trigger - Not supported. Triggers are supported through durable message events.

Persistent Trigger

+ Supported via message events.
Cancel Region +/- Partially supported by denoting the cancellation region as an activity set in a block activity and associating an error event with the block activity to enable cancellation, however the cancellation region is restricted to a connected subgraph of the overall process model.
Cancel Multiple Instance Activity + Achievable via a MI task which has an error type intermediate event trigger at the boundary. When the MI activity is to be withdrawn, a cancel event is triggered to terminate any remaining MI activities.
Complete Multiple Instance Activity - Not supported. No means of cancelling remaining MI activity instances.
Blocking Discriminator +/- Although the COMPLEX-join gateway appears to offer support for this pattern, it is unclear how the IncomingCondition expression is specified.
Cancelling Discriminator + Supported by including the incoming branches and the OR-join in a subprocess that passes control to the following activity once the first branch has completed as well as cancelling the remaining activities in the sub-process using an error event.
Structured N-out-of-M Join +/- Although the COMPLEX-join gateway appears to offer support for this pattern, it is unclear how the IncomingCondition expression is specified.
Blocking N-out-of-M Join +/- Although the COMPLEX-join gateway appears to offer support for this pattern, it is unclear how the IncomingCondition expression is specified.
Cancelling N-out-of-M Join +/- Although the COMPLEX-join gateway appears to offer support for this pattern, it is unclear how the IncomingCondition expression is specified.
Generalised AND-Join + Supported by the AND-join construct.
Static Partial Join for Multiple Instances +/- Notionally supported via the multi-instance construct where MI Flow_Condition attribute is set to complex and ComplexMI_FlowCondition is an expression that evaluates to true when exactly M instances have completed and passes on a single token to the following activity. However it is unclear how the ComplexMI_FlowCondition is actually specified.
Cancelling Partial Join for Multiple Instances +/- Notionally achievable via a MI task which has an error type intermediate event trigger at the boundary. Immediately after the MI activity is an activity that issues a cancel event to terminate any remaining MI activities. However as for WCP34, it is unclear how the ComplexMI_FlowCondition is actually specified.
Dynamic Partial Join for Multiple Instances - Not supported. There is no means of adding further instances to a multi-instance task once started.
Acyclic Synchronizing Merge - The OR-join gateway assumes it will be used in a structured context.
General Synchronizing Merge - Not supported. No means of assessing whether an OR-join gateway should fire based on a complete state analysis of the process instance.
Critical Section - Not supported. No means of limiting concurrent execution of a set of activities.
Interleaved Routing +/- Indirectly supported via an AdHoc process containing all of the activities to be interleaved with AdHocOrdering set to sequential however it is unclear what the required AdHocCompletionCondition should be to ensure each activity is executed precisely once.
Thread Merge + Directly supported by setting the StartQuantity attribute on activities immediately following the MI activity.
Thread Split + Directly supported by setting the Quantity attribute on the outgoing sequence flow from an activity.
Explicit Termination + Supported via a terminate end event.

Evaluation results for XPDL version 1.0 against the workflow data patterns

Pattern

Rating

Motivation

Task Data - Only workflow processes can have data elements.
Block Data + Supported through the block activity construct
Scope Data - Not supported
Multiple Instance Data + Support for distinct data elements in tasks with shared sub-workflow decompositions.
Case Data + A workflow process can have "data elements". In case of nesting the scope is not 100% clear.
Folder Data - Not supported
Workflow Data +/- It appears that the "data fields" of a package can be used for this. Its not clear how the values can be modified.
Environment Data - No explicit support
Task to Task + All tasks refer to the same data
Block Task to SubWorkflow Decomposition + The element "subflow" provides actual parameters which should be matched by the formal parameters of the corresponding workflow process. This is not defined out in detail, but the intension is clear.
SubWorkflow Decomposition to Block Task + As for Pattern 10
To Multiple Instance Task - No support for multiple instances
From Multiple Instance Task - No support for multiple instances
Case to Case +/- Indirectly achievable via coordinated web services operations in sending and receiving cases.
Task to Environment - Push-Oriented + Data elements can be passed to other web services
Environment to Task - Pull-Oriented + Data can be synchronously required from other web services
Environment to Task - Push-Oriented - Not reported
Task to Environment - Pull-Oriented - Not reported
Case to Environment - Push-Oriented - Not reported
Environment to Case - Pull-Oriented - Not reported
Environment to Case - Push-Oriented - Not reported
Case to Environment - Pull-Oriented - Not reported

Workflow to Environment - Push-Oriented

- Not reported
Environment to Workflow - Pull-Oriented - Not reported
Environment to Workflow - Push-Oriented - Not reported
Workflow to Environment - Pull-Oriented - Not reported
Data Transfer by Value - Incoming +/- Although call by value is the standard mechanism (see Section 7.1.2.0), there is not explicit data passing between activities. However, the element "subflow" provides actual parameters which should be matched by the formal parameters of the corresponding workflow process.
Data Transfer by Value - Outgoing +/- As for Pattern 27
Data Transfer - Copy In/Copy Out +/- As for Pattern 27
Data Transfer by Reference - Unlocked + Directly supported where data is passed implicitly by shared variables
Data Transfer by Reference - With Lock - No support, see Section 7.1.2.1 of WFMC-TC-1025 (Oct. 2002).
Data Transformation - Input - Not mentioned
Data Transformation - Output - Not mentioned
Task Precondition - Data Existence - Not supported
Task Precondition - Data Value + Inclusion of additional edge around task with transition condition that is the negation of required data values allows task to be skipped when values not met.
Task Postcondition - Data Existence - Not supported
Task Postconditon - Data Value - Not supported
Event-Based Task Trigger - Not mentioned
Data-Based Task Trigger - Not supported
Data-Based Routing + Through transition conditions and transition restrictions. Both exclusive choice and multi-choice supported.

Evaluation results for XPDL version 2.0 against the workflow exception handling patterns

Pattern

Explanation

Work Item Failure

SFF-CWC-COM An activity can have Error, Cancel and Compensation triggers defined for it enabling it to respond to errors, cancellation and compensation requests which occur during execution. Once one of these is detected, the thread of control can be passed to an alternative compensation activity (or sequence of activities). The thread of control can be returned to the normal execution sequence at a later stage in the process once the required compensation activity has been completed.
SFF-CWC-NIL An activity can have an empty set of compensation activities.
SFF-RCC-COM As for SFF-CWC-COM except that the compensation activity (or sequence of activities) is concluded with an end event node thus cancelling any other activity in the process that may currently be executing.
SFF-RCC-NIL As for SFF-CWC-NIL except that the compensation is simply an end event node thus cancelling any other activity in the process that may currently be executing without undertaking any form of compensation.

Work Item Deadline

SCE-CWC-COM An activity can have a Deadline associated with it that specifies an alternative activity (or set of activities) that should be undertaken if a deadline is reached before the activity has completed. The ASYNCHR node results in the activity being continued and the alternative (deadline) activity sequence also being initiated.
SCE-CWC-NIL The alternative activity sequence can be empty.
SFF-CWC-COM As for SCE-CWC-COM except the SYNCHR node is specified resulting in the activity on which the deadline is specified being terminated and the alternative activity sequence being initiated.
SFF-CWC-NIL As for SCE-CWC-NIL except the SYNCHR node.
SFF-RCC-COM As for SFF-CWC-COM except that the alternative activity sequence is concluded with an end event node thus cancelling any other activities in the process that may currently be executing.
SFF-RCC-NIL As for SFF-CWC-NIL expect that the compensation is simply an end event node thus cancelling any other activity in the process that may currently be executing without undertaking any form of compensation.

External Trigger

SFF-CWC-COM Message events can be specified for an activity which, when the required message is received, result in the activity being terminated and an alternative sequence of activities being initiated.
SFF-CWC-NIL The alternative activity sequence for a message event can be empty.
SFF-RCC-COM As for SFF-CWC-COM except that the alternative activity sequence is concluded with an end event node thus cancelling any other activities in the process that may currently be executing.
SFF-RCC-NIL As for SFF-CWC-NIL except that the compensation is simply an end event node thus cancelling any other activity in the process that may currently be executing without undertaking any form of compensation.

Constraint Violation

SFF-CWC-COM Trigger rules can be specified for an activity which, when the specified trigger rule evaluates to true, result in the activity being terminated and an alterative sequence of activities being initiated.
SFF-CWC-NIL The alternative activity sequence for a trigger rule can be empty.
SFF-RCC-COM As for SFF-CWC-COM except that the alternative activity sequence is concluded with an end event node thus cancelling any other activities in the process that may currently be executing.
SFF-RCC-NIL As for SFF-CWC-NIL except that the compensation is simply an end event node thus cancelling any other activity in the process that may currently be executing without undertaking any form of compensation.