Work Distribution to Resources
Of particular interest from a resource perspective is the manner in which work items are advertised and ultimately bound to specific resources for execution. Figure 2 illustrates the lifecycle of a work item in the form of a state transition diagram from the time that a work item is created through to final completion or failure. It can be seen that there are a series of potential states that comprise this process.
Figure 2 : Work Item Lifecycle
Initially a work item comes into existence in the created state. This indicates that the preconditions required for its enablement have been satisfied and it is capable of being executed. At this point however, the work item has not be allocated to a resource for execution and there are a number of possible paths through these states for individual work items. Each edge within this diagram is prefixed with either an S or an R indicating that the transition is initiated by the workflow system or resource respectively.
Transitions from the created state are typically initiated by the workflow system. They centre on the activity of making resources aware of work items that require execution. This may occur in one of three distinct ways denoted by the subsequent states. A work item may be offered to a single resource meaning that the workflow system informs exactly one resource about the availability of a work item. It may do this by sending a message to the resource or adding the work item to the list of available work items that the resource can view. Inherent in this is the notion of the system selecting a specific resource to which the work item should be advertised. This may occur in a variety of different ways - the process model may include specific directives about the identity of the resource to which a given work item should be directed or it may be based on more general requirements such as utilising the least busy, cheapest or most appropriately qualified resource. In each of these situations, there is the need to determine which resources are suitable and available to undertake the work item and then to rank them and select the most appropriate one. An alternative to this course of action is indicated by the state offered to multiple resources, where the system informs multiple resources of the existence of a work item. Again the notion of resource selection applies, however in this case, the system informs all suitable resources of the work item. It does not attempt to identify which of them should undertake it.
The allocated to a single resource state denotes a work item which a specific resource has committed to executing at some time in the future. A work item may progress to this state either because the workflow system pre-emptively allocates newly created work items to a resource or because a resource volunteers to undertake a work item that has been offered. Note that the work item lifecycle illustrated in Figure 2 assumes that a work item is undertaken by a single resource, thus there is not a state which corresponds to "allocated to multiple resources". Subsequent states in the work distribution model are started, which indicates that a resource has commenced executing the work item, suspended which denotes that the resource has elected to cease execution of the work item for a period, but does intend to continue working on it at a later time, failed which identifies that the work item cannot be completed and that the resource will not work on it any further and completed which identifies a work item that has been successfully executed to completion.
The Patterns presented in this body of work are intended to be language independent and do not assume a concrete syntax. In the absence of an agreed workflow model, the aim is to define them in a form that ensures they are applicable to the broadest possible range of workflow systems.