5 research outputs found

    Run-time Support to Manage Architectural Variability Speci ed with CVL

    Get PDF
    The execution context in which pervasive systems or mobile computing run changes continuously. Hence, applications for these systems should be adapted at run-time according to the current context. In order to implement a context-aware dynamic reconfiguration service, most approaches usually require to model at design-time both the list of all possible configurations and the plans to switch among them. In this paper we present an alternative approach for the automatic run-time generation of application configurations and the reconfiguration plans. The generated configurations are optimal regarding di erent criteria, such as functionality or resource consumption (e.g. battery or memory). This is achieved by: (1) modelling architectural variability at design-time using Common Variability Language (CVL), and (2) using a genetic algorithm that finds at run-time nearly-optimal configurations using the information provided by the variability model. We also specify a case study and we use it to evaluate our approach, showing that it is efficient and suitable for devices with scarce resources.Campus de Excelencia Internacional Andalucia Tech y proyectos de investigación TIN2008-01942, P09-TIC-5231 and INTER-TRUST FP7-317731

    Run-time Adaptation of Mobile Applications using Genetic Algorithms

    Get PDF
    Mobile applications run in environments where the context is continuously changing. Therefore, it is necessary to provide support for the run-time adaptation of these applications. This support is usually achieved by middleware platforms that offer a context-aware dynamic reconfiguration service. However, the main shortcoming of existing approaches is that both the list of possible configurations and the plans to adapt the application to a new configuration are usually specified at design-time. In this paper we present an approach that allows the automatic generation at run-time of application configurations and of reconfiguration plans. Moreover, the generated configurations are optimal regarding the provided functionality and, more importantly, without exceeding the available resources (e.g. battery). This is performed by: (1) having the information about the application variability available at runtime using feature models, and (2) using an genetic algorithm that allows generating an optimal configuration at runtime. We have specified a case study and evaluated our approach, and the results show that it is efficient enough as to be used on mobile devices without introducing an excessive overhead.Campus de Excelencia Andalucía Tech y Proyectos de investigación TIN2008-01942, P09-TIC-5231 y INTER-TRUST FP7-317731

    Run-time Variability with Roles

    Get PDF
    Adaptability is an intrinsic property of software systems that require adaptation to cope with dynamically changing environments. Achieving adaptability is challenging. Variability is a key solution as it enables a software system to change its behavior which corresponds to a specific need. The abstraction of variability is to manage variants, which are dynamic parts to be composed to the base system. Run-time variability realizes these variant compositions dynamically at run time to enable adaptation. Adaptation, relying on variants specified at build time, is called anticipated adaptation, which allows the system behavior to change with respect to a set of predefined execution environments. This implies the inability to solve practical problems in which the execution environment is not completely fixed and often unknown until run time. Enabling unanticipated adaptation, which allows variants to be dynamically added at run time, alleviates this inability, but it holds several implications yielding system instability such as inconsistency and run-time failures. Adaptation should be performed only when a system reaches a consistent state to avoid inconsistency. Inconsistency is an effect of adaptation happening when the system changes the state and behavior while a series of methods is still invoking. A software bug is another source of system instability. It often appears in a variant composition and is brought to the system during adaptation. The problem is even more critical for unanticipated adaptation as the system has no prior knowledge of the new variants. This dissertation aims to achieve anticipated and unanticipated adaptation. In achieving adaptation, the issues of inconsistency and software failures, which may happen as a consequence of run-time adaptation, are evidently addressed as well. Roles encapsulate dynamic behavior used to adapt players representing the base system, which is the rationale to select roles as the software system's variants. Based on the role concept, this dissertation presents three mechanisms to comprehensively address adaptation. First, a dynamic instance binding mechanism is proposed to loosely bind players and roles. Dynamic binding of roles enables anticipated and unanticipated adaptation. Second, an object-level tranquility mechanism is proposed to avoid inconsistency by allowing a player object to adapt only when its consistent state is reached. Last, a rollback recovery mechanism is proposed as a proactive mechanism to embrace and handle failures resulting from a defective composition of variants. A checkpoint of a system configuration is created before adaptation. If a specialized bug sensor detects a failure, the system rolls back to the most recent checkpoint. These mechanisms are integrated into a role-based runtime, called LyRT. LyRT was validated with three case studies to demonstrate the practical feasibility. This validation showed that LyRT is more advanced than the existing variability approaches with respect to adaptation due to its consistency control and failure handling. Besides, several benchmarks were set up to quantify the overhead of LyRT concerning the execution time of adaptation. The results revealed that the overhead introduced to achieve anticipated and unanticipated adaptation to be small enough for practical use in adaptive software systems. Thus, LyRT is suitable for adaptive software systems that frequently require the adaptation of large sets of objects

    Framework generativa para edge devices

    Get PDF
    Dissertação de mestrado integrado em Engenharia Eletrónica Industrial e ComputadoresNos dias de hoje, as empresas de software tentando captar o maior número de clientes, lançam para o mercado uma vasta gama de produtos. Metas temporais têm que ser cumpridas pela empresa aquando do desenvolvimento de um novo produto, de forma a evitar que empresas concorrentes cheguem primeiro ao mercado com um produto de especificações semelhantes. Todavia, o desenvolvimento de um produto em tempo reduzido pode levar a imperfeições no mesmo. E para atenuar este problema, as empresas são obrigadas a adotar novos processos que reduzam o time-to-market sem afetar a qualidade do produto. Evitando assim, que o produto entre no mercado com problemas que poderiam resultar em prejuízos, como: muitos recursos humanos alocados à manutenção pós venda do produto, perda de clientes ou até indemnizações aos clientes lesados. Normalmente, os produtos desenvolvidos por uma empresa pertencem à mesma família de produtos, onde a base dos diversos produtos é comum, só variando algumas partes dos mesmos, para adaptar os produtos aos diferentes níveis de exigência dos clientes. Desta forma, partes de um produto que já se encontra desenvolvido, testado e a ser comercializado podem ser reutilizadas para o desenvolvimento de novos produtos, acelerando assim o processo de desenvolvimento. Um bom exemplo de família de produtos onde se verifica o padrão apresentado anteriormente são as redes de sensores sem fios (WSNs). Estes tipos de redes são hoje em dia amplamente utilizadas em diversas aplicações, tais como: domésticas, industriais, engenharia civil, militares, monitorização ambiental e saúde. Sendo a base da rede semelhante às várias aplicações, e só variam algumas configurações específicas, tipos de sensores e tipos de atuadores atribuídos aos nós da rede (edge devices). Para acelerar o processo do desenvolvimento de aplicações que utilizam WSNs, é proposto nesta dissertação a elaboração de uma framework generativa, que permita obter um bom compromisso entre a gestão de variabilidade e o desempenho dos edge devices. Na fase de design da framework serão utilizadas técnicas de Software Product Lines (SPL) para identificar o grau de variabilidade das funcionalidades dos edge devices. E na fase de implementação será utilizado template metaprogramming em C++ para gerir essa variabilidade.Nowadays, software companies trying to reach the largest possible number of customers, launch a wide range of products. Deadlines must be complied when developing a new product, in order to prevent that competitors arrive earlier to market with a product of similar specifications. However, the development of a product in a short timeframe may lead to imperfections. In order to mitigate this problem, software houses are forced to adopt new processes that reduce time-to-market without affecting product quality. This is done in order, to prevent the product entering the market with bugs that could result in losses, such as: many human resources allocated to the after-sales maintenance of the product, loss of customers or even legal damages. Usually, the products developed by a company belong to the same family of products, with a common base to all the products, varying some parts to adapt the products to different demand levels. Thus, parts of a product which were already developed, tested and marketed can be reused for the development of new products, thus speeding up the development process. A good example of a family of products where there is the pattern previously presented are wireless sensor networks (WSNs). These types of networks are nowadays widely used in various applications, such as: domestic, industrial, civil engineering, military, environmental monitoring and health. Being the base of the network common to the various applications and vary only some specific configurations, sensor types and actuators assigned to the nodes in the network (edge devices). To accelerate the development of applications using WSNs, it is proposed in this dissertation the development of a generative framework, enable to obtain a good compromise between the variability management and edge device’s performance. In the design phase of the framework, Software Product Lines techniques will be used to identify the degree of variability of the functionalities of edge devices. In the framework’s implementation phase template metaprogramming in C++ will be used to manage this variability

    Model Driven Development of Agents for Ambient Intelligence

    Get PDF
    En esta tesis se define un proceso dirigido por modelos para el desarrollo de sistemas de Inteligencia Ambiental (AmI) basados en agentes auto-gestionados que pueden ser ejecutados en los dispositivos más usuales de los entornos AmI, teléfonos inteligentes o sensores. Nuestra solución está centrada en una arquitectura de MAS totalmente distribuida y descentralizada, gracias a la integración de los agentes en los dispositivos heterogéneos que suelen formar parte de un sistema AmI
    corecore