Tuesday, May 20, 2008

WS-BPEL 2.0

Derived from : http://docs.oasis-open.org/wsbpel/2.0/Primer/wsbpel-v2.0-Primer.pdf

Copyright © OASIS Open 2007. All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English.

What’s new in WS-BPEL 2.0
As a result of the OASIS Technical Committee’s issues process, the original BPEL4WS 1.1 specification has received several updates. The following list summarizes the major changes that have been incorporated in the WS-BPEL 2.0 specification.

Data Access
  • Variables can now 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 activity’s semantics
  • The keepSrcElementName option has been added to in order to support XSD substitution groups or choices
  • The ignoreMissingFromData has been added to automatically some of operation, when the from data is missing.
  • An extension operation has been added to the 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 activity and as a new 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 activity has been added to fault handlers
  • The 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 and activities
Important differences between BPEL 1 and 2 as imported from wsbpel-v2.0-Primer.

Most of the features added seems to be lessons learn't, a good way to improve. It does not drastically change the specifications but seems to be more friendly for the developer. Many problems that I am facing with the current implementation with BPEL 1.1 would be removed using this specification when the product vendor decides to implement it.

Sadly one point was missing support for XPath 2.0 and XSLT 2.0. The FAQs [http://www.oasis-open.org/committees/download.php/23858/WS-BPEL-2.0-FAQ.html] clearly state 'WS-BPEL2.0 is based upon XPath 1.0 and XSLT 1.0'. I thought XSLT 2.0 and XPath 2.0 were huge advancements but not being supported I was very disappointed. I believe the product vendors would still support them along with XPath 1.0 and XSLT 1.0 as standard extensions.