Class 5 Architecture-Based Self-Healing Systems
description
Transcript of Class 5 Architecture-Based Self-Healing Systems
![Page 1: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/1.jpg)
www.cs.cmu.edu/~garlan/17811/
Class 5Architecture-Based
Self-Healing Systems
David GarlanCarnegie Mellon University
![Page 2: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/2.jpg)
Architectures of Self-Healing Systems
Basic Component
I
I’ O’
O M A
M’ A’
What is its signature?
Is this a general-enough model?
What architectural styles can be used to compose such components?
Abstractor?
Refiner?
![Page 3: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/3.jpg)
Four General Requirements for Self-Healing Systems
• Monitor: Observe the running system and abstract observed behavior.
• Detection: Continuously check design constraints via explicit run-time models.
• Resolution: Determine the cause of constraint violation and choose a repair strategy.
• Adaptation: Adapt the system using verified change strategies.
![Page 4: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/4.jpg)
• Monitor:» How can we get information out of a running system?» How can we abstract it to make sense of observations?
• Detection: » What kind of models are useful? What kinds of
constraints? • Resolution:
» What kind of repair engines are useful, efficient, flexible?
• Adaptation: » How can we cause the repairs to happen safely in a
running system» How can we verify repair strategies?
![Page 5: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/5.jpg)
Architecture-based Self-Repair
• Main idea> Use architectural models as basis for problem
detection and repair.
• Variations> Externalized or internalized?
> Style-specific?
> Support multiple control models?
> Enforcement of linkage between architectural model(s) and system?
Executing System
Arch-based
Control Mechanisms
MonitorAffect
![Page 6: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/6.jpg)
Taxonomy?
• Application Domains> Networks, Distributed Systems> Mobile Systems> Ubiquitous Computing> Biology Simulation> User Interfaces> Collaborative Computing> Games
• Tools, Mechanisms, Techniques> Architectural models> Algorithms/code-based> Formal models> Genetic algorithms/alternative models> Agents> Economic theory
• Goals:> Improve system performance/Resource usage> Improve user experience; reduce user distractions> Improve dependability
Arch-based adaptation
Typically, but not necessarily distributed applications
Arch models
Reusable abstractors and refiners
Repair strategies
System quality attributes such as performance, reliability, etc.
![Page 7: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/7.jpg)
Rainbow Perspective
> Work with existing systems, and manage the adaptation of those systems» Allow minimal intrusion into the system
» Use existing mechanisms for change
» Use non-intrusive monitoring techniques
> Use architectural models as basis for self-healing» Externalized model
» High-level perspective
» Tailorable to specific architectural style and properties of interest
![Page 8: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/8.jpg)
Rainbow Approach
• Monitor:» Use system of “probes” to get raw information out» Abstract that information using “gauges”
• Detection: » Compare (abstracted) observed behavior against
desired (as specified in the architecture) • Resolution:
» Specify architecture-based repair policies • Adaptation:
» Rely on system’s own adaptation capabilities, but provide a translator to map from arch-based adaptation to lower-level ones.
![Page 9: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/9.jpg)
Architecture-Driven Adaptation
ConstraintEvaluator
RepairHandler
Interpreter
Architecture Layer
Arch. Model
GenericAPI
MonitoringMechanisms
Executing System
Implementation Layer
Translator
RuntimeManager
![Page 10: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/10.jpg)
Architectural Model
Client1 Client2 Client3 Client4 Client5 Client6
ServerGrp1 ServerGrp2 ServerGrp3
Component ServerGrp1(ServerGrpRep)
Server1 Server2 Server3
![Page 11: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/11.jpg)
Making RepairsA
rchit
ect
ure
Arc
hit
ect
ure
Layer
Layer
Repairer (Tailor)
Repairer (Tailor)
Interpreter Interpreter
Translator Translator
Analyzer (Armani)Analyzer (Armani)
Mathilde User2 User3 User4 User5 User6
ServerGrp1 ServerGrp2 ServerGrp3
4 second latency
Client6.avg_latency = 3.1
True?: avg_latency <= max_latency
False! Find the right tactic
Client6.moveClient (ServerGrp2)
User1 User2 User3 User4 User5 User6
ServerGrp1 ServerGrp2 ServerGrp3
Move impl
![Page 12: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/12.jpg)
Technical Details
• Monitoring mechanisms> Reusable library of ‘gauges’ translate ‘probe’
information into model-based properties» implemented as Java classes
» listen to a probe pub-sub bus
» dynamically modify properties of architectural models
> Example gauges: » performance gauges convert network observations into
connector latencies and throughputs
» protocol gauges detect ordering of events in component interactions
![Page 13: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/13.jpg)
Technical Details (continued)
• Architectural models> Typed components, connectors, compositions define
architectural topology» Acme
> Property annotations convey semantic details» Define expected dynamic behavior» Extensible, like XML
> Each architecture must conform to a ‘style’, which indicates» Allowable types of elements, constraints on
composition» Constraints expressed as first-order predicates over
architectural elements, topology, and properties
![Page 14: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/14.jpg)
Technical Details (continued)
• Modifications to architectural representation needed for dynamic adaptation> Define a set of architecture change operators for that
style» E.g., change a client-server connector, add a server
> For each stylistic constraint associate a repair strategy» May be verified in advance
> For each architectural change operation define a translation to modify the running system» May involve complex set of distributed, coordinated,
low-level actions
![Page 15: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/15.jpg)
Example
• Sample constraint:avg_latency < max_latency
• Sample repair tactic
tactic fixServerLoad (client : ClientT) ={ let lSG : set {ServerGroupT} = select sgrp:ServerGroupT in self.components | connected (sgrp, client) and sgrp.load > maxLoad foreach sGrp in lSG {sGrp.addServer ()}
}
tactic fixServerLoad (client : ClientT) ={ let lSG : set {ServerGroupT} = select sgrp:ServerGroupT in self.components | connected (sgrp, client) and sgrp.load > maxLoad foreach sGrp in lSG {sGrp.addServer ()}
}
![Page 16: Class 5 Architecture-Based Self-Healing Systems](https://reader036.fdocuments.in/reader036/viewer/2022082414/56813b70550346895da47b5b/html5/thumbnails/16.jpg)
Adaptation Model
Comp/Apps Comp/Apps
Services
Rain
bo
w