While many developers still debate which tools are optimal for modeling business processes, Bruce Silver has made some strong points on why Business Process Execution Language (BPEL) does not make modeling with Business Process Modeling Notation (BPMN) simpler. He had seen a recent blog post by Active Endpoints CTO Michael Rowley claiming that BPMN2.0 with BPEL is simpler than the new BPMN execution language and wanted to set the record straight.
First off, BPMN and BPEL have slightly different aims.
While BPMN is graph oriented, like a flowchart, Silver says BPEL is more block oriented, like a computer program. Developers using BPMN2.0 to create BPEL are only using a subset of BPMN that supports “basic mapping,” according to the spec. The “extended mapping” section, on the other hand, does not conform to BPEL’s block-oriented structure.
For instance, in order to support freeform loopbacks in a diagram, a single BPMN process would have to be split into multiple BPEL processes that communicate through messaging. Such complexities between modeling notation and execution, Silver says, have prevented BPEL from becoming the BPM runtime standard.
Not to be bested, Rowley fired back with a second post saying the debate on BPMN2.0 with BPEL is just beginning. It was only this past August that BPMN2.0 went into beta and no vendor is officially using it yet. He said that while Silver disagreed about his assertion that BPMN with BPEL is easier than using BPMN execution language, Active Endpoints has built an execution engine and it isn’t terribly difficult to implement alternative overlapping language constructs.
“This debate about simplicity isn’t about what a vendor can build,” wrote Rowley. “It’s about what the ultimate impact of that engine technology is on the user who designs and deploys processes on that engine.”
In response to Silver’s assertion that BPEL is too block-oriented to work effectively with the graph-oriented BPMN, Rowley said BPMN supports both styles, but with some caveats. The problem when BPEL is made to work more like a flowchart is that loops must be nested. This leads to the major point the two agree on: BPMN is not a self-contained execution language. Perhaps that is the point that deserves the most attention.