Just short two years in existence, JXTA Sun’s peer to peer project has become a enterprise developers dream. XML-based protocols make-up JXTA, creating a wealth of possibilities for developers interested in creating complex P2P systems. (JXTA Protocols Specification)
From ‘JXTA: P2P Grows Up‘
Project JXTA is an open-source, community-based project originally initiated by Bill Joy and Mike Clary at Sun Microsystems. The Project has now grown to over 10,000 members. The JXTA open-source community — which includes key members of Sun’s own JXTA team — has defined a set of XML-based protocols and a JavaTM reference API to provide a generic framework for P2P. Armed with the reference implementation, developers are creating protocols in other languages, too. Software designers now have the tools they need to create innovative P2P business applications with a robust library and infrastructure.
The JXTA Protocols Specification describes a set of XML-based protocols that provide the basic elements for P2P computing, including:
Peer discovery: A P2P solution needs a mechanism to allow a peer to find other peers, in order to access resources and services. Peer discovery protocols must enable peers to not only find peers in the local LAN, but also remote peers across the WAN or Internet, which may even be located behind a firewall or NAT equipment.
Peer groups: Peer groups allow P2P applications to subdivide the network space, allowing peers to organize themselves into groups with common services, purposes, or needs for authentication/privacy.
Discovery: Peers and peer groups can “advertise” to other peers the services they provide to the network. These “advertisements” describe the topology of the network, including peers, peer groups, communication channels, services, and other information. This is an important feature, because it creates a dynamic environment where the network and services available can be discovered and used as they are created.
Services: JXTA includes the notion of a Peer and PeerGroup services. These services describe not only the service being provided, but also where to obtain the specifications and executable code for the service. Because services can be specified by peer group, the developer can create specific implementations or additions to protocols that meet the needs of the application. Services are described via XML so you can also create the same service with different languages, and then verify that they are compatible.
Data transfer: JXTA provides the concept of a pipe, a channel that allows developers to transfer data between peers in an abstract fashion. JXTA provides one-to-one, secure one-to-one, and one-to-many (multicast-styled propagation) pipes for transferring data between peers. Pipes allow peers to communicate regardless of protocols, or even barriers like firewalls (for example, HTTP and TCP may be used to connect two peers via the pipe).
Message routing: JXTA provides an abstract network transport capable of transporting JXTA messages between peers, either directly, or via relay peers capable of both enabling multi-hop routing of messages, and traversing firewall or NAT equipment that isolates peers from the public network. The JXTA delivery layer is capable of working across multiple protocols (not restricted to TCP/IP only), and can survive the dynamic change of network topology that constantly happens in a P2P network.
Rendezvous protocol: JXTA provides the concept of a rendezvous peer, whose responsibility it is to enable peers to propagate messages to each other, as well as reduce network traffic by caching popular information essential to the operation of the P2P network.
Related Posts
- Free JXTA Book
- Hive An Enterprise P2P Platform Based on JXTA
- Microsoft adds P2P tools for Windows
- Sun: P2P is alive and well
- Legitimate music downloading enjoys dream week

