| Literature DB >> 35808508 |
Salil Bharany1, Kiranbir Kaur1, Sumit Badotra2, Shalli Rani3, Marcin Wozniak4, Jana Shafi5, Muhammad Fazal Ijaz6.
Abstract
Cloud providers create a vendor-locked-in environment by offering proprietary and non-standard APIs, resulting in a lack of interoperability and portability among clouds. To overcome this deterrent, solutions must be developed to exploit multiple clouds efficaciously. This paper proposes a middleware platform to mitigate the application portability issue among clouds. A literature review is also conducted to analyze the solutions for application portability. The middleware allows an application to be ported on various platform-as-a-service (PaaS) clouds and supports deploying different services of an application on disparate clouds. The efficiency of the abstraction layer is validated by experimentation on an application that uses the message queue, Binary Large Objects (BLOB), email, and short message service (SMS) services of various clouds via the proposed middleware against the same application using these services via their native code. The experimental results show that adding this middleware mildly affects the latency, but it dramatically reduces the developer's overhead of implementing each service for different clouds to make it portable.Entities:
Keywords: middleware; multi-clouds; platform as a service; platform services; vendor lock-in
Mesh:
Year: 2022 PMID: 35808508 PMCID: PMC9269862 DOI: 10.3390/s22135013
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.847
Comparative analysis of solutions for application portability.
| Reference | Approach | Focused | Technique Followed | Platforms Used | Tools Used for Implementation | Work Done |
|---|---|---|---|---|---|---|
| [ | 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. |
| [ | Cloud to cloud | DevOps automation | Unified interface and adapters | Cloud Foundry, | RESTful API | As a result of this article, the user may easily select the best cloud platform and manage and deploy cloud applications across several platforms. |
| [ | 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. |
| [ | 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. |
| [ | Hybrid clouds | Flexibility of choosing a platform | 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). |
| [ | Hybrid clouds | NoSQL | Middleware (uniform API) | JBoss AS Cluster, GAE, RedHat, Openshift | JAVA APIs | Using middleware architecture, this study proposes a method for enabling hybrid cloud environments. |
| [ | 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. |
| [ | 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. |
| [ | 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. |
| [ | Cloud to cloud | Integration of applications at PaaS level | Semantic and model-driven | - | Web | The semantic technologies presented in this study serve as the foundation for a sophisticated application interoperability language. |
| [ | 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. |
| [ | 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. |
| [ | 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. |
| [ | 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. |
| [ | Cross-cloud | Multi-cloud | 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. |
| [ | Cross-cloud, cloud to cloud | On-demand | 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. |
| [ | 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. |
| [ | 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. |
| [ | 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. |
| [ | Cloud to cloud | Customer resource management (CRM) software applications | MDE and DSL | - | AHEAD | DSkyL, an Eclipse plugin that uses MDE for the building of customer relationship management (CRM) SaaS applications, is the subject of this publication. |
| [ | 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. |
| [ | Cross-cloud | Email, message queue, payment service | MDE (template-based approach) and code generation | Google, | Eclipse | 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. |
| [ | 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. |
| [ | 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. |
| [ | Cloud to cloud | SQL, BLOB, NoSQL, | 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. |
| [ | Hybrid and multi-cloud | BLOB storage service | MDE and adaptation | Microsoft Azure and Amazon S3 (Simple Storage Service) | Java, UML, XML, ATL, | To generate platform-specific applications, the MULTICLAPP framework contains a transformation mechanism for mapping cloud artifacts to the target platforms. |
| [ | Cloud to cloud, legacy to cloud | REST | 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. |
Figure 1Architecture diagram of the proposed middleware.
Figure 2Class diagram for proposed methodology.
Values of latency times. Values of latency times for BLOB storage and message queue service.
| 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 | |||||
Values of the Latency Times for Email and SMS service.
| 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 | |||
The values of the latency times mainly depended on the user’s network speed, location of the cloud data center, and configuration of the server where the application was hosted.
Figure 3Performance overhead of BLOB storage service and message queue service.
Figure 4Performance overheads of email service and SMS service.
Figure 5Cloud-to-cloud scenario.
Figure 6Multi-cloud scenario.
Figure 7Hybrid cloud scenario.