Transcript JXTA

JXTA
Selo TE 2005
Introduction





What is JXTA (pronounced Juxta)
Jxta – an open, network computing
platform designed for peer-to-peer (P2P)
computing
Provides a base P2P infrastructure over
which other P2P applications can be built
Originally conceived by Sun Microsystems
Designed with the participation of experts
from academia and industry
Jxta P2P Software Architecture
Jxta Three Layer Cake
JXTA
applications
JXTA
services
JXTA
core
Jxta community applications
Jxta community services
Peer groups
Sun Jxta
applications
Sun Jxta -indexing
Services – searching
Peer pipes
Peer
Shell
--------Peer
commands
Peer monioring
Security
Any peer on the extended Web
Jxta Layers

Platform - Minimal and essential primitives





Services - Network / Web services




Peer & peer group discovery
Communication
Monitoring
Security
Indexing,searching
Directory storage systems
Distributed file systems
Applications




Instant messaging
Content management
Distributed auction systems
P2P email systems
Jxta Jargon




Peers
Peer groups
 Collection of peers with common set of interests
 Unique PeerGroup Id
 Default: World Peer Group
Messages
 Message-based communication
 XML
 Datagram
 Envelope having header, digest, source & destination endpoints
Pipes
 Virtual communication channels
 Network abstraction over the peer endpoint transport
Jxta Jargon (contd)




Services
 Peer Services
 PeerGroup Services
 Discovery service
 Membership service
 Access service
 Pipe service
 Resolver service
 Monitoring service
Codats (Code/Data)
Identifiers
Advertisements
Jxta Protocols
PeerGroup
Peer
Peer Membership
Protocol
PeerGroup
Peer Information
Protocol
Peer Information
Protocol
Peer Binding
Protocol
Peer Binding
Protocol
Peer Discovery
Protocol
Peer Discovery
Protocol
Peer
Peer Resolver
Protocol
Resolver
Endpoint
Peer Membership
Protocol
Peer Resolver
Protocol
Resolver
Peer Endpoint
Protocol
Transport
Endpoint
Peer Endpoint
Protocol
Transport
Jxta Protocols



Set of six protocols
Designed for ad hoc, pervasive and multi-hop
peer-to-peer network computing
Objectives







Interoperability
Plaform independence
Ubiquity
Using the protocols, peers can cooperate to form
self organized and self-configured peer groups
Advertise resources
Discover network resources
Route messages/communicate
Peer Discovery Protocol





Enables peers to discover peer resources
 Peers, peer groups, pipes, services, etc
Default discovery protocol
Based on web-crawling and rendezvous peers
Rendezvous peers
 Cache advertisements
 Forward requests
Discovery Request messages
 Unicast
 propagate
Peer Resolver Protocol




Enables a peer to send a generic query to
another peer service
Each service can register a handle in
peergroup resolver
Unique service handler name
A peer is not required to respond to a
ResolverQuery request
Peer Membership Protocol


Peers use PMP for joining and leaving peer
groups
Actions:





Apply
Join
Renew
Cancel
Authenticators and security credentials to
provide desired level of protection
Peer Information Protocol



PIP allows a peer to learn about the
capabilities and status of other peers
Eg. Ping a peer to determine if it is alive
PeerInfo Messages
<?xml? Version=“1.0” encoding=“UTF-”>
<jxta: PeerInfo>
<Credential> Credential </Credential>
<SourcePid> Source Peer Id </SourcePid>
<TargetPid> Target Peer Id </TargetPid>
<Uptime> uptime </uptime>
<Timestamp> timestamp </timestamp>
<PeerAdv> Peer advertisement </PeerAdv>
</jxta: PeerInfo>
Peer Binding Protocol



PBP is used by peers to bind a pipe
advertisement to a pipe endpoint
Pipes can be viewed as abstract named
message queues
Support abstract operations


Bind
Unbind
Peer Endpoint Protocol



Also called Endpoint Routing Protocol
Allows peers to query a peer router for
available routes for sending a message to
a destination peer
Router peers


Cache route information
Bridge different logical and physical networks
Jxta Java Binding

Jxta reference implementation in Java
(JDK release 1.1.4)




Portability
Ease of development
Rich set of class libraries
XML



Messages and advertisements
Parsing and extensibility
Lightweight XML parser that supports a
subset of SML - MicroXML
Jxta Class organization




Two main class hierarchies:

net.jxta.*classes
 Interfaces for Jxta protocols and core building
blocks

net.jxta.impl.*classes
 Interfaces’ implementations
Peer class
•
Boot class – net.jxta.impl.peergroup.Boot
Peer Group
•
PeerGroup class – net.jxta.peergroup.PeerGroup
Applications
•
net.jxta.platform.Application
Security

Crypto Library








Hashing functions (MD5)
Symmetric encryption (RC4)
Asymmetric encryption (DH and RSA)
Pluggable Authentication Module (PAM)
Password based login scheme
Transport security mechanism
Simple access-control mechanism
NAT/Firewalls – active research
Jxta Shell



Application built on top of Jxta Platform
Networked command-line interface
Shell commands (similar to Unix)






Man
Env
Whoami
Peers
Importfile
Mkpipe
Applications

Jxta Content Manager Service (CMS)


InstantP2P




Allows sharing and retrieving of content
Peer-to-peer messenger service
Group chat
File sharing
Net Services

standards such as
WSDL,ebXML,SOAP,UPnP,etc
Conclusion


Foundation for peer-to-peer systems
Protocol suite – technology independent of
APIs


Independent of transport protocols


Heterogeneous devices with completely
different software stacks can interoperate
through Jxta protocols
Implementation over TCP/IP, HTTP, Bluetooth,
HomePNA, etc
Jxta promise !!