Thursday, January 12, 2012

Web App or Cloud App?

Today people are writing lots of applications that run on web and call them as cloud apps.

The terms "cloud app" and "web app" are being used almost interchangeably and that is confusing to lot of people.

While all Cloud apps are web apps - i.e., all cloud apps run on web, but not all web apps are cloud apps. There is a huge difference between the two. So I think we should define cloud app and web app.

To begin with, lets take a few examples of applications of cloud apps to understand the basic difference between the two.

Internet Relay Chat, Hotmail.com or Yahoo mail - are the earliest cloud apps. These provided a service through the Internet, scalable and the location from where these applications were running were totally abstracted from the user.

Today there are several other applications: Salesforce.com, Google Docs, Dropbox.com, Zoho.com, Fileshare etc. These applications run on sophisticated systems in the back end - that ensures (almost) 100% uptime, security and scalability.

The two basic characteristics of a cloud apps are:

Inherently Scalable: The application is written in such a way that it takes full advantage of the underlying platform to be scalable. The application must not have limits on number of users or workloads.

Very high Uptime: The application is mirrored in multiple locations so that the application is always available (~100% uptime). This high availability architecture calls for hardware redundancy, data mirroring and rapid data synchronization.

Web Apps on the other hand are generally written for a given platform and is limited by the scalability and availability (uptime). Most of the web apps - online banking, e-ticketing, Flight status checking etc. are really web apps and are limited by scalability & availability.

There is another category of Cloud Apps: Platform Apps.

Platform applications are web enabled application which can host other applications. For example Microsoft Azure, Google Apps, Amazon EC2 are essentially platform applications - on which users can host web or cloud applications.

This leads to another type of differentiating web apps and cloud apps.

Cloud apps are essentially a platform that provides a particular service.

Web apps are essentially services that can be accessed over the Internet from anywhere on any device.

No comments: