Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Client/Server Distributed Systems <ul><li>Objective </li></ul><ul><ul><li>explain JXTA, a support environment for P2P services and applications </li></ul></ul>240-322, Semester 1, 2005-2006 15. JXTA (Juxtapose)
  2. 2. Contents <ul><li>1. Principle Aims </li></ul><ul><li>2. JXTA Main Components </li></ul><ul><li>3. JXTA Concepts </li></ul><ul><li>4. Example Services and Apps. </li></ul><ul><li>5. JXTA Compared to Jini </li></ul><ul><li>6. More Information </li></ul>
  3. 3. 1. Principle Aims <ul><li>JXTA provides core functionality so that developers can build P2P services and applications. </li></ul><ul><li>JXTA can be implemented with any programming language and run on any software and hardware platform/device. </li></ul>continued
  4. 4. <ul><li>It can be implemented on top of TCP/IP, HTTP, Bluetooth, and many other protocols. </li></ul><ul><li>Currently requires a platform that supports the JRE or JDK 1.3.1 or later. </li></ul><ul><li>Available on Windows, Solaris, Linux, and Macintosh. </li></ul>
  5. 5. 2. JXTA Main Components <ul><li>JXTA supports a three layer view of P2P development: </li></ul><ul><ul><li>a core layer </li></ul></ul><ul><ul><li>a middle services layer </li></ul></ul><ul><ul><li>an application layer </li></ul></ul>
  6. 6. Diagram
  7. 7. 2.1. The Core Layer <ul><li>The core layer includes protocols and building blocks to enable key mechanisms for P2P networking </li></ul><ul><ul><li>these include discovery, transport (e.g. firewall handling and limited security), and the creation of peers and peer groups </li></ul></ul><ul><ul><li>the protocols use XML-encoded messages </li></ul></ul>
  8. 8. 2.2. The Services Layer <ul><li>The services layer provides P2P services, tools, and commands </li></ul><ul><ul><li>e.g. searching, sharing and added security </li></ul></ul><ul><ul><li>e.g. the JXTA Shell, the JXTA Search (see below) </li></ul></ul>
  9. 9. 2.3. The Application Layer <ul><li>The application layer supports the implementation of integrated applications </li></ul><ul><ul><li>e.g. file sharing, resource sharing, monetary systems, distributed storage </li></ul></ul><ul><ul><li>reimplementations of programs like Gnutella, Napster, Groove, Instant Messenger </li></ul></ul><ul><ul><li>e.g. InstantP2P (see below) </li></ul></ul>
  10. 10. 3. JXTA Concepts <ul><li>What is a Peer? </li></ul><ul><li>What are Peer Groups? </li></ul><ul><li>JXTA Pipes </li></ul><ul><li>Peer Monitoring </li></ul><ul><li>The Main JXTA Protocols </li></ul>
  11. 11. A JXTA System peer group monitor join leave ask to join or query group dynamic pipes peer group comms.
  12. 12. 3.1. What is a Peer? <ul><li>A peer is any device that runs some/all of the JXTA protocols. </li></ul><ul><li>The peer needs to be connected to some kind of network, such as IP, Bluetooth. </li></ul><ul><li>Peers can be servers, PCs, PDAs, manufacturing and medical equipment, cellular phones, etc. </li></ul>
  13. 13. 3.2. What are Peer Groups? <ul><li>A peer group is a collection of peers that have agreed upon a common set of rules to publish, share and access their data, and communicate between themselves. </li></ul><ul><li>Each peer group can establish its own membership policy </li></ul><ul><ul><li>e.g. from open (anybody can join) to highly secure and protected </li></ul></ul>
  14. 14. 3.3. JXTA pipes <ul><li>JXTA pipes are inter-peer communication channels </li></ul><ul><ul><li>similar to the UNIX idea of piping the output of one command to the input of another </li></ul></ul><ul><li>Pipes are unidirectional and may be dynamically coupled and uncoupled for flexible connection of peers. </li></ul>continued
  15. 15. <ul><li>Piped messages are XML documents and so are platform, language, and protocol independent. </li></ul><ul><li>The contents of messages can be binary code, data strings, Java technology-based objects, and/or applets. </li></ul>
  16. 16. 3.4. Peer Monitoring <ul><li>Peer monitoring is the policeman of the core </li></ul><ul><ul><li>handles authentication/authorization, metering, etc. </li></ul></ul>
  17. 17. 3.5. The Main JXTA Protocols <ul><li>NetPeerGroup Protocol </li></ul><ul><li>Peer/PeerGroup Discovery Protocol </li></ul><ul><li>Peer Information and Management Protocol </li></ul><ul><li>PeerGroup Membership Protocol </li></ul><ul><li>PeerGroup Resolver Protocol </li></ul><ul><ul><li>send and receive generic queries to find or search for peers, peer groups, pipes, and other information. </li></ul></ul><ul><li>PeerGroup Sharing Protocol </li></ul>
  18. 18. 4. Example Services and Apps. <ul><li>Service examples: </li></ul><ul><ul><li>JXTA Shell </li></ul></ul><ul><ul><li>JXTA Search </li></ul></ul><ul><li>Application: </li></ul><ul><ul><li>InstantP2P </li></ul></ul>
  19. 19. 4.1. JXTA Shell <ul><li>Enables users to interact with the JXTA core through a command-line interpreter. </li></ul><ul><li>Useful for: </li></ul><ul><ul><li>accessing and managing core platform objects (peers, groups, pipes) </li></ul></ul><ul><ul><li>setting up pipes </li></ul></ul><ul><ul><li>debugging communications </li></ul></ul><ul><ul><li>checking the status of peers and/or peer groups </li></ul></ul>
  20. 20. 4.2. JXTA Search <ul><li>Searches for content and services on JXTA nodes and the Web. </li></ul><ul><li>Uses a new XML search protocol for describing queries and responses. </li></ul>
  21. 21. 4.3. InstantP2P <ul><li>InstantP2P implements a set of common P2P applications </li></ul><ul><ul><li>includes peer-to-peer messaging (secure and plain text), peer group chat, and file sharing </li></ul></ul><ul><li>It provides a simple graphical user interface to create and join groups. </li></ul><ul><li>The source code is available. </li></ul>
  22. 22. 5. JXTA Compared to Jini <ul><li>Jini connects distributed services within a Java network using an object model and a centralized service location broker. </li></ul><ul><li>JXTA connects distributed services in a P2P-style network, using a loosely-coupled data model. </li></ul>
  23. 23. A Jini System location broker printer database dynamic network of services mobile device 1.enquire 2. report 3. connect
  24. 24. 6. More Information <ul><li>Project JXTA </li></ul><ul><ul><li>http://www.jxta.org </li></ul></ul><ul><ul><li>JXTA software, documents, etc. </li></ul></ul>