Upload
cristobal-costa-soria
View
199
Download
4
Embed Size (px)
Citation preview
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)
Introducción
Reconfiguración para la tolerancia a fallos
Dynamic PRISMA
Conclusiones
Indice
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
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
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
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
Introducción
Reconfiguración para la tolerancia a fallos
Dynamic PRISMA
Conclusiones
Indice
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
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
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
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
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
Introducción
Reconfiguración para la tolerancia a fallos
Dynamic PRISMA
Conclusiones
Indice
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
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
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
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
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)
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
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
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
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
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)
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)
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)
Introducción
Reconfiguración para la tolerancia a fallos
Dynamic PRISMA
Conclusiones
Indice
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)
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
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