Multi-cloud computing is a promising paradigm to support very large scale world wide distributed applications. Multi-cloud computing is the usage of multiple, independent cloud environments, which assumed no priori agreement between cloud providers or third party. However, multi-cloud computing has to face several key challenges such as portability, provisioning, elasticity, and high availability. Developers will not only have to deploy applications to a specific cloud, but will also have to consider application portability from one cloud to another, and to deploy distributed applications spanning multiple clouds. This article presents soCloud a service-oriented component-based Platform as a Service for managing portability, elasticity, provisioning, and high availability across multiple clouds. soCloud is based on the OASIS Service Component Architecture standard in order to address portability. soCloud provides services for managing provisioning, elasticity, and high availability across multiple clouds. soCloud has been deployed and evaluated on top of ten existing cloud providers: Windows Azure, DELL KACE, Amazon EC2, CloudBees, OpenShift, dotCloud, Jelastic, Heroku, Appfog, and an Eucalyptus private cloud.
Portability approaches can be classified into three categories - @cite_31 : , and . The authors @cite_32 of mOSAIC deal with portability at IaaS and PaaS levels. mOSAIC provides a component-based programming model with asynchronous communication. However, mOSAIC APIs are not standardized and are complex to put at work in practice. Our soCloud solution deals with portability with an API that runs on existing PaaS and IaaS. soCloud supports both synchronous and asynchronous communications offered by the SCA standard. Moreover, SCA defines an easy way to use portable API. The Cloud4SOA @cite_9 project deals with the portability between PaaS using a semantic approach. soCloud intends to provide portability using an API based on the SCA standard.
@cite_9 @cite_31 @cite_32
1975022484 2115429665 1487382749 112960182
The adoption of the Cloud computing concept and its market development are nowadays hindered by the problem of application, data and service portability between Clouds. Open application programming interfaces, standards and protocols, as well as their early integration in the software stack of the new technological offers, are the key elements towards a widely accepted solution and the basic requirements for the further development of Cloud applications. An approach for a new set of APIs for Cloud application development is discussed in this paper from the point of view of portability. The first available, proof-of-the-concept, prototype implementation of the proposed API is integrated in a new open-source deployable Cloudware, namely mOSAIC, designed to deal with multiple Cloud usage scenarios and providing further solutions for portability beyond the API. This paper introduces AC, a set of language constructs for composable asynchronous IO in native languages such as C C++. Unlike traditional synchronous IO interfaces, AC lets a thread issue multiple IO requests so that they can be serviced concurrently, and so that long-latency operations can be overlapped with computation. Unlike traditional asynchronous IO interfaces, AC retains a sequential style of programming without requiring code to use multiple threads, and without requiring code to be "stack-ripped" into chains of callbacks. AC provides an "async" statement to identify opportunities for IO operations to be issued concurrently, a "do..finish" block that waits until any enclosed "async" work is complete, and a "cancel" statement that requests cancellation of unfinished IO within an enclosing "do..finish". We give an operational semantics for a core language. We describe and evaluate implementations that are integrated with message passing on the Barrelfish research OS, and integrated with asynchronous file and network IO on Microsoft Windows. We show that AC offers comparable performance to existing C C++ interfaces for asynchronous IO, while providing a simpler programming model. Byzantine fault-tolerant storage systems can provide high availability in hazardous environments, but the redundant servers they require increase software development and hardware costs. In order to minimize the number of servers required to implement fault-tolerant storage services, we develop a new algorithm that uses a "Listeners" pattern of network communication to detect and resolve ordering ambiguities created by concurrent accesses to the system. Our protocol requires 3f + 1 servers to tolerate up to f Byzantine faults--f fewer than the 4f + 1 required by existing protocols for non-self-verifying data. In addition, SBQ-L provides atomic consistency semantics, which is stronger than the regular or pseudo-atomic semantics provided by these existing protocols. We show that this protocol is optimal in the number of servers-- any protocol that provides safe semantics or stronger requires at least 3f + 1 servers to tolerate f Byzantine faults in an asynchronous system. Finally, we examine a non-confirmable writes variation of the SBQ-L protocol where a client cannot determine when its writes complete. We show that SBQ-L with non-confirmable writes provides regular semantics with 2f + 1 servers and that this number of servers is minimal. Cloud Platform as a Service (PaaS) is a novel, rapidly growing segment in the Cloud computing market. However, the diversity and heterogeneity of today’s existing PaaS offerings raises several interoperability challenges. This introduces adoption barriers due to the lock-in issues that prevent the portability of data and applications from one PaaS to another, “locking” software developers to the first provider they use. This paper introduces the Cloud4SOA solution, a scalable approach to semantically interconnect heterogeneous PaaS offerings across different Cloud providers that share the same technology. The design of the Cloud4SOA solution, extensively presented in this work, comprises of a set of interlinked collaborating software components and models to provide developers and platform providers with a number of core capabilities: matchmaking, management, monitoring and migration of applications. The paper concludes with the presentation of a proof-of-concept implementation of the Cloud4SOA system based on real-life business scenarios.