“What is the difference between cloud computing and software as a service?”
This is a really good question. Let’s explore this space for a bit and hopefully we can come to a good answer. (I am going to attempt to be brief here so please forgive me it this is not an exhaustive study and lacks some appropriate reference.)
If we look back far enough, we find most of the popular and modern terms describing advanced multi-computing are actually forms of distributed computing, which has been around since the early 1980s. (See A primer on distributed computing) There has been significant hype/spin as well as real advancements that have “clouded” :o) the whole concept (In fact, I am fond of asking; “Please tell me what you mean when you refer to one of these terms, because I can’t figure them out any more!”). There are many facets that have evolved in distinct ways which represent real value and when I get a chance, I am going to create some type of figure showing these interrelationships. For now, we’ll stick with the more recent concepts and I will give you my opinion. (I will say that If you want to know more now, there is a good reference all-be-it a couple of years old from the GGF I would send you to: The Different Faces of IT as a Service)
Most discussion these days involves grid, utility, and cloud computing to which we will add software as a service (SaaS).
- Grid computing is a fairly all encompassing concept and as you probably know, can be generally defined as: “a system that uses open, general purpose protocols to federate distributed resources and to deliver nontrivial qualities of service.” Or in other words, it uses standard “stuff” to make many distinct systems work together in a way that makes them useful.
- Utility computing or on-demand computing is the idea of taking a set of resources (that may be in a grid) and providing them in a way in which they can be metered. This idea is much the same as we buy electricity or a common utility today. It usually involves a computing or storage virtualization strategy.
- Cloud computing is a subset of grid computing (can include utility computing) and as I mentioned in my opening post, is the idea that computing (or storage) is done elsewhere or in the clouds. In this model many machines (Grid) are orchestrated to work together on a common problem. Resources are applied and managed by the cloud as needed. (In fact this is a key characteristic of cloud computing. If manual intervention is required for management or operations, then it probably doesn’t qualify as a cloud.) Cloud computing provides access to applications written using Web Services and run on these Cloud Services.
Now let’s add to this discussion the idea of Software as a Service (SaaS). Usually this means a model where diverse applications are hosted by a provider and users pay to use them. So I would say the key distinction of SaaS and cloud computing is the service and business model provided as opposed to the architectural mechanism used to deliver it. In fact, I think it is also fair to say that a cloud computing architecture may be the key/best mechanism for delivering Software as a Service. Let’s look at a couple of today’s trends and see if this all fits. Probably the best known examples are of course search and mail. There are several companies that offer both freely, they are available via the web, and they are written using web services. (There is a growing set of additional capabilities that are becoming available.)
For the most part, these are all free (fee based versions exist). Based on the scale and ubiquitous service they are able to deliver, it is fair to say that there is a cloud behind them. The Amazon Elastic Compute Cloud is noteworthy here. It is a virtual farm, allowing folks to host and run “their” diverse applications on Amazon’s web services platform. It represents an excellent example of a business model where a company is providing “Cloud Services” to those who can and are willing to take advantage of them. Software as a Service is the logical next step in evolution. It is going to be very interesting to see how this motion will emerge. Ideally users will be able to “rent” the application and everything needed to apply them to their business in the form of Software as a Service.At some point, we should explore SaaS as it relates Application Service Providers (ASP) and On-Demand computing, but enough for now. I welcome your thoughts or comments…