The Trend and Challenges of Cloud Computing: A Literature Review

One of the most significant innovation in the Information Technology (IT) industry after the introduction of the personal computer and the internet is Cloud computing. The shift to cloud is a landmark in the IT industry and has raised keen interest both from the industrial community and academia. It is a new virtualization model for the quick provisioning of shared resources, software, applications and services over the internet to fulfill the elastic demand of the customer with minimum effort or interaction with the service provider. Thus cloud computing has become an interesting and increasingly essential trend. This paper presents a detailed review of Cloud Computing. It includes a discussion of the main service model of cloud computing, the general deployment models, the characteristics of Cloud computing and terminologies adopted in cloud computing. The paper also presents the trend of cloud computing and its challenges. Keyword: challenges, cloud computing, customer, trend, web


Introduction
Advances in the field of network based computing and applications on demand have led to an explosive growth of application models such as cloud computing, software as a service, community network, web store, and so on. As a major application model in the era of the internet, cloud computing has become a significant research topic of the scientific and industrial communities since 2007 (Qi and Gani, 2012). Furthermore, Cloud computing has generated a lot of interest and competition in the industry and it is recognized as one of the top 10 technologies of 2010 (Tripathi and Mishra, 2011;Sharma, 2012). It is the next generation in computation. Maybe Clouds can save the world; possibly people can have everything they need on the cloud. It is the next natural step in the evolution of on-demand information technology services and products (Mirzaei, 2008).
Basically, a cloud is a visible mass of particles of water or ice suspended in the atmosphere. It is any similar mass in the air particularly of smoke or dust. The Internet is a worldwide network connecting millions of computers that use the Transmission Control Protocol/Internet Protocol (TCP/IP) network protocols to facilitate data transmission and exchange. Therefore the term "cloud" can be used as a metaphor for the Internet.
Cloud computing is an internet based service delivery model which provides internet based services, computing and storage for users in all markets including financial, health care & government (Sharma, 2012). It is a style of computing in which IT-related capabilities are provided "as a service", allowing users to access technology-enabled services from the Internet (i.e., the Cloud) without knowledge of, expertise with, or control over the technology infrastructure that supports them (Mirzaei, 2008). Also, according to National Institute of Standards and Technology (NIST) definition (Mell and Grance, 2011), Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
Thus this paper is an introduction to the terminologies, characteristics, and services associated with cloud computing. The core service models being deployed (such as software, platform, and infrastructure as a service) and generic deployment models employed by service providers and consumers to use and maintain the cloud services (such as the private, public, community, and hybrid clouds) are discussed. Also considered are the benefits, trend and challenges associated with cloud computing.

What is Cloud
Cloud is a metaphor for the internet. Virtualization, in cloud computing, is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system, a storage device or network resources. Virtualization technologies promise great opportunities for reducing energy and hardware costs through server consolidation. Moreover, virtualization can optimize resource sharing among applications hosted in different virtual machines to better meet their resource needs. As a result more and more computing can be conducted in shared resource pools that act as private and public clouds (Sahu and Tiwari, 2012).

What is Cloud Computing?
Cloud computing is the provision of computer or IT infrastructure through the Internet. That is the provisioning of shared resources, software, applications and services over the internet to meet the elastic demand of the customer with minimum effort or interaction with the service provider.

SaaS
Software as a Service (SaaS) provide applications to the user using a cloud infrastructure or platform, rather than providing cloud features themselves. That is, applications, software or packages are designed for customers delivered over the web. SaaS makes it not necessary for the customer to have a physical copy of the software installed on a PC, laptop or any other client device. SaaS can sometimes be referred to as Service or Application Clouds. Often, it is a kind of standard application software functionality offered within a cloud.
Examples: Google Docs, Google Calendar, SAP Business by Design, Salesforce CRM

PaaS
Platform as a Service (PaaS) is the set of development tools and services designed to make coding and deploying of applications over the web quick and efficient for the customer. The customer does not have access to the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed tools/services and probably configuration settings for the application-hosting environment. This provides a set of developer environment that a customer can use to build their applications without having any clue about what is going on beneath the service. PaaS is a platform where applications can be developed, tested and used. Examples: Google App Engine, Force.com, Microsoft Windows Azure, Java.

IaaS
Infrastructure as a Service (IaaS) is the physical layer that is made up of the hardware resources that are necessary to support the cloud services being provided, and typically includes server, storage, operating systems and network components. It is the hardware and software that powers the cloud. The customer does not have access to the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and probably limited control over selected networking components. Examples: Amazon S3, Microsoft Windows Azure SQL, Mosso.

Cloud Deployment Models (Cloud Usage Model)
Cloud computing can be divided into four main categories depending on usage or deployment: Public cloud, private cloud, community cloud and hybrid cloud.

Private (Personal) Clouds
Private (Personal) Clouds are typically owned and/or leased by the respective organization or individual. It may be managed and operated by the organization or a third party or a combination of them, and it may exist on or off premises. Example: eBay

Community (Domain-Specific) Clouds
These clouds are maintained for specific requirements by a group of organizations. It is computing resources provided over the internet for restricted use by a specific community of users from organizations that have shared interest. Usually the users are a group of people with a common background or with shared concerns within the community or society. Community clouds are an intermediary between private and public clouds. It may be managed and operated by one or more of the organizations in the specific community, a third party, or some combination of them, and it may exist on or off premises.

Public (General) Clouds
These clouds are used for providing services to the populace. Public cloud is the most familiar and popular form of cloud computing. In a public cloud, computing resources are dynamically provided over the internet. They exist on the premises of the cloud provider. It may be owned, managed, and operated by a business, academic, or government organization, or some mixture of them. Example: Amazon, Google Apps, Windows Azure.

Hybrid (Mixed) Clouds
A hybrid cloud is basically a combination of two or more clouds. It is a mixture of private and public cloud infrastructures aimed at achieving ultimate cost reduction through outsourcing while maintaining the desired level of control. According to ELC Technologies 2010, Hybrid cloud models are likely to emerge as the most common form of cloud computing in the future as they provide subscribers greater choice and opportunities to access specific services within the same cloud without the need to switch to an entirely different provider, if business needs change. Hybrid clouds typically also involve a flexibility which services are hosted in the cloud and which not, which enables organizations to keep direct control over certain hardware and/or services. Examples: Google, Amazon, Windows Azure

On Demand Self Service
Computer resources via the internet such as network storage, email, applications, network or server service are provided as needed automatically without involving human interaction with the service provider. It allows for the provision of computer services based on recent demand requirements. Some cloud service providers providing on demand self services include Amazon Web Services (AWS), Microsoft, Salesforce.com and Google.

Broad Network Access
Customers are provided with large network access obtainable through standard mechanism using a wide range of computing devices such as PCs, laptops and even the recent smart phones.

Resource Pooling
Resource Pooling involves providers using shared computing resources to provide cloud services to numerous customers. Depending on customers demand, computing resources can be dynamically assigned and reassigned. Customers do not need to provide their own storage, memory, network bandwidth and processing takes place in the cloud rather than at the users premises or on the user devices.

Rapid Elasticity
Rapid elasticity refers to capability of cloud resources to be flexible enough to adjust to changing customers demand, this sometimes may be automatic. That is, it allows applications to quickly scale utilization both up and down, as the demand changes. These capabilities to the customer, can be purchased in any quantity at any time and often appear to be unlimited.

Measured Service
Cloud resource usage can be measured, managed, controlled, and reported thus providing transparency and accountability for both the provider and customer of the utilized service. Cloud computing systems use a metering capability which automatically control and optimize resource use. This is done at some level of abstraction commensurate to the type of service. Such services include active user account, storage, network bandwidth, processing, etc.

Trends of Cloud Computing
Looking from a certain perspective, cloud computing seems to have suddenly jumped into the scene, but the truth is it has actually undergone several decades of gradual evolution.

The Mainframe Era
In the late 1950s, when computers (mainframe) were enormous and expensive, hardware timesharing came to light. They were used mainly for computing rigorous military operations. In 1961, John McCarthy stated in a speech at MIT that computing can be sold like a utility such as electricity or water. It was a brilliant idea, but the technology was clearly not prepared for it signifying that the idea was ahead of its time. The next few decades brought about the expansion of the concept to include more than sharing a processor. It became known as "utility computing" and then "grid computing" in the 1980s and 1990s.
Of course time has passed and the technology caught up with the ideas and there are a few milestones we have to mention:

The Personal Computer Era
The development of the home computer by Apple in 1977 and the personal computer by IBM in 1981 ushered in a new age of computing. Several companies understood that servers resident in normal computers could be mounted at lower costs compared to mainframes. This realization steadily brought about the exit of mainframes and the entry of personal computers. Another factor was the reduced cost of personal computers.

The Internet Era
The 1990's saw the commencement of the wide spread use of the Internet and this brought back the trend of having lots of computers access one main server. The rise in Internet usage and the numerous requests to the server made it essential to have web servers with enough power to handle such requests. This is on the increase even till today as users demand more web services and storage space. At an increasing rate, applications are now being moved from the personal computer to servers on the Internet due to the increase in server speed and the abundant devices (i.e. mobile devices) to access this service. Today, the Internet can handle substantial computations as providers have made this facility available and customers can together share the same infrastructure, thus reducing costs and increasing effectiveness.

The Cloud Computing Era
The year 1999 saw the advent of the first ever cloud service. It occurred when Salesforce created a website committed to granting enterprises applications over the internet. The once fuzzy dream of Paul McCarthy has now come into being as now computing can be sold like a utility. Although this was a success, it would take some time until it would become extensive.
Amazon, in 2002, launched the Amazon Web Services (AWS) which was considered the next major development in this field. It offered services such as storage, computation, to a large degree, human intelligence and other services to its customers. Then in 2006, Amazon launched the Elastic Compute Cloud (EC2). This afforded small companies and individuals the means to run their own computer applications in the cloud.
In 2009, cloud computing saw a completely remarkable defining point when cloud enterprise applications became browser based. Cloud services became publicly available an example being Google Apps. The big names in the industry have also joined the cloud computing band wagon. Microsoft launched Windows Azure and Windows Azure SQL Database. Other companies include HP and Oracle.
Moving on from here, the only way forward is cloud computing. This will bring to reality the dream where everyone can access the applications and services they require how, when and as quickly as they need them. There is no turning back.

Security
The main hurdle in the fast adoption of cloud is the security concerns of the customers. (Ullah and Xuefeng, 2013). Security issue has played the most important role in hindering Cloud computing acceptance. Various security issues, possible in cloud computing are: availability, integrity, confidentiality, data access, data segregation, privacy, recovery, accountability, multi-tenancy issues and so on. Solution to various cloud security issues vary through cryptography, particularly public key infrastructure (PKI),use of multiple cloud providers, standardization of APIs, improving virtual machines support and legal support (Sahu and Tiwari, 2012).

Availability of Service
Since many systems have crashed on the cloud, like Amazon, so using only one Cloud Computing Service Provider (CCSP), services can result in a drawback as when a shutdown event happens on a cloud the service disappears and user cannot find that service. CCSP promises to provide infinite scalability for the customer but due to the fact that millions of users are now migrating to cloud computing so such promise is not fulfilled (Ullah and Xuefeng, 2013).

Third Party Dependence
Customers have no control over their own data as data is lost in the hands of the cloud computer service provider.

Conclusion
Cloud computing is still evolving but its benefits are enormous. Cloud computing provides excellent support for amazing infrastructures, applications and services such as shared resource pool, broad network base, reduced IT cost or rapid elasticity of the cloud to handle varying customers demands as well as cloud computing various service and deployment models which is part of the main reason for adopting this computing system. Thus this makes cloud computing an open shared system volatile to security breaches and other challenges. So there is need to focus on solutions of the various challenges to maintain the dependence level of organization for deploying the cloud