Emerging Technology Briefs: JXTA

March 12, 2002

Rael Dornfest

Emerging Technology Briefs, developed by O'Reilly Research, offer a single-page summary of recent developments in a technology topic we have been following. O'Reilly Research also publishes full-length industry reports, including the 2001 P2P Networking Overview and the upcoming Web Services Report.

WHAT JXTA (pronounced "juxta") began in the summer of 2000 as a Sun Microsystems research project led by chief scientist Bill Joy. JXTA is an attempt to codify just what a core, commonly distributed computing framework might look like. JXTA describes a network stack of five layers:
  • Device, the bottom-most layer, means anything with an electronic pulse -- desktop PCs, laptops, palm-tops, set-tops, game consoles, cellular telephones, pagers, embedded controllers, et al.
  • Next step up is the Network-Enabled Operating Environment (aka the Java Virtual Machine), your basic TCP/IP networking and a reasonable helping of resources to actively participate in the network.
  • The Platform layer describes a set of functions that allows peers to identify each other (peering, peer groups), know when a particular peer is available (presence), figure out what resources (discovery) they have to offer, and communicate.
  • Services provide the basic building blocks of applications: storage, resource aggregation, security, indexing, search, and the like.
  • And the user-facing Application layer houses the Napsters, Grooves, AIMs, and SETI@homes.

Much of what’s in JXTA corresponds with the top three layers, leaving the Java VM to handle basic device and network needs. It describes a suite of six protocols governing discovery, organization, monitoring, and intra-peer communication. A common XML-based messaging layer binds the protocols to the appropriate underlying network transports.

JXTA is fundamentally a specification, not software. The concept and specs should be separated from and not confused with its reference implementation, a set of Java class libraries. Aside from the core JXTA components, the project does provide some rudimentary demo-quality applications, including the JXTA Shell, a ground-floor view of the JXTA environment a la Unix command-line interface; a demonstration file-sharing/chat GUI interface; bare-bones distributed CMS (content management system); and a few more., the project's community portal, plays host to a combination of internally-instigated and community-contributed JXTA-based projects.
WHO While positioned as a community project, Sun is the only major player in the JXTA world. And although the JXTA launch was followed by a flood of interest -- due in no small part to the mega-hype of anything P2P in 2000 -- and still maintains a steady flow of conversation and contributions, the actual churn rate in community participation is high.
WHY The underpinnings of today’s P2P applications are a soup of technologies, protocols, interfaces, and de facto standards. What’s missing is a standard set of interfaces on top of which developers can build P2P applications without having to re-create the plumbing from scratch each time. Such a standard would enable a new computing fabric, one that draws on components, services, and other resources from the edges of a network to build "network applications." JXTA is Sun's entrance, alongside Microsoft's .NET, Groove Networks' Groove, and plethora of all-but-defunct smaller players.

JXTA is a pure infrastructure play with hopes of reasserting Sun’s position as the network company. While touting its language and platform independence, Sun is, of course, betting on Java as the best way to get cross-platform, cross-device applications.
HOW JXTA'a strategy is one of complete openness and standards conformance, from design to XML-based protocols to open-source implementation. JXTA is lightweight and minimalist, providing only what's vital across P2P applications. It leaves everything below (operating environment, TCP/IP network-awareness, and hardware) and above (application specifics) to the device/environment and application at hand.

Unique and compelling is JXTA’s explicit adoption of the Unix concept of pipes -- its Peer Pipes are inter-peer communication channels similar to the command-line concept of piping the output of one command as input to another. These pipes are unidirectional and may be dynamically coupled and uncoupled for flexible affiliation of peers. Piped messages, akin to ASCII strings in the Unix command-line world, are XML documents and thus are platform, language, and protocol independent. One can just as easily push a SOAP or XML-RPC request through a pipe as "Hello, World!" This opens the door to powerful Web services applications.
WHEN While P2P's hype level is way down from its 2000 high, the importance of P2P as a mind set should not be underestimated. P2P brought up much we'd not considered before as well as reminded us of some of the founding principles of the Internet that we seemed to have forgotten. JXTA continues to attract researchers and developers and serves its purpose as a research space and sounding board for ongoing discussions of P2P theory and best practice.

JXTA Community Meetings will be held at JavaOne (March 25-29, 2002) and the O'Reilly Emerging Technology Conference (May 13-16, 2002).
OPINION All told, JXTA provides some remarkable vision and a bare bones yet well-thought-out framework. Its Sun developers and community regulars are a smart, enthusiastic, and hard-working crowd. Yet two years since its inception, still much of what we’re seeing coming out of the JXTA project has been at the level of experimentation rather than any real applications. To be fair, JXTA has, from the start, been designated a research project -- occasional media-clip prognostications notwithstanding. And research, in our opinion, is what JXTA is and shall remain for the foreseeable future.

Note: This particular issue of O'Reilly Research Emerging Technology Briefs draws much from the 2001 P2P Networking Overview: The Emergent P2P Platform of Presence, Identity, and Edge Resources, Section Six: P2P as Infrastructure, by Rael Dornfest.