Title: Workflow, BPM and Java
1Workflow, BPM and Java
- Tom Baeyens
- Lead DeveloperJBoss
TS-7364
2Speaker
- Tom Baeyens
- Founder and project lead of JBoss jBPM
- Member of JCP expert groups
- JSR207 Process Definition for Java
- JSR208 Java Business Integration
3Agenda
- Missing link in Java
- Workflow
- Business Process Management (BPM)
- Orchestration
- Traditional Approach
- Graph Oriented Programming
- Conclusion
4After all the trouble to make Java fast...
- were going to
- add wait states
5Workflow requirements
BPM requirements
workflow solutions
BPM solutions
orchestration solutions
Orchestration requirements
6Suspending Path of Execution
7Javas Limitation
... sendMessageToSystemB() Response response
waitForResponseFromB() ...
- Not persistable
- No graphical representation
8Graphical Representation
- Analyst draws graphs that include wait states
- Technical solution enables common language
- Analysts do not create software
- Iterative refinement
- Developer adds technical details
- Analyst looks at projected view
9Agenda
- Missing link in Java
- Workflow
- Business Process Management (BPM)
- Orchestration
- Traditional Approach
- Graph Oriented Programming
- Conclusion
10Traditional Approach
- Define a set of constructs
- That are the node-types in a graph
- With a graphical representation
- And a runtime behaviour
- Set of constructs is process language
11Traditional Problems
- Monolithic systems
- Process language is never powerfull enough
- No modelling freedom
- Turns into visual programming
12Agenda
- Missing link in Java
- Workflow
- Business Process Management (BPM)
- Orchestration
- Traditional Approach
- Graph Oriented Programming
- Conclusion
13Graph Oriented Programming
14Graph Oriented Programming
- Define an executional model
- A Token is a path of execution in a single system
15Graph Oriented Programming
- Define an executional model
Troot
Tshipping
Tbilling
16Graph Oriented Programming
- Define an executional model
- A Signal is the trigger that resumes process
execution
System A
Token
send message to System B
send a Signal to the Token
17Creating the ProcessInstance
- ProcessInstance pi
- new ProcessInstance(pd)
- Token token pi.getRootToken()
- token.signal()
- // put process instance and token
- // in the persistent store
e.g. web app
// fetch the token from // the persistent
store Token token ... token.signal()
e.g. MDB
18Graph Execution Algorithm
leavingTransitions
Node
Transition
execute(Token) leave(Token, Transition)
take(Token)
to
1
19Graph Execution Algorithm
- Algorithm is aligned with transactions
- Clients thread is used for calculation
- No reinvention
- Existing Java APIs are leveraged
- e.g. JMS for asynchronous communication
20Hiding Details with Actions
21Hiding Details with Actions
22Hiding Details with Actions
Token
23Graph Oriented Programming
GOP provides the means to structure your
software around a graph
24Agenda
- Missing link in Java
- Workflow
- Business Process Management (BPM)
- Orchestration
- Traditional Approach
- Graph Oriented Programming
- Conclusion
25Graph Oriented Programming
- Simple API chain of responsibility
- replaces monolithic systems
- Inheriting from Node
- gives ultimate process language power
- Adding invisible Actions
- give modelling freedom
- Process development cycle
- replaces visual programming
26Building Blocks
Task User Interfaces
Transport
BI User Interfases
Task Mgmt
Async Invocation
Business Intelligence
Graph Oriented Programming
Java
27Summary
- Java has limited support for wait states
- Graph Oriented Programming extends Java with the
ability to suspend and resume executions - Graph Oriented Programming is a building block
- Workflow, BPM and orchestration functionalities
can be built on top of it
28Conclusion
- JBoss jBPM implements this technology
- modular
- with functional extensions
- Available as a POJO API in a plain .jar
- Scales to enterprise
- So you can stop writing home grown frameworks
29Next Steps
- Visit
- http//jbpm.org
- http//jboss.com
- JBoss jBPM userguide
- Chapter Graph Oriented Programming
- Get involved
- http//jbpm.org/forums
- http//jbpm.org/wiki
- JBoss jBPM Training
- http//jbpm.org/training
30Demo
31QA