2系統で同じ処理を同時に実行し、結果を照合して信頼性を高める構成。
デュアルシステムとは、まったく同じ処理を行う2つの系統(システム一式)を用意し、常に両方で同時に処理を実行して、結果が一致するかを照合する構成のことです。デュアル(dual)は「2つの/二重の」という意味です。
ポイントは2つあります。
・2系統が同時に動く:片方が予備として眠っているのではなく、両方とも常に同じ処理をしている
・結果を照合する:両系の出力を突き合わせ、一致を確認してから結果を採用する
身近な例で考えると、2人の会計係が別々に同じ伝票を計算して答え合わせをするのに似ています。2人の合計が一致すれば正しいと判断でき、もし1人が計算ミスをしても、食い違いから「どこかおかしい」とすぐ気づけます。
結果照合(クロスチェック)とは、2系統の出力を1つひとつ突き合わせ、同じ答えになっているかを確認する仕組みです。両系は同じ入力で同じ処理をしているので、正常なら結果は必ず一致します。
照合の結果によって、次のように動作します。
・一致したとき:その結果は正しいと判断し、そのまま採用して処理を続ける
・食い違ったとき:どちらかに異常(故障やミス)があると検知し、正常な系統で処理を継続する
この仕組みのおかげで、誤った結果をそのまま出してしまう事態を防げます。さらに、片方の系統が故障しても、もう片方が動いているため処理を止めずに続けられます。誤りの「検出」と、故障時の「処理継続」を同時に実現できるのが大きな強みです。
デュアルシステムは、絶対に止められず、しかも結果に誤りが許されないシステムで使われます。誤りの検出と処理の継続を同時にできるため、極めて高い信頼性が求められる場面に向いています。
代表的な用途は次のとおりです。
・銀行のオンラインシステム:残高や送金額を1円でも間違えられない
・列車の運行管理:信号やダイヤの誤りが事故につながる
・証券・決済などの金融システム:取引の正しさが何より重要
ただし、常に2系統ぶんのハードウェアを動かすため、コストはおよそ2倍かかります。高い信頼性と引き換えに費用がかさむため、本当に止められない・間違えられないシステムに限って採用されます。
結論:1系統だけでは、その結果が正しいかどうか自分では確認できない。だから2系統で同じ処理をして、答え合わせをするのです。
コンピュータのハードウェアは、まれに「壊れているのに誤った計算結果を出し続ける」ことがあります。その誤りを自分だけでは検出できません。
・1系統だけの場合:誤った結果が出ても、それが正しいかどうか分からないまま出力してしまう
・2系統で照合する場合:同じ入力・同じ処理をして、結果が食い違ったら「どちらかがおかしい」と即座に検知できる
なぜコストをかけてまで2系統にするのか。銀行の送金や列車の信号制御で、もし誤った結果がそのまま使われたら取り返しがつきません。そのリスクを避けるために、2倍のコストでも2系統の照合を採用する、というのがデュアルシステムの考え方です。身近な例では、重要書類を2人の担当者が別々に見直してダブルチェックするのと同じ発想です。
「デュアル」と「デュプレックス」はどちらも「2つ」という意味の言葉ですが、仕組みがまったく違います。一言で覚えるなら次のとおりです。
デュアルシステム=「常に2系統が同時に動き、答え合わせをする」
・通常時:両系統が並んで同じ処理を実行している
・目的:結果を照合して誤りを検出すること
・特徴:常に2系統ぶん動かすので電力・コストが高い
デュプレックスシステム=「普段は1系統だけが動き、壊れたら予備に切り替える」
・通常時:主系のみが処理し、待機系は眠っている
・目的:故障時に処理を切り替えて止めないこと
・特徴:普段は1系統ぶんで済むので比較的コストを抑えられる
混同を防ぐ覚え方:「デュアル=ダブルチェック係(常時2人稼働)」「デュプレックス=控え選手(普段はベンチ)」。「誤りを検出したいのか」「止めずに切り替えたいのか」、目的の違いから覚えると混同しなくなります。