Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

A generic cloud migration process model

2018, European Journal of Information Systems

A Generic and Tailorable Cloud Migration Process Model Abstract Cloud computing literature provides a variety of perspectives towards the migration process, each with a different focus and mostly adopting heterogeneous technical-centric terminologies. Little, if any, studies have focused on developing an integrated and abstract process models which captures core domain constructs relevant to the cloud migration. By applying the metamodeling theoretical foundation, this article develops a generic process metamodel, as a domain language, for cloud migration. The metamodel is evaluated and refined through a three step approach including three case studies, domain expert review, and prototype system test. This research benefits academics and practitioners alike by underpinning a substrate for constructing, standardising, maintaining, and sharing bespoke cloud migration processes that suit given migration scenarios. Keywords: Cloud Migration, Legacy Systems, Metamodel, Domain Language, Process Model 1 Introduction Cloud computing technology brings many advantages to the IT-based organizations including: (i) providing wide ranges of services such as processing, data storage, and infrastructure which are universally accessible, can be acquired and released on the fly, and be paid for actual usage, (ii) reducing upgrading cost of IT infrastructure by shifting this responsibility from the organisation to the service provider, and (iii) allowing for on-demand resource elasticity based on computing needs (Armbrust, Fox et al. 2010). These benefits motivate organisations to enable their legacy systems to utilise cloud services. Accounted by (Ried S 2011), the global cloud computing market will likely to grow from $40.7 billion in 2011 to $241 billion in 2020. A sheer volume of research has been proposed by both academia and industrial communities providing solutions for moving legacy systems to cloud environments (Fahmideh, Daneshgar et al. 2016). Some examples of well-known models, mainly originated from the software engineering literature, are Chauhan’s Method (Chauhan and Babar 2012), REMICS (Mohagheghi 2011), Tran’s Method (Tran, Keung et al. 2011), Cloud-RMM (Jamshidi, Ahmad et al. 2013), Strauch’s Method (S. Strauch 2014), Zhang’s Methodology (Zhang, Chung et al. 2004), Oracle Method (Laszewski and Nauduri 2011), ARTIST Method (Menychtas, Santzaridou et al. 2013), Amazon Method (Varia 2010), Legacy-to-Cloud Migration Horseshoe (Ahmad and Babar 2014), IVI Cloud Computing Life Cycle (Conway and Curry 2013), and MILAS (Huru 2009). Each narrows in focus and presents a different viewpoint of the same migration process. For instance, Tran’s method has a cost-oriented view defining a taxonomy of the migration activities and cost factors related to these activities (Tran, Keung et al. 2011). REMICS proposed by (Mohagheghi 2011) is an agile and model-driven approach to integrate legacies with cloud services. The method suggested by (Ahmad and Babar 2014) is an architecture-centric software evolution for the migration of legacies to the cloud. There is a logical link between the above process models as they all define the same collection of activities for planning, cloud service selection, re-engineering, testing, and deploying legacies to utilise cloud services, but from different viewpoints. Nevertheless, till now, these links have not been explicitly established and integrated. Additionally, experts in the cloud computing community who may come from different IT backgrounds use different terminologies and phrases to refer to same concepts. It is hard to find any two migration methods that adopt the same definition of migration process and associated activities. For example, the IVI Cloud Computing Life Cycle, Chauhan’s Method, and MILAS define an activity related to the selecting cloud platform. IVI Cloud Computing Life Cycle defines it “as this step will select the best supplier based on value, sustainability, and quality”; Chauhan’s Method define this activity as “identify a set of potential cloud computing platforms based on a project’s nature, data confidentiality and sensitivity requirements, budget constraints and long-term organisational objectives”; and MILAS (Huru 2009) defines it as “selecting appropriate technology for the modernised system and technology that can run alongside and communicate with the legacy system”. IVI Cloud Computing Life Cycle and Chauhan’s method take into account some criteria for a cloud platform selection. However, IVI Cloud Computing Life Cycle’s definition emphasises the non-functional qualities of a cloud platform whereas Chanhan’s definition emphasises aspects of project constraints. On the other hand, MILAS’s definition takes into account the interoperability of legacy assets with the cloud services. The above definitions are similar in meaning and context, but they have been expressed by different terms. In other words, when they are viewed collectively, the common theme among all of these definitions is the notion of proper cloud platform/service selection. While such variety and having multiple and 2 disparate sources of cloud migration is useful, it impedes audience to comprehend, digest, and grasp an overarching view of the cloud migration process. Regardless of operational details of cloud migration, the one question remains which is how IS researcher and practitioners grasp an abstract and overarching view of what the cloud migration process entails under such chaotic universe of cloud? The absence of a platform-independent model of cloud migration introduces communication barriers and obstructs information exchange among participating developers and organisations in a cloud migration project (Hamdaqa and Tahvildari 2012; Zimmermann, Miksovic et al. 2012). In this spirit Hamdaqa et. al. mention: “there is a need to detach the cloud application development process from specific cloud platforms” (Hamdaqa, Livogiannis et al. 2011). Furthermore, while for some cloud migration scenarios one of the existing process models may be an appropriate fit, for many others a method engineer needs to combine concepts from two or more models to meet requirements of a given migration scenario. For example, a process model might be suitable for moving large and distributed workloads from legacy data centres to public IaaS whilst another process model might be best suited to reengineer legacies to serve as a SaaS. This essence is captured well by Mahmood (Z.Mahmood 2013) in his Book, p.64: “One solution can never fit all problems; likewise, there is a need of customised cloud for individual businesses and dynamically changed requirements of clients”. In situations like this, the method engineering is suggested as a way to construct customised methods by assembling reusable method fragments obtained from existing migration methods (Ralyté, Deneckère et al. 2003). While there are merits in adopting technical-centric existing process models, an integrated overarching view of cloud migration process comprises that can facilitate interoperability and knowledge sharing across the cloud community is still non extant in the available literature. Such model currently does not exist, and the current study can be regarded as a small step towards achieving this goal. The fact that each year a considerable number of research papers are published in the cloud computing field, each reporting different solutions, experience reports, and recommendations, itself is an evidence that the field has reached a maturity point where the development of one such generic reference model becomes mandatory. Prior research acknowledges that although variety of models for any given domain is profitable at the beginning of a research filed, a consensual picture of what the bunch of these models looks is eventually more efficacious (Harmsen, Brinkkemper et al. 1994; Rossi, Ramesh et al. 2004; Beydoun, Low et al. 2009). According to this account, it is helpful if common concepts in the cloud migration process such as phases, activities, and work-products could be factored out into a generic and unified process model at a convenient abstraction level. Adequately crafted, it can present a complete vision of the cloud migration process which is independent of any cloud platform, fine-tuneable according to characteristics of a migration scenario, and facilitator for consistent communication and efficient knowledge sharing and exchange across cloud computing domain. Such a generic model that, unifies the access and describes the domain can facilitate design, representation, maintenance, and sharing various cloud migration processes. Methods that are instantiated from such a generic model are expected to describe the domain concepts needed to be performed by developers in any specific scenarios of legacy to cloud migration. In addressing the abovementioned issue, metamodels are suggested for achieving an integrated view of a domain of interest and to describe it (Atkinson and Kuhne 2003; Gonzalez-Perez and Henderson-Sellers 2008). Metamodels capture common concepts and their relationships describing a domain and the way it works. A metamodel provides a language infrastructure to freely describe a domain in a way that stakeholders can better understand the domain along with guidelines to specialize this language for a particular 3 context (Rossi and Brinkkemper 1996). Development of metamodels has been a common practice in various themes in information systems and software engineering domains. The significance of metamodels, as a way to abstract cloud computing concepts, has been a top priority in the cloud community (Leymann 2011; Loutas, Kamateri et al. 2011; Hamdaqa and Tahvildari 2012). This paper continues this track from the perspective of cloud migration process. Thus, the objective of this paper is to develop and evaluate a metamodel that captures and harmonises common activities of cloud migration process and can be used to create, standardise, and share situation-specific cloud migration methods. The metamodel produced is domain-specific (i.e., cloud computing) but is generic, context agnostic, and can be grounded and extended to suite a given cloud migration context. The proposed model contributes to the cloud computing field by identifying and distilling common activities and key features of extant cloud migration literature. Based on our knowledge, such a model does not exist in the literature. The paper is structured as follows. The next section reviews prior literature on applying metamodels. Section Research method presents the adopted research approach. Section delineates the approach undertaken to develop the metamodel, following with the section Demonstration that shows how the metamodel can be used to describe real-world cloud migration processes. Next, section Evaluation presents the evaluation of the metamodel. The paper goes on discussion on implications, limitations, and conclusion of this study. Theoretical foundations and related work A domain specific language provides core concepts, relationships, notations, and semantic to simply understanding and representation of a particular domain. A key feature of such languages is that they allow domain experts construct models of their applications which can be later translated into low level representations. As suggested by (Atkinson and Kuhne 2003), one effective way to create domain languages is the use of metamodels. A metamodel is “a model of a model or a model of a collection of models” (Atkinson and Kuhne 2003). The literature pertinent to develop metamodels to demystify the multi-faceted and yet ambiguous cloud computing technology varies between different streams. We found that the majority of themes are suggested in software engineering literature with a technical-centric focus on implementation of cloud applications. We also found a few work in IS literature of application of metamodels. The following provides a synopsis of notable research works and shows how the current study situates itself in the context of the existing literature. The first stream of metamodeling studies concentrates on abstracting the technical architecture of cloud computing. Academic research such (Zhang and Zhou 2009; Hamdaqa 2011; Liu, Tong et al. 2011; Zimmermann, Pretz et al. 2013) and white papers published by major players of cloud computing such IBM, HP, Oracle, and Cisco are subsumed under this classification. The second stream is about distilling and sharing knowledge practice for the green cloud computing (Procaccianti, Lago et al. 2014). Herein, the application of the metamodel is to formalize a picture of how cloud data centres address the problem of reducing their energy footprint and carbon emission. Another work proposes a metamodel of the green practice for all aspects of cloud-based business processes such as environmental impact, pollution, and waste in class of patterns (Nowak, Breitenbücher et al. 2014). Dougherty et al. have proposed a metamodel-based auto-scaling resource management to reduce unnecessary idle cloud infrastructures (Dougherty, White et al. 2012). 4 The third stream is concerned with quality aspects of cloud services. As an example, the metamodel developed by cloud accountability project (A4Cloud) is to formulate the knowledge about non-functional properties of cloud services, and in particular, those that influence accountability of cloud providers (Nunez, Fernandez-Gago et al. 2013). The purported goal of this metamodel is to act as a language to describe cloud service accountability in terms of transparency, verifiability, observability, liability. It allows derivation of metrics from a high-level model to a tangible and measurable one, enabling consumers to monitor the quality of cloud service providers. Developing a metamodel to represent and share domain concepts of cloud services certification process has been the goals of European FP7 project as a response to how a certificate is produced, what its content is, and how it is managed (Cimato, Damiani et al. 2013). It conceptualizes the concepts involved during certification phases and allows for defining different instances of certification models. A number of scholars report that the adoption of metamodels eases code refactoring of cloud applications. The common feature of these studies (Ardagna, Di Nitto et al. 2012; Kopp, Binz et al. 2012; Wettinger, Behrendt et al. 2013) is to address the interoperability and portability of applications across different cloud providers for supporting instantiation of application description into multiple cloud environments using metamodel transformation techniques. This stream of studies uses feature models to model application variability and retransform them for a given target cloud platform. Capturing the common knowledge of designing of cloud architecture has been the topic of discussions in (Fehling and Retter 2011; Fehling, Leymann et al. 2012) where researchers propose a catalogue of patterns for legacy source code refactoring to enable them to use cloud services. As the last stream in the software engineering literature, researchers have incorporated domain-specific languages (DSLs) for developing cloud applications. Research in this direction have resulted in several DSLs such as cloud risk modelling (Zech, Felderer et al. 2012), cloud service compliance management (Brandic, Dustdar et al. 2010), cryptographic cloud computing (Bain, Mitchell et al. 2011), distributed data-parallel computing (Isard and Yu 2009), cloud-mobile hybrid applications (Ranabahu, Maximilien et al. 2011), describing big data analytic algorithms for data analytics in the cloud (Weimer, Condie et al. 2011), and automatically code generation for cloud applications (Sledziewski, Bordbar et al. 2010), to maximize SaaS application reusability (La and Kim 2009). The central claim of these technical studies is on the seamless transformation of application codes to various cloudspecific platforms by using model transformation techniques. Finally, the metamodel creation has also received attention from IS scholars. The work presented in (Martens and Teuteberg 2011; Keller and König 2014) proposes reference models to support organizations in managing and reducing risk and compliance efforts for cloud computing as a socio-technical artefact. The current research posits that metamodeling is a legitimate and well-suited theoretical lens for understanding the cloud computing domain. However, due to the different viewpoints of metamodel creation in the literature, when it comes to design a process metamodel to establish a methodological foundation for moving legacy systems to the cloud, the research is less common. In this paper, we describe our effort to design and evaluate a generic process metamodel to standardize, tailor, and share cloud migration processes. Research method 5 Overview In the current study the proposed metamodel is viewed as a specific artefact and is developed according to the design science paradigm (Peffers, Tuunanen et al. 2008; Gregor and Hevner 2013) using an iterative cycle of design and evaluation. More specifically, we adopted the DSR process model suggested by (Peffers, Tuunanen et al. 2008) that includes the following phases: Problem identification. This phase has been already described in the Introduction section of this article. That is, the cloud migration literature narrows in focus and present heterogeneous viewpoints of the same cloud migration process while there is no established correspondence among them. As such, it is hard to get an overall understanding of what activities are comprised in a typical cloud migration process. Furthermore, there is a dearth of research that suffices the method tailoring to create bespoke methods to suit a given cloud migration scenario. Objective definition. The quality of a proposed metamodel is an integrated part of a metamodeling process. The model quality is “the totality of features and characteristics of a conceptual model that bear on its ability to satisfy stated or implied needs” (Moody 2005). Thus, the development process of the proposed metamodel of the current study was informed by design principles (DP) pertinent to design of domain languages. There are a few commonly used frameworks for examining the quality of conceptual models, which are applicable to different modelling paradigms (Lindland, Sindre et al. 1994), (Stamper 1996), (Moody 1998), and (Paige, Brooke et al. 2007). From these frameworks we identified the following common design principles (DP) that are expected to be satisfied by a proposed metamodel: Completeness (DP1): the metamodel should capture all important and relevant methodological constructs that cloud migration process entails, Understandability (DP2): the definitions and names of constructs in the metamodel should be comprehensible by domain experts, Correctness (DP3): the notation and relationships among the constructs in the metamodel should be correct and meaningful, and finally Tailorability/or flexibility (DP4): the metamodel should enable method engineers to standardise, share, and tailor cloud migration methods according to characteristics of given scenarios. These generic design principles are further specialized during the remaining phases. Design and development. A consolidated metamodel was derived from the extant literature on cloud migration, which comprised all frequently occurring constructs in any process of legacy system migration to cloud environments and relationships among them. We first identified all relevant studies (process models, approaches, experience reports) on moving legacy systems to the cloud. Next, constructs were extracted from these studies, grouped, and refined based on their similarities and context. This step resulted in producing a set of essential constructs of the metamodel. Following harmonised constructs’ definitions, they were organised into phases and relationships among them were specified. Demonstration. The purpose of this phase was to show the expressivity of the metamodel to represent real-world enacted cloud migration processes. Three case studies were purposefully selected on the basis of (i) having clear goals for the cloud migration, (ii) reflecting various migration types such as IaaS, SaaS, and PaaS, and (iii) having available supportive documentation of performed cloud migration scenario for a detailed analysis. Three selected cases were: InformaIT in Sweden, TOAS in Finland, and Spring Trader in the United State. The unit of analysis was the legacy system that was planned for migration. Adherence to DP1 and DP3 were examined by tracing the origin of the metamodel constructs and their relationships to these real-world migration models. 6 Evaluation. This phase was to evaluate the efficacy of the metamodel version 1.1, which had been resulted after applying refinements in the demonstration phase. Firstly, the metamodel adherence to DP1, DP2, and DP3 were examined by a panel of experts in the cloud computing field. The choice of domain experts were based on either having at least one year of experience in legacy system migration to cloud environments or extensive academic knowledge of cloud migration as evidenced by publications. Four experts, denoted by E1 to E4, who were geographically dispersed and had an overall 7.5 years of experience in the area of cloud migration, were selected and provided with the textual document of the metamodel (twenty-five pages long) along with a list of open-ended questions related to the metamodel’s support of DP1, DP2, and DP3. Each expert individually was asked to review and challenge the metamodel version 1.1. Neither expert was aware of the identity of other experts to avoid possible communication between them. An advantage of receiving feedback from experts with different cloud migration experience was that their expertise complemented each other by addressing different parts of the metamodel. The deadline for receiving feedback was negotiated with each expert. Feedback received from experts was analysed and relevant refinements were applied to the metamodel. To prevent possible misinterpretation of comments made by experts, an email-based communication was established to clarify comments whenever required. Secondly, a prototype system was implemented by the authors to show how the metamodel can be specialised for given migration scenarios and be used for standardisation of migration processes across the cloud community. The prototype system uses the metamodel as a repository of method fragments and provides interactive forms for constructing, configuring, standardising, and sharing situation-specific cloud migration methods for a scenario at hand. Qualitative feedback from two experts, denoted by E5 and E6, about the adherence of the metamodel to all design principles were sought in this evaluation step. The feedback collected from each step of evaluation was used to refine the metamodel to its next version. Communication. The document of the metamodel in sufficient detail and its actual implementation (prototype) are also available in (MLSAC 2016). As shown in Figure 1, this research was conducted in four consecutive iterations. In this figure, down arrows and back arrows show, respectively, the output of each phase and the metamodel refinement through design phase engine. Each iteration used the refined metamodel resulted from the predecessor iteration as the input. Starting from version 1.0, the metamodel refinements throughout iterations was labelled with an increasing version number. The first iteration resulted in the initial design of the metamodel version 1.0. The second iteration appraised the completeness and correctness of the initial metamodel through three case studies. By analysing results from these cases, the metamodel version 1.0 was refined to version 1.1 by adding new constructs which had not been captured by the metamodel version 1.0. Later, in the third iteration, a panel of domain experts individually evaluated the metamodel version 1.1 and subsequently their feedback was applied to the metamodel, yielding to the next version of the metamodel, i.e. version 1.2. Finally, in the fourth iteration, the evaluation was conducted by examining a prototype system of the metamodel version 1.2. This iteration did not result in further refinement of the metamodel. 7 Figure 1 Design science research process specialized for this research Design Phase Developing Design Principles for the Metamodel The quality of a designed metamodel is an integrated part of a metamodeling process, “the act and science of creating meta-models, which are a qualified variant of models” (Gonzalez-Perez and Henderson-Sellers 2008) (p. 32). The (meta)model quality, defined in (Moody 2005), is “the totality of features and characteristics of a conceptual model that bear on its ability to satisfy stated or implied needs” (p. 2). Accordingly, this section synthesises a few design principles as fundamental requirements that are expected to be addressed during the development and evaluation of the proposed metamodel. Results of the demonstration and evaluation shows the proposed metamodel based on these principles provides a methodological foundation for moving legacy systems to cloud platforms including support for creating, configuring, and sharing customised methods for different scenarios. Completeness (Design principle 1). The development of the design principles are originated from the existing mainstream metamodeling frameworks and recurring concerns during a cloud migration process. Design principles that are proposed in this section are testable propositions and further are employed to develop and evaluate the metamodel. For instance, researchers can evaluate the adherence of a metamodel to design principles using case studies (Antkiewicz, Czarnecki et al. 2009; Cuadrado and Molina 2009; Karlsson and Ågerfalk 2012). Design principles and their connection with the context of this research are discussed in the following. One concern during creating a metamodel is the level of its completeness, that is, the extent to which the metamodel can make different kinds of statements required in the domain (Lindland, Sindre et al. 1994). Mitchell states that a language designer should discover key constructs in the problem and ensure they are modelled and representable during system development lifecycle (Bain, Mitchell et al. 2011). A designer may tend to 8 include many domain constructs in a metamodel. However, achieving valid completeness may not be feasible. In addition, the domain may contain many constructs that are irrelevant and, hence, out of the scope of the domain language purpose. Overemphasising on a domain language with many constructs is a worth practice. Completeness can be considered in terms of an appropriate balance between generality and specificity is an important factor in the successful development of a domain language. A language can be either too generic or too specific to the domain and in some cases both. Steven et al. (Kelly and Pohjonen 2009) suggest to include common core constructs in the domain. They mention, “Domain language isn’t about achieving perfection, just something that works in practice. It will always be possible to imagine a case that the language can’t handle. The important questions are how often such cases occur in practice, and how well the language deals with common cases” (p. 23). They further advise that in order to avoid analysis paralysis, one should concentrate on the core cases and build a prototype language for them. Defining a threshold for a metamodel completeness depends on the application context and, although is not easy to quantify, it can be when the model is detailed enough according to the purpose of modelling and further modelling is less beneficial (Lindland, Sindre et al. 1994). This can be examined, for example, by tracing proposed metamodel constructs to real word models (Othman, Beydoun et al. 2014) or existing counterpart models (Beydoun, Low et al. 2009). When viewing the cloud migration from the process perspective, a good coverage on core activities and expected work-products incorporating into the migration process is important. The key concerns initially introduced (S. Strauch 2014) in and then enriched and validated in (Fahmideh, Daneshgar et al. 2016) were found good yardstick to get a feasible completeness of functional and non-functional methodological requirements to be addressed by an ideal cloud migration process model. The concerns are Analysing Organisational Context, Understanding Cloud Migration Objectives and Requirements, Proper Cloud Migration Planning, Understanding Legacy Applications, Target Cloud Platform/Service Selection, Re-Architecting Legacy Applications, Environment Configuration, Testing, and Tailoring. This leads defining the first design principle: The proposed metamodel should capture all important and sound methodological constructs that are relevant for the incorporation into a typical process of the legacy system to the cloud. Understandability (Design principle 2). Developing a domain language needs a good knowledge of the domain. This implies that a language designer should think abstract and take his/her noise above the system code level, programming, and technical-oriented notions in the domain (Kelly and Pohjonen 2009). He/she should be able to produce good vocabularies for the domain that are understandable and interpretable by the audience of the language as referred to it as Audience-domain appropriateness (Lindland, Sindre et al. 1994). An adequate domain language allows for minimum multiple interpretations by audiences. Ambler (Ambler 2005) states that for better understandability of a model, it should be kept simple and avoids details not necessary for modelling. Excessive emphasis on incorporating technical or programming concepts into a domain language, although, is useful they should not be defined as core constructs otherwise they impede the expressivity power of the metamodel and lead to a poor abstraction level (Kelly and Pohjonen 2009). The understandability of a domain language is determined by many properties such as quality of diagrams or text, icons and names, and the layout and closeness of the model to the domain (Lindland, Sindre et al. 1994). In the context of this research, an understandable can clarify the meaning of activities in order to understand what cloud service is supposed to provide and what service consumer need to consider or implement to 9 utilize advantages of cloud computing such as availability and scalability. Thus, naming and terminologies that proposed for the metamodel are results of synthesising the content in the cloud computing literature. The second design principle is formulated as the following: The definitions and names of constructs in the metamodel should be comprehensible by domain experts. Correctness (Design principle 3). A domain language contains names, definitions, and relationships among constructs, which are relative to the domain, and they are interpretable by human and computer for the purpose of generation and analysis (Moody 1998; Paige, Brooke et al. 2007). The correctness can be checked either by examining the language against existing domain models or domain experts. A metamodel for cloud migration process needs to specify relationships among operations, which can be in the form of a sequence, input/output, association, or aggregation. An example may illustrate this point. According to (Fahmideh, Daneshgar et al. 2016), a key concern in a cloud migration scenario is potential incompatibilities (e.g. APIs) between legacy systems and cloud services. This implies a sequence in the migration process in the sense that once a decision on the cloud platform selection is made, the next step is to identify and analyse incompatibilities between these two platforms. In this research, the relationships defined in the framework are based on the recommendations in the cloud computing literature. The second design principle is defined as the following: The notation and relationships among the constructs in the framework should be correct and meaningful. Tailorability (Design principle 3). A domain language should support configuration and extension so that it can be specialized into a new domain and continuously evolved according to upcoming domain requirements. The more a domain language is close to the problem domain, the more simple its customisation, maintenance, and evolution (Jonkers, Stroucken et al. 2006). A domain language includes a set of generic constructs, which are abstract enough and common to represent the domain. Customised models from a domain language can then be used to generate software systems. Converting the above point to the context of this research, the proposed metamodel, which is supposed to a representation for the cloud migration process, should be tailorable to meet requirements of migration scenarios. This is due to the fact that each cloud migration scenario may have different characteristics such as system workload for moving to the cloud, chose of migration type and cloud services. Hence, there is no single applicable method for all scenarios. In situations like this, designing customisable methods or configuring existing one that fit characteristics of migration scenarios is pivotal for successful adoption of the cloud computing (Fahmideh, Daneshgar et al. 2016). With respect to this, the fourth design principle is defined as follow. The framework should enable method designers in standardising, sharing, and tailoring migration methods for specific scenarios. Metamodel development The steps that were undertaken to develop initial metamodel in the design phase are explained below. Identifying studies. The development of the proposed metamodel was started by identifying all constructs relevant to the cloud migration process. We utilized past researches in the cloud migration literature as the main knowledge source for the creation of the metamodel. Due to a large volume of published researches, a systematic literature review was conducted to identify important and meaningful constructs stated in the literature for inclusion in the 10 metamodel. Recommendations proposed by (Kitchenham, Pearl Brereton et al. 2009) were used to identify, characterise, and assess studies suggesting solutions for moving legacy systems to the cloud. The keywords for search were Cloud, Cloud Computing, Service Computing, Legacy, Methodology, Process Model, Reference Model, and Migration were set as the main keywords and based upon them, the different search strings were defined using the logical operator OR to include synonyms for each search string as well as the logical operator AND to link together each set of synonyms. Seventy five relevant studies were identified from the cloud migration literature. The details this are presented in the Supplementary Material Appendix A. Extracting constructs. All relevant constructs related to the cloud migration process were extracted from all the identified studies. In this study a construct refers to a (i) Task: a discrete and small unit of migration work that developers may perform to achieve one or more specified goals, (ii) Work-product: a tangible artefact that is produced during the migration process and used by other tasks, (iii) Principle: a consideration that should be taken into account during cloud application design, and (iv) Phase: a logical concept to manage the complexity of migration process and classify tasks and work-product constructs. A phase represents a particular period of a cloud migration process. Derivation of the metamodel was based on the DP1 and DP3 as defined earlier. More exactly, for the DP1 we leveraged the identified the key common occurring concerns during legacy system migration to cloud environment as discussed in (Fahmideh, Daneshgar et al. 2016). This includes eight concerns such as understanding organisational context, understanding cloud migration objective and requirements, proper cloud migration planning, understanding legacy systems, target cloud platform selection, re-architecting legacy systems, environment configuration, and testing. There was a tendency in selection of constructs that were (i) sufficiently generic to a variety of cloud migration scenarios and (ii) also were platform and application independent. Constructs that were too general or belonged to general software engineering were not extracted as they were deemed out of the scope of this research. These included constructs related to the process governance and umbrella activities such as risk management, project management, quality assurance, configuration management, and measurement. For each construct its definition from the studies was also extracted. The full list of all constructs and their definitions are presented in the Supplementary Material Appendices B and C, respectively. Creating overarching constructs. Through a bottom-up approach, all identified constructs from the previous step were grouped based on their similarities and definitions to derive a set of high-level overarching constructs. Classification of constructs and creating overarching constructs were undertaken on the basis of the key concerns such as understanding organisational context, re-architecting legacy system, and understanding legacy system during moving legacy systems to the cloud as discussed in (Fahmideh, Daneshgar et al. 2016). Harmonizing and reconciliation of constructs. Various definitions of overarching constructs were reconciled to reach a set of internally consistent set of metamodel constructs. When there were several definitions for a constructs, a hybrid definition which encompassed all definitions was chosen. Back to the example mentioned earlier, selecting cloud platform has been defined as “this step will select the best supplier based on value, sustainability, and quality” in IVI Cloud Computing Life Cycle (Conway and Curry 2013); as “identify a set of potential cloud computing platforms based on a project’s nature, data confidentiality and sensitivity requirements, budget constraints and long-term organisational objectives” in Chauhan’s method (Chauhan and Babar 2012); and as “selecting appropriate technology for the modernised system and technology that can run alongside and communicate with the 11 legacy system” in MILAS (Huru 2009). The definition decided for the metamodel is “Define a set of suitability criteria that characterise desirable features of cloud platforms. The criteria include provider profile (pricing model, constraints, offered QoS, electricity costs, power, and cooling costs), organisation migration characteristics (migration goals, available budget), and application requirements. Based on the criteria identify and select suitable cloud providers” which is a hybrid definition that encompasses all interpretations from these models. Classification and organising constructs into phases. Constructs were organised in terms of migration phases. The identified studies in the first step were analysed to identify generic phases of the cloud migration process. For instance, IVI Cloud Computing Life Cycle (Conway and Curry 2013) include four phases namely Architect, Engage, Operate, and Refresh. Strauch’s Method (S. Strauch 2014) includes three phases as Assessment, Analysis and Design, Migration, Deployment, and Support. Similarly, Cloud-RMM (Jamshidi, Ahmad et al. 2013) has three phases including Migration Planning, Migration Execution, and Migration Evaluation. Synthesised the similarity of phases in these studies, we defined three phases including Plan, Design, and Enable that are described in the next section. Defining relationships among constructs. The relationships among constructs such as sequence, association, specialization, and aggregation were defined based on the identified studies in the step one and the output from the previous step. All relationships are presented in the Supplementary Material Appendix E. To represent the metamodel in a clear and wellstructured manner, a simple version of UML notation (UML 2004) was used, which is a semi-formal and de-facto standard for information modelling. Resultant Metamodel The objective of the metamodel is to provide a generic representation of the cloud migration process that facilitates domain understanding, standardising, creating, and sharing customised migration methods. The metamodel includes a set constructs which are common comprised in the cloud migration. The constructs are organised into three phases namely Plan, Design, and Enable. Operationalisation details are left to each individual instantiation of the metamodel using available techniques in the cloud computing literature and/or tools in marketplace. Figure 1 shows the developed metamodel. A brief definition of the metamodel constructs is presented in Table 1. The Plan phase starts with a feasibility analysis of cloud adoption. This analysis can be related to potential changes in organisation structure, local network, and cost saving as the outcome of cloud migration. Moreover, an understanding of the current state of legacies is required to know their architecture, functional and none-functional requirements that might either be addressed by cloud services or be threatened by moving them to the cloud. This also gets estimation of required reengineering effort for making legacy systems cloud-enabled. A model of legacies including their components and their deployment relations is produced as the output of this activity. Legacy systems may have certain requirements that can be satisfied by utilising cloud services. These requirements may be related to computational, storage space, security, and system interoperability. A cloud migration also includes preparing a plan which organises the sequence of activities in the course of migration process. In the Design phase a new architecture model is designed which enables legacies to utilise cloud services. The re-architecting process includes identifying suitable legacies or components for moving to and their new deployment in the cloud environment in order to satisfy non-functional requirements. Examples include data security, expected workload, and acceptable network and scaling latency, selecting cloud services which fit requirements of 12 these legacies as identified in previous phase, and identifying inconsistencies between underlying legacy technologies and selected cloud services’ APIs. In some situations, organisation’s regulations and policies do not allow for a full legacy system migration and hence some legacy components are moved to the cloud and others are kept in the local network utilising cloud services that are offered to them. In re-architecting of legacies to cloud environments, design principles play central role. For instance, in order to support the dynamic deployability, handling with failures, and independent scalability in cloud environment, system components should be designed stateless in order to minimise storing the contextual data during their execution. An important consideration during cloud architecture design is the performance variability of cloud servers and network latency between local network and the cloud which can have a negative impact on the QoS of a migrated system. Developers should implement mechanisms in legacies to detect and handle transient faults that occur in cloud environments. A key work-product of this phase is architecture model which specifies an optimum distribution of legacy components on the cloud servers and takes into account data privacy, acceptable network latency and performance variability of cloud services, the availability zone of cloud servers, the affinity of system components in the cloud, and the geographical location of servers. The Enable phase consists of a set of reengineering activities to enable legacies for utilising cloud services. This will result in the realisation of the cloud architecture designed in the previous phase. Often, legacy systems have been implemented with technologies which are not compatible with cloud services (e.g. API incompatibilities or proprietary). If occurs, such incompatibilities between the legacy and cloud services should be identified and accordingly resolved through adaptation mechanisms. This can be in form refactoring legacy source codes, modifying data, or implementing wrappers code refactoring. For example, resolving inconsistencies between legacy database and a selected cloud database solution may imply a need for the data type conversion, query transformation, database schema transformation, and developing runtime emulators. Legacy systems might not have been implemented with a support for dynamic resource acquisition and release under input workload. High workloads are often addressed by adding new physical servers. Mechanisms for system elasticity in cloud environments need to be implemented in legacies for continuous system monitoring and performing actions for resource acquisition and release regarding scaling rules triggered in a specific workload threshold, event, or metric. Reengineering legacies may entail either adding new components to legacies or separately hosted in cloud servers. Local network setting is reconfigured to provide access to cloud services. In addition, legacy components and any required third party tools are installed in the cloud. Finally, in the metamodel, the test activity includes testing both functional and non-functional aspects of the migrated system. In particular, various cloud-specific tests should be performed including security test, interoperability test, and workload test. It is important to note that adopting different service delivery models may entail incorporating different constructs of the metamodel during the migration process. The metamodel includes guidelines for the connection between a chosen service delivery model and the metamodel constructs. Situations in which a construct should be incorporated into the migration process can be mandatory, situational, and unnecessary. 13 Figure 2 Metamodel for cloud migration process 14 Design Phase Plan Phase Phase Table 1. Definitions of constructs in the metamodel Activity Definition Analyse Business Provide an understanding of what an organisation wants to achieve and goals Requirements and expectations are to be met by cloud migration. Analyse migration to cloud with respect to the cost of application modification, Analyse Migration installation, training, administration, license management, developing cloud skills, pricing models of the service providers, and infrastructure procurement Cost imposed by the migration. Identify potential organisational constraints regarding the adoption of a Analyse Migration particular cloud model, based on information available in the organisation Feasibility profile and then perform a feasibility study to evaluate the benefits and the consequences of migrating legacies to the cloud. Perform an impact analysis of potential changes in organisation network due to Analyse Network migration in order to identify any side effect on communication between local Change and cloud components and the required bandwidth. Analyse Analyse the impact of cloud migration on the structure and resources of Organisational organisation. Changes Acquire a set of legacy requirements such as computational requirements, servers, data storage and security, networking and response time, and elasticity Analyse Technical requirements from multiple stakeholders about the target application according to the current configuration setting of the legacy application. This helps to gain Requirements a good understanding of different kinds of architectural changes that needed to be made in the legacy application. Define a correct and safe sequence of tasks that guide the migration process by analysis feedback from stakeholders. A plan may a procedure for (i) notifying legacy application users about the cloud migration and temporal unavailability of legacies during the migration period and activating them after the migration, Define Plan (ii) rollback to an in-house version of the legacy in the case of occurrence of any significant risk during the migration process, (iii) retiring legacy components and infrastructure that are no longer needed, after a pre-defined period of monitoring and successful migration from original environment to the cloud. Produce a complete representation of legacy architecture application including Recover Legacy its data, components, dependencies among components and infrastructure, Application application data usage and resource utilisation model (e.g. CPU, Network, Knowledge storage). Define a set of suitability criteria that characterise desirable features of cloud providers. The criteria include provider profile (pricing model, constraints, Choose Cloud offered QoS, electricity costs, power, and cooling costs), organisation migration Platform/Provider characteristics (migration goals, available budget), and application requirements. Based on the criteria, identify and select suitable cloud providers. Design Solution Cloud Identify Incompatibilities Enab le Phas e Make Application Stateless Adapt Data Identify legacy components which are appropriate for the migration to the cloud regarding identified requirements (e.g. workload, data privacy, confidentiality, latency, dependencies between application components, and migration goals) and then define their deployment and distribution in the cloud environment on the basis of organisation profile, cost saving, expected workload, performance, transaction delay, availability, security, and constraints. Identify and assess the list of potential incompatibilities between existing application components and selected cloud service. Different sources of incompatibilities should be checked including library, database, interface, behavioural, code style, communication protocol, offered QoS, and policy mismatches. Provide support in the application to the handle safety and traceability of tenant’s session when various application instances are hosted in the cloud. Refine the current database schema for making it compliant with the schema of cloud database solution. Enhance the data access layer by adaptors and convertors so as to fulfil functionalities and necessary optimised query 15 Develop Integrators Enable Elasticity Handle Transient Faults Isolate Tenant Availability Isolate Tenant Customisability Isolate Tenant Data Encrypt/Decrypt Messages Refactor Codes Re-configure Network Synchronise Application Components Test Interoperability Test Multi-tenancy Test Network Connectivity Test Performance Test Scalability Test Security Work-products Application Templates Cloud Solution Architecture Legacy Application Model Migration Plan Migration Requirements Virtual Model Specification transformations which are not supported by a chosen cloud database solution. Also, convert database data type to the target cloud database solution. Develop a mediator component that resolves mismatches between legacy and cloud services that are plugged to the legacy. This component wraps/transforms incompatibility (e.g. message format, interaction protocols) between the legacy and cloud services. Define scaling rules and provide support for dynamic acquisition and release of cloud resources. Detect and handle transient faults may occur in the cloud. Detect and handle faults that may incur in a tenant in a way that it cannot be propagated to other tenants. Analyse commonality and variability in the target domain and provide support for the customisation of application components on the basis of particular needs and situations of tenants before and during running application in the cloud. Protect tenants' data from to be accessed by other tenants. Each tenant should be authorised and able to access to its own data. Secure messages transmission between the local components and those hosted in the cloud or distributed across multiple clouds using an encryption mechanism. Refine (or re-implement) the source code for being compatible and able to interact with the selected cloud platform programming language. Also, refine (or re-implement) component interface operations, signature, messages, and data type for being able to interact with the selected cloud platform. Re-configure the running environment of the application including reachability policies to resources and network, connection to storages, setting ports and firewalls, and load balancer. Provide a support in the application to synchronise multiple components (e.g. database replica) hosted legacy network and clouds. Test the compatibility of components with different cloud environments specifically, when components can be switched between different infrastructures. Test if tenants can easily configure the application components, i.e. user interfaces, business logic and workflows, and functional services. Test the network connectivity between local components and components in the cloud. Test the performance (e.g. process speed, response time, throughput, latency, and etc.) of the application when subjected to increased load from multiple tenants. Test to assure the application acquire and release the computing resources in an efficient manner. Test application components and reachability policies to access these components against the security requirements. A set of models allowing tenants/application users to customise variation points and features in the application components. These allow tenants/users to configure application components. A complete high-level architecture document that will serve in later stages as a guidebook for the implementation A model of legacy application including its components and their deployment relations. A document that defines the execution of the migration process and sequence with which legacy application is to be moved to the cloud. A set of requirements as a result of task Analyse Migration Requirements. Virtual images of the application that are associated with the application components. 16 Demonstration This phase shows the metamodel adherence to the DP1 and DP2. More exactly, as the proposed metamodel is sufficiently generic and abstracts domain constructs being incorporated during the cloud migration process, it is anticipated that real-world migration processes including development activities, their relationships, and work-products can be represented by the metamodel. Three case studies were analysed to examine the conformance of the real-world scenarios to the metamodel and corresponding between constructs in the metamodel and these cases. These are shown in Table 2. Due to space constraint, a detail analysis is presented for the first case (InformIT) only and results from two other cases are presented in the following (A full detailed of the case analysis is in the Supplementary material Appendix F). Adherence to DP1 and DP3 were appraised by tracing the origin of metamodel constructs and their relationships to real-world migration models. Using the tracing technique (Sargent 2005) in this section is similar to the research by (Othman and Beydoun 2013), which used an analysis of existing disaster scenarios to show the capability of their suggested metamodel in expressing key domain constructs. It is also consistent with (Beydoun, Low et al. 2009) in examining an agent-oriented metamodel in the coverage of design-time and run-time constructs in the agent-oriented software development. Furthermore, the tracing technique has been also used in (Antkiewicz, Czarnecki et al. 2009) in representing the domain knowledge of application code understanding through reverse/forward engineering and software code evolution. Using the tracing technique, constructs that were incorporated in the migration scenarios were categorised and mapped into the proposed metamodel constructs according to their relevance. Some of the leading questions that were used during case review for identification of the seed cloud-specific activities enacted by the developers in each phase of migration process were as follow: (i) what activities, including techniques, were performed and deliverables were produced during each phase of your migration project?, (ii) what cloud-specific challenges were faced in each phase? Inspired by previous studies suggesting the worthiness of secondary data in the assessment of metamodels (Antkiewicz, Czarnecki et al. 2009; Beydoun, Low et al. 2009; Othman and Beydoun 2013), the secondary data for conducting the tracing technique was used during the case study analysis. Project documents from a variety of sources (e.g. project sequence, application architecture, and user histories) was used to obtain a better understanding of the enacted migration process model by developers. Table 2 description of case studies Case 1: InformaIT (Sweden) Case 2: TOAS (Finland) Case 3: SpringTrader (US) InformaIT is a small independent software vendor involved in development of document management systems. The Document Comparison (DC) system, developed by InformaIT, is a Web-based enterprise solution for enhancing document management processes. DC provided a fast and easy way to compare textual and graphical contents of different digital documents. DC was originally designed to offer services to medium and large organisations which had enough resources, own infrastructure, and TietoOyj is an IT service company that had built an open source platform called Tieto Open Application Suite (TOAS) based on J2EE technology. This platform was used for developing and running business applications in cloud environments. The TOAS platform aims to increase the development speed, automation, and the integrity of cloud applications through providing an integrated set of middle-wares, tools, and services according to service models IaaS, PaaS, and SaaS. A cloud migration project was launched by Tieto to migrate a SpringTrader is an open-source Web-based system that has been originally developed by Pivotal company and maintained by many contributors over time. The system allows users to establish an account to view and manage a portfolio of stocks, lookup stock quotes, and buy and sell stock shares. Pivotal company had launched its own private cloud platform, which named Pivotal Cloud Foundry. The platform is an open-source platform for developing and deploying portable cloud-native enterprise systems. Pivotal decided to move 17 technicians to install and run the system. InformaIT considered promoting its competitiveness power via expanding DC’s services around small companies. However, small companies couldn't afford DC as they would be confronted with a high financial commitment such as high cost of installation as well as the usage cost of users. A cloud model could facilitate an efficient and agile maintenance environment for the DC. legacy system from the current Tieto’s infrastructure to this new TOAS platform. The system had was processing batch tasks. Due to the outdated hardware infrastructure and software platform, moving this system to TOAS IaaS was a promising way to enhance the system performance and reduce infrastructure cost. SpringTrader to this new cloud platform because it will enable (i) users to access real-time stock market data and more interactivity with the system, and (ii) the individual scaling up/down of SpringTrader’s components (called micro services) and their maintainability. Within-case analysis: InformIt case The following paragraphs describe how the constructs in the process model are instantiated to represent activities, carried out by a development team in InformaIT project (Rabetski 2012). The 43-page secondary document of this project was carefully reviewed. Figure 2 represent the instance of the enacted process in InformIT. As one of the first tasks, the developers performed Preliminary Analysis to identify benefits and challenges of migration to the cloud in terms of privacy, vendor lock-in, and environmental limitations. This activity is an instantiation of the Analyse Migration Feasibility in the metamodel. Additionally, a task which was called Current DC Implementation was performed to identify the current deployment model of DC. The model revealed that DC’s customers have to take care of the infrastructure and provision of technical expertise to maintain it locally. The process model supports this activity through an instantiation of the Recover Legacy Application Knowledge defined in the Plan Phase. The developers estimated the cost of DC migration to the cloud on the basis of server instances, storage, data transfer, storage transaction, cache, and database. They realised that the cost of DC could be down by 40 percent; that is $764.99 in the cloud model compared to $1264.99 in the legacy model when leveraging elastic scalability. The abovementioned cost analysis in InformaIT can be derived from the Analyse Migration Cost in the metamodel which is a subclass of Analyse Context. Once the cloud migration was perceived as a viable solution to empower DC, the developers performed a task named Choosing a Cloud Provider in order to analyse three existing public cloud platforms, Amazon Web Services, Google App Engine, and Microsoft Azure. Each of these platforms could affect the cost, the quality of the architecture solution, and the required legacy code changes. The developers found that Google App Engine could not be a suitable candidate for DC since it did not support .NET applications as opposed to the Amazon AWS and Microsoft Azure that both provided such a support. Given a further analysis, the developers preferred Windows Azure platform to Amazon AWS for three reasons: (i) it would require less configuration effort, (ii) it would offer a faster deployment model, and (iii) developers had a consistent development experience for systems that were based on Microsoft technologies. Choosing a Cloud Provider in InformaIT conforms to the metamodel’s construct of Choose Cloud Platform/Provider in the Design Phase. In InformaIT scenario the development team performed a task called Cloud DC Architecture indicating how the existing legacy application components are mapped to the Microsoft Azure platform. For example, the legacy version of DC’s database, which was a Microsoft SQL Server database, was replaced with SQL Azure. In the metamodel, Cloud DC 18 Architecture in InformaIT can be instantiated from the construct Design Cloud Solution in Design Phase of the metamodel. Although Microsoft Azure was well suited as a target platform for the migration, the developers identified some incompatibility issues that implicated required changes in the current legacy implementation, referred to as Identified Compatibility Issues. Subsequently, the migration process proceeded with some changes in the legacy DC. As an example, the available Blob Storage and Queue Storage by Microsoft Azure were not compatible with regular APIs that were currently used by DC. Accordingly, legacy codes were changed for access Microsoft Azure database. As another example, DC had been developed using Microsoft .Net 2.0 that was not supported by Microsoft Azure. The action to resolve this was to update DC’s framework to Microsoft .Net 3.5/4. Other incompatibility issues were session management and registration of legacy components in the cloud. The classes Identify Incompatibilities and Refactor Codes in the metamodel represent the above modifications to the DC in InformaIT case. Some changes to DC were in the form of applying design principles proposed by the construct Apply Design Principles in the metamodel. For instance, DC was required to be portable between the local network and the cloud. To address this, the data and business layers of DC were decoupled by adding a new intermediate data assess layer in order to increase the portability of DC. That is, instead of directly data access, the business logic layer calls a data access layer interface. In InformaIT project, this construct was referred to as Separate Data Layer from Business Logic Layer which can be derived from the construct Decouple Application Parts as a subclass of the Apply Design Principles in the metamodel. As another example, DC stored megabytes of data per session which was a big overhead. Such a session size required more time for serialisation and de-serialisation. Developers applied a principle called Becoming as Stateless as Possible to make DC cloud-enabled. This construct is an instantiation of the principle Make Application Stateless in the metamodel. It was likely that the performance of DC in the cloud was going to decrease due to latencies and unknown hardware infrastructure. In InformaIT project the task Performance Experiment was performed to execute CPU heavy code for the document processing in order to compare the execution and response time of running DC in the cloud (using a small Azure compute instance) and on-premise environment (using a local server). This experiment could identify potential performance bottlenecks in the cloud when heavy computational jobs such as digital document rendering are running. This activity was conducted in North Europe deployment location of Microsoft Azure because it was the closest geographical location to the project testing environment, located in Gothenburg, Sweden. The experiment illustrated that a proper deployment location can reduce interaction latencies and consequently, the performance. In addition, the experiment revealed that the performance of DC in the cloud is less than the local server and nine more instances of DC in the cloud are required to achieve the expected throughput. The abovementioned test in this scenario, i.e. Performance Experiment, conforms to the construct Test Performance in the Enable Phase of the metamodel. In InformaIT project, the developers felt there is no need for running other kinds of tests. The suitability of the DC migration to the cloud also was analysed from a cost perspective. Developers built a prototype to analyse three real life scenarios that could describe how DC could benefit from the cloud services. The cost of each migration scenario was estimated on the basis of the pricing model of Microsoft Azure and cost parameters such as compute instance, relational database, storage, storage transaction, data transfer, and cache. The prototyping helped developers to make a final decision regarding the DC cloud enablement. Prototyping in this scenario can be generated as a result of performing the task Make Prototype in the metamodel. Regarding DP3, the analysing InformaIT confirmed some 19 relationships between the constructs defined in the metamodel. Table 3 shows the list of relationships among the metamodel’s constructs that were instantiated in this migration scenario. With-in case analysis confirmed that almost all of its accommodated constructs can be derived from the metamodel constructs, except for a new construct Extensively Use Logging which was not covered by any constructs in the metamodel. It was found that the metamodel has a deficiency to support this construct. According to the finding in this migration exercise, since cloud environments are a-synchronous, debugging and tracing an application in the cloud might be problematic (Rabetski 2012). Applying a logging mechanism in the architecture of the application facilitates tracing of the behaviour of the application, resource utilisation, and identifying reasons for failures in the cloud. Therefore, the InformaIT case refined the metamodel construct Apply Design Principles by adding a new subclass construct and was named by Use Logging. In Figure 2, this new construct is the class Apply Design Principles. The following definition was used to define this new construct: Use the logging mechanism to facilitate the application debug and resource monitoring when running in the cloud. 20 Figure 3 InformIT model as an instantiation of the metamodel 21 Cross analysis Next, our cross-analysis compares and contrasts three cases of cloud migration process in terms of the metamodel adherence to DP1 and DP3. Table 3 shows results related to the metamodel completeness and its expressivity for producing constructs of InformIT, TOAS and SpringTrader migration scenarios and Table 4 shows the instantiations of some relationships in the metamodel in these cases. According to these tables, only a slice of the metamodel is required to represent domain-specific constructs which is described in the following. As for DP1, the review of the cases InformIT, TOAS, and SpringTrader shows that four metamodel constructs Recover Legacy Application Knowledge, Design Cloud Solution, Identify Incompatibilities, and Decouple Application Parts were commonly instantiated in their mainstream process, to make legacy systems cloud-enabled. For example, the construct Design Cloud Solution defined in the Design phase of the metamodel was instantiated in three different ways in the scenarios. In InformIT, the decision on the selection and deployment of legacy system components on cloud servers was basically a mapping between Microsoft-based legacy components into their counterparts in Microsoft Azure cloud platforms. In TOAS, the legacy components were classified into two logical groups of platforms on the basis of similar functional behaviours. In SpringTrader, those components that provided financial and market functionalities/data were selected for the migration purpose. These are an instance of Design Cloud Solution defined in the Design phase of the metamodel. Migration scenarios were performed very differently and therefore they were not same in the instantiation of the metamodel constructs. Except for InformIT, in both TOAS and SpringTrader scenarios activities related to handling incompatibility issues are performed. In TOAS case, developers implemented run-time adaptors to hide incompatibilities of message formats and API's support between the legacy and TOAS platform. Comparably, in SpringTrader case, developers implemented wrappers to separate incompatibilities between micro service and the legacy system. These techniques are subsumed under the construct Develop Integrators defined in the Enable phase of the metamodel. Additionally, unlike the instantiation occurrence of the construct Choose Cloud Provider in the scenario InformIT where developers decided to use Windows Azure cloud platform due to their experience with Microsoft-based programming platforms, the target cloud platform in both scenario TOAS and SpringTrader was a pre-chosen private cloud platform and therefore there was no need for the instantiation of the construct Choose Cloud Provider. Furthermore, as for DP3, the case studies confirmed some relationships between the constructs defined in the metamodel. With respect to DP3, Error! Reference source not found. shows the list of relationships among the metamodel’s constructs that were instantiated in the cases. As shown in Error! Reference source not found. in each case reviewed, only a slice of the metamodel was required to instantiate to represent relationships. Error! Reference source not found. shows the list of relationships that were identified during the case analysis. The second and third case studies did not lead any refinements to the metamodel and all their constructs were producible using the metamodel constructs. As we progress through the case analysis, the coverage of the metamodel on enacted process models is a strong indicator of the metamodel adherence to DP1 and DP3. Nevertheless, the metamodel adherence to DP1 and DP3 cannot be statistically generalized based on the results of case analysis and hence there is a possibility of extending the metamodel to new constructs or relationships if more case studies are performed. This will be discussed further in this paper. 22 Table 3 Support of constructs in the migration scenarios by the metamodel Metamod el Construct Recover Legacy Application Knowledge Choose Cloud Provider Design Cloud Solution Identify Incompatibil ities InformaIT TOAS SpringTrader A distributed deployment model of DC was identified. DC included five components namely frontend web, application, backend engine, distributed cache, database, and v) shared file store. InformaIT rents several virtual private servers. However, the servers could not be scaled dynamically and they became underutilized most of the time. The legacy system architecture recovered and documented in order to identify its hardware requirements, running components on middle wares and servers, their settings and computational requirements. In addition, legacy dependencies, features such as hardware requirements, running components on middle wares and servers, their settings and computational requirements were identified. Three existing public cloud platforms namely Amazon Web Services, Google App Engine, and Microsoft Azure compared on the basis of required cost for changing in DC and architecture quality. Standard rate of cloud platform alternatives such as price for computation, virtual network, storage, content delivery network, caching, service bus, data transfer, and access control were identified and analysed. Windows Azure was chosen as it needed less configuration effort, faster deployment model, less training effort. Microsoft-based DC’s components (e.g. database) were mapped to their counterpart in Microsoft Azure platform and accordingly modified to Azure cloud services. Not instantiated (pre-chosen private cloud, i.e. TOAS platform) It was found that the legacy system architecture was fairly simple with a front end that includes the Web layer talking to a set of HTTP/JSON-based services where stock quotes and portfolios could be viewed, and stock trade orders may be submitted, and a back end that fulfils orders. The communication between the front and back ends was asynchronous with the front end delivering orders to a message queue and the back end consuming from that queue. Both the front end services and the back end also access a shared relational database. Not instantiated (pre-chosen private cloud, i.e. Pivotal Cloud Foundry) There were some incompatibilities between current technologies used in DC and legacy and Microsoft Azure such as different versioning between platforms, APIs, and session management. Legacy components were based on the technologies belonging to middle of 2000 and constitute a lot of legacy codes. It was identified that are different versioning in legacy APIs and TOAS. The legacy components were classified on the basis of their similar functional behaviours into two logical groups of platforms. 23 Those components that provided financial and market functionalities/data were selected for the migration purpose. Also, micro service architecture was used to distribute legacy components in Cloud Foundry. As SpringTrader was written for JDK6 and Spring 3 and the current version of Cloud Foundry PaaS was JDK8 and Spring 4, there were some incompatibilities in the libraries of these two environments. These include Decouple Application Parts Adapt Data The legacy was needed to be portable across on premise and cloud platform, it was decided to separate the business logic and data layer of DC. Decoupling also facilitated using on premise file system and Azure Storage depending on the chosen deployment environment. Loose coupling was performed to facilitate component scaling up/down and fault management. Decoupling was applied by replacing all remote method invocation (RMI) based communications in the legacy with XML-based service in TOAS cloud. DC used a Microsoft SQL Server database. It was replaced with SQL Azure. In most cases switching to SQL Azure was not a big task but it was required to update connection setting to the new database. Not instantiated. Not instantiated. Different kinds of run time adaptors were developed to hide incompatibilities of message formats and API's support between the legacy and TOAS platform. Not instantiated. Develop Integrators Not instantiated. Refactor Codes 24 the bytecode manipulation used by the annotation processing, and the use of some obsolete JSON libraries. To resolve incompatibilities, developers upgraded the application’s libraries. Micro-service architecture design was used to decouple legacy components. In addition, a service discovery mechanism was implemented to enable the legacy system and developers to locate micro services by name at a known catalogue endpoint and look them up dynamically at runtime. Different types of cloud database solutions were used in this project such as MySQL, MongoDB, and relational SQL database. In order to address incompatibilities between these cloud services, the notion of boundary context was used in the sense that transition data were packed and unpacked during executing transactions. Warpers were implemented to hide incompatibilities between micro service and the legacy system. Quote simulation functionality was refactored from the SpringTrader legacy in order to be exposed as a new micro service, i.e. Quote WebService. It was a simple service that used the public Yahoo Finance APIs to provide real-time market data. Such refactoring freed the developers to choose any technologies that could make sense on basis of requirements regardless of ripple effect in the existing legacy codes. To refactor the legacy code some steps such as locate the code, identify a service interface, use the proxy pattern, create an Not instantiated. Reconfigure Network Relationship Name Uses Uses Uses Uses Uses Uses Uses Uses Follows Follows Follows Firewall rules and subsequently application endpoints were reconfigured. Firewall configuration was a burdening task and included finding, setting up, testing, and maintaining the required firewall rules. implementation of the interface, and point the monolith to the new service were performed. Not instantiated. Table 4 instantiations of metamodel relationships in the scenarios Migration scenario Construct 1 Construct 2 InformaIT TOAS SpringTrader Design Cloud Analyse Migration Not Not √ Solution Requirements instantiated instantiated Design Cloud Identify √ √ √ Solution Incompatibilities Design Cloud Choose Cloud Provider √ √ √ Solution Identify Refactor Codes √ √ Incompatibilities Design Cloud Recover Legacy Not Not √ Solution Application Knowledge instantiated instantiated Design Cloud Solution Not Refactor Codes √ √ instantiated Migrate Database Refactor Codes √ Test Application Design Cloud Solution √ √ Plan Migration Design Phase √ √ √ Design Phase Enable Phase √ √ √ Choose Cloud Identify √ √ √ Provider Incompatibilities Evaluation kkkk Step 1. Domain experts feedback The metamodel was qualitatively examined by a panel of four domain experts regarding DP1, DP2, and DP3. The experts are denoted by E1, E2, E3, and E4 in this study. The overall experts’ feedback was promising and valuable. The list of questionnaire form and details of the feedback from the experts are available in the Supplementary document Appendix G and H, respectively. The usefulness of the metamodel was stated by the words such as “education and high-level guidance” (E1), “good communication vehicle” and “more comprehensive list of concerns” (E2). E2 stated that “the model is clearly valuable in conveying the important concerns of a migration and how they are related. The detailed semantics help to clearly understand dependencies and possibly resulting decisions and trade-offs to be considered”. A similar opinion was expressed by E3. He said “this model can make a good impact to increase the confidence of success factor of the migration process and decrease some uncertainty. Also, this model can be used as a checklist of success migration and this reference model makes an overall picture of migration phase and clears the roadmap for 25 audiences to do the migration with less stress and concerns”. The advantage of the metamodel against existing migration process models was stated by E4 “I have mostly used the classical reengineering model for legacy migration. In comparison to the model by SEI, the proposed model is more detailed in terms of underlying process and activities for migration”. Experts provided some suggestions for the improvement of the metamodel in relation to the design principles. The following is an explanation of the metamodel refinements as a consequence of each expert’s feedback. Regarding DP1, an area of concern raised by E2 was that he believed “determining licensing issues of legacies should be made more visible in the metamodel as it can turn out to be a major task in the migration process”. In cloud environments, multiple instances of a system, which is encapsulated into a virtual machine, might be created by a server based on the workload or rules are triggered to run resource scaling. This may cause an unintended violation of the licensing agreement that has been made between the owner and user of the system. The above comment by E2’s has been partially covered in the definition of the construct Analyse Migration Cost in the initial metamodel. However, it has not been considered as an individual construct in the metamodel. Utilising the knowledge source prepared in the phase one of design science process, a new construct named Resolve Licensing Issues as a special construct was added in Design Phase of the metamodel to explicitly represent this construct (Figure 2). It is defined as follow: Define and monitor a pay-as-you-go licensing model to handle unintended license agreement violations due to automatic scaling. E3 explained that the metamodel lacks a construct called “roll-back: I have observed that migration process model should contain a construct to show rollback for the migration process”. To address this concern, the metamodel was refined by extending the construct Define Plan to Define Roll-Back Plan and defining a new relationship in the metamodel (Figure 2). A definition for this construct regarding the knowledge source was decided as “Define roll-back, as a B plan, to an in-house version of the legacy application in the case of occurrence of any significant risk or new application fails during the migration process. This reduces the risk and exposure to the business”. The experts provided some comments related to DP2. From E2’s point of view, the notations and visualisation used to represent the metamodel were found unclear: “UML is not used by all stakeholders”. Likewise, E4 mentioned “a unified high-level block diagram for the reference model (unifying all those three different phases) must be presented for better illustration or reflection of the model”. As a responded to the above comment, a preliminary version of the metamodel was made using simple block diagrams. However, such a representation could be used simply for process documentation purposes. If the metamodel is going to be an integral part of model-driven development and OMG metamodeling framework (Atkinson and Kuhne 2003), a semi-formal representation of the metamodel becomes important when the migration scale is large. In this spirit, UML is a de-facto standard for the conceptual representation of a particular domain in terms of organising constructs, their relationships, and decidable reasoning. Furthermore, UML is used only to represent the metamodel for the purpose of illustration and its graphical representation is presented later in the prototype system (next section). With respect to DP3, there was no major comment made by the experts. Step 2. Prototype System In this step, a prototype system of the refined metamodel from the previous step was implemented in order to appraise the metamodel efficacy with respect to the design principles. Through this prototype it was also possible to examine the adherence of the 26 metamodel to DP4, i.e. creating situation method for a given cloud migration scenario through instantiation, reusing, and configuration of the generic constructing in the metamodel. The prototype was built on the guidelines proposed in (Ralyté, Deneckère et al. 2003) for the situational method engineering approach. The prototype comprises two components: (i) a repository which stored the metamodel constructs, their definitions, relationships among them, and relation to migration types and (ii) a generic three-step procedure for the metamodel instantiation and customisation. The input to the procedure are parameters of a migration scenario mainly selected cloud service delivery model (migration types) and migration phases such as Plan, Define, and Enable. The sourced input parameters, provided by a method engineer, are used to select relevant constructs of the metamodel which are stored and retrieve from the system repository. Figure 4 choosing a migration type for a target method Once the initial method is created, the system shows constructs which are mandatory, situational, or unnecessary to be carried out in the method (the fourth form in Figure 6). Figure 7 shows a snapshot of a created sample method. The method engineer can browse through the method, which contains a set of relevant constructs and their definitions reused from the metamodel. The graphical user interface in Figure 7 has three main sections. The upper part contains the method name (in this fictitious example LegacyMigrationtoAmazonEC2), the migration type, and a general description of the method. The bottom-left part shows the constructs of the method reused from the metamodel. The method is rendered using a Microsoft .Net Tree View Control which is a common control to visualise complex data structures. The bottom-right part contains the information about a construct once the method engineer clicks on it in the tree view. Different icons are used in the prototype system to illustrate the classification of a method’s constructs such as phases, tasks, and work-products. Different functions may be performed to accommodate migration method needs such as (i) adding new constructs to the created method in the cases where the pre-existing constructs in 27 the in the repository are insufficient for the representation of a new particular construct for a given migration scenario (ii) extending existing constructs with new sub-constructs through the notion of inheritance in object-oriented software design, (iii) adding alternative techniques to guide developer in how to operationalise the abstract constructs, and (iv) defining a specific flow among constructs in the method to show how they are sequenced. Figure 5 a created method for enable phase of migration type The last optional step is to export the method as an XML document (Mendling and Nüttgens 2006). Using the XML document in the prototype facilitates computer-readability and interoperability of produced methods across modelling tools. Figure 8 shows the conceptual structure and corresponding XML representation of a created method. Later on, developers can import this base method, reuse, and tailor it for a given migration scenario. The developers can specialise the method through new constructs or operationalisation techniques using complementing method or previous cloud migration experience. 28 Figure 6 an excerpt of a created method described in an XML format The prototype was examined by two experts. They worked with prototype, ran three-step tailoring procedure, and expressed their opinions about the suitability of the metamodel regarding DP1, DP2, DP3, and DP4. Two cloud computing experts, denoted by E5 and E6, one project manager and one technical lead were recruited and asked to provide feedback on the prototype. They have had experience in moving geosocial networking and finance applications to cloud environments, respectively. Each expert was asked to nominate one cloud migration scenario in which they already had actively participated. The overall feedback from the experts was positive along with some suggestions for further improvement of the metamodel. Both experts primarily mentioned that providing a rich repository of constructs and flexibility for extending them with new ones are excellent features of the metamodel. They believed the metamodel will have a positive effect on the quality of the cloud migration process. E6 highlighted that the framework is helpful for practitioners who may not be familiar with the cloud migration concepts. They also mentioned that the metamodel mitigates missing constructs that are important for consideration during the migration process. Furthermore, E6 stated that the metamodel’s ability in moving from text-based to a standard representation of methods facilitates method integration with other process modelling tools. Regarding the adherence to the DP1, experts alike agreed that the metamodel covers major constructs relevant to the cloud migration process. The experts provided some suggestions for improving the user interface design of the prototype. For example, E5 suggested adding a drag and drop feature for moving constructs among phases. Both experts acknowledged the clarity of names and definitions (DP2) and classification of constructs based on names and the migration types (DP3). The experts also provided positive feedback about DP4 and confirm the suitability of the metamodel tailorability for a given scenario; however, they suggested adding pre-built reusable templates relevant to particular cloud migration domains such as mobile computing, finance, or insurance in order to create immediate methods through the process of method tailoring for 29 specific domains. Additionally, the experts uttered improving the prototype to allow multiple users concurrently work on the method under enactment and maintenance, and if a user changes the method content, the framework can integrate this change into new a version of the method. E6 suggested adding warning messages when users define an illogical sequence among activities. However, adhering to some of the above suggestions are trivial to the main objectives of the current research and constitute as the future work. Discussion Implications for research Aimed at alleviating the problems afflicting the process aspect of the cloud migration, this research contributes to the cloud computing literature in several ways. Firstly, researchers have attempted to develop intellectual models to demystify multifaceted yet ambiguous nature of cloud computing technology from perspectives architecture of cloud computing (Hamdaqa and Tahvildari 2012; Zimmermann, Pretz et al. 2013), green cloud computing (Procaccianti, Lago et al. 2014), quality aspects of cloud services (Nunez, Fernandez-Gago et al. 2013), eases code refactoring (Ardagna, Nitto et al. 2012), reducing risk and compliance efforts for cloud computing (Martens and Teuteberg 2011; Keller and König 2014). Compared to these studies and in response to call made by previous research for engaging scholar to enhance the methodological aspect of cloud migration (Jamshidi, Ahmad et al. 2013; Fahmideh, Daneshgar et al. 2016), a key theoretical contribution of this research is to shed light into the cloud adoption from the process perspective by developing an overarching, yet customizable, metamodel of moving legacy systems to cloud platforms. The proposed metamodel hides away the multifaceted and dispersed area of cloud computing migration from operationalisation details that are only relevant to the domain-specific cloud computing adoption by providing an abstract representation of core constructs in the domain. It facilitates the understanding of cloud migration process for both IS researchers and practitioners since it represents a single and unified model instead of looking for such a model in the existing sporadic and fragmented literature. It can also educate newcomers to the cloud computing field to envision the way through which organisation can move their legacy systems to cloud platforms. Secondly, the proposed metamodel can be viewed as a knowledge sharing platform to assist consistent communication between scholars since they can use the metamodel as a reference process model, allowing effective knowledge transfer across the community, which has been the concern of the current literature in the field (Hamdaqa and Tahvildari 2012). The metamodel will fertile theoretical grounding for future research and is as a potential candidate for addressing the need for future cloud standardization as raised by (Dillon, Wu et al. 2010; Ortiz Jr 2011). Thirdly, previous research largely assumes that the cloud migration process is monomorphic, i.e. a single migration method is enough. When the methods reviewed in section Related Work are viewed collectively, they define a set of fixed activities for reengineering and integrating existing legacy systems with cloud services, though they may differ in their scope, operationalization details, and application domain. While there are merits to adopting these methods, some research has started to argue that cloud migration methods need to be tailored prior to their enactment based on a chosen cloud platform, migration type (e.g. IaaS, PaaS, or SaaS), reusability and quality of legacy system source code, system scalability and security requirements (Mohagheghi, Berre et al. 2010; Menychtas, Santzaridou et al. 2013). For instance, a method might be a better fit for process-intensive and distributed workloads from legacy data centers to public IaaS whilst another method maybe an adequate option for 30 making a legacy system SaaS-enabled. While such characteristics circumscribe the method suitability of a method for a given scenario, this research integrated extant migration solutions into a generic metamodel, supporting a pluralist view of the cloud migration process and yet customizable and extensible. Implications for practice Pertaining to practical values of this research IS practitioners may benefits from the results of this research in the following ways. Previous research (Yang and Tate 2012; Fahmideh 2016) state an urgent demand for model explaining cloud computing technologies in simple and friendly language since existing migration methods mostly focus on specific technical details of utilization of cloud services but do not offer practical knowledge to IS executives who may find difficult to fully comprehend, digest, synthesize, and put this voluminous and unstructured cloud migration body of knowledge for a specific migration purpose. A better understanding and articulation of the cloud migration process can facilitate identification of appropriate activities, anticipation, cost, and expected outcomes of a migration exercise. In response to this issue, the current research extends the literature by proposing a metamodel acting as an abstract view of cloud migration domain and flexible for extension and helping IS executives to gain the knowledge of what important business and technical activities that should be incorporated during moving legacy systems to cloud platforms. Secondly, an IT-based organisation may have its own arbitrary off-the-shelf or in-house method for a technology shift but it does not applicable for cloud computing migration. An important application of results in this research is that metamodel syntheses commonly encountered constructs to provide a rich source that can be integrated with existing methods, as an extension, to enhance their capability to support cloud migration. Thirdly, as is the case in any IS projects, method designers need to select appropriate methods that fit characteristics of a given cloud migration scenario. This effort cannot be facilitated unless by adopting a suitable tool to analyse and evaluate existing methods in terms of their features, shortcomings, strengths, similarities, and differences. According to Siau and Rossi (Siau and Rossi 1998), one effective way of comparing family-related methods, herein cloud migration process, is to use metamodels as a basis for analysis because they take place at one level of abstraction and capture information about methods. As mentioned earlier, cloud migration literature points to a dozen of methods for cloud adoption such as Chauhan’s Method (Chauhan and Babar 2012), REMICS (Mohagheghi 2011), Tran’s Method (Tran, Keung et al. 2011), Cloud-RMM (Jamshidi, Ahmad et al. 2013), Strauch’s Method (S. Strauch 2014), Zhang’s Methodology (Zhang, Chung et al. 2004), Oracle Method (Laszewski and Nauduri 2011), ARTIST Method (Menychtas, Santzaridou et al. 2013), Amazon Method (Varia 2010), Legacy-to-Cloud Migration Horseshoe (Ahmad and Babar 2014), IVI Cloud Computing Life Cycle (Conway and Curry 2013), and MILAS (Huru 2009). As the applicability of these methods is limited by characteristics of a migration scenario, project managers can use the list of constructs in the metamodel as a checklist to examine and select an appropriate existing method to match a given migration scenario. And finally, the metamodel is a useful source used by project managers to estimate required development effort to make legacy systems cloud-enabled. The metamodel constructs provides heuristics that facilitates analysing required migration effort and, accordingly, it can be used as an input for the studies by (Tran, Keung et al. 2011) and (Quang Hieu and Asal 2012) suggesting a migration cost estimation based on development tasks are required to be performed. 31 Limitations of the study The current study has three limitations. Firstly, a potential weakness of the case studies is their specificity to a context which limits generalisability of the results to other applications and contexts (Benbasat, Goldstein et al. 1987). Although the applicability of metamodel was illustrated in three idiosyncratic cases with different characteristics, the complete satisfaction of the DP1 and DP3 can still be subject to some arguments. The metamodel is only a representative of the constructs of the three case studies and there is a possibility of being extended by introducing new constructs or relationships if more case studies are performed. In this regard, this research acknowledges that to increase the generalisability of the metamodel as a domain language for cloud computing adoption, it should be appraised with more cases in a variety of cloud migration contexts. By the word context, this research implies different industries, migration scale (partial or full), and organisation size (.i.e. small start-up, medium-sized organisation, and big organisations) which help identifying possible improvements of the framework components. Secondly, the current study acknowledges the limitation of retrospective studies (Hess 2004). Since it was not possible to have a detailed record of each activity of migration scenario, this research relied on the accuracy of the written documents about the cloud migration scenarios, which might not have documented some valuable constructs that were related to the cloud migration. Hence, examining the adherence of the metamodel to the design principles has been subjected to the quality of available documents of the migration scenarios. There is a possibility of missing some constructs that could be added to the metamodel to increase its domain coverage. This threatens the examining of the metamodel adherence to DP1 and DP3. To alleviate this issue, we conducted follow up communications with interviewees to confirm the validity of the secondary documents of the case studies and provide any missing information. Thirdly, the refinements to the metamodel have been based on the opinions from six experts which might have been biased and confined by their own experience and knowledge in relation to the cloud migration. Therefore, the satisfaction of design principles might have been affected by this threat. Receiving feedback from a larger number of experts in the cloud migration area in future will reduce this threat. Finally, although the steps for the metamodel tailorability was showed through the prototype system, there is no claim regarding adherence to the DP4 as it can be extended with new steps as briefly pointed out in the next section. Conclusion and future research This study was justified with the lack of an integrated and abstract domain language for efficient creation, configuration, standardisation and sharing knowledge of cloud migration processes that cater to specific cloud migration scenarios. In addressing this gap in extant literature, a generic, domain-independent, and tunable metamodel was developed and evaluated that constitutes reusable domain constructs incorporated into the cloud migration process. It was performed by case studies as the context of data collection, domain experts as source of data, and a prototype system as the research tool. The identified limitations of the current study lead to several directions for further extension of this work. Some of future studies are described in the following. One is to augment the metamodel to encompass new constructs relevant to post-migration and during the system maintenance in the cloud, for example continuous integration and delivery. Similarly, the metamodel can be extended to other particular domains of cloud computing. An example of that is mobile cloud systems which is a growing area of the cloud computing field (Giurgiu, Riva et al. 2009; Dinh, Lee et al. 2013). Mobile cloud applications 32 are run on mobile devices, utilise cloud services, and characterised with challenges such as battery life, bandwidth, heterogeneity, and privacy in mobile environments. The metamodel can be extended with constructs related to the development of such system. The UML formalism used in this study for representation of the metamodel facilitates inclusion and representation of new further constructs in a structured way. Secondly, depending on the characteristics of a cloud migration scenario, the creation of situational cloud migration methods may involve other factors that have not been covered by the current version of the metamodel and prototype system. Factors such as code refactoring cost, the choice of a target cloud platform, the pricing model of cloud providers, the capability of the development team, and time to market which may influence the steps of method tailoring procedure. In addition, a method tailoring effort may involve making tradeoffs among different factors or cloud migration goals which may be in contradiction or have dependencies with each other. The trade-off analysis of alternative migration methods can be performed on the basis of the results of an aggregated analysis of methods. As a further work, one can utilise the idea of goal-driven situational method tailoring suggested in (Cesar and Paolo 2009; Karlsson and Ågerfalk 2011) as a baseline in order to strengthen the metamodel tailorability for addressing such complex situations during a tailoring effort. Given the inclination of IT-based organizations towards empowering their legacy systems with cloud computing services, this study strives to facilitate consistent knowledge sharing and exchange about cloud migration processes as the proposed metamodel generalizes common domain constructs that are typically incorporated into a cloud migration process. It also enables method engineers to create and share new customised cloud migration methods on the basis of selecting constructs from the metamodel and characteristics of a migration scenario. We expect that this research will motivate other researchers to further explore new cloud migration approaches which systematically simplify the cloud migration process. References Ahmad, A. and M. A. Babar (2014). A framework for architecture-driven migration of legacy systems to cloud-enabled software. Proceedings of the WICSA 2014 Companion Volume. Sydney, Australia, ACM: 1-8. Ambler, S. W. (2005). The Elements of UML (TM) 2.0 Style, Cambridge University Press. Antkiewicz, M., K. Czarnecki, et al. (2009). "Engineering of framework-specific modeling languages." IEEE Transactions on Software Engineering 35(6): 795-824. Antkiewicz, M., K. Czarnecki, et al. (2009). "Engineering of framework-specific modeling languages." Software Engineering, IEEE Transactions on 35(6): 795-824. Ardagna, D., E. Di Nitto, et al. (2012). Modaclouds: A model-driven approach for the design and execution of applications on multiple clouds. Modeling in Software Engineering (MISE), 2012 ICSE Workshop on, IEEE. Ardagna, D., E. D. Nitto, et al. (2012). MODAClouds: a model-driven approach for the design and execution of applications on multiple clouds. Proceedings of the 4th International Workshop on Modeling in Software Engineering. Zurich, Switzerland, IEEE Press: 50-56. Armbrust, M., A. Fox, et al. (2010). "A view of cloud computing." Communications of the ACM 53(4): 50-58. Atkinson, C. and T. Kuhne (2003). "Model-driven development: a metamodeling foundation." Software, IEEE 20(5): 36-41. Bain, A., J. Mitchell, et al. (2011). A domain-specific language for computing on encrypted data (invited talk). LIPIcs-Leibniz International Proceedings in Informatics, Schloss DagstuhlLeibniz-Zentrum fuer Informatik. 33 Benbasat, I., D. K. Goldstein, et al. (1987). "The Case Research Strategy in Studies of Information Systems." MIS quarterly 11(3): 369-386. Beydoun, G., G. Low, et al. (2009). "FAML: a generic metamodel for MAS development." Software Engineering, IEEE Transactions on 35(6): 841-863. Brandic, I., S. Dustdar, et al. (2010). Compliant cloud computing (c3): Architecture and language support for user-driven compliance management in clouds. Cloud Computing (CLOUD), 2010 IEEE 3rd International Conference on, IEEE. Cesar, G. P. and G. Paolo (2009). "Method construction by goal analysis." Chauhan, M. A. and M. A. Babar (2012). Towards Process Support for Migrating Applications to Cloud Computing. Cloud and Service Computing (CSC), 2012 International Conference on. Cimato, S., E. Damiani, et al. (2013). Towards the certification of cloud services. Services (SERVICES), 203 IEEE Ninth World Congress on, IEEE. Conway, G. and E. Curry (2013). The IVI Cloud Computing Life Cycle. Cloud Computing and Services Science, Springer: 183-199. Cuadrado, J. S. and J. G. Molina (2009). "A model-based approach to families of embedded domainspecific languages." IEEE Transactions on Software Engineering 35(6): 825-840. Dillon, T., C. Wu, et al. (2010). Cloud computing: Issues and challenges. Advanced Information Networking and Applications (AINA), 2010 24th IEEE International Conference on, Ieee. Dinh, H. T., C. Lee, et al. (2013). "A survey of mobile cloud computing: architecture, applications, and approaches." Wireless communications and mobile computing 13(18): 1587-1611. Dougherty, B., J. White, et al. (2012). "Model-driven auto-scaling of green cloud computing infrastructure." Future Generation Computer Systems 28(2): 371-378. Fahmideh, M., F. Daneshgar, et al. (2016). "Cloud migration process—A survey, evaluation framework, and open challenges." Journal of Systems and Software 120: 31-69. Fahmideh, M., F. Daneshgar, et al. (2016). "Cloud Computing Adoption: An Effective Tailoring Approach." The 27th Australasian Conference on Information Systems (ACIS) In press. Fahmideh, M., Low Graham, Ghassan Beydoun (2016). "Conceptualising Cloud Migration Process." Twenty-Fourth European Conference on Information Systems (ECIS), İstanbul,Turkey, 2016 1: 0. Fehling, C., F. Leymann, et al. (2012). "Pattern-based development and management of cloud applications." Future Internet 4(1): 110-141. Fehling, C. and R. Retter (2011). Cloud computing patterns, URL: http://cloudcomputingpatterns. org. Giurgiu, I., O. Riva, et al. (2009). Calling the cloud: enabling mobile phones as interfaces to cloud applications. Middleware 2009, Springer: 83-102. Gonzalez-Perez, C. and B. Henderson-Sellers (2008). Metamodelling for software engineering, Wiley Publishing. Gregor, S. and A. R. Hevner (2013). "Positioning and presenting design science research for maximum impact." MIS Quarterly 37(2): 337-356. Hamdaqa, M., T. Livogiannis, et al. (2011). A Reference Model for Developing Cloud Applications. CLOSER, Citeseer. Hamdaqa, M., Livogiannis, T., Tahvildari, L. (2011). A Reference Model for Developing Cloud Applications, In: Proceedings of CLOSER 2011. Hamdaqa, M. and L. Tahvildari (2012). "Cloud computing uncovered: a research landscape." Advances in Computers 86: 41-85. Harmsen, A. F., J. Brinkkemper, et al. (1994). Situational method engineering for information system project approaches, University of Twente, Department of Computer Science. Hess, D. R. (2004). "Retrospective studies and chart reviews." Respiratory care 49(10): 1171-1174. Huru, H. A. (2009). "MILAS: ModernIzing Legtacy Applications towards Service Oriented Architecture (SOA) and Software as a Service (SaaS)." 34 Isard, M. and Y. Yu (2009). Distributed data-parallel computing using a high-level programming language. Proceedings of the 2009 ACM SIGMOD International Conference on Management of data, ACM. Jamshidi, P., A. Ahmad, et al. (2013). "Cloud Migration Research: A Systematic Review." Cloud Computing, IEEE Transactions on PP(99): 1-1. Jonkers, H., M. Stroucken, et al. (2006). Bootstrapping Domain-Specific Model-Driven Software Development within Philips. 6th OOPSLA Workshop on Domain Specific Modeling (DSM 2006), Citeseer. Karlsson, F. and P. J. Ågerfalk (2011). "Towards Structured Flexibility in Information Systems Development: Devising." Theoretical and Practical Advances in Information Systems Development: Emerging Trends and Approaches: Emerging Trends and Approaches: 214. Karlsson, F. and P. J. Ågerfalk (2012). "MC Sandbox: Devising a tool for method-user-centered method configuration." Information and software technology 54(5): 501-516. Keller, R. and C. König (2014). "A Reference Model to Support Risk Identification in Cloud Networks." Kelly, S. and R. Pohjonen (2009). "Worst practices for domain-specific modeling." Software, IEEE 26(4): 22-29. Kitchenham, B., O. Pearl Brereton, et al. (2009). "Systematic literature reviews in software engineering – A systematic literature review." Information and software technology 51(1): 715. Kopp, O., T. Binz, et al. (2012). BPMN4TOSCA: A domain-specific language to model management plans for composite applications, Springer. La, H. J. and S. D. Kim (2009). A systematic process for developing high quality saas cloud services. Cloud Computing, Springer: 278-289. Laszewski, T. and P. Nauduri (2011). Migrating to the Cloud: Oracle Client/Server Modernization, Elsevier. Leymann, F. (2011). "Cloud computing." it-Information Technology Methoden und innovative Anwendungen der Informatik und Informationstechnik 53(4): 163-164. Lindland, O. I., G. Sindre, et al. (1994). "Understanding quality in conceptual modeling." Software, IEEE 11(2): 42-49. Liu, F., J. Tong, et al. (2011). "NIST cloud computing reference architecture." NIST special publication 500: 292. Loutas, N., E. Kamateri, et al. (2011). Cloud computing interoperability: the state of play. Cloud Computing Technology and Science (CloudCom), 2011 IEEE Third International Conference on, IEEE. Martens, B. and F. Teuteberg (2011). "Risk and compliance management for cloud computing services: Designing a reference model." Mendling, J. and M. Nüttgens (2006). "XML interchange formats for business process management." Information Systems and E-Business Management 4(3): 217-220. Menychtas, A., C. Santzaridou, et al. (2013). ARTIST Methodology and Framework: A novel approach for the migration of legacy software on the Cloud. Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), 2013 15th International Symposium on, IEEE. MLSAC (2016). https://www.dropbox.com/sh/u1im5321t8hdjbq/AAA5p6fWGfbedTPresVfCfNBa?dl=0, Prentice Hall PTR. Mohagheghi, P. (2011). Software Engineering Challenges for Migration to the Service Cloud Paradigm: Ongoing Work in the REMICS Project. Services (SERVICES), 2011 IEEE World Congress on. Mohagheghi, P., A. Berre, et al. (2010). REMICS- REuse and Migration of Legacy Applications to Interoperable Cloud Services. Towards a Service-Based Internet. E. Nitto and R. Yahyapour, Springer Berlin Heidelberg. 6481: 195-196. 35 Moody, D. L. (1998). Metrics for evaluating the quality of entity relationship models. Conceptual Modeling–ER’98, Springer: 211-225. Moody, D. L. (2005). "Theoretical and practical issues in evaluating the quality of conceptual models: current state and future directions." Data & Knowledge Engineering 55(3): 243-276. Nowak, A., U. Breitenbücher, et al. (2014). Automating Green Patterns to Compensate CO2 Emissions of Cloud-based Business Processes. ADVCOMP 2014, The Eighth International Conference on Advanced Engineering Computing and Applications in Sciences. Nunez, D., C. Fernandez-Gago, et al. (2013). A metamodel for measuring accountability attributes in the cloud. Cloud Computing Technology and Science (CloudCom), 2013 IEEE 5th International Conference on, IEEE. Ortiz Jr, S. (2011). "The problem with cloud-computing standardization." Computer 44(7): 13-16. Othman, S. H. and G. Beydoun (2013). "Model-driven disaster management." Information & Management 50(5): 218-228. Othman, S. H., G. Beydoun, et al. (2014). "Development and validation of a Disaster Management Metamodel (DMM)." Information Processing & Management 50(2): 235-271. Paige, R. F., P. J. Brooke, et al. (2007). "Metamodel-based model conformance and multiview consistency checking." ACM Transactions on Software Engineering and Methodology (TOSEM) 16(3): 11. Peffers, K., T. Tuunanen, et al. (2008). "A design science research methodology for information systems research." Journal of management information systems 24(3): 45-77. Procaccianti, G., P. Lago, et al. (2014). "Green Architectural Tactics for the Cloud." Quang Hieu, V. and R. Asal (2012). Legacy Application Migration to the Cloud: Practicability and Methodology. Services (SERVICES), 2012 IEEE Eighth World Congress on. Rabetski, P. (2012). "Migration of an on-premise application to the cloud." Ralyté, J., R. Deneckère, et al. (2003). Towards a Generic Model for Situational Method Engineering. Advanced Information Systems Engineering. J. Eder and M. Missikoff, Springer Berlin Heidelberg. 2681: 95-110. Ranabahu, A. H., E. M. Maximilien, et al. (2011). A domain specific language for enterprise grade cloud-mobile hybrid applications. Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11, ACM. Ried S, K. H. (2011). "Sizing the cloud—A BT futures report." Forrester Research, Inc., Cambridge, MA. Rossi, M. and S. Brinkkemper (1996). "Complexity metrics for systems development methods and techniques." Information Systems 21(2): 209-227. Rossi, M., B. Ramesh, et al. (2004). "Managing evolutionary method engineering by method rationale." Journal of the Association for Information Systems 5(9): 356-391. S. Strauch, V. A., D. Karastoyanova, F. Leymann (2014). "Migrating Enterprise Applications to the Cloud: Methodology and Evaluation." International Journal of Big Data Intelligence. Sargent, R. G. (2005). Verification and validation of simulation models. Proceedings of the 37th conference on Winter simulation, Winter Simulation Conference. Siau, K. and M. Rossi (1998). Evaluation of information modeling methods-a review. System Sciences, 1998., Proceedings of the Thirty-First Hawaii International Conference on, IEEE. Sledziewski, K., B. Bordbar, et al. (2010). A DSL-based approach to software development and deployment on cloud. Advanced Information Networking and Applications (AINA), 2010 24th IEEE International Conference on, IEEE. Stamper, R. (1996). "Signs, norms, and information systems." Signs at work. Walter de Gruyter, Berlin: 349-397. Tran, V., J. Keung, et al. (2011). Application migration to cloud: a taxonomy of critical factors. Proceedings of the 2nd International Workshop on Software Engineering for Cloud Computing, ACM. UML, O. (2004). "2.0 Superstructure Specification." OMG, Needham. 36 Varia, J. (2010). "Migrating your existing applications to the aws cloud: A Phase-driven Approach to Cloud Migration." Weimer, M., T. Condie, et al. (2011). Machine learning in ScalOps, a higher order cloud computing language. NIPS 2011 Workshop on parallel and large-scale machine learning (BigLearn). Wettinger, J., M. Behrendt, et al. (2013). Integrating Configuration Management with Model-driven Cloud Management based on TOSCA. CLOSER. Yang, H. and M. Tate (2012). "A descriptive literature review and classification of cloud computing research." Communications of the Association for Information systems 31(2): 35-60. Z.Mahmood (2013). Cloud Computing Methods and Practical Approaches, Springer-Verlag London 64. Zech, P., M. Felderer, et al. (2012). Cloud risk analysis by textual models. Proceedings of the 1st International Workshop on Model-Driven Engineering for High Performance and CLoud computing. Innsbruck, Austria, ACM: 1-6. Zhang, J., J.-Y. Chung, et al. (2004). Migration to web services oriented architecture: a case study. Proceedings of the 2004 ACM symposium on Applied computing, ACM. Zhang, L.-J. and Q. Zhou (2009). CCOA: Cloud computing open architecture. Web Services, 2009. ICWS 2009. IEEE International Conference on, Ieee. Zimmermann, A., M. Pretz, et al. (2013). Towards Service-Oriented Enterprise Architectures for Big Data Applications in the Cloud. Enterprise Distributed Object Computing Conference Workshops (EDOCW), 2013 17th IEEE International, IEEE. Zimmermann, O., C. Miksovic, et al. (2012). "Reference architecture, metamodel, and modeling principles for architectural knowledge management in information technology services." Journal of Systems and Software 85(9): 2014-2033. 37