1 / 35

Project Jxta

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 ”.

odette
Download Presentation

Project Jxta

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Project Jxta Prepared by: Sameh El-Ansary SICS AB

  2. 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”

  3. 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 …

  4. Jxta Architecture

  5. 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

  6. 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

  7. Protocols Stack

  8. Jxta Peer • A peer is any networked device that implements one or more of the JXTA protocols. • Each peer operates independently and asynchronouslyfrom 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 peersmay be used to route messages

  9. 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 infoin its cached advertisements, but does notforward any discovery requests. • Rendezvous peer • Forwards discovery requests to help other peers discover resources. • Any simplepeer can configure itself as a rendezvous peer. • A peer can be configured to use one or morerendezvous peers. • Each rendezvous peer maintains a list of other known rendezvous peers and also thepeers 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. • Apeer first looks in its local cache for route information. If it isn’t found, the peer sends queries to relaypeers asking for route information. • Relay peers also forward messages on the behalf of peers thatcannot directly address another peer (e.g., NAT environments

  10. Jxta Peers (contd.) - Relaying

  11. Jxta Peer Groups • A collection of peers that have agreed upon a common set of services. • Peers self-organize into peergroups, 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 dictatewhen 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

  12. 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

  13. 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). • Pipeendpoints are dynamically bound to peer endpoints at runtime.

  14. 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 @@

  15. 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

  16. 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 locationindependent

  17. 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.

  18. 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

  19. Jxta Advertisments • Language-Neutral meta-data encoded in XML to describe resources such as: • Peers, PeerGroups, Pipes, Services, Content, Endpoint

  20. 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>

  21. Jxta Messages • XML enveloped • Binary data included using Base64 enconding • Every service is responsible for its marshalling format

  22. 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

  23. The Peer Discovery Protocol (PDP) • Used to discover any published peer resources. represented asadvertisements. • The default discovery protocol for all userdefined peer groups and the default net peer group. • Custom discovery services may choose to leverage the PDP. • If apeer group does not have its own discovery service, the PDP is used to probe peers for advertisements.

  24. 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.

  25. PDP elaborated (contd.) • Peers send search and discovery requests to rendezvous peers, which in turn forward requests theycannot 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 answeror the request dies. • Messages have a default time-to-live (TTL) of seven hops. • Loopbacks areprevented by maintaining the list of peers along the message path.

  26. PDP elaborated

  27. 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.

  28. 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.

  29. 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).

  30. 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.

  31. 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

  32. 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

  33. 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] • jxtavfsJxtaVFS 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]

  34. 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

  35. 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

More Related