200 likes | 214 Views
Explore applications, programming challenges, technology hurdles, and current approaches in sensor networks. Learn about static and dynamic sensing missions, network structures, and global queries.
E N D
Programming Sensor Networks Andrew Chien CSE291 Spring 2003 May 6, 2003
Outline • Applications Requirements • Programming Challenges • Technology Challenges • Current Approaches • New Directions
Applications Requirements • Broad and Amorphous • Tremendous breadth • No single design point • What are some example requirements…
Static Sensing Mission • Examples: industrial, bridge, civil infrastructure, environmental monitoring • Static Deployment of Sensor network • Limited mission change, evolution • Update dominated by management and failure/repair • Slow adaptation, configuration acceptable • Monitor and Activate in response to stimuli • Capture data and process • Stream to base station systems
Dynamic Sensing Mission • Examples: disaster response, military or police search, surveillance • Dynamic deployment of sensor network • Rapid mission change, rapid evolution on command • Update limited due to short intense missions, but reconfiguration to changing mission • Fast adaptation, configuration critical • Monitor and Activate in response to stimuli • Capture data and process • Process in network and actuate or Stream to base station systems
Dynamic Network Structure • Examples: airborne, water born, vehicle born, zebra born sensornets • Coastal Sensor Networks • Dynamic deployment of sensor network • Slow mission change, evolution • Rapid network structure change due to physical movement, environment change, or failures • Fast adaptation, configuration critical • Monitor and Activate in response to stimuli • Capture data and process • Process in network and actuate or Stream to base station systems
Sensor Network Programming Challenges • Describe the distributed computation and sensing structures • Manage/Tolerate the irregular and changing network structure to achieve the computational goal • Reflect the accuracy / capability with which the sensor network can achieve mission • Detect needs for reconfiguration and repair • Enable optimization of program structure by automatic tools • Enable adaptation of program structure to new configurations with automatic tools • Enable gracefully degrading behavior with loss of resources and same source program • Enable energy/resource conservation with techniques such as sleep/idle • Others?
Relevant Technologies • Raise the level • High Level and Declarative Programming • Tolerance to change, portability • Parallel computation • Management of Computation/Communication, Concurrency, and Distribution • Aggressive compiler control of behavior/implementation
Relevant Foundations • Distributed Systems and FT community • Protocols, algorithms, implementation knowledge, programming techniques • Embedded and RT systems community • Local tools • Managing resource requirements
Technology Challenges • Powered and Limited power • Limited interconnectivity (link, bisection), external connectivity • Limited coordination • Limited memory • Unreliable nodes • Network evolution (upgrades and failures)
Current Approaches • C++ and Embedded SW Engineering • NesC • TinyDB
C++ & Embedded SW Engin. C++ • Cyclic executive or Priority Driven scheduler • Collection of real-time tasks • Manually Manage (some tools) • Concurrency and correctness • Memory constraints • Distributed application structure • Irregular sensor node distribution • Sensor network change/evolution C++ C++ C++
Cmd/ Event Cmd/ Event Cmd/ Event Cmd/ Event NesC • TinyOS like interface with • Call/Event Pairs • Concurrency safety conditions • Type Checking • Manually Manage • concurrency and correctness (some help) • memory constraints • distributed application structure • Irregular sensor node distribution • Sensornetwork change/evolution
TinyDB • Relational Model (table of sensor data sources) • Simple Operators • Semantics for transformation / implementation of Queries • Optimize deployment and implementation for power • Acquisitional Query processing • Optimize implementation and data acquisition for power • Manually Manage • concurrency and correctness (some help) • memory constraints • distributed application structure (some help) • Irregular sensor node distribution (some help) • Sensornetwork change/evolution (some help) Global Queries Query Plan and Map
Spatial Programming • Spatial structures (processor array) in programming systems • Spatial structure <-> physical space ? • Fortran D / HPF (imperative, spatial, explicit optimization/communication management) Global Program + Partition Data, Map/Optimize
Collection Programming • Collection structures <-> sensor collections? • Nesl • CA/ICC++ • Object-oriented Simulation models • Elements • Collection oriented naming • Collection structuring, indexing • Programmed cooperative behavior • Presumed distribution and optimization Global Program + Map/Optimize
Data/Communication Oriented • Local program + communication models which support asynchronous interactions • Tuple Spaces (Linda) • Publish-subscribe • Bulletin Boards • Data dissemination systems – content-based query systems • Peer to peer systems (gnutella, freenet, etc.); Content Filtering/ranking systems (OpenCola, others) • TinyDB implementation techniques or different semantic framework? • -> we won’t focus on these Pub- Sub Bulletin Boards Tuple Space Point To Point … … … …
Summary / Discussion • Just scratched the surface on the programming problem • Low-level mechanisms and relational model provide starting point • Higher level models common threads • Global views • Imperative control • Explicit decoupling of expression from underlying resources • Expose distribution for compiler managed communication • Support for asynchrony • Will explore over coming weeks