MIDDLEWARE OF MULTI CLOUD COMPUTING SYSTEM : AN ANALYSIS AND REVIEW

Heterogeneity of service is main characteristic of Multi Cloud Computing Systems. Portability and interoperability are the main obstacles to provide heterogeneous services to users. Hence few middleware solutions are provided to support design, development and implementation of services in multi cloud computing systems. This paper proposes an overview of middleware of multi cloud computing Systems, an in depth analysis of various middleware of multi cloud computing system and ontology for accessing heterogeneous services in multi cloud computing.


I. INTRODUCTION
The heterogeneity of Cloud service providers has created the diversification of their users in terms of providing resources, security and access rules, billing models, etc. To handle with this, end users are faced to a real challenge to choose the appropriate Cloud provider. This choice should be mainly motivated by the provider features and middleware.Fig1 shows categories of multi cloud computing systems and their middleware. This paper provides overview of middleware of multi cloud computing systems by taking one example of middleware from each category.

II. JCLOUDS
Apache jclouds [2] is an open source library that facilitates design and development of Java applications in cloud. In other words jclouds is Java framework for cloud connectivity and inter cloud communication. It supports many cloud services provided by Amazon, VMWare, Azure, and Rackspace. Features of jclouds are as follows: BlobStore is a easy and convenient means of managing your key-value storage providers. BlobStore provides a straightforward Map view of a container to access your data. Blobstore API format is as follows: BlobStore (atmos, azure, rackspace, s3 )

III. KAVVO
Kavvo [4] is application centric infrastructure management across public, private and hybrid clouds. Kaavo supports both top-down and bottom-up application development especially in elastic, dynamic and distributed in nature. Features of kaavo as follows:  Single click deployment of multi cloud applications.  Supports dynamic resource provisioning.  Provides encryption of persistent data in the multi cloud.  Monitoring runtime infrastructure of cloud.
The main component of kaavo is IMOD [5]. IMOD handles the infrastructure, construction, dynamic allocation of resources on demand and management of Service Level Agreements transparently.

IV. MOSAIC
The mOSAIC [6] is an open source API to illustrate and manage Cloud resources offered by providers. mOSAIC focused on the improvement of interoperability among existing Cloud providers, Cloud developers and end users. This platform provides the developer "Write Once, Deploy anywhere" facility through mOSAIC Cloud Ontology so that application can be shared as well as scalable.
Majorly two types of applications are developed by mOSAIC one is long running scalable applications like ERP, Stock market, web search engines and forecasting applications. The second one is intensive batch processing applications like credit card processing and computationally intensive applications like astrology, aviation, scientific applications. The features of mOSAIC are: • Facilitates interoperability and portability between variety of cloud services and platforms. • Provides dynamic discovery of services.
• Supports services composition.

Native API:
This API can be provided as a library by vendor to facilitate cloud services; storage, monitoring and communication like distributed file system, distributed databases, synchronization, RPC and datagram.

Middleware API:
This API provides interoperability between multiple clouds, wraps the native API there by providing first level of uniformity by integrating all resources of the same type are exported with the same type. It also involves in implementing cloud standards through Open cloud computing Interface (OCCI) and Uniform Cloud Interface (UCI).

Connector and Cloudlet API:
Connector API is responsible in providing abstractions for cloud resources and programming languages and supports the all OOP features like class hierarchy, patterns and method signatures. Cloudlet API provides infrastructure programming interface and integrates all above mentioned layers through which users can access virtual machines and networks.

V. STRATUSLAB
stratusLab [8] provides complete dynamic multi cloud development and management environment. stratusLab is an open source, simple, easy IaaS distribution approach. stratusLab provides four fundamental services to cloud users. They are:

VI. TCLOUDS
TClouds [9] provides security, privacy for multi cloud applications. TClouds combines multiple advanced security technologies in a fundamental cloud distribution and in commercial cloud systems. Features of TClouds are as follows: • Concentrating on finding and addressing the legal and business implications of cross-border infrastructure clouds. • Providing architecture, prototype and securing infrastructure for clouds-of-clouds. • Supports resilient middleware for cloud-of-clouds.

VII. DISCUSSIONS
By surveying all the above middleware software of MCCS we found that though this software has the advantages like

VIII. CONCLUSION
Multi Cloud computing is a new paradigm of acquiring services from various cloud computing vendors there by providing more flexibility, less expense and more efficiency in IT services to end users. In this survey we have identified the special features of various middleware of MCCS. Though we are in starting stage of Multi cloud application development we have observed some of the research challenges through the analysis based on research papers. After the above study, we have found that Rackspace addresses most of the research challenges by providing Multi-Cloud Toolkit. But new innovative application development environment should bring out which will support all unique features of middleware and addresses the research challenges totally so that more and more applications can be developed and deployed on this platform.