Abstract
Modern applications distributed across networks such as the Internet may need to evolve without compromising application availability. Object systems are well suited for runtime update, as encapsulation clearly separates internal structure and external services. This paper considers a type-safe asynchronous mechanism for dynamic class upgrade, allowing class hierarchies to be updated in such a way that the existing objects of the upgraded class and of its subclasses gradually evolve at runtime. New external services may be introduced in classes and old services may be reprogrammed while static type checking ensures that asynchronous class updates maintain type safety. A formalization is shown in the Creol language which, addressing distributed and object-oriented systems, provides a natural framework for dynamic upgrades.
The original version of this chapter was revised: The copyright line was incorrect. This has been corrected. The Erratum to this chapter is available at DOI: 10.1007/978-3-540-34895-5_20
Chapter PDF
References
Ajmani, S., Liskov, B., Shrira, L.: Scheduling and simulation: How to upgrade distributed systems. In: Hot Topics in Op. Sys. (HotOS-IX), pp. 43–48 (2003)
Armstrong, J.L., Virding, S.R.: Erlang - an experimental telephony programming language. In: XIII International Switching Symposium (June 1990)
Bierman, G., Hicks, M., Sewell, P., Stoyle, G.: Formalizing dynamic software updating. In: Unanticipated Software Evolution (USE) (May 2003)
Bloom, T.: Dynamic Module Replacement in a Distributed Programming System. PhD thesis, MIT, Also available as MIT LCS Tech. Report 303 (1983)
Boyapati, C., et al.: Lazy modular upgrades in persistent object stores. In: OOPSLA 2003, pp. 403–417. ACM Press, New York (2003)
Clavel, M., et al.: Maude: Specification and programming in rewriting logic. Theoretical Computer Science 285, 187–243 (2002)
Damiani, F., Dezani-Ciancaglini, M., Giannini, P.: Re-classification and multithreading: FickleMT. In: SAC 2004, ACM Press, New York (2004)
Drossopoulou, S., Damiani, F., Dezani-Ciancaglini, M., Giannini, P.: More dynamic object re-classification: FickleII. ACM TOPLAS 24(2), 153–191 (2002)
Duggan, D.: Type-Based hot swapping of running modules. In: Intl. Conf. Functional Programming (ICFP-2001). ACM SIGPLAN, September 2001, vol. 36(10), pp. 62–73 (2001)
Gupta, D., Jalote, P., Barua, G.: A formal framework for on-line software version change. IEEE Trans. Software Eng. 22(2), 120–131 (1996)
Hjálmtýsson, G., Gray, R.S.: Dynamic C++ classes: A lightweight mechanism to update code in a running program. In: Proc. USENIX Tech. Conf. (May 1998)
Hofmeister, C.R., Purtilo, J.M.: A framework for dynamic reconfiguration of distributed programs. Tech.Report CS-TR-3119, Univ.of Maryland (1993)
Johnsen, E.B., Owe, O.: A dynamic binding strategy for multiple inheritance and asynchronously communicating objects. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2004. LNCS, vol. 3657, Springer, Heidelberg (2005)
Johnsen, E.B., Owe, O., Simplot-Ryl, I.: A dynamic class construct for asynchronous concurrent objects. In: Steffen, M., Zavattaro, G. (eds.) FMOODS 2005. LNCS, vol. 3535, Springer, Heidelberg (2005)
Johnsen, E.B., Owe, O., Yu, I.C.: Creol: A type-safe object-oriented model for distributed concurrent systems. Res.Rep.327, Ifi, Univ.of Oslo (2005)
Kramer, J., Magee, J.: The Evolving Philosophers Problem: Dynamic change management. IEEE Trans. on Software Engineering 16(11), 1293–1306 (1990)
Malabarba, S., Pandey, R., Gragg, J., Barr, E., Barnes, J.F.: Runtime support for type-safe dynamic Java classes. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, Springer, Heidelberg (2000)
Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science 96, 73–155 (1992)
Orso, A., Rao, A., Harrold, M.J.: A technique for dynamic updating of Java software. In: Software Maintenance (ICSM 2002), pp. 649–658. IEEE Press, Los Alamitos (2002)
Pierce, B.C.: Types and Programming Languages. The MIT Press, Cambridge (2002)
Soules, C.A.N., et al.: System support for online reconfiguration. In: Proc. USENIX Tech. Conf., pp. 141–154 (2003)
Stoyle, G., Hicks, M., Bierman, G., Sewell, P., Neamtiu, I.: Mutatis Mutandis: Safe and flexible dynamic software updating. In: Proc. POPL, ACM Press, New York (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 IFIP International Federation for Information Processing
About this paper
Cite this paper
Yu, I.C., Johnsen, E.B., Owe, O. (2006). Type-Safe Runtime Class Upgrades in Creol. In: Gorrieri, R., Wehrheim, H. (eds) Formal Methods for Open Object-Based Distributed Systems. FMOODS 2006. Lecture Notes in Computer Science, vol 4037. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11768869_16
Download citation
DOI: https://doi.org/10.1007/11768869_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34893-1
Online ISBN: 978-3-540-34895-5
eBook Packages: Computer ScienceComputer Science (R0)