Exploiting dynamic proxies in middleware for distributed, parallel, and mobile Java applications

Babylon v2.0 is a collection of tools and services that provide a 100% Java compatible environment for developing, running and managing parallel, distributed and mobile Java applications. It incorporates features like object migration, asynchronous method invocation and remote class loading while providing an easy-to-use interface. The implementation of Babylon v2.0 exploits dynamic proxies, a feature added to Java 1.3 that allows runtime creation of proxy objects. This paper shows how Babylon v2.0 exploits dynamic proxies to implement several key features without the need for special language or virtual machine extensions, preprocessors, or compilers. The resulting Babylon programs are portable across all Java virtual machines, and the development process is simplified by removing the extra steps needed to invoke external stub compilers and incorporate the generated code into an application. This simplification also allows remote objects to be created for any class that supports an interface to its methods, even if source code is not available

[1]  Rajeev R. Raje,et al.  Asynchronous Remote Method Invocation (ARMI) mechanism for Java , 1997 .

[2]  M. Izatt Babylon : A Java-based Distributed Ob ject Environment , 2000 .

[3]  Willem van Heiningen Babylon v2.0: Support for Distributed, Parallel and Mobile Java Applications , 2003 .

[4]  Denis Caromel,et al.  A High Performance Java Middleware with a Real Application , 2004, Proceedings of the ACM/IEEE SC2004 Conference.

[5]  Tim Brecht,et al.  Ajents: towards an environment for parallel, distributed and mobile Java applications , 1999, JAVA '99.

[6]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[7]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[8]  Jonathan Schaeffer,et al.  Using generative design patterns to generate parallel code for a distributed memory environment , 2003, PPoPP '03.

[9]  Denis Caromel,et al.  A Step Toward Automatic Distribution of Java Programs , 2000, FMOODS.

[10]  Marco Tulio Valente,et al.  Asynchronous Remote Method Invocation in Java , 2003, J. Univers. Comput. Sci..

[11]  Jason Maassen,et al.  Satin: Simple and Efficient Java-based Grid Programming , 2005, Scalable Comput. Pract. Exp..

[12]  Volker Strumpen,et al.  Exploiting communication latency hiding for parallel network computing: model and analysis , 1994, Proceedings of 1994 International Conference on Parallel and Distributed Systems.

[13]  Tim Brecht,et al.  ParaWeb: towards world-wide supercomputing , 1996, EW 7.

[14]  Michael O. Neary,et al.  Javelin 2.0: Java-Based Parallel Computing on the Internet , 2000, Euro-Par.

[15]  Zvi M. Kedem,et al.  Charlotte: Metacomputing on the Web , 1999, Future Gener. Comput. Syst..

[16]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[17]  Mitsuhisa Sato,et al.  Ninflet: a migratable parallel objects framework using Java , 1998, Concurr. Pract. Exp..

[18]  Alan L. Cox,et al.  Java/DSM: A Platform for Heterogeneous Computing , 1997, Concurr. Pract. Exp..

[19]  James Gosling,et al.  The Java Language Specification, 3rd Edition , 2005 .

[20]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[21]  Michael Philippsen,et al.  Exploiting object locality in JavaParty, a distributed computing environment for workstation clusters , 2001 .

[22]  Michael J. Oudshoorn,et al.  Implementing Asynchronous Remote Method Invocation in Java , 1999 .

[23]  Tim Brecht,et al.  Babylon v2.0: middleware for distributed, parallel, and mobile Java applications , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[24]  George K. Thiruvathukal,et al.  Reflective remote method invocation , 1998, Concurr. Pract. Exp..

[25]  Rajeev R. Raje,et al.  Asynchronous Remote Method Invocation (ARMI) Mechanism for Java , 1997, Concurr. Pract. Exp..