DE69719564T2 - Dynamischer dateiverzeichnisdienst - Google Patents

Dynamischer dateiverzeichnisdienst Download PDF

Info

Publication number
DE69719564T2
DE69719564T2 DE69719564T DE69719564T DE69719564T2 DE 69719564 T2 DE69719564 T2 DE 69719564T2 DE 69719564 T DE69719564 T DE 69719564T DE 69719564 T DE69719564 T DE 69719564T DE 69719564 T2 DE69719564 T2 DE 69719564T2
Authority
DE
Germany
Prior art keywords
directory
information
network
nodes
directory service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69719564T
Other languages
English (en)
Other versions
DE69719564D1 (de
Inventor
J. Daniel DIETTERICH
Robert S. Phillips
B. John CARTER
H. Scott DAVIS
J. Steven FRANK
William Abraham
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mangosoft Corp
Original Assignee
Mangosoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27419465&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69719564(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US08/754,481 external-priority patent/US6148377A/en
Application filed by Mangosoft Corp filed Critical Mangosoft Corp
Publication of DE69719564D1 publication Critical patent/DE69719564D1/de
Application granted granted Critical
Publication of DE69719564T2 publication Critical patent/DE69719564T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Description

  • 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.

Claims (7)

  1. Verfahren zum Erhalten von Verzeichnisinformationen mit folgenden Schritten: Bereitstellen von einer Vielzahl von Knoten (12a, 12b, 12c, 12d), die miteinander durch ein Netzwerk (10) verbunden sind, Bereitstellen eines verteilten Verzeichnisdienstes auf dem Netzwerk durch Installieren eines Verzeichnisdienstprogramms (32a, 32b, 32c, 32d) auf jedem der Knoten, das ermöglicht, daß Verzeichnisinformationen automatisch zwischen den Knoten (12a, 12b, 12c, 12d) 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 über den 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, daß die Knoten, die die Verzeichniseinträge oder Reproduktionen bzw. Kopien davon enthalten, über einen global eindeutigen Kennzeichnungsbaum gefunden werden.
  2. Verfahren nach Anspruch 1, bei dem der Verzeichnisdienst-Bereitstellungsschritt weiterhin den Schritt des In stallierens des Verzeichnisdienstprogramms (32a, 32b, 32c, 32d) auf jedem der Knoten (12a, 12b, 12c, 12d) umfaßt und das Verzeichnisdienstprogramm automatisch Verzeichnisinformationen kopiert.
  3. Verfahren nach Anspruch 2, bei dem der Verzeichnisdienst-Bereitstellungsschritt weiterhin den Schritt des Installierens des Verzeichnisdienstprogramms (32a, 32b, 32c, 32d) auf jedem der Knoten (12a, 12b, 12c, 12d) umfaßt und das Verzeichnisdienstprogramm automatisch Verzeichnisinformationen kopiert, die auf Zugriffen des Verzeichnisdienstes durch die Knoten basieren.
  4. Verfahren nach Anspruch 2, bei dem der Verzeichnisdienst-Bereitstellungsschritt weiterhin den Schritt des Installierens des Verzeichnisdienstprogramms (32a, 32b, 32c, 32d) auf jedem der Knoten (12a, 12b, 12c, 12d) umfaßt und das Verzeichnisdienstprogramm automatisch Verzeichnisinformationen kopiert, die auf verfügbaren Ressourcen auf dem Netzwerk basieren.
  5. Verfahren nach Anspruch 1, bei dem der verteilte Verzeichnisdienst-Bereitstellungsschritt weiterhin den Schritt des Installierens des Verzeichnisdienstprogramms (32a, 32b, 32c, 32d) auf jedem der Knoten (12a, 12b, 12c, 12d) umfaßt und das Verzeichnisdienstprogramm automatisch Verzeichnisinformationen bewegt, die auf Zugriffen des verteilten Verzeichnisdienstes durch die Knoten basieren.
  6. Verfahren nach Anspruch 1, bei dem der verteilte Verzeichnisdienst-Bereitstellungsschritt weiterhin den Schritt des Installierens des Verzeichnisdienstprogramms (32a, 32b, 32c, 32d) auf jedem der Knoten (12a, 12b, 12c, 12d) umfaßt und das Verzeichnisdienstprogramm automatisch Verzeichnis informationen bewegt, die auf verfugbaren Ressourcen auf dem Netzwerk basieren.
  7. System zum Zugreifen auf Verzeichnisinformationen mit: einem Computernetzwerk (10), und einer Vielzahl von Computern, die mit dem Netzwerk gekoppelt sind, wobei jeder der Computer ein Verzeichnisdienstprogramm (32a, 32b, 32c, 32d) darauf installiert hat und die Vielzahl von Computern mit den Programmen einen verteilten Verzeichnisdienst auf dem Netzwerk zum Unterhalten von Verzeichnisinformationen umfaßt, und es ermöglicht, daß 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, daß 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 speichern, ermöglichen, über einen global eindeutigen Kennzeichnungsbaum gefunden zu werden.
DE69719564T 1996-11-22 1997-11-21 Dynamischer dateiverzeichnisdienst Expired - Fee Related DE69719564T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US827534 1977-08-25
US08/754,481 US6148377A (en) 1996-11-22 1996-11-22 Shared memory computer networks
US754481 1996-11-22
US08/827,534 US5918229A (en) 1996-11-22 1997-03-28 Structured data storage using globally addressable memory
US850137 1997-05-02
US08/850,137 US6647393B1 (en) 1996-11-22 1997-05-02 Dynamic directory service
PCT/US1997/021733 WO1998022893A1 (en) 1996-11-22 1997-11-21 Dynamic directory service

Publications (2)

Publication Number Publication Date
DE69719564D1 DE69719564D1 (de) 2003-04-10
DE69719564T2 true DE69719564T2 (de) 2004-02-19

Family

ID=27419465

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69719564T Expired - Fee Related DE69719564T2 (de) 1996-11-22 1997-11-21 Dynamischer dateiverzeichnisdienst

Country Status (6)

Country Link
US (2) US6647393B1 (de)
EP (1) EP0976065B1 (de)
AT (1) ATE233923T1 (de)
AU (1) AU5894898A (de)
DE (1) DE69719564T2 (de)
WO (1) WO1998022893A1 (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412017B1 (en) * 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US7117227B2 (en) * 1998-03-27 2006-10-03 Call Charles G Methods and apparatus for using the internet domain name system to disseminate product information
US7392234B2 (en) * 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US6961748B2 (en) * 1998-10-27 2005-11-01 Murrell Stephen J Uniform network access
US6282536B1 (en) * 1998-12-17 2001-08-28 Apple Computer, Inc. System and method for interfacing index based and iterator based application programming interfaces
JP3481485B2 (ja) * 1999-01-28 2003-12-22 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム
US7076476B2 (en) * 1999-03-02 2006-07-11 Microsoft Corporation Method and system for integrated service administration via a directory service
US6714948B1 (en) * 1999-04-29 2004-03-30 Charles Schwab & Co., Inc. Method and system for rapidly generating identifiers for records of a database
US7162499B2 (en) * 2000-06-21 2007-01-09 Microsoft Corporation Linked value replication
US7194764B2 (en) 2000-07-10 2007-03-20 Oracle International Corporation User authentication
US7124203B2 (en) * 2000-07-10 2006-10-17 Oracle International Corporation Selective cache flushing in identity and access management systems
US6986039B1 (en) * 2000-07-11 2006-01-10 International Business Machines Corporation Technique for synchronizing security credentials using a trusted authenticating domain
US6986038B1 (en) 2000-07-11 2006-01-10 International Business Machines Corporation Technique for synchronizing security credentials from a master directory, platform, or registry
US6751719B1 (en) * 2000-10-26 2004-06-15 International Business Machines Corporation Method and an apparatus to dynamically order features and to resolve conflicts in a multiple-layer logical volume management environment
US6754798B1 (en) * 2000-10-26 2004-06-22 International Business Machines Corporation Method and an apparatus for volume creation in the presence of multiple aggregators
US7797368B1 (en) * 2000-11-17 2010-09-14 Intel Corporation Managing a network of consumer-use computing devices
US7185364B2 (en) 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US6879564B2 (en) * 2001-02-28 2005-04-12 Microsoft Corp. Method for designating communication paths in a network
US6785686B2 (en) 2001-05-29 2004-08-31 Sun Microsystems, Inc. Method and system for creating and utilizing managed roles in a directory system
US7240211B2 (en) * 2001-10-09 2007-07-03 Activcard Ireland Limited Method of providing an access request to a same server based on a unique identifier
US6973463B2 (en) * 2001-11-06 2005-12-06 Sun Microsystems, Inc. Replication architecture for a directory server
US7035922B2 (en) * 2001-11-27 2006-04-25 Microsoft Corporation Non-invasive latency monitoring in a store-and-forward replication system
US7225256B2 (en) 2001-11-30 2007-05-29 Oracle International Corporation Impersonation in an access system
US7185359B2 (en) * 2001-12-21 2007-02-27 Microsoft Corporation Authentication and authorization across autonomous network systems
US6947942B1 (en) * 2002-05-30 2005-09-20 Taiwan Semiconductor Manufacturing Company, Ltd. Methods of managing user and computer objects in directory service
US20040088365A1 (en) * 2002-10-30 2004-05-06 Sun Microsystems, Inc. Service information model mapping with shared directory tree representations
US20040148361A1 (en) * 2003-01-27 2004-07-29 Ridgley Jay W. System and method for migrating directories over a wide-area network
US7805401B2 (en) * 2003-04-14 2010-09-28 Novell, Inc. Method and apparatus for splitting a replicated volume
US7613784B2 (en) * 2003-05-22 2009-11-03 Overland Storage, Inc. System and method for selectively transferring block data over a network
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US20050080982A1 (en) * 2003-08-20 2005-04-14 Vasilevsky Alexander D. Virtual host bus adapter and method
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7882132B2 (en) 2003-10-09 2011-02-01 Oracle International Corporation Support for RDBMS in LDAP system
US7904487B2 (en) 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
US7620630B2 (en) * 2003-11-12 2009-11-17 Oliver Lloyd Pty Ltd Directory system
US20050278552A1 (en) * 2004-06-14 2005-12-15 Vincent Delisle Secure virtual account
US7693840B1 (en) * 2004-07-30 2010-04-06 Sprint Communications Company L.P. Method and system for distribution of common elements
US7698278B2 (en) * 2004-08-31 2010-04-13 Red Hat, Inc. Method and system for caching directory services
US7315854B2 (en) * 2004-10-25 2008-01-01 International Business Machines Corporation Distributed directory replication
US7730114B2 (en) * 2004-11-12 2010-06-01 Microsoft Corporation Computer file system
WO2006107347A2 (en) * 2005-03-31 2006-10-12 Lehman Brothers Inc. System and method for grouping a collection of documents using document series
US7657579B2 (en) * 2005-04-14 2010-02-02 Emc Corporation Traversing data in a repeatable manner
US7373348B2 (en) * 2005-04-14 2008-05-13 International Business Machines Corporation Distributed directory deployment
US20080065637A1 (en) * 2005-04-14 2008-03-13 Emc Corporation Locating last processed data
US20080065663A1 (en) * 2005-04-14 2008-03-13 Emc Corporation Reestablishing process context
US20070079004A1 (en) * 2005-09-30 2007-04-05 Junichi Tatemura Method and apparatus for distributed indexing
US8688813B2 (en) 2006-01-11 2014-04-01 Oracle International Corporation Using identity/resource profile and directory enablers to support identity management
US8072903B2 (en) * 2006-05-30 2011-12-06 Genband Us Llc Methods, systems, and computer program products for performing range-based directory number (DN) screening
US7849069B2 (en) * 2006-06-21 2010-12-07 International Business Machines Corporation Method and system for federated resource discovery service in distributed systems
JP5295958B2 (ja) * 2006-08-01 2013-09-18 マサチューセッツ インステチュート オブテクノロジー エクストリーム仮想メモリ
US7925872B2 (en) * 2006-08-07 2011-04-12 Oracle America, Inc. Method and apparatus for using a directory service to facilitate centralized device naming
US9026628B2 (en) * 2007-01-22 2015-05-05 Xerox Corporation Two-level structured overlay design for cluster management in a peer-to-peer network
US7739236B2 (en) * 2007-12-14 2010-06-15 International Business Machines Corporation System and method for preserving filehandles across file system migrations on a best effort basis
US8325724B2 (en) * 2009-03-31 2012-12-04 Emc Corporation Data redistribution in data replication systems
US20110161585A1 (en) * 2009-12-26 2011-06-30 Sailesh Kottapalli Processing non-ownership load requests hitting modified line in cache of a different processor
US8880793B2 (en) * 2011-04-08 2014-11-04 Symantec Corporation Storage management systems and methods
US20160156631A1 (en) * 2013-01-29 2016-06-02 Kapaleeswaran VISWANATHAN Methods and systems for shared file storage
US10671370B2 (en) * 2018-05-30 2020-06-02 Red Hat, Inc. Distributing file system states

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4096567A (en) 1976-08-13 1978-06-20 Millard William H Information storage facility with multiple level processors
US4426688A (en) 1981-08-03 1984-01-17 Ncr Corporation Memory system having an alternate memory
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
US4868738A (en) * 1985-08-15 1989-09-19 Lanier Business Products, Inc. Operating system independent virtual memory computer system
US5307506A (en) * 1987-04-20 1994-04-26 Digital Equipment Corporation High bandwidth multiple computer bus apparatus
US4914571A (en) * 1987-06-15 1990-04-03 International Business Machines Corporation Locating resources in computer networks
WO1989002631A1 (en) * 1987-09-08 1989-03-23 Digital Equipment Corporation Naming service for networked digital data processing system
US5119481A (en) 1987-12-22 1992-06-02 Kendall Square Research Corporation Register bus multiprocessor system with shift
US5226039A (en) 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
US5335325A (en) 1987-12-22 1994-08-02 Kendall Square Research Corporation High-speed packet switching apparatus and method
US5282201A (en) 1987-12-22 1994-01-25 Kendall Square Research Corporation Dynamic packet routing network
US5341483A (en) 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5251308A (en) 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5117350A (en) * 1988-12-15 1992-05-26 Flashpoint Computer Corporation Memory address mechanism in a distributed memory architecture
US4934764A (en) 1989-03-31 1990-06-19 Kendall Square Research Corporation Computer system module assembly
US5551035A (en) 1989-06-30 1996-08-27 Lucent Technologies Inc. Method and apparatus for inter-object communication in an object-oriented program controlled system
IT1239122B (it) * 1989-12-04 1993-09-28 Bull Hn Information Syst Sistema multiprocessore a risorse distribuite con replicazione dinamica di dati globali
AU631276B2 (en) * 1989-12-22 1992-11-19 Bull Hn Information Systems Inc. Name resolution in a directory database
DE69022716T2 (de) 1990-03-19 1996-03-14 Bull Hn Information Syst Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür.
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
EP0472829A3 (en) 1990-08-31 1993-01-07 International Business Machines Corporation Multicomputer complex and distributed shared data memory
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
US5269013A (en) * 1991-03-20 1993-12-07 Digital Equipment Corporation Adaptive memory management method for coupled memory multiprocessor systems
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5237673A (en) * 1991-03-20 1993-08-17 Digital Equipment Corporation Memory management method for coupled memory multiprocessor systems
US5426747A (en) * 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
US5333315A (en) * 1991-06-27 1994-07-26 Digital Equipment Corporation System of device independent file directories using a tag between the directories and file descriptors that migrate with the files
US5430850A (en) 1991-07-22 1995-07-04 Massachusetts Institute Of Technology Data processing system with synchronization coprocessor for multiple threads
US5313647A (en) 1991-09-20 1994-05-17 Kendall Square Research Corporation Digital data processor with improved checkpointing and forking
US5245563A (en) 1991-09-20 1993-09-14 Kendall Square Research Corporation Fast control for round unit
US5423037A (en) * 1992-03-17 1995-06-06 Teleserve Transaction Technology As Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes
JPH0619785A (ja) 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
US5452447A (en) 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5394555A (en) 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5493728A (en) 1993-02-19 1996-02-20 Borland International, Inc. System and methods for optimized access in a multi-user environment
US5408649A (en) 1993-04-30 1995-04-18 Quotron Systems, Inc. Distributed data access system including a plurality of database access processors with one-for-N redundancy
US5617537A (en) 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
US5495607A (en) * 1993-11-15 1996-02-27 Conner Peripherals, Inc. Network management system having virtual catalog overview of files distributively stored across network domain
US5701462A (en) 1993-12-29 1997-12-23 Microsoft Corporation Distributed file system providing a unified name space with efficient name resolution
US5689700A (en) * 1993-12-29 1997-11-18 Microsoft Corporation Unification of directory service with file system services
US5519855A (en) 1994-01-14 1996-05-21 Microsoft Corporation Summary catalogs
US5588147A (en) 1994-01-14 1996-12-24 Microsoft Corporation Replication facility
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment
US5490272A (en) 1994-01-28 1996-02-06 International Business Machines Corporation Method and apparatus for creating multithreaded time slices in a multitasking operating system
US5485455A (en) * 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
SE515344C2 (sv) * 1994-02-08 2001-07-16 Ericsson Telefon Ab L M Distribuerat databassystem
AU696018B2 (en) 1994-02-28 1998-08-27 British Telecommunications Public Limited Company Service provision in communications networks
US5692193A (en) 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
EP0678812A1 (de) 1994-04-20 1995-10-25 Microsoft Corporation Replikationsüberprüfung
US5634004A (en) 1994-05-16 1997-05-27 Network Programs, Inc. Directly programmable distribution element
JP3454947B2 (ja) * 1994-06-07 2003-10-06 富士通株式会社 パーソナル通信サービス分散制御システム
US5524141A (en) * 1994-09-22 1996-06-04 Bell Communications Research, Inc. System and method for providing directory information over a telephony network using ADSI
US5608903A (en) * 1994-12-15 1997-03-04 Novell, Inc. Method and apparatus for moving subtrees in a distributed network directory
US5513314A (en) 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5978577A (en) * 1995-03-17 1999-11-02 Csg Systems, Inc. Method and apparatus for transaction processing in a distributed database system
DE69628965T2 (de) 1995-03-22 2004-02-26 Sun Microsystems, Inc., Mountain View Verfahren und Gerät zum Verwalten von Beziehungen zwischen Objekten in einer verteilten Objektumgebung
US5727203A (en) 1995-03-31 1998-03-10 Sun Microsystems, Inc. Methods and apparatus for managing a database in a distributed object operating environment using persistent and transient cache
US5692183A (en) 1995-03-31 1997-11-25 Sun Microsystems, Inc. Methods and apparatus for providing transparent persistence in a distributed object operating environment
EP0769171A1 (de) 1995-05-05 1997-04-23 Silicon Graphics, Inc. Seitenmigration in einem system mit nichtuniformen speicherzugriffen
US5675723A (en) 1995-05-19 1997-10-07 Compaq Computer Corporation Multi-server fault tolerance using in-band signalling
US5687308A (en) 1995-06-07 1997-11-11 Tandem Computers Incorporated Method to improve tolerance of non-homogeneous power outages
US5781537A (en) 1995-07-07 1998-07-14 International Business Machines Corporation Setting up, taking down and maintaining connections in a communications network
US5758343A (en) * 1995-12-08 1998-05-26 Ncr Corporation Apparatus and method for integrating multiple delegate directory service agents
US5805785A (en) 1996-02-27 1998-09-08 International Business Machines Corporation Method for monitoring and recovery of subsystems in a distributed/clustered system
US5832514A (en) 1996-06-26 1998-11-03 Microsoft Corporation System and method for discovery based data recovery in a store and forward replication process
US5768510A (en) 1996-07-01 1998-06-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server application enabler system
US5805786A (en) 1996-07-23 1998-09-08 International Business Machines Corporation Recovery of a name server managing membership of a domain of processors in a distributed computing environment
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US6115549A (en) * 1997-02-12 2000-09-05 Novell, Inc. Directory-services-based software distribution apparatus and method
US5933826A (en) * 1997-03-21 1999-08-03 Novell, Inc. Method and apparatus for securing and storing executable content
US6256031B1 (en) * 1998-06-26 2001-07-03 Microsoft Corporation Integration of physical and virtual namespace

Also Published As

Publication number Publication date
WO1998022893A1 (en) 1998-05-28
EP0976065A1 (de) 2000-02-02
US20040117410A1 (en) 2004-06-17
EP0976065B1 (de) 2003-03-05
DE69719564D1 (de) 2003-04-10
ATE233923T1 (de) 2003-03-15
AU5894898A (en) 1998-06-10
US6647393B1 (en) 2003-11-11

Similar Documents

Publication Publication Date Title
DE69719564T2 (de) Dynamischer dateiverzeichnisdienst
DE69722962T2 (de) Strukturiertes datenspeichersystem mit global adressierbarem speicher
DE60006845T2 (de) Verfahren und vorrichtung zur zusammenarbeit bei multimediaerzeugung über einem netzwerk
DE69728176T2 (de) Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt
DE60019839T2 (de) Verfahren zum Austauch von Daten zwischen einer Javasystemdatenbank und einem LDAP Verzeichnis
DE69936818T2 (de) Protokoll zum Austausch von Konfigurationsdaten in einem Computernetzwerk
DE69907631T2 (de) Netzzugang zu inhaltsadressierbaren daten
DE60009489T2 (de) Vorrichtung und verfahren zum verwalten der verteilung von inhalten zu einem gerät
EP0825524B1 (de) Verfahren zur Verwaltung der Benennung von Objekten
DE69838739T2 (de) Verfahren und Vorrichtung zum Darstellen und Verwenden von Netzwerktopologiedaten
DE60016772T2 (de) Verfahren und system für die publikation und revision von hierarchisch organisierten sätzen von statischen intranet- und internet-seiten
DE60311116T2 (de) Verfahren, system und programm zur verwaltung von daten in verteilten cachespeichern
DE4218025C2 (de) Vorrichtung und Verfahren zur automatischen Zuordnung von Datenspeichereinrichtungen in einem Computersystem
DE69915333T3 (de) Globales dokumentenhostsystem das weit entfaltete inhalts-verteilungsserver verwendet
DE60111039T2 (de) Speichersystem das aus mehreren speichergeräten besteht, mit verschiedenen fehlertoleranten verfahren
DE69733305T2 (de) System/Verfahren zur wirkungsvollen Übermittlung von Datenströmen in einem Multimediasystem
DE10036726A1 (de) Skalierbares Multimedia-Dateisystem für Netzergänzungsspeichergeräte
DE602004013397T2 (de) Verfahren und Apparat zum Verschieben von Daten zwischen Speichersystemen
EP1519262A1 (de) Verfahren, Gerätesystem und Computerprogramm zum Speichern und Abrufen von Druckdaten in einem Netzwerk
DE10113577A1 (de) Verfahren, Computerprogrammprodukt und Computersystem zur Unterstützung mehrerer Anwendungssysteme mittels eines einzelnen Datenbank-Systems
DE102021125179A1 (de) Erzeugen und bereitstellen von containerabbildern
DE60316466T2 (de) Unterstüzung von mehreren nativen netzwerkprotokollimplementiurungen in einem einzigen system
DE60003278T2 (de) Hierarchische Auflösung von Adressen in einem Datennetzwerk
DE19534819A1 (de) Verfahren und Vorrichtung zum Konfigurieren einer Datenbank
DE102006027425A1 (de) System und Verfahren zur Implementierung eines gemeinsamen Deskriptorformats

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee