Babylon v2.0: Support for Distributed, Parallel and Mobile Java Applications

This thesis describes the design and implementation of Babylon v2.0. Babylon v2.0 is a 100% Java compatible framework for building parallel, distributed and mobile applications in Java. Babylon v2.0 incorporates features like object migration, asynchronous method invocation and remote class loading while providing an easy-to-use interface that enables seamless interaction with remote objects and hides the complexities of remote messaging protocols that are normally large part of distributed systems programming. The potential cluster computing benefits of Babylon v2.0 are demonstrated by the evaluation results which show that sequential Java applications can achieve significant performance gains by using Babylon v2.0 to parallelize their work across a cluster of workstations. Intuitive interfaces, ease of use, support for multiple simultaneous users, and services and features that facilitate the development and administration of distributed systems make Babylon v2.0 a unique and powerful system for distributed systems programmers.

[1]  Gregor von Laszewski,et al.  A Java commodity grid kit , 2001, Concurr. Comput. Pract. Exp..

[2]  Kenneth Steiglitz,et al.  Combinatorial Optimization: Algorithms and Complexity , 1981 .

[3]  Gregory V. Wilson,et al.  Practical parallel programming , 1999, IEEE Concurr..

[4]  Wouter Joosen,et al.  Portable Support for Transparent Thread Migration in Java , 2000, ASA/MA.

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

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

[7]  Denis Caromel,et al.  Interactive and descriptor-based deployment of object-oriented grid applications , 2002, Proceedings 11th IEEE International Symposium on High Performance Distributed Computing.

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

[9]  Gregor von Laszewski,et al.  Features of the Java Commodity Grid Kit , 2002, Concurr. Comput. Pract. Exp..

[10]  James Gosling The Java Language Specification - Second Edition , 2000 .

[11]  Prashant Sridharan Advanced Java Networking , 1997 .

[12]  Peter R. Cappello,et al.  Scalability and fault tolerance in global computing , 2002 .

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

[14]  Alan L. Cox,et al.  TreadMarks: shared memory computing on networks of workstations , 1996 .

[15]  Denis Caromel,et al.  Efficient, flexible, and typed group communications in Java , 2002, JGI '02.

[16]  Robert Eckstein,et al.  Java RMI , 2001 .

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

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

[19]  정영식,et al.  [서평]「Designing and Building parallel Programs」 - Concepts and Tools for parallel software Engineering - , 1998 .

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

[21]  Rosanna Lee,et al.  JNDI API Tutorial and Reference: Building Directory-Enabled Java¿ Applications , 2000 .

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

[23]  Michael Philippsen,et al.  More efficient serialization and RMI for Java , 2000 .

[24]  Akinori Yonezawa,et al.  A Simple Extension of Java Language for Controllable Transparent Migration and Its Portable Implementation , 1999, COORDINATION.

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

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

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

[28]  Y. Jaluria,et al.  An Introduction to Heat Transfer , 1950 .

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

[30]  Ian T. Foster The Anatomy of the Grid: Enabling Scalable Virtual Organizations , 2001, Euro-Par.

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

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

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

[34]  Gary McGraw,et al.  Securing Java: getting down to business with mobile code , 1999 .

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

[36]  Jack Shirazi Java Performance Tuning , 2000 .

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

[38]  Danny B. Lange,et al.  Programming and Deploying Java¿ Mobile Agents with Aglets¿ , 1998 .

[39]  Ami Marowka,et al.  The GRID: Blueprint for a New Computing Infrastructure , 2000, Parallel Distributed Comput. Pract..

[40]  Eric S. Roberts,et al.  WorkCrews: An abstraction for controlling parallelism , 2005, International Journal of Parallel Programming.

[41]  Sara Bouchenak,et al.  Zero Overhead Java Thread Migration , 2002 .

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

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

[44]  Ian Foster,et al.  The Grid 2 - Blueprint for a New Computing Infrastructure, Second Edition , 1998, The Grid 2, 2nd Edition.

[45]  Ian T. Foster,et al.  The anatomy of the grid: enabling scalable virtual organizations , 2001, Proceedings First IEEE/ACM International Symposium on Cluster Computing and the Grid.

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

[47]  Michael Mikolajczak,et al.  Designing And Building Parallel Programs: Concepts And Tools For Parallel Software Engineering , 1997, IEEE Concurrency.

[48]  Matjaz B. Juric,et al.  Java 2 distributed object models performance analysis, comparison and optimization , 2000, Proceedings Seventh International Conference on Parallel and Distributed Systems (Cat. No.PR00568).

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

[50]  Alan L. Cox,et al.  Java/DSM: A platform for heterogeneous computing , 1997 .

[51]  Sheng Liang,et al.  Dynamic class loading in the Java virtual machine , 1998, OOPSLA '98.

[52]  Michael Philippsen,et al.  JavaParty - Transparent Remote Objects in Java , 1997, Concurr. Pract. Exp..

[53]  Mary Campione,et al.  The Java Tutorial Continued: The Rest of the JDK , 1998 .

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