Article Preview
Top1. Introduction
Service-Oriented Architecture (SOA) emerged in the late 90s, introducing Web services as a new means for delivering software over a network. Nowadays, it provides many opportunities for businesses to automate their processes, by providing services to either end-user applications or to other services distributed in a network, via published and discoverable interfaces. The success of many Web service related projects has shown that existing technologies enables implementing a true SOA. The evolution of Web services indicates that they are moving beyond the simple exchange of information to the concept of combining existing and new applications in order to provide more complex Service-based Applications (SBAs). Consequently, businesses will be able to create customizable composite SBAs, also integrating back-end and older technology systems found in local or remote applications.
With the advent of the new century a number of additional pieces of the computing “puzzle” fell into place to complement SOA and reflect the new technological. Cloud computing has emerged as a new paradigm for delivering “as- a-service” offerings to the end users: (i) Software-as-a-Service (SaaS) is the software delivery model adopted in Cloud computing, where Web services are made available to users on demand via the Internet from a Cloud provider, (ii) Platform-as- a-Service (PaaS) provides the platform to the application owners to deploy their applications on, and (iii) Infrastructure-as-a-Service (IaaS) is a resource provisioning model allowing Cloud providers to outsource equipment, i.e. Virtual Machines (VMs), needed by SaaS and PaaS.
Cloud computing is a rapidly emerging paradigm offering virtualized infrastructures for developing applications. Its adoption in the Service Oriented Architecture (SOA) world is increasing; enterprises acknowledge its flexibility and elasticity in deploying and provisioning their services by choosing the most suitable offerings of Cloud providers at all Cloud layers (IaaS, PaaS and SaaS). In addition, as developers try to optimize their application deployment cost and performance, they may also deploy application parts redundantly on different VMs that may be offered by different providers. The main benefits of multi-Cloud deployment are (Baryannis, et al., 2013): (i) different resource requirements are better satisfied by different Cloud providers, offering special features (e.g., SSD drives, dynamically configurable VMs), (ii) the deployment cost is optimized exploiting the Cloud providers’ variant cost policies, (iii) cross-talk components are deployed on the same geographical zone or even VM to minimize communication overhead.
Furthermore, while the deployment of applications over multiple, heterogeneous Cloud providers offers more flexibility, certainly not all applications are expected to benefit from it: For example, applications whose different resources exhibit significant cross-talk could suffer from excessive Internet charges as well as performance issues (high latency, low bandwidth across Cloud providers). On the other hand, decomposing complex applications at increasingly coarser boundaries may eventually reach the service interfaces between organizations. We thus believe that one needs to make a careful decomposition of application components, at a lower level than the service interfaces between organizations but higher than software component interfaces involving tightly-coupled. Reasoning about effective Multi-Cloud deployment at this level requires capturing component dependencies in application models. It is imperative that such distributed hosting environments, where multiple Clouds produce many events across functional layers, exhibit efficient cross-layer monitoring and adaptation mechanisms combining such events and mapping them to suitable adaptation strategies. In (Zeginis, Kritikos, Garefalakis, Konsolaki, Magoutis, & Plexousakis, 2012) the need for cross-layer adaptation is thoroughly investigated. Current techniques are mainly fragmented by considering a single SBA layer, while the few cross-layer ones (Popescu, Staikopoulos, Liu, Brogi, & Clarke, 2010) (Zengin, Marconi, & Pistore, 2011) do not consider multi-Cloud aspects. Thus, the need for a cross-layer and multi-Cloud monitoring and adaptation framework emerges.