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

28
Lorenz Kellerer

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

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

Lorenz Kellerer

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

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 ...

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 ...

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 ...

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 ...

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 ...

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 ...

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 ...
Page 10: Rainbow: Architecture-Based Self-Adaptation with Reusable ...

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 ...

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 ...

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 ...

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 ...

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 ...

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 ...
Page 17: Rainbow: Architecture-Based Self-Adaptation with Reusable ...

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 ...

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 ...

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 ...
Page 21: Rainbow: Architecture-Based Self-Adaptation with Reusable ...

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 ...

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 ...

Practical Implementation

Framework can be used by everyone

Proof that it works

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

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 ...

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 ...

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 ...

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 ...

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