Georg-August-Universität Göttingen Institut für Wirtschaftsinformatik Professor Dr. Matthias Schumann Platz der Göttinger Sieben 5 37073 Göttingen Telefon: + 49 551 39 - 44 33 + 49 551 39 - 44 42 Telefax: + 49 551 39 - 97 35 www.wi2.wiso.uni-goettingen.de Arbeitsbericht Nr. 14/04 Hrsg.: Matthias Schumann Lutz Seidenfaden/Svenja Hagenhoff Selbstorganisation in P2P Netzwerken – Eine Betrachtung strukturierter Overlays © Copyright: Institut für Wirtschaftsinformatik, Abteilung Wirtschaftsinformatik II, Georg-August-Universität Göttingen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urhebergesetzes ist ohne Zustimmung des Herausgebers unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Alle Rechte vorbehalten. Inhaltsverzeichnis II Inhaltsverzeichnis Abbildungsverzeichnis .........................................................................................................................III Abkürzungsverzeichnis ....................................................................................................................... IV 1 Einleitung ...........................................................................................................................................1 2 Selbstorganisation ............................................................................................................................1 2.1 Definition......................................................................................................................................1 2.2 Grundlegende Mechanismen der Selbstorganisation .................................................................2 2.3 Charakteristika von selbstorganisierten Systemen .....................................................................5 2.4 Alternativen zur Selbstorganisation .............................................................................................6 2.5 Selbstorganisation und Alternativen – ein Vergleich ...................................................................8 2.6 Selbstorganisierte Systeme aus dem Bereich „Naturwissenschaften“........................................9 3 Overlay Netzwerke ..........................................................................................................................10 3.1 Grundlagen ................................................................................................................................10 3.2 Technologien (state-of-the-Art)..................................................................................................11 3.2.1 Chord ................................................................................................................................11 3.2.2 Pastry................................................................................................................................13 3.2.3 Content Addressable Networks (CAN) .............................................................................15 3.2.4 Tapestry ............................................................................................................................18 3.3 Anforderungen an und Einsatzbereich von Overlay Netzwerken..............................................20 3.3.1 Anforderungen ..................................................................................................................20 3.3.2 Einsatzgebiete ..................................................................................................................21 4 Zusammenfassung und Ausblick ..................................................................................................25 Literaturverzeichnis .............................................................................................................................27 Abbildungsverzeichnis III Abbildungsverzeichnis Abbildung 2.2-1: Informationsquellen in selbstorganisierten Systemen ................................................. 5 Abbildung 3.1/1: Overlay Netzwerke setzen auf physischen Netzwerken auf ...................................... 11 Abbildung 3.3-1a: Chord Ring mit Nachfolgerbeziehungen, 3.2-1b: Peer mit seiner Fingertabelle. .... 12 Abbildung 3.3-2: 2D-Koordinatenraum mit fünf Knoten und ihren Koordinatenfeldern......................... 16 Abbildung 3.3-3: Exemplarisches Routing von B zum Zielknoten X ..................................................... 16 Abbildung 3.3-4: Routing Beispiel. Nachricht von Knoten 0325 zu Knoten 4598 in einem Plaxton mesh mit hexadezimalen Zahlen der Länge 4 ......................................................................................... 19 Abkürzungsverzeichnis Abkürzungsverzeichnis CAN Content Addressable Network P2P Peer-to-Peer SO Selbstorganisation IV 1 Einleitung 1 1 Einleitung Durch die Popularität der ersten Generation von Peer-to-Peer-Systemen (kurz: P2P) wie z.B, Gnutella (http://www.gnutella.com), Napster (http://www.napster.com) oder Kazaa (http://www.kazaa.com) wurde die Forschung in diesem Bereich auf die Weiterentwicklung dieser Netze für kommerzielle Anwendungen konzentriert. Im Vordergrund der Anstrengungen steht dabei die völlige Dezentralisierung der Netze, d.h. ein Aufbau ohne zentralen Verzeichnisserver oder andere zentrale Dienste. Napster betrieb einen zentralen Verzeichnisserver, Kazaa dagegen arbeitet etwas dezentralisierter mit so genannten Supernodes, die für eine unbestimmte Anzahl von Peers zuständig sind und deren Suchanfragen weiterleiten. Konträr zu Gnutella, das zwar völlig dezentral organisiert ist, jedoch auf Grund seines Protokolls nicht performant arbeitet, soll durch Ablösung der zufälligen Selbstorganisation des Systems eine akzeptable Antwortzeit gewährleistet werden. An die Stelle zufälliger Selbstorganisation treten so genannte Overlay Netzwerke, die eine strukturierte Selbstorganisation des Netzes und somit garantierte Antwortzeiten ermöglichen. Durch strukturierte Netze erscheint es nun möglich, Peer-to-PeerApplikationen zu entwerfen, die den Anforderungen an kommerzielle Anforderungen genügen. Die vorliegende Arbeit erörtert zunächst (vgl. 2.) das Konzept der Selbstorganisation. In diesem Rahmen werden auch alternativen Organisationskonzepte vorgestellt und mit der Selbstorganisation verglichen. Weiterhin werden Parallelen zur Biologie und Physik gezogen. Nachfolgend werden Overlay Netzwerke betrachtet (vgl. 3.). Dazu werden zunächst einige Grundlagen gelegt. Anschließend werden aktuelle Technologien zur Bildung von Overlay Netzwerken sowie deren Einsatzmöglichkeiten und Applikationen dargestellt. Die Arbeit schließt mit einer Zusammenfassung und einem Ausblick in Kap. 4. 2 Selbstorganisation In diesem Abschnitt wird der Begriff der Selbstorganisation erläutert. Um ein einheitliches Begriffsverständnis zu erzeugen, wird eine Definition vorangestellt. Nachfolgend werden Beispiele für selbstorganisierte Systeme aus dem Bereich der Naturwissenschaften gegeben, um anschaulich in das Thema einzuführen. 2.1 Definition Zur Klärung des Terms “Selbstorganisation” erscheint es zunächst sinnvoll, die Begriffe Organisation und Ordnung zu erklären bzw. gegeneinander abzugrenzen. Der Hauptunterschied ist im prozessualen Charakter von Organisation (im nicht-institutionellen Sinne) zu sehen, demgegenüber sich Ordnung als Muster bzw. Schema darstellt. Entsteht die Ordnung durch 2 Selbstorganisation 2 Organisation, ist sie stets dynamisch. Weiterhin wird allgemein angenommen, dass Organisation immer einer bestimmten Funktion dient: „We say that a crystal has order, but a that watch is organized, because the parts of the latter are put together in a certain way for a purpose, to keep time“ (vgl. Savetz et al. (1996), S. 143). Im Gegensatz dazu schafft Selbstorganisation Ordnung ohne bewusstes Ziel, weshalb in diesem Zusammenhang das Konzept der Funktionsorientierung nicht greift. Die in der Literatur anzutreffenden Definitionen des Begriffs „Selbstorganisation“ sind zu zahlreich, um sie an dieser Stelle anzuführen. Daher soll die folgende Zusammenstellung von Definitionen einen Überblick über die Definitionsvielfalt geben. “A self-organizing system is a system that changes its basic structure as a function of its experience and environment” (Huitema (1998), S. 12). ”We shall use the term self-organization to refer to situations in which some form of order appears spontaneously in a system with no direct external control” (Savetz et al. (1996), S. 143). “Self-organization is a process in which pattern at the global level of a system emerges solely form numerous interactions among the lower-level components of the system. Moreover, the rules specifiying interactions among the system’s components are executed using only local information, without reference to the global pattern” (Camazine et al. (2001), S. 8, ähnlich Kumar (1996), S. 9). “[Self-organization is] the ability of some systems to generate their form without external pressures, either wholly or in part. It can be viewed as a systems incessant attempts to organize itself into ever more complex structures, even in the face of incessant forces of dissolution described by the second law of thermodynamics” (vgl. Rao / Sletta (2000), S. 470). Zusammenfassend ist festzustellen, dass Selbstorganisation eine Organisationsform ist, die ohne Anweisungen von systemfremden Akteuren stattfindet und dabei spontan, durch lokale Interaktionen hervorgerufene, dynamische Ordnungsmuster hervorbringt. 2.2 Grundlegende Mechanismen der Selbstorganisation Nachdem der Begriff „Selbstorganisation“ definiert wurde, sollen nun die grundlegenden Mechanismen erörtert werden, die die Selbstorganisation ermöglichen. Ziel ist es, Verständnis dafür zu erzeugen, wie aus den Interaktionen der einzelnen Komponenten ein globales Muster entstehen kann. Hierzu erscheint es sinnvoll, zunächst auf die einfachsten Interaktionsbeziehungen, die positive und die negative Rückmeldung bzw. Rückkopplung einzugehen, bevor die Informationen betrachtet werden, die von den einzelnen Komponenten verarbeitet werden, um ihre Entscheidungen festzulegen. Positive und negative Rückmeldung Überraschenderweise benutzen die meisten selbstorganisierten Systeme die positive Rückmeldung. Überraschend ist dies deshalb, weil wir eher an Regelungen mittels negativer Rückmeldungen gewöhnt sind. Beispiele hierfür sind die Regelung des Blutzuckerspiegels oder der Körpertemperatur. In 2 Selbstorganisation 3 beiden Fällen werden nur negative Informationen, in diesem Fall Überzuckerung oder erhöhte bzw. zu niedrige Temperatur verarbeitet, die dann ihrerseits Gegenmaßnahmen, z.B. Ausstoß von Insulin, hervorrufen (vgl. Camazine et al. (2001), S. 15). Demgegenüber fördert positive Rückmeldung1 Veränderungen in dem System, wie z.B. das Wachstum der Weltbevölkerung zeigt. Jede nachfolgende Generation übertrifft die Vorangegangene zahlenmäßig, was wiederum zu mehr Geburten führt. Dieser Schneeballeffekt führt zu Veränderungen im System, die alle in die gleiche Richtung stoßen. Ein weiteres Beispiel für positive Rückmeldung ist das Nistverhalten von einigen Seevögeln. Sie nisten dort, wo schon einige ihrer Artgenossen ein Nest gebaut haben. Dabei sind sie nicht vom Nistplatz an sich angezogen worden, sondern einfach durch die Tatsache, dass sich dort schon Artgenossen niedergelassen haben. Je mehr Tiere bereits dort sind, desto attraktiver ist der Nistplatz. Die dahinter stehende einfache individuelle Verhaltensregel lautet: „Ich tue, was du tust“ (vgl. Camazine et al. (2001), S. 18). Ein ähnliches Verhalten kann auch Wirtschaftsorganisationen unterstellt werden, wie die Clusterbildung an manchen Standorten zeigt. Als für regionale Clusterbildung lassen sich z.B. die konzentrierte Ansiedlung von Computerfirmen im Silicon Valley oder die zahlreichen Porzellanmanufakturen in Franken anführen. Weiterhin ist auch innerurban eine Clusterbildung festzustellen, wie die verstärkte Herausbildung von z.B. Einkaufsmeilen oder Kinopaläste zeigt. Positive Rückmeldungen können neben dem Schneeballeffekt jedoch auch zu anderen Erscheinungen führen, z.B. zu Fluktuationen (vgl. Kumar (1996), S. 10; Camazine et al. (2001), S. 18). In diesem Zusammenhang bedeutet dies, dass eine stabile Ordnung durch die Verstärkung zufälliger Bewegungen verändert, d.h. instabil wird. Diese Fluktuationen sind notwendig, um das System für neue Lösungen für ein bestimmtes Problem flexibel zu gestalten. So sind in einer Ameisenkolonie bei der Futtersuche auch Irrläufer anzutreffen, die von dem pheromongekennzeichneten Pfad zur Futterquelle abkommen. Was sich hier als vermeindlicher Fehler im System herausstellt, ist durchaus beabsichtigt. Die vom Weg abgekommen Ameisen können ja durch Zufall neue, unter Umständen noch ergiebigere Futterquellen abseits der bekannten Routen finden (vgl. Kumar (1996), S. 10). Wie oben gezeigt wurde, kann positive Rückmeldung zu unerwünscht starken Veränderungen im System führen, die zudem noch einseitig ausgerichtet sind. Um diesem verstärkenden Effekt entgegenzuwirken, ist negative Rückmeldung nötig: „negative feedback counterbalances positive feedback an helps to stabilize the collective pattern“ (Kumar (1996), S. 10). Auf das obige Beispiel des Brutverhaltens von Seevögeln bezogen, müsste die, nun etwas kompliziertere, individuelle Verhaltensregel lauten „ Ich tue was du tust, solange nicht zu viele Vögel an diesem Ort nisten“. Eine andere Form der Balance zwischen positiver und negativer Rückmeldung legen Bluegill-Fische während der Brutzeit an den Tag (Beispiel entnommen aus Camazine et al. (2001), S. 19). Über größere Distanzen signalisieren sie Artgenossen positiv, dass sie in der Nähe des eigenen Nests brüten 1 in der angelsächsischen Literatur wird die positive Rückmeldung auch mit enhancement, amplification, facilitation und autocatalysis umschrieben (vgl. Fahner et al. (2001), S. 17). 2 Selbstorganisation 4 können. Aus diesem Verhalten resultiert die Bildung von Brutkolonien. Innerhalb der Kolonie geben die Fische jedoch negative Rückmeldung, in dem sie jeden Artgenossen warnen, zu nahe am eigenen Nest zu brüten. Dieses ambivalente Verhalten aus Koloniebildung und Verteidigung der Privatsphäre führt zu einer durch ein polygonales Muster aus Nestern repräsentierten Ordnung. Zusammenfassend kann festgestellt werden, dass die Kombination aus positiver verstärkender Rückmeldung und negativer abschwächender Rückmeldung ein mächtiges Werkzeug zur Schaffung von Strukturen und Ordnung in vielen biologischen und physikalischen Systemen ist (vgl. Camazine et al. (2001), S. 20). Im Folgenden soll nun auf das Verhalten der einzelnen Systemkomponenten aufgrund der ausgetauschten Informationen eingegangen werden. Verhaltenssteuerung durch Informationsaustausch Eines der Schlüsselmerkmale von selbstorganisierten Systemen ist es, dass sich ihre Organisation ausschließlich durch multiple Interaktionen zwischen den einzelnen Komponenten ergibt. Diese Interaktionen beinhalten i. d. R. einen Informationsaustausch. Bei den ausgetauschten Informationen ist zwischen Hinweisen (cues) und Signalen (signals) zu unterscheiden. Die Informationsübertragung über Signale ist eher auffallend (z.B. Pheromonspuren von Ameisen, die eine Futterquelle anzeigen), während Hinweise die Informationen eher unauffällig übertragen (z.B. Tierspuren, die anfallen, wenn Tiere sich bewegen). Da Hinweise nicht so offensichtlich sind wie Signale, steht zu vermuten, dass etliche Interaktionen von Systemkomponenten, die entscheidend zur Selbstorganisation beitragen, übersehen werden. Die Informationen können dabei aus zwei Quellen gewonnen werden. Erstens kann sich eine Systemkomponente mit ihren direkten Nachbarn austauschen, wodurch sie meist die wichtigsten Informationen erhält: „It is as if each member were connected to its neighbour by a rubber band that pulls the individual toward a neighbour that gets to far away, but is also connected by a spring that pushes the individual away from neighbour that are to close.” (Camazine et al. (2001), S. 21). Die Mechanismen, die den Informationen zugrunde liegen und auf die hier angespielt wird, sind leicht als positive (rubber band) und negative (spring) Rückmeldung zu identifizieren. Diese Informationsbeschaffung ist dann sinnvoll, wenn das System so groß ist, dass ein einzelnes steuerndes Element nicht in der Lage wäre, sich einen kompletten Überblick über das System zu verschaffen und entsprechende Anweisungen zu geben. Aus Perspektive der einzelnen Komponente bedeutet dies, dass sie nicht in der Lage wäre, ein steuerndes Element auszumachen und die eigenen Verhaltensweisen anhand seines Verhaltens festzulegen. Dies stellt ein Informationsproblem dar, welches die Komponenten durch einfache individuelle Verhaltensregeln zu lösen versuchen. Das Verhalten richtet sich dabei nach Entscheidungen, welche auf unvollständigen, meist lokalen Informationen beruhen. Zweitens kann eine Komponente des Systems ihre Informationen nicht direkt von ihren Nachbarn, sondern indirekt aus der geleisteten Arbeit beziehen. Dies ist z.B. dann der Fall, wenn viele Akteure zu einer gemeinsamen Aufgabe beitragen. In diesem Fall können Informationen direkt aus dem entstehenden Gebilde selbst stammen. Beim Studium von sozialen Insekten hat sich für diese Art der 2 Selbstorganisation 5 Informationsbeschaffung der Begriff „Stigmergy“ (Grasse zitiert nach Camazine et al. (2001), S. 23) durchgesetzt. Dies bedeutet, dass ein Akteur des Systems auf die durch einen anderen Akteur modifizierte Umwelt reagiert, d.h. sein Verhalten entsprechend anpasst (vgl. Kumar (1996), S. 14). Abbildung 2.2/1 stellt die zwei Arten des Informationsaustauschs in selbstorganisierten Systemen zusammenfassend dar. Die durchgehenden Pfeile stehen hierbei für direkte Interaktionen zwischen Komponenten oder Komponenten und der Umwelt, die gestrichelten Pfeile stehen für indirekte Interaktionen zwischen den Komponenten und der Umwelt. abgeleitetes Verhalten Komponente Komponente Komponente Komponente n Nicht abgeschlossene, lokale Arbeit Abbildung 2.2/1: Informationsquellen in selbstorganisierten Systemen 2.3 Charakteristika von selbstorganisierten Systemen Neben den grundlegenden Mechanismen der Selbstorganisation weisen selbstorganisierte Systeme einige charakteristische Eigenschaften auf, die nachfolgend dargestellt werden: Dynamik: Diese resultiert aus den ständigen (multiplen) Interaktionen auf Mikroebene, die zur Bildung von unterschiedlichen Problemlösungen führen. Diese Eigenschaft selbstorganisierter Systeme lässt sich am besten an einem gegenteiligen Beispiel verdeutlichen. Wenn man ein Puzzle aus seinen Einzelteilen zusammensetzt, geschieht dies in einer vorher präzise festgelegten Ordnung. Die Puzzleteile und damit die Gesamtstruktur des Puzzles ist damit determiniert und kann nicht dynamisch angepasst werden. Bildung raum-zeitlicher Strukturen in einem vorher homogenen Medium (vgl. Kumar (1996), S. 12). Multistabilität (vgl. Kumar (1996), S.13; Camazine et al. (2001), S. 34): Dies bedeutet, dass in einem System mehrere stabile Zustände existieren können. Ein Grund sind die o.a. Fluktuationen (vgl. 2.2), die zur Bildung von Ordnungsmustern durch zufällige Abweichungen führen. Jede dieser zufälligen Abweichungen kann ausgebaut werden, wodurch das gesamte System in einen völlig anderen, aber dennoch gültigen Zustand übergehen kann. Der finale Zustand des Systems hängt also von mehreren initialen Bedingungen ab („basin of attractions“). Wer 2 Selbstorganisation 6 jedoch den Eindruck gewonnen hat, dass selbstorganisierte Systeme eher fragil und unbeständig sind, wird enttäuscht. Selbstorganisierte Systeme bringen meistens stabile Ordnungsmuster hervor, wobei unter stabil die Gültigkeit eines bestimmten Musters über ein großes Intervall von Parameterwerten zu verstehen ist (vgl. Camazine et al. (2001), S. 37). Emergente Eigenschaften (vgl. Camazine et al. (2001), S. 31; Rao / Sletta (2000), S. 363): Emergenz bezeichnet dabei den Umstand, dass ein System durch die Interaktion seiner Elemente qualitativ neue Eigenschaften hervorbringen kann2. Emergente Eigenschaften werden in der Terminologie der Selbstorganisation auch als Attraktoren („attractor“) bezeichnet (vgl. Camazine et al. (2001), S. 31). Bifurkationen (engl. bifurcations3): Darunter sind plötzliche Übergänge von einem Ordnungsmuster oder Zustand eines Systems in ein anderes zu verstehen, die durch infinitesimale Änderungen an einem der für den Zustand des Systems zuständigen Parameter hervorgerufen werden können (vgl. Camazine et al. (2001), S. 32). Ein mathematisches Modell zum „Parameter Tuning“, welches Bifurkationen anhand eines hypothetischen Organismus erklärt, findet man bei May (1974, S. 645-647). 2.4 Alternativen zur Selbstorganisation Nicht alle Systeme erhalten ihre Ordnung durch Selbstorganisation. Daher werden in diesem Abschnitt Alternativen zur Selbstorganisation skizziert. Eine ausführlichere Darstellung ist in Camazine et al. ((2001), S. 47 - 62) zu finden. Die Darstellung dieser Alternativen erfolgt im Rahmen dieser Arbeit aus dem Grund, dass auch Systeme, deren Ordnung primär durch Selbstorganisation gewonnen wird, durchaus die hier vorzustellenden alternativen Mechanismen beinhalten können. Die alternativen Organisationsformen lassen sich durch den Mechanismus, durch den Ordnung im System geschaffen wird, charakterisieren: Führung, Vorgabe, Rezept/Bauplan und Vorlagen/Schablonen. Organisation durch Führung Mittelpunkt in dieser Art der Organisation ist der gut informierte Führer, der die Aktivitäten des Systems leitet, indem er jedem Systemmitglied genaue Anweisungen darüber gibt, wie es zum Gelingen des Gesamtwerks beitragen kann. Ein Beispiel für diese Organisationsform ist eine Rudermannschaft. Der gleiche Schlagtakt der Ruderer wird zunächst durch die Kommandos des Steuermanns erreicht. Dies ist allerdings nur die halbe Wahrheit, da sich die gleichartigen Bewegungen der Ruderer nicht ausschließlich durch die Kommandos erklären lassen. Zum anderen beobachtet jeder Ruderer seinen Vordermann sehr genau und stimmt die eigenen Bewegungen mit diesem ab. Hier zeigt sich, dass die zentrale Führung und auch die Selbstorganisation beim Ordnen des Systems interagieren. Wenn ein 2 Emergenz (wissenschaftstheoretisch): das Auftreten nicht vorhersagbarer Qualitäten beim Zusammenwirken mehrerer Faktoren (vgl. Duden Redaktion (2001), S. 264). 3 „The appearance of a qualitative change in behaviour when a parameter value changes quantitatively is called a bifurcation” (Fahner et al. (2001), S. 33). 2 Selbstorganisation 7 System ein Element aufweist, welches eine starke Führungsposition bei der Organisation einnimmt, deutet dies zunächst auf ein nicht selbstorganisiertes System hin. Umgekehrt gilt, dass das Fehlen eines solchen Führungselements, als ein Indiz für ein selbstorganisiertes System gewertet werden kann. Gewissheit über die Organisationsform eines Systems kann letztendlich nur durch Experimente gewonnen werden, in deren Rahmen die Führungselemente entfernt oder die Interaktionen zwischen einzelnen Systemelementen blockiert werden. Organisation durch Vorgabe Die zweite hier vorgestellte Alternative ist die Organisation durch Vorgabe. Damit soll ausgedrückt werden, dass die Systemelemente gesteuert werden durch eine Beschreibung des Ergebnisses, d.h. die kompakte Repräsentation der lokalen oder temporären Beziehungen zwischen den einzelnen Teilen der Struktur. In einem Orchester bspw. erhält jeder Musiker einen Notensatz, der die Noten und deren temporäre Beziehungen untereinander beschreibt. Auch in diesem Zusammenhang ist festzustellen, dass das einzelne Systemelement (hier der einzelne Musiker) nicht die vollständigen Informationen von der Blaupause erhält, sondern auch durch externe Instruktionen, die z.B. durch einen Dirigenten übermittelt werden, gesteuert wird. Eine strukturbildende Gruppe (hier ein Orchester), die extern gesteuert wird, kann demnach die Instruktionen über mehrere Mechanismen erreichen, z.B. Blaupausen und Führungspersonen. Organisation durch Rezepte In Rahmen der dritten Alternative erhält jedes Systemelement eine Art Kochrezept, also sequenzielle Instruktionen, die die von ihm vorzunehmenden lokalen und temporären Aufgaben präzise spezifiziert. Die Instruktionen sind jedoch in den meisten Fällen nur als Richtlinien zu sehen, die Feinabstimmung kann durch Rückkopplung geschehen. Ein Koch wird bspw. einem Rezept nicht stur folgen, sondern die Speise während der Zubereitung probieren und basierend auf der gustatorischen Rückkopplung Anpassungen vornehmen. Allgemein ist festzuhalten, dass Anpassungen auf Grund von Rückmeldung aus der entstehenden Ordnung auf die Organisation durch ein Rezept aufgesetzt werden können. Diese Rückkopplung ist jedoch nicht mit der indirekten Informationsbeschaffung („Stigmergy“; vgl. 2.2) zu verwechseln, da diese auf systeminterne Interaktionen abzielt und somit ein fundamental anderes Organisationsmechanismus ist, als die Befolgung eines Rezepts. Die Organisation mittels Rezept kann am Beispiel von Mannschaftssportarten illustriert werden, bei denen jeder Spieler genaue Instruktionen für sein Verhalten im Spielverlauf (z.B. Position, Deckungsverhalten) erhält, jedoch gelingen bestimmte Spielzüge nur, wenn ein Spieler die Aktionen der Mitspieler koordiniert. Der einzelne Spieler wird sein Verhalten jedoch nicht strikt am vorher festgelegten Rezept, sondern während des Spiels auch von den ihn umgebenden Ereignissen abhängig machen. Die Freiheit, sich teilweise von dem Rezept lösen zu können, ist in diesem Zusammenhang sehr wichtig. Da der Unterschied zwischen der Organisation durch Vorlagen und der Organisation mittels Rezepten nicht sofort offensichtlich ist, wird er an dieser Stelle verdeutlicht: Während Vorlagen nicht spezifizie- 2 Selbstorganisation 8 ren, „wie“ etwas gebaut werden soll, sondern nur das Endergebnis, also „was“ gebaut werden soll, stellen Rezepte eine detaillierte Abfolge von Instruktionen dar, deren Befolgung zu einem gewünschten Ergebnis führt. Organisation durch Vorlagen/Schablonen Die Organisation durch Vorlagen baut auf einer originalgetreuen Vorlage für das endgültige Ordnungsmuster auf, welche den Organisationsprozess streng steuert. Beispiele hierfür sind z.B. die Papiervorlagen von Kleidern, die ein Schneider bei der Anfertigung des Kleids nutzt, Formen im Stahlbau aber auch die Reproduktion der Desoxyribonukleinsäure (DNA), bei der die DNA als Vorlage für die Ribonukleinsäure (RNA) dient. Allgemein dienen Vorlagen zur Produktion von konsistenten gleichförmigen Ordnungsmustern. 2.5 Selbstorganisation und Alternativen – ein Vergleich Nachdem sowohl die Selbstorganisation als auch ihre Alternativen dargestellt wurden, stellt sich die Frage, warum selbstorganisierte Systeme eher auf Interaktionen ihrer Elemente aufbauen, als sich auf eine zentrale Instanz zu verlassen. Um sie zu beantworten, werden in diesem Abschnitt die Nachteile der in 2.5 dargestellten Alternativen erörtert. Die Steuerung eines Netzwerks durch eine Führungspersönlichkeit hängt in hohem Maße von einem effektiven Kommunikationsprozess zwischen den Elementen sowie von hohen kognitiven Fähigkeiten des zentralen Planungsorgans ab. In einer komplexen Umgebung verlangt die Planung der zentralen Instanz die vom Umfang her nahezu nicht erfüllbare Aufgabe der Informationssammlung ab (vgl. Camazine et al. (2001), S. 64). Diese nahezu unlösbare Aufgabe kann durch die Erstellung von Vorlagen umgangen werden, da jedem Systemelement eine Vorlage des Endergebnisses vorliegt. Hierin liegt genau das Problem von Vorlagen. Sie spezifizieren exakt, was entstehen soll, geben jedoch keine Instruktionen darüber, wie es entstehen soll. Daraus resultiert die Schwierigkeit, dass jedes Systemelement die nächsten notwenigen Schritte selbstständig erkennen muss, damit das angestrebte Ziel erreicht wird. Diese Schwierigkeit tritt vor allem bei großen unübersichtlichen und komplexen Strukturen auf. Dieses Problem stellt sich nicht, wenn Rezepte als Vorschriften dienen. In ihnen ist ja die Abfolge der Arbeitsschritte, die ein Systemelement einzuhalten hat, detailliert festgelegt. Weiterhin stellt sich in diesem Zusammenhang kein Problem mit einer zentralen Instanz, da jedes Systemelement ein individuelles Rezept hat, nach dem es vorgeht. Schwierigkeiten entstehen bei der Organisation mittels Rezept erst, wenn eine Gruppe von Systemelementen nach einem Rezept arbeiten muss. Denn in diesem Fall ist davon auszugehen, dass die einzelnen Systemelemente nicht nur stereotype Aufgabensequenzen abarbeiten, da der nächste Arbeitsschritt jeweils von den Arbeitsergebnissen der anderen Systemelemente abhängen wird. 2 Selbstorganisation 9 Nach dem Vergleich von Selbstorganisation und anderen Organisationsformen kann festgehalten werden, dass Selbstorganisation dort zur Anwendung kommt, wo die Alternativen auf Grund komplizierter Regeln nur schwer implementierbar sind, wie dies z.B. im Rahmen größerer Systeme der Fall ist. Selbstorganisation dagegen baut auf einfachen, von jedem Systemelement leicht zu implementierenden Regeln auf. 2.6 Selbstorganisierte Systeme aus dem Bereich „Naturwissenschaften“ Dieser Abschnitt stellt ausgewählte Experimente und Systeme aus den Naturwissenschaften vor, anhand derer das Prinzip der Selbstorganisation verdeutlicht wird. Bénard Experiment Dieses Experiment wurde 1900 von dem Franzosen Henri Bénard durchgeführt und in seiner Dissertation ausführlich beschrieben. In Zuge dieses Experiments wurde eine dünne Schicht Spermwal-Öl von unten gleichmäßig erhitzt, während die Oberfläche durch den Kontakt mit der Atmosphäre gekühlt wurde. Bei einem relativ geringen vertikalen Temperaturgefälle in der Flüssigkeit war kein spezielles Muster erkennbar. Wurde jedoch eine Veränderung an einem Parameter des Systems, der Hitzezufuhr vorgenommen, war ab einer bestimmten Temperatur erkennbar, dass sich auf der vormals glatten Oberfläche ein schachbrettähnliches Muster abzeichnete. Die kritische Temperatur hängt dabei von der Viskosität, der Oberflächenspannung der Flüssigkeit sowie der Tiefe der Schicht ab. Der Rest dieses Absatzes widmet sich der detaillierten Beschreibung des eben beschriebenen Phänomens. Man stelle sich eine kleine Parzelle von der Flüssigkeit in der Nähe des Bodens vor. Durch die Erhitzung hat diese Parzelle eine niedrigere Dichte als der Durchschnitt der Flüssigkeitsschicht. Solange die Parzelle an ihrem Platz verbleibt, ist sie umgeben von Parzellen mit der gleichen Dichte, woraus ein neutraler Auftrieb resultiert. Alle auf sie wirkenden Kräfte sind in Balance. Kommen die Kräfte nun durch eine zufällige Störung aus dem Gleichgewicht und bringen die Parzelle in eine leichte Aufwärtsbewegung, erhöht sich der Auftrieb. Dies resultiert aus der Tatsache, dass die Parzellen in den höheren Schichten eine größere Dichte aufweisen als die betrachtete Parzelle, wobei die Auftriebskraft proportional zum Dichteunterschied in den Schichten und dem Volumen der Parzelle ist. Der Effekt in umgekehrter Richtung lässt sich ebenfalls für kältere Parzellen mit einer höheren Dichte feststellen, die einen initialen Stoß in Richtung wärmere Schichten (d.h. nach unten) erhalten. In der Bénard Konvektion4, wie das Experiment auch genannt wird, konkurriert die zufällige Bewegung von Molekülen (durch die die Wärme geleitet wird) mit der kohärenten Bewegung von Molekülen (die durch Konvektion hervorgerufen wird). 4 Konvektion (Phys.): „Strömungsbewegungen in einem flüssigen oder gasförmigen Medium“ (Duden Redaktion (2001), S. 541). 3 Overlay Netzwerke 10 Schulen von Fischen Als zweites Beispiel wird das aus der Biologie stammende Schulenverhalten von Fischen betrachtet. Schulen aus Fischen bewegen sich wie eine einzelner Fisch, obwohl sie aus mehreren hundert, teilweise sogar aus mehreren tausend Fischen bestehen, die nicht zentral koordiniert werden. Aus diesem Verhalten lässt sich auf spezielle Gruppeneigenschaften schließen. Eine dieser Eigenschaften ist die schnelle Übermittlung von Signalen innerhalb der Schule, die z.B. schnelle Ausweichmanöver bei dem Herannahen eines Räubers ermöglichen5. Das nachfolgende Kapitel zeigt, wie die Prinzipien der Selbstorganisation auf Computernetzwerke und hier insbesondere auf Peer-to-Peer-Netzwerke angewandt werden können. Dabei wird vor allem auf Overlay Netzwerke als Grundlage der strukturierten Selbstorganisation eingegangen. Formen der unstrukturierten Selbstorganisation werden kurz skizziert, jedoch nicht näher betrachtet. 3 Overlay Netzwerke Die Selbstorganisation in großen Computernetzen kann mit Hilfe so genannter Overlay Netzwerke implementiert werden. Diese sind Untersuchungsgegenstand dieses Kapitels. Um ein einheitliches Verständnis für den Begriff Overlay Netzwerke zu erzeugen und um in die Thematik einzuführen, werden in 3.1 kurz Grundlagen behandelt. In 3.2 werden ausgewählte Technologien behandelt, die das eigentliche Rückrat der selbstorganisierten Computernetzwerke bilden. Auf die Darstellung der Technologien aufbauend, stellt der letzte Abschnitt dieses Kapitels (vgl. 3.3) Einsatzmöglichkeiten und Applikationen vor, die strukturierte Selbstorganisation implementieren. Da Selbstorganisation ohne Führungspersönlichkeiten funktioniert, liegt es nahe, anstelle traditioneller Client-Server-Netzewerke Computernetze mit Peer-to-Peer-Architektur zu betrachten. 3.1 Grundlagen Ein Overlay Netzwerk ist eine logische Schicht, die oberhalb eines physikalischen Netzwerks implementiert wird (vgl. Peterson / Davie (2004), S. 682). Nach dieser Definition sind Overlay Netzwerke keine neue Erfindung. Schon das Internet ist als Überzug über das alte Telefonnetzwerk entwickelt worden. Die neueren Peer-to-Peer (P2P) - Netzwerke setzen auf dem TCP/IP – Protokollstapel auf und bilden dadurch eine Art Decke oder Überzug (Overlay). Jeder Knoten im Overlay Netzwerk ist ebenfalls im physikalischen Netzwerk vorhanden, aber nicht jeder physische Knoten ist im Overlay Netzwerk implementiert (vgl. Abb. 3.1/1). 5 Diese Eigenschaft wird auch Trafalgar-Effekt genannt, in Analogie zur raschen Befehlübermittlung zwischen den Schiffen von Admiral Nelsons Flotte vor Trafalgar (vgl. Camazine et al. (2001), S. 167). 3 Overlay Netzwerke 11 Overlay physikalisch Abbildung 3.1/1: Overlay Netzwerke setzen auf physischen Netzwerken auf Es können mehrere Overlay Netzwerke auf ein physisches Netzwerk aufgesetzt werden, wobei jedes eine netzwerkspezifische Logik implementiert. Zudem ist es möglich, verschiedene Overlay Netzwerke übereinander zu verschachteln. Die in 3.2 vorgestellten Technologien zur Bildung von Overlay Netzwerken z.B. bauen allesamt auf dem Internet auf, welches seinerseits wiederum ein Overlay über das Telefonnetz darstellt. Die Verbindung zwischen zwei logischen Knoten wird auf der physikalischen Ebene durch Multihop-Pfade verwirklicht, die aber von den Overlay Knoten als einzelne logische Verbindung interpretiert werden (Single-hop). 3.2 Technologien (state-of-the-Art) In diesem Abschnitt werden Technologien erläutert, die zum Aufbau eines Overlay Netzwerks benutzt werden können. Die meisten wurden Anfang dieses Jahrtausends entwickelt und erleben derzeit eine verstärkte Beachtung im kommerziellen Bereich zur Entwicklung von neuen Applikationen. 3.2.1 Chord Chord funktioniert ohne einen zentralen Indexserver und ohne Supernodes. In einem Netzwerk, welches auf Chord beruht, hat jeder Knoten eine eindeutige ID der Bitlänge m. Die ID wird pragmatisch berechnet, indem die IP des Knotens durch einen Hash Algorithmus in eine ID transformiert wird. Die in dem Netzwerk unterzubringenden Ressourcen haben eine RessourcenID mit derselben Bitlänge m. In dem Falle, dass eine Ressource einer Datei entspricht, kann die RessourcenID z.B. durch Berechnung des Hashwertes der Datei ermittelt werden. Chord leistet jetzt eine sehr elementare Aufgabe, dies jedoch sehr effizient: Chord findet in logarithmischer Laufzeit zu einer RessourceID den zuständigen Knoten mit der ID p. Die Laufzeit entspricht dabei der Anzahl der Knoten, die als Intermediär („Hop“) benutzt werden müssen, um den zuständigen Knoten zu ermitteln. 3 Overlay Netzwerke 12 Durch die logarithmische Laufzeit skaliert Chord sehr gut, wenn die Anzahl der Knoten im Netzwerk ansteigt. Chord weist diese guten Laufzeiteigenschaften auf, da die Knoten im Netzwerk intelligent aufeinander verweisen, somit also das Routing sehr effizient ablaufen kann. Grundsätzlich hat jeder Knoten im Chord Netzwerk einen Verweis auf ein Nachfolgepeer gespeichert. Ein Nachfolgepeer eines Peers ist dabei der Knoten, welcher die nächsthöhere ID hat. Das Peer mit der letzten ID ist wieder mit dem ersten Knoten verbunden. Es entsteht somit ein so genannter Chord Ring (Abbildung 3a). 3 3 12 30 19 | | | | | | 12 30 27 27 Finger 3+1 3+2 3+4 3+16 3+32 8 8 19 23 23 Abbildung 3.2-1a: Chord Ring mit Nachfolgerbeziehungen, 3.2-1b: Peer mit seiner Fingertabelle. Abbildung 3a zeigt den grundsätzlichen Aufbau eines Chord Ringes. Jeder Knoten kennt seinen Nachfolger im ID Raum. Ein Knoten ist für eine RessourcenID zuständig, wenn ID = RessourcenID bzw. RessourcenID > ID und die ID des nachfolgenden Knotens größer ist als die RessourcenID. Aber in dieser einfachen Form ist das Routing sehr ineffizient. Will der Knoten mit der ID 3 eine Ressource mit der ID 31 (liegt auf Knoten mit der ID 30) finden, so müssen alle Nachbarschaftsbeziehungen sukzessive durchlaufen werden. Der Suchaufwand ist proportional zur Anzahl der Knoten im Netz. Damit die Suche effizienter wird, besitzt jeder Knoten eine Routing-Tabelle mit einer konstanten Anzahl an Einträgen (oder auch Finger-Tabelle). Der i-te Finger zeigt dabei auf den Knoten, welcher für die Ressource (ID+2i) zuständig ist (Abbildung 4b). Sucht der Knoten eine bestimmte Ressource, so leitet es die Anfrage an den Knoten weiter, welcher in der Fingertabelle vor der Ressource am Nächsten im ID Raum liegt. Dieser Knoten leitet dann die Anfrage wiederum mit Hilfe seiner Finger-Tabelle weiter, bis der zuständige Knoten genau getroffen wird. Durch die Konstruktion der Finger-Tabellen ist ein Knoten verstärkt mit IDs verbunden, die nahe am ID Raum des Knotens selbst liegen. Der Fingerabstand im ID Raum nimmt mit zunehmender Fingerordnung i jedoch stark zu. Liegt eine RessourcenID weit weg von der eigenen ID kann mit einem Finger hoher Ordnung ein ungenauer, jedoch großer Schritt durch den ID Raum erreicht werden. Die Anfrage wird dann an einen „näheren“ Knoten weitervermittelt. Dieser „nähere“ Knoten hat jedoch eine Fingertabelle, die mit größerer Wahrscheinlichkeit den gesuchten Knoten bzw. einen Knoten mit „näheren“ IDs enthält. Da jeder Knoten eine solch konstruierte Fingertabelle hat, wird die Anfrage immer weiter an ein bezüglich der gesuchten RessourcenID „lokaler“ bewanderten Knoten weitergeleitet, so dass eine schnelle Suche mit logarithmischer Laufzeit erfolgen kann. Für eine eingehendere Diskussion über die entsprechenden Konstruktionsalgorithmen des Chord Ringes, sowie der Fingertabellen und von Stabilisierungsalgorithmen siehe Stoica (et al. 2002). 3 Overlay Netzwerke 3.2.2 13 Pastry Ein Pastry-System (vgl. vertiefend Rowstron/Druschel 2001) bildet ein selbstorganisiertes Overlay Netzwerk, an dem jeder Knoten teilnehmen kann, auf dem die Pastry-Software installiert ist und der mit dem Internet verbunden ist. Allerdings sind knotenspezifische Sicherheitsrichtlinien zu beachten. Jedem Knoten des Netzes wird beim Beitritt zum Netz zufällig ein 128-bit-langer, eindeutiger Knotenbezeichner (nodeId) aus einem Zahlenraum von 0 bis 2 128 − 1 zugewiesen, anhand dessen die Position in dem ringförmigen Zahlenraum festgestellt wird (vgl. Rowstron/Druschel 2001, S. 3). Es wird dabei angenommen, dass durch die Art der Generierung die nodeIds gleichverteilt sind über den gesamten Zahlenraum (z.B. durch Bildung eines Hashwertes aus der IP-Adresse des Knotens). Weiterhin dürften, resultierend aus der zufälligen Zuweisung von nodeIds, Knoten mit benachbarten nodeIds mit einer hohen Wahrscheinlichkeit heterogen sein im Hinblick auf Geografie, Netzzugang, Besitzer, usw.. Pastry ist somit in der Lage, jeden Knoten eindeutig zu identifizieren und kann die Anfrage zu dem einem beliebigen Zielknoten jeweils numerisch am nächsten gelegenen Knoten in log 2b N Schritten weiterleiten (routen). Um derartiges Routing zu unterstützen, pflegt jeder Knoten eine Routing-Tabelle (routing table)6, eine Tabelle mit den aktuellen Nachbar-Knoten (neighbourhood set) und eine Tabelle der L / 2 zum aktuellen Knoten numerisch relativ größeren und kleineren Knoten (leaf set). Die nodeId’s werden als Bitfolgen mit der Basis 2 b interpretiert. Der Knoten nimmt nun Anfragen entgegen und überprüft zunächst, ob die nodeId des Zielknotens in das Intervall seines leaf sets fällt. Ist dies der Fall, wird die Anfrage direkt an den Zielknoten geleitet. Ist der Zielknoten nicht im leaf set des aktuellen Knotens enthalten, wird die Anfrage an einen Knoten geleitet, der mindestens eine Zahl bzw. b bits mehr als der aktuelle Knoten mit dem Zielknoten gemeinsam hat. Wenn ein solcher Knoten nicht existiert, weil z.B. der Eintrag im routing table leer ist oder der Knoten nicht erreichbar ist, wird die Anfrage an einen Knoten geleitet, dessen Prefix die gleiche Länge wie das des aktuellen Knotens hat, der jedoch numerisch betrachtet näher am Zielknoten gelegen ist. Dieser Knoten ist im leaf set zu finden, wenn die Anfrage nicht schon den numerisch am nächsten gelegenen Knoten erreicht hat. Die Performanz des Routings ist einfach abzuschätzen. Da die Zahl der möglichen Knoten mit einem längeren Prefix bei jedem Schritt um 2 b abnimmt, kann der Zielknoten in O( log 2b N ) erreicht wer- den. Ist der Knoten im leaf set zu finden, beträgt die Entfernung zum Ziel maximal O(1). Im Folgenden wird dargestellt, wie sich die Selbstorganisation in einem Pastry-System vollzieht. Dazu werden die Fälle des Hinzufügens von Knoten zum System und das Verlassen von Knoten betrachtet. 6 die Routing Tabelle eines Pastry Knotens enthält also insgesamt log 2b N x ( 2 b − 1 ) Einträge. log 2b N Spalten mit jeweils 2 b − 1 Einträgen, 3 Overlay Netzwerke 14 Kommt ein neuer Knoten zu einem Pastry Netzwerk hinzu, muss er den benachbarten Knoten seine Präsenz mitteilen und seine eigenen Tabellen mit den Daten der Nachbarknoten initialisieren. Um die Daten der Nachbarn zu beziehen, sendet der neue Knoten X eine spezielle Nachricht an einen Knoten A im Netzwerk. Pastry leitet diese Nachricht wie oben beschrieben an den Knoten mit der längeren Prefix weiter zu X. A und alle anderen Knoten, die auf dem Weg zu X passiert werden, senden ihre Daten zu X, die dort überprüft und zur Initialisierung verwendet werden. Als letzten Schritt der Initialisierung sendet X anhand der gewonnen Daten ein update an alle Knoten, die auf Grund ihrer nodeId von der Ankunft von X informiert werden müssen. Durch diese Prozedur ist sichergestellt, dass neue Knoten korrekt und mit aktuellen Daten initialisiert werden und gleichzeitig die betroffenen Knoten von dem neu hinzugekommenen Knoten benachrichtigt werden. Verlässt ein Knoten das Netzwerk, entweder durch bewusstes Verlassen oder durch einen Absturz, müssen die benachbarten Knoten ebenfalls davon in Kenntnis gesetzt werden. Wenn die benachbarten Knoten nicht mehr mit dem ausgeschiedenen Knoten kommunizieren können, fragt der numerisch am nächsten stehende Nachbar, den Knoten mit dem größten Index neben dem ausgefallenen Knoten nach dessen leaf set. Dieses Set überlappt teilweise mit dem vorhandenen leaf set des Knotens wobei gleichzeitig nodeId’s von Nachbarn geführt werden, die in dem aktuellen Set des Knotens nicht erfasst wurden. Aus dieser neuen Knotenmenge wird nun der geeignete Knoten ausgewählt und gleichzeitig durch eine Anfrage verifiziert, dass er verfügbar ist. Obwohl das neighbourhood set nicht für Routingzwecke verwendet wird, ist es wichtig, dass jeder Knoten die Informationen über seine Nachbarn auf dem neuesten Stand hält, da diese für den Informationsaustausch zwischen nahe beieinander liegenden Knoten genutzt werden. Zu diesem Zweck kontaktiert ein Knoten die in seinem neighbourhood set befindlichen Knoten in regelmäßigen Abständen. Eine weitere Eigenschaft von Pastry ist die Berücksichtigung der Lokalität der Knoten. Die Entfernung bzw. Positionierung der Knoten wird mit Hilfe eines Proximitätsmaßes (hier: ein Distanzmaß) ausgedrückt, welches auf eine skalaren Proximitätsmetrik beruht, z.B. auf der Anzahl der benötigten IP Routing Sprünge oder der geografischen Distanz sein. Die Distanz wird nach der Euklidischen Methode berechnet, wonach sich die Distanz d zwischen zwei Punkten (x,y) ergibt aus der Norm der Differenz: d(x, y) = (x1 − y1)2 +(x2 − y2 )2 . Die Lokalität oder präziser die Nähe der Knoten spielt beim Routing eine wichtige Rolle. Es erscheint wünschenswert, dass die Routingtabelle eines Knotens immer auf Knoten innerhalb der Knotenmenge mit geeigneten nodeId’s verweist, die, gemessen an der Proximitätsmetrik, tatsächlich nah sind. Wie diese Eigenschaft in einem dynamischen Netzwerk erhalten wird soll nun erörtert werden. Es wurde gesagt, dass ein neu dem Netzwerk beigetretener Knoten X einen benachbarten Knoten A auffordert, eine Nachricht mit der eigenen nodeId weiterzuleiten. Diese Nachricht wird über mehrere Stationen zu dem numerisch am dichtesten an X gelegenen Knoten Z gelangen. Knoten X initialisiert nun die i-te Zeile seiner Routingtabelle mit den Routinginformationen des i-ten Knotens auf dem Weg von A nach Z. Da Knoten A per Definition nah bei Knoten X ist und die Knoten-Einträge in der 0-ten Reihe der Routingtabelle von A numerisch nah bei A sind, liegt X in der Nähe von A. Es ist daher ge- 3 Overlay Netzwerke 15 rechtfertigt, die Routinginformationen für Knoten X von Knoten A zu beziehen. Um die Informationen zu verbessern, kontaktiert X jeden anderen Knoten, der in seiner Routingtabelle oder dem neighbourhood set eingetragen ist und vergleicht die dort gespeicherten Werte mit den eigenen. Findet Knoten X dort Einträge über nähere Knoten, übernimmt er diese. Eine Nachricht wird in jedem Routing-Schritt zu einem numerisch dem Ziel näher gelegenen Knoten weitergeleitet, während die in der Proximitätsmetrik zurückgelegte Distanz minimiert wird. Mit jedem Schritt wird allerdings die zurückgelegte Distanz exponentiell größer, da die Menge der Knoten mit b einem geeigneten Prefix mit jedem Schritt exponentiell um 2 abnimmt und angenommen wurde, dass auf Grund der Gleichverteilung der nodeId’s im Netzwerk numerisch benachbarte Knoten eher weit auseinander liegen. Eine Nachricht, die von A zu B mit der Distanz d weitergeleitet wurde, kann durch den RoutingAlgorithmus bedingt, nicht mehr zu einem Knoten gelangen, der eine kleiner Distanz als d von A aus betrachtet aufweist. Die letzten beiden Eigenschaften kombiniert bewirken, dass eine Nachricht mit immer größeren Sprüngen und immer in Richtung Bestimmungsort weitergeleitet wird. Hierbei werden nur lokale Informationen verwendet, ohne dass ein Pastry System eine Vorstellung des globalen Zustandes hat. 3.2.3 Content Addressable Networks (CAN) Ähnlich wie Chord (vgl. 3.2.1) baut das von Ratnasamy et al. (2001) vorgestellte Content Adressable Network (CAN), auf Mechanismen von Distributed Hash Tables (DHT) zur Zuweisung von Resourcen (z.B. Dateien) zu einzelnen Netzwerkknoten auf, die keinen zentralen Koordinationsmechanismus benötigen. Die logische Struktur des Netzwerks ist ein d-dimensionaler kartesischer Koordinatenraum, der auf einem d-Ring aufgespannt ist. Dieser Koordinatenraum wird dynamisch von den im Netzwerk anwesenden Knoten partitioniert, so dass jeder Knoten ein bestimmtes Koordinatenfeld besitzt. Dieser Koordinatenraum wird genutzt, um die Schlüssel-Wert Paare mit Hilfe einer gleichverteilenden, deterministischen Hashfunktion (uniform Hashing) zu speichern. Dazu wird der Schlüssel einem Punkt P, beschrieben durch ein Koordinatenpaar, im Koordinatenraum zugeordnet. Auf dem Knoten, der das Koordinatenfeld, in dem dieser Punkt liegt besitzt, wird das Schlüssel-Wert-Paar gespeichert. 3 Overlay Netzwerke 16 1 C A 0,5 B C 0 0,5 E 1 Abbildung 3.2-2: 2D-Koordinatenraum mit fünf Knoten und ihren Koordinatenfeldern Um den zu einem Schlüssel gehörenden Wert zu ermitteln, kann jeder Knoten nun dieselbe deterministische Hashfunktion auf den Schlüssel anwenden, um den Punkt P als Speicherort und damit Zugriff zu dem gewünschten Wert zu erhalten. Wird der Punkt nicht von dem anfragenden Knoten oder dessen Nachbarn besessen, muss die Anfrage durch die Infrastruktur des CAN weitergeleitet werden (Routing). Effizientes Routing ist also ebenfalls eine wichtige Fragestellung im Zusammenhang mit CANs und wird nachfolgend dargestellt. Um ein effizientes Routing zu ermöglichen, merken sich alle im CAN vorhandenen Knoten die IPAdressen und die Koordinatenfelder, die ihnen und ihren Nachbarn7 per Hashfunktion zugeordnet sind. Diese lokal begrenzten Informationen sind ausreichend, um eine Nachricht zwischen zwei beliebigen Punkten im Koordinatenraum zu leiten. Da eine CAN Nachricht die Zielkoordinaten enthält, kann der aktuelle Knoten sie jeweils dem Nachbarknoten übergeben, dessen Koordinatenfeld näher an den Zielkoordinaten liegt. Da mehrere alternative Wege vom Startpunkt zum Zielpunkt bestehen, können einige der Knoten ausfallen, ohne dass die Routingleistung beeinträchtigt wird. Wenn ein Knoten jedoch alle Nachbarn verliert, müssen Reparaturmechanismen in Kraft treten, die weiter unten beschrieben werden. E A B C neighbourhood map C = {A,B,D,F} D F X Abbildung 3.2-3: Exemplarisches Routing von B zum Zielknoten X Vorher wird jedoch das Verfahren beschrieben, nach dem Knoten zum CAN hinzugefügt werden. Dies setzt voraus, dass das Koordinatenfeld eines Knotens geteilt, d.h. die Zuständigkeit für die Hälfte des 7 Knoten sind Nachbarn in einem d-dimensionalen Koordinatenraum, wenn ihre Koordinatenfelder in d – 1 Dimensionen überlappen und entlang einer Dimension aneinandergrenzen. 3 Overlay Netzwerke 17 Koordinatenraums an den neuen Knoten übertragen wird, während die andere Hälfte bei dem bisher dafür zuständigen Knoten verbleibt. Dieser Prozess lässt sich in drei Teile gliedern: 1.) Der neue Knoten muss einen Knoten im CAN finden. Dies geschieht, indem der Knoten die IP-Adresse eines CAN Knotens von einem DNS Server bezieht. Dieser Mechanismus soll an dieser Stelle nicht näher beschrieben werden, da das Funktionieren des CAN nicht von ihm abhängt. 2.) Danach muss mit Hilfe des CAN Routing Mechanismus ein Knoten gefunden werden, dessen Koordinatenfeld geteilt werden kann. Dies ist relativ einfach zu realisieren, indem eine Join Nachricht beginnend von einen beliebigen bekannten Knoten über das CAN an ein zufällig generiertes Koordinatenpaar weitergeleitet wird. Der Knoten, der für das Koordinatenpaar zuständig ist, teilt daraufhin sein Koordinatenfeld und übergibt die Hälfte an den neuen Knoten. Bei der Teilung sind bestimmte Regeln in Bezug auf die Reihenfolge der Dimensionen einzuhalten, damit die Koordinatenfelder nach Verlassen des CAN durch einen Knoten wieder zusammengeführt werden können. 3.) Zuletzt müssen die Nachbarn des nun geteilten Koordinatenfelds benachrichtigt werden, damit der hinzugekommene Knoten im Routing berücksichtigt werden kann. In einem ersten Schritt erbt der neue Knoten die Informationen über seine Nachbarn (IP-Adresse) vom vorgänger. Nun sendet der Knoten eine Nachricht an seine Nachbarn, um ihnen Informationen über ihn zukommen zu lassen. Mit diesen Informationen werden die Routingtabellen der Knoten geupdatet und sichergestellt, dass die benachbarten Knoten schnell von Änderungen in Kenntnis gesetzt werden. Diese Flooding Strategie fällt insofern nur wenig ins Gewicht, da sie nur sehr lokal eingesetzt wird. Nachdem beschrieben wurde, wie ein Knoten dem Netzwerk hinzugefügt wird, ist nun der Gegensatz, das Verlassen des CAN durch Knoten, zu beschreiben. Dies kann zum einen beabsichtigt, zum anderen unbeabsichtigt durch Fehler verursacht werden. Im Fall eines beabsichtigten Verlassens des CAN kann eine kontrollierte Informationsübergabe erfolgen, im zweiten Fall ist dies nicht möglich. Daher werden nachfolgend beide Fälle beschrieben. Wenn ein Knoten bewusst das CAN verlässt, ist sicherzustellen, dass das ihm zugewiesene Koordinatenfeld von einem anderen Knoten übernommen wird. Im Normalfall wird dies durch die Übergabe der Schlüssel-Wert-Tabelle an einen der Nachbarn erreicht. Können die Koordinatenfelder problemslos zusammengeführt werden, ist die Reorganisation damit abgeschlossen. Wenn nicht, wird die Schlüssel-Wert-Tabelle an den Knoten übergeben, dessen Koordinatenfeld am kleinsten ist. Dieser ist dann übergangsweise für beide Koordinatenfelder zuständig. In diesem kontrollierten Umfeld wirft das Verlassen des CAN durch Knoten keine Schwierigkeiten auf. Treten im CAN jedoch Umstände auf, die dazu führen, dass einer oder mehrere Knoten nicht mehr erreichbar sind, müssen zwangsläufig andere Organisationsmechanismen in Kraft treten. In diesem Fall übernimmt ein Nachbar des ausgefallenen Knotens mittels Übernahmealgorithmus dessen Koordinatenfeld sobald der Ausfall bekannt wird, d.h. der Knoten mit den periodischen Update-Nachrichten 3 Overlay Netzwerke 18 nicht mehr kontaktiert werden kann. Die Schlüssel-Wert-Paare des ausgefallenen Knotens sind jedoch solange verloren, bis die anderen Knoten diese Daten erneuert haben. Fallen mehrere benachbarte Knoten simultan aus, besteht die Möglichkeit, dass das CAN inkonsistent wird. Um dieses zu vermeiden, führt der Knoten, der den Ausfall entdeckt hat, eine Ringsuche, die über die betroffenen Koordinatenfelder hinausgeht, durch, um einen aktiven Nachbarknoten zu finden. Mit dessen Hilfe kann nun eine stabile Nachbarschaftsbeziehung aufgebaut werden, auf die wiederum die bekannten Übernahmealgorithmen angewandt werden können. 3.2.4 Tapestry Tapestry baut auf dem Routingmechanismus von Plaxton et al. (1997) auf, der eine Datenstruktur (Plaxton Mesh8) benutzt, mit deren Hilfe Objekte in einem beliebig großen Netzwerk in garantierter Zeit lokalisiert und weitergeleitet werden können (vgl. Zhao et al. (2001a), S. 4; Zhao et al. (2001b), S. ). Im Folgenden werden der Aufbau und die Mechanismen zur Selbstorganisation in einem Tapestry Netzwerk beschrieben. In einem Plaxton Mesh können die einzelnen Knoten die Rollen von Servern (auf denen Objekte gespeichert werden), Routern (die Nachrichten weiterleiten) oder Clients (die Anfragen stellen) annehmen. Weiterhin haben die Objekte und und Knoten Namen, die aus zufälligen immer gleichlangen Bitfolgen bestehen. Ebenfalls wird angenommen, dass die Einträge im Objekt und Knotenraum gleichverteilt sind. Es wird nun dargestellt, welche Mechanismen das Routing von Nachrichten und das Auffinden von Objekten in Tapestry ermöglichen. Um das Routing sicherzustellen, wird von jedem Knoten eine Liste seiner Nachbarn, die sogenannte „neighbourhood map“ gepflegt. Anhand dieser Liste werden Nachrichten inkrementell, d.h. bitweise zu ihrer Zieladresse weitergeleitet (z.B. ***5 –> **15 -> *815 -> 0815; * sind Platzhalter)9. Die Liste ist aus mehreren Ebenen aufgebaut, wobei jede Ebene ein passendes Suffix für die entsprechende Zieladresse darstellt. Da nach diesem Aufbau der n-te Knoten der von einer Nachricht auf dem Weg zu seinem Bestimmungsort passiert wird, höchstens n übereinstimmende Bits haben kann, muss für das weitere Routing ein Knoten der nächsthöheren, also der n+1ten Ebene der Liste gefunden werden. Dieses Vorgehen garantiert, dass in einem System mit N Knoten, welches Namen (Bitfolgen) zur Basis b benutzt, jede Nachricht mit maximal log b N logischen Sprüngen an ihr Ziel geleitet werden kann, da jeder Knoten annimmt, dass die vorhergehenden Bits mit denen der Zieladresse übereinstimmen und daher nur eine Liste seiner Nachbarn der konstanten 8 Plaxton macht allerdings die Annahme, dass die Plaxton Mesh eine statische Datenstruktur ohne dynamische Änderungen der Knoten- und Objektanzahl ist. 9 Plaxton/Tapestry löst die Adresse bitweise von links nach rechts auf, jedoch ist auch eine Auflösung von rechts nach links, wie sie beim Routing anhand des längsten Prefixes z.B. in Pastry (vgl. 3.2.2) benutzt wird. 3 Overlay Netzwerke 19 Größe10 b auf jeder Ebene pflegen muss. Deutlich wird dies, wenn man die Struktur als Baum darstellt, dessen Wurzel der Zielknoten ist und dessen Blätter die Startknoten darstellen (vgl. Abb. 3-3/4). L1 B4F8 0325 L2 9098 L2 2BB8 L3 4598 7598 L4 L1 87CA Abbildung 3.2-4: Routing Beispiel. Nachricht von Knoten 0325 zu Knoten 4598 in einem Plaxton mesh mit hexadezimalen Zahlen der Länge 4 (ähnlich Zhao et al. (2001a), S.5) Nachdem das Routing erörtert wurde, stellt sich nun die Frage, wie die Lokationsmechanismen von Tapestry arbeiten. Ein Knoten (Server), der das Objekt X speichert, leitet dazu eine spezielle Nachricht an den Wurzelknoten, d.h. an die Wurzel des eingebetteten Baumes für Objekt X. Bei jedem Routingschritt speichert die Veröffentlichungsnachricht Wertpaare in der Form (ObjektId, ServerID), wobei die Werte nur Verweise auf die Server, auf denen X gespeichert ist sind und keine Kopien. Wenn es mehrere Speicherorte für X gibt, wird jeweils die Referenz auf den am nächsten liegenden Knoten gespeichert. Während einer Suchanfrage senden die Clients Nachrichten zu Objekten. Eine an Objekt X gerichtete Nachricht wird anfänglich zu dem Wurzelknoten von X weitergeleitet. Wenn die Nachricht auf dem Weg auf einen Knoten trifft, der eine Referenz auf den Speicherort von X enthält, wird sie sofort anhand der gewonnenen Informationen zu einem Server, der X vorhält, umgeleitet. Andernfalls wird die Nachricht einen Schritt in Richtung Wurzelknoten weitergeleitet. Erreicht die Nachricht den Wurzelknoten, so ist garantiert, dass X gefunden wird. Der Wurzelknoten eines Objekts wird anhand eines deterministischen Algorithmus aus dem vorhandenen Namensraum ausgewählt. Dies setzt allerdings die Kenntnis des kompletten Netzes bei der Erstellung der Plaxton mesh voraus. Da pro Objekt nur ein Wurzelknoten existiert, hat dieser eine kritische Position inne. Gleichzeitig stellt er aber auch die Achillesferse von Tapestry, den Single-Point-of-Failure, dar. Als Fazit der Technologiebetrachtung kann festgehalten werden, dass alle hier betrachteten Technologien auf unterschiedliche Weise lokale Informationen nutzen, um auf globaler Netzebene ein logisch-strukturiertes Gebilde (Overlay) zu schaffen, dem emergente Eigenschaften bescheinigt werden können. Wie diese Eigenschaften eingesetzt bzw. für Applikationen eingesetzt werden können, wird im nächsten Abschnitt dargestellt. 10 NeighbourMapSize = entries = b × Logb N map × numberofmaps 3 Overlay Netzwerke 3.3 20 Anforderungen an und Einsatzbereich von Overlay Netzwerken In diesem Abschnitt werden generische Anwendungsfelder von Overlay Netzwerken vorgestellt, die dann anhand verschiedener Beispiele bereits entwickelter oder konzeptionell erarbeiteter Systeme illustriert werden. Der Fokus der vorliegenden Arbeit liegt auf solchen Anwendungen, die sich durch Overlay Netzwerke im P2P-Umfeld ergeben (vgl. 3.2.3). Die Ausführungen zu 3.2.1 fallen daher kurz aus. 3.3.1 Anforderungen Aus der oben vorgestellten Definition lassen sich Anforderungen an dezentrale, auf Overlay Netzwerken basierende Applikationen ableiten (vgl. Seidenfaden et al. 2003, S. 98). Die wichtigsten werden nachfolgend in Kürze vorgestellt. Dabei wird zwischen technischen und ökonomischen Anforderungen unterschieden. In den Bereich der technischen Anforderungen fallen: Skalierbarkeit: Ein Overlay Netzwerk muss unabhängig von der Anzahl der in ihm konzentrierten Ressourcen effizient arbeiten. Dazu zählen u.a. die problemlose Erweiterbarkeit des Systems, ohne Änderungen an der Software vornehmen zu müssen, sowie die Ortsunabhängigkeit der Algorithmen. Sicherheit: Eine besondere Anforderung an die Sicherheit ergibt durch die domänenübergreifende Ressourcenverteilung innerhalb eines Overlays. Sicherheitsmechanismen in verteilten Systemen haben unter Berücksichtigung der domänenspezifischen Sicherheitsrichtlinien Vertraulichkeit, Integrität und die Verfügbarkeit von Ressourcen zu gewährleisten. Die Vielzahl unterschiedlicher Richtlinien macht die Realisierung einer sicheren Overlay-Umgebung sehr schwierig. Lastverteilung: Um eine ungleiche Auslastung der Ressourcen zu vermeiden, sollten strukturierte Overlay Netzwerke so beschaffen sein, dass sich die Last möglichst gleichmäßig im Netz verteilt. Verfügbarkeit: Idealerweise sollte ein dezentralisiertes System identische Antwortzeiten aufweisen, wie sein zentralisiertes Pendant. Durch die sich stochastisch verändernde Umgebung eines P2P Netzes ergeben sich jedoch besondere Herausforderungen bezüglich der Verfügbarkeit einzelner Dienste oder Daten. Robustheit: Diese Anforderung hängt eng mit der Verfügbarkeit des Systems zusammen. Das System sollte gegen Angriffe robust sein. Im Gegensatz zu zentralisierten Systemen bieten dezentralisierte Systeme keinen „Single-Point-of-Failure“, sondern ein Angriff kann idealerweise nur einen kleinen Teil des Netzwerkes funktionsuntüchtig machen. Daneben spielt Vertrauen als ökonomischer Faktor für die weitere Realisierung wirtschaftlicher Potenziale [vgl. , S. 229] eine wichtige Rolle in Systemen, die auf Overlays basieren, da dort eine asymmetrische Informationsverteilung vorliegt [vgl. , S. 26]. Dies bedeutet, dass den Geschäftspartnern gegenseitig nicht alle Informationen zur Verfügung stehen. Daraus resultiert die Notwendigkeit, Vertrauensmechanismen in einem Overlay abzubilden, die relevante Informationen über Ressourcen sammeln und bereitstellen. Dies ist umso schwieriger, da ein 3 Overlay Netzwerke 21 Overlay i. d. R. durch hohe Spontaneität, d.h. das stochastische An- und Abmelden von Ressourcen, gekennzeichnet ist. Daher erscheinen automatisierte Mechanismen zur Vertrauensgenerierung (vgl. z.B. den Reputationsmechanismus von „Free Haven“ in 3.4.2) geeigneter als manuelle, die z.B. in Form von Reputationslisten bei Online-Auktionshäusern (z.B. http://www.ebay.com) Verwendung finden. 3.3.2 Einsatzgebiete In diesem Abschnitt wird auf generische Einsatzgebiete von Overlay Netzwerken sowie auf spezielle Applikationen eingegangen. Dabei wird auf die in 3.4 vorgestellten Anforderungen Bezug genommen und aufgezeigt, mit welchen Mitteln diese Anforderungen von den vorgestellten Applikationen erfüllt werden. Routing Overlays In diesem Anwendungsbereich werden Overlay Netzwerke zur Realisierung einer spezifizierten Routing Strategie benutzt, d.h. in den Overlay Knoten werden keine zusätzlichen Aufgaben der Anwendungsschicht durchgeführt. Allgemein kann zwischen strukturierten und unstrukturierten Overlay Netzwerken unterschieden werden. Ein bekanntes Beispiel für ein unstrukturiertes Overlay ist das bekannte P2P-Netzwerk Gnutella (vgl. Crowcroft et al. (2004), S. 603), in dem sich die einzelnen Peers zufällig organisieren und welches somit unstrukturiert wächst. Unstrukturierte Overlays benutzen triviale Konstruktions- und Wartungsalgorithmen und das Beste was sie zu bieten haben, ist eine unzuverlässige, zufallsgesteuerte Suche (Peterson / Davie (2004), S. 695). Strukturierte Overlays dagegen sind auf die Einhaltung einer bestimmten overlayspezifischen Graphenstruktur (z.B. Ring) ausgelegt, weshalb die Suche in ihnen wesentlich effizienter als in unstrukturierten Overlays durchgeführt werden kann. In der Regel kann jeder Knoten im Netz in zur Größe des Netzes logarithmischer Laufzeit erreicht werden. Allerdings ist mit der Einhaltung der Graphenstruktur auch eine höhere Komplexität bei der Konstruktion und der Anpassung des Netzes verbunden, wie nachfolgend anhand von Technologien zur Konstruktion strukturierter Overlays dargestellt wird. Wenn man einen alternativen Routing Algorithmus, der nicht von den Standard IP Routern unterstützt wird, implementieren möchte, ist man auf Overlays angewiesen. In diesem Fall muss die Overlay Software mit dem entsprechenden Algorithmus auf einer Anzahl Endknoten implementiert werden, die zu Kommunikation untereinander „IP-Tunnel“, z.B. in Form von virtuellen privaten Netzwerken (VPN), benutzen. Die Knoten sind höchstwahrscheinlich über eine physische Verbindung ans Internet angeschlossen, im Overlay jedoch untereinander über mehrere Tunnel verbunden. Durch diese Möglichkeit erscheinen Overlays ideal für die Erprobung neuer Technologien unabhängig von dem oft langwierigen Standardisierungsprozess: 3 Overlay Netzwerke 22 „Overlay Netzwerke sind ideal für die Installation experimenteller IP-Versionen, von denen man erhofft, dass sie irgendwann die Welt erobern“ (Peterson / Davie (2004), S. 685). Beispiele für derartige Testumgebungen sind die Projekte M-Bone, X-Bone und 6-Bone, die in dieser Reihenfolge nachfolgend skizziert werden. M-Bone (Multicast Backbone) ist ein Overlay Netzwerk, implementiert eine Testversion von IPMulticast, eine IP-Erweiterung für Multicast-Anwendungen. Eine wichtige Anwendung, die auf M-Bone aufsetzt, ist VIC, eine Werkzeug, dass Videokonferenzen zwischen mehreren Teilnehmern ermöglicht. Anwendungsbereiche sind z.B. die Ausstrahlung von Konferenzen (z.B. von der Internet Engineering Task Force (IETF)) und Seminaren über das Internet. M-Bone benutzt wie VPNs IP-Tunnel und IPAdressen, implementiert jedoch einen weiteren Routing Algorithmus. Durch diesen werden Pakete während des Herunterladens an alle benachbarten Knoten im Multicast-Baum weitergeleitet. Als Leistungshemmnis stellen sich derzeit die alten, nicht multicastfähigen Router dar, auf die M-Bone (noch) angewiesen ist. Für eine weiterführende Betrachtung von M-Bone sei auf die Arbeiten von Fahner et al. (2001), Kumar (1996), Fahner et al. (2001) verwiesen. 6-Bone ist ein ähnliches Netzwerk wie M-Bone, wird allerdings als Testumgebung für Routing mit Hilfe der neuen Version des Internetprotokolls, IPv6, benutzt. Das Routing baut derzeit ebenfalls auf alten IPv4-Routern auf, die die Tunnel bereitstellen. Die Adressierung beschränkt sich im Gegensatz zu MBone jedoch nicht auf den 32-bit (IPv4), sondern nutzt bereits den neuen 128-bit breiten Adressraum von IPv6. Zudem wird Multicast unterstützt. Eine ausführlichere Beschreibung zu IPv6 kann [Huitema (1998) und Rao / Sletta (2000) entnommen werden. Das Jüngste der vorgestellten Overlay Netzwerke ist X-Bone. Im Gegensatz zu den beiden erstgenannten Overlays stellt X-Bone Mechanismen zur automatischen Konfiguration bereit, so dass manuelle Eingriffe in die Konfiguration des Netzes minimiert werden. Somit wird der Aufwand zur Einrichtung eines derartigen Netzwerkes minimiert. Weiterhin übernehmen spezielle Softwareagenten die Koordination der Zugriffe auf Ressourcen, ein Aspekt, der insbesondere bei der Überlagerung mehrerer Overlays eine wichtige Rolle spielt. Ein ausführliche Beschriebung von X-Bone ist in Touch / Hotz (1998) zu finden. Verteilte Datei und Speichersysteme Ein weiteres Anwendungsfeld hängt eng mit dem Teilbereich Grid Computing des Peer-to-PeerKonzepts zusammen. In diesem Kontext können Overlays eingesetzt werden, um die gemeinsame Nutzung von geographisch und physikalisch getrennten Ressourcen, z.B. Speicherplatz zu ermöglichen. Dazu wird über das physische Netzwerk ein Overlay Netzwerk gelegt, welches Funktionen eines traditionell serverbasierten Netzwerks ausübt. Nur werden diese Funktionen nicht mehr auf dem Server ausgeführt, sondern auf den partizipierenden Peers (Knoten). Es lassen sich Archivierungssysteme auf der einen und globale Dateissysteme auf der anderen Seite unterscheiden. Auf beide wird im Folgenden eingegangen. 3 Overlay Netzwerke 23 Archivierungssysteme In diesem Kontext dienen Overlay Netzwerke zur Realisierung dezentraler Archivierungsdienste, die zensurresistent sind und die die Daten dauerhaft (persistent) für eine vom Nutzer festgelegten Zeitraumspeichern (vgl. Crowcroft et al. (2004), S. 606). Ein bekanntes Beispiel für ein derartiges System ist „Free Haven“ (vgl. http://www.freehaven.net sowie Dingledine et al. (2000)), welches die zu speichernden Daten durch Replizierung, d.h. durch Verteilung auf die Netzknoten archiviert. Das System baut in weiten teilen auf dem Konzept des von Anderson entwickelten „Eternity Service“ auf (vgl. Anderson (1997)). Primäres Ziel von „Free Haven“ ist es, einerseits die Anonymität der Urheber von Dokumenten zu gewährleisten, andererseits den Eigentümer der Server, auf denen die Dokumente gespeichert werden, von der Verantwortung für deren Inhalt zu befreien (vgl. Crowcroft et al. (2004), S. 606; Dingledine et al. (2000), S. 2f). Die Dokumente werden in einem, aus nicht vertrauenswürdigen Servern bestehenden, P2P-Netzwerk, dem „Servnet“ (Dingledine et al. (2000), S. 1) gespeichert. Innerhalb dieses Netzes sind Serverpaare („Buddies“) für die Speicherung bestimmte Dokumente verantwortlich. Für die Periode der Speicherung schließen die Server untereinander „Vertäge“. Erfüllt ein Server den Vertrag, d.h. die Speicherung erfolgt korrekt, so steigt seine Reputation. Je höher die Reputation eines Servers, desto mehr seiner eigenen Daten darf er auf anderen Servern speichern. Dies ist ein Anreiz für die Server, sich korrekt zu Verhalten solange Betrügerische Server identifizierbar sind (vgl. Dingledine et al. (2000), S. 2, 9f, 12f). Ein neueres System ist das auf Pastry (vgl. 3.2.2) basierende Archivierungsystem PAST (vgl. Rowstron et al. (2001); Druschel / Rownstron (2001); Rowstron / Druschel (2001)). Ebenso wie Free Haven arbeitet PAST mit Replikation und Caching von oft nachgefragten Dateien. Globale Dateisysteme Neuere verteilte Dateisysteme zielen darauf ab, einen einheitlichen Überblick über die Inhalte auf verteilten Ressourcen zu geben. Weiterhin bieten sie verlässliche Speicherung sowie eine effiziente Verteilung der Inhalte. Da derzeit das Management von Daten teuer ist als die Hardware (vgl. Crowcroft et al. (2004), S. 607), auf denen sie gespeichert werden, ist man dazu übergegangen, P2P Techniken für die Verwaltung großer, verteilter und dynamischer Systeme anzuwenden und somit die traditionellen Client-Server Systeme zu ersetzen (z.B. NFS). Eine solche Technik nutzt das Cooperative File System (CFS) (vgl. Dabek et al. (2001)), welches auf Chord basiert (vgl. 3.2.1). Die zu speichernden Daten werden in kleine größenmäßig determinierte Fragmente zerlegt, die anhand ihres Hashwertes mit Hilfe von verteilten Hashtabellen (DHT) auf die Knoten verteilt werden. Die Datei-Fragmente werden von den CFS-Clients als Dateisystem interpretiert und dem Chord-Protokoll entsprechend von den jeweils zuständigen Servern geladen und zusammengefügt. Der entscheidenste Vorteil von CFS ggü. anderen Speichersystemen (z.B. PAST) ist die gute Lastverteilung durch die Fragmentierung der Dateien (vgl. Dabek et al. (2001), S. 2). Eine prominente Technologie ist “OceanStore” (vgl. Bindel et al. (2000); Kubiatowicz et al. (2000)), eine Infrastruktur für ein globales Speichersystem, welches an der Universität Berkeley entwickelt 3 Overlay Netzwerke 24 wurde. Derzeit ist es prototypisch in der Applikation POND (vgl. Rhea et al. (2003)) implementiert. POND benutzt Plaxtons Routing Algorithmus, um gespeicherte Daten effizient zu lokalisieren. Weiterhin sieht es einen Caching Mechanismus vor, der die Knoten dazu veranlasst, häufig nachgefragte Daten zwischenzuspeichern. Ein Dateisystem für dezentrale Netzwerke stellt PASTA (vgl. Moreton et al. (2002)) dar, welches Pastry (vgl. 3.2.2) als Routingmechanismus nutzt, um einen persistenten Speicher- und Distributionsdienst in einem variablen unsicheren Umfeld anzubieten (vgl. Crowcroft et al. (2004), S. 607). Ebenso wie POND ist PASTA in einem prototypischen Stadium. PASTA interagiert mit dem lokalen Dateisystem über eine NFS Prüfschleife. Die Knoten speichern indizierte Blöcke, die Fragmente des dezentralen Namensraums speichern. Durch die Verteilung und Replikation dieser Fragmente auf mehrere verschiedene Knoten wird eine hohe Persistenz und Verlässlichkeit der Speicherung erreicht. Die Fragmentierung der Dateien erfolgt dabei in Abhängigkeit ihres Inhalts, um Gemeinsamkeiten zwischen Fragmenten auszunutzen und so Synergieeffekte auszunutzen. Dieses Vorgehen ermöglicht zudem die effiziente Speicherung verschiedener Versionen von Dateien, da nur die geänderten Fragmente getauscht werden müssen. Verteilte Suche Ein neueres Anwendungsfeld von Overlay Netzwerken ist das verteilte Suchen. Neben der Schlüsselbasierten und namesbasierten (z.B. Dateinamen) Suche wird derzeit an der Entwicklung von Algorithmen für die Suche über generische Metadaten mittels DHTs gearbeitet. Die in der Erprobung befindlichen Systeme weisen starke Ähnlichkeit zu den Mechanismen zur Ressourcen Lokation in Grid Computing Systemen auf (vgl. Crowcroft et al. (2004), S. 609). Bekannte Beispiele sind PlanetP (vgl. Cuenca-Acuna / Nguyen (2002)), pSearch (vgl. Tang et al. (2002)) sowie Multidimensionales Pastry (vgl. Spence / Harris (2003)). Die genannten Systeme benutzen einen Vektorraum, in dem die Dokumente repräsentiert werden. Dadurch werden die komplexen Suchanfragen auf eine Ähnlichkeitsuche im Vektorraum reduziert. Die Suchfunktionalität kann z.B. wie in pSearch mit Hilfe eines darunterliegenden CAN (vgl. 3.2.3) oder wie in XenoSearch mit erweiterter multidimensionaler Pastryfunktionalität (vgl. 3.2.2) implementiert werden. Entwicklung innovativer P2P-Anwendungen Mit Hilfe selbstorganisierender Overlay Netzwerke wird es zukünftig möglich sein, vollkommen dezentrale P2P Applikationen für Problemstellungen zu entwickeln, für die derzeit nur zentralisierte oder hybride Lösungen in Betracht kommen. Während anfängliche P2P-Systeme wie z.B. Gnutella, ein schlechtes Antwort-Zeit-Verhalten für Suchanfragen aufweisen, kann diese Problematik durch die deterministische Zuweisung von Daten zu einer oder mehreren Ressourcen abgefangen werden. Die Laufzeit für eine Suchanfrage in einem mit Hilfe von Chord (vgl. 3.2.1) konstruierten Netzwerk ist maximal logarithmisch zur Anzahl der Knoten im Netzwerk. Nach dieser Zeit erhält der Suchende in jedem Fall die gesuchten Daten. Es ist also nicht möglich, dass eine Suche wie z.B. in einem Gnutella 4 Zusammenfassung und Ausblick 25 Netzwerk verebbt ohne die Daten zu liefern. Sind die gesuchten Daten nicht im Netzwerk vorhanden, bricht die Suche ebenfalls nach dieser Zeit ab. Dies eröffnet Möglichkeiten zur Entwicklung z.B. von dezentralisierten Börsenhandelssystemen (Gehrke/Daldrup/Seidenfaden einfügen, wenns angenommen wird) oder P2P Marktplätze. Gleichzeitig weisen derartige Applikationen alle Vorteile der P2PArchitektur wie z.B. gute Ressourcenausnutzung, Robustheit, Skalierbarkeit und Lastverteilung auf. Demgegenüber stehen natürlich auch die Nachteile dezentralisierter Architekturen. 4 Zusammenfassung und Ausblick Ziel der vorliegenden Arbeit ist es, den Zusammenhang von Selbstorganisation und Peer-to-PeerSystemen zu erörtern. Dazu wurde zunächst die eine Definition des Begriffs „Selbstorganisation“ gegeben und auf grundlegende Prinzipien der Selbstorganisation eingegangen. Es wurde neben den Rückkopplungsmechanismen auch die Organisation durch die Nutzung lokaler Informationen erörtert. Nachfolgend wurden Charakterisika von selbstorganisierten Systemen dargestellt. In einem Vergleich mit alternativen Organisationsformen wurde die Vorteilhaftigkeit der Selbstorganisation in großen Systemen herausgestellt. Weiterhin wurden Analogien zu Selbstorganisierten Systemen aus den Naturwissenschaften aufgezeigt, um dem Leser anschaulich in das Thema einzuführen und ein besseres Verständnis für die Thematik zu ermöglichen. Untersuchungsgegenstand des zweiten Teils der Arbeit sind die relativ jungen Overlay Netzwerke. Diese stellen eine logische Netzwerkebene dar, die über z.B. der physischen Ebene des Netzwerks gebildet wird und somit eine Umhüllung („Overlay“) bildet. Es wurde gezeigt, dass mehrere Overlays verschachtelt werden können, wobei jedes Overlay andere Funktionalitäten implementiert und teilweise auf andere Overlays zurückgreift. Im Rahmen der Vorstellung aktueller Technologien zur Konstruktion von Overlay Netzwerken wurde verdeutlicht, wie sich diese Mechanismen selbstorganisierter Systeme zunutze machen, um z.B. emergente Eigenschaften zu erlangen. In diesem Kontext ist vor allem die Verhaltenssteuerung auf Mikroebene (Knoten) anhand lokaler Informationen hervorzuheben, aus der auf Makroebene (Gesamtsystem) Ordnungsmuster resultieren, die die angestrebte Eigenschaft aufweisen. Durch die Implementierung einfacher lokaler Regeln wird es möglich, strukturierte Overlay Netzwerke zu konstruieren, deren logische Struktur z.B. Suchoperationen in akzeptabler Laufzeit erlaubt. Damit erwachsen neue Möglichkeiten in der Entwicklung dezentralisierter Anwendungen, wie in 3.3 gezeigt wird. Neben den nahe liegenden Applikationen wie File-Sharing und verteilte Speichersysteme ist dabei auch an globale Dateisysteme zu denken, die derzeit in einem prototypischen Stadium existieren. Zukünftig erscheint es zum einen durch die Weiterentwicklung der Overlay-Technologie als auch der steigenden Leistungsfähigkeit der Hardware, möglich, dezentrale Applikationen für Bereiche zu entwerfen, in denen es derzeit nicht zweckmäßig erscheint. Die Grundlagen für eine derartige Entwicklung scheinen durch die vorgestellten Technologien und Mechanismen gelegt. Allerdings ist noch ein weiter Weg bis zu marktreifen Applikationen zu gehen, da 4 Zusammenfassung und Ausblick 26 in den Bereichen Sicherheit und Suchalgorithmen, insbesondere für die Suche mit Platzhaltern in strukturierten Overlay Netzwerken noch erheblicher Forschungsbedarf besteht. Literaturverzeichnis 27 Literaturverzeichnis Anderson (1997) Anderson, R.: The Eternity Service, URL: http://www.cl.cam.ac.uk/users/rja14 /eternity/eternity.html, 1997, Abruf am: 28.05.04. Bindel et al. (2000) Bindel, D., Chen, Y., Eaton, P., Geels, D., Gummadi, R., Rhea, S., Weatherspoon, H., Weimer, W., Wells, C., Zhao, B., Kubiatowicz, J.: OceanStore: An Extremely Wide-Area Storage System, 2000. Camazine et al. (2001) Camazine, S., Deneuburg, J., Franks, N., Sneyd, J., Theraulaz, G., Bonaneau, E., Self-organization in biological systems, Princeton, NJ [u.a.]: Princeton Univ. Press, 2001. Crowcroft et al. (2004) Crowcroft, J., Moreton, T., Pratt, I., Twigg, A., "Peer-to-Peer Technologies," in Foster, I., Kesselman, C., Hg., The grid: blueprint for a new computing infrastructure, Amsterdam [u.a.]: 2004, S. 593 - 622. Cuenca-Acuna / Nguyen (2002) Cuenca-Acuna, F., Nguyen, T.: Text-Based Content Search and Retrieval in ad hoc P2P Communities, URL: http://www.elet.polimi.it/p2p/papers/22.pdf, 2002, Abruf am: 28.05.04. Dabek et al. (2001) Dabek, F., Kaashoek, M., Karger, D., Morris, R., Stoica, I.: Wide-area cooperative storage with CFS, URL: http://www.pdos.lcs.mit.edu/papers/cfs:sosp01/cfs_sosp.pdf, 2001, Abruf am: 28.05.04. Dingledine et al. (2000) Dingledine, R., Freedman, M., Molnar, D.: The Free Haven Project: Distributed Anonymous Storage Service, URL: http://www.freehaven.net/doc/berk/freehaven-berk.ps, 2000. Druschel / Rownstron (2001) Druschel, P., Rownstron, A.: PAST: A large-scale, persistent peer-to-peer storage utility, URL: http://research.microsoft.com/%7Eantr/PAST/hotos.pdf, 2001, Abruf am: 28.05.04. Duden Redaktion (2001) Duden Redaktion, Der Duden: in zwölf Bänden; das Standardwerk zur deutschen Sprache, Mannheim [u.a.]: Dudenverl., 2001. Fahner et al. (2001) Fahner, H., Feil, P., Zseby, T., MBone: Aufbau und Einsatz von IP-MulticastNetzen, Heidelberg: dpunkt-Verl, 2001. Huitema (1998) Huitema, C., IPv6: the new internet protocol, Upper Saddle River, NJ [u.a.]: Prentice Hall PTR, 1998. Kubiatowicz et al. (2000) Kubiatowicz, J., Bindel, D., Chen, Y., Czerwinski, S., Eaton, P., Geels, D., Gummadi, R., Rhea, S., Weatherspoon, H., Weiner, W., Wells, C., Zhao, B.: OceanStore: An Architecture for Global-Scale Persistent Storage, 2000. Kumar (1996) Kumar, V., MBone: interactive multimedia on the Internet, Indianapolis, Ind.: New Riders Publ., 1996. Moreton et al. (2002) Moreton, T., Pratt, I., Harris, T.: Storage, Mutability and Naming in Pasta, URL: http://www.elet.polimi.it/p2p/papers/11.pdf, 2002, Abruf am: 28.05.04. Literaturverzeichnis 28 Peterson / Davie (2004) Peterson, L. L., Davie, B. S., Computernetze: eine systematische Einführung, Heidelberg: dpunkt-Verl., 2004. Plaxton et al. (1997) Plaxton, C., Rajaraman, R., Richa, A.: Accessing Nearby Copies of Replicated Objects in a Distributed Environment, URL: http://citeseer.ist.psu.edu/rd/ 26183517%2C72600%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/cache/papers/cs/1 670/http:zSzzSzwww.cs.utexas.eduzSzuserszSzrrajzSzPubszSzaccess.pdf/plaxton97accessing. pdf, 1997. Rao / Sletta (2000) Rao, S., Sletta, I., Next generation networks: networks and services for the Information Society, Berlin [u.a.]: Springer, 2000. Ratnasamy et al. (2001) Ratnasamy, S., Francis, P., Handley, M., Karp, R., Shenker, S.: A Scalable Content-Addressable Network, URL: http://www.acm.org/sigs/sigcomm/sigcomm2001/p13- ratnasamy.pdf, 2001. Rhea et al. (2003) Rhea, S., Eaton, P., Geels, D., Weatherspoon, H., Zhao, B., Kubiatowicz, J.: Pond: The OceanStore Prototype, URL: http://oceanstore.cs.berkeley.edu/publications/papers /pdf/fast2003-pond.pdf, 2003, Abruf am: 28.05.04. Rowstron / Druschel (2001) Rowstron, A., Druschel, P.: Storage management and caching in PAST, a large-scale, persistent peer-to-peer storage utility, URL: http://research.microsoft.com /%7Eantr/PAST/past-sosp.pdf, 2001, Abruf am: 28.05.04. Rowstron et al. (2001) Rowstron, A., Druschel, P.: Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems, URL: http://research.microsoft.com/ %7Eantr/PAST/pastry.pdf, 2001, Abruf am: 28.05.04. Savetz et al. (1996) Savetz, K., Randall, N., Lepage, Y., MBONE: multicasting tomorrow's Internet, Foster City, CA [u.a.]: IDG Books Worldwide, 1996. Seidenfaden et al. (2003) Seidenfaden, L., Gehrke, N., Schumann, M.: Peer-to-Peer Grid Computing – Eine prototypische Realisierung, HMD Praxis der Wirtschaftsinformatik, 234, 2003, S. 98 - 107 Spence / Harris (2003) Spence, D., Harris, T.: XenoSearch: Distributed Resource Discovery in the XenoServer Open Platform, URL: http://www.cl.cam.ac.uk/Research/SRG/netos/papers/2003xenosearch.pdf, 2003, Abruf am: 28.05.04. Tang et al. (2002) Tang, C., Xu. Z., Mahalingam, M.: pSearch: Information Retrieval in Structured Overlays, URL: http://citeseer.ist.psu.edu/cache/papers/cs/26764/http:zSzzSzwww.cs.washing- ton.eduzSzhotnetszSzpaperszSztang.pdf/tang02psearch.pdf, 2002, Abruf am: 28.05.04. Touch / Hotz (1998) Touch, J., Hotz, S.: The X-Bone, URL: http://www.isi.edu/touch/pubs/gi98/xbonegi98.pdf, 1998, Abruf am: 25.5.04. Zhao et al. (2001a) Zhao, B., Kubiatowicz, J., Joseph, A.: Tapestry: An Infrastructure for Fault-tolerant Wide-area Location and Routing, URL: http://citeseer.ist.psu.edu/rd/ 26183517%2C491241%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/cache/papers/cs/ 23847/http:zSzzSzoceanstore.cs.berkeley.eduzSzpublicationszSzpaperszSzpostscriptzSztapestr y_sigcomm_tr.pdf/zhao01tapestry.pdf, 2001, Abruf am: 28.05.04. Literaturverzeichnis 29 Zhao et al. (2001b) Zhao, B., Huang, L., Stribling, J., Rhea, S., Joseph, A., Kubiatowicz, J.: Tapestry: A Resilient Global-scale Overlay for Service Deployment, URL: http://citeseer.ist.psu.edu/rd/ 26183517%2C576187%2C1%2C0.25%2CDownload/http://citeseer.ist.psu.edu/cache/papers/cs/ 27617/http:zSzzSzoceanstore.cs.berkeley.eduzSzpublicationszSzpaperszSzcompressedzSztape stry_jsac.pdf/tapestry-a-resilient-global.pdf, 2001, Abruf am: 28.05.04.