Enhancing Service-oriented Systems with Autonomic Capabilities
Adina Mosincat · 2011
One major challenge of software systems is change. Self-adaptive systems deal with this challenge by enhancing computer systems with the ability to automatically adapt themselves to changing conditions. For complex, service-oriented systems that typically depend on several distributed services and run in a highly dynamic environment, featuring autonomic capabilities is vital. Web service compositions are good examples of service-oriented systems. Existing languages and tools for service composition offer limited support for autonomic behavior. Moreover, existing approaches to achieve autonomic behavior in service compositions usually address only one aspect of autonomic behavior. While most approaches address self-healing, there is little work in the area of self-optimization. The work presented in this dissertation addresses these limitations by providing adaptation mechanisms that allow for self-healing, self-tuning, and QoS-aware execution of service compositions. To demonstrate the effectiveness of our mechanisms we have chosen BPEL, the most widely used service composition language, and have integrated the mechanisms in our framework, ADULA, which also provides a solution for transparent dynamic service binding and monitoring for BPEL processes. We enhance the composition with self-healing behavior through customizable binding policies. Self-tuning is achieved by making use of a probabilistic service selection strategy that takes into consideration the recently monitored performance of the services. We provide two mechanisms for QoS-awareness of the service composition; the first one leverages statistical tests to determine if a service level objective (SLO) violation has occurred, and the second one automatically evolves the system model based on monitored information and uses the evolved model at runtime to adapt to changing conditions. We have developed a testbed to evaluate our mechanisms in different settings. The evaluation results confirm that our adaptation mechanisms allow the service composition to recover from failures of bound services, increase the throughput of the system in settings where service performance fluctuates, and allow the service composition to meet its quality requirements, i.e., SLOs, in settings where the performance of the bound services degrades, preventing further SLO violations. Thus, the adaptation mechanisms presented in this dissertation successfully enhance the service composition with autonomic capabilities.