システム構成

【応用情報】デュアルシステムとデュプレックスシステムについて解説

お茶ん太
お茶ん太

この記事では、デュアルシステムとデュプレックスシステムについて、初心者にも分かりやすく図解付きで丁寧に解説しています!

デュアルシステム

  • デュアルシステムは2組のシステムに全く同じ処理をさせる手法。
  • お互いの処理結果を照合することで正しさの検証が出来る。
  • 片方のシステムが止まっても、システム全体が止まることはない。

デュプレックスシステム

  • デュプレックスシステムは2組のシステムのうち、片方(主系)でメインの処理をし、もう片方(従系)は待機させる手法。
  • ホットスタンバイは、従系が主系の処理を引き継ぐために必要なプログラムを起動したまま待機する手法。
  • コールドスタンバイは、従系が主系とは別のプログラムを実行していたり、電源をオフにした状態で待機する手法。

システムの二重化

システムに障害が発生した場合でも、システム全体を止めないように2組のシステムを用意することをシステムの二重化と呼びます。また、このように複数のシステムを連携させて、あたかも1つのシステムとして運用するシステム構成をクラスタ構成と呼びます

システムの二重化にはデュアルシステムデュプレックスシステムがあります。

デュアルシステム

デュアルシステムでは2組のシステムに全く同じ処理をさせます。なので、どちらか片方が故障しても、サービスもトランザクションも継続できます。「サービスが継続できる」とはシステムの目的を達成できること、「トランザクションが継続できる」とは実行中の処理を継続できることです。例えば、家計簿アプリで言うと、サービスは家計の入出金を管理できることで、トランザクションは実行中の集計処理ですね。

デュアルシステムには次のような特徴があります。

  • 2組とも同じ処理を行うので、処理結果が同じになるはず。
    ⇒ 異なる場合は不具合があると分かるので、処理結果の検証が出来る。
  • 片方のシステムが故障しても、もう片方のシステムが稼働していれば、システム全体が止まることはない。

デュアルシステムはセッションを共有しています。セッションとは通信接続の開始から終了までを指します。「セッションを共有している」と言うのは、全く同じ情報を通信で受け取っているということです。だから両方で全く同じ処理が出来るんですね。

デュプレックスシステム

デュプレックスシステムも2組のシステムを用意しますが、片方は通常通り処理させ、もう片方は待機させます。通常通り処理する方を主系、待機する方を従系と呼びます。

オンライン処理はユーザの命令に対してリアルタイムで結果を返すような処理で、バッチ処理はリアルタイムで結果を返さなくて良いような処理をある程度まとめて実行する処理です。

主系が故障した場合は、従系が主系の処理を引継ぎます。

デュプレックスシステムの従系の待機方法にはホットスタンバイコールスタンバイがあります。

ホットスタンバイ

ホットスタンバイでは、従系は主系の処理を引き継ぐために必要なプログラムを起動した状態で待機します。ホットスタンバイは主系が故障した時、即座に処理を引き継げる反面、必要なプログラムをずっと起動している必要があるのでコストが掛かります。ホットスタンバイもセッションを共有しているため、サービスもトランザクションも引き継げます。

従系は主系が故障したことをどうやって検知するのでしょうか?人間が目視で確認してから切り替えてたら、気付かなかった時に大変ですよね。実は主系は従系に対して、自分が正常に動作していることを知らせる信号やメッセージを一定間隔毎に送っています。この信号が途切れたら、従系は「主系が故障した」と判断します。この信号とかメッセージをハートビートと呼びます。心臓の鼓動という意味ですね。

コールドスタンバイ

コールドスタンバイでは、従系は別のプログラムで別の作業をしたり、電源をオフにして待機します。コールドスタンバイはコストが削減出来る反面、主系から処理を引き継ぐのに時間が掛かります。コールドスタンバイはセッションを共有していないため、トランザクションは継続できません。

応用情報技術者試験での出題例

令和6年度秋期問12

応用情報技術者
午前試験 
令和6年度秋期問12

Webアプリケーションサーバの信頼性に関する記述のうち,適切なものはどれか。

ア コールドスタンバイ構成で稼働しているサーバに障害が発生した場合,サービスは中断しないが,トランザクションは継続できない。

イ コールドスタンバイ構成で稼働しているサーバに障害が発生した場合,サービスは中断するが,トランザクションは継続できる。

ウ セッションを共有しないクラスタ構成で1台のサーバに障害が発生した場合,サービスは継続できないが,トランザクションは継続できる。

エ セッションを共有するクラスタ構成で1台のサーバに障害が発生した場合,サービス及びトランザクションは継続できる。

正解と解説

正解は”エ”

セッションを共有しているクラスタ構成の場合は、1台に障害が発生しても、サービスもトランザクションも継続できます。

コールドスタンバイの場合、サービスは継続できますが、トランザクションは継続できません。

令和4年度春期問13

応用情報技術者
午前試験 
令和4年度春期問13

ホットスタンバイシステムにおいて,現用系に障害が発生して待機系に切り替わる契機として,最も適切な例はどれか。

ア 現用系から待機系へ定期的に送信され,現用系が動作中であることを示すメッセージが途切れたとき

イ 現用系の障害をオペレータが認識し,コンソール操作を行ったとき

ウ 待機系が現用系にたまった処理の残量を定期的に監視していて,残量が一定量を上回ったとき

エ 待機系から現用系に定期的にロードされ実行される診断プログラムが,現用系の障害を検出したとき

正解と解説

正解は”ア”

ホットスタンバイでは、主系から従系に「正常に動作していること」を伝えるメッセージが送られます。このメッセージが途切れた時、従系は主系が故障したと判断し、従系に切り替わります。