The definition of software-as-a-service (SaaS) predates the rise of cloud computing, and it relates to the delivery of software from a centralized data center and its access by end-users, through some sort of “thin” client. It’s easy to see how, in a cloud world, the thin client is the web browser, and since software is web-based, it is necessarily distributed from a server to somewhere else. I believe, however, that the similarities between the cloud-based software model and this basic definition of software-as-a-service have led to a generalized misconception that every piece of web-based software is a service, and that has allowed vendors everywhere to “cloudwash” their offerings.
Cloud computing is composed, in a very broad sense, of three service layers that can be exploited by end users to achieve their computing needs. The first layer is infrastructure-as-a-service, or IaaS. From the standpoint of the user, this is the level with the least amount of abstraction. IaaS vendors offer servers and other equipment in a managed, pay-as-you-go fashion, and while assurances about hardware uptime are made, the end-user is ultimately responsible for any software-related downtime. Examples of companies that are positioned on this layer are Rackspace and Amazon.
On the second level we have platform-as-a-service, or PaaS, vendors. These companies offer an abstraction layer on top of the basic computing infrastructure for tasks such as storage or messaging, so that the end-user can accomplish certain computing-related tasks more easily. Examples of offerings on this layer are Microsoft’s Windows Azure, or Google’s App Engine.
Finally, on the uppermost layer of the cloud, we have software-as-a-service, or SaaS, companies. These are fully featured, web-based software offerings that are sold to end users as a closed package. There are literally thousands of different companies in this space, offering everything from web-based e-mail and calendar to ERP solutions. Even though all cloud-based software is necessarily software-as-a-service, the opposite may not always be true.
What’s in a name
The basic definition of software-as-a-service is concerned mainly with how software is distributed, making no distinction as to how the software is priced and sold. This means that a vendor could charge annual licensing fees from customers, just as what happens with traditional software, and still get labeled as “software-as-a-service” as long as the software followed a web-based model. In fact, there are several “cloud” software solutions that are sold this way: the annual fee is disguised as a monthly payment with the possibility to opt-out along the way, and customers are happy.
On the IaaS and PaaS layers, services are charged on the basis of usage metrics that make sense for the end user. Servers are bought based on how many CPUs and memory you’ll use, and for how long that server will be active. For computing platforms, you pay for the different tasks executed, such as storage transactions and space, messages sent and received, computations performed, and so-on. This establishes some basic premises for the cloud: that systems can be scalable and that control over expenses can be fine-grained. These premises don’t hold true for software offerings, however. There are still several vendors that insist in charging monthly or per-user (or both) fees. This is just the replication of the traditional software model using the web as a new distribution channel.
To truly follow the cloud model, software should be sold based on usage metrics that make sense to the end user. If I’m using e-mail, charge me for the volume of messages that are sent, received and stored. If I’m using an office suite, charge me for documents (or spreadsheets, or anything else) created and shared. By moving away from the traditional pricing model, companies can build a stronger value chain, where products can be created using others as a foundation and everyone can earn money.
While the service model is related mainly to the distribution channel, the cloud is an economic model. It encompasses not only the ideas behind the service model, but also other ideas, such as transparent scalability and always available resources. We can see that, while all true cloud software is software-as-a-service, not all software sold as a service fits into the cloud model. By understanding these differences, customers can better choose their cloud providers.