Some time ago, categories of public cloud computing were established. First of all, a distinction was created on who owned the cloud, with private (it is yours), hybrid (you are renting it, but not sharing it with anyone), and public (you are renting it, and you are sharing the infrastructure with an unknown number and type of other entities) having been defined. Then we created Infrastructure-as-a-Service – IaaS (a service consisting of either the container for the OS, or the container and the OS in it), Platform-as-a-Service – PaaS (a service consisting of IaaS plus all of the application services (web server, application server, database server, and language run times) that an application needs, and Software -as-a-Service – SaaS (the entire application is delivered over the Internet, typically by the application vendor (SalesForce.com being a good example).
The Problem with Applications in Cloud Computing
If you think about IaaS and PaaS, these categories of cloud computing work fairly cleanly no matter whether the particular cloud is deployed internally (private), on a rented but dedicated cloud (hybrid), or on a public cloud. You can go subscribe to a public cloud offering like Heroku or Engine Yard and get a public PaaS, or you can use a product like VMware vCloud Automation Center or Virtustream to build in internal PaaS environment for yourself. You can get an IaaS public cloud offering from Amazon, or you can build one for yourself from a variety of private cloud management offerings, including those from Embotics, Cloupia and ManageIQ.
The problem comes with how SaaS is perceived, and possibly how SaaS is defined. When most people think about SaaS, they think of an entire application delivered to you over the public Internet. Most people assume that an SaaS application is built from scratch to be multi-tenant at the back end by the application vendor, although this may not always be the case. In any case, the prevailing perception of SaaS is that it is a public cloud computing offering, not a private cloud computing offering.
SaaS in Private Cloud Computing
If we had SaaS for private clouds, what would it be? If a company puts SAP in the service catalog, so that if an incremental user needs SAP the entire service is delivered by the cloud management offering, is that SaaS? If we call this SaaS, it is surely a different implementation of SaaS then something like SalesForce.com. Here are some key differences:
- There is nothing multi-tenant about this. This is one enterprise’s instance of SAP serving the users of that one enterprise.
- The service may or may not be delivered over the Internet and accessed using a browser. Some versions of SAP require the installation of a fat client application on the user’s PC. Some enterprises approach this by using Citrix XenApp, Citrix XenDesktop, or VMware View to deliver the application while keeping the fat client application running on some back end infrastructure. Again, very different than delivering a web based application to a user.
- The public Internet is possibly involved for some users, but not in principle part of the delivery of the application in all cases, as is the case with SaaS as it is commonly understood.
Let’s look at one more example. What if a bank offers electronic banking in the USA, but not in Canada? What if the application development team for the banking application put the entire application system in the service catalog, and then the business unit in Canada or any other geography could simply order up the online banking service when they decided to bring it to their market? This is definitely not SaaS as we traditionally understand it, because it probably means a customized deployment of the application system in either the same or a different data center to meet the needs of the local market and the local banking regulations. The key differences here are:
- Again, there is nothing multi-tenant about this.
- It is not service to a user that is being delivered. It is an entire application system, designed to serve all of the users in a particular market or geographical area.
- Users may well access the application over the Internet, but users in different countries and different markets are going to be accessing completely different instances of the application.
So Do We Need a New Class of Cloud Computing?
It seems that the second example above, in particular, seems to call for a new class of cloud computing. Putting an entire application system (the actual application itself, not just its supporting application services and infrastructure) into a service catalog and letting business units order it and deploy versions customized for various markets and geographies is definitely not IaaS or PaaS, and seems to be outside of the accepted definition of SaaS.
Therefore it would seem that this case of cloud computing warrants its own category.
What to Call Applications Delivered as a Service?
Well, the obvious answer Application as a Service (AaaS), is not the obvious answer for the obvious reason. The acronym invokes one’s posterior, not a reference to a new class of cloud computing. Since the first set of applications that will be delivered in this way will likely be enterprise line-of-business applications, then perhaps we can call this BaaS for Business-as-a-Service. This is an appealing marketing concept, but it has one giant flaw. What if Facebook decides to deliver its application to its worldwide business units in this manner? Most people do not think of Facebook as a business application, and there will certainly be classes of applications delivered to users in this manner in the future that are even less of a business application than Facebook.
So we need two conclusions. The first is that we need to determine if a new category of cloud computing is warranted. And then, if it is, we need to find some appropriate and non-offensive name and acronym for it.