Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
Rethinking Cloud Computing - From Client-Server to P2P

Rethinking Cloud Computing - From Client-Server to P2P

Ratings: (0)|Views: 280 |Likes:
Published by Krish
This is the updated version of the original document.
This is the updated version of the original document.

More info:

Published by: Krish on Dec 26, 2009
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





Rethinking Cloud Computing - From Client/Server to P2P
Krishnan Subramanian, Analyst and Researcher, www.krishworld.com
We are still at the early days of Cloud Computing and the technologies underlying thisconcept are maturing fast. However, the services offered by different vendors are facingdowntimes. In fact, such downtimes were part of even the traditional infrastructureapproaches like On-Premise hosting and Managed hosting too. Since, Cloud Computing is anew technology, it has already captivated the imagination of businesses worldwide and, as aresult, we are also seeing some harsh criticism by certain segment of the media and techblogosphere. Even though some of them are unwarranted, there is some merit in thesecriticisms and it is time for us to do a reality check. As I have mentioned in my blog posts atCloud Ave (www.cloudave.com) and in my conversations at Twitter and conference hallways,I believe in a future where we will have an ecosystem of open federated clouds and prettyhappy with the current state of progress in Cloud Computing. However, for the sake of thisanalysis, I would like to wear a contrarian hat and do a complete rethink of the CloudComputing architectural model.Let us do a brief recap of how Cloud is architected at presentand, then, do a complete rethink of this model to keep suchdowntimes at its bare minimum. Before describing the natureof Cloud Computing as it exists today, let us dig back into thehistory of computing. Till a few decades back, the computingwas done on huge centralized mainframe machines and supercomputers and are accessed by users using dumb text basedterminals. All the software, peripherals, etc. were part of thishuge centralized powerful machines and were centrallymanaged by dedicated teams. This centralized client-servermodel of computing was in vogue for quite some time beforethe PC revolution ushered in a new era of distributed client-server model. This new client-server model saw the federationof management and offered greater flexibility than the centralized client-server model. Thepast few years saw the emergence of Cloud Computing which is a much sophisticatedevolution from the centralized client-server system but built using large numbers of cheaperx86 systems. Even though the computing resources in the Cloud model appear to becentralized like the centralized client-server model of mainframe years, there are somesignificant differences. In the traditional mainframe client-server model, the work was splitbetween the server and the client whereas in the Cloud model, the work is done completelyon the "server" side (I have used the double quotes here to differentiate from a singlepowerful server). On the traditional model, the server was a single powerful machine like amainframe or a supercomputer whereas in the cloud model, the "server" is actually a serverfarm with hundreds or thousands of cheap low end x86 machines that acts as a centralizedcomputing resource. Even though the Cloud model is a much sophisticated evolution from theprevious client-server models, we are still dealing with a "centralized resource" from a singlevendor. Some of the big vendors use geographically distributed datacenters and state of artvirtualization technologies or "fabric" technology to offer high reliability in terms of uptime.However, it is not the case with all the vendors. Many of them use a single datacenter and aCloud like architecture to offer their infrastructure services. This leads to a single point of failure, like what happened in the case of Rackspace recently. Even with geo-distributeddatacenters, there are partial outages like the recent lightning strike on one of the Amazon'sdatacenters.
A way to minimize the downtimes is to do a complete reboot of the way we think aboutCloud Computing and architect it using P2P technologies. P2P, also known as Peer to Peer, isdefined in Wikipedia as
) networking is a method of delivering computer network servicesin which the participants share a portion of their own resources, such as processingpower, disk storage, network bandwidth, printing facilities. Such resources are provideddirectly to other participants without intermediary network hosts or servers. Peer-to-peer network participants are providers and consumers of network servicessimultaneously, which contrasts with other service models, such as traditional client-server computing where the clients only consume the server's resources.The idea of using P2P technology, instead of client-server model, for CloudComputing is nothing new. It has been discussed and debated in thehallways of academia for quite some time now. Even in the techblogosphere, Bernard Lunn of ReadWriteWebwonderedabout the use of P2P in the Cloud Computing in one of his posts last year. In fact, some of the Cloud storage providers likeWualaare already using the technology.P2P is a great fit for Cloud storage systems offering the much neededreliability. Another area where P2P can play a major role is Content DeliveryNetworks (CDN) which are usually offered as an extension to Cloud storage offerings. It hasbeenestablishedthat the use of Erasure Resilient Codes in P2P based Cloud storage systemsgreatly improves the reliability of Cloud storage and also eliminates the need of redundantbackup servers. They are also quite effective against malicious attacks, thereby, offeringhigher levels of security. This low cost, highly reliable, secure Cloud storage systems can be aboon to the enterprise customers.P2P on the computing side is not something altogether new. It is an extension from thedistributed computing model used in the projects like SETI@Home, Protein Folding, financialmodeling, etc.. It is possible to build a Cloud that taps into the idle CPU cycles of desktopsand, let me be a bit bold here, the servers in some of the enterprise datacenters. Thisunderlying P2P technology can be masked with a "fabric" that could offer a perception of acentralized computing resource. Well, such a P2P cloud cannot be built on top of naked P2Pnodes alone and there is a need for an hybrid approach containing servers for management,messaging, monitoring, etc. (much like how it is done for Skype). I am not discussing mychildhood fantasy here in this article. In fact, a group of researchers in the University of Western Ontario has beenworking on a projectto build a stable,
, P2P cloudinfrastructure that leverages the idle CPU cycles. There are also other academic researchgroups looking at the P2P based Cloud model. I am not aware of any company, like IBM,doing any research on P2P Cloud but it is just a matter of time before some of thesecompanies start exploring in this direction.Let us now take a moment to see the advantages of a P2P CloudImproved reliability than the "client-server" cloud.Much more cost effective because there is no need to build expensive datacenters.The very fact that expensive datacenters are not needed means even startups can beCloud infrastructure players. This eliminates the possibility of few players holding themonopoly control over Cloud infrastructure services.Easy scalability.People who offer their idle CPU times will get to benefit commercially and anecosystem of P2P node providers will develop around every provider's infrastructure.This opens up new business opportunities for many, thereby, helping us socially.

Activity (2)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->