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