(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024037357
(43)【公開日】2024-03-19
(54)【発明の名称】通信システム及び通信方法
(51)【国際特許分類】
H04L 69/40 20220101AFI20240312BHJP
H04L 41/0663 20220101ALI20240312BHJP
【FI】
H04L69/40
H04L41/0663
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022142161
(22)【出願日】2022-09-07
(71)【出願人】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】黒木 亮
(57)【要約】
【課題】アクティブ側のI/Fモジュールと下位モジュールとの間で通信異常が発生した場合であっても、アクティブ側のI/Fモジュールの内部状態とバックアップ側のI/Fモジュールの内部状態とを同一にすること。
【解決手段】通信システム10は、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とを有する。アクティブ側I/Fモジュール20は送信部22aを備え、バックアップ側I/Fモジュール30は監視部32aと応答処理部32bとを備える。送信部22aは、アクティブ側I/Fモジュール20の内部状態とバックアップ側I/Fモジュール30の内部状態とを同一にするための所定の通知を送信する。監視部32aは、アクティブ側I/Fモジュール20と下位モジュール40との通信を監視し、通信内容を受信する。応答処理部32bは、受信した下位モジュール40からアクティブ側I/Fモジュール20への応答を処理する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
運転状態のモジュールと待機状態のモジュールとを有する通信システムであって、
前記運転状態のモジュールは、
前記運転状態のモジュールの内部状態と、前記待機状態のモジュールの内部状態とを同一にするための所定の通知を送信する送信部を有し、
前記待機状態のモジュールは、
前記運転状態のモジュールと下位モジュールとの通信を監視する監視部と、
前記下位モジュールからの応答を処理する応答処理部とを有する
ことを特徴とする通信システム。
【請求項2】
前記送信部は、前記運転状態のモジュールが、前記運転状態のモジュールから前記下位モジュールへの要求の再送に対する前記下位モジュールからの応答を受信しなかった場合、前記待機状態のモジュールに対しタイムアウト通知を送信する
ことを特徴とする請求項1に記載の通信システム。
【請求項3】
前記応答処理部は、前記下位モジュールからの応答を受信した時点から、所定の時間待機した後、前記運転状態のモジュールから前記下位モジュールへの要求の再送がされていない、または、前記運転状態のモジュールからの前記タイムアウト通知を受信していない場合、前記下位モジュールからの応答を処理する
ことを特徴とする請求項2に記載の通信システム。
【請求項4】
前記応答処理部は、前記待機状態のモジュールが最初の前記下位モジュールからの応答と、要求の再送に対する前記下位モジュールからの応答とを受信した後、前記運転状態のモジュールからの前記タイムアウト通知を受信しなかった場合、要求の再送に対する前記下位モジュールからの応答を処理する
ことを特徴とする請求項2に記載の通信システム。
【請求項5】
前記待機状態のモジュールは、
前記下位モジュールからの応答を受信し、かつ、前記運転状態のモジュールからの前記タイムアウト通知を受信した場合、前記待機状態のモジュールを運転状態に切り替える切替部を有する
ことを特徴とする請求項2に記載の通信システム。
【請求項6】
運転状態のモジュールと待機状態のモジュールとを有する通信システムが実行する通信方法であって、
前記運転状態のモジュールは、
前記運転状態のモジュールの内部状態と、前記待機状態のモジュールの内部状態とを同一にするための所定の通知を送信する送信工程を含み、
前記待機状態のモジュールは、
前記運転状態のモジュールと下位モジュールとの通信を監視する監視工程と、
前記下位モジュールからの応答を処理する応答処理工程とを含む、
ことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム及び通信方法に関する。
【背景技術】
【0002】
従来、コンピュータや通信システム等において、設備の故障によるシステムの停止を防ぐために、予備システムを常に待機させておいて、システムに障害が発生した場合には、予備システムが代わりに稼働することで、全体のシステムを止めないで運用するという待機冗長方式が知られている。
【0003】
待機冗長方式においては、アクティブ側のモジュールとバックアップ側のモジュールとのデータの等値化を行う必要があり、アクティブ側のI/F(Interface)モジュールと、下位モジュール間の全ての通信をバックアップ側のI/Fモジュールがモニタリングすることで2つのI/Fモジュールの間で内部状態を同一にする技術がある(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上記の技術では、アクティブ側のI/Fモジュールと下位モジュールとの間で通信に異常が発生し、下位モジュールからの応答が受信できなかったときに、アクティブ側のI/Fモジュールは要求の再送に対する応答を受信したが、バックアップ側のI/Fモジュール最初の下位モジュールからの応答を受信している場合、内部状態に差異が生じるという課題があった。
【0006】
また、アクティブ側のI/Fモジュールが要求の再送に対する応答も受信することができず、バックアップ側のI/Fモジュールは応答を受信している場合は、バックアップ側のI/Fモジュールは、アクティブ側のI/Fモジュールの状態を知ることができないため、内部状態に差異が生じるという課題もあった。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明の通信システムは、運転状態のモジュールと待機状態のモジュールとを有する通信システムであって、運転状態のモジュールは、運転状態のモジュールの内部状態と、待機状態のモジュールの内部状態とを同一にするための所定の通知を送信する送信部を有し、待機状態のモジュールは、運転状態のモジュールと下位モジュールとの通信を監視する監視部と、下位モジュールからの応答を処理する応答処理部とを有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、アクティブ側のI/Fモジュールと下位モジュールとの間で通信異常が発生した場合であっても、アクティブ側のI/Fモジュールの内部状態とバックアップ側のI/Fモジュールの内部状態とを同一にすることができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係る通信システムの概要を示す説明図である。
【
図2】
図2は、実施形態に係る通信システムの構成例を示す図である。
【
図3】
図3は、実施形態に係る通信処理の具体例を示す図である。
【
図4】
図4は、実施形態に係る通信処理の具体例を示す図である。
【
図5】
図5は、実施形態に係る通信処理の具体例を示す図である。
【
図6】
図6は、実施形態に係る通信処理の具体例を示す図である。
【
図7】
図7は、実施形態に係る通信処理の具体例を示す図である。
【
図8】
図8は、実施形態に係る処理手順を示すフローチャートである。
【
図9】
図9は、実施形態に係る処理手順を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、本願に係る通信システム及び通信方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る通信システム及び通信方法が限定されるものではない。
【0011】
〔1.システムの構成例〕
図1は、本実施形態に係る通信システムの構成を示す図である。
図1に示すシステムは、通信システム10と、アクティブ側I/Fモジュール20と、バックアップ側I/Fモジュール30と、下位モジュール40とを有する。
【0012】
通信システム10は、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とを有する。バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20と下位モジュール40との通信を監視する。また、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とは、下位モジュール40からの応答を処理する。そして、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とは、内部状態を同一にする処理に応じて、相互に通信を行う。
【0013】
バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20と下位モジュール40との通信を監視する。例えば、バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20と下位モジュール40との間の全ての通信をモニタリングし、アクティブ側I/Fモジュール20から下位モジュール40への要求と、下位モジュール40からアクティブ側I/Fモジュール20への応答とを受信する。
【0014】
そして、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とは、受信した下位モジュール40からの応答をそれぞれ処理する。例えば、アクティブ側I/Fモジュール20は、下位モジュール40への要求に対して下位モジュール40から送信された応答について処理し、バックアップ側I/Fモジュール30は、前述の通信の監視により、下位モジュール40からアクティブ側I/Fモジュール20に送信された応答を受信し、受信した応答について処理する。
【0015】
また、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とは、内部状態を同一にする処理に応じて、相互に通信を行う。例えば、アクティブ側I/Fモジュール20と下位モジュール40との通信異常により、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30との応答の受信状況に差が生じた場合、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とは、互いの内部状態を同一にするために相互に通信を行う。
【0016】
アクティブ側I/Fモジュール20及びバックアップ側I/Fモジュール30は、下位モジュール40と通信を行うことにより任意の処理を行うI/Fモジュールであり、下位モジュール40は、アクティブ側I/Fモジュールからの要求に対し、応答を送信することができるモジュールである。
【0017】
〔2.通信システム10の構成〕
次に、
図2を参照し、
図1に示した通信システム10の構成を説明する。
図2は、実施形態に係る通信システムの構成例を示す図である。
図2に示すように、実施形態に係る通信システム10は、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とを有する。
【0018】
アクティブ側I/Fモジュール20は、通信部21と制御部22と記憶部23とを有し、バックアップ側I/Fモジュール30は、通信部31と制御部32と記憶部33とを有する。また、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30と下位モジュール40とは、有線又は無線により互いに通信可能に接続される。
【0019】
通信部21及び通信部31は、例えば、NIC(Network Interface Card)等によって実現される。通信部21及び通信部31は、アクティブ側I/Fモジュール20又はバックアップ側I/Fモジュール30及び下位モジュール40と有線又は無線で接続され、アクティブ側I/Fモジュール20又はバックアップ側I/Fモジュール30及び下位モジュール40との間で情報の送受信を行う。
【0020】
記憶部23及び記憶部33は、例えば、RAM(Random Access Memory)やハードディスク等の記憶装置によって実現される。記憶部23及び記憶部33は、制御部22又は制御部32による各種処理に必要なデータ及びプログラムを格納する。そして、アクティブ側I/Fモジュール20の記憶部23は、本発明に密接に関連するものとして、タイムアウト情報記憶部23aを有する。
【0021】
タイムアウト情報記憶部23aは、後述するアクティブ側I/Fモジュール20と下位モジュール40との間で通信障害が生じた際に、アクティブ側I/Fモジュール20の応答待ちタイムアウト通知に関する情報を記憶する。例えば、タイムアウト情報記憶部13aは、アクティブ側I/Fモジュール20が下位モジュール40からの応答待ちをする任意の時間Nについて記憶する。
【0022】
また、バックアップ側I/Fモジュール30の記憶部33は、本発明に密接に関連するものとして、監視情報記憶部33aと待機情報記憶部33bとを有する。監視情報記憶部33aは、後述する監視部32aにより監視された、アクティブ側I/Fモジュール20と下位モジュール40との間の通信の情報について記憶する。
【0023】
例えば、監視情報記憶部33aは、後述する監視部32aの監視により受信された、アクティブ側I/Fモジュール20から下位モジュール40への要求や要求の再送、また、それに対する下位モジュール40からアクティブ側I/Fモジュール20への応答を記憶する。
【0024】
待機情報記憶部33bは、バックアップ側I/Fモジュール30が下位モジュール40からの応答を処理する際の待機時間について記憶する。例えば、待機情報記憶部33bは、バックアップ側I/Fモジュール30が下位モジュール40からの応答を受信した時点から、その処理を開始するまでの待機時間Mについて記憶する。
【0025】
なお、前述のアクティブ側I/Fモジュール20の応答待ち時間Nと、バックアップ側I/Fモジュール30の待機時間Mは予め記憶されているものとし、待機時間Mは応答待ち時間Nよりも大きい値が設定されるものとする。
【0026】
制御部22及び制御部32は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、それぞれのI/Fモジュール内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部22及び制御部32は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路により実現される。
【0027】
アクティブ側I/Fモジュール20の制御部22は、送信部22aを有する。送信部22aは、運転状態(アクティブ側)のモジュールの内部状態と、待機状態(バックアップ側)のモジュールの内部状態とを同一にするための所定の通知を送信する。
【0028】
例えば、送信部22aは、アクティブ側I/Fモジュール20と下位モジュール40との間で通信障害が発生した場合、アクティブ側I/Fモジュール20の内部状態と、バックアップ側I/Fモジュール30の内部状態とを同一にするためにタイムアウト通知を送信する。
【0029】
また、送信部22aは、運転状態のモジュールが、運転状態のモジュールから下位モジュールへの要求の再送に対する下位モジュールからの応答を受信しなかった場合、待機状態のモジュールに対しタイムアウト通知を送信してもよい。
【0030】
例えば、送信部22aは、アクティブ側I/Fモジュール20が要求の再送に対する下位モジュール40からの応答を、応答待ち時間Nが経過しても受信できなかった場合、バックアップ側I/Fモジュール30が応答処理を開始して内部状態に差異が生じることが無いように、バックアップ側I/Fモジュール30にタイムアウト通知を送信する。
【0031】
バックアップ側I/Fモジュール30の制御部32は、監視部32aと、応答処理部32bと、切替部32cとを有する。監視部32aは、運転状態のモジュールと下位モジュールとの通信を監視する。そして、監視部32aは、監視により受信した、アクティブ側I/Fモジュール20と下位モジュール40との間の通信の情報を監視情報記憶部33aに格納する。
【0032】
例えば、監視部32aは、アクティブ側I/Fモジュール20と下位モジュール40との間の通信を監視し、アクティブ側I/Fモジュール20から下位モジュール40への要求や要求の再送、下位モジュール40からアクティブ側I/Fモジュール20への応答を受信し、監視情報記憶部33aに格納する。
【0033】
応答処理部32bは、下位モジュールからの応答を処理する。例えば、応答処理部32bは、監視情報記憶部33aに記憶された、下位モジュール40からアクティブ側I/Fモジュール20への応答について、アクティブ側I/Fモジュール20が行う処理と同様の処理を行う。
【0034】
また、応答処理部32bは、下位モジュールからの応答を受信した時点から、所定の時間待機した後、運転状態のモジュールから下位モジュールへの要求の再送がされていない、または、運転状態のモジュールからのタイムアウト通知を受信していない場合、下位モジュールからの応答を処理してもよい。
【0035】
例えば、応答処理部32bは、下位モジュール40からアクティブ側I/Fモジュール20への応答を受信した時点から、待機情報記憶部33bに記憶された待機時間Mの期間待機した後、監視情報記憶部33aにアクティブ側I/Fモジュール20から下位モジュール40への要求の再送が記憶されていない、または、バックアップ側I/Fモジュール30がアクティブ側I/Fモジュール20からのタイムアウト通知を受信していない場合、下位モジュール40からの応答を処理する。
【0036】
さらに、応答処理部32bは、待機状態のモジュールが最初の下位モジュールからの応答と、要求の再送に対する下位モジュールからの応答とを受信した後、運転状態のモジュールからのタイムアウト通知を受信しなかった場合、要求の再送に対する下位モジュールからの応答を処理してもよい。
【0037】
例えば、応答処理部32bは、監視情報記憶部33aに下位モジュール40からアクティブ側I/Fモジュール20への最初の応答と、要求の再送に対する応答とが記憶され、かつ、バックアップ側I/Fモジュール30が要求の再送に対する応答を受信した時点から待機時間Mの期間待機した後に、バックアップ側I/Fモジュール30がアクティブ側I/Fモジュール20からのタイムアウト通知を受信していない場合、要求の再送に対する応答を処理する。
【0038】
監視情報記憶部33aに要求の再送に対する応答が記憶されていることで、アクティブ側I/Fモジュール20は、下位モジュール40からの最初の応答を受信できていないことが分かり、アクティブ側I/Fモジュール20からのタイムアウト通知を受信していないことから、アクティブ側I/Fモジュール20が要求の再送に対する応答を受信したことが分かる。そのため、バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20が処理を行う、要求の再送に対する応答について処理を行うことで、内部状態に差異が生じることを防ぐことができる。
【0039】
切替部12cは、待機状態のモジュールが下位モジュールからの応答を受信し、かつ、運転状態のモジュールからのタイムアウト通知を受信した場合、待機状態のモジュールを運転状態に切り替える。
【0040】
例えば、切替部12cは、バックアップ側I/Fモジュール30が下位モジュール40からの応答を受信し、かつ、アクティブ側I/Fモジュール20からのタイムアウト通知を受信した場合、アクティブ側I/Fモジュール20の通信機能に異常があると判断し、運転状態切替および送信有効切替を行い、バックアップ側I/Fモジュール30をアクティブ側へと切り替える。
【0041】
〔3.情報処理の具体例〕
ここで、
図3から
図7を参照し、通信システム10による、アクティブ側I/Fモジュール20の内部状態とバックアップ側I/Fモジュール30の内部状態を同一にするそれぞれの処理の具体例について説明する。
図3から
図7は、実施形態に係る通信処理の具体例を示す図である。
【0042】
まず、アクティブ側I/Fモジュール20のタイムアウト通知送信処理について説明する。アクティブ側I/Fモジュール20は、要求の再送に対する下位モジュール40からの応答を受信することができなかった場合、バックアップ側I/Fモジュール30にタイムアウト通知を送信する。
【0043】
図3の例では、アクティブ側I/Fモジュール20は、下位モジュール40に対し「要求1」を送信し、応答待ち時間Nの期間待機するが、下位モジュール40からの応答がないため、「要求1再送1」を送信する。要求の再送後、アクティブ側I/Fモジュール20は、同様にNの期間待機するが、要求の再送に対する応答も受信することができないため、バックアップ側I/Fモジュール30にタイムアウト通知を送信する。これにより、バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20が下位モジュール40からの応答を受信していないことを知ることができる。
【0044】
次に、バックアップ側I/Fモジュール30の応答処理について説明する。バックアップ側I/Fモジュール30は、下位モジュール40からアクティブ側I/Fモジュール20への応答を受信した時点から、Mの経過時間待機する。その後、バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20から下位モジュール40への要求の再送を受信していないことを確認してから、受信した応答について処理する。
【0045】
図4の例では、バックアップ側I/Fモジュール30は、下位モジュール40からアクティブ側I/Fモジュール20への「応答1」をモニタリング受信してからMの経過時間待機したが、アクティブ側I/Fモジュール20から下位モジュール40への要求の再送を受信していないため、「応答1」について処理する。これにより、バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20の受信状況を確認してから処理を行うため、内部状態に差異が生じることを防ぐことができる。
【0046】
また、バックアップ側I/Fモジュール30は、下位モジュール40からアクティブ側I/Fモジュール20への要求の再送に対する応答を受信した時点から、Mの経過時間待機する。その後、バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20からのタイムアウト通知を受信していないことを確認してから、受信した応答について処理する。
【0047】
図5の例では、バックアップ側I/Fモジュール30は、下位モジュール40からアクティブ側I/Fモジュール20への「要求1再送1」に対する「応答1」をモニタリング受信してからMの経過時間待機したが、アクティブ側I/Fモジュール20からのタイムアウト通知を受信していないため、「応答1」について処理する。これにより、バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20の受信状況を確認してから処理を行うため、内部状態に差異が生じることを防ぐことができる。
【0048】
さらに、バックアップ側I/Fモジュール30は、下位モジュール40からアクティブ側I/Fモジュール20への最初の応答と、要求の再送に対する応答との両方を受信した場合、要求の再送に対する応答について処理する。
【0049】
図6の例では、バックアップ側I/Fモジュール30は、下位モジュール40からアクティブ側I/Fモジュール20への「応答1」をモニタリング受信している。その後、アクティブ側I/Fモジュール20は、下位モジュール40からの「応答1」を受信することができなかったため、下位モジュール40へ「要求1再送1」を送信する。そして、下位モジュール40は、「要求1再送1」に対する「応答1再送1」をアクティブ側I/Fモジュール20に送信し、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とは、「応答1再送1」を受信している。
【0050】
その後、バックアップ側I/Fモジュール30は、Mの経過時間待機したが、アクティブ側I/Fモジュール20からのタイムアウト通知を受信していないため、「応答1再送1」について処理する。これにより、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とは、どちらも「応答1再送1」について処理するため、内部状態に差異が生じることはない。
【0051】
次に、バックアップ側I/Fモジュール30による運転状態切替処理について説明する。バックアップ側I/Fモジュール30は、下位モジュール40からアクティブ側I/Fモジュール20への応答と、タイムアウト通知とを受信した場合、運転状態切替と送信有効切替とを行い、アクティブ側へと切り替わる。
【0052】
図7の例では、バックアップ側I/Fモジュール30は、下位モジュール40からアクティブ側I/Fモジュール20への「応答1」及び「応答1再送1」を受信している。一方、アクティブ側I/Fモジュール20は、「要求1」及び「要求1再送1」に対する応答を受信することができなかったため、タイムアウト通知を送信している。
【0053】
タイムアウト通知を受信したバックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20の通信機能に異常が生じたと判断し、運転状態切替と送信有効切替を行う。これにより、バックアップ側I/Fモジュール30は、アクティブ側I/Fモジュール20の通信機能に異常が生じた場合、速やかにアクティブ側へと切り替わることができる。
【0054】
〔4.情報処理装置の情報処理の一例〕
次に、
図8及び
図9を用いて、通信システム10の通信処理について説明する。
図8及び
図9は、実施形態に係るアクティブ側I/Fモジュール20及びバックアップ側I/Fモジュール30における通信処理の流れを示すフローチャートである。まず、
図8を参照し、アクティブ側I/Fモジュール20における通信処理の流れを説明する。
【0055】
アクティブ側I/Fモジュール20は、例えば、下位モジュール40との通信が可能か否かを判断する(ステップS101)。アクティブ側I/Fモジュール20は、下位モジュール40との通信が可能である場合、(ステップS101;Yes)、下位モジュール40に対し要求を送信する(ステップS102)。一方、アクティブ側I/Fモジュール20は、下位モジュール40との通信が可能でない場合(ステップS101;No)、通信が可能となるまで待機する。
【0056】
そして、アクティブ側I/Fモジュール20は、下位モジュール40からの応答を受信する(ステップS103)。アクティブ側I/Fモジュール20は、下位モジュール40からの応答を受信した場合、(ステップS103;Yes)、応答を処理する(ステップS106)。一方、アクティブ側I/Fモジュール20は、下位モジュール40からの応答を受信していない場合(ステップS103;No)、下位モジュール40に要求を再送する(ステップS104)。
【0057】
その後、アクティブ側I/Fモジュール20は、下位モジュール40からの応答を受信する(ステップS105)。アクティブ側I/Fモジュール20は、下位モジュール40からの応答を受信した場合、(ステップS105;Yes)、応答を処理する(ステップS106)。一方、送信部22aは、アクティブ側I/Fモジュール20が下位モジュール40からの応答を受信していない場合(ステップS105;No)、バックアップ側I/Fモジュール30にタイムアウト通知を送信する(ステップS107)。
【0058】
次に、
図9を参照し、バックアップ側I/Fモジュール30における通信処理について説明する。監視部32aは、例えば、下位モジュール40からの応答を受信する(ステップS101)。監視部32aが、下位モジュール40からの応答を受信した場合(ステップS101;Yes)、バックアップ側I/Fモジュール30はMの経過時間待機する(ステップS102)。一方、監視部32aは、下位モジュール40からの応答を受信していない場合(ステップS101;No)、バックアップ側I/Fモジュール30は応答を受信するまで待機する。
【0059】
そして、監視部32aは、アクティブ側I/Fモジュール20から下位モジュール40への要求の再送を受信する(ステップS103)。監視部32aは要求の再送を受信した場合、(ステップS103;Yes)、バックアップ側I/Fモジュール30は、タイムアウト通知を受信する(ステップS104)。一方、監視部32aが要求の再送を受信していない場合(ステップS103;No)、応答処理部32bは応答を処理する(ステップS105)。
【0060】
バックアップ側I/Fモジュール30がタイムアウト通知を受信した場合、(ステップS104;Yes)、切替部32cはアクティブ側への切替を行う(ステップS107)。一方、バックアップ側I/Fモジュール30がタイムアウト通知を受信していない場合(ステップS104;No)、応答処理部32bは要求の再送に対する応答を処理する(ステップS106)。
【0061】
〔5.実施形態の効果〕
前述してきたように、本実施形態に係る通信システム10は、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とを有する。アクティブ側I/Fモジュール20は、送信部22aを有し、バックアップ側I/Fモジュール30は、監視部32aと応答処理部32bとを有する。
【0062】
送信部22aは、アクティブ側I/Fモジュール20の内部状態とバックアップ側I/Fモジュール30の内部状態とを同一にするための所定の通知を送信する。監視部32aは、アクティブ側I/Fモジュール20と下位モジュール40との通信を監視し、通信内容を受信する。応答処理部32bは、受信した下位モジュール40からアクティブ側I/Fモジュール20への応答を処理する。
【0063】
これにより、通信システム10は、アクティブ側I/Fモジュール20と下位モジュール40との間で通信異常が発生した場合であっても、アクティブ側のI/Fモジュールの内部状態とバックアップ側のI/Fモジュールの内部状態とを同一にすることができるという効果を奏する。
【0064】
また、アクティブ側I/Fモジュール20の送信部22aは、アクティブ側I/Fモジュール20が下位モジュール40からの要求の再送に対する応答を受信しなかった場合、バックアップ側I/Fモジュール30にタイムアウト通知を送信する。
【0065】
これにより、通信システム10は、アクティブ側I/Fモジュール20と下位モジュール40との間で通信障害が発生した場合であっても、バックアップ側I/Fモジュール30がアクティブ側I/Fモジュール20の通信状況を知ることができるため、内部状態を同一に保つ処理を行うことができるという効果を奏する。
【0066】
さらに、バックアップ側I/Fモジュール30の応答処理部32bは、下位モジュール40からの応答を受信した時点から、待機時間Mの期間待機した後、アクティブ側I/Fモジュール20から下位モジュール40への要求の再送を受信していない、または、アクティブ側I/Fモジュール20からのタイムアウト通知を受信していない場合、下位モジュール40からの応答を処理する。
【0067】
これにより、通信システム10は、バックアップ側I/Fモジュール30がアクティブ側I/Fモジュール20の通信状況を確認してから応答の処理を行うことで、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とが同一の応答内容について処理するため、内部状態を同一に保つことができるという効果を奏する。
【0068】
また、バックアップ側I/Fモジュール30の応答処理部32bは、バックアップ側I/Fモジュール30が最初の下位モジュール40からの応答と、要求の再送に対する下位モジュール40からの応答とを受信した後、アクティブ側I/Fモジュール20からのタイムアウト通知を受信しなかった場合、要求の再送に対する下位モジュール40からの応答を処理する。
【0069】
これにより、通信システム10は、バックアップ側I/Fモジュール30がアクティブ側I/Fモジュール20の通信状況を確認してから、アクティブ側I/Fモジュール20が受信している要求の再送に対する応答の処理を行うことで、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とが同一の応答内容について処理するため、内部状態を同一に保つことができるという効果を奏する。
【0070】
さらに、バックアップ側I/Fモジュール30の切替部32cは、バックアップ側I/Fモジュール30が下位モジュール40からの応答を受信し、かつ、アクティブ側I/Fモジュール20からのタイムアウト通知を受信した場合、運転状態切替と送信有効切替とを行うことによりバックアップ側I/Fモジュール30をアクティブ側へと切り替える。
【0071】
これにより、通信システム10は、アクティブ側I/Fモジュール20の通信機能に異常が生じた場合、バックアップ側I/Fモジュール30が通信異常を判断し、速やかにアクティブ側とバックアップ側との運転状態を切り替えることができるという効果を奏する。
【0072】
[6.ハードウェア構成]
前述した実施形態に係る通信システム10は、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とから構成され、アクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30とは、例えば、それぞれ
図10に示すような構成のコンピュータ1000によって実現される。
図10は、通信システム10が有するアクティブ側I/Fモジュール20とバックアップ側I/Fモジュール30との機能を実現するコンピュータの一例を示すハードウェア構成図である。
【0073】
コンピュータ1000は、CPU1100、RAM1200、ROM1300、補助記憶装置1400、通信I/F(インタフェース)1500、入出力I/F(インタフェース)1600が、バス1800により接続された形態を有する。CPU1100は、ROM1300又は補助記憶装置1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0074】
補助記憶装置1400は、CPU1100によって実行されるプログラム、および、係るプログラムによって使用されるデータ等を格納する。通信I/F1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
【0075】
CPU1100は、入出力I/F1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入出力装置1700を制御する。CPU1100は、入出力I/F1600を介して、入出力装置1700からデータを取得する。また、CPU1100は、生成したデータについて入出力I/F1600を介して入出力装置1700へ出力する。
【0076】
例えば、コンピュータ1000が本実施形態に係る通信システム10が有するアクティブ側I/Fモジュール20又はバックアップ側I/Fモジュール30として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部22又は制御部32の機能を実現する。
【0077】
[7.その他]
前述の実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0078】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の通り構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0079】
前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述してきた実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0080】
また、前述してきた「部(section、module、unit)」は、「手段」や「回路」等に読み替えることができる。例えば、制御部は、制御手段や制御回路に読み替えることができる。
【0081】
以上、本発明の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【符号の説明】
【0082】
10 通信システム
20 アクティブ側I/Fモジュール
21 通信部
22 制御部
22a 送信部
23 記憶部
23a タイムアウト情報記憶部
30 バックアップ側I/Fモジュール
31 通信部
32 制御部
33 記憶部
32a 監視部
32b 応答処理部
32c 切替部
33a 監視情報記憶部
33b 待機情報記憶部
40 下位モジュール