Keywords

1 Introduction

The service-oriented architecture (SOA) allows complex software systems to be built by composing loosely coupled web services [1, 2]. The component services of such a service-based system (SBS) collectively realize the system functionality which is often offered as SaaS (Software-as-a-Service) in the cloud environment.

Figure 1 shows the process for building an example travel booking SBS that requires four services to perform four system tasks. As depicted, the process consists of two phases. The first phase is service recommendation where representative services are identified from the candidate services and recommended to the system engineer [3, 4]. The second phase is service selection where the system engineer selects one service from each set of recommended services to build the target SBS that fulfils the multi-dimensional constraints for the system quality, e.g., response time, failure rate, etc., and in the meantime achieves the optimization goal for the system quality. This is an NP-complete problem often referred to as quality-aware service selection [1, 2, 5, 6].

Fig. 1.
figure 1

Process for building an SBS

The development and popularity of e-business, e-commerce, especially the pay-as-you-go business model promoted by cloud computing have fueled the rapid growth of services, indicated by the statistics published by programmableweb.com, an online web service repository. This makes the quality-aware service selection problem intractable. In recent years, a lot of efforts have been devoted to reducing the complexity of the problem of quality-aware service selection through service recommendation [3, 4, 7,8,9]. Recommending appropriate services reduces the search space of the NP-complete service selection problem. In this way, a system engineer does not have to enumerate all candidate services and their possible combinations. The key issue here is to identify appropriate candidate services that are most likely to fulfil the system engineer’s quality constraints. Unfortunately, none of the existing web service recommendation approaches has properly addressed this issue. There are three major categories of service recommendation approaches, utility-based, skyline-based [3, 4] and collaborative filtering (CF) based [10, 11]. Utility-based and skyline-based approaches do not properly take into account system engineers’ personalized quality constraints. CF-based service recommendation aims to predict the quality of web services. Thus, although labeled as a recommendation approach [10,11,12,13,14], CF-based service recommendation is in fact a prediction approach, not a recommendation approach.

In this paper, we first propose two basic approaches for personalized quality centric service recommendation, one based on the KNN (k-nearest neighbors) technique and the other based on the DSL (dynamic skyline) technique. The KNN approach models the service recommendation problem as a nearest neighbor search problem. Given a system engineer’s quality constraints, it finds a set of k suitable services whose quality values are most similar to the quality constraints. The DSL-based approach models the service recommendation problem as a dynamic skyline query problem. It attempts to find representative services that are not dominated by any other services with respect to system engineer’s quality constraints.

The main contributions of this research are:

  1. 1.

    It is the first attempt to model and solve the critical problem of personalized quality centric service recommendation. The resolution of this problem naturally complements the existing quality-aware service selection approaches by recommending appropriate and representative services to system engineers.

  2. 2.

    Two basic approaches are proposed for personalized quality centric service recommendation, one finding suitable services while the other finding representative services.

  3. 3.

    Two hybrid approaches, KNN-DSL and DSL-KNN, are proposed to overcome the limitations of the two basic approaches.

  4. 4.

    Extensive experiments are conducted to evaluate the effectiveness and efficiency of the proposed approaches using a dataset that contains the quality information about 2,507 real-world web services.

The rest of this paper is organized as follows. Section 2 analyzes the research problem. Section 3 describes the basic and the hybrid approaches. Section 4 evaluates the proposed approaches. Section 5 reviews the related work. Section 6 concludes the paper and points out future work.

2 Problem Analysis

This section analyzes the research problem with the travel booking SBS presented in Fig. 1. For each of the four system tasks, i.e., t 1 , t 2 , t 3 and t 4, there is a set of candidate services that can perform the system task but with potentially different quality values, e.g., response time and failure rate. The system engineer needs to select one service from each set of candidate services for building the SBS, i.e., Phase 2. The selected services must collectively fulfil the quality constraints for the system. This problem is commonly known as NP-complete. As the scenario scales up, it becomes intractable. A promising approach for simplifying this problem is, from each set of candidate services, to identify services that are more likely to fulfil the quality constraints for the system, to recommend to the system engineer for selection, i.e., Phase 1. The search space for the problem can be significantly reduced.

To facilitate service recommendation, the global quality constraints for the system must be decomposed into local quality references for individual system tasks. Alrifai et al. proposed an approach in [15] that is widely employed to decompose global quality constraints for a system into local quality references. Given a set of quality constraints for the system, e.g., 800 ms for response time and 1% for failure rate (at least 99 out of 100 service requests must be handled properly), Alrifai et al.’s approach can decompose it into four sets of local quality constraints, one for each of the four tasks, e.g., 120 ms for the response time of performing t 1 and 0.9% for its failure rate.

According to the local quality references for each system task, appropriate services can be identified and recommended to the system engineer. A straightforward approach is to model this problem as a nearest neighbors search problem, as presented in Fig. 2. In Fig. 2, points s 1, …, s 8 represent the eight candidate services for t 1 and point s r represents the dummy reference service with quality references for the response time and failure rate of this task. As indicated in Fig. 2(a), those services that are close (similar) to s r in both dimensions, e.g., s 3, s 6 and s 8, are more suitable than those far away from s r , e.g., s 1, s 2, s 4, s 5 and s 7. Service s 1, in particular, has lower response time and failure rate than most services. Services with such outstanding quality advantages are usually very expensive. The selection of s 1 will most likely violate the cost constraint for the system. In a 3-dimensional space with cost as the third dimension, s 1 might be one of the services most similar to s r . However, in Fig. 2(a), s 1 is not considered suitable with respect to s r .

Fig. 2.
figure 2

Approaches for service recommendation

Therefore, we can identify a set of k nearest neighbor services that are most similar to s r in all quality dimensions. However, there is an inherent limitation to this approach in certain scenarios – the services identified by this approach might not be representative in all quality dimensions. Take Fig. 2(a) for example. Suppose that s 3, s 6 and s 8 are identified as the services most similar to s r . Services s 6 has the lowest response time and is thus considered the most representative service in terms of low response time among s 3, s 6 and s 8. Service s 3 has the lowest failure rate and is thus considered the most representative in terms of low failure rate among s 3, s 6 and s 8. Now we take a look at s 8. It is not representative in either low response time or low failure rate. Therefore, considering only response time and failure rate, s 3 and s 6, are more appropriate than s 8. According to the definition of skyline [3], s 8 is dominated by s 3 and s 6 because s 8 is no better than s 3 and s 6 in any quality dimensions.

An approach for solving the above non-representativeness problem is to calculate the skyline [3], as presented in Fig. 2(b). Given a set of services, the skyline calculation identifies the set of services that are not dominated by any other services. In the case of Fig. 2(b), the skyline services include s 1, s 5 and s 7, which are superior to the other services in terms of both low response time and low failure rate. They are represented by light grey circles. Hence, they are considered more representative than the other services. However, s 1, s 5 and s 7 are not close to s r at all. In fact, they are further away from s r compared to the other services. This is because the skyline calculation uses the origin O as the reference point. As a result, the skyline services are not suitable with respect to s r . To address this issue, we need to identify the dynamic skyline services [16], as presented in Fig. 2(c). The dynamic skyline service calculation uses a given point rather than the origin as the reference point and identifies the dynamic skyline services with respect to the distances to the reference point. In Fig. 2(c), given s r as the reference point, the dynamic skyline services include s 3, s 4, s 6 and s 7, represented by heavy dark circles. Among s 3, s 4, s 6 and s 7, s 4 is the most representative in terms of response time with respective to s r because its response time is the most similar to s r ’s. Similarly, s 7 is the most representative in terms of failure rate. Services s 3 and s 6 are two tradeoff services between s 4 and s 7 because they have a response time more similar to s r than s 4 and failure rate more similar to s r than s 7.

The KNN-based approach (referred to as KNN in short hereafter) and the DSL-based approach (referred to as DSL in short hereafter) attempt to identify services with respect to s r from two different perspectives. The former identifies suitable services that are most similar to s r and the latter finds the representative services that are not dominated by any other services with respect to s r .

In this paper, we use response time and failure rate in the discussion. More quality constraints can be taken into account in a similar manner, which will transform the two-dimensional space into a multi-dimensional one.

3 Recommendation Approaches

3.1 Basic Approaches

In this section, we present the basic KNN and DSL approaches.

KNN Approach.

Given a set of candidate services \( S = \left\{ {s_{1} ,\, \ldots ,s_{n} } \right\} \), each with p-dimensional quality values, and a reference service s r with p-dimensional quality references, the candidate services and s r are first mapped to a p-dimensional space, one dimension for each of the p quality dimensions. For numerical quality dimensions, such as response time, failure rate, reliability, etc., the mapping process is straightforward. To accommodate non-numerical quality dimensions, such as reputation that are expressed by a rating selected from {high, medium, low}, the method discussed in [17] is adopted in this research. Based on a pre-defined hierarchical structure of all possible values, each level of the hierarchy is associated with a numerical value, for example, 3 for high, 2 for medium and 1 for low.

Given a k value, KNN identifies the top k services from S that are most similar to s r , based on a measure of similarity in the p-dimensional space. To evaluate the similarity between each of the candidate services, \( s_{i} \in S,\,1 \le i \le n,\,{\text{and}}\,s_{r} \), we first normalize the quality values of s i , \( 1 \le i \le n \), as well as s r , with the min-max normalization technique, which has also been employed by many other researchers [17, 18]:

$$ \tilde{{q}}_{{p}} \left( {s_{i} } \right){ = }\left\{ {\begin{array}{*{20}l} {\frac{{{q}_{{p}}^{{\text{max}}} \left( S \right){ - q}_{{p}} \left( {s_{i} } \right)}}{{{q}_{{p}}^{{\text{max}}} \left( S \right){ - q}_{{p}}^{{\text{min}}} \left( {S_{i} } \right)}}} \hfill & {\text{if}\;{q}_{{p}}^{{\text{max}}} \left( S \right) \ne {q}_{{p}}^{{\text{min}}} \left( S \right)} \hfill \\ 1 \hfill & {\text{if}\;{q}_{{p}}^{{\text{max}}} \left( S \right)\varvec{ = }{q}_{{p}}^{{\text{min}}} \left( S \right)} \hfill \\ \end{array} } \right. $$
(1)

where q p (s i ) is the p th dimensional quality value of s i , \( {q}_{{p}}^{{\text{max}}} \left( S \right) \) and \( {q}_{{p}}^{{\text{min}}} \left( S \right) \) are the maximum and minimum values, respectively, for the p th quality dimension among all services in S.

After the normalization, the similarity between a candidate service s i ∈ S and the reference service s r can be evaluated by the Euclidean distance between s i and s r :

$$ d\left( {s_{i} ,s_{r} } \right) = \sqrt {\sum\nolimits_{{j{ = 1}}}^{p} {\left( {q_{j} \left( {s_{i} } \right) - q_{j} \left( {s_{r} } \right)} \right)^{\text{2}} } } $$
(2)

Based on Eq. (2), KNN employs Algorithm 1 to identify k services that are most similar to s r . Algorithm 1 first calculates the Euclidean distance between each service in S and s r (lines 3–5). It then sorts the services by their distances to s r in a descending order (line 6). Finally, the algorithm returns the top k services from S as the recommendation results.

KNN requires the k value to be pre-specified, which is a domain-specific parameter. Different applications usually have their own characteristics, and hence inherit different optimal k values. On one hand, an overly small k value cannot ensure that adequate similar services be identified for recommendation. On the other hand, an overly large k value will include dissimilar services in the final recommendation results and will consequently decrease the recommendation accuracy. Therefore, the k value should be set domain-specifically based on experiences and/or experiments. In Sect. 4, we experimentally study the impact of k on recommendation accuracy.

The complexity of Algorithm 1 relies on the employed sorting algorithm. Here, we use the complexity of comparison sort algorithms in the worst-case scenario, i.e., \( O\left( {nlogn} \right) \). Thus, Algorithm 1 runs in \( O\left( {np + nlogn} \right) \).

DSL Approach.

Given a set of points in a p-dimensional space, the skyline calculation is to find the points that are not dominated by any other points. A point s i dominates another point s j , if s i is better than or equal to s j in all dimensions and strictly better in at least one dimension. In the context of this research, the dominance relations between two services is defined based on their p-dimensional quality values:

figure a

Definition 1. Dominance:

Given two services, \( s_{i} ,s_{j} \in S \), characterized by p-dimensional quality values, s i dominates s j , denoted by \( s_{i} \triangleright s_{j} \), iff s i is as good as or better than s j in all quality dimensions and better in least one quality dimension, i.e., \( \forall p \in \left[ {1,n} \right]:q_{p} \left( {s_{i} } \right) \le q_{p} \left( {s_{j} } \right) \) and \( \exists p \in \left[ {1,n} \right]:q_{p} \left( {s_{i} } \right) < q_{p} \left( {s_{j} } \right) \).

Based on Definition 1, we formally define the concept of skyline services:

Definition 2. Skyline services:

The skyline of S, denoted by S SL , consists of the set of services in S that are not dominated by any other services in S, i.e., \( S_{SL} = \left\{ {s_{i} \in S\,|\,\neg \exists s_{j} :s_{i} \triangleright s_{j} } \right\} \). The services in S SL are referred to as skyline services.

Generally, the skyline services have the best quality according to their absolute quality values in each quality dimension. However, as discussed in Sect. 2, given a reference service s r , DSL needs to identify the dynamic skyline services in S. This can be achieved in a new p-dimensional space based on the original space. First, each service s ∈ S is mapped to a service \( s^{{\prime }} = \left( {f_{1} \left( s \right),\, \ldots ,f_{p} \left( s \right)} \right) \), where \( f_{j} \left( s \right) = \left| {q_{j} \left( {s_{r} } \right)\,{-}\,q_{j} \left( s \right)} \right|,\,1 \le i \le n \). Then, the dynamic skyline of S with respect to functions \( f_{1} ,\, \ldots ,f_{p} \), is obtained by calculating the ordinary skyline in the transformed p-dimensional space with s r as the origin. Accordingly, dynamic dominance is defined as:

Definition 3. Dynamic dominance:

Given two services, \( s_{i} ,s_{j} \in S \), characterized by p-dimensional quality values, and a reference service s r , s i dynamically dominates s j with respect to s r , denoted by \( s_{i} \succ s_{j} \), iff \( \forall p \in \left[ {1,n} \right]:\left| {q_{p} \left( {s_{r} } \right){-}q_{p} \left( {s_{i} } \right)} \right| \le \left| {q_{p} \left( {s_{r} } \right){-}q_{p} \left( {s_{j} } \right)} \right| \) and \( \exists p \in \left[ {1,n} \right]:\left| {q_{p} \left( {s_{r} } \right){-}q_{p} \left( {s_{i} } \right)} \right| < \left| {q_{p} \left( {s_{r} } \right){-}q_{p} \left( {s_{j} } \right)} \right| \).

Based on Definition 3, we formally define the concept of dynamic skyline services:

Definition 4. Dynamic skyline services:

The dynamic skyline of S, denoted by S DSL , consists the services that are not dynamically dominated by any other services, with respect to a given reference service s r , i.e., \( S_{DSL} = \left\{ {s_{i} \in S\,|\,\neg \exists s_{j} :s_{j} \triangleright s_{i} } \right\} \). The services in S DSL are referred to as dynamic skyline services.

Figure 3 illustrates the calculation of the dynamic skyline based on Fig. 2(c). First, the original space is transformed into a new one with s r as the new origin and the absolute distances to s r as the mapping functions. Then, \( s_{1} ,s_{2} ,s_{3} ,s_{4} ,s_{5} ,s_{6} ,s_{7} \) are mapped into the new space where they are denoted by \( s_{1}^{{\prime }} ,\,s_{2}^{{\prime }} ,\,s_{3}^{{\prime }} ,\,s_{4}^{{\prime }} ,\,s_{5}^{{\prime }} ,\,s_{6}^{{\prime }} \,{\text{and}}\,s_{7}^{{\prime }} \). Service s 8 is already in the first quadrant of the new space. After the mapping, the location of \( s_{8}^{'} \) is exactly the same as s 8 and thus is omitted in Fig. 3. Having mapped all the services into the new space, where they are collectively referred to as S’, the calculation of S DSL is equivalent to the calculation of \( S_{SL}^{'} \) in the new space. DSL employs Algorithm 2 to calculate the service skyline S SL of a set of candidate services S. It iterates through all services in S (line 4). In each iteration, it selects one service s from S and checks if any other services in S dominate s (lines 5–11). If none, the algorithm includes s in the service skyline S SL (lines 12–14). After processing all the services in S, it returns S SL , i.e., the service skyline that consists of all the skyline services. As presented in Fig. 3, the algorithm returns \( S_{SL}^{{\prime }} = \left\{ {s_{3}^{{\prime }} ,\,s_{4}^{{\prime }} ,\,s_{6}^{{\prime }} ,\,s_{7}^{{\prime }} } \right\} \) as the skyline services in the new space. Accordingly, we can determine that \( S_{DSL} = \left\{ {s_{3} ,s_{4} ,s_{6} ,s_{7} } \right\} \). As discussed in Sect. 2, s 3 and s 7 are closest to s r in terms of response time and failure rate respectively. In the meantime, s 4 and s 6 are considered tradeoffs between s 3 and s 7.

Fig. 3.
figure 3

Identification of dynamic skyline services.

figure b

Algorithm 2 contains two loops, one nested in the other. Let n be the number of nodes in S. The time complexity of Algorithm 2 is O(n 2).

3.2 Hybrid Approaches

KNN and DSL have respective limitations. This section presents two hybrid approaches, KNN-DSL and DSL-KNN, that overcome those limitations.

KNN-DSL.

Given a reference service s r , DSL identifies representative services. However, it sacrifices the similarity between the identified services and s r . Take Fig. 3 for example, where \( S_{DSL} = \left\{ {s_{3} ,s_{4} ,s_{6} ,s_{7} } \right\} \). In terms of standardized Euclidean distance, s 3 and s 6 are the closest to s r . In addition, they both belong to the results returned by KNN when k ≥ 2, as shown in Fig. 2(a). Services s 4 and s 7, on the other hand, are not the next services that are closest to s r . Compared with s 4 and s 7, s 8 is closer to s r . In addition, s 2 is closer to s r than s 4. Thus, some dynamic skyline services should not be recommended as they are dissimilar to s r .

To address this issue, we propose KNN-DSL, an approach that combines the advantages of KNN and DSL. Given a set of candidate services S and a reference service s r , it first employs KNN to identify k services most similar to s r , denoted by S KNN . Then, it calculates the dynamic skyline of S KNN , denoted by S KNN-DSL , using DSL. In this way, KNN-DSL identifies those services that are similar to s r and, in the meantime, representative with respect to s r . Figure 4 shows an example based on Fig. 2(a). Suppose k = 3 for KNN. First, s 3, s 6 and s 8 are identified as the three services that are most similar to s r . Then, from s 3, s 6 and s 8, s 3 and s 6 are identified as the dynamic skyline services. The limitation to this approach is that the number of services eventually identified is lower than or equals to k, i.e., |S KNN-DSL | ≤ k. Thus, KNN-DSL does not ensure a specific number of services in its recommendation results.

Fig. 4.
figure 4

Recommendation with KNN-DSL

DSL-KNN Approach.

To tackle the limitation of KNN-DSL, we propose DSL-KNN, which combines DSL and KNN to recommend services. Given S and s r , it first identifies the dynamic skyline services, denoted by S DSL . Then, from S DSL , it identifies k services that are the closest to s r , denoted by S DSL–KNN . If |S DSL-KNN | < k, DSL-KNN continues to find k - |S DSL-KNN | more services that are closest to s r to ensure a total of k services in its recommendation results. In this way, the dynamic skylines services are always selected first to ensure the representativeness of some of the recommended services. Figure 5(a) and (b) demonstrate this approach based on Fig. 3 with k = 3 and k = 5 for KNN respectively. In Fig. 5, DSL-KNN first identifies the dynamic skyline services with respect to s r , i.e., \( S_{DSL} = \left\{ {s_{3} ,s_{4} ,s_{6} ,s_{7} } \right\} \). Then, given k = 3, it identifies s 3, s 4 and s 6 from S DSL as the services that are the most similar to s r . Given k = 5, the approach will first select all the services in S DSL , and then select s 8 as the fifth service in addition to S DSL because it is the service that is the closest to s r among the rest of the services, i.e., s 1, s 2, s 5 and s 8.

Fig. 5.
figure 5

Recommendation with DSL-KNN

Both KNN-DSL and DSL-KNN employ KNN and DSL. Thus, their complexity are both \( O(n^{2} + np + nlogn) = O(n^{2} + np) \).

4 Experimental Evaluation

This section evaluates the proposed approaches through comparison with three existing representative approaches in their effectiveness (measured by recommendation accuracy) and efficiency (measured by computation time).

4.1 Experiment Setup

The experiments were conducted on a publicly available real-world dataset named QWS [19], which has been widely used [6, 9, 17, 20]. We have implemented the four personalized quality centric approaches for service recommendation proposed in Sect. 3. For comparison, we have implemented three existing representative non-personalized quality centric approaches for service recommendation:

  • RS: This approach randomly selects k services from the candidate services.

  • UF: This approach selects k services with the highest utility values, calculated with the widely used utility function [1, 6, 15, 17].

  • SL: This approach identify skyline services [3, 7, 8].

Metrics for effectiveness.

Given a system engineer’s quality preferences represented by s r , personalized quality centric service recommendation aims to find services whose quality is (1) similar to s r ; and (2) representative with respect to s r . Accordingly, we evaluate the recommendation accuracies of the comparing approaches, which are measured by three metrics, Mean Absolute Error (MAE), Root Mean Squared Error (RMSE) and Non-Dominance Rate (NDR).

MAE is defined as:

$$ {\text{MAE}} = \sum\nolimits_{i = 1}^{|R|} {\sqrt {\sum\nolimits_{{j\varvec{ = }\text{1}}}^{{p}} {\left( {q_{j} \left( {s_{i} } \right) - q_{j} \left( {s_{r} } \right)} \right)^{\text{2}} } } } /|R| $$
(3)

where R is the set of services returned by the recommendation approach, q j (s i ) and q j (s r ) are the j th dimensional quality value of s i ∈R and s r . An MAE value indicates the average difference between the recommended services and s r in their p-dimensional quality. A low MAE value indicates high recommendation accuracy.

RMSE is defined as:

$$ {\text{RMSE}} = \sqrt {\sum\nolimits_{i = 1}^{|R|} {\sum\nolimits_{{j\varvec{ = }\text{1}}}^{{p}} {\left( {q_{j} \left( {s_{i} } \right) - q_{j} \left( {s_{r} } \right)} \right)^{\text{2}} } } /|R|} $$
(4)

During the calculation of RMSE, the individual differences between the recommended services and s r are each squared and then averaged over R. Similar to MAE, a low RMSE indicates high recommendation accuracy.

NDR is defined as:

$$ NDR = \left| {R_{DSL} } \right|/\left| R \right| $$
(5)

where R DSL is the set of dynamic skyline services in R. NDR measures the representativeness of the results. A high NDR indicates high recommendation accuracy.

Metric for efficiency.

In order to evaluate the efficiency of the proposed approaches, we measure their computational overheads.

To simulate different recommendation scenarios, we have conducted three series of experiments, namely series A, B and C. Table 1 presents the parameter settings. In each experiment, we randomly select n services from the QWS dataset as the candidate services, and another one as s r . Then, we run the comparing approaches to identify the services to recommend. All approaches are implemented in Java using JDK 1.8. All experiments are conducted on a machine with Intel i7-4790 CPU 3.60 GHz and 16 GB RAM, running Windows 10 x64 Professional.

Table 1. Experiment parameter settings.

4.2 Experimental Results

Effectiveness.

Figure 6 shows the impact of the number of services in S (denoted by n) on the recommendation accuracies obtained by the approaches. Figure 6(a) and (b) show that KNN-DSL, KNN and DSL-KNN obtain the best recommendation accuracies, measured by their MAE and RMSE values which are much lower than the other four approaches. DSL obtains the fourth best recommendation accuracy overall. This indicates the importance of considering s r during service recommendation. Interestingly, we observe that UF achieves the worst recommendation accuracy. It finds the services with the best overall quality, which however, are not necessarily preferable to the system engineer, indicated by its extremely high MAE values. Figure 6(a) and (b) also show that the increase in n increases the recommendation accuracies of our approaches, i.e., DSL-KNN, KNN-DSL, KNN and DSL. As n increases, there are more candidate services for the approaches to choose from, increasing the possibility of finding suitable services. Figure 6(c) shows that the services recommended by KNN-DSL and DSL are the most representative, with slight advantages over DSL-KNN. The services recommended by the other four approaches, including KNN, are significantly less representative. It clearly shows the effectiveness of the DSL operator in finding representative services.

Fig. 6.
figure 6

Impact of parameter n on accuracy (experiment series A)

Figure 7 demonstrates the impact of the number of services to recommend (denoted by k). Figure 7(a) and (b) show that KNN-DSL, again, achieves the best recommendation results overall in experiment series B, KNN the second, DSL-KNN the third and DSL the fourth. KNN-DSL is the winner because its KNN operator ensures the similarity between the selected k services and s r with its KNN operator, and then further prunes some of the k services whose quality are relatively dissimilar to s r with its DSL operator. KNN seconds to KNN-DSL because the non-dynamic-skyline services in its recommendation results lower its recommendation accuracy. Similar to KNN-DSL, DSL-KNN also employs two operators, DSL then KNN. Its DSL operator selects the dynamic skyline services, which are representative however not necessarily very similar to s r . Thus, its MAE values are not as low as KNN and DSL-KNN. RS, UF and SL are again no match for our approaches, demonstrated by their significantly higher MAE and RMSE values. Figure 7(a) and (b) also show that the increase in the k value leads to slight increases in the MAE and RMSE values obtained by KNN-DSL, DSL-KNN and SL. As k increases, services that are not quite similar to s r are also included in the recommendation results, which lowers the recommendation accuracy. The increase in k has no impact on DSL because DSL recommends only the dynamic skyline services which are irrelevant to the k value. Figure 7(c) shows that the recommendation results of KNN-DSL and DSL are all representative. This is because they both employ the DSL operator to ensure the representativeness of the recommendation results. DSL-KNN achieves the third highest representativeness in the recommendation results. Its DSL operator selects only the representative services, i.e., the dynamic skyline services. However, as k increases and exceeds the number of dynamic skyline services identified by its DSL operator, its KNN operator has to include some non-dynamic-skyline services in the recommendation results. These services reduce the overall representativeness of its recommendation results.

Fig. 7.
figure 7

Impact of parameter k on accuracy (experiment series B)

Figure 8 shows the impact of the number of quality dimensions (denoted by q). Figure 8(a) and (b) show that KNN-DSL, for the third time, achieves the best recommendation accuracy, outperforming KNN and DSL-KNN, which achieve the second best and third best recommendation accuracy respectively. DSL achieves the fourth highest - however significantly lower - recommendation accuracy. We can also observe that the increase in q decreases the recommendation accuracies achieved by our approaches, indicated by their increasing MAE and RMSE values. The increase in q mainly impacts the skyline calculation and dynamic skyline calculation. A large q makes it harder for one service to dominate or dynamically dominate the other, resulting in a large number of skyline services and dynamic skyline services. As q increases, KNN-DSL manages to maintain its slight advantage over KNN and DSL-KNN in most cases. Its KNN operator ensures that the quality of the selected k services are the closest to s r . KNN achieves the second best recommendation accuracy because it also ensures the similarity between the recommendation results and s r . DSL-KNN loses to KNN-DSL and KNN on average because some services that are similar to s r are pruned by its DSL operator for being dominated by other services. Figure 8(c) shows that KNN-DSL and DSL consistently obtain highly representative recommendation results. DSL-KNN also obtains representative recommendation results except when q = 2. We investigated this interesting phenomenon and found out that when q = 2, its DSL identified only a few dynamic skyline services, requiring its KNN operator to find some services that are similar to s r but are not representative. This lowers the overall representativeness of its recommendation results.

Fig. 8.
figure 8

Impact of number of quality constraints (q) on accuracy (experiment series C)

Efficiency.

Figure 9 shows the computation times taken by the approaches in experiment series A. As demonstrated, the seven approaches can be categorized into two groups according to their scalability to n, the slow approaches, including SL, DSL and DSL-KNN, and the fast approaches, including RS, KNN, KNN-DSL and UF. The slow approaches share one thing in common - they have to identify the skyline services or the dynamic skyline services from a large number of candidate services, which is not required for the fast approaches. KNN-DSL, which also employs a DSL operator like DSL and DSL-KNN, takes much less time to complete. It is because its KNN operator selects only k services for its DSL operator to process further. Given that k is usually a small number, its DSL operator does not need take long to finish. The slow approaches take significantly more time than the fast approaches. However, they are in fact not quite slow - they require slightly more than 70 ms to process 1,000 candidate services. In addition, their computation times are roughly linear to n, which indicates high scalability. We believe their efficiency are acceptable in most, if not all, real-world applications.

Fig. 9.
figure 9

Impact of parameter n on efficiency (experiment series A)

Figure 10 shows the computation times taken by different recommendation approaches in experiment series C. We observe differences in their computation times similar to Fig. 9 between the slow and fast approaches. The fast approaches take less than 10 ms on average to complete. Their computation times are not significantly impacted by the increase in q, which demonstrates their high scalability to q. On the other hand, the slow approaches taking 60 ms to 100 ms to complete, much longer than fast approaches, are still fast enough for most, if not all, real-world applications.

Fig. 10.
figure 10

Impact of parameter q on efficiency (experiment series C)

Please note that the computation times of the recommendation approaches in experiment series B, where k varies, are not presented. The k value means to select k services from the processed candidate services. For example, the KNN operator, which employs Algorithm 1 introduced in Sect. 3.1, simply picks the top k services from a set of services sorted by their distance to s r . UF selects k services in a similar way. Such operations have a complexity of O(1) and do not impact the computation times of the approaches.

4.3 Discussion

Table 2 presents the average MAE, RMSE and NDR values obtained by the recommendation approaches in each experiment series. The lowest and second lowest MAE, RMSE, as well as the highest and the second highest DNR, achieved in each experiment series are highlighted by dark grey and light grey respectively. We can see that on average, KNN-DSL outperforms the other approaches. This indicates that KNN-DSL obtains the most suitable and most representative recommendation results with respect to s r . In the meantime, KNN-DSL is also highly efficient, as illustrated by Figs. 9 and 10. Thus, KNN-DSL is the best approach for service recommendation in most real-world applications. However, KNN-DSL has a limitation - it does not ensure a certain number of services in its recommendation results. It might eventually finds fewer than k services. Thus, if a number of k services in the recommendation results is mandatory, KNN-DSL is not a proper choice. In those cases, DSL-KNN and KNN are preferable. Table 2 shows that KNN achieves the second lowest MAE and RMSE values, indicating that its recommendation results are close to s r . However, its advantage over DSL-KNN is only marginal. In addition, its NDR values are much lower than those of DSL-KNN, meaning that its recommendation results are not as representative. Therefore, in most cases, DSL-KNN is a better choice than KNN k services are mandatory. DSL achieves the highest NDR in all three experiment series. However, its MAE and RMSE values are much higher than KNN-DSL, DSL-KNN and KNN. In addition, it does not guarantee the number of services in its recommendation results. As a result, DSL is not the first choice in any envisaged real-world applications.

Table 2. Average performance (MAE/RMSE/NDR)

5 Related Work

Quality-aware service recommendation is a critical issue in service-oriented computing. Utility-based recommendation [1, 3, 6, 15, 17] and skyline-based recommendation [3] are currently the two most popular approaches for quality-aware service recommendation.

Utility-based recommendation is very straightforward. The utility value of a service indicates how good its overall p-dimensional quality is in comparison with the other candidate services in S - the higher, the better. The utility calculation for a service s i goes through two phases. First, a utility value is calculated for each of its quality dimensions. Then, the utility of service s i is calculated by summing its utility values in all p quality dimensions. Given a set of candidate services, utility-based recommendation selects the services with the highest utility values. This approach has been widely employed [1, 3, 6, 15, 17].

The other popular approach for service recommendation is the skyline-based service recommendation. Its process can be found in Sect. 2. It was first employed by Alrifai et al. to select representative services that are not dominated by any other candidate services [3]. Since then, many researchers have attempted to improve the skyline-based service recommendation approach to accommodate more sophisticated environments. To name few, Benouaret et al. propose a concept named alpha-dominant service skyline to address two issues in the approach proposed by Alrifai et al. [7]. First, it treats services with a bad compromise between different quality dimensions in a fairer manner. Second, it improves the efficiency of skyline calculation. Benouaret et al. have also proposed an improved skyline-based approach for service recommendation that handles services’ probabilistic quality values [8].

The common and critical limitation of the utility-based and the skyline-based service recommendation is the lack of consideration for system engineers’ quality constraints, which have always been a fundamental and critical issue in quality-aware service selection [1, 2, 6, 9, 17, 20], as well as skyline-based service composition [21,22,23]. This renders the utility-based and skyline-based service recommendation obsolete. As demonstrated in Sect. 4, their recommendation results are neither suitable nor representative.

There is a large body of approaches labeled service recommendation approaches [10,11,12,13,14]. However, aiming to predict the quality values of services, those approaches are not designed for service recommendation.

Our approaches address the limitation of existing recommendation approaches by centering system engineers’ quality constraints in the recommendation. By combining the KNN and DSL techniques, our approaches can efficiently recommend suitable and representative services with respect to system engineers’ quality preferences.

6 Conclusion and Future Work

In this paper, we first proposed two basic approaches, named KNN and DSL, for personalized quality centric service recommendation, based on k-nearest neighbors and dynamic skyline techniques, respectively. Then, to overcome their limitations, we proposed two hybrid approaches, named KNN-DSL and DSL-KNN. Finally, we presented extensive experiment results to demonstrate their effectiveness and efficiency.

In the future, we will combine the proposed approaches with approaches for service compositions to facilitate an effective and efficient personalized quality centric process for building service-based systems.