Web application system will age after running a long period which is also called software aging. Therefore, how to deal with the phenomenon of software aging in web application system becomes more and more important. To improve software reliability and counteract the phenomenon of software aging, researchers propose a proactive technology called "software rejuvenation". Software rejuvenation means hanging up the software, cleaning up its internal state and then restarting it, so that the software can come back to its initial state. Traditional software rejuvenation policies all focus on when and how often rejuvenation should be executed, while the execution of rejuvenation is to restart the whole operating system or software. However, these single-level software rejuvenation policies are not suitable for web application system which can be treated as a multi-level and loose-coupled architecture. The main problems lie in that the granularity is too rough and the price for software rejuvenation is too high.To solve the above problems, we propose a multi-level software rejuvenation policy for web application system. First, web application system is divided into four levels for rejuvenation, which is operating system level, middleware level, application level and component level. Then the advantages and disadvantages of each rejuvenation level are discussed. After that, we propose the framework of multi-level software rejuvenation system (MLSRS), and describe the working process of main function modules in MLSRS. Furthermore, we construct a evaluation model to evaluate whether the system is aging and need to be rejuvenated or not. In the model, we abstract the loss of many system resources aging-related and then use the weighted sum of loss to characterize the aging status of the server. Then we present a selecting algorithm for rejuvenation level, in which multiple attribute decision is used. Before rejuvenation is taken, the algorithm select the most satisfactory rejuvenation level based on the server’s status and the payload, and then take rejuvenation. Finally, we propose a sorting strategy for components to be rejuvenated. Some components need to be rejuvenated together, so we divided the components to several separate component sets based on the coupling relationship of components. The components in a set should be rejuvenated together. After that, BP network is used to evaluate the component sets. Then the component set is rejuvenated one after another, and the sequence is determetered by the evaluating result of BP network. |