VS-11_2up - The Distributed Systems Group

Werbung
Building a Distributed System with
Embedded Devices and Sensors
René Müller [email protected]
Prof. Gustavo Alonso [email protected]
Institut für Pervasive Computing
8.12.2007
© ETH Zürich | Information and Communication Systems Research Group
Drahtlose Sensornetze
ƒ Ad-hoc Netzwerk aus
Sensorknoten
ƒ
ƒ Def: Sensor-Knoten =
ein Prozessor +
eine Funkeinheit +
einige Sensoren +
eine Batterie
ƒ Sensorknoten sind
ƒ
ƒ
8.12.2007
Sensorknoten
10/100/1‘000/10‘000 ???
Funkeinheit
Sensoren
Prozessor
Klein (wenige cm3)
Billig (CHF 150 – … ) ???
René Müller/[email protected]
Batterie
2
1
Sensorknoten
BTnode (ETH Zürich)
tmote sky (Moteiv)
ƒ CPU: ATmega, 8MHz
ƒ Flash-Speicher: 128kB
ƒ RAM: 4kB (intern) +
ƒ
ƒ
ƒ
ƒ
256kB (extern)
ƒ Funk: CC1000 (76kbps) +
CPU: MSP430, 1MHz
Flash-Speicher: 48kB
RAM: 10kB (intern)
Funk: CC2420
(250 kbps, IEEE 802.15.4)
Bluetooth
8.12.2007
3
René Müller/[email protected]
Anwendungen
ƒ Überwachen/Messen/Kontrollieren
Landwirtschaft
der Umgebung
ƒ Zivil/Militär
ƒ Naturwissenschaften (Biologie,
Geologie, …)
ƒ Bau und Architektur (Intelligente
Häuser, Brücken, etc.)
Baustatik
8.12.2007
Schweinemast
René Müller/[email protected]
Seismik
4
2
Häufiger Anwendungsfall
ƒ Sensorkonten, die phys.
Grösse X messen, werden
verteilt
ƒ Gemessene Daten werden
auf PC/PDA aufgezeichnet
od. weiter verschickt.
ƒ PC/PDA/… via Sensor mit
Sensornetz verbinden
ƒ Knoten bauen Ad-hoc
Netzwerk auf (z.B., Baum)
ƒ Knoten senden periodisch
Messungen an PC/PDA.
René Müller/[email protected]
8.12.2007
5
Inhalt
ƒ Sensornetze
ƒ
ƒ
Herausforderungen
Aspekte aus “Verteilte Systeme”
ƒ Routing-Bäume
ƒ Aggregation von Messwerten im Netzwerk
ƒ SwissQM Demo
ƒ
ƒ
8.12.2007
Virtuelle Maschine für Sensornetze
Verarbeitung von kontinuierlichen Queries
René Müller/[email protected]
6
3
Herausforderungen
ƒ Ressourcen-Knappheit
ƒ
ƒ
ƒ
Energie/Batterie (J)
Speicher (kB) / Rechenleistung (MIPS)
Kommunikations-Bandbreite (bit/s)
ƒ Fehlertoleranz und Robustheit
ƒ
Ausfall einzelner Knoten
ƒ Skalierbarkeit
ƒ
Netzwerkgrössen: 10, 100, 1‘000, …
8.12.2007
7
René Müller/[email protected]
Problem #1: Energie
ƒ Sensorknoten sind
Vergleich
Energieinhalt eines Hamburgers
batteriebetrieben
ƒ Austausch der Batterien
ist meist nicht praktikabel.
© McDonands
ƒ Energie für Sensorknoten:
aus 2x AA Alkali-Batterien
E ≈ 17 kJ (= 4 kcal)
[Duracell PLUS, 250 mA
Entladestrom bis 0.9 V
Klemmspannung]
8.12.2007
E ≈ 3556 kJ (= 850 kcal)
[Quelle: BigMac, McDonalds]
René Müller/[email protected]
8
4
...zzz…
Energie Management
ƒ Verbraucher (Bsp. tmote sky):
ƒ
ƒ
ƒ
Prozessor (≈0.8-3 mA)
Sensoren (≈1 mA)
Funkeinheit (Senden oder
Empfänger an ≈ 20mA)
...zzz…
ƒ Energiesparen: zur Zeit nicht
benötigte Verbraucher
ausschalten
ƒ An/Aus-Phasen der Empfänger
ƒ Tastgrad (duty cycle) = Dauer
“An”-Phase / Gesamtdauer
ƒ
100% immer “An“
ƒ Grösster Verbraucher ist
Funkempfänger! Å optimieren
müssen synchronisiert sein
ƒ Logische Zeit (Lamport)
alleine reicht hier nicht!
ƒ Synchronisation der Uhren
nicht der Zeitstempel von
Nachrichten
René Müller/[email protected]
8.12.2007
9
Synchronisation der Knoten
A
B
ƒ Auch An/Aus-Phasen innerhalb
des Netzwerk-Stacks muss
koordiniert sein.
Senden
ƒ Applikation sendet
t
A
periodisch Messungen
ƒ Routing Layer sendet
Routing Tabelle an
t
B …zzz…
Nachbarn (periodisch oder
auf Anfrage)
ƒ Sende-Phase und Empfangsƒ
MAC Layer: Collision
Phase von Sender und
Avoidance, Random BackEmpfänger müssen überlappen.
off, etc.
ƒ Wann beginnt/endet eine
ƒ Wann die Funkeinheit
Phase? Koordination?
ein/ausschalten? Wer darf das?
Æ Cross-Layer Optimierungen
Empfangen
Verarbeiten
8.12.2007
René Müller/[email protected]
10
5
Uhren-Synchronisation
“Beacon” Knoten
Beacon
Ich hatte
11:32:32.
Ich hatte
11:32:34.
Ich hatte
11:32:30.
ƒ Periodisches Beacon ohne
Zeitangabe dient zur
Synchronisation.
ƒ Nach Empfang des Beacons
sendet jeder seine lokale Zeit.
ƒ Knoten passen Schedule an,
d.h. wann Nachbar “wach” ist
eine Meldung empfangen kann.
8.12.2007
Paarweise Sychronisation
ta1
A
ta2
m1
t
m2
t
tb1
tb2
ƒ A sendet Nachricht m1= (ta1)
mit Zeitstempel ta1.
ƒ B empfägt m1 zu Zeit tb1.
ƒ B sendet m2=(ta1,tb1,tb2).
ƒ A empfängt m2 zu ta2.
ƒ A berechnet relativen Drift Δ
und mittlere Laufzeit d
(tb − ta1 ) − (ta2 − tb2 ) , d = (tb1 − ta1 ) + (ta2 − tb2 )
Δ= 1
B
2
2
11
René Müller/[email protected]
Uhren-Synchronisation (Forts.)
Hierarchisch
GPS
Beim nächsten Ton ist
es 11:32:12. … piep!
ƒ Kindknoten synchronisieren mit
Elternknoten (paarweise).
ƒ O(n) Meldungen für
ƒ Sensorknoten haben GPS
Empfänger.
Synchronisation
ƒ Zeitinformation aus GPS Signal
ƒ O(n2) wenn paarweise jeder ƒ GPS Empfänger immer noch
mit jedem
gross und teuer
ƒ Hierarchie Konzept ähnlich zu ƒ Mischformen GPS +
Strata (NTP Protokoll aus dem
hierarchische Synchronisation
Internet)
(wie NTP)
8.12.2007
René Müller/[email protected]
12
6
Problem #2: Speicher
ƒ Speicher für Programm
ƒ Nicht alles aus dem
und Daten ist stark
begrenzt.
ƒ Beispiel Tmote Sky Node
Desktop/Serverbereich ist
auf Sensornetze
übertragbar
ƒ Beispiel
ƒ
ƒ
ƒ
10 kB RAM für Programdaten (Stack, Heap)
48 kB Flash-Speicher für
Programmcode
1 MBit serieller FlashSpeicher (z.B. für
Messungen, nicht als
Programmspeicher
verwendbar)
ƒ
ƒ
TCP/IP Æ nanoIP/nanoTCP
(nanoIP+nanoTCP: 300B
RAM, 1kB Flash)
Multithreading nur
eingeschränkt möglich
(Speicher für ThreadContext)
René Müller/[email protected]
8.12.2007
13
Problem #3: Drahtlose Übertragung
ƒ Kommunikation
ƒ
ƒ
Drahtlos
ƒ Interferenz unter den Knoten
ƒ Störemissionen von aussen
Gleiches 2.4-GHz-Band für
WLAN, Bluetooth, ZigBee,
Technologien
Garagentoröffner und
ƒ WLAN (802.11): meist zu
Mikrowellengeräte(!)
teuer (Kosten/Energie)
ƒ
Fehlerrate
bei Funkübertragung
ƒ Bluetooth (802.15.1):
ist
um
ein
Vielfaches
grösser
möglich, Protokoll komplex
als
z.B.
bei
Ethernet.
ƒ „ZigBee“ (802.15.4):
ƒ Carrier Sense (CA): möglich
einfaches Protokoll, geringe
und sinnvoll
Datenraten (theoretisch bis
ƒ
Collision Detection (CD):
250 kbps)
gleichzeitiges Senden und
ƒ Proprietäre Lösungen
Empfangen schwierig
ƒ
ƒ
Drahtlos
(Enerie-)sparsam
Billige Komponenten
8.12.2007
ƒ
René Müller/[email protected]
14
7
Übertragungs-Charakteristik (Experiment)
Beacon-Knoten:
ƒ Zu Beginn jeder Runde,
Broadcast des Beacons mit
max. Leistung an alle.
Nach Empfang des Beacons:
1. Stellen Runden-Uhr
2. Erzeugen Zufallspermutation
der Liste aller (32-1) Knoten.
3. Senden „Ping“-Nachricht
Setup
sequentiell an alle Knoten in
ƒ 33 Knoten Testbed in CAB F31
der Liste.
ƒ 1 Beacon-Knoten
Knoten j empfängt Ping von i
ƒ Gegenseitiges Senden von
ƒ Notieren sich Sender i in
„Ping“ Nachrichten
Sender-Vektor sj (sij = 1)
ƒ Pro Runde werden 32x31 =
Nach Ablauf der Runden-Uhr
992 Nachrichten versendet
ƒ Loggen Sender-Vektor
8.12.2007
15
René Müller/[email protected]
Adjazenz-Matrix
ƒ Sender-Vektoren sj bilden
Graphische Darstellung von M(r)
Empfänger j
Adjazenz-Matrix M = (s1,…,s32)
ƒ Mij = sij
ƒ Darstellung des Verbindungsgraphen: Kante von iÆj wenn
Mij =1.
Sender i
⎧1 erfolgreiche Nachricht i → j in Runde r
M(r)
ij = ⎨
sonst
⎩0
ƒ Diagonale jeweils 0 Æ Knoten
senden keine Nachricht an sich
selbst.
8.12.2007
René Müller/[email protected]
0:schwarz, 1:weiss
16
8
Adjazenz-Matrix (Forts.)
Empfänger j
Sender i
Arithmetisches Mittel
ƒ Aus 170 Runden
ƒ Empfangene Nachrichten (Mittel):
197.6/Runde
ƒ Versendet: 32x31= 992/Runde
ƒ Mittlere Übertragungs-Wsk: ≈0.2
ƒ Matrix ist nicht symmetrisch!
|| M ||2 ≈ 6, || M – M T ||2 ≈ 2
i→j ⇒ j→i
Beachte
ƒ Unrealistisches KommunikationsSzenario: O(n2) Nachrichten
ƒ Kein Scheduling der Nachrichten,
nur Zufallspermutation
ƒ Soll Problematik illustrieren
0:schwarz, 1:weiss
17
René Müller/[email protected]
8.12.2007
#4 Robustheit
Senke
(Basisstation)
ƒ Sensor-Knoten sind unzuverlässig
ƒ
ƒ
ƒ
Restkapazität der Batterien zu gering Æ
Fail-Stop
Nachricht „verloren“ Æ Omission
Hardwaredefekt (Wassereinschluss,
Feuchtigkeit, Vögel) Æ Fail-Stop/Crash/
byzantinische Fehler
Beispiel
ƒ Statischer (fest-codierter) Baum.
ƒ 3 Quellen-Knoten erzeugen Datenstrom
ƒ Knoten nahe der Senke stärker belastet
als Knoten nahe einer Quelle
Æ Brauchen grössere Batterie oder fallen
schneller aus
ƒ Statisch Æ kein Recovery Æ Fail-Stop
ƒ Besser keine stat. Strukturen (ad-hoc)
8.12.2007
René Müller/[email protected]
stärker
belastet
Quelle
Quelle
Quelle
18
9
Routing-Topologien in Sensornetzen
ƒ Art der Kommunikation
Netzwerk-Struktur
Basisstation Æ Knoten
ƒ Flach
ƒ Knoten Æ Basisstation
ƒ Knoten Æ Knoten
ƒ Ziel i.d.R. nicht direkt erreichbar
ƒ Zu weit entfernt/Sendeƒ Hierarchisch
leistung zu gering
ƒ Direkter Link Æ zu grosse
Interferenz
ƒ
Cluster
Head
Cluster
Cluster
ƒ Geo-Routing
x/y
Jeder Knoten kennt
seine x/y Position.
Nachricht an bestimmte
Position leiten.
ƒ Weiterleiten von Meldungen
(Multihop Routing)
René Müller/[email protected]
8.12.2007
19
Collection Tree Routing
ƒ „Einsammeln“ von Daten an
einer bestimmten Stelle.
ƒ Sensor-Daten werden entlang
eines Spannbaums zur
Basisstation geschickt.
ƒ Spannbaum:
ƒ
ƒ
ƒ
Wurzel: Basisstation
Blätter: Datenquellen
Innere Knoten: Datenquellen
und leiten Nachrichten weiter
ƒ „Abfangen“ von Nachrichten auf
dem Pfad zur Wurzel Æ
Bündlung von Datenwerten,
Aggregation (data fusion)
8.12.2007
ƒ Woher kommen die Pfeile?
ƒ
ƒ
Keine eigentlichen Kanten
Kantenreduzierter Verbindungsgraph? Realität?
ƒ Dezentraler Algorithmus
ƒ
ƒ
ƒ
Was sind die Inputs?
Stabiler Baum trotz Funk
Dynamisch (ad-hoc), Baum
muss Störungen (Knoten,
Interferenz) angepasst werden.
René Müller/[email protected]
20
10
Verteilter Algorithmus für Spannbaum
Kurzfassung
Komponenten
Messung Links-Qualität
ƒ Messung der Link-Qualität zu
ƒ Bidirektionale ETX-Werte
ƒ ETX ∼ #erwartete / #empfangene
„Nachbarknoten“
ƒ Austausch und Management
der Nachbar-Tabelle
ƒ Weiterleiten von Nachrichten
Routing-Metrik (Gradient)
ƒ Entfernung zum Wurzelknoten
(Anzahl Hops)
ƒ Oder: Erwartete #Übertragungen (ETX) bis zur Wurzel
ƒ Berücksichtigt Retransmissions infolge schlechter
Links
Nachrichten
Nachbar-Tabelle
(NachbarID, Nachbars ETX zur
Wurzel)
ƒ Periodischer Austausch der
Tabelle
ƒ Bei Empfang lokale Einträge
entsprechend anpassen Æ Ziel:
min ETX
Weiterleiten von Nachrichten
ƒ Senden an Nachbarn mit
kleinstem ETX zur Wurzel
21
René Müller/[email protected]
8.12.2007
Daten-Aggregation
Was ist die mittlere Temperatur im Sensornetz?
Aggregation in Basisstation
Aggregation im Netzwerk
Mittelwert berechnet
Mittelwert in Basisaus 231/5 = 46.2
station berechnet
Total # 5 Nachrichten
Total # 8 Nachrichten
<231,5>
48
48
46
<46,1>
45
8.12.2007
<94,2>
44
48
48
46
45
<45,1>
René Müller/[email protected]
<137,3>
44
<44,1>
22
11
Aggregations-Bäume
Kettengraph
Binärer Graph
Sterngraph
# Nachr. ohne
Aggregation
# Nachr. mit
Aggregation
In-Netzwerk Aggregation und Topologie haben
Einfluss auf Nachrichtenkomplexität.
n
n
n
n-1
n-1
n-1
O(n log n)
O(n)
O(n2)
n
(
)
n
+
1
log2 (n + 1) − 2n
n-1
(n − 1) ≤
≤
2
n-1
n-1
=
René Müller/[email protected]
8.12.2007
=
n-1
kein Unterschied
Knoten
Kanten
·n/2 mehr Nachrichten!
O(n)
23
In-Netzwerk Aggregation
ƒ Aggregation von räumlich ver-
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Minimum (MIN)
Maximum (MAX)
Summe (SUM)
Mittelwert (AVG)
Varianz (VARIANCE)
Anzahl (COUNT)
Median
Histogramm
konst. Grösse
teilten, gleichzeitigen
Messungen Æ räumliche
Aggregation (data fusion)
ƒ Mögliche räuml. Aggregate
ƒ In-Netzwerk Aggregation:
Æ Idealerweise nur eine
Nachricht/Kante
8.12.2007
Aggregationszustand (AZ)
ƒ Beinhaltet „Zusammenfassung“
der Werte für das Aggregat.
ƒ Bsp: <Summe, Anzahl> für AVG
ƒ Knoten senden Aggregationszustand in Richtung Wurzel
ƒ Vollständiger AZ: in Wurzel
ƒ Partieller AZ: Unterhalb
Wurzel
Klassifikation
ƒ Exemplarische Werte (MAX, MIN)
ƒ Algebraisch (SUM, AVG, VARIANCE)
ƒ Holistisch: Grösse ∼ # Werte
(Median, Histogram)
René Müller/[email protected]
24
12
[Madden et al., OSDI’02]
Tiny Aggregation (TAG)
Distributive Aggregate f(<z>)
f(<z1>∪<z2>)=g(f(<z1>), f(<z2>))
ƒ Bsp: MIN, SUM, AVG
Implementation in Sensornetz
ƒ Jeder Knoten i
ƒ Liest Sensor Æ xi
ƒ Berechnet zughörigen part.
f(<z>) aus 3 Funktionen:
Aggregationszustand
ƒ Initialisierer i: <x> = i(x)
<zi> = i(xi)
ƒ Merger m: <z> = m(<x>, <y>)
ƒ Empfängt <zj>,…<zk> von
ƒ Evaluator e: z = e(<z>)
seinen direkten Kinder j,…,k
ƒ Berechnet
Bsp AVG
<z> = m(<zi>, m(<zj>, …,<zk>)))
Zustand: <Summe, Anzahl>
ƒ Sendet <z> an Elternknoten
i : x a < x,1 >
ƒ Basisstation
m : < s1, c1 >, < s2 , c 2 > a < s1 + s 2 , c 1 + c 2 > ƒ Empfängt vollständigen
Zustand <z>
e : < s, c > a s c
ƒ Wertet Aggregat aus: e(<z>)
8.12.2007
René Müller/[email protected]
25
SwissQM – Demo
8.12.2007
René Müller/[email protected]
26
13
Architektur SwissQM
Query 2
Gateway
Query 3
Gateway
System
QM Prog 1
Stream
Verarbeitung
Query
Verarbeitung
Query 1
QM Prog 2
Virtual Machine führt
Bytecode-Programme aus
Sensor Netzwerk
René Müller/[email protected]
8.12.2007
27
In-Netzwerk Aggregation mit SwissQM
ƒ Datenstrom aus
Programm laden
aggregierten Messungen
ƒ
init
Code muss periodisch
ausgeführt werden Æ Timer
delivery
ƒ QM Programme bestehen
Timer
aus 3 Code Abschnitten
Nachricht von
bereit
Kind
stoppen
reception
8.12.2007
gestoppt
ƒ
ƒ
ƒ
Programm wird geladen (init)
Ein neues Tuple soll
versendet werden (delivery)
Eine Nachricht wird von einem
Kind empfangen/abgefangen
(reception)
René Müller/[email protected]
28
14
Vertiefende Vorlesungen und weitere
Informationen
ƒ 251-0380-00: Drahtlose Sensornetze, Kay
Römer (FS08)
ƒ 227-0557-00: Ad-hoc and Sensor Networks,
Roger Wattenhofer (HS07)
ƒ SwissQM Projekt
http://swissqm.inf.ethz.ch
René Müller/[email protected]
8.12.2007
29
Werbung in eigener Sache…
ƒ Wir suchen immer
motivierte Studenten für
Projekte rund um
SwissQM:
ƒ
ƒ
ƒ
ƒ
ƒ
Bachelor-Arbeiten
Semesterarbeiten
Labor “Verteilte Systeme”
Master-Arbeiten
Hilfsassistenten
Kontakt
ƒ René Müller,
[email protected]
8.12.2007
Projekt-Ideen
ƒ Multi-Tier Datenverarbeitung
im heterogenes Netzwerk
ƒ
tmote sky + Linux Knoten
ƒ Power Management Issues im
Linux Kernel
ƒ
Duty Cycling und Arbitrierung der
Hardware Komponenten (Design)
ƒ Diskrete Eventverbeitung
ƒ
ƒ
ƒ
ƒ
Programmieren von virtuellen
Maschinen
Verteilte endl. Automaten
Events innerhalb und zwischen
den Knoten
Actions/Event-Bedingungen in
Bytecode
René Müller/[email protected]
30
15
Herunterladen