169,412 research outputs found

    Measuring the quality of transformation alternatives in software architectures evolution

    Get PDF
    Many today’s software systems need to be self-adapted at run-time. Model transformation is a good approach to adapt the component-based architecture of such software systems. However, existing model transformation processes focus on the functionalities of systems, giving less importance to the quality attributes. The goal of this study is to improve model transformation processes by also considering quality attributes in the generation and adaptation of component-based architectures (i.e., driving the selection among many alternative model transformations by software architecture metrics). Such metrics evaluate the qualities of an architecture, such as flexibility and modifiability. This paper provides some measures of quality for different transformation alternatives and an example in the ENIA software

    Model-Driven Online Capacity Management for Component-Based Software Systems

    Get PDF
    Capacity management is a core activity when designing and operating distributed software systems. It comprises the provisioning of data center resources and the deployment of software components to these resources. The goal is to continuously provide adequate capacity, i.e., service level agreements should be satisfied while keeping investment and operating costs reasonably low. Traditional capacity management strategies are rather static and pessimistic: resources are provisioned for anticipated peak workload levels. Particularly, enterprise application systems are exposed to highly varying workloads, leading to unnecessarily high total cost of ownership due to poor resource usage efficiency caused by the aforementioned static capacity management approach. During the past years, technologies emerged that enable dynamic data center infrastructures, e. g., leveraged by cloud computing products. These technologies build the foundation for elastic online capacity management, i.e., adapting the provided capacity to workload demands based on a short-term horizon. Because manual online capacity management is not an option, automatic control approaches have been proposed. However, most of these approaches focus on coarse-grained adaptation actions and adaptation decisions are based on aggregated system-level measures. Architectural information about the controlled software system is rarely considered. This thesis introduces a model-driven online capacity management approach for distributed component-based software systems, called SLAstic. The core contributions of this approach are a) modeling languages to capture relevant architectural information about a controlled software system, b) an architecture-based online capacity management framework based on the common MAPE-K control loop architecture, c) model-driven techniques supporting the automation of the approach, d) architectural runtime reconfiguration operations for controlling a system’s capacity, e) as well as an integration of the Palladio Component Model. A qualitative and quantitative evaluation of the approach is performed by case studies, lab experiments, and simulation

    An Engineering Method for Adaptive, Context-aware Web Applications

    Get PDF
    Users of Web-based software encounter growing complexity of the software resulting from the increasing amount of information and service offering. As a consequence, the likelihood that users employ the software in a manner compatible with the provider's interest decreases. Depending on the purpose of the Web application, a provider's goal can be to guide and influence user choices in information and service selection, or to assure user productivity. An approach at addressing these goals is to adapt the software's behavior during operation to the context in which it is being used. The term context-awareness originates in mobile computing, where research projects have studied context recognition and adaptation in specific scenarios. Context-awareness is now being studied in a variety of systems, including Web applications. However, how to account for context in a Web Engineering process is not yet established, nor is a generic means of using context in a Web software architecture. This dissertation addresses the question of how context-awareness can be applied in a general-purpose, systematic process for Web application development: that is, in a Web Engineering process. A model for representing an application's context factors in ontologies is presented. A general-purpose methodology for Web Engineering is extended to account for context, by putting in relation context ontologies with elements of the application domain. The application model is extended with adaptation specifications, defining at which places in the application adaptation to context is to occur, and according to what strategy. Application and context models are system interpretable, in order to support automatic adaptation of a system's behavior during its operation, that is, consequently to user requests. Requirements for a corresponding Web software architecture for context are established first at the conceptual level, then specifically in a content-based architecture based on an XML stack. The CATWALK software framework, an implementation of an architecture enabling adaptation to context is described. The framework provides mechanisms for interpreting application and context models to generate an adaptive application, meaning to generate responses to user requests, where the generation process makes decisions based on context information. For this purpose, the framework contains default implementations for context recognition and adaptation mechanisms. The approach presented supports a model-based development of Web applications which adapt to context. The CATWALK framework is an mplementation for model interpretation in a run-time system and thus simplifies the development of Web applications which adapt to context. As the framework is component-based and follows a strict separation of concerns, the default mechanisms can be extended or replaced, allowing to reduce the amount of custom code required to implement specific context-aware Web applications or to study alternative context inference or adaptation strategies. The use of the framework is illustrated in a case study, in which models are defined for a prototypical application, and this application is generated by the framework. The purpose of the case study is to illustrate effects of adaptation to context, based on context description and adaptation specifications in the application model

    WiSeKit: A Distributed Middleware to Support Application-level Adaptation in Sensor Network

    Get PDF
    International audienceApplications for Wireless Sensor Networks (WSNs) are being spread to areas in which the contextual parameters modeling the environment are changing over the application lifespan. Whereas software adaptation has been identified as an effective approach for addressing context-aware applications, the existing work on WSNs fails to support context-awareness and mostly focuses on developing techniques to re-program the whole sensor node rather than reconfiguring a particular portion of the sensor application software. Therefore, enabling adaptivity in the higher layers of a WSN architecture such as the middleware and application layers, beside the consideration in the lower layers, becomes of high importance. In this paper, we propose a distributed component-based middleware approach, named WiSeKit, to enable adaptation and reconfiguration of WSN applications. In particular, this proposal aims at providing an abstraction to facilitate development of adaptive WSN applications. As resource availability is the main concern of WSNs, the preliminary evaluation shows that our middleware approach promises a lightweight, fine-grained and communication-efficient model of application adaptation with a very limited memory and energy overhead

    Modeling and Analyzing Adaptive User-Centric Systems in Real-Time Maude

    Full text link
    Pervasive user-centric applications are systems which are meant to sense the presence, mood, and intentions of users in order to optimize user comfort and performance. Building such applications requires not only state-of-the art techniques from artificial intelligence but also sound software engineering methods for facilitating modular design, runtime adaptation and verification of critical system requirements. In this paper we focus on high-level design and analysis, and use the algebraic rewriting language Real-Time Maude for specifying applications in a real-time setting. We propose a generic component-based approach for modeling pervasive user-centric systems and we show how to analyze and prove crucial properties of the system architecture through model checking and simulation. For proving time-dependent properties we use Metric Temporal Logic (MTL) and present analysis algorithms for model checking two subclasses of MTL formulas: time-bounded response and time-bounded safety MTL formulas. The underlying idea is to extend the Real-Time Maude model with suitable clocks, to transform the MTL formulas into LTL formulas over the extended specification, and then to use the LTL model checker of Maude. It is shown that these analyses are sound and complete for maximal time sampling. The approach is illustrated by a simple adaptive advertising scenario in which an adaptive advertisement display can react to actions of the users in front of the display.Comment: In Proceedings RTRTS 2010, arXiv:1009.398

    A Framework for Evaluating Model-Driven Self-adaptive Software Systems

    Get PDF
    In the last few years, Model Driven Development (MDD), Component-based Software Development (CBSD), and context-oriented software have become interesting alternatives for the design and construction of self-adaptive software systems. In general, the ultimate goal of these technologies is to be able to reduce development costs and effort, while improving the modularity, flexibility, adaptability, and reliability of software systems. An analysis of these technologies shows them all to include the principle of the separation of concerns, and their further integration is a key factor to obtaining high-quality and self-adaptable software systems. Each technology identifies different concerns and deals with them separately in order to specify the design of the self-adaptive applications, and, at the same time, support software with adaptability and context-awareness. This research studies the development methodologies that employ the principles of model-driven development in building self-adaptive software systems. To this aim, this article proposes an evaluation framework for analysing and evaluating the features of model-driven approaches and their ability to support software with self-adaptability and dependability in highly dynamic contextual environment. Such evaluation framework can facilitate the software developers on selecting a development methodology that suits their software requirements and reduces the development effort of building self-adaptive software systems. This study highlights the major drawbacks of the propped model-driven approaches in the related works, and emphasise on considering the volatile aspects of self-adaptive software in the analysis, design and implementation phases of the development methodologies. In addition, we argue that the development methodologies should leave the selection of modelling languages and modelling tools to the software developers.Comment: model-driven architecture, COP, AOP, component composition, self-adaptive application, context oriented software developmen

    Resolving Architectural Mismatches of COTS Through Architectural Reconciliation

    Get PDF
    The integration of COTS components into a system under development entails architectural mismatches. These have been tackled, so far, at the component level, through component adaptation techniques, but they also must be tackled at an architectural level of abstraction. In this paper we propose an approach for resolving architectural mismatches, with the aid of architectural reconciliation. The approach consists of designing and subsequently reconciling two architectural models, one that is forward-engineered from the requirements and another that is reverse-engineered from the COTS-based implementation. The final reconciled model is optimally adapted both to the requirements and to the actual COTS-based implementation. The contribution of this paper lies in the application of architectural reconciliation in the context of COTS-based software development. Architectural modeling is based upon the UML 2.0 standard, while the reconciliation is performed by transforming the two models, with the help of architectural design decisions.

    MORPH: A Reference Architecture for Configuration and Behaviour Self-Adaptation

    Full text link
    An architectural approach to self-adaptive systems involves runtime change of system configuration (i.e., the system's components, their bindings and operational parameters) and behaviour update (i.e., component orchestration). Thus, dynamic reconfiguration and discrete event control theory are at the heart of architectural adaptation. Although controlling configuration and behaviour at runtime has been discussed and applied to architectural adaptation, architectures for self-adaptive systems often compound these two aspects reducing the potential for adaptability. In this paper we propose a reference architecture that allows for coordinated yet transparent and independent adaptation of system configuration and behaviour

    mRUBiS: An Exemplar for Model-Based Architectural Self-Healing and Self-Optimization

    Full text link
    Self-adaptive software systems are often structured into an adaptation engine that manages an adaptable software by operating on a runtime model that represents the architecture of the software (model-based architectural self-adaptation). Despite the popularity of such approaches, existing exemplars provide application programming interfaces but no runtime model to develop adaptation engines. Consequently, there does not exist any exemplar that supports developing, evaluating, and comparing model-based self-adaptation off the shelf. Therefore, we present mRUBiS, an extensible exemplar for model-based architectural self-healing and self-optimization. mRUBiS simulates the adaptable software and therefore provides and maintains an architectural runtime model of the software, which can be directly used by adaptation engines to realize and perform self-adaptation. Particularly, mRUBiS supports injecting issues into the model, which should be handled by self-adaptation, and validating the model to assess the self-adaptation. Finally, mRUBiS allows developers to explore variants of adaptation engines (e.g., event-driven self-adaptation) and to evaluate the effectiveness, efficiency, and scalability of the engines

    Microservices and Machine Learning Algorithms for Adaptive Green Buildings

    Get PDF
    In recent years, the use of services for Open Systems development has consolidated and strengthened. Advances in the Service Science and Engineering (SSE) community, promoted by the reinforcement of Web Services and Semantic Web technologies and the presence of new Cloud computing techniques, such as the proliferation of microservices solutions, have allowed software architects to experiment and develop new ways of building open and adaptable computer systems at runtime. Home automation, intelligent buildings, robotics, graphical user interfaces are some of the social atmosphere environments suitable in which to apply certain innovative trends. This paper presents a schema for the adaptation of Dynamic Computer Systems (DCS) using interdisciplinary techniques on model-driven engineering, service engineering and soft computing. The proposal manages an orchestrated microservices schema for adapting component-based software architectural systems at runtime. This schema has been developed as a three-layer adaptive transformation process that is supported on a rule-based decision-making service implemented by means of Machine Learning (ML) algorithms. The experimental development was implemented in the Solar Energy Research Center (CIESOL) applying the proposed microservices schema for adapting home architectural atmosphere systems on Green Buildings
    corecore