15.11.2012 Aufrufe

B C D A E F O - Lehrstuhls für Informations- und ...

B C D A E F O - Lehrstuhls für Informations- und ...

B C D A E F O - Lehrstuhls für Informations- und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Experimentelle Evaluierung eines Ansatzes zur semantisch<br />

entkoppelten Kommunikation in dynamischen, heterogenen<br />

Netzwerken mittels Publish/Subscribe<br />

Diplomarbeit<br />

Universität Rostock<br />

Fakultät <strong>für</strong> Informatik <strong>und</strong> Elektrotechnik<br />

Institut <strong>für</strong> Informatik<br />

Lehrstuhl <strong>für</strong> <strong>Informations</strong>- <strong>und</strong> Kommunikationsdienste<br />

vorgelegt von: Roland Seuchter<br />

Erstgutachter: Prof. Dr. Clemens H. Cap<br />

Zweitgutachter: Prof. Dr. Peter Forbrig<br />

Betreuer: Henry Ristau<br />

Abgabedatum: 25.02.2010


Kurzfassung<br />

In dieser Arbeit wird ASP (Announcement/Subscription/Publication), ein Routingverfahren<br />

<strong>für</strong> die Kommunikation in heterogenen Netzwerken, untersucht. Erstmals wird<br />

das auf Publish/Subscribe basierende Verfahren in einem realen System umgesetzt. Das<br />

Ziel der Arbeit ist es, zu prüfen, ob ASP in der Praxis als Middleware <strong>für</strong> die Kommunikation<br />

in heterogenen Netzen, wie sie zum Beispiel in intelligenten Umgebungen<br />

vorkommen, geeignet ist. Bislang wurde ASP ausschließlich in Simulationen evaluiert. In<br />

einem ausgewählten, realistischen Szenario sind die Experimente angesiedelt, mit denen<br />

die Leistungsfähigkeit von ASP geprüft wird.<br />

Abstract<br />

This thesis analyses ASP (Announcement/Subscription/Publication). ASP is a routing<br />

algorithm that is based on Publish/Subscribe. It has been designed to enable flexible<br />

communication in heterogeneous networks. These networks can be fo<strong>und</strong> in smart environments<br />

and other systems. Earlier research used simulation to evaluate the concept<br />

of ASP. This thesis marks the first time that ASP is implemented in a real system. The<br />

objective of this thesis is to evaluate the approach and measure the performance of the<br />

new system. A series of experiments in a realistic setting provide the data for assessing<br />

ASP.<br />

i


Inhaltsverzeichnis<br />

Inhaltsverzeichnis<br />

1. Einleitung 1<br />

1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />

1.2. Zielstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

1.3. Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik 4<br />

2.1. Überblick Publish/Subscribe . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.2. Publish/Subscribe in heterogenen Netzen . . . . . . . . . . . . . . . . . . 6<br />

2.3. Inhaltsbasiertes Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

2.3.1. Datenmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.3.2. Adressierungsschemata . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.3.3. Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.3.4. Weitere Problemstellungen . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.4. Publish/Process/Subscribe . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.5. Announcement/Subscription/Publication . . . . . . . . . . . . . . . . . . 11<br />

2.5.1. Interaktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2.5.2. Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

2.5.3. Anwendungsschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

2.5.4. Netzwerkabstraktionsschicht . . . . . . . . . . . . . . . . . . . . . . 15<br />

2.5.5. Übertragungskategorien . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

2.6. Andere Publish-Subscribe-Middleware . . . . . . . . . . . . . . . . . . . . 15<br />

2.7. Routingmetriken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

2.7.1. Hop Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

2.7.2. ETX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

2.7.3. ETT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

2.7.4. WCETT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

2.7.5. MIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

2.8. Netzwerktechnologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

2.8.1. IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

2.8.2. UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

2.8.3. Wireless LAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

2.8.4. Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

3. Konzept 26<br />

3.1. Anwendungsszenarien <strong>für</strong> PPS . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

ii


Inhaltsverzeichnis<br />

3.2. Szenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

3.2.1. Ziele von ASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

3.2.2. Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

3.2.3. Variationsmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . 30<br />

3.3. Abbildung auf ASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

3.3.1. Anwendungstypen <strong>und</strong> Übertragungskategorien . . . . . . . . . . . 32<br />

3.3.2. Plattformen <strong>und</strong> Netzwerktechnologien . . . . . . . . . . . . . . . . 33<br />

3.3.3. Anwendungsschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

3.3.4. Interaktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

3.3.5. Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

3.4. Metrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

3.4.1. Datentransport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

3.4.2. Datenverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

3.4.3. Metrik <strong>für</strong> ASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

4. Implementierung 44<br />

4.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

4.2. Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

4.2.1. Rekorder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

4.2.2. Speicherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

4.2.3. Konverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

4.2.4. Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

4.2.5. Weitere Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

4.3. Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

4.3.1. Multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

4.3.2. Priorisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

4.3.3. Fragmentierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

4.4. Protokollierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

4.5. NAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

4.5.1. Priorisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

4.5.2. Ethernet <strong>und</strong> WLAN via UDP . . . . . . . . . . . . . . . . . . . . 49<br />

4.5.3. Bluetooth via OBEX . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

4.6. Nachrichtenformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

4.7. Metrik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />

5. Experimenteller Ansatz 53<br />

5.1. Experimente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />

5.2. Versuchsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

5.2.1. Hardwareumfeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

5.2.2. Softwareumfeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

5.2.3. Beispielaufbau <strong>und</strong> -ablauf . . . . . . . . . . . . . . . . . . . . . . 56<br />

6. Auswertung 59<br />

6.1. Heterogenität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

iii


Inhaltsverzeichnis<br />

6.2. Räumliche Entkopplung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

6.3. Nachbarschaftsbeziehungen . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

6.4. Verwaltungsaufwand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

6.5. Zeitliche Entkopplung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />

6.6. Alternative Übertragungswege . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

6.7. Gestörte Übertragungswege . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

6.8. Alternative Übertragungstechniken . . . . . . . . . . . . . . . . . . . . . . 70<br />

6.9. Alternative Prozessoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

7. Schlussbetrachtungen 74<br />

7.1. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

7.2. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

A. Nachrichtenformat 76<br />

B. Versuche 77<br />

B.1. Namensschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

B.2. Übersicht der Experimente . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

B.3. Versuchsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

B.4. Hard- <strong>und</strong> Softwarespezifikationen . . . . . . . . . . . . . . . . . . . . . . 83<br />

B.5. Ausgewählte Diagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />

Literaturverzeichnis 88<br />

iv


Abbildungsverzeichnis<br />

Abbildungsverzeichnis<br />

2.1. Komponenten eines PPS-Knotens . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2.2. Prozessor versendet Abonnements . . . . . . . . . . . . . . . . . . . . . . 12<br />

2.3. Verbindungsgewichtung durch ETX . . . . . . . . . . . . . . . . . . . . . . 19<br />

2.4. Beispiel Inter-Flow-Interferenz . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

3.1. Szenarioskizze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

3.2. Variationsmöglichkeiten im Szenario . . . . . . . . . . . . . . . . . . . . . 30<br />

3.3. Schnittstellen zwischen Anwendungen <strong>und</strong> Broker . . . . . . . . . . . . . . 35<br />

3.4. Nachrichtenverlust nach Routenänderungen . . . . . . . . . . . . . . . . . 38<br />

3.5. Definition von tproc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

5.1. Logische Trennung eines IP-Netzwerks in Subnetze . . . . . . . . . . . . . 54<br />

6.1. Verwaltungsaufwand in Experiment 2, Reihe 2 . . . . . . . . . . . . . . . 65<br />

6.2. Vergleich der Downloadzeiten . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

6.3. Beispiel zeitlicher Ablauf der Ausbreitung von Ankündigungen . . . . . . 69<br />

6.4. Störungen durch Bluetooth Inquiry Scans . . . . . . . . . . . . . . . . . . 71<br />

B.1. Legende der Versuchsskizzen . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

B.2. Versuchsaufbau Experiment 1 . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

B.3. Versuchsaufbau Experiment 2 . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />

B.4. Versuchsaufbau Experiment 5 . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />

B.5. Versuchsaufbau Experiment 3 . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />

B.6. Kosten der Ankündigungen in X1v1R1@1M . . . . . . . . . . . . . . . . . 85<br />

B.7. Kosten der Ankündigungen in X1v1R1@11M . . . . . . . . . . . . . . . . 85<br />

B.8. Kosten der Ankündigungen in X1v1R1@54M . . . . . . . . . . . . . . . . 86<br />

B.9. Kosten der Ankündigungen in X1v1R1@auto . . . . . . . . . . . . . . . . 86<br />

B.10.Kosten der Ankündigungen in X1v1R2@dc80a . . . . . . . . . . . . . . . . 87<br />

B.11.Kosten der Ankündigungen in X1v1R2@dc100 . . . . . . . . . . . . . . . . 87<br />

v


Tabellenverzeichnis<br />

Tabellenverzeichnis<br />

2.1. Publish-Subscribe-Beispielnachricht . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.2. ASP-Nachrichtentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

2.3. Übertragungskategorien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

2.4. Vergleich der Metriken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

3.1. Rollenverteilung in den Beispielszenarien . . . . . . . . . . . . . . . . . . . 27<br />

3.2. Variationsmöglichkeiten der Vernetzung . . . . . . . . . . . . . . . . . . . 31<br />

3.3. Variationsmöglichkeiten der Rollen <strong>und</strong> Plattformen . . . . . . . . . . . . 31<br />

5.1. Kurzübersicht Versuchsrechner . . . . . . . . . . . . . . . . . . . . . . . . 57<br />

5.2. Rollenverteilung in Experiment 1, Variante 1, Reihe 2 . . . . . . . . . . . 57<br />

6.1. Zuordnung der Versuche zu den Untersuchungsaspekten . . . . . . . . . . 60<br />

6.2. Anzahl der Ankündigungen in Experiment 1, Variante 2, Reihe 1 . . . . . 62<br />

6.3. Kosten <strong>und</strong> Hops in Experiment 1, Variante 1, Reihe 1 . . . . . . . . . . . 68<br />

A.1. Nachrichtenformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />

B.1. Durchgeführte Experimente . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />

B.2. Softwareausstattung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

B.3. Hardwareausstattung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

B.4. Netzwerkperipherie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />

vi


1. Einleitung<br />

1. Einleitung<br />

1.1. Motivation<br />

Intelligente Umgebungen sollen Menschen in ihren Arbeits- oder Wohnumgebungen<br />

bei ihren Tätigkeiten unterstützen <strong>und</strong> sich an die Bedürfnisse ihrer Nutzer anpassen.<br />

Dazu werden Räume mit Sensoren ausgestattet, die der Umgebung helfen, die Nutzer<br />

<strong>und</strong> ihren Kontext wahrzunehmen. Aktoren versetzen die Umgebung in die Lage,<br />

sich aktiv <strong>und</strong> selbstständig an die Situation anzupassen. Ein Beispiel sind ferngesteuerte<br />

Rollläden oder Zimmerlampen, die von einem Beleuchtungssensor gesteuert<br />

werden, um eine gleichmäßige Beleuchtung zu gewährleisten. Die Flexibilität <strong>und</strong> Anpassungsfähigkeit<br />

intelligenter Umgebungen wächst sprunghaft, wenn neben einfachen<br />

Sensoren <strong>und</strong> Aktoren weitere Geräte eingeb<strong>und</strong>en werden. Angenommen, eine Person<br />

befindet sich in einem Wohnzimmer, das mit einem digitalen Videorecorder (DVR)<br />

ausgestattet ist. Erkennt der Recorder, dass der Benutzer auf die Aufzeichnung eines<br />

Spielfilms vom Vortag zugreift, wird die Zimmerbeleuchtung automatisch heruntergeregelt.<br />

Um dies zu erreichen, ist es notwendig, dass alle genannten Geräte miteinander<br />

kommunizieren <strong>und</strong> kooperieren. Bei Sensoren, Aktoren <strong>und</strong> weiteren Geräten handelt<br />

es sich aber um völlig unterschiedliche Geräte. Sie unterscheiden sich in ihrer Anzahl, in<br />

der Rechen- <strong>und</strong> Speicherkapazität, in der Art <strong>und</strong> Leistungsfähigkeit der verfügbaren<br />

Kommunikationsschnittstellen <strong>und</strong> in der Qualität der Stromversorgung. Ein Beleuchtungssensor<br />

mit ZigBee-Schnittstelle [Lüd07] <strong>und</strong> Solarbetrieb auf der einen Seite <strong>und</strong><br />

ein DVR mit 802.11n WLAN [Rec06] <strong>und</strong> Gigabit-Ethernet [Rec08] auf der anderen<br />

Seite sind zwei Beispiele an gegenüberliegenden Enden eines breiten Spektrums. Diese<br />

heterogene Vielfalt ist charakteristisch <strong>für</strong> intelligente Umgebungen.<br />

Ein weiterer interessanter Aspekt intelligenter Umgebungen ist Mobilität. Betrachtet<br />

man das eingangs genannte Beispiel erneut, so kann man sich leicht vorstellen, dass<br />

der Benutzer, der den DVR steuert, ein Handy oder Smartphone besitzt. Intelligente<br />

Umgebungen umfassen nicht nur Geräte, die fest installiert sind, sondern auch Geräte,<br />

die mobil sind <strong>und</strong> die vom Nutzer in immer andere Umgebungen eingebracht werden. Im<br />

Beispiel ist es wünschenswert, wenn sich das Telefon <strong>für</strong> die Dauer des Films selbstständig<br />

in einen leisen Modus versetzt. Verlässt der Benutzer den Raum oder beendet er die<br />

Aufzeichnung, kehrt das Telefon wieder in seinen ursprünglichen Betriebsmodus zurück.<br />

Dazu muss es mit den anderen Geräten in der Umgebung kommunizieren. Kabellose<br />

Verbindungstechniken eignen sich da<strong>für</strong> besonders.<br />

Die folgende Liste enthält zusätzliche charakteristische Eigenschaften <strong>für</strong> das Umfeld der<br />

heterogenen Netze in intelligenten Umgebungen:<br />

1


1. Einleitung<br />

• paralleler Einsatz von Funkschnittstellen <strong>und</strong> Kabelverbindungen mit stark unterschiedlicher<br />

Reichweite, Bandbreite <strong>und</strong> Verfügbarkeit<br />

• hohe Anzahl der Geräte<br />

• unterschiedliche Hardware- <strong>und</strong> Programmierarchitekturen <strong>und</strong> damit verb<strong>und</strong>en<br />

unterschiedliche Leistungsfähigkeit der Geräte<br />

Das hat eine Reihe von Konsequenzen <strong>für</strong> das Netzwerk. Wegen der Vielzahl der Geräte<br />

herrscht ein tendentiell hoher Kommunikationsbedarf. Arbeitet die Infrastruktur in dieser<br />

Situation nicht effizient, kann der Bedarf nicht gedeckt werden.<br />

Dass es mobile Geräte <strong>und</strong> Geräte mit begrenzter Energieversorgung gibt, führt dazu,<br />

dass sich die Topologie des Netzes häufig ändert. Einzelne tragbare Geräte werden<br />

bewegt <strong>und</strong> die Betriebszustände anderer Geräte ändern sich kurzfristig: An der einen<br />

Stelle kommt ein mobiles Gerät hinzu, während am anderen Ende des Raumes ein batteriebetriebener<br />

Sensor den Dienst einstellen muss.<br />

Vorhandene Funkschnittstellen verwenden ein geteiltes Medium <strong>und</strong> stellen eine Kommunikationsinfrastruktur<br />

vor weitere Probleme. Das Medium kann beträchtlichen Störungen<br />

ausgesetzt sein <strong>und</strong> die Verbindungsqualität kann schwanken. Auch dies hat<br />

Änderungen in der Topologie zur Folge. Weiter kann eine festinstallierte, kabelgeb<strong>und</strong>ene<br />

Infrastruktur vorhanden sein, die im Allgemeinen eine höhere Bandbreite aufweist<br />

<strong>und</strong> zuverlässiger ist als kabellose Netze, weshalb sie in die Kommunikationsvorgänge<br />

einzubeziehen ist.<br />

Nicht zuletzt führt die Vielfalt der Netzwerkschnittstellen der Geräte dazu, dass nur wenige<br />

Geräte unmittelbar miteinander kommunizieren können. Ein einheitlicher Adressraum<br />

existiert nicht. Die Kommunikation muss also koordiniert werden <strong>und</strong> kooperativ<br />

sein. Einzelne Geräte müssen zwischen unterschiedlichen Techniken vermitteln.<br />

Die genannten Eigenschaften heterogener Netze, wie sie in intelligenten Umgebungen<br />

zu finden sind, <strong>und</strong> das Beispiel, veranschaulichen, dass es eine komplexe Aufgabe ist,<br />

ein leistungsfähiges <strong>und</strong> flexibles Kommunikationskonzept zu entwerfen, dass die Geräte<br />

miteinander verbindet.<br />

1.2. Zielstellung<br />

Mit Announcement/Subscription/Publication (ASP) existiert ein neuartiges Konzept,<br />

das die Kommunikation in heterogenen Netzwerken ermöglichen kann. In einer Middleware<br />

kombiniert der Ansatz die Kommunikation mittels Publish/Subscribe mit einer flexiblen<br />

<strong>und</strong> aus Anwendungssicht transparenten Nachrichtenverarbeitung. Bislang wurde<br />

der Ansatz von ASP in Simulationen evaluiert. Die Ergebnisse waren erfolgversprechend.<br />

Erst eine reale Umsetzung kann zeigen, wie praxistauglich <strong>und</strong> ausgereift das in der Literatur<br />

beschriebene Konzept ist. In dieser Arbeit wird ASP daher erstmals in ein konkretes<br />

System überführt. Das entwickelte System ist die Gr<strong>und</strong>lage <strong>für</strong> die experimentelle<br />

2


1. Einleitung<br />

Evaluierung des Ansatzes in einem praktischen Szenario. Aus dem Szenario werden in<br />

dieser Arbeit vier unterschiedliche Experimente abgeleitet. Mit Hilfe dieser Experimente<br />

werden Hypothesen geprüft, die sich wie folgt zusammenfassen lassen:<br />

1. Das System funktioniert in einem heterogenen Umfeld.<br />

2. Die Kommunikation ist räumlich entkoppelt <strong>und</strong><br />

3. erfolgt auf Gr<strong>und</strong>lage von Nachbarschaftsbeziehungen.<br />

4. Das System arbeitet mit einem niedrigen Verwaltungsaufwand.<br />

5. Die zeitliche Entkopplung der Kommunikation ist gewährleistet.<br />

6. Unter den alternativen Übertragungswegen wird ein effizienter gewählt.<br />

7. Gestörte Übertragungswege werden vermieden <strong>und</strong><br />

8. unterschiedliche Übertragungstechnologien können genutzt werden.<br />

9. Für die Datenverarbeitung werden die leistungsfähigsten der verfügbaren Geräte<br />

eingeb<strong>und</strong>en.<br />

Ob ASP die gesteckten Erwartungen erfüllen kann, ergibt die Auswertung der praktischen<br />

Versuche. Es wird geklärt, wie effizient das implementierte System diese Ziele<br />

erreicht <strong>und</strong> an welchen Stellen das Konzept gegebenenfalls verbessert oder konkretisiert<br />

werden muss.<br />

1.3. Überblick<br />

Die vorliegende Arbeit ist neben der Einleitung in diesem Kapitel in sechs weitere Kapitel<br />

untergliedert. Kapitel 2 schildert die Gr<strong>und</strong>lagen von Publish/Subscribe, dem darauf<br />

aufbauenden Ansatz Publish/Process/Subscribe <strong>und</strong> dem weiterführenden System<br />

Announcement/Subscription/Publication (ASP). ASP ist der Untersuchungsgegenstand<br />

dieser Arbeit.<br />

Kapitel 3 erläutert das Szenario, in dem das implementierte System zum Einsatz kommt.<br />

Fragestellungen, die einer erfolgreichen Implementierung vorausgehen, werden diskutiert.<br />

Insbesondere wird die Metrik als ein Kernbereich der künftigen Middleware beschrieben.<br />

Die Besonderheiten der Implementierung beschreibt Kapitel 4. Die Merkmale der Implementierung,<br />

die <strong>für</strong> das Verständnis des Ablaufs der Experimente <strong>und</strong> die spätere<br />

Auswertung der Versuche von entscheidender Bedeutung sind, stehen dabei im Mittelpunkt.<br />

Die Anforderungen an die Experimente <strong>und</strong> das Vorgehen bei den Versuchen enthält<br />

Kapitel 5. Kapitel 6 diskutiert die durchgeführten Versuche <strong>und</strong> wertet sie aus. Die in<br />

Abschnitt 1.2 genannten Hypothesen bilden den Leitfaden der Auswertung. Eine Zusammenfassung<br />

der Ergebnisse <strong>und</strong> einen Ausblick auf zukünftige Forschungsthemen<br />

gibt Kapitel 7.<br />

3


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

In Abschnitt 1.1 wurden die Merkmale intelligenter Umgebungen dargestellt. Damit die<br />

Kommunikation in einem solchen Umfeld gewährleistet werden kann, wird eine geeignete<br />

Infrastruktur benötigt. Publish/Subscribe eignet sich als Gr<strong>und</strong>lage einer solchen<br />

Infrastruktur, denn die Kommunikation mittels Publish/Subscribe ist lose gekoppelt.<br />

Client-Server-Architekturen sind zeitlich <strong>und</strong> räumlich eng gekoppelt. Client <strong>und</strong> Server<br />

müssen zum Zeitpunkt der Kommunikation beide aktiv (<strong>und</strong> erreichbar) sein <strong>und</strong> der<br />

Kommunikationspartner muss genau bekannt sein [TS08]. In einem heterogenen, dynamischen<br />

Netzwerk, in dem kein gemeinsamer Adressraum existiert <strong>und</strong> Verbindungen<br />

instabil sind, werden diese Voraussetzungen nicht erfüllt.<br />

Warteschlangensysteme entkoppeln die Kommunikation räumlich <strong>und</strong> zeitlich <strong>und</strong> sind<br />

mit Publish/Subscribe sehr eng verb<strong>und</strong>en [EFGK03]. Publish/Subscribe ist jedoch noch<br />

weiter entkoppelt, wie im folgenden Abschnitt beschrieben wird. Zudem ist die persistente<br />

Kommunikation, wie sie von Warteschlangensystemen angeboten wird, in intelligenten<br />

Umgebungen im Allgemeinen nicht erforderlich. Die Infrastruktur ist somit zu komplex.<br />

Im weiteren liegt der Schwerpunkt daher auf Publish/Subscribe. In diesem Kapitel werden<br />

zunächst die Gr<strong>und</strong>lagen von Publish/Subscribe erläutert. Anschließend werden<br />

schrittweise die Konzepte von Publish/Process/Subscribe (PPS) <strong>und</strong> Announcement/<br />

Subscription/Publication (ASP) eingeführt. PPS ergänzt Publish/Subscribe um Mechanismen<br />

zur flexiblen Datenverarbeitung <strong>und</strong> unterstützt auf diese Weise die Kooperation<br />

von Geräten in intelligenten Umgebungen. Auf PSP aufbauend, ist ASP ein Routingalgorithmus<br />

<strong>für</strong> die Kommunikation in heterogenen Netzwerken.<br />

Metriken sind eine wesentliche Komponente von Routingalgorithmen. Auf Gr<strong>und</strong>lage<br />

einer Metrik wird die Auswahl der Verbindungen oder Pfade getroffen, auf denen Daten<br />

transportiert werden. Für ASP wurde bislang keine Metrik festgelegt. Für die praktische<br />

Umsetzung wird sie jedoch benötigt. Abschnitt 2.7 behandelt existierende Metriken. Sie<br />

dienen später als Gr<strong>und</strong>lage der Metrik <strong>für</strong> ASP.<br />

Die praktische Umsetzung des entwickelten Systems greift auf eine Reihe verbreiteter<br />

Netzwerktechnologien zurück. Das Kapitel schließt aus diesem Gr<strong>und</strong> mit den wichtigsten<br />

Eckpunkten der eingesetzten Netzwerktechnologien.<br />

4


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

2.1. Überblick Publish/Subscribe<br />

Publish/Subscribe ist ein Kommunikationsparadigma [EFGK03], das unter anderem der<br />

Interaktion von Komponenten in komplexen verteilten Systemen besser gerecht werden<br />

möchte als andere Ansätze, zu denen das Client-Server-Modell, Remote Procedure Calls 1<br />

(RPC) <strong>und</strong> Warteschlangensysteme (bzw. nachrichten-orientierte Middleware, MOM)<br />

gehören. Einen Überblick dieser Techniken bietet [TS08], sodass ihre Hintergründe hier<br />

nicht weiter Gegenstand sind. Stattdessen veranschaulicht eine detaillierte Betrachtung<br />

der Komponenten <strong>und</strong> der Funktionsweise von Publish/Subscribe dessen Potenzial <strong>und</strong><br />

unterstreicht die Vorzüge der zentralen Eigenschaften von Publish/Subscribe.<br />

An der Kommunikation mittels Publish/Subscribe sind stets drei Parteien beteiligt: Subscriber,<br />

Broker <strong>und</strong> Publisher 2 . Der Subscriber ist an den Nachrichten, die der Publisher<br />

erzeugt, interessiert. Der Broker koordiniert die Kommunikation <strong>und</strong> leitet Nachrichten<br />

ausschließlich weiter. Er hat selbst kein Interesse am Inhalt der Nachrichten <strong>und</strong> erzeugt<br />

auch keine Botschaften, ist also weder Quelle noch Senke. Möchte der Subscriber Nachrichten<br />

empfangen, teilt er dem Broker sein Interesse mit, d.h. er abonniert bestimmte<br />

Nachrichten. Erzeugt der Publisher eine Botschaft, sendet er diese an den Broker. Der<br />

überprüft, ob es (einen oder mehrere) Subscriber gibt, die an der Nachricht interessiert<br />

sind <strong>und</strong> leitet sie an alle interessierten Subscriber weiter. Bereits in seiner einfachsten<br />

Form, weist das Modell zwei interessante Eigenschaften auf:<br />

1. Die Kommunikation ist räumlich entkoppelt (anonym).<br />

2. Je ein Publisher kann mit nur einer Operation Nachrichten an beliebig viele Subscriber<br />

übertragen (Multicast).<br />

Versendet der Publisher eine Nachricht, adressiert er die Empfänger nicht direkt. Die<br />

Verbreitung der Information wird dem Broker überlassen. In der Folge müssen sich die<br />

Kommunikationspartner nicht kennen. Die Kommunikation gilt als räumlich entkoppelt<br />

[EFGK03]. Der zweite Punkt besagt, dass der Broker jede eintreffende Nachricht an<br />

mehrere Empfänger weiterleiten kann, falls sie Interesse daran haben. Unabhängig davon<br />

können in einem Publish-Subscribe-System mehrere Publisher existieren <strong>und</strong> aktiv<br />

Nachrichten versenden.<br />

Neben der räumlichen Entkopplung ist die Kommunikation per Publish/Subscribe auch<br />

zeitlich entkoppelt <strong>und</strong> erfordert keine Synchronisation von Publisher <strong>und</strong> Subscriber<br />

[EFGK03]. Die Bedeutung der zeitlichen Entkopplung ist, dass Sender <strong>und</strong> Empfänger<br />

einer Nachricht nicht zum gleichen Zeitpunkt aktiv sein müssen. So kann ein Publisher<br />

eine Nachricht versenden, während der Empfänger dieser Nachricht inaktiv ist, oder<br />

falls die Verbindung auf Sende- oder Empfangsseite unterbrochen ist. Die Entkopplung<br />

1 Vereinfachend soll dies auch Remote Method Invocation (RMI) umfassen.<br />

2 Die Bezeichnung ist uneinheitlich. In einigen Veröffentlichungen heißt es Produzent <strong>und</strong> Konsument<br />

statt Publisher bzw. Subscriber; anstelle von Nachrichten wird häufiger von Ereignissen gesprochen<br />

[CRW00, EFGK03, MC02] u.a.<br />

5


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

der Synchronisation bezieht sich auf das Blockieren der Kommunikationsvorgänge. Bei<br />

Publish/Subscribe müssen sich weder Publisher noch Subscriber beim Versand bzw.<br />

Empfang mit anderen Teilnehmern synchronisieren. Aldred et al. formalisieren die Entkopplung<br />

von Middleware entlang der drei Dimensionen Ort (Adresse), Zeit <strong>und</strong> Synchronisation<br />

[AADH05]. Sie argumentieren ferner, dass alle drei Dimensionen orthogonal<br />

sind.<br />

2.2. Publish/Subscribe in heterogenen Netzen<br />

Stellt man den Ansatz von Publish/Subscribe den Charakteristika heterogener Netze<br />

(siehe Abschnitt 1.1) gegenüber, stellt man fest, dass das Publish-Subscribe-Verfahren<br />

gut <strong>für</strong> den Einsatz in intelligenten Umgebungen geeignet ist. Die räumliche Entkopplung<br />

<strong>und</strong> die Multicast-Semantik helfen, viele Geräte zu verbinden. So müssen die Kommunikationspartner<br />

nicht aufwändig im Vorfeld einer Kommunikation ermittelt werden <strong>und</strong><br />

während des eigentlichen Kommunikationsvorgangs einzeln angesprochen werden. Die<br />

veränderliche Topologie, hervorgerufen durch Geräte in unterschiedlichen Betriebszuständen,<br />

kann durch die zeitliche Entkopplung kompensiert werden, denn sie erlaubt die<br />

Kommunikation auch dann, wenn einer der beteiligten Endpunkte inaktiv ist. Ähnliches<br />

gilt <strong>für</strong> die Entkopplung der Synchronisation. Insbesondere erlaubt sie Applikationen<br />

auf leistungsschwachen Geräten mit begrenzter Stromversorgung Nachrichten zu verschicken<br />

oder zu empfangen, ohne unter hohem Zeitaufwand auf andere Geräte warten<br />

zu müssen.<br />

2.3. Inhaltsbasiertes Routing<br />

In Publish-Subscribe-Systemen spielt es eine entscheidende Rolle auf welcher Gr<strong>und</strong>lage<br />

Nachrichten vom Broker weitergeleitet werden. Man spricht von inhaltsbasiertem<br />

Routing, wenn der Broker auf Gr<strong>und</strong>lage des Inhalts einer Nachricht entscheidet, wohin<br />

diese übertragen werden soll. Daneben sind vordefinierte Multicastgruppen oder Flooding<br />

weitere Möglichkeiten zur Verbreitung der Nachrichten [CS04, MUHW04].<br />

Das Datenmodell, die Adressierungsschemata <strong>und</strong> die Sprachen mit denen das<br />

Interesse (oder das Angebot) an Inhalten beschrieben werden, sind gr<strong>und</strong>legend <strong>für</strong><br />

inhaltsbasiertes Routing, denn die Ausdrucksfähigkeit des Mechanismus, mit dem Interesse<br />

beschrieben werden kann, beeinflusst unmittelbar die Flexibilität des gesamten<br />

Systems [CJ02]. Die folgenden Abschnitte geben einen Überblick zu den drei genannten<br />

Bereichen. Abschließend werden in Abschnitt 2.3.4 weitere Problemstellungen vorgestellt<br />

<strong>und</strong> einige konkrete Systeme genannt.<br />

6


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

2.3.1. Datenmodelle<br />

Es existieren unterschiedliche Datenmodelle um den Inhalt von Nachrichten zu beschreiben.<br />

Sie sind die Gr<strong>und</strong>lage, um das Interesse an Nachrichten formulieren zu können.<br />

Ein weit verbreitetes Modell ist das bei SIENA [CRW00] verwendete, das eine Nachricht<br />

als eine typenlose Menge typisierter Attribute definiert 3 . In einer leichten Abwandlung<br />

sprechen die Autoren von Mercury von Listen typisierter Attribut-Wert-Paare [BRS02].<br />

In jedem Fall sind dies die Modelle, die die wissenschaftlichen Veröffentlichungen dominieren.<br />

Sivaharan et al. nennen zusätzlich Zeichenketten, Tupel, XML-Dokumente <strong>und</strong><br />

Objekte als Datenmodell [SBC05].<br />

2.3.2. Adressierungsschemata<br />

Die Adressierung von Empfängern in Publish-Subscribe-Systemen kann auf unterschiedliche<br />

Art <strong>und</strong> Weise erfolgen. Die drei geläufigsten Ansätze arbeiten entweder<br />

• kanalbasiert,<br />

• themenbasiert oder<br />

• inhaltsbasiert.<br />

Kanalbasierte Ansätze berücksichtigen den Inhalt von Nachrichten nicht. Stattdessen<br />

werden Kommunikationskanäle über Namen identifiziert [CRW00]. Ein Subscriber<br />

abonniert den Kanal <strong>und</strong> empfängt somit sämtliche Nachrichten, die über den gewählten<br />

Kanal veröffentlicht werden. In der Implementierung lässt sich dieser Ansatz unmittelbar<br />

auf existierende Architekturen wie IP-Multicast abbilden. In Tabelle 2.1 ist ein Beispiel<br />

<strong>für</strong> eine Nachricht gegeben. In einem kanalbasierten Publish-Subscribe-System könnte<br />

sie z.B. in dem Kanal ” Börsennachrichten“ veröffentlicht werden. Es steht dem Publisher<br />

frei, welche Nachrichten er in welchem Kanal veröffentlicht.<br />

Der Mechanismus themenbasierter Adressierung ist ausdrucksstärker als kanalbasierte<br />

Adressierung [HGM04,BCM + 99,EFGK03]. Ein Publisher kennzeichnet jede Nachricht<br />

mit einem sogenannten Thema. Subscriber abonnieren Nachrichten mit einem bestimmten<br />

Thema. Stimmt das gewünschte Thema mit dem einer Nachricht überein,<br />

wird die Nachricht an den interessierten Subscriber ausgeliefert. So könnte das Beispiel<br />

(Tab. 2.1) das Thema ” Kursänderung“ haben.<br />

Am flexibelsten ist die inhaltsbasierte Adressierung [BCM + 99,HGM04]. Anstatt lediglich<br />

ein einzelnes Attribut oder Thema mit einem vorgegebenen Wert zu vergleichen,<br />

erlauben inhaltsbasierte Verfahren die Auswertung der kompletten Nachricht (z.B. aller<br />

Attribute). Erst wenn alle untersuchten Eigenschaften einer Nachricht erfüllt sind, d.h.<br />

mit dem Interesse des Subscribers übereinstimmen, wird sie an diesen weitergeleitet. Eine<br />

3<br />

” untyped set of typed attributes“ [CRW00]<br />

7


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

Ausnahme bildet das System A-ToPSS [CJ02], welches auch teilweise Übereinstimmungen<br />

(n aus m ; n < m) zulässt. Zusammenfassend lässt sich sagen, dass die kanalbasierte<br />

<strong>und</strong> insbesondere die themenbasierte Adressierung Spezialfälle der inhaltsbasierten Verfahren<br />

sind [HGM04,CRW00]. Das Beispiel aus Tabelle 2.1 würde die folgende komplexe<br />

Bedingung erfüllen:<br />

Unternehmen = ’Friendface’ UND Preis > 21,60 UND<br />

(Handelsplatz = ’Hannover’ ODER Handelsplatz = ’Stuttgart’)<br />

Neben den genannten Ansätzen schlagen Eugster et al. ein typbasiertes Verfahren vor,<br />

welches eine engere Integration von Middleware <strong>und</strong> Sprache (siehe Abschnitt 2.3.3)<br />

sowie Typsicherheit ermöglichen soll [EFGK03].<br />

2.3.3. Sprachen<br />

Attribut Wert<br />

Unternehmen Friendface<br />

Wertpapier AKTIEFF<br />

Datum 2009-07-27<br />

Uhrzeit 14:06 CEST<br />

Preis 21,64 e<br />

Handelsplatz Hannover<br />

Tabelle 2.1.: Eine Beispielnachricht in einem Publish-Subscribe-System.<br />

Die Ausdrucksfähigkeit eines inhaltsbasierten Publish-Subscribe-Systems hängt von der<br />

Sprache ab, die genutzt wird, um Interesse – d.h. Abonnements – zu beschreiben. Gängig<br />

ist die Formulierung als Zeichenkette wobei neben proprietären Sprachen auch SQL oder<br />

XPath zur Anwendung kommen können [HBS + 02, TRP + 04, EFGK03]. Letzteres ist die<br />

naheliegende Wahl, wenn Nachrichten in XML kodiert werden. Allgemein sind boolesche<br />

Ausdrücke vorherrschend. Sie verknüpfen Vergleiche von Attributwerten <strong>und</strong> Konstanten<br />

miteinander. Unterschiedliche Vergleichsoperatoren wie =,�=, usw. kommen dabei<br />

zum Einsatz, soweit sie auf den Datentypen der Attribute definiert sind [CRW00,SA97,<br />

EFGK03].<br />

2.3.4. Weitere Problemstellungen<br />

In der Literatur werden spezielle Problemfragen von inhaltsbasiertem Routing diskutiert.<br />

Häufig finden die Ergebnisse Eingang in Routingalgorithmen oder Prototypen. Eines der<br />

Probleme ist die effiziente Auswertung von Prädikaten, d.h. der Vergleich von Nachrichten<br />

mit den Interessen der Kommunikationspartner. So wurden Überdeckungsrelationen<br />

vorgeschlagen, um die Anzahl <strong>und</strong> Komplexität von Prädikaten zu reduzieren [CRW04].<br />

8


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

Suchbäume sollen die Zahl der Vergleiche auf das <strong>für</strong> das Weiterleiten von Nachrichten<br />

nötige Minimum reduzieren [BCM + 99].<br />

Über das Wann <strong>und</strong> Wo der Auswertung von Prädikaten gibt es unterschiedliche Meinungen.<br />

Das System Kyra [CS04] unterteilt den Raum möglicher Nachrichten <strong>und</strong> strukturiert<br />

zusätzlich das Netzwerk der Broker in Cliquen, die in Bäumen organisiert sind,<br />

um die Vergleiche auf nahegelegenen <strong>und</strong> (pro Nachricht) weniger Knoten durchführen<br />

zu müssen.<br />

Vor dem Hintergr<strong>und</strong> der Multicast-Eigenschaft von Publish/Subscribe muss man das<br />

Argument aus [CRW00] sehen, wonach Prädikate möglichst früh, d.h. wenige Stationen<br />

vom Publisher entfernt auszuwerten sind, Verzweigungen, d.h. Kopien von Nachrichten,<br />

möglichst spät, also nahe an den Subscribern durchgeführt werden sollen. Beides soll<br />

die Belastung des Netzwerks minimieren. Konsequenterweise sollten Nachrichten <strong>für</strong> die<br />

momentan kein Interesse besteht, überhaupt nicht versendet werden. Diese Optimierung<br />

ist unter dem Begriff source quenching bereits seit längerem bekannt [SA97].<br />

Die Anonymität der Kommunikationspartner <strong>und</strong> das Multicasting in inhaltsbasierten<br />

Publish-Subscribe-Systemen erschweren die verlustfreie Ende-zu-Ende-Übermittlung<br />

von Nachrichten, was in vielen Anwendungen eine wichtige Anforderung an die Dienstgüte<br />

ist. Mit Gryphon wurde eine komplexe Lösung vorgestellt, die auf Zeitschlitzen<br />

basiert [BSB + 02] <strong>und</strong> die Nachrichtenübermittlung absichert.<br />

Mobile Geräte <strong>und</strong> insbesondere MANETs 4 stellen besondere Anforderungen. Huang <strong>und</strong><br />

Garcia-Molina beschreiben in [HGM04] Szenarien wie inhaltsbasiertes Publish-Subscribe<br />

<strong>für</strong> mobile <strong>und</strong> Ad-Hoc-Umgebungen erweitert werden kann. Sie untersuchen den Einsatz<br />

von zentralen, verteilten <strong>und</strong> replizierten Brokern. Zusätzlich untersuchen sie weitere<br />

allgemeine Fragen des mobilen Publish/Subscribe.<br />

Mit zwei unterschiedlichen Vorstellungen von Mobilität beschäftigt sich [FGKZ03]. Fiege<br />

et al. unterscheiden die transparente Mobilität von Anwendungen, aber auch Mobilität<br />

<strong>und</strong> Ortsbezug als Anwendungskontext. In ihrem Ansatz setzen sie auf Stellvertreter von<br />

Subscribern, die Nachrichten empfangen, während der echte Subscriber keine Verbindung<br />

zum Netz hat. GREEN <strong>und</strong> STEAM befassen sich ebenfalls mit dem mobilen Umfeld<br />

[SBC05,MC02]. Sie sehen Anwendungen insbesondere im Verkehrsbereich <strong>und</strong> VANETs 5<br />

<strong>und</strong> erweitern Publish/Subscribe <strong>für</strong> ihre Beispielanwendungen um räumliche Nähe als<br />

weitere Filterdimension.<br />

2.4. Publish/Process/Subscribe<br />

Um die volle Leistungsfähigkeit einer intelligenten Umgebung auszuschöpfen, müssen<br />

alle vorhandenen Geräte miteinander kommunizieren. Wie bereits erläutert wurde (siehe<br />

S. 1), sind intelligente Umgebungen sehr heterogen. Ziel des in [Ris08] vorgestellten<br />

4 Mobile ad hoc networks; siehe [Per01].<br />

5 Vehicular ad hoc networks; siehe [MSJ09].<br />

9


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

Publish/Process/Subscribe (PPS) ist es, den Geräten zu ermöglichen, unabhängig von<br />

ihrer Kommunikationstechnologie Daten auszutauschen. Existierende Ansätze sind ungenügend<br />

<strong>und</strong> müssen von zentralen Komponenten <strong>und</strong> dem Bedarf manueller Konfiguration<br />

befreit werden [Ris08]. Um maximale Flexibilität zu erreichen, setzt das Konzept<br />

von PPS auf Publish/Subscribe auf (siehe Abschnitte 2.1 <strong>und</strong> 2.2). Dabei macht es<br />

sich dessen Vorzüge der räumlichen <strong>und</strong> zeitlichen Entkoppelung zunutze. Ergänzt wird<br />

die Architektur aus Publisher, Subscriber <strong>und</strong> Broker um Prozesse, die Daten verarbeiten<br />

können (Prozessoren). Diese Prozesse können (Sensor-)Daten auswerten <strong>und</strong> Geräte<br />

steuern oder sie unterstützen andere Geräte beim Datenaustausch durch die transparente<br />

Wandlung von Daten in unterschiedlichen Formaten [Ris09a]. Ohne derartige Prozessoren<br />

werden Daten mit klassischem Publish/Subscribe lediglich verteilt.<br />

Das Konzept von PPS, welches explizit auf die Anwendung in intelligenten Umgebungen<br />

zugeschnitten ist, sieht <strong>für</strong> jeden Knoten eine bestimmte Struktur aus unterschiedlichen<br />

Komponenten vor (siehe Grafik 2.1). Im heterogenen Netz verfügt jeder (physische)<br />

Knoten über einen eigenen Broker (lokaler Broker), der die Kommunikation mit benachbarten<br />

Knoten bzw. deren Brokern übernimmt. Anwendungen, die auf dem Knoten<br />

aktiv sind, werden in die drei Kategorien Quelle, Senke <strong>und</strong> Prozessor unterteilt. Jede<br />

Anwendung ist mit dem lokalen Broker ihres Knotens über eine definierte Schittstelle<br />

verb<strong>und</strong>en. Die Existenz von Brokern auf jedem Knoten wird damit begründet, dass auf<br />

diesem Wege lokales Wissen über den Knoten <strong>und</strong> seine unmittelbaren Nachbarn <strong>für</strong> den<br />

Betrieb genügt. Eine globale Sicht <strong>und</strong> damit die Kenntnis aller Knoten im Netzwerk<br />

ist nicht erforderlich. Wegen der Heterogenität der Umgebung wäre sie unzweckmäßig.<br />

Für ein Smartphone, welches per Bluetooth mit dem Netzwerk verb<strong>und</strong>en ist, ist die<br />

Information, dass es in einem anderen Bereich des Netzes zwei per Ethernet verb<strong>und</strong>ene<br />

Knoten gibt, nutzlos. Das Smartphone kann nicht direkt mit den Knoten kommunizieren.<br />

Häufige Topologieänderungen wie sie im Einsatzumfeld von PPS zu erwarten sind,<br />

treiben zudem die Kosten <strong>für</strong> das Vorhalten einer konsistenten <strong>und</strong> aktuellen Sicht auf<br />

das gesamte Netz in die Höhe. Informationen über die Topologie müssten nach jeder<br />

Änderung an jeden Knoten im Netz verteilt werden, was das Netzwerk belasten würde.<br />

Eine weitere Komponente ist der sog. Network Abstraction Layer (NAL), die Netzwerkabstraktionsschicht.<br />

Sie verbirgt die Eigenheiten einer konkreten Kommunikationstechnik<br />

vor den darüberliegenden Schichten, also insbesondere vor dem Broker.<br />

Die Interaktion der Broker <strong>und</strong> Anwendungen untereinander ist ein Routingproblem<br />

[Ris08]. Nachrichten müssen von den Quellen, durch das Netzwerk aus Brokern hindurch,<br />

zu den Senken transportiert werden. Auf dem Weg kann es erforderlich sein, dass ein oder<br />

mehrere Prozessoren die Daten verarbeiten. Es können mehrere Wege von der Quelle zur<br />

Senke existieren. Die Komplexität wird dabei durch die Einbeziehung der Prozessoren<br />

erhöht. Um ein Datum d nach d ′ abzubilden, können unterschiedliche Verknüpfungen<br />

von Funktionen existieren, die sich in der Reihenfolge <strong>und</strong> Anzahl der Einzeloperationen<br />

<strong>und</strong> damit den beteiligten Prozessoren unterscheiden. Es müssen also Wege durch ein<br />

Netzwerk gef<strong>und</strong>en werden, die möglichst kostengünstig sind. In [Ris08] werden drei<br />

Strategien <strong>für</strong> das Routing vorgestellt, von denen ein auf Flooding basierender Ansatz<br />

10


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

Nachbarn<br />

Quelle<br />

Quelle<br />

Prozessor<br />

Prozessor<br />

Anwendungss.<br />

Broker<br />

NAL<br />

Senke<br />

Senke<br />

Abbildung 2.1.: Die Komponenten von PPS auf einem Knoten: Anwendungen (Quelle,<br />

Prozessor, Senke), die Anwendungsschnittstelle, der Broker <strong>und</strong> die Netzwerkabstraktionsschicht<br />

(NAL). NAL <strong>und</strong> Broker sammeln Informationen<br />

über Nachbarknoten. Abbildung nach [Ris08].<br />

weiter verfolgt wird <strong>und</strong> in das Konzept Announcement/Subscription/Publication (ASP)<br />

mündet. Einer der beiden weiteren Vorschläge basiert auf der Abbildung von Prozessoren<br />

auf je eine Quelle <strong>und</strong> Senke, dem anderen liegt die netzweite Verbreitung des Interesses<br />

an Publikationen zu Gr<strong>und</strong>e.<br />

2.5. Announcement/Subscription/Publication<br />

Mit Announcement/Subscription/Publication (ASP) existiert ein Konzept, dass das zuvor<br />

beschriebene PPS umsetzen möchte. Die gr<strong>und</strong>legende Architektur von ASP ist<br />

daher gleich der von PPS: In einem Netzwerk aus Knoten kommunizieren Anwendungen<br />

(Quelle, Senke oder Prozessor) untereinander per Publish/Subscribe. Auf jedem Knoten<br />

existiert dazu ein Broker mit Applikationsschnittstelle <strong>und</strong> Netzwerkabstraktionsschicht.<br />

ASP konkretisiert einige dieser Konzepte <strong>und</strong> ergänzt einen Routingalgorithmus [Ris09a].<br />

2.5.1. Interaktion<br />

Die Interaktion zwischen den Brokern <strong>und</strong> den restlichen Komponenten des ASP-Systems<br />

läuft in drei Phasen ab: Ankündigung, Abonnement <strong>und</strong> Veröffentlichung. Jede<br />

dieser Phasen wird auf einen separaten Nachrichtentyp abgebildet. Sämtliche Nachrichten<br />

tragen Identifikationsnummern. Sie werden fortan als ASP ID oder verkürzend als<br />

ID bezeichnet. Trägt eine Ankündigung zum Beispiel die ID 7e44a5e4, so tragen alle<br />

nachfolgenden Abonnements <strong>und</strong> Veröffentlichungen, die auf die Ankündigung bezug<br />

nehmen dieselbe ID. Dies entspricht der themenbasierten Adressierung (siehe Seite 7).<br />

Mit Ankündigungen (Announcement) signalisieren Quellen, dass sie Daten im Netz<br />

zur Verfügung stellen. Ankündigungen werden gr<strong>und</strong>sätzlich an alle Broker im Netzwerk<br />

11


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

verteilt. Broker erhalten auf diese Weise eine Übersicht über die verfügbaren Datenquellen<br />

<strong>und</strong> lernen den Nachbarn kennen, über den die Nachrichten bezogen werden<br />

können. Eine Ankündigung kann eine Beschreibung der Daten enthalten, die die Quelle<br />

in Zukunft unter der gegebenen ID veröffentlichen wird. Handelt es sich bei einer<br />

Quelle beispielsweise um eine Webcam, die regelmäßig Aufnahmen macht, kann eine<br />

Ankündigung Informationen wie den Standort der Kamera, Bildmaße usw. enthalten.<br />

ASP legt weder die Form noch den Inhalt von Ankündigungen fest. Die Erzeugung<br />

<strong>und</strong> Interpretation einer Ankündigung ist den Anwendungen (Quelle, Prozessor, Senke)<br />

überlassen. Erzeugt eine Quelle Nachrichten von geringem Umfang oder werden sie nur<br />

selten versendet, kann eine Ankündigung statt einer Beschreibung das komplette Datum<br />

enthalten. Ein Temperatursensor kann auf diese Weise den jüngsten Messwert mit einer<br />

Ankündigung verbreiten. Neben Quellen können auch Prozessoren den Versand von<br />

Ankündigungen auslösen. Dies geschieht als Reaktion auf Ankündigungen von anderen<br />

Quellen oder Prozessoren, wenn ein Prozessor aus den bisher empfangenen Ankündigungen<br />

A1, A2 usw. beziehungsweise den entsprechenden Veröffentlichungen P1, P2 usw.<br />

eine neue Ankündigung A ′ (bzw. P ′ ) erzeugen kann.<br />

Ein Abonnement (Subscription) wird als Reaktion auf eine Ankündigung verschickt.<br />

Bevor eine Senke ein Abonnement auslösen kann, muss sie eine Ankündigung empfangen<br />

haben. Wird eine Ankündigung eines Prozessors abonniert, abonniert dieser alle Ankündigungen,<br />

die nötig sind, um die gewünschten Veröffentlichungen erzeugen zu können<br />

(siehe Grafik 2.2).<br />

S’<br />

Proz.<br />

Broker<br />

Abbildung 2.2.: Ein Prozessor erhält ein Abonnement S ′ <strong>und</strong> versendet daraufhin Abonnements<br />

<strong>für</strong> S1, S2, S3.<br />

Neben Abonnements existieren Kündigungen. Sind ein Prozessor oder eine Senke nicht<br />

länger an den Daten einer Quelle interessiert, versendet der zuständige Broker eine<br />

Kündigung, die dieselbe ID wie die Ankündigung trägt. Spätere Veröffentlichungen mit<br />

dieser ID werden dem Prozessor oder der Senke nicht zugestellt.<br />

Die von Quellen angebotenen Daten werden in Form von Veröffentlichungen (Publication)<br />

verbreitet. Jede Veröffentlichung trägt die zur jeweiligen Ankündigung <strong>und</strong><br />

dem Abonnement gehörende ID. Liegt einem Broker kein Abonnement zu einer ID vor,<br />

versendet der Broker die von den lokalen Anwendungen erzeugten Veröffentlichungen<br />

nicht.<br />

S1<br />

S2<br />

S3<br />

12


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

2.5.2. Routing<br />

ASP sieht einen Routingalgorithmus vor, der lediglich voraussetzt, dass Knoten ihre<br />

unmittelbaren Nachbarn kennen, mit denen sie direkt kommunizieren können.<br />

Ankündigungen werden wie bereits erwähnt, an alle Broker im Netz verteilt. Um dies zu<br />

erreichen, werden Ankündigungen im Netzwerk geflutet. Eine neue Nachricht (Ankündigung)<br />

wird an alle benachbarten Broker <strong>und</strong> lokalen Prozessoren <strong>und</strong> Senken verteilt.<br />

Empfängt ein Broker bi eine Ankündigung von einem Nachbarn, speichert er, von welchem<br />

Nachbarbroker bj die Ankündigung versendet wurde. Außerdem merkt der Broker<br />

bi sich die Kosten der Nachricht. Eine Metrik akkumuliert die Kosten der Weiterleitung<br />

der Ankündigung vom erzeugenden Broker b0 bis zum empfangenden Broker bi. Anschließend<br />

reicht der Broker die Ankündigung an lokale Anwendungen <strong>und</strong> leitet die Nachricht<br />

an alle ihm bekannten Nachbarn mit Ausnahme des Absenders bj weiter. Dabei werden<br />

die Kosten der Nachricht entsprechend den Kosten der Verbindung, über die die Ankündigung<br />

weitergeleitet wird, angepasst. Broker speichern die IDs von Ankündigungen, die<br />

sie bereits weitergeleitet haben. Eine Ankündigung wird von jedem Broker nur einmal<br />

an seine Nachbarn weitergeleitet. Dadurch ist sichergestellt, dass die Weiterleitung der<br />

Nachrichten terminiert.<br />

Erhält eine Senke von ihrem Broker eine Ankündigung <strong>und</strong> ist sie an zukünftigen Veröffentlichungen,<br />

wie sie in der Ankündigung beschrieben werden, interessiert, signalisiert<br />

die Senke dies ihrem Broker. Dieser erzeugt ein Abonnement mit der ID der Ankündigung.<br />

Kann das Abonnement nicht von einer lokalen Quelle oder Prozessor bedient<br />

werden, verschickt der Broker die Nachricht an einen seiner Nachbarn. Der Broker wählt<br />

den Nachbarn, dessen Kosten laut Metrik <strong>für</strong> die gegebene ID minimal sind. Abonnements<br />

gelangen schrittweise zum Broker, der die ursprüngliche Ankündigung versandt<br />

hat. Empfängt ein Broker ein Abonnement, nimmt er den sendenden Nachbarn mit der<br />

ID <strong>und</strong> den Kosten in eine Tabelle sogenannter aktiver Pfade auf. Das Abonnement wird<br />

wie zuvor an den Nachbarn mit der günstigsten Ankündigung weitergeleitet. Stammt die<br />

günstigste Ankündigung A ′ von einem lokalen Prozessor, wird die Nachricht an diesen<br />

weitergegeben. Für alle Ankündigungen A1 bis An (n ≥ 1), die der Prozessor verarbeiten<br />

muss, um A ′ erzeugen zu können, werden Abonnements verschickt. Erreicht ein Abonnement<br />

die Quelle der Ankündigung, wird die Nachricht nicht weitergeleitet. Der Broker<br />

merkt sich von welchem Nachbarn das Abonnement gesendet wurde. Kündigungen werden<br />

auf dieselbe Weise weitergeleitet wie Abonnements.<br />

Veröffentlicht eine Quelle Daten, erzeugt der Broker eine Veröffentlichung <strong>und</strong> sendet sie<br />

an alle Nachbarn, die Teil eines aktiven Pfades <strong>für</strong> die gegebene ID sind. Beim Empfang<br />

einer Veröffentlichung reicht ein Broker die Daten an lokale Anwendungen (Prozessor<br />

oder Senke), falls diese die ID der Veröffentlichung abonniert haben. Danach wird die Veröffentlichung<br />

an alle Nachbarn weitergeleitet, von denen Abonnements der ID vorliegen.<br />

Damit die Zahl der von einem Broker gespeicherten aktiven Pfade <strong>und</strong> weitergeleiteten<br />

Ankündigungen nicht beliebig zunimmt, wird jede Ankündigung bei ihrer Erzeugung<br />

mit einer Gültigkeitsdauer versehen. Ist die Gültigkeit einer Ankündigung abgelaufen,<br />

13


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

werden alle damit verb<strong>und</strong>enen aktiven Pfade ungültig. Veröffentlichungen werden dann<br />

von den Brokern entlang dieser Pfade nicht mehr weitergeleitet. Ein ungültiger Pfad<br />

<strong>und</strong> die zugr<strong>und</strong>e liegende Ankündigung werden von Brokern gestrichen. Quellen <strong>und</strong><br />

Prozessoren bzw. deren Broker verlängern Ankündigungen vor Ablauf ihrer Gültigkeit.<br />

Um eine eventuell aufgetretene Verdopplung einer Ankündigung von einer Verlängerung<br />

derselben unterscheiden zu können, tragen Ankündigungen Sequenznummern.<br />

Ein weiterer Nachrichtentyp wird verwendet, wenn es bei der Weiterleitung von Veröffentlichungen<br />

entlang eines aktiven Pfades zu Ausfällen von Knoten oder Verbindungen<br />

kommt. Erkennt ein Broker ein solches Problem wird eine Störungsmeldung ( ” broken<br />

path“, siehe [Ris09a]) erzeugt. Die Meldung trägt die ID der Ankündigung, die dem<br />

gestörten aktiven Pfad vorausging <strong>und</strong> wird nach demselben Verfahren wie Abonnements<br />

zur Quelle einer Ankündigung weitergeleitet. Dort erzeugt der betreffende Broker<br />

eine neue Ankündigung, die im Netzwerk geflutet wird. Interessierte Senken oder Prozessoren<br />

reagieren darauf mit einem erneuten Abonnement, wodurch die aktiven Pfade<br />

wiederaufgebaut werden.<br />

Tabelle 2.2 fasst die unterschiedlichen Nachrichtentypen <strong>und</strong> ihre Funktionen zusammen.<br />

Nachrichtentyp Kurzbeschreibung<br />

Ankündigung Information über die Verfügbarkeit von Daten,<br />

Routenfindung<br />

Abonnement Ausdruck von Interesse, Aufbau aktiver Pfade<br />

Kündigung Abbau aktiver Pfade<br />

Störungsmeldung Reparatur kaputter, aktiver Pfade<br />

Veröffentlichung Transport von Daten zwischen Quelle, Prozessor<br />

<strong>und</strong> Senke<br />

Tabelle 2.2.: Eine Übersicht der Nachrichtentypen von ASP.<br />

2.5.3. Anwendungsschnittstelle<br />

Die Anwendungsschnittstelle dient dem Datenaustausch zwischen Quelle, Senke oder<br />

Prozessor auf der einen <strong>und</strong> dem Broker auf der anderen Seite. In [Ris09a] wird sie umrissen.<br />

Demnach müssen sich Anwendungen zunächst beim lokalen Broker registrieren.<br />

Dadurch werden der Versand <strong>und</strong> Empfang von Daten ermöglicht. Für Senken <strong>und</strong> Prozessoren<br />

– die einzigen möglichen Empfänger von Nachrichten – ist vorgesehen, dass sie<br />

bei der Registrierung einen Filter angeben. Ein Filter schränkt die Menge der Ankündigungen,<br />

die vom Broker an die jeweilige Anwendung weitergereicht werden, ein. So<br />

erhält die Anwendung nur Ankündigungen, die den Filter passieren. Ohne Filter werden<br />

alle gültigen Ankündigungen zugestellt, die den Broker erreichen.<br />

Für die Schnittstelle zwischen Prozessoren <strong>und</strong> Broker ist vorgesehen, dass ein Prozessor<br />

Angaben über die Kosten der Datenverarbeitung macht. Der Broker bestimmt daraus<br />

die Gesamtkosten.<br />

14


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

2.5.4. Netzwerkabstraktionsschicht<br />

Zu den Aufgaben der Netzwerkabstraktionsschicht (NAL) gehört das Erkennen <strong>und</strong> Verwalten<br />

von Nachbarknoten. Nachrichten soll der NAL bei der Übertragung zwischen<br />

Nachbarn vor Verlust schützen. Außerdem sammelt die Schicht Informationen über Verbindungen,<br />

um die Metrik zu berechnen, die die Weiterleitung von Nachrichten steuert.<br />

Existiert ein NAL <strong>für</strong> die darunterliegende Sicherungsschicht ( ” [data] link layer“),<br />

spielt es keine Rolle, ob das Gerät über Bluetooth-, ZigBee- oder IEEE 802.11b WLAN-<br />

Schnittstellen verfügt. Dabei muss der NAL nicht notwendigerweise von diesem Niveau<br />

abstrahieren, sondern kann z.B auch auf UDP/IP aufsetzen.<br />

2.5.5. Übertragungskategorien<br />

Die Art der Nachrichten (Veröffentlichungen) <strong>und</strong> damit der Daten, die in einem ASP-<br />

Netzwerk verteilt werden, kann von Anwendung zu Anwendung stark variieren. Eine<br />

Unterteilung aller denkbaren Übertragungen in vier Kategorien wird daher in [Ris09a]<br />

vorgenommen. Die Einteilung in die Kategorien erfolgt anhand der Nachrichtengröße<br />

bzw. der Häufigkeit von Veröffentlichungen. Daraus ergeben sich folgende Kategorien:<br />

Kategorie Nachrichtengröße Häufigkeit<br />

1 klein Einzelnachrichten<br />

2 klein Nachrichtenstrom<br />

3 groß Einzelnachrichten<br />

4 groß Nachrichtenstrom<br />

Tabelle 2.3.: Einteilung der Übertragungen in Kategorien nach [Ris09a].<br />

Die Einteilung wird vorgenommen um unterschiedliche Optimierungen bei der Verteilung<br />

der Nachrichten anwenden zu können. So wird unter anderem vorgeschlagen, kleine,<br />

selten versendete Nachrichten (Kategorie 1) im gesamten Netzwerk zu fluten.<br />

Große Nachrichten (Kategorien 3 <strong>und</strong> 4), insbesondere Veröffentlichungen, sind größer<br />

als einzelne Nachrichten auf der Sicherungsschicht 6 des Netzwerks sein können. ASP<br />

sieht daher einen Mechanismus zur Fragmentierung von Veröffentlichungen in mehrere<br />

Nachrichten vor.<br />

2.6. Andere Publish-Subscribe-Middleware<br />

Es gibt Middleware, die Publish/Subscribe in heterogenen Netzen oder intelligenten Umgebungen<br />

umsetzt. Erwähnenswert sind STEAM, GREEN, Rebeca <strong>und</strong> M<strong>und</strong>oCore. Im<br />

Fokus von STEAM [MC02] stehen MANETs nach IEEE 802.11. Die Autoren verwenden<br />

6 OSI-Layer 2. OSI-Referenzmodell siehe [Tan03, S. 37 ff.]<br />

15


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

als Pub-Sub-Terminologie Produzent, Konsument <strong>und</strong> Ereignis. Als größte Schwierigkeit<br />

in Ad-Hoc-Umgebungen sehen sie das Fehlen systemweiter Dienste, weshalb existierende<br />

Kommunikations-Middleware wie CORBA ungeeignet sei. Als Einsatzbereich ihrer<br />

Technik beschreiben sie Verkehrsanwendungen. Aus diesem Gr<strong>und</strong> integrieren sie das<br />

Konzept der räumlichen Nähe in die Verbreitung von Nachrichten.<br />

Die Fähigkeit, die Middleware schnell an andere Umgebungen anzupassen <strong>und</strong> somit<br />

schnell zwischen infrastrukturbasiertem <strong>und</strong> Ad-Hoc-Funk wechseln zu können, sind<br />

die herausragenden Eigenschaften von GREEN [SBC05]. Der modulare Aufbau <strong>und</strong> die<br />

Möglichkeit der Rekonfiguration zur Laufzeit erlauben GREEN die Verwendung themen<strong>und</strong><br />

inhaltsbasierter Publish-Subscribe-Adressierung. Darüber hinaus werden Ereignisse<br />

im Netz je nach Konfiguration über Multicast-Overlay-Netze oder strukturierte Overlay-<br />

Netze transportiert. Die Middleware kann bei Bedarf <strong>für</strong> bestimmte Dienstgütemerkmale<br />

konfiguriert werden. Als Beispiel nennen die Autoren die Zustellung von Nachrichten innerhalb<br />

festgelegter zeitlicher Fristen.<br />

Die Publish-Subscribe-Middleware Rebeca wurde erweitert, um Mobilität von Clients<br />

(Publisher oder Subscriber) zu ermöglichen [FGKZ03]. Die Autoren unterscheiden dabei<br />

zwei Formen von Mobilität: Physische <strong>und</strong> logische Mobilität. Darunter verstehen sie<br />

Standortänderungen von Clients auf der einen Seite <strong>und</strong> die Änderung der Position als<br />

Anwendungskontext auf der anderen Seite. Sie schlagen Verfahren vor, wie beide Arten<br />

der Mobilität in die bestehende Publish-Subscribe-Middleware integriert werden können.<br />

Der Umgang mit der physischen Mobilität basiert auf einem virtuellen Subscriber, an<br />

den Nachrichten ausgeliefert werden, während sich der reale Subscriber (vom Netzwerk<br />

getrennt) bewegt [ZF03]. Wenn der Subscriber wieder Anschluss an das Netz findet,<br />

werden zwischenzeitlich veröffentlichte Nachrichten zugestellt.<br />

Aitenbichler et al. haben mit M<strong>und</strong>oCore ein umfangreiches Middleware- <strong>und</strong> Programmier-Framework<br />

<strong>für</strong> den Einsatz in intelligenten Umgebungen entwickelt [AKM07]. Es<br />

bietet kanalbasiertes <strong>und</strong> inhaltsbasiertes Publish/Subscribe. In der Transportschicht 7<br />

werden IP, serielle Bluetoothverbindungen <strong>und</strong> Infrarotverbindungen unterstützt. Die<br />

modularen Protokollstapel erlauben den Einsatz unterschiedlicher Routingstrategien wie<br />

hierarchisches Routing <strong>und</strong> strukturierte Overlay-Netze. M<strong>und</strong>oCore ist u.a. <strong>für</strong> die Java-<br />

Plattformen J2SE 8 <strong>und</strong> J2ME/CLDC 9 verfügbar <strong>und</strong> unterstützt damit eine Vielzahl<br />

von Endgeräten.<br />

2.7. Routingmetriken<br />

Wie in Abschnitt 2.4 beschrieben, handelt es sich bei der Kommunikation von Brokern<br />

<strong>und</strong> den an sie angeb<strong>und</strong>enen Anwendungen um ein Routingproblem. Das Netzwerk in<br />

dem geroutet werden soll, wird an dieser Stelle als gerichteter Graph G abstrahiert, wobei<br />

7<br />

” transport layer“ [AKM07]. Gemeint ist die Transportschicht von M<strong>und</strong>oCore, nicht OSI-Layer 4.<br />

8<br />

Java 2 Standard Edition. Siehe [Ull07].<br />

9<br />

Java 2 Micro Edition / Connected Limited Device Configuration. Siehe [Sun03].<br />

16


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

G = (V, E). Die Rolle einer Routingmetrik ist es, die Kanten des Graphen (E) zu gewichten.<br />

Im Allgemeinen handelt es sich um eine Funktion d : E → R+. Existieren zwischen<br />

zwei Knoten im Graph unterschiedliche Pfade (Bogenzüge), so wählt ein Routingprotokoll<br />

den Pfad mit dem minimalen Gewicht. Das Gewicht eines Pfades ergibt sich dabei<br />

aus der Summe der Gewichte seiner Kanten. Es existieren unterschiedliche Metriken, die<br />

sich darin unterscheiden, wie gut sie an die Bedürfnisse einer bestimmten Netzwerkinfrastruktur<br />

angepasst sind. Außerdem sind die Berechnungen zur Gewichtung einzelner<br />

Kanten unterschiedlich aufwändig <strong>und</strong> erfordern jeweils anderes Wissen über den Zustand<br />

einzelner Verbindungen oder des gesamten Netzes. In den letzten Jahren wurden<br />

unterschiedliche Routingmetriken entwickelt, die zunehmend besser an die spezifischen<br />

Eigenschaften von drahtlosen Netzwerken angepasst sein sollen. Die Metriken wurden<br />

mit dem Ziel entwickelt, vor allem den Durchsatz im Netzwerk zu erhöhen. Im folgenden<br />

werden die Metriken Hop Count, ETX, ETT, WCETT <strong>und</strong> MIC überblicksartig vorgestellt.<br />

Die Entwickler der Metriken sind davon ausgegangen, dass die Funknetze statisch<br />

sind, d.h. dass die teilnehmenden Knoten nicht mobil sind. Abschließend fasst Tabelle<br />

2.4 die Eigenschaften der betrachteten Metriken vergleichend zusammen.<br />

2.7.1. Hop Count<br />

Eine weit verbreitete Metrik trägt die Bezeichnung Hop Count. Der Begriff bezieht sich<br />

auf die Anzahl der Verbindungen, über die eine Nachricht übertragen werden muss, damit<br />

sie von einem Knoten zu einem anderen gelangt. Die Zahl ist äquivalent zur Anzahl<br />

der Kanten, die ein Pfad zwischen zwei unterschiedlichen Knoten enthält. Es ergibt sich<br />

dhopcount(e) = 1 mit e ∈ E. Die Metrik wird oft verwendet, weil bei ihrer Verwendung das<br />

Netzwerk dazu tendiert, die Übertragungsverzögerung <strong>und</strong> die beanspruchte Bandbreite<br />

zu minimieren [Tan03, S. 351]. OLSR (Optimized Link State Routing Protocol) ist ein<br />

Routingprotokoll, welches die Hop-Count-Metrik verwendet [CJ03]. Auch RIPv1 (Routing<br />

Information Protocol), RIPv2 <strong>und</strong> RIPng verwenden Hop Count [MR07, S. 162].<br />

2.7.2. ETX<br />

Ein Nachteil der Hop-Count-Metrik ist, dass keinerlei Informationen über die Verbindungsqualität<br />

in die Gewichtung von Kanten eingehen. Dies ist insbesondere in Funknetzen<br />

eine Schwäche des Ansatzes. Während die kabelgeb<strong>und</strong>ene Übertragung z.B. im<br />

Ethernet oder entlang von Lichtwellenleitern stabil ist, wird die Übertragung per Funk<br />

von vielen Faktoren beeinträchtigt. Dazu gehören Interferenzen <strong>und</strong> Rauschen, die unter<br />

anderem auftreten, wenn mehrere Technologien zeitgleich im selben Band funken wie z.B.<br />

WLAN nach IEEE 802.11g <strong>und</strong> Bluetooth [Lüd07]. So kann es vorkommen, dass Daten<br />

beim Empfänger nicht empfangen werden oder nicht dekodiert werden können. In solchen<br />

Fällen muss die Übertragung wiederholt werden. An dieser Stelle setzt die Expected<br />

Transmission Count Metric (ETX) an [DABM05]. Für jede Verbindung zwischen zwei<br />

Stationen wird ermittelt, wie oft ein Datenpaket voraussichtlich versendet werden muss,<br />

17


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

bis es erfolgreich empfangen werden kann. Dadurch berücksichtigt die Metrik Störungen<br />

auf dem Übertragungskanal. Ein stark gestörter Kanal, der eine hohe Paketverlustrate<br />

aufweist, wird schlechter bewertet als eine Verbindung, deren Verlustrate nahe 0 % liegt.<br />

Konkret bedeutet dies [DABM05]:<br />

ETX = 1<br />

df · dr<br />

(2.1)<br />

Dabei ergeben sich df <strong>und</strong> dr aus der relativen Häufigkeit, dass ein versandtes Paket<br />

beim Empfänger eintrifft (forward) bzw. dass der Absender eine Bestätigung über den<br />

Erhalt eines Pakets empfängt (reverse). Die konkreten Werte werden über regelmäßig<br />

ausgesandte Testpakete gemessen. Die Summe der Kosten der einzelnen Verbindungen<br />

entlang eines Pfades ergeben dessen Kosten.<br />

In [DABM05] präsentieren die Entwickler des Verfahrens die Ergebnisse einer experimentellen<br />

Evaluation. ETX erzielt dabei einen höheren Durchsatz als die Hop-Count-<br />

Metrik. Der Hauptgr<strong>und</strong> ist, dass ETX es ermöglicht, längere Pfade zu nutzen, die im<br />

Gegenzug allerdings stabiler sind <strong>und</strong> damit einen höheren Durchsatz erreichen können.<br />

Bei Hop Count werden Verbindungen mit einer hohen Reichweite bevorzugt, die aufgr<strong>und</strong><br />

der hohen Entfernung jedoch häufiger höhere Verlustraten aufweisen als Verbindungen<br />

über kürzere Strecken [DABM05]. Der Einfluss dieses Effektes steigt, wenn man<br />

berücksichtigt, dass drahtlose Netzwerke nach IEEE 802.11abg mit unterschiedlichen Datenraten<br />

arbeiten können, aber nur bei den geringsten Datenraten die höchsten Reichweiten<br />

erzielen [AHR06]. Ein Routingprotokoll, welches ETX nutzt, ist Link-Quality<br />

Source Routing (LQSR) [DPZ04].<br />

2.7.3. ETT<br />

Die Metrik Expected Transmission Time (ETT) erweitert den Ansatz von ETX, indem es<br />

neben der Verlustrate auch die Bandbreite von Verbindungen in die Bewertung einbezieht<br />

[DPZ04]. Angenommen, es existieren zwischen den zwei Knoten A <strong>und</strong> D zwei Pfade<br />

(siehe Abb. 2.3). Die Verbindungen entlang eines der Pfade funken mit je 54 MBit/s<br />

Bruttodatenrate, der Pfad über den Knoten C nur mit 11 MBit/s. Die Verbindung über<br />

Knoten C ist jedoch stabiler: Jede der beiden Kanten hat ein Gewicht von nur 1,1 (ETX-<br />

Metrik), während die Verbindungen über Knoten B den Wert 1,2 haben, also geringfügig<br />

unzuverlässiger sind. In einem solchen Fall würde ETX stets den Pfad über Knoten C<br />

bevorzugen, auch wenn der Pfad über Knoten B einen höheren Durchsatz verspricht.<br />

ETT bezieht die Bandbreite einer Verbindung ein, <strong>und</strong> das Gewicht einer Kante berechnet<br />

sich wie folgt:<br />

ETT = ETX S<br />

(2.2)<br />

B<br />

S ist die Paketgröße, B repräsentiert die Bandbreite der Verbindung. Die Bandbreite<br />

ist entweder konstant, d.h. fest eingestellt wie bei den Experimenten in [DABM05] oder<br />

sie muss anderweitig ermittelt werden. Die Information über die aktuelle Bandbreite<br />

18


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

A<br />

1,2<br />

B<br />

1,1 1,1<br />

C<br />

54 MBit/s<br />

11 MBit/s<br />

Abbildung 2.3.: Vier Verbindungen unterschiedlicher Datenrate werden mit ETX gewichtet<br />

(Kantenbeschriftung).<br />

liegt zwar im Netzwerkadapter vor, über die Treiber der Hardware ist sie jedoch nicht<br />

immer zugänglich. Draves et al. schlagen eine Methode vor um die Bandbreite zu messen<br />

[DPZ04]. Zwei Pakete, ein kleines <strong>und</strong> ein großes, werden unmittelbar nacheinander<br />

versendet. Der Empfänger misst die Zeit zwischen dem Empfang des ersten <strong>und</strong> des zweiten<br />

Paketes <strong>und</strong> informiert den Sender, der aus mehreren dieser Messungen die Bandbreite<br />

der Verbindung berechnet. ETT wurde laut Campista et al. <strong>für</strong> OLSR <strong>und</strong> AODV-ST<br />

(Ad hoc On-demand Distance Vector Spanning Tree) implementiert [CEM + 08].<br />

2.7.4. WCETT<br />

Zwei weitere Effekte, die sog. Intra-Flow-Interferenz <strong>und</strong> die Inter-Flow-Interferenz, welche<br />

spezifisch <strong>für</strong> Funknetzwerke sind, werden von den bisher besprochenen Metriken<br />

nur unzureichend oder gar nicht berücksichtigt [YWK05]. Beiden Effekten liegt die Eigenschaft<br />

zugr<strong>und</strong>e, dass ein Funkkanal ein geteiltes Medium ist. Zu jedem beliebigen<br />

Zeitpunkt kann immer nur ein Sender aktiv sein <strong>und</strong> das Medium belegen. Die Intra-<br />

Flow-Interferenz bezeichnet dabei die Störungen, die Stationen (Knoten) entlang eines<br />

Pfades untereinander verursachen. Die Inter-Flow-Interferenz (Abb. 2.4) tritt zwischen<br />

Stationen unterschiedlicher Pfade auf. Beide Effekte vermindern den erzielbaren Durchsatz.<br />

Verfügen die Knoten über mehrere Funkadapter, die es ihnen ermöglichen auf unterschiedlichen<br />

Kanälen oder in unterschiedlichen Bändern zu funken, kann die negative<br />

Wirkung beider Effekte verringert werden. Die Weighted Cumulative ETT (WCETT),<br />

vorgeschlagen von Draves et al. [DPZ04], bewertet solche Routen besser, die Intra-Flow-<br />

Interferenz durch die Nutzung unterschiedlicher Kanäle auf einzelnen Teilstrecken entlang<br />

eines Pfades vermeiden. Dies stellt einen Unterschied zu den bisher beschriebenen<br />

Metriken dar: ETX bzw. ETT registrieren, wenn die Verlustrate durch eine der beiden<br />

1,2<br />

D<br />

19


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

A<br />

E<br />

B<br />

C<br />

F<br />

Abbildung 2.4.: Inter-Flow-Interferenz: Laufen parallel Übertragungen zwischen A-C-D<br />

<strong>und</strong> E-F-G, stören sich die Signale der Knoten C <strong>und</strong> F. Die Route A-<br />

B-D wäre die bessere Wahl <strong>für</strong> den ersten Datenfluss. Grafik angelehnt<br />

an [YWK05].<br />

Interferenzen steigt. Sie bevorzugen jedoch keine Pfade, die eine erhöhte Verlustrate<br />

durch geeignete Kanalwahl vermeiden.<br />

Einzelne Kanten können nicht sinnvoll durch WCETT gewichtet werden. Es muss immer<br />

der gesamte Pfad bewertet werden, wozu die folgende Formel dient [DPZ04]:<br />

WCETT = (1 − β) ·<br />

n�<br />

i=1<br />

D<br />

G<br />

ETTi + β · max<br />

1≤j≤k Xj<br />

(2.3)<br />

Die Variable i bezeichnet die Nummer der Kante eines gegebenen Pfades bestehend aus<br />

n Kanten, auf dem k unterschiedliche Kanäle genutzt werden. Xj ist die Summe der<br />

zu erwartenden Übertragungsdauer ETT entlang derjenigen Kanten, die auf Kanal j<br />

funken. Der Faktor β gewichtet die beiden Summanden gegeneinander. Die WCETT-<br />

Metrik wurde <strong>für</strong> das Protokoll MR-LQSR 10 umgesetzt <strong>und</strong> Experimente mit Knoten,<br />

die durchgängig über zwei Funkadapter (nach 802.11g <strong>und</strong> 802.11a) verfügten, ergaben<br />

eine Steigerung des durchschnittlichen Durchsatzes von über 80 % gegenüber ETX<br />

<strong>und</strong> über 250 % gegenüber Hop Count [DPZ04]. Während der Messungen war immer<br />

nur eine Übertragung aktiv. Inter-Flow-Interferenz konnte nicht auftreten. Die Metrik<br />

berücksichtigt sie auch nicht.<br />

2.7.5. MIC<br />

Yang et al. stellen die Metric of Interference and Channel-switching (MIC) vor, die<br />

die Kanalqualität, Bandbreite, Intra- <strong>und</strong> Inter-Flow-Interferenz von Verbindungen <strong>und</strong><br />

10 Multi-Radio Link-Quality Source Routing<br />

20


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

Netzen berücksichtigt [YWK05]. Für Pfade berechnet sie sich nach der Formel:<br />

MIC(p) =<br />

1<br />

N · min (ETT)<br />

�<br />

link l∈p<br />

IRUl + �<br />

node i∈p<br />

CSCi<br />

(2.4)<br />

Die beiden Summanden berücksichtigen die unterschiedlichen Eigenschaften von Verbindungen<br />

in vermaschten Funknetzen. IRUl entspricht hierbei der zu erwartenden Übertragungsdauer<br />

entlang einer Verbindung l multipliziert mit der Zahl benachbarter Knoten,<br />

die durch Übertragungen auf l beeinträchtigt werden. Die Summe aller dieser Werte<br />

wird anschließend anhand der Gesamtzahl N der Knoten im Netz <strong>und</strong> der langsamsten<br />

Einzelverbindung normalisiert. Das Verfahren konzentriert sich dabei ganz auf statische<br />

Netze, denn die Mengen der sich jeweils störenden Stationen sollen zum Zeitpunkt der<br />

Einrichtung des Netzes bestimmt werden11 . Der zweite Summand �<br />

node i∈p CSCi quantifiziert<br />

die Intra-Flow-Interferenz entlang des Pfades p, wird jedoch in [JLZZ07] als<br />

unzureichend kritisiert.<br />

Die Autoren von MIC argumentieren, dass die Metrik anders als WCETT auch dann<br />

nicht zu Routing-Schleifen führen kann, wenn auf Source Routing verzichtet wird. Sie<br />

implementieren ein eigenes Routing-Protokoll (LIBRA) <strong>und</strong> präsentieren die Ergebnisse<br />

von Simulationen wonach IRU / LIBRA leistungsfähiger sind als ETT / WCETT.<br />

Symmetrie<br />

Kapazität<br />

Intra-Flow-I.<br />

Inter-Flow-I.<br />

Verlustrate<br />

Metrik<br />

Hop Count ◦ ◦ ◦ ◦ ◦<br />

ETX � � ◦ ◦ ◦<br />

ETT � � � ◦ ◦<br />

WCETT � � � � ◦<br />

MIC � � � � �<br />

Tabelle 2.4.: Vergleich der Verbindungs- <strong>und</strong> Pfadeigenschaften, die von den vorgestellten<br />

Metriken berücksichtigt werden.<br />

2.8. Netzwerktechnologien<br />

In diesem Abschnitt werden die <strong>für</strong> diese Arbeit wichtigsten Aspekte ausgewählter Netzwerktechnologien<br />

vorgestellt. Auf weiterführende Literatur wird in den Unterabschnitten<br />

verwiesen.<br />

11<br />

” Since mesh networks are static, existing research results have shown that it is possible to measure<br />

whether two nodes are in each other’s interference range at the time when the network is established.“<br />

[YWK05, S. 6]<br />

21


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

2.8.1. IP<br />

Das Internet Protocol (IP) ist ein sehr weit verbreitetes Protokoll zur Verbindung von<br />

paketorientierten Netzwerken. Es lässt sich in Schicht 3 (Netzwerkschicht) des OSI-<br />

Referenzmodells einordnen [Tan03, Kapitel 1.4]. Die <strong>für</strong> diese Arbeit relevantesten Punkte<br />

werden ausgewählt <strong>und</strong> kurz erläutert. Weitere Details können [Com00] entnommen<br />

werden.<br />

Das Internet Protocol verwendet Adressen, die einzelne Computer bzw. die einzelnen<br />

Netzwerkverbindungen eines Computers (Host) identifizieren. Bei IP Version 4 (IPv4)<br />

sind diese Adressen 32 Bit lang <strong>und</strong> werden entweder bitweise als Binärzahlen oder<br />

byteweise in Gruppen von vier Dezimalzahlen notiert. Ein Beispiel ist 192.168.2.33.<br />

Eine IP-Adresse ist unterteilt in einen Internetanteil, einen Teil, der das Netzwerk<br />

bestimmt, <strong>und</strong> einen Hostanteil. Sogenannte Subnetze erlauben es Adressbereiche zu<br />

unterteilen. Jedes Netzwerk erhält dazu eine Subnetzmaske. Sie hat mit 32 Bit dieselbe<br />

Länge wie IP-Adressen. Die gesetzten Bits einer Subnetzmaske bestimmen welche<br />

Bits der IP-Adresse deren Netzwerkanteil ausmachen. Subnetzmasken werden wie IP-<br />

Adressen notiert, z.B. 255.255.255.0. Zwei Computer im selben physischen Netzwerk,<br />

die unterschiedliche IP-Adressen haben, können auf Ebene von IP direkt miteinander<br />

kommunizieren, wenn der Netzwerkanteil ihrer Adressen identisch ist. Ein Beispiel verdeutlicht<br />

dies. Sei die Subnetzmaske aller drei Rechner A, B <strong>und</strong> C 255.255.255.224.<br />

Ihre Adressen sind 192.168.5.20, 192.168.5.30 <strong>und</strong> 192.168.5.40. Wegen ihrer Adressen<br />

<strong>und</strong> der gegebenen Netzmaske können die Rechner A <strong>und</strong> B direkt miteinander kommunizieren.<br />

Der Netzwerkanteil der Adresse von Rechner C unterscheidet sich von dem<br />

der beiden anderen. Er kann ohne Router nicht mit den beiden anderen Rechnern kommunizieren.<br />

Adressen <strong>und</strong> Netzwerkmasken werden häufig gemeinsam dargestellt, z.B.<br />

192.168.5.30/255.255.255.224 [FLYV93]. Eine verkürzende Darstellung (CIDR Notation)<br />

derselben Adresse ist 192.168.5.30/27, wobei die 27 ersten Bits der Adresse ihren<br />

Netzwerkanteil ausmachen.<br />

Neben der Adressierung einzelner Hosts erlaubt IP die Adressierung mehrerer Rechner<br />

mit einer einzigen Adresse. Im weiteren Verlauf sind zwei Arten von Broadcasts relevant.<br />

Gerichtete Broadcastadressen 12 erlauben es, alle Rechner in einem bestimmten Netzwerk<br />

anzusprechen. Diese Adressen sind ebenfalls aus Netzwerkanteil <strong>und</strong> Hostanteil aufgebaut.<br />

Alle Bits im Hostanteil der Broadcastadresse sind gesetzt z.B. 192.168.5.31/27.<br />

Pakete an die spezielle Adresse 255.255.255.255/32 werden gr<strong>und</strong>sätzlich nicht geroutet<br />

<strong>und</strong> sprechen alle Computer im lokalen Netzwerk an. Die Adresse wird als eingeschränkte<br />

Broadcastadresse 13 bezeichnet. IP-Broadcastadressen werden soweit wie möglich auf die<br />

Broadcastadressen der konkreten darunterliegenden Technologie (z.B. Ethernet) abgebildet.<br />

12<br />

13<br />

” directed broadcast address“ [Com00, S. 65 f.]<br />

” limited broadcast address“ [Com00, S. 66 f.]<br />

22


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

2.8.2. UDP<br />

Das User Datagram Protocol (UDP) ist ein auf IP basierendes Protokoll zur Übertragung<br />

von Nachrichten zwischen unterschiedlichen Prozessen (auf unterschiedlichen<br />

Rechnern). Diese Nachrichten werden Datagramme genannt <strong>und</strong> haben eine definierte<br />

Länge. UDP sichert die Datenübertragung nicht gegen Verlust ab. Die Integrität der<br />

Nachrichten wird optional mit Prüfsummen sichergestellt. Datagramme lassen sich an die<br />

IP-Adressen von einzelnen Computern senden <strong>und</strong> daneben auch an die oben genannten<br />

Broadcastadressen. Weitere Informationen zu UDP können [Com00, Kapitel 12] <strong>und</strong><br />

besonders mit Blick auf Broadcasting auch [SFR04, Kapitel 20] entnommen werden.<br />

2.8.3. Wireless LAN<br />

Ein Wireless Local Area Network (WLAN) ist ein lokales Funknetz, das innerhalb eines<br />

Radius von einigen h<strong>und</strong>ert Metern Geräte miteinander verbindet [Lüd07]. Besonders<br />

verbreitet sind WLANs, nach den Standards der Gruppe 802.11 des Konsortiums<br />

IEEE 14 . Momentan zählen die Standards 802.11, 802.11b, 802.11g, 802.11a <strong>und</strong><br />

das kürzlich verabschiedete 802.11n zu den wichtigsten der Gruppe. Sie werden hier<br />

verkürzend als 802.11abgn wiedergegeben. Die Standards spezifizieren die physischen <strong>und</strong><br />

logischen Parameter der Funkschnittstelle wie das Frequenzband, die Datenrate <strong>und</strong> das<br />

Modulationsverfahren. Die Verfahren nach 802.11bg arbeiten im 2,4-GHz-ISM-Band 15 .<br />

Das Frequenzband darf lizenzfrei <strong>für</strong> zivile Anwendungen genutzt werden, wobei die maximale<br />

Sendeleistung begrenzt ist. In demselben Frequenzband arbeiten auch Bluetooth<br />

<strong>und</strong> ZigBee [Lüd07]. WLAN nach 802.11bg, Bluetooth <strong>und</strong> ZigBee beeinträchtigen sich<br />

wechselseitig. Mikrowellenherde strahlen im oberen Bereich des 2,4-GHz-Bandes Signale<br />

ab <strong>und</strong> sind eine weitere Störquelle beim Betrieb von 802.11bg WLANs.<br />

Das von WLANs genutzte Frequenzband wurde in unterschiedliche Kanäle unterteilt. Die<br />

Wahl unterschiedlicher Kanäle ist ein Mittel ” um mehrere Funkzellen parallel <strong>und</strong> voneinander<br />

unabhängig innerhalb eines Empfangsbereichs betreiben zu können, [...]“ [Rec06,<br />

S. 102]. Nicht alle Kanäle sind überlappungsfrei. Bei Übertragungen auf zwei unterschiedlichen<br />

Kanälen kann es zu Interferenzen kommen. In der Praxis wurde beobachtet, dass<br />

sich bei parallelem Betrieb sogar Geräte beeinträchtigen können, die in unterschiedlichen<br />

Frequenzbändern (2,4 GHz <strong>und</strong> 5 GHz) arbeiten [DPZ04, S. 120].<br />

WLANs nach 802.11 können in unterschiedlichen Betriebsmodi verwendet werden. Einer<br />

davon ist der sogenannte Ad-Hoc-Modus, der andere der Infrastrukturmodus. Der Ad-<br />

Hoc-Modus ist der simpelste Betriebsmodus. Die Funkzellen, die von den Geräten aufgespannt<br />

werden, werden IBSS (Independent Basic Service Set) genannt. Zwei oder mehr<br />

Geräte mit Funkadapter können in einem Ad-Hoc-Netzwerk Daten austauschen, wenn<br />

sich ihre IBSS gegenseitig räumlich überlappen <strong>und</strong> sie einen gemeinsamen Adressraum<br />

14 Institute of Electrical and Electronics Engineers, http://www.ieee.org/<br />

15 Industrial, Scientific, Medical<br />

23


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

haben. Die Adresse des gemeinsamen Netzwerks wird als SSID (Service Set Identifier)<br />

bezeichnet. Es handelt sich dabei um eine kurze Zeichenkette.<br />

In einem Infrastrukturnetzwerk existieren neben den Geräten, die das Netzwerk nutzen<br />

möchten ein oder mehrere Access Points (APs). Sie stellen eine Verbindung zwischen<br />

dem drahtlosen <strong>und</strong> einem drahtgeb<strong>und</strong>enen Netzwerk wie z.B. Ethernet her. Um Daten<br />

auszutauschen werden diese Daten gr<strong>und</strong>sätzlich erst an einen AP gesendet, der die<br />

Daten an den Empfänger oder, wenn dieser nicht erreichbar ist, an einen anderen AP<br />

weiterleitet. Um an dem Infrastrukturnetzwerk teilzunehmen, muss sich ein Gerät mit<br />

einem AP assoziieren <strong>und</strong> sich gegebenenfalls authentifizieren.<br />

WLAN-Geräten stehen <strong>für</strong> die Datenübertragung unterschiedliche Datenraten zur Verfügung.<br />

Bei 802.11 sind dies 1 <strong>und</strong> 2 MBit/s, bei 802.11b zusätzlich 5,5 <strong>und</strong> 11 MBit/s <strong>und</strong><br />

bei 802.11g mehrere Stufen zwischen 6 <strong>und</strong> 54 MBit/s. Im normalen Betrieb wird stets die<br />

höchstmögliche Rate verwendet. Lässt die Übertragungssituation das nicht zu, wird die<br />

Rate automatisch gesenkt. Üblicherweise werden Broadcasts mit anderen Datenraten<br />

versendet als Unicasts. Die genauen Verfahren zur Auswahl der Datenrate sind nicht<br />

spezifiziert. Eine genauere Erklärung kann [Rec06, S. 242 f.] entnommen werden. Bei<br />

einigen Systemen kann die Datenrate fest gewählt werden. Davon wird bei den später<br />

beschriebenen Versuchen Gebrauch gemacht.<br />

2.8.4. Bluetooth<br />

Bluetooth wurde mit dem Ziel entwickelt, eine kostengünstige <strong>und</strong> energiesparende Technologie<br />

<strong>für</strong> die Verbindung von Computern, Computerperipherie <strong>und</strong> mobilen Geräten<br />

über kurze Strecken zu schaffen [Mul01]. Die erste Spezifikation wurde von der Bluetooth<br />

SIG 16 1999 vorgelegt. 2009 wurden die Versionen 3.0 <strong>und</strong> 4.0 veröffentlicht [Blu09a,<br />

Blu09b].<br />

Bluetooth arbeitet wie WLAN (nach 802.11bg, siehe oben) im Frequenzbereich von<br />

2,4 GHz. Je nach Version des Standards <strong>und</strong> dem genutzten Übertragungsmodus können<br />

Netto-Datenraten zwischen 0,4 MBit/s <strong>und</strong> 2,2 MBit/s (Bluetooth 2.0 + EDR) erreicht<br />

werden [Lüd07].<br />

Möchten mehrere Bluetooth-Geräte Daten austauschen, bilden sie ein sogenanntes Piconetz,<br />

das bis zu 8 aktive Geräte umfassen kann. Eines der Geräte im Piconetz übernimmt<br />

die Rolle des Masters, alle anderen sind Slaves. Der Verbindungsaufbau <strong>für</strong> die Teilnahme<br />

am Piconetz läuft in mehreren Stufen ab [Lüd07, S. 242 ff.]. Einer davon ist der Inquiry<br />

Scan. Bluetooth-Geräte müssen in einem speziellen, sichtbaren Modus sein, damit sie von<br />

anderen Bluetooth-Geräten im Rahmen eines Inquiry Scans gef<strong>und</strong>en werden können. Inquiry<br />

Scans sind zeitaufwändig. Wird ein Inquiry Scan nicht vorzeitig abgebrochen, kann<br />

ein einzelner Scan in einem fehlerfreien Umfeld 10,24 s dauern [Blu07, Abschnitt 8.4.2].<br />

Der Bluetooth-Protokollstapel ist aus vier Schichten aufgebaut [Mul01]. Eines der Protokolle<br />

ist OBEX (Object Exchange Protocol). Es kann genutzt werden um beliebige<br />

16 http://www.bluetooth.com/<br />

24


2. Gr<strong>und</strong>lagen <strong>und</strong> Stand der Technik<br />

Objekte zwischen Geräten auszutauschen, wie zum Beispiel elektronische Visitenkarten<br />

oder Klingeltöne. In seinem Funktionsumfang ähnelt es HTTP. Das GOEP (Generic Object<br />

Exchange Protocol) ist die Gr<strong>und</strong>lage um OBEX über Bluetooth nutzen zu können.<br />

Es spezifiziert die Anforderungen an die unteren Protokollschichten [Mul01].<br />

GOEP / OBEX arbeitet nach dem Client-Server-Modell. Zwischen Client <strong>und</strong> Server<br />

wird eine Sitzung eingerichtet. Anschließend kann der Client mittels der Operationen<br />

Push oder Pull Objekte zum bzw. vom Server übertragen.<br />

25


3. Konzept<br />

3. Konzept<br />

In diesem Kapitel werden zunächst einige motivierende Anwendungsszenarien <strong>für</strong> PPS<br />

genannt. Sie veranschaulichen die breiten Einsatzmöglichkeiten des Konzepts. Aus einem<br />

speziellen Anwendungsbereich stammt das in Abschnitt 3.2 beschriebene Szenario.<br />

Es bildet den Ausgangspunkt der weiteren Untersuchungen. Im weiteren Verlauf dieses<br />

Kapitels wird das Szenario auf das Konzept von ASP abgebildet. Dieser Schritt ist<br />

erforderlich, um das Szenario auf Gr<strong>und</strong>lage von ASP implementieren zu können.<br />

Den Abschluss des Kapitels bildet die Diskussion der Metrik <strong>für</strong> ASP. Die in Abschnitt<br />

2.7 vorgestellten Metriken werden auf ihre Eignung überprüft. Eine der Metriken wird<br />

so ergänzt, dass sie in einer Implementierung von ASP zum Einsatz kommen kann.<br />

3.1. Anwendungsszenarien <strong>für</strong> PPS<br />

Die Möglichkeit der Kooperation der unterschiedlichsten Geräte einer intelligenten Umgebung<br />

eröffnet eine ganze Reihe neuer Anwendungsfälle. Vier Szenarien sollen zunächst<br />

den Bedarf <strong>und</strong> die breiten Einsatzmöglichkeiten von PPS unterstreichen.<br />

Bereits in [Ris08] wurde eine Anwendung <strong>für</strong> eine Büroumgebung vorgestellt. Eine Person<br />

hat auf ihrem tragbaren Gerät (z.B. ein Smartphone) Dokumente gespeichert, die<br />

gedruckt werden sollen. An einen Desktop-PC im Büro ist ein Drucker angeschlossen.<br />

Dieser PC kann das Format, in welchem die Dokumente auf dem tragbaren Gerät gespeichert<br />

sind, nicht interpretieren. Auf der anderen Seite kennt das Mobilgerät weder<br />

den Drucker noch hat es einen passenden Treiber. Mit PPS können weitere Prozesse<br />

oder Geräte aus der intelligenten Umgebung in den Kommunikationsvorgang integriert<br />

werden, die die Daten konvertieren <strong>und</strong> auf diese Weise das Ausdrucken ermöglichen.<br />

Ein ähnliches Szenario ist das eines Beamers, der Urlaubsbilder wiedergeben soll, die<br />

auf einem Handy gespeichert sind. Auf Gr<strong>und</strong>lage von PPS könnten die Bilder an das<br />

Gerät, welches mit dem Beamer verb<strong>und</strong>en ist, übertragen werden <strong>und</strong> mit Musik aus<br />

einer weiteren Quelle zu einer Diashow verb<strong>und</strong>en werden.<br />

Weitere Einsatzgebiete gibt es an öffentlichen Orten. Auf einem Bahnhof oder Flughafen<br />

ließen sich die Nachrichtenmeldungen, die prominent über große Monitore angezeigt werden,<br />

in Echtzeit übersetzen – entsprechende Übersetzungstechnologie vorausgesetzt. So<br />

könnte ein Geschäftsreisender aus Japan, der kein Russisch spricht, auf dem Moskauer<br />

Flughafen die Nachrichten verfolgen, die ihm von einem leistungsfähigen Rechner in der<br />

26


3. Konzept<br />

intelligenten Umgebung übersetzt werden <strong>und</strong> dann über das Headset seines Smartphones<br />

wiedergegeben werden.<br />

Und auch in der Heimautomatisierung gibt es interessante Anwendungen. Kommunizieren<br />

sie per PPS, können der intelligente Stromzähler <strong>und</strong> schaltbare Steckdosen oder<br />

netzwerkfähige weiße Ware wie Waschmaschine oder Geschirrspüler zusammenarbeiten,<br />

um den idealen Zeitpunkt <strong>für</strong> die Inbetriebnahme zu finden. Bei einem viertelstündlich<br />

neu festgesetzten Strompreis werden die Geräte dann aktiv, wenn der Strompreis mehrmals<br />

in Folge gesunken ist.<br />

3.2. Szenario<br />

Szenario Gerät / Inhalt Rolle<br />

Quelle Prozessor Senke<br />

1 Handheld •<br />

Desktop-PC mit Drucker •<br />

weitere Geräte •<br />

2 Handy •<br />

PC mit Beamer •<br />

Musikquelle •<br />

weitere Geräte •<br />

3 Nachrichtensendung •<br />

leistungsfähige Rechner •<br />

Smartphone •<br />

4 intelligenter Stromzähler •<br />

Steuerrechner •<br />

schaltbare Steckdosen •<br />

Tabelle 3.1.: Übersicht der Beispielszenarien mit Rollenverteilung.<br />

Die Ziele <strong>und</strong> Anforderungen, denen ASP gerecht werden möchte, werden im folgenden<br />

Abschnitt zunächst zusammengefasst. Anschließend wird das Szenario, welches den Hintergr<strong>und</strong><br />

<strong>für</strong> die weiteren Untersuchungen <strong>und</strong> die durchgeführten Experimente bildet,<br />

genau erläutert. Die Hypothesen (siehe Abschnitt 1.2 <strong>und</strong> 6 <strong>und</strong> folgende) dienen bei<br />

der Konzeption der Experimente als Richtschnur.<br />

3.2.1. Ziele von ASP<br />

PPS <strong>und</strong> damit ASP möchte die von Publish-Subscribe-Systemen bekannten Vorteile der<br />

räumlichen <strong>und</strong> zeitlichen Entkopplung mit denen einer semantischen Entkopplung<br />

durch Prozessoren kombinieren. Die Systemarchitektur von ASP <strong>und</strong> dessen Routingalgorithmus<br />

bildet die Gr<strong>und</strong>lage einer flexiblen Kommunikationsinfrastruktur. Sie<br />

27


3. Konzept<br />

basiert ausschließlich auf Kenntnis der Nachbarschaftsbeziehungen einzelner Knoten<br />

in dynamischen, heterogenen Netzwerken.<br />

3.2.2. Überblick<br />

Ein Konferenzraum, Hörsaal oder Büro bilden den Ausgangspunkt des untersuchten<br />

Szenarios. Es finden dort regelmäßig Besprechungen oder Vorlesungen statt. Die Teilnehmer<br />

dieser Veranstaltungen sind häufig noch lange über die Dauer der Veranstaltung<br />

hinaus an dem Gesagten interessiert. Dies trifft insbesondere <strong>für</strong> Interessenten zu, die<br />

an der Veranstaltung nicht persönlich teilnehmen konnten. Aus diesen Gründen ist es<br />

wünschenswert, dass die Veranstaltung aufgezeichnet wird. Es Bedarf dazu einer Infrastruktur,<br />

die den spontanen Mitschnitt einer Veranstaltung ermöglicht. Nach dem Ende<br />

der Veranstaltung müssen die Teilnehmer <strong>und</strong> weitere Interessenten einen möglichst<br />

komfortablen Zugriff auf die Aufzeichnung haben.<br />

Konkret könnte es den folgenden Ablauf geben. Ein Dozent <strong>und</strong> zwei Dutzend Studenten<br />

oder Gäste nehmen an einem Seminar teil. Zu Beginn der Veranstaltung startet der<br />

Dozent auf seinem Smartphone oder einem Netbook mit Mikrofon die Aufnahme. Zwei<br />

Studenten halten nun ihre Vorträge mit anschließender Diskussion. Ein an das Netzwerk<br />

des Hörsaals angeschlossener Computer empfängt <strong>und</strong> archiviert die Aufzeichnung automatisch<br />

in bester Qualität. Kurz vor Ende der Veranstaltung beendet der Dozent die<br />

Aufzeichnung. Einige der Studenten benutzen ihre Handys um auf die einzelnen Vorträge<br />

zuzugreifen. Für den zügigen Download wählen sie die in einem komprimierten Format<br />

angebotenen Mitschnitte. Eine Woche später sind andere Studenten in dem Hörsaal. Aus<br />

Interesse greifen jedoch auch einige von ihnen auf die Aufzeichnung der Vorwoche zu <strong>und</strong><br />

laden sie auf ihr Mobilgerät herunter.<br />

ASP bietet sich als Technologie an, um ein Szenario wie das genannte zu realisieren. Mit<br />

einem heterogenen Umfeld, großem zeitlichen Versatz <strong>und</strong> transparenter Datenverarbeitung<br />

finden sich im Szenario einige der Kernpunkte von PPS / ASP. Das Szenario wird<br />

im Folgenden abstrahiert <strong>und</strong> genauer beschrieben. Abbildung 3.1 stellt es bereits dar.<br />

Im Szenario findet sich ein Netzwerk aus Rechnern, die vier unterschiedliche Rollen<br />

annehmen. Die erste Rolle nimmt das <strong>für</strong> die Aufzeichnung gewählte Gerät ein. Es digitalisiert<br />

Sprache <strong>und</strong> gibt das Ergebnis weiter (recorder, Kürzel R in Abb. 3.1). Es handelt<br />

sich dabei um einen Rechner, der inklusive Mikrofon fester Bestandteil des Raumes<br />

ist oder um ein Mobilgerät, welches nicht ständig vor Ort ist. Ein weiterer Computer<br />

übernimmt die Speicherung <strong>und</strong> Archivierung der Aufnahme (storage, S). Es wird im<br />

folgenden davon ausgegangen, dass der Rechner über einen ausreichend großen nichtflüchtigen<br />

Speicher verfügt <strong>und</strong> über große Zeiträume verfügbar ist. Die Skizze nennt<br />

ein NAS-System (Network Attached Storage) als Beispiel. Da solche <strong>und</strong> vergleichbare<br />

Geräte nicht in jedem Fall über sehr große Rechenkapazitäten verfügen, wird die<br />

Umwandlung in ein komprimiertes Format (converter, C) auf einem dritten Rechner<br />

vorgenommen. Es kann sich dabei gr<strong>und</strong>sätzlich um einen beliebigen, ausreichend leistungsfähigen<br />

Rechner handeln. Dort, wo gerade Kapazitäten frei sind, wird die Aufgabe<br />

28


3. Konzept<br />

S<br />

Bluetooth oder WLAN<br />

Smartphone,<br />

PDA, portabler<br />

Medienspieler<br />

R<br />

WLAN-Router oder -AP mit USB<br />

oder NAS-System<br />

Ethernet oder WLAN<br />

PC oder Server<br />

Notebooks, Smartphones,<br />

portable Medienspieler<br />

WLAN oder Bluetooth<br />

D<br />

C<br />

WLAN Bluetooth<br />

Abbildung 3.1.: Skizze des Szenarios mit den Rollen Aufzeichnung (R), Speicherung <strong>und</strong><br />

Weitergabe (S), Umwandlung (C) <strong>und</strong> Download (D).<br />

ausgeführt. Die vierte Rolle, den Download eines Mitschnitts (download, D), übernehmen<br />

ein oder mehrere Geräte. Sie sind wie ihre Benutzer nur gelegentlich vor Ort. Darüber<br />

hinaus wird davon ausgegangen, dass sie keine ständige Verbindung zum Netzwerk des<br />

Veranstaltungsraumes haben, die möglicherweise langsam ist. Handelt es sich um mehrere<br />

Geräte, können diese untereinander vernetzt sein.<br />

Das gegebene Szenario ist beispielhaft <strong>für</strong> eine Anwendung in einer heterogenen, dynamischen<br />

Umgebung. Es eignet sich <strong>für</strong> die Untersuchung <strong>und</strong> die Bewertung eines Ansatzes<br />

wie ASP. Um dies zu belegen, wird auf die in Abschnitt 3.2.1 zusammengefassten Ziele<br />

verwiesen. Da die Rollen Aufzeichnung <strong>und</strong> Download (R <strong>und</strong> D) von wechselnden<br />

Geräten wahrgenommen werden, ist das Szenario geeignet, die räumliche <strong>und</strong> zeitliche<br />

Entkopplung zu testen. Die transparente Umwandlung der Aufzeichnungen <strong>und</strong> die Aufbereitung<br />

<strong>für</strong> den Download erfordert eine semantische Entkopplung, wie sie in PPS /<br />

29


3. Konzept<br />

ASP vorgesehen ist. Neben einer Umwandlung sind weitere Anwendungen wie eine automatische<br />

Transkription oder das automatische Schneiden der Aufzeichnung denkbar. Ein<br />

weiterer Aspekt, der das Szenario auszeichnet, die Grenzen <strong>und</strong> Möglichkeiten von ASP<br />

zu evaluieren, ist die Heterogenität des Umfelds. Es kommen Geräte unterschiedlicher<br />

Leistungsklassen zum Einsatz. Diese sind über unterschiedliche Techniken miteinander<br />

vernetzt. Die Skizze nennt Bluetooth, WLAN <strong>und</strong> Ethernet.<br />

3.2.3. Variationsmöglichkeiten<br />

Die gr<strong>und</strong>sätzliche Eignung des Szenarios zur Evaluierung von ASP wurde bereits gezeigt.<br />

Bei genauer Betrachtung ergeben sich Möglichkeiten das Szenario in einigen Aspekten<br />

zu variieren. Dazu zählen insbesondere:<br />

• die Art der Netzwerkverbindung<br />

• die Hardwareplattform<br />

• die Art des Netzwerkverkehrs<br />

Unterschiedliche Varianten eignen sich um gewisse Eigenschaften von ASP gezielt zu untersuchen.<br />

Damit bilden sie die Ausgangspunkte der Experimente, mit denen im weiteren<br />

Verlauf gearbeitet wird. Die Grafik 3.2 <strong>und</strong> die folgenden Tabellen fassen die Vielfalt des<br />

Szenarios zusammen.<br />

S 2 C<br />

1<br />

3<br />

D<br />

4 4<br />

R D D<br />

Abbildung 3.2.: Vereinfachte Skizze des Szenarios mit Aufzeichnung (R), Speicherung <strong>und</strong><br />

Weitergabe (S), Umwandlung (C) <strong>und</strong> Download (D). Die Ziffern bezeichnen<br />

die Verbindungen. Siehe Tabelle 3.2 <strong>und</strong> 3.3.<br />

Tabelle 3.2 zeigt exemplarisch, welche Techniken sich <strong>für</strong> den Einsatz auf unterschiedlichen<br />

Verbindungen eignen. Die Nummern beziehen sich auf die Abbildung 3.2. Die<br />

Übersicht erhebt keinen Anspruch auf Vollständigkeit.<br />

Unterschiedliche Geräte können die vorgestellten Rollen übernehmen. Neben PCs (einschließlich<br />

Notebooks <strong>und</strong> Netbooks), kommen im Szenario Smartphones <strong>und</strong> eingebettete<br />

Systeme wie NAS-Systeme vor. Tabelle 3.3 führt einige Konstellationen auf.<br />

30


3. Konzept<br />

802.11abgn (Infrastr.)<br />

802.11abgn (Ad-Hoc)<br />

Bluetooth<br />

Ethernet<br />

Verbindungstechnik<br />

Verbindung 1 1<br />

2 2<br />

3 3 3<br />

4 4<br />

Tabelle 3.2.: Unterschiedliche Varianten der Vernetzung. Siehe Abb. 3.2.<br />

Plattform Embedded Smartphone PC<br />

Rolle R R<br />

S S<br />

C<br />

D D<br />

Tabelle 3.3.: Unterschiedliche Rollen können auf unterschiedlichen Plattformen ausgeführt<br />

werden. Siehe Abb. 3.2.<br />

Bei der Aufzeichnung <strong>und</strong> dem anschließenden Download von Tonmitschnitten gibt es<br />

zwei charakteristische Arten von Datenverkehr. Während der Aufzeichnung fallen in<br />

regelmäßigen, kurzen Intervallen relativ kleine Datenmengen an. Bei einer unkomprimierten<br />

Aufzeichnung in Telefonqualität wären dies z.B. 8 Bit/s · 8000 = 64 kBit/s. Auf<br />

der anderen Seite ergibt sich <strong>für</strong> einen Download eines einstündigen Vortrages in derselben<br />

Qualität in einem komprimierten Format mit einer angenommenen Kompressionsrate<br />

von 1:10 ein Datenvolumen von r<strong>und</strong> 22 MByte. Diese Datenmenge muss möglichst<br />

zügig auf einmal übertragen werden.<br />

Zusammenfassend wird festgehalten, dass je nach Hard- <strong>und</strong> Softwareplattform, Kommunikationstechnik<br />

<strong>und</strong> Art der Datenübertragung gänzlich unterschiedliche Bedingungen<br />

vorliegen. Damit stellt das Szenario eine realistische <strong>und</strong> vielseitige Ausgangsbasis <strong>für</strong><br />

die Untersuchung von ASP dar.<br />

3.3. Abbildung auf ASP<br />

Für die Untersuchung von ASP wird das Szenario auf dessen Konzepte abgebildet. Im<br />

folgenden werden die von ASP genutzten Anwendungstypen <strong>und</strong> Übertragungskategorien<br />

31


3. Konzept<br />

zugeordnet. Die Umsetzung auf unterschiedliche Plattformen <strong>und</strong> Netzwerktechnologien<br />

ist ein weiterer entscheidender Punkt.<br />

Andere, spezifischere Parameter von ASP wie z.B. die Gültigkeitsdauer von Ankündigungen<br />

haben Einfluss auf die Leistungsfähigkeit <strong>und</strong> Zuverlässigkeit der auf ASP aufbauenden<br />

Anwendungen. Da sie jedoch einen starken Bezug zum konkreten Einsatzumfeld<br />

bis hin zur Implementierung haben, werden sie an geeigneter Stelle wieder aufgegriffen.<br />

3.3.1. Anwendungstypen <strong>und</strong> Übertragungskategorien<br />

Den in Abschnitt 3.2.2 eingeführten Rollen werden zunächst die in Abschnitt 2.4 besprochenen<br />

Anwendungsklassen Quelle, Prozessor oder Senke zugeordnet.<br />

Die erste Rolle, die Digitalisierung von Sprache, ist eine typische Eingabeoperation <strong>und</strong><br />

damit charakteristisch <strong>für</strong> eine <strong>Informations</strong>quelle. Die Rolle der Aufzeichnung nimmt<br />

also eine Anwendung vom Typ Quelle wahr. Umgekehrt ist der Download eines Audiomitschnitts<br />

mit der späteren Wiedergabe charakteristisch <strong>für</strong> eine Datensenke.<br />

Die Umwandlung vorhandener Aufzeichnungen in ein geeignetes, komprimiertes Format<br />

ist der Fall einer Anwendung vom Typ Prozessor, denn ein Prozessor verarbeitet die Daten<br />

<strong>und</strong> nimmt eine definierte Konvertierung vor. Dabei stammen die Eingabedaten von<br />

einer Quelle (oder einem weiteren Prozessor) <strong>und</strong> die Ausgabe erreicht dann (eventuell<br />

über weitere Prozessoren) eine Senke.<br />

Die Rolle, die bislang als Speicherung oder Archivierung (Kürzel S) bezeichnet wurde,<br />

lässt sich nicht unmittelbar auf einen der Typen Quelle, Prozessor oder Senke abbilden.<br />

Um eine einzige Quelle oder Senke kann es sich nicht handeln, denn es werden Daten<br />

sowohl empfangen als auch versendet. Dieses Verhalten trifft jedoch auf Prozessoren zu.<br />

Allerdings kann es sich bei der Rolle S nicht um einen Prozessor handeln. Ein Prozessor<br />

im Sinne von PPS ist insofern zustandslos als dass er (gegenwärtig) verfügbare Daten<br />

soweit möglich in andere Daten verarbeitet. Die Rolle eines Archivs ist es jedoch Daten<br />

über lange Zeiträume verfügbar zu halten. Die Aufgaben der Speicherung <strong>und</strong> Weitergabe<br />

der Audiodaten werden daher jeweils auf eine Senke <strong>und</strong> eine Quelle abgebildet.<br />

Rolle S wird von zwei Anwendungen auf einem Knoten gemeinsam übernommen.<br />

Die Datenübertragungen lassen sich in die in Abschnitt 2.5.5 genannten Kategorien<br />

einordnen. Dabei müssen drei Übertragungen getrennt betrachtet werden.<br />

1. Von der Aufzeichnung (R) zur Senke des speichernden Knoten (S).<br />

2. Von der Quelle des Speichers (S) zum Konverter (C).<br />

3. Vom Konverter (C) zu den Geräten, auf denen der Download (D) stattfindet.<br />

Bei der Übertragung der Mitschnitte zum Knoten, auf dem sie abgespeichert werden,<br />

handelt es sich um einen Strom kleiner Nachrichten 1 (Kategorie 2). Berücksichtigt man,<br />

1 Bei ASP heißen die Nachrichten <strong>für</strong> den Datentransport Veröffentlichungen (siehe S. 14).<br />

32


3. Konzept<br />

dass der verfügbare Speicher <strong>und</strong> die Stromversorgung des Geräts, welches die Sprache<br />

unmittelbar aufzeichnet <strong>und</strong> digitalisiert, stark begrenzt sein können, so ist dieser Modus<br />

der effektivste.<br />

Die Übertragung der Aufzeichnung zum Prozessor <strong>und</strong> der Download von dort, können<br />

als einzelne große Veröffentlichungen übertragen werden (Kategorie 3). Anzumerken ist,<br />

dass in [Ris09a] der Fokus auf kleinen Einzelübertragungen lag (Kategorie 1).<br />

Analog zu den drei unterschiedlichen Datenübertragungen, müssen mindestens drei unterschiedliche<br />

ASP IDs (siehe Abschnitt 2.5.1) pro durchgeführtem Mitschnitt zum Einsatz<br />

kommen. Andernfalls können die beteiligten Anwendungen nicht zweifelsfrei zwischen<br />

den Veröffentlichungen unterscheiden. Die Wahl der konkreten IDs <strong>und</strong> des Inhalts<br />

von Ankündigungen ist dabei anwendungsabhängig <strong>und</strong> <strong>für</strong> ASP transparent.<br />

3.3.2. Plattformen <strong>und</strong> Netzwerktechnologien<br />

Das vorliegende Szenario umfasst eine Reihe unterschiedlicher Hard- <strong>und</strong> Softwareplattformen.<br />

Weiterhin kommen mit Ethernet, WLAN <strong>und</strong> Bluetooth drei sehr unterschiedliche<br />

Netzwerkverbindungstechnologien zum Einsatz. Diese beiden Aspekte müssen <strong>für</strong> die<br />

experimentelle Evaluierung von ASP angemessen berücksichtigt <strong>und</strong> umgesetzt werden.<br />

Die im Szenario vorkommenden Hardwareplattformen unterscheiden sich vor allem<br />

in der verfügbaren Rechen- <strong>und</strong> Speicherkapazität. Die vorhandene Hardware muss ausreichend<br />

Ressourcen bereitstellen, damit die darauf laufende Anwendung ihre Aufgabe<br />

erfüllen kann. Für die Sprachaufzeichnung ist ein Mikrofon erforderlich <strong>und</strong> die Netzwerkverbindung<br />

des Aufzeichnungsgerätes sollte ausreichend sein, um die unkomprimierten<br />

Daten in Echtzeit übertragen zu können.<br />

Für die Speicherung <strong>und</strong> Archivierung der Aufnahmen wird genügend Speicherplatz auf<br />

einem nicht-flüchtigen Speichermedium benötigt. Wie bereits erwähnt wurde, ist <strong>für</strong> die<br />

Rolle der Speicherung eine hohe Verfügbarkeit wünschenswert, damit Nutzer jederzeit<br />

auf vergangene Aufzeichnungen zugreifen können. Ein batteriebetriebenes Mobilgerät<br />

kommt somit nicht in Frage.<br />

Die Konvertierung der Aufzeichnungen in ein komprimiertes Format sollte möglichst<br />

schnell ablaufen. Das erfordert eine leistungsfähige Verbindung zwischen dem Aufzeichnungsarchiv<br />

<strong>und</strong> dem Konverter <strong>und</strong> eine möglichst große Rechenleistung beim Konverter,<br />

damit dieser die Aufgabe schnell abschließen kann.<br />

Wie die Hardware muss auch die Softwareumgebung gewisse Anforderungen erfüllen,<br />

damit ASP <strong>und</strong> die Anwendungen des Szenarios umgesetzt werden können. Die Sprachaufzeichnung<br />

erfordert Schnittstellen <strong>und</strong> Softwarekomponenten um auf den Strom der<br />

Audiodaten zugreifen <strong>und</strong> ihn verarbeiten zu können. Die Daten müssen zudem in einem<br />

Format vorliegen, welches die weiteren Stationen – Speicherung <strong>und</strong> Konvertierung<br />

– verarbeiten können. Der Konverter benötigt Software, die es ermöglicht, die Audiodaten<br />

zu komprimieren. Sie muss auf allen Plattformen verfügbar sein, die <strong>für</strong> die Rolle<br />

der Audiokonvertierung in Betracht kommen.<br />

33


3. Konzept<br />

Im Bereich der Netzwerkverbindungen, die als NAL (siehe Abschnitt 2.5.4) gekapselt<br />

<strong>und</strong> dem Broker bereitgestellt werden, gibt es weitere Anforderungen. Der Broker kommuniziert<br />

über eine einheitliche Schnittstelle mit dem NAL. Um welche darunterliegende<br />

Technologie es sich im einzelnen handelt, ist dabei aus Sicht des Brokers unerheblich.<br />

Es ist erforderlich, dass die Soft- <strong>und</strong> Hardwareplattform <strong>für</strong> die Kommunikation des<br />

Brokers mit benachbarten Brokern transparent ist. Nachrichten sollen ungeachtet der<br />

Plattform des Nachbarn weiterverarbeitet werden können.<br />

Im Szenario ist beschrieben, dass einige Knoten Nachrichten über Technologie A empfangen<br />

<strong>und</strong> mit Technologie B an den Nachbarn weitergeben. Nur so kann die Heterogenität<br />

der Netzwerkverbindungen überbrückt werden. Der Broker muss gr<strong>und</strong>sätzlich in der<br />

Lage sein, bei Bedarf <strong>und</strong> Verfügbarkeit mehrere unterschiedliche Netzwerktechnologien<br />

parallel nutzen zu können. Es ist Aufgabe der Netzwerkabstraktionsschicht, dem Broker<br />

dies zu ermöglichen.<br />

Zuletzt ist der NAL da<strong>für</strong> zuständig, gewisse Dienstmerkmale bereitzustellen. Die kleinste<br />

Kommunikationseinheit, die ASP einsetzt, ist die Nachricht. Eine Nachricht hat einen<br />

definierten Typ <strong>und</strong> eine definierte Länge, die variabel sein kann. Einzelne Nachrichten<br />

müssen dem Broker komplett zugestellt werden. Die Fragmentierung auf Ebene von<br />

ASP bleibt davon unberührt. Wird eine Veröffentlichung von einem Broker in mehrere<br />

Nachrichten aufgeteilt, stellt der NAL die einzelnen Nachrichten dem Broker komplett<br />

zu. Dieser fügt sie zu einer Veröffentlichung zusammen. Weiter schützt die Netzwerkabstraktionsschicht<br />

die Übertragung zwischen zwei benachbarten Brokern vor Verlust.<br />

Die Reihenfolge von Nachrichten stellt der NAL nicht sicher <strong>und</strong> die Schicht vermeidet<br />

Verdopplung nicht. Dies sind Aufgaben, die bei Bedarf vom Broker oder sogar der<br />

Anwendung übernommen werden können.<br />

3.3.3. Anwendungsschnittstelle<br />

PPS (ASP) ist ein Publish-Subscribe-System. Die zentralen Interaktionsprimitive aus<br />

Anwendungssicht sind also Publish, Subscribe <strong>und</strong> der Nachrichtenempfang. Um diese<br />

Semantik zu erhalten <strong>und</strong> nicht zu verfälschen, bildet eine geeignete ASP-Anwendungsschnittstelle<br />

zwischen Anwendungen <strong>und</strong> dem lokalen Broker diese Operationen ab. Daneben<br />

sollten nur unbedingt nötige Schnittstellen existieren. Diese Schnittstellen sind<br />

<strong>für</strong> eine Umsetzung von ASP unerlässlich. Dazu gehört der Umgang mit Ankündigungen,<br />

also das Erzeugen <strong>und</strong> Empfangen. Die Beschränkung auf das Nötigste minimiert<br />

den Aufwand, bestehende Publish-Subscribe-Anwendungen auf ASP zu portieren. In<br />

Abschnitt 2.5.3 wurde die bislang vorgeschlagene Schnittstelle kurz umrissen. Sie wird<br />

<strong>für</strong> die weiteren Untersuchungen nicht unverändert übernommen. Die folgenden Absätze<br />

beschreiben die verwendete Schnittstelle. Grafik 3.3 fasst das Ergebnis zusammen.<br />

Die Schnittstelle <strong>für</strong> den Datenaustausch zwischen einer Anwendung <strong>und</strong> dem Broker<br />

ist abhängig vom Typ der Anwendung. Lediglich die Verwaltung der Anwendungen,<br />

d.h. ihre An- <strong>und</strong> Abmeldung am Broker, ist bei allen Anwendungstypen gleich. Dabei<br />

teilt die Anwendung dem Broker ihren Typ mit. Anhand des Typs entscheidet dieser,<br />

34


3. Konzept<br />

welche Nachrichten an die Anwendung zugestellt werden. So braucht eine Quelle weder<br />

Ankündigungen, noch Veröffentlichungen empfangen.<br />

Zum Empfang von Ankündigungen <strong>und</strong> Veröffentlichungen halten Senken <strong>und</strong> Prozessoren<br />

Schnittstellen bereit. Eine weitere Schnittstelle erlaubt es dem Broker die Anwendungen<br />

zu informieren, wenn Veröffentlichungen einer bestimmten ASP ID nicht länger<br />

zugestellt werden können, etwa weil sie nicht weiter angekündigt werden. Die ASP ID<br />

wird in Abschnitt 2.5.1 beschrieben.<br />

Eine Quelle kann Veröffentlichungen erzeugen <strong>und</strong> versenden (Publish) <strong>und</strong> benötigt<br />

da<strong>für</strong> eine Schnittstelle. Für ASP ist es zusätzlich erforderlich, dass die Quelle den Inhalt<br />

von Ankündigungen setzen <strong>und</strong> die weitere Ankündigung von Veröffentlichungen<br />

beenden kann.<br />

Wichtigste Aufgabe einer Senke ist der Empfang von Veröffentlichungen. Damit dies geschehen<br />

kann, erhält die Anwendung Ankündigungen. In diesem Zusammenhang wird das<br />

Konzept der Filter, wie es in Abschnitt 2.5.3 beschrieben wird, unverändert übernommen.<br />

Der Broker erhält daher eine Schnittstelle über die die Senke den Filter festlegen kann.<br />

Weiter sind Schnittstellen vorgesehen, um Veröffentlichungen zu abonnieren <strong>und</strong> Abonnements<br />

wieder zu kündigen. Die <strong>für</strong> das Abonnement nötigen Informationen erhält die<br />

Senke als Teil der Ankündigungen.<br />

Prozessoren empfangen <strong>und</strong> versenden Veröffentlichungen. Prozessoren legen über eine<br />

separate Schnittstelle, die sich von der von Quellen genutzten Schnittstelle unterscheidet,<br />

den Inhalt von Ankündigungen fest. Auf die gleiche Weise teilen sie dem Broker mit,<br />

welche Veröffentlichungen sie benötigen, um aus ihnen eine neue Veröffentlichung erzeugen<br />

zu können. Für die korrekte Berechnung der Metrik ist es nötig, dass Prozessoren<br />

die Dauer der Operation abschätzen <strong>und</strong> das Ergebnis dem Broker ebenfalls mitteilen.<br />

Die Metrik wird in Abschnitt 3.4 ausführlich diskutiert.<br />

Abbildung 3.3.: Die Schnittstellen zwischen Anwendungen <strong>und</strong> Broker.<br />

3.3.4. Interaktion<br />

Der vorherige Abschnitt untersucht vor allem die Daten, die zwischen Anwendungen <strong>und</strong><br />

Broker ausgetauscht werden, <strong>und</strong> die Schnittstellen, über die dieser Austausch abgewi-<br />

35


3. Konzept<br />

ckelt wird. Ebenso entscheidend sind die Interaktionen, die zwischen Anwendungen <strong>und</strong><br />

Broker <strong>und</strong> zwischen unterschiedlichen Brokern stattfinden. Wie die Kommunikation von<br />

Brokern untereinander abläuft, wird in den Abschnitten 2.5.1 <strong>und</strong> 2.5.2 beschrieben. Es<br />

bleiben jedoch weitere Punkte offen. Erst wenn sie geklärt sind, kann ASP erfolgreich<br />

implementiert werden.<br />

Einer dieser Punkte betrifft Prozessoren. Ein Prozessor verarbeitet Veröffentlichungen<br />

(P1, P2 usw.) anderer Prozessoren oder Quellen in neue Veröffentlichungen wie zum<br />

Beispiel P ′ . Damit die Veröffentlichungen Pi (i ≥ 1) zum Prozessor gelangen, müssen<br />

sie abonniert werden. Bislang wurde keine Festlegung getroffen, wann <strong>und</strong> auf welche<br />

Weise dies geschehen soll. Es gibt zwei Möglichkeiten. Bei der ersten abonniert die Prozessoranwendung<br />

selbstständig jede der benötigten Veröffentlichungen. Dieser Ansatz<br />

widerspricht jedoch dem Kerngedanken von ASP. Abonnieren Prozessoren eigenmächtig<br />

Veröffentlichungen, so stammen diese möglicherweise von weiteren Prozessoren. Diese<br />

anderen Prozessoren abonnieren wiederum Veröffentlichungen usw. Im Ergebnis werden<br />

alle Quellen, deren Veröffentlichungen direkt oder indirekt von einem Prozessor verarbeitet<br />

werden, aufgefordert ihre Veröffentlichungen zu übertragen. Das Netzwerk wird<br />

belastet <strong>und</strong> die Entscheidung der Middleware, welcher der günstigste Pfad ist, ist praktisch<br />

irrelevant. Die Alternative zu diesem Verhalten ist, dass der Broker stellvertretend<br />

<strong>für</strong> eine Prozessoranwendung die Veröffentlichungen abonniert. Dies hat den Vorteil, dass<br />

der Broker jederzeit weiß, ob Abonnements <strong>für</strong> die Veröffentlichungen P ′ vorliegen. Liegen<br />

keine Abonnements vor, müssen auch P1, P2 usw. nicht abonniert werden. Dies hat<br />

zur Folge, dass das Netzwerk <strong>und</strong> der Prozessor nicht unnötig belastet werden. Dies gilt<br />

umgekehrt auch, wenn das Interesse an den Veröffentlichungen P ′ versiegt. Dann kündigt<br />

der Broker die Abonnements von P1 usw. Der Prozessor wird nicht länger belastet.<br />

Ein weiterer Komplex betrifft die Erkennung <strong>und</strong> Reparatur von Pfaden. Sie werden<br />

mit Ankündigungen <strong>und</strong> Abonnements aufgebaut. Bricht eine der Verbindungen entlang<br />

eines Pfades ab, wird eine Störungsmeldung erzeugt. Abschnitt 2.5.2 schildert die<br />

Abläufe genauer. Unklar ist, wie ein Broker angemessen auf eine verlängerte Ankündigung<br />

reagieren soll. Da Störungsmeldungen gezielt an den Prozessor oder die Quelle, die<br />

die Ankündigungen erzeugt, weitergeleitet werden, wissen nicht alle Broker entlang des<br />

Pfades, dass er repariert werden muss. Insbesondere dürfen sie sich nicht darauf verlassen,<br />

dass die folgende Ankündigung vom selben Nachbarn stammen wird, von dem die<br />

letzte Ankündigung empfangen <strong>und</strong> mit einem Abonnement quittiert wurde. Damit Pfade<br />

repariert werden können, müssen Broker zunächst jede Ankündigung übernehmen,<br />

die aktueller als die vorangegangene ist, ungeachtet der Kosten, die die Metrik liefert.<br />

Dies kann zur unnötigen Änderung von Routen (Pfaden) führen. Insbesondere könnte es<br />

bedeuten, dass eine schlechter Pfad gegenüber einem besseren bevorzugt wird, weil die<br />

Ankündigungen auf dem schlechten Pfad (kurzfristig) schneller zugestellt wurden als auf<br />

dem besseren Pfad. Es gibt unterschiedliche Strategien, um die Stabilität von Pfaden<br />

(im Sinne der Anzahl <strong>und</strong> Reihenfolge der Zwischenstationen) zu erhöhen. Gr<strong>und</strong>lage<br />

der Ansätze ist die verzögerte Aktivierung von Pfaden. Trifft eine Ankündigung Ax mit<br />

den Kosten c beim Broker b ein, beginnt ein kurzes Zeitintervall. Trifft Ax ′ mit derselben<br />

Sequenznummer wie Ax aber niedrigeren Kosten c ′ < c innerhalb des Intervalls ein,<br />

36


3. Konzept<br />

gilt Ax ′ als beste Ankündigung. Erst bei Ablauf des Intervalls wird das Abonnement,<br />

welches nötig ist, um den Pfad zu aktivieren, an den Absender der besten Ankündigung<br />

versendet. Soll der Pfad besonders stabil sein, genügt es, nicht die vermeintlich beste<br />

Ankündigung zu übernehmen, sondern während des gesamten Intervalls auf die Ankunft<br />

derjenigen Ankündigung zu warten, die vom selben Nachbarn stammt wie die vorherige.<br />

Sie ist dann ausschlaggebend <strong>für</strong> den Versand des Abonnements. Dieses Verfahren wird<br />

im weiteren Verlauf eingesetzt. Eine weitere Maßnahme ist, bessere Ankündigungen nur<br />

dann zu übernehmen, wenn sie signifikant – das heißt z.B. mindestens 10 % – besser sind<br />

als die vorherige. Weitere Ansätze werden hier nicht verfolgt. Für die experimentelle Evaluation<br />

ist es vorteilhaft, wenn ASP nicht in besonderem Maße über den bereits in der<br />

Literatur beschriebenen Umfang hinaus weiterentwickelt wird. Jede Optimierung oder<br />

Erweiterung könnte bislang unbekannte Folgen haben. Das würde die Übertragbarkeit<br />

der Erkenntnisse auf das existierende ASP-Konzept einschränken. Komplexe Erweiterungen<br />

sollten zunächst in separaten Untersuchungen oder Simulationen betrachtet werden.<br />

Verb<strong>und</strong>en mit der Stabilisierung von Pfaden ist ein weiterer Effekt. Angenommen, der<br />

Verlauf eines aktiven Pfades ändert sich. Werden zeitgleich Veröffentlichungen entlang<br />

des alten Pfades übertragen, kann dies dazu führen, dass einzelne Veröffentlichungen<br />

verloren gehen. Die Grafik 3.4 illustriert das Phänomen an einem Beispiel. Als Schutz<br />

gegen diese Art von Datenverlust, wird ein Verfahren eingeführt, das hier als Fading<br />

bezeichnet wird. Ändert ein Broker den Verlauf eines aktiven Pfades, indem er ein Folgeabonnement<br />

nicht wie bisher an den Nachbarn Na, sondern Nn schickt, so schickt er<br />

ein zusätzliches Abonnement an Na. Auf diese Weise bleibt der alte Pfad länger aktiv.<br />

Veröffentlichungen, die noch auf dem alten Pfad unterwegs sind, können ihr Ziel erreichen.<br />

Der alte Pfad wird nicht beliebig lange erhalten. Nach einer festen Wartezeit oder<br />

einer maximalen Anzahl von Folgeabonnements, wird er nicht länger aktiviert.<br />

3.3.5. Caching<br />

Eine wichtige Eigenschaft von Publish-Subscribe-Systemen wie ASP ist die zeitliche Entkopplung.<br />

Es sind Maßnahmen nötig, um diese Eigenschaft sicherzustellen. Von großer<br />

Bedeutung ist dabei das Caching. Im Falle von ASP ist vor allem das Caching von Veröffentlichungen<br />

wichtig, doch auch das Caching von Ankündigungen bietet Vorteile. Ohne<br />

jede Zwischenspeicherung von Veröffentlichungen, käme in vielen Situationen keine zeitliche<br />

Entkopplung von Publisher <strong>und</strong> Subscriber zustande. Angenommen, ein Publisher<br />

veröffentlicht Daten. Die Subscriber, die ihr Interesse geäußert haben, erhalten die Veröffentlichung.<br />

Bei ASP sind das jene Prozessoren oder Senken, die über ihre Broker Pfade<br />

<strong>für</strong> diese Veröffentlichung aktiviert haben. Alle anderen potenziellen Subscriber, die<br />

(vorübergehend) ihr Interesse an der Veröffentlichung nicht mitteilen konnten, erhalten<br />

sie nicht. In einem Umfeld wie dem Szenario aus Abschnitt 3.2 sind Verbindungsabbrüche<br />

nicht ausgeschlossen. Sie verhindern unter Umständen, dass Subscriber Pfade<br />

aktivieren, wenn Abonnements verloren gehen oder wegen Sendewiederholungen zu spät<br />

beim Publisher eintreffen.<br />

37


3. Konzept<br />

A<br />

A<br />

B<br />

B<br />

C<br />

D<br />

C<br />

D<br />

Veröffentlichung<br />

Verlust der<br />

Veröffentlichung<br />

Abbildung 3.4.: Durch Routenänderungen kann es zum Verlust von Veröffentlichungen<br />

kommen. Wird ein aktiver Pfad (durchgezogene Linie; von A nach O)<br />

durch einen anderen ersetzt, können Nachrichten, die noch auf dem alten<br />

Pfad unterwegs sind, verloren gehen (unten).<br />

E<br />

F<br />

E<br />

F<br />

O<br />

O<br />

38


3. Konzept<br />

Außerdem kann es vorkommen, dass einzelne Anwendungen oder Geräte erst nach einer<br />

Veröffentlichung aktiviert werden. Im Szenario wäre dies zum Beispiel dann der Fall,<br />

wenn zunächst ein Benutzer einen Mitschnitt P auf sein Gerät herunterlädt. In diesem<br />

Fall hat der Audiokonverter (Prozessor) eine Veröffentlichung erzeugt <strong>und</strong> verschickt.<br />

Möchte ein weiterer Nutzer später denselben Mitschnitt herunterladen, kann er einen<br />

aktiven Pfad aufbauen, denn Ankündigungen versendet der Prozessor nach wie vor. War<br />

der Pfad zum Zeitpunkt der Veröffentlichung nicht aktiv, weil der Benutzer gar nicht<br />

anwesend war, empfängt er die Veröffentlichung nicht. Der Gr<strong>und</strong> ist, dass in Publish-<br />

Subscribe-Systemen nicht vorgesehen ist, dass eine Anwendung ihre Veröffentlichung<br />

gezielt erneut versendet. Die Nachrichtenzustellung ist allein Aufgabe der Broker. Für<br />

Publisher <strong>und</strong> Subscriber ist sie transparent. Ein Broker kann die Veröffentlichung nur<br />

dann zustellen, wenn er über eine Kopie von P verfügt. Daraus folgt, dass die Umsetzung<br />

eines ASP-Systems zwingend Caches <strong>für</strong> Veröffentlichungen bereithalten muss. Werden<br />

Pfade nach dem Versand einer oder mehrerer Veröffentlichungen aktiv, werden diese<br />

Veröffentlichungen aus dem Cache zugestellt. Im einfachsten Fall, speichert jeder Broker<br />

die Veröffentlichungen, die seine lokalen Anwendungen erzeugt haben, zwischen. Im<br />

Rahmen dieser Arbeit ist die Notwendigkeit von Caches entscheidend. Deren Struktur<br />

oder Verteilung, wird nicht weiter untersucht.<br />

Durch den Einsatz von Caches ist es notwendig, dass Broker zweifelsfrei zwischen Duplikaten<br />

von Veröffentlichungen, neuen Veröffentlichungen <strong>und</strong> Veröffentlichungen aus<br />

Caches unterscheiden. Dazu sind Sequenznummern <strong>für</strong> Veröffentlichungen vorgesehen.<br />

Um das Netzwerk nicht mit überflüssigen Veröffentlichungen aus Caches zu belasten, ist<br />

es hilfreich, wenn ein Broker zwischen aktiven Pfaden derselben ASP ID unterscheiden<br />

kann. Es wird vorgeschlagen, da<strong>für</strong> die bereits in [Ris09a] eingeführten Subscriber IDs<br />

zu nutzen. Für den dort ursprünglich genannten Zweck, mehrere Subscriber an einem<br />

Broker zu unterscheiden, sind sie in dieser Form ausdrücklich nicht erforderlich. Die Subscriber<br />

ID wird in dem hier konzipierten System also genutzt, um aktive Pfade, die von<br />

unterschiedlichen Brokern ausgehen, unterscheiden zu können.<br />

Betrachtet man neben Veröffentlichungen auch Ankündigungen, ergibt sich ein weiterer<br />

interessanter Anwendungsfall <strong>für</strong> Caches. Er betrifft die Eingliederung von neuen Knoten<br />

(Brokern) in das Netzwerk. Werden Ankündigungen nicht zwischengespeichert, muss<br />

ein neu hinzugekommener Broker warten, bis alle im System existierenden Ankündigungen<br />

verlängert wurden. Der Zeitraum ist von der Gültigkeitsdauer der Ankündigungen<br />

abhängig. Cachen Broker jedoch Ankündigungen, können sie einem neuen Nachbarn<br />

sofort alle ihnen bekannten Ankündigungen übergeben. Dadurch wird die Latenz verringert,<br />

mit der der neue Broker sein Interesse an den Veröffentlichungen verbreiten kann.<br />

Dem steht als Nachteil gegenüber, dass ein kleiner Teilbereich des Netzwerks kurzzeitig<br />

stärker belastet wird. Lernen mehrere Broker zeitgleich einen neuen Nachbarbroker kennen,<br />

werden die Ankündigungen zudem red<strong>und</strong>ant verschickt. Der Vorteil der geringen<br />

Latenz überwiegt die Nachteile nach Meinung des Autors. Das Caching von Ankündigungen<br />

kommt deshalb im untersuchten System zum Einsatz.<br />

39


3. Konzept<br />

3.4. Metrik<br />

Eine offene <strong>und</strong> zugleich wichtige Frage, deren Antwort Einfluss auf die Leistungsfähigkeit<br />

von ASP hat, ist: Was ist die geeignete Routingmetrik? In Abschitt 2.7 wurden<br />

existierende Metriken vorgestellt, die in statischen Funknetzen eingesetzt werden oder<br />

da<strong>für</strong> konzipiert wurden. Es folgt eine Betrachtung der Faktoren, die in dem konkreten<br />

Szenario (siehe Abschnitt 3.2) die Übertragungsleistung beeinflussen. Eine Metrik muss<br />

diese Faktoren angemessen berücksichtigen. Die zuvor vorgestellten Metriken werden<br />

anhand dieser Faktoren <strong>und</strong> der Kosten (besonderer Kommunikations- oder Rechenaufwand),<br />

die durch ihren Einsatz entstehen, bewertet. Neben dem Datentransport muss<br />

eine Metrik <strong>für</strong> ASP auch die Kosten der Datenverarbeitung in den Prozessoren einbeziehen.<br />

Dieser Aspekt wird in Abschnitt 3.4.2 betrachtet.<br />

3.4.1. Datentransport<br />

Beim Transport von Daten zwischen zwei Knoten in einem Netzwerk sind die Übertragungskapazität<br />

<strong>und</strong> die Verlustrate zwei zentrale Verbindungseigenschaften. Die Übertragungskapazität<br />

einer Verbindung zwischen zwei benachbarten Stationen, also die Datenmenge,<br />

die in einem bestimmten Zeitintervall maximal übertragen werden kann, begrenzt<br />

den Datenfluss nach oben. Je höher die Kapazität, umso schneller können Daten<br />

ausgetauscht werden. Die Verlustrate nimmt Einfluss auf die verfügbare Kapazität <strong>und</strong><br />

die Übertragungslatenz einer Verbindung. Angenommen, eine Netzwerktechnologie verwendet<br />

einen Mechanismus aus Bestätigungen <strong>und</strong> Wiederholungen zur Sicherung der<br />

Verbindung vor Nachrichtenverlust, was allgemein als ARQ (Automatic Repeat Request,<br />

siehe [Tan03, S. 200 ff.]) bekannt ist. In diesem Fall führt der Verlust von Datenpaketen<br />

unmittelbar zu einer Erhöhung der Latenz, weil verlorene Daten erneut übertragen werden<br />

müssen. Analog sinkt die verfügbare Übertragungskapazität, wenn Übertragungsverluste<br />

auftreten. Wegen Sendewiederholungen werden effektiv weniger Nutzdaten pro<br />

Zeiteinheit übertragen.<br />

Wegen ihrer großen Bedeutung, sollte eine Metrik <strong>für</strong> ASP die Übertragungskapazität<br />

<strong>und</strong> die Verlustrate vorrangig berücksichtigen. Die Metrik sollte es ermöglichen, zwischen<br />

unterschiedlichen Pfaden denjenigen Pfad zu wählen, der eine hohe Kapazität aufweist<br />

<strong>und</strong> dessen einzelne Verbindungen möglichst verlustarm sind. Letzteres hilft die Latenz<br />

zu minimieren <strong>und</strong> die erzielbare Übertragungsrate zu maximieren.<br />

Symmetrie von Verbindungen (nicht Routen oder Pfaden) ist <strong>für</strong> das Funktionieren<br />

von ASP notwendig. Der Gr<strong>und</strong> ist die Art <strong>und</strong> Weise wie ASP aktive Pfade etabliert.<br />

Empfängt ein Broker ein Abonnement Sx, das er nicht selbst bedienen kann, leitet er die<br />

Nachricht weiter <strong>und</strong> sendet sie an denjenigen Nachbarn, von dem er die Ankündigung<br />

Ax mit den minimalen Kosten empfangen hat. Das gilt analog <strong>für</strong> die Verbreitung von<br />

Veröffentlichungen, denn sie werden an Nachbarn gesendet, von denen Abonnements<br />

empfangen wurden. Die Hop-Count-Metrik erlaubt keine Aussagen über die Symmetrie<br />

von Verbindungen. Sie scheidet daher <strong>für</strong> den Einsatz in ASP aus.<br />

40


3. Konzept<br />

Neben Bandbreite, Verlustrate <strong>und</strong> Symmetrie einer Verbindung, hat die Auslastung<br />

Einfluss auf die Leistungsfähigkeit. Keine der in Abschitt 2.7 genannten Metriken berücksichtigt<br />

unmittelbar die Auslastung einer Verbindung. Dadurch wird das Oszillieren<br />

von Routen vermieden [DABM05]. Metriken wie ETT, die die Kapazität berücksichtigen,<br />

können <strong>für</strong> Oszillieren anfällig werden, wenn sie die verfügbare Bandbreite <strong>und</strong><br />

damit auch die Auslastung ausmessen [DPZ04]. Wird die Verbindungsauslastung nicht<br />

berücksichtigt, kann es bei ASP dazu kommen, dass Verbindungen, die eine gute Bewertung<br />

erhalten, in viele aktive Pfade eingeb<strong>und</strong>en werden. Wird eine Verbindung bei<br />

steigender Auslastung nicht abgewertet, steigt das Risiko, dass bei entsprechend starkem<br />

Datenverkehr die betreffende Verbindung überlastet wird.<br />

Die ebenfalls in Abschnitt 2.7 erläuterten Phänomene Intra- <strong>und</strong> Inter-Flow-Interferenz<br />

können in einem Netzwerk auftreten, sobald mehr als eine Funkverbindung im selben<br />

Frequenzband existiert. Davon ist im Szenario auszugehen (siehe Abschnitt 3.2). Die<br />

Phänomene können in diesem Umfeld bei Einsatz von ASP jedoch nicht durch den<br />

Einsatz der Metriken MIC oder WCETT vermieden werden. Broker besitzen nur ein<br />

sehr beschränktes Wissen über die Topologie des Netzwerkes. Sie kennen lediglich ihre<br />

Nachbarn. Um Inter-Flow-Interferenz vermeiden zu können, sind jedoch sehr detaillierte<br />

Informationen über den Zustand eines größeren Teils des Netzwerks erforderlich. ASP<br />

sieht keinen Mechanismus vor, solche Informationen auszutauschen oder zu erheben. Der<br />

Einsatz eines Protokolls zum Austausch solcher Statusinformationen würde das Netzwerk<br />

zusätzlich belasten. Eine Metrik wie MIC ist <strong>für</strong> den Einsatz in ASP ungeeignet,<br />

da die nötigen Informationen zur Bewertung der Pfade nicht zur Verfügung stehen. Das<br />

heterogene Umfeld <strong>für</strong> das ASP konzipiert ist, erschwert zusätzlich die Vermeidung von<br />

Intra-Flow-Interferenz. So funkt der WLAN-Standard IEEE 802.11g im 2,4-GHz-Band,<br />

genau wie Bluetooth [Rec06, S. 2 ff.]. Besitzt eine Station je eine Schnittstelle beider<br />

Technologien, sind Interferenzen unvermeidbar. Ähnlich wie MIC benötigt WCETT detailliertes<br />

Wissen über die Eigenschaften der Verbindungen entlang eines Pfades. Die<br />

Wechselwirkungen zwischen einzelnen Übertragungstechnologien müssten zudem in geeigneter<br />

Weise modelliert werden <strong>und</strong> in sämtlichen ASP-Stationen vorliegen. Aus den<br />

genannten Gründen eignet sich WCETT nicht <strong>für</strong> den Einsatz in ASP.<br />

Verglichen mit WCETT <strong>und</strong> MIC werden zur Berechnung von ETX <strong>und</strong> ETT wenige<br />

Daten benötigt. Konkret sind dies bei ETX die Verlustrate in Sende- <strong>und</strong> Empfangsrichtung<br />

zwischen zwei benachbarten Stationen. Voraussetzung <strong>für</strong> die Berechnung von ETT<br />

sind zusätzlich Informationen über die Bandbreite einer Verbindung <strong>und</strong> die Größe der<br />

zu sendenden Pakete. Verlustrate <strong>und</strong> Bandbreite betreffen ausdrücklich Paare jeweils<br />

unmittelbarer Nachbarn. Damit sind die Metriken kompatibel zu ASP, welches sich ausdrücklich<br />

auf Wissen über Nachbarschaftsbeziehungen beschränkt. ETT wird in [Ris09b]<br />

als Gr<strong>und</strong>lage <strong>für</strong> eine Metrik gewählt.<br />

41


3. Konzept<br />

3.4.2. Datenverarbeitung<br />

Auf die Geschwindigkeit der Verarbeitung von Veröffentlichungen durch Prozessoren<br />

haben die Anzahl <strong>und</strong> Größe der Eingabeveröffentlichungen großen Einfluss. Große<br />

Eingabedaten oder eine Vielzahl kleiner Veröffentlichungen können je nach Hardware<br />

nicht im Primärspeicher bearbeitet werden. Unabhängig davon ist der Verarbeitungsaufwand<br />

stark anwendungsabhängig. Der ASP-Broker sollte bei der Ermittlung der Verarbeitungsmetrik<br />

daher auf Informationen zurückgreifen, die von der Prozessoranwendung<br />

stammen. In [Ris09b] wird eine zeitbasierte Verarbeitungsmetrik angeregt. Machen<br />

die Prozessoranwendungen Schätzungen über die zu erwartende Verarbeitungszeit,<br />

so werden die beiden zuletzt genannten Punkte kombiniert. Auf welcher Gr<strong>und</strong>lage eine<br />

Prozessoranwendung die Schätzung macht, ist von Anwendung zu Anwendung stark<br />

unterschiedlich <strong>und</strong> muss daher im Einzelfall betrachtet werden. Generell lassen sich<br />

Erfahrungs- oder Messwerte (zum Beispiel Benchmarks) nutzen, um den zu erwartenden<br />

Aufwand <strong>und</strong> die Leistungsfähigkeit des Systems abzuschätzen.<br />

3.4.3. Metrik <strong>für</strong> ASP<br />

Eine Metrik, die <strong>für</strong> den Einsatz in ASP geeignet ist, verknüpft die Kosten des Datentransports<br />

<strong>und</strong> der Datenverarbeitung in geeigneter Weise. Als Transportmetrik sind<br />

sowohl ETX als auch ETT geeignet (siehe Abschnitt 3.4.1). ETT ermöglicht es, genauere<br />

Aussagen über die Qualität einer Verbindung zu treffen als ETX. Deshalb soll die Metrik<br />

ETT als ein Baustein <strong>für</strong> eine Metrik <strong>für</strong> ASP dienen. Da die Kontrollnachrichten<br />

von ASP kompakt sind <strong>und</strong> Veröffentlichungen einen sehr geringen Datenumfang kleiner<br />

oder gleich 100 Byte haben können, tritt insbesondere bei hohen Bandbreiten ein Problem<br />

auf. Rechnerisch beträgt die Übertragungsdauer <strong>für</strong> 100 Byte bei 100 MBit/s nur<br />

etwa 0,08 ms. Ein vernachlässigbar kleiner Wert verglichen mit Latenzen im Millisek<strong>und</strong>enbereich.<br />

ETT verliert unter diesen Umständen an Aussagekraft. Aus diesem Gr<strong>und</strong><br />

wird die Latenz einer Verbindung in Form der RTT (ro<strong>und</strong> trip time) zusätzlich <strong>für</strong> die<br />

Berechnung der Verbindungskosten herangezogen.<br />

Als Metrik <strong>für</strong> die Datenverarbeitung soll die geschätzte Dauer zur Erzeugung einer<br />

Veröffentlichung durch den Prozessor dienen. Wird eine Veröffentlichung P ′ aus den<br />

Veröffentlichungen P1, P2 bis Pn erzeugt, so beziffert die Prozessoranwendung den Zeitraum<br />

tproc, der wahrscheinlich zwischen dem Zeitpunkt, zu dem alle n Eingabeveröffentlichungen<br />

vorliegen <strong>und</strong> dem Zeitpunkt, bis P ′ erzeugt ist, vergehen wird. In Grafik<br />

3.5 wird die Definition illustriert.<br />

Allgemein ergeben sich die Kosten eines kompletten Pfades aus n Kanten aus der Summe<br />

der Kosten aller einzelnen Kanten.<br />

m =<br />

n�<br />

d(ei) (3.1)<br />

i=1<br />

42


3. Konzept<br />

P1 trifft ein<br />

P2 trifft ein<br />

P4 trifft ein<br />

P3 trifft ein<br />

t0<br />

Zeit<br />

Abbildung 3.5.: Die Zeit <strong>für</strong> die Umwandlung von P1 bis P4 nach P ′ ergibt sich als tproc =<br />

t1 − t0.<br />

P ’ steht bereit<br />

Für die Kosten einzelner Kanten (Verbindungen) e ergibt sich:<br />

d(e) = trtt<br />

2<br />

+ ETT + tproc<br />

(3.2)<br />

t1<br />

Bei von Prozessoren verarbeiteten Veröffentlichungen ist zusätzlich die Summe der Kosten<br />

aller Ausgangsveröffentlichungen zu berücksichtigen.<br />

d(e) = trtt<br />

2 + ETT + tproc +<br />

k�<br />

j=1<br />

ETT berechnet sich nach der auf Seite 18 genannten Formel.<br />

mj<br />

(3.3)<br />

Die Metrik, die die Gleichungen 3.1 <strong>und</strong> 3.3 definieren, unterscheidet sich von der in<br />

[Ris09b] vorgeschlagenen Metrik. Die hier verwendete Metrik berücksichtigt Änderungen<br />

der Größe von Veröffentlichungen nicht ausdrücklich. Die gewählte Metrik ist in diesem<br />

Punkt simpler. Das erleichtert das Nachvollziehen eines konkreten Routingvorgangs. Im<br />

vorgestellten Szenario mit genau einer Art Prozessor ist es zudem unerheblich, ob <strong>und</strong><br />

mit welcher Genauigkeit die Größe einzelner Veröffentlichungen bei der Berechnung der<br />

Metrik berücksichtigt wird. Erst wenn mehrere Prozessoren unterschiedlich verknüpft<br />

werden können, ist die genaue Größe von Veröffentlichungen entscheidend. Für umfangreichere<br />

Szenarien könnte die exakte Größe bei der Berechnung der ETT einfließen. Da<strong>für</strong><br />

wäre es notwendig, dass die (voraussichtliche) Größe von Veröffentlichungen mit den zugehörigen<br />

Ankündigungen verbreitet wird. Das ist bislang <strong>für</strong> ASP nicht vorgesehen. Der<br />

Ansatz wird hier aus den genannten Gründen nicht weiter verfolgt.<br />

43


4. Implementierung<br />

4. Implementierung<br />

Bislang existierte keine Implementierung von ASP <strong>für</strong> ein reales System. Der gesamte<br />

ASP-Stack wurde daher neu implementiert. Für die vollständige Umsetzung des Szenarios<br />

wurden die Anwendungen ebenfalls neu implementiert oder falls bestehende Lösungen<br />

verfügbar waren, wurden diese eingeb<strong>und</strong>en (siehe Abschnitt 4.2). In diesem Kapitel werden<br />

die Kernpunkte der Implementierung vorgestellt.<br />

4.1. Einleitung<br />

Die Implementierung der ASP-Middleware folgt der in den Abschnitten 2.4 <strong>und</strong> 2.5 beschriebenen<br />

Systemarchitektur: Auf jedem Knoten des Netzwerks ist ein Broker aktiv.<br />

Dieser Broker nutzt die Netzwerkabstraktionsschicht <strong>für</strong> die Kommunikation mit Brokern<br />

auf benachbarten Knoten. Anwendungen sind über die Anwendungsschnittstelle<br />

mit ihrem lokalen Broker verb<strong>und</strong>en.<br />

Die Middleware <strong>und</strong> der Großteil der Anwendungen wurden in Java auf der gleichnamigen<br />

Plattform implementiert. Ausschlaggebend <strong>für</strong> die Wahl von Java waren die<br />

hohe Codeportabilität, die Verfügbarkeit der Laufzeitumgebung auf vielen gängigen Betriebssystemen<br />

<strong>und</strong> die umfangreiche Standardbibliothek (siehe [Ull07]). Ein weiteres<br />

Argument <strong>für</strong> Java war zunächst die Option, die Software ohne eine komplette Neuimplementierung<br />

auf Mobilgeräte mit der Plattform J2ME zu portieren (siehe [BM06]).<br />

Dieses Vorhaben wurde wegen des hohen zu erwartenden Zeitaufwands verworfen. Aus<br />

Rücksicht auf das <strong>für</strong> die Versuche verfügbare Softwareumfeld wurde Java Version 5<br />

benutzt.<br />

Die Implementierung verbindet Anwendungen <strong>und</strong> Middleware in einem gemeinsamen<br />

Prozess. Diese Entscheidung wurde getroffen, um die Entwicklung zu vereinfachen.<br />

4.2. Anwendungen<br />

Die vier aus dem Szenario (siehe Abschnitt 3.2) bekannten Anwendungen werden in den<br />

folgenden Absätzen umrissen.<br />

44


4. Implementierung<br />

4.2.1. Rekorder<br />

Die Anwendung zur Sprachaufnahme nutzt die Java So<strong>und</strong> API <strong>für</strong> den Zugriff auf ein<br />

vorhandenes Mikrofon [Ora10]. Sie erlaubt die Aufzeichnung von Sprache in einem unkomprimierten<br />

Format in einer vorgegebenen Qualität. Die Aufzeichnung wird mit ASP<br />

an interessierte Subscriber übertragen. Die Ankündigungen enthalten das Datum der<br />

Aufzeichnung <strong>und</strong> Informationen zum Format der Audiodaten. Für die Übertragung<br />

(Veröffentlichung) wird der Strom der Audiodaten in Abschnitte von je ca. 1280 Byte<br />

aufgeteilt. Jeder dieser Abschnitte wird eigenständig veröffentlicht. Im Rahmen einer<br />

Aufzeichnung werden je nach Länge h<strong>und</strong>erte oder tausende Veröffentlichungen erzeugt.<br />

In das Programm wurde zudem ein Modus zum Playback bereits aufgezeichneter Aufzeichnungen<br />

aus Dateien integriert. In diesem Modus stammen die Audiodaten aus einer<br />

Datei, werden aber in Echtzeit veröffentlicht, wie es beim normalen Modus auch der<br />

Fall ist. Dieser Modus erleichtert es, die Experimente unter gleichen Bedingungen zu<br />

wiederholen <strong>und</strong> mindert den Aufwand bei der Durchführung der Experimente. Nicht<br />

zuletzt lässt sich die Audioaufnahme an Geräten simulieren, die Sprache nicht aufzeichnen<br />

können.<br />

4.2.2. Speicherung<br />

Das Programm zur Speicherung empfängt die Audiodaten des Rekorders <strong>und</strong> gibt sie<br />

weiter. Wie in Abschnitt 3.3.1 gefordert, wurde die Anwendung in eine Senke <strong>und</strong> eine<br />

Quelle aufgeteilt. Die Senke der Anwendung prüft zunächst den Inhalt der Ankündigungen.<br />

Bei Interesse abonniert die Anwendung die Veröffentlichungen <strong>und</strong> schreibt sie<br />

in eine Datei. Die Aufzeichnung wird beendet, wenn die Middleware der Senke meldet,<br />

dass Veröffentlichungen mit der ASP ID nicht länger zu erwarten sind. Die Informationen<br />

über das Aufzeichnungsdatum werden ebenfalls abgespeichert. Regelmäßig überprüft die<br />

Quelle der Anwendung, ob neue Aufzeichnungen abgespeichert wurden. Liegt eine neue<br />

Aufzeichnung vor, wird diese umgehend angekündigt. Die gespeicherte Aufzeichnung<br />

wird als eine große Veröffentlichung veröffentlicht.<br />

4.2.3. Konverter<br />

Die Anwendung zum Umwandeln der Audiodaten in ein komprimiertes Format untersucht<br />

ständig eingehende Ankündigungen. Kann das Programm die angekündigten Veröffentlichungen<br />

einer ASP ID verarbeiten, macht es eine entsprechende Ankündigung der<br />

verarbeiteten Daten. Dabei schätzt die Anwendung auch die zu erwartende Dauer der<br />

Umwandlung ab. Sie benutzt dazu die Dauer der angekündigten Audiodatei als Gr<strong>und</strong>lage.<br />

Diese Dauer wird durch die bekannte Umwandlungsgeschwindigkeit dividiert. Zum<br />

Beispiel beträgt der geschätzte Aufwand <strong>für</strong> die Umwandlung einer fünf Minuten langen<br />

Aufzeichnung auf einem Rechner, der mit 20facher Geschwindigkeit umwandeln kann<br />

5·60s<br />

20 = 15s. Der konkrete Geschwindigkeitsfaktor wird über eine Konfigurationsdatei<br />

festgelegt.<br />

45


4. Implementierung<br />

Geht eine gespeicherte Aufnahme ein, wird sie als Datei zwischengespeichert. Die Komprimierung<br />

übernimmt ein externes Programm. Für die Experimente wurde oggenc verwendet.<br />

Es ist Teil der freien vorbis-tools 1 . Das Programm wandelt die Audiodaten in<br />

das komprimierte Format Ogg/Vorbis um <strong>und</strong> wurde gewählt, weil es kostenlos <strong>für</strong> die<br />

Betriebssysteme Windows, Mac OS X <strong>und</strong> Linux auf unterschiedlichen Architekturen<br />

(x64/amd64, x86, ppc) verfügbar ist. Nach der Umwandlung wird das Ergebnis den<br />

interessierten Subscribern in Form einer Veröffentlichung zur Verfügung gestellt.<br />

4.2.4. Download<br />

Das Programm zum Download enthält nur die nötigsten Funktionen. Es zeigt dem Benutzer<br />

alle derzeit angekündigten ASP IDs <strong>und</strong> auf Wunsch den Inhalt der entsprechenden<br />

Ankündigungen an. Wählt der Anwender eine ID <strong>für</strong> den Download aus, abonniert das<br />

Programm die Veröffentlichung. Die erste Veröffentlichung dieser ID schreibt es in eine<br />

Datei <strong>und</strong> kündigt das Abonnement der ID umgehend.<br />

4.2.5. Weitere Anwendungen<br />

Neben den oben genannten Anwendungen wurden einige weitere Anwendungen entwickelt.<br />

Sie wurden in erster Linie während der Entwicklung der Middleware zu Test<strong>und</strong><br />

Diagnosezwecken eingesetzt. Eine der dabei entstandenen Anwendungen, kam auch<br />

während der Experimente zum Einsatz. Es handelt sich dabei um eine Dummy-Anwendung.<br />

Sie registriert sich beim Broker der Middleware als Senke. Die Anwendung arbeitet<br />

passiv. Ankündigungen werden auf dem Bildschirm ausgegeben, jedoch nie abonniert.<br />

Die ASP-Middleware dieser Anwendung verhält sich dabei wie bei allen anderen beschriebenen<br />

Anwendungen.<br />

4.3. Broker<br />

Der Broker ist die zentrale Komponente der implementierten ASP-Middleware. Unter anderem<br />

initialisiert der Broker die Netzwerkabstraktionsschicht, verwaltet Nachbarn <strong>und</strong><br />

Pfade, leitet Nachrichten weiter, überwacht Ankündigungen <strong>und</strong> stellt den registrierten<br />

Anwendungen die abonnierten Veröffentlichungen zur Verfügung.<br />

4.3.1. Multithreading<br />

Die Aufgaben des Brokers sind auf mehrere Threads verteilt. Es gibt je einen Thread<br />

<strong>für</strong> die Nachrichtenverarbeitung in Sende- <strong>und</strong> Empfangsrichtung. Daneben existieren<br />

zwei weitere Threads, die regelmäßige bzw. zeitlich verzögerte Operationen ausführen.<br />

1 http://www.vorbis.com/<br />

46


4. Implementierung<br />

Der Thread, der die empfangenen Nachrichten bearbeitet, ist zudem <strong>für</strong> das Starten <strong>und</strong><br />

Beenden der Middleware verantwortlich. Zu seinen weiteren Aufgaben zählen das Zusammensetzen<br />

fragmentierter Nachrichten <strong>und</strong> die Übergabe von Ankündigungen <strong>und</strong><br />

Veröffentlichungen an die beim Broker registrierten Anwendungen. Der ” Sender“ genannte<br />

Thread fragmentiert Nachrichten falls nötig, <strong>und</strong> übergibt die Nachrichten an<br />

die NAL-Implementierung.<br />

Der Thread ” TimeoutMonitor“ überwacht die Gültigkeit eingehender <strong>und</strong> ausgehender<br />

Ankündigungen. Sobald eine ausgehende Ankündigung zu verfallen droht, löst dieser<br />

Thread die Verlängerung der Ankündigung aus. Für die Implementierung wurde ein<br />

Wert von 80 % der Gültigkeit der Ankündigung gewählt. Hat eine Ankündigung zum<br />

Beispiel eine Gültigkeit von 10 s, wird sie nach 8 s automatisch verlängert. Wird eine<br />

eingehende Ankündigung nicht rechtzeitig verlängert, wird dies protokolliert <strong>und</strong> die<br />

bekannte Ankündigung wird komplett verworfen. Lokale Anwendungen, die Veröffentlichungen<br />

der betroffenen ASP ID abonniert haben, werden benachrichtigt.<br />

Der vierte Thread löst nach einer geringen Verzögerung den Versand von Abonnements<br />

aus. Auf diese Weise muss der Thread, der das Abonnement ursprünglich auslöst, seine<br />

Ausführung nicht pausieren. Die Verzögerung ist auf 100 ms festgelegt.<br />

4.3.2. Priorisierung<br />

Zum Aufbau aktiver Pfade verwendet ASP Ankündigungen <strong>und</strong> Abonnements (siehe<br />

Abschnitt 2.5.2). Die Ankündigungen werden regelmäßig aktualisiert. Erreicht eine Folgeankündigung<br />

einen Broker zu spät, hat dieser die Ankündigung <strong>und</strong> alle mit ihr<br />

verb<strong>und</strong>enen Pfade bereits verworfen. Damit Ankündigungen mit möglichst niedriger<br />

Verzögerung im Netz geflutet werden, werden Kontrollnachrichten <strong>und</strong> Veröffentlichungen<br />

unterschiedlich priorisiert. Dadurch wird vermieden, dass die Übertragung einer<br />

großen Veröffentlichung (bzw. ihrer Fragmente) die rechtzeitige Zustellung von Ankündigungen<br />

<strong>und</strong> anderen Kontrollnachrichten verhindert.<br />

Jede ausgehende oder weiterzuleitende Nachricht wird innerhalb des Brokers in genau<br />

eine von zwei Warteschlangen eingefügt. Veröffentlichungen werden an die eine, alle<br />

anderen Nachrichten an die andere Warteschlange angehängt. Der zuständige Thread<br />

bearbeitet immer erst die Warteschlange mit den Kontrollnachrichten <strong>und</strong> erst wenn<br />

sie leer ist, wird geprüft, ob in der zweiten Warteschlange Veröffentlichungen sind, die<br />

bearbeitet werden müssen.<br />

4.3.3. Fragmentierung<br />

Die Fragmentierung von Nachrichten wird getrennt <strong>für</strong> jeden Nachbarn vorgenommen.<br />

Der Broker kann dazu <strong>für</strong> jeden einzelnen Nachbarn die MTU (maximum transfer unit)<br />

erfragen. Veröffentlichungen werden erst dann fragmentiert, wenn sie größer als die MTU<br />

sind. Kontrollnachrichten werden generell nicht fragmentiert. Sind sie zu groß, werden<br />

47


4. Implementierung<br />

sie verworfen. Die Fragmentierung wurde so implementiert, dass eine eingehende, fragmentierte<br />

Veröffentlichung an jedem Broker zusammengesetzt wird. Erst danach wird<br />

sie bei Bedarf erneut fragmentiert <strong>und</strong> weitergeleitet. Dadurch wird vermieden, dass unvollständige<br />

Veröffentlichungen voreilig weitergeleitet werden <strong>und</strong> das Netzwerk unnötig<br />

belasten. Entlang jeder Verbindung wird zudem stets die höchstmögliche MTU verwendet.<br />

Im Gegenzug steigt die Übertragungslatenz jedoch an. Die Reihenfolge, in der die<br />

Fragmente einer Veröffentlichung beim Broker eintreffen, ist unbedeutend.<br />

4.4. Protokollierung<br />

Damit der Verlauf der Experimente nachvollzogen werden kann, protokolliert die Middleware<br />

relevante Aktionen in Dateien. Es wurden die von der Java-Standardbibliothek<br />

angebotenen Programmierschnittstellen genutzt, um diese Funktion zu realisieren. Zu<br />

den protokollierten Ereignissen zählen u.a. Ein- <strong>und</strong> Ausgang von Nachrichten, der Verlust<br />

von Nachbarschaftsbeziehungen <strong>und</strong> die Operationen Publish <strong>und</strong> Subscribe. Der<br />

genaue Umfang der zu protokollierenden Daten kann über eine Konfigurationsdatei festgelegt<br />

werden.<br />

4.5. NAL<br />

Die Netzwerkabstraktionsschicht wurde getrennt <strong>für</strong> Bluetooth auf der einen <strong>und</strong> Ethernet<br />

<strong>und</strong> WLAN auf der anderen Seite implementiert. Die beiden Implementierungen<br />

werden vom Broker über identische Schnittstellen angesprochen <strong>und</strong> auch in der Gegenrichtung<br />

werden dieselben Schnittstellen verwendet. Beide Implementierungen lassen<br />

sich unabhängig voneinander oder parallel betreiben. Über eine Konfigurationsdatei des<br />

Brokers lässt sich festlegen, welche NAL-Implementierung(en) geladen <strong>und</strong> verwendet<br />

werden. Damit die Middleware den Betrieb aufnimmt, müssen alle konfigurierten NAL-<br />

Implementierungen korrekt starten.<br />

In den nächsten Unterabschnitten werden die beiden Implementierungen genauer vorgestellt.<br />

4.5.1. Priorisierung<br />

Die in Abschnitt 4.3.2 beschriebene Priorisierung von Kontrollnachrichten <strong>und</strong> Veröffentlichungen<br />

wird in beiden NAL-Implementierungen fortgesetzt. Kontrollnachrichten<br />

werden mit einer höheren Priorität behandelt als Veröffentlichungen. Es sind Implementierungen<br />

der Netzwerkabstraktionsschicht denkbar, die anders vorgehen, um Kontrollnachrichten<br />

zügig zu verbreiten. In der vorliegenden Implementierung wurde darauf jedoch<br />

verzichtet <strong>und</strong> auf dasselbe Verfahren zurückgegriffen, dass sich im Broker bewährt<br />

hat.<br />

48


4. Implementierung<br />

4.5.2. Ethernet <strong>und</strong> WLAN via UDP<br />

Die NAL-Implementierung <strong>für</strong> Ethernet <strong>und</strong> WLAN basiert auf UDP/IP. Die <strong>für</strong> diese<br />

Arbeit wichtigsten Eckpunkte von IP <strong>und</strong> UDP werden in Abschnitt 2.8.1 <strong>und</strong> 2.8.2<br />

genannt. Auf weitere Literatur wird verwiesen. Die Implementierung des NAL <strong>für</strong> UDP<br />

wird im folgenden als UdpNAL bezeichnet.<br />

ASP wurde so konzipiert, dass die Netzwerkabstraktionsschicht von beliebigen Techniken<br />

der Sicherungsschicht (OSI-Layer 2) oder höher abstrahiert [Ris09a]. Um den Implementierungsaufwand<br />

zu reduzieren, wurde entschieden, die Implementierung des NAL<br />

<strong>für</strong> Ethernet <strong>und</strong> WLAN auf UDP/IP aufzubauen. Mit der Socket-Schnittstelle existiert<br />

eine verbreitete API <strong>für</strong> die Datenübertragung mit UDP/IP (<strong>und</strong> anderen Protokollen)<br />

[Tan03, SFR04]. In Java ist sie auf allen genutzten Plattformen identisch [Ull07].<br />

Das Protokoll UDP ist auf der Transportschicht (Layer 4) des OSI-Referenzmodells angesiedelt<br />

<strong>und</strong> damit über der Sicherungsschicht angesiedelt. Es wurde soweit wie möglich<br />

darauf verzichtet, besondere Eigenschaften oder Merkmale von IP oder UDP zu nutzen.<br />

UDP/IP wird in der implementierten Software weitgehend so genutzt, als sei es ein<br />

Protokoll der Sicherungsschicht. Insbesondere wird die Fähigkeit von IP, zwischen unterschiedlichen<br />

Netzen zu routen, nicht genutzt. Die Kommunikation über UDP beruht<br />

in der Implementierung, wie von ASP gefordert, auf Nachbarschaftsbeziehungen.<br />

Um Nachbarn zu erkennen, sendet der UdpNAL in regelmäßigen Abständen spezielle<br />

Nachrichten per Broadcast an das eigene Subnetz aus. Je nach Konfiguration wird da<strong>für</strong><br />

eine gerichtete oder die eingeschränkte Broadcastadresse genutzt (siehe Abschnitt 2.8.1).<br />

Diese regelmäßigen Signale wurden mit der Ermittlung der Verlustraten in Sende- <strong>und</strong><br />

Empfangsrichtung verknüpft. Die Raten werden ermittelt, damit die Kosten der Verbindungen<br />

berechnet werden können. Ferner ermittelt der UdpNAL eigenständig die RTT<br />

(ro<strong>und</strong> trip time) zu allen bekannten Nachbarn. Wird von einem Nachbarn über einen<br />

längeren Zeitraum gar nichts empfangen, gilt dieser Nachbar als verloren.<br />

Eine weitere Aufgabe des UdpNAL ist die Sicherung der Übertragungen zu den Nachbarn.<br />

Für diese Funktion wurde ein einfaches Stop-and-Wait-Protokoll implementiert<br />

[Tan03, S. 208 ff.]. Es hat den Nachteil, dass es aufgr<strong>und</strong> hoher Latenz- <strong>und</strong> Verarbeitungszeiten<br />

sehr ineffizient arbeitet. Übertragungen sind daher langsam. Es ist davon<br />

auszugehen, dass der Einsatz von TCP/IP dieses Problem behoben hätte. Allerdings ist<br />

TCP in seinen Diensteigenschaften weit weniger mit Ethernet oder WLAN vergleichbar<br />

als UDP, weshalb darauf verzichtet wurde.<br />

Auch die Aufgaben des UdpNAL sind auf mehrere Threads aufgeteilt. So sind einige der<br />

Operationen wie der Nachrichtenempfang (receive()) blockierend <strong>und</strong> werden von separaten<br />

Threads ausgeführt. Andere Aktionen, wie die Messung der Verlustrate, müssen<br />

in regelmäßigen zeitlichen Abständen ausgeführt werden <strong>und</strong> wurden deshalb ebenfalls<br />

in eigene Threads ausgelagert.<br />

49


4. Implementierung<br />

4.5.3. Bluetooth via OBEX<br />

Die Implementierung der Bluetooth-Netzwerkabstraktionsschicht wird nachfolgend kurz<br />

als BtNAL bezeichnet. Für den Zugriff auf die Bluetooth-Hard- <strong>und</strong> Software nutzt sie<br />

die in JSR-82 spezifizierten Schnittstellen [Mot08]. Um sie zur Laufzeit nutzen zu können,<br />

wird ein Bluetooth-Stack <strong>für</strong> Java benötigt, der diese Spezifikation implementiert. Die<br />

implementierte Middleware verwendet dazu die freie Software BlueCove 2 . Der Stack<br />

wurde während der Entwicklung der ASP-Middleware erfolgreich auf allen genutzten<br />

Plattformen eingesetzt <strong>und</strong> funktionierte auch mit unterschiedlicher Bluetooth-Hardware<br />

ohne nennenswerte Probleme.<br />

Für die Datenübertragung verwendet der BtNAL OBEX auf Gr<strong>und</strong>lage von GOEP (siehe<br />

Abschnitt 2.8.4). Möchte ein Broker b1 via BtNAL eine Nachricht zu einem benachbarten<br />

Broker b2 versenden, etabliert b1 eine OBEX-Sitzung. Die Operation PUT wird<br />

anschließend genutzt, um ASP-Nachrichten vom Client b1 zum Server b2 zu übertragen.<br />

Der Client nutzt GET um die Übertragungslatenz (RTT) zwischen den beiden Bluetooth-<br />

Nachbarn zu ermitteln.<br />

Der BtNAL scannt die Umgebung periodisch nach neu hinzugekommenen Bluetooth-<br />

Geräten. Da die Scans sehr zeitintensiv sind <strong>und</strong> andere Übertragungen stören können,<br />

kommt ein adaptives Verfahren zum Einsatz. Der zeitliche Abstand zwischen zwei aufeinanderfolgenden<br />

Scans wird beträchtlich erhöht, sobald mindestens ein anderes Bluetooth-<br />

Gerät bekannt ist, auf dem die ASP-Middleware erreicht werden konnte. Der BtNAL<br />

nimmt keinen Einfluss auf die Sichtbarkeit des genutzten Bluetooth-Adapters bezüglich<br />

Inquiry Scans. Der Modus ist daher bei Bedarf mit den Mitteln des Betriebssystems zu<br />

konfigurieren.<br />

Ähnlich wie beim UdpNAL werden auch die Aufgaben des BtNAL von mehreren Threads<br />

gemeinsam erfüllt. Einer von ihnen löst die zuvor beschriebenen regelmäßigen Scans<br />

aus. Zusätzlich wird <strong>für</strong> jeden Nachbarn, der eine Verbindung zum BtNAL aufbaut, ein<br />

Thread erzeugt. Weil Bluetooth-Operationen vergleichsweise hohe Verzögerungen aufweisen<br />

können, wird auch in Senderichtung bei Bedarf <strong>für</strong> jeden Nachbarn ein separater<br />

Thread gestartet. Die dabei aufgebauten OBEX-Sitzungen bleiben so lange wie möglich<br />

bestehen.<br />

Der BtNAL enthält keine Maßnahmen zur Sicherung der Bluetooth-Übertragungen vor<br />

Verlust. Der Schutz wird von den genutzten Protokollen bereits sichergestellt. Da die<br />

verwendete Programmierschnittstelle keinen Zugriff auf die tatsächlichen Fehlerraten<br />

gewährt, wird bei allen Bluetoothübertragungen 1 als Wert <strong>für</strong> ETX (siehe Abschnitt<br />

2.7.2) angenommen. Das heißt, der BtNAL geht von fehlerfreien Verbindungen aus. Aus<br />

Sicht des BtNAL ist dies korrekt. Es gibt jedoch die reale Situation nicht optimal wieder,<br />

da es in der Praxis durchaus zu Störungen <strong>und</strong> damit zur Wiederholung von Übertragungen<br />

kommen kann.<br />

2 http://bluecove.org/<br />

50


4. Implementierung<br />

Die Fragmentierung die vom Bluetooth-Stack automatisch vorgenommen wird, wird nur<br />

eingeschränkt benutzt. Damit ein zeitliches Multiplexing von ASP-Kontrollnachrichten<br />

<strong>und</strong> Veröffentlichungen ausgeführt werden kann, veranlasst der BtNAL den Broker Nachrichten<br />

zu fragmentieren. Alle Nachbarn, die über Bluetooth verb<strong>und</strong>en sind, geben dazu<br />

eine feste MTU vor. Ohne die Fragmentierung würde der Bluetooth-Stack auch eine mehrere<br />

Megabyte große Veröffentlichung – <strong>für</strong> den BtNAL transparent – zu einem Nachbarn<br />

übertragen. Alle anderen Übertragungen zu diesem Nachbarn müssten jedoch auf das<br />

Ende der anhaltenden Übertragung warten. Dies würde bei Bluetooth aufgr<strong>und</strong> der<br />

verglichen mit Ethernet <strong>und</strong> WLAN niedrigen Übertragungsraten <strong>und</strong> den daraus resultierenden<br />

langen Übertragungszeiten häufig zum Ablauf von Ankündigungen führen.<br />

4.6. Nachrichtenformat<br />

Für die Implementierung der ASP-Middleware war es erforderlich das Format der Nachrichten,<br />

die die Broker untereinander austauschen, zu spezifizieren. Gr<strong>und</strong>lage bildet der<br />

Vorschlag aus [Ris09a], der jedoch ergänzt <strong>und</strong> konkretisiert wurde. Die Struktur der<br />

Nachrichten ist im Anhang auf Seite 76 wiedergegeben. In diesem Abschnitt werden<br />

einzelne, besonders interessante Aspekte des Nachrichtenformats beschrieben.<br />

Die beiden ersten Felder (TYPE, TTL; je ein Byte) sind bei allen Nachrichten vorhanden<br />

<strong>und</strong> wurden neu eingeführt. Das erste Byte dient der Identifizierung des Nachrichtentyps.<br />

Es werden die fünf Nachrichtentypen Announcement, Subscription, Unsubscription, Publication<br />

<strong>und</strong> Brokenpath unterschieden. Das zweite Byte beinhaltet die TTL (time to<br />

live) der Nachricht. Sie wird vor jeder Weiterleitung einer Nachricht verringert. Sie dient<br />

in der Auswertung der Experimente zum besseren Verständnis der Abläufe. Von der<br />

Implementierung wird das Feld stets mit dem Wert 127 initialisiert. Insbesondere hat<br />

eine neue Nachricht, die erstmals zu einem Nachbarn verschickt wird, bei ihrer Ankunft<br />

die TTL 127.<br />

Die Werte der Felder Kosten (8 Byte) <strong>und</strong> die Gültigkeit (4 Byte) werden als ganzzahlige<br />

Anzahl von Millisek<strong>und</strong>en interpretiert. Bei typischen Werten von einigen h<strong>und</strong>ert Millisek<strong>und</strong>en<br />

bis zu einigen zehn oder h<strong>und</strong>ert Sek<strong>und</strong>en bleiben im Feld <strong>für</strong> die Kosten eine<br />

Reihe von Bytes ungenutzt. Sie können <strong>für</strong> zukünftige Erweiterungen genutzt werden. So<br />

wurde in Abschnitt 3.4.3 bereits angedeutet, dass es bei einer möglichen Erweiterung der<br />

Metrik notwendig werden könnte, Schätzungen über die Größe von Veröffentlichungen<br />

in den Ankündigungen zu transportieren.<br />

Für die Fragmentierung von Veröffentlichungen enthalten Nachrichten vom Typ Publication<br />

zwei Felder (je vier Byte). In einem ist die Größe der gesamten Nutzlast gespeichert,<br />

im anderen der Byteoffset der Daten, die in der jeweiligen Nachricht transportiert werden.<br />

An dieser Stelle wird noch einmal betont, dass die Nachrichten keine Informationen<br />

über ihre Länge enthalten. Diese Information wird auf Ebene der Broker nicht explizit<br />

51


4. Implementierung<br />

benötigt. Dies folgt aus den Anforderungen, dass die Netzwerkabstraktionsschicht Nachrichten<br />

stets komplett an den Broker übergibt. Diese <strong>und</strong> weitere Anforderungen an die<br />

Netzwerkabstraktionsschicht stehen in Abschnitt 3.3.2 beschrieben.<br />

4.7. Metrik<br />

Die Implementierung folgt dem in Abschnitt 3.4.3 beschriebenen Ansatz. Als Einheit der<br />

Kosten wurden Millisek<strong>und</strong>en gewählt. Die Auflösung beträgt eine ganze Millisek<strong>und</strong>e.<br />

Die zur Berechnung nötigen Angaben werden von dem NAL, den Prozessoranwendungen<br />

<strong>und</strong> den Ankündigungen geliefert. Die Kosten sämtlicher eingehender <strong>und</strong> lokaler<br />

Ankündigungen sind dem Broker bekannt. Löst ein Prozessor eine Ankündigung aus,<br />

informiert er den Broker über die ASP IDs, die der Ankündigung zugr<strong>und</strong>e liegen. Die<br />

Kosten werden aufsummiert. Daneben gibt der Prozessor die verlangte Schätzung über<br />

den Bearbeitungsaufwand <strong>für</strong> das Verarbeiten der Veröffentlichung(en) ab. Die Berechnungsgr<strong>und</strong>lage<br />

<strong>für</strong> die Konverteranwendung wird in Abschnitt 4.2.3 erläutert. Sie wird<br />

zu den Kosten der neuen Ankündigung addiert.<br />

Die beiden Implementierungen der Netzwerkabstraktionsschicht liefern die verbleibenden<br />

Daten (siehe Seite 48 ff.). Dazu gehört die RTT. Sie wird, wie in der Formel 3.3 (S. 43)<br />

beschrieben ist, in die Kostenberechnung einbezogen.<br />

Besonders die Parameter S (Größe) <strong>und</strong> B (Bandbreite) zur Berechnung der ETT (siehe<br />

Abschnitt 2.7.3) sind mit Blick auf die Implementierung im NAL interessant. Für den<br />

Parameter S wurde im gesamten System ein fester Wert von 200.000 Byte gewählt. Ein<br />

Kompromiss, da niedrigere Werte dazu führen können, dass der Faktor S<br />

B<br />

gerade bei ho-<br />

hen Bandbreiten einen ebenfalls sehr niedrigen Wert annimmt <strong>und</strong> damit das Produkt<br />

(ETX) an Gewicht verliert <strong>und</strong> keinen Vergleich von unterschiedlich guten Verbindungen<br />

auf Basis von ETX mehr ermöglicht. Die Bandbreite B wird über eine Konfigurationsdatei<br />

vorgegeben. Während der Entwicklung wurde zunächst ein Verfahren implementiert,<br />

dass die verfügbare Bandbreite sowohl über Bluetooth als auch über UDP misst. Es zeigte<br />

sich jedoch, dass die Ergebnisse dieser Messungen sehr lastabhängig <strong>und</strong> außerdem<br />

plattformabhängig waren. Dies kann im Endeffekt zu Oszillation von Routen führen. Das<br />

Verfahren wurde aus diesem Gr<strong>und</strong> verworfen. Die fest konfigurierten Werte vermeiden<br />

das Problem <strong>und</strong> ermöglichen zusätzliche eine bessere Reproduzierbarkeit der Versuche.<br />

52


5. Experimenteller Ansatz<br />

5. Experimenteller Ansatz<br />

Es wird ein experimenteller Ansatz verfolgt, um die Leistungsfähigkeit von ASP zu beurteilen.<br />

In Experimenten, die so konzipiert sind, dass sie gezielt relevante Teilaspekte<br />

von PPS / ASP untersuchen, werden die nötigen Daten gesammelt. Das in Abschnitt<br />

3.2 beschriebene Szenario <strong>und</strong> die dort präsentierten Anwendungen bilden die Gr<strong>und</strong>lage<br />

der Experimente. Diese Experimente <strong>und</strong> welche Eigenschaften von ASP, mit ihnen<br />

geprüft werden können, werden im folgenden erläutert. Die Anforderungen, denen die<br />

Experimente gerecht werden müssen, stehen dabei im Vordergr<strong>und</strong>. Nur wenn die Rahmenbedingungen<br />

erfüllt sind, lassen die Experimente Aussagen über das implementierte<br />

System zu.<br />

Die Versuche werden mit der in Kapitel 4 vorgestellten Software ausgeführt. Zum besseren<br />

Verständnis der Versuchsergebnisse (siehe Kapitel 6) wird der allgemeine Versuchsaufbau<br />

in Abschnitt 5.2 umrissen.<br />

5.1. Experimente<br />

Bevor einzelne Experimente vorgestellt werden, wird ein weiteres Mal auf die in Abschnitt<br />

3.2.1 zusammengefassten Ziele von ASP verwiesen. Die Experimente helfen,<br />

schrittweise die Erfüllung der aus den Zielen abgeleiteten Hypothesen in einem realen<br />

System zu überprüfen. Konnte gezeigt werden, dass eines oder mehrere der Ziele<br />

zufriedenstellend erfüllt werden, dienen weitere Experimente, die Effizienz zu ermitteln,<br />

mit der das Ergebnis erreicht wurde. Dabei spielen Punkte wie der Ressourcenverbrauch<br />

eine Rolle. Weiterhin ist interessant wie das praktische System auf Störungen reagiert.<br />

Die räumliche Entkopplung ist dann gegeben, wenn ein Publisher im Experiment einem<br />

Subscriber Nachrichten übermitteln kann, ohne dass die einzelnen Akteure wissen,<br />

wer genau die Nachrichten empfängt bzw. von wo sie stammen. Es wird angenommen,<br />

dass dies erfüllt ist, wenn Publisher <strong>und</strong> Subscriber nicht auf direktem Wege Nachrichten<br />

miteinander austauschen können. Zwischen den beiden Seiten vermittelt allein die ASP-<br />

Middleware. Direkte Kommunikation ist insbesondere dann nicht möglich, wenn beide<br />

Seiten unterschiedliche Kommunikationstechniken verwenden, also physisch getrennt<br />

sind. Verwenden sie kompatible Netzwerktechniken, müssen diese so abgeschottet werden,<br />

dass der Nachrichtenaustausch auf herkömmlichem Wege nicht möglich ist (logische<br />

Trennung). Die logische Trennung kann bei IP-basierten Netzwerken dadurch erfolgen,<br />

dass diese in mehrere Subnetze unterteilt werden (siehe Abschnitt 2.8.1). Für die Un-<br />

53


5. Experimenteller Ansatz<br />

tersuchung der räumlichen Entkopplung ist kein eigenständiges Experiment vorgesehen,<br />

denn der Aspekt spielt in jedem der Experimente eine Rolle.<br />

D<br />

R<br />

139.30.216.58/22<br />

S C<br />

139.30.3.5/26<br />

Abbildung 5.1.: Die logische Trennung eines Netzwerks in zwei IP-Subnetze. D <strong>und</strong> R<br />

sind per WLAN mit einem Access Point verb<strong>und</strong>en, der mit Knoten S<br />

verb<strong>und</strong>en ist. S hat eine zweite Verbindung in ein weiteres Subnetz, an<br />

das C angeschlossen ist.<br />

In einem weiteren Experiment wird die zeitliche Entkopplung von ASP geprüft.<br />

Empfängt ein Subscriber, eine Veröffentlichung, die zu einem Zeitpunkt verbreitet wurde,<br />

als der Subscriber nicht aktiv oder erreichbar war, ist die zentrale Anforderung erfüllt.<br />

Ein Experiment ( ” X5“) widmet sich besonders diesem Aspekt. Entscheidend ist dabei<br />

der zeitliche Ablauf der Aktionen. Am Experiment sind mehrere Knoten beteiligt. Einige<br />

von ihnen übernehmen die Rollen Aufzeichnung, Speicherung <strong>und</strong> Umwandlung (siehe<br />

Seite 28 ff.). Sie werden zuerst gestartet. Die Rolle Download wird von mehreren weiteren<br />

Knoten übernommen. Daneben existieren Knoten, auf denen keine Anwendung<br />

läuft, sondern nur die ASP-Middleware. Erst nachdem eine Aufzeichnung abgeschlossen<br />

wurde, wird die Download-Anwendung (<strong>und</strong> mit ihr die Middleware) auf einem der betreffenden<br />

Knoten gestartet. Nach erfolgtem Download wird sie beendet <strong>und</strong> dann ein<br />

weiterer Download auf einem anderen Knoten gestartet. Dieser Ablauf stellt sicher, dass<br />

• die Operation Publish ausgeführt wird, wenn kein Subscriber aktiv ist, <strong>und</strong><br />

• die Veröffentlichung bei ihrer ersten Verbreitung nicht von allen potenziellen Subscribern<br />

empfangen werden kann.<br />

Die semantische Entkopplung ermöglicht Senken durch Einbeziehung von Prozessoren<br />

Daten zu empfangen, die sie nicht selbstständig verarbeiten können oder möchten.<br />

Um ihre Funktionsfähigkeit im Szenario zu überprüfen, ist es notwendig mindestens einen<br />

Prozessor in die Kommunikation zwischen Publisher <strong>und</strong> Subscriber einzubinden. Das<br />

Szenario hält da<strong>für</strong> die Weitergabe eines Audiomitschnitts mit anschließender Konvertierung<br />

<strong>und</strong> Download bereit. Da dies ein wichtiger Bestandteil des Szenarios ist, spielt<br />

dieser Vorgang in allen Experimenten eine Rolle.<br />

Kann ASP die zentralen funktionalen Anforderungen erfüllen, ist es weiter interessant zu<br />

betrachten, wie effizient ASP / PPS diese Ziele erreicht. In Abschnitt 2.1 wird ausgeführt,<br />

54


5. Experimenteller Ansatz<br />

dass ASP im Kern ein Routingproblem lösen möchte. In einem Experiment ( ” X1“) wird<br />

ASP daher mit unterschiedlichen Routingalternativen konfrontiert. Dies bedeutet,<br />

dass mehrere mögliche Routen zwischen Publisher <strong>und</strong> Subscriber existieren. Dabei wird<br />

in unterschiedlichen Varianten des Experiments untersucht, wie ASP bei äquivalenten<br />

Bedingungen reagiert. Die Bandbreite, erreichbare Zuverlässigkeit <strong>und</strong> Übertragungstechnik<br />

ausgewählter Verbindungen sind in diesen Experimenten vergleichbar. Da jedoch<br />

in einem heterogenen Umfeld die Bedingungen häufig variieren, wird zusätzlich das Verhalten<br />

bei unterschiedlichen Bedingungen untersucht. Diese lassen sich durch Nutzung<br />

unterschiedlicher Übertragungsraten <strong>und</strong> Verbindungstechniken herstellen.<br />

Unterschiedliche Routen können sich auch durch unterschiedlich leistungsfähige<br />

Prozessoren ergeben. Daher wird in einem weiteren Experiment ( ” X3“) das Verhalten<br />

des Systems untersucht, wenn entweder gleich leistungsstarke oder unterschiedlich<br />

leistungsstarke Prozessoren <strong>für</strong> die Aufgabe der Konvertierung zur Verfügung stehen.<br />

Dabei ist wichtig, dass sich die Leistungsfähigkeit der Hardware im einen Fall gleicht<br />

oder im anderen Fall signifikant unterscheidet.<br />

Ein weiteres Maß mit dem sich die Effizienz von ASP beschreiben lässt, ist die Höhe<br />

des Verwaltungsaufwands. Die Anzahl der Nachrichten <strong>und</strong> die Datenmenge, die<br />

übertragen werden müssen, sind zwei Kenngrößen. Sie werden in einem weiteren Experiment<br />

( ” X2“) erfasst. Um die Vergleichbarkeit der Messwerte zu gewährleisten, werden<br />

Werte auf Ebene der Broker gemessen. Alle weiteren Nachrichten, die z.B. zum<br />

Verbindungsauf- oder -abbau auf Ebene der Netzwerkabstraktionsschicht oder zur Sicherung<br />

der Übertragung usw. genutzt werden, werden nicht gezählt. Es werden nur die<br />

in Tabelle 2.2 auf Seite 14 genannten Nachrichten bzw. deren Umsetzung in der realen<br />

Implementierung (siehe Abschnitt 4.6) berücksichtigt.<br />

Es wird auch untersucht, wie ASP mit Störungen umgeht. In einer Variante eines der<br />

Experimente zur Untersuchung der Routen werden einzelne Verbindungen gezielt beeinträchtigt.<br />

ASP sollte in der Lage sein, seine Aufgabe in der Gegenwart von Störungen<br />

so gut wie möglich zu erfüllen <strong>und</strong> zum Beispiel zuverlässige Routen bevorzugen.<br />

Wie bereits beschrieben wurde, ist <strong>für</strong> einige Experimente der Einsatz unterschiedlicher<br />

Verbindungstechniken vorgesehen. Dieses Ziel wird bei der Wahl der Hard- <strong>und</strong><br />

Softwareplattformen <strong>für</strong> die Experimente berücksichtigt. Jedes Experiment ist ferner<br />

so angelegt, dass zumindest zwei gänzlich unterschiedlich leistungsstarke Knoten an den<br />

Versuchen beteiligt sind. Dabei kommen auch unterschiedliche Plattformen zum Einsatz.<br />

5.2. Versuchsaufbau<br />

In den folgenden Abschnitten wird der Versuchsaufbau skizziert. Die Details zum Aufbau<br />

der einzelnen Experimente können den Abbildungen in Anhang B.3 sowie den Versuchsprotokollen<br />

entnommen werden. Die Protokolle befinden sich auf dem Datenträger.<br />

55


5. Experimenteller Ansatz<br />

5.2.1. Hardwareumfeld<br />

Bei den praktischen Versuchen kam eine Reihe von Computern zum Einsatz. Sie unterscheiden<br />

sich in ihrer Prozessorarchitektur, Rechen- <strong>und</strong> Speicherkapazität, den Netzwerkschnittstellen<br />

<strong>und</strong> im Formfaktor. In Tabelle 5.1 werden die wichtigsten Informationen<br />

zu den Rechnern zusammengefasst. Detaillierte Angaben stehen in Anhang B.4.<br />

Auf der einen Seite standen drei unterschiedliche PCs. Diese sind (1) ein Desktop-PC<br />

mit moderner 64-Bit-x86-CPU, 8 GB Speicher <strong>und</strong> einer Ethernetverbindung, (2) ein<br />

Apple iBook G4 mit PowerPC-CPU <strong>und</strong> integriertem WLAN <strong>und</strong> Ethernet, <strong>und</strong> (3) ein<br />

weiterer Desktop mit einer älteren x86-CPU, USB-WLAN-Adapter <strong>und</strong> Ethernet.<br />

Daneben standen drei Linutops zur Verfügung. Es handelt sich dabei um kompakte<br />

Rechner, die eine x86-CPU <strong>und</strong> eine Ethernet-Schnittstelle besitzen. Sie verfügen nicht<br />

über eingebauten Festspeicher. Das Betriebssystem wurde von USB-Sticks gestartet, auf<br />

denen auch die Nutzerdaten gespeichert waren.<br />

Ein weiteres System wurde auf dem 64-Bit-Desktop-PC mit VirtualBox 1 virtualisiert.<br />

Zur Vernetzung standen ein WLAN-Router (802.11bg) mit eingebautem Ethernet-Switch<br />

<strong>und</strong> ein weiterer Switch zur Verfügung. Bei Bedarf wurden die Rechner <strong>für</strong> einzelne<br />

Experimente über USB mit WLAN- oder Bluetooth-Adaptern bestückt.<br />

Die Versuche wurden in einem Wohnumfeld ausgeführt. In der Wohngegend existieren<br />

viele Funknetze. In einer Messung konnten mit einem Notebook über 20 unterschiedliche<br />

WLAN-Funkzellen erkannt werden. Daneben konnte gelegentlich die Anwesenheit weiterer<br />

Bluetooth-Geräte im Umfeld der Versuche registriert werden. Diese waren jedoch<br />

sehr sporadisch.<br />

5.2.2. Softwareumfeld<br />

Es kamen während der Experimente mehrere Betriebssysteme <strong>und</strong> Java-Laufzeitumgebungen<br />

zum Einsatz. Genauere Details können der Tabelle B.2 im Anhang entnommen<br />

werden.<br />

Während der Experimente kamen die Betriebssysteme Debian, Ubuntu Server <strong>und</strong> open-<br />

SUSE Linux sowie Mac OS X <strong>und</strong> Windows Vista zum Einsatz. Tabelle 5.1 gibt einen<br />

Überblick, welches Betriebssystem auf welchem Rechner genutzt wurde.<br />

5.2.3. Beispielaufbau <strong>und</strong> -ablauf<br />

Eines der Experimente wird detaillierter besprochen. Auf diese Weise werden an einem<br />

Beispiel der Aufbau <strong>und</strong> der Ablauf der Experimente veranschaulicht. Die weiteren Experimente<br />

ähneln dem hier vorgestellten Experiment (Nummer 1, Variante 1, Versuchsreihe<br />

1 http://www.virtualbox.org/<br />

56


5. Experimenteller Ansatz<br />

Hostname Hardware Betriebssystem<br />

debian virtuell Debian Linux<br />

Enif iBook G4 (PPC) Mac OS X<br />

Hyadum-II x86 Desktop-PC openSUSE Linux<br />

Kajam x64 Desktop-PC Vista 64 Bit<br />

linutop (lt) x86 PC Ubuntu Server<br />

linutop2 (lt2) x86 PC Ubuntu Server<br />

linutopk (ltk) x86 PC Ubuntu Server<br />

Tabelle 5.1.: Kurzübersicht der Rechner, die <strong>für</strong> die Experimente genutzt wurden. Für<br />

weitere Details siehe Anhang B.4.<br />

2) in Aufbau <strong>und</strong> Ablauf. Sie unterscheiden sich vor allem in der jeweils untersuchten<br />

Eigenschaft des Systems <strong>und</strong> in den bewusst gewählten Randbedingungen.<br />

Ziel des Experiments X1v1R2 2 war es, das Verhalten des Systems in der Gegenwart von<br />

Störungen zu untersuchen.<br />

An den Versuchen waren fünf Knoten beteiligt. Es handelte sich dabei um die Systeme<br />

debian, Enif, Kajam, linutop (lt) <strong>und</strong> linutop2 (lt2; siehe Tabelle 5.1). Bis auf Enif waren<br />

alle Computer per Ethernet in einem gemeinsamen IP-Subnetz verb<strong>und</strong>en. Enif, lt <strong>und</strong><br />

lt2 waren in einem Ad-Hoc-WLAN (siehe dazu Seite 23 f.) zu einem zweiten IP-Subnetz<br />

verb<strong>und</strong>en. Das heißt, dass lt <strong>und</strong> lt2 zwei aktive Netzwerkverbindungen besaßen. Die<br />

Skizze auf Seite 80 stellt diese Konfiguration dar.<br />

Die aus dem Szenario bekannten Rollen (siehe Abschnitt 3.2.2) waren wie folgt verteilt:<br />

Hostname Rolle<br />

debian Speicherung (S)<br />

Kajam Konverter (C)<br />

Enif Download (D)<br />

Tabelle 5.2.: Die Rollenverteilung in Experiment 1, Variante 1, Versuchsreihe 2.<br />

Auf einen Rechner zur Aufzeichnung (R) wurde bei diesem Experiment verzichtet. Die<br />

Anwendung zur Speicherung (S) wurde immer mit derselben vorbereiten Aufzeichnung<br />

gestartet. Auf den Knoten lt <strong>und</strong> lt2 lief die Dummy-Anwendung (siehe Abschnitt 4.2.5).<br />

Aufgabe der beiden Rechner war es, jeweils eine alternative Verbindung zwischen Enif<br />

<strong>und</strong> dem Rest des Netzwerks zu erlauben.<br />

Um Störungen zu erzeugen, wurde ein spezielles Skript auf lt bzw. lt2 verwendet. Wird<br />

es auf einem der beiden Rechner gestartet, deaktiviert es in regelmäßigen Intervallen<br />

den angeschlossenen WLAN-Adapter. Nach einer Wartezeit wird er wieder aktiviert.<br />

2 Gemeint ist Experiment 1, Variante 1, Reihe 2. Die verwendeten Kürzel zur Bezeichnung von Experimenten<br />

<strong>und</strong> Versuchen werden auf Seite 77 näher beschrieben.<br />

57


5. Experimenteller Ansatz<br />

Die Dauer der beiden Phasen ” WLAN an“ <strong>und</strong> ” WLAN aus“ konnten getrennt definiert<br />

werden. Es wird darauf hingewiesen, dass die so erzeugten Störungen synthetisch<br />

sind. Außerhalb der Versuchsumgebung sind andere Störungen zu erwarten. Für die<br />

Experimente hatte dieses Vorgehen jedoch den entscheidenden Vorteil, dass die Versuche<br />

leichter zu wiederholen waren. Zudem konnten die Störungen erzeugt werden, ohne<br />

zusätzliche Geräte einzusetzen. Diese hätten möglicherweise unbeteiligte Nutzer in der<br />

Umgebung beeinträchtigen können.<br />

Die Versuche liefen so ab, dass zunächst das Skript gestartet wurde, welches in regelmäßigen<br />

Intervallen das WLAN stört. Es wurde erst nach Abschluss des letzten Versuchs<br />

einer Reihe beendet. Der Ablauf eines einzelnen Versuchs begann mit dem Start<br />

der Anwendungen auf allen Knoten. Die Reihenfolge wurde im Versuchsprotokoll festgehalten.<br />

Nach einer Wartezeit von etwa einer Minute begann der Download am Knoten<br />

Enif. Nachdem er abgeschlossen war, wurden alle Anwendungen beendet. Damit war der<br />

Versuch abgeschlossen.<br />

Im konkreten Experiment wurden die Versuche mehrmals wiederholt, wobei das <strong>für</strong> die<br />

Störungen verantwortliche Skript mit unterschiedlichen Parametern entweder auf lt oder<br />

auf lt2 gestartet wurde. Zum Vergleich wurden die Versuche mit demselben Aufbau, aber<br />

ohne die künstlichen Störungen wiederholt.<br />

58


6. Auswertung<br />

6. Auswertung<br />

In den folgenden Abschnitten werden die Ergebnisse der Experimente beleuchtet. Tabelle<br />

B.1 (S. 78) gibt eine Übersicht der durchgeführten Versuche. Die Versuche sind unterteilt<br />

nach Experiment, Variante <strong>und</strong> Versuchsreihe. Die Versuche eines Experiments haben<br />

einen ähnlichen Ablauf <strong>und</strong> eine gemeinsame Zielstellung. Die Versuche verschiedener<br />

Varianten eines Experiments unterscheiden sich geringfügig im Messaufbau, wie z.B.<br />

Verteilung der Rollen <strong>und</strong> der Art der Verbindungen zwischen Nachbarn. Bestimmte<br />

Abkürzungen werden verwendet, um einzelne oder mehrere Versuche zu bezeichnen.<br />

Eine ausführliche Erklärung dieser Bezeichner kann Anhang B.1 entnommen werden.<br />

Das Schema kann ebenso verwendet werden, um auf die Messprotokolle <strong>und</strong> Rohdaten<br />

der Versuche auf dem Datenträger zuzugreifen.<br />

Die Auswertung der Versuchsergebnisse erfolgt dabei entlang der Hypothesen aus Abschnitt<br />

1.2, die aus diesem Gr<strong>und</strong> hier noch einmal wiedergegeben werden.<br />

1. Das System funktioniert in einem heterogenen Umfeld.<br />

2. Die Kommunikation ist räumlich entkoppelt <strong>und</strong><br />

3. erfolgt auf Gr<strong>und</strong>lage von Nachbarschaftsbeziehungen.<br />

4. Das System arbeitet mit einem niedrigen Verwaltungsaufwand.<br />

5. Die zeitliche Entkopplung der Kommunikation ist gewährleistet.<br />

6. Unter den alternativen Übertragungswegen wird ein effizienter gewählt.<br />

7. Gestörte Übertragungswege werden vermieden <strong>und</strong><br />

8. unterschiedliche Übertragungstechnologien können genutzt werden.<br />

9. Für die Datenverarbeitung werden die leistungsfähigsten der verfügbaren Geräte<br />

eingeb<strong>und</strong>en.<br />

Welche Versuche vordergründig genutzt wurden, um die einzelnen Hypothesen zu untersuchen,<br />

gibt Tabelle 6.1 wieder. Bei der Auswertung werden Versuchsergebnisse, die<br />

mit den Erwartungen übereinstimmen, zusammengefasst. Alle Fälle, in denen die Ergebnisse<br />

von den Erwartungen abwichen, werden anhand der vorliegenden Daten genauer<br />

untersucht.<br />

59


6. Auswertung<br />

Untersuchungsaspekt Versuche<br />

Heterogenität alle<br />

Räumliche Entkopplung alle<br />

Nachbarschaftsbeziehungen alle, außer X3<br />

Verwaltungsaufwand X2<br />

Zeitliche Entkopplung X5R2<br />

Alternative Übertragungswege X1v1, X1v2<br />

Gestörte Übertragungswege X1v1R2<br />

Alternative Übertragungstechniken X1v2<br />

Alternative Prozessoren X3<br />

Tabelle 6.1.: Die untersuchten Aspekte <strong>und</strong> die Versuche, die genutzt wurden, um Aussagen<br />

über die Aspekte zu treffen. Siehe Tab. B.1.<br />

6.1. Heterogenität<br />

ASP wurde <strong>für</strong> den Einsatz in heterogenen Netzen konzipiert. Dieses Ziel wurde bei der<br />

Implementierung berücksichtigt. Die in Abschnitt 5.1 eingeführten Experimente sind<br />

so angelegt, dass sie eine heterogene Umgebung zugr<strong>und</strong>e legen. Für die Durchführung<br />

der Experimente standen sehr unterschiedliche Rechner zur Verfügung. Damit sind die<br />

Voraussetzungen erfüllt, um ASP in einem heterogenen Umfeld zu testen.<br />

Es wird angenommen, dass die Implementierung von ASP in dem gegebenen Testumfeld<br />

auf allen verfügbaren Plattformen <strong>und</strong> mit unterschiedlichen Netzwerktechniken<br />

funktioniert. Diese Hypothese konnte in den praktischen Versuchen bestätigt werden.<br />

Bei den Experimenten kamen in Summe sieben verschiedene Rechner zum Einsatz, die<br />

fünf verschiedene Hard- bzw. Softwareplattformen einsetzten. Für die Kommunikation<br />

wurden die Technologien WLAN, Ethernet <strong>und</strong> Bluetooth verwendet, wobei unterschiedliche<br />

Hardware zum Einsatz kam. In sämtlichen Versuchen konnten die ASP-Middleware<br />

<strong>und</strong> die darauf aufbauenden Anwendungen ausgeführt werden. Die Middleware hat stets<br />

Nachrichten mit mindestens einem benachbarten Broker austauschen können.<br />

Lediglich ein einziger Rechner (linutop2) konnte bei einem der Versuche keine Nachrichten<br />

austauschen (X5R2/X5O). Die Ursache <strong>für</strong> dieses Verhalten konnte anhand der<br />

Logdateien nicht geklärt werden. Aus ihnen geht jedoch hervor, dass die Kommunikation<br />

nur teilweise eingeschränkt war. Der einzige Nachbar (Hyadum-II), mit dem linutop2<br />

zum Zeitpunkt des Versuchs kommunizieren konnte, hat linutop2 als Nachbarn registriert.<br />

Das lässt darauf schließen, dass Übertragungen in eine Richtung funktionierten.<br />

6.2. Räumliche Entkopplung<br />

Das Ziel der räumlichen Entkopplung wurde bei der Gestaltung der Anwendungsschnittstelle<br />

berücksichtigt. Keine Quelle kann eine Nachricht veröffentlichen <strong>und</strong> dabei einen<br />

60


6. Auswertung<br />

oder mehrere Empfänger spezifizieren. Auf der anderen Seite erfährt keine Senke je den<br />

Absender einer Veröffentlichung. Werden diese Schnittstellen im Experiment erfolgreich<br />

eingesetzt um Veröffentlichungen zu verbreiten, wird angenommen, dass räumliche Entkopplung<br />

vorliegt.<br />

In jedem der durchgeführten Experimente nutzten die Anwendungen die ihnen gegebenen<br />

Schnittstellen um mit anderen Anwendungen zu kommunizieren – unabhängig davon,<br />

auf welchem Knoten diese aktiv waren. Mit der auf Gr<strong>und</strong>lage von ASP implementierten<br />

Middleware ist es demnach möglich, dass Anwendungen mittels Publish/Subscribe<br />

räumlich entkoppelt Daten austauschen können.<br />

6.3. Nachbarschaftsbeziehungen<br />

Gr<strong>und</strong>lage der Betrachtungen in diesem Abschnitt ist die Definition des Begriffs Nachbarschaft.<br />

Zwei Broker seien benachbart, wenn sie ohne die Hilfe eines oder mehrerer<br />

weiterer Broker, allein mit den ihnen zur Verfügung stehenden Netzwerkschnittstellen<br />

Daten austauschen können. Es folgen Beispiele in denen Nachbarschaft angenommen<br />

wird.<br />

• Zwei Broker, die in einem Bluetooth-Piconetz organisiert sind.<br />

• Zwei Broker, die in einem gemeinsamen IP-Subnetz verb<strong>und</strong>en sind.<br />

Bis auf Experiment 3 sind alle durchgeführten Experimente geeignet, die Kommunikation<br />

im Netzwerk auf Gr<strong>und</strong>lage von Nachbarschaftsbeziehungen zu zeigen. Experiment 3<br />

eignet sich nicht, weil alle teilnehmenden Rechner in einem IP-Subnetz verb<strong>und</strong>en sind<br />

(siehe Abbildung S. 82) <strong>und</strong> im Experiment keine anderen Kommunikationstechniken zur<br />

Verfügung stehen. Die Kommunikation über Nachbarschaftsbeziehungen ist hier trivial.<br />

Es wird davon ausgegangen, dass die Kommunikation auf Basis von Nachbarschaftsbeziehungen<br />

dann korrekt funktioniert, wenn alle Broker eines Netzwerks, die nicht benachbart<br />

sind, dennoch Nachrichten austauschen können.<br />

Aus den Experimenten geht deutlich hervor, dass Broker, die nicht benachbart gewesen<br />

sind, dennoch Nachrichten austauschen konnten. Insbesondere waren auch die angeb<strong>und</strong>enen<br />

Anwendungen in der Lage mit Hilfe der Middleware Veröffentlichungen zu<br />

verbreiten <strong>und</strong> zu empfangen.<br />

Der erfolgreiche Nachrichtenaustausch lässt sich zum Beispiel an den Ergebnissen von<br />

Experiment X1v2R1 nachvollziehen. Bei dem Experiment hatte der Rechner linutop2,<br />

an dem der Download ausgeführt wurde, zwei Verbindungen zum Rest des Netzwerks<br />

(siehe Skizze auf Seite 80). Eine Verbindung bestand über ein Ad-Hoc-WLAN, die andere<br />

über Bluetooth. In jedem der Versuche konnte der Anwendung der Download, also die<br />

transparent verarbeitete Veröffentlichung, zugestellt werden, obwohl Quelle <strong>und</strong> Senke<br />

nicht benachbart waren <strong>und</strong> weder auf Ebene von IP noch Bluetooth direkt kommunizieren<br />

konnten. Parallel dazu wurden neben anderen Kontrollnachrichten vor allem<br />

61


6. Auswertung<br />

Ankündigungen verbreitet. Tabelle 6.2 illustriert dies anhand einiger Zahlen. Die Werte<br />

geben wieder, wie viele Ankündigungen im Verlauf der Versuche beim Knoten linutop2<br />

eingingen. Alle Ankündigungen wurden ursprünglich von Brokern versandt, mit denen<br />

der Broker auf linutop2 nicht direkt kommunizieren kann.<br />

Versuch A B C D E F G H I J K L<br />

Ank. S 11 13 14 13 8 14 13 13 14 11 13 13<br />

Ank. C 9 11 11 11 6 11 10 11 11 9 11 11<br />

Tabelle 6.2.: Anzahl der in Experiment 1, Variante 2, Reihe 1 bei linutop2 eingegangenen<br />

Ankündigungen der gespeicherten Aufzeichnung (Ank. S) <strong>und</strong> der konvertierten<br />

Aufzeichnung (Ank. C).<br />

6.4. Verwaltungsaufwand<br />

Experiment 2 wurde speziell durchgeführt um den Verwaltungsaufwand zu ermitteln, den<br />

die ASP-Implementierung verursacht, um ihre Aufgaben zu erfüllen. Bevor detailliert auf<br />

die Ergebnisse eingegangen wird, wird erläutert, wie die Datenmengen gezählt wurden<br />

<strong>und</strong> wie der Verwaltungsaufwand berechnet wurde.<br />

Die Erfassung der Datenmengen folgte dem in Abschnitt 5.1 vorgestellten Ansatz <strong>für</strong><br />

Experiment 2. Es wurden gr<strong>und</strong>sätzlich nur die Nachrichten <strong>und</strong> ihr Umfang auf Ebene<br />

der Broker erfasst. Bei der weiteren Berechnung wurden alle übertragenen Daten<br />

außer der Nutzlast, die mit Veröffentlichungen transportiert wurde, als Verwaltungsdaten<br />

betrachtet. Das bedeutet, dass insbesondere Ankündigungen, Abonnements, deren<br />

Kündigungen usw. zu 100 % als Verwaltungsdaten betrachtet wurden.<br />

Um die Effizienz der Implementierung zu bestimmen, wurde zunächst bestimmt, wie umfangreich<br />

die Nutzdaten sind. Das bedeutet, dass ermittelt wurde wieviele Audiodaten<br />

in jedem der Versuche zu transportieren waren. Diese Zahl ist nicht bei allen Versuchen<br />

identisch, sondern schwankt leicht. Es kam bei der Übertragung der Aufzeichnung zum<br />

Speicher zu vereinzelten Verlusten von Veröffentlichungen. Die Gründe da<strong>für</strong> werden<br />

an anderer Stelle diskutiert. Verlust bei der Übertragung der Audiomitschnitte bedeutet,<br />

dass die Datei, die in das Archiv geschrieben wird, gegenüber einem vollständig<br />

übertragenen Mitschnitt entsprechend kleiner ist. Dadurch ändert sich auch der Umfang<br />

der Daten, die an den Prozessor weitergegeben werden. Und auch die komprimierte<br />

Audiodatei hat eine andere Größe, wenn sich die Ausgangsdaten ändern.<br />

Die Vorgehensweise lässt sich an zwei Beispielen verdeutlichen. Bei Versuch X2R2/X2A<br />

kam es nicht zum Verlust von Veröffentlichungen. Es wurden also alle 1105 Veröffentlichungen<br />

(1.413.166 Byte Audiodaten) vom Rekorder übertragen <strong>und</strong> der Speicheranwendung<br />

zugestellt. Zum Konverter wurden 1.413.210 Byte 1 übertragen. Die komprimierte<br />

Audiodatei hat eine Größe von 255515 Byte. In Summe sind dies 1413166 + 1413210 +<br />

1 1.413.166 Byte + 44 Byte zusätzlicher Dateikopf<br />

62


6. Auswertung<br />

255515 = 3081891 Byte. Bei Versuch X2R2/X2L kam es zum Verlust einer Veröffentlichung.<br />

Die Zahlen, die sich in diesem Fall ergeben, sind 1413166 + 1411930 + 255688 =<br />

3080784 Byte. Die Nutzdaten umfassen demnach bei Versuch X2A 3.081.891 Byte <strong>und</strong><br />

bei Versuch X2L 3.080.784 Byte. Die Effizienz wurde durch Division des Umfangs der<br />

eben beschriebenen Nutzdaten durch den Datenumfang aller versendeten Nachrichten<br />

berechnet. Dies hat zur Folge, dass red<strong>und</strong>ate Übertragungen von Nutzdaten ebenfalls<br />

als Verwaltungsaufwand gewertet werden. Unter idealen Bedingungen sollte jede Veröffentlichung<br />

nur so oft wie nötig übertragen werden.<br />

Die Gültigkeit von Ankündigungen hat einen Einfluss auf das von der Middleware generierte<br />

Datenvolumen. Haben Ankündigungen eine kurze Gültigkeit, werden sie häufig<br />

verlängert <strong>und</strong> es werden entsprechend mehr Ankündigungen im Netzwerk verbreitet.<br />

Für alle Versuche zu Experiment 2 wurden folgende Werte gewählt:<br />

• Rekorder: 4.000 ms<br />

• Speicher: 20.000 ms<br />

• Konverter: 10.000 ms<br />

Für die Ankündigungen des Rekorders wurden 4 Sek<strong>und</strong>en gewählt, damit bei Bedarf<br />

besonders schnell auf Störungen auf dem Übertragungsweg vom Rekorder zum Speicher<br />

reagiert werden kann.<br />

Es wurden zwei Versuchsreihen des X2 aufgenommen. Im folgenden werden die Ergebnisse<br />

der Versuche aus X2R2 betrachtet. X2R1 wurde verworfen. Die Versuche wurden mit<br />

einer Softwareversion ausgeführt, die noch unvollständig war <strong>und</strong> einige kleinere Fehler<br />

enthielt. Allerdings sind die vorläufigen Zahlen, die sich aus der Auswertung von X2R1<br />

ergaben, durchaus mit denen von X2R2 vergleichbar.<br />

Der Ablauf der Versuche war folgender: Zunächst wurden die Speicher-, die Konverter<strong>und</strong><br />

die Downloadanwendung gestartet. Nach einer Minute Wartezeit wurde der Rekorder<br />

im Wiedergabemodus gestartet, d.h. das eine definierte <strong>und</strong> immer identische<br />

Aufzeichnung aufgenommen wurde (siehe Abschnitt 4.2.1). Nach Abschluss der Aufzeichnung,<br />

wurde der Download gestartet. Nach erfolgtem Download wurden alle Programme<br />

beendet. Alle im Verlauf des Versuchs übertragenen ASP-Nachrichten gingen<br />

in die Auswertung ein.<br />

Die Auswertung der protokollierten Daten aus den Versuchen ergab nach deren Aufbereitung<br />

eine durchschnittliche Effizienz der Implementierung von 91,5 %. Abbildung 6.1<br />

bietet einen genaueren Blick auf die Ergebnisse der Auswertung. Es fällt auf, dass bei<br />

der Mehrheit der Versuche eine Effizienz von r<strong>und</strong> 97 % erreicht werden konnte.<br />

Daneben fallen die anderen Versuche auf, bei denen die Effizienz auf bis zu 78 % (X2R2/<br />

X2E) sank. X2R2/X2P wird weiter unten getrennt betrachtet. Der Gr<strong>und</strong> <strong>für</strong> das Absinken<br />

der Effizienz sind red<strong>und</strong>ate Übertragungen von Veröffentlichungen des Rekorders.<br />

Diese Red<strong>und</strong>anz wurde durch Änderungen der Routen ausgelöst. Nach dem der neue<br />

63


6. Auswertung<br />

Pfad mit einem Abonnement aktiviert wurde, wurden bisher erzeugte Veröffentlichungen<br />

aus dem Cache des Publishers übertragen. Abhängig vom Zeitpunkt der Routenänderungen<br />

hatte sich der Cache <strong>für</strong> Veröffentlichungen bereits unterschiedlich stark<br />

gefüllt.<br />

Die niedrige Effizienz in Versuch X2R2/X2P kann nicht auf dieselbe Weise erklärt werden.<br />

Es kam zu einer doppelten Übertragung der gespeicherten Aufzeichnung zum Konverter.<br />

Sie war des Ergebnis einer nicht abgefangenen Race Condition. Es kam zu einer<br />

zeitlichen Überschneidung von drei Ereignissen. Zunächst empfing der Konverter eine<br />

Folgeankündigung des gespeicherten Mitschnitts (1). Zu diesem Zeitpunkt hatte der<br />

Konverter Interesse an der Veröffentlichung <strong>und</strong> hatte diese bereits abonniert. Nur circa<br />

90 ms nach dem Eintreffen der Ankündigung verschickte der Konverter die Kündigung<br />

des Inhalts (2). Das verzögerte Abonnement, welches durch die Folgeankündigung ausgelöst<br />

wurde, wurde etwa 20 ms nach der Kündigung verschickt (3).<br />

6.5. Zeitliche Entkopplung<br />

Mit Experiment 5 diente das aufwändigste aller durchgeführten Experimente dem gezielten<br />

Test der zeitlichen Entkopplung des implementierten Systems. Alle Aussagen <strong>und</strong><br />

Ergebnisse, die sich auf die Versuchsreihe X5R2 beziehen, lassen den Versuch X5R2/X5K<br />

gänzlich außen vor. Bei diesem Versuch kam es zu einem Bedienfehler. Im Gegenzug<br />

wurde ein Versuch mehr durchgeführt, als ursprünglich geplant gewesen war. Die Versuchsanordnung<br />

ist auf Seite 81 abgebildet.<br />

Es wird davon ausgegangen, dass das implementierte System die Kommunikation zwischen<br />

Publisher <strong>und</strong> Subscriber zeitlich entkoppelt, falls die Subscriber Veröffentlichungen<br />

unter bestimmten Randbedingungen empfangen können. Diese Randbedingungen<br />

umfassen, dass der oder die Subscriber während der Ausführung der Operation Publish<br />

nicht aktiv oder empfangsbereit waren. Der Versuchsablauf von Experiment 5 stellt diese<br />

Bedingung dadurch sicher, dass auf zwei unterschiedlichen Rechnern nacheinander die<br />

konvertierte Audiodatei heruntergeladen wird. Die Download-Anwendungen <strong>und</strong> mit ihnen<br />

die Middleware sind auf keinem der beiden Rechner zeitgleich aktiv.<br />

In allen Versuchen des Experiments 5, Reihe 2 konnte auf beiden Knoten die konvertierte<br />

Datei erfolgreich heruntergeladen werden. Das lässt den Schluss zu, dass das implementierte<br />

System die zeitliche Entkopplung korrekt umsetzt.<br />

Die Aussage wird ebenfalls durch X5R1 untermauert. Allerdings müssen Einschränkungen<br />

gemacht werden. Der zweite Download konnte in einigen Fällen nicht korrekt abgeschlossen<br />

werden. Diese Probleme stehen jedoch in keinem Zusammenhang zur zeitlichen<br />

Entkopplung. Bei den Versuchen X5R1/X5B, /X5F <strong>und</strong> /X5G musste der Versand der<br />

Veröffentlichung auf der Verbindung zu dem zweiten Rechner (linutop2) wiederholt werden.<br />

Aufgr<strong>und</strong> eines Softwarefehlers schlug die Wiederholung fehl. Dieser Fehler wurde<br />

bis zur Ausführung der Versuche X5R2 korrigiert. Die Situation in Versuch X5R1/X5O<br />

wurden bereits in Abschnitt 6.1 beschrieben.<br />

64


6. Auswertung<br />

100 %<br />

5000000<br />

4500000<br />

95 %<br />

4000000<br />

90 %<br />

3500000<br />

85 %<br />

3000000<br />

Effizienz<br />

80 %<br />

2500000<br />

Datenmenge [Bytes]<br />

2000000<br />

75 %<br />

1500000<br />

70 %<br />

1000000<br />

65 %<br />

500000<br />

60 %<br />

A B C D E F G H I J K L M N O P Q R S T<br />

Versuch<br />

Abbildung 6.1.: Der Verwaltungsaufwand in Experiment 2, Reihe 2.<br />

0<br />

gespeicherte Aufnahme (Nutzdaten)<br />

konvertierte Aufnahme (Nutzdaten)<br />

Effizienz (netto Soll : brutto Ist)<br />

Summe aller Daten (inkl. Kontrollnachrichten)<br />

Aufnahme (Nutzdaten)<br />

65


6. Auswertung<br />

Es wurde weiterhin beobachtet, dass sich die Reaktionszeiten des Systems durch das<br />

Caching von Veröffentlichungen verbessern. Der Konverter konnte sämtliche Publikationen,<br />

die von linutop2 abonniert wurden, aus dem Cache zustellen. Im Cache lag die<br />

Veröffentlichung bereits vor, weil linutop diese zuvor abonniert hatte. Die gespeicherte<br />

Aufnahme wurde daraufhin abonniert, übertragen, konvertiert, im Cache abgelegt <strong>und</strong><br />

an die Downloadanwendung auf linutop übertragen. In Abbildung 6.2 werden die Zeiten<br />

zwischen Versand des Abonnements <strong>und</strong> dem Eingang der Veröffentlichung verglichen.<br />

Zeit [ms]<br />

12000<br />

10000<br />

8000<br />

6000<br />

4000<br />

2000<br />

0<br />

A B C D E F G H I J L M N O P Q R S T U<br />

Versuch<br />

Download auf linutop<br />

Download auf linutop2<br />

Abbildung 6.2.: Ein Vergleich der Downloadzeiten der konvertierten Audioaufnahme aus<br />

X5R2. Durch den Einsatz des Caches <strong>für</strong> Veröffentlichungen konnte die<br />

Übertragungszeit beim zweiten Download deutlich reduziert werden.<br />

6.6. Alternative Übertragungswege<br />

Das Routing von Nachrichten ist eine der Kernaufgaben von ASP. Um die (korrekte)<br />

Funktionsweise des Routings zu ermitteln, wurde eine Vielzahl von Versuchen durchgeführt.<br />

In diesem Abschnitt werden die Ergebnisse der Versuche besprochen, die der<br />

Middleware die Wahl zwischen unterschiedlichen Transportwegen ließen. In Abschnitt<br />

6.9 werden die Ergebnisse von Versuchen beschrieben, die unterschiedlich leistungsstarke<br />

Prozessoren gegenüberstellen.<br />

Die Experimente X1v1 <strong>und</strong> X1v2 untersuchen, ob das implementierte System Nachrichten<br />

korrekt <strong>und</strong> effizient transportiert. In X1v1R1 wurden Übertragungswege mit<br />

unterschiedlichen Bandbreiten gegenübergestellt. X1v1R2 wurde durchgeführt, um das<br />

Routing in Gegenwart von Störungen zu überprüfen. Die Middleware musste in X1v2R1<br />

zwischen den beiden unterschiedlichen Netzwerktechniken WLAN <strong>und</strong> Bluetooth (siehe<br />

Abschnitt 2.8.3 <strong>und</strong> 2.8.4) wählen.<br />

Die Netzwerktopologie in den Versuchen X1v1R1 war so angelegt, dass der Download der<br />

konvertierten Audiodatei über eine von zwei möglichen Verbindungen übertragen wer-<br />

66


6. Auswertung<br />

den musste. Beides waren WLAN-Verbindungen nach 802.11bg. Eine der beiden Verbindungen<br />

wurde während der Versuche mit einer festen Bitrate von 1 MBit/s, 11 MBit/s,<br />

54 MBit/s oder mit automatischer Bitratenwahl betrieben, die andere durchgängig mit<br />

automatischer Bitratenwahl. Durchsatzmessungen im Vorfeld der Versuche ergaben, dass<br />

sich die erzielten Nettodatenraten bei 54 MBit/s nur geringfügig von denen bei automatischer<br />

Bitratenwahl unterschieden. Dies legt den Schluss nahe, dass bei automatischer<br />

Bitratenwahl meistens 54 MBit/s verwendet wurden.<br />

Vor diesem Hintergr<strong>und</strong> sind deshalb zunächst die Ergebnisse bei 1 <strong>und</strong> 11 MBit/s interessant.<br />

Es wurde eine Auswertung der Kosten vorgenommen, die die Metrik <strong>für</strong> Ankündigungen<br />

ermittelte, die bei dem Computer eingingen, auf dem der Download ausgeführt<br />

wurde. Die durchschnittlichen Kosten der beiden alternativen Verbindungen wurden verglichen.<br />

Erwartungsgemäß sollte die Veröffentlichung auf der Verbindung transportiert<br />

worden sein, die die niedrigsten Kosten hat. Hierzu ist anzumerken, dass es bei den<br />

Versuchen bei 11 MBit/s einmal zum Verlust der Veröffentlichung kam. In allen anderen<br />

Versuchen von X1R1 wurde die Veröffentlichung zugestellt.<br />

Bei 1 MBit/s wählte die vorliegende Implementierung von ASP in 83 % der Versuche die<br />

erwartete Route, bei 11 MBit/s waren es 85 %. Es gab zwei unterschiedliche Ursachen,<br />

dass in Ausnahmefällen die vermeintlich langsamere Verbindung <strong>für</strong> die Übertragung<br />

genutzt wurde. Der häufigere Gr<strong>und</strong> war, dass Ankündigungen entlang der besseren<br />

Verbindung (vorübergehend) überhaupt nicht oder zu spät eintrafen. Daraufhin wurde<br />

die Route geändert <strong>und</strong> <strong>für</strong> den Rest des Versuchs beibehalten. Der andere Gr<strong>und</strong> war,<br />

dass eine der Verbindungen überhaupt nicht zustande kam oder in einer frühen Phase<br />

des Experiments abbrach wie dies z.B. in Versuch X1v1R1@1M/X1I der Fall war. Hier<br />

hat die Implementierung die einzige funktionierende Verbindung gewählt.<br />

Tabelle 6.3 fasst die ermittelten durchschnittlichen Kosten über alle Versuche X1R1 zusammen.<br />

Es sind die Kosten der Pfade vom Speicher (Quelle) zum Download (Senke)<br />

unter Einbeziehung des Konverters (Prozessor). Genauere Angaben können den Abbildungen<br />

B.6 bis B.9 im Anhang B.5 entnommen werden.<br />

Aus der Tabelle geht hervor, dass sich die über linutop2 ermittelten Kosten in den Versuchen,<br />

bei denen linutop2 mit 54 MBit/s bzw. automatischer Bitratenwahl funkte, nur<br />

minimal von den Werten entlang von linutop unterschieden. Umso überraschender ist es,<br />

dass sich zum Beispiel bei den Versuchen mit 54 MBit/s in 10 von 12 Fällen die Route<br />

über linutop durchsetzen konnte, die (immer) automatische Bitratenwahl nutzte. Zieht<br />

man die Ergebnisse aus den Versuchen hinzu, in denen beide Verbindungen automatische<br />

Bitratenwahl verwendeten, zeichnet sich ab, dass die Verbindung über linutop im<br />

Durchschnitt geringfügig besser eingeschätzt wurde.<br />

Um die Ursache dieser Beobachtung zu klären, wurde <strong>für</strong> sämtliche Versuche aus X1R1<br />

zusätzlich der Wert des Feldes TTL aus dem Nachrichtenkopf der Ankündigungen ausgewertet.<br />

Die Versuche bei 1 MBit/s <strong>und</strong> 11 MBit/s werden im folgenden nicht weiter<br />

berücksichtigt, da sich die Kosten der beiden alternativen Routen erwartungsgemäß stark<br />

unterscheiden. Mit Hilfe der TTL kann nachvollzogen werden, über wie viele Knoten eine<br />

67


6. Auswertung<br />

Nachricht bereits weitergeleitet wurde. Die Auswertung ergab die folgenden Beobachtungen.<br />

Bei 54 MBit/s sind die durchschnittlichen Kosten einer Route in 11 von 12 Fällen<br />

dann geringer, wenn auch die Ankündigungen im Durchschnitt über weniger Knoten weitergeleitet<br />

wurden. Bei automatischer Bitratenwahl ist das Verhältnis 13 aus 17, wenn<br />

man die Versuche unberücksichtigt lässt, in denen über linutop gar keine Ankündigungen<br />

empfangen wurden. Tabelle 6.3 gibt die durchschnittliche Anzahl der Hops aller Ankündigungen<br />

des Downloads wieder. Es werden nur die Ankündigungen berücksichtigt, die<br />

bei Enif eingingen.<br />

Bitrate Kosten Hops Kosten Hops<br />

bei linutop2 via linutop via linutop2<br />

1 MBit/s 2900,31 2,6 6363,26 2,5<br />

11 MBit/s 2813,26 2,4 3228,32 2,6<br />

54 MBit/s 2752,62 2,3 2752,66 2,6<br />

auto 2739,08 2,3 2753,04 2,7<br />

Tabelle 6.3.: Die durchschnittliche Kosten <strong>für</strong> die Übertragung der konvertierten Audiodatei<br />

in den Versuchen aus Experiment 1, Variante 1, Reihe 1. Daneben ist die<br />

durchschnittliche Anzahl von Hops gegeben, die die entsprechenden Ankündigungen<br />

auf dem Weg zur Downloadanwendungen zurückgelegt haben.<br />

Es wird vermutet, dass die Art <strong>und</strong> Weise mit der Ankündigungen im Netzwerk geflutet<br />

werden, die Hauptursache <strong>für</strong> die Unterschiede der Kosten der ansonsten nahezu<br />

gleichwertigen Pfade ist. Jeder Broker leitet eine eingehende Ankündigung an alle Nachbarn<br />

mit Ausnahme des Absenders weiter. Eine einmal erhaltene Ankündigung wird<br />

kein zweites Mal weitergeleitet. Die Weiterleitung an die Nachbarn erfolgt als Reihe<br />

aufeinanderfolgender Unicasts. Dabei kann sich eine zeitliche Abfolge ergeben, wie sie in<br />

Abbildung 6.3 dargestellt ist. Die erste Ankündigung, die b4 erhält, hat bereits drei Hops<br />

zurückgelegt. Angenommen alle Verbindungen sind äquivalent in Bezug auf Bandbreite<br />

<strong>und</strong> Latenz. Unter diesen Umständen hat die Metrik <strong>für</strong> die Ankündigung, die bei b4 zuerst<br />

eingeht, bereits höhere Kosten ermittelt als sie sie <strong>für</strong> die Übertragung von b1 zu b4<br />

ermittelt. Im Ergebnis haben die Ankündigungen, die einen längeren Weg zurückgelegt<br />

haben höhere Kosten.<br />

Es wurden bereits Vorschläge gemacht, wie die Verbreitung von Ankündigungen weiter<br />

optimiert werden kann [Ris09b]. Zusätzliche Optimierungen sind notwendig, damit sich<br />

die Ankündigungen mit den niedrigsten Kosten ausbreiten <strong>und</strong> nicht jene, die lediglich<br />

am schnellsten weitergeleitet werden.<br />

Ein weiterer Erklärungsansatz ist, dass die Übertragungseigenschaften der Funkstrecke<br />

zwischen linutop <strong>und</strong> Enif während der Versuche besser waren, als zwischen linutop2<br />

<strong>und</strong> Enif. Anhand der vorliegenden Zahlen, kann darüber jedoch keine Aussage gemacht<br />

werden. Die Versuche sind ungeeignet, die genauen (physikalischen) Übertragungseigenschaften<br />

der Verbindungen zu ermitteln.<br />

68


6. Auswertung<br />

b2<br />

1.<br />

b1<br />

2.<br />

5.<br />

3. 4.<br />

Abbildung 6.3.: Der Broker b1 verschickt eine Ankündigung. Gezeigt werden die ersten<br />

fünf Schritte einer möglichen zeitlichen Abfolge bei der Verbreitung der<br />

Nachrichten.<br />

Obwohl die Routen über linutop häufig bevorzugt wurden, waren sie bei 54 MBit/s im<br />

Durchschnitt nicht immer die günstigeren. Eine genauere Untersuchung der Versuche<br />

X1R1@54M/X1C, /X1F, /X1G, /X1I <strong>und</strong> /X1L ergab, dass die gewählte Route unmittelbar<br />

vor Aktivierung eines Pfades die attraktivere war. Die Kosten der Routen über<br />

linutop <strong>und</strong> linutop2 unterschieden sich zum entscheidenden Zeitpunkt dabei um weniger<br />

als ein Prozent. Bei automatischer Bitratenwahl auf beiden Verbindungen stellte<br />

sich dieser Zustand nur zweimal ein (X1R1@auto/X1E, /X1G). In jedem Falle sind die<br />

festgestellten Unterschiede der durchschnittlichen Kosten vergleichsweise gering.<br />

Für das Routing in Gegenwart von unterschiedlich leistungsfähigen Verbindungen wird<br />

festgehalten, dass die vorhandene Implementierung zuverlässig geeignete Routen wählt.<br />

Nachrichten werden auf den besten verfügbaren Verbindungen übertragen. Sind zwei alternative<br />

Routen (nahezu) äquivalent, bevorzugte das System jedoch bestimmte Routen.<br />

Es ist vorstellbar, dass dies in größeren Szenarien <strong>und</strong> bei höherem Datenaufkommen zu<br />

Überlastung einzelner Verbindungen führen kann.<br />

6.7. Gestörte Übertragungswege<br />

In den Versuchen X1v1R2 wurde untersucht, wie sich das System verhält, wenn neben<br />

einer intakten Route eine zweite, gestörte Route existiert. Im Laufe eines Versuchs musste<br />

die Middleware eine der beiden Routen zur Übertragung nutzen. Aufbau <strong>und</strong> Ablauf<br />

dieses Versuchs wurden bereits in Abschnitt 5.2.3 exemplarisch vorgestellt.<br />

Die Versuche wurden in mehreren Gruppen wiederholt. Eine der beiden Funkverbindungen<br />

zwischen dem Rechner, an dem der Download ausgeführt wurde <strong>und</strong> dem Rest<br />

des Netzwerks wurde nicht gestört. Die andere Verbindung wurde gezielt gestört. In regelmäßigen<br />

Intervallen wurde die Verbindung kurzzeitig deaktiviert. Die Versuche wurden<br />

so ausgeführt, dass die gestörte Verbindung 80 % der Zeit, 90 % <strong>und</strong> zum Vergleich<br />

auch 100 % der Zeit aktiv <strong>und</strong> damit ungestört war. Die Rollen der gestörten <strong>und</strong> ungestörten<br />

Verbindung wurden getauscht. Bei den insgesamt 59 ausgeführten Versuchen<br />

b3<br />

b4<br />

69


6. Auswertung<br />

dieses Experiments konnte der konvertierte Audiomitschnitt dreimal nicht erfolgreich<br />

zugestellt werden. Jeder dieser Verluste von Veröffentlichungen trat in Versuchen auf,<br />

bei denen die gezielten Störungen am stärksten waren.<br />

Wie beispielsweise dem Diagramm in Abb. B.10 (im Anhang) gut zu entnehmen ist,<br />

spricht die Metrik gut auf die gestörten Verbindungen an. Das bedeutet, dass die Kosten<br />

entlang der gestörten Verbindung höher sind als die Kosten, die <strong>für</strong> die Übertragung über<br />

die ungestörte Verbindung ermittelt wurden. Zum Vergleich zeigt Abb. B.11 die gemessenen<br />

Kosten derselben Anordnung ohne die künstlichen Störungen. Da die Messungen<br />

der Verlustrate periodisch ausgeführt werden, ist es möglich, dass nicht jede Störung erkannt<br />

wird. Tritt eine der Auszeiten zwischen zwei Messungen auf <strong>und</strong> finden in diesem<br />

Zeitraum keine anderen Übertragungen statt, ist die implementierte Middleware nicht<br />

in der Lage, die Störung zu erkennen.<br />

In 54 von 59 Versuchen (92 %) hat die Middleware <strong>für</strong> die Übertragung diejenige Verbindung<br />

gewählt, die durchschnittlich die niedrigeren Kosten aufwies. Bei fünf Übertragungen<br />

wurde die gestörte Verbindung ausgewählt. Jede dieser fünf gestörten Routen<br />

wurde zum Zeitpunkt der Aktivierung des Pfades als die bessere eingeschätzt. Das bedeutet,<br />

dass die Störungen bis zu diesem Zeitpunkt nicht erkannt worden sind. Da die<br />

durchschnittlich <strong>für</strong> diese Verbindungen ermittelten Kosten jedoch über denen der ungestörten<br />

Verbindungen lagen, bedeutet dies, dass die Störungen bis zum Ende jedes der<br />

Versuche noch erkannt wurden.<br />

Zusammenfassend lassen die Ergebnisse die Aussage zu, dass die vorliegende Implementierung<br />

in der Lage ist, bei erkannten Störungen auf andere, ungestörte Routen<br />

auszuweichen.<br />

6.8. Alternative Übertragungstechniken<br />

In einer Variante des Experiments 1 wurde erneut der Rechner, auf dem der Download<br />

der Aufzeichnung stattfinden sollte, über zwei Verbindungen mit dem Rest des Netzwerks<br />

verb<strong>und</strong>en. Eine Verbindung wurde über WLAN hergestellt, die andere mittels<br />

Bluetooth.<br />

In jedem der Versuche konnte die Veröffentlichung übertragen werden. Einmal wurde<br />

da<strong>für</strong> die Verbindung über Bluetooth genutzt. In allen anderen Fällen wurde die WLAN-<br />

Verbindung genutzt. Das deckt sich mit den Erwartungen. Die WLAN-Verbindung hat<br />

eine höhere Bandbreite. In vorbereitenden Tests wies sie zudem eine geringere Übertragungslatenz<br />

auf. Im Versuch X1v2R1/X1E, bei dem die Veröffentlichung über Bluetooth<br />

übertragen wurde, riss die WLAN-Verbindung ab <strong>und</strong> konnte bis zum Ende des Versuchs<br />

nicht wieder aufgebaut werden. Über die WLAN-Verbindung konnte bis zum Ausfall<br />

nur eine einzige Ankündigung des konvertierten Audiomitschnitts übertragen werden.<br />

Danach wurden keine weiteren Ankündigungen mehr auf diesem Wege zugestellt. Die<br />

Route über die Bluetooth-Verbindung war somit zum Zeitpunkt des Abonnements der<br />

einzige verfügbare Weg.<br />

70


6. Auswertung<br />

Eine weitere Beobachtung wurde bei der Auswertung der Zahlen aus X1v2R1 gemacht.<br />

Insbesondere zu Beginn der Versuche, also noch während der Wartezeit bevor das Abonnement<br />

des Audiomitschnitts ausgelöst wurde, traten entlang der WLAN-Verbindung<br />

häufige Verbindungsverluste auf. Dies führte dazu, dass die von der Metrik ermittelten<br />

durchschnittlichen Kosten <strong>für</strong> die Route entlang der WLAN-Verbindung von Versuch zu<br />

Versuch deutlich schwanken.<br />

Eine erste Vermutung dazu war, dass die Bluetooth-Übertragungen bzw. die Übertragungsversuche<br />

die WLAN-Verbindung beeinträchtigen würden. Dazu wurde ein getrenntes<br />

Experiment durchgeführt. ASP <strong>und</strong> die Middleware spielten dabei keine Rolle. Es<br />

ging lediglich darum zu ermitteln, ob es im verwendeten Versuchsaufbau einen signifikanten<br />

Zusammenhang zwischen den Bluetooth-Aktivitäten <strong>und</strong> der WLAN-Verbindung<br />

gab. Diese Vermutung konnte deutlich bestätigt werden. Im Experiment sendete ein Linutop<br />

über ein Ad-Hoc-WLAN regelmäßig ICMP-Echo-Requests (ping; siehe [Pos81])<br />

an einen zweiten Linutop, der zusätzlich mit einem Bluetooth-Adapter ausgestattet war.<br />

Auf dem zweiten Gerät wurde ein Skript aktiviert, dass in regelmäßigen Abständen zwanzig<br />

Inquiry Scans ausführte. Im Protokoll der ICMP-Antwortzeiten sind diese Scans klar<br />

wiederzuerkennen (siehe Grafik 6.4). Die genauen Umstände dieser Wechselwirkungen<br />

wurden nicht untersucht. Für die Versuche aus X1v2R1 war es ausreichend zu wissen,<br />

dass eine solche negative Wirkung von Bluetooth auf die WLAN-Verbindung existierte.<br />

Zeit [ms]<br />

25<br />

20<br />

15<br />

10<br />

5<br />

0<br />

0 100 200 300 400 500<br />

ICMP Sequenznummer<br />

ICMP Echo Antwortzeit<br />

Abbildung 6.4.: Bluetooth Inquiry Scans stören in der Versuchsumgebung den Datenaustausch<br />

über WLAN – erkennbar an den 20 ausgeprägten Lücken.<br />

Als Ergebnis des Experiments X1v2R2 wird festgehalten, dass die implementierte Middleware<br />

korrekt zwischen den verfügbaren Übertragungstechniken wählt. Die leistungsfähigste<br />

Technik kommt zum Einsatz <strong>und</strong> die Metrik bildet die Gr<strong>und</strong>lage dieser Entscheidung.<br />

Im Übrigen ist die Übertragungstechnik <strong>für</strong> die Anwendungen, die die Middleware<br />

nutzen, transparent.<br />

6.9. Alternative Prozessoren<br />

Die Versuche zu Experiment 2 beschäftigten sich ausführlich mit dem Routing entlang<br />

unterschiedlicher Verbindungen. In diesem Abschnitt werden die Ergebnisse aus Expe-<br />

71


6. Auswertung<br />

riment 3 diskutiert. Die Versuchsskizze ist auf Seite 82. Ziel der Versuche dieses Experiments<br />

war es, das Verhalten zu untersuchen, wenn mehrere Prozessoren zur Verfügung<br />

stehen. Die Rolle des Konverters, wie sie im Szenario auftritt (siehe Abschnitt 3.3.1)<br />

wird dabei von mehr als nur einer Anwendung übernommen. Die Anwendungen werden<br />

auf unterschiedlichen Computern ausgeführt, die je nach Variante über unterschiedlich<br />

oder gleich leistungsfähige Hardware verfügen.<br />

Damit allein die Leistungsfähigkeit der Prozessoren über die Wahl der Route entscheidet,<br />

wurde der Einfluss der Netzwerkanbindung in den Versuchen so weit wie möglich minimiert.<br />

Zu diesem Zweck waren alle der vier Rechner, die in Experiment 3 zum Einsatz<br />

kamen in einem IP-Subnetz verb<strong>und</strong>en. Alle hatten eine Fast-Ethernet-Verbindung zu<br />

einem gemeinsamen Switch. Als Plattform kamen auf drei der vier Rechner Linux <strong>und</strong><br />

auf dem vierten Mac OS X zum Einsatz.<br />

In Variante 1 von Experiment 3 wurden zwei Linutops mit baugleicher Hardware als Prozessoren<br />

verwendet. Auch die Softwareausstattung war identisch. Da die Betriebsbedingungen<br />

der beiden Prozessoren identisch waren, war zu erwarten, dass die Konvertierung<br />

über alle Versuche gesehen zwischen beiden Linutops gleichverteilt ist. Die Auswertung<br />

hat jedoch ein Verhältnis von ungefähr 2:1 zu Gunsten von linutop1 ergeben. Das heißt,<br />

linutop1 hat bei zwei Dritteln der Versuche die Konvertierung übernommen. Der Versuchsablauf<br />

wurde daraufhin leicht abgewandelt, um die Diskrepanz von Erwartung <strong>und</strong><br />

beobachtetem Ergebnis aufzuklären. Bei Reihe 1 wurden die beiden Prozessoren unmittelbar<br />

nacheinander mit einer geringen Verzögerung gestartet. In den Versuchen der<br />

Reihen X3v1R2 <strong>und</strong> X3v1R3 wurde zwischen dem Start des einen Prozessors <strong>und</strong> dem<br />

Start des zweiten Prozessors 30 s gewartet. Bei Reihe 2 wurde linutop zuerst gestartet,<br />

bei Reihe 3 linutop2. Das Ergebnis ist eindeutig. Es kam immer der Prozessor zum<br />

Einsatz, der zuerst gestartet wurde.<br />

In Variante 2 des Experiments wurden die Prozessoren von Anfang an mit zeitlichem<br />

Versatz gestartet. In Variante 2 waren die Prozessoren unterschiedlich leistungsstark.<br />

Für den leistungsstärkeren wurde beim Umwandeln einer Referenzaudiodatei ein Geschwindigkeitsfaktor<br />

von 6,3 ermittelt <strong>und</strong> <strong>für</strong> den schwächeren 0,9. Gleichzeitig sind<br />

dies die Zahlen, die der jeweiligen Konverteranwendung als Berechnungsgr<strong>und</strong>lage <strong>für</strong><br />

die Abschätzung des Aufwands der Konvertierung dienten. Die Auswertung der Logdateien<br />

der Middleware aus den Versuchen X3v2R1 bis X3v2R3 ergab dasselbe Resultat<br />

wie zuvor in Variante 1 von Experiment 3. Es kam immer derjenige Prozessor zum Einsatz,<br />

der früher gestartet wurde. Dies galt auch dann, wenn der leistungsschwächere<br />

zuerst gestartet wurde.<br />

Die Ursache dieses Effekts konnte anhand der erfassten Protokolle gef<strong>und</strong>en werden.<br />

Sie kann jedoch auch unabhängig davon theoretisch mit der Funktionsweise der implementierten<br />

Middleware begründet werden. Die Verlängerung von Ankündigungen ist ein<br />

Mechanismus, der vorgesehen ist, um aktive Pfade aufrechtzuerhalten. Verlängert ein<br />

Broker die Gültigkeit einer Ankündigung mit einer Folgeankündigung, müssen interessierte<br />

Subscriber den Pfad mit einem erneuten Abonnement reaktivieren. Bleibt das<br />

Abonnement aus, weil die Verbindung des Subscribers zum Rest des Netzwerks abgebro-<br />

72


6. Auswertung<br />

chen ist oder ein Broker abgestürzt ist, wird der Pfad verworfen. Folgeankündigungen<br />

können von Duplikaten oder alten Ankündigungen an ihrer fortlaufenden Sequenznummer<br />

im Kopf der Nachrichten unterschieden werden. Kündigen mehrere Prozessoren<br />

Veröffentlichungen derselben ASP ID an, <strong>und</strong> verlängern sie ihre Ankündigungen im selben<br />

Intervall – was bei den Versuchen der Fall war – setzen sich die Ankündigungen des<br />

Prozessors bzw. seines Brokers durch, der die höchsten Sequenznummern verwendet. Das<br />

ist in der Regel der Broker, der am längsten aktiv ist. Verwendet einer der Prozessoren<br />

ein kürzeres Intervall, wird er sich auf Dauer auch dann durchsetzen, wenn er nicht seit<br />

längstem aktiv ist.<br />

Die Versuche zeigen, dass dieses Fehlverhalten in der angefertigten Implementierung<br />

auftritt. Das vorliegende System eignet sich deshalb nur unter Einschränkungen <strong>für</strong> den<br />

gleichzeitigen Betrieb mehrerer identischer Prozessoranwendungen. Verwenden alle Prozessoren<br />

unterschiedliche ASP IDs, kann das Problem beim parallelen Betrieb mehrerer<br />

Prozessoren nicht auftreten. Bei Verwendung identischer IDs handelt es sich jedoch um<br />

ein gr<strong>und</strong>sätzliches Problem. Das Verhalten eines ASP-Systems unter diesen Umständen<br />

wurde bislang weder ausgeschlossen, noch spezifiziert. Da es gr<strong>und</strong>sätzlich gewünscht ist,<br />

dass mehrere alternative Prozessoren zum Verarbeiten einer Veröffentlichung existieren,<br />

kann das Problem nicht durch entsprechende Vorgaben ausgeschlossen werden. Der geschilderte<br />

Fall muss demnach spezifiziert werden. Dies wird an dieser Stelle jedoch nicht<br />

vorgenommen, da es nicht Bestandteil einer Evaluierung ist.<br />

73


7. Schlussbetrachtungen<br />

7. Schlussbetrachtungen<br />

In diesem Kapitel wird die Arbeit zunächst zusammengefasst. In einem weiteren Abschnitt<br />

wird ein Ausblick auf mögliche zukünftige Entwicklungen <strong>und</strong> Untersuchungsschwerpunkte<br />

gegeben.<br />

7.1. Zusammenfassung<br />

In dieser Arbeit wurde mit Announcement/Subscription/Publication (ASP) ein System<br />

untersucht, das die Kommunikation mittels Publish/Subscribe in heterogenen Netzwerken<br />

ermöglicht.<br />

Erstmals wurde auf Gr<strong>und</strong>lage von ASP eine Kommunikationsmiddleware <strong>für</strong> den Einsatz<br />

in einem realen Umfeld implementiert. Offene Fragen des Ansatzes, die im Vorfeld<br />

der Implementierung zu klären waren, wurden erläutert. In einem sehr heterogenen<br />

Umfeld ist das Szenario angesiedelt, in dem das implementierte System geprüft wurde.<br />

Dazu wurden die Konzepte von ASP auf das Szenario abgebildet. Aus dem Szenario<br />

wurden gezielt Experimente abgeleitet, um die zentralen Eigenschaften von ASP in einer<br />

definierten Umgebung praktisch zu erproben. In über 200 Einzelversuchen wurde<br />

das implementierte System getestet.<br />

Die Auswertung der Testergebnisse ergab, dass die konkrete ASP-Middleware in der Lage<br />

war, die große Mehrheit der Anforderungen zu erfüllen. Das entwickelte System konnte<br />

erfolgreich die räumliche <strong>und</strong> zeitliche Entkopplung moderner Publish-Subscribe-Systeme<br />

demonstrieren. In allen Versuchen kam die Middleware auf mehreren Plattformen<br />

erfolgreich zum Einsatz. Auch unterschiedliche Verbindungstechniken bereiteten dem<br />

System keine Schwierigkeiten. Die semantische Entkopplung, die ein hervorstechendes<br />

Merkmal von ASP ist, konnte ebenso gezeigt werden. Das Routing in Gegenwart unterschiedlicher<br />

Prozessoren funktionierte gr<strong>und</strong>sätzlich. Für die Datenverarbeitung wurde<br />

lediglich nicht immer das leistungsfähigste Gerät ausgewählt. Dieser Fall wurde bislang<br />

noch nicht vollständig spezifiziert.<br />

Aus den Versuchen ging zudem hervor, dass das implementierte System die vorhandenen<br />

Ressourcen in dem heterogenen Versuchsumfeld effizient nutzt. Der Verwaltungsaufwand<br />

ist gering. Auch mit Störungen, wie sie in den Versuchen erzeugt wurden, konnte das<br />

System gut umgehen.<br />

74


7. Schlussbetrachtungen<br />

7.2. Ausblick<br />

Es existieren unterschiedliche Ansätze das Konzept von ASP zu erweitern <strong>und</strong> weiter<br />

zu optimieren. Es ist vielversprechend, besonders die Verbreitung von Ankündigungen<br />

<strong>und</strong> die genauere Ermittlung aller Pfade <strong>und</strong> ihrer Kosten gegenüber dem verwendeten<br />

Prototyp weiter auszubauen. Wegen der vielen Möglichkeiten, diese Aufgabe zu lösen,<br />

empfehlen sich Simulationen, um die erfolgversprechendsten Ansätze zu identifizieren.<br />

Die gef<strong>und</strong>enen Ansätze können dann in einem nächsten Schritt in der Praxis erprobt<br />

werden.<br />

Während der Entwicklung der Software <strong>und</strong> der Durchführung der Tests, stellte sich<br />

die wichtige Rolle des Caching heraus. In den Versuchen wurde eine einfache Caching-<br />

Strategie verwendet, die mit vertretbarem Aufwand implementiert werden konnte. Sowohl<br />

bei der Verteilung der Caches als auch beim Zugriff auf die Inhalte der Caches wird<br />

weiteres Potenzial zur Effizienzsteigerung vermutet. Red<strong>und</strong>ante Übertragungen sollten<br />

sich weiter reduzieren lassen.<br />

Mit Blick auf Dienstgütemerkmale wie die Latenz oder den Verlust von Nachrichten kann<br />

den existierenden Übertragungskategorien in Zukunft eine wichtigere Rolle zukommen.<br />

Die Möglichkeit die gewünschte Dienstgüte flexibel zu konfigurieren, kann dem Konzept<br />

von ASP weitere Anwendungsbereiche erschließen.<br />

Zu den Untersuchungsaspekten, die bislang nicht berücksichtigt werden konnten, gehört<br />

die Evaluation größerer Netzwerke. Das Verhalten des Systems in realen Netzwerken mit<br />

mehreren Dutzend Teilnehmern wurde nicht untersucht. Im Rahmen dieser Arbeit konnte<br />

dieser spannenden Frage mit den vorhandenen Mitteln nicht nachgegangen werden.<br />

Aus demselben Gr<strong>und</strong> konnte das Verhalten des Systems in Verbindung mit mobilen<br />

Knoten bislang nicht getestet werden. Mit WLAN <strong>und</strong> Bluetooth unterstützt die erstellte<br />

Software jedoch bereits gr<strong>und</strong>sätzlich Verbindungstechniken, die sich <strong>für</strong> die spontane<br />

Vernetzung in einem mobilen Umfeld nutzen lassen.<br />

Nicht zuletzt ist es eine interessante Aufgabe, die Middleware auf einer noch breiteren<br />

Basis von Plattformen <strong>und</strong> Endgeräten zum Einsatz zu bringen. Auch weitere<br />

Übertragungstechnologien wie das bereits eingangs genannte ZigBee können in Zukunft<br />

erschlossen werden. Auf diese Weise lässt sich prüfen, ob ASP <strong>für</strong> den Einsatz in Sensornetzen<br />

angepasst werden kann.<br />

75


A. Nachrichtenformat<br />

A. Nachrichtenformat<br />

Nachrichtentyp Feldgröße in Byte <strong>und</strong> -bedeutung<br />

COMMON<br />

�<br />

TYPE<br />

TTL<br />

2 1 1<br />

ANNOUNCEMENT ID<br />

SUBSCRIPTION,<br />

UNSUBSCRIPTION,<br />

BROKENPATH<br />

METRIC<br />

VALIDITY<br />

SEQUENCE<br />

PAYLOAD<br />

≥ 33 1 1 16 8 4 2 ≥ 1<br />

ID<br />

SUBSCRIBERID<br />

METRIC<br />

34 1 1 16 8 8<br />

PUBLICATION ID<br />

SEQUENCE<br />

PAYLOADSIZE<br />

OFFSET<br />

PAYLOAD<br />

≥ 29 1 1 16 2 4 4 ≥ 1<br />

Tabelle A.1.: Das in der Implementierung verwendete Nachrichtenformat.<br />

76


B. Versuche<br />

B. Versuche<br />

B.1. Namensschema<br />

Die Benennung der Versuche folgt einem bestimmten Schema. Mit diesem Schema lassen<br />

sich einzelne Versuche oder Versuchsreihen bis hin zu kompletten Experimenten sehr<br />

kompakt bezeichnen. Die Ordnerstruktur, in der die Messergebnisse auf dem Datenträger<br />

gespeichert sind, orientiert sich ebenfalls an diesem Schema.<br />

Die Bezeichnung eines Versuchs setzt sich aus der Nummer des Experiments, der Nummer<br />

der Variante, der Nummer der Versuchsreihe mit einem optionalen Namenszusatz<br />

<strong>und</strong> dem Bezeichner des Versuchs zusammen. Der Bezeichner identifiziert einen Versuch<br />

innerhalb einer Versuchsreihe.<br />

Die Kürzel, mit denen Versuche bezeichnet werden, entsprechen dem folgenden regulären<br />

Ausdruck 1 X[0-9]+(v[0-9]+)?R[0-9]+(@.+)?/.+<br />

Die erste Zahl bezeichnet das Experiment. Die zweite Zahl nach dem Buchstaben v identifiziert<br />

die Variante <strong>und</strong> die Zahl nach dem R identifiziert die Versuchsreihe. Die Angabe<br />

einer Variante ist optional, denn nicht alle Experimente liegen in unterschiedlichen Varianten<br />

vor. Ist keine Variante angegeben, ist Variante 1 gemeint. Der Namenszusatz<br />

beginnend mit dem Zeichen @ ist optional <strong>und</strong> kommt nur vor, falls eine Versuchsreihe<br />

weiter unterteilt wurde.<br />

Zwei Beispiele veranschaulichen das Schema. X5R2/X5O bezeichnet den Versuch X5O<br />

aus Versuchsreihe 2 des Experiments 5. X3v2R1/X3A bezeichnet Versuch X3A aus Experiment<br />

3, Variante 2, Reihe 1.<br />

Im Text wird manchmal eine verkürzende Schreibweise verwendet. So bezeichnet X3v2R1<br />

alle Versuche der Reihe 1. X3v2 bezeichnet alle Versuche aller Reihen von Experiment<br />

3 Variante 2.<br />

B.2. Übersicht der Experimente<br />

Die Tabelle B.1 auf Seite 78 listet die durchgeführten Versuchsreihen auf.<br />

1 Es wird Perl-kompatible Syntax verwendet. Siehe [Vro02].<br />

77


B. Versuche<br />

Versuche<br />

Reihe<br />

Variante<br />

Experiment<br />

Erläuterung<br />

1 1 1 unterschiedliche Übertragungsraten im WLAN 1781 57<br />

1 1 2 unterschiedliche Duty Cycles (Störungen) 1793 59<br />

1 2 1 Bluetooth gegen WLAN 1799 12<br />

2 1 1 Verwaltungsaufwand – komplett verworfen 1763 10<br />

2 1 2 Verwaltungsaufwand 1820 20<br />

3 1 1 identische Prozessoren 1805 25<br />

3 1 2 identische Prozessoren – einer startet deutlich früher 1805 10<br />

3 1 3 identische Prozessoren – der andere startet deutlich früher 1805 10<br />

3 2 1 unterschiedliche Prozessoren – schwächerer startet deutlich früher 1805 15<br />

3 2 2 unterschiedliche Prozessoren – stärkerer startet deutlich früher 1805 15<br />

3 2 3 unterschiedliche Prozessoren – schwächerer startet deutlich früher 1808 15<br />

5 1 1 zeitliche Entkopplung 1808 16<br />

5 1 2 zeitliche Entkopplung – Versuch X5K verworfen 1816 21<br />

Software<br />

Tabelle B.1.: Übersicht der durchgeführten Experimente mit Softwareversion <strong>und</strong> Anzahl der ausgeführten Versuche. Versuche, die<br />

verworfen wurden, wurden bei der Auswertung zu keinem Zeitpunkt berücksichtigt.<br />

78


B. Versuche<br />

B.3. Versuchsaufbau<br />

Die Grafiken auf den Seiten 80 bis 82 stellen den Versuchsaufbau dar. Abbildung B.1<br />

zeigt die Legende.<br />

Hostname<br />

Anwendung<br />

IP<br />

IP<br />

IP<br />

Bt<br />

ein Linutop Notebook<br />

IPn<br />

Ethernet<br />

virtuelles<br />

System<br />

Subnetz (IP) /<br />

Verbindungstechnik (Bt, Bluetooth)<br />

WLAN im Infrastruktur-Modus<br />

WLAN im Ad-Hoc-Modus<br />

Bt<br />

IPn Bt<br />

Bluetooth<br />

IP1<br />

IP2<br />

Desktop<br />

direkte Verbindung möglich keine direkte Verbindung<br />

IP IP<br />

IP IP<br />

vereinfacht<br />

IPx<br />

IPy<br />

Bt<br />

IP2<br />

IP IP<br />

IP IP<br />

Abbildung B.1.: Legende der Versuchsskizzen.<br />

79


B. Versuche<br />

debian<br />

Speicher<br />

IP1<br />

linutop<br />

Dummy<br />

IP1<br />

IP2<br />

debian<br />

Speicher<br />

IP1<br />

linutopk<br />

Dummy<br />

IP1<br />

IP2<br />

Ethernet<br />

Ad-Hoc Ad-Hoc<br />

Enif<br />

Download<br />

IP2<br />

(a) Variante 1<br />

Ethernet<br />

Ad-Hoc Bluetooth<br />

linutop2<br />

Download<br />

IP2 Bt<br />

(b) Variante 2<br />

Abbildung B.2.: Versuchsaufbau von Experiment 1.<br />

Kajam<br />

Konverter<br />

IP1<br />

linutop2<br />

Dummy<br />

IP1<br />

IP1<br />

linutop<br />

Dummy<br />

IP2<br />

Kajam<br />

Konverter<br />

IP1 Bt<br />

80


B. Versuche<br />

Enif<br />

Konverter<br />

IP1<br />

IP2<br />

linutopk<br />

Rekorder<br />

IP1<br />

linutop2<br />

Download<br />

Ad-Hoc<br />

IP2<br />

Eth.<br />

debian<br />

Speicher<br />

IP1<br />

linutop2<br />

Download<br />

IP2<br />

Inf.<br />

Abbildung B.3.: Versuchsaufbau von Experiment 2.<br />

Inf.<br />

Ad-Hoc<br />

debian<br />

Speicher<br />

IP1<br />

Hyadum-II<br />

Konverter<br />

IP2 IP3<br />

Inf.<br />

Ethernet<br />

Abbildung B.4.: Versuchsaufbau von Experiment 5.<br />

linutopk<br />

Rekorder<br />

IP1<br />

Enif<br />

Dummy<br />

IP1<br />

linutop<br />

Download<br />

IP3<br />

IP3<br />

81


B. Versuche<br />

linutop<br />

Konverter<br />

IP<br />

linutop<br />

Konverter<br />

IP<br />

Ethernet<br />

debian<br />

Speicher<br />

IP<br />

Ethernet<br />

Ethernet Ethernet<br />

Ethernet<br />

Ethernet<br />

Enif<br />

Download<br />

IP<br />

(a) Variante 1<br />

debian<br />

Speicher<br />

IP<br />

linutop2<br />

Download<br />

IP<br />

(b) Variante 2<br />

Ethernet<br />

Abbildung B.5.: Versuchsaufbau von Experiment 3.<br />

linutop2<br />

Konverter<br />

IP<br />

Enif<br />

Konverter<br />

IP<br />

Ethernet<br />

82


B. Versuche<br />

B.4. Hard- <strong>und</strong> Softwarespezifikationen<br />

Die Tabellen B.2, B.3 <strong>und</strong> B.4 geben Auskunft über die in den Versuchen genutzte Hard<strong>und</strong><br />

Software. Das System debian wurde virtualisiert. Das Wirtssystem war Kajam.<br />

Hostname Betriebssystem Java Laufzeitumgebung<br />

debian Debian Linux 5.0 OpenJDK Runtime Environment<br />

(build 1.6.0 0-b11)<br />

Enif Mac OS X 10.4.11 Java(TM) 2 Runtime Environment,<br />

Standard Edition<br />

Hyadum-II openSUSE 11.1<br />

(build 1.5.0 19-b02-306)<br />

OpenJDK Runtime Environment<br />

(IcedTea6 1.6.2) (suse-<br />

0.1.1-i386)<br />

Kajam Windows Vista Home Java(TM) SE Runtime Envi-<br />

Premium 64 Bit, SP 2 ronment (build 1.6.0 17-b04)<br />

linutopX Ubuntu 9.04 Server OpenJDK Runtime Environment<br />

(IcedTea6 1.4.1) (6b14-<br />

1.4.1-0ubuntu12)<br />

Tabelle B.2.: Übersicht der Versuchsrechner <strong>und</strong> ihrer Softwareausstattung.<br />

Prozessorkerne<br />

Hostname Prozessor<br />

debian Intel Core 2 Duo CPU E8400 1 3.000 1536<br />

Enif PowerPC G4 1 1.200 768<br />

Hyadum-II AMD Athlon XP 2000+ 1 1.666 1024<br />

Kajam Intel Core 2 Duo CPU E8400 2 3.000 8192<br />

linutopX AMD Geode LX700 1 433 256<br />

Tabelle B.3.: Übersicht der Versuchsrechner <strong>und</strong> die Eckdaten ihrer Hardwareausstattung.<br />

Taktfrequenz [MHz]<br />

Arbeitsspeicher [MB]<br />

83


B. Versuche<br />

Handels- Produkt Bezeichnung unter Linux<br />

marke<br />

(lsusb)<br />

Hama WLAN USB- Ralink Technology, Corp.<br />

Stick (802.11g) RT2501USB Wireless Adapter<br />

TP-Link TL-WN321G Ralink Technology, Corp.<br />

RT2501USB Wireless Adapter<br />

Anycom USB-200 Broadcom Corp. Bluetooth<br />

MSI Star Key 3.0<br />

2.0+EDR dongle<br />

Integrated System Solution Corp.<br />

KY-BT100 Bluetooth Adapter<br />

MSI BToes EDR Mi- Cambridge Silicon Radio, Ltd Bluecro<br />

Dongle tooth Dongle (HCI mode)<br />

Vivanco Bluetooth V2.0<br />

Dongle<br />

Cambridge Silicon Radio, Ltd Bluetooth<br />

Dongle (HCI mode)<br />

Tabelle B.4.: Übersicht der externen Netzwerkperipherie.<br />

B.5. Ausgewählte Diagramme<br />

Einige ausgewählte Diagramme, die die Auswertung der Versuche veranschaulichen, befinden<br />

sich auf den Seiten 85 bis 87.<br />

84


B. Versuche<br />

Kosten<br />

7000<br />

6500<br />

6000<br />

5500<br />

5000<br />

4500<br />

4000<br />

3500<br />

3000<br />

2500<br />

Ankündigungen via linutop Ankündigungen via linutop2<br />

A B C D E F G H I J K L<br />

Versuch<br />

Abbildung B.6.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads<br />

am Download-Rechner in den Versuchen X1v1R1@1M. Die Verbindung<br />

über linutop2 ist auf 1 MBit/s gedrosselt.<br />

Kosten<br />

3500<br />

3400<br />

3300<br />

3200<br />

3100<br />

3000<br />

2900<br />

2800<br />

2700<br />

2600<br />

2500<br />

Ankündigungen via linutop Ankündigungen via linutop2<br />

A B C D E F G H I J K L M<br />

Versuch<br />

Abbildung B.7.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads<br />

am Download-Rechner in den Versuchen X1v1R1@11M. Die Verbindung<br />

über linutop2 ist auf 11 MBit/s gedrosselt.<br />

85


B. Versuche<br />

Kosten<br />

3500<br />

3400<br />

3300<br />

3200<br />

3100<br />

3000<br />

2900<br />

2800<br />

2700<br />

2600<br />

2500<br />

Ankündigungen via linutop Ankündigungen via linutop2<br />

A B C D E F G H I J K L<br />

Versuch<br />

Abbildung B.8.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads<br />

am Download-Rechner in den Versuchen X1v1R1@54M. Die Verbindung<br />

über linutop2 ist auf 54 MBit/s gedrosselt.<br />

Kosten<br />

3500<br />

3400<br />

3300<br />

3200<br />

3100<br />

3000<br />

2900<br />

2800<br />

2700<br />

2600<br />

2500<br />

Ankündigungen via linutop Ankündigungen via linutop2<br />

A B C D E F G H I J K L M N O P Q R S T<br />

Versuch<br />

Abbildung B.9.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads<br />

am Download-Rechner in den Versuchen X1v1R1@auto. Die Verbindung<br />

über linutop2 verwendet automatische Bitratenwahl.<br />

86


B. Versuche<br />

Kosten<br />

4000<br />

3800<br />

3600<br />

3400<br />

3200<br />

3000<br />

2800<br />

2600<br />

Ankündigungen via linutop Ankündigungen via linutop2<br />

A B C D E F G H I J K L<br />

Versuch<br />

Abbildung B.10.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads<br />

am Download-Rechner in den Versuchen X1v1R2@dc80a. Die Verbindung<br />

über linutop ist nur 80 % der Zeit aktiv.<br />

Kosten<br />

4000<br />

3800<br />

3600<br />

3400<br />

3200<br />

3000<br />

2800<br />

2600<br />

Ankündigungen via linutop Ankündigungen via linutop2<br />

A B C D E F G H I J K<br />

Versuch<br />

Abbildung B.11.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads<br />

am Download-Rechner in den Versuchen X1v1R2@dc100. Beide Verbindungen<br />

sind zu 100 % aktiv.<br />

87


Literaturverzeichnis<br />

Literaturverzeichnis<br />

[AADH05] Aldred, Lachlan ; Aalst, Wil M. d. ; Dumas, Marlon ; Hofstede, Arthur<br />

H.: On the Notion of Coupling in Communication Middleware. In: On<br />

the Move to Meaningful Internet Systems 2005: CoopIS, DOA, and ODBA-<br />

SE Bd. 3761, Springer, 2005, S. 1015–1033<br />

[AHR06] Awerbuch, Baruch ; Holmer, David ; Rubens, Herbert: The Medium<br />

Time Metric: High Throughput Route Selection in Multi-rate Ad Hoc Wireless<br />

Networks. In: Mobile Networks and Applications 11 (2006), Apr, Nr.<br />

2, S. 253–266<br />

[AKM07] Aitenbichler, Erwin ; Kangasharju, Jussi ; Mühlhäuser, Max: M<strong>und</strong>oCore:<br />

A light-weight Infrastructure for Pervasive Computing. In: Pervasive<br />

and Mobile Computing 3 (2007), Nr. 4, S. 332–361. – Middleware for<br />

Pervasive Computing<br />

[BCM + 99] Banavar, G. ; Chandra, T. ; Mukherjee, B. ; Nagarajarao, J.<br />

; Strom, R.E. ; Sturman, D.C.: An Efficient Multicast Protocol for<br />

Content-Based Publish-Subscribe Systems. In: Distributed Computing Systems,<br />

1999. Proceedings. 19th IEEE International Conference on, 1999, S.<br />

262–272<br />

[Blu07] Bluetooth SIG: Bluetooth Core Specification v2.1 + EDR. http://www.<br />

bluetooth.com/Bluetooth/Technology/Building/Specifications/.<br />

Version: Jul 2007. – Abruf: 25.1.2010<br />

[Blu09a] Bluetooth SIG: Bluetooth Technology Gets Faster With Bluetooth 3.0.<br />

Pressemitteilung. http://www.bluetooth.com/Bluetooth/Press/SIG/<br />

iBLUETOOTHi_TECHNOLOGY_GETS_FASTER_WITH_iBLUETOOTHi_30.htm.<br />

Version: Apr 2009. – Abruf: 17.1.2010<br />

[Blu09b] Bluetooth SIG: SIG Introduces Bluetooth Low Energy Wireless<br />

Technology, the Next Generation of Bluetooth Wireless Technology. Pressemitteilung.<br />

http://www.bluetooth.com/Bluetooth/Press/SIG/SIG_<br />

INTRODUCES_BLUETOOTH_LOW_ENERGY_WIRELESS_TECHNOLOGY_THE_NEXT_<br />

GENERATION_OF_BLUETOOTH_WIRELESS_TE.htm. Version: Dez 2009. –<br />

Abruf: 17.1.2010<br />

[BM06] Breymann, Ulrich ; Mosemann, Heiko: Java ME : Anwendungsentwicklung<br />

<strong>für</strong> Handys, PDA <strong>und</strong> Co. München : Hanser, 2006<br />

88


Literaturverzeichnis<br />

[BRS02] Bharambe, Ashwin R. ; Rao, Sanjay ; Seshan, Srinivasan: Mercury: A<br />

Scalable Publish-Subscribe System for Internet Games. In: NetGames ’02:<br />

Proceedings of the 1st workshop on Network and system support for games.<br />

New York, NY, USA : ACM, 2002, S. 3–9<br />

[BSB + 02] Bhola, S. ; Strom, R. ; Bagchi, S. ; Zhao, Yuanyuan ; Auerbach, J.:<br />

Exactly-once Delivery in a Content-based Publish-Subscribe System. In:<br />

Dependable Systems and Networks, 2002. DSN 2002. Proceedings. International<br />

Conference on, 2002, S. 7–16<br />

[CEM + 08] Campista, Miguel Elias M. ; Esposito, Pedro M. ; Moraes, Igor M.<br />

; Costa, Luís Henrique M. K. ; Duarte, Otto Carlos M. B. ; Passos,<br />

Diego G. ; Albuquerque, Célio Vinicius N. ; Saade, Débora Christina M.<br />

; Rubinstein, Marcelo G.: Routing Metrics and Protocols for Wireless<br />

Mesh Networks. In: IEEE Network 22 (2008), Nr. 1, S. 6–12<br />

[CJ02] Cugola, Gianpaolo ; Jacobsen, H.-Arno: Using Publish/Subscribe<br />

Middleware for Mobile Systems. In: SIGMOBILE Mob. Comput. Commun.<br />

Rev. 6 (2002), Nr. 4, S. 25–33<br />

[CJ03] Clausen, T. ; Jacquet, P.: Optimized Link State Routing Protocol<br />

(OLSR). RFC 3626 (Experimental). http://www.ietf.org/rfc/rfc3626.<br />

txt. Version: Oktober 2003 (Request for Comments)<br />

[Com00] Comer, Douglas E.: Internetworking With TCP/IP. Bd. 1. Principles,<br />

Protocols and Architecture. 4. Auflage. Upper Saddle River, New Jersey,<br />

USA : Prentice Hall, 2000<br />

[CRW00] Carzaniga, Antonio ; Rosenblum, David S. ; Wolf, Alexander L.: Achieving<br />

Scalability and Expressiveness in an Internet-Scale Event Notification<br />

Service. In: PODC ’00: Proceedings of the nineteenth annual ACM symposium<br />

on Principles of distributed computing. New York, NY, USA : ACM,<br />

2000, S. 219–227<br />

[CRW04] Carzaniga, A. ; Rutherford, M.J. ; Wolf, A.L.: A Routing Scheme<br />

for Content-Based Networking. In: INFOCOM 2004. Twenty-third Annual<br />

Joint Conference of the IEEE Computer and Communications Societies<br />

Bd. 2, 2004, S. 918–928<br />

[CS04] Cao, Fengyun ; Singh, J.P.: Efficient Event Routing in Content-based<br />

Publish-Subscribe Service Networks. In: INFOCOM 2004. Twenty-third<br />

Annual Joint Conference of the IEEE Computer and Communications Societies<br />

Bd. 2, 2004, S. 929–940<br />

[DABM05] De Couto, Douglas S. J. ; Aguayo, Daniel ; Bicket, John ; Morris,<br />

Robert: A High-Throughput Path Metric for Multi-Hop Wireless Routing.<br />

In: Wireless Networks 11 (2005), Jul, Nr. 4, S. 419–434<br />

89


Literaturverzeichnis<br />

[DPZ04] Draves, Richard ; Padhye, Jitendra ; Zill, Brian: Routing in Multi-Radio,<br />

Multi-Hop Wireless Mesh Networks. In: MobiCom ’04: Proceedings of the<br />

10th annual international conference on Mobile computing and networking.<br />

New York, NY, USA : ACM, 2004, S. 114–128<br />

[EFGK03] Eugster, Patrick T. ; Felber, Pascal A. ; Guerraoui, Rachid ; Kermarrec,<br />

Anne-Marie: The Many Faces of Publish/Subscribe. In: ACM<br />

Comput. Surv. 35 (2003), Jun, Nr. 2, S. 114–131<br />

[FGKZ03] Fiege, Ludger ; Gärtner, Felix C. ; Kasten, Oliver ; Zeidler, Andreas:<br />

Supporting Mobility in Content-Based Publish/Subscribe Middleware. In:<br />

Middleware 2003 Bd. 2672, Springer, 2003, S. 103–122<br />

[FLYV93] Fuller, V. ; Li, T. ; Yu, J. ; Varadhan, K.: Classless Inter-Domain<br />

Routing (CIDR): an Address Assignment and Aggregation Strategy. RFC<br />

1519 (Proposed Standard). http://www.ietf.org/rfc/rfc1519.txt.<br />

Version: September 1993 (Request for Comments). – Obsoleted by RFC<br />

4632<br />

[HBS + 02] Hapner, Mark ; Burridge, Rich ; Sharma, Rahul ; Fialli, Joseph ;<br />

Stout, Kate: Java Message Service Specification. http://java.sun.com/<br />

products/jms/docs.html. Version: 1.1, 2002<br />

[HGM04] Huang, Yongqiang ; Garcia-Molina, Hector: Publish/Subscribe in a<br />

Mobile Environment. In: Wireless Networks 10 (2004), Nov, Nr. 6, S. 643–<br />

652<br />

[JLZZ07] Jiang, Weirong ; Liu, Shuping ; Zhu, Yun ; Zhang, Zhiming: Optimizing<br />

Routing Metrics for Large-Scale Multi-Radio Mesh Networks. In: Wireless<br />

Communications, Networking and Mobile Computing, 2007. WiCom 2007.<br />

International Conference on, IEEE, 2007, S. 1550–1553<br />

[Lüd07] Lüders, Christian: Lokale Funknetze : Wireless LANs (IEE 802.11), Bluetooth,<br />

DECT. 1. Auflage. Würzburg : Vogel Buchverlag, 2007<br />

[MC02] Meier, René ; Cahill, Vinny: STEAM: Event-Based Middleware for Wireless<br />

Ad Hoc Networks. In: Distributed Computing Systems Workshops,<br />

International Conference on. Los Alamitos, CA, USA : IEEE Computer<br />

Society, 2002, S. 639<br />

[Mot08] Motorola: Java APIs for Bluetooth Wireless Technology (JSR 82). http:<br />

//jcp.org/en/jsr/detail?id=82. Version: 1.1.1, 2008<br />

[MR07] Medhi, Deepankar ; Ramasamy, Karthikeyan: Network Routing : Algorithms,<br />

Protocols, and Architectures. San Francisco, CA, USA : Morgan<br />

Kaufman Publishers, 2007<br />

[MSJ09] Moustafa, Hassnaa ; Senouci, Sidi M. ; Jerbi, Moez: Introduction to<br />

Vehicular Networks. In: Moustafa, Hassnaa (Hrsg.) ; Zhang, Yan (Hrsg.):<br />

90


Literaturverzeichnis<br />

Vehicular networks : Techniques, Standards and Applications. Boca Raton,<br />

FL, USA : Auerbach Publications, 2009, S. 1–20<br />

[MUHW04] Mühl, Gero ; Ulbrich, Andreas ; Herrmann, Klaus ; Weis, Torben:<br />

Disseminating Information to Mobile Clients Using Publish-Subscribe. In:<br />

IEEE Internet Computing 8 (2004), S. 46–53<br />

[Mul01] Muller, Nathan J.: Bluetooth. Bonn : MITP-Verlag, 2001<br />

[Ora10] Oracle Corporation: Java So<strong>und</strong> API Tutorial. http://java.sun.<br />

com/docs/books/tutorial/so<strong>und</strong>/index.html. Version: Jan 2010. – Abruf:<br />

1.2.2010<br />

[Per01] Perkins, Charles E.: Ad Hoc Networking : An Introduction. In: Perkins,<br />

Charles E. (Hrsg.): Ad Hoc Networking. Addison-Wesley, 2001, S. 1–28<br />

[Pos81] Postel, J.: Internet Control Message Protocol. RFC 792 (Standard). http:<br />

//www.ietf.org/rfc/rfc792.txt. Version: September 1981 (Request for<br />

Comments). – Updated by RFCs 950, 4884<br />

[Rec06] Rech, Jörg: Wireless LANs : 802.11-WLAN-Technologie <strong>und</strong> praktische<br />

Umsetzung im Detail. 2. Auflage. Hannover : Heise Zeitschriften Verlag,<br />

2006<br />

[Rec08] Rech, Jörg: Ethernet : Technologien <strong>und</strong> Protokolle <strong>für</strong> die Computervernetzung.<br />

2. Auflage. Hannover : Heise Zeitschriften Verlag, 2008<br />

[Ris08] Ristau, Henry: Publish/Process/Subscribe: Message Based Communication<br />

for Smart Environments. In: Intelligent Environments, 2008 IET 4th<br />

International Conference on, IEEE, 2008<br />

[Ris09a] Ristau, Henry: Announcement/Subscription/Publication: Message Based<br />

Communication for Heterogeneous Mobile Environments. In: MobileWireless<br />

Middleware, Operating Systems, and Applications Bd. 7, Springer, 2009,<br />

S. 295–308<br />

[Ris09b] Ristau, Henry: Challenges in Content Based, Semantically Decoupled<br />

Communication on Neighbor-Relations. In: Intelligent Interactive Assistence<br />

and Mobile Multimedia Computing, IMC 2009, Springer, Nov 2009<br />

[SA97] Segall, Bill ; Arnold, David: Elvin has left the building: A publish/subscribe<br />

notification service with quenching. In: Proceedings of AU-<br />

UG97, 1997, S. 243–255<br />

[SBC05] Sivaharan, Thirunavukkarasu ; Blair, Gordon ; Coulson, Geoff:<br />

GREEN: A Configurable and Re-configurable Publish-Subscribe Middleware<br />

for Pervasive Computing. In: On the Move to Meaningful Internet<br />

Systems 2005: CoopIS, DOA, and ODBASE Bd. 3760. Berlin / Heidelberg<br />

: Springer, 2005, S. 732–749<br />

91


Literaturverzeichnis<br />

[SFR04] Stevens, W. R. ; Fenner, Bill ; Rudoff, Andrew M.: Addison-Wesley<br />

Professional Computing Series. Bd. 1: UNIX Network Programming : The<br />

Sockets Networking API . 3. Auflage. Addison-Wesley, 2004<br />

[Sun03] Sun Microsystems: Connected Limited Device Configuration (CLDC)<br />

Specification. http://jcp.org/aboutJava/communityprocess/final/<br />

jsr139/index.html. Version: 1.1, 2003<br />

[Tan03] Tanenbaum, Andrew S.: Computer Networks. 4. Auflage. Upper Saddle<br />

River, NJ, USA : Prentice Hall PTR, 2003<br />

[TRP + 04] Tian, Feng ; Reinwald, Berthold ; Pirahesh, Hamid ; Mayr, Tobias<br />

; Myllymaki, Jussi: Implementing A Scalable XML Publish/Subscribe<br />

System Using Relational Database Systems. In: SIGMOD ’04: Proceedings<br />

of the 2004 ACM SIGMOD international conference on Management of<br />

data. New York, NY, USA : ACM, 2004, S. 479–490<br />

[TS08] Tanenbaum, Andrew S. ; Steen, Maarten van: Verteilte Systeme : Gr<strong>und</strong>lagen<br />

<strong>und</strong> Paradigmen. 2. Auflage. München : Pearson Studium, 2008<br />

[Ull07] Ullenboom, Christian: Java ist auch eine Insel : Programmieren mit der<br />

Java Standard Edition Version 6. 6. Auflage. Galileo Computing, 2007<br />

[Vro02] Vromans, Johan: Perl Pocket Reference. 4. Auflage. Sebastopol, CA, USA<br />

: O’Reilly Media, Inc., 2002<br />

[YWK05] Yang, Yaling ; Wang, Jun ; Kravets, Robin: Interference-aware Load<br />

Balancing for Multihop Wireless Networks / Department of Computer<br />

Science, University of Illinois at Urbana-Champaign. Version: Mär 2005.<br />

http://hdl.handle.net/2142/10974. 2005. – Forschungsbericht<br />

[ZF03] Zeidler, Andreas ; Fiege, Ludger: Mobility Support with REBECA. In:<br />

Proceedings of the 23rd International Conference on Distributed Computing<br />

Systems Workshops (ICDCSW’03). Los Alamitos, CA, USA : IEEE<br />

Computer Society, 2003, S. 354<br />

92


Selbstständigkeitserklärung<br />

Ich erkläre, dass ich die vorliegende Arbeit selbstständig <strong>und</strong> nur unter Vorlage der<br />

angegebenen Literatur <strong>und</strong> Hilfsmittel angefertigt habe.<br />

Rostock, den 25. Februar 2010<br />

Roland Seuchter

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!