Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
The Network Flow Language (NFL) for Active Sensor Networks (ASNs) Danilo Florissi, Yechiam Yemini (YY), Sushil da Silva, Hao Huang Columbia University, New York, NY 10027 http://www.cs.columbia.edu/dcc/asn {df,yy,dasilva,hhuang}@cs.columbia.edu Toward Programmable Adaptive SNs Key ideas Active Networks (ANets) enable programming of network transport and processing functions SNs need to adapt flexibly to limited resources, changing external conditions, and different foci of user interest Goal: facilitate programmable adaptive SNs through ANet ASN SN Scenario Active Networks ANet render networks programmable Deploy code dynamically to create new node functionality Approaches: code delegation or packet capsules The NetScript Language Dataflow model: Active element = packet stream processor engine Active elements are composed from boxes (computational channels) Boxes encapsulate computations Composition through interconnection Synchronization of streams motions Allocation of underlying resources Simple model of inter-operability NetScript Dataflow Model Example: IP stack Dynamic deployment of new stack components On-the-fly change/upgrade of functionality IPX Eth Eth Demux UDP IP AppleTalk TCP Marks in Web Documents HTML: embedded marks define operations on object XML: support programming of marks Syntax and semantics of marks are programmable DTD files define syntax XSL files define semantics Marks meaning can vary in time and among processors XSL files can be dynamically loaded and changed NFL: Language for Marked Flows Marked language to program processing of network flows NFL programs flows ~ XML programs Web documents/objects Marks replace protocol headers and can program: Routing, flow control, admission control, resource reservation, content filtering, caching, etc. Marks can extend or replace protocol stacks NFL Main Components Mark syntax FTD: Flow Tag Definition ~ DTD Mark semantics XFL: eXtensible Flow Language ~ XSL NetScript: natural candidate for semantics of NFL marks NFL is an execution environment for programming active sensor applications NFL flow NetScript boxes and links Node Mark processing by NFL Known marks are routed to processing boxes Unknown marks spawn processing boxes from NFL servers Server NFL flow NetScript boxes and links Node What Can You Do With Marks? Create your own protocols Marks replace protocol headers Marks are naturally stacked through nesting Combine networking and computing functions E.g., contents-based routing E.g., contents-based error/QoS control Program a SN dynamically Recent Work Design of NFL Overall runtime architecture Language syntax and semantics Integration with NetScript Start design and implementation of sample application Efficient HTTP protocol (UXTP) On-demand control Target is very fast web access Looking at other systems proposed by SenseIT researchers Implement components in NFL Drive the design and implementation of the language Near Future Challenges Porting NetScript to WINS NetScript currently works on Java VM Heavy use of resources Java VM for Windows CE Port dynamic deployment of boxes Box servers come and go Single hop or multiple-hop Optimize use of limited resources Minimize memory demand on sensors Minimize overhead of NFL runtime NFL implementation of interesting SenseIT applications Examples of NFL Applications Example: Prioritization of Samples Problem: samples have different levels of priorities and the network has to prioritize delivery of flows Data flows In 7 1 0 5 10 0 Priority Sorter Priority Queue Node 7 5 1 NetScript boxes and links Data flow Out 10 0 0 Code: Priority in NFL Samples are marked with name and priority levels Sensor Server: <samples URI=”http://www.cs.columbia.edu/multicast1270”> <data priority=5> 12, 15, 14, 17 </data> <data priority=10> 7, 75, 882, 1 </data> <data> 6, 10, 8, 8, 9 </data> </samples> Example: Route Discovery for WINS Problem: WINS sensors deployed in battlefield need to discover efficient routing to minimize power consumption Code: Route Discovery for WINS Sensors broadcast their known distance to peer sensors Small physical distance ~ less power consumption Sensor Server: <announce-name URI=”http://www.sensor16.cs.columbia.edu”> </announce-name> Sensor Client: <announce-routes> <route-entry> URI=”http://www.sensor25.cs.columbia.edu” 16 sensor17 </route-entry> <route-entry> URI=”http://www.sensor5.cs.columbia.edu” 2 sensor9 </route-entry> </announce-routes> Example: Simple Diffusion Routing (I) Problem: WINS should route data contents, not individual packets B A B B Flow A Flow Sorter Flow B A A A A A Example: Simple Diffusion Routing (II) Problem: handling failures to links and nodes New NetScript boxes are loaded to handle enhanced functions B A A A A B B Flow Sorter Flow A Diffusion Criteria Flow B A A A A Code: Simple Diffusion Routing Sensor Client: <event-subscribe id=”102” event-label=”image” URI=”http://www.sensor1076.cs.columbia.edu” URI=”http://www.cs.columbia.edu/multicast1270”> </event-subscribe> Sensor Server: <samples URI=”http://www.cs.columbia.edu/multicast1270”> <data> 12, 15, 14, 17 </data> <image> <!–- image contents> </image> <data> 6, 10, 8, 8, 9 </data> </samples> Manager: <event-notification id=”765” event=”link-down” URI=”http://www.cs.columbia.edu/multicast1270”> URI=”http://www.sensor1053.cs.columbia.edu/link7” </event-notification> Example: Trading Processor/Bandwidth Problem: flows should compress or expand to minimize use of stressed resources in each sensor Sensor Server: <flow URI=”http://www.display7.cs.columbia.edu”> <conditional-compress condition=”bandwidth < 1Mbps”> <image> <!-- image data> </image> </conditional-compress> </flow> Controlling SN With Marks Marks can be used to configure and control Sensor functions End-end QoS delivery by the network and sensors Routing strategy to maximize QoS, minimize power, etc. Caching of previous samples (for calculation of statistics) SN Event Processing with Marks Marks can be used to present event data & control processing Specify the type of data (seismic, streaming audio, etc.) The processing of marks at sensors the flow crosses may depend on local conditions (available processor, link bandwidth, etc.) Conclusions, Plans, and Schedule ANet can bring flexibility and simplicity for SN programming NFL marked flow processing paradigm can specify and enhance SN functionality Plans and Tentative Schedule 7/1999: New contract started 8/1999: New SOW 10/1999: Work on design and implementation of NFL 1/2000: Projected first prototype of basic NFL 3/2000: Port to SenseIT devices 6/2000: Implement relevant SenseIT application(s) Interact with SenseIT community to identify key needs Use SenseIT applications to drive design