Upload
elias-adriano
View
214
Download
0
Embed Size (px)
Citation preview
8/9/2019 Software Engineering for the cloud: a research roadmap
1/10
Software Engineering for the Cloud: a Research
Roadmap
Elias Adriano Nogueira da SilvaFederal University of So Carlos,So Paulo, Brazil
Email: [email protected]
Daniel LucrdioFederal University of So Carlos,So Paulo, Brazil
Contact: http://www.dc.ufscar.br/~daniel
AbstractHaving arisen from the industry, cloud comput-ing is receiving increasing attention from the academy. Weare witnessing an increasing number of papers dedicated toexperience reports and proposal of methods, processes andtools focused on cloud-related technology. Researchers are alsoattempting to identify and formalize the main concepts behindcloud computing, forming a basis for future investigations abouthow this approach can be used to promote advances in manyfields of computer science. However, while the main researchchallenges and opportunities related to cloud computing in
general are already well-known, in the software engineeringarea the scenario is less clear. In this paper, we present theresults of a systematic literature review where we tried tounderstand how researchers from the software engineering fieldare viewing the cloud computing paradigm. We identified tensoftware engineering research opportunities focused specificallyon cloud computing, which are presented and discussed in termsof related work. We also present a discussion on some practicalissues related to the development of software for the cloud, tryingto make some obscure points clearer and aiming to facilitate thework of software engineering researchers and practitioners.
I. INTRODUCTION
The concept of cloud computing has gained recent atten-
tion mainly because of the industrys initiative. Companiesattempted to optimize and even profit from their computing
infrastructure, and thus a plethora of related concepts and
proprietary technology started to appear, aiming mostly at
the potential market. It was only recently that the academic
community started to look at these concepts more carefully.
Although it is possible to track down earlier related work
describing virtualization, grid computing and clusters [1], [2],
[3], which are concepts related to clouds, the first academic
papers dealing explicitly with cloud computing started to
appear around 2008-2009 [4], [5], [2]. Most of these were
attempts to propose a proper definition for cloud computing
and its underlying concepts and technologies [4], [2], [6].
However, up to this date, no definition is widely accepted bythe community [2], [7], [8].
One study that stands out is a 2009 technical report from the
University of California at Berkeley [9], a prominent academic
group in the field. The report discusses the main concepts
behind cloud computing, and presents some upcoming chal-
lenges and research opportunities for the academic community.
Soon this report and its authors became widely cited, laying
down the ground for different research directions in the cloud
computing field.
However, the approach followed by the Berkeley report
was more general. It pointed out some major challenges that
relate to cloud computing from a higher perspective, leaving
some unanswered questions in different research areas. One
of these areas is software engineering, which is the subject
of this paper. In this scenario, some of the first questions that
need to be answered by software engineering researchers and
practitioners are: what are the main challenges and research
opportunities in developing software for the cloud, in termsof methodologies, languages, frameworks, tools and other
software engineering concerns? What has already been done
in these few years of cloud research, from the software
engineering perspective?
To try to answer this question, we performed a system-
atic review in the available literature, including academic
and industrial publications. Our objective was to elicit some
gaps, challenges and opportunities for software engineering
researchers, as well as to provide guidance to practitioners in
terms of describing what is involved in the adoption of current
cloud technologies.
Our research method and findings are described in the
remainder of this paper. First, we discuss a brief background(Section II) on cloud computing and related concepts. Next
(Section III), we describe the systematic review process,
including the search protocol, the adopted criteria and some
interesting data related to the study. In Section IV we present
the results of the review and our main findings. We identified
ten different research opportunities, which we believe need to
be further investigated by the software engineering community.
These may serve as a basis for future work in the field. In
Section V we present a secondary result of this study, which
includes some observations related to software engineering for
the cloud, but from a more practical perspective. We try to
clarify some points that we found to be a little confusing in
the literature, in order to help software engineering researchersand practitioners in the development of their work. Section VI
discusses related work. Finally, in Section VII we present some
concluding remarks.
I I . BACKGROUND
The concept of cloud did not arise as a new technology
model, but as the integration of technologies from the past [8],
which resulted in a new way to use and provide computing
power as a service through the Internet.
8/9/2019 Software Engineering for the cloud: a research roadmap
2/10
8/9/2019 Software Engineering for the cloud: a research roadmap
3/10
TABLE ISYTEMATICR EVIEWP ROTOCOL
Objectives: To identify the main challenges and research opportunities in developing software for the cloud,and how to adopt the main cloud services, from the software engineering perspective;
Main Question: What are the main challenges and research opportunities in developing software for the cloud, interms of methodologies, languages, frameworks, tools and other software engineering concerns andwhat has already been done in these few years of cloud research, from the software engineeringperspective?
Intervention: Cases study, surveys, definitions and other types of research related to cloud software development;
Control: We found no study to use as control;Population: Research related to cloud software development;
Results: Case studies, surveys, definitions and research work related to cloud software development;
Application: Cloud computing software development research;
Keywords: Cloud computing; software development; software engineering; research gaps;
Source selection criteria: Availability of the papers over the web; search engines using keywords;
Studies Languages: English and Portuguese;
Source Search The string was first defined in Scopus, then adapted to other engines like ACM and IEEE;
Methods: Automatic search; Search through bibliographic references of selected papers; Search by groupsand authors; Search over the related conferences and journals
Source Engines: Scopus; IEEE; ACM; Google Academic Search; Springer
Study inclusion criteria: The full paper was available; The study involved definitions about cloud computing; The studycontained experience reports about cloud computing software development;
Study exclusion criteria: The full paper was not available; The study was not directly related to cloud computing; The studyapproached cloud computing without considering software development
Studies types definition: Papers and technical reports;
Initial studies selection: Based on abstract, keywords and title;
Studies quality evaluation: The quality of studies was evaluated in an ad hoc way, after the reading;
Information extraction fields: Study types; Search domain; main idea; short summary;
Results summarization: All the accepted papers were analyzed, and the data were summarized into a single textual report,where the results were described;
to the recommendations of the review protocol. The entire
systematic review was documented, from its conception to the
extraction of results, to allow its repetition and auditing by
other researchers interested in the study.
The study was conducted in a period of eight months,
by a single researcher (one of the authors of this paper).Whenever there was doubt regarding the inclusion/exclusion
criteria, analysis or summarization, other researchers from the
group were consulted.
As mentioned before, the literature related to software engi-
neering for the cloud is recent. Figure 1 shows the distribution
of the selected papers by publication year. As it can be seen,
all papers included in this study were published after 2008.
Fig. 1. Selected Publications by Year
Another point of interest in the study is the low distribution
of studies per author. The collection of the selected 100 papers
included more than 300 different authors, and no author pub-
lished more than two papers, what indicates that there is not
a clear formation of specialized research groups on software
engineering for cloud computing. One exception (although not
from the software engineering area) is the aforementionedtechnical report from University of California at Berkeley [9],
which was invited to be published as a paper [12], being
frequently cited in the cloud literature12.
IV. SOFTWAREE NGINEERING FOR THE C LOUD: A
RESEARCH ROADMAP
In this section we discuss the main findings of the review,
i.e. what are the main challenges and research opportunities
related to software engineering and cloud computing.
A. Data Lock-In
Data lock-in is the difficulty developers face when having
to port their applications from one cloud platform to another[9]. Such problem can be seen mostly in the PaaS scenario: in
order to take advantage of a very flexible cloud architecture,
the applications have to be specifically developed for the
chosen platform. For example, in order to offer great elasticity,
Google App Engine a PaaS provider imposes a specific
programming style and has its own way to manage data, and
thus an application developed for it may not be easily ported to
12By the time this paper was written, there were 302 citations, accordingto http://www.scopus.com/
8/9/2019 Software Engineering for the cloud: a research roadmap
4/10
a different PaaS provider, nor can its data. Even if a developer
wanted to host an application in his/her own private cloud later,
great effort would be necessary to rebuild the code, redeploy
it and migrate all the data.
It is not difficult to see why this problem is hindering the
adoption of the cloud model [20]. The possibility of becoming
locked in a particular platform, not being able to choose a
different one later (customer lock-in), puts the developers in adifficult position. They mostly fear being charged abusive fees
later, or having their applications unavailable due to lack of
service quality [9]. There are some initiatives towards solving
this problem. They normally revolve around two approaches:
API standardization: if every cloud provider employs
some well-known standards in its platform, in theory
an application could be easily ported from one provider
to another without too much effort. In this sense, the
OpenCloud Manifesto [21] is gathering efforts to group
companies around the specification of an open standard
for cloud computing. However, until the time this paper
was written, important companies such as Google and
Microsoft had not joined the manifesto13. There areother initiatives, such as: (i) DMTF (Distributed Man-
agement Task Force), which employs efforts focused on
standardizing interactions between cloud environments
by developing specifications that deliver architectural
semantics and implementation details to achieve inter-
operable cloud management between service providers
and their consumers [22]; (ii) OCCI-WG (Open Cloud
Computing Interface Working Group), which is a protocol
and API for all kinds of management tasks, and was
created to develop a remote management API for IaaS-
based services, allowing the development of interoperable
tools for common tasks including deployment, autonomic
scaling and monitoring. The current release of the Open
Cloud Computing Interface is suitable to serve many
other models in addition to IaaS, including e.g. PaaS and
SaaS [23];(iii)IEEE P230114, responsible for developing
a standard that will enable portability. To achieve this
goal, it will group the different options (interfaces, tile
formats and operation conventions) of the cloud elements
into logical profiles; and (iv) IEEE P230215, which will
define the topology, protocols, functionality and gover-
nance required to support cloud-to-cloud interoperability
and federated (intercloud) operations [24], [25].
Model-driven approaches:the idea is to employ model-
driven engineering (MDE) [26] in the development ofcloud applications. MDE seems to be a viable solution
to the lock-in problem, because through higher level
models and automatic transformations, the developers are
able to focus on a more conceptual, platform-independent
level when developing applications. However, there is no
13The list with all members of the OpenCloud Manifesto can be found athttp://www.opencloudmanifesto.org/supporters.htm
14IEEE P2301: http://grouper.ieee.org/groups/2301/15IEEE P2302: http://grouper.ieee.org/groups/2302/
consensus about the set of models, languages, transfor-
mations and software processes that could be used to
successfully develop cloud applications using MDE [27].
Current efforts revolve mostly around the identification of
abstractions that would allow one to specify and create
systems independently of the underlying platform, and
the automatic code generation for some specific platform
or service infrastructure [28], [29].
B. Decision-making about migration to the cloud model
In order to take advantage of the benefits of the cloud
model, many organizations have the desire and/or intention
to embrace the cloud for existent and new applications. This
decision is inherently complex, and suffers the influence
from multiple factors such as cost, availability, performance,
security and QoS, each of which have a major influence on
every organization [30].
Before making the decision, an organization must take into
consideration the viability of the cloud model in its current
context. It must carefully analyze the constraints related to
cloud platforms, both technical [31] and organizational, andconsider its business requirements [32].
The literature contains research providing support for the
decision about migration to the cloud [33], [30], [32], [34],
[35]. Ezzat et al. [36] studied the cloud from different per-
spectives, in order to determine the aspects that mostly affect
the decision about cloud adoption. However, in this review
we have not found a formal process to specifically support
this task.
If the decision about the migration is positive, the IaaS
model is the ideal choice to deploy pre-existent systems,
while PaaS is more adequate for new applications [37]. An
incremental strategy can be adopted, to effectively migrate
data and applications to the cloud. For pre-existing systems,the migration itself is a whole new challenge, as explains next
section.
C. Legacy software migration
There are many systems still in use today that became
outdated, either because they make use of unsupported tech-
nology or earlier versions of an operating system or platform.
However, the costs for their modernization and the fact that
they may still provide essential services keep them active.
These are commonly known as legacy systems. As expected,
most of these are not ready to be migrated into a cloud
environment, and this is true even for some more recent pre-
cloud web applications. One way of solving this problem is acomplete reengineering (i.e. a reconstruction of the software
for a new platform), but this process is normally too expen-
sive. An alternative would be an strategy to migrate legacy
software into a cloud infrastructure and to ensure its correct
functioning in the new environment, without the need for a
complete reengineering. There are many experience reports
that focus on this problem [38], [39], [40], [41], [42], [43],
[44], [45], [31], [46], but more research is still needed, mainly
to formalize a strategy that defines a step-by-step process to
8/9/2019 Software Engineering for the cloud: a research roadmap
5/10
perform the migration, considering all available cloud services.
Such strategy would constitute a very important contribution
towards the systematic migration to the cloud model.
D. A reengineering process for the cloud
New technologies, standards, languages and frameworks
related to cloud computing may facilitate the development of
applications, the evolution of current software and make com-panies more competitive. In these cases, migration alone (as
discussed in previous section) is not enough, and companies
find themselves in a crossroads between reconstructing their
applications to make complete use of new cloud technologies
and becoming out of the market.
The literature contains some successful examples of soft-
ware reengineering for the cloud. For example, Zhou et al.
[47] proposed a novel approach for reengineering enterprise
software for cloud computing. Following a five-step ontol-
ogy development process, the enterprise software ontology is
created by generating an integrating code ontology, database
ontology and Hibernate framework ontology. This approach
can help to identify potential service candidates in the legacysystem.
However, studies are still needed, to formalize a complete
reengineering process focusing on cloud infrastructures, con-
sidering the particularities and the different service models
offered in this paradigm.
E. Mechanisms to facilitate the adoption of the hybrid model
As discussed in Section II, the hybrid model is the al-
ternative found by some companies to avoid large upfront
investments and still maintain some critical parts of its appli-
cations under more rigid control. However, the interoperability
between public and private cloud infrastructures is not easy to
achieve [24]. The standardization can help to improve this
model, but as discussed in section IV-A, there is still no
standard for the development of interoperable applications for
cloud computing.
The literature has some efforts in this direction. One exam-
ple is the group IEEE P2302, which has been researching this
question. Other examples can also be found in the literature
[48], [49].
The existence of frameworks, tools and/or process to fa-
cilitate the implementation of the hybrid model could be the
solution many companies are waiting for before definitively
adopting cloud computing.
F. Implementation of Modeling as a Service - MaaS
Bruneliele, Cabot and Jouault [27] proposed the concept
of Modeling as a Service - MaaS. Similar to SaaS, MaaS
would allow the deployment and execution of modeling and
other model-driven services, such as transformations and code
generation, over the Internet. The idea is to provide a model-
driven engineering (MDE) environment in the cloud, including
a repository of models and model-driven engineering tools that
could be used by development teams in the form of services.
MaaS has the potential to leverage the adoption of MDE
among software developers, making use of the cloud to facil-
itate some of the tasks involved in model-driven engineering
[50]. The implementation of the MaaS model can lead to
different research opportunities, such as collaborative devel-
opment issues [51], concurrent modification issues [52], man-
agement of large model repositories, among others. Bruneliele,
Cabot and Jouault [27] highlight the following possibilities of
MaaS research:
One possibility is the creation of a tool for collabora-
tive and distributed modeling [53]. In this context, the
cloud would serve as an instrument that would allow the
specification and sharing of software models [54] among
distributed team members.
Definition of modeling mash-ups as a combination of
MDE services from different vendors.
Availability of model transformation engines in the cloud
to provide platform-independent model management ser-
vices.
Code generation in the cloud: the transfer of code gener-
ation and simulation services for the cloud can facilitatethe deployment and evolution of software applications,
increasing productivity. Developers would not need to
worry about having to setup and maintain an infrastruc-
ture to develop model-based applications.
Distributed Global model management. Complex MDE
projects involve several models (possibly conforming
to different metamodels), model transformations, model
injectors and projectors, etc. MaaS would facilitate the
manipulation of all these modeling artifacts in a dis-
tributed environment.
G. Billing and auditing mechanisms
Auditing, usage reports and billing are functionalities thatare normally associated to SaaS [55]. The provider of such
systems must include administrative functions to support this
kind of tasks, which are not necessary in the traditional
software model.
In our review we found no study focusing specifically on
these problems, and thus we believe there is space for research
and implementation on such types of mechanisms, to discover
better ways to achieve the necessary billing and auditing
functionalities, according to the reality of different companies.
Case studies are also a possibility to help in the identification
of the most important issues related to these tasks.
H. Cloud Service CompositionAs in other fields of computer science, the dynamic nature
of cloud-based technologies lead to constant changes in terms
of platforms, tools and technologies. In this scenario, it is not
uncommon to see different applications or sets of services
having to cooperate for mutual benefit. Service composition,
in the context of Service-Oriented Architecture, is still an
important research subject in software engineering [56], [57].
In the cloud context, the terms intercloud, multi-clouds
and cloud-of-clouds are used to refer to the composition
8/9/2019 Software Engineering for the cloud: a research roadmap
6/10
of cloud providers as an integrated (or federated) cloud envi-
ronment [58]. In such environments, users can (transparently
or not) leverage the resources from different (either public or
private) cloud providers [25], [59], [60], [61], [62], [63]. These
terms are similar and suggest that cloud computing should not
be restricted to a single cloud [59], but a cloud-of-clouds.
In such environment, it would be possible to have applica-
tion components deployed and co-existing on multiple clouds.
This raises challenges for the developer, who has to worry
about architectural and development issues that consider this
multi-cloud scenario. In particular, the composition of services
needs an effective communication between providers (interop-
erability). Abstractions for efficient service orchestration and
choreography [64] also need to be conceived or adapted for
the cloud.
There are some efforts related to cloud service composition
in the literature [65], [66], [67], [68], [69]. However, the
related technologies are still under development and more
research is necessary. Standardization efforts, such as those
described in Section IV-A, could offer a partial solution, but
these are not yet established.I. Case studies
Organizations are normally afraid to adopt new technologies
until relevant success cases are presented. In this sense, to
reinforce the benefits of the cloud, to show the importance of
this paradigm, and its potential to revolutionize the market, it
would be interesting to have a large number of case studies.
The literature already has many examples of such efforts.
Chauhan & Babar [38] report their experience in the migration
of service-oriented systems to the cloud computing model.
Khajeh-Hosseini et al. [44] show a case study of migrating
an enterprise application to IaaS. Tran et al. [40] show a
taxonomy of critical factors in migration to cloud computingmodel. We should continue to publish such type of results,
and case studies and experience reports should always be on
the agenda of software engineering researchers. The more
case studies available, the more confident researchers and
practitioners will become regarding the benefits of the cloud,
and the validity of the research.
J. Open source platforms
This last issue may not be considered as an open research
question by itself, but it presents a challenge for many re-
searchers. The most important cloud computing platforms are
proprietary and, as a consequence, not open for investiga-
tion, modification and/or extension. This poses a problem forresearchers that want to experiment with different platform
architectures and setups. In this sense, the existence of open
source alternatives could be of great help to the software
engineering and cloud computing in general community.
There are some open source options available (like Euca-
lyptus16 and Nimbus17), but these are mostly focused on the
IaaS model. We still need more research dedicated to produce
16http://www.eucalyptus.com/17http://www.trynimbus.com/
a more comprehensive model that can be improved and used
to support cloud adoption in its different possibilities.
V. OTHER FINDINGS OF THE STUDY
The choice of a cloud service depends on the type of
application that will be used. Some options target developers,
some target end users and some target both. During the review,
we found some interesting information on studies describingthe benefits of cloud computing, and success stories involving
the paradigm. These are practical issues regarding the use
of cloud services and, more specifically, the development of
software for the cloud paradigm. In the following sections, we
try to compile this information, hoping it will be of practical
value to researchers and practitioners interested in developing
software for this emerging field.
A. SaaS vs SOA
Reviewing the literature, we noticed that there is some
confusion between the terms SaaS and Service-Oriented Ar-
chitecture (SOA). Laplante et al. [70] also pointed out such
confusion.
For example, Sharma et al. [71] do not distinguish between
the terms SOA and SaaS, proposing an approach focused
on interoperability that uses MDE to generate web services
descriptors (WSDL). The authors then refer to the approach
as SaaS development, but in fact it is closer to the concept of
SOA.
Laplante et al. [70] made a wide study of the characteristics
of these models and concluded that the fundamental difference
is: SOA is a model for building software and a SaaS is a model
for delivering it. While SOA is concerned with the creation
of services to compose a more flexible architecture for an
application, SaaS is concerned with the delivery of softwarefunctionality in the form of services, which may be provided
independently of the underlying architectural style.
To better understand the difference between SaaS and SOA,
we can cite Google Apps [72]. Google makes its applications
(Google mail, Google calendar, Google sites, etc) available to
companies that do not wish to share their information, as hap-
pens with normal users. To use such services, companies make
a paid subscription and do not need to worry about the internal
architecture of the applications, nor with their deployment and
maintenance in a private infrastructure. They simply use the
service and pay for what they use. In a comparison, we can
cite the Application Server Provider (ASP) model, where the
customer must acquire a license, and install the software insome particular infrastructure. Oracles JD Edwards ERP [73]
is an example of ASP.
As an example of SOA, we can cite systems that use service
composition to provide some final functionality. For example,
e-shopping web sites may use services from delivery com-
panies to calculate shipping fees and conditions and present
them to the user. Other services may help to compose the final
functionality. The distinguishing feature is that the internal
architecture makes explicit use of services to achieve more
8/9/2019 Software Engineering for the cloud: a research roadmap
7/10
flexibility and allow more specialized modules to be built [74],
[57].
As we can see, SaaS and SOA are distinct concepts. But
they are frequently used together, because these two models
complement each other. SaaS helps to provide the building
blocks for SOA, and SOA helps to implement SaaS more
rapidly [70], and this may be the source of the confusion.
B. Developing SaaS
From the software engineering point of view, the imple-
mentation of the SaaS model requires some specific concerns.
These arise from the service-oriented business model that is
normally adopted. As a first concern, the system providers
must implement some way to register the use of the services,
in order to allow billing, auditing, usage and accounting
reports [55], in order to support the Cloud Computing business
model [75]. Additional administrative functions are required
to support these new kinds of tasks, which are not necessary in
the traditional stand-alone software model. More importantly,
these extra tasks must not cause problems to the performance
or correctness of the software [76].Another concern is the existence of multiple customers
sharing the same infrastructure, each one with his/hers own
needs in terms of information, functionality and interface.
This is known as multi-tenant architecture [77], [78], and is a
concern that many SaaS developers have to worry about. Some
authors [79], [80], [81] have even proposed a SaaS maturity
model to categorize SaaS according to its support for multiple
tenants.
SaaS is normally accessed over the Internet [9]. In this
sense, developers also have to worry about availability, per-
formance, offline access to the software, and other concerns
that arise from this online nature of SaaS. These concerns add
extra complexity in relation to traditional stand-alone software.
C. Developing Software for the IaaS model
The IaaS model provides computational resources that lie
on the providers infrastructure. The target audience of this
model are normally infrastructure architects. These architects
do not need to worry about issues such as dynamic demands,
elasticity and scalability, which are handled by the provider
[6].
Regarding the developer, the IaaS model adds little to
his/her list of concerns. In this model, the development team
can create applications just as if it were developing for their
own dedicated private infrastructure. Differently from the PaaS
model (presented next) here the software usually does not haveany particular feature that demands special knowledge about
the providers infrastructure. In other words, any application
can be deployed in an infrastructure that is provided as a
service, as most IaaS providers have many options of virtual
machines, using the most common application servers and
other deployment technologies. This task also happens much
like the traditional way of deployment, because normally the
developers have unlimited access to the virtual machines, just
as if they were real, private machines.
However, some specific concerns arise, such as load bal-
ancing, automatic scalability, data storage services and other
functionality that may be used by applications and that must be
developed specifically for a particular provider. Open standards
and open source implementations, such as JClouds (an OCCI-
WG implementation) [82] can help to reduce some problems,
by providing a common layer that can communicate with
different providers.
Also, the developer must have in mind that, if a public IaaS
provider is being used, the software has to be delivered to the
end user through the Internet. The SaaS model is normally
used, although it is possible to use this infrastructure to host
legacy systems [37], to deliver a system under the ASP model,
or just to perform some kind of data processing [83].
D. Developing Software for the PaaS model
The PaaS model tries to leverage the flexibility of the
cloud model, by providing a complete platform for software
development. A cloud platform hides many of the complex-
ities of developing cloud software, and brings scalability
and elasticity to a different level. In the PaaS model, thedevelopment platform is provided as a service. Applications
that are developed for this particular platform can benefit from
a specific programming model, that can be fully managed by
the platform provider in a fine grained way [84].
The target audience of PaaS are system developers. When
developing for PaaS, a developer must adopt a platform and
its particular set of tools, libraries, technologies and standards
[37]. These may require some initial training, which may lead
to an initial loss of productivity. However, they can later help
to reduce development time by providing useful function-
ality, facilitating the development and distribution of cloud
applications [84], [85]. For example, Google App Engine
(an example of PaaS provider) has many functionalities for
image processing, image manipulation, user management and
authentication, data storage, location-based services, among
others [86]. As in the IaaS model, applications are hosted in
the providers infrastructure, and are made available through
the Internet, following the SaaS or another model.
The problem with this approach is the lock-in, already
discussed in Section IV-A, caused by the fixed set of tech-
nologies that must be adopted. But other than that, the benefits
make PaaS a very interesting approach for cloud application
development.
VI . RELATED WORK
The most influential related work in the area is the afore-
mentioned technical report from Berkeley [9]. In this report,
Armbrust et al. present the results of a six-month brain-
storming effort about the subject. The authors attempt to
clarify related terms and provide simple formulas to quantify
comparisons between the cloud model and the traditional
model. They also identify ten barriers for the success of cloud
computing, and present ten opportunities to overcome them,
much like we attempted to do in this paper.
8/9/2019 Software Engineering for the cloud: a research roadmap
8/10
Other perspectives of the cloud computing model can be
found in the literature: Narasimhan and Nichols [87] present
the point of view of cloud platform adopters; Wang et al. [7]
present a perspective of the technologies that lie behind the
cloud model. Many others explore related concepts [1], [88],
[89], [90], [91], [4], [92], [6], [40], [93].
Differently from other works, we attempted to present a
software engineering perspective on cloud computing. Like
Armbrust et al., we identified some challenges and research
opportunities, but focusing specifically on software engineer-
ing.
We also attempted to clarify some concepts and present
some practical issues related to the development of software
for the cloud. A better understanding of cloud computing will
allow the community to design more efficient mechanisms
which, as a consequence, will facilitate the adoption of this
model [4].
As discussed earlier, the cloud concept is more connected
to the market. Only recently it has been investigated by the
scientific community. There are relatively few publications,
although the number of papers related to this subject isincreasing. Many of these attempt to propose definitions for
cloud computing [4], [2], [6]. However, there is still no
widely accepted definition. In this paper, we used the one we
considered more complete [2].
VII. CONCLUDING REMARKS
The way cloud services are commercialized can cause deep
changes in the software industry, as long as software engineers
are able to unleash its full potential. This emerging computing
model still needs to be studied, and efforts are needed to solve
the current problems and overcome the challenges before the
cloud model becomes more well established.Although cloud-related terms have originated from the
industry, the academy has many opportunities to contribute.
In this paper we attempted to highlight possible directions in
which the software engineering area can approach the cloud
computing scenario. We wanted to share our observations
because, after a considerable review work, we believe to have
reached a point where we should compile the information. We
tried to point out other studies that do a similar job, and to
compile some interesting points that were not available in a
single study yet, at least not for the software engineering area.
In no way we believe the results of our observations are the
only and definitive list. The community is welcome to continue
the discussion and to increase this list as further research takes
place.
ACKNOWLEDGMENTS.
The authors would like to thank CAPES and FAPESP
(process number 2012/04549-4) for funding this research. We
would also like to thank the reviewers for their valuable
and insightful suggestions, in particular for pointing out the
challenge we describe in Section IV-B.
REFERENCES
[1] I. Foster, Y. Zhao, I. Raicu, and S. Lu, Cloud Computing and GridComputing 360-Degree Compared, in Grid Computing EnvironmentsWorkshop, 2008. GCE 08, 2008, pp. 110.
[2] L. M. Vaquero, L. Rodero-Merino, J. Caceres, and M. Lindner, Abreak in the clouds, ACM SIGCOMM Computer Communication
Review, vol. 39, no. 1, p. 50, 2008. [Online]. Available: http://dl.acm.org/citation.cfm?id=1496091.1496100
[3] S. Zhang, X. Chen, S. Zhang, and X. Huo, The comparison betweencloud computing and grid computing, in Computer Application andSystem Modeling (ICCASM), 2010 International Conference on, vol. 11,2010, pp. V1172 V1175.
[4] L. Youseff, M. Butrico, and D. Da Silva, Toward a Unified Ontology ofCloud Computing, in Grid Computing Environments Workshop, 2008.GCE 08, 2008, pp. 110.
[5] L. Mei, W. K. Chan, and T. H. Tse, A Tale of Clouds: ParadigmComparisons and Some Thoughts on Research Issues, in Asia-PacificServices Computing Conference, 2008. APSCC 08. IEEE, 2008, pp.464469.
[6] B. P. Rimal, E. Choi, and I. Lumb, A Taxonomy and Survey of CloudComputing Systems, in INC, IMS and IDC, 2009. NCM 09. Fifth
International Joint Conference on, 2009, pp. 4451.
[7] L. Wang, G. von Laszewski, A. Younge, X. He, M. Kunze, J. Tao,and C. Fu, Cloud Computing: a Perspective Study, New GenerationComputing, vol. 28, no. 2, pp. 137146, 2010. [Online]. Available:
http://dx.doi.org/10.1007/s00354-008-0081-5[8] Y. Chen, X. Li, and F. Chen, Overview and analysis of cloud computing
research and application, in E -Business and E -Government (ICEE),2011 International Conference on, 2011, pp. 14.
[9] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski,G. Lee, D. Patterson, A. Rabkin, I. Stoica, and M. Zaharia,Above the clouds: A Berkeley view of cloud computing, Dept.
Electrical Eng. and Comput. Sciences, University of California,Berkeley, Rep. UCB/EECS, vol. 28, 2009. [Online]. Available:http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf
[10] G. Candea, S. Bucur, and C. Zamfir, Automated software testing as aservice, inProceedings of the 1st ACM symposium on Cloud computing,ser. SoCC 10. New York, NY, USA: ACM, 2010, pp. 155160.[Online]. Available: http://doi.acm.org/10.1145/1807128.1807153
[11] W. K. Chan, L. Mei, and Z. Zhang, Modeling and testing of cloudapplications, in Services Computing Conference, 2009. APSCC 2009.
IEEE Asia-Pacific, 2009, pp. 111118.[12] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski,
G. Lee, D. Patterson, A. Rabkin, I. Stoica, and M. Zaharia, A viewof cloud computing, Commun. ACM, vol. 53, no. 4, pp. 5058, 2010.[Online]. Available: http://doi.acm.org/10.1145/1721654.1721672
[13] P. Mell and T. Grance, The NIST Definition of Cloud Computing, 2009. [Online]. Available: http://www.nist.gov/itl/cloud/upload/cloud-def-v15.pdf/
[14] J. Daniels, Server virtualization architecture and implementation,Crossroads, vol. 16, no. 1, pp. 812, 2009. [Online]. Available:http://doi.acm.org/10.1145/1618588.1618592
[15] K. University, Guidelines for performing Systematic Literature Reviewsin Software Engineering, 2007.
[16] B. Kitchenham, O. P. Brereton, D. Budgen, M. Turner, J. Bailey, andS. Linkman, Systematic literature reviews in software engineering A systematic literature review, Information and Software Technology,vol. 51, no. 1, pp. 715, 2009. [Online]. Available: http://www.
sciencedirect.com/science/article/pii/S0950584908001390[17] J. Biolchini, P. G. Mian, A. C. C. Natali, and G. H. Travassos, System-
atic Review in Software Engineering, 2005. [Online]. Available: http://www.cin.ufpe.br/~in1037/leitura/systematicReviewSE-COPPE.pdf
[18] S. N. Mafra and G. H. Travassos, Tcnicas de Leitura deSoftware: Uma Reviso Sistemtica, XIX Simpsio Brasileiro de
Engenharia de Software (SBES 2005), 2005. [Online]. Available: http://tcc-tonismar.googlecode.com/svn/trunk/TCC/Bibliografia/05-9612.pdf
[19] A. D. T. S. F. Elis Hernandes Augusto Zamboni, Avaliacaoda ferramenta StArt utilizando o modelo TAM e o paradigmaGQM, Experimental Software Engineering Latin American Workshop,
ESELAW2010, pp. 3039, 2010. [Online]. Available: http://www.inf.ufg.br/~eselaw2010/proceedings-eselaw2010.pdf\#page=37
8/9/2019 Software Engineering for the cloud: a research roadmap
9/10
[20] A. Ranabahu and A. Sheth, Semantics Centric Solutions for Applica-tion and Data Portability in Cloud Computing, in Cloud ComputingTechnology and Science (CloudCom), 2010 IEEE Second InternationalConference on, 2010, pp. 234241.
[21] (2012) OpenCloud Manifesto. [Online]. Available: http://www.opencloudmanifesto.org/
[22] (2012) Distribuited Managemente Task Force. [Online]. Available:http://www.dmtf.org/standards/cloud
[23] (2012) Open Cloud Computing Interface. [Online]. Available: http://occi-wg.org/
[24] N. Loutas, E. Kamateri, F. Bosi, and K. Tarabanis, Cloud ComputingInteroperability: The State of Play, in Cloud Computing Technologyand Science (CloudCom), 2011 IEEE Third International Conferenceon, 2011, pp. 752757.
[25] M. Vukolic, The byzantine empire in the intercloud, SIGACTNews, vol. 41, no. 3, pp. 105111, Sep. 2010. [Online]. Available:http://doi.acm.org/10.1145/1855118.1855137
[26] R. France and B. Rumpe, Model-driven Development of ComplexSoftware: A Research Roadmap, in 2007 Future of Software
Engineering, ser. FOSE 07. Washington, DC, USA: IEEE ComputerSociety, 2007, pp. 3754. [Online]. Available: http://dx.doi.org/10.1109/FOSE.2007.14
[27] H. Brunelire, J. Cabot, and F. Jouault, Combining Model-Driven Engineering and Cloud Computing, 2010. [On-line]. Available: http://hal.archives-ouvertes.fr/docs/00/53/91/68/PDF/CombiningMDE-CloudComputing\_2010.pdf
[28] R. Sharma and M. Sood, A Model Driven Approach to Cloud SaaS In-teroperability, International Journal of Computer Applications, vol. 30,no. 8, pp. 18, 2011.
[29] X. Jiang, Y. Zhang, and S. Liu, A Well-designed SaaS ApplicationPlatform Based on Model-driven Approach, in Grid and CooperativeComputing (GCC), 2010 9th International Conference on, 2010, pp.276281.
[30] P. Saripalli and G. Pingali, MADMAC: Multiple AttributeDecision Methodology for Adoption of Clouds, in 2011
IEEE 4th International Conference on Cloud Computing.IEEE, Jul. 2011, pp. 316323. [Online]. Available: http:
//ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6008725
[31] S. Frey and W. Hasselbring, An Extensible Architecture for DetectingViolations of a Cloud Environments Constraints during Legacy Soft-ware System Migration, in Software Maintenance and Reengineering(CSMR), 2011 15th European Conference on, Mar. 2011, pp. 269278.
[32] A. Khajeh-Hosseini, I. Sommerville, J. Bogaerts, and P. Teregowda,
Decision Support Tools for Cloud Migration in the Enterprise, inCloud Computing (CLOUD), 2011 IEEE International Conference on ,Jul. 2011, pp. 541548.
[33] S. Zardari and R. Bahsoon, Cloud adoption: a goal-orientedrequirements engineering approach, in Proceedings of the 2nd
International Workshop on Software Engineering for Cloud Computing,ser. SECLOUD 11. New York, NY, USA: ACM, 2011, pp. 2935.[Online]. Available: http://doi.acm.org/10.1145/1985500.1985506
[34] A. Khajeh-Hosseini, D. Greenwood, J. W. Smith, and I. Sommerville,The Cloud Adoption Toolkit: supporting cloud adoption decisions inthe enterprise, Software: Practice and Experience, vol. 42, no. 4, pp.447465, 2012. [Online]. Available: http://dx.doi.org/10.1002/spe.1072
[35] C.-Y. Yam, A. Baldwin, S. Shiu, and C. Ioannidis, Migration toCloud as Real Option: Investment Decision under Uncertainty, in Trust,Security and Privacy in Computing and Communications (TrustCom),2011 IEEE 10th International Conference on, 2011, pp. 940949.
[36] E. M. Ezzat, D. S. E. Zanfaly, and M. M. Kota, Fly over clouds or drive
through the crowd: A cloud adoption framework, in Current Trendsin Information Technology (CTIT), 2011 International Conference andWorkshop on, 2011, pp. 611.
[37] M.-E. F. D. Esparza-Peidro J., Towards the next generation of modeldriven cloud platforms, in CLOSER 2011 - Proceedings of the 1st
International Conference on Cloud Computing and Services Science,2011, pp. 494500.
[38] M. A. Chauhan and M. A. Babar, Migrating Service-Oriented Systemto Cloud Computing: An Experience Report, in 2011 IEEE 4th
International Conference on Cloud Computing. IEEE, Jul. 2011, pp.404411. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6008736
[39] X. Meng, J. Shi, X. Liu, H. Liu, and L. Wang, Legacy Application
Migration to Cloud, in Cloud Computing (CLOUD), 2011 IEEE Inter-national Conference on, 2011, pp. 750751.
[40] V. Tran, J. Keung, A. Liu, and A. Fekete, Application migrationto cloud: a taxonomy of critical factors, in Proceedings of the 2nd
International Workshop on Software Engineering for Cloud Computing,ser. SECLOUD 11. New York, NY, USA: ACM, 2011, pp. 2228.[Online]. Available: http://doi.acm.org/10.1145/1985500.1985505
[41] I. J. A. J. G. R. H. Arrieta L.O.-E., From software-AS-A-GOOD TOSAAS: Challenges and needs: Developing a tool supported methodologyfor the migration of non-saas applications to SaaS, in ICSOFT 2011
- Proceedings of the 6th International Conference on Software andDatabase Technologies, vol. 2, 2011, pp. 257260.
[42] P. Mohagheghi, A. Berre, A. Henry, F. Barbier, and A. Sadovykh,REMICS-REuse and Migration of Legacy Applications to InteroperableCloud Services, Towards a Service-Based Internet, pp. 195196, 2010.
[43] S. Venugopal, S. Desikan, and K. Ganesan, Effective Migration ofEnterprise Applications in Multicore Cloud, in Utility and CloudComputing (UCC), 2011 Fourth IEEE International Conference on,2011, pp. 463468.
[44] A. Khajeh-Hosseini, D. Greenwood, and I. Sommerville, Cloud Migra-tion: A Case Study of Migrating an Enterprise IT System to IaaS, inCloud Computing (CLOUD), 2010 IEEE 3rd International Conferenceon, 2010, pp. 450457.
[45] P. Mohagheghi and T. S andther, Software Engineering Challengesfor Migration to the Service Cloud Paradigm: Ongoing Work in theREMICS Project, in Services (SERVICES), 2011 IEEE World Congresson, 2011, pp. 507514.
[46] S. Frey, W. Hasselbring, and B. Schnoor, Automatic conformancechecking for migrating software systems to cloud infrastructuresand platforms, Journal of Software Maintenance and Evolution:
Research and Practice, pp. n/a-n/a, 2012. [Online]. Available:http://dx.doi.org/10.1002/smr.582
[47] H. Zhou, H. Yang, and A. Hugill, An Ontology-Based Approachto Reengineering Enterprise Software for Cloud Computing, in2010 IEEE 34th Annual Computer Software and ApplicationsConference. IEEE, Jul. 2010, pp. 383388. [Online]. Available: http:
//ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5676282
[48] P. Makris, D. N. Skoutas, P. Rizomiliotis, and C. Skianis, A User-Oriented, Customizable Infrastructure Sharing Approach for HybridCloud Computing Environments, in Cloud Computing Technology andScience (CloudCom), 2011 IEEE Third International Conference on,2011, pp. 432439.
[49] S. Yan, B. S. Lee, G. Zhao, D. Ma, and P. Mohamed, Infrastructure
management of hybrid cloud for enterprise users, in Systems and Virtu-alization Management (SVM), 2011 5th International DMTF AcademicAlliance Workshop on, 2011, pp. 16.
[50] C. Atkinson, T. Schulze, and S. Klingert, Modelling as a Service(MaaS): Minimizing the Environmental Impact of Computing Services,inServices (SERVICES), 2011 IEEE World Congress on, 2011, pp. 519523.
[51] J. DeFranco-Tommarello and F. P. Deek, Collaborative software de-velopment: a discussion of problem solving models and groupwaretechnologies, inSystem Sciences, 2002. HICSS. Proceedings of the 35th
Annual Hawaii International Conference on, 2002, pp. 568577.
[52] C.-L. Ignat, Annotation of concurrent changes in collaborative softwaredevelopment, in Intelligent Computer Communication and Processing,2008. ICCP 2008. 4th International Conference on, 2008, pp. 137144.
[53] M. Farwick, B. Agreiter, J. White, S. Forster, N. Lanzanasto, andR. Breu, A Web-Based Collaborative Metamodeling Environment withSecure Remote Model Access, in Web Engineering, ser. Lecture Notes
in Computer Science, B. Benatallah, F. Casati, G. Kappel, and G. Rossi,Eds. Springer Berlin / Heidelberg, 2010, vol. 6189, pp. 278291.[Online]. Available: http://dx.doi.org/10.1007/978-3-642- 13911-6\_19
[54] F. Prez Andrs, J. Lara, and E. Guerra, Applications of GraphTransformations with Industrial Relevance, A. Schrr, M. Nagl, andA. Zndorf, Eds. Berlin, Heidelberg: Springer-Verlag, 2008, ch.Domain Spe, pp. 8297. [Online]. Available: http://dx.doi.org/10.1007/978-3-540-89020-1\_7
[55] L. Liu, M. Song, X. Luo, H. Bai, S. Wang, and J. Song, An implemen-tation of the online-payment platform based on SaaS, in Web Society(SWS), 2010 IEEE 2nd Symposium on, 2010, pp. 658662.
[56] E. G. da Silva, L. F. Pires, and M. van Sinderen, Towards runtimediscovery, selection and composition of semantic services, Computer
8/9/2019 Software Engineering for the cloud: a research roadmap
10/10
Communications, vol. 34, no. 2, pp. 159168, 2011. [Online]. Available:http://www.sciencedirect.com/science/article/pii/S0140366410001714
[57] T. P. D. S. L. F. Papazoglou M.P., Service-oriented computing: Aresearch roadmap, International Journal of Cooperative InformationSystems, vol. 17, no. 2, pp. 223255, 2008. [Online]. Available:http://www.worldscinet.com/ijcis/17/1702/S0218843008001816.html
[58] B. N. R. I. D. J. L. Y. D. A. F. L. M. S. S. P. M. Villegas D., Cloudfederation in a layered service model, Journal of Computer and SystemSciences, vol. 78, no. 5, pp. 13301344, 2012.
[59] M. A. AlZain, E. Pardede, B. Soh, and J. A. Thom, Cloud
Computing Security: From Single to Multi-clouds, in 2012 45thHawaii International Conference on System Sciences. IEEE, Jan.2012, pp. 54905499. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6149560
[60] T. Liu, Y. Katsuno, K. Sun, Y. Li, T. Kushida, Y. Chen, andM. Itakura, Multi Cloud Management for unified cloud servicesacross cloud sites, in 2011 IEEE International Conference onCloud Computing and Intelligence Systems. IEEE, Sep. 2011, pp.164169. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6045053
[61] P. Jain, D. Rane, and S. Patidar, A Novel Cloud Bursting Brokerageand Aggregation (CBBA) Algorithm for Multi Cloud Environment,in Advanced Computing Communication Technologies (ACCT), 2012Second International Conference on, 2012, pp. 383387.
[62] J. L. Lucas Simarro, R. Moreno-Vozmediano, R. S. Montero, and I. M.Llorente, Dynamic placement of virtual machines for cost optimizationin multi-cloud environments, in High Performance Computing andSimulation (HPCS), 2011 International Conference on, Jul. 2011, pp.17.
[63] R. Moreno-Vozmediano, R. S. Montero, and I. M. Llorente, MulticloudDeployment of Computing Clusters for Loosely Coupled MTC Applica-tions,Parallel and Distributed Systems, IEEE Transactions on, vol. 22,no. 6, pp. 924930, Jun. 2011.
[64] C. Peltz, Web services orchestration and choreography, Computer,vol. 36, no. 10, pp. 4652, 2003.
[65] A. Al Falasi and M. Adel Serhani, A Framework for SLA-basedcloud services verification and composition, in 2011 InternationalConference on Innovations in Information Technology. IEEE, Apr.2011, pp. 287292. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5893834
[66] P. de Leusse, P. Periorellis, P. Watson, and A. Maierhofer, Secure#x00026; Rapid Composition of Infrastructure Services in the Cloud,in Sensor Technologies and Applications, 2008. SENSORCOMM 08.
Second International Conference on, 2008, pp. 770775.[67] J. O. Gutierrez-Garcia and K.-M. Sim, Self-Organizing Agents forService Composition in Cloud Computing, in Cloud Computing Tech-nology and Science (CloudCom), 2010 IEEE Second InternationalConference on, 2010, pp. 5966.
[68] W.-T. Tsai, P. Zhong, J. Balasooriya, Y. Chen, X. Bai, and J. Elston, AnApproach for Service Composition and Testing for Cloud Computing,inAutonomous Decentralized Systems (ISADS), 2011 10th InternationalSymposium on, 2011, pp. 631636.
[69] L. Zhang, H. Guo, F. Tao, Y. L. Luo, and N. Si, Flexible managementof resource service composition in cloud manufacturing, in Industrial
Engineering and Engineering Management (IEEM), 2010 IEEE Inter-national Conference on, 2010, pp. 22782282.
[70] P. A. Laplante, J. Zhang, and J. Voas, Whats in a Name?Distinguishing between SaaS and SOA, IT Professional, vol. 10, no. 3,pp. 4650, May 2008. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=4525542
[71] S. M. S. D. Sharma R., Modeling cloud SaaS with SOA and MDA,Communications in Computer and Information Science, vol. 190 CCIS,no. PART 1, pp. 511518, 2011.
[72] (2012) Google Apps. [Online]. Available: http://www.google.com/apps/intl/en/business/index.html
[73] (2012) Oracles JD Edwards. [Online]. Available: http://www.oracle.com/us/products/applications/jd-edwards-enterpriseone/index.html
[74] M. P. Papazoglou, P. Traverso, S. Dustdar, and F. Leymann, Service-Oriented Computing: State of the Art and Research Challenges, Com-
puter, vol. 40, no. 11, pp. 3845, 2007.
[75] V. Chang, D. Bacigalupo, G. Wills, and D. De Roure, ACategorisation of Cloud Computing Business Models, in 2010 10th
IEEE/ACM International Conference on Cluster, Cloud and Grid
Computing. IEEE, 2010, pp. 509512. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5493445
[76] A. D. H. Farrell, M. J. Sergot, M. Salle, C. Bartolini, D. Trastour, andA. Christodoulou, Performance monitoring of service-level agreementsfor utility computing using the event calculus, in Electronic Contract-ing, 2004. Proceedings. First IEEE International Workshop on, 2004,pp. 1724.
[77] R. A. Sengupta B., Engineering multi-tenant Software-as-a-Servicesystems, in Proceedings - International Conference on Software En-gineering, 2011, pp. 1521.
[78] Z. J. L. J. Zhu Y., Solution for transforming web application to multi-tenant SaaS application, Lecture Notes in Electrical Engineering, vol.141 LNEE, no. VOL. 1, pp. 181188, 2012.
[79] F. Chong and G. Carraro, Architecture strategies for catching the longtail, MSDN Library, Microsoft Corporation, pp. 910, 2006.
[80] A. V. Hudli, B. Shivaradhya, and R. V. Hudli, Level-4 SaaSapplications for healthcare industry, in Proceedings of the 2nd
Bangalore Annual Compute Conference, ser. COMPUTE 09. NewYork, NY, USA: ACM, 2009, pp. 19:1-19:4. [Online]. Available:http://doi.acm.org/10.1145/1517303.1517324
[81] T. Kwok, T. Nguyen, and L. Lam, A Software as a Service with Multi-tenancy Support for an Electronic Contract Management Application,in Services Computing, 2008. SCC 08. IEEE International Conferenceon, vol. 2, 2008, pp. 179186.
[82] (2012) Jclouds. [Online]. Available: http://www.jclouds.org/l[83] D. Warneke and O. Kao, Exploiting Dynamic Resource Allocation for
Efficient Parallel Data Processing in the Cloud,Parallel and Distributed
Systems, IEEE Transactions on, vol. 22, no. 6, pp. 985997, 2011.[84] C. Lv, Q. Li, Z. Lei, J. Peng, W. Zhang, and T. Wang, PaaS: A
revolution for information technology platforms, in Educational andNetwork Technology (ICENT), 2010 International Conference on, 2010,pp. 346349.
[85] Z. Shu-Qing and X. Jie-Bin, The Improvement of PaaS Platform, inNetworking and Distributed Computing (ICNDC), 2010 First Interna-tional Conference on, 2010, pp. 156159.
[86] (2012) Google App Engine. [Online]. Available: https://appengine.google.com/
[87] B. Narasimhan and R. Nichols, State of Cloud Applications andPlatforms: The Cloud Adopters View, Computer, vol. 44, no. 3, pp.2428, Mar. 2011. [Online]. Available: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5719574
[88] T. Grandison, E. M. Maximilien, S. Thorpe, and A. Alba, Towards aFormal Definition of a Computing Cloud, in Services (SERVICES-1),2010 6th World Congress on, 2010, pp. 191192.
[89] R. Guha and D. Al-Dabass, Impact of Web 2.0 and Cloud ComputingPlatform on Software Engineering, in Electronic System Design (ISED),2010 International Symposium on, 2010, pp. 213218.
[90] W. Kim, Cloud architecture: A preliminary look, in ACM InternationalConference Proceeding Series, 2011, pp. 26. [Online]. Available:http://www.scopus.com/inward/record.url?eid=2-s2.0-84856938421\&partnerID=40\&md5=8369a4ca41fa721d61f8e2278acca5ce
[91] L. Mei, Z. Zhang, and W. K. Chan, More Tales of Clouds: SoftwareEngineering Research Issues from the Cloud Application Perspective,in Computer Software and Applications Conference, 2009. COMPSAC09. 33rd Annual IEEE International, vol. 1, 2009, pp. 525530.
[92] C. E. Rimal B.P., A service-oriented taxonomical spectrum, cloudychallenges and opportunities of cloud computing, International Journalof Communication Systems, vol. 25, no. 6, pp. 796819, 2012.
[93] L.-J. Zhang and Q. Zhou, CCOA: Cloud Computing Open Architec-ture, inWeb Services, 2009. ICWS 2009. IEEE International Conferenceon, 2009, pp. 607616.