Abstract
This paper describes the design of model-based Recovery and Adaptation Connectors (RAC) that handle recovery and adaptation concerns of services in service-oriented architectures. When a service needs to be dynamically adapted, RAC ensures that the service first transitions to a quiescent state before it is replaced with a new service. When a service recovers from a run-time failure, RAC ensures that transactions that have been interrupted due to service failure are aborted and then restarted with the recovered service. Thus, RAC ensures that no transactions are lost due to dynamic service adaptation or failure. The design of the RAC is based on the autonomic computing MAPE-K loop model and handles both stateless and stateful services. Our approach has been validated through experimentation of planned failure and adaptation scenarios.