Thank you for this detailed answer. I would have liked to see it on
the original blog post for all to see, but I'm happy to join this
thread as well. I must say that I am quite mystified by your counter
argument. Implying that two languages are equivalent because they both
are "Turing complete" is utterly misleading.
Hi Ismael,
your pedigree proof for BPML is extremely convincing. The interview
piece is perfect and easy to understand for the Average Joe I'm.
But then, where did you get the link from XPDL to the Petri-Nets ? The
wikipedia page for XPDL (as of today), doesn't state anything about
Petri-Nets. Arthur already discarded as well that link you suggest.
Ismael wrote in http://itredux.com/2008/09/28/why-bpel/ :
>
> If they use XPDL, they're taking advantage of the Petrinet model for supporting the execution of standalone processes.
> If they use their own language or execution model, it's a hack devoid of any strong mathematical foundation,
> and it won't scale over the long run.
IIRC (or if I've googled correctly), YAWL
(http://www.yawl-system.com/) is the only workflow management system
based [directly] on Petri-Nets. In the context of your blog, only BPEL
based systems and YAWL have a strong mathematical foundation. So be
it, discarding "weak" sytems still leaves a lot of options (for the
open source world, I can think of jBPM, Ode and Orchestra for BPEL and
then the lone YAWL).
I'm glad you qualify Petri-Nets as a "strong mathematical foundation",
but it's a bit scary to see them leveraged as a useful adversary on
other occasions :
http://www.garyrgilbert.com/blog/index.cfm/2008/5/29/First-Impressions-Intalio-BPMS
(kudos for the excellent rating you got from Gary there)
I guess that other commercial vendors used "Petri-Nets vs Pi-Calculus"
against you, so you feel entitled to use the reverse technique, but I
think it's your responsibility as the "2.0" leader you are to play a
positive game.
Thanks to you and Arthur for the energy, vision and strength you bring
to the field.
Best regards,
--
John Mettraux - http://jmettraux.wordpress.com
I have nothing to teach you, but here is an implementation of your
scenario, in Ruby :
---8<---
$p0 = Thread.new do
puts("P0 (User)")
$p1 = Thread.new do
puts("P1")
$p2 = Thread.new do
puts("P2")
end
puts "something is happening here"
$p2.join
end
$p1.join
end
$p0.join
--->8---
You can call me lazy, I didn't go all the stack up to XPDL. At least I
know it will run on your mac.
Kind regards, +1 to Keith and Turing,
This version of yours would still be a valid implementation of the
BPMN diagram. But you're one step ahead of me, doing "green computing"
;)
My script is funny but then you realize its cousins are actually out
there, automating business processes, but it's not funny when the
script is planted as a workaround to a BPMS. Don't overlook the funny
scripts.
It would be good to see a diagram that illustrates the 'channel
passing' feature BPEL inherited from Pi-Calculus.
> Joke aside, did you take a look at SimPEL? What do you think?
Yes, I've been following it. The developer is a smart one.
> I'm all for playing the positive game, as long as everybody plays along.
I would find it positive for the image of your company if you stopped
making an abusive usage of Petri-Nets in your communication and in
your user training. There are other ways of using them, for example :
http://eprints.qut.edu.au/archive/00014809/
I reproduce the abstract here so that it won't get overlooked as it
was when Arthur first linked to it :
| Web service composition refers to the creation of new (Web) services by
| combining functionalities provided by existing ones. A number of
| domain-specific languages for service composition have been proposed, with
| consensus being formed around a process-oriented language known as WS-BPEL
| (or BPEL). The kernel of BPEL consists of simple communication primitives
| that may be combined using control-flow constructs expressing sequence,
| branching, parallelism, synchronization, etc. We present a comprehensive and
| rigorously defined mapping of BPEL constructs onto Petri net structures, and
| use this for the analysis of various dynamic properties related to
| unreachable activities, conflicting messages, garbage collection, conformance
| checking, and deadlocks and lifelocks in interaction processes. We use a
| mapping onto Petri nets because this allows us to use existing theoretical
| results and analysis tools. Unlike approaches based on finite state machines,
| we do not need to construct the state space, and can use structural analysis
| (e.g., transition invariants) instead. We have implemented a tool that
| translates BPEL processes into Petri nets and then applies Petri-net-based
| analysis techniques. This tool has been tested on different examples, and has
| been used to answer a variety of questions.
See ? No opposition. A "pi-calculus vs petri-nets" polarization is
easier to frame for your consumers, but please don't go on this "easy
way". Seems like your latest it|redux posts take a more positive
stance, focusing on the benefits brought by the pi-calculus, that's
great.
Thank you, kind regards,
I'll try to find a sponsor and to attend, I'll be glad to learn more
about your suite. But please allow me to step out of the classroom
during the "pi-calculus vs petri-nets" slides of the Intalio training,
for IMHO they contain - to use your words - "bogus pseudo-scientific
statements".
> Regarding Petri-Nets, please be assured that I have nothing against
> them. The article you referenced is great at explaining how BPEL can
> be mapped onto Petri-Nets, and a similar piece of work could be done
> for XPDL. What most people are missing though is that BPEL, through
> its support for channel passing, goes much beyond what the Petri-Nets
> model supports, and this is the whole point of my argument.
> But somehow, many people do not seem to like this idea, and I really do
> not understand why. Nevertheless, I'll keep pushing this over-
> simplified Pi-Calculus vs Petri-Nets polarization, for it's the best
> embodiment I found of a very important idea. End-to-end processes are
> inherently distributed, and Pi-Calculus (or ambient calculus) are
> better ways to describe them, through higher-level languages such as
> BPEL and SimPEL, themselves supported by higher-level notations such
> as BPMN (when using its multi-swimlane support).
OK, I'll be glad to teach myself about how to draw a BPMN diagram that
generates a BPEL document that leverages channel passing, during the
Intalio training.
> And guess what? The paper you're referencing only shows one BPEL
> process at a time. There is not one diagram that shows how multiple
> BPEL processes can be orchestrated together. Don't you find that a
> little bit weird? In other words, if you don't look for it, you won't
> find it, but it's sitting right in front of you...
I guess that you mean "how multiple BPEL processes can be
choreographed together".
> The same was true for the BPMN 1.0 specification. If you were to read
> it cursively, you'd never guess that it would offer support for
> multiple swimlanes, hence multiple processes.
On Sun, Oct 26, 2008 at 2:13 AM, Ghalimi <gha...@gmail.com> wrote:
>
> Quick correction: there is one, on section 3.7.
>
> My point remains the same though. The most fundamental element of BPEL
> is almost completely overlooked.
OK, I guess this element of BPEL is "channel passing", inherited from
Pi-Calculus. In BPEL-speak, that means passing the coordinates of a
process (service-ref) to another process over a message flow. Process
P0 receives a message from process P1 containing, in particular the
coordinates (potentially previously unknown) of process P2, thus
allowing process P0 to send a message to process P2.
I couldn't imagine living without that, even when prefixing "process"
with "sub-".
On the question of whether or not Petri-Nets support multiple
processes or are better at describing them, I would have pointed to
"hierarchical Petri-nets", but the section 3.7 that you mention seems
not to use them, it models the channel a request/response pair of
places labelled "communication medium", maybe that could embody the
message flow / channel of BPEL, respectively Pi-Calculus.
So I have to say that I don't know how to represent this "channel
passing" concept via Petri-Nets (nor do I know how to do it via BPMN
and its multi-pools), but, since you qualified this conversation here
as a "silly discussion", the greatest part of this "silly" label is
for me to bear and that lets me escape with my ignorance.
Kind regards,