What is the difference between Cloud Computing and Software as a Service (SaaS)? Is there a difference?
If you look at SaaS in Wikipedia, you will see no mention of cloud. If you look at Cloud Computing in Wikipedia, you will see that SaaS is really the so-called "Application Layer" (the other layers being "Infrastructure" and "Platform").
Vendors are not making this easier. Every vendor has its own spin on the subject, jockeying for position in the marketplace. There is even talk (initially by VMware) of building your own private cloud.
How do you navigate this? What does it mean to you?
Let's tackle SaaS first.
SaaS is any software application that you run that is not located on your premises. It is a full-blown application, not a component part of something else. It is not a way to build applications. It is not a plug-in to other applications. It is never something that sits on your machines.
Instead of having the application running on servers and data storage in your data center, it is running in the vendor's data center.
The way SaaS applications are licensed is different from on-premise applications. Instead of buying the license to use the application, and then paying for software maintenance to support it and keep it current, you "rent" the software over a period of time - usually monthly or yearly. Instead of buying and installing infrastructure and then paying ongoing operating and maintenance costs, the vendor runs the application on their infrastructure. The cost of the SaaS application covers the costs of the software itself and the ongoing operations and infrastructure costs.
When you run a SaaS application, you generally log into your vendor's web site and you are on. You can say that SaaS applications are running "in the cloud," and you would be correct. But SaaS applications are not the Cloud.
So what is "the Cloud?" Cloud Computing provides computing resources that are not tied to any specific location. Cloud Computing basically consists of:
1. Virtual computers/servers. 2. Data storage capacity. 3. Communications and messaging capacity. 4. Network capacity. 5. Development environments
In other words, Cloud Computing is for software developers, application vendors, savvy computer users, and corporate IT departments, not for people who use computer applications.
Take, for example, virtual computers. A virtual computer acts like a physical server, but is actually a program that runs on a much larger machine. It acts exactly like a physical computer - you can reboot it, load software on it - except that there is no actual hardware. To take advantage of Cloud Computing, you can go to Amazon and use their Amazon Web Services (AWS) Elastic Compute Cloud (EC2) service. What are you doing, exactly? You are essentially creating and renting one or more virtual servers that are running on Amazon's infrastructure. Instead of buying and installing, say, an IBM System x or HP ProLiant server, you tell Amazon to "instantiate" a virtual server for you. You pay by the hour, and by the amount of data stored.
Unless you work directly with your company's servers, you won't be the person actually working directly with Cloud Computing. Instead, your IT department may decide to use cloud services as the infrastructure to run applications on or to store data. Or, your software vendor could use cloud services like Google AppEngine or SalesForce.com's Force.com to build applications that then become "SaaS" applications.
That's primarily the difference: SaaS offerings are applications that are fully formed end-user applications. Cloud Computing is computing infrastructure and services that you can rent.
If you are in business, you will want to focus more on SaaS than cloud computing, unless your company develops software for a living.