Grundlegendes zur Rolle von Verzeichnisdiensten im Vergleich zu relationalen Datenbanken (Engl. Originaltitel: Understanding the Role of Directory Services Versus Relational Databases) Datum: Februar 2001 Dieses Dokument untersucht die Rolle von Verzeichnisdiensten und relationalen Datenbanken und bietet einen konzeptuellen Überblick über die Optimierung dieser Ressourcen. Einführung Den meisten Unternehmen ist klar, dass die Installation, Verwendung und Wartung verteilter Systeme sich kostentechnisch auf das Endergebnis auswirken. Die meisten laufenden Kosten, so z. B. für tägliche Datensicherungen und die Benutzerverwaltung, sind relativ einfach nachzuvollziehen und vorherzusagen. Andere Kosten sind dagegen weniger offenkundig. Informationsvermehrung. Mittlerweile gibt es immer mehr anwendungsspezifische Verzeichnisse, die ähnliche Informationen zu Benutzern, Computern und anderen Netzwerkressourcen enthalten. In EMail-Systemen gibt es beispielsweise Adressbücher, die nahezu dieselben Benutzerinformationen wie ERP-Systeme (Enterprise Resource Planning) enthalten. Alle Verzeichnisse müssen auf dem aktuellen Stand bleiben und miteinander synchronisiert werden. Neben den Problemen, die sich ergeben, wenn die Synchronisierung der Informationen nicht gewährleistet werden kann, kann das Bestimmen der Ursache von Synchronisierungsproblemen (und Wiederherstellen der Verzeichniskonsistenz) sehr kostspielig werden. Clientkonfiguration. Dafür zu sorgen, dass Clientcomputer stets über die richtige installierte Software verfügen und ordnungsgemäß konfiguriert sind, ist ein wesentlicher und expandierender Kostenfaktor. Wenn z. B. ein Mitarbeiter in eine andere Abteilung wechselt, muss ein Administrator einige Anwendungen löschen und andere hinzufügen und dabei sicherstellen, dass alle ordnungsgemäß konfiguriert werden. Fehlerhafte Konfigurationen verursachen Probleme, die von Dienstunterbrechungen zu Anwendungen reichen, die Unternehmensdaten durch das Umsetzen veralteter Geschäftsregeln unbeabsichtigt beschädigen. Serverkonfiguration. Zum Zeitpunkt der Clientbereitstellung müssen Administratoren bei vielen Anwendungen Clients bestimmten Ressourcen auf der Serverseite zuordnen, wie z. B. Datenbanken und Anwendungskomponenten. Da Clients an bestimmte Computer gebunden sind, kann sich diese Art der statischen Konfiguration negativ auf die Dienstebenen auswirken. Benutzer müssen auf den Neustart der ausgefallenen Computer warten, bevor sie ihre Arbeit fortsetzen können. Wenn Benutzer servergespeicherte Profile verwenden, bleiben sie weiterhin mit denselben Ressourcen verbunden, auch wenn "nähere" Ressourcen vorhanden sind, die dieselben Dienste effizienter bereitstellen können. Wenn darüber hinaus die Serverlast steigt, müssen Benutzer mit langsameren Antwortzeiten rechnen, selbst wenn andere Server überschüssige Kapazitäten aufweisen. Fehlende Synergien zwischen Anwendungen. In den meisten Unternehmensinfrastrukturen gibt es sehr wenige Synergien zwischen Anwendungen, den zu Benutzern gespeicherten Informationen und Infrastrukturelementen wie Netzwerken. Die Anwendungen eines Mitarbeiters können dessen Wechsel zwischen verschiedenen Aufgaben im Unternehmen nicht erkennen und nicht entsprechend neu konfiguriert werden. Oder Teilnehmer einer wichtigen Videokonferenz über das Internet sehen wackelnde Bilder mit verzerrtem Klang, da andere Netzwerkbenutzer durch das Downloaden von Spielen Bandbreite belegen. Um diesen Problemen zu begegnen, benötigen Unternehmen dynamische Anwendungen, die bewusster auf die Umgebung reagieren, in der sie bereitgestellt werden, Änderungen erkennen und Anpassungen ermöglichen sowie Informationen über sich selbst mit anderen Anwendungen gemeinsam nutzen. Die ersten Ansätze basierten auf relationalen Datenbankarchitekturen, die jedoch großen Einschränkungen unterlagen. Aktuelle Weiterentwicklungen der Verzeichnisdiensttechnologien versprechen eine komplettere Lösung. Wie gewöhnlich handelt es sich nicht um sich gegenseitig ausschließende Optionen, so dass Systemarchitekten wissen müssen, wie sie die Rollen von Datenbanken und Verzeichnisdiensten in ihren Netzwerken gewichten. Grundlegendes zum Verzeichnisentwurf Um die Rolle von Verzeichnisdiensten im Vergleich zu Datenbanken zu verstehen, ist es hilfreich, die fünf Hauptmerkmale eines modernen Verzeichnisses zu betrachten. Hierarchische Datenorganisation Verzeichnisdienste organisieren Daten in einer hierarchischen Struktur. Innerhalb der Struktur gibt es zwei Typen von Entitäten: Organisationseinheiten (Organizational Units, OUs) und Objekte. Organisationseinheiten sind Container, in denen sowohl Organisationseinheiten als auch Objekte enthalten sein können. Eine passende Analogie ist ein herkömmliches Dateisystem mit Verzeichnissen (oder Ordnern wie beim Betriebssystem Microsoft Windows® 2000) und Dateien. Verzeichnisse können andere Verzeichnisse enthalten, die als Unterverzeichnisse bezeichnet werden. Unterverzeichnisse schließlich enthalten Dateien. Abbildung 1: Hierarchische Datenorganisation Ein solches Modell ist aus mehreren Gründen sinnvoll: Ein auf Containern basierendes Modell erleichtert die Verwaltung dadurch, dass zusammengehörende Entitäten gruppiert werden können. Dieser Vorteil wird nachvollziehbarer, wenn Sie sich vorstellen, wie schwierig die Verwaltung sehr großer Dateilisten wäre, wenn es nicht das Konzept der Unterverzeichnisse gäbe. Zur weiteren Erleichterung der Verwaltung können mithilfe der Verzeichnishierarchie Aspekte eines Netzwerkes oder einer Organisationsstruktur gespiegelt und modelliert werden. Letztlich kann die Hierarchie hinsichtlich des Wissens genutzt werden, das ihre Struktur repräsentiert. Wenn es beispielsweise im Verzeichnis die Organisationseinheit Alle Benutzer gibt und Vertrieb eine untergeordnete Organisationseinheit von Alle Benutzer ist, können Anwendungen folgern, dass die Mitglieder der Organisationseinheit Vertrieb Benutzer sind (und demzufolge verschiedene Merkmale anderer Benutzer erben sollten), jedoch zu einer Zusammenstellung gehören, die sich auf bestimmte Weise von anderen Benutzern in der Unterstruktur unterscheidet (und deshalb anders behandelt werden sollte). Die Leistungsfähigkeit einer mit einer baumartigen Struktur arbeiteten Organisation und die Rolle der Vererbung werden nachfolgend in den Abschnitten Abgestufte Sicherheit und Richtlinienbasierte Verwaltung weiter erläutert. Im Gegensatz dazu speichern Datenbanken Informationen in linearen Tabellen ohne inhärente Mechanismen zur Wiedergabe der Organisationsstruktur der Daten. Objektorientierte Entitätsmodellierung Verzeichnisdienste bilden Netzwerkentitäten als Objekte ab, die Attribute enthalten. Innerhalb eines gegebenen Verzeichnisses (und sogar auf der Organisationseinheitsebene) kann es viele verschiedene Objekttypen geben. Jeder Objekttyp (bzw. jede Objektklasse) kann eine beliebige Menge von Attributen enthalten, die erforderlich sind, um die Entität exakt zu modellieren, die von dem Objekt repräsentiert wird. Alle gängigen Verzeichnisdienste ermöglichen Administratoren das Erstellen neuer Objektklassen sowie das Erweitern vordefinierter Klassen (die z. B. Benutzer und Computer repräsentieren), die spezifische für ein einzelnes Unternehmen geltende Attribute enthalten. Durch die Modellierung von Netzwerkelementen (wie z. B. Benutzern und Computern) als Objekte und die Unterstützung verschiedener Objektklassen innerhalb einer einzelnen Struktur ergibt sich eine überaus flexible Möglichkeit, Informationen über die verschiedenen Entitäten in einem Netzwerk zu speichern. Im Gegensatz dazu erfordern relationale Datenbanken in der Regel für jeden Objekttyp eine neue Tabelle. Die Abbildung der in Containern enthaltenen Beziehungen wäre noch schwieriger. Unterstützung flexibler Abfragen Vor dem Hintergrund der Flexibilität von Verzeichnisdiensten bei der Speicherung von Daten und Modellentitäten müssen diese auch flexible Möglichkeiten zur Datensuche innerhalb der Struktur bieten. Insbesondere Verzeichnisse müssen einen einfachen Weg zum Lokalisieren von Objekten und Attributen innerhalb eines Interessenbereichs bereitstellen. Bereiche müssen den Speicherort innerhalb der Struktur (wie z. B. alle Objekte in der Organisationseinheit Marketing) und Objektklassen (wie z. B. alle Objekte der Klasse Benutzer) enthalten, und zwar unabhängig davon, wo sich diese in der Hierarchie befinden. Aufgrund der Unterstützung des Protokolls LDAP (Light-weight Directory Access Protocol) können alle gängigen Verzeichnisdienste diese Arten von Suchen auf einfache und effiziente Weise unterstützen. Die Einfachheit rührt von den Merkmalen der LDAP-API und die Effizienz von der Tatsache, dass die meisten Anbieter von Verzeichnisdiensten den Administratoren die Angabe ermöglichen, welche Attribute als Indizes im zugrunde liegenden Datenspeicher behandelt werden sollen. Durch eine solche Indizierung können Suchen nach "allen Benutzern, die Vorgesetzte sind und eine Ausgabenbegrenzung von über € 5000 haben" schnell erfolgen, ohne dass die gesamte Struktur durchsucht werden muss. Diese Art der Indizierung und Effizienz ist besonders wichtig, da die IT-Branche Verzeichnisdienste mit zehn Millionen Einträgen und mehr bereitstellt. Anbieter wie Microsoft bieten zudem andere Arten von Schnittstellen für den Datenzugriff, wie z. B. ADSI (Active Directory Service Interfaces) für auf dem COM-Modell (Component Object Model) basierende Suchen und ADO (Advanced Data Objects), die eine SQL-gemäße Syntax für den Zugriff auf Verzeichnisdaten bereitstellt. Außerdem arbeitet die IT-Branche an der Nutzung der Weiterentwicklungen der XMLTechnologien, um eine noch größere Flexibilität zu ermöglichen. Wenngleich es schwierig ist, die Ansicht zu vertreten, dass relationale Datenbanken keine flexible Abfrageunterstützung bieten, lässt sich mit Sicherheit sagen, dass Verzeichnisse Schnittstellen bereitstellen, die mindestens so flexibel und überaus angepasst an die besonderes Weise sind, in der Verzeichnisdienste Informationen speichern und modellieren. Abgestufte Sicherheit Da die gemeinsame Nutzung von Informationen ein Hauptanliegen ist, werden Verzeichnisdienste im Allgemeinen so bereitgestellt, dass allen Benutzern und Anwendungen ein Zugriff erlaubt wird, die das Verzeichnis lokalisieren und sich mit diesem über den TCP/IP-Anschluss 389 verbinden können. Um ein Chaos zu vermeiden und ordnungsgemäße Sicherheitsprüfungen zu aktivieren, weisen Verzeichnisse vier wichtige Merkmale auf: Bevor Benutzer auf Daten zugreifen können, müssen sie Anmeldeinformationen (Benutzernamen und Kennwort) angeben, mit deren Hilfe das Verzeichnis die Identität der Person überprüfen kann, die den Zugriff wünscht. Nach der Überprüfung verwendet der Verzeichnisdienst die Anmeldeinformationen, um die Sicherheitsfunktionen für alle Vorgänge (wie z. B. Lese- und Aktualisierungsvorgänge) auf der Ebene einzelner Objekte und Attribute zu aktivieren. Besitzer von Objekten und Organisationseinheiten können bestimmte Berechtigungen über ihre Daten an andere authentifizierte Benutzer delegieren. Dadurch kann ein Administrator die Berechtigung zum Hinzufügen von Benutzern zur Organisationseinheit Marketing an ein vertrauenswürdiges Mitglied der Marketingabteilung delegieren. Wenn ein Benutzer keine Anmeldeinformationen angibt, wird er als anonymer Benutzer behandelt, der nur auf Daten zugreifen darf, die im Verzeichnis ausdrücklich als "öffentlich" gekennzeichnet wurden. Abbildung 2: Active Directory aktiviert Sicherheitsfunktionen auf Attributebene Im Gegensatz dazu aktivieren Datenbanken in der Regel die Sicherheitsfunktionen nur auf der Spaltenebene und bieten keine vordefinierten Möglichkeiten der Delegierung. Wenn also ein Benutzer die Werte Gehalt anzeigen darf, kann er die Gehaltswerte aus allen Zeilen der Tabelle abrufen. Dieses Sicherheitsmodell ist geeignet, wenn nur "bekannte" Anwendungen (d. h. Anwendungen, die zentral überwacht und gesteuert werden können) Zugriff auf die Daten haben, denen vertraut werden kann, dass Benutzer mit unzureichenden Berechtigungen keinen Zugriff erhalten. Hier verfügt die Anwendung über einen Zugriff auf wesentlich mehr Informationen als unmittelbar der Benutzer. Sie enthält jedoch Geschäftsregeln, die eine abgestufteres Zugriffssteuerungsmodell als die Datenbank selbst implementieren. Da Verzeichnisdienste für die gemeinsame Nutzung von Daten eingesetzt und üblicherweise so bereitgestellt werden, dass ein umfassender Datenzugriff sichergestellt ist, gibt es leider keine Möglichkeit, die Identität aller Anwendungen zu überprüfen, die Informationen anfordern, und festzustellen, was diese Anwendungen mit den Daten nach dem Abruf anfangen. Aus diesem Grund muss der Verzeichnisdienst selbst die Sicherheitsfunktionen aktivieren, anstatt darauf zu bauen, dass die Anwendungen diese Aufgaben übernehmen. Darüber hinaus kann es Fälle geben, in denen der Besitzer der Daten in der Lage sein muss, einzelne Teile der Daten zu sperren, (z. B. Durchwahlnummer des Vorstandsvorsitzenden in einem Verzeichnis, in dem Telefonnummern allgemein zugänglich sind), um eine Granularität der Steuerung zu erreichen, die erforderlich ist, um diese Klasse von Daten für die gemeinsame Nutzung verfügbar zu machen. Wenn es beim Beispiel der Telefonnummer des Vorstandsvorsitzenden keine Sicherheitsfunktionen auf Attributebene gäbe, müsste der Zugriff auf alle Telefonnummern in allen Anwendungen verweigert werden. Wichtig ist der Hinweis, dass Administratoren nicht den einzelnen Attributen aller Objekte bestimmte Zugriffssteuerungsrechte zuweisen müssen. Stattdessen können sie einer Organisationseinheit ein Zugriffsrecht erteilen, die in der Struktur höher angesiedelt ist. Anschließend können sie dieses Recht nach unten an die Objekte, die in der Organisationseinheit, der das Recht erteilt wurde, enthalten sind, sowie an Organisationseinheiten, die der Organisationseinheit untergeordnet sind (und an dieser untergeordnete Organisationseinheiten usw.) vererben. Dadurch können Administratoren ein ideales Gleichgewicht bei der übergeordneten Verwaltung von Berechtigungen und der Fähigkeit zur bedarfsorientierten Erteilung von Berechtigungen finden. Multimasterreplikation Die vielleicht prägendste Eigenschaft von Verzeichnisdiensten ist die Weise, in der Daten auf andere Verzeichnisserver im Netzwerk repliziert werden. Insbesondere die modernsten Verzeichnisse (die größte Ausnahme ist das iPlanet-Verzeichnis) arbeiten mit einer so genannten Multimasterreplikation. Dieser Begriff bezieht sich auf die Tatsache, dass es in einem Netzwerk mehrere Replikate eines bestimmten Verzeichnisses gibt und dass alle Verzeichnisvorgänge (wie z. B. Lese- und Aktualisierungsvorgänge) in einem beliebigen Replikat ausgeführt werden können, selbst wenn dieses Replikat keinen Netzwerkkontakt mit den anderen Replikaten hat. Dies bedeutet, dass alle Replikate eine vollständige Kopie der Daten (einschließlich Zugriffssteuerungsinformationen) speichern und ein Protokoll aller Aktualisierungen aufzeichnen müssen, so dass Replikate, die zum Zeitpunkt der Aktualisierung nicht erreichbar waren, an einem bestimmten künftigen Zeitpunkt kontaktiert und aktualisiert werden können. Abbildung 3: Active Directory unterstützt die Multimasterreplikation, um Flexibilität, hohe Verfügbarkeit und Systemleistung zu ermöglichen Wenngleich die meisten relationalen Datenbanken eine Form der Multimasteraktualisierung unterstützen, werden diese doch eher in Einzelmasterkonfigurationen bereitgestellt, die synchrone transaktionsgesteuerte Aktualisierungen ermöglichen. Transaktionen werden entwurfsbedingt nicht in MultimasterVerzeichnisarchitekturen implementiert, da gegebenenfalls nicht alle Replikate zur gleichen Zeit erreichbar sind, so dass die Mehrzahl der Transaktionen abbrechen würde, da keine Sperren für alle Replikate aktiviert werden können. Dies bedeutet, dass Verzeichnisdienste die Funktionsmöglichkeiten von Transaktionen gegen einen Datenzugriff mit höherer Verfügbarkeit und die Fähigkeit zur Fortsetzung lokaler Vorgänge (z. B. in einer Zweigstelle) trotz Verlusts der Konnektivität mit einigen oder allen Servern im Netzwerk eintauschen. Das Aufgeben des Transaktionsschutzes hat jedoch auch Nachteile. Dazu zählen bei den Verzeichnisdiensten Folgende: Es gibt keine Möglichkeit, ein Objekt oder seine Attribute für eine Aktualisierung in allen Replikaten zu sperren. Bei Transaktionen werden solche Sperren in der Regel automatisch aktiviert. Demzufolge gibt es keine Möglichkeit der Aktualisierung einer Zusammenstellung von Objekten, wenn Unteilbarkeits- und Isolationssemantiken aktiviert sind. Dieselben Daten werden gegebenenfalls im selben Replikationsintervall in zwei Replikaten durch zwei verschiedene Anwendungen aktualisiert, was zu einer Kollision führt. Verzeichnisse lösen Kollisionen auf der Attributebene automatisch auf, indem eine "siegreiche" Aktualisierung (auf eher willkürliche Weise) ausgewählt wird, woraufhin diese Aktualisierung an alle Replikate weitergegeben wird, welche die "unterlegene" Aktualisierung enthalten. In beiden Fällen verfügen alle Replikate letztlich über dieselben Werte für alle Objekte und Attribute. Es gibt jedoch keine Möglichkeit, um sicherzustellen, dass andere Replikate dieselbe Menge an Aktualisierungen in derselben Reihenfolge wie das auslösende Replikat anzeigen oder dass alle Replikate eine gegebene Aktualisierung anzeigen (dies bedeutet, dass das Replikat, dessen Aktualisierung bei einer Kollision zum "Sieger" erklärt wurde, die "unterlegene" Aktualisierung nicht anzeigen kann). Dies bedeutet, dass zwar die Attributwerte in den Replikaten identisch sind, jedoch aus der Sicht der referenziellen Integrität oder Anwendungsrichtigkeit inkonsistent sind. Eine Anwendung kann z. B. "Kandidat = Gerhard Schröder" und "Partei = SPD" festlegen, während eine andere Anwendung "Kandidat = Angela Merkel" und "Partei = CDU" festlegen kann. Aufgrund von Kollisionen kann dann "Kandidat = Gerhard Schröder" und "Partei = CDU" das Ergebnis sein, auf das sich die beiden Replikate einigen. Ähnliche, jedoch vorübergehende Bedingungen können sich auch aus der Tatsache ergeben, dass Aktualisierungen, die sich auf mehrere Objekte auswirken, nicht mithilfe von Transaktionen zwischen Servern übertragen werden. Dies bedeutet, dass Anwendungen eine Gruppe von Objekten lesen können, die gerade mittels Replikation von einem anderen Server aktualisiert werden, und dadurch einen Zwischen- und somit inkonsistenten Datenstatus empfangen. Damit der Leser daraus nicht schließt, dass Verzeichnisdienste eine erhebliche Entwurfsfehlerstelle haben, soll Folgendes angemerkt werden: Ein solches Verhalten ist absolut erforderlich, um den Betrieb zu unterstützen, wenn Replikate vom Rest des Netzwerkes getrennt sind. Ein vom Netzwerk getrennter Betrieb ist überaus wichtig für Vorgänge wie das Hinzufügen neuer Benutzer oder das Zurücksetzen von Kennwörtern. Darüber hinaus sollte ein vom Netzwerk getrennter Betrieb ein Zweigstellensystem nicht dazu zwingen, die Arbeit einzustellen. Es gibt Methoden zum Erkennen und Behandeln von Inkonsistenzen aufgrund von Replikationswartezeiten und -kollisionen. Dazu gehört das Markieren von Gruppen aktualisierter Objekte mit einem eindeutigen Bezeichner (z. B. einer GUID), so dass Anwendungen, welche die Daten lesen, überprüfen können, ob alle Komponenten der Aktualisierung empfangen wurden. Nicht alle Anwendungen sind für die Verzeichnisintegration geeignet. Optimale Vorgehensweisen Verwendungsrichtlinien Basierend auf den fünf zuvor angegebenen Merkmalen ergeben sich verschiedene "optimale Vorgehensweisen", um zu bestimmen, welche Datentypen für die Speicherung in einem Verzeichnisdienst geeignet sind. Anwendungsentwickler sollten Verzeichnisdienste insbesondere dann in Betracht ziehen, wenn Folgendes zutrifft: Daten sind für das gesamte Netzwerk von Interesse. Die Replikation ist ein aufwendiger Prozess, weshalb in Netzwerken mit vielen Replikaten ein beträchtlicher Prozentsatz der verfügbaren Bandbreite nur durch die Weiterleitung von Aktualisierungen belegt wird. Deshalb muss vor dem Speichern von Daten in einem Verzeichnis (und dem Übertragen an die "äußersten Enden" des Netzwerkes mittels der Replikation) sichergestellt werden, dass einige Anwendungen an diesen Enden die Daten tatsächlich nutzen. Daten ändern sich langsam. Auch wenn die Informationen im gesamten Netzwerk von Interesse sind, kann der Replikationsverkehr selbst das schnellste Netzwerk ausbremsen, wenn Aktualisierungen zu häufig erfolgen. Es gibt zwei Faustregeln, um festzulegen, dass sich Daten "zu häufig" ändern: o o Das Verhältnis von Aktualisierungen zu Lesevorgängen ist größer als 1:100. Aktualisierungen erfolgen häufiger als zweimal die maximale Wartezeit der Replikationstopologie. Die meisten Verzeichnisdienste führen die Replikation in regelmäßigen Abständen (und nicht kontinuierlich) aus, so dass Topologien so konfiguriert werden können, dass eine Aktualisierung eines Replikats mehr als einen Hop benötigt, um alle Replikate zu erreichen. Nachdem die maximale Wartezeit des Systems berechnet wurde (eine Aktualisierung eines beliebigen Replikats benötigt beispielsweise zwei Stunden, um alle anderen Replikate zu erreichen), stellt der doppelte Wert (d. h. vier Stunden) sicher, dass jede Aktualisierung von allen Replikaten angezeigt wird und in den Replikaten für mindestens einen Replikationszyklus unverändert erhalten bleibt. Diese Methode hat zu einer Vereinfachung verschiedener Anwendungsprogrammierungsfaktoren geführt. Daten profitieren von den hierarchischen Speicherungs- und Sicherheitsmodellen. Verzeichnisdienste sind am wertvollsten, wenn die gespeicherten Daten von der containerbasierten Speicherung und der auf Vererbung basierenden Sicherheit profitieren. Daten, die zum Verwalten von NetzwerkBetriebssystemen und Kontakt- und Standortinformationen von Unternehmensmitarbeitern verwendet werden, können in der Regel gut in einem hierarchischen Modell abgebildet werden. Andere Daten, wie z. B. die, die zu großen B2C-E-Commerce-Sites (Business to Consumer, Unternehmen zu Kunden) gehören, bei denen Benutzer als große, lineare Listen gespeichert werden, sind in der Regel nicht so gut geeignet. Daten erfordern keine transaktionsgesteuerte Aktualisierung. Wie bereits erwähnt, unterstützen Verzeichnisdienste keine Transaktionen, so dass die Daten von Anwendungen, welche die Eigenschaften Unteilbarkeit, Konsistenz, Isolation und Beständigkeit befolgen müssen (wie z. B. Bestandsdatenbanken), nicht gut für die Speicherung in einem Verzeichnis geeignet sind. Daten erfordern keine Änderungsverlaufsinformationen. Aus vielen Gründen, die im Rahmen dieses Artikels nicht behandelt werden können, ist es nicht sinnvoll, ein zentrales Protokoll zu erstellen, das alle Aktualisierungen wiedergibt, die im gesamten Netzwerk auf alle Replikate angewendet wurden. Aus diesem Grund sind Anwendungen, die ein Protokoll der Änderungen an den Daten benötigen (z. B. aus Überwachungsgründen) nicht gut für einen Verzeichnisdienst geeignet. Daten sind hinsichtlich Replikationswartezeiten und Inkonsistenzen tolerant. Aufgrund der Speicherund Weiterleitungstechnik der von Verzeichnisdiensten verwendeten Replikation und der Tatsache, dass Replikate häufig mittels unzuverlässiger Netzwerkverbindungen verknüpft sind, dürfen Anwendungen nicht davon ausgehen, dass Aktualisierungen zwischen Replikaten gemäß einem bestimmten Zeitplan erfolgen oder in einer bestimmten Reihenfolge ankommen. Wichtig ist der Hinweis, dass ein Verzeichnisdienst auch dann eine Rolle spielen kann, wenn die Daten keine der zuvor genannten Anforderungen erfüllen. Eine Bestandsdatenbank kann z. B. in einem Verzeichnis veröffentlicht werden, so dass Anwendungen deren Speicherort dynamisch ermitteln können (siehe "Dienstveröffentlichung"), auch wenn die Daten aufgrund der Transaktionseigenschaften eigentlich nicht direkt in einem Verzeichnisdienst gespeichert werden sollten. Gute Beispiele Basierend auf den genannten Richtlinien sind die folgenden Daten für ein Verzeichnis geeignet: Kontakt- und Standortinformationen. Diese Informationen zu den Mitarbeitern sind im gesamten Netzwerk von Interesse und ändern sich in der Regel nur sehr langsam. Benutzeranmelde- und Sicherheitsgruppeninformationen. Sicherheitsinformationen können an verschiedenen Stellen im Netzwerk benötigt werden, um zu gewährleisten, dass Zugriffssteuerungsfunktionen konsistent und unabhängig vom Ort der Anmeldung des Benutzers beim Netzwerk angewendet werden. Auch diese Informationen ändern sich in der Regel langsam. Netzwerkkonfigurations- und Dienstrichtlinien. Dadurch, dass immer mehr Nischenprodukte (Geräte, z. B. Router und Switches, die den Übergang vom privaten Netzwerk zu dem des Dienstanbieters bestimmen) zur Unterstützung virtueller privater Netzwerke (Virtual Private Networking, VPN) für Benutzer und Geschäftspartner eingesetzt werden, ist es wichtig, dass Konfigurationsinformationen (z. B. welche Benutzer mit welchem Sicherheitsgrad zugreifen dürfen) allen Zugangspunkten zur Verfügung gestellt werden. Richtlinien zur Anwendungsbereitstellung. Durch das Integrieren von Richtlinien zur Anwendungsbereitstellung mit einem hierarchischen Verzeichnis können Administratoren die Verwaltung vereinfachen, indem Anwendungen Organisationseinheiten und Gruppen zugewiesen werden, anstatt die Benutzer einzeln zu verwalten. So können z. B. Anwendungen für die Personalabteilung mittels einer Richtlinie allen Mitgliedern der Organisationseinheit Personal zugewiesen werden. Weniger gute Beispiele Zu den Anwendungen, die nicht so gut für Verzeichnisdienste geeignet sind, zählen die Folgenden: Buchführung. Buchführungsanwendungen benötigen einen Transaktionsaktualisierungsschutz. Darüber hinaus erfolgen Aktualisierungen schnell. Zentrale Datenerfassung. Es ist verlockend, die Replikationsfunktionen eines Verzeichnisses zum Übertragen von Daten wie Ereignisprotokollinformationen von Remoteservern an einen zentralen Standort zu nutzen. Dies würde jedoch Netzwerkverkehr erzeugen, der sich auf alle und nicht nur auf lokal vorhandene Replikate auswirkt. Zusammen mit häufig erfolgenden Aktualisierungen wäre die Netzwerk-Bandbreite schnell belegt. Hardwarebestand. Die meisten Daten zur Hardwarekonfiguration von Client- und Servercomputern sind für Anwendungen im gesamten Netzwerk von geringer Bedeutung. In diesem Zusammenhang ist es wahrscheinlich besser, einen Verweis auf einen Speicherort mit Bestandsinformationen für jedes Computerobjekt im Verzeichnis zu speichern. Wenn eine Anwendung anschließend Konfigurationsdaten zu einem bestimmten Computer benötigt, kann sie den Computer im Verzeichnis bestimmen, die Schnittstellenattribute suchen und sich direkt an den Informationsspeicherort auf diesem Computer binden. Prozesssteuerung. Anwendungen, die vom Zeitpunkt der Datenweitergabe zwischen Replikaten abhängig sind, eignen sich nicht für einen Verzeichnisdienst. Verzeichnisintegrationsmodelle Auf der Grundlage der erwähnten Informationen zum Wesen von Verzeichnisdiensten kann eine Reihe von Architekturmodellen festgelegt werden, bei denen Verzeichnisse bei der Integration mit Anwendungen einen Mehrwert bieten. Verzeichnisobjekterweiterung Die meisten Anwendungen nutzen zur Speicherung von Informationen zu Benutzern und Dienstkonfigurationen einen zentralen Speicherort. In E-Mail-Systemen gibt es beispielsweise Adressbücher, die Listen mit Benutzern und deren E-Mail-Adressen sowie andere Informationen wie Telefonnummern enthalten. Zusätzlich zu grundlegenden Aufgaben wie Authentifizierung und Autorisierung bieten diese Informationen in Anwendungen wertvolle Funktionalität, wie z. B. die Möglichkeit zur Suche nach Personen oder gemeinsam genutzten Ressourcen. In den meisten Unternehmen befinden sich Informationen zu Personen und Ressourcen in vielen verschiedenen anwendungsspezifischen Verzeichnissen (die getrennt verwaltet werden müssen). Diese Datenvermehrung ist größtenteils darauf zurückzuführen, dass Entwickler nicht davon ausgehen, dass in den Netzwerken, für die sie ihre Anwendungen entwickeln, ein geeigneter zentraler Speicherort vorhanden ist. Mithilfe von Verzeichnisdiensten kann dieses Problem der Datenvermehrung eingedämmt werden. Aufgrund der Beliebtheit von Netzwerk-Betriebssystemen (Network Operation Systems, NOS) mit Verzeichnisfunktionen und Verzeichnisprodukten für Unternehmen ist es nun wahrscheinlicher als je zuvor, dass Netzwerke über einen auf Standards basierenden Verzeichnisdienst verfügen. Darüber hinaus sind die abgestuften und zentralen Sicherheitsmodelle von Verzeichnisdiensten ideal für Umgebungen mit Anwendungen aus mehreren Abteilungen oder Organisationen, die nicht darauf vertrauen möchten, dass andere Anwendungen Sicherheitsfunktionen korrekt implementieren. Schließlich können Verzeichnisse erweitert werden, um Änderungen ohne wesentliche Unterbrechungen für andere Anwendungen zu integrieren. Aufgrund dieser Merkmale können Anwendungen so entworfen werden, dass vorhandene Verzeichnisobjekte (wie diejenigen zur Abbildung von Benutzern) erweitert werden können, anstatt einen gänzlich neuen zentralen Speicherort zu implementieren. Dies gilt zumindest für die Datentypen, die zwischen Anwendungen möglicherweise redundant sind. Dadurch, dass Informationen zu Benutzern, Computern und anderen Objekten in einem Verzeichnisdienst zusammengefasst sind, können Administratoren Informationen zentral anzeigen, ändern und verwalten. Anwendungen können darüber hinaus Informationen nutzen, die von anderen Anwendungen im Verzeichnis gespeichert werden. Eine Anwendung für Personalabteilungen kann beispielsweise den Namen des Vorgesetzten der einzelnen Mitarbeiter als Zusatzattribut des zu jedem Mitarbeiter gehörenden Benutzerobjekts in einem Verzeichnis speichern. Im Kreditorensystem können im Benutzerobjekt jedes Vorgesetzten Höchstgrenzen für Spesenberichte gespeichert werden. Anschließend kann ein Onlinesystem für die Genehmigung von Spesenberichten entwickelt werden, das den Spesenbericht eines Mitarbeiters automatisch an die Person in der Hierarchie des Führungspersonals sendet, die über die Befugnis zur Genehmigung eines vorgelegten Berichts verfügt. Dienstveröffentlichung In einer vernetzten Computerumgebung werden viele verschiedene Anwendungskomponenten auf vielen verschiedenen Computern ausgeführt. Auf den Desktopcomputern der Benutzer werden clientseitige Anwendungen ausgeführt, bei denen es sich um Lohn- und Gehalts- und Buchführungsprogramme oder automatische Sicherungsprogramme handeln kann, die sich nach Geschäftsschluss selbständig ausführen. Auf anderen Computern werden serverseitige Elemente wie Datenbanken, gemeinsam genutzte Anwendungskomponenten und Netzwerkdienste wie Datei- und Druckserver ausgeführt. Herkömmlicherweise verfügen clientseitige Anwendungen über statische Konfigurationsdateien mit Informationen zum Speicherort der Dienste, auf die diese zugreifen. Dadurch, dass die meisten Netzwerkumgebungen immer dynamischer werden, wird das Erhalten von Verknüpfungen zwischen Client und Diensten immer schwieriger, wodurch sich die laufenden Verwaltungskosten beträchtlich erhöhen. Das Verschieben einer Ressource auf einen anderen Servercomputer ist häufig zeitaufwendig und kostspielig, da auf allen Clientcomputern die Konfigurationsdaten gegebenenfalls aktualisiert werden müssen. Verzeichnisdienste dämmen dieses Problem dadurch ein, dass die Serverseite von Anwendungen Informationen zu den bereitgestellten Diensten "veröffentlicht". Wenn eine Clientanwendung anschließend Zugriff auf eine bestimmte Anwendung oder einen Server benötigt, muss sie Folgendes ausführen: Die Ressource gemäß dem Namen im Verzeichnis mithilfe einer Programmierschnittstelle wie LDAP nachschlagen. Die zu der Ressource gehörenden Bindungsinformationen (z. B. Datenbankname, Verbindungspunkt oder Adresse des TCP/IP-Anschlusses) abrufen. Sich dynamisch mit der Ressource verbinden und beginnen, mit dieser zu arbeiten. Um eine höhere Verfügbarkeit und Systemleistung zu ermöglichen, können Anwendungen auch so programmiert werden, dass mehrere Anbieter desselben Dienstes im selben Netzwerk unterstützt werden. Jeder Anbieter registriert sich dann unter Verwendung desselben Namens selbst beim Verzeichnisdienst. Wenn alle Anbieter ausgeführt werden und erreichbar sind, ergibt sich eine bessere Systemleistung, da die Last auf mehrere Computer verteilt wird. Wenn ein Computer oder eine Netzwerkverbindung ausfällt, ergibt sich eine höhere Verfügbarkeit, da die entsprechenden Clientanwendungen andere Computer bestimmen können, die denselben Dienst bereitstellen. Die Dienstveröffentlichung erleichtert ferner Administratoren das Verschieben von Diensten zwischen Computern (z. B. um verfügbare CPU-Ressourcen zu nutzen), sogar auf täglicher Basis, da Clients nicht mehr neu konfiguriert werden müssen. Dieser Vorgang entspricht einem Anruf bei der Filiale einer Computerfirma, um nachzufragen, ob ein bestimmtes Produkt vorrätig ist. Wenn der Kunde den Namen der Firma kennt, kann er im Telefonbuch die Nummer der Filiale nachschlagen, die seinem Standort am nächsten ist. Wenn in der Filiale das Produkt nicht vorrätig oder die Leitung besetzt ist, kann der Kunde die Nummer anderer Filialen dieser Firma nachschlagen, bei denen das Produkt gegebenenfalls vorrätig ist. Servergespeicherte Profile (Roaming Profiles) Die erste Assoziation, die das Wort "Roaming" weckt, ist ein Mitarbeiter im Außendienst, der in einem Büro eines anderen Unternehmens oder von zu Hause aus über DFÜ-Leitungen mit dem eigenen Netzwerk kommuniziert. Roaming bedeutet in diesem Kontext der Zugriff auf Dienste wie E-Mail über einen anderen Kommunikationspfad und mithilfe anderer Geräte (wie z. B. Drucker) als gewöhnlich. Ein weiteres Beispiel ist das Arbeiten in einer Umgebung, in der Computer von mehreren Benutzern gemeinsam genutzt werden. In diesem Fall bezieht sich Roaming mehr auf den besonderen Computer, an dem der Benutzer arbeitet, und nicht auf den Netzwerkpfad, der für den Zugriff auf Dienste verwendet wird. In beiden Fällen gilt Folgendes: je reibungsloser der Arbeitsablauf ist (im Vergleich zum üblichen Arbeitsplatz oder zum zuletzt verwendeten Computer), desto produktiver kann der Benutzer arbeiten. Eine einfache Möglichkeit zum Sicherstellen eines reibungslosen Arbeitsablaufs ist das Speichern der Konfigurationsinformationen des Benutzers in einem Verzeichnisdienst und das Einlesen dieser Informationen bei der Anmeldung des Benutzers (oder dem Start einer Anwendung), um die Dienste in der zuletzt verwendeten Konfiguration einzurichten. Vorausgesetzt, Informationen zu gemeinsam genutzten Ressourcen sind im Verzeichnis gespeichert, können Einstellungen wie Standarddrucker automatisch auf geeignete Werte festgelegt werden, ohne dass der Benutzer eingreifen muss. Verzeichnisdienstfunktionen wie die Multimasterreplikation sorgen dafür, dass Konfigurations- und Dienstdaten unabhängig davon verfügbar sind, an welchen Arbeitsplatz sich der Benutzer im Netzwerk begibt, auch wenn LAN/-WAN-Verknüpfungen mit dem Replikat nicht zur Verfügung stehen, auf das normalerweise zugegriffen wird. Richtlinienbasierte Verwaltung Fast alle Unternehmen sind hierarchisch aufgebaut. Ein Unternehmen hat in der Regel mehrere Abteilungen wie Marketing, Vertrieb, Personal und Buchführung, die alle dem Vorstand Bericht erstatten müssen. Innerhalb der Vertriebsabteilung kann es eine Hauptsitzgruppe und vier regionale Leiter geben, die alle dem stellvertretenden Vertriebsleiter Bericht erstatten müssen. Und so weiter. Die meisten Unternehmen arbeiten darüber hinaus mit Gruppen, die sich über mehrere Bereiche und Abteilungen des Unternehmens erstrecken können. Die Personalabteilung kann z. B. Leitende Angestellte verwalten, auch wenn Leitende Angestellte sich als Gruppierungsgrundlage über die gesamte Unternehmenshierarchie erstrecken kann. In anderen Fällen müssen Mitarbeiter verschiedener Abteilungen mit verschiedenen Aufgaben (z. B. leitende und nicht leitende Angestellte) in Projekten zusammenarbeiten. Diese Mitarbeiter können auch als Gruppe angesehen werden. In Unternehmen werden Ressourcen, wie z. B. Systemverwaltungsfunktionen, Anwendungen, Dateizugriff und Speicherbeschränkungen, sehr häufig basierend auf der Position von Benutzern im Unternehmen und den Gruppen, zu denen sie gehören, zugewiesen und gesteuert. Unternehmen können festlegen, dass nur leitende Angestellte bestimmte Personalabteilungsanwendungen ausführen dürfen, oder Sicherungsanwendung so konfigurieren, dass vollständige (im Gegensatz zu inkrementellen) Sicherungen von Computern ausgeführt werden, die von Mitarbeitern in der Buchführungsabteilung verwendet werden. Auch wenn dies sehr intuitiv erscheint, müssen die meisten Unternehmen gegenwärtig einen sehr hohen Aufwand betreiben, um diese Arten von Richtlinien zu implementieren. Administratoren müssen in der Regel wissen, welche Anwendungen auf dem Computer eines Mitarbeiters installiert werden müssen, wenn dieser Mitarbeiter einer Abteilung oder Gruppe hinzugefügt wird. Wenn ein Mitarbeiter in eine andere Abteilung wechselt oder anderen Gruppen beitritt (z. B. aufgrund einer Beförderung), muss jemand sicherstellen, dass dieser Mitarbeiter über die Anwendungen und Berechtigungen verfügt, die der neuen Rolle entsprechen. Es ist ferner die Regel, dass Administratoren Anwendungen benutzerabhängig konfigurieren müssen, um Richtlinien wie Sicherungsintervalle und Speicherbeschränkungen zu implementieren. Doch selbst die besten Konfigurationsmanagementprozeduren können vereitelt werden, wenn sich Benutzer entschließen, ihre Anwendungseinstellungen so anzupassen oder zu ändern, dass eine standardisierte Unterstützung schwieriger wird. Um diese Probleme in den Griff zu bekommen, bieten verschiedene Verzeichnisdienste (wie z. B. Active Directory™) Funktionen, die Administratoren die Implementierung einer auf Richtlinien basierenden Installations-, Konfigurations- und Verwaltungsumgebung ermöglichen, die auf der Unternehmenshierarchie und den im Verzeichnis gespeicherten Gruppendefinitionsinformationen basiert. Mithilfe von Richtlinienverwaltungsfunktionen können Administratoren Richtlinienattribute, wie z. B. die Namen der Anwendungen, die installiert, oder Einstellungen, die festgelegt werden müssen, basierend auf der Mitgliedschaft in Organisationseinheiten verknüpfen, die in der Verzeichnisstruktur definiert sind. Darüber hinaus können Administratoren Richtlinien so anpassen, dass die Mitglieder von Sicherheitsgruppen ein- oder ausgeschlossen werden. Administratoren können Sie z. B. den Zugriff auf eine Zeitkartenanwendung standardmäßig verweigern und anschließend eine strukturübergreifende Richtlinie definieren, die einen Zugriff auf die Zeitkartenanwendung gewährt, wenn der Benutzer Mitglied der Gruppe Leitende Angestellte ist. Es ist ferner möglich, Anwendungen zu entwerfen, welche die Hierarchie- und Gruppeninformationen untersuchen und sich entsprechend der Position des Benutzers in der Struktur (d. h. der Organisationseinheit, in welcher der Benutzer gespeichert ist) und der Gruppenmitgliedschaft verhalten. Der Name eines Datenbankservers kann z. B. in einer Richtlinie gespeichert werden, die anschließend auf die Organisationseinheit Buchführungsabteilung angewendet wird. Wenn Benutzer der Organisationseinheit Buchführungsabteilung beitreten (oder in diese wechseln), können ihre Anwendungen automatisch für den Zugriff auf die korrekte Datenbank neu konfiguriert werden. Ein weiteres Beispiel einer auf Richtlinien basierenden Anwendungsintegration ist die von Microsoft und Cisco Systems gestartete DEN-Initiative (Directory-Enabled Networking), die sich auf die Entwicklung von DMTFStandards (Distributed Management Task Force) zur Verbesserung der Netzwerkverwaltung mithilfe eines Verzeichnisdienstes konzentriert. Hier sind die Anwendungen Netzwerk-Verwaltungssysteme, die mithilfe von Richtlinien die Dienstqualität (Quality of Service, QoS) und andere Faktoren (wie z. B. VPN-Sicherheitsgrade) innerhalb eines Netzwerkes definieren und umsetzen. Wenn eine Richtlinie zur Dienstqualität auf eine Organisationseinheit angewendet wird, kann Mitgliedern dieser Organisationseinheit mehr Bandbreite als Mitgliedern anderer Organisationseinheiten zugewiesen werden. Wenn z. B. ein Krankenhaus die Organisationseinheit Ärzte Notaufnahme aufweist, deren Mitglieder eine hohe Bandbreite zum Empfangen und Lesen von CAT-Scans und anderer Labortestberichte benötigen, macht die Umsetzung einer solchen Richtlinie durchaus Sinn. Dadurch, dass dieses Verhalten implementiert werden kann, indem eine Richtlinie einfach mit einer Organisationseinheit verknüpft wird, die ohne Aufwand die Ärzte in der Notaufnahme zu einem bestimmten Zeitpunkt abbildet, wird die Verwaltungskomplexität gemindert. Schlussfolgerung Viele Unternehmen haben bereits den Wert von Verzeichnisdiensten aufgrund der Möglichkeiten erkannt, die Verzeichnisse zur Vereinfachung der Benutzer- und Computerverwaltung in Netzwerk-Betriebssystemen und Unternehmensverzeichnisrollen bieten. Das hierarchische Speichern von Informationen zu Benutzern und Computern in einem Netzwerk-Betriebssystemverzeichnis ermöglicht Administratoren das Delegieren von Verwaltungsaufgaben an die gewünschten Mitarbeiter in Abteilungen und Gruppen. Dadurch können sich Administratoren auf andere Aufgaben konzentrieren. Gleichzeitig erhalten die Benutzer mehr Autonomie und Steuerungsmöglichkeiten. Das Einbeziehen der Anwendungsintegration in Verzeichnisse bietet Unternehmen die folgenden Vorteile: vereinfachte Verwaltung, weiter entwickelte Netzwerkdienste, größere Anwendungsfunktionalität, niedrigere Gesamtkosten sowie Synergien zwischen allen Komponenten mit Verzeichnisfunktionen der Netzwerkumgebung. Dadurch wird die Messlatte für die Leistungsfähigkeit von Verzeichnisdiensten weiter angehoben. Verzeichnisse, die lediglich eine Vereinfachung der Verwaltung oder Unterstützung einer einzelnen Anwendung bieten, halten ihren Benutzern viele wichtige Vorteile vor. Dennoch sind Verzeichnisdienste kein Ersatz für relationale Datenbanken und umgekehrt. Doch bei gemeinsamer Nutzung können Verzeichnisdienste und Datenbanken Kosten und Komplexität der Verwaltung gegenwärtiger verteilter Systeme deutlich senken. Weitere Informationen Integrating Applications with Windows 2000 and Active Directory (englischsprachig) Microsoft TechNet – Windows 2000 Server Technology Center (englischsprachig) Microsoft Windows 2000 Server Directory Services (englischsprachig)