A message-passing programming technology developed by Sun Microsystems and extended by the Open Software Foundation (OSF) that allows an application to execute procedures and interact with services on a remote computer on the network.
Remote procedure calls (RPCs) are the preferred method of enabling client/server processing on the Microsoft Windows 2000 and Windows NT platforms, an Microsoft’s implementation of RPC functionality is compatible with that of other implementations, such as those for the IBM AIX, HP-UX, and Sun Solaris operating systems.
You use RPCs to pass messages between components of a distributed application that are located on different computers on a network. While local procedure calls (LPCs) provide a mechanism for enabling different parts of an application located on a single computer to communicate with each other, RPCs involve communication between different computers. RPCs actually use a variety of other interprocess communication (IPC) mechanisms such as named pipes, mailslots, Windows Sockets, and NetBIOS to establish connections between the RPC client and RPC server components on different machines.
The remote procedure call service (RPC service), a component of the Windows NT executive running in kernel mode, is responsible for message-passing between the client and server components of a distributed application, usually a client/server application such as Microsoft Outlook (client part) with Microsoft Exchange Server (server part). On a Windows NT–based network, the server part of a distributed application first registers itself with the RPC Locator service. The client part of the application, which is on the local computer, can then query the RPC Locator service to determine the location of the required server part.
A process called the remote procedure stub then packages the client’s function call into a suitable RPC message and sends it to the remote computer using the RPC Run Time process. At the remote machine, a process called the application stub receives the RPC message, unpackages it into a function call, and executes it, returning any resulting values to the client part in a similar fashion. From the viewpoint of the client part of the application, the server part appears to be on the same computer.