Information Technology Reference
In-Depth Information
Caller Machine
Network
Callee Machine
Server-Stub
/ Skeleton
User
User-Stub
RPCRuntime
RPCRuntime
Server
Call Packet
local
call
pack
argument
transmit
receive
unpack
argument
call
wait
work
unpack
result
Result Packet
pack
result
local
return
receive
transmit
return
importer
exporter
importer
exporter
inteface
interface
Figure 2.2.
RPC components and their interactions.
appropriate data types for the machine, a process known as unmarshalling, and
makes a normal local procedure call to the server process. The return value from
the local procedure call is then marshalled by the skeleton and returned to the
calling code [15, 116].
2.3.2
Interface Definition Language
Remote procedure calls generally make no assumptions about the architecture of
the remote system or the programming language remote procedures have been
written in. Key to supporting communication between these systems of unknown
architectures written in unknown programming languages is the notion of an In-
terface Definition Language (IDL), a machine-neutral language used to describe
the remote procedures, their parameters, and the call semantics (described in Sec-
tion 2.3.4) in a machine neutral way. The IDL is read by an application, which
generates the stubs and skeletons of the application.
The Network Interface Definition Language (NIDL) defined as part of the
Network Computing Architecture (NCA) [26] provides the following data types:
Integers: Both signed and unsigned integers in one, two, four, and eight byte sizes.
Floating point: Single (four byte) and double (eight byte) precision floating point.
Scalar types: Other scalars including signed and unsigned characters, booleans,
and enumerations.
Type constructors: Structures, discriminated unions, pointers, and arrays. Pointers
to pointers or records containing pointers are not permitted.
Various attributes can be associated with remote procedures so that the RPC
compiler can generate stubs and skeletons that are either more ecient or provide a
particular feature. For example, the Distributed Computing Environment (DCE)
[109] provides the following attributes:
 
Search WWH ::




Custom Search