David Chappell published a white paper last week on Introduction to Cloud Platforms, with "the goal of categoriz[ing] and briefly describ[ing] those technologies as they’re seen by someone who creates enterprise applications. The paper was sponsored by Microsoft, but it’s not Microsoft-specific".
He categorizes cloud computing platforms into the following types :
- Software as a service (SaaS): A SaaS application [which] runs entirely in the cloud [...] most well-known example of a SaaS application today is probably Salesforce.com.
- Attached services: On-premise applications whose experience is enhanced by services in the cloud. A popular consumer example of this is Apple’s iTunes.
- Cloud platforms: A cloud platform provides cloud-based services for creating applications. The direct users of a cloud platform are developers, not end users.
He states that most modern applications consist of the following parts ...
- A foundation: This typically includes various support functions, such as standard libraries and storage, and a base operating system.
- A group of infrastructure services: Applications frequently use basic services provided on other computers. It’s common to provide remote storage, for example, integration services, an identity service, and more.
- A set of application services: As more and more applications become service-oriented, the functions they offer become accessible to new applications and end up being an application platform.
... and gives examples of real world cloud computing platforms Amazon's EC2 and Googles AppEngine goes on to map his definition of an application to the available services. Be sure to check out the original white paper.