Section: Overall Objectives
Objective: control support for autonomic computing
Ctrl-A is motivated by today's context where computing systems, large (data centers) or small (embedded), are more and more required to be adaptive to the dynamical fluctuations of their environments and workloads, evolutions of their computing infrastructures (shared, or subject to faults), or changes in application functionalities. Their administration, traditionally managed by human system administrators, needs to be automated in order to be efficient, safe and responsive. Autonomic Computing is the approach that emerged in the early 2000's in distributed systems to answer that challenge, in the form of self-administration control loops. They address objectives like self-configuration (e.g. in service-oriented systems), self-optimization (resource consumption management e.g., energy), self-healing (fault-tolerance, resilience), self-protection (security and privacy).
Therefore, there is a pressing and increasing demand for methods and tools to design controllers for self-adaptive computing systems, that ensure quality and safety of the behavior of the controlled system. The critical importance of the quality of control on performance and safety in automated systems, in computing as elsewhere, calls for a departure from traditional approaches relying on ad hoc techniques, often empirical, unsafe and application-specific solutions.
The main objective of the Ctrl-A project-team is to develop a novel framework for model-based design of controllers in Autonomic Computing. We want to contribute generic Software Engineering methods and tools for developers to design appropriate controllers for their particular reconfigurable architectures, software or hardware, and integrate them at middleware level. We want to improve concrete usability of techniques from Control Theory, particularly Discrete Event Systems, by specialists of concrete systems (rather than formal models) [9], and to provide tool support for our methods in the form of specification languages and compilers. We address policies for self-configuration, self-optimization (resource management, low power), self-healing (fault tolerance) and self-protection (security).