8 Service Location Protocol (SLP)
Unsere Software unterstützt das
Service Location Protocol (SLP), das es Benutzern von UNIX Systemen ermöglicht, verfügbare Dienste ohne Kenntnis der Namen von Host-Computern zu finden und zu nutzen.
Hinweis: Unter Mac OS X wird SLP gegenüber dem alten
AppleTalk Name Binding Protocol (NBP) bevorzugt.
SLP basiert auf drei unterschiedlichen Arten von Agenten:
User Agents (UA)
Dies ist im Wesentlichen die Software, die der Benutzer verwendet, um einen Dienst zu finden. Die Software wird aber auch von Diensten selbst verwendet, um sich im Netzwerk an- und auch wieder abzumelden. Beispiele für solche
User Agents sind das Programm "slptool", das Sie im Verzeichnis "HELIOSDIR/bin" finden, oder der "Netzwerk Browser" (Mac OS 9.x) bzw. die Funktion
Mit Server verbinden- (Mac OS X).
Service Agents (SA)
Ein SLP
Service Agent ist auf einem einzelnen System für die Speicherung von Informationen über Dienste verantwortlich, beantwortet Anfragen von
User Agents und informiert
Directory Agents über die Änderungen von lokalen Informationen. Beispiele für solche
Service Agents sind der HELIOS SLP-Server auf Systemen mit nur einem Netzwerkadapter, oder Mac OS 9- oder Mac OS X-Clients mit aktivierten
File Sharing.
Abb. 28: Server mit einem Netzwerkadapter
|
Directory Agents (DA)
Diese Agenten agieren als zentrale Sammelstelle in einem Netzwerk. Ein
Directory Agent sammelt die Informationen von
Service Agents um eine vollständige Datenbank aller im Netzwerk verfügbaren Dienste zu erstellen, auf die die
User Agents zugreifen können. Ein HELIOS SLP-Server auf einem Computer mit mehreren Netzwerkadaptern wird normalerweise automatisch zum
Directory Agent.
Abb. 29: Server mit zwei Netzwerkadaptern
|
User- und
Directory Agents werden von dem gleichen Programm ("slpsrv") initialisiert, das sowohl als
Service- als auch als
Directory Agent konfiguriert werden kann.
Wenn es keinen
Directory Agent gibt, dann müssen
User Agents, die einen Dienst suchen, im Netzwerk nach
Service Agents fragen. Jeder antwortende
Service Agent wird dann nach seinen lokalen Diensten einer bestimmten Art befragt. Wenn es hingegen einen
Directory Agent gibt, dann kontaktiert ein
User Agent ausschließlich den
Directory Agent direkt und befragt ihn nach den bekannten Diensten. Daher reduziert der Einsatz von
Directory Agents die Netzwerklast erheblich.
Aber es gibt einen Stolperstein: Wenn ein
Directory Agent bekannt war und sich nicht selbst abgemeldet hat, dann versuchen die
User Agents auch weiterhin den
Directory Agent direkt zu kontaktieren. Wenn ein
Directory Agent nicht reagieren kann (weil es einen Serverabsturz gegeben hat oder Netzwerkprobleme aufgetreten sind), dann warten die
User Agents bis zur Zeitüberschreitung für den Verbindungsaufbau (was u. U. mehrere Minuten dauern kann), bevor sie nach einem anderen
Directory- oder
Service Agent suchen.
Ein weiterer Unterschied zwischen
Directory- und
Service Agents besteht auf Systemen mit mehreren Netzwerkadaptern. Das Programm "slpsrv" arbeitet auf solchen Systemen normalerweise immer als
Directory Agent. Es sammelt somit Informationen über die Dienste auf jedem verbundenen Netzwerk, so dass Computer aus einem Netzwerk die Dienste in einem anderen Netzwerk nutzen können.
Dieses Dienstprogramm nutzt das so genannte "Service Location Protocol", das es Benutzern von UNIX Systemen ermöglicht, verfügbare Dienste ohne Kenntnis der Namen von Host-Computern zu finden und zu nutzen.
slptool [options] command-and-arguments
Folgende Optionen sind möglich:
(Version) Zeigt die Versionen des Programms "slptool" und von "OpenSLP" an
(Scope) wird durch eine durch Komma getrennte Liste von Scopes ergänzt (Scope, dt. etwa
Überwachungsbereich)
(Language) setzt bei Bedarf ein Language-Tag auf eine andere Sprache um (Vorgabe ist "en" für
Englisch)
(dump all) fragt Attribute ab
"Command-and-arguments" können sein:
findsrvs service type [filter]
cd /usr/local/helios/bin
./slptool findsrvs afp
(Verwenden Sie den Aufruf
slptool findsrvtypes, um alle Arten von Diensten zu finden.)
Zeigt alle Scopes, Dienste und Server an
cd /usr/local/helios/bin
./slptool register afp://server.helios.de
./slptool register "afp://173.14.24.6/?NAME=main-afpserver"
possible propertynames = net.slp.useScopes