tive 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 develop new decentralized applications, have found that the path to build them in Gnutella involves overloading existing constructs or carefully grafting on new ones without breaking the installed base. The alternative -- individually developing a proprietary vertically integrated application from the P2P networking layer up to the application layer -- is unattractive in many cases. This high friction has arguably inhibited development, but JXTA lowers it. JXTA's groups, security, pipes, advertisements and other aspects should be welcomed building blocks.
- In terms of attracting developers, the open nature of the JXTA protocols is an advantage to the JuxtaNet just as the open nature of the Gnutella protocol is an advantage to GnutellaNet. The higher complexity of JXTA relative to Gnutella gives it a steeper learning curve, but Sun's hedge against this is the release of open-source reference code that educates by example.
- Just as with the GnutellaNet, the JuxtaNet is an open network whose applications can be expected to be interoperable at lower levels. This can potentially give developers the "instant user base" phenomenon familiar from the GnutellaNet.
- JXTA's initial design represents an educated guess at the makeup of a robust P2P foundation. Sun's intent to have the project be community-driven gives hope that the foundation will evolve as necessary to meet unpredictable future needs. In its history, GnutellaNet has made the most progress during the periods when independent developers were in close contact with one another and able to collectively drive the network's evolution.
Gnutella on JXTA?
Because of its focus on decentralized P2P file-sharing, decentralized distributed search is the crux of the Gnutella protocol. Such peer-to-peer content searching is not core to JXTA. Instead, this is precisely the sort of functionality well-suited for the service level between the core and applications. By way of example, and in anticipation of early demand for such a service, Sun has released a prototypical Gnutella-