Cloud Computing as an Innovation in GIS & SDI : Methodologies , Services , Issues and Deployment Techniques

Cloud computing is one of the main issues of interest to the scientific community of the spatial data. A cloud is referred to computing infrastructure for a representation of network. From the perspective of providers, the main characteristics of cloud computing is being dynamic, high power in computing and storage. Also cloud computing is a cost benefit and effective way for representation of web-based spatial data and complex analysis. Furthermore, cloud computing is a way to facilitate distributed computing and store different data. One of the main features of cloud computing is ability in powerful computing and dynamic storage with an affordable expense and secure web. In this paper we further investigate the methodologies, services, issues and deployed techniques also, about situation of cloud computing in the past, present and future is probed and some issues concerning the security is expressed. Undoubtedly cloud computing is vital for spatial data infrastructure and consequently the cloud computing is able to expand the interactions for spatial data infrastructure in the future.


Introduction
Cloud computing, with the revolutionary promise of turning computing into a 5th utility, after water, electricity, gas, and telephony, has the potential to transform the face of Information Technology (IT), especially the aspects of service-rendition and service management.Though there are myriad ways of defining the phenomenon of cloud computing, we put forth the one coined by NIST (National Institution of Standards and Technology).According to them, cloud computing is defined as "A model for enabling 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" [1].Loosely speaking, cloud computing represents a new way to deploy computing technology to give users the ability to access, work on, share, and store information using the internet [2].The cloud itself is a network of data center, each composed of many thousands of computers working together that can perform the functions of software on a personal or business computer by providing users access to powerful application, platforms, and services delivered over the internet.It is in essence a set of network enabledservices that is capable of providing scalable, customized and inexpensive computing infrastructures on demand, which could be accessed in a simple and pervasive way by a wide range of geographically dispersed users.The could also assures application based Quality-of-Services (QoS) guarantees to its users.
Thus, Cloud Computing provides the users with large pools of resources in a transparent way along with a mechanism for managing unnecessary performance overhead.The ideal way describe cloud computing then would be to term it as "Everything as a Service" abbreviated as XaaS [3].Below, we sum up the key feature of cloud computing:  Agility-helps n rapid and inexpensive re-provisiong of resources.
 Location Independence-resources can be accessed from anywhere and everywhere. Multi-Tenancy-resources are shared amongst a large pool of users. Reliability-dependable accessibility of resources and computation. Scalability-dynamic provisioning of data helps in avoiding various bottleneck scenarios.
 Maintenance-users (companies/organization) have less work in terms of resource upgrades and management, which in the new paradigm will be handled by service providers of cloud computing.However, cloud computing doesn't imply that it consists of only one cloud.The term "cloud" symbolizes the Internet, which in itself is a network of networks.Also, not all forms of remote computing is cloud computing.On the contrary, cloud computing is nothing but services offered by provides who might have their own systems in place [4].

Cloud Computing: Past, Present, and Future
A hundred years ago, companies stopped generating their own power with steam engines and dynamos and plugged into the newly built electric grid.
The cheap power pumped out by such electric utilities did not just change how businesses operated it set off a chain reaction of economic and social transformations that brought the modern world into existence.Today, a similar revolution is under way.Hooked up to the Internet's global computing grid, massive information-processing plants have begun pumping data and software code into our homes and businesses.This time, it's computing (instead of electricity) that's turning into a utility.Nicolas Carr in his book The Big Switch: Rewiring the world from Edison to Google [5] has finely portrayed the transition of Cloud from its past till its present form.Cloud computing has integrated various positive aspects of different computing paradigms, resulting in a hybrid model that has evolved gradually over the years beginning in 1960 when John McCarthy rightfully stated that "computation may someday be organized as a public utility" [6].History of computing shows in faucet to get water or plug into an electric socket on the wall to get electricity, similarly Cloud Computing intends to create a paradigm where most of the features and functions of stand-alone computers today can be streamed for a user over the Internet [7].Further probing into the philosophy of cloud computing will reveal that the concept dates back to the era of "Mainframes", where resources (like memory, computational capabilities) of centralized powerful computers owned by large organizations were used/shared by several users over a small geographical local area.Today Cloud Computing boasts of an architecture where the powerful computers are replaced by supercomputers and perhaps even a network of supercomputers and the users are dispersed over vast geographic areas, accessing these computing resources via the Internet (network of networks).In the past, issues like dearth of bandwidth, perception, loss of control, trust and feasibility proved to be major road blocks in realizing the cloud concept of service rendition.
The concept of Cloud Computing as nascent as it might appear itself has undergone significant evolution.The first generation of Cloud Computing which evolved along with the "Internet Era" was mainly intended for "e-business services".The current generation of Cloud services has progressed several steps to now include "IT as a Service" which can be thought of as "consumerized internet services".Using standardized, highly virtualized infrastructure and applications, IT can drive higher degrees of automation and consolidation, thus reducing the cost of maintaining existing solutions and delivering new ones.In addition, externally supplied infrastructure, software, and platform services are delivering capacity augmentation and a means of using operating expense funding instead of a heavy duty capital [8].
Today, "the network is the (very big, very powerful) computer".The capabilities of the Cloud as a centralized resource can match to industrial scales.This implies that processing power involving thousands of machines embedded in a network has surpassed even the capabilities if the very high-performance supercomputers.By making this technology available through the network on an on-demand and as-needed basis, the Cloud holds the promise of giving individuals, business, organization and governments around the world access to extraordinary computing power from any device.It is a fact that data and information is growing at a break-neck pace.HP predicted that within three more years (by 2012) there will be information produced and consumed than in the history of mankind.Thus, the next version of Cloud will enable access to information through services that are set in the context of the consumer experience.This is significantly different it means that data will be separated from the application a paradigm where processes can be broken into smaller pieces and automated through a col-lection of services, woven together with access to massive amounts of data.It will eliminate the need for large scale, complex applications that are built around monolithic processes.Changes can be accomplished by refactoring service models, and integration achieved by subscribing to new data feeds.This will create new connections, new capabilities, and new innovations surpassing those that exist today [8].Thus it is envisioned that by 2020 most people will access Most technologies and industrialists believe that cloud computing will continue to expand and come to dominant information transactions because it offers many advantages, allowing users to have easy, instant, and individualized access to tools and information they need wherever they are, locatable from any networked device.To validate this claim, the PEW INTERNET & AMERICAN LIFE PROJECT carried out a survey with a highly diverse population set.71% of the survey takers believed that by 2020, most people won't do their work with software running on a general-purpose PC.Instead, they will work in Internet-based applications such as Google Docs, and in applications run from smart phones [9].However, quality of service guarantees, interoperability between existing working platforms and security concerns are some of the issues that still continue to plague the growing popularity of cloud computing.Figure 2 shows clouds past, present and future.

Cloud Computing Methodologies
Cloud computing is based on two main techniques: a) Service Oriented Architecture and b) Virtualization

Service Oriented Architecture (SOA)
Sincethe paradigm of Cloud computing perceives of all tasks accomplished as a "Service" rendered to users, it is said to follow the Service Oriented Architecture.This architecture comprises a flexible set of design principles used during the phases of system development and integration.The deployment of a SOA-based architecture will provide a loosely-integrated suite of services that can be used within multiple business domains.The enabling technologies in SOA allow services to be discovered, composed, and executed.For instance, when an end-user wishes to accomplish a certain task, a service can be employed to discover the required resources for the task.This will be followed by a composition service which will plan the road-map to provide the desired functionality and quality of service to the end-users [10,11].

Virtualization
The concept of Virtualization is to relieve the user from the burden of resource purchases and installations.The cloud brings the resources to the users.Virtualization may refer to Hardware (execution of software in an environment separated from the underlying hardware resources), Memory (giving an application program the impression that it has contiguous working memory, isolating it from the underlying physical memory implementation), storage (the process of completely abstracting logical storage from physical storage, Software (hosting of multiple virtualized environments within a single Operating System (OS) instance), Data (the presentation of data as an abstract layer, independent of underlying database systems, structures and storage) and Network (creation of a virtualized network addressing space within or across network subnets) [11].Virtualization has become an indispensable ingredient foe almost every cloud; the most obvious reasons being the ease of abstraction and encapsulation.Amongst the other important reasons for which the clouds tend to adopt virtualization are: a) Server and application consolidation-as multiple applications can be run on the same server resources can be utilized more efficiently.b) Configurability-as the resource requirements for various applications cloud differ significantly, (some require large storage, some require higher computation capability) virtualization is the only solution for customized configuration and aggregation of resources which are not achievable at the hardware level.c) Increased application availability-virtualization allows quick recovery from unplanned outages as virtual environments can be backed up and migrated with no interruption in services.d) Improved responsiveness-resource provisioning, monitoring and maintenance can be automated, and com-mon resources can be cached and reused [12].
In addition, these benefits of virtualization tend to facilitate the cloud to meet stringent SLA (Service Level Agreement) requirements in a business setting which otherwise cannot be easily achieved in a cost-effective manner.Without virtualization, systems have to be over provisioned to handle peak load and hence waste valuable resources during idle periods.

The Cloud Architectureand Cloud Deployment Techniques
Created with the knowledge of SOA and virtualization, we now take a look at the overall Cloud architecture.
From the end user's perspective, Figure 3 depicts a basic Cloud Computing architecture involving multiple components.Cloud architecture closely resembles the UNIX philosophy of involving multiple components which work together over universal interfaces [13].Recall that the cloud computing paradigm represents a Service oriented mechanism of managing and dispatching resources.Before we delve into studying the actual architecture of cloud computing it will be beneficial to examine the possible characteristics that will be required to realize such a system.It is common knowledge that the architectural requirements of cloud will vary depending on the application for which the cloud is being used.For instance, social networking application like Facebook and Orkut will have a very different set of requirements, constrains and deliverables from the architecture in comparison to, say, a remote patient health monitoring application.However, some common architectural characteristics can still be identified.For instance: 1) the system should be scalable with the ability to include thousand to perhaps tens of thousands of members; 2) It should be able to interoperate between various service requirements and effectively share resources amongst its users; 3) The system should be easy to maintain and upgrade, maintaining user transparency during these processes; 4) As outlined earlier, managing resources like servers and storage devices virtually, thereby creating a virtual organization, is absolutely crucial.
To mitigate the problem of designing customized Cloud architecture foe each and every application and also to streamline the architecture design process of the cloud, scientists resorted to the age old concept of a generalized "Layered approach" [14].As with the classical 7-layer OSI model of data networks [15], the layered model in cloud computing serves the same general purpose.Depending on the service requirement of an application, these layers are shuffled to create a customized architecture.The layered architecture adheresto the prin- ciple of Service Oriented architecture (SOA) which forms the core of the cloud computing paradigm.The components of a basic layered architecture are shown in the Figure 4, below [9], namely the client, its require Services, the applications that the client runs, the platform on which these applications run, the Storage requirement and finally the Infrastructure required to support the Client's computing needs.
We devote a few sentences on each component below.

Clients
The Clients of a cloud comprise computer hardware and/or computer software that relies on the computational capability of the cloud for application or service delivery.Examples include computers, mobile devices, operating systems, and browsers.Services: this refers to different service models made available by the cloud like SaaS (Software-as-a-Service), IaaS (Infrastructure-as-a-Service) and PaaS (Platform-asa-Service).This layer acts as a middleman between the user and the vast amount of resources accessible to the user.A resource includes "products, services and solution that are delivered and consumed in real time over the Internet" [9].Examples include location services and Search Engines among others.

Application
The cloud enables resource management and user activity tracking from central locations rather than customer's site, enabling customers to access application remotely via the Internet.cloud application services deliver software as a service over the Internet, eliminating the need to install and run the application on the customer's own computer, thereby simplifying (almost eliminating) maintenance and support at the customer's end.Examples include Web Application and Peer-to-Peer computing.

Platform
It facilitates deployment of applications without the cost and complexity of buying and managing the underlying hardware and software layers.This layer delivers a computing platform and/or solution stack as a service, often consuming Cloud infrastructure and sustaining cloud application.Examples include Web Application Frameworks like Ruby on Rails and Web Hosting.

Storage
The storage layer consists of computer hardware and/or computer software products that are specifically designed for the storage of cloud services computer hardware comprises huge centers that are used for resource sharing.Examples include Amazon SImpleDB, and Nirvanix SDN (Storage Delivery Network).

Infrastructure
This layer delivers computer infrastructure, typically a platform virtualization environment as a service.It includes management of virtual resources too.Rather than purchasing servers, software, data center space or network equipment, clients instead by those resources, as a full outsourced service.Examples include Network Attached Storage and Database services.
The main advantage of such a layered architecture is the ease with which they can be modified to suit a particular service.The way in which these components interact leads to various architectural styles.There are two basic architectural styles on which most of the services are based.They are:

Outside-In
This architectural style is inherently a top-down design emphasizing the functionality of the components.Implementing this style leads to a better architectural layering with various functionalities.It infuses more feasibility enabling better integration and interoperation of components.

Inside-Out
This architectural style, on the other hand, is inherently a bottom-up design which takes an infrastructure point of view of the components.This style is more application oriented than service oriented [16].
It is to be noted that incorporating new functionality in a pre-existing architectural scheme is done in an incre-mental fashion.The ease of transforming an existing architecture into another depends on the complexity of the architecture, the functionalities of the components and their integration.The vast landscape of the service and their growing complexity has led to implementation of innovative architectural styles and several hybrid architectures [16,17].

Cloud Deployment Techniques
Cloud deployment is the manner in which a cloud is designed to provide a particular service.Obviously these deployment methods will vary according to the way in which a cloud provides service to the users.Thus, their deployment techniques are user specific [18].For instance, a deployment technique might depend on the level of security commissioned for a particular user.
Figure 5 depicts the various cloud deployment techniques which predominantly comprise: a) the Public deployment; b) the Private deployment; or c) the Hybrid deployment.We discuss each of these deployment strategies briefly below.

Public Cloud
It is the traditional mainstream Cloud deployment technique whereby resources are dynamically provisioned by third party providers who share them with the users and bill the users on a fine grained utility computing basis.It offers easy resource management, scalability and flexibility With an economical pay-as-you-go model which is extremely viable especially for small businesses.On the negative side, the user lacks visibility and control over the computing infrastructure.Since computing infrastructures are shared between various organizations, these Clouds face various security and compliance issues.Amazon's Web Services and Google's AppEngine are few examples of public Clouds, also known as external Clouds [9].

Private Cloud
In this cloud deployment technique, the computing infrastructure is solely dedicated to a particular organization or business.These clouds are more secure because they belong exclusively to a particular organization [18].These Clouds are more expensive because one needs in-house expertise for their maintenance.Private Clouds are further classified based on their location as: a) On-Premise Clouds-these refer to clouds that are for a particular organization hosted by the organization itself.Examples of such clouds would include clouds related to military services which have considerable amount of confidential data; b) Externally hosted Clouds-these refer to clouds that are also dedicated for a particular organization but are hosted by a third party specializing in cloud infrastructure.These are cheaper than on-premise clouds.Examples of such clouds would be small business using services from VMware, Amazon etc.Such clouds are also known as Internal Clouds [16].

Hybrid Cloud
This deployment technique integrates the positive attributes both the public cloud and Private cloud paradigm.For instance, in a Hybrid Cloud deployment, critical services with stringent security requirements may be hosted on private clouds while less critical services can be hosted on the public Clouds.
The criticality, flexibility and scalability requirement of a service governs its classification into either the Public or Private Cloud domain.Each cloud in the Hybrid domain retains its unique entity.However, they function synchronously to gracefully accommodate any sudden rise in computing requirements.Hybrid cloud deployment is definitely the current trend amongst the major leading cloud providers currently [9].

Community Cloud
This deployment technique is similar to Public Clouds with the only difference being the distribution of the sharing rights on the computing resources.In a community Cloud, the computing resources are shared amongst organization of the same community.So this Cloud covers a particular group of organizations, which have the same functionalities.For example, all Government organizations within the state of California may share the computing infrastructure on the Cloud to manage data related to citizens residing in California [6].
However,cloud computing products can be broadly classified into three main Services (SaaS, PaaS and IaaS) which are showcased in Figure 6 along with their relationship to a user (Enterprise).The following section is an attempt to familiarize the reader with the several different cloud services that are currently rendered:

Infrastructure-as-a-Service (IaaS)
This service provisions for hardware related services like storage, and virtual servers on a pay-as-you-go basis.The main advantage of IaaS is the usage of latest technology at all times with regard to computer infrastructure which allows users to achieve faster service.Organizations can use IaaS to quickly build new versions of applications or environments without incurring unnecessary purchase and configuration lay.On-demand scaling via resource virtualization and user-based billing makes IaaS competent enough for any kind of businesses.The major companies already providing IaaS are Amazon, Racksapace, GoGrid, AT&T and IBM [21].

Platform-as-a-Service (PaaS)
PaaS offering may include facilities for application design, application development, testing, deployment and hosting as well as application services such as team collaboration, web service integration and marshaling, database integration, security scalability, storage, persistence, state management, application versioning, application instrumentation and developer community facilitation.These services may be provisioned as an integrated solution over the web, providing an existent managed higher-level software infrastructure for building particular classes of application and services.The platform includes the use of underlying computing resources, typically billed similar to IaaS products, although the infrastructure is abstracted away below the platform.Major companies providing PaaS are Google's AppEngine [22], Microsoft Azure, and Force.cometc [6,9,16].

Software-as-a-Service (SaaS)
Provides specific already created applications as fully or partially remote services.Sometimes it is in the form of web-based applications and other times it consists of standard non-remote applications with Internet-based storage or other network interactions.It allows a user to use the provider's application hosted by the cloud vendor on pay-per-use basis [22].It is a multi-tenant platform.The pioneer in this field has been Salesdorce.comoffering

Storage-as-a-Service (SaaS)
Storage as a Service is a business model that helps a smaller company or individual in renting storage spaces from a large company.Storage as a Service is generally seen as a good alternative for a small or mid-sized business that lacks the capital budget and/or technical personnel to implement and maintain their own storage infrastructure.SaaS is also being promoted as a way for all business to mitigate risks in disaster recovery, provide long-term retention for records and enhance both business continuity and availability.Examples include Nirvanix, Cleversafe'sdsNET etc.

Database-as-a-Service (DbaaS)
It constitutesdelivery of database software and related physical database storage as a service.A managed service, offered on a pay-per-usage basis that provides ondemand access to a database for the storage of application data is what constitutes DbaaS.Examples include Amazon, Force.cometc.

Information-as-Service (IfaaS)
Information as a service accepts the idea that data resides within many systems and repositories.Its main function is to standardize the access of data by applying a standard set of transformations to the various sources of data thus enabling service requestors to access the data regardless of vendor or system.Examples include IBM, Microsoft etc.

Process-as-a Service (PraaS)
Refers to a remote resource that's able to bind many resources together, either hosted within the same cloud computing resource or remote, to create business processes.These process are typically easier to change than applications, and thus provide agility to those who leverage these process engines that are delivered on-demand.Process-as-a-service providers include Appian Anywhere, Akemma, and Intensil.

Integration-as-a-Service (InaaS)
Integration-as-a-Service includes most of the feature and functions found within traditional Enterprise Application technology, but delivered as a service.Integration-as-a-Service takes the functionality of system integration and puts it into the cloud, providing for data transport between the enterprise and SaaS applications or third parties.Examples include Amazon SQS, OpSource Connect, Boomi, and Mule on Demand.

Security-as-a-Service (SeaaS)
Delivers core security services remotely over the Internet like anti-virus, log management etc.While typically the security services provided are rudimentary, more sophis-ticated services are becoming available such as identity management.Security-as-a-service providers include Cisco, McAfee, Panda Software, Symantec, Trend Micro and VeriSign.

Management/Governance-as-a-Service (MaaS)
Provides the ability to manage one or more cloud services, typically simple things such as topology, resource utilization, virtualization, and uptime management.Governance systems are becoming available as well, such the ability to enforce defined policies on data and services.Management/Governance-as-a-Service providers include RightScale, rPath, Xen, and Elastra.

Testing-as-a-Service (TaaS)
These systems have the ability to test other cloud application, Web sites, and internal enterprise systems, and do not require a hardware or software footprint within the enterprise.They also have the ability to test services that are remotely hosted.SOASTA is one of the many Testing-as-a-Service providers [6,16].

Issues with Cloud Computing
So far we have focused on the promises that the cloud holds for users and applications alike.However, there are issues that need to be resolved before this technology can be exploited to its maximum potential [23].In the section below we enumerate and discuss the burning issues which might deter the phenomenal growth of cloud computing technology.

Security Issues
Security is as much of a concern in cloud computing as it would be in any other computing paradigms.Cloud computing can be vaguely defined as outsourcing of services, which in turn causes users to lose significant control over their data.There is always a risk of seizure associated with the public clouds.For instance, an organization sharing data in an environment where other organizations are doing the same is always under the threat of compromising the security and privacy of its data if any other organization in the shared scheme happens to violate the security protocols [24].Moreover, in a virtualized environment one needs to consider the security of not just the physical host but also the virtual machine.This is because if the security of a physical host is compromised, then automatically all virtual machines face security threat and vice versa.Since the majority of services in cloud computing are provided using web browsers, there are many security issues related with it as well [25].Flooding is also a major issue where an attacker sends huge amounts of illegitimate service requests which cause the system to run slow thereby hampering the performance of the overall system.Cloud networks stand the potential threat of both Indirect Denial of Service attacks and Distributed Denial of Service attacks.

Legal and Compliance Issues
Clouds are sometimes bounded by geographical boundaries.Provision of various services is not location dependent but because of this flexibility clouds face Legal & Compliance issues.These issues are related mainly to the vendors though they still affect the end users.These issues are broadly classified as functional (services in the clouds that have legal implication for both service providers and end users), jurisdictional (where governments administer laws to follow) and contractual (terms and conditions).Issues include: a) Physical Location of the data referring to where the data is physically located and if a dispute occurs, which jurisdiction will help in resolving it; b) Responsibilities of the data where if a vendor is hit by disaster will the businesses using its services be covered under insurance; c) Intellectual Property Rights which deals with the way trade secrets are maintained [26].

Performance and QoS Related Issues
For any computing paradigm performance is of utmost importance.Quality of Service (QoS) varies as the user requirements vary.One of the critical QoS related issues is the optimized way in which commercial success can be achieved using cloud computing.If a provider is not able to deliver the promised QoS it may tarnish its reputation [23].Since Software-as-a-Service (SaaS) deals with provision of softwares on virtualized resources, one faces the issue of Memory and Licensing constraints which directly hamper the performance of a system.

Data Management Issues
The main purpose of cloud computing is to put the entire data on the cloud with minimum infrastructure requirement for the end users.The main issues related to data management are scalability of data, storage of data, data migration from one cloud to another and also different architectures for resource access [27].Since data in cloud computing even includes high confidential information it is of utmost importance to manage these data effectively.There has been an instance where an online storage service called The Linkup got shut down after losing access to as much as 45% of its customers.While transferring data, i.e., data migration in a cloud has to be done very carefully as it could lead to bottlenecks at each and every layer of the network model, as huge chunks of data are associated with the cloud [28].

Conclusions
Cloud Computing plays a significant role in varied areas like e-business, search engines, data mining, virtual machines, batch oriented scientific computing, online TV amongst many others.Cloud computing has the potential to become an integral part of our lives.Examples include, 1) the cloud operating system which provides users with all the basic features of an operating system like data storage and applications; 2) mapping services which help users in finding routes to various places; 3) Telemedicine applications for collecting data of a patient and calling emergency services in need.
As an increasing number of businesses move toward Cloud based services, issues like interoperability, security, portability, migration and standardized protocols are proving to be critical concerns.For instance, the need for higher transparency in scheduling tasks with guaranteed QoS is proving to be a challenging issue in the area of the area management over the clouds.In addition, the service driven model of cloud computing often leads to concerns and queried regarding the Service Level Agreement (SLA) of enterprises.
The research and business community alike are coming up with new and innovative solution to tackle the numerous issues that are making its way as cloud computing is shaping itself as the Future of Internet.The potentials are endless and the sky is the limit as we watch "a computing environment to elastically provide virtualized resources as a service over the Internet in a pay-asyou-go manner" [16] bloom and blossom to its maximum potential.

Figure 6 .
Figure 6.Types of cloud services [20].online Customer Relationship Management (CRM) space.Other examples are online email providers like Google's Gmail and Microsoft's Hotmail, Google docs and Microsoft's online version of office called BPOS (Business Productivity Online Standard Suite) [6,16,23].