29
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

Embed Size (px)

Citation preview

Page 1: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

Composing Adaptive Software

AuthorsPhilip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten,

Betty H.C. Cheng

Presented by Ana RodriguezJune 21, 2006

Page 2: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 2

Overview

IntroductionEnabling TechnologiesCompositional Adaptation TaxonomyKey ChallengesConclusion

Page 3: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 3

Introduction

Software adaptation – software that can adapt dynamically to changes in its environment and non-functional requirements.

Increased interest in adaptive systems due to the following: Ubiquitous Computing – dissolving traditional

boundaries for how, when, and where humans and computers interact

Growing demand for autonomic computing

Page 4: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 4

Introduction

Two approaches for implementing dynamic adaptation in software: Parameter Adaptation – modifies program

variables that determine behavior Limitation: Cannot adopt new strategies

Compositional Adaptation – allows software to modify its structure and behavior dynamically in response to changes in its executing environment

Enables dynamic recomposition of software during execution

Page 5: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 5

Enabling Technologies

Main Supporting Technologies: Separation of concerns, computational reflection, component-based design

Page 6: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 6

Separation of Concerns

Business LogicCrosscutting Concerns

QoS, energy consumption, fault tolerance, security

Most widely used approach is Aspect-Oriented Programming (AOP)Provides abstraction techniques, language

constructsDisentangles crosscutting concerns

Page 7: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 7

Separation of Concerns

Development Time Pointcuts are identified

Compile Time Weave different aspects

of the program together

Run Time Program with new

behavior

Page 8: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 8

Computational Reflection

A program’s ability to reason about, and possibly alter, its own behavior

Comprised of two activities: Introspection – observe its own behavior Intercession – act on these observations

and modify its own behavior

Page 9: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 9

Computational Reflection

Metaobject Protocol (MOP) – introspectation and intercession base-level objects Structural Reflection – class hierarchy, object interconnection, and data types Behavioral Reflection – computational semantics

Page 10: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 10

Component-based Design

Software Components – software units that third parties can independently develop, deploy, and compose

Two types of composition: Static Composition – combine several

components at compile timeDynamic Composition – add, remove,

reconfigure components at runtimePromotes software reuse

Page 11: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 11

Component-based Design

Page 12: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 12

Middleware

Middleware – layers of services separating applications from operating systems and network protocols

Page 13: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 13

Middleware

Host-infrastructure Middleware High-level API

Distribution Middleware High-level programming abstraction

Common Middleware Services Fault tolerance, security, persistence

Domain-specific Middleware Services Matches class of applications

Schmidt’s Middleware Layers

Page 14: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 14

Middleware and Adaptation

Based on an object-oriented programming paradigm Many approaches work by intercepting and modifying messages

CORBA call sequence

Page 15: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 15

Compositional Adaptation Taxonomy

How to ComposeWhen to ComposeWhere to Compose

Page 16: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 16

How to Compose

Page 17: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 17

How to Compose

Composer - entity that uses techniques from Table 2 to adapt an application

Who can be the composer?HumanPiece of software

Transparency – refers to whether an application or system is aware of the “infrastructure” needed for recomposition

Page 18: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 18

When to Compose

At development, compile, or load time (Static Composition)Pros: Easier to ensure no anomalous

behaviorCons: Limited Dynamism

At runtime (Dynamic Composition)Pros: Very powerfulCons: Difficult to use traditional testing and

formal verification techniques

Page 19: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 19

When to Compose

Use of composition time as the classification metric for adaptive applications

Page 20: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 20

Where to Compose

Middleware Layers Host-infrastructure layer

Adaptable communication services e.g. ACE

Virtual Machine e.g. JVM, CLR

Distribution, Common Services, Domain-specific Services

Portability across virtual machines Pros: Support Transparent Adaptation Cons: Transparent Adaptation is middleware

platform dependent

Page 21: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 21

Where to Compose

Application CodeProgram code using language that directly

supports dynamic recompositione.g. CLOS, Python

Weave adaptive code into functional codee.g. AspectJ, Composition Filters

Page 22: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 22

Key Challenges

Assurance Certify all components for correctness with respect to their

specifications Ensure system still executes in an safe manner during the

adaptation process Security

Ensure integrity of data and conceal adaptive actions Interoperability

Coordinate adaptation across system layers and platforms Decision Making

Decide how, when, and where to adapt the system

Page 23: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 23

Conclusion

Compositional adaptation is powerfulLack of supporting development

environmentsWithout tools to automatically generate

and verify code it would impact system integrity and security

Page 24: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 24

References

Philip K. McKinley, S. M. Sadjadi, Eric P. Kasten, and Betty H. C. Cheng. Composing adaptive software. IEEE Computer, pages 56-64, July 2004.

Philip K. McKinley, S. Masoud Sadjadi, Eric P. Kasten, and Betty H. C. Cheng. A taxonomy of compositional adaptation. Technical Report MSU-CSE-04-17, Department of Computer Science, Michigan State University, East Lansing, Michigan, May 2004.

Page 25: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 25

Question 1

How is inserting the code for new behavior different from adding a plugin?

Page 26: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 26

Question 2

In order to achieve the separation of concerns, how do you decide which requirements are functional or non functional?

Page 27: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 27

Question 3

When third party component is used to recompose (and re-compile) a piece of software, is that any different from creating a new piece of software with reusable components?

Page 28: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 28

Question 4

The paper states that "reflection enables a system to reveal selected details of its implementation without compromising portability", can you explain?

Page 29: Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006 Composing Adaptive Software 29

Question 5

Doesn't decision making in adaptive software have to be “hardwired” into the system at some point? If so, how can the software be said to be dynamic?