jBPM vs Activiti: which to choose?
Most jBPM users are wondering what will be the fate of jBPM since the new release (which is expected to see the light in the beginning of 2011) heavily relies on Drools projects (Drools Rules and Drools Flow in particular). In the meantime a new opensource competitor has appeared on the scene some months ago: Activiti.
Some of you (mee too) have been surprised to see that the two jBPM projects guru Tom Baeyens and Joram Barrez left the jBPM project and started a new one named Activiti. This caused some panic between developers increased by the fact that the current stable release of jBPM (which is the 4.4) is not commercially supported by Redhat in the JBoss SOA Platform.
As a consequence it seems that there is no clear roadmap in the jBPM project for users which are running the release 3.x or the release 4.x of jBPM.
The facts can be resumed here:
- At the moment Red Hat supports as a product just jBPM 3
- jBPM 3 is in maintenance mode, this means that bugs will be corrected but no more development on it.
- Most companies are converging on BPMN 2.0 which will be the de facto standard for business process modeling, and provides a graphical notation for specifying business processes in a Business Process Diagram (BPD).
- jBPM 4 is in theory a very interesting product because it could bridge users from jPDL to BPMN 2.0, however it is clearly not suggested to use in its forums because it's incomplete and still contains some bugs. It's almost sure that will be not included in Red Hat portfolio of products.
- The jBPM team is providing a migration tool for helping users to migrate from jPDL to BPMN- you can read more about it here: http://community.jboss.org/wiki/jBPM5migrationtoolproject . The project is still under development and requires to face some hard tasks like integration with JBOSS ESB, which was a key part of JBPM 3.
"It is fair to say that there was expectation that jBPM 4 would appear in a version of the SOA Platform as a replacement for jBPM 3. With the changes to the jBPM project team and the next steps in unifying our efforts in this area across projects, it is not going to happen." Mark little.
Meanwhile, the jBPM team is working hard to produce the release 5 of the product which has hit now the CR1 and will be soon a stable release.
The key features of jBPM 5 are:
- Native BPMN2 execution
- Highly configurable, embeddable, lightweight process engine using a generic process engine (PVM) underneath
- Domain-specific processes and rule / event integration via the Drools Rule engine and Drools Flow workflow
- Independent, human tasks service (using WS-HT)
- Web tooling for things like BPMN2 process creation, deployment, management, reporting (with BIRT) and human tasks
- Migration capabilities from jBPM 3 and 4 (jPDL 3, 4 to BPMN2)
The features proposed are quite interesting however at the moment the documentation provided by JBoss community is quite complete about the product itself, but in order to spread the new technology to the BPMN 2.0 market some detailed, simple tutorials and examples are strongly required. Otherwise the product risks to be a niche for Drool's users.
A few examples are available at the Mauricio's blog http://salaboy.wordpress.com/2011/01/01/emergency-service-drools-application/ , otherwise you have to install the whole suite (Eclipse+jBoss+JBPM5) and try the evaluation example (jbpm-5.0-CR1-installer.zip).
As Mauricio cited in this excellent post:
If you are not only thinking in adopting a new technology and you already face some BPM implementation with jBPM3/jBPM4 or the old OSWorkflow you probably notice and know the advantages of using a Rule Engine in conjunction with the BPMS. If you are at that point please take a look at jBPM5 and the Drools integration, you will probably be amazed.
In the meanwhile the Activiti project, lead by Tom Baeyens is doing giant leaps and many users are evaluating a port from jBPM3 to Activiti.
Activiti is backed by Alfresco company and has the collaboration of many talented people from SpringSource as well.
I have personaly tried the product and was quite satisfied for the results I could obtain in a matter of a few minutes. In particular I was impressed how simple is to link Java or scripting jobs inside your processes.
My personal impression is that Activiti seems much more the logical continuation of jBPM, then jBPM5 is.
Activiti team also makes no mistery about it, since the first stable release has been named Activiti 5.0 with a clear reference to their jBPM 4 last release.
So in the next few days I'll post some tutorials which will illustrate how to create a simple BPMN 2.0 application with Activiti. Meanwhile, when the final release of jBPM 5 will be available I'll be glad to post my humble point of view in comparing more deeply these two products. Stay tuned !

