Keywords

1 Introduction

Cloud computing as become an increasingly desirable research field, countless researchers are focusing their efforts to evolve cloud computing. Although there are several definitions for cloud computing two of them stand out. The first defines cloud computing as a large-scale provision of infrastructures by cloud providers to customers through the usage of virtualization techniques [1, 2]. Secondly, cloud computing is seen as a business computing model/paradigm powered by distributed computing, parallel computing, and gird computing through the deployment of infrastructures as services [3]. Mainly, is possible to deploy infrastructures, platforms, and software through the usage of an architectural style like Simple Object Access Protocol (SOAP) or Representational State Transfer (REST).

Cloud providers are an import part of cloud computing since they offer on-demand cloud infrastructure that is fully customizable by the customer [4]. They also offers a group of computing, storage, and networking services in order to meet a widely range of customer requirements. For example, Amazon offers a group of services called: Elastic Computing Cloud (EC2), Simple Storage Service (S3), and Simple Queue Service (SQS). Others like, Google provides a platform called Google App Engine to build scalable web application running on top of Google infrastructures. Microsoft also steps into play offering Microsoft Azure primarily to provide a platform as a service (PaaS) and infrastructure as a service (IaaS).

Ubiquitous devices are extra components that can be added to the cloud computing paradigm. Devices such as smartphones can offer a new opportunity to enhance people life with ubiquitous computing, at home and office computing environments, presenting a new scenario for service providing and a great opportunity to leverage computational power to perform tasks for the cloud. In this context several migration components can be created and powered by the current mobile computational power, and always-on functionality of mobile devices. On top of this, smartphone functionalities including GPS, SMS, and voice calls can enrich even more cloud components.

In the information age where there are a huge amount of devices connected to the Internet there is an increasing necessity to connect technologies and services through novel ways. In this paper, a cloud instance interoperability model used by ubiquitous devices in order to solve the issue related with the lack of convergence between different cloud providers is proposed [4]. The existence of different terminologies, functions, and architectures lead to a need of proposing this model. As core objective the model, composed by five components, is created in order to export and import cloud instances though the usage of the mobile computational power and built-in interfaces between different cloud providers.

The rest of the paper is organized as follows. Section 2 addresses the related literature with a review of cloud computing and its paradigm. Cloud computing architecture, service, and deployment stack is identified. Cloud providers presentation and categorization is also considered at Sect. 2. Section 3 gives an introduction to ubiquitous devices and their usefulness to the general population. The cloud instance interoperability model is proposed in Sect. 4, followed by a description of its operation and major components. Finally, Sect. 5 concludes the paper and pinpoints further research work.

2 Cloud Computing and Providers

Cloud computing has become an important topic for many researches, due to the capacity of providing computational resources on-the-fly as fast as possible. Cloud computing is defined as a convenient and on-demand network to provide and realize computational resources through network structures with a minimal set of interactions [5, 6]. Cloud computing is also defined as a platform with distributed systems that share its characteristics to networks as services. So, users can access cloud’s resources using a low-level of expertise [7].

A cloud infrastructure is complex and composed by a diverse set of concepts. Some authors and authorities are defining the cloud infrastructure as a 4-layered architecture, a service stack, and a deployment stack. Hardware, virtualization, platform, and application layer comprise the aforementioned 4-layer architecture. The hardware layer is responsible for managing available resources of the cloud. Virtualization offers physical hardware as individual and pre-defined virtual on-demand resources. The upper layer is composed by applications designed for this environment where its software resources can be accessed through a wide range of devices [1, 8]. The service stack is the way each layered architecture is deployed to the public network [9]. In a stage of publishing the cloud to a network, a major decision should be performed concerning the deployment stack, considering it may be either public, private, or hybrid. A private cloud is only accessible via an internal network. A public cloud is the deployment appointed to mainstreaming services across a public network, namely, sharing computational resources from a cloud provider. A hybrid cloud is a combination of private and public clouds, so external cloud services are linked to a single cloud unit.

Due to growing demand for computing utility and resources deployment, several companies like Amazon, Google, and Microsoft are providing structures to enable clouds provisioning. A cloud provider can be considered at two different categories, an IaaS or a PaaS cloud provider (as illustrated in Fig. 1). The IaaS provider enables customers to consume computational resources as virtual machines, enabling the installation of applications. The PaaS provider customers are employed to build applications using internal proprietary APIs. The business model defined by each provider is different from one another. Commonly, the user pays hourly, monthly, or annually for a cloud specific structure [12].

Fig. 1.
figure 1

Cloud providers.

Amazon Web Services (AWS) [13] are a virtual package of Web services aimed to provide a cloud computing platform. Amazon Elastic Compute Cloud (EC2) and Amazon Single Storage Service (S3) are part of this package. Amazon Elastic Compute Cloud (EC2) provides a resizable computational capacity in a cloud environment. EC2 provides a complete control of computing resources that can be provisioned through a single user interface [14]. Finally, Amazon Storage Service (S3) is an online storage facility that can be accessed by Web services.

Windows Azure [15] deploys cloud platforms and infrastructures, so it provides both platform as a service (PaaS) and infrastructure as a service (IaaS). Different programing languages, tools, and frameworks support these structures. Primarily, Windows Azure can be used to create Web applications for Microsoft datacenters [12]. Microsoft Azure also supports applications development through a public SDK and a .NET framework.

Google App Engine [16] is a platform to build scalable Web applications running on top of Google’s infrastructures using a sandbox concept. A set of APIs and application model are provided in order to take full advantages of current Google services like, electronic mail (eMail), DataStore, and Memcache. The main languages used to build these services is Java, Python, and JRuby [12, 14].

3 Ubiquitous Devices

Currently, with available wireless communications and computing environments (including, at home and at office, for instance), portable devices present a new scenario for service providing. These devices, not only have access to traditional Internet services but also to location services. An evolution is bringing to portable devices new functionalities and characteristics, decreasing their limitations on hardware and software [17]. These features can be used to obtain and provide detailed information, which can be downscaled to fit the device bandwidth and visualization capacities, adopting what better supports the user needs. However, this evolution is increasingly coming into a network of shared devices, such as cars, smartphones, televisions, and desktop computers that are not personalized for each user. This comes from the fact that these devices do not know what should be targeted, and they provide the same user interface, the same information, and the same functionalities to everyone. Considering a target scenario (e.g. Cloud) in core components of ubiquitous devices, it is an identified a key opportunity for mobile and pervasive computing.

Smartphones offer an opportunity to enhance people life with ubiquitous computing technology. It is considered as a promising technological path of innovation implying wireless communications, microprocessors, and sensors as objects [18]. Ubiquitous computing can also be characterized as a decentralization of the system and their comprehensive networking. Embedding computer hardware and software in equipment and objects of daily use, they support users in an anywhere and anytime manner [19].

4 Cloud Instance Interoperability Model

Given the amount of involved technology in a cloud environment, structures and business models used by several cloud providers, the interoperability between cloud instances and cloud providers is a well-know open issue (as may seen in Table 1). The top raised question among customers is “how services furnished by a cloud provider performs in comparison to another cloud provider?”. Nevertheless, this question is not related to the performance evaluation, but with the basic question “how a customer can export their data to another provider?”. A customer should be able to export its custom defined structures, applications, and virtual machines (VMs) to a new cloud provider. Interoperability is discussed in the scientific community by several authors [4, 20]. Computational resources, configurations, structures, virtual machines, billing information, helpdesk tickets, and so on, are comprised in a cloud instance. Then, this paper proposes a cloud instance interoperability model used by ubiquitous devices with objective to export cloud providers instances through the usage of a smartphone. This model considers five major components that are illustrated in Fig. 2 (Cloud instance exporter/importer, interpreter, linkage, and converter component). The cloud instance exporter component is responsible for exporting a cloud image of a specific user to an internal dataset. After that, the produced cloud instance is sent to the mobile device. In a mobile device, three major components should be considered. The interpreter component will analyze the dataset and, if needed, it will retrieve missing information from the cloud instance exporter. Then, the linkage component will interconnect the request resource from the dataset to available resources from a source cloud provider (e.g. Amazon) to a target cloud provider (e.g. Microsoft). At the final stage, the linkage component uses the cloud instance importer component to export the previous created cloud instance into the target cloud provider (e.g. Microsoft).

Table 1. Cloud providers technologies.
Fig. 2.
figure 2

Components of the proposed cloud instance interoperability model.

The proposed approach offers several advantages regarding the available solutions in the related literature. The mOSAIC [21] project is providing solutions to achieve interoperability functionality between IaaS providers. APIs are used to assist the migration between clouds, however, the solution only migrates IaaS layers. Companies like RightScale are deploying solutions to multi-manage cloud providers. RightScale’s MultiCloud [22] is an example of this implementation. The solution aimed to provide customers management functionalities for Amazon Web Services, CloudStack, Eucalyptus, and OpenStack. Amazon EC2 APIs, Rackspace APIs, GoGrid’s API present functionalities one-step further. They are creating APIs in order to deploy a cloud computing interface. This interface also provides interoperability among clouds. Nevertheless, the issue is in the provided technological approach. In other words, pre-constructed APIs should be deployed at root technological layers used by cloud providers. Then, the proposed solution avoids the deployment in cloud providers while uses mobile computational power to turn the representational linkage of different cloud provider architectures possible. Furthermore, this model offers the possibility to migrate not only the IaaS layer, but also the PaaS and SaaS layers. So, a complete cloud instance image is ported between cloud providers.

5 Conclusions and Future Work

Cloud computing requires an evolution of its underlying technologies, that are painting the current cloud landscape, used by both cloud providers and customers. Despite the existence of several definitions for cloud computing and its internal structure leading to a state of non-normalized approach, several authors are identifying recurring issues. A major open issue is the lack of interoperability between cloud providers where there is no convergence. The existence of different terminologies, functions, and architectures lead to this ongoing situation. Ubiquitous devices can play an important technological contribution to solve these issues. Such devices not only have access to the Internet but they also have a set of computing resources and utilities that can support cloud users and administrators.

The proposed model presents a novel approach to overlap the aforementioned open issue. This model comprises five major components (Cloud instance exporter/importer, interpreter, linkage, and converter component), each one responsible for a set of interpretation and linkage operations to be applied in cloud instances. Thus, cloud instances can be imported and exported between cloud providers offering a transparent interoperability among them. Each component will be used in a mobile computing environment with several advantages, such as mobility independence, always-on functionality, GPS location tracking, SMS usage, Voice Chat, among others.

In terms of future work the model will be deployed in a laboratory prototype and evaluated against two different testbeds. Furthermore, the interpreter, linkage, and converter component will also be deployed as hybrid components. This means that these components will be improved using different technologies, leading to a state of convergence between different terminologies, functions, and architectures present at cloud providers.