326 research outputs found

    AMBIENT-PRISMA: Distribution and Mobility in Aspect-Oriented Software Architectures

    Full text link
    This thesis presents a framework called Ambient-PRISMA for describing and developing distributed and mobile software systems in an abstract way. Ambient-PRISMA enriches an aspect-oriented software architecture approach called PRISMA with concepts of Ambient Calculus (AC). Ambient Calculus (AC) is a formalism that provides primitives to describe distribution and mobility characteristics in an abstract way. It introduces a concept called ambient which is a bounded place where computation happens. This enrichment is performed by extending the PRISMA metamodel, and Aspect-Oriented Architecture Description Language (AOADL). A case study of an electronic Auction System with mobile agents is used throughout the thesis in order to illustrate the work.Ali Irshaid, N. (2007). AMBIENT-PRISMA: Distribution and Mobility in Aspect-Oriented Software Architectures. http://hdl.handle.net/10251/12900Archivo delegad

    Programming distributed and adaptable autonomous components--the GCM/ProActive framework

    Get PDF
    International audienceComponent-oriented software has become a useful tool to build larger and more complex systems by describing the application in terms of encapsulated, loosely coupled entities called components. At the same time, asynchronous programming patterns allow for the development of efficient distributed applications. While several component models and frameworks have been proposed, most of them tightly integrate the component model with the middleware they run upon. This intertwining is generally implicit and not discussed, leading to entangled, hard to maintain code. This article describes our efforts in the development of the GCM/ProActive framework for providing distributed and adaptable autonomous components. GCM/ProActive integrates a component model designed for execution on large-scale environments, with a programming model based on active objects allowing a high degree of distribution and concurrency. This new integrated model provides a more powerful development, composition, and execution environment than other distributed component frameworks. We illustrate that GCM/ProActive is particularly adapted to the programming of autonomic component systems, and to the integration into a service-oriented environment

    Adaptive Caching of Distributed Components

    Get PDF
    Die Zugriffslokalität referenzierter Daten ist eine wichtige Eigenschaft verteilter Anwendungen. Lokales Zwischenspeichern abgefragter entfernter Daten (Caching) wird vielfach bei der Entwicklung solcher Anwendungen eingesetzt, um diese Eigenschaft auszunutzen. Anschliessende Zugriffe auf diese Daten können so beschleunigt werden, indem sie aus dem lokalen Zwischenspeicher bedient werden. Gegenwärtige Middleware-Architekturen bieten dem Anwendungsprogrammierer jedoch kaum Unterstützung für diesen nicht-funktionalen Aspekt. Die vorliegende Arbeit versucht deshalb, Caching als separaten, konfigurierbaren Middleware-Dienst auszulagern. Durch die Einbindung in den Softwareentwicklungsprozess wird die frühzeitige Modellierung und spätere Wiederverwendung caching-spezifischer Metadaten gewährleistet. Zur Laufzeit kann sich das entwickelte System außerdem bezüglich der Cachebarkeit von Daten adaptiv an geändertes Nutzungsverhalten anpassen.Locality of reference is an important property of distributed applications. Caching is typically employed during the development of such applications to exploit this property by locally storing queried data: Subsequent accesses can be accelerated by serving their results immediately form the local store. Current middleware architectures however hardly support this non-functional aspect. The thesis at hand thus tries outsource caching as a separate, configurable middleware service. Integration into the software development lifecycle provides for early capturing, modeling, and later reuse of cachingrelated metadata. At runtime, the implemented system can adapt to caching access characteristics with respect to data cacheability properties, thus healing misconfigurations and optimizing itself to an appropriate configuration. Speculative prefetching of data probably queried in the immediate future complements the presented approach

    Autonomic Performance-Aware Resource Management in Dynamic IT Service Infrastructures

    Get PDF
    Model-based techniques are a powerful approach to engineering autonomic and self-adaptive systems. This thesis presents a model-based approach for proactive and autonomic performance-aware resource management in dynamic IT infrastructures. Core of the approach is an architecture-level modeling language to describe performance and resource management related aspects in such environments. With this approach, it is possible to autonomically find suitable system configurations at the model level

    Contribution to dynamic reconfiguration in component-based systems: consistency and non-functional properties specification

    Get PDF
    Le travail réalisé dans le cadre de cette thèse a deux objectifs principaux. Le premier est de contribuer `à la spécification de la reconfiguration dynamique des systèmes à base de composants. Le deuxième objectif est de s´sélectionner la configuration optimale parmi un ensemble de configurations qui fournissent des fonctionnalités identiques ou similaires. Le processus de sélection dépend des propriétés non-fonctionnelles du système. La propriété de reconfigurabilité est essentielle pour de nombreux systèmes à base de composants contemporains. En effet, cette propriété améliore la disponibilité, l'adaptabilité, l'évolutivité, la maintenabilité et la performance des systèmes tels que les systèmes avioniques, les commutateurs de télécommunications et les systèmes commerciaux. Pour ces systèmes, l'arrêt de longue durée n'est pas admissible pour des raisons s´sécuritaires ou économiques. L'adaptabilité et l'evolvabilité sont également des caractéristiques importantes pour ces systèmes qui ont besoin d'inclure des changements de l'environnement ou des nouvelles exigences des utilisateurs dans le logiciel. Toutes ces motivations plus montrent l'importance de permettre, dès la conception, la reconfiguration dynamique de systèmes. La reconfiguration est la capacité de modifier la structure ou le comportement d'un système à l'exécution et sans l'arrêter complétement. Le travail présenté dans cette thèse étudie les mécanismes et les techniques pour fournir la reconfigurabilité aux systèmes à base de composants. La fourniture de reconfigurabilité nécessite la prise en considération de la cohérence du système pendant et après la reconfiguration. Il y a deux sortes de cohérence : cohérence globale et cohérence locale. Dans cette thèse, nous proposons une approche pour préserver la cohérence globale d'un système à base de composants reconfigurable en utilisant un langage formel déclaratif, Alloy. Une autre approche est proposée pour préserver la cohérence locale en analysant la relation entre la dépendance indirecte et la reconfiguration dynamique. Enfin, la sélection de configuration consiste à choisir la configuration la plus optimale à partir d'un ensemble de choix dans le but de maximiser la satisfaction de l'utilisateur. Une approche proposée pour faire le meilleur choix en fonction des préférences de l'utilisateur exprimées sur des métriques non-fonctionnellesThe research of this thesis has two main goals. The first goal is to provide the reconfigurability feature to the component-based systems. The second goal is to select the optimal configuration from a set of configurations, which provide similar functionality. The selection process depends on the non-functional properties of the system. Reconfigurability is essential feature for many contemporary component-based systems. Reconfigurability enhances the continuous availability, the adaptability, the evolvability, the maintainability, and the performance. Avionics systems, telecommunications switches and some commercial systems require the high availability. For these systems, long shutting down is not allowable due to economical or safety reasons. The adaptability and the evolvability are also important features for those systems which need to accommodate the environmental changes or the new requirements of software users. The maintainability and the performance are important requirements for a large category of systems. All the previous motivations and more show the importance of having the reconfigurability. Reconfigurability is the ability to change the system structure or the system behavior at running time without stopping it. The work presented in this thesis investigates the required mechanisms and techniques in order to provide the reconfigurability feature to a component-based system. The provision of the reconfigurability feature requires preserving the system consistency during and after the reconfiguration. The consistency has two kinds: global consistency and local consistency. In this thesis, we propose an approach to preserve the global consistency of a reconfigurable component-based system using declarative formal language. Another approach is proposed to preserve the local consistency during the reconfiguration. The second approach investigates the relationship between the indirect dependency and the dynamic reconfiguration. Configuration selection is to select the most optimal configuration from a set of alternatives in order to maximize the end user satisfaction. The thesis proposes an approach to make the best selection depending on the user preference

    Adapting mobile systems using logical mobility primitives

    Get PDF
    Mobile computing devices, such as personal digital assistants and mobile phones, are becoming increasingly popular, smaller, more capable and even fashionable personal items. Combined with the recent advent of wireless networking techniques, users are equipped with mobile devices of significant computational abilities, which are able to wirelessly access information by dynamically connecting to many different networks. Despite the ubiquity of mobile devices, mobile systems are built using monolithic architectures, use a small set of predefined interaction paradigms and do not exploit or adapt to the dynamicity of their local or remote context. Applications deployed on mobile devices face considerable challenges posed by their changing surroundings. One of the main peculiarities of mobile devices is heterogeneity, which may occur in software, hardware and network protocols. Mobile systems may carry a large number of different applications, use different operating systems and middleware and, often, have more than one network interface. A further challenge is their considerable variation in the computational resources available, such as battery power, CPU speed, network bandwidth and volatile and persistent memory. Moreover, mobile computing systems are highly dynamic systems, in terms of their surroundings, implying that the requirements for applications deployed on a mobile device are a moving target. Changes in the requirements (such as integration with a new service) may require changes to the application. Consequently, these changes may mean that the application behaviour needs to adapt. This thesis argues that the potential of the ubiquity of mobile devices cannot be realised using static and monolithic architectures, as mobile systems need to be able to adapt to accommodate changes to their environment. It investigates the use of three technologies to offer adaptation to mobile devices: Logical mobility techniques, component systems and middleware technologies. More specifically, this thesis presents the SATIN (System Adaptation Targeting Integrated Networks) component metamodel, a lightweight local component metamodel that offers the flexible use of logical mobility primitives. The metamodel is instantiated to build the SATIN middleware system, a component-based mobile computing middleware that uses the mobility primitives exported by the metamodel to reconfigure itself and applications running on top of it. The suitability of SATIN for the creation of adaptable mobile systems is demonstrated, by using it to implement and evaluate a number of applications showing different aspects of adaptation. Moreover, existing projects are reengineered to run as SATIN components, showing the flexibility of the approach and the advantages gained over the originals

    Migration and load-balancing in distributed hierarchical component systems

    Get PDF
    Vyvážené využití zdrojů je jedním z cílů distribuovaných aplikací. Jeden ze způsobů, jak dosáhnou vyváženého využití je monitorování běhu aplikací a migrace jejich komponent mezi počítači. Migrace s sebou přináší mnoho otázek, od monitorování prostředků až po získávání stavu komponenty a jeho přenosu na jiný počítač. Cílem této práce je navrhnout a implementovat podporu pro migraci a vyvažování zítěže v hierarchickém komponentovém systému SOFA 2.A well balanced usage of resources is one of the goals of distributed applications. A way to achieve such a balanced usage is by run-time monitoring and migration of components of already executed applications between computers. There are many issues related to migration, from monitoring resources usage till obtaining component state and transferring to a di erent computer. The goal of this thesis is to design and implement a support for migration and load-balancing of components in the SOFA 2 hierarchical component system.Department of Software EngineeringKatedra softwarového inženýrstvíFaculty of Mathematics and PhysicsMatematicko-fyzikální fakult

    Adaptive object management for distributed systems

    Get PDF
    This thesis describes an architecture supporting the management of pluggable software components and evaluates it against the requirement for an enterprise integration platform for the manufacturing and petrochemical industries. In a distributed environment, we need mechanisms to manage objects and their interactions. At the least, we must be able to create objects in different processes on different nodes; we must be able to link them together so that they can pass messages to each other across the network; and we must deliver their messages in a timely and reliable manner. Object based environments which support these services already exist, for example ANSAware(ANSA, 1989), DEC's Objectbroker(ACA,1992), Iona's Orbix(Orbix,1994)Yet such environments provide limited support for composing applications from pluggable components. Pluggability is the ability to install and configure a component into an environment dynamically when the component is used, without specifying static dependencies between components when they are produced. Pluggability is supported to a degree by dynamic binding. Components may be programmed to import references to other components and to explore their interfaces at runtime, without using static type dependencies. Yet thus overloads the component with the responsibility to explore bindings. What is still generally missing is an efficient general-purpose binding model for managing bindings between independently produced components. In addition, existing environments provide no clear strategy for dealing with fine grained objects. The overhead of runtime binding and remote messaging will severely reduce performance where there are a lot of objects with complex patterns of interaction. We need an adaptive approach to managing configurations of pluggable components according to the needs and constraints of the environment. Management is made difficult by embedding bindings in component implementations and by relying on strong typing as the only means of verifying and validating bindings. To solve these problems we have built a set of configuration tools on top of an existing distributed support environment. Specification tools facilitate the construction of independent pluggable components. Visual composition tools facilitate the configuration of components into applications and the verification of composite behaviours. A configuration model is constructed which maintains the environmental state. Adaptive management is made possible by changing the management policy according to this state. Such policy changes affect the location of objects, their bindings, and the choice of messaging system

    Cloud Services Brokerage for Mobile Ubiquitous Computing

    Get PDF
    Recently, companies are adopting Mobile Cloud Computing (MCC) to efficiently deliver enterprise services to users (or consumers) on their personalized devices. MCC is the facilitation of mobile devices (e.g., smartphones, tablets, notebooks, and smart watches) to access virtualized services such as software applications, servers, storage, and network services over the Internet. With the advancement and diversity of the mobile landscape, there has been a growing trend in consumer attitude where a single user owns multiple mobile devices. This paradigm of supporting a single user or consumer to access multiple services from n-devices is referred to as the Ubiquitous Cloud Computing (UCC) or the Personal Cloud Computing. In the UCC era, consumers expect to have application and data consistency across their multiple devices and in real time. However, this expectation can be hindered by the intermittent loss of connectivity in wireless networks, user mobility, and peak load demands. Hence, this dissertation presents an architectural framework called, Cloud Services Brokerage for Mobile Ubiquitous Cloud Computing (CSB-UCC), which ensures soft real-time and reliable services consumption on multiple devices of users. The CSB-UCC acts as an application middleware broker that connects the n-devices of users to the multi-cloud services. The designed system determines the multi-cloud services based on the user's subscriptions and the n-devices are determined through device registration on the broker. The preliminary evaluations of the designed system shows that the following are achieved: 1) high scalability through the adoption of a distributed architecture of the brokerage service, 2) providing soft real-time application synchronization for consistent user experience through an enhanced mobile-to-cloud proximity-based access technique, 3) reliable error recovery from system failure through transactional services re-assignment to active nodes, and 4) transparent audit trail through access-level and context-centric provenance
    corecore