70
2-1 JXTA Concepts JXTA Concepts

2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

Embed Size (px)

Citation preview

Page 1: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA ConceptsJXTA Concepts

Page 2: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Learning Objectives

● This module will help you...– Understand P2P principles– Learn about JXTA virtual network core

building blocks– Understand the JXTA software

architecture– Gain familiarity with the JXTA shell

Page 3: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Peer-to-Peer Principles

● Build complex behaviors by juxtaposing elementary ones

● Replicate information towards consumer peers

● Discover and adapt to new information sources

● Increase performance as system ages and more peers participate

● Protect data by replicating information

● Build reliability from interchangeable peers

Page 4: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Peer-to-Peer Security Principles● Individual Privacy

– No centralized servers mean messages cannot be read or forged on a centralized mail server

● No central point of knowledge – Unconstrained content replication means it is

difficult to deny access since nobody knows the exact location of all copies of a content

● Web of trust – Trust based on peer behaviors and other peers'

accumulated trust level on that peer● Localized contamination

– Virus only transmitted to peer's neighbors – when a server is contaminated, all its clients are also contaminated

● Age does matter – Older peers are typically more known than newer

peers – self-protect against new intruders

Page 5: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Protocols Drive Distributed Computing

Peer-to-Peer

Web-based

Client-Server

TCP/IP

HTTP

JXTA

Page 6: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

What is JXTA?

● An open set of XML-based protocols for creating peer-to-peer style network computing applications and services– Protocol based --> language, OS,

network, and service agnostic technology

– A virtual network overlay– Defines mechanisms, not policies– Open Source project: www.jxta.org

Page 7: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Protocols

● JXTA defines XML message formats, or protocols, for communication between peers

● Protocols used to discover peers, advertise and discover resources, communicate and route messages, and provide monitoring

● Asynchronous; based on query/response model

● Can be implemented in any language

Page 8: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Protocol Stack

Peer DiscoveryProtocol

Pipe BindingProtocol

Peer InfoProtocol

Peer Resolver Protocol

Peer Endpoint Protocol

Peer Rendezvous

ProtocolCoreProtocols

(Required)

StandardServicesProtocols

(Optional)

Page 9: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Virtual Network

Firewall

NAT

Virtual Mapping

TCP/IP

PhysicalNetwork

HTTP

JXTA VirtualNetwork

Peer

Peer PeerPeer Peer

Peer PeerPeer

Page 10: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

UNIX as a Model● Provide a simple set of abstractions to

build complex systems● “Virtualized” UNIX over the Internet

In JXTAIn JXTA● Universal IDsUniversal IDs● Everything is Everything is

represented as an represented as an advertisementadvertisement

● Peergroups as resource Peergroups as resource scoping mechanismscoping mechanism

● Pipes as virtual Pipes as virtual communication channelscommunication channels

● Resolver as distributed Resolver as distributed resource locatorresource locator

In UNIXIn UNIX● IDsIDs● Everything is Everything is

represented as a filerepresented as a file● Process as resource Process as resource

scoping mechanismscoping mechanism● Pipes as communication Pipes as communication

channelschannels● Filesystem as resource Filesystem as resource

locatorlocator

Page 11: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Virtual Network

● Uniform peer addressing– Peer Ids

● Dynamically configurable peer domains– Peergroups

● Uniform resource representation– Advertisements

● Universal binding– Resolver = searching for advertisements

● Virtual communication channels– Pipes

● Security and Monitoring

Building Blocks

Page 12: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Software ArchitectureSample ApplicationsSample Applications

JXTA ServicesJXTA Services

JXTAApplications

JXTAServices

JXTACore

Peer GroupsPeer Groups Peer PipesPeer Pipes Peer MonitoringPeer Monitoring

Peer AdvertisementsPeer Advertisements SecuritySecurity

Any Connected Device

Peer IDsPeer IDs

SearchSearch IndexingIndexing DiscoverDiscover MembershipMembership

Instant MessagingInstant Messaging File SharingFile Sharing Resource SharingResource Sharing

Collaborative AppsCollaborative Apps AuctionsAuctions

Page 13: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Shell

Page 14: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

What is the JXTA Shell?

● Interactive environment for the JXTA platform– Modeled after UNIX Shell– Executes within a network

● Basic commands– Discover peers/peergroups, join and

leave peergroups, create pipes, and send messages

● Environment variables– Can bind symbolic names to JXTA

objects

Page 15: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Shell

Page 16: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Starting the JXTA Shell

● Windows– Select Programs -> JXTA -> JXTA Shell

from the Start Menu● Other platforms

demo% cd /files/JXTA_Demo/Shell

demo% sh shell.sh

● JXTA Configuration Tool– Need to enter peer name and

username/password

Page 17: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Getting helpJXTA> man

● Verify rendezvous peer connectionJXTA> rdvstatus

● Access Shell historyJXTA> history0 man1 rdvstatus

–Use up, down arrows to access commands–Use !<number> to access specific command

General Information

Page 18: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Display information about current peerJXTA> whoami<Peer>my Shell</Peer><PeerId>urn:jxta:uuid-59616261646162614A78746150325033EFF0C0B7CD394BD1B9199E340B4A9E7A03</PeerId><TransportAddress>tcp://192.168.1.102:9701/</TransportAddress>...

Current Peer Information

Page 19: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Peers

Page 20: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Peers

● Any networked device that implements one or more JXTA protocols– PC, server, PDA, cell phone, etc.

● Operate independently, asynchronously● Spontaneously discover each other on

the network– Transient relationships– Persistent relationships (peergroups)

Page 21: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Network Uniform Addressing

● A Peer is identified by:– A unique Peer ID (UUID)

– Example Peer ID: urn:jxta:uuid-59616261646162614A78746150325033EFF0 C0B7CD394BD1B9199E340B4A9E7A03

● Unique Peer IDs – Enable peers to be addressed

independently of their physical location (firewalls and NATs) in the network

Page 22: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Anatomy of a JXTA ID

URI

JXTA Namespace

UUID Format

ID Value

– urn:jxta:uuid-5961626161503...F825503

Page 23: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Peer Endpoints

● Network interface(s) published by peer● Example:

– TCP/IP (tcp://129.127.29.65:9700)– HTTP (http://JxtaHttpClientuuid-….)

● Used to establish point-to-point connections between two peers

● Direct connection not required– Intermediary peers can route

messages

Page 24: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Peer Types● Micro peers

● Standard peers

● Super peers– Rendezvous

peer– Relay peer– Proxy peer

Page 25: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Display a list of all peersJXTA> peerspeer0: name = my Shellpeer1: name = JXTA.ORG 237...

● Display peer IDsJXTA> peers -lpeer0: ID = uuid-59616261646162614A78746150325033ED194F913EA14144810D91475606A91203 name = myShell

Peers

Page 26: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Initiate discovery of other peersJXTA> peers -rpeer discovery message sent

● Flush all cached peersJXTA> peers -f

Peer Discovery

Page 27: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Relay Peers

● Special peers used to route messages for other peers within the physical network– Support multi-hops message transfers– JXTA messages contain self-routing information– Relay peers maintain dynamic route information– Cache messages to temporarily unavailable, or

non-reachable peers● Any peer can become a Relay peer● Primarily used for traversing firewalls and

NATs● Enable dynamic route discovery

Page 28: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Relay Peers● Located outside firewalls and NATs● Provide fast network connectivity

Peer Peer

Peer

Peer

Peer

Peer Peer

Peer

PeerID

PeerID

PeerID

PeerID

PeerID

PeerID

Relay Peer

Relay Peer

Firewall NAT

TCP/IP

Physical NetworkHTTP

Page 29: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Message Routing via Relay Peers

Firewall Firewall

Peer PeerPeerSuper Peer

SendMessage

ReceiveMessage

RequestMessage

A B

Page 30: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Message Routing Via Relay PeersMultiple Relay Peers

Firewall Firewall

Peer PeerPeer

Super Peer

SendMessage

ReceiveMessage

RequestMessage

A B

Super Peer

RelayMessage

Page 31: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Rendezvous Peers

● Rendezvous organize themselves into a “semi-consistent” network

● Rendezvous maintain index of edge peers advertisements

● Queries only propagated within Rendezvous tree structure using different walkers (DHT, multicast, sequential walk)

● Each service in a peergroup may use its own Rendezvous tree for scoping purpose

Page 32: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Request Propagation via Rendezvous Network

JXTA Peer(uses R1)

JXTA Peer(uses R1)

JXTA PeerJXTA Rendezvous

JXTA Peer(uses R2)JXTA Peer

JXTA Rendezvous(knows R2 and R3)

Additionalrendezvouspeers andother peers

Additionalrendezvouspeers andother peers

JXTA PeerJXTA Rendezvous

Internet

AA

BB

CCR1R1R2R2

R3R3

Page 33: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Display rendezvous statusJXTA> rdvstatusRendezvous Connection Status:_____________________________

Is Rendezvous : [false]

Rendezvous Connections :

Rendezvous name: ensd_1 Rendezvous name: dI_lab1 Rendezvous name: JXTA.ORG 235

Rendezvous Disconnections :

[None]

Rendezvous Status

Page 34: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Peergroups

Page 35: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Peergroups

Virtual Mapping

PhysicalNetwork

JXTA VirtualNetwork

Peer

Peer PeerPeer

Peer

PeerPeer Peer

Page 36: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Peergroups

● Defined by users without requiring network administrators

● Identified by a unique “PeerGroup ID”● Enable self-organization of peers

(dynamic)● Associate a set of services:

PeerGroup services● Configurable membership policy

Page 37: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Why Peergroups?

● Create secure and protected domains

● Scope peer operations– Discovery, search, communications

● Provide a “group” identity– Group peers sharing a common

interest

● Enable monitoring

Page 38: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA PeerJXTA Peer

JXTA Peer

JXTA PublicJXTA PublicRelay/Rendezvous Relay/Rendezvous

InternetInternet

NetPeerGroupNetPeerGroup

Public PeerGroup

Private Private PeerGroupPeerGroup

Private Private PeerGroupPeerGroup

Peergroup Scoping

JXTA Peer

FirewallFirewall

Page 39: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Private Private PeerGroupPeerGroup

Private Peergroups

JXTA Peer

JXTA PublicJXTA PublicRelay/Rendezvous Relay/Rendezvous

InternetInternet

JXTA Peer

FirewallFirewall

JXTA PeerJXTA Peer

Private Private PeerGroupPeerGroup

NetPeerGroupNetPeerGroup

Page 40: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Public and Private Peergroups

Private Private PeerGroupPeerGroup

JXTA Peer

JXTA PublicJXTA PublicRelay/Rendezvous Relay/Rendezvous

InternetInternet

JXTA Peer

FirewallFirewall

JXTA PeerJXTA Peer

Private Private PeerGroupPeerGroup

NetPeerGroupNetPeerGroup

Private PeerGroupPrivate PeerGroup

JXTA PeerJXTA Peer JXTA PeerJXTA Peer

FirewallFirewall

JXTA PrivateJXTA PrivateRelay/Rendezvous Relay/Rendezvous

PrivatePrivatePeerGroupPeerGroup

Public PeerGroup

Page 41: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Initiate discoveryJXTA> groups -rgroup discovery message sent

● Display peergroupsJXTA> groupsgroup0: mygroupgroup1: some_other_group...

● Create a peergroupJXTA> mygroupadv = mkadv -g mygroupJXTA> mkpgrp -d mygroupadv

Discovering & Creating Peergroups

Page 42: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Joining a new peergroupJXTA> mkpgrp mygroup

JXTA> join mygroup

● Changing peergroup contextJXTA> chpgrp some_other_group

group0: mygroupgroup1: some_other_group...

● Leaving current groupsJXTA> leave

Joining Peergroups

Page 43: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Advertisements

Page 44: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Advertisements

● Every resource in the JXTA network is represented by an advertisement– Peer advertisement– PeerGroup advertisement– Pipe advertisement– Endpoint advertisement– Module advertisement– Content advertisement– PeerInfo advertisement

Page 45: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Advertisements are XML DocumentsPeerGroup Advertisement:

<?xml version="1.0"?><!DOCTYPE jxta:PGA><jxta:PGA>

<GID> urn:jxta: uuid-ABCBCDEABDBBBABEABBBABA0000001234563</GID><MSID> urn:jxta:uuid-DEFDBFEFDEDFBABAFRUDBACE000000010206</MSID><Name> My Group</Name><Desc> This group is to be used for my own testing</Desc>

</jxta:PGA>

Page 46: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Peer Advertisement<?xml version="1.0"?><!DOCTYPE jxta:PA><jxta:PA xmlns:jxta="http://jxta.org">

<PID>urn:jxta:uuid-59616261646162614A78746150325033958A35814213467EBC6C88D3C138B43903

</PID><GID>

urn:jxta:jxta-NetGroup</GID><Name>

bill</Name><Svc>

<Parm><jxta:RA xmlns:jxta="http://jxta.org”>

<jxta:APA xmlns:jxta="http://jxta.org"> <EA> http://192.18.190.196:9700 </EA> <EA> tcp://192.18.190.196:9701 </EA> </jxta:APA> </Dst> </jxta:RA>

</Parm></Svc>

</jxta:PA>

Page 47: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Advertisement Caching

● Peers cache advertisements (not required)● Peers publish and discover advertisements● Each advertisement is published with a

time-to-live:– Relative expiration date – Advertisements are removed from the

system when they have expired– Advertisements can be re-published

Page 48: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Resolver

● All traditional “binding” operations in the JXTA network are implemented as a search for an advertisement

● Examples:– DNS (searching for Peer or PeerGroup

advertisements)– Service Location (searching for Module

advertisements) – Directory Service (searching for Peer

advertisements)– Socket Binding (searching for Pipe advertisements)– File systems (searching for Content

advertisements)

=> No Centralization Required !!

Universal Binding Mechanism

Page 49: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Advertisement Discovery & Searching● Local Neighbor Discovery

– TCP/IP multicast (subnet scope)

● Rendezvous Peers– Peers which have agreed to cache a large number of

advertisements– Every peer may become a rendezvous peer– Discovery requests are forwarded between

rendezvous peers– Each peer group has its own set of rendezvous

● Invitation– JXTA Business card (Peer/PeerGroup Advertisement)

● Distributed Indexes– Shared Resource Distributed Index (SRDI)

Page 50: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Make a peergroup advertisement– JXTA> grpadv = mkadv -g newgroup

JXTA> envgrpadv = PeerGroup Advertisement (class net.jxta.impl.protocol.PeerGroupAdv)...

● Display an advertisementJXTA> cat grpadv

<?xml version="1.0"?><!DOCTYPE jxta:PGA><jxta:PGA xmlns:jxta="http://jxta.org">

<GID>urn:jxta:uuid-20810AEF6C2F4711844DA8C4AE75D32502

</GID>...

Make Advertisements

Page 51: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Make an advertisement available to other peersJXTA> share grpadv

Publish Advertisements

Page 52: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Search for an advertisement– JXTA> search -rJXTA Advertisement search message sent

● Search for a specific advertisementJXTA> search -aName -vChat*

JXTA Advertisement adv0 (Search criteria: Attribute="Name" Value="Chat*")JXTA>cat adv0<?xml version="1.0"?><!DOCTYPE jxta:MCA><jxta:MCA xmlns:jxta="http://jxta.org">

...<Name>

ChatService</Name>

...

Search for Advertisements

Page 53: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Pipes and Messages

Page 54: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Pipes

● Non-localized communication channel between two or more peers– Asynchronous and unreliable– Unique “Pipe ID”– Pipe Advertisement– “Data-Typed” stream (XML schemas)– Input and output pipe endpoint

(channel access point)– Dynamic peer binding

Virtual Communication Channel

Page 55: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Pipe Communication Abstraction Layer Input Input

PipePipe

Input Input PipePipe

ServiceServiceAA

JXTA Virtual Network

PeerGroup

Pipe

PipeEndpoint

Physical Network

Pipe Binding

Peer

HTTP

Peer

Peer

Peer Peer

Peer

NATPeer

Peer

PeerID

PeerID

PeerID

PeerID

PeerIDPeerID PeerID

PeerID

ServiceServiceAA

ServiceServiceCC

OutputOutput PiPipepeOutput Output

PipePipe

Page 56: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Pipe Types● Point-to-Point Pipe

– Connects exactly two peer endpoints together

● Propagate Pipe– Connects one output

pipe to multiple input pipes

Additional pipe types (e.g., secure, Additional pipe types (e.g., secure, streaming, reliable) can be created streaming, reliable) can be created

from the core types.from the core types.

AA BB

AA

BB

CC

DD

Send

Receive

Send

Receive

Receive

Receive

EE

Receive

Input Pipe

Output Pipe

Page 57: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Pipe Communication Model

● Connect services independently of their peer locations

● Dynamic binding (at pipe creation or for every message sent)

● Asynchronous (connect & disconnect mode)● Build highly-available services (transparent

fail-over by reconnecting pipe endpoints)● Pipeline multiple services to form complex

service

Page 58: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Messages

● Object sent between JXTA peers– Message = basic unit of data exchange

● Ordered sequence of named/typed contents called Elements

● Each message contains its own routing information

● XML and binary representations used

Page 59: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Create pipe advertisementJXTA> myPipeAdv = mkadv -p

● Create input and output pipesJXTA> myInPipe = mkpipe -i myPipeAdvJXTA> myOutPipe = mkpipe -o myPipeAdv

Pipe Commands

Page 60: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Create a file (myFile) containing message data – a set of arbitrary XML tags<Data> Hello, JXTA</Data>

● Import into the JXTA ShellJXTA> importfile -f myFile myData

● Create a messageJXTA> myMsg = mkmsgJXTA> put myMsg myTag myData

Message Commands

Page 61: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Shell Commands

● Send a messageJXTA> send myOutPipe myMsg

● Receive a messageJXTA> newMsg = recv myInPiperecv has received a message

● Extract and display the messageJXTA> newData = get newMsg myTagJXTA> cat newData<?xml version=”1.0”?><ShellDoc>

<Item><Data>Hello, JXTA</Data>

</Item></ShellDoc>

Message Commands (continued)

Page 62: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Modules and Services

Page 63: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Services

● Set of functions that a provider offers● Provider peer publishes service

advertisement● Pipes used to communicate with

service● Types of services

– Peer Services– Peer Group Services

(discovery, membership, etc.)

Page 64: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA “Core” Peergroup Services

● Services to support a peergroup– Discovery Service– PeerInfo Service– Pipe Service– Resolver Service– Membership Service– Rendezvous Service– Endpoint Service

Page 65: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Modules

● JXTA Heterogeneous network of peers needs a platform-independent service representation:– Module = platform-independent

representation of a service– Service agnostic (WSDL, SOAP, RMI,

ORB, etc)– Viral effect (joining a group ->

instantiating new services)

Page 66: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Module Advertisements

● Module Class– Advertise the existence of a service

● Module Specification– Advertise how to access a service

(API, messages)● Module Implementation

– Advertise a platform-specific implementation

Page 67: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Security

● Every peer has its own root certificate● Public key certificate part of each

Peer advertisement● TLS Endpoint Transport (point-to-point

secure pipe)● Credential certificate embedded in

every JXTA protocol messages● Private Groups (membership policy)

Page 68: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

Monitoring and Metering

● Provide generic framework to collect peer monitoring and metering information– Collect network traffic information– Service queue statistics– Accounting and billing

● Show peer info statisticsJXTA> peerinfo -l

● Show metering JXTA> monitor

Page 69: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

JXTA Concepts

● JXTA virtual network● JXTA software architecture● JXTA objects

– Peers– Peergroups– Advertisements– Pipes and messages– Services

● Security● Monitoring and metering

Review

Page 70: 2-1 JXTA Concepts. 2-1 Learning Objectives ● This module will help you... – Understand P2P principles – Learn about JXTA virtual network core building

2-1

End – JXTA ConceptsEnd – JXTA Concepts