Skip to Main Content
Self-healing systems are capable of changing their behavior at runtime to meet target constraints. An important research question is how quality of service models can enabled self-healing systems. This paper presents a solution to the problem for service-oriented architectures. Service-oriented architectures (SOAs) consist of a group of independent computational services, with communication between services being managed and maintained via external orchestration. We employ dynamic programming, a form of optimal control theory, to reconfigure SOA orchestration. Reconfiguration occurs when a performance constraint over the orchestration a global service level agreement (SLA) is violated. Currently, reconfiguration may take the form of re-directing and load-balancing of calls to services that offer equivalent functionality, but better performance. Previous experiments by Poernomo and Akzhalova involved application of optimal control theory to determine reconfiguration policies for a single service. This paper presents a significant improvement, as we now consider entire orchestrations of services. Furthermore, by utilizing dynamic programming, our new approach has the advantage of determining adaptation policies from a given discrete set of choices.