Fixing Choreographies using Graph Similarities Niels Lohmann YR‐SOC 2008 ▪ London ▪ 12 June 2008 http://service‐technology.org/yrsoc2008 UNIVERSITÄT ROSTOCK
How can we avoid this? What went wrong ? Who is to blame ? 2 http://thisboyissmooth.wordpress.com/2008/02/12/sistemas-operativos-e-deadlocks/
State‐of‐the‐art choreography analysis 1. translate BPEL choreography into formal model 2. check for deadlocks 3. if deadlock found: choose a " scapegoat " participant remove it from the choreography synthesize a corrected version (if possible) retranslate synthesized participant back to BPEL Full tool support available! [WS‐FM2007] 3
Problem with that approach • the synthesized service is built independently from the scapegoat gives no information what was changed is correct, yet might not cover the original intention 4
Example choreography send offer Customer rejection send send receive booking payment confirmation Travel Agency receive receive send booking payment ticket order send offer receive offer rejection ✓ send confirmation Airline send refusal 5
Example choreography ✗ send offer Customer rejection send send receive booking payment confirmation Travel Agency receive receive send booking payment ticket order send offer receive offer rejection send confirmation Airline send refusal 6
Fix the customer service send offer ✗ rejection send send receive booking payment confirmation scapegoat ✓ send offer rejection send offer rejection ✓ send send receive booking payment confirmation receive better choice refusal 7
Setting • given: a service (the scapegoat ) a set of candidates • find: the candidate that is most similar to the scapegoat …without sequentially checking all candidates 8
Operating Guidelines in a Nutshell !rejection � ?offer � !payment � !booking !rejection • automaton !booking ?offer !payment ?offer annotated !rejection � !payment � !booking ?offer � !booking ?offer � !payment ?offer !booking with Boolean !payment !payment !rejection !booking ?offer formulae ?offer � (?confirmation � ?refusal) !booking !payment ?offer !payment ?offer !booking ?refusal ?confirmation ?confirmation � ?refusal ?offer • characterizes all ?confirmation ?refusal partners [ATPN2007] ?offer final • partner iff Travel Agency receive receive send booking payment ticket order simulated by OG send offer receive offer rejection fulfilling the send confirmation annotations Airline send refusal • many applications (service discovery, testing, …) 9
OG characterizes all possible corrections !rejection � ?offer � !payment � !booking !rejection !booking ?offer !payment ?offer !rejection � !payment � !booking ?offer � !booking ?offer � !payment ?offer !booking !payment !payment !rejection !booking ?offer ?offer � (?confirmation � ?refusal) !booking !payment ?offer !payment ?offer !booking ?refusal ?confirmation ?confirmation � ?refusal ?offer ?confirmation ?refusal ?offer final and 2001 additional candidates ?offer ?offer !booking !booking ?offer !rejection !rejection ✓ !payment ✗ ✓ !payment !rejection ?confirmation ?confirmation 10 ?refusal
Setting (refined) • given: a service automaton (the scapegoat ) an operating guideline characterizing all candidates • find: the candidate that is most similar to the scapegoat …without sequentially checking all candidates 11
Graph edit distance • a measure to compare graphs: edit distance = no. of needed actions to achieve graph isomorphism b a a modify b to a a 0,5 c d d d add c branch d c 0,7 e e e delete e branch 0,3 • maybe associated with a cost function 12
Graph edit distance vs. behavior !c !a ?b equivalent behavior high edit distance low edit distance unsimilar behavior !a ?b ?b !a !c ?b !c !a high edit distance unsimilar behavior 13
Simulation‐based graph similarity • Idea: find a similarity that respects simulation a a b c c b d d d • compare two states and find best transitions w.r.t. successor states [TACAS2006] 14
Simulation‐based graph similarity • Mismatches are treated with stuttering steps a a b c c b e d ε f • penalize stuttering by label similarity function • choose best pairs by maximizing label similarity 15
Simulation‐based graph similarity • label similarity function defines an edit distance (a,a) ➙ keep a b a a (e,d) ➙ change e to d c b c (ε,x) ➙ insert x e d ε (f,ε) ➙ delete f f • values can be derived from semantic Web information (!€,!$) or (?receipt,?confirmation) rather high (!login,?invoice) rather low 16
Simulation and OG matching • Simulation is only one part of the OG matching !rejection � ?offer � !payment � !booking !rejection !booking ?offer !payment ?offer ?offer !rejection � !payment � !booking ?offer � !booking ?offer � !payment ?offer !booking !payment !payment !rejection !booking ?offer !booking ?offer � (?confirmation � ?refusal) !booking !payment ?offer !rejection !payment ?offer !booking ?refusal !payment ?confirmation ?confirmation � ?refusal ?offer ?confirmation ?refusal ?confirmation ?offer ✗ final • next step: make edit distance aware of formulas 17
Respect formulas • instead of comparison with the OG's structure… • compare with satisfying assignments of the formula (!a � !b) � ?c !a !d !a !d !a !d !b ?c !b ?c !b ?c !b ?c !a !d !a ?c ?c !b ?c • worst‐case complexity: O(|Q SA | ⋅ |Q OG | ⋅ 2 |I| ⋅ |I|!) assignments edge permutations 18
Experimental results • Simulation‐ and matching‐based edit distance implemented in tool RAC H EL • Dynamic programming exploits structure of the problem service interface states SA states OG candidates time (s) Running Example 6 5 11 2003 0 Online Shop 7 222 153 10 2033 4 Supply Order 7 7 96 10 733 1 Internal Order 9 14 512 > 10 4932 195 Customer Service 9 104 59 10 108 3 Car Rental 7 49 50 10 144 6 Order Process 8 27 44 10 222 0 Purchase Order 10 137 168 > 10 4932 391 • Most results within few seconds • Exceptions have near‐worst‐case structure/formulas 19
Fixing the example with Rachel send offer rejection send send receive booking payment confirmation receive refusal • edit actions can be mapped back to original service • result can be influenced by adjusting label similarities 20
Take home points • choreographies can be fixed using the edit distance • can help to only change little parts of the scapegoat • prototype shows that fixing of real‐life processes works • Open questions: Which service to fix? What about cyclic or nondeterministic services? How does the mapping back to BPEL really work? Can we support more elaborate edit actions? Can heuristics help to improve performance? 21
See more • Tool demo JUN "Tools4BPEL4Chor" (Tomorrow @ YR‐SOC) 13 tool chain (editor, translation, analysis…) • Web http://service‐technology.org/yrsoc2008 slides, tools, examples, links • Conference paper @ Business Process Management (BPM 2008) full definitions, related work, … 22
Recommend
More recommend