Could anybody explain in plain words how Cloud computing works? I have read the Wikipedia article, but still not sure that I understand how cloud actually works.
Aside from the latest marketing term?
Basically all the resources your program needs are held "somewhere" on the internet. You interact with them via a defined service contract; SOAP, REST, POX or whatever and what happens after that is up to the service provider. You don't care about how your information is stored or how the service is provided, just that it is.
If, for example, you wanted to store files, you may choose to use Amazon's S3 cloud system. You connect to the service and upload your files; you don't know or care where the files are stored, only the location of the entry point to that service.
If you have an application then it may also be ran in the cloud, assuming it's suitable. Live Mesh for example is a virtual machine which you can code against and run your software both locally and within the cloud, so your user simply goes to a URI and finds your program, you don't care where it is beyond it being available somewhere on the cloud.
The term is so new that there's no accepted definition, particularly since Dell (!) failed to trademark the term.
Essentially the idea is similar to that of a utility - you want electricity, but you don't care which power station supplies it because there's a network supplying electricity to everyone, and you can just tap into it. Which works for electricity, but the Internet isn't quite that sophisticated just yet. But that's the Vision.
Amazon's S3 service just provides disk space, and it doesn't care who uses it or where they are located in the world. Certainly Google's office tools (and Microsoft's web offering) offers a service, not a particular machine, which will look after your application needs. Again, you can create and work with a spreadsheet but you don't know where that spreadsheet is stored, or which machine it runs on - just that it's available when you want it.
Web 2.0 is another term struggling to find a definition, but you can imagine your spreadsheet using calculations which are embedded in another machine somewhere, and storing results of its calculations on Amazon S3. Boundaries are fading away at this point.
Because it's available wherever you log in from, it could be accessed from anywhere in the world. It's "in the cloud" because it can be seen from anywhere (not a good analogy, but ...)
Even something simple such as webmail can be considered to hold our information "in the cloud". That is to say that the data isn't held locally, it's stored on that magical cloud thing called the internet.
It's basically just a buzzword for storing stuff remotely. This list summarises why it's used.
FTP backup => Storing files in the cloud
SSHing into a remote PC to execute code => Cloud computing
Webmail => Cloud mail
SSHing into a remote PC to execute code that predicts the weather => Cloud computing via Cloud computing
(I tried an html table but it didn't render...)
Sounds cooler doesn't it!
It is a computing that happens in distributed on the Internet. The idea is that instead of creating your own resources, you put your data,apps in a Cloud. This cloud is assumed to have 100% availability, and infinite scalability. For more detail :http://vineetgupta.spaces.live.com/blog/cns!8DE4BDC896BEE1AD!1326.entry
Cloud computing is about hardware-based services (involving computing, network and storage capacities), where:
- Services are provided on-demand; customers can pay for them as they go, without the need to invest into a datacenter.
- Hardware management is abstracted from the customers.
- Infrastructure capacities are elastic and can easily scale up and down.
There is a powerful economic force behind this simple model: providing and consuming cloud computing services generally allows to have far more efficient resource utilization, compared to self-hosting and data center type of hosting.
Snippet from this article on cloud computing.
None of those things makes your application a cloud application. It's a cloud application if it runs in a cloud. What is a cloud?
The web site development model does tend to be amenable to running in a cloud because many parts of the system are inherently parallel. However, there are various design decisions (er, mistakes?) you could make that would limit the amount of parallelism that could be achieved, though. You can still run such a program in a cloud but it won't get nearly the kind of benefit that a highly parallel application would.
The technologies that you are talking about can be used to create highly parallel applications, but this isn't automatic, you still have to understand what you're doing.
Basically the marketing term of the hour. Ask 5 people and you'll get 6 answers. I've heard some people describe cloud computing as Google Docs because you store your data "in the cloud". Others think of it more as dynamic allocation and hosting, such as Amazon's EC2 or Google App Engine.
First, to get this out of the way: Cloud Computing is a marketing buzzword and and ill-defined one (at least at the moment).
I would recommend dissecting this overarching buzzword and in market segments, namely:
- IaaS: Infrastructure as a Service (e.g. Amazon EC2)
- Paas: Platform as a Service (e.g. Google AppEngine)
- DaaS: Database as a Service (e.g. Amazon RDS)
- SaaS: Software as a Service (e.g. Salesforce)
Coming back to your points:
- If you expose a Service through a Web Interface, you could classify this in the Cloud Computing bin
- Traditional Web Sites per-se would not fall in the CC category (see above segments)
- I do not know what a "Cloud Application" is: are you trying to define a new term ? ;-)
Cloud computing is just a specific way to order, use and discard computers. It is similar to using banking services with help of ATM or buying things from vending machines.
The goal of cloud computing is to completely exclude any live person from provider's side.
Any other good and bad properties of cloud computing are just a byproduct of this idea.
I'll explain how I've come to understand cloud computing using a couple examples:
Let's say you are creating a personal finances web application. You contact several banks with your proposal and they like the idea but they refuse to allow you access to their servers for a Web Service. In cloud computing, the banks could create a web service in a cloud service like Microsoft's Azure that would extract the data from their server. You would then call their web service from the cloud not their servers. Basically the "cloud" in an intermediary server run by a reputable company like Microsoft, IBM, Google, etc.
On the other hand for the bank it lessens the responsibility and cost of managing the web services and hardware/software required. If a small credit union has only data storage servers and no web server the cloud affords them the same opportunity to participate in your application as a large bank could.
So basically you can imagine the cloud as an intermediary of web services and/or data storage.
I like this video's explanation:
http://www.youtube.com/watch?v=XdBd14rjcs0&feature=related
The short version: Google and Salesforce.com, among others, sell computer space and 'virtualized' application environments that let you run your program on their machines. Like virtual webhosting, but for programs and applications, not just websites. It's a big buzzword now because the big players are really pushing it as a way to make more money off of their infrastructures and unused clock cycles. Salesforce especially, you can kind of blame this most recent version of 'cloud computing' on them and 'Force.com', since they've been very heavily marketing their service using the term cloud computing, and by proxy, the idea of cloud computing itself.
i suggest you to read this paper
Above the Clouds: A Berkeley View of Cloud Computing, armbust at all
There will be no doubt on your mind.And in research area this paper is referred as introduction to cloud computing
I think it is just like a computer which is having services offering from clouds instead of server systems. Clouds may spread along world wide. So clouds only can distribute the services much faster when compares it to any other.