In this paper we present an approach to add self-adaptive features to software systems not initially designed to be self-adaptive. Rapid changes in users needs, available resources, and types of system faults are everyday concerns in operating complex systems. The ability to face these issues in a (semi-)automatic fashion is a welcome feature. MAPE-K (Monitor, Analyze, Plan, Execute — Knowledge), or one of its variations, is the basic architectural pattern around which most adaptation engines are built. The knowledge (K) element in that pattern is usually a collection of dynamic and static models representing relevant aspects of the system and its environment. Knowledge-based features can be encoded using various techniques and serve a number of disparate roles: providing dynamic views of the system (Reflection Models), representing reconfiguration policies (Evaluation Models), mapping reconfigurations into system-level adaptations (Execution Models), and so forth. In our approach all these models are unified by using ontologies and Semantic Web technologies; the resulting knowledge base is then used to drive adaptation activities. We discuss how the various MAPE-K components can be designed in order to take advantage of this knowledge base by applying our approach to a real-word case study: a deployed system that was not designed to perform automatic adaptation. We then discuss merits and limits of our proposal both in the context of this specific case study and in a broader scope.
['Francesco Poggi', 'Davide Rossi', 'Paolo Ciancarini', 'Luca Bompani']
An application of semantic technologies to self adaptations