My Easy Exam

Well, just incase any of you were still bothered, here's my Distributed Systems exam from today. I'm quite worried, I found it easy and walked out half an hour from the end. Other people found it hard.

:/

Go figure
I did questions 2,3 and 4

-------------------------
 
  Distributed  Systems 
  
   Friday 5 May 2000
 Duration : 120 minutes

 Answer THREE questions
 , , , , , , , , , , , ,

-------------------------
(I answered Questions 2, 3 and 4)

1.

a) Explain the following call semantics associated with Remote Procedure Call mechanisms. For each one outline the implementation issues and give an example of where it would be used

i) Maybe
ii) At-least-once
iii) At-most-once

b) Specify a RPC interface to an Election Service which allows a client to both query the current number of votes for a specified candidate and vote for one of the set of candidates. Each client has a voter number used for identification in requests and candidates are identified by string name.

c) Give a pseudocode implementation for the Election Service (server only) which would permit the interface to be invoked using an RPC mechnaism which supports at-least-once calling semantics. Explain why your implementation deals with this calling semantics.

The three parts carry, respectively, 45%, 10%, 45% of the marks

2.

a) Define binding. Explain and compare First-Party and Third-Party binding indication how they work, when they woudl be used and how they cope with server failure.

b) Assume the election service described in Question 1 is implemented in Java RMI. Give a pseudocode implementation for the client showing how it binds to the voteserver whose name is coded in the client. The client reads the candidate name from the terminal, invokes a vote operation for a candidate followed by a query operation which prints the number of votes to the terminal.

c) Assuming a system supports message passing primitives. Discuss how type-checking can be accomplished in the following. In both cases, comment on what compile type-checking can be performed.

i) at bind-time
ii) at run-time when message exchanges are taking place

(I didn't undertsand this question - it doesn't make sense in english and it's impractical to do type checking for message passing at compile time)

3.

a) Give a brief diagram showing the structure of a simple X.500/LDAP Directory Service. Briefly describe the format of a heirachical distinguished name and explain how to make sure a name is unique when assigning it.

b) What is a trading service? Describe what information msut be provided by both clients and servers when using a trading service.

c) An international company frequently reorganises the company global filing system to reflect current usage. This requires migrating subtrees of the file system to servers local to where the usage is greatest. Describe a suitable file identifier and how the system locates the current position of files.

The three parts carry, respectively, 35%, 30%, 35% of the marks

4.

a) Explain what a public-key (assymetric) cryptographic system and how it can be used to both autenticate the originator of the message and provide secrecy for the data in transit. Briefly describe the advantages and disadvantages of public-key cryptography.

b) An electronic cash system allows Alice to withdraw an electronic cash token for a requested amount (e.g 50 UKP) from here accoutn at BA bank to her electronic wallet. She can then use this token to pay Bob for a 50 UKP item. Assuem the token cannot be split into smaller value tokens and that Alice and Bob have the same bank. Bob sends the token to the bank to eb credited to his account, and delivers the item once he receives positive confirmation that his account has been credited.

i) Draw a diagram of the various interactions between Bob, Alic and the bank, indicating the order in which the occur.
ii) Assume a public-key crypto system, describe and expalin the message contents in the interactions between Alice, Bob and BA Bank, assuming secrecy and authentication is required. Your solution must indicate how to prevent a token being used twice.