Version 4

    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.