21
SelfCon Foil no 1 Variability in Self- Adaptive Systems

SelfCon Foil no 1 Variability in Self-Adaptive Systems

Embed Size (px)

Citation preview

Page 1: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 1

Variability in Self-Adaptive Systems

Page 2: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 2

Variability: the heart and soul of Adaptation

•What may be variable?

•How to specify variability?

•When to adapt?

•How to adapt (=bind variability)?

•What may be variable?

•How to specify variability?

•When to adapt?

•How to adapt (=bind variability)?

Page 3: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 3

Variability - when

• Variability - need to be planned at design time – may be bound at:

•Design time

•Production time (compile and load)

• Initialization time

•Run time

• Self-configuring: variability + initialization mechanisms

• Self-adaptive: variability + initialization + run time mechanisms (responding to changes)

• Dynamic component systems: dynamic life cycle support for components that self-configure and self-adapt:

• install, configure, start, run and adapt, stop, uninstall.

• Variability - need to be planned at design time – may be bound at:

•Design time

•Production time (compile and load)

• Initialization time

•Run time

• Self-configuring: variability + initialization mechanisms

• Self-adaptive: variability + initialization + run time mechanisms (responding to changes)

• Dynamic component systems: dynamic life cycle support for components that self-configure and self-adapt:

• install, configure, start, run and adapt, stop, uninstall.

Page 4: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 4

Case 1: call handling

• Key principle: components, dynamic linking and standard interfaces

• Vast variability in call structures, networks, devices, protocols, services: anticipated, but not enumerated

• Adaptation to the requirements and context of each call

• Mobile systems also adapt to moving users: this imply registries and dynamic routing

• The global network is a dynamic component system! Each node normally not.

• Key principle: components, dynamic linking and standard interfaces

• Vast variability in call structures, networks, devices, protocols, services: anticipated, but not enumerated

• Adaptation to the requirements and context of each call

• Mobile systems also adapt to moving users: this imply registries and dynamic routing

• The global network is a dynamic component system! Each node normally not.

Page 5: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 5

Dynamic linking for compositional adaptation

Advantages:

• Enables huge variability in component and role combinations: k+l+m components/roles gives k*l*m combinations

• Is relatively simple

• Can be performed as integral part of services

Challenges:

• Roles are not independent and cannot be arbitrarily combined!

• More run-time combinations may occur than explicitly analyzed at design time!

• Ensuring interoperability while allowing flexibility: interfaces.

Advantages:

• Enables huge variability in component and role combinations: k+l+m components/roles gives k*l*m combinations

• Is relatively simple

• Can be performed as integral part of services

Challenges:

• Roles are not independent and cannot be arbitrarily combined!

• More run-time combinations may occur than explicitly analyzed at design time!

• Ensuring interoperability while allowing flexibility: interfaces.

Page 6: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 6

Support needed

• Addressing and routing mechanisms

• Name server, registry.

• Dynamic linking and session initiation

• Sensing context changes

• Addressing and routing mechanisms

• Name server, registry.

• Dynamic linking and session initiation

• Sensing context changes

Page 7: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 7

Case 2: Network access in mobile phone

• Monitoring network availablility

• Dynamic linking to available network(s) based on policy and preferences

• Monitoring network availablility

• Dynamic linking to available network(s) based on policy and preferences

Page 8: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 8

Case 3: Fault tolerance

• Detect and diagnose errors

• Reconfigure to mask errors

• Hot or cold standby

• Load shared or synchronized

• Detect and diagnose errors

• Reconfigure to mask errors

• Hot or cold standby

• Load shared or synchronized

Page 9: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 9

Case 4: Load adaptation

• Monitor load situation

• Adapt scheduling

• Adapt queue sizes

• Adapt timers

• Drop fresh traffic

• Distribute load

• Monitor load situation

• Adapt scheduling

• Adapt queue sizes

• Adapt timers

• Drop fresh traffic

• Distribute load

Page 10: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 10

Case 5: security adaptation

MMoIP

UserServiceProvider

Request MMoIP

MMoIP Use

END MMoIP

SecureMMoIP (Userpull)

User

AccessControl Server

ServiceProvider

Request MMoIP

Authorization

MMoIP Use

END MMoIP

Page 11: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 11

SecureMMoIP (Userpull)

User

AccessControl Server

ServiceProvider

Request MMoIP

Authorization

MMoIP Use

END MMoIP

Compositional adaptation by replacement and insertion

<<replaces>>

MMoIP

UserServiceProvider

Request MMoIP

MMoIP Use

END MMoIP

{when threat level = 0or location = secure}

or

{when threat level > 0orlocation not secure}

Server Pull {when ...}

UTPA {when ...}

UoPA {when ...}

User Pull {when ...}

using policy rules evaluated by agents upon role requests

using policy rules evaluated by agents upon role requests

or

Page 12: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 12

Controlled locally by actors

The actors use policies to decide which role to offer when a role is requested

(part of the role binding)

The actors use policies to decide which role to offer when a role is requested

(part of the role binding)

<<Actor>>ServiceProvider

MMCall

<<Actor>>UserAgent

RequestMMoIP

TerminalSession

ENDMMoIP

TerminalCall

Authenti-cation

DistributeAuths

Authori-zation

MMoIPUse

RequestMMoIP

Authori-zation

MMoIPUse

ENDMMoIP

Page 13: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 13

More cases

• Finding nearby printers – how?

• Plugging in USB devices – how?

• Loading applications/components – how to bind to context?

• Finding nearby printers – how?

• Plugging in USB devices – how?

• Loading applications/components – how to bind to context?

Page 14: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 14

find-bind: Static and dynamic linking

• Find instances (of predefined types) :

• Identified instances or instance sets; e.g. Doctors, subscribers

• Identified functionalities/services; e.g. Printers; Map servers

• Bind by requesting to an allocator or manager

• Release by notifying the allocator or manager.

• Requires:

•Registry to find (map from names to instance sets)

•Managers/allocators to bind-release (session initiation)

• Find instances (of predefined types) :

• Identified instances or instance sets; e.g. Doctors, subscribers

• Identified functionalities/services; e.g. Printers; Map servers

• Bind by requesting to an allocator or manager

• Release by notifying the allocator or manager.

• Requires:

•Registry to find (map from names to instance sets)

•Managers/allocators to bind-release (session initiation)

Doctors

DoctorAgent[m]

Patients

PatientAgent[n]

Registry

Patology: refHart: ref....

Object pnp here

Page 15: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 15

• Fire and burglar alarms

• Climate control: heating and cooling

• Power control: minimize power costs

• Smart metering (AMS)

• Access control

• Assisted living (well-fare technology)

• Entertainment

• Cooking

• Lighting

• Etc.

• Fire and burglar alarms

• Climate control: heating and cooling

• Power control: minimize power costs

• Smart metering (AMS)

• Access control

• Assisted living (well-fare technology)

• Entertainment

• Cooking

• Lighting

• Etc.

Now let us consider a HNS system

Page 16: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 16

We want as much self adaptation

as possible – how?• Every device is networked!

• We want to plug in and out devices: heaters, alarm sensors, panels, power meters, appliances, weather stations, ...

• We want to connect devices with service providing applications

• We want to (buy and) install applications

• We want to access external resources and to have remote access

• Every device is networked!

• We want to plug in and out devices: heaters, alarm sensors, panels, power meters, appliances, weather stations, ...

• We want to connect devices with service providing applications

• We want to (buy and) install applications

• We want to access external resources and to have remote access

Page 17: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 17

Variability dimensions

• to communicating objects - horizontal

• to implementation capabilities - vertical

• to communicating objects - horizontal

• to implementation capabilities - vertical

Server App Term AppProtocol Protocol

Server App

RTS

Middleware

Protocol

RTS

Middleware

Protocol

RTS

Middleware

Term App

RTS

Middleware

Principles:

component based design; encapsulation;

loose coupling; separation of concerns; layering; metadata

Compatibility is required

in both dimensions!

Page 18: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 18

Variability: some approaches

• Dynamic component systems

• Dynamic linking

• Software product line approaches

• Variability languages

• Feature selection - feature diagrams

• Versioning and building

• Parameterization

• Aspects, crosscutting concerns and weaving

• Structural alternatives

• Behavioral alternatives

• Transformations

• Goal models, GRL

• Policies

• Dynamic component systems

• Dynamic linking

• Software product line approaches

• Variability languages

• Feature selection - feature diagrams

• Versioning and building

• Parameterization

• Aspects, crosscutting concerns and weaving

• Structural alternatives

• Behavioral alternatives

• Transformations

• Goal models, GRL

• Policies

Page 19: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 19

Variability: different levels of abstraction

Services:

•Types of services and features

•Service compositions

Design:

•Types of design components and data,

• Instance structures, multiplicities and data values

• Realization:

•Types of HW/SW components and platforms

•QoS mechanisms

•…

Services:

•Types of services and features

•Service compositions

Design:

•Types of design components and data,

• Instance structures, multiplicities and data values

• Realization:

•Types of HW/SW components and platforms

•QoS mechanisms

•…

S1

S3

S2

S1.1 S2.1

S3.1 S2.2

Services

Designs

Realization,Execution

Self* mechanisms – what and how?

Role binding

Deployment binding

Page 20: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 20

Our focus

• Initialization and runtime adaptation mechanisms

• How to specify in service models and design models

• How to realize

• Initialization and runtime adaptation mechanisms

• How to specify in service models and design models

• How to realize

Page 21: SelfCon Foil no 1 Variability in Self-Adaptive Systems

SelfConFoil no 21

Self-adaptive

By self adaptive we mean systems and components that configure themselves and dynamically adapt to changing environments with minimal human participation.

Different approaches:

• Pre-structured systems: parameter adaptation and some (limited) compositional adaptation

• Dynamic component systems: compositional adaptation

• Autonomic systems: self*

By self adaptive we mean systems and components that configure themselves and dynamically adapt to changing environments with minimal human participation.

Different approaches:

• Pre-structured systems: parameter adaptation and some (limited) compositional adaptation

• Dynamic component systems: compositional adaptation

• Autonomic systems: self*

System Environment