Transcript

© 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

top related