Modeling Cloud SaaS with SOA and MDA Ritu Sharma1, Manu Sood2 and Divya Sharma3 1, 2
Himachal Pradesh University, Summer Hill, Shimla 5, Himachal Pradesh, India 3 National Informatics Centre, New Delhi, India 1
[email protected],
[email protected],
[email protected]
Abstract. Cloud computing, a more recent computing paradigm, has evolved from a variety of legacy technologies that include Service oriented Architecture (SOA) and Web services besides several others. The software services in a cloud must be developed based on the service-oriented approach, in order to derive their full potential and benefits. Since, SOA inherently nurtures interoperability; it will enhance the integration and interaction among the cloud software services. Also, leveraging the Model Driven Architecture (MDA) approach to develop individual cloud software services will result in services that are more robust, flexible and agile in the wake of ever changing technologies. This paper is an attempt by the authors to lay emphasis on the convergence of Cloud computing, SOA and MDA in development of optimum business solutions. Keywords: Cloud computing, Cloud SaaS, Service Oriented Architecture (SOA), Model-Driven Architecture (MDA), Computation Independent Model (CIM), Platform Independent Model (PIM), Platform Specific Model (PSM), Interoperability
1 Introduction Recent years have witnessed rapid transitions in the field of Information and Communication technology (ICT). Service Oriented Architecture (SOA), a recent software development approach, has evolved from distributed systems; the distributed systems have evolved from the client-server systems, which in turn have evolved from the mainframe systems. In addition, the specification of functionality in software design and code has abstracted to higher levels – from modules, to objects, to components and now the services. The SOA paradigm is based on ‘separation of concerns’ whereby the automation logic required to solve a large problem is decomposed into several smaller related pieces, each addressing a specific concern of the problem. A more recent computing approach is cloud computing which has evolved from SOA and Web services, besides several other legacy technologies. Cloud computing attempts to optimize the utilization of hardware and software resources distributed in a network, by sharing them among multiple users. The resources are acquired and released in response to the fluctuating demands of the user. Yet another software development approach is the Model Driven Architecture (MDA) wherein the models drive the process of software development. The platform-
independent model specifies the business functionality of the system independent of the specific technology used for its implementation. The transformation among the models at different levels is carried out using automated transformation tools. Instead of considering these approaches in isolation, integrating all three together while developing the automated enterprise solutions will result in software systems that are more agile, flexible, portable, interoperable and robust. In this paper, the authors attempt to emphasize on the significance of Serviceoriented Architecture (SOA) and Model Driven Architecture (MDA) in the development of cloud software services. Sections 2, 3 and 4 briefly discuss the basic concepts of Cloud computing, Model Driven Architecture and Service Oriented Architecture, respectively. The authors illustrate their approach in Section 5 and 6 with the help of an example. Section 5 illustrates the interoperability among cloud SaaS in the light of SOA whereas Section 6 discusses the significance of MDA in the development of cloud SaaS. Section 7 draws the conclusion of the paper and the future work undertaken by the authors.
2 Cloud Computing Cloud computing is a promising computing paradigm wherein shared pool of configurable computing resources such as processors, networks, servers, storage, applications, operating systems, software development environments, databases etc. are provided as services, remotely over a network on-demand, on a pay-per-use or subscription basis. The services can be accessed by the customers through a simple interface such as a browser, running on a thin client or even a mobile phone. Based on the nature of resources provided as services, the cloud service models are broadly categorized into cloud SaaS (Software-as-a-Service), cloud PaaS (Platform-as-aService) and cloud IaaS (Infrastructure-as-a-Service) [1, 2]. The Cloud computing technology has evolved from a range of legacy technologies and concepts such as distributed computing, grid computing, cluster computing, utility computing, virtualization, Software-as-a-Service (SaaS), Web services and Service Oriented Architecture (SOA) to mention a few [3, 4].
3 Model Driven Architecture (MDA) Model Driven Architecture (MDA) is an open, vendor-neutral approach [5] to enterprise application development wherein the software development process is driven by the activity of modeling the software system. The models are the prime artifacts and are formal in nature. They are specified at three levels of abstraction – Computation Independent Model (CIM), Platform Independent Model (PIM) and Platform Specific Model (PSM), to represent the various aspects of the system. The CIM or the domain model is software independent and aims at bridging the gap between the domain experts and system experts. The PIM specifies the structure, behavior and functionality of the system independent of the platform that would be used for its implementation. The PSM describes the system with respect to the
specific platform on which it would finally be implemented. The three primary goals of MDA are interoperability, reusability and portability through architectural separation of concerns [6]. Automated transformation tools are used to transform higher-level, platformindependent business models into lower-level platform-specific models and finally to implementation code. The models are defined using formal, well-defined modeling language so that they can be interpreted by a computer [7]. The MDA approach to software development benefits the stakeholders by enhancing the productivity, improving software quality, preserving the Return on Investment, reducing the development cost and reducing the time to market.
4 Service Oriented Architecture (SOA) Service Oriented Architecture (SOA) represents an architectural style in which the automation logic is decomposed into smaller, distinct units of logic, called services. Individually, these units may be distributed, yet they are autonomous and isolated from each other. These services communicate with each other by exchanging messages through well-defined interfaces. Figure 1 depicts a model of an SOA with its services and interfaces.
Figure 1 SOA – Services and Interfaces
The services in SOA are governed by a set of key principles that include – loosecoupling, autonomy, abstraction, reusability, compos ability, statelessness, discoverability and adherence to a service contract [8]. These principles enable the services to evolve independently. SOA results in the creation of business solutions that consist of inherently interoperable services. An XML-based, vendor-neutral communications framework established by web services-driven SOA enables crossplatform integration and intrinsic interoperability among the services. The standards comprising this framework are – Web Service Description Language (WSDL), Simple Object Access Protocol (SOAP) and Universal Description, Discovery, and Integration (UDDI). WSDL is an XML-based standard for service description. A service description specifies the name of the service, the data to be provided to the service and the data that would be returned by the service. SOAP provides XMLcompliant communications format required by the services. The service description registry and discovery is realized through UDDI.
A service-oriented software design approach may follow a top-down or a bottomup approach. The top-down approach is an “analysis-first” approach which is closely tied to or derived from organization’s existing business logic. This approach requires an overall business model of the organization to be created prior to modeling services for individual business processes. The bottom-up approach encourages the creation of individual services to fulfill application-centric requirements which are then integrated to achieve the overall business logic [8].
5 Cloud SaaS, SOA and Interoperability US NIST (National Institute of Standards and Technology) defines Cloud Softwareas-a-Service (SaaS) as a capability provided to the consumer to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings [9]. The applications in the cloud may be as simple as a time zone converter performing a single discrete function, or as complex as a holiday packaging system performing a set of related business functions. As mentioned earlier, SOA and Web services are the technologies, besides several others, from which cloud computing has evolved. The cloud should not be looked at as a new architecture but instead as another option of storing and running services within SOA [10]. In addition to developing a cloud based on service-oriented architecture, the individual software applications deployed therein may themselves be service-oriented.
Figure 2 Software Services in a cloud interact through interfaces
A cloud may host a variety of software applications as cloud services which fulfill the business requirements of its varied customers. Based on the requirements of the customers (or service consumers) these software services in the cloud may need to interact with each other. This interaction is accomplished through formal, standardized interfaces defined using WSDL. A cloud with cloud software services interacting through interfaces is depicted in Figure 2. As SOA promotes intrinsic interoperability [8], the SOA-based cloud architecture would have cloud software services that are inherently interoperable. The XML-based vendor-neutral communications framework, comprising of WSDL, SOAP and UDDI for defining, publishing, and using the services, would ensure interoperability among the various cloud services running on different software platforms and hardware architectures. An important aspect of SOA is the separation of the service interface (the what) from its implementation (the how) [11]. As a result, a client (which may be another service) need not be concerned with the implementation details of the service in order to use it. The service implementation performs the necessary processing. A change in the implementation of the service does not prevent the client from communicating with the service, so long as the interface remains the same. We illustrate this with the help of an example. We identify two services – an Online Hotel Reservation system (OHRS) and Cab-On-Hire system (COHS) – in the cloud. A fictitious business enterprise, ABC hotel, subscribes to OHRS application in order to provide online services to its clients (customer and hotel personnel) through its website ABCHotel.com. The services (functionalities) enable the clients to book accommodation, cancel a booking, check availability status, generate reports etc. XYZ Cabs is another fictitious business enterprise which subscribes to COHS application, to provide online services to its clients through its website XYZCabs.com. The COHS allows its clients (online customers and its staff) to book a cab and cancel a booking. The ABC Hotel also hires the cabs for its in-house customers from XYZ Cabs. In order to fulfill the additional functional requirements the two cloud services must be able to interact with each other. For example, the ABC Hotel requires determining the total number of its customers hiring the cabs on a specific day. In an SOA-based cloud this interaction is enabled through an XMLbased communication framework that uses SOAP messages, as depicted in Figure 3 [12].
Figure 3 XML-based Interaction between the cloud SaaS
The hotel administrator submits a request, from one of the ABCHotel.com web pages, to XYZCabs.com to determine the number of its customers availing the cab service on a particular day. The HTTP request generated is routed via a controlling
servlet on the ABCHotel.com web server, which determines that it needs to retrieve the information (raw data) from XYZ Cabs. The servlet obtains this data by using a web service client implemented by ABCHotel.com developers. This client uses the web service interface published by XYZCabs.com to invoke a method on its server that returns the required information. The method invocation is performed by creating an XML message that contains the method name and any required parameters and then sending it to XYZCabs.com’s server using the SOAP protocol. The value(s) returned by the method call are then wrapped in another XML message and sent back to the ABCHotel.com’s web client, which extracts the information that it needs and uses a server-side script engine to render it as HTML. The HTML is then returned to the client’s browser. The advantage of using XML instead of HTML is that only raw data is required to be transferred which does not include presentation markups, thereby reducing network traffic. Also, the code required to make a request is much simpler than that required to extract data from an HTML page.
6 Cloud SaaS and Model Driven Architecture (MDA) As is evident, the technologies are constantly evolving. The technology evolution has serious ramifications in B2B context as it is more difficult to control the impact of change when external partners are involved. Rather then directly developing the cloud software services using available technologies, modeling them at a higher level of abstraction will decouple them from the undesired effects of technology change and enhance their longevity. An MDA based development of cloud SaaS (application) will enable defining these services in a technology-independent manner and will play a significant role in improving the quality of cloud software services, making them more robust, flexible and agile [13]. Encapsulating business logic in a manner that is independent of the technical mechanisms will formally capture the essence of the applications; and will also make it possible to reuse them in a variety of contexts [14]. Web service is a fundamental technology underlying the cloud computing paradigm; and is evolving too. Based on MDA approach, a formal, semantically rich platformindependent model of the Web service capturing the information and functionality provided by it, may be defined which may then be used to generate the artifacts that support the service over some other set of technologies. We illustrate this with the help of the example illustrated in the previous section. In order to meet the business requirements the OHRS and the COHS cloud SaaS must be able to interact with each other. For example the ABC Hotel utilizing the OHRS service requires determining the total number of its customers who availed the cabs from XYZ Cabs on a specific day. The application uses a business service for the purpose. In the context of enterprise architecture, a business service may be represented as a Web service, a Web page, a fat-client application screen, or an API [15]. Figure 4 depicts a business service model for the Hotel_Cab Service that includes a method (operation) to determine the total number of customers availing the cabs. The OCL (Object Constraint Language) is used to express the invariants, the preconditions and post-conditions for the operation.
Figure 4 A PIM of business service
Figure 5 depicts the PSM targeted on WSDL for the business service under consideration. The business service example is expanded to include the declaration of the output parameter – total_customers. The transformation rule involves mapping the input parameters to WSDL input messages and the output parameters to WSDL output messages. The lower part of Figure 5 represents a formal model of WSDL itself. WSDL defines port types, which in turn own operations. Operation definitions reference message definitions, with some messages playing the role of inputs and some playing the role of outputs for the operation [15].
Figure 5 Business service mapped to WSDL (PSM)
7 Conclusion and Future Work Cloud computing is fast emerging as a computing paradigm where the computations would be performed using third-party hardware and software resources. In the wake of constantly changing technologies, the authors in this paper stress on the need to leverage the MDA approach in the development of cloud SaaS. Besides, SOA-based cloud architecture will ensure improved integration and inherent interoperability among the software services in the cloud. Thus, the developers as well as the service consumers would be able to harvest the benefits of cloud computing, MDA and SOA.
At present, the authors are developing a transformation tool based on the transformation rules defined for business service. An SOA-based approach for developing the illustrated cloud application is also underway. The efforts are being made to ensure interoperability among the SOA-based cloud services.
References [1]
[2]
[3]
[4] [5] [6] [7]
[8] [9] [10] [11] [12] [13]
[14] [15]
Francesco Maria Aymerich, Gianni Fenu, Simone Surcis: An Approach to a Cloud Computing Network. In: First International Conference on the Applications of Digital Information and Web Technologies, pp. 113–118 (2008) ISBN: 978-1-4244-2623-2, doi: 10.1109/ICADIWT.2008.4664329 Ian Foster, Yong Zhao, Ioan Raicu, Shiyong Lu: Cloud Computing and Grid Computing 360-Degree Compared. In: IEEE Grid Computing Environments Workshop, pp 1–10, (November 2008). Bhaskar Prasad Rimal, Eunmi Choi, Ian Lumb: A Taxonomy and Survey of Cloud Computing systems. In: Fifth International Joint Conference on INC, IMS and IDC, pp. 44-51(2009) Rich Maggiani: Cloud computing is changing how we communicate. In: IEEE International Professional Communication Conference, pp.1-4 (2009) OMG Model Driven Architecture. http://www.omg.org/mda/. Miller, J., Mukerji, J., MDA Guide Version 1.0.1, http://www.omg.org/docs/omg/03-0601.pdf Anneke Kleppe, Jos Warmer, Wim Bast: MDA Explained: The Model Driven ArchitectureTM: Practice and Promise. Addison-Wesley Longman Publishing Co., Inc., 2003 Thomas Erl: Service Oriented Architecture: Concepts, Technology and Design. Pearson Education, Inc, 2005 Peter Mell and Tim Grance: The NIST Definition of Cloud Computing. Version 15, 10-709, http://thecloudtutorial.com/nistcloudcomputingdefinition.html Cloud Computing and SOA Convergence in Your Enterprise, http://searchsoa.techtarget.com/generic/0,295582,sid26_gci1375000_mem1,00.html Mahmoud, Q. H.: Service-Oriented Architecture (SOA) and Web Services: The Road to Enterprise Application Integration (EAI), Oracle Technology Network, April 2005 Kim Topley: Java Web Services in a Nutshell, O’Reilly & Associates Inc., 2003 Ritu Sharma and Manu Sood: Cloud SaaS and Model Driven Architecture. In: International Conference on Advanced Computing and Communication Technologies (RGES), pp. 18-22, ISBN: 978-981-08-7932-7 (2011) David Frankel, John Parodi: Using MDA to develop Web Services. IONA Technologies PLC, Second Edition, April, 2002. David S. Frankel: Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley Publishing Inc, 2003.