Managment of Service-Oriented Systems
Vladimir Tošić, Claudio Bartolini, Patrick C. K. Hung · 2009
Management (monitoring and control) of service-oriented systems is needed to ensure their regular operation, attain guaranteed quality of service (QoS), and accommodate changes. Monitoring is used to measure technical QoS (e.g., response time, throughput, availability) and/or business value metrics (e.g., profit, return on investment, number of customers, customer satisfaction). Control is used to reactively/proactively ensure that there are no faults and that the measured quantities are within desired boundaries. To successfully perform monitoring and control, runtime management issues should be considered during design-time software (and system) engineering activities. Management of service-oriented systems can be viewed from several aspects. In this tutorial, we will emphasize QoS management and maximization of business value. The tutorial will first clarify the importance of these topics and why the widely used basic Web service technologies are not enough. Then, it will explain theoretical principles (e.g., service level agreement SLA, policy, intermediary, probe, and multiple request queues) for specification, monitoring, and control of QoS and business value attributes. Next, it will provide a critical analysis of several important research achievements and industrial products in this area. We will also present a brief introduction to business-driven IT management (BDIM) and possible approaches to extend management solutions maximizing QoS into solutions maximizing business value metrics. At the end, a number of open topics and resources for further study will be identified. After attending this tutorial, participants will have general knowledge and understanding of the challenges and fundamental concepts related to the specification, monitoring, and control of QoS and business value metrics of (Web) services and business processes implemented with (Web) services, and open research issues. This knowledge can help them in making decisions about using some of the existing technologies in software systems they engineer and/or in conducting further research in the area.