• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 10
  • 5
  • Tagged with
  • 15
  • 15
  • 12
  • 11
  • 8
  • 7
  • 6
  • 5
  • 5
  • 5
  • 5
  • 4
  • 4
  • 4
  • 3
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Modèle à Composant pour Plate-forme Autonomique / Component model for Autonomic-Ready plateform

Bourret, 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.
2

Adaptation autonomique d'applications pervasives dirigée par les architectures / Autonomic adaptation of pervasive applications using architectures

Gandrille, 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.
3

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-grids

Frey, 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.
4

Robusta : une approche pour la construction d'applications dynamiques

Rudametkin 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.
5

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) aware

Garzone, 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.
6

Plateforme d’adaptation autonomique contextuelle à base de connaissances / Autonomic knowledge - based context-driven adaptation platform

Da, 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.
7

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.
8

Robusta : Une approche pour la construction d'applications dynamiques

Rudametkin, 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.
9

Cube : a decentralised architecture-based framework for software self-management / Cube : un framework décentralisé dirigé par l'architecture pour l'auto-gestion des logiciels

Debbabi, 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.
10

Robusta : une approche pour la construction d'applications dynamiques / Robusta : An approach to building dynamic applications

Rudametkin 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.0986 seconds