This document will introduce the project of Tempo implement BPEL4People. Define project scope, implementation solution, and dev schedule.
Current status of this document is very draft, all issues are in proposal and pending status. Any comments and suggestions are appreciated.
Reuse: means keep current code unchanged, write new class to extends(inherit) or aggregate(contain) it.
extends/change/modify: means just modify or extends/inherit current class code, but doesn't care keeping old class not changed.
Tempo is an open-source project to provide a workflow implementation based on the BPEL4People architecture. Tempo is the workflow engine underlying Intalio|BPMS. As defined by BPEL4People, Tempo supports role-based interaction of people, it provides means of assigning users to generic human roles, it can delegate ownership of a task to a specific person and supports use-cases such as separation of duty, nomination, escalation and chained execution.
The BPEL specifiation
focuses on business processes the activities of which are assumed to be interactions with Web services, without any further prerequisite behavior. But the spectrum of activities that make up general purpose business processes is much broader. People often participate in the execution of business processes introducing new aspects such as interaction between the process and user interface, and taking into account human behavior. This specification introduces a set of elements which extend the standard BPEL elements and enable the modeling of human interactions, which may range from simple approvals to complex scenarios such as separation of duties, and interactions involving ad-hoc data.
The BPEL4Peolple extends BPEL by add the people activity as a new type of basic activity which enables the specification of human interaction in processes in a more direct way. The implementation of a people activity could be an inline task or a standalone human task defined in the WS-HumanTask specification
. The syntax and state diagram of the people activity, and the coordination protocol that allows interacting with human tasks in a more integrated way is described. The B4P also introduces XPath extension functions needed to access the process context.
The Tempo project was started shortly after the original BPEL4People whitepaper was published but before the first BPEL4People specification draft became available. Due to this parallel evolution, there are some differences between the two. Here is a high-level summary of these differences:
- As a conservative approach, Tempo's design was based on what is referred to as "Constellation 4" in the BPEL4People specification. In other words, it relies on the standard BPEL <bpel:invoke> activity instead of the <b4p:peopleActivity> and therefore implements its own protocol between the process engine and the task management services (i.e., WS-HumanTask implementation);
- Tempo uses standard BPEL data assignment activities to manipulate people and role assignments instead of extending the <bpel:assign> activity;
- Tempo does not use process-related human roles such as the <b4p:processInitiator>, <b4p:processStakeHolders> and <b4p:businessAdministrators>;
- The task lifecycle in Tempo is extensible and composed of 4 basic states: ready, completed, failed, claimed. BPEL4People has 5 basic states: running, completed, failed, terminated, and obsolete. In Tempo, the terminated and obsolete states are handled using the failed state and an explicit reason.
- Ad-hoc attachments are associated with the current task instead of being associated with the BPEL process that created the task. Ad-hoc attachments may be propagated through a workflow using standard BPEL data assignment activity;
Red highlight is needed to be confirmed
What we do
- Tempo will play as Human Task Provider in constellation 4 described in b4p spec chapt 4.

- New Tempo version will implements All 37 operations and 12 XPath functions defined in WS-HumanTask specification
chapter 6.
That means Tempo will build a web service fully compatible with WSDL defined by BPEL4People, and B4P compliant workflow engine can work with Tempo.
- A test UI will be built to call Tempo Human Task Service and do all operation on tasks.
- Old Task designed or deployed will still be able to used by migrating.
- Since ODE haven't implement B4P, so new Tempo in after this version will work properly ODE BPEL engine, but can not make sure work properly with further ODE B4P engine.
- From user perspective, Tempo UI will have no change
What we not do
- Tempo Designer & Deployment (WDS) should be upgraded to allow user design task with new features, but this will be implemented later and not included in this document.
- Tempo is not the BPEL engine, parsing and executing BPEL4People workflow will be implemented in new version of ODE.
- Interoperable Protocol define in WS-HumanTask specification
chapter 7, will not be implemented in this phase.. But in order to make human task work with ODE, additional implementation should be necessary.
BPEL 1.1 http://www.ibm.com/developerworks/library/specification/ws-bpel/
BPEL for people http://www.ibm.com/developerworks/cn/webservices/specification/ws-bpel4people/
WS-HumanTask specification http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-bpel4people/WS-HumanTask_v1.pdf
Evaluation of the
BPEL4People and WS-HumanTask Extensions to
WS-BPEL 2.0 using the Workow Resource Patterns http://is.tm.tue.nl/staff/wvdaalst/BPMcenter/reports/2007/BPM-07-10.pdf
BPEL4People and WS-Human Task http://wiki.ramp.org.au/display/workflow/BPEL4People+and+WS-Human+Task