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