1 Self-Routing in Pervasive Computing Environments using Smart Messages Cristian Borcea, Chalermek Intanagonwiwat, Akhilesh Saxena (Rutgers University), and Liviu Iftode (University of Maryland)
Dec 19, 2015
1
Self-Routing in Pervasive Computing Environments
using Smart Messages
Cristian Borcea, Chalermek Intanagonwiwat,
Akhilesh Saxena (Rutgers University), and Liviu Iftode (University of Maryland)
2
Networks of Embedded Systems
Linux Cell PhoneLinux WatchLinux CameraLinux Car
• Functionally heterogeneous nodes• Very large scale• Ad hoc topologies• Dynamic network configurations• Limited a priori knowledge about network resources
3
Programmability Challenge
• Traditional message passing distributed computing does not work for networks of embedded systems– unknown and volatile network configurations
– end-to-end data transfer may hardly complete (i.e., “all or nothing” semantics is not appropriate)
– fixed address naming and routing (e.g., IP) are too rigid
• Our Solution: Cooperative Computing using Smart Messages
• More flexible naming and routing are needed– applications interested in content/services, not individual nodes
– different applications have different routing requirements
4
Outline
• Motivation• Smart Messages Overview• Self-Routing Mechanism
– content-based migration– application scenarios
• Evaluation– SM prototype– simulations
• Related Work• Conclusions & Future Work
5
Smart Messages at a Glance
• Distributed computing using execution migration
• Applications composed of one or multiple Smart Messages
• Smart Message (SM):– composed of code, data, and execution state
– executes on nodes of interest named by properties
• Cooperative Nodes:– execution environment (Virtual Machine)
– content-based memory (Tag Space)
• Self-Routing– routing performed at application-level
– applications can change routing during execution
6
Application Example
n=0while (n<2) migrate(Taxi); if (readTag(Available)) writeTag(Available, false); writeTag(Location, myLocation); n++;
n=0
Taxi Taxi
n=0 n=0 n=1 n=1 n=2
need2
taxis
mobile data
application
routing
7
Node Architecture
AdmissionManager
VirtualMachine
SM arrival SM migrationsm1sm2
……
tag1
tag2
……
Tag Space
Admission prevents excessive use of resources
Execution is non-preemptive,
but time bounded
•Two types of tags:– application tags – I/O Tags
•Tags used by SMs for:– naming– storage – synchronization– I/O access
SM Ready Queue
8
Smart Messages Migration
1 2 3 4
migrate(Taxi)
sys_migrate(2) sys_migrate(3) sys_migrate(4)
• Two level migration: – migrate()
• embeds routing algorithm• migrates application to next node of interest• names nodes in terms of arbitrary conditions on tag names and tag values
– sys_migrate()• one hop migration• used to implement migrate
TaxiTaxi
9
migrate(Taxi){ while(!readTag(Taxi)) if (readTag(RouteToTaxi)) sys_migrate(readTag(RouteToTaxi)); else create_SM(DiscoverySM, Taxi); createTag(RouteToTaxi, lifetime, null); block_SM(RouteToTaxi, timeout);}
migrate(Taxi){ while(!readTag(Taxi)) if (readTag(RouteToTaxi)) sys_migrate(readTag(RouteToTaxi)); else create_SM(DiscoverySM, Taxi); createTag(RouteToTaxi, lifetime, null); block_SM(RouteToTaxi, timeout);}
Migration Example
1 2 i
RouteToTaxi = 2
TaxiRouteToTaxi = ?
Network
migrate(Taxi){ while(!readTag(Taxi)) if (readTag(RouteToTaxi)) sys_migrate(readTag(RouteToTaxi)); else create_SM(DiscoverySM, Taxi); createTag(RouteToTaxi, lifetime, null); block_SM(RouteToTaxi, timeout);}
RouteToTaxi = j
10
Self-Routing
• Smart Messages carry the routing and execute it at each node
• Smart Messages control their routing
– select routing algorithm (migrate primitive)
• from multiple library implementations
• implement a new one
– change routing algorithm during execution
• in response to adverse network conditions
• according to application’s requirements
11
Dynamic Change of Routing (1)
while (n<3) try{ migrate(tag, timeout1); }catch(TimeoutException e){ migrate(tag, timeout2); }
Dense networkLow mobility
Proactive routing
Sparse networkHigh mobility
On-demand routing
12
Dynamic Change of Routing (2)
migrate(circle); while (n<3) migrate(tag);
geographical routing to reach circle
space-bound on-demandrouting to reach the
nodes of interest
13
Smart Messages Routing Algorithms
• Goal: Evaluate the potential of SMs to implement different content-based routing algorithms– on-demand content-based routing (similar to AODV [Perkins
’99])
– greedy geographical routing (similar to GPSR [Karp ’00])
– proactive routing using Bloom filters (similar to Probabilistic Routing [Rhea ’02])
– rendez-vous routing (combining on-demand and proactive routing)
• e.g., geographic dissemination + limited flooding
• advantage: improves the response time for applications while avoiding global dissemination and large scale flooding
14
Evaluation Strategies
• Implementation
– SM prototype over Sun Java KVM on HP iPAQs
– small scale network (8 nodes)
– evaluated the effects of code caching
• Simulation
– SM simulator
– large scale network (256 nodes)
– evaluated the effects of best routing selection and
dynamic change of routing
15
Prototype Implementation
• Modified version of Sun Java KVM
• HP iPAQs running Linux
• 802.11 for communication
Completion Time
Routing algorithmCode not cached (ms)Code cached (ms)
Geographic
On-demand
415.6 126.6
506.6 314.7
user node
node of interest
intermediate node
16
Simulation
• Event-driven simulator extended with support for SM execution
• Setup:– 256 nodes uniformly distributed over a 1000m by 1000m
square– transmission range = 100m– bandwidth = 2Mbs – each node has an average of 6 neighbors (min = 2, max = 11)
• Metrics:– completion time: user-observed response time for an
application– total number of bytes sent: total amount of traffic generated by
an application• also indicates the energy and bandwidth consumed by an
application
17
Simple On-Demand Routing vs. Conditional On-Demand Routing
starting node node of interest other node
• nodes of interest contain a certain tag, and the tag’s data must satisfy a given condition • 5 nodes (distributed uniformly) have the given tag• vary the number nodes of interest from 1 to 4
18
On-demand Routing vs. Geographical + On-demand Routing
starting node node of interest other node
• 5 nodes of interest distributed over the red region– radius = 500m
• application has knowledge about the desired region– vary the radius from 500m to 1500m
0
0.5
1
1.5
2
2.5
0 200 400 600 800 1000 1200 1400 1600
Region Radius (meters)
Co
mp
leti
on
Tim
e (s
ec)
On-Demand Routing Geographic+On-Demand Routing
0
1000
2000
3000
4000
5000
6000
0 200 400 600 800 1000 1200 1400 1600
Region Radius (metres)
Byt
es S
ent
in t
he
Net
wo
rk (
KB
ytes
)
On-Demand Routing Geographic+On-Demand Routing
19
On-Demand Routing vs. Geographical + On-Demand Routing
Cont’d
starting node node of interest other node
• 3 nodes of interest located in the corners– have to be visited in clockwise order
• application has knowledge about these nodes’ regions
– vary the radius from 100m to 700m
0
0.5
1
1.5
2
2.5
3
0 100 200 300 400 500 600 700 800
Region Radius (meters)
Com
plet
ion
Tim
e (s
ec)
On-Demand Routing Geographic+On-Demand Routing
0
500
1000
1500
2000
2500
3000
3500
4000
4500
0 100 200 300 400 500 600 700 800
Region Radius (meters)
Byt
es S
ent
in t
he
Net
wo
rk (
KB
ytes
)
On-Demand Routing Geographic+On-Demand Routing
20
Related Work
• Mobile agents – e.g., D’Agents[Gray ‘97], Ajanta[Karnik ‘98]
• Active networks– e.g., ANTS[Wetheral ‘99], SNAP[Moore ’01]
• Mobile ad hoc networking– e.g., DSR[Johnson ‘96], AODV[Perkins ‘99], GPSR[Karp ‘00]
• Content-based naming and routing– e.g., INS[Adjie-Winoto ‘00], CBR[Gritter ‘01]
• Pervasive computing models– e.g., one.world[Grimm ‘01]
• Sensor networks– e.g., Diffusion[Intanagonwiwat ‘00], TinyOS[Hill ‘00]
21
Conclusions
• Self-Routing provides high flexibility for SM
applications
– choose the routing
– implement their own routing
– change the routing dynamically
• Self-Routing has performance benefits
– improved response time for applications
– significant energy and bandwidth savings in the network
22
Future Work
• Spatial Programming with Smart Messages
– programming model for networks of embedded systems
– network resources accessed transparently using {space,
tag} spatial references
– a node referenced by {space, tag} is reached through a
combination of geographical and content-based routing
• Design and implement real world applications using
Smart Messages and self-routing