jBPM Team Meeting
Practical
Date: November 3-5 2008
Location: Anwerp, www.elzenveld.be, 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'
- See also seven.forms.of.bpm.pdf attachment
- 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
- http://docs.google.com/View?docid=dfzsjmg9_18dmn56sdk
- http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4184053#4184053
- HIM
- pluggable task life cycle
- Forms
- What concrete authromization use cases
- e.g. limit people that are able to start a process
- Only task mgmt matter or also core engine matter ?
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'
- Own repo ? http://archiva.apache.org/ or http://www.jfrog.org/sites/artifactory/1.2/
- Limiting the number of dependencies
- 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
- template per task (JBPM-1172)
- html support (JBPM-978)
- use jndi session (JBPM-1171)
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.
Comments