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

[1]  M. Brian Blake,et al.  Decomposing Composition: Service-Oriented Software Engineers , 2007, IEEE Software.

[2]  Gabor Karsai,et al.  Generative Programming via Graph Transformations in the Model-Driven Architecture , 2002 .

[3]  Thomas Bäck,et al.  A Survey of Evolution Strategies , 1991, ICGA.

[4]  Kurt Geihs,et al.  Self-Management: The Solution to Complexity or Just Another Problem? , 2005, IEEE Distributed Syst. Online.

[5]  Peter Norvig,et al.  Artificial Intelligence: A Modern Approach , 1995 .

[6]  Adam Kowalczyk,et al.  Extreme re-balancing for SVMs: a case study , 2004, SKDD.

[7]  Franco Zambonelli,et al.  A survey of autonomic communications , 2006, TAAS.

[8]  Nagarajan Kandasamy,et al.  Risk-aware limited lookahead control for dynamic resource provisioning in enterprise computing systems , 2006, 2006 IEEE International Conference on Autonomic Computing.

[9]  Heiko Ludwig,et al.  Web Service Level Agreement (WSLA) Language Specification , 2003 .

[10]  Mauro Birattari,et al.  Swarm Intelligence , 2012, Lecture Notes in Computer Science.

[11]  Koji Hashimoto,et al.  Dynamic self-adaptation for distributed service-oriented transactions , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[12]  Bjarne Stroustrup,et al.  Abstraction and the C++ Machine Model , 2004, ICESS.

[13]  Jozo J. Dujmovic,et al.  Continuous Preference Logic for System Evaluation , 2007, IEEE Transactions on Fuzzy Systems.

[14]  Ian T. Foster,et al.  Toward an Autonomic Service Management Framework: A Holistic Vision of SOA, AON, and Autonomic Computing , 2008, IEEE Communications Magazine.

[15]  Sam Malek,et al.  A framework for utility-based service oriented design in SASSY , 2010, WOSP/SIPEW '10.

[16]  Paolo Traverso,et al.  Service-Oriented Computing: State of the Art and Research Challenges , 2007, Computer.

[17]  Daniel A. Menascé,et al.  A meta-controller method for improving run-time self-architecting in SOA systems , 2014, ICPE.

[18]  Thomas Heinis,et al.  Autonomic execution of Web service compositions , 2005, IEEE International Conference on Web Services (ICWS'05).

[19]  Sam Malek,et al.  Self-Architecting Software SYstems (SASSY) from QoS-annotated activity models , 2009, 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems.

[20]  Raffaela Mirandola,et al.  A Hybrid Approach for Multi-attribute QoS Optimisation in Component Based Software Systems , 2010, QoSA.

[21]  Thomas A. Corbi,et al.  The dawning of the autonomic computing era , 2003, IBM Syst. J..

[22]  Jing Xu,et al.  On the Use of Fuzzy Modeling in Virtualized Data Center Management , 2007, Fourth International Conference on Autonomic Computing (ICAC'07).

[23]  Calton Pu,et al.  Generating Adaptation Policies for Multi-tier Applications in Consolidated Server Environments , 2008, 2008 International Conference on Autonomic Computing.

[24]  Sam Malek,et al.  FUSION: a framework for engineering self-tuning self-adaptive software systems , 2010, FSE '10.

[25]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

[26]  Samuel Kounev,et al.  Towards Self-Aware Performance and Resource Management in Modern Service-Oriented Systems , 2010, 2010 IEEE International Conference on Services Computing.

[27]  Hao Wang,et al.  Solving QoS-driven Web service dynamic composition as fuzzy constraint satisfaction , 2005, 2005 IEEE International Conference on e-Technology, e-Commerce and e-Service.

[28]  Ness B. Shroff,et al.  Non-convex optimization and rate control for multi-class services in the Internet , 2005, IEEE/ACM Transactions on Networking.

[29]  Emilio Pasquale Mancini,et al.  A Simulation-Based Framework for Autonomic Web Services , 2005, 11th International Conference on Parallel and Distributed Systems (ICPADS'05).

[30]  Anil K. Jain Data clustering: 50 years beyond K-means , 2008, Pattern Recognit. Lett..

[31]  Annapaola Marconi,et al.  Automated Composition of Web Services by Planning at the Knowledge Level , 2005, IJCAI.

[32]  Yixin Diao,et al.  Comparative studies of load balancing with control and optimization techniques , 2005, Proceedings of the 2005, American Control Conference, 2005..

[33]  Hassan Gomaa,et al.  Software reconfiguration patterns for dynamic evolution of software architectures , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[34]  Julie A. McCann,et al.  A survey of autonomic computing—degrees, models, and applications , 2008, CSUR.

[35]  Michael Devetsikiotis,et al.  An Autonomic Service Delivery Platform for Service-Oriented Network Environments , 2008, IEEE Transactions on Services Computing.

[36]  Radford M. Neal Pattern Recognition and Machine Learning , 2007, Technometrics.

[37]  James Davis,et al.  GME: the generic modeling environment , 2003, OOPSLA '03.

[38]  Andrea Zisman,et al.  Guest Editors' Introduction: Realizing Service-Centric Software Systems , 2007, IEEE Softw..

[39]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.

[40]  Radu Calinescu,et al.  Dynamic QoS Management and Optimization in Service-Based Systems , 2011, IEEE Transactions on Software Engineering.

[41]  S. Shenker Fundamental Design Issues for the Future Internet , 1995 .

[42]  Sam Malek,et al.  Improving Availability in Large, Distributed Component-Based Systems Via Redeployment , 2005, Component Deployment.

[43]  Rajarshi Das,et al.  A Hybrid Reinforcement Learning Approach to Autonomic Resource Allocation , 2006, 2006 IEEE International Conference on Autonomic Computing.

[44]  Gail E. Kaiser,et al.  Self-managing systems: a control theory foundation , 2005, 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05).

[45]  Rayadurgam Srikant,et al.  The Mathematics of Internet Congestion Control , 2003 .

[46]  Diego Perez-Palacin,et al.  Performance Evaluation of Self-reconfigurable Service-oriented Software With Stochastic Petri Nets , 2010, PASM@MASCOTS.

[47]  Victor J. Rayward-Smith,et al.  Modern Heuristic Search Methods , 1996 .

[48]  Sam Malek,et al.  Qos architectural patterns for self-architecting software systems , 2010, ICAC '10.

[49]  Manuel López-Ibáñez,et al.  Ant colony optimization , 2010, GECCO '10.

[50]  Mary Shaw,et al.  Leveraging Resource Prediction for Anticipatory Dynamic Configuration , 2007, First International Conference on Self-Adaptive and Self-Organizing Systems (SASO 2007).

[51]  Daniel A. Menascé,et al.  Utility-Based Optimal Service Selection for Business Processes in Service Oriented Architectures , 2010, 2010 IEEE International Conference on Web Services.

[52]  Rami Cohen,et al.  On Fully Distributed Adaptive Load Balancing , 2007, DSOM.

[53]  Andrea D'Ambrogio,et al.  A Model-driven WSDL Extension for Describing the QoS ofWeb Services , 2006, 2006 IEEE International Conference on Web Services (ICWS'06).

[54]  Daniel A. Menascé,et al.  Business-oriented autonomic load balancing for multitiered Web sites , 2009, 2009 IEEE International Symposium on Modeling, Analysis & Simulation of Computer and Telecommunication Systems.

[55]  Kamel Barkaoui,et al.  A Neuro-Fuzzy Model for QoS Based Selection of Web Service , 2010, J. Softw. Eng. Appl..

[56]  David H. Wolpert,et al.  No free lunch theorems for optimization , 1997, IEEE Trans. Evol. Comput..

[57]  Raffaela Mirandola,et al.  Performance Aware Reconfiguration of Software Systems , 2010, EPEW.

[58]  Jordi Torres,et al.  Self-adaptive utility-based web session management , 2009, Comput. Networks.

[59]  Gabor Karsai,et al.  Graph Transformations on Domain-Specific Models , 2003 .

[60]  Jane Yung-jen Hsu,et al.  Accountability monitoring and reasoning in service-oriented architectures , 2007, Service Oriented Computing and Applications.

[61]  Raj Jain,et al.  The art of computer systems performance analysis - techniques for experimental design, measurement, simulation, and modeling , 1991, Wiley professional computing.

[62]  Changzhou Wang,et al.  Service level management using QoS monitoring, diagnostics, and adaptation for networked enterprise systems , 2005, Ninth IEEE International EDOC Enterprise Computing Conference (EDOC'05).

[63]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[64]  Xin-She Yang,et al.  Introduction to Algorithms , 2021, Nature-Inspired Optimization Algorithms.

[65]  Daniel A. Menascé,et al.  Assessing the robustness of self-managing computer systems under highly variable workloads , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[66]  Saman P. Amarasinghe,et al.  Meta optimization: improving compiler heuristics with machine learning , 2003, PLDI '03.

[67]  Alex A. Freitas,et al.  Evolutionary Computation , 2002 .

[68]  Marija Mikic-Rakic,et al.  A style-aware architectural middleware for resource-constrained, distributed systems , 2005, IEEE Transactions on Software Engineering.

[69]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

[70]  Christina Kluge,et al.  Service-Oriented Architecture: Concepts, Technology, and Design , 2005 .

[71]  R. Tyrrell Rockafellar,et al.  Lagrange Multipliers and Optimality , 1993, SIAM Rev..

[72]  Sam Malek,et al.  Software adaptation patterns for service-oriented architectures , 2010, SAC '10.

[73]  Richard N. Taylor,et al.  Towards architecture-based self-healing systems , 2002, WOSS '02.

[74]  Thomas Heinis,et al.  JOpera: Autonomic Service Orchestration , 2006, IEEE Data Eng. Bull..

[75]  Sam Malek,et al.  A Modeling Language for Activity-Oriented Composition of Service-Oriented Software Systems , 2009, MoDELS.

[76]  Chih-Jen Lin,et al.  A Practical Guide to Support Vector Classication , 2008 .

[77]  Virgílio A. F. Almeida,et al.  Resource Management in the Autonomic Service-Oriented Architecture , 2006, 2006 IEEE International Conference on Autonomic Computing.

[78]  Ronald C. Dodge,et al.  Preserving QoS of e-commerce sites through self-tuning: a performance model approach , 2001, EC '01.

[79]  Daniel A. Menascé,et al.  Utility-based QoS Brokering in Service Oriented Architectures , 2007, IEEE International Conference on Web Services (ICWS 2007).

[80]  Daniel A. Menascé,et al.  Autonomic Metaheuristic Optimization with Application to Run-Time Software Adaptation , 2015, ICAS 2015.

[81]  Kevin Skadron,et al.  Enhancing Energy Efficiency in Multi-tier Web Server Clusters via Prioritization , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[82]  Donald A. Waterman,et al.  Generalization Learning Techniques for Automating the Learning of Heuristics , 1970, Artif. Intell..

[83]  S. Nash,et al.  Linear and Nonlinear Optimization , 2008 .

[84]  Jeffrey O. Kephart,et al.  An artificial intelligence perspective on autonomic computing policies , 2004, Proceedings. Fifth IEEE International Workshop on Policies for Distributed Systems and Networks, 2004. POLICY 2004..

[85]  Daniel A. Menascé,et al.  QoS management in service-oriented architectures , 2007, Perform. Evaluation.

[86]  Jeff Magee,et al.  Analysing dynamic change in software architectures: a case study , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[87]  Wen-Syan Li,et al.  Load Balancing for Multi-tiered Database Systems through Autonomic Placement of Materialized Views , 2006, 22nd International Conference on Data Engineering (ICDE'06).

[88]  Heiko Koziolek,et al.  PerOpteryx: automated application of tactics in multi-objective software architecture optimization , 2011, QoSA-ISARCS '11.

[89]  Derong Liu The Mathematics of Internet Congestion Control , 2005, IEEE Transactions on Automatic Control.

[90]  Stephen F. Smith,et al.  Flexible Learning of Problem Solving Heuristics Through Adaptive Search , 1983, IJCAI.

[91]  Yanlong Zhai,et al.  The design and implementation of service process reconfiguration with end-to-end QoS constraints in SOA , 2010, Service Oriented Computing and Applications.

[92]  Sandra Andersen,et al.  Data Structures in C++: A Laboratory Course , 1995 .

[93]  Nathaniel E. Helwig,et al.  An Introduction to Linear Algebra , 2006 .

[94]  Vincenzo Grassi,et al.  Qos-driven runtime adaptation of service oriented architectures , 2009, ESEC/SIGSOFT FSE.

[95]  Reinhold Kröger,et al.  Decentralised QoS-Management in Service Oriented Architectures , 2008, DAIS.

[96]  Dimitrios Gunopulos,et al.  Locally Adaptive Metric Nearest-Neighbor Classification , 2002, IEEE Trans. Pattern Anal. Mach. Intell..

[97]  Danilo Ardagna,et al.  SLA based profit optimization in autonomic computing systems , 2004, ICSOC '04.

[98]  Virgílio A. F. Almeida,et al.  Performance by Design - Computer Capacity Planning By Example , 2004 .

[99]  Tamara G. Kolda,et al.  Optimization by Direct Search: New Perspectives on Some Classical and Modern Methods , 2003, SIAM Rev..

[100]  Dorina C. Petriu,et al.  Propagation of incremental changes to performance model due to SOA design pattern application , 2013, ICPE '13.

[101]  D. Garlan,et al.  Task-based adaptation for ubiquitous computing , 2006, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[102]  Dr. Zbigniew Michalewicz,et al.  How to Solve It: Modern Heuristics , 2004 .

[103]  Daniel A. Menascé,et al.  On optimal service selection in Service Oriented Architectures , 2010, Perform. Evaluation.

[104]  Chih-Jen Lin,et al.  LIBSVM: A library for support vector machines , 2011, TIST.

[105]  L. Darrell Whitley,et al.  Properties of Gray and Binary Representations , 2004, Evolutionary Computation.

[106]  Koji Hashimoto,et al.  Dynamic software adaptation for service-oriented product lines , 2011, SPLC '11.

[107]  Rajarshi Das,et al.  Utility functions in autonomic systems , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[108]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[109]  Jozo J. Dujmovic Characteristic forms of generalized conjunction/disjunction , 2008, 2008 IEEE International Conference on Fuzzy Systems (IEEE World Congress on Computational Intelligence).

[110]  Sam Malek,et al.  Towards multi-design of situated service-oriented systems , 2010, PESOS '10.

[111]  François Bodin,et al.  A Machine Learning Approach to Automatic Production of Compiler Heuristics , 2002, AIMSA.

[112]  Thomas Heinis,et al.  Design and Evaluation of an Autonomic Workflow Engine , 2005, Second International Conference on Autonomic Computing (ICAC'05).

[113]  Marija Mikic-Rakic,et al.  A Decentralized Redeployment Algorithm for Improving the Availability of Distributed Systems , 2005, Component Deployment.

[114]  Daniel A. Menascé,et al.  Resource Allocation for Autonomic Data Centers using Analytic Performance Models , 2005, Second International Conference on Autonomic Computing (ICAC'05).

[115]  Marco Saerens,et al.  Dynamic Web Service Composition within a Service-Oriented Architecture , 2007, IEEE International Conference on Web Services (ICWS 2007).

[116]  Renato J. O. Figueiredo,et al.  Autonomic Feature Selection for Application Classification , 2006, 2006 IEEE International Conference on Autonomic Computing.

[117]  Chih-Jen Lin,et al.  A comparison of methods for multiclass support vector machines , 2002, IEEE Trans. Neural Networks.

[118]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[119]  Vasudeva Akula,et al.  A business-oriented load dispatching framework for online auction sites , 2007, Fourth International Conference on the Quantitative Evaluation of Systems (QEST 2007).

[120]  Daniel A. Menascé,et al.  A heuristic approach to optimal service selection in service oriented architectures , 2008, WOSP '08.

[121]  Daniel A. Menascé,et al.  Optimal Service Selection Heuristics in Service Oriented Architectures , 2009, QSHINE.

[122]  Jerome H. Friedman,et al.  Flexible Metric Nearest Neighbor Classification , 1994 .

[123]  Vincenzo Grassi,et al.  MOSES: A Framework for QoS Driven Runtime Adaptation of Service-Oriented Systems , 2012, IEEE Transactions on Software Engineering.