Abstract
Resource management is a precondition to build reliable, extensible middleware and to host potentially untrusted user components. Resource accounting allows to charge users for the resource consumption of their deployed components, while resource control can limit the resource consumption of components in order to prevent denial-of-service attacks. In the approach presented here program transformations enable resource management in Java-based environments, even though the underlying runtime system may not expose information concerning the resource consumption of applications. In order to accurately monitor the resource utilization of Java applications, the application code as well as the libraries used by the application – in particular, the classes of the Java Development Kit (JDK) – have to be transformed for resource accounting. However, the JDK classes are tightly interwoven with the native code of the Java runtime system. These dependencies, which are not well documented, have to be respected in order to preserve the integrity of the Java platform. We discuss several hurdles we have encountered when rewriting the JDK classes for resource management, and we present our solutions to these problems. Performance evaluations complete this paper.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Back, G., Hsieh, W., Lepreau, J.: Processes in KaffeOS: Isolation, resource management, and sharing in Java. In: Proceedings of the Fourth Symposium on Operating Systems Design and Implementation (OSDI 2000), San Diego, CA, USA (October 2000)
Binder, W., Hulaas, J.: A portable CPU-management framework for Java. IEEE Internet Computing 8(5), 74–83 (2004)
Binder, W., Hulaas, J., Villazón, A.: Resource control in J-SEAL2. Technical Report Cahier du CUI No. 124, University of Geneva (October 2000), ftp://cui.unige.ch/pub/tios/papers/TR-124-2000.pdf .
Binder, W., Hulaas, J., Villazón, A., Vidal, R.: Portable resource control in Java: The J-SEAL2 approach. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA-2001), USA (October 2001)
Binder, W., Lichtl, B.: Using a secure mobile object kernel as operating system on embedded devices to support the dynamic upload of applications. In: Suri, N. (ed.) MA 2002. LNCS, vol. 2535. Springer, Heidelberg (2002)
Czajkowski, G., Daynès, L.: Multitasking without compromise: A virtual machine evolution. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2001), Tampa Bay, Florida (October 2001)
Czajkowski, G., von Eicken, T.: JRes: A resource accounting interface for Java. In: Proceedings of the 13th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA-1998), New York, USA, October 1998. ACM SIGPLAN Notices, vol. 33(10) (1998)
Dahm, M.: Byte code engineering. In: Java-Information-Tage 1999 (JIT 1999) (September 1999), http://jakarta.apache.org/bcel/
Gosling, J., et al.: The Java language specification, 2nd edn. Java series. Addison-Wesley, Reading (2000)
Hulaas, J., Binder, W.: Program transformations for portable CPU accounting and control in Java. In: Proceedings of PEPM 2004 (2004 ACM SIGPLAN Symposium on Partial Evaluation & Program Manipulation), Verona, Italy, August 24–25, pp. 169–177 (2004)
Kiselev, I.: Aspect-Oriented Programming with AspectJ. Sams Publishing, Indianapolis (2003)
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley, Reading (1999)
Rudys, A., Wallach, D.S.: Enforcing Java run-time properties using bytecode rewriting. In: Okada, M., Pierce, B.C., Scedrov, A., Tokuda, H., Yonezawa, A. (eds.) ISSS 2002. LNCS, vol. 2609, pp. 185–200. Springer, Heidelberg (2003)
The Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. Web pages at, http://www.spec.org/osg/jvm98/ .
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Binder, W., Hulaas, J. (2005). Extending Standard Java Runtime Systems for Resource Management. In: Gschwind, T., Mascolo, C. (eds) Software Engineering and Middleware. SEM 2004. Lecture Notes in Computer Science, vol 3437. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11407386_12
Download citation
DOI: https://doi.org/10.1007/11407386_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25328-0
Online ISBN: 978-3-540-31975-7
eBook Packages: Computer ScienceComputer Science (R0)