BPEL and Pi-Calculus
Thursday, October 23rd 2008 | Ismael Ghalimi
Apparently, my last article on why BPEL matters ruffled some feathers. My arguments about why BPEL is better than XPDL on purely mathematical grounds are upsetting some “academics”, and I am being portrayed as a shallow marketer for making such unsubstantiated statements. I love nothing more than a fair fight, and I am pleased to see that such discussions are finally making their way online, proving that the issues at hand really matter. So let’s get back on the ring!
I made the claim that BPEL leverages the Pi-Calculus model, and as a result is more suited to support the execution of distributed processes. The “academic” refuting this claim countered that BPEL does not support the “distinguising feature of pi-calculus compared to other members of the process algebra family,” namely channel passing. Well, I beg to differ, and Assaf Arkin, CTO of Intalio, author of the BPML specification, and co-author of the BPEL specification would as well, as can be seen on this article.
My personal credentials with respect to such an “academic” discussion might be in doubt (after all, I’m just a marketing guy), but Assaf Arkin’s cannot, as illustrated on this interview of Robin Milner, inventor of Pi-Calculus.
But let’s cut through the chase. My supposedly-invalid marketing claim are no better than equally invalid pseudo-science. Let’s focus on facts instead, and what the combination of BPMN and BPEL allows, today, in the real world of enterprise software. For this purpose, I asked my friend Jacques-Alexandre Gerber to produce an example of an end-to-end process made of three participants, represented through three separate processes that synchronize each other via message passing.
Such a process can be modeled in BPMN, fully translated into BPEL, and directly executed by a BPEL engine. It shows how BPMN and BPEL can be used to describe and execute distributed processes, leveraging the very elements that make Pi-Calculus so powerful. If your XPDL tool can do that, show it to me. If it cannot, we made our point.
And moving forward, I’d very much appreciate if such discussions could place on the blog where they originated. Like any other human being, I have feelings, and right now I feel pretty lonely. Is my writing so ugly that it is scaring you off?
Entry filed under: BPM 2.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|












BPEL definitely supports channel passing. Channels are referenced as partner links, communicated in messages using the service-ref element, and you can copy from inbound channel (my role) to service-ref and from service-ref to outbound channel (partner role). There’s no lack of semantics here, and you can find all that information from a quick read of the spec.
Everything else, I’ll leave for the academics to discuss…
Ismael,
Let’s put a few things to rest off the bat. My feathers aren’t ruffled, and I don’t consider you a “marketing guy” but a freakin BPM genius. OK. But jeez, not this Pi-Calculus thing again! I think you are equating Pi-Calculus with event-aware BPM runtime, e.g. can implement BPMN message flows for async integration. I don’t think that requires Pi-Calculus or BPEL. Here are some XPDL/non-BPEL ones that can do it too: AquaLogic BPM (now Oracle BPM), Fujitsu Interstage, I think also TIBCO iProcess, I think even Adobe LiveCycle. Am I missing something? -Bruce
Assaf,
Thanks for the confirmation. -Ismael
Bruce,
You think they do, or you know they do?
And can they do it purely graphically, with no code behind the arrows?
And can they do it for processes deployed on different servers?
And can they do it in the context of a two-phase-commit transaction?
And could you please send the screenshots to backup your/their claims?
It’s show time baby! -Ismael
Ismael,
I don’t know why you are being so confrontational about this. You can keep changing the question if you want. The one I commented on was whether other BPMSs could execute the diagram in your post. Which they can, but who cares.
Pi-Calculus is just a mathematical formalism for process analysis. BPEL is just a particular execution language. XPDL is just a serialization format; it’s not an architecture. As a language it’s a superset of BPEL if anything. All this stuff is just irrelevant to your actual argument, which is about event-awareness, Open Source, BPO, whatever… I’m trying to tell you, as a friend, this Pi business is the William Ayers of BPM. It’s not advancing the discussion… -Bruce
Bruce,
Let’s keep politics out of the discussion, please. The analogy you’re making brings us down to the level of recent political maneuverings that are despicable at best. Definitely not worthy of this forum. But let’s move on.
It is very important to know which systems can execute such a basic diagram. It describes what distributed processes mean, and claiming that it does not matter is akin to claiming that distributed processes do not matter. If such is your point, then I’ll acknowledge it, and live with the fact that we’re definitely talking about two very different kinds of BPM. I hope this is not the case.
BPEL is not just another process execution language. It is the only process execution language I know that can support the execution of distributed processes on top of a standards-based Service Oriented Architecture. This might not matter to business analysts only interested by Business Process Re-engineering, but it sure does matter to the very BPM practitioners we’re working with.
Any serialization language for executable processes implies an architecture, whether you like it or not, and XPDL is no different in that respect. BPEL implies a fundamentally different architecture, and this is precisely the point I am trying to make. They are not the same, have both pros and cons, and I’m trying to foster an educated and honest discussion about them.
My original argument is about Pi-Calculus, what makes it powerful (channel passing), and the fact that BPEL supports it, natively, hence supports the execution of the process described in this article.
Confrontational, maybe. Relentless, certainly. So I’m going to ask again. Which tool do you know can support the execution of such process models, in a distributed fashion, on top of a Service Oriented Architecture, without having to write code? I know for a fact that Oracle BPM can do that, for it relies on BPMN and BPEL. I know SAP’s BPM product can do that as well, for it also relies on BPMN and BPEL. I just can’t think of any other product that can, and this is precisely the problem I am having. Am I blind, or is it that no other product can? And why is it so very painful for other vendors to admit it? If they do different things in different ways, let’s celebrate our differences. But for them to be celebrated, they have to be acknowledged first.
Best regards -Ismael
Trackback this post | Subscribe to the comments via RSS Feed
Leave a Comment