I got a comment on my last post which so obviously misses the point so much of the discussion around these standards, that I half suspect this Anonymous post was a practical joke from a colleague for the amusement of watching me get defensive. However, lets assume that the poster was sincere, and respond to anyone who might hold a similar point of view.
Arguing that BPEL is “more” or “better” than XPDL is like arguing that red is “more” or “better” than blue. Like arguing that apples are “more” or “better” than oranges. Like arguing that a race-car is more or less useful than a jeep.
Consider an analogy of two file formats: one for documents (e.g. Microsoft Word) and one for presentations (e.g. Microsoft PowerPoint). If you look at a list of “brochure points” these different product categories might seem very similar: they both support fonts and word-wrapping, they both support pagination, they both have the ability to draw graphics, they both can do tables, they both can display full screen, they both have spell checking, they both support hidden comments, and so on. Yet you might assemble a room full of people; on one side would be the technical writers, journalist, novelists who would point out how the document format is clearly superior and more useful to them, and they would be right. These writers might say that they have the presentation software, but just use it to make graphics to paste into the documents, and overall the document format is of primary importance. Yet on the other side of the room is a bunch of presenters, lecturers, teachers, and (dare I say it) politicians. This side claims that is the presentation format that is far more useful and powerful; while they keep the document processor around to read files they occasionally find on the Internet, they really only need the presentation package to do their work. If such a debate were considered seriously, it could go on forever getting more and more detailed about the fine points of word-wrapping, spell-checking, animation, pagination, etc.
Hopefully this analogy makes it clear just how silly such a debate would be. There is no war between document processors and presentation graphics packages. Yes, there is a certain overlap, but the only thing that the debaters are proving is that they have different goals for what the software should do. There is no reason to believe that adoption of a document format will necessarily cause the exclusion of a presentation graphics format. They are different things used for different purposes.
Just to make things perfectly clear, I never said that BPEL was less important than XPDL. I never said that BPEL would in any way be replaced or supplanted by XPDL. BPEL is an important standard that does what it does, but utterly fails to what XPDL does, because it is simply a completely different thing. There is no war between XPDL and BPEL.
For example, draw a process diagram, lay the nodes and lines in particular positions, write it out to BPEL, and read it back in. It is impossible to get the same diagram back in because BPEL simply has no way to preserve node positions and line positions. Arguing that you don’t NEED the lines and positions to be preserved brings us with circular logic back to our starting point: BPEL and XPDL are designed to satisfy different needs. XPDL, on the other hand, represents the graphics of the process, and when you read it again you end up with the same diagram.
Let me illustrates the differences between these different standards in a more concrete way. I will have to use a very simple diagram, and a simplifications of the BPEL and XPDL output, so bear with me. Consider the following BPMN diagram:
What do you see? On the surface, you see six shapes: two circles, two diamonds, and two rounded rectangles. You also see six lines (with bends in them) that connect the shapes. Those lines have arrows to show the direction of flow. If you understand the symbols in BPMN, then you understand that this diagram is showing that after the process starts, there are two activities: Activity1 and Activity2, which execute at the same time. The process will complete only after both activities are complete. See how there are two ways of thinking about the picture, one is very superficial and includes the specific shapes, the other attempts to include only the underlying meaning. This is similar to the distinction between BPEL and XPDL.
BPEL attempts to capture only what the execution engine needs to know: the two activities and the fact that they need to be run in parallel. In BPEL, if you want to activities to run at the same time, you nest the activities inside of a <flow> tag. The flow tag says that everything inside of it will be executed in parallel. A highly simplified BPEL output might look like this:
In a certain sense, this is all that an execution engine needsto know. The two invoke activities will be launched in parallel, and the process will not complete until both invoke activities are complete. But if you try to read this back into the process modeler, you will find that you can construct something that looks very much like the original (because the AND gateways can be added in because they are logically required, and the arrows between them are logically required) but you can not guarantee that the diagram will be the same because the graphical information is simply not there in the file. Note that BPEL has no way to directly represent a line in the diagram, and it does not need to, since lines are not executed, they simply show the relationships of things.
The XPDL representation would be decidedly different. XPDL represent the process model, not simply what is needed to execute the process. It will have six activity tags to represent each of the nodes (in XPDL the term “activity” encompasses all of the BPMN nodes: activities, gateways, and events) and it will have six “transition” tags, one for each line. The graphical coordinates for the nodes can all be saved, and the points for the lines, including details of precisely where the lines bend and where they touch the nodes, is included in the Transition tag. A simplified version might look like this:
Above is a direct representation of the process diagram, not the abstracted meaning behind the diagram. It should be obvious to everyone that you can read the XPDL file, and recoverthe exact same diagram that you saved. XPDL is a direct one-for-one representation of the BPMN diagram, and all the additional attributes associated with the diagram. BPEL, on the other hand, is a one-way transformation; the translation is a “lossy” translation because it does not contain all the details of the diagram. It was never designed to do this, so there is nothing wrongwith this, it simply is something that BPEL does not do.
Saying that “BPEL is more portable than XPDL” simply tells me that all you care to communicate is the execution meaning of the process. It tells me that you do not care about, and possibly have never tried to transfer a process diagram of any complexity. If all you need to do is to communicate process execution semantics, then by all means continue to use BPEL – there is no reason to think you should be using XPDL for this. They are, after all, completely different standards designed for completely different things. However, your experience with interoperability is not commonplace. John Evdemon, co-chairman for the WSBPEL working group at OASIS, asked the attendees of last year’s BPM ThinkTank whether anyone was using BPEL for interoperability between products. When nobody raised their hands, he used this as evidence to support the claim that “the portability of executable BPEL will be low to non-existent“. It is a strong claim, and the head of the working group should have as much experience as anyone in the subject. But if it works for you, that is great.
I personally believe that eventually BPEL will offer great value to all of us, and I support its adoption for the things that it is capable of doing. At the same time, so does XPDL, which is capable of exchanging of process definition diagrams between products. The broad support of the XPDL standard today, with more than 60 products using it, is a sure sign that it will not die any time soon. I only hope that this post has helped make it clear for all those die-hards out there that adoption of XPDL does not mean that BPEL is on the decline nor does the adoption of BPEL cause the demise of XPDL. They are simply different things, like apples and oranges.