- A transparent RPC is one in which the local and remote procedure calls are indistinguishable to programmers. The main issue in designing an RPC facility is its transparent property.
There are two types of transparencies required:
i.Syntactic transparency: A remote procedure and a local procedure call should have the same syntax.
ii.Semantic transparency: The semantics of a remote procedure call and local procedure call are identical.
- Achieving Syntactic transparency is not an issue but semantic transparency is difficult due to some differences between remote procedure calls and local procedure calls.
- The basic idea of RPC is to make a remote procedure call look transparent. The calling procedure should not be aware that the called procedure is executing on a different machine.
- RPC achieves transparency in an analogous way. When read is a remote procedure a different version of read called client stub is put in the library. It is called using the calling sequence.
- The parameters are packed into a message and sent to the server. When the message arrives at the server, the server’s operating system passes it to server stub which calls receive and blocks incoming messages.
- The server unpacks parameters and calls server procedure and performs its work and returns the result to caller in the usual way of packing the result and sending it to client stub.
- When the client receives the message from server, the operating system of client sees that it is addressed to client process. When the caller gets control following the cal to read, all it knows is that its data are available.
- It has no idea that the work was done remotely instead of the local operating system. In this way transparency is achieved.