0% found this document useful (0 votes)
61 views31 pages

Workflow, BPM and Java: Tom Baeyens

The document summarizes a presentation about adding workflow and business process management capabilities to Java using graph oriented programming. It discusses how traditional workflow approaches are monolithic and limit modeling freedom. Graph oriented programming models processes as directed graphs of nodes and transitions that can suspend and resume the execution path. This allows building workflow, BPM, and orchestration functionality in a modular way on top of Java. The speaker's company JBoss implements this approach in their jBPM open source project.

Uploaded by

minglei2010
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views31 pages

Workflow, BPM and Java: Tom Baeyens

The document summarizes a presentation about adding workflow and business process management capabilities to Java using graph oriented programming. It discusses how traditional workflow approaches are monolithic and limit modeling freedom. Graph oriented programming models processes as directed graphs of nodes and transitions that can suspend and resume the execution path. This allows building workflow, BPM, and orchestration functionality in a modular way on top of Java. The speaker's company JBoss implements this approach in their jBPM open source project.

Uploaded by

minglei2010
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 31

Workflow, BPM and Java

Tom Baeyens
Lead Developer
JBoss

TS-7364

2005 JavaOneSM Conference | Session 7364


Speaker
• Tom Baeyens
• Founder and project lead of JBoss jBPM
• Member of JCP expert groups
• JSR207 ‘Process Definition for Java’
• JSR208 ‘Java Business Integration’

2005 JavaOneSM Conference | Session 7364 | 2


Agenda

Missing link in Java


• Workflow
• Business Process Management (BPM)
• Orchestration
Traditional Approach
Graph Oriented Programming
Conclusion

2005 JavaOneSM Conference | Session 7364 | 3


After all the trouble to make Java fast...

we’re going to
add wait states

2005 JavaOneSM Conference | Session 7364 | 4


Workflow requirements
BPM requirements

workflow
BPM
solutions
solutions

orchestration
solutions

Orchestration requirements

2005 JavaOneSM Conference | Session 7364 | 5


Suspending Path of Execution
System A System B

2005 JavaOneSM Conference | Session 7364 | 6


Java’s Limitation

...
sendMessageToSystemB();
Response response = waitForResponseFromB();
...

• Not persistable
• No graphical representation

2005 JavaOneSM Conference | Session 7364 | 7


Graphical 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

2005 JavaOneSM Conference | Session 7364 | 8


Agenda

Missing link in Java


• Workflow
• Business Process Management (BPM)
• Orchestration
Traditional Approach
Graph Oriented Programming
Conclusion

2005 JavaOneSM Conference | Session 7364 | 9


Traditional 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

2005 JavaOneSM Conference | Session 7364 | 10


Traditional Problems
• Monolithic systems
• Process language is never powerfull enough
• No modelling freedom
• Turns into visual programming

2005 JavaOneSM Conference | Session 7364 | 11


Agenda

Missing link in Java


• Workflow
• Business Process Management (BPM)
• Orchestration
Traditional Approach
Graph Oriented Programming
Conclusion

2005 JavaOneSM Conference | Session 7364 | 12


Graph Oriented Programming
• Define a directed graph

Node leavingTransitions Transition


from *

arrivingTransitions
to *

2005 JavaOneSM Conference | Session 7364 | 13


Graph Oriented Programming
• Define an executional model
• A Token is a path of execution in a single system

System A System B
Token

2005 JavaOneSM Conference | Session 7364 | 14


Graph Oriented Programming
• Define an executional model
Troot

Tshipping Tbilling

parent

Token
children Node

2005 JavaOneSM Conference | Session 7364 | 15


Graph 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

2005 JavaOneSM Conference | Session 7364 | 16


Creating the ProcessInstance
ProcessInstance pi =
new ProcessInstance(pd);
Token token = pi.getRootToken();
e.g. web app
token.signal();
// put process instance and token
// in the persistent store

// fetch the token from


// the persistent store
e.g. MDB Token token = ...;
token.signal();

2005 JavaOneSM Conference | Session 7364 | 17


Graph Execution Algorithm
• Chain of Responsibility

leavingTransitions
Node Transition
*
+execute(Token)
+take(Token)
+leave(Token, to
Transition) 1

2005 JavaOneSM Conference | Session 7364 | 18


Graph Execution Algorithm
• Algorithm is aligned with transactions
• Client’s thread is used for calculation
• No reinvention
• Existing Java API’s are leveraged
• e.g. JMS for asynchronous communication

2005 JavaOneSM Conference | Session 7364 | 19


Hiding Details with Actions

2005 JavaOneSM Conference | Session 7364 | 20


Hiding Details with Actions

2005 JavaOneSM Conference | Session 7364 | 21


Hiding Details with Actions

Token

2005 JavaOneSM Conference | Session 7364 | 22


Graph Oriented Programming

GOP provides the means


to structure your software
around a graph

2005 JavaOneSM Conference | Session 7364 | 23


Agenda

Missing link in Java


• Workflow
• Business Process Management (BPM)
• Orchestration
Traditional Approach
Graph Oriented Programming
Conclusion

2005 JavaOneSM Conference | Session 7364 | 24


Graph 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

2005 JavaOneSM Conference | Session 7364 | 25


Building Blocks

Task User BI User


Transport
Interfaces Interfases

Task Async Business


Mgmt Invocation Intelligence

Graph Oriented Programming

Java
2005 JavaOneSM Conference | Session 7364 | 26
Summary
• 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

2005 JavaOneSM Conference | Session 7364 | 27


Conclusion
• 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

2005 JavaOneSM Conference | Session 7364 | 28


Next 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

2005 JavaOneSM Conference | Session 7364 | 29


Demo

2005 JavaOneSM Conference | Session XXXX | 30


Q&A

2005 JavaOneSM Conference | Session XXXX | 31

You might also like