SlideShare une entreprise Scribd logo
1  sur  45
Undoing Event-driven Adaptation
  of Business Processes
Sébastien Mosser, Gabriel Hermosillo, Anne-Françoise Le Meur,
Lionel Seinturier, Laurence Duchien

INRIA Lille-Nord Europe, University Lille 1, LIFL (UMR CNRS 8022)

8th International Conference on Services Computing
Washington DC, July 5th 2011
Big Picture: Adaptation




                      System




T0
                               2
Big Picture: Adaptation




                      System




T0        T1
                               2
Big Picture: Adaptation




                      System




T0        T1        T2
                               2
Big Picture: Adaptation




                      System




T0        T1        T2         T3
                                    2
Big Picture: Adaptation




                      System




T0        T1        T2         T3   ...
                                          2
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          System
                                               3
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
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
Context:
  Business Process Adaptation
	 	 	 & Complex-event Processing
Business Process

                 Activity
Login
                                       Causal
          Request
                                     Relationship
                            Search
                                       Display
                                                    Logout

Used to express behavior in the
  Service-oriented Architecture paradigm
Industrial standard: BPEL
                                                         7
Business Processes Adaptation


Login                  Backup
         Request
                     Search
                                  Display
                                            Logout

search_status ≠ ok            (   )

Adaptation: «use the backup server»
                                                 8
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
Event-Driven Adaptation of Business Processes

       e.g., Aspects



Sensors



                                      e.g., BPEL
                 e.g., ESPER
                                                10
Running Example

1. «Fail» event detected (search service encounters errors):

  ‣ The system uses now a backup server, off-site

2. «Slow» event detected (bandwidth drops)

  ‣ «Cache» event is identified («fail; slow»)

     ‣ A cache is introduced

3. «Perf» event detected (CPU overload)

  ‣ Monitoring is inserted in the system

4. Search service is now ok ... What should we do?


                                                               11
Reminder: Unadaptation Challenges

                               #1: Identify the
                                    trigger event

                                         ???


 #2: Identify correlated     #3: Yield the system
      adaptations
                                                12
Contribution #1:
  Identifying the trigger event
Running Example




           fail   «system uses backup»       undo

                             : search_status ≠ 200




                                                     14
Running Example




            fail   «system uses backup»       undo

: search_status = 200         : search_status ≠ 200

          ¬fail                   fail
           ...                   ...


                                                      14
Running Example




            fail   «system uses backup»         undo

: search_status = 200           : search_status ≠ 200

          ¬fail                    fail
           ...                    ...

                           -1
                        fail = fail ; ¬fail             14
Definition: Complex Event ( ε ) & Opposite ( ¬ε )




            Trigger event: ε     = ε ; ¬ε
                            -1


                                                    15
Contribution #2:
  Identify Correlated Adaptations



               depends on             depends on
                                              and
                            only if
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
Running Example

               do                                 undo




prune( [   , , , ], [ ])              cache        slow

     =[    | prune( [ , , ], [ ]) ]           =      ;
                                                   fail




                                                          18
Running Example

                 do                                         undo




prune( [   , , , ], [ ])                        cache        slow

     =[    | prune( [ , , ], [ ]) ]                     =      ;
                                                             fail
           =[    | prune( [ , ], [ , ]) ]
                =[    , | prune( [ ], [ , ])]
                      =[   , , | prune([ ], [ , ]) ]
Still relevant             =[   , , ]           Correlated          18
Contribution #3:
  Yield the system,
    «as it would be if this adaptation had never happened»




                                       Sn-1     Sn
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
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
«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
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
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
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



                                          23
Global Undo Mechanism:


S0     S1
     (rewind)

                S2

     (prune)    [    ,         ,   ]         FORGET

     (replay)                                         S7
                         S’3           S’5                 23
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
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 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
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
Graphics: sxc.hu & C.line




Thank You for Your Attention !




Undoing Event-driven Adaptation
  of Business Processes


Sébastien Mosser, Gabriel Hermosillo, Anne-Françoise Le Meur,
Lionel Seinturier, Laurence Duchien

Contenu connexe

Tendances

YUI3 Modules
YUI3 ModulesYUI3 Modules
YUI3 Modulesa_pipkin
 
Ejemplo radio
Ejemplo radioEjemplo radio
Ejemplo radiolupe ga
 
Vielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
Vielseitiges In-Memory Computing mit Apache Ignite und KubernetesVielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
Vielseitiges In-Memory Computing mit Apache Ignite und KubernetesQAware GmbH
 
The Ring programming language version 1.5.3 book - Part 78 of 184
The Ring programming language version 1.5.3 book - Part 78 of 184The Ring programming language version 1.5.3 book - Part 78 of 184
The Ring programming language version 1.5.3 book - Part 78 of 184Mahmoud Samir Fayed
 
Conf soat tests_unitaires_Mockito_jUnit_170113
Conf soat tests_unitaires_Mockito_jUnit_170113Conf soat tests_unitaires_Mockito_jUnit_170113
Conf soat tests_unitaires_Mockito_jUnit_170113SOAT
 
知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tipsikeyat
 
The uniform interface is 42
The uniform interface is 42The uniform interface is 42
The uniform interface is 42Yevhen Bobrov
 
Resilence patternsreloaded kr
Resilence patternsreloaded krResilence patternsreloaded kr
Resilence patternsreloaded krJisung Ahn
 

Tendances (9)

YUI3 Modules
YUI3 ModulesYUI3 Modules
YUI3 Modules
 
Ejemplo radio
Ejemplo radioEjemplo radio
Ejemplo radio
 
Vielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
Vielseitiges In-Memory Computing mit Apache Ignite und KubernetesVielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
Vielseitiges In-Memory Computing mit Apache Ignite und Kubernetes
 
The Ring programming language version 1.5.3 book - Part 78 of 184
The Ring programming language version 1.5.3 book - Part 78 of 184The Ring programming language version 1.5.3 book - Part 78 of 184
The Ring programming language version 1.5.3 book - Part 78 of 184
 
Conf soat tests_unitaires_Mockito_jUnit_170113
Conf soat tests_unitaires_Mockito_jUnit_170113Conf soat tests_unitaires_Mockito_jUnit_170113
Conf soat tests_unitaires_Mockito_jUnit_170113
 
知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips
 
The uniform interface is 42
The uniform interface is 42The uniform interface is 42
The uniform interface is 42
 
Resilence patternsreloaded kr
Resilence patternsreloaded krResilence patternsreloaded kr
Resilence patternsreloaded kr
 
Guice2.0
Guice2.0Guice2.0
Guice2.0
 

Similaire à Undoing Event-driven Adaptation of Business Processes

Frege - consequently functional programming for the JVM
Frege - consequently functional programming for the JVMFrege - consequently functional programming for the JVM
Frege - consequently functional programming for the JVMDierk König
 
ZIO: Powerful and Principled Functional Programming in Scala
ZIO: Powerful and Principled Functional Programming in ScalaZIO: Powerful and Principled Functional Programming in Scala
ZIO: Powerful and Principled Functional Programming in ScalaWiem Zine Elabidine
 
Model-based GUI testing using UPPAAL
Model-based GUI testing using UPPAALModel-based GUI testing using UPPAAL
Model-based GUI testing using UPPAALUlrik Hørlyk Hjort
 
Finding Bugs, Fixing Bugs, Preventing Bugs - Exploiting Automated Tests to In...
Finding Bugs, Fixing Bugs, Preventing Bugs - Exploiting Automated Tests to In...Finding Bugs, Fixing Bugs, Preventing Bugs - Exploiting Automated Tests to In...
Finding Bugs, Fixing Bugs, Preventing Bugs - Exploiting Automated Tests to In...University of Antwerp
 
TAROT2013 Testing School - Leonardo Mariani presentation
TAROT2013 Testing School - Leonardo Mariani presentationTAROT2013 Testing School - Leonardo Mariani presentation
TAROT2013 Testing School - Leonardo Mariani presentationHenry Muccini
 
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard WorldMonitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard WorldBrian Troutwine
 
Making Exceptions on Exception Handling (WEH 2012 Keynote Speech)
Making Exceptions on  Exception Handling (WEH 2012 Keynote Speech)Making Exceptions on  Exception Handling (WEH 2012 Keynote Speech)
Making Exceptions on Exception Handling (WEH 2012 Keynote Speech)Tao Xie
 
Business processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss wayBusiness processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss wayKris Verlaenen
 
MongoDB World 2019: Life In Stitch-es
MongoDB World 2019: Life In Stitch-esMongoDB World 2019: Life In Stitch-es
MongoDB World 2019: Life In Stitch-esMongoDB
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......hugo lu
 
Using Formal Methods to Create Instruction Set Architectures
Using Formal Methods to Create Instruction Set ArchitecturesUsing Formal Methods to Create Instruction Set Architectures
Using Formal Methods to Create Instruction Set ArchitecturesDVClub
 
The Ring programming language version 1.10 book - Part 94 of 212
The Ring programming language version 1.10 book - Part 94 of 212The Ring programming language version 1.10 book - Part 94 of 212
The Ring programming language version 1.10 book - Part 94 of 212Mahmoud Samir Fayed
 
Cloud Orchestration with RightScale Cloud Workflow
Cloud Orchestration with RightScale Cloud WorkflowCloud Orchestration with RightScale Cloud Workflow
Cloud Orchestration with RightScale Cloud WorkflowRightScale
 
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"Fwdays
 
The SAM Pattern: State Machines and Computation
The SAM Pattern: State Machines and ComputationThe SAM Pattern: State Machines and Computation
The SAM Pattern: State Machines and ComputationJean-Jacques Dubray
 
Visual diagnostics at scale
Visual diagnostics at scaleVisual diagnostics at scale
Visual diagnostics at scaleRebecca Bilbro
 
Cloud Computing for Business - The Road to IT-as-a-Service
Cloud Computing for Business - The Road to IT-as-a-ServiceCloud Computing for Business - The Road to IT-as-a-Service
Cloud Computing for Business - The Road to IT-as-a-ServiceJames Urquhart
 

Similaire à Undoing Event-driven Adaptation of Business Processes (20)

Complex Event Processing
Complex Event ProcessingComplex Event Processing
Complex Event Processing
 
Frege - consequently functional programming for the JVM
Frege - consequently functional programming for the JVMFrege - consequently functional programming for the JVM
Frege - consequently functional programming for the JVM
 
ZIO: Powerful and Principled Functional Programming in Scala
ZIO: Powerful and Principled Functional Programming in ScalaZIO: Powerful and Principled Functional Programming in Scala
ZIO: Powerful and Principled Functional Programming in Scala
 
Model-based GUI testing using UPPAAL
Model-based GUI testing using UPPAALModel-based GUI testing using UPPAAL
Model-based GUI testing using UPPAAL
 
Finding Bugs, Fixing Bugs, Preventing Bugs - Exploiting Automated Tests to In...
Finding Bugs, Fixing Bugs, Preventing Bugs - Exploiting Automated Tests to In...Finding Bugs, Fixing Bugs, Preventing Bugs - Exploiting Automated Tests to In...
Finding Bugs, Fixing Bugs, Preventing Bugs - Exploiting Automated Tests to In...
 
TAROT2013 Testing School - Leonardo Mariani presentation
TAROT2013 Testing School - Leonardo Mariani presentationTAROT2013 Testing School - Leonardo Mariani presentation
TAROT2013 Testing School - Leonardo Mariani presentation
 
Performance tests - it's a trap
Performance tests - it's a trapPerformance tests - it's a trap
Performance tests - it's a trap
 
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard WorldMonitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
 
Making Exceptions on Exception Handling (WEH 2012 Keynote Speech)
Making Exceptions on  Exception Handling (WEH 2012 Keynote Speech)Making Exceptions on  Exception Handling (WEH 2012 Keynote Speech)
Making Exceptions on Exception Handling (WEH 2012 Keynote Speech)
 
Business processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss wayBusiness processes, business rules, complex event processing, the JBoss way
Business processes, business rules, complex event processing, the JBoss way
 
MongoDB World 2019: Life In Stitch-es
MongoDB World 2019: Life In Stitch-esMongoDB World 2019: Life In Stitch-es
MongoDB World 2019: Life In Stitch-es
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......
 
Using Formal Methods to Create Instruction Set Architectures
Using Formal Methods to Create Instruction Set ArchitecturesUsing Formal Methods to Create Instruction Set Architectures
Using Formal Methods to Create Instruction Set Architectures
 
The Ring programming language version 1.10 book - Part 94 of 212
The Ring programming language version 1.10 book - Part 94 of 212The Ring programming language version 1.10 book - Part 94 of 212
The Ring programming language version 1.10 book - Part 94 of 212
 
Cloud Orchestration with RightScale Cloud Workflow
Cloud Orchestration with RightScale Cloud WorkflowCloud Orchestration with RightScale Cloud Workflow
Cloud Orchestration with RightScale Cloud Workflow
 
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
Andrii Dembitskyi "Events in our applications Event bus and distributed systems"
 
Health Monitoring
Health MonitoringHealth Monitoring
Health Monitoring
 
The SAM Pattern: State Machines and Computation
The SAM Pattern: State Machines and ComputationThe SAM Pattern: State Machines and Computation
The SAM Pattern: State Machines and Computation
 
Visual diagnostics at scale
Visual diagnostics at scaleVisual diagnostics at scale
Visual diagnostics at scale
 
Cloud Computing for Business - The Road to IT-as-a-Service
Cloud Computing for Business - The Road to IT-as-a-ServiceCloud Computing for Business - The Road to IT-as-a-Service
Cloud Computing for Business - The Road to IT-as-a-Service
 

Plus de Sébastien Mosser

A commutative model composition operator to support software adaptation
A commutative model composition operator to support software adaptationA commutative model composition operator to support software adaptation
A commutative model composition operator to support software adaptationSébastien Mosser
 
Towards CloudML, a Model-Based Approach to Provision Resources in the Clouds
Towards CloudML, a Model-Based Approach  to Provision Resources in the CloudsTowards CloudML, a Model-Based Approach  to Provision Resources in the Clouds
Towards CloudML, a Model-Based Approach to Provision Resources in the CloudsSébastien Mosser
 
Tools For Software Engineering
Tools For Software EngineeringTools For Software Engineering
Tools For Software EngineeringSébastien Mosser
 
Using Domain Feature to handle Feature Interactions
Using Domain Feature to handle Feature InteractionsUsing Domain Feature to handle Feature Interactions
Using Domain Feature to handle Feature InteractionsSébastien Mosser
 
Cloud Computing: From Revolution to Evolution
Cloud Computing: From Revolution to EvolutionCloud Computing: From Revolution to Evolution
Cloud Computing: From Revolution to EvolutionSébastien Mosser
 
Introducing Security Access Control Policies into Legacy Business Processes
Introducing Security Access Control Policies into Legacy Business ProcessesIntroducing Security Access Control Policies into Legacy Business Processes
Introducing Security Access Control Policies into Legacy Business ProcessesSébastien Mosser
 
Talk Session COSMAL du GDR GPL 2011
Talk Session COSMAL du GDR GPL 2011Talk Session COSMAL du GDR GPL 2011
Talk Session COSMAL du GDR GPL 2011Sébastien Mosser
 
Behavioral Compositions in Service-Oriented Architecture
Behavioral Compositions in Service-Oriented ArchitectureBehavioral Compositions in Service-Oriented Architecture
Behavioral Compositions in Service-Oriented ArchitectureSébastien Mosser
 
jSeduite "Quickies" au Riviera JUG
jSeduite "Quickies" au Riviera JUGjSeduite "Quickies" au Riviera JUG
jSeduite "Quickies" au Riviera JUGSébastien Mosser
 
Taming Orchestration Design Using ADORE
Taming Orchestration Design Using ADORETaming Orchestration Design Using ADORE
Taming Orchestration Design Using ADORESébastien Mosser
 
Adore Demonstration (AOSD'10)
Adore Demonstration (AOSD'10)Adore Demonstration (AOSD'10)
Adore Demonstration (AOSD'10)Sébastien Mosser
 

Plus de Sébastien Mosser (18)

A commutative model composition operator to support software adaptation
A commutative model composition operator to support software adaptationA commutative model composition operator to support software adaptation
A commutative model composition operator to support software adaptation
 
Towards CloudML, a Model-Based Approach to Provision Resources in the Clouds
Towards CloudML, a Model-Based Approach  to Provision Resources in the CloudsTowards CloudML, a Model-Based Approach  to Provision Resources in the Clouds
Towards CloudML, a Model-Based Approach to Provision Resources in the Clouds
 
Tools For Software Engineering
Tools For Software EngineeringTools For Software Engineering
Tools For Software Engineering
 
La Thèse ...
La Thèse ...La Thèse ...
La Thèse ...
 
Using Domain Feature to handle Feature Interactions
Using Domain Feature to handle Feature InteractionsUsing Domain Feature to handle Feature Interactions
Using Domain Feature to handle Feature Interactions
 
Cloud Computing: From Revolution to Evolution
Cloud Computing: From Revolution to EvolutionCloud Computing: From Revolution to Evolution
Cloud Computing: From Revolution to Evolution
 
Introducing Security Access Control Policies into Legacy Business Processes
Introducing Security Access Control Policies into Legacy Business ProcessesIntroducing Security Access Control Policies into Legacy Business Processes
Introducing Security Access Control Policies into Legacy Business Processes
 
Talk Session COSMAL du GDR GPL 2011
Talk Session COSMAL du GDR GPL 2011Talk Session COSMAL du GDR GPL 2011
Talk Session COSMAL du GDR GPL 2011
 
Behavioral Compositions in Service-Oriented Architecture
Behavioral Compositions in Service-Oriented ArchitectureBehavioral Compositions in Service-Oriented Architecture
Behavioral Compositions in Service-Oriented Architecture
 
ADAM Seminary
ADAM SeminaryADAM Seminary
ADAM Seminary
 
Software Composition 2010
Software Composition 2010Software Composition 2010
Software Composition 2010
 
jSeduite "Quickies" au Riviera JUG
jSeduite "Quickies" au Riviera JUGjSeduite "Quickies" au Riviera JUG
jSeduite "Quickies" au Riviera JUG
 
jSeduite @UNICE Foundation
jSeduite @UNICE FoundationjSeduite @UNICE Foundation
jSeduite @UNICE Foundation
 
Taming Orchestration Design Using ADORE
Taming Orchestration Design Using ADORETaming Orchestration Design Using ADORE
Taming Orchestration Design Using ADORE
 
Adore Demonstration (AOSD'10)
Adore Demonstration (AOSD'10)Adore Demonstration (AOSD'10)
Adore Demonstration (AOSD'10)
 
Builsing DSL using MDE
Builsing DSL using MDEBuilsing DSL using MDE
Builsing DSL using MDE
 
Entrepôt'Lytech JM2L
Entrepôt'Lytech JM2LEntrepôt'Lytech JM2L
Entrepôt'Lytech JM2L
 
Le Framework jSeduite
Le Framework jSeduiteLe Framework jSeduite
Le Framework jSeduite
 

Dernier

mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersChitralekhaTherkar
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 

Dernier (20)

mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of Powders
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 

Undoing Event-driven Adaptation of Business Processes

  • 1. Undoing Event-driven Adaptation of Business Processes Sébastien Mosser, Gabriel Hermosillo, Anne-Françoise Le Meur, Lionel Seinturier, Laurence Duchien INRIA Lille-Nord Europe, University Lille 1, LIFL (UMR CNRS 8022) 8th International Conference on Services Computing Washington DC, July 5th 2011
  • 3. Big Picture: Adaptation System T0 T1 2
  • 4. Big Picture: Adaptation System T0 T1 T2 2
  • 5. Big Picture: Adaptation System T0 T1 T2 T3 2
  • 6. Big Picture: Adaptation System T0 T1 T2 T3 ... 2
  • 7. Question: How To Unadapt? (e.g., remove ) ... Tn-1 Tn 3
  • 8. Question: How To Unadapt? (e.g., remove ) only if depends on depends on and ... Tn-1 Tn System 3
  • 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. 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. Context: Business Process Adaptation & Complex-event Processing
  • 12. Business Process Activity Login Causal Request Relationship Search Display Logout Used to express behavior in the Service-oriented Architecture paradigm Industrial standard: BPEL 7
  • 13. Business Processes Adaptation Login Backup Request Search Display Logout search_status ≠ ok ( ) Adaptation: «use the backup server» 8
  • 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. Event-Driven Adaptation of Business Processes e.g., Aspects Sensors e.g., BPEL e.g., ESPER 10
  • 16. Running Example 1. «Fail» event detected (search service encounters errors): ‣ The system uses now a backup server, off-site 2. «Slow» event detected (bandwidth drops) ‣ «Cache» event is identified («fail; slow») ‣ A cache is introduced 3. «Perf» event detected (CPU overload) ‣ Monitoring is inserted in the system 4. Search service is now ok ... What should we do? 11
  • 17. Reminder: Unadaptation Challenges #1: Identify the trigger event ??? #2: Identify correlated #3: Yield the system adaptations 12
  • 18. Contribution #1: Identifying the trigger event
  • 19. Running Example fail «system uses backup» undo : search_status ≠ 200 14
  • 20. Running Example fail «system uses backup» undo : search_status = 200 : search_status ≠ 200 ¬fail fail ... ... 14
  • 21. Running Example fail «system uses backup» undo : search_status = 200 : search_status ≠ 200 ¬fail fail ... ... -1 fail = fail ; ¬fail 14
  • 22. Definition: Complex Event ( ε ) & Opposite ( ¬ε ) Trigger event: ε = ε ; ¬ε -1 15
  • 23. Contribution #2: Identify Correlated Adaptations depends on depends on and only if
  • 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. Running Example do undo prune( [ , , , ], [ ]) cache slow =[ | prune( [ , , ], [ ]) ] = ; fail 18
  • 26. Running Example do undo prune( [ , , , ], [ ]) cache slow =[ | prune( [ , , ], [ ]) ] = ; fail =[ | prune( [ , ], [ , ]) ] =[ , | prune( [ ], [ , ])] =[ , , | prune([ ], [ , ]) ] Still relevant =[ , , ] Correlated 18
  • 27. Contribution #3: Yield the system, «as it would be if this adaptation had never happened» Sn-1 Sn
  • 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. 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. «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. 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. 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. Global Undo Mechanism: S0 S1 S2 S3 S4 S5 S6 23
  • 34. Global Undo Mechanism: S0 S1 (rewind) S2 23
  • 35. Global Undo Mechanism: S0 S1 (rewind) S2 (prune) [ , , ] FORGET 23
  • 36. Global Undo Mechanism: S0 S1 (rewind) S2 (prune) [ , , ] FORGET (replay) S7 S’3 S’5 23
  • 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
  • 39. Events & Adaptation Implementation 26
  • 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. 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. Graphics: sxc.hu & C.line Thank You for Your Attention ! Undoing Event-driven Adaptation of Business Processes Sébastien Mosser, Gabriel Hermosillo, Anne-Françoise Le Meur, Lionel Seinturier, Laurence Duchien

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. \n
  161. \n
  162. \n
  163. \n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. \n
  177. \n
  178. \n