Integration of Qos Aspects in the Cloud Service Research and Selection System

—Cloud Computing is a business model revolution more than a technological one. It capitalized on various technologies that have proved themselves and reshaped the use of computers by replacing their local use by a centralized one where shared resources are stored and managed by a third-party in a way transparent to end-users. With this new use came new needs and one of them is the need to search through Cloud services and select the ones that meet certain requirements. To address this need, we have developed, in a previous work, the Cloud Service Research and Selection System (CSRSS) which aims to allow Cloud users to search through Cloud services in the database and find the ones that match their requirements. It is based on the Skyline and ELECTRE IS. In this paper, we improve the system by introducing 7 new dimensions related to QoS constraints. Our work's main contribution is conceiving an Agent that uses both the Skyline and an outranking method, called ELECTREIsSkyline, to determine which Cloud services meet better the users' requirements while respecting QoS properties. We programmed and tested this method for a total of 10 dimensions and for 50 000 cloud services. The first results are very promising and show the effectiveness of our approach.


INTRODUCTION
Cloud Computing refers to software, hardware and datacenters offered as a service over a network and remotely accessible via various devices such as computers, PDAs, smart phones, etc.Although it is a rather new computing paradigm that appeared in the last decade, Cloud Computing capitalizes on concepts that have been proven, such as Virtualization [1], Distributed Computing [2], Grid Computing [3], Web Services [4], Service-Oriented Architecture [5], etc.
One of the early definitions of Cloud Computing was proposed by Wang et al. [6], who defined Cloud Computing as "a set of network enabled services, providing scalable, QoS guaranteed, normally personalized, inexpensive computing platforms on demand, which could be accessed in a simple and pervasive way".
Another definition based on the concepts Cloud Computing is built on was proposed by Vouk in [7], stating that Cloud Computing "embraces cyber infrastructure and builds upon decades of research in virtualization, distributed computing, grid computing, utility computing, and, more recently, networking, web and software services.It implies a serviceoriented architecture, reduced information technology overhead for the end-user, greater flexibility, reduced total cost of ownership, on-demand services and many other things".
In [8], Cloud Computing is defined as being a "type of parallel and distributed system consisting of a collection of interconnected and virtualized computers that are dynamically provisioned and presented as one or more unified computing resources based on service-level agreements established through negotiation between the service provider and consumers".
The NIST [9] defines Cloud Computing as being "a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction".[3] where Cloud Computing is considered as "a large-scale distributed computing paradigm that is driven by economies of scale, in which a pool of abstracted, virtualized, dynamically-scalable, managed computing power, storage, platforms, and services are delivered on demand to external customers over the Internet".

Foster et al. propose another definition in
Though there are many attempted definitions of Cloud Computing, they all agree that every Cloud system has the following essential characteristics:  The use of virtualization to offer a set of shared physical and virtual resources such as networks, servers, storage space, bandwidth, applications…;  Dynamic configurability that makes it easy to expand or decrease depending on the user's needs, without affecting the level of reliability and security;  Accessibility via a network, usually the Internet, from various machines (computers, smart phones, tablets, PDAs…) using standard APIs;  The use of specific measure systems to control and optimize the use of resources and to offer a billing based on what was consumed, without surplus or need of managing the underlying infrastructure.
The services reachable via Cloud may be divided into three categories [10]: Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS).Each one of these categories has specific characteristics that make it more adapted to certain user groups.For instance, enterprises www.ijacsa.thesai.orgwill more likely purchase IaaS and PaaS services, while individuals will be more inclined to use SaaS services.
SaaS [11] allows users to remotely access applications that run in the Cloud's infrastructure by using thin or thick clients.Thus, there is no need to invest in an infrastructure or to buy software licenses.For providers, costs of installation, hosting and maintenance are optimized since many users access to the same application.Examples of SaaS include Google Drive [12] (formerly Google Docs) and Salesforce CRM [13].
PaaS [14] offers a software layer or a development environment as a service on which users will build and deploy their own applications.That way, users won't need to manage the infrastructure while keeping control of the deployed applications and configuring the hosting environment.Examples of PaaS include Salesforce's Force.com[15], Google App Engine [16] and Microsoft Windows Azure [17].
IaaS [18] provides as a service basic storage and computing resources such as servers, network equipments, data warehouses… These resources will be used to run users' own applications.Usually, IaaS satisfies best the end-users' needs of interoperability and portability [19] because they choose the various blocks that compose the infrastructure used.Examples of IaaS include Amazon Elastic Compute Cloud [20] and Microsoft SQL Azure [21].
In addition to these three main models, many others have been proposed such as Hardware as a Service [6], Communication as a Service [22], Network as a Service [23], Data as a Service [22], Workplace as a Service [24], Security as a service [25], Business Process as a service [26], Identity and Policy Management as a Service [27], STorage as a Service [28], Cluster as a Service [29], etc.
Cloud services can be deployed in various models [30], depending on the use case, the provider's business model...The most widespread deployment models are Public, Private, Community and Hybrid.
A Public Cloud [30] is an open Cloud provided by an organization to the general public.It can be accessed via a network, usually the Internet.However, the fact that the Cloud is public doesn't imply that services are offered for free or that the data exchanged by its means is not confidential.
A Private Cloud [30] is offered to the sole use of one organization that either manages it or delegates its management to a third-party.The main advantage of this deployment model is that there are no limitations regarding bandwidth or security, since the resources are exclusively used by the organization.
A Community Cloud [19] is a Cloud shared by organizations belonging to the same community.They can manage their Cloud themselves or delegate the chore to a thirdparty.
A Hybrid Cloud [31] contains two or more of the Cloud models cited above interconnected by standard or proprietary technologies.
In addition to these four deployment models, new ones are emerging, like the On-Site Private Cloud [19] and the Special Purpose Cloud [32].
The On-Site Private Cloud is a Cloud intended for the private use of a sole organization, just like the Private Cloud.However, it is hosted by the organization, either in a centralized or distributed way.The security aspect is also managed by the organization.
The Special-Purpose Cloud provides, on top of standard resources, additional methods regarding specific use cases.An example that illustrates this model is Google's App Engine with the specific capacities it offers to document management.
Using a Cloud service presents many advantages to endusers.First, there is a significant cost reduction, since users purchase only the resources they need, without surplus or need to invest in infrastructure or maintenance.There's also the guarantee of instant and uninterrupted access to computing and storage resources to any user who has a network connected machine.In addition to it, users can easily adapt the available resources to their specific needs and can add resources as required.
All these advantages have led to an increase in the use of Cloud Computing.With this increase, many new needs have emerged, among which there is the need to find Cloud services that match the users' requirements.Our contribution is in this research area and consists of a Cloud Services Research and Selection System (CSRSS) based on the Skyline and ELECTRE IS as presented in [35] and [36].
The CSRSS allows users to specify the technical and functional requirements of the cloud services they want to use.To do so, it connects to a database of Cloud services and selects the ones that match the users' requirements while giving them the possibility of getting the optimal value of some of these requirements.
With the CSRSS returning the Cloud services that satisfy best the technical and functional requirements specified by users, our objective now is to address Quality of Service (QoS) requirements to better refine the resulting services by keeping the ones that best satisfy QoS parameters.
Our paper is organized as follows.In the next section we present some related work.In section 3, we present the Cloud Service Research and Selection System (CSRSS) as presented in [36].In section 4, we present QoS aspects and how we integrated them into the CSRS System.In section 5, we present our improved prototype and test results before concluding in section 6.

II. RELATED WORK
The increase use of Cloud Computing has resulted in the emergence of new needs, such as the need of having systems to search and select Cloud services that meet users' requirements.Many works have been carried out to offer new solutions that will help users to choose the Cloud services that answer their needs.It is rather different from the selection of Cloud service components for composition purpose, which is beyond the scope of our research subject.Our main goal is to find Cloud services that best match the users' requirements, not the selection of two or more Cloud services to compose one final Cloud service that will be delivered to users.www.ijacsa.thesai.orgOne of the first works dealing with Cloud services discovery and selection was proposed by Goscinski et al. in [29].It focused on Cloud clusters and used a broker that dynamically matches services and clusters.[37].The algorithm determines the cost and gains of available Cloud services that can be reached via proxy and return those that maximize the gains and minimize the cost.It is done in two steps.In the first step, the proxy selects the available Cloud services following the request sent by the user.In the second step, the algorithm computes the gains and cost of the selected Cloud services and returns the ones that optimize the cost and gains.

Zeng et al. presented a Cloud service selection algorithm in
Kang and Sim presented a Cloud portal with a Cloud service search engine in [38].This system uses the concept of similarity [39] and consults the adopted Cloud ontology to select the Cloud services that match the requirements specified by the user.
Kang and Sim also proposed Cloudle in [40], a Cloud services search engine which main functionalities are query processing, similarity reasoning and rating.Like the portal presented in [38], Cloudle consults a Cloud ontology to compute the similarity between Cloud services and returns a list of results sorted by aggregated similarity.
In [41], Han and Sim presented a Cloud Service Discovery System.It consults a Cloud ontology to compute the similarity between Cloud services and return a list of results matching the user's query.
In the three systems presented above, users specify the requirements that must be satisfied by the Cloud services they are searching for.These requirements can be split into three types, namely functional requirements (category of service), technical requirements (OS, CPU, memory, storage space...) and cost requirements (price and timeslot range).[42] a resource selection service based on Cloud ontology.It generates Virtual Ontologies (Vons) based on virtualized resources and combine them into new resources.Then it computes the similarity between these new resources to determine the ones that meet best the user's requirements.

Yoo et al. presented in
In [43], Zang et al. presented a service matching algorithm and a service composition algorithm.These algorithms search through Cloud services and compute the semantic similarity [39] between them to determine whether two given Cloud services are interoperable.These systems mostly use similarity [39] to determine which Cloud service is the most similar to the user's quest.Thus, they would be better suited for users who want to find Cloud services that are similar to the ones they already know or use.This leaves out users that want to find Cloud services that meet some requirements (service model, provider, bandwidth, latency...) without knowing an existing Cloud services that does meet these requirements.This is why we have thought of replacing similarity with the principle of the Skyline [33].
Using the Skyline allows users to specify the criteria they want to optimize and to get the Cloud services that meet their needs.Thereby, we have developed in [35] a system that enables them to do so and that is based on the principle of the Skyline.We then tried to improve our system by applying outranking methods [34] to the results returned by the Skyline.
There are many works that have used MCDM methods to address the selection of Cloud services.L. Sun et al. conducted a thorough study of Cloud service selection techniques in [44], including MCDM-based techniques such as Analytic Hierarchy Process (AHP) [45], Analytic Network Process (ANP) [46] MAUT [47] and outranking methods [34].
Garg et al. presented a framework for ranking Cloud services based on AHP in [48].They used the metrics that form the Service Measurement Index (SMI) [49] to define the criteria upon which Cloud services are to be evaluated and compared.They chose six criteria which are accountability, agility, assurance, cost, performance, and security.Although this method is interesting, it has only been tested using three Cloud services as an input in one use case, and 1000 providers in the other.[50] an AHP-based approach for the selection of SaaS products Cloud services.The criteria used are functionality, architecture, usability, vendor reputation, and cost.Like the previous one [48], this method has only been tested using three Cloud services (SaaS products).Also, it is only used to compare SaaS Cloud services, leaving out other Cloud services categories.[51] a QoS mapping approach for combining SaaS and IaaS products and then ranking the combined Cloud services for end users.This method is carried out in four mapping steps.First, the users' QoS requirements are mapped to the QoS specifications of available SaaS products.Second, the obtained SaaS products are mapped to the available IaaS products that have the best QoS guarantees.Third, the end-to-end resulting QoS specifications are computed.Finally, AHP is used to rank the combined Cloud services based on the end-to-end QoS specifications obtained.Tests have been carried using four Cloud services and eight QoS criteria.It is also intended to be used for IaaS and SaaS Cloud services only.[52] a Multi-Criteria Comparison Method for Cloud Computing, denoted (MC 2 ) 2 ,that offers a framework for selecting Cloud services using ANP, which is an extension of AHP proposed by Saaty in [46].This framework allows users to select the best adapted IaaS to their needs.Nine criteria are used such as flexibility to change, reliability, security, maturity of the provider…The (MC 2 ) 2 has been implemented as a web application; AOTEAROA.

Menzel et al. present in
Limam and Boutaba proposed in [53] a Cloud service selection approach based on MAUT and aimed at SaaS products.In order to use the MAUT method, the three criteria initially chosen, namely reputation, quality, and cost are reduced to one criterion; feedback.[54] a middleware for the selection of Cloud services using ELECTRE.Like most of the works cited above, the criteria used are QoS related.The middleware uses ELECTRE III to rank the Cloud services according to the www.ijacsa.thesai.orgdegree to which they match the user's requirements and preferences.

Silas et al. presented in
To our knowledge, no work has combined the use of the Skyline operator and ELECTRE.Our motivation to do so in [36] is 1) to capitalize on the results of our first work [35] and refine its results and 2) to minimize the complexity that comes from using ELECTRE alone.Indeed, ELECTRE carries a pairwise comparison to build a decision matrix which size is n x n, n being the number of alternatives.The prior use of the Skyline operator allows making a first filtering of the input, reducing its size up to more than 40%.Thus, the alternatives that are contained in the Skyline form the input to the ELECTRE algorithm, knowing that the Skyline contains all the interesting alternatives for the user, no matter how they weight their preferences.In other words, we apply ELECTRE to less than 60% of the candidate alternatives, after eliminating the rest using the Skyline operator.
We present the prototype and algorithms of our system, as presented in [36], in the next section.

III. THE CLOUD SERVICE RESEARCH AND SELECTION SYSTEM (CSRSS)
The figure below illustrates the prototype of our CSRS System as presented in [36].It involves the introduction of several agents and consists of a user interface, a user's query processing agent, a pre-Skyline processing agent, a cloud services research and selection agent, an ELECTRE IS agent and a database.The user's interface allows users to interact with the system by selecting the requirements that the Cloud services must meet and view the returned results.It also allows the users to add Cloud services by filling in their attributes such as the name, the provider, the bandwidth, the OS, etc.We think that these requirements are the common ground to existing and upcoming Cloud ontologies [22,38,40,41,42,55].The user's query processing agent extracts the requirements contained in the user's request and sets them into two categories:  Requirements that are fixed, such as the provider's name, the service model, the OS…;  Requirements that are to be optimized, such as the price (to be minimized), the bandwidth (to be maximized), etc.These requirements will be used as the Skyline's dimensions.
The Cloud Services Research and Selection Agent (CSRSA) connects to the database and executes a SQL query, which predicates are the fixed requirements returned as a result by the user's query processing, to select all the Cloud services that meet these fixed requirements.
The Pre-Skyline Processing Agent (PSPA) prepares the results extracted from the database by the CSRSA for the running of the Skyline operator.The Cloud services returned and their dimensions are stored as tuples.The dimensions used are the user's requirements that are not "fixed", and thus are to be optimized, such as price (to be minimized), bandwidth (to be maximized), network latency (to be minimized)… The CSRSA uses the Skyline [33], on the set of tuples returned by the PSPA, to determine which Cloud services are in the Skyline and meet the user's preferences.
The Skyline was introduced to meet the needs of users who want to select a set of points that optimize their requirements from a large set of data.Each point contained in the Skyline is not dominated by any other point, thus being better than all the points not contained in the Skyline for at least one criterion, and being equal to or better than them for all the other criteria.A criterion used by the Skyline is called dimension.For example, a user wants to rent a car at the minimum price with the maximum engine power.In this case, we have two dimensions upon which the selection is to be made: the first dimension is the price; the second is the engine power.The Skyline algorithm will compute the Skyline, which will contain all the cars that are not dominated by any other car.In other words, for each car returned in the Skyline, there is no car outside the Skyline that is less expensive and has more engine power at the same.Thus, a user will find their favorite car in the Skyline, no matter how they weight their preferences toward the dimensions.
In our case, using the Skyline allows the user to specify the criteria they want to optimize and to get the Cloud services that are not dominated by any other Cloud service, that is to say Cloud services for which there exists no better Cloud service for all the criteria specified.
There are two major ways to compute the Skyline.One is to extend existing database systems with the logical Skyline operator.The other is to use algorithms.Many algorithms may be used such as the Block-Nested Loops algorithm (BNL) [33], the Divide and Conquer algorithm (D&C) [56,57], the B-Tree algorithm [58], etc.We used the BNL algorithm (Fig. 2) because it is efficient, simple to implement.It has a complexity of O(n 2 ) in the worst cases and O(n) in the best.
As presented in [36], the BNL algorithm consists of comparing tuples among them to determine the ones that are not dominated by any other.It is done by keeping dominating tuples in the main memory and by comparing each new tuple to them.In each iteration, a new tuple is read from the input list of tuples.If the new tuple is dominated by one of the existing tuples in the main memory, it is eliminated.If it dominates a tuple in the main memory, the dominated tuple is eliminated, and the new tuple is added to the main memory to be compared to future tuples.If the new tuple is incomparable, which means that it is neither dominated by nor dominating any tuple in the main memory, it is added to the main memory.At the end of all iterations, only tuples that are not dominated by any other tuple are kept in the main memory.These tuples form the Skyline.The function Compare (p, q, L D ) (Fig. 2) as presented in [36] compares the tuples p and q in all the dimensions in the list L D .The result returned varies between 0 (when q dominates p) and the number of dimensions n (when p dominates q).Any other result in this range means that p and q are not comparable.All the tuples contained in the output list are incomparable among them.This means, if we take any given two tuples, each one would be at least better than the other in some dimensions, and at least worse in others.
Algorithm 1: Algorithm of the Skyline Agent as presented in [35] The Skyline doesn't allow arbitrating between incomparable tuples.This comes from the fact that all dimensions are considered to have the same importance, which is not always true to users.To overcome this limitation, we thought of using outranking methods, more specifically ELECTRE methods.
As seen previously, the Cloud Service Research and Selection Agent (noted CSRSA) uses the Skyline on the set of tuples returned by the Pre-Skyline Processing Agent (noted PSPA) to determine which Cloud services are in the Skyline and meet the user's preferences.To do so, the CSRSA uses the BNL algorithm as showed in Fig. 2. In order to refine the results returned, we adjusted our prototype (Fig. 3) by adding an ELECTRE IS agent.This agent uses the algorithm presented in Fig. 4 to apply the ELECTRE IS to the Skyline list returned by the CSRSA.
The Skyline list becomes the input list of alternatives on which the ELECTRE IS method is applied.Thus, a pairwise comparison is made and the concordance and veto indexes are determined.If the validating condition is verified, the alternative that is outranked by the other alternative is deleted from the list of the final solution.Thus, the output list contains only the alternatives that are incomparable both to the Skyline and the ELECTRE IS agents.
In the next section we present Cloud related Quality of Service (QoS) requirements and in particular the ones we use as new dimensions/criteria in the CSRS System.www.ijacsa.thesai.orgAlgorithm 2: Algorithm of the ELECTRE IS Agent as presented in [36] IV.QUALITY OF SERVICE As users increasingly turn to Cloud services providers to purchase their services, they are more and more demanding when it comes to Quality of Service (QoS).
QoS is defined as being the "totality of characteristics of a telecommunications service that bear on its ability to satisfy stated and implied needs of the user of the service" [59].
There are many important QoS parameters to take into account when looking for a Cloud service, such as time, cost, reliability, security [60]… The requirements of Cloud users regarding QoS parameters are described in Service-Level Agreements (SLAs) to help providers manage the services contracted and maintain the overall level of quality agreed on with end-users [61].And since Cloud resources are consumed simultaneously by multiple users/tenants, providers have to dynamically allocate Cloud resources among them while guaranteeing the QoS level agreed on for every one of them.So for Cloud users, QoS and SLA are key factors when they select Cloud services.
Measuring the performance of Cloud services not an obvious task.For one part, there is the question of quantifying parameters that are essentially qualitative.Many works have tried to provide a set of QoS parameters that can be used by Cloud users to select the most adapted services.
In [62], Cao et al. present a QoS-assured Cloud Computing architecture to answer QoS-related requests from users.This architecture consists of X layers: physical device and virtual resource, cloud service provision, cloud service management, and multi-agent.The QoS attributes considered are related both to the users and the providers of cloud services.Many attributes were defined, namely response time, cost, availability, reliability and reputation.
In [63], Ferreti et al. propose a middleware architecture to configure, manage and optimize cloud services in accordance with users' QoS requirements such as timeliness, scalability, availability, and security.The proposed architecture integrates three main components, namely dynamic resources configuration, platform monitoring, dispatching and load balancing of requests and resources.The cloud computing environment resulting is labeled "QoS-aware".[64] a QoS-based approach for the selection of cloud services for composition purposes.The aim of this approach is to compose a cloud service that answers the QoS requirements of end-users from multiple composite services provided by different providers.It is done by constructing the composition schema based on the user's request, then selecting the optimal composition plan based on the end-user's QoS requirements.The QoS attributes used are throughput, response time, and cost.

Bouguettaya et al. presented in
In [65], Zheng et al. presented CloudRank, a QoS ranking prediction framework for cloud services that takes into account users' experiences.In this work, QoS attributes are divided in two categories: client-side and server-side.The latter include response time, throughput, failure probability, etc. and are the ones used in CloudRank.It also uses similarity to determine the degree to which the current user is similar to other users in order to predict which Cloud services would be more interesting.
In [66], Nathuji et al. developed Q-Clouds, a control framework that supports QoS-aware cloud environments, as presented in [63].Q-Clouds adapts the allocation of resources to absorb the effect of performance interferences that are bound to happen, since many users share the same resources.This is done while taking into account the QoS requirements of users.
In [67], Serrano et al. address the challenge of QoS and SLAs management in Cloud environment by defining a new Cloud model called SLA Aware Service (SLAaaS) and a new language to describe QoS-oriented cloud SLAs, called CSLA, that is inspired from WSLA (SLA for web services) [68] and SLA for Service Oriented Architecture (SLA@SOI) [69].
CSLA formalizes the SLA between users and providers by translating QoS requirements into clauses combined using Boolean operators.QoS attributes adopted in this work are related to performance, availability, reliability and cost.
Another prominent work is the Service Measurement Index (SMI) developed by the Cloud Service Measurement Initiative Consortium (CSMIC) [49].
Service Measurement Index (SMI)is defined by the CSMIC as being "a set of business-relevant Key Performance Indicators (KPI's) that provide a standardized method for measuring and comparing a business service regardless of whether that service is internally provided or sourced from an outside company".SMI measures performance using six categories (Fig. 4): agility, risk, security, cost, quality, and capability.Each category contains many attributes.www.ijacsa.thesai.org Agility: one of the main reasons why organizations choose to move to the Cloud is to increase their agility in order to quickly adapt to their ever-changing business environment.In order to measure agility, SMI proposed a set of parameters that show how quickly and efficiently providers integrate new capabilities to answer users' evolving needs.We retained from these parameters portability;  Risk: risk is an inherent in IT, the main objective of organizations being not to annihilate it, but to minimize its causes and effects.The main issue for users when choosing a Cloud service provider is verifying the reputation of the latter and making sure they have an efficient risk management strategy.We chose to retain as a parameter the number of risk management certifications the provider has;  Security: moving to the Cloud can be challenging for users when it comes to entrusting their critical data to providers.Many aspects must be addressed, mainly privacy and data This issue is also related to the laws governing the geographical location of data storage.We chose to initially retain data loss as a parameter;  Cost: another main reason why organizations and users move to the Cloud is to optimize their IT-related costs.
With the Cloud being a pay-as-you-go utility, users are guaranteed to pay solely for resources they consume, without surplus or need to invest or manage the underlying infrastructure.We chose to retain the two cost parameters defined by SMI, namely the on-going cost, which is the cost regularly paid by the Cloud tenant in exchange for the resources they use, and the acquisition cost, which is the cost of the changes necessary to move to the Cloud;  Quality: when choosing to move to the Cloud, users usually worry about the quality of the services offered by providers, especially as regards their reliability and availability.This comes from the fact that users will be moving their data out of their control and into that of the provider.We chose to retain as parameters availability and service response time;  Capability: SMI proposes to measure the overall ability of a cloud services provider to satisfy users' requirements by comparing the services offered to standards.We refrained from using a parameter to translate this characteristic since, in our knowledge; there are no unified Cloud standards yet.
Fig. 2. Service Measurement Index (SMI) characteristics [49] As explained above, we have chosen to use one or two parameters in each category.These parameters will be used as additional dimensions for the Skyline and criteria for ELECTRE IS.For each new dimension/criterion, we propose a measurement method.www.ijacsa.thesai.orgIn the next section we present the implementation of the algorithm and its performance along with some screenshots illustrating its execution.

V. EXPERIMENTATION AND RESULTS
The platform we used for the experiments [35] is an HP workstation with a 3.30 GHz processor, 4 GB of main memory, Windows Server 2008 as operating system and MS SQL Server 2008 as DBMS.The algorithm is implemented using ASP.net to obtain a web-based system that can be accessed from any web client anytime the user is connected to the Internet.
The CSRSS start page (Fig. 3) allows the user to either add a new Cloud service to the database or search for Cloud services that match their requirements.If the user chooses to add a new Cloud Service, they are taken to another page (Fig. 4) where they first enter the name of the Cloud service in question so a search can be made to make sure that it doesn't already exist in the database.Afterwards, the user enters the different information such as the Cloud service's provider, model (IaaS, PaaS or SaaS), industry, memory, price… If the user checks the second option (Search through available Cloud Services), they are taken to the CSRSS page (Fig. 5) that allows to make an advanced search through the database and to run the algorithm on the returned result in order to obtain the final refined set of Cloud services.
The user can fill out one or many information about the Cloud service(s) they are searching for.For information such as price, memory, storage space, bandwidth... they can either give a specific value or specify that they are the dimensions to be used when computing the Skyline.For each dimension, the user specifies if it is to be minimized or maximized.They also specify its importance (on a scale from "not important" to "extremely important") that is to be translated into a weight in order to use the ELECTRE IS method.
We worked on the same generated data as in [35].This data consists of 50 000 Cloud services which we completed with the new 7 dimensions described in Table III.We also chose to disregard dimensions that are too oriented for a specific Cloud service model, such as RAM and CPU speed, which are mostly relevant in IaaS environments, for instance.Thus, we obtained a total 10 dimensions/criteria for each cloud service.Dimensions' values are randomly generated within the ranges specified in Table IV hereafter.We executed our program varying the number of dimensions from 1 to10 and the input size from 100 to 50 000 cloud services (Fig. 6).
We also compared the results obtained using ELECTREIsSkyline algorithm with those of using the Skyline algorithm as presented in [35].We did so for an input list consisting of 50 000 Cloud services and varying the number of dimensions from 1 to 10 (Table V and Fig. 7).The use of the ELECTREIsSkyline algorithm proves to be more efficient in determining the cloud services that best match the users' requirements, including QoS requirements.It is due to the fact that users' preferences towards each criterion are taken into account.Thus, dimensions that had the same weight to the Skyline algorithm have different weights in ELECTREIsSkyline, depending on their importance in the decision making process.So, cloud services that were incomparable when using the Skyline become comparable when using ELECTREIsSkyline.The size of the final solution can be reduced to contain only 6% of the input size, returning a total of 3 000 Cloud services from the 50 000 in the input list, while taking into consideration all 10 criteria and their respective weights.However, the final result is highly dependent on the values of the dimensions/criteria in the input size, and the weights attributed by users to these criteria.Also, www.ijacsa.thesai.org it is common that when augmenting the input size, one or more new cloud services prove to be highly efficient and allow eliminating many others, reducing significantly the size of the output.These cloud services are called "killer tuples".On the other hand, it is also common that new cloud services turn out to be incomparable with those contained in the solution list, which contributes to augmenting its size.Thus, the final solution's size is highly depending on the quality of input data and the user's preferences.

VI. CONCLUSION
With many Cloud providers offering their services, Cloud users may be at loss when wanting to choose an adapted cloud service to their needs.To address this issue, we have presented in [35] and [36] the Cloud Service Research and Selection System (CSRSS) that allows users to select cloud services that best suit them by specifying the requirements they are looking for.In this work, we tried to ameliorate the CSRSS by addressing the issue of QoS and adapting it to integrate QoS parameters, giving users the possibility to specify the values of the QoS attributes they require.

Fig. 1 .
Fig. 1.A schema representing the new version of the Cloud Service Research and Selection System (CSRSS)

Fig. 4 .
Fig. 4. The CSRA page to add a new Cloud service

Fig. 5 .
Fig. 5.The CSRA search and/or computation of the Solution page

Fig. 6 .
Fig. 6.The size of the solution depending on the number of dimensions and the input size for the ELECTREIsSkyline Algorithm

Fig. 7 .
Fig. 7.The size of the solution depending on the number of dimensions for each used algorithm

TABLE IV .
VALUE RANGE OF THE DIMENSIONS USED IN THE SKYLINE

TABLE V .
THE SIZE OF THE FINAL SOLUTION DEPENDING ON THE NUMBER OF CRITERIA AND THE ALGORITHM USED FOR 50 000 CLOUD SERVICES