Introduction to JXTA
Although peer-to-peer (P2P) technology has gained notoriety as a means for illegally distributing copyrighted intellectual property, P2P has more to offer the computing world than easy access to stolen music or video files. P2P is the technology that could unleash the power of millions of interconnected machines at the "edge" of the Internet to serve a new generation of powerful enterprise applications. By using P2P, these applications could provide access to a variety of resources with high availability at a lower cost.
Unfortunately, the excitement of exploring the possibilities of P2P technology has overshadowed the importance of interoperability and software reuse. The current applications of P2P tend to use protocols that are specialized and incompatible in nature, reducing the advantage offered by gathering devices into P2P networks. To evolve P2P into a mature solutions platform, developers need a common language to allow peers to communicate and perform the fundamentals of P2P networking. This common language would allow developers to shift from programming P2P network fundamentals to creating P2P applications on a solid, well-defined base.
Introducing Project JXTA
Recognizing this need for a common P2P language, Sun Microsystems formed Project JXTA (pronounced juxtapose or juxta), a small development team under the guidance of Bill Joy and Mike Clary, to design a solution to serve all P2P applications. At its core, JXTA is simply a set of protocol specifications, which is what makes it so powerful. Anyone who wants to produce a new P2P application is spared the difficulty of properly designing protocols to handle the core functions of P2P communication.
The Project JXTA team designed JXTA in a manner that would address the needs of the widest possible set of P2P applications and provide the core functionality that forms the foundation of all types of P2P applications. JXTA makes no assumptions about the operating system, development language, or network transport employed by a peer. The JXTA Protocols Specification assumes a peer can be any type of device, from the smallest embedded device to the largest supercomputer cluster. The protocol specification even assumes that peers and their resources might appear and disappear spontaneously from the network and that a peer's network location might change spontaneously or be masked by Network Address Translation (NAT) or firewall equipment.