Applications are often multi-tier and require application servers, workflow engines, and database management systems. Cloud computing is a computing paradigm wherein the resources such as processors, storage, and software applications are provided as services via the Internet. Moving an enterprise application to the cloud can be a challenge. This application needs to be split into the components that then automatically deploy on the cloud. In this chapter, the authors introduce a way to automatically derivate the main architecture components from the software requirements that can serve as a basis for an architecture diagram in the MOCCA method. The proposed approach is model and use case driven.
Top1. Introduction
Applications today are often composite, multi-tier applications, consisting of application components such as UIs, services, workflows and databases as well as middleware components such as application servers, workflow engines and database management systems (Mietzner, Unger, & Leymann, 2009). When moving such a composite application into the cloud, decisions must be made about putting which tier and even which component of such an application to which cloud (Leymann, Fehling, Mietzner, Nowak, & Dustdar, 2011; Andrikopoulos, Binz, Leymann, & Strauch, 2013; Cardoso, Binz, Breitenbücher, Kopp, & Leymann, 2013; Demont, Breitenbücher, Kopp, Leymann, & Wettinger, 2013).
The authors (Leymann, Fehling, Mietzner, Nowak, & Dustdar, 2011) defined Move-to-Cloud problem as a two main problems:
- 1.
How to rearrange the components of a multi-tier, multi-component application into disjoint groups of components, and
- 2.
How each group can be provisioned separately to different clouds.
They describe methodology that allows application developers and architects to model their application components and properties and is named as MOCCA method.
We have developed Silab approach whose the main goal was to enable automated analysis and processing of software requirements in order to achieve automatic generation of different parts of a software system. Silab approach has been used for the Kostmod 4.0 project (Kostmod 4.0, 2009), which was implemented for the needs of the Royal Norwegian Ministry of Defense.
In this chapter we have introduced a way how Silab approach can be integrated with MOCCA approach. Therefore, we have defined transformation which automatically generates an architecture model for MOCCA method form software requirements.
This chapter is organized as follows. In the next section it gives an overview of the cloud computing. Section 3 introduces model and use case development (Jacobson, Christerson, Jonsson, & Overgaard, 1993; Cockburn, 2000), and Section 4 describes Silab approach. Finally, Section 5 presents integrated Silab and MOCCA approach and Section 6 concludes the chapter and outlines some future works.
Top2. Cloud Computing
The term cloud was first used at the end of the last century to refer to large ATM networks. At the beginning of this century, with the advent of Amazon’s Web Services (Maggiani, 2009) the term cloud computing begins to be widely used (Leymann, 2009; Leimeister, Böhm, Riedl, & Krcmar, 2010; Talukder, Zimmerman, & Prahalad, 2010). Eric Schmidt (Aymerich, Fenu, & Surcis, 2008) was one of the pioneers and promoter of cloud computing. Cloud computing has emerged from grid computing and it is related with technologies and concepts such as: Simple Object Access Protocol (SOAP), Service Oriented Architecture (SOA), Web services, Software-as-a-Services (SaaS) (Janssen & Joha, 2011).
Cloud computing has evolved from Grid computing. The idea of grid computing is a generalization of the Web. Web is primarily a service that allows the presentation of information and exchange data via the Internet. GRID is a service primarily for the sharing of processing power and memory of computers on the network allowing local or global network turns into a huge computer resource.
The main characteristics of Grid Computing (Foster, Kesselman, & Tuecke, 2001) are:
- 1.
Decentralized resource control,
- 2.
Standardization, i.e. open and common protocols and interfaces are used in Grid middleware, and
- 3.
Not-trivial qualities of services.
Grid application requires a middleware to enable communication via open and standardized protocols. All middleware attempts to apply the standards defined by the OGF community (OGF, 2013).