Cloud Computing Interoperability
As the hype over cloud computing evolves into a more substantive discussion, one
thing has become clear -- customers do not want to be locked into a single cloud
provider. They would like the freedom to move among the clouds -- ideally from
public to private and back again. This would give customers the freedom to switch
providers as their computing needs grow or shrink, and the ability to move
applications and workloads around as their business requirements change.
In the fields of information technology or systems engineering, concept of
interoperability has been defined as the ability of two or more heterogeneous
elements to not only exchange, but also use the exchanged information
(interoperate)
Definition 1: Cloud interoperability is the ability of cloud services to be able to
work together with both different cloud services and providers, and other
applications or platforms that are not cloud dependant.
Cloud interoperability obstacles
When you decide to move an application between clouds, there are challenges.
These include:
Rebuilding the application and application stack in the target cloud.
Setting up the network in the target cloud to give the application the support
that it had in its original cloud.
Setting up security to match the capabilities provided by the source cloud.
Managing the application running in the target cloud.
Handling data movement and the encryption of data while it is in transit and
when it gets to the target cloud.
Interoperability in cloud can be considered and defined as service model, and
therefore, we will discuss interoperability of applications, platforms, and
management. Cloud application interoperability addresses the application
components, whether they are deployed as IaaS, PaaS, or SaaS.
An application component may be a complete monolithic application, or a service
as a part of a distributed application. These components invoke respective
platforms that implement various communications protocols and data presentation
standards; and therefore, cannot be used without cloud platform interoperability.
Cloud platform interoperability concerns the platform components, usually
deployed as PaaS or IaaS. Information exchange and service discovery requires
standard protocols to realize interoperable platforms.
Cloud management interoperability targets the management aspects between
various cloud services deployed on SaaS, PaaS, or IaaS levels. Each provider
realizes different cloud features and interfaces to manage them, so the clients
would prefer to have a unique approach and generic off-the-shelf system
management, offered via standard interfaces.
IaaS level interoperability
Interoperability on the IaaS level of cloud management implies simple and
standardized management of infrastructures of different cloud systems. The
management includes instantiating and control of virtual machines, enabling and
discovering network characteristics, setting and editing security rules, etc. This
type of interoperability is the best defined when compared to other types.
PaaS level interoperability
Interoperability on the PaaS level implies simple exchange of data and services
among different platforms hosted on different infrastructures on cloud, and
their effective reuse without extra effort on part of the user.
When analyzing the data exchange, one can consider data compatibility among
different platforms, such as if numbers are to be transferred, then Little or Big
Endian mode should be preserved, or a special function enabled to realize an easy
transformation between the formats prior to transfer.
Analysis of the interoperability of services to be hosted in different cloud platforms
rises the question of portability. For example, to transfer a service from one cloud
to another that uses a different platform, initiates a lot of portability problems.
If the origin and target clouds use the same environment, then a simple packing
and copying procedure can be used to realize the porting process.
SaaS level interoperability
Interoperability on the SaaS level of cloud applications implies simple exchange
of data and services among different applications hosted on different platforms
and infrastructures on cloud, and their effective reuse without extra effort on part
of the user. Additionally, this type of interoperability can be considered from
different application domains.
According to their definition, interoperability can be considered in four categories:
• Interoperability among applications in the same cloud,
• Data exchange and operation calls in applications on different cloud-computing
environments
• Software programs that are distributed in different cloud environments and
integrate data and applications in cloud in a unified way, and
• Migration of applications from one cloud environment to another.
When a client switches between two cloud providers on the SaaS level does not
involve porting the applications and services, rather it involves exchange of
structured data.
OVERVIEW OF CCI MODELS
Different models have targeted different layers of the CC stack:
Unified Cloud Interface/Cloud Broker
The Unified Cloud Interface Project have goal to create an open and
standardized cloud interface for different cloud api’s
The idea is “to come up with an abstraction layer that is agnostic to any
cloud API, plat- form or infrastructure”. The unified cloud interface (UCI)
should create API for other CC APIs, to serve as common interface, to
provide specification and schema for integration with other management
models and exchange management information and address Infrastructure as
a Service (IaaS) and Platform as a Service (PaaS). This model suggests the
usage of semantic web and OWL. The overview of the UCI is shown
Enterprise Cloud Orchestration Platform / Orchestration Layer
The solution Inter Cloud presents a federation of clouds. The source of the
idea is to present Internet as a network of networks. In this model different
cloud providers can register their cloud services within the orchestration
layer (OL) similar to publishing the web services with the Universal
Description, Discovery and Integration (UDDI).
”The orchestration layer can then dynamically select and bind to services
based on criteria/algorithms that determine the best cloud service for a
particular job based on factors like highest performance, lowest cost or other
requirement as specified by the client”. An example of invocation of three
different services provided by different CC provider.
Blueprint for the Intercloud
It discusses use cases for CCI including interoperability, inter-cloud
protocols and formats for enabling the use cases.
Two types of use cases are described: use cases involving a physical
metaphor and use cases involving an abstract metaphor.
The physical metaphor includes servers, disks, network segments, etc, and
the abstract metaphor includes blob storage functions, message queue, email
functions, multicast functions, etc.
Management Interoperability for Cloud Systems
The Distributed Task Management Force (DMTF) has formed a group
dedicated to address the need for open management standards for cloud
computing. This group is called ”Open Cloud Standards Incubator” and their
aim is to develop a set of informational specifications for cloud resource
management [6].
Their target is the IaaS interoperability.
This group is promising since the biggest CC vendors like AMD, Cisco,
Citrix, EMC, HP, IBM, Intel, Microsoft, Novell, Red Hat, Savvis, Sun
Microsystems, and VMware are part of this group.
From 2009 till 2010 this group has created white papers about their vision
for interoperable clouds [7], architecture for managing clouds [8] and use
cases and interactions for managing clouds [9]. Since then they are working
on Cloud Infrastructure Management Interface (CIMI) Model and the work
is still in progress.
This group has isolated the cloud management challenges, created scenarios
for interaction using interoperable cloud standards, defined cloud service
lifecycle and created Cloud Service Reference Architecture.
Software and Data Interoperability
The term “software interoperability” refers to the capability of different
solutions to communicate with one another freely and easily. Systems that
are interoperable exchange information in real-time, without the need for
specialized IT support or behind-the-scenes coding.
SaaS CCI issue can be summarized into four categories
Types of interoperability between applications in the cloud.
• Interoperation among applications inside a single cloud,
• Applications to exchange information and trigger operations across
different cloud environments,
• Software programs to connect multiple cloud environments and to integrate
data and applications across clouds in a unified manner and
• Migration of a cloud application from one cloud environment to another.
Adapters
The software adapters have existed for a long time. They provide service and
communication between incompatible software and services; and by
definition they provide interoperability. The overall goal is the data
exchange.
In the case of cloud computing adapters can provide a new possible solution
to the currently nonexistent SaaS standards. The pool of SaaS CSP providers
is growing up every day and there are too many software types that can be
found in the cloud. It is impossible to create adapters for each type of
software. Therefore there are two possible approaches:
• Developing adapters for general world-wide used types of software like
CRM, ERP etc...
• Developing custom adapters for specific software.
Our target group is the first one. Most of the general application software
deal with similar data but one can expect all this data is differently named
and organized. Our goal is to provide fast adapter production for data
exchange and extraction of these data types used in common software
applications and to cover the four categories of interoperability The idea is
to create a general data and process model that includes the most used
service provider in the given class of software and with the use of semantics
to create alignment of the data.