Cloud computing is one of the most explosively expanding technologies in the computing industry today. However it is important to understand where it came from, in order to gure out where it will be heading in the future. While there is no clear cut evolutionary path to Clouds, many believe the concepts originate from two specic areas: Grid Computing and Web 2.0.
Grid computing, in its practical form, represents the concept of connecting two or more spatially and administratively diverse clusters or supercomputers together in a federating manner. The term ”the Grid" was coined in the mid 1990's to represent a large distributed systems infrastructure for advanced scientic and engineering computing problems. Grids aim to enable applications to harness the full poten tial of resources through coordinated and controlled resource sharing by scalable virtual organizations. While not all of these concepts carry over to the Cloud, the control, federation, and dynamic sharing of resources is conceptually the same as in the Grid. This is outlined as Grids and Clouds are compared at an abstract level and many concepts are remarkably similar. From a scientic perspective, the goals of Clouds and Grids are also similar. Both systems attempt to provide large amounts of computing power by leveraging a multitude of sites running diverse applications concurrently in symphony. The only signicant dierences between Grids and Clouds exist in the implementation details, and the reproductions of them, as outlined later in this section.
The other major component,Web 2.0, is also a relatively new concept in the history of Computer Science. The term Web 2.0 was originally coined in 1999 in a futuristic prediction by Dracy DiNucci „TheWeb we know now, which loads into a browser window in essentially static
screenfulls, is only an embryo of the Web to come. The rst glimmerings of Web 2.0 are beginning to appear, and we are just starting to see how that embryo might develop. The Web will be understood not as screenfuls of text and graphics but as a transport mechanism, the ether through which interactivity happens. It will appear on your computer screen, on your TV set, your car dashboard, your cell phone, hand-held game machines, maybe even your microwave oven." Her vision began to form, as illustrated in 2004 by the O'Riley Web 2.0 conference, and since then the term has been a pivotal buzz word among the internet. While many denitions have been provided, Web 2.0 really represents the transition from static HTML to harnessing the Internet and the Web as a platform in of itself.
Web 2.0 provides multiple levels of application services to users across the Internet. In essence, the web becomes an application suite for users. Data is outsourced to wherever it is wanted, and the users have total control over what they interact with, and spread accordingly. This requires extensive, dynamic and scalable hosting resources for these applications. This demand provides the user-base for much of the commercial Cloud computing industry today. Web 2.0 software requires abstracted resources to be allocated and relinquished on the y, depending on the Web's trac and service usage at each site. Furthermore, Web 2.0 brought Web Services standards and the Service Oriented Architecture (SOA) which outline the interaction between users and cyberinfrastructure. In summary, Web 2.0 dened the interaction standards and user base, and Grid computing dened the underlying infrastructure capabilities.
A Cloud computing implementation typically enables users to migrate their data and computation to a remote location with minimal impact on system performance . This provides a number of benets which could not otherwise be realized. These benets include:
- Scalable - Clouds are designed to deliver as much computing power as any user needs. While in practice the underlying infrastructure is not innite, the cloud resources are projected to ease the developer's dependence on any specic hardware.
- Quality of Service (QoS) - Unlike standard data centers and advanced computing resources, a well-designed Cloud can project a much higher QoS than traditionally possible. This is due to the lack of dependence on specic hardware, so any physical machine failures can be mitigated without the prerequisite user awareness.
- Specialized Environment - Within a Cloud, the user can utilize customized tools and services to meet their needs. This can be to utilize the latest library, toolkit, or to support legacy code within new infrastructure.
- Cost Efective - Users nds only the hardware required for each project. This reduces the risk for institutions potentially want build a scalable system, thus providing greater exibility, since the user is only paying for needed infrastructure while maintaining the option to increase services as needed in the future.
- Simplied Interface - Whether using a specic application, a set of tools or Web services, Clouds provide access to a potentially vast amount of computing resources in an easy and user-centric way. We have investigated such an interface within Grid systems through the use of the Cyberaide project.
Many of the features noted above dene what Cloud computing can be from a user perspective. However, Cloud computing in its physical form has many dierent meanings and forms. Since Clouds are dened by the services they provide and not by applications, an integrated as-a-service paradigm has been dened to illustrate the various levels within a typical Cloud, as in figure below:
View of the Layers within a Cloud Infrastructure
Clients - A client interacts with a Cloud through a predened, thin layer of abstraction. This layer is responsible for communicating the user requests and displaying data returned in a way that is simple and intuitive for the user. Examples include a Web Browser or a thin client application.
Software-as-a-Service (SaaS) - A framework for providing applications or software deployed on the Internet packaged as a unique service for users to consume. By doing so, the burden of running a local application directly on the client's machine is removed. Instead all the application logic and data is managed centrally and to the user through a browser or thin client. Examples include Google Docs, Facebook, or Pandora.
Platform-as-a-Service (PaaS) - A framework for providing a unique computing platform or software stack for applications and services to be developed on. The goal of PaaS is to alleviate many of the burdens of developing complex, scalable software by proving a programming paradigm and tools that make service development and integration a tractable task for many. Examples include Microsoft Azure and Google App Engine.
Infrastructure-as-a-Service (IaaS) - A framework for providing entire computing resources through a service. This typically represents virtualized Operating Systems, thereby masking the underlying complexity details of the physical infrastructure. This allows users to rent or buy computing resources on demand for their own use without needing to operate or manage physical infrastructure. Examples include Amazon EC2, Eucalyptus, and Nimbus.
Physical Hardware - The underlying set of physical machines and IT equipment that host the various levels of service. These are typically managed at a large scale using virtualization technologies which provide the QoS users expect. This is the basis for all computing infrastructure.
When all of these layers are combined, a dynamic software stack is created to focus on large scale deployment of services to users.