26
JXTA JXTA Project JXTA 2.0 Super-Peer Virtual Project JXTA 2.0 Super-Peer Virtual Network Network Presented by Chin-Yi Tsai Presented by Chin-Yi Tsai

JXTA Project JXTA 2.0 Super-Peer Virtual Network Presented by Chin-Yi Tsai

Embed Size (px)

Citation preview

JXTAJXTAProject JXTA 2.0 Super-Peer Virtual NetworkProject JXTA 2.0 Super-Peer Virtual Network

Presented by Chin-Yi TsaiPresented by Chin-Yi Tsai

22

P2PP2P Peer-to-Peer ComputingPeer-to-Peer Computing

• 運算風格運算風格• 使網路更具對稱性使網路更具對稱性

P2P exampleP2P example• Gnutella (Gnutella ( 分散式分散式 ))• Napster (Napster ( 集中式集中式 ) )

P2P ApplicationP2P Application• Consumer file sharing: Consumer file sharing: GnutellaGnutella, , FastTrackFastTrack, , NapsterNapster• Distributed resource sharing: Distributed resource sharing: SET@HomeSET@Home, , AvakiAvaki, , EntropiaEntropia• Content distributed networks: Content distributed networks: OpenColaBlueOpenColaBlue FalconFalcon

NetworkNetwork, , KonitikiKonitiki • P2P communications: P2P communications: AOL instant MessengerAOL instant Messenger, , Yahoo! Yahoo!

MessengerMessenger, , ICQICQ, , JabberJabber, , MSN MessengerMSN Messenger• Collaboration application: Collaboration application: HiveHive, , GrooveGroove, , myJXTAmyJXTA

33

JXTAJXTA Projext JXTA was initiated to standardize a common set of Projext JXTA was initiated to standardize a common set of

protocols for building P2P application.protocols for building P2P application.

JXTAJXTA 目標目標• 作業系統獨立性 作業系統獨立性 (Windows and UNIX)(Windows and UNIX)• 語言的獨立性 語言的獨立性 (C or Java Programming Language)(C or Java Programming Language)• 提供提供 P2PP2P 應用程式可用的服務及基礎架構 應用程式可用的服務及基礎架構 (RMI and WSDL)(RMI and WSDL)

Software ArchitectureSoftware Architecture

44

JXTA (cont’d)JXTA (cont’d) PeerPeer

Peer GroupPeer Group

EndpointEndpoint• 溝通基本定址方法,實作通訊協定溝通基本定址方法,實作通訊協定

PipePipe

AdvertisementAdvertisement

Rendezvous PeerRendezvous Peer• 處理其他查詢要求的點處理其他查詢要求的點• relayrelay

Router PeerRouter Peer• 支援支援 endpoint protocolendpoint protocol 的的 peerpeer

Gateway PeerGateway Peer• 中繼點中繼點• 轉傳訊息而已轉傳訊息而已

55

AdvertisementsAdvertisements Module Class AdvertisementModule Class Advertisement

• 定義定義 modulemodule 的行為的行為

Module Specification AdvertisementModule Specification Advertisement• 定義定義 modulemodule 規格,定義實作資訊規格,定義實作資訊

Module Implementation AdvertisementModule Implementation Advertisement• 特殊特殊 languagelanguage 的的 referencereference ,可用此來執行程式碼,可用此來執行程式碼

Pipe AdvertisementPipe Advertisement

PeerGroup AdvertisementPeerGroup Advertisement

Peer AdvertisementPeer Advertisement

Endpoint AdvertisementEndpoint Advertisement

66

JXTA Communication ProtocolJXTA Communication Protocol Peer Discovery Protocol (PDP)Peer Discovery Protocol (PDP) Peer Resolver Protocol (PRP)Peer Resolver Protocol (PRP) Peer Information Protocol (PIP)Peer Information Protocol (PIP) Peer Membership Protocol (PMP)Peer Membership Protocol (PMP) Pipe Binding Protocol (PBP)Pipe Binding Protocol (PBP) Rendezvous Protocol (RVP)Rendezvous Protocol (RVP) Peer Endpoint Protocol (PEP)Peer Endpoint Protocol (PEP)

77

Peer Discovery ProtocolPeer Discovery Protocol• 允許允許 PeerPeer 去探索其它點的去探索其它點的 advertisement (peer, advertisement (peer,

peergroup, service, pipe)peergroup, service, pipe)

Peer Resolver Protocol Peer Resolver Protocol • 允許允許 peerpeer 傳送傳送 search querysearch query 給其他點給其他點• Request/ResponseRequest/Response• Used by Peer Discovery ProtocolUsed by Peer Discovery Protocol

88

Peer Information Protocol Peer Information Protocol • 允許允許 peerpeer 了解其他了解其他 peerpeer 的的 state informationstate information• Like pingLike ping

Peer Membership Protocol Peer Membership Protocol • 允許允許 peerpeer 加入或退出加入或退出 peergrouppeergroup• 識別及授權識別及授權

99

Pipe Binding Protocol Pipe Binding Protocol • 可定址的訊息傳送可定址的訊息傳送• Virtual communication channelVirtual communication channel

Rendezvous Protocol Rendezvous Protocol • 負責在負責在 JXTA groupJXTA group 內傳播訊息內傳播訊息• 讓讓 groupgroup 內的內的 peerpeer 可以傳送及接收訊息,並且可以控制可以傳送及接收訊息,並且可以控制訊息的傳播方式訊息的傳播方式

Peer Endpoint Protocol Peer Endpoint Protocol • 用來建立連線徑,以傳送訊息至其它點用來建立連線徑,以傳送訊息至其它點• 路由路由

1010

APIAPI

Modulenet.jxta.platform

Servicenet.jxta.Service

RendezvousService ResolverService

PeerInfoServiceEndpointService

PipeService DiscoveryService

MembershipService

1111

1212

Super-Peer Virtual NetworkSuper-Peer Virtual Network The Project JXTA protocols establish a virtual network overlay The Project JXTA protocols establish a virtual network overlay

on top of the Internet, allowing peers to directly interact and on top of the Internet, allowing peers to directly interact and self-organize independently of their network connectivity and self-organize independently of their network connectivity and domain topology.domain topology.

To discover and interact with each other in an ad hoc and To discover and interact with each other in an ad hoc and decentralized manner.decentralized manner.

1313

Super-Peer Virtual Network (cont’d)Super-Peer Virtual Network (cont’d) The JXTA 2.0 release is making a stronger The JXTA 2.0 release is making a stronger

differentiation in the way super-peers as differentiation in the way super-peers as relayrelay and and rendezvousrendezvous behave and interact with edge peers. behave and interact with edge peers.

The JXTA 2.0 implementation build upon 5 The JXTA 2.0 implementation build upon 5 virtual virtual network abstractionnetwork abstraction in JXTA 1.0. in JXTA 1.0.

JXTA IDsJXTA IDs• 128-bits random UUID128-bits random UUID

AdvertisementsAdvertisements• All network resources in JXTA network, such as All network resources in JXTA network, such as peerspeers, ,

peergrouppeergroup, , pipespipes, and , and servicesservices are represented by are represented by advertisements.advertisements.

• XML documentsXML documents

1414

Virtual network abstractionVirtual network abstraction Uniform peer addressingUniform peer addressing

• Peer ID, and its associated peer endpointPeer ID, and its associated peer endpoint

PeergroupPeergroup• Dynamically self-organize into protected domain called peergroupDynamically self-organize into protected domain called peergroup

AdvertisementAdvertisement• XML documentXML document• Publish and discoverPublish and discover

ResolverResolver• Universal binding mechanismUniversal binding mechanism• Peer name -> DNSPeer name -> DNS• All binding operations are implemented as All binding operations are implemented as discoverydiscovery or or searchsearch of one or of one or

more XML documentsmore XML documents• Project JXTA does not specify how the search of advertisement is Project JXTA does not specify how the search of advertisement is

performedperformed

PipePipe• Virtual communication channelVirtual communication channel

Point-to-point pipePoint-to-point pipe Propagate pipePropagate pipe

1515

Rendezvous Super-PeersRendezvous Super-Peers The core resolver infrastructure provides the ability to send The core resolver infrastructure provides the ability to send

and propagate queries, and receive responses.and propagate queries, and receive responses.

The Projext JXTA provides a default resolver policy based on The Projext JXTA provides a default resolver policy based on Rendezvous super-peers.Rendezvous super-peers.

1616

Rendezvous just maintain an index of advertisements Rendezvous just maintain an index of advertisements published by their edge peers.published by their edge peers.• ScalableScalable• Reduce the problem of caching out-of-data advertisementReduce the problem of caching out-of-data advertisement

Edge peer maintain special relationship with their Edge peer maintain special relationship with their rendezvous peers.rendezvous peers.

The The Shared Resource Distributed Index (SRDI)Shared Resource Distributed Index (SRDI) service service is used by edge peers to index their advertisements is used by edge peers to index their advertisements on rendezvous.on rendezvous.

Only rendezvous peers are involved in the propagation Only rendezvous peers are involved in the propagation of advertisement queries.of advertisement queries.

1717

A loosely-Consistent Rendezvous NetworkA loosely-Consistent Rendezvous Network

Rendezvous super-peers organize Rendezvous super-peers organize themselves into a loosely-coupled network.themselves into a loosely-coupled network.

1818

Edge Peer Rendezvous ConnectionEdge Peer Rendezvous Connection Local cache for any rendezvous Local cache for any rendezvous

advertisementadvertisement

IP multicast / peergroup pipe IP multicast / peergroup pipe

Query one of the seeding rendezvousQuery one of the seeding rendezvous

Become a rendezvousBecome a rendezvous

1919

Rendezvous PropagationRendezvous Propagation

2020

Relay Super-PeersRelay Super-Peers The Projext JXTA network introduces the notation of super-peers called The Projext JXTA network introduces the notation of super-peers called

relay peers for bridging peers that do not have direct physical relay peers for bridging peers that do not have direct physical connectivity.connectivity.

Relay peers provide the ability to spool messages for unreachable or Relay peers provide the ability to spool messages for unreachable or temporarily unavailable edge peers.temporarily unavailable edge peers.

Rely peers play the role of landmarks facilitating the routing of Rely peers play the role of landmarks facilitating the routing of messages between far away, and non-reachable peers.messages between far away, and non-reachable peers.

Relays only maintain states for their edge peers and agreed upon lease Relays only maintain states for their edge peers and agreed upon lease period.period.

2121

Message and CredentialsMessage and Credentials Message are the basic unit of data exchange Message are the basic unit of data exchange

between peers.between peers.

2222

PeerGroupPeerGroup Main motivations for creating peergroupsMain motivations for creating peergroups

• To create secure domain for exchanging secure contentsTo create secure domain for exchanging secure contents• To create a scoping environmentTo create a scoping environment• To create a monitoring environmentTo create a monitoring environment

2323

PipesPipes Pipes are virtual communication channels used to Pipes are virtual communication channels used to

send and receive messages between services and send and receive messages between services and applications.applications.• Input pipeInput pipe• Output pipeOutput pipe

The pipe binding consists of searching and The pipe binding consists of searching and connecting the two or more ends of a pipe.connecting the two or more ends of a pipe.

2424

JXTA J2SE Reference ImplementationJXTA J2SE Reference Implementation

2525

ConclusionConclusion To standardize a common set of protocols To standardize a common set of protocols

needed to build peer-to-peer applications.needed to build peer-to-peer applications.

Virtual networkVirtual network

AbstractionAbstraction• Uniform peer ID addressingUniform peer ID addressing• PeergroupsPeergroups• AdvertisementAdvertisement• Resolver Resolver • PipesPipes

that provide a generic infrastructure to that provide a generic infrastructure to deploy P2P service and application.deploy P2P service and application.

2626

Various P2P systemVarious P2P system

DHT (Distributed Hash Table)DHT (Distributed Hash Table)

RDF / metadata and search problemRDF / metadata and search problem

Network topology for super-peers when Network topology for super-peers when searching or queryingsearching or querying

UML <-> Metadata(RDF, Ontology)UML <-> Metadata(RDF, Ontology)