Version 30

    jBPM Team Meeting


    Date: November 3-5 2008

    Location: Anwerp,, Google Map

    Not to forget:

    • projector
    • whiteboard
    • markers
    • electricity
    • hibernate book

    Topics Monday November 3

    Theme : Foundations (target and architecture)

    • 9:00  Targets and goals for the jBPM project: 30'
    • 9:30  Positioning languages: 1h00'
      • jPDL, BPEL, XPDL, BPMN, Pageflow, Thread control language, Ruleflow
      • jBPM product packaging


    • 10:30  Architecture for the jBPM project: 2h00
      • See also architecture.pdf
      • See also pvm.vs.jpdl.pdf
      • See jBPM4 Design Topics
      • 4 API
        • Persistence client
        • POJO client
        • Activity implementation
        • EventListener implementation
      • ProcessDefinition, Execution
      • Process instance as a tree of execution paths
      • Threads, transactions and concurrency
        • How users should experience StaleObjectStateExceptions
        • In which situations do we get SOSE
        • Threads vs concurrent transactions vs concurrent paths of execution
      • Activity instances / external entities
    • 12:00 - 14:00  Lunch
    • 14:00  Process deployment: 1h00
      • Process lifecycle
      • Designer interactions
      • Console interactions
      • Versioning
      • Integration with rules, java classes, forms and esb services
    • 15:00 - 16:00  Suite
      • Build and execute process without coding
      • Using designer, human tasks, hot deployment, runtime engine and console
        • No coding demo
        • Online demo ?
      • Installer
    • 15:00  Persistence 1h00
      • Identify target environments for 4.0.0
        • JDBC
        • Hibernate
        • JTA CMT
        • JTA BMT
        • Spring
      • JPA ?
    • 16:00 Development process: 30'
      • can everyone build and run all parts of the project ?
      • review scope of jan 1st release
      • jira and how we'll use it
      • how to exclude a test
      • roadmap
        • release criteria
        • QA
        • cont integr
      • release procedure


    Topics Tuesday November 4

    Theme: jPDL

    • 9:00 Project layout and QA infrastructure 1h00
      • Library dependencies
      • Modules
      • Profiles
    • 10:00  jPDL: 2h00
      • Terminology
      • XSD
      • Graphical information
      • Node type prioritization
      • Node type syntax
      • Node extensibility
      • Deployers
      • Synchronizers and propagators
      • Consistent usage of UEL
      • Pluggable activity lifecycle ?
      • PVM API or separate API ?
      • Unifying events ?
    • 12:00 - 14:00  Lunch
    • 14:00  jPDL: 1h00
    • 15:00 Analythics and operational dashboard: 1h00
      • What charts and prioritize them
      • What customizability
    • 16:00  Identity, Task management and security: 1h00


    Topics Wednesday November 5

    Theme: Roadmap and Concrete next release

    • JIRA session: 1h00'
      • Prioritizing issues for jBPM 4.0.0.Alpha 1 and jBPM 3.3.1.GA
    • Migration: 1h00'
      • between 3 and 4
      • between 4 releases
    • Job executor vs jms/ejbtimer bindings: 20'
    • Integrations with other projects: 30'
      • enterprise
      • spring
      • drools
      • quartz
      • osgi
    • SEAM: 30'
      • Pageflow
      • Email templates
      • Security / identity
      • Timer TX integration issue
    • Maven usage: 30'
    • Variables: 30'
    • Suspend and resume: 10'
    • System variables / activity context information: 20'
      • Previous transition/node
    • OpenExecution.getExtension(Class?)
    • Reuse parts of SEAM ?  Email templates, identity, other ?

    • Potential refactorings
      • Rename node into activity ?
      • Unify node and process
    • Weekly team meetings ?
    • Review web site and wiki

    Topics you want to append:

    Alejandro -

    • Start process instances at predefined time (related to Quartz and BPMN)
    • Enterprise Application Integration
      • eMail: send and receive - e.g. task completion via email in red hat oracle apps
      • JMS: transfer data back and forth between process variables and message properties/body
      • ESB: jboss and other providers - position jBPM as the de facto "scripting" language for ESBs
      • Web services: borrow and improve concepts from BPEL
      • Databases: facilities for accessing external databases
      • Flat files: just mentioned for completeness
    • Pluggable transaction management
      • Internal
      • CMT
      • Seam/Spring
    • Rules HOT
      • Rules in event actions: have rules evaluated as process events fire, or variables change
      • Rule-based decision node
      • Rule-based task assignment


    Alejandro, I have added a section on persistence and the mappings to different transaction technologies.  All the rest is out of scope for jbpm 4.0.0 since that was not in jbpm 3.   I'll give an update on the situation with rules. Tom.


    Ronald -

    • Usage of EL in attributes
      • Concatenation ('Sales-#{dept}' e.g. resolving to Sales-Utrecht)
      • Places where EL is accepted in an attribute (currently not everywhere)
    • More customization of mail


    Ronald, I don't think we'll have a lot of time to go into the details of these kind of jPDL improvments.  But I do want to spend some time on talking through the biggest changes we want in jPDL.  And I also want to make sure that we create a central place for documenting the improvements that we should make when building out jPDL 4.  Tom.

    Thomas -

    What I see as a required outcome from the meeting is agreement on  general concepts like
    - ProcessEngine, Process, ProcessDefinition
    - StartEvent (None, Signal, Message)
    - Task (None, Send, Receive)
    - EndEvent (None, Signal, Message)
    - Gateway (Inclusive, Exclusive, Parallel)
    - Process, Activity Properties
    - Process, Activity Assignments
    - Signal, Message
    - SequenceFlow

    These need to manifest themselves in API, Documentation, and Test cases.  A minimum requirement is that the 1-Jan-2009 release supports a trivial  process like

      (none)start --> (none)task --> (none)end

    through an agreed API. In order to get this to work, many of the above  concepts will have to be agreed on.

    Many of the agenda items that are posted above are interesting, but  outside the (API) scope of the 1-Jan-2009 release. I would therefore  assign lower priority to them and generally only deal with advanced  topics when the basics have been agreed on.


    Thomas, please make the concepts as concrete as you can.  Preferrably in a separate document.  And describe how these are different from  (or similar to) the current jBPM concepts.  Also, explain how you plan (if at all) to support multiple process languages with this.  And how users will be able to extend with their own node types.  And how they can plug in a piece of their custom code into the process.   Making the Jan 1st release concrete should definitely get a high priority. Tom.



    Feel free to start a dev forum topic on this if you prefer that way of providing the feedback.