
Rainbow: Cost-Effective Software Architecture-Based Self-Adaptation Shang-Wen Cheng CMU-ISR-08-113 17 May 2008 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Thesis Committee: David Garlan, Chair Jonathan Aldrich Peter Steenkiste Jeff Magee, Imperial College London Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy. Copyright c 2008 Shang-Wen Cheng This research was sponsored by DARPA under grants N66001-99-2-8918 and F30602-00-2-0616, the US Army Research Office (ARO) under grant numbers DAAD19-01-1-0485 and DAAD19-02-1-0389 ("Perpetually Avail- able and Secure Information Systems") to Carnegie Mellon University’s CyLab, the NASA High Dependability Computing Program under cooperative agreement NCC-2-1298, and a 2004 IBM Eclipse Innovation Grant. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of DARPA, the ARO, the U.S. government, NASA, IBM, or any other entity. Keywords: Self-adaptive system, software architectural style, adaptation objective, utility preferences, strategy, tactic, architectural operator To My almighty God My dear Family My beloved Hsien iv Abstract Modern, complex software systems (e-commerce, IT, critical infrastructures, etc.) are increasingly required to continue operation in the face of change, to self- adapt to accommodate shifting user priorities, resource variability, changing envi- ronments, and component failures. While manual oversight benefits from global problem contexts and flexible policies, human operators are costly and prone to er- ror. Low-level, embedded mechanisms (exceptions, time-outs, etc.) are effective and timely for error recovery, but are local in scope to the point-of-failure, application- specific, and costly to modify when adaptation objectives change. An ideal solution leverages domain expertise, provides an end-to-end system perspective, adapts the target system in a timely manner, and can be engineered cost-effectively. Architecture-based self-adaptation closes the “loop of control,” using external mechanisms and the architecture model of the target system to adapt the system. An architecture model exposes important system properties and constraints, provides end-to-end problem contexts, and allows principled and automated adaptations. Ex- isting architecture-based approaches specialize support for particular classes of sys- tems and fixed sets of quality-of-service concerns; they are costly to develop for new systems and to evolve for new qualities. To overcome these limitations, we pose this thesis: We can provide software en- gineers the ability to add and evolve self-adaptation capabilities cost-effectively, for a wide range of software systems, and for multiple objectives, by defining a self- adaptation framework that factors out common adaptation mechanisms and pro- vides explicit customization points to tailor self-adaptation capabilities for particu- lar classes of systems, for multiple quality-of-service objectives. Our approach, embodied in a system called Rainbow, provides an engineering approach and a framework of mechanisms to monitor a target system and its environ- ment, reflect observations into the system’s architecture model, detect opportunities for improvements, select a course of action, and effect changes. The framework pro- vides general and reusable infrastructures with well-defined customization points, a set of abstractions, and an adaptation engineering process, focusing engineers on adaptation concerns to systematically customize Rainbow to particular systems. To automate system self-adaptation, Rainbow provides a language, called Stitch, to rep- resent routine human adaptation knowledge using a core set of adaptation concepts. vi Acknowledgments I deeply appreciate my advisor and mentor, David Garlan, for his penetrating insight, patient guidance, candid advice, kind encouragement, inspiring tango, and fine taste of wine. My thanks to Jonathan Aldrich, Peter Steenkiste, and Jeff Magee for carefully reviewing my work to strengthen and elevate its quality, and to Jonathan for going beyond the call of duty to coach me on defining operational semantics. I thank Mary Shaw for her lessons on writing, research, abstraction, & classification. I am eternally grateful to my dear Mom, Dad, and Sister for loving, supporting, and understanding me; my Gramps, Aunts, and Uncles in Taiwan for shaping and disciplining me during the crucial early years. And, a man cannot long and happily live without his friends. My cheers! My heartfelt thanks, to... George Fairbanks, a fantastic housemate for enjoying beers, watching movies, sharing good times, giving advice, exchanging ideas, helping me to crystallize the news site example Bradley Schmerl and Karen Hay for mentorship and friendship, for asking the tough questions not only in research, but also in romance, over coffee, with sushi and other nourishments. Carl and SoYoung Paradis, siblings-in-Christ for food, fun, (spiritual) fellowship, and friendship. Nicholas Sherman for brews, cools, tools, and drools shared of all instances and types. Kevin B, Nels B, Greg H, Ciera J, Annie L, Dean S, and fellow PhD’ers for goodwill, rapport, stimulating interations, and beers. Vahe Poladian for helping me to clarify the language formalism based on utility theory; forP ilingH igher &D eeperTM, motivating, predicting, steaking, pair-writing. Jichuan Chang, Joao Sousa, Bridget Spitznagel, and members of the ABLE group; An-Cheng Huang and Ningning Hu for brainstorming, collaboration, feedback, idea exchange, and support. Paul H, James H, Ross M, Frank L, Kevin L, Matt F, Roger C, David H, Ping C for the memorable corporate living at D-1, cooking, praying, tan-painting Kevin... Sharon Pan, my beloved for her companionship timely, her encouragements gentle, her care loving. For lending me an ear or a hand; For showing me who I am; I appreciate my fellow friends and mentors, whom I cannot all name. viii Contents 1 Coping with Change 1 1.1 Self-Adaptation Loop of Control . .2 1.1.1 External, Feedback Control . .3 1.1.2 IBM Autonomic Framework . .5 1.2 Architecture-Based Self-Adaptation . .6 1.3 Opportunities for Improving the State-of-the-Art . .7 1.3.1 Lack in System Context and Adaptation Knowledge . .8 1.3.2 Lack of Support for Quality-of-Service Trade-Off . .8 1.3.3 High Cost of Development and Maintenance . .9 1.4 This Thesis . 10 1.4.1 Thesis Evaluation Plan . 11 1.4.2 Thesis Contributions . 12 1.4.3 Document Roadmap . 12 2 Related Work 13 2.1 Software Engineering and Architecture . 13 2.2 External Contributing Disciplines . 15 2.3 Related Self-Adaptation Approaches . 17 2.3.1 Adaptive Technologies . 17 2.3.2 Industrial Initiatives and Autonomic Computing . 19 2.3.3 Architecture-Based Adaptation . 19 2.4 Limitations to State-of-the-Art Addressed . 22 3 Rainbow Overview 23 3.1 Overview of Approach . 23 3.1.1 Software Architecture Model and Style . 24 3.1.2 Control Systems and the Self-Adaptation Cycle . 25 3.1.3 Utility Theory . 26 3.1.4 Design Constraints for Self-Adaptation . 27 3.2 Znn.com Example . 27 3.3 Tailorable Rainbow Framework . 29 3.3.1 Rainbow Models . 30 3.3.2 Translation Infrastructure—Monitoring and Action . 32 3.3.3 Model Manager . 34 ix 3.3.4 Architecture Evaluator . 34 3.3.5 Adaptation Manager . 35 3.3.6 Strategy Executor . 35 3.4 Rainbow Application to Znn.com . 36 3.5 Adaptation Engineering Process . 37 3.6 Summary . 38 4 Stitch Self-Adaptation Language 39 4.1 Rainbow Context for Language . 39 4.2 Requirements for the Self-Adaptation Language . 40 4.2.1 Nature of System Administration Tasks . 40 4.2.2 Language Design Considerations . 42 4.3 Self-Adaptation Concepts of Stitch . 43 4.3.1 Overview . 43 4.3.2 Quality Dimensions, Utility Preferences, and Adaptation Conditions . 45 4.3.3 Operator . 46 4.3.4 Tactic . 48 4.3.5 Strategy . 50 4.3.6 Strategy Selection . 52 4.4 Semantics of Stitch Constructs . 53 4.4.1 Model of Adaptation . 53 4.4.2 Utility-Based Strategy Selection . 56 4.4.3 Adaptation Execution ............................ 58 4.5 Stitch Illustration Using Znn.com . 66 4.6 Summary . 68 5 Customizable Framework 69 5.1 Architecture and Design of Rainbow . 70 5.1.1 Rainbow Deployment Architecture . 71 5.1.2 Model Manager and Rainbow Models . 74 5.1.3 Translation Infrastructure—Monitoring and Action . 76 5.1.4 Architecture Evaluator . 80 5.1.5 Adaptation Manager . 81 5.1.6 Strategy Executor . 83 5.2 Adaptation Integrated Development Environment . 84 5.2.1 Stitch Script Editor . 85 5.2.2 Rainbow Control Console . 85 6 Examples and Supporting Evidence 87 6.1 Basic Client-Server System . 87 6.2 Libra Videoconferencing System . 90 6.3 University Grade System—Security Domain . 93 6.4 TalkShoe . 97 6.4.1 Background . 98 x 6.4.2 TalkShoe Infrastructure . 98 6.4.3 Problem Scenarios for Adaptation . 99 6.4.4 Data and Result . 103 6.4.5 Conversations with the TalkShoe Architect . 104 6.4.6 TalkShoe Summary . 105 6.5 Znn.com News System . 106 6.5.1 Motivation: Slashdot Effect ........................ 106 6.5.2 Rainbow Customization for Znn.com . 107 6.5.3 Experimental Setup . 109 6.5.4 Slashdot Effect Traffic Profile . 110 6.5.5 Data and Results . 111 6.5.6 Znn.com Summary . 114 6.6 Interview with System Administrators . 114 6.6.1 Methodology . 114 6.6.2 Interview Results . 115 6.6.3 Adaptation Analysis from Almossawi’s Administrative Experiences . 119 6.6.4 Interview Summary . 120 6.7 Real-World Adaptive Scripts in Stitch . 120 6.8 Summary . 126 7 Thesis Evaluation 127 7.1 Claim: Generality . 128 7.2 Claim: Cost-Effectiveness . 129 7.3 Claim: Transparency . 133 7.4 Summary . ..
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages220 Page
-
File Size-