12
DEAS2005 Michael Shin Copyright 1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science Texas Tech University [email protected] Daniel Cooke Department of Computer Science Texas Tech University [email protected]

DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

Embed Size (px)

Citation preview

Page 1: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 1

Connector-Based Self-Healing Mechanism for Components of a

Reliable System

Michael E. ShinDepartment of Computer Science

Texas Tech [email protected]

Daniel CookeDepartment of Computer Science

Texas Tech [email protected]

Page 2: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 2

Outline

Introduction Self-healing component Architecture Connector-based self-healing mechanism Connectors supporting self-healing

mechanism Conclusions

Page 3: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 3

Introduction

Each component in a system structured with Tasks – active or concurrent objects Passive objects accessed by tasks – e.g., entity object Connectors between tasks – synchronization mechanism

For each component of reliable system Needs to self-heal anomalies such as design faults Encapsulates self-healing mechanism

In previous paper [Shin05] Self-healing mechanism in a component

This paper Specifications of connectors for self-healing mechanism

Page 4: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 4

Self-Healing Component Architecture

Self-healing component enables Autonomously detect, isolate and repair anomalies

Layered software architecture Service layer

Normal phase Provide full functionality requested Notify the status of objects to healing layer

Healing phase Provide no service or degraded services

Healing layer Normal phase

Monitoring of objects in service layer Healing phase

Reconfigure objects in service layer Repair sick objects in service layer

Page 5: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 5

Service layer Tasks, Passive objects, and Connectors

Healing layer Component Monitor

Statecharts for each task thread in the service layer Supervise behavior of objects using statecharts

Component Reconfiguration Plan Generator and Executor

Generates reconfiguration plans and reconfigures objects in service layer

Component Repair Plan Generator and Executor Generates repair plans and carries out the plans

Component Self-Healing Controller Controls healing process

Self-Healing Component Architecture

Page 6: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 6

Self-Healing Component Architecture«component»

Task 1

Connector 1

«executor»

ComponentRepair

Executor

Service Layer

Healing Layer

ExternalObject

A2, A24: Input arrivedA3, A25: Input PlacedA5, A27: Read InputA6, A28: Input Info Read

A11[Failed]: Notify

A12: Request ReconfigurationPlan

A38[Healed]: RequestReconfiguration Plan

A13, A39: Reconfiguration Plan

A16: Component Failure NotificationA42: Component Health Notification

A17: Failure NotificationA43: Component Healthy Notification

A20: Repair plan

A21: InitializeA23: Test dataA36: Initialize

A37: Repair finished

Connector3

«plan generator»

Component Repair Plan Generator

«monitor»

ComponentMonitor

A22: Test BeginA33: Request resultA35: Test Finished

A34: Test Result

«external device» «connector»

«task»

Connector 2

«connector»

A1: Input

A7, A29: Input info

«controller»

Component Self-Healing Controller

«connector»

A8, A30: Message

A9, A31: Message arrivedA10, A32: Message Placed

A4, A26: Read Input

A21a: InitializeA36a: Initialize

«plan generator»

Component Reconfiguration Plan Generator

A18: Request Repair Plan

A19: Repair Plan

«executor»Component

ReconfigurationExecutor

A14, A40: Rec. Plan

A15: Com. FailureA41: Com. Health

A14.1: Block SenderA40.1: Unblock Sender

A14.1a: Block ReceiverA40.1a: Unblock Receiver

Page 7: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 7

Connector-based Self-healing Mechanism

Connector Encapsulates synchronization mechanism Extended to self-healing mechanism

Detection, reconfiguration, and repair Anomaly detection

Connector notifies Component Monitor Message arrivals from a task Placing a message in a queue or buffer

Passive object accessed by tasks notifies Invoked by a task finishing an operation

Component Monitor Encapsulates statecharts for task threads Detect anomalies of objects in service layer

If expected message does not arrive within a time interval

Page 8: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 8

Reconfiguration Isolation of sick objects from healthy objects

Minimize impact from sick objects Connectors involved in reconfiguration

Incoming connectors block adding a new message Outgoing connectors block other tasks’ reading messages Freeze communication between a sick task and healthy tasks

Reconfiguration again when a sick object is repaired Repair

Reinitialized, reinstalled, or replaced with a variant Testing after repair

Test data are delivered to repaired objects via connectors

Connector-based Self-healing Mechanism

Page 9: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 9

Connector between tasks classified to Message queue connector Message buffer connector Message buffer and response connector

To support self-healing mechanism Defines self-healing connectors Specialization of connectors to self-healing

connectors

Connectors supporting self-healing mechanism

Page 10: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 10

Message Queue Self-Healing Connector

+send (in message)+receive (out message)

<<connector>>MessageQueue

-messageQueue : Queue-maxCount : Integer;-messageCount : Integer := 0;

<<connector>>MessageQueueSH

-sendStatus : {Blocked, Unblocked} : = Unblocked;-receiveStatus : {Blocked, Unblocked} :=Unblocked;

+send (in message) {modified}+receive (out message) {modified}+sendT (in message)+blockSender()+unblockSender()+blockReceiver()+unblockReceiver()+initialize()

Page 11: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 11

Message Buffer Self-Healing Connector, and Message Buffer and Response connector

+send (in message, out response)+receive (out message)+reply (in message)

<<connector>>MessageBuffer&Response

-messageBuffer : Buffer-responseBuffer : Buffer-messageBufferFull = false;-responseBufferFull = false;

<<connector>>MessageBuffer&ResponseSH

-sendStatus : {Blocked, Unblocked} : = Unblocked;-receiveStatus : {Blocked, Unblocked} :=Unblocked;

+send (in message, out response) {modified}+receive (out message) {modified}+reply (in message) {modified}+sendT (in message)+blockSender()+unblockSender()+blockReceiver()+unblockReceiver()+initialize()

a) Message Buffer Self-Healing Connector b) Message Buffer & Response Self-Healing Connector

+send (in message)+receive (out message)

<<connector>>MessageBuffer

-messageBuffer : Buffer-messageBufferFull : Boolean := false;

<<connector>>MessageBufferSH

-sendStatus : {Blocked, Unblocked} := Unblocked;-receiveStatus : {Blocked, Unblocked} :=Unblocked;

+send (in message) {modified}+receive (out message) {modified}+sendT (in message)+blockSender()+unblockSender()+blockReceiver()+unblockReceiver()+initialize()

Page 12: DEAS2005Michael Shin Copyright1 Connector-Based Self-Healing Mechanism for Components of a Reliable System Michael E. Shin Department of Computer Science

DEAS2005 Michael Shin Copyright 12

Conclusions

Described connector-based self-healing mechanism for self-healing components

Connectors play key roles in self-healing mechanism This approach

Connectors support Self-healing mechanism

Low performance due to communication Future Research

Extension to inter-components interaction at software architecture