Top Banner
© 2009 by Koen Aers; made available under the EPL v1.0 Executing BPMN 1 Executing BPMN Presented by Koen Aers
40
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN1

Executing BPMN

Presented byKoen Aers

Page 2: Executing.Bpmn.Eclipscon.2009

© 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

Page 3: Executing.Bpmn.Eclipscon.2009

© 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

Page 4: Executing.Bpmn.Eclipscon.2009

© 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

Page 5: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN5

Business Process Management

Page 6: Executing.Bpmn.Eclipscon.2009

© 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

Page 7: Executing.Bpmn.Eclipscon.2009

© 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!

Page 8: Executing.Bpmn.Eclipscon.2009

© 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

Page 9: Executing.Bpmn.Eclipscon.2009

© 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

Page 10: Executing.Bpmn.Eclipscon.2009

© 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

Page 11: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN11

Page 12: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN12

Page 13: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN13

Page 14: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN14

Page 15: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN15

Page 16: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN16

Page 17: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN17

Page 18: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN18

Page 19: Executing.Bpmn.Eclipscon.2009

© 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

Page 20: Executing.Bpmn.Eclipscon.2009

© 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

Page 21: Executing.Bpmn.Eclipscon.2009

© 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

Page 22: Executing.Bpmn.Eclipscon.2009

© 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

Page 23: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN23

Tasks

Page 24: Executing.Bpmn.Eclipscon.2009

© 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

Page 25: Executing.Bpmn.Eclipscon.2009

© 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

Page 26: Executing.Bpmn.Eclipscon.2009

© 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

Page 27: Executing.Bpmn.Eclipscon.2009

© 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

Page 28: Executing.Bpmn.Eclipscon.2009

© 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

Page 29: Executing.Bpmn.Eclipscon.2009

© 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>

Page 30: Executing.Bpmn.Eclipscon.2009

© 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

Page 31: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN31

Analist – Developer's Bridge

Your AppYour Architecture

jBPMBusinessAnalyst

Developer

Page 32: Executing.Bpmn.Eclipscon.2009

© 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

Page 33: Executing.Bpmn.Eclipscon.2009

© 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

Page 34: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN34

BPMN Skin on jPDL

c

Page 35: Executing.Bpmn.Eclipscon.2009

© 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

Page 36: Executing.Bpmn.Eclipscon.2009

© 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

Page 37: Executing.Bpmn.Eclipscon.2009

© 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

Page 38: Executing.Bpmn.Eclipscon.2009

© 2009 by Koen Aers; made available under the EPL v1.0Executing BPMN38

Superstates

Phases in a process Ad hoc tasks?

New artefact?

Page 39: Executing.Bpmn.Eclipscon.2009

© 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

Page 40: Executing.Bpmn.Eclipscon.2009

© 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