CMPSCI 677: Homework 2

Due: Oct 29, 2009

Web posted: Oct 21, 2009

General Instructions:
  1. Is a server that maintains a TCP/IP connection to a client stateful or stateless? Explain.
  2. Strong mobility in UNIX systems could be supported by allowing a process to fork a child in a remote system. Explain how this would work.
  3. Explain client-pull and server-push architectures with 2 examples each.
  4. Explain why epidemic algorithms are bad at spreading the deletion of a data item.
  5. The root node in a hierarchical location service may become a potential bottleneck. How can this problem be circumvented?
  6. What is the standard representation used to marshal data in TCP/IP? How do you ensure that data is transmitted correctly between a 32-bit and a 64-bit system.
  7. What is the main difference between RMI (Remote Method Invocation) and RPC.
  8. RMI cannot support local references (such as pointers), as they refer to objects only locally accessible. Instead, global object references should be used, if possible. Outline an implementation of such a reference.
  9. Describe how connectionless communication between a server and a client proceeds when using sockets.
  10. Use an example to show why clock synchronization is necessary for many distributed applications.

Last modified: Wed Oct 21 11:50:49 EDT 2009