Return to search

Méthodes et outils pour la conception de systèmes logiciels auto-adaptatifs

Because of the increasing need of mobiles devices, most of software systems need to take into account a highly dynamic environment including hardware and software resources. This need for self-adaptation arises in both large-scale systems such as peer-to-peer systems and small-scale systems such as embedded systems. Those systems, so called ``self-adaptive systems'', have to observe the changes which occur in their environment in order to maximize the quality of the services they provide. ``Observation, Decision, Action'' have thus become the three basic capabilities of self-adaptive systems. They observe the environment in order to decide on what and when the system's architecture must be modified. The design and the development of such systems is a crossroad between three research fields in Computer Science: Software Engineering, Artificial Intelligence, and Distributed Systems. First, Software Engineering and especially Dynamic Architectures enable the definition of software systems as assemblies of well-defined software components. Then, Artificial Intelligence enables the automation of the decision process. Finally, the Distributed Systems and specially Context-Aware Systems focus on the collection and the aggregation of environmental information. However, the design and the development of self-adaptive systems are still hand-written and error prone tasks because of a lack of devoted tools and methodologies. Although most recent middleware platforms enable the dynamic updating of component-based systems, the underlying adaptation mechanisms are still too technical to fit the abstraction level needed by the system architect. Most platforms keep providing API or, at best, some low-level and platform dependant scripts. Good practices in software engineering (such as, design methods, validation tools, etc) are thus not applied to the self-adaptation concerns. The contribution of this thesis is to help the system architect by providing the tools and the methods he needs to describe self-adaptation concerns at the appropriate abstraction level. Self-adaptation behaviours are described as rules expressed in a pseudo natural language which avoid the quantification of environment properties. The system architect can define his own terminologies to portray the environment. The semantics of those rules are based on fuzzy logic and enable a direct interpretation and, therefore, the simulation, at design-time, of self-adaptive systems. Such a simulation at design time is a first validation which reduces the risk of conflicts between the architectural choices and the adaptation requirements. Such conflicts lead to expensive roll-backs in the design process. The TanGraM tool supports the definition of self-adaptive architectures, including the structure, the behaviour, and the manipulated data. It supports as well the integration and the simulation of qualitative adaptation policies at design time. An extension of the Fractal platform has also been released and enables the direct reuse of those adaptation policies in a real Fractal system. We use those tools to design and deploy a self-adaptive HTTP server which has been used as a case study. It adapts its architecture according to the average load and density of HTTP requests. However, the description of qualitative adaptation policies is a first step towards a reliable design process for self-adaptive systems.

Identiferoai:union.ndltd.org:CCSD/oai:tel.archives-ouvertes.fr:tel-00512189
Date19 September 2008
CreatorsChauvel, Franck
PublisherUniversité de Bretagne Sud
Source SetsCCSD theses-EN-ligne, France
LanguageFrench
Detected LanguageEnglish
TypePhD thesis

Page generated in 0.0022 seconds