29
Reconfiguración Dinámica de Arquitecturas Software Aplicada a la Tolerancia a Fallos 3 rd Workshop on Autonomic and SELF-adaptive Systems (WASELF’10) September 7 th 2010 – Valencia (Spain) Cristóbal Costa-Soria 1 , Jennifer Pérez 2 , Jose A. Carsí 1 Diego Alonso 3 , Francisco Ortiz 3 , Juan A. Pastor 3 1 Universidad Politécnica de Valencia (UPV) 2 Universidad Politécnica de Madrid (UPM) 3 Universidad Politécnica de Cartagena (UPCT)

Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Embed Size (px)

Citation preview

Page 1: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración Dinámica de Arquitecturas Software Aplicada a la Tolerancia a Fallos

3rd Workshop on Autonomic and SELF-adaptive Systems (WASELF’10)September 7th 2010 – Valencia (Spain)

Cristóbal Costa-Soria1, Jennifer Pérez2, Jose A. Carsí1

Diego Alonso3, Francisco Ortiz3, Juan A. Pastor3

1 Universidad Politécnica de Valencia (UPV)2 Universidad Politécnica de Madrid (UPM)3 Universidad Politécnica de Cartagena (UPCT)

Page 2: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Introducción

Reconfiguración para la tolerancia a fallos

Dynamic PRISMA

Conclusiones

Indice

Page 3: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Introducción

Importancia creciente del software– Automoción, aviónica, telecomunicaciones, control de

infraestructuras, etc.

Necesidad de funcionamiento correcto y garantía de servicio, sobre todo en sistemas críticos– Fault-avoidance (programación estructurada,

reutilización del software, métodos formales)– Fault-removal (testeado, verificación y validación)

NO SON SUFICIENTES

Necesidad de introducir tolerancia a fallos– El sistema debe seguir cumpliendo su función a pesar

de eventuales fallos (garantía de funcionamiento)

3/22

Page 4: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Tolerancia a fallos

Muchas de las técnicas y estrategias se basan en el uso de redundancia– Replicado de elementos hardware evita fallos debidos

al desgaste o a la actuación de agentes externos– Versionado de elementos software evita fallos

debidos a bugs, bloqueos, etc.

Ejecución concurrente elementos redundantes– Enmascaramiento de fallos– Uso de elementos de sincronización y votación

• Más recursos• Más complejidad

– Enfoque estático • La estrategia debe definirse en tiempo de diseño

4/22

Page 5: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Agrobot: robot agrícola para la supervisión deplagas y falta de agua

Sistema de visión Elemento crítico para garantizar funcionalidad– Inspección de plantas– Movimiento (evitar obstáculos y selección objetivos)

Tolerancia a fallos Sistema Visión– Compuesto por elementos redundantes – Duplicado y con posibilidad de reasignación dinámica de

tareas

Caso de estudio

5/22

Page 6: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Tolerancia a fallos con redundancia estática

Redundancia en Sistema de Visión:– Detección de fallos irrecuperables (e.g. vídeo)– Enmascaramiento de fallos a través de sistemas de

votación (e.g. procesamiento imágenes)

Inconvenientes– Sincronización entre elementos: + complejidad– Redundancia: + recursos computacionales

6/22

VisionSystem

ImgOutputPort

VisionStatusPort

VideoCaptureCard

ImageProcSoftw-v1VideoIn ImageOut

Fault Detected

ImageProcCard

VideoIn ImageOut

ImageProcSoftw-v2VideoIn ImageOut

ImageProcSoftw-v3VideoIn ImageOut

Voting Connect.Video

Forwarder

FaultDetected

Page 7: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Introducción

Reconfiguración para la tolerancia a fallos

Dynamic PRISMA

Conclusiones

Indice

Page 8: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Tolerancia a fallos: Reconfiguración

¿Por qué no usar técnicas de reconfiguración para recuperarse ante un fallo?

Detección fallo Reconfiguración– El sistema cambia su estructura para que el resto de

componentes puedan ofrecer un servicio aceptable

8/22

Page 9: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Opciones para recuperarse de un fallo– Renuncia de tareas

Se degrada la funcionalidad– Reasignación de tareas entre otros componentes

Se degrada el rendimiento– Introducción de repuestos

Preserva funcionamiento y rendimiento

Sólo si sistema soporta reconfiguración dinámica

Reconfiguración para la tolerancia a fallos

9/22

Page 10: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

VisionSystemImgOutput

Port

VisionStatusPort

ImageProcCard

VideoIn ImageOut

ImageProcSoftware

VideoIn ImageOut

ImageProcCard

VideoIn ImageOut

10/22

VideoCaptureCard

IPC-Conn

SupervisorUnrecoverable Fault

VCC-Conn

ImageProcSoftware

VideoIn ImageOut

Monitorización fallos +Políticas reconfiguración +

Mecanismos reconfiguración

Versión de repuesto. Accesible para el sistema

pero desactivada inicialmente.

Ventajas– Redundancia dinámica (i.e. activada bajo demanda)

Menos elementos concurrentes– Menor consumo recursos computacionales (y energéticos)– Menor uso de sincronizaciones

– Mayor flexibilidad• Los elementos averiados pueden eliminarse del sistema• Pueden introducirse nuevos elementos

Reconfiguración para la tolerancia a fallos

Page 11: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Inconvenientes– Mecanismos reconfiguración complejos y costosos de

desarrollar (parada segura, modificación de estructuras en memoria, transferencia estado, carga dinámica de tipos,…)

– Dificultad para separar • políticas de reconfiguración • mecanismos de reconfiguración • resto de funcionalidad del sistema

VisionSystemImgOutput

Port

VisionStatusPort

11/22

VideoCaptureCard

IPC-ConnImageProcCard

VideoIn ImageOut

SupervisorUnrecoverable Fault

ImageProcSoftware

VideoIn ImageOut

VCC-Conn

Monitorización fallos +Políticas/decisiones reconfiguración +

Mecanismos reconfiguración _

Bajo mantenimiento

Baja reutilización

Reconfiguración: consideraciones

Page 12: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Diseño de sistemas dinámicamente reconfigurables

La reconfiguración debe definirse a un alto nivel de abstracción– Evita la dependencia tecnológica– Facilita el mantenimiento del código

Debe separarse la funcionalidad de reconfiguración del resto del sistema– Facilita el mantenimiento y la reutilización

12/22

addComponent(TypeName=“ImageProcSoftware”, Path=“Types\Agrobot.ImageProcSoftware”);createComponentInstance(ID=“imProc1”, Type=“ImageProcSoftware”, Params=... );attach(ID1=“imProc1”, Port1=“p1”, ID2=“VCC-Conn1”, Port2=“p2”);detach(...)destroy(...)

Funcionalidad Sistema

Mecanismos Reconfiguración

Políticas Reconfiguración

Encapsulación funcionalidad en Aspectos

Operaciones definidas en

términos arquitectónicos

Page 13: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Introducción

Reconfiguración para la tolerancia a fallos

Dynamic PRISMA

Conclusiones

Indice

Page 14: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Dynamic PRISMA

PRISMA– Modelo arquitectónico orientado a aspectos – Proporciona un lenguaje formal para la descripción de

arquitecturas software• Basado en OASIS [Letelier, 98] y en π-Calculus [Milner, 91]

• Un elemento arquitectónico es un proceso observable con estado y comportamiento

– Independiente de tecnología • Modelos compilables a C# (PRISMANET)

14/22

Elemento Arquitectónico Simple Elemento Arquitectónico Complejo

Page 15: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Dynamic PRISMA

PRISMA– Modelo arquitectónico orientado a aspectos – Proporciona un lenguaje formal para la descripción de

arquitecturas software• Basado en OASIS [Letelier, 98] y en π-Calculus [Milner, 91]

• Un elemento arquitectónico es un proceso observable con estado y comportamiento

– Independiente de tecnología • Modelos compilables a C# (PRISMANET)

15/22

Elemento Arquitectónico Simple Elemento Arquitectónico Complejo

Page 16: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Mecanismos de reconfiguración

Dynamic PRISMA

Soporte para la reconfiguración dinámica y evolución de tipos arquitectónicos

Componente Evolver– Importado por cada sistema reconfigurable– Proporciona concerns reconfiguración a la arquitectura

• Reconfiguración ad-hoc y programada

– Personalizable

16/22

Políticas de reconfiguraciónReglas ECA (Event-Condition-Action) para reconfigurar la arquitectura

Monitoring: captura eventos, información de la configuración y estado de los elementos arquitect.

Effector: Parada segura, transferencia estado, creación/destrucción instancias y conexiones

Coordination: Ejecución transaccional del proceso de reconfiguración

Page 17: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración dinámica con Dynamic PRISMA

17/22

VisionSystemImgOutput

Port

VisionStatusPort

VideoCaptureCard

IPC-ConnImageProcCard

VideoIn ImageOut

VisionWatchdog

Unrecoverable Fault

ImageProcSoftware

0..*

VideoIn ImageOut

VCC-Conn

VisionSystemEvolver

InternalEventsPort

ExternalEventsPort

Faulty Output

Reconfig.Coord.

Reconfig.Analysis

MonitoringReconfig.Effector

0. Detección de fallos

1. Acciones a tomar frente a fallos

Page 18: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración dinámica con Dynamic PRISMA

18/22

VisionSystemImgOutput

Port

VisionStatusPort

VideoCaptureCard

IPC-ConnImageProcCard

VideoIn ImageOut

VisionWatchdog

Unrecoverable Fault

ImageProcSoftware

0..*

VideoIn ImageOut

VCC-Conn

VisionSystemEvolver

InternalEventsPort

ExternalEventsPort

Faulty Output

Reconfig.Coord.

Reconfig.Analysis

MonitoringReconfig.Effector

0. Detección de fallos

1. Acciones a tomar frente a fallos

ReconfigurationAnalysis aspect VisionSystemEvolution...

Triggers REPAIRIMAGEPROCESSUNIT when

{failingComponent="ImageProcCard"} faultyOutput?(failingComponent); ...

Transactionsin RepairImageProcessingUnit():

PREPARE ::= oldImProcCardID=imageProcCard-list[0] VCCConnID=VCC-Conn-list[0] IPCConnID=IPC-Conn-list[0] RECONF;

RECONF ::= create-ImageProcSoftware!(cameraPos, output newImProcID) attach-Att_VCCConn_IPCSW!(VCCConnID, newImProcID, output newAttID) attach-Att_IPCSW_IPCConn!(newImProcID, IPCConnID, output newAttID) detach-Att_VCCConn_IPC!(VCCConnID, oldImProcCardID) detach-Att_IPC_IPCConn!(oldImProcCardID, IPCConnID) destroy-ImageProcCard!(oldImProcCardID) END;

... [more transactions]End_Aspect VisionSystemEvolution;

Reconfiguration Triggers(Eventos y Condiciones)

Configuration Transactions (Acciones)

Page 19: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración dinámica con Dynamic PRISMA

19/22

VisionSystemImgOutput

Port

VisionStatusPort

VideoCaptureCard

IPC-ConnImageProcCard

VideoIn ImageOut

VisionWatchdog

Unrecoverable Fault

ImageProcSoftware

0..*

VideoIn ImageOut

VCC-Conn

VisionSystemEvolver

InternalEventsPort

ExternalEventsPort

Faulty Output

Reconfig.Coord.

Reconfig.Analysis

MonitoringReconfig.Effector

0. Detección de fallos

2. Ejecución transaccional del proceso de reconfiguración

1. Acciones a tomar frente a fallos

Page 20: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración dinámica con Dynamic PRISMA

20/22

VisionSystemImgOutput

Port

VisionStatusPort

VideoCaptureCard

IPC-ConnImageProcCard

VideoIn ImageOut

VisionWatchdog

Unrecoverable Fault

ImageProcSoftware

0..*

VideoIn ImageOut

VCC-Conn

VisionSystemEvolver

InternalEventsPort

ExternalEventsPort

Faulty Output

Reconfig.Coord.

Reconfig.Analysis

MonitoringReconfig.Effector

0. Detección de fallos

2. Ejecución transaccional del proceso de reconfiguración

1. Acciones a tomar frente a fallos

3. Realización cambios + transferencia estado

Page 21: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración dinámica con Dynamic PRISMA

21/22

VisionSystemImgOutput

Port

VisionStatusPort

VideoCaptureCard

IPC-ConnImageProcCard

VideoIn ImageOut

VisionWatchdog

Unrecoverable Fault

ImageProcSoftware

0..*

VideoIn ImageOut

VCC-Conn

VisionSystemEvolver

InternalEventsPort

ExternalEventsPort

Faulty Output

Reconfig.Coord.

Reconfig.Analysis

MonitoringReconfig.Effector

0. Detección de fallos

2. Ejecución transaccional del proceso de reconfiguración

1. Acciones a tomar frente a fallos

3. Realización cambios + transferencia estado

ImageProcSoftware

VideoIn ImageOut

Page 22: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración dinámica con Dynamic PRISMA

22/22

VisionSystemImgOutput

Port

VisionStatusPort

VideoCaptureCard

IPC-ConnImageProcCard

VideoIn ImageOut

VisionWatchdog

Unrecoverable Fault

VCC-Conn

VisionSystemEvolver

InternalEventsPort

ExternalEventsPort

Faulty Output

Reconfig.Coord.

Reconfig.Analysis

MonitoringReconfig.Effector

0. Detección de fallos

2. Ejecución transaccional del proceso de reconfiguración

1. Acciones a tomar frente a fallos

3. Realización cambios + transferencia estado

ImageProcSoftware

VideoIn ImageOut

Page 23: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración dinámica con Dynamic PRISMA

23/22

VisionSystemImgOutput

Port

VisionStatusPort

VideoCaptureCard

IPC-ConnImageProcCard

VideoIn ImageOut

VisionWatchdog

Unrecoverable Fault

VCC-Conn

VisionSystemEvolver

InternalEventsPort

ExternalEventsPort

Faulty Output

Reconfig.Coord.

Reconfig.Analysis

MonitoringReconfig.Effector

0. Detección de fallos

2. Ejecución transaccional del proceso de reconfiguración

1. Acciones a tomar frente a fallos

3. Realización cambios + transferencia estado

ImageProcSoftware

VideoIn ImageOut

4. Información estado final (verificación corrección)

Page 24: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración dinámica con Dynamic PRISMA

24/22

VisionSystemImgOutput

Port

VisionStatusPort

VideoCaptureCard

IPC-ConnImageProcCard

VideoIn ImageOut

VisionWatchdog

Unrecoverable Fault

VCC-Conn

VisionSystemEvolver

InternalEventsPort

ExternalEventsPort

Faulty Output

Reconfig.Coord.

Reconfig.Analysis

MonitoringReconfig.Effector

0. Detección de fallos

2. Ejecución transaccional del proceso de reconfiguración

1. Acciones a tomar frente a fallos

3. Realización cambios + transferencia estado

ImageProcSoftware

VideoIn ImageOut

4. Información estado final (verificación corrección)

Page 25: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Reconfiguración dinámica con Dynamic PRISMA

25/22

VisionSystemImgOutput

Port

VisionStatusPort

VideoCaptureCard

IPC-Conn

VisionWatchdog

Unrecoverable Fault

VCC-Conn

VisionSystemEvolver

InternalEventsPort

ExternalEventsPort

Faulty Output

Reconfig.Coord.

Reconfig.Analysis

MonitoringReconfig.Effector

0. Detección de fallos

2. Ejecución transaccional del proceso de reconfiguración

1. Acciones a tomar frente a fallos

3. Realización cambios + transferencia estado

ImageProcSoftware

VideoIn ImageOut

4. Información estado final (verificación corrección)

Page 26: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Introducción

Reconfiguración para la tolerancia a fallos

Dynamic PRISMA

Conclusiones

Indice

Page 27: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Conclusiones

Propuesta para incorporar técnicas de reconfiguración dinámica al diseño de sistemas tolerantes a fallos– Mayor flexibilidad para adaptarse en tiempo ejecución– Menor consumo de recursos

Dynamic PRISMA– Soporte a la reconfiguración dinámica de arquitecturas– Énfasis en la separación de concerns

facilita mantenimiento código• Separando el código de reconfiguración del código

funcional• Separando las políticas de reconfiguración (cambios de

alto nivel) de los mecanismos de reconfiguración (cambios de bajo nivel)

– Políticas de reconfiguración definidas a un alto nivel de abstracción (en PRISMA AO-ADL)

Page 28: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Trabajos futuros

Trabajos futuros– Estudio de la tolerancia a fallos del subsistema de

reconfiguración: Comportamiento transaccional Redundancia del subsistema

– Estudio del tiempo de respuesta necesario para reaccionar

Page 29: Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

Cristóbal Costa-Soria

Information Systems and Software Engineering Research GroupDepartment of Information Systems and ComputationUniversidad Politécnica de ValenciaSpain

Home page: http://issi.dsic.upv.es/~ccosta

Email: [email protected]

The PRISMA project: http://prisma.dsic.upv.es

3nd Workshop on Autonomic and SELF-adaptive Systems (WASELF’10)September 7th 2010 – Valencia (Spain)

Gracias por su atención