This document describes a proposal for the jBPM5 roadmap, based on the feedback of the community on the suggested features in the jBPM5 request for comments. It will constantly be updated with the necessary details (feature lists, dates) based on community feedback, etc.
More features will be added in the following releases to work towards our full vision.
Feedback on the roadmap is welcome on the jbpm-dev@lists.jboss.org mailing list. If you want to help out (big or small, from new features or patches to documentation or testing), that's the place to go as well ! Or come have a chat at #jbpm on irc.codehaus.org.
DISCLAIMER: this roadmap is not considered to be finalized yet, it is a proposal that might still be changed according to customer / community feedback
jBPM 5.1
Target date: May 2nd, 2011
New BPMN 2.0 Eclipse editor
A new BPMN 2.0 Eclipse editor will be created, supporting full the BPMN2 syntax and most of the BPMN2 constructs. It will also allow you to constrain which elements and attributes should be shown (for example to create a jBPM 5 profile that only shows the elements and attributes as supported by jBPM 5).
Designer
The web-based designer (based on Oryx) will be updated to support full round-tripping and include support for custom jBPM5 attributes. This will allow you to create executable BPMN2 using the Designer only (without requiring filling in the execution details in Eclipse.
Web service integration
Improved web service integration (using pluggable work items) and UI enhancements to enhance service orchestration capabilities
Repository of domain-specific services
The set of out-of-the-box services will be extended and includes a repository where these definitions can be downloaded from.
Business Activity Monitoring (BAM)
Extend BAM reporting / direct intervention capabilities
History
History of roadmap for released version
jBPM 5.0
The first release of jBPM5 will include support for business processes in their entire life cycle (modeling, deployment, execution, monitoring) with the following key characteristics:
- native BPMN2 engine
- light-weight, embeddable or "as a service"
- higher-level, domain-specific processes
- strong rule and event processing integration
- web tooling for more business-oriented users
As requested by most community members, the first release will focus on the core of the various components, with simple tooling associated with it. The core can then be extended with more advanced features and tooling in the following releases.
Clean, separate, simple knowledge-oriented API for setting up sessions, loading process definitions, executing process instances, event listeners, etc.
Core process engine using BPMN 2.0 process definition format. The specification document and associated XSD definition files can be found here. The engine will (at least) support the "common executable" subclass as defined in the specification (a minimal set of elements / attributes for specifying executable processes), but in a Java developer context (meaning supporting Java domain model and expression language). The specification defines that the following elements (and associated attributes) are part of this subclass:
sequenceFlow (unconditional) | id, (name), sourceRef, targetRef |
sequenceFlow (conditional) | id, name, sourceRef, targetRef, conditionExpression |
sequenceFlow (default) | id, name, sourceRef, targetRef, default |
subProcess (expanded) | id, name, flowElement, loopCharacteristics, boundaryEventRefs |
exclusiveGateway | id, name, gatewayDirection (only converging and diverging), default |
parallelGateway | id, name, gatewayDirection (only converging and diverging) |
startEvent (None) | id, name |
endEvent (None) | id, name |
eventBasedGateway | id, name, gatewayDirection, eventGatewayType |
userTask | id, name, renderings, implementation, resources, ioSpecification, dataInputAssociations, dataOutputAssociations, loopCharacteristics, boundaryEventRefs |
serviceTask | id, name, implementation, operationRef, ioSpecification, dataInputAssociations, dataOutputAssociations, loopCharacteristics, boundaryEventRefs |
callActivity | id, name, calledElement, ioSpecification, dataInputAssociations, dataOutputAssociations, loopCharacteristics, boundaryEventRefs |
dataObject | id, name, isCollection, itemSubjectRef |
textAnnotation | id, text |
dataAssociation | id, name, sourceRef, targetRef, assignment |
messageStartEvent | id, name, messageEventDefinition (either ref or contained), dataOutput, dataOutputAssociations |
messageEndEvent | id, name, messageEventDefinition, (either ref or contained), dataInput, dataInputAssociations |
terminateEndEvent | (Terminating trigger in combination with one of the other end events) |
Catching message IE | id, name, messageEventDefinition (either ref or contained), dataOutput, dataOutputAssociations |
Throwing message IE | id, name, messageEventDefinition (either ref or contained), dataInput, dataInputAssociations |
Catching timer IE | id, name, timerEventDefinition (contained) |
Boundary error IE | id, name, attachedToRef, errorEventDefinition, (contained or referenced), dataOutput, dataOutputAssociations |
Depending on the progress, additional node types will probably already be supported by that time as well. The list of supported elements and attributes will regularly be updated so you can have a clear idea of what to expect in each release.
The core BPMN2 engine of course includes
- persistence (JPA-based with pluggable variable persistence)
- transaction support
- auditing
- history log
- basic process instance migration
- etc.
Also support for domain-specific nodes and powerful rules integration.
Human tasks
Independent human task service for managing human tasks based on the WS-HumanTask specification.
Simple web-based human task web console supporting the task life cycle (claim, start, complete, etc.) and custom task forms.
Eclipse-based tooling for creating BPMN2 processes
Eclipse-based plugin that allows developers to graphically create BPMN2 processes, including basic validation, testing and debugging.
Web-based tooling for creating BPMN2 processes
We'd like to continue the integration of the web-based BPMN2 editor based on the open-source Oryx editor.
Process repository
Knowledge repository for storing process definitions.
Simple web-based repository management console for storing process definitions, versioning, releasing, etc.
Process management console
Simple web-based console for starting processes, managing running instances, checking current state of one specific instance, aborting, etc.
Reporting
Customizable reports using BIRT
Simple web-based console for viewing real-time reports
Installation script (and demo setup)
Documentation
Migration
Support for migration from jPDL3 (product) and jPDL4 (community), in the form of a semi-automatic, one-shot, user-assisted transformation process to BPMN2 for process definitions and documentation.