QoS-CARE: A Reliable System for Preserving QoS Contracts through Dynamic Reconfiguration - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Thèse Année : 2012

QoS-CARE: A Reliable System for Preserving QoS Contracts through Dynamic Reconfiguration

QoS-CARE: Un Système Fiable pour la Préservation de Contrats de Qualité de Service à travers de la Reconfiguration Dynamique

Résumé

Ubiquitous software services are increasingly pervading the daily activities of common people. In turn, this situation is increasing the users' demands for highly dynamic capabilities of these services to satisfy context-dependent requirements. In the last years, the engineering of self-adaptive software has demonstrated its support for these capabilities and has achieved significant advances. However, self-adaptation theories, models and mechanisms are further required to be trustworthy, extensible and re-usable in order to be incorporated as common assets of the software engineering design process, when appropriate. Most of the existing approaches focus only on one kind of these assets, usually an ad-hoc mechanism, and moreover, the community lacks standardized properties to evaluate these mechanisms in comparable ways. To address these shortcomings, in this dissertation we develop and implement a formal model to preserve Quality of Service (QoS) contracts in component-based software applications through dynamic reconfiguration. Our contribution is twofold. First, we provide a comprehensive solution strategy that ranges from a formal foundation that concedes trustworthiness to our proposal, to an experimental evaluation that grants practical feasibility to our work. Second, we identify and define properties inherent to self-adaptive software systems that allow comparable assessment on them. In our first contribution we identify four elements: the formal model, the architecture of the proposal, its implementation, and its experimental evaluation. Our formal model is based on the feedback-loop model to achieve reconfiguration autonomy. To obtain reliability, we build on a typed and attributed graph transformation theory to define component-based application structures, QoS contracts and reconfiguration rules. These definitions are typing structures that guarantee conformance of the corresponding instances. We specify the dynamic reconfiguration operation with these operations. Our approach benefits from graph transformation theorems to guarantee that the reconfiguration process is terminating, atomic, and verifiable on the component-based well-formation rules. To cope with context unpredictability, we conceive a finite state machine that manages states of both, contract fulfillment, and also unfulfillment. We devise an architecture to realize our formal model, which creates and maintains a graph representation of the managed application and the QoS contracts at runtime. Furthermore, this architecture bridges the graph representation structure with the actual running application structure through a pair of functions that maintain the coherence between these two structures. We encode this architecture as an SCA layer for dynamic reconfiguration in an implementation, which we deploy and execute in FraSCAti, a multi-scale SCA middleware. We undertake an experimental evaluation of our approach by applying a benchmark on two plausible case studies. From the obtained results we conclude on the practical feasibility of our proposal. In the second contribution, we aim at filling-in the existing gap in the assessment of the MAPE-K (Monitor, Analyzer, Planner, Executor and shared Knowledge) loop model, which was proposed with no standard properties to compare among its different realizations. Based on an extensive survey of research papers, we characterized common properties inherent to self-adaptive software and proposed for them suitable mappings to metrics. Among the most important properties are the atomic adaptation, the settling-time, the termination, the structural consistency, the robustness, the resource overshoot and the stability. For the validation of our proposal, we analyzed and verified the corresponding conditions for the first five of these properties. With our first contribution, our aim is to advance the software engineering for self-adaptive software systems by providing a comprehensive solution strategy built on a formal foundation. With our second contribution we provide the basis to standardize self-adaptive software properties, useful for their assessment.
L'informatique ubiquitaire envahit de plus en plus nos activités quotidiennes. Cela a pour effet que nous sommes de plus en plus demandeurs de services réagissant dynamiquement au contexte dans lequel nous évoluons. Ces services doivent alors s'adapter à l'environnement dans lequel ils sont utilisés, si possible de façon automatique. Ces dernières années, d'importantes avancées dans le développement de systèmes auto-adaptables ont été faites et ont pu être intégrées dans les logiciels. Néanmoins, il est nécessaire d'étudier des modèles formels et les outils associés pour définir au mieux l'auto-adaptation en vue de garantir la fiabilité, l'extensibilité et la réutilisabilité de ces systèmes, ceci dans un objectif de proposer des artefacts communs et bien définis pour les processus de conception de des applications auto-adaptables. La plupart des approches existantes se concentrent sur l'un des artefacts de ces systèmes auto-adaptables, habituellement sous forme d'un mécanisme ad-hoc. De plus, la communauté manque de standards de comparaison permettant l'évaluation de ces mécanismes d'adaptation et leur fiabilité. Dans cette thèse, pour faire face à ces problématiques, nous proposons un modèle formel permettant de préserver la qualité de service (QoS pour Quality of Service en anglais) à l'aide de contrats dans des applications reconfigurables à base de composants à l'exécution. Notre contribution comprend deux parties. Tout d'abord, nous proposons une solution complète allant de la définition d'un modèle formel de reconfiguration d'un système auto-adaptable fiable jusqu'à l'expérimentation, en démontrant l'applicabilité de l'approche dans une plate-forme à composants reconfigurables. Finalement, nous identifions et définissons des propriétés propres aux logiciels auto-adaptables permettant de les évaluer et de les comparer. Dans notre première contribution, nous identifions quatre éléments principaux : un modèle formel, une architecture de l'approche, une implémentation, et une évaluation sur deux expériences. Notre modèle formel définit un modèle de boucle de contrôle autonome permettant des reconfigurations autonomes. Le modèle propose des propriétés de fiabilité et se base sur la théorie de transformation des graphes typés attribués. Nous utilisons ce type de graphes et de transformations pour définir la structure des applications à base de composants, les contrats de QoS, et les règles de reconfiguration. Ces éléments sont définis par des structures typées qui garantissent que les instances correspondantes sont conformes au modèle. De plus, nous spécifions un ensemble d'opérations pour la reconfiguration dynamique en utilisant ces définitions. Notre approche bénéficie des théorèmes utilisés dans la transformation de graphes, pour garantir que le processus de reconfiguration soit résiliable, atomique, et vérifiable avec les règles structurelles définies dans les applications à base de composants. Pour faire face à l'imprévisibilité inhérente au changement de contexte, nous définissons une machine à états finis que gère à la fois les contrats qui sont respectés ainsi que ceux qui ne le sont pas. Nous développons une architecture pour mettre en œuvre notre modèle formel par l'intermédiaire d'une représentation, au moment de l'exécution, de l'application et des contrats de QoS associés sous forme de graphes. De plus, cette représentation permet la mise en place d'une liaison causale entre les graphes et l'application dont la cohérence est maintenue et garantie à l'aide de fonctions. Nous mettons en œuvre cette architecture sous la forme de composants SCA (Service Component Architecture pour son acronyme en anglais) à l'aide du cadre logiciel F RA SCATI, une plate-forme intergicielle multi-échelle définie dans l'équipe ADAM. Finalement, nous présentons une évaluation de notre expérience par un test de performance (benchmark) sur deux cas d'étude. Les résultats obtenus nous permettent de conclure l'applicabilité de l'approche proposée. Avec notre deuxième contribution, notre objectif est de faire face au manque actuel de méthodes de vérification des instances du modèle de boucle de contrôle de type MAPE-K (Monitor, Analysis, Planning, Execution et Knowledge par son acronyme en anglais). Ce modèle a été proposé sans qu'aucune propriété standardisée ne soit définie et qui pourrait permettre la comparaison des réalisations de cette boucle de contrôle. Nous avons identifié, à partir d'une étude bibliographique conséquente, un ensemble de propriétés inhérentes aux systèmes auto-adaptables. Nous avons proposé un ensemble de propriétés associées à cette étude. Parmi les propriétés identifiées les plus importantes, nous pouvons citer l'adaptation atomique, le temps de configuration (settling-time), la terminaison, la cohérence structurelle, la robustesse, le dépassement de ressources et la stabilité. Pour valider notre approche, nous avons analysé et vérifié les hypothèses pour les cinq premières propriétés. Avec notre première contribution, nous proposons des avancées dans le domaine de l'ingénierie logicielle pour les applications auto-adaptables. Avec notre deuxième contribution, nous apportons des éléments tangibles pour la standardisation des propriétés pour l'évaluation des systèmes auto-adaptables.
Fichier principal
Vignette du fichier
GTM-PhD-Thesis-QoS-CARE-a4.pdf (4.89 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00713345 , version 1 (30-06-2012)
tel-00713345 , version 2 (17-07-2012)

Identifiants

  • HAL Id : tel-00713345 , version 2

Citer

Gabriel Tamura. QoS-CARE: A Reliable System for Preserving QoS Contracts through Dynamic Reconfiguration. Software Engineering [cs.SE]. Université des Sciences et Technologie de Lille - Lille I; Universidad de Los Andes, 2012. English. ⟨NNT : ⟩. ⟨tel-00713345v2⟩
413 Consultations
768 Téléchargements

Partager

Gmail Facebook X LinkedIn More