Journal of Applied Mathematics

Volume 2013 (2013), Article ID 407267, 12 pages

http://dx.doi.org/10.1155/2013/407267

## A Fast Optimization Method for Reliability and Performance of Cloud Services Composition Application

^{1}School of Mathematics and Computer Science, Hubei University of Arts and Science, Xiangyang 441053, China^{2}School of Computer Science, Colorado Technical University, Colorado Springs, CO 80907, USA

Received 15 April 2013; Accepted 13 September 2013

Academic Editor: Rung Ching Chen

Copyright © 2013 Zhao Wu et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

At present the cloud computing is one of the newest trends of distributed computation, which is propelling another important revolution of software industry. The cloud services composition is one of the key techniques in software development. The optimization for reliability and performance of cloud services composition application, which is a typical stochastic optimization problem, is confronted with severe challenges due to its randomness and long transaction, as well as the characteristics of the cloud computing resources such as openness and dynamic. The traditional reliability and performance optimization techniques, for example, Markov model and state space analysis and so forth, have some defects such as being too time consuming and easy to cause state space explosion and unsatisfied the assumptions of component execution independence. To overcome these defects, we propose a fast optimization method for reliability and performance of cloud services composition application based on universal generating function and genetic algorithm in this paper. At first, a reliability and performance model for cloud service composition application based on the multiple state system theory is presented. Then the reliability and performance definition based on universal generating function is proposed. Based on this, a fast reliability and performance optimization algorithm is presented. In the end, the illustrative examples are given.

#### 1. Introduction

Cloud computing is an emerging trend for the provision of IT infrastructure as services, with the potential of transforming the way of offering business services [1]. Based on cloud computing platform, software development becomes prominent and accessible for all without the expensive investing in hardware resources and the managing and maintaining costs.

On cloud computing platform, the cloud services composition (CSC) is a fashionable approach of software development based on cloud services [2–4]. In the framework of CSC, cloud services are considered as self-contained, self-describing, modular applications that can be published, located, and invoked across the web.

How to select and integrate cloud services to satisfy user’s functional requirements is an important issue, which has widely attracted attention of researchers [5]. Great progress has been made in this field [6–8]. However, little research focused on reliability model and simulation for CSC. Recently, there has been growing interest in this field. Methods and technologies related to reliability model and simulation for CSC have attracted attention because they can forecast the QoS that users will obtain from CSC [9–11]. In addition, it is helpful to analyze whether there are some reliability bottlenecks within CSC applications. Thus, reliability prediction is the basis of reliability optimization for the CSC applications.

The service-oriented architecture (SOA) is the most representative technological architecture to build the cloud services application on cloud computing platform [12–14]. However, because SOA supposed by services composition technique is of dynamic and cooperative essential characteristic, the traditional software reliability prediction methods are not suitable to the cloud services application based on SOA.

From the aspect of software architecture, cloud services application is a kind of Internetware based on cloud services, which is built by cloud services composition technique [15, 16]. As a kind of abstract of distributed software system running on the Internet which is opened, dynamic, and difficult to control, there are many differences between the Internetware and traditional software system, such as structure, operation mechanism, correctness guarantees, development method, and life cycle. Due to the static, closed, and controllable running environment, the traditional software model is of finite autonomy, fixed encapsulation, monotonic interaction, tightly coupled structure, and offline evolution. Being different from the traditional software model, the cloud services application, as a kind of Internetware, exists in each node on the cloud service platform with a subjective software service form. In the running environment, which is opened, dynamic, and difficult to control, the cloud services application has some new characters, such as flexible evolution, continuous reaction, and multitarget self-adaption. Due to being difficult to adapt to these new characters, traditional software reliability assurance methods cannot be adopted for the cloud services application which is built based on service composition technique. Quite different to traditional software reliability assurance technique, the reliability assurance method for the cloud services application pays more attention to the mechanism of flexible reliability measure, predication and self-adapting based on summative evaluation of operation information in opened running environment [17, 18]. So, the fast reliability prediction method for the cloud services application has great theory research value.

From the aspect of software online evolution, cloud services application confronts fast and continuous change of user’s requirement and running environment. So, cloud services application must have the ability to apperceive the changes in outrunning environment and dynamically evolve according to functionality and performance requirement with this kind of change. In order to provide better QoS to users, cloud services application must have more adaptability to collect various changes realtimely and adjust oneself online according to preestablished strategies in runtime [19]. However, with the closed, controllable, and static user’s requirement in the background, traditional software reliability prediction methods lack the ability to dynamically adapt themselves to the changes of running environment and user’s requirement. Therefore, it cannot be employed in the reliability prediction for cloud services application. So, the fast reliability prediction method for the cloud services application has important realistic technology requirement.

At the present time, the researches on reliability prediction for cloud services application are still just starting Due to the opened and dynamic running environment, continuous variable user’s requirement, randomly selected member services and its own characters of loose coupling and long transaction, the severe challenges are confronted the reliability prediction for cloud services application, which is seriously restricting the further development, application, and extension of cloud services application. In the face of urgent demands of high reliable cloud services application from many government, economy, and commerce fields such as e-government, e-commerce, and e-bank, the fast reliability optimization becomes the key to promote the successful development, application, and extension of the cloud services application.

Facing the challenge, this paper researches the reliability model of cloud services application. On this basis, a fast reliability optimization for cloud services application is presented. The paper is organized as follows. Section 2 presents the reliability model for cloud service application based on the multiple state system (MSS) theory. The reliability and performance of cloud service and cloud services composition application are defined in Section 3. Section 4 presents a reliability and performance model for cloud services composition application based on universal generating function (referred to as UGF) technique. A fast reliability optimization algorithm by using the UGF technique is presented in Section 5. Section 6 provides some illustrative examples.

#### 2. Reliability Model for Cloud Service Composition Application

##### 2.1. Multiple State System Theory

The MSS was introduced in the middle of the 1970s in [20–23]. In these works, the basic concepts of MSS reliability were primarily formulated, the system structure function was defined, and its properties were initially studied. The notions of minimal cut set and minimal path set were introduced in the MSS context, as well as the notions of coherence and element relevancy.

Some systems can perform their tasks with various distinguished levels of efficiency usually referred to as performance rates. A system that can have a finite number of performance rates is called a multistate system. Any system consisting of different units that have a cumulative effect on the entire system performance has to be considered as a MSS [24]. So the cloud service application can be regard as a multiple state system.

MSS reliability analysis relates to systems for which one cannot formulate an “all or nothing” type of failure criterion. Such systems are able to perform their task with partial performance (intensity of the task accomplishment). Failures of some system elements lead only to the degradation of the system performance.

##### 2.2. Reliability and Performance Definition for Cloud Services Composition Application

From the aspect of users, the reliability of cloud service application can be defined as the probability that its performance rates satisfy user’s requirements, described as a vector pair , where is a vector of user’s requirement rates , , and is the vector of steady state probability , , according to a certain user’s requirement rate, where is a random variable that represents the performance rates of cloud service application.

Based on the above definition, the reliability function of cloud service application under steady state can be defined as

And the one under transient state can be defined as where is the integral performance rate of cloud service application.

In the interval , the reliability function of cloud service application can be defined as

Based on the above definition, the reliability function of cloud service application under dynamically changing user’s requirements can be defined as

In order to calculate the probability distribution of reliability, failure time , time between failures , and failure number are defined.

##### 2.3. Probability Distribution of Performance Rates for Cloud Service

Furthermore, the performance rates for cloud service can be defined. According to its performance rates, the cloud service to build a cloud service application can be of kinds of various states, described by , where is the performance rate of cloud service under the state , . The performance rate corresponding to the cloud service in any time is a random variable that gets the value from : . The probability of performance rates of the cloud service under various states in any time can be described as a set, where . Because cloud service is in one and only one of kinds of various states in any time , these states form a mutual exclusion events complete set. Therefore, the formula , is satisfied. In the end, the set of value pairs completely determines the probability distribution of performance rates corresponding to a cloud service in any time .

##### 2.4. Structure Function of Performance Rates for Cloud Service Application

Based on the above definition of the performance rates of cloud service application and cloud service, the structure function of cloud service application can be defined. Let be the possible combinations of performance rates of all cloud services and the possible values range of performance rates of cloud service application. Then the transform function , called the structure function of cloud service application, can map the performance rates space of cloud services into one of cloud service applications. Hence, a general reliability model of cloud service application can be defined as

The structure function of cloud service application establishes a feasible way to calculate the reliability of cloud service application using one of cloud services.

#### 3. Reliability and Performance Definition for Cloud Service Composition Application Based on UGF

##### 3.1. UGF Technique

The methods of MSS reliability assessment are based on four different approaches: an extension of the Boolean models to the multivalued case; the stochastic process (mainly Markov and semi-Markov) approach; the Monte-Carlo simulation technique; and the UGF approach.

The approach based on the extension of Boolean models is historically the first method that was developed and applied for the MSS reliability evaluation. It is based on the natural expansion of the Boolean methods to the multistate systems.

The stochastic process methods that are widely used for the MSS reliability analysis are more universal. The method can be applied only to relatively small MSS because the number of system states increases dramatically with the increase in the number of system elements.

Even though almost every real world MSS can be represented by the Monte-Carlo simulation for the reliability assessment, the main disadvantages of this approach are the time and expenses involved in the development and execution of the model.

The computational burden is the crucial factor when one solves optimization problems where the reliability measures have to be evaluated for a great number of possible solutions along the search process. This makes using the three abovementioned methods in reliability optimization problematic. On the contrary, the UGF technique is fast enough. This technique allows one to find the entire MSS performance distribution based on the performance distribution of its elements by suing a fast algebraic procedure. An analyst can use the same recursive procedures for MSS with a different physical nature of performance and different types of element interaction.

For the above reasons, we choose UGF technique to study a fast reliability optimization method for cloud services composition network. The UGF generalizes the technique that is based on using a well-known ordinary generating function. The basic ideas of the method were introduced by Ushakov [25]. The approach proved to be very convenient for numerical realization. It requires relatively small computational resources for evaluating MSS reliability indices and, therefore, can be used in complexes reliability optimization algorithms. Because the relationship between system state probability and system output performance rates can be expressed definitely by UGF, and the -function of system can be obtained by calculating the -function of components simply, UGF is approved as an efficient reliability assessment approach that is suitable to various MMS. Therefore, UGF can be successfully applied for the reliability assessment and optimization of MMS.

In most studies on the prediction and optimization of system reliability based on the UGF, the system structure and composite form of research object are relatively simple, such as electric power system and mechanical system. The presented design methods and calculation methods of the -function composite operators are only applicable to some simple structure forms, such as series, parallel, series parallel hybrid, and bridge structure, which limits the application range of the UGF method. Different from the above research objects, the cloud services composition is of complex, flexible and dynamic structure form. The adaptability to complex, flexible and dynamic system, such as the cloud services composition application, becomes advantage and characteristic of our presented method.

##### 3.2. Reliability Definition of Cloud Service Composition Application Based on UGF

Based on the reliability model for cloud service application described in Section 2, the reliability of cloud service composition can be defined by UGF. The general form of the definition is as follows.

The reliability of a cloud service composition (or a cloud service) is a random variable . Therefore, the corresponding -function can be defined as where the discrete variable has possible values and is the reliability when is in the state . Based on this definition, the reliability of a cloud service composition (or a cloud service) can be expressed as

Because is correlative with the state probability and the reliability rate , which correspond to the cloud service composition (or a cloud service), describes the reliability of cloud service composition (or a cloud service). On this basis, we can define related performance operators furthermore, such as usability operator , output performance operator and unfinished performance operator , to describe related reliability indexes.

Based on the above performance operators, the related reliability indexes for cloud service composition (or a cloud service) can be defined as follows.(i)The usability is defined as (ii)The output performance expectation is defined as (iii)The unfinished performance requirement is defined as: where

##### 3.3. Composite Operators of Reliability and Performance Indexes Based on UGF

Based on the above reliability definition expressed by UGF for cloud services, the -function composite operators can be designed for various performance indexes of the diverse composition patterns. The reliability of cloud service composition can be worked out based on the calculation of cloud services’ reliability.

Two rules must be satisfied in the design of -function composite operators as follows:

The generic form of composite operators can be expressed as where can be defined according to the performance indexes and composition structures of the cloud service application.

#### 4. Reliability and Performance Model of Cloud Services Composition Application Based on UGF

##### 4.1. Fault Tolerant Model of Cloud Services Composition Application

To strengthen the capability of fault tolerant of cloud service composition applications to improve its reliability and performance, the component duplication technique has been introduced into the design of cloud service composition applications. By deploying a number of functionally equivalent software versions for each cloud service, the cloud service composition applications can avoid the global failure due to the fault of one cloud service as far as possible. We assume that functionally equivalent software versions are available for each cloud service . Each software version has an estimated reliability and response time (it includes the execution time of software version and the network transmission time used transfer computing results to other software version, end users, etc.). Failures of software versions in each cloud service are statistically independent, as well as the total failures of the different cloud services.

In many cases, the information about the software version’s reliability and the response time is available from separate testing and/or reliability prediction models. This information can be incorporated into a fault-tolerant program model in order to obtain an evaluation of its reliability and performance.

According to the generally accepted model, the cloud service composition application consists of cloud services. Each cloud service performs a subtask and the sequential execution of the cloud services performs a major task.

To assure that all of the computing tasks can correctly be executed by cloud service, the cloud services broker (referred to as CSB) and the check mechanism are established in the cloud service composition application. The check mechanism presumes that software versions send their computing results to the CSB. Then the CSB compares received computing results with each other. The CSB sends the computing results to the next cloud service in the service flow, if at least out of computing results agree. Otherwise, the CSB discards these received computing results and recalls the cloud services. If the consistent results cannot be obtained after trying a certain number of times, the CSB will stop the execution of the cloud services composition application.

The software versions in each cloud service run on parallel hardware units. The total number of units is . The units are independent and identical. The availability of each unit is . The number of units available at the moment determines the amount of available computational resources and, therefore, the number of software versions that can be executed simultaneously . No hardware unit can change its state during the execution.

The software versions of each cloud service start their execution in accordance with a predetermined ordered list. first software versions from the list start their execution simultaneously (at time zero). If the number of terminated software versions is less than , after termination of each software version a new software version from the list starts its execution immediately. If the number of terminated software versions is not less than , after termination of each software version the CSB compares the outputs. If outputs are identical, the CSB terminates its execution (terminating all the software versions that are still executed), otherwise a new software version from the list is executed immediately.

If after termination of software versions the number of identical outputs is less than then the entire cloud services application fail.

The execution time of the CSB includes the execution time and data transmission time spent by all cloud services invoked by the CSB and itself. In the case that CSB gets not less than consistent results successfully, the time of the entire CSB execution is equal to the termination time of the software version that has produced the th correct output (in most cases, the time needed by the CSB to make the decision can be neglected). It can be seen that the CSB execution time is a random variable depending on the reliability and the response time of the software versions and on the availability of the hardware units.

The sum of the random execution times of each CSB gives the random task execution time for the entire system . In order to estimate both the system's reliability and its performance, different measures can be used, depending on the application.

In cloud service applications where the response time of each task is of critical importance, the system’s acceptability function is defined as , where is a maximal allowed system response time. The system’s reliability in this case is the probability that the correct output is produced in time less than . The conditional expected system response time is considered to be a measure of the system's performance. This index, defined according to (16), determines the system’s expected response time given that the system and network do not fail:

In cloud service applications where the system’s average productivity (the number of executed tasks) over a fixed mission time is of interest, the system’s acceptability function is defined as , the system’s reliability is defined as the probability that it produces correct outputs regardless of the total response time (this index can be referred to as ), and the conditional expected system response time is considered to be a measure of the system's performance.

###### 4.1.1. Number of Software Versions That Can Be Simultaneously Executed

The number of available hardware units in cloud service can vary from 0 to . Given that all of the units are identical and have availability , one can easily obtain probabilities for :

The number of available hardware units determines the number of software versions that can be executed simultaneously: . Therefore,

The pairs , for determine the probability mass function (referred to as p.m.f. as follows) of the discrete random value .

###### 4.1.2. Termination Times of Software Version

In each cloud service , a sequence where each software version starts its execution is defined by the numbers of software versions. This means that each software version starts its execution not earlier than software versions and not later than software versions . If the number of software versions that can run simultaneously is , then we can assume that the software versions run on independent processors. Let be the time when processor terminates the execution of a software version and is ready to run the next software version from the list of not executed software versions. Having the response time of each software version , one can obtain the termination time for each software version using the following simple algorithm.(1)Assign (all of the units are ready to run the software versions at time 0).(2)For repeat the following:(a)find any ( is the number of the earliest processor that is ready to run a new software version from the list),(b)obtain and assign .

Times , , correspond to intervals between the beginning of cloud service execution and the moment when the software versions produce their outputs. Observe that the software versions that start execution earlier can terminate later: does not guarantee that . In order to obtain the sequence, in which the software versions produce their outputs, the termination times should be sorted in increasing order which gives the order of software versions corresponding to times of their termination.

The ordered list determines the sequence of software version outputs. Now one can consider the cloud service as a system in which the software versions are executed consecutively according to the order and produce their outputs at times .

##### 4.2. Definition of Reliability and Performance of the Cloud Service and the Cloud Services Composition Application

Let be the reliability of the software version that produces th output in cloud service ( is equal to the probability that this output is correct). Consider the probability that out of first software versions of cloud service succeed. This probability can be obtained as

The cloud service produces the correct output directly after the end of the execution of software versions () if the th software version succeeds and exactly out of the first executed software versions succeed.

The probability of such event is

Observe that is the conditional probability that the cloud service response time is given that software versions can be executed simultaneously:

Having the p.m.f. of we can now obtain for

The pairs , , obtained for and , determine the p.m.f. of software version response time .

Since the events of successful cloud service execution termination for different and are mutually exclusive, we can express the probability of cloud service success as

Since failure of any cloud service constitutes the failure of the entire application, the application’s reliability can be expressed as

For cloud services, there are four kinds of execution patterns in cloud services composition application: sequence, parallel, split, and loop. From the p.m.f. of response times for each cloud service one can obtain the p.m.f. of the response time of the entire application in accordance with the composition structures and execution logics of the cloud services composition application: where the is the probabilities that the th split is chosen to be executed. The is the number of times of loop that cloud services are executed repeatedly. and can be obtained from separate testing and/or prediction models.

#### 5. Fast Optimization Algorithm of Reliability and Performance for Cloud Services Composition Application Based on UGF and GA

##### 5.1. Using UGF to Evaluate the Response Time Distribution of Cloud Services

In order to obtain the response time distribution for a cloud service for a given in the form , one can determine the realizations of the response time using the algorithm presented in Section 4.1.2 and the corresponding probabilities using (20). However, the probabilities can be obtained in a much simpler way using a procedure based on the UGF technique.

Let the random binary variable be an indicator of the success of software version in cloud service such that if the software version produces the correct output and if it produces the wrong output. The p.m.f. of can be represented by the -function It can be easily seen that using the operator we can obtain the -function that represents the p.m.f. of the number of correct outputs in cloud service after the execution of a group of first software versions (the order of elements and, therefore, depend on ). Indeed, the resulting polynomial relates the probabilities of combinations of correct and wrong outputs (the product of corresponding probabilities) with the number of correct outputs in these combinations (the sum of success indicators). Observe that after collecting the like terms (corresponding to obtaining the overall probability of a different combination with the same number of correct outputs) takes the form where is the probability that the group of first software versions produces correct outputs.

Note that can be obtained by using the recurrent expression:

According to its definition, is the probability that the group of first software versions produces correct outputs and the group of first software versions produces correct outputs given that software versions can be executed simultaneously. The coefficient in polynomial is equal to the conditional probability that the group of first software versions produces correct outputs given that software versions can be executed simultaneously.

In order to let the coefficient in polynomial be equal to , the term with the exponent equal to should be removed from before applying (29) (excluding the combination in which first software versions produce correct outputs while the th software version fails).

If after the execution of first software versions the number of correct outputs produced is and , then the required number of correct outputs cannot be obtained even if all the subsequent software versions produce correct outputs. Therefore, the terms with can be removed from .

The above considerations lie at the base of the following algorithm for determining all of the probabilities ().(1)For the given , determine the order of software version termination using the algorithm from Section 4.1.2.(2)Determine the -function of each software version of cloud service according to (26).(3)Define . For ,(a)obtain using (28) and, after collecting like terms, represent it in the form (29),(b)remove from all the terms for which ,(c)If , assign and remove term from .

##### 5.2. Evaluating Response Time Distribution of the Cloud Services Composition Application

Having the pairs , for each possible realization of () and probabilities , one can obtain the p.m.f. of random response times for each cloud service by applying (22). If the conditional p.m.f. , are represented by the -function then the -function representing the p.m.f. of the random value takes the form

In accordance with the four kinds of execution patterns of cloud services in cloud services composition application, we present four kinds of composition operators for -function operation corresponding to formula (25): (1)The composition operator for sequence execution pattern: (2)The composition operator for parallel execution pattern: (3)The composition operator for split execution pattern: where the and are the probabilities that the splits, corresponding to and , are chosen to execute.(4)The composition operator for loop execution pattern.

The composition operator can be expressed by multiple composition operators , because the loop execution pattern can be transformed to an accumulation of multiple sequence execution patterns. The number of composition operators transformed is equal to the number of times of repeated execution in loop pattern.

Hence, one can obtain the -function representing the p.m.f. of the random entire application response time as where the composition operator is an abstract composition operator that it can be one of the composition operators , , , and .

In accordance with the composition patterns in cloud services composition application, the concrete -function representing the p.m.f. of can be obtained by replacing by one of the composition operators , , , and .

##### 5.3. Evaluating Response Time Distribution of Different Cloud Services Executed on the Same Hardware

Now consider the case where all of the software cloud services are consecutively executed on the same hardware consisting of parallel identical modules with the availability . The number of available parallel hardware modules is random with p.m.f. , , defined in the same way as in (17).

When , the number of software versions that can be executed simultaneously in each cloud service is . The -functions representing the p.m.f. of the corresponding cloud service response time are defined by (30). The -function representing the conditional p.m.f. of the entire application response time (given that the number of available hardware modules is ) can be obtained for any as

Having the p.m.f. of the random value we obtain the -function representing the p.m.f. of as

##### 5.4. Optimizing the Structure of Cloud Service Composition Application with Fault-Tolerant Mechanism Based on UGF and GA

When a fault-tolerant cloud service application is designed, one has to choose software versions for each cloud service and find the sequence of their execution in order to achieve the entire application’s greatest reliability subject to cost constraints. The software versions are chosen from a list of the available products. Each software version is characterized by its reliability, response time, and cost. The total cost of the entire application is defined according to the cost of its software versions. The cost for each software version can be the purchase cost if the software versions are commercial and the off-the-shelf cost, or it can be an estimate based upon the software version’s size, complexity, and performance.

Assume that functionally equivalent software versions are available for each cloud service and that the number of the software versions that should agree in each cloud service is predetermined. The choice of the software versions and the sequence of their execution in each cloud service determine the entire application’s reliability and performance.

The permutation of different integer numbers ranging from 1 to determines the order of the software version that can be used in cloud service . Let if the software version is chosen to be included in cloud service and otherwise. The binary vector determines the subset of software versions chosen for cloud service . Having the vectors and one can determine the execution order of the software versions chosen by removing from any number for which . The total number of software versions in cloud service (equal to the length of vector after removing the unchosen software versions) is determined as

The application structure optimization problem can now be formulated by finding vectors for that maximize subject to cost constraint where is the cost of software version used in cloud service , is the entire application cost and is the maximal allowable application cost. Note that the length of vectors can vary depending on the number of software versions chosen.

In order to encode the variable-length vectors in the GA using the constant length integer strings one can use -length strings containing permutations of numbers . The numbers that appear before determine the vector . For example, for the permutations and correspond to and respectively. Any possible vector can be represented by the corresponding integer substring containing the permutation of numbers. By combining substrings corresponding to different cloud services one obtains the integer string , that encodes the entire application structure.

The encoding method is used in which the single permutation defines the sequences of the software versions chosen in each of the cloud services. The solution encoding string is a permutation of integer numbers ranging from 1 to . Each number belonging to the interval corresponds to software version of cloud service. The relative order in which the numbers corresponding to the software versions of the same cloud service appear in the string determines the structure of this cloud service.

#### 6. Illustrative Examples

Consider a fault-tolerant cloud services composition application consisting of five cloud services in serial running on fully available hardware. The parameters of the software versions that can be used in these cloud services are presented in Table 1. This table contains the values of and for each cloud service and the cost, reliability, and response time for each software version.

Two sets of solutions were obtained for the maximal allowable application response times and . For each value of , four different solutions were obtained for different cost constraints. These solutions are presented in Tables 2 and 3. The tables contain the application corresponding cost and reliability for each optimal solution, the expected conditional response time, minimal and maximal possible application response times, and the corresponding optimal execution sequences of the software versions chosen.

Comparing the entire application cost and the reliability of the optimal solutions corresponding to and in Tables 2 and 3, it can be seen that the entire application cost and the reliability of the optimal solution corresponding to are always equal or greater than ones corresponding to in the case of the same value of .

Comparing the entire application cost and the reliability of the optimal solutions corresponding to the different 4 maximal allowable application costs in Tables 2 and 3, it can be seen that the entire application cost and the reliability of the optimal solution corresponding to larger are always equal or greater than ones corresponding to smaller in the case of the same value of .

From Tables 2 and 3, it can also be seen that the software versions executed in practice gradually become more and more along with the growth of the value of .

These phenomenon above indicates that the selection of suitable and is helpful to improve the reliability of the cloud services composition application and cut down the cost.

To help the designers of the cloud services composition application to select the suitable and , the values of the functions of all of solutions obtained are drawn in Figure 1. At first, the designers can intuitively find out which curves cross over the value of reliability demand. On this basis, the designers can easily find which points (solution) can meet the maximal allowable response time. The approach abovementioned can be easily realized by software. Thus, it can be applied in online prediction and optimization situation.

#### 7. Conclusions

The traditional reliability and performance prediction and optimization techniques, for example, Markov model and state space analysis, have some defects such as being too time consuming and easy to cause state space explosion and unsatisfied the assumptions of component execution independence by Markov model. Aiming at the defects of Markov model, an optimization model of reliability and performance based on MSS for cloud services application is proposed in this paper, which eliminates the limitation for component execution independence, and more fits the actual execution of cloud services composition application. On this basis, aiming at the defects of state space analysis technique, a fast optimization algorithm with very small time consumption based on UGF and GA for the reliability and performance of cloud services composition application is presented in this paper, which eliminates the risk of state space explosion. The model and algorithm presented in this paper can be applied in online prediction and optimization for reliability and performance of cloud services composition application.

#### Acknowledgment

This research was supported by the National Natural Science Funds Fund of China (61172084); Science and Technology Support Program of Hubei Province of China (2013BHE022); Natural Science Foundation of Hubei Province of China (2013CFC026); Key new product research and development of Hubei Province of China (2012BBA25002, 2012IHA015).

#### References

- W. Venters and E. A. Whitley, “A critical review of cloud computing: researching desires and realities,”
*Journal of Information Technology*, vol. 27, no. 3, pp. 179–197, 2012. View at Publisher · View at Google Scholar - L. Qi, W. Dou, X. Zhang, and J. Chen, “A QoS-aware composition method supporting cross-platform service invocation in cloud environment,”
*Journal of Computer and System Sciences*, vol. 78, no. 5, pp. 1316–1329, 2012. View at Publisher · View at Google Scholar · View at Zentralblatt MATH · View at Scopus - J. Leukel, S. Kirn, and T. Schlegel, “Supply chain as a service: a cloud perspective on supply chain systems,”
*IEEE Systems Journal*, vol. 5, no. 1, pp. 16–27, 2011. View at Publisher · View at Google Scholar · View at Scopus - C. Y. Ming and P. Y. Jen, “A QoS aware services mashup model for cloud computing applications,”
*Journal of Industrial Engineering and Management*, vol. 5, no. 2, pp. 457–472, 2012. View at Google Scholar - L. Zhao, Y. Ren, M. Li, and K. Sakurai, “Flexible service selection with user-specific QoS support in service-oriented architecture,”
*Journal of Network and Computer Applications*, vol. 35, no. 3, pp. 962–973, 2012. View at Publisher · View at Google Scholar · View at Scopus - W. Dou, L. Qi, X. Zhang, and J. Chen, “An evaluation method of outsourcing services for developing an elastic cloud platform,”
*Journal of Supercomputing*, vol. 63, no. 1, pp. 1–23, 2010. View at Publisher · View at Google Scholar · View at Scopus - Q. Wu, Z. B. Li, Y. Y. Yin, and H. Zeng, “Adaptive service selection method in mobile cloud computing,”
*China Communications*, vol. 9, no. 12, pp. 46–55, 2012. View at Google Scholar - S.-Y. Hwang, E.-P. Lim, C.-H. Lee, and C.-H. Chen, “Dynamic web service selection for reliable web service composition,”
*IEEE Transactions on Services Computing*, vol. 1, no. 2, pp. 104–116, 2008. View at Publisher · View at Google Scholar · View at Scopus - Y.-K. Lin and P.-C. Chang, “Reliability evaluation of a computer network in cloud computing environment subject to maintenance budget,”
*Applied Mathematics and Computation*, vol. 219, no. 8, pp. 3893–3902, 2012. View at Publisher · View at Google Scholar · View at MathSciNet - G. Katsaros, G. Kousiouris, S. V. Gogouvitis, D. Kyriazis, A. Menychtas, and T. Varvarigou, “A self-adaptive hierarchical monitoring mechanism for clouds,”
*Journal of Systems and Software*, vol. 85, no. 5, pp. 1029–1041, 2012. View at Publisher · View at Google Scholar · View at Scopus - M. L. Chiang, “Efficient diagnosis protocol to enhance the reliability of a cloud computing environment,”
*Journal of Network and Systems Management*, vol. 20, no. 4, pp. 579–600, 2012. View at Publisher · View at Google Scholar - X. Yang and H. Zhang, “Cloud computing and SOA convergence research,” in
*Proceedings of the 5th International Symposium on Computational Intelligence and Design (ISCID '12)*, vol. 1, pp. 330–335, Hangzhou, China, 2012. - R. Sharma, M. Sood, and D. Sharma, “Modeling Cloud SaaS with SOA and MDA,” in
*Proceedings of the 1st International Conference on Advances in Computing and Communications*, vol. 190, pp. 511–518, Kochi, India, July 2011. - R. K. Das, S. Patnaik, and A. K. Misro, “Adoption of cloud computing in e-governance,” in
*Proceedings of the 1st International Conference on Computer Science and Information Technology*, vol. 133 of*Communications in Computer and Information Science*, pp. 161–172, January 2011. View at Publisher · View at Google Scholar - L. Qi, W. Dou, X. Zhang, and J. Chen, “A QoS-aware composition method supporting cross-platform service invocation in cloud environment,”
*Journal of Computer and System Sciences*, vol. 78, no. 5, pp. 1316–1329, 2012. View at Publisher · View at Google Scholar · View at Zentralblatt MATH · View at Scopus - X. Chen, X. Liu, F. Fang, X. Zhang, and G. Huang, “Management as a service: an empirical case study in the internetware cloud,” in
*Proceedings of the IEEE International Conference on E-Business Engineering (ICEBE '10)*, pp. 470–473, Shanghai, China, November 2010. View at Publisher · View at Google Scholar · View at Scopus - P. Kumar, V. K. Sehgal, D. S. Chauhan, P. K. Gupta, and M. Diwakar, “Effective ways of secure, private and trusted cloud computing,”
*International Journal of Computer Science Issues*, vol. 8, no. 3, pp. 412–420, 2011. View at Google Scholar - X. Xu, C. Cheng, and J. Xiong, “Reliable integrated model of cloud & client computing based on multi-agent,”
*Journal of Computational Information Systems*, vol. 6, no. 14, pp. 4767–4774, 2010. View at Google Scholar · View at Scopus - J. Liu, J. Zhou, J. Wang, X. Chen, and H. Zhou, “Cloud service: automatic construction and evolution of software process problem-solving resource space,”
*Journal of Supercomputing*, pp. 1–25, 2010. View at Publisher · View at Google Scholar · View at Scopus - J. Murhland, “Fundamental concepts and relations for reliability analysis of multistate system,” in
*Reliability and Fault Tree Analysis. Theoretical and Applied Aspects of System Reliability*, pp. 581–618, SIAM, 1975. View at Google Scholar - E. El-Neweihi, F. Proschan, and J. Sethuraman, “Multistate coherent systems,”
*Journal of Applied Probability*, vol. 15, no. 4, pp. 675–688, 1978. View at Publisher · View at Google Scholar · View at Zentralblatt MATH · View at MathSciNet - R. E. Barlow and A. S. Wu, “Coherent systems with multistate components,”
*Mathematics of Operations Research*, vol. 3, no. 4, pp. 275–281, 1978. View at Publisher · View at Google Scholar · View at MathSciNet - S. Ross, “Mulivalued state element system,”
*Annals of Probability*, no. 7, pp. 379–383, 1979. View at Google Scholar - A. Lisnianski and G. Levitin,
*Multi-State System Reliability: Assessment, Optimization and Applications*, vol. 6 of*Series on Quality, Reliability & Engineering Statistics*, World Scientific, River Edge, NJ, USA, 2003. View at MathSciNet - I. Ushakov, “Optimal standby problems and a universal generating function,”
*Soviet Journal of Computer Systems Science*, vol. 25, pp. 79–82, 1987. View at Google Scholar