Last Updated: June 10, 2001
The term "P2P" or "peer-to-peer" actually refers to one of several concepts, depending on the context:
A type of decentralized computer network
A breed of software applications
A paradigm shift in the natural evolution of the Web from a unidirectional, television-like medium into a bi-directional, collaborative conversational system.
In a conversational communication model, knowledge flows in both directions, providing a shared context through the relationships between the parties and the subjects discussed.
The three characteristics of a conversation are: that it happens spontaneously, that it is transient (lasts a short time) and that it occurs among a group of (or between two) equal "peers".
For a more detailed answer to this question, see my Introduction to P2P.
"P2P Software" is a term that applies to a wide range of technologies that greatly increase the utilization of information, bandwidth and computer resources.
A "distributed network" (as opposed to a traditional "centralized network") is made up of numerous computers (peers) that all function as a collective whole in addition to being able to function independently.
The rationale is that distributed systems tend to be much more resilient and versatile than centralized approaches due to the fact that there's no single location "bottle necking" the information flow of the network. Instead, the network is made up of nodes, and any two nodes are able to function independently from any other part of the network.
Web services refer to componentized applications that can run on the client, or server or a little of both. They are often dispatched from a centralized location, like an ASP provider. (More on this later...)
Web Services and P2P technologies are not the same thing, but they are related. P2P applications may operate as web services. That's all. They also might not.
It just so happens that if you take the time to create an effective web services architecture, you've also got yourself a nifty P2P networking system pretty much ready to go. (That's the "exciting" part of the association :-)
Many P2P-aware applications are being written in Java, and I believe the innovations in the language, such as its new security model, make Java the obvious choice as a development platform.
Last Updated: June 10, 2001