170 likes | 246 Views
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.
E N D
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 1990s • 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” • JavaParty (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? • JavaParty • 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? (JavaParty) • 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, JavaParty • 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 • JavaParty, 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.5x 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. JavaParty Setup, http://www.ipd.uka.de/JavaParty/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/ferscha97java.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/nicol98ides.html • Sun Microsystems, Inc. Java RMI over IIOP, http://java.sun.com/products/rmi-iiop/, retrieved April 30, 2006.