Skip to main content
Log in

Research on dynamic update transaction for Java classes

  • Research Article
  • Published:
Frontiers of Computer Science in China Aims and scope Submit manuscript

Abstract

Dynamic software updating is critical for many systems that must provide continuous service. In addition, the Java language is gaining increasing popularity in developing distributed systems. Most previous works on updating are concerned with safely updating one class every time. It has many limitations on updating classes, such as not allowing deleting methods invoked in other classes. In this paper, the update transaction is purposed to dynamically update the class set, and some of its properties are discussed, such as atomicity, consistency, isolation, and durability (ACID). Then the property of type-safety is proven formally. In order to update without changing the Java Virtual Machine (JVM) and the Java programming language, this paper proposes a new implementation method. The method makes use of the Java class loading mechanism and reflection mechanism. We also present how to design an updatable Java program and a Java updating program. At the end of the paper, an experiment is made for analysis.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Explore related subjects

Discover the latest articles and news from researchers in related subjects, suggested using machine learning.

Reference

  1. Bierman G, Hicks M, Sewell P, et al. Formalizing dynamic software updating. In: Proceedings of the 2nd International Workshop on Unanticipated Software Evolution. Poland. ETAPS organiser, University of Warsaw, Poland, 2003, 13–23

    Google Scholar 

  2. Dmitriev M. Towards flexible and safe technology for runtime evolution of JAVA language applications. In: Proceedings of the Workshop on Engineering Complex Object-oriented Systems for Evolution. Florida, USA: ACM Press, 2001, 65–76

    Google Scholar 

  3. Malabarba S, Pandey R, Gragg J, et al. Runtime support for type-safe dynamic Java classes. In: Proceedings of the European Conference on Object-oriented Programming. Berlin: Springer, 2000, 337–361

    Google Scholar 

  4. Gilsi H, Robert G. Dynamic C++ classes—a lightweight mechanism to update code in a running program. In: Proceedings of USENIX Annual Technical Conference. CA, USA: ACM Press, 1998; 65–76

    Google Scholar 

  5. Orso A, Rao A, Harrold M J. A technique for dynamic updating of Java software. In: Proceedings of the International Conference on Software Maintenance (ICSM). Washington, DC, USA: IEEE CS, 2002, 649–658

    Google Scholar 

  6. Dmitriev M. Safe evolution of large and long-lived Java applications. PhD thesis. University of Glasgow, Glasgow, Scotland, 2001

    Google Scholar 

  7. Zhang S, Huang L P. Formalizing class dynamic software updating. In: Proceedings of the 6th International Conference on Quality Software. Beijing: IEEE CS, 2006, 403–409

    Google Scholar 

  8. Casais E. Managing class evolution in object-oriented systems. In: Object-oriented Software Composition. Prentice Hall, New Jersey, USA, 1995, 133–195

    Google Scholar 

  9. Neamtiu I, Hicks M, Stoyle G, et al. Practical dynamic software updating for C. In: Proceedings ACM SIGPLAN Conference on Programming Language Design and Implementation. Ottawa, Ontario, Canada: ACM Press, 2006, 72–83

    Google Scholar 

  10. Baumann A, Heiser G. Providing dynamic update in an operating system. In: Proceedings of the USENIX Technical Conference. Anaheim, CA, USA: ACM Press, 2000, 279–291

    Google Scholar 

  11. Lee Y F, Chang R C. Hotswapping Linux kernel modules. Journal of Systems and Software, 2006, 79(2): 163–175

    Article  Google Scholar 

  12. Stoyle G, Hicks M. Mutatis mutandis: Safe and predictable dynamic software updating. In: Proceedings of POPL2005. California, USA: ACM press, 2005, 183–194

    Google Scholar 

  13. Gupta D, Jalote P, Barua G. A formal framework for on-line software version change. IEEE Transactions on Software Engineering, 1996, 22(2): 120–131

    Article  Google Scholar 

  14. Hicks M. Dynamic software updating. PhD dissertation. Computer and Information Science Department, University of Pennsylvania, Pennsylvania, USA, 2004

    Google Scholar 

  15. Soules C, Appavoo J, Hui K, et al. System support for online reconfiguration. In: Proceedings of USENIX Annual Technical Conference. Texas, USA: ACM Press, 2003, 141–154

    Google Scholar 

  16. Sridhar N, Pike S M, Weide B W. Dynamic module replacement in distributed protocols. In: Proceedings of the 23rd International Conference on Distributed Computing Systems (ICDCS). Providence, USA: IEEE-CS, 2003, 620–627

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Zhang Shi.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Zhang, S., Huang, L. Research on dynamic update transaction for Java classes. Front. Comput. Sc. China 1, 313–321 (2007). https://doi.org/10.1007/s11704-007-0030-3

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11704-007-0030-3

Keywords