Installation guide
124 NetIQ eDirectory 8.8 SP8 Installation Guide
Clients can discover services with only a UA library, but registration requires an SA, primarily
because an SA must reassert the existence of registered services periodically in order to maintain the
registration with listening directory agents.
The directory agent’s job is to provide a long-term persistent cache for advertised services, and to
provide a point of access for user agents to look up services. As a cache, the DA listens for SAs to
advertise new services, and caches those notifications. Over a short time, a DA’s cache will become
more complete. Directory agents use an expiration algorithm to expire cache entries. When a
directory agent comes up, it reads its cache from persistent storage (generally a hard drive), and then
begins to expire entries according to the algorithm. When a new DA comes up, or when a cache has
been deleted, the DA detects this condition and sends out a special notification to all listening SAs to
dump their local databases so the DA can quickly build its cache.
In the absence of any directory agents, the UA will resort to a general multicast query that SAs can
respond to, building a list of the requested services in much the same manner that DAs use to build
their cache. The list of services returned by such a query is an incomplete and much more localized
list than that provided by a DA, especially in the presence of multicast filtering, which is done by
many network administrators, limiting broadcasts and multicasts to only the local subnet.
In summary, everything hinges on the directory agent that a user agent finds for a given scope.
C.2.1 NetIQ Service Location Providers
The NetIQ version of SLP takes certain liberties with the SLP standard in order to provide a more
robust service advertising environment, but it does so at the expense of some scalability.
For example, in order to improve scalability for a service advertising framework, you can limit the
number of packets that are broadcast or multicast on a subnet. The SLP specification manages this by
imposing restrictions on service agents and user agents regarding directory agent queries. The first
directory agent discovered that services the desired scope is the one that a service agent (and
consequently, local user agents) will use for all future requests on that scope.
The NetIQ SLP implementation actually scans all of the directory agents it knows about looking for
query information. It assumes a 300-millisecond round trip time is too long, so it can scan 10 servers
in about 3 to 5 seconds. This doesn't need to be done if SLP is configured correctly on the network,
and OpenSLP assumes the network is in fact configured correctly for SLP traffic. OpenSLP’s response
timeout values are greater than that of NetIQ’s SLP service provider, and it limits the number of
directory agents to the first one that responds, whether or not that agent’s information is accurate and
complete.
C.2.2 User Agents
A user agent takes the physical form of a static or dynamic library that is linked into an application. It
allows the application to query for SLP services.
User agents follow an algorithm to obtain the address of a directory agent to which queries will be
sent. Once they obtain a DA address for a specified scope, they continue to use that address for that
scope until it no longer responds, at which time they obtain another DA address for that scope. User
agents locate a directory agent address for a specified scope by:
1. Checking to see if the socket handle on the current request is connected to a DA for the specified
scope. If the request happens to be a multipart request, there may already be a cached
connection present on the request.
2. Checking its local known DA cache for a DA matching the specified scope.










