QoS aware services mashup model for cloud computing applications

Purpose: With the popularity of cloud computing, cloud services have become to be application programming platform where users can create new applications mashup(composing) the functionality offered by others. By composing of distributed, cloud services dynamically to provide more complex tasks, services mashup provides an attractive way for building large-scale Internet applications. One of the challenging issues of cloud services mashup is how to find service paths to route the service instances provider through while meeting the applications’ resource requirements so that the QoS constraints are satisfied. However, QoS aware service routing problem is typically NP-hard. The purpose of this paper is to propose a QoS Aware Services Mashup(QASM) model to solve this problem more effectively. Design/methodology/approach: In this paper, we focus on the QoS aware services selection problem in cloud services mashup, for example, given the user service composition requirements and their QoS constraint descriptions, how to select the required service instances and route the data flows through these instances so that the QoS requirements are satisfied. We design a heuristic algorithm to find service paths to route the data flows through while meeting the applications’ resource requirements and specific QoS constraints. Findings: This study propose a QoS Aware Services Mashup(QASM) model to solve this problem more effectively. Simulations show that QASM can achieve desired QoS assurances as well as load balancing in cloud services environment. Research limitations/implications: The number of mashup platforms and research works in the survey is limited. Furthermore, mashup platforms are continuously updated, thus some


Introduction
The topic of cloud computing is gaining more and more attention in the service research community.Recently, Cloud technologies are emerging as infrastructure services for provisioning computing and storage resources, and gradually evolving into the general IT resources provisioning (Broberg, Buyya & Tari, 2009).Infrastructure as a cloud service refers to the sharing of service resources services, typically using virtualization technology.
Infrastructure-as-a-service (IaaS) is one of the three basic service layers of cloud computing (Figure 1), in which on-demand virtualized computing resources are provided to the customer.
Computing and storage resources are sold on-demand with limited by the customers, and consumption is readily scalable to accommodate heterogeneous user requirements.IaaS typically means buying or renting your computer power and disk space from an external service provider.This option allows you access through a private network or over the internet.The service provider maintains the physical computer hardware including CPU processing, memory usage, data storage and network connectivity.These resources can easily be scaled up when on-demand increases, and are typically charged for on a per-pay-use basis.Platform as a Service (PaaS), this service lies on the middle layer, is the encapsulation of a development environment abstraction and the packaging of a payload of services which developers can build and deploy customer application.Service approach (SaaS) is at the highest, most mature layer and features a complete application offered as a service and demand, rather than a traditional, on-premises software.SaaS made available on a one-to-many basis over a network such as the Internet.The service providers are beginning to leverage their core competencies in so-called service value networks (SVNs) in order to jointly offer complex services (Buyya, Yeo & Venugopal, 2008).Meanwhile, SaaS brings a promising technique to create value-added business applications composed by dynamically selected "Internet of individual services".Analogous to complex products, services will be composed of several modules provided by different supply chain partners.Therefore, research on cloud services brings a promising technique to create value-added business applications composed by dynamically selected individual cloud services.This technology is so-called service mashup.Mashup is a Web-based network resource that composes existing services resources, be it content, data or application functionality, from more than one resource in enterprise environments by empowering the actual end-users to create and adapt individual information centric and situational applications.In internet there are maybe many available web services with various QoS (Quality of Service) providing the same functionality specific to a specific task.So a selection needs to be made.Therefore services mashup have to search for an optimal set of services to construct a composite service and result in a best QoS, under user's QoS constraints and resource requirements.And how to construct the cloud services mashup model is the main research subject of the paper.In this paper, we focus on the QoS aware services selection problem in cloud services mashup, for example, given the user service composition requirements and their QoS constraint descriptions, how to select the required service instances and route the data flows through these instances so that the QoS requirements are satisfied.We design a heuristic algorithm to find service paths to route the data flows through while meeting the applications' resource requirements and specific QoS constraints.The rest of the paper is organized as follows.We introduce the cloud computing system model in Section 2. Section 3presents the design and algorithm of the QoS aware service mashup model, followed by the extensive simulation results, presented in Section 4. Finally, we conclude this paper in Section 5.

Cloud Computing System Model
This section describes the cloud computing system model.First, we focus on cloud services mashup with QoS aware for Internet/Intranet-scale cloud computing systems.Then, we present the overview of the QoS aware services mashup.

QoS aware Services Mashup for Cloud Computing System
The term mashup originates from the practice of mixing song samples from two or more sources to produce a new sound track.Moreover, mashup stems from the emphasis on interactive user participation manner in which they aggregate and composite.Services mashup are websites or applications that combine service from more than one source into an integrated application.
Based on the concept of services mashup in the Cloud Services environment, mashup provides flexible and dynamic services with rich experience.This technology also enables a dynamic form of service reusability in contrast to the traditional method of static "cut & paste" reusability.
However, since mashup involves the aggregation of another party's instances into some new service or application, we will not deal with the copy right problem.We assume that the service aggregation model always chooses service instances that the user is authorized to use.
The bottom layer of cloud computing system contains the actual Web resources (Figure 2), be they content, data or application functionality.Each Web-based resource can be addressed by a Universal Resource Identifier (URI) giving browsers, mobile devices, and server applications alike accessibility to those resources (i.e.multi-channeling).The resources themselves are sourced via a well-defined public interface, the so-called Application Programming Interface (API) (Cahon, Melab & Talbi, 2004).APIs encapsulate the actual implementation as separate from the specification and allow Web-based resources to be loosely coupled.In this sense, the underlying resources are used as core building blocks to compose individual applications on top of existing resources.Being resources based and sourced via public APIs, gadgets (also known as widgets) provide application domain functions or information-specific functions (Chu, Nadiminti, Jin, Venugopal & Buyya, 2007).They are responsible for providing graphics, simple and efficient user interaction mechanisms which put a face to the resources and abstract from the technical description (functional and non-functional) of the Web-based resources.By assembling and composing a collection of gadgets stored in a catalogue or repository, knowledge workers are able to define the behavior of the actual application according to their individual needs, creating a composite application as a mashup.As illustrated in the Figure 2, the composition takes place both in the resource layer (piping) and in the gadget (wiring) layer according to the enterprise mashup stack.Consequently, a mashup platform is a Web based tool that allows the creation of mashups by piping resources into gadgets and wiring gadgets together.Users access the services through a mashup platform of their choice.
The mashup platforms are connected via APIs to the mashup integration services.To use the services, the users have to identify themselves against the user access control service; this service is connected to a user management service, which controls the users and their settings.
All data coming from the users go through a translation engine to unify the data objects and protocols, so that different mashup platforms can be integrated.The translated data is forwarded to the routing engine, which is the core of them as hub integration services.The routing engine takes care of processing the inputs received from the mashup platforms and forwarding them to the right recipient; the routing is the key part of the on-demand services mashup layer.It tackles the following two issues: (1) The composed service path must be QoS consistent which means that the input QoS requirements of service component must be "satisfied" by the output QoS of its predecessor; (2) If multiple QoS consistent service paths exist, the routing engine should choose the one which has the minimum aggregated resource requirements so that the overall workload of a cloud computing system is minimized.The routing engine can be configured through an API.To simplify this, a gadget could be provided for the end-user.The routing engine is also connected to a message queue via an API.In this paper, we propose a QoS Aware Services Mashup (QASM) model for choosing and composing different cloud services into a service path satisfying the user's quality requirements.

Overview of the QoS Aware Services Mashup
QoS aware services mashup has drawn much attention in recent years.Some works have been carried out on service selection algorithms for composing services with multiple QoS constraints to find an optimal solution, which is a NP-complete problem (Kirley & Stewart, 2007) Currently, many experts and scholars do research on the problem of composed service routing focuses on how to find feasible and optimal paths that satisfy QoS requirements.Based on these forms QoS routing is broadly classified into two categories.MCP Routing (Multiple constrained path) (Wang & Crowcroft, 1996) and MCOP Routing (Multiple constrained optimal path) (Feng, Makki, Pissinou & Doulgeris, 2002).Where In MCP, the target is to find the feasible path satisfying multiple constraints, where as MCOP is a special case of MCP problem in which feasible path is found according to one of the constraints.Then from those optimal path is computed according to other constraint.Restricted Shortest Path (RSP) is a type of MCOP problem (Korkmaz & Krunz, 2001).Among the entire MCP problems RSP has received most attention.In general, MCP and MCOP both are NP-complete in nature that cannot be exactly solved in polynomial time.Hence the objective is to find the technique to reduce the computational complexity.To implement these technique, well known shortest path algorithms e.g.Dijkstra algorithm had been used by most of the researchers (Wang & Crowcroft, 1996;Kirley & Stewart, 2007).In this paper, based on the above ideas, proposing the Dijkstra-like algorithm of modeling and choosing as well as composing different cloud services into a service path satisfying the user's quality requirements.

Formal Definition and Problem
In order to describe the problem of services mashup in the cloud computing, we first present the basic definition used in the rest of this paper.where is the service link on the edge ( ) .

On-demand services mashup
This section describes the QASM model.First, we present a scenario about finance-on-demand and content retrieval application.Then, we introduce the QASM model for services mashup application.
The scenario consists of a service provider who wants to offer a service mashup that optimizes a given portfolio.This finance service is based on a bundle of sub-services retrieved from decentralized subservice providers (Figure 3(a)).Suppose there are several sub-service providers which are competitors for each type of service such as computing, storage and content.
In this scenario, computing is provided by either Amazon EC2 or IBM Blue Cloud (Yu & Lin, 2004).
Storage is provided by Amazon S3, Google G Drive, Microsoft SQL Azure, or IBM Remote Data Protection (Foster, Kesselman, Nick & Tuecke, 2004).Finance content can be obtained by either Xignite or Strik Iron which offer services that provide historical and real time finance data such as stock prices, currency rates or various indices.In order to provide the functionality of optimizing the end user's services portfolios, the final result generated by the service mashup is a QoS consistent service path satisfying the end user's QoS constraints and also has the minimum aggregated resource requirements.
The QASM model includes three mapping steps, illustrated by Figure 3 (a).For each end user request, the abstract services first maps(mapping-1) it to a composite service template, and then maps the template to an instantiated service path.Figure 3(b) start from the source service; check the QoS consistency between the current examined service instance and all of its predecessors on the service path.If the QoS constraints (equation ( 1) and ( 2)) predecessor satisfies the current examined service, then add a directed edge from the current examined service to the predecessor.We assume that the sink service is set as the end user's QoS requirements.Similarly, we define the term bandwidth ratio (Equation ( 4)) for the service link The mapping from the composite service template to an instantiated service path (mapping-2) is constrained by QoS constraints (e.g., availability, response time) and resource availability conditions (e.g., computing, network transport).The "cost value" on the edge ( ) . is defined using Equation (1) ~ (4).Intuitively, the ratio ) represents any of the above attributes and R is the total value) represents the normalized cost of selecting a portion of the service path in terms of one specific factor (e.g., QoS constraints or resource requirements).For each link in the cloud computing system, we also use QoS constraints or resource conditions to represent it QoS attributes.For any path p from the entrance point to exit point, the following cost function is used to evaluate the feasible path: Where )is the summation of i-th dimension QoS attribute along p, is the total constraint of i-th dimension QoS value.
[ ] denotes the weight of each QoS attribute which reflects their importance.The path with the minimum cost function value Min(C(p)) has the biggest possibility of being a feasible path.Run the Dijkstra-like algorithm to find the shortest path, which is returned as the result of the QoS aware services mashup, illustrated by Figure 4(thick line).

Performance Evaluation
In this section, we evaluate the performance of the QASM model by simulation.We first describe our evaluation methodology.Then we present and analyze the simulation results.
We simulated a large-scale cloud computing system of 104service providers.Throughput is defined as the number of setup sessions over total number of all requests.A request is setup if there are enough resources (i.e.CPU, bandwidth) for constructing the service path, ignoring its' QoS conditions.Higher throughput represents better load balancing in the cloud computing system.
Figure 5 and Figure 6 show the simulation results about the deviation rates of two QoS attributes: availability and response time, respectively.In Figure 5, the X axis represents different request rate, calculated by the number of service mashup requests per minute.The range of request rate is selected to reflect different system workload put on the cloud computing system.The Y axis shows the average QoS deviation rate for the availability attribute, achieved by the fixed, random and our QASM algorithm.The fixed algorithm always picks the same service path for a distributed application delivery and chooses the dedicated service providers to instantiate the service path.
The fixed algorithm actually represents the conventional client-server systems.The random algorithm randomly chooses service instances to compose the service path.QASM algorithm achieved much lower response time than fixed and random.Both simulation results prove that QASM tolerates topological variation best and uniformly achieves the highest QoS.
Figure 7 shows the result about throughput.Throughput is a metric of load balancing.We can see from Figure 7 that random algorithm performs the worst in load balancing as it has the lowest throughput.We observe that the throughput of QASM is consistently higher than those of fixed and random.The former may be higher than the latter two as much as 10%and 45%, respectively.
Figure 7. Throughput under different system load (load balancing) In all of the above experiments, both simulation results prove that QASM tolerates topological variation best and uniformly achieves the highest throughput.The reason is that when QASM selects among candidate service providers for instantiating a service instance, it takes the service providers' average uptimes into account but random and fixed do not.

Conclusions
One of the challenging issues of cloud services mashup is how to find service paths and route the data flows through so that the resource requirements and QoS constraints of the applications are satisfied.In this paper, we present a QASM model for providing high performance distributed applications in the cloud computing systems.The major contributions of the paper are as follows: (1) solve two key problems, service composition and peer selection in an integrated service aggregation model; (2) present an on-demand service composition algorithm which generates a quality consistent service path with minimum aggregated resource requirements while satisfying the user's QoS requirements.We have implemented a simulation test and our initial simulation results illustrate the effectiveness of the proposed model and algorithm.In the future, we will implement a prototype of our model and test it in the real Internet environment.We will also investigate how to include other desirable system properties such as stability and fault tolerance into our model.

Figure 1 .
Figure 1.The basic cloud computing service

Figure 3 .
Figure 3. Illustration of on-demand finance service

Figure 5 .
Figure 5. Average availability QoS deviation rate under different system load

Figure 6 .
Figure 6.Average response time QoS deviation rate under different system load Abstract service has function descriptions without implementation and standard service interfaces across different service providers.The user can directly name the requested distributed application, such as video-on-demand (e.g., video server  computation  storage  content  video display).An abstract service is corresponding to a directed acyclic graph (DAG) of workflow tasks.Service instances are concrete services published by service providers.They could give the function implementation specified by abstract services.And some service instances may have the same function, but different QoS of all candidate service instances, according to the abstract service path.
Definition 1: (Abstract Service).Definition 3: (Service Function Graph).Constructing abstract services as a workflow to fulfill user's requirement in functionality will obtain a service function graph.In the service function graph, there are service portals that serve as entrance/exit points.Definition 4: (QoS aware Services Mashup).Transform the service function graph into a "candidate" graph and add "cost value" to the edges using an integrated metric which composes multiple QoS constraints (e.g.response time, availability) and resource requirements (e.g.CPU ratio and bandwidth ratio).The end user request speciation is represented by Figure 4. QASM generate the consistent resource shortest service path Thus, the final result generated by the QASM model is a QoS consistent service path satisfying the end user's QoS constraints and also has the minimum aggregated resource requirements.The concrete computation process of our QASM algorithm is expressed in the following: The metrics we use for evaluating the QoS include the deviation rates of two QoS attributes: availability and response time, respectively.The QoS deviation rate is measured by the ratio of the requests during which QoS deviation happens over the total requests.For each request, the QoS deviation is said to happen if the measured average QoS attribute values (i.e., availability, response time) is worse than that specified in the .The other metric we use to evaluating the load balancing is the throughput.