5 research outputs found
Run-time Support to Manage Architectural Variability Speci ed with CVL
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
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
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
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
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