Babylon: middleware for distributed, parallel, and mobile Java applications

Babylon 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 such as object migration, asynchronous method invocation, and remote class loading, while providing an easy‐to‐use interface. Additionally, Babylon enables Java applications to seamlessly create and interact with remote objects, while protecting those objects from other applications by implementing access restrictions and separate namespaces. The implementation of Babylon centers around dynamic proxies, a feature first available in Java 1.3, that allow proxy objects to be created at runtime. Dynamic proxies play a key role in achieving the goals of Babylon. The potential cluster computing benefits of the system are demonstrated with experimental results, which show that sequential Java applications can achieve significant performance benefits from using Babylon to parallelize their work across a cluster of workstations. Copyright © 2008 John Wiley & Sons, Ltd.

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

[2]  Robert Joseph Fowler,et al.  Decentralized object finding using forwarding addresses (object, network, distribution) , 1985 .

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

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

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

[6]  Serge Chaumette,et al.  A Framework for Seamlesly Making Object Oriented Applications Distributed , 2003, PARCO.

[7]  Denis Caromel,et al.  A Hybrid Message Logging-CIC Protocol for Constrained Checkpointability , 2005, Euro-Par.

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

[9]  Henk J. Sips,et al.  Spar: a set of extensions to Java for scientific computation , 2003, Concurr. Comput. Pract. Exp..

[10]  Jason Maassen,et al.  Efficient Java RMI for parallel programming , 2001, TOPL.

[11]  Jonathan Schaeffer,et al.  An experiment to measure the usability of parallel programming systems , 1996, Concurr. Pract. Exp..

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

[13]  Franco Frattolillo,et al.  Programming metasystems with active objects , 2003, Proceedings International Parallel and Distributed Processing Symposium.

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

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

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

[17]  Vijay K. Garg,et al.  How to recover efficiently and asynchronously when optimism fails , 1996, Proceedings of 16th International Conference on Distributed Computing Systems.

[18]  Peter R. Cappello,et al.  JICOS: A Java-Centric Network Computing Service , 2005, IASTED PDCS.

[19]  Tingjian Ge,et al.  JR: flexible distributed programming in an extended Java , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[20]  Zahir Tari,et al.  On the Move to Meaningful Internet Systems. OTM 2018 Conferences , 2018, Lecture Notes in Computer Science.

[21]  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.

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

[23]  Justin O. Graver,et al.  Multilisp: a Language for Concurrent Symbolic Computation Acm Transactions on Programming Languages and Systems , 1989 .

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

[25]  Jonathan Schaeffer,et al.  From patterns to frameworks to parallel programs , 2002, Parallel Comput..

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

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

[28]  Jean-Louis Pazat,et al.  Easing parallel programming for clusters with Java , 2001, Future Gener. Comput. Syst..

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

[30]  Pierre Vignéras Transparency and Asynchronous Method Invocation , 2005, OTM Conferences.

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

[32]  Tim Brecht,et al.  Exploiting dynamic proxies in middleware for distributed, parallel, and mobile Java applications , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[33]  Jason Maassen,et al.  Ibis: a flexible and efficient Java‐based Grid programming environment , 2005, Concurr. Pract. Exp..

[34]  SIMPLE AND EFFICIENT JAVA-BASED GRID , 2005 .

[35]  Bernard Toursel,et al.  Methodology for Java distributed and parallel programming using distributed collections , 2002, Proceedings 16th International Parallel and Distributed Processing Symposium.

[36]  Michael Philippsen,et al.  More efficient serialization and RMI for Java , 2000, Concurr. Pract. Exp..

[37]  C. van Reeuwijk,et al.  Spar: a set of extensions Java for scientific computation , 2001, JGI '01.

[38]  Walter F. Tichy,et al.  Transparent distributed threads for Java , 2003, Proceedings International Parallel and Distributed Processing Symposium.

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

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

[41]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[42]  Peter R. Cappello,et al.  Javelin: Internet‐based parallel computing using Java , 1997 .

[43]  G. Amdhal,et al.  Validity of the single processor approach to achieving large scale computing capabilities , 1967, AFIPS '67 (Spring).

[44]  Peter R. Cappello,et al.  Advanced eager scheduling for Java‐based adaptive parallel computing , 2005, Concurr. Pract. Exp..

[45]  Jan Janecek,et al.  Optimizing remote method invocation in Java , 2002, Proceedings. 13th International Workshop on Database and Expert Systems Applications.

[46]  Geoffrey C. Fox,et al.  HP Java: Programming Support for High-Performance Grid-Enabled Applications , 2004, Parallel Algorithms Appl..

[47]  Bryan Carpenter,et al.  HPJava : Towards Programming Support for High-Performance Grid-Enabled Applications , 2003 .

[48]  P. Lettieri,et al.  An introduction to heat transfer , 2007 .

[49]  Thomas Fahringer,et al.  JavaSymphony: a new programming paradigm to control and synchronize locality, parallelism and load balancing for parallel and distributed computing , 2005, Concurr. Pract. Exp..

[50]  David E. Culler,et al.  Jaguar: enabling efficient communication and I/O in Java , 2000 .

[51]  George K. Thiruvathukal,et al.  Reflective remote method invocation , 1998 .

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

[53]  Vaidy S. Sunderam,et al.  Semantic aspects of asynchronous RMI: the RMIX approach , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[54]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[55]  Polyvios Pratikakis,et al.  Transparent proxies for java futures , 2004, OOPSLA.

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

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

[58]  Prashant Sridharan Advanced Java Networking , 1997 .

[59]  David E. Culler,et al.  Jaguar: enabling efficient communication and I/O in Java , 2000, Concurr. Pract. Exp..

[60]  Sergei Gorlatch,et al.  Adapting Java RMI for grid computing , 2005, Future Gener. Comput. Syst..

[61]  Tim Brecht,et al.  Ajents: towards an environment for parallel, distributed and mobile Java applications , 2000 .