DE60019839T2 - Verfahren zum Austauch von Daten zwischen einer Javasystemdatenbank und einem LDAP Verzeichnis - Google Patents

Verfahren zum Austauch von Daten zwischen einer Javasystemdatenbank und einem LDAP Verzeichnis Download PDF

Info

Publication number
DE60019839T2
DE60019839T2 DE60019839T DE60019839T DE60019839T2 DE 60019839 T2 DE60019839 T2 DE 60019839T2 DE 60019839 T DE60019839 T DE 60019839T DE 60019839 T DE60019839 T DE 60019839T DE 60019839 T2 DE60019839 T2 DE 60019839T2
Authority
DE
Germany
Prior art keywords
server
ldap
attributes
data
computer
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 - Lifetime
Application number
DE60019839T
Other languages
English (en)
Other versions
DE60019839D1 (de
Inventor
Bernard A. San Francisco Traversat
Gregory L. Palo Alto Slaughter
Tom San Jose Saulpaugh
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE60019839D1 publication Critical patent/DE60019839D1/de
Publication of DE60019839T2 publication Critical patent/DE60019839T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • 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
    • 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/99948Application of database or data structure, e.g. distributed, multimedia, or image

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Die vorliegende Erfindung betrifft im Allgemeinen Computersoftware und Computernetzwerkanwendungen. Im Besonderen betrifft sie Client-Server-Anwendungen und die Übertragung und Anordnung von Konfigurationsdaten unter Komponenten oder Speicherbereichen in einem Computernetzwerk.
  • Ein herkömmliches Computernetzwerk geht einher mit dem Verbinden einer Reihe von PCs (Personal Computer), die gängigerweise als Clients bezeichnet werden, mit einem oder mehreren Server-Computern. Client-Computer sind im Allgemeinen eigenständig und enthalten innerhalb ihres residenten Speichers viele der Informationen, die zum Ausführen von Benutzeranwendungen und Kommunizieren mit einem Netzwerk benötigt werden. Diese beinhalten Informationen über ihre eigene Konfiguration in Bezug auf Soft- und Hardwarefähigkeiten und -anforderungen. Ein Client-Computer greift auf Netzwerkserver typischerweise aus vielfältigen Gründen zu, wie z.B. zum Zugreifen auf Netzwerksoftwareanwendungen, E-Mail, Abrufen und Speichern von Informationen in einer Netzwerkdatenbank oder Zugreifen aufs Internet. Für einen bestimmten Client-Computer spezifische Informationen residieren jedoch im Allgemeinen auf jenem Client-Computer. Diese Informationen können beispielsweise die Speicherspezifikationen und Bustypen, zusätzliche Prozessoren und andere Hardwarespezifikationen beinhalten. Da Client-Computer relativ eigenständig sind und ihre eigenen Konfigurationsinformationen speichern (im Gegensatz zum Speichern derartiger Daten auf einem Server), ist die Aufgabe, Konfigurations- und Benutzerdaten zusätzlich zu Endbenutzer-Anwendungsdaten auf einem Client-Computer zu verwalten, zunehmend mühsam geworden.
  • Während es möglich ist, kleinere Aktualisierungen oder Problembehebungen für Anwendungen, die auf einem Netzwerkserver residieren, zu den Client-Computern zu verteilen, erfordert jedwede signifikante Aktualisierung oder Problembehebung oder die Installation einer neuen Anwendung, die sich auf jeden Client auswirkt, dass ein Netzwerkadministrator individuell auf jeden Client-Computer zugreift und ihn aktualisiert. Mit der wachsenden Zahl mit Netzwerken verbundener Computer, dich sich in einigen Unternehmen im Bereich von Zehntausenden bewegt, ist die Aufgabe des Installierens größerer Überarbeitungen oder Aktualisierungen für Anwendungssoftware oder allgemeine Konfigurationssoftware teuer, ineffizient und zeitaufwendig geworden. Darüber hinaus ist es, weil die meisten Client-Computer eigenständig sind, für Benutzer, die unterschiedliche Client-Computer an unterschiedlichen Standorten benutzen, schwierig, persönliche Voreinstellungen in Bezug auf Anwendungen und Konfigurationsdaten beizubehalten. Das heißt, dass ein Benutzer zwar persönliche Voreinstellungen als Standard auf seinem normalerweise benutzten Client-Computer installieren kann, es aber mühsam ist, diese Standardangaben auf anderen Client-Computern zu reproduzieren, ohne die Standardangaben auf jenen Computern zu ändern.
  • Wie oben beschrieben, ist in einer herkömmlichen Netzwerkkonfiguration der Prozess des Installierens neuer Software oder neuer Anwendungen ein statischer Prozess. In einer derartigen Konfiguration sind die Konfigurationsinformationen für jeden Client auf jeder Client-Maschine definiert. Somit definiert der Netzwerkadministrator jede Konfiguration statisch auf jedem Client. In einem herkömmlichen Computernetzwerk sind die Konfigurationsinformationen für jedes einzelne Subsystem oder jeden Client im einzelnen Client hardwarekodiert. Bei herkömmlichen Netzwerkkonfigurationen, die eigenständige, mit Netzwerkservern verbundene Clients verwenden, erfordert es die Anwendungspflege, wie z.B. das Installieren größerer Aktualisierungen von Software, bei der die Aktualisierung Zugriff auf die Konfiguration einen Subsystems voraussetzt, normalerweise außerdem, dass das Netzwerk zur Durchführung der Wartungsmaßnahme „heruntergefahren" wird.
  • Bei herkömmlichen Computernetzwerken, die mehrere Clients und einen Server aufweisen, wobei der Server Informationen enthält, die von einem Client aus verschiedenen Gründen benötigt werden, werden in vielen Fällen alle Daten auf dem Server, die vom Client benötigt werden oder für diesen relevant sind, vom Server zum Client bewegt. Dies kann typischerweise mit dem Bewegen großer Mengen von Daten einhergehen, von denen viele möglicherweise nicht benutzt werden oder für den Betrieb des Clients nicht nötig sind. Das Übertragen all dieser Daten zum Client ist ineffizient und steigert den Netzwerkverkehr. Darüber hinaus muss der Client ausreichend Arbeits- und Festspeicher aufweisen, um alle Informationen vom Server zu speichern, die diesen bestimmten Client betreffen. Beispielsweise können Geräte wie z.B. PDAs und Smart-Cards, die keine großen Speicherkapazitäten aufweisen, in residentem Speicher nicht alle notwendigen Informationen speichern, einschließlich der Konfigurationsinformationen, die für dieses bestimmte Gerät relevant sein könnten.
  • Eine weitere Komponente vieler herkömmlicher unternehmensweiter Netzwerke sind Verzeichnis- und Namensdienste. Derartige Dienste werden verwendet, um Konfigurations- und Abbildungsinformationen in Bezug auf Netzwerkbenutzer und Hardwarekomponenten zu speichern. Diese Informationen werden von Benutzern und Komponenten in einem Netzwerk benötigt, um gewisse Funktionen auszuführen, die Netzwerkdienste erfordern. Einige verbreitet genutzte Verzeichnisdienste sind DNS (Directory Name Service), der in der Windows NT®-Umgebung benutzte Dienst AD (Active Directory) und NIS in der Unix-Umgebung. Ein neuerer und leistungsfähigerer Verzeichnisdienst, der aktuellere Technologie verwendet, ist das Lightweight Directory Access Protocol oder LDAP, das in größerem Umfang in Unternehmensnetzwerken für Verzeichnisdienste benutzt wird. 1 ist ein Blockdiagramm, das darstellt, wie ein Client in einem LDAP-Verzeichnisdienst auf Daten zugreift. Ein Client-Computer 102 in einer Unternehmensumgebung 104 weist ein LDAP-Zugriffsmodul oder -Zusatzgerät 106 auf. Wenn Client 102 auf ein LDAP-Verzeichnis 108 zugreifen muss, tut er dies direkt mithilfe von Modul 106, wie durch Linie 110 gezeigt. LDAP-Verzeichnis 108 ist in Wesentlichen ein Softwareserver, der eine Datenbank und einen (nicht gezeigten) Softwaredaemon aufweist. Das Datenbanksegment, das alle Konfigurations- und damit zusammenhängenden Daten enthält, kann funktional als eine Tabelle 112 beschrieben werden, die zwei Spalten besitzt. Eine Spalte enthält ein Attribut und die zweite Spalte enthält einen oder mehrere Ist-Werte. Das Attribut kann von beliebiger Datenkategorie sein und beispielsweise einen Benutzernamen, einen Anmeldenamen, eine Abteilung oder einen Hardware-identifikator repräsentieren. Ein Vorteil von Verzeichnis-diensten ist die Flexibilität, die sie Netzwerkadministratoren bieten, beliebige Typen von Daten zu speichern, auf die möglicherweise von Benutzern oder Komponenten im Netzwerk zugegriffen wird. Einem Attribut können ein oder mehrere Werte zugeordnet werden. Beispielsweise können einem Attribut, das benutzerspezifische Einstellungen repräsentiert, insgesamt mehrere Werte zugeordnet sein, wobei diese Werte im selben Werteintrag residieren und durch Trennzeichen beliebiger Art getrennt sind. Die Struktur und Organisation von LDAP-Verzeichnis 108 ist auf dem Feld der Computernetzwerkadministration wohl bekannt.
  • Auf die in diesen vorhandenen, als Legacy-Systeme bezeichneten Verzeichnisdiensten gespeicherten Informationen müsste von Client-Computern in einem Unternehmensnetzwerk zugegriffen werden können. Somit müsste jede Art von Konfigurations-Aufbewahrungsort, die die oben diskutierten Probleme bezüglich der Verwaltung von Anwendungs- und Konfigurationsdaten in expandierenden Netzwerken zu beheben sucht, Konfigurationsdaten auf Legacy-Systemen wie z.B. LDAP-Verzeichnisdiensten unterbringen oder Zugriff darauf haben. Ein Konfigurations-server, der fähig ist, Client-Computern auf effiziente Weise Konfigurations- und benutzerspezifische Daten zur Verfügung zu stellen, muss in der Lage sein, Daten mit vorhandenen Verzeichnisdiensten auszutauschen, die Konfigurationsdaten enthalten.
  • TRAVERSAT B: WOODWARD S: Java System Database Server, 31. Mai 1998 (1998-05-31) beschreibt die Architektur eines standardmäßigen Java-System-Datenbank-Servers (JSD-Servers). Die JSD ist weiter unten ausführlicher beschrieben. Dieses Dokument beschreibt die Verwendung einer Metaeigenschaft „.PERSISTANT.propName", die auf dem JSD-Server gespeichert ist, zum Halten der Abbildungsinformationen zwischen dem Schema eines JSD-Servers und eines LDAP-Servers (ebenfalls weiter unten ausführlicher beschrieben), um das Abrufen von Informationen vom LDAP-Server in die JSD zu gestatten.
  • Daher wäre es wünschenswert, ein System zu haben, das die verteilte Verwaltung von Client- und Benutzerkonfigurationen durch Speichern derartiger Konfigurationsinformationen an einem zentralen Aufbewahrungsort unterstützt. Dies würde es einem Netzwerkadministrator erlauben, Subsystem-Konfigurationen vom Server aus zu verwalten und alle Arten von Änderungen an Anwendungen von einem Server aus zu verteilen. Außerdem wäre es wünschenswert, dass der Zugriff des zentralen Aufbewahrungsortes auf Legacy-Systeme für Konfigurations daten zügig mit minimaler Overhead-Verarbeitung und für den Client-Computer transparent erfolgt.
  • Dementsprechend stellt die Erfindung unter einem Aspekt ein Verfahren des Abrufens von Werten von Konfigurationsdatenelementen von einem Lightweight Directory Access Protocol-Server (LDAP-Server) zu einem Java-basierten Konfigurationsserver bereit, wobei das Verfahren umfasst: Durchsuchen einer Speicherortabgleich-datei nach einer Übereinstimmung zwischen einem Pfad hoher Ebene in einem Java-basierten Konfigurationsserver und einer bestimmten LDAP-Adresse, Durchsuchen eines Abschnitts des LDAP-Servers nach einem oder mehreren Attributen von einem oder mehreren LDAP-Einträgen unter Verwendung der bestimmten LDAP-Adresse zur Bestimmung des Abschnitts des LDAP-Servers, der zu durchsuchen ist, Abrufen eines oder mehrerer Ist-Werte für das eine oder die mehreren Attribute und Abrufen von Werten für ein oder mehrere Schattenattribute, die dem einen oder den mehreren Attributen entsprechen, wobei die Schattenattribute anzeigen, wo in einem Java-basierten Konfigurations-serverschema ein bestimmter Ist-Wert zu platzieren ist, und Senden des einen oder der mehreren Ist-Werte zum Java-basierten Konfigurationsserver und Platzieren des einen oder der mehreren Ist-Werte im Java-basierten Konfigurationsserverschema als Konfigurationsdatenelemente basierend auf den Werten für das eine oder die mehreren Schattenattribute, sodass der eine oder die mehreren Ist-Werte Client-Computern in einer Java-Betriebssystemumgebung verfügbar gemacht werden.
  • Die Erfindung stellt Computerprogrammcode nach Anspruch 8 und ein Computerprogrammprodukt nach Anspruch 9 bereit.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung ist besser zu verstehen unter Hinzuziehung der nachstehenden Beschreibung in Verbindung mit den beiliegenden Zeichnungen, wobei
  • 1 ein Blockdiagramm ist, das darstellt, wie ein Client in einem LDAP-Verzeichnisdienst auf Daten zugreift.
  • 2A ein hierarchisches Blockdiagramm eines LDAP-Verzeichnisbaums ist.
  • 2B eine Veranschaulichung eines Namensschemas, das die hierarchische Struktur von 2A in einem LDAP-Verzeichnisdienst widerspiegelt, und zugeordneter Attribute ist.
  • 3 ein schematisches Diagramm ist, das Komponenten eines Computernetzwerks darstellt, das ein systemweites Datenschema gemäß einer Ausführungsform der vorliegenden Erfindung aufweist.
  • 4 ein Blockdiagramm ist, das eine Struktur eines JSD-Serverschemas gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 5 ein schematisches Diagramm ist, das eine hierarchische Struktur eines Namensraumes MACHINE (Maschine) in einem Serverschema gemäß einer Ausführungs-form der vorliegenden Erfindung darstellt.
  • 6 ein schematisches Diagramm ist, das einen Namensraum USER (Benutzer) gemäß einer Ausführungsform der vor-liegenden Erfindung darstellt.
  • 7 ein Ablaufdiagramm eines Prozesses zum Zugreifen auf Daten in einem LDAP-Verzeichnis in einer Java-System-Datenbank-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung ist.
  • 8 ein Ablaufdiagramm eines Prozesses zum Initialisieren der Server-JSD ist, unter Verwenden eines LDAP-Verzeichnisdienstes, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 9A eine Darstellung ist, die ein Format eines benutzerspezifischen Konfigurationsdaten-Blattes im JSD-Server und einen Benutzereintrag einschließlich Attributen in einem LDAP-Verzeichnisserver zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 9B eine Darstellung eines Formats eines LDAP-Metaverzeichnisses ist, das im LDAP-Server enthalten ist, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 9C eine Darstellung eines Formats einer Abbildungskomponente eines Pfades hoher Ebene gemäß einer Ausführungsform der vorliegenden Erfindung ist.
  • 10 ein Ablaufdiagramm eines Prozesses zum Abrufen eines Konfigurationsdatenelements vom LDAP-Verzeichnis-dienst ist, wenn das Datenelement auf dem JSD-Server nicht verfügbar ist, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 11 ein Ablaufdiagramm eines Prozesses ist, in dem ein LDAP-Eintrag auf einen JSD-Eintrag abgebildet wird, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 12 ein Blockdiagramm eines typischen Computersystems ist, das für die Implementierung einer Ausführungsform der vorliegenden Erfindung geeignet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführlich wird nun Bezug genommen auf eine bestimmte Ausführungsform dieser Erfindung. Ein Beispiel der bestimmten Ausführungsform ist in den beiliegenden Zeichnungen dargestellt. Obgleich die Erfindung in Verbindung mit einer bestimmten Ausführungsform beschrieben wird, versteht es sich, dass nicht beabsichtig ist, die Erfindung auf eine bestimmte Ausführungsform zu beschränken. Es ist im Gegenteil beabsichtigt, Alternativen, Modifikationen und Äquivalente abzudecken, wie sie im Umfang der Erfindung, wie durch die beigefügten Ansprüche definiert, enthalten sein können.
  • Verfahren und Systeme zum Abbilden eines Attributs oder Eintrags in einem LDAP-Verzeichnisdienst auf ein Konfigurationsserverschema sind in den verschiedenen Figuren beschrieben. In der beschriebenen Ausführungsform enthält der Konfigurationsserver eine Softwarekomponente, die als eine Java-System-Datenbank („JSD") bezeichnet wird. Die JSD der vorliegenden Erfindung ist ausführlicher in der US-Patentschrift 6,052,720 beschrieben, die am 14. Mai 1998 unter dem Titel „A Generic Schema for Storing Configuration Information on a Server Computer" (Generisches Schema zum Speichern von Konfigurationsinformationen auf einem Server-Computer) eingereicht wurde. Wie weiter unten ausführlicher beschrieben, ist das JSD-Serverschema eine Baumstruktur, die wohldefinierte Knoten und „Blätter" aufweist und eine oder mehrere Eigenschaften und zugehörige Datenwerte enthält. Somit kann der Speicherort jedes einzelnen Datenelements im JSD-Serverschema als eine Reihe von Knotennamen übermittelt werden, die durch Schrägstriche getrennt sind. Die Fähigkeit des Definierens eines Pfades für jede Eigenschaft in einem JSD-Server, wie in 9A gezeigt, gestattet ein „Abbilden" eines LDAP-Verzeichnisdiensteintrags oder -attributs auf die JSD-Server-Eigenschaft der vorliegenden Erfindung.
  • Obgleich die Struktur und Verwendung von Netzwerk-Verzeichnisdiensten, die das Lightweight Directory Access Protocol (LDAP) – ein Protokoll eines offenen Standards, das über TCP/IP läuft – benutzen, auf dem Fachgebiet wohl bekannt sind, ist es hilfreich, einige bestimmte Merkmale von LDAP zu beschreiben, die für die Abbildungsmerkmale der vorliegenden Erfindung besonders relevant sind. Ein Netzwerk-LDAP-Verzeichnisdienst speichert typischerweise Konfigurationsdaten für ein Netzwerk, die im Allgemeinen deskriptiver und attributbasierter sind als Daten, die in herkömmlichen Datenbanken gespeichert sind. Im Allgemeinen werden sie viel häufiger gelesen als geschrieben. Verzeichnisse sind darauf abgestimmt, schnell auf Nachschlag- oder Suchvorgänge mit hohem Volumen reagieren zu können. Konfigurationsdaten werden allgemein als Daten beschrieben, die zum Konfigurieren eines Systems benutzt werden, wie z.B. eines Client-Computers, und als Daten, die sich auf Benutzerprofile beziehen, zum Einrichten einer Benutzerumgebung ungeachtet des Client-Computers, an dem sich ein Benutzer an einem Netzwerk anmeldet. Das JSD-Serverschema speichert ebenfalls Konfigurationsdaten, weist aber nicht die Skalierbarkeit eines LDAP-Servers auf. Somit ist es effizienter, große Datenmengen auf einem LDAP-Server zu speichern, wodurch sie für alle Benutzer im Netzwerk verfügbar gemacht werden, statt sie sämtlich auf dem JSD-Server zu speichern.
  • Ein Merkmal des LDAP-Servers sind die absoluten und relativen Namenskonventionen, die zum Definieren der Speicherorte von Datenelementen verwendet werden, die als Attribute oder Schlüssel bezeichnet werden. Von besonderer Bedeutung sind die absoluten Namen, die zum Auffinden der Attribute im LDAP-Verzeichnis benutzt werden. Ein absoluter Name beinhaltet eine Reihe „kennzeichnender Namen" (Distinguished Names), die den Knoten im JSD-Server ähnlich sind. Generell basiert das LDAP-Modell auf Einträgen. Ein Eintrag ist eine Zusammenstellung von Attributen. Ein derartiger Eintrag wird als ein kennzeichnender Name (Distinguished Name, „DN") bezeichnet. Ein Attribut kann einen oder mehrere Werte aufweisen und zu einem bestimmten Typ gehören. Typen sind typischerweise mnemonische Zeichenketten wie z.B. un oder u für „User Name" (Benutzername), ml for „Email address" (E-Mail-Adresse) oder o für „Organization" (Organisation). Jeder Typ weist eine Zusammenstellung von Attributen auf. Beispielsweise kann un Attribute wie z.B. unter anderem den üblichen Namen, den Nachnamen und den Anmeldenamen aufweisen. Der DN o kann die Attribute Mail und Fax aufweisen, denen jeweils ein oder mehrere Werte folgen.
  • Einträge in LDAP sind in einer hierarchischen baumähnlichen Struktur angeordnet, die typischerweise organisatorische Grenzen widerspiegelt. Beispielsweise erscheinen Einträge, die Länder repräsentieren, oft an der Spitze des Baumes unter dem DN c (Country), gefolgt z.B. von Einträgen (bu) (Business Unit), die Unternehmensbereiche repräsentieren, denen speziellere Einträge folgen, die alles von Druckern über Client-Computer bis zu Netzwerkbenutzern repräsentieren. 2A ist ein hierarchisches Blockdiagramm eines LDAP-Verzeichnisbaums. Eine detailliertere Beschreibung des offenen LDAP-Standards, seiner Datenorganisation und Verwendung kennzeichnender Namen enthalten der Request for Comments („RFC") Nummer 1777 mit dem Titel „The Lightweight Directory Access Protocol" (Das LDAP) von Wengyik Yeong, Tim Howes und Steve Kille, März 1995, und RFC 1779, „A String Representation of Distinguished Names" (Eine Zeichenketten-Darstellung kennzeichnender Namen) von Steve Kille, März 1995.
  • Ein Verzeichnisbaum 200, der in 2A gezeigt ist, weist drei Knoten auf, die einem DN der höchsten Ebene für das Land entsprechen, das von dem Kürzel c repräsentiert wird. Ein Knoten 202 repräsentiert die USA. Das Kürzel c wird auch als ein Typ bezeichnet. Knoten 202 weist zwei vom ihm abstammende Knoten auf, 204 und 206, die zum DN o gehören, der die Organisation repräsentiert. Knoten 204 stellt Netscape als eine Organisation dar. Netscape, das den Typ o aufweist, besitzt in diesem Beispiel zwei gezeigte Attribute, „mail" und „fax", gefolgt von deren jeweiligen Werten. Knoten 206 stellt eine andere Organisation, Sun, dar, mit zwei von dieser abstammenden Knoten. Knoten 206 kann – und sehr wahrscheinlich ist dies auch der Fall – eine Liste von Attributen (alle des Typs o) ähnlich Knoten 204 aufweisen, die jedoch nicht in der Figur gezeigt sind. Der DN der nächsten Ebene ist bu, der die Art des Geschäftsbereichs repräsentiert. Unter dem Sun-Knoten 206 gibt es zwei Knoten, beide des Typs bu. Ein Knoten 208 stellt den Unternehmensbereich „SunSoft" dar. SunSoft weist ebenfalls eine Zusammenstellung von Attributen auf, alle des Typs bu, die in 2 nicht gezeigt sind. Unter Knoten 208 befindet sich ein Knoten 210 für einen Benutzer Jonathan A. Smith, der als DN u repräsentiert wird. Der SunSoft-Unternehmensbereich kann viele Knoten ähnlich Knoten 210 aufweisen, die sämtliche Netzwerkbenutzer in diesem Unternehmensbereich darstellen. Der Typ u weist eine Liste von Attributen 212 auf. Jedem Attribut folgen ein oder mehrere Werte. In vielen Implementierungen von LDAP müssen diese Werte entweder in Zeichenketten- oder binärer Form vorliegen. In dem in 2A gezeigten Beispiel gibt es unterhalb des DN u keine weiteren DNs. Ein Vorteil mit LDAP implementierter Verzeichnisdienste ist die Flexibilität zum Speichern aller Typen von Informationen, wie z.B. Daten, die Hardwarekomponenten betreffen, Benutzereinstellungen, Startdaten usw.
  • Ein LDAP-Verzeichnis beinhaltet typischerweise mehrere Kontexte. Wird ein neuer Kontext erstellt, wird ein absoluter Name oder eine Hierarchie von DNs, wie in 2B beschrieben, für diesen Kontext definiert. Ein Kontext wird definiert, um auf eine bestimmte Funktion zu zielen. Einige Beispiele für Kontexte sind „Starten des Clients", „benutzerspezifische Voreinstellungen", „Finanzberichte" oder „Daten der Abteilung Technik", um einige zu nennen. Kontexte können als Segmente hoher Ebene gesehen werden, die den Datenbank-Anteil eines LDAP-Verzeichnisses bilden. Beispielsweise werden Zugriffsbeschränkungen für Clients auf Daten in einem LDAP-Verzeichnis auf der Kontextebene gesetzt.
  • Für jeden Kontext wird (typischerweise von einem Netzwerkadministrator) ein Absolutnamensschema definiert, wenn ein Kontext erstellt wird. Das Absolutbenennungsschema oder die -konvention unter LDAP ist eine Liste von DNs. 2B ist eine Veranschaulichung eines Namensschemas und zugeordneter Attribute, das die hierarchische Struktur von 2A in einem LDAP-Verzeichnisdienst widerspiegelt. Die Benennungskonfiguration oder -hierarchie beginnt mit dem kennzeichnenden Namen „c=US" 214 auf der rechten Seite des Namensschemas. Der DN c kann einen beliebigen aus einer Anzahl von Werten aufweisen, die unterschiedliche Länder repräsentieren. Der nächste kennzeichnende Name o=Sun 216 repräsentiert die nächsttiefere Ebene in der Hierarchie. In diesem Beispiel repräsentiert DN o „Organisation" und kann Zeichenkettenwerte aufweisen, die andere Organisationen oder Firmen repräsentieren. Die DNs zur Linken gehen mehr ins Einzelne: bu repräsentiert Unternehmensbereich 218 und u repräsentiert einen Benutzer 220. Jeder kennzeichnende Name oder Typ weist einen Satz von Attributen auf. Beispielsweise weist der kennzeichnende Name u=Jonathan A. Smith 220 einen Satz spezifischer Attribute 212 auf, die erstmals in 2A beschrieben sind. Die gesamte Zeichenkette von DNs 222 wird als eine absolute Adresse oder manchmal ein vollständiger DN bezeichnet.
  • Wie oben erwähnt, ist ein Anteil von Konfigurationsdaten für Client-Computer, Benutzer und andere Komponenten in einem Netzwerk im JSD-Serverschema gespeichert. Dies steht im Kontrast zu herkömmlichen Netzwerken, in denen Konfigurationsdaten für einen Client auf der Client-Maschine hardwarekodiert oder gespeichert sind. Das JSD-Serverschema gestattet es einem Netzwerkadministrator, Konfigurationsinformationen für jeden der Computer in einem Unternehmensnetz von einem zentralen Aufbewahrungsort aus zu verwalten. Somit können jedwede Software-Aktualisierungen, Versionsaktualisierungen oder Installationen neuer Anwendungen, die Kenntnis über und Zugriff auf eine Subsystem-Konfiguration (z.B. des Client-Computers) voraussetzen, vom zentralen Aufbewahrungsort aus implementiert und zum einzelnen Subsystem verteilt werden. Benutzer auf Client-Computern müssen beispielsweise Anwendungen nicht beenden, und darüber hinaus muss das Netzwerk nicht zur Wartung heruntergefahren werden, um die neue Aktualisierung oder Version der Anwendung zu installieren oder zu verteilen
  • 3 ist ein schematisches Diagramm, das Komponenten eines Computernetzwerks darstellt, das ein systemweites Datenschema gemäß einer Ausführungsform der vorliegenden Erfindung aufweist. In der beschriebenen Ausführungsform ist das systemweite Datenschema als eine Java-System-Datenbank oder JSD 301 implementiert, die aus einem Clientschema 303 besteht, das auf einer Client-Maschine 305 als Teil von Netzwerk 307 residiert. Ein JSD-Serverschema 311 residiert auf einem Server-Computer 309, Teil von Netzwerk 307. Wie oben erwähnt, ist es JSD-Serverschema 311 auf Server 309 („JSD-Server"), das mit einem LDAP-Verzeichnisdienst kommuniziert. Daher wird JSD-Serverschema 311 weiter unten ausführlicher beschrieben.
  • 4 ist ein Blockdiagramm, das eine Struktur eines JSD-Serverschemas gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Es zeigt Server-Computer 309 und Serverschema 311 aus 3 in detaillierterer Darstellung. An der Spitze eines n-fach verzweigten Baumes ist ein Rooteintragsknoten 401 vorhanden, der in der bevorzugten Ausführungsform mit „CONFIG" bezeichnet ist. In dem Serverschema gibt es zwei Namensräume. Bereich 403 repräsentiert einen Namensraum MACHINE, der einen Maschinenknoten 305 aufweist. Bereich 407 repräsentiert einen Namensraum USER, der einen Benutzerknoten 409 aufweist.
  • In der beschriebenen Ausführungsform beinhaltet der Namensraum MACHINE 403 drei Kategorien: platform (Plattform) 411, identifier (Identifikator) 413 und profile (Profil) 415. Unter platform 311 beispielsweise gibt es eine Reihe von Einträgen, die auf bestimmte Computerhersteller verweisen. In anderen Ausführungsformen kann der Namensraum MACHINE 403, abhängig von der Plattform und den Anforderungen des Netzwerks, mehr oder weniger Unterkategorien aufweisen. Dies ist in 5 detaillierter dargestellt.
  • 5 ist ein schematisches Diagramm, das eine hierarchische Struktur eines Namensraumes MACHINE 403 in Serverschema 311 darstellt. Unter Kategorie platform 411 sind generell herstellerspezifische Unterbereiche 501 und 503 vorhanden. Die Anzahl von Einträgen auf dieser Ebene kann beispielsweise von der Anzahl von Komponenten von unterschiedlichen Computerherstellern abhängen, die im Netzwerk verwendet werden. Unter einem bestimmten Hersteller wie z.B. Sun Microsystems gibt es zwei Einträge 505 und 507, die auf ein bestimmtes, von Sun Microsystem hergestelltes Computermodell oder einen -typ verweisen. Beispielsweise gibt es unter Sun den Computertyp JDM1. Unter jedem Computermodell sind Blätter vorhanden, wie z.B. Knoten 509, die Anwendungs-Konfigurationsdaten für diesen bestimmten Typ von Computer spezifizieren. Anwendungs-Konfigurationsdaten in in den Blatteinträgen enthalten alle möglichen Konfigurationen, die auf den bestimmten Computer anzuwenden sind, der im übergeordneten Eintrag (z.B. Knoten 507) angegeben ist.
  • Unter der Kategorie identifier 413 sind Einträge vorhanden, die einen eindeutigen Identifikator für jeden Computer im Netzwerk 307 von 3 enthalten, wie z.B. in Knoten 511 gezeigt. In der beschriebenen Ausführungsform wird die Adresse der Medienzugangssteuerung (Media Access Control, MAC) für jeden Computer als ein eindeutiger Identifikator verwendet. Blatt 513 unter Client-Identifikator 511 enthält spezielle Anwendungs-Konfigurationsinformationen für diesen bestimmten Computer. Die Konfigurationsdaten 513 sind von den Konfigurationsdaten 509 unter Kategorie platform 411 insofern zu unterscheiden, dass die Daten 513 unter identifier 413 einen speziellen Computer betreffen, wie er von einem bestimmten Benutzer konfiguriert wurde. In der beschriebenen Ausführungsform gibt es (nicht gezeigte) Querverweise zwischen den eindeutigen Identifikatoren 413 unter der Identifikator-Kategorie und Einträgen unter Kategorie platform 411. Das heißt, es gibt einen Verweis von einem speziellen Identifikator auf einen bestimmten Typ von Computer. Dies gestattet es dem Server festzustellen, auf welche Plattform oder welchen Typ von Computer sich ein bestimmter eindeutiger Identifikator bezieht.
  • Unter Kategorie profile 415 sind Einträge vorhanden, die bestimmte Kategorien oder Verwendungen von Computern im Netzwerk beschreiben. Die Konfigurationsinformationen für die einzelnen Profile, die beispielsweise Abteilungen innerhalb einer Firma beschreiben können, sind unter Kategorie profile 415 enthalten. Beispiele sind an den Knoten 515 und 517 als Profile für Finanzwesen und Vertrieb gezeigt. Unter Knoten Finanzwesen 515 befinden sich anwendungsspezifische Daten 519, die Daten bezüglich des Profils Finanzwesen enthalten. Ähnlich den Verweisen von den eindeutigen Identifikatoren auf die platform-Einträge gibt es erforderlichenfalls auch einen Verweis vom speziellen Identifikator-Blatt 513 auf den profile-Eintrag des Knotens 519. Das heißt: Weist ein bestimmter Computer ein gewisses Profil auf, z.B. ein Computer, der in der Buchführungsabteilung verwendet wird, oder ein Computer, der ausschließlich als Terminal am Empfang dient, gibt es einen Verweis vom Identifikator dieses Computers zum passenden profile-Eintrag.
  • 6 ist ein schematisches Diagramm, das einen Namensraum USER (Benutzer) gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. In der beschriebenen Ausführungsform weist der Namensraum USER 407 zwei Kategorien auf, users (Benutzer) und groups (Gruppen). Kategorie users 417 repräsentiert Namen einzelner Benutzer im Netzwerk 307, wie z.B. in den Knoten 601, 603 und 605 gezeigt. Unter dem individuellen Knoten jedes Benutzers gibt es spezifische Konfigurationsdaten, die persönliche Voreinstellungen dieses individuellen Benutzers enthalten und im Blatt 607 gezeigt sind. Beispielsweise kann in einer Textverarbeitungs-Anwendung eine bestimmte Benutzervor-einstellung eine Standardschriftart und Formateinstellungen für Dokumente beinhalten, Diese Kategorie gestattet es einem individuellen Benutzer, einen beliebigen Computer im Netzwerk 307 zu benutzen, wobei die persönliche Konfiguration dieses Benutzers (also die persönlichen Einstellungen) diesem Computer bekannt sind. Wenn beispielsweise der Benutzer ein Textverarbeitungsprogramm aufruft, werden die Voreinstellungen des Benutzers als Standard genommen statt der Standardvorgaben des normalen Benutzers jenes Computers.
  • Die andere Kategorie im Namensraum USER ist die Kategorie groups. Diese Kategorie enthält Einträge bezüglich bestimmter Gruppen von Benutzern. Groups 419 kann vielfältige Kategorien enthalten, z.B. Abteilungen innerhalb einer Firma oder Kategorien, die Mitarbeiter einer Firma von anderen Mitarbeitern unterscheiden, wie z.B an den Knoten 609 und 611 gezeigt. In der beschriebenen Ausführungsform gibt es gegebenenfalls Verweiszeiger zwischen individuellen Benutzern 603 und 605 unter der Kategorie users 417 zu einer oder mehreren groups.
  • 7 ist ein Ablaufdiagramm eines Prozesses zum Zugreifen auf Daten in einem LDAP-Verzeichnis von einem Konfigurationsserver, der in einer Java-System-Datenbank-Umgebung betrieben wird, gemäß einer Ausführungsform der vorliegenden Erfindung. Das Ablaufdiagramm der 7 verwendet einen Konfigurationsserver, der mit einem JSD-Serverschema konfiguriert ist, wie oben in 36 beschrieben, um Client-Netzwerk- und Benutzerkonfigurationsdaten aufzubewahren. Im Schritt 702 importiert der JSD-Server Konfigurationsdaten vom LDAP-Verzeichnisserver beim Starten des JSD-Servers oder speichert sie im Cache-Speicher. In diesem Schritt geht das JSD-Serverschema gegebenenfalls eine „Anfangspopulation" von benötigten Konfigurationsdaten vom LDAP-Verzeichnisdienst durch. Dieser Schritt ist in 8 detaillierter beschrieben. In Schritt 704 startet ein Client-Computer, und ein bestimmter Benutzer meldet sich an. Der Client-Computer greift auf den JSD-Server zu, um seine Konfigurationsdaten und Konfigurationsdaten für den bestimmten Benutzer abzurufen. Ein Protokoll für das Austauschen von Daten zwischen einem Client-JSD-Schema und dem Server-JSD-Schema ist ausführlicher in der US-Patentschrift 6,119,157 beschrieben, die am 14. Mai 1998 unter dem Titel „A Protocol for Exchanging Configuration Data in a Computer Network" (Protokoll zum Austauschen von Konfigurationsdaten in einem Computernetzwerk) eingereicht wurde.
  • Im Schritt 706 stellt der JSD-Server während normaler Benutzeraktivität und normalen Client-Betriebs fest, ob sich Daten, die von einem Client angefordert oder benötigt werden, im JSD-Serverschema befinden. Sind die Konfigurationsdaten, die vom Client benötigt werden, auf dem JSD-Server verfügbar, werden die Daten abgerufen, und die Steuerung geht zu Schritt 710 über, in dem die Daten zum Client übertragen werden. Sind sie auf dem JSD-Server nicht verfügbar, geht die Steuerung zu Schritt 708 über, in dem die benötigten Daten auf dem LDAP-Verzeichnisserver lokalisiert werden. Dieser Prozess ist in 10 detaillierter beschrieben. Ein Konfigurationsdatenelement kann in einem JSD-Server dadurch lokalisiert werden, dass der entsprechende Namensraum – entweder MACHINE oder USER – identifiziert und den Kategorien gefolgt wird, bis das korrekte Blatt erreicht ist, das das bestimmte Konfigurationsdatenelement enthält. Beispielsweise kann ein „Pfad" lauten:
  • CONFIG/MACHINE/identifier/(MAC-Adresse)/(spezielle Konfigurationseigenschaften)
  • Durch einen weiter unten beschriebenen Abbildungsprozess wird ein Teil dieses Pfades verwendet, um Daten vom LDAP-Server zum JSD-Serverschema zurückzugeben. Die Daten vom LDAP-Server werden abgerufen und zum JSD-Serverschema übertragen. Im Schritt 710 werden die Konfigurationsdaten zum Client übertragen, und der Prozess ist abgeschlossen.
  • 8 ist ein Ablaufdiagramm eines Prozesses zum Initialisieren eines JSD-Servers, der einen LDAP-Verzeichnisdienst verwendet, gemäß einer Ausführungsform der vorliegenden Erfindung. Es zeigt detaillierter Schritt 702 von 7. In Schritt 802 bestimmt der JSD-Server den passenden Kontext im LDAP-Verzeichnis, von dem Daten zu importieren sind, um den JSD-Server zu starten. In der beschriebenen Ausführungsform weist das LDAP-Verzeichnis einen Kontext unter dem Namen „JSD" oder einem anderen geeigneten Namen auf, der all die Daten enthält, die ein JSD-Server zum Starten benötigt, aber noch nicht hat. In der beschrieben Ausführungsform werden die meisten der Daten im JSD-Namensraum vom DAP-Server beschickt. In anderen Ausführungsformen kann ein Teil der USER-Daten bereits auf dem JSD-Server residieren. In anderen Ausführungsformen können JSD-Server-Startdaten über mehr als einen Kontext im LDAP-Verzeichnis verteilt sein. In noch anderen Ausführungsformen kann der JSD-Server bereit die meisten oder alle Start-Konfigurationsdaten aufweisen.
  • In Schritt 804 ruft der JSD-Server alle Einträge im Kontext „JSD" im LDAP-Verzeichnis ab. In der beschriebenen Ausführungsform ruft der JSD-Server alle Einträge im Kontext ab. In anderen Ausführungsformen können nach Bedarf vom JSD-Server mehr oder weniger Einträge in einem oder mehreren Kontexten abgerufen werden. In Schritt 806 werden die JSD-Pfade abgerufen, die den Attributen in den LDAP-Einträgen entsprechen. Dieser Prozess ist in 11 detaillierter beschrieben. In Schritt 808 werden die Konfigurationsdaten in dem JSD-Eintrag gespeichert, der in Schritt 806 ermittelt wurde, womit in dieser Phase der Prozess abgeschlossen ist.
  • 9A ist eine Darstellung, die ein Format eines benutzerspezifischen Konfigurationsdaten-Blattes im JSD-Server und einen Benutzereintrag einschließlich Attributen in einem LDAP-Verzeichnisserver zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung. Die benutzerspezifischen Konfigurationsdaten im JSD-Server wurden erstmals als Knoten 607 in 6 beschrieben. 9A zeigt eine Liste von JSD-Eigenschaften 902 für Benutzer „Jon", der in Knoten 601 von 6 dargestellt ist. Liste 902 beinhaltet in Form eines Beispiels die Anmelde-ID (logon ID), Adresse (address), E-Mail-Adresse (email address), Benutzer-ID (user ID) und Abteilung des Benutzers. Die speziellen Benutzerbestätigungs-Datenelemente in Blatt 607 hängen von den spezifischen Bedürfnissen des Benutzers, des Netzwerks und der Anwendungen ab und sind nicht auf die Eigenschaften beschränkt, die in Liste 902 gezeigt sind.
  • Ebenfalls in 9A dargestellt ist ein LDAP-Eintrag 904 des Typs oder DNs u für den Benutzer Jonathan A. Smith. Er ist eine Erweiterung oder Modifikation von Eintrag 210, der in 2A gezeigt ist. Attributliste 212 ist jetzt als eine erweiterte Attributliste 906 dargestellt, die zusätzliche „Schattenattribute" für Anmeldung (logon) 908, Mail (mail) 910 und Computer (computer) 912 enthält. Diese Schattenattribute werden während des „Anfangspopulations"-Startens des JSD-Servers verwendet, ein Prozess, der in 11 detaillierter beschrieben ist. Kurz gesagt, gestatten es die Schattenattribute dem LDAP-Server, die Anfangsbeschickung des JSD-Serverschemas zügig durchzuführen, die erstmals in den Schritten 806 und 808 von 8 beschrieben wurde. Jene Attribute im LDAP-Server, die über eine korrespondierende Eigenschaft im JSD-Serverschema verfügen, erhalten einen „Schatten". In der beschriebenen Ausführungsform enthält ein Schattenattribut den Namen der korrespondierenden JSD-Eigenschaft, den JSD-Pfad, mit dem die Eigenschaft aufgefunden werden kann, und den Namen der Java-Klasse, die der Eigenschaft zugeordnet ist.
  • In der beschriebenen Ausführungsform beginnt ein Schattenattribut mit einem Punkt (.). In anderen Ausführungsformen können andere Sonderzeichen oder Markierungen verwendet werden, um ein Schattenattribut zu kennzeichnen. Auf den Punkt folgt der Name des LDAP-Attributs, das einen Schatten erhält, z.B. „logon" oder „mail". Auf den LDAP-Attributnamen folgt der JSD-Eigenschaftsname. Beim Schattenattribut 908 lautet der Eigenschaftsname „logon_ID", welches die erste JSD-Eigenschaft in Liste 902 ist. Die Reihenfolge der Eigenschaften oder der Schattenattribute ist unerheblich und spielt in der beschriebenen Ausführungsform keine funktionale Rolle. Nach dem JSD-Eigenschaftsnamen steht der JSD-Pfad. In Attribut 908 liegt der Pfad im Namensraum USER und endet mit dem Benutzer „Jon". Auf den Pfadnamen folgt der Java-Klassenname für logon ID. In Attribut 912 ist die JSD-Eigenschaft client_ID, die einem Computer-Seriennummer-Typ-Attribut unter LDAP entspricht. Weil der Pfad für client_ID sich auf eine bestimmte Maschine bezieht, liegt er im Namensraum MACHINE.
  • Wie ausführlicher in 11 beschrieben, werden, wenn das JSD-Serverschema anfangs beschickt wird, die Schattenattribute verwendet, um zügig genau zu identifizieren, wo im JSD-Serverschema ein bestimmtes Konfigurationsdatenelement gespeichert sein sollte. Den Ist-Wert des Datenelements erhält man vom regulären „Nicht-Schatten"-Attribut im Eintrag. In der beschriebenen Ausführungsform werden Schatteneinträge manuell von einem Netzwerkcomputerverwalter erzeugt, der mit dem JSD-Serverschema vertraut ist. Eine Person mit Kenntnissen über das JSD-Schema und Java-Klassennamen ist in der Lage, jene Attribute unter LDAP zu identifizieren, die über korrespondierende Eigenschaften im JSD-Schema verfügen. Eine solche Person kann die Schattenattribute in die LDAP-Einträge einfügen. In der beschriebenen Ausführungsform kann der JSD-Server auf die Schattenattribut zugreifen, und der JSD-Server ist berechtigt, die Schattenattribute zu lesen.
  • 9B ist eine Darstellung eines Formats eines LDAP-Metaverzeichnisses, das im LDAP-Server enthalten ist, gemäß einer Ausführungsform der vorliegenden Erfindung. LDRP-Metaverzeichnis 914 ist eine Liste von LDAP-Typen oder DNs, wie z.B. c, bu und u, gefolgt von einer Liste jedes zugeordneten Attributs. Ein Metaverzeichnis wird verwendet, wenn der JSD-Server ein Konfigurationsdatenelement vom LDAP-Server abrufen muss. Es gestattet einem LDAP-Server, schnell zu ermitteln, ob ein bestimmter Typ ein gewisses Attribut aufweist. Es ist auch für andere Legacy-Systeme im Netzwerk nützlich, die Zugriff auf Daten im selben LDAP-Kontext benötigen. Diese Systeme können Metaverzeichnis 914 benutzen, um exakt zu ermitteln, welche Attribute eines bestimmten Typs benötigt werden, bevor auf den Eintrag zugegriffen wird. Beim Abrufen des Wertes von dem Eintrag kann das Legacy-System die Informationen, die es von Metaverzeichnis erhalten hat, dazu benutzen, nur Werte für jene Attribute zu extrahieren, nach denen vom Legacy-System gesucht wird. Im Wesentlichen benutzt es das Metaverzeichnis als eine Maskierung für den LDAP-Eintrag. Angesichts des Hinzufügens von Schattenattributen in den Einträgen ist diese Maskierungsfunktion insofern besonders nützlich, als sie die Wahrscheinlichkeit von Fehlern beim Abrufen von Werten für Attribute verringert, die über Schattenattribute verfügen.
  • 9C ist eine Darstellung eines Formats einer Abbildungskomponente eines Pfades hoher Ebene gemäß einer Ausführungsform der vorliegenden Erfindung. Eine Abbildungskomponente eines Pfades hoher Ebene 916 enthält eine Abbildung zwischen jedem JSD-Pfad hoher Ebene und einem korrespondierenden hierarchischen LDAP-Pfad, der aus kennzeichnenden Namen besteht. In der beschriebenen Ausführungsform beginnt ein Pfad hoher Ebene im JSD-Serverschema mit dem Rooteintrag, der mit CONFIG bezeichnet ist, gefolgt von einem der beiden primären Namensräume MACHINE oder USER, und endet mit einer der fünf Kategorien unter den beiden Namensräumen. Diese Abbildung wird verwendet, um die Suche einzuschränken, die im LDAP-Server erfolgt, wenn der JSD-Server, wie erstmals bei Schritt 708 in 7 gezeigt, ein Datenelement anfordert, über das er nicht verfügt. Ihre Rolle beim Abrufen von Datenelementen im LDAP-Server ist in 10 ausführlicher beschrieben. In der beschriebenen Ausführungsform ist die Abbildung von Pfaden hoher Ebene eine Komponente in einem Netzwerkcomputer-Verwaltungstool, das den LDAP-Verzeichnisdienst verwaltet und in der Lage ist, mit der JSD zu kommunizieren (also „JSD-bewusst" ist). Wenn daher die JSD ein bestimmtes Konfigurationsdatenelement vom LDAP-Server anfordert, greift sie zuerst auf die Abbildung der Pfade hoher Ebene zu, um zu ermitteln, welche „Verzweigung" der hierarchischen LDAP-Struktur mithilfe der standardmäßigen LDAP-Suchfunktionen zu durchsuchen ist. Das Abbilden zwischen JSD-Schemapfaden (die sämtlich wohldefiniert sind) und den DNs hoher Ebene im LDAP-Server wird von einem Netzwerkcomputeradministrator vorgenommen, der mit beiden Schemata vertraut ist.
  • 10 ist ein Ablaufdiagramm eines Prozesses zum Abrufen eines Konfigurationsdatenelements vom LDAP-Verzeichnisdienst, wenn das Datenelement auf dem JSD-Server nicht verfügbar ist, gemäß einer Ausführungsform der vorliegenden Erfindung. 10 beschreibt Schritt 708 von 7 detaillierter. In Schritt 1002 löst der JSD-Server eine Suche nach einer Übereinstimmung zwischen Pfaden hoher Ebene des JSD-Serverschemas und der hierarchischen LDAP-Struktur mithilfe von Tabelle 916 von 9C aus. Beispielsweise beinhaltet eine Benutzeranfrage auf einem Client-Computer nur den Nachnamen eines bestimmten Benutzers Jon Smith. Das JSD-Serverschema weist keine Eigenschaft auf, die nur den Nachnamen eines Benutzers bereitstellt. Es ermittelt dies durch Durchqueren des Pfades CONFIG/USER/users/Jon/, und Überprüfen der benutzerspezifischen Konfigurationsdaten auf eine Eigenschaft, die nur einen Nachnamen aufweist.
  • In Schritt 1002 erfolgt eine Suche in Pfadnamentabelle 916 von 9C nach dem Anteil hoher Ebene des Pfades CONFIG/USER/users. Ein korrespondierender LDAP-Pfadname hoher Ebene, der von einer Reihe von DNs repräsentiert wird, z.B. bu=SunSoft zu o=Sun zu c=US, wird identifiziert. In der beschriebenen Ausführungsform gibt es fünf mögliche JSD-Pfadnamen hoher Ebene: drei im Namensraum MACHINE (platform, identifier und Profile) und zwei im Namensraum USER (users und groups). Sobald ein korrespondierender LDAP-Pfadname hoher Ebene identifiziert ist, erfolgt eine Suche in der LDAP-Datenbank „unter" dem identifizierten Pfad hoher Ebene in Schritt 1004. In obigem Beispiel wären dies sämtliche Daten unterhalb von bu=SunSoft. Die LDAP-Datenbank sucht nach dem Nachnamen-Attribut für Benutzer Jon Smith mithilfe des LDAP-Cursorsuchmechanismus unter LDAP. In der beschriebenen Ausführungsform verwendet sie Metaverzeichnis 914 aus 9B, um zu ermitteln, ob der Typ user ein Attribut aufweist, das dem Nachnamen entspricht.
  • In Schritt 1006 ruft der LDAP-Server das Attribut „ln" und dessen Wert ab, wie in Liste 906 in 9A gezeigt, und gibt die Daten an das JSD-Serverschema zurück. In Schritt 1008 erstellt das JSD-Serverschema eine Eigenschaft, die dem Attribut „ln" entspricht, und fügt den entsprechenden Wert ein. Diese Daten werden anschließend zum Client übertragen, der sie angefordert hat, und der Prozess ist abgeschlossen. In der beschriebenen Ausführungsform wird das Konfigurationsdatenelement, das anfangs nicht auf dem JSD-Server vorhanden war und vom LDAP-Server abgerufen wurde, nicht nur wie angefordert für den Client bereitgestellt, sondern auch verwendet, um den JSD-Server zu aktualisieren.
  • 11 ist ein Ablaufdiagramm eines Prozesses, in dem ein LDAP-Eintrag auf einen JSD-Eintrag abgebildet wird, gemäß einer Ausführungsform der vorliegenden Erfindung. Es beschreibt Schritt 806 von 8 detaillierter. Dieser Prozess verwendet die Schattenattribute, die erstmals in 9A in Attributliste 906 beschrieben sind. Man erinnere sich, dass 8 einen Prozess zum Initialisieren des JSD-Servers beim Starten beschrieb. In der beschriebenen Ausführungsform wird in diesem Prozess ein signifikanter Anteil der Daten des Namensraums USER im JSD-Schema mit Daten vom LDAP-Server beschickt. In anderen Ausführungsformen können einige der USER-Daten bereits auf dem JSD-Server resident sein, wie dies bei den Daten des Namensraums MACHINE der beschriebenen Ausführungsform der Fall ist. Weil das Volumen der Daten des Namensraums MACHINE erheblich geringer ist als das des Namensraums USER, ist es machbar und effizient, jene Informationen auf dem JSD-Server aufzubewahren. Die Daten des Namensraums USER residieren typischerweise in einem LDAP-Kontext (z.B. dem Kontext „JSD") und werden in den JSD-Server importiert oder in seinem Cache gespeichert.
  • In Schritt 1102 liest der LDAP-Server jeden Eintrag in dem oder den entsprechenden LDAP-Kontext(en). Wegen des „leichten" Designs und Protokolls von LDAP kann dies zügig erfolgen. In der beschriebenen Ausführungsform gibt es einen Kontext, der sämtliche Konfigurationsdaten enthält, die zum Beschicken des Namensraums USER im JSD-Serverschema benötigt werden. In Schritt 1104 unterscheidet oder separiert der LDAP-Server Schattenattribute und korrespondierende „Nicht-Schatten"-Attribute. Auch dies kann zügig erfolgen, weil die Schattenattribute ein eindeutiges Anfangssymbol aufweisen, beispielsweise einen Punkt, wie in den Attributen 908, 910 und 912 von 9A gezeigt. In Schritt 1106 benutzt der LDAP-Server das Nicht-Schatten-Attribut, um den Ist-Wert des Attributs oder Eintrags, z.B. „logon:jsmith", und das korrespondierende Schattenattribut für Anweisungen darüber, wo im JSD-Serverschema der Wert zu platzieren ist, und den Objekttyp zu ermitteln, in dem der Wert zu speichern ist. In Schritt 1108 akzeptiert der JSD-Server den Wert und verwendet einen geeigneten Objekt-Constructor, um ein Objekt zu erzeugen, das dem Attributwert entspricht, und speichert das Objekt in einem Blatt am unteren Ende des JSD-Pfades, der im Schattenattribut bereitgestellt ist. Durch Verwenden des Schattenattributs für den JSD-Speicherort und des Nicht-Schatten-Attributs für den Wert ermöglicht LDAP dem JSD-Server das Vermeiden langer Startzeiten.
  • Die vorliegende Erfindung, die primär Software und Datenformate oder -strukturen betrifft, setzt verschiedene computerimplementierte Vorgänge ein, die in Computersystemen gespeicherte Daten betreffen. Diese Vorgänge beinhalten, ohne darauf beschränkt zu sein, jene, die physikalische Manipulation physikalischer Größen erfordern. Üblicher-, aber nicht notwendigerweise nehmen diese Größen die Form elektrischer oder magnetischer Signale an, die in der Lage sind, gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert zu werden. Die hierin beschriebenen Vorgänge, die einen Teil der Erfindung bilden, sind nützliche Maschinenvorgänge. Die vorgenommenen Manipulationen werden oft mit Begriffen wie z.B. Erzeugen, Identifizieren, Laufen, Ermitteln, Vergleichen, Ausführen, Herunterladen oder Erkennen bezeichnet. Manchmal ist es vornehmlich aus Gründen der üblichen Verwendung praktisch, diese elektrischen oder magnetischen Signale als Bits, Werte, Elemente, Variablen, Zeichen, Datenelemente oder dergleichen zu bezeichnen. Man sollte jedoch nicht vergessen, dass all diese und ähnliche Begriffe den entsprechenden physikalischen Größen zuzuordnen sind und hauptsächlich praktische Bezeichnungen sind, die auf diese Größen angewendet werden.
  • Die vorliegende Erfindung betrifft auch ein Gerät, ein System oder eine Vorrichtung zur Durchführung oben erwähnter Vorgänge, wie z.B. den JSD-Server und den LDAP-Server. Diese Systeme können speziell für die gewünschten Zwecke aufgebaut sein, oder sie können ein Mehrzweckcomputer sein, der von einem Computerprogramm selektiv aktiviert oder konfiguriert wird, das im Computer gespeichert ist oder unter einem bestimmten Protokoll arbeitet, wie z.B. dem Lightweight Directory Access Protocol (LDAP). Die oben präsentierten Prozesse und Datenformate sind nicht von Natur aus auf einen bestimmten Computer oder eine sonstige Rechnervorrichtung bezogen. Insbesondere können verschiedene Mehrzweckcomputer mit Programmen benutzt werden, die gemäß der Ausführungen hierin geschrieben wurden, oder es kann alternativ praktischer sein, ein spezialisierteres Computersystem aufzubauen, um die geforderten Vorgänge auszuführen, wie z.B. einen Server-Computer, der aufgebaut ist, um als ein JSD-Server betrieben zu werden.
  • 12 ist ein Blockdiagramm eines Mehrzweck-Computersystems 1200, das zum Durchführen der Verarbeitung gemäß einer Ausführungsform der vorliegenden Erfindung geeignet ist. 12 stellt eine Ausführungsform eines Mehrzweck-Computersystems dar, das konfiguriert und erweitert werden kann, um als ein Server-Computer betrieben zu werden, wie z.B. als der LDAP-Verzeichnisserver oder der JSD-Server. Andere Computersystemarchitekturen und – konfigurationen können für das Durchführen der Verarbeitung der vorliegenden Erfindung benutzt werden. Computersystem 1200, das aus verschiedenen Subsystemen gebildet ist, die weiter unten beschrieben werden, beinhaltet mindestens ein Mikroprozessor-Subsystem (auch als Central Processing Unit, CPU bezeichnet) 1202. Das heißt, dass CPU 102 durch einen Einzelchip-Prozessor oder durch Mehrfach-Prozessoren implementiert werden kann. CPU 102 ist ein digitaler Mehrzweck-Prozessor, der den Betrieb des Computersystems 1200 steuert. Mithilfe von Befehlen, die aus dem Speicher abgerufen werden, steuert CPU 1202 den Empfang und die Manipulation von Eingangsdaten und gegebenenfalls die Ausgabe und Anzeige von Daten auf Ausgabegeräten.
  • Über einen Speicherbus 1208 ist CPU 1202 bidirektional mit einem ersten Primärspeicher 1204 gekoppelt, typischerweise einem Schreib-Lese-Speicher (Random Access Memory, RAM), und unidirektional mit einem zweiten Primärspeicherbereich 1206, typischerweise einem Lese-Speicher (Read-Only Memory, ROM). Wie auf dem Fachgebiet wohl bekannt ist, kann Primärspeicher 1204 als ein allgemeiner Speicherbereich und als ein Scratch-Pad-Speicher verwendet werden und kann auch benutzt werden, um Eingangsdaten und verarbeitete Daten zu speichern. Er kann außerdem Programmbefehle und -daten speichern, beispielsweise in der Form eines erweiterten LDAP-Attributs oder -Eintrags oder in der Form einer JSD-Hierarchie, wie in den obigen Figuren beschrieben. Dieses ist zusätzlich zu anderen Daten und Befehlen für Prozesse, die auf CPU 1202 laufen, und wird typischerweise für den schnellen Transfer von Daten und Befehlen in einer bidirektionalen Weise über den Speicherbus 1208 verwendet. Wie ebenfalls auf dem Fachgebiet wohl bekannt ist, beinhaltet Primärspeicher 1206 typischerweise grundlegende Betriebsbefehle, Programmcode, Daten und Objekte, die von der CPU 1202 verwendet werden, um ihre Funktionen auszuführen. Die Primärspeichergeräte 1204 und 1206 können beliebige geeignete computerlesbare Speichermedien enthalten, wie weiter unten beschrieben, abhängig davon, ob beispielsweise Datenzugriff bidirektional oder unidirektional sein muss. CPU 1202 kann auch häufig benötigte Daten direkt und zügig aus einem Cache-Speicher 1210 abrufen und in diesem speichern.
  • Ein entfernbares Massenspeichergerät 1212 stellt zusätzliche Datenspeicherkapazität für das Computersystem 1200 bereit und ist entweder bidirektional oder unidirektional über einen Peripheriebus 1214 mit CPU 1202 gekoppelt. Beispielsweise leitet ein bestimmtes Massenspeichergerät, das üblicherweise als ein CD-ROM bekannt ist, typischerweise Daten unidirektional zur CPU 1202, wohingegen eine Diskette Daten bidirektional zur CPU 1202 leiten kann. Die Daten im Namensraum MACHINE im JSD-Server können beispielsweise im entfernbaren Massen-speichergerät 1212 gespeichert werden. Speicher 1212 kann auch computerlesbare Medien wie z.B. Magnetband, Flash-Speicher, in einer Trägerwelle aufgenommene Signale, PC-CARDS, portable Massenspeichergeräte, polografische Speichergeräte und andere Speichergeräte beinhalten. Ein fester Massenspeicher 1216 stellt ebenfalls zusätzliche Datenspeicherkapazität bereit und ist über Peripheriebus 1214 bidirektional mit CPU 1202 gekoppelt. Das gängigste Beispiel für Massenspeicher 1216 ist ein Festplattenlaufwerk. Generell ist der Zugriff auf diese Medien langsamer als der Zugriff auf Primärspeicher 1204 und 1206. Massenspeicher 1212 und 1216 speichern im Allgemeinen zusätzliche Programmbefehle, Daten und dergleichen, die typischerweise nicht in aktivem Gebrauch durch die CPU 1202 sind. Man wird verstehen, dass die Informationen, die innerhalb von Massenspeicher 1212 und 1216 aufbewahrt werden, falls erforderlich, in standardisierter Weise als Teil von Primärspeicher 1204 (z.B. RAM) als virtueller Speicher integriert werden können.
  • Zusätzlich dazu, CPU 1202 Zugriff auf Speicher-Subsysteme bereitzustellen, wird der Peripheriebus 1214 benutzt, ebenfalls Zugriff auf andere Subsysteme und Geräte bereitzustellen. In der beschriebenen Ausführungsform beinhalten diese einen Anzeigemonitor 1218 und Adapter 1220, ein Druckergerät 1222, eine Netzwerkschnittstelle 1224, eine Zusatz-Ein-und-Ausgangsgeräte-Schnittstelle 1226, eine Soundkarte 1228 und Lautsprecher 1230 und, falls benötigt, andere Subsysteme.
  • Die Netzwerkschnittstelle 1224 gestattet es, CPU 1202, wie gezeigt, mit einem anderen Computer, einem Computernetzwerk oder einem Telekommunikationsnetz unter Verwendung einer Netzwerkverbindung zu koppeln. Es ist zu erwarten, dass die CPU 1202 durch die Netzwerkschnittstelle 1224 Informationen, z.B. Konfigurationsdaten, Anforderungen von Konfigurationsdaten oder Programmbefehle von einem anderen Netzwerk empfangen könnte oder im Verlauf der Durchführung der oben beschriebenen Verfahrensschritte Informationen an ein anderes Netzwerk ausgeben könnte. Informationen, die oft als eine Folge von Befehlen dargestellt sind, die auf einer CPU auszuführen sind, können beispielsweise in der Form eines Computerdatensignals, das in einer Trägerwelle aufgenommen ist, von einem anderen Netzwerk empfangen und an dieses ausgegeben werden. Eine Schnittstellenkarte oder ein ähnliches Gerät und geeignete Software, die von CPU 1202 implementiert sind, können benutzt werden, um das Computersystem 1200 mit einem externen Netzwerk zu verbinden und Daten gemäß Standardprotokollen zu übertragen. Das heißt, Verfahrens-Ausführungsformen der vorliegenden Erfindung können ausschließlich auf CPU 1202 ausgeführt werden oder können über ein Netzwerk wie z.B. das Internet, Intranet-Netzwerke oder lokale Netzwerke hinweg, wie z.B. in einem unternehmensweiten Netzwerk, in Verbindung mit einer entfernten CPU durchgeführt werden, die einen Teil der Verarbeitung übernimmt. Zusätzliche (nicht gezeigte) Massenspeichergeräte können auch über Netzwerkschnittstelle 1224 mit CPU 1202 verbunden werden.
  • Zusatz-E/A-Geräte-Schnittstelle 1226 repräsentiert allgemeine und angepasste Schnittstellen, die es der CPU 1202 gestatten, Daten an andere Geräten wie z.B Mikrofone, berührungsempfindliche Anzeigen, Transducerkartenlesegeräte, Bandlesegeräte, Sprach- oder Handschrifterkennungsgeräte, biometrische Lesegeräte, Kameras, portable Massenspeichergeräte und andere Computer zu senden und, typischer, von diesen zu empfangen
  • Ebenfalls mit der CPU 1202 gekoppelt ist über einen lokalen Bus 1234 ein Tastaturcontroller 1232 zum Empfangen von Eingaben von einer Tastatur 1236 oder einem Zeigegerät 1238 und Senden decodierter Symbole von der Tastatur 1236 oder dem Zeigegerät 1238 zur CPU 1202. Das Zeigegerät kann eine Maus, ein Griffel, ein Trackball oder ein Tablett sein und ist nützlich für die Interaktion mit einer grafischen Benutzeroberfläche.
  • Darüber hinaus betreffen Ausführungsformen der vorliegenden Erfindung ferner Computerspeicherprodukte einschließlich eines computerlesbaren Mediums, das Programmcode zur Durchführung verschiedener computerimplementierter Vorgänge enthält. Das computerlesbare Medium ist ein beliebiges Datenspeichergerät, das Daten speichern kann, die danach von einem Computersystem gelesen werden können. Bei den Medien und dem Programmcode kann es sich um jene handeln, die speziell für die Zwecke der vorliegenden Erfindung entwickelt und aufgebaut wurden, wie z.B. Abrufen von Konfigurationsdaten vom LDAP-Server, oder sie können von der Art sein, die dem Durchschnittsfachmann auf dem Gebiet der Computersoftware wohl bekannt ist. Zu den Beispielen computerlesbarer Medien zählen, ohne darauf beschränkt zu sein, alle oben erwähnten Medien: magnetische Medien wie z.B. Festplatten, Disketten und Magnetband, optische Medien wie z.B. CDs, magneto-optische Medien wie z.B. Floptical-Disks und speziell konfigurierte Hardwaregeräte wie z.B. anwendungsspezifische integrierte Schaltkreise (Applicationspecific integrated Circuits, ASICs), speicherprogrammierbare Geräte (PLDs) und ROM- und RAM-Geräte. Das computerlesbare Medium kann auch als ein Datensignal, das in einer Trägerwelle aufgenommen ist, über ein Netzwerk gekoppelter Computersysteme verteilt werden, sodass der computerlesbare Code in verteilter Weise gespeichert und ausgeführt wird. Zu den Beispielen für Programmcode zählen sowohl Maschinencode, wie er beispielsweise von einem Compiler erzeugt wird, oder Dateien, die Code höheren Niveaus enthalten, der mithilfe eines Interpreters ausgeführt werden kann.
  • Der Fachmann wird verstehen, dass die oben beschriebenen Hardware- und Softwareelemente von standardmäßiger Konzeption und ebensolchem Aufbau sind. Andere Computersysteme, die für die Verwendung mit der Erfindung geeignet sind, können zusätzliche oder weniger Subsysteme beinhalten. Darüber hinaus sind Speicherbus 1208, Peripheriebus 1214 und lokaler Bus 1234 beispielhaft für alle Verbindungsschemata, die zum Verknüpfen der Subsysteme dienen. Beispielsweise könnte ein lokaler Bus verwendet werden, um die CPU mit dem festen Massenspeicher 1216 und Anzeigeadapter 1220 zu verbinden. Das in 12 gezeigte Computersystem ist nur ein Beispiel eines Computersystems, das für die Verwendung mit der Erfindung geeignet ist.
  • Andere Computerarchitekturen, die unterschiedliche Konfigurationen von Subsystemen aufweisen, wie z.B. jene von Server-Computern, können auch genutzt werden.
  • Obgleich die vorgenannte Erfindung zum Zwecke der Verdeutlichung und Verständlichkeit recht ausführlich beschrieben worden ist, ist offensichtlich, dass gewisse Änderungen und Modifikationen innerhalb des Umfangs der beigefügten Ansprüche in die Praxis umgesetzt werden können. Außerdem ist zu beachten, dass es alternative Wege der Implementierung sowohl des Prozesses als auch der Vorrichtung der vorliegenden Erfindung gibt. Beispielsweise können, obgleich die Erfindung anhand von Konfigurationsdaten beschrieben ist, andere Arten von Nicht-Konfigurations-Daten ebenfalls in der Java-System-Datenbank gespeichert und von LDAP-Verzeichnisdiensten in Netzwerken auf diese zugegriffen werden, in denen die LDAP-Datenbank Daten des Nicht-Konfigurations-Typs speichert. In einem anderen Beispiel können einige der Konfigurationsdaten des Namensraums USER ständig auf dem JSD-Server residieren, weshalb diese Daten nicht vom LDAP-Server beim Starten des JSD-Servers importiert oder im Cache gespeichert werden müssen. In noch einem anderen Beispiel kann ein anderer Konfigurations-Aufbewahrungsort als das beschriebene JSD-Serverschema benutzt werden, um Konfigurationsdaten zu speichern. Das Konzept der Schattenattribute und der Abbildung von Pfaden hoher Ebene kann in Verbindung mit einem anderen Typ von Konfigurations-Aufbewahrungsort verwendet werden, Dement-sprechend sind die vorliegenden Ausführungsformen als beispielhaft und nicht einschränkend anzusehen, und die Erfindung ist nicht auf die hierin angegebenen Einzelheiten zu beschränken, sondern kann innerhalb des Umfangs und der Äquivalente der beigefügten Ansprüche modifiziert werden.

Claims (9)

  1. Verfahren des Abrufens von Werten von Konfigurationsdatenelementen von einem Lightweight Directory Access Protocol-Server (LDAP-Server) (108) zu einem Javabasierten Konfigurationsserver (301), wobei das Verfahren umfasst: Durchsuchen (1002) einer Speicherortabgleichdatei (916) nach einer Übereinstimmung zwischen einem Pfad hoher Ebene in einem Java-basierten Konfigurationsserver und einer bestimmten LDAP-Adresse, Durchsuchen (1004) eines Abschnitts des LDAP-Servers nach einem oder mehreren Attributen von einem oder mehreren LDAP-Einträgen unter Verwendung der bestimmten LDAP-Adresse zur Bestimmung des Abschnitts des LDAP-Servers, der zu durchsuchen ist Abrufen (1006) eines oder mehrerer Ist-Werte für das eine oder die mehreren Attribute und Abrufen von Werten für ein oder mehrere Schattenattribute, die dem einen oder den mehreren Attributen entsprechen, wobei die Schattenattribute anzeigen, wo in einem Java-basierten Konfigurationsserverschema ein bestimmter Ist-Wert zu platzieren ist, und Senden (1008) des einen oder der mehreren Ist-Werte zum Java-basierten Konfigurationsserver und Platzieren des einen oder der mehreren Ist-Werte im Java-basierten Konfigurationsserverschema als Konfigurationsdatenelemente basierend auf den Werten für das eine oder die mehreren Schattenattribute, sodass der eine oder die mehreren Ist-Werte Client-Computern in einer Java-Betriebssystemumgebung verfügbar gemacht werden.
  2. Verfahren nach Anspruch 1, wobei das Durchsuchen (1002) einer Speicherortabgleichdatei (916) ferner das Zugreifen auf ein Netzwerkcomputer-Verwaltungstool umfasst, welches die Speicherortabgleichdatei enthält.
  3. Verfahren nach Anspruch 1, wobei das Durchsuchen (1004) eines Abschnitts des LDAP-Servers ferner das Aufrufen einer LDAP-Suchfunktion und das Übergeben eines LDAP-Attributs als ein Parameter umfasst.
  4. Verfahren nach Anspruch 1, wobei die Speicherortabgleichdatei eine Mehrzahl von Pfaden im Java-basierten Konfigurationsserver und eine entsprechende Mehrzahl von LDAP-Adressen beinhaltet.
  5. Verfahren nach Anspruch 1, das ferner das Unterscheiden der Attribute von den Schattenattributen (1104) umfasst.
  6. Verfahren nach Anspruch 1, wobei die Schattenattribute einen Pfad bzgl. der Konfigurationsdatenbank und einen Eigenschaftsnamen enthalten, der der Konfigurationsdatenbank zugeordnet ist.
  7. Verfahren nach Anspruch 6, wobei das Schattenattribut ferner einen Klassennamen enthält.
  8. Computerprogrammcode, der von einem Computer ausführbar ist, um das Verfahren nach einem der Ansprüche 1 bis 7 bereitzustellen.
  9. Computerprogrammprodukt, das ein computerlesbares Medium umfasst, wobei ein computerlesbares Medium Computerprogrammcode nach Anspruch 8 beinhaltet.
DE60019839T 1999-01-29 2000-01-12 Verfahren zum Austauch von Daten zwischen einer Javasystemdatenbank und einem LDAP Verzeichnis Expired - Lifetime DE60019839T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/239,596 US6366954B1 (en) 1998-05-14 1999-01-29 Method and data format for exchanging data between a Java system database entry and an LDAP directory service
US239596 1999-01-29

Publications (2)

Publication Number Publication Date
DE60019839D1 DE60019839D1 (de) 2005-06-09
DE60019839T2 true DE60019839T2 (de) 2005-10-06

Family

ID=22902861

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60019839T Expired - Lifetime DE60019839T2 (de) 1999-01-29 2000-01-12 Verfahren zum Austauch von Daten zwischen einer Javasystemdatenbank und einem LDAP Verzeichnis

Country Status (4)

Country Link
US (1) US6366954B1 (de)
EP (1) EP1039380B1 (de)
JP (1) JP4771321B2 (de)
DE (1) DE60019839T2 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4159181B2 (ja) * 1999-05-24 2008-10-01 沖電気工業株式会社 サービス属性管理装置
US6587874B1 (en) * 1999-06-29 2003-07-01 Cisco Technology, Inc. Directory assisted autoinstall of network devices
US6636961B1 (en) * 1999-07-09 2003-10-21 International Business Machines Corporation System and method for configuring personal systems
US6496977B1 (en) * 1999-10-21 2002-12-17 International Business Machines Corporation Method and system for implementing network filesystem-based aid for computer operating system upgrades
US6947953B2 (en) * 1999-11-05 2005-09-20 The Board Of Trustees Of The Leland Stanford Junior University Internet-linked system for directory protocol based data storage, retrieval and analysis
US6490619B1 (en) * 1999-12-07 2002-12-03 International Business Machines Corporation Method and system for managing multiple lightweight directory access protocol directory servers
US6732172B1 (en) * 2000-01-04 2004-05-04 International Business Machines Corporation Method and system for providing cross-platform access to an internet user in a heterogeneous network environment
US20020013827A1 (en) * 2000-05-18 2002-01-31 Edstrom Claes G.R. Personal service environment management apparatus and methods
US6685090B2 (en) * 2000-05-24 2004-02-03 Fujitsu Limited Apparatus and method for multi-profile managing and recording medium storing multi-profile managing program
FR2809511B1 (fr) * 2000-05-26 2003-09-12 Bull Sa Systeme et procede de gestion des transactions de composants ejb dans un annuaire accede par ldap
US20080040550A1 (en) * 2000-07-07 2008-02-14 Lindner David J Method and apparatus for providing enhanced access to a lightweight directory access protocol (ldap) directory server
US20020029203A1 (en) * 2000-09-01 2002-03-07 Pelland David M. Electronic personal assistant with personality adaptation
US6983269B2 (en) * 2000-12-19 2006-01-03 International Business Machines Corporation Apparatus for indirect directory searches and method therefor
US6973494B2 (en) * 2000-12-29 2005-12-06 Bellsouth Intellectual Property Corporation System and method for bi-directional mapping between customer identity and network elements
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6862692B2 (en) * 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US7107595B2 (en) * 2001-04-05 2006-09-12 Hewlett-Packard Development Company, L.P. Mechanism for mapping Java objects onto an LDAP repository
US7016976B2 (en) * 2001-05-31 2006-03-21 Sun Microsystems, Inc. UniqueID-based addressing in a directory server
US7519575B1 (en) * 2001-08-31 2009-04-14 Novell, Inc. Method and apparatus for presenting, searching, and viewing directories
DE10149977A1 (de) * 2001-10-10 2003-04-24 Siemens Ag Verfahren zum Zugriff auf Nutzerdaten, zugehörige Datenverarbeitungsanlage, zugehöriges Programm und zugehörige Datenstruktur
US6915287B1 (en) * 2001-12-13 2005-07-05 Novell, Inc. System, method and computer program product for migrating data from one database to another database
US7107615B2 (en) * 2002-01-30 2006-09-12 Hewlett-Packard Development Company, L.P. Parameter verification in an authentication system and method
US7917466B2 (en) * 2002-02-21 2011-03-29 Hewlett-Packard Development Company, L.P. Automatically processing digital assets of a digital camera
IL166717A0 (en) * 2002-08-26 2006-01-15 Computer Ass Think Inc Web services apparatus and methods
US20040205240A1 (en) * 2002-11-21 2004-10-14 International Business Machines Corporation Method, system, and computer program product for providing a four-tier corba architecture
US7184995B2 (en) * 2003-02-26 2007-02-27 America Online Inc. Data interoperability between open standard directory service and proprietary database
JP2004295867A (ja) * 2003-03-07 2004-10-21 Ricoh Co Ltd 情報処理装置,画像形成装置および情報処理方法
US7539771B2 (en) * 2003-06-06 2009-05-26 Microsoft Corporation Organizational locality in prefix-based structured peer-to-peer overlays
US20050015383A1 (en) * 2003-07-15 2005-01-20 Microsoft Corporation Method and system for accessing database objects in polyarchical relationships using data path expressions
US7549149B2 (en) * 2003-08-21 2009-06-16 International Business Machines Corporation Automatic software distribution and installation in a multi-tiered computer network
US20050234932A1 (en) * 2004-04-08 2005-10-20 Wong Daniel M Method and apparatus for facilitating secure centralized administration of databases
US7760746B2 (en) * 2004-11-30 2010-07-20 Computer Associates Think, Inc. Cascading configuration using one or more configuration trees
US7797332B1 (en) * 2006-01-17 2010-09-14 Fortinet, Inc. Computer-implemented method and device for providing security on a computer network
US8606832B2 (en) * 2006-10-24 2013-12-10 Red Hat, Inc. Dynamic management of groups
US8738658B2 (en) * 2007-06-04 2014-05-27 Hewlett-Packard Development Company, L.P. Method for using paths in a directory for locating objects
US8156484B2 (en) * 2007-08-22 2012-04-10 International Business Machines Corporation LDAP server performance object creation and use thereof
JP5136159B2 (ja) * 2008-03-31 2013-02-06 富士通株式会社 構成情報管理装置、構成情報管理プログラム及び構成情報管理方法
EP2131293A1 (de) 2008-06-03 2009-12-09 Alcatel Lucent Verfahren zur Abbildung eines X500-Datenmodells in einer relationalen Datenbank
JP5244743B2 (ja) * 2009-08-31 2013-07-24 京セラドキュメントソリューションズ株式会社 画像形成装置およびインストール方法
US10404710B2 (en) * 2016-03-30 2019-09-03 Change Healthcare Holdings, Llc Methods and apparatuses for providing improved directory services
CN112114885A (zh) * 2020-09-15 2020-12-22 青岛海信移动通信技术股份有限公司 一种终端、控制设备及服务处理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204726A (ja) * 1992-01-24 1993-08-13 Chugoku Nippon Denki Software Kk データファイル変換装置
US5819283A (en) * 1993-05-11 1998-10-06 Apple Computer, Inc. Method and system for the extensibility of objects
US5873093A (en) * 1994-12-07 1999-02-16 Next Software, Inc. Method and apparatus for mapping objects to a data source
US5826000A (en) * 1996-02-29 1998-10-20 Sun Microsystems, Inc. System and method for automatic configuration of home network computers
US6119118A (en) * 1996-05-10 2000-09-12 Apple Computer, Inc. Method and system for extending file system metadata
DE69720857T2 (de) * 1996-05-31 2004-02-05 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Systeme und Verfahren zum Betrieb einer Netzwerk-Verwaltungsstation
US6253254B1 (en) * 1996-07-11 2001-06-26 Ansgar Erlenkoetter Hyper media object management
JP3097844B2 (ja) * 1998-03-06 2000-10-10 株式会社ボッシュオートモーティブシステム 平行軸差動歯車装置
US6052720A (en) * 1998-05-14 2000-04-18 Sun Microsystems, Inc. Generic schema for storing configuration information on a server computer
US6119157A (en) * 1998-05-14 2000-09-12 Sun Microsystems, Inc. Protocol for exchanging configuration data in a computer network

Also Published As

Publication number Publication date
JP4771321B2 (ja) 2011-09-14
EP1039380A2 (de) 2000-09-27
EP1039380A3 (de) 2003-11-05
JP2000311123A (ja) 2000-11-07
US6366954B1 (en) 2002-04-02
EP1039380B1 (de) 2005-05-04
DE60019839D1 (de) 2005-06-09

Similar Documents

Publication Publication Date Title
DE60019839T2 (de) Verfahren zum Austauch von Daten zwischen einer Javasystemdatenbank und einem LDAP Verzeichnis
DE69936818T2 (de) Protokoll zum Austausch von Konfigurationsdaten in einem Computernetzwerk
DE60009489T2 (de) Vorrichtung und verfahren zum verwalten der verteilung von inhalten zu einem gerät
EP1258812B1 (de) Virtuelle Datenbank heterogener Datenstrukturen
DE69719564T2 (de) Dynamischer dateiverzeichnisdienst
US7484219B2 (en) Synchronizing centralized data store from distributed independent data stores using fixed application programming interfaces
US6697808B1 (en) Method and system for performing advanced object searching of a metadata repository used by a decision support system
US7941785B2 (en) System and method for managing information objects
US6253217B1 (en) Active properties for dynamic document management system configuration
DE60016772T2 (de) Verfahren und system für die publikation und revision von hierarchisch organisierten sätzen von statischen intranet- und internet-seiten
DE10113577A1 (de) Verfahren, Computerprogrammprodukt und Computersystem zur Unterstützung mehrerer Anwendungssysteme mittels eines einzelnen Datenbank-Systems
US6772137B1 (en) Centralized maintenance and management of objects in a reporting system
DE10131192A1 (de) Schnittstelle zu Verzeichnisunterstützungssystemen unter Verwendung des Lightweight Directory Access Protocol
DE112011101508T5 (de) Zentrale Steuerung von Datenbankanwendungen
DE60003278T2 (de) Hierarchische Auflösung von Adressen in einem Datennetzwerk
DE112019005881T5 (de) Kryptografische überprüfung von datenbanktransaktionen
DE10115586A1 (de) Verfahren zur Erzeugung von Internetinformationen
EP3563261B1 (de) Bitsequenzbasiertes datenklassifikationssystem
EP1031100B1 (de) Verfahren zum verwalten von dokumenten
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE69932147T2 (de) Kommunikationseinheit und Kommunikationsverfahren mit Profilverwaltung
EP1276056B1 (de) Verfahren zum Verwalten einer Datenbank
DE112021003031T5 (de) Archivieren von nur-beschleuniger-datenbanktabellen
DE112021000621T5 (de) Primärschlüssel mit mehreren werten für eine mehrzahl von eindeutigen kennungen von entitäten
DE112019005879T5 (de) Indizes für nicht materialisierte ansichten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition