4.2.2 Comparison from the Viewpoint of System

photofitterInternet and Web Development

Dec 4, 2013 (3 years and 6 months ago)

84 views

Chapter 4

Examining Cloud Computing

From the Perspective of Grid

and Computer
-
Supported
Cooperative Work


Jinlei Jiang and Guangwen Yang

Cloud computing, which refers to services provisioning
and consumption over the Internet, is the latest
paradigm promising to deliver computing as a utility.
Though it is still in its
infancy

and facing many challenges,
cloud computing has drawn and is drawing more
interest from both academia and industry. Taking grid
computing as the baseline and using the findings in
computer
-
supported cooperative work (
CSCW
) research,
this chapter tries to answer such questions as why cloud
computing is so
attractive

and how to make the vision of
cloud computing really come true.

Abstract

Delivering computing as a utility was envisioned a way
back by computing pioneer John McCarthy in 1961 as
[17]



If computers of the kind I have advocated
become the computers of the future, then computing
may someday be organized as a public utility just as the
telephone system is a public utility… The computer
utility could become the basis of a new and important
industry.

, and by
Leonard Kleinrock

in 1969 [10]



As of now, computer networks are still in their
infancy, but as they grow up and become sophisticated,
we will probably see the spread of “computer utilities”
which, like present electric and telephone utilities, will
service individual homes and offices across the
country.



4.1 Instruction

Along the journey toward this dream, many
computing paradigms have been proposed, including
cluster computing
,
peer
-
to
-
peer (P2P) computing
,
services computing
, and grid computing. Cloud
computing, which refers to service (
hardware

such as
CPU

and
storage
,
platform
, and
application
)
provisioning and consumption over the Internet in an
on
-
demand approach, is the latest one joining this
family.

4.1 Instruction

Though it is just an emerging paradigm, more and
more people [3, 4, 8, 11] tend to think that cloud
computing is the state
-
of
-
the
-
art practice and holds
the promise to realize the
long
-
held dream

of

computing as a utility
.


Nowadays, cloud computing has become a trend,
drawing a lot of interest from both academia and
industry. On the one hand, there are lots of hypes
and columns available in the media, especially the IT
-
related ones. For example, using Google’s exact
search, the term

cloud computing


yields about
25,200,000 web pages
, compared with
2,000,000

pages for

grid computing.


4.1 Instruction

Another result given by Google is also surprising


it only took
10 months for the cloud computing article by Berkeley [2] to
get 138 citations. On the other hand, there are quite some
products and services available on the market and still more
products and services are coming. For example, besides
Amazon’s EC2 (Elastic Compute Cloud) and S3 (Simple Storage
Service), other well
-
known cloud computing products and
services include Salesforce’s Force.com and SFA (Sales Force
Automation), IBM’s Blue Cloud, Google’s App Engine and
various Apps, and Microsoft’s Windows Azure, to name but
just a few. It is notable that AT&T and Verizon, two major
telecom operators

in the United States, also expanded their
horizons into cloud computing by launching Synaptic Hosting
and
CaaS

(computing
-
as
-
a
-
service), respectively, in 2009.

4.1 Instruction

In spite of the facts above, cloud computing is still in its
infancy

with some debates on its concept and scope [3,8].
Some people think cloud computing is just another name
given to
utility computing
. Others treat it as an upgrade to
grid computing. Yet others argue that it is a revolution in
computing architecture. Given the fact that cloud
computing has a history of no more than 3 years, it is
natural to see such a situation and it is also natural that
the debates continue. In this chapter, we do not want to
give another definition of cloud computing nor outline its
boundary. Instead, our aim is to explore the following two
questions:

4.1 Instruction



Why is cloud computing so attractive?



What should we do to make the vision of
cloud computing really come true?

4.1 Instruction

To do so, we first examine the
differences

between cloud and grid computing in Section 2
with an aim to give a better understanding of the
concept and scope of cloud computing.
Afterwards, we turn to findings in computer
-
supported cooperative work (
CSCW
) research
and try to give answers to the two questions.
Our answers aim to give some
hints

for the
development of cloud computing rather than
solve all the challenges facing cloud computing.

4.1 Instruction

It is always effective to understand a new thing by
comparing it with the existing ones. Here, grid
computing is selected because it is the last computing
paradigm before cloud computing along the journey
toward

computing as a utility


and because it
looks very much like cloud computing in many
aspects. Figure 4.1 illustrates the paradigms of grid
and cloud computing. As both grid and cloud
computing are of many shapes and colors, in the
following we will concentrate our comparison on
their origins, system design, and users.

4.2 Cloud and Grid: A Comparison

4.2 Cloud and Grid: A
Comparison


Though cloud and grid look very similar in the sense
that they both aim to provide
enormous resources

to their users in an on
-
demand manner, differences
do exist between them. In this section, we explore
their origins. The purpose is to identify the driving
force behind grid and cloud computing and set a
solid foundation for other comparisons.

4.2.1 A Retrospective (
回顧
⤠噩)w


Grid computing

stems from academia, or more precisely the
field of high
-
performance computing (
HPC
), in the 1990s
with an aim to facilitate users to remotely utilize idle
computing power within other computing centers when the
local one is busy. This can be used to explain why the design
of grid adopts a
resource
-
centric approach
. The grid at the
early stage is termed compute grid. It was over nearly 1 years
of development that grid technology became generally
accepted as an effective way for

coordinated resource

sharing

and
problem solving

in
dynamic
,
multi
-
institutional
virtual organizations

[7]. As a result, compute grid evolved
into grid computing, drawing much attention and funding
from governments around the world.

4.2.1 A Retrospective View

Along this transition, grid technology gets into the scope of
enterprises. A milestone in the development of grid
computing is the convergence of grid and
service
-
oriented
architecture

(SOA) [13], resulting in first OGSA (
Open Grid
Services Architecture
) and then WSRF (
W
eb
S
ervice
R
esource
F
ramework). It is since then that the potential of
grid computing for business has fully unfolded. However,
owing to a
lack

of explicit business
model

and many other
factors that will be analyzed later, today there is
still no
widely accepted commercial
-
running grid service available
on the market

[12].

4.2.1 A Retrospective View

In contrast, cloud computing stems from the

industry

with an aim to sell resources as a service to its
customers.
Three kinds

of cloud services identified are
infrastructure as a service (
IaaS
, e.g., Amazon EC2 and
S3, and IBM Blue Cloud), platform as a service (
PaaS
,
e.g., Google App Engine, Microsoft Windows Azure, and
Salesforce Force.com), and software as a service (
SaaS
,
e.g., Salesforce SFA, Google Doc, and Microsoft
Dynamic CRM). Before cloud computing was born, SOA
has been prevalent for quite some time and much
experience has been gained with grid operation.


4.2.1 A Retrospective View

Cloud computing has a better starting point than any
other computing paradigms mentioned in Section 1.
Based on the lessons learned in the past, cloud
computing adopts a
user
-
and task
-
centric design

as
well as a

pay
-
as
-
you
-
go


business model. As a result,
users


experiences with cloud services are enhanced
greatly. Though cloud computing has a short history to
now, many products and services are already available
on the market.

4.2.1 A Retrospective View

Different starting points lead to different systems. In
this section, we will examine grid and cloud computing
from a system point of view. Aspects covered are the
technology behind the curtain and the system
management.

In technical language, the purpose of grid computing
is to integrate resources from different organizations
forming
a uniform resource pool
, which can provide
the ability that is impossible with a single
computing/data center

or that is beyond what a single
organization can provide.

4.2.2 Comparison from the Viewpoint
of System

Since these organizations are usually distributed
geographically and have their own rights in determining
vendors of their resources, the principal challenge facing
grid computing is to shield the inherent
heterogeneity

and
distribution of underlying resources. In contrast, the
purpose of cloud computing is to
divide resources into
smaller pieces

and delivers them to users in their desired
way whenever needed. Resources in cloud computing are
usually possessed or operated by a single organization and
physically, they can be centralized within the same
computing/data center

or distributed across multiple
computing/data centers,
homogeneous

or
heterogeneous
.

4.2.2 Comparison from the Viewpoint
of System

In other words, resource heterogeneity and distribution is no
longer a key problem in cloud computing. Instead, the principal
challenge is to improve
scalability
,
availability
, and
reliability
.

Grid computing achieves its purpose through so
-
called
grid
middleware
, a specific software product that provides
necessary yet generic services for shielding the inherent
underlying
heterogeneity

and
distribution
. Nowadays, there are
well
-
established standards for
grid middleware

and quite some
products and systems available, including Globus Toolkit (GT),
Unicore, and gLite, to name but a few. Core services provided
by the existing grid middleware are as follows:

4.2.2 Comparison from the Viewpoint
of System



Information Service
: maintains detailed up
-
to
-
date
knowledge of all the resources or services in a grid
environment. Based on the information service, suitable
resources or services are identified. Information service, is also
known as meta
-
data service or directly service.




Security Service
: resources and users in grids are from
multiple autonomous administrative domains. Security service
is deployed to guarantee secure cross
-
organizational resource
access that not only protects communications but also ensures
no violation of the local administration policies.

4.2.2 Comparison from the Viewpoint
of System



Data Management
: provides some useful mechanisms for data
access, data movement, data
replication

and location, and data
integration. In GT4, data management related services include GridFTP,
reliable file transfer (RFT), replica location service (RLS), data
replication service (DRS), and data access and integration (OGSA
-
DAI)
where OGSA
-
DAI is supplied by the

third
-
party

rather than the Globus
team.



Execution Management
: deployed to fulfill a task using the
resources provided, to track the progress of that task, and to manage
the computing result. The key task of
execution management

is to
determine where to run a given job according to the information
provided by the information service.

4.2.2 Comparison from the Viewpoint
of System

Cloud computing also achieves its purpose by
a
middleware layer
, which is called cloudware
in this chapter. According to the type of
service supplied (e.g., IaaS, PaaS, or SaaS),
cloudware may provide various
functionalities In summary, the core
functions of the cloudware are as follows:

4.2.2 Comparison from the Viewpoint
of System

4.2.2 Comparison from the Viewpoint
of System


Middleware

is
computer

software

that connects
software
components

for their applications. The software consists of a
set of services that allows multiple processes running on one
or more machines to interact. This technology evolved to
provide for
interoperability

in support of the move to
coherent distributed architectures, which are most often used
to support and simplify complex
distributed applications
. It
includes
web servers
,
application servers
, and similar tools
that support application development and delivery.
Middleware is especially integral to modern information
technology based on
XML
,
SOAP
,
Web services
, and
service
-
oriented architecture
.

4.2.2 Comparison from the Viewpoint
of System


Cloudware

is software that runs
on Internet
servers

rather than on your hard drive. They
require little or
no installation/download
. It is
also referred to as "Software as a Service"
(SaaS) and it has some connections to what
you may have heard called "
thin
-
client

devices" (hardware or even software where all
the
real processing

is done
on a server

and not
on the device you are using).



Maintains up
-
to
-
date information of the available
physical resources (e.g., their
capability
,
current load
,
and so on) as happens in grid computing. The
purpose is to provide a basis for other functions such
as virtual machine (VM) and application
management. However, unlike in grid computing,
this information is even transparent to developers.

4.2.2 Comparison from the Viewpoint
of System

4.2.2 Comparison from the Viewpoint
of System


Create and manage VMs according to
users’ request. To utilize resources
effectively, some algorithms or policies
are deployed to determine where to
create a VM, and when to start and stop
a VM based on the information
maintained. It is the duty of the
hypervisor to keep the resource
entitlement (
應得的權利
) of a given VM.




Application deployment, configuration, and
execution. Meanwhile, the execution progress
or status is also tracked.



User
management
,
pricing
, and
accounting
.
The purpose is to determine how users


requests are charged and maintain the actual
usage of resources by a certain request or
user.

4.2.2 Comparison from the Viewpoint
of System

Grid and cloud computing also show differences in
system management as stated in the following.

In grid computing, since
resources

are owned and
provided by
different autonomous organizations
, a
heavy burden

is raised to
system management
. For
each node, besides routine maintenance work,
system administrators must do much extra work to
coordinate local administration policies with global
ones. For example, they must make sure that
resources are shared in a way fully compliant (
順從
)
with local regulations.


4.2.2 Comparison from the Viewpoint
of System

4.2.2 Comparison from the Viewpoint
of System


In addition, they must separate environment
of local users from global ones to guarantee
reliability

and
security
. None of this work is
trivial. Moreover, since there are quite some
independent or interrelated components and
services involved in a grid,
installing

and
configuring

the grid software itself implies a
lot of work and presents some challenges
even to experienced system administrators.

On the contrary, resources in
cloud computing

are usually
possessed or operated by
a single organization

and as a
result, there is no need to coordinate different
administration policies. In addition, since each VM in
cloud computing provides an isolated and independent
running environment that is fully controllable by the user
who creates it, there is also
no need for system
administrators

to install and
configure
users’ programs
and to worry that they may interfere with each other and
cause system disasters. Therefore, the burden of
system
management

is greatly
eased
.

4.2.2 Comparison from the Viewpoint
of System

Different design philosophies lead to different
systems, which in turn place different constraints on
their users. This section compares grid and cloud
computing from the viewpoint of users. Two kinds of
users distinguished here are end
-
users who
consume
resources

and
services
, and
application

developers who develop new applications or
services using the resources and services supplied
by a grid or a cloud.

4.2.3 Comparison from the Viewpoint
of Users

Both grid and cloud computing provide two ways for end
-
users to consume resources supplied. The
first

involves using
pre
-
installed software

services through their own interfaces.
Since these services are designed to support the needs of
common users, in both cases end
-
users with special
requirements or habits have to adapt themselves to the
preset operation styles and instructions. Given the fact that
grids are usually operated by computer scientists

who know
little about the domain needs, the problem is especially
severe. The
second

involves running a task directly in a grid
or a cloud. This shows quite some differences in operations
and constraints as stated below.

4.2.3 Comparison from the Viewpoint
of Users

To run a task in a grid, end
-
users need to
specify

the type
and
quantity

of resources desired
, information used for
authentication (
確證
), the program to be run and its
arguments, sources of the input, and the output and its
destination. This is an annoying procedure that often makes
users stop. For example, globusrun
-
ws, the command
supplied by GT4 for job submission and management, has
30
options for submitting a job

and
15 options for monitoring a
job
. Though some tools have been provided as a help, much
work is still needed, for example, to compose a job
description file. Even if end
-
users have done all the work
perfectly, there are still other risks that prevent their jobs
getting done.

4.2.3 Comparison from the Viewpoint
of Users

One thing often ignored is that, because each
grid middleware

itself is a software system and has its special requirements on the
running environment, the existing grids are very tightly bound to a
specific operating system (OS), software libraries, or applications.
For example, gLite presently can only run on Scientific Linux 4 and
5, and Debian 4. As a result, if the program corresponding to a job
is not executable on the platform on top of which a
grid
middleware

is running, or if one or more libraries needed by the
program are unavailable, the job just could not get done even if
there are enough resources available. Another depressing thing is
that, because different grid systems in the real world deploy quite
different ways for users to express their needs, the job description
file prepared for one grid usually cannot be used in another one.

4.2.3 Comparison from the Viewpoint
of Users

In contrast, running a task in clouds is
much easier

and
faces
fewer constraints
. The only thing needed is to
reserve the desired resources and configure them for the
task to be run. Resource reservation can be done by
several mouse clicks and
resource configuration

makes no
difference when compared with activity using local
machines. Owing to the VM technology, users in cloud
computing can always set up an environment capable of
running their programs and thus the constraints laid by
grids on the running programs as mentioned above no
longer exist.

4.2.3 Comparison from the Viewpoint
of Users

Grid and cloud computing also impose different
requirements on application developers. Generally
speaking, developing applications on
a grid

is a
complex

task
. First, this implies that developers should know many
details about the grid environment, for example, the way to
stage data to and from the execution site, the way to find a
specific service to be invoked, to name but a few. In
addition, they must spend much time learning the related
APIs (
Application Programming Interfaces
)


even the
Simple API for Grid Applications (SAGA) has a document of
more than 300 pages.

4.2.3 Comparison from the Viewpoint
of Users

Second
, since the
grid

is a
highly dynamic environment
,
developers must pay more attention to such issues as
exception handling
,
fault tolerance
,
scalability
,
performance
, and so forth.
Third
, there are no mature tools
for debugging and measuring the behavior of grid
applications. Developers must struggle in their own ways
(e.g., setting up an experimental grid of their own to
monitor the behaviors of the application) to ensure the
correctness

of the application developed. It is easy to see
from the statements above that programming on a grid
raises a
heavy burden

on application developers.

4.2.3 Comparison from the Viewpoint
of Users

As a comparison,
programming in clouds is much easier
.
For IaaS, developers can always customize their working
environments with their familiar tools and configurations,
so there is almost no difference to programming on local
machines. For PaaS, nearly every service provider supplies
a platform SDK (
Software Development Kit
) and/or some
debugging tool. For example, Google App Engine provides
a fully featured local development environment with
which developers can write, for example, standard Java
applications.

4.2.3 Comparison from the Viewpoint
of Users

The Google plug
-
in for Eclipse provides an IDE
(
I
ntegrated
D
evelopment
E
nvironment) with
application wizard and debug configuration for Google
App Engine projects, making the development process
much easier and more efficient. Similarly, Visual Studio
2010 also provides a template for developers to write
Windows Azure services. In this way, the complexity of
the platform is shielded from developers and the pains
of application development are greatly eased.

4.2.3 Comparison from the Viewpoint
of Users