Specifications

WS-BPEL 2.0

BPEL4People

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

  • 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