3 research outputs found

    Modèles, outils et plate-forme d'exécution pour les applications à service dynamiques

    Get PDF
    L'essor de l'Internet et l'évolution des dispositifs communicants ont permis l'intégration du monde informatique et du monde réel, ouvrant ainsi la voie à de nouveaux types d'applications, tels que les applications ubiquitaires et pervasives. Ces applications doivent s'exécuter dans des contextes hétérogènes, distribués et ouverts qui sont en constante évolution. Dans de tels contextes, la disponibilité des services et des dispositifs, les préférences et la localisation des utilisateurs peuvent varier à tout moment pendant l'exécution des applications. La variabilité des contextes d'exécution fait que l'exécution d'une application dépend, par exemple, des services disponibles ou des dispositifs accessibles à l'exécution. En conséquence, l'architecture d'une telle application ne peut pas être connue statiquement à la conception, au développement ou au déploiement, ce qui impose de redéfinir ce qu'est une application dynamique : comment la concevoir, la développer, l'exécuter et la gérer à l'exécution. Dans cette thèse, nous proposons une approche dirigée par les modèles pour la conception, le développement et l'exécution d'applications dynamiques. Pour cela, nous avons défini un modèle de composants à services permettant d'introduire des propriétés de dynamisme au sein d'un modèle de composants. Ce modèle permet de définir une application en intention, via un ensemble de propriétés, de contraintes et de préférences de composition. Une application est ainsi spécifiée de façon abstraite ce qui permet de contrôler la composition graduelle de l'application lors de son développement et de son exécution. Notre approche vise à effacer la frontière entre les activités effectuées avant et pendant l'exécution des applications. Pour ce faire, le même modèle et les mêmes mécanismes de composition sont utilisés de la conception jusqu'à l'exécution des applications. A l'exécution, le processus de composition considère, en plus, les services disponibles dans la plate-forme d'exécution permettant la composition opportuniste des applications ; ainsi que la variabilité du contexte d'exécution permettant l'adaptation dynamique des compositions. Nous avons mis en œuvre notre approche via un prototype nommé COMPASS, qui s'appuie sur les plates-formes CADSE pour la réalisation d'environnements logiciels de conception et de développement, et APAM pour la réalisation d'un environnement d'exécution d'applications à services dynamiques.The growth of the Internet and the evolution of communicating devices have allow the integration of the computer world and the real world, paving the way for developing new types of applications such as pervasive and ubiquitous ones. These applications must run in heterogeneous, distributed and open environments that evolve constantly. In such environments, the availability of services and devices, the preferences and location of users may change at any time during the execution of applications. The variability of the execution context makes the execution of an application dependent on the available services and devices. Building applications capable of evolving dynamically to their execution context is a challenging task. In fact, the architecture of such an application cannot be fully known nor statically specified at design, development or deployment times. It is then needed to redefine the concept of dynamic application in order to cover the design, development, execution and management phases, and to enable thus the dynamic construction and evolution of applications. In this dissertation, we propose a model-driven approach for the design, development and execution of dynamic applications. We defined a component service model that considers dynamic properties within a component model. This model allows defining an application by its intention (its goal) through a set of composition properties, constraints and preferences. An application is thus specified in an abstract way, which allows controlling its gradual composition during development and execution times. Our approach aims to blur the boundary between development-time and runtime. Thus, the same model and the same composition mechanisms are used from design to runtime. At runtime, the composition process considers also the services available in the execution platform in order to compose applications opportunistically; and the variability of the execution context in order to adapt compositions dynamically. We implemented our approach through a prototype named COMPASS, which relies on the CADSE platform for building software design and development environments, and on the APAM platform for building an execution environment for dynamic service-based applications.SAVOIE-SCD - Bib.électronique (730659901) / SudocGRENOBLE1/INP-Bib.électronique (384210012) / SudocGRENOBLE2/3-Bib.électronique (384219901) / SudocSudocFranceF

    Ein realistischer Ansatz zur autonomen Verwaltung komponentenbasierter Geschäftsanwendungen

    Get PDF
    During the last decades, information technology has been characterized by constantly increasing performance of available hardware resources. This development allows the assignment of more and more complex tasks to software systems while at the same time leading to a massive increase of inherent complexity of applied systems. The expected further increase of complexity in the future demands for an explicit addressing of complexity. The concept of Component Orientation represents an approach for complexity reduction during the development and configuration of software through functional decomposition. With the vision of Autonomic Computing there does exist an approach for addressing complexity during the operation and maintenance of software systems. In this context, the approach is based on the idea of assigning low level-management tasks to the managed system itself. The concept of Component Orientation leads to the establishment of system architectures out of clearly distinguishable building blocks. Therefore, Component Orientation seems to provide a promising foundation for realizing the vision of Autonomic Computing. This thesis presents a realistic infrastructure for the autonomic management of component-based enterprise systems. The application area of such systems leads to special requirements for managed systems and is highly affected by the complexity problem. As a foundation for the proposed approach, a well established component standard was chosen to guarantee the practical relevance of applied concepts and techniques. The applied standard is Enterprise JavaBeans, version 3.0. The proposed infrastructure is designed and realized in a generic fashion. It provides a platform upon which solutions for different application areas of Autonomic Computing can be realized. Autonomic entities are supported through a programming interface which represents a system on three interrelated levels and allows its management: On the top-level, the underlying software of a managed system is considered. The middle layer addresses the system architecture. Runtime interactions within the system are represented on the lowest layer. On this foundation, a system can be managed in a holistic, model-based way. The runtime management of a system is enabled through a specially developed component which must be integrated into the affected environment. This component is compliant with the applied component standard and does not require any adjustment of the underlying component platform. Finally, a tool is provided which supports the establishment of manageability through the automated execution of required adjustments of components. The management of a system is realized transparently for its constituent elements during runtime. On the whole, the development of enterprise software is not affected by a potential application of the presented infrastructure.Seit einigen Jahrzehnten ist ein stetiges Ansteigen der Leistungsfähigkeit verfügbarer Hardwareressourcen festzustellen. Dieses ermöglicht die Zuweisung immer umfangreicherer Aufgaben an Softwaresysteme, was gleichzeitig ein massives Ansteigen der inhärenten Komplexität der verwendeten Systeme zur Folge hat. Ein für die Zukunft zu erwartender weiterer Komplexitätsanstieg erfordert eine explizite Adressierung. Das Konzept der Komponentenorientierung stellt einen Ansatz zur Komplexitätsreduktion für die Entwicklung und Konfiguration von Software durch funktionale Dekomposition dar. Mit der Vision des Autonomic Computing existiert ein Ansatz zur Komplexitätsbewältigung für Betrieb und Wartung von Softwaresystemen. In diesem Zusammenhang wird der Ansatz verfolgt, Aufgaben zur Feinsteuerung eines verwalteten Systems auf das System selbst zu übertragen. Da die Komponentenorientierung zu klar voneinander abgrenzbaren Elementen innerhalb von Systemarchitekturen führt, erscheint sie als viel versprechende Grundlage zur Realisierung der Vision des Autonomic Computing. Diese Arbeit stellt eine realistische Infrastruktur für die autonome Verwaltung von komponentenbasierten Geschäftsanwendungen vor. Der Anwendungsbereich solcher Systeme stellt spezielle Anforderungen an verwaltete Systeme und ist besonders von der Komplexitätsproblematik betroffen. Um die praktische Relevanz der verfolgten Konzepte und Verfahren zu gewährleisten, wurde ein etablierter Komponentenstandard als Grundlage des Ansatzes gewählt. Bei diesem handelt es sich um Enterprise JavaBeans, Version 3.0. Die vorgestellte Infrastruktur ist generisch konzipiert und umgesetzt. Sie stellt eine Plattform bereit, auf deren Basis Lösungen für verschiedene Anwendungsfelder des Autonomic Computing realisiert werden können. Zur Unterstützung autonomer Verwaltungseinheiten wird eine Programmierschnittstelle bereitgestellt, welche ein System auf drei Ebenen abbildet und dessen Steuerung ermöglicht: Auf oberster Ebene erfolgt die Betrachtung der einem System zugrunde liegenden Software. Auf mittlerer Ebene wird die Architektur eines verwalteten Systems adressiert. Interaktionen innerhalb eines Systems werden auf der untersten Ebene dargestellt. Auf dieser Grundlage kann ein System ganzheitlich und modellbasiert verwaltet werden. Zur Unterstützung der Laufzeitverwaltung eines Systems dient eine spezielle Komponente, welche in ein betroffenes System integriert werden muss. Sie ist konform zum verwendeten Standard und erfordert keine Anpassung der zugrunde liegenden Komponentenplattform. Für die Herstellung der Verwaltbarkeit von Komponenten wird ein Werkzeug bereitgestellt, welches automatisiert alle nötigen Anpassungen vornimmt. Darüber hinaus ist die Verwaltung eines Systems für dessen Elemente zur Laufzeit transparent. Zusammengenommen bleibt die Entwicklung von Geschäftsanwendungen von einer Verwendung der Infrastruktur unbeeinflusst
    corecore