Towards modelling and analysis of a coordination protocol for dynamic software adaptation

Software systems are increasingly expected to continue operating at run-time with minimal human interaction. They should consequently be equipped with self-adaptation capabilities in order to adapt themselves in response to changes in their execution conditions. While most of the research in this area focuses on individual parts of an adaptive system, our work leverages on this research but tackles the problem where interdependent and distributed adaptations are concurrently performed. In this paper, we approach behavioural changes of component-based systems in two steps. First, we propose a process to individually adapt one component at a time. Second, we elaborate a coordination protocol to maintain globally consistent state when implementing distributed adaptations. Motivated by the potential benefits of using formalisms, we construct a formal model of our protocol using Coloured Petri Nets in order for an adaptive system to be trusted after adaptation. We verify key behavioural properties and conduct CTL model checking to assess the correctness of the model and thereby the correctness of the protocol.

[1]  Lars Michael Kristensen,et al.  Coloured Petri Nets and CPN Tools for modelling and validation of concurrent systems , 2007, International Journal on Software Tools for Technology Transfer.

[2]  R. Laddaga Self Adaptive Software Problems and Projects , 2006, 2006 Second International IEEE Workshop on Software Evolvability (SE'06).

[3]  Dilma Da Silva,et al.  Enabling autonomic behavior in systems software with hot swapping , 2003, IBM Syst. J..

[4]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[5]  Kurt Jensen,et al.  An Introduction to the Theoretical Aspects of Coloured Petri Nets , 1993, REX School/Symposium.

[6]  Sandeep S. Kulkarni,et al.  Concurrency Tradeoffs in Dynamic Adaptation , 2006, 26th IEEE International Conference on Distributed Computing Systems Workshops (ICDCSW'06).

[7]  Cecilia Mascolo,et al.  CARISMA: Context-Aware Reflective mIddleware System for Mobile Applications , 2003, IEEE Trans. Software Eng..

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

[9]  Fabio Kon,et al.  Dependence management in component-based distributed systems , 2000, IEEE Concurr..

[10]  Betty H. C. Cheng,et al.  Adding Safeness to Dynamic Adaptation Techniques , 2004 .

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

[12]  Insup Lee,et al.  DYMOS: a dynamic modification system , 1983 .

[13]  Jim Dowling,et al.  The Decentralised Coordination of Self-Adaptive Components for Autonomic Distributed Systems , 2005 .

[14]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[15]  A. Cheng,et al.  Model Checking Coloured Petri Nets - Exploiting Strongly Connected Components , 1997 .

[16]  Deepak Gupta,et al.  On‐line software version change using state transfer between processes , 1993, Softw. Pract. Exp..

[17]  Pierre Verbaeten,et al.  A modular approach enforcing safe reconfiguration of producer-consumer applications , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[18]  Kaveh M. Moazami-Goudarzi,et al.  Consistency preserving dynamic reconfiguration of distributed systems , 1999 .

[19]  Matti A. Hiltunen,et al.  Constructing adaptive software in distributed systems , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[20]  Alessandro Orso,et al.  A technique for dynamic updating of Java software , 2002, International Conference on Software Maintenance, 2002. Proceedings..