SlideShare una empresa de Scribd logo
1 de 29
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)
Indice


 Introducción
 Reconfiguración para la tolerancia a fallos
 Dynamic PRISMA
 Conclusiones
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
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
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
Indice


 Introducción
 Reconfiguración para la tolerancia a fallos
 Dynamic PRISMA
 Conclusiones
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
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
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
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
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
Indice


 Introducción
 Reconfiguración para la tolerancia a fallos
 Dynamic PRISMA
 Conclusiones
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
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
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
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
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
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
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
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
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
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
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
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
Indice


 Introducción
 Reconfiguración para la tolerancia a fallos
 Dynamic PRISMA
 Conclusiones
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
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)

Más contenido relacionado

Similar a Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos

enerminds - Brochure Utilities Plataforma Certa
enerminds - Brochure Utilities Plataforma Certaenerminds - Brochure Utilities Plataforma Certa
enerminds - Brochure Utilities Plataforma Certagmoyano
 
Modulo9 Background Agents
Modulo9 Background AgentsModulo9 Background Agents
Modulo9 Background AgentsEduardo
 
Seminario System Center Family
Seminario System Center Family Seminario System Center Family
Seminario System Center Family Marcela Berri
 
Sistema de vigilancia automatizado t5
Sistema de vigilancia automatizado t5Sistema de vigilancia automatizado t5
Sistema de vigilancia automatizado t5Daniel Muccela
 
Generacion simplificada de reportes de cumplimiento en ibm i
Generacion simplificada de reportes de cumplimiento en ibm iGeneracion simplificada de reportes de cumplimiento en ibm i
Generacion simplificada de reportes de cumplimiento en ibm iHelpSystems
 
Presentacion softQ
Presentacion softQPresentacion softQ
Presentacion softQqgrouptec
 
Adm de entornos fisicos y virtuales con System Center
Adm de entornos fisicos y virtuales con System CenterAdm de entornos fisicos y virtuales con System Center
Adm de entornos fisicos y virtuales con System CenterMarcela Berri
 
安卓软件漏洞修复与检测技术研究-zhangyuan
安卓软件漏洞修复与检测技术研究-zhangyuan安卓软件漏洞修复与检测技术研究-zhangyuan
安卓软件漏洞修复与检测技术研究-zhangyuan正炎 高
 
Solución para el sector financiero
Solución para el sector financieroSolución para el sector financiero
Solución para el sector financieroqgrouptec
 
Integracion y Entrega Continua - TLP Innova 2017
Integracion y Entrega Continua - TLP Innova 2017Integracion y Entrega Continua - TLP Innova 2017
Integracion y Entrega Continua - TLP Innova 2017Romén Rodríguez-Gil
 
Pt1 pres u_c_curso_libre_0312
Pt1 pres u_c_curso_libre_0312Pt1 pres u_c_curso_libre_0312
Pt1 pres u_c_curso_libre_0312cuzcatleco
 

Similar a Reconfiguracion Dinamica de Arquitecturas Software aplicada a la Tolerancia a Fallos (20)

enerminds - Brochure Utilities Plataforma Certa
enerminds - Brochure Utilities Plataforma Certaenerminds - Brochure Utilities Plataforma Certa
enerminds - Brochure Utilities Plataforma Certa
 
Visión Industrial
Visión IndustrialVisión Industrial
Visión Industrial
 
Modulo9 Background Agents
Modulo9 Background AgentsModulo9 Background Agents
Modulo9 Background Agents
 
Seminario System Center Family
Seminario System Center Family Seminario System Center Family
Seminario System Center Family
 
Sistema de vigilancia automatizado t5
Sistema de vigilancia automatizado t5Sistema de vigilancia automatizado t5
Sistema de vigilancia automatizado t5
 
Generacion simplificada de reportes de cumplimiento en ibm i
Generacion simplificada de reportes de cumplimiento en ibm iGeneracion simplificada de reportes de cumplimiento en ibm i
Generacion simplificada de reportes de cumplimiento en ibm i
 
Presentacion softQ
Presentacion softQPresentacion softQ
Presentacion softQ
 
Presentación Pasantía
Presentación PasantíaPresentación Pasantía
Presentación Pasantía
 
Adm de entornos fisicos y virtuales con System Center
Adm de entornos fisicos y virtuales con System CenterAdm de entornos fisicos y virtuales con System Center
Adm de entornos fisicos y virtuales con System Center
 
007 Captura de Datos en Planta
007 Captura de Datos en Planta007 Captura de Datos en Planta
007 Captura de Datos en Planta
 
安卓软件漏洞修复与检测技术研究-zhangyuan
安卓软件漏洞修复与检测技术研究-zhangyuan安卓软件漏洞修复与检测技术研究-zhangyuan
安卓软件漏洞修复与检测技术研究-zhangyuan
 
SCADA.ppt
SCADA.pptSCADA.ppt
SCADA.ppt
 
06 marcado-ce validacion-procesos
06 marcado-ce validacion-procesos06 marcado-ce validacion-procesos
06 marcado-ce validacion-procesos
 
SoftQ
SoftQ SoftQ
SoftQ
 
Solución para el sector financiero
Solución para el sector financieroSolución para el sector financiero
Solución para el sector financiero
 
Cr2200 2100 En EspañOl
Cr2200 2100 En EspañOlCr2200 2100 En EspañOl
Cr2200 2100 En EspañOl
 
Arquitectura integrada
Arquitectura integradaArquitectura integrada
Arquitectura integrada
 
Integracion y Entrega Continua - TLP Innova 2017
Integracion y Entrega Continua - TLP Innova 2017Integracion y Entrega Continua - TLP Innova 2017
Integracion y Entrega Continua - TLP Innova 2017
 
Pt1 pres u_c_curso_libre_0312
Pt1 pres u_c_curso_libre_0312Pt1 pres u_c_curso_libre_0312
Pt1 pres u_c_curso_libre_0312
 
Festo
FestoFesto
Festo
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Último (10)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

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)
  • 2. Indice  Introducción  Reconfiguración para la tolerancia a fallos  Dynamic PRISMA  Conclusiones
  • 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
  • 7. Indice  Introducción  Reconfiguración para la tolerancia a fallos  Dynamic PRISMA  Conclusiones
  • 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
  • 13. Indice  Introducción  Reconfiguración para la tolerancia a fallos  Dynamic PRISMA  Conclusiones
  • 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
  • 26. Indice  Introducción  Reconfiguración para la tolerancia a fallos  Dynamic PRISMA  Conclusiones
  • 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)