Optimization of adaptation plans for a service-oriented architecture with cost, reliability, availability and performance tradeoff
A service-based system may require adaptation for several reasons, such as service evolution (e.g., a new version may be available), hardware volatility (e.g., network quality changes), and varying user demands and new requirements (e.g., a new functionality or a different level of quality of service). Therefore, it is suitable to dynamically adapt a service-based system in an automated manner. However, service adaptations often do not consider software quality attributes and, if they do, they relay on a single attribute in isolation. In this paper, we present an optimization model, which aims to minimize the adaptation costs of a Service-Oriented Architecture (SOA), in correspondence with a certain change scenario (i.e., a set of new requirements) under reliability, availability and performance tradeoff. The model predicts the quality of the new SOA obtained by changing both its structure and behavior. Specifically, it suggests how to replace existing services with available instances and/or adding new services, and how to remove or introduce interaction(s) between existing services and/or new services. We show how our model works on a smartphone mobile application example, and through the sensitivity analysis we highlight its potential to drive architectural decisions.