12
Cloud Computing: The emerging computing paradigm for the 21 st century and ahead Abstract The traditional computing paradigm prevailing today needs the application software, other programs and updates to be installed and run on our local machine. Upgrading the hardware and software as per the changing computational needs is a costlier affair. The issue is more obvious in the case of real-time and scientific applications, which demand high performance computing with large data centres to be set up and maintained. Recent advances in the Information and Communication Technologies have led to the evolution of an emerging computing model called cloud computing, which is considered as a paradigm shift from the traditional computing model. The basic idea of the cloud computing is to provide computing power as a utility like water, electricity, gas, telephony etc., in the form of services via the internet. Cloud computing facilitates the users to access scalable computing services viz., Infrastructure (IaaS), Platform (PaaS), and application Software (SaaS), on demand, from anywhere, using any internet enabled device. The model is considered as economical because users pay only for the amount of resources consumed (usually metered on time basis) while accessing the services. Moreover, the cloud resources are provisioned according to a Quality of Service (QoS) based SLA (Service Level Agreement) between the user and the service provider. It is expected that by the end of the next decade the entire world of information technology will be switched over to the mode of cloud computing. Since the cloud computing technology is in its infancy there is an ample scope for further research and advancement. In this paper we discuss about all the key issues related to this promising technology to provide a complete picture, which include cloud enabling technologies, both the basic and market oriented cloud computing architectures, key characteristics, pros and cons, a survey regarding the leading cloud vendors with current trends, and research challenges. We hope that the paper serves as a basis for the researchers and interested audience who wish to carry out further study in the area. Keywords: Cloud paradigm, research challenges, market oriented cloud architecture. 1. Introduction The idea of delivering the computing power as a utility was first put forth by John McCarthy [1] in 1961 and was reinforced by Leonard Kleinrock [2] in 1969, but, was lacking technological support to realize. The last decade has witnessed rapid advances in many key technologies pertaining to Information and Communication leading to the 21 st century vision of utility computing, which involves delivery of commoditized computing services like public utilities such as electricity, water, gas, and telephony [3]. Most prominent of these technologies belong to the category of parallel and distributed computing developed with an objective to achieve either high performance or high availability economically. The list of such technologies include, Cluster computing, Grid computing, Peer to peer computing, Ubiquitous computing and Mobile computing. Of the communication technologies backing these, web 2.0 is the key role player. Web services based Service oriented Architecture (SOA) [4, 5] and Virtualization technologies shown a way enabling the computing power to be delivered as a utility. The cloud symbol is used to represent any network in network diagrams [17]. But, very often it is used to represent the internet. The term ‘cloud’ as a metaphor for the internet has been around since 1990s. However, the first high profile usage of the term ‘cloud computing’ was by Eric Schmidt of Google in August 2006 and became popular since the day Amazon launched the Elastic Computing Cloud (EC2) [6,7,8] . Cloud computing can be considered as a confluence of all the technologies listed out earlier, and therefore may be treated as a superset of these technologies. Forming a thorough ground in this paradigm demands at least a brief knowledge about its enabling technologies. In the section 2 of this paper we discuss briefly the cloud forming technologies. We tried to present a more appropriate definition for the term cloud computing, a glossary of important terms related and cloud computing characteristics in section 3. Section 4 describes the architectures of cloud computing and its market oriented model. Section 5 gives a concise, but, comprehensive survey of various cloud platforms and services offered by different leading vendors. Section 6 discusses pros and cons of the cloud paradigm and finally in section 7 we outline the issues and challenges the cloud computing paradigm poses for the research community for its complete maturity and widespread adoption. 2. Cloud forming technologies There is a lot of ambiguity in the computer industry regarding cloud computing and it’s supporting technologies due to the overlapping that exists in their implementation. All these technologies are matured enough so that their complete discussion is beyond the scope of this paper. A brief discussion of key aspects related is presented below. Y GOVINDA RAMAIAH Research Scholar, Department of CSE, J N T University Hyderabad, Andhra Pradesh, India. E-mail: [email protected] Dr. G VIJAYA KUMARI, Professor, Department of CSE, J N T University Hyderabad, Andhra Pradesh, India. E-mail: [email protected]

Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

Embed Size (px)

DESCRIPTION

A survey paper on cloud computing

Citation preview

Page 1: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

Cloud Computing: The emerging computing paradigm for the 21st century and ahead

Abstract

The traditional computing paradigm prevailing today needs the application software, other programs and updates to be installed and run on our local machine. Upgrading the hardware and software as per the changing computational needs is a costlier affair. The issue is more obvious in the case of real-time and scientific applications, which demand high performance computing with large data centres to be set up and maintained. Recent advances in the Information and Communication Technologies have led to the evolution of an emerging computing model called cloud computing, which is considered as a paradigm shift from the traditional computing model. The basic idea of the cloud computing is to provide computing power as a utility like water, electricity, gas, telephony etc., in the form of services via the internet. Cloud computing facilitates the users to access scalable computing services viz., Infrastructure (IaaS), Platform (PaaS), and application Software (SaaS), on demand, from anywhere, using any internet enabled device. The model is considered as economical because users pay only for the amount of resources consumed (usually metered on time basis) while accessing the services. Moreover, the cloud resources are provisioned according to a Quality of Service (QoS) based SLA (Service Level Agreement) between the user and the service provider. It is expected that by the end of the next decade the entire world of information technology will be switched over to the mode of cloud computing. Since the cloud computing technology is in its infancy there is an ample scope for further research and advancement. In this paper we discuss about all the key issues related to this promising technology to provide a complete picture, which include cloud enabling technologies, both the basic and market oriented cloud computing architectures, key characteristics, pros and cons, a survey regarding the leading cloud vendors with current trends, and research challenges. We hope that the paper serves as a basis for the researchers and interested audience who wish to carry out further study in the area.

Keywords: Cloud paradigm, research challenges, market oriented cloud architecture.

1. Introduction

The idea of delivering the computing power as a utility was first put forth by John McCarthy [1] in 1961 and was reinforced by Leonard Kleinrock [2] in 1969, but, was lacking technological support to realize. The last decade has witnessed rapid advances in many key technologies pertaining to Information and Communication leading to the 21st century vision of utility computing, which involves delivery of commoditized computing services like public utilities such as electricity, water, gas, and telephony [3]. Most prominent of these technologies belong to the category of parallel and distributed computing developed with an objective to achieve either high performance or high availability economically. The list of such technologies include, Cluster computing, Grid computing, Peer to peer computing, Ubiquitous computing and Mobile computing. Of the communication technologies backing these, web 2.0 is the key role player. Web services based Service oriented Architecture (SOA) [4, 5] and Virtualization technologies shown a way enabling the computing power to be delivered as a utility. The cloud symbol is used to represent any network in network diagrams [17]. But, very often it is used to represent the internet. The term ‘cloud’ as a metaphor for the internet has been around since 1990s. However, the first high profile usage of the term ‘cloud computing’ was by Eric Schmidt of Google in August 2006 and became popular since the day Amazon launched the Elastic Computing Cloud (EC2) [6,7,8] . Cloud computing can be considered as a confluence of all the technologies listed out earlier, and therefore may be treated as a superset of these technologies. Forming a thorough ground in this paradigm demands at least a brief knowledge about its enabling technologies. In the section 2 of this paper we discuss briefly the cloud forming technologies. We tried to present a more appropriate definition for the term cloud computing, a glossary of important terms related and cloud computing characteristics in section 3. Section 4 describes the architectures of cloud computing and its market oriented model. Section 5 gives a concise, but, comprehensive survey of various cloud platforms and services offered by different leading vendors. Section 6 discusses pros and cons of the cloud paradigm and finally in section 7 we outline the issues and challenges the cloud computing paradigm poses for the research community for its complete maturity and widespread adoption.

2. Cloud forming technologies

There is a lot of ambiguity in the computer industry regarding cloud computing and it’s supporting technologies due to the overlapping that exists in their implementation. All these technologies are matured enough so that their complete discussion is beyond the scope of this paper. A brief discussion of key aspects related is presented below.

Y GOVINDA RAMAIAH Research Scholar, Department of CSE,

J N T University Hyderabad, Andhra Pradesh, India.

E-mail: [email protected]

Dr. G VIJAYA KUMARI, Professor, Department of CSE, J N T University Hyderabad,

Andhra Pradesh, India. E-mail: [email protected]

Page 2: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

Parallel computing, which involves simultaneous execution of more than one tasks can be considered as the starting point in the evolutionary scenario of cloud computing. Parallel computers, which aim at speeding-up the computational process, form the basis for high performance computing. Apart from the design of specialized algorithms and execution environments, parallel computing requires hardware support in the form of multi-core processors or multiple processors (Symmetric Multi Processor and Massively Parallel Processor systems) for significantly enhanced performance. The evolution of distributed systems, which involves independent networked computers working together for a single objective, contributed to a great extent with flexible and scalable architectures to achieve the high performance in a most economical manner. R. K. Buyya’s [3] effort in defining and distinguishing the cluster, grid and cloud indicates that all the three computing architectures basically belong to the category of distributed systems. The term cluster itself is ambiguous and Jack Dongarra [9] has formulated a framework in distinguishing different classes of clusters and characterizing parallel architectures that seems to be influential. In general, a cluster is an integrated collection of independent nodes (workstations or PCs) interconnected by a high-speed network that gives illusion of a single system. Clusters are confined to a building or department of an organization location wise, and to a single administrative domain for its operation. Grid computing, inspired by electrical power grid, involves a variety of geographically distributed computational resources like high-end servers, supercomputers, clusters, storage systems, data and other specialized resources, that work collectively for a large scale application demanding enormous resources [3,10]. Since a grid consists of loosely coupled heterogeneous resources and is usually a collaborative arrangement via a wide area network from multiple administrative domains, it lacks single system image. Moreover, the selection and aggregation of resources in a grid is done dynamically at run time. The grid scheduler called ‘resource broker’ enables quality of service (QoS) based resource allocation as per the user requirements [3]. A grid computing environment may be configured to provide computational, data, application, information, and knowledge services [10]. Parallel to the above, Internet and World Wide Web have evolved and revolutionized not only the IT industry, but, also our day to day life. Specifically, the second generation of the www, often designated as web 2.0, contributed to a great extent in the realization of utility computing model. The major characteristics of web 2.0 that reveal this fact are, its read/write nature (users can publish their own content as well as consume) allowing communication and collaboration between people, capability to use internet as a platform for programming, application development, deployment and delivery as a service, with APIs facilitating communication between applications [11,12,13]. The underlying technologies of web 2.0 enabling these characteristics are, Asynchronous JavaScript and XML (AJAX) that enable rich internet applications (RIAs), Cascading Style Sheet (CSS), XHTML, REST or XML Webservice APIs, XMLHTTPRequest (XHR) object capable of making dynamic HTTP calls, XACML over SOAP for access control between organizations and domains [11,12,13]. Web services based Service Oriented Architecture (SOA), which comprises loosely coupled interoperable services, is going to be a promising software engineering practice for agility in application development [4]. In SOA applications use services available over the www to develop new applications which may in turn be made available as services. A service is a well defined and self-contained business function that will not depend on the state of other services. The standard protocols that support communication between web services are SOAP and HTTP. Other technologies backing SOA include XML, WSDL, UDDI, and WS-Security standards. Finally, the most important technology that made the dream of delivering computing as a utility come true is virtualization . In fact the cloud can be considered as a pool of virtualized resources. Virtualization emulates a computer including all its resources (CPU, memory, network interfaces and other devices) by means of a software layer called hypervisor. By installing different operating systems (guest OS) on the hypervisor several virtual machines can be created and run simultaneously in isolation on the same physical machine [14]. Such virtual machines customized to the needs of the user are offered on demand and accessed via the internet. Further discussion on virtualization in the light of cloud computing is covered in the later sections of this paper. Fig.1 shows the relationship between clusters, grids and clouds. The fact being conveyed here apart from the differences that exist among them is, clouds can be implemented over other systems either individually or in any combinations based on the scalability requirements and available infrastructure.

Fig. 1 – Linkage between Clusters, Grids and Clouds

Grids

Clusters

Clouds

High end serves

Super computers and

other computing

resources

Page 3: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

3. Cloud computing

In this section we will focus on explaining the cloud computing paradigm by presenting and examining a concise and more appealing definition for cloud computing, its characteristics, types and related terminology.

Luis M. Vaquero [15] analyzed about 22 definitions for cloud computing in an attempt to give a comprehensive definition. Of all the definitions that were examined in this work R. K. Buyya’s definition is convincing and a bit closer to the utility computing model. Others are mostly excerpts or opinions of various experts. David S. Linthicum [17] presented a definition given by National Institute of Standards and Technology (NIST), and L. Wang [18] proposed his own. Besides the lack of commonality in these definitions, certain characteristics are attributed to cloud computing and are treated essential. They are:

a) On-demand provisioning of resources: Users can access the resources in the cloud whenever they need. b) Elasticity: The capabilities and resources in the cloud can quickly scale-up or scale-down dynamically

according to the changing user requirements. c) Location independence: To support the dynamic scalability, resources from different locations, often

geographically dispersed, need to be pooled. Users may not be aware precisely where the data and application are located.

d) Pay per use: The usage of resources is metered and charged based on a pricing model. Users pay only for the amount of resources they consume.

e) Ubiquitous access: Cloud resources should be accessed from any where via any internet enabled devices. f) Service-oriented: The cloud resources or capabilities are provisioned in the form of services via a web browser.

That means the required amount of computational resources like processing power, memory, storage, software

development platforms, applications all can be provided in the form of services via the internet. The only thing user need to access these services is, any internet enabled device like a PC, laptop, or a smart mobile phone the capability of which matches to the type of service being accessed. Also, the desired quality of service (QoS) can be obtained by means of a service level agreement (SLA) between the service providers and consumers through negotiation [3]. All these happen on a self-service basis through an automated system without any human interaction between provider and the service consumer. Thus, it is obvious that computing power can be provided as a utility and cloud computing is a promising paradigm that enables the utility computing model. The elastic nature of a cloud enables it to support multitenancy allowing many users access the cloud services simultaneously in isolation. Virtualization of resources plays a key role in achieving this. Also, this will create an illusion like cloud is a pool of infinite amount of computing resources. These entire characteristics together project the cloud computing purely as a business model. The thing we want to make clear is any computing system that possesses these characteristics only should be considered as a cloud. This notion also differentiates the clouds from other models like grids and clusters. However this will contradict the concepts of ‘private cloud’ and ‘community cloud’ to certain extent that we discuss later in this section under the heading ‘types of clouds’. Now, we propose the following definition for cloud computing in harmony with R. K. Buyya’s [3] idea of cloud as a utility computing model. The definition satisfies all the key characteristics of the cloud computing model discussed earlier. Some people may argue that, shifting the computation away from the local desktop itself satisfies the requirement to designate a system as a cloud. But, we point out clearly that this is one important feature to qualify a system to be designated as cloud but not sufficient enough to define it as a complete cloud computing paradigm. Proposed definition:

“Cloud computing is a distributed computing paradigm, which consists of a virtualized pool of dynamically scalable resources that are provisioned on demand in the form of metered services via the internet for ubiquitous access, through a quality of service based service level agreement between the service provider and the consumer, allowing the users to pay only for the amount of resources consumed over a period of time”.

Types of clouds: Depending on the way a cloud is deployed four types of clouds are found in the literature of cloud computing [6, 17, 19, 21, 24, 26, 27, 28, 29]. Figure 2 illustrates these concepts.

1. Public cloud: If the infrastructure or services that constitute a cloud are owned by a single organization and are accessible to anybody on a pay per use basis, the system is called public cloud. Public clouds are also called as ‘external clouds’. Since public cloud features all the characteristics described above, it may be treated as a perfect cloud computing model.

2. Private cloud: If the infrastructure or services that constitute a cloud are owned or leased by a single organization and are used exclusively by that organization, the system is called private cloud. The phrase ‘owned or leased’ has an implication that further clarifies and classifies the private cloud concept. As per this, private clouds may be ‘on-premise’ (owned) or ‘externally hosted’ (leased).

a. On-premise private cloud: if the infrastructure or services that constitute a cloud are hosted within the own data centre of an organization, exclusively for its internal use, it is called an ‘internal cloud’ or on-premise cloud. This system doesn’t satisfy certain characteristics of cloud computing; elasticity, location independence and pay per use, and therefore can not be treated as a full-fledged cloud computing model. However, it is best suited for the environments that demand high security with complete control. Also, the model suffers from the fact that it may not take the benefits of true cloud computing like economy of scaling, and freedom from administrative and maintenance issues.

Page 4: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

b. Externally hosted private cloud: If the infrastructure or services that constitute a cloud are leased from an external third party cloud service provider and used exclusively by a single organization for its internal use, it is called an externally hosted private cloud. It is obvious that this system satisfies all the requirements to be designated as a true cloud computing model. The issues like full guarantee of privacy can be resolved through an SLA between the service provider and the consumer.

3. Community cloud: If the infrastructure or services that constitute a cloud are formed by several organizations on sharing basis to support a community with similar objectives, and policies it is called a community cloud. Inspired by grid computing and self –management advances of autonomic computing, community clouds provide a vendor independent system by pooling the under utilized resources of users as a ‘virtual data centre’ , with nodes capable of performing all the three major roles; producer, consumer and coordinator [26]. Community cloud is considered as an open equivalent of a public cloud. Due to lack of vendor control, issues such as overutilization of resources by a single consumer arise. Even though A. Marinos [26] suggest a solution like introduction of ‘community currency’, the real possibility is still to be examined, and may face problem in popularising the concept. Again since the model is lacking the characteristics like pay per use and elasticity it will not qualify as a true cloud computing model. The nimbus platform based science cloud is an example for community cloud [47].

4. Hybrid cloud : If the infrastructure or services that constitute a cloud are formed by combining any two or all of the above three types (i.e. 1+2 or 1+3 or 2+3 or 1+2+3), the system is called a hybrid cloud. This model offers more flexibility by resolving the various issues associated with other models, for example, security and privacy concerns of public cloud, while preserving the characteristics of a true cloud computing paradigm.

A note on the intercloud initiative: An intercloud [6] is a ‘cloud of clouds’ similar to the concept of internet as network of networks. The idea is based on the assertion that, even though a cloud creates an illusion like a repository of infinite resources, there may be times at which a cloud’s resources (computational or storage) saturate and the required resources are obtained from other clouds on a pay per use basis. It is expected that the idea of intercloud creates new business opportunities among the cloud vendors. Cloud interoperability issues pose a great challenge to this initiative.

Intercloud and hybrid cloud systems both satisfy the phrase ‘cloud of clouds’. However, a distinction can be made with the assertion that, all hybrid clouds may be regarded as interclouds, but, all interclouds are not hybrid clouds because intercloud may be formed between the clouds of similar types. Cloud terminology:

Apart from the terms introduced related to the cloud computing so far, there are certain other terms that we come across in the literature and industrial scenario of cloud computing, which are given hereunder [30, 31]. Some more terms are described in the later sections of this paper.

1. Cloud app : application software designed to run in the cloud, which can be accessed via the internet as a service

2. Cloud bridge: Integrating the components of an application with multiple cloud environments (internal or private or public)

3. Cloud portability: The feasibility of moving applications developed in one cloud environment to another cloud environment. It depends on the underlying infrastructure and platform provided by different vendors.

4. Vendor lock-in: The inability to move an application between the clouds provided by different vendors. If the application can not be moved between any clouds including an on-premise cloud, the term ‘cloud lock-in’ is used.

Figure 2: Types of clouds

Intercloud

Public

cloud

Public

cloud

Public

cloud

On-Premise

cloud

Private

cloud

Hybrid cloud

Page 5: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

5. Cloudburst: The dynamic provision of additional resources by a public cloud to an application running on a private cloud when the workload exceeds the capacity of the private cloud. The term is some times attributed to the failure of a cloud computing environment to meet the sudden increase in the workload.

6. Cloudstorm: when multiple cloud computing environments are connected together, we say cloudstorm occurred.

7. Cloudware: infrastructure level software that enables building, deploying, running or managing applications in a cloud computing environment.

8. Cloudsourcing: Outsourcing the applications or storage via the cloud services

9. Cloudwashing: Using the term ‘cloud computing’ for the existing products and services a company offers to gain market benefits. A vendor who does the same by rebranding his products and services is called‘cloud envy’.

10. Cloud operating system: Software designed to manage the complex resources in a cloud computing environment and serves as a platform to run the applications in the cloud, just like an operating system that manages the resources of a computer.

4. Cloud computing architecture

All the kinds of services (Everthing-as-a-Service, XaaS) offered by cloud computing can be categorized in to three classes; Infrastructure, Platform, and Software [ 6, 15, 22, 26, 29]. These are analogous to operating system, Program development tools and application software in a traditional computing paradigm. Based on this notion the general architecture of cloud computing paradigm can be represented in the form of four layers as shown in the figure 3. Layer 1 - Hardware: Consists of the physical infrastructure that may contain datacentres, Clusters and Grids with massive amounts of storage, CPU, memory and, network and any other specialized resources.

Layer 2 - Infrastructure-as-a Service (IaaS): Contains virtualized pool of hardware resources which are configured in terms of CPU, memory and storage as per the needs of the consumers and are offered in the form of ‘virtual machine instances’ on demand. The target users for this service offering are developers, system administrators and operators.

Layer 3 - Platform-as-a-Service (PaaS): Offers program or application development framework and application deployment services on demand, through a cloud operating system or resource management software in a transparent manner hiding the complexity of the underlying hardware and infrastructure layers. The service also facilitates the scaling of infrastructure as demanded by the application execution. Application developers and software architects are the target users for this kind of service.

Layer 4 - Software-as-a-Service (SaaS): Services offered in this layer includes ‘application instances’ delivered on demand to the end user. Cloud Apps supporting this service can exploit the scalability of the cloud for better performance. Users at this level enjoy all the benefits of the cloud computing paradigm because entire lower level complexity is made transparent. Their role is limited to simply plug-in to the cloud, use the service and pay only for the resources consumed. One point to be noted with regard to SaaS is, it is based on single instance-multitenant model. That means, multiple end users access a single instance of the application running on the cloud [6,29]. Also, SaaS offering can be treated as cloud computing, but, cloud computing doesn’t mean SaaS alone, which means the terms SaaS and cloud can not be used interchangeably [6].

Market oriented cloud computing:

Since cloud computing is basically a business model, its adoption should be contemplated in view of the global market it creates. Commendable work has been done by R. K. Buyya and his team [3, 32] in this direction proposing architectural reference model for market oriented cloud computing, and global cloud exchange scenario. Built over this idea we propose a modified architecture for market oriented cloud computing, while preserving the idea of global cloud exchange. The key ideas of this architecture as brought out by Prof. Buyya include, User-driven service management based on the user’s profile and service requests: This can be achieved by service level agreement (SLA) based resource allocation and management to maintain the (QoS) requirements of the user. Incorporation of risk management strategies: Identifying, assessing and managing the risks involved in the execution of applications as per the user requirements. Autonomic resource management capabilities: Changes in existing service requests being processed and new service demands must be effectively managed by the system itself. The typical QoS parameters usually included in an SLA are: time, cost, reliability, and security. Additional parameters like availability and privacy may also be included. The central idea to be maintained is the customer satisfaction like in any general business environment. Dynamic SLA negotiation mechanism and efficient virtual machine resource allocation mechanism are required to be incorporated to deal with the competitive multitenancy environment. Our proposed market-oriented cloud computing architecture is depicted in Figure 4. For better comprehension of the idea we tried to incorporate the various market-based components in the general layered architecture of cloud computing discussed earlier, specifically to show where they fit in to the cloud computing scenario.

Page 6: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

Figure 3: Cloud computing architecture

We discussed earlier in the general cloud computing architecture that all the cloud resource management software belongs to the layer 3, the service offering of which is designated as PaaS. The details of such components for the market environment are shown in the figure 4. The service requests from the users or brokers on behalf of the users are submitted to the service request examiner and admission control component exposed as a service via the web browser. Up on receiving the request, the request examiner and admission control module analyses the QoS requirements to decide whether to accept the request or not. For this it needs the interaction between the SLA manager, virtual machine monitor, and the resource manager and scheduler components for the availability and existing status of the resources. The role of the SLA manager is to ensure that the QoS parameters are satisfied. The VM monitor continuously checks the availability of virtualized system resources. In case the existing system status cannot meet the QoS parameters, the request is rejected; otherwise the requests are accepted and communicated to the resource manager and scheduler component which allocates the resources. Thus, the type of service requested (IaaS or PaaS or SaaS) is delivered. The accounting mechanism maintains the logs and service usage details. The logs maintained can be used by the resource manager and SLA manager components to serve the request examiner and admission control module in making effective decisions regarding service requests. The service usage details maintained by the accounting component are used by the metering mechanism, which converts the same in to the form of chargeable units. These units are generally in the form of amount of resource consumed on time basis. The billing mechanism aids in the generation of bills for the units of resources consumed and delivers the same to the user. Billing rates may depend on the various factors like peak or off-peak time usage, demand for the resources and type of subscription (hourly or monthly or yearly).

The global cloud exchange:

In order for cloud services to be commoditized through standard interfaces for its complete maturity, R. K. Buyya [3] suggested a global cloud exchange model based on the real-world exchanges. A schematic diagram of the same is presented in figure 5. Four categories of people are involved in the whole system: Providers, brokers, users and auctioneers. The roles of brokers and auctioneers can be automated. A service provider publishes his offers in a global market directory. They can change the prices of services through a mechanism that takes care of the current market conditions, demand and the availability of resources. Users or the enterprises seeking the cloud services place the request for capacity with a broker who is capable of processing many requests. Brokers, through negotiation or bidding buy the capacity from the providers and sublease it to the consumer. These bids are cleared by the auctioneers periodically. All the three parties, consumers, brokers and providers are bound to an SLA for QoS requirements and related compensations. A service level agreement specifies the details of services to be provided, quality agreed up on, penalties for violating the agreement or failure in providing the expected quality of service etc. The financial transactions with respect to the SLAs are facilitated through the banking system. The possibilities of adopting such system universally are still to be explored, which poses many challenges.

Hardware-Datacentres, Clusters and Grids

CPU Memory Storage Network and

other resources

Infrastructure-as-a-Service (IaaS)

Platform-as-a-Service (PaaS)

Software-as-a-Service (SaaS) Salesforce.com,

Google Apps

Microsoft Azure,

Google App Engine

Amazon Web

Services, GoGrid

Target Users

Vendors

Developer

Administrator

Operator

End user

Page 7: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

Figure 4: Proposed Market oriented cloud computing architecture

Figure 5: Global cloud exchange

Platform-as-a-Service (PaaS)

Hardware-Datacentres, Clusters and Grids

CPU Memory Storage Network and

other resources

Virtual machines (VMs) - IaaS

Software-as-a-Service (SaaS)

Service

consumers/

brokers

Cloud interface (Web browser)

SLA

Manager

Resource

Manager and

scheduler

Execution

Manager

Request examiner and

admission controlling service

Accounting

Metering

Billing Program developing tools and

environment VM

Monitor

Service requests Service delivery

Broker 1

Broker 2

Broker N

Directory

Bank

Auctioneer

User

User

Enterprise

Resource

manager

Compute Cloud

Compute Cloud

Storage Cloud

Storage Cloud

Publish offers

Cloud

Publish offers

Cloud

Global cloud market

Cloud

Negotiate/bid

Cloud

Negotiate/bid

Cloud

Request

capacity

Request

capacity

Request

capacity

Page 8: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

5. State-of-the-art in cloud computing- Critique of existing scenario

Before presenting the existing cloud scenario in the market, we propose a crucial notion to resolve further the ambiguity regarding the cloud computing and the related product technologies. Firstly, based on our discussion so far, one important conclusion that can be made regarding cloud computing is, it involves accessing the computing power ‘generated’ somewhere as an utility in the form of services remotely and ubiquitously. Secondly, the layered architecture of cloud computing suggests that the computational resources can be ‘delivered’ in three forms of services; infrastructure, platform, and software. Therefore, the idea we strongly project is, “only the delivery of the computational services can be regarded as cloud computing, but, not all the software products and technologies that aid in this process”. We brought out this issue because, many software vendors selling their products that only aid in building cloud infrastructure are campaigning that they are offering IaaS, PaaS, and SaaS, projecting themselves as true cloud computing vendors. Even the research community also in their literature are projecting the idea with misconceptions. This is a major reason for the prevailing ambiguity regarding cloud computing among both the industry and academia. We further argue that computational power cannot be provided free of cost through cloud computing. Offering the computational power free of cost is something similar to offering electricity free of cost. The projects being regarded as ‘open source’ like Eucalyptus [44], Nimbus [45], Open Nebula [43], AbiCloud [46] are all offering the software that is used to build the cloud infrastructure, but, not cloud computing. Open source software is available free of cost, but, where to run it? What we mean is there should be underlying hardware (VM/IaaS layer) to support PaaS and SaaS. Similarly the WSO2’s Stratos [34] and Heroku [33] are being regarded as open source PaaS providers. But, what is being offered by them is either beta version or service with limited capacity. WSO2 Stratos is a open source software that aids in provisioning PaaS over an on-premise cloud or leased private cloud. Its hosted version that runs on WSO2’s infrastructure is a beta version helps for test drive. Similarly, Heroku is hosting PaaS in the form of ‘dyno’s and ‘worker’s. A dyno is a web process running user code responding to HTTP requests, and worker is a process that runs users code processing jobs from a queue. Use of only one worker and one dyno is free and using capacity beyond that attracts charges prescribed. The popular PaaS offering vendors like Microsoft (Azure platform) and Google (App Engine) also charge for the usage that crosses the amount of resources offered for free or test drive. ‘Aneka’ platform [3] developed by Manjrasoft Pty Ltd. is also a software that helps in building and managing the on-premise cloud, and private or public cloud, but, is not a PaaS offering. Same reasoning applies to SaaS vendors like Salesforce.com (Customer Relationship Management) [35], Oracle (CRM) [36], Microsoft (Live Mesh) [37], and Netsuite ( CRM, ERP etc.) [38]. Hence, we claim that cloud computing is essentially a business model with tremendous scope and opportunities for widespread adoption.

Now, we provide a snapshot of current trends with the leading vendors discussed above, for all the three delivery models of cloud computing (IaaS, PaaS, and SaaS). We give a minimum of three example vendors for each kind of service.

The IaaS vendor-product matrix:

Feature Amazon Web Services [39] GoGrid [40] Rackspace cloud [49]

Services offered Elastic compute cloud( EC2) offering Windows and Linux based virtual server images, Simple Storage service( S3) Simple DB, Simple Queuing Service, Hybrid hosting through Virtual Private Cloud

Windows and Linux based server images, Cloud storage , Hybrid hosting

Linux and Windows based server images, Cloud storage(cloud files), Hybrid hosting

Virtualization Xen Virtualization technology Xen Virtualization technology Xen Virtualization technology

Programming Framework Supports Map reduce model, Java, PHP, Python, and .NET

GoGrid's API is language independent , Supports Java, Python Ruby on Rail, .NET

Supports Java, Python , Ruby on Rail, .NET

Interoperability With Eucalyptus based clouds With windows Azure In progress with NASA’s Nebula based cloud computing platform

Security and compliance SAS 70 Compliance, VPN Options SAS 70 Compliance, Hardware VLAN Segmentation Dedicated Firewall Options VPN Options

SAS 70 Compliance, Hardware VLAN Segmentation

SLA Available with 99.95% uptime Available with 100% uptime Available with 100% uptime

Pricing model Pay-as-you-go

VM instances are charged differently with three schemes; on-demand (hourly basis), reserved (1 year or 3 years or hourly) and spot instances (price varies based on demand and supply)

Pay-as-you-go

Storage costs free upto 10GB, and chargeable beyond monthly. Free data transfer in and out, Server usage is billed by ‘RAM hour’. Charged hourly and monthly, Volume based discounts

Pay-as-you-go

Storage costs on monthly basis

Separate charges for windows and linux server images basedon RAM and disk sizes

Page 9: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

The PaaS vendor-product matrix:

Feature Microsoft’s Azure [48] Google’s App Engine [41] Salesforce’s Force.com [42]

Services Windows azure Compute, Storage, Virtual network and Content Delivery network,

SQL Azure database, Data Sync and Reporting services

Platform for developing and hosting CloudApps

Hosted SQL in enterprise version

Platform for developing and hosting CloudApps

Collaboration platform

Virtualization Hyper-V Hypervisor Multi tenancy based architecture Multitenant kernel architecture, Alliance with VMware (VMforce) to support Java applications

Programming Framework, Languages

and tools

Java, PHP, .NET, C#, Ruby

Training kit, SDK, AppFabric

Map reduce Programming model,

Java, Python, Eclipse, SDK for Python and Java, web toolkit, and APIs

Python, PHP, Java, .NET, Ruby, Eclipse based IDE, programmable UI, web tool kit, Apex code editor

Interoperability With any other platform containing the language libraries same as Azure.

With platfroms of clouds based on same language framework, With IBM middleware environment and force.com

Portability of applications with clouds based on same language framework. In progress with Google’s app Engine

Security and compliance

Firewalls, SSl client certification, filtering routers, optional sandboxing technology, audited administrative operations, US safe harbour, ISO/IEC 27001:2005 and SAS 70 TypeI and TypeII certified

Sandboxing for Java and Python based applications, US safe harbour

All Physical, host, database, logical network, and transmission securities, US safe harbour, ISO27001, SAS 70 typeII and Sys trust certified

SLA Available with 99.9% uptime Available with 100% uptime Available with 99.9% uptime

Pricing model Based on compute, storage and data transfers. Half-yearly subscription

Free up to 500MB of storage for an application and up to 5 million page views per month, usage beyond this attract charges based on CPU time

Free, enterprise, and unlimited service based

The SaaS vendor-product matrix:

Feature Oracle [36] Microsoft’s LiveMesh [37]

NetSuite [38] Salesforce.com [35]

Services CRM with various deployment models; on-

premise, Privately managed

on-demand, Shared on-

demand , and Hybrid CRM

Sync service for program settings transfer and file transfer between different user computers, Syncing files free up to 25GB of live mesh storage (Sky Drive), office web apps, remote PC connection for ubiquitous access.

Financial accounting and Enterprise Resource Planning , CRM , and Ecommerce softwares on demand through suitecloud.

CRM on demand with sales cloud (for sales and marketing), and service cloud (for customer service)

Security and compliance

Disaster recovery with replicated centres at different geographical locations, data security with 128-bit SSL encryption and advanced intrusion detection , physical security features such as biometric access restrictions and round the clock armed guards, Multilevel VLAN architecture, Multilevel redundant firewalls

Private folders to prevent others access the files,

multiple layers of data redundancy, comprehensive physical security and disaster recovery, User role-based Access, layers that separate data from application so that users can access only the application not others data, 128-bit Secure Socket Layer Data Encryption, well defined privacy policy,

ISO27001 and SAS 70 Type II certifications

SLA Available Available Available Available with 99.9% or more uptime

Pricing model Per user per month basis, starting at $75

Beta version, free currently up to 25GB

Per user per month or Per user per year basis

$129 per month per user

Per user per month basis, sales cloud (single user, group, professional, enterprise, and unlimited models) min $5 and max $250, service cloud (professional, enterprise, unlimited models) min$65 and max $250

Page 10: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

6. Key benefits of cloud computing

There are many positive aspects driving the cloud computing paradigm from which certain powerful benefits can be derived. The following are key benefits of cloud computing.

Reduced Costs: No capital or setup costs and no hardware or software maintenance costs involved internally. Due to large-scale multitenancy the costs incurred by the vendor are distributed among several users. Agility : Faster setup and application development, Instant starting or stopping of the services as needed. Dynamic scalability: Even sudden increase in workloads is smoothly handled by quickly and efficiently scaling up in a cost effective manner. When the resources are no more needed the system will quickly scale down. Flexibility : Quick Application deployment without setting up the base infrastructure in a very convenient manner. Many options to choose between the platforms for application development Simplified maintenance: Freedom from data centre administration, operation, and maintenance. Also, the task of maintaining the upgraded software, patches, and licenses is reduced to the ground level. Ubiquitous access: This is one of the major features of cloud computing that can also be regarded as a crucial benefit, because, services can be accessed from any where any time on demand. Shift in business Focus: Instead of paying attention to setup and maintain the infrastructure locally, enterprises can focus on product innovations and application developments.

7. Adoption issues for cloud computing and research challenges

Despite the key benefits, there are certain issues [21, 23, 28, 53], which are limiting the cloud computing from widespread adoption. Some people designate them as disadvantages or drawbacks, but, in our view these are temporary shortcomings that too in this evolving stage of cloud computing only, which are completely resolvable either technologically or by taking certain measures. These issues are being addressed by both industry and research community in order to realize the 21st century vision of delivering computing power as a utility. Security and privacy of sensitive data and information and similar risks are being regarded as topmost concerns and as major hurdles for widespread adoption of cloud computing. There may be several reasons for this; the consumer looses direct control over the critical data once it is uploaded to the cloud, lack of knowledge regarding data location, large-scale multitenancy that prevails in the cloud computing environment, lack of proper disaster recovery mechanisms, Lack of proper data segregation mechanisms after usage, Lack of investigative support for illegal activities, lack of privileged user access capabilities, unwillingness of the provider to undergo auditing and lack of regulatory compliance, short-term existence of the cloud vendor, lack of support in case of security breach [54]. On the other side security is being viewed as one of the benefits of cloud computing because cloud can serve as hot backup with critical data replicated in the cloud, however, negative aspects dominate often. The problem can not be solved 100%, but, can be reduced to maximum extent by the measures a cloud vendor takes against security and privacy concerns and building an utmost level of trust among the users. Apart from the challenges posed in addressing the above problems, other major security challenges pertaining to cloud computing that need comprehensive solutions are: 1) Prevention from denial of service, side channel, authentication, and man-in-the-middle attacks [50]. 2) Virtualization hypervisor flaws leading to ability to insert code in to virtual machines, disclosure of unauthorized information, potential disruption of service and so on [51]. Vendor lock-in and interoperability can be regarded as the second major concern. The issue arises mainly because of the lack of portability and integration of cloud apps and data with the clouds hosted by different vendors. The main reason for this is the lack of open/common standards industry-wide. Certain vendors initiated measures in this direction collaboratively, and, with an authoritative control over the industry worldwide imposing standards, the problem can be mitigated. Data transfer bottlenecks as pointed out by Berkely [19] is another obstacle restricting the user community that deal especially with data intensive applications (e.g. High Performance Computing, Data Mining) to switch over to cloud computing. Many of the vendors charge for data transfers in and out as we discussed in our survey earlier, reducing the economical benefits. Even the measures like, choosing the closely located vendor, shipping the disks containing the data also may not solve the problem to full extent. This will create opportunity for Networking research community to derive methods for reduced WAN costs and increased internet speeds. Another problem identified by Clarke [52] in view of the end user, restricting the widespread use of cloud computing currently is, lack of SaaS applications that match the user needs in their daily routine. Most of the existing SaaS vendors are offering business related CRM and financial management applications. While the need for computerization and automation of many systems still exists, further developments should be in view of the cloud computing. Conversion of all the available application software today in to services to be delivered in the form of SaaS is the next step towards wide applicability of cloud computing paradigm. It may take considerable time even in the existing scenario of rapid development of the technology, while creating tremendous business and employment opportunities. In addition to the problems pertaining to the adoption discussed above, there are certain other technical challenges posed by the cloud computing to the research community. Important of them demanding immediate attention are, automated resource allocation based on SLA to meet QoS requirements of the user [3], Lack of agility in VM migration in response to sudden workload changes, effective server consolidation by observing fluctuating resource utilization patterns of VMs, designing energy-efficient data centres which aim to achieve balanced energy savings and application performance, Data centre traffic analysis and management in view of the applications based on the programming models such as MapReduce, Compatibility issues between internet scale file systems (GFS, HDFS) on

Page 11: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

which software frameworks such as MapReduce work and legacy distributed file systems [28], Storage scalability [19,28], and performance unpredictability in case of HPC work load [19] demanding new methods of scheduling for cloud computing environment.

8. Conclusions

Cloud computing is unarguably a revolutionary technology promising the delivery of computing power as a utility. The model is considered as paradigm shift because the applications run in the datacentres located remotely rather than installed and run on the local machine. The cloud computing architecture suggests three forms of services, IaaS, PaaS and SaaS for the delivery of computational power via the internet. In this paper we discussed all the key aspects of cloud computing and proposed a new concise and appealing definition. We tried to alleviate the ambiguity related to various aspects of cloud computing and its related technologies with our clear cut views. We reinforced the ideas of market oriented cloud model and the concept of global cloud exchange for further work in the direction of implementation. The state-of-the-art in cloud computing is presented in the form of a brief survey regarding leading IaaS, PaaS and SaaS vendors giving a snapshot of the current market scenario. Also, we presented a brief discussion of major issues concerned with adoption of cloud computing and related technical and research challenges. We strongly believe that the cloud computing paradigm transforms the entire IT scenario ensuring the realization of the 21st century vision of delivering computing power like any other public utility with in the coming few years.

References:

[1] http://computinginthecloud.wordpress.com/2008/09/25/utility-cloud-computingflashback-to-1961-prof-john- mccarthy/ [2] L. Kleinrock, An Internet vision: the invisible global infrastructure, Ad Hoc Networks 1 (2003) 3–11, Elsevier. [3] R Buyya, C S Yeo, S Venugopal, J Broberg, I Brandic, Cloud computing and emerging IT platforms: Vision, hype, and reality for delivering computing as the 5th utility, Future Generation Computer Systems, Vol. 25, No. 6. (June 2009), pp. 599-616. [4] Ed Ort, Sun microsystems, April 2005, Service-Oriented Architecture and Web Services: Concepts, Technologies, and Tools, Technical article. [5] J McGovern, S Tyagi, M Stevens, S Mathew, July, 2003, Java Web Services Architecture, book chapter 2, pp. 35-63 [6] http://en.wikipedia.org/wiki/Cloud_computing [7] http://www.johnmwillis.com/cloud-computing/who-coined-the-phrase-cloud-computing/ [8] http://www.google.com/press/podium/ses2006.html

[9] Jack Dongarra, Thomas Sterling, Horst Simon, Erich Strohmaier, High-Performance Computing: Clusters,

Constellations, MPPs, and Future Directions, Computing in Science and Engineering, vol. 7, no. 2, pp. 51-59,

Mar./Apr. 2005 [10] Mark Baker, Rajkumar Buyya, Domenico Laforenza, Grids and Grid technologies for wide-area distributed computing, Software: Practice and Experience, Volume 32, Issue 15, pages 1437–1466, December 2002

[11] Graham Cormode and Balachander Krishnamurthy. Key differences between Web1.0 and Web2.0. First Monday,

13(6), June 2008

[12] http://www.roseindia.net/Technology-revolution/web2.0/Web%202.0%20Characteristics.shtml

[13] Tim O'Reilly, What is Web 2.0, http://oreilly.com/web2/archive/what-is-web-20.html [14] Virtualization overview, vmware white paper. [15] Luis M. Vaquero, Luis Rodero-Merino, Juan Caceres, maik Lindner, A break in the clouds: Towards a cloud definition, ACM SIGCOMM Computer Communication Review, Volume 39, Number 1, January 2009, pp. 50-55. [16] http://cloudscaling.com/blog/cloud-computing/debunking-the-no-such-thing-as-a-private-cloud-myth [17] David S. Linthicum, Cloud computing and SOA convergence in your enterprise- A step-by-step guide, Addison- Wesley. [18] Lizhe Wang, Gregor von Laszewski, Andrew Younge, Xi He, Marcel Kunze, Jie Tao and Cheng Fu, Cloud Computing: a Perspective Study, New Generation Computing, Springer,Volume 28, Number 2, pp 137-146 [19] Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy H. Katz, Andrew Konwinski, Gunho Lee, David A. Patterson, Ariel Rabkin, Ion Stoica and Matei Zaharia, Above the Clouds: A Berkeley View of Cloud Computing, Technical Report No. UCB/EECS-2009-28, February 10, 2009 [20] http://www.readwriteweb.com/cloud/2010/02/oracles-private-cloud-not-a-cloud-says-vogels.php [21] Won Kim, Soo Dong Kim, Eunseok Lee, Sungyoung Lee, Adoption Issues for Cloud Computing, Keynote, Proceedings of MoMM, December 14–16, 2009 [22] Christian Vecchiola, Xingchen Chua, and Rajkumar Buyya, Aneka: A Software Platform for .NET-based Cloud Computing, GRIDS-TR-2009-4, Grid Computing and Distributed Systems Laboratory, The University of Melbourne, Australia, May 25, 2009 [23] Won Kim, Cloud Computing: Today and Tomorrow, JOURNAL OF OBJECT TECHNOLOGY, Vol. 8, No. 1, January-February 2009, pp.65-72 [24] Frank Doelitzscher · Anthony Sulistio, Christoph Reich · Hendrik Kuijs · David Wolf, Private cloud for collaboration and e-Learning services: from IaaS to SaaS, Technical Report CRL-2010-01, Hochschule Furtwangen

Page 12: Cloud Computing-The Emerging Computing Paradigm for the 21st Century and Ahead

University, Feb. 2010, Computing, Springer-Verlag, July 2010 [25] D. Nurmi, R. Wolski, C. Grzegorczyk, G. Obertelli, S. Soman, L. Youseff, and D. Zagorodnov. The Eucalyptus open-source cloud-computing system. 2008. UCSD Tech.Rep. 2008-10 [Online], http://eucalyptus.cs.ucsb.edu/ [26] Alexandros Marinos, Gerard Briscoe, 2009, Community cloud computing, In First International Conference Cloud Computing, CloudCom, volume 5931 of Lecture Notes in Computer Science, Springer ,pp 472–484 [27] Junjie Peng, Xuejun Zhang, Zhou Lei, Bofeng Zhang, Wu Zhang, Qing Li, Comparison of Several Cloud Computing Platforms. Second International Symposium on Information Science and Engineering, pages 23–27, 2009 [28] Qi Zhang, Lu Cheng, and Raouf Boutaba. Cloud computing: state-of-the-art and research challenges. Journal of Internet Services and Applications, vol 1,April 2010, pp.7–18 [29] Torry Harris Business Solutions, White paper, Cloud computing - An Overview [30] http://www.mkpress.com/CloudReading/#Cloud_Computing_Glossary [31] Anthony T. Velte, Toby J. Velte, Robert Elsenpeter, Cloud Computing:A Practical Approach, Appendix, McGraw Hill. [32] Rajkumar Buyya , Suraj Pandey , Christian Vecchiola, Cloudbus Toolkit for Market-Oriented Cloud Computing, Proceedings of the 1st International Conference on Cloud Computing, December 01-04, 2009, Beijing, China [33] http://heroku.com/pricing [34] http://wso2.org/aggregator/sources/32 [35] http://www.salesforce.com/in/?ir=1 [36] http://crmondemand.oracle.com/en/index.htm [37] https://www.mesh.com/welcome/default.aspx [38] http://www.netsuite.com/portal/home.shtml [39] http://aws.amazon.com/ [40] http://www.gogrid.com/ and http://wiki.gogrid.com/wiki/index.php/Main_Page [41] http://code.google.com/appengine/ [42] http://www.salesforce.com/platform/ [43] http://www.opennebula.org/ [44] http://open.eucalyptus.com/ [45] http://www.nimbusproject.org/ [46] http://www.abicloud.org/display/abiCloud/Home [47] http://www.scienceclouds.org/ [48] http://www.microsoft.com/windowsazure/ [49] http://www.rackspacecloud.com/ [50] Michael Gregg, 10 security concerns for cloud computing, Global Knowledge training LLC, expert reference series of white papers. [51] Joyent, Security in public and private cloud infrastructures, white paper [52] Roger Clarke, User Requirements for Cloud Computing Architecture, proceedings of the 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing, 2010, pp 625-630. [53] Taneli Korri, Cloud computing: Utility computing over the Internet, Technical Report,TKK-CSE-B5, Helsinki University of Technology [54] Gartner: Seven cloud-computing security risks http://www.networkworld.com/news/2008/070208-cloud.html