BPMN Evaluation Results

Evaluation results for BPMN version 1.0 against the workflow control-flow patterns

Pattern

Rating

Motivation

Sequence + Directly supported by linking activities with sequence flow arcs.
Parallel Split + Supported by AND-split gateway
Synchronization + Supported by AND-join gateway.
Exclusive Choice + Supported by XOR-split gateway.

Simple Merge

+ Supported by XOR-join gateway.
Multi-Choice + Supported in three distinct ways: via an implicit split with conditions on the arcs, an OR-split or a complex gateway.
Structured Synchronizing Merge + Supported through the OR-join gateway.
Multi-Merge + Supported by XOR-join gateway.
Structured Discriminator +/- Although support for this pattern is referred to in the BPMN 1.0 specification, it is unclear how the IncomingCondition expression on the COMPLEX-join gateway 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 consumed, the process instance terminates.
Multiple Instances without Synchronization + Supported via multiple instance task with MI Flow_Condition attribute set to none.
Multiple Instances with a Priori Design-Time Knowledge + Supported via multiple instance task with MI Flow_Condition attribute set to all.
Multiple Instances with a Priori Run-Time Knowledge + Supported via multiple instance task with MI_Condition attribute set at runtime to the actual number of instances required.
Multiple Instances without a Priori Run-Time Knowledge - Not supported. There is no means of adding further instances to a multiple instance task once started.
Deferred Choice + Supported via an event-based exclusive gateway followed by either intermediate events using message-based triggers or receive tasks.
Interleaved Parallel Routing - Supported for simple tasks via an ad-hoc process but no support for interleaving groups or sequences of tasks.
Milestone - Not supported. No support for states.
Cancel Activity + Supported via an error type intermediate event 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 directly supported by activity looping.
Recursion - Not supported. No means of specifying recursive composition with a process model.
Transient Trigger - Not supported. Triggers are supported through durable messages.

Persistent Trigger

+ Supported through the use of message events.
Cancel Region +/- Partially supported by enclosing the cancellation region in a sub-process and associating an error event with the sub-process to enable cancellation, however the cancellation region is restricted to a connected sub-graph 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 support for this pattern is referred to in the BPMN 1.0 specification, it is unclear how the IncomingCondition expression on the COMPLEX-join gateway 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 type intermediate event.
Structured N-out-of-M Join +/- Although support for this pattern is referred to in the BPMN 1.0 specification, it is unclear how the IncomingCondition expression on the COMPLEX-join gateway is specified.
Blocking N-out-of-M Join +/- Although support for this pattern is referred to in the BPMN 1.0 specification, it is unclear how the IncomingCondition expression on the COMPLEX-join gateway is specified.
Cancelling N-out-of-M Join +/- Although support for this pattern is referred to in the BPMN 1.0 specification, it is unclear how the IncomingCondition expression on the COMPLEX-join gateway is specified.
Generalised AND-Join + Supported by the AND-join gateway.
Static Partial Join for Multiple Instances +/- Notionally supported via multiple instance task with MI Flow_Condition attribute set to complex where 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 exactly how the ComplexMI_FlowCondition should be specified.
Cancelling Partial Join for Multiple Instances +/- Notionally achievable via a MI task (as for WCP34) which has an error type intermediate event trigger at the boundary. Immediately after the MI task is an activity that issues a cancel event to terminate any remaining MI activities. However the same issue arises as for WCP34 in that it is unclear how the ComplexMI_FlowCondition should be specified.
Dynamic Partial Join for Multiple Instances - There is no ability to dynamically add instances to an multiple instance activity.
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 ad-hoc 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 BPMN version 1.0 against the workflow data patterns

Pattern

Rating

Motivation

Task Data + The smallest operational unit in a BPMN diagram is Task. Task data is defined through the attribute Properties of a Task. The Properties defined for a Task are local and can only be used within the Task.
Block Data + Through the attribute Properties of a Sub-Process. The Properties defined for a Sub-Process are local and accessible to all Sub-Process components.
Scope Data - Not supported. The Group is a construct introduced purely for visualisation purposes and it does not provide any data handling for the objects it groups together.
Multiple Instance Data +/- Two out of three possible scenarios are supported, namely: i) Where a task can be triggered multiple times, e.g., as part of a loop or as a task following a Multiple Merge construct. ii) Where two tasks share the same decomposition. This is supported through the notion of Independent Sub-Processes. iii) Where a task is specifically designated as havng multiple instances in the process model is not supported. The lack of any Properties attribute for the MI (in Table 18, MI Loop Activity Arributes),makes it impossible to handle any instance-specific data for the different instances of a task.
Case Data + Supported through the attribute Properties of a Process.
Folder Data - Not supported
Workflow Data - Not supported
Environment Data - Not supported
Task to Task + i) Through integrated control and data channels. Supported through the notion of Data Objects associated to Sequence Flows. ii) Through distinct control and data channels. Supported through the notion of Data Objects with its Properties attribute. iii) Through global shared data. Global shared data is supported through the attribute Properties of a Process.
Block Task to SubWorkflow Decomposition + 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.
SubWorkflow Decomposition to Block Task + 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
To Multiple Instance Task - Not supported
From Multiple Instance Task - Not supported
Case to Case - Not supported
Task to Environment - Push-Oriented + Captured through a message flow flowing from a Task to the boundary of a Pool representing the Environment
Environment to Task - Pull-Oriented + Captured through a message flow flowing from a Task to the boundary of a Pool representing the Environment, followed by a message flow from the Pool (representing the Environment) back to the task
Environment to Task - Push-Oriented + Captured through a message flow flowing from the boundary of a Pool representing the Environment to a Task
Task to Environment - Pull-Oriented + Captured through a message flow flowing from the boundary of a Pool representing the Environment to a Task followed by a message flow flowing from the same Task back to the Pool representing the Environment
Case to Environment - Push-Oriented - Not supported. Message flows can indeed be drawn between the boundaries of two pools, one representing the Process the Case instantiates, and other one representing the Environment. However, the semantics of this construct does not capture data exchange at any moment during the execution of the case.
Environment to Case - Pull-Oriented - Not supported. Message flows can indeed be drawn between the boundaries of two pools, one representing the Process the Case instantiates, and other one representing the Environment. However, the semantics of this construct does not capture data exchange at any moment during the execution of the case.
Environment to Case - Push-Oriented - Not supported. Message flows can indeed be drawn between the boundaries of two pools, one representing the Process the Case instantiates, and other one representing the Environment. However, the semantics of this construct does not capture data exchange at any moment during the execution of the case.
Case to Environment - Pull-Oriented - Not supported. Message flows can indeed be drawn between the boundaries of two pools, one representing the Process the Case instantiates, and other one representing the Environment. However, the semantics of this construct does not capture data exchange at any moment during the execution of the case.

Workflow to Environment - Push-Oriented

- As workflow data is not supported, any data interaction to and from a workflow is not applicable
Environment to Workflow - Pull-Oriented - As workflow data is not supported, any data interaction to and from a workflow is not applicable
Environment to Workflow - Push-Oriented - As workflow data is not supported, any data interaction to and from a workflow is not applicable
Workflow to Environment - Pull-Oriented - As workflow data is not supported, any data interaction to and from a workflow is not applicable
Data Transfer by Value - Incoming + Supported through the notion of InputSets of Activities
Data Transfer by Value - Outgoing + Supported through the notion of OutputSets of Activities
Data Transfer - Copy In/Copy Out +/- Partially supported. It occurs when decomposition is realised through Independent Sub-Process. The data attributes to be copied into/out of the Independent Sub-Process are specified through the Input- and OutputPropertyMaps attributes
Data Transfer by Reference - Unlocked - Not supported
Data Transfer by Reference - With Lock + As BPMN adopts a token-oriented approach to data passing, the parameters - which typically relate to objects - are consumed (i.e. locked) at activity commencement.
Data Transformation - Input +/- Partially supported. It occurs when decomposition is realised through Independent Sub-Process. As the Input- and OutputPropertyMaps are in form of Expressions, we assume that transformation function can be specified through them.
Data Transformation - Output +/- Partially supported. It occurs when decomposition is realised through Independent Sub-Process. As the Input- and OutputPropertyMaps are in form of Expressions, we assume that transformation function can be specified through them
Task Precondition - Data Existence + In the cases data transfer is captured through Data Objects, the Boolean attribute RequiredForStart can capture a precondition for data existence.
Task Precondition - Data Value - Not supported
Task Postcondition - Data Existence + In the cases data transfer is captured through Data Objects, the Boolean attribute ProducedAtCompletion can capture a postcondition for data existence.
Task Postconditon - Data Value - Not supported
Event-Based Task Trigger + Supported through the Message, Timer, Error and Cancel Event constructs
Data-Based Task Trigger + Supported through the Rule Event construct
Data-Based Routing + Supported, as Condition Expressions are possible to specify for Sequence Flows

Evaluation results for BPMN version 1.0 against the workflow resource patterns

Pattern

Rating

Motivation

Direct Allocation + Through the notion of Pool, as it can be used to denote a specific business entity, e.g. a specific actor. The notion of Lane could be used for this purpose as well
Role-Based Allocation + Through the notion of Pool, as it can also be used to denote a more general business role. The notion of Lane could be used as for this purpose as well.
Deferred Allocation - Not supported
Authorisation - Not supported

Seperation of Duties

- Not supported
Case Handling - Not supported
Retain Familiar - Not supported
Capability Based Allocation - Not supported
History Based Allocation - Not supported
Organisational Allocation - Not supported
Automatic Execution + A partitioning of a process into Pools and Lanes is not required, i.e., any resource allocation of a task is not necessarily done during design time.
Distribution by Offer - Single Resource - Not supported
Distribution by Offer - Multiple Resources - Not supported
Distribution by Allocation - Single Resource + We assume that the resource associated with the Swimlane is immediately allocated a Task/Sub-Processes once it is triggered
Random Allocation - Not supported
Round Robin Allocation - Not supported
Shortest Queue - Not supported
Early Distribution - Not supported
Distribution on Enablement + All activities in a Swimlane are associated with the resource responsible for the Swimlane when they are triggered.
Late Distribution - Not supported
Resource-Initiated Allocation - Not supported
Resource-Initated Execution - Allocated Work Item - Not supported
Resource-Initiated Execution - Offered Work Item - Not supported

System Determined Work Queue Content

- Not supported
Resource-Determined Work Queue Content - Not supported
Selection Autonomy - Not supported
Delegation - Not supported
Escalation - Not supported
Deallocation - Not supported
Stateful Reallocation - Not supported
Stateless Reallocation - Not supported
Suspension/Resumption - Not supported
Skip - Not supported
Redo - Not supported
Pre-Do - Not supported
Commencement on Creation + An activity is assumed to be live as soon as it receives the specified Start Quantity control flow tokens.
Commencement on Allocation - Not supported
Piled Execution - Not supported
Chained Execution + Once an activity is completed, subsequent activity(ies) receive a control flow token and are triggered immediately when the specified Start Quantity of tokens is reached.
Configurable Unallocated Work Item Visibility - Not supported
Configurable Allocated Work Item Visibility - Not supported
Simultaneous Execution + There are no constraints on how many instances of a task specified for one Swimline can be active at any time
Additional Resources - Not supported

Evaluation results for BPMN version 1.0 against the workflow exception handling patterns

Pattern

Explanation

Work Item Failure

SFF-CWC-COM An activity can have an error, cancel or compensating event associated with it that terminates the activity and routes control to an exception flow of activities to resolve the issue detected. Other activities are unaffected by the event.
SFF-CWC-NIL As for SFF-CWC-COM except that there are no compensating activities in the exception flow.
SFC-CWC-COM As for SFF-CWC-COM except once the exception flow activities are completed, the thread of control is immediately routed to the activities immediately follwing the failed activity in the normal process flow.
SFC-CWC-NIL As for SFC-CWC-NIL except that the exception flow does not contain any compensating activities.
SRS-CWC-COM As for SFC-CWC-COM except that the exception flow routes the thread of control back to the beginning of the failed activity (i.e. it restarts it) once the compensating activities have been completed.
SRS-CWC-NIL As for SRS-CWC-COM except that there are no compensating activities in the exception flow.
SFF-RCC-COM As for SFF-CWC-COM except that the last node in the exception flow is an end event thus terminating all other active activities in the process instance.
SFF-RCC-NIL As for SFF-RCC-COM except that the only node in the exception flow is an end event.

Work Item Deadline

SFF-CWC-COM An activity can have a timer event associated with it that terminates the activity and routes control to an exception flow of activities to manage the implications of the deadline expiration. Other activities are unaffected by the event.
SFF-CWC-NIL As for SFF-CWC-COM except that there are no compensating activities in the exception flow.
SFC-CWC-COM As for SFF-CWC-COM except once the exception flow activities are completed, the thread of control is immediately routed to the activities immediately flowing the failed activity in the normal process flow.
SFC-CWC-NIL As for SFC-CWC-NIL except that the exception flow does not contain any compensating activities.
SRS-CWC-COM As for SFC-CWC-COM except that the exception flow routes the thread of control back to the beginning of the failed activity (i.e. it restarts it) once the compensating activities have been completed.
SRS-CWC-NIL As for SRS-CWC-COM except there are no compensating activities in the exception flow.
SFF-RCC-COM As for SFF-CWC-COM except that the last node in the exception flow is an end event thus terminating all other active activities in the process instance.
SFF-RCC-NIL As for SFF-RCC-COM except that the only node in the exception flow is an end event.

External Trigger

SFF-CWC-COM An activity can have a message event associated with it that triggers when a specific message type is received by the activity. When this occurs, the activity is terminated and control is routed to an exception flow of activities to manage the implications of the trigger received. Other activitiess are unaffected by the event.
SFF-CWC-NIL As for SFF-CWC-COM except that there are no compensating activities in the exception flow.
SFC-CWC-COM As for SFF-CWC-COM except once the exception flow activities are completed, the thread of control is immediately routed to the activities immediately flowing the failed activity in the normal process flow.
SFC-CWC-NIL As for SFC-CWC-NIL except that the exception flow does not contain any compensating activities.
SRS-CWC-COM As for SFC-CWC-COM except that the exception flow routes the thread of control back to the beginning of the failed activity (i.e. it restarts it) once the compensating activities have been completed.
SRS-CWC-NIL As for SRS-CWC-COM except there are no compensating activities in the exception flow.
SFF-RCC-COM As for SFF-CWC-COM except that the last node in the exception flow is an end event thus terminating all other active activities in the process instance.
SFF-RCC-NIL As for SFF-RCC-COM except that the only node in the exception flow is an end event.

Contraint Violation

SFF-CWC-COM An activity can have a rule event associated with it that triggers when a specific set of specified conditions based on process data elements evaluate to true. When this occurs, the activity is terminated and control is routed to an exception flow of activities to manage the implications of the constraint violation. Other activities are unaffected by the event.
SFF-CWC-NIL As for SFF-CWC-COM except that there are no compensating activities in the exception flow.
SFC-CWC-COM As for SFF-CWC-COM except once the exception flow activities are completed, the thread of control is immediately routed to the activities immediately flowing the failed activity in the normal process flow.
SFC-CWC-NIL As for SFC-CWC-NIL except that the exception flow does not contain any compensating activities.
SRS-CWC-COM As for SFC-CWC-COM except that the exception flow routes the thread of control back to the beginning of the failed activity (i.e. it restarts it) once the compensating activities have been completed.
SRS-CWC-NIL As for SRS-CWC-COM except there are no compensating activities in the exception flow.
SFF-RCC-COM As for SFF-CWC-COM except that the last node in the exception flow is an end event thus terminating all other active activities in the process instance.
SFF-RCC-NIL As for SFF-RCC-COM except that the only node in the exception flow is an end event.