Sun remote ``procedure call'' is different from a local procedure call. Some systems, such as the Xerox Cedar language, try to support transparent RPC which looks and behaves like an ordinary procedure call. Such RPC differs from Sun RPC in two main ways:
Since a remote procedure call looks exactly like a local procedure call, it does not explicitly indicate the location of the remote machine. The remote machine is determined by a special binding phase, which occurs before the call is made.
Programmers do not explicitly marshall parameters or unmarshall results. The marshalling and unmarshalling (XDR) routines are generated from the declarations of procedures invoked remotely. For this reason, systems that support such RPC are sometimes also called RPC generators.
Let us fill some of the details
behind the concept of transparent RPC system.
Such a system expects
procedure headers and the types of the procedure parameters to
be encapsulated in interfaces.
An interface is implemented by a server and used by a client to
invoke the procedures defined in the interface.
An interface can be compiled for remote invocation.
Before we look at the implementation of transparent RPC,
let us resolve some semantic issues.