Title: Technologies for Grids and eBusiness P2P, JXTA 08'01'07
1Technologies for Grids and eBusinessP2P,
JXTA08.01.07
- Dr. Ramin YahyapourComputer Engineering
InstituteUniversity Dortmund
2Centralized IndexesNapster
3Selective ForwardingClip2 Gnutella
4Selective ForwardingGnutella (2)
5Routing Structured Approaches
- Goal make sure that an item (file) identified is
always found in a reasonable of steps - Abstraction a distributed hash-table (DHT) data
structure - insert(id, item)
- item query(id)
- Note item can be anything a data object,
document, file, pointer to a file - Proposals
- CAN (ICIR/Berkeley)
- Chord (MIT/Berkeley)
- Pastry (Rice)
- Tapestry (Berkeley)
Source Dave Eckhardt, CMU
6Routing Chord
- Associate to each node and item a unique id in an
uni-dimensional space - Properties
- Routing table size O(log(N)) , where N is the
total number of nodes - Guarantees that a file is found in O(log(N)) steps
Source Dave Eckhardt, CMU
7Aside Consistent Hashing Karger 97
Key 5
K5
Node 105
N105
K20
Circular 7-bit ID space
N32
N90
K80
A key is stored at its successor node with next
higher ID
Source Dave Eckhardt, CMU
8Routing Chord Basic Lookup
N120
N10
Where is key 80?
N105
N32
N90 has K80
N90
K80
N60
Source Dave Eckhardt, CMU
9Routing Finger table - Faster Lookups
½
¼
1/8
1/16
1/32
1/64
1/128
N80
Source Dave Eckhardt, CMU
10What is JXTA ?
6 protocols
- Peer Discovery Protocol
- Peer Resolver Protocol
- Peer Information Protocol
- Pipe Binding Protocol
- Endpoint Routing Protocol
- Rendezvous Protocol
JXTA is a set of open, generalized P2P protocols
that allow any connected device on the network
to communicate and collaborate JXTA is
middleware designed as a set of building blocks
to allow developers to rapidly develop P2P
applications JXTA is designed to have a
peer-to-peer, decentralized model (although JXTA
supports traditional client/centralized server
and brokered) As in Gnutella, every JXTA peer
can be both a client and a server
Source I.J.Taylor
11JXTA Terms
Peer A JXTA node.
JXTA Group a group is a set of JXTA nodes who
share a common interest
Peer
A Rendezvous Peer a meeting place e.g. gateway
for JXTA groups
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Peer
Source I.J.Taylor
12JXTA Overview
Project JXTA defines a set of six protocols ,
which allow peers to
- Discover each other
- Self-organize into peer groups
- Advertise and discover network services
- Communicate with each other
- Monitor each other
- and the protocols do not require the use of any
particular - programming language
- operating system
- network transport
- Topology
- authentication
- Security
- encryption model.
- The JXTA protocols therefore allow heterogeneous
devices with completely different software stacks
to interoperate.
Source I.J.Taylor
13JXTA Architecture
JXTA Community Applications
SUN JXTA Applications
JXTA Applications
JXTA Community Services
SUN JXTA Services
- Indexing
- Searching
- File Sharing
JXTA Services
Peer Groups
Peer Pipes
Peer Monitoring
JXTA Core
Security (authentication, authorization and on
the wire)
Any Peer on the extended Web
Source I.J.Taylor
14Devices in JXTA Network
Firewall
NAT
Bluetooth
NAT
TCP
Firewall
Http
NAT
Firewall
- a distributed decentralized set of heterogeneous
devices
Source I.J.Taylor
15JXTA Terms and Concepts
Peer any networked device that implements one or
more of the JXTA protocols
Advertisements XML structured document that
names, describes, and publishes the existence of
a resource e.g. peer, peer group, pipe, or
service.
Messages sent between peers can be XML or binary
Pipes messages are send through virtual pipes
see next section
Identifiers each JXTA entity e.g. peer, advert
etc has a UUID identifier
Rendezvous Nodes a caching nodes for
advertisements similar to the super/ reflector
nodes in lecture 4.
Relay Nodes JXTA routers help to route
messages via firewalls, NAT systems etc i.e.
they relay the message on
Source I.J.Taylor
16JXTA Virtual Mapping
Peer
Peer
JXTA Virtual Network
Peer
Peer
Peer
Peer
Peer
Peer
Virtual Mapping
Firewall
NAT
Bluetooth
TCP/IP
NAT
Physical Network
Firewall
Http
NAT
Firewall
Source I.J.Taylor
17JXTA Groups
- virtual entity - speak a set of peer group
protocols - collection of cooperating peers providing a
common set of services e.g. file sharing peer
group, a CPU sharing peer group. - Peer group boundaries define search scope
- can be used to create a monitoring environment
- can be password protected and implement local
security policies - one special group, called the World Peer Group
(the default peer group a peer joins) that
includes all JXTA peers. - At least one rendezvous for a group groups are
the scoping environment for a rendezvous
FS Frank
Peer
Peer
Peer
Peer
FS Fred
Peer
Peer
Peer
Peer
Source I.J.Taylor
18JXTA Pipes
- Virtual Communication Channels
- Switchable e.g. TCP/IP, HTTP, Bluetooth
- NOT point to point
- Pipe endpoints -gt input pipe (the receiving end)
and the output pipe (the sending end). - Asynchronous and unidirectional
- Messages flow from the output pipe into the
input pipes. - Support the transfer of any object, including
binary code, data strings, and Java
technology-based objects - Two Types
- (End) Point to (End) Point
- Propagate - multicast
Peer
Peer
Peer
Peer
Peer
Peer
Point to Point
Propagate
Source I.J.Taylor
19JXTA Scenario
- Rendezvous node (RV) accepts connection for nodes
1-7 and stores advertisements locally - New node contacts Rendezvous using a discovery
mechanism e.g. Unicast/multicast (PDP) - RV authenticates New Node and adds the New Node
to the group (RVP) - New Nodes performs a file search query by
contacting the RV find a match locally or
propagates this query to all other members in the
group. The file is found on node 6 (PDP) - New Node and node 6 communicate directly through
a JXTA pipe. This connection is virtual and may
actually traverse (route) through the RV node and
node 7.
Source I.J.Taylor
20JXTA Protocols
- Peer Discovery Protocol
- Peer Information Protocol
- Pipe Binding Protocol
- Peer Resolver Protocol
- Rendezvous Protocol
- Peer Endpoint Protocol
Source I.J.Taylor
21JXTA Protocol Stack
Peer Discovery Protocol
Peer Discovery Protocol
Via Peer Resolver Protocol
Peer Information Protocol
Peer Information Protocol
Via Peer Resolver Protocol
Pipe Binding Protocol
Pipe Binding Protocol
Via Peer Resolver Protocol
Peer Resolver Protocol
Peer Resolver Protocol
Via Enpoint Routing Protocol
Rendezvous Protocol
Rendezvous Protocol
Via Enpoint Routing Protocol
Peer Endpoint Protocol
Peer Endpoint Protocol
Via installed Network Transports
Network Transport
Network Transport
Via Installed Network Transports
Source I.J.Taylor
22Peer Discovery
Peer Discovery Protocol
- A peer uses the PDP to discover a JXTA resource
- resources are described by advertisements e.g.
can be services, pipes, peers, peer groups, or
any other advertisements -
- Note, that the first word, peer, is the subject
and not necessarily the object -
- Using this protocol, peers can advertise their
own resources, and discover the resources from
other peers - Peer resources are published using XML-based
advertisements
Peer Information Protocol
Pipe Binding Protocol
- Two levels of discovery
- Joining a JXTA network
- Multicast
- Unicast
- discovering JXTA resource within a JXTA network.
Source I.J.Taylor
23Finding Information about Peers
- allows peers to learn about the capabilities and
status of other peers e.g. uptime, traffic load,
capabilities, state etc - e.g. one can send a ping message to see if a
peer is alive. - also query a peers properties where each
property as a name and a value string -
- useful for implementing monitoring
Peer Discovery Protocol
Peer Information Protocol
Pipe Binding Protocol
Source I.J.Taylor
24Binding Pipes
- allows a peer to establish a virtual
communication channel (i.e. a pipe) between peers
- allows the binding of the two or more ends of
the pipe endpoints forming the connection -
- a peer binds a pipe advertisement to a pipe
endpoint thus indicating here messages actually
go over the pipe - Bind occurs during the open operation, whereas
unbind occurs during the close operation.
Peer Discovery Protocol
Peer Information Protocol
Pipe Binding Protocol
Source I.J.Taylor
25The Resolver
- enables a peer to implement high-level search
capabilities - allows a peer to send and receive generic
queries to find or search for peers, peer groups,
pipes, and other information
Peer Resolver Protocol
Rendezvous Protocol
Peer Endpoint Protocol
Source I.J.Taylor
26Rendezvous
- allows a Peer to send messages to all the
listeners of the service - The rendezvous protocol defines how a peer can
subscribe or be a subscriber to a propagation
service allowing larger communities to form - A rendezvous nodes scope is a peer group
- e.g. the rendezvous protocol is used by the peer
resolver protocol and by the pipe binding
protocol in order to propagate messages.
Peer Resolver Protocol
Rendezvous Protocol
Peer Endpoint Protocol
Source I.J.Taylor
27Routing Those Messages
Peer Resolver Protocol
- allows a peer to find information about the
available routes for sending a message to
destination peer - i.e. pipes are often not directly connected to
each other - allows the implementation of routing algorithms
into JXTA - Peers implementing the endpoint routing protocol
respond to queries with available route
information giving a list of gateways along the
route.
Rendezvous Protocol
Peer Endpoint Protocol
Source I.J.Taylor