2. LITERATURE REVIEW
2.3. The Technology
2.3.2. Defining Cloud Computing
2.3.2.3. Comparing Cloud to Earlier Forms of Computing
2.3.2.3.2. Grid, Supercomputers, Cluster, Web 2.0 and P2P
During the late 1990s the Partnerships for Advanced Computational Infrastructure (PACI) program, the National Partnerships for Advanced Computational Infrastructure (NPACI), and several hardware partners acted as centers of the grid, and together with other Partners for Advanced Computational Services established the National Technology Grid, which linked together a number of regional grids (Foster and Kesselman 1999b). These regional grids, also referred to as GigaPOPs (“gigabit network points of presence”)
connected to a research backbone called the vBNS (i.e., “very high-speed backbone network service”). The first working GigaPOP, Ameritech’s Metropolitan Research and Education
Network (MREN), allowed a number of research institutions to connect (Foster and Kesselman 1999b).24
During this evolution of computer systems and networks, technology developers and the scientific community sought to develop computing capabilities that were transparent to the user, dependable, consistent, pervasive, and inexpensive (Foster and Kesselman 1999b; Bote-Lorezo, Dimitriadis, and Gómez-Sánchez 2003). At the same time, they focused on developing the ability to share computing resources, whether mainframes or clusters of computers, architecture, data sets, or even people (Bote-Lorezo, Dimitriadis, and Gómez- Sánchez; Chetty and Buyya 2002; Čibej, Sulistio, and Buyya 2009). Within the grid community, the individuals or institutions sharing such resources make up what is called a virtual organization. A virtual organization is central to the idea of a grid in that “the real and specific problem that underlies the Grid concept is coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations” (Foster, Kesselman, and Tuecke 2001).
Virtual organizations (VOs) have been defined variously from the early 2000’s onwards. Within early conceptualizations, a virtual organization was typically considered to be a group of individuals or institutions, as reflected by the now classic definition of Foster, Kesselman, and Tuecke, who focused upon the sharing of resources via strictly defined rules:
The sharing that we are concerned with is not primarily file exchange but rather direct access to computers, software, data, and other resources, as is required by a range of collaborative problem solving and resource-brokering strategies emerging in industry, science, and engineering. This sharing is, necessarily, highly controlled, with resource providers and consumers defining clearly and carefully just what is shared, who is 24
Participating institutions were University of Illinois at Urbana-Champaign, University of Illinois at Chicago, University of Chicago, Northwestern University, University of Minnesota, University of Wisconsin, University of Michigan, Michigan State University, Purdue University, Indiana University, Argonne National Laboratory, and Fermi National Accelerator Laboratory (Foster and Kesselman 1999b).
80
allowed to share, and the conditions under which sharing occurs. A set of individuals and/or institutions defined by such sharing rules form what we call a virtual
organization (200-201).
A looser conceptualization is that of Mietzner and colleagues (2009), who defined VOs to be “dynamic collections of individuals, institutions and resources” that allow “flexible, secure, coordinated resource sharing” (138).
Foster (2002) provides a list of three criteria by which an entity can be recognized to be a grid (or not). He says a grid is a system that “(1) coordinates resources that are not subject to centralized control…(2) using standard, open, general-purpose protocols and interfaces…(3) to deliver nontrivial qualities of services” (3). A list of a variety of definitions of grid computing found in the literature examined here is given in Appendix B, according to which grids appear to comprise the following set of characteristics: dependable, persistent, consistent, and inexpensive access; high-end computational capabilities; geographically distributed computing; shared, heterogeneous resources; scalability and large scale problem- solving; decentralized control; the use of standard, open, general-purpose protocols;
provision of non-trivial qualities of service (i.e., “QoS”); transparent computing services; and virtualization.
Because resource sharing in grids was meant to cross traditional organizational boundaries, grid architecture evolved to avoid the centralized ownership and administration of cluster computing (Čibej, Sulistio, and Buyya). This allows individuals from disparate organizations in distributed geographical locations to collaborate and share on projects that require high-performance or high-throughput processing (Buyya et al. 2009; Chetty and Buyya; Vaquero et al.; Mietzner, Karastoyanova, and Leymann; Klems, Nimis, and Tai 2009) or widespread data sharing (Moore, Rajasekar, and Wan 2005; Moore et al. 1999). Within a grid, the heterogeneous resources reside on a variety of nodes, sometimes
numbering in the thousands, and each node can have a different owner and different policies (Čibej, Sulistio, and Buyya), although it is not unusual to find grids composed of various kinds of clusters (Delic and Walker 2008).
Figure 1 shows the overlap of five common types of computational systems: supercomputers, clusters, grids, clouds, and Web 2.0, according to Foster et al. (2008).
Figure 1 - Computation Systems Compared (Foster et al. 2008)
The term “supercomputer” is well known, if not generally defined clearly. Wikipedia suggests that a supercomputer is “a computer that is at the frontline of current processing capacity, particularly speed of calculation” (http://en.wikipedia.org/wiki/Supercomputer). Willard (2008) lists other definitions that have been proffered, including “a computer used to address the most demanding problems,” “any computer that turns a compute bound problem
into an I/O bound problem,” and more whimsical offerings such as “any computer built by Seymour Cray” and “a computer that is only one generation behind what the users want.” With the advent of grids and clouds, supercomputers can be made into super supercomputers, via massively parallel and distributed processing techniques that allow incredibly rapid calculations to occur by sharing the workload among a pool of very powerful machines.
Supercomputers, however, can also be interconnected to create clusters of
computational resources. Buyya et al. define a cluster as “a type of parallel and distributed system, which consists of a collection of inter-connected stand-alone computers working together as a single integrated computing resource” (Buyya et al. 2009, 602). However, clusters are often composed of commodity computers – low-end, inexpensive units that are likewise linked together (Buyya et al.). Unlike grids, clusters are generally located in the same geographic area and managed by a single entity. In addition, cluster schedulers tend to focus on “enhancing the overall system performance and utility as they are responsible for the whole system” (Buyya et al., 603). Foster and Kesselman (Foster and Kesselman 1999a) define a cluster to be “a collection of computers connected by a high-speed local area network and designed to be used as an integrated computing or data processing resource.” Grid computing, on the other hand is “more loosely coupled, heterogeneous, and
geographically dispersed” (Marinos and Briscoe, 476).
On the services-oriented side of Foster and colleagues’ diagram in Figure 1 reside cloud computing, Web 2.0, and some grid computing implementations. Popular literature often uses “Cloud computing” and “Web 2.0” as interchangeable terms, although Rhoton (2009, 11) notes that there is no intrinsic connection between the two. According to Tim O’Reilly (2006), “Web 2.0 is the business revolution in the computer industry caused by the
move to the Internet as a platform, and an attempt to understand the rules for success on that new platform.” According to Mell and Grance (2009a), Web 2.0 is “the trend of using the full potential of the web,” by “viewing the Internet as a computing platform,” “running interactive applications through a web browser,” leveraging interconnectivity and mobility of devices,” exploiting the “long tail,” that is, gaining profits in “selling specialized small market goods,” and deriving “enhanced effectiveness with greater human participation” (62). Because cloud computing is a highly service-oriented architecture, it generally takes
advantage of Web 2.0 functionality, but strictly speaking even server farms provided in a private cloud computing environment without Web 2.0 functionality could be considered a cloud. Because Web 2.0 functionality can be provided without cloud computing architectures (and vice versa) the two concepts should be distinguished from each other.
Peer-to-Peer (P2P) is a distributed architecture in which “participants share a part of their own hardware resources (processing power, storage capacity, network link capacity, printers)” where “these shared resources are necessary to provide the Service and content offered by the network” (Schollmeier 2001, 101). P2P computing involves peer nodes
(computers) sharing content directly with one another in a decentralized manner (Buyya et al. 2009). Within P2P architectures, resources are available equally and on demand to every user (Kurdi, Li, and Al-Raweshidy 2008). In a P2P environment, the provider of services cannot readily be distinguished from the consumer, since any individual computer can play both roles (Taylor and Harrison 2008). Such a system “focuses on resource sharing in
environments characterized by potentially millions of users, most with homogenous desktop systems and low-bandwidth, intermittent connections to the Internet” (Crowcroft et al. 2004).