Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1109/CGO.2006.22acmconferencesArticle/Chapter ViewAbstractPublication PagescgoConference Proceedingsconference-collections
Article

Java JNI Bridge: A Framework for Mixed Native ISA Execution

Published: 26 March 2006 Publication History

Abstract

Managed Runtime Environments (MRTEs) such as the Java platform promise a cross platform "Write Once, Deploy Anywhere" mechanism. However, MRTE applications that contain native method calls are not seamlessly portable across platforms. In this paper, we describe a new approach to transparently run Java applications containing native method calls to one ISA (Instruction Set Architecture) on a different ISA's Java platform. This approach operates within the same operating system process that executes the application but with the support of a dynamic translator. This paper describes the technical challenges and solutions of such an in-process implementation within a production Java Virtual Machine (JVM). These include interfacing the JVM with a dynamic translator to support native calls to a different ISA, pursuing a JVM-independent implementation, enhancing the dynamic translator to support shared libraries in addition to executables, marshalling arguments across ISA boundaries, and providing full support for all Java features such as multi-threading. The paper presents performance results for an end-user application, showing our approach to be 2-3 times faster than other approaches.

References

[1]
{1} Antero Taivalsaari. Implementing a Java virtual machine in the java programming language. Technical Report SMLI TR-98-64, Sun Microsystems, March 1998.
[2]
{2} G. Czajkowski, L. Daynes, and M. Wolczko. Automated and Portable Native Code Isolation. Technical Report TR-2001-96, Sun Microsystems, Inc., April 2001.
[3]
{3} Engelschall R. Portable Multithreading: The signal stack trick for user-space thread creation. USENIX Annual Technical Conference, San Diego, CA, June 2000.
[4]
{4} Rajeev R. Raje, etc. A timing experiment with Java-RMI, CORBA and C-RPC Proceedings of the Fifth International Conference on Advanced Computing, ADCOMP'97, pp: 396-403, Chennai, India, 1997.
[5]
{5} Sigbjorn Finne, etc. H/Direct: A Binary Foreign Language Interface for Haskell in Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP'98), pages 153-162. ACM Press, 1998.
[6]
{6} Rogerson, D. Inside COM. Microsoft Press, 1997.
[7]
{7} Luis Rivera, etc. HP-RMI: High performance Java RMI over FM CS491 project report, University of Illinois, Dec 1997.
[8]
{8} Sun Microsystems, Remote Method Invocation http://java.sun.com/j2se/1.4.2/docs/guide/rmi/spec/rmi TOC.html.
[9]
{9} A. Wollrath, R. Riggs, and J. Waldo. A distributed object model for Java. in 2nd Conference on Object Oriented Technologies and Systems (COOTS), pages 219-231, Toronto, Ontario, June 1996.
[10]
{10} Cristina Videira Lopes. Adaptive Parameter Passing in Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software (ISOTAS), Kanazawa, Japan. Springer-Verlag LNCS 1049, pages 118-136. 1996.
[11]
{11} Nikolay V. Yevik, JNI Programming on AIX www.ibm.com/developerworks/nlrd-2004/r-p312j.html.
[12]
{12} Baraz Leonid, Tevi Devor, Orna Etzion, Shalom Goldenberg, Alex Skaletsky, Yun Wang and Yigal Zemach, "IA-32 Execution Layer: a two-phase dynamic translator designed to support IA-32 applications on Itanium®-based systems", MICRO- 36, 2003.
[13]
{13} David Kurzyniec, etc. al. "Efficient Cooperation between Java and Native Codes - JNI Performance Benchmark". Emory University, Dept of Math and Computer Science.
[14]
{14} Cindy Zheng and Carol Thompson, "PA-RISC* to IA-64: Transparent Execution, No Recompilation", IEEE Computer 33(3), March 2000.
[15]
{15} Liang, S. The Java Native Interface. Addison-Wesley, June 1999.
[16]
{16} Transitive Corporation, http://www.transitive.com
[17]
{17} SPECjAppServer2002: Standard Performance Evaluation Corporation Web Site http://www.spec.org/jAppServer2002/
[18]
{18} Evelyn Duesterwald, "Design and Engineering of a Dynamic Binary Optimizer", Proceedings of the IEEE, Volume: 93, Issue: 2, page 436-448, Feb. 2005.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
CGO '06: Proceedings of the International Symposium on Code Generation and Optimization
March 2006
347 pages
ISBN:0769524990

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 26 March 2006

Check for updates

Qualifiers

  • Article

Conference

CGO06

Acceptance Rates

CGO '06 Paper Acceptance Rate 29 of 80 submissions, 36%;
Overall Acceptance Rate 312 of 1,061 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media