Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Undoing Event-driven Adaptation  of Business ProcessesSébastien Mosser, Gabriel Hermosillo, Anne-Françoise Le Meur,Lionel ...
Big Picture: Adaptation                      SystemT0                               2
Big Picture: Adaptation                      SystemT0        T1                               2
Big Picture: Adaptation                      SystemT0        T1        T2                               2
Big Picture: Adaptation                      SystemT0        T1        T2         T3                                    2
Big Picture: Adaptation                      SystemT0        T1        T2         T3   ...                                ...
Question: How To Unadapt? (e.g., remove   )      ...     Tn-1   Tn                                              3
Question: How To Unadapt? (e.g., remove   )  only if  depends on  depends on      and            ...    Tn-1   Tn         ...
Towards Unadaptation: From «Do» to «Undo»• Goal:  • Produce a system «as it would be if this adaptation had never    happe...
Outline• Context:  • Business Process Adaptation & Complex Event Processing• Contribution: From Adaptation to Automated Un...
Context:  Business Process Adaptation	 	 	 & Complex-event Processing
Business Process                 ActivityLogin                                       Causal          Request              ...
Business Processes AdaptationLogin                  Backup         Request                     Search                     ...
From Event to Complex Event Processing• Event processing:                                                    search_status...
Event-Driven Adaptation of Business Processes       e.g., AspectsSensors                                      e.g., BPEL  ...
Running Example1. «Fail» event detected (search service encounters errors):  ‣ The system uses now a backup server, off-si...
Reminder: Unadaptation Challenges                               #1: Identify the                                    trigge...
Contribution #1:  Identifying the trigger event
Running Example           fail   «system uses backup»       undo                             : search_status ≠ 200        ...
Running Example            fail   «system uses backup»       undo: search_status = 200         : search_status ≠ 200      ...
Running Example            fail   «system uses backup»         undo: search_status = 200           : search_status ≠ 200  ...
Definition: Complex Event ( ε ) & Opposite ( ¬ε )            Trigger event: ε     = ε ; ¬ε                            -1  ...
Contribution #2:  Identify Correlated Adaptations               depends on             depends on                         ...
Idea: «prune the adaptation sequence»• Identify in the adaptation history, for a given event ε:   • The correlated events ...
Running Example               do                                 undoprune( [   , , , ], [ ])              cache        sl...
Running Example                 do                                         undoprune( [   , , , ], [ ])                   ...
Contribution #3:  Yield the system,    «as it would be if this adaptation had never happened»                             ...
Action-based Representation   (e.g., Praxis, Adore)                                      [Blanc et al, ICSE’08]           ...
Action-based Representation       (e.g., Praxis, Adore)                                           [Blanc et al, ICSE’08]  ...
«To adapt» = «To produce actions»     Adaptation function (φ) rational:      «generate the actions needed to adapt»       ...
Process Rewind to Forget Adaptations               -1                        -1     add( X ) → del( X )         del( Y ) →...
Process Rewind to Forget Adaptations              -1                         -1     add( X ) → del( X )         del( Y ) →...
Global Undo Mechanism:S0    S1    S2   S3      S4   S5   S6                                        23
Global Undo Mechanism:S0     S1     (rewind)                S2                         23
Global Undo Mechanism:S0     S1     (rewind)                S2     (prune)    [    ,   ,   ]   FORGET                     ...
Global Undo Mechanism:S0     S1     (rewind)                S2     (prune)    [    ,         ,   ]         FORGET     (rep...
Re-«play» Implies to Re-«adapt»                   S7 = φ ( φ ( φ ( S2 )))S2                                  S7           ...
Demonstration: http://bit.ly/scc11
Events & Adaptation Implementation                                     26
Event-driven Adaptation                          27
Automated Unadaptation                         28
Conclusions & Perspectives
Conclusions• Fact: naive unadaptation may lead to corrupted processes !• Proposal: Automated unadaptation  • Identify the ...
Upcoming Perspectives• From processes to running instances  • Long-living processes will require unadaptation at instance ...
Graphics: sxc.hu & C.lineThank You for Your Attention !Undoing Event-driven Adaptation  of Business ProcessesSébastien Mos...
Upcoming SlideShare
Loading in …5
×

Undoing Event-driven Adaptation of Business Processes

743 views

Published on

Published in: Education, Technology, Business
  • Be the first to comment

Undoing Event-driven Adaptation of Business Processes

  1. 1. Undoing Event-driven Adaptation of Business ProcessesSébastien Mosser, Gabriel Hermosillo, Anne-Françoise Le Meur,Lionel Seinturier, Laurence DuchienINRIA Lille-Nord Europe, University Lille 1, LIFL (UMR CNRS 8022)8th International Conference on Services ComputingWashington DC, July 5th 2011
  2. 2. Big Picture: Adaptation SystemT0 2
  3. 3. Big Picture: Adaptation SystemT0 T1 2
  4. 4. Big Picture: Adaptation SystemT0 T1 T2 2
  5. 5. Big Picture: Adaptation SystemT0 T1 T2 T3 2
  6. 6. Big Picture: Adaptation SystemT0 T1 T2 T3 ... 2
  7. 7. Question: How To Unadapt? (e.g., remove ) ... Tn-1 Tn 3
  8. 8. Question: How To Unadapt? (e.g., remove ) only if depends on depends on and ... Tn-1 Tn System 3
  9. 9. Towards Unadaptation: From «Do» to «Undo»• Goal: • Produce a system «as it would be if this adaptation had never happened»• Challenges: • Identify the «undo» trigger event • Identify correlated adaptations (to be removed too) • Yield the expected system 4
  10. 10. Outline• Context: • Business Process Adaptation & Complex Event Processing• Contribution: From Adaptation to Automated Unadaptation (1) Identifying the trigger event (2) Identify correlated adaptations (3) Yield the system, «as it would be if this adaptation had never happened»• Demonstration• Conclusions & Perspectives 5
  11. 11. Context: Business Process Adaptation & Complex-event Processing
  12. 12. Business Process ActivityLogin Causal Request Relationship Search Display LogoutUsed to express behavior in the Service-oriented Architecture paradigmIndustrial standard: BPEL 7
  13. 13. Business Processes AdaptationLogin Backup Request Search Display Logoutsearch_status ≠ ok ( )Adaptation: «use the backup server» 8
  14. 14. From Event to Complex Event Processing• Event processing: search_status ≠ ok • Boolean formula applied to sensor values• Event compositions: • Logical connectors: conjunction ( ∧ ), disjunction ( ∨ ) = ; • Temporal connectors: sequence («followed by»), time window («within») 9
  15. 15. Event-Driven Adaptation of Business Processes e.g., AspectsSensors e.g., BPEL e.g., ESPER 10
  16. 16. Running Example1. «Fail» event detected (search service encounters errors): ‣ The system uses now a backup server, off-site2. «Slow» event detected (bandwidth drops) ‣ «Cache» event is identified («fail; slow») ‣ A cache is introduced3. «Perf» event detected (CPU overload) ‣ Monitoring is inserted in the system4. Search service is now ok ... What should we do? 11
  17. 17. Reminder: Unadaptation Challenges #1: Identify the trigger event ??? #2: Identify correlated #3: Yield the system adaptations 12
  18. 18. Contribution #1: Identifying the trigger event
  19. 19. Running Example fail «system uses backup» undo : search_status ≠ 200 14
  20. 20. Running Example fail «system uses backup» undo: search_status = 200 : search_status ≠ 200 ¬fail fail ... ... 14
  21. 21. Running Example fail «system uses backup» undo: search_status = 200 : search_status ≠ 200 ¬fail fail ... ... -1 fail = fail ; ¬fail 14
  22. 22. Definition: Complex Event ( ε ) & Opposite ( ¬ε ) Trigger event: ε = ε ; ¬ε -1 15
  23. 23. Contribution #2: Identify Correlated Adaptations depends on depends on and only if
  24. 24. Idea: «prune the adaptation sequence»• Identify in the adaptation history, for a given event ε: • The correlated events (now irrelevant after ε vanishment) • The orthogonal events (still relevant, even after ε vanishment) 17
  25. 25. Running Example do undoprune( [ , , , ], [ ]) cache slow =[ | prune( [ , , ], [ ]) ] = ; fail 18
  26. 26. Running Example do undoprune( [ , , , ], [ ]) cache slow =[ | prune( [ , , ], [ ]) ] = ; fail =[ | prune( [ , ], [ , ]) ] =[ , | prune( [ ], [ , ])] =[ , , | prune([ ], [ , ]) ]Still relevant =[ , , ] Correlated 18
  27. 27. Contribution #3: Yield the system, «as it would be if this adaptation had never happened» Sn-1 Sn
  28. 28. Action-based Representation (e.g., Praxis, Adore) [Blanc et al, ICSE’08] [Mosser et al, TAOSD’11] a1 p = [ add(a1), add(a2), add(a3), add(a1→a2), add(a2→a3) ] a2 a3 p 20
  29. 29. Action-based Representation (e.g., Praxis, Adore) [Blanc et al, ICSE’08] [Mosser et al, TAOSD’11] a1 p = [ add(a1), add(a2), add(a3), add(a1→a2), add(a2→a3) ] a2 a’2 backup server invocation p = [ add(a1), add(a2), add(a3), a3 add(a1→a2), add(a2→a3)] ● [ add(a’2), add(a1→a’2), add(a’2→a3), p del(a1→a2), del(a2→a3), del(a2) ] 20
  30. 30. «To adapt» = «To produce actions» Adaptation function (φ) rational: «generate the actions needed to adapt» p = [ add(a1), add(a2), add(a3), add(a1→a2), add(a2→a3) ]a1 φ(p) = [ add(a’2), add(a1→a’2), add(a’2→a3), del(a1→a2), del(a2→a3), del(a2) ]a2 a’2 Adaptation:a3 (1) compute the adaptation, (2) execute it. 21
  31. 31. Process Rewind to Forget Adaptations -1 -1 add( X ) → del( X ) del( Y ) → add( Y ) p = [ add(a1), add(a2), add(a3), add(a1→a2), add(a2→a3)]a1 ● [ add(a’2), add(a1→a’2), add(a’2→a3),a2 a’2 del(a1→a2), del(a2→a3), del(a2) ]a3 22
  32. 32. Process Rewind to Forget Adaptations -1 -1 add( X ) → del( X ) del( Y ) → add( Y ) p = [ add(a1), add(a2), add(a3), add(a1→a2), add(a2→a3)]a1 ● [ add(a’2), add(a1→a’2), add(a’2→a3),a2 del(a1→a2), del(a2→a3), del(a2) ] ● [ add(a2), add(a2→a3), add(a1→a2),a3 del(a’2→a3), del(a1→a’2), del(a’2) ] 22
  33. 33. Global Undo Mechanism:S0 S1 S2 S3 S4 S5 S6 23
  34. 34. Global Undo Mechanism:S0 S1 (rewind) S2 23
  35. 35. Global Undo Mechanism:S0 S1 (rewind) S2 (prune) [ , , ] FORGET 23
  36. 36. Global Undo Mechanism:S0 S1 (rewind) S2 (prune) [ , , ] FORGET (replay) S7 S’3 S’5 23
  37. 37. Re-«play» Implies to Re-«adapt» S7 = φ ( φ ( φ ( S2 )))S2 S7 May adapt elements introduced by other adaptations Impossible to «simply» replay the preexisting sequence 24
  38. 38. Demonstration: http://bit.ly/scc11
  39. 39. Events & Adaptation Implementation 26
  40. 40. Event-driven Adaptation 27
  41. 41. Automated Unadaptation 28
  42. 42. Conclusions & Perspectives
  43. 43. Conclusions• Fact: naive unadaptation may lead to corrupted processes !• Proposal: Automated unadaptation • Identify the triggering event • Identify the correlated adaptations • Yield the system, «as it would be if this adaptation had never happened»• Generic mechanisms (platform-independent implementation) 30
  44. 44. Upcoming Perspectives• From processes to running instances • Long-living processes will require unadaptation at instance level • Instances must be adapted with care (e.g., execution pointer)• Software Engineering & Software Evolution • From refactoring to un-refactoring • From pattern introduction to pattern removal 31
  45. 45. Graphics: sxc.hu & C.lineThank You for Your Attention !Undoing Event-driven Adaptation of Business ProcessesSébastien Mosser, Gabriel Hermosillo, Anne-Françoise Le Meur,Lionel Seinturier, Laurence Duchien

×