Software Engineering for the cloud: a research roadmap

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.