web services choreography description language (ws-cdl)
DESCRIPTION
TRANSCRIPT
Model Transformations for Business Process Analysis and Execution
Marlon Dumas
University of Tartu
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.
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
4
Process models serve many purposes…
ProcessDocumentation
WorkflowManagement
EnterpriseArchitecture
DocumentManagement
KnowledgeManagement
ProcessImprovement
Process CostAnalysis / Simulation
EnterpriseSystems
Compliance /Risk Management
SoftwareEvaluation/Selection
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…
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
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
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...
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)
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)
11
BPMN from 10 000 miles…
Event Task Flow Gateway
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
13
Quick BPMN example
Check stock availability
Reject order
Confirm order
Send invoice
Ship goods
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
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>
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
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
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
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
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
21
Example: Only Structured Components
Check stock availability
Reject order
Confirm order
Send invoice
Ship goods
Flow-component
Switch-component
Sequence-component
Sequence-component
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
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
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]
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
26
BPEL-to-Petri netApplication to Conformance Checking
ServicesServicesabstractBPEL
process
Petri netmodel
SOAPMessages
Event Log
Services
Monitoring /Correlation
Conformance?
ConformanceChecking!
Translation
27
From BPEL to WF-nets
28
Petri net-based Conformance Checking
Objectives:– quantitatively measure conformance– locate deviations
Conformance?
29
Conformance Checking – Fitness
30
Conformance Checking – Fitness
31
Measuring fitness: Log replay analysis
missing tokensremaining tokens
= 0= 1
consumed tokensproduced tokens
= 0= 0
32
Measuring fitness: Log replay analysis
= 1= 2
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
33
Measuring fitness: Log replay analysis
= 2= 4
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
34
Measuring fitness: Log replay analysis
= 3= 5
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
35
Measuring fitness: Log replay analysis
= 5= 6
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
36
Measuring fitness: Log replay analysis
= 6= 7
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
37
Measuring fitness: Log replay analysis
= 7= 7
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
38
Measuring fitness: Log replay analysis
= 9= 9
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
39
Measuring fitness: Log replay analysis
= 9= 9
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
40
Measuring fitness: Log replay analysis
= 0= 1
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
41
Measuring fitness: Log replay analysis
= 1= 2
= 0= 0
missing tokensremaining tokens
consumed tokensproduced tokens
42
Measuring fitness: Log replay analysis
= 2= 4
= 1= 0
missing tokensremaining tokens
consumed tokensproduced tokens
43
Measuring fitness: Log replay analysis
= 3= 5
= 1= 0
missing tokensremaining tokens
consumed tokensproduced tokens
44
Measuring fitness: Log replay analysis
= 4= 6
= 1= 0
missing tokensremaining tokens
consumed tokensproduced tokens
45
Measuring fitness: Log replay analysis
= 6= 7
= 1= 0
missing tokensremaining tokens
consumed tokensproduced tokens
46
Measuring fitness: Log replay analysis
= 7= 8
= 1= 0
missing tokensremaining tokens
consumed tokensproduced tokens
47
Measuring fitness: Log replay analysis
= 8= 8
= 1= 1
missing tokensremaining tokens
consumed tokensproduced tokens
48
Measuring fitness: Log replay analysis
= 8= 8
= 1= 1
missing tokensremaining tokens
consumed tokensproduced tokens
49
Measuring fitness: Log replay analysis
50
Measuring fitness: Log replay analysis
f = 1.0 f ≈ 0.540f ≈ 0.955
51
Conformance Checking - Appropriateness
100 % fitnessbut not sufficiently specific from behavioral point of view.
100 % fitnessbut not represented instructurally suitable way.
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
53
References