Here, we are concerned with ‘cloud storage interoperability’ so first it should be clear that what the term means. It can have different meanings for different people. For instance, for some cloud storage interoperability can mean the easy transfer of data or applications from one cloud environment to other and user should not feel a difference in there behavior when environment gets changed. And, for some other set of people, the same term can refer to the ability of cloud environments to support sharing of information between each other. For instance, one application running in a cloud environment ‘A’ should be able to share information with cloud environment ‘B’ and vice verse, if needed. For some, the same term can refer to the ability to use a tool on various cloud environments as per their need.There are various problems faced by developers in attempt to provide cloud storage interoperability. The reason being, every cloud system supports some operating sytem and databases. Each cloud contains a cloud API, network model etc. It is very rare that two cloud vendors implement cloud in same fashion. With so many factors and that too moving, the probability of same kind of clouds developed is very difficult. This leads to a poor interoperability or no interoperability at all between different cloud environments.
Major challenges in cloud storage interoperability:
Redeveloping the application in another cloud.
Forming the network in target cloud so that application gets the support it had in original cloud.
Taking care of security commitments of application as in original cloud.
Setting up the environment for secure data to move across original and target cloud.
Management of running the application in the same way as it does in original cloud.
With so much research going on in this field, many effective standards are emerging to come up with solutions to the above mentioned problems. Some standards are there which can be used to incorporate interoperability in cloud systems like Open Virtualization Format (OVF), Cloud Data Management Interface (CDMI) etc. Some of them deal with making the mobility of data and applications easier while some try to make interfaces more effective and some with other relevant features. Two of these standards, Cloud Data Management Interface (CDMI) and Open Cloud Computing Interface (OCCI) are explained in detail in the following sections.
Cloud Data Management Interface (CDMI)
The Cloud Data Management Interface (CDMI) is a standard or protocol developed by Storage Networking Industry Association (SNIA) which defines an interface that is to be used by cloud applications to create, retrieve, update and delete data elements from the Cloud. As the name itself suggests, Cloud Data Management Interface will help a client in using or working with data in a much more efficient way than earlier. Also, it will provide a simpler way to manage data and the containers where data is stored. The ability to attach metadata on data elements and their stores is an interesting feature of CDMI. Its applications are not limited to data and data container applications only. It is also used by administrative and management applications to manage accounts, security access and billing information. Moreover, it is applicable to storage which is accessible by other protocols. For instance, moving data between cloud systems and exporting data via other protocols such as NFS. Its abilities of providing easy data services and storage are well exposed for better understanding to users.
Also, SNIA published various technical white papers dealing with the practical aspects of CDMI. Some of them are discussed below:
One is related to one of the applications of CDMI, i.e. in healthcare. The paper is named ‘Towards a CDMI Health Care Profile’. This white paper was published in March, 2015. It shows the need of data protection in sharing data related to health across various cloud services. It also examines how Cloud Data Management Interface (CDMI) can address this issue. In a way, this paper provides a use case with proper architecture on practical implementation of data sharing in cloud. Also, it talks about various challenges that come in the way when this is implemented practically.
A white paper titled ‘A CDMI guide for S3 Programmers v1.0’ has also been published. As the name suggests, this paper is meant for the programmers who deal with cloud storage. It shows how to use CDMI to achieve similar things that they do with S3 cloud storage interface provided by Amazon Web Services (AWS).
Open Cloud Computing Interface (OCCI)
Open Cloud Computing Interface (OCCI) is a set of standards and specifications. OCCI was developed by the Open Grid Forum (OGF). These standards or protocols define how the cloud service providers can supply their resources and services to end users. Initially, in March 2009 OCCI was led by Sun Microsystems, RabbitMQ and the Complutense University of Madrid. At present, there are more than 250 members working on it. Not only academic institutions and industries but a number of individuals are also actively taking part.
The basic features of OCCI are implementation, protocol and API stack. All these features provide management-level functionalities for cloud systems. Initially, OCCI was developed only for the cloud service model known as infrastructure as a service (IaaS) in order to be able to provide storage, computational and network resources. But now, OCCI is compatible with more cloud service models. For example, platform as a service (PaaS) and software as a service (SaaS). In other words, the main aim of developing Open Cloud Computing Interface (OCCI) was to create a standard for the development of API and system calls. As these are similar in all IaaS providers, therefore, OCCI’s aim was to make deployment, monitoring, system and management tasks easier for remote cloud customers. It came up with remote management service for all these tasks. The semantics and syntax that OCCI provides are commonly understood.
Some model entities are defined in the standard. OCCI takes care of the management of their complete life-cycle. OCCI works on the lines of client/server architecture. The end user is the client and service provider is the server. Service provider, here, refers to the one who hosts the infrastructure for cloud. Client can either be an end user or some other system’s interface. OCCI supports both of them. Also, it is compatible with other already existing protocols which include the Cloud Data Management Interface (CDMI) and the Open Virtualization Format (OVF).
The goals of OCCI can me summarized as follows:
Thus, OCCI proves to be very useful if used as a management API for any type of resource. But the key feature is that OCCI not only handles all the management tasks efficiently but at the same time, provides a high degree of interoperability.