Turning Ad Hoc Networks into Distributed Service Providers Cristian Borcea Department of Computer Science New Jersey Institute of Technology Ubiquitous Computing Environments Wireless systems embedded everywhere Large scale ad hoc networks will soon become reality 2 Ad Hoc Networks as Data Carriers Traditionally, ad hoc networks used to – Connect a mobile system (e.g., laptop, PDA) to the Internet – Exchange data between mobile systems Internet Read email, browse the web File transfers 3 Ad Hoc Networks as Distributed Service Providers New class of services deployed in ad hoc networks – Acquire, process, disseminate real-time information from the proximity of geographical regions, entities, or activities of interest – Computation is context-aware P P Traffic jam predictor P CLA RK S T ELMWOOD AVE C GR OV ES T CHURCH ST OLD TOWN P P DAVIS ST MAPLE AVE RIDGE AVE Entity tracking OAK AV – Many times, interact for longer period of time with clients Parking spot finder LA KE ST BURNSIDE ST C COLLEGE ST C Service C Client 4 Problems with TCP/IP Client-Server Model in Ad Hoc Networks No support for context-awareness – When service stops satisfying context requirements, only solution is to discover new service Not always possible to find new service Overhead due to service discovery The state of the old service is lost No support for dynamic binding of names to IP addresses – Difficult to ensure that name resolution ends up with new service when necessary No support for dynamic service deployment – Cannot guarantee that a node satisfying all context requirements has the necessary service 5 Traffic Jam Predictor Service C Region of interest Service C Client Problem: service responses are semantically incorrect if the car hosting the service moves out of the region Solution: discover a new service running on a node satisfying the context requirements 6 Entity Tracking Service Service C C Client Problem: service cannot satisfy the request when entity is out of the “range” of camera Solution: discover new service & transfer the execution state of the old service 7 OAK AV Parking Spot Finder Service P P ELMWOOD AVE CLA RK S T GR OV ES T Service OLD TOWN P P DAVIS ST MAPLE AVE RIDGE AVE CHURCH ST P C Client LA KE ST BURNSIDE ST C COLLEGE ST Problem: service needs to run on a mobile node in the proximity of parking meters in the region of interest Solution: discover nodes in this region and potentially transfer service code on these nodes 8 Requirements for New Service Model in Ad Hoc Networks Context adaptability: service always executes on nodes that satisfy context requirements – Dynamic context monitoring and evaluation – Discovery of new nodes satisfying context requirements Service continuity: client sees continuous interaction with service – Transparent service name re-binding – Service execution state transfer On-demand code distribution: service code can be dynamically transferred to nodes 9 Outline Motivation Context-Aware Migratory Services Migratory Services Framework Implementation & Evaluation Conclusions Other Current/Future Work 10 Migratory Service Model Virtual service end-point Migratory Service MS State n3 Client C n1 Service Migration MS Migratory n2 Service State Context Change! (e.g., n2 moves out of the region of interest) MS cannot accomplish its task on n2 any longer 11 Migratory Service Model (Cont’d) MS Migratory n2 Service State Client C n1 Create Migratory Service Meta-service One-to-one mapping between clients and migratory services M MS State Service Migration Migratory Service n4 12 Key Ideas of Migratory Services Model Services migrate to nodes where they can accomplish their tasks – Present single virtual end-point to clients – One-to-one mapping between clients and services – Carry execution state across migrations – Transfer their code if necessary Service migration – Triggered by context changes – Regulated through context rules – Transparent to clients – Typically multi-hop 13 Outline Motivation Context-Aware Migratory Services Migratory Services Framework Implementation & Evaluation Conclusions Other Current/Future Work 14 Migratory Services Framework at Nodes Client Application/Service Context MonitoredCxt Manager InCxtRules Validator Communication Manager Reliability Manager OutCxtRules Smart Messages Platform Operating System/ Wireless Communication / Sensors 15 Framework’s Tasks Provide send/receive API for service programmers Translate Migratory Services into lower-level Smart Messages Enforce specification of context parameters and context rules by all programs Ensure service fault-tolerance Use naming, routing, and security offered by Smart Messages platform 16 Migratory Services Framework Client Application/Service Context MonitoredCxt Manager InCxtRules Validator Communication Manager Reliability Manager OutCxtRules Smart Messages Platform Operating System/ Wireless Communication / Sensors 17 Smart Messages (SM) Distributed programs executing sequentially on nodes of interest named by properties Migrate between nodes of interest Self-route at every node in the path during migrations Composed of: – Code bricks (e.g., Java class files) – Data bricks (e.g., Java objects) – Execution control state (e.g., instruction pointer, operand stack pointer) 18 SM Node Architecture SM Ready Queue SM Admission Network Manager Code Cache Virtual Machine SM Network Interpreter Authorization Tag SM Platform Space Operating System & I/O 19 Tag Space Collection of application tags and I/O tags Essentially, tags are (name, value) pairs – Application tags: persistent memory across SM executions – I/O tags: access to operating system and I/O subsystem Tags used for – Content-based naming migrate(tag) – Inter-SM communication write(tag, data), read(tag) – Synchronization block(tag, timeout) – I/O access read(temperature) 20 SM Migration migrate(Taxi) Taxi 1 Taxi sys_migrate(2) 2 sys_migrate(3) 3 sys_migrate(4) 4 migrate() – multi-hop content-based migration – migrates application to node of interest named by tags – implements routing algorithm using tags and sys_migrate sys_migrate() – one hop migration – captures SM state, transfers SM to next hop, resumes SM execution 21 Routing Example 1 2 i Network RouteToTaxi = 2 RouteToTaxi = ? j migrate(Taxi){ while(readTag(Taxi) == null) if (readTag(RouteToTaxi)) sys_migrate(readTag(RouteToTaxi)); else create_SM(DiscoverySM, Taxi); createTag(RouteToTaxi, lifetime, null); block_SM(RouteToTaxi, timeout); } Taxi 22 Migratory Services Framework Client Application/Service Context MonitoredCxt Manager InCxtRules Validator Communication Manager Reliability Manager OutCxtRules Smart Messages Platform Operating System/ Wireless Communication / Sensors 23 Context Manager Monitors context identifiers specified by programs Translates context identifiers into SM tags Accesses context data by polling or blocking on corresponding SM tags – Location, time, speed using GPS – System status information (e.g., battery level, free memory) – One-hop neighbors list (includes location & speed) 24 Validator Evaluates context rules specified by programs IN context rules control incoming data – Used for meta-services to accept/refuse requests – Used for clients to accept/refuse responses If response refused, update of client context sent to migratory service OUT context rules control outgoing data – Used for migratory services to decide whether to send a response or not If not, service migration is triggered 25 Context Rules Specification Condition/action statements Conditions are full binary trees of Boolean expressions – Example: {OR, <batteryLevel, EQUAL, low>, <responseLocation, OUT_REGION, userRegion>} Actions – Migrate service – Send client update – Accept/refuse request – Accept/refuse response 26 Communication Manager Discovers meta-services Routes messages between end-points Carries out service migration Uses naming conventions defined by SM platform Uses two basic SM routing algorithms: – Geographical routing (similar to GPSR) – Region-bound content-based routing (similar to AODV) 27 Reliability Manager Fault-tolerance to one failure Inactive version of the service created after first migration – Its state is periodically updated In case of failure of the active version, the inactive version takes over Active Inactive Service Service Update Response Response Update Response Response Update Response Response Client Timeout Request Response Response Response Delete 28 Migratory Services Framework Client Application/Service Context MonitoredCxt Manager InCxtRules Validator Communication Manager Reliability Manager OutCxtRules Smart Messages Platform Operating System/ Wireless Communication / Sensors 29 TJam: Migratory Service Example Predicts traffic jams in real-time – The request specifies region of interest – Service migrates to ensure it stays in this region – Uses history (service execution state) to improve prediction TJam utilizes information that every car has: – Number of one-hop neighboring cars – Speed of one-hop neighboring cars avgnum - minnum maxnum - minnum avgspeed - maxspeed Pspeed = maxPspeed × minspeed - maxspeed P'tjam = × Pnumber +(1- )× Pspeed Pnumber = maxPnumber × Ptjam = P'tjam× Njam Ntotal 30 TJam Pseudo-Code monitoredCtx = {location, speed} inCtxRule = {<responseLocation, OUT_REGION, region>, rejectResponse && sendUpdate} serviceParameters = {region, frequency} Client request = {clientName, serviceParameters} send(TJam, request); while (NOT_DONE) response = receive(msName) monitoredCtx = {location, speed, region} outCtxRule = {<location, OUT_REGION, region>, migrateService} while (NOT_DONE) response = computeResponse(); send(clientName, response) Migratory Service 31 Outline Motivation Context-Aware Migratory Services Migratory Services Framework Implementation & Evaluation Conclusions Other Current/Future Work 32 Implementation Framework is a Java package on top of SM platform – Implemented TJam prototype over this framework – Works for one-request/multiple-replies service model SM platform – Modified version of Sun’s Java K Virtual Machine – Architectural components inside virtual machine, and API implemented as native methods – Tested on WiFi-equipped HP iPAQs running Linux 33 Implementation – Current Status Framework on top of portable SM platform Portable SM platform – Works over unmodified Java VM – Architectural components & API implemented on top of Java VM – Migration state captured using bytecode instrumentation – Tested on Smart Phones running Symbian OS & Java CVM Nokia Communicator 9500 with WiFi Ericsson P900 with Bluetooth 34 Evaluation Experimental results for TJam over a small scale network – Demonstrate feasibility Simulation results for TJam over large scale network – Comparison with a base-line centralized approach to demonstrate scalability and efficiency SM experimental results – Give idea about SM performance 35 SM Micro-Benchmark Results Used 2 WiFi-equipped HP iPAQs running Linux 7 30 Java object array Java int array 6 Code Uncached 25 Code Cached 5 Time (ms) Tme (ms) 20 4 3 15 10 2 5 1 0 0 2 4 8 16 Size (KBytes) Cost of data serialization 1224 2236 4294 Code Size (Bytes) 8383 Cost of single hop migration 36 SM Simple Routing Algorithm Results WiFi-based ad hoc network of 8 HP iPAQs running Linux 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 37 TJam Constantly Executes in the UserSpecified Region Ad hoc network of 11 HP iPAQs with WiFi cards & mobility traces 3600 3200 2800 2400 Location (m) 2000 1600 user location service location/correct answer service location/wrong answer updates user range 1200 800 400 0 0 50 100 150 200 time (sec) 250 300 350 400 38 TJam Simulations Comparison of – TJam-Smart: migratory service – TJam-Base: baseline centralized approach ns-2 simulator with the CMU-wireless extensions and Micro-VTG, our microscopic traffic generator tool 802.11b, 11Mb, transmission range 250m Highway of length 25km with 3 lanes 800 vehicles, 50 service nodes 39 Response Time vs. Number of Clients Correct response generation time (Base) Inter-response time (Smart) Inter-response time (Base) 3,5 0,06 3 0,05 2,5 0,04 2 0,03 1,5 0,02 1 0,01 0,5 0 0 50 100 150 200 250 Inter-response time (sec) Correct response generation time (sec) 0,07 Correct response generation time (Smart) 300 Clients number Vehicles average speed: 30m/s with an average gap of 150m 40 Correct response generation time (sec) 0,06 Correct response generation time (Smart) Correct response generation time (Base) Inter-response time (Smart) Inter-response time (Base) 3 0,05 2,5 0,04 2 0,03 1,5 0,02 1 0,01 0,5 0 Inter-response time (sec) Response Time vs. Average Speed 0 10 20 30 Vehicles speed (meter/sec) Number of clients: 150 41 Conclusions Migratory Services enable context-aware distributed services in ad hoc networks Easy to develop and deploy new services in the network Quick adaptation to highly volatile networks Experimental and simulation results demonstrate the feasibility, scalability, and efficiency 42 Outline Motivation Context-Aware Migratory Services Migratory Services Framework Implementation & Evaluation Conclusions Other Current/Future Work 43 INVENT: INter-VEhicular Network Technologies Design vehicular network architecture and build prototype for distributed vehicular computing Sponsored by NSF, collaboration with Rutgers University TrafficView: Real-time view of the traffic ahead of your car far beyond what you can see 44 SmartCampus: Ubiquitous Social Computing Middleware & Applications Build a location-aware mobile community test-bed of 100s of nodes carried by NJIT students everywhere Sponsored by NSF, joint work with IS & ECE departments at NJIT CampusMesh application leverages users’ geo-temporal data for: – Social matching recommendations – Location aware alerts and reminders – Real time group coordination KJam Smart Phone System Architecture 45 What’s Next for Ubiquitous Computing? A significant amount of system research is required to make it reality – Crossroad between networking, operating systems, embedded systems, computer vision, etc. – Build prototypes and test them in real-life settings – Define metrics and benchmarks Inter-disciplinary research is the key to success – Applications will span non-traditional computing domains (e.g., transportation, healthcare, homeland security) – Collaborations with civil engineering, cognitive sciences, biology, nursing, etc. 46 Acknowledgments The Migratory Services project is joint work with: – Oriana Riva (University of Helsinki) – Tamer Nadeem (Siemens Research) – Liviu Iftode (Rutgers University) This work is sponsored in part by the NSF grants CNS-0520033, CNS-0454081, and IIS-0534520 47 Thank you! http://www.cs.njit.edu/~borcea/ 48