Welcome to the JXTA Platform Project !
News: June 20, 2001 - JXTA Protocols Specification Project Announced!
JXTA: It's All about Protocols JXTA Tutorial (Under Construction)
|
Project
JXTA Connection Scenarios Graphics Project
JXTA: Discovery Animation Project
JXTA: Setting the P2P Tone |
The Platform project hosts the different platform binding implementations of the JXTA protocols. Currently two platform bindings are under development (Java and C/C++). We expect new bindings to be developped for Python, Perl, etc. We encourage community members to start a new project or participate to an existing project by becoming a developer or contributor. To become a project owner or a project contributor see (JXTA Project Governance rules).
The JXTA platform is an open network computing platform designed for peer-to-peer (P2P) computing. The JXTA platform standardizes the manner in which peers:
Discover other peers
Advertise Peer resources (Peer, PeerGroup, Service and Pipe Advertsiements)
Communicate with each others (asynchronous Pipes)
Cooperate with each other to form secure peer groups (group membership)
JXTA: It's All about Protocols
The JXTA platform is defined by the following six protocols. A peer does not need to implement all protocols, just the protocols that it needs.
Peer Discovery Protocol (PDP). PDP allows a peer to discover other peer advertisements (peer, group, service & pipe).
Peer Resolver Protocol (PRP). PRP allows a peer to send a search query to another peer.
Peer Information Protocol (PIP). PIP allows a peer to learn about the status of another peer.
Peer Membership Protocol (PMP). PMP allows a peer to join or leave a peer group.
Pipe Binding Protocol (PBP). PBP allows a peer to bind a pipe endpoint to a physical peer.
Peer Endpoint Protocol (PEP). PEP allows a peer to ask for routing information to route messages to another peer.
Each protocol is easy to implement and integrate into P2P services and applications. Thus service offerings from one vendor can be used transparently by the user community of another vendor's system.
JXTA is defined to be independent of programming languages, so that it can be implemented in C/C++, Java, Perl, and numerous other languages. The protocol is specified as a set of XML messages.This means heterogeneous devices with completely different software stacks can interoperate with the JXTA protocols.
JXTA is designed to be independent of transport protocols. It can be implemented on top of TCP/IP, HTTP, Bluetooth, HomePNA, and many other protocols. This means that a system built on top of JXTA, functions in the same fashion when the system is expanded to a new networking environment or to a new class of devices, as long as there is a correct transport protocol handler for the new networking protocol. The protocols defined in this document can be realized over the Internet, a corporate intranet, a dynamic proximity network, in a home networking environment, or even within a single computer.
The JXTA platform enables application developers to build and deploy interoperable P2P services and and applications across the Internet. The JXTA protocols guarantee interoperability between compliant software components (executing on potentially heterogeneous peer runtimes). Thus JXTA is agnostic to programming languages.
The term compliant refers to a single protocol only. That is some peers may not implement all the JXTA protocols. Furthermore, some peers may only implement a portion (client-side or server-side only) of a protocol.
The size and complexity of the network peers supporting these protocols can range from a simple light switch to a complex, highly-available server.
The JXTA Protocols are specified by the JXTA Protocols Specification Project. Currently the primary reference document is the JXTA Protocols Specification 1.0 This document does not yet fully formalize all of the protocols and is under construction. The JXTA Protocols Specification Project is charged with producing a formal and complete specification for the JXTA protocols. People interested in contributing to the effort should volunter by sending a message to the discuss@jxta.org mailing list.
When the JXTA protocols are implemented using a particular programming language or a particular transport protocol, the implementation is an instance of a JXTA Binding. In order to guarantee interoperability it is essential that each transport or programming language implementation be compatible with other implementations. Each Binding project provides a specification that allows compatible implementations to be created. For programming language bindings this is the API. For transport bindings, this is a protocol specification. See the JXTA Protocols Spec Project for information about the transport bindings.