When you’re buying food, there is no definition for the word natural. Anyone selling processed food can use the word natural to mean anything they like. Or nothing. Similarly, cloud app is a term whose meaning is still vague and in many ways not a reliable description of what kind of app, product, or service you are buying.
When a program has been built to run on a web server, it’s usually called SaaS, or “software as a service.” The advantages of SaaS are that these programs do not need to be installed on a local computer, and are mostly platform-independent; so they will run in the browser of a Windows computer, or Mac, or mobile–any device with a browser, basically. Data can be stored either locally or remotely. When data is stored remotely, it is easy to lock it away from former employees, and local requirements for backup and big servers are greatly reduced.
For the publisher, the advantage is that the product can be sold as a subscription service, and effectively eliminates piracy.
In scientific computing, cloud computing refers to using programs on a scalable computing platform, so that many computers can be used simultaneously for pieces of the same task. This has been used for signal analysis, and for calculating how proteins structures will fold in three dimensions, which is very useful for creating new drugs that will match up with a known three-dimensional protein associated with an illness or condition. So cloud programs, in science, can use dozens or thousands of computers simultaneously, all to work on one problem.
The way that the term “cloud app” is being used now for commercial software is less precise. A true cloud app is a software-as-a-service product that runs on multiple computers for redundancy but usually not for computing power. It might be scalable, if needed for that application.
Consumer alert: much of what is being sold as a cloud product is software-as-a-service with online storage, or in some cases it is software, installed on the local computer in the traditional way, connected to a server that regulates a subscription for the product. There is no cloud benefit to the user of such products except the ability for business managers to remotely disable software subscriptions and access for former employees.
When you are buying a program that will run on the Internet, even a small program that will be used by one person can be cloud enabled, with redundancy, running on multiple servers. All the developer has to do to make that happen is to buy cloud hosting from an online Web server company that provides that service. There are various levels of hosting cloud servers, and the servers are redundant either geographically to provide faster service to users in different locations or simply to provide more reliability. In case of failure of one server, such a program will continue to run on another server. So redundant servers is one part of cloud computing; it increases the reliability of the online service. Generally, those servers will not be at the same location.
When does all this matter? If you are signing up for a service, like Google Docs, which is a cloud service for writing documents, saving them, and sharing them with other people, then cloud applies to a distributed service running on multiple servers to protect you from server failures in real time. It doesn’t actually change how things work in the program, but increases the reliability of the online system.
If, however, you have a business application that you are paying a developer to convert to become a cloud app in some form, then you should ask about where the program will be hosted. It can be hosted on two computers, or can be hosted on something like Amazon Elastic Cloud, which can create a large-scale network for a scalable program with high levels of redundancy. Using two servers may be appropriate for a program that has to run for a dozen users, but the large-scale system is more appropriate for something like an airline reservation system, which has to manage massive numbers of simultaneous transactions with real-time tolerance for hardware and communications faults.
So at the low-end, a cloud app is a software product running as a service, online, on at least two servers, planned for redundancy, scalability, and access control, usually for multiple users.
Jerry Stern is the editor of ASPects, and author of the Startupware.com blog, on Starting up Software Companies and Software that Autostarts.