What is EnviroSuite? � A new paradigm: Environmentally immersive EnviroSuite: programming (EIP) An Environmentally Immersive � A programming framework to simplify sensor Programming Framework for network programming Sensor Networks � An object-based programming system � A middleware service for monitoring and Liqian Luo, Tarek F. Abdelzaher University of Illinois at Urbana-Champaign tracking applications Tian He University of Minnesota � A software development suite, which includes a John A. Stankovic University of Virginia library (EIPLib) and a compiler (EIPLC) Presented by Mark Wood November 27, 2006 CSE 521S Wireless Sensor Networks Washington University in St. Louis 2 CSE 521S Environmentally Immersive Programming EnviroSuite Objects (EIP) � Object-based programming system � Environmental objects � Objects represent elements in the external � A sensory or geographic signature that environment (i.e. a vehicle, a geographic area) defines an area � Objects can be created or destroyed automatically by runtime events � Data variables to be collected in an area � Objects can track elements moving across a � Methods that can be performed in its context network � Function objects � Objects encapsulate the aggregate state of physical elements � Regular objects which do not represent � Objects can be used for sensing or actuation environmental elements tasks 3 4 CSE 521S CSE 521S Software Example: Surveillance application � EIPLib � A programming library (in nesC) that provides the detailed implementations � Abstracts some of the low-level functions from the programmer � Simplifies programming for the user � EIPLC � A compiler (in PERL) that translates EnviroSuite applications into nesC code 5 6 CSE 521S CSE 521S 1
Relation to nesC Object IDs � Label a contiguous group of nodes that match a sensory signature � Data operations can be performed on different locales based on their object ID � Group state is stored in variables encapsulated within named objects 7 8 CSE 521S CSE 521S Object Declaration - Example Object Declarations � Object type - programmer-defined label � Object context – mapping of the object to an environmental element � Object attribute – measurements collected and aggregated in the object context � Object method – encapsulated methods that perform computation, communication or actuation 9 10 CSE 521S CSE 521S Object Context Object Context � EIPLib contains sensor data processing � Object conditions can also be parameterized. algorithms that can return: � sensor output, i.e. temperature() � Example: � environmental conditions, i.e. vehicle_sound() � node attributes, i.e. voltage() object_condition = altitude()>500 && temperature()<32; � Example: object_condition = ferrous_object() && vehicle_sound(); 11 12 CSE 521S CSE 521S 2
Object Attributes Object Methods � Sensor measurements and aggregation � Methods in object_main_function statements get method called during object creation � Degree of confidence in received object_main_function = vehicle.getLocation; aggregation � Methods in object_function statements get called � Freshness of attribute only by other objects object_attribute location object_function = monitor.reportLocation; attribute_value = AVERAGE(position()) attribute_degree = 2 attriute_freshness = 500ms 13 14 CSE 521S CSE 521S Inter Object Call (IOC) Global Variables � Methods can use EnviroSuite communications primitives � Globally shared static variables can be defined with ES_READ To execute an IOC and declare its handler: and ES_WRITE ES_IOC report = call monitorInstance. command result_t vehicle.getLocation(){ monitor.reportLocation(currentLocation); call ES_WRITE(monitorInstance.vehicleNumber, To receive IOC result interrupts: monitorInstance.vehicleNumber + 1); return call Timer.start(TIMER_REPEAT,500);} ES_IOCRESULT report(bool result) { // deal with remote call results here return; } 15 16 CSE 521S CSE 521S Event Object Maintenance EnviroSuite supports 3 types of objects: � Event objects – created for mobile events that � Event objects are created dynamically dynamically change their geographic location � Multi-target group management protocol (MGMP) gives the object a unique object ID � Region objects – mapped to static or slowly � Movement of the contiguous region changes moving regions group membership � Function objects – not mapped to an � MGMP maintains the object ID for the event environmental element object despite mobility � This is transparent to the programmer 17 18 CSE 521S CSE 521S 3
State of Nodes Around an Environmental Event Maintaining Object Uniqueness � Internally, MGMP elects a leader to maintain a unique object ID � The leader sends periodic heartbeats to nodes within the object_resolution � The heartbeat period can affect the object creation latency � Nodes can have only one object ID � MGMP maintains a state machine for node state transitions � A delayed object creation mechanism is used to ensure that the group has elected a single leader 19 20 CSE 521S CSE 521S Tracking Moving Events Region Object Maintenance � Object migration - Leadership handover, used � Region objects are associated with a relatively fixed set in tracking moving events of nodes � Follower nodes hear heartbeats from leaders � A default leader sends out tree requests and know in advance the incoming event � Spanning tree algorithm is used to construct a multi- � When the event is sensed, the node joins parent diffusion tree with the leader as root existing objects as a member , instead of � The tree’s outer boundary is defined by outer nodes creating spurious objects � Adding and pruning of tree leaves is done to satisfy the � The trajectory of the leader is stored in its object condition representing object � Object attributes get aggregated along intermediate hops � When 2 events cross, the leaders use a � The root of the aggregate tree is migrated to the temporary object ID which is a concatenation of location that minimizes communication and both, and track each other’s trajectory until a aggregation overhead, and to a higher energy node disambiguation algorithm can be used 21 22 CSE 521S CSE 521S Evaluation: Object Creation Delay Evaluation: Object Migration 23 24 CSE 521S CSE 521S 4
Evaluation: Inter-Object Communication Evaluation: Object Crossing 25 26 CSE 521S CSE 521S Critiques Evaluation: Code Length � Hard-coded content (fixed number and type of objects you can track) � The mote cannot access the object ID � The object ID is an abstraction on the base station (not simplifying the code in the network itself) � Requires a leader (electing a leader and changing the leader) 27 28 CSE 521S CSE 521S EnviroSuite & Semantic Streams [Whitehouse, et al. 2005] Summary Both have similar goals: � Programming framework to simplify sensor network � Environmentally immersive programming can programming be used to abstract environmental elements � Middleware service for monitoring and tracking applications � EnviroSuite provides a library of algorithms for � Confidence level for environmental element classification tracking and environmental monitoring � To abstract environmental elements, simplifying � Programming is simplified and code length is programming reduced � Network-based, rather than node-based language � Evaluation shows EnviroSuite performs well in � Energy-balancing in sensor networks maintaining object uniqueness and identity, and This work makes it possible for non-technical people to inter-object communication write efficient programs for sensor networks. 29 30 CSE 521S CSE 521S 5
Questions? 31 CSE 521S 6
Recommend
More recommend