2. RMI versus Remote Process Calls (RPC)
2.2 Remote Process Calls (RPC)
RPC was formally introduced in the early 1980's
[BAD 84] and describes how cooperating processes on different
network nodes can communicate and coordinate activities. RPC is
based upon the concept of traditional procedure calls. Traditional
procedure calls takes place between procedures of a single process
in the same memory on a single system. RPC differs in that it
takes place between a client process on one system and a server
process on another system where both systems are connected by
a network.
A look at the RPC implementation structure, Figure 3, reveals
how this is achieved.
Figure 3.
RPC implementation structure [5]
A client application, wishing to issue
a procedure call, issues a normal procedure call to a client stub.
The role of the client stub is to receive arguments from the calling
procedure and convert them from the clients' local data representation
to a common data representation. The arguments are then encapsulated
in a message and a call is made to the client runtime which transmits
the message to the server runtime.
The server runtime calls the server stub and it is the role of
the stub to extract the input arguments from the message and convert
them into the local data representation of the server. The stub
then calls the server application, with the input arguments, to
begin processing. When the server application has finished processing
the output arguments are passed to the server stub. The output
arguments are converted to the common data representation and
encapsulated into a message before being passed to the client
stub. The client stub extracts the output arguments from the message
and converts them to the clients' local data representation. Finally
the arguments are returned to the calling procedure.
Next Page