From Software Specification to Cloud Model

From Software Specification to Cloud Model

Dušan Savić (University of Belgrade, Serbia), Siniša Vlajić (University of Belgrade, Serbia), and Marijana Despotović-Zrakić (University of Belgrade, Serbia)
DOI: 10.4018/978-1-4666-5784-7.ch004
OnDemand PDF Download:
No Current Special Offers


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.
Chapter Preview

1. 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.


2. 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).

Key Terms in this Chapter

Model Driven Software Development: Is an approach to software development in which model is a communication tool between different software development phases.

Platform: A platform represents a subsystem or a set of subsystems that provide certain functionality.

Use Case Driven Development: Is an approach to software development in which use case is a loadstar for requirements and software specification as well as its validation and verification.

Software Architecture Model: Is a model of software components and relations among them.

Cloud Platform: Is a combination of software and hardware platform that provides functionality for developers to develop and end users to use it as a service.

Software Specification: Is a model of a software system which contains enough unambiguous information to be implemented.

Cloud Model: Is a model of components that communicate among each other to provide infrastructure for different type of clients.

Complete Chapter List

Search this Book: