1 Introduction

It is necessary to provide reliable guarantee strategies to users according to their special QoS requirements in a Grid computing environment. At the same time, it needs to support the individual service, and reflects the “server on demand”. The idea “sever on demand” can also rationalize the use of system resources, optimize the system resources' structure [2]. In the practical application, study of QoS preferences and further their algorithms of service selections are of great significance.

The definition and computational method for QoS parameters of a Grid service can reflect the difference among Grid technologies, such as Web applications, P2P, and traditional distributed applications. Joutsensaloa et al. studied weighted computation of the service price, and deduced the computation decryption of the price weight [3, 4]. Dai et al. provided a description of Grid service, and made an in-depth analysis and computation to the Grid service's reliability [5]. Liu et al. has studied the generic quality standards for Web service, and proposed the representation of QoS attributes matrix, as well as the method of QoS computation based on the matrix [6]. Amin et al. discussed the abstract model of the task decomposition and the scheduling system, and analyzed the corresponding strategies to determine QoS weight under Grid environment [7]. For Web service combination, the weighted computation of QoS attributes global optimization method has been studied in literature [8], this method may be suitable for Grid service across platforms. The service selection algorithms based on combination and optimization of QoS attributes were proposed in perspectives of the Web service and Grid service, respectively [9, 10]. The latter also gave fault-tolerant services to ensure the reliable performance of task processing. In addition, there are other works also provided a number of effective solutions for service selection in Grid computing environment [1115].

Although the previous works has made great contributions in QoS decryptions, QoS computation, QoS optimization and corresponding strategies for service selections, systematic researches on users’ QoS preferences and service selection, methods for decryptions, and computation for QoS preferences in particular, are still very deficient, and this is exactly the goal and major contributions of the paper.

Specially, our work was carried out in a Grid computing environment and related experiments were also implemented in a Grid platform. Therefore, the corresponding research results are suitable for the Grid computing environment, but in the similar other network environment the results should also be used.

2 Representation and computation of QoS preference

In practical applications, a user has often two considerations to the service selection. On one hand, it is necessary to meet the QoS requirement while obtaining the quite good performance-to-price ratio. On the other hand, different users also pay different attentions to various QoS attributes besides the basic QoS requirement. For example, some users have a special requirement to the service price, but others possibly pay a higher attention to the service response time or credibility [16]. However, different levels of attention to QoS attributes are actually user's QoS preferences.

2.1 Representation

Suppose the candidate service set is SC = {S 1, S 2,···, S m }, the QoS attribute set of each candidacy service is Q = {q 1, q 2,···, q n }, then the information of user QoS preferences can be described with several forms as follows:

  1. (1)

    Sorting relation vector (SRV): sorting QoS attributes can indicate various attention degree of the user. In \( {o^i} = (o_1^i,o_2^i, \cdots, o_n^i) \), \( o_j^i \) stands for the user’s preference for QoS attributes q j , \( o_j^i \) indicates the order of preference of q j in all QoS attributes, and the smaller the \( o_j^i \), the greater the level of the user's preference.

  2. (2)

    AHP judgment matrix (AJM): a comparison matrix is given in which QoS attributes can be compared with each other. Element α ij may be given through the 1 ∼ 9 scale law [17] which proposed by Satty in AHP matrix \( A = {({a_{ij}})_{n \times n}} \), it expresses the user’s preference to QoS attributes q i and q j . The matrix A satisfies α ij  > 0, α ii  = 1, α ij α ji  = 1, ∀i, jN.

  3. (3)

    Language evaluation collection (LEC): the degree of user’s QoS preference may be expressed through natural language or fuzzy language. The results, which are the language evaluation collection H, and be further used to perform relationship processing to H.

What needs to point out is that the above two forms SRV and LEC finally can be converted into the AJM form and solved based on AHP. The reason we did so because the solution technology of AHP is already very mature. In fact, other representations of QoS preferences ultimately can be converted into AHP representation (namely, AJM). For example, without loss of generality, the AHP matrix can be constructed according to the known QoS preference function (as Definition 1), and then QoS preferences can be computed based on the AHP matrix.

Definition 1

QoS preference function: F(X) reflects the user's QoS preference information, it has n components, that is, F(X) = (f(x 1), f(x 2),···, f(x n )), they correspond to the QoS attribute preference function respectively. The binary relation “≻” can be used to measure preference level of components, it indicates the meaning of “superior, pay more attention to”, and so on.

The next section will explain how to convert and compute the QoS preference according to its representation. The specific description of the conversion from LEC into AJM and the processing strategy of AHP matrix will be presented. This description will also demonstrate the detailed process of the conversion and computation of the QoS preference.

2.2 Conversion and computation

We convert LEC into AJM and give a processing strategy of the AHP matrix. However, an important task is to construct the AHP judgment matrix, and reflect the user’s QoS preferences through the comparison of the QoS attribute pairs.

The processing procedure of LEC is as follows. First of all, differentiate the various levels of language evaluation, then convert the level to the fuzzy figure presentation. For example, language evaluation collection H of user’s QoS preferences can be divided into seven grades, namely, H is {Not Attention Completely(NAC), Not Attention Very much(NAV), Not Attention(NA), Less Attention(LA), Generally Attention(GA), Very Attention(VA), Most Attention(MA)}. Represent a language evaluation with a fuzzy figure with a trapezoidal membership function showed in Fig. 1, and then H can be converted into scaled form.

Fig. 1
figure 1

The language evaluation scope of fuzzy value

The fuzzy preference relation is necessary in order to get a fuzzy value scope of the language evaluation. So the fuzzy preference relation is defined as follows.

Definition 2

(Fuzzy preference relation) The difference of various elements in Q = {q 1, q 2,···, q n } can be described by fuzzy preference relation R k ⊂ Q × Q, the corresponding membership function is \( \mu_Q^k:Q \times Q \to [0,1] \). Supposes b k(q i , q j )∈R is the fuzzy preference relation between q i and q j , q i , q j Q, and b k(q i , q j ) expresses the degree that q i surpasses q j , and has the following properties: (1) non-negativity b k(q i , q j ) ≥ 0; (2) closure \( {b^k}({q_i},{q_j}) + {b^k}({q_{j,}}{q_i}) = 1 \); (3) complementarity b k(q i , q i ) = 0.5.

Then LEC can be converted into AJM according to Fig. 1. In this process, the conversion still has a variety of methods. We give a definition as follows (that is Definition 3). Therefore, a complementary judgment matrix can be constructed. Afterwards, it will be processed.

Definition 3

Suppose q i and q j are two fuzzy figures, fuzzy preference relation b k(q i , q j ) is defined as [18]:

$$ {b^k}({q_i},{q_j}) = \frac{{D({q_i},{q_j}) + D({q_i} \cap {q_j},0)}}{{D({q_i},{q_j}) + D(0,{q_j})}} $$
(1)

In this formula, D(q i , q j ) is the area that q i controls q j , D(q i , 0) is the area of q i , D(0, q j ) is the area of q j , and D(q i q j , 0) is the intersection area of q i and q j .

According to Definition 3, we could obtain the fuzzy complementary judgment matrix \( {b^k} = {({b^k}({q_i},{q_j}))_{n \times n}} \) by this approach. The fuzzy complementary judgment matrix describes and reflects the information of user’s QoS preferences. We could use the characteristic vector method (CVM) to deal with user’s preference relationship.

The following gives the basic processing method to the AHP matrix. Take the reciprocal judgment matrix as an example. Assume the reciprocal judgment matrix is \( H = {({h_{ij}})_{n \times m}} \). The basic problem to process H with CVM is to calculate the largest characteristic root λ max and the corresponding characteristic vector. The detailed steps are as follows:

  1. (1)

    Standardize each column of H, \( {\bar{h}_{ij}} = \frac{{{h_{ij}}}}{{\sum\limits_{k = 1}^n {{h_{kj}}} }} \), \( i,j \in [1,n] \);

  2. (2)

    Add the element value of each row, \( \bar{\omega } = \sum\limits_{j = 1}^n {{{\bar{h}}_{ij}}} \), \( j \in [1,n] \);

  3. (3)

    Standardize vector \( \bar{\omega } = {({\bar{\omega }_1},{\bar{\omega }_2}, \cdots, {\bar{\omega }_n})^T} \), \( \omega = \frac{{{{\bar{\omega }}_i}}}{{\sum\limits_{j = 1}^n {{{\bar{\omega }}_j}} }} \), \( i \in [1,n] \), the result ω = (ω1, ω2,···, ω n )T is exactly the characteristic vector;

  4. (4)

    Calculate the largest characteristic root λ max, \( {\lambda_{\max }} = \sum\limits_{i = 1}^n {\frac{{{{(H\omega )}_i}}}{{n{\omega_i}}}} \), in which (Hω) i is the ith component of Hω.

In order to ensure the credibility and accuracy, it is necessary to check the consistence. The ideal judgment matrix should satisfy the consistence condition. The consistence index (CI) is a stochastic average value, and it is generally believed that the consistence condition is satisfied as the exponent number of the matrix not more than 2. The consistence is acceptable when the consistence rate is less than 0.1, namely, CR < 0.1, and the attribute weight vector derived from the matrix is also effective. Otherwise, the judgment matrix needs to be reconstructed. The following approximate computation is available for CI and CR of the fuzzy complementary judgment matrix.

$$ \left\{ \begin{gathered} CI = \frac{{{\lambda_{\max }} - n}}{{n - 1}} \hfill \\CI = \frac{{CI}}{{RI}} \hfill \\\end{gathered} \right. $$
(2)

3 Application of QoS preference

3.1 User QoS satisfaction degree

It is necessary to give methods to evaluate service selection process which is based on the QoS preference. The evaluation should mainly consider from user's angle. QoS satisfaction degree is an important factor. We assume that QoS attributes and user expectations subject to normal distribution, which has a strong modeling capacity and continuity of the value.

Definition 4

QoS satisfaction degree: the degree of consistence between expected QoS values and the actual value, it can express with the normal distribution probability of QoS attribute q. If the expectation is q*, the QoS satisfaction degree D follows:

$$ D(q*) = P(q*) = p(Q \geqslant {q^{+} }),{q^{+} } = \left\{ {\begin{array}{*{20}{c}} {q,} & {q > q*} \\{q* + \left| {q* - q} \right|,} & {q \leqslant q*} \\\end{array} } \right., $$

and \( \begin{gathered} P(Q \geqslant {q^{+} }) = 1 - P(Q < {q^{+} }) = 1 - \int_{ - \infty }^{{q^{+} }} {f(q){d_q}} \\= 1 - \int_{ - \infty }^{{q^{+} }} {\frac{1}{{\sqrt {{2\pi }} \sigma }}{e^{ - \frac{{{{(q - \mu )}^2}}}{{2\sigma }}}}{d_q}} \\\end{gathered} \),

where, μ is the expected value and σ the standard deviation.

3.2 Service selection with QoS preference

Assume that the candidacy service collection is SC = {S 1, S 2,···, S n }, QoS attribute collection Q i  = (q i1, q i2,···, q im ), and user expected QoS \( Q_j^* = (q_1^*,q_2^*, \cdots, q_m^*) \). QoS preference function is F(ω). Firstly, construct the QoS matrix and calculate QoS preference vector \( \bar{\omega } \). Secondly, calculate user satisfaction level \( \bar{D}({S_i}) \) for each service candidate through \( \bar{\omega } \). Finally, select the relatively optimal service according to \( \bar{D}({S_i}) \). The detailed algorithm is as follows:

Algorithm 1

Service selection with QoS preference

  1. (1)

    Calculate QoS preference vector \( \bar{\omega } \) according to F(ω);

  2. (2)

    Set i = 1, k = 0, D = 0, start to screen SC;

  3. (3)

    If i > 1, then turn to step (7);

  4. (4)

    Calculate \( \bar{D}({S_i}) \) of service S i ;

  5. (5)

    If \( \bar{D}({S_i}) > D \), then \( D = \bar{D}({S_i}) \), k = i;

  6. (6)

    \( i = i + 1 \), turn to step (3);

  7. (7)

    If k = 0, means that not any service is selected, turn to step (9);

  8. (8)

    Service S = S k is the optimal, return S;

  9. (9)

    Exit the algorithm.

Without loss of generality, it uses F(ω) to represent QoS preferences in Algorithm 1, rather than the three representations proposed in the paper (that is, SRV, LEC, and AJM). On the one hand, Algorithm 1 calculates the preference vectors \( \bar{\omega } \) according to users’ QoS preferences, and makes it as one of the basis for the service selection. Therefore, the selected services will be able to reflect user's QoS preferences. On the other hand, the algorithm uses a vector of \( \bar{D}({S_i}) \) to determine whether selected services can satisfy user’s requirements, which is as another basis for service selection. Because QoS satisfaction degree (that is Definition 4) reflects the difference of value between the user's expectation and the actual, therefore it could determine whether to satisfy user's requirements. Algorithm 1 gives a balance between these two aspects, so the service selection on demand could be realized.

The next section implements computations of the two important vectors in Algorithm 1, which are \( \bar{\omega } \) and \( \bar{D}({S_i}) \), they are respectively computed by Algorithm 2 and Algorithm 3.

3.3 Algorithm implementation

The computation of QoS preference vector \( \bar{\omega } \) and user satisfaction degree \( \bar{D}({S_i}) \) is crucial, they are obtained by algorithm \( \Pr ef(F(\omega ),\bar{\omega }) \) and algorithm \( {\hbox{Satis}}(Q,\bar{\omega },\bar{D}({S_i})) \), respectively.

Algorithm 2

\( \Pr ef(F(\omega ),\bar{\omega }) \)

  1. (1)

    Construct judgment matrix \( H = {({h_{ij}})_{m \times m}} \) or \( B = {({b_{ij}})_{m \times m}} \);

  2. (2)

    Set k = 0, calculate accumulation sum:

    • for j = 1, 2,···, m do

    • {for i = 1, 2,···, m do \( k - k + {h_{ij}} \);

    • \( {\bar{h}_{ij}} = {{{{h_{ij}}}} \left/ {k} \right.} \);

    • }

  3. (3)

    Calculate matrix row-sum:

    • for i = 1, 2,···, m do ω i  = 0;

    • for j = 1, 2,···, m do

    • for i = 1, 2,···, m do \( {\omega_j} = {\omega_j} + {\overline{h}_{ij}} \);

  4. (4)

    Set k = 0, obtain QoS preference vector:

    • for j = 1, 2,···, m do \( k = k + {\omega_j} \);

    • for j = 1, 2,···, m do \( {\bar{\omega }_j} = {{{{\omega_j}}} \left/ {k} \right.} \);

    • Let \( \bar{\omega } = ({\bar{\omega }_{1,}}{\bar{\omega }_{2,}} \cdots, {\bar{\omega }_m}) \);

  5. (5)

    Firstly set λ max = 0, then calculate the largest characteristic vector λ max:

    • for i = 1, 2,···, m do \( {(H\omega )_i} = 0 \);

    • for i = 1, 2,···, m do

    • for j = 1, 2,···, m do \( {(H\omega )_i} = {(H\omega )_i} + {h_{ij}} \times {\omega_j} \);

    • for i = 1, 2,···, m do \( {\lambda_{\max }} = {\lambda_{\max }} + {{{{{(H\omega )}_i}}} \left/ {{(m \times {{\bar{\omega }}_i})}} \right.} \);

  6. (6)

    Carry on the consistence check:

    • If CR > 0.1, then turn to step (1),else return \( \bar{\omega } \) and exit the algorithm.

Algorithm 2 describes how to calculate the preference vector \( \bar{\omega } \) according to information of user QoS preferences. Without loss of generality, F(ω) is still used to represent user QoS preferences (of course, it can also be any of SRV, LEC, and AJM). The algorithm summarizes the whole process of the QoS preference representation, conversion, and computation, according to F(ω). The algorithm first construct the AHP matrix and standardize it. Then the maximum eigenvector λ max and the weight vector \( \bar{\omega } \) are computed by the eigenvector method. Eventually, the consistency check is needed. The final result \( \bar{\omega } \) can reflect user QoS preferences, and is one of the bases of service selections.

Algorithm 3

\( {\hbox{Satis}}(Q,\bar{\omega },\bar{D}({S_i})) \)

  1. 1.

    Suppose single QoS satisfaction degree is d ij , initiate d ij :

for j = 1, 2,···, m do d ij  = 0;

  1. 2.

    Calculate D(S i ) of S i according to definition 4, namely, D(S i ) = (d i1, d i2,···, d im ):

for j = 1, 2,···, m do \( {d_{ij}} = 2P(q_{ij}^*) \);

  1. 3.

    Calculate the comprehensive QoS satisfaction degree \( \bar{D}({S_i}) \) of S i , that is \( \bar{D}({S_i}) = D({S_i}) \times \bar{\omega } \), and to exit the algorithm with \( \bar{D}({S_i}) \).

Algorithm 3 describes the computing process of QoS satisfaction degree. In this algorithm, d ij is a single QoS satisfaction degree, which is the satisfaction degree of each QoS attribute of candidate services computed by Definition 4. At the same time, D(S i ) is a total QoS satisfaction degree of candidate services. However, \( \bar{D}({S_i}) \) represents a comprehensive one, which is the product of \( {D}({S_i}) \) and \( \bar{\omega } \). Therefore, \( \bar{D}({S_i}) \) has combined with user QoS preferences and QoS satisfaction degree to be able to implement server on demand for users. Eventually, Algorithm 3 will get the vector \( \bar{D}({S_i}) \) in the light of results from Definition 4 and Algorithm 2.

During operations, Algorithm 2 and Algorithm 3 will be called by Algorithm 1 to implement service selections based on QoS preferences.

4 Experimental results and analysis

4.1 Experimental platform

Our laboratory designed and implemented a monitoring and analysis system of Grid activity, namely grid vision and analysis system (GVAS). We applied it to the Grid platform supported by CGSP. CGSP is a core Grid middleware developed for Chinagrid. It has consolidated various educational and scientific resources, shielded the heterogeneity and dynamicity, and provides transparent Grid services with high performance, high reliability, and security for a variety of scientific computations and engineering researches. CGSP is a server portal of Chinagrid, simultaneously also provides a set of complete development and deployment environments for a variety of Grid applications.

Chinagrid connected more than 20 universities and institutes and integrated their computational, storage, and software resources. We developed CGSP (Chinagrid Support Platform) [19]. So far, we have developed and implemented five typical Grid applications such as biological information, fluid mechanics, and so on. CGSP becomes gradually an important platform of scientific research for Chinese universities.

GVAS utilized the existing hardware, including two servers(AMD 64 optero, 2 GB memory, 200 GB hard disk) and 16 hosts (Intel Pentium 4.3 GHz, 512 MB memory), and installed parts of the CGSP2 system to constructed a Grid environment, as shown in Fig. 2.

Fig. 2
figure 2

Working environment of GVAS based on CGSP2

In order to monitor the Grid hosts, it is necessary to deploy corresponding sensors in each host to monitor hosts and collect information such as processing information. Cooperating with other monitoring tool, we can emphasize on target-oriented monitoring. System management routines can be done through Web pages. On one hand, it is convenient for Grid user to understand task allocation and the current progress, on the other hand, it can also facilitate the Grid manager obtain the resource information and the analysis result from a distance.

GVAS has the characteristics as high stability, a large number of nodes monitored, a big capacity of database and good scalability. For two servers currently, they can monitor hundreds of hosts with a database which capacity will reach 1 ∼ 3T, and have a backup database to ensure the security of the data. If necessary, so long as to improve server performance or increase the number of servers, it is easy to expand scale of GVAS.

4.2 Experiment description and results analysis

Now, we use GVAS to test Algorithm 1. The experiment is divided into basic two stages. In the first stage, we package Algorithm 1 for a general running service (GRS) service, as shown in Fig. 3, and assign “SSA-QoSPApp” to “Application Name”, which is the identifier of the GRS service. The executable program is associated with an executable program that the application actually refers to. When GRS service is called, it will invoke the executable program. At the same time, you can give a category in "Catalog" column, for example, it is designated as "SSA" in Fig. 3, and will make applications search expediently. In addition, you can also give an appropriate description in "Description" column for the application.

Fig. 3
figure 3

Algorithm packaged as a GRS service

Then we deploy the GRS service to the appropriate Grid host in accordance with the experimental requirement, and run the GRS service. In Fig. 4, it shows the running state of SSA-QoSPApp as a GRS service invoked, which state indicates that the job was successfully implemented. What needs to be pointed out is that GRS services invoking do not limit to a particular node, however, it can complete through the Grid portal within or outside the territory.

Fig. 4
figure 4

SSA-QoSPApp running

In the second stage, the system gathers performance data, and analyzes corresponding results. Performance data mainly concern running time, CPU, and memory occupation. The goal of experiment is to test the stability and effectivity of the algorithm. In this experiment, the stability is the case when the candidate service increases, the CPU occupancy will also increase, but similar number of candidate services, no matter how to operate, the CPU occupancy is similar. The effectively is a case that the algorithm can always find a relatively good service satisfying requirements of user QoS preferences, regardless how many candidate services.

In order to reduce the complexity of programming, QoS satisfaction degree does not use probability distribution, but the expected value of relative difference, namely, \( {{{D({S_i}) = \left( {\sum\limits_{j = 1}^n {\left| {\frac{{q_{ij}^{ref} - {q_{ij}}}}{{{q_{ij}}}}} \right|} } \right)}} \left/ {n} \right.} \). The first experiment operated in five different Grid hosts, and the candidacy service number in each host is 20, 40, 80, 120, and 160, respectively. Different service numbers collect changing operating data, which will be the foundation for GVAS to analyze, as shown in Fig. 5. GVAS can analyze the data and plot curves related to running time, CPU, and memory occupation.

Fig. 5
figure 5

The monitoring data as service number changing

These curves reflects a general tendency, that is, as the service increases, the corresponding operating data also increases. We can take the curve of CPU occupancy as an example. For SSA-QoSPApp services of each node (i.e., on behalf of the GRS service of Algorithm 1), the CPU occupancy rate increases along with the candidate service number increases, as shown in Fig. 6. It is because the computation quantity of Algorithm 1 will increase as the candidate service number increased. But the CPU occupancy rate does not always increase, it will reach a stable value close to 1, which indicates the algorithm can always find a suitable service regardless of how many candidate services. The tendency had reflected that the algorithm is reliable and effective, namely, it faithfully processes the changing data according to corresponding strategies and algorithm.

Fig. 6
figure 6

The curve of CPU occupancy as service number changing

The second experiment is to test stability of the algorithm. The experiment chooses four different Grid hosts to operate the algorithm repeatedly with different service number of 20, 40, 80, and 160, respectively, and obtained the 4 × 3 group data. Through analyzing these data, we could find that data changing is smaller in different Grid hosts on condition of the same number of services. In other words, operating data in the same group will obtain similar curve, which shows the algorithm is relatively stable.

For example, the CPU occupancy is shown in Fig. 7. Different column diagrams of three groups elevate along with increasing of candidate services, but in the same group, the difference between diagrams is very small. It is because the difference of computing quantity is not significant, after SSA-QoSApp processed the service set with a same number, which shows Algorithm 1 is stable. However, among different groups, the curve changes with a similar tendency like the first experiment. In additions, what needs to be pointed out is that, experimental results is very close to the simulation results we had accomplished, which also indicates that the algorithm is effective and stable.

Fig. 7
figure 7

The chart of CPU occupancy in case of repeatedly running

5 Conclusion

This paper proposes three ways to describe the QoS preference information, SRV, AJM, and LEC, and puts forward corresponding conversion and computation methods. Subsequently, a method to determine the relative optimal service is presented based on the strategy of dealing with QoS preference information, which can reflect requirements of the user QoS preference. An algorithm of the service selection combined with satisfaction degree was designed. This algorithm can reflect the individual demand of user.

The description, conversion, and computation for user QoS preference is an important task to achieve "server on demand" and guarantee QoS. The method for description and computation, errors reduction, and computational results optimization has great influence on service selection; therefore, it is worth making more thorough research in the area.