JP2016163084A - 通信装置、制御装置および通信システム - Google Patents
通信装置、制御装置および通信システム Download PDFInfo
- Publication number
- JP2016163084A JP2016163084A JP2015037633A JP2015037633A JP2016163084A JP 2016163084 A JP2016163084 A JP 2016163084A JP 2015037633 A JP2015037633 A JP 2015037633A JP 2015037633 A JP2015037633 A JP 2015037633A JP 2016163084 A JP2016163084 A JP 2016163084A
- Authority
- JP
- Japan
- Prior art keywords
- command
- response
- function
- transfer
- unit
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】転送部と制御部からなるネットワーク装置において、死活監視では稼働中と判断された転送部からの命令の応答がない場合に、制御部や装置全体の障害とさせないことを課題とする。【解決手段】データを転送する複数の転送部と、複数の転送部それぞれに所定の機能を実行させる命令である機能命令を発行する機能部と機能部からの機能命令を複数の転送部それぞれに配布し、配布した機能命令に対する応答を複数の転送部それぞれから受信する命令配布制御部とを有する制御部と、を備え、命令配布制御部は、複数の転送部それぞれに配布した機能命令に対する応答を受信せずにタイムアウトした場合に、機能命令に対する応答があった旨を機能部へ送信する。【選択図】 図2
Description
本発明は通信装置、制御装置および通信システムに関する。
本技術分野の背景技術として、例えば、特開2014−158093号公報(特許文献1)がある。この公報には、フレームを転送するフレーム処理部が1つ以上存在し,それらフレーム処理部を制御する制御部からなるフレーム転送装置において、制御部に存在する統計制御プログラムが個々のフレーム処理部それぞれに対して面切替指示などの制御信号を送信し、フレーム処理部は、受信した指示に従って動作し、動作結果を制御部に送信することが開示されている。
特許文献1が開示するような制御部と転送部(特許文献1ではフレーム処理部に相当)が分離されている従来のネットワーク装置では、一般的に、制御部に存在する各機能部が、転送部に対して転送部の動作を制御する指示(命令)を発行する。また、各機能部は、命令に対する応答の時間に関する閾値を管理し、転送部から応答がなく、タイムアウトを検知すると、転送部の故障(障害)と判断する。
各機能部が、個々の転送部それぞれに対して命令を発行すると、各機能部での制御が煩雑となるため、制御部内に命令の配布を制御する命令配布制御モジュールを配置し、命令配布制御モジュールが、各機能部が発行した命令を各転送部へ配布する。また、命令配布制御モジュールは、全ての転送部から命令に対する応答を受信すると、全ての転送部からの応答をまとめた上で1つの応答として各機能部に対して送信する。
このように、従来のネットワーク装置では、命令配布制御モジュールを複数の転送部と各機能部との間に設け、複数の転送部に対する命令配布と各機能部への応答を命令配布制御モジュールが担うことで、各機能部での複数の転送部の管理負担を低減している。つまり、複数の転送部からの応答を命令配布制御モジュールが制御し、複数の転送部からの応答を転送部全体の1つの応答として各機能部に送信することで、各機能部は、命令を配布する転送部の個数を意識することなく、複数の転送部からの応答を転送部の個数分受信することもなくなり、各機能部での命令発行と応答の制御を簡易にしている。
また、制御部は、死活監視に関する命令を命令配布制御モジュールを介して転送部に発行して転送部の死活監視を行い、死活監視に関する命令に応答しない転送部を故障と判定して転送部を停止させる停止処理を実行する。
このような構成において、機能部は、命令を発行するとこの命令に対する応答を待ち、命令配布制御モジュールは、各転送部へ命令を配布し、各転送部からの応答を待つ。死活監視で稼働中と判定された転送部から応答がない場合、命令配布制御モジュールは、この転送部からの応答を待ち続けることになり、既に受信した他の転送部からの応答も各機能部へ送信できない状態が発生する。
この場合、各機能部では、命令配布制御モジュールからの応答を待ち続けた結果、応答のタイムアウトを検知すると、転送部または命令配布制御モジュールなどの制御部に故障が発生していると判定し故障部位を停止させる。転送部を停止させる場合、各機能部は、各転送部を意識していないため、応答待ちの転送部のみを停止させることはできず、既に応答を受信した転送部も含めて、全ての転送部を故障と判定して停止させることになる。また、各機能部は、転送部または命令配布制御モジュールなどの制御部に故障が発生していると判定した場合に、制御部、または、装置全体を再起動するなどによって復旧を試みる。再起動中の制御部は、命令の配布制御ができなくなるため、転送部を含めて停止させることとなる。いずれの場合にも命令に対して応答した転送部の制御ができなくなるという課題がある。
本発明は上述の課題を解決するために、代表的な本発明の通信装置の1つは、ネットワークを介してデータを転送する複数の転送部と、転送部に所定の機能を実行させる命令である機能命令を発行する機能部と、機能部からの機能命令を複数の転送部それぞれに配布し、機能命令に対する応答を監視する命令配布制御部と、を有する制御部と、を備える。
制御部の命令配布制御部は、機能命令に対する応答の監視にて、複数の転送部のうち一部の転送部から機能命令に対する応答を受信し、残りの転送部から機能命令に対する応答を受信せずにタイムアウトした場合に、転送部からの機能命令に対する応答があった旨を機能部へ送信する。
本発明によれば、制御部が配布した命令に対して応答した転送部の運用を継続する。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
以下実施の形態について、実施例を用いて図面を参照しながら説明する。なお、同じ構成要素は同じ参照番号を振り、説明は繰り返さない。
図1は、実施例におけるネットワーク装置1の構成図の例である。
ネットワーク装置1は、外部から受信したデータ(パケットやフレーム)を他の装置に転送したり、中継したり、終端する通信装置である。ネットワーク装置1は、ネットワーク装置1全体の制御処理を行う1つ以上の制御部2と、データの転送処理を行う1つ以上の転送部3を含み、各部位は、図示しないポートを介して、バス、またはネットワークにより接続され、相互に通信する。なお、以下の説明で、転送部3は複数存在するが、個々を区別しない場合は、凡例で示した符号3により総称する。一方、個々を区別する場合には、たとえば、転送部3−1というように、一意に特定できる符号を用いる。
ネットワーク装置1は、外部から受信したデータ(パケットやフレーム)を他の装置に転送したり、中継したり、終端する通信装置である。ネットワーク装置1は、ネットワーク装置1全体の制御処理を行う1つ以上の制御部2と、データの転送処理を行う1つ以上の転送部3を含み、各部位は、図示しないポートを介して、バス、またはネットワークにより接続され、相互に通信する。なお、以下の説明で、転送部3は複数存在するが、個々を区別しない場合は、凡例で示した符号3により総称する。一方、個々を区別する場合には、たとえば、転送部3−1というように、一意に特定できる符号を用いる。
制御部2は、1つ以上のプロセッサ20を含み、プロセッサ20がメモリ24に格納されたプログラムをロードして実行する(処理する)ことによって、機能部21、転送部制御モジュール22、命令配布制御モジュール23、死活監視モジュール25などを実現する。メモリ24は、命令配布制御モジュール23が制御し、更新する機能命令管理テーブル26を格納する。また、メモリ24は、各種プログラムと、各種プログラムが利用する他の各種テーブルを格納する。
機能部21は、ネットワーク装置1で動作する各種の機能モジュールである。機能部21は、ユーザ(保守者)からの設定による処理や、他の機能部21からの通知による処理、外部から受信したパケットのプロトコルに従う処理など、機能部21で処理した結果を命令として命令配布制御モジュール23を介して転送部3へ通知する(発行する)命令発行処理を行う。また、機能部21は、発行した命令に対する応答を命令配布制御モジュール23を介して受信すると、転送部3での命令が実行されたと判定して次の命令発行処理を行う。
また、機能部21は、命令を発行した時刻と命令に対する応答の時間に関する閾値(タイムアウト時間)を管理しており、現在時刻および命令を発行した時刻と応答の時間に関する閾値とを比較して、応答のタイムアウトを確認する。機能部21は、命令配布制御モジュール23から応答を受信しない場合、転送部3の故障と判定して、転送部制御モジュール22へ転送部3の停止を指示する。
機能部21の例としては、物理ポート制御機能、リンクアグリゲーション制御機能、レイヤ2制御機能、レイヤ3制御機能などが挙げられる。機能部21が通知する命令は、機能部21で処理した結果であり、転送部3の動作を指示するもの(転送部3に所定の機能を実行させるもの)である。
機能部21の例としては、物理ポート制御機能、リンクアグリゲーション制御機能、レイヤ2制御機能、レイヤ3制御機能などが挙げられる。機能部21が通知する命令は、機能部21で処理した結果であり、転送部3の動作を指示するもの(転送部3に所定の機能を実行させるもの)である。
機能部21が通知する命令には、命令の種類を示す情報である命令識別子と命令を受信した転送部3での動作内容を示す命令内容が含まれる。命令の種類とは、ポートアップやポートダウン、リンクアグリゲーション、経路追加など、機能部21が指示する命令を識別する情報である。例えば、機能部21−1が通知する命令に、命令識別子として「1」、命令内容として「全ポートをリンクアップ」が含まれる場合、この命令は、「全ポートをリンクアップさせることを指示する」命令である。なお、機能部21は、メモリ24に予め格納される、命令識別子「1」が「ポートアップ」を意味するなどのように命令識別子とその命令の種類とが対応する情報を管理する。
また、機能部21は、通知する命令の通知順序を制御するシーケンス番号を管理してもよい。これにより、同じ命令識別子「1」の命令であっても、何番目に通知した命令かを識別することができる。また、命令識別子を「11」のように管理して、命令の種類を示す情報とシーケンス番号を示す情報とを1つの命令識別子で管理してもよい。なお、命令識別子の値は例である。また、機能命令には、発行した機能命令に対する応答を受信してから次の機能命令の発行が可能となる機能命令や、応答の受信を待つことなく次々に機能命令の発行が可能である機能命令などがある。また、機能部を命令発行部と表現してもよい。
転送部制御モジュール22は、転送部3の動作を制御する機能を有し、機能部21や死活監視モジュール25からの指示により、転送部3の障害などを検出した際に当該転送部3を停止させる機能を有する。
死活監視モジュール25は、各転送部3に対する死活監視を実施する機能を有し、死活監視を行う命令を命令配布モジュール23を介して転送部3に通知(発行)する機能を有する。死活監視モジュール25は、発行した命令に対する応答を命令配布制御モジュール23を介して受信すると、命令の通知先の転送部3が稼動していると判定する。
死活監視モジュール25は、各転送部3に対する死活監視を実施する機能を有し、死活監視を行う命令を命令配布モジュール23を介して転送部3に通知(発行)する機能を有する。死活監視モジュール25は、発行した命令に対する応答を命令配布制御モジュール23を介して受信すると、命令の通知先の転送部3が稼動していると判定する。
また、死活監視モジュール25は、発行した命令とその応答のタイムアウトを確認する機能を有し、命令配布制御モジュール23から応答を受信せず、タイムアウトした場合、命令の通知先の転送部3が故障などで稼動していないと判定して、転送部制御モジュール22へ転送部3の停止を指示する。死活監視モジュール25が通知する命令には、命令識別子と命令の通知先の転送部3を特定する情報(転送部番号)である命令通知先が含まれる。
例えば、死活監視モジュール25が通知する命令に、命令識別子として「0」、命令通知先として「1(転送部3−1を示す情報)」が含まれる場合、この命令は、「死活監視モジュール25が転送部3−1に死活監視を行う」命令である。なお、死活監視モジュール25には、命令識別子「0」が「死活監視」を意味するなどのように、命令識別子とその命令の種類とが対応する情報が予め格納されている。なお、命令識別子の値は例である。
以下では、機能部21が通知する命令を「機能命令」、死活監視モジュール25が通知する命令(死活監視を行う命令)を「死活監視命令」と呼び、「機能命令」と「死活監視命令」を区別しない場合は、単に「命令」と表記する。
以下では、機能部21が通知する命令を「機能命令」、死活監視モジュール25が通知する命令(死活監視を行う命令)を「死活監視命令」と呼び、「機能命令」と「死活監視命令」を区別しない場合は、単に「命令」と表記する。
命令配布制御モジュール23は、機能部21や死活監視モジュール25から通知される命令を管理し、転送部3へと命令を配布(送信、発行)する機能を有する。命令配布制御モジュール23を命令発行制御モジュール23とも呼ぶ。命令配布制御モジュール25は、メモリ24に予め格納される、命令識別子と命令の種類とが対応する情報を管理する。この情報によって、命令配布制御モジュール25は、命令と命令の送信元(機能部21または死活監視モジュール25)とを対応付ける。また、命令配布制御モジュール25は、メモリ24に予め格納される、命令識別子および命令内容と通知先とが対応する情報(機能命令通知先情報)を管理する。
また、命令配布制御モジュール25は、受信した命令の命令識別子と命令内容または命令通知先とを解析して命令の通知先の転送部3を決定し、決定した転送部3に命令を配布する。つまり、命令配布制御モジュール25は、受信した命令を解析し、命令に含まれる命令識別子が機能命令を示す場合、機能命令に含まれる命令内容から機能命令の通知先の転送部3を決定し、命令識別子が死活監視命令を示す場合、死活監視命令に含まれる命令通知先から死活監視命令の通知先の転送部3を決定し、全転送部3宛てまたは一部の転送部3宛てに命令を配布する。
命令配布制御モジュール25が転送部3に送信する命令には、機能部21または死活監視モジュール25から受信した命令に、命令の通知先の転送部3を特定する情報(転送部番号)が含まれる。また、命令配布制御モジュール25は、転送部3へ配布した機能命令とその応答のタイムアウトを確認する機能を有する。命令配布制御モジュール25は、一部の転送部3からの応答を受信せず、タイムアウトした場合、この転送部3からの応答があったものとして、機能部21に応答を送信する。
転送部3は、1つ以上のプロセッサと、1つ以上の転送エンジン11と、1つ以上のポート12を含む。転送部3が2つ以上である場合、転送部3間はバス、またはネットワークにより接続されている。ネットワーク装置1は、ポート12を介して、外部のネットワークや他の通信装置に接続される。
転送エンジン11は、任意のポート12から受信したデータの宛先情報の検索処理をおこない、制御部2への転送や、同一転送部3上の他のポート12への転送や、別の転送部3の任意のポート12に転送する。
転送エンジン11は、任意のポート12から受信したデータの宛先情報の検索処理をおこない、制御部2への転送や、同一転送部3上の他のポート12への転送や、別の転送部3の任意のポート12に転送する。
転送部3には、命令識別子と命令の種類とが対応する情報が予め格納されており、転送部3は、制御部2から命令を受信すると、受信した命令を解析し、命令に含まれる命令識別子から機能命令か死活監視命令か特定する。機能命令の場合、機能命令に含まれる命令内容に従って動作し、動作後、制御部2に応答を送信する。死活監視命令の場合、制御部2に応答を送信する。
次に、制御部2と転送部3間の命令の送受信について説明する。制御部2の命令配布制御モジュール23は、機能部21から機能命令を受信すると、機能命令管理テーブル26に受信した機能命令に関する情報を格納し、決定した機能命令を送信する対象の転送部3に機能命令を送信する。また、命令配布制御モジュール23は、死活監視モジュール25から死活監視命令を受信すると、死活監視命令に含まれる命令通知先の転送部3に死活監視命令を送信する。
転送部3は受信した命令に従って動作し、命令に対する応答を制御部2に送信する。機能命令に対する応答には、受信した命令の命令識別子と応答を送信した転送部3を特定する情報(転送部番号)と命令の実行結果となどが含まれ、死活監視命令に対する応答には、受信した命令の命令識別子と応答を送信した転送部3を特定する情報(転送部番号)となどが含まれる。
制御部2の命令配布制御モジュール23は、機能命令を送信した全ての転送部3から機能命令に対する応答を受信すると、この応答に対応する機能命令管理テーブル26に格納した機能命令に関する情報を削除し、機能部21に応答を送信する。また、命令配布制御モジュール23は、機能命令を送信した全ての転送部3のうち一部の転送部3から応答を受信し、残りの転送部3からの応答がタイムアウトした場合、機能命令管理テーブル26に格納した機能命令に関する情報のうち、応答がタイムアウトした転送部3に関する情報を削除し、機能部21に応答を送信する。
また、命令配布制御モジュール23は、死活監視命令を送信した転送部3から死活監視命令に対する応答を受信すると、死活監視モジュール25に応答を送信する。
また、命令配布制御モジュール23は、死活監視命令を送信した転送部3から死活監視命令に対する応答を受信すると、死活監視モジュール25に応答を送信する。
ここで、従来のネットワーク装置での課題を詳細に説明する。従来のネットワーク装置では、機能部は、命令配布制御モジュールを介して各転送部へ機能命令を発行すると、この機能命令に対する応答を待つため、死活監視にて稼働中と判定された転送部からの応答がない場合、機能部でのタイムアウト検出まで機能部は転送部からの応答を待ち続けることになり、この機能部は新たな機能命令を発行できない機能部の動作が停止する状態が発生する可能性がある。
また、機能部でのタイムアウトを検出した場合、機能部は、転送部が正常に稼働していないと判定して、命令配布制御モジュールに対して機能命令に対する応答を送信した正常に稼働している転送部も含めて停止させる処理を実行して、正常な転送部の制御ができなくなってしまう可能性がある。
このように、従来のネットワーク装置では、機能部の動作が停止し、正常な転送部の制御ができなくなる結果、制御部やネットワーク装置全体の故障となってしまい、制御部やネットワーク装置全体が停止する恐れがある。
このように、従来のネットワーク装置では、機能部の動作が停止し、正常な転送部の制御ができなくなる結果、制御部やネットワーク装置全体の故障となってしまい、制御部やネットワーク装置全体が停止する恐れがある。
また、機能命令に対する応答のタイムアウト検出を待つ間に、制御部が配布可能な有限な命令数の上限に達すると、制御部は、新規の機能命令を発行できなくなり、機能部の動作が停止し、制御部で障害が発生し、制御部やネットワーク装置全体が停止する恐れがある。
図2は、制御部20上で動作するソフトウェア構成を示す構成図の例である。制御部20上で動作するソフトウェアは1つ以上の機能部21、転送部制御モジュール22、命令配布制御モジュール23、死活監視モジュール25から構成される。また、制御部20のメモリ24は、転送部制御モジュール22、命令配布制御モジュール23、死活監視モジュール25が利用するテーブルとして、転送部状態管理テーブル27、閾値管理テーブル29を格納する。また、メモリ24は、命令配布制御モジュール23が利用するテーブルとして、機能命令管理テーブル26を格納し、死活監視モジュール25が利用するテーブルとして、死活監視管理テーブル28を格納する。
機能命令管理テーブル26は、命令配布制御モジュール23が転送部3に対して送信した機能命令に関する情報を格納する。転送部状態管理テーブル27は、転送部3の運用状態に関する情報を格納する。死活監視管理テーブル28は、死活監視モジュール25が実行する死活監視に関する情報を格納する。閾値管理テーブル29は、命令を送信してから命令に対する応答を受信するまでの時間に対する閾値(タイムアウト時間)に関する情報を格納する。
転送部制御モジュール22は、転送部状態管理テーブル27を参照し更新して、転送部3の運用状態を管理する。命令配布制御モジュール23は、機能部21から機能命令を受信すると、機能命令管理テーブル26を参照し更新して、命令配布制御モジュール23が転送部3に対して送信した機能命令を管理する。死活監視モジュール25は、転送部3から命令配布制御モジュール23を介して死活監視命令に対する応答を受信すると、死活監視管理テーブル28を参照し更新して、転送部3から受信した死活監視命令に対する応答の受信時刻を管理する。命令配布制御モジュール23と死活監視モジュール25は、閾値管理テーブル29を参照して、命令のタイムアウトを確認する。
図3A、図3B、図3Cは機能命令管理テーブル26の構成例である。機能命令管理テーブル26は、命令配布制御モジュール23により管理され、更新される。機能命令管理テーブル26は有限な命令数分のエントリ(テーブルの行成分)からなり、要素としてエントリ状態261と、命令識別子262と、通知状態265とを持つ。
エントリ状態261は、エントリの使用状態を示す情報であり、「未使用」「使用中」のどちらかの状態を持つ。エントリ状態261以外の要素はエントリ状態261が「使用中」の場合に有効となる。つまり、エントリ状態261はエントリが有効か無効かを示す。命令識別子262は、機能命令の種類を示す情報である。命令識別子262に機能部21が指示する機能命令を識別する情報を格納することで、機能命令と機能命令を処理する転送部3を対応付けられるような命令識別子体系とすることができる。
通知状態265は、転送部3の機能命令に対する応答状況を示す情報である。通知状態265は、接続する転送部3を識別する情報である転送部番号266ごとに状態267と発行時刻268を持つ。図3の例では、転送部3−1の通知状態265が転送部番号266−1に、転送部3−2の通知状態265が転送部番号266−2に格納される。
状態267は、転送部3の命令に対する応答状態を示す情報であり、発行時刻268は、機能命令を転送部3へ発行した(送信した、配布した)時刻を示す情報である。発行時刻は、配布時刻とも呼ぶ。状態267は、初期値「-」、「応答待ち」、「応答あり」のいずれかの状態を持つ。発行時刻268は、状態267が「応答待ち」の場合に有効となり、ネットワーク装置1内の時刻管理モジュール(不図示)が管理する時刻が格納される。
例えば、エントリ260は、命令識別子が「1」(命令識別子262)の機能命令が「転送部3−1」と「転送部3−2」に対して「10時20分01秒」(発行時刻268−1,268−2)に発行され、「転送部3−1」と「転送部3−2」ともに機能命令に対する応答状態が「応答待ち」(状態267−1,267−2)であることを示す。
図3A、図3B、図3Cは、命令配布制御モジュール23による更新前後の状態遷移を示す。なお、発行時刻268は、転送部3毎に管理せず、転送部3としてまとめて管理してもよい。
図3A、図3B、図3Cは、命令配布制御モジュール23による更新前後の状態遷移を示す。なお、発行時刻268は、転送部3毎に管理せず、転送部3としてまとめて管理してもよい。
図4A、図4Bは、転送部状態管理テーブル27の構成例である。転送部状態管理テーブル27は、転送部制御モジュール22により管理され、更新される。転送部状態管理テーブル27は、ネットワーク装置1に搭載される転送部3の数分のエントリからなり、要素として転送部番号271、運用状態272を持つ。転送部番号271は、転送部3を特定する情報である。図4の例では、転送部番号271「1」は、転送部3−1を特定し、転送部番号271「2」は、転送部3−2を特定する。運用状態272は、転送部3の現在の状態を示す情報であり、「運用中」と「停止中」のいずれかの状態を持つ。
図4A、図4Bは、転送部制御モジュール22による更新前後の状態遷移を示す。
図4A、図4Bは、転送部制御モジュール22による更新前後の状態遷移を示す。
図5A、図5B、図5Cは、死活監視管理テーブル28の構成例である。死活監視管理テーブル28は、死活監視モジュール25により管理、更新される。死活監視管理テーブル28は、ネットワーク装置1に搭載される転送部3の数分のエントリからなり、要素として転送部番号281、死活監視命令応答受信時刻282を持つ。
転送部番号281は、転送部3を特定する情報である。図4の転送部番号271と同様である。死活監視命令応答受信時刻282は、死活監視命令を送信した転送部3から死活監視命令に対する応答を受信した時刻を示す情報である。
図5A、図5B、図5Cは、死活監視モジュール25による更新前後の状態遷移を示す。
図5A、図5B、図5Cは、死活監視モジュール25による更新前後の状態遷移を示す。
図6は、閾値管理テーブル29の構成例である。閾値管理テーブル29は、命令に対する応答の時間に関する閾値(タイムアウト時間)を格納する。閾値管理テーブル29は、命令配布制御モジュール23と死活監視モジュール25により参照される。閾値管理テーブル29は、要素として機能命令タイムアウト時間291と死活監視タイムアウト時間292を持つ。機能命令タイムアウト時間291は、命令配布制御モジュール23が機能命令を転送部3に送信してから、機能命令に対する応答を受信するまでの時間に対する閾値(タイムアウト時間)を示す情報であり、死活監視タイムアウト時間292は、死活監視モジュール25が死活監視命令を転送部3に送信してから、死活監視命令に対する応答を受信するまでの時間に対する閾値(タイムアウト時間)を示す情報である。
本テーブル29の各値は、ネットワーク装置1内に固定的に保持される。あるいは、ユーザ(保守者)によるコンフィグレーション入力により設定される。なお、機能命令タイムアウト時間291の値は、機能部21が管理する機能部21の閾値の値よりも小さい値であることが望ましい。また、死活監視タイムアウト時間292の値は、機能命令タイムアウト時間291の値よりも小さい値であることが望ましい。
制御部2から転送部3へ命令を送信する際の動作を説明する。
機能部21は、ユーザ(保守者)からの設定や、他の機能部21からの通知、外部からのパケット受信などをトリガに命令発行処理を実行する。具体的には、機能部21は、命令発行処理を開始すると、ユーザからの設定などにより処理した結果に対応する命令識別子と命令内容を含む機能命令を命令配布制御モジュールに発行する。
機能部21は、ユーザ(保守者)からの設定や、他の機能部21からの通知、外部からのパケット受信などをトリガに命令発行処理を実行する。具体的には、機能部21は、命令発行処理を開始すると、ユーザからの設定などにより処理した結果に対応する命令識別子と命令内容を含む機能命令を命令配布制御モジュールに発行する。
死活監視モジュール25は、図7に示す死活監視命令の発行処理を実行する。
図7は、死活監視モジュール25が実行する死活監視命令を発行する際の処理を示すフローチャートの例である(S90)。本処理(S90)は、繰り返し、例えば一定の時間ごとに周期的に実行される。本実施例では、T1秒ごとに実行されるものとする。
図7は、死活監視モジュール25が実行する死活監視命令を発行する際の処理を示すフローチャートの例である(S90)。本処理(S90)は、繰り返し、例えば一定の時間ごとに周期的に実行される。本実施例では、T1秒ごとに実行されるものとする。
死活監視モジュール25は、転送部状態管理テーブル27の転送部番号271で示されるエントリ数分、以下の繰り返し処理をおこなう(S91〜S95)。図4の例では、転送部番号271が「1」のエントリについて繰り返し処理(S91〜S95)を行い、次に転送部番号271が「2」のエントリについて繰り返し処理(S91〜S95)を行う。
最初に、死活監視命令が発行可能かを確認するために、死活監視モジュール25は、転送部状態管理テーブル27の転送部番号271に該当する運用状態272を取得する(S92)。次に死活監視モジュール25は、取得した運用状態272が「運用中」であるかを判定する(S93)。判定した結果、YESの場合(S93:YES)、転送部番号271が示す該当する転送部3へと死活監視命令を送信するよう、転送部番号271の値とともに死活監視命令を命令配布制御モジュール23に発行する(S94)。つまり、命令識別子に「死活監視」を示す値である「0」を格納し、転送部番号271の値を命令通知先に格納した死活監視命令を発行する(S94)。
一方、ステップS93の判定結果がNOの場合(S93:NO)、死活監視命令が発行可能でないので、死活監視モジュール25は、転送部状態管理テーブル27の次のエントリについて繰り返し処理(S91〜S95)を行う。転送部状態管理テーブル27の全てのエントリについて繰り返し処理を行うと、本フロー(S90)を終了する。
図8は、命令配布制御モジュール23が、命令を受信した際の処理を示すフローチャートの例である(S70)。命令配布制御モジュール23は、機能部21や死活監視モジュール25から命令を受信すると本フロー(S70)を開始する。命令配布制御モジュール23は、受信した命令を解析し、受信した命令に含まれる命令識別子が機能命令を示す命令識別子か判定する(S77)。命令識別子が機能命令を示す命令識別子である場合(S77:YES)、命令配布制御モジュール23は、機能命令管理テーブル26のすべてのエントリのうち、エントリ状態261が「未使用」のエントリがあるかを確認する(S71)。
確認したエントリ状態261に「未使用」がない場合(S71:NO)、命令配布制御モジュール23は、再度ステップS71を実行する。この場合、命令配布制御モジュール23は、エントリが解放されて、エントリ状態261が「未使用」のエントリがあるかをステップS71を繰り返し実行して確認する。エントリが解放されて、エントリ状態261が「未使用」のエントリがあれば、ステップS72に進む。なお、ステップS71を所定の時間または所定の回数繰り返し実行した後にエントリ状態261が「未使用」のエントリがなければ、機能命令の発行ができない旨を機能部21に応答してもよい。
一方、ステップS71において、確認したエントリ状態261に「未使用」がある場合(S71:YES)、命令配布制御モジュール23は、転送部状態管理テーブル27に運用状態272が「運用中」のエントリ、つまり、「運用中」の転送部3が1つ以上あるかを確認する(S72)。確認結果がYESの場合(S72:YES)、命令配布制御モジュール23は、機能命令管理テーブル26のエントリ状態261が「未使用」のエントリのエントリ状態261を「使用中」と記録(変更)し、および命令識別子262に受信した機能命令に含まれる命令識別子を記録(格納)する(S73)。
次に命令配布制御モジュール23は、受信した機能命令から機能命令を通知する転送部3を決定する(S74)。具体的には、命令配布制御モジュール23は、機能命令に含まれる命令識別子または命令識別子および命令内容から機能命令通知先情報を参照して、命令を通知する通知先の転送部3を決定する(S74)。次に命令配布制御モジュール23は、決定された通知先の転送部3に対して、機能命令を送信する(S75)。また、決定された転送部3が複数の場合、命令配布制御モジュール23は、それぞれの転送部3に機能命令を送信する(S75)
最後に命令配布制御モジュール23は、ステップS73にて機能命令管理テーブル27のエントリ状態261を「使用中」に変更したエントリの、機能命令を送信した個々の転送部3に該当する発行時刻268に現在時刻(命令を送信した時刻)を記録し、および該当する状態267に「応答待ち」と記録する(S76)。
一方、ステップS72の確認結果がNOの場合(S72:NO)、運用中の転送部3が存在しないので、機能命令の送信元機能部21へ命令の応答を送信し(S710)、本フロー(S70)を終了する。
最後に命令配布制御モジュール23は、ステップS73にて機能命令管理テーブル27のエントリ状態261を「使用中」に変更したエントリの、機能命令を送信した個々の転送部3に該当する発行時刻268に現在時刻(命令を送信した時刻)を記録し、および該当する状態267に「応答待ち」と記録する(S76)。
一方、ステップS72の確認結果がNOの場合(S72:NO)、運用中の転送部3が存在しないので、機能命令の送信元機能部21へ命令の応答を送信し(S710)、本フロー(S70)を終了する。
また、ステップS77において、命令識別子が機能命令を示す命令識別子でない場合(S77:NO)、受信した命令は死活監視命令であるので、命令配布制御モジュール23は、受信した死活監視命令に含まれる命令通知先を参照して死活監視命令の送信先の転送部3を特定し(S78)、特定した送信先の転送部3宛てに死活監視命令を送信し(S79)、本フロー(S70)を終了する。
図9は、命令配布制御モジュール23が、送信した命令に対する応答を転送部3から受信した際の処理を示すフローチャートの例である(S80)。命令配布制御モジュール23は、転送部3から命令の応答を受信すると本フロー(S80)を開始する。
命令配布制御モジュール23は、転送部3から受信した命令に対する応答を解析し、受信した応答に含まれる命令識別子が機能命令を示す命令識別子か判定する(S86)。命令識別子が機能命令を示す命令識別子である場合(S86:YES)、命令配布制御モジュール23は、転送部3から受信した機能命令に対する応答に含まれる転送部番号と命令識別子とをキー値として機能命令管理テーブル26のエントリを検索し、一致するエントリを取得する(S81)。
ここで、「転送部番号」とは、機能命令に対する応答を送信した転送部3を識別する情報である。次に命令配布制御モジュール23は、ステップS81で取得した機能命令管理テーブル26の該当エントリについて、受信した転送部番号に対応する転送部番号266の状態267に「応答あり」と記録する(S82)。
次に命令配布制御モジュール23は、ステップS81にて取得した機能命令管理テーブル27の該当エントリについて、通知状態265のすべての転送部番号266の状態267に1つでも「応答待ち」があるかを確認する(S83)。確認結果がNOの場合(S83:NO)、命令配布制御モジュール23は、機能命令の送信元の機能部21、つまり、受信した応答に含まれる命令識別子に対応する機能部21に応答を送信する(S85)。そして、命令配布制御モジュール23は、機能命令管理テーブル26の該当エントリを初期化して解放する(S84)。
具体的には、命令配布制御モジュール23は、該当エントリのエントリ状態261を「未使用」と記録、命令識別子262を「-」(初期値)と記録、通知状態265のすべての転送部番号266の状態267と発行時刻268を「-」と記録する(S84)。なお、各要素に「−」と記録することを、「情報を削除する」と表現してもよい。一方、ステップS83の確認結果がYESの場合、エントリを更新しないので、本フロー(S80)を終了する。
一方、ステップS86において、命令識別子が機能命令を示す命令識別子でない場合(S86:NO)、受信した応答は死活監視命令に対する応答であるので、命令配布制御モジュール23は、受信した応答を死活監視モジュール25へ送信する(S87)。
命令配布制御モジュール23は、機能命令管理テーブル26の不要となったエントリを初期化して解放することにより、機能部21から新規に発行される機能命令を新たに管理して転送部3に配布することができ、新規の機能命令を発行できなくなることによる機能部の動作の停止を防ぎ、制御部2やネットワーク装置1全体が停止する事態を防ぐ。
図10は、死活監視モジュール25が死活監視命令に対する応答を転送部3から受信した際の処理を表すフローチャートの例である(S100)。死活監視モジュール25は、ステップS79にて命令配布制御モジュール23が送信した、転送部3からの死活監視命令に対する応答を受信すると本フロー(S100)を開始する。 死活監視モジュール25は、死活監視命令に対する応答を送信した転送部3の運用状態を確認するために、命令配布制御モジュール23から受信した死活監視命令に対する応答に含まれる転送部番号に該当する転送部3の運用状態を転送部状態管理テーブル27から取得する(S101)。
具体的には、死活監視モジュール25は、受信した転送部番号をキー値として、転送部状態管理テーブル27の転送部番号271を検索し、一致するエントリの運用状態272を取得する(S101)。次に死活監視モジュール25は、取得した運用状態272が「運用中」であるかを判定する(S102)。判定した結果、YESの場合(S102)、死活監視モジュール25は、時刻管理モジュールから現在時刻を取得する(S103)。
最後に、死活監視モジュール25は、受信した転送部番号をキー値として、死活監視管理テーブル28の転送部番号281を検索し、一致するエントリの死活監視命令応答受信時刻282に、取得した現在時刻を記録する(S104)。一方、ステップS102の判定結果がNOの場合(S102:NO)、エントリを更新しないので、本フロー(S100)を終了する。
図11は、死活監視モジュール25が実行する死活監視命令のタイムアウトを監視する処理を示すフローチャートの例である(S110)。本処理(S110)は、繰り返し、例えば一定の時間ごとに周期的に実行される。本実施例では、T2秒ごとに実行されるものとする。
死活監視モジュール25は、最初に現在時刻を取得する(S111)。次に死活監視モジュール25は、死活監視テーブル28の転送部番号281で示されるエントリ数分、以下の繰り返し処理をおこなう(S112〜S116,S120)。図5の例では、転送部番号281が「1」のエントリについて繰り返し処理(S112〜S116,S120)を行い、次に転送部番号281が「2」のエントリについて繰り返し処理(S112〜S116,S120)を行う。
最初に、死活監視命令のタイムアウトを監視する処理(死活監視タイムアウトチェック処理)の実施対象であるかを確認するために、死活監視モジュール25は、転送部番号281に対応する転送部状態管理テーブル27の転送部番号271に該当する運用状態272を取得する(S113)。次に死活監視モジュール25は、取得した運用状態272が「運用中」であるかを判定する(S114)。判定した結果、YESの場合(S114:YES)、死活監視タイムアウトチェック処理の実施対象であるので、死活監視モジュール25は、死活監視タイムアウトチェック処理を実行する(S120)。本処理(S120)は、後述の図12のS120で説明する。
一方、S114の判定結果がNOの場合(S114:NO)、死活監視タイムアウトチェック処理の実施対象でないので、死活監視テーブル28の転送部番号281に該当する死活監視命令応答受信時刻282を無効化する。具体的には、無効であることを示す「-」と記録する(S117)。ステップS120とステップ117の実行後、死活監視モジュール25は、死活監視テーブル28の次のエントリについて繰り返し処理(S112〜S116,S120)を行う。死活監視テーブル28の全てのエントリについて繰り返し処理を行うと本フロー(S110)を終了する。
図12は、死活監視モジュール25が実行する死活監視タイムアウトチェック処理を示すフローチャートの例である(S120)。
死活監視モジュール25は、繰り返し処理(S112〜S116,S120)を実行する対象のエントリである死活監視テーブル28の転送部番号281に該当する死活監視命令応答受信時刻282を取得する。次に取得した死活監視命令応答受信時刻282が有効であるかを確認するため、死活監視モジュール25は、取得した死活監視命令応答受信時刻282が無効を示す「-」であるかを判定する(S122)。
死活監視モジュール25は、繰り返し処理(S112〜S116,S120)を実行する対象のエントリである死活監視テーブル28の転送部番号281に該当する死活監視命令応答受信時刻282を取得する。次に取得した死活監視命令応答受信時刻282が有効であるかを確認するため、死活監視モジュール25は、取得した死活監視命令応答受信時刻282が無効を示す「-」であるかを判定する(S122)。
判定した結果、NOの場合(S122:NO)、有効であるので、次に死活監視モジュール25は、死活監視命令に対する応答がタイムアウトしているかを確認するため、ステップS111で取得した現在時刻と死活監視命令応答受信時刻282の差分値が、閾値管理テーブル29の死活監視タイムアウト時間292の値より大きいかを判定する(S123)。具体的には、以下の式を満たすかを判定する
(現在時刻) − (死活監視命令応答受信時刻282) > (閾値管理テーブル29の死活監視タイムアウト時間292)
判定した結果、YESの場合(S123:YES)、タイムアウトが発生しているので、死活監視モジュール25は、転送部制御モジュール22および命令配布制御モジュール23に、該当する転送部番号281の値とともに障害を通知する(S124)。つまり、死活監視モジュール25は、転送部番号281に対応する転送部3に障害が発生したことを転送部制御モジュール22および命令配布制御モジュール23に通知する。最後に、死活監視モジュール25は、死活監視テーブル28の転送部番号281に該当する死活監視命令応答受信時間282を無効であることを示す「-」と記録して無効化する。
(現在時刻) − (死活監視命令応答受信時刻282) > (閾値管理テーブル29の死活監視タイムアウト時間292)
判定した結果、YESの場合(S123:YES)、タイムアウトが発生しているので、死活監視モジュール25は、転送部制御モジュール22および命令配布制御モジュール23に、該当する転送部番号281の値とともに障害を通知する(S124)。つまり、死活監視モジュール25は、転送部番号281に対応する転送部3に障害が発生したことを転送部制御モジュール22および命令配布制御モジュール23に通知する。最後に、死活監視モジュール25は、死活監視テーブル28の転送部番号281に該当する死活監視命令応答受信時間282を無効であることを示す「-」と記録して無効化する。
一方、S123の判定結果がNOの場合(S123:NO)、タイムアウトが発生していないので、本フロー(S120)を終了する。また、ステップS122の判定結果がYESの場合(S122:YES)、死活監視命令応答受信時刻282が有効ではないので、本フロー(S120)を終了する。
転送部制御モジュール22は、死活監視モジュール25から転送部3の障害発生を通知されると、障害が発生した転送部3の運用を停止させる制御である転送部停止処理を実行する。転送部制御モジュール22は、死活監視モジュール25から通知された転送部番号281の値を参照し、障害が発生した転送部3を特定する。転送部制御モジュール22は、特定した転送部3に対して停止指示を送信して、該当する転送部3の運用状態を停止に遷移させる。次に転送部制御モジュール22は、停止させた転送部3に対応する転送部状態管理テーブル27の転送部番号271のエントリの運用状態272を「停止中」と記録する。
また、命令配布制御モジュール23は、死活監視モジュール25から転送部3の障害発生を通知されると、障害が発生した転送部3の情報を機能命令管理テーブル26から削除する転送部情報削除処理を実行する。命令配布制御モジュール23は、死活監視モジュール25から通知された転送部番号281の値を参照し、障害が発生した転送部3を特定する。命令配布制御モジュール23は、機能命令管理テーブル26を参照して、特定した転送部3の転送部番号266について状態267と発行時刻268のエントリ(テーブルの列成分)の全てを「-」と記録して無効化する。
本処理によって無効化され、すべての転送部266について状態267「応答待ち」状態でなくなったエントリ(テーブルの行成分)については、次の図13の処理(S140)によって機能部21への応答とエントリ(テーブルの行成分)の無効化が行われる。
また、ステップS124において、死活監視モジュール25は、転送部制御モジュール22に、該当する転送部番号281の値とともに障害を通知してもよい。この場合、転送部制御モジュール22は、死活監視モジュール25から転送部3の障害発生を通知されると、転送部停止処理を実行するとともに、命令配布制御モジュール23に通知された転送部番号281の値と障害発生を通知する。命令配布制御モジュール23は、転送部制御モジュール22から転送部3の障害発生を通知されると、転送部情報削除処理を実行して、障害が発生した転送部3の情報を機能命令管理テーブル26から削除する。
図13は、命令配布制御モジュール23が機能命令のタイムアウトを検出する処理を示すフローチャートの例である(S140)。本処理(S140)は、繰り返し、例えば一定の時間ごと周期的に実行される。本実施例では、T3秒ごとに実行されるものとする。
命令配布制御モジュール23は、機能命令管理テーブル26のエントリ状態261で示されるエントリ(テーブルの行成分)数分、以下の繰り返し処理をおこなう(S141〜S147,S150)。
命令配布制御モジュール23は、機能命令管理テーブル26のエントリ状態261で示されるエントリ(テーブルの行成分)数分、以下の繰り返し処理をおこなう(S141〜S147,S150)。
最初に、命令配布制御モジュール23は、機能命令管理テーブル26からエントリ状態261を取得する(S142)。次に、命令配布制御モジュール23は、機能命令のタイムアウトチェック対象であるかを確認するために、取得したエントリ状態261が「使用中」であるかを判定する(S143)。判定した結果、YESの場合(S143:YES)、機能命令のタイムアウトチェック対象であるので、命令配布制御モジュール23は、機能命令タイムアウトチェック処理を実行する(S150)。本処理は、後述の図14のS150で説明する。
機能命令タイムアウトチェック処理(S150)の実行後、命令配布制御モジュール23は、機能命令管理テーブル26の該当エントリ(行成分)について、通知状態265のすべての転送部番号266の状態267に1つでも「応答待ち」があるかを確認する(S144)。確認結果がNOの場合(S144:NO)、命令配布制御モジュール23は、状態267が全て「応答待ち」になった機能命令の送信元の機能部21、つまり、該当エントリ(行成分)の命令識別子262に対応する機能部21に応答を送信する(S145)。
そして、命令配布制御モジュール23は、機能命令管理テーブル26の該当エントリ(行成分)を初期化して解放する(S146)。具体的には、命令配布制御モジュール23は、該当エントリのエントリ状態261を「未使用」と記録、命令識別子262を「-」(初期値)と記録、通知状態265のすべての転送部番号266の状態267と発行時刻268を「-」と記録する(S146)。ステップS146の実行後、命令配布制御モジュール23は、機能命令管理テーブル26のエントリ状態261で示されるエントリ(行成分)の次のエントリ(行成分)について繰り返し処理(S141〜S147,S150)を行う。
一方、ステップS143の判定結果がNOの場合(S143:NO)、機能命令のタイムアウトチェック対象でなく、また、ステップ144の確認結果がYESの場合(S144:YES)、エントリを更新しないので、命令配布制御モジュール23は、機能命令管理テーブル26のエントリ状態261で示されるエントリ(行成分)の次のエントリ(行成分)について繰り返し処理(S141〜S147,S150)を行う。
命令配布制御モジュール23は、機能命令管理テーブル26のエントリ状態261で示されるエントリ(行成分)の全てのエントリ(行成分)について繰り返し処理を行うと本フロー(S140)を終了する。
命令配布制御モジュール23は、機能命令管理テーブル26のエントリ状態261で示されるエントリ(行成分)の全てのエントリ(行成分)について繰り返し処理を行うと本フロー(S140)を終了する。
図14は、命令配布制御モジュール23が実行する機能命令タイムアウトチェック処理を示すフローチャートの例である(S150)。命令配布制御モジュール23は、最初に現在時刻を取得する(S151)。次に命令配布制御モジュール23は、機能命令管理テーブル26の通知状態265の転送部番号266で示されるエントリ(テーブルの列成分)数分、以下の繰り返し処理をおこなう(S152〜S162)。図3の例では、転送部番号266が「1」のエントリ(列成分)について繰り返し処理(S152〜S162)を行い、次に転送部番号266が「2」のエントリ(列成分)について繰り返し処理(S152〜S162)を行う。
繰り返し処理の最初に、命令配布制御モジュール23は、機能命令管理テーブル26の状態267を取得する(S153)。次に命令配布制御モジュール23は、未応答であるかを確認するため、取得した状態267が「応答待ち」であるかを判定する(S154)。判定した結果、YESの場合(S154:YES)、未応答であるので、命令配布制御モジュール23は、機能命令管理テーブル26の発行時刻268を取得する。
次に機能命令のタイムアウトが発生しているかを確認するため、命令配布制御モジュール23は、現在時刻と発行時刻268の差分値が、閾値管理テーブル29の機能命令タイムアウト時間291の値より大きいかを判定する(S156)。具体的には、以下の式を満たすかを判定する
(現在時刻) − (発行時刻268) > (閾値管理テーブル29の機能命令タイムアウト時間291)
判定した結果、YESの場合(S156:YES)、機能命令のタイムアウトが発生しているので、命令配布制御モジュール23は、死活監視タイムアウト実行処理を実行する(S161,S162)。死活監視タイムアウト実行処理(S161,S162)の実行後に、命令配布制御モジュール23は、機能命令管理テーブル26の転送部番号266が示すエントリ(列成分)の次のエントリ(列成分)について繰り返し処理(S152〜S162)を行う。
(現在時刻) − (発行時刻268) > (閾値管理テーブル29の機能命令タイムアウト時間291)
判定した結果、YESの場合(S156:YES)、機能命令のタイムアウトが発生しているので、命令配布制御モジュール23は、死活監視タイムアウト実行処理を実行する(S161,S162)。死活監視タイムアウト実行処理(S161,S162)の実行後に、命令配布制御モジュール23は、機能命令管理テーブル26の転送部番号266が示すエントリ(列成分)の次のエントリ(列成分)について繰り返し処理(S152〜S162)を行う。
一方、ステップS156の判定結果がNOの場合(S156:NO)、命令タイムアウトが発生しておらず、また、ステップS154の判定結果がNOの場合(S154:NO)、未応答でないので、命令配布制御モジュール23は、機能命令管理テーブル26の転送部番号266が示すエントリ(列成分)の次のエントリ(列成分)について繰り返し処理(S152〜S162)を行う。
命令配布制御モジュール23は、機能命令管理テーブル26の転送部番号266が示すエントリ(列成分)の全てのエントリ(列成分)について繰り返し処理を行うと、本フロー(S150)を終了する。
命令配布制御モジュール23は、機能命令管理テーブル26の転送部番号266が示すエントリ(列成分)の全てのエントリ(列成分)について繰り返し処理を行うと、本フロー(S150)を終了する。
死活監視タイムアウト実行処理(S161,S162)では、命令配布制御モジュール23は、転送部制御モジュール22に、該当する転送部番号266の値とともに障害を通知する(S161)。次に命令配布制御モジュール23は、機能命令管理テーブル26の該当転送部番号266のエントリ(列成分)を無効化する(S162)。
具体的には、命令配布制御モジュール23は、通知状態265の転送部番号266の状態267と発行時刻268のエントリ(行成分)の全てを「-」と記録する(S162)。その結果、機能命令管理テーブル26のエントリ状態261で示されるエントリ(行成分)のうち、該当する転送部番号266の状態267と発行時刻268の全てのエントリ(行成分)が無効となり、該当する転送部番号266が示す転送部3へ機能命令を送信していない状態と同じ状態となる。
命令配布制御モジュール23は、ステップS162の実行後、機能命令管理テーブル26の転送部番号266で示されるエントリ(列成分)の次のエントリ(列成分)について繰り返し処理(S152〜S162)を行う。命令配布制御モジュール23は、機能命令管理テーブル26の転送部番号266が示すエントリ(列成分)の全てのエントリ(列成分)について繰り返し処理を行うと、本フロー(S150)を終了し、ステップS144に進む。
以上のように、命令配布制御モジュール23は、図13の処理にて機能命令管理テーブル26の特定のエントリ(テーブルの行成分)に着目し、着目したエントリ(行成分)の要素のうち特定の転送部番号266のエントリ(テーブルの列成分)に着目して、図14の機能命令タイムアウトチェック処理(S150)を実行する。命令配布制御モジュール23は、図14の繰り返し処理によって図13の処理で着目したエントリ(行成分)の要素のうち全ての転送部番号266のエントリ(列成分)について機能命令タイムアウトチェック処理(S150)を実行した後、図13に戻り、未着目の機能命令管理テーブル26のエントリ(行成分)がなくなるまで図13および図14の繰り返し処理を実行する。
以上で説明したように、実施例によれば、制御部が発行した命令に対する応答がない転送部を停止させ、機能部での命令に対する応答を返した転送部を含む転送部全体の障害検出を回避し、制御部は、応答を返した転送部の制御を継続することができ、制御部やネットワーク装置全体が停止することを回避することができる。また、命令に対する応答がタイムアウトすると、制御部は、機能命令管理テーブルからこの命令のエントリを削除するため、制御部が管理する命令数が、有限な命令数の上限(機能命令管理テーブルの最大エントリ数)を超えることを回避し、命令に対して応答した本来停止させるべきではない転送部を停止させてしまうことを回避することができる。
以上、説明した構成において、具体的動作を説明する。説明の順序として、最初に、(1)ある時点におけるネットワーク装置1の状態を、次に(2)制御部2が転送部3に機能命令を送信して転送部3から応答がある場合の処理フローを、次に(3)死活監視モジュール25が死活監視命令を転送部3に発行して転送部3から応答がある場合の処理フローを、次に(4)死活監視モジュール25が死活監視命令を転送部3に発行して転送部3から応答がなく、該当転送部3を停止する場合の処理フローを、次に(5)機能命令タイムアウトチェック処理(S150)において機能命令のタイムアウトが発生していない場合の処理フローを、最後に(6)機能命令タイムアウトチェック処理(S150)において機能命令のタイムアウトが発生しており該当転送部3を停止する場合の処理フローを説明する。
(1)最初にある時点におけるネットワーク装置1の状態について説明する。ネットワーク装置1は、図1に示すように、1つの制御部2と2つの転送部3を搭載する。このときの機能命令管理テーブル26は、図15Aに示すように、5つのエントリを格納しており、それぞれエントリ状態261として、すべて「未使用」が格納されていて、命令識別子262として、すべて「-」が格納されていて、通知状態265の転送部番号266として2つの転送部3それぞれを識別する「1」、「2」が格納されていて、個々の転送部番号266の状態267と発行時刻268の組には、すべて{-、-}が格納されている。
つまり、制御部2が2つの転送部3に対して機能命令を発行していない状態を示している。図15A、図15B、図15Cは、本具体的動作における転送部状態管理テーブル27の状態遷移の例を示す。
つまり、制御部2が2つの転送部3に対して機能命令を発行していない状態を示している。図15A、図15B、図15Cは、本具体的動作における転送部状態管理テーブル27の状態遷移の例を示す。
また、転送部状態管理テーブル27は、図4Aに示すように、2つの転送部3分のエントリを格納しており、それぞれ転送部番号271のエントリ番号として「1」、「2」を割り当てて、運用状態272としてそれぞれ「運用中」が格納されている。つまり、2つの転送部3はともに運用中であることを示している。
また、死活監視管理テーブル28は、図5Aに示すように、2つの転送部3分のエントリを格納しており、それぞれ転送部番号281のエントリ番号として「1」、「2」を割り当てて、死活監視命令応答受信時刻282として「11:00:05」、「12:00:06」が格納されている。つまり、転送部3−1からの死活監視命令に対する応答を「11時00分05秒」に受信し、転送部3−2からの応答を「12時00分06秒」に受信したことを示している。
また、閾値管理テーブル29は、図6に示すように、機能命令タイムアウト時間291に「00:05:00」が、死活監視タイムアウト時間292に「00:03:00」が記録されている。つまり、機能命令に対する応答のタイムアウト時間が「5分間」、死活監視命令に対する応答のタイムアウト時間が「3分間」に設定されていることを示している。
(2)次に、制御部2が転送部3に機能命令を送信して転送部3から応答がある場合を一例として、そのフローを説明する。まず、機能命令管理テーブル26が図15A、転送部状態管理テーブル27が図4Aの状態のときに、命令配布制御モジュール23が、機能部21から機能命令を受信すると、命令配布制御モジュール23は、ステップS70を実行する。
命令配布制御モジュール23は、ステップS77で、受信した命令を機能命令と判定し(S77:YES)、ステップS71で機能命令管理テーブル26の「未使用」のエントリとして1番目のエントリ263を取得する。次に命令配布制御モジュール23は、ステップS72で転送部状態管理テーブル27の状態を確認し、転送部番号271が「1」、「2」の運用状態272がそれぞれ「運用中」であるため、ステップS73を実行し、機能命令管理テーブル26の「未使用」であった1番目のエントリ263のエントリ状態261に「使用中」を、命令識別子262に機能命令に含まれる命令識別子「1」を記録する。
次のステップS74では、命令配布制御モジュール23は、受信した機能命令から通知先の転送部3を決定し、決定した転送部3に機能命令を送信する。例えば、機能命令に含まれる命令識別子「1」から全ての転送部3を通知先とすると決定する。つまり、命令配布制御モジュール23は、転送部状態管理テーブル27の「運用中」である転送部番号271の「1」「2」が示す転送部3−1,3−2へと機能命令を送信する。
その後ステップS76で、命令配布制御モジュール23は、発行時刻268−1,268−2に現在時刻である「11:10:00」、状態267−1,267−2に「応答待ち」を記録する。以上の処理を行った結果、機能命令管理テーブル26は図15Bの状態となる。
次に転送部3−1から応答が返ってくると、命令配布制御モジュール23は、ステップS80を実行する。命令配布制御モジュール23は、ステップS86で、受信した応答を機能命令に対する応答と判定し(S86:YES)ステップS81で、応答に含まれる転送部番号「1」および命令識別子「1」から、機能命令管理テーブル26の1番目のエントリ263を取得する。
ステップS82で、命令配布制御モジュール23は、受信した転送部番号「1」に対応する転送部番号266−1の状態267−1に「応答あり」、発行時刻268−1に「-」を記録する。ステップS83で、命令配布制御モジュール23は、転送部3−2を示す転送部番号266−2「2」の状態267−2は「応答待ち」のためステップS80の処理を終了する。その結果、機能命令管理テーブル26は図15Cの状態となる。
同様に転送部3−2から応答が返ってくると、命令配布制御モジュール23は、ステップS80を実行し、ステップS86、ステップS81、ステップS82を上述した転送部3−1から応答が返ってきた場合と同様に実行する。ステップS83において、命令配布制御モジュール23は、すべての転送部3の状態267が「応答あり」となるため、次のステップS84を実行する。ステップS84で命令配布制御モジュール23は、エントリ263のエントリ状態261に「未使用」を、命令識別子262に「-」、状態267に「−」、発行時刻268に「−」を記録しステップS80の処理を終了する。その結果、機能命令管理テーブル26は図15Aの状態となる。
(3)次に、死活監視モジュール28が死活監視命令を転送部3に発行して転送部3から応答がある場合を一例として、そのフローを説明する。 死活監視管理テーブル28が図5A、転送部状態管理テーブル27が図4Aの状態で、現在時刻が「15:01:00」である場合の、死活監視モジュール25が実行するステップS90は、以下のようになる。まず死活監視モジュール25は、ステップS91のループ処理で転送部3−1を示す転送部番号271「1」について処理をおこなう。
ステップS92で死活監視モジュール25は、転送部状態管理テーブル27から転送部番号271「1」の運用状態272を取得する。取得した運用状態272は「運用中」のため、ステップS93の判定がYESとなり(S93:YES)、死活監視モジュール25は、ステップS94を実行する。ステップS94で死活監視モジュール25は、転送部番号271「1」の転送部3−1に対して命令配布制御モジュール23を介して死活監視命令を送信する。同様に転送部番号271「2」の転送部3−2に対しても死活監視命令を送信する。
その後、転送部3から死活監視命令の応答が返ってくると、死活監視モジュール25は、ステップS100を実行する。ここでは、転送部3−1と転送部3−2の両方から死活監視命令の応答が返ってきた場合を説明する。ステップS101で、死活監視モジュール25は、応答に含まれる転送部番号「1」から転送部状態管理テーブル27の転送部番号271「1」に対応するエントリの運用状態272を取得する。
取得したエントリの運用状態272は「運用中」のため、死活監視モジュール25は、ステップS102の判定がYESとなり(S102:YES)、次のステップS103を実行する。ステップS103で死活監視モジュール25は、現在時刻「15:01:05」を取得し、ステップS104で、死活監視管理テーブル28の転送部番号281「1」に対応する死活監視命令応答受信時刻282に現在時刻「15:01:05」を記録する。
また、死活監視モジュール25は、転送部3−2からの死活監視命令の応答に対してもステップS100を実行する。その結果、死活監視管理テーブル28は、図5Bの状態となる。この状態で、死活監視モジュール25が死活監視命令のタイムアウトチェック処理ステップS110を実行すると、以下のようになる。
ステップS111で死活監視モジュール25は、現在時刻「15:01:06」を取得し、ステップS112のループ処理で転送部3−1を示す転送部番号「1」について処理をおこなう。ステップS113で転送部状態管理テーブル27の転送部番号271「1」の運用状態272を取得する。取得した運用状態272は「運用中」のため、ステップS114の判定がYESとなり(S114:YES)、死活監視モジュール25は、ステップS120を実行する。
ステップS120の処理では、死活監視モジュール25は、ステップS121で死活監視管理テーブル28の転送部番号281「1」に対する死活監視命令応答受信時刻282を取得する。取得した死活監視命令応答受信時刻282は「15:01:05」のため、ステップS122の判定はNOとなり(S122:NO)、死活監視モジュール25は、ステップS123の判定を行う。ステップS123の判定処理では、現在時刻「15:01:06」と死活監視命令応答受信時刻「15:01:05」の差が、死活監視タイムアウト時間292の「00:03:00」以下のため判定がNOとなり(S123:NO)、死活監視モジュール25は、ステップS120の処理を終了する。
以上で転送部3−1を示す転送部番号「1」に対する処理が終了し、次にS112のループ処理で転送部3−21を示す転送部番号「2」についての処理が行われる。ステップS113,ステップS114は、転送部番号「1」と同様に判定され、転送部番号「2」についてもステップS120の処理が行われる。ステップS120の処理では、死活監視モジュール25は、ステップS121で死活監視管理テーブル28の転送部番号281「2」に対する死活監視命令応答受信時刻282を取得する。取得した死活監視命令応答受信時刻282は「15:01:05」のため、ステップS122の判定はNOとなり(S122:NO)、死活監視モジュール25は、ステップS123の判定を行う。ステップS123の判定処理では現在時刻「15:01:06」と死活監視命令応答受信時刻「15:01:05」の差が、死活監視タイムアウト時間292の「00:03:00」以下のため判定がNOとなり(S123:NO)、死活監視モジュール25は、ステップS120の処理を終了する。
(4)次に、死活監視モジュール25が死活監視命令を転送部3に発行して転送部3から応答がなく、該当転送部3を停止する場合を一例として、そのフローを説明する。
死活監視管理テーブル28が、図5A、転送部状態管理テーブル27が図4Aの状態で、死活監視モジュール25がステップS94を実行し、転送部3−1,3−2に死活監視命令を送信した後、転送部3−1からの死活監視命令の応答は受信するが、転送部3−2からの死活監視命令の応答は受信しない場合を説明する。この場合、死活監視管理テーブル28は、図5Cで示すように更新される。
転送部3−2からの死活監視命令に対する応答がないまま、現在時刻が「16:00:00」となった場合、ステップS123の判定処理において現在時刻「16:00:00」と死活監視命令応答受信時刻「12:01:00:06」の差が、死活監視タイムアウト時間292の「00:03:00」を超えるため、S123の判定がYESとなり(S123:YES)、ステップS124で死活監視モジュール25は、転送部制御モジュール22へ転送部番号281「2」が障害となったことを通知し、ステップS125で、死活監視管理テーブル28の転送部番号281「2」の死活監視命令応答受信時刻282に「-」を記録し、ステップS120の処理を終了する。
ステップS124の通知を受けて、転送部制御モジュール22は、転送部停止処理を実行する。まず、転送部制御モジュール22は、死活監視モジュール25から通知された転送部番号「2」の運用状態を停止に遷移させ、転送部状態管理テーブル27の転送部番号271「2」の運用状態272に「停止中」を記録する。結果、転送状態管理テーブル27は図4Bの状態となる。
(5)次に、機能命令タイムアウトチェック処理において機能命令のタイムアウトが発生していない場合を一例として、そのフローを説明する。機能命令管理テーブル26が、図15Cの状態、現在時刻が「16:00:00」の状態で、命令配布制御モジュール23が実行する機能命令のタイムアウトを検出する処理(S140)は次のようになる。
まず命令配布制御モジュール23は、ステップS141のループ処理で、機能命令管理テーブル26の1番目のエントリ263について処理をおこなう。ステップS142で命令配布制御モジュール23は、機能命令管理テーブル26の1番目のエントリ263のエントリ状態261を取得する。取得したエントリ状態261は「使用中」のためステップS143で判定がYESとなり(S143:YES)、命令配布制御モジュール23は、ステップS150を実行する。
ステップS150では、まずS151で命令配布制御モジュール23は、現在時刻「16:00:00」を取得する。次にステップS152のループ処理で、命令配布制御モジュール23は、機能命令管理テーブル26の転送部番号266−1「1」について処理を行う。ステップS153で命令配布制御モジュール23は、転送部番号266−1「1」の状態267−1を取得する。取得した状態267−1は「応答あり」のため、ステップS154の判定がNOとなり(S154:NO)、転送部番号266−1「1」についてのループ処理を終了する。
次に命令配布制御モジュール23は、転送部番号266−2「2」について同様に処理を行う。ステップS153で転送部番号266−2「2」の状態267−2を取得する。取得した状態267−2は「応答待ち」のため、ステップS154の判定がYESとなり(S154:YES)、ステップS155を実行する。
ステップS155で命令配布制御モジュール23は、転送部番号266−2「2」に対する発行時刻268−2を取得する。次のステップS156で、現在時刻「16:00:00」と取得した発行時刻268−2「11:10:00」の差が、閾値管理テーブル29の機能命令タイムアウト時間291の「00:05:00」以下のため判定がNO、つまり、機能命令のタイムアウトが発生しておらず(S156:NO)、転送部番号266−2「2」についてのループ処理を終了する。
命令配布制御モジュール23は、ここまでで1番目のエントリ263に対する処理を終了する。以降は機能命令管理テーブル26のエントリ状態261が「未使用」のエントリのため、ステップS143で判定がNOとなり(S143:NO)、命令配布制御モジュール23は、ステップS150を実行しない。
(6)最後に、機能命令タイムアウトチェック処理において機能命令のタイムアウトが発生しており該当転送部3を停止する場合を一例として、そのフローを説明する。機能命令管理テーブル26が、図15Cの状態で、転送部3−1からの機能命令に対する応答は受信したが、転送部3−2からの機能命令に対する応答は受信しない場合を説明する。転送部3−2からの機能命令に対する応答がないまま、現在時刻が「17:00:00」になった場合についての命令配布制御モジュール23が実行する機能命令のタイムアウトを検出する処理(S140)を説明する。
ステップS141からS143までは上記で説明したものと同様に行われ、機能命令管理テーブル26の1番目のエントリ263についてステップS150が行われる。ステップS150については、ステップS151で命令配布制御モジュール23は、現在時刻「17:00:00」を取得する。転送部番号266−1「1」については上記で説明したものと同様にループ内の処理が完了する。
転送部番号266−2「2」については、ステップS153からステップS155までの処理は上記と同様であるが、ステップS156については、現在時刻「17:00:00」と取得した発行時刻268「11:10:00」の差が閾値管理テーブル29の機能命令タイムアウト時間291の「00:05:00」を超えるため、判定がYESとなり(S156:YES)、命令配布制御モジュール23は、死活監視タイムアウト処理(S161,S162)を実行する。
ステップSS161で、命令配布制御モジュール23は、転送部制御モジュール22へ転送部番号266−2「2」が障害となったことを通知する。ステップ162で、命令配布制御モジュール23は、機能命令管理テーブル26の通知状態265の転送部番号266−2「2」の状態267−2に「-」、発行時刻268−2に「-」を記録してステップS150の処理を終了する。その後、命令配布制御モジュール23は、ステップS144〜S146を実行し、結果として、機能命令管理テーブル26は図15Aの状態となる。
ステップS161の通知を受けると、転送部制御モジュール22は、転送部停止処理を実行する。まず、転送部制御モジュール22は、命令配布制御モジュール23から通知された転送部番号「2」の運用状態を停止に遷移させ、転送部状態管理テーブル27の転送部番号271「2」の運用状態272に「停止中」を記録する。結果、転送状態管理テーブル27は図4Bの状態となる。
また、上記(6)の別の例として、機能命令管理テーブル26が、図3Aの状態で、転送部3−2からの機能命令に対する応答は受信したが、転送部3−1からの機能命令に対する応答は受信しない場合を説明する。転送部3−1からの機能命令に対する応答がないまま、現在時刻が「10:23:00」になった場合についての命令配布制御モジュール23が実行する機能命令のタイムアウトを検出する処理(S140)を説明する。
ステップS141からS143までは上記で説明したものと同様に行われ、機能命令管理テーブル26の1番目のエントリのエントリ状態261は「未使用」のため、2番目のエントリ260についてステップS150が行われる。ステップS150については、ステップS151で命令配布制御モジュール23は、現在時刻「10:23:00」を取得する。転送部番号266−1「1」について、ステップS153からステップS155までの処理は上記と同様であるが、ステップS156については、現在時刻「10:23:00」と取得した発行時刻268「10:20:01」の差が閾値管理テーブル29の機能命令タイムアウト時間291の「00:05:00」以下のため判定がNO、つまり、機能命令のタイムアウトが発生しておらず(S156:NO)、命令配布制御モジュール23は、転送部番号266−1「1」についてのループ処理を終了する。
エントリ260の転送部番号266−2「2」についてもステップS150で機能命令のタイムアウトが発生していない(S156:NO)ため、命令配布制御モジュール23は、ステップS144に進み、エントリ260の次のエントリ269についてのステップS150に進む。ステップS150については、ステップS151で命令配布制御モジュール23は、現在時刻「10:23:02」を取得し、転送部番号266−1「1」のステップS156については、現在時刻「10:23:02」と取得した発行時刻268「10:00:00」の差が閾値管理テーブル29の機能命令タイムアウト時間291の「00:05:00」を超えるため、判定がYESとなり(S156:YES)、死活監視タイムアウト処理(S161,S162)を実行する。
ステップSS161で、命令配布制御モジュール23は、転送部制御モジュール22へ転送部番号266−1「1」が障害となったことを通知し、ステップ162で、機能命令管理テーブル26の通知状態265の転送部番号266−1「1」の全ての状態267−1に「-」、全ての発行時刻268−1に「-」を記録する。その結果、機能命令管理テーブル26は図3Bの状態となる。
エントリ260の転送部番号266−2「2」についてはステップS150で状態267−2「応答あり」(S154:NO)ため、命令配布制御モジュール23は、ステップS144に進み、エントリ269の状態267には「応答待ち」がないため(S144:NO)、ステップS145,ステップ146を実行する。その結果、機能命令管理テーブル26は図3Cの状態となる。
ステップS161の通知を受けた転送部制御モジュール22は、転送部停止処理を実行する。まず、転送部制御モジュール22は、命令配布制御モジュール23から通知された転送部番号「1」の運用状態を停止に遷移させ、転送部状態管理テーブル27の転送部番号271「1」の運用状態272に「停止中」を記録する。
以上説明したように、本実施形態によれば、任意の転送部から命令に対する応答がない場合、命令配布制御モジュールは、該当の転送部からの応答があったものとして命令を発行した機能部に応答を送信する。また、制御部は、該当の転送部の停止を実行する。この結果、機能命令管理テーブルの該当転送部が使用していたエントリが開放されるため、命令に対する応答がある他の転送部の制御を継続することができる、また、命令に対する応答がある他の転送部に影響を与えることなく他の転送部の制御を継続することができる。また、任意の転送部から命令に対する応答がない場合に、有限な同時通知可能な命令数に達し、新たな命令が通知できなくなる状況を回避し、ネットワーク装置の運用を継続することができる。
以上、本実施形態をネットワーク装置1が、1つの通信装置で構成される例で説明したが、本実施形態をネットワークシステム(通信システム)で構成される例で説明することもできる。つまり、制御部2をネットワークシステムを制御する1つの通信装置である制御装置、転送部3をデータを転送する1つの通信装置である転送装置として、上述した本実施形態を適用することができる。
制御装置は、命令をフレームやパケットの形で制御装置と転送装置とを接続する通信回線を介して転送装置に送信する。また、転送装置は、命令に対する応答をフレームやパケットの形で通信回線を介して制御装置に送信する。
この場合、任意の転送装置から命令に対する応答がない場合、命令配布制御モジュールは、該当の転送装置からの応答があったものとして命令を発行した機能モジュールに応答を送信する。また、制御装置は、該当の転送装置の停止を実行する。この結果、機能命令管理テーブルの該当転送装置が使用していたエントリが開放されるため、命令に対する応答がある他の転送装置の制御を継続することができる、また、命令に対する応答がある他の転送装置に影響を与えることなく他の転送装置の制御を継続することができる。また、任意の転送装置から命令に対する応答がない場合に、有限な同時通知可能な命令数に達し、新たな命令が通知できなくなる状況を回避し、ネットワークシステムの運用を継続することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えばFPGA(field−programmable gate array)のような集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(SolidStateDrive)等の記録装置、または、IC(Integrated Circuit)カード、SDカード、DVD等の記録媒体に置くことができる。
また、「aaaテーブル」の表現にて各種情報を説明したが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「aaaテーブル」を「aaa情報」と呼ぶことができる。また、「格納する」の表現にて各種テーブルに各情報を記録することを説明したが、「登録する」または「設定する」と表現されてもよい。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1…ネットワーク装置
2…制御部
3…転送部
11…転送エンジン
12…ポート
21…機能部
22…転送部制御モジュール
23…命令配布制御モジュール
25…死活監視モジュール
26…機能命令管理テーブル
27…転送部状態管理テーブル
28…死活監視管理テーブル
29…閾値管理テーブル
2…制御部
3…転送部
11…転送エンジン
12…ポート
21…機能部
22…転送部制御モジュール
23…命令配布制御モジュール
25…死活監視モジュール
26…機能命令管理テーブル
27…転送部状態管理テーブル
28…死活監視管理テーブル
29…閾値管理テーブル
Claims (15)
- ネットワークに接続される通信装置であって、
前記ネットワークを介してデータを転送する複数の転送部と、
前記転送部に所定の機能を実行させる命令である機能命令を発行する機能部と、前記機能部からの前記機能命令を前記複数の転送部それぞれに配布し、前記機能命令に対する応答を監視する命令配布制御部と、を有する制御部と、
を備え、
前記命令配布制御部は、
前記機能命令に対する応答の監視にて、前記複数の転送部のうち一部の転送部から前記機能命令に対する応答を受信し、残りの転送部から前記機能命令に対する応答を受信せずにタイムアウトした場合に、前記転送部からの前記機能命令に対する応答があった旨を前記機能部へ送信する
ことを特徴とする通信装置。 - 請求項1に記載の通信装置であって、
前記命令配布制御部は、
前記機能命令を配布した時刻に関する配布時刻を管理し、
前記制御部は、
前記配布時刻から経過した時間に対する第1閾値を記憶する記憶部をさらに備え、
前記命令配布制御部は、
前記配布時刻および現在の時刻に基づく時間情報と前記第1閾値との比較処理に応じて、前記複数の転送部それぞれからの前記機能命令に対する応答のタイムアウトを判定する
ことを特徴とする通信装置。 - 請求項2に記載の通信装置であって、
前記命令配布制御部は、
前記配布時刻と配布した前記機能命令に対する応答の状態とを対応付けて前記複数の転送部毎に管理し、
前記複数の転送部のうち、前記状態が前記機能命令を配布した転送部からの機能命令に対する応答の受信を待っていることを示す応答待ち状態である転送部に関して、前記比較処理を実行し、
前記比較処理の結果、前記時間情報が前記第1閾値より大きい場合に、前記応答待ち状態である転送部から前記機能命令に対する応答を受信せずにタイムアウトしたと判定して、前記転送部からの前記機能命令に対する応答があった旨を前記機能部へ送信する
ことを特徴とする通信装置。 - 請求項3に記載の通信装置であって、
前記制御部は、
前記複数の転送部のうち、前記機能命令に対する応答を受信せずにタイムアウトしたと判定された転送部の運用を停止させる制御を行う
ことを特徴とする通信装置。 - 請求項4に記載の通信装置であって、
前記制御部は、
前記複数の転送部それぞれの稼働状況を監視する死活監視を行う死活監視部をさらに備え、
前記死活監視部は、
前記死活監視を行う命令である死活監視命令を前記命令配布制御部に発行し、
前記命令配布制御部は、
前記死活監視部からの前記死活監視命令を前記複数の転送部それぞれに配布し、配布した前記死活監視命令に対する応答を前記複数の転送部それぞれから受信すると、受信した前記死活監視命令に対する応答それぞれを前記死活監視部に送信し、
前記死活監視部は、
前記命令配布制御部からの前記死活監視命令に対する応答を受信すると、前記死活監視命令に対する応答を送信した転送部の前記稼働状況は稼働中であると判定する
ことを特徴とする通信装置。 - 請求項5に記載の通信装置であって、
前記命令配布制御部は、
前記複数の転送部のうち、前記死活監視部にて稼働中と判定され、かつ、前記状態が、応答待ち状態である転送部に関して、前記比較処理を実行し、
前記比較処理の結果に応じて、前記転送部からの前記機能命令に対する応答があった旨を前記機能部へ送信する
ことを特徴とする通信装置。 - 請求項6に記載の通信装置であって、
前記死活監視部は、
前記死活監視命令に対する応答を受信した時刻に関する受信時刻を管理し、
前記記憶部は、
前記受信時刻から経過した時間に対する第2閾値を記憶し、
前記死活監視部は、
前記受信時刻および現在の時刻に基づく時間情報と前記第2閾値との比較処理に応じて、前記死活監視命令に対する応答のタイムアウトを判定し、
前記制御部は、
前記死活監視部がタイムアウトしたと判定した場合、前記複数の転送部のうち、前記死活監視命令に対する応答を受信せずにタイムアウトしたと判定された転送部の運用を停止させる制御を行う
ことを特徴とする通信装置。 - 請求項3に記載の通信装置であって、
前記記憶部は、
前記命令配布制御部が管理する、前記複数の転送部毎の前記配布時刻と前記状態との対応を機能命令管理情報として記憶し
前記命令配布制御部は、
前記機能部からの前記機能命令に含まれる機能命令の種類を識別する命令識別子に応じて、前記機能命令を配布する対象の転送部を全ての転送部もしくは一部の転送部に決定し、決定した前記機能命令を配布する対象の転送部に前記機能命令を配布するとともに、前記機能命令管理情報の前記機能命令を配布した転送部に対応する配布時刻に前記機能命令を配布した時刻を、前記機能命令を配布した転送部に対応する状態に応答待ち状態を記録する
ことを特徴とする通信装置。 - 請求項8に記載の通信装置であって、
前記命令配布制御部は、
前記機能命令を配布した転送部のうち、前記命令配布制御部にて、もしくは、前記死活監視部にてタイムアウトしたと判定された転送部に対応する前記機能命令管理情報の前記配布時刻および前記状態を削除し、
前記機能命令管理情報の全ての前記状態が、前記機能命令を配布した転送部からの機能命令に対する応答を受信したことを示す応答あり状態である場合、前記転送部からの前記機能命令に対する応答があった旨を前記機能部へ送信する
ことを特徴とする通信装置。 - 請求項4に記載の通信装置であって、
前記機能部は、
前記機能命令を発行した時刻に関する発行時刻から経過した時間に対する閾値であり、前記第1閾値より大きい第2閾値を管理し、
前記発行時刻から前記第2閾値の時間が経過するまでに前記命令配布制御部から転送部からの機能命令に対する応答があった旨を受信しない場合、発行した前記機能命令に対する応答を受信せずタイムアウトしたと判定し、
前記制御部は、
前記機能部がタイムアウトしたと判定した場合、前記複数の転送部それぞれの運用を停止させる制御を行う
ことを特徴とする通信装置。 - 請求項1乃至10のいずれか一項に記載の通信装置であって、
前記命令配布制御部は、
前記機能命令を配布した転送部のうち、転送部の稼働状況が稼働中から停止中へ遷移した転送部以外の転送部から配布した前記機能命令に対する応答を受信すると、前記転送部からの前記機能命令に対する応答があった旨を前記機能部へ送信する
ことを特徴とする通信装置。 - ネットワークを介してデータを転送する複数の転送装置に接続される制御装置であって、
前記複数の転送装置の運用を制御する転送装置制御部と、
前記転送装置に所定の機能を実行させる命令である機能命令を発行する機能部と、
前記機能部からの前記機能命令を前記複数の転送装置それぞれに配布し、前記機能命令に対する応答を監視する命令配布制御部と、
を備え、
前記命令配布制御部は、
前記機能命令に対する応答の監視にて、前記複数の転送装置のうち一部の転送装置から前記機能命令に対する応答を受信し、残りの転送装置から前記機能命令に対する応答を受信せずにタイムアウトした場合に、前記転送装置から前記機能命令に対する応答があった旨を前記機能部へ送信し、
前記転送装置制御部は、
前記複数の転送装置のうち、前記機能命令に対する応答を受信せずにタイムアウトしたと判定された転送装置の運用を停止させる制御を行う
ことを特徴とする制御装置。 - 請求項12に記載の制御装置であって、
前記機能命令を配布した時刻に関する配布時刻から経過した時間に対する第1閾値を記憶する記憶部をさらに備え、
前記命令配布制御部は、
前記配布時刻と配布した前記機能命令に対する応答の状態とを対応付けて前記複数の転送装置毎に管理し、
前記複数の転送装置のうち、前記状態が前記機能命令を配布した転送装置からの機能命令に対する応答の受信を待っていることを示す応答待ち状態である転送装置に関して、前記配布時刻および現在の時刻に基づく時間情報と前記第1閾値との比較処理を実行し、
前記比較処理の結果に応じて、前記機能命令に対する応答のタイムアウトを判定する
ことを特徴とする制御装置。 - 請求項13に記載の制御装置であって、
前記複数の転送装置それぞれの稼働状況を監視する死活監視を行う死活監視部をさらに備え、
前記死活監視部は、
前記死活監視を行う命令である死活監視命令を前記命令配布制御部に発行し、
前記命令配布制御部は、
前記死活監視部からの前記死活監視命令を前記複数の転送装置それぞれに配布し、配布した前記死活監視命令に対する応答を前記複数の転送装置それぞれから受信すると、受信した前記死活監視命令に対する応答それぞれを前記死活監視部に通知し、
前記死活監視部は、
前記命令配布制御部からの前記死活監視命令に対する応答を受信すると、前記死活監視命令に対する応答を送信した転送装置の前記稼働状況は稼働中であると判定し、
前記命令配布制御部は、
前記複数の転送装置のうち、前記死活監視部にて稼働中と判定され、かつ、前記状態が応答待ち状態である転送装置に関して、前記比較処理を実行し、
前記機能部は、
前記機能命令を発行した時刻に関する発行時刻から経過した時間に対する閾値であり、前記第1閾値より大きい第2閾値を管理し、
前記発行時刻から前記第2閾値の時間が経過するまでに前記命令配布制御部から機能命令に対する応答を受信しない場合、発行した前記機能命令に対する応答を受信せずタイムアウトしたと判定し、
前記転送装置制御部は、
前記機能部がタイムアウトしたと判定した場合、前記複数の転送装置それぞれの運用を停止させる制御を行う
ことを特徴とする制御装置。 - ネットワークに接続される通信システムであって、
前記ネットワークを介してデータを転送する複数の転送装置と、
前記複数の転送装置の運用を制御する転送装置制御モジュールと、前記複数の転送装置それぞれの稼働状況を監視する死活監視を行う命令である死活監視命令を発行する死活監視モジュールと、前記転送装置に所定の機能を実行させる命令である機能命令を発行する機能モジュールと、前記死活監視モジュールからの前記死活監視命令および前記機能モジュールからの前記機能命令を前記複数の転送装置それぞれに配布し、前記機能命令に対する応答および前記死活監視命令に対する応答を監視する命令配布制御モジュールと、を有する制御装置と、
を備え、
前記命令配布制御モジュールは、
前記機能命令に対する応答の監視にて、前記複数の転送装置のうち一部の転送装置から前記機能命令に対する応答を受信し、残りの転送装置から前記機能命令に対する応答を受信せずにタイムアウトした場合に、前記転送装置からの前記機能命令に対する応答があった旨を前記機能モジュールへ送信するとともに、前記タイムアウトした残りの転送装置に関する情報を前記転送装置制御モジュールへ送信し、
前記死活監視命令に対する応答の監視にて、前記複数の転送装置それぞれから前記死活監視命令に対する応答を受信すると、受信した前記死活監視命令に対する応答それぞれを前記死活監視モジュールに送信し、
前記死活監視モジュールは、
前記命令配布制御モジュールから前記複数の転送装置のうち一部の転送装置からの前記死活監視命令に対する応答を受信し、残りの転送装置からの前記死活監視命令に対する応答を受信せずにタイムアウトした場合に、前記タイムアウトした残りの転送装置に関する情報を前記転送装置制御モジュールへ送信し、
前記転送装置制御モジュールは、
前記命令配布制御モジュールもしくは前記死活監視モジュールから前記タイムアウトした残りの転送装置に関する情報を受信すると、前記タイムアウトした残りの転送装置の運用を停止させる制御を行う
ことを特徴とする通信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015037633A JP2016163084A (ja) | 2015-02-27 | 2015-02-27 | 通信装置、制御装置および通信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015037633A JP2016163084A (ja) | 2015-02-27 | 2015-02-27 | 通信装置、制御装置および通信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016163084A true JP2016163084A (ja) | 2016-09-05 |
Family
ID=56847303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015037633A Pending JP2016163084A (ja) | 2015-02-27 | 2015-02-27 | 通信装置、制御装置および通信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016163084A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021048505A (ja) * | 2019-09-19 | 2021-03-25 | 株式会社Pfu | 情報処理装置、情報処理方法、及びプログラム |
-
2015
- 2015-02-27 JP JP2015037633A patent/JP2016163084A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021048505A (ja) * | 2019-09-19 | 2021-03-25 | 株式会社Pfu | 情報処理装置、情報処理方法、及びプログラム |
JP7304250B2 (ja) | 2019-09-19 | 2023-07-06 | 株式会社Pfu | 情報処理装置、情報処理方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4462969B2 (ja) | フェイルオーバクラスタシステム及びフェイルオーバ方法 | |
TWI734890B (zh) | 提供資料複製於跨光纖非揮發性記憶乙太網路固態硬碟之系統及方法 | |
US8078690B2 (en) | Storage system comprising function for migrating virtual communication port added to physical communication port | |
US20150201036A1 (en) | Gateway device, file server system, and file distribution method | |
US8347031B2 (en) | Storage system and control method for managing the input and output of data in a network to avoid congestion | |
US8560878B2 (en) | System and method for failure detection by a storage expander preceding an expander experiencing a failure | |
JP6325001B2 (ja) | 階層データ構造のノードにおいて再帰的イベントリスナを用いる方法およびシステム | |
JP4529767B2 (ja) | クラスタ構成コンピュータシステム及びその系リセット方法 | |
JP2007072571A (ja) | 計算機システム及び管理計算機ならびにアクセスパス管理方法 | |
US10725883B2 (en) | Externally triggered maintenance of state information of virtual machines for high availablity operations | |
CN108347339B (zh) | 一种业务恢复方法及装置 | |
CN108369544A (zh) | 计算系统中延期的服务器恢复 | |
JP6004079B2 (ja) | スイッチ及びプログラム | |
US9754032B2 (en) | Distributed multi-system management | |
JP2019095971A (ja) | ストレージシステム、ストレージ制御装置およびプログラム | |
US10725804B2 (en) | Self triggered maintenance of state information of virtual machines for high availability operations | |
JP2019092122A (ja) | 中継装置及びプログラム | |
JP6179119B2 (ja) | 管理装置、管理方法、及び管理プログラム | |
JP5930029B2 (ja) | 管理装置およびログ採取方法 | |
JP2016163084A (ja) | 通信装置、制御装置および通信システム | |
US8819481B2 (en) | Managing storage providers in a clustered appliance environment | |
JP5590222B2 (ja) | 情報処理装置、および障害対応プログラム | |
US20070201387A1 (en) | Information processing device, communication load distribution method | |
JP2015114952A (ja) | ネットワークシステム、監視制御装置およびソフトウェア検証方法 | |
CN112650440B (zh) | 路径替换方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170117 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20170124 |