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 upgrade, as encapsulation clearly separates internal structure and external services. This paper considers a mechanism for dynamic class upgrade, allowing class hierarchies to be upgraded in such a way that the existing objects of the upgraded class and of its subclasses gradually evolve at runtime. The mechanism is integrated in Creol, a high-level language which targets distributed applications by means of concurrent objects communicating by asynchronous method calls. The dynamic class construct is given a formal semantics in rewriting logic, extending the semantics of the Creol language.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Ajmani, S., Liskov, B., Shrira, L.: Scheduling and simulation: How to upgrade distributed systems. In: 9th Workshop on Hot Topics in Operating Systems (HotOS-IX), USENIX, May 2003, pp. 43–48 (2003)
Almeida, J.P.A., Wegdam, M., van Sinderen, M., Nieuwenhuis, L.: Transparent dynamic reconfiguration for CORBA. In: Proc. 3rd Intl. Symp. on Distributed Objects and Applications (DOA), September 2001, pp. 197–207. IEEE CS Press, Los Alamitos (2001)
Armstrong, J.L., Virding, S.R.: Erlang - an experimental telephony programming language. In: XIII Intl. Switching Symposium (June 1990)
Bidan, C., Issarny, V., Saridakis, T., Zarras, A.: A dynamic reconfiguration service for CORBA. In: 4th Intl. Conf. on Configurable Dist. Systems, May 1998, pp. 35–42. IEEE, Los Alamitos (1998)
Bierman, G., Hicks, M., Sewell, P., Stoyle, G.: Formalizing dynamic software updating. In: Proc. of the 2nd Intl. Workshop on Unanticipated Software Evolution (USE) (April 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., Liskov, B., Shrira, L., Moh, C.-H., Richman, S.: Lazy modular upgrades in persistent object stores. In: Crocker, R., Steele Jr., G.L. (eds.) Proc. ACM Conf. on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’03), pp. 403–417. ACM Press, New York (2003)
Clavel, M., Durán, F., Eker, S., Lincoln, P., MartÃ-Oliet, N., Meseguer, J., Quesada, J.F.: 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: Proc. Symp. on Applied Computing (SAC’04), pp. 1297–1304. ACM, New York (2004)
Drossopoulou, S., Damiani, F., Dezani-Ciancaglini, M., Giannini, P.: More dynamic object re-classification: FickleII. ACM Trans. on Prog. Lang. and Systems 24(2), 153–191 (2002)
Duggan, D.: Type-Based hot swapping of running modules. In: Norris, C., Fenwick, J.J.B. (eds.) Proc. of the 6th Intl. Conf. on Functional Programming(ICFP 01). ACM SIGPLAN notices, vol. 36(10), pp. 62–73. ACM Press, New York (September 2001)
Goguen, J.A., Winkler, T., Meseguer, J., Futatsugi, K., Jouannaud, J.-P.: Introducing OBJ. In: Goguen, J.A., Malcolm, G. (eds.) Software Engineering with OBJ: Algebraic Specification in Action, Advances in Formal Methods, ch. 1, pp. 3–167. Klüwer, Dordrecht (2000)
Gupta, D., Jalote, P., Barua, G.: A formal framework for on-line software version change. IEEE Trans. Software Eng. 22(2), 120–131 (1996)
Hall, R.S., Heimbigner, D., van der Hoek, A., Wolf, A.L.: An architecture for postdevelopment configuration management in a wide-area network. In: Intl. Conf. on Dist. Computing Systems, May 1997, pp. 269–279. IEEE CS Press, Los Alamitos (1997)
Hjálmtýsson, G., Gray, R.S.: Dynamic C++ classes: A lightweight mechanism to update code in a running program. In: Proc. 1998 USENIX Technical Conf. USENIX (May 1998)
Hofmeister, C.R., Purtilo, J.M.: A framework for dynamic reconfiguration of distributed programs. Technical Report CS-TR-3119, University of Maryland, College Park (1993)
Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. In: Proc. 2nd IEEE Intl. Conf. on Software Engineering and Formal Methods (SEFM’04), pp. 188–197. IEEE CS Press, Los Alamitos (September 2004)
Johnsen, E.B., Owe, O.: Inheritance in the presence of asynchronous method calls. In: Proc. 38th Hawaii Intl. Conf. on System Sciences (HICSS’05). IEEE CS Press, Los Alamitos (January 2005)
Johnsen, E.B., Owe, O., Axelsen, E.W.: A run-time environment for concurrent objects with asynchronous methods calls. In: Proc. 5th Intl. Workshop on Rewriting Logic and its Applications (WRLA’04). Electr. Notes Theor. Comput. Sci, vol. 117, pp. 375–392 (January 2005)
Ketfi, A., Belkhatir, N.: A metamodel-based approach for the dynamic reconfiguration of component-based software. In: Bosch, J., Krueger, C. (eds.) ICOIN 2004 and ICSR 2004. LNCS, vol. 3107, pp. 264–273. Springer, Heidelberg (2004)
Kramer, J., Magee, J.: The Evolving Philosophers Problem: Dynamic change management. IEEE Trans. Software Eng. 16(11), 1293–1306 (1990)
Malabarba, S., Pandey, R., Gragg, J., Barr, E., Barnes, J.F.: Runtime support for typesafe dynamic Java classes. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 337–361. Springer, Heidelberg (2000)
Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theoretical. Computer Science 96, 73–155 (1992)
Najm, E., Stefani, J.-B.: A formal semantics for the ODP computational model. Computer Networks and ISDN Systems 27, 1305–1329 (1995)
Orso, A.: Rao, and M. J. Harrold. A technique for dynamic updating of Java software. In: Proc. Intl. Conf. on Software Maintenance (ICSM 2002), pp. 649–658. IEEE CS Press, Los Alamitos (October 2002)
Ritzau, T., Andersson, J.: Dynamic deployment of Java applications. In: Java for Embedded Systems Workshop, London (May 2000)
Soules, C.A.N., et al.: System support for online reconfiguration. In: Proc. 2003 USENIX Technical Conf., pp. 141–154. USENIX (2003)
Stojmenović, M.: Seddigh, and J. Zunic. Dominating sets and neighbor elimination based broadcasting algorithms in wireless networks. IEEE Trans. on Parallel and Distributed Systems 13, 14–25 (2002)
Stoyle, G., Hicks, M., Bierman, G., Sewell, P., Neamtiu, I.: Mutatis Mutandis: Safe and flexible dynamic software updating. In: Proc. of the Conf. on Principles of Programming Languages (POPL’05), pp. 183–194. ACM Press, New York (January 2005)
Yonezawa, A.: ABCL: An Object-Oriented Concurrent System. MIT Press, Cambridge (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 IFIP International Federation for Information Processing
About this paper
Cite this paper
Johnsen, E.B., Owe, O., Simplot-Ryl, I. (2005). A Dynamic Class Construct for Asynchronous Concurrent Objects. In: Steffen, M., Zavattaro, G. (eds) Formal Methods for Open Object-Based Distributed Systems. FMOODS 2005. Lecture Notes in Computer Science, vol 3535. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11494881_2
Download citation
DOI: https://doi.org/10.1007/11494881_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-26181-0
Online ISBN: 978-3-540-31556-8
eBook Packages: Computer ScienceComputer Science (R0)