PreviousNext

Using Profiles to Direct Client Searches For Servers

Group entries offer clients a random choice from among multiple available services. Although a group entry can help in load balancing and resource allocation, its random nature resists fine tuning. Furthermore, it does not offer a way to prioritize servers for use by particular clients.

Profiles offer a complimentary way to organize servers because you can prioritize the search order of the profile members. (These were called elements in previous DCE versions.) Members identify servers by providing the following information:

· Interface identifier
This field is the key to the profile. The interface identifier consists of the interface UUID and the interface version numbers.

· Member name
The entry name of one of the following kinds of directory service entries:

- A server entry for a server offering the requested RPC interface

- A group corresponding to the requested RPC interface

- A profile

· Priority value
The priority value (0 is the highest priority; 7 is the lowest priority) is designated by the creator of a profile member to help determine the search order to select among like-priority members at random.

· Annotation string
The annotation string enables you to identify the purpose of the profile member. The annotation can be any textual information; for example, an interface name associated with the interface identifier or a description of a service or resource associated with a group.

Unlike the interface identifier field, the annotation string is not a search key.

Profiles are flexible; they contain members that can point to server entries, groups, and to other profiles. Profiles can also contain a special member called a default profile member. This optional member should point to a default profile which is usually a comprehensive backup profile that can serve the needs of most users in an organization. The following figure shows some possible mappings of a profile.


Possible Mappings of a Profile

To get an idea of how profiles can work, let us build on our printer example from the preceding discussion on group entries. The following profile entry example shows one way to use profiles to prioritize resources based on proximity to clients. In the figure, three users have personalized printer profiles that return server entries for printers nearest to them first. For example, user John is closest to laser_20 so the profile priority 1 returns that binding first. John is furthest from laser_23 so the profile priority 4 returns that binding last.

Profile entry name: /.:/admin/finance/accts_receivable_printers/johns_profile

/.:/admin/finance/accts_receivable/laser_20 1

/.:/admin/finance/accts_receivable/laser_21 2

/.:/admin/finance/accts_receivable/laser_22 3

/.:/admin/finance/accts_receivable/laser_23 4

Profile entry name: /.:/admin/finance/accts_receivable_printers/pats_profile

/.:/admin/finance/accts_receivable/laser_20 3

/.:/admin/finance/accts_receivable/laser_21 4

/.:/admin/finance/accts_receivable/laser_22 2

/.:/admin/finance/accts_receivable/laser_23 1

Profile entry name: /.:/admin/finance/accts_receivable_printers/wills_profile

/.:/admin/finance/accts_receivable/laser_20 2

/.:/admin/finance/accts_receivable/laser_21 1

/.:/admin/finance/accts_receivable/laser_22 3

/.:/admin/finance/accts_receivable/laser_23 4

To conclude this example, let us say that your department's server is being overused by another department. You could further limit its use by lowering the server's priority value in the foreign department's profile that points to your server.

Just as application servers can manage their own profile entries in CDS, they can also manage their own profile entries. However, you may find it more convenient (and more straightforward) to manually add, remove, or change server information in a profile entry. Like managing server entries and group entries, there are several methods for managing profile entries in CDS:

· Profile entry names can be hard coded into an application. You can change profile entry information in the source code but you need to recompile and rerun the application before the entry names take effect.

· Profile entry names can be passed to an application through environment variables or arguments. These methods are more convenient than recompiling but you might need to restart an application to use either method.

· Profile entry names can be directly managed in CDS by using the DCE control program's rpcprofile object. This manual method does not require recompiling or restarting applications.

The next topics discuss how to use the rpcprofile object to manually manage profile entries in CDS.

More:

Creating a New Profile

Adding a Profile Member

Viewing the Members of a Profile Entry

Importing Binding Information from a Profile Entry in CDS

Removing Members from a Profile Entry in CDS

Deleting a Profile Entry from CDS