OSF DCE Application Development Guide--Core Components

Chapter 12. RPC Fundamentals
DCE RPC provides a call environment that behaves essentially like a local call
environment. However, some special requirements are imposed on remote procedure
calls by the remoteness of calling code to the called procedure. Therefore, a remote
procedure call may not always behave exactly like a local procedure call.
This chapter discusses the following topics:
Universal unique identifiers
Communications protocols
Binding information
Endpoints
Execution semantics
Communication failures
Scaling applications
RPC Objects
Distributed applications have the following implications:
Client/server relationship—binding
Like a local procedure call, a remote procedure call depends on a static relationship
between the calling code and the called procedure. In a local application, this
relationship is established by linking the calling and called code. Linking gives the
calling code access to the address of each procedure to be called. Enabling a remote
procedure call to go to the right procedure requires a similar relationship (called a
binding) between a client and a server. A binding is a temporary relationship that
depends on a communications link between the client and server RPC runtimes. A
client establishes a binding over a specific protocol sequence to a specific host
system and endpoint.
Independent address spaces
The calling code and called remote procedure reside in different address spaces,
generally on separate systems. The calling and called code cannot share global
variables or other global program state such as open files. All data shared between
the caller and the called remote procedure must be specified as procedure parameters
in the IDL specification. Unlike a local procedure call that commonly uses the call-
124245 Tandem Computers Incorporated 121