WS-BPEL 2.0 - not backward compatible?
Forum » Standards - Composition / WS-BPEL » WS-BPEL 2.0 - not backward compatible?
started by: wsengineerwsengineer
on: 1161780398|%e %b %Y, %H:%M %Z|agohover
number of posts: 2
rss icon RSS: new posts
summary:
An article from SOA World magazine
WS-BPEL 2.0 - not backward compatible?
wsengineerwsengineer 1161780398|%e %b %Y, %H:%M %Z|agohover

(this article was posted at SOA World 20-09-2006)

Let's face it, BPEL 1.1 was a bad standard that left so much out that many end users and vendors found it useless. In response, the vendors put a ton of proprietary extensions in their BPEL 1.1 - based products, thus diluting its value to the point of "why bother."

While I've been ranting and raving about this for some time, Dave Chappell does a much better job in explaining the limitations.

"Promoting BPEL's portability helps significantly in the first of these goals, since customers like the idea of not being locked in to a single vendor. But actually making customers successful has typically required extending BPEL in proprietary ways, which works against the language's promised portability. While BPEL purists might argue that all of these extensions should be provided via programming language-neutral web services interfaces, this isn't what?s actually happening in the products."
With huge investment in BPEL by the larger SOA players out there the dirty little secret is that BPEL 1.1 never really worked as advertised, and the amount of custom and proprietary extensions required making the technology useful meant that the money, time, and effort was pretty much wasted if standards and portability was the goal.

Enter WS-BPEL 2.0, and another opportunity for vendors to get BPEL right. You can find the draft specification here, which I read, and discovered that this spec was much improved, but with many issues that remain. For instance, WS-BPEL 2.0 has considerable differences to its previous 1.1 version. The major differences include syntax changes to the language, inclusion of new features including parallel for-each, and modifications to the semantic of existing constructions, such as compensation handling.

Hmmmm. So, what if I already implemented orchestrations using BPEL 1.1, what do I do now? In short, you purchased Beta and the world is moving to VHS (yes, I'm old). I thought that this article by BEA's Alexandre Alves did a good job in summing things up.

"For all but the simplest business processes, migration from BPEL 1.1 to BPEL 2.0 is not an easy task. Some of the syntactic changes can be automated as shown [in this article], however the semantic differences, especially when dealing with links, messaging, compensation handling, and data manipulation, will demand a comprehensive and time-consuming process."

I suspect the BPEL sales guys will get some angry calls around Christmas time from their users, perhaps more so considering the use of many proprietary extensions to get around the limitations of BPEL 1.1. Not a good way to start a standard, I guess that is why my old boss told me never buy products until release 3.0.

unfold WS-BPEL 2.0 - not backward compatible? by wsengineerwsengineer, 1161780398|%e %b %Y, %H:%M %Z|agohover
Re: WS-BPEL 2.0 - not backward compatible?
wsengineerwsengineer 1161782112|%e %b %Y, %H:%M %Z|agohover

Comments (by others) on the above article

BPEL is a work in progress. Like any of its predecessor standards (SQL, XML, etc.), industry gadflys and naysayers will bash BPEL right up to the point where it's pervasively adopted, then they'll jump on the bandwagon and claim they played a major role in shaping BPEL's success.

BPEL 1.1, while certainly imperfect, provides a rich grammar for expressing a broad range of service orchestrations. BPEL 1.1 (with or without vendor extensions) has been used as the cornerstone of many deployed SOA applications. Thus, assertions about BPEL's limited value as an execution language are now being laid to waste by real world anecdotes. Like it or not, BPEL is rapidly achieving "de facto standard" status. And BPEL 2.0 represents a meaningful step forward, adding important constructs and resolving prior ambiguities.

The thesis that BPEL's primary value lies in process portability (or even more absurd, interoperability through abstract processes) flies directly in the face of other successful standards. The real value of any standard is KNOWLEDGE portability. SQL is a case in point. Oracle's PL/SQL and Sybase's Stored Procedures are proprietary, non-portable extensions to the SQL standard. Yet millions of IT professionals know SQL syntax and semantics, and enjoy the enormous leverage resulting from that portable KNOWLEDGE. While it's true that standards enable interoperability and (in theory) reduced switching costs, portability of KNOWLEDGE is really where the rubber meets the road. BPEL is directly analogous to SQL in this regard.

With regard to transitions from BPEL 1.1 to 2.0, the level of rework will depend on how the 1.1 processes were constructed. Our 1.1 users have generally been mindful of the reality that they're building orchestrations based on an evolving standard, and they've factored some rework effort into their plans. That said, our BPEL 2.0 products are 100% backward compatible with 1.1. So ActiveBPEL users can simultaneously execute both 1.1 and 2.0 orchestrations in the same server, allowing them to migrate from 1.1 to 2.0 on timetables that suit their individual needs.

Fred Holahan
Active Endpoints, Inc.

Posted by: Fred Holahan at September 21, 2006 08:38 AM


The idea of a well implemented BPEL 2.0 is that many of the things people complain are missing, are quite easy to implement in the language as a sub-process, for example, human task workflow. However, this depends on a good implementation. Languages such as BPEL are not designed to be used only to expose services of existing technologies. BPEL needs an engine. This is called a process virtual machine. Good BPMS products include a process virtuall machine, and great design tools. For example, a tool can be used to design a workflow process, which can then be re-used within any other process. A process virtual machine is therefore a superset of typical workflow engines, allowing the whole process to be mapped, including sophisticated integration paths, data processing etc. This is not apparent from reading the BPEL spec. Only through an implementation can the value of a BPMS be seen. Having said all that, I'm not a great fan of BPEL myself. I preferred BPML. It was formally complete and rigorous in ways BPEL is not. But BPMS vendors were forced to adopt BPEL because the big boys in our industry appeared not to want to, or could not, implement BPML. So debates on BPEL are tied up with past debates over BPEL versus BPML. The ironic thing is, a good BPMS can use either, for the process virtual machine is what is complete and rigorous. Ultimately, BPEL, or BPML, is only an external syntax for the engine's execution semantics. Also, be aware that BPEL only specifies one participant's execution. A BPMS process engine must exectute across independently executing BPEL threads. These "end to end processes" are where the power of a BPMS lies. The BPMS can expose and reuse processes wherever they lie, in old code or new. (ex co-chair BPMI.org)

Posted by: Howard Smith at September 28, 2006 11:51 PM

unfold Re: WS-BPEL 2.0 - not backward compatible? by wsengineerwsengineer, 1161782112|%e %b %Y, %H:%M %Z|agohover
new post
page_revision: 1, last_edited: 1166622103|%e %b %Y, %H:%M %Z (%O ago)
Unless stated otherwise Content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.