Efficient Utility-Driven Self-Healing Employing Adaptation Rules for Large Dynamic Architectures Sona Ghahremani & Holger Giese, Thomas Vogel Hasso Plattner Institute, Potsdam, Germany sona.ghahremani@hpi.de
Overview ■ Direction □ Focusing on self-healing among all the self-* properties □ Targeting architectural self-healing □ Linking adaptation rules to utility □ Defining architectural utility for dynamic architectures ■ Implementation □ MAPE-K Feedback loop maintains a runtime model representing the architecture of the system under adaptation □ Employing MDE techniques such as model transformation ■ Evaluation □ mRUBiS as case study: an online marketplace modeled after eBay [RUBiS] 2
Motivation: Linking Adaptation Rules to Utility highest utility ■ Sequence of repair steps -> failure free solution space ■ Final configuration with highest utility A B ■ Optimal order of repairs -> highest Reward C Repair Steps Utility B C max utility A Time t i 3
Motivation: Combining Two Ends of the Spectrum + Optimization Rule -based (C) -based (A) Utility Optimal order B C ✘ ✔ ✔ max utility of repairs A Scalable ✘ ✔ ✔ Maximum ✘ ✔ ✔ Utility Time t i Expressiveness + + / − − 4
Assumptions ■ A1: Considering only repair rules that are triggered by failures in contrast to optimization rules ■ A2 : The repair rules are effective in healing the failures and therefore executing them achieves the intended improvement of the utility ■ A3: Rules are independent of each other with respect to their applicability and their impacts on the overall utility 5
Defining Pattern-based Utility Zbay: Zbay: s1:Shop s2:Shop Architecture Architecture shop utility := U 1 () + U 1 () +... utility := U 1 ()+ U 1 () + ... :Shop shop s2:Shop :Shop utility:= utility – reputationS1 authenticationS1 reputationS2 authenticationS2 newShop:Shop U - (Component) :Component :Component :Component :Component utility:= utility + authenticationS2 state = STARTED state = STARTED state = STARTED state = STARTED U + (Component) criticality = 2 criticality = 5 criticality = 3 criticality = 7 :Component component component :Component :Component [state=STARTED] providedInterface Criticality = 5 component :ProvidedInterface [self.state=STARTED] [state=STARTED] :Component Criticality = 1 self.exceptions-> size() =5 criticality [self.state=STARTED] Positive Architectural Negative Architectural Utility Pattern providedInterface criticality Utility Pattern :ProvidedInterface [self.exceptions->size() U +/- (component)= component.criticality >=5] X component.type.reliability 6 X component.connectivity
Monitor Monitor Analyze Plan Execute No new negative pattern is detected Monitor the RTM Detected new occurring pattern P i Mark all the P i s Mark all the rules in the RTM that resolve the marked patterns Select best rule for each pattern Order the selected rules Execute the rules in the given 7 order
Analyze Monitor Analyze Plan Execute No new negative pattern is Monitor the RTM detected Detected new occurring pattern P i Mark all the P i s Mark all the rules in the RTM that resolve the marked patterns Select best rule for each pattern Execute the rules Order the in the given 8 selected rules order
Analyzing the Patterns A B shop Zbay: :Shop s1:Shop s2:Shop Architecture utility:= utility – utility := U 1 () + U 1 () +... utility := U 1 ()+ U 1 () + ... U - (Component) reputationS1 authenticationS1 reputationS2 authenticationS2 component :Component :Component :Component :Component :Component [self.state=STARTED] state = STARTED state = STARTED state = STARTED state = STARTED criticality = 2 criticality = 5 criticality = 3 criticality = 7 criticality piAS2 piRS1 piRS2 :ProvidedInterface :ProvidedInterface providedInterface :ProvidedInterface :ProvidedInterface self.exceptions->size()=2 self.exceptions->size()=5 self.exceptions->size()=7 [self.failures->size()>=5] CF2 A CF2 B 9
Plan Monitor Analyze Plan Execute No new negative pattern Monitor the RTM is detected Detected new occurring pattern P i Mark all the P i s in the RTM Mark all the rules that resolve the marked patterns Select best rule for each pattern Order the Execute the rules selected rules in the given 10 order
Two Step Planning CF2 A CF2 B Rule 1 Rule k Rule 1 Rule k … … Costs = C A1 () Costs = C Bk () Costs = C B1 () Costs = C Ak () UtilityIncrease = U B1 () UtilityIncrease = U Bk () UtilityIncrease = U A1 () UtilityIncrease = U Ak () 1. Select the rule which has the max UtilityIncrease Select the rule which has the max UtilityIncrease 2. Order the selected Rules U Amax () U Bmax () > … > 11 C A () C B ()
Execute Monitor Analyze Plan Execute No new pattern is detected Monitor the RTM Detected new occurring pattern P i Mark all the P i s in the RTM Mark all the rules that resolve the marked patterns Select the best rule for each pattern Order the Execute the selected rules rules in the 12 given order
Executing the Rules Zbay: s1:Shop s2:Shop Architecture Restart component affected by CF2 utility := U 1 () + U 1 () +... utility := U 1 ()+ U 1 () + ... affectedComponent restartComponent component :RestartComponent cf2:CF2 handles :Component reputationS1 authenticationS1 reputationS2 authenticationS2 :Component :Component :Component :Component DEPLOYED Start component Stop component state = STARTED STARTED state = STARTED state = STARTED state = STARTED criticality = 2 criticality = 5 criticality = 3 criticality = 7 component component :Component :Component providedInterface providedInterface providedInterface state := STARTED state := DEPLOYED :ProvidedInterface :ProvidedInterface :ProvidedInterface [self.failures-> Remove failures [self.failures-> self.exceptions->size()=5 0 size()==0] size()==2] providedInterfaces failures <<destroy>> component providedInterface failures :Component :ProvidedInterface :Failures 13 Remove annotations
What do We Evaluate? Plan Monitor Monitor Analyze Analyze Plan Execute Execute Variants: No new No new negative pattern negative pattern is detected Monitor the RTM Monitor the RTM is detected ■ Rule-based Approach: A static rule-based Detected new Detected new occurring pattern approach employing static priorities and occurring pattern P i P i assignments without any utility function Mark all the P i s Mark all the P i s Mark all the rules in the RTM Mark all the rules in the RTM that resolve the that resolve the Optimization-based Approach: IBM ILOG ■ marked patterns marked patterns CPLEX constraint solver optimizing an objective function at runtime [IBM ILoG] Select best rule Select best rule for each pattern Utility-driven Approach (our approach): for each pattern ■ computing the impact of different adaptation rules at runtime using a utility Order the Order the Execute the rules Execute the rules function selected rules selected rules in the given in the given 14 order order
Scalability of the Approaches 1 Failure 10 Failure 100 Failure 1000 Failure Number of Components Rule- U- Opt.- Rule- U- Opt.- Rule- U- Opt.- Rule- U- Opt.- based driven based based driven based based driven based based driven based 18 0.76 0.89 5.02 10.37 14.36 56.68 NA NA NA NA NA NA 180 0.68 0.89 5.01 9.71 13.58 59.07 14.22 17.70 219.54 NA NA NA 1800 0.61 0.74 4.83 10.60 13.47 58.24 13.82 26.65 211.09 54.50 60.09 3216.60 18000 0.65 0.71 4.90 10.14 13.87 71.93 21.80 26.38 271.51 127.80 171.31 3611.95 (ms) Optimization Rule U-driven -based -based Optimal order ? ✔ ✘ of changes ✔ ✘ ✔ Scalable Maximum 15 ? ✔ ✘ Utility
Lost Reward Due to Overhead Utility Restart HW Redeployment 16975 Loss of 16960 Optimization Rule U-driven Optimization -based -based -based Optimal order ✘ ✔ ✔ of repairs U-driven Restart Optimization-based ✘ Scalable ✔ ✔ 16945 Maximum ? ✘ ✔ 16940 Utility 0 50 100 150 200 250 Time (ms) 16
Lost Reward Due to Non-optimal Selection of Repair Steps [Wrong Ordering of Changes] Restart Utility Restart 16975 Restart 16960 LW-Redeployment HW-Redeployment Optimization Rule U-driven Loss of Rule-based -based -based Loss of U-driven Optimal order ✘ ✔ ✔ of repairs U-driven Replace ✘ Rule-based Scalable ✔ ✔ Maximum 16931 ✔ ✘ ✔ Utility 16928 0 50 100 150 200 Time (ms) 17
Conclusion and Future Work ■ Conclusion: Optimization Rule U-driven -based -based □ Defined utility functions for dynamic architectures and linking them to the adaptation rules Optimal order of ✘ ✔ ✔ repairs □ Proposed a novel approach to improve the self-healing ✔ ✔ Scalable ✘ reward while reducing the computation efforts for planning self-adaptation Maximum Utility ✔ ✘ ✔ □ Achieved optimal adaptation decisions online within a + + / − Expressiveness − reasonable time ■ Future work: □ Weakening some of the assumptions made such as including conflicts among issues and rules □ Support more complex class of utility functions such as non- linear utility functions 18
END
Recommend
More recommend