Sunday, March 21, 2010                 Register

Keith Pijanowski's Blog
Nov 3

Written by: Keith Pijanowski
11/3/2008 1:17 PM

The Many Flavors of Cloud Computing
 
Contents       
 
Word choice is important when giving a new idea a name. However, sometimes an idea is so big and far reaching that no collection of words can accurately describe it. The history of science gives us many examples of ideas that are too big for their names. Kurt Gödel’s Incompleteness Theorem, Albert Einstein’s theory of Special Relativity and his theory of General Relativity are all ideas which are too big for the simple words that are used to refer to them. Furthermore, when a new idea changes the way you perceive the world around you then you need to understand this change to fully understand the idea itself.
Software as a Service (SaaS), Platform as a Service (PaaS), and Software Plus Services (S+S) are all ideas that are too big for their names. These ideas are also going to change the way we perceive and utilize the internet. In this post I want to go beyond the words and get at the core ideas behind SaaS, PaaS, and S+S in order to illustrate what the internet is going to look like once these ideas are realized.
SaaS, PaaS, and S+S all share, in some way, the common pattern shown in Figure 1. What is shown in this figure is a new way of selling, buying and consuming software. Each of these ideas involves a Service Provider, a Service Consumer, and a procurement boundary. The Service Provider is a more evolved version of the Application Service Provider (ASP). In the new era of Cloud computing it is not always an entire application that is being provided as a service. Therefore, in this post I have dropped word “Application” to create the term “Service Provider” when referring to providers of Cloud services. Even when it is an entire application being provided as a service the application is licensed (or owned) by the Service Provider and sold to the consumer as a subscription. This is different from the classic Application Service Provider who received software from a consumer which was either previously purchased by the consumer or even built by the consumer. A core ingredient of Cloud computing is that the Cloud becomes a procurement boundary. The consumer does not have to buy or procure hardware, software, or maintenance across the procurement boundary. The cost is typically a per user fee; however, other payment models are evolving such as ad funding. For the consumer the benefits are twofold - lower total cost of ownership and agility. Lower total cost of ownership is achieved by replacing hardware, software, and maintenance costs with per user subscriptions. Since the consumer does not have to wait months or even years to get up and running the consumer can react to business needs in a more agile fashion.
There are a lot of different types of software that can be served up from the Cloud and there are also a lot of different ways that consumers can consume these services. The software that is provided ranges from a suite of APIs to entire applications to even entire development platforms. One of these ideas, Software plus Services, even goes so far as to include usage patterns that involve non-cloud software or on-premise software. However, for something to fall under the umbrella of Cloud Computing there must be some part of the offering that is available to all from the Cloud since “Cloud” is a metaphor for the public internet.
Figure 1 – The pattern common to all forms of Cloud computing
 
In the following sections I want to take a closer look at SaaS, PaaS, and S+S and show how they are different from each other.
The basic idea behind SaaS is simple. An entire application can exist in the cloud (not in your datacenter) and can be consumed from any browser. This is shown in Figure 2. Applications served up in this fashion are typically utility applications or applications that do not differentiate an organization from its competition. Examples include applications that provide messaging, collaboration, and customer relationship management. This style of selling software is well suited for Independent Software Vendors that have an application that they would like to sell to as many customers as possible.   Here the internet provides reach that is capable of exceeding the reach of the largest sales force.
Figure 2 – The Standard SaaS Model
 
The idea that an entire application can exist in the public internet and can be purchased and consumed by any organization has been around for a while. However, it was SalesForce.com who first capitalized on this idea with their Sales Force Automation solution. Salesforce.com is a company that makes its revenue exclusively from their cloud services and the consulting they do around these services. As of this writing SalesForce.com’s revenue guidance for their fiscal year 2009 which ends January 31st 2009 is expected to be in the range of approximately $1.070 billion to $1.075 billion. This is proof enough that SaaS is a viable way to sell software.
Platform as a Service (or PaaS for short) picks up where the standard SaaS model leaves off. The promise of PaaS is that an entire “platform” will exist in the cloud to provide computing power for custom applications. In other words, if an organization has created a line of business application for competitive advantage then a PaaS offering should be able to host this application. This should provide the same benefits as the standard SaaS model. Identity management and access control will play a big part here because the application will need to be secured in such a way that it is only available to the organization’s employees.  Customers and partners could also be given access to this application if desired. 
PaaS is important because most organizations have far more home grown custom applications than purchased utility applications. This makes the promise of PaaS very appealing to those that have to manage the budget of internal development efforts. If a custom application can be run in the cloud then an organization does not have to provide the hardware, software and support that are typically purchased for on premise application platforms. Furthermore, as additional capacity is needed by the application it can be provided on-demand. This is much different than on-premise capacity planning where hardware and software are purchased based on peak loads. Often times, peak loads only occur for a few hours a day or a couple of months out of the year.
The high level overview in the previous paragraph begs the question: “What does this platform look like?” Figure 3 shows a useful way to categorize the different moving parts of a PaaS offering.  
Figure 3 - A Platform as a Service
 
It all starts with Application Code that is designed to solve a specific problem for an organization. Some platform service vendors allow for existing Application Code to migrate to the cloud in their current state while other vendors are creating new languages and new environments that are cloud specific. 
Application Code must be able to execute in some Runtime Environment. This could be an environment that is a full blown operating system or it could be a simple virtual directory that is managed by an application server in the cloud. 
Identity and security are critical in the cloud. An Identity Service could be as simple as a username/password verifier that works off of a PaaS providers own list of users. It could also be something more advanced that is based on industry standards like OpenID, WS-Federation and Security Assertion Markup Language (SAML) which allow authentication and authorization data to be transmitted between security domains in an interoperable fashion. These more advanced Identity Services will allow organizations to setup partnerships with their partners and customers. Partnerships could be setup with varying levels of trust that are enforced by a custom application to provide authorization. 
A common offering that usually comes with a platform service is a collection of Other Services that collectively solve some high level problem. Usually a platform service provider offers features which have differentiated them in the past. For example, Amazon offers the Associates and Fulfillment web services which are a collection of ecommerce related services, Google offers their AdWords API which offers advertising related services and Microsoft has their Live Services offering which can be used to add Web 2.0 features to any web site and synchronize offline data stores between desktops, laptops and devices.  
Today no application should exist as an island, even if it is running in the cloud. Integration Services allow one application to talk to another. Simple Integration Services provide for only point to point connectivity with other public web services.  More advanced integration services can act as an intermediary for securely connecting to web services behind the firewall of other security domains. These more advanced integration services may also provide workflow capabilities.
Custom lines of business applications often have a variety of storage needs. A cloud platform should provide Data Services for basic storage, queued messaging, and advanced storage. For example, basic storage may be needed for binary large objects (BLOBs) and persisting internal data structures. Queues may be needed to communicate with other components asynchronously. Finally, advanced storage that provides all the capabilities of a high end relational database will be needed for scalable data access and reporting.
A lot of literature today refers to PaaS as a platform for developers. While this is true it is important to note that developers do not actually have to develop in the Cloud. Most of the PaaS providers offer a software development kit that allows an application to be developed and unit tested locally and then uploaded to the cloud for integration testing or final release. In my opinion, the real beneficiaries of these platform services are businesses that have custom line of business applications that can be run in the Cloud at a lower cost than if they were run on-premise.
Providing an entire platform as a service is not easy. For this reason there are only a few major players in the industry that are looking into this flavor of Cloud computing. These key players and their offerings are listed below in alphabetical order. 
Platform Service Vendor
Platform Offering
Amazon
Google
Microsoft
Salesforce.com
 
While researching and evaluating the different PaaS offerings from these vendors it is helpful to organize their offerings according to the break down shown in Figure 3. For sure, PaaS is going to be a battle ground in the cloud when all these offerings come to market. 
Now we get to the trickiest of the three to define. Software plus Services or S+S is a term that Microsoft has coined in order to market their particular flavor of Cloud computing. S+S is different from other marketing campaigns in that it speaks to usage patterns that show how to combine Cloud offerings with existing on-premise assets. In this section I will present four usage patterns that illustrate a few of the many ways that Cloud capabilities can be combined with on-premise assets. Three of these usage patterns are deviations from the standard SaaS model and one is a deviation of the pure PaaS model. 
The first usage pattern allows multiple user interface technologies to be utilized. This is shown in Figure 4. This figure uses Exchange Online as a concrete example. User interface options allow the end user to benefit from offline capabilities that are provided by a non-browser client on either a desktop or a device.
Figure 4 – S+S Usage Pattern 1: A Cloud service with user interface options
 
Many applications that are sold as on-premise assets are extensible. If a third party Independent Software Vendor has extended a particular application to solve either a niche problem or an industry specific problem then those components that make up the extension are usually sold as a separate on-premise asset.   In the world of Cloud computing applications available as software services can be extended in a similar way. These extensions are known as attached services. This second usage pattern is shown in Figure 5Figure 5 uses Exchange Online and Exchange Hosted Services as a concrete example. Here Exchange Hosted Services can be purchased separately to enhance Exchange Online. Exchange Hosted Services add malware protection, enforce retention requirements, provide encryption and allow for emergency access.
Figure 5 – S+S Usage Pattern 2: An Attached Service
 
With web service standards maturing and with more and more applications supporting open architectures it is possible for Attached services to augment an application that is located on-premise as well. Figure 6 shows the third usage pattern. Here Exchange Hosted Services is a Cloud service that is providing its capabilities for an on-premise instance of Exchange 2007.
Figure 6 – S+S Usage Pattern 3: An Attached Service augmenting on-premise assets
The final S+S usage pattern involves PaaS options. PaaS provides maximum value when it is used to run an entire application as shown in Figure 3. However, a modular cloud platform allows its individual services to be consumed from on-premise applications. Figure 7 shows the fourth usage pattern of S+S. This figure shows an on-premise application using four platform services, however, it should be noted that if a cloud platform is architected modularly then these services could be used individually or in any combination with each other. This final usage pattern is important for organizations that wish to take advantage of a cloud platform for their custom applications. This final pattern allows application architects to migrate to the cloud slowly replacing on-premise assets with cloud services any way they desire.
Figure 7 – S+S Usage Pattern 4: On-premise Custom Applications using Platform Services
 
The four usage patterns of Software Plus Services presented here represent high level summaries of the various ways to combine on-premise assets with Cloud services. I’m sure over time that software architects will find even more patterns for combining on-premise assets with Cloud Services. 
Cloud computing is going to change the way consumers purchase software and the way vendors sell software. At a high level software consumers will be able to lower their total cost of ownership and provide software solutions for their businesses in a more agile fashion. Software vendors should also look to gain from cloud computing. The reach and the self service model that comes with internet offerings will allow software vendors to reach more customers and lower their total cost of sales.
When the internet consumes digital content entire industries are changed. Cloud Computing is a phenomena whereby the internet will consume software. Therefore we can expect changes in the software industry. Organizations that understand the changes that cloud computing will bring will be positioned best to capitalize on this change. 
 
Technorati Tags:  ,
Bookmark:   Digg    Del.icio.us    Reddit

 

Tags:

2 comments so far...

Re: The Many Flavors of Cloud Computing

Hi Keith!

I really enjoyed your post!
Actually any form of creating awareness about Cloud Computing and its aspects can just promote its benefits.
I linked your post as a reference on my post today. If you don't like it, please, let me know and I'll make sure to remove it: http://icloudtoday.tumblr.com

Maisa.

By Maisa on   11/14/2008 7:22 AM

Your name:
Title:
Comment:
Add Comment    Cancel  
The Workflow Foundation Series
The SOA Series
Other Posts
Privacy Statement    |    Terms Of Use Copyright 2007 by Keith Pijanowski