BPEL4People is now being advanced within the OASIS BPEL4People Technical Committee. It was originally published by Active Endpoints, Adobe, BEA, IBM, Oracle and SAP in June 2007 as two specifications:

  • BPEL4People version 1.0 introduces a BPEL extension to address human interactions in BPEL as a first-class citizen. It defines a new type of basic activity which uses human tasks as an implementation, and allows specifying tasks local to a process or use tasks defined outside of the process definition. This extension is based on the WS-HumanTask specification.

  • Web Services Human Task (WS-HumanTask) version 1.0 introduces the definition of human tasks, including their properties, behavior and a set of operations used to manipulate human tasks. A coordination protocol is introduced in order to control autonomy and life cycle of service-enabled human tasks in an interoperable manner.

WS-BPEL 2.0 Extensions

The following specifications have not yet been submitted into the open standards process:

  • BPEL-SPE (WS-BPEL 2.0 Extensions for Sub-Processes)
  • BPELJ (WS-BPEL 2.0 Extensions for Java)


  • BPEL4WS, which combines IBM's WSFL and Microsoft's XLANG, is the precursor to WS-BPEL 2.0. BPEL4WS was submitted to OASIS for standardization in April 2003.

Note on spec names/versions: Although BPEL4WS appeared as both a 1.0 and 1.1 version, the OASIS WS-BPEL Technical Committee voted to name their specification 'WS-BPEL 2.0.' This change in name was done to align BPEL with other Web services standard naming conventions which start with WS- and accounts for the significant enhancements between BPEL4WS 1.1 and WS-BPEL 2.0.


See also:

- BPEL4People — How People Interact with Business Processes by Ivana Trickovic

WS-BPEL 2.0 versus BPEL4WS 1.1

BPEL4WS 1.1 was contributed to the OASIS WS-BPEL Technical Committee, where it was advanced through an open process. The following list summarizes the major changes the Committee incorporated in WS-BPEL 2.0.

Data Access

  • Variables can be declared using XML schema complex types
  • XPath expressions are simplified by using the ‘$’ notation for variable access, for example, $myMsgVar.part1/po:poLine[@lineNo=3]
  • Access to WSDL messages has been simplified by mapping directly mapping WSDL message parts to XML schema element/type variables
  • Several clarifications have been added to the description of the <assign> activity’s <copy> semantics
  • The keepSrcElementName option has been added to <copy> in order to support XSD substitution groups or choices
  • The ignoreMissingFromData has been added to automatically some of <copy> operation, when the from data is missing.
  • An extension operation has been added to the <assign> activity
  • A standardized XSLT 1.0 function has been added to XPath expressions
  • The ability to validate XML data has been added, both as an option of the <assign> activity and as a new <validate> activity
  • Variable initialization as part the of variable declaration has been added

Scope Model

  • New scope snapshot semantics have been defined
  • Fault handling during compensation has been clarified
  • The interaction between scope isolation and control links have been clarified
  • Enrichment of fault catching model
  • A <rethrow> activity has been added to fault handlers
  • The <terminationHandler> has been added to scopes
  • The exitOnStandardFault option has been added to processes and scopes

Message Operations

  • The join option has been added to correlation sets in order to allow multiple participants to rendezvous at the same process with a deterministic order
  • Partner link can now be declared local to a scope
  • The initializePartnerRole option has been added to specify whether an endpoint reference must be bound to a partner link during deployment
  • The messageExchange construct has been added to pair up concurrent <receive> and <reply> activities

New Activities

  • Added serial and parallel <forEach> with optional completion condition
  • Added <repeatUntil>
  • Added new extension activity
  • Changed <switch> to <if>-<elseif>-<else>
  • Changed <terminate> to <exit>
  • Differentiate different cases of <compensate> by renaming them to <compensate> and <compensateScope>

Miscellaneous Changes

  • Added repeatEvery alarm feature to event handlers
  • Clarified resources resolution (e.g. variable, partner link) for event handlers
  • Added formal <documentation> support
  • Added extension namespace declarations in order to specify what extension must be understood
  • Add <import> support to import WSDL and XSD formally

Abstract Processes

  • Clarified Abstract Process usage patterns
  • Introduced Abstract Profiles to address different needs in Abstract Processes, and two profiles “Observable Behavior” and “Process Template” listed in the specification


See also:

- Design Goals of the BPEL4WS Specification