91 |
An infrastructure for autonomic and continuous long-term software evolutionJiménez, Miguel 29 April 2022 (has links)
Increasingly complex dynamics in the software operations pose formidable software evolution challenges to the software industry. Examples of these dynamics include the globalization of software markets, the massive increase of interconnected devices worldwide with the internet of things, and the digital transformation to large-scale cyber-physical systems. To tackle these challenges, researchers and practitioners have developed impressive bodies of knowledge, including adaptive and autonomic systems, run-time models, continuous software engineering, and the practice of combining software development and operations (i.e., DevOps). Despite the tremendous strides the software engineering community has made toward managing highly dynamic systems, software-intensive industries face major challenges to match the ever-increasing pace. To cope with this rapid rate at which operational contexts for software systems change, organizations are required to automate and expedite software evolution on both the development and operations sides.
The aim of our research is to develop continuous and autonomic methods, infrastructures, and tools to realize software evolution holistically. In this dissertation, we shift the prevalent autonomic computing paradigm and provide new perspectives and foci on integrating autonomic computing techniques into continuous software engineering practices, such as DevOps. Our methods and approaches are based on online experimentation and evolutionary optimization. Experimentation allows autonomic managers to make in- formed data-driven and explainable decisions and present evidence to stakeholders. As a result, autonomic managers contribute to the continuous and holistic evolution of design, configuration and deployment artifacts, providing guarantees on the validity, quality and effectiveness of enacted changes. Ultimately, our approach turns autonomic managers into online stakeholders whose contributions are subject to quality control.
Our contributions are threefold. We focus on effecting long-lasting software changes through self-management, self-improvement, and self-regulation. First, we propose a framework for continuous software evolution pipelines for bridging offline and online evolution processes. Our framework’s infrastructure captures run-time changes and turns them into configuration and deployment code updates. Our functional validation on cloud infrastructure management demonstrates its feasibility and soundness. It effectively contributes to eliminate technical debt from the Infrastructure-as-Code (IAC) life cycle, allowing development teams to embrace the benefits of IAC without sacrificing existing automation. Second, we provide a comprehensive implementation for the continuous IAC evolution pipeline. Third, we design a feedback loop to conduct experimentation-driven continuous exploration of design, configuration and deployment alternatives. Our experimental validation demonstrates its capacity to enrich the software architecture with additional components, and to optimize the computing cluster’s configuration, both aiming to reduce service latency. Our feedback loop frees DevOps engineers from incremental improvements, and allows them to focus on long-term mission-critical software evolution changes. Fourth, we define a reference architecture to support short-lived and long-lasting evolution actions at run-time. Our architecture incorporates short-term and long-term evolution as alternating autonomic operational modes. This approach keeps internal models relevant over prolonged system operation, thus reducing the need for additional maintenance. We demonstrate the usefulness of our research in case studies that guide the designs of cloud management systems and a Colombian city transportation system with historical data.
In summary, this dissertation presents a new approach on how to manage software continuity and continuous software improvement effectively. Our methods, infrastructures, and tools constitute a new platform for short-term and long-term continuous integration and software evolution strategies and processes for large-scale intelligent cyber-physical systems. This research is a significant contribution to the long-standing challenges of easing continuous integration and evolution tasks across the development-time and run-time boundary. Thus, we expand the vision of autonomic computing to support software engineering processes from development to production and back. This dissertation constitutes a new holistic approach to the challenges of continuous integration and evolution that strengthens the causalities in current processes and practices, especially from execution back to planning, design, and development. / Graduate
|
92 |
End-to-end security architecture for cloud computing environments / Architecture de sécurité de bout en bout et mécanismes d'autoprotection pour les environnements CloudWailly, Aurélien 30 September 2014 (has links)
La virtualisation des infrastructures est devenue un des enjeux majeurs dans la recherche, qui fournissent des consommations d'énergie moindres et des nouvelles opportunités. Face à de multiples menaces et des mécanismes de défense hétérogènes, l'approche autonomique propose une gestion simplifiée, robuste et plus efficace de la sécurité du cloud. Aujourd'hui, les solutions existantes s'adaptent difficilement. Il manque des politiques de sécurité flexibles, une défense multi-niveaux, des contrôles à granularité variable, ou encore une architecture de sécurité ouverte. Ce mémoire présente VESPA, une architecture d'autoprotection pour les infrastructures cloud. VESPA est construit autour de politiques qui peuvent réguler la sécurité à plusieurs niveaux. La coordination flexible entre les boucles d'autoprotection réalise un large spectre de stratégies de sécurité comme des détections et des réactions sur plusieurs niveaux. Une architecture extensible multi plans permet d'intégrer simplement des éléments déjà présents. Depuis peu, les attaques les plus critiques contre les infrastructures cloud visent la brique la plus sensible: l'hyperviseur. Le vecteur d'attaque principal est un pilote de périphérique mal confiné. Les mécanismes de défense mis en jeu sont statiques et difficile à gérer. Nous proposons une approche différente avec KungFuVisor, un canevas logiciel pour créer des hyperviseurs autoprotégés spécialisant l'architecture VESPA. Nous avons montré son application à trois types de protection différents : les attaques virales, la gestion hétérogène multi-domaines et l'hyperviseur. Ainsi la sécurité des infrastructures cloud peut être améliorée grâce à VESPA / Since several years the virtualization of infrastructures became one of the major research challenges, consuming less energy while delivering new services. However, many attacks hinder the global adoption of Cloud computing. Self-protection has recently raised growing interest as possible element of answer to the cloud computing infrastructure protection challenge. Yet, previous solutions fall at the last hurdle as they overlook key features of the cloud, by lack of flexible security policies, cross-layered defense, multiple control granularities, and open security architectures. This thesis presents VESPA, a self-protection architecture for cloud infrastructures. Flexible coordination between self-protection loops allows enforcing a rich spectrum of security strategies. A multi-plane extensible architecture also enables simple integration of commodity security components.Recently, some of the most powerful attacks against cloud computing infrastructures target the Virtual Machine Monitor (VMM). In many case, the main attack vector is a poorly confined device driver. Current architectures offer no protection against such attacks. This thesis proposes an altogether different approach by presenting KungFuVisor, derived from VESPA, a framework to build self-defending hypervisors. The result is a very flexible self-protection architecture, enabling to enforce dynamically a rich spectrum of remediation actions over different parts of the VMM, also facilitating defense strategy administration. We showed the application to three different protection scheme: virus infection, mobile clouds and hypervisor drivers. Indeed VESPA can enhance cloud infrastructure security
|
93 |
Gestion autonomique de performance, d'énergie et de qualité de service : Application aux réseaux filaires, réseaux de capteurs et grilles de calcul / Autonomic management of performance, energy consumption and quality of service : Application to wired networks, sensors networks and grid computing facilitiesSharrock, Rémi 08 December 2010 (has links)
La motivation principale de cette thèse est de faire face à l'accroissement de la complexité des systèmes informatiques, qui, dans un futur proche ( de l'ordre de quelques années) risque fort d'être le principal frein à leur évolution et à leur développement. Aujourd'hui la tendance s'inverse et le coût de gestion humaine dépasse le coût des infrastructures matérielles et logicielles. De plus, l'administration manuelle de grands systèmes (applications distribuées, réseaux de capteurs, équipements réseaux) est non seulement lente mais aussi sujette à de nombreuses erreurs humaines. Un des domaines de recherche émergent est celui de l'informatique autonomique qui a pour but de rendre ces systèmes auto-gérés. Nous proposons une approche qui permet de décrire des politiques de gestion autonomiques de haut niveau. Ces politiques permettent au système d'assurer quatre propriétés fondamentales de l'auto-gestion: l'auto-guérison, l'auto-configuration, l'auto-protection et l'auto-optimisation. Nos contributions portent sur la spécification de diagrammes de description de politiques de gestion autonomiques appelés (S)PDD "(Sensor) Policy Description Diagrams". Ces diagrammes sont implémentés dans le gestionnaire autonomique TUNe et l'approche a été validée sur de nombreux systèmes: simulation électromagnétique répartie sur grille de calcul, réseaux de capteurs SunSPOT, répartiteur de calcul DIET. Une deuxième partie présente une modélisation mathématique de l’auto-optimisation pour un « datacenter ». Nous introduisons un problème de minimisation d’un critère intégrant d’une part la consommation électrique des équipements du réseau du « datacenter » et d’autre part la qualité de service des applications déployées sur le « datacenter ». Une heuristique permet de prendre en compte les contraintes dues aux fonctions de routage utilisées. / The main challenge of this thesis is to cope with the growing complexity of IT systems. In a near future (mainly the next few years) this complexity will prevent new developments and system evolutions. Today the trend is reversing and the managing costs are overtaking the hardware and software costs. Moreover, the manual administration of large systems (distributed applications, sensor networks, and network equipment) is not only slow but error-prone. An emerging research field called autonomic computing tries to bring up self-managed systems. We introduce an approach that enable the description of high level autonomic management policies. These policies allow the system to ensure four fundamental properties for self-management: self-healing, self-self-configuring, self-protecting and self-optimizing. We specify autonomic management Policy Description Diagrams (PDD) and implement them in Toulouse University Network (TUNe). We validated our approach on many systems: electromagnetic simulations distributed on computer grids (grid’5000), wireless sensor networks with SunSPOTs and the computing scheduler DIET. A second part of this thesis presents a mathematical modeling for self-optimizing datacenters. We introduce a minimization problem with a criterion integrating both the electrical consumption of the datacenter networking equipment and the quality of service of the deployed applications. A heuristic takes into account the routing functions used on the network.
|
94 |
Phronesis, a diagnosis and recovery tool for system administrators / Phronesis, un outil de diagnostic et de résolution pour les administrateurs systèmesHaen, Christophe 24 October 2013 (has links)
Le système online de l'expérience LHCb repose sur une large infrastructure informatique hétérogène, composée de milliers de serveurs sur lesquels de nombreuses applications différentes sont exécutées. Certaines applications sont critiques (prise de données, contrôle du détecteur), d'autres secondaires (serveurs web). Administrer un tel système et s'assurer de son bon fonctionnement représente une lourde charge de travail pour une petite équipe d'experts. Des recherches ont été menées afin d'automatiser certaines tâches d'administration système. En 2001, IBM définit les « self-objectives » sensés conduire à l' «autonomic computing» (informatique autonome). Dans ce contexte, nous présentons un framework basé sur l'intelligence artificielle et l'apprentissage par renforcement pour surveiller et diagnostiquer de manière non intrusive les systèmes et logiciels basés sur Linux. De plus, notre approche d’expérience partagée ainsi que notre architecture suivant le paradigme Objet permettent d'augmenter considérablement la vitesse d'apprentissage et de corréler les problèmes. / The LHCb online system relies on a large and heterogeneous IT infrastructure made from thousands of servers on which many different applications are running. They run a great variety of tasks : critical ones such as data taking and secondary ones like web servers. The administration of such a system and making sure it is working properly represents a very important workload for the small expert-operator team. Research has been performed to try to automatize (some) system administration tasks, starting in 2001 when IBM defined the so-called “self objectives” supposed to lead to “autonomic computing”. In this context, we present a framework that makes use of artificial intelligence and machine learning to monitor and diagnose at a low level and in a non intrusive way Linux-based systems and their interaction with software. Moreover, the shared experience approach we use, coupled with an "object oriented paradigm" architecture increases a lot our learning speed, and highlight relations between problems.
|
95 |
Approche de gestion orientée service pour l'Internet des objets (IoT) considérant la Qualité de Service (QoS) / Service oriented approach for the Internet of Things (IoT) Quality of Service (QoS) awareGarzone, Guillaume 30 November 2018 (has links)
L’Internet des Objets (IoT) est déjà omniprésent aujourd’hui : domotique, bâtiments connectés ou ville intelligente, beaucoup d’initiatives et d’innovations sont en cours et à venir. Le nombre d’objets connectés ne cesse de croître à tel point que des milliards d’objets sont attendus dans un futur proche.L’approche de cette thèse met en place un système de gestion autonomique pour des systèmes à base d’objets connectés, en les combinant avec d’autres services comme par exemple des services météo accessibles sur internet. Les modèles proposés permettent une prise de décision autonome basée sur l’analyse d’évènements et la planification d’actions exécutées automatiquement. Des paramètres comme le temps d’exécution ou l’énergie consommée sont aussi considérés afin d’optimiser les choix d’actions à effectuer et de services utilisés. Un prototype concret a été réalisé dans un scénario de ville intelligente et de bus connectés dans le projet investissement d'avenir S2C2. / The Internet of Things (IoT) is already everywhere today: home automation, connected buildings or smart city, many initiatives and innovations are ongoing and yet to come. The number of connected objects continues to grow to the point that billions of objects are expected in the near future.The approach of this thesis sets up an autonomic management architecture for systems based on connected objects, combining them with other services such as weather services accessible on the Internet. The proposed models enable an autonomous decision making based on the analysis of events and the planning of actions executed automatically. Parameters such as execution time or consumed energy are also considered in order to optimize the choices of actions to be performed and of services used. A concrete prototype was realized in a smart city scenario with connected buses in the investment for future project: S2C2.
|
96 |
Um processo de desenvolvimento de software focado em sistemas distribuídos autonômicos / A software development process focused on autonomic distributed systemsPrado, Pedro Felipe do 20 June 2017 (has links)
Os Sistemas Distribuídos (SDs) tem apresentado uma crescente complexidade no seu gerenciamento, além de possuir a necessidade de garantir Qualidade de Serviço (QoS) aos seus usuários. A Computação Autonômica (CA) surge como uma forma de transformar os SDs em Sistemas Distribuídos Autonômicos (SDAs), com capacidade de auto-gerenciamento. Entretanto, não foi encontrado um processo de desenvolvimento de software, focado na criação de SDAs. Na grande maioria dos trabalhos relacionados, simplesmente é apresentado um SD, juntamente com qual aspecto da CA deseja-se implementar, a técnica usada e os resultados obtidos. Isso é apenas uma parte do desenvolvimento de um SDA, não abordando desde a definição dos requisitos até a manutenção do software. Mais importante, não mostra como tais requisitos podem ser formalizados e posteriormente solucionados por meio do auto-gerenciamento fornecido pela CA. Esta tese foca na proposta de um processo de desenvolvimento de software voltado para SDAs. Com esse objetivo, foram integradas diferentes áreas de conhecimento, compreendendo: Processo Unificado de Desenvolvimento de Software (PU), SDs, CA, Pesquisa Operacional (PO) e Avaliação de Desempenho de Sistemas Computacionais (ADSC). A prova de conceito foi feita por meio de três estudos de caso, todos focando-se em problemas NP-Difícil, são eles: (i) otimização off-line (problema da mochila com múltiplas escolhas), (ii) otimização online (problema da mochila com múltiplas escolhas) e (iii) criação do módulo planejador de um gerenciador autonômico, visando realizar o escalonamento de requisições (problema de atribuição generalizado). Os resultados do primeiro estudo de caso, mostram que é possível usar PO e ADSC para definir uma arquitetura de base para o SDA em questão, bem como reduzir o tamanho do espaço de busca quando o SDA estiver em execução. O segundo, prova que é possível garantir a QoS do SDA durante sua execução, usando a formalização fornecida pela PO e sua respectiva solução. O terceiro, prova que é possível usar a PO para formalizar o problema de auto-gerenciamento, bem como a ADSC para avaliar diferentes algoritmos ou modelos de arquitetura para o SDA. / Distributed Systems (DSs) have an increasing complexity and do not have their management, besides having a quality of service (QoS) to its users. Autonomic Computing (AC) emerges as a way of transforming the SDs into Autonomous Distributed Systems (ADSs), with a capacity for self-management. However, your software development process is focused on creating SDAs. In the vast majority of related works, simply an SD model, along with what aspect of the AC implement, a technique used and the results obtained. This is only a part of the development of an ADS, not approaching from an definition of requirements for a maintenance of software. More importantly, it does not show how such requirements can be formalized and subsequently solved through the self-management provided by AC. This proposal aims at a software development process for the DASs. To this end, different areas of knowledge were integrated, including: Unified Software Development Process (PU), SDs, CA, Operations Research (OR) and Computer Systems Performance Evaluation (CSPE). The proof of concept was made through three case studies, all focusing on NP-Hard problems, namely: (i) off-line optimization (problem of the backpack with multiple choices), (ii) (Problem of the backpack with multiple choices) and (iii) creation of the scheduling module of an autonomic manager, aiming to carry out the scheduling of requests (problem of generalized assignment). The results of the first case study show that it is possible to use OR and CSPE to define a base architecture for the DAS in question, as well as reduce the size of the search space when SDA is running. The second, proves that it is possible to guarantee the QoS of the DAS during its execution, using the formalization provided by the OR and its respective solution. The third, proves that it is possible to use the PO to formalize the self-management problem, as well as the ADSC to evaluate different algorithms or architecture models for the ADS.
|
97 |
Uma abordagem de predição da dinâmica comportamental de processos para prover autonomia a ambientes distribuídos / An approach to provide autonomy to distributed environments by predicting the dynamics of process behaviorDodonov, Evgueni 01 July 2009 (has links)
A evolução de sistemas distribuídos resultou em aumento significativo de complexidade para manutenção e gerenciamento, tornando pouco eficientes técnicas convencionais baseadas em intervenções manuais. Isso motivou pesquisas que deram origem ao paradigma de computação autônoma (Autonomic Computing), que provê aspectos de auto-configuração, auto-recuperação, auto-otimização e auto-proteção a fim de tornar sistemas auto-gerenciáveis. Nesse contexto, esta tese teve como objetivo prover autonomia a ambientes distribuídos, sem a necessidade de mudar o paradigma de programação e as aplicações de usuários. Para isso, propôs-se uma abordagem que emprega técnicas para compreensão e predição de dinâmicas comportamentais de processos, utilizando abordagens de sistemas dinâmicos, inteligência artificial e teoria do caos. Os estudos realizados no decorrer desta pesquisa demonstraram que, ao predizer padrões comportamentais, pode-se otimizar diversos aspectos de computação distribuída, suportando tomadas de decisão autônomas pelos ambientes. Para validar a abordagem proposta, foi desenvolvida uma política de escalonamento distribuído, denominada PredRoute, a qual utiliza o conhecimento sobre o comportamento de processos para otimizar, transparentemente, a alocação de recursos. Experimentos realizados demonstraram que essa política aumenta o desempenho em até 4 ordens de grandeza e apresenta baixo custo computacional, o que permite a sua adoção para escalonamento online de processos / The evolution of distributed systems resulted in a significant growth in management and support complexities, which uncovered the inefficiencies incurred by the usage of conventional management techniques, based in manual interventions. This, therefore, has motivated researches towards the concept of Autonomic Computing, which provides aspects of self-configuration, self-healing, self-optimization and self-protection, aiming at developing computer systems capable of self-management. In this context, this thesis was conceived with the goal of providing autonomy to distributed systems, without changing the programming paradigm or user applications. In order to reach this goal, we proposed an approach which employs techniques capable of modelling and predicting the dynamics of application behavior, using concepts introduced in dynamical systems, artificial intelligence, and chaos theory. The obtained results demonstrated that it is possible to optimize several aspects of distributed computing, providing support for autonomic computing capabilities to distributed environments. In order to validate the proposed approach, a distributed scheduling policy was developed, named PredRoute, which uses the knowledge about the process behavior to transparently optimize the resource allocation. Experimental results demonstrated that this policy can improve the system performance by up to a power of 4, and also requires a considerably low computational cost, which suggests its adoption for online process scheduling in distributed environments
|
98 |
Plateforme d’adaptation autonomique contextuelle à base de connaissances / Autonomic knowledge - based context-driven adaptation platformDa, Kelling 16 October 2014 (has links)
Le développement d’applications ubiquitaires est particulièrement complexe. Au-delà de l’aspect dynamique de telles applications, l’évolution de l’informatique vers la multiplication des terminaux mobiles ne facilite pas les choses. Une solution pour simplifier le développement et l’exploitation de telles applications est d’utiliser des plateformes logicielles dédiées au déploiement et à l’adaptation des applications et gérant l’hétérogénéité des périphériques. Elles permettent aux concepteurs de se focaliser sur les aspects métiers et facilitent la réutilisation. La gestion du contexte est un élément clé lorsque l’on souhaite réaliser des applications pervasives sensibles au contexte. Les informations contextuelles issues d’un grand nombre de sources distribuées différentes sont, généralement, des informations brutes qui, sans interprétation, peuvent être dénuées de sens. En se basant sur des ontologies, il est possible de construire des modèles sémantiques qui seront alimentés par ces informations brutes et ainsi non seulement d’augmenter leur niveau de représentation sémantique mais surtout de pouvoir les utiliser pour prendre des décisions automatiques d’adaptation d’applications basées sur le contexte au runtime. La démocratisation des périphériques conduit à ce qu’un usager dispose actuellement de plusieurs périphériques incluant postes fixes, téléphones, tablettes, box, etc. pour son usage personnel. Il est souhaitable que cet ensemble de ressources lui soit accessible en tout point et à tout moment. De même des ressources publiques (stockage, services, etc.) peuvent lui être offertes. En revanche, la protection de la vie privée et les risques d’intrusion ne peuvent être négligés. Notre proposition est de définir, pour chaque utilisateur, un domaine d’adaptation qui contient l’ensemble des ressources auxquelles il peut accéder sans limite. Ces ressources sont celles qu’il a accepté de rendre disponibles sur ses machines pour lui-même et celles que les autres utilisateurs ont accepté de partager. Ainsi la notion de contexte est liée à celle d’utilisateur et inclut la totalité des ressources auxquelles il a accès. C’est la totalité de ces ressources qui sera exploitée pour faire en sorte de lui offrir les services adaptés à ses choix, ses dispositifs, sa localisation, etc. Nous proposons un middleware de gestion de contexte Kali2Much afin de fournir des services dédiés à la gestion du contexte distribué sur le domaine. Ce middleware est accompagné du module Kali-Reason permettant la construction de chaînes de raisonnement en BPMN afin d’offrir des fonctionnalités de raisonnent sur les informations de contexte dans le but d’identifier des situations nécessitant éventuellement une reconfiguration soit de l’application soit de la plateforme elle-même. C’est ainsi qu’est introduit l’aspect autonomique lié à la prise de décision. Les situations ainsi détectées permettent d’identifier le moment où déclencher les adaptations ainsi que les services d’adaptation qu’il sera nécessaire de déclencher. La conséquence étant d’assurer la continuité de service et d’ainsi s’adapter en permanence au contexte du moment. Le travail de reconfiguration d’applications est confié au service Kali-Adapt dont le rôle est de mettre en oeuvre les adaptations par déploiement/redéploiement de services de l’application et/ou de la plateforme. Un prototype fonctionnel basé sur la plateforme Kalimucho vient valider ces propositions / The ubiquitous applications development is not a trivial task. Beyond the dynamic aspect of suchapplications, the evolution of computer science toward the proliferation of mobile devices does not make things easier. A solution to simplify the development and operation of such applications is to use software platforms dedicated to deployment and adaptation of applications and managing heterogeneous devices. Such platforms allow designers to focus on business issues and facilitate reuse. Context management is a key element for making context-aware pervasive applications. Contextual information comes from many different distributed sources. It is generally raw information with no interpretation. It may be meaningless. Based on ontologies, it is possible to construct semantic models that would be powered by the raw information. This does not only increase the level of semantic representation but it can also be used to make automatic decisions for adapting context-based applications at runtime. Devices’ democratization allows a user to have multiple devices including personal computer, mobile phones, tablets, box, etc. for his personal use. It is desirable that the set of resources will be available to him from everywhere and at any time. Similarly, public resources (storage, services, etc.) would also be accessible to him. However, protection of privacy and intrusion risks cannot be ignored. Our proposal is to define, for each user, an adaptation domain that contains all his resources. Users can access their resources without limits. Users can agree on sharing resources with other users. Thus the notion of context is related to the user and includes all the resources he can access. All these resources will be exploited to offer him services adapted to his preferences, his features, his location, etc.We propose a context management middleware Kali2Much to provide services dedicated to the management of distributed context on the domain. This middleware is accompanied by Kali-Reason module for building reasoning chains in BPMN. The reasoning chains provide context information reasoning functionality. They reason about context information in order to identify situations that might require a reconfiguration of the application or of the platform itself. Thus the autonomic aspect related to decision making is introduced. Situations detected allow to identify when there is a need to trigger adaptation. The consequence is to ensure continuity of service and thus constantly adapt to the current context. The reconfiguration applications work is dedicated to Kali-Adapt service whose role is to implement the adaptations deployment/redeployment of application services and/or platform. A working prototype based on Kalimucho-A platform validates the proposals.
|
99 |
Vers un environnement pour le déploiement logiciel autonomique / Towards an environment for autonomic software deploymentMatougui, Mohammed el Amine 21 November 2013 (has links)
Le déploiement de logiciels répartis dans des environnements à grande échelle et ouverts (tels les systèmes ubiquitaires, les systèmes mobiles et les systèmes P2P) est une problématique actuelle ouverte. Ces environnements sont distribués, hétérogènes et peuvent être de nature instable (dotés d’une topologie dynamique du réseau). Le déploiement dans ces environnements met en jeu un très grand nombre de machines, de liens réseau ainsi qu’un ensemble de contraintes de déploiement. Quelques solutions de déploiement existent aujourd’hui, mais ne sont exploitables que dans le cadre d’architectures figées et fiables. Dans la plupart des solutions, une personne en charge du déploiement doit décrire plus ou moins manuellement la topologie. En outre, la majorité de ces outils ne prennent pas en compte les problèmes dûs à la variabilité de la qualité de service du réseau, aux pannes des hôtes, aux défaillances des liens du réseau ou encore aux changements dynamiques de topologie, qui caractérisent les environnements ouverts. Dans ce mémoire, nous présentons les motivations de la réalisation d'une infrastructure de déploiement logiciel autonomique et les exigences sous-jacentes d'une telle plate-forme. Nous présentons un état de l’art du déploiement logiciel que nous analysons au regard du contexte visé. Ensuite, nous présentons notre contribution pour le déploiement autonomique. Notre proposition s'appuie sur une combinaison de technologies (composants logiciels, agents mobiles adaptables, intergiciel, langage dédié). Nous proposons j-ASD, un intergiciel qui exploite la complémentarité de ces technologies pour réaliser un déploiement logiciel autonomique. Le processus de déploiement contient trois étapes : description des contraintes de déploiement, résolution, et déploiement autonomique. Pour la première étape, nous avons défini un langage dédié (DSL) comme langage de haut niveau pour exprimer des contraintes de déploiement. Pour la deuxième, nous avons conçu une infrastructure répartie pour collecter les propriétés des sites cibles, ce qui permet de résoudre les contraintes de déploiement. Pour la troisième étape, nous proposons un intergiciel à base d’agents mobiles pour la réalisation et la supervision du déploiement autonomique. Enfin, nous donnons les éléments de conception du prototype que nous avons implémenté, ainsi que les résultats de certaines expérimentations pour montrer la validité de notre approche / Software deployment in large-scale and open distributed systems (such as ubiquitous systems, mobile systems and P2P systems) is still an open issue. These environments are distributed, heterogeneous and can be naturally unstable (fitted with a dynamic network topology). Deployment in such environments require the management of a large number of hosts, network links and deployment constraints. Existing distributed deployment solutions are usable only within static and reliable topologies of hosts, where a man in charge of the deployment has to describe more or less manually the topology. Moreover, majority of these tools do not take into account network and computer QoS variabilities, hosts crashes, network link failures and network topology changes, which characterize open and mobile environments. In this thesis, we discuss the motivations for an autonomic software deployment and the requirements underlying for such a platform. We carefully study and compare the existing work about software deployment. Then, we propose a middleware framework, designed to reduce the human cost for setting up software deployment and to deal with failure-prone and change-prone environments. We also propose an autonomic deployment process in three steps : deployment constraints description step, constraints resolution step and the autonomic deployment step. For the first step, we defined a high-level constraint-based dedicated language (DSL) as support for expressing deployment constraints. In the second step, we have designed a distributed infrastructure to collect target hosts properties used to solve deployment constraints. For the third step, we propose an agent-based system for establishing and maintaining software deployment. At last, we give an overview of our working prototype with some details on some experimental results
|
100 |
Méthodologie, modèles et paradigmes pour la conception d'une couche transport de nouvelle générationExpósito, Ernesto 09 December 2010 (has links) (PDF)
Les thèmes de recherche développés dans cette habilitation portent sur les méthodologies guidées par les modèles sémantiques et les paradigmes architecturaux nécessaires pour la conception et le développement d'une couche transport de nouvelle génération. Une première partie présente un état de l'art des protocoles de transport et introduit une méthodologie guidée par les modèles et une implémentation sous la forme d'un modèle sémantique pour la conception des protocoles de transport avancés. Une deuxième partie présente nos travaux relatifs à la conception (UML) et l'implémentation (JAVA) d'un protocole de transport orienté composants. Il en propose, en perspective, une extension suivant les paradigmes des architectures orientées services et basées composants. Une troisième partie présente nos contributions aux stratégies d'adaptabilité guidées par les modèles pour gérer l'adaptation comportementale et structurelle des protocoles de transport. En perspective, la conception et le développement d'une couche transport orientée composants et orientée services pour aboutir à des propriétés d'adaptabilité puis d'autonomie suivant le cadre de l'autonomic computing, et basés sur les ontologies, sont présentés.
|
Page generated in 0.1049 seconds