Experiences in Building a Mosaic of Clouds
Total Page:16
File Type:pdf, Size:1020Kb
CORE Metadata, citation and similar papers at core.ac.uk Provided by Springer - Publisher Connector Petcu et al. Journal of Cloud Computing: Advances, Systems and Applications 2013, 2:12 http://www.journalofcloudcomputing.com/content/2/1/12 RESEARCH Open Access Experiences in building a mOSAIC of clouds Dana Petcu1*, Beniamino Di Martino2, Salvatore Venticinque2, Massimiliano Rak2, Tamás Máhr3, Gorka Esnal Lopez4,FabriceBrito5, Roberto Cossu6, Miha Stopar7, Svatopluk Šperka8 and Vlado Stankovski9 Abstract The diversity of Cloud computing services is challenging the application developers as various and non-standard interfaces are provided for these services. Few middleware solutions were developed until now to support the design, deployment and execution of service-independent applications as well as the management of resources from multiple Clouds. This paper focuses on one of these advanced middleware solutions, called mOSAIC. Written after the completion of its development, this paper presents an integrated overview of the mOSAIC approach and the use of its various software prototypes in a Cloud application development process. We are starting from the design concepts and arrive to various applications, as well as to the position versus similar initiatives. Introduction 2. Design a generic agent skeleton for representing The story of mOSAIC (Open-source API and Platform various stakeholders, e.g. Cloud vendors and their for Multiple Clouds) starts in Spring 2009 when its idea resources, Cloud users of various types, and a emerged. The main challenges for Cloud Computing iden- collection of modules that can be used to adapt agent tified to that moment, as shown in [1,2], were application skeleton to support needed functionalities. and data interoperability and portability, governance and 3. Design user-centric service level agreements, a Cloud management, metering and monitoring, as well as secu- ontology, and mechanisms for dynamic negotiation rity. In the meanwhile some partial solutions addressing of resources based on multi-agent technologies and these challenges have proposed, however, according to a semantic data processing. recent report [3], these challenges still exist. The key goal 4. Build an open-source and portable platform for using of mOSAIC is to offer a solution for application portability Cloud services based on the proposed API and Cloud and interoperability across multiple Clouds. However, the usage patterns. complete mOSAIC’ solution addresses partially also the 5. Build proof-of-concept applications with a special other challenges, management, governance, and security, emphasis on data intensive applications. as will be revealed in what follows. The mOSAIC’ solution is a result of a multi-national These scientific and technical goals were related with the team effort as part of a grant agreement with the European time’s lack of (a) common programming model for Cloud- Commission in the frame of FP7-ICT programme [4] oriented applications, (b) of tools for easy deployment (details on the project web site [5]). The implementation of scalable applications and (multi)-Cloud-based services, has started in September 2010 and the final software was (c) of standard representation for Cloud resources, (d) released in March 2013. The promises made in the early of adequate service level agreements and their dynamic stage of development were described in the position paper negotiation, (e) of application portability due to different ’Building a mOSAIC of Clouds’ [6]: APIs for Cloud services from different providers. A variety of reports on mOSAIC’s particular software 1. Design a language- and vendor-agnostic application solutions have been presented at recent scientific confer- programming interface for using multi-Cloud ences and in journal papers. The current paper intends resources and Cloud usage patterns. to provide an overview of the full and integrated solution with exhaustive references to literature where details can *Correspondence: [email protected] 1Institute e-Austria Timi¸soara and West University of Timi¸soara, Timi¸soara, be found. Therefore the main contribution of this paper Romania consists in the high-level description of the mOSAIC’s Full list of author information is available at the end of the article approach and the answers to the current challenges in © 2013 Petcu et al.; licensee Springer. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Petcu et al. Journal of Cloud Computing: Advances, Systems and Applications 2013, 2:12 Page 2 of 22 http://www.journalofcloudcomputing.com/content/2/1/12 the Cloud computing domain by the mOSAIC’s technical on the number of its instances at run-time (has a degree solutions. of autonomy). The Cloudlets can get automatic support The paper is organized as follows. The first part is a for their life-cycle from the mOSAIC’s platform including description of the overall mOSAIC’s approach for solv- initialization, configuration and bindings to the needed ing the current problems of using multiple Clouds. The hardware and software resources. Moreover, Cloudlets second part concerns the mOSAIC’s positioning in the should be able to run in a Cloud environment indepen- landscape of Cloud computing services. The third part is dently from other components. Furthermore, Cloudlets dedicated to a discussion of the possible future develop- are started, stopped, replaced, or multiplied at run-time ments and improvements. for the application performance improvement. Multiple instances of the same Cloudlet are therefore expected to The mOSAIC’s approach be supported by an application. Consequently, the elastic- This section explains in details how the mOSAIC solution ity concept, specific for Cloud computing, is applied at the matches the key scientific and technical goals that were level of application in the mOSAIC approach. outlined in the introduction. The Cloudlets are able to access Cloud services through Connectors. The concept of Connector is introduced to APIs and patterns ensure the independence from the Cloud service inter- Several open API are already available (like jclouds, lib- faces. A Connector is a concrete class that abstract the cloud, OpenStack, most of them develop in parallel with access to Cloud resources and defines the set of events to mOSAIC) offering a management layer for the resources which the Cloudlet should react; its behavior is similar to of same type from multiple Clouds (based on a com- a remote procedure call, and it offers the functionality of mon denominator of their APIs). However the services the common denominator of a certain type of Cloud ser- are restricted to a specific language (like Java), a specific vice. For example, in the mOSAIC library for Java there is architectural style (like REST oriented) or specific type of only one Connector for key-value stores. resources (like virtual machines). The Connectors access Cloud services using Drivers. The Drivers are implementing the Cloud services inter- Component-based programming faces. They can be interpreted as wrappers of native The component model provides a natural abstraction for resource APIs or uniform APIs, like OpenStack. These programming and execution of Cloud applications, since wrappers are able to send and receive messages from the is lightweight and flexible in terms of APIs, according mOSAIC’s message queues. [7]. However, component frameworks that are expected The components of a mOSAIC application can be writ- to provide design-time and run-time infrastructures in ten in several different languages (Java, Python, Erlang, Clouds are few. A short preliminary analysis of the existing Node.js) and are able to communicate with each other solutions was done for mOSAIC positioning purpose and using a component bus (similar to CORBA’s one) and is reported in [8]. This analysis revealed that a proof-of- asynchronous communications (as being loosely coupled). concept implementation of a component framework for In particular, Connectors and Drivers can be written Clouds only for Java [9] was developed in parallel with in different languages. However, the Cloudlets that are mOSAIC. expressing the behavior of the applications are calling the ThemOSAIC’sAPIoffersasimplewaytodevelop Connectors – therefore the Connectors are expected to components which run on the top of its platform. The pro- be written in the same language as the Cloudlets (further gramming model of mOSAIC is based on using loosely details are provided in [13]). coupled components. A mOSAIC component represents an entity controlled by the user: the entity is configurable, A simple example exhibits a well defined behavior, implements application We assume that a software developer intends to built an dependent functionalities and exposes them to other com- application which is able to receive requests from the Web ponents. When an instance of a mOSAIC component runs (e.g. an XML file) to perform an analysis of the document in a Cloud environment, it consumes hardware or soft- (e.g. XML parsing) and to store the results in a Cloud ware resources, e.g. state-full resources hosted by Cloud storage. service provider and accessible through dedicated APIs. Such an application will be built easily using a pre- The communication among moSAIC components takes defined mOSAIC component which