01
Verifying Business Process Compatibility
Peter Wong, University of Oxford, UK (Joint work with Jeremy Gibbons) June 2007
Verifying Business Process Compatibility Peter Wong, University of - - PowerPoint PPT Presentation
01 Verifying Business Process Compatibility Peter Wong, University of Oxford, UK (Joint work with Jeremy Gibbons) June 2007 02 Introduction Business processes may be described as a Business Process Modelling Notation (BPMN) diagram;
01
Peter Wong, University of Oxford, UK (Joint work with Jeremy Gibbons) June 2007
02
Modelling Notation (BPMN) diagram;
components within a local domain;
language of the process algebra Communicating Sequential Processes (CSP);
(consistency, compatibility etc.);
trial specification. see: Example
03
04
Tasks, subprocesses ...
05
Tasks, subprocesses ... With exception flows ...
06
Sequential and parallel multiple instances of tasks and subprocesses ...
07
Sequential and parallel multiple instances of tasks and subprocesses ... Decision gateways ...
08
Sequential and parallel multiple instances of tasks and subprocesses ... Decision gateways ... Events ...
09
Local composition ...
10
Local composition ... Global collaboration ...
11
State = [in, out, error : P Transition; type : Type; rec, snd, acc, rep, brk : P Messageflow]
WCF : P(P State); BPD ::= states WCF
→ BPD
[[.]] : BName → Env → Process
12
The grammar of CSP (subset). P, Q ::= P ||| Q | P [| A |] Q | P Q | P \ A | P △ Q | P ✷ Q | P o
9 Q | e → P | Skip | Stop
similarly for operators ||| and ;
(Traces T , Stable Failures F, Failures-Divergences N);
see: CSP
13
In CSP the following process description P1 defines a basic activity. αP is the alphabet of process P. P1 = let X = ✷ i : (αY \ { fin.1 }) • (i → X ✷ fin.1 → Skip) Y = (S B E) S = int.b → fin.1 → Skip B = (int.b → st.b → int.e → B) ✷ fin.1 → Skip E = int.e → fin.1 → Skip within (Y [| αY |] X ) \ { |int| }
14
We present two simple examples based on a ticket reservation system adopted from Web Services Choreography Interface specification document.
consistency check.
compatibility check.
15
Orchestration Choreography
(WSCDL or WSCI Global Model);
BPMN Pools
16
see: Booking subprocess see: Process in CSP see: Consistency Verification
17
Let J be the index set: Airline = let X = ✷ i : (αY \ { fin.1, abt.1 }) • (i → X ✷ abt.1 → Stop ✷ fin.1 → Skip) Y = ( j : J • αP(j) ◦ P(j)) within (Y [| αY |] X ) \ { |init| } P(timeout) = (int.timeout → st.timeout → int.notify2 → P(notify)) ✷ (fin.1 → Skip) P(notify) = ((int.notify1 → Skip ✷ int.notify2 → Skip) o
9
st.notify → int.abt → P(notify)) ✷ (fin.1 → Skip) see: BPMN diagram
18
Booking subprocess, let J ′′ be the index set: Booking = let X = ✷ i : (αY \ { fin.3, fin.4 }) • (i → X ✷ (fin.3 → Skip ✷ fin.4 → Skip)) Y = ( j : J ′′ • αP(j) ◦ P(j)) within (Y [| αY |] X ) \ { |int| } P(start2) = (int.xs3 → P(start2)) ✷ (fin.3 → Skip ✷ fin.4 → Skip) P(xs3) = ((int.xs3 → (int.pbooking → Skip ✷ init.cancel → Skip)) o
9
P(xs3)) ✷ (fin.3 → Skip ✷ fin.4 → Skip) see: BPMN diagram
19
specifications using BPMN;
Spec1 ⊑F (Airline \ (αAirline \ αSpec1))
between different levels of abstraction. see: BPMN diagram
20
composition of processes each corresponding to a local participant. Collab = (Trm Ag) \ { |msg| }
see: Collaboration in BPMN see: Compatibility Verification
21
Tr ⊑F (Collab \ (αCollab \ αTr))
as specified by the traveller participant;
traveller participant. see: Collaboration in CSP
22
(st.tr.order, st.tr.cancel, Σ)
23
Detailed analysis of the failures of Trm and Ag may be carried out: (st.tr.order, msg.order.in, msg.order.out, msg.change.end, starts.tr.cancel, ref 1) (msg.order.in, st.ag.order, msg.order.out, msg.change.end, ref 2) where msg.cancel.in / ∈ ref 1 and msg.cancel.in ∈ ref 2.
24
her ticket, and send a message to the travel agent about the cancellation;
entering the reservation phase, and hence may not receive the message from the traveller. see: Collaboration in BPMN
25
see: Collaboration in BPMN see: Refinement Checks
26
We ask FDR to verify the following refinement assertion: Tr ⊑F (Collab2 \ (αCollab2 \ αTr)) where Collab2 = (Trm Ag2) \ { |msg| } see: Model Correction
27
CancerGrid :
Ongoing Work:
editor
28
Web site: http://www.comlab.ox.ac.uk/peter.wong/ Email: peter.wong@comlab.ox.ac.uk
29
2 Introduction 3 Business Process Modelling Notation 4 Business Process Modelling Notation (cont.) 5 Business Process Modelling Notation (cont.) 6 Business Process Modelling Notation (cont.) 7 Business Process Modelling Notation (cont.) 8 Business Process Modelling Notation (cont.) 9 Business Process Modelling Notation (cont.) 10 Business Process Modelling Notation (cont.) 11 On formalising BPMN 12 CSP 13 A Workflow Activity
30
14 Case Study 15 Orchestration and Choreography 16 A Single Business Process 17 A Single Business Process (cont.) 18 A Single Business Process (cont.) 19 Consistency Verification 20 Collaboration - Global Model 21 Compatibility Verification 22 Compatibility Verification (cont.) 23 Compatibility Verification (cont.) 24 Compatibility Verification (cont.) 25 Compatibility Verification (cont.) 26 Compatibility Verification (cont.)
31
27 Future Work 28 Thank You 29 Index 30 Ticket Reservation Collaboration 31 CSP 32 CSP 33 CSP 34 CSP 35 Ticket Reservation Collaboration
32
see: Introduction
33
The grammar of CSP (subset). P, Q ::= P ||| Q | P [| A |] Q | P Q | P \ A | P △ Q | P ✷ Q | P o
9 Q | e → P | Skip | Stop
9 Q - sequential composition.
see: CSP
34
The grammar of CSP (subset). P, Q ::= P ||| Q | P [| A |] Q | P Q | P \ A | P △ Q | P ✷ Q | P o
9 Q | e → P | Skip | Stop
see: CSP
35
The grammar of CSP (subset). P, Q ::= P ||| Q | P [| A |] Q | P Q | P \ A | P △ Q | P ✷ Q | P o
9 Q | e → P | Skip | Stop
see: CSP
36
The grammar of CSP (subset). P, Q ::= P ||| Q | P [| A |] Q | P Q | P \ A | P △ Q | P ✷ Q | P o
9 Q | e → P | Skip | Stop
⊑T : CSP ↔ CSP ∀ P, Q : CSP • P ⊑T Q ⇔ traces(P) ⊇ traces(Q)
⊑F : CSP ↔ CSP ∀ P, Q : CSP • P ⊑F Q ⇔ traces(P) ⊇ traces(Q) ∧ failures(P) ⊇ failures(Q) see: CSP
37
see: Introduction see: Collaboration in CSP see: Model Correction and Error