1. (4 points) One aspect of a remote procedure call or a remote invocation
is representing the arguments being passed from the client to the server
or the results returned to the client by the server as a linear byte stream
suitable for transmission over a network. The term serialization or marshalling
is used to refer to the process of converting the arguments or returned
result from possibly complex objects into a linear form by the sender and
accurately reconstructing the objects from the data stream by the receiver.
Consider a remote invocation that involves an array such as:
T x[10]; // an array of 10 elements of type TremoteObject.meth(x); // invoke the method "meth" on the remote object
// passing the array "x" as an input argument
Assuming that values of the base type of the array (the type T in
the above example) can be converted to a byte stream, how can the array
of these values be represented? To answer this question show two
different ways in which the array can be serialized. Be sure that
your answer shows how the length of the array is represented and how undefined
array elements are handled.
2. (2 points) The C-Linda program on page 450 of the "Linda in Context" paper is incorrect. Identify and correct the mistake.
3. (4 points) Show how to represent a linked list data structure in a tuple space. Your representation must be able to support typical linked list operations such as traversal of the list, and insertion and deletion of elements. You need to describe the representation and give a simple example.