35
Project Jxta Prepared by: Sameh El-Ansary SICS AB

Project Jxta Prepared by: Sameh El-Ansary SICS AB

  • View
    226

  • Download
    1

Embed Size (px)

Citation preview

Project Jxta

Prepared by:

Sameh El-Ansary

SICS AB

What is Jxta?

• Sun’s proposed standard for P2P computing

• Open-source project with contributions from the industry and the academia

• Peer-to-peer computing is juxtaposed to the hierarchical client-server model,

• Pronounced “Juxta”

Jxta Objectives

• Interoperability– Conquer the mess of file-sharing applications

incompatibilities, closed communities and duplication of efforts

• Platform Independence– Language, OS, Transport, Auth., Security, Encryption.

• Ubiquity– Not only PCs but: sensors, consumer electronics,

PDAs, network routers, desktops, storage systems,etc …

Jxta Architecture

Jxta Abstractions

• Peer – Device with a digital heart beat

• Peer Groups - Peers providing a common service

• Pipes – uni-directional, asynchronous, virtual channels

• Network Services- Peer & Peer group services

• Content – files, code, executed processes

• UUID – internal ID for JXTA entities

• Advertisements – publish existence of resources

• Messages – XML envelopes

• Credentials – Tokens for protection & Authentication

JXTA Core Protocols• Membership

– Peer Membership Protocol

• Discovery– Peer Discovery Protocol– Peer Resolver Protocol

• Pipe– Pipe Binding Protocol– Peer Endpoint Protocol

• Monitoring – Peer Information Protocol

Protocols Stack

Jxta Peer• A peer is any networked device that implements

one or more of the JXTA protocols. • Each peer operates independently and

asynchronously from all other peers, and is uniquely identified by a Peer ID.

• Peers publish one or more network interfaces for use with the JXTA protocols, a peer endpoint.

• Peer endpoints are used for direct point-to-point connections .

• Intermediary peers may be used to route messages

Jxta Peer (contd.)• Minimal peer

– Sends and receivec messages, but does not cache advertisements or route messages.

• Simple peer– Sends and receives messages, and will typically cache advertisements.– Replies to discovery requests with info in its cached advertisements, but does not forward any

discovery requests.

• Rendezvous peer– Forwards discovery requests to help other peers discover resources.– Any simple peer can configure itself as a rendezvous peer.– A peer can be configured to use one or more rendezvous peers. – Each rendezvous peer maintains a list of other known rendezvous peers and also the peers that are

using it as a rendezvous.

• Relay peer– A relay peer maintains information about the routes to other peers and routes messages to peers. – A peer first looks in its local cache for route information. If it isn’t found, the peer sends queries to

relay peers asking for route information. – Relay peers also forward messages on the behalf of peers that cannot directly address another peer

(e.g., NAT environments

Jxta Peers (contd.) - Relaying

Jxta Peer Groups

• A collection of peers that have agreed upon a common set of services.• Peers self-organize into peer groups, each identified by a unique peer group

ID.• Each peer group can establish its own membership policy • Peers may belong to more than one peer group simultaneously. • All peers belong to the Net Peer Group. • The JXTA protocols describe how peers may publish, discover, join, and

monitor peer groups; they do not dictate when or why peer groups are created.

• Motivations for creating peer groups:– To create a secure environment– To create a scoping environment– To create a monitoring environment

• A group may contain peers or other groups

Jxta Peer Groups (contd.)

• In order for two peers to interact via a service, they must both be part of the same peer group.

• Core peer group services include:– Discovery Service

– Membership Service

– Access Services

– Pipe Service

– Resolver Service

– Monitoring Service

Jxta Pipes

• Peers use pipes to send messages to one another.• Pipes are an asynchronous and unidirectional message

transfer channels.• They support the transfer of any object, including

binary code, data strings, and Java technology-based objects.

• The pipe endpoints are referred to as the input pipe (the receiving end) and the output pipe (the sending end).

• Pipe endpoints are dynamically bound to peer endpoints at runtime.

Jxta Pipes (Contd.)

• Intermediary peer endpoints could be used to relay messages between the two pipe endpoints.

• Pipes offer two modes of communication, point-to-point and propagate @@

Jxta Network Services

• Peers cooperate and communicate to publish, discover, and invoke network services. Peers can publish multiple services.

• Peers discover network services via the Peer Discovery Protocol.

• Two levels of network services:– Peer Services– Peer Group Services

• Services can be either pre-installed or loaded from the network.

• Invocation of services is out of the scope of Jxta, possibly soap, or some XML-RPC

Jxta IDs• JXTA resources need to be uniquely

identifiable

• JXTA ID types defined: peers, peer group, pipes, service, contents

• URNs are used to express JXTA IDs. URNs are a form of URI that is persistent and location independent

Jxta Ids (Contd.)• An example JXTA peer ID is:

– urn:jxta:uuid-59616261646162614A78746150325033F3BC76FF13C2414CBC0AB663666DA53903

• An example JXTA pipe ID is:– urn:jxta:uuid-59616261646162614E504720503250338E3E786229EA460DADC1A176B69B731504

• Unique IDs are generated randomly by the JXTA J2SE platform binding.

• Reserved JXTA IDs:– the NULL ID – the Net Peer Group ID.

Jxta Content

• Could be text, binaries, loadable code or executable process

• A content may belong to one group

• If replicated within one group, then same ID else different ID, logically another content

Jxta Advertisments

• Language-Neutral meta-data encoded in XML to describe resources such as:– Peers, PeerGroups, Pipes, Services, Content,

Endpoint

Jxta Advertisments (Contd.)<?xml version="1.0"?>

<!DOCTYPE jxta:PipeAdvertisement>

<jxta:PipeAdvertisement xmlns:jxta="http://jxta.org">

<Id>

urn:jxta:uuid-

59616261646162614E504720503250338E3E786229EA460DADC1A176B69B731504

</Id>

<Type>

JxtaUnicast

</Type>

<Name>

TestPipe.end1

</Name>

</jxta:PipeAdvertisement>

Jxta Messages

• XML enveloped

• Binary data included using Base64 enconding

• Every service is responsible for its marshalling format

Jxta Credentials

• Credentials are for Authorization, messages included a specified place for them

• Encryption for Confidentiality

• Digests for data integrity, also a place for them in the messages

• Signatures for Refutability

The Peer Discovery Protocol (PDP)

• Used to discover any published peer resources. represented as advertisements.

• The default discovery protocol for all user defined peer groups and the default net peer group.

• Custom discovery services may choose to leverage the PDP.

• If a peer group does not have its own discovery service, the PDP is used to probe peers for advertisements.

Peer Discovery Protocol (contd.)• There are multiple ways to discover distributed

information:– IP multicast to the local subnet– use of rendezvous peers, networkcrawling.– Invitations

• Other techniques, CANs or Chord, could also be added to perform resource discovery.

• DiscoveryQuery request messages are sent to discover advertisements within a peer group with supplied credentials.

• A peer may receive zero, one, or more responses to a discovery query request.

PDP elaborated (contd.)

• Peers send search and discovery requests to rendezvous peers, which in turn forward requests they cannot answer to other known rendezvous peers. They also forward discovery requests to other peers which are using them as a rendezvous.

• The discovery process continues until one peer has the answer or the request dies.

• Messages have a default time-to-live (TTL) of seven hops.

• Loopbacks are prevented by maintaining the list of peers along the message path.

PDP elaborated

The Peer Resolver Protocol (PRP)

• The mechanism by which a peer can send a query to one or more peers, and receive a response (or multiple responses) to the query.

• The PRP implements a query/response protocol. • The response message is matched to the query via

a unique id included in the message body. When a peer is discovered via PDP, a query can be sent to that peer.

The Peer Information Protocol (PIP)

• The mechanism by a which a peer may obtain status information about other peers, such as state, uptime, traffic load, capabilities, etc.

The Pipe Binding Protocol (PBP)

• The mechanism by which a peer can establish a virtual communication channel or pipe between one or more peers.

• The PBP is used by a peer to bind the two or more ends of the connection (pipe endpoints).

The Peer Endpoint Protocol (PEP)

• The mechanism by which a peer can discover a route (sequence of hops) used to send a message to another peer.

• If a peer A wants to send a message to peer C, and there is no direct route between A and C, then peer A needs to find the intermediary peer(s) to route the message to C.

The Peer Membership Protcol (PMP)

• The technique by which peers can self-organize and group themselves into peer groups

• Used by a peer to join or leave an existing Peergroup discovered via the PDP

Activities in Jxta Core

• Di Distributed Indexing [Note]• Jxme JXTA for J2ME (CLDC / MIDP )• jxta-c C language binding for JXTA core• Jxtaperl A Perl 5 binding.• Jxtapy JXTA Python binding• Jxtaruby Ruby implementation • objc-jxta An objective-c binding • Platform JXTA platform Java 2 SE• Pocketjxta Porting the PocketPC• Security JXTA P2P Security Project [Note]• Tini TINI binding for JXTA platform

Activities in Jxta Services• caservice Peer service that can validate certificate chains • cms JXTA Content Management System • compute-power-market Economics driven P2P Computing Platform and marketplace! • edutella RDF-based Metadata Infrastructure for P2P Applications • gisp Global Information Sharing Protocol [Note]• ipeers Artifical Intelligence in P2P networks [Note]• jxrtl XML language allowing Active Networks to be implemented in JXTA • jxta-rmi RMI API on top of JXTA • jxta-wire Provide a set of tools to allow many to many JXTA pipes • jxta-xml-rpc JXTA transport binding implementation for XML-RPC • jxtaspaces A Distributed Shared Memory Service for JXTA [Note]• jxtavfs JxtaVFS organizes JXTA network resources as virtual file system. [Note]• monitoring Monitoring and Metering • networkservices Integrate Web Services Concepts into JXTA • p2p-email P2P email group discussions using JXTA Peergroup technology • payment Implement anonymous and secure financial transactions • replication Replication/synch engine [Note]• rrs Service for local and remote administration of rendezvous peers • rvmanager RendezVous Manager • search Distributed search service for JXTA and Web content and services [Note]

Activities in Jxta Apps• allhands Event Notification application • brando Brando P2P Java source code sharing tool • configurator A GUI configuration tool for the JXTA platform • dfwbase P2P network with a database at each peer - A knowledge base • gnougat Gnougat: Fully decentralised file caching • halu JXTA media distribution application • instantp2p JXTA Demonstration GUI • jnushare A set of application of GISP (fileshare, messageboard) • juxtaprose a web / discussion content sharing application • jxauction Develop a auction software using jxta • myjxta myJXTA - JXTA Demonstration Application (aka InstantP2P) • parlor App framework for creating collaborative P2P spaces • radiojxta delivering audio content over JXTA networks • rosettachat Localized JXTA Peer Text Messaging • shareddiary Shared Diary for a Small workgroup • shell JXTA Command Line Shell for interactive access • vop2p voice over P2P network

Summary

• Absractions:– Peer, Peer Group, Pipe, ...

• Protocols:– PDP, PRP, PMP, ...

• Many areas are left open: security, search, .... • The target is only to standardize the abstractions

and the set of protocols needed for P2P platforms