P2P is leveraging the computing, storage, and network resources on the edge of the network. P2P causes us to rethink our assumptions about connectivity, collaboration, and network infrastructure. What started out as simple file sharing has grown to include a wide array of applications and services:
Collaboration is the communication side of P2P, with multichannel collaborative applications, content management, and instant messaging capabilities.
Distributed services blend the features of grid computing and P2P communication to facilitate access to content located on user machines. Distributed services are used with collaborative groupware applications to provide a shared distributed workspace, and as a complement to centralized information portals.
Future Internet platforms and desktop applications will resemble P2P systems such as Jabber and Groove. In addition, corporate infrastructures might be extended to the global network using P2P distributed services. A fascinating view of this environment is already emerging.
This chapter showed a variety of P2P applications and the architectural issues that needed to be resolved to build them. Many of these applications make use of the Java technologies introduced next in Chapter 4, "P2P As a Framework for Distributed Computing."