|By Stephanie Kaul and Mohamed AbdelAziz, April 2006|
On April 25, 2001, Sun Microsystems unveiled Project JXTA, a next-generation network computing project that would enable easy access to peers and resources on the rapidly emerging multidimensional expanded web. Sun also launched jxta.org, an open-source project in which developers could collaborate to evolve Project JXTA and create innovative distributed services and applications. The initial release of Project JXTA was a cross-platform Java technology-based implementation, and Sun initiated a community project to develop a C/C++ implementation.
Five years later, JXTA technology has moved from being only a prototype to being the industry-leading open-source peer-to-peer (P2P) technology for use in large-scale implementations: Boeing's multibillion-dollar Future Combat Systems (FCS) Project; Verizon's Iobi Platform; Genius Bytes' JXTA solution for Ricoh copiers, Office P2P; and the National Association of Convenience Stores, which uses JXTA to connect all its devices -- fuel-level sensors, gasoline dispensers, point-of-sale (POS) terminals, and car-wash controllers. JXTA technology is part of many research and university projects, including the INRIA Juxmem project to build a highly scalable distributed-memory grid-computing platform for the Grid'5000 project.
JXTA now has three platform implementations of the technology: JXTA Java SE, JXTA C/C++/.Net, and JXTA Java ME, which ship on a quarterly release cycle. The jxta.org community is thriving, with over 22,600 members, more than 125 active projects, and over 12 million downloads.
"JXTA is the choice for an open standards-based protocol for distributed and P2P computing," said Juan Carlos Soto, vice president of MAX Software at Sun and an original JXTA team member. "We're very pleased that the vision we've had has not only been validated but embraced by the industry."
Strategic technical advances, solid community involvement, and good old-fashioned hard work have made JXTA what it is today. Daniel Brookshier, a member of the jxta.org board of directors and author of JXTA: Java P2P Programming, noted that "JXTA is revolutionary to network computing, as the first personal computer was for computing. Now anybody can write an Internet-enabled application without spending millions on data centers and bandwidth." Read more in Daniel's blog entry "JXTA at 5 Years Old."
New API abstractions such as the
JxtaBiDiPipe were added to simplify the programming of JXTA's communication abstractions, as well as to reduce the application-porting effort. This includes the subclassing of several of the
java.net.socket classes such as
MulticastSocket, whereas the
JxtaBiDiPipe provides a synchronous as well as an asynchronous message interface.
Several protocol and implementation enhancements contributed to the platform's overall performance and efficiency. These enhancements included the following:
In addition, the Membership Service was developed to manage identities within JXTA. It allows applications to perform their own access control or use the JXTA Access Service. The Access Service is a framework for making decisions regarding identities and operations. Additionally, the Personal Security Environment (PSE) Membership Service, a secure membership service that uses Public Key Infrastructure (PKI) certificates to implement membership service functions, was also implemented in release 2.3.7 of JXTA Java SE. The PSE Membership Service is the default membership service for the network peer group and is one that many other peer groups also use.
New security frameworks in JXTA enable XML messages to add metadata such as credentials, certificates, digests, and public keys to JXTA messages, enabling basic security. Message digests and signatures guarantee messages' data integrity. Messages may also be encrypted and signed for confidentiality and refutability. Credentials can be used to provide message authentication and authorization. It is our intent for the JXTA protocols to be compatible with widely accepted transport-layer security mechanisms for message-based architectures, such as Secure Sockets Layer (SSL) and Internet Protocol Security (IPSec).
JXTA Java ME has added support for full edge functionality under Connected Device Configuration (CDC) 1.1 so that more mobile providers and developers can use JXTA networking for their devices and applications. In JXTA C/C++/.Net, the JXTA community added support for Mono, the open-source, Novell-sponsored .Net implementation, allowing developers to build and run .Net client and server applications across multiple platforms. In addition, JXTA Java ME has enhanced support for rendezvous in
xpath and for DHT.
Over the last five years, JXTA technology has evolved from a research project into the leading P2P platform, changing the way people work and use network computing technology. Through the open-source community, more than 25,000 developers and hundreds of universities and companies are developing and investigating compelling services and applications based on JXTA that demonstrate the benefits of P2P technology. Who knows where the next five years will take JXTA? One thing is for sure, it will always be the platform for innovation and excellence in P2P networking and collaboration.
For more information about JXTA technology, including the latest releases, the programmer's guide, Javadocs, code examples, and information on the JXTA community, go to jxta.org.
JXTA Technology Brings the Internet Back to Its Origin
The Socket API in JXTA 2.0
Stephanie Kaul is the marketing and business development manager for the MAX-Advanced Technologies group at Sun Microsystems.
Mohamed AbdelAziz has been one of the principal senior architects of JXTA technology, peer-to-peer networking, at Sun Microsystems since the project's inception.