Building a Distributed System with Embedded Devices and Sensors

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
ƒ
Sensorknoten
10/100/1‘000/10‘000 ???
ƒ Def: Sensor-Knoten =
Funkeinheit
ein Prozessor +
eine Funkeinheit +
einige Sensoren +
eine Batterie
ƒ Sensorknoten sind
ƒ
ƒ
Prozessor
Klein (wenige cm3)
Billig (CHF 150 – … ) ???
8.12.2007
Sensoren
Batterie
René Müller/[email protected]
2
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
René Müller/[email protected]
3
1
Anwendungen
ƒ Überwachen/Messen/Kontrollieren
Landwirtschaft
der Umgebung
ƒ Zivil/Militär
ƒ Naturwissenschaften (Biologie,
Geologie, …)
ƒ Bau und Architektur (Intelligente
Häuser, Brücken, etc.)
Schweinemast
Baustatik
8.12.2007
René Müller/[email protected]
Seismik
4
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.
8.12.2007
René Müller/[email protected]
5
Inhalt
ƒ Sensornetze
ƒ
Herausforderungen
ƒ
Aspekte aus “Verteilte Systeme”
ƒ Routing-Bäume
ƒ Aggregation von Messwerten im Netzwerk
ƒ SwissQM Demo
ƒ
Virtuelle Maschine für Sensornetze
ƒ
Verarbeitung von kontinuierlichen Queries
8.12.2007
René Müller/[email protected]
6
2
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
batteriebetrieben
Energieinhalt eines Hamburgers
ƒ 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]
8
René Müller/[email protected]
Energie Management
...zzz…
ƒ 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
8.12.2007
müssen synchronisiert sein
ƒ Logische Zeit (Lamport)
alleine reicht hier nicht!
ƒ Synchronisation der Uhren
nicht der Zeitstempel von
Nachrichten
René Müller/[email protected]
9
3
Synchronisation der Knoten
A
ƒ Auch An/Aus-Phasen innerhalb
B
des Netzwerk-Stacks muss
koordiniert sein.
t
ƒ Applikation sendet
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
Senden
10
René Müller/[email protected]
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
t
m1
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 ) − (ta 2 − tb 2 ) , d = (tb1 − ta1 ) + (ta 2 − tb 2 )
Δ= 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).
ƒ 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)
ƒ O(n) Meldungen für
8.12.2007
René Müller/[email protected]
12
4
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)
8.12.2007
ƒ
ƒ
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]
13
Problem #3: Drahtlose Übertragung
ƒ Kommunikation
ƒ
ƒ
ƒ
Drahtlos
(Enerie-)sparsam
Billige Komponenten
Drahtlos
ƒ Interferenz unter den Knoten
ƒ Störemissionen von aussen
Gleiches 2.4-GHz-Band für
WLAN, Bluetooth, ZigBee,
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
ƒ
ƒ Technologien
ƒ
ƒ
ƒ
ƒ
8.12.2007
René Müller/[email protected]
14
Ü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
René Müller/[email protected]
15
5
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
0:schwarz, 1:weiss
16
René Müller/[email protected]
Adjazenz-Matrix (Forts.)
8.12.2007
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]
#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
6
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)
8.12.2007
René Müller/[email protected]
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
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
Nachrichten
Nachbar-Tabelle
(NachbarID, Nachbars ETX zur
Wurzel)
ƒ Periodischer Austausch der
Routing-Metrik (Gradient)
Tabelle
ƒ Bei Empfang lokale Einträge
(Anzahl Hops)
entsprechend anpassen Æ Ziel:
ƒ Oder: Erwartete #Übermin ETX
tragungen (ETX) bis zur Wurzel
Weiterleiten
von Nachrichten
ƒ Berücksichtigt Retransmissions infolge schlechter ƒ Senden an Nachbarn mit
kleinstem ETX zur Wurzel
Links
ƒ Entfernung zum Wurzelknoten
8.12.2007
René Müller/[email protected]
21
7
Daten-Aggregation
Was ist die mittlere Temperatur im Sensornetz?
Aggregation in Basisstation
Aggregation im Netzwerk
Mittelwert berechnet
aus 231/5 = 46.2
Total # 5 Nachrichten
<231,5>
Mittelwert in Basisstation berechnet
Total # 8 Nachrichten
48
<94,2>
48
46
<46,1>
48
46
44
45
8.12.2007
<137,3>
48
45
44
<45,1>
<44,1>
22
René Müller/[email protected]
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
=
8.12.2007
René Müller/[email protected]
=
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
8
[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 + s2 , c1 + c 2 > ƒ Empfängt vollständigen
Zustand <z>
e : < s, c > a s c
ƒ Wertet Aggregat aus: e(<z>)
8.12.2007
25
René Müller/[email protected]
SwissQM – Demo
8.12.2007
26
René Müller/[email protected]
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
8.12.2007
René Müller/[email protected]
27
9
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
ƒ
gestoppt
8.12.2007
ƒ
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
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
8.12.2007
René Müller/[email protected]
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
10
Herunterladen