Introduction to jBPM5
- Posted on: January 19, 2012
If you are looking for a solution that offers a bridge between business and IT as well as improvement of enterprise performance by driving operational excellence and business agility, you should consider implementing BPM (Business Process Management). Furthermore, if you aren’t afraid of a little bit of Java coding, you might pay attention to jBPM (Java Business Process Management).
BPM is an essential part of any organization’s process improvement strategy, especially when combined with SOA (Service-Oriented Architecture). While SOA is the architectural philosophy of exposing functionality from a variety of systems as reusable services with standardized interfaces, BPM systems consume those services from the SOA environment and add in any required human interaction in order to create a complete business process, while separating process management and application development. So, if you are looking for a solution that would improve enterprise performance by driving operational excellence and business agility, in other words, if you are planning to implement BPM Solution in your own environment and are well disposed towards open-source, you might consider jBPM5 project.
The heart of the jBPM5 project is the Core Process Engine – a light-weight workflow engine that executes business processes. It is written in Java and can run in any Java environment, as an integral part of an existing application or as a service. Besides the core engine, jBPM5 Suite also includes several optional but extremely useful components:
- Human task service takes care of human task life-cycle and is therefore necessary in case of human participation in the process.
- History log service is responsible for logging information about the current and previous states of process instances (prerequisites for process querying, monitoring, and analysis).
- When it comes to business process modeling, the solution offers two types of graphical editors – Eclipse plugin and Web-based designer. Eclipse plugin (extension to the Eclipse IDE) is intended for software developers. Aside from enabling creation of process definitions and their integration in the development environment, it also provides advanced debugging and testing capabilities, etc. Web-based designer is intended for business users and it allows them to manage (create and edit) processes separately from the application. It also supports the visualization (and editing) of processes testing, deployment, etc.
- Guvnor repository can be used as a centralized store for business processes (and other related artifacts). It supports integration with both – the Eclipse plugin and web-based designer
- jBPM5 console is a web-based console that enables management of business process instances (starting of the new and inspecting running instances), task lists, etc. It is intended for business users.
Since jBPM5 is a free, open-source solution (ASL – Apache Software Licensed), comparing its features to the features of commercial solutions would be pretty inconvenient. Still, one wonders what separates it from the other open-source solutions.
The most obvious advantage of jBPM5 over the others would be the usage of a BPM System on top of a Rule Engine. Namely, jBPM5 lies on top of the Drools Expert BRE (Business Rule Engine) that provides separation of rules and belonging business logic. Thus, business analysts and support personnel can quickly configure and change the behavior of working business processes via easily editable rules rather than coding. Furthermore, rules can be easily modified and reused.
A couple of other project highlights, that we haven’t previously mentioned, would be:
- jBPM5 uses standards like BPMN 2 for modeling and executing business processes, WS-HumanTask for including tasks that need to be performed by a human and JPA and JTA for persistence and transactions.
- Although it’s originally shipped with H2, you can integrate it with other DB systems (we have chosen Oracle).
- You are able to expand the jBPM5 nodes palette by creating business domain-specific service nodes.
Hands-on experience is extremely important when we talk about software. In case of jBPM5, straightforward default installation, User Guide, and several video-presentations (covering the basics) form a great starting point. So, if you are intrigued, you might download and check out the jBPM5, especially since the default installation doesn’t take too long and includes all the necessary underlying components (Eclipse IDE, JBoss 7). If necessary, you can easily reconfigure the installation script so that it would include JBoss 5, instead of JBoss 7 application server, or even integrate jBPM5 components into existing Eclipse IDE and/or JBoss application server.
After a while and certainly once you’ve reached the point of migration to production environment, you will notice the lack of advanced documentation. Active and cooperative community compensates it up to a certain degree, but lack of documentation still remains an issue.
Long story short, as far as open-source BPM solution goes, jBPM5 is certainly worth paying attention to. Of course, there is room for improvements and it is getting there on a daily basis. So, if you wish to check it out, the jBPM5 homepage is the best place to go and get started. It contains links to documentation, software download, all kinds of useful information and communication channels. Should you encounter a problem and can’t find the answer on your own, don’t hesitate to ask, since the people involved in the project are more than willing to help.