A survey of implementations of Javabased distributed systems

A survey of implementations of Java-based distributed systems Glenn Matthews May 8, 2006

Introduction • Ongoing shift from single-box supercomputers to distributed computing raises issues of – – – Cross-platform portability Communication Robustness Adaptability Scalability

Java • Considered for implementation of distributed systems since its introduction in the late 1990 s – Easily portable – Built-in communication methods, including Java RMI – Other possibly useful features

Purpose of this presentation • Look at existing Java distributed systems – Are Java’s special features helpful? – What design/implementation patterns can we see?

Systems reviewed • Unnamed heterogeneous computing system (Keane 2004) • • – henceforth “HDCS” Java. Party (Haumacher 2005? ) JAVELIN (Capello et al. , 1997) Parsimony (Preiss and Wan, 1999) Unnamed conservative DES system (Ferscha and Richter, 1997) – henceforth “CDDS” • IDES (Nicol et al, 1998)

Automatic startup/instantiation • • Like what we’ve been considering? Java. Party No relevant Java features aid this Use RSH/SSH for remote login and activation

Manual startup/instantiation • • HDCS, JAVELIN Good for non-dedicated networks Needs to be easy for end user to do? JAVELIN: client software as Java applet – Easily launched by connecting with a Web browser – Poses many technical difficulties due to restrictions placed on applets

Robustness/scalability • On dedicated cluster, maybe just assume that network failures and changes won’t happen? (Java. Party) • Else, client-server design is most common – – Clients easily join and leave Failure of client is easily recovered from Failure of server is only major concern JAVELIN, HDCS

Communication • Java Remote Method Invocation (RMI) – CDDS, Parsimony, HDCS, Java. Party • Custom HTTP-based or TCP-based protocols – JAVELIN, IDES

Java RMI • Java-only – Allows use of Java-specific features – RMI-IIOP makes it compatible with CORBA • All communication as remote method calls – Can’t stream data easily – HDCS switches to TCP to transfer large blocks of data more efficiently

Java RMI • Allows fully-functional objects (not just data) to be exchanged between systems • Receiver doesn’t need the. class file in advance! – Define interface Simulation on receiver – Any object that implements Simulation can be passed to the receiver and run on-the-fly!

Java RMI • Setup is non-trivial • Java. Party, HDCS build on top of RMI – Use powerful RMI features – Hide RMI complexity from application developer and/or end user

Custom communication protocols • JAVELIN uses HTTP – But then, applets have to! • IDES uses TCP sockets – No clear justification given – “Java makes socket creation and management blessedly simple”

Scalability • Have these systems been shown to scale up to reasonably large networks? • CDDS: 4 processors, 3. 5 x speedup • HDCS: Up to 60 processors, near-linear speedup • JAVELIN (applet-based? !) – Up to 64 processors, near-linear speedup – Only two-thirds as fast as C implementation • IDES: Up to 56 processors (14 PCS, 4 procs each), near-linear speedup

Comments • Some of these papers little more than “proof of concept” – Good ones: HDCS, JAVELIN, IDES • Therefore, risky to draw conclusions from these papers as to the “best” way to do Java distributed systems • Instead, consider them guidelines and avenues for future exploration

Conclusions • Most of these systems use – Java RMI for communication – Client-server design – Standard automatic or manual instantiation methods, not Java applets • Are these the “best” ways, or just the easiest to implement?

References • • Keane, T. M. A General-Purpose Heterogeneous Distributed Computing System , M. Sc. Thesis, Department of Computer Science, National University of Ireland, Maynooth, 2004. http: //www. cs. may. ie/distributed/publications. php Haumacher, B. Java. Party Setup, http: //www. ipd. uka. de/Java. Party/setup. html, retrieved April 29, 2006. Capello, P. , Christiansen, B. O. , Ionescu, M. F. , Neary, M. O. , Schauser, K. E. , and Wu, D. JAVELIN: Internet-Based Parallel Computing Using Java, ACM Workshop on Java for Science and Engineering Computation, Las Vegas, 1997. http: //www. cs. ucsb. edu/projects/javelin/index. html Preiss, B. R. , and Wan, K. W. C. The Parsimony Project: A Distributed Simulation Testbed in Java, Proceedings of the 1999 International Conference on Web-Based Modeling and Simulation, 1999. http: //www. brpreiss. com/papers/published/1999/websim/ Ferscha, A. , and Richter, M. Java based conservative distributed simulation, Proceedings of the 1997 Winter Simulation Conference, 1997. http: //citeseer. ist. psu. edu/ferscha 97 java. html Nicol, D. , Johnson, M. , Yoshimura, A. , and Goldsby, M. IDES: A java-based distributed simulation engine, Proceedings of the MASCOTS, 1998. http: //citeseer. ist. psu. edu/nicol 98 ides. html Sun Microsystems, Inc. Java RMI over IIOP, http: //java. sun. com/products/rmi-iiop/, retrieved April 30, 2006.
- Slides: 17