The first release of JBoss Business Process Management (BPM) engine jBPM 4 supports an Eclipse based BPMN graphical designer. jBPM development team recently announced the release of jBPM 4.0.0.Alpha1 version. This release also leverages the new Process Virtual Machine (PVM) which supports multiple process languages and execution modes.
jBPM, which can be used as a standalone server or embedded into any Java application, helps with the collaboration between business analysts and software developers. It also supports transactional control flow in Java which is used by developers to model asynchronous architectures. Transactional control flow describes the overall control flow of an application, spanning multiple transactions. The framework also binds to the infrastructural pieces of the development and run-time environments like transactions, asynchronous messaging and timers. Whatever environment your project is targeted for, enterprise Java, standard Java, SEAM or Spring, jBPM takes care of translating the long running processes to those asynchronous building blocks. So developers can define the overview process in JPDL with the new graphical BPMN based designer. They can also write pieces of plain Java and associate those to places in the overview process diagram.
Some of the new features included in jBPM 4 are:
- BPMN based graphical designer in Eclipse
- Command based services as the primary client API
- Decoupled activity implementation API
- Easy addition of custom activities
- Database evolution improvements and database partitioning per process language
The new release of jBPM 4 can be downloaded from jBPM website. There are also an updated user guide documentation and a developer forum. jBPM is also a key component of the JBoss Enterprise SOA Platform. The subprojects of jBPM include jPDL, BPEL for service orchestration, GPD, the process designer which is a set of Eclipse plug-ins built on top of Eclipse WTP and GEF frameworks, and PVM.
InfoQ spoke with Tom Baeyens, founder and lead of JBoss jBPM project about the new release and the future road-map of the framework. Responding to a question on what different types of use cases jBPM4 can be used to manage work flow based business processes, Tom said:
Business people can describe a business process in whatever format they like: BPMN, a picture of a diagram on a whiteboard, Visio, EPC, etc. Then the development team can build an executable process with jPDL that looks exactly like the original analysis diagram. Building executable business processes actually boils down to the transactional control flow in Java. The executable process is now a software artifact. The business people can still discuss the diagram of the executable jPDL process, but it remains under control of the developers. The diagram of the business process creates a common language between business people and developers. And with that input, developers can update the executable processes iteratively.
Typical BPM products are only focused on the business side of BPM as a discipline. Because of lacking focus on the technical developer aspect, these products are only usable when they can replace normal software development. I believe that is a crucial mistake of the traditional BPM view. Instead jBPM considers BPM as an integral part of software development. Your BPM engine must fit right inside of your software project, rather than to try to replace it.
Can you elaborate on BPMN based graphical designer tool and how it works?
BPMN has managed to obtain general adoption as the graphical diagram notation for business processes. jBPM supports multiple process languages. jPDL is our own proprietary process language which is specifically designed for transactional control flow in Java. Our jPDL graphical editor (Eclipse plugin) will use the BPMN as the graphical notation to represent processes diagrams.
In practice we see that the challenge is to match the business people's interpretation of their BPMN diagrams with the runtime execution. Even though BPMN can be a very expressive and powerful notation, business analysts are not always aware of all the details that they model. There is a great deal of variance. Some business people model very strict, while others just use it as a drawing tool and give their own interpretation. Our first focus with the BPMN based graphical designer is to prevent mismatches between the diagram and the runtime execution. Just offering all the BPMN details to everyone is not the right approach. And therefore, we are actively looking into how we can layer BPMN to minimize the incorrect usage of BPMN.
What type of unit testing capabilities jBPM offers BPM designers and developers?
With jBPM you can test your executable business processes just like you do with any other piece of Java software. Every test method runs through one scenario. The test will feed in the external triggers and it can assert wether the process execution is in the expected activity. It's not even necessary to stub out all the integrations between the process and externally consumed services. So you can also run it as an integration test.
What type of integration jBPM provides with a conversational framework like JBoss Seam and rules engine like JBossRules?
jBPM is a core component of SEAM and it provides two separate aspects. jPDL is integrated as the business process context. Pageflow is another aspect of SEAM that is based on jBPM. Pageflow is used by SEAM to specify navigation between web pages.
jBPM and JBossRules fit nicely together because both are based on POJO technology. Process variables are POJO's and JBossRules facts are POJOs so both can be easily exchanged. In jBPM 4 we will be enhancing this with extra convenience. For example integrated deployment of processes and rules, condition evaluation based on rules in e.g. an exclusive gateway (aka decision) and task assignment based on rules.
Monitoring is an important aspect in a BPM/Workflow application. What type of monitoring support does jBPM 4 provide?
In jBPM 3 we recorded all the aspects of process execution. So all this information was available, but it was sometimes cumbersome to extract meaningful statistics from these individual logs. That is where jBPM 4 will be improving significantly. For starters, the flat log table will be replaced by a structured history schema which can be easily queried. Secondly, the new GWT-based web console will include a set of reports out of the box. And these reports will be easily customizable or they can be used as templates since they are based on BIRT.
How does jBPM work in distributed computing environment like a JBoss server cluster?
jBPM delegates all the hard work of synchronization in a clustered environment to the database. jBPM's persistence is based on Hibernate. Access to process executions is protected by optimistic locking. This comes out of the box and it works without overhead. In practice, this has proven to be a crucial architectural choice. It scales easily in high load and high throughput scenarios.
What is the future road-map of jBPM project?
March 1st we'll be releasing the next alpha version. After that we'll have monthly releases up to the GA release on July 1st. Apart from the enhancements mentioned above, the first focus will be to provide coverage for jBPM 3 functionality and migration. After the jBPM 4 GA release in July we'll be building out the activity types and the tooling significantly.