Spelling suggestions: "subject:"autonomique"" "subject:"autonomiques""
1 |
Déploiement de systèmes répartis multi-échelles : processus, langage et outils intergiciels / Deployment of distributed multiscale software : process, langage and middlewareBoujbel, Raja 30 January 2015 (has links)
Avec la multiplication des objets connectés, les systèmes multi-échelles sont de plus en plus répandus. Ces systèmes sont fortement répartis, hétérogènes, dynamiques et ouverts. Ils peuvent être composés de centaines de composants logiciels déployés sur des milliers d'appareils.Le déploiement est un processus complexe qui a pour objectif la mise à disposition puis le maintien en condition opérationnelle d'un système logiciel. Pour les systèmes multi-échelles, l'expression du plan de déploiement ainsi que la réalisation et la gestion du déploiement sont des tâches humainement impossibles du fait de l'hétérogénéité, de la dynamique, du nombre, mais aussi parce que le domaine de déploiement n'est pas forcément connu à l'avance. L'objectif de cette thèse est d'étudier et de proposer des solutions pour le déploiement de systèmes répartis multi-échelles. Nous proposons tout d'abord une mise à jour du vocabulaire relatif au déploiement, ainsi qu'un état de l'art sur le déploiement automatique des systèmes logiciels répartis. Le reste de la contribution réside dans la proposition : d'un processus complet pour le déploiement autonomique de systèmes multi-échelles ; d'un langage dédié (DSL), MuScADeL, qui simplifie la tâche du concepteur du déploiement et permet d'exprimer les propriétés de déploiement ainsi que des informations concernant la perception de l'état du domaine de déploiement ; d'un middleware, MuScADeM, qui assure la génération automatique d'un plan de déploiement en fonction de l'état du domaine, sa réalisation puis le maintien en condition opérationnelle du système. / Due to increased connected objects, multiscale systems are more and more widespread. Those systems are highly distributed, heterogeneous, dynamic and open. They can be composed of hundreds of software components deployed into thousands of devices. Deployment of software systems is a complex post-production process that consists in making software available for use and then keeping it operational. For multiscale systems, deployment plan expression just as deployment realization and management are tasks impossible for a human stakeholder because of heterogeneity, dynamics, number, and also because the deployment domain is not necessarily known in advance. The purpose of this thesis is to study and propose solutions for the deployment of distributed multiscale software systems. Firstly, we provide an up-to-date terminology and definitions related to software deployment, plus a state of the art on automatic deployment of distributed software systems. The rest of the contribution lies in the proposition of: a complete process for autonomic deployment of multiscale systems ; a domain specific language, MuScADeL, which simplifies the deployment conceptor task and allows the expression of deployment properties such as informations for the domain state probing ; and a middleware, MuScADeM, which insures the automatic generation of a deployment plan according the domain state, its realization and finally the maintenance in an operational condition of the system.
|
2 |
CEYLAN : Un canevas pour la création de gestionnaires autonomiques extensibles et dynamiques.Maurel, Yoann 01 December 2010 (has links) (PDF)
Les applications modernes sont de plus en plus dynamiques et hétérogènes. L'architecture des systèmes modernes n'est plus figée et prévisible. Il en va de même pour les besoins des utilisateurs, les capacités des ordinateurs et des réseaux, et les technologies utilisées. Il nous parait essentiel que les gestionnaires autonomiques soient dynamiquement adaptables et extensibles pour prendre en compte ces changements et faciliter la maintenance. L'objectif de notre travail est de définir et d'implanter un cadriciel, ou framework, facilitant le développement de gestionnaires autonomiques. Dans cet effort, nous visons à définir un modèle architectural permettant le développement de gestionnaires autonomiques modulaires, homogènes, souples, évolutifs, dynamiques et administrables. Un objectif important de ce travail est de clairement définir et séparer les concepts appartenant de façon générique à un gestionnaire autonomique et les aspects métier, développés au cas par cas. Le but est de permettre au experts domaine de se concentrer sur l'écriture des fonctions autonomiques et de ne pas gérer entièrement l'enchaînement et le contrôle de ces fonctions. Pour atteindre nos objectifs, nous avons tout d'abord défini la notion de tâche d'administration. Une tâche d'administration est une entité indépendante et spécialisée qui réalise une ou plusieurs fonctions d'administration. Le gestionnaire autonomique résulte de la combinaison opportuniste de ces tâches. A chaque instant, l'ensemble de tâches utilisées peut être modifié en fonction du contexte et des informations remontées par la plateforme. Des mécanismes de sélections permettent de gérer les conflits éventuels et permettent d'assurer une cohérence du comportement du gestionnaire. Nous avons ensuite défini une architecture de gestion de ces tâches permettant la combinaison opportuniste de ces tâches en fonction du contexte. Cette architecture a été implantée sous la forme d'un framework fondé sur la technologie des composants orientés services. Le framework que nous avons développé fournit un cadre pour l'intégration dynamique de fonctions autonomiques et pour leur gestion en fonction du contexte et de politiques d'administration, elles mêmes évolutives. En conclusion de ce travail, nous présentons une implémentation particulière sous la forme d'un modèle à composants de sorte que le travail des développeurs est facilité et que la réutilisation est favorisée. Enfin nous donnons un exemple d'application développée au dessus de ce framework.
|
3 |
Mise en oeuvre d’une plateforme de gestion et de dissémination des connaissances pour des réseaux autonomiques / A knowledge management and dissemination platform for autonomic networksSouihi, Sami 03 December 2013 (has links)
La croissance du réseau Internet, l'émergence de nouveaux besoins par l'avènement des terminaux dits intelligents (smartphones, tablettes tactiles, etc.) et l'apparition de nouvelles applications sous-jacentes induisent de nombreuses mutations dans l'usage de plus en plus massif des technologies de l'information dans notre vie quotidienne et dans tous les secteurs d'activités. Ces nouveaux usages ont nécessité de repenser le fondement même de l'architecture réseau qui a eu pour conséquence l'émergence de nouveaux concepts basés sur une vue "centrée sur l'usage" en lieu et place d'une vue "centrée sur le réseau". De fait, les mécanismes de contrôle du réseau de transport doivent non seulement exploiter les informations relatives aux plans de données, de contrôle et de gestion, mais aussi les connaissances, acquises ou apprises par inférence déductive ou inductive, sur l'état courant du réseau (trafic, ressources, rendu de l'application, etc.) de manière à accélérer la prise de décision par les éléments de contrôle du réseau. Les travaux faits dans le cadre de cette thèse concernent ce dernier aspect et rejoignent plus généralement ceux tournés sur les réseaux autonomiques. Il s'agit dans cette thèse de mettre en oeuvre des méthodes relatives à la gestion, à la distribution et à l'exploitation des connaissances nécessaires au bon fonctionnement du réseau de transport. Le plan de connaissances mis en oeuvre ici se base à la fois sur l'idée de développer une gestion au sein d'une structure hiérarchisée et adaptative où seuls certains noeuds sélectionnés sont en charge de la dissémination des connaissances et l'idée de relier ces noeuds au travers d'un ensemble de réseaux couvrants spécialisés permettant de faciliter l'exploitation de ces connaissances. Comparée aux plateformes traditionnellement utilisées, celle développée dans le cadre de cette thèse montre clairement l'intérêt des algorithmes élaborés au regard des temps d'accès, de distribution et de partage de charge entre les noeuds de contrôle pour la gestion des connaissances. A des fins de validation, cette plateforme a été utilisée dans deux exemples d'application: le Cloud computing et les smartgrids / The growth of the Internet, the emergence of new needs expressed by the advent of smart devices ( smartphones, touchpads , etc. ) and the development of new underlying applications induce many changes in the use of information technology in our everyday life and in all sectors. This new use that match new needs required to rethink the foundation of the network architecture itself, which has resulted in the emergence of new concepts based on a "use-centeric" view instead of a "network-centric" view. In fact, the control mechanisms of the transmission network must not only exploit the information on data, control and management planes, but also the knowledge acquired or learned by inductive or deductive inference on the current state of the network (traffic, resources, the rendering of the application, etc.) to accelerate decision making by the control elements of the network. This thesis is dealing with this latter aspect, which makes it consistent with work done on autonomic networks. It is about conceiving and implementing methods for the management, distribution and exploitation of knowledge necessary for the proper functioning of the transmission network. The knowledge plane that we implemented is based on both the idea of developing a management within an adaptive hierarchical structure where only some selected nodes are responsible for the dissemination of knowledge and the idea of linking these nodes through a spanning set of specialized networks to facilitate the exploitation of this knowledge. Compared to traditionally used platforms, the one developed in this thesis clearly shows the interest of the developed algorithms in terms of access time, distribution and load sharing between the control nodes for knowledge management. For validation purposes, our platform was tested on two application examples : Cloud computing and smart grids
|
4 |
Modèle à Composant pour Plate-forme Autonomique / Component model for Autonomic-Ready plateformBourret, Pierre 24 October 2014 (has links)
Ces dernières décennies, les environnements informatiques sont devenus de plus en plus complexes, parsemés de dispositifs miniatures et sophistiqués gérant la mobilité et communiquant sans fil. L'informatique ubiquitaire, telle qu'imaginée par Mark Weiser en 1991, favorise l'intégration transparente de ces environnements avec le monde réel pour offrir de nouveaux types d'applications. La conception de programmes pour environnements ubiquitaires soulève cependant de nombreux défis, en particulier le problème de rendre une application auto-adaptable dans un contexte en constante évolution. Parallèlement, alors que la taille et la complexité de systèmes plus classiques ont explosé, IBM a proposé le concept d'informatique autonomique afin de réduire le fardeau de l'administration de systèmes imposants et largement disséminés. Cette thèse se base sur une approche où les applications sont conçues sous la forme de composants utilisant et fournissant des services. Un modèle de développement fondé sur une architecture de référence pour la conception d'applications ubiquitaires est proposée, fortement inspiré des recherches dans le domaine de l'informatique autonomique. Dans ce modèle, les applications sont prises en charge par une hiérarchie de gestionnaires autonomiques, qui appuient leurs décisions sur une représentation centrale du système. La mise en œuvre de cette contribution requiert de rendre la couche d'exécution sous-jacente plus réflexive, en vue de supporter de nouveaux types d'adaptations à l'exécution. Nous proposons également un modèle qui décrit le système à l'exécution et reflète sa dynamique de manière uniforme, suivant les principes du style d'architecture REST. Les applications reposant sur ce cette couche d'exécution réflexive et représentées par ce modèle sont qualifiées d'Autonomic-Ready. L'implantation de nos propositions ont été intégrées dans le modèle à composant orienté service Apache Felix iPOJO. Le modèle de représentation du système, nommé Everest, est publié en tant que sous-projet d'OW2 Chameleon. Ces propositions ont été évaluées et validées par la conception et l'exécution d'une application ubiquitaire sur iCASA, un environnement de développement et de simulation. / In the last decades, computing environments have been getting more and more complex, filled with miniaturized and sophisticated devices that can handle mobility and wireless communications. Ubiquitous computing, as envisioned by Mark Weiser in 1991, promote the seamless integration of those computing environments with the real world in order to offer new kinds of applications. However, writing software for ubiquitous environments raises numerous challenges, mainly the problem of how to make an application adapt itself in an ever changing context. From another perspective, as classical softwares were growing in size and complexity, IBM proposed the concept of autonomic computing to help to contain the burden of administering massive and numerous systems. This PhD thesis is based on an approach where applications are designed in terms of components using and providing services. A development model based on a reference architecture for the conception of ubiquitous applications is proposed, greatly inspired by researches in the autonomic computing field. In this model, the application is managed by a hierarchy of autonomic managers, that base their decisions on a central representation of the system. The fulfilment of this contribution requires to make the underlying middleware more reflexive, in order to support new kinds of runtime adaptations. We also provide a model that depicts the running system and its dynamics in a uniform way, based on REST principles. Applications relying on this reflexive middleware and represented by this model are what we called Autonomic-Ready. Implementations of our proposals have been integrated in the Apache Felix iPOJO service-oriented component model. The system representation, named Everest, is provided as a OW2 Chameleon subproject. Validation is based on the iCASA pervasive environment development and simulation environment.
|
5 |
Adaptation autonomique d'applications pervasives dirigée par les architectures / Autonomic adaptation of pervasive applications using architecturesGandrille, Etienne 12 December 2014 (has links)
La problématique d'adaptation autonomique prend de plus en plus d'importance dans l'administration des applications modernes, notamment pervasives. En effet, la composition entre les différentes ressources de l'application (dispositifs physiques, services et applications tierces) doit souvent être dynamique, et s'adapter automatiquement et rapidement aux évolutions du contexte d'exécution. Pour cela, les composants orientés services offrent un support à l'adaptation au niveau architectural. Cependant, ils ne permettent pas d'exprimer l'ensemble des contraintes de conception qui doivent être garanties lors de l'exécution du système. Pour lever cette limite, cette thèse a modélisé les architectures de conception, de déploiement et de l'exécution. De plus, elle a établi des liens entre celle-ci et proposé des algorithmes afin de vérifier la validité d'une architecture de l'exécution par rapport à son architecture de conception. Cela nous a conduits à considérer de près le cycle de vie des composants et à définir un ensemble de concepts afin de les faire participer à des architectures supportant la variabilité. Notons que cette formalisation peut être exploitée aussi bien par un administrateur humain, que par un gestionnaire autonomique qui voit ainsi sa base de connaissances augmentée et structurée. L'implantation a donné lieu à la réalisation d'une base de connaissance, mise à disposition d'un atelier (Cilia IDE) de conception, déploiement et supervision d'applications dynamiques, ainsi que d'un gestionnaire autonomique capable de modifier la structure d'une application pervasive. Cette thèse a été validée à l'aide d'une application pervasive nommée <<~Actimétrie~>>, développée dans le cadre du projet FUI~MEDICAL. / The autonomic adaptation of software application is becoming increasingly important in many domains, including pervasive field. Indeed, the integration fo different application resources (physical devices, services and third party applications) often needs to be dynamic and should adapt rapidly and automatically to changes in the execution context. To that end, service-oriented components offer support for adaptation at the architectural level. However, they do not allow the formalisation of all the design constraints that must be guaranteed during the execution of the system. To overcome this limitation, this thesis modeled the design, deployment and runtime architectures. Also, it proposes to establish links between them and has developed algorithms to check the validity of an execution architecture with respect to its architectural design. This led us to consider the entire life cycle of components and to define a set of concepts to be included in architectures supporting variability. This formalisation can be exploited both by a human administrator and by an autonomic manager that has its knowledge base increased and structured. The implementation resulted in the realization of a knowledge base, providing a studio (Cilia IDE) for the design, deployment and supervision of dynamic applications, as well as an autonomic manager that can update the structure of pervasive applications. This thesis has been validated using a pervasive application called “Actimetry”, developed in the FUI~MEDICAL project.
|
6 |
Architectures génériques pour des systèmes autonomiques multi-objectifs ouverts : application aux micro-grilles intelligentes / Generic architectures for open, multi-objective autonomic systems : application to smart micro-gridsFrey, Sylvain 06 December 2013 (has links)
L’autonomicité - la capacité des systèmes à se gérer eux-mêmes - est une qualité nécessaire pour parvenir à contrôler des systèmes complexes, c’est à dire des systèmes ouverts, à grande échelle, dynamiques, composés de sous-systèmes tiers hétérogènes et suivant de multiples objectifs, éventuellement en conflit. Dans cette thèse, nous cherchons à fournir des supports génériques et réutilisables pour la conception de tels systèmes autonomiques complexes. Nous proposons une formalisation des objectifs de gestion, une architecture générique pour la conception de systèmes autonomiques multi-objectifs et adaptables, et des organisations génériques pour l’intégration de tels systèmes autonomiques. Nous appliquons nôtre approche au cas d’utilisation des réseaux électriques intelligents, qui sont un parfait exemple de complexité. Nous présentons une plateforme de simulation que nous avons développée et via laquelle nous illustrons nôtre approche, au travers de plusieurs scénarios de simulation. / Autonomic features, i.e. the capability of systems to manage themselves, are necessary to control complex systems, i.e. systems that are open, large scale, dynamic, comprise heterogeneous third-party sub-systems and follow multiple, sometimes conflicting objectives. In this thesis, we aim to provide generic reusable supports for designing complex autonomic systems. We propose a formalisation of management objectives, a generic architecture for designingadaptable multi-objective autonomic systems, and generic organisations integrating such autonomic systems.We apply our approach to the concrete case of smart micro-grids which is a relevant example of such complexity. We present a simulation platform we developped and illustrate our approach via several simulation scenarios.
|
7 |
Generic autonomic service management for component-based applications / Gestion autonomique générique des services pour les applications à base de composantsBelhaj, Nabila 25 September 2018 (has links)
Au cours de la dernière décennie, la complexité des applications a considérablement évolué afin de répondre aux besoins métiers émergeants. Leur conception implique une composition distribuée de composants logiciels. Ces applications fournissent des services à travers les interactions métiers maintenues par leurs composants. De telles applications sont intrinsèquement en évolution dynamique en raison de la dynamicité de leurs contextes. En effet, elles évoluent dans des environnements qui changent tout en présentant des conditions très dynamiques durant leur cycle de vie d’exécution. De tels contextes représentent une lourde charge pour les développeurs aussi bien pour leurs tâches de conception que de gestion. Cela a motivé́ le besoin de renforcer l’autonomie de gestion des applications pour les rendre moins dépendantes de l’intervention humaine en utilisant les principes de l’Informatique Autonomique. Les Systèmes Informatiques Autonomes (SIA) impliquent l’utilisation des boucles autonomiques, dédiées aux systèmes afin de les aider à accomplir leurs tâches de gestion. Ces boucles ont pour objectif d’adapter leurs systèmes à la dynamicité de leurs contextes, en se basant sur une logique d’adaptation intégrée. Cette logique est souvent donnée par des règles statiques codées manuellement. La construction de ces règles demande beaucoup de temps tout en exigeant une bonne expertise. En fait, elles nécessitent une compréhension approfondie de la dynamicité du système afin de prédire les adaptations précises à apporter à celui-ci. Par ailleurs, une telle logique ne peut envisager tous les scénarios d’adaptation possibles, donc, ne sera pas en mesure de prendre en compte des adaptations pour des situations précédemment inconnues. Les SIA devraient donc être assez sophistiqués afin de pouvoir faire face à la nature dynamique de leurs contextes et de pouvoir apprendre par eux-mêmes afin d’agir correctement dans des situations inconnues. Les SIA devraient également être capables d’apprendre de leur propre expérience passée afin de modifier leur logique d’adaptation en fonction de la dynamicité de leurs contextes. Dans ce manuscrit, nous abordons les lacunes décrites en utilisant les techniques d’Apprentissage par Renforcement (AR) afin de construire notre logique d’adaptation. Cependant, les approches fondées sur l’AR sont connues pour leur mauvaise performance lors des premières phases d’apprentissage. Cette mauvaise performance entrave leur utilisation dans le monde réel des systèmes déployés. Par conséquent, nous avons amélioré cette logique d’adaptation avec des capacités d’apprentissage plus performantes avec une approche AR en multi-pas. Notre objectif est d’optimiser la performance de l’apprentissage et de le rendre plus efficace et plus rapide, en particulier durant les premières phases d’apprentissage. Nous avons aussi proposé́ un cadriciel générique visant à aider les développeurs dans la construction d’applications auto-adaptatives. Nous avons donc proposé de transformer des applications existantes en ajoutant des capacités d’autonomie et d’apprentissage à leurs composants. La transformation consiste en l’encapsulation des composants dans des conteneurs autonomiques pour les doter du comportement auto-adaptatif nécessaire. Notre objectif est d’alléger la charge des tâches de gestion des développeurs et de leur permettre de se concentrer plus sur la logique métier de leurs applications. Les solutions proposées sont destinées à être génériques, granulaires et basées sur un standard connu, à savoir l’Architecture de Composant de Service. Enfin, nos propositions ont été évaluées et validées avec des résultats expérimentaux. Ils ont démontré leur efficacité en montrant un ajustement dynamique des applications transformées face aux dynamicités de leurs contextes en un temps beaucoup plus court comparé aux approches existantes / During the past decade, the complexity of applications has significantly scaled to satisfy the emerging business needs. Their design entails a composition of distributed and interacting software components. They provide services by means of the business interactions maintained by their components. Such applications are inherently in a dynamic evolution due to their context dynamics. Indeed, they evolve in changing environments while exhibiting highly dynamic conditions during their execution life-cycle (e.g., their load, availability, performance, etc.). Such contexts have burdened the applications developers with their design and management tasks. Subsequently, motivated the need to enforce the autonomy of their management to be less dependent on human interventions with the Autonomic Computing principles. Autonomic Computing Systems (ACS) implies the usage of autonomic loops, dedicated to help the system to achieve its management tasks. These loops main role is to adapt their associated systems to the dynamic of their contexts by acting upon an embedded adaptation logic. Most of time, this logic is given by static hand-coded rules, often concern-specific and potentially error-prone. It is undoubtedly time and effort-consuming while demanding a costly expertise. Actually, it requires a thorough understanding of the system design and dynamics to predict the accurate adaptations to bring to the system. Furthermore, such logic cannot envisage all the possible adaptation scenarios, hence, not able to take appropriate adaptations for previously unknown situations. ACS should be sophisticated enough to cope with the dynamic nature of their contexts and be able to learn on their own to properly act in unknown situations. They should also be able to learn from their past experiences and modify their adaptation logic according to their context dynamics. In this thesis manuscript, we address the described shortcomings by using Reinforcement Learning (RL) techniques to build our adaptation logic. Nevertheless, RL-based approaches are known for their poor performance during the early stages of learning. This poor performance hinders their usage in real-world deployed systems. Accordingly, we enhanced the adaptation logic with sophisticated and better-performing learning abilities with a multi-step RL approach. Our main objective is to optimize the learning performance and render it timely-efficient which considerably improves the ACS performance even during the beginning of learning phase. Thereafter, we pushed further our work by proposing a generic framework aimed to support the application developers in building self-adaptive applications. We proposed to transform existing applications by dynamically adding autonomic and learning abilities to their components. The transformation entails the encapsulation of components into autonomic containers to provide them with the needed self-adaptive behavior. The objective is to alleviate the burden of management tasks on the developers and let them focus on the business logic of their applications. The proposed solutions are intended to be generic, granular and based on a well known standard (i.e., Service Component Architecture). Finally, our proposals were evaluated and validated with experimental results. They demonstrated their effectiveness by showing a dynamic adjustment to the transformed application to its context changes in a shorter time as compared to existing approaches
|
8 |
Rôle des tachykinines et de leurs récepteurs dans la régulation centrale de la fonction cardiovasculaire chez le rat normotendu et hypertenduLessard, Andrée January 2003 (has links)
Thèse numérisée par la Direction des bibliothèques de l'Université de Montréal.
|
9 |
Gestion autonomique d'applications dynamiques sûres et résilientes / Autonomic Management of Reliable and Resilient Dynamic ApplicationsCalmant, Thomas 19 October 2015 (has links)
Les architectures orientées services (SOA) sont considérées comme le moyen le plus avancé pour réaliser et intégrer rapidement des applications modulaires et flexibles.Dans ce domaine, les plates-formes SOA à disposition des développeurs et des architectes de produits logiciels sont multiples; les deux plus évoluées d'entre elles étant SCA et OSGi.Une application s'appuyant sur l'une de ces plates-formes peut ainsi être assemblée avec le minimum de composants nécessaires à la réalisation de ses tâches, afin de réduire sa consommation de ressources et d'augmenter sa maintenabilité.De plus, ces plates-formes autorisent l'ajout de composants greffons qui n'étaient pas connus lors des phases initiales de la réalisation du produit.Elles permettent ainsi de mettre à jour, d'étendre et d'adapter continuellement les fonctionnalités du produit de base ou des services techniques nécessaires à sa mise en production, sans interruption de service.Ces capacités sont notamment utilisées dans le cadre du paradigme DevOps et, plus généralement, pour mettre en œuvre le déploiement continu d'artefacts.Cependant, l'extensibilité offerte par ces plates-formes peut diminuer la fiabilité globale du système: une tendance forte pour développer un produit est l'assemblage de composants provenant de tierces-parties. De tels composants peuvent être d'une qualité inconnue voire douteuse.En cas d'erreur, de détérioration des performances, etc., il est difficile de diagnostiquer les composants ou combinaisons de composants incriminés.Il devient indispensable pour le producteur d'un logiciel de déterminer la responsabilité des différents composants impliqués dans un dysfonctionnement.Cette thèse a pour objectif de fournir une plate-forme, Cohorte, permettant de concevoir et d'exécuter des produits logiciels extensibles et résilients aux dysfonctionnements d'extensions non qualifiées.Les composants de tels produits pourront être développés dans différents langages de programmation et être déployés (ajout, mise à jour et retrait) en continu et sans interruption de service.Notre proposition adopte pour principe d'isoler les composants considérés comme instables ou peu sûrs.Le choix des composants à isoler peut être décidé par l'équipe de développement et l'équipe opérationnelle, à partir de leur expertise, ou bien déterminé à partir d'une combinaison d'indicateurs.Ces derniers évoluent au cours du temps pour refléter la fiabilité des composants.Par exemple, des composants peuvent être considérés fiables après une période de quarantaine; une mise à jour peut entraîner la dégradation de leur stabilité, etc..Par conséquent, il est indispensable de remettre en cause les choix initiaux dans l'isolation des composants afin, dans le premier cas, de limiter le coup des communications entre composants et, dans le deuxième cas, de maintenir le niveau de fiabilité du noyau critique du produit. / Service-Oriented architectures (SOA) are considered the most advanced way to develop and integrate modular and flexible applications.There are many SOA platforms available for software developers and architects; the most evolved of them being SCA and OSGi.An application based on one of these platforms can be assembled with only the components required for the execution of its tasks, which helps decreasing its resource consumption and increasing its maintainability.Furthermore, those platforms allow adding plug-ins at runtime, even if they were not known during the early stages of the development of the application.Thus, they allow updating, extending and adapting the features of the base product or of the technical services required for its execution, continuously and without outage.Those capabilities are applied in the DevOps paradigm and, more generally, to implement the continuous deployment of artifacts.However, the extensibility provided by those platforms can decrease the overall reliability of the system: a strong tendency in software development is the assembly of third-parties components.Such components may be of unknown or even questionable quality.In case of error, deterioration of performance, ... it is difficult to identify the implicated components or combinations of components.It becomes essential for the software producer to determine the responsibility of the various components involved in a malfunction.This thesis aims to provide a platform, Cohorte, to design and implement scalable software products, resilient to malfunctions of unqualified extensions.The components of such products may be developed in various programming languages and be deployed continuously (adding, updating and withdrawal) and without interruption of service.Our proposal adopts the principle of isolating the components considered unstable or insecure.The choice of the components to be isolated may be decided by the development team and the operational team, from their expertise, or determined from a combination of indicators.The latters evolve over time to reflect the reliability of components.For example, components can be considered reliable after a quarantine period; an update may result in deterioration of stability, ...Therefore, it is essential to question the initial choices in isolating components to limit, in the first case, the scope of communications between components and, in the second case, to maintain the reliability of the critical core of the product.
|
10 |
Elasticité dans le cloud computing / Elasticity in the CloudEl Rheddane, Ahmed 25 February 2015 (has links)
Les charges réelles d'applications sont souvent dynamiques. Ainsi, le dimensionnement statique de ressources est voué soit au gaspillage, s'il est basé sur une estimation du pire scénario, soit à la dégradation de performance, s'il est basé sur la charge moyenne. Grâce au modèle du cloud computing, les ressources peuvent être allouées à la demande et le dimensionnement adapté à la variation de la charge. Cependant, après avoir exploré les travaux existants, nous avons trouvé que la plupart des outils d'élasticité sont trop génériques et ne parviennent pas à répondre aux besoins spécifiques d'applications particulières. Dans le cadre de ce travail, nous utilisons des boucles autonomiques et diverses techniques d'élasticité afin de rendre élastiques différents types d'applications, à savoir un service de consolidation, un intergiciel de messagerie et une plateforme de traitement de données en temps-réel. Ces solutions élastiques ont été réalisées à partir d'applications libres et leur évaluation montre qu'ils permettent d'économiser les ressources utilisées avec un surcoût minimal. / Real world workloads are often dynamic. This makes the static scaling of resourcesfatally result in either the waste of resources, if it is based on the estimatedworst case scenario, or the degradation of performance if it is based on the averageworkload. Thanks to the cloud computing model, resources can be provisioned ondemand and scaling can be adapted to the variations of the workload thus achievingelasticity. However, after exploring the existing works, we find that most elasticityframeworks are too generic and fail to meet the specific needs of particularapplications. In this work, we use autonomic loops along with various elasticitytechniques in order to render different types of applications elastic, namelya consolidation service, message-oriented middleware and a stream processingplatform. These elastic solutions have been implemented based on open-sourceapplications and their evaluation shows that they enable resources’ economy withminimal overhead.
|
Page generated in 0.0479 seconds