Concepts and Terminology
Self-Adaptive System¶
A Self-Adaptive system (SAS) is able to automatically modify itself in response to changes in its operating environment 1.
The "self" prefix indicates that the systems decide autonomously (i.e. without or with minimal interference) how to adapt changes in their contexts. While some self-adaptive system may be able to function without any human intervention, guidance in the form of higher-level goals is useful and realized in many systems.
MAPE-K loop¶
A system could be made Self-Adaptive by adding sensors to monitor its runtime state, actuators to change it at runtime, and a separate reasoning mechanism to decide when it is appropriate to adapt the system, and how best to do so.
This was famously referred to as the MAPE-K loop, or Monitor-Analyze-Plan-Execute using a shared base of Knowledge 2. This architecture exposes explicitly the concept of feedback control loop and indentify the components and interfaces.
Monitor
-
Monitor the managed system and its context, filter the collected data and store relevant events in Knowledge.
Analyze
-
Explore the data, comparing it with known patterns, identifying any symptoms and saving them in the Knowledge as needed.
Plan
-
Interprets symptoms and devises a plan to achieve adaptation (or goal), usually according to guidelines and strategies.
Execute
-
Provides the control mechanisms to ensure the execution of the plan on the managed system.
Knowledge
-
Contains managed system information that can be shared among all MAPE components. It contains all the knowledge useful for the loop (eg. representation, policies to follow, metrics for evaluation, specific inference rules for each task, history, adaptation strategies, system topology, etc).
Distributed and Decentralized¶
When systems are large, complex, and heterogeneous, a single MAPE-K loop may not be sufficient for managing adaptation. In such cases, multiple MAPE-K loops may be employed that manage different parts of the system.
In self-adaptive systems with multiple loops, the functions for monitoring, analyzing, planning, and effecting may be made by multiple components that coordinate with one another. That is, the functions may be decentralized throughout the multiple MAPE-K loops distributed on different nodes. 3
Different patterns of interacting control loops have been used in practice by centralizing and decentralizing the functions of self-adaption in different ways.
Info
Further and deeply information about different patterns related to decentralized and distributed system can be found in the paper "On Patterns for Decentralized Control in Self-Adaptive Systems", Danny Weyns
In the next sections of documentations, we will see these patterns through the implementation of some ad-hoc examples. Discovering different approaches, trade-off, and of course the PyMAPE framework.
-
"A survey on engineering approaches for self-adaptive systems", C. Krupitzer, F. M. Roth, S. VanSyckel, G. Schiele, and C. Becker ↩
-
"An architectural blueprint for autonomic computing", IBM White Paper, vol. 31, no. 2006 ↩
-
"On Patterns for Decentralized Control in Self-Adaptive Systems", D. Weyns, B. Schmerl, V. Grassi, S. Malek, R. Mirandola, C. Prehofer, J. Wuttke, J. Andersson, H. Giese, and K. M. Göschka ↩