The great face-off between Peer-To-Peer and Client-Server will never happen. Ultimately they can only blend together to form the experience which, in the near future, will be known as "The Internet".
But there are things to understand about Peer-To-Peer which are not that obvious. And before reading my comparison with Client-Server, you must understand that Peer-To-Peer is not a synonym for Piracy or illegal file-sharing. Of course P2P can be used to share files illegaly, but so does the web with your browser, so does your e-mail, and well let's face it, what really enables illegal file-sharing is the Internet. So this post is more about the very essence of Peer-To-Peer, its technological nature. I will write other posts on P2P usage and the mainstream impact it has and will have on the Internet.
P2P and Client-Server are two distinct paradigms for running online services on the Internet:
- Client-Server means that the user's PC acts as the Client, and connects to a centralized infrastructure, the Server, for every aspect of the service.
- Peer-To-Peer, aka P2P, means that the user's PC is connected to other peers, on an equal foot.
P2P networks generally use more or less centralized entities to control or sustain part of the service. In some systems, peers can choose to step up and become super-peers, and devote more of their resources to the service.
The Internet brought us the interconnection of all the networks which used to be separated, enabling all PCs in the world to connect. Apart from the limitations enforced by firewalls, all these PCs can potentially connect to every Internet server, and they can also connect together with direct Internet links. Thus it is very natural to use P2P on the Internet, even more so than Client-Server.
But for a service provider, using P2P is more complex than using Client-Server. That's because you don't have full control over a centralized system, and you have to face emergent behaviors, that is behaviors which weren't explicitely planned as part of the software design. If you think you're clever enough to predict how your new P2P design will run, then try to factor in the human users, and their eratic ways! Chaos is what you'll get. In the long run you might also get emergent homicidal intelligence, as seen with Skynet in Terminator 2, but that's another story.
These issues, and the fact that always-on connections are paramount for P2P to thrive, explain why the development of P2P is lagging behind Client-Server. P2P is only starting to enter the mainstream, 10 years after the advent of web and e-mail. But it's coming for sure. Developers everywhere are hard at work taming the wild power of P2P, and building user-experiences over it that Client-Server could never sustain. BTW that's a big part of what we are doing with podmailing.com.
Comprehensive definitions of P2P and Client-Server can be found on wikipedia.
Beautiful, but don't forget :
Aristote : « Le progrès ne vaut que s'il est partagé par tous. »
I have free.fr as a provider, in a small town (phobos.apple.com/WebObjec...
and they block the flow on the ports used by p2p apps.
Posted by: Ka | August 18, 2006 at 05:24 AM
Some places get better Internet access than others. Think about South Korea with their 100Mbps fiber access! But eventually, everyone in the developed countries will get that kind of service. So we just have to innovate in software all the while networks and hardwares are progressing - that way we'll achieve the most for everyone.
Look how software innovation will help to get ISPs on board for the P2P revolution :
www.podmailing.com/Blog/i...
Posted by: lchoquel | August 18, 2006 at 07:22 PM