A Formal Framework for On-line Software Version Change

The usual way of installing a new version of a software system is to shut down the running program and then install the new version. This necessitates a sometimes unacceptable delay during which service is denied to the users of the software. An online software replacement system replaces parts of the software while it is in execution, thus eliminating the shutdown. While a number of implementations of online version change systems have been described in the literature, little investigation has been done on its theoretical aspects. We describe a formal framework for studying online software version change. We give a general definition of validity of an online change, show that it is in general undecidable and then develop sufficient conditions for ensuring validity for a procedural language.

[1]  Robert S. Fabry,et al.  How to design a system in which modules can be changed on the fly , 1976, ICSE '76.

[2]  Klaus-Peter Löhr,et al.  Dynamic Restructuring in an Experimental Operating System , 1978, IEEE Transactions on Software Engineering.

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

[4]  Jeff Magee,et al.  Dynamic Configuration for Distributed Systems , 1985, IEEE Transactions on Software Engineering.

[5]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[6]  Dewayne E. Perry The inscape environment , 1989, ICSE '89.

[7]  Morris Sloman,et al.  Constructing Distributed Systems in Conic , 1989, IEEE Trans. Software Eng..

[8]  Ophir Frieder,et al.  Dynamic program updating: A software maintenance technique for minimizing software, downtime , 1989, J. Softw. Maintenance Res. Pract..

[9]  Mario Barbacci,et al.  Application-level programming , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

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

[11]  James M. Purtilo,et al.  Dynamic reconfiguration of distributed programs , 1991, [1991] Proceedings. 11th International Conference on Distributed Computing Systems.

[12]  Ophir Frieder,et al.  On dynamically updating a computer program: From concept to prototype , 1991, J. Syst. Softw..

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

[14]  Ophir Frieder,et al.  On-the-fly program modification: systems for dynamic updating , 1993, IEEE Software.

[15]  James M. Purtilo,et al.  The POLYLITH software bus , 1994, TOPL.

[16]  Deepak Gupta,et al.  On Line Software Version Change , 1994 .