Cloud Computing is a term used to describe a computing paradigm wherein applications, services, and/or data are accessed over a computer network, such as the. What differentiates cloud computing from traditional client/server models is that resources on in the cloud are usually virtualized, dynamic, and highly interactive.
Usually when thinking of cloud computing, people assume that communication from the user into the cloud is via a web browser using technologies like, Web Sockets, HTML, and . Various technologies like Web Sockets and Ajax help to create a richer user experience than was traditionally available in a web browser. Communication between various services within the cloud is often via HTTP, as well, using the same technologies.
However, what defines cloud computing is not merely the use of HTTP. In fact, one may deploy services in a cloud that do not utilize HTTP at all, perhaps preferring a different-based protocol to enable communications that have nothing at all to do with a web browser, such as complex scientific applications that have a minimal interface and are primarily crunching numbers.
More often than not, resources in the cloud are virtualized, including processing and disk storage. As demand for services increases, it is possible to instantiate more virtual servers or to add additional storage capacity to help handle the increased load. Likewise, as demand declines, resources may be freed. The allocation of new resources and freeing of those resources is a programmatic operation, wherein the entity providing services monitors current usage and expands or shrinks capacity without the time and cost of installing physical servers or storage systems.
It is generally accepted that services available in cloud computing may be divided into three major categories: Infrastructure-as-a-Service, Platform-as-a-Service, and Software-as-a-Service. Each of these service categories are instrumental in building cloud applications.