Spelling suggestions: "subject:"autosomique"" "subject:"autonomia""
11 |
Robusta : une approche pour la construction d'applications dynamiquesRudametkin Ivey, Walter Andrew 21 February 2013 (has links) (PDF)
Les domaines de recherche actuels, tels que l'informatique ubiquitaire et l'informatique en nuage (cloud computing), considèrent que ces environnements d'exécution sont en changement continue. Les applications dynamiques, où les composants peuvent être ajoutés et supprimés pendant l'exécution, permettent à un logiciel de s'adapter et de s'ajuster à l'évolution des environnements, et de tenir compte de l'évolution du logiciel. Malheureusement, les applications dynamiques soulèvent des questions de conception et de développement qui n'ont pas encore été pleinement explorées.Dans cette thèse, nous montrons que le dynamisme est une préoccupation transversale qui rompt avec un grand nombre d'hypothèses que les développeurs d'applications classiques sont autorisés à prendre. Le dynamisme affecte profondément la conception et développement de logiciels. S'il n'est pas manipulé correctement, le dynamisme peut " silencieusement " corrompre l'application. De plus, l'écriture d'applications dynamiques est complexe et sujette à erreur. Et compte tenu du niveau de complexité et de l'impact du dynamisme sur le processus du développement, le logiciel ne peut pas devenir dynamique sans (de large) modification et le dynamisme ne peut pas être totalement transparent (bien que beaucoup de celui-ci peut souvent être externalisées ou automatisées).Ce travail a pour but d'offrir à l'architecte logiciel le contrôle sur le niveau, la nature et la granularité du dynamisme qui est nécessaire dans les applications dynamiques. Cela permet aux architectes et aux développeurs de choisir les zones de l'application où les efforts de programmation des composants dynamiques seront investis, en évitant le coût et la complexité de rendre tous les composants dynamiques. L'idée est de permettre aux architectes de déterminer l'équilibre entre les efforts à fournir et le niveau de dynamisme requis pour les besoins de l'application.
|
12 |
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.
|
13 |
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
|
14 |
Un système multi-agents à base de composants pour l’adaptation autonomique au contexte – Application à la domotique / Component based multi-agent system for autonomic adaptation to the context - Application to home automationHamoui, Mohamad Fady 13 December 2010 (has links)
Les environnements domotiques sont des environnements ubiquitaires dans lesquels des équipements domestiques, disséminés dans une habitation, fournissent des services utilisables à distance au travers d'un réseau. Des systèmes domotiques sont proposés pour permettre aux utilisateurs de contrôler les équipements en fonction de leurs besoins.Idéalement, ces systèmes orchestrent l'exécution des services fournis par les équipements pour réaliser des services complexes. Mieux encore, ces systèmes doivent s'adapter à la variété des environnements en termes d'équipements et des besoins des utilisateurs. Ils doivent également pouvoir s'adapter dynamiquement, si possible de manière autonome, au changement de leur contexte d'exécution (apparition ou disparition d'un équipement, évolution des besoins).Dans cette thèse, nous apportons une réponse à cette problématique avec SAASHA, un système domotique multi-agents à base de composants. La combinaison de ses deux paradigmes permet de gérer l'adaptation à trois niveaux : présentation (interfaces utilisateur),organisation (architecture du système) et comportement (architecture interne des agents).Les agents perçoivent le contexte et ses changements. Les utilisateurs se voient proposer une vue dynamique du contexte leur permettant de définir des scénarios personnalisés sous forme de règles. Les agents se répartissent les rôles pour réaliser les scénarios. Ils modifient dynamiquement leur architecture interne grâce à la génération, au déploiement et à l'assemblage de composants pour se doter de nouveaux comportements de contrôle des équipements et des scénarios. Les agents collaborent ainsi pour exécuter les scénarios. En cas de changement, ces trois niveaux d'adaptation sont mis en oeuvre de manière dynamique et autonome pour maintenir la continuité de service. Un prototype de SAASHA, basé sur les standards industriels UPnP et OSGi, a été développé pour évaluer la faisabilité de notre proposition. / Home automation environments are ubiquitous environments where domestic devices, scattered throughout a home, provide services that can be used remotely over a network. Home automation systems are proposed to enable the users of controlling the devices according to their needs. Ideally, these systems orchestrate the execution of the services provided by the devices to achieve complex services. Even more, these systems must adapt to the variety of environments in terms of devices and users needs. They must also be able to adapt dynamically, if possible in an autonomous manner, to the changes of their execution context (appearance or disappearance of a device, changing needs).In this thesis, we provide an answer to this problematic with SAASHA, a multi-agent home automation system based on components. The combination of these two paradigms enables managing the adaptation on three levels: presentation (user interface), organization (system architecture) and behavior (internal architecture of agents). The agents perceive their context and its changes. The Users are offered a dynamic view of the context allowing them to define custom scenarios as rules. The agents divide the roles among them to realize the scenarios. They modify dynamically their internal architecture throughout the generation, deployment and assembly of components to adopt new device control behaviors and scenarios. The agents collaborate to execute the scenarios. In case of a change, these three levels of adaptation are updated dynamically and autonomously to maintain the service continuity. A SAASHA prototype, based on UPnP and OSGi industry standards, has been developed to assess the feasibility of our proposal.
|
15 |
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.
|
16 |
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.
|
17 |
Robusta : Une approche pour la construction d'applications dynamiquesRudametkin, Walter 21 February 2013 (has links) (PDF)
Les domaines de recherche actuels, tels que l'informatique ubiquitaire et l'informatique en nuage (cloud computing), considèrent que ces environnements d'exécution sont en changement continue. Les applications dynamiques ; où les composants peuvent être ajoutés, supprimés pendant l'exécution, permettent a un logiciel de s'adapter et de s'ajuster à l'évolution des environnements, et de tenir compte de l'évolution du logiciel. Malheureusement, les applications dynamiques soulèvent des questions de conception et de développement qui n'ont pas encore été pleinement explorées. <br> Dans cette thèse, nous montrons que le dynamisme est une préoccupation transversale qui rompt avec un grand nombre d'hypothèses que les développeurs d'applications classiques sont autorisés à prendre. Le dynamisme affecte profondément la conception et développement de logiciels. S'il n'est pas manipulé correctement, le dynamisme peut " silencieusement " corrompre l'application. De plus, l'écriture d'applications dynamiques est complexe et sujette à erreur. Et compte tenu du niveau de complexité et de l'impact du dynamisme sur le processus du développement, le logiciel ne peut pas devenir dynamique sans (de large) modification et le dynamisme ne peut pas être totalement transparent (bien que beaucoup de celui-ci peut souvent être externalisées ou automatisées). <br> Ce travail a pour but d'offrir à l'architecte logiciel le contrôle sur le niveau, la nature et la granularité du dynamisme qui est nécessaire dans les applications dynamiques. Cela permet aux architectes et aux développeurs de choisir les zones de l'application où les efforts de programmation des composants dynamiques seront investis, en évitant le coût et la complexité de rendre tous les composants dynamiques. L'idée est de permettre aux architectes de déterminer l'équilibre entre les efforts à fournir et le niveau de dynamisme requis pour les besoins de l'application.
|
18 |
Support intergiciel pour la conception et le déploiement adaptatifs fiables, application aux bâtiments intelligents / Middleware support for adaptive reliable design and deployment, application to building automationSylla, Adja Ndeye 18 December 2017 (has links)
Dans le contexte de l’informatique pervasive et de l’internet des objets, les systèmes sonthétérogènes, distribués et adaptatifs (p. ex., systèmes de gestion des transports, bâtimentsintelligents). La conception et le déploiement de ces systèmes sont rendus difficiles par leurnature hétérogène et distribuée mais aussi le risque de décisions d’adaptation conflictuelleset d’inconsistances à l’exécution. Les inconsistances sont causées par des pannes matériellesou des erreurs de communication. Elles surviennent lorsque des actions correspondant auxdécisions d’adaptation sont supposées être effectuées alors qu’elles ne le sont pas.Cette thèse propose un support intergiciel, appelé SICODAF, pour la conception et ledéploiement de systèmes adaptatifs fiables. SICODAF combine une fiabilité comportementale(absence de décisions conflictuelles) au moyen de systèmes de transitions et une fiabilitéd’exécution (absence d’inconsistances) à l’aide d’un intergiciel transactionnel. SICODAF estbasé sur le calcul autonomique. Il permet de concevoir et de déployer un système adaptatifsous la forme d’une boucle autonomique qui est constituée d’une couche d’abstraction, d’unmécanisme d’exécution transactionnelle et d’un contrôleur. SICODAF supporte trois typesde contrôleurs (basés sur des règles, sur la théorie du contrôle continu ou discret). Il permetégalement la reconfiguration d’une boucle, afin de gérer les changements d’objectifs quisurviennent dans le système considéré, et l’intégration d’un système de détection de pannesmatérielles. Enfin, SICODAF permet la conception de boucles multiples pour des systèmesqui sont constitués de nombreuses entités ou qui requièrent des contrôleurs de types différents.Ces boucles peuvent être combinées en parallèle, coordonnées ou hiérarchiques.SICODAF a été mis en oeuvre à l’aide de l’intergiciel transactionnel LINC, de l’environnementd’abstraction PUTUTU et du langage Heptagon/BZR qui est basé sur des systèmesde transitions. SICODAF a été également évalué à l’aide de trois études de cas. / In the context of pervasive computing and internet of things, systems are heterogeneous,distributed and adaptive (e.g., transport management systems, building automation). Thedesign and the deployment of these systems are made difficult by their heterogeneous anddistributed nature but also by the risk of conflicting adaptation decisions and inconsistenciesat runtime. Inconsistencies are caused by hardware failures or communication errors. Theyoccur when actions corresponding to the adaptation decisions are assumed to be performedbut are not done.This thesis proposes a middleware support, called SICODAF, for the design and thedeployment of reliable adaptive systems. SICODAF combines a behavioral reliability (absenceof conflicting decisions) by means of transitions systems and an execution reliability(absence of inconsistencies) through a transactional middleware. SICODAF is based on autonomiccomputing. It allows to design and deploy an adaptive system in the form of anautonomic loop which consists of an abstraction layer, a transactional execution mechanismand a controller. SICODAF supports three types of controllers (based on rules, on continuousor discrete control theory). SICODAF also allows for loop reconfiguration, to dealwith changing objectives in the considered system, and the integration of a hardware failuredetection system. Finally, SICODAF allows for the design of multiple loops for systems thatconsist of a high number of entities or that require controllers of different types. These loopscan be combined in parallel, coordinated or hierarchical.SICODAF was implemented using the transactional middleware LINC, the abstractionenvironment PUTUTU and the language Heptagon/BZR that is based on transitionssystems. SICODAF was also evaluated using three case studies.
|
19 |
Cube : a decentralised architecture-based framework for software self-management / Cube : un framework décentralisé dirigé par l'architecture pour l'auto-gestion des logicielsDebbabi, Bassem 28 January 2014 (has links)
Durant ces dernières années, nous avons assisté à une forte émergence de nouvelles technologies et environnements informatiques tels que le cloud computing, l'informatique ubiquitaire ou les réseaux de capteurs. Ces environnements ont permis d'élaborer de nouveaux types d'applications avec une forte valeur ajoutée pour les usagés. Néanmoins, ils ont aussi soulevés de nombreux défis liés notamment à la conception, au déploiement et à la gestion de cycle de vie des applications. Ceci est dû à la nature même de ces environnements distribués, caractérisés par une grande flexibilité, un dynamisme accru et une forte hétérogénéité des ressources. L'objectif principal de cette thèse est de fournir une solution générique, réutilisable et extensible pour l'auto-gestion de ces applications. Nous nous sommes concentrés sur la fourniture d'un support logiciel permettant de gérer à l'exécution les architectures et leur cycle de vie, notamment pour les applications à base de composants s'exécutant dans des environnements dynamiques, distributes et à grande échelle. De façon à atteindre cet objectif, nous proposons une solution synergique – le framework Cube – combinant des techniques issues de domaines de recherche adjacents tels que l'auto-organisation, la satisfaction de contraintes, l'auto-adaptation et la reflexion fondée sur les modèles architecturaux. Dans notre solution, un ensemble de gestionnaires autonomiques décentralisés s'auto-organise de façon à construire et gérer une application cible en s'appuyant sur une description partagée des buts de l'application. Cette description formelle, appelé Archetype, prend la forme d'un graphe orienté exprimant les différents éléments de l'architecture et un ensemble de contraintes. Un prototype du framework Cube a été implanté dans le domaine particulier de la médiation. Des expériences ont été conduites dans le cadre de deux projets de recherché nationaux: Self-XL et Medical. Les résultats obtenus démontrent la validité de notre approche pour créer, réparer et adapter des applications à base de composants s'exécutant dans des environnements distribués, dynamiques et hétérogènes. / In recent years, the world has witnessed the rapid emergence of several novel technologies and computing environments, including cloud computing, ubiquitous computing and sensor networks. These environments have been rapidly capitalised upon for building new types of applications, and bringing added-value to users. At the same time, the resulting applications have been raising a number of new significant challenges, mainly related to system design, deployment and life-cycle management during runtime. Such challenges stem from the very nature of these novel environments, characterized by large scales, high distribution, resource heterogeneity and increased dynamism. The main objective of this thesis is to provide a generic, reusable and extensible self-management solution for these types of applications, in order to help alleviate this stringent problem. We are particularly interested in providing support for the runtime management of system architecture and life-cycle, focusing on applications that are component-based and that run in highly dynamic, distributed and large-scale environments. In order to achieve this goal, we propose a synergistic solution – the Cube framework – that combines techniques from several adjacent research domains, including self-organization, constraint satisfaction, self-adaptation and self-reflection based on architectural models. In this solution, a set of decentralised Autonomic Managers self-organize dynamically, in order to build and administer a target application, by following a shared description of administrative goals. This formal description, called Archetype, contains a graph-oriented specification of the application elements to manage and of various constraints associated with these elements. A prototype of the Cube framework has been implemented for the particular application domain of data-mediation. Experiments have been carried-out in the context of two national research projects: Self-XL and Medical. Obtained results indicate the viability of the proposed solution for creating, repairing and adapting component-based applications running in distributed volatile and evolving environments.
|
20 |
Robusta : une approche pour la construction d'applications dynamiques / Robusta : An approach to building dynamic applicationsRudametkin Ivey, Walter Andrew 21 February 2013 (has links)
Les domaines de recherche actuels, tels que l'informatique ubiquitaire et l'informatique en nuage (cloud computing), considèrent que ces environnements d’exécution sont en changement continue. Les applications dynamiques, où les composants peuvent être ajoutés et supprimés pendant l'exécution, permettent à un logiciel de s'adapter et de s'ajuster à l'évolution des environnements, et de tenir compte de l’évolution du logiciel. Malheureusement, les applications dynamiques soulèvent des questions de conception et de développement qui n'ont pas encore été pleinement explorées.Dans cette thèse, nous montrons que le dynamisme est une préoccupation transversale qui rompt avec un grand nombre d’hypothèses que les développeurs d’applications classiques sont autorisés à prendre. Le dynamisme affecte profondément la conception et développement de logiciels. S'il n'est pas manipulé correctement, le dynamisme peut « silencieusement » corrompre l'application. De plus, l'écriture d'applications dynamiques est complexe et sujette à erreur. Et compte tenu du niveau de complexité et de l’impact du dynamisme sur le processus du développement, le logiciel ne peut pas devenir dynamique sans (de large) modification et le dynamisme ne peut pas être totalement transparent (bien que beaucoup de celui-ci peut souvent être externalisées ou automatisées).Ce travail a pour but d’offrir à l’architecte logiciel le contrôle sur le niveau, la nature et la granularité du dynamisme qui est nécessaire dans les applications dynamiques. Cela permet aux architectes et aux développeurs de choisir les zones de l'application où les efforts de programmation des composants dynamiques seront investis, en évitant le coût et la complexité de rendre tous les composants dynamiques. L'idée est de permettre aux architectes de déterminer l'équilibre entre les efforts à fournir et le niveau de dynamisme requis pour les besoins de l'application. / Current areas of research, such as ubiquitous and cloud computing, consider execution environments to be in a constant state of change. Dynamic applications—where components can be added, removed and substituted during execution—allow software to adapt and adjust to changing environments, and to accommodate evolving features. Unfortunately, dynamic applications raise design and development issues that have yet to be fully addressed. In this dissertation we show that dynamism is a crosscutting concern that breaks many of the assumptions that developers are otherwise allowed to make in classic applications. Dynamism deeply impacts software design and development. If not handled correctly, dynamism can silently corrupt the application. Furthermore, writing dynamic applications is complex and error-prone, and given the level of complexity and the impact dynamism has on the development process, software cannot become dynamic without (extensive) modification and dynamism cannot be entirely transparent (although much of it may often be externalized or automated). This work focuses on giving the software architect control over the level, the nature and the granularity of dynamism that is required in dynamic applications. This allows architects and developers to choose where the efforts of programming dynamic components are best spent, avoiding the cost and complexity of making all components dynamic. The idea is to allow architects to determine the balance between the efforts spent and the level of dynamism required for the application's needs. At design-time we perform an impact analysis using the architect's requirements for dynamism. This serves to identify components that can be corrupted by dynamism and to—at the architect's disposition—render selected components resilient to dynamism. The application becomes a well-defined mix of dynamic areas, where components are expected to change at runtime, and static areas that are protected from dynamism and where programming is simpler and less restrictive. At runtime, our framework ensures the application remains consistent—even after unexpected dynamic events—by computing and removing potentially corrupt components. The framework attempts to recover quickly from dynamism and to minimize the impact of dynamism on the application. Our work builds on recent Software Engineering and Middleware technologies—namely, OSGi, iPOJO and APAM—that provide basic mechanisms to handle dynamism, such as dependency injection, late-binding, service availability notifications, deployment, lifecycle and dependency management. Our approach, implemented in the Robusta prototype, extends and complements these technologies by providing design and development-time support, and enforcing application execution consistency in the face of dynamism.
|
Page generated in 0.1437 seconds