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

Workflow to Environment - Push-Oriented

- 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>.