Question:
(a) Briefly discuss and describe the possible RMI invocation semantics.
(b) (i) What is data marshaling?
(ii) Explain the role of a remote object reference during marshaling and unmarshalling, at both clients and servers, in an RMI system.
(iii) By using examples, distinguish between a local method invocation and a remote method invocation.
(c) Explain the benefits of middleware to distributed systems programmers, providing an example for each benefit.
(d) What are stub and skeleton and why are they needed in remote procedure calls?