A Dynamic Class Construct for Asynchronous Concurrent Objects

  • Einar Broch Johnsen
  • Olaf Owe
  • Isabelle Simplot-Ryl
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3535)


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.


  1. 1.
    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)Google Scholar
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    Armstrong, J.L., Virding, S.R.: Erlang - an experimental telephony programming language. In: XIII Intl. Switching Symposium (June 1990)Google Scholar
  4. 4.
    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)Google Scholar
  5. 5.
    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)Google Scholar
  6. 6.
    Bloom, T.: Dynamic Module Replacement in a Distributed Programming System. PhD thesis, MIT, Also available as MIT LCS Tech. Report 303 (1983)Google Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)MathSciNetCrossRefMATHGoogle Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    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)CrossRefMATHGoogle Scholar
  11. 11.
    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)Google Scholar
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    Gupta, D., Jalote, P., Barua, G.: A formal framework for on-line software version change. IEEE Trans. Software Eng. 22(2), 120–131 (1996)CrossRefGoogle Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    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)Google Scholar
  17. 17.
    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)Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    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)CrossRefGoogle Scholar
  21. 21.
    Kramer, J., Magee, J.: The Evolving Philosophers Problem: Dynamic change management. IEEE Trans. Software Eng. 16(11), 1293–1306 (1990)CrossRefGoogle Scholar
  22. 22.
    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)CrossRefGoogle Scholar
  23. 23.
    Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theoretical. Computer Science 96, 73–155 (1992)MathSciNetMATHGoogle Scholar
  24. 24.
    Najm, E., Stefani, J.-B.: A formal semantics for the ODP computational model. Computer Networks and ISDN Systems 27, 1305–1329 (1995)CrossRefGoogle Scholar
  25. 25.
    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)CrossRefGoogle Scholar
  26. 26.
    Ritzau, T., Andersson, J.: Dynamic deployment of Java applications. In: Java for Embedded Systems Workshop, London (May 2000)Google Scholar
  27. 27.
    Soules, C.A.N., et al.: System support for online reconfiguration. In: Proc. 2003 USENIX Technical Conf., pp. 141–154. USENIX (2003)Google Scholar
  28. 28.
    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)CrossRefGoogle Scholar
  29. 29.
    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)Google Scholar
  30. 30.
    Yonezawa, A.: ABCL: An Object-Oriented Concurrent System. MIT Press, Cambridge (1990)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2005

Authors and Affiliations

  • Einar Broch Johnsen
    • 1
  • Olaf Owe
    • 1
  • Isabelle Simplot-Ryl
    • 2
  1. 1.Department of InformaticsUniversity of OsloNorway
  2. 2.LIFL, CNRS-UMR 8022University of Lille IFrance

Personalised recommendations