S-Lanes - Ein schlankes Overlay zur motivierten Dienstvermittlung in mobilen Ad-hoc-Netzen



Ähnliche Dokumente
EasyWk DAS Schwimmwettkampfprogramm

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Man liest sich: POP3/IMAP

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Installation und Inbetriebnahme von SolidWorks

Wireless LAN mit Windows XP

Enigmail Konfiguration

Outlook Web App 2010 Kurzanleitung

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Datensicherung. Beschreibung der Datensicherung

Inhalt: Ihre persönliche Sedcard... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Kommunikations-Management

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

1 von :04

SICHERN DER FAVORITEN

Anbindung des eibport an das Internet

Kommunikations-Management

Lieber SPAMRobin -Kunde!

Adressen der BA Leipzig

Synchronisations- Assistent

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Kleines Handbuch zur Fotogalerie der Pixel AG

Netzwerkeinstellungen unter Mac OS X

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Urlaubsregel in David

Guide DynDNS und Portforwarding

Grundlagen der Theoretischen Informatik, SoSe 2008

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

easysolution GmbH easynet Bessere Kommunikation durch die Weiterleitung von easynet-nachrichten per nach Hause

Zeichen bei Zahlen entschlüsseln

Nutzung von GiS BasePac 8 im Netzwerk

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Registrierung am Elterninformationssysytem: ClaXss Infoline

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Netzwerke 3 Praktikum

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

GeoPilot (Android) die App

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Sichere für Rechtsanwälte & Notare

Sie erhalten einen kurzen Überblick über die verschiedenen Domänenkonzepte.

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach Bremen. Friedrich-Mißler-Straße Bremen

Erklärung zum Internet-Bestellschein

Anleitung Postfachsystem Inhalt

Informationen zum neuen Studmail häufige Fragen

Hilfedatei der Oden$-Börse Stand Juni 2014

Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2

Telenet SocialCom. verbindet Sie mit Social Media.

SMS/ MMS Multimedia Center

FlowFact Alle Versionen

Intranet Moodle

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Lizenzen auschecken. Was ist zu tun?

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Task: Nmap Skripte ausführen

ANYWHERE Zugriff von externen Arbeitsplätzen

Fax einrichten auf Windows XP-PC

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Benutzerhandbuch MedHQ-App

Speicher in der Cloud

Berechnungen in Access Teil I

Anleitungen zum KMG- -Konto

Studie über die Bewertung von Wissen in kleinen und mittleren Unternehmen in Schleswig-Holstein

Benutzeranleitung Superadmin Tool

Neue Kennwortfunktionalität. Kurzanleitung GM Academy. v1.0

Benutzerkonto unter Windows 2000

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Favoriten sichern. Sichern der eigenen Favoriten aus dem Webbrowser. zur Verfügung gestellt durch: ZID Dezentrale Systeme.

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Online Schulung Anmerkungen zur Durchführung

Algorithmische Kryptographie

Umstellung einer bestehenden T-Online Mailadresse auf eine kostenlose T-Online Fre -Adresse

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

Aufruf der Weboberflache des HPM- Warmepumpenmanagers aus dem Internet TIPPS

Pflegende Angehörige Online Ihre Plattform im Internet

Einleitung Allgemeine Beschreibung Einfachste Bedienung Einen Internetanschluss, sonst nichts Login Anmelden

Verwalten und Organisieren von Fotos,

WLAN und VPN im b.i.b. mit Windows (Vista Home Premium SP1) oder Windows 7

Fotostammtisch-Schaumburg

Anlegen eines DLRG Accounts

Öffnen Sie den Internet-Browser Ihrer Wahl. Unabhängig von der eingestellten Startseite erscheint die folgende Seite in Ihrem Browserfenster:

Lizenzierung von Windows Server 2012

Handbuch Groupware - Mailserver

Online Newsletter III

Das nachfolgende Konfigurationsbeispiel geht davon aus, dass Sie bereits ein IMAP Postfach eingerichtet haben!

Transkript:

Universität Karlsruhe (TH) S-Lanes - Ein schlankes Overlay zur motivierten Dienstvermittlung in mobilen Ad-hoc-Netzen Diplomarbeit am Institut für Programmstrukturen und Datenorganisation Prof. Dr.-Ing. Dr. h.c. P.C. Lockemann Fakultät für Informatik Universität Karlsruhe (TH) von cand. inform. Georgios Papadopoulos Verantwortlicher Betreuer: Prof. Dr.-Ing. Dr. h.c. P.C. Lockemann Betreuende Mitarbeiter: Dipl.-Inform. Michael Klein, Dipl.-Inform. Philipp Obreiter Tag der Anmeldung: 1. Juli 2003 Tag der Abgabe: 19. Dezember 2003 Institut für Programmstrukturen und Datenorganisation

Ich erkläre hiermit, dass ich die vorliegende Arbeit selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Karlsruhe, den 19. Dezember 2003

Inhaltsverzeichnis 1 Einleitung 1 1.1 Motivation................................. 1 1.2 Probleme................................. 2 1.3 Zielsetzung der Arbeit.......................... 2 1.4 Gliederung der Arbeit.......................... 3 2 Grundlagen 5 2.1 Drahtlose Netze.............................. 5 2.2 Ad-hoc-Netze............................... 5 2.2.1 Energieverbrauch......................... 6 2.2.2 Weiterleitung........................... 6 2.3 DIANE-Projekt.............................. 7 3 Stand der Forschung 9 3.1 Dienstsuche-Mechanismen........................ 9 3.1.1 Zentralisierter Ansatz....................... 9 3.1.2 Fluten-Methode.......................... 10 3.1.3 Hash-Verfahren.......................... 10 3.1.4 Semantische Overlays....................... 11 3.2 Existierende Anreizmuster........................ 11

ii Inhaltsverzeichnis 4 Analyse von Lanes 15 4.1 Aufbau der Lanes-Struktur........................ 15 4.2 Algorithmen................................ 17 4.2.1 Nutzende Algorithmen...................... 17 4.2.1.1 Ankündigungs-Algorithmus.............. 17 4.2.1.2 Such-Algorithmus................... 18 4.2.2 Struktur-Erhaltende Algorithmen................ 19 4.2.2.1 Login/Logout-Algorithmus.............. 19 4.2.2.2 LaneBroken-Algorithmus................ 21 4.2.2.3 Netzpartitionierung- /Reintegrations-Algorithmus.. 22 4.2.3 Optimierende Algorithmen.................... 22 4.2.3.1 Split-Algorithmus.................... 22 4.2.3.2 Merge-Algorithmus................... 24 4.3 Vorteile von Lanes............................ 25 5 Analyse des Verhaltens 27 5.1 Transaktionen............................... 27 5.1.1 Dienstankündigung........................ 28 5.1.2 Dienstsuche............................ 28 5.1.3 Einloggen............................. 28 5.1.4 Ping Nachrichten......................... 29 5.1.5 Spalten.............................. 29 5.2 Unkooperatives Verhalten........................ 29 5.2.1 Fehlverhalten bei der Dienstankündigung............ 30 5.2.2 Fehlverhalten bei der Dienstsuche................ 32 5.2.3 Fehlverhalten beim Einloggen.................. 32 5.2.4 Ping Nachrichten......................... 34 5.2.5 Fehlverhalten bei der Spaltung.................. 34 5.3 Muster von vorteilhaften Fehlverhalten................. 35 5.3.1 Lane-erkennbares Fehlverhalten................. 35 5.3.2 Nicht Lane-erkennbares Fehlverhalten.............. 37 5.4 Zusammenfassung............................. 37

Inhaltsverzeichnis iii 6 Konzeption des Anreizschemas 39 6.1 Kontrollmuster.............................. 39 6.2 Anreize für die Lanes-Struktur...................... 41 6.2.1 Passende Anreizmuster...................... 41 6.2.2 Angewandte Mechanismen.................... 41 6.2.3 Beziehung zwischen den Mechanismen............. 43 6.3 Erweiterung der Lanes-Algorithmen................... 43 6.3.1 Anreize bei der Dienstankündigung............... 44 6.3.2 Anreize für die Dienstsuche................... 47 6.3.3 Anreize beim Einloggen..................... 50 6.3.4 Anreize bei Ping Nachrichten.................. 52 6.3.5 Anreize beim Spalten....................... 53 6.4 Zusammenfassung............................. 53 7 Realisierung 55 7.1 Implementierung von Lanes....................... 55 7.2 Implementierung von SLanes....................... 57 8 Evaluierung 61 8.1 Evaluierung von Lanes.......................... 61 8.2 Evaluierung von SLanes......................... 63 8.2.1 Gesamtnutzen-Gesamtaufwand................. 66 8.2.2 Fairness Betrachtung...................... 67 9 Zusammenfassung und Ausblick 73 9.1 Zusammenfassung............................. 73 9.2 Ausblick.................................. 74 A Implementierungsdetails 75 B Weitere Bilder 81 Literatur 85

Abbildungsverzeichnis 2.1 Die Aufgaben des DIANE-Projektes................... 7 3.1 Existierende Anreizmuster........................ 12 4.1 Lanes................................... 16 4.2 Ankündigung des Dienstes........................ 18 4.3 Dienstsuche................................ 19 4.4 Einloggen in die Lanes-Struktur..................... 20 4.5 LaneBroken................................ 21 4.6 Spalten einer Lane............................ 24 5.1 Muster des vorteilhaften Fehlverhaltens................ 36 6.1 Kontrollmuster.............................. 40 6.2 Erweiterung des Ankündigung-Algorithmus............... 45 6.3 Erweiterung des Such-Algorithmus................... 49 6.4 Erweiterung des Login-Algorithmus................... 51 6.5 Erweiterung des Ping-Algorithmus................... 52 8.1 Lanes vs. Triviale Suche......................... 63 8.2 Gesamtnutzen-Gesamtaufwand..................... 65 8.3 Fairness.................................. 68 8.4 Fairness Betrachtung........................... 70 B.1 Eigenschaften der Anreizmuster..................... 81 B.2 Beispiel einer Dienstsuche anhand eines Sequenzdiagramms...... 82 B.3 Beispiel einer erweiterten Dienstsuche anhand eines Sequenzdiagramms 83

Kapitel 1 Einleitung Wachstum und neue Geschäftsfelder führen dazu, dass die Netzwerkkomplexität sowohl im unternehmensweiten als auch im privaten Bereich ständig zunimmt. Dazu gehören auch die drahtlosen Kommunikationssysteme, deren Einsatz heutzutage immer mehr an Bedeutung gewinnt. Die derzeitigen Wachstumsraten drahtloser Kommunikationstechniken zeigen das enorme Marktpotenzial. Immer mehr Menschen nutzen weltweit mobile Telefone; die drahtlose Technik wird in vielen Autos eingesetzt; die drahtlose Datenübertragung ist in vielen Orten verfügbar und drahtlose lokale Netze werden mehr und mehr in Firmen oder in öffentlichen Gebäuden installiert. Eine Unterstützung der Mobilität beruht in den gängigen Verfahren hauptsächlich auf dem Vorhandensein einer Infrastruktur, wodurch allerdings ein Teil der Flexibilität des Netzes verloren geht. In Situationen, bei denen sich ein Nutzer eines Kommunikationssystems nicht auf die Infrastruktur verlassen kann bzw. die Nutzung der Infrastruktur zu teuer ist oder gar keine Infrastruktur vorhanden ist, sind Ad-hoc-Netzwerke die einzige Alternative. 1.1 Motivation Mobile Ad-hoc-Netze stellen eine neue Entwicklung der modernen, drahtlosen Kommunikation dar. Mobile Geräte können ohne feste Infrastruktur wie Basisstationen und ohne zentrale Verwaltung auskommen. Aus diesem Grund müssen alle anfallenden Infrastrukturaufgaben wie die Wegewahl und die Dienstverwaltung von den Geräten selbst erbracht werden. In dieser Hinsicht hängt die Funktionalität der Netze von dem kooperativen Verhalten eines jeden Gerätes ab. Eine wichtige Voraussetzung zur sinnvollen Nutzung von solchen selbstorganisierten Ad-hoc-Netzen ist die Möglichkeit, die in ihnen angebotenen Dienste effektiv und effizient auffinden zu können. Auf diese Weise können die im Netz bereit gestellten Ressourcen besser ausgenutzt werden.

2 1. Einleitung 1.2 Probleme Die semantische Suche nach einem gewünschten Dienst stellt in mobilen Ad-hoc- Netzen eine große Herausforderung dar. Leider sind die meisten bestehenden Dienstvermittlungsansätze nur wenig zur Lösung dieser Aufgabe geeignet, da sie entweder auf zentralen Servern oder auf dem Fluten der Anfragen basieren. Beide Klassen von Ansätzen sind für Ad-hoc-Netze ungeeignet. Außerdem haben mobile Geräte lediglich begrenzte Ressourcen wie Bandbreite, Rechnerleistung und Energie. Ohne direkte Motivation verhalten sich die Geräte daher egoistisch und verschwenden nicht ihre wertvollen Ressourcen zu Gunsten anderer Geräte. Dieses Fehlverhalten kann fatale Effekte auf die Funktionsfähigkeit des Netzes haben. Deswegen ist die Untersuchung von Ansätzen nötig, die sowohl eine effektive, semantische Suche nach Diensten erlauben als auch für die kooperative Zusammenarbeit der Geräte sorgen. 1.3 Zielsetzung der Arbeit Overlaystrukturen, d.h. rein logische Strukturen zwischen den Geräten, scheinen ein guter Ansatz für die Optimierung der Dienstankündigung und Dienstsuche zu sein. Die logische Struktur wird über das vorhandene Netzwerk gelegt und wird als Basis für eine effiziente und effektive Versendung der Dienstsuche- und Dienstangebotsnachrichten verwendet. In der heutigen Forschung werden mehrere Overlaystrukturen entwickelt und ihre Effektivität analysiert. Ein solcher Ansatz ist die im DIANE-Projekt entwickelte Lanes-Struktur, die Geräte unter gleichen Anycast- Adressen zusammenschließt. Die Geräte bilden somit Bahnen, sogenannte Lanes, die die erwünschten Eigenschaften bieten. Da in einem Ad-hoc-Netzwerk nicht von einer zentralen Instanz sichergestellt werden kann, dass sich jeder Teilnehmer an das Dienstvermittlungsprotokoll hält, soll das unkooperative Verhalten von einer Reihe von Mechanismen (sog. Anreizschemata) überwacht, festgestellt und bestraft werden. So ist es z.b. vorstellbar, dass den unkooperativen Geräten der Zugriff auf die Dienstvermittlung vorenthalten wird. Ziel der vorliegenden Arbeit war es die im DIANE-Projekt bereits entwickelte Overlaystruktur Lanes weiter zu entwickeln und zu evaluieren. Spezielle Korrekturmechanismen für Fehlerfälle waren zwar rudimentär vorhanden, müssten aber noch für die Implementierung konkretisiert werden. ZIEL 1: Implementierung der Lanes-Algorithmen und Evaluierung der Lanes- Struktur. Weiterhin sollten die Lanes-Algorithmen untersucht und Annahmen über das Kooperationsverhalten der Teilnehmer gemacht werden.

1.4. Gliederung der Arbeit 3 ZIEL 2: Analyse des Kooperationsverhaltens autonomer Geräte. Darauf aufbauend sollte ein Anreizschema entworfen werden, das Lanes robust gegen nicht-kooperative Teilnehmer macht. ZIEL 3: Anreizschema entwerfen, das Lanes-Algorithmen robust gegen nichtkooperative Geräte macht. Evaluierung des entwickelten Schemas. 1.4 Gliederung der Arbeit In Kapitel 2 werden die für diese Arbeit wesentlichen Grundlagen vorgestellt. Es wird genauer auf die Eigenschaften von Ad-hoc-Netzen eingegangen und das DIANE- Projekt präsentiert. Kapitel 3 gibt eine Überblick über bestehende Ansätze zum Auffinden bereit gestellter Diensten und zur Stimulierung der Kooperation der Geräte. In Kapitel 4 wird die Lanes-Overlay Struktur analysiert. Dabei werden alle Algorithmen und ihre Funktionsweise beschrieben. Kapitel 5 bietet eine Klassifizierung der möglichen Kooperations- und Unkooperationsfälle zwischen den Lanes-Mitgliedern. In Kapitel 6 erfolgt die Entwicklung eines Konzepts zur Realisierung einer stimulierten Lanes-Struktur (SLanes). Die Auswahl passender Anreizmuster und die Erweiterungen der Lanes-Algorithmen sind die Hauptaufgaben des Konzepts. Kapitel 7 präsentiert die Komponenten, die für die Implementierung sowohl der Lanes-Algorithmen als auch der erweiterten SLanes-Algorithmen nötig waren. In Kapitel 8 wird die Effizienz der implementierten Lanes- und SLanes-Algorithmen evaluiert und die wichtigsten Ergebnisse werden zusammengefasst. Die Arbeit schließt in Kapitel 9 mit einer Zusammenfassung und einer Diskussion über mögliche Erweiterungen.

4 1. Einleitung

Kapitel 2 Grundlagen Dieses Kapitel gibt eine Einführung in die drahtlosen sowie in die mobilen Adhoc-Netze [Sch00]. Dabei werden relevante Eigenschaften von Ad-hoc-Netzen näher vorgestellt. Somit wird ein besseres Verständnis sowohl der Charakteristika, die bei der Entwicklung von Verfahren zur semantischen Dienstsuche eine Rolle spielen, als auch der Gründe, die das Verhalten der Geräte bestimmen, ermöglicht. Am Ende des Kapitels wird das DIANE-Projekt, in das diese Arbeit eingebettet ist, mit seinen Zielen und Ansätzen vorgestellt. 2.1 Drahtlose Netze Drahtlose Kommunikation spielt in der Vernetzung von Rechnern heutzutage eine zunehmend wichtige Rolle. Dank drahtloser Datenübertragung wie in Wireless LANs (802.11) können sich Nutzer tragbarer Computer überall in Reichweite ihrer Basisstation frei bewegen ohne an ein Kabel gebunden zu sein; der Netzwerkzugriff bleibt erhalten. Über Protokolle wie MobileIP können Laptops auch an ein fremdes LAN angeschlossen und ohne Konfigurationsaufwand wie zu Hause benutzt werden. Ein anderes Beispiel der drahtlosen Kommunikation sind Mobiltelefone, die Telefonieren von überall aus ermöglichen, vorausgesetzt die Funkreichweite zu einer Basisstation wird nicht überschritten. Die Basisstation verfügt selbst wiederum über eine feste Verbindung zum allgemeinen Telefonnetz. Die Mobilität in beiden dieser Fällen wird auf das Endgerät beschränkt, wobei das komplette restliche Netz stationär und unter zentraler technischer und administrativer Kontrolle bleibt. 2.2 Ad-hoc-Netze Mobile Ad-hoc-Netze schaffen ein völlig neues Verständnis von Netzwerken und mobiler Kommunikation. Nicht nur die Endgeräte, sondern das Netz selbst wird mobil und unabhängig von traditionellen Infrastrukturen. Dadurch eröffnen sich unzählige neue Einsatzgebiete und Anwendungsmöglichkeiten.

6 2. Grundlagen Sogenannte mobile Ad-hoc-Netzwerke sind Netzwerke, die sich dadurch auszeichnen, dass sie nicht durch eine permanent vorhandene, gleich bleibende Infrastruktur definiert sind. Das zweite entscheidende Kriterium für die Einstufung als Ad-hoc- Netzwerk ist die Fähigkeit zur Autokonfiguration. Es soll kein administrativer Eingriff notwendig sein, um einen Beitritt zu einem Ad-hoc-Netzwerk durchzuführen, solange alle notwendigen Parameter (wie Netzwerkname, Kennwörter usw.) bekannt sind und dem System zur Verfügung gestellt wurden. Jedes Gerät besitzt eine eindeutige Unicast-Adresse, wodurch die direkte Kommunikation zwischen den Geräten ermöglicht wird. Eine andere Kommunikationsmöglichkeit stellt die Verwendung von Anycast-Adressen dar. Dabei werden die Unicast-Adressen der Geräte unter gleichen Anycast-Adressen gruppiert. Pakete, die als Ziel eine Anycast-Adresse haben, werden nur an eine Unicast-Adresse der Gruppe übermittelt. Eine weitere Eigenschaft solcher Netze bezieht sich auf die Bewegung der Teilnehmer, der so genannten Knoten oder Stationen. Diese Beweglichkeit gehört zu den wichtigsten Merkmalen der Ad-hoc-Netze, wodurch Topologieänderungen bedingt sind. Außerdem können die Teilnehmer spontan in das Netzwerk ein- und austreten. Mobile Ad-hoc-Netzwerke werden üblicherweise als MANET (Mobile Adhoc Network) bezeichnet [Per01]. Für die Kommunikation zwischen mobilen Geräten spielen natürlich weitere Faktoren eine bedeutende Rolle. Besonders wichtig für diese Arbeit sind der Energieverbrauch der Geräte und die Weiterleitung der Daten. Diese werden im Weiteren kurz vorgestellt. 2.2.1 Energieverbrauch Eine große Herausforderung für mobile schnurlose Netzwerke besteht in der Versorgung der Endgeräte mit ausreichend viel Energie. Üblicherweise handelt es sich um kleine, leichte Geräte, die unabhängig von Stromnetz betrieben werden. Während die Entwicklung von Brennstoffzellen ständig Fortschritte macht, bleibt es eines der wichtigsten Ziele, den Energieverbrauch eines solchen Gerätes nicht unnötig zu steigern. Trotzdem müssen Geräte in mobilen Ad-hoc Netzen die Funktionalität der fehlenden Infrastruktur selbst übernehmen. Diese zusätzliche Belastung der Geräte kann durch eine Optimierung der Netzlast minimiert werden. 2.2.2 Weiterleitung Damit jeder Teilnehmer eines Ad-hoc-Netzwerkes mit jedem anderen Teilnehmer kommunizieren kann, auch wenn sich der gewünschte Kommunikationspartner nicht in direkter Funkreichweite befindet, muss ein weiterer Teilnehmer als so genannte Relay-Station verwendet werden. Man spricht bei dem Vorgang der Paketvermittlung von Routing. Wird eine Station als Relay verwendet, so kostet es diese Station Prozessorzeit und vor allem Energie. Der Empfang der Pakete, die Bearbeitung und insbesondere der erneute Versand zehren Energievorräte von den mobilen Geräten, die oft gering sind. Ein weites Feld der Untersuchung in Ad-hoc Netzwerken besteht darin, die Kooperation der Geräte bei der Weiterleitung von Paketen zu verstärken.

2.3. DIANE-Projekt 7 Weitere Untersuchungen versuchen den Zeitpunkt zu bestimmen, ab dem eine Station mit geringen Energiereserven entscheiden sollte, für andere Stationen nicht mehr als Relay zur Verfügung zu stehen. 2.3 DIANE-Projekt Die Ziele des DIANE-Projektes (Dienste in Ad-hoc Netzen) werden in [DIAN] wie folgt beschrieben: Ziel des Projektes ist die Entwicklung und Evaluierung von Konzepten zur integrierten, effizienten und effektiven Nutzung der in einem Ad-hoc-Netz in Form von Diensten bereitgestellten Ressourcen zu erforschen. Von besonderem Interesse sind Informationsdienste, Dienste also, die den möglichst integrierten Zugriff auf digital verfügbare Information ermöglichen. Die entwickelten Konzepte sollen in einem Ad-hoc-Netz für Karlsruher Informatikstudenten zur Prüfungsvorbereitung im Fach Informationssysteme evaluiert werden. Erstes Ziel des DIANE Projektes ist das Auffinden von Diensten effizient zu ermöglichen. Aufgrund der fehlenden zentralen Dienstverwaltung muss ein dynamischer, dezentraler Ansatz gewählt werden. Zwei Ansätze von Overlay Strukturen werden dabei verfolgt. Die in Kapitel 3.1.3 beschriebenen Dienstringe [OKK03a] haben als Ziel, die im Netz angebotenen Dienste zu gruppieren, um eine semantische Nähe zu unterstützen. Alternativ dazu werden Overlays betrachtet, die von der Semantik der angebotenen Dienste abstrahieren. Darunter fällt das in dieser Arbeit betrachtete Lanes-Overlay [OKK03b]. M o t i v a t i o n 1. Semantische Dienstbeschreibung 2. Dezentrale Dienstsuche im Ad-hoc-Netz 3. Effiziente Dienstausführung 4. Transparente Dienstkombination S i m u l a t i o n Abbildung 2.1: Die Aufgaben des DIANE-Projektes Ein weiteres Ziel ist, autonome Nutzer zur Kooperation sowohl innerhalb der Overlay- Strukturen als auch zur Bereitstellung und Erbringung von Diensten anzureizen.

8 2. Grundlagen Dabei werden mehrere Anreizschemata entwickelt, die trotz der Infrastrukturlosigkeit auch in der Umgebung von Ad-hoc Netzen anwendbar sind. Weiterhin müssen Anreize über die Grenzen der Protokollschichten hinweg wirken, um effektiv zu sein. Daher soll im Rahmen des Projektes ein integriertes Anreizschema entwickelt werden. Gleichzeitig werden im DIANE-Projekt auch weitere Zielen verfolgt, wie die semantische Dienstbeschreibung, die effiziente Dienstausführung und die Möglichkeit für eine Dienstkombination. Abbildung 2.1 gibt einen schematischen Überblick über die Aufgaben des DIANE-Projektes. Die grau markierten Bereiche zeigen die für diese Arbeit relevanten Bereiche, die in den nächsten Kapiteln näher betrachtet werden.

Kapitel 3 Stand der Forschung Viele der heutigen Dienstsuche-Mechanismen sind hauptsächlich für den Einsatz in Internet-basierten Netzwerken entwickelt worden. Bei dieser Entwicklung sind die Besonderheiten von Ad-hoc-Netzwerken nicht berücksichtigt, so dass eine direkte Übertragung auf energieschwache, selbstorganisierte Geräte nicht möglich ist. In Abschnitt 3.1 werden existierende Dienstsuche-Mechanismen vorgestellt und jeweils ihre Stärken und Schwächen bei ihrem Einsatz in Ad-hoc-Netzen analysiert. In Abschnitt 3.2 werden existierende Anreizmuster vorgestellt, die die Kooperation der Mitglieder stimulieren können. 3.1 Dienstsuche-Mechanismen Die Mechanismen für die Dienstsuche können in vier Klassen geteilt werden, nämlich den zentralisierten Ansatz, die Fluten-Methode, das Hash-Verfahren und die Overlay-Strukturen. 3.1.1 Zentralisierter Ansatz In zentralisierten Ansätzen übernehmen ein oder mehrere Geräte Teile der Funktionalität und fungieren als dedizierte Server, die die Dienstbeschreibungen aller Geräte proaktiv speichern. Suchanfragen werden direkt an diese Server gerichtet, um die Anbieter der gewünschte Dienste ausfindig zu machen. Beispiele zentralisierter Ansätzen sind CORBA s Trading Objekt Services [CORB00],Jini [SUMI], LEAP [LIEX],MicroFIPA-OS [LT02] und Bluetooth [BLUE]. Auch Protokolle wie Napster [NAPS00] und das Service Location Protocol(SLP) [NEWG97], die den gemeinsamen Dateizugriff erlauben, benutzen zentralisierte Server. Letztlich werden Web Services mit zentralisierten Verzeichnisse, die den Universal Description, Discovery and Integration of WebServices- Mechanismus [UNDE] benutzen, verwaltet. Die Idee von zentralisierten Servern erlaubt zwar eine effiziente Dienstsuche, ist aber für Ad-hoc-Netze nicht einfach realisierbar. Als dedizierte Server können nur leistungsfähige Geräte mit einer großen Bandbreite agieren. Die Existenz solcher Geräte

10 3. Stand der Forschung ist in Ad-hoc-Netzen nicht immer gegeben. Außerdem könnten Topologieänderungen, die zentrale Server unerreichbar machen, die Funktionalität der Ansätze beträchtlich reduzieren. Trotzdem ist dieser Ansatz in sehr statischen Netzen durchaus geeignet. 3.1.2 Fluten-Methode Der klassische Ansatz zur Dienstlokalisierung in Ad-hoc Netzen ist die Fluten- Methode. Das bedeutet, dass ein Gerät A, das eine Information braucht oder einen Dienst nutzen will, alle anderen direkt erreichbaren Geräte durch Broadcast fragt. Diese Geräte fragen ihrerseits durch Rundrufe ihre Nachbarn und somit wird das ganze Netz geflutet. Jedes Gerät, das in der Lage ist, eine Antwort darauf zu geben oder diesen Dienst anzubieten, schickt eine Antwort an Gerät A zurück. Gerät A sammelt nun alle Antworten, bewertet sie und wählt die beste Antwort bzw. den geeignetsten Dienstanbieter aus. Beispiele der Dienstsuche mit der Fluten-Methode sind das Simple Service Discovery Protocol(SSDP) [SSDP], Gnutella [GNUT] und JXTA-Search [WATE01]. Da dieser Ansatz weder von einem festen (statischen) Kooperationspartner abhängt, noch von irgendwelchen Vermittlern, die durch eine Betriebsstörung eine Schwachstelle darstellen könnten, wird dieses Verfahren am wenigsten von hoher Netzdynamik oder Netzausfällen beeinträchtigt. Wann immer ein Kommunikations- bzw. Kooperationspartner überhaupt erreichbar ist, so wird dieser mit Sicherheit auch gefunden. Damit eignet sich die Fluten-Methode für sehr dynamische Umgebungen am besten. Aufgrund der Tatsache, dass jede Anfrage via Broadcast an alle anderen Geräten verschickt wird, verursacht dieses Verfahren eine relativ hohe Netzlast. Vor allem bei Systemen mit einer hohen Anzahl an Geräten wird die verursachte Netzbelastung nicht mehr tragbar. Zudem werden die limitierten Energie-Ressourcen extrem belastet. 3.1.3 Hash-Verfahren Einen anderen Ansatz zur Dienstsuche bieten verteilte Hash- Tabellen. Dienstbeschreibungen werden dabei mit Hilfe einer Hash-Funktion in numerische Werte transformiert. Diese Werte werden den Adressen bestimmter Teilnehmer des Netzes zugewiesen. Die Teilnehmer speichern sie und vergleichen jede ankommende Dienstsuche mit diesen Werten. Hash-Ansätze, die heutzutage angewendet werden sind z.b. OceanStore [BCE+00], Globe [ABKV], Chord [MKKB01],Freenet [SWHC01],Tapestry [KJZ01] und CAN [FHK+01]. Hauptnachteil des Hash-Verfahrens entsteht aus den mathematischen Eigenschaften der Hash-Funktionen. Für eine erfolgreiche Dienstsuche müssen die Beschreibung des gesuchten Dienstes und die bei dem Teilnehmer gespeicherte Dienstbeschreibung genau identisch sein. Dienste, die semantisch ähnliche Charakteristika aufweisen, werden dabei nicht gefunden. Deswegen wird das Hash-Verfahren nur für Dienstbeschreibungen mit geringer Semantik benutzt.

3.2. Existierende Anreizmuster 11 3.1.4 Semantische Overlays Ein Ansatz, der die semantische Suche unterstützt und dabei die Anzahl der Suchnachrichten zu minimieren versucht ist der Semantische Overlay-Ansatz. Dabei werden Suchnachrichten nur an Teilnehmer gesendet, die gut zur semantischen Beschreibung der Anfrage passen. Das kann durch die Erzeugung einer Overlay-Schicht, die die angebotenen Dienste reflektiert, realisiert werden. Ein Beispiel dieses Ansatzes präsentieren die Dienstringe[OKK03a], die im Folgendem kurz analysiert werden. Weitere Ansätze sind der International Naming Scheme [SBLA99], Allia [CTK+02], und die Multi-Layers Clusters [KK02]. Dienstringe Die im DIANE-Projekt entwickelten Service Ringe bieten eine hierarchische Overlay- Struktur an, und erzielen dabei das effiziente Bekanntmachen und Auffinden von Diensten. Gegenüber der trivialen Fluten-Methode können die Dienstringe eine erheblich leistungsfähigere Dienstsuche vorweisen. Die Overlay-Struktur besteht aus überschaubaren Ringen, die semantisch verwandten Dienste, unabhängig von ihrer tatsächlichen lokalen Anordnung anbieten. Die Ringe sind relativ stabil und die Kommunikation wird im Wesentlichen unidirektional abgewickelt. Ein ausgewählter Knoten in jedem Ring bildet den Service Access Point (SAP) für seinen Ring. Diese SAPs bilden erneut einen Ring. Die SAPs vertreten und vermitteln ihre Ring-Mitglieder nach außen und verwalten die angebotenen Dienste. Neben den SAPs, die jeweils als Repräsentant und Administrator eines Ringes agieren, gibt es die normalen Ring-Mitglieder, die zusammen mit dem SAP einen semantisch zusammengehörigen, logischen Ring im Overlay-Netzwerk bilden. Nach erfolgreicher Dienstsuche nehmen die betreffenden Instanzen die Rolle des potenziellen Dienstgebers bzw. Dienstnehmers ein. Ein Vorteil gegenüber der Fluten-Methode, solange die Dynamik des Netzes gering bleibt, ist die geringe Anzahl von Suchnachrichten pro Dienstsuche. Jede Anfrage wird nur durch die SAPs weitergeleitet, die als Vermittler der Ring-Mitglieder dienen. Somit ist die durchschnittliche Anzahl von Nachrichten pro Suchanfrage deutlich kleiner als beim Fluten. Im Gegensatz dazu, kann die durchschnittliche Anzahl von Nachrichten unter hoher Dynamik rapid steigern. Die zusätzlichen Nachrichten, die für die Organisation der Ring-Struktur nötig sind, wie z.b. die Einloggen und Ausloggen Nachrichten, können dazu führen, dass die Ring-Struktur die gewünschte effiziente Dienstsuche nicht anbieten kann. Außerdem, die SAPs stellen die Vermittler der Ring-Mitglieder jedes Ringes dar. Ausfälle der SAPs können die Funktionalität der Struktur enorm beeinträchtigen und dabei die Anzahl der erfolgreichen Dienstsuchen verringern. 3.2 Existierende Anreizmuster Existierende Anreizmuster [NO03] haben als Ziel, die Kooperation der Teilnehmer zu stimulieren. Im Allgemeinen vergütet der Verbraucher den Anbieter eines Dienstes.

12 3. Stand der Forschung Anreizmuster VertauenstimuliertDienstangebote Gegenleistung stimuliertdienstangebote Vertrauensbasierte Handelsbasierte versprochen dynamisch statisch sofort Kollektivmuster Gemeinschafts- muster Tauschhandel- muster Wertpapier- muster Abbildung 3.1: Existierende Anreizmuster Die Vergütungsart kann je nach Anreizmuster variieren. Denkbar sind Wertpapiere, die die Rolle einer Währung spielen können, oder Einträge in ein Reputationssystem, die den Ruf der Teilnehmer beeinflussen. Beide Methoden können die Zusammenarbeit belohnen. Somit werden die Mitglieder dazu angetrieben, zu kooperieren, weil sie die Wertpapiere oder einen guten Ruf brauchen, um weiterhin angebotene Dienste nutzen zu können. Anreizmuster können in vertrauens- und handelsbasierte Anreizmuster aufgeteilt werden [Abb. 3.1]. Vertrauensbasierte Anreizmuster: Vertrauen kann zwischen Mitgliedern existieren oder aufgebaut werden und als Grundlage für die Kooperation wirken. Gemeinsame Ziele oder eine Verbesserung der Reputation und gleichzeitig der Kooperationsneigung könnten die Basis des Vertrauens sein. Eine explizite Belohnung innerhalb der Vertrauensdomäne ist bei den vertrauensbasierte Anreizmustern nicht erforderlich. Alle Teilnehmer profitieren gleichmäßig innerhalb dieser Domäne und die Kooperation wird als selbstverständlich betrachtet. Es existieren zwei Arten von vertrauensbasierten Anreizmustern. Das Kollektiv- und das Gemeinschaftsmuster [Abb. 3.1]. Das Kollektivmuster bedingt Teilnehmer, die miteinander ohne Voraussetzungen kooperieren solange sie Mitglieder der gleichen Vertrauensdomäne sind. Das Vertrauen ist statisch festgesetzt und daher sind Belohnungen nicht nötig. Beim Gemeinschaftsmuster wird das Vertrauen dynamisch aufgebaut. Eine gute Reputation wird durch die Kooperation erreicht und ist Voraussetzung, um Dienste zu verwenden. Eine

3.2. Existierende Anreizmuster 13 implizite Belohnung erfolgt, wenn Verbraucher das eigene Vertrauen zum Dienstanbieter erhöhen. Handelsbasierte Anreizmuster: Im Gegensatz zum vertrauensbasierten Anreizmuster ist in manchen Fällen die explizite Belohnung des Dienstanbieters wünschenswert. Der Handel findet zwischen Teilnehmern statt, so dass die Kooperation angereizt wird. Eine sofortige Gegenleistung oder eine Zusicherung, dass diese Gegenleistung in einem späteren Zeitpunkt erfolgen wird, können als solche explizite Belohnungen betrachtet werden. Im ersten Fall geht es um ein Tauschhandelmuster und im zweiten um ein Wertpapierbasiertes Anreizmuster [Abb. 3.1]. Beim Tauschhandelmuster werden Dienste gleichzeitig ausgetauscht. So profitieren beide Beteiligten und sind Dienstanbieter und Dienstverbraucher zugleich. Wertpapierbasierte Anreize fördern nicht den sofortigen Dienstausgleich. Der Anbieter eines Dienstes bekommt ein Wertpapier vom Verbraucher. Dieses Wertpapier dient als Beweis und kann in einem späteren Zeitpunkt zum Erhalten einer Gegenleistung benutzt werden. Detaillierte Eigenschaften der existierenden Anreizmuster befinden sich tabellarisch in Anhang B.

14 3. Stand der Forschung

Kapitel 4 Analyse von Lanes Eine Overlay-Struktur, die eine effiziente und effektive Dienstsuche verspricht, ist die Lanes-Struktur [KKO03b]. Im Gegensatz zu anderen semantischen Overlays, stellen die Lanes eine Struktur dar, die von der Semantik der Dienstbeschreibungen abstrahiert. Im Folgenden wird der Aufbau der Lanes-Struktur und die verwendeten Algorithmen analysiert. 4.1 Aufbau der Lanes-Struktur Die Lanes-Struktur ist eine logische Struktur, die auf das vorhandene Netzwerk gelegt wird. Geräte werden unter gleichen Anycast-Adressen zusammengefasst und bilden somit logische Bahnen. Jedes Gerät kommuniziert direkt innerhalb einer Lane mit maximal zwei Nachbarn, seinem Vorgänger und seinem Nachfolger. Ein ausgewählter Anycast-Adressbereich (a.x bis a.y)wird der Struktur zugeteilt und jeder Lane werden zwei Anycast-Adressen aus diesem Bereich zugewiesen, eine linke und eine rechte Anycast-Adresse. Die Zuweisung erfolgt auf so einer Weise, dass benachbarte Lanes im Sinne von benachbarten Anycast-Adressen entstehen. Jedes Gerät, das an der Lanes-Struktur teilnehmen will, wird Mitglied genau einer Lane und kennt dabei automatisch diese zwei Anycast-Adressen. Wenn Teilnehmer von anderen Lanes erreicht werden sollen, dann werden die Anycast-Adressen von benachbarten Lanes aus den eigenen Anycast-Adressen berechnet und zu einer indirekten Kommunikation benutzt. Abbildung 4.1 zeigt ein Beispiel einer Lanes-Struktur mit zwei Lanes und acht Teilnehmern. Der zugeteilte Anycast-Adressbereich für die ganze Lane-Struktur liegt zwischen a.1 und a.254. Die linken und die rechten Anycast-Adressen von Lane 1 und Lane 2 sind a.1 und a.128 bzw. a.129 und a.254. Als Beispiel eines Lanes-Mitglieds kennt Gerät 3 die zwei Anycast-Adressen und seinen direkten Vorgänger Gerät 2 sowie seinen direkten Nachfolger Gerät 4. Innerhalb der Lane werden Nachrichten nur an diese zwei Teilnehmer geschickt und für externe Nachrichten kann das Gerät 3 die benachbarte Anycast-Adresse durch seine eigene berechnen, in diesem Fall durch

16 4. Analyse von Lanes Lane1 Lane2 Teilnehmer 1 Teilnehmer 5 Teilnehmer 2 Teilnehmer 6 Teilnehmer 3 Teilnehmer 7 Teilnehmer 4 Teilnehmer 8 a.1 a.128 a.129 a.254 Abbildung 4.1: Lanes die Addition von 1 an seine Adresse. Diese Adresse kann das Gerät benutzen, um ein Gerät aus Lane 2 zu kontaktieren. Die Gruppierung der Teilnehmer in Lanes erzielt die Minimierung der Suchnachrichten, die gesendet werden sollen, um den Anbieter eines Dienstes ausfindig zu machen. Das erfolgt mit folgenden zwei Schritten: 1. Jeder Teilnehmer, der einen Dienst anbieten will, kündigt die Dienstbeschreibung innerhalb der eigenen Lane an. Alle Teilnehmer der Lane speichern diese Beschreibung und den Anbieter des Dienstes. 2. Die Dienstsuche geschieht zuerst in der eigenen Lane, dann sequenziell in allen anderen Lanes der Struktur, indem die Nachrichten an die Anycast-Adressen der benachbarten Lanes geschickt werden. Somit wird die Anzahl der Suchnachrichten auf die Anzahl der Lanes beschränkt, da alle Mitglieder einer Lane als Gruppe nur einmal abgefragt werden. Zu den Haupteigenschaften von Lanes gehört die Möglichkeit einer schnellen Anpassung an die durch der Bewegung bedingten Topologieänderungen. Diese Eigenschaft wird durch das regelmäßige Senden von Ping-Nachrichten innerhalb einer

4.2. Algorithmen 17 Lane erreicht. Die Ping-Nachrichten werden von jedem Teilnehmer an seinen direkten Vorgänger gesendet. Im Beispiel aus Abb. 4.1 sendet Gerät 3 regelmäßig Ping-Nachrichten an das Gerät 2. Durch die Ping-Nachrichten werden Topologieänderungen erkannt und Wünsche der Teilnehmer nach einer Veränderung geäußert. Dieses Ziel wird durch bestimmte Informationen in den Ping-Nachrichten erreicht. Das sind die Angabe des Nachfolgers, der aktuelle Zustand des Senders und ein Zähler, der sogenannte Ping-Zähler. Er wird für die Bestimmung der Lane-Länge verwendet. Die ausführliche Funktion dieser Informationen wird bei der Beschreibung der Lanes-Algorithmen verdeutlicht. Für eine noch höhere Stabilität und bessere Anpassung der Lanes-Struktur an mögliche Veränderungen werden Lanes nach Möglichkeit aus Geräten zusammengestellt, die ähnliche Rechnerleistungen und verfügbaren Speicher aufweisen. Diese Maßnahme sorgt für eine möglichst gleiche Reaktion der Lanes-Mitglieder auf zunehmende Belastung der Lane. Beispielsweise können leistungsstarke Geräte eine erhöhte Anzahl von gespeicherten Dienstbeschreibungen schnell und effizient verwalten. Unter gleichen Bedingungen sind schwache Geräte stark belastet. Bei gemischten Lanes sind somit entweder schwache Geräte stark beansprucht oder starke Geräte nutzen ihre größere Kapazität nicht optimal aus. 4.2 Algorithmen Im Folgenden werden alle Lanes-Algorithmen ausführlich beschrieben. Nutzende Algorithmen ermöglichen die Realisierung der Dienstankündigung und der Dienstsuche. Struktur-erhaltende Algorithmen bieten die Möglichkeit eines korrekten Aufbaus der Struktur und Maßnahmen zur richtigen Behandlung der Fehlerfälle. Optimierende Algorithmen sind dafür zuständig, die Effizienz der Lanes-Struktur zu steigern. 4.2.1 Nutzende Algorithmen Zu den nutzenden Algorithmen gehören der Ankündigungs- und der Such-Algorithmus. 4.2.1.1 Ankündigungs-Algorithmus Die Ankündigung eines angebotenen Dienstes findet innerhalb einer Lane statt. Der Teilnehmer, der einen Dienst ankündigen will, sendet Dienstankündigungs- Nachrichten an seine direkten Nachbarn. Sie speichern die enthaltene Beschreibung und leiten die Nachricht an die nächsten Nachbarn weiter. Die Speicherung und Weiterleitung wird solange fortgesetzt bis die obersten und untersten Lane-Mitglieder erreicht werden. Zum Schluss sind alle Teilnehmer der Lane über den angebotenen Dienst informiert. In Abbildung 4.2 kündigt der Teilnehmer 1 einen Dienst an und sendet die Ankündigungs-Nachrichten an Teilnehmer 2 und 4. Beide Teilnehmer speichern die Dienstbeschreibung in ihrem lokalen Speichern. Teilnehmer 2 leitet die Nachricht an Teilnehmer 3 weiter, der wiederum die Dienstinformationen lokal speichert. Somit sind alle Teilnehmer der Lane über den angebotenen Dienst von Teilnehmer 1 informiert.

18 4. Analyse von Lanes Lane1 Teilnehmer 3 Teilnehmer 3: 5. Empfängt Ankündigungsnachricht und speichert die Dienstbeschreibung 4 Teilnehmer 2 Teilnehmer 2: 2. Empfängt Ankündigungsnachricht und speichert die Dienstbeschreibung 4. Sendet Ankündigungsnachricht an Teilnehmer3 1 Teilnehmer 1 Teilnehmer 1: 1. Sendet Ankündigungsnachricht an Teilnehmer 2 und Teilnehmer 4 1 Teilnehmer 4 Teilnehmer 4: 3. Empfängt Ankündigungsnachricht und speichert die Dienstbeschreibung Abbildung 4.2: Ankündigung des Dienstes 4.2.1.2 Such-Algorithmus Die Suche nach einem Dienst verläuft in der Lanes-Struktur folgendermaßen: Der suchende Teilnehmer kontrolliert als erstes die lokal gespeicherten Beschreibungen, die von seinem eigenen Lane stammen. Wenn die lokale Suche erfolglos ist, dann werden Suchnachrichten an die benachbarten Lanes durch die Anycast-Adressen gesendet. Die Teilnehmer, die die Nachrichten empfangen, führen einen Vergleich ihrer lokal gespeicherten Dienstbeschreibungen mit dem suchenden Dienst durch. Wenn auch diese Vergleiche erfolglos sind, werden die Suchnachrichten an die jeweils anderen benachbarten Lanes weitergeleitet. Die Suche endet erfolglos, falls beide Ränder des Anycast-Bereichs erreicht sind. In diesem Fall werden zwei Suche- Erfolglos-Nachrichten den suchenden Teilnehmer erreichen. Erfolgreich ist die Suche, falls der suchende Dienst in einer Lane gefunden wird. In diesem Fall wird der suchende Teilnehmer mit einer Dienst-Gefunden-Nachricht über den Dienst und den Dienstanbieter informiert. Vier verschiedene Lanes werden als Beispiel in Abb. 4.3 angezeigt. Teilnehmer 4, 1, 2 und 3 gehören jeweils zur Lane 1, 2, 3 und 4. Teilnehmer 1 sucht einen Dienst und da der Dienst lokal nicht existiert, werden in Lane 1, Teilnehmer 4 und in Lane 3, Teilnehmer 2 durch Anycast-Adressen erreicht. Teilnehmer 4 sucht den Dienst erfolglos und da keine weitere Lanes existieren und das Ende des Anycast-Bereichs erreicht wurde, sendet eine Suche-Erfolglos-Nachricht an Teilnehmer 1. Die Suche bei Teilnehmer 2 ist auch erfolglos, aber in diesem Fall wird die Nachricht an Teilnehmer

4.2. Algorithmen 19 1 1 3 Teilnehmer 4 Teilnehmer 1 Teilnehmer 2 Teilnehmer 3 5 7 Lane 1 Lane 2 Lane 3 Lane 4 Teilnehmer 4: 4. Sucht den Dienst erfolglos 5. Sendet Suche-Erfolglos Nachricht an Teilnehmer 1 Teilnehmer 1: 1. Sendet Suchnachricht an Teilnehmer 2 und an Teilnehmer 4 Teilnehmer 2: 2. Sucht den Dienst erfolglos 3. Sendet Nachricht an Teilnehmer3 Teilnehmer 3: 6. Sucht und findet den Dienst 7. Sendet Dienst-Gefunden Nachricht mit dem Dienst und dem Anbieter an Teilnehmer 1 Abbildung 4.3: Dienstsuche 3 in Lane 4 gesendet. Teilnehmer 3 kennt den Dienst und den Dienstanbieter und sendet eine Dienst-Gefunden-Nachricht an Teilnehmer 1. Somit erfährt der suchende Teilnehmer über den Anbieter des Dienstes und kann ihn direkt kontaktieren und seinen Dienst in Anspruch nehmen. Die Dienstnutzung findet außerhalb der Lanes- Algorithmen statt und wird an diesem Punkt nicht weiter behandelt. 4.2.2 Struktur-Erhaltende Algorithmen Die Login/Logout-Algorithmen sorgen für den normalen Eintritt und Austritt in bzw. aus der Struktur. Der Lane-Broken-Algorithmus und die Netzpartitionierungs- Reintegrations-Algorithmen ermöglichen die Korrektur der Fehlerfälle. 4.2.2.1 Login/Logout-Algorithmus Wenn ein Gerät der Lanes-Struktur beitreten will, dann sendet es eine Login-Anfrage- Nachricht an alle in einem Hop erreichbaren Lanes-Mitglieder. Die kontaktierten Mitglieder senden dann Login-Angebote an das Gerät. Diese Angebote beinhalten die Leistungsmerkmale der Anbieter bezüglich Rechnerleistung und verfügbaren Speicher sowie die Adresse ihre direkten Nachfolger innerhalb der Lane. Die Auswahl des richtigen Angebots wird Anhand beider Informationen, die im Angebot beinhaltet sind, getroffen. Zuerst wählt das Gerät die passende Lane bezüglich Rechnerleistung und Speicher. Steht die beizutretende Lane fest, kontrolliert das Gerät mit Hilfe der Nachfolger-Information in den Angeboten, ob zwei Angebote aus zwei benachbarten Teilnehmern sind, mit dem Ziel eine Nachbar-Kommunikation mit einem Hop zu gestalten. Wenn das der Fall ist, dann wird das Angebot des Vorgängers ausgewählt und mit diesem Teilnehmer der Login-Vorgang abgeschlossen. Fehlen zwei benachbarte Angebote, kann das Gerät ein Angebot zufällig auswählen, um den Algorithmus fortzusetzen. Als nächstes wird eine Lane-Zusage-Nachricht an den ausgewählten Teilnehmer gesendet und eine Login-Inform-Nachricht an seinen Nachfolger. Beide Teilnehmer

20 4. Analyse von Lanes Lane1 Lane1 Gerät 1: 3. Sendet Login-Angebot an Gerät 4 7. Sendet Login-Bestätigung an Gerät 4 Teilnehmer 1 1 5 Gerät 4: 1. Sendet Login-Anfrage an Teiln. 1 2. Sendet Login-Anfrage an Teiln.2 Teilnehmer 1 7 3 5. Sendet Login-Zusage an Teiln.1 6. Sendet Login-Inform an Teiln.2 Gerät 2: 4. Sendet Login-Angebot an Gerät 4 Teilnehmer 2 6 2 4 Gerät 4 8. Empfängt Login-Bestätigung und speichert die Lane- Dienstebeschreibungen und die Anycast-Adressen Teilnehmer 4 Teilnehmer 2 Teilnehmer 3 Teilnehmer 3 Vorher Nachher Abbildung 4.4: Einloggen in die Lanes-Struktur aktualisieren ihre Struktur-Daten, um das neue Gerät in die Lane zu integrieren. Zum Schluss wird eine Login-Bestätigung-Nachricht vom ausgewählten Teilnehmer an das Gerät gesendet, um es über die Anycast-Adressen und über die angebotene Dienste der Lane zu informieren. Der neue Teilnehmer der Lane speichert die Anycast-Adressen und die Dienstbeschreibungen und setzt seinen direkten Vorgänger und Nachfolger fest. Damit ist der Login-Vorgang erfolgreich abgeschlossen. Der Ablauf des Login-Algorithmus wird mit Hilfe der Abb. 4.4 deutlich gemacht. Gerät 4 will in die Lane-Struktur beitreten und sendet Login-Anfragen an die Geräte 1 und 2. Beide Teilnehmer antworten mit einem Angebot und, da keine Angebote von anderen Lanes stammen, wird der Teilnehmer 1 ausgewählt, weil sein direkter Nachfolger, Teilnehmer 2, auch ein Angebot gesendet hat. Eine Login-Zusage und eine Login-Inform-Nachricht werden an Teilnehmer 1 bzw. Teilnehmer 2 geschickt. Als letztes empfängt Gerät 4 eine Login-Bestätigung von Teilnehmer 1 mit den Adressen und den Dienstbeschreibungen. Auf der rechten Seite der Abb. 4.4 ist die Lane 1 nach dem erfolgreichen Einloggen des Gerätes 4 dargestellt. Der Logout-Algorithmus ist dafür zuständig, einen beabsichtigten Austritt aus der Lane-Struktur zu ermöglichen. Der Teilnehmer, der seine Lane verlassen will, sendet Logout-Nachrichten an seine direkten Nachbarn und kann sich somit aus dem Netz ausloggen. Die Nachbarn verändern ihre Struktur-Daten, um die Lücke des fehlenden Teilnehmers zu schließen und entfernen alle Dienstbeschreibungen, die vom ausgeloggten Mitglied stammen. Durch die zwei Nachbarn, werden alle Mitglieder der Lane durch Logout-Complete-Nachrichten über den fehlenden Teilnehmer informiert, damit auch sie seine Dienstbeschreibungen aus ihren lokalen Speichern entfernen.

4.2. Algorithmen 21 4.2.2.2 LaneBroken-Algorithmus Jedes Mal, wenn ein Teilnehmer eine Ping-Nachricht an seinen Vorgänger sendet, kontrolliert er auch, ob eine Ping-Nachricht von seinem Nachfolger empfangen wurde. Das Fehlen von Ping-Nachrichten zeigt, dass der Kontakt mit dem Nachfolger nicht mehr besteht. Dabei wird ein unangekündigter Austritt des Nachfolgers vermutet und der LaneBroken-Algorithmus eingeleitet. Der Nachfolger des Nachfolgers wird mit einer LaneBroken-Nachricht kontaktiert, der aus den Informationen vorheriger Ping-Nachrichten bekannt ist. Dieser Teilnehmer sendet eine LaneBroken- Complete-Nachricht zurück und beide Teilnehmer aktualisieren ihre Struktur-Daten, so dass die Lücke, die aus dem fehlenden Teilnehmer entstanden ist, geschlossen wird. Außerdem werden die Dienstbeschreibungen des ausgefallenen Teilnehmers von allen Teilnehmern durch LaneBroken-Complete-Nachrichten entfernt. Lane1 Lane1 Teilnehmer 3 Gerät 3: 7. Entfernt Dienstbeschreibungen, die vom Teiln. 1 angeboten wurden Teilnehmer 3 6 Teilnehmer 2 Gerät 2: 2. Empfängt keine Ping-Nachrichten und sendet LaneBroken Nachricht an Teilnehmer 4 5. Entfernt Dienstbeschreibungen, die vom Teiln. 1 angeboten wurden 6. Sendet LaneBroken Complete Nachricht an Teilnehmer 3 Teilnehmer 2 3 Teilnehmer 1 2 Gerät 1: 1. Verlässt Lane unangekündigt Teilnehmer 4 Teilnehmer 4 Gerät 4: 3. Empfängt LaneBroken Nachricht und sendet LaneBroken Complete Nachricht an Teilnehmer 2 4. Entfernt Dienstbeschreibungen, die vom Teiln. 1 angeboten wurden Vorher Nachher Abbildung 4.5: LaneBroken Im Beispiel aus Abb. 4.5 findet ein unangekündigter Austritt des Teilnehmers 1 statt. Teilnehmer 2 bekommt keine Ping-Nachrichten von Teilnehmer 1 und leitet den LaneBroken-Algorithmus ein. Teilnehmer 4 wird kontaktiert und durch LaneBroken- Complete-Nachrichten werden die Dienstbeschreibungen des fehlenden Teilnehmers aus allen Speichern der Lane-Mitglieder entfernt. Außerdem setzt Teilnehmer 2 Teil-

22 4. Analyse von Lanes nehmer 4 als seinen direkten Nachfolger. Gleichzeitig setzt Teilnehmer 4 Teilnehmer 2 als seinen direkten Vorgänger. 4.2.2.3 Netzpartitionierung- /Reintegrations-Algorithmus Eine Netzpartitionierung findet dann statt, wenn die Kommunikation zwischen Lane- Mitglieder nicht mehr vorhanden ist und durch den LaneBroken-Algorithmus nicht mehr zu beheben ist. In diesem Fall werden zwei oder mehrere Partitionierungen erschaffen, die getrennt voneinander funktionieren können. Teilnehmer können weiterhin Dienste ankündigen und suchen. Die Herausforderung einer Netzpartitionierung ist die getrennt Teile im Fall einer späteren Wiederherstellung der Kommunikation zu reintegrieren. Um das zu ermöglichen werden bei einer Partitionierung verschiedene Partitionierungsnummern bei verschiedenen Partitionen gesetzt. Gleichzeitig werden bei den verschiedenen Partitionen, sowohl die nicht mehr existierende Teilnehmer von den Anycast-Gruppen gelöscht als auch ihre Dienstbeschreibungen von der Struktur entfernt. Dafür zuständig sind Partitionierungs-Nachrichten, die auch die neue Partitionierungsnummer bei allen Teilnehmer bekannt machen. Um eine Reintegration zu ermöglichen werden die Ping-Nachrichten durch ein zusätzliches Feld erweitert, das die Partitionierungsnummer einschließt. Der Reintegrationsalgorithmus wird dann eingesetzt, wenn von einem Teilnehmer eine Ping- Nachricht belauschst wird, die eine andere Partitionierungsnummer hat. Reintegrationsschritte sorgen dafür, dass die Lanes wieder zusammengeführt werden und dass eine voll funktionsfähige Lanes-Struktur entsteht. Beide Algorithmen befinden sich in der Entwicklungsphase und werden in diesem Punkt nicht ausführlicher betrachtet. 4.2.3 Optimierende Algorithmen Der Split- und der Merge-Algorithmus sorgen für eine effizientere Funktionalität der Lanes-Struktur. 4.2.3.1 Split-Algorithmus Der Split-Algorithmus wird dann eingesetzt, wenn die Anzahl der Mitglieder einer Lane so gross wird, dass die Leistungsfähigkeit der Lane abnimmt. Solche Situationen kommen dann vor, wenn beispielsweise eine hohe Dynamik des Netzes die Lane durch mehrere nacheinanderfolgende Login- und Logout-Vorgänge stark belastet oder wenn aufgrund der hohen Anzahl von Mitgliedern die lokale Dienstbeschreibungen so viele werden, dass keine neuen gespeichert werden können. In diesen Fällen ist die Spaltung einer Lane in zwei Lanes notwendig, um die normale Funktionalität der Lanes-Struktur gewährleisten zu können. Die Funktionalität der Lane und der Zustand des eigenen Gerätes wird von jedem Teilnehmer überprüft. Der Wunsch nach einer Spaltung wird innerhalb der

4.2. Algorithmen 23 Ping-Nachrichten geäußert und alle Wünsche erreichen gekapselt in neuen Ping- Nachrichten den obersten Lane-Teilnehmer. Die Teilnehmer können zwischen drei Spaltungs-Optionen wählen: 1. Eine Spaltung ist nicht erwünscht 2. Eine Spaltung ist erwünscht muss aber nicht sofort erfolgen 3. Eine Spaltung muss sofort stattfinden Außerdem wird durch die Ping-Nachrichten die Lane-Länge bestimmt. Jeder Teilnehmer erhöht den Ping-Zähler um 1 und sendet die Ping-Nachricht zu seinem Vorgänger. Somit ist der oberste Teilnehmer auch in der Lage die Lane-Länge zu identifizieren. Wenn diese eine maximale festgesetzte Grenze überschreitet, kontrolliert der oberste Teilnehmer die Wünsche der Teilnehmer und entscheidet, ob eine Spaltung erfolgen soll oder nicht. Generell wird die Lane gespalten, wenn gilt: Mindestens ein Teilnehmer will eine sofortige Spaltung, oder Mehr als die Hälfte der Teilnehmer wünschen sich eine nicht-sofortige Spaltung In beiden Fällen wird der Split-Algorithmus eingeleitet. In allen anderen Fällen erfolgt keine Spaltung. Der Split-Algorithmus verläuft folgendermaßen: Der oberste Teilnehmer erzeugt eine Split-Anfrage-Nachricht und speichert in ihr seine Adresse, seine Rechnerleistung und den verfügbarer Speicher. Diese Nachricht wird an seinen Nachfolger gesendet, der von seiner Seite gesammelten Informationen in die Nachricht hinzufügt. Das wird solange gemacht bis der unterste Teilnehmer erreicht wird. Der unterste Teilnehmer erzeugt eine Split-Complete-Nachricht, die alle Informationen über Teilnehmer und ihre jeweiligen Gerät-Eigenschaften beinhaltet. Diese Nachricht wird durch die ganze Lane weitergeleitet und dabei erfolgt die Spaltung der Teilnehmer in zwei neuen Lanes. Solange alle Geräte ähnliche Eigenschaften aufweisen, wird die Spaltung mit der Reißverschluss-Methode ausgeführt. Dabei landen die Teilnehmer alternierend an die zwei neue Lanes und die gute Lokalität, die bei Login-Algorithmus erreicht wurde, wird beibehalten. Außerdem werden bei jedem Teilnehmer die Dienstbeschreibungen der Teilnehmer entfernt, die in der anderen Lane landen. Wenn Geräte mit verschiedenen Rechnerleistungen und Speicher existieren, dann landen sie in unterschiedlichen Lanes. Die zwei neuen Lanes behalten die äußeren, alten Anycast-Adressen und bekommen zwei neuen, inneren Anycast-Adressen, so dass sie die Definition der benachbarten Lanes erfüllen. Im Beispiel aus Abb. 4.6 wird die Spaltung von Lane 1 gewünscht. Eine Split- Anfrage-Nachricht, vom Teilnehmer 1 eingeleitet, wird durch die ganze Lane gesendet und dabei werden alle Adressen und die Leistung der jeweiligen Geräten