The original BPEL specification that we have considered so far in this chapter has been superceded as part of the original vendor's efforts to standardize the technology. As such, as their submission to OASIS under the WSBPEL (Web Services Business Process Execution Language) Technical Committee, IBM, Microsoft, BEA and partners have updated the specification to version 1.1 with a number of changes.
The most obvious changes in BPEL 1.1 is that the term "container" has been replaced with the more traditional term "variable," though its type is still considered in terms of messages. These variables are now supported at arbitrary scope, unlike BPEL 1.0 which only supported containers at the global process scope.
In addition to variables, the authors of the specification have added event handlers into the activity set by introducing the <eventHandlers> activity. An eventHandlers activity is similar to a pick activity insofar as it contains a number of onMessage or onAlarm activities. Where it differs from the standard pick activity is that an eventHandler can be executed concurrently with the currently running scope. This allows concurrent processing within a single scope where previously concurrent "threads" of control were not permitted. There are some standard caveats with the use of an eventHandler, like the fact that one cannot be used to call a compensate activity, but these are minor and will be easily handled by tool support.
While these changes aren't particularly earth shattering in themselves, now that BPEL is being standardized it is probable that further evolution may occur. Nonetheless, BPEL is already a second-generation language and as such is less likely to be subject to change than any of its possible competitors.