240 likes | 354 Views
Client/Server Distributed Systems. 240-322, Semester 1, 2005-2006. Objective explain JXTA, a support environment for P2P services and applications. 15. JXTA (Juxtapose). Contents. 1. Principle Aims 2. JXTA Main Components 3. JXTA Concepts 4. Example Services and Apps.
E N D
Client/Server Distributed Systems 240-322, Semester 1, 2005-2006 • Objective • explain JXTA, a support environment for P2P services and applications 15. JXTA (Juxtapose)
Contents 1. Principle Aims 2. JXTA Main Components 3. JXTA Concepts 4. Example Services and Apps. 5. JXTA Compared to Jini 6. More Information
1. Principle Aims • JXTA provides core functionality so that developers can build P2Pservices and applications. • JXTA can be implemented with any programming language and run on any softwareand hardware platform/device. continued
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.
2. JXTA Main Components • JXTA supports a three layer view of P2P development: • a core layer • a middle services layer • an application layer
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
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)
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, InstantMessenger • e.g. InstantP2P (see below)
3. JXTA Concepts • What is a Peer? • What are Peer Groups? • JXTA Pipes • Peer Monitoring • The Main JXTA Protocols
A JXTA System peer group comms. ask to join or query group monitor dynamic pipes join leave peer group
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.
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
3.3. JXTA pipes • JXTA pipes are inter-peer communication channels • similar to the UNIX idea of piping the output of onecommand to the input of another • Pipes are unidirectional and maybe dynamically coupled and uncoupled for flexible connection ofpeers. continued
Piped messages are XML documents and so are platform, language, and protocolindependent. • The contents of messages can be binary code, data strings, Java technology-based objects, and/or applets.
3.4. Peer Monitoring • Peer monitoring is the policeman of the core • handles authentication/authorization, metering, etc.
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
4. Example Services and Apps. • Service examples: • JXTA Shell • JXTA Search • Application: • InstantP2P
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
4.2. JXTA Search • Searches for content and services on JXTA nodes and the Web. • Uses a new XML search protocol for describingqueries and responses.
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.
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.
A Jini System location broker 1.enquire 2. report mobile device database 3. connect dynamic network of services printer
6. More Information • Project JXTA • http://www.jxta.org • JXTA software, documents, etc.