Archive for the ‘BPEL’ Category

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.

CTO Tuesdays #5: Engine-managed correlation

Wednesday, November 18th, 2009

In episode #5 of our continuing webinar series on technical topics of interest to developers, architects and business analysts working with SOA-based business process management systems (BPMS), Dr. Michael Rowley, CTO, Active Endpoints compares and contrasts two different styles of message correlation. In episode #4, Michael outlined message correlation as defined by the BPEL standard. In this episode, Michael illustrates a different style of correlation, which relies on the execution engine to correlate incoming messages to specific processes. Michael also describes when and how each style (BPEL-managed vs. engine-managed) can be used and notes some pros and cons for each style.

There are two attached versions of the webinar replay (an iPod-formatted .m4v and a DivX-encoded .avi). As always, you can register for the next episode of CTO Tuesdays at http://www.activevos.com/ctot. We look forward to your comments, suggestions and feedback.

icon for podpress  CTO Tuesdays #5: Engine-managed correlation [30:10m]: Download (382)
icon for podpress  CTO Tuesdays #5: Engine-managed correlation [30:10m]: Download (347)

CTO Tuesdays #4: Message correlation

Monday, November 16th, 2009

I have good news and bad news. The good news is that we (finally) have replays of episode #4 of CTO Tuesdays, our regular weekly webinar on BPM topics of interest to process designers and developers. The subject of this webinar is message correlation, an interesting topic that details how systems match up running processes and the messages for those running processes.

The bad news is that due to a technical issue, the audio for the host, our own Sonal Rajan, wasn’t recorded. This is shame because at the end of each topic, we always have an open Q&A session on the current topic to amplify the technical discussion. Unfortunately, these replays won’t have that Q&A because there’s no audio for the moderator. However, the actual presentation about message correlation was recorded just fine.

In the two attached versions of the webinar replay (an iPod-formatted .m4v and a DivX-encoded .avi), I have edited most of the silent introduction and the Q&A.

As always, you can register for the next episode of CTO Tuesdays at http://www.activevos.com/ctot.

icon for podpress  CTO Tuesdays #4: Message correlation [35:53m]: Download (431)
icon for podpress  CTO Tuesdays #4: Message correlation [35:53m]: Download (459)

Why use BPMN for BPEL?

Thursday, November 5th, 2009

BPMN 2.0 and WS-BPEL 2.0 are the two most important standards for BPM today. But why are there two? Can’t you just care about BPEL or just care about BPMN? In fact, both standards matter and the two should be used together. To back that up, I have to convince you both that BPEL needs BPMN and that BPMN needs BPEL. In today’s post, I’ll concentrate on the first: why BPEL needs BPMN.

First, lets assume that you are convinced of the value of BPEL. You see that it is a great high-level language for creating business processes and orchestrating services. Its service-centric approach is simpler and better for long-term manageability and reuse than other approaches to business process management. It is an accepted OASIS standard with multiple vendor implementations, so investments in BPEL processes are not tied to a single vendor and you can find people who already know the language without having to train them from scratch.

But if you are convinced you want BPEL, why should you care about BPMN? There are two main reasons:

1) To get the value of a standard notation;

2) To improve collaboration with a wide variety of stakeholders in the process, since BPMN is a significant simplification over existing notations used for BPEL.

When WS-BPEL 2.0 was standardized, the OASIS Technical Committee chose not to standardize a graphical notation for it. This was unfortunate, since no one creates a business process by writing BPEL in XML, which is the only standardized representation. Every vendor, and every BPEL developer, creates their processes using a graphical representation, but that representation is different for every tool.

And the notations used by these tools haven’t really been very good. They typically provide a one-to-one correspondence between control flow constructs in BPEL and things on the canvas. However, if you use the BPMN notation, it shows a notation that can mostly be understood without any knowledge of BPEL or even BPMN for that matter (as long as the labels are chosen carefully).

Let me make both of these points with the help of a trivial process example. Take a look at the BPMN representation of a process that I’ll call the “Question” process.

(Click on each image to see a larger version)

clip_image002[4]

It is trivial to follow what is going on, especially if you know the standard notation. You can’t tell by looking at this diagram, but I’ve used two different BPEL mechanisms for getting to the next activity. I use a BPEL link to get from “Receive Q” to the first diamond (the beginning of the BPEL if statement). I use a BPEL sequence to get from the second diamond (the end of the if) to the “Record Answer” activity.

The user who is looking at the graphical representation of the process doesn’t need to know about the distinction between these two mechanisms, so the diagram doesn’t show a difference. The developer may want to know about the difference, so ActiveVOS highlights them differently on mouse-over and shows them differently in the “process outline view”, but that isn’t really important for today’s discussion.

What is important is how different the process is represented in different tools due to the fact that no notation had been standardized. I’ll show what this process looks like in three different BPEL process designers.

Here is how ActiveVOS would represent this process in previous versions of the product (or using the optional “classic” style in 7.0):

clip_image004[4]

Here is how the Eclipse BPEL Designer represents it:

clip_image006[4]

And, here is how the designer for Oracle’s BPEL Process Manager represents it:

clip_image008[4]

In all three of these representations, each of the paths through the if statement are represented by a bounding box. The problem with this representation is that nested if statements can result in so many nested bounding boxes that it is hard to follow what is going on. BPMN simply has arrows through each path and the paths merge back into a single control flow at a gateway diamond.

Also notice the differences in the handling of links vs. sequences. Both ActiveVOS classic and Eclipse represent sequences with their own bounding boxes, then any arrow that is a direct child of a sequence box is known to belong to the sequence, rather than being a real link. Eclipse also draws the links in different color. The extra sequence icon and corresponding bounding box just interferes with the ability for non-technical users to follow what is going on in the process.

Oracle’s designer is odd in this respect. Sequences are not shown in a bounding box, so they don’t clutter up the control flow (a good thing in my opinion), but links aren’t shown at all! There is a link from the “Receive_Q” activity to the if statement, but there isn’t any representation of it on the diagram. It shows the “Receive_Q” and the if as if they happen in parallel. You have to look into the properties of “Receive_Q” to discover that it has an outgoing link, and further rummaging to find out where it goes.

The BPMN representation is, by far, the easiest version of this small process to understand. The process illustrates just three constructs whose representation is simpler with BPMN than with other approaches: ifs, sequences and links. The other BPEL constructs are generally as easy or easier for non-technical users to understand than previous approaches.

But, as valuable as the improvement in readability may be, the greater value that BPMN brings to be BPEL is probably consistency. Having different tools represent similar constructs in such different ways is detrimental to one of the key values in having a standard: skills portability. With a common notation, people will be able to carry their knowledge of how to understand and work with standards-based business processes between vendor tools. It will also create a greater incentive for people to learn these technologies and for schools to teach them. After all, people aren’t usually to thrilled about investing a lot of energy into learning proprietary technologies, and no school really wants to be teaching proprietary technologies.

CTO Tuesdays #3: BPMN and BPEL events

Wednesday, November 4th, 2009

This week on CTO Tuesdays Active Endpoints CTO Michael Rowley presented how events are represented in BPMN 2.0 and BPEL.

I think you will find Michael’s explanation of BPMN 2.0 event notation especially valuable.

I have attached two versions of the recorded webinar to this post. The first is an iPod-formatted .m4v. Also attached to this post is a Windows Media format .wmv file.

We have also made signing up for CTO Tuesdays and accessing the replays much easier. You can always sign up for the upcoming session of CTO Tuesdays at http://www.activevos.com/ctot. Replays are always available at http://www.ctotuesdays.com. And, an RSS feed of the replays is available at http://www.ctotuesdays.com/feed.

icon for podpress  CTO Tuesdays #3: BPMN and BPEL events [43:57m]: Download (452)
icon for podpress  CTO Tuesdays #3: BPMN and BPEL events [43:57m]: Download (4478)

CTO Tuesdays #2: Introduction to WS-HumanTask

Wednesday, October 28th, 2009

This week’s topic on CTO Tuesdays was an introduction to the new WS-HumanTask standard for workflow. In this informative session, Michael Rowley describes the importance of the new standard for workflow, how it separates tasks from processing and how WS-HumanTask enables human activities to be seen as services in a process application.

Attached to this post are three files. A PDF of the slides Dr. Rowley presented, an iPod-formatted .m4v file (which requires QuickTime or iTunes to be installed) and a more-or-less standard .avi file. The .avi is the larger of the two video files.

Due to a technical error (I didn’t press “show” on GoToMeeting), the first few minutes of the video show Michael’s slides, not the ones I am discussing. Since this is just an introduction, you won’t miss anything. I’ve put those “missing” slides into the .pdf file, so you can follow along if you want to.

We had a very lively panel discussion at the end of the presentation; I hope you’ll have the time to listen to the discussion that follows the presentation.

As always, we are very interested in your feedback, comments and topic suggestions.

One more note: you can always register for the upcoming CTO Tuesdays session by visiting http://www.activevos.com/ctot. We hope you join us for next week’s webinar.

icon for podpress  CTO Tuesdays #2: Introduction to WS-HumanTask [49:03m]: Download (8505)
icon for podpress  CTO Tuesdays #2: Introduction to WS-HumanTask [48:56m]: Download (1087)
icon for podpress  CTO Tuesdays #2: Introduction to WS-HumanTask: Download (308)

CTO Tuesdays #1: The BPMN diamond

Wednesday, October 21st, 2009

We are very pleased to post the recording of the first episode of our new weekly webinar on BPM technology called CTO Tuesdays.

Every Tuesday, Active Endpoints’ CTO Michael Rowley, will present a topic of interest to BPM users. Our inaugural topic was an explanation of the meaning and uses of the BPMN 2.0 diamond symbol. If you are interested in learning BPMN 2.0 — or if you just want to brush up on some of the more advanced considerations in using this basic BPMN symbol — you will find this recording very instructive. Concepts are demonstrated in ActiveVOS 7’s new BPMN 2.0 modeler.

Attached to this post are two versions of the webinar: an iPod-formatted .m4v file our podcast subscribers will automatically receive and an H.264-encoded .avi file (which is much larger at about 113MB).

We welcome your input and suggestions for CTO Tuesdays. Contact us via email at editor at activevos dot com. Today, the best way to be notified of upcoming CTO Tuesdays is to be on our mailing list. And, the best way to get onto our mailing list is to download a trial of ActiveVOS. You can also register for upcoming CTO Tuesdays by clicking on the link in the right hand column of any interior page on www.activevos.com.

We are working hard on making registering for CTO Tuesdays easier. But because of the demand for education on topics like BPMN 2.0, we started the webinar series without waiting to dot all the “i’s” and cross all our “t’s.”

Update: You can now register for CTO Tuesdays by clicking the link in the right-hand column of any page on www.activevos.com except the home page. So, just navigate into the site a little and you’ll get a little reward: easy access to registration for CTO Tuesdays.

Updated update: You can now always register for the upcoming CTO Tuesdays at http://www.activevos.com/ctot.

We hope you enjoy this recording and that you will join us as your schedule permits for the live CTO Tuesdays every Tuesday at noon ET, 9am PT, 16:00 GMT (17:00 GMT after the end of US daylight savings time in November, 2009).

 
icon for podpress  CTOT #1: The BPMN diamond [39:32m]: Play Now | Play in Popup | Download (4605)
icon for podpress  CTOT #1: The BPMN diamond [39:30m]: Download (7408)

If SCA is a tool, it is a power tool

Tuesday, August 4th, 2009

powertool

I’m pleased that my recent disagreement with JP Morgenthal was noticed by Joe McKendrick, on his Service Oriented blog, and by Loraine Lawson at ITBusinessEdge. Now, having set the record straight, we can step back a little and start a more general discussion about SCA and why it’s a powerful new approach for developing applications. Loraine made a few comments in particular that got me thinking more about the value of SCA to a chief architect who is “prioritizing and rationalizing applications from an enterprise perspective.”

Once this architect has prioritized the needs of IT for the enterprise, it is critical that the architect’s development team has the right “tools” to update or create the applications that will meet those enterprise priorities. The development team also wants to improve its ability to maintain the application in the long run. I put the word “tools” in quotes in the previous sentence to emphasize the fact that I am using the word in its most general form. Your programming language is a tool. The design patterns you follow are tools. And, of course, the middleware infrastructure you use is a tool. J.P. is just wrong to assert that SCA will lock you into dependency on a vendor. There is no reason that middleware has to lock you in to a vendor any more than using a programming language locks you into a vendor, but that is only true if the middleware uses…

standards (and the right standards at that). If SCA were just some vendor’s tool that was promising great things, J.P. and everyone else would be right to be skeptical. But it isn’t proprietary, it’s a standard.

There are a few important reasons why this is important. It is always difficult to hire people who are skilled in a vendor’s proprietary technology and any application that depends on the technology is always at risk, since the vendor may choose to “improve” the technology in a direction that is retrograde for you. Or, the vendor could possibly abandon it altogether.

A good middleware standard is like a high-level language. It raises the level of abstraction that developers work in, so they can think about the actual problem being solved instead of fiddling with bits – or SOAP headers.  There are three recent standards that do exactly this: BPEL, BPMN and SCA.  BPEL is a language that is specifically designed around creating and using services, so it is also inherently middleware. Then there is BPMN, which standardizes the notation — the look of the business process on the design canvas — so that developers and non-developers alike can share an understanding of what is going on. And finally there is SCA, which allows developers to create, wire, package and deploy services without having to sweat the details of the numerous WS-* standards for every service that is created or used.  It, like high-level languages, raises the level of abstraction without significantly constraining what a developer can accomplish.

Forcing a development team to avoid recent advances in middleware today would be like having a manager in the 1970’s forcing their developers to program in assembler due to a mistrust of languages like FORTRAN. Productivity would suffer.

VOSibilities podcast #36: The Naval Research Laboratory on SOA-based process orchestration

Wednesday, July 29th, 2009

We are pleased to offer a recording of a webinar presented by Jim Ballas, Ph.D. and Justin Nevitt of the Naval Research Laboratory on the topic of process orchestration for defense systems. Originally presented on July 29, 2009, the webinar also features Rick Rosenburg, CEO, Seros, Inc and me, Alex Neihaus, as moderator and host. Jim and Justin describe the leading-edge work they have done in researching the applicability of web services and orchestration for defense systems. Their learnings are also generally applicable to non-defense users interested in developing the next generation of applications.

There are three files attached to this post. First, an iPod-formatted .m4v file that’s approximately 140MB in size. Subscribers to the VOSibilities podcast feed (search on “vosibilities” in the iTunes Store) will automatically receive this file. Also available are a DivX-encoded .avi file (about 375MB) and the slides that were presented as a PDF.

 
icon for podpress  VOSibilities podcast #36: The Naval Research Laboratory on SOA-based process orchestration [83:57m]: Play Now | Play in Popup | Download (816)
icon for podpress  VOSibilities podcast #36: The Naval Research Laboratory on SOA-based process orchestration [83:54m]: Download (644)
icon for podpress  VOSibilities podcast #36: The Naval Research Laboratory on SOA-based process orchestration -- slides: Download (385)

Active Endpoints considers the JBoss BPEL Riftsaw project

Thursday, July 23rd, 2009

back to the past

Yesterday (July 22), Red Hat announced its JBoss BPEL server, available via an open-source project called Riftsaw.

As you can imagine, the whole team at Active Endpoints was interested in the announcement because Active Endpoints is a leader in the BPEL standards effort, ActiveVOS processes are executed as BPEL  (but ActiveVOS  is most emphatically not “just a BPEL engine”) and the new project will create more interest in next-generation application development.

I wish you could be party to the intense discussions the announcement of the JBoss BPEL server kicked off inside our company. One the one hand, we note with pleasure the validation of BPEL that a new JBoss BPEL server signals to developers. On the other hand, we worry that what we saw (or should I say, ” what we riftsaw” :-) ) yesterday will be “good enough” for many developers who are new to services-based development and who don’t realize how rich services-based BPM systems have become. In short, we welcome the JBoss BPEL server to the party, but we want to make sure developers understand there’s no reason to set the clock back with systems that deliver elementary tooling, manual command-line deployment, no operational control and hand-editing of XML files. We want to draw a bright line between an integrated, BPEL-based BPMS that development teams love to use and individual technologies that must be pieced together using Notepad++, soapUI, the command line and ant scripts.

Bear with me a minute as we step back and think about where BPEL came from, where it is today and why the JBoss BPEL server is a step back from several years of advancement in the BPM and BPEL world.

First, why even have something like BPEL? Industry standards aren’t just “whipped up” on a collective industry whim, because getting a standard specified and approved is an arduous process. (Just ask Michael Rowley, who labors with other vendors to keep the BPEL and BPEL4People standards moving forward.) To overcome that inertia and make competitors agree, there must be both a pressing need and a general consensus that something has to be done. The shift to services-based development was the pressing need, and Active Endpoints, Oracle, IBM, SAP and others helped create the general consensus. The result? BPEL: a language designed specifically to do what Java, C++ and C# natively can’t: orchestrate services.

But a standard is just that: a specification. To make the standard into a product that developers will love using is a big job, and it’s how vendors approach that product development effort that differentiates their products. The differences between the “raw” implementation of a standard and a fully-integrated product is what makes competitive vendors willing to agree to a standard in the first place. They hope to benefit by delivering complete solutions based on the standard…they differentiate by combining the standard with other features and capabilities to develop whole products that developers will enjoy using because those products are easy, integrated, complete and fun.

Now I believe (and I may upset some folks with this assertion) that the BPEL effort, noble as it is to introduce a purpose-built language for service orchestration, originally shot itself in the foot because it didn’t specify a way to visually design BPEL and because, until BPEL4People, there was no way to integrate human and automated tasks in processes in  a standardized way. Both issues have been corrected, but BPEL has had trouble shaking the reputation of being hard to develop and deploy.

We think the JBoss BPEL server is likely to resurrect that misperception because it lacks advanced tooling and it has not implemented BPEL4People. We fear that large numbers of developers will experiment with the JBoss BPEL server, decide that it’s either too complex, or perversely, “acceptable” because they like elemental tooling and never experience what a modern BPMS with a superior development and deployment environment can deliver.

I want to give you just one example contrasting a “raw” BPEL server and a complete development environment based on BPEL. BPEL has core and very confusing concepts called partner link types and partner links. These are powerful concepts but not obvious, especially to developers new to services. If you are a services guru, you can understand it easily. If you are like many developers, the explanation is likely to give you a headache and make you swear off BPEL. But there’s no reason to expose the concept of BPEL partner links to the vast majority of process developers.

So, in ActiveVOS 6, we introduced the concept of the Participant’s View, pictured here:

participantsviewinactivevos

In ActiveVOS, we know BPEL so you don’t have to. Once you’ve imported the WSDLs, we can automatically set up the partner links and partner link types (e.g., upstream and downstream “participants”) in a handy graphical view. You simply drag them onto the canvas, and voila!, instant creation of the correct partner links and partner link types. Contrast ActiveVOS with the recorded July 22 demo of the JBoss BPEL server, which demonstrates editing partner links with Notepad++.

We think we know which kind of development system developers prefer. (And by the way, if you really have to or want to edit the BPEL partner link types in ActiveVOS, be our guest. What we produce automatically and graphically is 100% pure BPEL…just the way you like it.)

This is just one example of the difference between a fully-developed, mature, standards-based BPMS the entire development team can use and “raw” technology in the form of an open source  project. We urge developers to look beyond the headlines of “standards” and “projects” to complete products that are rigorously based on standards but which also make development using those standards simple and quick.

Thinking about BPM? What you should REALLY ask your BPMS vendor

Friday, May 8th, 2009

bpm-questions-you-should-ask-your-bpms-vendor

Keith Swenson has posted this interesting list of questions to ask a BPM vendor.  I liked his emphasis on standards, since it is so important that the hard work that goes into creating business processes not be trapped in proprietary technology.  However, I think he concentrated on the wrong standard — XPDL.  If you really care about safeguarding your investment in your processes, the standard that you should care the most about is BPEL4People.

Don’t get me wrong, XPDL has its place.  ActiveVOS can both import and export XPDL version 2.1 (the latest version).   But XPDL is not a technology that will allow you to take an business process that is executable on one vendor’s BPM engine and move it to another vendor’s engine.  It just won’t work.  If you are lucky, the resulting business process diagram will look recognizable because the “abstract model” (as XPDL calls it) will import successfully.  But don’t get your hopes up about saving all the work that you did on the executable details.

The problem is not that XPDL has no place to put those executable details — it does.  It just doesn’t put enough constraints on what should go there.  There are just too many different things you can do, so no two tools do the same things.   Also, the bar for being able to say that you support XPDL 2.1 is just too low.  If a tool exports something that conforms to the XML Schema (possibly with liberal use of extensions) and import doesn’t barf on any Schema-valid input, then the tool conforms.  But don’t look for guarantees that you will see, much less be able to execute, anything reasonable.

By contrast, users of ActiveVOS have had great success in using BPEL-based business processes that were created by either IBM, Oracle or TIBCO tooling.  They have also found that the BPEL generated by ActiveVOS can be used by the tools of those other vendors.  That is real investment protection.

I do like Keith’s idea of having a list of questions for BPM vendors to help in the evaluation process.  I think the best way to organize such an evaluation is around four key areas.

Are the key BPM standards supported?

  • Does the product generate executable WS-BPEL 2.0 processes?
  • Can you model processes using BPMN?
  • Does the product use the BPEL4People for activities that are handled by people?
  • Are worklists and tasks exposed through the WS-HumanTask standard?
  • Does it support the important enterprise web-service standards, such as WS-Security and WS-ReliableMessaging?
  • How about non-SOAP access to services, such as JMS, REST or plain Java?
  • Does the product import and export XPDL?

Does the development environment make the process developer highly productive, especially for processes that are larger than mere toys?  For some important examples, how easy is it to:

  • Incorporate existing web services into a process?
  • Detect changes to web service definitions and update the process accordingly?
  • Define services provided by the process (including defining XML Schemas and WSDL)?
  • Define new human tasks using existing data definitions (XSDs)?
  • Prepare the input data for human tasks or services?
  • Support services that “call back” into a running process, and specify the appropriate data to use for correlation?
  • Find all uses of a variable within a large process?

An executable process is deployed software.  What support is available for ensuring and maintaining its quality?

  • Is there test case generation?
  • Is there test suite support?
  • Is there remote debugging?
  • Is there Metadata for controlling the difference between staging and deployment?
  • Can you new versions without effecting existing process instances?
  • Can you deploy new versions that do change existing process instances?

What can be done to a running instance?  Can you:

  • See where it has been (with anotations on the process diagram)?
  • View current and historical data?
  • Change data?
  • Skip activities?
  • Single step through activities?
  • Rewind execution, optionally reverting all process data to what it was?

What kind of runtime console support is there?

  • Can you get reports with either operational or business information?
  • Can the end user create any kind of new report and incorporate it into the runtime console?
  • How powerful is the query capability to find a process instance you care about?

All of these characteristics of a BPMS will eventually be important to anyone that is creating the kind of critical business processes that will really transform a business.  Knowing the answers to these questions can help you to avoid making the wrong choice.

Fastenal Corp. uses ActiveVOS to implement SOA

Tuesday, March 10th, 2009

Integration developer Adam Swift at Fastenal describes how his team uses ActiveVOS to quickly implement SOA-based applications for vital business processes, including an order management system. Read the article here.

VOSibilities podcast #28: ActiveVOS 6.1

Friday, March 6th, 2009

The VOSibilities podcast from Active Endpoints on BPM, BPEL, BPMN, BPM, CEP and SOA for service orchestration and Java developers

It’s my great pleasure to post a conversation with my colleagues here at Active Endpoints, Michael Rowley, director of technology and strategy and Luc Clément, senior director of products in which they discuss the themes and features in our new release, ActiveVOS 6.1.

Michael and Luc detail how ActiveVOS 6.1 has masked the complexity of BPEL, allowing developers to work more naturally to create advanced SOA-based BPM applications. Luc and Michael also discuss the capabilities of a new feature in ActiveVOS 6.1 called “process rewind” which permits new levels of control over running processes.

And, Michael and Luc give a sneak peak at what’s next for ActiveVOS 6.1, discussing how a BPMN-style canvas can improve collaboration in the development of BPM applications. You may also find the the What’s New in ActiveVOS 6.1 document we posted earlier this week on the blog informative as well.

Whether you are a current user of ActiveVOS or you are evaluating BPM systems, I hope you will find this podcast an informative update. As I am posting this podcast before ActiveVOS 6.1 is officially released, I do not yet have direct links to the new content on our website. But if you visit our home page starting March 10, 2009, you will be able to quickly find updated samples, documentation, demonstrations and, of course, a free trial of ActiveVOS 6.1.

 
icon for podpress  VOSibilities podcast #28: ActiveVOS 6.1: Play Now | Play in Popup | Download (370)

VOSibilities podcast #27 An Update on the BPEL4People & WS-Human Task Standards

Tuesday, January 27th, 2009

The VOSibilities podcast from Active Endpoints on BPM, BPEL, BPMN, BPM, CEP and SOA for service orchestration and Java developers

Last week, Active Endpoints’ Michael Rowley participated in the quarterly face-to-face meeting of the OASIS Technical Committee working on the BPEL4People and WS-Human Task specifications. In this very engaging podcast, Rowley describes the inner workings of TC’s (something you usually don’t hear much about), describes the work the TC has recently accomplished and articulates the grand vision for business process management (BPM) and workflow that the committee has been working  on.

If you’ve been wondering about the state of standards-based BPM and workflow systems or, frankly, if you think BPEL and BPEL4People have dropped out of sight, I strongly encourage you to listen to this podcast. You’ll hear how some the of most important thought-leaders in the IT world, including IBM, SAP, Oracle, Microsoft, TIBCO and, of course, Active Endpoints, are working towards a BPM world in which standardized systems make it possible to implement business processes in ways we haven’t been able to reach as yet.

We hope you enjoy this look at BPM today and in the future.

 
icon for podpress  VOSibilities podcast #27 An Update on the BPEL4People Standard [24:53m]: Play Now | Play in Popup | Download (373)

Active Endpoints Announces New Learning Tool for Java Developers

Wednesday, January 7th, 2009

Today, we are announcing via press release the Vintage Old Stock demonstration application for Java developers who are interested in seeing how an SOA-based application is designed, built and deployed.

Details are in the press release attached below as well as in Luc’s previous pre-holiday post about the demo. Included in the press release are instructions on how you can download a customized version of the ActiveVOS demo to experiment with the application on your own machine.

icon for podpress  Active Endpoints Announces New Learning Tool for Java Developers: Download (710)