Cloud services have changed the way applications are deployed and distributed today, by partially or totally removing the burden of managing the hardware and software components needed to run those applications. Broadly speaking, there are three levels of cloud services, namely Infrastructure as a Service (IaaS), Platform as a Service (PasS) and Software as a Service (SaaS). At one end of the spectrum, IaaS clouds simply remove the burden of managing the hardware infrastructure and its associated system-level software, while at the other end SaaS clouds remove the burden of managing applications altogether.

PaaS clouds are somewhat an intermediate step between IaaS and SaaS: they are built on top of some IaaS cloud and provide high level web services, often accessed via some RESTful API, to ease the development of cloud-based applications, so they are obviously targeted at developers. However, while IaaS and SaaS tend to be widely deployed and successful, PaaS seems to be more difficult to understand and to get adopted by developers.


The main objective of this project is to investigate why SaaS clouds have more difficulty to be successful compared to IaaS and SaaS, and to come up with a set of concrete proposals to improve their adoption among developers.

To approach the problem, the student will follow two parallel threads. One thread will consist in surveying the online literature on PaaS and their adoption, while the other will consist in studying a specific SaaS cloud in details, namely In doing so, the student will in particular examine how the API, its documentation and the presence of additional online tools can foster or hinder the adoption of a PaaS. Two other investigation avenues worth exploring are the influence of providing SDKs, rather than simply providing a raw RESTful API, and the profiles of developers that are more inclined to adopt a PaaS.