(57)【要約】【課題】複雑で特殊なハードウェアやソフトウェアの構成を必要とせず、容易に冗長化構成を構築でき、かつ安定的な連続動作を実現する通信システムを提供する。【解決手段】複数のノードを一つのグループとして特定する仮想ノードＩＤを管理する仮想ノードＩＤ管理部(101)と、前記グループに属する各ノードの動作状態を示す情報を含むノードステータスを管理するとともに、自ノードを稼働ノードとして動作させる優先モードと待機ノードとして動作させる待機モードとのいずれかの動作モードを選択するステータス管理部(102)と、このステータス管理部によって選択された動作モードに応じて自ノードの動作を制御する送受信制御部(104)とを設けた。【選択図】  図１
2010271840.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構成してデータの送受信を行う複数のノードを有し、
これらのノードのうち一部の複数のノードのそれぞれは、
前記一部の複数のノードを一つのグループとして特定する仮想ノードＩＤを管理する仮想ノードＩＤ管理部と、
前記グループに属する各ノードの動作状態を示す情報を含むノードステータスを管理するとともに、自ノードを稼働ノードとして動作させる優先モードと待機ノードとして動作させる待機モードとのいずれかの動作モードを選択するステータス管理部と、
このステータス管理部により選択された前記動作モードに応じて自ノードの動作を制御する送受信制御部と
を有することを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
前記ステータス管理部は、
前記グループに属する各ノードの前記ノードステータスを管理するノードステータス管理テーブルと、
各ノードのノードステータスと自ノードの動作モードの決定基準とを関連付けた動作モード決定テーブルと、
この動作モード決定テーブルに基づいて自ノードの前記動作モードを決定する動作モード決定部と
を有することを特徴とする通信システム。
【請求項３】
請求項１又は２に記載の通信システムにおいて、
前記ステータス管理部は、自ノードのノードステータスと前記グループに属する他のノードのノードステータスとを定期的に更新する更新部をさらに有することを特徴とする通信システム。
【請求項４】
請求項１乃至３のいずれかに記載の通信システムにおいて、
前記ノードの送受信制御部は、メッセージデータを前記仮想ノードＩＤに対応した前記グループに属する複数のノードに送信することを特徴とする通信システム。
【請求項５】
請求項１乃至４のいずれかに記載の通信システムにおいて、
前記グループに属する複数のノードは、優先モードのときに他のノードから受信したメッセージデータに対応する処理動作を行うことを特徴とする通信システム。
【請求項６】
請求項１乃至５のいずれかに記載の通信システムにおいて、
前記複数のノードのそれぞれは、前記仮想ノードＩＤに応じたデータ通信と固有のユニキャストアドレスに応じたデータ通信とのいずれかの通信モードを自ノードで送受信するデータの内容に基づいて選択する通信モード管理部を備えることを特徴とする通信システム。
【請求項７】
請求項１乃至６のいずれかに記載の通信システムにおいて、
前記仮想ノードＩＤ管理部は、前記ノードの固有のユニキャストアドレスを前記仮想ノードＩＤに関連付けて記憶する仮想ノードＩＤテーブルを有することを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関するものであり、特に複数のノードがネットワークを介してデータ通信を実行する通信システムに関する。
【背景技術】
【０００２】
ネットワークに接続される多数のコンピュータやルータなどの通信機器（以下、「ノード」という。）から構成される通信システムでは、その用途や目的によって連続して正常に稼働することを要求される場合がある。例えば、製品生産における製造効率化を実現するために生産ラインの制御管理を行う通信システムや、プラント設備のような広い規模で連続稼働している設備の動作監視や保守管理を行う通信システムなどは、安定的に連続稼働する通信システムであることが必要である。
【０００３】
従来から、このような通信システムにおいては、システムの安定的な連続稼働を実現するための手段として、同一機能を有するノードを複数台設置して一つのノードが動作不能状態に陥った場合に他の同一機能を有するノードが動作を継続するような冗長化構成を構築することが用いられている。
上記の様な通信システムの冗長化構成を実現する技術として、引用文献１には、サーバ装置とクライアント装置とがネットワークを介してデータ通信を行う通信システムにおいて、同一機能を有するサーバ装置を複数台設置して、一のサーバ装置の動作が不能となった際に、サーバ装置に対して処理を要求するクライアント装置が同一機能を有する他のサーバ装置へ通信先を切り替える技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−３２１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、引用文献１に開示されている技術は、クライアント装置の通信相手となるサーバ装置を切り替えるために、サーバ装置の動作状態を監視する機能をクライアント装置に設けたり、通信ネットワーク全体の動作状態を管理する機能を通信ネットワークに実装したりするものである。したがって、サーバ装置の冗長化構成により通信システムの安定的な連続稼働を実現させるために、サーバ装置およびクライアント装置がともにハードウェア的にもソフトウェア的にも複雑で特殊な構成となり、その実現には多大なコストと時間とを要するといった問題があった。
【０００６】
さらに、近年では、大規模で高価な通信システムだけではなく、小規模で安価な通信システムにおいても安定的な連続稼働への要求が高まっている。
本発明は、上記の問題を解決すべく、容易に冗長化構成を構築でき、かつ安定的な連続動作を実現する通信システムの提供を目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明にかかる通信システムは、ネットワークを構成してデータの送受信を行う複数のノードを有し、これらのノードのうち一部の複数のノードのそれぞれは、前記一部の複数のノードを一つのグループとして特定する仮想ノードＩＤを管理する仮想ノードＩＤ管理部と、前記グループに属する各ノードの動作状態を示す情報を含むノードステータスを管理するとともに、自ノードを稼働ノードとして動作させる優先モードと待機ノードとして動作させる待機モードとのいずれかの動作モードを選択するステータス管理部と、このステータス管理部により選択された前記動作モードに応じて自ノードの動作を制御する送受信制御部とを有することを特徴とする。
【０００８】
また、本発明における前記ステータス管理部は、前記グループに属する各ノードの前記ノードステータスを管理するノードステータス管理テーブルと、各ノードのノードステータスと自ノードの動作モードの決定基準とを関連付けた動作モード決定テーブルと、この動作モード決定テーブルに基づいて自ノードの前記動作モードを決定する動作モード決定部とを有することとしても良い。
さらに、前記ステータス管理部は、自ノードのノードステータスと前記グループに属する他のノードのノードステータスとを定期的に更新する更新部をさらに有することとしても良い。
【０００９】
また、前記ノードの送受信制御部は、メッセージデータを前記仮想ノードＩＤに対応した前記グループに属する複数のノードに送信することとしても良い。
【００１０】
また、前記グループに属する複数のノードは、優先モードのときに他のノードから受信したメッセージデータに対応する処理動作を行うこととしても良い。
【００１１】
また、前記複数のノードのそれぞれは、前記仮想ノードＩＤに応じたデータ通信と固有のユニキャストアドレスに応じたデータ通信とのいずれかの通信モードを自ノードで送受信するデータの内容に基づいて選択する通信モード管理部を備える構成としても良い。
【００１２】
また、前記仮想ノードＩＤ管理部は、前記ノードの固有のユニキャストアドレスを前記仮想ノードＩＤに関連付けて記憶する仮想ノードＩＤテーブルを有することとしても良い。
【発明の効果】
【００１３】
本発明によれば、仮想ノードＩＤに対してメッセージデータを送信することにより、その仮想ノードＩＤを有する全てのノードがそのメッセージデータを受信するので、メッセージデータを送信するノードは、このメッセージデータの送信先となるノードを個別に特定する必要がない。
また、通信システムを構成するノードのうちメッセージデータを受信するノードは、自ノードのノードステータスを管理するとともに、同一機能を有する他のノードと相互に連携してそれぞれのノードが管理するノードステータスの全てを共有するので、この共有したノードステータスに基づいて自ノードの動作モードを稼働とするか待機とするかを決定することができる。したがって、同一の機能を有する複数のノードの冗長化構成を構築する処理、すなわち複数のノードの動作モードを決定する処理の実装を容易にすることが可能となる。
【００１４】
その結果、処理を要求するノード、すなわちメッセージデータを送信するノードは、このメッセージデータの送信先である特定のノードが冗長化構成となっているのか否かを判別するまでもなく、送信先ノードが有する仮想ノードＩＤに対してメッセージデータを送信するのみで冗長化構成されたノードに対するメッセージデータの送信を実現することができる。
このように、本発明によれば、従来のような複雑で特殊な構成を必要とせず、通信システムの冗長化構成を容易に構築でき、かつ通信システムの安定的な連続動作を実現することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施の形態にかかる通信システムの構成を示すブロック図である。
【図２】ノードステータスの状態遷移を概念的に示す遷移図である。
【図３】複数のノードのノードステータスを管理するノードステータス管理テーブルの一例を示す図である。
【図４】動作モード決定テーブルの一例を示す図である。
【図５】本発明の第１の実施の形態におけるノードのノードステータス管理動作ならびに動作モード決定動作を説明するフローチャートである。
【図６】本発明の第１の実施の形態にかかる通信システムにおける複数のノードの冗長化構成を構築する動作を説明するシーケンス図である。
【図７】本発明の第１の実施の形態にかかる通信システムにおいて処理要求を送信するノードの動作を説明するフローチャートである。
【図８】本発明の第１の実施の形態にかかる通信システムにおいてノード間で送受信されるメッセージデータの一例を示す図である。
【図９】本発明の第１の実施の形態にかかる通信システムにおいて動作モードが待機状態のノードの処理動作をメッセージデータ種別毎に説明する図である。
【図１０】本発明の第１の実施の形態にかかる通信システムにおけるメッセージデータの送受信動作を説明するシーケンス図である。
【図１１】本発明の第２の実施の形態にかかる通信システムの構成を示すブロック図である。
【図１２】本発明の第２の実施の形態にかかる通信システムにおける複数のノードの仮想ノードＩＤ管理部に記憶されている仮想ノードＩＤ管理テーブルの構成を概念的に示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照し、本発明の実施の形態について説明する。
［第１の実施の形態］
本発明の第１の実施の形態にかかる通信システムは、ネットワークに接続された複数のサーバ装置とクライアント装置とからなり、これらのサーバ装置は、同一の機能と構成とを有し、冗長化構成をなしており、これらのサーバ装置と１台のクライアント装置との間でネットワークを介したメッセージデータの送受信を行うものである。
【００１７】
図１に示すように、本実施の形態にかかる通信システム１は、ネットワークＡに接続され冗長化構成をなす２台のサーバ装置ａ１０−１およびサーバ装置ｂ１０−２と、これらのサーバ装置とメッセージデータの送受信を行うクライアント装置１１とから構成されている。これらのサーバ装置やクライアント装置は、通信機能を持ったコンピュータ等の通信機器であり、本発明におけるノードとして作用するものである。以下、サーバ装置およびクライアント装置を単に「ノード」と総称することがある。
これらのノードは、それぞれネットワークＡを介してメッセージデータの送受信をはじめとするデータ通信の制御を行う通信制御部１００と、ネットワークＡとの間でデータの送受信を行うネットワークＩ／Ｆ１１０とを備えている。また、各ノードをサーバ装置またはクライアント装置として機能させるアプリケーションプログラムを制御するサーバアプリケーション制御部１２０またはクライアントアプリケーション制御部１３０をそれぞれ備えている。
【００１８】
ここで、通信制御部１００は、仮想ノードＩＤ管理部１０１と、ステータス管理部１０２と、通信モード管理部１０３と、送受信制御部１０４とから構成されている。この通信制御部１００の構成は各ノードに共通である。
仮想ノードＩＤ管理部１０１は、冗長化構成をなすサーバ装置ａ１０−１とサーバ装置ｂ１０−２とを一つのグループとして特定する仮想ノードＩＤを管理する。
【００１９】
ステータス管理部１０２は、自ノードの動作状態をノードステータスとして自装置の図示しない記憶部に記憶する。
さらに、一つのグループに属して冗長構成をなすサーバ装置ａ１０−１およびサーバ装置ｂ１０−２のステータス管理部１０２は、自ノードのノードステータスをお互いに送受信することによって交換して、相互のノードステータスをノードステータス管理テーブル１０２ａとしてそれぞれが記憶する。また、ステータス管理部１０２の更新部１０２ｂは、定期的にそのノードステータス管理テーブル１０２ａを更新する。
また、サーバ装置ａ１０−１およびサーバ装置ｂ１０−２のステータス管理部１０２の動作モード決定部１０２ｄは、このノードステータス管理テーブル１０２ａを用いて、動作モード決定テーブル１０２ｃに基づいて自ノードの動作モードを稼働サーバとして動作させる優先モードか待機サーバとして動作させる待機モードのいずれかを選択して切り替える。
【００２０】
通信モード管理部１０３は、仮想ノードＩＤ管理部１０１において管理されている仮想ノードＩＤに対するデータ通信と固有のユニキャストアドレスに対するデータ通信とのいずれかの通信モードを、自ノードで送受信するデータの内容に基づいて選択して切り替える。
送受信制御部１０４は、通信モード管理部１０３によって選択された通信モードによるデータ通信動作を自ノードの動作モードに応じて制御する。
【００２１】
上述の通信システム１は、クライアント装置１１からサーバ装置ａ１０−１およびサーバ装置ｂ１０−２を一つのグループとして特定する仮想ノードＩＤを用いたメッセージデータのマルチキャストを実施する。さらに、サーバ装置ａ１０−１およびサーバ装置ｂ１０−２は、ノードステータス管理テーブル１０２ａを用いて動作モード決定テーブル１０２ｃに基づいて自ノードの動作モードを決定することにより、自ノードを稼働サーバとして動作させるか待機サーバとして動作させるかを設定し、サーバ装置１０−１〜１０−２の冗長化構成を実現する。
なお、本実施の形態にかかる通信システム１の各ノードは、ＣＰＵ（中央演算装置）やメモリ、インターフェースからなるコンピュータにコンピュータプログラムをインストールすることによって実現され、上述した各ノードの各種機能は、上記コンピュータの各種ハードウェア資源と上記コンピュータプログラム（ソフトウェア）とが協働して実現される。
【００２２】
＜ノードステータス＞
次に、本実施の形態にかかる通信システム１におけるノードステータスについて図２を参照して説明する。
ノードステータスは、各ノードの動作状態を表した状態情報である。本実施の形態においては、図２に示すように、各ノードの動作状態を「正常」・「軽故障」・「重故障」の三つの状態情報で表すこととする。
ここで、「正常」とは、自ノードがシステムでの正常な継続動作が可能な状態であり、「軽故障」とは、自ノードがシステムでの継続動作が可能な程度の軽微な異常が発生した状態であり、「重故障」とは、自ノードがシステムでの継続動作が不可能となり再起動が必要となる程度の異常が発生した状態である。
【００２３】
ノードステータスは、自ノードの動作状態に応じて「正常」から「軽故障」（図２の（ａ））、「軽故障」から「正常」（図２の（ｂ））、「正常」または「軽故障」から「重故障」（図２の（ｃ））へ遷移することができる。また、ノードが連続動作中の場合、「重故障」のノードステータスを有するノードのノードステータスは「正常」または「軽故障」へ遷移することはなく、このノードに対して再起動などを実行した後に「軽故障」または「正常」へ遷移する。
例えば、正常動作しているノードに継続動作が可能な程度の故障が発生した場合、このノードのノードステータスは「正常」から「軽故障」へ遷移し、この「軽故障」の状態情報が最新のノードステータスとしてステータス管理部１０２で管理される。
【００２４】
＜ノードステータスの管理方法＞
ノードステータスの管理方法について、図３に示すノードステータス管理テーブル１０２ａの一例を参照して説明する。
ノードステータス管理テーブル１０２ａは、冗長化された複数のサーバ装置ａ１０−１，ｂ１０−２のノードステータスを一つのテーブルとなるように相互に関連付けて記述したデータである。例えば、図３に示すように、自ノードの情報であることを示す「自ノードフラグ」と、サーバノードを特定する「ノード情報」と、サーバノードの動作状態を示す「状態情報」すなわちノードステータスとが関連付けて記述されている。
また、サーバノードの動作モードの設定情報を示す「動作モード情報」を関連付けて記述する構成としても良い。
この例では、サーバ装置ａ１０−１のステータス管理部１０２に記憶されるノードステータス管理テーブル１０２ａであって、サーバ装置ａ１０−１とサーバ装置ｂ１０−２ともに状態情報が「正常」であり、動作モードがサーバ装置ａ１０−１は優先モード、サーバ装置ｂ１０−２は待機モードの設定で動作中であることを示すものである。
【００２５】
＜動作モードの選択＞
次に、ノードステータス管理テーブル１０２ａに基づく動作モードの選択について説明する。
本実施の形態にかかる通信システムにおいて、冗長化構成を実現しているサーバ装置１０−１〜１０−２における稼働サーバと待機サーバの変更、すなわち、動作中のサーバ装置１０−１〜１０−２の動作モードの移行は、ノードステータス管理テーブル１０２ａを用いてサーバ装置１０−１〜１０−２のステータス管理部１０２に記憶されている動作モード決定テーブル１０２ｃに基づいて、それぞれのサーバ装置が自律的に自ノードの動作モードを選択することによって行われる。
【００２６】
上述した各サーバ装置のノードステータス管理テーブル１０２ａを用いた動作モードの移行は、動作モード決定テーブル１０２ｃに基づいて行われる。
この動作モード決定テーブル１０２ｃの一例を図４に示す。図４に示す動作モード決定テーブル１０２ｃは、動作モードが優先モードの設定で動作しているサーバ装置（運用系サーバ装置）の状態情報と、動作モードが待機モードとして動作しているサーバ装置（待機系サーバ装置）の状態情報の組み合わせに対し、自ノードの動作モードを保持するのかまたは移行する（優先モードから待機モード、または待機モードから優先モードへ動作モードを切り替える）操作を対応づけたものである。
【００２７】
例えば、図３に示すように、サーバ装置ａ１０−１の動作モードの設定が稼働サーバノードとして動作する「優先モード」であり、サーバ装置ｂ１０−２は待機サーバノードとして動作する「待機モード」であって、かつ双方のノードステータスの状態情報が「正常」で動作しているので、図４に示す動作モード決定テーブル１０２ｃに基づいて選択される動作モードの設定操作は、「保持」となる。したがって、それぞれのサーバ装置は自ノードの動作モードの設定を維持する。
ここで、稼働サーバノードのサーバ装置ａ１０−１に故障などが発生してノードステータス管理テーブル１０２ａのサーバ装置ａ１０−１の状態情報が「軽故障」へ遷移すると、図４に示す動作モード決定テーブル１０２ｃに基づいて選択される動作モードの設定操作、すなわち、稼働サーバのノードステータスが「軽故障」かつ待機サーバのノードステータスが「正常」であることから選択される動作モードの設定操作は、「移行」となる。
したがって、それぞれのサーバ装置は、自ノードの動作モードの設定を動作モードから待機モードへまたは待機モードから動作モードへ切り替える。この例における各サーバ装置の動作モードの設定は、サーバ装置ａ１０−１は優先モードから待機モードへ、サーバ装置ｂ１０−２は待機モードから優先モードへ切り替わる。
【００２８】
＜サーバノードのノードステータス管理ならびに動作モード選択動作の説明＞
次に、サーバノードにおけるノードステータスの管理ならびに動作モードの選択動作について図５のフローチャートを参照して説明する。
【００２９】
図５に示すように、サーバノードのステータス管理部１０２の更新部１０２ｂは、自ノードの現時点における動作状態を確認し（Ｓ１１−ａ）、図３に示すノードステータス管理テーブル１０２ａの該当する「状態情報」に最新の自ノードのノードステータスの情報を更新して記憶する（Ｓ１２−ａ）。
次に、更新部１０２ｂは、最新の自ノードのノードステータスを他のサーバノードに対して送信する（Ｓ１３−ａ）。
【００３０】
一方、他のサーバノードから送信されたノードステータスを受信すると（Ｓ１１−ｂ）、更新部１０２ｂは、図３に示すノードステータス管理テーブル１０２ａの該当する「状態情報」に受信したノードステータスの情報を更新して記憶する（Ｓ１２−ｂ）。
【００３１】
続いてステータス管理部１０２の動作モード決定部１０２ｄは、ノードステータス管理テーブル１０２ａの「状態情報」の記述内容に変更があるか否かの判定を行う（Ｓ１４）。
ノードステータス管理テーブル１０２ａの「状態情報」の記述内容に変更があった場合（Ｓ１４で「YES」）、動作モード決定部１０２ｄは、そのノードステータス管理テーブル１０２ａを用いて動作モード決定テーブル１０２ｃから自ノードの動作モードを変更するか否かの判定を行う（Ｓ１５）。
自ノードの動作モードを変更する場合（Ｓ１５で「YES」）、動作モード決定部１０２ｄは、自ノードの動作モードを変更する（Ｓ１６）。
【００３２】
例えば、サーバ装置ａ１０−１の状態情報が「重故障」へ遷移した場合、各サーバノードのステータス管理部１０２で管理されているノードステータス管理テーブル１０２ａの記述内容は、サーバ装置ａ１０−１の「状態情報」が「正常」から「重故障」へ変更される。ノードステータス管理テーブル１０２ａの「状態情報」に変更が発生すると、各サーバノードの動作モード決定部１０２ｄは、更新されたノードステータス管理テーブル１０２ａに基づいて図４に示す動作モード決定テーブル１０２ｃから動作モードの設定操作を選択し、自ノードの動作モードの設定を変更するのか否かを判定する。
この例においては、サーバ装置ａ１０−１は状態情報が「重故障」で動作モード情報が「優先」、サーバ装置ｂ１０−２は状態情報が「正常」で動作モード情報が「待機」であるので、図４に示す動作モード決定テーブル１０２ｃに基づき選択される動作モードの設定操作は「移行」となる。したがって、各サーバノードの動作モード決定部１０２ｄは、自ノードの動作モードの設定を優先モードから待機モードへ、もしくは待機モードから優先モードへ変更する。
【００３３】
また、ノードステータス管理テーブル１０２ａの記述内容に変更がなかった場合（Ｓ１４で「NO」）や、ノードステータスに変更があっても自ノードの動作モードには変更がない場合（Ｓ１５で「NO」）、ステータス管理部１０２の動作モード決定部１０２ｄは、自ノードの動作モードの設定を維持する。
所定時間経過の後（Ｓ１７）、引き続き自ノードの動作状態の確認もしくは他サーバノードから送信されるノードステータスの受信を行う（Ｓ１１−ａまたはＳ１１−ｂ）。
【００３４】
＜各サーバノード間における動作モードの移行動作の説明＞
次に、上述したようなノードステータス管理テーブル１０２ａの管理およびサーバノードの動作モードの選択機能を使用することによって、同一機能を有するサーバ装置ａ１０−１とサーバ装置ｂ１０−２との間で実行される動作モードの移行動作について、図６に示すシーケンス図を参照して説明する。
図６に示すように、サーバ装置ａ１０−１は動作モードが「優先モード」で正常動作中であり、サーバ装置ｂ１０−２は動作モードが「待機モード」で正常動作中であって、これらのサーバノードによって冗長化構成が構築されている。
まず、サーバ装置ａ１０−１およびサーバ装置ｂ１０−２は、自ノードのノードステータスを相手サーバノード、すなわちサーバ装置ａ１０−１はサーバ装置ｂ１０−２へ、サーバ装置ｂ１０−２はサーバ装置ａ１０−１へ送信する（Ｓ１０１、Ｓ１０２）。
【００３５】
各サーバノードは、それぞれが受信したノードステータスに含まれる情報に基づいて、自ノードで管理しているノードステータス管理テーブル１０２ａに記述されている情報を更新する（Ｓ１０３）。更新されたノードステータス管理テーブル１０２ａに変更がない場合は、各サーバノードの動作モードの設定に変更はなく、自ノードの動作モードは現状維持となる（Ｓ１０４）。
【００３６】
所定時間が経過の後（Ｓ１０５）、各サーバノードは、自ノードの動作状態の確認を行い、自ノードで管理している自ノードのノードステータスを更新する（Ｓ１０６）。
このとき、図６に示すように、サーバ装置ａ１０−１に故障が発生したため、サーバ装置ａ１０−１の更新後のノードステータスの状態情報は「軽故障」もしくは「重故障」へ変更されている。
【００３７】
各サーバノードは自ノードで管理しているノードステータスの更新を完了すると、この更新後のノードステータスを他のサーバノードに対して送信する（Ｓ１０７、Ｓ１０８）。各サーバノードは、それぞれが受信したノードステータスに含まれる情報に基づいて、自ノードで管理しているノードステータス管理テーブル１０２ａに記述されている情報を更新する（Ｓ１０９）。このとき、サーバ装置ａ１０−１のノードステータスは変更箇所を有しているために、ノードステータス管理テーブル１０２ａについても変更が発生している。
【００３８】
各サーバノードは、ノードステータス管理テーブル１０２ａと動作モード決定テーブル１０２ｃとから動作モードの設定操作を選択して、自ノードの動作モードの設定を選択することにより（Ｓ１１０）、同一機能を有する各サーバノードの動作モードを切り替えて、再び冗長化構成を構築する。
【００３９】
また、本実施の形態にかかる通信システム１においては、同一の機能を有するサーバノードが２台以上の複数台の構成としても良く、上述したノードステータス管理テーブル１０２ａと動作モード決定テーブル１０２ｃとから冗長化構成を構築する。この場合のノードステータス管理テーブル１０２ａは、同一機能を有する複数のサーバノードの全てのノードステータスの情報を共有し、このノードステータス管理テーブル１０２ａを用いて動作モード決定テーブル１０２ｃから、サーバノードの動作モードを決定する。
【００４０】
ここで、複数台のサーバノードによる冗長化構成を構築する通信システムにおいて、サーバノードの動作モードの設定動作について説明する。
複数台のサーバノードによる冗長化構成を構築する場合、稼働サーバノードとして動作するものは一のサーバノードであって、他のサーバノードは全て待機サーバノードとして動作する。
稼働サーバノードに故障等による状態情報の遷移が発生した場合、それぞれのサーバノードは、ノードステータス管理テーブル１０２ａを用いて動作モード決定テーブル１０２ｃに基づいて自ノードの動作モードの設定を選択して、自ノードの動作モードを変更する。例えば、稼働サーバノードは待機サーバノードとして動作する待機モードへ、待機サーバノードのうち一つのサーバノードを稼働サーバノードとして動作する優先モードへ動作モードを切り替える。このとき、予め待機系サーバノードには優先順位が付されており、この優先順位に基づいて動作モードを待機モードから優先モードへの変更を実行するサーバノードを選択するとしても良い。
【００４１】
＜通信システムの各ノード間におけるメッセージデータの送受信動作について＞
次に、本実施の形態にかかる通信システムのクライアント装置１１からのサーバ装置（１０−１または１０−２のいずれか）に対するメッセージデータの送信動作について、図７に示すフローチャートを参照して説明する。
クライアント装置１１から該サーバ装置に対して処理要求を送信する場合、図７に示すように、クライアント装置１１のクライアントアプリケーション制御部２２０は各サーバ装置１０−１〜１０−２に対する処理要求を含んだメッセージデータを生成する（Ｓ２１）。
【００４２】
クライアントアプリケーション制御部２２０で生成されたメッセージデータを送信するために、クライアント装置１１の通信制御部１００は、自ノードの通信モードを仮想ノードＩＤに応じたデータ通信に設定する（Ｓ２２）。このとき、クライアント装置１１の通信モード選択部１０３によって設定される通信モードは、送信するメッセージデータがサーバノードに対する処理要求であるので、サーバ装置１０−１〜１０−２に対して一括してメッセージデータを送信することができる仮想ノードＩＤに応じたデータ通信を行う通信モードが設定される。
【００４３】
通信モードの設定が完了すると、クライアント装置１１の送受信制御部１０４は、サーバノードに対する処理要求を含んだメッセージデータを仮想ノードＩＤに対して送信する（Ｓ２３）。装置固有であるユニキャストアドレスに対してではなく、仮想ノードＩＤに対してメッセージデータを送信することによって、この仮想ノードＩＤで一つのグループに特定されているサーバ装置ａ１０−１とサーバ装置ｂ１０−２との双方に対してメッセージデータが同時に送信される。
このようなメッセージデータの送信は、例えば、マルチキャストに対応したルータ装置などの中継装置が、仮想ノードＩＤに対応したマルチキャストアドレスで特定される複数のノード、すなわち仮想ノードＩＤで一つのグループに特定されている複数のサーバノード対してメッセージデータを配信することによって実現することができる。
【００４４】
次に、本実施の形態にかかる通信システムのサーバノードとクライアントノードとの間で送受信されるメッセージデータの種別に応じた処理動作について説明する。
【００４５】
本実施の形態にかかる通信システムにおけるサーバ装置１０−１〜１０−２とクライアント装置１１の間で送受信されるメッセージデータの一例を図８に示す。図８に示すように、それぞれのメッセージには「要求」とその「要求」に対応した「応答」があり、また「応答」を必要としない「要求」メッセージも含まれている。本実施の形態にかかる通信システムにおける冗長化されたサーバノードは、自ノードの動作モードに応じてこのようなメッセージデータの送受信動作を実行する。
例えば、同一機能を有するサーバ装置ａ１０−１ならびにサーバ装置ｂ１０−２は、自ノードの動作モードが「優先モード」であるならば、図８に示すようなメッセージデータに対応した通常の送受信の処理動作を実行し、「待機モード」であるならば、メッセージデータの種別に応じた処理動作を適宜選択して実行する。
【００４６】
ここで、待機サーバノードにおけるメッセージデータ種別に応じた処理動作について図９に示す対応表を参照して説明する。図９は、待機サーバノードの受信処理動作の内容と送信処理動作の内容について、それぞれのメッセージ種別毎に示している。
例えば、本実施の形態にかかる通信システムのクライアント装置１１から「Write Request」のメッセージデータが仮想ノードＩＤを用いてマルチキャスト送信された場合、各サーバノードはどちらも「Write Request」のメッセージデータを受信する。このとき、稼働サーバノードとして動作しているサーバ装置ａ１０−１は、受信した「Write Request」に対応した受信処理を実行した後に、「Write Response」をクライアント装置１１に対して送信する。一方、待機サーバノードとして動作しているサーバ装置ｂ１０−２は、図９に示すように、サーバ装置ａ１０−１と同様に受信処理を実行した後、「Write Response」をクライアント装置１１に対して送信せずに待機状態となる。
また別途、サーバノード内のサーバアプリケーションによって「Write Request」であるメッセージデータを外部のノードに対して送信する要求が発生した場合、稼働サーバノードであるサーバ装置ａ１０−１は、送信先となる外部のノードに対してメッセージデータを送信する。一方、待機サーバノードであるサーバ装置ｂ１０−２は、図９に示すように、「Write Request」のメッセージデータを外部へ送信することはなく、自ノード内でサーバアプリケーションに対してダミーのレスポンスを通知することにより、サーバアプリケーションによる通信要求を完了させる。
【００４７】
上記のような動作モードに応じたメッセージデータの送受信処理動作について、図１０に示すシーケンス図を参照して説明する。
【００４８】
図１０に示すように、稼働サーバノードとして動作している（以下、「運用系サーバノード」という。）サーバ装置ａ１０−１と、待機サーバノードとして動作している（以下、「待機系サーバノード」という。）サーバ装置ｂ１０−２とに、ネットワークＡを介してクライアント装置１１から仮想ノードＩＤを用いて「要求」メッセージデータをマルチキャスト送信すると、サーバ装置ａ１０−１ならびにサーバ装置ｂ１０−２は、ともにこの「要求」メッセージデータを受信する（Ｓ２０１）。
【００４９】
クライアント装置１１から送信された「要求」メッセージデータを受信した各サーバノードは、この「要求」メッセージデータに応じた受信処理をそれぞれ実行する（Ｓ２０２）。この受信処理が完了すると、運用系サーバノードのサーバ装置ａ１０−１は、クライアント装置１１に対して受信した「要求」メッセージデータに応じた「応答」メッセージデータを送信し（Ｓ２０３）、クライアント装置１１からの通信を完了させる。一方、待機系サーバノードであるサーバ装置ｂ１０−２は、受信したメッセージデータに応じた受信処理が完了すると、クライアント装置１１へ「応答」メッセージデータを送信せずに待機となる（Ｓ２０４）。
【００５０】
ここで、運用系サーバノードに故障などが発生したために、各サーバノードの動作モードに変更が発生した場合（Ｓ２０５）、サーバ装置ｂ１０−２が運用系サーバノードへ、サーバ装置ａ１０−１が待機系サーバノードへ切り替わる。
その後、クライアント装置１１から仮想ノードＩＤを用いたマルチキャスト送信された「要求」メッセージデータを各サーバノードはともに受信し（Ｓ２０６）、それぞれが受信した「要求」メッセージデータに応じた受信処理を実行する（Ｓ２０７）。
【００５１】
サーバ装置ａ１０−１は、待機系サーバノードとして動作しているので、この「要求」メッセージデータに応じた「応答」メッセージデータをクライアント装置１１に対して送信せずに待機となり（Ｓ２０８）、一方、サーバ装置ｂ１０−２は運用系サーバノードへ移行しているので、クライアント装置１１に対して「応答」メッセージデータを送信する（Ｓ２０９）。サーバノードに対して「要求」メッセージデータを送信したクライアント装置１１は、サーバノードからの「応答」メッセージデータを受信すると、この通信を完了する。
【００５２】
このように、クライアントノードが送信するメッセージデータの送信先を仮想ノードＩＤを用いたマルチキャストとすることにより、その仮想ノードＩＤによってグルーピングされている全てのノードがそのメッセージデータを受信することができるために、クライアントノードがメッセージデータの送信先となるサーバノードを特定する必要はない。
一方、冗長化された同一機能を有する複数のサーバノードは、自ノードのノードステータスと同一のグループに属する他の同一機能を有するサーバノードのノードステータスとを全て共有したノードステータス管理テーブル１０２ａと、動作モード決定テーブル１０２ｃとに基づいて、自ノードの動作モードの設定を優先モードとするか待機モードとするかを決定することができ、これにより同一機能を有する複数のサーバノードによる冗長化構成を構築することができる。
【００５３】
したがって、サーバノードに対する処理要求であるメッセージデータを送信するクライアントノードは、このメッセージデータの送信先であるサーバノードが冗長化構成となっているのか否かを判別する必要がなく、送信先ノードが有する仮想ノードＩＤを用いてマルチキャスト送信することにより冗長化構成をなしているサーバノードに対してメッセージデータを正常に送信することができる。
このことから、同一の機能を有する複数のサーバノードに共通して実装されているサーバ機能と、冗長化構成を構築する自ノードの動作モードを決定する処理機能とを切り離すことが可能となり、冗長化構成を構築する処理機能の実装が容易となる。
【００５４】
［第２の実施の形態］
次に、本発明の第２の実施の形態について図１１を参照して説明する。
本実施の形態にかかる通信システムは、ネットワークに接続された複数のノードから構成される通信システムであって、同一の機能と構成とを有するサーバノードとして動作する任意のノードと、同一の機能と構成とを有するクライアントノードとして動作する任意のノードとから構成されており、これら任意のノードのうち複数のノードが冗長化構成をなし、これらの任意のサーバノードとクライアントノードとがネットワークを介してメッセージデータの送受信を行うものである。
なお、本実施の形態にかかる通信システムにかかる構成要素について、第１の実施の形態において説明した構成要素と同一の構成および機能を有するものには、同一の符号を付し、詳細な説明は省略する。
また、本実施の形態にかかる通信システム２の各ノードは、ＣＰＵ（中央演算装置）やメモリ、インターフェースからなるコンピュータにコンピュータプログラムをインストールすることによって実現され、上述した各ノードの各種機能は、上記コンピュータの各種ハードウェア資源と上記コンピュータプログラム（ソフトウェア）とが協働して実現される。
【００５５】
図１１に示すように、本実施の形態にかかる通信システム２は、ネットワークＡに接続されたサーバ装置２０−１〜２０−ｎとクライアント装置２１−１〜２１−ｍとから構成されている。
サーバ装置２０−１〜２０−ｎならびにクライアント装置２１−１〜２１−ｍは（以下、「各ノード」という。）、ネットワークＡを介してメッセージデータの送受信をはじめとするデータ通信の制御を行う通信制御部２００と、ネットワークＩ／Ｆ１１０と、サーバアプリケーション制御部１２０もしくはクライアントアプリケーション制御部１３０とから構成されている。
【００５６】
さらに、各ノードに共通の通信制御部２００は、仮想ノードＩＤ管理部２０１と、ステータス管理部１０２と、通信モード管理部１０３と、送受信制御部１０４とから構成されている。
仮想ノードＩＤ管理部２０１は、本実施の形態にかかる通信システム２を構成するサーバ装置２０−１〜２０−ｎとクライアント装置２１−１〜２１−ｍが有する固有のユニキャストアドレスを仮想ノードＩＤに関連付けて記憶する仮想ノードＩＤテーブルを管理する。
【００５７】
ここで、仮想ノードＩＤ管理部２０１で管理されている仮想ノードＩＤテーブルの一例を図１２に示す。
仮想ノードＩＤテーブルは、仮想ノードＩＤに対応するノードを関連付けて記述されているテーブルである。また、仮想ノードＩＤ管理部２０１は、この仮想ノードＩＤテーブルをノード毎に異なる条件で記憶することができることとしても良い。
例えば、図１２に示すように、マルチキャストアドレスが「□□□□」である仮想ノードＩＤ「Ａ」は、クライアント装置ａとクライアント装置ｍ、すなわち通信システム２を構成するクライアントノード全てを同一グループとして特定するものである。
さらに、この仮想ノードＩＤ「Ａ」は、サーバ装置ａ２０−１の仮想ノードＩＤ管理部２０１で管理されている仮想ノードＩＤテーブルに記述されて管理されているが、サーバ装置ｂ２０−２のそれには仮想ノードＩＤ「Ａ」記述はなく、他の仮想ノードＩＤ「Ｘ」が記述されて管理されているといったこととしても良い。
【００５８】
上記のような仮想ノードＩＤテーブルを用いてメッセージデータの送受信を行う場合、例えば、サーバ装置ａ２０−１から通信システム２の構成要素であるクライアントノード全てに対して一斉にメッセージデータを送信する場合には、サーバ装置ａ２０−１はサーバ装置ａ２０−１の仮想ノードＩＤ管理部２０１で管理されている仮想ノードＩＤテーブルの中から、クライアントノード全てを一つのグループとして特定する仮想ノードＩＤ「Ａ」に対応したマルチキャストアドレス「□□□□」に対してメッセージデータを送信することにより実現する。
【００５９】
また、複数のサーバノード、例えば、サーバ装置ａ〜サーバ装置ｎが、冗長化構成を構築している場合、クライアント装置ｍ２１−ｍは、仮想ノードＩＤ管理部２０１で管理されている仮想ノードＩＤテーブルの中から、サーバ装置ａからサーバ装置ｎを一つのグループとして特定する仮想ノードＩＤ「Ｂ」に対応したマルチキャストアドレス「△△△△」に対してメッセージデータを送信することによって、サーバノードが任意の複数台による冗長化構成であっても、冗長化構成をなしている全てのサーバノードに対するメッセージデータの送信を実現する。
【００６０】
このように、仮想ノードＩＤに対応するノードを任意に組み合わせるとともに、ノード毎に異なる条件で仮想ノードＩＤテーブルを管理することによって、通信システム内における通信用途に応じて柔軟なデータの送受信を実行することができる。すなわち、データ通信の状況確認や冗長化構成を構築しているノードの入れ替えといった通信システムのメンテナンス作業を容易にかつ柔軟に実行することが可能となる。
【産業上の利用可能性】
【００６１】
製品生産における製造効率化を実現するために生産ラインの制御管理を行う通信システムや、プラント設備のような広い規模で連続稼働している設備の動作監視や保守管理を行う通信システムなどの安定的な連続稼働を要件とする通信システムに利用することが可能である。また、複雑で特殊な機能や構成を必要とせず容易に冗長化構成を実現できることから、安価な通信システムにおいても利用することが可能である。
【符号の説明】
【００６２】
１，２…通信システム、１０（１０−１〜１０−ｎ），２０（２０−１〜２０−ｎ）…サーバ装置、１１，２１（２１−１〜２１−ｍ）…クライアント装置、１００，２００…通信制御部、１０１，２０１…仮想ノードＩＤ管理部、１０２…ステータス管理部、１０２ａ…ノードステータス管理テーブル、１０２ｂ…更新部、１０２ｃ…動作モード決定部、１０２ｄ…動作モード決定テーブル、１０３…通信モード管理部、１０４…送受信制御部、１１０…ネットワークＩ／Ｆ、１２０…サーバアプリケーション制御部、１３０…クライアントアプリケーション制御部、Ａ…ネットワーク。
【図１】
2010271840.tif 000003
【図２】
2010271840.tif 000004
【図３】
2010271840.tif 000005
【図４】
2010271840.tif 000006
【図５】
2010271840.tif 000007
【図６】
2010271840.tif 000008
【図７】
2010271840.tif 000009
【図８】
2010271840.tif 000010
【図９】
2010271840.tif 000011
【図１０】
2010271840.tif 000012
【図１１】
2010271840.tif 000013
【図１２】
2010271840.tif 000014