58 research outputs found

    Kevoree (Model@Runtime pour le développement continu de systÚmes adaptatifs distribués hétérogÚnes)

    Get PDF
    La complexitĂ© croissante des systĂšmes d'information modernes a motivĂ© l'apparition de nouveaux paradigmes (objets, composants, services, etc), permettant de mieux apprĂ©hender et maĂźtriser la masse critique de leurs fonctionnalitĂ©s. Ces systĂšmes sont construits de façon modulaire et adaptable afin de minimiser les temps d'arrĂȘts dus aux Ă©volutions ou Ă  la maintenance de ceux-ci. Afin de garantir des propriĂ©tĂ©s non fonctionnelles (par ex. maintien du temps de rĂ©ponse malgrĂ© un nombre croissant de requĂȘtes), ces systĂšmes sont Ă©galement amenĂ©s Ă  ĂȘtre distribuĂ©s sur diffĂ©rentes ressources de calcul (grilles). Outre l'apport en puissance de calcul, la distribution peut Ă©galement intervenir pour distribuer une tĂąche sur des nƓuds aux propriĂ©tĂ©s spĂ©cifiques. C'est le cas dans le cas des terminaux mobiles proches des utilisateurs ou encore des objets et capteurs connectĂ©s proches physiquement du contexte de mesure. L'adaptation d'un systĂšme et de ses ressources nĂ©cessite cependant une connaissance de son Ă©tat courant afin d'adapter son architecture et sa topologie aux nouveaux besoins. Un nouvel Ă©tat doit ensuite ĂȘtre propagĂ© Ă  l'ensemble des nƓuds de calcul. Le maintien de la cohĂ©rence et le partage de cet Ă©tat est rendu particuliĂšrement difficile Ă  cause des connexions sporadiques inhĂ©rentes Ă  la distribution, pouvant amener des sous-systĂšmes Ă  diverger. En rĂ©ponse Ă  ces dĂ©fi scientifiques, cette thĂšse propose une abstraction de conception et de dĂ©ploiement pour systĂšmes distribuĂ©s dynamiquement adaptables, grĂące au principe du Model@Runtime. Cette approche propose la construction d'une couche de rĂ©flexion distribuĂ©e qui permet la manipulation abstraite de systĂšmes rĂ©partis sur des nƓuds hĂ©tĂ©rogĂšnes. En outre, cette contribution introduit dans la modĂ©lisation des systĂšmes adaptables la notion de cohĂ©rence variable, permettant ainsi de capturer la divergence des nƓuds de calcul dans leur propre conception. Cette couche de rĂ©flexion, dĂ©sormais cohĂ©rente "Ă  terme", permet d'envisager la construction de systĂšmes adaptatifs hĂ©tĂ©rogĂšnes, regroupant des nƓuds mobiles et embarquĂ©s dont la connectivitĂ© peut ĂȘtre intermittente. Cette contribution a Ă©tĂ© concrĂ©tisĂ©e par un projet nommĂ© ''Kevoree'' dont la validation dĂ©montre l'applicabilitĂ© de l'approche proposĂ©e pour des cas d'usages aussi hĂ©tĂ©rogĂšnes qu'un rĂ©seau de capteurs ou une flotte de terminaux mobiles.The growing complexity of modern IT systems has motivated the development of new paradigms (objects, components, services,...) to better cope with the critical size of their functionalities. Such systems are then built as a modular and dynamically adaptable compositions, allowing them to minimise their down-times while performing evolutions or fixes. In order to ensure non-functional properties (i.e. request latency) such systems are distributed across different computation nodes. Besides the added value in term of computational power (cloud), this distribution can also target nodes with dedicated properties such as mobile nodes and sensors (internet of things), physically close to users for interactions. Adapting a system requires knowledge about its current state in order to adapt its architecture to its evolving needs. A new state must be then disseminated to other nodes to synchronise them. Maintaining its consistency and sharing this state is a difficult task especially in case of sporadic connexions which lead to divergent state between sub-systems. To tackle these scientific problems, this thesis proposes an abstraction to design and deploy distributed adaptive systems following the Model@Runtime paradigm. From this abstraction, the proposed approach allows defining a distributed reflexive layer to manipulate heterogeneous distributed nodes. In particular, this contribution introduces variable consistencies in model definition and divergence in system conception. This reflexive layer, eventually consistent allows the construction of distributed adapted systems even on mobile nodes with intermittent connectivity. This work has been realized in an open source project named Kevoree, and validated on various distributed systems ranging from sensor networks to cloud computing.RENNES1-Bibl. Ă©lectronique (352382106) / SudocSudocFranceF

    Politiques d'adaptation pour la reconfiguration du composant de localisation

    Get PDF
    International audienceLes approches à base de composants sont intensivement étudiées dans le cadre des systÚmes complexes. Ces approches visent à concevoir des systÚmes et des applications par assemblage de composants préfabriqués, réutilisables et faciles à maintenir. Afin de répondre à des besoins spécifiques, une des approches est l'utilisation de politiques d'adaptation permettant de reconfigurer dynamiquement le modÚle à composants par rapport au contexte de son environnement. Le travail présenté dans cet article repose sur un cadre formel permettant de décrire des politiques d'adaptation appliquées à un composant de localisation. Ce composant, que nous spécifions en Fractal, permet de fournir une position optimale, obtenue à partir de plusieurs positions fournies par plusieurs systÚmes de localisation (GPS, Wifi). Nous définissons deux politiques d'adaptation pour ce composant et simulons son fonctionnement sur une extension de Fractal. Suite aux expérimentations, nous proposons une extension des politiques d'adaptation pour prendre en compte de nouveaux aspects non fonctionnels

    ModÚles, outils et plate-forme d'exécution pour les applications à service dynamiques

    Get PDF
    L'essor de l'Internet et l'Ă©volution des dispositifs communicants ont permis l'intĂ©gration du monde informatique et du monde rĂ©el, ouvrant ainsi la voie Ă  de nouveaux types d'applications, tels que les applications ubiquitaires et pervasives. Ces applications doivent s'exĂ©cuter dans des contextes hĂ©tĂ©rogĂšnes, distribuĂ©s et ouverts qui sont en constante Ă©volution. Dans de tels contextes, la disponibilitĂ© des services et des dispositifs, les prĂ©fĂ©rences et la localisation des utilisateurs peuvent varier Ă  tout moment pendant l'exĂ©cution des applications. La variabilitĂ© des contextes d'exĂ©cution fait que l'exĂ©cution d'une application dĂ©pend, par exemple, des services disponibles ou des dispositifs accessibles Ă  l'exĂ©cution. En consĂ©quence, l'architecture d'une telle application ne peut pas ĂȘtre connue statiquement Ă  la conception, au dĂ©veloppement ou au dĂ©ploiement, ce qui impose de redĂ©finir ce qu'est une application dynamique : comment la concevoir, la dĂ©velopper, l'exĂ©cuter et la gĂ©rer Ă  l'exĂ©cution. Dans cette thĂšse, nous proposons une approche dirigĂ©e par les modĂšles pour la conception, le dĂ©veloppement et l'exĂ©cution d'applications dynamiques. Pour cela, nous avons dĂ©fini un modĂšle de composants Ă  services permettant d'introduire des propriĂ©tĂ©s de dynamisme au sein d'un modĂšle de composants. Ce modĂšle permet de dĂ©finir une application en intention, via un ensemble de propriĂ©tĂ©s, de contraintes et de prĂ©fĂ©rences de composition. Une application est ainsi spĂ©cifiĂ©e de façon abstraite ce qui permet de contrĂŽler la composition graduelle de l'application lors de son dĂ©veloppement et de son exĂ©cution. Notre approche vise Ă  effacer la frontiĂšre entre les activitĂ©s effectuĂ©es avant et pendant l'exĂ©cution des applications. Pour ce faire, le mĂȘme modĂšle et les mĂȘmes mĂ©canismes de composition sont utilisĂ©s de la conception jusqu'Ă  l'exĂ©cution des applications. A l'exĂ©cution, le processus de composition considĂšre, en plus, les services disponibles dans la plate-forme d'exĂ©cution permettant la composition opportuniste des applications ; ainsi que la variabilitĂ© du contexte d'exĂ©cution permettant l'adaptation dynamique des compositions. Nous avons mis en Ɠuvre notre approche via un prototype nommĂ© COMPASS, qui s'appuie sur les plates-formes CADSE pour la rĂ©alisation d'environnements logiciels de conception et de dĂ©veloppement, et APAM pour la rĂ©alisation d'un environnement d'exĂ©cution d'applications Ă  services dynamiques.The growth of the Internet and the evolution of communicating devices have allow the integration of the computer world and the real world, paving the way for developing new types of applications such as pervasive and ubiquitous ones. These applications must run in heterogeneous, distributed and open environments that evolve constantly. In such environments, the availability of services and devices, the preferences and location of users may change at any time during the execution of applications. The variability of the execution context makes the execution of an application dependent on the available services and devices. Building applications capable of evolving dynamically to their execution context is a challenging task. In fact, the architecture of such an application cannot be fully known nor statically specified at design, development or deployment times. It is then needed to redefine the concept of dynamic application in order to cover the design, development, execution and management phases, and to enable thus the dynamic construction and evolution of applications. In this dissertation, we propose a model-driven approach for the design, development and execution of dynamic applications. We defined a component service model that considers dynamic properties within a component model. This model allows defining an application by its intention (its goal) through a set of composition properties, constraints and preferences. An application is thus specified in an abstract way, which allows controlling its gradual composition during development and execution times. Our approach aims to blur the boundary between development-time and runtime. Thus, the same model and the same composition mechanisms are used from design to runtime. At runtime, the composition process considers also the services available in the execution platform in order to compose applications opportunistically; and the variability of the execution context in order to adapt compositions dynamically. We implemented our approach through a prototype named COMPASS, which relies on the CADSE platform for building software design and development environments, and on the APAM platform for building an execution environment for dynamic service-based applications.SAVOIE-SCD - Bib.Ă©lectronique (730659901) / SudocGRENOBLE1/INP-Bib.Ă©lectronique (384210012) / SudocGRENOBLE2/3-Bib.Ă©lectronique (384219901) / SudocSudocFranceF

    COSMOS : composition de noeuds de contexte

    Get PDF
    National audienceLes applications ubiquitaires évoluent dans une grande diversité de contextes d'utilisation. Or, cette diversité requiert une adaptation continuelle afin de préserver le bon fonctionnement des applications. DÚs lors, l'observation du contexte joue un rÎle prépondérant. Si les approches actuelles « centrée utilisateur » et « systÚme » ont prouvé leur pertinence dans ce domaine, elles souffrent néanmoins de certaines limitations liées à l'expressivité des compositions des inférences et au passage à l'échelle. Par conséquent, nous proposons de réorganiser les fonctionnalités traditionnelles d'un gestionnaire de contexte de maniÚre systématique en cycles « collecte / interprétation / identification de situations ». Cette approche repose sur la définition du concept de noeuds de contexte composés dans un graphe (hiérarchie avec partage), et l'expression du concept en composant et architecture logicielle pour faciliter la définition et la gestion des politiques de gestion de contexte

    Adaptabilité et reconfiguration des systÚmes temps-réel embarqués

    Get PDF
    Les systĂšmes temps rĂ©el peuvent ĂȘtre grands, distribuĂ©s et avoir un environnement dynamique. Cela exige la mise en place de diffĂ©rents modes de fonctionnement et techniques de fiabilitĂ©. Par ailleurs, ces diffĂ©rents changements dynamiques d'architecture et de comportement ont un impact sur les caractĂ©ristiques temporelles des systĂšmes qui nĂ©cessitent une Ă©tude particuliĂšre de la capacitĂ© des comportements d'adaptation Ă  garantir les contraintes fixĂ©es aux systĂšmes. Le travail prĂ©sentĂ© dans cette thĂšse est focalisĂ© sur la spĂ©cification de l'adaptabilitĂ© d'un systĂšme temps rĂ©el et l'Ă©tude sur de jeux de configurations prĂ©dĂ©finis de l'impact temporel des actions d'adaptation dynamique. Pour cela, nous prĂ©sentons une mĂ©thodologie outillĂ©e basĂ©e sur la notion de Mode du profil MARTE. Chaque mode reprĂ©sente un comportement possible du systĂšme pour un environnement bien dĂ©terminĂ© associĂ© Ă  une configuration logicielle. L'approche dĂ©veloppĂ©e propose de modĂ©liser le comportement adaptatif Ă  travers la dĂ©finition du contexte, de la variabilitĂ©, des opĂ©rations de reconfigurations et de la configuration de base. L'analyse d'ordonnançabilitĂ© est ensuite effectuĂ©e au niveau du modĂšle en intĂ©grant l'impact des comportements d'adaptation. Deux paradigmes de modĂ©lisation peuvent alors ĂȘtre exploitĂ©s pour effectuer cette analyse : les requĂȘtes et les flots de donnĂ©es. Cela permet de vĂ©rifier que les contraintes temporelles de notre systĂšme resteront satisfaites en intĂ©grant les opĂ©rations de reconfiguration issues du comportement adaptatif. Enfin, l'approche permet de gĂ©nĂ©rer des implantations des comportements adaptatifs Ă  partir des modĂšles afin d'automatiser l'intĂ©gration des mĂ©canismes d'adaptation dans les systĂšmes temps rĂ©el.Real-time systems can be large, distributed and have a dynamic environment. This requires the introduction of various operating modes and reliability techniques. Different operating modes are associated with a different architecture and behavior. Dynamic changes between these modes have an impact on the temporal characteristics of systems which requires an analysis whether the constraints of the system are also fulfilled during adaptations. The work presented in this thesis is focused on specifying the adaptability and the study of the temporal impact of dynamic adaptation actions on a predefined set of configurations. For this purpose, we present a tooled methodology based on the concept of Mode of the MARTE profile. Each mode represents a possible behavior of the system for a well determined environment associated with a software configuration. The influence of these operations on the temporal behavior of the system is done via schedulability analysis. This methodology proposes to model the adaptive behavior through the definition of the context, the variability, the reconfiguration operations and of the base configuration. The schedulability analysis is performed at the model level by incorporating the impact of the behavior of adaptation. Two paradigms of modeling can be exploited to perform this analysis: request/reply and data flow. This allows to verify that the temporal constraints of our system will remain satisfied even with the inclusion of reconfiguration operations executing the adaptive behavior. Finally, the approach allows generating the implementation of adaptive behavior from the model to automate the integration of adaptation mechanisms in real-time systems.PARIS11-SCD-Bib. Ă©lectronique (914719901) / SudocSudocFranceF

    Patrons de conception pour l’intégration graduelle de mécanismes d’adaptation dans les interfaces graphiques

    Get PDF
    Les interfaces graphiques de logiciels modernes requièrent de plus en plus de s’adapter à diverses situations et divers utilisateurs, rendant leur développement plus complexe. Peu de guides et de solutions à faible coût d’intégration dans un projet existent et sont trop souvent dépendants d’une technologie ou d’une plateforme donnée. Ce mémoire présente une technique pour l’implémentation graduelle de comportements adaptatifs dans les interfaces graphiques par le biais de patrons de conception. Les patrons de conception sont des solutions formalisées répondant à des problèmes récurrents, dans ce cas-ci de structuration d’un logiciel pour l’ajout de l’adaptation. Ces derniers sont présentés dans un format normalisé et une implémentation de référence a été développée sous forme de librairie baptisée AdaptivePy. Un prototype démonstratif est utilisé pour comparer une approche d’implémentation ad hoc à celle utilisant la librairie et donc les patrons. Les gains observés sont au niveau de la séparation des préoccupations, de la cohésion des méthodes, de la localisation des changements pour l’ajout de l’adaptation et de l’extensibilité. Aussi, ce mémoire présente des métriques visant la vérification de l’organisation des composants d’un logiciel structuré par l’application des patrons de conception. Ces métriques sont des indicateurs de la proportion des situations contextuelles du système que supporte un composant. Les métriques et leur calcul sont présentés dans un format basé sur ce- lui de l’ISO/IEC 25023 et une implémentation de référence a également été développée. Une application typique est évaluée grâce aux métriques et des actions correctives sont présentées pour résoudre les problèmes détectés. L’utilité des métriques pour valider une application développée en utilisant la structure induite par les patrons de conception est ainsi mise en évidence. La méthodologie du projet a suivi un processus itératif pour l’élaboration des patrons de conception et la recherche des métriques pour appuyer leur application dans un contexte pratique. Par l’analyse de la littérature pour identifier les concepts communs de l’adaptation et les éléments de mesure dans le domaine de l’adaptation, des solutions plus générales et adaptées à une grande variété de domaines d’application sont proposées. Parmi les contributions du projet sont trois nouveaux patrons de conceptions : Moniteur, Proxy routeur et Composant adaptatif. Aussi, deux métriques spécifiques ont été formalisées : la couverture modélisée de l’espace d’adaptation ainsi que la couverture effective de l’espace d’adaptation. En plus, deux métriques générales supplémentaires sont proposées : la profondeur de l’arbre de substitution et la stabilité de l’adaptation

    Évaluation de l'apport des aspects, des sujets et des vues pour la composition et la rĂ©utilisation des modĂšles

    Get PDF
    National audienceThe reuse, the evolution or the fast adaptation of the code of an application are among the strongest concerns of companies. Model engineering tries to bring a solution putting the model in the center of the software development and by capturing the business know-how initially described in the code of the application. This approach has the advantage to make the description independant of software platforms. Our objective in this paper is to present three different approaches for the composition of models, to evaluate them using the criteria proposed by the AOSD-EUROPE network of excellence in order to extract relevant information. From this evaluation, this paper provides new proposals. The evaluation aims at showing the capacity of each approach to support the composition of both functional and extra-functional concerns

    Adaptations dynamiques au contexte en informatique ambiante : propriétés logiques et temporelles

    Get PDF
    In ubiquitous computing, applications are built as a collaboration of computerized and communicating objects called devices. Because these devices can be mobile or subject to failures, this infrastructure evolves dynamically and unpredictably. Thus, to fit seamlessly into their environment and to provide the functionalities expected by users which are often more sustainable than the environment, applications must dynamically adapt to these changes. Each of these variable phenomena pursues its own dynamic. The challenge offered to adaptation mechanisms is to be able to consider them, with suitable dynamics.For this purpose, we propose an architectural model and an adaptation mechanism. The architectural model is based on four levels organized hierarchically according to their complexity and to the dynamics they can offer. We combine to this architectural model an adaptation mechanism. Based on the separation of concerns principle, our mechanism allows us to consider the variability of the system. Due to the unpredictability of the environment, the sets of adaptations that will be deployed by the upper levels of the architecture may not have been anticipated at design time. Also, thanks to some logical and temporal properties, these adaptations can be composed in non-anticipated way and with appropriate response time. The proposed mechanism, called cascaded aspects, is implemented using Aspects of Assembly and the WComp execution platform.En informatique ambiante, les applications sont construites en faisant interagir entre eux des objets informatisĂ©s et communicants appelĂ©s dispositifs. Parce que ces dispositifs peuvent ĂȘtre mobiles ou subir des pannes, cette infrastructure Ă©volue dynamiquement et de maniĂšre imprĂ©visible. Aussi, pour s’insĂ©rer de maniĂšre transparente dans leur environnement et fournir les fonctionnalitĂ©s attendues par les utilisateurs, bien souvent plus pĂ©rennes que l’environnement sur lequel elles reposent, les applications doivent s’adapter dynamiquement Ă  ces Ă©volutions. Ces phĂ©nomĂšnes variables poursuivant leur propre dynamique, le dĂ©fi proposĂ© aux mĂ©canismes d’adaptation est d’ĂȘtre capable de les prendre encompte, avec une dynamique adaptĂ©e Ă  chacun d’entre eux.Dans cette optique, nous proposons un modĂšle architectural ainsi qu’un mĂ©canisme d’adaptation. Le modĂšle architectural repose sur quatre niveaux organisĂ©s hiĂ©rarchiquement en fonction de leur complexitĂ© et de la dynamique qu’ils peuvent offrir. Nous lui associons un mĂ©canisme d’adaptation qui, Ă  partir du principe de sĂ©paration des prĂ©occupations permet d’exprimer la variabilitĂ© du systĂšme. En raison de l’imprĂ©visibilitĂ© de l’environnement, les ensembles d’adaptations qui seront dĂ©ployĂ©es par les niveaux supĂ©rieurs de l’architecture ne peuvent pas nĂ©cessairement ĂȘtre anticipĂ©s Ă  la conception. Aussi, grĂące Ă  un ensemble de propriĂ©tĂ©s logiques et temporelles, ces adaptations peuvent ĂȘtre composĂ©es de maniĂšre non-anticipĂ©e dans des temps de rĂ©ponse adaptĂ©s. Le mĂ©canisme d’adaptation proposĂ©, appelĂ© cascade d’aspects, est expĂ©rimentĂ© en se basant sur les Aspects d’Assemblages et la plateforme d’exĂ©cution WComp

    Conception et implémentation de systÚmes résilients par une approche à composants

    Get PDF
    L'Ă©volution des systĂšmes pendant leur vie opĂ©rationnelle est incontournable. Les systĂšmes sĂ»rs de fonctionnement doivent Ă©voluer pour s'adapter Ă  des changements comme la confrontation Ă  de nouveaux types de fautes ou la perte de ressources. L'ajout de cette dimension Ă©volutive Ă  la fiabilitĂ© conduit Ă  la notion de rĂ©silience informatique. Parmi les diffĂ©rents aspects de la rĂ©silience, nous nous concentrons sur l'adaptativitĂ©. La sĂ»retĂ© de fonctionnement informatique est basĂ©e sur plusieurs moyens, dont la tolĂ©rance aux fautes Ă  l'exĂ©cution, oĂč l'on attache des mĂ©canismes spĂ©cifiques (Fault Tolerance Mechanisms, FTMs) Ă  l'application. A ce titre, l'adaptation des FTMs Ă  l'exĂ©cution s'avĂšre un dĂ©fi pour dĂ©velopper des systĂšmes rĂ©silients. Dans la plupart des travaux de recherche existants, l'adaptation des FTMs Ă  l'exĂ©cution est rĂ©alisĂ©e de maniĂšre prĂ©programmĂ©e ou se limite Ă  faire varier quelques paramĂštres. Tous les FTMs envisageables doivent ĂȘtre connus dĂšs le design du systĂšme et dĂ©ployĂ©s et attachĂ©s Ă  l'application dĂšs le dĂ©but. Pourtant, les changements ont des origines variĂ©es et, donc, vouloir Ă©quiper un systĂšme pour le pire scĂ©nario est impossible. Selon les observations pendant la vie opĂ©rationnelle, de nouveaux FTMs peuvent ĂȘtre dĂ©veloppĂ©s hors-ligne, mais intĂ©grĂ©s pendant l'exĂ©cution. On dĂ©note cette capacitĂ© comme adaptation agile, par opposition Ă  l'adaptation prĂ©programmĂ©e. Dans cette thĂšse, nous prĂ©sentons une approche pour dĂ©velopper des systĂšmes sĂ»rs de fonctionnement flexibles dont les FTMs peuvent s'adapter Ă  l'exĂ©cution de maniĂšre agile par des modifications Ă  grain fin pour minimiser l'impact sur l'architecture initiale. D'abord, nous proposons une classification d'un ensemble de FTMs existants basĂ©e sur des critĂšres comme le modĂšle de faute, les caractĂ©ristiques de l'application et les ressources nĂ©cessaires. Ensuite, nous analysons ces FTMs et extrayons un schĂ©ma d'exĂ©cution gĂ©nĂ©rique identifiant leurs parties communes et leurs points de variabilitĂ©. AprĂšs, nous dĂ©montrons les bĂ©nĂ©fices apportĂ©s par les outils et les concepts issus du domaine du gĂ©nie logiciel, comme les intergiciels rĂ©flexifs Ă  base de composants, pour dĂ©velopper une librairie de FTMs adaptatifs Ă  grain fin. Nous Ă©valuons l'agilitĂ© de l'approche et illustrons son utilitĂ© Ă  travers deux exemples d'intĂ©gration : premiĂšrement, dans un processus de dĂ©veloppement dirigĂ© par le design pour les systĂšmes ubiquitaires et, deuxiĂšmement, dans un environnement pour le dĂ©veloppement d'applications pour des rĂ©seaux de capteurs. ABSTRACT : Evolution during service life is mandatory, particularly for long-lived systems. Dependable systems, which continuously deliver trustworthy services, must evolve to accommodate changes e.g., new fault tolerance requirements or variations in available resources. The addition of this evolutionary dimension to dependability leads to the notion of resilient computing. Among the various aspects of resilience, we focus on adaptivity. Dependability relies on fault tolerant computing at runtime, applications being augmented with fault tolerance mechanisms (FTMs). As such, on-line adaptation of FTMs is a key challenge towards resilience. In related work, on-line adaption of FTMs is most often performed in a preprogrammed manner or consists in tuning some parameters. Besides, FTMs are replaced monolithically. All the envisaged FTMs must be known at design time and deployed from the beginning. However, dynamics occurs along multiple dimensions and developing a system for the worst-case scenario is impossible. According to runtime observations, new FTMs can be developed off-line but integrated on-line. We denote this ability as agile adaption, as opposed to the preprogrammed one. In this thesis, we present an approach for developing flexible fault-tolerant systems in which FTMs can be adapted at runtime in an agile manner through fine-grained modifications for minimizing impact on the initial architecture. We first propose a classification of a set of existing FTMs based on criteria such as fault model, application characteristics and necessary resources. Next, we analyze these FTMs and extract a generic execution scheme which pinpoints the common parts and the variable features between them. Then, we demonstrate the use of state-of-the-art tools and concepts from the field of software engineering, such as component-based software engineering and reflective component-based middleware, for developing a library of fine-grained adaptive FTMs. We evaluate the agility of the approach and illustrate its usability throughout two examples of integration of the library: first, in a design-driven development process for applications in pervasive computing and, second, in a toolkit for developing applications for WSNs

    Adaptation des composants centrée sur l'utilisation

    Get PDF
    Avec la notion de composant logiciel, la dĂ©marche de conception d'applications informatiques a vu apparaĂźtre une alternative intĂ©ressante Ă  l'approche classique, oĂč le dĂ©veloppement est menĂ© selon une approche centralisĂ©e. L'idĂ©e est en effet de permettre la construction d'applications adaptĂ©es aux besoins spĂ©cifiques de chaque utilisateur par assemblage de composants prĂ©existants. NĂ©anmoins, le choix de composants prĂ©dĂ©finis, sur Ă©tagĂšre, pose le problĂšme de leur adĂ©quation Ă  une utilisation spĂ©cifique. Dans ce contexte, la possibilitĂ© d'adapter les composants semble cruciale, si l'on souhaite rendre rĂ©ellement effective l'approche de dĂ©veloppement par assemblage de composants. Cette thĂšse introduit une nouvelle approche de l'adaptation de composants logiciels qui consiste Ă  adapter le composant Ă  ses contextes d'utilisation en se basant sur le point de vue de l'utilisateur. Nous dĂ©crivons le profil d'utilisation sous la forme d'un ensemble de triplets dont chacun spĂ©cifie les propriĂ©tĂ©s souhaitĂ©es, les rĂ©actions correspondantes Ă  traiter dans le cas oĂč une condition n'est pas vĂ©rifiĂ©e et les Ă©chĂ©anciers d'Ă©valuation des propriĂ©tĂ©s. Nous proposons aussi un service de supervision de composant (SSC) qui repose sur la surveillance de l'Ă©tat des composants pour obtenir des clichĂ©s qui reflĂštent l'Ă©tat actuel du composant et les changements rĂ©cents. Nous dĂ©finissons Ă©galement le service de sĂ»retĂ© de service (SSS) qui intercepte les requĂȘtes clientes et qui les dĂ©lĂšgue vers le composant le plus convenable, tout en gĂ©rant l'exĂ©cution du composant en fonction du profil d'usage. ABSTRACT : The concept of software component, provides an interesting alternative to the traditional way of designing data-processing applications, where the development is undertaken according to a centralized approach. The idea is indeed to allow the construction of applications adapted to the specific needs for each user by assembling preexistent components. Nevertheless, the choice of off-the-shelf components, raises the problem of their adequacy to a specific use. In this context, the ability to adapt components appears to be crucial, if one wishes to make really effective the approach of development by assembling components. This thesis introduces a new approach of the adaptation of software components which consists in adapting the component to its contexts of use centered on the point of view of the user. We describe a user profile as a set of triples, where each triple specifies the desired properties, the reactions to be run if a condition is not checked and the schedule of evaluation of properties. We propose also a service of supervision of component (SSC) which is based on the monitoring of the state of the components to obtain snapshots which reflect the current state of the component and the recent changes. We also define the service of safety of service (SSS) which intercepts the user requests and delegates them towards the most suitable component, while managing the execution of the component according to the profile of use
    • 

    corecore