web services choreography description language (ws-cdl)

53
Model Transformations for Business Process Analysis and Execution Marlon Dumas University of Tartu

Upload: timothy212

Post on 07-Dec-2014

1.063 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Web Services Choreography Description Language (WS-CDL)

Model Transformations for Business Process Analysis and Execution

Marlon Dumas

University of Tartu

Page 2: Web Services Choreography Description Language (WS-CDL)

2

Business Process Management (BPM)

Collection of methods and techniques to design, analyze, execute and monitor business operations involving humans, software, information and physical artifacts using process models.

Page 3: Web Services Choreography Description Language (WS-CDL)

3

OK, so what is a process model?

• Collection of inter-dependent activities whose collective performance is intended to achieve a goal such as delivering a product or a service.

• E,g. order-to-cash, procure-to-pay, issue-to-resolution• Animated example

Check Completeness

ObtainAdditional

Information

Check Credit History

Check Income Source(s)

Credit CardApplication

Assess Application

Make Credit Offer

Notify Rejection

Page 4: Web Services Choreography Description Language (WS-CDL)

4

Process models serve many purposes…

ProcessDocumentation

WorkflowManagement

EnterpriseArchitecture

DocumentManagement

KnowledgeManagement

ProcessImprovement

Process CostAnalysis / Simulation

EnterpriseSystems

Compliance /Risk Management

SoftwareEvaluation/Selection

Page 5: Web Services Choreography Description Language (WS-CDL)

5

… they have many faces

Abstract Models

EPC, BPMN

Communication, simulation, activity-

based costing…

ProcessImplementation

ProcessAnalysis & Design

Process Enactment & Monitoring

Process Evaluation

“TO BE”Process Models

Exe

cuta

ble

P

roce

ss M

od

els

Mea

sure

s fo

r Im

pro

vem

ent

Process Metrics

OrganizationalAnalysis

Tar

get V

alue

s

“AS IS”Process Models

Detailed Models

BPEL, State Machines…

Data types, conditions, data mappings, fault

handling…

Integration, testing, deployment…

Page 6: Web Services Choreography Description Language (WS-CDL)

6

…and can be seen from many perspectives

• Control-flow• Data• Resource• Operational

Sound design

Dialog premix FX premix

Music designComposer

Sound Designer

Editor

V

V

Temp picture cut

Temp picture cut

V

V

V

V

Temp music output

Temp sound output

Effect cues Dialog cues Music cues

Page 7: Web Services Choreography Description Language (WS-CDL)

7

Many in one, or one in many?

“The thing can be many in one sense, but also can be one in another sense.”

Imam Ghazali

Revival of Religious Sciences 

Page 8: Web Services Choreography Description Language (WS-CDL)

8

Process Modelling:Dealing with Multiplicity

• Multiple modelling languages (meta-models)• Multiple modelling viewpoints

– Control-flow view vs. data view– Public views (protocols) vs. private views

• Multiple abstraction levels– High-level: tasks, performance metrics...– Low-level: data transformations, application bindings...

Page 9: Web Services Choreography Description Language (WS-CDL)

9

Process Modelling Notations

• Business Process Modelling Notation (BPMN)• Event-driven Process Chains (EPC)• Business Process Execution Language (BPEL)• State machines and variants (e.g. IBM Business

State Machine, WWF)• Petri nets (and variants, e.g. YAWL)

Page 10: Web Services Choreography Description Language (WS-CDL)

10

Model transformations

• BPMN-to-BPEL– Purpose: Transform models produced by analysts into

models for developers (and vice-versa)– Commonly supported in commercial tool, but in a limited

manner

• BPEL-to-Petri nets– For analysis & verification

• BPMN-to-Petri nets– For analysis & verification (e.g. deadlock-freeness)

Page 11: Web Services Choreography Description Language (WS-CDL)

11

BPMN from 10 000 miles…

Event Task Flow Gateway

Page 12: Web Services Choreography Description Language (WS-CDL)

12

BPMN: A more detailed view

Start EventIntermediate

Message EventIntermediate Timer Event

Task Parallel Fork Gateway

Parallel Join Gateway

End Terminate EventEnd Event

Flow Event-based Decision Gateway

receive

Merge Gateway

Data-based Decision Gateway

c

~c

Page 13: Web Services Choreography Description Language (WS-CDL)

13

Quick BPMN example

Check stock availability

Reject order

Confirm order

Send invoice

Ship goods

Page 14: Web Services Choreography Description Language (WS-CDL)

14

BPEL from 10 000 miles

• Basic activities: <assign>, <invoke>, <receive>• Sequential flow: <sequence>, <while>, <switch>• Block-structured parallel flow: <flow>• Graph-oriented (parallel) flow: <link> **• Event-action rules: <onEvent> **• Other constructs not relevant to this talk…

** Only partially supported by some tools

Page 15: Web Services Choreography Description Language (WS-CDL)

15

A quick BPEL example

<sequence> <invoke “check stock availability” …/> <switch (…) …/> <case “reject”> <invoke “order rejection” …/> </case> <otherwise> <sequence> <invoke “order acceptance” … /> <flow> <invoke “invoicing” … /> <invoke “ship goods” … /> </flow> </sequence> </otherwise> </switch> </sequence>

Page 16: Web Services Choreography Description Language (WS-CDL)

16

BPMN-to-BPEL: Some monsters!

Bounded multiple-instance task (D)

Unstructured loop

LivelockUnbounded multiple-instance tasks (C)

A B C D

A B C D

A D

A

B

C

D

Page 17: Web Services Choreography Description Language (WS-CDL)

17

BPMN-to-BPEL (from 10 000 miles)

Repeat until reduction to a single node

1. Identify a structured & quasi-structured SESE region Fold into a BPEL structured activity

2. Identify irreducible SESE regions without parallelism Apply GotoWhile transformations, repeat from 1

3. Identify acyclic fragments with concurrency Fold into a BPEL activity with control links

4. Identify minimal unstructured components BPEL event handlers

Page 18: Web Services Choreography Description Language (WS-CDL)

18

BPMN-BPEL: Structured Components

( a ) SEQUENCE-component

( b ) FLOW-component

<sequence> <invoke name="t1"/> <receive name="e1"/> . . . <invoke name="tn"/></sequence>

tc

<flow> <invoke name="t1"/> <wait name="e2"/> . . . <invoke name="tn"/></flow>

tc

t1

e1

tn

t1

tn

e2

C

C

Page 19: Web Services Choreography Description Language (WS-CDL)

19

BPMN-BPEL: Structured Components

( e ) WHILE-component

( f ) REPEAT-component

<while condition="c1"> <invoke name="t1"/></while>

tc

<sequence> <invoke name="t1"/> <while condition="c1"> <invoke name="t1"/> </while></sequence>

tc

c1

~c1

t1C

c1

~c1t1

C

Page 20: Web Services Choreography Description Language (WS-CDL)

20

BPMN-BPEL: Structured Components

( c ) SWITCH-component

( d ) PICK-component

<switch> <case condition="c1"> <invoke name="t1"/> </case> <case condition="c2"> <receive name="e1"/> </case> . . . <otherwise> <empty/> </otherwise></switch>

tc

tc

<pick> <onMessage name="e1"/> <invoke name="t1"/> </onMessage> <onAlarm name="e2"> <empty/> </onAlarm> . . . <onMessage name="tr"> <invoke name="tn"/> </onMessage></pick>

tn

t1

tr(receive)

e1

e2

C

t1

c2

default

c1

e1

C

Page 21: Web Services Choreography Description Language (WS-CDL)

21

Example: Only Structured Components

Check stock availability

Reject order

Confirm order

Send invoice

Ship goods

Flow-component

Switch-component

Sequence-component

Sequence-component

Page 22: Web Services Choreography Description Language (WS-CDL)

22

BPMN-to-BPEL: Acyclic component

T1

T2

T3

T4

T1 T3

T2 T4

Flow-component

AND

BPMN BPEL

Proposition: Every acyclic BPMN component with a single entry point and a single exit point that is 1-safe and sound can be mapped to a BPEL Flow with links

Page 23: Web Services Choreography Description Language (WS-CDL)

23

ExampleStructured+Acyclic Components

a2

C1

f2

f3

m4

UBL

receive EDI 856 (ASN)

receive EDI 810 (Invoice)

receive despatch-advice

receive invoice

EDI

sendpayment-request

send fulfillment-notice

a1

a4

a3

a5

a6

d1m5

j6

tc1 send fulfillment-notice

a6C2

tc2

Page 24: Web Services Choreography Description Language (WS-CDL)

24

Minimizing the use of control links

a1

a3

a2

a5

a4

a6

a7

a8

fc

jcg2

g1

g3

g4

g5

t1

a5

a7

t2

t3

g4

jc

fc

[a3, a4]

[a1, a2]

[a6, a8]

Page 25: Web Services Choreography Description Language (WS-CDL)

25

For the rest…

• Identify a minimal SESE region that is neither structured nor acyclic

• For each action in the component, retrieve:– All actions that immediately precede it– All actions that immediately follow it

• For each action, code the following behaviour using event-action rules:– Wait for a suitable combination of predecessors to

complete– Perform action– Notify completion to all successors

Page 26: Web Services Choreography Description Language (WS-CDL)

26

BPEL-to-Petri netApplication to Conformance Checking

ServicesServicesabstractBPEL

process

Petri netmodel

SOAPMessages

Event Log

Services

Monitoring /Correlation

Conformance?

ConformanceChecking!

Translation

Page 27: Web Services Choreography Description Language (WS-CDL)

27

From BPEL to WF-nets

Page 28: Web Services Choreography Description Language (WS-CDL)

28

Petri net-based Conformance Checking

Objectives:– quantitatively measure conformance– locate deviations

Conformance?

Page 29: Web Services Choreography Description Language (WS-CDL)

29

Conformance Checking – Fitness

Page 30: Web Services Choreography Description Language (WS-CDL)

30

Conformance Checking – Fitness

Page 31: Web Services Choreography Description Language (WS-CDL)

31

Measuring fitness: Log replay analysis

missing tokensremaining tokens

= 0= 1

consumed tokensproduced tokens

= 0= 0

Page 32: Web Services Choreography Description Language (WS-CDL)

32

Measuring fitness: Log replay analysis

= 1= 2

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 33: Web Services Choreography Description Language (WS-CDL)

33

Measuring fitness: Log replay analysis

= 2= 4

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 34: Web Services Choreography Description Language (WS-CDL)

34

Measuring fitness: Log replay analysis

= 3= 5

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 35: Web Services Choreography Description Language (WS-CDL)

35

Measuring fitness: Log replay analysis

= 5= 6

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 36: Web Services Choreography Description Language (WS-CDL)

36

Measuring fitness: Log replay analysis

= 6= 7

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 37: Web Services Choreography Description Language (WS-CDL)

37

Measuring fitness: Log replay analysis

= 7= 7

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 38: Web Services Choreography Description Language (WS-CDL)

38

Measuring fitness: Log replay analysis

= 9= 9

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 39: Web Services Choreography Description Language (WS-CDL)

39

Measuring fitness: Log replay analysis

= 9= 9

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 40: Web Services Choreography Description Language (WS-CDL)

40

Measuring fitness: Log replay analysis

= 0= 1

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 41: Web Services Choreography Description Language (WS-CDL)

41

Measuring fitness: Log replay analysis

= 1= 2

= 0= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 42: Web Services Choreography Description Language (WS-CDL)

42

Measuring fitness: Log replay analysis

= 2= 4

= 1= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 43: Web Services Choreography Description Language (WS-CDL)

43

Measuring fitness: Log replay analysis

= 3= 5

= 1= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 44: Web Services Choreography Description Language (WS-CDL)

44

Measuring fitness: Log replay analysis

= 4= 6

= 1= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 45: Web Services Choreography Description Language (WS-CDL)

45

Measuring fitness: Log replay analysis

= 6= 7

= 1= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 46: Web Services Choreography Description Language (WS-CDL)

46

Measuring fitness: Log replay analysis

= 7= 8

= 1= 0

missing tokensremaining tokens

consumed tokensproduced tokens

Page 47: Web Services Choreography Description Language (WS-CDL)

47

Measuring fitness: Log replay analysis

= 8= 8

= 1= 1

missing tokensremaining tokens

consumed tokensproduced tokens

Page 48: Web Services Choreography Description Language (WS-CDL)

48

Measuring fitness: Log replay analysis

= 8= 8

= 1= 1

missing tokensremaining tokens

consumed tokensproduced tokens

Page 49: Web Services Choreography Description Language (WS-CDL)

49

Measuring fitness: Log replay analysis

Page 50: Web Services Choreography Description Language (WS-CDL)

50

Measuring fitness: Log replay analysis

f = 1.0 f ≈ 0.540f ≈ 0.955

Page 51: Web Services Choreography Description Language (WS-CDL)

51

Conformance Checking - Appropriateness

100 % fitnessbut not sufficiently specific from behavioral point of view.

100 % fitnessbut not represented instructurally suitable way.

Page 52: Web Services Choreography Description Language (WS-CDL)

52

Ongoing work

• Reversible BPMN ↔ BPEL transformation• Two-way transformation: BPEL ↔ FSM

– Application to automated service composition– BPEL FSM not too difficult – FSM BPEL more exciting, e.g.

A

B

B

A

A

B

Page 53: Web Services Choreography Description Language (WS-CDL)

53

References