Universität Karlsruhe Konzeption eines auf lokalen, hierarchisch organisierten Ringen basierenden Dienstsuche-Verfahrens Studienarbeitsvortrag Erik Koop Betreuer: Birgitta König-Ries, Michael Klein Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation DIANE Projekt http://www.ipd.uni-karlsruhe.de/DIANE 1/20 Einführung • Wie findet man bestimmte Dienste in einem Ad-hoc-Netz? .PS Brauche Unbekanntes Umwandlung von Dateiformat PS -> PDF Dateien: [...] SQL.PS [...] 2/20 ? Angebotener Dienst -> Lösungsvorschlag: lokale, hierarchisch organisierte Ringe Idee • Zusammenschluss von Diensten, die geographisch benachbart und semantisch ähnlich sind, zu Ringen • Zusammenschluss von Ringen zu Ringen höherer Ordnung (World Ring) über SAPs (Service Access Points) 3/20 Semantische Ähnlichkeit durch eine Ontologie • Gebrauch einer gemeinsamen Ontologie zur Dienstbeschreibung und als Maß für semantische Nähe • Annahme: Jedes Gerät liefert ein Dokument das als Blatt einer Ontologie beschrieben werden kann Datenbanken Relationales Model SQL Rel. Algebra Objektorientiertes Model OQL Zwei Dienste/Ringe sind semantisch ähnlich, wenn sie zu dem selben ontologischen Ausdruck gehören 4/20 Struktur eines lokalen, logischen Ringes • Jeder Ring hat genau einen SAP • Jeder Knoten bietet genau einen Dienst an • Jeder Knoten hat einen Vorgänger und einen Nachfolger • Die Knoten müssen nur auf logischer Ebene benachbart sein • Jeder Knoten „pflegt“ die Verbindung zu seinen Nachbarn 5/20 Struktur eines lokalen, logischen Ringes • Ein neuer Knoten sucht zunächst Ringe die sich in seiner Funkreichweite befinden • Unter den gefundenen Ringen wählt er einen aus dem er beitritt • Das Diensteangebot der so entstehenden Ringe kann sehr heterogen sein • Mit der Zeit werden einigermaßen stabile Ringe optimiert 6/20 Datenstruktur •Information in jedem Knoten - Ring ID - Vorgänger, Nachfolger im Ring - eigene Dienstbeschreibung Dienstsuche - Entfernungen (in #Hops) zu „naheliegenden“ Knoten RingOptimierung • Zusätzliche Informationen im SAP 7/20 - Überblick über das gesamte Dienstangebot im Ring - Nachfolger und Vorgänger auf höherer Ebene Dienstsuche - Alle gemessenen Entfernungen im Ring RingOptimierung Probleme Strukturelle Verschlechterungen durch Mobilität – Knoten bewegen sich – Die einstmaligen logischen Zuordnungen von Vorgänger und Nachfolger werden dadurch ineffizient 8/20 1. Die Knoten innerhalb des Ringes haben sich bewegt, so dass eine neue Reihenfolge der Knoten im Ring sinnvoll ist (Neupositionierung) 2. Ein Knoten hat sich soweit von seinem Ring entfernt, dass die Kosten für den Verbleib in diesem Ring so groß sind, dass eine Wechsel in einen anderen Ring sinnvoll ist (Ringwechsel) Probleme Ringe werden zu groß Wenn ein Ring zu viele Knoten aufnimmt, wird er zu groß – Die Durchlaufzeit wird zu hoch – Der Verwaltungsaufwand im SAP wird zu groß, insbesondere wird die Dienstbeschreibung zu komplex Wird ein Ring zu groß, muss er geteilt werden – In möglichst semantisch gleiche Ringe – Die neuen Ringe sollten eine bestimmte Mindestgröße erreichen 9/20 Neupositionierung • Knoten hören Nachrichten Neue Ringstruktur zu mit, die sie routen oder in A – C – B – D - E Entfernung ihrer Nachbarschaft gesendet AIch (2 höre Hops) Nachricht A -> B B (1 Hop) werden A • Aufgrund der Ring-ID im Header erkennen sie Nachrichten aus dem eigenen Ring B C E D B Ich höre zu Entfernung Nachricht A -> B A (2 Hops) B (1 Hop) 10/20 • Hört er den Knoten, der die Nachricht sendet zum ersten Mal, oder ist die Kombination Absender -> Empfänger neu, ermittelt er die Distanz zu Absender und Empfänger • Mit den neuen Distanzen kann der SAP Knoten im Ring neu positionieren Neupositionierung Hintergrund • Die Distanzen, die die Knoten ermitteln werden an den SAP gesendet • Der SAP verwaltet eine Matrix mit allen gemessenen Entfernungen und kann die Knoten gegebenenfalls neu positionieren 11/20 A B C D E A - 1 - - - B 1 - 1 - - C - 1 - 1 - D - - 1 - 1 E 2 - - 1 - A B C E D Ringwechsel • Nach demselben Prinzip können Knoten auch einen Ringwechsel durchführen • Indem sie auch Nachrichten überprüfen, die mit einer anderen Ring-ID gesendet werden Nein! Nachrichten Entfernung Ich Kann empfange ich invon zu Nachrichten euren A (1AHop) Ringaus eurem wechseln? E und (1 Hop) Ring E Ja! A B Braucht ihr mich noch? C E 12/20 D Ringteilung Ring zu groß Teilungsaufruf Ringausgleich =2 Prüfung der Teilung Ungültige Aufteilung Anzahl der geplanten Ringe Gültige Aufteilung Vollzug der Teilung 13/20 =1 Teilung durch SAP >2 Ringauflösung Gültige Aufteilung: Alle neue Ringe erreichen die Mindestgröße Ringteilung • Ist ein Ring zu groß geworden, sendet sein SAP einen Teilungsaufruf durch den Ring • Jeder Teilnehmer kann in diesem Teilungsaufruf entweder einen neuen Ring eröffnen oder dem Ring eines anderen Teilnehmers beitreten • Jeder Teilnehmer trägt zusätzlich eine Beschreibung seines Dienstes ein • Die darauffolgenden Teilnehmer orientieren sich anhand dieser Beschreibung welchem Ring sie beitreten wollen Teilungsaufruf 14/20 #1 #3 #6 #8 #2 #4 #5 #7 Ringteilung Im idealen Fall haben die Knoten die neuen Ringe so geplant, dass – es mindestens 2 neue Ringe gibt – alle Ringe hinreichend groß sind Im ersten Fall einer fehlerhaften Aufteilung (Ringauflösung) – gibt es mehr als 2 neue Ringe – nicht alle neuen Ringe sind hinreichend groß Im zweiten Fall einer fehlerhaften Aufteilung (Ringausgleich) – gibt es genau 2 neue Ringe – einer der beiden Ringe ist zu klein 15/20 Ringteilung Ringauflösung Der Ringauflösungsaufruf enthält nur die beiden größten geplanten Ringe Ringauflösung #2 #4 #7 #1 #3 Alle Knoten die jetzt ohne Ring sind schließen sich einem der beiden Ringe an Ringauflösung 16/20 #2 #4 #7 #8 #1 #3 #5 #6 Ringteilung Ringausgleich Der Ringausgleichsaufruf enthält den kleineren geplanten Ring Ringausgleich #2 #4 Alle Knoten die nicht in dem Ring enthalten sind überprüfen eine entferntere Verwandtschaft mit dem kleineren Ring Ringausgleich #2 #4 #7 #8 Solange der kleine Ring die Mindestgröße noch nicht erreicht hat, treten verwandte Knoten ihm bei Teilung durch SAP Wenn der Teilungsaufruf nur einen Ring produziert teilt der SAP den Ring in zwei Ringe und ordnet die Knoten diesen Ringen zu 17/20 Implementierung Implementierung des Ringteilungsalgorithmus unter QualNet QualNet ist ein Netzwerksimulator - der auch Ad-hoc-Netzwerke simuliert - für den eigene Protokolle implementiert werden können 18/20 Fazit Zusammenfassung: Die Konzepte für • Aufbau • Optimierung • Suche für hierarchisch organisierte Ringe stehen Die Implementierungen dafür sind zum Teil fertig Was bleibt noch zu tun: Fertigstellung der Implementierungen Definition einer passenden Ontologie 19/20 Vielen Dank Danke für ihre Aufmerksamkeit! Mehr Informationen finden sie im Netz http://www.ipd.uni-karlsruhe.de/DIANE Irgendwelche Fragen? 20/20