Selbstorganisation in P2P Netzwerken – Eine Betrachtung

Werbung
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.
Herunterladen