Hi Bill, I think I speak for a lot of people when I say that we're all focused on implementing BPEL. This discussion is all about picking the right tool for implementing the spec. Nobody's on a quest to solve the general process calculus theorem.
I'll draw an analogy from the compiler world, where you can either hand-code your own parser or you can use a general-purpose parser generator (e.g. YACC, ANTLR, JavaCC, and such) If you've hand-coded even a relatively simple language parser once, you already know what I mean. It's a hell of a job! It gets complex pretty fast, the code gets messy, hard to maintain and extend. So most of us prefer to use the best tool for the job which is a parser generator. Of course, we needed to learn about LR(0) or LALR theory, context-free grammars, reduction of tokens and other parsing concepts because it's a complex domain. But that's OK because we've already admitted to ourselves that we can't deal with the complexity of a hand-coded parser and we're willing to hit the learning curve because we see it as an investment rather than a cost or liability. The tools and body of knowledge around parsers raises the playing field and allows many of us to solve complex problems that would otherwise stomp even the best of us. I think this applies to Jacob as well. Admittedly, it's more complex than BPE but it's a framework that facilitates thinking and reasoning about concurrent and asynchronous operation. The relation to pi-calculus is more of a coincidence than anything. Fact is Jacob has proved to be very effective for implementing BPEL. The <foreach> case is a good example because Matthieu is a newbie when it comes to PXE (sorry Matthieu!) and it was his first foray into using Jacob. It was also an experiment for us to see how a new contributor could extend the BPEL runtime to support a new language construct. I think we can safely say that it was a success. I take your feedback as the need to address the documentation side of Jacob and this is something we'll be happy to produce. In the mean time, I invite everybody to read up on the Actor model if you haven't already and ask questions if there's something you don't understand. I guarantee it will be worth your time and effort, well beyond the applicability to Jacob or BPEL for that matter. cheers, alex Bill Flood wrote: > The Ode charter was formed to implement BPEL, not solve a general > process calculus problem (of which the latter is dubious in the > context of the runtime as formerly asserted in well respected academic > circles). > > If somebody wants to implement a general process engine or go beyond > BPEL with all sorts of extensions, that probably belongs somewhere > else. I don't want the community to need to understand process > calculus to work on this project (or the theory of universal Turing > machines for that matter) - because it is not entirely necessary in > the narrow context of the implementation of Ode for BPEL. > > I prefer the BPE core for that reason alone - simplicity and focus to > the BPEL runtime problem. The engine does precisely what it sets out > to do in a straightforward manner, doesn't introduce extra overhead or > concepts, and we can explain it in terms anyone familiar with BPEL can > understand. Besides, it's documented. ;-)
