Supporting quality of service, configuration, and autonomic reconfiguration using services-aware simulation
Smit, Michael · ERA: Education and Research Archive (University of Alberta) · 2011
Service-oriented architectures (SOA) enable interaction among multiple entities, loose composition of components, service substitution, dynamic run-time binding, and a network-driven infrastructure. These potential benefits, regardless of the technology providing them, introduce challenges: multiple organizations interacting, behavior that changes at run-time, and `black box' functionality. Service interactions can be governed by service level agreements (SLAs) specifying quality of service standards; meeting these standards is an ongoing challenge. This dissertation advances the state of the art for configuring, deploying, and managing service systems. First, it demonstrates that authoring a simulation of a service-oriented system need not be prohibitively difficult, and that such simulations can produce a narrative that offers useful and realistic information about the predicted performance of a software system. This is in contrast to the results of a systematic survey of current frameworks. A framework is described and implemented that improves on the state-of-the-art in key areas. Second, this approach is used to simulate two real-world service systems. They are validated to accurately predict performance, and serve as testbeds for demonstrating simulation-driven methodologies. Third, a novel view on how service level agreements are negotiated, deployed, and evaluated is described. A simulation-driven methodology and tool allows consumers to explore trade-offs among configuration goals, based on a desire to produce an SLA that maximizes perceived value for the consumer and the provider. Another simulation-driven tool answers questions posed by administrators seeking configurations that will adhere to an SLA. A third tool enables run-time testing and monitoring of a service system. The tools are implemented and tested in both simulated and real scenarios. Finally, an autonomic manager capable of re-configuring an application at run-time is presented. A decision model is created before the service is deployed by running the simulation (either manually or automatically), collecting traces of performance, and constructing a state-transition model that identifies the (abstract) states of an application and the transitions among them. This is implemented and tested both in simulation and in a real-world cloud computing environment. Questions about the granularity of the abstract states and the size of the state space are asked and answered using empirical results.