What Is RPC?
Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2
What Is RPC?
In this section
Terms and Definitions
RPC Dependencies and Interactions
Microsoft Remote Procedure Call (RPC) is a powerful technology for creating distributed client/server programs. RPC is an interprocess communication technique that allows client and server software to communicate. The Microsoft RPC facility is compatible with the Open Group’s Distributed Computing Environment (DCE) specification for remote procedure calls and is interoperable with other DCE-based RPC systems, such as those for HP-UX and IBM AIX UNIX–based operating systems.
Computer operating systems and programs have steadily gotten more complex over the years. With each release, there are more features. The growing intricacy of systems makes it more difficult for developers to avoid errors during the development process. Often, developers create a solution for their system or application when a nearly identical solution has already been devised. This duplication of effort consumes time and money and adds complexity to already complex systems.
RPC is designed to mitigate these issues by providing a common interface between applications. RPC serves as a go–between for client/server communications. RPC is designed to make client/server interaction easier and safer by factoring out common tasks, such as security, synchronization, and data flow handling, into a common library so that developers do not have to dedicate the time and effort into developing their own solutions.
Terms and Definitions
The following terms are associated with RPC.
Client
A process, such as a program or task, that requests a service provided by another program. The client process uses the requested service without having to “deal” with many working details about the other program or the service.
Server
A process, such as a program or task, that responds to requests from a client.
Endpoint
The name, port, or group of ports on a host system that is monitored by a server program for incoming client requests. The endpoint is a network-specific address of a server process for remote procedure calls. The name of the endpoint depends on the protocol sequence being used.
Endpoint Mapper (EPM)
Part of the RPC subsystem that resolves dynamic endpoints in response to client requests and, in some configurations, dynamically assigns endpoints to servers.
Client Stub
Module within a client application containing all of the functions necessary for the client to make remote procedure calls using the model of a traditional function call in a standalone application. The client stub is responsible for invoking the marshalling engine and some of the RPC application programming interfaces (APIs).
Server Stub
Module within a server application or service that contains all of the functions necessary for the server to handle remote requests using local procedure calls.
RPC Dependencies and Interactions
RPC is a client/server technology in the most generic sense. There is a sender and a receiver; data is transferred between them. This can be classic client/server (for example, Microsoft Outlook communicating with a server running Microsoft Exchange Server) or system services within the computer communicating with each other. The latter is especially common. Much of the Windows architecture is composed of services that communicate with each other to accomplish a task. Most services built into the Windows architecture use RPC to communicate with each other.
The following table briefly describes the services in Windows Server 2003 that depend on the RPC system service (RPCSS).
Services That Depend on RPCSS
Service | Description |
---|---|
Background Intelligent Transfer Service |
Transfers data between clients and servers in the background. |
COM+ Event System |
Supports System Event Notification Service (SENS), which provides automatic distribution of events to subscribing Component Object Model (COM) components. |
COM+ System Application |
Manages the configuration and tracking of COM+-based components. |
Cryptographic Services |
Provides three management services: Catalog Database Service, which confirms the signatures of Windows files; Protected Root Service, which adds and removes Trusted Root Certification Authority certificates from this computer; and Key Service, which helps enroll this computer for certificates. |
DHCP Server |
Performs TCP/IP configuration for DHCP clients, including dynamic assignments of IP addresses, specification of the WINS and DNS servers, and connection–specific Domain Name System (DNS) names. |
Distributed Link Tracking Client |
Enables client programs to track linked files that are moved within an NTFS volume to another NTFS volume on the same computer or to an NTFS volume on another computer. |
Distributed Link Tracking Server |
Enables the Distributed Link Tracking Client service within the same domain to provide more reliable and efficient maintenance of links within the domain. |
Distributed Link Transaction Coordinator |
Coordinates transactions that span multiple resource managers, such as databases, message queues, and file systems. |
DNS Server |
Enables DNS clients to resolve DNS names by answering DNS queries and dynamic update requests. |
Error Reporting Service |
Collects, stores, and reports unexpected application failures to Microsoft. |
File Replication Service |
Allows files to be automatically copied and maintained simultaneously on multiple servers. |
Help and Support |
Enables Help and Support Center to run on the computer. |
Human Interface Device Access |
Enables generic input access to Human Interface Devices (HID), which activates and maintains the use of predefined hot buttons on keyboards, remote controls, and other multimedia devices. |
Indexing Service |
Indexes contents and properties of files on local and remote computers; provides rapid access to files through flexible querying language. |
IPSec Services |
Provides end-to-end security between clients and servers on TCP/IP networks. |
Kerberos Key Distribution Center |
On domain controllers, enables users to log on to the network using the Kerberos authentication protocol. |
Logical Disk Manager |
Detects and monitors new hard disk drives and sends disk volume information to Logical Disk Manager Administrative Service for configuration. |
Logical Disk Manager Administrative Service |
Configures hard disk drives and volumes. |
Messenger |
Transmits net send and Alerter service messages between clients and servers. This service is not related to Windows Messenger. |
Microsoft Software Shadow Copy Provider |
Manages software-based volume shadow copies taken by the Volume Shadow Copy service. |
Network Connections |
Manages objects in the Network and Dial-Up Connections folder in which you can view local area network (LAN) and remote connections. |
Print Spooler |
Manages all local and network print queues and controls all printing jobs. |
Protected Storage |
Protects storage of sensitive information, such as private keys and prevents access by unauthorized services, processes, or users. |
Remote Desktop Help Session Manager |
Manages and controls Remote Assistance. |
Remote Registry |
Enables remote users to modify registry settings on a computer. |
Removable Storage |
Manages and catalogs removable media and operates automated removable media devices. |
Resultant Set of Policy Provider |
Enables a user to connect to a remote computer, access the Windows Management Instrumentation (WMI) database for that computer, and either verify the current Group Policy settings made for the computer or check settings before they are applied. |
Routing and Remote Access |
Enables multi-protocol LAN-to-LAN, LAN-to-wide area network (WAN), virtual private network (VPN), and network address translation (NAT) routing services for clients and servers on the network. |
Security Accounts Manager |
Upon startup, signals other services that the Security Accounts Manager (SAM) is ready to accept requests. |
Shell Hardware Detection |
Provides notifications for AutoPlay hardware events. |
Task Scheduler |
Enables a user to configure and schedule automated tasks on the computer. |
Telephony |
Provides Telephony API (TAPI) support for clients using programs that control telephony devices and IP-based voice connections. |
Telnet |
Enables a remote user to log on to a computer and run programs; supports various TCP/IP Telnet clients, including UNIX-based and Windows-based computers. |
Terminal Services |
Allows users to connect interactively to a remote computer. Remote Desktop, Fast User Switching, Remote Assistance, and Terminal Server depend on this service. |
Terminal Services Session Directory |
Enables a user connection request to be routed to the appropriate terminal server in a cluster. |
Upload Manager |
Manages the synchronous and asynchronous file transfers between clients and servers on the network. |
Virtual Disk Service |
Provides software volume and hardware volume management service. |
Volume Shadow Copy |
Manages and implements Volume Shadow Copies used for backup and other purposes. |
Windows Audio |
Manages audio devices for Windows-based programs. |
Windows Image Acquisition (WIA) |
Provides image acquisition services for scanners and cameras. |
Windows Installer |
Installs, repairs, and removes software according to instructions contained in .MSI files. |
Windows Internet Name Service (WINS) |
Resolves NetBIOS names for TCP/IP clients by locating network services that use NetBIOS names. |
Windows Management Instrumentation |
Provides a common interface and object model to access management information about operating system, devices, applications, and services. If this service is stopped, most Windows-based software will not function properly. |
Wireless Configuration |
Enables automatic configuration for IEEE 802.11 adapters. |
WMI Performance Adapter |
Provides performance library information from WMI providers to clients on the network. |