In my thesis I’m looking for a solution for a problem with cloud computing called vendor lock. Different cloud service providers give the developers significantly different application programming interfaces, making client software locked in with them, changing provider cumbersome. These differences can be hidden from the client, with a well designed and implemented software library, this way we can get rid of this problem. A software component like this hides the provider specific methods and code, and finds the optimal compromise between usability and generalization.
In the first part of this document I present the brief history of cloud computing, and the overview of modern clouds. Then I examine three of the most popular providers and their services, defining the ones worth making a common API for.
In the next section I describe the basic principles and design process of my solution. I present the process of the implementation and the problems and challenges during the work.
In the last section I present performance test, proving that using my generalized API does not cause a serious overhead. Finally I summarize the work done and present some areas for further improvement of the software.