8 Service Location Protocol (SLP)
The HELIOS software supports the
Service Location Protocol (SLP), which allows users under host systems to find available services without any knowledge of host names.
Note: Under Mac OS X SLP is preferred over the old AppleTalk Name Binding Protocol (NBP).
SLP is based on three different kinds of agents:
User Agents (UA)
This is basically the software that the user or a service uses to register, deregister and find services. Examples for such
User Agents are the "slptool", which you can find in
"HELIOSDIR/bin", or the "Network Browser" (Mac OS 9.x), and the
Connect To Server function (Mac OS X) respectively.
Service Agents (SA)
An SLP
Service Agent is responsible for storing information of services on a single system, answers
User Agent calls and informs
Directory Agents of local information changes. Examples of such
Service Agents are HELIOS SLP-servers on systems with a single network interface, or Mac OS 9.x and Mac OS X clients with active
File Sharing.
Fig. 76: Server with 1 NIC
|
Directory Agents (DA)
These agents act as a central repository of a network. It collects the information of
Service Agents to build a complete database of the whole network, which can be accessed by
User Agents. A HELIOS SLP server on a computer with several network interfaces becomes
Directory Agent by default.
Fig. 77: Server with 2 NICs
|
Service and
Directory Agents are initiated by the same program ("slpsrv"), that can be configured to run as a
Service or
Directory Agent.
In the absence of a
Directory Agent,
User Agents that look for services will have to ask for
Service Agents. Every
Service Agent that sends a reply will then be asked for its local services of a certain kind. If a
Directory Agent is available a
User Agent will only contact the
Directory Agent directly and ask for known services. Therefore
Directory Agents can significantly reduce network traffic.
But there is a catch: if a
Directory Agent was known, and did not deregister itself,
User Agents will always try to contact the
Directory Agent directly. If a
Directory Agent cannot react (due to a server crash or network problems) they will wait for the connection to time out (which can take several minutes) before they start to look for other
Directory or
Service Agents.
Another difference between
Directory and
Service Agents arises on systems with multiple network interfaces. By default "slpsrv" works on such systems as a
Directory Agent, so it gathers the services on each connected network, and computers in one network can use services in another network.
This utility makes use of the so-called "Service Location Protocol" which allows users under UNIX systems to find available services without any knowledge of host names.
slptool [options] command-and-arguments
The following options can be called with "slptool":
(version) displays version of "slptool" and "OpenSLP"
(scope) followed by a comma separated list of scopes
(language) followed by a language tag (default is "en" for "English")
(dump all) request attributes
"Command-and-arguments" may be:
findsrvs service type [filter]
cd /usr/local/helios/bin
./slptool findsrvs afp
(Use
slptool findsrvtypes to find all service types).
Reports all scopes, services and servers
cd /usr/local/helios/bin
./slptool register (contin. next line)
afp://server.helios.de
./slptool register (contin. next line)
"afp://173.14.24.6/?NAME=main-afpserver"
possible propertynames = net.slp.useScopes