Using Profiles to Direct Client Searches For ServersGroup 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
· Member name - A server entry for a server offering the requested RPC interface - A group corresponding to the requested RPC interface - A profile
· Priority value
· Annotation string 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.
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: 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
|