Previous section.

CDE 1.1: Remote Procedure Call
Copyright © 1997 The Open Group

Introduction to the RPC Specification

This document specifies both portability and interoperability for the Remote Procedure Call (RPC) mechanism. The specification contains material directed at two audiences:

This document may be thought of as an implementation specification, covering both portability and interoperability, that contains within it an application portability guide. The application portability guide consists of Part 2, RPC Application Programmer's Interface and Part 3, Interface Definition Language and Stubs.

Although the portability specification is part of the broader implementation specification, it has been designed to stand alone so that it may be used by application programmers without reference to the other parts of the implementation specification.

In order to make the portability specification independent, some material is repeated, especially between Introduction to the RPC API and Remote Procedure Call Model .


The portability specification describes the concrete syntax and semantics of the Application Programmer's Interface (API) to RPC. It consists of:

The portability specification is narrowly focussed on providing a guide to portable usage of the RPC API. It describes behaviour that is common to all implementations. Whenever implementation-specific behaviour is referenced, it is clearly marked as such. Similarly, the specification generally avoids examples or tutorial descriptions. Whenever usage guidelines are provided, they are clearly marked as such.

All behaviour that is not specifically marked as implementation-specific or a usage note, is considered to be required. All implementations must conform to the specified behaviour. Programmers can rely on the specified behaviour to be portable among conforming implementations.

Services and Protocols

The implementation specification includes a set of service and protocol specifications. The protocol specifications describe how implementations of the RPC client and server run-time systems communicate. The service specifications describe a set of abstract services that the RPC run-time system must implement.

The service and protocol specifications include:

The aim of the service and protocol specifications is to provide a complete mapping from RPC call semantics to the byte streams that RPC run-time clients and servers interchange using underlying services. The RPC service primitives provide an abstract implementation of the specified RPC call semantics and serve to map the specified semantics to the specified protocol machines. The PDU formats give the byte streams that the protocol machines exchange using the underlying transport services. The NDR specification, along with the mapping of IDL to NDR data types, defines how the call data exchanged in the RPC PDUs is encoded.

Except for the byte stream specification and the stub specification, the service and protocol specifications are abstract. They describe the behaviour that conforming implementations must follow, but they do not prescribe any specific means for implementing this behaviour.

Implementations that conform to this specification interoperate according to the following rule: client and server applications, conforming to the same IDL source (but not necessarily the same ACS), correctly implement the specified RPC interface semantics for each remote procedure call operation specified in the IDL source.

Except when specified otherwise, IDL compiler behaviour and the stub, including the stub to run-time interface, are implementation-dependent. Therefore, the above rule applies when stubs are generated using the local implementation's IDL compiler. There is no requirement that stubs for a given language are portable among implementations.

Conformance Requirements

To conform to this document, implementations must meet the following requirements:


This document specifies ISO C-language bindings for data types and interfaces.

Please note that the html version of this specification may contain formatting aberrations. The definitive version is available as an electronic publication on CD-ROM from The Open Group.

Contents Next section Index