Keywords

1 Introduction

Cloud computing is a paradigm shift that enables scalable processing and storage over distributed, networked commodity machines [1]. The main characteristics of cloud services are: on-demand self-service, ubiquitous network access, location independent resource pooling, rapid elasticity, and measured service [2]. Cloud computing technology is classified into Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). And their deployment models as public, private, community and hybrid [2].

The use of cloud services enables companies to pay only for what they use with regard to computing and network resources, rather than having to invest in IT resources, and staff to support all the hardware and software needs. Cloud computing has associated benefits and also challenges. One of these challenges is related to its adoption, more specifically, the migration of existing application to cloud computing. There are few studies as reported in [3, 4] that present the evaluation of different cloud platforms for performance indicators. Nevertheless, there is not sufficient literature available to support on process for migrating existing applications to cloud.

The paper is organized as follows: Sect. 2 discusses related work. Section 3 presents the protocol we defined. Section 4 describes the results obtained. Section 5 discusses the threats to the validity of the results, and finally, Sect. 6 presents our conclusions and suggest areas for further investigation.

2 Related Work

Cloud computing is a relatively new field in software engineering, this may be a reason why there are few secondary studies related to cloud migration. Yunus presents costs and risks of application migration [5], while Louridas [6] discussed the migration of applications to the cloud examining key features of cloud offerings based on the taxonomy from [7]. Khajeh-Hosseini et al. [8] illustrated the potential benefits and risks associated with the migration of an IT system to Amazon EC2 from a broad variety of stakeholder perspectives across the enterprise, thus transcending the typical, yet narrow, financial and technical analysis offered by providers.

Kothari and Arumugam introduce guidelines to assess the feasibility of migrating applications to the cloud and suggest a general migration strategy for applications [9] while Sattaluri discusses different aspects that need to be considered during application migration [10]. On the other hand, Mossburg lists four important points that lead to a successful cloud migration [11].

All these studies are different from our work in the sense that they provide general instructions or technology-specific issues related to cloud migration and do not gather knowledge from other sources. Furthermore, these approaches are focused on the IaaS level and not to PaaS nor SaaS levels.

With respect to methodologies, cloud service providers such as Microsoft, Amazon, and Cisco also provide guidelines for migrating legacy applications to their platforms [4, 12,13,14]. Tran et al. [15] presented a taxonomy of critical factors emphasizing that a migration to cloud platforms is not an easy task: some changes need to be made to deal with differences in software environments, such as programming model and data storage APIs, as well as varying performance qualities.

Andrikopoulos et al. [16] focus on the challenges and solutions for each layer when migrating different parts of the application to the Cloud. They categorized different migration types and identify the potential impact and adaptation needs for each of these types on the application layers. They also investigate various cross-cutting concerns that need to be considered for the migration, and position them with respect to the identified migration types.

In our previous work [17], we conducted a similar study with fewer criteria, the results indicated research into cloud computing migration is still in its early stages. We identified research gaps: (i) MDD approach had been rarely used in the process to migrate SOA applications to Cloud environments; and (ii) Some quality characteristics which we consider relevant in applications (reliability, maintainability, portability) had not received appropriate coverage.

Finally, there are several works about how to migrate SOA and other legacy applications to the cloud but there is a need of gathering this knowledge and to identify the existing research gaps and those aspects that are well-addressed in practice.

3 Research Method

We have performed a systematic mapping study by considering the guidelines that are provided in works as those [18,19,20]. A systematic mapping study is a means of categorizing and summarizing the existing information about a research question in an unbiased manner. The study was performed in three stages: Planning, Conducting, and Reporting. The activities concerning the planning and conducting stages of our systematic mapping study are described in the following sub-sections and the reporting stage is presented in Sect. 4.

3.1 Planning Stage

In this stage, we performed the following activities in order to establish a review protocol: (1) Establishment of the research question; (2) Definition of the search strategy, (3) Selection of primary studies, (4) Quality assessment, (5) Definition of the data extraction strategy, and (6) Selection of synthesis methods. Each of them is explained in detail as follows.

Research question. The goal of our study is to examine the current use of strategies of migration of SOA applications to Cloud Computing environments from the point of view of the following research question: How researchers and practitioners migrate their SOA applications to Cloud Computing environments and which is the effect on the quality? Since our research question is too broad, it has been decomposed into more detailed sub-questions: RQ1: Which strategies are used to migrate Service-Oriented Architecture applications to Cloud computing environments? RQ2: Which are the consequences of the migration on the product quality? RQ3: Which type of support is used to migrating SOA applications to Cloud Computing environments? RQ4: How is addressed the academic and industry research on migrating SOA applications to Cloud Computing environments?

Search strategy. The main digital libraries that were used to search for primary studies were: IEEEXplore, ACM Digital Library, Science Direct, and Springer Link. We also manually searched on relevant conference proceedings: Cloud Computing, and IEEE CLOUD. In order to perform the automatic search of the selected digital libraries, we used a search string (see Table 1). It was carried out in March 2017, and the period reviewed included studies published from 2006 to 2016 (inclusive). This starting date was selected because 2006 was the year in which Amazon Inc. officially launched Amazon Web Services [21], and after following up the references of the preliminary studies Cloud Computing has started to appear in the Web Engineering field.

Selection of primary studies. Each study was evaluated in order to decide whether or not it should be included (considering the title, abstract and keywords). The studies that met at least one of the following inclusion criteria were included: (1) Papers presenting migration strategies SOA applications to the Cloud. (2) Papers presenting examples or empirical studies (e.g., study cases, experiments) about migration strategies to Cloud Computing environments.

Table 1. Search string applied.

The studies that met at least one of the following exclusion criteria were excluded:

  • Introductory papers for special issues, books or workshops.

  • Duplicate reports of the same study in different sources.

  • Papers with less than five pages.

  • Papers not written in English.

Quality assessment. In addition to general inclusion/exclusion criteria, it is considered critical to assess the quality of primary studies. A three-point Likert-scale questionnaire was designed to provide a quality assessment of the selected studies. The questions were:

  1. 1.

    The study presents strategies to migrate SOA applications to the Cloud.

  2. 2.

    The study has been published in a relevant journal or conference.

  3. 3.

    The study has been cited by other authors.

The possible answers to these questions were: I agree (+1), Partially (0), and I do not agree (−1).

Data extraction strategy. It was based on providing the set of possible answers for each research sub-question that had been defined. The possible answers to each research sub-question are explained in more detail as follows.

With regard to RQ1 (Strategies used to migrate SOA applications to Cloud), we consider the following C1–C5 extraction criteria:

  • C1: Migration strategies: we consider 2 migration strategies.

    1. 1.

      Conventional: if the paper uses a manual migration strategy.

    2. 2.

      MDD: if the paper uses a strategy based on models and transformations [22].

  • C2: Migration approaches: we consider 4 migration approaches [23].

    1. 1.

      Rehost: migration of the application without changing its architecture.

    2. 2.

      Refactor: migration of the application to a different hardware environment and/or change the application infrastructure configuration without changing its external behavior.

    3. 3.

      Revise: migration to modify or extend the existing base code to support legacy modernization requirements.

    4. 4.

      Rebuild: migration to rebuild a solution, discarding the code of the existing application and re-architecturing the application.

  • C3: Migration types: we consider 4 migration types [16].

    1. 1.

      Replace components: one or more (architectural) components are replaced by cloud services.

    2. 2.

      Partially migrate: to migrate some of the application functionality to the cloud, such as application layers, and architectural components.

    3. 3.

      Migrate the whole software stack: to move the application that is encapsulated in VMs and run it on the cloud.

    4. 4.

      Cloudify: to complete migrate the application to the cloud.

  • C4: Deployments model: we consider 4 model deployments [2].

    1. 1.

      Private: provisioned for exclusive use by a single organization comprising multiple consumers.

    2. 2.

      Community: provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns.

    3. 3.

      Public: provisioned for open use by the general public.

    4. 4.

      Hybrid: provisioned as a composition of two or more distinct cloud infrastructures (private, community, or public).

  • C5: Service models: we consider 3 service models [2].

    1. 1.

      Software as a Service (SaaS): the capability provided to the consumer is to use the provider applications running on a cloud infrastructure.

    2. 2.

      Platform as a Service (PaaS): the capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider.

    3. 3.

      Infrastructure as Service (IaaS): the capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications.

  • With regard to RQ2 (C6: Quality aspects considered in the migration), we consider the quality characteristics from the ISO/IEC 25010 standard SQuaRE [24].

  • With regard to RQ3 (C7: Type of support used in the migration), we consider the following answers:

    1. 1.

      Automated: if it presents a tool that automatically performs the entire migration or a large portion of the migration.

    2. 2.

      Semi-automated: if it presents a partially migration using a software tool.

    3. 3.

      Manual: if it presents an approach that is performed manually, signifying that the migration can be computer-aided but that the main tasks need to be performed by a human.

    Finally, with regard to RQ4 (Addressing of migration), we consider the following C8–C12 extraction criteria:

  • C8: Phase(s) in which the studies are based: one or more ISO/IEC 12207 [25] high-level processes:

    1. 1.

      Requirements: if the artifacts that are used as input for the migration include high-level specifications of the application (e.g., task models, uses cases, usage scenarios).

    2. 2.

      Design: if the migration is conducted on the intermediate artifacts that are created during the development process (e.g., navigational models, abstract user interface models, dialog models).

    3. 3.

      Implementation: if the migration is conducted at the final user interface or once the application is completed.

  • C9: Artifacts involved:

    1. 1.

      Models/Transformations: the artifacts used for the migration include models or transformations (e.g., uses cases, class diagrams, transformations).

    2. 2.

      Source code: the artifacts used for the migration include any collection of computer instructions.

    3. 3.

      Others: the artifacts used for the migration include elements not mentioned above (e.g., components, tasks, VMs images, databases).

  • C10: Type of validation: types of validations [26]:

    1. 1.

      Survey: if it provides an investigation performed in retrospect.

    2. 2.

      Case study: if it provides an observational study in which data is collected during real/simulated environments.

    3. 3.

      Experiment controlled: if it provides a formal, rigorous, and controlled investigation that is based on verifying hypotheses. (d) Others: if it provides others forms not mentioned above (e.g., examples).

  • C11: Usage scope: the context in which the migration strategy has been defined or used (industrial and/or academic).

  • C12: Environment of use: the environment in which the migration strategy has been defined or used (mobile application, Web application, Ubiquitous, Extension).

Synthesis method. We applied both quantitative and qualitative synthesis methods. The quantitative synthesis was based on:

  • Counting the primary studies that are classified in each answer from our research sub-questions.

  • Counting the number of papers found in each bibliographic source per year.

The qualitative synthesis is based on including several representative studies for each criterion by considering the results from the quality assessment.

3.2 Conducting Stage

The application of the review protocol yielded the following preliminary results (see Table 2): A total of 105 research papers were therefore selected in accordance with the inclusion criteria.

Table 2. Results of conducting stage.

4 Results

The overall results, which are based on counting the primary studies that are classified in each of the answers to our research sub-questions, are presented in Table 3. The included papers which are cited in this section as [SXX] are referred to Appendix A.

Table 3. Results of conducting stage.

Migration strategies. The results for criteria C1 (migration strategies) revealed around 93% of the papers reviewed presented conventional strategy (e.g., Babar et al. [S04], and Tran et al. [S30]). The remaining 7% of the studies reported the use of MDD strategy. MDD approaches rely on models as a means of abstracting the development process from the peculiarities of each cloud platform. These results may indicate that there are few studies that used this strategy to migrate existing system to cloud computing environment (e.g., Guillen et al. [S14], and Mohagheghi et al. [S25]).

Migration approaches. The results for criteria C2 (migration approaches) revealed that the most frequently used migration way is rehost, with around 72% of the papers reviewed (e.g., Li et al. [S22], and Zhou et al. [S33]). Refactor account for around 17% of the papers reviewed (e.g., Beserra et al. [S05], and Chee et al. [S09]). Rebuild account for around 11% of the papers reviewed (e.g., Cai et al. [S06], and Song et al. [S28]).

Migration types. The results for criteria C3 (migration types) revealed around 57% of the papers reviewed presented Migrate the whole software stack (e.g., Suen et al. [S29]). On the other hand, cloudify account for around 31% of the papers reviewed (e.g., Lamberti et al. [S21]). Lastly, partially migrate account for around 12% (e.g., Gerhards et al. [S12]).

Deployment models. The results for criteria C4 (deployment models) revealed around 23% of the papers reviewed select private. On the other hand, around 17% present public (e.g., Khajeh-Hosseini et al. [S20]). Finally, hybrid account for around 60% of the papers reviewed (e.g., Fan et al. [S11], and Hajjat et al. [S15]).

Service models. The results for criteria C5 (service deployments) revealed around 46% of the papers reviewed presented Infrastructure as a Service (e.g., Khajeh-Hosseini et al. [S19], and Lloyd et al. [S23]). Platform as a Service (PaaS) account for around 25% (e.g., Menzel et al. [S24]). Finally, Software as a Service (SaaS) account for around 30% of the papers reviewed (e.g., Azeemi et al. [S03]).

Quality aspects. The results for criteria C6 (quality aspects) revealed the most frequently quality aspects were performance/efficiency and security with around 27% and 22% respectively. The rationale is because of the elasticity property of applications where quick and secure deployment is typically required. Others quality aspects as maintainability and compatibility account for around 11% and 7% respectively. This is in line with some claims stated by other researchers such as “Quality aspects such as maintainability to play a minor role because the cloud providers is responsible of this part their platforms". We found following example for these aspects in Guillen et al. [S13]. On the other hand, reliability and portability account with 17% and 16% respectively received less considerations (e.g., Babar et al. [S04]).

Type of support employed. The results for criteria C7 (type of support) revealed around 6% of the papers reviewed considered semi-automated MDD (e.g., Guillen et al. [S14], Mohagheghi et al. [S25]) used Model-Driven Development to implement the cloud migration. On the other hand, around 16% present manual conventional. The findings is because they did not use any tool to carry out the cloud migration. Finally, the most addressed types of support were semi-automated and automated fulfilled in conventional strategy with 51% and 25% respectively. The rationale is because the majority of studies used tool that let the cloud migration with intervention of developers, or only the tool implemented the cloud migration (e.g., Juan-Verdejo et al. [S17], Kempf et al. [S18], and Khajeh-Hosseini et al. [S20]).

Phase(s) in which the studies are based. The results for criteria C8 (Phase in which the studies are based) indicated the less addressed phases were analysis and design with 9% and 6% respectively of the papers reviewed (e.g., Andrikopoulos et al. [S02], and Qiu et al. [S27]). Finally, the majority of the studies reviewed are based at implementation. We identified a representative example in Chen et al. [S10].

Artifacts involved. The results for criteria C9 (artifacts involved) revealed the most frequently artifacts involved was others (e.g., architecture, components, VMs, service) account for around 51 (48%) of the studies reviewed (e.g., Beserra et al. [S05]). On the other hand, models/transformation account for around 7% of the papers reviewed considered (e.g., Mohagheghi et al. [S25]). Lastly, around 45% of the papers reviewed implicated at source code (e.g., Chauhan et al. [S07]).

Type of validation. The results for criteria C10 (type of validation) revealed around 33% of the papers reviewed presented case studies, in order to validate their approaches. This is an encouraged result since it improves the situation described in a systematic review presented in [27] which stated a lack of rigorous empirical studies for Web Engineering research (e.g., Vu et al. [S32]). However, others (e.g., examples) account for around 12% (e.g., Venugopal et al. [S31]). Beside, experiments account for around 53%. Experiments should be more employed since they provide a high level of control and are useful for evaluating approaches in a more rigorous way (e.g., Lamberti et al. [S21]). Finally, surveys are the less preferred study accounting for 2%.

Approach usage. The results for criteria C11 (Approach usage) revealed the majority of the studies have been performed from the academic research viewpoint account for around 83% (e.g., Hao et al. [S16]). However, it is also important to note that a worthy 17% of the studies were performed from the industry research viewpoint (e.g., Pfitzmann et al. [S26]).

Environment of use. The results for criteria C12 (Environment of use) revealed around 75% of the papers reviewed have been performed in web applications (e.g., Chauhan et al. [S07]). On the other hand, around 8% of the papers reviewed have been implemented mobile applications (e.g., Amoretti et al. [S01]). Amoretti et al. illustrated an approach based on service mobility, which allows systems to cope with highly dynamic environmental conditions. Others (e.g., Ubiquitous) account for around 7%, and finally, the 10% of the studies have been fulfilled to extension (e.g., Suen et al. [S29]).

It is worthy to mention that the analysis of the number of research studies on cloud migration showed that there has been a growth of interest on this topic since 2009. Figure 1 shows the number of selected publications by year and source. We believe that this growing interest supports the relevance of conducting evidence-based studies in this area.

Fig. 1.
figure 1

Number of publications by year and source.

The criteria were combined to establish a mapping with the aim of providing an overview of migration strategies. This mapping allows us to obtain more information about how the results from each criterion are related to the others, and what the possible research gaps are. Due to space reasons, Fig. 2 only shows one of the bubble plots which is related to the comparison of criterion C1 “migration strategies” against the C2 “migration types”, C9 “artifacts” and C10 “type of validation”. Other bubble plots are available at http://www.win.tue.nl/~mbottoto/resources/citi2017.

Fig. 2.
figure 2

Mapping results obtained from the combination of C1 against C2, C9 and C10.

5 Threats to Validity

The main limitations of this study are the scope of our research questions, publication and selection bias, inaccuracy in data extraction, and misclassification.

The scope of our research question was limited to the migration SOA applications to cloud computing environment. However, we realized during the conduction of this mapping that migration using model-driven development paradigm is an interesting extension which will be explored as further work.

Publication bias refers to the problem that positive results are more likely to be published than negative results [20]. We are aware about this inherent limitation to our bibliographic sources. With regard to publication selection bias, we chose the sources where papers about cloud migration are normally published, and we compared the retrieved papers against a small sample which was previously identified as relevant papers to appear. However, we did not consider some other bibliographic sources such as Google Scholar or Wiley that may have affected the completeness of our systematic mapping. Moreover, since our bibliographical search was conducted at the end of December of 2016, some papers not yet indexed in this last period were not considered. Finally, we attempted to alleviate the threats of inaccuracy in data extraction and misclassification by conducting the classifications of the papers with three reviewers and solving the discrepancies by consensus.

6 Conclusions

This study presented a systematic mapping study in order to address how researchers and practitioners migrate their SOA applications to Cloud Computing environments and which is the effect on the quality. Through that method we conducted this research investigating the state-of-the-art in Cloud Computing, clarifying open issues through an analysis of evidences found in 105 primary studies.

Through the answers found in a research question and four research sub-questions, it was possible to identify evidence that point applications migration to cloud computing as an emerging approach, which proposes a shift of paradigm in the context of Information Technology. The principal findings of our study are:

  • MDD approach had been rarely used in the process to migrate SOA applications to Cloud environments.

  • Some quality characteristics which we consider relevant in applications (reliability, maintainability, portability) had not received appropriate coverage.

  • The results achieved by this mapping study will help our research group to develop new research fronts about cloud computing.