Self-adaptation of mobile systems driven by the Common Variability Language

The execution context in which pervasive systems or mobile computing run changes continually. Hence, applications for these systems require support for self-adaptation to the continual context changes. Most of the approaches for self-adaptive systems implement a reconfiguration service that receives as input the list of all possible configurations and the plans to switch between them. In this paper we present an alternative approach for the automatic generation of application configurations and the reconfiguration plans at runtime. With our approach, the generated configurations are optimal as regards different criteria, such as functionality or resource consumption (e.g. battery or memory). This is achieved by: (1) modelling architectural variability at design-time using the Common Variability Language (CVL), and (2) using a genetic algorithm that finds nearly-optimal configurations at run-time 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. We specify an approach for the dynamic reconfiguration of mobile applications.We model a mobile application with variability which can be reconfigured at runtime.We simulate the execution of the mobile application when our dynamic reconfiguration service is applied and not applied, respectively.We measure the battery life as well as the overall utility of the application perceived by the user.Applying our dynamic reconfiguration, the battery life is incremented by 45.9% and the utility is incremented by 10.31%.

[1]  Gustavo G. Pascual Aspect-Oriented Reconfigurable Middleware for Pervasive Systems , 2011, CAiSE.

[2]  Frank Eliassen,et al.  MUSIC: Middleware Support for Self-Adaptation in Ubiquitous and Service-Oriented Environments , 2009, Software Engineering for Self-Adaptive Systems.

[3]  Theo D'Hondt,et al.  Tranquility: A Low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates , 2007, IEEE Transactions on Software Engineering.

[4]  Bradley R. Schmerl,et al.  Making Self-Adaptation an Engineering Reality , 2005, Self-star Properties in Complex Information Systems.

[5]  Gunnar Brataas,et al.  Performance property prediction supporting variability for adaptive mobile systems , 2011, SPLC '11.

[6]  Alec Wolman,et al.  MAUI: making smartphones last longer with code offload , 2010, MobiSys '10.

[7]  Jean Bézivin,et al.  Weaving Models with the Eclipse AMW plugin , 2006 .

[8]  Nearchos Paspallis,et al.  Middleware-based development of context-aware applications with reusable components , 2012 .

[9]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[10]  Krzysztof Zielinski,et al.  AAOP-based dynamically reconfigurable monitoring system , 2010, Inf. Softw. Technol..

[11]  Bernhard Rumpe,et al.  Delta-oriented architectural variability using MontiCore , 2011, ECSA '11.

[12]  Nelly Bencomo,et al.  A View of the Dynamic Software Product Line Landscape , 2012, Computer.

[13]  Sven Apel,et al.  Tailoring dynamic software product lines , 2011, GPCE '11.

[14]  Xin Peng,et al.  Towards Feature-Oriented Variability Reconfiguration in Dynamic Software Product Lines , 2011, ICSR.

[15]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[16]  Douglas C. Schmidt,et al.  Selecting highly optimal architectural feature sets with Filtered Cartesian Flattening , 2009, J. Syst. Softw..

[17]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, CAiSE.

[18]  Michael G. Hinchey,et al.  Knowledge representation for self-adaptive behavior , 2012, C3S2E '12.

[19]  Alvin T. S. Chan,et al.  MobiPADS: A Reflective Middleware for Context-Aware Mobile Computing , 2003, IEEE Trans. Software Eng..

[20]  Sam Malek,et al.  Software adaptation patterns for service-oriented architectures , 2010, SAC '10.

[21]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[22]  Antonio Ruiz Cortés,et al.  Mapping Feature Models onto Component Models to Build Dynamic Software Product Lines , 2007, SPLC.

[23]  Koji Hashimoto,et al.  Dynamic software adaptation for service-oriented product lines , 2011, SPLC '11.

[24]  Sooyong Park,et al.  Dynamic Software Product Lines , 2008, Computer.

[25]  Yinglin Wang,et al.  A genetic algorithm for optimized feature selection with resource constraints in software product lines , 2011, J. Syst. Softw..

[26]  Bradley R. Schmerl,et al.  Improving Architecture-Based Self-Adaptation through Resource Prediction , 2009, Software Engineering for Self-Adaptive Systems.

[27]  Thaís Vasconcelos Batista,et al.  PL-AspectualACME: An Aspect-Oriented Architectural Description Language for Software Product Lines , 2011, ECSA.

[28]  Jules White,et al.  Automating Product-Line Variant Selection for Mobile Devices , 2007 .

[29]  Tao Gu,et al.  A service-oriented middleware for building context-aware services , 2005, J. Netw. Comput. Appl..

[30]  Vicente Pelechano,et al.  Applying Software Product Lines to Build Autonomic Pervasive Systems , 2008, 2008 12th International Software Product Line Conference.

[31]  Vicente Pelechano,et al.  Applying CVL to business process variability management , 2012, VARY '12.

[32]  Frank Eliassen,et al.  Scalability of Decision Models for Dynamic Product Lines , 2007, SPLC.

[33]  Lidia Fuentes,et al.  Automatic Analysis of Software Architectures with Variability , 2013, ICSR.

[34]  Lidia Fuentes,et al.  Autonomic Computing Driven by Feature Models and Architecture in FamiWare , 2011, ECSA.

[35]  Brice Morin,et al.  Combining aspect-oriented modeling with property-based reasoning to improve user interface adaptation , 2011, EICS '11.