Although peer-to-peer (P2P) has generated much excitement - and hype - its progress after the initial implementations has been disappointing. It is not hard to see why. Currently, the P2P world consists of many different and completely incompatible services - there is no interoperability between Gnutella and instant messaging, for example.
In this respect, they are rather like the proprietary online services CompuServe, Prodigy, AOL and MSN in the early, pre-Web days. To access them all, a user needed several distinct clients. Now all such services (where they still exist) can be accessed using a standard Web browser.
What is needed is the infrastructural equivalent of the World-Wide Web for the P2P domain.
Sun's Jxta (www.jxta.org/) hopes to provide just that, allowing familiar and new P2P services to built on top of if. Jxta (pronounced "juxta", short for "juxtaposition") was announced by Bill Joy at the O'Reilly P2P conference in February (www.java.sun.com/ features/2001/02/peer.html?
frontpage-banner). He noted how Jxta followed in the tradition of Java and Jini. And it is easy to see the attraction of the P2P platform for Sun, not least as an arena where Java might truly flourish.
In a sense, Jxta takes the Java idea one stage further: it is not only independent of hardware platform, but also of the protocol used for communicating between nodes, and the programming language used to create the P2P applications.
Background to the whole Jxta project can be found at www.jxta. org/project/www/background.html, with news (www.jxta.org/project/ www/news.html) a good FAQ (www.jxta.org/project/www/docs/DomainFAQ.html) and documentation (www.jxta.org/ project/www/white_papers.html).
The documentation includes an introduction to Sun's vision (http://a1376.g.akamai.net/f/1376/3565/1d/akamai.collab.net/jxta/JXTA-Vision.pdf); a general background to the project (http:// a1376.g.akamai.net/f/1376/3565/1d/akamai.collab.net/jxta/
JXTA-Getting-Started.pdf), which offers a good guide to the Jxta shell, a command line for controlling and interacting with Jxta. There is also a more detailed document on the Jxta shell (http://a1376.g.akamai.net/f/1376/3565/1d/akamai.collab.net/jxta/JXTA-Shell-Overview.pdf) and a very good technical overview (http://a1376.g.akamai.net/f/1376/3565/1d/akamai.collab.net/jxta/JXTA-Shell-Overview.pdf), which is probably the best place for finding out how Jxta works.
As well as the Jxta shell, there is also something called Instant P2P, a prototype demo (http://instantp2p. jxta.org/servlets/ProjectHome). Other projects can be found at www. jxta.org/servlets/DomainProjects, though the list is rather limited at the moment.
In many ways the most interesting aspect of Jxta lies not in its technology, but in the fact that it is truly open source. In fact, Sun is employing the same basic licence used by the Apache server group (www.apache.org/LICENSE.txt). The Jxta source code can be downloaded from http://download. jxta.org/demo/index.html.
In other words, after stubbornly refusing for years to contemplate open sourcing Java, Sun has finally recognised the value of such an approach.
Perhaps this was inevitable in this instance because the power of open source development is very similar to that of the P2P approach itself. Nonetheless, Sun's move is highly significant, and may presage further activity in this area. After all, other Microsoft competitors such as IBM and Hewlett-Packard can see the tactical advantage in backing open source, and there is no reason why Sun should not join the club.
Jxta is also of note because it could offer a fascinating test of the open source development methodology. Since Jxta is consciously modelled on Unix, what with its pipes, shells, etc, in a way it offers an equivalent starting-point to that which allowed GNU/Linux to come into being. It will be interesting to see whether the open source development methodology can rise to the challenge as successfully.
This was first published in May 2001