rainbow: architecture-based self-adaptation with reusable
TRANSCRIPT
![Page 1: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/1.jpg)
Lorenz Kellerer
![Page 2: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/2.jpg)
Introduction Problem Field
State of the Art The Paper Rainbow Framework
Case Studies
Implementation & Evaluation Reflection Contribution
Shortcomings Discussion
![Page 3: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/3.jpg)
Introduction Problem Field
State of the Art The Paper Rainbow Framework
Case Studies
Implementation & Evaluation Reflection Contribution
Shortcomings Discussion
![Page 4: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/4.jpg)
Implementation of last paper Framework to add self adaption to software
Even on legacy code
Can be reused on a broad spectrum of applications
![Page 5: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/5.jpg)
Self Adaptation tightly coupled with application
Low rate of reusable code
Many different Platforms
Different mechanism
Different properties of interest
![Page 6: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/6.jpg)
Introduction Problem Field
State of the Art The Paper Rainbow Framework
Case Studies
Implementation & Evaluation Reflection Contribution
Shortcomings Discussion
![Page 7: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/7.jpg)
Based on components & connectors
Stores model of program and checks against constraints
2 main components:
Adaption infrastructure
▪ See next slides
Adaption knowledge
▪ Architecture dependent
![Page 8: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/8.jpg)
Architecture independent System
▪ Sends out probes to assess structure of program ▪ Resource discovery ▪ Effectors carry out adaptation
Architecture ▪ Aggregate info from probes ▪ Store in Model ▪ Constraint evaluator checks model ▪ Adaption Engine decides course of action
Translation ▪ Closes gap of abstraction ▪ Map of common properties
![Page 9: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/9.jpg)
![Page 10: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/10.jpg)
Represented by entities
Component & Connectors
Constraints
▪ Guarantee correctness
Properties
▪ E.g. Load-time, RAM-Usage
Analysis
▪ Ways to analyze Program
▪ E.g. Performance analysis of queuing
![Page 11: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/11.jpg)
Special entities Adaption operators
▪ Alter system configuration
▪ E.g. Add/Remove Services
Adaption strategies ▪ Resolve undesirable state
▪ E.g. Over memory budget → remove most expense, non-vital service
Based on system concerns May reduce reusability
![Page 12: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/12.jpg)
Introduction Problem Field
State of the Art The Paper Rainbow Framework
Case Studies
Implementation & Evaluation Reflection Contribution
Shortcomings Discussion
![Page 13: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/13.jpg)
2 Case studies
Web based client/server model
▪ Client queries Server cluster → stored in cluster queue
▪ 2 Adaptations
▪ Add server to cluster → if server load too high
▪ Client changes cluster → if bandwidth too low
Videoconferencing System
▪ Different Protocols communicate via servers
▪ 2 Adaptations
▪ Handheld user changes proxy → if connection bad
▪ Netmeeting client moves to cheaper relay → if only one user left
![Page 14: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/14.jpg)
System layer infrastructure
Effectors: couldn’t be reused, no shared components
Probes: Load & Bandwidth reused
Resource discovery: reused
Architecture layer infrastructure
Gauges: same information needed → reused
Model manager, constraint evaluator & adaption engine reused
![Page 15: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/15.jpg)
Translation infrastructure
Maps couldn’t be reused
But enabled reuse on higher levels
System specific adaption knowledge
Not reused
![Page 16: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/16.jpg)
![Page 17: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/17.jpg)
Introduction Problem Field
State of the Art The Paper Rainbow Framework
Case Studies
Implementation & Evaluation Reflection Contribution
Shortcomings Discussion
![Page 18: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/18.jpg)
System Layer Uses various libraries to implement sensors
Architecture Layer Java Probes aggregate info & update model Translation uses common map
102k LoC 84k Architecture 11k System 4k Translation 1.8k non reusable
![Page 19: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/19.jpg)
Based on Client/Server case study Self repair shows significant improvement
But takes time to react
Best on:
System wide scale
Long-term system behaviour trends
![Page 20: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/20.jpg)
![Page 21: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/21.jpg)
System provides hooks
Very likely with new software
Wrappers for legacy code
Requires good gauges to work
3rd party developers can provide that
Measuring & adaption done centrally
Only one instance of Rainbow running
Future work
![Page 22: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/22.jpg)
Introduction Problem Field
State of the Art The Paper Rainbow Framework
Case Studies
Implementation & Evaluation Reflection Contribution
Shortcomings Discussion
![Page 23: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/23.jpg)
Practical Implementation
Framework can be used by everyone
Proof that it works
![Page 24: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/24.jpg)
Problem Domain:
Self Adaptive Software
Practical Solution:
Framework to be used by developers
Comprehensive evaluation
Only basic evaluation of a single use case
Motivation?
Provide Framework to simplify implementing self adaptation
![Page 25: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/25.jpg)
Only two very similar test cases
More different Programs reduce reusability greatly
Performance only tested with one very specific test case
![Page 26: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/26.jpg)
Pseudo code could have been left out
Whole functionality explained in 3 lines of text
Feels like padding
Good graph quality Question if all claims of reusability are true Interesting field of research
![Page 27: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/27.jpg)
Introduction Problem Field
State of the Art The Paper Rainbow Framework
Case Studies
Implementation & Evaluation Reflection Contribution
Shortcomings Discussion
![Page 28: Rainbow: Architecture-Based Self-Adaptation with Reusable](https://reader033.vdocuments.us/reader033/viewer/2022042804/62685b12a4bf6472ca0c651c/html5/thumbnails/28.jpg)
Java good idea, if overhead should be kept low?
Especially when used in conjunction with a c/c++ application
Sacrifice performance for portability?
Specific solutions for wildly different platforms