And like many, they found it a challenge to provide an encompassing definition for cloud computing. Foster et al. defined cloud computing as, “A large-scale distributed computing paradigm that is driven by economies of scale, in which a pool of abstracted, virtualized, dynamically-scalable, managed computing power, storage, platforms, and services are delivered on demand to external customers over the Internet”; while SYS-CON Media Inc., 2008 [2] provided a list of definition from twenty one subject matter experts. Nevertheless, there was a general consensus [1][2][3] that cloud computing could be characterized by its very large scale, virtualization, versatility, scalability, on-demand, high performance, and low storage and usage costs.
In addition, the authors contended that there exists an agreement on the basic types (or styles) of cloud computing. Though they had listed a total of seven types, when cross referenced with other publishing [3][4], the seven could be combined the scoped to just three main types. The three common types of cloud computing are Software as a service (SAAS), Platform as a Service (PAAS), and utility computing (also referred to as Infrastructure-as-a-Service, IAAS). SAAS delivers a single application through the browser to thousands of customers using a multi-tenant architecture. PAAS delivers development environments as a service (i.e. one can build his own applications that run on the provider's infrastructure and are delivered to his users via the Internet from the provider's servers). IAAS provides the computational and storage infrastructure in a centralized and location-transparent service.