JXTA Protocol Introduction Student : Jia-Hui Huang Adviser : Kai-Wei Ke Date : 2005/11/22.
-
date post
19-Dec-2015 -
Category
Documents
-
view
215 -
download
1
Transcript of JXTA Protocol Introduction Student : Jia-Hui Huang Adviser : Kai-Wei Ke Date : 2005/11/22.
JXTA Protocol JXTA Protocol IntroductionIntroduction
Student : Jia-Hui HuangStudent : Jia-Hui Huang
Adviser : Kai-Wei KeAdviser : Kai-Wei Ke
Date : 2005/11/22Date : 2005/11/22
OutlineOutline
P2P IntroductionP2P IntroductionJXTA IntroductionJXTA IntroductionJXTA AssumptionsJXTA AssumptionsJXTA ConceptJXTA ConceptJXTA ProtocolsJXTA ProtocolsJXTA Connection ScenarioJXTA Connection ScenarioDemoDemoSummarySummary
P2P Introduction (1/2)P2P Introduction (1/2)
The term “ Peer-to-Peer ” refers to a class of The term “ Peer-to-Peer ” refers to a class of system/networks that :system/networks that : Distributed resourcesDistributed resources Perform function in a decentralized mannerPerform function in a decentralized manner
Each node potentially has the same Each node potentially has the same responsibility & capability.responsibility & capability.
Sharing can be in many ways :Sharing can be in many ways : CPU Cycle : share workloadCPU Cycle : share workload Storage space : Napster, Gnutella, Freenet … etcStorage space : Napster, Gnutella, Freenet … etc
P2P Introduction (2/2)P2P Introduction (2/2)
Why attractive ? Why attractive ? ScalabilityScalability Reliability Reliability
Client – Server Ex. FTP
Peer-to-Peer Ex. Bit Torrent
OutlineOutline
P2P IntroductionP2P IntroductionJXTA IntroductionJXTA IntroductionJXTA AssumptionsJXTA AssumptionsJXTA ConceptJXTA ConceptJXTA ProtocolsJXTA ProtocolsJXTA Connection ScenarioJXTA Connection ScenarioDemoDemoSummarySummary
JXTA Introduction(1/3)JXTA Introduction(1/3)
What is JXTA Protocol ?What is JXTA Protocol ? Developed by Sun Microsystems, Inc. 2001 v 1.0Developed by Sun Microsystems, Inc. 2001 v 1.0 Provide the basic P2P infrastructureProvide the basic P2P infrastructure Each resource are published as advertisementEach resource are published as advertisement Some characteristic of JXTA networkSome characteristic of JXTA network
Discover each otherDiscover each other
Self-organize into peer groupSelf-organize into peer group
Advertise and discover network resourceAdvertise and discover network resource
Communicate with each otherCommunicate with each other
Monitor each otherMonitor each other
JXTA Introduction(2/3)JXTA Introduction(2/3)
JXTA Protocol are composed six ProtocolsJXTA Protocol are composed six Protocols the following six protocol cooperate with other, and form JXTA the following six protocol cooperate with other, and form JXTA
protocolprotocol
Peer Resolver Protocol ( PRP )Peer Resolver Protocol ( PRP ) Peer Discovery Protocol ( PDP )Peer Discovery Protocol ( PDP ) Peer Information Protocol ( PIP )Peer Information Protocol ( PIP ) Pipe Binding Protocol ( PBP )Pipe Binding Protocol ( PBP ) Endpoint Routing Protocol ( ERP )Endpoint Routing Protocol ( ERP ) Rendezvous Protocol ( RVP )Rendezvous Protocol ( RVP )
JXTA Introduction(3/3)JXTA Introduction(3/3)
Not all protocol are necessaryNot all protocol are necessary JXTA core Protocol – requiredJXTA core Protocol – required
PRPPRP
ERPERP JXTA standard protocol – not requiredJXTA standard protocol – not required
Remaining JXTA Protocols ( PDP …etc )Remaining JXTA Protocols ( PDP …etc )
More standard protocol increase More standard protocol increase interoperabilityinteroperability
OutlineOutline
P2P IntroductionP2P IntroductionJXTA IntroductionJXTA IntroductionJXTA AssumptionsJXTA AssumptionsJXTA ConceptJXTA ConceptJXTA ProtocolsJXTA ProtocolsJXTA Connection ScenarioJXTA Connection ScenarioDemoDemoSummarySummary
JXTA JXTA AssumptionsAssumptions (1/2) (1/2)
Peer not assume run time environments aPeer not assume run time environments and programming languagesnd programming languagesPeers may appear, disappear and migrate Peers may appear, disappear and migrate at any timeat any timeCommunication between two peers is uni-Communication between two peers is uni-directional at same timedirectional at same timeData delivery is unreliableData delivery is unreliableProtocol messages and advertisements arProtocol messages and advertisements are defined using XML messagese defined using XML messages
JXTA JXTA AssumptionsAssumptions (2/2) (2/2)
Message is give up delivery if destination iMessage is give up delivery if destination is not availables not available
Each peer must be a member of the Net PEach peer must be a member of the Net PeerGroupseerGroups
Peers must be members of the same peer Peers must be members of the same peer group in order to exchange messagesgroup in order to exchange messages
The published content is not guarantee caThe published content is not guarantee can be received from JXTA networkn be received from JXTA network
OutlineOutline
P2P IntroductionP2P IntroductionJXTA IntroductionJXTA IntroductionJXTA AssumptionsJXTA AssumptionsJXTA ConceptJXTA ConceptJXTA ProtocolsJXTA ProtocolsJXTA Connection ScenarioJXTA Connection ScenarioDemoDemoSummarySummary
JXTAJXTA ConceptConcept (1/7) (1/7)
PeersPeers Any network device that implement JXTA Core ProtocolAny network device that implement JXTA Core Protocol Identify by a unique IDIdentify by a unique ID Distribute resources and services using advertisement mechanisDistribute resources and services using advertisement mechanis
mm May advertisement multiple network interface - endpointMay advertisement multiple network interface - endpoint
PeerGroupsPeerGroups A common set of peer self-organized into a peer grouA common set of peer self-organized into a peer grou
pp Identify by a unique PeerGroup IDIdentify by a unique PeerGroup ID Peer group provide a set of servicePeer group provide a set of service
JXTA Concept (2/7)JXTA Concept (2/7)
Discovery serviceDiscovery service Used by member to discovery resources ( pipe ….etc )Used by member to discovery resources ( pipe ….etc )
Membership serviceMembership service Used by member to accept of reject new peer join Used by member to accept of reject new peer join
requestrequest
Access serviceAccess service Used to validate requests made by one peer to anotherUsed to validate requests made by one peer to another
Pipe servicePipe service Manage and create pipe between different group Manage and create pipe between different group
membersmembers
Monitoring serviceMonitoring service Allow peer monitor each other in same groupAllow peer monitor each other in same group
JXTA Concept (3/7)JXTA Concept (3/7)
Two level of network serviceTwo level of network service Peer servicePeer service
Accessible only one the peer that is publishing the serviceAccessible only one the peer that is publishing the service Peer group servicePeer group service
Running on multiple members of the peer groupRunning on multiple members of the peer group
pipespipes A virtual communication channel for peer exchange A virtual communication channel for peer exchange
message, many type of pipe can establishmessage, many type of pipe can establish Two mode of pipe transferTwo mode of pipe transfer
Point to Point PipePoint to Point PipePropagate PipePropagate Pipe
JXTA Concept (4/7)JXTA Concept (4/7)
IDsIDs Each JXTA resource has a unique ID to identifEach JXTA resource has a unique ID to identif
y an entityy an entity These resource include Peers, PeerGroups, cThese resource include Peers, PeerGroups, c
ontent, pipes, module classes/spec.ontent, pipes, module classes/spec.
codatscodats Combination of content and its associated JXCombination of content and its associated JX
TA IDTA ID
JXTA Concept (5/7)JXTA Concept (5/7)
ModuleModule Module indicates the “service” provided by peModule indicates the “service” provided by pe
er or PeerGrouper or PeerGroup
Module classModule class Define the service type, have a unique idDefine the service type, have a unique id
Module specificationModule specification Define the service specification, have a uniquDefine the service specification, have a uniqu
e ide id
JXTA Concept (6/7)JXTA Concept (6/7)
All resource on the JXTA network are All resource on the JXTA network are publish as advertisementpublish as advertisementPeer advertisementPeer advertisement Describe a peer ID, name and other resourceDescribe a peer ID, name and other resource
Peer group advertisementPeer group advertisement Describe a peer group specific resourceDescribe a peer group specific resource
Module class advertisementModule class advertisement Describe a particular module class id stand Describe a particular module class id stand
for what type servicefor what type service
JXTA Concept (7/7)JXTA Concept (7/7)
Module specification advertisementModule specification advertisement Describe what particular module spec. ID Describe what particular module spec. ID
stand for which spec.stand for which spec.
Module implementation advertisementModule implementation advertisement Describe one of implementation of a specific Describe one of implementation of a specific
spec. it also provide necessary parameter of spec. it also provide necessary parameter of use this implementationuse this implementation
OutlineOutline
P2P IntroductionP2P IntroductionJXTA IntroductionJXTA IntroductionJXTA AssumptionsJXTA AssumptionsJXTA ConceptJXTA ConceptJXTA ProtocolsJXTA ProtocolsJXTA Connection ScenarioJXTA Connection ScenarioDemoDemoSummarySummary
JXTA ProtocolsJXTA Protocols
Two types of JXTA ProtocolTwo types of JXTA Protocol JXTA Core Protocol – requiredJXTA Core Protocol – required JXTA Standard Protocol – optionalJXTA Standard Protocol – optional
JXTA Core ProtocolJXTA Core Protocol
Protocol is a set of message format (XML) Protocol is a set of message format (XML) that exchange between peersthat exchange between peers
JXTA Core Specification defineJXTA Core Specification define :: Peer Resolver Protocol Peer Resolver Protocol Endpoint Routing Protocol Endpoint Routing Protocol
Peer resolver protocol (PRP)Peer resolver protocol (PRP)
Provide a resolution service, used to send Provide a resolution service, used to send query and receive responsequery and receive response
Each query and response is addressed Each query and response is addressed with a handlerwith a handler
Handler is a demultiplexing key that Handler is a demultiplexing key that specifies how, by which higher-level specifies how, by which higher-level protocol to be processedprotocol to be processed
Endpoint routing protocol (ERP)(1/3)Endpoint routing protocol (ERP)(1/3)
ERP is used for routingERP is used for routing
When a peer wants to issue a message, it When a peer wants to issue a message, it process is as followsprocess is as follows :: Peer lookup his local cachePeer lookup his local cache If exist route information then directly useIf exist route information then directly use If no exist route information then find available If no exist route information then find available
peer router for asking (send route resolver qupeer router for asking (send route resolver query message)ery message)
Endpoint routing protocol (ERP)(2/3)Endpoint routing protocol (ERP)(2/3)
When peer router receive a route queryWhen peer router receive a route query If it know route information it will return as an enumerIf it know route information it will return as an enumer
ation of hopation of hop If it don’t know then peer will asking other peer router If it don’t know then peer will asking other peer router
until no peer routeruntil no peer router Finally, if no peer router knows then give up routing thFinally, if no peer router knows then give up routing th
is messageis message notenote:: routing information may obsolete at any hoprouting information may obsolete at any hop
Shared Resource Distributed Index (SRDI)Shared Resource Distributed Index (SRDI) Utilize the set of rendezvous peer as resource index tUtilize the set of rendezvous peer as resource index t
o help message directiono help message direction
Endpoint routing protocol (ERP)(3/3)Endpoint routing protocol (ERP)(3/3)
At each hop the peer will extra a peer id At each hop the peer will extra a peer id information in the message header use forinformation in the message header use for Loop detectLoop detect New route discoveryNew route discovery
Message is a basic unit of data exchange Message is a basic unit of data exchange and the process is like packet in protocol and the process is like packet in protocol stackstack
JXTA Standard ProtocolsJXTA Standard Protocols
Rendezvous Protocol (RVP)Rendezvous Protocol (RVP)
Peer Discovery Protocol (PDP) Peer Discovery Protocol (PDP)
Peer Information Protocol (PIP)Peer Information Protocol (PIP)
Pipe Binding Protocol (PBP)Pipe Binding Protocol (PBP)
Rendezvous protocol (RVP) (1/3)Rendezvous protocol (RVP) (1/3)
RVP is used to propagate message within a peer groupRVP is used to propagate message within a peer groupA peergroup may contains more than one rendezvous A peergroup may contains more than one rendezvous peer.peer.The set of rendezvous peer perform a peer viewThe set of rendezvous peer perform a peer view
The PeerView is a list of the peers which are currently acting as The PeerView is a list of the peers which are currently acting as Rendezvous Peers.Rendezvous Peers.
The RVP can divided into three partsThe RVP can divided into three parts Management protocol (peer view protocol)Management protocol (peer view protocol)
An optional protocol used by Rendezvous Peers to organize An optional protocol used by Rendezvous Peers to organize themselvesthemselvesEach Rendezvous Peer maintains its own local list of active Each Rendezvous Peer maintains its own local list of active PeerView membersPeerView membersRendezvous Peer exchange message with each otherRendezvous Peer exchange message with each other
Rendezvous protocol (RVP)(2/3)Rendezvous protocol (RVP)(2/3)
Connection registration protocol (rendezvous Connection registration protocol (rendezvous lease protocol)lease protocol)
An optional protocol enables non-Rendezvous An optional protocol enables non-Rendezvous Peers to subscribe to receive propagated Peers to subscribe to receive propagated messages. ( act as a rendezvous peer )messages. ( act as a rendezvous peer )
Leases are of fixed duration.Leases are of fixed duration.
Rendezvous Peers offer lease its ability to Rendezvous Peers offer lease its ability to distribute message.distribute message.
Both rendezvous peer and subscriber can Both rendezvous peer and subscriber can terminate the lease at any time.terminate the lease at any time.
Rendezvous protocol (RVP) (3/3)Rendezvous protocol (RVP) (3/3)
Propagated message (rendezvous propagatioPropagated message (rendezvous propagation protocol)n protocol)
A required protocol, enable peers to manage the prA required protocol, enable peers to manage the propagation of individual message.opagation of individual message.
Propagation stop conditionPropagation stop condition:: Loop/Duplicate ( detected by unique id )Loop/Duplicate ( detected by unique id ) TTL TTL
Rendezvous advertisement is used for desRendezvous advertisement is used for describe a peer become a rendezvous peercribe a peer become a rendezvous peer
Peer discovery protocol (PDP) (1/2)Peer discovery protocol (PDP) (1/2)
PDP is used to discover resource within a PDP is used to discover resource within a groupgroup
Discovery peers behavior Discovery peers behavior
Use the field attribute and threshold to Use the field attribute and threshold to match querymatch query
PDP message is not guarantee responsePDP message is not guarantee response
Peer discovery protocol (PDP)(2/2)Peer discovery protocol (PDP)(2/2)
Five Scenario of discoveryFive Scenario of discovery Local Cache Local Cache Local DiscoveryLocal Discovery Using Rendezvous Peer w/o PropagationUsing Rendezvous Peer w/o Propagation Using Rendezvous Peer over FirewallUsing Rendezvous Peer over Firewall Using Rendezvous Peer and PropagationUsing Rendezvous Peer and Propagation
Peer information protocol (PIP)Peer information protocol (PIP)
An optional protocol, Used to obtain a peer An optional protocol, Used to obtain a peer status information.status information.
No guarantee response.No guarantee response.
Information include :Information include : Timestamp Timestamp TrafficTraffic
LastInCommingMessageAtLastInCommingMessageAt
LastOutgoingAt … etcLastOutgoingAt … etc SourcePidSourcePid TargetPid … etcTargetPid … etc
Pipe binding protocol (PBP)Pipe binding protocol (PBP)
PBP is used to create a pipe between two PBP is used to create a pipe between two peer (virtual communication channel)peer (virtual communication channel)
The underlying transport can use JXTA The underlying transport can use JXTA HTTP, JXTA TCP/IP or secure JXTA TLS HTTP, JXTA TCP/IP or secure JXTA TLS TransportTransport
The pipe can viewed as a message queue The pipe can viewed as a message queue that support create, bind, close, delete, that support create, bind, close, delete, send, and receive operationsend, and receive operation
Pipe advertisementPipe advertisement
Used to describe a local binded pipe informationUsed to describe a local binded pipe information
Each advertisement has a pipe type fieldEach advertisement has a pipe type field
Currently three type has definedCurrently three type has defined JXTAUnicastJXTAUnicast
Unicast, unsecure, unreliable pipe.Unicast, unsecure, unreliable pipe. JXTAUnicastSecureJXTAUnicastSecure
Unicast, secure ( using TLS ) pipe.Unicast, secure ( using TLS ) pipe. JXTAPropagate Diffusion pipesJXTAPropagate Diffusion pipes
Diffusion pipes, used to send one-to-many messages.Diffusion pipes, used to send one-to-many messages.
OutlineOutline
P2P IntroductionP2P IntroductionJXTA IntroductionJXTA IntroductionJXTA AssumptionsJXTA AssumptionsJXTA ConceptJXTA ConceptJXTA ProtocolsJXTA ProtocolsJXTA Connection ScenarioJXTA Connection ScenarioDemoDemoSummarySummary
JXTA message transportsJXTA message transports
Three Scenario of message transportsThree Scenario of message transports Communication across Firewall (outside to Communication across Firewall (outside to
inside)inside) Message to Peer across one Firewall (inside Message to Peer across one Firewall (inside
to outside )to outside ) Message to Peer across two FirewallsMessage to Peer across two Firewalls
OutlineOutline
P2P IntroductionP2P IntroductionJXTA IntroductionJXTA IntroductionJXTA AssumptionsJXTA AssumptionsJXTA ConceptJXTA ConceptJXTA ProtocolsJXTA ProtocolsJXTA Connection ScenarioJXTA Connection ScenarioDemoDemoSummarySummary
DemoDemo
MessagingMessaging P2PAVConferenceP2PAVConference
File sharingFile sharing
Peer1
Peer2
OutlineOutline
P2P IntroductionP2P IntroductionJXTA IntroductionJXTA IntroductionJXTA AssumptionsJXTA AssumptionsJXTA ConceptJXTA ConceptJXTA ProtocolsJXTA ProtocolsJXTA Connection ScenarioJXTA Connection ScenarioDemoDemoSummarySummary
SummarySummary
Project JXTA establish a virtual network overlay Project JXTA establish a virtual network overlay on top of existing networks.on top of existing networks.JXTA provide a P2P systems, it achieve :JXTA provide a P2P systems, it achieve : InteroperabilityInteroperability Platform independencePlatform independence UbiquityUbiquity
It allow application developers build P2P It allow application developers build P2P application without take underlying network into application without take underlying network into account.account.P2P system become more easy to develop.P2P system become more easy to develop.
ReferenceReference
Sun Microsystems Inc. “ Sun Microsystems Inc. “ JXTA v2.0 Protocols JXTA v2.0 Protocols SpecificationSpecification ”, 2004 ”, 2004Li Gong Sun Microsystems, Inc “ Project JXTA : Li Gong Sun Microsystems, Inc “ Project JXTA : A Technology Overview ”, October 29 2002A Technology Overview ”, October 29 2002Bernard Traversat, Ahkil Arora, Mohamed AbdelBernard Traversat, Ahkil Arora, Mohamed Abdelaziz, Mike Duigou, Carl Haywood, Jean-Christopaziz, Mike Duigou, Carl Haywood, Jean-Christophe Hugly, Eric Pouyoul, Bill Yeager, “ Project JXhe Hugly, Eric Pouyoul, Bill Yeager, “ Project JXTA 2.0 Super-Peer Virtual Network ”, May 25 20TA 2.0 Super-Peer Virtual Network ”, May 25 200303www.jxta.orgwww.jxta.org
Discovery Scenario (1/5)Discovery Scenario (1/5)
lookup
communicate
Discovery Scenario (2/5)Discovery Scenario (2/5)
multicastresponse
Discovery Scenario (3/5)Discovery Scenario (3/5)
Discovery message
Response message
Discovery Scenario (4/5)Discovery Scenario (4/5)
discovery
response cache
Discovery Scenario (5/5)Discovery Scenario (5/5)
Connection Scenario (1/3)Connection Scenario (1/3)
By Propagate message
HTTP connection
Msg queue
Connection Scenario (2/3)Connection Scenario (2/3)
Regular connection
Connection Scenario (3/3)Connection Scenario (3/3)
HTTP HTTP
message