A Framework Enabling the Cross-Platform Development of Service-Based Cloud Applications
Total Page:16
File Type:pdf, Size:1020Kb
A Framework Enabling the Cross-Platform Development of Service-based Cloud Applications By: Fotis Gonidis A thesis submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy The University of Sheffield Faculty of Engineering Department of Computer Science December 2015 South East European Research Centre The University of Sheffield Faculty of Engineering Department of Computer Science A Framework Enabling the Cross-Platform Development of Service-based Cloud Applications By: Fotis Gonidis A thesis submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy December 2015 South East European Research Centre Abstract Among all the different kinds of service offering available in the cloud, ranging from compute, storage and networking infrastructure to integrated platforms and software services, one of the more interesting is the cloud application platform, a kind of platform as a service (PaaS) which integrates cloud applications with a collection of platform basic services. This kind of platform is neither so open that it requires every application to be developed from scratch, nor so closed that it only offers services from a pre-designed toolbox. Instead, it supports the creation of novel service-based applications, consisting of micro-services supplied by multiple third-party providers. Software service development at this granularity has the greatest prospect for bringing about the future software service ecosystem envisaged for the cloud. Cloud application developers face several challenges when seeking to integrate the different micro-service offerings from third-party providers. There are many alternative offerings for each kind of service, such as mail, payment or image processing services, and each assumes a slightly different business model. We characterise these differences in terms of (i) workflow, (ii) exposed APIs and (iii) configuration settings. Furthermore, developers need to access the platform basic services in a consistent way. To address this, we present a novel design methodology for creating service-based applications. The methodology is exemplified in a Java framework, which (i) integrates platform basic services in a seamless way and (ii) alleviates the heterogeneity of third-party services. The benefit is that designers of complete service-based applications are no longer locked into the vendor-specific vagaries of third-party micro-services and may design applications in a vendor- agnostic way, leaving open the possibility of future micro-service substitution. The framework architecture is presented in three phases. The first describes the abstraction of platform basic services and third-party micro-service workflows,. The second describes the method for extending the framework for each alternative micro- service implementation, with examples. The third describes how the framework executes each workflow and generates suitable client adaptors for the web APIs of each micro-service. i ii Acknowledgements Carrying out a research work and writing the PhD thesis may become a lifelong experience, which to a certain extend has the potential to shape the way you think, react and face the challenges in your life. Above all though, it is a journey through uncharted routes to a destination, which is not clear and by no means visible when you set off. You have a direction but you are not aware of where exactly you will end up and which path you need to follow to reach your goal. And it is this factor of the “unknown” that makes this journey so unique, full of surprises, mystery and unexpected encounters. Actually, when you start your PhD there is one thing known and certain, that is the emotional fluctuations. There are days, when you are excited and full of motivation, followed by days of disappointment and frustration. There are moments you feel that you found your way to your destination followed by ones that you loose it again. Nevertheless, when you reach the end of your journey, there is only one feeling left, that is fulfilment. You feel that you have fulfilled the promise to yourself, which is to accomplish the assignment you undertook when you started this journey. And it is this feeling, which gives value to all the good and bad moments you have been through. Carrying out a research work and writing the PhD thesis is primarily a lonely process. Nevertheless, it would be unfair if I didn’t mention that throughout my personal journey there were several people who were always standing next to me and supporting me with their own unique way. And it is thanks to those people that I am in position now to present this thesis. However, the gratitude I feel for those people cannot fit within the limits of this section. Therefore, I would prefer to express my deep gratitude personally and with a special way to each one of those persons. iii iv Greeks, with Protagoras (c. 485 – c. 415 B.C.) being the first, say that to every thesis an equal thesis is opposed v vi Table of Contents Chapter 1 Introduction ....................................................................................... 1 1.1 Motivation for the research work ......................................................................... 6 1.2 Aim of the thesis ................................................................................................... 9 1.3 Standardisation and Intermediation as solution approaches ............................... 10 1.4 Bird eye view of SCADeF (Service-based Cloud Application Development Framework) .................................................................................................................. 11 1.5 Thesis Objectives ................................................................................................ 12 1.5.1 Theoretical objectives ........................................................................................ 12 1.5.2 Technical objectives ........................................................................................... 13 1.5.3 Experimental objectives .................................................................................... 13 1.5.4 Thesis contributions .......................................................................................... 13 1.6 Thesis Outline ..................................................................................................... 14 PART A Literature review on cross-platform development of cloud applications ... 19 Chapter 2 Background on cloud computing and cloud platforms ...................... 21 2.1 Evolution of cloud computing ............................................................................. 22 2.1.1 Virtualisation technique .................................................................................... 23 2.1.2 Client-Server architecture ................................................................................. 23 2.1.3 Grid Computing ................................................................................................. 24 2.1.4 Service-oriented Computing .............................................................................. 24 2.1.5 Early commercial cloud products ...................................................................... 25 2.1.6 Cloud computing, why now and not then? ....................................................... 25 2.2 Cloud computing in three service models ............................................................ 26 2.3 Cloud platforms .................................................................................................. 28 2.3.1 Early cloud platform offerings ........................................................................... 28 2.3.2 Evolution of cloud platforms ............................................................................. 29 2.4 Cloud applications ............................................................................................... 30 2.5 Summary ............................................................................................................ 32 Chapter 3 Survey of cloud platforms ................................................................ 33 3.1 Cloud platforms characteristics ........................................................................... 34 3.1.1 Cloud platforms reports .................................................................................... 35 vii 3.1.2 Cloud platform framework of features .............................................................. 37 3.2 Cloud platforms comparison ............................................................................... 41 3.3 Classification of Cloud Platforms ......................................................................... 43 3.4 Determining the target cloud platform category of this research work ................ 48 3.5 Cloud application platforms and platform basic services ..................................... 48 3.6 Summary ............................................................................................................ 51 Chapter 4 Related work on the field of cross-platform development of service- based cloud applications ....................................................................................... 53 4.1 Standardisation approach ................................................................................... 55 4.1.1 Cloud Standardisation efforts ............................................................................ 55 4.1.2 Positioning of the cloud standards based on the cloud computing