Even though Koen Aers from JBoss had to be up early Thursday to give a jBPM presentation at EclipseWorld 2007, he kindly stopped by our Northern Virginia Java Users Group (NovaJUG) meeting Wednesday night to talk about business process management in general and JBoss’s jBPM platform specifically.

Koen Aers presents at NovaJUG

Koen Aers presents on jBPM at

the NovaJUG meeting Nov. 7.

[photo from my phone]

JBoss jBPM is an open source business process management platform that helps separate business processes and tasks from the rest of the business logic. The platform defines a process definition language, and provides a Java library to execute and persist the business processes. It can be used in a standard Java SE application as well as deployed to servlet containers — not just JBoss Application Server.

Business process engines can make applications easier to write, but they have received a bad reputation, Aers said. The reputation stems from the fact that most business process management systems are behemoths that take up half your hard disk and come with a steep learning curve, he said. JBPM is about a 500KB core library, not counting its Hibernate database persistence layer, and developers can learn and use only a small part of the whole platform.

BPM engines don’t need to be complex. At their core, he said, business process engines boil down to the management of state: what state is each instance of a business process in at the moment, and what internal or human activities trigger a transition to a new state.

Here are my notes from Koen Aers’s jBPM presentation.

Why use a process language?

  • Simplify an application by extracting the state-management logic.
  • Improves communication: Process languages should support graphical modeling that maps to executable notation.
  • Automatic persistence history can be used for business intelligence.

What is a Business Process Management System?

  • A tool that allows an analyst to model workflows (business processes) and hand over results to a developer, who will add the details to make it executable.
  • With modeling, the more expressive the modeling notation, the harder it is to make the model executable.
  • Thus the choice of modeling notation is important. Popular modeling notations: BPMN: a pure modeling notation. No automatic translations to code.

    BPEL: The purpose is to orchestrate web services and publish result as a new web service.

    XPDL: A format for storing process models.

  • A big repository that holds executable processes, persists the execution state of the processes, and records history of what happened during the process executions.

JBoss jBPM uses its own notation, called jPDL. The jBPM architecture was built to add a “process virtual machine” on top of the Java VM. It would be responsible for executing the processes stored in jPDL, BPEL, XPDL, a web page-flow language or any similar language that defines a process flow. However, currently the engine supports only JBoss’s jPDL. Bull is working to add XPDL support to jBPM using Bonita, which should be released under an LGPL license next year, Aers said.

JPDL is an XML language defined by a schema. The language is extensible to support custom business processes. The language also supports defining Java actions that can be invoked at numerous points as the business process changes states.

Aers showed a demo of coding a business process using JBoss’s visual process designer, an Eclipse plugin. The plugin lets you edit the jPDL both as XML and visually. Aers is a developer for the designer tool.

Before he started working on the jBPM designer tool, Aers said, he would code jPDL using straight XML with an editor that supported auto-completion from the XSD. The designer is primarily a marketing tool, he said, to support people’s expectations of what a powerful BPMS must provide. “If you go to a presentation and you don’t have a [graphical] designer, then you suck” in the customer’s view, he said.