PEER TO PEER COMPUTING

Arvind S Krishna 90086152

Information and Computer Science Department

University of California, Irvine CA

arvindk@ics.uci.edu

Introduction

The Internet has had a direct influence on millions of people by creating a global village and acting as an information super highway. There have been several "killer applications" of the Internet the first being email that provided asynchronous and instantaneous communication between individuals anywhere in the world. You could send not only text-based messages but also gifs, and several media types as attachments. The World Wide Web has entrenched the whole world in its spell and has change the way business and people communicate with each other. The popularity was essentially due to the fact that the user just needed a browser (client) to communicate with the server. Moreover the browser could be run on any OS. The web also guaranteed a uniform type for information exchange (HTTP). The other reason for its popularity includes the fact that content on the web is "On Demand" and not broadcast like normal Television/radio. The client requests from the server the information that it wants than the server sending out a standard message for all. Thus one user could be listening to pop songs while another may be downloading a research article all from the same server simultaneously.

The web is not without its disadvantages. The very fact that http is a pull protocol prevents it from sending information to clients. Consider a case where clients subscribe to listing of Microsoft stocks on the net. Now if the stock price were to dramatically fall, it would not be possible for the server to notify the client that the stocks have changed, the client needs to constantly poll the server for updates. This problem occurs as the two entities Client and Server are not the same or not peers. Enter the world of Peer to Peer computing (p2p). In p2p all the entities are peers or equals. This enables a bi-directional communication between the peers. Napster serves as archetype peer to peer application. Who would have heard about Napster and the legal issues associated with it? The chat services that are provided by some of ISPs like AIM, Yahoo Messenger, MSN Messenger, and ICQ may also be categorized as p2p applications

What is peer to peer?

So what is a text book definition of p2p?

"A peer-to-peer network allows two or more computers to share their resources. Individual resources such as hard drives, CD-ROM drives, and printers can be shared. Resources are accessible from every computer. Because peer to peer computers have their own hard drives that are accessible by all computers, each computer acts as both a client and a server." [@ Home communications]

"A type of network in which each workstation has equivalent capabilities and responsibilities. This differs from client/server architectures, in which some computers are dedicated to serving the others. Peer-to-peer networks are generally simpler, but they usually do not offer the same performance under heavy loads". [@webpedia.com]

"Taken literally, servers talking to one another are peer-to-peer. The game Doom is peer-to-peer". [Clay Shirky]

The three definitions of peer to peer are arranged in an increasing order of informality. The last definition is a succinct quintessence of Peer to Peer Computing, "Servers talking to One Another". Some of the other features of p2p include sharing of resources, accessibility of the resources from all computers etc.

The world of web servers

Imagine a land were there are no clients and only servers. Now each entity is capable of requesting and also hosting web pages or any form of content. This enables the entities to communicate with each other in a one to one and also in many to one fashion. There is no centralized server hosting all the content and clients requesting the web pages, eliminating the necessity for finding a hosting service for web pages. An individual’s desktop could serve, as is his/ her own server. Is this all rhetoric and utopian? No. It is as simple as a mouse click!

The APACHE web server is a free ware that when installed in your laptop/desktop and what not, exalts one’s machine as a web server. Even my desktop is a web server http://rudra.ics.uci.edu/. Programs like Napster, ICQ also run servers that are packaged within the software. What is the upshot of this earth shattering revelation? Well the simple observation is that I need not have to carry my files in diskettes around now that my machine is a server. The other important implication is that this enables what is now the "publish and subscribe system"[Ref1]. This system is being pursued as a research topic in the ICS Dept at UC Irvine. Let’s revert to the stock example. In this case the interested party (client) is also server, the stock server can now inform the client (here a server) that the stock price of Microsoft has changed, thus eliminating the need for constant polling. The interested party subscribes for events (events here include the change of stock price). Several parties may also subscribe to an event. The events are then delivered to the interested parties in a many to many fashion. The hallmark of the system being that the clients no longer have to poll the server for information, they could just register for the interested events that would be sent to them automatically.

Peer to peer issues

There are lots of hazy issues that are associated with peer to peer applications.

One of the important consideration for a peer to peer application is that how centralized is it. To demystify the statement lets consider an example. Consider the case of a chat program. The initial step requires you to log on to a server, during this process a notification is sent to your buddies that you are online currently. You are then provided a list of buddies who are online. Messages between the buddies are sent directly using their address(p2p). Similarly in Napster, there is a centralized repository of songs. This repository is searched and list of users having the song is sent to the client. The clients then download the songs from their peers directly. In both the cases after an initial phase (logon in the former and searching in case of latter) the applications start communication with each other in a peer to peer mode. Thus the applications are not truly decentralized. In a chat scenario, events such as logging in of buddies and searches for new songs in Napster all happen through centralized servers. Consider other applications like Gnutella, FreeNet that do not have a centralized server. Resource finding is truly distributed in nature. So is Napster not decentralized enough? Many of these issues are not clearly defined. Another issue in case of an application that has no centralization is during boot time how do I know who are my peers?

The other important consideration is the kind of protocols that are being used for the purpose of communication between the peers. Currently the protocols used are proprietary in nature and are not standardized. Napster uses its own protocol; AIM and yahoo chats have their own protocols. The ramification of this is that AIM and Yahoo chats are not compatible or users having different chat programs cannot chat with each other. Recently AOL acquired ICQ, so would it be possible for ICQ and AOL users to now chat in one single platform? This brings us to the need for a protocol that would enable chatting across namespaces (across servers).

This chat protocol should be a RFCs (open standard), as it needs to be implemented by each of the vendors. Can these standards be applied across p2p applications? As in the chat example the protocols in p2p applications tend to be domain specific, hence standardization may not be possible. Also it would be very tough for companies to open up their protocols and loose the competitive advantage gained.

Security in a p2p network could be a nemesis for the network administrator. The status quo of the Internet is that there are centralized servers hosting contents. These are heavily monitored, and also protected by software. Now eliminate this centralization and consider each desktop in every LAN as a web server hosting content. This increases the problem of administration and policing exponentially and going by the adage that the strongest part of a chain is its weakest link could lead lot of security loopholes.

The concept of peer to peer computing was pioneered by industrialists through applications like Napster that awakened the research community. In academia there are hardly any conferences that debate on the nitty-gritty details of peer to peer computing. There is lot of work on a similar field of distributed object computing but there is hardly any in the case of peer to peer. O'Riely conference for p2p also has a very strong industrial influence. Why is this so important? If standards need to be exists in this field then there is a necessity for the two to work together. One of the reasons for low research in this area is that the field is application driven and most of the applications are domain specific.

Network is the computer

Some years back Sun Micro Systems came up with this concept of "network is the computer"TM. In a nutshell, the PC is just an interface that the user sees and all the computing takes place behind the scenes using huge servers (running Solaris?). SUN also envisioned a web tone for a computer just as a dial tone for a telephone.

What does all this hold for peer to peer computing? In short the computers in the network as a whole are more powerful than a single computer. Lets assume that I am executing a task in my PC and my friend’s PC is idle and if there was a mechanism by which I could use his CPU time then my application could execute faster. If there were standard protocols for interaction between the computers then there could be an exponential growth in the computing power of the network as a whole. Thus if all the computers were peers and could communicate with each other then the whole network could unite to form a much more redoubtable computing machinery. Many projects have borrowed on this vision and are detailed below.

Industrial Scenario:

The SETI@home is a project that was developed in UC Berkeley to find extraterrestrial life forms in outer space. Users signup for the project and run software that utilizes the idle CPU time of their machines and communicates with a server. The other project that is akin to this is that of United Devices from Intel [www.ud.com]. This project uses the computational power of a PC when it is idle for the purpose of Cancer research. Tough these projects are not truly p2p in nature they could be extended to allow for communication between the PCs. For example users could sign up to let other users in a network use their CPU’s idle time and inturn use other's idle CPU time. SUN in its .NET effort is developing systems that are open, scalable and WebTop devices that could interact and communicate with each other. Also its p2p effort the JTXA project that uses collab.NET, aims at developing application that would include the ability to pipe from one peer to another, to from groups of peers, monitoring of peers and a security layer. Another important p2p application is FreeNet that is a file sharing software but is a distributed decentralized information retrieval and storage system. NextPage Inc sells software that help companies boost collaboration between the employees. Intel is also investing lot of money in p2p products its Groove Networks Inc that sells software to link PCs anywhere in the company so that workers could share all the digital stuff via the net.

CONCLUSION AND FUTURE WORK

M2M (Machine to Machine)

Technology has advanced to a stage where there could be web servers in all most all the devices; several companies are developing applications where a person could control his refrigerator/oven/ music system via the Internet. It won’t be surprising if the different machines could communicate with each other. For example consider the case where the toaster from Proctor and Silex could communicate with another toaster to find out the optimum temperature for a toast. A computer automatically placing orders for inventories when the supplies are down or communicating with other suppliers to find out the nearest location where they are available. A lock in a store informing all other locks that it has been broken so that all the locks triggering a pre set reaction. This brings us to the interesting realm of Machine to Machine computing. It is estimated that this interaction would dwarf those of humans. Thus in future application would be developed for not only for people to people interaction but also between machines.

Wireless world:

Promise also holds in the wireless world with the advent of mobile IP that enable cell phones to browse the web. Would it possible for them also to run tiny little web servers that would enable them to interact with other peers. In future some of the p2p applications would enter the wireless world. Some applications like Instant Messaging have already been extended to the mobile world.

In conclusion, the success of peer to peer applications is because of the power in the form of flexibility that it gives to the user. Peer to Peer applications hold a lot of promise for the Internet and may turn out to be the next mantra of the net. However this concept is in its incipient stages and requires lot of introspection.

References:

Ref

Business Week International and O' Riely conference on Peer to Peer

Ref1

Achieving Scalability and Expressiveness in an Internet-Scale Event Notification Service Antonio Carzaniga, David S. Rosenblum and Alexander L. Wolf Proc. Nineteenth ACM Symposium on Principles of Distributed Computing (PODC 2000), Jul. 2000, pp. 219-227.