Archive for the ‘BPMN’ Category

The BPMS owns the model

Monday, February 8th, 2010

Sandy Kemsley commented on the XPDL 2.2 effort to support the interchange of BPMN 2.0 model. I agree with her that it is a good thing. It will be a while before the BPMN 2.0 interchange formats are completed and even longer (if ever) before enough vendors support import and export of the format for it to be the lingua-franca of process models.

XPDL 2.1 is already supported by many tools, including ActiveVOS, so extending XPDL to support the new constructs in BPMN 2.0 will provide the fastest path for most vendors to achieve some level of interoperability of their BPMN 2.0 models.

Nonetheless, I’ve found that most people who have asked Active Endpoints about model import/export formats have been people who have the wrong idea of how to work with a BPMS. These are people who are trying to hold on to their old waterfall methodology for building software, where there are separate tools for building process models during analysis from the development tools that are later used to create the software. In that world, there is a constant need to translate back and forth between the tools as changes may occur on either side.

And there’s the rub. The roundtrip translation always loses so much information that the effort to keep the separate representations in sync and accurate outweighs the value of using the automatic export / import functionality. Eventually, changes made on the analysis side get redone on the implementation side by hand, and vice versa.

The right way to work is to let the BPMS own the model. Yes, you may want to allow early requirements gathering to use simpler modeling tools, but those tend to be fairly informal flow charts anyway. Once you get involved in real modeling you should use the modeling capabilities of your BPMS. By “real modeling”, I mean that you are at the stage where the precise semantics of the notation used is important, since it is going to drive the actual semantics of the resulting software.

In the early phases, the process models are diagrams where the labels on the diagram are what really matter. For example, the arrows coming out of an activity might formally imply that both directions can be followed at once, but the labels on the arrows have labels that imply that one one of them will happen. This is OK during the early stages of modeling, since it is another human who is going to be reading the model and they can guess what was really meant (or they can ask, if they aren’t sure).

Once you are ready to do real modeling, it is time to get the BPMS involved. That way the process model you create will go the rest of the way through the lifecycle of the project without need for translation, much less round-trip translation. How you get from the informal stage to the formal stage of process modeling isn’t really all that important. Yes, you can use XPDL 2.1, but it doesn’t really even matter if you have to redraw it from scratch. Drawing it is very fast in a capable designer like ActiveVOS, and the person doing the modeling is already going to have to be carefully considering each jot and tiddle of the original diagram to determine how to correctly model what the user really wanted to begin with.

CTO Tuesdays #12: ECM and BPMS Working Together

Wednesday, February 3rd, 2010

This episode of CTO Tuesdays features our first guest CTO. John Newton, CTO and chairman of Alfresco Software, joins Michael Rowley to discuss how enterprise content management systems (ECM) can be combined with business process management systems (BPMS) to create compelling end-to-end business applications. ActiveVOS and Alfresco implement the new Content Management Interoperability Standard (CMIS), enabling these two important technologies to work together to produce a new generation of business process applications.

Attached to this post are three versions of the webinar. First is an iPod-formatted .m4v file. Second, a Flash .flv. Third, we have attached a Windows Media 9-encoded .wmv. Finally, we have also attached a PDF of the presentation John delivered.

We hope you enjoy this episode of CTO Tuesdays. We hope, over time, to have additional guest CTOs on the podcast to talk about complementary technologies. And we’d love to hear your suggestions for topics as well as your comments and feedback.

icon for podpress  CTO Tuesdays #12: ECM and BPMS Working Together [47:22m]: Download (68)

 
icon for podpress  CTO Tuesdays #12: ECM and BPMS Working Together: Play Now | Play in Popup | Download (80)
icon for podpress  CTO Tuesdays #12: ECM and BPMS Working Together [47:28m]: Download (15)
icon for podpress  CTO Tuesdays #12: ECM and BPMS Working Together: Download (28)

CTO Tuesdays #11: Structured and unstructured BPMN modeling

Wednesday, January 27th, 2010

On this episode of CTO Tuesdays, we explore an important concept in software modeling: structured vs. unstructured modelers. Examples of both types are compared and contrasted. Also, the ActiveVOS BPMN 2.0 modeler, which blends the best of both types of modelers is demonstrated.

Three versions of the webinar are attached to this post: an iPod-formatted .m4v file, a Flash .flv file and a Windows Media 9-formatted .wmv.

icon for podpress  CTO Tuesdays #11: Structured and unstructured BPMN modeling [46:13m]: Download (104)

 
icon for podpress  CTO Tuesdays #11: Structured and unstructured BPMN modeling [46:11m]: Play Now | Play in Popup | Download (92)
icon for podpress  CTO Tuesdays #11: Structured and unstructured BPMN modeling [46:14m]: Download (44)

VOSibilities podcast #41: ActiveVOS 7 and IBM Rational Requirements Composer

Monday, January 25th, 2010

We are pleased to make available a recording of a webinar originally presented on January 13, 2010 with Andy Berner of IBM and Michael Rowley of Active Endpoints. This webinar shows how business process modeling suites (BPMS) can be used with requirements gathering tools to support the entire lifecycle of a business process.

There are three formats available. First, an iPod-formatted .m4v. Second, a Flash .flv file which can be streamed directly from the blog or downloaded. Third, a Windows Media 9-encoded .wmv. The .wmv file is about 55MB in size; the other two are about 96MB.

Please feel free to request an evaluation of ActiveVOS to begin to apply what you see and learn in this webinar to your business processes.

icon for podpress  VOSibilities podcast #41: ActiveVOS 7 and IBM Rational Requirements Composer [75:46m]: Download (64)

 
icon for podpress  VOSibilities podcast #41: ActiveVOS 7 and IBM Rational Requirements Composer: Play Now | Play in Popup | Download (53)
icon for podpress  VOSibilities podcast #41: ActiveVOS 7 and IBM Rational Requirements Composer [75:46m]: Download (24)

VOSibilities podcast #40: ActiveVOS 7 demonstration

Friday, January 22nd, 2010

Every Wednesday at noon ET, 17:00 UTC, we present a live webinar followed by a Q&A with our product manager, Mike Moniz, that takes a look at the features of ActiveVOS BPMS. You can always register for the upcoming webinar here.

However, we realize that this is a very inconvenient time for people in Asia-Pacific and some other time zones. So, we occasionally record the most recent webinar and post it to the blog. Attached to this post are three versions of the same recording. One, a .m4v file, is intended for iPod touch/iPhone users and is also available in our podcast feed. Second is a Flash .flv file (which can also be played directly on the blog). Finally, there’s an Windows Media 9-encoded .wmv. These files are large, because the webinar lasted over an hour. But the content is worth the download time.

icon for podpress  VOSibilities podcast #40: ActiveVOS 7 demonstration [77:31m]: Download (257)

 
icon for podpress  VOSibilities podcast #40: ActiveVOS 7 demonstration: Play Now | Play in Popup | Download (78)
icon for podpress  VOSibilities podcast #40: ActiveVOS 7 demonstration [75:07m]: Download (28)

CTO Tuesdays #10 Using requirements gathering tools with a BPMS

Wednesday, January 20th, 2010

This week, Michael Rowley presented “Using requirements gathering tools with a BPMS,” an interesting look at the relationship — and the possibilities — of using model-based BPMSs with requirements gathering tools.

We have posted three formats of the webinar replay. First is an iPod-formatted .m4v file. Also, a Flash file that can be played from the blog and/or downloaded. Finally, we have included a Windows Media 9-encoded .wmv file.

Please join us every week at noon ET, 9am PT and 17:00 GMT for CTO Tuesdays.

icon for podpress  CTO Tuesday #10 Using requirements gathering tools with a BPMS [40:59m]: Download (84)

 
icon for podpress  CTO Tuesday #10 Using requirements gathering tools with a BPMS [41:00m]: Play Now | Play in Popup | Download (78)
icon for podpress  CTO Tuesday #10 Using requirements gathering tools with a BPMS [41:01m]: Download (53)

CTO Tuesdays #9: BPM as an event source for CEP

Wednesday, January 13th, 2010

CTO Tuesdays is back for 2010!

In our first episode of the new year, Active Endpoints CTO Michael Rowley covers some basic theory of how complex event processing (CEP) works and makes the case for integrating a CEP engine directly into the BPM engine. Topics covered include the Event Processing Language (EPL), time windows as a method of correlating disparate events and event streams. In short, a fascinating — and accessible — introduction to a hot technical topic.

We have attached several formats of the webinar replay to this post. First, for iTunes subscribers, we have a .m4v file, perfect for taking along on your iPod. RSS feed subscribers will automatically receive this file. Also, there’s a .flv file which can be played directly on the blog (click where it says “click here” to play it). Also, we have attached a Windows Media 9-encoded .wmv file. Finally, the slides Michael presented are attached as a .pdf.

Be sure to join us live every Tuesday at noon ET, 9am PT, 17:00 UTC for a new topic. You can always register for the upcoming CTO Tuesdays webinar at http://www.activevos.com/ctot. Replays are usually posted here on our blog within 48 hours.

We have an exciting agenda of upcoming episodes, and later in the first part of Q1, we hope to guest CTOs join us for their perspectives on technical topics. We hope you will join us live each week.

icon for podpress  CTO Tuesdays #9: BPM as an event source for CEP [42:59m]: Download (127)

 
icon for podpress  CTO Tuesdays #9: BPM as an event source for CEP [43:00m]: Play Now | Play in Popup | Download (1)
icon for podpress  CTO Tuesdays #9: BPM as an event source for CEP [43:15m]: Download (41)
icon for podpress  CTO Tuesdays #9: BPM as an event source for CEP: Download (57)

ActiveVOS Experiences Rapid Sales Growth in Q4 2009

Wednesday, January 6th, 2010

In the last quarter of 2009, ActiveVOS sales grew rapidly. Details are in the attached press release.

icon for podpress  ActiveVOS Experiences Rapid Sales Growth in Q4 2009: Download (248)

CTO Tuesdays #8: An Introduction to BPMN

Wednesday, December 16th, 2009

We are pleased to make available content from the eighth episode of our weekly technical webinar CTO Tuesdays.

In this episode, Active Endpoints CTO Michael Rowley gives what might be the most concise, “digestable” overview of BPMN 2.0 available on the Web. If you are new to BPMN and want to see what it can do for you and your organization, this content is for you. In this webinar, Rowley discusses basic BPMN notation, including activities, events and gateways. And, in an expansive Q&A following the presentation, Rowley answers questions about the use and capabilities of BPMN.

There are four attachments contained in this post. First, an iPod-formatted .m4v recording of the webinar. This is for subscribers to the podcast in iTunes (search on “vosibilities”). Next, is a Flash .flv file which is intended to stream from the blog, though at the small size I have to limit the player to on the blog (416×312), it’s not the best experience. The .flv file itself is at 640×480, so feel free to download it if you want to play it locally. Next we have the original-sized Windows Media 9-encoded .wmv file. Finally, a PDF of the slides Rowley presented are attached.

We hope you find this content useful. You can always access the replays of CTO Tuesdays here on our blog, www.vosibilities.com in the “CTO Tuesdays” category, in our podcast on iTunes and via www.ctotuesdays.com or, for an RSS feed, www.ctotuesdays.com/feed. We’re trying to make it easy to find and use this content, so if there’s a method you prefer we haven’t accounted for, please let us know.

CTO Tuesdays will return to our every-Tuesday-at-noon-ET schedule in early January, 2010.  Next year we have some exciting additions planned, including guest appearances of CTOs from other leading technology companies. Make sure you sign up to attend every week. You can always sign up for the next episode at www.activevos.com/ctot.

Finally, in answer to a question we had in the Q&A, here’s a link to the OMG specification for BPMN 2.0. In Annex A of this document, you can find the differences between BPMN 1.2 and BPMN 2.0.

icon for podpress  CTO Tuesdays #8: An Introduction to BPMN [61:06m]: Download (310)

 
icon for podpress  CTO Tuesdays #8: An Introduction to BPMN [61:06m]: Play Now | Play in Popup | Download (419)
icon for podpress  CTO Tuesdays #8: An Introduction to BPMN [61:06m]: Download (222)
icon for podpress  CTO Tuesdays #8: An Introduction to BPMN: Download (219)

CTO Tuesdays #7: Adding Looping Links to BPEL

Wednesday, December 9th, 2009

Attached to this post is a reply of the December 8, 2009 edition of CTO Tuesdays. CTOT is a weekly webinar presented by Active Endpoints CTO Michael Rowley which presents a technical topic of interest to BPM users. CTOT discusses the “how” and “why” of technologies like BPMN and BPEL at a detailed technical level and is of interest to enterprise architects, developers and managers who want to understand the latest in BPM technology.

This episode takes a look at how it is possible to meld the “Wild West” control flow of BPMN 2.0 with the more buttoned-down control flow of BPEL. Rowley gives an example of a BPEL extension that effectively marries these two standards in a way that preserves the best of both BPMN modeling and BPEL execution.

There are two versions of the webinar replay file attached. First is an iPod-formatted .m4v. Also available is a Windows Media 9-encoded .wmv file.

You can always register for the upcoming CTO Tuesdays webinar at http://www.activevos.com/ctot. Registration is free. Access replays on the Wednesday following the webinar at http://www.ctotuesdays.com or via RSS feed at http://www.ctotuesdays.com/feed.

Be sure to join us next Tuesday, December 15, 2009 at noon ET, 17:00 UTC, 9am PT for a very special CTO Tuesdays in which Michael Rowley will deliver an introduction to BPMN 2.0. If you are interested in BPM and BPMS technology, you won’t want to miss this episode.

icon for podpress  CTO Tuesdays #7: Adding Looping Links to BPEL [45:01m]: Download (328)
icon for podpress  CTO Tuesdays #7: Adding Looping Links to BPEL [45:01m]: Download (202)

searchSOA.com on the BPMN 2.0 with BPEL discussion

Friday, December 4th, 2009

Frequent visitors to our blog (and we hope you become one) will have already that we are in the middle of a fascinating discussion on the question of execution engines. Now, Rob Barry of searchSOA.com has weighed in with this post.

We welcome your comments and feedback on this topic.

Also, we would also like to invite you to our weekly webinar CTO Tuesdays. Every Tuesday at noon ET, 17:00 UTC, Active Endpoints CTO Michael Rowley discusses a single technical topic in 30 minutes, followed by a Q&A from the audience. In the recent past, we’ve covered topics like the BPMN 2.0 diamond control flow and engine-managed execution. Our most recent webinar delved into the the issues of dead path detection in BPEL and how to model in BPMN 2.0 to avoid duplicate activity execution.

You can always find the replays of the webinars on this blog in the “CTO Tuesdays” category (RSS feed here). Registration for the next CTO Tuesdays webinar is always available here.

CTO Tuesdays #6: Diamond patterns in BPEL and BPMN

Wednesday, December 2nd, 2009

I am very pleased to post a recording of what I personally think was the most interesting CTO Tuesdays talk we’ve had yet. This time, Active Endpoints CTO Michael Rowley discussed BPMN 2.0 and BPEL control flows, pointing out the “trap doors” in BPMN 2.0 notation that can, for example, lead to unintended simultaneous downstream process execution and how BPEL (still using BPMN 2.0 notation) can effectively prevent hard-to-understand and -debug process applications in a BPMS.

CTO Tuesdays has been getting great feedback from our growing audience, and I’d like to offer this week’s episode as a good example of why. The discussion of BPMN 2.0 and BPEL flows is something you might not find elsewhere, delivered in an objective way and surrounded by stimulating questions and discussion with attendees. I hope you will join us every Tuesday at 17:00 GMT and participate as well. You can register at http://www.activevos.com/ctot. The replays are always available at http://www.ctotuesdays.com or via our RSS feed at http://www.ctotuesdays.com/feed

icon for podpress  CTO Tuesdays #6: Diamond patterns in BPEL and BPMN [51:17m]: Download (323)
icon for podpress  CTO Tuesdays #6: Diamond patterns in BPEL and BPMN [51:17m]: Download (209)

BPMN 2.0 with BPEL — the debate is just starting

Monday, November 23rd, 2009

Bruce Silver saw my previous post on the simplicity of BPMN vs. BPEL for execution and wondered: “Are we still debating this?”

Still?

The BPMN 2.0 spec just went to beta in August and no vendor yet has an implementation of the new BPMN 2.0 execution language. So at this point the debate is just getting started. We can only compare what exists (BPMN 2.0 with BPEL execution) with the theoretical idea of a product that will someday implement the new BPMN 2.0 execution language.

At that point we will be able to get a real side-by-side comparison. Until that time, we have to guard against “shiny-new-thing syndrome,” where the newly envisioned technology gets to paint a wonderful picture looking toward the horizon, while actual working technology has to compete against that vision bearing the stains that come from living where the rubber meets the road.  Although, in this case, even the horizon envisioned by the BPMN 2.0 execution language is tainted by some pretty scary-looking smoke.

Bruce dismissed my assertion that BPMN 2.0 on top of BPEL is simpler than the new BPMN 2.0 execution language with the following:

Simpler for whom?  When you sort it all out, he’s actually saying BPEL is simpler for an engine vendor because it doesn’t have overlapping or alternative constructs like BPMN does.  No one would argue with that, but who cares?  No engine vendor is going to support every possible BPMN 2.0 element and attribute called out in the metamodel.  And I’m not saying just in the first release.  Not ever.  In that sense, BPMN 2.0 is not a self-contained execution language like BPEL is.

We disagree. Because we’ve actually built an execution engine, we know that it is actually pretty easy to implement alternative overlapping language constructs. This debate about simplicity isn’t about what a vendor can build — it’s about what the ultimate impact of that engine technology is on the user who designs and deploys processes on that engine.

My concern is for the poor person who is trying to figure out what is going wrong with a process that occasionally gets stuck. Forward progress for a process that uses the BPMN 2.0 execution language depends on a complex interplay between a huge number of constructs: event handlers, correlation mechanisms, data-flow with optional and required data, and token-based control flow that has to account for multiple tokens flowing simultaneously on a single sequence flow.

The problem with a language that is large and complex is that it is hard to have any confidence that what you’ve created will always work the way that you expect it to in production, especially when you can only test a small subset of the exponential number of possible execution scenarios.

Bruce’s admission that “BPMN is not a self-contained execution language” is noteworthy and I hope people pay close attention to it. Why do people care about standards for the languages that they use for their software? The answer is portability – primarily portability of skills but also portability of code and interoperability of tools. Basically, they are looking for an ecosystem around the language.

I love the fact that portability of skills will be enhanced by the standardization of BPMN as a notation, but for all of the constructs that are necessary to get the thing to actually execute, it seems like there are two choices: use BPEL, which is (despite assertions to the contrary) quite portable, or use some vendor’s subset/interpretation of the new BPMN 2.0 execution language. By “interpretation” I mean that even strict conformance to BPMN 2.0 admits incredible levels of freedom that are counterproductive to the creation of a language ecosystem. The most egregious example of this is the fact that the type system is pluggable. Few things are more important in a language than the type system, and yet BPMN 2.0 allows vendors to choose their own.

Bruce’s attack on the use of BPEL with BPMN rests on the assumption that: “BPEL is inherently block oriented, like a computer program, while BPMN is inherently graph oriented, like a flowchart.” Actually, BPEL supports both styles (although with some caveats). Here is a process built using ActiveVOS that is standard BPEL:

FlowChartStyle

Doesn’t this look like a flow chart to you?

The one caveat that BPEL put on this style is that the loops have to be nested. This is where I agree with Bruce – without any extensions, BPEL does have an issue with “interleaved loops.” From my experience, interleaved loops are not the most common case, but if you do have a process where interleaved loops are the most natural way to represent it, what do you do? You have two choices: 1) with the use of variables, you can always rework the graph so that the loops aren’t interleaved; or, 2) you can use an extension to BPEL that removes the looping links restriction. This is an extension that is supported by both Active Endpoints and IBM and does away this nagging issue in the mapping between BPMN and BPEL. And it does this without thowing the entire language out the window and starting from scratch to make a bigger, more complex language.

VOSibilities podcast #39: Modeling process applications with BPMN 2.0

Friday, November 20th, 2009

We are pleased to present a recording of a webinar originally delivered on November 19, 2009 entitled Modeling Process Applications with BPMN 2.0. The webinar features Forrester Research Principal Analyst Jeffrey Hammond who delivers a talk called Balancing the Costs and Benefits of Software Modeling.

Active Endpoints CTO Michael Rowley then demonstrates using a BPMN 2.0 modeler to create executable BPEL processes.

A panel with Jeffrey and Michael follows the presentations.

Attached to this post are three files. An iPod-encoded .m4v file, a Windows Media 9-encoded file and a PDF of the slides that Jeffrey and Michael presented.

icon for podpress  VOSibilities podcast #39: Modeling process applications with BPMN 2.0 [80:03m]: Download (326)
icon for podpress  VOSibilities podcast #39: Modeling process applications with BPMN 2.0 [80:03m]: Download (4350)
icon for podpress  VOSibilities podcast #39: Modeling process applications with BPMN 2.0: Download (286)

Which is simpler: BPMN or BPEL?

Thursday, November 19th, 2009

BPMN or BPEL: which is simpler

BPEL is complex and BPMN is simple, right? After all, BPMN has a nice graphical notation. The BPEL standard only specifies what the language looks like in XML. That alone ought to be enough claim the prize for BPMN.

However, what if you use BPMN’s notation for a process but use BPEL for the executable representation? This removes the graphical vs. XML distinction and can “hide” the non-graphical BPEL as represented in XML. You end up with a BPMN model everyone can understand and a BPEL model your computers can execute. It’s like the two sides of a coin: there are different pictures on each side, but the coin itself is always both sides at once.

However the question of which is simpler gets more complicated when you also consider that the new BPMN 2.0 specification includes hundreds of constructs in its meta-model that have no graphical representation. Now, which is simpler, BPMN with BPEL or BPMN with the new BPMN 2.0 execution language? What may seem obvious (BPMN with BPMN 2.0 execution) isn’t the slam-dunk choice many people might expect it to be.

BPMN 2.0 has two different — but equal — compliance points for execution: BPEL Process Execution Conformance and Process Execution Conformance. This means that BPMN 2.0 standardizes the use of BPEL as the execution language for BPMN, but it also offers the option of making BPMN executable by using new constructs that have been added to the BPMN notation specifically to support execution. These new constructs depend on the execution semantics that have been defined for almost everything in BPMN.

So, which is simpler? Believe it or not, using BPMN with BPEL execution is dramatically simpler than trying to execute processes using the new BPMN 2.0 execution language. I know this sounds counter-intuitive, so I will justify it in this post and a series of follow-up posts on the same subject.

Before I get into the details of why I believe BPMN with BPEL is better, a little history might help clarify the question. There are some factors that caused the BPMN 2.0 standard to eventually become more complex than BPEL. (I know, I know, BPEL has the reputation of being far too complex…but hear me out.)

BPMN was designed to be a language for communicating from one person to another, not from a person to a machine. Languages used for human communication have a natural, and appropriate, tendancy to grow. Whenever people find that they frequently need to convey something that is awkward to express with their current vocabulary, they invent a new word. English, which is especially amenable to such growth, surpassed one million words last year. Just consider “unfriend” or “netbook,”  new words to express new ideas.

The same is true for graphical modeling languages. Look at UML (Universal Modeling Language). It started as the unification of three fairly simple graphical notations (best known by their respective primary inventors: Rumbaugh, Coad & Yourdan, and Grady Booch). Once they unified their modeling languages and people started using them in earnest, they grew larger and larger, with new diagrams and new elements on those diagrams with each successive version. Sure there was always overlap in what could be expressed by different diagrams or different elements, but in each case, there were situations where one was more natural to the reader than the other. The fact that different constructs have imprecise overlapping meanings is of little concern in a language meant for people, since people are comfortable with choosing among a variety of ways of expressing the same thing, each with their own nuances and connotations.

But while notation creep is a useful way of expanding spoken languages or graphical notations, it is not such a good thing for a language that must be directly executable on a computer.

That’s because it is always a problem to take such a large language and give it formal executable semantics. The problem usually isn’t with a lack of rigor in the definition of any one construct. The problem is with the exponential number of combinations of those constructs.

Good programming languages typically add new fundamental primitives very cautiously. Consider how much hard preparatory work was done in the Java community before Java introduced generics into the language, or the hand wringing that is gripping that community as they grapple with the addition of closures to the language. The way it typically works is that some eminently-respectable, highly-credentialed expert (like Neal Gafter, in the case of closures) will make a seemingly very well-thought-out proposal that describes how the new construct will simplify the lives of so many programmers. Then another equally eminent expert (like Josh Bloch, in this case) will find unintended consequences of the new construct when it is used in combination with other things in the language.

That was just for one language feature. The BPMN 2.0 execution language has dozens of features that have never really been used together in an execution language. For example, the BPMN 2.0 execution not only has a variety of ways of handing the control flow for multiple incoming sequence flows, activities also can’t execute until all of the required inputs from one of the activities input datasets has become available. In other words, it has a fairly complex data flow model intertwined with its control flow model.

Another example is message correlation. BPEL has, in the past, been criticized for the complexity of its approach to correlation, but BPMN has two different correlation mechanisms. Key-based correlation is basically equivalent to BPEL’s correlation mechanism, although the standard has invented all new terminology for the various components. It then defines a new concept of context-based correlation. Rather than trying to convince you that it is complex, I’ll just include the complete explanation of it from the BPMN 2.0 specification (yes, in a 500-page specification, there are no examples or additional explanations for these concepts):

In context-based correlation, the Process context (i.e., its Data Objects and Properties) may dynamically influence the matching criterion. That is, a CorrelationKey may be complemented by a Process-specific CorrelationSubscription. A CorrelationSubscription aggregates as many CorrelationProperty-Bindings as there are CorrelationProperties in the CorrelationKey. A CorrelationPropertyBinding relates to a specific CorrelationProperty and also links to a Formal-Expression which denotes a dynamic extraction rule atop the Process context. At runtime, the Correlation-Key instance for a particular Conversation is populated (and dynamically updated) from the Process context using these FormalExpressions. In that sense, changes in the Process context may alter the correlation condition.

Confused yet? Are you wondering not just why BPMN 2.0 needed to define and redefine an important concept like message correlation, but also wondering how, precisely, to implement BPMN correlation?

These are just a couple of the ways that BPMN’s new execution language is more complex that using BPMN with BPEL. BPEL is now a known commodity. It’s widely implemented. Many production applications are running BPEL today. There are many people with experience with it and the concepts in the language are well understood. With BPMN 2.0, it now has a standardized notation, so there is no need to work with a new language that is a big bag of language constructs whose interactions have never been exercised together.