Rainbow: Architecture-Based Self-Adaptation with Reusable ...

Post on 27-Apr-2022

4 views 0 download

Transcript of Rainbow: Architecture-Based Self-Adaptation with Reusable ...

Lorenz Kellerer

Introduction Problem Field

State of the Art The Paper Rainbow Framework

Case Studies

Implementation & Evaluation Reflection Contribution

Shortcomings Discussion

Introduction Problem Field

State of the Art The Paper Rainbow Framework

Case Studies

Implementation & Evaluation Reflection Contribution

Shortcomings Discussion

Implementation of last paper Framework to add self adaption to software

Even on legacy code

Can be reused on a broad spectrum of applications

Self Adaptation tightly coupled with application

Low rate of reusable code

Many different Platforms

Different mechanism

Different properties of interest

Introduction Problem Field

State of the Art The Paper Rainbow Framework

Case Studies

Implementation & Evaluation Reflection Contribution

Shortcomings Discussion

Based on components & connectors

Stores model of program and checks against constraints

2 main components:

Adaption infrastructure

▪ See next slides

Adaption knowledge

▪ Architecture dependent

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

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

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

Introduction Problem Field

State of the Art The Paper Rainbow Framework

Case Studies

Implementation & Evaluation Reflection Contribution

Shortcomings Discussion

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

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

Translation infrastructure

Maps couldn’t be reused

But enabled reuse on higher levels

System specific adaption knowledge

Not reused

Introduction Problem Field

State of the Art The Paper Rainbow Framework

Case Studies

Implementation & Evaluation Reflection Contribution

Shortcomings Discussion

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

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

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

Introduction Problem Field

State of the Art The Paper Rainbow Framework

Case Studies

Implementation & Evaluation Reflection Contribution

Shortcomings Discussion

Practical Implementation

Framework can be used by everyone

Proof that it works

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

Only two very similar test cases

More different Programs reduce reusability greatly

Performance only tested with one very specific test case

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

Introduction Problem Field

State of the Art The Paper Rainbow Framework

Case Studies

Implementation & Evaluation Reflection Contribution

Shortcomings Discussion

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