Book Title: JXTA in a Nutshell: a Desktop Quick Reference

Authors: Scott Oaks, Bernard Traversat, Li Gong

Publisher: O'Reilly & Associates

ISBN: 0-596-00236-X

Review by I. Marchenko

Paperback - November 2002, 416 pages

Tim O'Reilly has been talking for quite a while about the revolution in programmable Internet services and a new era in networking computing. This time the publisher brings to us Project JXTA - a collaborative research project for peer-to-peer computing, built on Bill Joy's (Sun Microsystems, Inc) visionary ideas of a simpler, decentralized, XML message-based distributed computing paradigm. The book acknowledges Sun's instrumental role in providing initial specifications and technology for JXTA. The authors also credit the entire JXTA community "for having embraced JXTA with such fervor and enthusiasm." The authors themselves are truly passionate about the subject. You can find their reasoning in the section Why JXTA (p.5-7) that shows how this new platform excels in embracing such advantages of P2P architecture as scalability, robustness, dynamic network, fault resistance, spontaneity, and self-organizing P2P communities.

The book is divided into 2 parts. Part I is a 7-chapter tutorial, that explains how to get started with the JXTA platform. The anatomy of JXTA is explained through a shell demo, which seems to be the standard for JXTA publications. You will find an excellent coverage of the JXTA configurator tool and details on application configuration and cashing. You will also learn how to install multiple peers on your computer and what techniques can be used to discover peers on the network. Peer-to-peer communication is based on the notion of an endpoint abstracted into pipes, a concept familiar to Unix users. Developers writing JXTA applications should be aware that "JXTA pipes introduce a fundamental network programming shift" (p.32). At the application level it means that the access to a unique service should be achieved through the discovery of the closest available service regardless of which specific peer is running this service.

A classic Hello World example in Chapter 3 is a stand-alone application that initializes the JXTA platform and performs basic operations using low-level (advertisements) and high-level (peer groups) constructs. The discussion continues with a more complex application (an auctioning example) that creates and uses a decentralized service and demonstrates how JXTA enhances the standard Java language bindings. The key JXTA concepts of Service Advertisement and Discovery, the Pipe API, JXTA Network Services, and Security are all covered in respective chapters. The material is densely packed within slightly over 100 pages, yet it is very well structured and easy to understand. A tutorial in style, it is a JXTA-pedia in essence.

Part II is "the quick reference section that ... packs a lot of information into a small space." The core JXTA packages, JXTA protocol specifications, and reference implementation of some interfaces are documented here together with the listing of the JXTA shell commands. A reader with general knowledge of the JXTA APIs will have no trouble navigating through Chapters 9-11. The clever dictionary style graphical layout facilitates the use of this section. Technical description follows conceptual overview. The authors made an excellent case for Project JXTA providing a great number of ready-to-run examples and showing how this platform-independent protocol, though minimalist in its conceptual apparatus, offers almost unlimited possibilities at the programming level.

I invite the whole developer community to read this book. Server-client developers will have a chance to see how to use network in a different way. Programmers working with languages other than Java may want to build language-specific applications using JXTA's language-independent protocols (given the existing JXTA reference implementation, they might even feel like converting to Java, and I hope they will). I would like to extend the invitation to read the book and to explore and use JXTA for enterprise applications to business intelligence and systems architects. My fellow men and women in academia must stay on top of things, hence - the latest title on JXTA, period.

To make my case more convincing I'll bring JXTA in perspective: Started by Sun Microsystems, Inc, in April 2001 as a prototype, next-generation networking research project, JXTA, in less than a year, became a leading peer-to-peer platform. In 2002, JXTA technology was awarded the "Most Innovative Java Product or Technology Award" from JavaWorld Magazine and the "Outstanding Group Contribution to Java Technology" from JavaPro Magazine. Boies, Schiller & Flexner, LLP; Ericsson Microwave AB; Hughes Network Systems; NASA Jet Propulsion Laboratory; National Association of Realtors; Research In Motion; Siemens Corporate Technology; Sony Corporation of America are already evaluating/using JXTA. In my view, an endorsement by O'Reilly means if not a complete change in modality then a step further in transformation of JXTA from experimental stage to developers' reality. An accolade? The proof of the pudding is in the eating. Please, try it yourself. O'Reilly authors once again delivered a superb product that will definitely get you up to speed with JXTA in a short time.