PreviousNext

Examples of Searching for Server Entries

This topic provides several examples of how the NSI import_next and lookup_next operations search for binding information associated with a given RPC interface and object in a namespace.

The examples in this guide use the following conventions:

· To simplify the following examples, each member name is represented by a leaf name preceded by the symbol that represents the local cell (/.:). For example, the full global name of the group for the Bulletin_board_interface is as follows:

/.../C=US/O=uw/OU=MadCity/LandS/bb_grp

The abridged name is /.:/LandS/bb_grp.

· Except for the nil interface UUID of the default profile, the examples avoid string representations of actual UUIDs. Instead, the examples represent a UUID as a value consisting of the name of the interface and the string if-uuid or of the name of the object and the string object-uuid; for example:

calendar-if-uuid,1.0

laser-printer-object-uuid

· Profile elements in the examples are organized as follows (annotations are not displayed):

interface-identifier member-name priority

For example,

2fac8900-31f8-11ca-b331-08002b13d56d,1.0 /.:/LandS/C_host_7 0

which, in the following examples, is represented as follows:

calendar-if-uuid,1.0 /.:/LandS/C_host_7 0

Note: The priority is a value of 0 to 7, with 0 having the highest search priority and 7 having the lowest priority.

The first two examples begin with the personal profile of a user, Esther Rose, whose user name is esther_r and whose profile has the leaf name of esther_r_profile. To use this profile, Esther must specify its entry name to the client. Usually, a client either uses the predefined RPC environment variable RPC_DEFAULT_ENTRY or prompts for an entry name. For a client to use RPC_DEFAULT_ENTRY, the client or user must have already set the variable to a directory service entry.

The following example illustrates six profile elements from the individual user profile used in the first two examples. The six elements include five nondefault elements for some frequently used interfaces and a default profile element. Each profile element is displayed on three lines, but in an actual profile all the fields occupy a single record. The fields are the interface identifier (interface UUID and version numbers), member name, priority, and annotation.

/.:/LandS/anthro/esther_r_profile contents:

ec1eeb60-5943-11c9-a309-08002b102989,1.0

/.../C=US/O=uw/OU=MadCity/LandS/Cal_host_7

0 Calendar_interface_V1.0

ec1eeb60-5943-11c9-a309-08002b102989,2.0

/.../C=US/O=uw/OU=MadCity/LandS/Cal_host_4

1 Calendar_interface_V2.0

62251ddd-51ed-11ca-852c-08002b1bb4f6,2.0

/.../C=US/O=uw/OU=MadCity/bb_grp

0 Bulletin_board_interface_V2.0

62251ddd-51ed-11ca-852c-08002b1bb4f6,2.1

/.../C=US/O=uw/OU=MadCity/bb_grp

1 Bulletin_board_interface_V2.1

9e18d295-51ec-11ca-9cc0-08002b1bb4f5,1.0

/.../C=US/O=uw/OU=MadCity/LandS/anthro/Zork_host_2

0 Zork_interface_V1.0

00000000-0000-0000-0000-000000000000,0.0

/.../C=US/O=uw/OU=MadCity/cell-profile

0 Default_profile_element

Example 1: Importing for an Interface with Multiple Versions

Target Interface: Calendar V2.0

The search for binding information associated with Calendar V2.0 starts with the entry esther_r_profile:

/.../C=US/O=uw/OU=MadCity/LandS/anthro/esther_r_profile contents:

calendar-if-uuid,1.0 /.:/LandS/C_host_7 0

calendar-if-uuid,2.0 /.:/LandS/C_host_4 1

bulletin_board-if-uuid,2.0 /.:/LandS/bb_grp 2

bulletin_board-if-uuid,2.1 /.:/LandS/bb_grp 3

Zork-if-uuid,1.0 /.:/Eng/Zork_host_2 0

00000000-0000-0000-0000-000000000000,0.0 /.:/cell-profile 0

The search operation examines only the two profile elements that refer to the Calendar interface:

a. The operation rejects the first profile element for the interface because it refers to the wrong version numbers.

b. In the next profile element, the operation finds the correct version numbers (2.0). The search proceeds to the associated server entry, /.:/LandS/Cal_host_4.

2. The search ends with the indicated server entry, where the binding information requested by the client resides:

/.:/LandS/Cal_host_4 contents:

calendar-if-uuid,2.0

binding-information

Example 2: Using a Default Profile for Importing an Interface

Target Interface: Statistics V1.0

1. The search for binding information associated with Statistics V1.0 starts with the entry esther_r_profile. But the profile lacks any elements for the interface. Thus the search reaches the default profile element, which provides the entry name for the default profile, /.:/cell-profile:

/.:/LandS/anthro/esther_r_profile contents:

calendar-if-uuid,1.0 /.:/LandS/C_host_7 0

calendar-if-uuid,2.0 /.:/LandS/C_host_4 1

bulletin_board-if-uuid,2.0 /.:/LandS/bb_grp 2

bulletin_board-if-uuid,2.1 /.:/LandS/bb_grp 3

Zork-if-uuid,1.0 /.:/Eng/Zork_host_2 0

00000000-0000-0000-0000-000000000000,0.0 /.:/cell-profile 0

2. The search continues to the indicated default profile, /.:/cell-profile, which contains a profile element for the requested Statistics V1.0 interface:

/.:/LandS/cell-profile contents:

.

.

.

Statistics-if-uuid,1.0 /.:/LandS/Stats_host_6 0

.

.

.

3. The search ends at the indicated server entry, /.:/LandS/Stats_host_6, where a server address for the requested interface resides:

/.:/LandS/Stats_host_6 contents:

Statistics-if-uuid,1.0

binding-information

Example 3: Importing an Interface and an Object

Target Interface: Print Server V2.1

Target Object: Laser Printer Print Queue

1. The search starts with the entry /.:/Bldg/Print_queue_grp, which contains the entry names of several server entries that advertise the Print_server interface and the object UUID of a given Laser_printer print queue. The search begins by randomly selecting a member name. In this instance, the search selects the name /.:/Bldg/Print_server_host_3:

/.:/Bldg/Print_queue_grp contents:

/.:/Bldg/Print_server_host_3

/.:/Bldg/Print_server_host_7

/.:/Bldg/Print_server_host_9

2. The search continues with the /.:/Bldg/Print_server_host_3 entry. There, it finds the requested Version 2.1 of the Print_server interface. However, the search continues because the entry lacks the object UUID of the requested Laser_printer queue:

/.:/Bldg/Print_server_host_3 contents:

print_server-if-uuid,2.1

binding-information

line_printer_queue-object-uuid

3. The search goes back to the previous entry, which was /.:/Bldg/Print_queue_grp, to select another entry name; in this instance /.:/Bldg/Print_server_host_9:

/.:/Bldg/Print_queue_grp contents:

/.:/Bldg/Print_server_host_3

/.:/Bldg/Print_server_host_7

/.:/Bldg/Print_server_host_9

4. The search selects the /.:/Bldg/Print_server_host_9 entry. This entry contains both a server address for the requested Version 2.1 of the interface and the requested object UUID of the Laser_printer queue:

/.:/Bldg/Print_server_host_9 contents:

print_server-if-uuid, 2.1

binding-information

laser_printer_queue-object-uuid

The search returns binding information from this entry to the client.