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