CS542 Seminar – Sensor OS A Virtual Machine For Sensor Networks Oct. 28, 2009 Seok Kim Eugene Seo R. Muller, G. Alonso, and D. Kossmann.

Slides:



Advertisements
Similar presentations
Phil Buonadonna, Jason Hill CS-268, Spring 2000 MOTE Active Messages Communication Architectures for Networked Mini-Devices Networked sub-devicesActive.
Advertisements

Directed Diffusion for Wireless Sensor Networking
Berkeley dsn declarative sensor networks problem David Chu, Lucian Popa, Arsalan Tavakoli, Joe Hellerstein approach related dsn architecture status  B.
Declarative sensor networks David Chu Computer Science Division EECS Department UC Berkeley DBLunch UC Berkeley 2 March 2007.
1 Message Oriented Middleware and Hierarchical Routing Protocols Smita Singhaniya Sowmya Marianallur Dhanasekaran Madan Puthige.
한국기술교육대학교 컴퓨터 공학 김홍연 TinyDB : An Acquisitional Query Processing System for Sensor Networks. - Samuel R. Madden, Michael J. Franklin, Joseph M. Hellerstein,
Towards a Sensor Network Architecture: Lowering the Waistline Culler et.al. UCB.
A Dynamic Operating System for Sensor Nodes (SOS) Source:The 3 rd International Conference on Mobile Systems, Applications, and Service (MobiSys 2005)
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
The Cougar Approach to In-Network Query Processing in Sensor Networks By Yong Yao and Johannes Gehrke Cornell University Presented by Penelope Brooks.
Node-level Representation and System Support for Network Programming Jaein Jeong.
He Huang Introduction:The Flooding Time Synchronization Protocol.
Dissemination protocols for large sensor networks Fan Ye, Haiyun Luo, Songwu Lu and Lixia Zhang Department of Computer Science UCLA Chien Kang Wu.
Multiprocessing Memory Management
Incremental Network Programming for Wireless Sensors IEEE SECON 2004 Jaein Jeong and David Culler UC Berkeley, EECS.
Generic Sensor Platform for Networked Sensors Haywood Ho.
A New Household Security Robot System Based on Wireless Sensor Network Reporter :Wei-Qin Du.
The Design of an Acquisitional Query Processor For Sensor Networks Samuel Madden, Michael J. Franklin, Joseph M. Hellerstein, and Wei Hong Presentation.
Philip Levis UC Berkeley 6/17/20021 Maté: A Tiny Virtual Machine Viral Programs with a Certain Cosmopolitan Charm.
TAG: A TINY AGGREGATION SERVICE FOR AD-HOC SENSOR NETWORKS Presented by Akash Kapoor SAMUEL MADDEN, MICHAEL J. FRANKLIN, JOSEPH HELLERSTEIN, AND WEI HONG.
TCP/IP Protocol Suite 1 Chapter 9 Upon completion you will be able to: Internet Control Message Protocol Be familiar with the ICMP message format Know.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
TAG: a Tiny Aggregation Service for Ad-Hoc Sensor Networks Paper By : Samuel Madden, Michael J. Franklin, Joseph Hellerstein, and Wei Hong Instructor :
April 15, 2005TinyOS: A Component Based OSPage 1 of 27 TinyOS A Component-Based Operating System for Networked Embedded Systems Tom Bush Graduate College.
Context Tailoring the DBMS –To support particular applications Beyond alphanumerical data Beyond retrieve + process –To support particular hardware New.
TinyOS By Morgan Leider CS 411 with Mike Rowe with Mike Rowe.
Weaponizing Wireless Networks: An Attack Tool for Launching Attacks against Sensor Networks Thanassis Giannetsos Tassos Dimitriou Neeli R. Prasad.
On-Demand Traffic-Embedded Clock Synchronization for Wireless Sensor Networks Sang Hoon Lee.
March 6th, 2008Andrew Ofstad ECE 256, Spring 2008 TAG: a Tiny Aggregation Service for Ad-Hoc Sensor Networks Samuel Madden, Michael J. Franklin, Joseph.
TAG: a Tiny Aggregation Service for Ad-Hoc Sensor Networks Authors: Samuel Madden, Michael Franklin, Joseph Hellerstein Presented by: Vikas Motwani CSE.
Sensor Database System Sultan Alhazmi
Korea Advanced Institute of Science and Technology Active Sensor Networks(Mate) (Published by Philip Levis, David Gay, and David Culler in NSDI 2005) 11/11/09.
TRICKLE: A Self-Regulating Algorithm for Code Propagation and Maintenance in Wireless Sensor Networks Philip Levis, Neil Patel, Scott Shenker and David.
Vishal Jain, TinyOS Design Viewpoint “TinyOS” Design Viewpoint.
IntroductionRelated work 2 Contents Publish/Subscribe middleware Conclusion and Future works.
Mate: A Tiny Virtual Machine for Sensor Networks Phil Levis and David Culler Presented by Andrew Chien CSE 291 Chien April 22, 2003 (slides courtesy, Phil.
Query Processing for Sensor Networks Yong Yao and Johannes Gehrke (Presentation: Anne Denton March 8, 2003)
이상훈, 허 윤 (Dept. of CS) René Müller, Gustavo Alonso, Donald Kossmann, “A virtual machine for sensor networks”, ACM SIGOPS Operating Systems Review, v.41.
Part 2 TinyOS and nesC Programming Selected slides from:
REED: Robust, Efficient Filtering and Event Detection in Sensor Networks Daniel Abadi, Samuel Madden, Wolfgang Lindner MIT United States VLDB 2005.
Distributed DBMSs- Concept and Design Jing Luo CS 157B Dr. Lee Fall, 2003.
KAIS T Distributed cross-layer scheduling for In-network sensor query processing PERCOM (THU) Lee Cheol-Ki Network & Security Lab.
Xiong Junjie Node-level debugging based on finite state machine in wireless sensor networks.
A Dynamic Operating System for Sensor Nodes Chih-Chieh Han, Ram Kumar, Roy Shea, Eddie Kohler, Mani, Srivastava, MobiSys ‘05 Oct., 2009 발표자 : 김영선, 윤상열.
KAIS T Medium Access Control with Coordinated Adaptive Sleeping for Wireless Sensor Network Wei Ye, John Heidemann, Deborah Estrin 2003 IEEE/ACM TRANSACTIONS.
By: Gang Zhou Computer Science Department University of Virginia 1 Medians and Beyond: New Aggregation Techniques for Sensor Networks CS851 Seminar Presentation.
Aggregation and Secure Aggregation. Learning Objectives Understand why we need aggregation in WSNs Understand aggregation protocols in WSNs Understand.
W. Hong & S. Madden – Implementation and Research Issues in Query Processing for Wireless Sensor Networks, ICDE 2004.
In-Network Query Processing on Heterogeneous Hardware Martin Lukac*†, Harkirat Singh*, Mark Yarvis*, Nithya Ramanathan*† *Intel.
TreeCast: A Stateless Addressing and Routing Architecture for Sensor Networks Santashil PalChaudhuri, Shu Du, Ami K. Saha, and David B. Johnson Department.
Operating Systems: Summary INF1060: Introduction to Operating Systems and Data Communication.
REED : Robust, Efficient Filtering and Event Detection in Sensor Network Daniel J. Abadi, Samuel Madden, Wolfgang Lindner Proceedings of the 31st VLDB.
Aggregation and Secure Aggregation. [Aggre_1] Section 12 Why do we need Aggregation? Sensor networks – Event-based Systems Example Query: –What is the.
Building Wireless Efficient Sensor Networks with Low-Level Naming J. Heihmann, F.Silva, C. Intanagonwiwat, R.Govindan, D. Estrin, D. Ganesan Presentation.
Single Area OSPF Module 2, Review How routing information is maintained Link-state routers apply the Dijkstra shortest path first algorithm against.
The Design of an Acquisitional Query Processor For Sensor Networks Samuel Madden, Michael J. Franklin, Joseph M. Hellerstein, and Wei Hong Presentation.
RealTimeSystems Lab Jong-Koo, Lim
Why does it need? [USN] ( 주 ) 한백전자 Background Wireless Sensor Network (WSN)  Relationship between Sensor and WSN Individual sensors are very limited.
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
TAG: a Tiny AGgregation service for ad-hoc sensor networks Authors: Samuel Madden, Michael J. Franklin, Joseph M. Hellerstein, Wei Hong Presenter: Mingwei.
Distributed database approach,
Lecture 1 Runtime environments.
The Design of an Acquisitional Query Processor For Sensor Networks
Lecture 14 Virtual Memory and the Alpha Memory Hierarchy
Batch Forwarding in Wireless Sensor Networks (WSNs)
Distributing Queries Over Low Power Sensor Networks
Internet Control Message Protocol
Lecture 1 Runtime environments.
Aggregation.
EE 122: Lecture 13 (IP Multicast Routing)
Presentation transcript:

CS542 Seminar – Sensor OS A Virtual Machine For Sensor Networks Oct. 28, 2009 Seok Kim Eugene Seo R. Muller, G. Alonso, and D. Kossmann

Contents Motivation SwissQM Overview System Architecture QM Program Network Summary

Motivation Introduction Wireless sensor networks are increasingly being used today. Re-programming sensor networks is difficult. TinyOS Integrate OS and application as single unit Application OS

Motivation Surge Basic application Sample one specific sensor periodically and send it to a sink node Low level abstraction nesC code Parameter or Program App. OS task void SendData() { SurgeMsg *pReading; uint16_t Len; dbg(DBG_USR1, "SurgeM: Sending sensor reading\n"); if (pReading = call Send.getBuffer(&gBuffer,&Len)) { : : } }

Motivation Surge Basic application Sample one specific sensor periodically and send it to a sink node Low level abstraction Advantage Efficiency Full control of the node Disadvantage Platform dependent Limited update at runtime Expensive reprogramming of whole application Parameter or Program App. OS

Motivation TinyDB Use a declarative system Data acquisition task expressed as a query QP OS Query High level abstraction SQL-like Query Query Processor (QP) Use table SELECT nodeid FROM sensors WHERE light>100 SAMPLE PERIOD 30s SELECT nodeid FROM sensors WHERE light>100 SAMPLE PERIOD 30s NodeIDLightTemp…

Motivation TinyDB Use a declarative system Data acquisition task expressed as a query QP OS Query High level abstraction Advantage Platform independent Change query  Change application Disadvantage Too abstract Limited expressiveness

Overview Main idea User interface Language independent Gateway Do everything that can be done at the gateway The sensors only process capturing, aggregating, forwarding data. Program processing Increase of concurrency limit Network Reduction of messages sent in the network Solution Use virtual machine (VM) at sensor node SwissQM (Scalable WirelesS Sensor network Query Machine)

Overview SwissQM sensor network Use 33kB Flash memory and 3kB SRAM

Overview SwissQM virtual machine VM is on each sensor node QM Program VM Instruction Set VM Execution Environment TinyOS QM program Bytecode: set of instructions VM instruction set Provide 59 instructions 40 VM instructions (stack, arithmetic, control) 19 core instructions (buffer, sensor, transmission)

Convert of the query language Advantage Easy to extend the number of supported query language Reduce the workload of sensor compared to TinyDB System Architecture Various Queries QM Program Translation Virtual Query Query Complier, Query Optimiser Query Complier, Query Optimiser QM Program Query Type1Query Type2 Gateway

System Architecture Integer-based virtual machineComponents Bytecode interpreter Execute code section Operand stack Store the operands of its bytecode instructions Transmission buffer (array) Buffer the data received and sent Synopsis (table) Store the aggregation state Merge the data from its children and itself SwissQM on the sensor node

33kB Flash memory 3kB SRAM System Architecture SwissQM core 59 instruction set 23kB 10kB : Bytecode interpreter & static memory allocator QM pro1 : QM pro6 384 byte Program descriptor list 16 byte Sampling period, Length of the program, point to the program’s data structure, … QM bytecode Synopsis (optional) Transmission Buffer Stack 64 byte

System Architecture QM program structure.section init Initialize QM program when the QM program is loaded.section delivery Is invoked periodically.section reception Is called when data received from children node

Example 1: Basic Sampling and Sending QM program: section delivery, get_temp# read temperature sensor ipushb 60 if_icmple end# skip if temp<=60 get_nodeid# read node’s ID istore 0# store it at pos. 0 send_tb# send transmission buffer end:.section reception send_tb# forward tuple from child Stack: Transmission buffer: Event: Timer fires Query: SELECT s.nodeid FROM sensors WHERE temp > 60 SAMPLE PERIOD 10s

Example 1: Basic Sampling and Sending Temp (64) Stack: Transmission buffer: Event: QM program: section delivery, get_temp# read temperature sensor ipushb 60 if_icmple end# skip if temp<=60 get_nodeid# read node’s ID istore 0# store it at pos. 0 send_tb# send transmission buffer end:.section reception send_tb# forward tuple from child Query: SELECT s.nodeid FROM sensors WHERE temp > 60 SAMPLE PERIOD 10s

Example 1: Basic Sampling and Sending 60 Temp (64) Stack: Transmission buffer: Event: QM program: section delivery, get_temp# read temperature sensor ipushb 60 if_icmple end# skip if temp<=60 get_nodeid# read node’s ID istore 0# store it at pos. 0 send_tb# send transmission buffer end:.section reception send_tb# forward tuple from child Query: SELECT s.nodeid FROM sensors WHERE temp > 60 SAMPLE PERIOD 10s

Example 1: Basic Sampling and Sending Stack: Transmission buffer: Event: QM program: section delivery, get_temp# read temperature sensor ipushb 60 if_icmple end# skip if temp<=60 get_nodeid# read node’s ID istore 0# store it at pos. 0 send_tb# send transmission buffer end:.section reception send_tb# forward tuple from child Query: SELECT s.nodeid FROM sensors WHERE temp > 60 SAMPLE PERIOD 10s

Example 1: Basic Sampling and Sending nodeID Stack: Transmission buffer: Event: QM program: section delivery, get_temp# read temperature sensor ipushb 60 if_icmple end# skip if temp<=60 get_nodeid# read node’s ID istore 0# store it at pos. 0 send_tb# send transmission buffer end:.section reception send_tb# forward tuple from child Query: SELECT s.nodeid FROM sensors WHERE temp > 60 SAMPLE PERIOD 10s

Example 1: Basic Sampling and Sending Stack: nodeID Transmission buffer: Event: QM program: section delivery, get_temp# read temperature sensor ipushb 60 if_icmple end# skip if temp<=60 get_nodeid# read node’s ID istore 0# store it at pos. 0 send_tb# send transmission buffer end:.section reception send_tb# forward tuple from child Query: SELECT s.nodeid FROM sensors WHERE temp > 60 SAMPLE PERIOD 10s

Example 1: Basic Sampling and Sending Stack: Transmission buffer: Event: Transmission QM program: section delivery, get_temp# read temperature sensor ipushb 60 if_icmple end# skip if temp<=60 get_nodeid# read node’s ID istore 0# store it at pos. 0 send_tb# send transmission buffer end:.section reception send_tb# forward tuple from child Query: SELECT s.nodeid FROM sensors WHERE temp > 60 SAMPLE PERIOD 10s

Network Messaging in the Network Message Types Program Messages Result Messages Command Messages (Node Reset, Program Stop,…) Traffic Pattern Root to all Program and Command Messages All to Root Result Messages Local Broadcasts Routing updates and time synchronization

Network Routing of Result Messages Topology Spanning tree protocol Every node keeps a link to a parent node closer to the root Link quality calculation Clock synchronization Piggybacking Routing message contains timestamp Set clock with timestamp – transmission delay

In-network Aggregation Reduce the number of messages sent to the gateway Ex) What is the average temperature in the network? Basic transmission Aggregation result # of message: 5 # of message:

In-network Aggregation In-network Aggregation in SwissQM Use the synopsis, translation buffer, and merge instruction Use TAG Approach (Tiny Aggregation) Initialiser function Create the initial aggregation state on the synopsis Merger function Merge its own state with the aggregation states received from its children Finaliser function Computes the final value of the aggregation

Merge Instruction Invoke the merge function in stack Structure merge( n, m, aggop 1,..., aggop m ) n : Grouping Expressions m: Aggregate Expressions aggop: aggregate operation Push arguments on stack in the reverse order Example Merge Function.section reception iconst_2 # aggregate type MAX=2 iconst_1 # num. of aggregate expressions iconst_1 # num. of group expressions merge

Merge Function Merge operation Merging aggregation state from the transmission buffer to the local synopsis Example The merge operation of node 2 when node 2 receives the synopsis of node 3

Program Dissemination Fragment messages approach Split into several fragment messages. 24 bytes Fragment Fragment 0 10 bytes meta-data The length of the sections Sampling period Presence of synopsis Number of fragment Sensor Allocate memory when it receives fragment 0

Program Dissemination Fragment recovery mechanism Timeout for program reception Request node Timer starts when first fragment message is successfully received When this timer times out, request message to its neighbors Contains the program ID and the missing fragments Reply node Generate the requested fragments when it receives request message Send the reply message back to the requesting node.

Experiments Compare the program sizes of TinyDB and SwissQM for the queries generating the same data SwissQM not only users less messages, but also smaller messages than TinyDB

Pros Characteristics Separation between sensors and external interface Language-independent No application specific functionality in sensors Multi-programming environment Running of six different programs concurrently on a single node Optimization of the use of the sensors Three kinds of process; capturing, aggregating, and forwarding data. Extensibility Support of the use of the user defined functions Easy program dissemination Compact programs due to the powerful instruction set

Cons System problem Is not suite to the networks in which many point-to-point streams are dynamically created between sensors interpretation overhead are required Documentary problem No mention about The technical issue of the bytecode instruction set extension Reprogramming technology the proposed virtual machine model uses Too little evaluations on the performance Require long-term experiment to evaluate the performance to run SwissQM compared with the other low-level abstraction program or TinyDB itself Require evaluation of whether SwissQM is the platform-independent

CS542 Seminar – Sensor OS Thank you for your attention