320 likes | 482 Views
Workflow, BPM and Java. Tom Baeyens Lead Developer JBoss. TS-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’. Agenda. Missing link in Java Workflow
E N D
Workflow, BPM and Java Tom Baeyens Lead DeveloperJBoss TS-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’
Agenda Missing link in Java • Workflow • Business Process Management (BPM) • Orchestration Traditional Approach Graph Oriented Programming Conclusion
After all the trouble to make Java fast... we’re going to add wait states
Workflow requirements BPM requirements workflow solutions BPM solutions orchestration solutions Orchestration requirements
System A System B ? Suspending Path of Execution
Java’s Limitation ... sendMessageToSystemB(); Response response = waitForResponseFromB(); ... • Not persistable • No graphical representation
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
Agenda Missing link in Java • Workflow • Business Process Management (BPM) • Orchestration Traditional Approach Graph Oriented Programming Conclusion
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
Traditional Problems • Monolithic systems • Process language is never powerfull enough • No modelling freedom • Turns into visual programming
Agenda Missing link in Java • Workflow • Business Process Management (BPM) • Orchestration Traditional Approach Graph Oriented Programming Conclusion
Node Transition leavingTransitions from * arrivingTransitions to * Graph Oriented Programming • Define a directed graph
System A System B Token Graph Oriented Programming • Define an executional model • A Token is a path of execution in a single system
Token parent Node children Graph Oriented Programming • Define an executional model Troot Tshipping Tbilling
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
Creating 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
Graph Execution Algorithm • Chain of Responsibility leavingTransitions Node Transition * +execute(Token) +leave(Token, Transition) +take(Token) to 1
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
Graph Oriented Programming GOP provides the means to structure your software around a graph
Agenda Missing link in Java • Workflow • Business Process Management (BPM) • Orchestration Traditional Approach Graph Oriented Programming Conclusion
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
Building Blocks Task User Interfaces Transport BI User Interfases Task Mgmt Async Invocation Business Intelligence Graph Oriented Programming Java
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
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
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