Pattern 9 (History-Based Distribution)
The ability to distribute work items to resources on the basis of their previous execution history.
- Allocate the Finalise heart bypass task to the Surgeon who has successfully completed the most of these tasks.
- Allocate the Core extraction task to the drill that has the lowest utilisation over the past 3 months.
History-based Distribution involves the use of information on the previous execution history of resources when determining which of them a work item should be distributed to. This is an analogue to common human experience when determining who to distribute a specific work item to which considers factors such as who has the most experience with this type of work item or who has had the least numbers of failures when tackling similar tasks.
History-based Distribution assumes the existence of historical distribution functions which take a set of resources and the previous execution history for the process and return the subset of those resources that satisfy the nominated historical criteria. These may include factors such as the resource that least recently executed a task, has executed it successfully the most times, has the shortest turnaround time for the task or any other combination of requirements that can be determined from the execution history. Each task in a process model can have a historical distribution function associated with it.
There are no specific context conditions associated with this pattern.
None of the offerings examined provide direct support for History-based Distribution, however for some of them it is possible to achieve some of the benefits of this approach by extending specific process models. There are essentially two methods of facilitating this:
- Extend the details maintained by individual resources on their work history and utilize this information when allocating work items.
- Extract details of work performance from the execution log and incorporate this into the distribution process.
COSA and Oracle BPEL provides facilities for the second method via customised distribution functions utilizing the services of an external program to make distribution decisions based on the contents of the execution log. iPlanet is able to support both options using extended user profiles, modified task definitions to update user histories and customised distribution functions.
The main difficulty with facilitating this distribution strategy is that it places an additional processing overhead on process execution in order to maintain user execution details in a format that can be used when distributing work items.
There is no immediate solution to this issue. Maintaining user execution profiles in a useful form requires additional processing to gather the required information and additional storage to maintain it. Where the distribution strategy is not directly supported by an offering, modifications are required to the process in order to achieve this. The only recommendation that can be made in this situation is to gather and manage the least amount of execution history for each resource that is required to facilitate the chosen work distribution strategy.
An offering achieves full support if it satisfies the description for the pattern. It achieves a partial support rating if the same effect can be achieved via programmatic extensions.
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.
|Websphere MQ Workflow||3.4||-||Not supported|
|COSA||4||+/-||Indirectly achievable via a custom (external) distribution algorithm|
|iPlanet||3.1||+||Achievable through extended user profiles and customised distribution algorithms|
|Oracle BPEL||10.1.2||+/-||Oracle BPEL PM does not offer the direct support for this pattern, but it allows implementing this feature and accessing it via the properties of the dynamic assignment|
|jBPM||3.1.4||-||jBPM does not support this pattern.|
|OpenWFE||1.7.3||-||OpenWFE does not support this pattern.|
|Enhydra Shark||2||-||Enhydra Shark does not support this pattern.|
Summary of Evaluation