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.
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
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
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
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
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
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
Dmitriev M. Safe evolution of large and long-lived Java applications. PhD thesis. University of Glasgow, Glasgow, Scotland, 2001
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
Casais E. Managing class evolution in object-oriented systems. In: Object-oriented Software Composition. Prentice Hall, New Jersey, USA, 1995, 133–195
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
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
Lee Y F, Chang R C. Hotswapping Linux kernel modules. Journal of Systems and Software, 2006, 79(2): 163–175
Stoyle G, Hicks M. Mutatis mutandis: Safe and predictable dynamic software updating. In: Proceedings of POPL2005. California, USA: ACM press, 2005, 183–194
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
Hicks M. Dynamic software updating. PhD dissertation. Computer and Information Science Department, University of Pennsylvania, Pennsylvania, USA, 2004
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
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/s11704-007-0030-3