CERBERO Self Adaptation
Self-adaptation aims at changing structure, functionality or parameters of the systems according to different pieces of information coming from the environment, the user or the system itself. Self-adaptation in CERBERO involves a feedback loop from sensors to a decision entity, decomposed as follows:
- Run-time sensing/monitoring capabilities – To capture environment, human-commanded and system status changes with proper interfaces.
- Run-time estimation capabilities – To estimate, during the system execution, the Key Performance Indicators (KPIs) representing the system status.
- Decision making capabilities – To define, given the evaluated KPIs and a set of predefined criteria, if adaptation is required to meet the expected goals or to maintain the execution as close as possible to its current status.
- Mastering capabilities – To select the adaptation type on the available computing infrastructure.
- Reconfiguration capabilities – Execution of the changes on the available adaptable fabric.
This loop has been translated into a multi-level self-adaptation infrastructure, where different levels and layers are combined through a hierarchy of monitors, managers and engines. Triggers for adaptation come from the environment, the humans in the loop or from the physical/virtual components of the system. At the system level, tasks are executed on heterogeneous platforms, and are continuously monitored over time (see Papify and Meca).
Monitored data are used to determine current KPIs with DynAA and Papify, which provide the adaptation manager — implemented with Spider and Meca — with sufficient information to decide whether the system needs adaptation. Proper engines are used to restructure the computation activating or deactivating resources, re-mapping tasks, and/or re-programming the configurable logic, if available.
The hierarchy of monitors/managers contributes to the realization of the loop also at the system of systems level. Higher-level monitors retrieve information from system-level managers (which have the knowledge of the execution at system level) and use them to decide upon higher-level adaptation strategies, where the different sub-systems may influence each other. Such hierarchy is meant to allow a high-level adaptation manager to coordinate adaptation between several lower-level subsystems.