florissi_ASN10-99 - Electrical and Computer Engineering, ECE
Download
Report
Transcript florissi_ASN10-99 - Electrical and Computer Engineering, ECE
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