Abstract
Cloud computing is a promising computing paradigm wherein computational resources such as processors, storage, and software applications are provided as services to the clients over high bandwidth networks. The diverse software services (SaaS) in a Cloud may not exist in isolation; they require interaction with each other in order to accomplish tasks. Service-Oriented Architecture (SOA) enables applications to be designed and developed as a collection of services, each accessible through well-defined interfaces specified for the purpose. Since SOA inherently fosters interoperability, it would enhance the integration and interaction among the Cloud software services. However, hardware and software technologies are constantly evolving at a tremendous pace and technology obsolescence is a major challenge to the software industry. Consequently, a software development approach that could alleviate the undesirable effects of technology shifts is desirable. In this perspective, the Model Driven Architecture (MDA) becomes a preferred methodology for developing software applications. This chapter proposes to integrate the three paradigms, namely Cloud computing, SOA, and MDA, to yield Cloud software services that are robust, flexible, and agile. Convergence of SOA and MDA paradigms in the development of Cloud software services will provide an apt solution to technology obsolescence.
TopIntroduction
Cloud Computing, an emerging computing model in the field of Information and Communication Technology (ICT), attempts to optimize the utilization of hardware and software resources distributed in a network by sharing them among multiple users. The resources provided as Cloud services are analogous to other utility services such as electricity, water, etc., as they are made available to the consumers on demand, on a pay-per-use or subscription basis. The Cloud maintains a shared resource pool and the resources are acquired from or released to this pool dynamically to meet the varying demands of the consumer, thereby giving an illusion of existence of infinite resources. The software applications in the Cloud offered as services to the clients are referred to as SaaS (Software as a Service). These Cloud software services implemented using diverse technologies, may not be isolated from one another and may require interacting with each other in order to accomplish a business task.
Service Oriented Architecture (SOA) is an architectural style that has evolved from object-oriented and component-based computing. It enables building enterprise applications by integrating services available in a network such as the Web, thus promoting the software as a service concept. Each service is a discrete unit of logic addressing a specific business concern. Extending SOA beyond the enterprise firewalls into the Cloud would help garner the potential benefits of both SOA and Cloud computing. Since SOA inherently fosters interoperability, it will enhance the integration and interaction among the Cloud software services.
With hardware and software technologies in a state of flux, the technology shift is posing a serious challenge to the IT industry. In spite of the business functionality remaining relatively constant, as the technologies evolve, legacy software applications tend to become obsolete and need to be replaced. This incurs additional expenses on the part of the Cloud service providers. It is therefore desirable to promote a software development approach that can cope with multiple implementation technologies and extend the life expectancy of Cloud software applications.
Model Driven Architecture (MDA), a technology-independent software development approach driven by the activity of modeling, considerably mitigates the adverse effects of technology change. The MDA approach uses formal models, specified in well-defined modeling languages to describe various aspects of the software system. The semantically rich programmable models serve as prime artifacts in the entire software development process, directing the course of software application development phases such as analysis, design, construction, deployment, operation, maintenance, and modification. This approach does not eclipse the various technologies but works with them synergistically to enhance the efficiency, quality, and longevity of software applications.
This chapter is an attempt to integrate the three paradigms, namely, Cloud computing, SOA, and MDA, to yield Cloud software services that are robust, flexible, and agile. Accordingly, the basic concepts of Cloud computing, model-driven architecture, service-oriented architecture, and Web services framework are discussed in this chapter. The development and integration of Cloud software services based on the MDA approach is illustrated with the help of suitable examples.
TopBackground
This section provides an introduction to Cloud computing, service-oriented architecture, and Web services framework.
Key Terms in this Chapter
MDA: A software development approach where formal models are used to represent the system at different levels of abstraction, and model-to-model and model-to-code transformations are executed by automated or semi-automated transformation tools.
Cloud Computing: A computing model wherein hardware, software, data, and network resources are provided as services to the consumers over high bandwidth networks on a pay-per-use or subscription basis.
Web Service: A service available on the Web that is platform-independent, self-describing, discoverable, and accessible using a standard communications framework.
WSDL: An XML-based language used for describing Web services.
Model Transformation: A process of converting the source model into target model based on a specific set of rules.
Service: A distinct logic of unit addressing a specific business concern.
SOA: Service Oriented Architecture is an architectural style that promotes integration of services available in a network to build enterprise applications.
Metamodel: A metamodel is a model used to describe the constructs or elements of another model.