リカバリブロック方式は、設計の多様性と後方エラー回復に基づいたソフトウェアの耐障害性技術です。この方式では、プログラムを一連のブロックとして構成し、各ブロックはプライマリモジュール、受け入れテスト、および1つ以上の代替モジュールで構成されます。プライマリモジュールの出力が受け入れテストに失敗した場合、システムの状態が復元され、代替モジュールが実行されます。

(画像はイメージです)
リカバリブロック方式は、設計の多様性と後方エラー回復に基づいたソフトウェアの耐障害性技術です。この方式では、プログラムを一連のブロックとして構成し、各ブロックはプライマリモジュール、受け入れテスト、および1つ以上の代替モジュールで構成されます。プライマリモジュールの出力が受け入れテストに失敗した場合、システムの状態が復元され、代替モジュールが実行されます。
ブライアン・ランデルによって提唱されたリカバリブロックの概念は、ソフトウェアのフォールトトレランスを実現するための構造化されたアプローチです。これは、特定の操作に対して代替手段と呼ばれる冗長なソフトウェアモジュールを提供し、操作の結果の正しさを検証するメカニズムと組み合わせるという原則に基づいています。主要な構成要素は、受け入れテスト(AT)、プライマリ代替手段(P)、および一連のセカンダリ代替手段(Q1、Q2、…)です。プライマリ代替手段を実行する前に、システムは現在の状態のチェックポイントを保存します。Pが完了すると、出力に対して受け入れテストが実行されます。ATは、結果が許容できるものであることを検証する重要なロジックです。絶対的な正しさを証明する必要はなく、結果が妥当で一貫性があることを検証すればよいのです。
結果がATに合格した場合、チェックポイントは破棄され、プログラムは続行されます。しかし、ATが失敗した場合、またはプライマリ代替処理自体が実行に失敗した場合(例えば、実行時エラーによる場合)、システムはロールバックを実行します。保存されたチェックポイントから状態を復元し、シーケンス内の次の代替処理(Q1)を実行します。Q1の出力は、同じ受け入れテストにかけられます。このプロセスは、代替処理がテストに合格する結果を生成するか、すべての代替処理が尽くされるまで継続され、その時点でシステムレベルの障害が宣言されます。
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.
回復ブロック制度
(日付が不明または関連性がない場合、例えば「流体力学」などでは、その注目すべき出現時期の概算値が提示されます。)
フルサイズの画像とダウンロードは、登録会員のみが100%無料で利用できます。
> ログイン <