JP3085917B2 - 耐ソフトウェア障害構成を有したデータ処理装置 - Google Patents

耐ソフトウェア障害構成を有したデータ処理装置

Info

Publication number
JP3085917B2
JP3085917B2 JP09091841A JP9184197A JP3085917B2 JP 3085917 B2 JP3085917 B2 JP 3085917B2 JP 09091841 A JP09091841 A JP 09091841A JP 9184197 A JP9184197 A JP 9184197A JP 3085917 B2 JP3085917 B2 JP 3085917B2
Authority
JP
Japan
Prior art keywords
data
processing
version
versions
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP09091841A
Other languages
English (en)
Other versions
JPH10283215A (ja
Inventor
正宏 青野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP09091841A priority Critical patent/JP3085917B2/ja
Publication of JPH10283215A publication Critical patent/JPH10283215A/ja
Application granted granted Critical
Publication of JP3085917B2 publication Critical patent/JP3085917B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高信頼性を要求さ
れるコンピュータシステムやコントローラシステムにお
いてソフトウェアプログラムの冗長構成によりフォール
トトレランスを向上させる耐ソフトウェア障害構成を有
したデータ処理装置に関し、特に連続的に入力される観
測データの監視と当該データによる対象物の制御を行う
システム、例えば航空管制システム、地震観測システ
ム、プラント制御システム等に用いられる装置に関す
る。
【0002】
【従来の技術】システムの高信頼化技術には耐故障、故
障排除が含まれる。ソフトウェアシステムに関していえ
ば、故障排除はソフトウェアの論理的なミス、いわゆる
バグを含まないようなソフトウェアを作成することであ
るが、現実にはこれは難しい。そこで、バグが含まれて
いても正しい結果が得られる、すなわち耐故障性を向上
させるソフトウェアの構成方法が従来より提案されてい
る。
【0003】以下に、冗長構成を用いて耐故障性を向上
させる従来の方法について簡単に述べる。なお、初めに
本文では用いる記法について説明する。まずA、B、
C、D、P、Q、Rといったアルファベット大文字1字
で表すものは実現する機能を表し、これに数字を添え
た、例えばA0、B1といった表記は、当該機能を実現
するためのプログラムやファームウェア(ここではこれ
らをプログラムという用語で統一する。)のバージョン
を表す。バージョンという言葉は、プログラムを動作さ
せる実体を指し、同一機能を果たすがプログラム構造が
異なるプログラムを互いに区別する言葉として用いられ
る。つまり、例えばA0とA1は同一の機能を有するが
構造が異なるプログラムである。バージョンを相互に異
なるプログラムとして作成することにより各バージョン
に同一のバグが作り込まれる可能性を低減し、これら異
なるバージョンを用いて冗長構成を形成することにより
耐故障性を向上させることができる。
【0004】従来より存在するソフトウエアフォールト
トレランスのうち、古典的技術としてNバージョン方式
(又は、Nバージョンプログラミング方式)とリカバリ
ブロツク方式がよく知られている。
【0005】図11は、Nバージョン方式の原理を説明
する模式的ブロック図である。図に示すNバージョン方
式を採用したシステムへの入力データ2はデータ分岐部
4に入力される。バージョン6、8、10は機能Pに関
する互いに異なるバージョンP0、P1、P2である。
すなわち、バージョンP0、P1、P2は、互いに同じ
機能Pを実現するものとして同じ仕様に基づいて独立に
作成されたプログラムである。入力データは、データ分
岐部4から各バージョン6、8、10に並列に渡され、
これら各バージョンで並列に処理された処理結果は出力
判定部12へ出力される。出力判定部12は各処理結果
を比較する。出力判定部は、これら処理結果間に不一致
があれば、バージョン6、8、10中にバグを含むもの
があると判定し処理結果の多数決処理を行う。そして多
数側のバージョンを正常、少数側のバージョンを異常と
判断し、正常と判断した処理結果をシステムの出力デー
タ14とする。このようにNバージョン方式では、同一
機能を有するプログラムを並列に実行するという冗長構
成をとる。これにより、それらプログラム中にバグがあ
るものが混在していても、異常を生じたプログラムから
のデータを排除しフォールトトレランス性を確保するこ
とができる。なお、図においては、多数決を取るために
必要な最低限度である3つのバージョンによる並列処
理、すなわちN=3の場合を示したが、Nは3より大き
く取ることができ、Nを大きくするほど耐故障性は高ま
る。
【0006】さて、このNバージョン方式は、多数決論
理を採用するため、各バージョンは互いに処理結果が同
じとなることを前提としている。しかし、別個に作成し
たプログラムにて同じ処理結果を得るためには、プログ
ラム作成に際して詳細な内部仕様まで事前に取り決めな
ければならない。これを怠るとバージョン間で、例え
ば、計算精度が異なったり、採用する処理方式の相違等
により入力されたデータに付与する番号が異なるといっ
たことが起こり、単純に多数決により正常、異常を判定
することができなくなる。一方、内部仕様を細かく取り
決めると、そこに設計不良が入り込む危険が増え、その
設計不良が全バージョンに及ぶ点で、故障排除の点で望
ましくないという問題点があった。
【0007】また、処理結果の正誤の判定を行う検査モ
ジュールである出力判定部12はバージョンに共通に設
けられるため、検査モジュール自身に障害があればシス
テム障害となるという問題点があった。
【0008】さらに、バージョン間で多数決をとるため
には、少なくとも3つのバージョンが必要であり、運転
停止が許されないシステムでより高いフォールトトレラ
ンスを実現するためにはより多くのバージョンを用意す
る必要がある。そのため、ソフトウェアの開発、保守に
要するコスト等の負荷が、ソフトウェアフォールトトレ
ランスを取らない場合に比べて、バージョン数に比例し
て大きくなるという問題点があった。
【0009】次に、図12は、リカバリブロック方式の
原理を説明する模式的ブロック図である。図に示すリカ
バリブロック方式を採用したシステムへの入力データ2
2は、チェックポイント部24により退避される。フォ
ールトトレランスを要求される機能Qは、バージョン2
6、28により実現される。ここでバージョン26、2
8は機能Qを実現する互いに異なるバージョンQ0、Q
1である。これらバージョン26、28の出力は出力検
査部32に接続され、この出力検査部32で正当性を検
査された出力データ34がこのシステムから出力され
る。この方式は、多数決論理を採用しないため、同一の
機能を有するバージョンは必ずしも実行結果が厳密に同
一であることを要しない。例えば、計算精度に違いがあ
っても構わない。また、このことに起因し、バージョン
の作成に際して内部の詳細な仕様を取り決めないでよい
ので、各バージョン間の独立性を確保することができバ
ージョン間に同一のバグの作り込みを防止することがで
きる。
【0010】図に示すリカバリブロック方式を用いたシ
ステムの動作を簡単に説明する。この方式では機能Qを
実現する複数のバージョンは同時に実行される必要はな
い。例えば、バージョン26(Q0)が機能Qを最も厳
密に実現するバージョンであるとすると、通常は機能Q
について用意された複数のバージョンのうちバージョン
Q0のみが実行される。つまり入力データ22はチェッ
クポイント部24からバージョンQ0に入力される。そ
して、バージョンQ0の処理結果が出力検査部32へ出
力される。出力検査部32は、バージョンQ0からの処
理結果が正常であるか等の正当性を検査する。また出力
検査部32はバージョンQ0からの出力がタイムアウト
を起こしていないか、つまり所定時間内に得られたかも
チェックする。これらの検査の結果、正常と判断されれ
ば、出力データ34が出力される。
【0011】一方、異常が出力検査部32で発見されれ
ば、チェックポイント部24に戻り、退避しておいた入
力データを用いて、機能Qの代替機能を実現するバージ
ョンQ1が実行される。そして、バージョンQ1の処理
結果に対する出力検査部32での検査結果が正常であれ
ば、バージョンQ1の処理結果をシステムの出力データ
34として出力する。もし、これも異常であれば、すな
わち、機能Qに対して用意された全てのバージョンを試
してみてなお異常である場合には、はじめてこの機能ス
テップが異常であるというアラームを発し、例えばシス
テムを停止する。この方式においても、バージョンの数
は2である必要はなく、より多数のバージョンを用意す
ることにより耐故障性の向上を図ることができる。
【0012】このようにリカバリブロック方式では、検
査モジュールである出力検査部32は、実行バージョン
の処理結果自体に基づいてその正常/異常を判断しなけ
ればならない。すなわち、多数決論理といった相対的な
方法を用いないので、検査モジュール自体が大きくな
り、その作成コストが大きくなる可能性があるという問
題があった。また、検査モジュールで致命的障害を見逃
し次段で顕在化した場合や検査モジュール自身に障害が
あった場合には、システム障害となる可能性があるとい
う問題があった。
【0013】また、障害時に代替バージョンに切り替え
て実行をやり直す、つまりバージョンの実行の前にデー
タを保存し、代替バージョンに切り替える際に保存した
デ一夕を使用するという方法をとるため、常時、データ
保存を行う負荷がかかると共に、代替バージョン切替時
に時間遅れが発生する恐れがあるという問題があった。
【0014】さらに、バージョン内部にデータを隠蔽
し、実行のたびに内部のデータの値が変わるような構造
のソフトウェア設計は困難となり、データと処理を分離
せざるを得なくなり、データ構造に係わる設計障害を残
す可能性が大きくなるという問題があった。
【0015】さて、これら古典的なフォールトトレラン
ス技術の改良を図った技術がいくつか提案されている。
以下、それらについて説明する。
【0016】上述のNバージョン方式の概念を拡張さ
せ、そのいくつかの問題点の解決法を提案する従来技術
として、特開平6−342369号公報に開示されるも
のがある。これをここでは、「バージョン組合せ多重化
方式」と称する。図13は、このバージョン組合せ多重
化方式の原理を説明する模式的ブロック図である。図1
3において、図11と同様の機能を有する構成要素には
同一の符号を付して説明を省略する。図では、フォール
トトレランスを図る範囲の機能に対して並列に処理を実
行しうる8つのバージョン40(40a〜40h)が用
意されている。入力データ2はこの各バージョン40へ
分岐され、それらの処理結果が出力判定部12において
多数決処理され、出力部42から出力データ14が出力
される。
【0017】この方式では、各バージョン40がそれぞ
れ行うデータ処理は、複数ステップからなる一連のデー
タ処理に区分される。この複数ステップは各バージョン
40間で共通である。このバージョン40は以下のよう
に構成されている。まず各ステップ毎に当該ステップの
データ処理を実現する複数のバージョンが用意される。
例えば、図ではステップは3つ設けられ、各ステップに
は2つずつのバージョン、すなわち1番目のステップに
はA0、A1、2番目のステップにはB0、B1、そし
て3番目のステップにはC0、C1が用意される。バー
ジョン40は、これら各ステップに含まれるバージョン
を1つずつ選択して組み合わせたものである。
【0018】ここでバージョン40を実現する各ステッ
プのバージョン組合せの種類の最大数は、i番目のステ
ップに用意するバージョンの種類miを掛け合わせた数
になる。図に示す例では、m1×m2×m3=23=8種類
のバージョンを最大作ることができ、図にはその8種類
全ての組合せが示されている。このように、この方式で
は、各ステップに3以上のバージョンを用意しなくて
も、3つ以上のバージョン組合せを得ることができる。
そのため、古典的Nバージョン方式の上述した問題点で
あるバージョン数に応じたソフトウェア開発、保守の負
荷の増大を軽減することができる。
【0019】ちなみに、この方式は各ステップの単体機
能は事前に十分に試験されていてバグは存在しないとい
う前提と、それよりもむしろ機能間の組合せやモジュー
ルの接続時点で障害が発生しやすいという現象を鑑み、
単体機能単位でのデータ処理結果の検査は行っておら
ず、出力判定部12にてバージョン組合せによるデータ
処理の異常を検知している。この方式について述べる上
記文献は、可能なバージョン組み合わせのうちの全てを
並列実行していない場合において異常組合せが発見され
たとき、その異常組合せを除外し未使用のバージョン組
合せの中から選択したバージョン組合せを次回からの並
列組合せ実行に組込む方式についても述べている。
【0020】一方、リカバリブロック方式を並列処理化
させた技術として、特開平7−49844号公報に開示
されるものがある。図14は、当該公報に示されたリカ
バリブロック方式を並列処理化させた従来技術の概念を
示す模式的ブロック図である。図14は、前段の機能を
実行するモジュール60、同種の機能を異なるバージョ
ンで実現するモジュール62、64、及びこれらモジュ
ール62、64の結果を受けて処理する後段の機能を実
現するモジュール66がネットワークにより接続されて
いる。ここでモジュール62、64がフォールトトレラ
ンス性を保証する範囲である。この構成は、前段のモジ
ュール60からの出力結果が、並行して同種の機能を実
現するモジュール62、64に入力される。モジュール
62、64は並行して処理を行い、各々属性情報を付し
て処理結果を後段のモジュール66に送る。モジュール
66は処理結果がタイムアウトの検出等、簡単な受け入
れ検査に合格すれば、属性情報から優先順位の高いバー
ジョンの処理結果を採用し、次の機能の実行に制御を移
す。ここでは、モジュール62、64の処理結果の一致
を期待していないので、内部仕様の統一の必要性はな
く、また多数決論理を採用しないので3倍以上のバージ
ョン数を必要とすることもない。
【0021】また、リカバリブロックを単純並列化する
方法というものも考えることができる。図15は、リカ
バリブロック方式を単純並列化する従来技術の概念を示
す模式的ブロック図である。この方法では、フォールト
トレランスを要求される機能範囲を分割することなく、
その全体処理について並列処理化が行われる。つまり、
入力デ一夕82はデータ分岐部84で分割され、機能R
を最も厳密に実現するバージョン86(R0)と、機能
Rの代替機能を実現するバージョン88(R1)とにそ
れぞれ入力される。そして、これらバージョンR0、R
1の処理が並行して行われる。バージョンR0、R1の
いずれの実行結果を選択するかはオペレータの判断、ま
たは出力選択部90にて判断され、選択された結果が出
力データ92として出力される。この方法では処理途中
段階の検査や組み合わせの処理がなく単純明快で設計上
の負荷が最も軽い。
【0022】その他、関係する技術として、電子情報通
信学会論文誌Vol.J79−D−I、No.7「標準
化プロジェクトを基盤としたオペレーティングシステム
の設計フォールトトレランスの実現」(以下、「設計フ
ォールトトレランス」と略す。)に、リカバリブロツク
方式におけるデータの引き継ぎ方式を述べたものがあ
る。図16は、この設計フォールトトレランスを説明す
る模式的ブロック図である。図において、運用バージョ
ン100は、内部データベース102とその内容を共通
形式に変換する変換プログラム104を含んでいる。一
方、待機バージョン110は、内部データベース11
2、共通形式から待機バージョン110への変換プログ
ラム114を含んでいる。また、共通データベース11
6は共通形式を有したデータベースである。
【0023】この設計フォールトトレランスでは、運用
バージョン100は処理を実行すると、変換プログラム
104を用いて内部データベース102の内容を当該バ
ージョンでのデータ形式から、共通形式に変換し、共通
データベース116に書き出しておく。運用バージョン
100に障害が発生し、待機バージョン110に切り替
えなければならないとき、待機バージョン110の変換
プログラム114は共通データベース116からデータ
を読み込み、当該バージョンのデータベース形式に変換
して内部データベース112に格納する。それから待機
バージョン110の実行が開始される。これにより、デ
ータベースをバージョン内部に取り込むとともに設計の
共通化による共通バグの発生を防止している。
【0024】もう一つの関連技術として電子情報通信学
会論文誌Vol.J79−D−I、No.9「モジュー
ル交換手法によるマルチバージョンソフトウェアの信頼
性向上」(以下、「モジュール交換手法」と略す。)
に、Nバージョン方式で、一連の機能の処理を行った後
の処理正当性の検査において異常が検出された場合に、
バージョンに含まれる一部機能のバージョンを部分的に
組み替え、バージョン数を維持する手法が示されてい
る。図17は、このモジュール交換手法を説明する模式
的ブロック図である。入力データ122は入力分岐部1
24に入力され、ここから一連の機能A〜Dを行う3つ
のバージョン126a〜126cにそれぞれ入力され
る。バージョン126aは機能A〜Dをそれぞれ実現す
る第1のバージョンであるA0、B0、C0、D0から
なるバージョン組合せ、バージョン126bは機能A〜
Dをそれぞれ実現する第2のバージョンであるA1、B
1、C1、D1からなるバージョン組合せ、バージョン
126cは機能A〜Dをそれぞれ実現する第3のバージ
ョンであるA2、B2、C2、D2からなるバージョン
組合せである。バージョン126a〜126cからの出
力は出力部128に入力され、多数決により正常/異常
が判定される。
【0025】このモジュール交換手法では、出力部12
8による判定の結果、不一致のバージョン組合せがあれ
ば、そのバージョン組合せに異常ありと判定する。次に
異常組合せの中の異常バージョンを正常機能バージョン
に入れ替えることにより、バージョン組合せ数を維持す
る。具体的には、異常組合せの半数の機能バージョンを
正常バージョン組合せの機能バージョンと入れ替えて実
行し試験を行う。例えばバージョン126a中に異常あ
りと判定されれば、A0とB0を正常であるA1とB1
で置き換える。この組合せで異常が発見されれば、C0
またはD0に異常ありと判定し、発見されなければA0
またはB0に異常ありと判定する。以下同様に二分法に
よって順次、異常機能バージョン候補を絞っていき、最
後に異常と特定された機能バージョンを正常機能バージ
ョンに入れ替え、バージョン組合せ数を維持する。これ
により、検査障害を防止するとともに、障害検出後も組
み合わせバージョン数を維持することを図る。
【0026】
【発明が解決しようとする課題】しかし、以上のような
古典的なフォールトトレランス技術の改良技術には以下
のような問題がある。
【0027】まず、バージョン組合せ多重化方式では、
Nバージョン方式の問題点である3つ以上の複数バージ
ョンを作成するコストの問題と検査モジュール自身の障
害の危険の問題について、問題を軽減しているが、各機
能単位のバージョン数が2の場合、1つのバージョンに
障害があったとき、半数のバージョン組合せに障害が発
生する可能性があり多数決方式がとれず、システム障害
となるおそれがあるという問題があった。また、バージ
ョン組合せの選択次第では、誤った結果を多数決として
採用する可能性があるという問題もあった。ここで各機
能を担当するバージョン数を3以上にすればその可能性
は減りはするが、組合せ選択次第では誤った組合せを多
数決とする危険は依然として残り、また、古典的Nバー
ジョン方式の製作コストが大きくなるという問題を解決
できなくなる。
【0028】また、リカバリブロック方式を並列処理化
させた技術では、複数のバージョンを実行した段階で、
属性情報によりどのバージョンを選択するかを決めるの
で、前段の機能実行段階で障害原因を作りこみ、後段の
機能実行段階に入ってから障害が顕在化する場合、シス
テム障害となるおそれがあるという問題があった。ま
た、古典的なリカバリブロック方式のように十分な出力
結果の検査を行うとすれば、検査の負担軽減という目的
が損なわれてしまう。
【0029】さらに、各バージョンの出力結果の同一性
を要求していないので、ある機能のバージョン切替えを
行った場合、データの一貫性がくずれ、切り替える前に
後段の機能のバージョン内のデータと前段でバージョン
切替後の出力データとの間に論理的矛盾を引き起こす可
能性があった。
【0030】また、リカバリブロックを単純並列化する
方法では、フォールトトレランス保証範囲全体の信頼性
が下かる。例えば、説明の簡単のため、全体機能をn個
に分割し、個々の機能の各バージョンの単位期間あたり
の障害発生率をrとし、機能当たりバージョン数をmと
すると、分割機能あたりの並列冗長方式のシステム障害
発生率は、 Ep=1−(1−rmn であるのに対し、ここで述べる単純並列化の方法では、
機能全体での冗長方式のシステム障害発生率は、 Es=(1−(1一r)nm となる。例えば、r=10-3、n=4、m=2とする
と、Ep=4×106、Es=16×10-6となり、この
方法では信頼性が下がることが理解される。さらに、ソ
フトウェア障害の場合、待機系で発生する障害は、待機
系での出力を最終的に用いないため検出できず、運用系
障害で待機系を選択して初めて障害に気が付き、システ
ム障害につながる運用上の陥穽にはまる可能性があると
いう問題がある。 また、設計フォールトトレランスで
は、リカバリブロック方式に係る基本的問題点のうち、
データ構造の隠蔽化の問題には対処しているが、実行モ
ジュールのデー夕を単に保存するだけでなく、常時、標
準形式に変換しなければならないという処理負荷がかか
るという問題があった。さらにリカバリブロック方式に
係るその他の問題点の解決策については示されていな
い。
【0031】また、モジュール交換手法では、Nバージ
ョン方式に係る基本的問題に加えて、バージョン組み替
え段階において、正常なバージョンを誤って異常と判断
してしまう危険性があった。以下にその例を示す。図1
7において機能Aの出力結果が、(X=1,Y=0)の
場合を正常出力とする。機能Aにおいて、バージョンA
0は正しい結果を出力し、バージョンA1は誤った結果
(X=0,Y=1)を出力したとする。次段の機能Bに
おいて、バージョンB0は無条件にX=1とする内部仕
様とし、バージョンB1は、Y≠0であればX=1であ
るのは自明として、Y=0のときだけX=1とし、そう
でなければなにもしない内部仕様とする。いずれも内部
仕様の設計方針の相違はあるが同一の機能Bを正しく実
現する。また、Yは後段の機能に引き継がれないものと
する。さて、この状態においてバージョンA1と正常な
バージョンB1の組み含わせでは誤った結果であるX=
0が得られるのに対し、バージョンB0とバージョンB
1を入れ替え、上記障害を有したバージョンA1と正常
なバージョンB0の組み合わせでは結果的に正しい値X
=1が得られる。ここで述べるモジュール交換手法で
は、このことからバージョンB1に障害があるという誤
判定をしてしまうといった問題があった。
【0032】本発明は、上記のような問題点を解消する
ためになされたもので、同一機能に対する複数バージョ
ンの実行結果が、必ずしも同じでなくても許容し、かつ
実行モジュール製作量を抑制し、かつ検査モジュールの
障害によるシステム障害を防止し、かつデータを可能な
範囲でバーションの中に隠蔽化することを可能とし、か
つ検査モジュールの肥大化を抑制し、かつ再実行を避け
ることにより再実行に係る問題発生を避け、かつバージ
ョン組合せ障害とバージョン単体障害によるシステム障
害が回避され、かつバージョン組合せ障害発生時に障害
を生じたバージョン組合せを排除し代替バージョン組合
せを組込むことを容易とすることを目的とする。
【0033】高信頼性の実現には、故障排除と耐故障性
の実現との2つの観点があることは上述した。前者はプ
ログラム中のバグを検出するということを意味する。故
障排除の努力により通常は、極めてまれな条件が重なっ
た場合にのみ顕在化するバグしか残存しない。後者の耐
故障性は、バグが存在していてもシステムに致命的な影
響、すなわちシステム障害を与えることを防止し、その
システム障害により引き起こされる運用停止による損失
を回避することを意味する。本発明はソフトウェアの障
害に対する耐故障性を向上させたデータ処理装置を提供
することを目的とする。
【0034】また、異なる設計による複数用意されたバ
ージョンの一部に障害が生じても、システム全体へ悪影
響を回避し運用を継続することができるデータ処理装置
を提供することを目的とする。
【0035】
【課題を解決するための手段】本発明に係る耐ソフトウ
ェア障害構成を有したデータ処理装置は、一連のデータ
処理を複数ステップに分割し、前記各ステップのデータ
処理を行うプログラムのバージョンをそれぞれ複数種類
備え、これら各ステップからそれぞれバージョンを選択
して構成される複数の異なるバージョン組合せを用いて
それぞれ前記一連のデータ処理を多重に実行する耐ソフ
トウェア障害構成を有したデータ処理装置であって、少
なくとも一つの前記ステップに対応して設けられ当該ス
テップの前記データ処理の実行に先立って、当該ステッ
プの直前ステップに属する複数の前記バージョンから出
力される各中間処理データの正当性を検査する検査手段
と、前記検査手段での検査結果に応じて前記中間処理デ
ータを選択し、選択された当該各中間処理データを当該
ステップに属する前記各バージョンへそれぞれ入力させ
る処理データ選択手段とを有するものである。
【0036】本発明に係る耐ソフトウェア障害構成を有
したデータ処理装置は、前記検査手段が当該検査手段に
対応する前記ステップに属する前記各バージョンそれぞ
れに対応する複数の個別検査部を含むというものであ
る。
【0037】本発明に係る耐ソフトウェア障害構成を有
したデータ処理装置は、前記処理データ選択手段が、前
記検査結果が前記各中間処理データは正常であることを
示す場合には、当該中間処理データの一部を所定の規則
に従って選択し、前記検査結果に基づいて、これまで選
択されていた当該中間処理データのうちに異常なデータ
を検知すると、その異常中間処理データを選択対象から
除外しこれまで選択されていなかった前記中間処理デー
タの中から代替データを選択するというものである。
【0038】本発明に係る耐ソフトウェア障害構成を有
したデータ処理装置は、多重に実行された前記一連のデ
ータ処理により得られた処理結果データのうち一つを所
定の規則に従って運用系処理結果データとして選択する
処理結果データ選択手段を有するものである。
【0039】本発明に係る耐ソフトウェア障害構成を有
したデータ処理装置は、前記検査手段により異常が検知
された前記バージョン組合せを、他のバージョン組合せ
で代替して前記多重化を維持するバージョン組合せ代替
手段を有するものである。
【0040】本発明に係る耐ソフトウェア障害構成を有
したデータ処理装置は、前記バージョン組合せにおいて
選択されている前記バージョンが、当該バージョンに
力される前記中間処理データに対して前記データ処理
行う際に用いるパラメータデータを外部から設定変更さ
れ、前記バージョン組合せ代替手段が前記バージョン組
合せの代替により切り替わる前記バージョン間での前記
データ処理の引き継ぎ処理として、前記パラメータデー
タのみを引き継ぐデータ処理引継手段を含むものであ
る。
【0041】本発明に係る耐ソフトウェア障害構成を有
したデータ処理装置は、前記バージョン組合せにおいて
選択されている前記バージョンが外部からパラメータデ
ータを設定変更され、当該バージョンに入力される前記
中間処理データを前記パラメータデータに基づいて前記
データ処理するデータ処理装置であって、前記パラメー
タデータの設定変更処理をNバージョンプログラミング
法に基づいて行うパラメータ設定変更処理手段を有する
ものである。
【0042】
【発明の実施の形態】
[実施の形態1]以下、本発明に係る実施の形態を図面
を用いて説明する。まず、フォールトトレランス性を保
証する範囲内での機能ブロック間のデータの流れは一方
向とする。また、フォールトトレランス性保証範囲への
入力は、当該範囲からの出力に基づくフィードバックを
受けないものとする。さらに以下、例えばa0/b0と
いった表現により、A0とB0のバージョンの組合せに
よって実行された処理結果のデ一夕を表すものとする。
【0043】図1は、本実施の形態に係るデータ処理装
置の概略のブロック構成図である。この図に示す例で
は、フォールトトレランスを要求される一連のデータ処
理に対応する機能範囲150が4つの機能(ステップ)
A〜Dに分割され、各機能毎に2つのバージョンが用意
される。図1に示される主要な構成は、フォールトトレ
ランスを保証する機能範囲150への入力データ15
2、この入力データ152を分岐して機能範囲150へ
入力する入力分岐部154、機能A〜Dにそれぞれ対応
するモジュール156、158、160、162、機能
範囲150からの出力データ群164、出力データ群1
64から1つを選択する出力選択部166、本データ処
理装置からの出力結果を受けて処理を行う装置やオペレ
ータなどを示す出力データ受信部168、及びバージョ
ンの切り替え等を行うバージョン制御機構170であ
る。
【0044】機能Aには、バージョン156a(A
0)、156b(A1)が含まれ、機能Bには、バージ
ョン158a(B0)、158b(B1)が含まれ、機
能Cには、バージョン160a(C0)、160b(C
1)が含まれ、機能Dには、バージョン162a(D
0)、162b(D1)が含まれる。本装置では、同一
機能を実現する各バージョンは互いに内部仕様の相違が
あっても良い。従って、各バージョンの出力結果は同じ
であっても、同じでない、例えば精度の違いなどを有す
るものであってもよい。ここでは1つの機能を実現する
各ソフトウェアバージョンは互いに別個のプロセッサに
より実現するものとする。ただし、各ソフトウェアバー
ジョンを各々別のプロセッサで実現する構成とするか、
あるいは複数を1つのプロセッサで実現するか、また一
つの機能を複数のプロセッサで実現するかに関しては任
意に選択することができる。
【0045】なお、プロセッサとは中央処理装置(CP
U:Central Processing Unit)、ROM、RAM、磁
気ディスク装置といった記憶装置、制御装置などの装置
からなるものであり、独立してソフトウェアを動作させ
ることができる単位とする。
【0046】図1において、外部からの入力データ15
2は、入力分岐部154で分岐され、同じデータが最初
のモジュール156内のそれぞれ機能Aを実行可能なバ
ージョンA0、A1に入力される。バージョンA0、A
1は各々同一外部仕様に基づいて作成されたプログラム
であり、並列に実行される。
【0047】バージョンA0、A1にて実行された結
果、アボート状態、すなわちプログラム自身、オペレー
ティングシステム、ハードウェア等によってプログラム
の続行が不可能と判断された状態にならなければ、バー
ジョンA0、A1は実行結果である中間処理データを、
機能Bを実現するモジュール158内のバージョンB
0、B1にそれぞれ入力する。
【0048】図2は、本装置の機能A及びBに係る部分
のブロック図である。バージョンB0、B1はそれぞれ
検査部と実行部を内蔵している。検査部は、機能Bの直
前の機能である機能Aからの出力結果である中間処理デ
ータの正当性を検査する検査手段であり、バージョンそ
れぞれに設けられる個別検査部である。また実行部は、
機能Aからの中間処理データに対して機能Bのデータ処
理を施す。
【0049】図において、検査部、実行部で行われる処
理はそれぞれバージョンA0からの中間処理データa0
に対する処理とバージョンA1からの中間処理データa
1に対する処理とに分けて示されている。すなわち、A
0検査処理200a、A1検査処理200bはバージョ
ンB0において、それぞれデータa0、a1を検査する
検査手段であり、A0検査処理200c、A1検査処理
200dはそれぞれバージョンB1において、データa
0、a1を検査する検査手段である。またA0/B0実
行処理202a、A1/B0実行処理202bはそれぞ
れデータa0、a1に対して機能Bのデータ処理を施す
バージョンB0の処理であり、A0/B1実行処理20
2c、A1/B1実行処理202dはそれぞれデータa
0、a1に対して機能Bのデータ処理を施すバージョン
B1の処理である。
【0050】なお、A0検査処理200aとA1検査処
理200b、A0検査処理200cとA1検査処理20
0d、A0/B0実行処理202aとA1/B0実行処
理202b、A0/B1実行処理202cとA1/B1
実行処理202dは説明の便宜上それぞれ2つのブロッ
クに分けて示したが、これらは、それぞれ処理対象とな
るデータがa0かa1かの違いしかないので、同一プロ
グラムで処理することができる。その場合には、通常
は、2つのデータa0、a1は時間をずらして逐次処理
される。一方、上記各2つのブロックを互いに別のプロ
セツサで並列処理する構成も可能である。また、各バー
ジョン内の実行部と検査部を同一プロセッサで実現して
もよく、複数のプロセッサに分けて実現してもよい。
【0051】検査部での検査は、前ステップで行われる
機能Aでアボートされていないか(つまりモジュール1
58へのデータ入力がなくタイムアウトになっていない
か)、データの形式がフォーマットからはずれていない
かといった判定を行うものである。本装置の検査は、リ
カバリブロック方式で要求されるような厳密な検査を行
う必要はない。しかし、データの論理矛盾やデータの上
限下限等の検査を行うように検査部を構成することは任
意である。ただし、検査内容が拡大に伴い、検査部の開
発及び実行の負荷、コストも増大するので、検査内容は
バグ検出率効果等も考慮に入れ決定されるものであろ
う。
【0052】検査部による検査の結果、異常がなけれ
ば、実行部において機能Bの実行が行われる。機能Bの
実行の結果、アボートされなければ、中間処理データを
機能Cを実現するバージョン160a、160bに入力
する。一方、検査の結果、異常が検知された場合には、
その異常データに対する機能Bの実行は行われない。こ
の制御は、バージョン制御機構170により行われる。
【0053】図3は、本装置の機能B及びCに係る部分
のブロック図である。バージョンC0、C1はそれぞれ
検査部と実行部を内蔵している。検査部は、機能Bから
の中間処理データの正当性を検査する検査手段であり、
バージョンそれぞれに設けられる個別検査部である。ま
た実行部は、機能Bからの中間処理データに対して機能
Cのデータ処理を施す。
【0054】図において、検査部、実行部はそれぞれバ
ージョンB0からの中間処理データb0に対し処理を行
う部分とバージョンB1からの中間処理データb1に対
して処理を行う部分とに分けて示されている。すなわ
ち、A0/B0検査処理300a、A1/B0検査処理
300b、A0/B1検査処理300c、A1/B1検
査処理300dはバージョンC0において、それぞれA
0/B0実行処理202a、A1/B0実行処理202
b、A0/B1実行処理202c、A1/B1実行処理
202dからの中間処理データa0/b0、a1/b
0、a0/b1、a1/b1を検査する検査手段であ
り、A0/B0検査処理300e、A1/B0検査処理
300f、A0/B1検査処理300g、A1/B1検
査処理300hはバージョンC1において、それぞれA
0/B0実行処理202a、A1/B0実行処理202
b、A0/B1実行処理202c、A1/B1実行処理
202dからの中間処理データa0/b0、a1/b
0、a0/b1、a1/b1を検査する検査手段であ
る。
【0055】またA0/B0/C0実行処理302a、
A1/B0/C0実行処理302b、A0/B1/C0
実行処理302c、A1/B1/C0実行処理302d
はそれぞれデータa0/b0、a1/b0、a0/b
1、a1/b1に対して機能Cのデータ処理を施すバー
ジョンC0の処理であり、A0/B0/C1実行処理3
02e、A1/B0/C1実行処理302f、A0/B
1/C1実行処理302g、A1/B1/C1実行処理
302hはそれぞれデータa0/b0、a1/b0、a
0/b1、a1/b1に対して機能Cのデータ処理を施
すバージョンC1の処理である。
【0056】なお、バージョンC0に属するそれぞれ4
つの検査処理、実行処理は処理対象となるデータが異な
るのみであるので、機能Bについて説明したように同一
プログラムで処理することができる。また並列処理可能
であることなども機能Bにおいて述べた通りである。
【0057】検査部による検査の結果、異常がなけれ
ば、このステップにおいても実行部による機能Cの実行
に移る。ただし、この機能Cを行うステップでは、直前
の機能Bを行うステップから入力された中間処理データ
の全てについては実行処理を実施しない点が大きな特徴
である。これは、全てのステップにおいて、それぞれ複
数用意されたバージョンの全ての組合せを実行すると、
演算負荷が級数的に増加し、特にステップ数が多い場合
やバージョン数が多いときには実用にならないからであ
る。例えば、一連のデータ処理を分割したステップ数、
つまり機能数をF、各機能に対し用意されるバージョン
数をVとすると、全体でVF通りの機能の実行処理を行
わなければならなくなる。
【0058】そのため、モジュール160は、直前ステ
ップからの中間処理データについての検査を行い、その
結果を利用しつつ所定の手順にしたがって、実行処理を
行う中間処理データが選択される。この選択を行う処理
データ選択手段は、本装置ではバージョン制御機構17
0である。
【0059】まず、モジュール158からの中間処理デ
ータの全てが正常である場合には、バージョン制御機構
170は、例えば、処理精度などに基づいてあらかじめ
定められた規則にしたがって選択を行う。図に示す例で
は、バージョンC0、C1において、ともにデータa0
/b0、a1/b1が選択される。この選択には、冗長
構成としての効果を最大とするために、当該モジュール
に至るまでのバージョンの組合せがなるべく相違するよ
うにすることが望ましいという配慮がされている。これ
により、選択される組合せには各機能の各正常バージョ
ンが少なくとも1つは組込まれることになる。例えば、
4つの中間処理データのうち2つを選択する場合におい
てa0/b0を1つに選択するならば、このデータが生
成される際に利用されたバージョンA0、B0で同様の
処理を受けているデータa0/b1、a1/b0よりも
データa1/b1がもう1つのデータとして好ましい。
同様に、もし、1つをデータa0/b1とするならば、
もう1つはデータa1/b0が好ましい。
【0060】バージョンC0、C1はバージョン制御機
構170により選択されたデータについてのみ実行処理
を行う。つまり図3に示す例では、データa0/b0、
a1/b1に対するバージョンC0、C1の処理である
A0/B0/C0実行処理302a、A1/B1/C0
実行処理302d、A0/B0/C1実行処理302
e、A1/B1/C1実行処理302hが行われ、一
方、データa1/b0、a0/b1に対するバージョン
C0、C1の処理であるA1/B0/C0実行処理30
2b、A0/B1/C0実行処理302c、A1/B0
/C1実行処理302f、A0/B1/C1実行処理3
02gは行われない。
【0061】このように、バージョンC0、C1へのそ
れぞれ4つの入力データのうち、それぞれ2つのみを実
行処理することにより、全体の機能処理を半分に削減す
ることができる。なお、4つのうち3つを選択する構成
も可能である。
【0062】次に、検査部がモジュール158からの中
間処理データに異常を検出した場合について説明する。
異常が検出されたデータが、バージョン制御機構170
により選択されておらず実行処理を行われない入力デー
タである場合には、特別な措置は採られない。例えば、
図に示す例では、A1/B0検査処理300b、300
f、A0/B1検査処理300c、300gがデータa
1/b0、a0/b1の異常を検知した場合がこの場合
に相当する。
【0063】これに対し、異常が検出されたデータが、
バージョン制御機構170により選択され実行処理を行
われる入力データである場合には、データの代替措置が
採られる。この場合にはバージョン制御機構170は、
異常データを選択対象から除外しこれに対する後続の機
能Cの実行処理を行わない。代わりに今まで選択されて
いなかった中間処理データの中から代替データが選択さ
れ、このデータに対して機能Cの実行処理が行われるよ
うに制御が切り替わる。
【0064】例えば、図に示す例では、データa1/b
1に異常が検知された場合には、当該データは選択対象
から除外され、代わりにデータa1/b0、a0/b1
のいずれかが選択され、それに対する機能Cの実行処理
が行われる。代替データの選択は、そのデータが正常で
あることと、例えばあらかじめ定められた優先順位とに
基づいて行われる。ここで、代替データとしてデータa
1/b0が選択された場合には、バージョンC0、C1
の実行処理の対象は、データa0/b0、a1/b1か
らデータa0/b0、a1/b0に変更される。代替措
置により、バージョンC0、C1の実行処理はA0/B
0/C0実行処理302a、A1/B0/C0実行処理
302b、A0/B0/C1実行処理302e、A1/
B0/C1実行処理302fが行われることになる。
【0065】代替措置により、可能な限り選択されるデ
ータ数は維持される。ちなみに、当然のことではある
が、異常が増加して正常なデータ数が正常時の選択デー
タ数を下回った場合には、バージョン制御機構170に
よる選択データ数は、残っている正常なデータ数で制限
される。
【0066】図4は、バージョン制御機構170により
選択され実現されるバージョンC0の実行処理を定める
規則テーブルの例を示す模式図である。このテーブルの
左欄は、機能A、Bに係わる正常/異常を示すもので、
“○”は正常、“×”は異常を表す。例えば“A0”の
列に付された“×”は、バージョンA0において異常が
生じたことを意味し、また例えば“A0/B0”の列に
付された“×”は、バージョンA0とバージョンB0と
の組合せによって異常が生じたことを意味する。テーブ
ルの右欄には、バージョン制御機構170により選択さ
れるバージョンC0の実行処理が示されている。正常時
にはA0/B0/C0実行処理302aとA1/B1/
C0実行処理302dが実行される。また、異常がこの
正常時のバージョン組合せに関係しない場合には、代替
措置は行われない。一方、異常が正常時のバージョン組
合せに影響を及ぼす場合には、代替実行処理が選択され
る。例えば、“A1/B1”のバージョン組合せに異常
が検知された場合には、正常時の実行処理のうちA0/
B0/C0実行処理302aのみが継続され、これにA
1/B0/C0実行処理302bが代替実行処理として
補充される。なお、バージョンC1については、同様で
あるので説明を省略する。
【0067】機能Dについても機能Cと同様にして、実
行処理の選択が行われる。つまり、機能Dに係るモジュ
ール162は、機能Cに係るモジュール160からバー
ジョンC0、C1合わせて4つの中間処理データを入力
される。これら4つのデータは、バージョンD0、D1
にそれぞれ渡されるので、合計8つの検査処理が行われ
る。バージョン制御機構170は、この検査結果に基づ
いて、各バージョンに渡されるそれぞれ4つのデータか
らそれぞれ2つを選択し、それらについてのみ実行処理
を行う。例えば、機能Cからの4つの中間処理データが
データa0/b0/c0、a1/b1/c0、a0/b
0/c1、a1/b1/c1であるとする。これら全て
が正常である場合には、バージョン制御機構170は例
えば、データa0/b0/c0、a1/b1/c1を選
択して、この2つについてバージョンD0の実行処理で
あるA0/B0/C0/D0実行処理、A1/B1/C
1/D0実行処理と、バージョンD1についての実行処
理であるA0/B0/C0/D1実行処理、A1/B1
/C1/D1実行処理が行われる。また、いずれかの中
間処理データに異常が検知された場合には、やはり代替
措置が講じられる。
【0068】機能Dのモジュール162からは、こうし
て通常は4つの中間処理データa0/b0/c0/d
0、a1/b1/c1/d0、a0/b0/c0/d
1、a1/b1/c1/d1が出力される。出力選択部
166はこれらのうち1つを運用系処理結果データとし
て選択し出力する。例えば、あらかじめ定められた最も
優先順位の高いバージョン組合せが出力選択部166に
より選択される。例えば、正常時においてはA0、B
0、C0、D0を使用することが、それぞれ、A1、B
1、Cl、D1を使用することよりも望ましい場合に
は、データa0/b0/c0/d0を選択して最終的な
出力データとして出力する。つまり、出力選択部166
は、このデータの選択により、バージョン組合せA0/
B0/C0/D0を運用系として選択する。一方、選択
されなかった残りの3つの組合せ及び中途までの処理が
行われた組合せが待機系とされる。
【0069】本装置では、上述したように、全バージョ
ン組合せのうち一部の組合せについてのみ完全に実行処
理が行われる。そして、その選択されたバージョン組合
せに含まれるバージョン単体の障害(例えば、バージョ
ンA0の障害)やバージョンの組合せに起因する障害
(例えばバージョンの組合せA0/B0で起こる障害)
が発生した場合には、それらを含むバージョン組合せを
選択対象から除外し、他のバージョン組合せで代替す
る。バージョン制御機構170は、この代替において、
途中の機能ステップで選択から外した組合せを回復す
。つまり、途中まで処理が行われたバージョン組合せ
のうちから、除外されたバージョン組合せを代替する組
合せが選択され、その組合せが最終機能まで実行処理が
行われるようになる。このようにバージョン制御機構1
70は、異常が検知されたバージョン組合せを他のバー
ジョン組合せで代替するバージョン組合せ代替手段とし
ての機能を有する。
【0070】なお、見掛け上はシステム障害とならなく
ても、外部から判断すると明らかにシステム障害である
と判断できる場合がある。例えば、オベレータによる人
的判断や外部システムによる自動的判断により、そのよ
うな状態が検知された場合、出力選択部166を操作し
て、最終段から出力されている複数のデータのうち、待
機系にされていた他の正常な組合せからのデータに切り
替えるとともに、待機系に運用系の組み合わせが異常で
あることを、バージョン制御機構170を通して知らせ
るようにしてもよい。処理結果を受けた出力データ受信
部168はバージョン切替を認識して操作を続行する。
バージョン切替によりデータの一貫性は確保されない
が、継続して代替できるデータを受けられるので、処理
が続行できる場合が多い。出力データ受信部168にて
データの一貫性が必要なシステムの場合は、該当部分を
フォールトトレランス保証範囲内に含めればよい。
【0071】さて、バージョン組合せを代替する処理に
おいては、これまで使用していたバージョンから他のバ
ージョンへ処理を引き継ぐことが必要になる。図5は、
組合せ障害発生時のデータ引き継ぎを説明するための模
式的なブロック図である。図において、上に示した図と
同様の構成要素については、同一の符号を付し説明を省
略する。ここで、バージョン内部の処理で扱われるデー
タを一過性データと永続性データに区分する。一過性デ
ータという用語は、本装置の処理目的の対象となるデー
タで、入力データ152としてシステムに継続的に入力
されるものであり、初期化状態でも運用続行に致命的影
響を与えないデータを指すものとする。例えば、ファン
クションとして入力が完了していない文字列や一定時間
後に繰り返し最新データが入力され、通常でも紛失を容
認している信号データなどが相当する。一方、永続性デ
ータという用語は、一過性データをデータ処理する際に
利用されるパラメータデータであって初期化状態では運
用続行に支障を来すデータであり、外部から設定変更す
ることはできるが、処理対象データである一過性データ
と異なり、常時変化するといった性質は一般には有さな
いものを指すものとする。なお、目標追尾のように入力
信号そのものは繰り返し最新データが入力されるが、そ
の結果を蓄積し数値処理を行うようなデータ処理の場合
は、切替時の連続性を重視して、蓄積データを永続性デ
ータとして取り扱ってもよいし、一定回数データ入力を
待てば自ずから蓄積データが回復することに着目して一
過性データとしても取り扱ってもよい。あるデータをい
ずれに区分するかについては、このようにある程度自由
度が許され、バージョン製作や演算の負荷とデータ継続
性とのトレードオフで決められよう。
【0072】各バージョンは、この一過性データを保持
する一過性データ記憶領域500と永続性データを記憶
保持する永続性データ記憶領域502とを有する。本装
置は、各機能ステップに属するバージョン間で永続性デ
ータを転写するために、コピー変換処理部504、中間
バッファ506を備えている。
【0073】上述したようにバージョン組合せの代替を
行う際にはバージョン間でデータ処理引き継ぎが行われ
るが、本装置では、このデータ処理引継手段として、そ
れまで処理を行っていたバージョン内部の永続性データ
のみを引き継ぎ、一過性データは引き継がない構成を採
る。例えば、バージョンA0からA1へデータ処理を引
き継ぐ場合には、バージョンA0の永続性データ記憶領
域502に格納された永続性データがコピー変換処理部
504で中間形式に変換され、A1の中間バッファ50
6に書き込まれる。A1のコピー変換処理部504は、
A1の中間バッファ506から中間形式の永続性データ
を読み出してA1で用いられる形式に変換し、A1の永
続性データ記憶領域502に格納する。逆にバージョン
A1からA0への転写も可能である。また、他の機能
B、C、Dについても同様である。
【0074】一過性データを転写しないのは、上述した
ように運用に致命的な影響がなく、ある程度の時間が経
過すれば正しい状態に収束することが期待されるからで
ある。このように一過性データの転写を省略することに
より、代替処理の負荷を軽減することができる。
【0075】なお、ここでは各バージョンの設計の独立
性を高くとることができるように、従来技術で述べた
「設計フォールトトレランス」と同様に、永続性データ
のデータ形式の変換を行う構成としたが、データ構造が
単純でデータ構造設計による障害のおそれがない場合及
び組合せが変わるだけで実行バージョンに変更がなけれ
ば、コピー変換処理部504を設けず単純コピーとする
構成も可能である。
【0076】図6は、バージョンに障害が生じたときの
処理の一例を示すフロー図である。まず直前の機能ステ
ップからの中間処理データについての検査処理が行わ
れ、障害有無の検査がなされる(S600)。システム
障害であれば(S602)、システム障害対応処理(S
604)を実行して処理を終了する。システム障害でな
い場合(S602)は、図4に示すバージョン組合せ選
択の規則テーブルに基づいて、代替実行が必要か否かが
判断される(S606)。代替実行が必要な場合は、デ
ータの連続性が確保できるかどうかが確認される(S6
08)。データの連続性を確保できる場合には、永続性
データを、現在実行中のバージョン組合せから代替実行
のバージョン組合せにコピーする(S610)。そし
て、規則テーブルにより指定されたバージョン組合せに
ついての実行がされる(S612)。データの連続性を
確保できない場合には、永続性データの初期化を行った
上で(S614)、処理S612が行われる。ここでは
全ての可能性が示されるので、システム障害やデータの
連続性不能の場合も処理が含まれるが、同時に全く異な
る要因により障害が発生しない限り、そのような状況は
おきない。
【0077】本装置は、以上の構成により、運用系と待
機系を同時に実行すると共に、待機系の障害検知確率を
高め、運用系に障害を検出すると直ちに待機系に切り替
え、運用系または待機系に障害を検出すると新たな待機
系を組込み、システム全体としての信頼性を向上させ
る。
【0078】なお、機能数及び機能あたりのバージョン
数は任意の複数の数であってよい。つまり特にバージョ
ン数に関していえば、各機能でその数は同一である必要
はない。
【0079】[実施の形態2]次にフォールトトレラン
ス性を保証する範囲内で後段の処理結果を前段に入力す
る、つまり再帰性のある機能構造を有した実施の形態を
説明する。図7は、本実施の形態に係る再帰構造を有し
たデータ処理装置の概略のブロック図である。ここでの
再帰性は、機能Dは機能Cの処理結果を受けて処理を行
うが、その機能Dの処理結果が再び機能Cに入力される
構成に示されている。図に示す構成は、機能Bを行うバ
ージョン700a(B0)、700b(B1)、機能C
を行うバージョン702a(C0)、702b(C
1)、機能Dを行うバージョン704a(D0)、70
4b(D1)を含んでいる。機能BからCへはデータ群
706が渡され、機能CからDへはデータ群708が渡
され、機能DからCへの再帰的なデータとしてデータ群
710が渡され、機能Dから外部へはデータ群712が
出力される。
【0080】図8は本実施の形態における機能Cに用意
された2つのバージョンC0、C1での処理を概念的に
示すブロック図である。各バージョンでの処理は検査処
理と実行処理とに分かれる。バージョンC0は検査処理
としてA0/B0/C0/D0検査処理800a、A0
/B0/C0/D1検査処理800b、A0/B1検査
処理800c、A1/B0検査処理800d、A1/B
1検査処理800eを含み、バージョンC1はA1/B
1/C1/D0検査処理800f、A1/B1/C1/
D1検査処理800g、A0/B1検査処理800h、
A1/B0検査処理800i、A0/B0検査処理80
0jを含む
【0081】上記実施の形態と同様に、正常な場合に
は、機能A、Bを実行した後、機能Cでは機能A、Bに
関する各バージョン組合せを検査する。ただし、バージ
ョン組合せA0/B0についての検査は、機能Bからの
入力に合わせて機能Dからの入力に関しても行う必要が
あるため、A0/B0/C0/D0検査処理800aと
A0/B0/C0/D1検査処理800bの2つに分け
て行われる。また、実行処理に関しては、A1/B1/
C0の実行は行わず、A0/B0/C0/D0実行処理
802aとA0/B0/C0/D1実行処理802bの
2つの実行を行う。同様に、バージョンC1ではバージ
ョン組合せA1/B1についての検査は、A1/B1/
C1/D0検査処理800fとA1/B1/C1/D1
検査処理800gの2つに分けて行われ、実行もこれに
対応するA1/B1/C1/D0実行処理802fとA
1/B1/C1/D1実行処理802gの2つの実行を
行う。
【0082】上記のようにして、この構成では、バージ
ョン組合せのデータの一貫性を保つとともに、実行バー
ジョン数を抑止する。その他の点は上記実施の形態と同
様である。
【0083】[実施の形態3]次にフォールトトレラン
ス保証範囲から出力されたデータを基に、フォールトト
レランス保証範囲の処理に対して、例えばオペレータ等
が対話的に処理を行う例について説明する。
【0084】この場合、フォールトトレランス保証範囲
へ入力する情報が、代替バージョンへ反映されずに失わ
れると、フォールトトレランス保証範囲からの出力に一
貫性がなくなる恐れがある。
【0085】これを防止する構成を図5に基づいて説明
する。運用系組合せの各バージョン実行時において、運
用系のバージョンのコピー処理部504は、対話的な操
作により永続性データの変更があった場合には、各々自
バージョン実行プロセッサと異なるプロセッサに属する
中間バッファ506までその永続性データの変更内容を
書き出しておく。そして運用系組合せに障害が発生しバ
ージョン組合せの代替を行う場合には、待機系組合せ
は、運用系がその時点までに中間バッファ506に書き
出している永続性データをコピー処理部504により永
続性データ記憶領域502に取り込んで使用することと
し、一方、直前ステップからのデータのうち一過性デー
タのみを受け入れ、これら両者を組み合わせてデータベ
ースを構築し、運用系としての処理を開始する。つま
り、待機系組合せの直前ステップから入力されたデータ
のうち永続性データは対話的操作が反映されていないお
それがあるため廃棄し使用しない。または、待機系組合
せの直前ステップから入力された永続性データのうち中
間バッファ506に格納されているデータと重複するも
のがある場合には、対話的操作が反映されている中間バ
ッファ506のデータを優先して採用し、入力された方
の永続性データは廃棄し使用しない。
【0086】[実施の形態4]また、対話的な処理を行
う例として、代替組合せへの引き継ぎに対するデータ厳
密性の必要度が緩やかであり、運用系組合せにて割り当
てた内部番号などを入力に用いることがなければ、対話
的操作により運用系組合せに入力されるのと同じデータ
を並行して待機系組合せにも入力するという方法をとる
ことができる。これにより、実施の形態3のような運用
系が永続性データを常時書き出すという処理を省略しつ
つ、十分な効果を挙げることかできる。
【0087】[実施の形態5]また、対話的な処理によ
る永続性データに関する処理、例えばその変更処理等
は、処理が正常に行われれば、バージョン間での内部仕
様の相違により結果が異なることは稀である傾向を有す
る。これを利用して、永続性データの変更処理のみにN
バージョン方式を組み合わせ、全体としてデー夕の厳密
性と設計の独立性を保証する方法も可能である。
【0088】図9は、本実施の形態に係るデータ処理装
置の概略のブロック図である。図9において、図1と同
一の符号を付した構成要素は、互いに同等の機能を有す
るものでありそれらに関しては説明を省略する。入力9
00、902はそれぞれこの装置への入力である。入力
900はフォールトトレランス性を保証する一連のデー
タ処理が行われる機能範囲150への入力データであ
る。この入力900は、本装置からの出力データによっ
ては影響を受けない。つまり一方向のデータの流れであ
り、非対話的な処理がなされるものである。一方、入力
902は、出力データに対する対話的操作等である。
【0089】本装置の主たる特徴は、大まかには図1に
示す構成に、永続性データの変更処理における耐故障性
を向上させるNバージョン方式の構成が付加された点に
ある。このNバージョン方式の構成部分は、入力902
を分岐して永続性データ処理バージョンに入力する入力
分岐部904、永続性データ処理バージョン906(バ
ージョンE0)、908(バージョンE1)、910
(バージョンE2)、及びこれら各バージョンからの出
力結果を比較判定する出力判定部912により構成され
ている。バージョンE0〜E1はそれぞれ永続性データ
に対してその変更等を行う処理である機能Eを実現する
ため独立に作成されたプログラムである。そしてそれら
の実行結果は同じとなることが期待される永続性データ
である。出力判定部912からは、機能A〜Dで用いら
れる永続性データの設定、更新のための出力と、フォー
ルトトレランス保証範囲外への出力914とが出力され
る。
【0090】さて、入力900に対しては実施の形態1
と同等に機能A〜Dの処理がなされる。一方、入力90
2は入力分岐部904に送られ、ここでバージョンE0
〜E2に分岐される。これら各バージョンからの出力結
果は出力判定部912で互いに比較され、結果が一致し
ない場合には多数決論理により、同一結果が多い方を正
とみなして外部に出力する。これにより入力との一貫性
が保たれる。この出力は、データ処理の初段の一過性デ
ータの処理部であるバージョン156a、156bにも
送られ、これらにおいて一過性データと永続性データと
の対応付けなどの処理を行い全体としての総合出力を実
現する。
【0091】[実施の形態6]また、上記各実施の形態
として、バージョンは異なるプロセッサて実行すること
とし、オペレーティングシステムの障害やハードウェア
障害に同時に対応するような例としたが、オペレーティ
ングシステムに十分信頼がおけ、各運用バージョンの障
害が検出できてプログラムをアボートできると判断する
ならば、複数バージョンを単一のプロセッサで実現して
もよい。
【0092】[実施の形態7]さらに、本発明は、上述
のデータ処理装置のように当初からソフトウェアのバー
ジョンを独立に複数作成し、耐故障性の向上により信頼
性を上げる目的だけでなく、既存データ処理装置の改修
などにおけるバージョンの変更時に作り込まれる予測困
難な障害発生原因によるシステムダウンを防止する目的
にも応用することができる。
【0093】例えば、システムに致命的障害とならない
が、運用に影響を与えるバグが運用プログラム中に発見
されたとき、修正を行い一通りの検査をして運用系に組
込むが、開発時と異なり修正が与える影響をすべて把握
できず、修正が別の機能に影響を与えてしまい、却って
致命的システム障害の原因を作り込んでしまうというこ
とが、実際のシステム保守の場面において往々にしてあ
る。
【0094】図10は、本実施の形態に係る改修された
データ処理装置の一例を示す概略のブロック図である。
この装置は機能A、B、Cから構成され、改修前は、そ
れら各機能はそれぞれ各機能に対応して設けられたプロ
グラムであるバージョンA0、バージョンB0、バージ
ョンC0により実現されていたとする。ここで、機能B
に関するプログラムを改造してバージョンB1に変更す
ることを考える。従来は、このような場合、機能Bを実
現するプログラムをB0からB1に置き換えて、バージ
ョンA0、B1、C0の順次処理を行う構成に変更す
る。
【0095】これに対して、本装置は、バージョン10
00(A0)の出力を2分岐させ、それぞれを旧バージ
ョンであるバージョン1002(B0)と、新バージョ
ンであるバージョン1004(B1)へ入力させる。つ
まり、機能AをバージョンA0で実行後、機能Bの新旧
バージョンが並行して実行される。機能Cについては変
更されていないが、機能Bから受け取る結果がa0/b
0、a0/b1の2種類あるので、同一のバージョンC
0を用いた2つの実行処理部1006、1008より中
間処理データa0/b0、a0/b1を並行処理してい
る。実行処理部1006、1008からの結果は、出力
結果選択装置1010に入力され、これがいずれかの結
果を選択して出力する。
【0096】正常な場合は、出力結果選択装置1010
はバージョン組合せ“A0/B1/C0”の結果を外部
に出力する。この組合せで障害が発生した場合は、出力
結果選択装置1010は、旧バージョンであるB0を含
んだバージョン組合せ“A0/B0/C0”の結果を出
力に切り替える。このようにして、改修バージョンによ
り後段の実行プログラムに影響が出た場合でも、即時に
旧バージョンに戻し、運用を続行することができる。
【0097】
【発明の効果】本発明の耐ソフトウェア障害構成を有し
たデータ処理装置によれば、複数ステップに分割された
一連のデータ処理を、各ステップに用意された複数のバ
ージョンを組み合わせて多重に実行し、ソフトウェアの
障害に対する耐故障性を向上させるデータ処理装置にお
いて、検査手段が少なくとも1つのステップに設けられ
これが直前ステップからの複数の中間処理データを検査
し、処理データ選択手段が検査手段の検査結果に応じて
中間処理データを選択し、選択された中間処理データに
ついてのみ当該ステップでのデータ処理を行って次のス
テップへ出力する。このステップごとのバージョンを組
み合わせる構成により、十分な多重度を得るために必要
なバージョンの作成負荷を軽減でき、全部のバージョン
組合せのうち必要なだけを選択して実行することによ
り、実行処理されるバージョン組合せ数を削減して装置
のデータ処理負荷を軽減することができる効果が得られ
る。また、検査手段をステップに設けることにより検査
を一連のデータ処理の途中段階で行うので、障害箇所の
特定が容易で障害事象の検出処理が簡単となり、検査手
段の簡素化を図ることができるとともに、障害が生じた
データに対して無駄な処理を継続することがないので装
置の計算資源の浪費が回避されるという効果が得られ
る。さらに検査手段と処理データ選択手段とにより、障
害を生じたバージョン組合せを特定し、排除することが
容易となるという効果が得られる。
【0098】本発明の耐ソフトウェア障害構成を有した
データ処理装置によれば、検査手段として、ステップに
含まれるバージョンごとに個別検査部が設けられる。バ
ージョンごとに個別検査手段を備える冗長構成により、
検査手段自身の障害によるシステム障害を防止すること
ができるという効果が得られる。
【0099】本発明の耐ソフトウェア障害構成を有した
データ処理装置によれば、検査手段により直前ステップ
からの中間処理データに異常を検知すると、処理データ
選択手段が異常が検知された中間処理データを除外し
て、未選択の中間処理データから正常な代替データを選
択する。また本発明の耐ソフトウェア障害構成を有した
他のデータ処理装置は、検査手段により異常が検知され
るとバージョン組合せの代替を行うバージョン組合せ代
替手段を有する。これらの本発明に係る装置によれば、
異常が生じたバージョン組合せが除外されるとともに、
他のバージョン組合せによる代替が行われて多重度が維
持されるので、装置の高信頼性を実現することができる
という効果が得られる。
【0100】本発明の耐ソフトウェア障害構成を有した
データ処理装置によれば、処理データ選択手段により選
択された複数のバージョン組合せによる複数の処理結果
データのうちから、処理結果データ選択手段が運用系処
理結果データを選択する。すなわち、多数決論理を用い
ないので、各ステップのバージョン、または各バージョ
ン組合せによる実行結果が、必ずしも同じでなくても許
容される。このことにより、バージョンを作成するに際
しての内部仕様の詳細さを緩和することができ、その設
計不良によってバージョン間に共通のバグが作り込まれ
るといった事態が回避され、装置の耐故障性が向上する
という効果が得られる。
【0101】本発明の耐ソフトウェア障害構成を有した
データ処理装置によれば、バージョン組合せ代替手段
が、バージョン組合せ代替により切り替わるバージョン
間でのデータ処理を引き継ぐデータ処理引継手段を有
し、このデータ処理引継手段は、直前ステップから入力
される中間処理データの処理に用いられるパラメータデ
ータのみを引き継ぐので、バージョン組合せ代替処理の
負荷が軽減される効果が得られる。
【0102】本発明の耐ソフトウェア障害構成を有した
データ処理装置によれば、同一結果を得ることが必須な
パラメータデータについてはNバージョンプログラミン
グ方式に基づいて設定変更するパラメータ設定変更処理
手段を用いて厳密な保証をとり、一方、一過性を有する
中間処理データについては、ステップごとのバージョン
の組合せによって設計の自由度を高める方法を組み合わ
せる手段をとることにより、データの信頼性と設計の自
由度とを両立させることができる効果が得られる。
【図面の簡単な説明】
【図1】 第一の実施の形態に係るデータ処理装置の概
略のブロック構成図である。
【図2】 第一の実施の形態に係る装置の機能A及びB
に係る部分のブロック図である。
【図3】 第一の実施の形態に係る装置の機能B及びC
に係る部分のブロック図である。
【図4】 バージョン制御機構により選択され実現され
るバージョンC0の実行処理を定める規則テーブルの例
を示す模式図である。
【図5】 第一の実施の形態に係る装置における組合せ
障害発生時のデータ引き継ぎを説明するための模式的な
ブロック図である。
【図6】 バージョンに障害が生じたときの処理の一例
を示すフロー図である。
【図7】 第二の実施の形態に係る再帰構造を有したデ
ータ処理装置の概略のブロック図である。
【図8】 第二の実施の形態における機能Cに係る部分
のブロック図である。
【図9】 第五の実施の形態に係るデータ処理装置の概
略のブロック図である。
【図10】 第七の実施の形態に係る改修されたデータ
処理装置の一例を示す概略のブロック図である。
【図11】 従来のNバージョン方式の原理を説明する
模式的ブロック図である。
【図12】 従来のリカバリブロック方式の原理を説明
する模式的ブロック図である。
【図13】 従来のバージョン組合せ多重化方式の原理
を説明する模式的ブロック図である。
【図14】 リカバリブロック方式を並列処理化させた
従来技術の概念を示す模式的ブロック図である。
【図15】 リカバリブロック方式を単純並列化する従
来技術の概念を示す模式的ブロック図である。
【図16】 従来の設計フォールトトレランスを説明す
る模式的ブロック図である。
【図17】 従来のモジュール交換手法を説明する模式
的ブロック図である。
【符号の説明】
152 入力データ、154 入力分岐部、156,1
58,160,162モジュール、156a バージョ
ンA0、156b バージョンA1、158a バージ
ョンB0、158b バージョンB1、160a バー
ジョンC0、160b バージョンC1、162a バ
ージョンD0、162b バージョンD1、164 出
力データ群、166 出力選択部、168 出力データ
受信部、170 バージョン制御機構、200a,20
0c A0検査処理、200b,200d A1検査処
理、202a A0/B0実行処理、202b A1/
B0実行処理、202c A0/B1実行処理、202
d A1/B1実行処理、300a,300e A0/
B0検査処理、300b,300f A1/B0検査処
理、300c,300g A0/B1検査処理、300
d,300h A1/B1検査処理、302a A0/
B0/C0実行処理、302b A1/B0/C0実行
処理、302c A0/B1/C0実行処理、302d
A1/B1/C0実行処理、302e A0/B0/
C1実行処理、302f A1/B0/C1実行処理、
302g A0/B1/C1実行処理、302h A1
/B1/C1実行処理、500 一過性データ記憶領
域、502 永続性データ記憶領域、504 コピー変
換処理部、506 中間バッファ、904 入力分岐
部、906,908,910 永続性データ処理バージ
ョン、912 出力判定部。
フロントページの続き (56)参考文献 特開 平6−342369(JP,A) 特開 平7−49844(JP,A) 電子情報通信学会論文誌 Vol.J 78−D−1 No.3 p.393−401 電子情報通信学会論文誌 Vol.J 79−D−1 No.7 p.468−474 電子情報通信学会論文誌 Vol.J 79−D−1 No.9 p.558−566 (58)調査した分野(Int.Cl.7,DB名) G06F 11/14 - 11/20 JICSTファイル(JOIS)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 一連のデータ処理を複数ステップに分割
    し、前記各ステップのデータ処理を行うプログラムのバ
    ージョンをそれぞれ複数種類備え、これら各ステップか
    らそれぞれバージョンを選択して構成される複数の異な
    るバージョン組合せを用いてそれぞれ前記一連のデータ
    処理を多重に実行する耐ソフトウェア障害構成を有した
    データ処理装置であって、 少なくとも一つの前記ステップに対応して設けられ当該
    ステップの前記データ処理の実行に先立って、当該ステ
    ップの直前ステップに属する複数の前記バージョンから
    出力される各中間処理データの正当性を検査する検査手
    段と、 前記検査手段での検査結果に応じて前記中間処理データ
    を選択し、選択された当該各中間処理データを当該ステ
    ップに属する前記各バージョンへそれぞれ入力させる処
    理データ選択手段と、 を有することを特徴とする耐ソフトウェア障害構成を有
    したデータ処理装置。
  2. 【請求項2】 前記検査手段は、当該検査手段に対応す
    る前記ステップに属する前記各バージョンそれぞれに対
    応する複数の個別検査部を含むこと、を特徴とする請求
    項1記載の耐ソフトウェア障害構成を有したデータ処理
    装置。
  3. 【請求項3】 前記処理データ選択手段は、 前記検査結果が前記各中間処理データは正常であること
    を示す場合には、当該中間処理データの一部を所定の規
    則に従って選択し、 前記検査結果に基づいて、これまで選択されていた当該
    中間処理データのうちに異常なデータを検知すると、そ
    の異常中間処理データを選択対象から除外しこれまで選
    択されていなかった前記中間処理データの中から代替デ
    ータを選択すること、 を特徴とする請求項2記載の耐ソフトウェア障害構成を
    有したデータ処理装置。
  4. 【請求項4】 多重に実行された前記一連のデータ処理
    により得られた処理結果データのうち一つを所定の規則
    に従って運用系処理結果データとして選択する処理結果
    データ選択手段を有することを特徴とする請求項1記載
    の耐ソフトウェア障害構成を有したデータ処理装置。
  5. 【請求項5】 前記検査手段により異常が検知された前
    記バージョン組合せを、他のバージョン組合せで代替し
    て前記多重化を維持するバージョン組合せ代替手段を有
    することを特徴とする請求項1記載の耐ソフトウェア障
    害構成を有したデータ処理装置。
  6. 【請求項6】 前記バージョン組合せにおいて選択され
    ている前記バージョンは、当該バージョンに入力される
    前記中間処理データに対して前記データ処理を行う際に
    用いるパラメータデータを外部から設定変更され、 前記バージョン組合せ代替手段は、前記バージョン組合
    せの代替により切り替わる前記バージョン間での前記デ
    ータ処理の引き継ぎ処理として、前記パラメータデータ
    のみを引き継ぐデータ処理引継手段を含むこと、 を特徴とする請求項5記載の耐ソフトウェア障害構成を
    有したデータ処理装置。
  7. 【請求項7】 前記バージョン組合せにおいて選択され
    ている前記バージョンが外部からパラメータデータを設
    定変更され、当該バージョンに入力される前記中間処理
    データを前記パラメータデータに基づいて前記データ処
    理するデータ処理装置であって、 前記パラメータデータの設定変更処理をNバージョンプ
    ログラミング法に基づいて行うパラメータ設定変更処理
    手段を有することを特徴とする請求項1記載の耐ソフト
    ウェア障害構成を有したデータ処理装置。
JP09091841A 1997-04-10 1997-04-10 耐ソフトウェア障害構成を有したデータ処理装置 Expired - Lifetime JP3085917B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09091841A JP3085917B2 (ja) 1997-04-10 1997-04-10 耐ソフトウェア障害構成を有したデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09091841A JP3085917B2 (ja) 1997-04-10 1997-04-10 耐ソフトウェア障害構成を有したデータ処理装置

Publications (2)

Publication Number Publication Date
JPH10283215A JPH10283215A (ja) 1998-10-23
JP3085917B2 true JP3085917B2 (ja) 2000-09-11

Family

ID=14037821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09091841A Expired - Lifetime JP3085917B2 (ja) 1997-04-10 1997-04-10 耐ソフトウェア障害構成を有したデータ処理装置

Country Status (1)

Country Link
JP (1) JP3085917B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295738A (ja) * 2003-03-28 2004-10-21 Nec Corp 耐障害計算機システム、プログラム並列実行方法およびプログラム
JP2010019250A (ja) * 2008-07-10 2010-01-28 General Electric Co <Ge> 過回転防止を可能にする方法及びシステム
JP2010287127A (ja) * 2009-06-12 2010-12-24 Mitsubishi Heavy Ind Ltd 冗長化システム
US8799707B2 (en) 2011-06-28 2014-08-05 Mitsubishi Heavy Industries, Ltd. Redundant system

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2784475B1 (fr) * 1998-10-12 2000-12-29 Centre Nat Etd Spatiales Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires
JP4457581B2 (ja) 2003-05-28 2010-04-28 日本電気株式会社 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム
JP7092590B2 (ja) * 2018-07-20 2022-06-28 日本信号株式会社 保安装置
CN111530083B (zh) * 2020-05-26 2023-09-08 网易(杭州)网络有限公司 一种界面检查的方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
電子情報通信学会論文誌 Vol.J78−D−1 No.3 p.393−401
電子情報通信学会論文誌 Vol.J79−D−1 No.7 p.468−474
電子情報通信学会論文誌 Vol.J79−D−1 No.9 p.558−566

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295738A (ja) * 2003-03-28 2004-10-21 Nec Corp 耐障害計算機システム、プログラム並列実行方法およびプログラム
JP2010019250A (ja) * 2008-07-10 2010-01-28 General Electric Co <Ge> 過回転防止を可能にする方法及びシステム
US8224552B2 (en) 2008-07-10 2012-07-17 General Electric Company Methods and systems to facilitate over-speed protection
JP2010287127A (ja) * 2009-06-12 2010-12-24 Mitsubishi Heavy Ind Ltd 冗長化システム
US8799707B2 (en) 2011-06-28 2014-08-05 Mitsubishi Heavy Industries, Ltd. Redundant system

Also Published As

Publication number Publication date
JPH10283215A (ja) 1998-10-23

Similar Documents

Publication Publication Date Title
US5742753A (en) Mesh interconnected array in a fault-tolerant computer system
US20060150009A1 (en) Computer system and method for dealing with errors
JP3085917B2 (ja) 耐ソフトウェア障害構成を有したデータ処理装置
JP2003015900A (ja) 追走型多重化システム、及び追走により信頼性を高めるデータ処理方法
JPH0950424A (ja) ダンプ採取装置およびダンプ採取方法
US5742851A (en) Information processing system having function to detect fault in external bus
US8862934B2 (en) Redundant computing system and redundant computing method
Toy Fault-tolerant computing
JP2006172390A (ja) フォルトトレラント・二重化コンピュータシステムとその制御方法
KR100313712B1 (ko) 이중화된프로세서를위한결함기반의소프트웨어결함허용방법
Bowman et al. 1A processor: Maintenance software
JP3256181B2 (ja) 高信頼化コンピュータシステムの復旧方法
Zhu Reliability and availability analysis for large networking system
JPH11134210A (ja) システムの冗長化方法
JP3255934B2 (ja) ベーシックプロセッシングユニット及び高信頼化コンピュータシステム
JP2612385B2 (ja) 多重化サブシステム間処理引継ぎ処理方式
JP3246751B2 (ja) 高信頼化コンピュータシステム及びその復旧方法並びにプロセッサボード及びその交換方法
Comfort A fault-tolerant system architecture for navy applications
JP3325836B2 (ja) 計算機盤
Wirthumer et al. Fault Tolerance for Railway Signalling Votrics in Practice
KR100604552B1 (ko) 클러스터 시스템에서 상태 정보 및 제어 명령의 공유를통한 시스템 장애 대응방법
CN117478492A (zh) 一种时钟系统的故障诊断方法、装置及时钟系统
JPH04223534A (ja) 情報処理システム
JP4494263B2 (ja) サービスシステムの冗長化方式
JPH03273344A (ja) フォールトトレラントシステム

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070707

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080707

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090707

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100707

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100707

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130707

Year of fee payment: 13

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term