<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BPMLab &#187; BPMN</title>
	<atom:link href="http://www.bpmlab.org/category/bpmn/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bpmlab.org</link>
	<description>Setting the standards for BPM 2.0</description>
	<lastBuildDate>Sun, 16 Nov 2008 18:28:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Why BPEL Matters</title>
		<link>http://www.bpmlab.org/2008/10/26/why-bpel-matters/</link>
		<comments>http://www.bpmlab.org/2008/10/26/why-bpel-matters/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 18:37:33 +0000</pubDate>
		<dc:creator>Ismael Ghalimi</dc:creator>
				<category><![CDATA[BPMN]]></category>
		<category><![CDATA[WS-BPEL]]></category>
		<category><![CDATA[XPDL]]></category>

		<guid isPermaLink="false">http://www.bpmlab.org/?p=13</guid>
		<description><![CDATA[Following my recent post on BPM 2.0, Sandy Kemsley, one of the few independent analysts covering the BPM space, was quick to agree with our updated definition of BPM 2.0, at the exception of one point (out of sixteen): support for BPEL. The question of BPEL vs. XPDL, (or BPEL vs. nothing) has been one of the most debated topics in the decade-long history of BPM. Here is why BPEL matters.]]></description>
			<content:encoded><![CDATA[<p>This article is an edited version of this <a title="Why BPEL Matters" href="http://itredux.com/2008/09/28/why-bpel/">original article</a> posted on IT|Redux.</p>
<p>Following my <a href="http://itredux.com/2008/09/26/bpm-20-mefiez-vous-des-imitations/">recent post on BPM 2.0</a>, Sandy Kemsley, one of the few independent analysts covering the BPM space, was quick to <a href="http://www.column2.com/2008/09/bookmarks-for-september-26th/">agree</a> with our updated definition of BPM 2.0, at the exception of one point (out of sixteen): support for BPEL. The question of BPEL vs. XPDL, (or BPEL vs. nothing) has been one of the most debated topics in the decade-long history of BPM. Here is why BPEL matters.</p>
<p>First, let me make something clear, once and for all: nobody should ever try to write BPEL code by hand, unless they really have to. As far as I&#8217;m concerned, the ones that really have to are employed by BPM vendors whose products support BPEL. BPEL is an extremely powerful yet very complex language, and I don&#8217;t think there are more than a few hundred people around the world who can write decent BPEL code by hand. BPEL is a precise yet verbose language that was conceived to be produced automatically by code generators, not written by hand. In other words, BPEL is for computers, not human beings, at least not the ones I usually hang out with.</p>
<p>Second, should you really want to write code by hand, you should use a simplified version of BPEL, based on a less verbose syntax, and such a language is currently being developed by Intalio as part of the Apache ODE project. It&#8217;s called <a href="http://dev.intalio.org/simpel/">SimPEL</a>, and it&#8217;s something that Ruby or Ruby on Rails folks will love.</p>
<p>Third, should you not want to write any code, you should move a step up the stack, and produce your BPEL code with a BPMN designer rather than a visual BPEL editor. The reason for it is pretty simple: BPEL is a complex language because of its semantics, not just because of its verbose syntax (which makes it complicated, but not necessarily complex), and a visual BPEL editor does very little to alleviate this complexity.</p>
<p>Now that we all agree that we should stay as far away from BPEL as possible, why on Earth does it matter that the core process engine runs BPEL code vs. XPDL, Java, or any proprietary process execution language devised by some BPM vendor? There are very many reasons for it, so let&#8217;s go through them one by one.</p>
<p><strong>BPEL won the war of standards</strong><br />
Whether you like it or not, BPEL won the war of standards. While we (Intalio) lost a battle when BPML was supplanted by BPEL (because we had failed to secure IBM&#8217;s support for it), the war was eventually won when BPEL 2.0 was released (with Intalio&#8217;s support), and all major vendors adopted it against XPDL, including Microsoft, Oracle, and SAP. Some legacy workflow vendors might find delight in trying to re-play lost battles  of the past (like some nostalgic French patriot dreaming of what could have been had Bonaparte&#8217;s army won the Battle of Waterloo &amp;mdash;  I know, I&#8217;m French), it&#8217;s time to move on. Really.</p>
<p><strong>BPMN is not enough</strong><br />
Many people who fought for XPDL five years ago are now promoting the idea that neither BPEL nor XPDL really matters, and that all we need is BPMN. After all, BPM is for business analysts (<a href="http://itredux.com/bpm-20/#analyst">wrong</a>), and all they care about is what the process looks like. This argument is disingenuous at best. Executable processes cannot be designed with BPMN alone. A BPMN diagram is the process&#8217; skeleton. For the process to walk (or run), it needs flesh around its skeleton. BPEL is the DNA that is used to produce it. Pick the wrong underlying language, and you end up with the wrong DNA. What&#8217;s missing in BPMN for it to describe executable processes? Data. Why is data important? Because a process without data is like a living being without language: it might walk or run, but it can&#8217;t speak nor listen. If your BPM vendor of choice is advocating that only BPMN matters, they&#8217;re using proprietary ways to make your processes fully executable, usually requiring a lot of custom code development, and this is the last thing you want for your processes. Whenever you find yourself listening to such a misleading marketing pitch, simply ask the following question: &#8220;Can you show me the code behind the boxes and arrows?&#8221;</p>
<p><strong>BPEL is built upon the right mathematical model</strong><br />
A BPM vendor has three options to make processes executable: BPEL, XPDL, or their own language. If they use BPEL, they&#8217;re leveraging the Pi-Calculus mathematical model for supporting the execution of distributed and collaborative processes, taking advantage of one of its very powerful features, channel passing. If they use XPDL, they do not benefit from such a capability. If they use their own language or execution model, they do not benefit from the academic work that is validating and strengthening existing standards.</p>
<p><strong>BPEL supports distributed transactions</strong><br />
Thanks to the notion of Scope, BPEL 2.0 supports distributed transactions that can be executed through the battle-tested two-phase commit protocol. Neither XPDL nor any proprietary process execution model I know of supports it, which makes them unsuitable for a broad range of enterprise applications. Again, you could hard-code distributed transactions within software components like Enterprise Java Beans, but this is not BPM (at least not BPM 2.0), it&#8217;s old-school OLTP.</p>
<p><strong>BPEL is the standard</strong><br />
BPEL won the war of standards, and as such became the industry standard, and standards matter. You might not care to know about them, but you definitely care to know that your system is built on them. If you own a car, you&#8217;re glad that it&#8217;s running on standard gasoline, and that you can get your refill at any gas pump, operated by any oil &amp; gas company â€” even though you hate the fact that gas is so expensive nowadays. It&#8217;s the same for a BPMS. If it&#8217;s built on top of BPEL, you&#8217;ll be able to take the processes you designed with its tool, and run them on another vendor&#8217;s engine. You cannot do that with a BPMS built on top of a proprietary execution model. Saying that BPEL does not matter when selecting a BPMS is like saying that SQL does not matter when selecting an RDBMS. Who in their right mind would buy a database engine that does not support SQL today? Why should it be any different with BPM and BPEL? This totally escapes me.</p>
<p><strong>Executable BPMN does not exist</strong><br />
Whenever challenged with the argument above, non-BPEL vendors make the point that BPMN is all you need, and that executable BPMN is coming soon. Supposedly, OMG&#8217;s BPMI.org is working on something like that, and if you read the Business Process Definition Metamodel (BPDM) with a strong-enough dose of wishful thinking, you might find it between the lines of this arcane specification that nobody supports. Reality is, there is nothing like executable BPMN, and should anyone develop such a thing and did a good job at it, they would end up re-inventing BPEL 2.0, or something very close to it. In other words, the combination of BPMN and BPEL is all you need to make processes executable. The two members of this duo play very nicely together, but separate one from the other, and the whole thing falls apart.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpmlab.org/2008/10/26/why-bpel-matters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

