Model-based Adaptation for Self-Healing Systems David Garlan, Bradley Schmert ELSEVIER Sciences of Computer Programming 57 (2005) 27-44 이경렬 {flexagon@skku.edu}

Slides:



Advertisements
Similar presentations
An Overview of ABFT in cloud computing
Advertisements

Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
The Role of Trust Management in Distributed Systems Authors Matt Blaze, John Feigenbaum, John Ioannidis, Angelos D. Keromytis Presented By Akshay Gupte.
Lectures on File Management
Autonomic Systems Justin Moles, Winter 2006 Enabling autonomic behavior in systems software with hot swapping Paper by: J. Appavoo, et al. Presentation.
EECE499 Computers and Nuclear Energy Electrical and Computer Eng Howard University Dr. Charles Kim Fall 2013 Webpage:
Introduction To System Analysis and Design
Page 1 Building Reliable Component-based Systems Ivica Crnkovic Chapter 9 Component Composition and Integration.
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
DISTRIBUTED PROCESS IMPLEMENTAION BHAVIN KANSARA.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Improving Intrusion Detection System Taminee Shinasharkey CS689 11/2/00.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Survival by Defense- Enabling Partha Pal, Franklin Webber, Richard Schantz BBN Technologies LLC Proceedings of the Foundations of Intrusion Tolerant Systems(2003)
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
SENG521 (Fall SENG 521 Software Reliability & Testing Fault Tolerant Software Systems: Techniques (Part 4b) Department of Electrical.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science.
CONTENTS: 1.Abstract. 2.Objective. 3.Block diagram. 4.Methodology. 5.Advantages and Disadvantages. 6.Applications. 7.Conclusion.
SelfCon Foil no 1 Variability in Self-Adaptive Systems.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
CCNA 2 Router and Routing Basics Module 8 TCP/IP Suite Error and Control Messages.
Some Great Open Source Intrusion Detection Systems (IDSs)
CS457 Introduction to Information Security Systems
Buffer Overflows Incomplete Access Control
Advanced Computer Systems
OPERATING SYSTEMS CS 3502 Fall 2017
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
(A CORPORATE NETWORK APPROACH)
Albert M. K. Cheng Embedded Real-Time Systems
Solver & Optimization Problems
DDC 1023 – Programming Technique
Software Testing An Introduction.
Virtual Active Networks
QianZhu, Liang Chen and Gagan Agrawal
Chapter 8 – Software Testing
Distribution and components
Anne Pratoomtong ECE734, Spring2002
Service-centric Software Engineering
Program Design Introduction to Computer Programming By:
Internet Control Message Protocol Version 4 (ICMPv4)
Network Security – Kerberos
Virtual Active Networks
Lecture 1: Multi-tier Architecture Overview
The Vision of Autonomic Computing
Software Metrics “How do we measure the software?”
Need for the subject.
CS 1120: Computer Science II Software Life Cycle
Algorithm and Ambiguity
CS385T Software Engineering Dr.Doaa Sami
ECE 103 Engineering Programming Chapter 56 Runtime Errors
Intrusion Detection system
Chapter 29: Program Security
Identifying Slow HTTP DoS/DDoS Attacks against Web Servers DEPARTMENT ANDDepartment of Computer Science & Information SPECIALIZATIONTechnology, University.
Requirements Document
Overview of Workflows: Why Use Them?
A Distributed Tabling Algorithm for Rule Based Policy Systems
CS 1120: Computer Science II Software Life Cycle
Cohesion and Coupling.
COMP3221: Microprocessors and Embedded Systems
Yining ZHAO Computer Network Information Center,
Architectural Mismatch: Why reuse is so hard?
Object Oriented Design
Design Contracts and Errors A Software Development Strategy
Presentation transcript:

Model-based Adaptation for Self-Healing Systems David Garlan, Bradley Schmert ELSEVIER Sciences of Computer Programming 57 (2005) 27-44 이경렬 {flexagon@skku.edu} Software Engineering Laboratory Sungkyunkwan University

Contents 1. Introduction 2. Overview of the approach 3. Implementation 4. Experience 5. Conclusions and future work

Necessity of Self-Healing Introduction Necessity of Self-Healing Increasingly systems are required to work continuously System resources may change frequently Software engineers will need cost-effective techniques and mechanisms Self-adaptation have been around for a long time Language : exceptions and run-time assertion checking Algorithm : network protocols, self-stabilizing algorithms → but, systems are tightly integrated in code level However, they suffer from the problem Cannot determine the true source of the problem Cannot recognize “softer” system anomalies

Advantage of this approach Introduction Alternative approach “externalize” adaptation determining when a system’s behavior is within the envelope of acceptable system parameters when it falls outside of those limits, adapting the system. Advantage of this approach Different models can be chosen Externalized mechanisms can support reuse They can be easily changed They can exploit a large body of existing work on analytical methods for improving attributes such as performance, reliability, or security

Challenging research problems Monitoring How to add monitoring capabilities in non-intrusive ways. What kinds of things can we monitor. How to build reusable monitoring mechanisms easily. How to design components and systems so that they can be more easily monitored? Interpretation How to make sense of low-level monitored Information. How to determine when there is problem. How can we pinpoint the source of a problem. What models are best paired with specific system.

Challenging research problems Resolution How to repair a system How to select the best repair action from possible repairs Can we guarantee that repairs will actually improve things How to reconcile conflicting repairs obtained multiple models Can we improve a system when no specific error has arisen Adaption How to cause the adaptation to occur in a running system How should we design/build software systems and components What do we do if something goes wrong

Challenging research problems General open issues Overheads associated with monitoring, interpretation, resolution and adaptation. what kinds of problems and behaviors are best suited. How to minimize the costs of making systems self-adaptive. Does the approach scale to Internet-based systems and services.

Overview of the approach

Overview of the approach

Self-healing mechanism

Self-healing mechanism Detection A11:[Failed] Notify Component Self-Healing Controller Component Monitor A3 : Input Placed A5 : Read Input A6 : Input Info Read A2 : Input arrived A9 : Message Arrived A10 : Message Placed A1 : Input External Object <Connector> Connector 1 A4 : Read Input A7 : Input Info A8 : Message <Task> Task 1 <Connector> Connector 2

Self-healing mechanism Reconfiguration before repair The reconfiguration isolates the sick object from healthy objects at runtime Notify the sick symptom of the object to the other components block objects related to the repair and testing A12 : Request Reconf. Plan A16 : Component Failure Notification Component Reconfiguration Plan Generator Component Self-healing Controller A13 : Reconf. Plan A14 : Reconf. Plan A15 : Com. Failure A17 : Failure Notification Component Reconfiguration Executor <Connector> Connector 1

Self-healing mechanism Repairing and testing A33 : Request Result Component Self-healing Controller A37 : Repair Finished A18 : Request Repair Plan A20 : Repair Plan A19 : Repair Plan Component Repair Plan Generator A34 : Test Result Component Monitor Component Repair Executor A22 : Test Begin A35 : Test Finished A24 : Input Arrived A25 : Input Placed A21 : Initialize A27 : Read Input A28 : Input Info Read A23 : Test data A31 : Message Arrived A32 : Message Placed <Connector> Connector 1 A36 : Initialize A29 : Input Info A26 : Read Input A30 : Message <Task> Task 1 <Connector> Connector 2

Self-healing mechanism Reconfiguration after repairing A38 : Request Reconf. Plan A42 : Component Health Notification Component Reconfiguration Plan Generator Component Self-healing Controller A39 : Reconf. Plan A40 : Reconf. Plan A41 : Com. Health A43 : Component Health Notification Component Reconfiguration Executor <Connector> Connector 1

Self-healing elevator system

Self-healing elevator system

Self-healing elevator system

Self-healing elevator system

Conclusion In this paper Design of self-healing components Describe the self-healing mechanism