-
Technisches
Gebiet
-
Die vorliegende Erfindung bezieht
sich allgemein auf Verzeichnisdienste und genauer auf einen dynamischen
Verzeichnisdienst, der ein Verzeichnis unterhält, in dem sowohl (1) Verzeichnisinformationen
als auch (2) Informationen, die den physikalischen Aufbau oder die
physikalische Struktur des Verzeichnisses identifizieren, gespeichert
werden.
-
Hintergrundinformationen
-
Computerbasierte strukturierte Ablagesysteme
wie etwa Computerdateisysteme und -datenbanksysteme sind bemerkenswert
erfolgreich, für Anwender
einen schnellen und einfachen Zugriff auf gewaltige Datenmengen
bereitzustellen. Strukturierte Ablagesysteme ermöglichen Geschäften, gewaltige
Bestände
dauerhafter Daten zu erzeugen und zu unterhalten, die das Unternehmen
während
der Jahre ändern
und aktualisieren kann. Für
viele Unternehmen sind diese dauerhaften Daten ein wertvoller Anlagegegenstand,
der täglich
verwendet wird, um die Kernoperationen des Unternehmens auszuführen. Die
Daten können
beispielsweise Computerdateien (z. B. Quellcode, Textverarbeitungsdokumente
usw.), Datenbank-Datensätze
und -Informationen (z. B Informationen über Angestellte, Kunden und/oder
Produkte) und/oder Web-Seiten sein.
-
Ein typisches computerbasiertes strukturiertes
Ablagesystem enthält
einen zentralen Server, der eine zentrale Steuerung des strukturierten
Datenbestands bereitstellt. Der strukturierte Datenbestand sind
die Informationen, die durch das System unterhalten werden, wie
etwa Infor mationen in den Dateien und Verzeichnissen eines Dateisystems
oder in den Datensätzen
eines Datenbanksystems. Der zentrale Server stellt für mehrere
miteinander verbundene Netzwerk-Client-Knoten Systemdienste bereit, wobei
jeder der Client-Knoten den zentralen Server zum Zugreifen auf den
strukturierten Datenbestand und zum Manipulieren des strukturierten
Datenbestands verwendet.
-
Es ist üblich, den zentralen Netzwerk-Server zur
Bereitstellung eines Verzeichnisdienstes, d. h. einer speziellen
hierarchischen Datenbank der Netzwerk-, Anwender- und weiterer Computersystem-Konfigurationsinformationen,
zu verwenden. Typischerweise umfassen diese Informationen Betriebssystem-Konfigurationsinformationen,
Anwendungsprogramm-Konfigurationsinformationen, Netzwerk-Konfigurationsinformationen,
Ressourcen, auf die das Netzwerk zugreifen kann, exportierte Vorrichtungen
und Dienste, Netzwerkdrucker und Anwenderkonto-Datensätze. Netzwerk-Anwenderkonto-Datensätze sind
das, was ein netzwerkweites, vereinheitlichtes "Logon" ermöglicht,
wobei sie ermöglichen,
dass anspruchsvolle Anwendungsprogramme (z. B. Anwendungsprogramme
für das
elektronische Postsystem) breitere, kohärente Adressenräume erhalten.
Der Novell Directory Server (NDS), der von Novell, Inc., aus Provo,
Utah, verfügbar
ist, ist ein Beispiel für
Software, die einen Verzeichnisdienst implementiert und auf einem
zentralen Server läuft,
um die Wartung von und den Zugriff auf Verzeichnisinformationen
zu ermöglichen.
-
Obgleich Verzeichnisdienste mit zentralem Server
wie etwa NDS im allgemeinen arbeiten bzw. funktionieren, entstehen
Probleme daraus, dass sie sich auf eine zentrale Steuerung stützen. Beispielsweise
hängt der
Betrieb des Netzwerks vom richtigen Funktionieren des zentralen
Servers ab. Irgendein Versagen des Servers, den richtigen Betrieb
zu unterhalten, wie etwa ein Stromausfall, ein Hardware-Ausfall
oder ein anderer solcher Systemausfall sperrt das gesamte Netzwerk
und verhindert allgemein, dass Anwender Zugriff auf das Netzwerk
und auf seine Ressourcen erhalten. Außerdem können eine Flut von Client-Anforderungen
(z. B. des Zugriffs auf Anwenderkonto-Datensätze) den zentralen Server überlasten
und das Netzwerk verlangsamen oder zum Absturz bringen. Dementsprechend
kann das Vertrauen auf einen Verzeichnisdienst, der auf einem zentralen
Server beruht, während
Zeitdauern starken Gebrauchs zu einem langsamen Betrieb oder zu
einem Ausfall des gesamten Netzwerks führen.
-
Ein weiteres Problem bei einem Client-Server-Netzwerksystem
besteht darin, dass es eine statische Betriebsumgebung bereitstellt,
die für
optimale Leistung auf einem bestimmten Niveau der Netzwerkaktivität eingestellt
ist. Folglich nutzt das Netzwerk keine verfügbaren Ressourcen zur Verbesserung
der Systemleistung. Insbesondere dann, wenn die Systemaktivität über das
erwartete Niveau der Netzwerkaktivität steigt oder unter sie fällt, besitzt
die statische Betriebsumgebung keine Fähigkeit, die Zuordnung der
Netzwerkressourcen dynamisch zu einer solchen neu zu konfigurieren,
die für
das derzeitige Niveau der Aktivität eine bessere Leistung bereitstellt.
-
Es ist eine Technologie entwickelt
worden, um die Zuverlässigkeit
und den Betrieb eines Verzeichnisdienstes mit einem zentralen Server
zu verbessern. Diese Technologie umfasst die Verwendung einer Vielzahl
zentraler Server. Jeder der Server stellt einen Verzeichnisdienst
bereit. Jedesmal, wenn sich die Verzeichnisinformationen ändern, werden
alle redundanten Server aktualisiert, so dass Anforderungen an irgendeinen
der zentralen Server gerichtet werden können, ohne dass sich dies auf
die Richtigkeit der Reaktion auswirkt.
-
Obgleich diese statisch reproduzierte
Technologie gegenüber
der Ein-Server-Anordnung verbessert ist, funktioniert sie allgemein
schlecht oder fällt
sie aus, während
die Größe des Netzwerks steigt.
Während
Client-Knoten zu dem Netzwerk hinzugefügt werden und weitere Verzeichnis-Server zu dem Netzwerk
hinzugefügt
werden, um die entsprechende erhöhte
Netzwerklast zu behandeln, nimmt die Daueraktualisierungsrate der
Informationen, deren Management durch die Server durchgeführt wird, ab,
da der Organisationsaufwand und die Komplexität des Ausbreitens von Aktualisierungen
(d. h. von Änderungen
an den Daten, die in den Verzeichnis-Servern gespeichert sind und über sie
reproduziert werden) mit zunehmender Netzwerkgröße zu. Somit sind bekannte
Verzeichnisdienste von Natur aus Kataloge hauptsächlich zum Lesen, wobei dies die
Art und Weise ist, in der sie entworfen wurden und verwendet werden.
Das heißt,
die bekannten Verzeichnisdienste werden lediglich für sehr selten
aktualisierte Verzeichnisinformationen verwendet.
-
Beispiele dieser zentralen, statisch
reproduzierten, hierarchischen Verzeichnisdiensttechnologie umfassen
die Verzeichnisdienste Active Directory (NT 5.0) von Microsoft,
NDS, Streetalk von Banyan sowie X.500. Das Lightweight Directory
Access Protocol (LDAP) ist ein "gemeinsames" Protokoll, das dazu
verwendet werden kann, um von irgendeinem kompatiblen Verzeichnis-Server
wie etwa NDS auf Daten zuzugreifen.
-
WO 95/22111 offenbart ein Verfahren
zum Zugreifen auf Objekte einer verteilten Datenbank, in dem verschiedene
Teile einer Datenbank durch jeden einer Anzahl miteinander verbundener
Prozessoren behandelt werden. Die verschiedenen Datenbankteile enthalten
eine Anzahl von Daten-Entitäten,
wobei für
jede der Daten-Entitäten
globale Informationen bereitgestellt werden, die sich auf den Prozessor
beziehen, in dem sich die Daten-Entität befindet, und Ortsinformationen
bereitgestellt werden, die sich auf den Ort der Daten-Entität in diesem
Prozessor beziehen. Die globalen Informationen befinden sich in Form
einer Tabelle in jedem Prozessor in dem System.
-
Gemäß einer Ausführungsform
der vorliegenden Erfindung wird ein Verfahren zum Erhalten von Verzeichnisinformationen
mit den folgenden Schritten geschaffen:
Bereitstellen von einer
Vielzahl von Knoten, die miteinander durch ein Netzwerk verbunden
sind;
Bereitstellen eines verteilten Verzeichnisdienstes auf dem
Netzwerk durch Installieren eines Verzeichnisdienstprogramms auf
jedem der Knoten, das ermöglicht,
dass Verzeichnisinformationen automatisch zwischen den Knoten bewegt
werden und auf diese von jedem der Knoten zugegriffen werden kann,
und das auf der Vielzahl von Knoten ein Verzeichnis speichert, das
sowohl einen Teil der Verzeichnisinformationen als auch Informationen
zu dem Ort von anderen Verzeichnisinformationen auf dem Netzwerk
enthält;
und
Erhalten sowohl der Ortsinformationen als auch der Verzeichnisinformationen
durch Zugreifen auf den verteilten Verzeichnisdienst, wobei Verzeichniseinträge global
einzigartigen bzw. eindeutigen Kennzeichnungen zugeordnet sind,
die erlauben, dass die Knoten, die die Verzeichniseinträge oder
Reproduktionen bzw. Kopien davon enthalten, über einen global eindeutigen
Kennzeichnungsbaum gefunden werden.
-
Gemäß einer weiteren Ausführungsform
der vorliegenden Erfindung wird ein System zum Zugreifen auf Verzeichnis informationen
geschaffen, mit:
einem Computernetzwerk; und
einer Vielzahl
von Computern, die mit dem Netzwerk gekoppelt sind, wobei jeder
der Computer ein Verzeichnisdienstprogramm darauf installiert hat
und die Vielzahl von Computern mit den Programmen einen verteilten
Verzeichnisdienst auf dem Netzwerk zum Unterhalten von Verzeichnisinformationen
umfasst, und es ermöglicht,
dass Verzeichnisinformationen automatisch zwischen den Computern
bewegt werden können
und auf diese durch jeden der Computer zugegriffen werden kann,
und auf der Vielzahl von Computern ein Verzeichnis speichert, das
sowohl einen Teil der Verzeichnisinformationen als auch Informationen
zu dem Ort anderer Verzeichnisinformationen auf dem Netzwerk enthält, und
ermöglicht,
dass sowohl die Ortsinformationen als auch die Verzeichnisinformationen
von jedem der Computer erhalten werden können, wobei Verzeichniseinträge global eindeutigen
Kennzeichnungen zugeordnet sind, die es den Computern, die die Verzeichniseinträge oder Kopien
davon enthalten, ermöglichen, über einen global
eindeutigen Kennzeichnungsbaum gefunden zu werden.
-
Eine Aufgabe der bevorzugten Ausführungsformen
der Erfindung besteht in der Schaffung eines dynamischen Verzeichnisdienstes,
der eine Verbesserung gegenüber
zentralen, statisch reproduzierten, hierarchischen Datenbank-Verzeichnisdiensten
ist.
-
Außerdem besteht eine Aufgabe
der bevorzugten Ausführungsformen
der Erfindung in der Schaffung eines dynamischen Verzeichnisdienstes, der
ein Verzeichnis unterhält,
in dem sowohl (1) Verzeichnisinformationen als auch (2) der physikalische Aufbau
des Verzeichnisses selbst gespeichert sind. Das heißt, die
Erfindung umfasst wenig stens in ihren bevorzugten Formen die Verwendung
eines Verzeichnisses, das sowohl Informationen darüber, wo die
interessierenden Verzeichnisinformationen zu finden sind, als auch
die tatsächlichen
Verzeichnisinformationen besitzt.
-
Eine weitere Aufgabe der bevorzugten
Ausführungsformen
der Erfindung besteht in der Schaffung eines dynamischen Verzeichnisdienstes,
der zuverlässiger
ist und gegenüber
bestehenden Verzeichnisdiensten eine verbesserte Fehlertoleranzoperation
bereitstellt und der die Fähigkeit
besitzt, Daten als Reaktion auf Netzwerkaktivitätsniveaus und Zugriffsmuster
dynamisch zu reproduzieren und zu verschieben. Diese Fähigkeit
optimiert die Leistung und minimiert die Zeitdauer, die es dauert,
um Verzeichnisinformationen (z. B. Netzwerk-Konfigurationsinformationen,
Organisationsinformationen, Anwenderkonfigurationsinformationen
und Ressourcen, auf die das Netzwerk zugreifen kann, wie etwa exportierte
Vorrichtungen und Dienste, Netzwerkdrucker und Anwenderkonto-Datensätze) für anfordernde
Netzwerkknoten bereitzustellen.
-
Eine abermals weitere Aufgabe der
bevorzugten Ausführungsformen
der Erfindung besteht in der Schaffung eines dynamischen Verzeichnisdienstes,
der eine verteilte Steuerung über
einen strukturierten Bestand von Verzeichnisinformationen bereitstellt
und der ermöglicht,
dass Informationen mit höherer
Häufigkeit
geändert
und/oder aktualisiert werden, als es mit bestehenden Verzeichnisdiensten
allgemein möglich
ist, ohne dass sich dies nachteilig auf die Netzwerkleistung oder
auf die Netzwerkknoten-Zugriffszeiten auswirkt.
-
Eine nochmals weitere Aufgabe der
bevorzugten Ausführungsformen
der Erfindung besteht in der Schaffung eines dynamischen Verzeichnisdienstes,
der sich häufig ändernde sowie
selten geänderte Verzeichnisinformationen
unterhält
und den Zugriff auf sie ermöglicht.
-
In einer bevorzugten Ausführungsform
unterhält
der Verzeichnisdienst der Erfindung in der gleichen Datenstruktur
sowohl die Informationen über den
physikalischen Ort als auch die Verzeichnisinformationen selbst.
Die Datenstruktur ist über
das Netzwerk verteilt, wobei alle Verzeichnisinformationen (üblicherweise
mit Ausnahme eines Wurzeldatensatzes) heimatlos sind. Wenigstens
in seinen bevorzugten Formen ermöglicht
der verteilte Verzeichnisdienst der Erfindung, dass Netzwerkknoten
Kopien von Datensätzen,
auf die die Knoten zugreifen möchten,
lokalisieren. In einer bevorzugten Ausführungsform ist jedem Datensatz
eine global eindeutige Kennzeichnung (GUID) als eindeutiger Indexschlüssel zugeordnet,
der verwendet werden kann, um den Datensatz auf dem Netzwerk zu
identifizieren. Er enthält
keine Ortsinformationen, wobei ein gegebener Datensatz physikalisch überall auf
dem Netzwerk lokalisiert sein kann. Vorzugsweise kann sich jeder
der Datensätze außerdem von
einem physikalischen Ort (Knoten) zu einem physikalischen Ort (Knoten)
im Netzwerk bewegen. Die Erfindung schafft wenigstens in ihren bevorzugten
Formen ohne die Netzwerkknoten neu zu konfigurieren und in einer
Weise, die für
die Anwender an den Knoten durchsichtig ist, eine automatische Bewegung
und/oder Reproduktion der Verzeichnisinformationen unter den Netzwerkknoten. Ein
Beispiel eines Mechanismus, der dazu verwendet werden kann, reproduzierte
Datensätze
konsistent zu halten, ist ein Einschreiber-Mehrleser-Schreib-Annulierungsprotokoll.
-
In einigen spezifischen Ausführungsformen kann
der Verzeichnisdienst der Erfindung ein global adressierbares unstrukturiertes
Speichersystem verwenden, um in Übereinstimmung
mit der Erfindung gleichzeitig sowohl die Ver zeichnisinformationen
als auch die Aufbauinformationen zu unterhalten. Beispielsweise
kann der Verzeichnisdienst das verteilte gemeinsam genutzte Speichersystem
(DSM-System) verwenden,
das die Ablage von Daten über
einen Teil der oder über
alle mit einem Netzwerk verbundenen Speichervorrichtungen verteilt.
Ablagevorrichtungen, die mit dem Netzwerk verbunden sein können und
auf die die Netzwerkknoten durch Adressen über das DSM-System zugreifen
können,
umfassen beispielsweise RAM, Festplattenlaufwerke, Bandlaufwerke,
Diskettenlaufwerke und CD-ROM-Laufwerke. In einigen Ausführungsformen ist
der dynamische Verzeichnisdienst ein Computerprogramm, das Schnittstellen
zu einem DSM-System besitzt, um das DSM-System als Speichervorrichtung
zu betreiben, die die Ablage der Verzeichnisinformationen und den
Zugriff auf sie bereitstellt. Das Verzeichnisdienstprogramm kann
das DSM-System anweisen, Verzeichnisinformationen in den gemeinsam
genutzten Speicherraum abzubilden. Das DSM-System kann Funktionalität zum kohärenten gemeinsamen
Nutzen, Bewegen und Reproduzieren von Daten enthalten. In einer
Ausführungsform
stellt das DSM-System Speichervorrichtungsdienste für das Verzeichnisdienstprogramm
bereit. Die Dienste können
das Lesen, Schreiben, Zuordnen, Leeren oder irgendeinen ähnlichen
oder zusätzlichen
Dienst, der geeignet ist, eine niedrige Steuerung einer Ablagevorrichtung
bereitzustellen, umfassen. Vorzugsweise verwendet das Verzeichnisdienstprogramm diese
DSM-Systemdienste, um Abschnitte des gemeinsam genutzten Speicherraums
zuzuordnen und auf sie zuzugreifen, um die Verzeichnisinformationen zu
erzeugen und zu manipulieren. In Verbindung mit diesen Ausführungsformen
umfassen ein System und ein verwandtes Verfahren zum Zugreifen auf
Verzeichnisinformationen ein Computernetzwerk, ein global adressierbares
Datenablagesystem und eine Vielzahl von Computern, die mit dem Netzwerk
und mit dem Datenablagesystem gekoppelt sind. Vorzugsweise stellt
das global adressierbare Datenablage system eine dauerhafte Speicherung
von Daten bereit und enthält
es Verzeichnisinformationen. Vorzugsweise greifen die mehreren Computer
auf das Datenablagesystem zu, um Verzeichnisinformationen zu erhalten.
Vorzugsweise reproduziert und bewegt das Datenablagesystem anhand
der Zugriffsmuster durch die Computer und/oder durch die verfügbaren Netzwerk-Ressourcen
Verzeichnisinformationen unter zwei oder mehr der Computer.
-
In einem Aspekt bezieht sich die
Erfindung wenigstens in ihren bevorzugten Formen auf ein Verfahren,
das die Schritte des Bereitstellens mehrerer durch ein Netzwerk
verbundener Knoten und des Speicherns eines Verzeichnisses, das
sowohl die Verzeichnisinformationen als auch Informationen über den
Aufbau des Verzeichnisses (d. h., wo die Verzeichnisinformationen
zu finden sind) enthält,
an einem oder an mehreren der Knoten umfasst.
-
In einem weiteren Aspekt bezieht
sich die Erfindung wenigstens in ihren bevorzugten Formen auf ein
Verfahren, das die Schritte des Bereitstellens mehrerer durch ein
Netzwerk verbundener Knoten, des Bereitstellens eines Verzeichnisdienstes
auf dem Netzwerk durch Installieren eines Verzeichnisdienstprogramms,
das ermöglicht,
dass jeder Knoten auf die Verzeichnisinformationen zugreift, und
das an einem oder an mehreren der Knoten ein Verzeichnis speichert,
das sowohl die Verzeichnisinformationen als auch Informationen zu
dem Ort der Verzeichnisinformationen auf dem Netzwerk enthält, auf
jedem der Knoten, und des Erhaltens sowohl des physikalischen Ortes
der interessierenden Verzeichnisinformationen als auch der interessierenden
Verzeichnisinformationen selbst durch Zugreifen auf den Verzeichnisdienst,
umfasst.
-
Die vorstehenden sowie weitere Aufgaben, Aspekte,
Merkmale und Vorteile der Erfindung werden offensichtlicher aus
der folgenden Beschreibung und aus den Ansprüchen.
-
Es werden nun bevorzugte Ausführungsformen
der Erfindung lediglich beispielhaft und mit Bezug auf die beigefügte Zeichnung
beschrieben, in der:
-
1 ein
konzeptioneller Blockschaltplan eines dynamischen Verzeichnisdienstes
gemäß der Erfindung
ist.
-
2 ein
Diagramm der Typen von Verzeichnisinformationen ist, die durch einen
dynamischen Verzeichnisdienst der Erfindung unterhalten werden können.
-
3 ein
Diagramm eines Verzeichnisdatensatzes ist, der von einem dynamischen
Verzeichnisdienst gemäß der Erfindung
verwendet wird.
-
4A ein
Ablaufplan der Schritte ist, die ein Verzeichnisdienst der Erfindung
unternimmt, um eine Anforderung von Verzeichnisinformationen von
einem Netzwerkknoten zu bedienen.
-
4B ein
Ablaufplan ist, der eine zusätzliche
Einzelheit der Schritte offenbart, die von dem Verzeichnisdienst
unternommen werden, um die Anforderung von Verzeichnisinformationen
des Netzwerkknotens zu bedienen.
-
5 ein
Diagramm ist, das ein Beispiel der Verzeichnisdatensätze eines
verteilten dynamischen Verzeichnisdienstes gemäß der Erfindung zeigt.
-
Gleiche Bezugszeichen beziehen sich
in der Zeichnung in den verschiedenen Ansichten allgemein auf die
gleichen Teile. Außerdem
sind die Zeichnungen nicht notwendig maßstäblich, wobei die Betonung statt
dessen allgemein auf die Erläuterung
der Prinzipien der Erfindung gelegt wird.
-
Beschreibung
-
Gemäß einer bevorzugten Ausführungsform der
Erfindung enthält
ein Computernetzwerksystem 10 eine Anzahl bzw. Vielzahl
von Netzwerkknoten, die auf einen gemeinsamen Verzeichnisdienst
zugreifen. Der Verzeichnisdienst ist eine spezielle hierarchische
strukturierte Datenbank. Beispiele der Typen von Informationen,
die durch den Verzeichnisdienst gespeichert und unterhalten werden
können, umfassen
Betriebssystem-Konfigurationsinformationen, Anwendungsprogramm-Konfigurationsinformationen,
Netzwerk-Konfigurationsinformationen, Ressourcen, auf die das Netzwerk
zugreifen kann, exportierte Vorrichtungen und Dienste, Netzwerkdrucker und
Netzwerk-Anwenderkonto-Datensätze. Jeder der
Knoten auf dem Netzwerk enthält
wenigstens ein Verzeichnisdienstprogramm, das auf den Verzeichnisdienst
zugreift und sein Management durchführt. Der Verzeichnisdienst
kann in einem adressierbaren, gemeinsam genutzten Speicher gespeichert
sein oder auf herkömmlichere
Weise gespeichert sein. Beispielsweise kann jeder Knoten dafür verantwortlich
sein, ein besonderes Element oder besondere Elemente des Verzeichnisdienstes
zu speichern. In einer solchen Ausführungsform kann das Verzeichnisdienstprogramm
unter Verwendung eines global eindeutigen Identifizierungskennzeichens
oder einer global eindeutigen Kennzeichnung auf einen gewünschten
Abschnitt des strukturierten Bestands zugreifen. Das zugrundeliegende
System übersetzt
das Identifizierungskennzeichen oder die Kennzeichnung in einen
oder in mehrere Befehle zum Zugreifen auf die gewünschten
Daten einschließlich
Netzübertragungsbefehlen.
In einer anderen Ausführungsform
ist der Verzeichnisdienst in einem adressierbaren gemeinsam genutzten
Speicherraum gespeichert, was ermöglicht, dass die Speicherknoten
unter Verwendung von Standard-Speicherzugriffsbefehlen transparent
auf Abschnitte des gespeicherten Bestandes zugreifen. In einer bevorzugten
Ausführungsform
ist das Identifizierungskennzeichen oder die Kennzeichnung eine
Adresse in einem adressierbaren Speicherraum wie etwa in einem 128-Bits-Adressenraum.
-
Das System 10 kann ein Dateisystem,
ein Datenbanksystem, ein Web-Server, ein Objektkatalogsystem oder
irgendein anderes strukturiertes Ablagesystem sein, das eine organisierte
Menge von Daten unterhält.
In der offenbarten Ausführungsform ist
das System 10 ein Verzeichnisdienst, der verschiedene Verzeichnisinformationen
unterhält.
-
Wie in 1 gezeigt
ist, enthält
das Netzwerksystem 10 in einer Ausführungsform eine Vielzahl von
Netzwerkknoten 12a–12d und
ein gemeinsames Verzeichnisdienst-Teilsystem 20, das einen dynamischen
Verzeichnisdienst 22 gemäß der Erfindung bereitstellt.
Der dynamische Verzeichnisdienst 22 unterhält und schafft
einen Zugriff auf Daten, die sowohl die Verzeichnisinformationen
selbst als auch den physikalischen Aufbau des Verzeichnisses auf dem
Netzwerk umfassen. Jeder der Knoten 12a–12d kann mehrere Teilelemente
enthalten. Beispielsweise enthält
der Knoten 12a einen Prozessor 30a und ein Verzeichnisdienstprogramm 32a zum
Zugreifen auf den Verzeichnisdienst 22. Einer oder mehrere
der Knoten können
einen Monitor zum graphischen Anzeigen (40, 42)
des Verzeichnisdienstes 22 enthalten.
-
Ein System 10 gemäß der Erfindung
kann unter anderem für
jeden Netzwerkknoten 12a–12d eine
gemeinsam genutzte Steuerung über
den Verzeichnisdienst 22 bereitstellen, so dass das System 10 die
Steuerung der Verzeichnisinformationen über die Knoten des Netzwerks
verteilen kann. Zu diesem Zweck enthält jeder Knoten des Systems 10 wie
etwa der Knoten 12a ein Verzeichnisdienstprogramm 32a, das
als strukturierter Verzeichnisdienst arbeitet, der so beschaffen
ist, dass er Verzeichnisinformationen unterhält, wobei er sämtliche
Netzwerkknoten dazu verwendet, die Verzeichnisinformationen zu speichern
und den Zugriff auf sie zu ermöglichen.
Diese zusammenwirkenden Elemente stellen ein strukturiertes Ablagesystem
bereit, das eine verteilte Architektur besitzt und dadurch eine
größere Fehlertoleranz,
Zuverlässigkeit
und Flexibilität
als bekannte Verzeichnisdienste, die sich auf die zentrale Steuerung
und auf einen oder auf mehrere zentrale Server stützen, erzielt.
Dementsprechend stellt die Erfindung verteilt gesteuerte und leicht
skalierbare Verzeichnisdienste für
Computernetze bereit.
-
Weiter anhand von 1 unterhält das System 10 in
einer Ausführungsform
einen Verzeichnisdienst 22 in einem global adressierbaren,
unstrukturierten Ablagesystem. Jeder der Knoten 12a–12d kann über die
Verzeichnisdienstprogramme 32a–32d auf dieses Ablagesystem
und auf den Verzeichnisdienst 22 zugreifen. Wenigstens
ein Abschnitt des global adressierbaren, unstrukturierten Ablagesystems
wird durch ein physikalisches Speichersystem unterstützt, das
eine dauerhafte Ablage der Daten bereitstellt. Beispielsweise kann
ein Abschnitt des Ablagesystems einem oder mehreren Festplattenlaufwerken,
die auf dem Netzwerk sind oder die einem oder mehreren der Netzwerkknoten 12a–12d als
lokale Festplattenablage für
diese besonderen Knoten zugeordnet sind, zugewiesen werden oder auf
diese abgebildet werden. Dementsprechend zeigt 1 ein mögliches System, das für die Netzwerkknoten
einen Zugriff auf ein global adressierbares, unstrukturiertes Ablagesystem
bereitstellt, bei dem wenigstens ein Abschnitt des Ablageraums dieses
Systems wenigstens einem Abschnitt einer oder mehrerer der dauerhaften
Ablagevorrichtungen (z. B. Festplatten) zugewiesen ist, um zu ermöglichen, dass
die Knoten Daten in der einen oder in den mehreren dauerhaften Ablagevorrichtungen
adressierbar speichern und aus ihnen auslesen.
-
Jedes der Verzeichnisdienstprogramme 32a–32d ist
ein Software-Modul, das mit dem Verzeichnisdienst gekoppelt ist.
Das Verzeichnisdienstprogramm 32a kann Daten zu dem Verzeichnisdienst-Teilsystem
fließen
lassen und von ihm sammeln. Jedes der Verzeichnisdienstprogramme 32a–32d kann
eine Peer-Verkörperung
(d. h. eine Instanz) sein, die sich auf einem anderen der Netzwerkknoten 12a–12d befindet.
-
Eines oder mehrere der Verzeichnisdienstprogramme 32a–32d können eine
graphische Anwenderschnittstelle 42 bereitstellen, die
den Verzeichnisdienst 22 graphisch darstellt. Die graphische Anwenderschnittstelle 42 könnte ermöglichen,
dass ein Anwender an einem Knoten, z. B. am Knoten 12a, Verzeichnisinformationen
graphisch in den Verzeichnisdienst 22 einfügt. Zu diesem
Zweck kann das Verzeichnisdienstprogramm 32a eine Menge
von Befehlen erzeugen, die einen Datenstrom darstellen, der dazu
führt,
dass in dem Verzeichnisdienst 22 Verzeichnisinformationen
gespeichert werden. Wie in 1 der
Einfachheit halber lediglich für
den Knoten 12c gezeigt ist, widerspiegelt dieser Knoten
(der eine graphische Anwenderschnittstelle 40 enthält) die Änderung
des Verzeichnisdienstes 22, die durch das Verzeichnisdienstprogramm 32a des
Knotens 12a bestimmt ist. Insbesondere kann die graphische
Anwenderschnittstelle 40 des Knotens 12c einem
Anwender darstellen, dass in dem Verzeichnisdienst 22 bestimmte
Verzeichnisinformationen angeordnet werden. Wie gezeigt ist, kann
ein Systemanwender am Knoten 12a anweisen, dass das Element 50a an einen
Mengenort in dem Verzeichnisdienst 22 eingefügt wird.
Das Verzeichnisdienstprogramm 32a ordnet daraufhin das
Element 50a am richtigen Ort in dem Verzeichnisdienst 22 an.
Außerdem erfasst
der Knoten 12c die Änderung
in dem Verzeichnisdienst 22, wobei er diese Änderung
in seiner graphischen Anwenderschnittstelle 40 widerspiegelt.
-
Ein strukturierter dynamischer Verzeichnisdienst
gemäß der Erfindung
sieht für
alle Netzwerkknoten wie ein kohärentes
Ein-Verzeichnis-Dienstsystem aus, obwohl es sich tatsächlich über alle
mit dem Netzwerk gekoppelten beteiligten Knoten erstreckt. Der Verzeichnisdienst
der Erfindung unterscheidet sich von bekannten Verzeichnisdiensten
auf eine Vielzahl von Arten. Beispielsweise bewirkt der Verzeichnisdienst
der Erfindung folgendes: Er unterhält die Datenkohärenz unter
den Netzwerkknoten; er reproduziert automatisch Verzeichnisinformationen
für die
Redundanz und Fehlertoleranz; er bewegt automatisch und dynamisch
Verzeichnisinformationen, um eine sich ändernde Netzwerknutzung und Verkehrsmuster
zu berücksichtigen;
und er stellt eine Vielzahl weiterer Vorteile und Fortschritte bereit.
Die Reproduktion und Bewegung kann auf der Basis der Knotenzugriffe
und/oder auf der Basis der Verfügbarkeit
der Netzwerk-Ressourcen erfolgen.
-
Wie in 2 gezeigt
ist, enthält
ein Verzeichnisdienst gemäß der Erfindung
einen strukturierten Datenbestand, der als eine Verzeichnisinformationsmenge 66 organisiert
ist. Die Menge 66 ist eine Baumstruktur, die bei einer
Wurzel 80 beginnt und bei einem Blatt (z. B. bei dem Blatt
82) endet. Jedes Blatt repräsentiert
ein besonderes Stück
der Verzeichnisinformationen (z. B. einen Anwendernamen oder ein Kennwort).
Somit ist die Menge 66 eine Zusammenstellung von Verzeichnisinformationen,
die beispielsweise als eine Baumstruktur oder als ein Graph mit der
Wurzel bei der Wurzel 80 hierarchisch organisiert sind.
Die Nicht-Blatt-Knoten in dem Baum (ausschließlich der Wurzel 80)
sind die Einträge 90, 92, 94, 100, 102, 200, 202 und 204),
während
die Blätter in
dem Baum beson dere Stücke
der Verzeichnisinformationen 91, 82, 84, 86, 201 und 205–212 (z.
B. ein Kennwort oder eine Netzwerkdrucker-Kennzeichnung) oder leere
Einträge
sind. Teilbäume
in einer Menge können
sich dadurch überschneiden,
dass ein Blatt oder ein Nicht-Blatt mit mehreren Einträgen verknüpft ist.
-
Der Verzeichnisdienst der Erfindung
kann optional mehr als eine Menge verwenden. Ein Nutzen des Aufteilens
des Verzeichnisdienstes 60 in mehrere Mengen besteht darin,
dass er für
die Anwender des Verzeichnisdienstes ein flexibleres Management bereitstellen
kann. Während
der Verzeichnisdienst auf sehr große Größen (z. B. Hunderten von Knoten mit
Tausenden Gigabits Ablage) wächst,
kann es wünschenswert
sein, die Verzeichnisinformationen in Gruppen von Management-Entitäten zu organisieren,
so dass Managementaktionen unabhängig
auf einzelne Gruppen angewendet werden können, ohne den Betrieb der
anderen zu beeinflussen.
-
In einer Menge stellt die Wurzel
(z. B. die Wurzel 80) den Startpunkt zum Lokalisieren der durch
den Verzeichnisdienst der Erfindung unterhaltenen Verzeichnisinformationen
bereit. Die Wurzel kann an einem statischen und wohlbekannten Ort
auf dem Netzwerk (z. B. an einer besonderen Adresse oder auf einem
oder auf mehreren Netzwerkknoten) gespeichert sein und ist vorzugsweise
auch dort gespeichert. Wenn ein Knoten erstmals auf eine Menge zugreift,
schlägt
er zunächst
die Wurzel nach, um den der Menge zugeordneten Schlüssel zu
bestimmen. Wenn er den Schlüssel
bestimmt hat, kann der Knoten auf die Wurzel der Menge zugreifen.
Von der Wurzel kann er sich daraufhin durch den gesamten Baum der
Menge bewegen, um das gewünschte Stück der Verzeichnisinformationen
zu lokalisieren.
-
Als Beispiel könnte in 2 ein Netzwerkknoten, der das Kennwort
eines Anwenders namens Jones anfordert, die folgende Zeichenfolge
an den Verzeichnisdienst übergeben: /USERS/JONES/PASSWORD.
Der Verzeichnisdienst nimmt daraufhin auf die Menge 66 Bezug,
wobei er finden könnte,
dass die Wurzel 80 eine Liste aller Anwender enthält, dass
der Nicht-Blatt-Knoten 90 Informationen über den
Anwender Jones enthält
und dass das Blatt 82 das Kennwort des Anwenders Jones
enthält.
In Übereinstimmung
mit der Erfindung und wie unten umfassender beschrieben wird, können sich
alle diese Informationen physikalisch auf verschiedenen Netzwerkknoten
befinden und tatsächlich
von Knoten zu Knoten bewegen und auf mehreren der Netzwerkknoten
reproduziert werden.
-
Die 3, 4A, 4B und 5 zeigen weiter und besonders
die Struktur eines hierarchisch verteilten dynamischen Verzeichnisdienstes
gemäß der Erfindung.
-
Wie in 3 gezeigt
ist, enthält
ein Verzeichnisdatensatz 320 einen Datensatz-Anfangsblock 322 und
einen oder mehrere Verzeichniseinträge (wobei zwei, 324 und 326,
gezeigt sind). Jeder Verzeichniseintrag enthält ein Schlüsselfeld 330 und eines oder
mehrere Datenfelder 332. Das Schlüsselfeld 330 könnte beispiel
weise "Unternehmensname" und das zugeordnete Datenfeld 332 "Acme
Corporation" sein. Es wird angemerkt, dass für (unten beschriebene) GUID-Baum-Datensätze vorzugsweise
zwei Datenfelder, d. h. die "GUID des nächsten Datensatzes", die die
Kennzeichnung des nächsten
Datensatzes, auf den durch den Bezeichnungsdienst Bezug genommen
wird, identifiziert, und den "für
die GUID verantwortlichen Knoten", der den für die "GUID des nächsten Datensatzes"
verantwortlichen Knoten identifiziert, vorhanden sind. Das Schlüsselfeld 330 könnte außerdem eine
global eindeutige Kennzeichnung (GUID) sein. Das Datenfeld 332 kann
tat sächliche
Verzeichnisinformationen (z. B. "Acme Corporation"), Informationen
darüber,
wohin zu gehen ist, um die interessierenden Verzeichnisinformationen
zu lokalisieren, oder zusätzliche
Informationen darüber, wohin
zu gehen ist, um sie zu lokalisieren (beispielsweise eine global
eindeutige Kennzeichnung oder GUID), oder Informationen darüber, welche
Knoten Kopien der interessierenden Verzeichnisinformationen besitzen,
enthalten.
-
In einer besonderen Ausführungsform
kann der Verzeichnisdatensatz 320 eine Seite eines globalen
Adressenraums sein, die sich sowohl über dauerhafte (z. B. Festplatten)
als auch über
flüchtige
(z. B. RAM) Ablagevorrichtungen erstreckt. Beispielsweise kann die
Seite ein 4-Kilobyte-Abschnitt
des gemeinsam genutzten Adressenraums sein. In dieser Ausführungsform
sind die GUIDs eindeutige Adressen des globalen Adressenraums wie
etwa 128-Bit-Adressen in einem gewaltigen 2128-Adressenraum.
-
Nochmals anhand von 3 enthält jeder Verzeichnisdatensatz 320 einen
Datensatz-Anfangsblock 322, der Attributinformationen für diesen
Datensatz enthält,
wobei diese Attributinformationen typischerweise Metadaten für den Verzeichnisdatensatz
sind. Ferner enthält
der Datensatz 320 einen oder mehrere Verzeichniseinträge wie etwa
die dargestellten Verzeichniseinträge 324 und 326,
die einen Index auf einen Abschnitt des Verzeichnisdienstes (Nicht-Blatt-Einträge) oder
auf tatsächliche
Verzeichnisinformationen (Blatt-Einträge) bereitstellen. Dementsprechend
unterteilen die Nicht-Blatt-Verzeichniseinträge die durch den Verzeichnisdienst
der Erfindung unterhaltenen Verzeichnisinformationen. Falls beispielsweise
die Verzeichniseinträge 324 und 326 Einträge eines
GUID-Baumdatensatzes sind, können
sie das Verzeichnis in zwei Unterabschnitte unterteilen, wobei der
erste Abschnitt auf eine Hälfte des
Verzeichnisses Bezug nimmt, während
der zweite Abschnitt auf die andere Hälfte des Verzeichnisses Bezug
nimmt. Dementsprechend stellt der Verzeichniseintrag 324 in
diesem Beispiel einen Index für
die Hälfte
des Verzeichnisses bereit, während
der Verzeichniseintrag 326 als Ergänzung dazu einen Index für die andere
Hälfte
bereitstellt. Weiter mit diesem Beispiel kann jeder dieser Verzeichniseinträge 324, 326 über die
Datenfelder auf weitere Datensätze
und verantwortliche Knoten zeigen, in denen Verzeichniseinträge Datenfelder
besitzen, die auf nochmals weitere Datensätze und verantwortliche Knoten
zeigen usw., bis die tatsächlich
interessierenden Verzeichnisinformationen durch den Verzeichnisdienst
in einem Datenfeld eines Eintrags eines Datensatzes (eines sogenannten
Blatt-Eintrags) lokalisiert sind. Daraufhin stellt der Verzeichnisdienst
diese Verzeichnisinformationen für
den anfordernden Knoten bereit. Auf diese Weise stellt der Verzeichnisdienst
der Erfindung sowohl (1) Ortsinformationen für die durch den Verzeichnisdienst
unterhaltenen Verzeichnisinformationen als auch (2) die tatsächlichen
Verzeichnisinformationen selbst, alle in der gleichen Verzeichnisstruktur,
bereit.
-
In Übereinstimmung mit der Erfindung
werden die Verzeichnisdatensätze
durch global eindeutige Kennzeichnungen (GUIDs) wie etwa 128-Bits-Werte
indiziert. Diese GUIDs können
in den Verzeichnisdatensätzen
in den Datenfeldern oder in den Schlüsselfeldern verschiedener der
Verzeichniseinträge
erscheinen. Wie unten ausführlicher
beschrieben wird, stellt ein GUID-Teilbaum in dem Verzeichnis eine
Abbildung oder eine Zuweisung von GUIDs zu Netzwerkknoten, die eine
Kopie bestimmter Verzeichnisinformationen besitzen, bereit. Es sind die
Blattknoten des GUID-Teilbaums,
die den einen oder die mehreren Knoten identifizieren, die eine
Kopie der gewünschten
Verzeichnisinformationen besitzen. Wenn diese Knoten durch den Verzeichnisdienst identifiziert
worden sind, greift der Verzeichnisdienst auf einen oder auf mehrere
von ihnen (typischerweise auf genau einen der identifizierten Knoten)
zu, um die Verzeichnisinformationen zu erhalten, und übergibt
sie daraufhin an den anfordernden Knoten. Optional kann das Verzeichnissystem
anhand des Zustands des globalen Systems wie etwa der momentanen
Belastung an den verschiedenen Knoten oder der Qualität des Netzwerkdienstes
zwischen dem lokalen Knoten und dem Knoten bzw, den Knoten, die Kopien
des gewünschten
Verzeichnisdatensatzes besitzen, auswählen, mit welchem Knoten es
Kontakt aufnimmt, um die Verzeichnisinformationen zu erhalten.
-
Wie in 4A gezeigt
ist, übergibt
ein Netzwerkknoten einen geeigneten Schlüssel an den Verzeichnisdienst,
um bestimmte gewünschte
Verzeichnisinformationen (z. B. das Kennwort eines Anwenders namens
Jones) zu. erhalten (Schritt 500). Beispielsweise könnte der
Knoten den folgenden Schlüssel
an den Verzeichnisdienst übergebenn: /USERS/JONES/PASSWORD.
Der Verzeichnisdienst empfängt
den Schlüssel
und lokalisiert entweder die gewünschten
Verzeichnisinformationen und übergibt
sie an den anfordernden Knoten oder gibt einen Fehler zurück, falls
die gewünschten
Verzeichnisinformationen nicht gefunden werden können (Schritt 600).
Genauer bestimmt der Verzeichnisdienst der Erfindung beim Versuch,
die Anforderung von dem Knoten au erfüllen, zunächst, ob der Schlüssel Verzeichnisinformationen
entspricht, die auf dem Knoten selbst, beispielsweise im RAM des
Knotens oder auf der Festplatte des Knotens, gespeichert sind (Schritt 602).
In der offenbarten Ausführungsform führt der
Verzeichnisdienst den Schritt 602 dadurch aus, dass er
auf eine Nachschlagetabelle (wie etwa auf eine Hash-Tabelle) zugreift,
die von jedem der Netzwerkknoten unterhalten wird. Diese Tabelle identifiziert
die Verzeichnisdatensätze,
die sich auf dem Knoten lokal im Cache befinden. Falls die angeforderten
Verzeichnisinformationen lokal auf dem anfordernden Knoten gespeichert
sind, liest der Verzeichnisdienst die angeforderten Verzeichnisinformationen
aus dem lokalen Cache des Knotens aus und stellt diese Verzeichnisinformationen
daraufhin für den
Knoten bereit (Schritt 604). Falls die angeforderten Verzeichnisinformationen
nicht lokal auf dem anfordernden Knoten gespeichert sind, ruft sich
der Verzeichnisdienst rekursiv selbst auf, um auf den Verzeichnisdatensatz
bzw. auf die Verzeichnisdatensätze,
die die GUID-Baumstruktur besitzen, zuzugreifen, wobei der Verzeichnisdienst
dadurch, dass er auf die verschiedenen Datensätze zugreift, in dem GUID-Baum
hinuntergeht oder ihn durchläuft,
bis der gewünschte
Verzeichniseintrag lokalisiert ist. Der Blattknoten in dem GUID-Baum
enthält
die Abbildung von der GUID auf die Menge der Knoten, die den dieser
GUID zugeordneten Datensatz im Cache halten. Der Verzeichnisdienst
verwendet diese Informationen, um einen Knoten auszuwählen, von
dem er eine Kopie des gewünschten
Datensatzes erfasst (Schritt 606). Daraufhin erhält der Verzeichnisdienst
die angeforderten Verzeichnisinformationen und stellt sie für den Knoten
bereit (Schritt 608).
-
Es ist wichtig anzumerken, dass der
Verzeichnisdienst, während
er sich durch den GUID-Baum bewegt, immer zuerst prüft, ob durch eine
GUID indizierte Einträge
lokal im Cache gehalten werden, bevor der Verzeichnisdienst rekursiv
den GUID-Baum aufruft, um eine Kopie, des Datensatzes fern zu lokalisieren.
-
An diesem Punkt kann der Verzeichnisdienst eine
Kopie (eine Reproduktion) dieser Verzeichnisinformationen (z. B.
das Kennwort des Anwenders Jones) an dem anfordernden Knoten speichern.
Falls durch den Verzeichnisdienst' eine Reproduktion ausgeführt wird,
wird an dem anfordernden Knoten tatsächlich der gesamte Datensatz
oder ein Abschnitt des Datensatzes, der diese Verzeich nisinformationen
enthält,
reproduziert. Falls sich der Verzeichnisdienst entscheidet, diesen
Datensatz an dem anfordernden Knoten zu reproduzieren, fügt der Verzeichnisdienst
die Kennzeichnung des anfordernden Knotens (z. B. eine Zahl) zu
dem Blattknoten in dem GUID-Baum, der die Liste der Knoten speichert,
die den der GUID zugeordneten Datensatz im Cache halten, hinzu,
woraufhin der Verzeichnisdienst die lokalen Caches aller weiteren
Netzwerkknoten, die diesen Verzeichnisdatensatz ebenfalls lokal
im Cache halten, aktualisiert oder annulliert.
-
In einer Ausführungsform trifft der Verzeichnisdienst
die Entscheidung darüber,
ob zu reproduzieren ist oder nicht, anhand der Knotenzugriffsmuster
und/oder der Verfügbarkeit
bestimmter Netzwerk-Ressourcen. Beispielsweise reproduziert der Verzeichnisdienst
diesen Datensatz an diesem Knoten, wenn ein Knoten eine bestimmte
Anzahl eines bestimmten Datensatzes angefordert hat. Der Verzeichnisdienst überwacht
eine Vielzahl von Netzwerkinformationen einschließlich Knotenzugriffsmustern und
der Netzwerk-Ressourcen-Verfügbarkeit
und zeichnet sie auf, wobei ein Teil dieser Netzwerkinformationen
oder alle diese Netzwerkinformationen verwendet werden, um zu bestimmen,
welche Datensätze
an welchen Knoten reproduziert werden sollten. In Übereinstimmung
mit der Erfindung führt
dieses Reproduktionsmerkmal des Verzeichnisdienstes dazu, dass bestimmte
Datensätze
an den Knoten, die auf diese Datensätze am häufigsten zugreifen, reproduziert
werden, während
sie an Knoten, die auf diese Datensätze weniger häufig oder überhaupt
nicht zugreifen, nicht reproduziert (und/oder davon entfernt) werden.
Der Verzeichnisdienst der Erfindung stellt dieses Reproduktionsmerkmal
dynamisch während des
normalen Betriebs bereit, so dass sich die Datensätze und
die Kopien der Datensätze,
während
sich die Zugriffsmuster ändern,
unter den verschiedenen Netzwerkknoten verschieben oder bewegen,
um sich an die sich ändernden
Muster anzupassen. Dieses Reproduktions/Bewegungs-Merkmal der Erfindung unterstreicht
einen wichtigen, Aspekt der Erfindung, d. h., dass alle Verzeichnisdatensätze (möglicherweise
mit Ausnahme des Wurzelverzeichnis-Datensatzes, der, während er
typischerweise reproduziert wird, typischerweise an festen Orten
auf dem Netzwerk angeordnet ist) heimatlos sind.
-
Da die Verzeichnisdatensätze gemäß der Erfindung
sowohl die GUID-Baumstruktur (d. h. die Informationen darüber, wo
die Verzeichnisinformationen lokalisiert sind) als auch die tatsächlichen
Verzeichnisinformationen enthalten, wird die Verzeichnisstruktur
(d. h. der GUID-Baum) genau wie die Verzeichnisinformationen selbst
dynamisch unter den Netzwerkknoten bewegt und reproduziert.
-
Diese Merkmale der dynamischen Reproduktion
und Bewegung schaffen gewaltige Nutzen für Netzwerke, die den Verzeichnisdienst
der Erfindung verwenden. Beispielsweise können Netzwerke, die den Verzeichnisdienst
der Erfindung verwenden, erweitert werden (d. h., es können zusätzliche
Knoten zu dem Netzwerk hinzugefügt
und/oder andere Netze mit dem Netzwerk verbunden werden), ohne dass sich
dies wesentlich auf die Leistung und Geschwindigkeit auswirkt, die
durch die Knoten realisiert werden, während sie über den Verzeichnisdienst auf
die Verzeichnisinformationen zugreifen. Das heißt, der Verzeichnisdienst skaliert
sehr gut. Das heißt,
da alle Knoten, nachdem das Netzwerk in Gang ist, allgemein diejenigen
Datensätze,
auf die sie am häufigsten
zugreifen, lokal im Cache halten, sind die Zugriffszeiten für diese
Knoten für
die Verzeichnisinformationen, die lokal im Cache gehalten werden,
unabhängig
von der Größe des Netzwerks
oder von dem Verkehr auf dem Netzwerk die gleichen (sehr schnell).
-
Wie in 4B gezeigt
ist, werden nun ausführlicher
die im Schritt 606 (4A)
identifizierten rekursiven Aufrufe beschrieben. Der Schritt 606 enthält die folgenden
Teilschritte, die durch den Verzeichnisdienst ausgeführt werden.
Zunächst
lokalisiert der Verzeichnisdienst den Wurzelverzeichnis-Datensatz
(Schritt 610), wobei er unter Verwendung des Schlüssels (z.
B. /USERS/JONES/PASSWORD), der durch den anfordernden Knoten an
ihn übergeben
worden ist, in diesen Datensatz indiziert. Daraufhin prüft der Verzeichnisdienst,
ob ein Abschnitt des Schlüssels
(z. B. /USERS) an einen Verzeichniseintrag in dem Wurzelverzeichnis
angepasst ist (Schritt 612). Wenn er nicht angepasst ist,
gibt der Verzeichnisdienst eine Fehlermeldung an den anfordernden
Knoten zurück
(Schritt 614). Wenn es einen entsprechenden Eintrag in
dem Wurzelverzeichnis gibt, bestimmt der Verzeichnisdienst nachfolgend,
ob dieser Verzeichniseintrag in seinem Datenfeld die angeforderten
Verzeichnisinformationen enthält
(Schritt 616). Wenn das der Fall ist, liest der Verzeichnisdienst
die angeforderten Verzeichnisinformationen aus diesem Datenfeld
aus und stellt sie für
den anfordernden Knoten bereit (618).
-
Wie nun in den 4B und 5 gezeigt
ist, könnte
ein Wurzelverzeichnis-Datensatz 400 der Wurzeldatensatz
sein, auf den im Schritt 612 Bezug genommen wird. Falls
das Verzeichnis 402 in seinem Datenfeld die angeforderten
Verzeichnisinformationen enthält
(Schritt 616), braucht der Verzeichnisdienst lediglich
unter Verwendung des Schlüssels
in diesen Eintrag 402 zu indizieren und die angeforderten
Verzeichnisinformationen aus dem Datenfeld auszulesen. Es wird angemerkt,
dass der Wurzelverzeichnis-Datensatz 400, wie in 5 gezeigt ist, in Übereinstimmung
mit dem Reproduktionsmerkmal des Verzeichnisdienstes der Erfindung
auf drei weiteren Netzwerkknoten reproduziert sein könnte (401, 403, 405).
Tatsächlich
kann der Wurzelverzeichnis-Datensatz 400 auf allen Netz werkknoten
reproduziert sein. Dies könnte
angesichts der Tatsache sinnvoll sein, dass jeder Netzwerkknoten,
wenn der Knoten den Verzeichnisdienst der Erfindung erstmals aufruft
und häufig
danach, wahrscheinlich auf den Wurzelverzeichnis-Datensatz Bezug
nimmt.
-
Falls der Eintrag in dem Wurzelverzeichnis-Datensatz
die angeforderten Verzeichnisinformationen in dem Datenfeld des
Eintrags nicht enthält (Schritt 616 aus 4B), bestimmt der Verzeichnisdienst,
ob das Datenfeld des Eintrags eine GUID enthält (Schritt 620).
Wenn es eine GUID enthält,
heißt das,
dass der Verzeichnisdienst durch den GUID-Baum navigieren muss,
um die angeforderten Verzeichnisinformationen zu lokalisieren. Somit
folgt der Verzeichnisdienst der GUID in dem Datenfeld des Eintrags
des Wurzelverzeichnis-Datensatzes zu einem neuen Verzeichnisdatensatz
(Schritt 628), möglicherweise
zu dem Wurzelverzeichnis-Datensatz des GUID-Baums (404 in 5). Somit ist die GUID eine
logische Verknüpfung
mit einem Datensatz, der weitere Informationen über die GUID-Baumstruktur bereitstellt
und schließlich
ermöglicht,
dass der Verzeichnisdienst die angeforderten Verzeichnisinformationen
lokalisiert.
-
Wie in 5 gezeigt
ist, kann die GUID in dem Datenfeld des Eintrags des Wurzelverzeichnis-Datensatzes
eine logische Verknüpfung
oder ein Zeiger auf einen Datensatz sein, der der Wurzelverzeichnis-Datensatz 404 des
GUID-Baums ist.
Wie bei dem Wurzelverzeichnis-Datensatz 400 ist der Wurzelverzeichnis-Datensatz 404 des
GUID-Baums wahrscheinlich auf vielen oder auf allen Netzwerkknoten
reproduziert. In dem Beispiel aus 5 sind zwei
Reproduktionen (405, 407) des Datensatzes 404 gezeigt.
-
Die durch die Schritte 628, 630 und 634 in 4B definierte Schleife zeigt
das rekursive Wesen des Verzeich nisdienstes. Das heißt, nachdem über den
Wurzelverzeichnis-Datensatz 404 des GUID-Baums die GUID-Baum-Datensätze eingegeben
worden sind (5) und
wenn die Datenfelder der richtigen Verzeichniseinträge in den GUID-Baum-Datensätzen GUIDs
enthalten, tritt der Verzeichnisdienst in eine rekursive Schleife
ein, wobei er auf mehrere (in 5 durch
die Auslassungspunkte 410 identifizierte) Datensätze zugreift,
bis er einen Datensatz erreicht, der einen Verzeichniseintrag mit
einem oder mit mehreren in seinem Datenfeld aufgelisteten Knoten
besitzt (Schritt 622). Ein solcher Datensatz ist ein Blatt
der GUID-Baumstruktur und ist in 5 als
Datensatz 412 angegeben. Wie bei allen durch den Verzeichnisdienst
der Erfindung unterhaltenen Datensätzen kann dieser Datensatz 412 wenigstens
auf einem weiteren Netzwerkknoten reproduziert sein (413).
Obgleich es derzeit nicht bevorzugt wird, ist es außerdem allgemein
möglich,
dass an irgendeinem Punkt während
dieses rekursiven GUID-Baum-Durchlaufs ein Verzeichniseintrag mit
den angeforderten Verzeichnisinformationen in seinem Datenfeld angetroffen
wird (Schritt 630 aus 4B),
wobei der Verzeichnisdienst in einem solchen Fall die angeforderten
Verzeichnisinformationen aus dem Datenfeld auslesen und für den anfordernden
Knoten bereitstellen würde
(632).
-
Es ist wichtig anzumerken, dass der
Cache der lokal gespeicherten Verzeichniseinträge indiziert sein kann, so
dass es in jeder Phase der GUID-Baum-Durchlaufoperation möglich ist,
den gewünschten
Datensatz anstatt aus der Baumstruktur aus dem lokalen Cache zu
erhalten. Wenn beispielsweise der Datensatz 398 auf dem
Knoten, der "/USERS/JONES/PASSWORD" nachzuschlagen versucht, im
Cache gehalten wird, kann der Verzeichnisdienst den lokal im Cache
gehaltenen Datensatz über
ein Hash-Nachschlagen entweder nach /USERS/JONES/PASSWORD oder nach.
der entsprechenden GUID finden. Ähnlich
prüft der
Verzeichnis dienst, während
er den GUID-Teilbaum durchläuft,
zuerst immer, ob durch eine GUID indizierte Einträge lokal
im Lache gehalten werden, bevor der Verzeichnisdienst rekursiv den
GUID-Baum aufruft, um eine Kopie des Datensatzes fern zu lokalisieren.
-
Während
der Rekursion führen
die verschiedenen Datensätze,
auf die der Verzeichnisdienst zugreift, den Verzeichnisdienst zu
dem Blatt-Datensatz 412. Dies geschieht dadurch, dass der
Verzeichnisdienst bei dem Wurzelverzeichnis-Datensatz 404 des GUID-Baums
beginnt und das Schlüsselfeld
jedes der Verzeichniseinträge
in dem Datensatz 404 (oder in einer der Kopien 405, 407 des
Datensatzes 405 an anderen Knoten indem Netzwerk) untersucht,
um den Bereich zu bestimmen, in den die logische GUID-Verknüpfung von
dem Datensatz 400 fällt. Falls
die logische GUID-Verknüpfung
von dem Datensatz 400 in den durch das Schlüsselfeld
des Verzeichniseintrags 409 identifizierten Bereich fällt, wird die
GUID in dem Datenfeld des Eintrags 409 als die logische
Verknüpfung
oder als der Zeiger auf den nächsten
Datensatz verwendet. Dieses Verfahren wird fortgesetzt, bis sich
die Bereiche in den Schlüsselfeldern
der Verzeichniseinträge
der nachfolgenden Datensätze
auf eine einzelne GUID wie etwa auf die GUID "12540" in dem Schlüsselfeld
eines Verzeichniseintrags 411 in dem GUID-Blatt-Datensatz 412 reduzieren.
-
Während
sich der Verzeichnisdienst in dem GUID-Teilbaum bewegt, prüft er immer
wieder zunächst,
ob durch eine GUID indizierte Einträge lokal im Lache gehalten
werden, bevor der Verzeichnisdienst rekursiv den GUID-Baum aufruft,
um eine Kopie des Datensatzes fern zu lokalisieren. Bei der Bezugnahme
auf den GUID-Baum verwendet der Verzeichnisdienst die verantwortlichen
Knoteninformationen in den Datenfeldern der GUID-Baum-Datensätze in dem
Lokalisierungsprozess.
-
Es ist wichtig zu erkennen, dass
sich alle diese Datensätze,
auf die der Verzeichnisdienst in dieser rekursiven Schleife (und
allgemein, selbst wenn er nicht in der rekursiven Schleife ist)
zugreift, auf verschiedene Netzwerkknoten befinden können und in
vielen Fällen
auch befinden. Dies liegt daran, dass der Verzeichnisdienst der
Erfindung verteilt ist und dass sich die Datensätze, die das Verzeichnis ergeben
und die die verschiedenen Stücke
der Verzeichnisinformationen, die durch den Verzeichnisdienst unterhalten
werden, enthalten, im Allgemeinen auf verschiedenen Knoten im gesamten
Netzwerk befinden. Während
der GUID-Baum auf die hier beschriebene Weise durchlaufen wird,
kann der Verzeichnisdienst die GUID-Baum-Datensätze, auf die zugegriffen worden
ist, reproduzieren und an dem anfordernden Knoten lokal machen.
Diese Reproduktion ist optional und wird wie obenbeschrieben ausgeführt.
-
Außerdem ist es wichtig zu erkennen,
dass die Datensätze,
die die Struktur des Verzeichnisaufbaus beschreiben (d. h. die GUID-Baum-Datensätze), durch
den Verzeichnisdienst auf die gleiche Weise gespeichert werden,
wie er die Datensätze
mit den tatsächlichen
Verzeichnisinformationen speichert, und außerdem durch den Verzeichnisdienst
auf die gleiche Weise unterhalten werden, wie er die Datensätze mit
den tatsächlichen
Verzeichnisinformationen unterhält.
-
Anhand von Schritt 622 aus 4B und dem Datensatz 412 aus 5 enthält das Datenfeld in dem Eintrag 411 des
GUID-Blatt-Datensatzes 412 eine Liste von Knoten. Dies
ist eine Liste von Knoten, die eine Kopie des Datensatzes besitzen,
der die angeforderten Verzeichnisinformationen enthält. Der Verzeichnisdienst
kann nun auf irgendeinen dieser aufgelisteten Knoten zugreifen,
um die angeforder ten Verzeichnisinformationen zu erhalten (Schritt 624).
-
Anstatt von dem Wurzelverzeichnis-Datensatz 400 (oder
von irgendeiner seiner Kopien 401, 403, 405)
auszugehen, wenn der GUID-Baum durchlaufen wird, um die angeforderten
Verzeichnisinformationen zu erhalten, ist es möglich, dass der Verzeichnisdienst
der Erfindung einen Eintrag in dem Wurzelverzeichnis-Datensatz 400 findet,
der in seinem Datenfeld eine logische Verknüpfung (z. B. die GUID "12540")
direkt zu einem Eintrag 399 in einem Datensatz 398,
der in seinem Datenfeld die angeforderten Verzeichnisinformationen
besitzt, bereitstellt. Wie oben erwähnt wurde, ist es außerdem möglich, dass
ein Eintrag 402 in dem Wurzelverzeichnis-Datensatz 400 selbst
die angeforderten Verzeichnisinformationen in seinem Datenfeld besitzt.
Eine typische Situation liegt aber vor, wenn der GUID-Baum durch
den Verzeichnisdienst über
die GUID-Baum-Datensätze durchlaufen
wird, um die angeforderten Verzeichnisinformationen zu lokalisieren
und an den anfordernden Netzwerkknoten zurückzugeben.
-
In Übereinstimmung mit der Erfindung
verfolgt der Verzeichnisdienst den Besitz und die Verantwortlichkeit
für die
Verzeichnisinformationen und schafft dadurch ein Niveau der Indirektion
zwischen den tatsächlichen
Verzeichnisinformationen selbst und dem physikalischen Ort dieser
Verzeichnisinformationen auf dem Netzwerk.
-
Es ist klar, dass der Verzeichnisdienst
der Erfindung einen hierarchischen strukturierten Ablagemechanismus
für Verzeichnisinformationen
umfasst. Zu diesem Zweck schafft der Verzeichnisdienst der Erfindung
eine Struktur, die sich ununterbrochen selbst in immer kleinere
Abschnitte unterteilt. Ferner wird jeder Abschnitt durch Verzeichnisdatensätze mit der
gleichen Struktur repräsentiert,
während
jeder Abschnitt verschiedene Mengen (Größen) von Verzeichnisinformationen
indiziert.
-
In Übereinstimmung mit der Erfindung
werden Verzeichnisinformationen, auf die häufig zugegriffen wird, kopiert
und unter verschiedenen Netzwerkknoten verteilt, während selten
genutzte Verzeichnisinformationen allgemein nur auf wenigen Netzwerkknoten
erscheinen. Außerdem
wandern die Verzeichnisdatensätze
zu jenen Knoten, die am häufigsten
auf sie zugreifen, wobei sie einen Grad der Selbstorganisation schaffen,
der den Netzwerkverkehr verringert.
-
Allgemein kann die gesamte Funktionalität des Verzeichnisdienstes
der Erfindung in Software implementiert werden. In einer Ausführungsform
befindet sich auf jedem der Netzwerkknoten eine Instanz eines Verzeichnisdienstprogramms,
die auf ihm ausgeführt
wird, wobei sie die gesamten obenbeschriebenen Verzeichnisdienstmerkmale
und die gesamte obenbeschriebene Funktionalität bereitstellt. Es ist möglich, eine
oder mehrere der verschiedenen Funktionen des Verzeichnisdienstes
mit hierfür
vorgesehener Elektronik oder mit einer Kombination aus Hardware
und Software auszuführen,
wobei diese Hardware zu einem Universalcomputer hinzugefügt werden
könnte,
um den Verzeichnisdienst der Erfindung zu implementieren.
-
Dem Durchschnittsfachmann auf dem
Gebiet fallen verschiedene Änderungen,
Abwandlungen und weitere Implementierungen des hier Beschriebenen
auf, ohne vom Umfang der wie beanspruchten Erfindung abzuweichen.
Dementsprechend ist die Erfindung nicht durch die vorstehende erläuternde Beschreibung,
sondern durch den Umfang der folgenden Ansprüche zu definieren.