Product Design, Manufacturing & Innovation Resources
Maison » Système de blocage de la récupération

Système de blocage de la récupération

1975-06-01
  • Brian Randell
Ingénieur logiciel analysant le Recovery Block Scheme dans un bureau moderne.

(Image générée à titre d'illustration uniquement)

Le schéma de blocs de récupération est une technique de tolérance aux pannes logicielles basée sur la diversité de conception et la récupération d'erreurs par rétroaction. Il structure un programme en une série de blocs, chacun comportant un module principal, un test d'acceptation et un ou plusieurs modules alternatifs. Si la sortie du module principal échoue au test d'acceptation, l'état du système est restauré et un module alternatif est exécuté.

Le concept de bloc de récupération, introduit par Brian Randell, est une approche structurée pour garantir la tolérance aux pannes logicielles. Il repose sur le principe de fournir des modules logiciels redondants, appelés alternatives, pour une opération donnée, associés à un mécanisme de vérification de la validité du résultat de cette opération. Les composants clés sont : le test d’acceptation (TA), l’alternative principale (P) et une séquence d’alternatives secondaires (Q1, Q2, …). Avant l’exécution de l’alternative principale, le système sauvegarde un point de contrôle de son état actuel. Une fois P exécuté, le test d’acceptation est lancé sur le résultat. Le TA est un élément logique crucial qui vérifie que le résultat est acceptable ; il n’a pas à prouver une exactitude absolue, mais plutôt que le résultat est raisonnable et cohérent.

Si le résultat réussit le test d'acceptation, le point de contrôle est ignoré et le programme poursuit son exécution. En revanche, si le test échoue ou si l'alternative principale ne s'exécute pas (par exemple, en raison d'une erreur d'exécution), le système effectue une restauration. Il restaure l'état à partir du point de contrôle enregistré, puis exécute l'alternative suivante dans la séquence (Q1). Le résultat de Q1 est alors soumis au même test d'acceptation. Ce processus se poursuit jusqu'à ce qu'une alternative produise un résultat satisfaisant ou que toutes les alternatives aient été testées, auquel cas une défaillance système est constatée.

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
- Informatique

Taper

Logiciel/Algorithme

Perturbation

Incrémentale

Usage

Créneau/spécialité

Précurseurs

  • Concepts de gestion des exceptions dans les langages de programmation
  • Mécanismes de transaction et de restauration des bases de données
  • Premiers travaux sur la vérification et l'exactitude des programmes
  • Principes généraux de redondance en ingénierie matérielle

Applications

  • logiciels critiques pour la sécurité dans les systèmes de signalisation ferroviaire
  • systèmes de protection des réacteurs nucléaires
  • applications aérospatiales où une défaillance logicielle est catastrophique
  • systèmes d'exploitation tolérants aux pannes expérimentaux

Brevets:

NA

Idées d'innovations potentielles

  • génération automatisée de tests d'acceptation à partir de spécifications formelles
  • mécanismes de point de contrôle et de restauration accélérés par le matériel
  • intégration des blocs de récupération avec l'apprentissage automatique pour la détection prédictive des pannes
  • blocs de récupération distribués pour les architectures de microservices
  • blocs de récupération pour sécuriser les contrats intelligents sur les blockchains
  • systèmes de blocs de récupération adaptatifs qui réorganisent les alternatives en fonction des performances passées
  • Cadres de blocs de récupération légers pour systèmes embarqués à ressources limitées
  • blocs de récupération simultanés pour les applications multithread
  • vérification formelle tools for proving the correctness of recovery block implementations
  • logiciel auto-synthétisant qui génère ses propres modules alternatifs
Lié à : blocs de récupération, tolérance aux pannes logicielles, diversité de conception, test d'acceptation, récupération d'erreurs en arrière, point de contrôle, Brian Randell, logiciel critique pour la sécurité, modules redondants, programmation N-version.

Contexte historique

Système de blocage de la récupération

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

(si la date est inconnue ou non pertinente, par exemple « mécanique des fluides », une estimation arrondie de son émergence notable est fournie)

10e année anniversaire

Les images en pleine résolution et les téléchargements sont uniquement disponibles, et 100% gratuits, pour les membres inscrits.