Cloud ServiCeS
Applications Portability and Services Interoperability among Multiple Clouds Beniamino Di Martino, Second University of Naples
Although researchers are actively seeking answers, definitive solutions to interoperability and portability issues among multi-clouds environments, especially at PaaS and SaaS level, remain elusive due to the technical complexity and a lack of standards.
34
hanks to the relative ease of managing and configuring resources and the low cost required for setup and maintaining cloud services, cloud providers are increasingly offering new and different services and steadily incrementing the available cloud service at all levels—infrastructure-, platform-, and softwareas-a-service (IaaS, PaaS, and SaaS). The current scenery’s complexity is further increased by the introduction of virtual appliances, which are virtual machine images running on virtualization platforms that deliver a complete, fully functional, and immediately available appliance to users. In contrast, a cloud service is offered by a cloud computing platform that users access through the Web by exploit-
ing some kind of interface. In many cases, virtual machines offer functionalities that are very similar to those provided by cloud services. This context gives rise to two main issues in terms of cloud applications development: services interoperability and portability. Interoperability issues are related to how different cloud platforms and provider offers interoperate in the presence of multiclouds, provider federations, or, even worse, cloud providers who won’t federate. Portability in the cloud refers to two different but strictly interlinked aspects: legacy software’s modernization aimed at exploiting current cloud-based technologies, and the portability of cloud-ready applications among different cloud platforms and providers. These issues affect the cloud computing landscape
I EEE Clo u d Co m p u t I n g p u B l I S H Ed By t H E I EEE Co m p u t Er S o CI E t y
2325- 6095/14/$31 .0 0 © 2014 IEEE
in different ways. Brokering, negotiating, managing, monitoring, and reconfiguring cloud services are challenging tasks for cloud application developers, and, as a consequence, for the users of those applications.
Promising Approaches and Technologies Introducing an upper layer of abstraction improves the portability and reusability of cloud resources and services among several clouds. Indeed, even if the system is designed for a specific platform—including framework, middleware, or cloud services— these entities often rely on similar concepts, which can be abstracted from the specificities of each cloud provider. Typically, the topology of the system in the cloud—as well as the minimum hardware resources required to run it—can be defined in a cloud-agnostic way. Thanks to this new abstraction layer, it’s possible to map a platform-specific model to one or more cloud providers. Recently, several initiatives have emerged that define approaches to support application migration to the cloud. Some of them, such as initiatives relying on model-driven engineering and semantic approaches, adopt the cloud-agnostic abstraction methodology as a key point. Model-Based Approaches The Object Management Group (OMG) ModelDriven Architecture (MDA; www.omg.org/mda),1 is a model-based approach for software system development. The MDA’s main benefits from the cloud perspective are the ease of portability, interoperability, and reusability of system parts (which makes it easy to move the parts from one platform to another). Another benefit is that system maintenance occurs through human readable and reusable specifications at various abstraction levels. In the cloud computing context, model-driven development can be helpful in letting developers design a software system in a cloud-agnostic way and still be supported by model transformation techniques when instantiating the system into specific and multiple clouds. This approach, which is commonly summarized as “model once, generate anywhere,” is particularly relevant when it comes to application design and management across multiple clouds, as well as to migrating them from one cloud to another. Given this, several research groups and projects are combining model-driven application engineering with cloud computing, including ModaClouds (www.modaclouds.eu), the Advanced Software-Based Service Provisioning and Migration of Legacy Software (Artist; www.artist-project.eu), and PaaSage (www.paasage.eu). m ay 2 0 14
Multiagent Systems Multiagent systems seem to offer another effective approach. In particular, the outcome of the European Commission’s Open Source API and Platform for Multiple Clouds (mOSAIC) research project2,3 demonstrates in the cloud agency4 the benefits of adopting a cloud multiagent technology. Cloud Patterns Another promising methodology currently emerging is cloud patterns—that is, defining sets of prepackaged and preconfigured architectural solutions, exposed through the concepts and mechanisms of software engineering design patterns.5,6 These cloud patterns support cloud application developers in defining, in vendor-agnostic terms, the most viable cloud architectural solutions for their cloud development or porting activity. Patterns describe common aspects of cloud computing environments and application designs and can be useful in understanding the application code changes that might be needed for a successful migration to cloud. Several cloud pattern catalogs are emerging, proposed from academia 6 (see also www. cloudcomputingpatterns.org and http://cloudpatterns .org) and from commercial cloud providers such as Amazon Web Services (AWS; see http://en .clouddesignpattern.org), Windows Azure,7 and IBM (www-01.ibm.com/software/ucd/designpatterns.html). Some of these catalogs are closer to a specific cloud platform, and thus they present patterns that are cloud-platform specific in terms of cloud components that can implement the pattern. They also propose specific, platform-dependent cloud services to use during application development and deployment. Following a specific cloud pattern or a composition of cloud patterns to migrate and port an application to the cloud represents a best practice: the patterns themselves support the redesign and deployment of applications on the cloud—and, because the design pattern solutions are proven, their consistent application tends to naturally improve the quality of system designs. Semantic Models A contributing factor in interoperability and portability issues is the difference in the offered services’ semantics: providers use proprietary terms and semantics, without offering uniform representations of services. As Amit Sheth and Ajith Ranabahu stated,8 semantic models are helpful in three ways: functional and nonfunctional definitions, data modeling, and service description enhancement. Metadata added through annotations pointing I EEE Clo u d Co m p u t I n g
35
Cloud Services
to generic operational models would play a key role in consolidating these APIs and enable interoperability among the heterogeneous cloud environments. To address these different aspects, it’s possible to use existing technologies inherited from the semantic Web field, such as
Cloud (http://deltacloud.apache.org), which address IaaS interoperability by letting consumers use APIs from different cloud vendors.
Toward a Standard
We’ve yet to establish an internationally accepted standard or set of standards that definitively solves • OWL (www.w3.org/TR/owl-features) to define a interoperability and portability issues, despite the common, machine-readable dictionary that can many different efforts to that end. Researchers express resources, services, APIs and related have conducted studies to collect existing standards parameters, service-level agreements, require- and proposals (not exclusively for the cloud) to dements and offers, and related key performance termine which specific cloud issues they can solve; indicators (KPIs); an example here is the Cloud Standards Coordination initiative (http://csc.etsi.org).11 Researchers have also sought to define how such standards can be used to build a cloud infrastructure. A notable Researchers have also sought to define example here is the IEEE’s Standard for Intercloud Interoperability and Federahow such standards can be used to build tion (SIIF) project,12 which aims to dea cloud infrastructure. fine a topology, a set of functionalities, and a governance model for cloud interoperability and federation. The current SIIF standard, still in development • OWL-S (www.w3.org/Submission/2004/SUBM- and reported only as a draft, focuses on describing OWL-S-20041122) to add semantics to cloud the intercloud topology, which refers to the NIST services that let users and software agents au- definition of cloud computing,13 defining in detail its tomatically discover, invoke, and compose cloud components and the relationships among them. services; Of course, many other cloud-specific standards • SPARQL (www.w3.org/TR/rdf-sparql-query) to are under development, including the Open Cloud perform queries to retrieve services according to Computing Interface (OCCI, occi-wg.org), which foparticular constraints; and cuses mostly on IaaS but, given its flexibility, could • Semantic Web Rule Language (SWRL; www. be applied to other service layers. Other standards w3.org/Submission/SWRL) to express additional include the Cloud Management Initiative (http:// rules and heuristics. dmtf.org/standards/cloud); the Topology and Orchestration Specification for Cloud Applications These aspects are also addressed by mOSA- Version 1.0. (TOSCA)14; the Cloud Data ManageIC2 —in particular, by its semantic engine9 and dy- ment Interface (CDMI, www.snia.org/cdmi), which namic discovery and mapping system10 (see www. addresses IaaS offers, focusing on infrastructure, services, and data-storage management; and the mosaic-cloud.eu). Oasis Cloud Application Management for Platforms (CAMP),15 which relates to PaaS offers, defining a Open Source Application Programming Interfaces and Platforms set of basic APIs. Various other commercial and open source solutions have been developed to resolve interoperability and portability issues. This is especially the case with ue to the huge number of vendors, offers, and open source solutions, which usually rely on large technologies involved, we’re still far from a decommunities for support and further development. finitive solution on interoperability and portability Notable examples here are Openshift (www. issues among multiple cloud environments. Among openshift.com), supporting application portability methodologies, model-based approaches, such as for PaaS architectures; Openstack (www.openstack. MDA, and pattern-oriented solutions based on cloud org), an IaaS cloud platform that is positioning it- patterns seem to be the most promising. European self as a de-facto standard for interoperability; and research projects are producing very good results OpenNebula (http://opennebula.org) and Delta- in defining new frameworks and standards: among 36
I EEE Clo u d Co m p u t i n g w w w.co m p u t er .o rg /clo u d co m p u t i n g
these, mOSAIC clearly shows how semantic and agent-based technologies can ease interoperability and portability issues and lead to an effective and efficient solution. Commercial proposals distributed as open source software and sustained by cloud vendors, such as Openshift for PaaS and Openstack for IaaS, are steadily growing in importance and being adopted by a growing number of consumers, due in part to the support of large developer communities. Cloud vendors also support the creation and adoption of new standards, by proposing them to standardization groups; clear examples here are CAMP for PaaS and TOSCA for IaaS. Because no standard, methodology, technique, or framework stands above the others, more research and technological innovation efforts are hugely needed to solve cloud application portability and services interoperability challenges. Thus, I encourage you to submit research briefs, position papers, and descriptions of practical solutions, challenging case studies, and application domains (such as public administration services) on these and other relevant cloud services challenges.
Acknowledgment I thank both Giuseppina Cretella and Antonio Esposito for their valuable contributions to this article. References 1. R. Soley, OMG: Model Driven Architecture, white paper, Object Management Group, 2000. 2. B. Di Martino et al., “Building a Mosaic of Clouds,” Euro-Par 2010 Parallel Processing Workshops, LNCS 6586, Springer, 2011, pp. 571–578. 3. D. Petcu et al., “Experiences in Building a Mosaic of Clouds,” J. Cloud Computing: Advances, Systems, and Applications, vol. 2, no. 1, 2013, p. 12. 4. S. Venticinque, Luca Tasquier, and Beniamino Di Martino, “Agents-Based Cloud Computing Interface for Resource Provisioning and Management,” Proc. 6th Int’l Conf. Complex, Intelligent and Software Intensive Systems (CISIS 12), 2012, pp. 249–256. 5. C. Baudoin, Migrating Applications to the Cloud: Roadmap for Success, white paper, Cloud Standards Customer Council (CSCC), 2013; www. cloudstandardscustomercouncil.org/MigratingApps-to-the-Cloud-Final.pdf. 6. C. Fehling et al., Cloud Computing Patterns, Springer, 2014. 7. J.D. Meier, “Windows Azure Application Patterns,” blog, 11 Sept. 2010; http://blogs.msdn. com / b/jmeier/archive/2010/09/11/w indowsazure-application-patterns.aspx. M ay 2 0 14
8. A. Sheth and Ajith Ranabahu, “Semantic Modeling for Cloud Computing, Part 2,” IEEE Internet Computing, vol. 14, no. 4, 2010, pp. 81–84. 9. G. Cretella and B. Di Martino, “Towards a Semantic Engine for Cloud Applications Development,” Proc. 6th Int’l Conf. Complex, Intelligent, and Software Intensive Systems, 2012, pp. 198–203. 10. G. Cretella and B. Di Martino, “Semantic and Matchmaking Technologies for Discovering, Mapping and Aligning Cloud Provider’s Services,” Proc. 15th Int’l Conf. Information Integration and Web-Based Applications and Services (iiWAS 13), 2013, p. 380–384. 11. Cloud Standards Coordination—Final Report, version 1.1, European Commission, 1 Sept. 2013; http://ec.europa.eu/digital-agenda/en/news/ cloud-standards-coordination-final-report. 12. P2302 Standard for Intercloud Interoperability and Federation (SIIF), Intercloud Working Group, IEEE Standards Assoc., 2012; http:// standards.ieee.org/develop/project/2302.html. 13. P. Mell and T. Grance, The NIST Definition of Cloud Computing (draft), NIST Special Publication 800-145, 2011. 14. Topology and Orchestration Specification for Cloud Applications Version 1.0, Oasis Committee Specification 01, 18 Mar. 2013; http:// docs.oasis-open.org/tosca/ TOSCA /v1.0/cs01/ TOSCA-v1.0-cs01.html. 15. Cloud Application Management for Platforms Version 1.1, Oasis Committee Specification Draft 03, 31 July 2013; http://docs.oasis-open. org/camp/camp-spec/v1.1/csprd01/camp-spec-v1 .1-csprd01.html.
Beniamino Di Martino is a full professor and vice director in the Department of Industrial and Information Engineering at Second University of Naples. He participates in and leads several European Commission projects on cloud computing, including the mOSAIC project; his research interests include cloud and high-performance computing, knowledge engineering, semantics, and software patterns. Di Martino has a PhD in computer science from University Federico II of Naples. He is the editor or associate editor of four international journals, including this publication and IEEE Transactions on Cloud Computing, and is a member of the IEEE P3203 Standard on Cloud Interoperability Working Group, the IEEE Intercloud Testbed Initiative, the Cloud Standards Customer Council, and the EC’s Cloud Computing Experts’ Group. Contact him at
[email protected]. I EEE Clo u d Co m p u t i n g
37