|
ABSTRACT
Java has been successful particularly for writing applications in the server environment. However, isolation of multiple applications hasnot been efficiently achieved in Java. Many customers require that their applications are guarded by independent OS processes, but starting a Java application with a new process results in a long sequence of initializations being repeated each time. To date, there has been no way to quickly start a new Java application as an isolated OS process. In this paper, we propose a new isolation approach called Cloneable JVM to eliminate this startup overhead in Java. The key idea is to createa new Java application by copying, or cloning, the already-initialized image of the primary JVM process. Since the clone is already initialized, it can begin actual operations immediately as a new isolated process. This cloning abstraction can support new scenarios for Java, such as user isolation and transaction isolation. We implemented a prototype of the Cloneable JVM by modifying a production JVM on Linux, which provides a new API for cloning constructed on the Isolate API defined in JSR 121. Using this cloning API, several Java applications, including a large production J2EE application server, we remodified to demonstrate the isolation scenarios. Evaluations using these prototypes showed that new ready-to-serve Java applications can start up as a new process in less than 5 seconds, which is 4 to 170 times faster than starting these applications from scratch.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Bowen Alpern , C. R. Attanasio , Anthony Cocchi , Derek Lieber , Stephen Smith , Ton Ngo , John J. Barton , Susan Flynn Hummel , Janice C. Sheperd , Mark Mergen, Implementing jalapeño in Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.314-324, November 01-05, 1999, Denver, Colorado, United States
|
 |
2
|
Glenn Ammons , Jonathan Appavoo , Maria Butrico , Dilma Da Silva , David Grove , Kiyokuni Kawachiya , Orran Krieger , Bryan Rosenburg , Eric Van Hensbergen , Robert W. Wisniewski, Libra: a library operating system for a jvm in a virtualized execution environment, Proceedings of the 3rd international conference on Virtual execution environments, June 13-15, 2007, San Diego, California, USA
[doi> 10.1145/1254810.1254817]
|
| |
3
|
[3] Apple Computer. Mac OS X Java Shared Archive. Java Development Guide for Mac OS X, May 2006. http://developer.apple.com/documentation/Java/ Conceptual/Java14Development/Java14Development.pdf
|
| |
4
|
Godmar Back , Wilson C. Hsieh , Jay Lepreau, Processes in KaffeOS: isolation, resource management, and sharing in java, Proceedings of the 4th conference on Symposium on Operating System Design & Implementation, p.23-23, October 22-25, 2000, San Diego, California
|
 |
5
|
Paul Barham , Boris Dragovic , Keir Fraser , Steven Hand , Tim Harris , Alex Ho , Rolf Neugebauer , Ian Pratt , Andrew Warfield, Xen and the art of virtualization, Proceedings of the nineteenth ACM symposium on Operating systems principles, October 19-22, 2003, Bolton Landing, NY, USA
|
| |
6
|
S. J. Baylor , M. Devarakonda , S. J. Fink , E. Gluzberg , M. Kalantar , P. Muttineni , E. Barsness , R. Arora , R. Dimpsey , S. J. Munroe, Java server benchmarks, IBM Systems Journal, v.39 n.1, p.57-81, January 2000
|
| |
7
|
[7] S. Borman, S. Paice, M. Webster, M. Trotter, R. McGuire, A. Stevens, B. Hutchison, and R. Berry. A Serially Reusable Java Virtual Machine Implementation for High Volume, Highly Reliable, Transaction Processing. Technical Report TR 29.3406, IBM.
|
| |
8
|
Christopher Clark , Keir Fraser , Steven Hand , Jacob Gorm Hansen , Eric Jul , Christian Limpach , Ian Pratt , Andrew Warfield, Live migration of virtual machines, Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation, p.273-286, May 02-04, 2005
|
| |
9
|
[9] B. Corrie. Java Technology, IBM Style: Class Sharing, IBM, May 2006. http://www.ibm.com/developerworks/java/library/ j-ibmjava4/
|
 |
10
|
Grzegorz Czajkowski, Application isolation in the Java Virtual Machine, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.354-366, October 2000, Minneapolis, Minnesota, United States
|
 |
11
|
Grzegorz Czajkowski , Laurent Daynés, Multitasking without comprimise: a virtual machine evolution, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.125-138, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
12
|
|
| |
13
|
[13] J. Dahlstedt. "Bare Metal" - Speeding Up Java Technology in a Virtualized Environment. Presentation in JavaOne '06, TS- 3792, San Francisco, May 2006. http://developers.sun.com/ learning/javaoneonline/2006/coolstuff/TS-3792.pdf
|
| |
14
|
D. Dillenberger , R. Bordawekar , C. W. Clark, III , D. Durand , D. Emmes , O. Gohda , S. Howard , M. F. Oliver , F. Samuel , R. W. St. John, Building a Java virtual machine for server applications: the Jvm on 0S/390, IBM Systems Journal, v.39 n.1, p.194-210, January 2000
|
| |
15
|
|
| |
16
|
[16] GNU Project. GNU Emacs. http://www.gnu.org/software/emacs/
|
| |
17
|
[17] R. Goldberg. Survey of Virtual Machine Research. IEEE Computer, 7(6), 34-45, June 1974.
|
| |
18
|
|
| |
19
|
Nikola Grcevski , Allan Kielstra , Kevin Stoodley , Mark Stoodley , Vijay Sundaresan, JavaTM just-in-time compiler and virtual machine improvements for server and middleware applications, Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium, p.12-12, May 06-07, 2004, San Jose, California
|
| |
20
|
[20] J. J. Heiss. The Multi-Tasking Virtual Machine: Building a Highly Scalable JVM, Sun Developer Network, March 2005. http://java. sun.com/developer/technicalArticles/Programming/mvm/
|
| |
21
|
[21] IBM Corporation. Persistent Reusable Java Virtual Machine User's Guide, SC34-6201-01, 2001. http://www.ibm.com/servers/ eserver/zseries/software/java/pdf/prjvm14.pdf
|
| |
22
|
[22] IBM Corporation. WebSphere Application Server: Product Overview. http://www.ibm.com/software/webservers/appserv/was/
|
| |
23
|
[23] IBM Corporation. WebSphere Real Time. http://www.ibm.com/software/webservers/realtime/
|
| |
24
|
[24] Java Community Process. JSR 3: Java Management Extensions (JMX) Specification. http://jcp.org/en/jsr/detail?id=3
|
| |
25
|
[25] Java Community Process. JSR 20: Orthogonal Persistence for the Java Platform. http://jcp.org/en/jsr/detail?id=121
|
| |
26
|
[26] Java Community Process. JSR 121: Application Isolation API Specification. http://jcp.org/en/jsr/detail?id=20
|
| |
27
|
|
| |
28
|
|
| |
29
|
|
| |
30
|
[30] C. Laffra, S. Foley, and J. McAffer. Packaging Eclipse RCP Applications. EclipseCON 2005, Burlingame, February 2005. http://www.eclipsecon.org/2005/
|
| |
31
|
|
| |
32
|
|
| |
33
|
|
| |
34
|
[34] OSGi Alliance. About the OSGi Service Platform: Technical Whitepaper, November 2005. http://www.osgi.org/documents/collateral/ TechnicalWhitePaper2005osgi-sp-overview.pdf
|
 |
35
|
|
| |
36
|
James S. Plank , Micah Beck , Gerry Kingsley , Kai Li, Libckpt: transparent checkpointing under Unix, Proceedings of the USENIX 1995 Technical Conference Proceedings on USENIX 1995 Technical Conference Proceedings, p.18-18, January 16-20, 1995, New Orleans, Louisiana
|
| |
37
|
[37] Qumranet Inc. KVM: Kernel-based Virtual Machine for Linux. http://kvm.qumranet.com/kvmwiki
|
 |
38
|
Richard Rashid , Avadis Tevanian , Michael Young , David Golub , Robert Baron, Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures, Proceedings of the second international conference on Architectual support for programming languages and operating systems, p.31-39, October 1987, Palo Alto, California, United States
|
| |
39
|
|
 |
40
|
Mauricio Serrano , Rajesh Bordawekar , Sam Midkiff , Manish Gupta, Quicksilver: a quasi-static compiler for Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.66-82, October 2000, Minneapolis, Minnesota, United States
|
| |
41
|
[41] T. Smits. Unbreakable Java: The Java Server that Never Goes Down, SAP AG, 2004. https://www.sdn.sap.com/irj/servlet/ prt/portal/prtroot/com.sap.km.cm.docs/library/webas/ Unbreakable%20Java.pdf
|
 |
42
|
Stephen Soltesz , Herbert Pötzl , Marc E. Fiuczynski , Andy Bavier , Larry Peterson, Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors, Proceedings of the ACM SIGOPS/EuroSys European Conference on Computer Systems 2007, March 21-23, 2007, Lisbon, Portugal
|
 |
43
|
Toshio Suganuma , Toshiaki Yasue , Motohiro Kawahito , Hideaki Komatsu , Toshio Nakatani, A dynamic optimization framework for a Java just-in-time compiler, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.180-195, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
44
|
[44] Sun Microsystems. Class Data Sharing, 2004. http://java.sun.com/j2se/1.5.0/docs/guide/vm/ class-data-sharing.html
|
| |
45
|
[45] Sun Microsystems. Java 2 Platform, Enterprise Edition (J2EE) Overview. http://java.sun.com/j2ee/overview.html
|
| |
46
|
[46] P. Tullmann, M. Hibler, and J. Lepreau. Janos: A Java-Oriented OS for Active Network Nodes. IEEE Journal on Selected Areas in Communications, 19(3), 501-510, March 2001.
|
| |
47
|
[47] VMware Inc. Using the Snapshot. VMware Workstation 4 User's Manual. http://www.vmware.com/pdf/ws40_manual.pdf
|
 |
48
|
Michael Vrable , Justin Ma , Jay Chen , David Moore , Erik Vandekieft , Alex C. Snoeren , Geoffrey M. Voelker , Stefan Savage, Scalability, fidelity, and containment in the potemkin virtual honeyfarm, Proceedings of the twentieth ACM symposium on Operating systems principles, October 23-26, 2005, Brighton, United Kingdom
|
| |
49
|
[49] World Wide Web Consortium. Jigsaw - W3C's Server. http://www.w3.org/Jigsaw/
|
| |
50
|
[50] World Wide Web Consortium. XML Schema. http://www.w3.org/XML/Schema
|
|