OSF DCE Application Development Guide--Core Components

OSF DCE Application Development Guide—Core Components
by-reference passing mechanism for input/output parameters, remote procedure calls
with input/output parameters have copy-in/copy-out semantics due to the differing
address spaces of the calling and called code. These two passing mechanisms are
only slightly different, and most procedure calls are not sensitive to the differences
between call-by-reference and copy-in/copy-out semantics.
Independent failure
Distributing a calling program and the called procedures to physically separate
machines increases the complexity of procedure calls. Remoteness introduces issues
such as a remote system crash, communications failures, naming and binding issues,
security problems, and protocol incompatibilities. Such issues can require error
handling that is unnecessary for local procedure calls. Also, as with local procedure
calls, remote procedure calls are subject to execution errors that arise from the
procedure call itself.
12.1 Universal Unique Identifiers
Each UUID contains information, including a timestamp and a host identifier.
Applications use UUIDs to identify many kinds of entities. DCE RPC identifies several
uses of UUIDs, according to the kind of entities each identifies:
Interface UUID
A UUID that identifies a specific RPC interface. An interface UUID is declared in an
RPC interface definition (an IDL file) and is a required element of the interface. For
example:
uuid(2fac8900-31f8-11ca-b331-08002b13d56d),
Object UUID
A UUID that identifies an entity for an application; for example, a resource, a
service, or a particular instance of a server. An application defines an RPC object by
associating the object with its own UUID known as an object UUID. The object
UUID exists independently of the object, unlike an interface UUID. A server usually
generates UUIDs for its objects as part of initialization. A given object UUID is
meaningful only while a server is offering the corresponding RPC object to clients.
To distinguish a specific use of an object UUID, a UUID is sometimes labeled for the
entity it identifies. For example, an object UUID that is used to identify a particular
instance of a server is known as an instance UUID.
Type UUID
A UUID that identifies a set of RPC objects and an associated manager (the set of
remote procedures that implements an RPC interface for objects of that type). This is
often called a manager type UUID.
Servers can create object and type UUIDs by calling the uuid_create() routine.
12 2 Tandem Computers Incorporated 124245