Wireless Sensor Networks (WSNs) Middleware for Sensor Networks: Integration of entire system into a tiny Agilla, Agimone and Servilla package (CPU, RAM, wireless NIC, sensors) Battery Powered Weak radio (IEEE 802.15.4) Chien Chien-Liang Fok -Liang Fok, Gruia-Catalin Roman, and Mica2 & Mica2dot Low power consumption Chenyang Lu Ad hoc mesh network CSE 467S Spring 2009 Intel iMote Tmote Sky Wireless Sensor Network Research Group Department of Computer Science and Engineering Tyndall 25mm cube Smart Dust 2 Applications Problem Definition Software development for sensor networks is hard Limited resources Difficult to debug Structure Monitoring Large & dynamic network Habitat Monitoring Micro-Climate Research Existing software lacks flexibility Cannot adapt to changes in • the environment • user requirements Industrial Container Medical Care Military Monitoring Monitoring 3 4 Agilla: A Flexible Middleware for Motivating Example Sensor Networks Three applications: 1) Environmental Monitoring, Sensor network as a shared computing resource 2) Fire Detection, 3) Fire Tracking Flexible application deployment Env. monitoring agent Fire detection agent Fire tracking agent 5 6 1
Agilla’s System Architecture Agilla’s Computational Model Node @ (2,1) Node @ (1,1) Agents Agents PC Clone migrate or Stack Migrate Code Condition Codes remote Neighbor Neighbor access Tuplespace Tuplespace List List Heap Two variants: Middleware Services Middleware Services 1) Strong (code + state) Agilla Middleware Agilla Middleware 2) Weak (code only) TinyOS TinyOS 7 8 Location-Base Addressing Tuple Space Coordination: Decoupling Capture spatial aspect of WSNs out {[string:”job”], [string:”sense”]} in {[string:”job”], [type: string]} 1 (3,3) (3,1) (3,2) 2 boss Tuplespace worker (2,2) clone to (3,3) clone to (3,1) Fire Detection (1,3) (1,1) Agent bosses workers 9 10 Lime: Federated Tuple Space Agilla: Distributed Tuple Spaces Unreliable wireless network out {[string:”job”], [string:”sense”]} in {[string:”job”], [type: string]} Distributed transactions are too costly Distributed transactions are too costly Create a unique tuple space to each node 1 But enable remote access 2 “rout” boss Tuplespace worker “in” “in” “out” Tuplespace Tuplespace bosses workers 11 12 2
Agilla Tuple Space API Neighbor Discovery Remotely accessible localized tuple spaces Beacon-based out in Contains own location + location of known base station Stores context information Each node maintains a list of known neighbors Facilitates inter-agent coordination Tuplespace Access via: getnbr , numnbrs , cisnbr , randnbr Local Agent @ (x,y): weak clone to first neighbor if one exists Remote out : insert BEGIN pushc 0 // push 0 onto stack rout : insert in : remove getnbr // get 1st neighbor in list rd : read rinp : probing remove rjumpc GOTNBR // jump if neighbor exists inp : probing remove rrdp : probing read halt GOTNBR wclone // weak clone to neighbor rrdpg : probing group read (1-hop) rdp : probing read pushc 1 routg : group out (1-hop) regrxn : register reaction putled // turn on red LED deregrxn : deregister halt reaction 13 14 Engineering Challenges (1 of 3) Implementation on TinyOS 1.x Unreliable communication Agilla is available for Mica2 and MicaZ motes divide agent into small (< 41 bytes) packets 4 agents/node use link-level ARQs Agent Injector perform hop-by-hop migration Written in Java Remote Injection via RMI clone(4,1 Key Challenges: ) Memory: • ROM: 54.7KB of 128KB • RAM: 3.5KB of 4KB Message loss (1,1) (2,1) (3,1) (4,1) 15 16 Engineering Challenges (2 of 3) Engineering Challenge (3 of 3) Low bandwidth communication Limited memory (MICA2 motes have 4KB RAM) Remote tuplespace operations do not utilize hop-by- Delicate memory allocation: hop acknowledgements Agent code: 264 bytes Minimize overhead Tuple Space: 100 bytes Tuple: 25 bytes max Reaction Manager: 10 reactions, 360 bytes rrdp(…) Neighbor list: 8 neighbors, 32 bytes Agent op stack: 150 bytes Max number of agents per node: 3 Memory usage: 3.5KB RAM (1,1) (2,1) (3,1) (4,1) 54.7KB ROM 17 18 3
Compact Code: An Example (1 of 2) Compact Code: An Example (2 of 2) The fire tracking agent: Agent @ (x,y): Take a reading & send result to base station, loop 1 BEGIN pushn fir BEGIN pushc TEMPERATURE 2 pusht LOCATION sense // sense the temperature 3 pushc 2 // push template onto stack pushc 1 // indicate 1 field in tuple 4 pushc FIRE // push callback address pushloc 1 1 // push location (1,1) onto stack 5 regrxn // register reaction rout // remote out 6 wait // wait for reaction to fire pushc 1 sleep // sleep for 1/8 second 7 FIRE pop rjump BEGIN // jump back to BEGIN 8 sclone // clone to node detecting fire Agent @ (1,1): Block for reading tuple & forward it to laptop, loop … // fire tracking code BEGIN pusht READING // push type=reading 1. Registers a reaction sensitive to fire alert tuples pushc 1 // indicate 1 field in tuple in // blocking in operation 2. Clones itself onto a node that detects fire pushloc uart_x uart_y // push UART address onto stack rout // remote out rjump BEGIN // jump back to BEGIN 19 20 Alternative Agent Using Reactions Agilla 1.x Test Bed 6x9 Mica2 Mote Agent @ (1,1): Register reaction for reading tuples & forwards them to the laptop Test Bed Multi-hop Grid BEGIN pusht READING // push type=reading pushc 1 // indicate 1 field in tuple One base station pushc FIRE // push address of FIRE_RXN regrxn // register a reaction … // do other tasks FIRE pushloc uart_x uart_y // push UART address onto stack rout // remote out jumps // jump back to orig. location Base Station 21 22 Performance Evaluation: Agilla Instruction Execution Times migration vs. remote tuple space access Local Migration instructions are more Operations reliable because of hop-by-hop acknowledgements… Remote …but remote tuplespace operations Operations have less overhead 23 24 4
Comparison with Alternate Systems Difficulty to Compare Agilla What are the alternative systems? Agilla is not intended to be used as a code- propagator Maté Deluge Alternative systems only epidemically propagates code Agilla propagates agents at application level application level with slight optimization Use tuples to prevent duplicate agents 25 26 Experimental Setup Comparison Results Washington University Wireless Sensor Network Testbed 31 TelosB nodes, 5 th floor of Jolley Hall 27 28 More Application Experiences Fire Detection and Tracking Fire Detection & Tracking Presented at MURI 3-Year Review and IPSN 2005 Efficient Network Exploration In collaboration with UCI Presented at MURI 3-Year Review Intruder Detection and Tracking Yuling Liang’s CS 521S Class Project Cargo Tracking In collaboration with Robot Navigation Around Fires In collaboration with the Media Machines Lab 29 30 5
The Static Fire Agent The Fire Detector Agent 31 32 The Fire Tracker Agent Static Fire Mapping Entire agent is 58 lines of code Fire doesn’t move, how fast do tracker agents form perimeter? 33 34 Results of Static Fire Mapping Dynamic Fire Tracking 35 Video available at: http://mobilab.wustl.edu/projects/agilla 36 6
Results of Dynamic Fire Tracker Efficient Network Exploration • Goal: Explore the whole network Slow: Fire clones every 7 seconds • Off-line genetic algorithm Fast: Fire clones every 5 seconds determines number of agents and tentative paths • On-line route adaptation strategy. Percent Network explored v. Time 37 38 Intruder Detection and Tracking Cargo Tracking 7 million containers arrive annually into the US Impossible to check every container Existing container security devices are limited: Base • Requires line-of-sight with satellite Station • Low-bandwidth (six 9B msgs/day) • $500/device, $34.95/mo Tracker sends back a heartbeat. Base station re-deploys tracker if heartbeat goes away. 39 40 Dynamic Context Discovery & Multi- AgiTrack: Cargo Tracking using Agilla Hop Network Formation • Find Cargo • Load Manifest • Find Intrusions Internet base station base Dock station base PDA station base • Manifest station • Security Flags Ship 41 42 7
Recommend
More recommend