Advanced Networking -- The Corba and RMI Test

Basics

  1. Which of the following is true?
    1. Stubs live in the client, and skels live in the server.
    2. Stubs live in the server, and skels live in the client.
    3. Both stubs and skells live in the client.
    4. Both stubs and skells live in the server.
  2. Which of the above is true?
    1. Klingon's are violent
    2. Kirk pauses .... when he .... speaks.  He ... pause at odd ... times.
    3. Spoc was once in Love
  3. Please define marshalling of arguments: __________________________________________
    _____________________________________________________________________________
    _____________________________________________________________________________
  4. (Two Points) RMI and Corba differ in many ways.  List one advantage of each.
    RMI's better because: __________________________________________________________
    _____________________________________________________________________________
    Corba's better because: _________________________________________________________
    _____________________________________________________________________________
  5. Kilingons are related to Romulans how
    1. Same blood, different homeworld
    2. Logic vs. Emotions
    3. They are each archenemies of the other
    4. Kirk is attracted to both Klingons and Romulans
  6. What is a callback?
    1. When the client makes a method call upon the remote object.
    2. When a remote object make a method call upon the server.
    3. When a server makes a call upon the remote object.
    4. When a remote object makes a call upon one of it's own methods
    5. None or more than one of the above.

CORBA

  1. Using I.D.L., write me an interface named 'Bottle'.  It should have the method 'setAmount' which takes a floating point number between 0.0 ... 1.0 and returns nothing.  It should have the method 'enoughtCoke' which takes an integer, and returns a true or false.





  2. Pick the most true statement
    1. CORBA passes arguments using pass-by-value
    2. CORBA passes arguments using pass-by-value-result
    3. CORBA passes arguments using pass-by-reference
    4. None or more than one of the above.
  3. (Yes/No) CORBA implements distributed objects.  Can CORBA offer access to these objects to a non-object-oriented language, such a C or COBOL?
  4. (Yes/No) Klingon teeth places in Coke disolve and dissapear.
  5. What does the CORBA method 'narrow' do? ______________________________________________________
    ___________________________________________________________________________________________
  6. Do they have Coke on the Klingon homeworld
    1. Coke was unable to rent the space shuttle
    2. Klingons drink the blood of their enemy, not Coke.
    3. There is no money in the 25th century.  Why would Coke ship there?
  7. Suppose two computers are running the same brand of ORB, and a client has an IOR generated by the server.  What else must be true for the client to find the server?  Choose all that apply.
    1. The client must know the server's hostname.
    2. The client must know the server's IP number.
    3. The client must be able to find an rmiregistry the server is listed with.
    4. The client must contact the CORBA naming service listing the server.
    5. The client must know the server's port number.
    6. The client must be directly connected to the client (no routers between them) .
    7. None of the above.
  8. Name one C++ type (int, char *, etc.) that cannot be used as an argument to a CORBA remote object. (Don't pick int or char *). _________________________________________________________
  9. (Yes/No)  Suppose that a remote object offers the method 'Coke(Can a, long b)'.  When the code for that remote object is compiled, must the code for 'Can' be available to the compiler?

RMI

  1. Which of  these conditions must be true for an object to be a remote object?  Circle all that apply.
    1. It must be listed with the rmiregistry.
    2. It must extend RemoteObject or UnicastRemoteObject
    3. It must be able to throw RemoteException
    4. It must be serializable
    5. None or all of the above.
  2. What happens when you put a Klingon in the freezer.
    1. He explodes
    2. He deforms
    3. Klingon slushy!!!!!
    4. I'm not that stupid.
  3. Which of these can be an argument to a remote object?  Circle all that apply
    1. An array of Strings
    2. An applet with nothing displayed on the screen yet.
    3. An integer
    4. Another remote object
    5. None of the above
  4. Pick one:
    1. RMI passes local arguments to remote methods using pass by value
    2. RMI passes local arguments to remote methods using pass by reference
    3. RMI passes local arguments to remote methods using pass by attribute-copy-result.
  5. (Yes/No) Must a remote object extend an interface?
  6. Suppose you call rebind() to register an object using a name already in use by another object.  What happens?





  7. Suppose you make a method call upon a remote object, but the server offering that object has since exited.  What happens?  Please be more descriptive than 'error' or 'it doesn't work'.




  8. An RMI remote object can download code implementing objects used as arguments to remote methods.  What sort of security is used?




Linda

    I want to write a Linda program that plays Klingon Xpghtpcha.  Xpghtpcha is a board game similar to Chess, Checkers, or Tic-Tac-Toe.  My program should create a game tree for Xpghtpcha, and evaluate each board position to decide my next Xpghtpcha move.
  1. What should I place into the tuple space at the begining of the program run?




  2. What should each client do.  In pseudo-code show the agorithm for each process of my Xpghtpcha program.