Tom Baeyens is the founder and lead of JBoss jBPM, the leading open source BPM system. Tom mission is to bring the power of BPM technology into the hands of the developers. He's a frequent speaker at international conferences and maintains a blog at Tom has posted 3 posts at DZone. View Full User Profile

Seven Forms of Business Process Management With JBoss jBPM

  • submit to reddit
This article will explain Business Process Management (BPM) in terms of 7 distinct use cases for JBoss jBPM. By giving more insight in those use cases, you'll get a better understanding of the different forms of BPM and workflow and when a BPM engine like jBPM makes sense in your project. We'll also highlight the specific jPDL process language features related to those use cases.

The term BPM is highly overloaded and used for many different things resulting in a lot of confusion. These use cases give concrete descriptions for the different interpretations of the term BPM.

The individual nature of these use cases is important. BPM software vendors often take a mix of different aspects and concerns into account when developing their products. That often results into BPM products that are suitable only for a specific purpose in a specific environment. This is in my opinion the reason why there are so many different BPM products which only serve a small niche market. It also explains why new products and standards in this space keep appearing, don't get enough momentum and then get pushed aside by yet another new product or standard.

When evaluating a BPM products, it should be done with specific use cases in mind.

What is JBoss jBPM

JBoss jBPM is a flexible and powerful BPM engine. In essence, BPM systems allow for execution flows to be specified graphically. As an example, here is a process diagram for a business trip:


A key capability of BPM systems is that processes steps can be wait states. For example in the business trip process above, nodes 'manager evaluation' and 'ticket purchase' are human tasks. When the execution of the process arrives in those nodes, the system executing the process should wait till the assigned user completes the task.

From a software technical point of view that capability is a big deal. As the alternative is a bunch of methods that are linked by HTTP requests, Message Driven Beans (MDB), database triggers, task forms, etc. Even when using the most applicable architectural components available in Java today, it is still very easy to end up in a bunch of unmaintainable hooks and eyes. Using an overall business process makes it a lot easier to see and maintain the overall execution flow, even from a software technical perspective.

JBoss jBPM does exactly that and it differentiates itself from other BPM projects in the following topics:

  • Easily embeddable into a Java project. Traditional BPM Systems typically require a separate server to be installed which makes it hard to integrate into the Java software development cycle. One of the deployments that JBoss jBPM supports is just adding the jBPM library to the classpath. The jBPM tables can be hosted in any database next to the application's tables. Using JBoss jBPM really fits with the normal way of developing Java software.

  • Support for multiple process languages. The view on what BPM actually is has not yet been stabilized. There are currently many different interpretations of what BPM is, resulting in big fragmentation in the market. In fact, the body of this article tries to identify 6 distinct concepts that all are associated to BPM.

  • Very flexible transaction management. If your application just uses a JDBC connection in a standard Java environment, then jBPM can use that very JDBC connection to perform its work. If your application uses hibernate in a standard environment, then jBPM can use the same hibernate session factory. If your application runs in an enterprise environment, then jBPM can bind to the surrounding JTA transaction.

  • Readable jPDL process language. For developers it is very convenient if the process language is compact and readable. Not all developers want to keep using the graphical editor. Most hard core programmers start to hand code the processes after a while. Then jBPM's jPDL process language is the most readable, compact and complete.

Published at DZone with permission of its author, Tom Baeyens.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Pietro Polsinelli replied on Mon, 2009/01/12 - 4:21pm

t may be of interest to some to see how to merge Business Process Management with Project Management: latest release of Teamwork (see ). On the common persistence layer (Hibernate), the business process defines a project dependency structurere and swimlanes correpond to assignments. There are free trials to try it out.

Russell Owen replied on Mon, 2010/01/11 - 6:32am

Very interesting topic, can you post some further information on this subject. steam rooms

Jack Jones replied on Tue, 2010/06/29 - 8:36am

Thanks for supplying this information , i found it very helpful for my studies. uPVC Conservatories

L Rowan replied on Tue, 2010/07/06 - 7:51am

Thanks for taking the time to post such a detailed and informative article. It has given me a lot of inspiration. sell house fast

Jone Sam replied on Sat, 2010/10/16 - 2:53pm

I think article is really good and i like it,diagram of JBoss jBPM gives the vivid imagination of the control flow.I was find the possibilities of adding new interceptor to deal with compensation and the search is a good explanation for it. I found it here and while the most important information on the inside of jBPM. Another thing, I thought I put this article in jBPM town square, which is really valuable information that I think many would like to read. payday lenders

Alice Rosemary replied on Fri, 2010/11/05 - 11:13am

Well that's quite informative, i have been following this blog for some time now and its been a good source of information for me.

Franking Machine

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.