200 likes | 205 Views
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
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