El documento describe cómo Dynamic PRISMA, una extensión del modelo arquitectónico PRISMA, permite la reconfiguración dinámica de sistemas software para lograr tolerancia a fallos. Dynamic PRISMA define mecanismos para detectar fallos, decidir acciones de reconfiguración, ejecutar cambios de forma transaccional y verificar el estado final.
Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos
1. Reconfiguración Dinámica de
Arquitecturas Software
Aplicada a la Tolerancia a Fallos
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)
3rd Workshop on Autonomic and SELF-adaptive Systems (WASELF’10)
September 7th 2010 – Valencia (Spain)
3. 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
4. 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
5. Caso de estudio
Agrobot: robot agrícola para la supervisión de
plagas 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 5/22
6. 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
VisionSystem ImageProc
VideoIn
Softw-v3 ImageOut
ImgOutput
Port
ImageProc
VideoIn
Softw-v2 ImageOut Voting
Video Video Connect.
CaptureCard Forwarder
ImageProc
Fault VideoIn
Softw-v1 ImageOut
Detected Fault
Detected
VisionStatus
VideoIn Image ImageOut Port
ProcCard
6/22
8. 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
9. Reconfiguración
para 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
9/22
10. Reconfiguración
para la tolerancia a fallos
Versión de repuesto.
VisionSystem
VideoIn ImageProc
ImageOut
VideoIn ImageOut ImgOutput
Accesible para el sistema Software Port
pero desactivada inicialmente.
Video
CaptureCard VCC-Conn
IPC-Conn
Monitorización fallos + Image ImageOut
VideoIn ImageProc
VideoIn ImageOut
Políticas reconfiguración + ProcCard
Card
Mecanismos reconfiguración
VisionStatus
Port
Supervisor
Unrecoverable
Fault
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
10/22
11. Reconfiguración: consideraciones
Inconvenientes
– Mecanismos reconfiguración complejos y costosos de
Baja
desarrollar (parada segura, modificación de estructuras en
reutilización
memoria, transferencia estado, carga dinámica de tipos,…)
– Dificultad para separar
• políticas de reconfiguración
Bajo
mantenimiento • mecanismos de reconfiguración
• resto de funcionalidad del sistema
VisionSystem
ImageProc
VideoIn ImageOut ImgOutput
Software Port
Video
CaptureCard VCC-Conn
IPC-Conn
Monitorización fallos + VideoIn Image ImageOut
Políticas/decisiones reconfiguración + ProcCard
Mecanismos reconfiguración _
VisionStatus
Port
Supervisor
Unrecoverable
Fault
11/22
12. 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
addComponent(TypeName=“ImageProcSoftware”, Path=“TypesAgrobot.ImageProcSoftware”);
createComponentInstance(ID=“imProc1”, Type=“ImageProcSoftware”, Params=... );
attach(ID1=“imProc1”, Port1=“p1”, ID2=“VCC-Conn1”, Port2=“p2”);
detach(...)
destroy(...)
Debe separarse la funcionalidad de
reconfiguración del resto del sistema
– Facilita el mantenimiento y la reutilización
12/22
14. 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)
Elemento Arquitectónico Simple Elemento Arquitectónico Complejo
14/22
15. 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)
Elemento Arquitectónico Simple Elemento Arquitectónico Complejo
15/22
16. 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
Políticas de reconfiguración
Reglas ECA (Event-Condition-Action) para
reconfigurar la arquitectura
Mecanismos de reconfiguración
Coordination: Ejecución transaccional del proceso
de reconfiguración
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
16/22
17. Reconfiguración dinámica con
Dynamic PRISMA
VisionSystem 0..*
ImageProc
VideoIn ImageOut ImgOutput
Software Port
Video
CaptureCard VCC-Conn Image ImageOut IPC-Conn
VideoIn
ProcCard
Internal
EventsPort
VisionSystem Faulty VisionStatus
Output Vision Port
Evolver External Unrecoverable
EventsPort Watchdog Fault
0. Detección de
fallos
1. Acciones a tomar frente a
fallos
17/22
18. Reconfiguración dinámica con
Dynamic PRISMA
ReconfigurationAnalysis aspect VisionSystemEvolution
... Reconfiguration Triggers
Triggers
REPAIRIMAGEPROCESSUNIT when (Eventos y Condiciones)
{failingComponent="ImageProcCard"} faultyOutput?(failingComponent); ...
VisionSystem 0..*
Transactions
ImageProc
VideoIn ImageOut ImgOutput
in RepairImageProcessingUnit(): Software Port
PREPARE ::=
Video
oldImProcCardID=imageProcCard-list[0] VCCConnID=VCC-Conn-list[0]
IPCConnID=IPC-Conn-list[0] RECONF;CaptureCard VCC-Conn Image ImageOut IPC-Conn
VideoIn
RECONF ::= ProcCard
create-ImageProcSoftware!(cameraPos, output newImProcID)
attach-Att_VCCConn_IPCSW!(VCCConnID, newImProcID, output newAttID)
attach-Att_IPCSW_IPCConn!(newImProcID, IPCConnID, output newAttID)
Internal
Configuration Transactions
detach-Att_VCCConn_IPC!(VCCConnID, oldImProcCardID)
EventsPort (Acciones)
VisionSystem VisionStatus
detach-Att_IPC_IPCConn!(oldImProcCardID, IPCConnID) Faulty
Vision Port
Output
Evolver
destroy-ImageProcCard!(oldImProcCardID) END; External Unrecoverable
... [more transactions] EventsPort Watchdog Fault
End_Aspect VisionSystemEvolution;
0. Detección de
fallos
1. Acciones a tomar frente a
fallos
18/22
19. Reconfiguración dinámica con
Dynamic PRISMA
VisionSystem 0..*
ImageProc
VideoIn ImageOut ImgOutput
Software Port
Video
CaptureCard VCC-Conn Image ImageOut IPC-Conn
VideoIn
ProcCard
Internal
EventsPort
VisionSystem Faulty VisionStatus
Output Vision Port
Evolver External Unrecoverable
EventsPort Watchdog Fault
0. Detección de
fallos
2. Ejecución transaccional
1. Acciones a tomar frente a del proceso de
fallos reconfiguración
19/22
20. Reconfiguración dinámica con
Dynamic PRISMA
VisionSystem 0..*
ImageProc
VideoIn ImageOut ImgOutput
Software Port
Video
CaptureCard VCC-Conn Image ImageOut IPC-Conn
VideoIn
ProcCard
Internal
EventsPort
VisionSystem Faulty VisionStatus
Output Vision Port
Evolver External Unrecoverable
EventsPort Watchdog Fault
0. Detección de
fallos
2. Ejecución transaccional
1. Acciones a tomar frente a del proceso de
fallos reconfiguración
3. Realización cambios +
transferencia estado
20/22
21. Reconfiguración dinámica con
Dynamic PRISMA
VisionSystem 0..*
VideoIn ImageProc
ImageOut
ImageOut
VideoIn ImgOutput
Software Port
Video
CaptureCard VCC-Conn Image ImageOut IPC-Conn
VideoIn
ProcCard
Internal
EventsPort
VisionSystem Faulty VisionStatus
Output Vision Port
Evolver External Unrecoverable
EventsPort Watchdog Fault
0. Detección de
fallos
2. Ejecución transaccional
1. Acciones a tomar frente a del proceso de
fallos reconfiguración
3. Realización cambios +
transferencia estado
21/22
22. Reconfiguración dinámica con
Dynamic PRISMA
VisionSystem
VideoIn ImageProc ImageOut
ImgOutput
Software Port
Video
CaptureCard VCC-Conn Image ImageOut IPC-Conn
VideoIn
ProcCard
Internal
EventsPort
VisionSystem Faulty VisionStatus
Output Vision Port
Evolver External Unrecoverable
EventsPort Watchdog Fault
0. Detección de
fallos
2. Ejecución transaccional
1. Acciones a tomar frente a del proceso de
fallos reconfiguración
3. Realización cambios +
transferencia estado
22/22
23. Reconfiguración dinámica con
Dynamic PRISMA
VisionSystem
VideoIn ImageProc ImageOut
ImgOutput
Software Port
Video
CaptureCard VCC-Conn Image ImageOut IPC-Conn
VideoIn
ProcCard
Internal
EventsPort
VisionSystem Faulty VisionStatus
Output Vision Port
Evolver External Unrecoverable
EventsPort Watchdog Fault
0. Detección de
fallos
2. Ejecución transaccional
1. Acciones a tomar frente a del proceso de
fallos reconfiguración
4. Información estado final 3. Realización cambios +
(verificación corrección) transferencia estado
23/22
24. Reconfiguración dinámica con
Dynamic PRISMA
VisionSystem
VideoIn ImageProc ImageOut
ImgOutput
Software Port
Video
CaptureCard VCC-Conn Image ImageOut IPC-Conn
VideoIn
ProcCard
Internal
EventsPort
VisionSystem Faulty VisionStatus
Output Vision Port
Evolver External Unrecoverable
EventsPort Watchdog Fault
0. Detección de
fallos
2. Ejecución transaccional
1. Acciones a tomar frente a del proceso de
fallos reconfiguración
4. Información estado final 3. Realización cambios +
(verificación corrección) transferencia estado
24/22
25. Reconfiguración dinámica con
Dynamic PRISMA
VisionSystem
VideoIn ImageProc ImageOut
ImgOutput
Software Port
Video
CaptureCard VCC-Conn
IPC-Conn
Internal
EventsPort
VisionSystem Faulty VisionStatus
Output Vision Port
Evolver External Unrecoverable
EventsPort Watchdog Fault
0. Detección de
fallos
2. Ejecución transaccional
1. Acciones a tomar frente a del proceso de
fallos reconfiguración
4. Información estado final 3. Realización cambios +
(verificación corrección) transferencia estado
25/22
27. 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)
28. 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
29. Gracias por su atención
Cristóbal Costa-Soria
Information Systems and Software Engineering Research Group
Department of Information Systems and Computation
Universidad Politécnica de Valencia
Spain
Home page: http://issi.dsic.upv.es/~ccosta
Email: ccosta@dsic.upv.es
The PRISMA project: http://prisma.dsic.upv.es
3nd Workshop on Autonomic and SELF-adaptive Systems (WASELF’10)
September 7th 2010 – Valencia (Spain)