deas2005michael shin copyright1 connector-based self-healing mechanism for components of a reliable...
TRANSCRIPT
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]
DEAS2005 Michael Shin Copyright 2
Outline
Introduction Self-healing component Architecture Connector-based self-healing mechanism Connectors supporting self-healing
mechanism Conclusions
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
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
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
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
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
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
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
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()
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()
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