With the unveiling of Project JXTA, not only is Sun introducing new building blocks for P2P development, but it is launching an open and decentralized peer-to-peer network. While JXTA can be used for P2P applications that operate in a closed environment such as an intranet -- and its success may ultimately be measured by its utilitiy in that domain -- a wider public JXTA network, the JuxtaNet, will form. The core JXTA protocols are the foundation for Sun's initial reference implementation, which in turn is the basis for Sun's example applications, including the Shell and InstantP2P. These applications give life to the JuxtaNet as they are run and instantiate peers that intercommunicate.
The JuxtaNet is significant in that it is an open, general-purpose P2P network. JXTA is abstracted into multiple layers -- core, service and application -- with the intention that multiple services will be built on the core, and that the core and services will support multiple applications. In fact, there is no constraint against the simultaneous existence on the JuxtaNet of multiple services or applications designed for a similar purpose. As an example, just as a PC's operating system can simultaneously support multiple word processors, the JuxtaNet can simultaneously support multiple file-sharing systems.
To better understand the JuxtaNet, let's compare it with GnutellaNet, another open and decentralized P2P network. Will the JuxtaNet have the sort of appeal that has attracted developers to GnutellaNet?
|Have you explored JXTA? Tell us your first impressions and let others know what you've learned so far.|
|Post your findings|
The Gnutella protocol was designed for a single purpose: to support decentralized P2P file-sharing. Progressive improvements driven by developer enthusiasm have enabled the resulting GnutellaNet to overcome major obstacles and experience substantial growth. By Clip2 estimates, the 13-month-old network currently encompasses about 25,000 simultaneous peers with approximately a quarter million unique peers active on any given day.
While it is effectively specialized, Gnutella does generalize along a few lines:
- In behavior that is much-discussed, but rarely seen on the present GnutellaNet, Gnutella search queries could be interpreted as something other than portions of names of desired files. A classic example is a query for a ticker symbol being interpreted as a query for the corresponding stock price. In an example stretching even farther afield, Gnutella's query-and-response messages could be put to use as a bid-response mechanism for peer-to-peer auctioning.
- In Gnutella, search and file transfers are cleanly separated, and an established protocol, HTTP, is used for the latter. Standard Web browsers can therefore access Gnutella peers (provided they are not blocked for social-engineering reasons), which are in essence transient Web sites.
- Because it is an open protocol, the end-user interface and functionality are separable from the underlying network. The result is a sizable number of interoperable applications that interact with the common GnutellaNet.
In contrast to Gnutella, JXTA was designed for a multiplicity of purposes. Gnutella is one protocol (or perhaps 1.5 if you include its minimalist use of HTTP), while the JXTA core consists of several protocols. This difference is considerable and hard to overstate. A slightly exaggerated analogy: if Gnutella were a pocket calculator, then JXTA would be a PC.
Having just launched, the JuxtaNet has a relatively small population that will grow as JXTA applications are developed and adopted. Clip2 has begun continuous automated tracking of the JuxtaNet, and we now report current JuxtaNet metrics on our site. Based on the experience of the GnutellaNet, there are several reasons to expect developer enthusiasm for JuxtaNet from similar quarters:
- Versatile core protocols for peer discovery, peer group membership, pipes and peer monitoring form a rich foundation on which a wide variety of higher-level services and applications can be built. Developers, eager to deve