Upload
branden-king
View
217
Download
0
Embed Size (px)
Citation preview
SelfConFoil 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)?
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.
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.
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.
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
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
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
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
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
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
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
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?
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
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
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
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!
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
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
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
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