Efficient improved ant colony optimisation algorithm for dynamic software rejuvenation in web services

IET SoftwareVolume 14, Issue 4 p. 369-376 Research ArticleOpen Access Efficient improved ant colony optimisation algorithm for dynamic software rejuvenation in web services Kimia Rezaei Kalantari, Department of Computer Science, Babol Branch, Islamic Azad University, Babol, IranSearch for more papers by this authorAli Ebrahimnejad, Corresponding Author a.ebrahimnejad@qaemiau.ac.ir Department of Mathematics, Qaemshahr Branch, Islamic Azad University, Qaemshahr, IranSearch for more papers by this authorHomayun Motameni, Department of Computer Science, Sari Branch, Islamic Azad University, Sari, IranSearch for more papers by this author Kimia Rezaei Kalantari, Department of Computer Science, Babol Branch, Islamic Azad University, Babol, IranSearch for more papers by this authorAli Ebrahimnejad, Corresponding Author a.ebrahimnejad@qaemiau.ac.ir Department of Mathematics, Qaemshahr Branch, Islamic Azad University, Qaemshahr, IranSearch for more papers by this authorHomayun Motameni, Department of Computer Science, Sari Branch, Islamic Azad University, Sari, IranSearch for more papers by this author First published: 01 August 2020 https://doi.org/10.1049/iet-sen.2019.0018Citations: 1AboutSectionsPDF ToolsRequest permissionExport citationAdd to favoritesTrack citation ShareShare Give accessShare full text accessShare full-text accessPlease review our Terms and Conditions of Use and check box below to share full-text version of article.I have read and accept the Wiley Online Library Terms and Conditions of UseShareable LinkUse the link below to share a full-text version of this article with your friends and colleagues. Learn more.Copy URL Share a linkShare onEmailFacebookTwitterLinked InRedditWechat Abstract Software rejuvenation is an effective technique to counteract software ageing in continuously-running applications such as web-service-based systems. In a client-server application, where the server is intended to run perpetually, rejuvenation of the server process periodically during the server idle times increases the availability of that service. In these systems, web services are allocated based on the receiver's requirements and server's facilities. Since the selection of a server among candidates while maintaining the optimal quality of service is an NP-hard problem, meta-heuristics seems to be suitable. In this study, the proposed dynamic software rejuvenation as a proactive fault-tolerance technique based on a combination of ant colony optimisation (ACO) and gravitational emulation local search (GELS) so as to determine the optimal times when rejuvenation can be performed and failure rate can be minimised. The newly proposed method combined the public search capabilities of ACO with local search of GELS algorithm in an effort to create a stable algorithm, which can make reaching the global optimum largely possible in the proposed work. The simulation results revealed that the proposed strategy can decrease the failure rate of web services averagely by 28% in comparison with genetic algorithm and decision-tree strategies. 1 Introduction Web service refers to a client server application for the purpose of communication. Moreover, it provides a flexible solution for software integration under web environments [1]. The web services have been broadly adopted in e-business, e-government, finance, multimedia services and automotive systems. Multiple web services can provide similar functionalities with different non-functional properties, known as quality of service (QOS) attributes. The most critical metrics to measure the QOS of long-running, real-time applications include reliability, availability and deadline guarantees. It is generally an essential but complex task to produce a service composition offering an optimal QOS value which satisfies customer requirements [2]. For instance, web services not equipped with QOS technology in e-business could adversely affect the business operations, e.g. poorly guaranteed profits, longer outages and downtime. A number of studies [3, 4] have reported software ageing phenomena as one of the major causes of performance degradation and unplanned software outages. As a phenomenon normally observed in software programs, software ageing implies that the long-running system suffers from abnormal state, performance degradation, and ultimately hanging, and failure. There are several reasons behind software ageing, namely extreme consumption of operating system resources, data corruption and round error accumulation, which might subsequently lead to memory leaks, data fragmentation, unreleased file locks and database connections. Regarded as one of the most commonly adopted approaches, software rejuvenation serves to handle issues caused by software ageing. In fact, this process fixes the accumulated errors and frees operating system resources [5]. Nonetheless, software rejuvenation barely solves the underlying cause of software ageing. Consequently, software ageing will persist as the system starts up, while software rejuvenation runs cyclically in a pre-specified or scheduled time to maintain the firmness of the software system. In addition, the software system may go through performance downtime and even fault during rejuvenation procedures. In the meantime, it may impose a number of costs (e.g. the cost of business losses due to inaccessibility at the time of rejuvenation). Nevertheless, the total costs incurred by software rejuvenation are far lower than those incurred by system fault. The most critical problem in this scenario is how to adopt an affordable rejuvenation policy so as to achieve sufficient system reliability, reduce maintenance and system inactivity costs, and eventually improve system availability. In previous studies, software reliability was improved through applying software defect prediction to the process of software maintenance in an attempt to identify any potential bugs [6]. Li et al. [7] proposed a hybrid technique dubbed software process risk optimisation method which integrates risk management into software process model. This technique resembles a heavyweight approach, which is hardly desirable for web service environments. Ning et al. [8] examined multi-granularity software rejuvenation policy, while assuming that inspection intervals follow an exponential distribution. These studies were limited since they considered constant time and distribution that curbed the system performance. Optimal scheduling of services in web service environments has been demonstrated to be an NP-complete problem. Therefore, it seems crucial to adopt a heuristic method [9]. Additionally, intelligent optimisation approaches or meta-heuristic algorithms, including genetic algorithm (GA), particle swarm optimisation and ant colony optimisation (ACO) have perfectly addressed the QOS problem in recent years [10]. In [11], a hybrid optimisation algorithm was suggested in order to enhance the scheduling process in web services, where GA and ACO algorithms are combined. This method, however, is limited due to improvement of operation steps and parameter selection. This paper puts forth a novel dynamic ACO-based software rejuvenation technique to find the optimum time of rejuvenation and decrease the number of web service failures as described in the following. When the ants continue to spread out pheromones, new information will soon be updated to the environment with certain dynamic characteristics. Since each ant makes its own decision according to the environment and then sends out its pheromones, the ACO entails several distributed features. In this regard, the ant shares environmental information while affecting the environment, i.e. ACO obtains the characteristics of a cooperative operation. These three characteristics are compatible with the super-large scale, heterogeneous and real-time characteristics of web-service-based systems. Thus, the ACO-based algorithm is ideal for software rejuvenation as well as QOS in long-running web service systems. In an effort to derive the optimum policy, we analysed the system model by evaluating reliability and extending threshold for rejuvenation in servers during web services allocation. The newly proposed method works by rejuvenating servers, the reliability values of which are lower than threshold extension. Although the ACO-based approach can solve the previous problems, it offers very slow convergence speed. Therefore, we adopted the GELS algorithm to enhance the performance of the new method, while reducing the failure rate in web services. The next sections of this paper are organised as follows. Section 2 covers the previous relevant works. Section 3 deals with fault tolerance in web services. Review of ACO and gravitational emulation local search (GELS) algorithms are both explored in Section 4. Section 5 provides and overview of the newly proposed dynamic software rejuvenation based on the hybrid of ACO and GELS. The experimental results have been reported in Section 6. Finally, the conclusions and future work have been discussed in Section 7. 2 Literature review Considering the rapid growth of internet technology, the reliability of web applications has become a major concern. The important measure in achieving reliably involves the performance and availability of web application or server. In a sense, software ageing refers to an escalating weakness of the internal state of software programs. When software programs are run continuously for long periods of time, the corresponding processes accelerate ageing. There are several reasons behind processing ageing, including lack of memory and non-release file locks, and data corruption in the operating environment. While affecting the performance of a device, ageing will ultimately lead to application failure. Software rejuvenation is known as a dynamic, fault-tolerance technique employed to cover the software ageing problem. Considered one of the key requirements for web service based systems, reliability needs to provide services with high availability, high fault tolerance and dynamic deployment capabilities. Dantas et al. [12] proposed a number of availability models for private cloud architectures based on Eucalyptus platform. In this respect, cloud computing systems basically provide access to large datasets and computing resources. Nonetheless, one of the main culprits for the sluggish growth of cloud computing is security [13]. Araujo et al. [14] proposed a software framework substantially adopted as a service for private cloud computing. This research delved into the software effectiveness within the framework of Eucalyptus in terms of system workloads and high demands for remote storage and virtual models. The researchers then proposed an approach offering a time series analysis for rejuvenation scheduling. It serves to reduce the fault time by predicting the appropriate time for rejuvenation. With the advent of peer-to-peer systems, there has been a vital need to discover and exploit diverse groups, multiple features and dynamic, distributed resources. In this regard, Bandara and Jayasamana [15] examined a variety of problems concerning peer-to-peer systems. These systems were explored in terms of solutions for collecting and discovering new resources with regard to their architecture, search overheads and load balancing. Furthermore, they offered software rejuvenation in peer-to-peer systems, which intended to improve these features. Guo et al. [16] adopted discrete web services in order to measure software ageing failures and software rejuvenation strategy considering the fact that discrete web services provide a loose connection feature to the server. In their method, the researchers employed several linear regression techniques to calculate the ageing of web services individually. Since server unavailability more frequently originates from software faults, Kulkarni [17] proposed a new method for shifting of application on virtual machine (VM) through time-based rejuvenation. Moreover, stochastic hill climbing was adopted by Rashmi and Basu [18] so as to schedule workflow jobs to VMs, which in turn was expected to make the best possible use of resources in cloud computing. Torquato et al. [19] presented a number of availability models based on stochastic petri net in an effort to evaluate two VM live migration approaches. The method concentrated on redundancy schemes known as Warm-Standby and Cold-Standby. In [20], researchers proposed a hybrid optimisation algorithm, which combined cuckoo and harmony search algorithms in an attempt to enhance the scheduling process. Slow local search convergence, however, limits the method. Elmsalmi et al. [21] adopted a modelling technique called supply chain risk management, which provides effective risk prioritisation. The risks involved in a supply chain network are identified first and then the model develops a reachability matrix. However, this approach only covers the specifics to supply chain management perspective and hardly provides a generic solution. Since decision-tree is a popular machine learning algorithm, Ghayathri and Pannirselvam [22] proposed a new web service quality prediction model. In fact, they applied the classification of web services based on a decision-tree approach. The modified algorithm from C5 classifier was used to conduct the classification based on QOS parameters. Umesh and Srinivasan [23] introduced an adaptive genetic algorithm for rejuvenation. More specifically, they employed their method to perform live migration, thus preventing downtime. Mooij et al. [24] demonstrated that semi-automatic software rejuvenation tends to be feasible and cost-effective in industrial operations. They also adopted specific domain models involving abstract implementation details while applying a practical integration of manual and automated techniques. In their effort to cover the ageing problem, Sumathi and Raju [25] used a type of rejuvenation finely planned and scheduled. They actually carried out the rejuvenation process for the Apache Web service provider through the feed forward neural network. In [26], the system state was saved on a reliable storage through software rejuvenation coupled with occasional check pointing, in a way that the mission task could be resumed from the last saving checkpoint. This study was limited because the assumptions of the full state independent rejuvenation led to a degraded system. Generally speaking, the majority of previous methods proposed to optimise software rejuvenation in different software systems come with certain shortcomings. The current study attempted to overcome most of these shortcomings, a few important of which are summarised below: The methods proposed for optimisation of software rejuvenation in software systems are mostly one-dimensional, i.e. only one single aspect of software rejuvenation is covered. For instance, Meng et al. [27] presented non-sequential inspection intervals to optimise software rejuvenation. They did not, however, take into account other effective dimensions in software rejuvenation. In their study, Machida and Miyoshi [28] examined an optimal stopping problem for software rejuvenation. However, they did not cover sequences through different time intervals. In our proposed method, we adopted the reliability and accessibility thresholds to assess software rejuvenation at different time intervals. The majority of newly proposed methods for software rejuvenation involve static management in systems; i.e. they consider a static structure for software rejuvenation. Nonetheless, they failed to test methods for software rejuvenation at the time of running the software under different scenarios [27, 29, 30]. In our work, we dynamically rejuvenate software based on general system state individually for each service provider. The meta-heuristic algorithm has been employed since the server selection from candidates is regarded as an NP-hard problem [31]. One of the major problems in optimisation of software rejuvenation is that the optimum time for rejuvenation is dependent on the distribution of software system failures. Frequently, the proposed methods have included a specific probability distribution for failure events. For instance, one of the Poisson, Gaussian or Weibull distributions has been employed. Conversely, the effects of failure event distributions were not evaluated in optimisation of software rejuvenation [29, 32-34]. Our new method is independent of the specific probability distribution of failure. Many software rejuvenation methods stop the software system during rejuvenation; i.e. user requests are not responded throughout the process of rejuvenation. This implementation mechanism simplifies the procedure, but reduces the system's availability [35]. In the newly proposed technique, at least one back-up service provider is available in order to respond to suitable web services during rejuvenation. In spite of partial decline of efficiency, the whole system never stops during rejuvenation. The majority of software rejuvenation methods proposed so far entail a single version for the software. Therefore, the fault tolerance tends to be low and the system availability declines during rejuvenation [33, 34]. One of the problems in optimisation of software rejuvenation is how to choose the most suitable server for web application allocation that can reduce the number of failures. Never before did threshold was considered for rejuvenation of web services and servers. 3 Fault tolerance in web services As a criterion for web services, fault tolerance has grown into a significant research topic revolving around the selection procedure of a web service. The conventional fault tolerance web service models come with certain limitations. For instance, various essential sources of fault tolerance do not integrate, nor do they focus on different attributes of service quality namely performance and accessibility to fully meet user requirements. In an effort to overcome these constraints, Nguyen et al. [36] developed a Bayesian fault tolerance model for web services. Furthermore, their method extensively resolved the problems of user preferences and fault tolerance, whereas it never covered important issues such as transaction context factors and boot-strapping. Yahyaoui [37] proposed a new game theory model based on fault tolerance, which could collaborate with web services. In this research, each partner is modelled as a game. In each round, a web service provider bids for collaboration in accomplishing a specific task. A web service wins the game when it incurs the lowest cost based on fault tolerance. Wang et al. [38] provided a QOS measure approach, where service provider, customer background and historical statistics were considered as core elements. However, this method is limited since there are no crystal-clear guidelines on what would be the most desirable choice to certain parameters. As an excellent innovation, web service has generated a resilient solution to aggregation of various online applications with conventional Internet protocols and open standards. The flexibility and availability has empowered web service to successfully manage dynamic requests in a distributed online collaboration. It is worth mentioning, however, the above capability is limited due to restrictions of the web service security namely uncertainty, openness and fraud. A solution to that problem can be fault tolerance. In this respect, Liu et al. [39] introduced a fault tolerance evaluation model offering a reasonable correction logic. The method improved the SOA framework through incorporation of a trust management module. Then, the trust evaluation model was proposed based on an amendatory subjective logic by viewing trust relationships of service entities in web service networks at a small-world scale. Sun et al. [40] examined the fault tolerance management in web services, while proposing a multi-agent model for fault tolerance relationships in web services. In their paper, Wahab et al. [41] explored how different types of web services are categorised in single, mixed and associative web services. They further outlined several effective criteria for evaluation of fault tolerance in the above web services. Nepal et al. [42] developed a fuzzy fault tolerance management framework, where the mental aspects of fault tolerance are defined for users requesting web services. Moreover, fuzzy methods usually cover web services based on user requests while discarding the details of a web service and categorisation. In this research, we basically focused on web services, adopting reliability and threshold criteria for rejuvenation. Single web services are the building blocks of web services. Single web services are essential for optimisation and implementation of combined hybrid and community web services. 4 Ant colony optimisation algorithm Meta-heuristic optimisation algorithms are becoming popular in engineering applications because they rely on simple concepts and are easy to implement. Meta-heuristic algorithms impersonate biological or physical phenomena in order to handle complex real-world optimisation problems [43]. Some of the most prominent nature-inspired meta-heuristic algorithms include ant lion optimisation [44], whale optimisation algorithm [45] and ACO [46]. ACO is a simulation of real ants. The idea behind this algorithm is to adapt and use the ant communication style. The ant colony system has been proposed to overcome stagnation and could be very easily adapted to nearly all types of combination optimisation problems [47, 48]. One of the first experiences with real ants was made in 1990 [49]. The results showed that although the ants initially seemed to choose at random the path to follow, they all converged after a while to the shortest path. They found that this was due to the amount of pheromone present on the path. The first ACO algorithm was used to solve a well-known NP-hard problem called travelling salesman problem. The ant system algorithm considered a single ant colony with m artificial ants cooperating with each other. The algorithm contains two main phases, the construction of solution and the pheromone update. At tach step of the construction, an ant has to choose the next situation to travel to. This choice is made by using transition rules as follows: (1)where Tij is the amount of pheromone on edge i,j. α is a parameter to control the influence of the Tij, β is a parameter to control the influence of ɳij and is the set of situation not yet visited by ant k while at city i. After building the solution the pheromone values in the arcs are updated according to the following equation: (2)where Tij is the amount of pheromone on a given edge ij, ρ is the rate of pheromone evaporation and ΔTij is the amount of pheromone deposited typically given by (3)where is the cost of the kth ant's tour. Pheromone values are updated by ants that have completed the tour (4)where ρ is the evaporation rate, m is the number of ants and is pheromone quality laid on edge (i,j) by kth ant [50, 51]. The main reason for choosing ACO in our work is that it facilitates the building of candidate solutions as proposed to only facilitating the solution space exploration. 5 Proposed method The basic research procedure is shown in Fig. 1. At first, initial configuration of the system is completed and for the first problem mentioned at the end of Section 2, the proposed method has considered server's reliability and time threshold based on the requested web services. Then, all of the web service requests are received with their priority. In the following, according to the proposed method in Fig. 2, the dynamic rejuvenation was done by measuring server's reliability and time threshold factors in the middle of software running so as to solve the second lack. ACO is a swarm intelligence algorithm successfully applied to several NP-hard combination problems such as traveling salesman [52], quadratic assignment problem, job scheduling [53]. However, the ants' solutions are not guaranteed to be optimal with respect to local changes. To resolve the limitations of previous works, a new dynamic software rejuvenation is proposed in this paper based on an improved ACO algorithm. The idea behind using meta-heuristics is to increase performance and decrease the computational time to get the job done. In our case, meta-heuristics need to consider the robust solution of finding the right combination of service providers and request web services. GELS has been applied to improve the performance of the proposed approach. ACO is firstly used to find optimal solutions and then GELS is used to optimise local optimal solutions searched by ACO. Fig. 1Open in figure viewerPowerPoint Basic block diagram in our work Fig. 2Open in figure viewerPowerPoint Overall steps of the allocating requests Next, reliability and accessibility parameters of servers are evaluated. Finally, the web service providers with lower reliability and accessibility value than the defined threshold are rejuvenated. In the proposed method, the systems requiring rejuvenation receive no request from users, but at least one back-up service provider is available in order to respond to suitable web services during rejuvenating. This causes the system to never stop. In the suggested method, several web service providers were considered for responding to receivers in an effort to solve the last shortcoming in previous related works. In this case, when one server stops, the whole system fails to afford halt and increases accessibility at rejuvenation time. In this study, single web services are used. For this web service, we set a number of criteria such as run-time, threshold of reliability and maximum deadline on the receiver side which requests the web service. On the server side, we considered criteria such as reliability, failure rate and rejuvenation rate. The proposed method calculates the mean time to failure (MTTF) of all web services in order to calculate the inspection periods for rejuvenation, and set the inspection period to be the lowest MTTF for all web services. In this paper, the servers provide web services based on receivers' request for web services under two conditions. Firstly, they need to meet the least reliability requirements for those services. Secondly, there should as far as possible be maximum matching between the web service requested and the web service allocated. The reliability of web services in this research is considered exponentially by (5) where λ denotes the rate of failure (5)One of the problems in optimising software rejuvenation is to select a suitable server for web application allocation that can reduce fail number. Meta-heuristic algorithms such as ACO are now becoming a powerful, simple and robust approach to solve this problem. The efficient algorithm based on ACO was used for the allocation of the requested web services to servers. The purpose of the offered method is to reduce the failed web service numbers. Moreover, the proposed method uses GELS in order to avoid the fast convergence of the algorithm and increase the feasibility of scanning. Accordingly, most requests which have been failed in traditional algorithm can be selected with a slight decrease in performance. Generally, this solution can reduce the mean of failed web services numbers. Fig. 2 shows the overall steps of the allocating method. As can be seen, the proposed flowchart indicates some difference with traditional ant colony algorithm in some aspects. There are several servers each of which can respond to some web services based on the resources and their own current reliability. The proposed method receives user's requests and determines reliability and threshold factors for each service and then allocated services to servers through the web service management algorithm. 5.1 Indexing implementation and creation of the pheromone table In this step, the proposed method starts to index the running of each web service based on the web service's and server's features. A unique number is considered for each web service and a four-column matrix is created. The number of rows is equivalent to the number of requested services. The first column represents the number of index related to user's request, the second column shows the web service number, the third column is the server number and the last one depicts the situation of web service. Actually, it is determined in this step that in which server every web services runs. The web service stands in one of the three situations: running, waiting for running and failing situations. In the following, the pheromone table was built, through indexing table. After creation of the pheromone table, the proposed method determined the initial pheromone value for each matrix cell of the table. This initial amount of pheromone is allocated to the algorithm via input parameters. 5.2 Ant creation Each ant is a solution in the proposed method and determines the web services running sequence. For presentation of an ant, one-dimensional array was used in which the size of each array is equivalent to the number of web services in the problem and each matrix member displays the server number upon that the mentioned service runs. For ant creation, a valid running is first allocated to an ant. At this moment, the ant for the next execution is calculated according to the indexing table – the possibility of the not proposed web service selection – and based on (1), where ɳij is the sum of the unemployment processor and web services completion time. Tij demonstrates the amount of pheromone for ij element in the pheromone table. α, β represent the amount