(57)【特許請求の範囲】
【請求項１】
第１ネットワークを介して第１ノードからリクエストを受け付け、前記リクエストを解析する受付部と、
第２ネットワークを介して、第２ノードから前記リクエストに基づくデータを取得するのに要する第１時間を記憶する第１記憶部と、
前記第１ノードが前記リクエストに対する応答を待ち受ける第２時間を記憶する第２記憶部と、
前記第１時間と前記第２時間とを比較し、前記第１時間が前記第２時間より長い場合に、前記リクエストを破棄すると判定し、前記第１時間が前記第２時間以下の場合に、前記リクエストを実行すると判定する判定部と、
前記判定部が前記リクエストを実行すると判定した場合に、前記第２ネットワークを介して、前記第２ノードへデータ取得メッセージを送信し、前記第２ノードから前記リクエストに基づくデータを含む応答メッセージを受信する取得部と、
前記第１ネットワークを介して前記データを前記第１ノードへ送信する応答部と、
前記受付部が前記リクエストを受け付けてから前記応答部が前記データを送信するまでに要する第３時間を算出する第１算出部と、
を備え、
前記第１算出部は、前記第１ノードが前記データを受信し、かつ前記第３時間が前記第２時間より長い場合、又は、前記第１ノードが前記データを受信せず、かつ前記第３時間が前記第２時間より短い場合に、前記第３時間を用いて前記第２記憶部に記憶されている前記第２時間を更新することを特徴とする中継装置。
【請求項２】
前記取得部が前記データ取得メッセージを送信してから前記応答メッセージを受信するまでの時間を算出し、算出した時間を前記第１時間として前記第１記憶部に記憶させる第２算出部をさらに備えることを特徴とする請求項１に記載の中継装置。
【請求項３】
前記応答部は、前記判定部が前記リクエストを破棄すると判定したことを前記第１ノードに通知することを特徴とする請求項１又は２に記載の中継装置。
【請求項４】
前記取得部は、前記第２ノードが異常状態にあるか又は正常状態にあるかを検知し、前記応答部は、前記取得部による検知情報を前記第１ノードに通知することを特徴とする請求項１乃至３のいずれかに記載の中継装置。
【請求項５】
第１ネットワーク及び第２ネットワークに接続される中継装置と、
前記第１ネットワークを介して前記中継装置と通信を行う第１ノードと、
前記第２ネットワークを介して前記中継装置と通信を行う第２ノードと、
を備える中継システムであって、
前記中継装置は、
前記第１ネットワークを介して前記第１ノードからリクエストを受け付け、前記リクエストを解析する受付部と、
前記第２ネットワークを介して、前記第２ノードから前記リクエストに基づくデータを取得するのに要する第１時間を記憶する第１記憶部と、
前記第１ノードが前記リクエストに対する応答を待ち受ける第２時間を記憶する第２記憶部と、
前記第１時間と前記第２時間とを比較し、前記第１時間が前記第２時間より長い場合に、前記リクエストを破棄すると判定し、前記第１時間が前記第２時間以下の場合に、前記リクエストを実行すると判定する判定部と、
前記判定部が前記リクエストを実行すると判定した場合に、前記第２ネットワークを介して、前記第２ノードから前記リクエストに基づくデータを取得する取得部と、
前記取得部が取得した前記データを、前記第１ネットワークを介して前記第１ノードへ送信する応答部と、
前記受付部が前記リクエストを受け付けてから前記応答部が前記データを送信するまでに要する第３時間を算出する算出部と、
を備え、
前記算出部は、前記第１ノードが前記データを受信し、かつ前記第３時間が前記第２時間より長い場合、又は、前記第１ノードが前記データを受信せず、かつ前記第３時間が前記第２時間より短い場合に、前記第３時間を用いて前記第２記憶部に記憶されている前記第２時間を更新することを特徴とする中継システム。
【請求項６】
第１ネットワークを介して第１ノードからリクエストを受け付けるステップと、
前記リクエストを解析するステップと、
第２ネットワークを介して第２ノードから前記リクエストに基づくデータを取得するのに要する第１時間を第１記憶部から取り出すステップと、
前記第１ノードが前記リクエストに対する応答を待ち受ける第２時間を第２記憶部から取り出すステップと、
前記第１時間が前記第２時間より長い場合に、前記リクエストを破棄すると判定するステップと、
前記第１時間が前記第２時間以下の場合に、前記リクエストに基づくデータを前記第２ノードから取得するステップと、
前記第２ノードから取得した前記データを前記第１ノードへ送信するステップと、
前記リクエストを受け付けてから前記データを送信するまでに要する第３時間を算出するステップと、
前記第１ノードが前記データを受信し、かつ前記第３時間が前記第２時間より長い場合、又は、前記第１ノードが前記データを受信せず、かつ前記第３時間が前記第２時間より短い場合に、前記第３時間を用いて前記第２記憶部に記憶されている前記第２時間を更新するステップと、
をコンピュータに実行させる中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、中継装置、中継システム、及び中継プログラムに関する。
【背景技術】
【０００２】
特性の異なる複数の通信媒体同士を接続し、各々の通信媒体を経由して通信可能な通信装置（ノード）同士の通信を媒介する中継装置（例：ルータ、ゲートウェイ）は、情報通信システムにおいて広く用いられている。特に、中継装置の技術的及び経済的な質の向上により、ＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）のみならず、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）においても広帯域かつ低コストの通信網が構築され、産業及び文化の発展に寄与している。
【０００３】
一方、建築物内に設置された電気設備の状態監視や制御を実施するための制御システム（ＢＡＳ：Ｂｕｉｌｄｉｎｇ  Ａｕｔｏｍａｔｉｏｎ  Ｓｙｓｔｅｍ）に使われる通信網は、建築物が建築された際に構築されたものを長年使用している場合が多い。これは、元来広帯域な通信を必要としないことや、通信媒体や通信機器が壁面内に埋め込まれてしまっているなど、通信網の更新に高いコストが必要となることが多いためである。
【０００４】
近年、省資源、コスト削減、地球温暖化防止のために、建築物内で消費するエネルギーを削減することが求められている。このため、電気設備のエネルギー消費量などのデータを、ＬＡＮを経由して入居者に対して可視化（見える化）し、入居者の省エネ活動を促進する取り組みもなされている。電気設備のデータを、入居者が利用する通信網（ＬＡＮ）に伝送するためには、建築物内の制御システムの通信網と、建築物内のＬＡＮなどの通信網とを、中継装置を介して接続する必要がある。
【０００５】
しかし、建築物内の制御システムの通信網は狭帯域であるのに対し、建築物内のＬＡＮなどの通信網は広帯域であることが多い。そのため、中継装置が接続する通信媒体の特性に大きな差があることが多く、従来の中継装置では性能上の問題が発生する可能性があった。
【０００６】
例えば、広帯域な第１ネットワークに接続されたアクセスノード（ＬＡＮに接続されたパーソナルコンピュータなどの情報処理装置）が、中継装置を介して、狭帯域な第２ネットワークに接続されたデータ出力ノード（例えば電気設備に具備されるセンサノード）のデータを取得する場合について考えてみる。
【０００７】
アクセスノードが具備する通信入力装置や、アクセスノード内で動作する通信ソフトウェアは、広帯域なネットワークを介して通信を行うことに最適化されていることが多いため、広帯域ネットワークに典型的な通信遅延を想定して設計されていることが多い。一方、第２ネットワークに接続されるデータ出力ノードの応答速度は、第２ネットワークの狭い帯域や、第２ネットワークに典型的な通信遅延を想定して設計されていることが多い。
【０００８】
このため、第１ネットワークに接続されているアクセスノードが、第２ネットワークに接続されたデータ出力ノードに対して、高頻度でデータ取得の要求を送信すると、データ出力ノードはこのような高頻度のデータ取得要求に応答できず、輻輳が発生し易くなるという問題があった。
【０００９】
また、第２ネットワーク上で輻輳が発生すると、中継装置内において、第２ネットワークに伝送するデータの待ち行列が長くなり、輻輳が発生する可能性が高くなるという問題があった。
【００１０】
このように、中継装置が広帯域なネットワークと狭帯域なネットワークの間で中継処理を行う場合、中継装置内および狭帯域なネットワーク上において、輻輳が発生し易くなるという問題があった。
【００１１】
従来の中継装置では、輻輳状態を低減するために、輻輳発生前に、確率的にパケットを破棄する、ＲＥＤ（Ｒａｎｄｏｍ  Ｅａｒｌｙ  Ｄｅｔｅｃｔｉｏｎ）と呼ばれる手法が用いられていた。しかし、この手法は、パケットを確率的に破棄するため、破棄してよい処理を破棄できなかったり、破棄すべきでない処理を破棄してしまったりするという課題があった。
【００１２】
また、バッファ溢れによるデータ破棄の発生率が増加したら、バッファ容量を増加させて、データ破棄を低減する手法が知られている。しかし、バースト発生時にバッファを増加させるため、処理の破棄は減るが、処理待ち時間が増大し、輻輳状態の発生を防止できないという課題があった。特に、建築物内の設備機器は応答が遅いので、その分滞留するリクエストが増大し、バッファが肥大化する可能性があった。
【００１３】
このように、確率的にパケットを破棄して輻輳発生を低減する手法や、バッファ容量を増加させて破棄を低減する手法では、必要のない処理、すなわち無駄な処理、だけを破棄することはできなかった。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特許第３６２３７１２号公報
【非特許文献】
【００１５】
【非特許文献１】Ｆｌｏｙｄ, Ｓ., ａｎｄ Ｊａｃｏｂｓｏｎ, Ｖ., “Ｒａｎｄｏｍ Ｅａｒｌｙ Ｄｅｔｅｃｔｉｏｎ  ｇａｔｅｗａｙｓ  ｆｏｒ  Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ”，  Ｖ．１  Ｎ．４，  Ａｕｇｕｓｔ  １９９３，  ｐｐ．３９７−４１３
【発明の概要】
【発明が解決しようとする課題】
【００１６】
本発明は、必要のない処理（無駄な処理）だけを破棄して輻輳発生を低減する中継装置、中継システム及び中継プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本実施形態によれば、中継装置は、第１ネットワークを介して第１ノードからリクエストを受け付け、前記リクエストを解析する受付部と、第２ネットワークを介して、第２ノードから前記リクエストに基づくデータを取得するのに要する第１時間を記憶する第１記憶部と、前記第１ノードが前記リクエストに対する応答を待ち受ける第２時間を記憶する第２記憶部と、前記第１時間と前記第２時間とを比較し、前記第１時間が前記第２時間より長い場合に、前記リクエストを破棄すると判定し、前記第１時間が前記第２時間以下の場合に、前記リクエストを実行すると判定する判定部と、前記判定部が前記リクエストを実行すると判定した場合に、前記第２ネットワークを介して、前記第２ノードへデータ取得メッセージを送信し、前記第２ノードから前記リクエストに基づくデータを含む応答メッセージを受信する取得部と、前記第１ネットワークを介して前記データを前記第１ノードへ送信する応答部と、前記受付部が前記リクエストを受け付けてから前記応答部が前記データを送信するまでに要する第３時間を算出する第１算出部と、を備え、前記第１算出部は、前記第１ノードが前記データを受信し、かつ前記第３時間が前記第２時間より長い場合、又は、前記第１ノードが前記データを受信せず、かつ前記第３時間が前記第２時間より短い場合に、前記第３時間を用いて前記第２記憶部に記憶されている前記第２時間を更新することを特徴とする。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係る中継システムの概略構成図である。
【図２】同実施形態に係る中継システムの動作の一例を示すシーケンス図である。
【図３】同実施形態に係る中継装置の概略構成図である。
【図４】同実施形態に係るリクエスト受付処理を説明するフローチャートである。
【図５】同実施形態に係るリクエスト破棄判定処理を説明するフローチャートである。
【図６】同実施形態に係るデータ取得処理及びデータ取得時間算出処理を説明するフローチャートである。
【図７】同実施形態に係るリクエスト応答処理及びタイムアウト時間算出処理を説明するフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて説明する。
【００２０】
図１に本発明の実施形態に係る中継システムの概略構成を示す。中継システムは、特性の異なる複数のネットワークに接続される中継装置１００と、第１ネットワーク１０を介して中継装置１００と通信可能な複数のアクセスノード１１、１２と、第２ネットワーク２０を介して中継装置１００と通信可能な複数のデータ出力ノード２１、２２とを備える。第１ネットワーク１０と第２ネットワーク２０は例えば帯域が異なり、第１ネットワーク１０が広帯域、第２ネットワーク２０が狭帯域である。
【００２１】
アクセスノード１１、１２は、中継装置１００と通信することにより、データ出力ノード２１、２２との間でデータの受け渡しを行う。また、データ出力ノード２１、２２は、中継装置１００と通信することにより、アクセスノード１１、１２との間でデータの受け渡しを行う。
【００２２】
例えば、アクセスノード１１、１２はＰＣ、第１ネットワーク１０はＬＡＮ、データ出力ノード２１、２２は建築物内の設備機器のデータ（空調の設定温度や照明のオン／オフ等のデータ）を観測するセンサノード、第２ネットワーク２０は建築物内の制御システムの通信網である。
【００２３】
図１では、中継システムが２個のアクセスノード１１、１２を有する例を示したが、１個でも良いし、３個以上でもよい。同様に、中継システムが有するデータ出力ノードは１個でも良いし、３個以上でもよい。
【００２４】
図２に、本実施形態に係る中継システムの動作の一例として、アクセスノード１１が、データ出力ノード２１の観測データを、中継装置１００を経由して取得する場合の動作を示す。
【００２５】
まず、アクセスノード１１が、中継装置１００に対して、データ出力ノード２１の観測データを取得するためのリクエストメッセージ２０１を送信する。リクエストメッセージ２０１には、データ出力ノード２１が観測しているデータを示す識別子が含まれる。
【００２６】
中継装置１００は、リクエストメッセージ２０１を解析し、データ出力ノード２１に対して、対応するデータを取得するためのデータ取得メッセージ２０２を送信する。
【００２７】
データ出力ノード２１は、中継装置１００からのデータ取得メッセージ２０２を解析し、対応するデータを含む応答メッセージ２０３を中継装置１００に送信する。
【００２８】
中継装置１００は、データ出力ノード２１からの応答メッセージ２０３を解析し、対応するデータを含むリクエスト応答メッセージ２０４をアクセスノード１１に送信する。
【００２９】
このような一連の動作により、アクセスノード１１は、データ出力ノード２１による観測データを取得することができる。
【００３０】
なお、中継装置１００は、アクセスノード１１からリクエストメッセージ２０１を受け取ってから、アクセスノード１１へリクエスト応答メッセージ２０４を送信するまでに要した時間Ｔ１を測定する。また、中継装置１００は、データ出力ノード２１に対してデータ取得メッセージ２０２を送信してから、データ出力ノード２１からメッセージ２０３を受信するまでのデータ取得処理に要した時間Ｔ２を測定する。以下の説明ではこの時間Ｔ２をデータ取得時間と呼ぶ。
【００３１】
図３に、中継装置１００の概略構成を示す。中継装置１００は、リクエスト受付部１１１、リクエスト破棄判定部１１２、データ取得部１１３、データ取得時間算出部１１４、リクエスト応答部１１５、タイムアウト時間算出部１１６、リクエストキュー１２１、リクエスト応答キュー１２２、データ取得時間記憶部１２３、及びタイムアウト時間記憶部１２４を備える。
【００３２】
リクエスト受付部１１１は、第１ネットワーク１０を介してアクセスノード１１、１２からリクエスト（リクエストメッセージ２０１）を受け付ける。
【００３３】
リクエスト破棄判定部１１２は、リクエスト受付部１１１が受け付けたリクエストを破棄するか否か判定する。判定処理については後述する。
【００３４】
リクエストキュー１２１は、リクエスト受付部１１１が受け付けたリクエストのうち、リクエスト破棄判定部１１２が破棄しないと判定したリクエストのデータ取得処理内容が登録される。
【００３５】
データ取得部１１３は、リクエストキュー１２１に登録されているデータ取得処理内容に基づいて、第２ネットワーク２０を介してデータ出力ノード２１、２２へデータ取得メッセージを出力する。また、データ取得部１１３は、データ出力ノード２１、２２から応答メッセージを受信し、応答メッセージに含まれるデータをリクエスト応答キュー１２２に登録する。
【００３６】
データ取得時間算出部１１４は、データ取得部１１３がデータ出力ノード２１、２２へデータ取得メッセージを出力してから応答メッセージを受信するまでのデータ取得時間を算出し、データ取得時間記憶部１２３に格納する。
【００３７】
データ取得時間記憶部１２３は、データ取得先や取得データ毎に、データ取得時間を記憶する。
【００３８】
リクエスト応答部１１５は、リクエスト応答キュー１２２に登録されているデータを含むリクエスト応答メッセージを、第１ネットワーク１０を介してアクセスノード１１、１２へ出力する。また、リクエスト応答部１１５は、出力したリクエスト応答メッセージをアクセスノード１１、１２が受信したか否かを検出する。アクセスノード１１、１２は、中継装置１００へリクエストを出力してから所定時間の間、中継装置１００からのリクエスト応答メッセージを待ち受けており、この所定時間を超えると、リクエスト応答メッセージを受信しない。この所定時間をタイムアウト時間と呼ぶ。
【００３９】
タイムアウト時間記憶部１２４は、アクセスノード１１、１２のタイムアウト時間（タイムアウト時間と推定される時間）を記憶する。
【００４０】
タイムアウト時間算出部１１６は、リクエスト受付部１１１がリクエストを受け付けてから、リクエスト応答部１１５がリクエスト応答メッセージを出力するまでに要した時間を計算する。そして、タイムアウト時間算出部１１６は、算出した時間、及びアクセスノード１１、１２がリクエスト応答メッセージを受信したか否かに基づいて、タイムアウト時間記憶部１２４に記憶されているタイムアウト時間を更新する。
【００４１】
次に、中継装置１００の各部の処理の詳細について、フローチャートを用いて説明する。
【００４２】
まず、図４に示すフローチャートを用いて、リクエスト受付部１１１における処理を説明する。
【００４３】
（ステップＳ４０１）リクエスト受付部１１１が、アクセスノード１１（又は１２）からのリクエストを受信する。なお、このとき、タイムアウト時間算出部１１６が、リクエスト受け付けからリクエスト応答までに要する時間の計測を開始する。
【００４４】
（ステップＳ４０２）リクエスト受付部１１１が、リクエストの解析を行う。
【００４５】
（ステップＳ４０３）リクエスト受付部１１１が、当該リクエストを破棄すべきか否かの判定を、リクエスト破棄判定部１１２に依頼する。
【００４６】
（ステップＳ４０４）リクエスト廃棄判定部１１２がリクエストを破棄しないと判定した場合はステップＳ４０５へ進み、破棄すると判定した場合はステップＳ４０６へ進む。
【００４７】
（ステップＳ４０５）リクエスト受付部１１１が、当該リクエストのデータ取得処理内容をリクエストキュー１２１に登録する。リクエストキュー１２１に登録する際の、情報の種類または形式は任意である。例えば、当該リクエストに含まれるデータ取得処理内容の全てを登録してもよいし、リクエストに含まれるデータ取得先（ノード、ポイント、識別子）と取得すべきデータ（種類、識別子、データ依存の属性）と関連づけた形式で保存してもよく、リクエストを受信した順序や時刻、登録した順序や時刻と共に登録してもよい。また、データ取得先の識別子やデータ依存の属性が同じリクエストが重複する場合は、適宜集約して登録してもよい。
【００４８】
（ステップＳ４０６）リクエスト受付部１１１が、当該リクエストを破棄する。
【００４９】
次に、図５に示すフローチャートを用いて、リクエスト破棄判定部１１２における処理を説明する。
【００５０】
（ステップＳ５０１）リクエスト破棄判定部１１２が、リクエスト受付部１１１により受け付けられたリクエストのデータ取得処理内容に基づいて、このデータ取得処理に要する時間Ｔ３を、データ取得時間記憶部１２３から取得する。データ取得処理内容には、データ取得先や取得すべきデータが含まれており、リクエスト破棄判定部１１２はこれらの情報に基づいて、データ取得時間記憶部１２３からデータ取得処理に要する時間Ｔ３を取得する。
【００５１】
（ステップＳ５０２）リクエスト破棄判定部１１２が、当該リクエストを出力したアクセスノード１１（又は１２）のタイムアウト時間Ｔ４を、タイムアウト時間記憶部１２４から取得する。なお、ステップＳ５０１、ステップＳ５０２の処理順序は任意である。
【００５２】
（ステップＳ５０３）リクエスト破棄判定部１１２が、ステップＳ５０１で取得した時間Ｔ３とステップＳ５０２で取得した時間Ｔ４とを比較する。時間Ｔ３が時間Ｔ４より大きい場合はステップＳ５０４へ進み、時間Ｔ３が時間Ｔ４以下の場合はステップＳ５０５へ進む。
【００５３】
（ステップＳ５０４）リクエスト破棄判定部１１２が、リクエストを破棄すると判定する。これは、データ取得時間がタイムアウト時間より長いため、データ取得処理を実行しデータ出力ノード２１、２２からデータを取得しても、アクセスノード１１、１２がリクエスト応答メッセージを受信せず、データ取得処理が無駄になるためである。
【００５４】
（ステップＳ５０５）リクエスト破棄判定部１１２が、リクエストを破棄しない（実行する）と判定する。これは、データ取得時間がタイムアウト時間以下であり、データ取得処理を実行してアクセスノード１１、１２へ出力したリクエスト応答メッセージが、アクセスノード１１、１２によって受信され、データ取得処理が無駄にならないためである。
【００５５】
次に、図６に示すフローチャートを用いて、データ取得部１１３及びデータ取得時間算出部１１４における処理を説明する。
【００５６】
（ステップＳ６０１）データ取得部１１３が、リクエストキュー１２１からリクエストに係るデータ取得処理内容を取得する。
【００５７】
（ステップＳ６０２）データ取得部１１３が、データ出力ノード２１（又は２２）に対して送信するデータ取得メッセージを作成する。
【００５８】
（ステップＳ６０３）データ取得部１１３が、データ取得メッセージを送信する。なお、この時、データ取得時間算出部１１４が、データ取得時間の計測を開始する。
【００５９】
（ステップＳ６０４）データ取得部１１３が、データ出力ノード２１（又は２２）から応答メッセージを受信する。この時、データ取得時間算出部１１４は、データ取得時間の計測を停止する。
【００６０】
（ステップＳ６０５）データ取得部３１３が、取得したデータを、リクエスト応答キュー１２２に登録する。リクエストキュー応答１２２に登録する際の、情報の種類または形式は任意である。例えば、当該取得したデータに含まれるデータのみを登録してもよいし、当該取得したデータに、データ取得先（ノード、ポイント、識別子）と取得したデータに関する情報（種類、識別子、データ依存の属性）と関連づけた形式で保存してもよく、データを受信した順序や時刻、登録した順序や時刻と共に登録してもよい。また、データ取得先の識別子やデータ依存の属性が同じデータが重複する場合は、適宜集約して登録してもよい。
【００６１】
（ステップＳ６０６）データ取得時間算出部１１４が、計測したデータ取得時間（図２の時間Ｔ２に相当）を、データ取得時間記憶部１２３に保存する。このとき、取得したデータに関する情報（ノード、ポイント、識別子、種類、識別子、データ依存の属性）と関連づけた形式で保存してもよい。また、データ取得時間は、計測の度に保存してもよいし、過去に計測したデータ取得時間と異なる場合にのみ保存してもよい。また、過去に計測したデータ取得時間の履歴から、平均値や分散値、移動平均値などの統計処理を施した値を保存してもよい。
【００６２】
なお、ここでは、データ取得時間算出部１１４がデータ取得時間を計測する例を示したが、データ取得部１１３が計測してもよい。また、データ取得にかかる時間が既知である場合には、予めこの時間を装置内もしくは装置外の記憶領域に保存しておいてもよい。
【００６３】
次に、図７に示すフローチャートを用いて、リクエスト応答部１１５及びタイムアウト時間算出部１１６における処理を説明する。
【００６４】
（ステップＳ７０１）リクエスト応答部１１５が、リクエスト応答キュー１２２に登録されているデータを取得する。
【００６５】
（ステップＳ７０２）リクエスト応答部１１５が、アクセスノード１１（又は１２）に対して、取得したデータを含むリクエスト応答メッセージを送信する。このとき、タイムアウト時間算出部１１６は、（図４のステップＳ４０１で開始していた）リクエスト受け付けからリクエスト応答までに要する時間の計測を停止する。
【００６６】
（ステップＳ７０３）アクセスノード１１（又は１２）がリクエスト応答メッセージを受信した場合はステップＳ７０４へ進み、受信しなかった場合はステップＳ７０５へ進む。
【００６７】
アクセスノード１１（又は１２）がリクエスト応答メッセージを受信したか否かの確認方法については種々の方法があり、例えば、アクセスノードへリクエスト応答メッセージを送信した際の異常の有無や、リクエスト応答メッセージを送信した後にアクセスノードからリクエスト応答メッセージを受信した旨の確認応答メッセージを返送されたか否かで確認できる。さらに、アクセスノードからのリクエストメッセージが繰り返し再送されるような場合には、その再送が継続しているか否かによって、アクセスノードがリクエスト応答メッセージを受信できる状態にあるか否かを推定してもよい。
【００６８】
（ステップＳ７０４）タイムアウト時間算出部１１６が、ステップＳ４０１からステップＳ７０２にかけて計測した時間Ｔ５（図２の時間Ｔ１に相当）と、タイムアウト時間記憶部１２４に保存されているタイムアウト時間Ｔ４とを比較する。計測時間Ｔ５がタイムアウト時間Ｔ４より長い場合はステップＳ７０６へ進む。
【００６９】
（ステップＳ７０５）タイムアウト時間算出部１１６が、ステップＳ４０１からステップＳ７０２にかけて計測した時間Ｔ５と、タイムアウト時間記憶部１２４に保存されているタイムアウト時間Ｔ４とを比較する。計測時間Ｔ５がタイムアウト時間Ｔ４より短い場合はステップＳ７０６へ進む。
【００７０】
（ステップＳ７０６）タイムアウト時間算出部１１６が、計測時間Ｔ５をタイムアウト時間記憶部１２４に保存し、アクセスノード１１（又は１２）のタイムアウト時間を更新する。
【００７１】
アクセスノード１１（又は１２）がリクエスト応答メッセージを受信し（ステップＳ７０３−Ｙｅｓ）、かつ計測時間Ｔ５がタイムアウト時間Ｔ４より長い（ステップＳ７０４−Ｙｅｓ）場合、中継装置１００で把握しているアクセスノード１１（又は１２）のタイムアウト時間より、アクセスノード１１（又は１２）の実際のタイムアウト時間が長いことになる。従って、タイムアウト時間記憶部１２４に記憶されているタイムアウト時間を更新する（計測時間Ｔ５に置き換える）ことで、アクセスノード１１（又は１２）に対して、より多くのリクエスト応答を送信することができる。
【００７２】
アクセスノード１１（又は１２）がリクエスト応答メッセージを受信せず（ステップＳ７０３−Ｎｏ）、かつ計測時間Ｔ５がタイムアウト時間Ｔ４より短い（ステップＳ７０５−Ｙｅｓ）場合、中継装置１００で把握しているアクセスノード１１（又は１２）のタイムアウト時間より、アクセスノード１１（又は１２）の実際のタイムアウト時間が短いことになる。従って、タイムアウト時間記憶部１２４に記憶されているタイムアウト時間を更新する（計測時間Ｔ５に置き換える）ことで、リクエスト破棄判定部１１２により破棄すると判定されるリクエストが増え、不要な（無駄になる）データ取得処理の実行を防止することができる。
【００７３】
タイムアウト時間記憶部１２４に計測時間Ｔ５を保存する際、アクセスノードからのリクエスト又はアクセスノードへのリクエスト応答に関する情報（アクセスノードの識別子、リクエストに含まれるデータの種類、前記データ依存の属性）と関連づけた形式で保存してもよい。また、時間Ｔ５を計測する度に保存してもよいし、過去に計測した時間Ｔ５の値と変化があった際にのみ保存してもよいし、過去に計測した時間Ｔ５の履歴から、平均値や分散値、移動平均値などの統計処理を施した値を保存してもよい。
【００７４】
なお、アクセスノード１１、１２のタイムアウト時間は、リクエスト受付部１１１やリクエスト応答部１１５が計測してもよい。また、例えばアクセスノード１１、１２のタイムアウト時間が既知である場合には、予め前記時間を装置内もしくは装置外の記憶領域に保存しておいてもよい。さらに、アクセスノード１１、１２から中継装置１００に対して、アクセスノード１１、１２のタイムアウト時間を明示的に伝達する手段を、アクセスノード１１、１２と中継装置１００に具備させ、中継装置１００はこの手段を用いてアクセスノード１１、１２のタイムアウト時間を取得し、タイムアウト時間記憶部１２４に保存してもよい。
【００７５】
このように、本実施形態に係る中継装置１００によれば、データ取得処理に要する時間がアクセスノードのタイムアウト時間より長く、実行する必要のない（データ取得処理が無駄になる）リクエストだけを破棄し、輻輳発生を低減することができる。
【００７６】
なお、上記実施形態において、リクエスト応答部１１５は、リクエスト破棄判定部１１２がリクエスト（データ取得処理）を破棄すると判定した場合に、その判定内容や判定理由をアクセスノード１１、１２へ通知してもよい。
【００７７】
これにより、アクセスノード１１、１２は、中継装置１００に送信したリクエストが中継装置１００で破棄されたことを知ることができるため、リクエストを再送信したり、データを取得できなかったことについてアクセスノード１１、１２上で動作するソフトウェアに例外処理を実行させたりすることができる。また、アクセスノード１１、１２が具備する表示装置にデータを取得できなかった旨を表示することで、アクセスノード１１、１２の使用者に対して情報提供できる。
【００７８】
また、データ取得部１１３がデータ出力ノード２１、２２の異常を検知した場合に、リクエスト応答部１１５が、その検知情報をアクセスノード１１、１２へ通知してもよい。データ出力ノード２１、２２の異常とは、例えば、電源がオフした状態である。さらに、リクエスト応答部１１５は、データ出力ノード２１、２２が正常に戻ったことを検知した場合に、その検知情報をアクセスノード１１、１２へ通知してもよい。データ出力ノード２１、２２が正常に戻るとは、例えば、電源がオンしたことである。
【００７９】
これにより、アクセスノード１１、１２は、データ出力ノード２１、２２の状態を把握し、適当な処理を実行することができる。
【００８０】
上述した実施形態で説明した中継装置の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、中継装置の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００８１】
また、中継装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００８２】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００８３】
１０  第１ネットワーク
１１、１２  アクセスノード
２０  第２ネットワーク
２１、２２  データ出力ノード
１００  中継装置
１１１  リクエスト受付部
１１２  リクエスト破棄判定部
１１３  データ取得部
１１４  データ取得時間算出部
１１５  リクエスト応答部
１１６  タイムアウト時間算出部
１２１  リクエストキュー
１２２  リクエスト応答キュー
１２３  データ取得時間記憶部
１２４  タイムアウト時間記憶部
【図１】
0005190498.tif 000002
【図２】
0005190498.tif 000003
【図３】
0005190498.tif 000004
【図４】
0005190498.tif 000005
【図５】
0005190498.tif 000006
【図６】
0005190498.tif 000007
【図７】
0005190498.tif 000008