jBPM4: What’s new?

History lesson

Back in the days before I joined JBoss (translate: up until last moth ;-), many people asked me why they should be switching to jBPM4 once it was released. At that point in time, I could list all the announced features, but I really hadn’t used them in practice. The last couple of weeks however, I’ve been pretty deep (and pretty late) in the core code, and to those people I can now honestly state it was well worth the wait.

I still remember, when I was learning this ‘jBPM’ thing, there were already rumors about ‘version 4’ and ‘the PVM’, but nobody really could tell what it was and when it was coming out. There was a great demand for jBPM3 consultants on the market, so I really didn’t mind…

Fast-forward almost one and a half year… things look quite different now. I left the jBPM consultancy and joined the team of my consultancy raison d’ Γͺtre. I wasn’t there when it begun and I wasn’t there on the big day and every release up till then. But I’m sure proud to be there when The Next (R)Evolution of jBPM hits the shelves next month (although my contribution is limited).

I’m guessing that most of you readers are familiar with jBPM (or at least have heard of it), so I’m not going to do a marketing blabla here. In this post, and the posts in the coming weeks, I’m going to illustrate what’s new in jBPM4, what’s improved and why I believe that the latest incarnation of jBPM (still) is the most kick-ass framework for BPM developers.

jBPM4 in a nutshell

jBPM4 can be best described as the result of smashing jBPM3 in a million pieces, carefully selecting the superb bits, putting them together with completely new or rewritten components by using the newest and fanciest glue available. Don’t worry, the core concepts of jBPM still are alive and kicking in jBPM4 (my old consultant soul smiles). But everything around has been given a rewrite, using the more than 5 years of experience in a wide-spread adoption that the jBPM team has been exposed to. But like I said, in the next posts I’ll take you for a detailed look into this stuff, for the moment I’ giving a quick (and incomplete) overview:

  • Calling the jBPM4 engine is done through a stable API (aka services). So this means no more try-catch-finally-close-the-context blocks anymore or writing a jBPM operation (on which you are really proud) to find out the next day it was already in there, hidden in an obscure package. Every of the services is tested against a range of databases (Oracle, PostgreSQL, MySQL and HSQLDB), Java versions and JBoss AS versions on every commit in the JBoss QA lab (Hudson based).
  • The database schema has been completely redesigned. The new schema facilitates migrations (version wise and process wise) and has been built with performance in mind.
  • No more method chaining. People who have been there, know what I’m talking about (I lost quite some time on this one at my first customer). The core engine uses the concept of atomic operations.
  • The Job executor and activities have been completely rewritten with performance and removing concurrency conflicts in mind (remember the StaleStateExceptions…).
  • A fancy web2.0 console, which allows for demo’s with the extra touch πŸ˜‰
  • Improved documentation, split in a user- and developer’s guide. We all *love* documentation πŸ™‚
  • And much much more … but track my blog if you want to know them πŸ˜‰

The story continues…


  1. Rex Sheridan June 24, 2009

    I am excited to hear about the new features. I have been using jBPM for years and have been waiting for these upgrades. Can you expand on what is meant by a “stable API?” I would love to see some code examples. Also, I remember seeing something about the new web2.0 console having a graphical process designer (maybe I dreamed it). Is this true?

  2. Rex Sheridan June 24, 2009

    I forgot to ask. Is there going to be a tutorial on how to upgrade from previous jBPM versions?

  3. Joram Barrez June 24, 2009


    * The API is something that I’ll cover in one my next posts. The basic idea is that you’ll have a stable (meaning fixed for several versions) interface to do the same what you had to do manually in jBPM3, but now in one operation.

    * You didn’t dream the web2.0 designer πŸ˜‰ Check my latest post at http://www.jorambarrez.be/blog/2009/06/24/bridging-the-gap-jbpm-goes-web-based-modeling/

    * Currently, we don’t have any migration docs. We do have someone working on a tool for process migration. But that + docs will probably be shipped with 4.1 (which isnt that long away πŸ˜‰

Leave a Reply

Your email address will not be published.