Project JXTA: An Open, Peer-to-Peer Collaboration Platform using Java and XML (1/2) - exploring XML | WebReference

Project JXTA: An Open, Peer-to-Peer Collaboration Platform using Java and XML (1/2) - exploring XML

Project JXTA: An Open, Peer-to-Peer Collaboration Platform using Java and XML

Interest in peer-to-peer (P2P) technology is growing rapidly, as shown by the popularity of services such as Napster and Gnutella. Sun Microsystems started a project called JXTA to examine the potential of a generic P2P platform, which is described here.


Almost overnight, users everywhere have adopted innovative technologies that enable them to use the Internet in more ways than just Web surfing. With distributed computing applications like SETI@home millions of users have contributed their computing resources to work on a common computational analysis. Instant messaging services have enabled users to communicate and collaborate with their peers in real time. And true peer-to-peer (P2P) computing, by applications like Napster, Gnutella, and Freenet, has offered a compelling and intuitive way for Internet users to find and share resources directly with each other, often without requiring a central server or coordinator. As much as these diverse applications have broken new ground, they most often address only a single function, run primarily only on a single platform, and are unable to directly share data with other, similar applications.

Project JXTA vies to help create a common platform that makes it simple and easy to build a wide range of distributed services and applications where every participating device is addressable as a peer, and where peers can forward from one domain to another. The JXTA technologies will enable developers to focus on their own application development while easily creating peer-to-peer distributed computing software.

From client-server to peer-to-peer

In contrast to the InternetÂ’s topology as a flat interconnection of networks, most network applications have been built following the hierarchical client-server model. The World Wide Web made client-server computing commonly available through the acceptance of a universal client, the Web browser, that uses the standard communication protocol HTTP to talk to servers, that can display information described in the standard format of HTML, and that can execute applications written in Java and XML. Anyone with Web-enabled devices ranging from personal computers to cell phones can use this model as long as they connect to a Web server with a known location and name.

Peer-to-peer computing enables applications that are collaborative and communication-focused. High availability comes through the existence of multiple peers in a group, making it likely that at any time there is a peer in the group able to satisfy a user request. This stands in stark contrast to traditional computing models, where high availability comes through complex load-balancing and application fail-over schemes. Peer-to-peer computing leverages available computing performance, storage, and bandwidth found on systems around the globe, and works because people realize that there is value in sharing their power with others in order to reap the benefits when they need it themselves. In many ways, the world of peer-to-peer computing is juxtaposed to the hierarchical client-server model, hence the name Project JXTA.

Case in point: Searching and Sharing

Peer-to-peer computing is generating excitement because it offers an intuitive model for the most fundamental Internet activities: searching and sharing. Although todayÂ’s applications are primarily used for finding, retrieving, and using media files, they hint at what complete access to the Web can deliver in the future:

JXTA technology

JXTA is an open network computing platform designed for peer-to-peer (P2P) computing. The JXTA platform standardizes the manner in which peers:

The JXTA P2P platform enables application developers to build and deploy interoperable services and content.

Most peer-to-peer systems are built for delivering a single type of network service (Napster for music file sharing, Gnutella for generic file sharing, AIM for instant messaging). Given the diverse characteristics of network services, and given the lack of a common underlying infrastructure, each vendor has created incompatible technologies that isolate their users from other P2P communities. JXTA intents is to address this problem by providing a simple and generic P2P platform to host generic network services:

Produced by Michael Claßen

Created: May 09, 2001
Revised: May 09, 2001