loading...
 This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Tranquility: A Low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates
December 2007 (vol. 33 no. 12)
pp. 856-868
This paper revisits a problem that was identified by Kramer and Magee: placing a system in a consistent state before and after runtime changes. We show that their notion of quiescence as a necessary and sufficient condition for safe runtime changes is too strict and results in a significant disruption in the application being updated. In this paper, we introduce a weaker condition: tranquility. We show that tranquility is easier to obtain and less disruptive for the running application but still a sufficient condition to ensure application consistency. We present an implementation of our approach on a component middleware platform and experimentally verify the validity and practical applicability of our approach using data retrieved from a case study.

[1] 856 J. Aldrich, V. Sazawal, C. Chambers, and D. Notkin, “Language Support for Connector Abstractions,” Proc. 17th European Conf. Object-Oriented Programming (ECOOP '03), pp. 74-102, 2003.[2] Y. Berbers, P. Rigole, Y. Vandewoude, and S.V. Baelen, “Components and Contracts in Software Development for Embedded Systems,” Proc. First European Conf. Use of Modern Information and Communication Technologies, pp. 219-226, 2004.[3] G. Bieber and J. Carpenter, “Introduction to Service-Oriented Programming,” www.openwings.org/download/specsService OrientedIntroduction.pdf , Sept. 2001.[4] S. Bohner and R. Arnold, An Introduction to Software Change Impact Analysis, pp. 1-26. IEEE CS Press, 1996.[5] A.L. de Moura, C. Ururahy, R. Cerque, and N. Rodriguez, “Dynamic Support for Distributed Auto-Adaptive Applications,” Proc. Second ICDCS Int'l Workshop Aspect Oriented Programming for Distributed Computing Systems, vol. 2, 2002.[6] R.S. Fabry, “How to Design a System in which Modules Can Be Changed on the Fly,” Proc. Second Int'l Conf. Software Eng. (ICSE), pp. 470-476, 1976.[7] P. Gahide, N. Bouraqadi, and L. Duchien, “Promoting Component Reuse by Integrating Aspects and Contracts in an Architecture Model,” Proc. First AOSD Workshop Aspects, Components, and Patterns for Infrastructure Software, 2002.[8] J. Gerlach and S.V. Baelen, “Run-Time Evolution and Dynamic (Re)Configuration of Components: Model, Notation, Process and System Support,” technical report, Katholieke Universiteit Leuven, 2003.[9] H. Goullon, R. Isle, and K.-P. LShr, “Dynamic Restructuring in an Experimental Operating System,” Proc. Third Int'l Conf. Software Eng. (ICSE), 1978.[10] J. Gray and A. Reuter, Transaction Processing: Concepts and Techniques. Morgan Kauffman, 1993.[11] D. Gupta, “On-Line Software Version Change,” PhD dissertation, Dept. of Computer Science and Eng., Indian Inst. of Technology, Kanpur, Nov. 1994.[12] D. Gupta, P. Jalote, and G. Barua, “A Formal Framework for Online Software Version Change,” IEEE Trans. Software Eng., vol. 22, no. 2, pp. 120-131, Feb. 1996.[13] M. Hicks, “Dynamic Software Updating,” PhD dissertation, Univ. of Pennsylvania, 2001.[14] C.R. Hofmeister, “Dynamic Reconfiguration of Distributed Applications,” PhD dissertation, Univ. of Maryland, College Park, 1993.[15] A. Ketfi and N. Belkhatir, “Dynamic Interface Adaptability in Service Oriented Software,” Proc. Eighth Int'l Workshop Component-Oriented Programming, 2003.[16] J. Kramer and J. Magee, “The Evolving Philosophers Problem: Dynamic Change Management,” IEEE Trans. Software Eng., vol. 16, no. 11, pp. 1293-1306, Nov. 1990.[17] B. Liskov and L. Shrira, “Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems,” Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, pp. 260-267, 1988.[18] A. Rausch, “Software Evolution in Componentware—A Practical Approach,” Proc. 12th Australian Software Eng. Conf., 2000.[19] C. Szyperski, Component Software: Beyond Object-Oriented Programming. Addison-Wesley, Jan. 1998.[20] D. Urting, S.V. Baelen, T. Holvoet, P. Rigole, Y. Vandewoude, and Y. Berbers, “A Tool for Component Based Design of Embedded Software,” Proc. 40th Int'l Conf. Technology of Object-Oriented Languages and Systems (Tools Pacific '02), Feb. 2002.[21] Y. Vandewoude, “Dynamically Updating Component-Oriented Applications,” PhD dissertation, Katholieke Universiteit Leuven, 2007.[22] Y. Vandewoude and Y. Berbers, “Semantically Sane Component Preemption,” Proc. ERCIM Workshop Software Evolution, Apr. 2006.[23] Y. Vandewoude, P. Ebraert, Y. Berbers, and T. D'Hondt, “An Alternative to Quiescence: Tranquility,” Proc. 22nd IEEE Int'l Conf. Software Maintenance (ICSM '06), Oct. 2006.[24] A. Wils, P. Rigole, Y. Berbers, and K.D. Vlaminck, “Ambient Computing Using Component Resource Contracts,” Proc. IASTED Conf. Advances in Computer Science and Technology, 2004.

Index Terms:
Distributed objects, Componentware, Application-aware adaptation, Distributed objects, components, containers
Citation:
Yves Vandewoude, Peter Ebraert, Yolande Berbers, Theo D'Hondt, "Tranquility: A Low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates," IEEE Transactions on Software Engineering, vol. 33, no. 12, pp. 856-868, Aug. 2007, doi:10.1109/TSE.2007.70733
Usage of this product signifies your acceptance of the Terms of Use.