The BPEL4People white paper contributed by IBM and SAP describes how to support People Activities within the scope of the existing BPEL standards. It does not introduce any new constructs but it does suggest that future versions of the BPEL standard may be extended to directly support these concepts. The paper introduces the principle of a manual task which is executed by a human participant. This task, which is part of a long-running business process, fundamentally suspends the process until it is completed by the corresponding participant. In addition the paper presents the notion of the task list that is used to hold tasks (or people activities) for a participant, which may represent a specific person, a group of people, a collection of roles etc.
People links are used to bind a group of people to a business process similar to the manner that partner links are used to bind web services to processes. The people links are resolved at runtime to select the specific person/group of people that can execute a particular people activity. It may result in some query on an organizational directory.
As mentioned previously when the business process engine encounters a person activity it will suspend the business process until the person completes the associated task. (not always the case as there maybe parallel paths in the business process but it will stall one thread of the business process). In order to resume the business process the user or ‘task list agent’ needs to notify the business process engine when it has successfully/unsuccessfully completed the task. The task list agent should support a number of others features including query available tasks, claim task, revoke task and fail task.
During my time at Intalio, many years ago, we developed a set of processes on top of our business process engine (in that time it was based on BPML but has now moved to support BPEL) to support exactly the principles outlined in this paper. These processes were distributed with the engine providing support for people activity out-of-the-box. Although, there is no need to extend the BPEL language to support people activity I can also see the advantage of having language support for these type of activities.
The BPEL4People paper also covers the user interface dimension but that will have to be the subject on another blog entry.