OSF DCE Application Development Guide--Introduction and Style Guide

OSF DCE Application Development Guide—Introduction and Style Guide
by host machine. Since object UUIDs are generated by the uuid_create() function call
(see the OSF DCE Application Development Reference), servers can create as many of
them as they need.
For the print server example discussed in the previous section, the namespace
entries for the servers could be set up as shown in the following figure.
Figure 5-6. Print Server Name Entries with Object UUIDs
RPC
Runtime
Client
........................
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.........................
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Client’s Machine
Endpoint
Mapper
....................................................
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.....................................................
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Print
Server
A
Print
Server
B
Print
Server
C
Print
Server
D
Servers’ Machine
1
2
3
"A" "B" "C" "D"
inter-
face
Printer
inter-
face
Printer
inter-
face
Printer
inter-
face
Printer
Server
A
partial
binding
Server
B
partial
binding
Server
C
partial
binding
Server
D
partial
binding
Names of
Entries
+
Server
A’s
object
UUID
+
Server
B’s
object
UUID
+
Server
C’s
object
UUID
+
Server
D’s
object
UUID
Contents of
partial
bindings are
differentiated
by object
UUIDs
Interface
UUIDs
Namespace
The following steps describe the sequence of events shown in the preceding figure:
1. The client imports a partial binding to the printer interface from the entry A in
the namespace.
2. The client makes its first call with the binding it imported from A.
3. This time the endpoint mapper at print server A’s host is able to match the call with
A’s registered endpoints, because the endpoints have been registered with both the
printer interface and print server A’s object UUID, and the incoming call’s partial
binding also contains print server A’s object UUID.
Each server has exported a set of partial bindings that differs from all other servers’ by its
object UUID (which thus becomes, in effect, a server ID). If, for example, server A has
properly registered its endpoints with the same object UUID as the one it exported its
bindings with, the endpoint mapper will make sure that a partial binding exported from
server A’s name entry will result in a full binding to server A.
Now suppose that each print server sets up a separate namespace entry for each printer it
manages. The printers themselves would, in effect, be identified by their own object
5 14 Tandem Computers Incorporated 124246