|Comp osition for Activ

advertisement
liane
liane|Composition
for Active Networks
Samrat Bhattacharjee Ken Calvert Ellen Zegura
Networking and Telecommunications Group
College of Computing
Georgia Institute of Technology
Atlanta, Georgia, USA
http://www.cc.gatech.edu/projects/canes
Sponsors: DARPA, NSF
1
liane
Problem Statement
Dynamically create per-user network services whose
behavior can be analyzed with respect to safety of the
active network and progress of the composite computation.
Tension between network safety and programmability
Users can create dynamic services and
Network is protected
)
Create dynamic services by composition and
Analyze safety by formal methods
2
liane
3
Approaches towards Composition
Turing-complete language
Object-oriented composition
Software bus | polylith
Event-driven framework | micro-protocols in x-kernel
f:
Abstract
Method
Generated
Sub−class
Base class
logical
run
time
f:
Virtual
Method
Object Oriented
user code software
module
bus
Software Bus
event
event
handlers
Event Framework
Figure 1: Composition Mechanisms
liane
Variable function signature | polylith, micro-protocols
Application structure is xed | Object-oriented, polylith
None are Perfect!
Need active software interconnect
implements run-time composition framework
can be used to assert provable node properties
Formal properties lay entirely on provable properties of code
modules | in all cases
4
liane
5
liane
| A formal composition framework
Underlying program | supplied by node provider
Processing slots | localizes user code
Injected programs | selected, provided by users
underlying
program
injected
programs
defines
and
raises
processing
slots
LIANE Composite Service
one
underlying
program
formal
composition
operator
composed
with
{
,... ,
}
finite set of
injected
programs
Restrictions and obligations of injected code
Formal transformation technique to form composite program
liane
liane
| Example
ferror messages to sourceg
fsend route back,
select alternate interfaceg
fcong. control algorithmg
fscheduling algorithmg
ftrace route, caching,
select route table, discardg
Parse packet, obtain source s, destination d
Slot 0:[null]i
h
Outputlist := ()
i := Lookup(d, route table R)
if Outputlist = () then hSlot 1:[null]i
Slot 2:[null]i
h
if i is congested then hSlot 3:[discard]i
else hSlot 4:[null]i
enqueue packet for i.
Figure 2: Example Underlying Program with processing slots
6
liane
Ongoing work on unity model
an-sim nodes simulate composition using liane
Used to implement an-sim
Status
7
Download