Experimentelle Evaluierung eines Ansatzes zur semantisch

Transcription

Experimentelle Evaluierung eines Ansatzes zur semantisch
Experimentelle Evaluierung eines Ansatzes zur semantisch
entkoppelten Kommunikation in dynamischen, heterogenen
Netzwerken mittels Publish/Subscribe
Diplomarbeit
Universität Rostock
Fakultät für Informatik und Elektrotechnik
Institut für Informatik
Lehrstuhl für Informations- und Kommunikationsdienste
vorgelegt von:
Erstgutachter:
Zweitgutachter:
Betreuer:
Abgabedatum:
Roland Seuchter
Prof. Dr. Clemens H. Cap
Prof. Dr. Peter Forbrig
Henry Ristau
25.02.2010
Kurzfassung
In dieser Arbeit wird ASP (Announcement/Subscription/Publication), ein Routingverfahren für die Kommunikation in heterogenen Netzwerken, untersucht. Erstmals wird
das auf Publish/Subscribe basierende Verfahren in einem realen System umgesetzt. Das
Ziel der Arbeit ist es, zu prüfen, ob ASP in der Praxis als Middleware für die Kommunikation in heterogenen Netzen, wie sie zum Beispiel in intelligenten Umgebungen
vorkommen, geeignet ist. Bislang wurde ASP ausschließlich in Simulationen evaluiert. In
einem ausgewählten, realistischen Szenario sind die Experimente angesiedelt, mit denen
die Leistungsfähigkeit von ASP geprüft wird.
Abstract
This thesis analyses ASP (Announcement/Subscription/Publication). ASP is a routing
algorithm that is based on Publish/Subscribe. It has been designed to enable flexible
communication in heterogeneous networks. These networks can be found in smart environments and other systems. Earlier research used simulation to evaluate the concept
of ASP. This thesis marks the first time that ASP is implemented in a real system. The
objective of this thesis is to evaluate the approach and measure the performance of the
new system. A series of experiments in a realistic setting provide the data for assessing
ASP.
i
Inhaltsverzeichnis
Inhaltsverzeichnis
1. Einleitung
1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Zielstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Grundlagen und Stand der Technik
2.1. Überblick Publish/Subscribe . . . . . . .
2.2. Publish/Subscribe in heterogenen Netzen
2.3. Inhaltsbasiertes Routing . . . . . . . . . .
2.3.1. Datenmodelle . . . . . . . . . . . .
2.3.2. Adressierungsschemata . . . . . . .
2.3.3. Sprachen . . . . . . . . . . . . . .
2.3.4. Weitere Problemstellungen . . . .
2.4. Publish/Process/Subscribe . . . . . . . .
2.5. Announcement/Subscription/Publication
2.5.1. Interaktion . . . . . . . . . . . . .
2.5.2. Routing . . . . . . . . . . . . . . .
2.5.3. Anwendungsschnittstelle . . . . . .
2.5.4. Netzwerkabstraktionsschicht . . . .
2.5.5. Übertragungskategorien . . . . . .
2.6. Andere Publish-Subscribe-Middleware . .
2.7. Routingmetriken . . . . . . . . . . . . . .
2.7.1. Hop Count . . . . . . . . . . . . .
2.7.2. ETX . . . . . . . . . . . . . . . . .
2.7.3. ETT . . . . . . . . . . . . . . . . .
2.7.4. WCETT . . . . . . . . . . . . . . .
2.7.5. MIC . . . . . . . . . . . . . . . . .
2.8. Netzwerktechnologien . . . . . . . . . . .
2.8.1. IP . . . . . . . . . . . . . . . . . .
2.8.2. UDP . . . . . . . . . . . . . . . . .
2.8.3. Wireless LAN . . . . . . . . . . . .
2.8.4. Bluetooth . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
4
5
6
6
7
7
8
8
9
11
11
13
14
15
15
15
16
17
17
18
19
20
21
22
23
23
24
3. Konzept
26
3.1. Anwendungsszenarien für PPS . . . . . . . . . . . . . . . . . . . . . . . . 26
ii
Inhaltsverzeichnis
3.2. Szenario . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1. Ziele von ASP . . . . . . . . . . . . . . . . . .
3.2.2. Überblick . . . . . . . . . . . . . . . . . . . . .
3.2.3. Variationsmöglichkeiten . . . . . . . . . . . . .
3.3. Abbildung auf ASP . . . . . . . . . . . . . . . . . . . .
3.3.1. Anwendungstypen und Übertragungskategorien
3.3.2. Plattformen und Netzwerktechnologien . . . . .
3.3.3. Anwendungsschnittstelle . . . . . . . . . . . . .
3.3.4. Interaktion . . . . . . . . . . . . . . . . . . . .
3.3.5. Caching . . . . . . . . . . . . . . . . . . . . . .
3.4. Metrik . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1. Datentransport . . . . . . . . . . . . . . . . . .
3.4.2. Datenverarbeitung . . . . . . . . . . . . . . . .
3.4.3. Metrik für ASP . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
28
30
31
32
33
34
35
37
40
40
42
42
4. Implementierung
4.1. Einleitung . . . . . . . . . . . . . . . .
4.2. Anwendungen . . . . . . . . . . . . . .
4.2.1. Rekorder . . . . . . . . . . . .
4.2.2. Speicherung . . . . . . . . . . .
4.2.3. Konverter . . . . . . . . . . . .
4.2.4. Download . . . . . . . . . . . .
4.2.5. Weitere Anwendungen . . . . .
4.3. Broker . . . . . . . . . . . . . . . . . .
4.3.1. Multithreading . . . . . . . . .
4.3.2. Priorisierung . . . . . . . . . .
4.3.3. Fragmentierung . . . . . . . . .
4.4. Protokollierung . . . . . . . . . . . . .
4.5. NAL . . . . . . . . . . . . . . . . . . .
4.5.1. Priorisierung . . . . . . . . . .
4.5.2. Ethernet und WLAN via UDP
4.5.3. Bluetooth via OBEX . . . . . .
4.6. Nachrichtenformat . . . . . . . . . . .
4.7. Metrik . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
44
44
45
45
45
46
46
46
46
47
47
48
48
48
49
50
51
52
5. Experimenteller Ansatz
5.1. Experimente . . . . . . .
5.2. Versuchsaufbau . . . . . .
5.2.1. Hardwareumfeld .
5.2.2. Softwareumfeld . .
5.2.3. Beispielaufbau und
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
53
55
56
56
56
. . . . .
. . . . .
. . . . .
. . . . .
-ablauf
.
.
.
.
.
.
.
.
.
.
6. Auswertung
59
6.1. Heterogenität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
iii
Inhaltsverzeichnis
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.
6.8.
6.9.
Räumliche Entkopplung . . . . . .
Nachbarschaftsbeziehungen . . . .
Verwaltungsaufwand . . . . . . . .
Zeitliche Entkopplung . . . . . . .
Alternative Übertragungswege . . .
Gestörte Übertragungswege . . . .
Alternative Übertragungstechniken
Alternative Prozessoren . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
60
61
62
64
66
69
70
71
7. Schlussbetrachtungen
74
7.1. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
7.2. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
A. Nachrichtenformat
76
B. Versuche
B.1. Namensschema . . . . . . . . . . .
B.2. Übersicht der Experimente . . . .
B.3. Versuchsaufbau . . . . . . . . . . .
B.4. Hard- und Softwarespezifikationen
B.5. Ausgewählte Diagramme . . . . . .
77
77
77
79
83
84
Literaturverzeichnis
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
88
iv
Abbildungsverzeichnis
Abbildungsverzeichnis
2.1.
2.2.
2.3.
2.4.
Komponenten eines PPS-Knotens . .
Prozessor versendet Abonnements .
Verbindungsgewichtung durch ETX .
Beispiel Inter-Flow-Interferenz . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
12
19
20
3.1.
3.2.
3.3.
3.4.
3.5.
Szenarioskizze . . . . . . . . . . . . . . . . . . . .
Variationsmöglichkeiten im Szenario . . . . . . .
Schnittstellen zwischen Anwendungen und Broker
Nachrichtenverlust nach Routenänderungen . . .
Definition von tproc . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
30
35
38
43
5.1. Logische Trennung eines IP-Netzwerks in Subnetze . . . . . . . . . . . . . 54
6.1.
6.2.
6.3.
6.4.
Verwaltungsaufwand in Experiment 2, Reihe 2 . . . . . . . . .
Vergleich der Downloadzeiten . . . . . . . . . . . . . . . . . . .
Beispiel zeitlicher Ablauf der Ausbreitung von Ankündigungen
Störungen durch Bluetooth Inquiry Scans . . . . . . . . . . . .
B.1. Legende der Versuchsskizzen
B.2. Versuchsaufbau Experiment 1
B.3. Versuchsaufbau Experiment 2
B.4. Versuchsaufbau Experiment 5
B.5. Versuchsaufbau Experiment 3
B.6. Kosten der Ankündigungen in
B.7. Kosten der Ankündigungen in
B.8. Kosten der Ankündigungen in
B.9. Kosten der Ankündigungen in
B.10.Kosten der Ankündigungen in
B.11.Kosten der Ankündigungen in
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
X1v1R1@1M . .
X1v1R1@11M .
X1v1R1@54M .
X1v1R1@auto .
X1v1R2@dc80a .
X1v1R2@dc100 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
66
69
71
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
80
81
81
82
85
85
86
86
87
87
v
Tabellenverzeichnis
Tabellenverzeichnis
2.1.
2.2.
2.3.
2.4.
Publish-Subscribe-Beispielnachricht
ASP-Nachrichtentypen . . . . . . .
Übertragungskategorien . . . . . .
Vergleich der Metriken . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 8
. 14
. 15
. 21
3.1. Rollenverteilung in den Beispielszenarien . . . . . . . . . . . . . . . . . . . 27
3.2. Variationsmöglichkeiten der Vernetzung . . . . . . . . . . . . . . . . . . . 31
3.3. Variationsmöglichkeiten der Rollen und Plattformen . . . . . . . . . . . . 31
5.1. Kurzübersicht Versuchsrechner . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2. Rollenverteilung in Experiment 1, Variante 1, Reihe 2 . . . . . . . . . . . 57
6.1. Zuordnung der Versuche zu den Untersuchungsaspekten . . . . . . . . . . 60
6.2. Anzahl der Ankündigungen in Experiment 1, Variante 2, Reihe 1 . . . . . 62
6.3. Kosten und Hops in Experiment 1, Variante 1, Reihe 1 . . . . . . . . . . . 68
A.1. Nachrichtenformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
B.1.
B.2.
B.3.
B.4.
Durchgeführte Experimente
Softwareausstattung . . . .
Hardwareausstattung . . . .
Netzwerkperipherie . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
78
83
83
84
vi
1. Einleitung
1. Einleitung
1.1. Motivation
Intelligente Umgebungen sollen Menschen in ihren Arbeits- oder Wohnumgebungen
bei ihren Tätigkeiten unterstützen und sich an die Bedürfnisse ihrer Nutzer anpassen.
Dazu werden Räume mit Sensoren ausgestattet, die der Umgebung helfen, die Nutzer und ihren Kontext wahrzunehmen. Aktoren versetzen die Umgebung in die Lage, sich aktiv und selbstständig an die Situation anzupassen. Ein Beispiel sind ferngesteuerte Rollläden oder Zimmerlampen, die von einem Beleuchtungssensor gesteuert
werden, um eine gleichmäßige Beleuchtung zu gewährleisten. Die Flexibilität und Anpassungsfähigkeit intelligenter Umgebungen wächst sprunghaft, wenn neben einfachen
Sensoren und Aktoren weitere Geräte eingebunden werden. Angenommen, eine Person befindet sich in einem Wohnzimmer, das mit einem digitalen Videorecorder (DVR)
ausgestattet ist. Erkennt der Recorder, dass der Benutzer auf die Aufzeichnung eines
Spielfilms vom Vortag zugreift, wird die Zimmerbeleuchtung automatisch heruntergeregelt. Um dies zu erreichen, ist es notwendig, dass alle genannten Geräte miteinander
kommunizieren und kooperieren. Bei Sensoren, Aktoren und weiteren Geräten handelt
es sich aber um völlig unterschiedliche Geräte. Sie unterscheiden sich in ihrer Anzahl, in
der Rechen- und Speicherkapazität, in der Art und Leistungsfähigkeit der verfügbaren
Kommunikationsschnittstellen und in der Qualität der Stromversorgung. Ein Beleuchtungssensor mit ZigBee-Schnittstelle [Lüd07] und Solarbetrieb auf der einen Seite und
ein DVR mit 802.11n WLAN [Rec06] und Gigabit-Ethernet [Rec08] auf der anderen
Seite sind zwei Beispiele an gegenüberliegenden Enden eines breiten Spektrums. Diese
heterogene Vielfalt ist charakteristisch für intelligente Umgebungen.
Ein weiterer interessanter Aspekt intelligenter Umgebungen ist Mobilität. Betrachtet
man das eingangs genannte Beispiel erneut, so kann man sich leicht vorstellen, dass
der Benutzer, der den DVR steuert, ein Handy oder Smartphone besitzt. Intelligente
Umgebungen umfassen nicht nur Geräte, die fest installiert sind, sondern auch Geräte,
die mobil sind und die vom Nutzer in immer andere Umgebungen eingebracht werden. Im
Beispiel ist es wünschenswert, wenn sich das Telefon für die Dauer des Films selbstständig
in einen leisen Modus versetzt. Verlässt der Benutzer den Raum oder beendet er die
Aufzeichnung, kehrt das Telefon wieder in seinen ursprünglichen Betriebsmodus zurück.
Dazu muss es mit den anderen Geräten in der Umgebung kommunizieren. Kabellose
Verbindungstechniken eignen sich dafür besonders.
Die folgende Liste enthält zusätzliche charakteristische Eigenschaften für das Umfeld der
heterogenen Netze in intelligenten Umgebungen:
1
1. Einleitung
• paralleler Einsatz von Funkschnittstellen und Kabelverbindungen mit stark unterschiedlicher Reichweite, Bandbreite und Verfügbarkeit
• hohe Anzahl der Geräte
• unterschiedliche Hardware- und Programmierarchitekturen und damit verbunden
unterschiedliche Leistungsfähigkeit der Geräte
Das hat eine Reihe von Konsequenzen für das Netzwerk. Wegen der Vielzahl der Geräte
herrscht ein tendentiell hoher Kommunikationsbedarf. Arbeitet die Infrastruktur in dieser Situation nicht effizient, kann der Bedarf nicht gedeckt werden.
Dass es mobile Geräte und Geräte mit begrenzter Energieversorgung gibt, führt dazu, dass sich die Topologie des Netzes häufig ändert. Einzelne tragbare Geräte werden
bewegt und die Betriebszustände anderer Geräte ändern sich kurzfristig: An der einen
Stelle kommt ein mobiles Gerät hinzu, während am anderen Ende des Raumes ein batteriebetriebener Sensor den Dienst einstellen muss.
Vorhandene Funkschnittstellen verwenden ein geteiltes Medium und stellen eine Kommunikationsinfrastruktur vor weitere Probleme. Das Medium kann beträchtlichen Störungen ausgesetzt sein und die Verbindungsqualität kann schwanken. Auch dies hat
Änderungen in der Topologie zur Folge. Weiter kann eine festinstallierte, kabelgebundene Infrastruktur vorhanden sein, die im Allgemeinen eine höhere Bandbreite aufweist
und zuverlässiger ist als kabellose Netze, weshalb sie in die Kommunikationsvorgänge
einzubeziehen ist.
Nicht zuletzt führt die Vielfalt der Netzwerkschnittstellen der Geräte dazu, dass nur wenige Geräte unmittelbar miteinander kommunizieren können. Ein einheitlicher Adressraum existiert nicht. Die Kommunikation muss also koordiniert werden und kooperativ
sein. Einzelne Geräte müssen zwischen unterschiedlichen Techniken vermitteln.
Die genannten Eigenschaften heterogener Netze, wie sie in intelligenten Umgebungen
zu finden sind, und das Beispiel, veranschaulichen, dass es eine komplexe Aufgabe ist,
ein leistungsfähiges und flexibles Kommunikationskonzept zu entwerfen, dass die Geräte
miteinander verbindet.
1.2. Zielstellung
Mit Announcement/Subscription/Publication (ASP) existiert ein neuartiges Konzept,
das die Kommunikation in heterogenen Netzwerken ermöglichen kann. In einer Middleware kombiniert der Ansatz die Kommunikation mittels Publish/Subscribe mit einer flexiblen und aus Anwendungssicht transparenten Nachrichtenverarbeitung. Bislang wurde
der Ansatz von ASP in Simulationen evaluiert. Die Ergebnisse waren erfolgversprechend.
Erst eine reale Umsetzung kann zeigen, wie praxistauglich und ausgereift das in der Literatur beschriebene Konzept ist. In dieser Arbeit wird ASP daher erstmals in ein konkretes System überführt. Das entwickelte System ist die Grundlage für die experimentelle
2
1. Einleitung
Evaluierung des Ansatzes in einem praktischen Szenario. Aus dem Szenario werden in
dieser Arbeit vier unterschiedliche Experimente abgeleitet. Mit Hilfe dieser Experimente
werden Hypothesen geprüft, die sich wie folgt zusammenfassen lassen:
1. Das System funktioniert in einem heterogenen Umfeld.
2. Die Kommunikation ist räumlich entkoppelt und
3. erfolgt auf Grundlage von Nachbarschaftsbeziehungen.
4. Das System arbeitet mit einem niedrigen Verwaltungsaufwand.
5. Die zeitliche Entkopplung der Kommunikation ist gewährleistet.
6. Unter den alternativen Übertragungswegen wird ein effizienter gewählt.
7. Gestörte Übertragungswege werden vermieden und
8. unterschiedliche Übertragungstechnologien können genutzt werden.
9. Für die Datenverarbeitung werden die leistungsfähigsten der verfügbaren Geräte
eingebunden.
Ob ASP die gesteckten Erwartungen erfüllen kann, ergibt die Auswertung der praktischen Versuche. Es wird geklärt, wie effizient das implementierte System diese Ziele
erreicht und an welchen Stellen das Konzept gegebenenfalls verbessert oder konkretisiert
werden muss.
1.3. Überblick
Die vorliegende Arbeit ist neben der Einleitung in diesem Kapitel in sechs weitere Kapitel untergliedert. Kapitel 2 schildert die Grundlagen von Publish/Subscribe, dem darauf aufbauenden Ansatz Publish/Process/Subscribe und dem weiterführenden System
Announcement/Subscription/Publication (ASP). ASP ist der Untersuchungsgegenstand
dieser Arbeit.
Kapitel 3 erläutert das Szenario, in dem das implementierte System zum Einsatz kommt.
Fragestellungen, die einer erfolgreichen Implementierung vorausgehen, werden diskutiert.
Insbesondere wird die Metrik als ein Kernbereich der künftigen Middleware beschrieben.
Die Besonderheiten der Implementierung beschreibt Kapitel 4. Die Merkmale der Implementierung, die für das Verständnis des Ablaufs der Experimente und die spätere
Auswertung der Versuche von entscheidender Bedeutung sind, stehen dabei im Mittelpunkt.
Die Anforderungen an die Experimente und das Vorgehen bei den Versuchen enthält
Kapitel 5. Kapitel 6 diskutiert die durchgeführten Versuche und wertet sie aus. Die in
Abschnitt 1.2 genannten Hypothesen bilden den Leitfaden der Auswertung. Eine Zusammenfassung der Ergebnisse und einen Ausblick auf zukünftige Forschungsthemen
gibt Kapitel 7.
3
2. Grundlagen und Stand der Technik
2. Grundlagen und Stand der Technik
In Abschnitt 1.1 wurden die Merkmale intelligenter Umgebungen dargestellt. Damit die
Kommunikation in einem solchen Umfeld gewährleistet werden kann, wird eine geeignete Infrastruktur benötigt. Publish/Subscribe eignet sich als Grundlage einer solchen
Infrastruktur, denn die Kommunikation mittels Publish/Subscribe ist lose gekoppelt.
Client-Server-Architekturen sind zeitlich und räumlich eng gekoppelt. Client und Server
müssen zum Zeitpunkt der Kommunikation beide aktiv (und erreichbar) sein und der
Kommunikationspartner muss genau bekannt sein [TS08]. In einem heterogenen, dynamischen Netzwerk, in dem kein gemeinsamer Adressraum existiert und Verbindungen
instabil sind, werden diese Voraussetzungen nicht erfüllt.
Warteschlangensysteme entkoppeln die Kommunikation räumlich und zeitlich und sind
mit Publish/Subscribe sehr eng verbunden [EFGK03]. Publish/Subscribe ist jedoch noch
weiter entkoppelt, wie im folgenden Abschnitt beschrieben wird. Zudem ist die persistente Kommunikation, wie sie von Warteschlangensystemen angeboten wird, in intelligenten
Umgebungen im Allgemeinen nicht erforderlich. Die Infrastruktur ist somit zu komplex.
Im weiteren liegt der Schwerpunkt daher auf Publish/Subscribe. In diesem Kapitel werden zunächst die Grundlagen von Publish/Subscribe erläutert. Anschließend werden
schrittweise die Konzepte von Publish/Process/Subscribe (PPS) und Announcement/
Subscription/Publication (ASP) eingeführt. PPS ergänzt Publish/Subscribe um Mechanismen zur flexiblen Datenverarbeitung und unterstützt auf diese Weise die Kooperation
von Geräten in intelligenten Umgebungen. Auf PSP aufbauend, ist ASP ein Routingalgorithmus für die Kommunikation in heterogenen Netzwerken.
Metriken sind eine wesentliche Komponente von Routingalgorithmen. Auf Grundlage
einer Metrik wird die Auswahl der Verbindungen oder Pfade getroffen, auf denen Daten
transportiert werden. Für ASP wurde bislang keine Metrik festgelegt. Für die praktische
Umsetzung wird sie jedoch benötigt. Abschnitt 2.7 behandelt existierende Metriken. Sie
dienen später als Grundlage der Metrik für ASP.
Die praktische Umsetzung des entwickelten Systems greift auf eine Reihe verbreiteter
Netzwerktechnologien zurück. Das Kapitel schließt aus diesem Grund mit den wichtigsten Eckpunkten der eingesetzten Netzwerktechnologien.
4
2. Grundlagen und Stand der Technik
2.1. Überblick Publish/Subscribe
Publish/Subscribe ist ein Kommunikationsparadigma [EFGK03], das unter anderem der
Interaktion von Komponenten in komplexen verteilten Systemen besser gerecht werden
möchte als andere Ansätze, zu denen das Client-Server-Modell, Remote Procedure Calls1
(RPC) und Warteschlangensysteme (bzw. nachrichten-orientierte Middleware, MOM)
gehören. Einen Überblick dieser Techniken bietet [TS08], sodass ihre Hintergründe hier
nicht weiter Gegenstand sind. Stattdessen veranschaulicht eine detaillierte Betrachtung
der Komponenten und der Funktionsweise von Publish/Subscribe dessen Potenzial und
unterstreicht die Vorzüge der zentralen Eigenschaften von Publish/Subscribe.
An der Kommunikation mittels Publish/Subscribe sind stets drei Parteien beteiligt: Subscriber, Broker und Publisher2 . Der Subscriber ist an den Nachrichten, die der Publisher
erzeugt, interessiert. Der Broker koordiniert die Kommunikation und leitet Nachrichten
ausschließlich weiter. Er hat selbst kein Interesse am Inhalt der Nachrichten und erzeugt
auch keine Botschaften, ist also weder Quelle noch Senke. Möchte der Subscriber Nachrichten empfangen, teilt er dem Broker sein Interesse mit, d.h. er abonniert bestimmte
Nachrichten. Erzeugt der Publisher eine Botschaft, sendet er diese an den Broker. Der
überprüft, ob es (einen oder mehrere) Subscriber gibt, die an der Nachricht interessiert
sind und leitet sie an alle interessierten Subscriber weiter. Bereits in seiner einfachsten
Form, weist das Modell zwei interessante Eigenschaften auf:
1. Die Kommunikation ist räumlich entkoppelt (anonym).
2. Je ein Publisher kann mit nur einer Operation Nachrichten an beliebig viele Subscriber übertragen (Multicast).
Versendet der Publisher eine Nachricht, adressiert er die Empfänger nicht direkt. Die
Verbreitung der Information wird dem Broker überlassen. In der Folge müssen sich die
Kommunikationspartner nicht kennen. Die Kommunikation gilt als räumlich entkoppelt [EFGK03]. Der zweite Punkt besagt, dass der Broker jede eintreffende Nachricht an
mehrere Empfänger weiterleiten kann, falls sie Interesse daran haben. Unabhängig davon können in einem Publish-Subscribe-System mehrere Publisher existieren und aktiv
Nachrichten versenden.
Neben der räumlichen Entkopplung ist die Kommunikation per Publish/Subscribe auch
zeitlich entkoppelt und erfordert keine Synchronisation von Publisher und Subscriber
[EFGK03]. Die Bedeutung der zeitlichen Entkopplung ist, dass Sender und Empfänger
einer Nachricht nicht zum gleichen Zeitpunkt aktiv sein müssen. So kann ein Publisher eine Nachricht versenden, während der Empfänger dieser Nachricht inaktiv ist, oder
falls die Verbindung auf Sende- oder Empfangsseite unterbrochen ist. Die Entkopplung
1
2
Vereinfachend soll dies auch Remote Method Invocation (RMI) umfassen.
Die Bezeichnung ist uneinheitlich. In einigen Veröffentlichungen heißt es Produzent und Konsument
statt Publisher bzw. Subscriber; anstelle von Nachrichten wird häufiger von Ereignissen gesprochen
[CRW00, EFGK03, MC02] u.a.
5
2. Grundlagen und Stand der Technik
der Synchronisation bezieht sich auf das Blockieren der Kommunikationsvorgänge. Bei
Publish/Subscribe müssen sich weder Publisher noch Subscriber beim Versand bzw.
Empfang mit anderen Teilnehmern synchronisieren. Aldred et al. formalisieren die Entkopplung von Middleware entlang der drei Dimensionen Ort (Adresse), Zeit und Synchronisation [AADH05]. Sie argumentieren ferner, dass alle drei Dimensionen orthogonal
sind.
2.2. Publish/Subscribe in heterogenen Netzen
Stellt man den Ansatz von Publish/Subscribe den Charakteristika heterogener Netze
(siehe Abschnitt 1.1) gegenüber, stellt man fest, dass das Publish-Subscribe-Verfahren
gut für den Einsatz in intelligenten Umgebungen geeignet ist. Die räumliche Entkopplung
und die Multicast-Semantik helfen, viele Geräte zu verbinden. So müssen die Kommunikationspartner nicht aufwändig im Vorfeld einer Kommunikation ermittelt werden und
während des eigentlichen Kommunikationsvorgangs einzeln angesprochen werden. Die
veränderliche Topologie, hervorgerufen durch Geräte in unterschiedlichen Betriebszuständen, kann durch die zeitliche Entkopplung kompensiert werden, denn sie erlaubt die
Kommunikation auch dann, wenn einer der beteiligten Endpunkte inaktiv ist. Ähnliches
gilt für die Entkopplung der Synchronisation. Insbesondere erlaubt sie Applikationen
auf leistungsschwachen Geräten mit begrenzter Stromversorgung Nachrichten zu verschicken oder zu empfangen, ohne unter hohem Zeitaufwand auf andere Geräte warten
zu müssen.
2.3. Inhaltsbasiertes Routing
In Publish-Subscribe-Systemen spielt es eine entscheidende Rolle auf welcher Grundlage Nachrichten vom Broker weitergeleitet werden. Man spricht von inhaltsbasiertem
Routing, wenn der Broker auf Grundlage des Inhalts einer Nachricht entscheidet, wohin
diese übertragen werden soll. Daneben sind vordefinierte Multicastgruppen oder Flooding weitere Möglichkeiten zur Verbreitung der Nachrichten [CS04, MUHW04].
Das Datenmodell, die Adressierungsschemata und die Sprachen mit denen das
Interesse (oder das Angebot) an Inhalten beschrieben werden, sind grundlegend für
inhaltsbasiertes Routing, denn die Ausdrucksfähigkeit des Mechanismus, mit dem Interesse beschrieben werden kann, beeinflusst unmittelbar die Flexibilität des gesamten
Systems [CJ02]. Die folgenden Abschnitte geben einen Überblick zu den drei genannten
Bereichen. Abschließend werden in Abschnitt 2.3.4 weitere Problemstellungen vorgestellt
und einige konkrete Systeme genannt.
6
2. Grundlagen und Stand der Technik
2.3.1. Datenmodelle
Es existieren unterschiedliche Datenmodelle um den Inhalt von Nachrichten zu beschreiben. Sie sind die Grundlage, um das Interesse an Nachrichten formulieren zu können.
Ein weit verbreitetes Modell ist das bei SIENA [CRW00] verwendete, das eine Nachricht
als eine typenlose Menge typisierter Attribute definiert3 . In einer leichten Abwandlung
sprechen die Autoren von Mercury von Listen typisierter Attribut-Wert-Paare [BRS02].
In jedem Fall sind dies die Modelle, die die wissenschaftlichen Veröffentlichungen dominieren. Sivaharan et al. nennen zusätzlich Zeichenketten, Tupel, XML-Dokumente und
Objekte als Datenmodell [SBC05].
2.3.2. Adressierungsschemata
Die Adressierung von Empfängern in Publish-Subscribe-Systemen kann auf unterschiedliche Art und Weise erfolgen. Die drei geläufigsten Ansätze arbeiten entweder
• kanalbasiert,
• themenbasiert oder
• inhaltsbasiert.
Kanalbasierte Ansätze berücksichtigen den Inhalt von Nachrichten nicht. Stattdessen werden Kommunikationskanäle über Namen identifiziert [CRW00]. Ein Subscriber
abonniert den Kanal und empfängt somit sämtliche Nachrichten, die über den gewählten
Kanal veröffentlicht werden. In der Implementierung lässt sich dieser Ansatz unmittelbar
auf existierende Architekturen wie IP-Multicast abbilden. In Tabelle 2.1 ist ein Beispiel
für eine Nachricht gegeben. In einem kanalbasierten Publish-Subscribe-System könnte
sie z.B. in dem Kanal Börsennachrichten“ veröffentlicht werden. Es steht dem Publisher
”
frei, welche Nachrichten er in welchem Kanal veröffentlicht.
Der Mechanismus themenbasierter Adressierung ist ausdrucksstärker als kanalbasierte Adressierung [HGM04,BCM+ 99,EFGK03]. Ein Publisher kennzeichnet jede Nachricht mit einem sogenannten Thema. Subscriber abonnieren Nachrichten mit einem bestimmten Thema. Stimmt das gewünschte Thema mit dem einer Nachricht überein,
wird die Nachricht an den interessierten Subscriber ausgeliefert. So könnte das Beispiel
(Tab. 2.1) das Thema Kursänderung“ haben.
”
Am flexibelsten ist die inhaltsbasierte Adressierung [BCM+ 99,HGM04]. Anstatt lediglich ein einzelnes Attribut oder Thema mit einem vorgegebenen Wert zu vergleichen,
erlauben inhaltsbasierte Verfahren die Auswertung der kompletten Nachricht (z.B. aller
Attribute). Erst wenn alle untersuchten Eigenschaften einer Nachricht erfüllt sind, d.h.
mit dem Interesse des Subscribers übereinstimmen, wird sie an diesen weitergeleitet. Eine
3
untyped set of typed attributes“ [CRW00]
”
7
2. Grundlagen und Stand der Technik
Ausnahme bildet das System A-ToPSS [CJ02], welches auch teilweise Übereinstimmungen (n aus m ; n < m) zulässt. Zusammenfassend lässt sich sagen, dass die kanalbasierte
und insbesondere die themenbasierte Adressierung Spezialfälle der inhaltsbasierten Verfahren sind [HGM04,CRW00]. Das Beispiel aus Tabelle 2.1 würde die folgende komplexe
Bedingung erfüllen:
Unternehmen = ’Friendface’ UND Preis > 21,60 UND
(Handelsplatz = ’Hannover’ ODER Handelsplatz = ’Stuttgart’)
Neben den genannten Ansätzen schlagen Eugster et al. ein typbasiertes Verfahren vor,
welches eine engere Integration von Middleware und Sprache (siehe Abschnitt 2.3.3)
sowie Typsicherheit ermöglichen soll [EFGK03].
Attribut
Unternehmen
Wertpapier
Datum
Uhrzeit
Preis
Handelsplatz
Wert
Friendface
AKTIEFF
2009-07-27
14:06 CEST
21,64 e
Hannover
Tabelle 2.1.: Eine Beispielnachricht in einem Publish-Subscribe-System.
2.3.3. Sprachen
Die Ausdrucksfähigkeit eines inhaltsbasierten Publish-Subscribe-Systems hängt von der
Sprache ab, die genutzt wird, um Interesse – d.h. Abonnements – zu beschreiben. Gängig
ist die Formulierung als Zeichenkette wobei neben proprietären Sprachen auch SQL oder
XPath zur Anwendung kommen können [HBS+ 02, TRP+ 04, EFGK03]. Letzteres ist die
naheliegende Wahl, wenn Nachrichten in XML kodiert werden. Allgemein sind boolesche
Ausdrücke vorherrschend. Sie verknüpfen Vergleiche von Attributwerten und Konstanten
miteinander. Unterschiedliche Vergleichsoperatoren wie =,6=,<,> usw. kommen dabei
zum Einsatz, soweit sie auf den Datentypen der Attribute definiert sind [CRW00, SA97,
EFGK03].
2.3.4. Weitere Problemstellungen
In der Literatur werden spezielle Problemfragen von inhaltsbasiertem Routing diskutiert.
Häufig finden die Ergebnisse Eingang in Routingalgorithmen oder Prototypen. Eines der
Probleme ist die effiziente Auswertung von Prädikaten, d.h. der Vergleich von Nachrichten mit den Interessen der Kommunikationspartner. So wurden Überdeckungsrelationen
vorgeschlagen, um die Anzahl und Komplexität von Prädikaten zu reduzieren [CRW04].
8
2. Grundlagen und Stand der Technik
Suchbäume sollen die Zahl der Vergleiche auf das für das Weiterleiten von Nachrichten
nötige Minimum reduzieren [BCM+ 99].
Über das Wann und Wo der Auswertung von Prädikaten gibt es unterschiedliche Meinungen. Das System Kyra [CS04] unterteilt den Raum möglicher Nachrichten und strukturiert zusätzlich das Netzwerk der Broker in Cliquen, die in Bäumen organisiert sind,
um die Vergleiche auf nahegelegenen und (pro Nachricht) weniger Knoten durchführen
zu müssen.
Vor dem Hintergrund der Multicast-Eigenschaft von Publish/Subscribe muss man das
Argument aus [CRW00] sehen, wonach Prädikate möglichst früh, d.h. wenige Stationen
vom Publisher entfernt auszuwerten sind, Verzweigungen, d.h. Kopien von Nachrichten,
möglichst spät, also nahe an den Subscribern durchgeführt werden sollen. Beides soll
die Belastung des Netzwerks minimieren. Konsequenterweise sollten Nachrichten für die
momentan kein Interesse besteht, überhaupt nicht versendet werden. Diese Optimierung
ist unter dem Begriff source quenching bereits seit längerem bekannt [SA97].
Die Anonymität der Kommunikationspartner und das Multicasting in inhaltsbasierten Publish-Subscribe-Systemen erschweren die verlustfreie Ende-zu-Ende-Übermittlung
von Nachrichten, was in vielen Anwendungen eine wichtige Anforderung an die Dienstgüte ist. Mit Gryphon wurde eine komplexe Lösung vorgestellt, die auf Zeitschlitzen
basiert [BSB+ 02] und die Nachrichtenübermittlung absichert.
Mobile Geräte und insbesondere MANETs4 stellen besondere Anforderungen. Huang und
Garcia-Molina beschreiben in [HGM04] Szenarien wie inhaltsbasiertes Publish-Subscribe
für mobile und Ad-Hoc-Umgebungen erweitert werden kann. Sie untersuchen den Einsatz
von zentralen, verteilten und replizierten Brokern. Zusätzlich untersuchen sie weitere
allgemeine Fragen des mobilen Publish/Subscribe.
Mit zwei unterschiedlichen Vorstellungen von Mobilität beschäftigt sich [FGKZ03]. Fiege
et al. unterscheiden die transparente Mobilität von Anwendungen, aber auch Mobilität
und Ortsbezug als Anwendungskontext. In ihrem Ansatz setzen sie auf Stellvertreter von
Subscribern, die Nachrichten empfangen, während der echte Subscriber keine Verbindung
zum Netz hat. GREEN und STEAM befassen sich ebenfalls mit dem mobilen Umfeld
[SBC05,MC02]. Sie sehen Anwendungen insbesondere im Verkehrsbereich und VANETs5
und erweitern Publish/Subscribe für ihre Beispielanwendungen um räumliche Nähe als
weitere Filterdimension.
2.4. Publish/Process/Subscribe
Um die volle Leistungsfähigkeit einer intelligenten Umgebung auszuschöpfen, müssen
alle vorhandenen Geräte miteinander kommunizieren. Wie bereits erläutert wurde (siehe S. 1), sind intelligente Umgebungen sehr heterogen. Ziel des in [Ris08] vorgestellten
4
5
Mobile ad hoc networks; siehe [Per01].
Vehicular ad hoc networks; siehe [MSJ09].
9
2. Grundlagen und Stand der Technik
Publish/Process/Subscribe (PPS) ist es, den Geräten zu ermöglichen, unabhängig von
ihrer Kommunikationstechnologie Daten auszutauschen. Existierende Ansätze sind ungenügend und müssen von zentralen Komponenten und dem Bedarf manueller Konfiguration befreit werden [Ris08]. Um maximale Flexibilität zu erreichen, setzt das Konzept
von PPS auf Publish/Subscribe auf (siehe Abschnitte 2.1 und 2.2). Dabei macht es
sich dessen Vorzüge der räumlichen und zeitlichen Entkoppelung zunutze. Ergänzt wird
die Architektur aus Publisher, Subscriber und Broker um Prozesse, die Daten verarbeiten können (Prozessoren). Diese Prozesse können (Sensor-)Daten auswerten und Geräte
steuern oder sie unterstützen andere Geräte beim Datenaustausch durch die transparente
Wandlung von Daten in unterschiedlichen Formaten [Ris09a]. Ohne derartige Prozessoren werden Daten mit klassischem Publish/Subscribe lediglich verteilt.
Das Konzept von PPS, welches explizit auf die Anwendung in intelligenten Umgebungen
zugeschnitten ist, sieht für jeden Knoten eine bestimmte Struktur aus unterschiedlichen
Komponenten vor (siehe Grafik 2.1). Im heterogenen Netz verfügt jeder (physische)
Knoten über einen eigenen Broker (lokaler Broker), der die Kommunikation mit benachbarten Knoten bzw. deren Brokern übernimmt. Anwendungen, die auf dem Knoten
aktiv sind, werden in die drei Kategorien Quelle, Senke und Prozessor unterteilt. Jede
Anwendung ist mit dem lokalen Broker ihres Knotens über eine definierte Schittstelle
verbunden. Die Existenz von Brokern auf jedem Knoten wird damit begründet, dass auf
diesem Wege lokales Wissen über den Knoten und seine unmittelbaren Nachbarn für den
Betrieb genügt. Eine globale Sicht und damit die Kenntnis aller Knoten im Netzwerk
ist nicht erforderlich. Wegen der Heterogenität der Umgebung wäre sie unzweckmäßig.
Für ein Smartphone, welches per Bluetooth mit dem Netzwerk verbunden ist, ist die
Information, dass es in einem anderen Bereich des Netzes zwei per Ethernet verbundene
Knoten gibt, nutzlos. Das Smartphone kann nicht direkt mit den Knoten kommunizieren. Häufige Topologieänderungen wie sie im Einsatzumfeld von PPS zu erwarten sind,
treiben zudem die Kosten für das Vorhalten einer konsistenten und aktuellen Sicht auf
das gesamte Netz in die Höhe. Informationen über die Topologie müssten nach jeder
Änderung an jeden Knoten im Netz verteilt werden, was das Netzwerk belasten würde.
Eine weitere Komponente ist der sog. Network Abstraction Layer (NAL), die Netzwerkabstraktionsschicht. Sie verbirgt die Eigenheiten einer konkreten Kommunikationstechnik vor den darüberliegenden Schichten, also insbesondere vor dem Broker.
Die Interaktion der Broker und Anwendungen untereinander ist ein Routingproblem
[Ris08]. Nachrichten müssen von den Quellen, durch das Netzwerk aus Brokern hindurch,
zu den Senken transportiert werden. Auf dem Weg kann es erforderlich sein, dass ein oder
mehrere Prozessoren die Daten verarbeiten. Es können mehrere Wege von der Quelle zur
Senke existieren. Die Komplexität wird dabei durch die Einbeziehung der Prozessoren
erhöht. Um ein Datum d nach d0 abzubilden, können unterschiedliche Verknüpfungen
von Funktionen existieren, die sich in der Reihenfolge und Anzahl der Einzeloperationen
und damit den beteiligten Prozessoren unterscheiden. Es müssen also Wege durch ein
Netzwerk gefunden werden, die möglichst kostengünstig sind. In [Ris08] werden drei
Strategien für das Routing vorgestellt, von denen ein auf Flooding basierender Ansatz
10
2. Grundlagen und Stand der Technik
Quelle
Quelle
Prozessor
Prozessor
Senke
Senke
Anwendungss.
Nachbarn
Broker
NAL
Abbildung 2.1.: Die Komponenten von PPS auf einem Knoten: Anwendungen (Quelle,
Prozessor, Senke), die Anwendungsschnittstelle, der Broker und die Netzwerkabstraktionsschicht (NAL). NAL und Broker sammeln Informationen
über Nachbarknoten. Abbildung nach [Ris08].
weiter verfolgt wird und in das Konzept Announcement/Subscription/Publication (ASP)
mündet. Einer der beiden weiteren Vorschläge basiert auf der Abbildung von Prozessoren
auf je eine Quelle und Senke, dem anderen liegt die netzweite Verbreitung des Interesses
an Publikationen zu Grunde.
2.5. Announcement/Subscription/Publication
Mit Announcement/Subscription/Publication (ASP) existiert ein Konzept, dass das zuvor beschriebene PPS umsetzen möchte. Die grundlegende Architektur von ASP ist
daher gleich der von PPS: In einem Netzwerk aus Knoten kommunizieren Anwendungen
(Quelle, Senke oder Prozessor) untereinander per Publish/Subscribe. Auf jedem Knoten
existiert dazu ein Broker mit Applikationsschnittstelle und Netzwerkabstraktionsschicht.
ASP konkretisiert einige dieser Konzepte und ergänzt einen Routingalgorithmus [Ris09a].
2.5.1. Interaktion
Die Interaktion zwischen den Brokern und den restlichen Komponenten des ASP-Systems läuft in drei Phasen ab: Ankündigung, Abonnement und Veröffentlichung. Jede
dieser Phasen wird auf einen separaten Nachrichtentyp abgebildet. Sämtliche Nachrichten tragen Identifikationsnummern. Sie werden fortan als ASP ID oder verkürzend als
ID bezeichnet. Trägt eine Ankündigung zum Beispiel die ID 7e44a5e4, so tragen alle
nachfolgenden Abonnements und Veröffentlichungen, die auf die Ankündigung bezug
nehmen dieselbe ID. Dies entspricht der themenbasierten Adressierung (siehe Seite 7).
Mit Ankündigungen (Announcement) signalisieren Quellen, dass sie Daten im Netz
zur Verfügung stellen. Ankündigungen werden grundsätzlich an alle Broker im Netzwerk
11
2. Grundlagen und Stand der Technik
verteilt. Broker erhalten auf diese Weise eine Übersicht über die verfügbaren Datenquellen und lernen den Nachbarn kennen, über den die Nachrichten bezogen werden
können. Eine Ankündigung kann eine Beschreibung der Daten enthalten, die die Quelle in Zukunft unter der gegebenen ID veröffentlichen wird. Handelt es sich bei einer
Quelle beispielsweise um eine Webcam, die regelmäßig Aufnahmen macht, kann eine
Ankündigung Informationen wie den Standort der Kamera, Bildmaße usw. enthalten.
ASP legt weder die Form noch den Inhalt von Ankündigungen fest. Die Erzeugung
und Interpretation einer Ankündigung ist den Anwendungen (Quelle, Prozessor, Senke)
überlassen. Erzeugt eine Quelle Nachrichten von geringem Umfang oder werden sie nur
selten versendet, kann eine Ankündigung statt einer Beschreibung das komplette Datum
enthalten. Ein Temperatursensor kann auf diese Weise den jüngsten Messwert mit einer Ankündigung verbreiten. Neben Quellen können auch Prozessoren den Versand von
Ankündigungen auslösen. Dies geschieht als Reaktion auf Ankündigungen von anderen
Quellen oder Prozessoren, wenn ein Prozessor aus den bisher empfangenen Ankündigungen A1 , A2 usw. beziehungsweise den entsprechenden Veröffentlichungen P1 , P2 usw.
eine neue Ankündigung A0 (bzw. P 0 ) erzeugen kann.
Ein Abonnement (Subscription) wird als Reaktion auf eine Ankündigung verschickt.
Bevor eine Senke ein Abonnement auslösen kann, muss sie eine Ankündigung empfangen
haben. Wird eine Ankündigung eines Prozessors abonniert, abonniert dieser alle Ankündigungen, die nötig sind, um die gewünschten Veröffentlichungen erzeugen zu können
(siehe Grafik 2.2).
S1
S’
Proz.
Broker
S2
S3
Abbildung 2.2.: Ein Prozessor erhält ein Abonnement S 0 und versendet daraufhin Abonnements für S1 , S2 , S3 .
Neben Abonnements existieren Kündigungen. Sind ein Prozessor oder eine Senke nicht
länger an den Daten einer Quelle interessiert, versendet der zuständige Broker eine
Kündigung, die dieselbe ID wie die Ankündigung trägt. Spätere Veröffentlichungen mit
dieser ID werden dem Prozessor oder der Senke nicht zugestellt.
Die von Quellen angebotenen Daten werden in Form von Veröffentlichungen (Publication) verbreitet. Jede Veröffentlichung trägt die zur jeweiligen Ankündigung und
dem Abonnement gehörende ID. Liegt einem Broker kein Abonnement zu einer ID vor,
versendet der Broker die von den lokalen Anwendungen erzeugten Veröffentlichungen
nicht.
12
2. Grundlagen und Stand der Technik
2.5.2. Routing
ASP sieht einen Routingalgorithmus vor, der lediglich voraussetzt, dass Knoten ihre
unmittelbaren Nachbarn kennen, mit denen sie direkt kommunizieren können.
Ankündigungen werden wie bereits erwähnt, an alle Broker im Netz verteilt. Um dies zu
erreichen, werden Ankündigungen im Netzwerk geflutet. Eine neue Nachricht (Ankündigung) wird an alle benachbarten Broker und lokalen Prozessoren und Senken verteilt.
Empfängt ein Broker bi eine Ankündigung von einem Nachbarn, speichert er, von welchem Nachbarbroker bj die Ankündigung versendet wurde. Außerdem merkt der Broker
bi sich die Kosten der Nachricht. Eine Metrik akkumuliert die Kosten der Weiterleitung
der Ankündigung vom erzeugenden Broker b0 bis zum empfangenden Broker bi . Anschließend reicht der Broker die Ankündigung an lokale Anwendungen und leitet die Nachricht
an alle ihm bekannten Nachbarn mit Ausnahme des Absenders bj weiter. Dabei werden
die Kosten der Nachricht entsprechend den Kosten der Verbindung, über die die Ankündigung weitergeleitet wird, angepasst. Broker speichern die IDs von Ankündigungen, die
sie bereits weitergeleitet haben. Eine Ankündigung wird von jedem Broker nur einmal
an seine Nachbarn weitergeleitet. Dadurch ist sichergestellt, dass die Weiterleitung der
Nachrichten terminiert.
Erhält eine Senke von ihrem Broker eine Ankündigung und ist sie an zukünftigen Veröffentlichungen, wie sie in der Ankündigung beschrieben werden, interessiert, signalisiert
die Senke dies ihrem Broker. Dieser erzeugt ein Abonnement mit der ID der Ankündigung. Kann das Abonnement nicht von einer lokalen Quelle oder Prozessor bedient
werden, verschickt der Broker die Nachricht an einen seiner Nachbarn. Der Broker wählt
den Nachbarn, dessen Kosten laut Metrik für die gegebene ID minimal sind. Abonnements gelangen schrittweise zum Broker, der die ursprüngliche Ankündigung versandt
hat. Empfängt ein Broker ein Abonnement, nimmt er den sendenden Nachbarn mit der
ID und den Kosten in eine Tabelle sogenannter aktiver Pfade auf. Das Abonnement wird
wie zuvor an den Nachbarn mit der günstigsten Ankündigung weitergeleitet. Stammt die
günstigste Ankündigung A0 von einem lokalen Prozessor, wird die Nachricht an diesen
weitergegeben. Für alle Ankündigungen A1 bis An (n ≥ 1), die der Prozessor verarbeiten
muss, um A0 erzeugen zu können, werden Abonnements verschickt. Erreicht ein Abonnement die Quelle der Ankündigung, wird die Nachricht nicht weitergeleitet. Der Broker
merkt sich von welchem Nachbarn das Abonnement gesendet wurde. Kündigungen werden auf dieselbe Weise weitergeleitet wie Abonnements.
Veröffentlicht eine Quelle Daten, erzeugt der Broker eine Veröffentlichung und sendet sie
an alle Nachbarn, die Teil eines aktiven Pfades für die gegebene ID sind. Beim Empfang
einer Veröffentlichung reicht ein Broker die Daten an lokale Anwendungen (Prozessor
oder Senke), falls diese die ID der Veröffentlichung abonniert haben. Danach wird die Veröffentlichung an alle Nachbarn weitergeleitet, von denen Abonnements der ID vorliegen.
Damit die Zahl der von einem Broker gespeicherten aktiven Pfade und weitergeleiteten
Ankündigungen nicht beliebig zunimmt, wird jede Ankündigung bei ihrer Erzeugung
mit einer Gültigkeitsdauer versehen. Ist die Gültigkeit einer Ankündigung abgelaufen,
13
2. Grundlagen und Stand der Technik
werden alle damit verbundenen aktiven Pfade ungültig. Veröffentlichungen werden dann
von den Brokern entlang dieser Pfade nicht mehr weitergeleitet. Ein ungültiger Pfad
und die zugrunde liegende Ankündigung werden von Brokern gestrichen. Quellen und
Prozessoren bzw. deren Broker verlängern Ankündigungen vor Ablauf ihrer Gültigkeit.
Um eine eventuell aufgetretene Verdopplung einer Ankündigung von einer Verlängerung
derselben unterscheiden zu können, tragen Ankündigungen Sequenznummern.
Ein weiterer Nachrichtentyp wird verwendet, wenn es bei der Weiterleitung von Veröffentlichungen entlang eines aktiven Pfades zu Ausfällen von Knoten oder Verbindungen
kommt. Erkennt ein Broker ein solches Problem wird eine Störungsmeldung ( broken
”
path“, siehe [Ris09a]) erzeugt. Die Meldung trägt die ID der Ankündigung, die dem
gestörten aktiven Pfad vorausging und wird nach demselben Verfahren wie Abonnements zur Quelle einer Ankündigung weitergeleitet. Dort erzeugt der betreffende Broker
eine neue Ankündigung, die im Netzwerk geflutet wird. Interessierte Senken oder Prozessoren reagieren darauf mit einem erneuten Abonnement, wodurch die aktiven Pfade
wiederaufgebaut werden.
Tabelle 2.2 fasst die unterschiedlichen Nachrichtentypen und ihre Funktionen zusammen.
Nachrichtentyp
Ankündigung
Abonnement
Kündigung
Störungsmeldung
Veröffentlichung
Kurzbeschreibung
Information über die Verfügbarkeit von Daten,
Routenfindung
Ausdruck von Interesse, Aufbau aktiver Pfade
Abbau aktiver Pfade
Reparatur kaputter, aktiver Pfade
Transport von Daten zwischen Quelle, Prozessor
und Senke
Tabelle 2.2.: Eine Übersicht der Nachrichtentypen von ASP.
2.5.3. Anwendungsschnittstelle
Die Anwendungsschnittstelle dient dem Datenaustausch zwischen Quelle, Senke oder
Prozessor auf der einen und dem Broker auf der anderen Seite. In [Ris09a] wird sie umrissen. Demnach müssen sich Anwendungen zunächst beim lokalen Broker registrieren.
Dadurch werden der Versand und Empfang von Daten ermöglicht. Für Senken und Prozessoren – die einzigen möglichen Empfänger von Nachrichten – ist vorgesehen, dass sie
bei der Registrierung einen Filter angeben. Ein Filter schränkt die Menge der Ankündigungen, die vom Broker an die jeweilige Anwendung weitergereicht werden, ein. So
erhält die Anwendung nur Ankündigungen, die den Filter passieren. Ohne Filter werden
alle gültigen Ankündigungen zugestellt, die den Broker erreichen.
Für die Schnittstelle zwischen Prozessoren und Broker ist vorgesehen, dass ein Prozessor
Angaben über die Kosten der Datenverarbeitung macht. Der Broker bestimmt daraus
die Gesamtkosten.
14
2. Grundlagen und Stand der Technik
2.5.4. Netzwerkabstraktionsschicht
Zu den Aufgaben der Netzwerkabstraktionsschicht (NAL) gehört das Erkennen und Verwalten von Nachbarknoten. Nachrichten soll der NAL bei der Übertragung zwischen
Nachbarn vor Verlust schützen. Außerdem sammelt die Schicht Informationen über Verbindungen, um die Metrik zu berechnen, die die Weiterleitung von Nachrichten steuert. Existiert ein NAL für die darunterliegende Sicherungsschicht ( [data] link layer“),
”
spielt es keine Rolle, ob das Gerät über Bluetooth-, ZigBee- oder IEEE 802.11b WLANSchnittstellen verfügt. Dabei muss der NAL nicht notwendigerweise von diesem Niveau
abstrahieren, sondern kann z.B auch auf UDP/IP aufsetzen.
2.5.5. Übertragungskategorien
Die Art der Nachrichten (Veröffentlichungen) und damit der Daten, die in einem ASPNetzwerk verteilt werden, kann von Anwendung zu Anwendung stark variieren. Eine
Unterteilung aller denkbaren Übertragungen in vier Kategorien wird daher in [Ris09a]
vorgenommen. Die Einteilung in die Kategorien erfolgt anhand der Nachrichtengröße
bzw. der Häufigkeit von Veröffentlichungen. Daraus ergeben sich folgende Kategorien:
Kategorie
1
2
3
4
Nachrichtengröße
klein
klein
groß
groß
Häufigkeit
Einzelnachrichten
Nachrichtenstrom
Einzelnachrichten
Nachrichtenstrom
Tabelle 2.3.: Einteilung der Übertragungen in Kategorien nach [Ris09a].
Die Einteilung wird vorgenommen um unterschiedliche Optimierungen bei der Verteilung
der Nachrichten anwenden zu können. So wird unter anderem vorgeschlagen, kleine,
selten versendete Nachrichten (Kategorie 1) im gesamten Netzwerk zu fluten.
Große Nachrichten (Kategorien 3 und 4), insbesondere Veröffentlichungen, sind größer
als einzelne Nachrichten auf der Sicherungsschicht6 des Netzwerks sein können. ASP
sieht daher einen Mechanismus zur Fragmentierung von Veröffentlichungen in mehrere
Nachrichten vor.
2.6. Andere Publish-Subscribe-Middleware
Es gibt Middleware, die Publish/Subscribe in heterogenen Netzen oder intelligenten Umgebungen umsetzt. Erwähnenswert sind STEAM, GREEN, Rebeca und MundoCore. Im
Fokus von STEAM [MC02] stehen MANETs nach IEEE 802.11. Die Autoren verwenden
6
OSI-Layer 2. OSI-Referenzmodell siehe [Tan03, S. 37 ff.]
15
2. Grundlagen und Stand der Technik
als Pub-Sub-Terminologie Produzent, Konsument und Ereignis. Als größte Schwierigkeit
in Ad-Hoc-Umgebungen sehen sie das Fehlen systemweiter Dienste, weshalb existierende Kommunikations-Middleware wie CORBA ungeeignet sei. Als Einsatzbereich ihrer
Technik beschreiben sie Verkehrsanwendungen. Aus diesem Grund integrieren sie das
Konzept der räumlichen Nähe in die Verbreitung von Nachrichten.
Die Fähigkeit, die Middleware schnell an andere Umgebungen anzupassen und somit
schnell zwischen infrastrukturbasiertem und Ad-Hoc-Funk wechseln zu können, sind
die herausragenden Eigenschaften von GREEN [SBC05]. Der modulare Aufbau und die
Möglichkeit der Rekonfiguration zur Laufzeit erlauben GREEN die Verwendung themenund inhaltsbasierter Publish-Subscribe-Adressierung. Darüber hinaus werden Ereignisse
im Netz je nach Konfiguration über Multicast-Overlay-Netze oder strukturierte OverlayNetze transportiert. Die Middleware kann bei Bedarf für bestimmte Dienstgütemerkmale
konfiguriert werden. Als Beispiel nennen die Autoren die Zustellung von Nachrichten innerhalb festgelegter zeitlicher Fristen.
Die Publish-Subscribe-Middleware Rebeca wurde erweitert, um Mobilität von Clients
(Publisher oder Subscriber) zu ermöglichen [FGKZ03]. Die Autoren unterscheiden dabei
zwei Formen von Mobilität: Physische und logische Mobilität. Darunter verstehen sie
Standortänderungen von Clients auf der einen Seite und die Änderung der Position als
Anwendungskontext auf der anderen Seite. Sie schlagen Verfahren vor, wie beide Arten
der Mobilität in die bestehende Publish-Subscribe-Middleware integriert werden können.
Der Umgang mit der physischen Mobilität basiert auf einem virtuellen Subscriber, an
den Nachrichten ausgeliefert werden, während sich der reale Subscriber (vom Netzwerk
getrennt) bewegt [ZF03]. Wenn der Subscriber wieder Anschluss an das Netz findet,
werden zwischenzeitlich veröffentlichte Nachrichten zugestellt.
Aitenbichler et al. haben mit MundoCore ein umfangreiches Middleware- und Programmier-Framework für den Einsatz in intelligenten Umgebungen entwickelt [AKM07]. Es
bietet kanalbasiertes und inhaltsbasiertes Publish/Subscribe. In der Transportschicht7
werden IP, serielle Bluetoothverbindungen und Infrarotverbindungen unterstützt. Die
modularen Protokollstapel erlauben den Einsatz unterschiedlicher Routingstrategien wie
hierarchisches Routing und strukturierte Overlay-Netze. MundoCore ist u.a. für die JavaPlattformen J2SE8 und J2ME/CLDC9 verfügbar und unterstützt damit eine Vielzahl
von Endgeräten.
2.7. Routingmetriken
Wie in Abschnitt 2.4 beschrieben, handelt es sich bei der Kommunikation von Brokern
und den an sie angebundenen Anwendungen um ein Routingproblem. Das Netzwerk in
dem geroutet werden soll, wird an dieser Stelle als gerichteter Graph G abstrahiert, wobei
7
transport layer“ [AKM07]. Gemeint ist die Transportschicht von MundoCore, nicht OSI-Layer 4.
Java 2 Standard Edition. Siehe [Ull07].
9
Java 2 Micro Edition / Connected Limited Device Configuration. Siehe [Sun03].
8”
16
2. Grundlagen und Stand der Technik
G = (V, E). Die Rolle einer Routingmetrik ist es, die Kanten des Graphen (E) zu gewichten. Im Allgemeinen handelt es sich um eine Funktion d : E → R+ . Existieren zwischen
zwei Knoten im Graph unterschiedliche Pfade (Bogenzüge), so wählt ein Routingprotokoll den Pfad mit dem minimalen Gewicht. Das Gewicht eines Pfades ergibt sich dabei
aus der Summe der Gewichte seiner Kanten. Es existieren unterschiedliche Metriken, die
sich darin unterscheiden, wie gut sie an die Bedürfnisse einer bestimmten Netzwerkinfrastruktur angepasst sind. Außerdem sind die Berechnungen zur Gewichtung einzelner
Kanten unterschiedlich aufwändig und erfordern jeweils anderes Wissen über den Zustand einzelner Verbindungen oder des gesamten Netzes. In den letzten Jahren wurden
unterschiedliche Routingmetriken entwickelt, die zunehmend besser an die spezifischen
Eigenschaften von drahtlosen Netzwerken angepasst sein sollen. Die Metriken wurden
mit dem Ziel entwickelt, vor allem den Durchsatz im Netzwerk zu erhöhen. Im folgenden
werden die Metriken Hop Count, ETX, ETT, WCETT und MIC überblicksartig vorgestellt. Die Entwickler der Metriken sind davon ausgegangen, dass die Funknetze statisch
sind, d.h. dass die teilnehmenden Knoten nicht mobil sind. Abschließend fasst Tabelle
2.4 die Eigenschaften der betrachteten Metriken vergleichend zusammen.
2.7.1. Hop Count
Eine weit verbreitete Metrik trägt die Bezeichnung Hop Count. Der Begriff bezieht sich
auf die Anzahl der Verbindungen, über die eine Nachricht übertragen werden muss, damit sie von einem Knoten zu einem anderen gelangt. Die Zahl ist äquivalent zur Anzahl
der Kanten, die ein Pfad zwischen zwei unterschiedlichen Knoten enthält. Es ergibt sich
dhopcount (e) = 1 mit e ∈ E. Die Metrik wird oft verwendet, weil bei ihrer Verwendung das
Netzwerk dazu tendiert, die Übertragungsverzögerung und die beanspruchte Bandbreite
zu minimieren [Tan03, S. 351]. OLSR (Optimized Link State Routing Protocol) ist ein
Routingprotokoll, welches die Hop-Count-Metrik verwendet [CJ03]. Auch RIPv1 (Routing Information Protocol), RIPv2 und RIPng verwenden Hop Count [MR07, S. 162].
2.7.2. ETX
Ein Nachteil der Hop-Count-Metrik ist, dass keinerlei Informationen über die Verbindungsqualität in die Gewichtung von Kanten eingehen. Dies ist insbesondere in Funknetzen eine Schwäche des Ansatzes. Während die kabelgebundene Übertragung z.B. im
Ethernet oder entlang von Lichtwellenleitern stabil ist, wird die Übertragung per Funk
von vielen Faktoren beeinträchtigt. Dazu gehören Interferenzen und Rauschen, die unter
anderem auftreten, wenn mehrere Technologien zeitgleich im selben Band funken wie z.B.
WLAN nach IEEE 802.11g und Bluetooth [Lüd07]. So kann es vorkommen, dass Daten
beim Empfänger nicht empfangen werden oder nicht dekodiert werden können. In solchen Fällen muss die Übertragung wiederholt werden. An dieser Stelle setzt die Expected
Transmission Count Metric (ETX) an [DABM05]. Für jede Verbindung zwischen zwei
Stationen wird ermittelt, wie oft ein Datenpaket voraussichtlich versendet werden muss,
17
2. Grundlagen und Stand der Technik
bis es erfolgreich empfangen werden kann. Dadurch berücksichtigt die Metrik Störungen
auf dem Übertragungskanal. Ein stark gestörter Kanal, der eine hohe Paketverlustrate
aufweist, wird schlechter bewertet als eine Verbindung, deren Verlustrate nahe 0 % liegt.
Konkret bedeutet dies [DABM05]:
ETX =
1
df · dr
(2.1)
Dabei ergeben sich df und dr aus der relativen Häufigkeit, dass ein versandtes Paket
beim Empfänger eintrifft (forward ) bzw. dass der Absender eine Bestätigung über den
Erhalt eines Pakets empfängt (reverse). Die konkreten Werte werden über regelmäßig
ausgesandte Testpakete gemessen. Die Summe der Kosten der einzelnen Verbindungen
entlang eines Pfades ergeben dessen Kosten.
In [DABM05] präsentieren die Entwickler des Verfahrens die Ergebnisse einer experimentellen Evaluation. ETX erzielt dabei einen höheren Durchsatz als die Hop-CountMetrik. Der Hauptgrund ist, dass ETX es ermöglicht, längere Pfade zu nutzen, die im
Gegenzug allerdings stabiler sind und damit einen höheren Durchsatz erreichen können.
Bei Hop Count werden Verbindungen mit einer hohen Reichweite bevorzugt, die aufgrund der hohen Entfernung jedoch häufiger höhere Verlustraten aufweisen als Verbindungen über kürzere Strecken [DABM05]. Der Einfluss dieses Effektes steigt, wenn man
berücksichtigt, dass drahtlose Netzwerke nach IEEE 802.11abg mit unterschiedlichen Datenraten arbeiten können, aber nur bei den geringsten Datenraten die höchsten Reichweiten erzielen [AHR06]. Ein Routingprotokoll, welches ETX nutzt, ist Link-Quality
Source Routing (LQSR) [DPZ04].
2.7.3. ETT
Die Metrik Expected Transmission Time (ETT) erweitert den Ansatz von ETX, indem es
neben der Verlustrate auch die Bandbreite von Verbindungen in die Bewertung einbezieht
[DPZ04]. Angenommen, es existieren zwischen den zwei Knoten A und D zwei Pfade
(siehe Abb. 2.3). Die Verbindungen entlang eines der Pfade funken mit je 54 MBit/s
Bruttodatenrate, der Pfad über den Knoten C nur mit 11 MBit/s. Die Verbindung über
Knoten C ist jedoch stabiler: Jede der beiden Kanten hat ein Gewicht von nur 1,1 (ETXMetrik), während die Verbindungen über Knoten B den Wert 1,2 haben, also geringfügig
unzuverlässiger sind. In einem solchen Fall würde ETX stets den Pfad über Knoten C
bevorzugen, auch wenn der Pfad über Knoten B einen höheren Durchsatz verspricht.
ETT bezieht die Bandbreite einer Verbindung ein, und das Gewicht einer Kante berechnet sich wie folgt:
S
ETT = ETX
(2.2)
B
S ist die Paketgröße, B repräsentiert die Bandbreite der Verbindung. Die Bandbreite
ist entweder konstant, d.h. fest eingestellt wie bei den Experimenten in [DABM05] oder
sie muss anderweitig ermittelt werden. Die Information über die aktuelle Bandbreite
18
2. Grundlagen und Stand der Technik
B
1,2
1,2
A
D
1,1
1,1
C
54 MBit/s
11 MBit/s
Abbildung 2.3.: Vier Verbindungen unterschiedlicher Datenrate werden mit ETX gewichtet (Kantenbeschriftung).
liegt zwar im Netzwerkadapter vor, über die Treiber der Hardware ist sie jedoch nicht
immer zugänglich. Draves et al. schlagen eine Methode vor um die Bandbreite zu messen [DPZ04]. Zwei Pakete, ein kleines und ein großes, werden unmittelbar nacheinander
versendet. Der Empfänger misst die Zeit zwischen dem Empfang des ersten und des zweiten Paketes und informiert den Sender, der aus mehreren dieser Messungen die Bandbreite der Verbindung berechnet. ETT wurde laut Campista et al. für OLSR und AODV-ST
(Ad hoc On-demand Distance Vector Spanning Tree) implementiert [CEM+ 08].
2.7.4. WCETT
Zwei weitere Effekte, die sog. Intra-Flow-Interferenz und die Inter-Flow-Interferenz, welche spezifisch für Funknetzwerke sind, werden von den bisher besprochenen Metriken
nur unzureichend oder gar nicht berücksichtigt [YWK05]. Beiden Effekten liegt die Eigenschaft zugrunde, dass ein Funkkanal ein geteiltes Medium ist. Zu jedem beliebigen
Zeitpunkt kann immer nur ein Sender aktiv sein und das Medium belegen. Die IntraFlow-Interferenz bezeichnet dabei die Störungen, die Stationen (Knoten) entlang eines
Pfades untereinander verursachen. Die Inter-Flow-Interferenz (Abb. 2.4) tritt zwischen
Stationen unterschiedlicher Pfade auf. Beide Effekte vermindern den erzielbaren Durchsatz.
Verfügen die Knoten über mehrere Funkadapter, die es ihnen ermöglichen auf unterschiedlichen Kanälen oder in unterschiedlichen Bändern zu funken, kann die negative
Wirkung beider Effekte verringert werden. Die Weighted Cumulative ETT (WCETT),
vorgeschlagen von Draves et al. [DPZ04], bewertet solche Routen besser, die Intra-FlowInterferenz durch die Nutzung unterschiedlicher Kanäle auf einzelnen Teilstrecken entlang eines Pfades vermeiden. Dies stellt einen Unterschied zu den bisher beschriebenen
Metriken dar: ETX bzw. ETT registrieren, wenn die Verlustrate durch eine der beiden
19
2. Grundlagen und Stand der Technik
B
A
D
C
F
E
G
Abbildung 2.4.: Inter-Flow-Interferenz: Laufen parallel Übertragungen zwischen A-C-D
und E-F-G, stören sich die Signale der Knoten C und F. Die Route AB-D wäre die bessere Wahl für den ersten Datenfluss. Grafik angelehnt
an [YWK05].
Interferenzen steigt. Sie bevorzugen jedoch keine Pfade, die eine erhöhte Verlustrate
durch geeignete Kanalwahl vermeiden.
Einzelne Kanten können nicht sinnvoll durch WCETT gewichtet werden. Es muss immer
der gesamte Pfad bewertet werden, wozu die folgende Formel dient [DPZ04]:
WCETT = (1 − β) ·
n
X
i=1
ETTi + β · max Xj
1≤j≤k
(2.3)
Die Variable i bezeichnet die Nummer der Kante eines gegebenen Pfades bestehend aus
n Kanten, auf dem k unterschiedliche Kanäle genutzt werden. Xj ist die Summe der
zu erwartenden Übertragungsdauer ETT entlang derjenigen Kanten, die auf Kanal j
funken. Der Faktor β gewichtet die beiden Summanden gegeneinander. Die WCETTMetrik wurde für das Protokoll MR-LQSR10 umgesetzt und Experimente mit Knoten,
die durchgängig über zwei Funkadapter (nach 802.11g und 802.11a) verfügten, ergaben eine Steigerung des durchschnittlichen Durchsatzes von über 80 % gegenüber ETX
und über 250 % gegenüber Hop Count [DPZ04]. Während der Messungen war immer
nur eine Übertragung aktiv. Inter-Flow-Interferenz konnte nicht auftreten. Die Metrik
berücksichtigt sie auch nicht.
2.7.5. MIC
Yang et al. stellen die Metric of Interference and Channel-switching (MIC) vor, die
die Kanalqualität, Bandbreite, Intra- und Inter-Flow-Interferenz von Verbindungen und
10
Multi-Radio Link-Quality Source Routing
20
2. Grundlagen und Stand der Technik
Netzen berücksichtigt [YWK05]. Für Pfade berechnet sie sich nach der Formel:
MIC(p) =
X
1
IRUl +
N · min (ETT)
link l∈p
X
CSCi
(2.4)
node i∈p
Die beiden Summanden berücksichtigen die unterschiedlichen Eigenschaften von Verbindungen in vermaschten Funknetzen. IRUl entspricht hierbei der zu erwartenden Übertragungsdauer entlang einer Verbindung l multipliziert mit der Zahl benachbarter Knoten,
die durch Übertragungen auf l beeinträchtigt werden. Die Summe aller dieser Werte
wird anschließend anhand der Gesamtzahl N der Knoten im Netz und der langsamsten
Einzelverbindung normalisiert. Das Verfahren konzentriert sich dabei ganz auf statische
Netze, denn die Mengen der sich jeweils störenden Stationen sollen
P zum Zeitpunkt der
Einrichtung des Netzes bestimmt werden11 . Der zweite Summand node i∈p CSCi quantifiziert die Intra-Flow-Interferenz entlang des Pfades p, wird jedoch in [JLZZ07] als
unzureichend kritisiert.
Symmetrie
Kapazität
Intra-Flow-I.
Inter-Flow-I.
Metrik
Hop Count
ETX
ETT
WCETT
MIC
Verlustrate
Die Autoren von MIC argumentieren, dass die Metrik anders als WCETT auch dann
nicht zu Routing-Schleifen führen kann, wenn auf Source Routing verzichtet wird. Sie
implementieren ein eigenes Routing-Protokoll (LIBRA) und präsentieren die Ergebnisse
von Simulationen wonach IRU / LIBRA leistungsfähiger sind als ETT / WCETT.
◦
X
X
X
X
◦
X
X
X
X
◦
◦
X
X
X
◦
◦
◦
X
X
◦
◦
◦
◦
X
Tabelle 2.4.: Vergleich der Verbindungs- und Pfadeigenschaften, die von den vorgestellten
Metriken berücksichtigt werden.
2.8. Netzwerktechnologien
In diesem Abschnitt werden die für diese Arbeit wichtigsten Aspekte ausgewählter Netzwerktechnologien vorgestellt. Auf weiterführende Literatur wird in den Unterabschnitten
verwiesen.
11
Since mesh networks are static, existing research results have shown that it is possible to measure
”
whether two nodes are in each other’s interference range at the time when the network is established.“
[YWK05, S. 6]
21
2. Grundlagen und Stand der Technik
2.8.1. IP
Das Internet Protocol (IP) ist ein sehr weit verbreitetes Protokoll zur Verbindung von
paketorientierten Netzwerken. Es lässt sich in Schicht 3 (Netzwerkschicht) des OSIReferenzmodells einordnen [Tan03, Kapitel 1.4]. Die für diese Arbeit relevantesten Punkte werden ausgewählt und kurz erläutert. Weitere Details können [Com00] entnommen
werden.
Das Internet Protocol verwendet Adressen, die einzelne Computer bzw. die einzelnen
Netzwerkverbindungen eines Computers (Host) identifizieren. Bei IP Version 4 (IPv4)
sind diese Adressen 32 Bit lang und werden entweder bitweise als Binärzahlen oder
byteweise in Gruppen von vier Dezimalzahlen notiert. Ein Beispiel ist 192.168.2.33.
Eine IP-Adresse ist unterteilt in einen Internetanteil, einen Teil, der das Netzwerk
bestimmt, und einen Hostanteil. Sogenannte Subnetze erlauben es Adressbereiche zu
unterteilen. Jedes Netzwerk erhält dazu eine Subnetzmaske. Sie hat mit 32 Bit dieselbe Länge wie IP-Adressen. Die gesetzten Bits einer Subnetzmaske bestimmen welche
Bits der IP-Adresse deren Netzwerkanteil ausmachen. Subnetzmasken werden wie IPAdressen notiert, z.B. 255.255.255.0. Zwei Computer im selben physischen Netzwerk,
die unterschiedliche IP-Adressen haben, können auf Ebene von IP direkt miteinander
kommunizieren, wenn der Netzwerkanteil ihrer Adressen identisch ist. Ein Beispiel verdeutlicht dies. Sei die Subnetzmaske aller drei Rechner A, B und C 255.255.255.224.
Ihre Adressen sind 192.168.5.20, 192.168.5.30 und 192.168.5.40. Wegen ihrer Adressen
und der gegebenen Netzmaske können die Rechner A und B direkt miteinander kommunizieren. Der Netzwerkanteil der Adresse von Rechner C unterscheidet sich von dem
der beiden anderen. Er kann ohne Router nicht mit den beiden anderen Rechnern kommunizieren. Adressen und Netzwerkmasken werden häufig gemeinsam dargestellt, z.B.
192.168.5.30/255.255.255.224 [FLYV93]. Eine verkürzende Darstellung (CIDR Notation) derselben Adresse ist 192.168.5.30/27, wobei die 27 ersten Bits der Adresse ihren
Netzwerkanteil ausmachen.
Neben der Adressierung einzelner Hosts erlaubt IP die Adressierung mehrerer Rechner
mit einer einzigen Adresse. Im weiteren Verlauf sind zwei Arten von Broadcasts relevant.
Gerichtete Broadcastadressen12 erlauben es, alle Rechner in einem bestimmten Netzwerk
anzusprechen. Diese Adressen sind ebenfalls aus Netzwerkanteil und Hostanteil aufgebaut. Alle Bits im Hostanteil der Broadcastadresse sind gesetzt z.B. 192.168.5.31/27.
Pakete an die spezielle Adresse 255.255.255.255/32 werden grundsätzlich nicht geroutet
und sprechen alle Computer im lokalen Netzwerk an. Die Adresse wird als eingeschränkte
Broadcastadresse13 bezeichnet. IP-Broadcastadressen werden soweit wie möglich auf die
Broadcastadressen der konkreten darunterliegenden Technologie (z.B. Ethernet) abgebildet.
12
directed broadcast address“ [Com00, S. 65 f.]
limited broadcast address“ [Com00, S. 66 f.]
”
13 ”
22
2. Grundlagen und Stand der Technik
2.8.2. UDP
Das User Datagram Protocol (UDP) ist ein auf IP basierendes Protokoll zur Übertragung von Nachrichten zwischen unterschiedlichen Prozessen (auf unterschiedlichen
Rechnern). Diese Nachrichten werden Datagramme genannt und haben eine definierte
Länge. UDP sichert die Datenübertragung nicht gegen Verlust ab. Die Integrität der
Nachrichten wird optional mit Prüfsummen sichergestellt. Datagramme lassen sich an die
IP-Adressen von einzelnen Computern senden und daneben auch an die oben genannten
Broadcastadressen. Weitere Informationen zu UDP können [Com00, Kapitel 12] und
besonders mit Blick auf Broadcasting auch [SFR04, Kapitel 20] entnommen werden.
2.8.3. Wireless LAN
Ein Wireless Local Area Network (WLAN) ist ein lokales Funknetz, das innerhalb eines Radius von einigen hundert Metern Geräte miteinander verbindet [Lüd07]. Besonders verbreitet sind WLANs, nach den Standards der Gruppe 802.11 des Konsortiums IEEE14 . Momentan zählen die Standards 802.11, 802.11b, 802.11g, 802.11a und
das kürzlich verabschiedete 802.11n zu den wichtigsten der Gruppe. Sie werden hier
verkürzend als 802.11abgn wiedergegeben. Die Standards spezifizieren die physischen und
logischen Parameter der Funkschnittstelle wie das Frequenzband, die Datenrate und das
Modulationsverfahren. Die Verfahren nach 802.11bg arbeiten im 2,4-GHz-ISM-Band15 .
Das Frequenzband darf lizenzfrei für zivile Anwendungen genutzt werden, wobei die maximale Sendeleistung begrenzt ist. In demselben Frequenzband arbeiten auch Bluetooth
und ZigBee [Lüd07]. WLAN nach 802.11bg, Bluetooth und ZigBee beeinträchtigen sich
wechselseitig. Mikrowellenherde strahlen im oberen Bereich des 2,4-GHz-Bandes Signale
ab und sind eine weitere Störquelle beim Betrieb von 802.11bg WLANs.
Das von WLANs genutzte Frequenzband wurde in unterschiedliche Kanäle unterteilt. Die
Wahl unterschiedlicher Kanäle ist ein Mittel um mehrere Funkzellen parallel und vonein”
ander unabhängig innerhalb eines Empfangsbereichs betreiben zu können, [...]“ [Rec06,
S. 102]. Nicht alle Kanäle sind überlappungsfrei. Bei Übertragungen auf zwei unterschiedlichen Kanälen kann es zu Interferenzen kommen. In der Praxis wurde beobachtet, dass
sich bei parallelem Betrieb sogar Geräte beeinträchtigen können, die in unterschiedlichen
Frequenzbändern (2,4 GHz und 5 GHz) arbeiten [DPZ04, S. 120].
WLANs nach 802.11 können in unterschiedlichen Betriebsmodi verwendet werden. Einer
davon ist der sogenannte Ad-Hoc-Modus, der andere der Infrastrukturmodus. Der AdHoc-Modus ist der simpelste Betriebsmodus. Die Funkzellen, die von den Geräten aufgespannt werden, werden IBSS (Independent Basic Service Set) genannt. Zwei oder mehr
Geräte mit Funkadapter können in einem Ad-Hoc-Netzwerk Daten austauschen, wenn
sich ihre IBSS gegenseitig räumlich überlappen und sie einen gemeinsamen Adressraum
14
15
Institute of Electrical and Electronics Engineers, http://www.ieee.org/
Industrial, Scientific, Medical
23
2. Grundlagen und Stand der Technik
haben. Die Adresse des gemeinsamen Netzwerks wird als SSID (Service Set Identifier)
bezeichnet. Es handelt sich dabei um eine kurze Zeichenkette.
In einem Infrastrukturnetzwerk existieren neben den Geräten, die das Netzwerk nutzen
möchten ein oder mehrere Access Points (APs). Sie stellen eine Verbindung zwischen
dem drahtlosen und einem drahtgebundenen Netzwerk wie z.B. Ethernet her. Um Daten
auszutauschen werden diese Daten grundsätzlich erst an einen AP gesendet, der die
Daten an den Empfänger oder, wenn dieser nicht erreichbar ist, an einen anderen AP
weiterleitet. Um an dem Infrastrukturnetzwerk teilzunehmen, muss sich ein Gerät mit
einem AP assoziieren und sich gegebenenfalls authentifizieren.
WLAN-Geräten stehen für die Datenübertragung unterschiedliche Datenraten zur Verfügung. Bei 802.11 sind dies 1 und 2 MBit/s, bei 802.11b zusätzlich 5,5 und 11 MBit/s und
bei 802.11g mehrere Stufen zwischen 6 und 54 MBit/s. Im normalen Betrieb wird stets die
höchstmögliche Rate verwendet. Lässt die Übertragungssituation das nicht zu, wird die
Rate automatisch gesenkt. Üblicherweise werden Broadcasts mit anderen Datenraten
versendet als Unicasts. Die genauen Verfahren zur Auswahl der Datenrate sind nicht
spezifiziert. Eine genauere Erklärung kann [Rec06, S. 242 f.] entnommen werden. Bei
einigen Systemen kann die Datenrate fest gewählt werden. Davon wird bei den später
beschriebenen Versuchen Gebrauch gemacht.
2.8.4. Bluetooth
Bluetooth wurde mit dem Ziel entwickelt, eine kostengünstige und energiesparende Technologie für die Verbindung von Computern, Computerperipherie und mobilen Geräten
über kurze Strecken zu schaffen [Mul01]. Die erste Spezifikation wurde von der Bluetooth
SIG16 1999 vorgelegt. 2009 wurden die Versionen 3.0 und 4.0 veröffentlicht [Blu09a,
Blu09b].
Bluetooth arbeitet wie WLAN (nach 802.11bg, siehe oben) im Frequenzbereich von
2,4 GHz. Je nach Version des Standards und dem genutzten Übertragungsmodus können
Netto-Datenraten zwischen 0,4 MBit/s und 2,2 MBit/s (Bluetooth 2.0 + EDR) erreicht
werden [Lüd07].
Möchten mehrere Bluetooth-Geräte Daten austauschen, bilden sie ein sogenanntes Piconetz, das bis zu 8 aktive Geräte umfassen kann. Eines der Geräte im Piconetz übernimmt
die Rolle des Masters, alle anderen sind Slaves. Der Verbindungsaufbau für die Teilnahme
am Piconetz läuft in mehreren Stufen ab [Lüd07, S. 242 ff.]. Einer davon ist der Inquiry
Scan. Bluetooth-Geräte müssen in einem speziellen, sichtbaren Modus sein, damit sie von
anderen Bluetooth-Geräten im Rahmen eines Inquiry Scans gefunden werden können. Inquiry Scans sind zeitaufwändig. Wird ein Inquiry Scan nicht vorzeitig abgebrochen, kann
ein einzelner Scan in einem fehlerfreien Umfeld 10,24 s dauern [Blu07, Abschnitt 8.4.2].
Der Bluetooth-Protokollstapel ist aus vier Schichten aufgebaut [Mul01]. Eines der Protokolle ist OBEX (Object Exchange Protocol). Es kann genutzt werden um beliebige
16
http://www.bluetooth.com/
24
2. Grundlagen und Stand der Technik
Objekte zwischen Geräten auszutauschen, wie zum Beispiel elektronische Visitenkarten
oder Klingeltöne. In seinem Funktionsumfang ähnelt es HTTP. Das GOEP (Generic Object Exchange Protocol) ist die Grundlage um OBEX über Bluetooth nutzen zu können.
Es spezifiziert die Anforderungen an die unteren Protokollschichten [Mul01].
GOEP / OBEX arbeitet nach dem Client-Server-Modell. Zwischen Client und Server
wird eine Sitzung eingerichtet. Anschließend kann der Client mittels der Operationen
Push oder Pull Objekte zum bzw. vom Server übertragen.
25
3. Konzept
3. Konzept
In diesem Kapitel werden zunächst einige motivierende Anwendungsszenarien für PPS
genannt. Sie veranschaulichen die breiten Einsatzmöglichkeiten des Konzepts. Aus einem speziellen Anwendungsbereich stammt das in Abschnitt 3.2 beschriebene Szenario.
Es bildet den Ausgangspunkt der weiteren Untersuchungen. Im weiteren Verlauf dieses Kapitels wird das Szenario auf das Konzept von ASP abgebildet. Dieser Schritt ist
erforderlich, um das Szenario auf Grundlage von ASP implementieren zu können.
Den Abschluss des Kapitels bildet die Diskussion der Metrik für ASP. Die in Abschnitt
2.7 vorgestellten Metriken werden auf ihre Eignung überprüft. Eine der Metriken wird
so ergänzt, dass sie in einer Implementierung von ASP zum Einsatz kommen kann.
3.1. Anwendungsszenarien für PPS
Die Möglichkeit der Kooperation der unterschiedlichsten Geräte einer intelligenten Umgebung eröffnet eine ganze Reihe neuer Anwendungsfälle. Vier Szenarien sollen zunächst
den Bedarf und die breiten Einsatzmöglichkeiten von PPS unterstreichen.
Bereits in [Ris08] wurde eine Anwendung für eine Büroumgebung vorgestellt. Eine Person hat auf ihrem tragbaren Gerät (z.B. ein Smartphone) Dokumente gespeichert, die
gedruckt werden sollen. An einen Desktop-PC im Büro ist ein Drucker angeschlossen.
Dieser PC kann das Format, in welchem die Dokumente auf dem tragbaren Gerät gespeichert sind, nicht interpretieren. Auf der anderen Seite kennt das Mobilgerät weder
den Drucker noch hat es einen passenden Treiber. Mit PPS können weitere Prozesse
oder Geräte aus der intelligenten Umgebung in den Kommunikationsvorgang integriert
werden, die die Daten konvertieren und auf diese Weise das Ausdrucken ermöglichen.
Ein ähnliches Szenario ist das eines Beamers, der Urlaubsbilder wiedergeben soll, die
auf einem Handy gespeichert sind. Auf Grundlage von PPS könnten die Bilder an das
Gerät, welches mit dem Beamer verbunden ist, übertragen werden und mit Musik aus
einer weiteren Quelle zu einer Diashow verbunden werden.
Weitere Einsatzgebiete gibt es an öffentlichen Orten. Auf einem Bahnhof oder Flughafen
ließen sich die Nachrichtenmeldungen, die prominent über große Monitore angezeigt werden, in Echtzeit übersetzen – entsprechende Übersetzungstechnologie vorausgesetzt. So
könnte ein Geschäftsreisender aus Japan, der kein Russisch spricht, auf dem Moskauer
Flughafen die Nachrichten verfolgen, die ihm von einem leistungsfähigen Rechner in der
26
3. Konzept
intelligenten Umgebung übersetzt werden und dann über das Headset seines Smartphones wiedergegeben werden.
Und auch in der Heimautomatisierung gibt es interessante Anwendungen. Kommunizieren sie per PPS, können der intelligente Stromzähler und schaltbare Steckdosen oder
netzwerkfähige weiße Ware wie Waschmaschine oder Geschirrspüler zusammenarbeiten,
um den idealen Zeitpunkt für die Inbetriebnahme zu finden. Bei einem viertelstündlich
neu festgesetzten Strompreis werden die Geräte dann aktiv, wenn der Strompreis mehrmals in Folge gesunken ist.
Szenario
1
Gerät / Inhalt
Handheld
Desktop-PC mit Drucker
weitere Geräte
Handy
PC mit Beamer
Musikquelle
weitere Geräte
Nachrichtensendung
leistungsfähige Rechner
Smartphone
intelligenter Stromzähler
Steuerrechner
schaltbare Steckdosen
2
3
4
Quelle
•
Rolle
Prozessor
Senke
•
•
•
•
•
•
•
•
•
•
•
•
Tabelle 3.1.: Übersicht der Beispielszenarien mit Rollenverteilung.
3.2. Szenario
Die Ziele und Anforderungen, denen ASP gerecht werden möchte, werden im folgenden
Abschnitt zunächst zusammengefasst. Anschließend wird das Szenario, welches den Hintergrund für die weiteren Untersuchungen und die durchgeführten Experimente bildet,
genau erläutert. Die Hypothesen (siehe Abschnitt 1.2 und 6 und folgende) dienen bei
der Konzeption der Experimente als Richtschnur.
3.2.1. Ziele von ASP
PPS und damit ASP möchte die von Publish-Subscribe-Systemen bekannten Vorteile der
räumlichen und zeitlichen Entkopplung mit denen einer semantischen Entkopplung durch Prozessoren kombinieren. Die Systemarchitektur von ASP und dessen Routingalgorithmus bildet die Grundlage einer flexiblen Kommunikationsinfrastruktur. Sie
27
3. Konzept
basiert ausschließlich auf Kenntnis der Nachbarschaftsbeziehungen einzelner Knoten
in dynamischen, heterogenen Netzwerken.
3.2.2. Überblick
Ein Konferenzraum, Hörsaal oder Büro bilden den Ausgangspunkt des untersuchten
Szenarios. Es finden dort regelmäßig Besprechungen oder Vorlesungen statt. Die Teilnehmer dieser Veranstaltungen sind häufig noch lange über die Dauer der Veranstaltung
hinaus an dem Gesagten interessiert. Dies trifft insbesondere für Interessenten zu, die
an der Veranstaltung nicht persönlich teilnehmen konnten. Aus diesen Gründen ist es
wünschenswert, dass die Veranstaltung aufgezeichnet wird. Es Bedarf dazu einer Infrastruktur, die den spontanen Mitschnitt einer Veranstaltung ermöglicht. Nach dem Ende
der Veranstaltung müssen die Teilnehmer und weitere Interessenten einen möglichst
komfortablen Zugriff auf die Aufzeichnung haben.
Konkret könnte es den folgenden Ablauf geben. Ein Dozent und zwei Dutzend Studenten oder Gäste nehmen an einem Seminar teil. Zu Beginn der Veranstaltung startet der
Dozent auf seinem Smartphone oder einem Netbook mit Mikrofon die Aufnahme. Zwei
Studenten halten nun ihre Vorträge mit anschließender Diskussion. Ein an das Netzwerk
des Hörsaals angeschlossener Computer empfängt und archiviert die Aufzeichnung automatisch in bester Qualität. Kurz vor Ende der Veranstaltung beendet der Dozent die
Aufzeichnung. Einige der Studenten benutzen ihre Handys um auf die einzelnen Vorträge
zuzugreifen. Für den zügigen Download wählen sie die in einem komprimierten Format
angebotenen Mitschnitte. Eine Woche später sind andere Studenten in dem Hörsaal. Aus
Interesse greifen jedoch auch einige von ihnen auf die Aufzeichnung der Vorwoche zu und
laden sie auf ihr Mobilgerät herunter.
ASP bietet sich als Technologie an, um ein Szenario wie das genannte zu realisieren. Mit
einem heterogenen Umfeld, großem zeitlichen Versatz und transparenter Datenverarbeitung finden sich im Szenario einige der Kernpunkte von PPS / ASP. Das Szenario wird
im Folgenden abstrahiert und genauer beschrieben. Abbildung 3.1 stellt es bereits dar.
Im Szenario findet sich ein Netzwerk aus Rechnern, die vier unterschiedliche Rollen
annehmen. Die erste Rolle nimmt das für die Aufzeichnung gewählte Gerät ein. Es digitalisiert Sprache und gibt das Ergebnis weiter (recorder, Kürzel R in Abb. 3.1). Es handelt sich dabei um einen Rechner, der inklusive Mikrofon fester Bestandteil des Raumes
ist oder um ein Mobilgerät, welches nicht ständig vor Ort ist. Ein weiterer Computer
übernimmt die Speicherung und Archivierung der Aufnahme (storage, S). Es wird im
folgenden davon ausgegangen, dass der Rechner über einen ausreichend großen nichtflüchtigen Speicher verfügt und über große Zeiträume verfügbar ist. Die Skizze nennt
ein NAS-System (Network Attached Storage) als Beispiel. Da solche und vergleichbare Geräte nicht in jedem Fall über sehr große Rechenkapazitäten verfügen, wird die
Umwandlung in ein komprimiertes Format (converter, C) auf einem dritten Rechner
vorgenommen. Es kann sich dabei grundsätzlich um einen beliebigen, ausreichend leistungsfähigen Rechner handeln. Dort, wo gerade Kapazitäten frei sind, wird die Aufgabe
28
3. Konzept
WLAN-Router oder -AP mit USB
oder NAS-System
S
C
Ethernet oder WLAN
Bluetooth oder WLAN
PC oder Server
WLAN oder Bluetooth
Smartphone,
PDA, portabler
Medienspieler
D
R
Notebooks, Smartphones,
portable Medienspieler
WLAN Bluetooth
Abbildung 3.1.: Skizze des Szenarios mit den Rollen Aufzeichnung (R), Speicherung und
Weitergabe (S), Umwandlung (C) und Download (D).
ausgeführt. Die vierte Rolle, den Download eines Mitschnitts (download, D), übernehmen
ein oder mehrere Geräte. Sie sind wie ihre Benutzer nur gelegentlich vor Ort. Darüber
hinaus wird davon ausgegangen, dass sie keine ständige Verbindung zum Netzwerk des
Veranstaltungsraumes haben, die möglicherweise langsam ist. Handelt es sich um mehrere Geräte, können diese untereinander vernetzt sein.
Das gegebene Szenario ist beispielhaft für eine Anwendung in einer heterogenen, dynamischen Umgebung. Es eignet sich für die Untersuchung und die Bewertung eines Ansatzes
wie ASP. Um dies zu belegen, wird auf die in Abschnitt 3.2.1 zusammengefassten Ziele verwiesen. Da die Rollen Aufzeichnung und Download (R und D) von wechselnden
Geräten wahrgenommen werden, ist das Szenario geeignet, die räumliche und zeitliche
Entkopplung zu testen. Die transparente Umwandlung der Aufzeichnungen und die Aufbereitung für den Download erfordert eine semantische Entkopplung, wie sie in PPS /
29
3. Konzept
ASP vorgesehen ist. Neben einer Umwandlung sind weitere Anwendungen wie eine automatische Transkription oder das automatische Schneiden der Aufzeichnung denkbar. Ein
weiterer Aspekt, der das Szenario auszeichnet, die Grenzen und Möglichkeiten von ASP
zu evaluieren, ist die Heterogenität des Umfelds. Es kommen Geräte unterschiedlicher
Leistungsklassen zum Einsatz. Diese sind über unterschiedliche Techniken miteinander
vernetzt. Die Skizze nennt Bluetooth, WLAN und Ethernet.
3.2.3. Variationsmöglichkeiten
Die grundsätzliche Eignung des Szenarios zur Evaluierung von ASP wurde bereits gezeigt. Bei genauer Betrachtung ergeben sich Möglichkeiten das Szenario in einigen Aspekten zu variieren. Dazu zählen insbesondere:
• die Art der Netzwerkverbindung
• die Hardwareplattform
• die Art des Netzwerkverkehrs
Unterschiedliche Varianten eignen sich um gewisse Eigenschaften von ASP gezielt zu untersuchen. Damit bilden sie die Ausgangspunkte der Experimente, mit denen im weiteren
Verlauf gearbeitet wird. Die Grafik 3.2 und die folgenden Tabellen fassen die Vielfalt des
Szenarios zusammen.
S
2
C
3
1
D
4
R
D
4
D
Abbildung 3.2.: Vereinfachte Skizze des Szenarios mit Aufzeichnung (R), Speicherung und
Weitergabe (S), Umwandlung (C) und Download (D). Die Ziffern bezeichnen die Verbindungen. Siehe Tabelle 3.2 und 3.3.
Tabelle 3.2 zeigt exemplarisch, welche Techniken sich für den Einsatz auf unterschiedlichen Verbindungen eignen. Die Nummern beziehen sich auf die Abbildung 3.2. Die
Übersicht erhebt keinen Anspruch auf Vollständigkeit.
Unterschiedliche Geräte können die vorgestellten Rollen übernehmen. Neben PCs (einschließlich Notebooks und Netbooks), kommen im Szenario Smartphones und eingebettete Systeme wie NAS-Systeme vor. Tabelle 3.3 führt einige Konstellationen auf.
30
1
2
3
1
3
4
Bluetooth
802.11abgn (Ad-Hoc)
2
802.11abgn (Infrastr.)
Verbindungstechnik
Verbindung
Ethernet
3. Konzept
3
4
Tabelle 3.2.: Unterschiedliche Varianten der Vernetzung. Siehe Abb. 3.2.
Plattform
Rolle
Embedded
Smartphone
R
S
D
PC
R
S
C
D
Tabelle 3.3.: Unterschiedliche Rollen können auf unterschiedlichen Plattformen ausgeführt
werden. Siehe Abb. 3.2.
Bei der Aufzeichnung und dem anschließenden Download von Tonmitschnitten gibt es
zwei charakteristische Arten von Datenverkehr. Während der Aufzeichnung fallen in
regelmäßigen, kurzen Intervallen relativ kleine Datenmengen an. Bei einer unkomprimierten Aufzeichnung in Telefonqualität wären dies z.B. 8 Bit/s · 8000 = 64 kBit/s. Auf
der anderen Seite ergibt sich für einen Download eines einstündigen Vortrages in derselben Qualität in einem komprimierten Format mit einer angenommenen Kompressionsrate von 1:10 ein Datenvolumen von rund 22 MByte. Diese Datenmenge muss möglichst
zügig auf einmal übertragen werden.
Zusammenfassend wird festgehalten, dass je nach Hard- und Softwareplattform, Kommunikationstechnik und Art der Datenübertragung gänzlich unterschiedliche Bedingungen
vorliegen. Damit stellt das Szenario eine realistische und vielseitige Ausgangsbasis für
die Untersuchung von ASP dar.
3.3. Abbildung auf ASP
Für die Untersuchung von ASP wird das Szenario auf dessen Konzepte abgebildet. Im
folgenden werden die von ASP genutzten Anwendungstypen und Übertragungskategorien
31
3. Konzept
zugeordnet. Die Umsetzung auf unterschiedliche Plattformen und Netzwerktechnologien
ist ein weiterer entscheidender Punkt.
Andere, spezifischere Parameter von ASP wie z.B. die Gültigkeitsdauer von Ankündigungen haben Einfluss auf die Leistungsfähigkeit und Zuverlässigkeit der auf ASP aufbauenden Anwendungen. Da sie jedoch einen starken Bezug zum konkreten Einsatzumfeld
bis hin zur Implementierung haben, werden sie an geeigneter Stelle wieder aufgegriffen.
3.3.1. Anwendungstypen und Übertragungskategorien
Den in Abschnitt 3.2.2 eingeführten Rollen werden zunächst die in Abschnitt 2.4 besprochenen Anwendungsklassen Quelle, Prozessor oder Senke zugeordnet.
Die erste Rolle, die Digitalisierung von Sprache, ist eine typische Eingabeoperation und
damit charakteristisch für eine Informationsquelle. Die Rolle der Aufzeichnung nimmt
also eine Anwendung vom Typ Quelle wahr. Umgekehrt ist der Download eines Audiomitschnitts mit der späteren Wiedergabe charakteristisch für eine Datensenke.
Die Umwandlung vorhandener Aufzeichnungen in ein geeignetes, komprimiertes Format
ist der Fall einer Anwendung vom Typ Prozessor, denn ein Prozessor verarbeitet die Daten und nimmt eine definierte Konvertierung vor. Dabei stammen die Eingabedaten von
einer Quelle (oder einem weiteren Prozessor) und die Ausgabe erreicht dann (eventuell
über weitere Prozessoren) eine Senke.
Die Rolle, die bislang als Speicherung oder Archivierung (Kürzel S) bezeichnet wurde,
lässt sich nicht unmittelbar auf einen der Typen Quelle, Prozessor oder Senke abbilden.
Um eine einzige Quelle oder Senke kann es sich nicht handeln, denn es werden Daten
sowohl empfangen als auch versendet. Dieses Verhalten trifft jedoch auf Prozessoren zu.
Allerdings kann es sich bei der Rolle S nicht um einen Prozessor handeln. Ein Prozessor
im Sinne von PPS ist insofern zustandslos als dass er (gegenwärtig) verfügbare Daten
soweit möglich in andere Daten verarbeitet. Die Rolle eines Archivs ist es jedoch Daten
über lange Zeiträume verfügbar zu halten. Die Aufgaben der Speicherung und Weitergabe der Audiodaten werden daher jeweils auf eine Senke und eine Quelle abgebildet.
Rolle S wird von zwei Anwendungen auf einem Knoten gemeinsam übernommen.
Die Datenübertragungen lassen sich in die in Abschnitt 2.5.5 genannten Kategorien
einordnen. Dabei müssen drei Übertragungen getrennt betrachtet werden.
1. Von der Aufzeichnung (R) zur Senke des speichernden Knoten (S).
2. Von der Quelle des Speichers (S) zum Konverter (C).
3. Vom Konverter (C) zu den Geräten, auf denen der Download (D) stattfindet.
Bei der Übertragung der Mitschnitte zum Knoten, auf dem sie abgespeichert werden,
handelt es sich um einen Strom kleiner Nachrichten1 (Kategorie 2). Berücksichtigt man,
1
Bei ASP heißen die Nachrichten für den Datentransport Veröffentlichungen (siehe S. 14).
32
3. Konzept
dass der verfügbare Speicher und die Stromversorgung des Geräts, welches die Sprache
unmittelbar aufzeichnet und digitalisiert, stark begrenzt sein können, so ist dieser Modus
der effektivste.
Die Übertragung der Aufzeichnung zum Prozessor und der Download von dort, können
als einzelne große Veröffentlichungen übertragen werden (Kategorie 3). Anzumerken ist,
dass in [Ris09a] der Fokus auf kleinen Einzelübertragungen lag (Kategorie 1).
Analog zu den drei unterschiedlichen Datenübertragungen, müssen mindestens drei unterschiedliche ASP IDs (siehe Abschnitt 2.5.1) pro durchgeführtem Mitschnitt zum Einsatz kommen. Andernfalls können die beteiligten Anwendungen nicht zweifelsfrei zwischen den Veröffentlichungen unterscheiden. Die Wahl der konkreten IDs und des Inhalts
von Ankündigungen ist dabei anwendungsabhängig und für ASP transparent.
3.3.2. Plattformen und Netzwerktechnologien
Das vorliegende Szenario umfasst eine Reihe unterschiedlicher Hard- und Softwareplattformen. Weiterhin kommen mit Ethernet, WLAN und Bluetooth drei sehr unterschiedliche Netzwerkverbindungstechnologien zum Einsatz. Diese beiden Aspekte müssen für die
experimentelle Evaluierung von ASP angemessen berücksichtigt und umgesetzt werden.
Die im Szenario vorkommenden Hardwareplattformen unterscheiden sich vor allem
in der verfügbaren Rechen- und Speicherkapazität. Die vorhandene Hardware muss ausreichend Ressourcen bereitstellen, damit die darauf laufende Anwendung ihre Aufgabe
erfüllen kann. Für die Sprachaufzeichnung ist ein Mikrofon erforderlich und die Netzwerkverbindung des Aufzeichnungsgerätes sollte ausreichend sein, um die unkomprimierten
Daten in Echtzeit übertragen zu können.
Für die Speicherung und Archivierung der Aufnahmen wird genügend Speicherplatz auf
einem nicht-flüchtigen Speichermedium benötigt. Wie bereits erwähnt wurde, ist für die
Rolle der Speicherung eine hohe Verfügbarkeit wünschenswert, damit Nutzer jederzeit
auf vergangene Aufzeichnungen zugreifen können. Ein batteriebetriebenes Mobilgerät
kommt somit nicht in Frage.
Die Konvertierung der Aufzeichnungen in ein komprimiertes Format sollte möglichst
schnell ablaufen. Das erfordert eine leistungsfähige Verbindung zwischen dem Aufzeichnungsarchiv und dem Konverter und eine möglichst große Rechenleistung beim Konverter, damit dieser die Aufgabe schnell abschließen kann.
Wie die Hardware muss auch die Softwareumgebung gewisse Anforderungen erfüllen,
damit ASP und die Anwendungen des Szenarios umgesetzt werden können. Die Sprachaufzeichnung erfordert Schnittstellen und Softwarekomponenten um auf den Strom der
Audiodaten zugreifen und ihn verarbeiten zu können. Die Daten müssen zudem in einem Format vorliegen, welches die weiteren Stationen – Speicherung und Konvertierung
– verarbeiten können. Der Konverter benötigt Software, die es ermöglicht, die Audiodaten zu komprimieren. Sie muss auf allen Plattformen verfügbar sein, die für die Rolle
der Audiokonvertierung in Betracht kommen.
33
3. Konzept
Im Bereich der Netzwerkverbindungen, die als NAL (siehe Abschnitt 2.5.4) gekapselt
und dem Broker bereitgestellt werden, gibt es weitere Anforderungen. Der Broker kommuniziert über eine einheitliche Schnittstelle mit dem NAL. Um welche darunterliegende
Technologie es sich im einzelnen handelt, ist dabei aus Sicht des Brokers unerheblich.
Es ist erforderlich, dass die Soft- und Hardwareplattform für die Kommunikation des
Brokers mit benachbarten Brokern transparent ist. Nachrichten sollen ungeachtet der
Plattform des Nachbarn weiterverarbeitet werden können.
Im Szenario ist beschrieben, dass einige Knoten Nachrichten über Technologie A empfangen und mit Technologie B an den Nachbarn weitergeben. Nur so kann die Heterogenität
der Netzwerkverbindungen überbrückt werden. Der Broker muss grundsätzlich in der
Lage sein, bei Bedarf und Verfügbarkeit mehrere unterschiedliche Netzwerktechnologien
parallel nutzen zu können. Es ist Aufgabe der Netzwerkabstraktionsschicht, dem Broker
dies zu ermöglichen.
Zuletzt ist der NAL dafür zuständig, gewisse Dienstmerkmale bereitzustellen. Die kleinste Kommunikationseinheit, die ASP einsetzt, ist die Nachricht. Eine Nachricht hat einen
definierten Typ und eine definierte Länge, die variabel sein kann. Einzelne Nachrichten müssen dem Broker komplett zugestellt werden. Die Fragmentierung auf Ebene von
ASP bleibt davon unberührt. Wird eine Veröffentlichung von einem Broker in mehrere
Nachrichten aufgeteilt, stellt der NAL die einzelnen Nachrichten dem Broker komplett
zu. Dieser fügt sie zu einer Veröffentlichung zusammen. Weiter schützt die Netzwerkabstraktionsschicht die Übertragung zwischen zwei benachbarten Brokern vor Verlust.
Die Reihenfolge von Nachrichten stellt der NAL nicht sicher und die Schicht vermeidet Verdopplung nicht. Dies sind Aufgaben, die bei Bedarf vom Broker oder sogar der
Anwendung übernommen werden können.
3.3.3. Anwendungsschnittstelle
PPS (ASP) ist ein Publish-Subscribe-System. Die zentralen Interaktionsprimitive aus
Anwendungssicht sind also Publish, Subscribe und der Nachrichtenempfang. Um diese
Semantik zu erhalten und nicht zu verfälschen, bildet eine geeignete ASP-Anwendungsschnittstelle zwischen Anwendungen und dem lokalen Broker diese Operationen ab. Daneben sollten nur unbedingt nötige Schnittstellen existieren. Diese Schnittstellen sind
für eine Umsetzung von ASP unerlässlich. Dazu gehört der Umgang mit Ankündigungen, also das Erzeugen und Empfangen. Die Beschränkung auf das Nötigste minimiert
den Aufwand, bestehende Publish-Subscribe-Anwendungen auf ASP zu portieren. In
Abschnitt 2.5.3 wurde die bislang vorgeschlagene Schnittstelle kurz umrissen. Sie wird
für die weiteren Untersuchungen nicht unverändert übernommen. Die folgenden Absätze
beschreiben die verwendete Schnittstelle. Grafik 3.3 fasst das Ergebnis zusammen.
Die Schnittstelle für den Datenaustausch zwischen einer Anwendung und dem Broker
ist abhängig vom Typ der Anwendung. Lediglich die Verwaltung der Anwendungen,
d.h. ihre An- und Abmeldung am Broker, ist bei allen Anwendungstypen gleich. Dabei
teilt die Anwendung dem Broker ihren Typ mit. Anhand des Typs entscheidet dieser,
34
3. Konzept
welche Nachrichten an die Anwendung zugestellt werden. So braucht eine Quelle weder
Ankündigungen, noch Veröffentlichungen empfangen.
Zum Empfang von Ankündigungen und Veröffentlichungen halten Senken und Prozessoren Schnittstellen bereit. Eine weitere Schnittstelle erlaubt es dem Broker die Anwendungen zu informieren, wenn Veröffentlichungen einer bestimmten ASP ID nicht länger
zugestellt werden können, etwa weil sie nicht weiter angekündigt werden. Die ASP ID
wird in Abschnitt 2.5.1 beschrieben.
Eine Quelle kann Veröffentlichungen erzeugen und versenden (Publish) und benötigt
dafür eine Schnittstelle. Für ASP ist es zusätzlich erforderlich, dass die Quelle den Inhalt von Ankündigungen setzen und die weitere Ankündigung von Veröffentlichungen
beenden kann.
Wichtigste Aufgabe einer Senke ist der Empfang von Veröffentlichungen. Damit dies geschehen kann, erhält die Anwendung Ankündigungen. In diesem Zusammenhang wird das
Konzept der Filter, wie es in Abschnitt 2.5.3 beschrieben wird, unverändert übernommen.
Der Broker erhält daher eine Schnittstelle über die die Senke den Filter festlegen kann.
Weiter sind Schnittstellen vorgesehen, um Veröffentlichungen zu abonnieren und Abonnements wieder zu kündigen. Die für das Abonnement nötigen Informationen erhält die
Senke als Teil der Ankündigungen.
Prozessoren empfangen und versenden Veröffentlichungen. Prozessoren legen über eine
separate Schnittstelle, die sich von der von Quellen genutzten Schnittstelle unterscheidet,
den Inhalt von Ankündigungen fest. Auf die gleiche Weise teilen sie dem Broker mit,
welche Veröffentlichungen sie benötigen, um aus ihnen eine neue Veröffentlichung erzeugen zu können. Für die korrekte Berechnung der Metrik ist es nötig, dass Prozessoren
die Dauer der Operation abschätzen und das Ergebnis dem Broker ebenfalls mitteilen.
Die Metrik wird in Abschnitt 3.4 ausführlich diskutiert.
Abbildung 3.3.: Die Schnittstellen zwischen Anwendungen und Broker.
3.3.4. Interaktion
Der vorherige Abschnitt untersucht vor allem die Daten, die zwischen Anwendungen und
Broker ausgetauscht werden, und die Schnittstellen, über die dieser Austausch abgewi-
35
3. Konzept
ckelt wird. Ebenso entscheidend sind die Interaktionen, die zwischen Anwendungen und
Broker und zwischen unterschiedlichen Brokern stattfinden. Wie die Kommunikation von
Brokern untereinander abläuft, wird in den Abschnitten 2.5.1 und 2.5.2 beschrieben. Es
bleiben jedoch weitere Punkte offen. Erst wenn sie geklärt sind, kann ASP erfolgreich
implementiert werden.
Einer dieser Punkte betrifft Prozessoren. Ein Prozessor verarbeitet Veröffentlichungen
(P1 , P2 usw.) anderer Prozessoren oder Quellen in neue Veröffentlichungen wie zum
Beispiel P 0 . Damit die Veröffentlichungen Pi (i ≥ 1) zum Prozessor gelangen, müssen
sie abonniert werden. Bislang wurde keine Festlegung getroffen, wann und auf welche
Weise dies geschehen soll. Es gibt zwei Möglichkeiten. Bei der ersten abonniert die Prozessoranwendung selbstständig jede der benötigten Veröffentlichungen. Dieser Ansatz
widerspricht jedoch dem Kerngedanken von ASP. Abonnieren Prozessoren eigenmächtig
Veröffentlichungen, so stammen diese möglicherweise von weiteren Prozessoren. Diese
anderen Prozessoren abonnieren wiederum Veröffentlichungen usw. Im Ergebnis werden
alle Quellen, deren Veröffentlichungen direkt oder indirekt von einem Prozessor verarbeitet werden, aufgefordert ihre Veröffentlichungen zu übertragen. Das Netzwerk wird
belastet und die Entscheidung der Middleware, welcher der günstigste Pfad ist, ist praktisch irrelevant. Die Alternative zu diesem Verhalten ist, dass der Broker stellvertretend
für eine Prozessoranwendung die Veröffentlichungen abonniert. Dies hat den Vorteil, dass
der Broker jederzeit weiß, ob Abonnements für die Veröffentlichungen P 0 vorliegen. Liegen keine Abonnements vor, müssen auch P1 , P2 usw. nicht abonniert werden. Dies hat
zur Folge, dass das Netzwerk und der Prozessor nicht unnötig belastet werden. Dies gilt
umgekehrt auch, wenn das Interesse an den Veröffentlichungen P 0 versiegt. Dann kündigt
der Broker die Abonnements von P1 usw. Der Prozessor wird nicht länger belastet.
Ein weiterer Komplex betrifft die Erkennung und Reparatur von Pfaden. Sie werden
mit Ankündigungen und Abonnements aufgebaut. Bricht eine der Verbindungen entlang eines Pfades ab, wird eine Störungsmeldung erzeugt. Abschnitt 2.5.2 schildert die
Abläufe genauer. Unklar ist, wie ein Broker angemessen auf eine verlängerte Ankündigung reagieren soll. Da Störungsmeldungen gezielt an den Prozessor oder die Quelle, die
die Ankündigungen erzeugt, weitergeleitet werden, wissen nicht alle Broker entlang des
Pfades, dass er repariert werden muss. Insbesondere dürfen sie sich nicht darauf verlassen, dass die folgende Ankündigung vom selben Nachbarn stammen wird, von dem die
letzte Ankündigung empfangen und mit einem Abonnement quittiert wurde. Damit Pfade repariert werden können, müssen Broker zunächst jede Ankündigung übernehmen,
die aktueller als die vorangegangene ist, ungeachtet der Kosten, die die Metrik liefert.
Dies kann zur unnötigen Änderung von Routen (Pfaden) führen. Insbesondere könnte es
bedeuten, dass eine schlechter Pfad gegenüber einem besseren bevorzugt wird, weil die
Ankündigungen auf dem schlechten Pfad (kurzfristig) schneller zugestellt wurden als auf
dem besseren Pfad. Es gibt unterschiedliche Strategien, um die Stabilität von Pfaden
(im Sinne der Anzahl und Reihenfolge der Zwischenstationen) zu erhöhen. Grundlage
der Ansätze ist die verzögerte Aktivierung von Pfaden. Trifft eine Ankündigung Ax mit
den Kosten c beim Broker b ein, beginnt ein kurzes Zeitintervall. Trifft Ax0 mit derselben Sequenznummer wie Ax aber niedrigeren Kosten c0 < c innerhalb des Intervalls ein,
36
3. Konzept
gilt Ax0 als beste Ankündigung. Erst bei Ablauf des Intervalls wird das Abonnement,
welches nötig ist, um den Pfad zu aktivieren, an den Absender der besten Ankündigung
versendet. Soll der Pfad besonders stabil sein, genügt es, nicht die vermeintlich beste
Ankündigung zu übernehmen, sondern während des gesamten Intervalls auf die Ankunft
derjenigen Ankündigung zu warten, die vom selben Nachbarn stammt wie die vorherige.
Sie ist dann ausschlaggebend für den Versand des Abonnements. Dieses Verfahren wird
im weiteren Verlauf eingesetzt. Eine weitere Maßnahme ist, bessere Ankündigungen nur
dann zu übernehmen, wenn sie signifikant – das heißt z.B. mindestens 10 % – besser sind
als die vorherige. Weitere Ansätze werden hier nicht verfolgt. Für die experimentelle Evaluation ist es vorteilhaft, wenn ASP nicht in besonderem Maße über den bereits in der
Literatur beschriebenen Umfang hinaus weiterentwickelt wird. Jede Optimierung oder
Erweiterung könnte bislang unbekannte Folgen haben. Das würde die Übertragbarkeit
der Erkenntnisse auf das existierende ASP-Konzept einschränken. Komplexe Erweiterungen sollten zunächst in separaten Untersuchungen oder Simulationen betrachtet werden.
Verbunden mit der Stabilisierung von Pfaden ist ein weiterer Effekt. Angenommen, der
Verlauf eines aktiven Pfades ändert sich. Werden zeitgleich Veröffentlichungen entlang
des alten Pfades übertragen, kann dies dazu führen, dass einzelne Veröffentlichungen
verloren gehen. Die Grafik 3.4 illustriert das Phänomen an einem Beispiel. Als Schutz
gegen diese Art von Datenverlust, wird ein Verfahren eingeführt, das hier als Fading
bezeichnet wird. Ändert ein Broker den Verlauf eines aktiven Pfades, indem er ein Folgeabonnement nicht wie bisher an den Nachbarn Na , sondern Nn schickt, so schickt er
ein zusätzliches Abonnement an Na . Auf diese Weise bleibt der alte Pfad länger aktiv.
Veröffentlichungen, die noch auf dem alten Pfad unterwegs sind, können ihr Ziel erreichen. Der alte Pfad wird nicht beliebig lange erhalten. Nach einer festen Wartezeit oder
einer maximalen Anzahl von Folgeabonnements, wird er nicht länger aktiviert.
3.3.5. Caching
Eine wichtige Eigenschaft von Publish-Subscribe-Systemen wie ASP ist die zeitliche Entkopplung. Es sind Maßnahmen nötig, um diese Eigenschaft sicherzustellen. Von großer
Bedeutung ist dabei das Caching. Im Falle von ASP ist vor allem das Caching von Veröffentlichungen wichtig, doch auch das Caching von Ankündigungen bietet Vorteile. Ohne
jede Zwischenspeicherung von Veröffentlichungen, käme in vielen Situationen keine zeitliche Entkopplung von Publisher und Subscriber zustande. Angenommen, ein Publisher
veröffentlicht Daten. Die Subscriber, die ihr Interesse geäußert haben, erhalten die Veröffentlichung. Bei ASP sind das jene Prozessoren oder Senken, die über ihre Broker Pfade für diese Veröffentlichung aktiviert haben. Alle anderen potenziellen Subscriber, die
(vorübergehend) ihr Interesse an der Veröffentlichung nicht mitteilen konnten, erhalten
sie nicht. In einem Umfeld wie dem Szenario aus Abschnitt 3.2 sind Verbindungsabbrüche nicht ausgeschlossen. Sie verhindern unter Umständen, dass Subscriber Pfade
aktivieren, wenn Abonnements verloren gehen oder wegen Sendewiederholungen zu spät
beim Publisher eintreffen.
37
3. Konzept
C
A
E
B
O
D
F
Veröffentlichung
C
A
E
B
O
D
F
Verlust der
Veröffentlichung
Abbildung 3.4.: Durch Routenänderungen kann es zum Verlust von Veröffentlichungen
kommen. Wird ein aktiver Pfad (durchgezogene Linie; von A nach O)
durch einen anderen ersetzt, können Nachrichten, die noch auf dem alten
Pfad unterwegs sind, verloren gehen (unten).
38
3. Konzept
Außerdem kann es vorkommen, dass einzelne Anwendungen oder Geräte erst nach einer
Veröffentlichung aktiviert werden. Im Szenario wäre dies zum Beispiel dann der Fall,
wenn zunächst ein Benutzer einen Mitschnitt P auf sein Gerät herunterlädt. In diesem
Fall hat der Audiokonverter (Prozessor) eine Veröffentlichung erzeugt und verschickt.
Möchte ein weiterer Nutzer später denselben Mitschnitt herunterladen, kann er einen
aktiven Pfad aufbauen, denn Ankündigungen versendet der Prozessor nach wie vor. War
der Pfad zum Zeitpunkt der Veröffentlichung nicht aktiv, weil der Benutzer gar nicht
anwesend war, empfängt er die Veröffentlichung nicht. Der Grund ist, dass in PublishSubscribe-Systemen nicht vorgesehen ist, dass eine Anwendung ihre Veröffentlichung
gezielt erneut versendet. Die Nachrichtenzustellung ist allein Aufgabe der Broker. Für
Publisher und Subscriber ist sie transparent. Ein Broker kann die Veröffentlichung nur
dann zustellen, wenn er über eine Kopie von P verfügt. Daraus folgt, dass die Umsetzung
eines ASP-Systems zwingend Caches für Veröffentlichungen bereithalten muss. Werden
Pfade nach dem Versand einer oder mehrerer Veröffentlichungen aktiv, werden diese
Veröffentlichungen aus dem Cache zugestellt. Im einfachsten Fall, speichert jeder Broker die Veröffentlichungen, die seine lokalen Anwendungen erzeugt haben, zwischen. Im
Rahmen dieser Arbeit ist die Notwendigkeit von Caches entscheidend. Deren Struktur
oder Verteilung, wird nicht weiter untersucht.
Durch den Einsatz von Caches ist es notwendig, dass Broker zweifelsfrei zwischen Duplikaten von Veröffentlichungen, neuen Veröffentlichungen und Veröffentlichungen aus
Caches unterscheiden. Dazu sind Sequenznummern für Veröffentlichungen vorgesehen.
Um das Netzwerk nicht mit überflüssigen Veröffentlichungen aus Caches zu belasten, ist
es hilfreich, wenn ein Broker zwischen aktiven Pfaden derselben ASP ID unterscheiden
kann. Es wird vorgeschlagen, dafür die bereits in [Ris09a] eingeführten Subscriber IDs
zu nutzen. Für den dort ursprünglich genannten Zweck, mehrere Subscriber an einem
Broker zu unterscheiden, sind sie in dieser Form ausdrücklich nicht erforderlich. Die Subscriber ID wird in dem hier konzipierten System also genutzt, um aktive Pfade, die von
unterschiedlichen Brokern ausgehen, unterscheiden zu können.
Betrachtet man neben Veröffentlichungen auch Ankündigungen, ergibt sich ein weiterer
interessanter Anwendungsfall für Caches. Er betrifft die Eingliederung von neuen Knoten (Brokern) in das Netzwerk. Werden Ankündigungen nicht zwischengespeichert, muss
ein neu hinzugekommener Broker warten, bis alle im System existierenden Ankündigungen verlängert wurden. Der Zeitraum ist von der Gültigkeitsdauer der Ankündigungen
abhängig. Cachen Broker jedoch Ankündigungen, können sie einem neuen Nachbarn
sofort alle ihnen bekannten Ankündigungen übergeben. Dadurch wird die Latenz verringert, mit der der neue Broker sein Interesse an den Veröffentlichungen verbreiten kann.
Dem steht als Nachteil gegenüber, dass ein kleiner Teilbereich des Netzwerks kurzzeitig
stärker belastet wird. Lernen mehrere Broker zeitgleich einen neuen Nachbarbroker kennen, werden die Ankündigungen zudem redundant verschickt. Der Vorteil der geringen
Latenz überwiegt die Nachteile nach Meinung des Autors. Das Caching von Ankündigungen kommt deshalb im untersuchten System zum Einsatz.
39
3. Konzept
3.4. Metrik
Eine offene und zugleich wichtige Frage, deren Antwort Einfluss auf die Leistungsfähigkeit von ASP hat, ist: Was ist die geeignete Routingmetrik? In Abschitt 2.7 wurden
existierende Metriken vorgestellt, die in statischen Funknetzen eingesetzt werden oder
dafür konzipiert wurden. Es folgt eine Betrachtung der Faktoren, die in dem konkreten
Szenario (siehe Abschnitt 3.2) die Übertragungsleistung beeinflussen. Eine Metrik muss
diese Faktoren angemessen berücksichtigen. Die zuvor vorgestellten Metriken werden
anhand dieser Faktoren und der Kosten (besonderer Kommunikations- oder Rechenaufwand), die durch ihren Einsatz entstehen, bewertet. Neben dem Datentransport muss
eine Metrik für ASP auch die Kosten der Datenverarbeitung in den Prozessoren einbeziehen. Dieser Aspekt wird in Abschnitt 3.4.2 betrachtet.
3.4.1. Datentransport
Beim Transport von Daten zwischen zwei Knoten in einem Netzwerk sind die Übertragungskapazität und die Verlustrate zwei zentrale Verbindungseigenschaften. Die Übertragungskapazität einer Verbindung zwischen zwei benachbarten Stationen, also die Datenmenge, die in einem bestimmten Zeitintervall maximal übertragen werden kann, begrenzt den Datenfluss nach oben. Je höher die Kapazität, umso schneller können Daten
ausgetauscht werden. Die Verlustrate nimmt Einfluss auf die verfügbare Kapazität und
die Übertragungslatenz einer Verbindung. Angenommen, eine Netzwerktechnologie verwendet einen Mechanismus aus Bestätigungen und Wiederholungen zur Sicherung der
Verbindung vor Nachrichtenverlust, was allgemein als ARQ (Automatic Repeat Request,
siehe [Tan03, S. 200 ff.]) bekannt ist. In diesem Fall führt der Verlust von Datenpaketen
unmittelbar zu einer Erhöhung der Latenz, weil verlorene Daten erneut übertragen werden müssen. Analog sinkt die verfügbare Übertragungskapazität, wenn Übertragungsverluste auftreten. Wegen Sendewiederholungen werden effektiv weniger Nutzdaten pro
Zeiteinheit übertragen.
Wegen ihrer großen Bedeutung, sollte eine Metrik für ASP die Übertragungskapazität
und die Verlustrate vorrangig berücksichtigen. Die Metrik sollte es ermöglichen, zwischen
unterschiedlichen Pfaden denjenigen Pfad zu wählen, der eine hohe Kapazität aufweist
und dessen einzelne Verbindungen möglichst verlustarm sind. Letzteres hilft die Latenz
zu minimieren und die erzielbare Übertragungsrate zu maximieren.
Symmetrie von Verbindungen (nicht Routen oder Pfaden) ist für das Funktionieren
von ASP notwendig. Der Grund ist die Art und Weise wie ASP aktive Pfade etabliert.
Empfängt ein Broker ein Abonnement Sx , das er nicht selbst bedienen kann, leitet er die
Nachricht weiter und sendet sie an denjenigen Nachbarn, von dem er die Ankündigung
Ax mit den minimalen Kosten empfangen hat. Das gilt analog für die Verbreitung von
Veröffentlichungen, denn sie werden an Nachbarn gesendet, von denen Abonnements
empfangen wurden. Die Hop-Count-Metrik erlaubt keine Aussagen über die Symmetrie
von Verbindungen. Sie scheidet daher für den Einsatz in ASP aus.
40
3. Konzept
Neben Bandbreite, Verlustrate und Symmetrie einer Verbindung, hat die Auslastung
Einfluss auf die Leistungsfähigkeit. Keine der in Abschitt 2.7 genannten Metriken berücksichtigt unmittelbar die Auslastung einer Verbindung. Dadurch wird das Oszillieren
von Routen vermieden [DABM05]. Metriken wie ETT, die die Kapazität berücksichtigen, können für Oszillieren anfällig werden, wenn sie die verfügbare Bandbreite und
damit auch die Auslastung ausmessen [DPZ04]. Wird die Verbindungsauslastung nicht
berücksichtigt, kann es bei ASP dazu kommen, dass Verbindungen, die eine gute Bewertung erhalten, in viele aktive Pfade eingebunden werden. Wird eine Verbindung bei
steigender Auslastung nicht abgewertet, steigt das Risiko, dass bei entsprechend starkem
Datenverkehr die betreffende Verbindung überlastet wird.
Die ebenfalls in Abschnitt 2.7 erläuterten Phänomene Intra- und Inter-Flow-Interferenz
können in einem Netzwerk auftreten, sobald mehr als eine Funkverbindung im selben
Frequenzband existiert. Davon ist im Szenario auszugehen (siehe Abschnitt 3.2). Die
Phänomene können in diesem Umfeld bei Einsatz von ASP jedoch nicht durch den
Einsatz der Metriken MIC oder WCETT vermieden werden. Broker besitzen nur ein
sehr beschränktes Wissen über die Topologie des Netzwerkes. Sie kennen lediglich ihre
Nachbarn. Um Inter-Flow-Interferenz vermeiden zu können, sind jedoch sehr detaillierte
Informationen über den Zustand eines größeren Teils des Netzwerks erforderlich. ASP
sieht keinen Mechanismus vor, solche Informationen auszutauschen oder zu erheben. Der
Einsatz eines Protokolls zum Austausch solcher Statusinformationen würde das Netzwerk zusätzlich belasten. Eine Metrik wie MIC ist für den Einsatz in ASP ungeeignet,
da die nötigen Informationen zur Bewertung der Pfade nicht zur Verfügung stehen. Das
heterogene Umfeld für das ASP konzipiert ist, erschwert zusätzlich die Vermeidung von
Intra-Flow-Interferenz. So funkt der WLAN-Standard IEEE 802.11g im 2,4-GHz-Band,
genau wie Bluetooth [Rec06, S. 2 ff.]. Besitzt eine Station je eine Schnittstelle beider
Technologien, sind Interferenzen unvermeidbar. Ähnlich wie MIC benötigt WCETT detailliertes Wissen über die Eigenschaften der Verbindungen entlang eines Pfades. Die
Wechselwirkungen zwischen einzelnen Übertragungstechnologien müssten zudem in geeigneter Weise modelliert werden und in sämtlichen ASP-Stationen vorliegen. Aus den
genannten Gründen eignet sich WCETT nicht für den Einsatz in ASP.
Verglichen mit WCETT und MIC werden zur Berechnung von ETX und ETT wenige
Daten benötigt. Konkret sind dies bei ETX die Verlustrate in Sende- und Empfangsrichtung zwischen zwei benachbarten Stationen. Voraussetzung für die Berechnung von ETT
sind zusätzlich Informationen über die Bandbreite einer Verbindung und die Größe der
zu sendenden Pakete. Verlustrate und Bandbreite betreffen ausdrücklich Paare jeweils
unmittelbarer Nachbarn. Damit sind die Metriken kompatibel zu ASP, welches sich ausdrücklich auf Wissen über Nachbarschaftsbeziehungen beschränkt. ETT wird in [Ris09b]
als Grundlage für eine Metrik gewählt.
41
3. Konzept
3.4.2. Datenverarbeitung
Auf die Geschwindigkeit der Verarbeitung von Veröffentlichungen durch Prozessoren
haben die Anzahl und Größe der Eingabeveröffentlichungen großen Einfluss. Große
Eingabedaten oder eine Vielzahl kleiner Veröffentlichungen können je nach Hardware
nicht im Primärspeicher bearbeitet werden. Unabhängig davon ist der Verarbeitungsaufwand stark anwendungsabhängig. Der ASP-Broker sollte bei der Ermittlung der Verarbeitungsmetrik daher auf Informationen zurückgreifen, die von der Prozessoranwendung stammen. In [Ris09b] wird eine zeitbasierte Verarbeitungsmetrik angeregt. Machen die Prozessoranwendungen Schätzungen über die zu erwartende Verarbeitungszeit,
so werden die beiden zuletzt genannten Punkte kombiniert. Auf welcher Grundlage eine Prozessoranwendung die Schätzung macht, ist von Anwendung zu Anwendung stark
unterschiedlich und muss daher im Einzelfall betrachtet werden. Generell lassen sich
Erfahrungs- oder Messwerte (zum Beispiel Benchmarks) nutzen, um den zu erwartenden Aufwand und die Leistungsfähigkeit des Systems abzuschätzen.
3.4.3. Metrik für ASP
Eine Metrik, die für den Einsatz in ASP geeignet ist, verknüpft die Kosten des Datentransports und der Datenverarbeitung in geeigneter Weise. Als Transportmetrik sind
sowohl ETX als auch ETT geeignet (siehe Abschnitt 3.4.1). ETT ermöglicht es, genauere
Aussagen über die Qualität einer Verbindung zu treffen als ETX. Deshalb soll die Metrik ETT als ein Baustein für eine Metrik für ASP dienen. Da die Kontrollnachrichten
von ASP kompakt sind und Veröffentlichungen einen sehr geringen Datenumfang kleiner
oder gleich 100 Byte haben können, tritt insbesondere bei hohen Bandbreiten ein Problem auf. Rechnerisch beträgt die Übertragungsdauer für 100 Byte bei 100 MBit/s nur
etwa 0,08 ms. Ein vernachlässigbar kleiner Wert verglichen mit Latenzen im Millisekundenbereich. ETT verliert unter diesen Umständen an Aussagekraft. Aus diesem Grund
wird die Latenz einer Verbindung in Form der RTT (round trip time) zusätzlich für die
Berechnung der Verbindungskosten herangezogen.
Als Metrik für die Datenverarbeitung soll die geschätzte Dauer zur Erzeugung einer
Veröffentlichung durch den Prozessor dienen. Wird eine Veröffentlichung P 0 aus den
Veröffentlichungen P1 , P2 bis Pn erzeugt, so beziffert die Prozessoranwendung den Zeitraum tproc , der wahrscheinlich zwischen dem Zeitpunkt, zu dem alle n Eingabeveröffentlichungen vorliegen und dem Zeitpunkt, bis P 0 erzeugt ist, vergehen wird. In Grafik
3.5 wird die Definition illustriert.
Allgemein ergeben sich die Kosten eines kompletten Pfades aus n Kanten aus der Summe
der Kosten aller einzelnen Kanten.
m=
n
X
d(ei )
(3.1)
i=1
42
P3 trifft ein
P’ steht bereit
P4 trifft ein
P2 trifft ein
P1 trifft ein
3. Konzept
t0
t1
Zeit
Abbildung 3.5.: Die Zeit für die Umwandlung von P1 bis P4 nach P 0 ergibt sich als tproc =
t1 − t0 .
Für die Kosten einzelner Kanten (Verbindungen) e ergibt sich:
d(e) =
trtt
+ ETT + tproc
2
(3.2)
Bei von Prozessoren verarbeiteten Veröffentlichungen ist zusätzlich die Summe der Kosten aller Ausgangsveröffentlichungen zu berücksichtigen.
k
d(e) =
X
trtt
+ ETT + tproc +
mj
2
(3.3)
j=1
ETT berechnet sich nach der auf Seite 18 genannten Formel.
Die Metrik, die die Gleichungen 3.1 und 3.3 definieren, unterscheidet sich von der in
[Ris09b] vorgeschlagenen Metrik. Die hier verwendete Metrik berücksichtigt Änderungen
der Größe von Veröffentlichungen nicht ausdrücklich. Die gewählte Metrik ist in diesem
Punkt simpler. Das erleichtert das Nachvollziehen eines konkreten Routingvorgangs. Im
vorgestellten Szenario mit genau einer Art Prozessor ist es zudem unerheblich, ob und
mit welcher Genauigkeit die Größe einzelner Veröffentlichungen bei der Berechnung der
Metrik berücksichtigt wird. Erst wenn mehrere Prozessoren unterschiedlich verknüpft
werden können, ist die genaue Größe von Veröffentlichungen entscheidend. Für umfangreichere Szenarien könnte die exakte Größe bei der Berechnung der ETT einfließen. Dafür
wäre es notwendig, dass die (voraussichtliche) Größe von Veröffentlichungen mit den zugehörigen Ankündigungen verbreitet wird. Das ist bislang für ASP nicht vorgesehen. Der
Ansatz wird hier aus den genannten Gründen nicht weiter verfolgt.
43
4. Implementierung
4. Implementierung
Bislang existierte keine Implementierung von ASP für ein reales System. Der gesamte
ASP-Stack wurde daher neu implementiert. Für die vollständige Umsetzung des Szenarios wurden die Anwendungen ebenfalls neu implementiert oder falls bestehende Lösungen
verfügbar waren, wurden diese eingebunden (siehe Abschnitt 4.2). In diesem Kapitel werden die Kernpunkte der Implementierung vorgestellt.
4.1. Einleitung
Die Implementierung der ASP-Middleware folgt der in den Abschnitten 2.4 und 2.5 beschriebenen Systemarchitektur: Auf jedem Knoten des Netzwerks ist ein Broker aktiv.
Dieser Broker nutzt die Netzwerkabstraktionsschicht für die Kommunikation mit Brokern auf benachbarten Knoten. Anwendungen sind über die Anwendungsschnittstelle
mit ihrem lokalen Broker verbunden.
Die Middleware und der Großteil der Anwendungen wurden in Java auf der gleichnamigen Plattform implementiert. Ausschlaggebend für die Wahl von Java waren die
hohe Codeportabilität, die Verfügbarkeit der Laufzeitumgebung auf vielen gängigen Betriebssystemen und die umfangreiche Standardbibliothek (siehe [Ull07]). Ein weiteres
Argument für Java war zunächst die Option, die Software ohne eine komplette Neuimplementierung auf Mobilgeräte mit der Plattform J2ME zu portieren (siehe [BM06]).
Dieses Vorhaben wurde wegen des hohen zu erwartenden Zeitaufwands verworfen. Aus
Rücksicht auf das für die Versuche verfügbare Softwareumfeld wurde Java Version 5
benutzt.
Die Implementierung verbindet Anwendungen und Middleware in einem gemeinsamen
Prozess. Diese Entscheidung wurde getroffen, um die Entwicklung zu vereinfachen.
4.2. Anwendungen
Die vier aus dem Szenario (siehe Abschnitt 3.2) bekannten Anwendungen werden in den
folgenden Absätzen umrissen.
44
4. Implementierung
4.2.1. Rekorder
Die Anwendung zur Sprachaufnahme nutzt die Java Sound API für den Zugriff auf ein
vorhandenes Mikrofon [Ora10]. Sie erlaubt die Aufzeichnung von Sprache in einem unkomprimierten Format in einer vorgegebenen Qualität. Die Aufzeichnung wird mit ASP
an interessierte Subscriber übertragen. Die Ankündigungen enthalten das Datum der
Aufzeichnung und Informationen zum Format der Audiodaten. Für die Übertragung
(Veröffentlichung) wird der Strom der Audiodaten in Abschnitte von je ca. 1280 Byte
aufgeteilt. Jeder dieser Abschnitte wird eigenständig veröffentlicht. Im Rahmen einer
Aufzeichnung werden je nach Länge hunderte oder tausende Veröffentlichungen erzeugt.
In das Programm wurde zudem ein Modus zum Playback bereits aufgezeichneter Aufzeichnungen aus Dateien integriert. In diesem Modus stammen die Audiodaten aus einer
Datei, werden aber in Echtzeit veröffentlicht, wie es beim normalen Modus auch der
Fall ist. Dieser Modus erleichtert es, die Experimente unter gleichen Bedingungen zu
wiederholen und mindert den Aufwand bei der Durchführung der Experimente. Nicht
zuletzt lässt sich die Audioaufnahme an Geräten simulieren, die Sprache nicht aufzeichnen können.
4.2.2. Speicherung
Das Programm zur Speicherung empfängt die Audiodaten des Rekorders und gibt sie
weiter. Wie in Abschnitt 3.3.1 gefordert, wurde die Anwendung in eine Senke und eine
Quelle aufgeteilt. Die Senke der Anwendung prüft zunächst den Inhalt der Ankündigungen. Bei Interesse abonniert die Anwendung die Veröffentlichungen und schreibt sie
in eine Datei. Die Aufzeichnung wird beendet, wenn die Middleware der Senke meldet,
dass Veröffentlichungen mit der ASP ID nicht länger zu erwarten sind. Die Informationen
über das Aufzeichnungsdatum werden ebenfalls abgespeichert. Regelmäßig überprüft die
Quelle der Anwendung, ob neue Aufzeichnungen abgespeichert wurden. Liegt eine neue
Aufzeichnung vor, wird diese umgehend angekündigt. Die gespeicherte Aufzeichnung
wird als eine große Veröffentlichung veröffentlicht.
4.2.3. Konverter
Die Anwendung zum Umwandeln der Audiodaten in ein komprimiertes Format untersucht ständig eingehende Ankündigungen. Kann das Programm die angekündigten Veröffentlichungen einer ASP ID verarbeiten, macht es eine entsprechende Ankündigung der
verarbeiteten Daten. Dabei schätzt die Anwendung auch die zu erwartende Dauer der
Umwandlung ab. Sie benutzt dazu die Dauer der angekündigten Audiodatei als Grundlage. Diese Dauer wird durch die bekannte Umwandlungsgeschwindigkeit dividiert. Zum
Beispiel beträgt der geschätzte Aufwand für die Umwandlung einer fünf Minuten langen
Aufzeichnung auf einem Rechner, der mit 20facher Geschwindigkeit umwandeln kann
5·60s
20 = 15s. Der konkrete Geschwindigkeitsfaktor wird über eine Konfigurationsdatei
festgelegt.
45
4. Implementierung
Geht eine gespeicherte Aufnahme ein, wird sie als Datei zwischengespeichert. Die Komprimierung übernimmt ein externes Programm. Für die Experimente wurde oggenc verwendet. Es ist Teil der freien vorbis-tools 1 . Das Programm wandelt die Audiodaten in
das komprimierte Format Ogg/Vorbis um und wurde gewählt, weil es kostenlos für die
Betriebssysteme Windows, Mac OS X und Linux auf unterschiedlichen Architekturen
(x64/amd64, x86, ppc) verfügbar ist. Nach der Umwandlung wird das Ergebnis den
interessierten Subscribern in Form einer Veröffentlichung zur Verfügung gestellt.
4.2.4. Download
Das Programm zum Download enthält nur die nötigsten Funktionen. Es zeigt dem Benutzer alle derzeit angekündigten ASP IDs und auf Wunsch den Inhalt der entsprechenden
Ankündigungen an. Wählt der Anwender eine ID für den Download aus, abonniert das
Programm die Veröffentlichung. Die erste Veröffentlichung dieser ID schreibt es in eine
Datei und kündigt das Abonnement der ID umgehend.
4.2.5. Weitere Anwendungen
Neben den oben genannten Anwendungen wurden einige weitere Anwendungen entwickelt. Sie wurden in erster Linie während der Entwicklung der Middleware zu Testund Diagnosezwecken eingesetzt. Eine der dabei entstandenen Anwendungen, kam auch
während der Experimente zum Einsatz. Es handelt sich dabei um eine Dummy-Anwendung. Sie registriert sich beim Broker der Middleware als Senke. Die Anwendung arbeitet
passiv. Ankündigungen werden auf dem Bildschirm ausgegeben, jedoch nie abonniert.
Die ASP-Middleware dieser Anwendung verhält sich dabei wie bei allen anderen beschriebenen Anwendungen.
4.3. Broker
Der Broker ist die zentrale Komponente der implementierten ASP-Middleware. Unter anderem initialisiert der Broker die Netzwerkabstraktionsschicht, verwaltet Nachbarn und
Pfade, leitet Nachrichten weiter, überwacht Ankündigungen und stellt den registrierten
Anwendungen die abonnierten Veröffentlichungen zur Verfügung.
4.3.1. Multithreading
Die Aufgaben des Brokers sind auf mehrere Threads verteilt. Es gibt je einen Thread
für die Nachrichtenverarbeitung in Sende- und Empfangsrichtung. Daneben existieren
zwei weitere Threads, die regelmäßige bzw. zeitlich verzögerte Operationen ausführen.
1
http://www.vorbis.com/
46
4. Implementierung
Der Thread, der die empfangenen Nachrichten bearbeitet, ist zudem für das Starten und
Beenden der Middleware verantwortlich. Zu seinen weiteren Aufgaben zählen das Zusammensetzen fragmentierter Nachrichten und die Übergabe von Ankündigungen und
Veröffentlichungen an die beim Broker registrierten Anwendungen. Der Sender“ ge”
nannte Thread fragmentiert Nachrichten falls nötig, und übergibt die Nachrichten an
die NAL-Implementierung.
Der Thread TimeoutMonitor“ überwacht die Gültigkeit eingehender und ausgehender
”
Ankündigungen. Sobald eine ausgehende Ankündigung zu verfallen droht, löst dieser
Thread die Verlängerung der Ankündigung aus. Für die Implementierung wurde ein
Wert von 80 % der Gültigkeit der Ankündigung gewählt. Hat eine Ankündigung zum
Beispiel eine Gültigkeit von 10 s, wird sie nach 8 s automatisch verlängert. Wird eine
eingehende Ankündigung nicht rechtzeitig verlängert, wird dies protokolliert und die
bekannte Ankündigung wird komplett verworfen. Lokale Anwendungen, die Veröffentlichungen der betroffenen ASP ID abonniert haben, werden benachrichtigt.
Der vierte Thread löst nach einer geringen Verzögerung den Versand von Abonnements
aus. Auf diese Weise muss der Thread, der das Abonnement ursprünglich auslöst, seine
Ausführung nicht pausieren. Die Verzögerung ist auf 100 ms festgelegt.
4.3.2. Priorisierung
Zum Aufbau aktiver Pfade verwendet ASP Ankündigungen und Abonnements (siehe
Abschnitt 2.5.2). Die Ankündigungen werden regelmäßig aktualisiert. Erreicht eine Folgeankündigung einen Broker zu spät, hat dieser die Ankündigung und alle mit ihr
verbundenen Pfade bereits verworfen. Damit Ankündigungen mit möglichst niedriger
Verzögerung im Netz geflutet werden, werden Kontrollnachrichten und Veröffentlichungen unterschiedlich priorisiert. Dadurch wird vermieden, dass die Übertragung einer
großen Veröffentlichung (bzw. ihrer Fragmente) die rechtzeitige Zustellung von Ankündigungen und anderen Kontrollnachrichten verhindert.
Jede ausgehende oder weiterzuleitende Nachricht wird innerhalb des Brokers in genau
eine von zwei Warteschlangen eingefügt. Veröffentlichungen werden an die eine, alle
anderen Nachrichten an die andere Warteschlange angehängt. Der zuständige Thread
bearbeitet immer erst die Warteschlange mit den Kontrollnachrichten und erst wenn
sie leer ist, wird geprüft, ob in der zweiten Warteschlange Veröffentlichungen sind, die
bearbeitet werden müssen.
4.3.3. Fragmentierung
Die Fragmentierung von Nachrichten wird getrennt für jeden Nachbarn vorgenommen.
Der Broker kann dazu für jeden einzelnen Nachbarn die MTU (maximum transfer unit)
erfragen. Veröffentlichungen werden erst dann fragmentiert, wenn sie größer als die MTU
sind. Kontrollnachrichten werden generell nicht fragmentiert. Sind sie zu groß, werden
47
4. Implementierung
sie verworfen. Die Fragmentierung wurde so implementiert, dass eine eingehende, fragmentierte Veröffentlichung an jedem Broker zusammengesetzt wird. Erst danach wird
sie bei Bedarf erneut fragmentiert und weitergeleitet. Dadurch wird vermieden, dass unvollständige Veröffentlichungen voreilig weitergeleitet werden und das Netzwerk unnötig
belasten. Entlang jeder Verbindung wird zudem stets die höchstmögliche MTU verwendet. Im Gegenzug steigt die Übertragungslatenz jedoch an. Die Reihenfolge, in der die
Fragmente einer Veröffentlichung beim Broker eintreffen, ist unbedeutend.
4.4. Protokollierung
Damit der Verlauf der Experimente nachvollzogen werden kann, protokolliert die Middleware relevante Aktionen in Dateien. Es wurden die von der Java-Standardbibliothek
angebotenen Programmierschnittstellen genutzt, um diese Funktion zu realisieren. Zu
den protokollierten Ereignissen zählen u.a. Ein- und Ausgang von Nachrichten, der Verlust von Nachbarschaftsbeziehungen und die Operationen Publish und Subscribe. Der
genaue Umfang der zu protokollierenden Daten kann über eine Konfigurationsdatei festgelegt werden.
4.5. NAL
Die Netzwerkabstraktionsschicht wurde getrennt für Bluetooth auf der einen und Ethernet und WLAN auf der anderen Seite implementiert. Die beiden Implementierungen
werden vom Broker über identische Schnittstellen angesprochen und auch in der Gegenrichtung werden dieselben Schnittstellen verwendet. Beide Implementierungen lassen
sich unabhängig voneinander oder parallel betreiben. Über eine Konfigurationsdatei des
Brokers lässt sich festlegen, welche NAL-Implementierung(en) geladen und verwendet
werden. Damit die Middleware den Betrieb aufnimmt, müssen alle konfigurierten NALImplementierungen korrekt starten.
In den nächsten Unterabschnitten werden die beiden Implementierungen genauer vorgestellt.
4.5.1. Priorisierung
Die in Abschnitt 4.3.2 beschriebene Priorisierung von Kontrollnachrichten und Veröffentlichungen wird in beiden NAL-Implementierungen fortgesetzt. Kontrollnachrichten
werden mit einer höheren Priorität behandelt als Veröffentlichungen. Es sind Implementierungen der Netzwerkabstraktionsschicht denkbar, die anders vorgehen, um Kontrollnachrichten zügig zu verbreiten. In der vorliegenden Implementierung wurde darauf jedoch verzichtet und auf dasselbe Verfahren zurückgegriffen, dass sich im Broker bewährt
hat.
48
4. Implementierung
4.5.2. Ethernet und WLAN via UDP
Die NAL-Implementierung für Ethernet und WLAN basiert auf UDP/IP. Die für diese
Arbeit wichtigsten Eckpunkte von IP und UDP werden in Abschnitt 2.8.1 und 2.8.2
genannt. Auf weitere Literatur wird verwiesen. Die Implementierung des NAL für UDP
wird im folgenden als UdpNAL bezeichnet.
ASP wurde so konzipiert, dass die Netzwerkabstraktionsschicht von beliebigen Techniken der Sicherungsschicht (OSI-Layer 2) oder höher abstrahiert [Ris09a]. Um den Implementierungsaufwand zu reduzieren, wurde entschieden, die Implementierung des NAL
für Ethernet und WLAN auf UDP/IP aufzubauen. Mit der Socket-Schnittstelle existiert
eine verbreitete API für die Datenübertragung mit UDP/IP (und anderen Protokollen) [Tan03, SFR04]. In Java ist sie auf allen genutzten Plattformen identisch [Ull07].
Das Protokoll UDP ist auf der Transportschicht (Layer 4) des OSI-Referenzmodells angesiedelt und damit über der Sicherungsschicht angesiedelt. Es wurde soweit wie möglich
darauf verzichtet, besondere Eigenschaften oder Merkmale von IP oder UDP zu nutzen.
UDP/IP wird in der implementierten Software weitgehend so genutzt, als sei es ein
Protokoll der Sicherungsschicht. Insbesondere wird die Fähigkeit von IP, zwischen unterschiedlichen Netzen zu routen, nicht genutzt. Die Kommunikation über UDP beruht
in der Implementierung, wie von ASP gefordert, auf Nachbarschaftsbeziehungen.
Um Nachbarn zu erkennen, sendet der UdpNAL in regelmäßigen Abständen spezielle
Nachrichten per Broadcast an das eigene Subnetz aus. Je nach Konfiguration wird dafür
eine gerichtete oder die eingeschränkte Broadcastadresse genutzt (siehe Abschnitt 2.8.1).
Diese regelmäßigen Signale wurden mit der Ermittlung der Verlustraten in Sende- und
Empfangsrichtung verknüpft. Die Raten werden ermittelt, damit die Kosten der Verbindungen berechnet werden können. Ferner ermittelt der UdpNAL eigenständig die RTT
(round trip time) zu allen bekannten Nachbarn. Wird von einem Nachbarn über einen
längeren Zeitraum gar nichts empfangen, gilt dieser Nachbar als verloren.
Eine weitere Aufgabe des UdpNAL ist die Sicherung der Übertragungen zu den Nachbarn. Für diese Funktion wurde ein einfaches Stop-and-Wait-Protokoll implementiert
[Tan03, S. 208 ff.]. Es hat den Nachteil, dass es aufgrund hoher Latenz- und Verarbeitungszeiten sehr ineffizient arbeitet. Übertragungen sind daher langsam. Es ist davon
auszugehen, dass der Einsatz von TCP/IP dieses Problem behoben hätte. Allerdings ist
TCP in seinen Diensteigenschaften weit weniger mit Ethernet oder WLAN vergleichbar
als UDP, weshalb darauf verzichtet wurde.
Auch die Aufgaben des UdpNAL sind auf mehrere Threads aufgeteilt. So sind einige der
Operationen wie der Nachrichtenempfang (receive()) blockierend und werden von separaten Threads ausgeführt. Andere Aktionen, wie die Messung der Verlustrate, müssen
in regelmäßigen zeitlichen Abständen ausgeführt werden und wurden deshalb ebenfalls
in eigene Threads ausgelagert.
49
4. Implementierung
4.5.3. Bluetooth via OBEX
Die Implementierung der Bluetooth-Netzwerkabstraktionsschicht wird nachfolgend kurz
als BtNAL bezeichnet. Für den Zugriff auf die Bluetooth-Hard- und Software nutzt sie
die in JSR-82 spezifizierten Schnittstellen [Mot08]. Um sie zur Laufzeit nutzen zu können,
wird ein Bluetooth-Stack für Java benötigt, der diese Spezifikation implementiert. Die
implementierte Middleware verwendet dazu die freie Software BlueCove2 . Der Stack
wurde während der Entwicklung der ASP-Middleware erfolgreich auf allen genutzten
Plattformen eingesetzt und funktionierte auch mit unterschiedlicher Bluetooth-Hardware ohne nennenswerte Probleme.
Für die Datenübertragung verwendet der BtNAL OBEX auf Grundlage von GOEP (siehe Abschnitt 2.8.4). Möchte ein Broker b1 via BtNAL eine Nachricht zu einem benachbarten Broker b2 versenden, etabliert b1 eine OBEX-Sitzung. Die Operation PUT wird
anschließend genutzt, um ASP-Nachrichten vom Client b1 zum Server b2 zu übertragen.
Der Client nutzt GET um die Übertragungslatenz (RTT) zwischen den beiden BluetoothNachbarn zu ermitteln.
Der BtNAL scannt die Umgebung periodisch nach neu hinzugekommenen BluetoothGeräten. Da die Scans sehr zeitintensiv sind und andere Übertragungen stören können,
kommt ein adaptives Verfahren zum Einsatz. Der zeitliche Abstand zwischen zwei aufeinanderfolgenden Scans wird beträchtlich erhöht, sobald mindestens ein anderes BluetoothGerät bekannt ist, auf dem die ASP-Middleware erreicht werden konnte. Der BtNAL
nimmt keinen Einfluss auf die Sichtbarkeit des genutzten Bluetooth-Adapters bezüglich
Inquiry Scans. Der Modus ist daher bei Bedarf mit den Mitteln des Betriebssystems zu
konfigurieren.
Ähnlich wie beim UdpNAL werden auch die Aufgaben des BtNAL von mehreren Threads
gemeinsam erfüllt. Einer von ihnen löst die zuvor beschriebenen regelmäßigen Scans
aus. Zusätzlich wird für jeden Nachbarn, der eine Verbindung zum BtNAL aufbaut, ein
Thread erzeugt. Weil Bluetooth-Operationen vergleichsweise hohe Verzögerungen aufweisen können, wird auch in Senderichtung bei Bedarf für jeden Nachbarn ein separater
Thread gestartet. Die dabei aufgebauten OBEX-Sitzungen bleiben so lange wie möglich
bestehen.
Der BtNAL enthält keine Maßnahmen zur Sicherung der Bluetooth-Übertragungen vor
Verlust. Der Schutz wird von den genutzten Protokollen bereits sichergestellt. Da die
verwendete Programmierschnittstelle keinen Zugriff auf die tatsächlichen Fehlerraten
gewährt, wird bei allen Bluetoothübertragungen 1 als Wert für ETX (siehe Abschnitt
2.7.2) angenommen. Das heißt, der BtNAL geht von fehlerfreien Verbindungen aus. Aus
Sicht des BtNAL ist dies korrekt. Es gibt jedoch die reale Situation nicht optimal wieder,
da es in der Praxis durchaus zu Störungen und damit zur Wiederholung von Übertragungen kommen kann.
2
http://bluecove.org/
50
4. Implementierung
Die Fragmentierung die vom Bluetooth-Stack automatisch vorgenommen wird, wird nur
eingeschränkt benutzt. Damit ein zeitliches Multiplexing von ASP-Kontrollnachrichten
und Veröffentlichungen ausgeführt werden kann, veranlasst der BtNAL den Broker Nachrichten zu fragmentieren. Alle Nachbarn, die über Bluetooth verbunden sind, geben dazu
eine feste MTU vor. Ohne die Fragmentierung würde der Bluetooth-Stack auch eine mehrere Megabyte große Veröffentlichung – für den BtNAL transparent – zu einem Nachbarn
übertragen. Alle anderen Übertragungen zu diesem Nachbarn müssten jedoch auf das
Ende der anhaltenden Übertragung warten. Dies würde bei Bluetooth aufgrund der
verglichen mit Ethernet und WLAN niedrigen Übertragungsraten und den daraus resultierenden langen Übertragungszeiten häufig zum Ablauf von Ankündigungen führen.
4.6. Nachrichtenformat
Für die Implementierung der ASP-Middleware war es erforderlich das Format der Nachrichten, die die Broker untereinander austauschen, zu spezifizieren. Grundlage bildet der
Vorschlag aus [Ris09a], der jedoch ergänzt und konkretisiert wurde. Die Struktur der
Nachrichten ist im Anhang auf Seite 76 wiedergegeben. In diesem Abschnitt werden
einzelne, besonders interessante Aspekte des Nachrichtenformats beschrieben.
Die beiden ersten Felder (TYPE, TTL; je ein Byte) sind bei allen Nachrichten vorhanden
und wurden neu eingeführt. Das erste Byte dient der Identifizierung des Nachrichtentyps.
Es werden die fünf Nachrichtentypen Announcement, Subscription, Unsubscription, Publication und Brokenpath unterschieden. Das zweite Byte beinhaltet die TTL (time to
live) der Nachricht. Sie wird vor jeder Weiterleitung einer Nachricht verringert. Sie dient
in der Auswertung der Experimente zum besseren Verständnis der Abläufe. Von der
Implementierung wird das Feld stets mit dem Wert 127 initialisiert. Insbesondere hat
eine neue Nachricht, die erstmals zu einem Nachbarn verschickt wird, bei ihrer Ankunft
die TTL 127.
Die Werte der Felder Kosten (8 Byte) und die Gültigkeit (4 Byte) werden als ganzzahlige
Anzahl von Millisekunden interpretiert. Bei typischen Werten von einigen hundert Millisekunden bis zu einigen zehn oder hundert Sekunden bleiben im Feld für die Kosten eine
Reihe von Bytes ungenutzt. Sie können für zukünftige Erweiterungen genutzt werden. So
wurde in Abschnitt 3.4.3 bereits angedeutet, dass es bei einer möglichen Erweiterung der
Metrik notwendig werden könnte, Schätzungen über die Größe von Veröffentlichungen
in den Ankündigungen zu transportieren.
Für die Fragmentierung von Veröffentlichungen enthalten Nachrichten vom Typ Publication zwei Felder (je vier Byte). In einem ist die Größe der gesamten Nutzlast gespeichert,
im anderen der Byteoffset der Daten, die in der jeweiligen Nachricht transportiert werden.
An dieser Stelle wird noch einmal betont, dass die Nachrichten keine Informationen
über ihre Länge enthalten. Diese Information wird auf Ebene der Broker nicht explizit
51
4. Implementierung
benötigt. Dies folgt aus den Anforderungen, dass die Netzwerkabstraktionsschicht Nachrichten stets komplett an den Broker übergibt. Diese und weitere Anforderungen an die
Netzwerkabstraktionsschicht stehen in Abschnitt 3.3.2 beschrieben.
4.7. Metrik
Die Implementierung folgt dem in Abschnitt 3.4.3 beschriebenen Ansatz. Als Einheit der
Kosten wurden Millisekunden gewählt. Die Auflösung beträgt eine ganze Millisekunde.
Die zur Berechnung nötigen Angaben werden von dem NAL, den Prozessoranwendungen und den Ankündigungen geliefert. Die Kosten sämtlicher eingehender und lokaler
Ankündigungen sind dem Broker bekannt. Löst ein Prozessor eine Ankündigung aus,
informiert er den Broker über die ASP IDs, die der Ankündigung zugrunde liegen. Die
Kosten werden aufsummiert. Daneben gibt der Prozessor die verlangte Schätzung über
den Bearbeitungsaufwand für das Verarbeiten der Veröffentlichung(en) ab. Die Berechnungsgrundlage für die Konverteranwendung wird in Abschnitt 4.2.3 erläutert. Sie wird
zu den Kosten der neuen Ankündigung addiert.
Die beiden Implementierungen der Netzwerkabstraktionsschicht liefern die verbleibenden
Daten (siehe Seite 48 ff.). Dazu gehört die RTT. Sie wird, wie in der Formel 3.3 (S. 43)
beschrieben ist, in die Kostenberechnung einbezogen.
Besonders die Parameter S (Größe) und B (Bandbreite) zur Berechnung der ETT (siehe
Abschnitt 2.7.3) sind mit Blick auf die Implementierung im NAL interessant. Für den
Parameter S wurde im gesamten System ein fester Wert von 200.000 Byte gewählt. Ein
S
Kompromiss, da niedrigere Werte dazu führen können, dass der Faktor B
gerade bei hohen Bandbreiten einen ebenfalls sehr niedrigen Wert annimmt und damit das Produkt
(ETX) an Gewicht verliert und keinen Vergleich von unterschiedlich guten Verbindungen
auf Basis von ETX mehr ermöglicht. Die Bandbreite B wird über eine Konfigurationsdatei vorgegeben. Während der Entwicklung wurde zunächst ein Verfahren implementiert,
dass die verfügbare Bandbreite sowohl über Bluetooth als auch über UDP misst. Es zeigte sich jedoch, dass die Ergebnisse dieser Messungen sehr lastabhängig und außerdem
plattformabhängig waren. Dies kann im Endeffekt zu Oszillation von Routen führen. Das
Verfahren wurde aus diesem Grund verworfen. Die fest konfigurierten Werte vermeiden
das Problem und ermöglichen zusätzliche eine bessere Reproduzierbarkeit der Versuche.
52
5. Experimenteller Ansatz
5. Experimenteller Ansatz
Es wird ein experimenteller Ansatz verfolgt, um die Leistungsfähigkeit von ASP zu beurteilen. In Experimenten, die so konzipiert sind, dass sie gezielt relevante Teilaspekte
von PPS / ASP untersuchen, werden die nötigen Daten gesammelt. Das in Abschnitt
3.2 beschriebene Szenario und die dort präsentierten Anwendungen bilden die Grundlage der Experimente. Diese Experimente und welche Eigenschaften von ASP, mit ihnen
geprüft werden können, werden im folgenden erläutert. Die Anforderungen, denen die
Experimente gerecht werden müssen, stehen dabei im Vordergrund. Nur wenn die Rahmenbedingungen erfüllt sind, lassen die Experimente Aussagen über das implementierte
System zu.
Die Versuche werden mit der in Kapitel 4 vorgestellten Software ausgeführt. Zum besseren Verständnis der Versuchsergebnisse (siehe Kapitel 6) wird der allgemeine Versuchsaufbau in Abschnitt 5.2 umrissen.
5.1. Experimente
Bevor einzelne Experimente vorgestellt werden, wird ein weiteres Mal auf die in Abschnitt 3.2.1 zusammengefassten Ziele von ASP verwiesen. Die Experimente helfen,
schrittweise die Erfüllung der aus den Zielen abgeleiteten Hypothesen in einem realen System zu überprüfen. Konnte gezeigt werden, dass eines oder mehrere der Ziele
zufriedenstellend erfüllt werden, dienen weitere Experimente, die Effizienz zu ermitteln,
mit der das Ergebnis erreicht wurde. Dabei spielen Punkte wie der Ressourcenverbrauch
eine Rolle. Weiterhin ist interessant wie das praktische System auf Störungen reagiert.
Die räumliche Entkopplung ist dann gegeben, wenn ein Publisher im Experiment einem Subscriber Nachrichten übermitteln kann, ohne dass die einzelnen Akteure wissen,
wer genau die Nachrichten empfängt bzw. von wo sie stammen. Es wird angenommen,
dass dies erfüllt ist, wenn Publisher und Subscriber nicht auf direktem Wege Nachrichten
miteinander austauschen können. Zwischen den beiden Seiten vermittelt allein die ASPMiddleware. Direkte Kommunikation ist insbesondere dann nicht möglich, wenn beide Seiten unterschiedliche Kommunikationstechniken verwenden, also physisch getrennt
sind. Verwenden sie kompatible Netzwerktechniken, müssen diese so abgeschottet werden, dass der Nachrichtenaustausch auf herkömmlichem Wege nicht möglich ist (logische
Trennung). Die logische Trennung kann bei IP-basierten Netzwerken dadurch erfolgen,
dass diese in mehrere Subnetze unterteilt werden (siehe Abschnitt 2.8.1). Für die Un-
53
5. Experimenteller Ansatz
tersuchung der räumlichen Entkopplung ist kein eigenständiges Experiment vorgesehen,
denn der Aspekt spielt in jedem der Experimente eine Rolle.
D
S
R
C
139.30.3.5/26
139.30.216.58/22
Abbildung 5.1.: Die logische Trennung eines Netzwerks in zwei IP-Subnetze. D und R
sind per WLAN mit einem Access Point verbunden, der mit Knoten S
verbunden ist. S hat eine zweite Verbindung in ein weiteres Subnetz, an
das C angeschlossen ist.
In einem weiteren Experiment wird die zeitliche Entkopplung von ASP geprüft.
Empfängt ein Subscriber, eine Veröffentlichung, die zu einem Zeitpunkt verbreitet wurde,
als der Subscriber nicht aktiv oder erreichbar war, ist die zentrale Anforderung erfüllt.
Ein Experiment ( X5“) widmet sich besonders diesem Aspekt. Entscheidend ist dabei
”
der zeitliche Ablauf der Aktionen. Am Experiment sind mehrere Knoten beteiligt. Einige
von ihnen übernehmen die Rollen Aufzeichnung, Speicherung und Umwandlung (siehe
Seite 28 ff.). Sie werden zuerst gestartet. Die Rolle Download wird von mehreren weiteren Knoten übernommen. Daneben existieren Knoten, auf denen keine Anwendung
läuft, sondern nur die ASP-Middleware. Erst nachdem eine Aufzeichnung abgeschlossen
wurde, wird die Download-Anwendung (und mit ihr die Middleware) auf einem der betreffenden Knoten gestartet. Nach erfolgtem Download wird sie beendet und dann ein
weiterer Download auf einem anderen Knoten gestartet. Dieser Ablauf stellt sicher, dass
• die Operation Publish ausgeführt wird, wenn kein Subscriber aktiv ist, und
• die Veröffentlichung bei ihrer ersten Verbreitung nicht von allen potenziellen Subscribern empfangen werden kann.
Die semantische Entkopplung ermöglicht Senken durch Einbeziehung von Prozessoren Daten zu empfangen, die sie nicht selbstständig verarbeiten können oder möchten.
Um ihre Funktionsfähigkeit im Szenario zu überprüfen, ist es notwendig mindestens einen
Prozessor in die Kommunikation zwischen Publisher und Subscriber einzubinden. Das
Szenario hält dafür die Weitergabe eines Audiomitschnitts mit anschließender Konvertierung und Download bereit. Da dies ein wichtiger Bestandteil des Szenarios ist, spielt
dieser Vorgang in allen Experimenten eine Rolle.
Kann ASP die zentralen funktionalen Anforderungen erfüllen, ist es weiter interessant zu
betrachten, wie effizient ASP / PPS diese Ziele erreicht. In Abschnitt 2.1 wird ausgeführt,
54
5. Experimenteller Ansatz
dass ASP im Kern ein Routingproblem lösen möchte. In einem Experiment ( X1“) wird
”
ASP daher mit unterschiedlichen Routingalternativen konfrontiert. Dies bedeutet,
dass mehrere mögliche Routen zwischen Publisher und Subscriber existieren. Dabei wird
in unterschiedlichen Varianten des Experiments untersucht, wie ASP bei äquivalenten
Bedingungen reagiert. Die Bandbreite, erreichbare Zuverlässigkeit und Übertragungstechnik ausgewählter Verbindungen sind in diesen Experimenten vergleichbar. Da jedoch
in einem heterogenen Umfeld die Bedingungen häufig variieren, wird zusätzlich das Verhalten bei unterschiedlichen Bedingungen untersucht. Diese lassen sich durch Nutzung
unterschiedlicher Übertragungsraten und Verbindungstechniken herstellen.
Unterschiedliche Routen können sich auch durch unterschiedlich leistungsfähige
Prozessoren ergeben. Daher wird in einem weiteren Experiment ( X3“) das Verhal”
ten des Systems untersucht, wenn entweder gleich leistungsstarke oder unterschiedlich
leistungsstarke Prozessoren für die Aufgabe der Konvertierung zur Verfügung stehen.
Dabei ist wichtig, dass sich die Leistungsfähigkeit der Hardware im einen Fall gleicht
oder im anderen Fall signifikant unterscheidet.
Ein weiteres Maß mit dem sich die Effizienz von ASP beschreiben lässt, ist die Höhe
des Verwaltungsaufwands. Die Anzahl der Nachrichten und die Datenmenge, die
übertragen werden müssen, sind zwei Kenngrößen. Sie werden in einem weiteren Experiment ( X2“) erfasst. Um die Vergleichbarkeit der Messwerte zu gewährleisten, wer”
den Werte auf Ebene der Broker gemessen. Alle weiteren Nachrichten, die z.B. zum
Verbindungsauf- oder -abbau auf Ebene der Netzwerkabstraktionsschicht oder zur Sicherung der Übertragung usw. genutzt werden, werden nicht gezählt. Es werden nur die
in Tabelle 2.2 auf Seite 14 genannten Nachrichten bzw. deren Umsetzung in der realen
Implementierung (siehe Abschnitt 4.6) berücksichtigt.
Es wird auch untersucht, wie ASP mit Störungen umgeht. In einer Variante eines der
Experimente zur Untersuchung der Routen werden einzelne Verbindungen gezielt beeinträchtigt. ASP sollte in der Lage sein, seine Aufgabe in der Gegenwart von Störungen
so gut wie möglich zu erfüllen und zum Beispiel zuverlässige Routen bevorzugen.
Wie bereits beschrieben wurde, ist für einige Experimente der Einsatz unterschiedlicher Verbindungstechniken vorgesehen. Dieses Ziel wird bei der Wahl der Hard- und
Softwareplattformen für die Experimente berücksichtigt. Jedes Experiment ist ferner
so angelegt, dass zumindest zwei gänzlich unterschiedlich leistungsstarke Knoten an den
Versuchen beteiligt sind. Dabei kommen auch unterschiedliche Plattformen zum Einsatz.
5.2. Versuchsaufbau
In den folgenden Abschnitten wird der Versuchsaufbau skizziert. Die Details zum Aufbau
der einzelnen Experimente können den Abbildungen in Anhang B.3 sowie den Versuchsprotokollen entnommen werden. Die Protokolle befinden sich auf dem Datenträger.
55
5. Experimenteller Ansatz
5.2.1. Hardwareumfeld
Bei den praktischen Versuchen kam eine Reihe von Computern zum Einsatz. Sie unterscheiden sich in ihrer Prozessorarchitektur, Rechen- und Speicherkapazität, den Netzwerkschnittstellen und im Formfaktor. In Tabelle 5.1 werden die wichtigsten Informationen zu den Rechnern zusammengefasst. Detaillierte Angaben stehen in Anhang B.4.
Auf der einen Seite standen drei unterschiedliche PCs. Diese sind (1) ein Desktop-PC
mit moderner 64-Bit-x86-CPU, 8 GB Speicher und einer Ethernetverbindung, (2) ein
Apple iBook G4 mit PowerPC-CPU und integriertem WLAN und Ethernet, und (3) ein
weiterer Desktop mit einer älteren x86-CPU, USB-WLAN-Adapter und Ethernet.
Daneben standen drei Linutops zur Verfügung. Es handelt sich dabei um kompakte
Rechner, die eine x86-CPU und eine Ethernet-Schnittstelle besitzen. Sie verfügen nicht
über eingebauten Festspeicher. Das Betriebssystem wurde von USB-Sticks gestartet, auf
denen auch die Nutzerdaten gespeichert waren.
Ein weiteres System wurde auf dem 64-Bit-Desktop-PC mit VirtualBox1 virtualisiert.
Zur Vernetzung standen ein WLAN-Router (802.11bg) mit eingebautem Ethernet-Switch
und ein weiterer Switch zur Verfügung. Bei Bedarf wurden die Rechner für einzelne
Experimente über USB mit WLAN- oder Bluetooth-Adaptern bestückt.
Die Versuche wurden in einem Wohnumfeld ausgeführt. In der Wohngegend existieren
viele Funknetze. In einer Messung konnten mit einem Notebook über 20 unterschiedliche
WLAN-Funkzellen erkannt werden. Daneben konnte gelegentlich die Anwesenheit weiterer Bluetooth-Geräte im Umfeld der Versuche registriert werden. Diese waren jedoch
sehr sporadisch.
5.2.2. Softwareumfeld
Es kamen während der Experimente mehrere Betriebssysteme und Java-Laufzeitumgebungen zum Einsatz. Genauere Details können der Tabelle B.2 im Anhang entnommen
werden.
Während der Experimente kamen die Betriebssysteme Debian, Ubuntu Server und openSUSE Linux sowie Mac OS X und Windows Vista zum Einsatz. Tabelle 5.1 gibt einen
Überblick, welches Betriebssystem auf welchem Rechner genutzt wurde.
5.2.3. Beispielaufbau und -ablauf
Eines der Experimente wird detaillierter besprochen. Auf diese Weise werden an einem
Beispiel der Aufbau und der Ablauf der Experimente veranschaulicht. Die weiteren Experimente ähneln dem hier vorgestellten Experiment (Nummer 1, Variante 1, Versuchsreihe
1
http://www.virtualbox.org/
56
5. Experimenteller Ansatz
Hostname
debian
Enif
Hyadum-II
Kajam
linutop (lt)
linutop2 (lt2)
linutopk (ltk)
Hardware
virtuell
iBook G4 (PPC)
x86 Desktop-PC
x64 Desktop-PC
x86 PC
x86 PC
x86 PC
Betriebssystem
Debian Linux
Mac OS X
openSUSE Linux
Vista 64 Bit
Ubuntu Server
Ubuntu Server
Ubuntu Server
Tabelle 5.1.: Kurzübersicht der Rechner, die für die Experimente genutzt wurden. Für
weitere Details siehe Anhang B.4.
2) in Aufbau und Ablauf. Sie unterscheiden sich vor allem in der jeweils untersuchten
Eigenschaft des Systems und in den bewusst gewählten Randbedingungen.
Ziel des Experiments X1v1R22 war es, das Verhalten des Systems in der Gegenwart von
Störungen zu untersuchen.
An den Versuchen waren fünf Knoten beteiligt. Es handelte sich dabei um die Systeme
debian, Enif, Kajam, linutop (lt) und linutop2 (lt2; siehe Tabelle 5.1). Bis auf Enif waren
alle Computer per Ethernet in einem gemeinsamen IP-Subnetz verbunden. Enif, lt und
lt2 waren in einem Ad-Hoc-WLAN (siehe dazu Seite 23 f.) zu einem zweiten IP-Subnetz
verbunden. Das heißt, dass lt und lt2 zwei aktive Netzwerkverbindungen besaßen. Die
Skizze auf Seite 80 stellt diese Konfiguration dar.
Die aus dem Szenario bekannten Rollen (siehe Abschnitt 3.2.2) waren wie folgt verteilt:
Hostname
debian
Kajam
Enif
Rolle
Speicherung (S)
Konverter (C)
Download (D)
Tabelle 5.2.: Die Rollenverteilung in Experiment 1, Variante 1, Versuchsreihe 2.
Auf einen Rechner zur Aufzeichnung (R) wurde bei diesem Experiment verzichtet. Die
Anwendung zur Speicherung (S) wurde immer mit derselben vorbereiten Aufzeichnung
gestartet. Auf den Knoten lt und lt2 lief die Dummy-Anwendung (siehe Abschnitt 4.2.5).
Aufgabe der beiden Rechner war es, jeweils eine alternative Verbindung zwischen Enif
und dem Rest des Netzwerks zu erlauben.
Um Störungen zu erzeugen, wurde ein spezielles Skript auf lt bzw. lt2 verwendet. Wird
es auf einem der beiden Rechner gestartet, deaktiviert es in regelmäßigen Intervallen
den angeschlossenen WLAN-Adapter. Nach einer Wartezeit wird er wieder aktiviert.
2
Gemeint ist Experiment 1, Variante 1, Reihe 2. Die verwendeten Kürzel zur Bezeichnung von Experimenten und Versuchen werden auf Seite 77 näher beschrieben.
57
5. Experimenteller Ansatz
Die Dauer der beiden Phasen WLAN an“ und WLAN aus“ konnten getrennt defi”
”
niert werden. Es wird darauf hingewiesen, dass die so erzeugten Störungen synthetisch
sind. Außerhalb der Versuchsumgebung sind andere Störungen zu erwarten. Für die
Experimente hatte dieses Vorgehen jedoch den entscheidenden Vorteil, dass die Versuche leichter zu wiederholen waren. Zudem konnten die Störungen erzeugt werden, ohne
zusätzliche Geräte einzusetzen. Diese hätten möglicherweise unbeteiligte Nutzer in der
Umgebung beeinträchtigen können.
Die Versuche liefen so ab, dass zunächst das Skript gestartet wurde, welches in regelmäßigen Intervallen das WLAN stört. Es wurde erst nach Abschluss des letzten Versuchs einer Reihe beendet. Der Ablauf eines einzelnen Versuchs begann mit dem Start
der Anwendungen auf allen Knoten. Die Reihenfolge wurde im Versuchsprotokoll festgehalten. Nach einer Wartezeit von etwa einer Minute begann der Download am Knoten
Enif. Nachdem er abgeschlossen war, wurden alle Anwendungen beendet. Damit war der
Versuch abgeschlossen.
Im konkreten Experiment wurden die Versuche mehrmals wiederholt, wobei das für die
Störungen verantwortliche Skript mit unterschiedlichen Parametern entweder auf lt oder
auf lt2 gestartet wurde. Zum Vergleich wurden die Versuche mit demselben Aufbau, aber
ohne die künstlichen Störungen wiederholt.
58
6. Auswertung
6. Auswertung
In den folgenden Abschnitten werden die Ergebnisse der Experimente beleuchtet. Tabelle
B.1 (S. 78) gibt eine Übersicht der durchgeführten Versuche. Die Versuche sind unterteilt
nach Experiment, Variante und Versuchsreihe. Die Versuche eines Experiments haben
einen ähnlichen Ablauf und eine gemeinsame Zielstellung. Die Versuche verschiedener
Varianten eines Experiments unterscheiden sich geringfügig im Messaufbau, wie z.B.
Verteilung der Rollen und der Art der Verbindungen zwischen Nachbarn. Bestimmte
Abkürzungen werden verwendet, um einzelne oder mehrere Versuche zu bezeichnen.
Eine ausführliche Erklärung dieser Bezeichner kann Anhang B.1 entnommen werden.
Das Schema kann ebenso verwendet werden, um auf die Messprotokolle und Rohdaten
der Versuche auf dem Datenträger zuzugreifen.
Die Auswertung der Versuchsergebnisse erfolgt dabei entlang der Hypothesen aus Abschnitt 1.2, die aus diesem Grund hier noch einmal wiedergegeben werden.
1. Das System funktioniert in einem heterogenen Umfeld.
2. Die Kommunikation ist räumlich entkoppelt und
3. erfolgt auf Grundlage von Nachbarschaftsbeziehungen.
4. Das System arbeitet mit einem niedrigen Verwaltungsaufwand.
5. Die zeitliche Entkopplung der Kommunikation ist gewährleistet.
6. Unter den alternativen Übertragungswegen wird ein effizienter gewählt.
7. Gestörte Übertragungswege werden vermieden und
8. unterschiedliche Übertragungstechnologien können genutzt werden.
9. Für die Datenverarbeitung werden die leistungsfähigsten der verfügbaren Geräte
eingebunden.
Welche Versuche vordergründig genutzt wurden, um die einzelnen Hypothesen zu untersuchen, gibt Tabelle 6.1 wieder. Bei der Auswertung werden Versuchsergebnisse, die
mit den Erwartungen übereinstimmen, zusammengefasst. Alle Fälle, in denen die Ergebnisse von den Erwartungen abwichen, werden anhand der vorliegenden Daten genauer
untersucht.
59
6. Auswertung
Untersuchungsaspekt
Heterogenität
Räumliche Entkopplung
Nachbarschaftsbeziehungen
Verwaltungsaufwand
Zeitliche Entkopplung
Alternative Übertragungswege
Gestörte Übertragungswege
Alternative Übertragungstechniken
Alternative Prozessoren
Versuche
alle
alle
alle, außer X3
X2
X5R2
X1v1, X1v2
X1v1R2
X1v2
X3
Tabelle 6.1.: Die untersuchten Aspekte und die Versuche, die genutzt wurden, um Aussagen über die Aspekte zu treffen. Siehe Tab. B.1.
6.1. Heterogenität
ASP wurde für den Einsatz in heterogenen Netzen konzipiert. Dieses Ziel wurde bei der
Implementierung berücksichtigt. Die in Abschnitt 5.1 eingeführten Experimente sind
so angelegt, dass sie eine heterogene Umgebung zugrunde legen. Für die Durchführung
der Experimente standen sehr unterschiedliche Rechner zur Verfügung. Damit sind die
Voraussetzungen erfüllt, um ASP in einem heterogenen Umfeld zu testen.
Es wird angenommen, dass die Implementierung von ASP in dem gegebenen Testumfeld auf allen verfügbaren Plattformen und mit unterschiedlichen Netzwerktechniken
funktioniert. Diese Hypothese konnte in den praktischen Versuchen bestätigt werden.
Bei den Experimenten kamen in Summe sieben verschiedene Rechner zum Einsatz, die
fünf verschiedene Hard- bzw. Softwareplattformen einsetzten. Für die Kommunikation
wurden die Technologien WLAN, Ethernet und Bluetooth verwendet, wobei unterschiedliche Hardware zum Einsatz kam. In sämtlichen Versuchen konnten die ASP-Middleware
und die darauf aufbauenden Anwendungen ausgeführt werden. Die Middleware hat stets
Nachrichten mit mindestens einem benachbarten Broker austauschen können.
Lediglich ein einziger Rechner (linutop2) konnte bei einem der Versuche keine Nachrichten austauschen (X5R2/X5O). Die Ursache für dieses Verhalten konnte anhand der
Logdateien nicht geklärt werden. Aus ihnen geht jedoch hervor, dass die Kommunikation nur teilweise eingeschränkt war. Der einzige Nachbar (Hyadum-II), mit dem linutop2
zum Zeitpunkt des Versuchs kommunizieren konnte, hat linutop2 als Nachbarn registriert. Das lässt darauf schließen, dass Übertragungen in eine Richtung funktionierten.
6.2. Räumliche Entkopplung
Das Ziel der räumlichen Entkopplung wurde bei der Gestaltung der Anwendungsschnittstelle berücksichtigt. Keine Quelle kann eine Nachricht veröffentlichen und dabei einen
60
6. Auswertung
oder mehrere Empfänger spezifizieren. Auf der anderen Seite erfährt keine Senke je den
Absender einer Veröffentlichung. Werden diese Schnittstellen im Experiment erfolgreich
eingesetzt um Veröffentlichungen zu verbreiten, wird angenommen, dass räumliche Entkopplung vorliegt.
In jedem der durchgeführten Experimente nutzten die Anwendungen die ihnen gegebenen Schnittstellen um mit anderen Anwendungen zu kommunizieren – unabhängig davon,
auf welchem Knoten diese aktiv waren. Mit der auf Grundlage von ASP implementierten Middleware ist es demnach möglich, dass Anwendungen mittels Publish/Subscribe
räumlich entkoppelt Daten austauschen können.
6.3. Nachbarschaftsbeziehungen
Grundlage der Betrachtungen in diesem Abschnitt ist die Definition des Begriffs Nachbarschaft. Zwei Broker seien benachbart, wenn sie ohne die Hilfe eines oder mehrerer
weiterer Broker, allein mit den ihnen zur Verfügung stehenden Netzwerkschnittstellen
Daten austauschen können. Es folgen Beispiele in denen Nachbarschaft angenommen
wird.
• Zwei Broker, die in einem Bluetooth-Piconetz organisiert sind.
• Zwei Broker, die in einem gemeinsamen IP-Subnetz verbunden sind.
Bis auf Experiment 3 sind alle durchgeführten Experimente geeignet, die Kommunikation
im Netzwerk auf Grundlage von Nachbarschaftsbeziehungen zu zeigen. Experiment 3
eignet sich nicht, weil alle teilnehmenden Rechner in einem IP-Subnetz verbunden sind
(siehe Abbildung S. 82) und im Experiment keine anderen Kommunikationstechniken zur
Verfügung stehen. Die Kommunikation über Nachbarschaftsbeziehungen ist hier trivial.
Es wird davon ausgegangen, dass die Kommunikation auf Basis von Nachbarschaftsbeziehungen dann korrekt funktioniert, wenn alle Broker eines Netzwerks, die nicht benachbart sind, dennoch Nachrichten austauschen können.
Aus den Experimenten geht deutlich hervor, dass Broker, die nicht benachbart gewesen
sind, dennoch Nachrichten austauschen konnten. Insbesondere waren auch die angebundenen Anwendungen in der Lage mit Hilfe der Middleware Veröffentlichungen zu
verbreiten und zu empfangen.
Der erfolgreiche Nachrichtenaustausch lässt sich zum Beispiel an den Ergebnissen von
Experiment X1v2R1 nachvollziehen. Bei dem Experiment hatte der Rechner linutop2,
an dem der Download ausgeführt wurde, zwei Verbindungen zum Rest des Netzwerks
(siehe Skizze auf Seite 80). Eine Verbindung bestand über ein Ad-Hoc-WLAN, die andere über Bluetooth. In jedem der Versuche konnte der Anwendung der Download, also die
transparent verarbeitete Veröffentlichung, zugestellt werden, obwohl Quelle und Senke
nicht benachbart waren und weder auf Ebene von IP noch Bluetooth direkt kommunizieren konnten. Parallel dazu wurden neben anderen Kontrollnachrichten vor allem
61
6. Auswertung
Ankündigungen verbreitet. Tabelle 6.2 illustriert dies anhand einiger Zahlen. Die Werte
geben wieder, wie viele Ankündigungen im Verlauf der Versuche beim Knoten linutop2
eingingen. Alle Ankündigungen wurden ursprünglich von Brokern versandt, mit denen
der Broker auf linutop2 nicht direkt kommunizieren kann.
Versuch
Ank. S
Ank. C
A
11
9
B
13
11
C
14
11
D
13
11
E
8
6
F
14
11
G
13
10
H
13
11
I
14
11
J
11
9
K
13
11
L
13
11
Tabelle 6.2.: Anzahl der in Experiment 1, Variante 2, Reihe 1 bei linutop2 eingegangenen
Ankündigungen der gespeicherten Aufzeichnung (Ank. S) und der konvertierten Aufzeichnung (Ank. C).
6.4. Verwaltungsaufwand
Experiment 2 wurde speziell durchgeführt um den Verwaltungsaufwand zu ermitteln, den
die ASP-Implementierung verursacht, um ihre Aufgaben zu erfüllen. Bevor detailliert auf
die Ergebnisse eingegangen wird, wird erläutert, wie die Datenmengen gezählt wurden
und wie der Verwaltungsaufwand berechnet wurde.
Die Erfassung der Datenmengen folgte dem in Abschnitt 5.1 vorgestellten Ansatz für
Experiment 2. Es wurden grundsätzlich nur die Nachrichten und ihr Umfang auf Ebene der Broker erfasst. Bei der weiteren Berechnung wurden alle übertragenen Daten
außer der Nutzlast, die mit Veröffentlichungen transportiert wurde, als Verwaltungsdaten betrachtet. Das bedeutet, dass insbesondere Ankündigungen, Abonnements, deren
Kündigungen usw. zu 100 % als Verwaltungsdaten betrachtet wurden.
Um die Effizienz der Implementierung zu bestimmen, wurde zunächst bestimmt, wie umfangreich die Nutzdaten sind. Das bedeutet, dass ermittelt wurde wieviele Audiodaten
in jedem der Versuche zu transportieren waren. Diese Zahl ist nicht bei allen Versuchen
identisch, sondern schwankt leicht. Es kam bei der Übertragung der Aufzeichnung zum
Speicher zu vereinzelten Verlusten von Veröffentlichungen. Die Gründe dafür werden
an anderer Stelle diskutiert. Verlust bei der Übertragung der Audiomitschnitte bedeutet, dass die Datei, die in das Archiv geschrieben wird, gegenüber einem vollständig
übertragenen Mitschnitt entsprechend kleiner ist. Dadurch ändert sich auch der Umfang der Daten, die an den Prozessor weitergegeben werden. Und auch die komprimierte
Audiodatei hat eine andere Größe, wenn sich die Ausgangsdaten ändern.
Die Vorgehensweise lässt sich an zwei Beispielen verdeutlichen. Bei Versuch X2R2/X2A
kam es nicht zum Verlust von Veröffentlichungen. Es wurden also alle 1105 Veröffentlichungen (1.413.166 Byte Audiodaten) vom Rekorder übertragen und der Speicheranwendung zugestellt. Zum Konverter wurden 1.413.210 Byte1 übertragen. Die komprimierte
Audiodatei hat eine Größe von 255515 Byte. In Summe sind dies 1413166 + 1413210 +
1
1.413.166 Byte + 44 Byte zusätzlicher Dateikopf
62
6. Auswertung
255515 = 3081891 Byte. Bei Versuch X2R2/X2L kam es zum Verlust einer Veröffentlichung. Die Zahlen, die sich in diesem Fall ergeben, sind 1413166 + 1411930 + 255688 =
3080784 Byte. Die Nutzdaten umfassen demnach bei Versuch X2A 3.081.891 Byte und
bei Versuch X2L 3.080.784 Byte. Die Effizienz wurde durch Division des Umfangs der
eben beschriebenen Nutzdaten durch den Datenumfang aller versendeten Nachrichten
berechnet. Dies hat zur Folge, dass redundate Übertragungen von Nutzdaten ebenfalls
als Verwaltungsaufwand gewertet werden. Unter idealen Bedingungen sollte jede Veröffentlichung nur so oft wie nötig übertragen werden.
Die Gültigkeit von Ankündigungen hat einen Einfluss auf das von der Middleware generierte Datenvolumen. Haben Ankündigungen eine kurze Gültigkeit, werden sie häufig
verlängert und es werden entsprechend mehr Ankündigungen im Netzwerk verbreitet.
Für alle Versuche zu Experiment 2 wurden folgende Werte gewählt:
• Rekorder: 4.000 ms
• Speicher: 20.000 ms
• Konverter: 10.000 ms
Für die Ankündigungen des Rekorders wurden 4 Sekunden gewählt, damit bei Bedarf
besonders schnell auf Störungen auf dem Übertragungsweg vom Rekorder zum Speicher
reagiert werden kann.
Es wurden zwei Versuchsreihen des X2 aufgenommen. Im folgenden werden die Ergebnisse der Versuche aus X2R2 betrachtet. X2R1 wurde verworfen. Die Versuche wurden mit
einer Softwareversion ausgeführt, die noch unvollständig war und einige kleinere Fehler
enthielt. Allerdings sind die vorläufigen Zahlen, die sich aus der Auswertung von X2R1
ergaben, durchaus mit denen von X2R2 vergleichbar.
Der Ablauf der Versuche war folgender: Zunächst wurden die Speicher-, die Konverterund die Downloadanwendung gestartet. Nach einer Minute Wartezeit wurde der Rekorder im Wiedergabemodus gestartet, d.h. das eine definierte und immer identische
Aufzeichnung aufgenommen wurde (siehe Abschnitt 4.2.1). Nach Abschluss der Aufzeichnung, wurde der Download gestartet. Nach erfolgtem Download wurden alle Programme beendet. Alle im Verlauf des Versuchs übertragenen ASP-Nachrichten gingen
in die Auswertung ein.
Die Auswertung der protokollierten Daten aus den Versuchen ergab nach deren Aufbereitung eine durchschnittliche Effizienz der Implementierung von 91,5 %. Abbildung 6.1
bietet einen genaueren Blick auf die Ergebnisse der Auswertung. Es fällt auf, dass bei
der Mehrheit der Versuche eine Effizienz von rund 97 % erreicht werden konnte.
Daneben fallen die anderen Versuche auf, bei denen die Effizienz auf bis zu 78 % (X2R2/
X2E) sank. X2R2/X2P wird weiter unten getrennt betrachtet. Der Grund für das Absinken der Effizienz sind redundate Übertragungen von Veröffentlichungen des Rekorders.
Diese Redundanz wurde durch Änderungen der Routen ausgelöst. Nach dem der neue
63
6. Auswertung
Pfad mit einem Abonnement aktiviert wurde, wurden bisher erzeugte Veröffentlichungen aus dem Cache des Publishers übertragen. Abhängig vom Zeitpunkt der Routenänderungen hatte sich der Cache für Veröffentlichungen bereits unterschiedlich stark
gefüllt.
Die niedrige Effizienz in Versuch X2R2/X2P kann nicht auf dieselbe Weise erklärt werden. Es kam zu einer doppelten Übertragung der gespeicherten Aufzeichnung zum Konverter. Sie war des Ergebnis einer nicht abgefangenen Race Condition. Es kam zu einer
zeitlichen Überschneidung von drei Ereignissen. Zunächst empfing der Konverter eine
Folgeankündigung des gespeicherten Mitschnitts (1). Zu diesem Zeitpunkt hatte der
Konverter Interesse an der Veröffentlichung und hatte diese bereits abonniert. Nur circa
90 ms nach dem Eintreffen der Ankündigung verschickte der Konverter die Kündigung
des Inhalts (2). Das verzögerte Abonnement, welches durch die Folgeankündigung ausgelöst wurde, wurde etwa 20 ms nach der Kündigung verschickt (3).
6.5. Zeitliche Entkopplung
Mit Experiment 5 diente das aufwändigste aller durchgeführten Experimente dem gezielten Test der zeitlichen Entkopplung des implementierten Systems. Alle Aussagen und
Ergebnisse, die sich auf die Versuchsreihe X5R2 beziehen, lassen den Versuch X5R2/X5K
gänzlich außen vor. Bei diesem Versuch kam es zu einem Bedienfehler. Im Gegenzug
wurde ein Versuch mehr durchgeführt, als ursprünglich geplant gewesen war. Die Versuchsanordnung ist auf Seite 81 abgebildet.
Es wird davon ausgegangen, dass das implementierte System die Kommunikation zwischen Publisher und Subscriber zeitlich entkoppelt, falls die Subscriber Veröffentlichungen unter bestimmten Randbedingungen empfangen können. Diese Randbedingungen
umfassen, dass der oder die Subscriber während der Ausführung der Operation Publish
nicht aktiv oder empfangsbereit waren. Der Versuchsablauf von Experiment 5 stellt diese
Bedingung dadurch sicher, dass auf zwei unterschiedlichen Rechnern nacheinander die
konvertierte Audiodatei heruntergeladen wird. Die Download-Anwendungen und mit ihnen die Middleware sind auf keinem der beiden Rechner zeitgleich aktiv.
In allen Versuchen des Experiments 5, Reihe 2 konnte auf beiden Knoten die konvertierte
Datei erfolgreich heruntergeladen werden. Das lässt den Schluss zu, dass das implementierte System die zeitliche Entkopplung korrekt umsetzt.
Die Aussage wird ebenfalls durch X5R1 untermauert. Allerdings müssen Einschränkungen gemacht werden. Der zweite Download konnte in einigen Fällen nicht korrekt abgeschlossen werden. Diese Probleme stehen jedoch in keinem Zusammenhang zur zeitlichen
Entkopplung. Bei den Versuchen X5R1/X5B, /X5F und /X5G musste der Versand der
Veröffentlichung auf der Verbindung zu dem zweiten Rechner (linutop2) wiederholt werden. Aufgrund eines Softwarefehlers schlug die Wiederholung fehl. Dieser Fehler wurde
bis zur Ausführung der Versuche X5R2 korrigiert. Die Situation in Versuch X5R1/X5O
wurden bereits in Abschnitt 6.1 beschrieben.
64
Datenmenge [Bytes]
0
500000
1000000
1500000
2000000
2500000
3000000
3500000
4000000
4500000
5000000
A
B
C
D
E
G
H
I
J
K
Versuch
Aufnahme (Nutzdaten)
Summe aller Daten (inkl. Kontrollnachrichten)
F
L
M
N
O
Q
R
S
gespeicherte Aufnahme (Nutzdaten)
konvertierte Aufnahme (Nutzdaten)
Effizienz (netto Soll : brutto Ist)
P
T
60 %
65 %
70 %
75 %
80 %
85 %
90 %
95 %
100 %
6. Auswertung
Abbildung 6.1.: Der Verwaltungsaufwand in Experiment 2, Reihe 2.
65
Effizienz
6. Auswertung
Es wurde weiterhin beobachtet, dass sich die Reaktionszeiten des Systems durch das
Caching von Veröffentlichungen verbessern. Der Konverter konnte sämtliche Publikationen, die von linutop2 abonniert wurden, aus dem Cache zustellen. Im Cache lag die
Veröffentlichung bereits vor, weil linutop diese zuvor abonniert hatte. Die gespeicherte
Aufnahme wurde daraufhin abonniert, übertragen, konvertiert, im Cache abgelegt und
an die Downloadanwendung auf linutop übertragen. In Abbildung 6.2 werden die Zeiten
zwischen Versand des Abonnements und dem Eingang der Veröffentlichung verglichen.
12000
Download auf linutop
Download auf linutop2
10000
Zeit [ms]
8000
6000
4000
2000
0
A
B
C
D
E
F
G
H
I
J
L
Versuch
M
N
O
P
Q
R
S
T
U
Abbildung 6.2.: Ein Vergleich der Downloadzeiten der konvertierten Audioaufnahme aus
X5R2. Durch den Einsatz des Caches für Veröffentlichungen konnte die
Übertragungszeit beim zweiten Download deutlich reduziert werden.
6.6. Alternative Übertragungswege
Das Routing von Nachrichten ist eine der Kernaufgaben von ASP. Um die (korrekte)
Funktionsweise des Routings zu ermitteln, wurde eine Vielzahl von Versuchen durchgeführt. In diesem Abschnitt werden die Ergebnisse der Versuche besprochen, die der
Middleware die Wahl zwischen unterschiedlichen Transportwegen ließen. In Abschnitt
6.9 werden die Ergebnisse von Versuchen beschrieben, die unterschiedlich leistungsstarke Prozessoren gegenüberstellen.
Die Experimente X1v1 und X1v2 untersuchen, ob das implementierte System Nachrichten korrekt und effizient transportiert. In X1v1R1 wurden Übertragungswege mit
unterschiedlichen Bandbreiten gegenübergestellt. X1v1R2 wurde durchgeführt, um das
Routing in Gegenwart von Störungen zu überprüfen. Die Middleware musste in X1v2R1
zwischen den beiden unterschiedlichen Netzwerktechniken WLAN und Bluetooth (siehe
Abschnitt 2.8.3 und 2.8.4) wählen.
Die Netzwerktopologie in den Versuchen X1v1R1 war so angelegt, dass der Download der
konvertierten Audiodatei über eine von zwei möglichen Verbindungen übertragen wer-
66
6. Auswertung
den musste. Beides waren WLAN-Verbindungen nach 802.11bg. Eine der beiden Verbindungen wurde während der Versuche mit einer festen Bitrate von 1 MBit/s, 11 MBit/s,
54 MBit/s oder mit automatischer Bitratenwahl betrieben, die andere durchgängig mit
automatischer Bitratenwahl. Durchsatzmessungen im Vorfeld der Versuche ergaben, dass
sich die erzielten Nettodatenraten bei 54 MBit/s nur geringfügig von denen bei automatischer Bitratenwahl unterschieden. Dies legt den Schluss nahe, dass bei automatischer
Bitratenwahl meistens 54 MBit/s verwendet wurden.
Vor diesem Hintergrund sind deshalb zunächst die Ergebnisse bei 1 und 11 MBit/s interessant. Es wurde eine Auswertung der Kosten vorgenommen, die die Metrik für Ankündigungen ermittelte, die bei dem Computer eingingen, auf dem der Download ausgeführt
wurde. Die durchschnittlichen Kosten der beiden alternativen Verbindungen wurden verglichen. Erwartungsgemäß sollte die Veröffentlichung auf der Verbindung transportiert
worden sein, die die niedrigsten Kosten hat. Hierzu ist anzumerken, dass es bei den
Versuchen bei 11 MBit/s einmal zum Verlust der Veröffentlichung kam. In allen anderen
Versuchen von X1R1 wurde die Veröffentlichung zugestellt.
Bei 1 MBit/s wählte die vorliegende Implementierung von ASP in 83 % der Versuche die
erwartete Route, bei 11 MBit/s waren es 85 %. Es gab zwei unterschiedliche Ursachen,
dass in Ausnahmefällen die vermeintlich langsamere Verbindung für die Übertragung
genutzt wurde. Der häufigere Grund war, dass Ankündigungen entlang der besseren
Verbindung (vorübergehend) überhaupt nicht oder zu spät eintrafen. Daraufhin wurde
die Route geändert und für den Rest des Versuchs beibehalten. Der andere Grund war,
dass eine der Verbindungen überhaupt nicht zustande kam oder in einer frühen Phase
des Experiments abbrach wie dies z.B. in Versuch X1v1R1@1M/X1I der Fall war. Hier
hat die Implementierung die einzige funktionierende Verbindung gewählt.
Tabelle 6.3 fasst die ermittelten durchschnittlichen Kosten über alle Versuche X1R1 zusammen. Es sind die Kosten der Pfade vom Speicher (Quelle) zum Download (Senke)
unter Einbeziehung des Konverters (Prozessor). Genauere Angaben können den Abbildungen B.6 bis B.9 im Anhang B.5 entnommen werden.
Aus der Tabelle geht hervor, dass sich die über linutop2 ermittelten Kosten in den Versuchen, bei denen linutop2 mit 54 MBit/s bzw. automatischer Bitratenwahl funkte, nur
minimal von den Werten entlang von linutop unterschieden. Umso überraschender ist es,
dass sich zum Beispiel bei den Versuchen mit 54 MBit/s in 10 von 12 Fällen die Route
über linutop durchsetzen konnte, die (immer) automatische Bitratenwahl nutzte. Zieht
man die Ergebnisse aus den Versuchen hinzu, in denen beide Verbindungen automatische Bitratenwahl verwendeten, zeichnet sich ab, dass die Verbindung über linutop im
Durchschnitt geringfügig besser eingeschätzt wurde.
Um die Ursache dieser Beobachtung zu klären, wurde für sämtliche Versuche aus X1R1
zusätzlich der Wert des Feldes TTL aus dem Nachrichtenkopf der Ankündigungen ausgewertet. Die Versuche bei 1 MBit/s und 11 MBit/s werden im folgenden nicht weiter
berücksichtigt, da sich die Kosten der beiden alternativen Routen erwartungsgemäß stark
unterscheiden. Mit Hilfe der TTL kann nachvollzogen werden, über wie viele Knoten eine
67
6. Auswertung
Nachricht bereits weitergeleitet wurde. Die Auswertung ergab die folgenden Beobachtungen. Bei 54 MBit/s sind die durchschnittlichen Kosten einer Route in 11 von 12 Fällen
dann geringer, wenn auch die Ankündigungen im Durchschnitt über weniger Knoten weitergeleitet wurden. Bei automatischer Bitratenwahl ist das Verhältnis 13 aus 17, wenn
man die Versuche unberücksichtigt lässt, in denen über linutop gar keine Ankündigungen
empfangen wurden. Tabelle 6.3 gibt die durchschnittliche Anzahl der Hops aller Ankündigungen des Downloads wieder. Es werden nur die Ankündigungen berücksichtigt, die
bei Enif eingingen.
Bitrate
bei linutop2
1 MBit/s
11 MBit/s
54 MBit/s
auto
Kosten Hops
via linutop
2900,31
2,6
2813,26
2,4
2752,62
2,3
2739,08
2,3
Kosten Hops
via linutop2
6363,26
2,5
3228,32
2,6
2752,66
2,6
2753,04
2,7
Tabelle 6.3.: Die durchschnittliche Kosten für die Übertragung der konvertierten Audiodatei in den Versuchen aus Experiment 1, Variante 1, Reihe 1. Daneben ist die
durchschnittliche Anzahl von Hops gegeben, die die entsprechenden Ankündigungen auf dem Weg zur Downloadanwendungen zurückgelegt haben.
Es wird vermutet, dass die Art und Weise mit der Ankündigungen im Netzwerk geflutet werden, die Hauptursache für die Unterschiede der Kosten der ansonsten nahezu
gleichwertigen Pfade ist. Jeder Broker leitet eine eingehende Ankündigung an alle Nachbarn mit Ausnahme des Absenders weiter. Eine einmal erhaltene Ankündigung wird
kein zweites Mal weitergeleitet. Die Weiterleitung an die Nachbarn erfolgt als Reihe
aufeinanderfolgender Unicasts. Dabei kann sich eine zeitliche Abfolge ergeben, wie sie in
Abbildung 6.3 dargestellt ist. Die erste Ankündigung, die b4 erhält, hat bereits drei Hops
zurückgelegt. Angenommen alle Verbindungen sind äquivalent in Bezug auf Bandbreite
und Latenz. Unter diesen Umständen hat die Metrik für die Ankündigung, die bei b4 zuerst eingeht, bereits höhere Kosten ermittelt als sie sie für die Übertragung von b1 zu b4
ermittelt. Im Ergebnis haben die Ankündigungen, die einen längeren Weg zurückgelegt
haben höhere Kosten.
Es wurden bereits Vorschläge gemacht, wie die Verbreitung von Ankündigungen weiter
optimiert werden kann [Ris09b]. Zusätzliche Optimierungen sind notwendig, damit sich
die Ankündigungen mit den niedrigsten Kosten ausbreiten und nicht jene, die lediglich
am schnellsten weitergeleitet werden.
Ein weiterer Erklärungsansatz ist, dass die Übertragungseigenschaften der Funkstrecke
zwischen linutop und Enif während der Versuche besser waren, als zwischen linutop2
und Enif. Anhand der vorliegenden Zahlen, kann darüber jedoch keine Aussage gemacht
werden. Die Versuche sind ungeeignet, die genauen (physikalischen) Übertragungseigenschaften der Verbindungen zu ermitteln.
68
6. Auswertung
b1
1.
b2
3.
2.
b4
5.
4.
b3
Abbildung 6.3.: Der Broker b1 verschickt eine Ankündigung. Gezeigt werden die ersten
fünf Schritte einer möglichen zeitlichen Abfolge bei der Verbreitung der
Nachrichten.
Obwohl die Routen über linutop häufig bevorzugt wurden, waren sie bei 54 MBit/s im
Durchschnitt nicht immer die günstigeren. Eine genauere Untersuchung der Versuche
X1R1@54M/X1C, /X1F, /X1G, /X1I und /X1L ergab, dass die gewählte Route unmittelbar vor Aktivierung eines Pfades die attraktivere war. Die Kosten der Routen über
linutop und linutop2 unterschieden sich zum entscheidenden Zeitpunkt dabei um weniger als ein Prozent. Bei automatischer Bitratenwahl auf beiden Verbindungen stellte
sich dieser Zustand nur zweimal ein (X1R1@auto/X1E, /X1G). In jedem Falle sind die
festgestellten Unterschiede der durchschnittlichen Kosten vergleichsweise gering.
Für das Routing in Gegenwart von unterschiedlich leistungsfähigen Verbindungen wird
festgehalten, dass die vorhandene Implementierung zuverlässig geeignete Routen wählt.
Nachrichten werden auf den besten verfügbaren Verbindungen übertragen. Sind zwei alternative Routen (nahezu) äquivalent, bevorzugte das System jedoch bestimmte Routen.
Es ist vorstellbar, dass dies in größeren Szenarien und bei höherem Datenaufkommen zu
Überlastung einzelner Verbindungen führen kann.
6.7. Gestörte Übertragungswege
In den Versuchen X1v1R2 wurde untersucht, wie sich das System verhält, wenn neben
einer intakten Route eine zweite, gestörte Route existiert. Im Laufe eines Versuchs musste
die Middleware eine der beiden Routen zur Übertragung nutzen. Aufbau und Ablauf
dieses Versuchs wurden bereits in Abschnitt 5.2.3 exemplarisch vorgestellt.
Die Versuche wurden in mehreren Gruppen wiederholt. Eine der beiden Funkverbindungen zwischen dem Rechner, an dem der Download ausgeführt wurde und dem Rest
des Netzwerks wurde nicht gestört. Die andere Verbindung wurde gezielt gestört. In regelmäßigen Intervallen wurde die Verbindung kurzzeitig deaktiviert. Die Versuche wurden so ausgeführt, dass die gestörte Verbindung 80 % der Zeit, 90 % und zum Vergleich
auch 100 % der Zeit aktiv und damit ungestört war. Die Rollen der gestörten und ungestörten Verbindung wurden getauscht. Bei den insgesamt 59 ausgeführten Versuchen
69
6. Auswertung
dieses Experiments konnte der konvertierte Audiomitschnitt dreimal nicht erfolgreich
zugestellt werden. Jeder dieser Verluste von Veröffentlichungen trat in Versuchen auf,
bei denen die gezielten Störungen am stärksten waren.
Wie beispielsweise dem Diagramm in Abb. B.10 (im Anhang) gut zu entnehmen ist,
spricht die Metrik gut auf die gestörten Verbindungen an. Das bedeutet, dass die Kosten
entlang der gestörten Verbindung höher sind als die Kosten, die für die Übertragung über
die ungestörte Verbindung ermittelt wurden. Zum Vergleich zeigt Abb. B.11 die gemessenen Kosten derselben Anordnung ohne die künstlichen Störungen. Da die Messungen
der Verlustrate periodisch ausgeführt werden, ist es möglich, dass nicht jede Störung erkannt wird. Tritt eine der Auszeiten zwischen zwei Messungen auf und finden in diesem
Zeitraum keine anderen Übertragungen statt, ist die implementierte Middleware nicht
in der Lage, die Störung zu erkennen.
In 54 von 59 Versuchen (92 %) hat die Middleware für die Übertragung diejenige Verbindung gewählt, die durchschnittlich die niedrigeren Kosten aufwies. Bei fünf Übertragungen wurde die gestörte Verbindung ausgewählt. Jede dieser fünf gestörten Routen
wurde zum Zeitpunkt der Aktivierung des Pfades als die bessere eingeschätzt. Das bedeutet, dass die Störungen bis zu diesem Zeitpunkt nicht erkannt worden sind. Da die
durchschnittlich für diese Verbindungen ermittelten Kosten jedoch über denen der ungestörten Verbindungen lagen, bedeutet dies, dass die Störungen bis zum Ende jedes der
Versuche noch erkannt wurden.
Zusammenfassend lassen die Ergebnisse die Aussage zu, dass die vorliegende Implementierung in der Lage ist, bei erkannten Störungen auf andere, ungestörte Routen
auszuweichen.
6.8. Alternative Übertragungstechniken
In einer Variante des Experiments 1 wurde erneut der Rechner, auf dem der Download
der Aufzeichnung stattfinden sollte, über zwei Verbindungen mit dem Rest des Netzwerks verbunden. Eine Verbindung wurde über WLAN hergestellt, die andere mittels
Bluetooth.
In jedem der Versuche konnte die Veröffentlichung übertragen werden. Einmal wurde
dafür die Verbindung über Bluetooth genutzt. In allen anderen Fällen wurde die WLANVerbindung genutzt. Das deckt sich mit den Erwartungen. Die WLAN-Verbindung hat
eine höhere Bandbreite. In vorbereitenden Tests wies sie zudem eine geringere Übertragungslatenz auf. Im Versuch X1v2R1/X1E, bei dem die Veröffentlichung über Bluetooth
übertragen wurde, riss die WLAN-Verbindung ab und konnte bis zum Ende des Versuchs
nicht wieder aufgebaut werden. Über die WLAN-Verbindung konnte bis zum Ausfall
nur eine einzige Ankündigung des konvertierten Audiomitschnitts übertragen werden.
Danach wurden keine weiteren Ankündigungen mehr auf diesem Wege zugestellt. Die
Route über die Bluetooth-Verbindung war somit zum Zeitpunkt des Abonnements der
einzige verfügbare Weg.
70
6. Auswertung
Eine weitere Beobachtung wurde bei der Auswertung der Zahlen aus X1v2R1 gemacht.
Insbesondere zu Beginn der Versuche, also noch während der Wartezeit bevor das Abonnement des Audiomitschnitts ausgelöst wurde, traten entlang der WLAN-Verbindung
häufige Verbindungsverluste auf. Dies führte dazu, dass die von der Metrik ermittelten
durchschnittlichen Kosten für die Route entlang der WLAN-Verbindung von Versuch zu
Versuch deutlich schwanken.
Eine erste Vermutung dazu war, dass die Bluetooth-Übertragungen bzw. die Übertragungsversuche die WLAN-Verbindung beeinträchtigen würden. Dazu wurde ein getrenntes Experiment durchgeführt. ASP und die Middleware spielten dabei keine Rolle. Es
ging lediglich darum zu ermitteln, ob es im verwendeten Versuchsaufbau einen signifikanten Zusammenhang zwischen den Bluetooth-Aktivitäten und der WLAN-Verbindung
gab. Diese Vermutung konnte deutlich bestätigt werden. Im Experiment sendete ein Linutop über ein Ad-Hoc-WLAN regelmäßig ICMP-Echo-Requests (ping; siehe [Pos81])
an einen zweiten Linutop, der zusätzlich mit einem Bluetooth-Adapter ausgestattet war.
Auf dem zweiten Gerät wurde ein Skript aktiviert, dass in regelmäßigen Abständen zwanzig Inquiry Scans ausführte. Im Protokoll der ICMP-Antwortzeiten sind diese Scans klar
wiederzuerkennen (siehe Grafik 6.4). Die genauen Umstände dieser Wechselwirkungen
wurden nicht untersucht. Für die Versuche aus X1v2R1 war es ausreichend zu wissen,
dass eine solche negative Wirkung von Bluetooth auf die WLAN-Verbindung existierte.
25
ICMP Echo Antwortzeit
Zeit [ms]
20
15
10
5
0
0
100
200
300
ICMP Sequenznummer
400
500
Abbildung 6.4.: Bluetooth Inquiry Scans stören in der Versuchsumgebung den Datenaustausch über WLAN – erkennbar an den 20 ausgeprägten Lücken.
Als Ergebnis des Experiments X1v2R2 wird festgehalten, dass die implementierte Middleware korrekt zwischen den verfügbaren Übertragungstechniken wählt. Die leistungsfähigste Technik kommt zum Einsatz und die Metrik bildet die Grundlage dieser Entscheidung. Im Übrigen ist die Übertragungstechnik für die Anwendungen, die die Middleware
nutzen, transparent.
6.9. Alternative Prozessoren
Die Versuche zu Experiment 2 beschäftigten sich ausführlich mit dem Routing entlang
unterschiedlicher Verbindungen. In diesem Abschnitt werden die Ergebnisse aus Expe-
71
6. Auswertung
riment 3 diskutiert. Die Versuchsskizze ist auf Seite 82. Ziel der Versuche dieses Experiments war es, das Verhalten zu untersuchen, wenn mehrere Prozessoren zur Verfügung
stehen. Die Rolle des Konverters, wie sie im Szenario auftritt (siehe Abschnitt 3.3.1)
wird dabei von mehr als nur einer Anwendung übernommen. Die Anwendungen werden
auf unterschiedlichen Computern ausgeführt, die je nach Variante über unterschiedlich
oder gleich leistungsfähige Hardware verfügen.
Damit allein die Leistungsfähigkeit der Prozessoren über die Wahl der Route entscheidet,
wurde der Einfluss der Netzwerkanbindung in den Versuchen so weit wie möglich minimiert. Zu diesem Zweck waren alle der vier Rechner, die in Experiment 3 zum Einsatz
kamen in einem IP-Subnetz verbunden. Alle hatten eine Fast-Ethernet-Verbindung zu
einem gemeinsamen Switch. Als Plattform kamen auf drei der vier Rechner Linux und
auf dem vierten Mac OS X zum Einsatz.
In Variante 1 von Experiment 3 wurden zwei Linutops mit baugleicher Hardware als Prozessoren verwendet. Auch die Softwareausstattung war identisch. Da die Betriebsbedingungen der beiden Prozessoren identisch waren, war zu erwarten, dass die Konvertierung
über alle Versuche gesehen zwischen beiden Linutops gleichverteilt ist. Die Auswertung
hat jedoch ein Verhältnis von ungefähr 2:1 zu Gunsten von linutop1 ergeben. Das heißt,
linutop1 hat bei zwei Dritteln der Versuche die Konvertierung übernommen. Der Versuchsablauf wurde daraufhin leicht abgewandelt, um die Diskrepanz von Erwartung und
beobachtetem Ergebnis aufzuklären. Bei Reihe 1 wurden die beiden Prozessoren unmittelbar nacheinander mit einer geringen Verzögerung gestartet. In den Versuchen der
Reihen X3v1R2 und X3v1R3 wurde zwischen dem Start des einen Prozessors und dem
Start des zweiten Prozessors 30 s gewartet. Bei Reihe 2 wurde linutop zuerst gestartet, bei Reihe 3 linutop2. Das Ergebnis ist eindeutig. Es kam immer der Prozessor zum
Einsatz, der zuerst gestartet wurde.
In Variante 2 des Experiments wurden die Prozessoren von Anfang an mit zeitlichem
Versatz gestartet. In Variante 2 waren die Prozessoren unterschiedlich leistungsstark.
Für den leistungsstärkeren wurde beim Umwandeln einer Referenzaudiodatei ein Geschwindigkeitsfaktor von 6,3 ermittelt und für den schwächeren 0,9. Gleichzeitig sind
dies die Zahlen, die der jeweiligen Konverteranwendung als Berechnungsgrundlage für
die Abschätzung des Aufwands der Konvertierung dienten. Die Auswertung der Logdateien der Middleware aus den Versuchen X3v2R1 bis X3v2R3 ergab dasselbe Resultat
wie zuvor in Variante 1 von Experiment 3. Es kam immer derjenige Prozessor zum Einsatz, der früher gestartet wurde. Dies galt auch dann, wenn der leistungsschwächere
zuerst gestartet wurde.
Die Ursache dieses Effekts konnte anhand der erfassten Protokolle gefunden werden.
Sie kann jedoch auch unabhängig davon theoretisch mit der Funktionsweise der implementierten Middleware begründet werden. Die Verlängerung von Ankündigungen ist ein
Mechanismus, der vorgesehen ist, um aktive Pfade aufrechtzuerhalten. Verlängert ein
Broker die Gültigkeit einer Ankündigung mit einer Folgeankündigung, müssen interessierte Subscriber den Pfad mit einem erneuten Abonnement reaktivieren. Bleibt das
Abonnement aus, weil die Verbindung des Subscribers zum Rest des Netzwerks abgebro-
72
6. Auswertung
chen ist oder ein Broker abgestürzt ist, wird der Pfad verworfen. Folgeankündigungen
können von Duplikaten oder alten Ankündigungen an ihrer fortlaufenden Sequenznummer im Kopf der Nachrichten unterschieden werden. Kündigen mehrere Prozessoren
Veröffentlichungen derselben ASP ID an, und verlängern sie ihre Ankündigungen im selben Intervall – was bei den Versuchen der Fall war – setzen sich die Ankündigungen des
Prozessors bzw. seines Brokers durch, der die höchsten Sequenznummern verwendet. Das
ist in der Regel der Broker, der am längsten aktiv ist. Verwendet einer der Prozessoren
ein kürzeres Intervall, wird er sich auf Dauer auch dann durchsetzen, wenn er nicht seit
längstem aktiv ist.
Die Versuche zeigen, dass dieses Fehlverhalten in der angefertigten Implementierung
auftritt. Das vorliegende System eignet sich deshalb nur unter Einschränkungen für den
gleichzeitigen Betrieb mehrerer identischer Prozessoranwendungen. Verwenden alle Prozessoren unterschiedliche ASP IDs, kann das Problem beim parallelen Betrieb mehrerer
Prozessoren nicht auftreten. Bei Verwendung identischer IDs handelt es sich jedoch um
ein grundsätzliches Problem. Das Verhalten eines ASP-Systems unter diesen Umständen
wurde bislang weder ausgeschlossen, noch spezifiziert. Da es grundsätzlich gewünscht ist,
dass mehrere alternative Prozessoren zum Verarbeiten einer Veröffentlichung existieren,
kann das Problem nicht durch entsprechende Vorgaben ausgeschlossen werden. Der geschilderte Fall muss demnach spezifiziert werden. Dies wird an dieser Stelle jedoch nicht
vorgenommen, da es nicht Bestandteil einer Evaluierung ist.
73
7. Schlussbetrachtungen
7. Schlussbetrachtungen
In diesem Kapitel wird die Arbeit zunächst zusammengefasst. In einem weiteren Abschnitt wird ein Ausblick auf mögliche zukünftige Entwicklungen und Untersuchungsschwerpunkte gegeben.
7.1. Zusammenfassung
In dieser Arbeit wurde mit Announcement/Subscription/Publication (ASP) ein System
untersucht, das die Kommunikation mittels Publish/Subscribe in heterogenen Netzwerken ermöglicht.
Erstmals wurde auf Grundlage von ASP eine Kommunikationsmiddleware für den Einsatz in einem realen Umfeld implementiert. Offene Fragen des Ansatzes, die im Vorfeld der Implementierung zu klären waren, wurden erläutert. In einem sehr heterogenen
Umfeld ist das Szenario angesiedelt, in dem das implementierte System geprüft wurde.
Dazu wurden die Konzepte von ASP auf das Szenario abgebildet. Aus dem Szenario
wurden gezielt Experimente abgeleitet, um die zentralen Eigenschaften von ASP in einer definierten Umgebung praktisch zu erproben. In über 200 Einzelversuchen wurde
das implementierte System getestet.
Die Auswertung der Testergebnisse ergab, dass die konkrete ASP-Middleware in der Lage
war, die große Mehrheit der Anforderungen zu erfüllen. Das entwickelte System konnte
erfolgreich die räumliche und zeitliche Entkopplung moderner Publish-Subscribe-Systeme demonstrieren. In allen Versuchen kam die Middleware auf mehreren Plattformen
erfolgreich zum Einsatz. Auch unterschiedliche Verbindungstechniken bereiteten dem
System keine Schwierigkeiten. Die semantische Entkopplung, die ein hervorstechendes
Merkmal von ASP ist, konnte ebenso gezeigt werden. Das Routing in Gegenwart unterschiedlicher Prozessoren funktionierte grundsätzlich. Für die Datenverarbeitung wurde
lediglich nicht immer das leistungsfähigste Gerät ausgewählt. Dieser Fall wurde bislang
noch nicht vollständig spezifiziert.
Aus den Versuchen ging zudem hervor, dass das implementierte System die vorhandenen
Ressourcen in dem heterogenen Versuchsumfeld effizient nutzt. Der Verwaltungsaufwand
ist gering. Auch mit Störungen, wie sie in den Versuchen erzeugt wurden, konnte das
System gut umgehen.
74
7. Schlussbetrachtungen
7.2. Ausblick
Es existieren unterschiedliche Ansätze das Konzept von ASP zu erweitern und weiter
zu optimieren. Es ist vielversprechend, besonders die Verbreitung von Ankündigungen
und die genauere Ermittlung aller Pfade und ihrer Kosten gegenüber dem verwendeten
Prototyp weiter auszubauen. Wegen der vielen Möglichkeiten, diese Aufgabe zu lösen,
empfehlen sich Simulationen, um die erfolgversprechendsten Ansätze zu identifizieren.
Die gefundenen Ansätze können dann in einem nächsten Schritt in der Praxis erprobt
werden.
Während der Entwicklung der Software und der Durchführung der Tests, stellte sich
die wichtige Rolle des Caching heraus. In den Versuchen wurde eine einfache CachingStrategie verwendet, die mit vertretbarem Aufwand implementiert werden konnte. Sowohl bei der Verteilung der Caches als auch beim Zugriff auf die Inhalte der Caches wird
weiteres Potenzial zur Effizienzsteigerung vermutet. Redundante Übertragungen sollten
sich weiter reduzieren lassen.
Mit Blick auf Dienstgütemerkmale wie die Latenz oder den Verlust von Nachrichten kann
den existierenden Übertragungskategorien in Zukunft eine wichtigere Rolle zukommen.
Die Möglichkeit die gewünschte Dienstgüte flexibel zu konfigurieren, kann dem Konzept
von ASP weitere Anwendungsbereiche erschließen.
Zu den Untersuchungsaspekten, die bislang nicht berücksichtigt werden konnten, gehört
die Evaluation größerer Netzwerke. Das Verhalten des Systems in realen Netzwerken mit
mehreren Dutzend Teilnehmern wurde nicht untersucht. Im Rahmen dieser Arbeit konnte dieser spannenden Frage mit den vorhandenen Mitteln nicht nachgegangen werden.
Aus demselben Grund konnte das Verhalten des Systems in Verbindung mit mobilen
Knoten bislang nicht getestet werden. Mit WLAN und Bluetooth unterstützt die erstellte Software jedoch bereits grundsätzlich Verbindungstechniken, die sich für die spontane
Vernetzung in einem mobilen Umfeld nutzen lassen.
Nicht zuletzt ist es eine interessante Aufgabe, die Middleware auf einer noch breiteren Basis von Plattformen und Endgeräten zum Einsatz zu bringen. Auch weitere
Übertragungstechnologien wie das bereits eingangs genannte ZigBee können in Zukunft
erschlossen werden. Auf diese Weise lässt sich prüfen, ob ASP für den Einsatz in Sensornetzen angepasst werden kann.
75
A. Nachrichtenformat
A. Nachrichtenformat
P
TTL
2
1
1
ID
METRIC
VALIDITY
SEQUENCE
PAYLOAD
≥ 33
1
1
16
8
4
2
≥1
ID
SUBSCRIBERID
METRIC
34
1
1
16
8
8
ID
SEQUENCE
PAYLOADSIZE
OFFSET
PAYLOAD
COMMON
Feldgröße in Byte und -bedeutung
TYPE
Nachrichtentyp
≥ 29
1
1
16
2
4
4
≥1
ANNOUNCEMENT
SUBSCRIPTION,
UNSUBSCRIPTION,
BROKENPATH
PUBLICATION
Tabelle A.1.: Das in der Implementierung verwendete Nachrichtenformat.
76
B. Versuche
B. Versuche
B.1. Namensschema
Die Benennung der Versuche folgt einem bestimmten Schema. Mit diesem Schema lassen
sich einzelne Versuche oder Versuchsreihen bis hin zu kompletten Experimenten sehr
kompakt bezeichnen. Die Ordnerstruktur, in der die Messergebnisse auf dem Datenträger
gespeichert sind, orientiert sich ebenfalls an diesem Schema.
Die Bezeichnung eines Versuchs setzt sich aus der Nummer des Experiments, der Nummer der Variante, der Nummer der Versuchsreihe mit einem optionalen Namenszusatz
und dem Bezeichner des Versuchs zusammen. Der Bezeichner identifiziert einen Versuch
innerhalb einer Versuchsreihe.
Die Kürzel, mit denen Versuche bezeichnet werden, entsprechen dem folgenden regulären
Ausdruck1 X[0-9]+(v[0-9]+)?R[0-9]+(@.+)?/.+
Die erste Zahl bezeichnet das Experiment. Die zweite Zahl nach dem Buchstaben v identifiziert die Variante und die Zahl nach dem R identifiziert die Versuchsreihe. Die Angabe
einer Variante ist optional, denn nicht alle Experimente liegen in unterschiedlichen Varianten vor. Ist keine Variante angegeben, ist Variante 1 gemeint. Der Namenszusatz
beginnend mit dem Zeichen @ ist optional und kommt nur vor, falls eine Versuchsreihe
weiter unterteilt wurde.
Zwei Beispiele veranschaulichen das Schema. X5R2/X5O bezeichnet den Versuch X5O
aus Versuchsreihe 2 des Experiments 5. X3v2R1/X3A bezeichnet Versuch X3A aus Experiment 3, Variante 2, Reihe 1.
Im Text wird manchmal eine verkürzende Schreibweise verwendet. So bezeichnet X3v2R1
alle Versuche der Reihe 1. X3v2 bezeichnet alle Versuche aller Reihen von Experiment
3 Variante 2.
B.2. Übersicht der Experimente
Die Tabelle B.1 auf Seite 78 listet die durchgeführten Versuchsreihen auf.
1
Es wird Perl-kompatible Syntax verwendet. Siehe [Vro02].
77
1
1
2
1
1
1
1
1
2
2
2
1
1
Reihe
1
2
1
1
2
1
2
3
1
2
3
1
2
Software
1781
1793
1799
1763
1820
1805
1805
1805
1805
1805
1808
1808
1816
57
59
12
10
20
25
10
10
15
15
15
16
21
Versuche
Experiment
Tabelle B.1.: Übersicht der durchgeführten Experimente mit Softwareversion und Anzahl der ausgeführten Versuche. Versuche, die
verworfen wurden, wurden bei der Auswertung zu keinem Zeitpunkt berücksichtigt.
Variante
1
1
1
2
2
3
3
3
3
3
3
5
5
Erläuterung
unterschiedliche Übertragungsraten im WLAN
unterschiedliche Duty Cycles (Störungen)
Bluetooth gegen WLAN
Verwaltungsaufwand – komplett verworfen
Verwaltungsaufwand
identische Prozessoren
identische Prozessoren – einer startet deutlich früher
identische Prozessoren – der andere startet deutlich früher
unterschiedliche Prozessoren – schwächerer startet deutlich früher
unterschiedliche Prozessoren – stärkerer startet deutlich früher
unterschiedliche Prozessoren – schwächerer startet deutlich früher
zeitliche Entkopplung
zeitliche Entkopplung – Versuch X5K verworfen
B. Versuche
78
B. Versuche
B.3. Versuchsaufbau
Die Grafiken auf den Seiten 80 bis 82 stellen den Versuchsaufbau dar. Abbildung B.1
zeigt die Legende.
ein Linutop
virtuelles
System
Notebook
Desktop
Hostname
Anwendung
IP
Bt
Subnetz (IP) /
Verbindungstechnik (Bt, Bluetooth)
Ethernet
WLAN im Infrastruktur-Modus
WLAN im Ad-Hoc-Modus
Bluetooth
direkte Verbindung möglich
keine direkte Verbindung
IP
IPn
Bt
IP1
IPx
Bt
IP
IPn
Bt
IP2
IPy
IP2
IP
IP
IP
IP
IP
IP
IP
IP
vereinfacht
Abbildung B.1.: Legende der Versuchsskizzen.
79
B. Versuche
Ethernet
debian
Speicher
Kajam
Konverter
IP1
IP1
Ad-Hoc
linutop
Dummy
Ad-Hoc
linutop2
Dummy
Enif
Download
IP1 IP2
IP1 IP2
IP2
(a) Variante 1
Ethernet
debian
Speicher
Kajam
Konverter
IP1
IP1
Ad-Hoc
linutopk
Dummy
IP1 IP2
Bluetooth
linutop2
Download
IP2
linutop
Dummy
Bt
IP1
Bt
(b) Variante 2
Abbildung B.2.: Versuchsaufbau von Experiment 1.
80
B. Versuche
Eth.
Inf.
Enif
Konverter
debian
Speicher
linutopk
Rekorder
IP1 IP2
IP1
IP1
Ad-Hoc
linutop2
Download
IP2
Abbildung B.3.: Versuchsaufbau von Experiment 2.
Inf.
Inf.
linutopk
Rekorder
debian
Speicher
Enif
Dummy
IP1
IP1
IP1
Ad-Hoc
linutop2
Download
IP2
IP3
Ethernet
Hyadum-II
Konverter
linutop
Download
IP3
IP2 IP3
Abbildung B.4.: Versuchsaufbau von Experiment 5.
81
B. Versuche
Ethernet
linutop
Konverter
Ethernet
debian
Speicher
IP
linutop2
Konverter
IP
IP
Ethernet
Ethernet
Enif
Download
IP
(a) Variante 1
Ethernet
linutop
Konverter
Ethernet
debian
Speicher
IP
IP
Ethernet
Enif
Konverter
IP
Ethernet
linutop2
Download
IP
(b) Variante 2
Abbildung B.5.: Versuchsaufbau von Experiment 3.
82
B. Versuche
B.4. Hard- und Softwarespezifikationen
Die Tabellen B.2, B.3 und B.4 geben Auskunft über die in den Versuchen genutzte Hardund Software. Das System debian wurde virtualisiert. Das Wirtssystem war Kajam.
Hostname
debian
Betriebssystem
Debian Linux 5.0
Enif
Mac OS X 10.4.11
Hyadum-II
openSUSE 11.1
Kajam
Windows Vista Home
Premium 64 Bit, SP 2
Ubuntu 9.04 Server
linutopX
Java Laufzeitumgebung
OpenJDK Runtime Environment (build 1.6.0 0-b11)
Java(TM) 2 Runtime Environment, Standard Edition
(build 1.5.0 19-b02-306)
OpenJDK Runtime Environment (IcedTea6 1.6.2) (suse0.1.1-i386)
Java(TM) SE Runtime Environment (build 1.6.0 17-b04)
OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b141.4.1-0ubuntu12)
Arbeitsspeicher [MB]
Prozessor
Intel Core 2 Duo CPU E8400
PowerPC G4
AMD Athlon XP 2000+
Intel Core 2 Duo CPU E8400
AMD Geode LX700
Taktfrequenz [MHz]
Hostname
debian
Enif
Hyadum-II
Kajam
linutopX
Prozessorkerne
Tabelle B.2.: Übersicht der Versuchsrechner und ihrer Softwareausstattung.
1
1
1
2
1
3.000
1.200
1.666
3.000
433
1536
768
1024
8192
256
Tabelle B.3.: Übersicht der Versuchsrechner und die Eckdaten ihrer Hardwareausstattung.
83
B. Versuche
Handelsmarke
Hama
Produkt
TP-Link
WLAN
USBStick (802.11g)
TL-WN321G
Anycom
USB-200
MSI
Star Key 3.0
MSI
BToes EDR Micro Dongle
Bluetooth V2.0
Dongle
Vivanco
Bezeichnung
unter
Linux
(lsusb)
Ralink
Technology,
Corp.
RT2501USB Wireless Adapter
Ralink
Technology,
Corp.
RT2501USB Wireless Adapter
Broadcom
Corp.
Bluetooth
2.0+EDR dongle
Integrated System Solution Corp.
KY-BT100 Bluetooth Adapter
Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Tabelle B.4.: Übersicht der externen Netzwerkperipherie.
B.5. Ausgewählte Diagramme
Einige ausgewählte Diagramme, die die Auswertung der Versuche veranschaulichen, befinden sich auf den Seiten 85 bis 87.
84
B. Versuche
7000
Ankündigungen via linutop
Ankündigungen via linutop2
6500
6000
Kosten
5500
5000
4500
4000
3500
3000
2500
A
B
C
D
E
F
G
Versuch
H
I
J
K
L
Abbildung B.6.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads
am Download-Rechner in den Versuchen X1v1R1@1M. Die Verbindung
über linutop2 ist auf 1 MBit/s gedrosselt.
3500
Ankündigungen via linutop
Ankündigungen via linutop2
3400
3300
3200
Kosten
3100
3000
2900
2800
2700
2600
2500
A
B
C
D
E
F
G
Versuch
H
I
J
K
L
M
Abbildung B.7.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads
am Download-Rechner in den Versuchen X1v1R1@11M. Die Verbindung
über linutop2 ist auf 11 MBit/s gedrosselt.
85
B. Versuche
3500
Ankündigungen via linutop
Ankündigungen via linutop2
3400
3300
3200
Kosten
3100
3000
2900
2800
2700
2600
2500
A
B
C
D
E
F
G
Versuch
H
I
J
K
L
Abbildung B.8.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads
am Download-Rechner in den Versuchen X1v1R1@54M. Die Verbindung
über linutop2 ist auf 54 MBit/s gedrosselt.
3500
Ankündigungen via linutop
Ankündigungen via linutop2
3400
3300
3200
Kosten
3100
3000
2900
2800
2700
2600
2500
A
B
C
D
E
F
G
H
I
J
K
Versuch
L
M
N
O
P
Q
R
S
T
Abbildung B.9.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads
am Download-Rechner in den Versuchen X1v1R1@auto. Die Verbindung
über linutop2 verwendet automatische Bitratenwahl.
86
B. Versuche
4000
Ankündigungen via linutop
Ankündigungen via linutop2
3800
3600
Kosten
3400
3200
3000
2800
2600
A
B
C
D
E
F
G
Versuch
H
I
J
K
L
Abbildung B.10.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads
am Download-Rechner in den Versuchen X1v1R2@dc80a. Die Verbindung über linutop ist nur 80 % der Zeit aktiv.
4000
Ankündigungen via linutop
Ankündigungen via linutop2
3800
3600
Kosten
3400
3200
3000
2800
2600
A
B
C
D
E
F
Versuch
G
H
I
J
K
Abbildung B.11.: Durchschnittliche Kosten eingehender Ankündigungen des Downloads
am Download-Rechner in den Versuchen X1v1R2@dc100. Beide Verbindungen sind zu 100 % aktiv.
87
Literaturverzeichnis
Literaturverzeichnis
[AADH05] Aldred, Lachlan ; Aalst, Wil M. d. ; Dumas, Marlon ; Hofstede, Arthur H.: On the Notion of Coupling in Communication Middleware. In: On
the Move to Meaningful Internet Systems 2005: CoopIS, DOA, and ODBASE Bd. 3761, Springer, 2005, S. 1015–1033
[AHR06]
Awerbuch, Baruch ; Holmer, David ; Rubens, Herbert: The Medium
Time Metric: High Throughput Route Selection in Multi-rate Ad Hoc Wireless Networks. In: Mobile Networks and Applications 11 (2006), Apr, Nr.
2, S. 253–266
[AKM07]
Aitenbichler, Erwin ; Kangasharju, Jussi ; Mühlhäuser, Max: MundoCore: A light-weight Infrastructure for Pervasive Computing. In: Pervasive and Mobile Computing 3 (2007), Nr. 4, S. 332–361. – Middleware for
Pervasive Computing
[BCM+ 99] Banavar, G. ; Chandra, T. ; Mukherjee, B. ; Nagarajarao, J.
; Strom, R.E. ; Sturman, D.C.: An Efficient Multicast Protocol for
Content-Based Publish-Subscribe Systems. In: Distributed Computing Systems, 1999. Proceedings. 19th IEEE International Conference on, 1999, S.
262–272
[Blu07]
Bluetooth SIG: Bluetooth Core Specification v2.1 + EDR. http://www.
bluetooth.com/Bluetooth/Technology/Building/Specifications/.
Version: Jul 2007. – Abruf: 25.1.2010
[Blu09a]
Bluetooth SIG: Bluetooth Technology Gets Faster With Bluetooth 3.0.
Pressemitteilung.
http://www.bluetooth.com/Bluetooth/Press/SIG/
iBLUETOOTHi_TECHNOLOGY_GETS_FASTER_WITH_iBLUETOOTHi_30.htm.
Version: Apr 2009. – Abruf: 17.1.2010
[Blu09b]
Bluetooth SIG:
SIG Introduces Bluetooth Low Energy Wireless
Technology, the Next Generation of Bluetooth Wireless Technology. Pressemitteilung. http://www.bluetooth.com/Bluetooth/Press/SIG/SIG_
INTRODUCES_BLUETOOTH_LOW_ENERGY_WIRELESS_TECHNOLOGY_THE_NEXT_
GENERATION_OF_BLUETOOTH_WIRELESS_TE.htm.
Version: Dez 2009. –
Abruf: 17.1.2010
[BM06]
Breymann, Ulrich ; Mosemann, Heiko: Java ME : Anwendungsentwicklung für Handys, PDA und Co. München : Hanser, 2006
88
Literaturverzeichnis
[BRS02]
Bharambe, Ashwin R. ; Rao, Sanjay ; Seshan, Srinivasan: Mercury: A
Scalable Publish-Subscribe System for Internet Games. In: NetGames ’02:
Proceedings of the 1st workshop on Network and system support for games.
New York, NY, USA : ACM, 2002, S. 3–9
[BSB+ 02]
Bhola, S. ; Strom, R. ; Bagchi, S. ; Zhao, Yuanyuan ; Auerbach, J.:
Exactly-once Delivery in a Content-based Publish-Subscribe System. In:
Dependable Systems and Networks, 2002. DSN 2002. Proceedings. International Conference on, 2002, S. 7–16
[CEM+ 08] Campista, Miguel Elias M. ; Esposito, Pedro M. ; Moraes, Igor M.
; Costa, Luı́s Henrique M. K. ; Duarte, Otto Carlos M. B. ; Passos,
Diego G. ; Albuquerque, Célio Vinicius N. ; Saade, Débora Christina M.
; Rubinstein, Marcelo G.: Routing Metrics and Protocols for Wireless
Mesh Networks. In: IEEE Network 22 (2008), Nr. 1, S. 6–12
[CJ02]
Cugola, Gianpaolo ; Jacobsen, H.-Arno: Using Publish/Subscribe
Middleware for Mobile Systems. In: SIGMOBILE Mob. Comput. Commun.
Rev. 6 (2002), Nr. 4, S. 25–33
[CJ03]
Clausen, T. ; Jacquet, P.: Optimized Link State Routing Protocol
(OLSR). RFC 3626 (Experimental). http://www.ietf.org/rfc/rfc3626.
txt. Version: Oktober 2003 (Request for Comments)
[Com00]
Comer, Douglas E.: Internetworking With TCP/IP. Bd. 1. Principles,
Protocols and Architecture. 4. Auflage. Upper Saddle River, New Jersey,
USA : Prentice Hall, 2000
[CRW00]
Carzaniga, Antonio ; Rosenblum, David S. ; Wolf, Alexander L.: Achieving Scalability and Expressiveness in an Internet-Scale Event Notification
Service. In: PODC ’00: Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing. New York, NY, USA : ACM,
2000, S. 219–227
[CRW04]
Carzaniga, A. ; Rutherford, M.J. ; Wolf, A.L.: A Routing Scheme
for Content-Based Networking. In: INFOCOM 2004. Twenty-third Annual Joint Conference of the IEEE Computer and Communications Societies
Bd. 2, 2004, S. 918–928
[CS04]
Cao, Fengyun ; Singh, J.P.: Efficient Event Routing in Content-based
Publish-Subscribe Service Networks. In: INFOCOM 2004. Twenty-third
Annual Joint Conference of the IEEE Computer and Communications Societies Bd. 2, 2004, S. 929–940
[DABM05] De Couto, Douglas S. J. ; Aguayo, Daniel ; Bicket, John ; Morris,
Robert: A High-Throughput Path Metric for Multi-Hop Wireless Routing.
In: Wireless Networks 11 (2005), Jul, Nr. 4, S. 419–434
89
Literaturverzeichnis
[DPZ04]
Draves, Richard ; Padhye, Jitendra ; Zill, Brian: Routing in Multi-Radio,
Multi-Hop Wireless Mesh Networks. In: MobiCom ’04: Proceedings of the
10th annual international conference on Mobile computing and networking.
New York, NY, USA : ACM, 2004, S. 114–128
[EFGK03]
Eugster, Patrick T. ; Felber, Pascal A. ; Guerraoui, Rachid ; Kermarrec, Anne-Marie: The Many Faces of Publish/Subscribe. In: ACM
Comput. Surv. 35 (2003), Jun, Nr. 2, S. 114–131
[FGKZ03]
Fiege, Ludger ; Gärtner, Felix C. ; Kasten, Oliver ; Zeidler, Andreas:
Supporting Mobility in Content-Based Publish/Subscribe Middleware. In:
Middleware 2003 Bd. 2672, Springer, 2003, S. 103–122
[FLYV93]
Fuller, V. ; Li, T. ; Yu, J. ; Varadhan, K.: Classless Inter-Domain
Routing (CIDR): an Address Assignment and Aggregation Strategy. RFC
1519 (Proposed Standard).
http://www.ietf.org/rfc/rfc1519.txt.
Version: September 1993 (Request for Comments). – Obsoleted by RFC
4632
[HBS+ 02]
Hapner, Mark ; Burridge, Rich ; Sharma, Rahul ; Fialli, Joseph ;
Stout, Kate: Java Message Service Specification. http://java.sun.com/
products/jms/docs.html. Version: 1.1, 2002
[HGM04]
Huang, Yongqiang ; Garcia-Molina, Hector: Publish/Subscribe in a
Mobile Environment. In: Wireless Networks 10 (2004), Nov, Nr. 6, S. 643–
652
[JLZZ07]
Jiang, Weirong ; Liu, Shuping ; Zhu, Yun ; Zhang, Zhiming: Optimizing
Routing Metrics for Large-Scale Multi-Radio Mesh Networks. In: Wireless
Communications, Networking and Mobile Computing, 2007. WiCom 2007.
International Conference on, IEEE, 2007, S. 1550–1553
[Lüd07]
Lüders, Christian: Lokale Funknetze : Wireless LANs (IEE 802.11), Bluetooth, DECT. 1. Auflage. Würzburg : Vogel Buchverlag, 2007
[MC02]
Meier, René ; Cahill, Vinny: STEAM: Event-Based Middleware for Wireless Ad Hoc Networks. In: Distributed Computing Systems Workshops,
International Conference on. Los Alamitos, CA, USA : IEEE Computer
Society, 2002, S. 639
[Mot08]
Motorola: Java APIs for Bluetooth Wireless Technology (JSR 82). http:
//jcp.org/en/jsr/detail?id=82. Version: 1.1.1, 2008
[MR07]
Medhi, Deepankar ; Ramasamy, Karthikeyan: Network Routing : Algorithms, Protocols, and Architectures. San Francisco, CA, USA : Morgan
Kaufman Publishers, 2007
[MSJ09]
Moustafa, Hassnaa ; Senouci, Sidi M. ; Jerbi, Moez: Introduction to
Vehicular Networks. In: Moustafa, Hassnaa (Hrsg.) ; Zhang, Yan (Hrsg.):
90
Literaturverzeichnis
Vehicular networks : Techniques, Standards and Applications. Boca Raton,
FL, USA : Auerbach Publications, 2009, S. 1–20
[MUHW04] Mühl, Gero ; Ulbrich, Andreas ; Herrmann, Klaus ; Weis, Torben:
Disseminating Information to Mobile Clients Using Publish-Subscribe. In:
IEEE Internet Computing 8 (2004), S. 46–53
[Mul01]
Muller, Nathan J.: Bluetooth. Bonn : MITP-Verlag, 2001
[Ora10]
Oracle Corporation: Java Sound API Tutorial. http://java.sun.
com/docs/books/tutorial/sound/index.html. Version: Jan 2010. – Abruf: 1.2.2010
[Per01]
Perkins, Charles E.: Ad Hoc Networking : An Introduction. In: Perkins,
Charles E. (Hrsg.): Ad Hoc Networking. Addison-Wesley, 2001, S. 1–28
[Pos81]
Postel, J.: Internet Control Message Protocol. RFC 792 (Standard). http:
//www.ietf.org/rfc/rfc792.txt. Version: September 1981 (Request for
Comments). – Updated by RFCs 950, 4884
[Rec06]
Rech, Jörg: Wireless LANs : 802.11-WLAN-Technologie und praktische
Umsetzung im Detail. 2. Auflage. Hannover : Heise Zeitschriften Verlag,
2006
[Rec08]
Rech, Jörg: Ethernet : Technologien und Protokolle für die Computervernetzung. 2. Auflage. Hannover : Heise Zeitschriften Verlag, 2008
[Ris08]
Ristau, Henry: Publish/Process/Subscribe: Message Based Communication for Smart Environments. In: Intelligent Environments, 2008 IET 4th
International Conference on, IEEE, 2008
[Ris09a]
Ristau, Henry: Announcement/Subscription/Publication: Message Based
Communication for Heterogeneous Mobile Environments. In: MobileWireless Middleware, Operating Systems, and Applications Bd. 7, Springer, 2009,
S. 295–308
[Ris09b]
Ristau, Henry: Challenges in Content Based, Semantically Decoupled
Communication on Neighbor-Relations. In: Intelligent Interactive Assistence and Mobile Multimedia Computing, IMC 2009, Springer, Nov 2009
[SA97]
Segall, Bill ; Arnold, David: Elvin has left the building: A publish/subscribe notification service with quenching. In: Proceedings of AUUG97, 1997, S. 243–255
[SBC05]
Sivaharan, Thirunavukkarasu ; Blair, Gordon ; Coulson, Geoff:
GREEN: A Configurable and Re-configurable Publish-Subscribe Middleware for Pervasive Computing. In: On the Move to Meaningful Internet
Systems 2005: CoopIS, DOA, and ODBASE Bd. 3760. Berlin / Heidelberg
: Springer, 2005, S. 732–749
91
Literaturverzeichnis
[SFR04]
Stevens, W. R. ; Fenner, Bill ; Rudoff, Andrew M.: Addison-Wesley
Professional Computing Series. Bd. 1: UNIX Network Programming : The
Sockets Networking API . 3. Auflage. Addison-Wesley, 2004
[Sun03]
Sun Microsystems: Connected Limited Device Configuration (CLDC)
Specification.
http://jcp.org/aboutJava/communityprocess/final/
jsr139/index.html. Version: 1.1, 2003
[Tan03]
Tanenbaum, Andrew S.: Computer Networks. 4. Auflage. Upper Saddle
River, NJ, USA : Prentice Hall PTR, 2003
[TRP+ 04]
Tian, Feng ; Reinwald, Berthold ; Pirahesh, Hamid ; Mayr, Tobias
; Myllymaki, Jussi: Implementing A Scalable XML Publish/Subscribe
System Using Relational Database Systems. In: SIGMOD ’04: Proceedings
of the 2004 ACM SIGMOD international conference on Management of
data. New York, NY, USA : ACM, 2004, S. 479–490
[TS08]
Tanenbaum, Andrew S. ; Steen, Maarten van: Verteilte Systeme : Grundlagen und Paradigmen. 2. Auflage. München : Pearson Studium, 2008
[Ull07]
Ullenboom, Christian: Java ist auch eine Insel : Programmieren mit der
Java Standard Edition Version 6. 6. Auflage. Galileo Computing, 2007
[Vro02]
Vromans, Johan: Perl Pocket Reference. 4. Auflage. Sebastopol, CA, USA
: O’Reilly Media, Inc., 2002
[YWK05]
Yang, Yaling ; Wang, Jun ; Kravets, Robin: Interference-aware Load
Balancing for Multihop Wireless Networks / Department of Computer
Science, University of Illinois at Urbana-Champaign. Version: Mär 2005.
http://hdl.handle.net/2142/10974. 2005. – Forschungsbericht
[ZF03]
Zeidler, Andreas ; Fiege, Ludger: Mobility Support with REBECA. In:
Proceedings of the 23rd International Conference on Distributed Computing Systems Workshops (ICDCSW’03). Los Alamitos, CA, USA : IEEE
Computer Society, 2003, S. 354
92
Selbstständigkeitserklärung
Ich erkläre, dass ich die vorliegende Arbeit selbstständig und nur unter Vorlage der
angegebenen Literatur und Hilfsmittel angefertigt habe.
Rostock, den 25. Februar 2010
Roland Seuchter