Efficient Middleware for the Portability of PaaS Services Consuming Applications among Heterogeneous Clouds
Abstract
:1. Introduction
Application Portability among Interconnected Clouds
2. Background and Related Work
3. PaaS Cloud Application Portability Middleware
- Programming languages and frameworks: The programming languages supported by cloud platforms are limited. If an application developed in one platform using a specific language needs to be ported, that language should also be kept in the new cloud platform. The proposed middleware was created in the .NET Core framework for console and web applications. .NET Core is supported by most cloud platforms.
- Proprietary platform services: To facilitate developers in reducing the application’s development time, mainly the platform providers offer certain services via specific APIs. These services can be integrated into the applications by adding the cloud-specific software development kit (SDK) and implementing the platform-specific service by adding extra lines of code. Now there could be two possible scenarios:
- The specific service used by the application on one platform may not be available on the other.
- The new platform supports the specific service but offers a different interface.The proposed middleware mitigates these restrictions by allowing the user to keep using the service from the previous platform while the ported application is on the new platform.
- Platform-specific configuration: Clouds use different variables to configure their platform services [44,45,46,47]. We defined the structure of our configuration file so that the middleware layer handles and implements the cloud services even with the different designs of the configuration variables. The configuration is not hardcoded in the middleware code [48,49,50,51]. Instead, it is provided in a JSON file that can be changed to alter the design even if the application runs. The middleware code does not need to be changed to facilitate the change in the configuration file. The modified configuration variables are loaded into the middleware directly via dependency injection [52,53,54].
3.1. Proposed Methodology Overview
3.1.1. Application Types Supported
3.1.2. The Supported Services
Email Service
SMS Service
3.1.3. Message Queue
3.1.4. BLOB Storage
3.2. Implementation of Message Queue Service in Our Middleware
Algorithm 1. Pseudo-code for sending and receiving the messages from the message queue service. |
//Method called by developer for sending messages MessageQueueService.Send(messages) //Implementation in Abstraction layer If cloud == ‘AWS’ settings = AwsSettings //From configuration file Create AwsMessageClient AwsMessageClient.Send(messages) If cloud == ‘Azure’ settings = AzureSettings //From configuration file Create AzureMessageClient AzureMessageClient.Send(messages) If cloud == ‘Google’ settings = GoogleSettings //From configuration file Create GoogleMessageClient GoogleMessageClient.Send(messages) //Method called by developer for receiving messages messages = MessageQueueService.Receive( //Implementation in Abstraction layer If cloud == ‘AWS’ settings = AwsSettings //From configuration file Create AwsMessageClient return AwsMessageClient.Receive() //returns messages received from AWS cloud If cloud == ‘Azure’ settings = AzureSettings //From configuration file Create AzureMessageClient return AzureMessageClient.Receive() //returns messages received from Azure cloud If cloud == ‘Google’ settings = GoogleSettings //From configuration file Create GoogleMessageClient return GoogleMessageClient.Receive() //returns messages received from Google cloud |
Algorithm 2. Pseudo-code for uploading and downloading a file to/from the BLOB storage service. |
//Method called by developer for uploading file BlobService.UploadFile(fileName, folderName, localPath) //Implementation in Abstraction layer If cloud == ‘AWS’ settings = AwsSettings //From configuration file Create AwsBlobService AwsBlobService.UploadFile(fileName, folderName, localPath) If cloud == ‘Azure’ settings = AzureSettings //From configuration file Create AzureBlobService AzureBlobService.UploadFile(fileName, folderName, localPath) If cloud == ‘Google’ settings = GoogleSettings //From configuration file Create GoogleBlobService AwsBlobService.UploadFile(fileName, folderName, localPath) //Method called by developer for downloading files File = BlobService.DownloadFile(fileName, folderName, localPath) //Implementation in Abstraction layer If cloud == ‘AWS’ settings = AwsSettings //From configuration file Create AwsBlobService return AwsBlobService.DownloadFile(fileName, folderName, localPath) //returns messages received from AWS cloud If cloud == ‘Azure’ settings = AzureSettings //From configuration file Create AzureBlobService return AzureBlobService.DownloadFile(fileName, folderName, localPath) //returns messages received from Azure cloud If cloud == ‘Google’ settings = GoogleSettings //From configuration file Create GoogleBlobService return GoogleBlobService.DownloadFile(fileName, folderName, localPath) //returns messages received from Google cloud |
3.3. Implementation of Blob Storage Service in Our Middleware
4. Experimentation and Evaluation
- Ease of use for the developer implementing the PaaS services in their application;
- Incorporating various PaaS services into a single middleware.
5. Conclusions and Future Work
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
References
- Kostoska, M.; Gusev, M.; Ristov, S. An overview of cloud portability. In Future Access Enablers of Ubiquitous and Intelligent Infrastructures, Proceedings of the FABULOUS 2015, Ohrid, Republic of Macedonia, 23–25 September 2015; Springer: Cham, Switzerland, 2015; Volume 159, pp. 248–254. [Google Scholar] [CrossRef]
- Petcu, D. Consuming Resources and Services from Multiple Clouds: From Terminology to Cloudware Support. J. Grid Comput. 2014, 12, 321–345. [Google Scholar] [CrossRef]
- Kolb, S.; Wirtz, G. Towards Application Portability in Platform as a Service. In Proceedings of the 2014 IEEE 8th International Symposium on Service Oriented System Engineering, Oxford, UK, 7–11 April 2014; pp. 218–229. [Google Scholar]
- Gonidis, F.; Paraskakis, I.; Kourtesis, D. Addressing the Challenge of Application Portability in Cloud Platforms. In Proceedings of the 7th South-East European Doctoral Student Conference, Thessaloniki, Greece, 24–25 September 2012; pp. 565–576. [Google Scholar]
- Bojanova, I. Cloud Interoperability and Portability II; IEEE Computer Society: Washington, DC, USA, 2013. [Google Scholar]
- Stravoskoufos, K.; Preventis, A.; Sotiriadis, S.; Petrakis, E.G.M. A Survey on Approaches for Interoperability and Portability of Cloud Computing Services. In Proceedings of the 4th International Conference on Cloud Computing and Services Science (CLOSER-2014), Barcelona, Spain, 3–5 April 2014; pp. 112–117. [Google Scholar]
- Markoska, E.; Chorbev, I.; Ristov, S.; Gušev, M. Cloud portability standardization overview. In Proceedings of the 2015 38th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), Opatija, Croatia, 25–29 May 2015; pp. 286–291. [Google Scholar]
- Lewis, G.A. The Role of Standards in Cloud-Computing Interoperability. In Proceedings of the 46th Hawaii International Conference on System Sciences, Maui, HI, USA, 7–10 January 2012; pp. 1652–1661. [Google Scholar]
- Kamateri, E.; Loutas, N.; Zeginis, D.; Ahtes, J.; D’Andria, F.; Bocconi, S.; Gouvas, P.; Ledakis, G.; Ravagli, F.; Lobunets, O.; et al. Cloud4SOA: A Semantic-Interoperability PaaS Solution for Multi-cloud Platform Management and Portability. In Service-Oriented and Cloud Computing, Proceedings of the ESOCC 2013, Málaga, Spain, 11–13 September 2013; Springer: Cham, Switzerland, 2013; pp. 64–78. [Google Scholar]
- Singh, P.; Singh, S.; Sohal, M.; Dwivedi, Y.K.; Kahlon, K.S.; Sawhney, R.S. Psychological fear and anxiety caused by COVID-19: Insights from Twitter analytics. Asian J. Psychiatry 2020, 54, 102280. [Google Scholar] [CrossRef]
- Baudoin, C.; Dekel, E.; Edwards, M. Interoperability and Portability for Cloud Computing: A Guide Cloud Stand. Cust. Counc. 2014, 1, 1–20. [Google Scholar]
- Gonidis, F.; Simons, A.J.; Paraskakis, I.; Kourtesis, D. Cloud Application Portability: An Initial View. In Proceedings of the 6th Balkan Conference in Informatics, online, 19 September 2013; pp. 275–282. [Google Scholar]
- Guillén, J.; Miranda, J.; Murillo, J.M.; Canal, C. Developing migratable multicloud applications based on MDE and adaptation techniques. In Proceedings of the Second Nordic Symposium on Cloud Computing & Internet Technologies, online, 2 September 2013; pp. 30–37. [Google Scholar]
- Jonnalagedda, M.; Jaeger, M.C.; Hohenstein, U.; Kaefer, G. Application Portability for Public and Private Clouds. In Proceedings of the 1st International Conference on Cloud Computing and Services Science (CLOSER-2011), Noordwijkerhout, Netherlands, 7–9 May 2011; pp. 484–493. [Google Scholar]
- Kaur, K.; Sharma, S.; Kahlon, K.S. Interoperability and Portability Approaches in Inter-Connected Clouds : A Review. ACM Comput. Surv. 2017, 50, 40. [Google Scholar] [CrossRef]
- Kolb, S.; Rock, C. Unified Cloud Application Management. In Proceedings of the 2016 IEEE World Congress on Service Computing, San Francisco, CA, USA, 27 June 2016–2 July 2016; pp. 1–8. [Google Scholar]
- Leymann, F.; Fehling, C.; Mietzner, R.; Nowak, A.; Dustdar, S. Moving applications to the cloud: An approach based on application model enrichment. Int. J. Cooperative Inf. Syst. 2011, 20, 307–356. [Google Scholar] [CrossRef]
- Rafique, A.; Walraven, S.; Lagaisse, B.; Desair, T.; Joosen, W. Towards portability and interoperability support in middleware for hybrid clouds. In Proceedings of the 2014 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS), Toronto, ON, Canada, 27 April 2014–2 May 2014; pp. 7–12. [Google Scholar]
- Cunha, D.; Neves, P.; Sousa, P. PaaS manager: A platform-as-a-service aggregation framework. Comput. Sci. Inf. Syst. 2014, 11, 1209–1228. [Google Scholar] [CrossRef] [Green Version]
- Ranabahu, A.; Sheth, A. Semantics Centric Solutions for Application and Data Portability in Cloud Computing. In Proceedings of the 2010 IEEE Second International Conference on Cloud Computing Technology and Science, Indianapolis, IN, USA, 30 November–3 December 2010; pp. 234–241. [Google Scholar]
- Ranabahu, A.; Maximilien, E.M.; Sheth, A.; Thirunarayan, K. Application Portability in Cloud Computing: An Abstraction-Driven Perspective. IEEE Trans. Serv. Comput. 2013, 8, 945–957. [Google Scholar] [CrossRef]
- Jiménez-Domingo, E.; Gómez-Berbís, J.M.; Colomo- Palacios, R.; García-Crespo, Á. CARL: A complex applications interoperability language based on semantic technologies for platform-as-a-service integration and cloud computing. J. Res. Pract. Inf. Technol. 2011, 43, 227–245. [Google Scholar]
- Cretella, G.; Di Martino, B. Towards a Semantic Engine for Cloud Applications Development. In Proceedings of the 2012 Sixth International Conference on Complex, Intelligent, and Software Intensive Systems, Palermo, Italy, 4–6 July 2012; pp. 198–203. [Google Scholar]
- Silva, L.A.B.; Costa, C.; Oliveira, J.L. A common API for delivering services over multi-vendor cloud resources. J. Syst. Softw. 2013, 86, 2309–2317. [Google Scholar] [CrossRef]
- Cascella, R.G.; Costache, S.; Dudouet, F.; Gaudenzi, F.; Jégou, Y.; Morin, C. Multi-Cloud Portable Application Deployment with VEP. 2014. Available online: https://www.researchgate.net/publication/281598437_Multi-Cloud_Portable_Application_Deployment_with_VEP (accessed on 21 May 2022).
- Petcu, D.; Martino, B.D.; Venticinque, S.; Rak, M.; Máhr, T.; Lopez, G.; Brito, F.; Cossu, R.; Stopar, M.; Šperka, S.; et al. Experiences in building a mOSAIC of clouds. J. Cloud Comput. Adv. Syst. Appl. 2013, 2, 12. [Google Scholar] [CrossRef] [Green Version]
- Vijaya, A.; Neelanarayanan, V. A Model Driven Framework for Portable Cloud Services: Proof of Concept Implementation. Int. J. Educ. Manag. Eng. 2015, 5, 27–35. [Google Scholar] [CrossRef]
- Gonidis, F.; Paraskakis, I.; Simons, A.J.H. A Development Framework Enabling the Design of Service-Based Cloud Applications. In Proceedings of the In European Conference on Service-Oriented and Cloud Computing, Taormina, Italy, 15–17 September 2015; Volume 508, pp. 139–152. [Google Scholar]
- Da Silva, E.A.N.; da Silva, V.G.; Lucrédio, D.; de Mattos Fortes, R.P. Towards a model-driven approach for promoting cloud PaaS portability. In Proceedings of the 2013 XXXIX Latin American Computing Conference (CLEI), Caracas (Naiguata), Venezuela, 7–11 October 2013. [Google Scholar]
- Beslic, A.; Bendraou, R.; Sopenal, J.; Rigolet, J.Y. Towards a solution avoiding vendor lock-in to enable migration between cloud platforms. Proceeding of the 2nd International Workshop on Model-Driven Engineering for High Performance and Cloud computing (MDHPCL 2013), Miami, FL, USA, 29 September 2013; pp. 5–14. [Google Scholar]
- Giove, F.; Longoni, D.; Yancheshmeh, M.S.; Ardagna, D.; Di Nitto, E. An Approach for the Development of Portable Applications on PaaS Clouds. In Proceedings of the 3rd International Conference on Cloud Computing and Services Science (CLOSER 2013), Aachen, Germany, 8–10 May 2013; pp. 591–601. [Google Scholar] [CrossRef]
- Munisso, R.; Chis, A. CloudMapper: A Model-Based Framework for Portability of Cloud Applications Consuming PaaS Services. In Proceedings of the 2017 25th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP), St. Petersburg, Russia, 6–8 March 2017; pp. 132–139. [Google Scholar] [CrossRef]
- Andrikopoulos, V.; Binz, T.; Leymann, F.; Strauch, S. How to adapt applications for the Cloud environment: Challenges and solutions in migrating applications to the Cloud. Computing 2012, 95, 493–535. [Google Scholar] [CrossRef]
- Andročec, D. Application Programming Interfaces (APIs) Based Interoperability of Cloud Computing. Doctoral Dissertation, University of Zagreb, Zagreb, Croatia, 2015. [Google Scholar]
- Cunha, D.; Neves, P.; Sousa, P. Interoperability and portability of cloud service enablers in a PaaS environment. In Proceedings of the 2nd International Conference on Cloud Computing and Services Science (CLOSER 2012), Porto, Portugal, 18–21 April 2012; pp. 432–437. [Google Scholar] [CrossRef] [Green Version]
- Hamdaqa, M.; Livogiannis, T.; Tahvildari, L. A Reference Model for Developing Cloud Applications. In Proceedings of the 1st International Conference on Cloud Computing and Services Science (CLOSER), Noordwijkerhout, The Netherlands, 7–9 May 2011; pp. 98–103. [Google Scholar] [CrossRef]
- Hossny, E.; Khattab, S.; Omara, F.A.; Hassan, H.A. Towards a standard PaaS implementation API: A generic cloud persistentstorage API. In Proceedings of the 3rd International IBM Cloud Academy Conference, Budapest, Hungary, 21–23 May 2015. [Google Scholar]
- Singh, P.; Sawhney, R.S.; Kahlon, K.S. Sentiment analysis of demonetization of 500 & 1000 rupee banknotes by Indian government. ICT Express 2018, 4, 124–129. [Google Scholar]
- Kaur, K.; Sharma, S.; Kahlon, K.S. A Middleware for Polyglot Persistence and Data Portability of Big Data PaaS Cloud Applications. CMC-Comput. Mater. Contin. 2020, 65, 1625–1647. [Google Scholar] [CrossRef]
- Markoska, E.; Ackovska, N.; Ristov, S.; Gusev, M.; Kostoska, M. Software design patterns to develop an interoperable cloud environment. In Proceedings of the 2015 23rd Telecommunications Forum Telfor (TELFOR), Belgrade, Serbia, 24–26 November 2015; pp. 986–989. [Google Scholar] [CrossRef]
- Polo Sony, I. Inter-Cloud Application Migration and Portability Using Linux Containers for Better Resource Provisioning and Interoperability. Doctoral Dissertation, National College of Ireland, Dublin, Ireland, 2015. [Google Scholar]
- Zhang, W.G.; Berre, A.J.; Roman, D.; Huru, H.A. Migrating Legacy Applications to the Service Cloud. In Proceedings of the 14th Conference Companion on Object Oriented Programming Systems Languages and Applications, Orlando, FL, USA, 25–29 October 2009; pp. 59–67. [Google Scholar]
- Bharany, S.; Sharma, S.; Badotra, S.; Khalaf, O.I.; Alotaibi, Y.; Alghamdi, S.; Alassery, F. Energy-Efficient Clustering Scheme for Flying Ad-Hoc Networks Using an Optimized LEACH Protocol. Energies 2021, 14, 6016. [Google Scholar] [CrossRef]
- Talwar, B.; Arora, A.; Bharany, S. An Energy Efficient Agent Aware Proactive Fault Tolerance for Preventing Deterioration of Virtual Machines Within Cloud Environment. In Proceedings of the 2021 9th International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions) (ICRITO), Noida, India, 3–4 September 2021; pp. 1–7. [Google Scholar] [CrossRef]
- Misra, S. A Step-by-Step Guide for Choosing Project Topics and Writing Research Papers in ICT Related Disciplines. In Information and Communication Technology and Applications, Proceedings of the ICTA 2020, Minna, Nigeria, 24–27 November 2021; Springer: Cham, Switzerland, 2021; pp. 727–744. [Google Scholar] [CrossRef]
- Rana, N.; Latiff, M.S.A.; Abdulhamid, S.M.; Misra, S. A hybrid whale optimization algorithm with differential evolution optimization for multi-objective virtual machine scheduling in cloud computing. Eng. Optim. 2021, 1–18. [Google Scholar] [CrossRef]
- Olokunde, T.; Misra, S.; Adewumi, A. Quality Model for Evaluating Platform as a Service in Cloud Computing. In International Conference on Information and Software Technologies, Proceedings of the ICIST 2017, Druskininkai, Lithuania, 12–14 October 2017; Springer: Cham, Switzerland, 2017; pp. 280–291. [Google Scholar] [CrossRef]
- Radanliev, P.; De Roure, D.; Burnap, P.; Santos, O. Epistemological Equation for Analysing Uncontrollable States in Complex Systems: Quantifying Cyber Risks from the Internet of Things. Rev. Socionetwork Strat. 2021, 15, 381–411. [Google Scholar] [CrossRef]
- Radanliev, P.; de Roure, D. Review of Algorithms for Artificial Intelligence on Low Memory Devices. IEEE Access 2021, 9, 109986–109993. [Google Scholar] [CrossRef]
- Bharany, S.; Sharma, S.; Bhatia, S.; Rahmani, M.K.I.; Shuaib, M.; Lashari, S.A. Energy Efficient Clustering Protocol for FANETS Using Moth Flame Optimization. Sustainability 2022, 14, 6159. [Google Scholar] [CrossRef]
- Gebrealif, Y.; Mubarkoot, M.; Altmann, J.; Egger, B. AI-Based Container Orchestration for Federated Cloud Environments. In Proceedings of the 30th International Symposium on High-Performance Parallel and Distributed Computing, online, 25 June 2020. [Google Scholar] [CrossRef]
- Lăcătușu, M.; Ionita, A.D.; Anton, F.D.; Lăcătușu, F. Analysis of Complexity and Performance for Automated Deployment of a Software Environment into the Cloud. Appl. Sci. 2022, 12, 4183. [Google Scholar] [CrossRef]
- Tomarchio, O.; Calcaterra, D.; Di Modica, G. Cloud resource orchestration in the multi-cloud landscape: A systematic review of existing frameworks. J. Cloud Comput. Adv. Syst. Appl. 2020, 9, 1–24. [Google Scholar] [CrossRef]
- Bharany, S.; Sharma, S.; Khalaf, O.I.; Abdulsahib, G.M.; Al Humaimeedy, A.S.; Aldhyani, T.H.H.; Maashi, M.; Alkahtani, H. A Systematic Survey on Energy-Efficient Techniques in Sustainable Cloud Computing. Sustainability 2022, 14, 6256. [Google Scholar] [CrossRef]
- Mustafa, S.; Sattar, K.; Shuja, J.; Sarwar, S.; Maqsood, T.; Madani, S.A.; Guizani, S. SLA-Aware Best Fit Decreasing Techniques for Workload Consolidation in Clouds. IEEE Access 2019, 7, 135256–135267. [Google Scholar] [CrossRef]
- Shuja, J.; Mustafa, S.; Ahmad, R.W.; Madani, S.A.; Gani, A.; Khan, M.K. Analysis of Vector Code Offloading Framework in Heterogeneous Cloud and Edge Architectures. IEEE Access 2017, 5, 24542–24554. [Google Scholar] [CrossRef]
Reference | Approach | Focused | Technique Followed | Platforms Used | Tools Used for Implementation | Work Done |
---|---|---|---|---|---|---|
[15] | Cloud to cloud | A common set of PaaS providers’ capabilities | Categorization of PaaS portability problems | 68 PaaS offerings | JSON | A standard architecture for heterogeneous platform-as-a-service platforms is proposed in this work to address the issue of application portability by identifying three layers: infrastructure, platform, and management. |
[16] | Cloud to cloud | DevOps automation | Unified interface and adapters | Cloud Foundry, Heroku, CloudControl, OpenShift | RESTful API and a Ruby wrapper library | As a result of this article, the user may easily select the best cloud platform and manage and deploy cloud applications across several platforms. |
[37] | Cloud to cloud | BLOB storage | Generic API and adapters | Microsoft Azure and Google App Engine | Jena API and SPARQL query language | An API that is semantically annotated for the automated construction of an adapter for a certain provider is proposed in this work. |
[17] | Legacy to cloud | Cloud distribution of an application | Meta model | Sample application | JEE Café framework | In this article, a method for partitioning an app for cloud deployment (manually or with the help of optimization algorithms) is described. |
[14] | Hybrid clouds | Flexibility of choosing a platform at deployment time rather than after deployment | Software architecture and security among applications’ different modules | - | - | Developing an application with certain components distributed on a cloud platform and others remaining on-premises raises several design difficulties, some of which are discussed in this article (on-premises). |
[18] | Hybrid clouds | NoSQL storage, BLOB storage, and asynchronous task processing | Middleware (uniform API) | JBoss AS Cluster, GAE, RedHat, Openshift | JAVA APIs | Using middleware architecture, this study proposes a method for enabling hybrid cloud environments. |
[19] | Cloud to cloud | Deployment, migration, and monitoring of applications | Abstraction layer | Cloud Bees, Cloud Foundry, Iron Foundry, Heroku | RESTful APIs | An abstraction of cloud providers’ differences in application deployment and lifecycle management is proposed in this study. An API was created by grouping together several core actions into a single set. |
[35] | Cloud to cloud | Service-oriented architecture API | Standardized API | Private PaaS (PTIN Portugal Telecom Inovacao) | WSDL, SOAP/REST | Using industry-standard APIs, this paper outlines a distributed architecture for building and presenting services. |
[20] | Cloud to cloud | Application and data portability | Semantic, model-driven, domain-specific language (DSL) | Android, Blackberry, Amazon EC2, GAE | Scalable Cloud Application Generator (SCALE), Modi Cloud | Semantics and domain-specific language (DSL) are leveraged for application portability in these studies from a user’s point of view. |
[22] | Cloud to cloud | Integration of applications at PaaS level | Semantic and model-driven | - | Web Ontology Language (OWL) and DSL | The semantic technologies presented in this study serve as the foundation for a sophisticated application interoperability language. |
[9] | Multi-cloud, legacy to cloud, cloud to cloud | Cloud-based application development | Common cloud API, semantic, and adapters | All major PaaS providers | RESTful implementation | To address the semantic interoperability challenges at the PaaS layer, this paper describes the Cloud4SOA project, which is built on a broker architecture. |
[23] | Cloud to cloud, legacy to cloud | Application portability | Semantics and cloud patterns | Windows Azure | ODOL, OWL- S, SWRL | Cloud application portability is addressed in this study through the use of design principles and semantic technologies. |
[24] | Cross-cloud (enterprise to cloud, enterprise to cloud to enterprise) | Storage, databases, and notification services | Common API and middleware | Google, Amazon, Azure, Rackspace | Java Persistence API (JPA), JAVA, XMPP, RESTful API | The service delivery cloud platform (SDCP) described in this article is a cloud middleware infrastructure that makes use of resources from a variety of different cloud service providers to deliver a wide range of services. |
[40] | Cloud to cloud | Database | Containers | Amazon EC2 and Microsoft Azure | Runc Open Container, Flocker, Weave | The transfer of a Linux Container across a network is used for live application migration. Data and application states were tested across many cloud platforms in order to establish that they could be transferred across them. |
[25] | Cross-cloud | Multi-cloud application deployment (virtual machines, network, storage) | Middleware software | Open Nebula, OpenStack clouds | Java, MySql, OVF format | Disparate cloud environments can be alleviated via the virtual execution platform (VEP) service, which this article describes. VEP automatically deploys the OVF packages on the IaaS clouds mentioned in the OVF files. |
[26] | Cross-cloud, cloud to cloud | On-demand grouping of services of several clouds | Open source deployable cloudware (mOSAIC) | Most PaaS providers | Java, Python | European Union research project mOSAIC, a middleware framework for designing provider-agnostic, scalable cloud applications, is described in this article. |
[33] | Legacy to cloud | Migration of different parts of an application | Cloud data patterns | Local company to cloud | - | This article discusses the process of moving on-premise software to the cloud, which necessitates various levels of re-engineering, depending on the kind of migration. |
[39] | Cloud to cloud | Cloud-based application development | Software design patterns, API unification, adapters | Eucalyptus and OpenStack clouds | .NET, Java | This article discusses the process of moving on-premise software to the cloud, which necessitates various levels of re-engineering, depending on the kind of migration. |
[34] | Cloud to cloud | NoSQL databases | Ontologies | Salesforce, Google App Engine (GAE), Microsoft Azure | Protégé, OWL, Resource Description Framework (RDF) | This research focuses on the semantic annotation of APIs and web services so that applications may be easily transferred across service providers. A variety of interoperability issues were discovered using a variety of ontologies and artificial intelligence (AI) planning. |
[27] | Cloud to cloud | Customer resource management (CRM) software applications | MDE and DSL | - | AHEAD Composer, Eclipse framework | DSkyL, an Eclipse plugin that uses MDE for the building of customer relationship management (CRM) SaaS applications, is the subject of this publication. |
[36] | Cloud to cloud | Monitoring cloud resources, storage accounts (BLOB, table, queue, etc.) | Model-driven engineering (MDE) | Microsoft Azure, GAE | - | In this research, a meta-model for cloud applications is provided that captures the essential elements of a cloud application. |
[28] | Cross-cloud | Email, message queue, payment service | MDE (template-based approach) and code generation | Google, Amazon, Heroku | Eclipse framework, Xpand | An MDE-based approach is used in this study to make it possible to build cloud applications that can use services from several provider platforms at once. |
[29] | Cloud to cloud | NoSQL | MDE and DSL | GAE and Microsoft Azure | Xtend, Xtext | Platform-independent DSLs are created in this study using MDE approaches. By utilizing this DSL, an application might be created that uses the specific cloud platform code. |
[30] | Cloud to cloud | Discovery, transformation, and migration | MDE and DSL | IBM PaaS, GAE | MoDISCO, TXL | Using the model-driven architecture and refactoring technique, this article examines the high-level notion of an application’s migration between platform-as-a-service providers in three phases: discovery, transformation, and migration. |
[31] | Cloud to cloud | SQL, BLOB, NoSQL, task queue, message queue, memcache, mailing | CPIM(a Java Library) and a common API | GAE and Microsoft Azure | Design Patterns (Abstract Factory Pattern) | PaaS-level services are encapsulated by a cloud provider independent model (CPIM) in this article to provide a mediation layer that hides the differences among multiple PaaS providers. |
[13] | Hybrid and multi-cloud | BLOB storage service | MDE and adaptation | Microsoft Azure and Amazon S3 (Simple Storage Service) | Java, UML, XML, ATL, Maven | To generate platform-specific applications, the MULTICLAPP framework contains a transformation mechanism for mapping cloud artifacts to the target platforms. |
[32] | Cloud to cloud, legacy to cloud | REST resources (message queues, object storage, etc.) | Abstraction and model-driven (DSL) | Microsoft Azure, Google, and AWS | Models, mapping, and generators | For a legacy or new application that uses REST APIs in the cloud, this article presents a hybrid strategy (abstraction and model-based) that would allow for the re-use of the same services on a different cloud. |
Time Taken For | AZURE | Δ(%) | AWS | Δ(%) | Δ(%) | |||||
---|---|---|---|---|---|---|---|---|---|---|
Middleware | Native | Middleware | Native | Middleware | Native | |||||
BLOB Storage Service | 100 files uploaded | 251,206 | 235,784 | 6.54 | 134,892 | 125,673 | 7.34 | 412,879 | 386,791 | 6.74 |
500 files uploaded | 1,414,289 | 1,327,463 | 6.54 | 759,441 | 707,538 | 7.34 | 2,324,508 | 2,177,633 | 6.74 | |
1000 files uploaded | 2,745,681 | 2,577,119 | 6.54 | 1,474,369 | 1,373,605 | 7.34 | 4,512,767 | 4,227,625 | 6.74 | |
Average Overhead | 6.54 | Average Overhead | 7.34 | Average Overhead | 6.74 | |||||
100 files downloaded | 60,879 | 53547 | 13.69 | 61,505 | 57,296 | 7.35 | 200,543 | 189,562 | 5.79 | |
500 files downloaded | 342,748 | 301,469 | 13.69 | 346,273 | 322,576 | 7.35 | 1,129,057 | 1,067,234 | 5.79 | |
1000 files downloaded | 765,407 | 585,268 | 30.78 | 672,249 | 626,245 | 7.35 | 2,191,934 | 2,071,912 | 5.79 | |
Average Overhead | 19.38 | Average Overhead | 7.35 | Average Overhead | 5.79 | |||||
Message Queue Service | 100 messages uploaded | 13,967 | 12,846 | 8.73 | 10,484 | 9627 | 8.90 | 6135 | 5683 | 7.95 |
500 messages uploaded | 62,412 | 60569 | 3.04 | 48,783 | 44,200 | 10.37 | 2500 | 1995 | 12.71 | |
1000 messages uploaded | 116,025 | 84406 | 37.46 | 110,353 | 105,223 | 4.88 | 3999 | 3115 | 28.38 | |
Average Overhead | 16.41 | Average Overhead | 8.05 | Average Overhead | 16.34 | |||||
100 messages downloaded | 67 | 43 | 55.81 | 1574 | 1457 | 8.03 | 7575 | 6721 | 12.71 | |
500 messages downloaded | 5 | 5 | 0.00 | 6659 | 6202 | 7.37 | 6721 | 6439 | 5.86 | |
1000 messages downloaded | 9 | 7 | 28.57 | 18,594 | 15,925 | 16.76 | 6393 | 5980 | 6.90 | |
Average Overhead | 28.12 | Average Overhead | 10.72 | Average Overhead | 8.49 |
Time Taken For | Middleware | Native | Δ(%) | |
---|---|---|---|---|
Email Service | 10 emails sent | 155,367 | 136,127 | 14.13 |
50 emails sent | 808,640 | 693,836 | 16.55 | |
100 emails sent | 1,560,560 | 1,415,639 | 10.24 | |
Average Overhead | 13.64 | |||
SMS Service | 20 SMS sent | 6512 | 5286 | 23.19 |
100 SMS sent | 37,430 | 25,540 | 46.55 | |
200 SMS sent | 69,165 | 53,190 | 30.03 | |
Average Overhead | 33.25 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Bharany, S.; Kaur, K.; Badotra, S.; Rani, S.; Kavita; Wozniak, M.; Shafi, J.; Ijaz, M.F. Efficient Middleware for the Portability of PaaS Services Consuming Applications among Heterogeneous Clouds. Sensors 2022, 22, 5013. https://doi.org/10.3390/s22135013
Bharany S, Kaur K, Badotra S, Rani S, Kavita, Wozniak M, Shafi J, Ijaz MF. Efficient Middleware for the Portability of PaaS Services Consuming Applications among Heterogeneous Clouds. Sensors. 2022; 22(13):5013. https://doi.org/10.3390/s22135013
Chicago/Turabian StyleBharany, Salil, Kiranbir Kaur, Sumit Badotra, Shalli Rani, Kavita, Marcin Wozniak, Jana Shafi, and Muhammad Fazal Ijaz. 2022. "Efficient Middleware for the Portability of PaaS Services Consuming Applications among Heterogeneous Clouds" Sensors 22, no. 13: 5013. https://doi.org/10.3390/s22135013
APA StyleBharany, S., Kaur, K., Badotra, S., Rani, S., Kavita, Wozniak, M., Shafi, J., & Ijaz, M. F. (2022). Efficient Middleware for the Portability of PaaS Services Consuming Applications among Heterogeneous Clouds. Sensors, 22(13), 5013. https://doi.org/10.3390/s22135013