a survey of implementations of java-based distributed systems glenn matthews may 8, 2006

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

Upload: erin-richardson

Post on 17-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

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

A survey of implementations of Java-based distributed

systems

Glenn MatthewsMay 8, 2006

Page 2: 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

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

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

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

Purpose of this presentation

• Look at existing Java distributed systems– Are Java’s special features helpful?– What design/implementation patterns

can we see?

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

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)

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

Automatic startup/instantiation

• Like what we’ve been considering?• JavaParty• No relevant Java features aid this• Use RSH/SSH for remote login and

activation

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

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

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

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

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

Communication

• Java Remote Method Invocation (RMI)– CDDS, Parsimony, HDCS, JavaParty

• Custom HTTP-based or TCP-based protocols– JAVELIN, IDES

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

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

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

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!

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

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

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

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”

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

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

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

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

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

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?

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

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.