jBPM5 Roadmap

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.