The Diagram IS the Meaning

Bruce Silver put together a summary of The Real Issues with XPDL, BPEL, and BPMN where he explained better than I could that the aspect of portability that is more valuable depends on what you’re trying to do. He correctly points out that “XPDL captures the diagram, while BPEL captures the process semantics.”

Bruce brings BPMN into the discussion as potentially the standard that is possibly the most important. There have been a number of discussions recently of the relation of these three standards, Continue reading

Are Apples more useful than Oranges?

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:

Simple Parallel Process

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:

Transformation to XPDL

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.

The Tipping Point for XPDL

A lot of you know I am a big proponent of XPDL, the XML Process Definition Language. Not only because of the tremendous amount of good work that went into it, but also I see it being successfully used on a daily basis. It solves a real problem, and is available today. I am, apparently not the only one who feels this way.

In the last few weeks we have been investigating software that supports XPDL to try and get a definitive list, so we combined lists from several sources. The result surprised even me: we were able to identify over 60 different products that claim support for XPDL available today. Check the list at the WfMC site as well as my own list. Scan down the list of names, there are many important companies on the list:

  • Large corporations: Adobe, Advantys, Appian, BEA(Fuego), EMC, Fujitsu, IDS Scheer, Infor, Interwoven, Global 360, IBM(FileNet), Oracle, Software AG, TIBCO, Unisys, Vignette to name a few of the bigger ones. It is also worth noticing that implementation is not limited to large corporations.
  • Open source process editors such as Enhydra JaWE open source process editor and IT Pearls open source plug in for Visio which read and write XPDL.
  • Open source process engines that execute XPDL directly, including Enhydra Shark, WfMOpen, Open Business Engine, Bonita, Workflow::WfMC, jawFlow, Pentaho, and others.
  • Commercial process design tools like Cubetto Toolset, Jenz & Partner, Eclair Group Lynx.
  • Specialized process tools, for example consider SimProcess which is a stand alone process simulation product. Or Zynium’s Byzio product, which can convert any unprepared Visio dirgram into an XPDL file for transferral to other tools.
  • Adoption seems to be spread all over the world, including Rodan, HOGA.PL, R-DATA & Polsoft in Poland, Metoda S.p.A in Italy, Together in Austria, numerous companies in France, Germany, England, US, NEC Data & Fujitsu in Japan, Monosys in China, and many other parts of the world.
  • Across the technological landscape, many of these are written in Java but there is also strong representation in the .Net world with Ascentn and Aspose both offering .Net products that support XPDL, as well as Perl, C++, and other language offerings.

There is another way to get an idea for the breadth of adoption. Consider Gartner’s Magic Quadrant for BPMS vendors for 2006. In the top three quadrants, there are 11 vendors listed. (Actually 12, but IBM and FileNet merged late last year after the MQ was released.) Here is the alphabetical linup of the top 11 vendors and whether they support XPDL:

  • Adobe: YES
  • Appian: YES
  • BEA (Fuego): YES
  • Fujitsu: YES
  • Global 360: YES
  • IBM (FileNet): YES
  • Lombardi: ?
  • Metastorm: ?
  • Pegasystems: YES
  • Savvion: ?

8 of the 11 top BPMS vendors clearly support the standard, and the other three might, I simply don’t know at this time. Is it fair at this point to consider the standard a success?

Here is the really strange thing, nobody seems to know this! Just two weeks ago yet another article was written in Computer Business Review where Tony Baer makes the following claims:

“Until now, workflow has been fairly virgin territory, given the failure of XPDL, an XML standard developed by the Workflow Management Coalition to attain critical mass support much beyond the classic document workflow crowd.”

“…XPDL got too specific, and began traipsing on the agenda of vendors like IBM, Oracle, and SAP. They dismissed XPDL as being dated due to its document workflow orientation.”

What strange comments! A quick review of the list of supporters make it clear that classifying this list as “classic document workflow” is very much off the mark. How unusual that IBM and Oracle are listed as non-supporters, when in fact they do have products supporting XPDL. Where does this conclusion about being ‘document oriented’ come from? Mr Baer is not alone in being confused by all the mis-information produced by corporate marketing literature, but I would expect a journalist to research more thoroughly than the product brochures.

The biggest misperception in the marketplace is that BPEL and XPDL are in some kind of a war. I have already covered elsewhere how this is silly, so I won’t duplicate it here. I think Jon Pyke’s response makes it clear how these very different standards serve very different purposes.

Yet, in conclusion, I would like to express my gratitude to Mr Baer. It was his article, after all, that prompted us to get off our duffs and update the list of products that support XPDL. As I said before, more than 60 products supporting XPDL surprised even us. I believe we have reached the tipping point.

More Obsession with HDR Imaging

Comments sowed the seeds of doubt about whether HDR photography is worth the trouble. As a hobbiest I have not really spent much time manually manipulating RAW format pictures. My camera (Canon G6) has a 10 bit per pixel sensor, which gets then compressed to 8 bits per pixel in the JPG. That is potentially 10 f-stops (EV) of dynamic range. Somewhere I found a web page listing the G6 as having a luminosity range of 1:650, which is between 9 and 10 EV. I hear better cameras can get 10 to 11 EV. Maybe, as you say, that is enough. Clearly combining pictures taken +2 EV, and -2 EV could potentially potentially add 3 or 4, giving the total range around 13 or 14 EV. How do I know whether I need the extra range?

How important is this dynamic range, anyway? The human eye records an instantaneous dynamic range of 1:30,000, a range of 1:200,000 if you allow a couple of seconds for the iris adjust, and 1:1,000,000 if you wait 20 minutes for the eyes to adjust to darkness. All of these make the 1:1000 of a camera seem tiny. But how much do you really need? Continue reading

Playing With My Camera

A few days ago I found out about High Dynamic Range (HDR) photographs. A short search on the web will bring you lots of information, but somehow I have been living just fine completely oblivious to HDR.

The threory behind HDR is that film (and digital cameras) have a particular dynamic range that they are sensitive to. Light intensity values that fall outside of this range, tend to get smashed together and “washed out”. You can see this easily if you take a picture of someone with the sky behind them, but set the exposure so that you can see their face. Continue reading