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