Standard Evaluations

For each standard-pattern combination, we checked whether it is possible to realize the workflow pattern with the language. If a standard directly supports the pattern through one of its constructs, it is rated +. If the pattern is not directly supported, it is rated +/-. Any solution which results in spaghetti diagrams or coding, is considered as giving no direct support and is rated -. Note that a pattern is only supported directly if there is a feature provided by the language  which supports the construct without resorting to any of solutions mentioned in the implementation part of the pattern.

Control-Flow Patterns

Pattern

Standard

 

BPEL

Websphere Integration Developer

Oracle BPEL

BPMN

XPDL

UML

EPCs

Sequence + + + + + + +
Parallel Split + + + + + + +
Synchronization + + + + + + +
Exclusive Choice + + + + + + +

Simple Merge

+ + + + + + +
Multi-Choice + + + + + + +
Structured Synchronizing Merge + + + + + - +
Multi-Merge - - - + + + -
Structured Discriminator - - - +/- +/- +/- -
Arbitrary Cycles - - - + + + +
Implicit Termination + + + + + + +
Multiple Instances without Synchronization + + + + + + -
Multiple Instances with a Priori Design-Time Knowledge - - + + + + -
Multiple Instances with a Priori Run-Time Knowledge - - + + + + -
Multiple Instances without a Priori Run-Time Knowledge - - - - - - -
Deferred Choice + + + + + + -
Interleaved Parallel Routing +/- +/- - - - - -
Milestone - - - - - - -
Cancel Activity + + + + + + -
Cancel Case + + + + + + -
Structured Loop + + + + + + -
Recursion - - - - - - -
Transient Trigger - - - - - + -

Persistent Trigger

+ + + + + + +/-
Cancel Region +/- +*- +/- +/- +/- + -
Cancel Multiple Instance Activity - - + + + + -
Complete Multiple Instance Activity - - - - - - -
Blocking Discriminator - - - +/- +/- +/- -
Cancelling Discriminator - - - + + + -
Structured Partial Join - - - +/- +/- +/- -
Blocking Partial Join - - - +/- +/- +/- -
Cancelling Partial Join - - - +/- +/- + -
Generalised AND-Join - - - + + - +/-
Static Partial Join for Multiple Instances - - - +/- +/- - -
Cancelling Partial Join for Multiple Instances - - - +/- +/- - -
Dynamic Partial Join for Multiple Instances - - - - - - -
Local Synchronizing Merge + + + - - +/- +
General Synchronizing Merge - - - - - - -
Critical Section + + + - - - -
Interleaved Routing + + - +/- +/- - -
Thread Merge +/- +/- +/- + + + -
Thread Split +/- +/- +/- + + + -
Explicit Termination - - - + + + -

Data Patterns

Pattern

Standard

 

XPDL

BPEL4WS

BPMN

UML

Oracle BPEL

Task Data - +/- + +/- +/-
Block Data + - + + -
Scope Data - + - - +
Multiple Instance Data + - +/- + +/-
Case Data + + + - +
Folder Data - - - - -
Workflow Data +/- - - + +
Environment Data - + - - +
Task to Task + + + + +
Block Task to SubWorkflow Decomposition + - + + -
SubWorkflow Decomposition to Block Task + - + + -
To Multiple Instance Task - - - + +/-
From Multiple Instance Task - - - + +/-
Case to Case +/- +/- - - -
Task to Environment - Push-Oriented + + + - +
Environment to Task - Pull-Oriented + + + - +
Environment to Task - Push-Oriented - +/- + - +
Task to Environment - Pull-Oriented - +/- + - +
Case to Environment - Push-Oriented - - - - -
Environment to Case - Pull-Oriented - - - - -
Environment to Case - Push-Oriented - - - - -
Case to Environment - Pull-Oriented - - - - -

Workflow to Environment - Push-Oriented

- - - - -
Environment to Workflow - Pull-Oriented - - - - -
Environment to Workflow - Push-Oriented - - - - -
Workflow to Environment - Pull-Oriented - - - - -
Data Transfer by Value - Incoming +/- + + - +
Data Transfer by Value - Outgoing +/- + + - +
Data Transfer - Copy In/Copy Out +/- - +/- - +
Data Transfer by Reference - Unlocked + + - - +
Data Transfer by Reference - With Lock - +/- + + -
Data Transformation - Input - - +/- + -
Data Transformation - Output - - +/- + -
Task Precondition - Data Existence - +/- + + -
Task Precondition - Data Value + + - + +
Task Postcondition - Data Existence - - + + -
Task Postconditon - Data Value - - - + -
Event-Based Task Trigger - + + + +
Data-Based Task Trigger - +/- + - -
Data-Based Routing + + + + +

Resource Patterns

Pattern

Standard

 

BPMN

UML

Oracle BPEL

Direct Allocation + + +
Role-Based Allocation + + +
Deferred Allocation - - +
Authorisation - - -

Seperation of Duties

- - -
Case Handling - - +
Retain Familiar - - +
Capability Based Allocation - - +
History Based Allocation - - +/-
Organisational Allocation - - +/-
Automatic Execution + + +
Distribution by Offer - Single Resource - - +
Distribution by Offer - Multiple Resources - - +
Distribution by Allocation - Single Resource + + +
Random Allocation - - +/-
Round Robin Allocation - - +/-
Shortest Queue - - +/-
Early Distribution - - -
Distribution on Enablement + + +
Late Distribution - - -
Resource-Initiated Allocation - - -
Resource-Initated Execution - Allocated Work Item - - +
Resource-Initiated Execution - Offered Work Item - - +

System Determined Work Queue Content

- - -
Resource-Determined Work Queue Content - - +
Selection Autonomy - - +
Delegation - - +
Escalation - - +
Deallocation - - +
Stateful Reallocation - - +
Stateless Reallocation - - -
Suspension/Resumption - - +
Skip - - +
Redo - - -
Pre-Do - - -
Commencement on Creation + + -
Commencement on Allocation - - -
Piled Execution - - -
Chained Execution + + -
Configurable Unallocated Work Item Visibility - - -
Configurable Allocated Work Item Visibility - - -
Simultaneous Execution + + +
Additional Resources - - +

Exception Handling Patterns

Standard

Exceptions

 

Work Item Failure

Work Item Deadline

External Trigger

Constraint Violation

XPDL

SFF-CWC-COM
SFF-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL

SCE-CWC-COM
SCE-CWC-NIL
SFF-CWC-COM
SFF-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL

SFF-CWC-COM
SFF-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL
SFF-CWC-COM
SFF-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL

BPEL

SFF-CWC-COM
SFF-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL
SCE-CWC-COM
SCE-CWC-NIL
SFF-CWC-COM
SFF-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL
SCE-CWC-COM
SCE-CWC-NIL
SFF-CWC-COM
SFF-CSC-NIL
SFF-RCC-COM
SFF-RCC-NIL
 

BPMN

SFF-CWC-COM
SFF-CWC-NIL
SFC-CWC-COM
SFC-CWC-NIL
SRS-CWC-COM
SRS-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL

SFF-CWC-COM
SFF-CWC-NIL
SFC-CWC-COM
SFC-CWC-NIL
SRS-CWC-COM
SRS-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL

SFF-CWC-COM
SFF-CWC-NIL
SFC-CWC-COM
SFC-CWC-NIL
SRS-CWC-COM
SRS-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL

SFF-CWC-COM
SFF-CWC-NIL
SFC-CWC-COM
SFC-CWC-NIL
SRS-CWC-COM
SRS-CWC-NIL
SFF-RCC-COM
SFF-RCC-NIL