Koen Aers presents on jBPM at
the NovaJUG meeting Nov. 7.
[photo from my phone]
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.
- 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.
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.