JXTA

clappingknaveSoftware and s/w Development

Dec 14, 2013 (3 years and 7 months ago)

72 views

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

Any peer on the extended Web

Jxta community applications

Sun Jxta

applications

Jxta community services

Sun Jxta
-
indexing

Services


searching

Peer

Shell

---------

Peer

commands

Peer groups

Peer pipes

Peer monioring

Security

JXTA

applications

JXTA

services

JXTA

core

Jxta Layers


Platform
-

Minimal and essential primitives


Peer & peer group discovery


Communication


Monitoring


Security


Services
-

Network / Web services


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 (
Co
de/
Dat
a)


Identifiers


Advertisements

Jxta Protocols

Transport

Peer Membership

Protocol

Peer Endpoint

Protocol

Peer Resolver

Protocol

Peer Discovery

Protocol

Peer Binding

Protocol

Peer Information

Protocol

Peer


PeerGroup

Resolver

Endpoint

Transport

Peer Membership

Protocol

Peer Endpoint

Protocol

Peer Resolver

Protocol

Peer Discovery

Protocol

Peer Binding

Protocol

Peer Information

Protocol

Peer


PeerGroup

Resolver

Endpoint

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


Pipe operators: | and < >

Applications


Jxta Content Manager Service (CMS)


Allows sharing and retrieving of content


InstantP2P


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


Heterogeneous devices with completely
different software stacks can interoperate
through Jxta protocols


Independent of transport protocols


Implementation over TCP/IP, HTTP,
Bluetooth, HomePNA, etc


Jxta promise !!