53
1 Ubiquitous Communication Model for Different Network Scenarios Suman Srinivasan PhD Candidacy Talk Feb 23, 2009 Advisor: Dr. Henning Schulzrinne

Suman's PhD Candidacy Talk

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Suman's PhD Candidacy Talk

1

Ubiquitous Communication Model for Different Network Scenarios

Suman SrinivasanPhD Candidacy TalkFeb 23, 2009Advisor: Dr. Henning Schulzrinne

Page 2: Suman's PhD Candidacy Talk

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

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

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

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

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

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

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

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

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

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

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

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

OMG CORBA

http://en.wikipedia.org/wiki/CORBA 14

Page 15: Suman's PhD Candidacy Talk

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Backup Slides

46

Page 47: Suman's PhD Candidacy Talk

RPC

http://msdn.microsoft.com/en-us/library/aa373937%28VS.85%29.aspx47

Page 48: Suman's PhD Candidacy Talk

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

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

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

ANTS example

51

Page 52: Suman's PhD Candidacy Talk

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

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