Product Design, Manufacturing & Innovation Resources
Hogar » Esquema de Bloques de Recuperación

Esquema de Bloques de Recuperación

1975-06-01
  • Brian Randell
Ingeniero de software analizando el Esquema de Bloques de Recuperación en un entorno de oficina moderno.

(Imagen generada únicamente con fines ilustrativos)

El esquema de bloques de recuperación es una técnica de tolerancia a fallos de software basada en la diversidad de diseño y la recuperación de errores hacia atrás. Estructura un programa como una serie de bloques, cada uno con un módulo principal, una prueba de aceptación y uno o más módulos alternativos. Si la salida del módulo principal no supera la prueba de aceptación, se restablece el estado del sistema y se ejecuta un módulo alternativo.

El concepto de bloque de recuperación, introducido por Brian Randell, es un enfoque estructurado para lograr la tolerancia a fallos del software. Se basa en el principio de proporcionar módulos de software redundantes, conocidos como alternativas, para una operación determinada, junto con un mecanismo para verificar la corrección del resultado de la operación. Los componentes clave son: la prueba de aceptación (AT), la alternativa primaria (P) y una secuencia de alternativas secundarias (Q1, Q2, ...). Antes de ejecutar la alternativa primaria, el sistema guarda un punto de control de su estado actual. Una vez completada P, se ejecuta la prueba de aceptación sobre la salida. La AT es una pieza lógica crucial que verifica que el resultado sea aceptable; no necesita demostrar una corrección absoluta, sino que el resultado sea razonable y consistente.

Si el resultado supera la prueba de aceptación, el punto de control se descarta y el programa continúa. Sin embargo, si la prueba de aceptación falla, o si la alternativa principal no se ejecuta (por ejemplo, debido a un error de tiempo de ejecución), el sistema realiza una reversión. Restaura el estado desde el punto de control guardado y ejecuta la siguiente alternativa de la secuencia (Q1). La salida de Q1 se somete entonces a la misma prueba de aceptación. Este proceso continúa hasta que una alternativa produce un resultado que supera la prueba, o se agotan todas las alternativas, momento en el que se declara un fallo a nivel de sistema.

The effectiveness of recovery blocks hinges on the diversity of the alternates. The primary and secondary modules should be designed and implemented independently, ideally by different teams using different algorithms or programming languages. This minimizes the chance of a common design flaw (a bug) existing in all alternates, which would cause them all to fail the acceptance test in the same way. The acceptance test itself is a single point of failure and must be simpler and more reliable than the modules it is testing. Compared to N-version programming, another software fault tolerance technique, recovery blocks can be more efficient as they only execute one module at a time, but they introduce latency due to the potential for rollback and re-execution.

UNESCO Nomenclature: 1203
Ciencias de la computación

Tipo

Software/Algoritmo

Ruptura

Incremental

Uso

Nicho/Especialización

Precursores

  • Conceptos de manejo de excepciones en lenguajes de programación
  • Mecanismos de transacciones y reversiones de bases de datos
  • Trabajos iniciales sobre la verificación y corrección del programa
  • Principios generales de redundancia de la ingeniería de hardware

Aplicaciones

  • software crítico para la seguridad en sistemas de señalización ferroviaria
  • sistemas de protección de reactores nucleares
  • Aplicaciones aeroespaciales donde una falla de software es catastrófica
  • sistemas operativos experimentales tolerantes a fallos

Patentes:

NA

Ideas para posibles innovaciones

  • Generación automatizada de pruebas de aceptación a partir de especificaciones formales.
  • mecanismos de puntos de control y reversión acelerados por hardware
  • Integración de bloques de recuperación con aprendizaje automático para la detección predictiva de fallas
  • bloques de recuperación distribuida para arquitecturas de microservicios
  • Bloques de recuperación para asegurar contratos inteligentes en cadenas de bloques
  • Sistemas de bloques de recuperación adaptativos que reordenan las alternativas en función del rendimiento pasado.
  • Marcos de bloques de recuperación ligeros para sistemas integrados con recursos limitados
  • bloques de recuperación concurrentes para aplicaciones multiproceso
  • verificación formal tools for proving the correctness of recovery block implementations
  • software de autosíntesis que genera sus propios módulos alternativos
Relacionado con: bloques de recuperación, tolerancia a fallos de software, diversidad de diseño, prueba de aceptación, recuperación de errores hacia atrás, puntos de control, Brian Randell, software crítico para la seguridad, módulos redundantes, programación de versiones N.

Contexto histórico

Esquema de Bloques de Recuperación

1970
1970
1970-01-01
1975-06-01
1980
1980
1980
1970
1970
1970
1973
1980
1980
1980
1980

(Si la fecha es desconocida o no es relevante, por ejemplo "mecánica de fluidos", se proporciona una estimación redondeada de su aparición notable)

décimo año aniversario

Las imágenes en tamaño completo y las descargas solo están disponibles, de forma totalmente gratuita, para los miembros registrados.

> Acceso <