Presentation is loading. Please wait.

Presentation is loading. Please wait.

Middleware for Cooperative Computing on Large Ad-hoc Networks of Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena and Liviu.

Similar presentations


Presentation on theme: "Middleware for Cooperative Computing on Large Ad-hoc Networks of Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena and Liviu."— Presentation transcript:

1 Middleware for Cooperative Computing on Large Ad-hoc Networks of Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena and Liviu Iftode Division of Computer and Information Sciences Rutgers University http://discolab.rutgers.edu/sm/ * This work is supported in part by NSF Grant ANI-0121416

2 2 Motivation  Pervasive Computing = Large Ad-hoc Networks of Embedded Systems  Examples: sensor networks, car networking on a highway, network of appliances at home  How to perform distributed tasks on these networks ?  Simple tasks: data collection, data dissemination  How to program these networks to execute user-defined distributed tasks ?

3 3 Example of a Distributed Task 0 F Determine average temperature in town 75 F 95 F 70 F 75 F 85 F 80 F 75 F 85 F 80 F

4 4 Traditional Message-Passing Distributed Computing Does Not Work  Number of nodes is extremely large  how to name nodes ?  Only selected nodes are of interest  how to find them ?  Dynamic configuration  nodes come and go, or become inaccessible  No routing support  end-to-end semantics hard to provide

5 5 Our Solution: Cooperative Computing  Cooperative node middleware  an architecture-independent execution environment: VM  a name-based global memory space: Tag Space  simple admission control, scheduling and synchronization  Smart Messages (SM): migratory execution units  multiple code and data bricks plus execution state  handler for content-based addressing  migrate through the network and execute on each hop  self-routing

6 6 Node Architecture Embedded System Tag Space Virtual Machine Admission Manager Incoming SMOutgoing SM

7 7 Name ACL Lifetime Data Tag Space TemperatureTempACL720080 Image ImgACL 300 Img.jpg  Named data persistent across SM execution  Protected  Limited lifetime  Operations: create, delete, read(get), write(put)

8 8 Smart Message Execution Cycle VM Node Tag Space c1 c2d1 d2 SM1 SM2 c2 d2  Admission (SM presents a resource table to node)  Conditional arrival (use handler to check for tags of interest)  Execution (possible blocking on tags to be updated)  Spawning new SM  Migration or exit

9 9 Smart Message Primitives  construct_SM(code_bricks, data_bricks, handler)  send(sm, destination)  send_myself(destination)  returns 0 in the SM that was sent  returns SM id in the sender SM  migrate(destination)  SM continues at destination  block(tag, count, timeout)  SM blocks waiting for count writes on tag or timeout

10 10 Proof of Concept  Implement two simple applications for sensor networks using SM  data collection: Directed Diffusion [ESTRIN ’99]  data propagation: SPIN [HEINZELMAN ’99]  Evaluate their performance using an SM network simulator

11 11 Directed Diffusion – Explore Mobile SM.data, SM.sender; /* Exploration Phase */ while (!get_tag(DATA_RATE)) { /* flood to source; wait for rate */ if (send_myself(forward_neighbors)) block(DATA_RATE, count(forward_neighbors), timeout) } if (SM.sender) { /* send rate back, if not sink*/ SM.data = get_tag(DATA_RATE); migrate(SM.sender); tempData = get_Tag(DATA_RATE); if (SM.data > tempData) { put_tag(SM.sender, BEST_ROUTE); put_tag(SM.data, DATA_RATE); } else { put_tag(tempData, DATA_RATE); /* increments count for block */ } exit(); }

12 12 Directed Diffusion - Reinforce /* Reinforcement Phase */ while (!get_tag(DATA_VALUE)) /* send to source; wait for data*/ if (send_myself(get_tag(BEST_ROUTE)) block(DATA_VALUE, 1, timeout); for(;;) { SM.data = get_tag(DATA_VALUE); if (SM.sender){ /* send data back, if not sink */ if (send_myself(SM.sender)==0) { put_tag(SM.data, DATA_VALUE); exit(); } else /* output of the sink */ output (DATA_VALUE) block(DATA_VALUE, 1, timeout); /* wait for new data */ }

13 13 SPIN for(;;) { block(DATA_VALUE,1, timeout); /* wait new data */ SM.data = get_tag(DATA_TIME); if (send_myself(all_neighbors)==0) { /* send ad */ if (get_tag(DATA_TIMESTAMP)>=SM.data) exit(); put_tag(DATA_TIME, SM.data) /* ad update time and */ if (send_myself(SM_sender)==0) { /* request data */ SM.data = get_tag(DATA_VALUE); migrate(SM.sender); put_tag(DATA_VALUE, SM.data); /* bring data */ exit(); } /* go to wait for data */ } else if (SM_sender) /* if not source */ exit(); /* exit after sending ad */ }

14 14 Preliminary results

15 15 Status and Future Plans  Prototype using iPAQs and Bluetooth under development  Design advanced ad-hoc routing algorithms using SM  Develop distributed applications for networks of embedded systems using SM


Download ppt "Middleware for Cooperative Computing on Large Ad-hoc Networks of Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena and Liviu."

Similar presentations


Ads by Google