The answers are in boldface.

  1. One important difference between parallel computing and distributed computing is that

  2. Withing the context of interprocess communication, we define a synchronous operation as

  3. Which one of the following systems is an example of a client-server architecture with location independence?

  4. In a distributed object system, a skeleton

  5. Say you write an RMI Remote interface and then write two different implementations of that interface. How can you make both of them available to clients?

  6. An RMI Activatable remote object needs to be deployed along with

  7. Why does RMI require you to implement a Remote interface and its implementation instead of simply implementing a remote object?

  8. If the rmiregistry allowed any machine on the network to bind() to it, how could you (or, your evil twin) carry out a man-in-the-middle attack?

  9. What is the purpose of rmic in Java RMI?

  10. Why do we use the Factory design pattern for remote objects in RMI?

  11. When you run a JVM setting its java.rmi.server.codebase to some URL, what does this mean? (Assuming you are doing everything correctly, of course.)

  12. The steps that a Java RMI object server needs to do in order to get an UnicastRemoteObject registered are (in order):

  13. Java RMI sends all communications over a plain socket. If you wanted instead to use an encrypted socket, what would you need to do?

  14. Which one of the following is not a pertinent question to ask when deciding among different possible remote object interfaces?

  15. What is a method object?

  16. In centralized programming we don't really care if the argument of a function is of a primitive type or an object, but in distributed programming we do care. Why?

  17. Why do we wan to to avoid using a Vector as the type of an argument to a method in a remote interface?

  18. When deciding on which Exceptions your remote object should raise, a general rule of thumb is to

  19. The Java function used to serialize an object into a stream is called

  20. Why would you want to declare a member variable as transient?

  21. Say client1 has a reference to a Java RMI remote object. Client1 makes some function calls on this object and then serializes it and sends it to client2. Is the reference client2 now has functionally different from the one it would have gotten by asking the rmiregistry for the object?

  22. Why must you re-define the equals() function on objects that you want to be Serializable?

  23. A distributed object has two member functions

    public int synchronized f(...);
    public int synchronized g(...);
    could the use of these functions lead to trouble? How?

  24. In class we showed how to use a "lock" for avoiding synchronization problems. How does a lock work?

  25. How do you make the following code threadsafe?

    import java.util.*;
    public synchronized void insertIfAbsent(Vector vector, Object object){
      if (vector.contains(object)) {
        return;
      } 
      vector.add(object);
    }

  26. An RMI client obtains an reference to a distributed object. That is the only reference that exists to that object. The client machine crashes. What happens to the object?

  27. What happens if you forget to give the JVM a SecurityManager?

  28. Which one of the following is not a permission that you can deny using the policy file of the SecurityManager?

  29. When Java RMI does HTTP tunneling, what is it doing?

  30. Name one difference between CORBA and Java RMI.

  31. What service do the OMA's "object services" provide?

  32. Which one of the following choices is not something that the CORBA ORB core hides from the user?

  33. What is the OMG's IDL used for?

  34. What is the meaning of the keyword in in the OMG's IDL?

  35. What is "marshalling"?

  36. Dynamic invocation in CORBA works by

  37. Why was the IIOP needed?

  38. Grid computing is largely defined by one implementation of it, which is called

  39. The Grid defines a "resource" to be

  40. The Grid Resource Allocation Management (GRAM) protocol allows


Copyright © 2004 José M. Vidal. All Rights Reserved.