ABSTRACT
Towards more usable dynamic software updating on stock Java, we propose (1) a programming model that transformation code can be statically type-checked against, also featuring type-safe execution of transformation code; (2) an efficient checkpointable eager state transformation approach that avoids hazards of deadlocks and data-races when transformation code is executed, also allowing to seamlessly abort an update if any exception occurs; and (3) a programming approach based on assertions to abort dynamic updates if assumptions of transformation code are not met. We implement the three aspects in a dynamic updating system to study their performance and usability.
- J. Arnold and M. F. Kaashoek. Ksplice: Automatic rebootless kernel updates. In Proceedings of the 4th ACM European Conference on Computer Systems, EuroSys ’09, pages 187–198, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- T. Gu, C. Cao, C. Xu, X. Ma, L. Zhang, and J. Lu. Javelus: A Low Disruptive Approach to Dynamic Software Updates. In Proceedings of the 2012 19th Asia-Pacific Software Engineering Conference - Volume 01, APSEC ’12, pages 527–536, Washington, DC, USA, 2012. IEEE Computer Society. Google ScholarDigital Library
- J. Kabanov. JRebel Tool Demo. Electron. Notes Theor. Comput. Sci., 264(4):51–57, Feb. 2011. Google ScholarDigital Library
- S. Magill, M. Hicks, S. Subramanian, and K. S. McKinley. Automating Object Transformations for Dynamic Software Updating. In Proceedings of the ACM Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA ’12, pages 265–280, New York, NY, USA, 2012. ACM. Google ScholarDigital Library
- L. Pina and M. Hicks. Tedsuto: A general framework for testing dynamic software updates. In Proceedings of the IEEE 9th International Conference on Software Testing, Verification and Validation, ICST, Apr. 2016.Google ScholarCross Ref
- L. Pina, L. Veiga, and M. Hicks. Rubah: DSU for Java on a Stock JVM. In Proceedings of the 2014 ACM Conference on Object Oriented Programming Systems Languages & Applications, OOPSLA ’14, pages 103–119, New York, NY, USA, 2014. ACM. Google ScholarDigital Library
- S. Subramanian, M. Hicks, and K. S. McKinley. Dynamic Software Updates: A VM-centric Approach. In Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’09, pages 1–12, New York, NY, USA, 2009. ACM. Google ScholarDigital Library
- T. Würthinger, C. Wimmer, and L. Stadler. Unrestricted and Safe Dynamic Code Evolution for Java. Sci. Comput. Program., 78 (5):481–498, May 2013. Google ScholarDigital Library
Index Terms
- Towards practical release-level dynamic software updating on stock Java: evaluating an efficient and safely programmable Java dynamic updating system
Recommendations
An Approach to Dynamic Software Updating for Java
PACIIA '08: Proceedings of the 2008 IEEE Pacific-Asia Workshop on Computational Intelligence and Industrial Application - Volume 02To cope with demands for new and extended functionality, software systems must be updated regularly. Some applications, however, need to be continuously available because they are providing services that are important for users at all times. To avoid ...
Evaluating the Java Native Interface JNI: Leveraging Existing Native Code, Libraries and Threads to a Running Java Virtual Machine
This article aims to explore JNI features and to discover fundamental operations of the Java programming language, such as arrays, objects, classes, threads and exception handling, and to illustrate these by using various algorithms and code samples. ...
Practical dynamic software updating for C
Proceedings of the 2006 PLDI ConferenceSoftware updates typically require stopping and restarting an application, but many systems cannot afford to halt service, or would prefer not to. Dynamic software updating (DSU) addresses this difficulty by permitting programs to be updated while they ...
Comments