Model-driven Update: An Approach to Runtime Evolution of Context-aware Software Systems

It is well known that a software system needs to evolve during its life time to cope with changes in its environments and/or requirements that were not anticipated during its development time. Developing a software system that evolves at runtime is still a difficult task. Issues like (a) lack of an approach to develop a system that has the ability to be changed at runtime and (b) lack of a mechanism to enable runtime evolution of a system in response to unanticipated changes need to be solved for easy and effective development and evolution of a software system. In this report, we introduce a novel approach to ease the task of developing and evolving context-aware systems. Our approach supports system’s modelling and its implementations generation from their models. These generated implementations have the ability to be evolved, where each generated system element is engineered with the ability to be added, removed, or modified at runtime. To enable system’s runtime evolution, we have developed a tool that enables the software engineer to load a running system model, change this model to take into account the unanticipated changes, and then reflect the required changes to the running system automatically. To demonstrate the viability of our approach, we used it to develop and evolve a context-aware route planner. We also assessed the performance of our approach through measuring the overhead caused by performing the system evolution at runtime. The results demonstrate that our approach is capable of performing runtime evolution in a short time.

[1]  Xiaodong Liu,et al.  Apto: A MDD-Based Generic Framework for Context-Aware Deeply Adaptive Service-Based Processes , 2010, 2010 IEEE International Conference on Web Services.

[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]  Alan W. Colman,et al.  ROAD4WS -- Extending Apache Axis2 for Adaptive Service Compositions , 2011, 2011 IEEE 15th International Enterprise Distributed Object Computing Conference.

[4]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[5]  Jeff Magee,et al.  A Case Study in Goal-Driven Architectural Adaptation , 2009, Software Engineering for Self-Adaptive Systems.

[6]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[7]  M. Dmitriev Towards Flexible and Safe Technology for Runtime Evolution of Java Language Applications , 2001 .

[8]  George Angelos Papadopoulos,et al.  Please Scroll down for Article Enterprise Information Systems a Survey of Software Adaptation in Mobile and Ubiquitous Computing a Survey of Software Adaptation in Mobile and Ubiquitous Computing , 2022 .

[9]  Kathryn S. McKinley,et al.  Dynamic software updates: a VM-centric approach , 2009, PLDI '09.

[10]  Betty H. C. Cheng,et al.  Model-based development of dynamically adaptive software , 2006, ICSE.

[11]  Haibo Chen,et al.  Dynamic Software Updating Using a Relaxed Consistency Model , 2011, IEEE Transactions on Software Engineering.

[12]  Raimundo José de Araújo Macêdo,et al.  A non-intrusive component-based approach for deploying unanticipated self-management behaviour , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[13]  Guido Governatori,et al.  Representing business contracts in RuleML , 2005, Int. J. Cooperative Inf. Syst..

[14]  Andrew Schultz,et al.  OPUS: Online Patches and Updates for Security , 2005, USENIX Security Symposium.

[15]  Scott Nettles,et al.  Dynamic software updating , 2001, PLDI '01.

[16]  Gunter Saake,et al.  Towards Unanticipated Runtime Adaptation of Java Applications , 2008, 2008 15th Asia-Pacific Software Engineering Conference.

[17]  Huw Evans,et al.  DRASTIC and GRUMPS: design and implementation of two run-time evolution frameworks , 2004, IEE Proc. Softw..

[18]  Manuel Oriol,et al.  Practical dynamic software updating for C , 2006, PLDI '06.

[19]  H. Maturana,et al.  The Tree of Knowledge: The Biological Roots of Human Understanding , 2007 .

[20]  Jun Han,et al.  Consistency and interoperability checking for component interaction rules , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[21]  Brice Morin,et al.  Taming Dynamically Adaptive Systems using models and aspects , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[22]  Umeshwar Dayal,et al.  The architecture of an active database management system , 1989, SIGMOD '89.

[23]  Bernhard Rumpe,et al.  Domain specific modeling , 2005, Software & Systems Modeling.

[24]  Jun Han,et al.  An Approach to Model-Based Development of Context-Aware Adaptive Systems , 2011, 2011 IEEE 35th Annual Computer Software and Applications Conference.

[25]  Quan Z. Sheng,et al.  Model-Driven Development of Adaptive Service-Based Systems with Aspects and Rules , 2010, WISE.

[26]  Heiko Ludwig,et al.  Web Service Level Agreement (WSLA) Language Specification , 2003 .

[27]  Walter Cazzola,et al.  Feature-oriented runtime adaptation , 2009, SINTER '09.

[28]  Laurence Duchien,et al.  Context awareness for dynamic service-oriented product lines , 2009, SPLC.

[29]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[30]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..