SelfCon Foil no 1 Variability in Self-Adaptive Systems
SelfCon Foil 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)?
SelfCon Foil 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.
SelfCon Foil 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.
SelfCon Foil 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.
SelfCon Foil 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
SelfCon Foil 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
SelfCon Foil 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
SelfCon Foil 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
SelfCon Foil no 10 Case 5: security adaptation
SelfCon Foil no 11 Compositional adaptation by replacement and insertion > {when threat level = 0 or location = secure} or {when threat level > 0 or location not secure} Server Pull {when...} UTPA {when...} UoPA {when...} User Pull {when...} using policy rules evaluated by agents upon role requests or
SelfCon Foil 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)
SelfCon Foil 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?
SelfCon Foil 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 Doctor Agent[m] Patients Patient Agent[n] Registry Patology: ref Hart: ref.... Object pnp here
SelfCon Foil 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
SelfCon Foil 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
SelfCon Foil no 17 Variability dimensions to communicating objects - horizontal to implementation capabilities - vertical to communicating objects - horizontal to implementation capabilities - vertical Server App Term App 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!
SelfCon Foil 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
SelfCon Foil 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.1S2.1 S3.1S2.2 Services Designs Realization, Execution Self* mechanisms – what and how? Role binding Deployment binding
SelfCon Foil 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
SelfCon Foil 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