Abstract
Cloud computing technology has been growing over the past few years. Currently, cloud providers provide their consumers with several cloud services. However, developers face many difficulties when they have to move their data or software from one cloud platform to another due to the lack of standards. This challenge is considered as one of the key obstacles that prevent many applications from moving to the cloud environment. In this paper, we focus on the challenge of data portability. We propose a common data model and a standardized API for SQL and NoSQL cloud databases. In particular, our approach hides the possible variations of the backend data storage models from the application layer. In addition, our framework is equipped with tools that support the conversion, transformation and data exchange between the different data storage models. The current implementation of our framework supports four different data storage systems: Amazon RDS, Google Datastore, Amazon SimpleDB and MongoDB. However, our framework is designed in a flexible way such that it can be easily extended to support other data storage systems. Moreover, we offer a standard query abstraction to enable automatic translation between NoSQL query patterns and their associated SQL queries (in both directions). The experimental evaluation of our framework shows that using our framework eliminates or minimizes the effort of rewriting the application code when the backend data storage system is changed. Further, the proposed transformation tool reduces the effort of maintaining data portability between the different data models that we have considered.