OSF DCE Application Development Guide--Core Components
OSF DCE Application Development Guide—Core Components
Applications use object UUIDs to refer to resources as follows:
1. Servers offer resources by assigning an object UUID to each specific resource.
2. Clients obtain those object UUIDs and use them to learn about a server that
offers a given resource.
3. When making a remote procedure call, a client requests a resource by passing
its UUID as part of the server binding information.
Each RPC resource or type of resource requires its own object UUID. A calendar
server, for example, may require a distinct UUID to identify each calendar.
RPC interfaces can be defined to operate with different types of resources and can be
implemented separately for each type; for example, a print server application that
supports PostScript, sixel, and ASCII file formats. When using different
implementations of an interface (different managers), servers must associate the
object UUID of a resource, such as an ASCII file format and its manager, by
assigning them a single type UUID. To request the resource, a client specifies its
object UUID in the server binding information. When a print server receives the
remote procedure call, it looks up the corresponding type UUID and selects the
associated manager.
Some RPC resources, such as print queues, belong exclusively to a single server
instance. Some can be shared among server instances; for example, a file format or
an airline reservation database. For server instances on the same system, sharing a
resource means that its object UUID cannot distinguish between the two instances.
For a print server, this is unlikely to be a problem, assuming that each printer runs
only one instance of the print server. In contrast, an application with a widely
accessed database, such as an airline reservation application, may need to ensure that
clients can distinguish server instances from each other. An application can
distinguish itself by supplying its clients with instance-specific information; for
example, a well-known endpoint or an instance UUID.
Note: Multiple server instances that access the same set of resources can
introduce concurrency control problems, such as two instances
accessing a tape drive at the same time. Also, where the system
provides concurrency control, servers may compete and have to wait
for resources such as databases. Dealing with delayed access to shared
resources may require an application-specific mechanism, such as
queuing access requests.
14.3.5.1 Guidelines for Defining and Using RPC Resources
When developing an RPC application, you need to decide whether to use object
UUIDs to identify RPC resources and, if so, what sorts of resources receive UUIDs
that servers export to the namespace. When making these decisions, consider the
following questions:
• Will users need to select a server entry from the namespace based on what object
UUIDs the entry contains (and what the client needs)?
14 − 44 Tandem Computers Incorporated 124245