calls permit the client to perform useful work while waiting for the reply from the server. To ensure effective utilization of the server, the server can create a task to process an incoming request, SO that it will be free to receive other requests. A collection of one or more remote programs, implementing one or more remote procedures such that the procedures, their parameters, and results are docu- mented in the protocol specification of the program is called a RPC service. The network client will initiate remote procedure calls to access the services. In order to be forward compatible with changing protocols, a server may sup- port more than one version of a remote program. The caller places arguments to a procedure in a well-specified location and transfers control to the procedure in the local model. As the control is gained by the caller it extracts the results of the pro- cedure from the well-specified location and continues execution. This chapter gives an overview on RPC with emphasis on programming. The XDR (eXternal Data Representation) has been used in examples as the presentation layer to wrap data in a format that both the client and server can understand with the RPC model that involves data transfer between heterogeneous systems. 27.2 RPC Overview The RPC is a powerful technique for constructing distributed, client-server based applications that are based on extending the notion of conventional local proce- dure calling. In RPC, the called procedure need not exist in the same address space as the calling procedure. The two communicating processes may be on the same system or on different systems with a network connecting them. RPC allows programming in a distributed environment avoiding the details of the interface with the network. The RPC is transport independent and can be used in a variety of applications facilitating isolation of the application from the physical and logical elements of the data communications mechanism. The client-server modeling with RPC is easier to program and offers pow