Pattern 32 (Suspension/Resumption)

FLASH animation of Suspension/Resumption pattern

Description

The ability for a resource to suspend and resume execution of a work item.

Example

The Secretary has suspended all Board Meeting work items whilst the Board is being reconstituted.

Motivation

In some situations, during the course of executing a work item, a resource reaches a point where it is not possible to progress it any further. Suspension provides the ability for the resource to signal a temporary halt to the system of any work on the particular work item and switch its attention to another.

Overview

Suspension and Resumption actions are generally initiated by a resource from their work list handler. A suspended work item remains in the resource's work list but its state is generally notated as suspended. It is able to be restarted at some future time. This pattern is illustrated by the R:suspend and R:resume arcs in Figure 6.

Context

There are no specific context conditions associated with this pattern.

Implementation

This pattern is implemented in a variety of different ways. Staffware allows work items that utilise a form to be suspended at any stage via the Keep option. Kept work items stay on the resource's work list and can be re-started later. WebSphere MQ doesn't allow individual work items to be suspended but does support the suspension of an entire workflow case. COSA directly supports the notion of suspension and where a work item is suspended, it is removed from the resource's work list and placed in a resubmission queue. At the point of suspension, a timeframe is nominated and after this has expired, the work item is again placed on the resources work list. Oracle BPEL provides suspend and resume functions within the worklist handler.

Issues

One issue that can arise for suspended items that remain in a shared queue is whether they can be executed by other resources that may have access to the same queue.

Solutions

This situation arises in Staffware and is actually used as a means of sharing a work item to which several resources may wish to contribute. When an item is suspended, all data that is associated with the work item (e.g. form data elements) are saved and become available to any other resource that may wish to resume the task. Any resource that can access a work item can signal its completion via the Release function.

Evaluation Criteria

An offering achieves full support if it satisfies the description for the pattern. It achieves a partial support rating if there are any limitations on the work items that can be suspended or if the entire case must be suspended to achieve the same effect.

Product Evaluation

To achieve a + rating (direct support) or a +/- rating (partial support) the product should satisfy the corresponding evaluation criterion of the pattern. Otherwise a - rating (no support) is assigned.

Product/Language

Version

Score

Motivation

Staffware 9 +/- Supported for activites that have forms associated with them
Websphere MQ Workflow 3.4 +/- Indirectly supported via case suspension
FLOWer 3.0 - Not supported
COSA 4 + Resources can suspend work items currently being executed
iPlanet 3.1 - Not supported
BPMN 1.0 - Not supported
UML 2.0 - Not supported
Oracle BPEL 10.1.2 + Oracle BPEL PM supports this pattern directly. "suspend" and "resume" are available actions in the worklist application
jBPM 3.1.4 + In jBPM a work item can be suspended by selecting one of "Save" and "Cancel" menus for stateful or stateless suspension.
OpenWFE 1.7.3 - OpenWFE does not support this pattern. Selecting "save" or "cancel" during the execution of a work item sends the work item back to the group work list from where everyone belonging to the group can select and continue it (which is the semantics for the Deallocation pattern).
Enhydra Shark 2 - Enhydra Shark does not support Suspension/Resumption of a work item. In the evaluated version of the tool a "Suspension" and a "Resumption" button for a work item are displayed but not enabled for use. In Enhydra Shark a whole case can be suspended and resumed. In such a situation all work items available for the case are suspended (and resumed). They still appear in the work list(s), but they are not possible to allocate/start (when trying to do that a wrong error message is displayed, i.e. "the work item is allocated to another resource").

Summary of Evaluation

+ Rating

+/- Rating

  1. Resources can suspend the execution of a work item on which they are currently working. It remains allocated to them. They can resume it at a later time of their choosing.
  1. Resources can suspend a work item by suspending executiong of the entire case to which it relates.
  2. A resource can suspend a work item but it may be picked up for execution by other resources.