Proactive adaptation approach for pervasive distributed systems
The demand for systems that dynamically adapt to their environment is increasingly growing. By definition self-adaptive software modifies its own structure and behavior in response to changes in its operating environment and its context. Although there are several approaches aiming to achieve a global objective function, we can categorize them according to temporal characteristics as having: reactive adaptation or proactive adaptation.
Reactive adaptation responds to the current environment and system state. Is base on a set of information of recent system conditions and invoke adaptation strategies if an immediate problem arises. However, this approach has few disadvantages. First, if the condition that triggers the adaptations last less time than the adaptation itself, it becomes unnecessary to carry out such adaptation.
Second, if the system goes under rapid shifting conditions, it may take several adaptation cycles before stabilizing the system, due to the fact that reactive adaptation optimize instantaneous utilities which may often be sup-optimal over a long period of time, e.g. enlisting four servers one at a time rather than all at once. Third, reactive adaptation does not consider seasonal behavior of the system; is when the system conditions occur once every period of time, such as every day at 6 AM or every weekend. Then the adaptation pattern can be predicted.
Our proactive approach claims that self-adaptive systems can be improved using resource and environment predictions and increase over-all choice of adaptation. In order for the system to perform predictions, it will need to monitor and store historical values of resource demand, resource availability and user’s tasks. We will focus on monitoring resource types such as CPU, memory usage and network bandwidth.
We also propose to use models at runtime, which is a causal connected self-representation of the structure, goal and behavior of the system. We will use high-level domain abstractions to simplify the representation of the variants and limit the problem of combinatorial explosion of possible configurations. Then integrate the predictive information to generate the adaptation logic and act proactively before changes take place.
We have done a literature review of related work and identified four modeling dimensions for self-adaptive systems: goals, are objectives the system under consideration should achieve, second, changes that causes adaptation, is what triggers the adaptation, third, mechanisms of adaptation, which is the reaction of the system toward change, and fourth, effects of adaptation, what is the impact of adaptation on the system.
Currently, we are evaluating tools that support the idea resource prediction; one of them is Palladio Component Model. Another tool that supports models at runtime is Kevoree. We propose to build on top of these tools the reasoning layer that can pre-adapt the system in front of expected changes. Is not enough to perform adaptation actions reactively, we need to predict and act proactively.
Simultaneously we are realizing proof of concepts of our approach by developing a toy example. This example consists of a wireless sensor network that monitors a forest in order to detect early fires. From this experience we are writing a position paper with more detail information. In the future months we plan to evolve these ideas and illustrates our approach in other domains.
Main research interests
- Pervasive Software
- Software Product Lines
- SaaS. PaaS, IaaS, cloud computing
- Service Oriented Architecture
- Service Oriented Applications
Paez Anaya I., Simko V., Bourcier J. and Plouzeau N. : A prediction-driven adaptation approach for self-adaptive sensor networks. In Proceedings of 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’14), Hyderabad, India, May 31, 2014, PDF
Hamadache K., Zerva P., Polyviou A., Simko V., Dautov R,. Gonidis F., Paez Anaya I.: Cost in the Cloud Rationalisation and Research Trails. In Proceedings of the 2nd International Conference on Advanced Cloud and Big Data (CBD 2014), November 20-22, Huangshan, Anhui, China, 2014 (To appear)
Links to related work