BPEL4WS Evaluation Results
Evaluation results for BPEL4WS version 1.1 against the workflow data patterns
Pattern |
Rating |
Motivation |
Task Data | +/- | Scopes provide a means of limiting the visibility of variables to smaller blocks approaching task level binding. |
Block Data | - | Sub-processes are not supported |
Scope Data | + | Directly supported by scope construct |
Multiple Instance Data | - | Not supported. Data elements are scoped at case level. |
Case Data | + | The default scoping for variables is process level. |
Folder Data | - | Not supported |
Workflow Data | - | Not supported |
Environment Data | + | Accessing to environment data via web service calls |
Task to Task | + | Data elements can be passed between activities in messages or via shared variables. |
Block Task to SubWorkflow Decomposition | - | Not supported |
SubWorkflow Decomposition to Block Task | - | Not supported |
To Multiple Instance Task | - | Not supported |
From Multiple Instance Task | - | Not supported |
Case to Case | +/- | Indirectly achievable using the invoke construct |
Task to Environment - Push-Oriented | + | The invoke construct supports the passing of data elements to other web services on an asynchronous basis. |
Environment to Task - Pull-Oriented | + | The invoke construct also suports the request of data elements from other web services on a synchronous basis. |
Environment to Task - Push-Oriented | +/- | Indirectly achievable via the receive construct or event handlers although the data update operation requires specific coding |
Task to Environment - Pull-Oriented | +/- | Indirectly achievable via the receive/reply constructs or event handlers although the operation requires specific coding |
Case to Environment - Push-Oriented | - | Not supported |
Environment to Case - Pull-Oriented | - | Not supported |
Environment to Case - Push-Oriented | - | Not supported |
Case to Environment - Pull-Oriented | - | Not supported |
- | Not supported | |
Environment to Workflow - Pull-Oriented | - | Not supported |
Environment to Workflow - Push-Oriented | - | Not supported |
Workflow to Environment - Pull-Oriented | - | Not supported |
Data Transfer by Value - Incoming | + | Option to pass data elements between activities by value (using messages) |
Data Transfer by Value - Outgoing | + | Option to pass data elements between activities by value (using messages) |
Data Transfer - Copy In/Copy Out | - | Not supported |
Data Transfer by Reference - Unlocked | + | No concurrency control is applied by default |
Data Transfer by Reference - With Lock | +/- | Some measure of concurrency control can be achieved through the use of serializable scopes |
Data Transformation - Input | - | Not supported |
Data Transformation - Output | - | Not supported |
Task Precondition - Data Existence | +/- | Can be indirectly facilitated via exception handlers dealing with attempts to use uninitialised parameters but requires dedicated scope for each activity. |
Task Precondition - Data Value | + | Inclusion of additional link around task with transition condition that is the negation the required data balues allows task to be skipped when data values not met. |
Task Postcondition - Data Existence | - | Not supported |
Task Postconditon - Data Value | - | Not supported |
Event-Based Task Trigger | + | Direct event support via event handlers and the receive construct. New process instances can also be invoked externally. |
Data-Based Task Trigger | +/- | Indirectly achievable by including a data condition monitoring task in the process and triggering the to-be-triggered task via a link or alternatively using message events for triggering. |
Data-Based Routing | + | Both exclusive choice and multi-choice supported |
Evaluation results for BPEL4WS version 1.1 against the workflow exception handling patterns
Pattern |
Explanation |
Work Item Failure |
|
SFF-CWC-COM | An activity can have a fault handler specified for it that defines the actions to be undertaken should the activity fail. |
SFF-CWC-NIL | The fault handler for an activity can be empty. |
SFF-RCC-COM | A fault handler can compensate for the failed activity. The last action in the fault handler could be a <terminate> activity thus ending all activities in the current process instance. Alternatively, the fault handler could rethrow a detected fault to a higher level. Where it is thrown to the global scope, this could be used terminate all other activities being executed in the process instance. |
SFF-RCC-NIL | As for SFF-CWC-NIL except that the fault handler is simply a <terminate> activity. |
Work Item Deadline |
|
SCE-CWC-COM | Alarm events can be specified for an activity which initiate a sequence of actions when a specified deadline is reached. These actions execute concurrently with the activity on which the alarm was raised. |
SCE-CWC-NIL | The alarm event can have an empty set of actions associated with it. |
SFF-CWC-COM | An alarm event can be associated with an activity which invokes a fault handler when a deadline is exceeded. When this occurs the activity is terminated and the fault handler initiates a sequence of compensating activities. |
SFF-CWC-NIL | As for SFF-CWC-COM except that the fault handler is empty. |
SFF-RCC-COM | As for SFF-CWC-COM except that the last activity in the fault handler is a <terminate> activity which cancels all activities in the current process instance. |
SFF-RCC-NIL | Similar to SFF-RCC-COM except that the <terminate> is the only activity in the fault handler. |
External Trigger |
|
SCE-CWC-COM | A message event handler can be specified for an activity which initiates a series of compensating activities when a nominated message is received. The activity which receives the message continues to execute. |
SCE-CWC-NIL | As for SCE-COM-NIL except that the message event handler can be empty. |
SFF-CWC-COM | An activity can have a message event handler associated with it which initiates compensating activities when a nominated message is received. The last action of the message event handler is to invoke a fault handler which terminates the activity. |
SFF-CWC-NIL | As for SFF-CWC-NIL except the only action of the message event handler is to invoke the fault handler hence no compensating activities are initiated. |
SFF-RCC-COM | As for SFF-CWC-COM except the last action in the message event handler is a <terminate>. |
SFF-RCC-NIL | Similar to SFF-RCC-COM except that the only action in the message event handler is a <terminate>. |