Skip to main content

Runtime Support for Type-Safe Dynamic Java Classes

  • Conference paper
  • First Online:
Book cover ECOOP 2000 — Object-Oriented Programming (ECOOP 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1850))

Included in the following conference series:

Abstract

Modern software must evolve in response to changing conditions. In the most widely used programming environments, code is static and cannot change at runtime. This poses problems for applications that have limited down-time. More support is needed for dynamic evolution. In this paper we present an approach for supporting dynamic evolution of Java programs. In this approach, Java programs can evolve by changing their components, namely classes, during their execution. Changes in a class lead to changes in its instances, thereby allowing evolution of both code and state. The approach promotes compatibility with existing Java applications, and maintains the security and type safety controls imposed by Java’s dynamic linking mechanism. Experimental analyses of our implementation indicate that the implementation imposes a moderate performance penalty relative to the unmodified virtual machine.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. The Common Object Request Broker: Architecture and Specification, Revision 2.0. Object Management Group, July 1996. http://www.omg.org/corba/corbiiop.htm.

  2. James P. Anderson. Computer security technology planning study. Technical Report ESD-TR-73-51, Vol. II, Electronic Systems Division, Air Force Systems Command, Hanscom AFB, Bedford, MA 01731, October 1972. [NTIS AD-758 206].

    Google Scholar 

  3. K. Arnold and J. Gosling. The Java Programming Language. Addison Wesley, 1996.

    Google Scholar 

  4. T. Bloom. Dynamic Module Replacement in a Distributed Programming System. PhD thesis, MIT, 1983.

    Google Scholar 

  5. K. Brockschmidt. Inside OLE 2.Microsoft Press, 1994.

    Google Scholar 

  6. Eduardo Casais. Managing class evolution in object-oriented systems. In Object-Oriented Software Composition. Prentice Hall, 1991.

    Google Scholar 

  7. Geoff A. Cohen, Jeffrey S. Chase, and David L. Kaminsky. Automatic program transformation with JOIE. InProceedings of the USENIX Annual Technical Symposium, 1998.

    Google Scholar 

  8. Sophia Drossopoulou, Mariangiola Dezani-Ciancaglini, Ferruccio Damiani, and Paola Giannini. Objects dynamically changing class. August 1999.

    Google Scholar 

  9. Sophia Drossopoulou, Tanya Valkevych, and Susan Eisenbach. Java type soundness revisited. October 1999.

    Google Scholar 

  10. R. S. Fabry. How to design a system in which modules can be changed on the fly. In 2nd International Conference on Software Engineering, 1976.

    Google Scholar 

  11. Michael Franz. Dynamic linking of software components. IEEE Computer, 18(9162):74–81, March 1997.

    Google Scholar 

  12. Jonathan J. Gibbons and Michael J. Day. Shadows: A type-safe framework for dynamically extensible objects. TR TR-94-31, Sun Microsystems, 2550 Garcia Avenue, Mountain View, CA 94043, 1994. Available from http://www.sunlabs.com.

  13. Adele Goldberg and David Robson. Smalltalk 80: the Language and its Implementation. Addison Wesley, Menlo Park, CA, 1983.

    Google Scholar 

  14. L. Gong. Java security: Present and near furture. IEEE Micro, 17(3):14–19, May-June 1997.

    Google Scholar 

  15. L. Gong, M. Mueller, H. Prafullchandra, and R. Schemers. Going beyond the sandbox: An overview of the new security architecture in the Java Development Kit 1.2. In Proceedings of the USENIX Symposium on Internet Technologies and Systems, Monterey, California, December 1997.

    Google Scholar 

  16. William Griswold and Paul Phillips. Bill and Paul’s Excellent UCSD Benchmarks for Java (version 1.1). UCSD Software Evolution Group. http://www-cse.ucsd.edu/users/wgg/JavaProf/javaprof.html.

  17. Deepak Gupta and Pankaj Jalote. On-line software version change using state transfer between processes. Software-Practice and Experience, 23(9), September 1993.

    Google Scholar 

  18. B. Hashii, S. Malabarba, R. Pandey, and M. Bishop. Supporting reconfigurable security policies for mobile Java programs. In Proceedings of WWW9, May 2000. To appear. Currently available at http://pdclab.cs.ucdavis.edu.

  19. Gisli Hjalmtysson and Robert Gray. Dynamic C++ classes: A lightweight mechanism to update code in a running program. In Proceedings of the USENIX Annual Technical Conference, New Orleans, Louisiana, June 1998. USENIX.

    Google Scholar 

  20. W. W. Ho and R. A. Olsson. An approach to genuine dynamic linking. SOFTWARE-Practice and Experience, 21(4):375–390, April 1991.

    Google Scholar 

  21. JavaSoft. Component-based software with JavaBeans and ActiveX. White paper.

    Google Scholar 

  22. JavaSoft. The Java Native Code API.

    Google Scholar 

  23. R. Keller and R. Hölzle. Binary component adaptation. In ECOOP’98 Proceedings, Lecture Notes in Computer Science. Springer Verlag, 1998. Also available at http://www.cs.ucsb.edu/oocsb/papers/TRCS97-20.html.

    Google Scholar 

  24. James Kempf and Peter B. Kessler. Cross-address space dynamic linking. TR TR-92-2, Sun Microsystems, 2550 Garcia Avenue, Mountain View, CA 94043, 1992. Available from http://www.sunlabs.com.

  25. Graham Kirby, Ron Morrison, and David Stemple. Linguistic reflection in Java. Software-Practice and Experience, 28(10), 1998.

    Google Scholar 

  26. Gunter Kniesel. Type-safe delegation for run-time component adaptation. In European Conference on Object-Oriented Programming. Springer, 1999.

    Google Scholar 

  27. Robert Laddaga and James Veitch. Dynamic object technology. Communications of the ACM, 40(5):36–38, March1997.

    Google Scholar 

  28. S. Liang and G. Brach. Dynamic class loading in the java virtual machine. In C. Chambers, editor, Object-Oriented Programming Systems, Languages and Applications Conference, in Special Issue of SIGPLAN Notices, number 10, Vancouver, October 1998. ACM.

    Google Scholar 

  29. S. Liang and G. Bracha. Dynamic class loading in the Java Virtual Machine. Draft. JavaSoft, Sun Microsystems, April 1998.

    Google Scholar 

  30. Henry Lieberman. Using prototypical objects to implement shared behavior in object oriented systems. In OOPSLA, 1986.

    Google Scholar 

  31. B. Liskov. Distributed programming in Argus. Communications of the ACM, March 1988.

    Google Scholar 

  32. J. Magee, J. Kramer, and M. Sloman. Constructing distrubuted systems in Conic. IEEE Transactions on Software Engineering, June 1989.

    Google Scholar 

  33. Brian Oki, Manfred Pfluegl, Alex Siegel, and Dale Skeen. The Information Bus-an architecture for extensible distributed systems. ACM Operating Systems Review, 27(5):58–68, December 1993.

    Google Scholar 

  34. Peyman Oreizy, Nenad Medvidovic, and Richard N. Taylor. Architecture-based runtime software evolution. In Proceedings of the International Conference on Software Engineering, 1998.

    Google Scholar 

  35. R. Pandey and B. Hashii. Providing fine-grained access control for Java programs. In 13th Conference on Object-Oriented Programming. ECOOP’99, Lecture Notes in Computer Science. Springer-Verlag, June 1999.

    Google Scholar 

  36. J. H. Saltzer and M. D. Schroeder. The protection of information in computer systems. Proceedings of the IEEE, 63(9):1278–1308, September 1975.

    Google Scholar 

  37. Vijay Saraswat. Java is not type-safe. Technical report, AT&T Research, 1997. http://www.research.att.com/ vj/bug.html.

  38. Mark Segal and Ophir Frieder. On-the-fly program modification: Systems for dynamic updating. IEEE Software, March 1993.

    Google Scholar 

  39. Manuel Serrano. Wide classes. In European Conference on Object-Oriented Programming. Springer, 1999.

    Google Scholar 

  40. Stephen Slade. Object-Oriented Common Lisp. Prentice Hall, Upper Saddle River, NJ 07458, 1998. Chapter 13.

    Google Scholar 

  41. Standard Performance Evaluation Corporation. SPECjvm98 Documentation, 1.01 edition, August 1998. http://www.spec.org/osg/jvm98/.

  42. R. Taylor, N. Medvidovic, K. Anderson, E. Whitehead, J. Robbins, K. Nies, P. Oreizy, and D. Dubrow. A component-and message-based architectural style for GUI software. IEE Transactions on Software Engineering, June 1996.

    Google Scholar 

  43. Paul R. Wilson. Uniprocessor garbage collection techniques. In Proceedings of the Memory Management International Workshop. Springer-Verlag, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Malabarba, S., Pandey, R., Gragg, J., Barr, E., Fritz Barnes, J. (2000). Runtime Support for Type-Safe Dynamic Java Classes. In: Bertino, E. (eds) ECOOP 2000 — Object-Oriented Programming. ECOOP 2000. Lecture Notes in Computer Science, vol 1850. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45102-1_17

Download citation

  • DOI: https://doi.org/10.1007/3-540-45102-1_17

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67660-7

  • Online ISBN: 978-3-540-45102-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics