© 2009 by Koen Aers; made available under the EPL v1.0 Executing BPMN 1 Executing BPMN Presented by Koen Aers
May 10, 2015
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN1
Executing BPMN
Presented byKoen Aers
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN2
Speaker
Koen Aers JBoss, a Division of Red Hat
JBoss jBPM (http://labs.jboss.org/jbossjbpm or http://jbpm.org)
JBoss Tools (http://labs.jboss.org/tools)
=> Graphical Process Designer(http://labs.jboss.org/jbossjbpm/gpd)
Blog: http://koentsje.blogspot.com
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN3
Agenda
The BPM Jungle BPMN Overview BPMN Execution Semantics jBPM and jPDL Executing BPMN with jBPM
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN4
Agenda
The BPM Jungle BPMN Overview BPMN Execution Semantics jBPM and jPDL Executing BPMN with jBPM
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN5
Business Process Management
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN6
Business Process Modeling
Business Process Model: Model of one or more
business processes
Defines how operations are carried out
Describes workflow or integration
Abstract!
Workflow == depiction of a sequence of operations
(Software?) Engineering discipline
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN7
Business Process Execution
Aspect of software expressed as a graph
Execution 'flow' BPMS 'runs' process
executions Software:
– DSL– Execute on one system– Central dispatching– Multiple participants– Wait states
BUT: Seven Fallacies of Process Execution!
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN8
BPM Standards
1995: 1 standardization group for
workflow models
Reference model + 5 interface standards
Size of the average specification : +/- 40 pages
2007: 10+ working groups with
interest in BPM
7+ standards for process models alone
Size of the average specification: +/- 150 pages
OMG: CORBA WF, BPMN, BPDM
OASIS: ebXML (or BPSS), BPEL
WfMC: XPDL, Wf-XML
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN9
Agenda
The BPM Jungle BPMN Overview BPMN Execution Semantics jBPM and jPDL Executing BPMN with jBPM
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN10
Agenda
The BPM Jungle BPMN Overview BPMN Execution Semantics jBPM and jPDL Executing BPMN with jBPM
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN11
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN12
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN13
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN14
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN15
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN16
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN17
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN18
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN19
Agenda
The BPM Jungle BPMN Overview BPMN Execution Semantics jBPM and jPDL Executing BPMN with jBPM
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN20
Process Instantiation
When one of the start events occurs Via event based gateway without incoming sequence flow Each occurring start event creates token on outgoing sequence
flow
E1
E2
G1
G2
A1
A2
E3
E5
E4 A3
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN21
Process Termination
All start nodes are visited No remaining tokens for process instance No active activities => All tokens must have reached an end node
G1 A2
E1
E3
E2
A3
A1
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN22
Sequence Flow
Multiple incoming sequence flow
Exclusive gateway A1
Activity without incoming sequence flow
Instantiated when process instance is created
Multiple outgoing sequence flow
Token created for each flow
Conditional sequence flow
A2
A3
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN23
Tasks
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN24
Gateways
Parallel gateway Synchronize concurrent
branches
Spawn new concurrent paths of execution
Semantics At least one token on each
incoming sequence flow
Consumes exactly one token for incoming and produces exactly one token for outcoming sequence flow
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN25
Events
Start events Start the process
Intermediate events Wait until the event occurs
Intermediate boundary events Consume event and execute event handler
End events Terminate ends the process abnormally
Other events execute their behaviour (e.g. Sending message) and then end the process if
All start nodes have been visited No tokens are remaining
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN26
Agenda
The BPM Jungle BPMN Overview BPMN Execution Semantics jBPM and jPDL Executing BPMN with jBPM
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN27
jBPM and the PVM
jBPM is a platform for process languages Process Virtual Machine (PVM) is common substrate jPDL, BPEL, XPDL are implemented on top
jPDL BPEL Pageflow XPDL ...
Process Virtual Machine (PVM)
jBPM
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN28
jBPM Evolution
jBPM 1• EJB state machine
jBPM 2• Std Java Embeddable • Hibernate state machine
jBPM 3• First Activity Pluggability• First Multiple Languages• First Enterprise Embeddability
jBPM 4• Activity Pluggability API• Command Based Services •Multiple Languages• Many Execution modes• DB Partitioning• DB Evolution• Full Embeddability
Product
Project
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN29
jPDL Example
<process name="Order" >
<start> <transition to="fork"/> </start> <fork name="fork"> <transition to="send invoice"/> <transition to="load truck"/> <transition to="print shipping documents"/> </fork> <state name="send invoice"> <transition to="final join"/> </state>
…
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN30
jPDL Characteristics
Open ended Base process language can be extended
API for runtime behaviour
Enriches Java Extracts state management
Process == structure
Code as decoration
Embeddable Libraries
Database and AS agnostic
Standard & Enterprise Java
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN31
Analist – Developer's Bridge
Your AppYour Architecture
jBPMBusinessAnalyst
Developer
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN32
Agenda
The BPM Jungle BPMN Overview BPMN Execution Semantics jBPM and jPDL Executing BPMN with jBPM
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN33
jBPM 3
BPMN to jPDL conversion Based on diagrams from the Eclipse BPMN project
Translation to basic (underspecified) jPDL
Technical details are added in jPDL editor
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN34
BPMN Skin on jPDL
c
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN35
Starting and Ending Processes
Only one start event per process
Multiple end events are possible
Currently end event ends the entire process
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN36
Sequence Flow
One outgoing sequence flow is always unconditional Multiple outgoing sequence flows
No implicit fork behaviour
Outgoing sequence flows are always conditional
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN37
Branching and Merging
c
Fork One incoming sequence flow
Multiple outgoing sequence flows
Join Multiple incoming sequence
flows
One outgoing sequence flow
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN38
Superstates
Phases in a process Ad hoc tasks?
New artefact?
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN39
BPMN on the PVM
jPDL BPEL Pageflow XPDL BPMN ...
Process Virtual Machine (PVM)
jBPM
Native execution No mapping issues Targeted post jBPM 4 GA
© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN40
Conclusions
BPM is still a jungle BPMN is very promising Execution semantics and compliance are still fuzzy BPMN builds on the same ideas as jBPM and jPDL Two possibilities of executing BPMN with jBPM