Professional Documents
Culture Documents
Ô
@ Introduction
@ JXTA Architecture
@ JXTA Concepts
@ JXTA Protocols
@ JXTA Search
î |
@ JXTA is a set of open, generalized P2P protocols
that allow any connected device on the network
(from cell phone to PDA, from PC to server) to
communicate and collaborate as peers.
@ Its goal is to develop basic building blocks and
services to enable applications for peer groups
@ Platform, Programming Language, Transport
Protocol independent
@ a framework with a set of standards that supports
p2p apps
@ JXTA is not an application, it does not define the
type of the applications
î |
@ P2P is ? to client-server or Web-based
computing
@ The JXTA protocols standardize the manner in which
peers:
Discover each other
Self-organize into peer groups
Advertise and discover network services
Communicate with each other
Monitor each other
@ Hence, implementation is left to developer
@ The protocols can be implemented in Java, C/C++, Perl,
etc.
@ The protocols can be implemented on top of TCP/IP, HTTP,
Bluetooth, HomePNA, or other transport protocols
@ JXTA protocols defines the minimum required network
semantic for peers to form/join a virtual network
î |
@ The primary goal is to provide a platform
with basic functions necessary for a P2P
network. (Mentioned earlier)
@ JXTA technology seeks to overcome
potential shortcomings in many of the
existing P2P systems:
6
|
@ It includes implementation of
integrated applications such as:
P2P instant messaging
document and resource sharing
entertainment
content management and delivery
P2P email systems
distributed auction systems
@ JXTA network consists of interconnected peers
@ peers self-organize into peer groups that provide a
common set of services
@ peers advertise their services. Advertisements enable
other peers on the network how to connect to, interact
with peer¶s services
@ peers use pipes to send messages to one another.
Pipes are similar to message queues (asynchronous
and unidirectional message transfer)
@ messages are simple XML documents whose envelope
contains routing, digest and credential information
@ Pipes are bound to endpoints, such as TCP/IP port and
associated IP address
À
@ PID: peerID
@ GID: groupID
@ Name: name
@ Desc: Description
@ Svc: Lists what the peer provides to the group services as data e.g., all
accessible end-point addresses are published in association with the
Endpoint Service, or the certificate is published with Membership service.
These parameters are supplied to the services
|
!"
|
6xs:element name="PGA" type="jxta:PGA"/>
6xs:complexType name="PGA">
6xs:sequence>
6xs:element name="GID" type="jxta:JXTAID"/>
6xs:element name="MSID" type="jxta:JXTAID"/>
6xs:element name="Name" type="xs:string" minÔccurs="0"/>
6xs:element name="Desc" type="xs:anyType" minÔccurs="0"/>
6xs:element name="Svc" type="jxta:serviceParam" minÔccurs="0"
maxÔccurs="unbounded"/>
6/xs:sequence>
6/xs:complexType>
@ GID: group ID
@ MSID: Specification ID that this group uses. The ID is used to locate a
module that references the services the group uses
@ Name: name
@ Des: description
@ Svc: optional list of MCID. For example, services, e.g. Membership Service
ÿ
6xs:element name="MCA" type="jxta:MCA"/>
6xs:complexType name="MCA">
6xs:sequence>
6xs:element name="MCID" type="jxta:JXTAID"/>
6xs:element name="Name" type="xs:string" minÔccurs="0"/?
6xs:element name="Desc" type="xs:anyType" minÔccurs="0"/>
6/xs:sequence>
6/xs:complexType>
urn:jxta:uuid9CCCDF5AD8154D3D87A391210404E59BE4B888209A2
241A4A162A10916074A9504
6/Id>
6Type>JxtaUnicast6/Type>
6Name>JXTA-EX16/Name>
6/jxta:PipeAdvertisement>
6/jxta:MSA>
ÿ
6xs:element name="MIA" type="jxta:MIA"/>
6xs:complexType name="MIA">
6xs:sequence>
6xs:element name="MSID" type="jxta:JXTAID"/>
6xs:element name="Comp" type="xs:anyType"/>
6xs:element name="Code" type="xs:anyType"/>
6xs:element name="PURI" type="xs:anyURI" minÔccurs="0"/>
6xs:element name="Prov" type="xs:string" minÔccurs="0"/>
6xs:element name="Desc" type="xs:anyType" minÔccurs="0"/>
6xs:element name="Parm" type="xs:anyType" minÔccurs="0"/>
6/xs:sequence>
6/xs:complexType>
@ MSID: Module Spec ID, the specification being implemented
@ Comp: environment in which this implementation may be implemented
@ Code: in case of a java impl., it contains class name. Ôther cases it can contain entire
code
@ PURI: Package URI, package containing the code
@ Prov: Provider
@ Desc: Description
@ Parm: arbitrary parameters to be interpreted by the implementation
ÿ
!"
6jxta:MIA xmlns:jxta="http://jxta.org">
6MSID>urn:jxta:uuid-
DEADBEEFDEAFBABAFEEDBABE0000000102066/MSID>
6Comp>
6Efmt>JDK1.46/Efmt>
6Bind>V1.0 Ref Impl6/Bind>
6/Comp>
6Code>net.jxta.impl.peergroup.ShadowPeerGroup6/Code>
6PURI>http://www.jxta.org/download/jxta.jar6/PURI>
6Prov>sun.com6/Prov>
6Desc>
Default NetPeerGroup reference implementation.
6/Desc>
6/jxta:MIA>
|
6xs:element name="PipeAdvertisment" type="jxta:PipeAdvertisment"/>
6xs:complexType name="PipeAdvertisement">
6xs:sequence>
6xs:element name="Id" type="jxta:JXTAID"/>
6xs:element name="Type" type="xs:string"/>
6xs:element name="Name" type="xs:string" minÔccurs="0"/>
6/xs:sequence>
6/xs:complexType>
@ Id: JXTA id
@ Type: unicast, unicast secure or propagate
@ name: name
|
!"
6jxta:PipeAdvertisement xmlns:jxta="http://jxta.org">
6Id>
urn:jxta:uuid-
9CCCDF5AD8154D3D87A391210404E59BE4B888209A
2241A4A162A10916074A9504
6/Id>
6Type>
JxtaUnicast
6/Type>
6Name>
JXTA-EX1
6/Name>
6/jxta:PipeAdvertisement>
À
@ JXTA peers operate in a role-based trust model, in which an individual
peer acts under the authority granted to it by another trusted peer to
perform a particular task
@ Five basic security requirements:
confidentially: content of the message is not disclosed to unauthorized
(encryption and signed by certificate)
authentication: sender is who s/he claims to be (credentials)
authorization: the sender is authorized to send a message (credentials)
data integrity: message was not modified in transit (Message digest)
refutability: (encryption and signed by certificate)
@
@ A credential is obtained after authentication (Membership Service)
@ Groups use authentication and credentials to control access and
enable security
Ô
#
@ Peers may join or leave the network at any time and routes
may change frequently
@ Four kinds of peer:
minimal peer: send receive message, does not cache ads, does
not route messages (PDA or cell phone)
simple peer: send receive message, cache ads, reply to discovery
request if it is in cache, do not forward the discovery request
(most peers)
Rendezvous peer: in addition to simple peers, forward discovery
messages. Any simple peer can configure itself as rendezvous. It
has a list of other known rendezvous peers and a list of peers that
are using it as rendezvous. It forward discovery request (if it can
not found in its cache) to other rendezvous also to the peers that
are using it. A message has a TTL of seven hops.
Relay peer: information about the routes to other peers and
routes messages to other peers. A peer first look at its local cache
for its route info, if it isn¶t found, the peer asks relay peer. Relay
peers spool messages for unreachable peers.
# |
] In JXTA 2.0 adv queries no
more propagated to edge peers
] A query is forwarded to an
edge peer only when a matching
index is found
] The propagation in Rendezvous
peers
] SRDI is used by edge peers to
index their adv on rendezvous
peers
] Rendezvous peer has a list of
other rendezvous peers (RPV ±
Rendezvous Peer View)
|
|
@ Peer Discovery Protocol (PDP): advertise resources (peers,
peer groups, services, pipes) and discover resources (in JXTA
Standard Services)
@ Peer Information Protocol (PIP): obtain status info from other
peers (in JXTA Standard Services)
@ Peer Resolver Protocol (PRP): enables peers to send generic
queries to other peers, allows peer services to define and
exchange any arbitrary information (in JXTA Core)
@ Pipe Binding Protocol (PBP): used by peers to establish pipes
to others (in JXTA Standard Services)
@ Endpoint Routing Protocol (ERP): used by peers to find
routes. route is an ordered sequence of relay peers (in JXTA
Core)
@ Rendezvous Protocol (RVP): used by peers to propagate
messages within a peer group (in JXTA Standard Services)
|
@ enable developers to build and deploy
interoperable services
@ ALL ARE ASYNCHRÔNÔUS
@ Each of them is independent of the others
@ A peer is not required to implement all of
the JXTA protocols to be a JXTA peer
@ The PRP and ERP must be implemented
by a peer to addressable
| $ |
] Type: 0, 1, 2
] Threshold: Max number of ads that each peer provide
] PeerAdv: ad of the requestor
] Attribute, Value: constraining the search space
$ % !"
6jxta:DiscoveryQuery>
6Type>26/Type>
6Threshold>16/Threshold>
6Attr>Name6/Attr>
6Value>*sidus*6/Value>
6PeerAdv>
<?xml version="1.0"?>
<!DÔCTYPE jxta:PA>
<jxta:PA xmlns:jxta="http://jxta.org">
<PID>
urn:jxta:uuid-
59616261646162614A7874615032503304BD268FA4764960AB9
3A5D7F15044503
</PID>
^^^
^^^
</jxta:PA>
6/PeerAdv>
6/jxta:DiscoveryQuery>
|
|