HELIOS Base Benutzerhandbuch


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.
8.1 slptool
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.
Verwendung:
slptool [options] command-and-arguments
Folgende Optionen sind möglich:
-v
(Version) Zeigt die Versionen des Programms "slptool" und von "OpenSLP" an
-s
(Scope) wird durch eine durch Komma getrennte Liste von Scopes ergänzt (Scope, dt. etwa Überwachungsbereich)
-l
(Language) setzt bei Bedarf ein Language-Tag auf eine andere Sprache um (Vorgabe ist "en" für Englisch)
-a
(dump all) fragt Attribute ab
"Command-and-arguments" können sein:
findsrvs
findsrvs service type [filter]
Beispiel:
cd /usr/local/helios/bin
./slptool findsrvs afp
(Verwenden Sie den Aufruf slptool findsrvtypes, um alle Arten von Diensten zu finden.)
dumpall
Zeigt alle Scopes, Dienste und Server an
findattrs
findattrs url [attrids]
findsrvtypes
findsrvtypes [authority]
findscopes
findscopes
register
register url attrs
Beispiele:
cd /usr/local/helios/bin
./slptool register afp://server.helios.de
./slptool register "afp://173.14.24.6/?NAME=main-afpserver"
deregister
deregister url attrs
getproperty
getproperty propertyname
possible propertynames = net.slp.useScopes
net.slp.isDA

© 2003 HELIOS Software GmbH