4 research outputs found

    Constraint Programming as a Means to Manage Configurations in Self-Adaptive Systems

    No full text
    International audienceIn recent years, new software architectures have been developed in which components can be bound and unbound dynamically as the context demands. This capacity to dynamically adapt the software's structure, behaviour and quality of service should make resilience easier to achieve by allowing systems to respond more flexibly to changing environmental contexts. However, because the decision of how to react to a new context is devolved to a run-time decision-making element that senses the context and selects an appropriate component configuration, a new approach to how software is specified is needed. A self-adaptive system that uses architectural adaptation may be conceptualized as a dynamic SPL. In this paper we argue that the problem of specifying a DSPL can be reduced to a constraint satisfaction problem. We combine goal modeling techniques with constraint programming to provide the analyst with a means to identify the system variants best suited to the various environmental contexts that a system might encounter at runtime. We illustrate our approach using the example of a self-adaptive wireless sensor network

    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

    Self-aware software architecture style and patterns for cloud-based applications

    Get PDF
    Modern cloud-reliant software systems are faced with the problem of cloud service providers violating their Service Level Agreement (SLA) claims. Given the large pool of cloud providers and their instability, cloud applications are expected to cope with these dynamics autonomously. This thesis investigates an approach for designing self-adaptive cloud architectures using a systematic methodology that guides the architect while designing cloud applications. The approach termed SelfawareSelf-aware ArchitectureArchitecture PatternPattern promotes fine-grained representation of architectural concerns to aid design-time analysis of risks and trade-offs. To support the coordination and control of architectural components in decentralised self-aware cloud applications, we propose a ReputationawareReputation-aware postedposted offeroffer marketmarket coordinationcoordination mechanismmechanism. The mechanism builds on the classic posted offer market mechanism and extends it to track behaviour of unreliable cloud services. The self-aware cloud architecture and its reputation-aware coordination mechanism are quantitatively evaluated within the context of an Online Shopping application using synthetic and realistic workload datasets under various configurations (failure, scale, resilience levels etc.). Additionally, we qualitatively evaluated our self-aware approach against two classic self-adaptive architecture styles using independent experts' judgment, to unveil its strengths and weaknesses relative to these styles

    A framework for robust control of uncertainty in self-adaptive software connectors

    Get PDF
    Context and motivations. The desired behavior of a system in ubiquitous environments considers not only its correct functionality, but also the satisfaction of its non-functional properties, i.e., its quality of service. Given the heterogeneity and dynamism characterizing the ubiquitous environments and the need for continuous satisfaction of non-functional properties, self-adaptive solutions appear to be an appropriate approach to achieve interoperability. In this work, self-adaptation is adopted to enable software connectors to adapt the interaction protocols run by the connected components to let them communicate in a timely manner and with the required level of quality. However, this self-adaptation should be dependable, reliable and resilient to be adopted in dynamic, unpredictable environments with different sources of uncertainty. The majority of current approaches for the construction of self-adaptive software ignore the uncertainty underlying non-functional requirement verification and adaptation reasoning. Consequently, these approaches jeopardize system reliability and hinder the adoption of self-adaptive software in areas where dependability is of utmost importance. Objective. The main objective of this research is to properly handle the uncertainties in the non-functional requirement verification and the adaptation reasoning part of the self-adaptive feedback control loop of software connectors. This will enable a robust and runtime efficient adaptation in software connectors and make them reliable for usage in uncertain environments. Method. In the context of this thesis, a framework has been developed with the following functionalities: 1) Robust control of uncertainty in runtime requirement verification. The main activity in runtime verification is fine-tuning of the models that are adopted for runtime reasoning. The proposed stochastic approach is able to update the unknown parameters of the models at runtime even in the presence of incomplete and noisy observations. 2) Robust control of uncertainty in adaptation reasoning. A general methodology based on type-2 fuzzy logic has been introduced for the control of adaptation decision-making that adjusts the configuration of component connectors to the appropriate mode. The methodology enables a systematic development of fuzzy logic controllers that can derive the right mode for connectors even in the presence of measurement inaccuracy and adaptation policy conflicts. Results. The proposed model evolution mechanism is empirically evaluated, showing a significant precision of parameter estimation with an acceptable overhead at runtime. In addition, the fuzzy based controller, generated by the methodology, has been shown to be robust against uncertainties in the input data, efficient in terms of runtime overhead even in large-scale knowledge bases and stable in terms of control theory properties. We also demonstrate the applicability of the developed framework in a real-world domain. Thesis statement. We enable reliable and dependable self-adaptations of component connectors in unreliable environments with imperfect monitoring facilities and conflicting user opinions about adaptation policies by developing a framework which comprises: (a) mechanisms for robust model evolution, (b) a method for adaptation reasoning, and (c) tool support that allows an end-to-end application of the developed techniques in real-world domains
    corecore