0
Ubiquitous Communication Model for Different Network Scenarios Suman Srinivasan PhD Candidacy Talk Feb 23, 2009 Advisor: D...
Introduction <ul><li>Many different types of networks and connection scenarios exist </li></ul><ul><li>I will cover the fo...
Comparison metrics <ul><li>API for programmers </li></ul><ul><ul><li>e.g., send/recv (or) find/get/set (or) remote procedu...
Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-t...
Stack diagram Sockets  Multicast DHTs (and)  Overlay N/Ws XML over HTTP XML-RPC Parallel computing REST SOAP Shared mem. P...
Type of API <ul><li>Send/Recv  (or)  Read/Write </li></ul><ul><ul><li>Sockets, Parallel computing (MPI), Grid computing (J...
END-TO-END NETWORKING <ul><li>Sockets : Simple, end-to-end communication </li></ul><ul><ul><li>socket() </li></ul></ul><ul...
Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-t...
REMOTE EXECUTION <ul><li>Local function calls </li></ul><ul><ul><li>Executed on remote machine </li></ul></ul><ul><ul><li>...
RPC <ul><li>Remote Procedure Call </li></ul><ul><ul><li>RFC 707 (1976):  A High-Level Framework for Network-Based Resource...
RPC <ul><li>Early versions </li></ul><ul><ul><li>Xerox Courier (1981), Sun's ONC RPC (1988, 1995) </li></ul></ul><ul><ul><...
RPC and RMI <ul><li>Sun’s RPC </li></ul><ul><ul><li>Data serialized using IETF XDR format, via TCP or UDP </li></ul></ul><...
OMG CORBA <ul><li>Common Object Requesting Broker Architecture </li></ul><ul><li>Interface Definition Language  (IDL) to s...
OMG CORBA http://en.wikipedia.org/wiki/CORBA
Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-t...
PARALLEL COMPUTING <ul><li>Deals with execution  or sharing of  data across multiple  processors  </li></ul><ul><li>Tightl...
MPI and PVM <ul><li>Message Passing Interface  [mpi96] </li></ul><ul><ul><li>Language independent communications protocol ...
Shared Memory Model <ul><li>Memory that can be accessed by multiple programs </li></ul><ul><ul><li>On same processor or mu...
Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-t...
GRID COMPUTING <ul><li>Several nodes working on the same  problem at the same time </li></ul><ul><ul><li>Program divided i...
Tuple Spaces <ul><li>Stores distributed system state  </li></ul><ul><li>Javaspaces: Use  Javaspace.write()  and  Javaspace...
Javaspaces code <ul><li>public static void main(String argv[]) { </li></ul><ul><li>try { </li></ul><ul><li>MessageEntry ms...
Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-t...
WEB SERVICES <ul><li>Remote procedure calls </li></ul><ul><li>But using text, not binary objects </li></ul><ul><ul><li>Oft...
Web Services <ul><li>XML-RPC </li></ul><ul><ul><li>Simple protocol, created in 1998 </li></ul></ul><ul><ul><li>Data types,...
SOAP <ul><li>Simple Object Access Protocol </li></ul><ul><ul><li>W3C standard </li></ul></ul><ul><li>Uses  XML  for messag...
SOAP <ul><li><env:Envelope xmlns:env=&quot;http://www.w3.org/2003/05/soap-envelope&quot;> </li></ul><ul><li><env:Header>  ...
REST <ul><li>Representational State Transfer </li></ul><ul><ul><li>2000 PhD Thesis by Roy Fielding </li></ul></ul><ul><li>...
REST <ul><li>From  http://developer.yahoo.com/maps/rest/V1/geocode.html   </li></ul><ul><li>Call a “REST-like” service: </...
Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-t...
OVERLAY NETWORKS <ul><li>Built on top of always-connected  networks (and others) </li></ul><ul><ul><li>Form a sub-network ...
DHT service model <ul><li>API Example:  [OpenDHT]   </li></ul><ul><ul><li>get(), put(), rm() </li></ul></ul><ul><ul><li>Be...
DHTs <ul><li>Well-known DHTs </li></ul><ul><ul><li>Chord  [Chord01] </li></ul></ul><ul><ul><li>CAN  [Can01] </li></ul></ul...
Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-t...
OPPORTUNISTIC NETWORKS <ul><li>Mobile nodes; highly mobile networks </li></ul><ul><ul><li>No infrastructure </li></ul></ul...
BonAHA <ul><li>Framework for applications running on opportunistic networks </li></ul><ul><li>Updates on network </li></ul...
Other OppNet Frameworks <ul><li>For opportunistic and mobile networks </li></ul><ul><ul><li>Proem  (2001) </li></ul></ul><...
LightPeers <ul><li>Similar model to BonAHA </li></ul><ul><ul><li>“ Application”: Each application has its own GUID that id...
Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-t...
ACTIVE NETWORKS <ul><li>Allows “injection” of customized active code  into network core </li></ul><ul><ul><li>ANTS, JanOS,...
ANTS (Active Node Transfer Sys) <ul><li>New network protocols automatically deployed using mobile code </li></ul><ul><ul><...
Janos <ul><li>Janos is a NodeOS ( Moab ) with: </li></ul><ul><ul><li>Execution Environment (EE) : similar to virtual machi...
Switchware <ul><li>Active packets, active extensions, active router infrastructure </li></ul><ul><ul><li>CAML-based  </li>...
Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-t...
Conclusion <ul><li>Covered the following network topologies, and the associated programming models: </li></ul><ul><ul><li>...
Backup Slides
RPC http://msdn.microsoft.com/en-us/library/aa373937%28VS.85%29.aspx
Java RMI command <ul><li>java -cp /home/ann/src:/home/ann/public_html/classes/compute.jar -Djava.rmi.server.codebase=http:...
MPI Sample code <ul><li>int main(int argc, char *argv[]) </li></ul><ul><li>{ </li></ul><ul><li>MPI_Status stat;  </li></ul...
PVM sample code <ul><li>int main(int argc, char* argv[]) </li></ul><ul><li>{ </li></ul><ul><li>mytid = pvm_mytid(); /* fin...
ANTS example
Netscript <ul><li>Agents dispatched to  remote systems </li></ul><ul><ul><li>Uses SOS to manage delegation agents </li></u...
JXTA <ul><li>Framework for building P2P apps </li></ul><ul><li>Peers create a overlay network </li></ul><ul><ul><li>Nodes ...
Upcoming SlideShare
Loading in...5
×

Suman's PhD Candidacy Talk

1,691

Published on

My PhD candidacy presentation that I gave on Feb 23, 2009. The topic was "Ubiquitous Communication Models for Various Network Models."

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,691
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
25
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Suman's PhD Candidacy Talk"

  1. 1. Ubiquitous Communication Model for Different Network Scenarios Suman Srinivasan PhD Candidacy Talk Feb 23, 2009 Advisor: Dr. Henning Schulzrinne
  2. 2. Introduction <ul><li>Many different types of networks and connection scenarios exist </li></ul><ul><li>I will cover the following </li></ul><ul><ul><li>Traditional networking ←-> Sockets </li></ul></ul><ul><ul><li>Remote execution ←-> RPC, RMI, CORBA </li></ul></ul><ul><ul><li>Parallel computing ←-> MPI, PVM, Shared memory </li></ul></ul><ul><ul><li>Grid computing ←-> Javaspaces, Linda </li></ul></ul><ul><ul><li>Web services ←-> XML-RPC, SOAP, REST </li></ul></ul><ul><ul><li>Overlay networks ←-> DHTs, Bittorrent, JXTA </li></ul></ul><ul><ul><li>Opportunistic networks ←-> BonAHA, LightPeers, etc </li></ul></ul><ul><ul><li>Active Networks ←-> ANTS, Janos, etc . </li></ul></ul><ul><li>… mainly from the programmer’s perspective </li></ul><ul><li>… and try to answer the following question </li></ul><ul><li>Is there a common communication model, or programming abstraction, for all of the above scenarios? </li></ul>
  3. 3. Comparison metrics <ul><li>API for programmers </li></ul><ul><ul><li>e.g., send/recv (or) find/get/set (or) remote procedures </li></ul></ul><ul><li>Distribution of messages </li></ul><ul><ul><li>1-to-1, 1-to-N </li></ul></ul><ul><li>Processing location </li></ul><ul><ul><li>Where processed: node, network (router) </li></ul></ul><ul><li>Delay </li></ul><ul><li>Destination known? </li></ul><ul><li>Message functionality </li></ul><ul><ul><li>Active (execution) or passive (data) </li></ul></ul>
  4. 4. Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-to-1 / 1-to-N Endpoints / Endpoints + routers Network Yes Passive Remote execution RPC 1-to-1 Remote node Network + processing Yes Passive (func+args) Parallel computing Message; Process 1-to-N Endpoints (clustered) Network/bus No Passive Grid computing Message (active obj.) 1-to-N Endpoints (distributed) Network + processing No Active Web services RPC; get/set 1-to-1 Remote node Network + processing Yes Passive (XML cmds) Overlay find/get/set/rm 1-to-N (DHT) Endpoints (overlay) Setup time + query process + churn No Passive Opportunistic networks find/get/set/rm 1-to-N Endpoints Delay on wire/wireless No Passive Active Networks Routing 1-to-N (router) Routers Processing time No Active
  5. 5. Stack diagram Sockets Multicast DHTs (and) Overlay N/Ws XML over HTTP XML-RPC Parallel computing REST SOAP Shared mem. PVM MPI RPC Opportunistic N/Ws Grid computing JXTA/Jini
  6. 6. Type of API <ul><li>Send/Recv (or) Read/Write </li></ul><ul><ul><li>Sockets, Parallel computing (MPI), Grid computing (Javaspaces, Linda) </li></ul></ul><ul><li>Remote Procedures </li></ul><ul><ul><li>Remote execution (RPC, RMI, CORBA), Web services (SOAP, XML-RPC) </li></ul></ul><ul><li>Get/Set </li></ul><ul><ul><li>Web services (REST), Overlay networks (DHTs), Opportunistic networks </li></ul></ul><ul><li>Process execution </li></ul><ul><ul><li>Parallel computing (PVM) </li></ul></ul>
  7. 7. END-TO-END NETWORKING <ul><li>Sockets : Simple, end-to-end communication </li></ul><ul><ul><li>socket() </li></ul></ul><ul><ul><li>connect() / listen() </li></ul></ul><ul><ul><li>send() / recv() </li></ul></ul><ul><ul><li>close() </li></ul></ul><ul><li>[RFC147] and [RFC2553] </li></ul>
  8. 8. Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-to-1 / 1-to-N Endpoints / Endpoints + routers Network Yes Passive Remote execution RPC 1-to-1 Remote node Network + processing Yes Passive (func+args) Parallel computing Message; Process 1-to-N Endpoints (clustered) Network/bus No Passive Grid computing Message (active obj.) 1-to-N Endpoints (distributed) Network + processing No Active Web services RPC; get/set 1-to-1 Remote node Network + processing Yes Passive (XML cmds) Overlay find/get/set/rm 1-to-N (DHT) Endpoints (overlay) Setup time + query process + churn No Passive Opportunistic networks find/get/set/rm 1-to-N Endpoints Delay on wire/wireless No Passive Active Networks Routing 1-to-N (router) Routers Processing time No Active
  9. 9. REMOTE EXECUTION <ul><li>Local function calls </li></ul><ul><ul><li>Executed on remote machine </li></ul></ul><ul><ul><li>Results returned to caller over network </li></ul></ul><ul><ul><li>Communication using sockets </li></ul></ul><ul><li>Technologies </li></ul><ul><ul><li>Remote Procedure Calls </li></ul></ul><ul><ul><li>Remote Method Invocation </li></ul></ul><ul><ul><li>OMG CORBA </li></ul></ul>http://msdn.microsoft.com/en-us/library/aa373935.aspx
  10. 10. RPC <ul><li>Remote Procedure Call </li></ul><ul><ul><li>RFC 707 (1976): A High-Level Framework for Network-Based Resource Sharing </li></ul></ul><ul><ul><ul><li>“… outlines an alternative to the approach that ARPANET system builders have been taking...” </li></ul></ul></ul><ul><ul><ul><li>Argues that the &quot;command/response discipline&quot; remains &quot;crude“ </li></ul></ul></ul><ul><ul><ul><li>[rfc707] </li></ul></ul></ul>
  11. 11. RPC <ul><li>Early versions </li></ul><ul><ul><li>Xerox Courier (1981), Sun's ONC RPC (1988, 1995) </li></ul></ul><ul><ul><li>Microsoft provides RPC APIs </li></ul></ul><ul><ul><ul><li>DCOM (1996) built on top of Microsoft RPC </li></ul></ul></ul><ul><ul><li>Other implementations for Windows </li></ul></ul>
  12. 12. RPC and RMI <ul><li>Sun’s RPC </li></ul><ul><ul><li>Data serialized using IETF XDR format, via TCP or UDP </li></ul></ul><ul><ul><li>Port mapper </li></ul></ul><ul><ul><ul><li>Maps RPC program numbers to port numbers on server </li></ul></ul></ul><ul><ul><li>[RFC1057] and [RFC1831] </li></ul></ul><ul><li>Java RMI [javarmi] </li></ul><ul><ul><li>Very similar to RPC, can work over CORBA </li></ul></ul>
  13. 13. OMG CORBA <ul><li>Common Object Requesting Broker Architecture </li></ul><ul><li>Interface Definition Language (IDL) to specify interfaces </li></ul><ul><ul><li>Program communicates with ORB (Object Request Broker), which interacts with other apps on network </li></ul></ul><ul><ul><li>Transport protocol: General Inter-ORB protocol (GIOP): IIOP, SSLIOP, HTIOP </li></ul></ul>
  14. 14. OMG CORBA http://en.wikipedia.org/wiki/CORBA
  15. 15. Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-to-1 / 1-to-N Endpoints / Endpoints + routers Network Yes Passive Remote execution RPC 1-to-1 Remote node Network + processing Yes Passive (func+args) Parallel computing Message; Process 1-to-N Endpoints (clustered) Network/bus No Passive Grid computing Message (active obj.) 1-to-N Endpoints (distributed) Network + processing No Active Web services RPC; get/set 1-to-1 Remote node Network + processing Yes Passive (XML cmds) Overlay find/get/set/rm 1-to-N (DHT) Endpoints (overlay) Setup time + query process + churn No Passive Opportunistic networks find/get/set/rm 1-to-N Endpoints Delay on wire/wireless No Passive Active Networks Routing 1-to-N (router) Routers Processing time No Active
  16. 16. PARALLEL COMPUTING <ul><li>Deals with execution or sharing of data across multiple processors </li></ul><ul><li>Tightly coupled, physically close nodes </li></ul><ul><ul><li>Message Passing Interface (MPI) </li></ul></ul><ul><ul><li>Parallel Virtual Machine (PVM) </li></ul></ul><ul><ul><li>Shared memory </li></ul></ul>https://computing.llnl.gov/tutorials/parallel_comp/
  17. 17. MPI and PVM <ul><li>Message Passing Interface [mpi96] </li></ul><ul><ul><li>Language independent communications protocol </li></ul></ul><ul><ul><li>Communicators connect groups of processes </li></ul></ul><ul><ul><li>mpi_send() and mpi_recv() </li></ul></ul><ul><ul><li>Parallel Virtual Machine [pvm90] </li></ul></ul><ul><ul><li>Software library: allows network of computers to work as though it were one distributed parallel processor </li></ul></ul><ul><ul><li>pvm_spawn() and pvm_notify() </li></ul></ul>
  18. 18. Shared Memory Model <ul><li>Memory that can be accessed by multiple programs </li></ul><ul><ul><li>On same processor or multiple processors </li></ul></ul><ul><li>OpenMP : API using preprocessor directives </li></ul><ul><ul><li>#pragma omp parallel for </li></ul></ul><ul><ul><li>for (i=0;i<N;i++) </li></ul></ul><ul><ul><li>a[i]= 2*I; </li></ul></ul><ul><ul><li>[sharedmem07] </li></ul></ul>
  19. 19. Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-to-1 / 1-to-N Endpoints / Endpoints + routers Network Yes Passive Remote execution RPC 1-to-1 Remote node Network + processing Yes Passive (func+args) Parallel computing Message; Process 1-to-N Endpoints (clustered) Network/bus No Passive Grid computing Message (active obj.) 1-to-N Endpoints (distributed) Network + processing No Active Web services RPC; get/set 1-to-1 Remote node Network + processing Yes Passive (XML cmds) Overlay find/get/set/rm 1-to-N (DHT) Endpoints (overlay) Setup time + query process + churn No Passive Opportunistic networks find/get/set/rm 1-to-N Endpoints Delay on wire/wireless No Passive Active Networks Routing 1-to-N (router) Routers Processing time No Active
  20. 20. GRID COMPUTING <ul><li>Several nodes working on the same problem at the same time </li></ul><ul><ul><li>Program divided into portions </li></ul></ul><ul><ul><li>Distributed for processing </li></ul></ul><ul><ul><li>More loosely coupled, heterogeneous and dispersed than parallel computing </li></ul></ul><ul><ul><li>E.g.: Berkley’s BOINC, SETI@home, [email_address] </li></ul></ul><ul><li>Javaspaces </li></ul>
  21. 21. Tuple Spaces <ul><li>Stores distributed system state </li></ul><ul><li>Javaspaces: Use Javaspace.write() and Javaspace.read() to put and get objects and results </li></ul><ul><ul><li>Javaspaces modeled after Linda (1985) </li></ul></ul><ul><li>Master-worker pattern </li></ul><ul><ul><li>Tuple space </li></ul></ul>http://java.sun.com/developer/technicalArticles/tools/JavaSpaces/ <ul><ul><li>[linda85] + [javaspaces] </li></ul></ul>
  22. 22. Javaspaces code <ul><li>public static void main(String argv[]) { </li></ul><ul><li>try { </li></ul><ul><li>MessageEntry msg = new MessageEntry(); </li></ul><ul><li>msg.content = &quot;Hello there&quot;; </li></ul><ul><li>System.out.println(&quot;Searching for a JavaSpace...&quot;); </li></ul><ul><li>Lookup finder = new Lookup(JavaSpace.class); </li></ul><ul><li>JavaSpace space = (JavaSpace) finder.getService(); </li></ul><ul><li>space.write(msg, null, 60*60*1000); </li></ul><ul><li>MessageEntry template = new MessageEntry(); </li></ul><ul><li>MessageEntry result = (MessageEntry) space.read(template, null, Long.MAX_VALUE); </li></ul><ul><li>System.out.println(&quot;The message read is: &quot;+result.content); </li></ul><ul><li>} catch(Exception e) { </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  23. 23. Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-to-1 / 1-to-N Endpoints / Endpoints + routers Network Yes Passive Remote execution RPC 1-to-1 Remote node Network + processing Yes Passive (func+args) Parallel computing Message; Process 1-to-N Endpoints (clustered) Network/bus No Passive Grid computing Message (active obj.) 1-to-N Endpoints (distributed) Network + processing No Active Web services RPC; get/set 1-to-1 Remote node Network + processing Yes Passive (XML cmds) Overlay find/get/set/rm 1-to-N (DHT) Endpoints (overlay) Setup time + query process + churn No Passive Opportunistic networks find/get/set/rm 1-to-N Endpoints Delay on wire/wireless No Passive Active Networks Routing 1-to-N (router) Routers Processing time No Active
  24. 24. WEB SERVICES <ul><li>Remote procedure calls </li></ul><ul><li>But using text, not binary objects </li></ul><ul><ul><li>Often using XML over HTTP </li></ul></ul><ul><li>To build distributed systems over traditional web protocols (XML/HTTP) </li></ul><ul><ul><li>Web-based consumer apps </li></ul></ul><ul><ul><li>Enterprise apps </li></ul></ul><ul><li>XML-RPC </li></ul><ul><li>SOAP </li></ul><ul><li>REST </li></ul>http://developer.garmin.com/wp-content/uploads/2007/05/picture-5.png
  25. 25. Web Services <ul><li>XML-RPC </li></ul><ul><ul><li>Simple protocol, created in 1998 </li></ul></ul><ul><ul><li>Data types, commands </li></ul></ul><ul><li>Example from: http://www.tutorialspoint.com/xml-rpc/xml_rpc_examples.htm </li></ul><ul><li>Function call </li></ul><ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?> </li></ul></ul><ul><ul><li><methodCall> </li></ul></ul><ul><ul><li><methodName>sample.sum</methodName> </li></ul></ul><ul><ul><li><params> <param> <value><int>17</int></value> </param> </li></ul></ul><ul><ul><li><param> <value><int>13</int></value> </param> </params> </li></ul></ul><ul><ul><li></methodCall> </li></ul></ul><ul><li>Response </li></ul><ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?> </li></ul></ul><ul><ul><li><methodResponse> </li></ul></ul><ul><ul><li><params><param> <value><int>30</int></value> </param></params> </li></ul></ul><ul><ul><li></methodResponse> </li></ul></ul>
  26. 26. SOAP <ul><li>Simple Object Access Protocol </li></ul><ul><ul><li>W3C standard </li></ul></ul><ul><li>Uses XML for messages </li></ul><ul><ul><li>HTTP and HTTPS used for message negotiation and transmission </li></ul></ul><ul><ul><ul><li>Can use SMTP as well </li></ul></ul></ul><ul><ul><ul><li>But HTTP/HTTPS more preferred </li></ul></ul></ul><ul><li>SOAP slower than competing RPC technologies because of XML </li></ul>
  27. 27. SOAP <ul><li><env:Envelope xmlns:env=&quot;http://www.w3.org/2003/05/soap-envelope&quot;> </li></ul><ul><li><env:Header> </li></ul><ul><li><n:alertcontrol xmlns:n=&quot;http://example.org/alertcontrol&quot;> </li></ul><ul><li><n:priority>1</n:priority> </li></ul><ul><li><n:expires>2001-06-22T14:00:00-05:00</n:expires> </li></ul><ul><li></n:alertcontrol> </li></ul><ul><li></env:Header> </li></ul><ul><li><env:Body> </li></ul><ul><li><m:alert xmlns:m=&quot;http://example.org/alert&quot;> </li></ul><ul><li><m:msg>Pick up Mary at school at 2pm</m:msg> </m:alert> </li></ul><ul><li></env:Body> </li></ul><ul><li></env:Envelope> </li></ul><ul><li>From http://www.w3.org/TR/soap12-part1/ </li></ul>
  28. 28. REST <ul><li>Representational State Transfer </li></ul><ul><ul><li>2000 PhD Thesis by Roy Fielding </li></ul></ul><ul><li>Resources with a identifier </li></ul><ul><ul><li>Exchange representations of resources </li></ul></ul><ul><ul><li>Connectors (clients, servers, caches, tunnels) </li></ul></ul><ul><li>Instead of calling getData(1) , you would get content from a URN: </li></ul><ul><ul><li>http://somesite.com/data/1 </li></ul></ul>
  29. 29. REST <ul><li>From http://developer.yahoo.com/maps/rest/V1/geocode.html </li></ul><ul><li>Call a “REST-like” service: </li></ul><ul><ul><li>http://local.yahooapis.com/MapsService/V1/geocode?appid=YD-9G7bey8_JXxQP6rxl.fBFGgCdNjoDMACQA--&street=701+First+Ave&city=Sunnyvale&state=CA </li></ul></ul><ul><li>Response from Yahoo: </li></ul><ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> </li></ul></ul><ul><ul><li><ResultSet xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; </li></ul></ul><ul><ul><li>xmlns=&quot;urn:yahoo:maps&quot; </li></ul></ul><ul><ul><li>xsi:schemaLocation=&quot;urn:yahoo:maps http://local.yahooapis.com/MapsService/V1/GeocodeResponse.xsd&quot;> </li></ul></ul><ul><ul><li><Result precision=&quot;address&quot;> </li></ul></ul><ul><ul><li><Latitude>37.416384</Latitude> </li></ul></ul><ul><ul><li><Longitude>-122.024853</Longitude> </li></ul></ul><ul><ul><li><Address>701 FIRST AVE</Address> </li></ul></ul><ul><ul><li><City>SUNNYVALE</City> </li></ul></ul><ul><ul><li><State>CA</State> </li></ul></ul><ul><ul><li><Zip>94089-1019</Zip> </li></ul></ul><ul><ul><li><Country>US</Country> </li></ul></ul><ul><ul><li></Result> </li></ul></ul><ul><ul><li></ResultSet> </li></ul></ul>
  30. 30. Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-to-1 / 1-to-N Endpoints / Endpoints + routers Network Yes Passive Remote execution RPC 1-to-1 Remote node Network + processing Yes Passive (func+args) Parallel computing Message; Process 1-to-N Endpoints (clustered) Network/bus No Passive Grid computing Message (active obj.) 1-to-N Endpoints (distributed) Network + processing No Active Web services RPC; get/set 1-to-1 Remote node Network + processing Yes Passive (XML cmds) Overlay find/get/set/rm 1-to-N (DHT) Endpoints (overlay) Setup time + query process + churn No Passive Opportunistic networks find/get/set/rm 1-to-N Endpoints Delay on wire/wireless No Passive Active Networks Routing 1-to-N (router) Routers Processing time No Active
  31. 31. OVERLAY NETWORKS <ul><li>Built on top of always-connected networks (and others) </li></ul><ul><ul><li>Form a sub-network with specific functionality </li></ul></ul><ul><ul><li>With routing protocol </li></ul></ul><ul><ul><li>Distributed key-value pairs </li></ul></ul><ul><li>Structured overlays </li></ul><ul><ul><li>Tapestry, CAN, Chord </li></ul></ul><ul><ul><li>Constrained, structured graph topology </li></ul></ul><ul><ul><li>Exact-match queries </li></ul></ul><ul><li>Unstructured overlays </li></ul><ul><ul><li>Organized in random graph topology </li></ul></ul><ul><ul><li>Keyword queries </li></ul></ul><ul><ul><li>E.g.: Gnutella </li></ul></ul>http://www.dynamicobjects.com/papers/w4spot.pdf
  32. 32. DHT service model <ul><li>API Example: [OpenDHT] </li></ul><ul><ul><li>get(), put(), rm() </li></ul></ul><ul><ul><li>Behind the scenes – [BambooDHT] </li></ul></ul><ul><ul><li>Running on PlanetLab </li></ul></ul><ul><li>Other DHTs use similar APIs </li></ul><ul><ul><li>Can be extended to usage outside of DHTs as well </li></ul></ul>
  33. 33. DHTs <ul><li>Well-known DHTs </li></ul><ul><ul><li>Chord [Chord01] </li></ul></ul><ul><ul><li>CAN [Can01] </li></ul></ul><ul><ul><li>Kademilia [Kademilia02] </li></ul></ul><ul><ul><li>Pastry [Pastry01] </li></ul></ul><ul><li>Partitioned keyspace </li></ul><ul><ul><li>Distributed amongst nodes </li></ul></ul><ul><ul><li>Deals with churn </li></ul></ul>
  34. 34. Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-to-1 / 1-to-N Endpoints / Endpoints + routers Network Yes Passive Remote execution RPC 1-to-1 Remote node Network + processing Yes Passive (func+args) Parallel computing Message; Process 1-to-N Endpoints (clustered) Network/bus No Passive Grid computing Message (active obj.) 1-to-N Endpoints (distributed) Network + processing No Active Web services RPC; get/set 1-to-1 Remote node Network + processing Yes Passive (XML cmds) Overlay find/get/set/rm 1-to-N (DHT) Endpoints (overlay) Setup time + query process + churn No Passive Opportunistic networks find/get/set/rm 1-to-N Endpoints Delay on wire/wireless No Passive Active Networks Routing 1-to-N (router) Routers Processing time No Active
  35. 35. OPPORTUNISTIC NETWORKS <ul><li>Mobile nodes; highly mobile networks </li></ul><ul><ul><li>No infrastructure </li></ul></ul><ul><li>OLPC; mesh networks </li></ul><ul><li>Can be used for ad-hoc, community applications </li></ul><ul><li>Traditional network apps have to be adapted for oppnets </li></ul><ul><li>[Opp06] </li></ul>
  36. 36. BonAHA <ul><li>Framework for applications running on opportunistic networks </li></ul><ul><li>Updates on network </li></ul><ul><ul><li>serviceUpdated() </li></ul></ul><ul><ul><li>serviceExited() </li></ul></ul><ul><li>Node properties </li></ul><ul><ul><li>node. get() </li></ul></ul><ul><ul><li>node. set() </li></ul></ul>Node 2 Node 1 key21 = value21 key22 = value22 key23 = value23 key24 = value24 key11 = value11 key12 = value12 key13 = value13 key14 = value14 [2] node1.get(key13) [1] node1.register() [3] data = node1.fileGet( value13); [bonaha09]
  37. 37. Other OppNet Frameworks <ul><li>For opportunistic and mobile networks </li></ul><ul><ul><li>Proem (2001) </li></ul></ul><ul><ul><li>Peer2Me (2004) </li></ul></ul><ul><ul><ul><li>File sharing on BlueTooth </li></ul></ul></ul><ul><ul><li>Market Contact Protocol (MCP) (2008) </li></ul></ul><ul><ul><ul><li>Oppnet commerce </li></ul></ul></ul><ul><ul><li>LightPeers (2007) </li></ul></ul>
  38. 38. LightPeers <ul><li>Similar model to BonAHA </li></ul><ul><ul><li>“ Application”: Each application has its own GUID that identifies it </li></ul></ul><ul><ul><li>“ Session”: A group of nodes registered as running the application </li></ul></ul><ul><li>Code </li></ul><ul><ul><li>Application app = new Application(appid); </li></ul></ul><ul><ul><li>lpconn = new Connection(app); </li></ul></ul><ul><ul><li>ses = lpconn.CreateSession(); </li></ul></ul><ul><ul><li>List<Session> sessions = lpconn.GetSessionList(); </li></ul></ul><ul><li>[Lightpeers07] </li></ul>
  39. 39. Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-to-1 / 1-to-N Endpoints / Endpoints + routers Network Yes Passive Remote execution RPC 1-to-1 Remote node Network + processing Yes Passive (func+args) Parallel computing Message; Process 1-to-N Endpoints (clustered) Network/bus No Passive Grid computing Message (active obj.) 1-to-N Endpoints (distributed) Network + processing No Active Web services RPC; get/set 1-to-1 Remote node Network + processing Yes Passive (XML cmds) Overlay find/get/set/rm 1-to-N (DHT) Endpoints (overlay) Setup time + query process + churn No Passive Opportunistic networks find/get/set/rm 1-to-N Endpoints Delay on wire/wireless No Passive Active Networks Routing 1-to-N (router) Routers Processing time No Active
  40. 40. ACTIVE NETWORKS <ul><li>Allows “injection” of customized active code into network core </li></ul><ul><ul><li>ANTS, JanOS, Open Multi-Service Router, Netscript, Switchware </li></ul></ul><ul><li>All circa 1996-2001 </li></ul><ul><li>Why important? </li></ul><ul><ul><li>Example of frameworks for executable/active code that change network operations </li></ul></ul>
  41. 41. ANTS (Active Node Transfer Sys) <ul><li>New network protocols automatically deployed using mobile code </li></ul><ul><ul><li>Packets are replaced by capsules </li></ul></ul><ul><ul><li>Capsules contain instructions with executable code </li></ul></ul><ul><ul><li>Routers (active nodes) execute code </li></ul></ul><ul><li>[Ants98] </li></ul>
  42. 42. Janos <ul><li>Janos is a NodeOS ( Moab ) with: </li></ul><ul><ul><li>Execution Environment (EE) : similar to virtual machine </li></ul></ul><ul><ul><li>Active Applications (AA), which are injected into the network </li></ul></ul><ul><ul><ul><li>Written to run on ANTSR runtime </li></ul></ul></ul><ul><ul><ul><li>Which runs on top of Janos virtual machine </li></ul></ul></ul><ul><li>[Janos01] </li></ul>
  43. 43. Switchware <ul><li>Active packets, active extensions, active router infrastructure </li></ul><ul><ul><li>CAML-based </li></ul></ul><ul><ul><li>Packets contain PLAN (Programming Language for Active Networks) code </li></ul></ul><ul><ul><li>SANE (Secure Active Network Environment) </li></ul></ul><ul><li>[Switchware98] </li></ul>
  44. 44. Evaluation metrics API model Dist Location Delay Dest IP known Message function End-to-end sockets Message (send/recv) 1-to-1 / 1-to-N Endpoints / Endpoints + routers Network Yes Passive Remote execution RPC 1-to-1 Remote node Network + processing Yes Passive (func+args) Parallel computing Message; Process 1-to-N Endpoints (clustered) Network/bus No Passive Grid computing Message (active obj.) 1-to-N Endpoints (distributed) Network + processing No Active Web services RPC; get/set 1-to-1 Remote node Network + processing Yes Passive (XML cmds) Overlay find/get/set/rm 1-to-N (DHT) Endpoints (overlay) Setup time + query process + churn No Passive Opportunistic networks find/get/set/rm 1-to-N Endpoints Delay on wire/wireless No Passive Active Networks Routing 1-to-N (router) Routers Processing time No Active
  45. 45. Conclusion <ul><li>Covered the following network topologies, and the associated programming models: </li></ul><ul><ul><li>Traditional networking ←-> Sockets </li></ul></ul><ul><ul><li>Remote execution ←-> RPC, RMI, CORBA </li></ul></ul><ul><ul><li>Parallel computing ←-> MPI, PVM, Shared memory </li></ul></ul><ul><ul><li>Grid computing ←-> Javaspaces, Linda </li></ul></ul><ul><ul><li>Web services ←-> XML-RPC, SOAP, REST </li></ul></ul><ul><ul><li>Overlay networks ←-> DHTs, Bittorrent, JXTA </li></ul></ul><ul><ul><li>Opportunistic networks ←-> BonAHA, LightPeers, etc </li></ul></ul><ul><ul><li>Active Networks ←-> ANTS, Janos, etc . </li></ul></ul><ul><li>Question: Is there a common communication model, or abstraction for all of these scenarios? </li></ul><ul><li>Answer: Hard to see common ground </li></ul><ul><ul><li>Perhaps among some sub-groups, e.g., grid and parallel computing, overlay and opportunistic networks </li></ul></ul>
  46. 46. Backup Slides
  47. 47. RPC http://msdn.microsoft.com/en-us/library/aa373937%28VS.85%29.aspx
  48. 48. Java RMI command <ul><li>java -cp /home/ann/src:/home/ann/public_html/classes/compute.jar -Djava.rmi.server.codebase=http://zaphod/~ann/classes/compute.jar -Djava.rmi.server.hostname=zaphod.east.sun.com -Djava.security.policy=server.policy engine.ComputeEngine </li></ul>
  49. 49. MPI Sample code <ul><li>int main(int argc, char *argv[]) </li></ul><ul><li>{ </li></ul><ul><li>MPI_Status stat; </li></ul><ul><li>// Init </li></ul><ul><li>MPI_Init(&argc,&argv); /* all MPI programs start with MPI_Init; all 'N' processes exist thereafter */ </li></ul><ul><li>MPI_Comm_size(MPI_COMM_WORLD,&numprocs); /* find out how big the SPMD world is */ </li></ul><ul><li>MPI_Comm_rank(MPI_COMM_WORLD,&myid); /* and this processes' rank is */ </li></ul><ul><li>// Send any number of processses </li></ul><ul><li>MPI_Send(buff, BUFSIZE, MPI_CHAR, i, TAG, MPI_COMM_WORLD); </li></ul><ul><li>// Receive data </li></ul><ul><li>MPI_Recv(buff, BUFSIZE, MPI_CHAR, i, TAG, MPI_COMM_WORLD, &stat); </li></ul><ul><li>// Weak synchronization </li></ul><ul><li>MPI_Finalize(); </li></ul><ul><li>} </li></ul>
  50. 50. PVM sample code <ul><li>int main(int argc, char* argv[]) </li></ul><ul><li>{ </li></ul><ul><li>mytid = pvm_mytid(); /* find out my task id number */ </li></ul><ul><li>/* find my parent's task id number */ </li></ul><ul><li>myparent = pvm_parent(); </li></ul><ul><li>/* if i don't have a parent then i am the parent */ </li></ul><ul><li>if (myparent == PvmNoParent) { </li></ul><ul><li>info = pvm_spawn(argv[0], (char**)0, PvmTaskDebug, (char*)0, </li></ul><ul><li>ntask, child); </li></ul><ul><li>/* wait for the notification */ </li></ul><ul><li>info = pvm_recv(-1, TASKDIED); </li></ul><ul><li>pvm_exit(); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul><ul><li>/* i'm a child */ </li></ul><ul><li>pvm_exit(); </li></ul><ul><li>return 0; </li></ul><ul><li>} </li></ul>
  51. 51. ANTS example
  52. 52. Netscript <ul><li>Agents dispatched to remote systems </li></ul><ul><ul><li>Uses SOS to manage delegation agents </li></ul></ul><ul><li>Virtual Network Engines (VNE) interconnected by Virtual Links (VL) </li></ul><ul><ul><li>Packet arrives at VNE; headers used to pass it on executing agent </li></ul></ul><ul><li>[Netscript96] </li></ul>
  53. 53. JXTA <ul><li>Framework for building P2P apps </li></ul><ul><li>Peers create a overlay network </li></ul><ul><ul><li>Nodes identified by 160-bit SHA-1 URN </li></ul></ul><ul><li>Different protocols </li></ul><ul><ul><li>Peer Resolver, Peer Information, Rendezvous, Peer Membership, Pipe Binding, Endpoint Routing </li></ul></ul><ul><li>Peer types: </li></ul><ul><ul><li>Edge, Super, Rendezvous, Relay </li></ul></ul><ul><li>[jxta] </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×