Autonomic Performance Optimization with Application to Self-Architecting Software Systems

AUTONOMIC PERFORMANCE OPTIMIZATION WITH APPLICATION TO SELFARCHITECTING SOFTWARE SYSTEMS John M. Ewing, PhD George Mason University, 2015 Dissertation Director: Dr. Daniel Menascé Service Oriented Architectures (SOA) are an emerging software engineering discipline that builds software systems and applications by connecting and integrating well-defined, distributed, reusable software service instances. SOA can speed development time and reduce costs by encouraging reuse, but this new service paradigm presents significant challenges. Many SOA applications are dependent upon service instances maintained by vendors and/or separate organizations. Applications and composed services using disparate providers typically demonstrate limited autonomy with contemporary SOA approaches. Availability may also suffer with the proliferation of possible points of failure–restoration of functionality often depends upon intervention by human administrators. Autonomic computing is a set of technologies that enables self-management of computer systems. When applied to SOA systems, autonomic computing can provide automatic detection of faults and take restorative action. Additionally, autonomic computing techniques possess optimization capabilities that can leverage the features of SOA (e.g., loose coupling) to enable peak performance in the SOA system’s operation. This dissertation demonstrates that autonomic computing techniques can help SOA systems maintain high levels of usefulness and usability. This dissertation presents a centralized autonomic controller framework to manage SOA systems in dynamic service environments. The centralized autonomic controller framework can be enhanced through a second meta-optimization framework that automates the selection of optimization algorithms used in the autonomic controller. A third framework for autonomic meta-controllers can study, learn, adjust, and improve the optimization procedures of the autonomic controller at run-time. Within this framework, two different types of meta-controllers were developed. The Overall Best meta-controller tracks overall performance of different optimization procedures. Context Best meta-controllers attempt to determine the best optimization procedure for the current optimization problem. Three separate Context Best meta-controllers were implemented using different machine learning techniques: 1) K-Nearest Neighbor (KNN MC), 2) Support Vector Machines (SVM) trained offline (Offline SVM), and 3) SVM trained online (Online SVM). A detailed set of experiments demonstrated the effectiveness and scalability of the approaches. Autonomic controllers of SOA systems successfully maintained performance on systems with 15, 25, 40, and 65 components. The Overall Best meta-controller successfully identified the best optimization technique and provided excellent performance at all levels of scale. Among the Context Best meta-controllers, the Online SVM meta-controller was tested on the 40 component system and performed better than the Overall Best metacontroller at a 95% confidence level. Evidence indicates that the Online SVM was successfully learning which optimization procedures were best applied to encountered optimization problems. The KNN MC and Offline SVM were less successful. The KNN MC struggled because the KNN algorithm does not account for the asymmetric cost of prediction errors. The Offline SVM was unable to predict the correct optimization procedure with sufficient accuracy—this was likely due to the challenge of building a relevant offline training set. The meta-optimization framework, which was tested on the 65 component system, successfully improved the optimization techniques used by the autonomic controller. The meta-optimization and meta-controller frameworks described in this dissertation have broad applicability in autonomic computing and related fields. This dissertation also details a technique for measuring the overlap of two populations of points, establishes an approach for using penalty weights to address one-sided overfitting by SVM on asymmetric data sets, and develops a set of high performance data structure and heuristic search templates for C++. Chapter 1: Introduction This chapter provides an introduction to the technologies and challenges that are addressed in this dissertation. 1.1 The Challenge of Service-Oriented Architectures This section discusses Service-Oriented Architectures (SOA): flexible, emerging technologies that solve many problems but also introduce new management challenges. 1.1.1 The Need for New Computing Paradigms Advances in computer and network technology over the last thirty years have helped to produce an information revolution. Today, the recording, processing, and consumption of digital information pervades most aspects of daily life and has led to substantial improvements in personal and organizational productivity. As users have become accustomed to and dependent upon information technology (IT), they have developed higher expectations of computer system functionality, performance, and availability. As a result, providers of information technology are under pressure to rapidly develop and deploy new functionality at reduced cost. To cope with such demands, IT managers are embracing new paradigms such as SOA. 1.1. 2 The SOA Approach Whereas the Object-Oriented Architecture (OOA) paradigm views application design from a data perspective, the SOA paradigm views application design from a functional perspective. When distributed computing technologies like Web Services are combined with SOAs, previously developed service modules and already deployed service providers can be easily reused and incorporated into new computing applications [100]. This ability to reuse existing services encourages collaborative development efforts across multiple organizations and 1 is enabling service marketplaces to emerge where vendors offer the use of a managed service provider for a fee. Reuse of existing services reduces costs and time required to develop and deploy SOA applications–in fact, true SOA systems can be composed from services discovered at runtime [10]. The key principles to enabling the benefits of service-orientation are [35]: • Loose Coupling–Service modules are designed such that dependencies between services are minimized. • Service Contract–Service providers create and maintain relationships through the establishment of service contracts. • Autonomy–Service providers control how they render service and are robust to the failures of other service providers. • Abstraction–The logic of service modules and the platforms of service providers are hidden from the outside world. • Reusability–The size and contents of service modules should encourage reuse. • Composability–The design of an SOA should allow new applications to be created from previously existing service providers. • Statelessness–Services avoid maintaining state information. • Discoverability–Service providers provide discoverable descriptions of the service. 1.1. 3 The Challenge of Autonomy in SOA A significant challenge for IT managers is that many SOA applications will be dependent upon service instances maintained by vendors and/or separate organizations. Using contemporary SOA approaches, applications and composed services using disparate providers typically demonstrate limited autonomy. Poor performance or failure of a single service provider frequently impact the overall SOA applications dependent upon that provider. Thus, to meet the high performance expectations of users, IT staff must vigilantly monitor all service providers used by their SOA applications. If a service provider suffers from