JXTA is a new technology that enables us to build peer-to-peer systems - systems which enable computers to discover one another and co-operate together across the Internet. This kind of interaction characterizes some of the most interesting networked applications that have appeared in the last year: Napster, Gnutella, Morpheus, and their relatives. In these systems, a user installs a client program, which discovers installed clients on other machines, and communicates with them - allowing the sharing of files between computers. This peer-to-peer architecture is a completely new paradigm in software design, representing a totally different approach to the standard client-server frameworks used in almost all the distributed systems that currently exist. JXTA aims to provide a set of technologies that allow programmers to develop clients and services that can interact in this way, without having to implement all of the elements that make up such a system themselves. Aspects such as discovery of peers, advertising presence, penetrating firewalls, and transferring data, which are common to all peer-to-peer applications, are handled by a set of standard libraries that are available to a JXTA application. Who is this book for? Early Adopter JXTA teaches the experienced developer all they need to know to be able to play confidently with JXTA. It will show how to use JXTA as the foundation for developing a peer-to-peer application, and in the process explain how to think and design in a peer-to-peer way, and hopefully inspire you to come up with the ideas for the next generation of peer-to-peer applications. The code in this book makes use of the JXTA reference implementation, and is written in Java, although the principles discussed will be just as relevant to other implementations in other languages. What does this book cover? The nature of peer-to-peer; The architecture of JXTA; Using the JXTA Shell; Developing JXTA applications; Designing JXTA services; The future of JXTA.