JBPM5 in a nutshell
Now that JBPM5 is officially a project it’s time to talk about it. Plugtree is a contributor to the project (as well as Drools) and we are more than happy to see it growing complete in features. This article tries to explain JBPM5 in 5 minutes (no pun intended) and from a 10000ft view. This is useful for making the decision on the adoption of the project (or at least a doing some labs to understand it and try it in a real environment)
Right now JBPM5 has a candidate release available for download. Take the necessary steps to get it running but if you are like me, I want to talk a bigger picture look at this stuff. This is what we need to convince the CIOs and project leaders to use this technology in our IT initiatives.
Background on the project
First a little bit of history, jBPM has been over the years a leader in the open source BPM arena, it joined JBoss back in 2005 and since then it grew in features and user base. At the same time the Drools project guys had a craving for all things knowledge, not only rules but event and processes also. Drools Flow was born in 2007 and right now it serves the bases for JBPM5. In fact Drools 5.2 is a dependency for the project to build successfully.
JBPM5 brings the philosophy of Drools, where knowledge is declarative and user oriented. This way processes are designed in a user friendly way, and not only that, it also integrates well with the rules component (under the hood processes and rules are living toghether nicely), so its natural that decisions within the process flow are actually Drools rules.
So, this adds to the point of stability, JBPM5 is no new code, and in no way brittle. It has been tested extensively through the years as Drools Flow.
Now some highlights of the project:
- Visual user friendly editor: Users can choose between a web based editor (Oryx) or an Eclipse based one. You can choose depending on the end user and if you are going to use the project’s BRMS (Guvnor) where you can store all your business assets such as processes, rules and documentation in a central location.
- BPMN2 standard support: This allows you to choose a different editor to generate your business processes and run them in JBPM5. There’s no 100% support for the standard yet, but progress is being made on this matter.
- Human Task features: JBPM5 has a native notion of a Human task, an activity that needs to be completed by an actual person and has a lifecycle: it can be started, suspended, completed, etc. It is also a standard spec.
- Process Console: You can interact with the engine through this console where you can start processes, complete human tasks, fill forms, etc. This console is GWT based.
- JPA persistence method: it enables you to choose any database and persistence schema to store the processes variables and history log.
- Designed for domain specific workflows: this means that you can create your own business domain specific tasks such as (Receive Claim, Approve loan , Check Blood Pressure, etc) and build a palette for end users that is very natural to their environment. This is combination with a visual modeler is a pretty explosive combination, allowing a very productive as-is process knowledge gathering and to-be process design across a whole line of business.
- Business Activity Monitoring built in: what’s a BPM’s worth if you can’t monitor your processes? JBPM5 allows you to make reports (including tables and charts) over the process instance data and history log. This is useful for higher level users that as C-level executive who need process information to make decisions. It also enables you to use BIRT to generate your reports, so your imagination is the limit when it comes to the amount of information you can present.
- Console Custom forms integration: By using a template framework, JBPM5 allows your users to interact with their processes using the same console to start the process and make actions to it within a custom form for each activity. For example you can have a client’s data gathering activity in your process and a custom form can be built to fill that information into the workflow.
- Powerful rules language: To make decisions within the process you can use Drools rule syntax to for example change a path according to a business condition, such as a credit score.
Powerful combined architecture
The true power of JBPM5 comes when you see it integrated with Drools and the rules and events semantics. You can control different processes with rules (chain them toghether, create a new one when another has finished, create escalation rules, alerts, etc.) and events (for automatic process control, you can relax process constraint when things are qeued up, etc). So it’s a good idea to also take a look at the Drools Expert and Drools Fusion features.
By the way, you should be thinking how to implement JBPM5: embedded inside your application or as a centralized process server? You can use it both ways as you can create a Drools Server instance to control the processes using a command pattern approach and a REST protocol.
Give it a try, download the project, compile it, play with the demo and think about the benefits you can take out from implementing it at your project or company. Also, migration from older versions of JBPM are complex and you should start as early as possible to understand the new model.
In a nutshell, JBPM5 is the bleeding edge when it comes to open source BPM engines, allowing you to create, execute and analyze all your user’s processes and activities while integrating business rules and events to the recipe. Also, the visual editor helps business users to create the processes with the powerful rich API allows your application to integrate with it easily.
Plugtree has been involved with the JBPM5 project since its inception and contributed several features to make it more powerful (variable persistence strategies, bug fixes, etc). We have helped several companies to transition to JBPM5 and Drools.
For existing JBPM3 and JBPM4 users we offer migration services, for more information contact us. And for everyone we offer the typical services: training, consulting (best practices, performance tuning, implementation, etc) and enterprise 24×7 support. And of course, our core is to develop custom features for our clients.
For more information about our services, please contact us at email@example.com
No related posts.