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