Compensation and scopes
- "Serializable" scopes are renamed as "isolated" scopes. This syntax is changed because of the following semantic change on control-links [syntax change]
- Assert that control-links does not go through serializable/isolated scope, until the scope is completed. [semantic change]
- Change from a global snapshot model to local-scope snapshot model [semantic change]
- Serializable scopes do not need to be leaf node [new feature] / [semantic clarification]
- Clarify the compensation ordering [semantic clarification]
- Locally scoped variable overriding [semantic clarification]
Factoring <terminationHandler> out of the generic fault Handler mechanism and rename <bpel:terminate> to <bpel:exit> to avoid confusion [syntax change][semantic clarification]
Clarify that inner sibiling scope-based activities (<scope> or <invoke> with compensationHandler) must have a unique name [semantic clarification]
The child activity of eventHandler and forEach may be restricted to a <scope> activity to clean up its related compensation semantics [syntax clarification] [semantic clarification]
- More clarification of compensation may be coming. [semantic clarification]
Control Links
- Clarify that what kind of cyclic links among are disallowed [semantic clarification]
Adding <sources> and <targets> wrapper and move the joinCondition attribute from activity to <targets>. [syntax clarification] / [semantic clarification]
- Clarify that the semantics nested flow and link declaration of the same name and the link of inner most link override the outter one [semantic clarification]
Clarify what control links means to an <invoke> macro-ed with compensation-handler / fault handler [semantic clarification]
- Clarify the behavior when a conditional branch is used as the source and target of two control links [semantic clarification]
Fault handling
The fault variable associated with <catch> is now declared on <catch> itself instead of sharing a variable from the parent scope. [semantic change]
<throw> and <catch> constructs can be used with non-WSDL message variables. The <catch> matching rules got clarified. [new feature]
Making <catch faultName="QName"> able to catch the matched fault with or without a fault body. Thus, making it symmertical between <catch faultName="QName"> vs <catch faultVariable="fVar" faultMessageType="QName" > [semantic change]
Clarify how WSDL 1.1 fault naming model is played out in <catch> and <reply>. Particularly a faultName can be assocated with different message type. [semantic clarification]
<rethrow> is added. [new feature]
Adding a new switch on <scope> for users to decide whether to let the fault handler mechanism to kick in or force the process instance to exit, when BPEL standard fault happens [new feature]
Data Manipulation
Making <assign> extensible by allowing add vendor-provided operations besides <copy> [new feature]
- Adding variable of complex type [new feature]
- Adopting $var syntax and syntax changes in from-spec and to-spec [syntax change]
- Clarify that all arguments in bpws:getVariableProperty() must be string literal [semantic clarification]
- XML Validation [new feature]
- Add in-line variable initialization [new feature]
- Message Properties are now expanded to become Variable Properties:
- (1) The types of properties can be based on element or complex-type, NOT just simple types any more. But, only simple type values can be used in message correlation.
- (2) The properties can be non-L-values.
- (3) The properties can be calculated based on variable of simple types, element, or complex types, NOT just variables of message types. [new feature]
- The default expression language and query language URI got rectified from W3C namespace to OASIS namespace [syntax change]
Web Service Operations and PartnerLink
- Allowing element-based or complex-type variables used directly with WS operations without using WSDL message type variable (related to Issue 12 and 112) [new feature]
- New "join" (previously known as "rendezvous") init-style of correlation set [new feature] [semantic clarification]
Adopt <bpel:service-ref> act as the envelope wrapper of endpoint reference of a partnerLink [syntax change]
Introduce a "messageExchange" attribute to act as an extra identifier to match <receive> and <reply> [new feature] / [semantic clarification]
- "bpws:missingReply" fault is added [new feature] / [semantic clarification]
- Add locally scoped partnerLink [new feature]
Remove <partner> [feature dropped]
Syntax changes in <partnerLinkType> [syntax clarification]
Making "portType" attribute optional in message related activity (e.g. <invoke>) [syntax clarification]
- Clarifying messsage correlation on inbound message operation will not be based on the partnerRole EPR stored in the partnerLink (unless a vendor extension is added) [semantic clarification]
Abstract Process
- Abstract Process is re-architected in certain senses. [semantic change]
- Details are being flushed out ... (need to fill in more here later ...)
Misc
Add <extension> construct to declare BPEL extension formally [new feature] / [semantic clarification]
Add serial and parallel <forEach> [new feature]
Add explicit <import> [new feature]
- Periodic Alarm (onAlarm) [new feature]
- Clarify when to clear link status [semantic clarification]
- The "switch" activity is change to "if-then-else" [syntax change]
- Add "repeatUntil" activity [new feature]
- Add "documentation" node to the generic BPEL syntax [new feature]
- Add extension activity [new feature]
WSBPEL Wiki