Monday, July 14, 2014

jBPM and Activiti- An Analysis

Business Process Management is an essential part of every web application. These web applications can be anything like Portal, CMS, CRM or ERP. In the open source world, organizations are mostly selecting either Activiti BPM or jBPM. Here are the glimpse of features and comparison.

Let us start with Google trends, which show us popularity of both the products. jBoss jBPM is one of the oldest product available in the market while Activiti BPM has launched somewhere in the year 2010. However, if we can look at below chart, we can see that the interests of people change from time to time. 



As per Google Trends


jBoss jBPM is one of the popular BPM 2.0 tool in its category. While on other side, Activiti BPM Engine is one such light weight and easy to use for Java developers. In that respect, both have a stiff competition on its success. The success claim comes with big difference between Activiti BPM and jBoss jBPM will not be in the process engine, but which will be the more sophisticated tool that we'll be able to build on top. Activiti is new but on its track to attract market and on path to success as jBPM did once upon a time.

jBPM 6

jBPM 6 is the latest community version of the jBPM project.  It is based on the BPMN 2.0 specification and supports the entire life cycle of the business process (from authoring through execution to monitoring and management).
It offers open-source business process execution and management, including
  • Embeddable, lightweight Java process engine, supporting native BPMN 2.0 execution
  • human interaction using an independent WS-HT task service
  • BPMN 2.0 process modeling in Eclipse (developers) and the web (business users)
  • web tooling to model, deploy, execute and monitor your processes, including for example a data and form modeler, simulation, deployment, task lists, etc.
  • web-based business activity monitoring and reporting that allows you to define your own reports
  • managing and deploying your processes using technologies underneath like Git and Maven
  • an execution server that you can remotely connect to (REST, JMS) and can be deployed in a clustered environment for load balancing and high availability
  • tight, powerful integration with business rules and event processing

Activiti

Activiti 5.15.0 is the latest community version of the Activiti project. It's a Java process engine that runs BPMN 2 processes natively.  It will have the following key properties:
  • Allows user updates to be combined with process updates in a single transaction
  • Runs on any Java environment like Spring, JTA, standalone with any form of transaction demarcation.
  • Easy to get up and running with the setup utility
  • Built to support the cloud scalability from the ground up
  • Very simple to add new custom activity types and complete dedicated process languages
  • Rock solid
  • Extremely fast
  • Transactional timers
  • Asynchronous continuations
  • Hidden event listeners for decoupling software technical details from business level diagram
  • Ability to test process executions in isolation in a plain unit test
I have referred few articles and given below are the differences between jBPM and Activiti:
  
Description
Activiti
jBPM
Community members
Activiti has a base team consisting of
Alfresco employees. In addition,
companies like SpringSource,
FuseSource and MuleSoft provide
resources on specific components. And of course, there are individual open source developers committing to the Activiti project.

jBPM has a base team of JBoss
employees. In addition there are individual committers.
Spring support
Activiti has native Spring support, which makes it very easy use Spring beans in your processes and use Spring for JPA and transaction management.

jBPM has no native Spring
support, but you can use Spring
with additional development effort.
Business rules support
Activiti provides a basic integration with the Drools rule engine to support the BPMN 2.0 business rule task.
jBPM and Drools are integrated on a project level and therefore there’s native integration with Drools on various levels.

Additional tools
Activiti provides a modeler (Oryx) and designer (Eclipse) tool to model new process definitions. But the main differentiator is the Activiti Explorer, which provides an easy-to-use web interface to start new processes, work with tasks and forms and manage the running processes. In addition it provides ad-hoc task support and collaboration functionality.

jBPM also provides a modeler
based on the Oryx project and a Eclipse designer. With a web
application you can start new
process instances and work with tasks. The form support is
limited
Project
Activiti has a strong developer and user community with a solid release schedule of 2 months. Its main components are the Engine, Designer, Explorer and REST application
jBPM has a strong developer and user community. The release schedule is not crystal clear and  some releases have been postponed a couple of times. The Designer application is (at the moment of writing) still based on Drools Flow and the promised new Eclipse plug-in keeps getting postponed


Conclusion:


From the above comparison, You can choose jBPM or Activiti, both will teach you and let you implement the BPM discipline main stages. Both are Open Source and ASL licensed.


2 comments:

  1. Hi Swathi,

    Thanks for a great article! Great to see a more recent comparison of these two most out there at the moment are against older versions.
    I am currently doing my own in depth analysis and would love to know which article you've used to gather this infomation from is there any change you might be able to include the references/links where you gathered your infomation from?

    Thank you very much in advance
    Melissa

    ReplyDelete
    Replies
    1. Melissa,

      I am also doing an analysis on the OSS BPM platforms. Did you reach to any conclusion you can share with me?

      Best regards,

      Kazu

      Delete