240 likes | 343 Views
Self-Routing in Pervasive Computing Environments using Smart Messages. Cristian Borcea , Chalermek Intanagonwiwat, Akhilesh Saxena (Rutgers University), and Liviu Iftode (University of Maryland). Networks of Embedded Systems. Linux Car. Linux Camera. Linux Cell Phone. Linux Watch.
E N D
Self-Routing in Pervasive Computing Environments using Smart Messages Cristian Borcea, Chalermek Intanagonwiwat, Akhilesh Saxena (Rutgers University), and Liviu Iftode (University of Maryland)
Networks of Embedded Systems Linux Car Linux Camera Linux Cell Phone Linux Watch • Functionally heterogeneous nodes • Very large scale • Ad hoc topologies • Dynamic network configurations • Limited a priori knowledge about network resources
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
Outline • Motivation • Smart Messages Overview • Self-Routing Mechanism • content-based migration • application scenarios • Evaluation • SM prototype • simulations • Related Work • Conclusions & Future Work
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
mobile data application routing Application Example need 2 taxis Taxi Taxi n=0 n=0 n=0 n=1 n=1 n=2 n=0 while (n<2) migrate(Taxi); if (readTag(Available)) writeTag(Available, false); writeTag(Location, myLocation); n++;
Node Architecture Execution is non-preemptive, but time bounded Admission prevents excessive use of resources sm1 SM arrival Virtual Machine Admission Manager SM migration sm2 …… • Two types of tags: • application tags • I/O Tags • Tags used by SMs for: • naming • storage • synchronization • I/O access SM Ready Queue tag1 tag2 …… Tag Space
Smart Messages Migration migrate(Taxi) Taxi Taxi 1 2 3 4 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
Migration Example 1 2 i Network Taxi RouteToTaxi = 2 RouteToTaxi = ? RouteToTaxi = j 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); } 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); }
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
Dynamic Change of Routing (1) while (n<3) try{ migrate(tag, timeout1); }catch(TimeoutException e){ migrate(tag, timeout2); } Dense network Low mobility Proactive routing Sparse network High mobility On-demand routing
Dynamic Change of Routing (2) migrate(circle); while (n<3) migrate(tag); space-bound on-demand routing to reach the nodes of interest geographical routing to reach circle
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
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
Prototype Implementation • Modified version of Sun Java KVM • HP iPAQs running Linux • 802.11 for communication user node node of interest intermediate node Routing algorithm Code not cached (ms) Code cached (ms) Geographic 415.6 126.6 On-demand 506.6 314.7 Completion Time
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
Simple On-Demand Routing vs. Conditional On-Demand Routing • 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 starting node node of interest other node
On-demand Routing vs. Geographical + On-demand Routing • 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 starting node node of interest other node
On-Demand Routing vs. Geographical + On-Demand Routing Cont’d • 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 starting node node of interest other node
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]
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
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
Thank you! http://discolab.rutgers.edu/sm