3          Organisation einer dynamischen globalen Namensverwaltung

 

 

In Kapitel 2 wurden verschiedene Arten von Namen und Möglichkeiten, diese in lokalen Namensräumen zu repräsentieren und zu verwalten, vorgestellt. Das folgende Kapitel identi­fiziert zunächst, welche strukturellen Komponenten in globalen Namensverwaltungen exis­tieren, und beschreibt anschließend die funktionalen Kompo­nenten von Namensverwaltern in globalen Namens­verwaltungen.

Die Organisation einer globalen Namens­ver­waltung wird maßgeblich beeinflußt durch

     die strukturellen Komponenten der Namensverwaltung,

     den funktionalen Komponenten der einzelnen Namensverwalter

     der Netzwerktopologie und den Netzwerkeigenschaften.

Die Struktur einer globalen Namensverwaltung ist von der Kommuni­kati­ons­infra­struktur des zugrundeliegenden Netzwerks abhängig. Daher diskutiert der letzte Abschnitt des Kapitels verschiedene Aspekte der Verteilung und Kooperation von Namensverwaltern im Netzwerk und präsentiert eine Methode zur selbständigen Konfigurierung von Namens­ver­waltern.

3.1         Strukturelle Komponenten globaler Namensverwaltungen

Den strukturellen Komponenten einer Namensverwaltung liegen verschiedene Modelle der verteilten Verarbeitung von Aufträgen zugrunde. Diese verschiedenen Modelle und ihre Eig­nung für eine dynamische globale Namensverwaltung sind Gegenstand der weiteren Betrach­tungen in diesem Abschnitt.

3.1.1          Globale Namensverwaltung im Client-Server-Modell

Ein verbreitetes Paradigma zur verteilten Verarbeitung repräsentiert das sog. Client-Server-Modell. Zahlreiche Namensverwaltungen wurden nach diesem Modell entworfen (z.B. DNS, [Mockapetris, 84a] und X.500, [CCITT, 89]). Die Namensverwaltung besteht dann einerseits aus Klienten, die die Dienste der Namensverwaltung in Anspruch nehmen, und andererseits aus Namensverwaltern, die Namens­einträge ausschließlich verwalten (vgl. Abbildung 3.1).

Im Client-Server-System greifen Anwendungen in Klienten über eine Anwendungs­schnittstelle (Naming API) auf die Dienste der Namensverwaltung zu. Diese Schnittstelle zur Namens­ver­waltung wird der Anwendung von einem Naming Agenten auf dem Klienten-Rechner offeriert. Der Naming Agent muß auf jedem Knoten verfügbar sein, der die Dienste der Namensverwal­tung in Anspruch nehmen will. Der Naming Agent übernimmt in der Regel selbst keine Verwal­tungsfunktionen. Er repräsentiert lediglich einen Vermittler zwischen dem Namensver­walter und der Anwendung. Entsprechend gibt der Naming Agent Anfragen über das Netzwerk an Namensverwalter weiter und liefert Anfrage­ergebisse an die Anwendung zurück. Der Naming Agent realisiert somit das Protokoll zur Kommunikation mit dem Namensverwalter (Agenten-Protokoll), so daß eine Applikation, die die Dienste der Namens­ver­waltung in Anspruch nimmt, von den Kommuni­kations­aufgaben entbunden wird. Die Klienten richten ihre Anfragen direkt an den lokalen Naming Agenten, so daß die verteile Struktur der Namensver­waltung transparent bleibt. Lediglich die Agenten besitzen Kenntnisse über den Namensraum und die existierenden Namensverwalter.

Abbildung 3.1: Das Client-Server-Modell in der Namensverwaltung

Naming Agenten in Klientenrechnern können entweder mehrere Anwendungen gleichzeitig bedienen, oder sie stehen jeweils nur einer Anwendung zur Verfügung. Während gemeinsam genutzte Agenten meist als Teil des Betriebssystems realisiert sind und über Systemaufrufe an­gespro­chen werden, wird ein einfacher Agent i.d.R. in Form von Bibliotheksroutinen zur Anwendung hinzugebunden.

Abbildung 3.2: Strukturelle Komponenten einer Namensverwaltung nach dem Client-Server-Prinzip

Ein Namensverwalter (Name Server) ist eine Instanz der Namensverwaltung, die für die Erfas­sung, Verwaltung, Speicherung und Weitergabe von Namen zuständig ist. Namens­verwalter können in verteilten Systemen als zentraler dedizierter Namensverwalter (z.B. in CSNET), als mehrere dedizierte Namensverwalter (z.B. in Grapevine), oder zusammen mit anderen Diensten (z.B. in Cronus oder im V-system) in Knoten vorhanden sein. Namens­verwalter verwalten detaillierte Kenntnisse über den Namensraum und über weitere existie­rende Namensverwalter. Die für die Verwaltung des Namensraums notwendige Kommunikation zwischen den Namens­verwaltern wird durch sog. Namensverwalter-Protokolle realisiert. Klienten der Namensver­waltung treten über Naming Agents mit Namensverwaltern in Kontakt. Hierbei wird in der Regel die Ortstrans­parenz für den Klienten gewahrt, so daß die Applikation keine Kenntnisse darüber besitzt, welcher Namensverwalter bestimmte Namenseinträge administriert (vgl. Abbildung 3.2). Werden Namenseinträge über mehrere Namensverwalter verteilt verwaltet, so sorgen die Namensverwalter untereinander für die transparente Auflösung einer Klientenan­frage.

Zur Kommunikation zwischen Namensverwaltern wurde beispielsweise in X.500 [CCITT/ISO, 88] ein sogenanntes Directory System Protocol (DSP) definiert. Die Kommunikation einer Anwendung mit der Namensverwaltung erfolgt über das soge­nann­te Directory Access Protocol (DAP). In der Terminologie des X.500-Standards werden Namensverwalter als Directory System Agents (DSAs) und Klienten als Directory User Agents (DUAs) bezeichnet.

Das Namensverwalter-Protokoll umfaßt Funktionen zur Auflösung und in verschiedenen Systemen auch zur Registrierung von Namen. Um die Ausfallsicherheit von Namensverwal­tungen zu steigern und durch Kommunikation entstehende Verzögerungen zu reduzieren, können die Namenseinträge auf mehreren Namensverwaltern repliziert sein. In diesem Fall muß das Namensverwalter-Protokoll Funktionen zum Abgleich replizierter Einträge umfassen. Derjenige Namens­verwalter, der den für ein Objekt maßgeblichen Namenseintrag enthält, d.h. bei dem der Eintrag ursprünglich registriert wurde, wird als primärer Namens­verwalter oder auch Naming Authority bezeichnet.

Die Vor- und Nachteile des Client-Server-Modells für die Realisierung einer dynamischen globalen Namensverwaltung lassen sich wie folgt zusammenfassen:

+    Das Client-Server-Modell sorgt für eine klare Aufteilung der Zuständigkeiten innerhalb der Namensverwaltung.

+    Ein Client-Server-Modell für die globale Namensverwaltung ist besonders dann geeignet, wenn sich Agenten in Namensver­waltungen auf wenige Operationen beschränken. Das Agenten-Protokoll besitzt dann im Vergleich zum Namensverwalter-Protokoll eine redu­zierte Funktionalität, wodurch der Umfang der Agenten-Software für den Zugang zur Namensver­wal­tung und der Agenten-Schnittstelle reduziert wird.

-     Die Unterscheidung in Agenten- und Namensverwalter-Protokolle beschränkt in vielen Fällen die administrativen Möglichkeiten des Klienten. Insbesondere wird die Registrierung neuer Einträge durch das Agenten-Protokoll häufig nicht unterstützt. Unterschiedliche Agenten- und Namensverwalter-Schnittstellen erhöhen nicht zuletzt auch die Komplexität des Gesamtsystems.

-     Das Client-Server-Modell eignet sich lediglich für gleichmäßig verteilte Namenseinträge. Aus Gründen der Sicherheit und Aktualität ist es jedoch wünschenswert, bestimmte Namens­einträge lokal im Klienten zu verwalten und nicht global zu verteilen. Somit treten unterschied­liche Verteilungsgrade im System auf, wobei lokale Einträge in Klienten und globale Einträge durch Namensverwalter verwaltet werden. Das Client-Server-Modell ist daher mit der angestrebten Integration lokaler und globaler Namens­verwaltungen nicht ver­einbar.

Um die aufgezeigten Nachteile eines Client-Server-Modells zu vermeiden, wird in der dynami­schen globalen Namensverwaltung auch in Klienten die volle Funktionalität eines Namens­ver­walters bereitgestellt, wie dies im folgenden vorgeschlagen wird.

3.1.2          Architekturmodell der dynamischen globalen Namensverwaltung

Ziel der dynamischen globalen Namensverwaltung ist es, u.a. lokale und globale Namensräume zu integrieren. Dabei stößt das Client-Server-Modell schnell an seine Grenzen, da zur Realisie­rung eines einheitlichen Namensraums auch Klienten die volle Funktionalität eines Namens­verwalters bieten müssen.

Im Architekturmodell für die dynamische globale Namensverwaltung ist in jedem Knoten ein funktional gleicher Namensverwalter vorgesehen, der Namenseinträge mit lokaler oder auch globaler Signifikanz verwaltet (vgl. Abbildung 3.3). Der in dieser Arbeit verfolgte Ansatz kennt keine Unter­scheidung in Server und Klienten, es wird lediglich in Anlehnung an den Gültig­keits­bereich der verwalteten Namens­einträge eine Unterscheidung zwischen lokalen und globa­len Namens­verwaltern getroffen. Durch die fehlende Unterscheidung zwischen Klienten und Server wird eine Integration der lokalen und globalen Namensverwaltung und die Realisie­rung eines einheitlichen Namens­raums für lokale und globale Objekte möglich.

Lokale Namensverwalter in der dynamischen globalen Namensverwaltung besitzen die volle Funktionalität globaler Namensverwalter, verwalten jedoch lediglich lokale Namen und weisen Registrierungsaufträge für globale Namen zurück. Da keine globalen Namen auf lokalen Namensver­waltern registriert werden, ist es nicht notwendig, diese permanent verfügbar zu halten oder zu replizieren. Wenn lokale Namenseinträge nicht verfügbar sind, dann sind auch die zugehörigen Objekte selbst nicht verfügbar.

Globale Namensverwalter administrieren sowohl lokale als auch globale Namen, d.h. sie nehmen Registrierungsaufträge für globale Namenseinträge entgegen. Als Konsequenz ist eine ständige Verfügbarkeit dieser Namensverwalter zu gewährleisten. Insbesondere sind aus Grün­den der Ausfallsicherheit die globalen Einträge globaler Namensverwalter zu replizieren. Global verfügbare Namen sind außer in globalen Namensverwaltern auch beim (globalen oder lokalen) Namensverwalter desjenigen Knotens registriert, der das zugehörige Objekt verwaltet.

Namensverwalter unterscheiden sich ferner durch den Grad ihrer Verfügbarkeit. Sind sie stän­dig verfügbar, so werden sie als permanente Namensverwalter bezeichnet und können zur Verwaltung globaler Namenseinträge genutzt werden. Namensverwalter, deren permanente Verfügbarkeit nicht garantiert werden kann, werden als temporäre Namensverwalter bezeichnet. Sie können lediglich lokale Namenseinträge verwalten. Die Verwaltung globaler Namens­ein­träge ist wegen der temporären Verfügbarkeit nicht vorgesehen.

Abbildung 3.3: Architekturmodell der dynamischen globalen Namensverwaltung

Ein Namensverwalter, der eine Aktion initiiert, wird aktiver Namensverwalter genannt, ein Namensverwalter, an den eine Anfrage gerichtet ist, heißt passiver Namensverwalter. Jeder Knoten kann für einen bestimm­ten Teilbereich eines Namensraums zuständig sein. Namens­ein­träge werden vom Namensverwalter immer zunächst lokal erzeugt, registriert und aufgelöst. Die Protokolle zwischen lokalen und globalen Namensverwaltern sind identisch (vgl. Abbildung 3.3).

Als primärer Namensverwalter eines Namens wird derjenige Namens­verwalter bezeichnet, in dem der Name durch die Anwendung registriert wurde, so daß er den primären Namenseintrag mit der Bindung an den Objekt-Bezeichner enthält. Dabei ist der primäre Namens­verwalter häufig mit dem Verwalter des gebundenen Objekts identisch.

Der administrative Namens­ver­walter eines Namenseintrags ist derjenige Namensverwalter, der den globalen Namens­eintrag für einen Namen verwaltet. Dieser administrative Namenseintrag enthält eine Referenz (Navigationsinformation) auf den Namensverwalter des primären Namens­­eintrags. Unter Umständen können der primäre und der administrative Namensver­walter identisch sein.

Nachdem der vorangegangene Abschnitt die strukturellen Komponenten der dynamischen globalen Namensverwaltung identifiziert hat, beschreibt der folgende Abschnitt die möglichen Wechselwirkungen der Namensverwaltung mit anderen Komponenten des Betriebssystems.[AL1] 

3.1.3          Wechselwirkungen mit anderen Betriebssystemkomponenten

Namensverwaltungen wurden in Betriebssystemen in der Vergangenheit vielfach in andere Betriebssystemkomponenten integriert. Namensräume wurden für spezielle Zwecke, wie Ver­zeichnisse für Datei­systeme, konzipiert. In modernen verteilten Betriebssystemen ist die Namens­verwaltung i.d.R. als separater Dienst realisiert. Hierfür sprechen insbesondere folgen­de Gründe:

Modularisierung: Moderne Betriebssystemkonzepte streben einen modularen Systemaufbau an. Die Funktionalität des Gesamtsystems ergibt sich dabei aus der Kooperation unabhängiger Module, die über einen minimalen Kern kommunizieren. Speicher­-, Objekt- und Gerätever­waltung, Authentisierung, Scheduler, Netzwerkdienste und nicht zuletzt die Namensverwaltung sind als eigenständige Dienste etabliert.

Unifizierung: Namen treten in verteilten Betriebssystemen dienstübergreifend auf. Das gleiche Namensschema findet für unterschiedliche Dienste Verwendung. So wird z.B. über Dateinamen in NFS [SUN, 89] transparent auf Dateien zugegriffen, unabhängig davon, ob es sich um lokale oder entfernte Dateien handelt. Weitere Beispiele hierfür sind Devices oder Named Pipes.

Integration: Im Laufe der Zeit können unterschiedliche Namensräume zusammenwachsen oder sich auftrennen. Die Änderung an einer Stelle ist dann einfacher. Allerdings können nicht nur doppelte Namen vorkommen, sondern auch unterschiedliche Namenskonventionen gelten.

Existiert die Namensverwaltung im Betriebssystem als eigenständiger Dienst, so sind beim Zugriff eines Anwenderprozesses über Namen auf entfernte Objekte mehrere Dienste beteiligt (vgl. Abbildung 3.4). Der Anwender­prozeß wendet sich mit dem Namen eines Objekts an den Objektverwalter. Dieser kontaktiert die Namensverwaltung, um den mit dem Namen assoziier­ten Objekt-Bezeichner zu bestim­men. In Besitz der Identifikation wendet sich der Objektver­walter an das Netzwerk. Dieses ermittelt aus der Identifikation die Netzwerkadresse des objekt-verwaltenden Knotens und überträgt den Aufruf an den Objektverwalter der Gegenseite. Unter Zuhilfenahme des Authentisierungsdienstes prüft der Objektverwalter die Zugriffsberechtigung und führt den Aufruf letztendlich aus.

Abbildung 3.4: Wechselwirkungen der Betriebssystemkomponenten beim Zugriff über Namen

Wie Abbildung 3.4 verdeutlicht, ist der Zugriff auf Objekte stets mit einer Autorisierung ver­bunden. Jedoch nicht nur der Objektzugriff, sondern auch der Zugriff auf Namenseinträge selbst muß autorisiert erfolgen, um unberechtigte Manipulationen von Namenseinträgen und das unerwünschte Sammeln sensibler Informationen zu unterbinden. Zusammen mit den Namen sind von der Namens­verwaltung somit Zugangs­informationen bereitzustellen. Diese werden dem Authentisierungsdienst für die Beschränkung des Zugriffs auf Namenseinträge zur Verfü­gung gestellt. Globale Namensverwaltungen interagieren somit direkt mit dem Authen­tisie­rungsdienst des Betriebssystems. Interaktionen mit weiteren Betriebssystemdiensten sind als sekundär zu betrachten und betreffen die Funktionalität und Struktur der Namensverwaltung selbst nicht.

Die Transparenz der Namensauflösung muß für die Anwendung jedoch nicht notwen­di­gerweise gegeben sein. Die Namensverwaltung wird beim Objektzugriff mittels Namen entweder, wie in Abbildung 3.4 dargestellt, indirekt durch die objekt-verwaltenden Instanzen involviert, oder die Anwendung ruft die Namensverwaltung direkt, um den Objekt-Bezeichner zu einem gegebenen Namen zu ermitteln (vgl. Abbildung 3.5). In Besitz der Objekt-Identifikation wendet sich die Anwendung anschließend an den Objektverwalter, um Zugang zum Objekt zu erhalten.

Abbildung 3.5: Direkte und indirekte Interaktion der Applikation mit der Namensverwaltung[AL2] 

Aus der Etablierung der Namensverwaltung als eigenständiger Dienst in modularen Betriebs­systemen erwachsen auch Anforderungen an die übrigen Dienste. Die Namensver­waltung erbringt nicht alle zur Verwaltung von Namenseinträgen notwendigen Funktionen selbst. Sie greift ihrerseits insbesondere auf die Dienste der Objektverwaltung, des Netzwerks und der Autorisierung zurück.

Wie der vorange­gangene Abschnitt gezeigt hat, motivieren moderne Betriebssystem­konzepte autonome Namens­verwal­­tungen. Diese benennen alle für den Anwender relevanten Objekte und stellen die für den Zugriff erforderlichen Informationen bereit.

 

Erst die Loslösung vom Client-Server-Modell für globale Namensverwaltungen ermöglicht die Integration lokaler und globaler Namensverwaltungen und die Realisierung eines einheitlichen, dynamisch administrierten globalen Namensraums. Die Modularisierung verteilter Betriebs­systeme und die Forderung nach Universalität etablierten globale Namensverwaltungen als eigenständi­gen Dienst.

 


3.2         Funktionales Modell eines globalen Namensverwalters

Für Systeme, in denen die Namensverwaltung konsequent genutzt wird, ist die Implemen­tie­rung effizienter Namensverwalter mit extrem hoher Verfügbarkeit unerläßlich. Namens­verwal­ter sind dann elementarer Bestandteil eines Betriebssystems und auf einem dement­sprechend niedrigen Niveau der Betriebssystemhierarchie angesiedelt. Implemen­tierungen sind dabei im Kern von Betriebssystemen [Cheriton, 88] ebenso anzutreffen wie in der Kernschale [Schröder, 88]. Die Verwaltung des Namensraums erfolgt ausschließlich hauptspeicherbasiert mit effizienten Zugriffs­mechanismen, z.B. Hash-Tabellen [Morris, 68] oder B-Bäumen [Bayer, 77], und klienten­seitigen Namen-Caches, um den Kommunikationsaufwand niedrig zu halten.

3.2.1          Das Modell eines Namensverwalters nach Terry

Ein häufig gebrauchtes Referenzmodell für Namensverwalter wurde von Terry [Terry, 85] vorgestellt. Terry identifiziert in seiner Arbeit folgende funktionalen Komponenten, die ein Namensverwalter aufweisen sollte:

·        Operationen des Namensdienstes

·        Auflösung strukturierter Namen (Namensauflösung)

·        Verwaltung replizierter Daten (Replikationsverwaltung)

·        Speicherung von Namensinformationen in einer Datenbank (Datenbank)

·        Kommunikationsmodul (Kommunikation)

Das zugehörige funktionale Modell gliedert sich in Schichten, wie in Abbildung 3.6 gezeigt wird. Die Komponenten der oberen Schichten nehmen dabei zur Erfüllung ihrer Aufgaben die Dienste der darunterliegenden Schichten in Anspruch.

Abbildung 3.6: Funktionales Modell eines Namensverwalters nach Terry

In Terry’s Modell eines Namensverwalters dienen die Namensoperationen der obersten Schicht des Namensverwalters ausschließlich dazu, Administrationsaufgaben zu verrichten. Klienten hingegen greifen nicht über diese Administrationsschnittstelle, sondern ausschließlich über Kommunikationskanäle auf Namensverwalter zu.

Zur Steigerung der Effizienz der Namensauflösung wurde der Namensverwalter mit einer Replikationsverwaltung für Namenseinträge versehen. Die Konsistenzerhaltung der replizierten Namenseinträge wird durch Read-any/Write-all-Verfahren oder durch gewichtete Votierungs­verfahren [Gifford, 79] gewähr­leistet. Ohne sich auf eine Methode der Replikationsverwaltung festzulegen, schlägt Terry in seinem Modell [Terry, 85] vor, in Namensverwaltern ein Modul zu Verwaltung replizierter Einträge vorzusehen, das nahezu dieselbe Schnittstelle wie die lokale Namensdatenbank besitzt. Ledig­lich ein zusätzlicher Parameter spezifiziert den Speicherort eines Eintrags. Um die Replikate zu verwalten, stützt sich das Modul auf die Funktionen der lokalen Datenbank und der Kommunikationsebene.

Globale Namensverwaltungen erbringen ihren Dienst durch die Kooperation verteilter Namens­verwalter. Dazu benötigen diese Zugang zu den Kommunikationsdiensten des Betriebs­systems. Die Kommunikation zwischen Namensverwaltern kann sowohl verbindungsorientiert als auch verbindungslos erfolgen. Verschiedene Kommunikationsmedien offerieren lediglich einen verbindungsorientierten Dienst. Meist ist der Aufbau gesicherter Verbindungen jedoch nicht erforderlich, da die Menge der übertragenen Daten gering ist und ein Nachrichtenverlust durch die Namensver­waltung selbst erkannt und behoben werden kann. Verbindungslose Protokolle eignen sich besonders dann, wenn zustandslose Namensverwalter gefordert sind.

Vielfach ist die Übertragung der Ausführung von einem Namensverwalter auf einen anderen erforderlich. Die Bereitstellung von Remote Procedure Call-Diensten (RPC) durch die Netz­werk­schicht ist zwar hilfreich, jedoch nicht notwendigerweise Voraussetzung. Der begrenzte Umfang an netzwerkübergreifenden Funktionen und die limitierte Parametermenge erlauben durchaus eine nachrichtenbasierte Behandlung von Anfragen durch die Namens­verwal­tung.

Die in Namensverwaltern administrierten Namenseinträge, die sog. Namensbasis, werden in einer Datenbank abgelegt. Im allgemeinen sind Namensdatenbanken von kleiner und mittlerer Größe. Kleinere Daten­banken mit Namenseinträgen werden, vorausgesetzt sie sind einfach in ihrer Struktur, als simple Textdateien realisiert. Sind die Datenbanken umfangreicher, werden sie durch eigene Schemata realisiert, die eine eigens entworfene Datenrepräsentation auf Dateien und spezielle Operationen für den Zugriff und die Modifikation der Datensätze beinhalten.

Eine einfache und effiziente Technik, um derartige Namensdatenbanken zu implementieren, wird in [Birrel, 87] beschrieben. Hierbei wird die Existenz eines sehr großen virtuellen und ausreichend großen physikalischen Speichers vorausgesetzt. Die Datenbank wird als streng typisierte Daten­struktur im virtuellen Speicher realisiert, wobei Änderungen anhand eines Ände­rungs­protokolls inkrementell auf das physika­lische Medium übertragen werden. Gelegentlich werden Aufsetz­punkte (Checkpoints) der gesamten Datenbank angelegt, so daß bei Ausfällen beim letzten Checkpoint aufgesetzt und der aktuelle Zustand durch Nachvollziehen des Ände­rungs­protokolls wiederhergestellt werden kann.

Bestandteil vieler verteilter Betriebssysteme ist eine Objektverwaltung. Bietet diese die notwen­dige Funktio­nali­tät, so kann sie von der Namensverwaltung zur Speicherung von Namens­ein­trägen genutzt werden. Die einzige bekannte Namensver­waltung, die ein allgemeines Datenbank Management System verwendet, um Namenseinträge zu speichern, ist der COSINE Name Server [Barker, 91]. Die Gründe, die gegen einen Einsatz von allgemeinen Datenbank­systemen zur Speicherung von Namenseinträgen sprechen, sind zahlreich, in erster Linie sind hier jedoch die geringe Geschwindigkeit und die Komplexität der Daten­bankabfrage­sprachen anzuführen.

Trotz der hohen Funktionalität fehlen Terry’s Modell eines Namens­verwalters Instanzen, die das Netz von Namens­verwaltern konfigurieren und globale Namenseinträge auf die jeweils zuständigen Namensverwalter verteilen. Gerade diesen Aufgaben ist beim Entwurf globaler Namens­verwal­tungen jedoch besondere Aufmerksamkeit zu schenken.

3.2.2          Namensverwaltermodell der dynamischen globalen Namensverwaltung

Der vorliegende Entwurf der dynamischen globalen Namensverwaltung sieht vor, den Namens­verwalter in der Kernschale eines Betriebssystems (Midware) zu realisieren. Die Gründe hierfür liegen in dem Bestreben, modulare Systeme basierend auf Micro-Kernel zu forcieren und außerhalb des minimalen Kerns dynamische Bindeope­rationen für Objekte anzuwenden. An der Kernschnittstelle treten lediglich Objekt-Bezeichner, jedoch keine Namen auf. Durch eine mini­male Schnittstelle zum Kern bleibt die Portierbarkeit des Systems auf diverse Hardware­platt­formen und die Substitutionsoption für die Namensverwaltung erhalten.

Das funktionale Modell der dynamischen globalen Namensverwaltung offeriert verschiedene Schnittstellen. Über die Anwendungsschnittstelle greifen Anwendungen und weitere System­kom­ponenten ortstransparent auf die Funktionen der Namensverwaltung zu. Zur Ausführung der Verwaltungs­operationen auf dem verteilten Namens­raum nimmt die Namensverwaltung ihrerseits über die Kernschnitt­stelle die Kommunikations- und Objektverwaltungsfunktionen des Kerns in Anspruch (vgl. Abbildung 3.7).

Abbildung 3.7: Funktionales Modell eines Namensverwalters der dynamischen globalen Namensverwaltung

Das funktionale Modell der dynamischen globalen Namensverwaltung läßt sich grob unterteilen in global und lokal wirksame Namens­operationen. Die Zugriffstransparenz der dynamischen globalen Namensverwaltung an der Anwendungsschnittstelle wird vom Modul zur Behandlung attributierter und synonymer Namen (vgl. Abbildung 3.7) realisiert.

3.2.2.1       Schnittstellen der dynamischen globalen Namensverwaltung

Die dynamische globale Namensverwaltung besitzt Schnittstellen zur Anwendung und zum Betriebssystem. Die Interaktionen mit der Anwendung erfolgen über die Anwendungs­schnitt­stelle. Über die entsprechenden Kernschnittstellen interagiert die Namens­verwaltung mit den Kommunikationsprotokollen und der Objektverwaltung des Betriebs­systems.

Über die Anwen­dungsschnittstelle der dynamischen globalen Namensver­waltung stehen dem Anwender die Namensoperationen zur Verfügung. Diese bieten dem Anwender weitge­hende Ortstrans­parenz, die Namensverwaltung kann jedoch vom Anwender mit Angaben über den Gültigkeits­bereich der Namen versorgt werden. Die Funktionen an der Anwendungs­schnitt­stelle umfassen Aufrufe zur Registrierung, Auflö­sung und zum Löschen von implizit und expli­zit im Namensraum repräsentierten Namen und Attributen. Zudem werden Funktionen für die Verwaltung von Synonymen und das Modifizieren von Namensein­trägen bereitgestellt. Die Aufrufe der Anwen­dungsschnittstelle werden synchron abgearbeitet, so daß die Anwendung so lange blockiert, bis die Anfrage beantwortet oder ein Zeitlimit überschritten wurde. Eine asyn­chrone Auflösung von Namen hat keine Vorteile, da die Ausführung i.d.R. nicht fortfahren kann, bevor der Name aufgelöst ist.

Die Namensverwalter der dynamischen globalen Namensverwaltung kommunizieren unterein­ander über die Kommunika­tionsschnittstelle des Betriebssystemkerns. Die notwendige Funk­tionalität diese Schittstelle beschränkt sich auf das gesicherte Versenden und Empfangen von Nachrichten über das zugrundeliegende Netzwerk. Nachrichten der Namensverwaltung müssen vom Netz­werk anhand der über­gebenen, routingfähigen Netzwerkadresse (z.B. IP-Adresse) selb­ständig zum jeweiligen Namensverwalter geleitet werden. Steht an der Kommuni­ka­tions­schnittstelle eine Broadcast-Option zur Verfügung, so kann diese genutzt werden, um die Aus­fall­sicherheit der Namens­verwaltung zu erhöhen. Die Kommuni­kations­strategien der dyna­mischen globalen Namens­ver­waltung bestehen jedoch nicht auf der Mehrpunkt-Fähigkeit des zugrunde­liegenden Kommu­nika­tionsmediums. Besonders in globalen Netzwerken sind in der Regel lediglich Punkt-zu-Punkt-Verbin­dungen verfügbar. Da die Kommunika­tion zwischen globalen Namens­ver­waltern gerichtet verläuft, verursacht das Fehlen der Rundspruchfähigkeit in globalen Netzwer­ken keine Proble­me.

Namensverwalter der dynamischen globalen Namensver­waltung speichern lokale Namens­einträge mithilfe der in vielen modernen Betriebssystemen vorhan­denen Objektver­waltung. Der Zugriff auf lokale Namenseinträge erfolgt von der Namensverwaltung aus über die Objekt­verwalter­schnitt­stelle. Diese sollte Grundoperationen zum Hinzufügen, Suchen, Auflisten und Löschen von Objekten anbieten. Um die Unabhängigkeit der Namens­verwaltung vom Objekt­ver­walter zu wahren, sollte dieser in der Lage sein, beliebige Objekte zu verwalten. Eine wich­tige Forderung an den Objektverwalter ist weiterhin, daß die auf Namenseinträgen ausge­führten Opera­tionen atomar verlaufen und Namensdaten persistent gespeichert werden. Auf Funktionen zur Freigabe von Namens­einträgen kann bei Vor­han­densein einer Garbage Collection im System verzichtet werden. Komplexere Such­funktionen auf der Namensbasis werden von den untersten Modulen der Namensverwaltung bereitgestellt.

3.2.2.2       Komponenten der dynamischen globalen Namens­verwaltung

Die Funktionen der dynamischen globalen Namensverwaltung lassen sich grob in primitive und zusammengesetzte Operationen untergliedern. Die primitiven Funktionen verwalten nur einfache Namen in der lokalen Namensbasis. Zusammengesetzte Funktionen, d.h. Verwaltungs­funk­tionen, die sich ihrerseits aus primitiven Funktionen zusammen­setzen, verwalten hierarchi­sche, attributierte und globale Namen sowie Synonyme. Eine alternative Kategorisierung der Namens­funktionen ist die Einteilung in ortstransparente und ortsab­hängige Funktionen.

Die Interpretation attributierter und synonymer Namen findet im obersten Modul des Namens­verwalters statt und ist inhärent mit einer Überprüfung der Namenssyntax verbunden. Die Funktionen dieses Moduls sind ortstransparent, d.h. sie besitzen keine Kenntnis des Speicher­ortes der mit einem gegebenen Namen verbundenen Namenseinträge. Attributierte und synonyme Namen erfahren in diesem Modul eine Zerlegung in orthogonale, hierarchische Namensbestandteile. Während explizite Attribute im graphförmigen Namensraum repräsentiert werden, sind implizite Attribute in den Namenseinträgen an den Blättern des hierarchischen Namensraums abgelegt.

Die globale Namensauflösung und -registrierung verwaltet Namenseinträge über Knoten­gren­zen hinweg und bietet den darüberliegenden Modulen Ortstransparenz. Alle verteilungsab­hängi­gen Funktionen zur Auflösung und Registrierung globaler Namen sind in diesem separaten Modul zusammengefaßt. Dieses Modul basiert auf den Funktionen des Moduls Hierarchische Namen und den kommunikations­bezogenen Modulen, wie der Replikations­verwaltung und der Konfigurations­verwaltung.

Bevor die globale Namensauflösung angestoßen wird, prüft dieses Modul unter Miteinbe­zie­hung des Moduls Hierarchische Namen, ob lokale oder vorgehaltene Entsprechungen für gesuchte Namen vorhanden sind. Erst wenn dies nicht der Fall ist, wird eine knotenüber­greifende Auflösung angestoßen. Partielle Ergebnisse von Anfragen werden der Replikations­verwaltung zugeführt und von dieser mit Hilfe des Moduls Hierarchische Namen verwaltet. Die Konfigurationsverwaltung bestimmt den zu konsultierenden globalen Namens­verwalter und übernimmt das Konfigurieren kooperierender Namensverwalter.

Völlig lokal und verteilungsunabhängig findet die Interpretation eines hierarchischen Namens im Modul Hierarchische Namen statt. Neben lokalen hierarchischen Namen verwaltet dieses Modul auch Replikationen und Originale entfernter Namenseinträge und stellt diese der Repli­kations­verwaltung zur Verfügung. In der Verwaltung entfernter, lokaler, vorgehaltener und replizierter hierarchischer Namen bestehen innerhalb dieses Moduls keinerlei Unterschiede. Hierarchische Namen werden in eine Folge primitiver Namen zerlegt, die im Modul Primitive Namen behandelt werden. Auch die Funktionen zur Verwaltung primitiver Namen sind völlig lokal und besitzen keine Kenntnis über die Verteilung von Einträgen.

 

Namensverwalter der dynamischen globalen Namensverwaltung enthalten eine Konfigurations­verwaltung für den Aufbau und die Verwaltung des globalen Verwalternetzes.

3.3         Topologie und Organisation des Verwalternetzes

Die Ausdehnung der Namensverwaltung auf globale Netzwerke erfordert die Kooperation von Namensverwaltern. Dazu werden sie in globalen Namensverwaltungen zu einem Verwalternetz verbunden. Dieses legt fest, wie die Namensverwalter miteinander in Verbindung stehen.

In heute verbreiteten globalen Namensverwaltungen wie DNS [Mockapetris, 87a] und X.500 [CCITT, 89] wird das Verwalternetz manuell konfiguriert. Bevor in Abschnitt 3.4 die selbstän­dige Konfigurierung des Verwalternetzes in der dynami­schen globalen Namens­verwaltung beschrieben wird, zeigt der folgende Abschnitt Möglich­keiten zur Kopplung und Organisation von Namensverwaltern unter Berücksichtigung der Eigenschaften und Topologie des zugrun­deliegenden Netzwerks auf.

3.3.1          Netzwerktopologie und Kopplungsgrad der Namensverwalter

Die mit den Eigenschaften eines Netzwerks verbundene Qualität des Kommunikationsdienstes hat wesent­lichen Einfluß auf die Struktur einer globalen Namensverwaltung. So trägt die Ver­fügbarkeit von Mehrpunktverbindungen (Multicast und Broadcast) im lokalen Netzwerk­bereich wesentlich zur Steigerung der Effizienz und Ausfallsicherheit von Namensverwaltungen bei [Cheriton, 89]. Globale Netze offerieren diese Eigen­schaften i.a. nicht, so daß globalen Namensver­waltungen lediglich Punkt-zu-Punkt-Verbindungen zur Verfügung stehen. Dieser Umstand wirkt sich erheblich auf die Mechanismen globaler Namensverwaltungen aus. Die wesentlichen Einfluß­faktoren für die Struktur eines Verwalter­netzes sind:

 

Netzwerkeigenschaft

Einfluß auf das Verwalternetz

Die Durchsatzleistung der Netzwerk­verbin­dungen und der Grad der Kopplung von Namensver­waltern

Je enger Namensverwalter gekop­pelt sind und je höher die Durchsatzleistung zwischen Namens­verwal­tern ist, desto enger können Namensver­walter im Verwalternetz kooperieren. Speicherge­koppelte Namens­verwalter kön­nen eine gemeinsame Namensbasis verwalten.

Die mittlere Verzögerung der Netzwerk­verbin­dungen

Je geringer die Verzögerung der Kommunikation zwischen Namensverwaltern ist, desto enger kooperieren diese im Verwalternetz. Zwischen Namensverwaltern mit großer Verzö­gerung empfiehlt sich das Vorhalten von Namen.

Die Distanz der Namensverwalter

Die Distanz der Namensverwalter gemessen in der Anzahl der zu überwindenden Netzwerk­übergänge zwischen den Namensverwaltern entscheidet über die Beziehungen der Namensverwalter zueinander und ihre Position im Verwal­ternetz.

Die Verfügbarkeit und Ausfallsicherheit der Netzwerkverbindungen

Kommunizieren Namensverwalter über temporär verfüg­ba­re Netzwerkverbindungen, so empfiehlt sich die gegen­sei­tige Replikation von Namensverwaltern im Verwalter­netz.

Die Semantik der Kommunikation

Je nachdem, ob Punkt-zu-Punkt-, Multicast- oder Broadcast-Verbindungen für die Kommunikation zwischen Namensverwaltern zur Verfügung stehen, können diese unterschiedlich zueinander in Bezie­hung gesetzt werden.

Die Topologie des Netzwerks

Die Topologie des Netzwerks entscheidet über die Struk­tur des Verwalternetzes und die gegenseitigen Bezie­hungen der Namensverwalter.

Tabelle 3.1: Netzwerkeigenschaften und ihr Einfluß auf das Verwalternetz

Die in dieser Arbeit vorgestellte dynamische globale Namensverwaltung ist weitgehend unab­hängig von der zugrundelie­genden Netzwerk­topologie. Sowohl Punkt-zu-Punkt- als auch Mehrpunktverbindungen und die Möglichkeit zur Speicherkopplung werden vom Namensdienst effektiv unterstützt. Dazu werden Namensverwalter zu Bereichen zusammen­gefaßt, in welchen Mehrpunktverbindungen und gemeinsame Speicherbereiche genutzt werden. Zwischen diesen Bereichen erfolgt die Kommunikation über Punkt-zu-Punkt-Verbindungen.

3.3.1.1       Enge Kopplung durch gemeinsamen verteilten Speicher

Eine sehr enge Kopplung von Namensverwaltern wird durch die Verwendung eines gemein­samen verteilten Speichers (Distributed Shared Memory, DSM) zur Ablage der Namensbasis erreicht [Lupper, 94]. Eine Namens­verwaltung im DSM-System benötigt keine explizite Kom­muni­kation, um eine verteilte Namensbasis zu realisieren. Das in [Traub, 96] vorgestellte DSM-Modell gliedert sich in drei Abstraktionsebenen mit unterschiedlichen Sichten des Systems:

Namenseinträge werden auf der Objektebene ortstransparent als DSM-Objekte abgelegt. Objekte dieser Ebene werden auf zusammenhängende Spei­cherblöcke des virtuellen verteilten Speichers projiziert. Der ein Objekt repräsentierende Speicherbereich dieser Ebene ist durch eine logische Adresse, die innerhalb einer Gruppe von Knoten eindeutig ist, und durch die Größe des Spei­cher­blocks bestimmt. Speicherbereiche dieser Ebene werden trans­parent auf den physika­lischen Speicher eines oder mehrerer Knoten abgebildet, d.h. ein Objekt ist physikalisch u.U. auf mehreren Knoten existent (vgl. Abbildung 3.8). Große Objekte können sich dabei auch über den physikalischen Speicher mehrerer Knoten erstrecken. Objekte können somit auf Knoten partitioniert und auch repliziert sein. Die Zuord­nung von Speicher zu Objekt und den schemati­schen Aufbau der Schichten des DSM-Systems zeigt Abbildung 3.8:

Abbildung 3.8: Die Ebenen des DSM-Modells

Abbildung 3.8 läßt zudem erkennen, daß zwischen den einzelnen Schichten und ihren Abstrak­tionsebenen jeweils Abbildungen notwendig sind, um den physikalischen Speicherort eines Objekts zu ermitteln. Die physi­kalische Repräsentation eines Objekts ermittelt das Memory Management. Wie obige Abbildung ebenso verdeutlicht, können Objekte im physikalischen Speicher auf Knoten repliziert (A, A’) und über Knoten verteilt (B, B*) gespeichert sein, so daß die Abbildung zwischen logischen und physikalischen Adressen nicht notwendigerweise ein­deutig ist.

Der gemeinsame verteilte Speicher kann im lokalen Bereich genutzt werden, um Namens­ein­träge [Lupper, 94] transparent verteilt zu verwalten. Zwischen den Namensverwaltern ist dann für die Verwaltung einer verteilten Namensbasis keine explizite Kommunikation notwen­dig. Alle Namenseinträge werden wie lokale behandelt, da alle Namensverwalter auf eine gemein­same Namensbasis im verteilten Speicher zugreifen.

3.3.1.2       Broadcast- und Mehrpunktverbindungen

Ein hoher Kopplungsgrad der Namensverwalter ist ebenfalls gegeben, wenn der zugrunde­liegende Kommunikationsdienst innerhalb eines Netzwerkbereichs Mehrpunkt­eigenschaften besitzt. Multicast-Nachrichten sind gleichermaßen für die Verteilung und das Auffinden von Informationen nützlich, haben allerdings den Nachteil, daß sie effizient nur in lokalen Netz­werken eingesetzt werden können, da sie eine starke Belastung aller angesprochenen Knoten und eine hohe Netzlast verursachen (Broadcast-Stürme).

Aus diesem Grund unterstützt das im Internet aktuell verwendete Internet Protokoll IPv4 nur Unicast. Zwar ist in den benutzten Netzwer­ken, zum Beispiel in Ethernet, meist Multicast möglich, aber die IP-Router unterstützen Multicast nicht. Insbesondere die Router müßten aber Pakete replizieren, um auf mehrere Subnetze verteilte Mitglieder der Multicast-Gruppe zu errei­chen. Zu diesem Zweck wurde IP-Multicast und das Multicast Backbone Netzwerk (MBONE) [Deering, 89] entwickelt. Für IP-Multicast wird ein spezieller Bereich von IP-Nummern, die Class-D Adressen, als Multicast-Adressen benutzt. Class-D Adressen haben die Form En.nn.nn.nn (hex 224.0.0.0 bis hex 239.255.255.255). In einem lokalen Netzwerk gibt es Maschinen, die Multicast-Unterstützung haben, und solche, in deren IP-Implementierung kein Multicast-Empfang vorgesehen ist.

Abbildung 3.9: Broadcast-Bereiche und deren Verbindungen

Die Multicast -Fähigkeit eines Netzwerkbereichs kann verwendet werden, um neue Einträge gleichzeitig an mehrere Namensverwalter zu propagieren und dort vollständig zu replizieren, so daß jeder Namensverwalter dieselbe Namensbasis besitzt. Diese Vorgehensweise empfiehlt sich dann, wenn Namen sehr viel häufiger aufgelöst als geändert werden. Andernfalls ist es effekti­ver, wenn jeder Namensverwalter nur die Namen seiner lokalen Objekte verwaltet und bei der Namensauflösung alle Namens­verwalter durch Broadcast-Nachrichten kontaktiert[1]. Hierdurch ist stets die Aktualität der Einträge gewährleistet und es kann garantiert werden, daß, sofern das zugehörige Objekt verfügbar ist, auch der Name aufgelöst werden kann. Bei Ausfall überge­ordneter Namensverwalter oder bei Netzwerkparti­tionierung ist durch die Broadcast-Eigen­schaft gewährleistet, daß zumindest Namen von Objekten im Broadcast-Bereich aufgelöst werden können. Somit erhöht die Mehrpunkt­fähigkeit eines Teilnetzes die Ausfallsicherheit und Autonomie der lokalen Installationen (vgl. Kapitel 5).

Die Auflösung und Registrierung von Namen wird nur über den lokalen oder den Broadcast-Bereich hinaus ausgedehnt, wenn dies notwendig ist[2]. Konnte ein Name im Broadcast-Bereich nicht aufgelöst werden, so besitzt ein Namensverwalter im Broadcast-Bereich einen Verweis auf einen übergeordneten Namensverwalter, der die Auflösung des Namens auf den globalen Bereich ausdehnen kann. Es genügt, wenn ein Namens­verwalter im Broadcast-Bereich die Adresse eines übergeordneten Namensverwalters besitzt.

3.3.1.3       Lose Kopplung durch permanente, langsame WAN-Verbindungen

Mit der Ausdehnung von Netzwerken wird die Möglichkeit, Mehrpunktverbindungen für die Kommunikation zwischen Namensverwaltern einzusetzen, zunehmend eingeschränkt. Im WAN-Bereich sind Broadcast-Verfahren für die Verteilung und Lokalisierung von Namens­einträgen nicht einsetzbar, da dies eine hohe Belastung des Netzwerks durch Broadcast-Nach­richten bedeuten würde und außerdem jeder Namens­verwalter, der eine derartige Broadcast- Nachrichten erhält, die Anfrage bearbeiten muß, unab­hängig davon, ob er zur Auflösung eines Namens beitragen kann oder nicht.

Existieren im WAN-Bereich permanente physikalische Verbindungen, die eine lose Kopplung zwischen einzelnen global verteilten Netzwerkknoten herstellen[3], dann muß sich der Netzwerk­verkehr auf logische Punkt-zu-Punkt-Verbindungen beschränken. Für die Kommunikation der Namensverwalter untereinander bedeutet dieser Umstand, daß nur gezielte Interaktionen zwi­schen den Namensverwaltern stattfinden. Eine Konsequenz der eingeschränkten Kommuni­kationsfähigkeit globaler Netzwerke ist die Konzentration der Namensinformationen auf wenige bekannte Namensverwalter. Eine weit gestreute Verteilung der Informationen durch einzelne Punkt-zu-Punkt-Verbindungen wäre sehr zeitaufwendig.

Werden für die Kommunikation zwischen Namensverwaltern keine logischen Verbin­dungen, sondern Datagramme eingesetzt, so entfällt die Zeit für den Verbindungs­aufbau. Die Sicherung des Kanals vor Nachrichtenverlusten ist in diesem Fall durch die Protokolle der globalen Namensverwaltung zu realisieren. WAN-Verbindungen besitzen eine im Vergleich zu LANs niedrige Datenrate, eine hohe Fehlerrate und eine geringe Ausfallsicherheit. Zur Beschleunigung der Zugriffs und zur Erhöhung der Verfügbarkeit ist es daher angebracht, Namenseinträge zwischen Netzwerkbereichen zu replizieren (vgl. Kapitel 5).

3.3.1.4       Temporäre Verfügbarkeit physikalischer Netzwerkverbindungen

Eine flächendeckende Vernetzung wird mittelfristig nur mit drahtgebundenen oder drahtlosen Wählverbindungen realisier­bar sein. Diese besitzen gegenüber permanenten physikalischen Netzwerk­verbindungen folgende Nachteile:

     Ein expliziter Aufbau der physikalischen Netzwerkverbindung ist notwendig[4], der im Ver­gleich zum Aufbau logischer Netzwerkverbindungen verhältnismäßig viel Zeit in Anspruch nimmt und Verbindungskosten verursacht.

     Die Kommunikation verläuft gerichtet, d.h. es stehen stets nur Punkt-zu-Punkt-Verbin­dungen zwischen Namensverwaltern zur Verfügung. Ein Namensverwalter kann gleich­zei­tig immer nur eine begrenzte Anzahl von Wählverbindung unterhalten.

     Wählverbindungen bestehen nur temporär. Besteht eine Verbindung, so wird der Anschluß eines Namensverwalters monopolisiert. Die Gefahr der Monopolisierung erzwingt daher kurze Verbindungszeiten, die sich wiederum nachteilig auf die Effizienz auswirken.

     Die besondere Kostenstruktur von Wählverbindungen erzwingt kurze Verbindungszeiten und eine Reduzierung der notwendigen Wählverbindungen.

Eine globale Namensverwaltung muß auch dann ihre Arbeit verrichten, wenn keine Mehrpunkt­fähigkeit gegeben ist, sondern nur temporäre physika­lische Punkt-zu-Punkt-Verbindungen zur Verfügung stehen. Obige Nachteile von Punkt-zu-Punkt-Verbindungen sind daher bei der Konfigurierung einer dynamischen globalen Namensverwaltung zu berücksichtigen, um eine effiziente Verwaltung von Namen über Wählver­bindungen zu realisieren [Lupper, 90].

Gegenwärtig ist über Wählverbindungen bereits eine flächendeckende Anbindung an globale Netzwerke realisiert[5]. In naher Zukunft ist dabei mit einer zunehmenden Anzahl mobiler, drahtlos angebundener Netzwerkknoten zu rechnen (vgl. Abbildung 3.10). Damit besteht keine feste Netzwerkstruktur mehr, woran sich die Struktur von Namens­räumen orientieren könnte. Namen sollten daher nach logischen Gesichtspunkten verge­ben werden und sich nicht an phy­sikalischen Gegebenheiten orientieren.

In zellulären Funknetzen wäre denkbar, Broadcast-Bereiche einzurichten und nur die Kommu­nika­tion zwischen den Zellen über Punkt-zu-Punkt-Verbindungen[6] abzuwickeln (wie z.B. in WaveLAN von AT&T). Für die Übermittlung von Nachrichten der Namensverwaltung könnte ein separater Signalisierungs­kanal (analog dem D-Kanal in ISDN) verwendet werden, der in der Lage ist, ohne expliziten Aufbau einer Verbindung Nachrichten zu überstellen. Die Wahr­schein­lichkeit jedoch, daß zwei mobile Teilnehmer, die miteinander kommunizieren, sich in derselben Zelle befinden, ist relativ gering. Zwar wird sich die Anzahl der mobilen Netzwerkteilnehmer weiter erhöhen, gleichzeitig wird sich jedoch die Zellgröße mobiler Netze verringern, um mehr Teilnehmer bedienen zu können. Da die Anzahl der Mobilstationen in einer Zelle konstant bleibt, ist keine bessere Effektivität einer Broadcast-Option zu erwarten.

Abbildung 3.10: Drahtgebundene und drahtlose Wählverbindungen

Die Präsenz von Wählverbindungen in einer ansonsten statischen Konfiguration (z.B. Mobil­stationen und Basisstationen) hat eine Änderung der Semantik der Kommunikation zwischen den Namensverwaltern zu Folge. Während Namensverwalter in lokalen Netzwerken die Broadcast-Option nutzen konnten, um Anfragen direkt an den zuständigen Namensverwalter und gleichzeitig an einen übergeordneten Namensver­walter zu übermitteln, kann im Falle von Wähl­verbindungen die Anfrage nur gezielt an den übergeordneten Namens­verwalter gerichtet werden. Weitere lokale Namensverwalter können nicht erreicht werden.

Physikalische Wählverbindungen bleiben während einer Anfrage nicht bestehen, da andernfalls Ergebnisse einer Anfrage vom zuständigen Namensverwalter nur über dieselbe Verbindung vom übergeordneten Namensverwalter zum lokalen Namensverwalter zurück­gegeben werden könnten. Eine direkte Rückantwort vom zuständigen Namensverwalter, wie sie insbesondere wünschenswert ist, wenn auch übergeordnete Namensverwalter über Wähl­verbindungen kom­munizieren, wäre damit ausgeschlossen. Namensverwalter müssen daher berücksichtigen, daß Verbindungen temporär nicht verfügbar sein können.

Eine eingehende Betrachtung verschiedener Aspekte der Namensverwaltung in Präsenz von Wählverbindungen findet der interessierte Leser in [Lupper, 90].

3.3.2          Organisationsstrukturen von Verwalternetzen

Prinzipiell existieren verschiedene Möglichkeiten, Namensverwalter in einem Verwalternetz zu organisieren und Namenseinträge über Namensverwalter zu verteilen. Die Struktur des Ver­walternetzes und die Verteilung der Namenseinträge auf Namensverwalter sind dabei eng mit­einander verbunden. Hierbei sind verschiedene Grade von Replikation und Verteilung von Namenseinträgen denkbar (vgl. Abbildung 3.11).

Abbildung 3.11: Grad der Verteilung und der Replikation

Legt man als Kriterium zur Beurteilung des Grades der Verteilung den Aufwand zugrunde, der zu betreiben ist, um eine bestimmte Information zu erhalten, so ist der Fall, in dem jeder Knoten nur Namenseinträge für lokale Objekte verwaltet, als der höchste Grad der Verteilung zu betrachten. Konträr zu diesem Kriterium kann zur Beurteilung der Verteilung auch der Grad der Verbreitung von Information herangezogen werden. Werden Namenseinträge in allen Knoten repliziert, so sind sie jederzeit und überall verfügbar, jedoch ist ihre Verteilung entsprechend aufwendig.

Folgende Organisationsschemata für die Namensverwaltung in verteilten Systemen und die Vertei­lung von Namenseinträgen wurden von Terry [Terry, 84] und Goscinski [Goscinski, 89] identifiziert:

·        zentrale Namensverwaltung

·        vollständig replizierte Namensverwaltung

·        dezentrale Namensverwaltung

·        verteilte Namensverwaltung

·        hierarchische Namensverwaltung

Welches Organisationsschema für die globale Namens­verwaltung geeignet ist, hängt u.a. von folgenden Faktoren ab:

·        der Leistungsfähigkeit (Speicher, Rechenleistung) und Verfügbarkeit der Namensverwalter.

·        der Semantik der verwendeten Kommunikationsprotokolle und der Topologie des zugrun­deliegenden Netzwerks.

·        der Struktur des verwalteten Namensraums.

Im folgenden wird unter Berücksichtigung obiger Faktoren die Verwendbarkeit der einzelnen Organisationsschemata für die dynamische globale Namensverwaltung untersucht.

3.3.2.1       Zentrale Namensverwaltung

Die konzeptionell einfachste Organisationsform ist zweifelsohne die zentralisierte Namens­ver­waltung. Sie ist gekennzeichnet durch einen einzigen Namensverwalter, der eine zentrale Tabelle oder Datenbank mit allen verfügbaren Namenseinträgen in der verteilten Umgebung unterhält. Ein Beispiel für einen zentralen Namensverwalter ist der NIC Name Server [Pickens, 79]. Zentralisierte Namens­ver­waltungen verwalten häufig flache oder attributierte Namens­räume, seltener werden sie auch für hierarchische Namensräume verwendet .

Abbildung 3.12: Modell einer zentralisierten Namensverwaltung

Unter netzwerktopologischen Aspekten ist die zentrale Namensverwaltung besonders dann geeignet, wenn dem System ein sternförmiges Netzwerk zugrunde liegt. Insbesondere für Wählverbindungen ohne Broadcast-Option kann in räumlich begrenzten Systemen die zentrale Namensverwaltung durchaus eine effektive Alternative zur verteilten Namensverwaltung dar­stellen. Die Kosten einer Namensauflösung entsprechen den Kosten, den zentralen Namens­verwalter vom entferntesten Knoten im System aus zu kontak­tieren.

Eine Organisation mit nur einem zentralen Namens­verwalter ist relativ unkompliziert. In kleinen verteilten Umgebungen ist ein zentraler Namensverwalter, der alle Namen eines Namensraums enthält, gewöhnlich in der Lage, Anfragen ohne große Leistungsein­bußen und Speicheranfor­derungen zu erfüllen. Das Erzeugen eindeutiger Namen läßt sich in einem kleinen System mit geringem Aufwand realisieren. Ein weiterer Vorteil ist die Vermeidung jeglicher Konsistenz­probleme, wie sie in Systemen mit mehr als einem Namens­verwalter auftreten können.

Nicht zu vernachlässigen sind jedoch die Nachteile eines zentralen Namensverwalters. Insbe­sondere durch die inhärente Abhängigkeit des Systems von der Zuverlässigkeit und Verfügbar­keit des zentralen Namensverwalters und die starke Belastung dieser Instanz kommt ein Ausfall faktisch einem Ausfall des Gesamtsystems gleich.

Als weiterer Nachteil kommt hinzu, daß in der Regel der gewünschte Dienst nicht vom selben Rechner wie der Namensdienst erbracht wird. Durch die Indirektion beim Zugriff auf Dienste können sich lange Verzöge­rungen zwischen dem Zugriff auf den Namens­verwalter und dem Beginn der dienst­orientierten Über­tragung ergeben. Insbesondere bei Wählver­bindungen wird hierdurch ein zeitraubender und kostenintensiver Verbindungs­wechsel notwendig. Im Zusam­menhang mit zentralen Namens­verwaltern und Wählverbin­dungen besteht auch die Gefahr der Monopolisierung [Lupper, 90]. Die Reduzierung der Verbindungszeiten kann die Monopolisie­rungsgefahr lediglich minimieren, jedoch nicht gänzlich ausschließen.

3.3.2.2       Replizierte Namensverwaltung

Zur Steigerung der Verfügbarkeit einer Namensverwaltung kann die Verwaltung des Namens­raums ganz oder teilweise mehreren Namensverwaltern k1…kn übertragen werden. Dabei wird jedoch nicht die Funktionalität eines Namensverwalters ver­teilt, sondern jeder Verwalter arbeitet autonom. Als Beispiel für ein derartiges System sei hier der Pub Name Service[AL3]  erwähnt.

Im Extremfall kann der gesamte Namensraum auf allen Namensverwaltern vollständig repliziert sein. Diese Replikationsform wird häufig bei flachen Namens­räumen verwendet, um die Aus­fall­sicherheit der Namensverwaltung zu erhöhen und die Zugriffszeit zu reduzieren. Da jeder Klient den für ihn nächstgelegenen Namensverwalter kontaktieren kann, reduzieren sich die Kommuni­ka­tionskosten gegenüber einem zentralen System. Ist der lokale Namensverwalter an der replizierten Namensverwaltung beteiligt, so können Namen lokal aufgelöst werden, ohne andere Namens­verwalter kontaktieren zu müssen.

Solange die Anzahl globaler Namen nicht überhandnimmt, ist die vollständige Replika­tion der Namenseinträge auf allen Namensverwaltern vorteilhaft. Die Namens­ver­walter tauschen jeweils wechselseitig mit den ihnen bekannten Instanzen Namens­infor­mationen aus und erhalten so eine einheitliche Sicht aller globalen Namen im Netz. Im DEC Global Name Service [Lampson, 86] sind replizierte Namensverwalter ringförmig verkettet.

Abbildung 3.13: Propagieren von Namen bei vollständiger Replikation der Namensverwalter

Durch die vollständige Replikation von Namenverwaltern entstehen bei großer Anzahl von Namen in allen beteiligten Namens­verwaltern hohe Speicheran­forderungen zur Verwaltung der redundant gespeicherten Namenseinträge. Um den Speicheraufwand zu reduzieren, können Namens­einträge zunächst verteilt und anschließend wieder entfernt werden, sofern sie lokal nicht benutzt wer­den.

Die vollständige Replikation von Namensver­waltern verschärft zudem das Konsistenzproblem und erhöht den Aufwand für das Propagieren von Änderungen. Aufgrund des bidirektio­nalen Informations­flußes müssen alle Namens­verwalter jede Verände­rung im gesamten Bereich pro­pagieren. In der Regel werden bei vollständiger Replikation Änderungen über teure Broadcast-Mechanis­men propagiert. Das bietet sich insbeson­dere dann an, wenn Änderungen im Namens­raum im Vergleich zu Anfragen sehr selten sind.

Bei organisatorisch oder physikalisch partitionierten Namensräumen bieten sich Replikations­formen an, die Partitionen des Namensraums über mehrere Namensverwalter verteilen und replizieren. Auch hier besteht das Konsistenzproblem bei multiple copy updates, jedoch nicht in dem Maße, wie bei vollständig replizierten Namensbasen, da nicht alle Namensverwalter von Änderungen betroffen sind.

3.3.2.3       Dezentrale Namensverwaltung

Der hohe Speicherplatzbedarf vollständig replizierter und die Belastung zentraler Namens­ver­walter kann reduziert werden, indem der Namens­raum partitioniert und auf mehrere Namens­verwalter verteilt wird. Eine derartig dezentralisierte Namens­verwaltung besteht aus Namens­verwaltern, die jeweils genau festgelegte Partitionen des Namensraums verwalten.

Um einen Namensraum zu partitionieren und auf Namenverwalter zu verteilen, existieren ver­schiedene Ansätze:

a)   Physikalische (geographische) Partitionierung: In jedem Netzwerkbereich wird ein Namens­verwalter unterhalten, der für die Verwaltung der Namen dieses Bereich zuständig ist. Der Name des zuständigen Namensverwalters ist Teil des globalen Namensraums.

b)   Organisatorische (funktionale) Partitionierung: Die einzelnen Namensverwalter sind Organisationen zugeordnet. Die Partitionierung des Namensraums und die Verteilung der Namen auf Namensverwalter erfolgt aufgrund der Zugehörigkeit der benannten Objekte zu Organisationen.

c)   Typ-orientierte Partitionierung: Namenseinträge werden anhand des Typs der benannten Objekte auf Namensverwalter verteilt. Jeder Namensverwalter ist für einen bestimmten Typ von Objekten zuständig.

d)   Logische Partitionierung: Namen werden anhand der Semantik der Namensteile auf Namensverwalter verteilt ohne direkten Bezug zu einer physikali­schen Lokation oder orga­nisatorischen Ein­heit.

e)   Willkürliche Partitionierung: Die Verteilung der Namenseinträge auf die einzelnen Namens­verwalter geschieht zufällig und ist nicht deterministisch.

Um den für eine Partition zuständigen Namens­verwalter zu bezeichnen, kann für physikalisch partitionierte Namensräume beispielsweise folgende Namens­konvention verwendet werden:

Name@Namensverwalter

Dabei bezeichnet der rechte Teilname „Namensverwalter“ den zuständigen Namensverwalter und der linke Teilname „Name“ identifiziert eindeutig das Objekt im Kontext des Namens­ver­walters. Der Name „Name.Namensverwalter“ ist global eindeutig, vorausgesetzt die Namens­verwalter sind eindeutig benannt.

In physikalisch partitionierten Namensräumen besteht eine Eins-zu-eins-Beziehung zwi­schen den Partitionen des Namensraums und den Namensverwaltern. Eine derartige Partitionierung ver­langt zwei Schritte, um auf ein benanntes Objekt zuzugreifen, einen Schritt, um den zustän­digen Namensverwalter zu ermitteln, und einen, um die Informationen von diesem zu erhalten. Handelt es sich bei dem zuerst kontaktierten Namensverwalter bereits um den zuständigen Namensverwalter, so ist nur ein Schritt erforderlich (vgl. Abbildung 3.16). Um eine effektive Verwal­tung eines physikalisch partitionierten Namens­raums zu ermöglichen, sollte jeder Klient den für eine bestimmte Partition des Namensraums zuständigen Namensverwalter kennen.

Abbildung 3.14: Modell einer dezentralisierten Namensverwaltung

In organisatorisch partitionierten Namensverwaltungen korrespondieren die Partitionen des Namensraums mit Organisationen und nicht mit einzelnen Namensverwaltern. Ein Namens­verwalter kann für eine oder mehrere Organisationen aber auch für Teile einer Organisation zuständig sein. In diesem Falle kann die Namensverwaltung einfach restrukturiert werden, da die Namen nicht direkt abhängig von der Zuordnung des zuständigen Namensverwalters sind. Bei organisatorischer Partitionierung geht die Zuständigkeit eines Namensverwalters für Namen nur indirekt aus dem Namen hervor:

Name.Organisation

Zur Ermittlung der Zugriffskosten sei zunächst angenommen, daß jeder Namensverwalter die Namen genau einer Organisation verwal­tet, wie es der physikalischen Partitionierung ent­spricht. Um einen effizienten Zugriff auf Namensinformationen zu gewährleisten, sollte jeder Namensverwalter Kenntnis davon besitzen, welche Instanzen für eine Organisation zuständig sind. Unter diesen Voraussetzungen können Namens­anfragen wie in physikalisch partitionier­ten Namensräumen in zwei Schritten aufgelöst werden.

Einer der Hauptvorteile der organisatorischen Partitionierung ist, daß auf einfache Weise repli­zierte Namensinformationen in die Namensauflösung miteinbezogen werden können. Die Un­terstützung von Replikationen in organisatorisch partitionierten Namensräumen bedeutet, daß anstatt eines einzigen Namensverwalters mehrere Namensverwalter für eine Organisation zuständig sind. Zur Namensauflösung sollte daher jeder Namensverwalter alle zuständigen Namensverwalter für jede Organisation kennen. Als Beispiel für eine Namens­verwaltung, die auf diesem Ansatz beruht, kann Grapevine [Birell, 82] angeführt werden.[V4] 

Weiter besteht die Möglichkeit, einen Namensraum anhand des Typs des benannten Objekts zu partitionieren und auf Namensverwalter zu verteilen. Bei der Namensauflösung muß dann jeder Namensverwalter wissen, wo die Namen eines bestim­mten Objekttyps verwaltet werden. Hier­für gelten ähnliche Überlegungen wie bei der organisa­torischen Partitionierung.

Im Rahmen der Partitionierung von Namensräumen ist auch eine willkürliche Verteilung von Namenseinträgen auf Namensverwalter denkbar. In diesem Fall ist die Auflösung von Namen sehr aufwendig, da im Durchschnitt die Hälfte aller Namensverwalter kontaktiert werden muß, um einen Namen aufzulösen. Der Einsatz von Broadcast- oder Hash-Verfahren zur Lokalisie­rung von Namens­einträgen in Namensverwaltern kann die Zugriffszeit unter Umständen redu­zieren. Broadcast-Methoden sind jedoch in globalen Netzwerken i.d.R. nicht einsetzbar und Hashing bereitet Probleme beim Löschen von Namenseinträgen [Morris, 68].

3.3.2.4       Vollständig verteilte Namensverwaltung

Bei der vollständig verteilten Namenverwaltung werden Namen nur in den Knoten verwaltet, in denen die zugehörigen Objekte abgelegt sind. Objektverwalter und Namensverwalter befinden sich somit auf demselben Rechner. Ein Vorteil dieser Vorgehensweise ist, daß bei Ausfall eines Namensverwalters über Namen nur lokale Objekte nicht verfügbar sind. Durch die Ver­wal­tung der Namen im selben Knoten wie die gebundenen Objekte ist ferner gewährleistet, daß stets auf die aktuellen Namens­informationen zugegriffen wird.

Die vollständige Verteilung von Namenseinträgen erhöht den Aufwand für die Registrierung und Auflösung globaler Namen. Da a priori nicht bekannt ist, welcher Namensverwalter einen Namenseintrag verwaltet, muß bei Namensanfragen und beim Prüfen der Eindeutigkeit neuer Namen bei allen Namens­verwaltern nachgefragt werden, ob der gesuchte Namen bereits vorhanden ist. Dies kann geschehen, indem jeder bekannte Namensverwalter nacheinander iterativ, rekursiv oder transitiv[7] kontaktiert wird (vgl. Kapitel 4), bis der gesuchte Name ermittelt ist. Diese Vorgehensweise ist allerdings äußerst zeit­auf­wendig. Zeitlich unkritischer ist die Prüfung der Eindeutigkeit und die Lokalisierung vollständig verteilter Namenseinträ­gen durch Broadcast-Nachrichten (vgl. Abbildung 3.15), wobei oben genannte Gründe den Einsatz in globalen Netz­werken verbieten.

Abbildung 3.15: Vollständig verteilte Verwaltung von Namen

Ein Problem der vollständigen Verteilung von Namen sind konkurrierende Registrierungen des­selben Namens. Dazu wird der neue Namen immer zuerst lokal registriert und anschließend propagiert. Wird innerhalb einer bestimmten Zeit nach der Registrierung eines Namens ein Konflikt mit einer konkurrierenden Registrierung erkannt, so wird diese zurückgenommen. Eine weitere Methode zur Auflösung von Konflikten bei der Registrierung von Namen bieten abstimmungs­gesteuerte Verfahren (sog. verteilte Algorithmen), die bei Vorliegen gleich­berech­tigter Kopien die Sequentialisierung von Anfragen übernehmen.

Änderungen von vollständig replizierten Namenseinträgen werfen zusätzliche Probleme auf, wenn sie für denselben Namenseintrag an verschiedene Namensverwalter gerichtet werden. Eine Möglichkeit diese Konflikte aufzulösen besteht in der Einführung eines primären Eintrags (Masterkopie), den stets derjenige Namensverwalter hält, bei dem der Eintrag zuerst registriert wurde. Alle Änderungswünsche werden dabei zunächst an den Eigen­tümer des primären Ein­trags gerichtet, der konkurrierende Änderungen sequentialisiert und propagiert.

3.3.2.5       Hierarchische Namensverwaltung

Keine der bisher in diesem Abschnitt diskutierten Organisationsformen für Namensverwalter ist adäquat für globale Systeme. Die Situation kann jedoch entscheidend verbessert werden, wenn die Namenverwalter hierarchisch organisiert werden und zusätzlich der verwaltete Namensraum eine hierarchische Struktur besitzt. Der Namens­raum kann dann hierarchisch partitioniert wer­den und die Partitionen können nach dem „divide and conquer“-Prinzip auf die hierarchisch organisierten Namensverwalter verteilt werden. Jeder Namensverwalter zeichnet für die Ver­wal­tung einer Teilhierarchie des Namensraums verantwortlich. Die hieraus resultierende, hier­archisch orga­nisierte Namensverwaltung ist eine Erweiterung der dezentralisierten Namens­verwaltung. Sie ist besonders effektiv, falls die Verwalterhierarchie an den Namensraum ange­paßt ist.

Abbildung 3.16: Konfigurations- und Navigationsinformation hierarchisch organisierter Namensverwalter

Durch die hierarchische Organisation der Namensverwaltung genügt es, wenn jeder Namens­verwalter die Lokation des ihm in der Hierarchie direkt übergeordneten Namensverwalters und der direkt nachfolgenden Namensverwalter kennt (vgl. Abbildung 3.16). Damit Aufträge nicht nur vom Namensverwalter an der Wurzel der Verwalterhierarchie entgegengenommen werden können, ist es notwendig, jeden Namensverwalter mit Konfigurationsinformation zu versehen, die den Weg zum Namensverwalter an der Wurzel der Verwalterhierarchie beschreibt. Die Lokation der Wurzel der Verwalter­hier­archie kann aus dieser Information gewonnen werden. Diese Konfigurations­in­formation bildet das Verwalternetz und wird nur geändert, wenn ein Namens­ver­walter zum Verwalternetz hinzukommt oder entfernt wird.

Für die verteilte Auflösung von Namen muß in den Namensverwaltern zusätzlich Information vorhanden sein, welcher Namensverwalter welchen Teil des Namensraums verwaltet. Da die verteilte Auflösung von Namen als Navigation im Verwalternetz betrachtet werden kann, wird diese Information als Navigationsinformation bezeichnet. Ein Namensverwalter in der Hierar­chie des Verwalternetzes muß lediglich Navigations­information für die Teilbäume des Namens­raums besitzen, die sich in von ihm verwalteten Kontexten befinden (vgl. hierzu Kapitel 4). Die Naviga­tions­information in Namensverwaltern kann sich durch die Registrierung und das Löschen von Namenseinträgen ändern.

3.3.3          Die Verwalterstruktur der dynamischen globalen Namensverwaltung

Unter den in Abschnitt 3.3.2 vorgestellten Organisationsformen für Namens­verwalter gilt es nun die für die dynamische Verwaltung globaler Namensräume geeignete zu bestimmen. Für ein hierarchisches Verwalternetz zur globalen Namensver­waltung sprechen folgende Gründe:

·        Eine hierarchische Verwalterstruktur kann der physikalischen oder organisatorischen Parti­tionierung des Namensraums angepaßt werden.

·        Durch die hierarchische Verteilung der Zuständigkeiten haben lokale Änderun­gen im Namensraum keine globalen Auswirkungen auf Namensverwalter.

·        Für die Verwaltung eines Namensraums durch hierarchisch organisierte Namens­verwalter ist lediglich eine geringe Anzahl von Verbindungen und Nachrichten erforderlich.

·        Die Kommunikation zwischen hierarchisch organisierten Namensverwaltern verläuft gerichtet und kann über Punkt-zu-Punkt-Verbindungen erfolgen.

Die dynamische globale Namensverwaltung verwaltet einen hierarchischen Namens­raum, der nicht nach physikalischen oder organisatorischen, sondern nach logischen Gesichts­punkten partitioniert wird. Außerdem sollte die Struktur der dynamischen globalen Namens­verwaltung verschiedene Netz­werktopologien berück­sichtigen.

Als Verwalterstruktur der dynamischen globalen Namens­verwaltung wurde daher ein hierarchi­sches Verwalternetz gewählt, das zusätzlich replizierte, vollständig verteilte und zentra­le Namensverwalter enthält. Welche Art der Namensverwaltung in Teilen des Verwalternetzes der dynamischen globalen Namensverwaltung konkret verwendet wird, ist abhängig von der Netzwerk­topologie und der Semantik der Netzwerkkommuni­kation:

Hierarchische Namensverwaltung:

·        Die Namensverwalter der dynamischen globalen Namensverwaltung bilden eine hierarchi­sche Verwalterstruktur, um globale Namen zu verwalten.

Verteilte Namensverwaltung:

·        Lokale Namen besitzen nur lokale Signifikanz und werden daher nur in den objekt-verwal­tenden Netzwerkknoten gehalten.

·        Verbundweite Namen werden ebenso in den objekt-verwaltenden Netzwerkknoten gehalten. Zusätzlich müssen sie jedoch im Verbund eindeutig sein.

Replizierte Namensverwaltung:

·        Zur Steigerung der Effizienz und der Ausfallsicherheit werden globale Namenseinträge auf Namensverwalter inner­halb desselben Netzwerkbereichs repliziert (aktive Replikation).

·        Namensverwalter halten häufig verwendete globale Namen in ihrer lokalen Namens­basis (vgl. Kapitel 5) vor (passive Replikation).

Zentrale Namensverwaltung:

·        Stehen der Namensverwaltung zur Kommunikation lediglich Punkt-zu-Punkt-Verbindungen zur Verfügung, so werden alle nicht-lokalen Namen in für den Netzwerkbereich zustän­di­gen zentralen Namensver­waltern gehalten. Diese können wiederum Teil hierarchischer Verwalternetze sein.

Diese hybride Verwalterstruktur bietet in eine bessere Verteilung der Zustän­digkeiten. Die effiziente Auflösung globaler Namen wird durch das hierarchische Verwalternetz ermög­licht. Besonders wichtig bei der dynamischen Namensverwaltung ist, daß lokale Änderun­gen keine globalen Auswirkungen haben und die Aktualität der Namenseinträge gegeben ist. Durch die verteilte Namensverwaltung im lokalen Netzwerkbereich wird erreicht, daß die Registrierung und Auflösung lokaler oder verbundweiter Namen keinen globalen Netzwerkverkehr verur­sacht. Ferner werden, wo immer möglich, zentrale Instanzen, deren Ausfall die Funktion der gesamten Namensverwaltung beeinträchtigt, vermieden. Jeder permanent verfügbare Namens­ver­walter kann in die globale Namensverwaltung miteinbezogen werden, wodurch eine höhere Ausfallsicherheit durch strukturelle Redundanz erreicht wird.

Wie ein geeignetes Verwalternetz für die dynamische globale Namensverwaltung automatisch konfiguriert und verwaltet wird, beschreibt der nächste Abschnitt. Der Problematik der adäqua­ten Partitionierung von Namens­räu­men und der Verteilung von Namens- und Navigations­informa­tionen im Verwalternetz, um eine effiziente und sichere Auflösung zu gewähr­leisten, widmet sich Kapitel 4.

 

Das Verwalternetz der dynamischen globalen Namens­verwaltung ist hierarchisch organisiert, enthält jedoch zusätzlich replizierte, vollständig verteilte und zentrale Namensverwalter.


3.4         Konfigurierung hierarchischer Verwalternetze

Für den Aufbau globaler Verwalternetze muß in Namensverwaltern Information über benach­barte Namensverwalter vorhanden sein. Der folgende Abschnitt beschreibt zunächst diese Verwalterinformation und nimmt eine Differenzierung vor. Anschließend werden verschiedene Formen der manuellen Konfigurierung eines hierarchischen Verwalternetzes diskutiert und ein neuartiges Verfahren vorgestellt, um hierarchische Verwalternetze selb­ständig und dynamisch zu konfigurieren.

3.4.1          Verwalterinformationen in hierarchischen Verwalternetzen

Namensverwalter in hierarchischen Verwalternetzen verwalten neben Namenseinträgen auch Informationen über in der Hierarchie benachbarte Namensverwalter. Diese Verwalter­informa­tionen können wie folgt kategori­siert werden:

·      Konfigurationsinformationen bilden das hierarchische Verwalternetz und verweisen auf

·      in der Hierarchie direkt überge­ordneten Namensverwalter, um die globale Auflösung von Namen in der Verwalter­hierarchie nach oben zur Wurzel zu leiten (vgl. Kapitel 4).

·      in der Hierarchie direkt untergeordneten Namensverwalter, um das Einfügen und Ent­fer­nen von Namensverwaltern im Verwalternetz zu ermöglichen (vgl. Abschnitt 3.4.3.3).

·      den Namensverwalter an der Wurzel der Ver­wal­ter­hier­archie, auch wenn dies nur aus Effizienzgründen und nicht aus operationellen Gründen notwendig ist.

·      Replikationsinformationen geben an, welche weiteren Namensverwalter die Namensbasis eines bestimmten Namensver­wal­ters replizieren.

·      Navigationsinformationen geben an, welcher Namensverwalter eine Partition des globalen hierarchischen Namensraums verwaltet, und leiten die Auflösung und Registrierung globa­ler Namen an die für einen Namen zuständigen (untergeordneten) Namensverwalter.

Abbildung 3.17 zeigt die unter­schiedlichen Beziehungen eines Namensverwalters im hierarchi­schen Verwalternetz zu benach­barten Namens­verwaltern, die durch die Verwalter­informationen definiert werden.

Abbildung 3.17: Verwalterinformationen in hierarchisch organisierten Namensverwaltern

Konfigurationsinforma­tionen, die auf über­geord­nete und untergeordnete Namensverwalter verwei­sen, aber auch Navigations- und Replikationsinformationen haben bestimmte Konsis­tenz­bedingungen zu erfüllen. Die Konfigurationsinformation in den Namensverwaltern eines hierarchischen Verwal­ternetzes muß folgende Konsistenzbedingungen erfüllen:

·        Existenz eines obersten Verwalters: In der Verwalterhierarchie existiert mindestens ein Namensverwalter k0, der keinen übergeordneten Namensverwalter besitzt.

·        Existenz eines übergeordneten Verwalters: Jeder Namensverwalter ki mit i¹0 muß (mindestens) einen ihm übergeordneten Namensverwalter ki-1 besitzen.

·        Kenntnis eines obersten Verwalters: Jeder Namensverwalter ki muß den/die ober­sten Namensverwalter k0 der Verwalter­hier­archie kennen.

·        Kenntnis eines übergeordneten Verwalters: Jeder Namensverwalter ki mit i¹0 muß (mindestens) einen ihm übergeordneten Namensverwalter ki-1 kennen.

·        Kenntnis untergeordneter Verwalter: Jeder Namensverwalter ki muß seine ihm untergeordneten Namensverwalter ki+1 kennen, sofern diese existieren.

·        Symmetrie der Konfigurationsinformation: Falls ki+1 ein untergeordneter Namens­verwalter von ki ist, so ist ki auch ein übergeordneter Namensverwalter von ki+1.

Diese Konsistenzbedingungen für die Konfigurationsinformation können nur verletzt werden, wenn Namens­verwalter hinzuge­fügt oder aus der Verwalterhierarchie entfernt werden. Es ist daher darauf zu achten, daß diese Operationen einen atomaren Verlauf nehmen. Zusätzlich kann der Ausfall eines Namens­verwal­ters diese Konsistenzbedingungen verletzen (vgl. hierzu Kapi­tel 5). In herkömmlichen Namensverwaltungen ist die Bereitstellung der Konfigura­tions­infor­mation mit einem hohen administrativen Aufwand verbunden und erfordert detaillierte Kenntnisse über die Arbeitsweise der Namensverwaltung. Die in dieser Arbeit beschriebene dyna­mische globale Namens­ver­waltung erstellt die Konfigurationsinformation selbständig und legt sie in der Namensbasis des Namensverwalters als spezielle Namenseinträge ab.

Namensverwalter werden repliziert, um die Auflösung globaler Namen zu beschleuni­gen und die Ausfall­­sicherheit der Namensverwaltung zu erhöhen. Die Replikationsinformation in Namensverwaltern kann sowohl Verweise auf replizierte Namensverwalter im lokalen als auch im globalen Netzwerk­bereich umfassen. Die Replikation kann ganze Namensverwalter umfas­sen oder sich auf einzelne Teile der Namens­basis beschränken. Innerhalb lokaler Netzwerke mit Broadcast-Eigen­schaft beschränkt sich die Replikation auf globale Namen, da verbundweite Namen durch Broadcast-Nach­richten aufgelöst werden können. Zwischen unzuver­lässigen und langsa­men globalen Kommunika­tions­verbin­dungen werden Namens­ein­träge aus Gründen der Effizienz und Verfüg­barkeit repliziert. Die Replikationsinformation in Namens­ver­waltern kann symme­trisch oder einseitig sein, je nachdem ob Namensverwalter wechselseitig repliziert wer­den oder ein primärer Namens­verwalter existiert.

Die Navigationsinformation in hierarchisch organisierten Namensverwaltern hat ebenfalls gewisse Konsistenzbedingungen zu erfüllen, wie in Kapitel 4 noch eingehend dargelegt wird. Navigationsinformationen verweisen auf unter­geordnete Namensverwalter, die die Zuständig­keit für eine bestimmte Partition des Namens­raums besitzen. Die Bereitstellung von Naviga­tionsinformation, die für die globale Auflösung von Namen unentbehrlich ist, erfolgt in herkömm­li­chen Namensverwaltungen durch Administration. Die dynamische globale Namens­verwaltung hingegen generiert diese Navigations­information in Namensverwaltern selbständig (vgl. Kapitel 4).

3.4.2          Manuelle Konfigurierung hierarchischer Verwalternetze

Die Struktur des Verwalternetzes korrespondiert vielfach mit der Struktur des verwalteten Namensraums. Hierarchische Namensräume werden auf eine Hierarchie von Namens­verwal­tern verteilt, indem jedem Namensverwalter die Verantwortung für einen Unterbaum des Namens­raums übertragen wird. Diese Zuordnung und die Konfigurierung des entsprechenden hierarchischen Verwalternetzes geschieht bisher weitgehend manuell und erfordert einen erheb­lichen admini­strativen Aufwand und detaillierte Kenntnisse von der Arbeitsweise der Namens­verwaltung. Um hierarchische Namensverwalter zu organisieren, gibt es zwei grundlegende Ansätze, eine feste und eine variable Anzahl von Hierarchie­stufen des Verwalternetzes.

3.4.2.1       Feste Anzahl von Hierarchiestufen des Verwalternetzes

Feste hierarchische Verwalterstrukturen findet man in der Regel dann vor, wenn das Wachstum von Namensräumen auf die horizontale Ebene begrenzt ist (vgl. Grapevine und Clearinghouse in Anhang B.2). Dem horizontalen Wachstum des Namensraums kann bei festen Hierarchie­stufen des Verwalternetzes durch das Hinzufügen von Namensverwaltern auf einer Hierarchie­ebene begegnet werden.

Ein Beispiel für einen dreistufigen Namensraum liefert die Benennung der Mitarbeiter einer Universität. Sie können durch die Kontexte Fakultät und Abteilung und durch den Nachnamen der Mitarbeiter (Fakultät.Abteilung.Nachname) vollständig charakterisiert werden. Die kon­stante Anzahl orga­nisatorischer Ebenen in diesem Namensraum kann auf eine feste Hierarchie von Namens­verwaltern abgebildet werden. So werden die Fakultäten von einem oder mehreren Namens­verwaltern der obersten Ebene verwaltet, die Abteilungen von Namens­verwaltern der darunterliegenden Ebene und die Mitarbeiter auf der untersten Ebene (vgl. Abbildung 3.18).

Abbildung 3.18: Hierarchische Verwalterorganisation mit fester Anzahl von Verwalterebenen

Bisher wurde ein Namensraum mit konstanter Anzahl von Hierarchiestufen zugrundegelegt. Um die Skalierbarkeit eines Namensraums zu gewährleisten, muß jedoch nicht nur ein hori­zontales, sondern auch ein vertikales Wachstum möglich sein. Wird ein Namensraum mit belie­biger Verschachtelung von Kontexten verwendet, so hat bei konstanter Anzahl von Hierar­chieebenen des Verwalternetz ein Namens­verwalter eine variable Anzahl von Kontexten zu verwalten. Die Hierarchie von Namens­verwaltern bleibt unverändert, während die Anzahl der Hierarchie­stufen des Namensraums variiert.

Als Beispiel hierfür kann ein verteiltes Dateisystem mit Namen der Form /usr/src/file.c und beliebig vielen Stufen von Dateiverzeichnissen dienen. Im Gegensatz zu obigem Beispiel eines relativ festen Namensraums mit Kontexten für Fakultäten, Abteilungen und Mitarbeiter ist hier die Einführung eines neuen Kontextes auf einer existierenden Hierarchiestufe oder die Defini­tion einer gesamten neuen Hierarchiestufe in Form von Dateiver­zeichnissen eine häufige Opera­tion. Dabei kann keinesfalls jeweils ein neuer Namensverwalter bzw. Dateiserver installiert werden. Vielmehr muß bei der Definition eines neuen Kontextes festgelegt werden, welcher existierende Verwalter dafür zuständig ist. Voreingestellt kann dies der Verwal­ter des überge­ordneten Kontextes sein. Zum Beispiel könnte ein Verwalter für alle Kon­texte unterhalb von /usr, also etwa usr/src, /usr/src/c, /usr/src/pascal, /usr/bin usw. zuständig sein.

3.4.2.2       Variable Anzahl von Hierarchiestufen des Verwalternetzes

Um das vertikale Wachstum hierarchischer Namensräume durch eine Verteilung der Zuständig­keiten effektiv unterstützen zu können, muß die Hierarchie der Namensverwalter auch vertikal wachsen können. Die Flexibilisierung der Anzahl von Hierarchie­stufen im Namensraum erfor­dert eine variable Anzahl von Hierarchie­ebenen im Verwalternetz (vgl. Abbildung 3.19).

Eine vertikale Ausdehnung der Verwalterhierarchie ermöglicht bei vertikalem Wachstum des Namensraums eine gleichmäßige Verteilung der Last auf Namensverwalter. Die Möglichkeit zur Unterhaltung eigenständiger Namensverwalter gewährleistet die Autonomie organisator­ischer Einheiten, sowohl im operationellen als auch im administrativen Bereich.

Abbildung 3.19: Hierarchische Verwalterorganisation mit variabler Anzahl von Verwalterebenen

Dem horizontalen Wachstum des Namensraums kann nun durch das Hinzufügen von Namens­verwaltern auf einer Hierarchieebenen begegnet werden, während das vertikale Wachstum des Namensraums durch die vertikale Ausdehnung der Verwalterhierarchie erleichtert wird. Viel­fach korreliert die Verwalterstruktur mit der Struktur des Namens­raums, dies ist jedoch keine notwendige Bedingung.

3.4.3          Dynamische Konfigurierung des hierarchischen Verwalternetzes

Ziel der dynamischen globalen Namensverwaltung ist u.a. die Bereitstellung der für den Aufbau eines hierarchischen Verwalternetzes notwendigen Verwalterinformationen möglichst ohne jegliche Administration. Die einzige Information, die für den Aufbau des Verwalternetzes a priori vorhanden sein muß, ist die Lokation des Namensverwalters in der obersten Hierarchie­ebene.

Der Aufbau der Verwalterhierarchie in der dynamischen globalen Namensverwaltung kann sich nicht, wie in anderen Systemen (z.B. DNS), an der Struktur des Namensraums orientieren, da dessen Struktur nicht a priori bekannt ist und sich dynamisch verändert.

Im vorliegenden Entwurf einer dynamischen globalen Namensverwaltung sind für das Integrie­ren eines neuen Namensver­walters knew in das Verwalternetz folgende Schritte erforderlich:

1.      Ermitteln des obersten Namensverwalters k0.

2.      Ermitteln übergeordneter Namens­verwalter {ki,1,…,ki,n} zu knew beim obersten Namens­verwalter k0.

3.      Kontaktieren der übergeordneten Namensverwalter {ki,1,…,ki,n} und bestimmen nachfol­gender Namensverwalter {ki+1,1,…,ki+1,m}.

4.      Einfügen des neuen Namensverwalters in die Verwalterhierarchie an der ermittelten Position zwischen den Namensverwaltern {ki,1,…,ki,n} und {ki+1,1,…,ki+1,m}.

Die aufgezeigten Schritte werden im folgenden im Detail diskutiert. Zusätzlich muß eine Metrik eingeführt werden, um die Position des neuen Namensverwalters im Verwalternetz bestimmen zu können. An dieser Stelle sein noch angemerkt, daß jedem Namensverwalter mehrere Namens­verwalter untergeordnet bzw. übergeordnet sein können und in das Verwalternetz nur permanent verfügbare Namensverwalter integriert werden.

3.4.3.1       Ermitteln des obersten Namensverwalters der Verwalterhierarchie

Bei der Konfigurierung einer hierarchischen globalen Namensverwaltung muß vor allen ande­ren Namens­verwaltern der oberste Namensverwalter k0 des Verwalternetzes aktiv sein. Die Positio­nierung des obersten Namensverwalters k0 im Netzwerk ist ein anspruchsvoller adminis­trativer Vorgang, da hiervon die Funktionsfähigkeit und Leistung der gesamten globalen Namens­verwaltung abhängt. Die Position von k0 im globalen Netzwerk sollte so gewählt werden, daß die kürzesten Netzwerkpfade zu den entlegendsten Netzwerkbereichen in etwa gleich lang sind, d.h. k0 in der Mitte eines minimalen Spannbaums liegt.

Äußerst wichtig für die Funktion das Gesamt­systems ist auch die Ausfallsicherheit des obersten Namensverwalters k0. Um die Verfügbarkeit des Gesamtsystems zu erhöhen, wird k0 durch weitere Namensverwalter im selben Netzwerkbereich repliziert. Ferner können die Namens­einträge des obersten Namensverwalters k0 auf der darunterliegenden Verwalterebene repliziert werden, sofern die Netzwerkeigenschaften und die Verfügbarkeit dieses begründen.

Nachdem der oberste Namensverwalter aktiviert ist, können weitere Namensverwalter in das Verwalternetz integriert werden. Bei der Aktivierung eines neuen Namensverwalters knew muß zunächst der oberste Namensverwalter der Verwalterhierarchie ermittelt werden. Hierbei kom­men der Reihe nach folgende Methoden zur Anwen­dung:

1.      Die Lokation des obersten Namensverwalters k0 der Verwalterhierarchie wird zusammen mit den Namenseinträgen der Namensbasis persistent gespeichert und steht somit bei jeder Reinitialisierung eines Namensverwalters zur Verfügung.

2.      Sind in der persistent verwalteten Namensbasis keine Hinweise auf den obersten Namens­verwalter k0 der Verwalterhierarchie zu finden, so versucht der neu hinzukommende Namens­verwalter über Broadcast-Nachrichten einen Namensverwalter zu ermitteln, der in Kenntnis der Lokation des obersten Namensverwalters k0 ist.

3.      Gelingt es nach einer bestimmten Zeit nicht, den obersten Namensverwalter k0 zu ermitteln, so muß der oberste Namensverwalter durch den Administrator identifiziert werden.

Nachdem der Namensverwalter an der Wurzel der Verwalterhierarchie bestimmt ist, muß zur Plazierung des neuen Namensverwalters in der Verwalterhierarchie zunächst die absolute Posi­tion des neuen Namensverwalters im Verwalternetz ermittelt werden. Hieraus wird schließlich die Position relativ zu den anderen Namensverwaltern im Verwalternetz festgelegt. Eine geeig­nete Metrik zur Positionsbestimmung stellt der nächste Abschnitt vor.

3.4.3.2       Die Metrik zur Plazierung von Namensverwaltern im Verwalternetz

Ausschlaggebend für die Position eines Namensverwalters im Verwalternetz sind die Eigen­schaften der Kom­mu­nikationsverbindungen zu den benachbarten Namensverwaltern (vgl. Tabelle 3.1). Zur Positionsbestimmung von Namensverwaltern könnte beispielsweise die mittlere Verzögerung der Kommunikations­verbindung zum obersten Namensverwalter heran­gezogen werden. Diese variiert jedoch sehr stark in Abhängigkeit von der Netzwerklast und sagt zudem nichts über die Struktur des Netzwerks und den Netzwerkbereich aus, in dem sich der neue Namens­verwalter befindet.

Eine geeignete Metrik zur Positionsbestimmung eines Namensverwalters im hierarchischen Verwalternetz ist die Distanz (D) eines Namensverwalters zur Wurzel der Verwalterhierarchie. Diese Distanz ist definiert als die Anzahl der Netzwerk­übergänge, die auf dem kürzesten Weg zum obersten Namensverwalter k0 zu überwinden sind. Jedem Namensverwalter ist ferner ein Netzwerkpfad zugeordnet, der als Folge von Netzwerkübergängen definiert ist, die Nachrichten von diesem Namensverwalter auf dem kürzesten Weg zum obersten Namensverwalter k0 über­winden müssen. Zur Positionsbestimmung werden nur Namensverwalter zueinander in Bezie­hung gesetzt, deren Netzwerkpfade teilweise überein­stimmen (Inklusion). Die Vergleichs­relationen zwischen diesen Netzwerkpfaden sind wie in Tabelle 3.2 definiert:

 

Relation

Bedeutung

D(k1)= D(k2)

Nachrichten von k1 und k2 haben dieselben Netzwerkübergänge auf dem Netz­werkpfad zu k0 zu überwinden, d.h. k1 und k2 liegen im selben Netzwerk­bereich.

D(k1)>D(k2)

Nachrichten von k1 haben im Vergleich zu Nachrichten von k2, zusätzliche Netz­werkübergänge auf dem Netzwerkpfad zu k0 zu überwinden, d.h. k1 liegt in ent­fernteren Bereichen des Netzwerks­.

D(k1)< D(k2)

Nachrichten von k1 haben auf dem Netzwerkpfad zu k0 nur einen Teil der Netz­werküber­gänge zu überwinden, die Nachrichten von k2 zu überwinden haben, d.h. k2 liegt in Bereichen des Netzwerks­.

D(k1)≠ D(k2)

Nachrichten von k1 und k2 haben (teilweise) unterschiedliche Netzwerkübergänge auf dem Netzwerkpfad zu k0 zu überwinden, d.h. k1 und k2 liegen in unterschied­lichen Bereichen des Netzwerks.

Tabelle 3.2: Vergleichsrelationen zur Positionierung von Namensverwaltern

Obige Vergleichsrelationen definieren eine Teilordnung über den Namensverwaltern, da nur Namensverwalter auf demselben Netzwerkpfad zu k0 miteinander in Beziehung gesetzt werden.

3.4.3.3       Ermitteln der Position in der Verwalterhierarchie

Sobald der oberste Namensverwalter k0 ermittelt ist, wird er durch den neu zu registrier­enden Namensverwalter knew kontaktiert, um auf dem Netzwerkpfad von knew zu k0 über­geord­nete Namens­verwalter {ki,1,…,ki,n} mit D(knew)>D(ki) zu ermitteln (vgl. Abbildung 3.20). Der ober­ste Namensverwalter k0 enthält dabei nur Verweise auf direkt untergeordnete Namens­verwalter.

Abbildung 3.20: Positionierung eines neuen Namensverwalters

Wird ein übergeordneter Namensverwalter ki mit D(knew)>D(ki) lokalisiert, so richtet sich der neue Namens­verwalter knew an ki, um weitere Namensverwalter {ki+1,1,…,ki+1,m} mit D(knew)>D(ki+1)> D(ki) zu ermitteln. Dieses Vorgehen wird wiederholt, bis

1.   Namensverwalter {ki+1,1,…,ki+1,m} mit der Eigenschaft D(knew)=D(ki+1)>D(ki) existieren. Dann wird die Namensbasis der Namens­verwalter {ki+1,1,…,ki+1,m} in knew repliziert und knew wird als untergeord­neter Namensverwalter von ki festgehalten.

2.   Namensverwalter {ki+1,1,…,ki+1,m} mit D(ki+1)>D(knew)>D(ki) ermittelt werden. Dann reprä­sen­tie­ren{ki+1,1,…,ki+1,m} untergeordnete Namensverwalter, die in knew als solche regis­triert werden. knew wird als Sukzessor von ki festgehalten, und die Verwal­tungs­informa­tionen der beiden Namensverwalter werden gemäß ihrer Position im Verwalternetz­ abge­glichen.

3.   kein weiterer Namensverwalter ki+1 in ki existiert mit D(knew)>D(ki+1)>D(ki). knew wird als untergeordneter Namensverwalter von ki festgehalten.

Anhand des Beispiels in Abbildung 3.21 wird dieser Vorgang nochmals verdeutlicht. Hier wird ein Netzwerk gezeigt, dessen einzelne Netzwerkbereiche an den Netzwerkübergängen über Kopplungs­elemente mitein­ander verbunden sind (die runden Elemente stellen die Netzwerk­übergänge dar). Die Netzwerk­übergänge bestehen sowohl aus permanenten als auch aus tempo­rären Verbin­dungen. Oft handelt es sich in globalen Netzwerken um langsame und unzuver­lässige Punkt-zu-Punkt-Verbindungen.

Abbildung 3.21: Verteilung von Namensverwaltern über verschiedene Netzwerkbereiche

Der Namensverwalter in der Mitte von Abbildung 3.21 repräsentiert den obersten Namens­ver­walter k0 der Verwalterhierarchie. Die Distanz der einzelnen Namensver­walter zu k0 dient zur Positionsbestimmung bei der dynamischen Konfigu­rierung der Verwalter­hierarchie. Im vorlie­genden Beispiel wird die Distanz anhand der zu überwindenden Netzwerkübergänge auf dem Netzwerkpfad zu k0 bestimmt. Die Distanzen der Namensverwalter auf den Netzwerk­pfaden zu k0 bilden eine Teilordnung, da nur Namensverwalter zueinander in Beziehung gesetzt werden, wenn die Netzwerkpfade auf dem kürzesten Weg zum obersten Namensverwalter zumindest teilweise übereinstimmen. Typischerweise sind Netzwerke nicht baumförmig organisiert, son­dern enthalten Zyklen, die erkannt und eliminiert werden müssen. Allerdings ist es zur Steige­rung der Ausfallsicherheit durchaus sinnvoll, alternative Netzwerk­pfade für den Weg zum obersten Namensverwalter anzugeben.

 

Namensverwalter

Distanz

Netzwerkpfad

Namensverwalter

Distanz

Netzwerkpfad

knew

1

4

k6

1

6

k1

2

4,1

k7

1

7

k2

2

4,2

k8

1

7

k3

2

4,2

k9

2

6,8; 7,9

k4

1

5

k10

2

6,8; 7,9

k5

2

5,3

k11

2

7, 10

Tabelle 3.3: Namensverwalter und ihre Netzwerkpfade zum obersten Namensverwalter

In Tabelle 3.3 sind die Distanzen gemessen in Netzwerkübergängen und die Netzwerkpfade der einzelnen Namensverwalter aus Abbildung 3.21 zum obersten Namensverwalter k0 des Verwal­ter­netzes aufgeführt. Diese Tabelle existiert allerdings nicht wirklich in k0, sondern die enthal­tene Information ist verteilt über alle Namens­verwalter. Der oberste Namens­verwalter k0 hält aus Gründen der Speicherökonomie nur Verweise auf die jeweils direkt unterge­ordenten Namensverwalter eines jeden Netz­werkpfads. Bei der Positionierung eines neuen Namens­verwalters knew im Verwalternetz werden lediglich diejenigen Namensverwalter zueinander in Beziehung gesetzt, die über denselben Netzwerk­pfad zu erreichen sind. Daher ergibt sich, wie in Abbildung 3.22 dargestellt, eine Teilordnung auf den Namensverwaltern.

Abbildung 3.22: Aus der in Abbildung 5.24 generierte Hierarchie von Namensverwaltern

Die in Abbildung 3.22 dargestellte Hierarchie von Namensverwaltern gleicht einem Spannbaum (Spanning Tree) [Kruskal, 56]. Allerdings erzeugt das hier beschriebene Verfahren keinen vollständigen Spannbaum, da dies zur Plazierung eines Namensverwalters im Verwalternetz nicht notwendig ist und einen zu hohen Nachrichtenaufwand erfordert[AL5] .

Befinden sich Namensverwalter innerhalb desselben Netzwerkbereichs und sind sie nicht durch Netz­werkübergänge getrennt, so kann die Namensbasis durch Broadcast-Nachrichten zwischen diesen Namens­verwaltern entweder vollständig repliziert oder verteilt verwaltet werden.[AL6]  [AL7] 

3.4.3.4       Dynamische Anpassung der Verwalterinformation

Sobald die Position eines neuen Namensverwalters im Verwalternetz ermittelt ist, gleicht dieser seine Verwalterinforma­tionen mit den direkt übergeordneten bzw. untergeordneten Namens­verwaltern ab. Dabei sind folgende Anpassungen in den Namens­ver­waltern vorzunehmen:

·        Änderung der Navigationsinformation direkt übergeordneter Namensverwalter {ki,1,…,ki,n} und des neuen Namensverwalters knew.

·        Änderung der Konfigurationsinformation direkt übergeordneter Namensverwalter {ki,1,…,ki,n}, direkt untergeordneter Namensverwalter {ki+1,1,…,ki+1,m} und des neuen Namensver­walters knew.

Um die Konfigurations- und Navigationsinformation anzupassen, wendet sich der Namens­verwalter knew zunächst an die direkt übergeordneten Namens­verwalter {ki,1,…,ki,n} und über­nimmt die Namenseinträge ihrer Namensbasen zusammen mit der vorhandenen Navigations­information. Nun wird in {ki,1,…,ki,n} die Navigations- und Konfigu­ra­tions­information, die bisher auf {ki+1,1,…,ki+1,m} ver­wiesen hat, so geändert, daß sie auf knew verweist. Im zweiten Schritt kontaktiert der Namens­verwalter knew die Namensverwalter {ki+1,1,…,ki+1,m} (sofern vorhanden). Dort substituiert er die auf {ki,1,…,ki,n} verweisende Konfigurations­information durch Verweise auf knew. Anschließend werden in der Konfigura­tions­informa­tion von knew die Namens­verwalter {ki+1,1,…,ki+1,m} als untergeordnete Namens­verwalter und die Namens­ver­walter {ki,1,…,ki,n} als überge­ordnete Namens­verwalter eingetra­gen.

Abbildung 3.23: Die Phasen des Einfügens eines neuen Namensverwalters

Abbildung 3.23 zeigt die einzelnen Schritte der Adaption der Verwalterinformation. Die Reihen­folge, in der die untergeordneten bzw. übergeordneten Namensverwalter kontaktiert werden, ist signifikant, da knew die Namensbasen der übergeordneten Namensverwalter {ki,1,…,ki,n} über­nehmen muß, bevor sie verändert werden.

Falls zu einem Namensverwalter knew mehrere übergeordnete Namens­verwalter {ki,1,…,ki,n} existieren, so handelt es sich dabei in der Regel um replizierte Namens­verwal­ter, die im selben Netz­werk­bereich liegen und von k0 über denselben Netzwerkpfad erreicht werden. Unter den replizierten übergeordneten Namensverwaltern wird derjenige als primärer überge­ordneter Namensverwal­ter ausgewählt, der die geringste Nachrichtenverzögerung und das beste Ant­wortverhalten zeigt. Dieser primäre überge­ordnete Namensverwalter wird bei der Auflösung und Registrierung von Namen bevorzugt kontaktiert. Existieren mehrere Netzwerkpfade mit derselben Distanz zum obersten Namensverwalter k0 (vgl. Knoten 9 und 10 in Abbildung 3.22), so werden als direkt überge­ordnete Namens­verwalter {ki,1,…,ki,n} die Namens­verwalter auf dem Netz­werk­pfad gewählt, der die geringste Nachrichten­verzöge­rung zum obersten Namens­verwalter k0 aufweist.

3.4.3.5       Dynamisches Einbinden replizierter Namensverwalter

Die Verfügbarkeit einer Namensverwaltung muß auch dann gegeben sein, wenn Ausfälle von Netzwerkverbindungen und Namensverwal­tern zu verzeichnen sind. Während der Ausfall einzelner Namensverwalter durch strukturelle Maßnahmen bei der Konfigurierung des Systems berücksichtigt werden kann, beeinträchtigt der Ausfall von Netzwerkverbindungen die Verfüg­barkeit des Gesamtsystems in weit höherem Maße. Bei Netzwerk­partitionierung ist u.U. ein ganzer Teilbereich des Verwalter­netzes und damit auch ein Teil des Namensraums nicht mehr erreichbar.

Sofern benannte Objekte nach der Netzwerkpartitionierung zugänglich sind, müssen sie auch über ihre Namen erreicht werden können. Bei statischer Verteilung von Namen über die Namensverwalter ist dies i.d.R. gewährleistet, da die zuständigen Namensverwalter i.a. im selben Netzwerkbereich oder Rechner plaziert sind, wie der Objektverwalter. Bei syntaxgesteu­erter Plazierung von Namen besteht die Möglichkeit, daß Namen in Namensver­waltern und Objekte in Objektverwaltern in unterschiedlichen Netzwerkbereichen plaziert werden. Die Auf­lösung von Namen verfügbarer Objekte kann jedoch durch aktive Replikation bei der Registrie­rung von Namen und durch passive Replikation (Vorhalten, Caching) bei der Auflö­sung garan­tiert werden (vgl. hierzu Kapitel 5). Namenseinträge sind in dem Netzwerkbereich zu replizieren, in dem die zugehörigen Objekte verwaltet werden, so daß bei Netzwerk­partitionie­rung die lokale Funktion gewährleistet ist. Die Replikation einzelner Namenseinträge ist abhän­gig von den Zugriffs­schemata sowie von der aktuellen Änderungs- und Zugriffs­häufigkeit und kann daher zum Zeitpunkt der Initialisierung eines Namensver­walters nicht berücksichtigt werden.

Die Replikationsmaßnahmen in der Initialisie­rungsphase bleiben somit auf Namens­verwalter beschränkt. Die Replikation von Namensver­waltern im Verwalternetz orientiert sich zum einen an den Eigenschaften der zugrundeliegenden Kommunikationsverbindungen und zum anderen an der Netzwerktopologie. Im einzelnen nehmen folgende Faktoren Einfluß auf die Replikation von Namensverwaltern:

 

Netzwerkeigenschaften

Einfluß auf die Replikation von Namensverwaltern

Die Verzögerung von Netzwerk­ver­bin­dungen

Besteht eine hohe Verzögerung bei der Über­mitt­lung von Nachrichten zwischen Netzwerk­berei­chen, so empfiehlt sich die Replikation von Namensverwaltern zwischen diesen Bereichen, um die Zugriffsgeschwindigkeit zu erhöhen.

Die Topologie des Netzwerks und die Anzahl der zu überwindenden Netz­werk­über­gänge zwischen Namens­verwaltern

Abhängig vom Netzwerkbereich, in dem sich ein Namens­verwalter befindet, wird er in der Verwal­ter­hierar­chie plaziert. Namensverwalter, die nicht durch Netzwerk­über­gänge ge­trennt sind, liegen im selben Netzwerk­bereich und werden zur Erhöhung der lokalen Ausfallsicherheit repliziert.

Die Semantik der Kommunikation

Multicast- und Broadcast-Verbindungen zwischen Namens­verwaltern können für das Propagieren von Änderungen der Namensbasis replizierter Namens­verwalter verwendet wer­den.

Die Zuverlässigkeit und Verfüg­barkeit einer Netzwerk­verbindung

Kommunizieren Namensverwalter über temporär verfüg­bare Netzwerkverbindungen, so empfiehlt sich die gegen­seitige Replikation von Namensverwaltern im Verwalter­netz.

Namensverwaltereigenschaften

Einfluß auf die Replikation von Namensverwaltern

Die Verfügbarkeit der Namens­ver­walter

In das Verwalternetz werden nur permanent verfüg­bare Namensverwalter integriert. Die lokale Verfüg­barkeit wird zu­sätzlich durch Replikation im lokalen Netzwerkbereich erhöht.

Das Antwortverhalten der Namens­ver­walter

Sind mehrere Namensverwalter im selben Netz­werk­bereich vorhanden, so wird derjenige Namens­verwalter ausgewählt, der das beste Antwort­ver­hal­ten zeigt.

Die Speicherkapazität der Namens­ver­walter

Namensverwalter werden auszugsweise oder voll­ständig gegenseitig repliziert, je nachdem ob die Speicherkapazität der replizierenden Namensverwalter dies zuläßt.

Tabelle 3.4: Eigenschaften des Netzwerks und der Namensverwalter und ihr Einfluß auf die Replikation

Im folgenden bleibt zu klären, welchen Einfluß die zuvor angeführten Faktoren auf die Replika­tion von Namensverwaltern haben. Die Verzögerung und die Struktur des Netzwerks bestim­men die Position eines Namensverwalters im Verwalternetz. Sind im Netzwerkbereich der ermittelten Lokation bereits Namensverwalter {krep} vorhanden, so bietet es sich an, den neu hinzukommenden Namensverwalter knew zu Replikationszwecken zu nutzen. Falls knew=krep gilt, werden die Namens­einträge von knew und krep repliziert. Diese lokal begrenzte Replikation von Namensverwaltern innerhalb eines Netzbereichs gewährleistet die Funktionsfähigkeit des Gesamt­systems bei Ausfall eines Namensverwalters im Netzwerkbereich.

Abbildung 3.24: Das Einfügen eines zu replizierenden Namensverwalters

Abbildung 3.24 zeigt den Abstimmungsvorgang mit einem zu replizierenden Namensverwalter. Nachdem in der Positionierungsphase zu replizierende Namensverwalter {krep} ermittelt wur­den, wendet sich der neu hinzukommende Namensverwalter knew zunächst an {krep}, um von diesen zu replizierende Namenseinträge mitsamt der enthaltenen Navigations- und Konfigu­rationsinfor­mation zu erhalten. Anschließend wendet sich knew an die direkt übergeordneten Namens­verwalter {ki,1,…,ki,n} und ergänzt dort die Navigations- und Konfigura­tions­informa­tion, die auf {krep} verweist, um Verweise auf knew. Außerdem kontaktiert knew die Namens­verwalter {ki+1,1,…,ki+1,m} (sofern vorhanden), um der auf {krep} verweisenden Konfigura­tions­information in {ki+1,1,…,ki+1,m} Einträge auf knew hinzuzufügen.

Unzuverlässigen, temporären und langsamen Verbindungen wird häufig durch die globale Replikation von Namensverwaltern begegnet. In der dynamischen globalen Namensverwaltung ist diese Replikationsmaßnahme nicht sinnvoll, da dann u.U. Namen aufgelöst werden können, die zugehörigen Objekte jedoch trotzdem nicht zugänglich sind. Außerdem kann in diesem Fall ein Name zuvor partiell aufgelöst werden, der verbleibende Teil des Namens wird jedoch von Namensver­waltern gehalten, die nicht erreichbar sind. Um die Funktionsfähigkeit des Gesamt­systems durch replizierte Namensverwalter zu gewährleisten, wäre die wechselseitige Repli­kation aller Namensverwalter in Netzwerkbereichen erforderlich, die über temporäre oder langsame Verbindungen verbunden sind. Wesentliche Verbesserung bringt hier die Replikation einzelner Namenseinträge unter Berück­sichtigung der Zugriffs- und Änderungs­frequenz und der Zugriffsmuster, wie sie in Kapitel 5 beschrieben wird.

3.4.3.6       Dynamisches Deaktivieren eines Namensverwalters

Im Rahmen der dynamischen Konfigurierung werden Namensverwalter im Verwalternetz nicht nur hinzugefügt, sondern auch wieder deaktiviert und entfernt. Um den Zusammenhang des Verwalternetzes zu gewährleisten, sind übergeordnete und untergeordnete Namensverwalter über das Ausscheiden eines Namensverwalters in Kenntnis zu setzen. Dabei ist wiederum eine Anpassung der Verwalterinformationen erforderlich. Den Vorgang des Deaktivierens eines nicht replizierten Namensverwalters zeigt Abbildung 3.25.

Abbildung 3.25: Die Phasen des Deaktivieren eines nicht replizierten Namensverwalters

Für die Deaktivierung eines Namensverwalters werden zunächst die von ki verwalteten Namenseinträge und Navigationsinformationen an die übergeordneten Namensverwalter {ki-1,1,…,ki-1,l} übertragen und in deren Namensbasis integriert. Die übergeordneten Namens­verwalter {ki-1,1,…,ki-1,l} entfernen dabei alle Verweise auf ki aus ihrer Navigationsinformation. Ebenso werden alle Verweise auf ki in der Konfigurations­information von {ki-1,1,…,ki-1,l} durch Verweise auf die untergeord­neten Namensverwalter {ki+1,1,…,ki+1,m} ersetzt. Anschließend wird die auf überge­ordnete Namens­ver­walter verwei­sende Konfigu­rations­information der unterge­ordneten Namensverwalter {ki+1,1,…,ki+1,m} so angepaßt, daß sie nicht länger auf ki, sondern nunmehr auf {ki-1,1,…,ki-1,l} verweist.

Ist für einen zu deaktivierenden Namensverwalter ki ein replizierter Namensverwalter krep vor­handen, so wird diesem die Verwaltung der betref­fenden Einträge übertragen. Danach wird die Navigations- und Konfigura­tions­information der übergeordneten Namensverwalter {ki-1,1,…,ki-1,l} dahingehend modi­fiziert, daß sie nicht länger auf ki, sondern nur noch auf krep verweist. Die Konfigurationsinformation der untergeordneten Namensverwalter {ki+1,1,…,ki+1,m} wird entspre­chend angepaßt.

Nachdem dieses Kapitel aufgezeigt hat, wie ein Verwalternetz ohne Administrationsarbeit kon­figuriert werden kann, diskutiert das folgende Kapitel zunächst Methoden zur Abbildung eines globalen Namensraums auf ein hierarchisches Verwalternetz. Schließlich wird ein Verfahren vorgestellt, um globale Namen selbständig und ohne Administration adäquat auf hierarchisch organisierte Namensverwalter zu verteilen.

 

Die automatische Konfigurierung des Verwalternetzes unter Berücksichtigung der Netzwerk­topologie und der Verbindungseigenschaften ermöglicht die Anpassung der Namens­verwaltung an die Gegebenheiten des zugrundeliegenden Netzwerks und die Kompensation von Ausfällen.


 

 



[1]       Vgl. hierzu auch Kapitel 4.

[2]       Auch abhängig von der Anfrage: „Finde einen Drucker im Gebäude“ oder „Finde alle Drucker im Netzwerk“

[3]       Beispielsweise im Internet.

[4]       Außer bei Standleitungen.

[5]       Der Zugang zum Internet kann mit jedem Modem über PPP oder SLIP hergestellt werden.

[6]       Das mobile D-Netz besteht nur aus Punkt-zu-Punkt-Verbindungen.

[7]       Entspricht hier einer ringförmigen Verkettung von Namensverwaltern.


 [AL1]Modell von Mattes?!

Namensverwalter

Katalogverwalter

 [AL2] Sollte es in der Zeichung nicht besser Verwater heißen???

 [AL3]Literatur??

 [V4] Sollte man hier nicht noch was über die logische Partitionierung schreiben?

 [AL5]Referenz

 [AL6]Was passiert bei Änderungen der Netzwerkstruktur??

 [AL7]Gleichbehandlung Netzwerkübergänge und Punkt-zu-Punkt-Verbindungen

Lokaler Knoten wird als Netzwerksegment gesehen