(57)【要約】【課題】通信環境の変化に応じて中継装置を柔軟に選択する。【解決手段】サーバ装置２１０は、ノード装置１０２−１〜１０２−ｎからＧＷ１５０−１〜１５０−ｎを経由して送信されたデータを受信するデータ受信部２１０−１を有する。また、サーバ装置２１０は、ＧＷ１５０−１〜１５０−ｎのそれぞれに対応付けられた評価値が格納されるＧＷ評価テーブル２１０−３を有する。また、サーバ装置２１０は、データが受信されたら、ＧＷ１５０−１〜１５０−ｎの評価値のうち、データ受信部２１０−１で受信したデータを中継した受信データ中継ＧＷの評価値を更新するＧＷ評価部２１０−２を有する。また、サーバ装置２１０は、ＧＷ評価テーブル２１０−３に格納されたＧＷ１５０−１〜１５０−ｎの評価値に応じて、ノード装置にデータを送信する際に、送信するデータを中継する送信データ中継ＧＷを選択するＧＷ選択部２１０−５を有する。【選択図】図３
2011199625.tif 000002
【特許請求の範囲】
【請求項１】
データの通信を行うノード装置からデータの中継を行う複数の中継装置のうちいずれかの中継装置を経由して送信されたデータを受信する受信部と、
前記複数の中継装置のそれぞれに対応付けられた評価値が格納される記憶部と、
前記受信部でデータが受信されたら、前記記憶部に格納された前記複数の中継装置の評価値のうち、前記受信部で受信したデータを中継した受信データ中継装置の評価値を更新する中継装置評価部と、
前記記憶部に格納された前記複数の中継装置の評価値に応じて、前記ノード装置にデータを送信する際に前記送信するデータを中継する送信データ中継装置を選択する中継装置選択部と、
前記中継装置選択部で選択された送信データ中継装置を経由して前記ノード装置にデータを送信する送信部と、
を備えたことを特徴とするサーバ装置。
【請求項２】
前記中継装置評価部は、前記送信部が前記送信データ中継装置を経由して前記ノード装置にデータを送信した結果、前記送信したデータが前記ノード装置で受信されたか否かに応じて、前記送信データ中継装置の評価値を更新する
請求項１に記載のサーバ装置。
【請求項３】
前記中継装置評価部は、前記受信部でデータが受信されたら、前記受信データ中継装置の評価値を増加させ、
前記送信部が前記送信データ中継装置を経由して前記ノード装置にデータを送信した結果、前記送信したデータが前記ノード装置で受信されたら、前記送信データ中継装置の評価値を増加させ、
前記送信部が前記送信データ中継装置を経由して前記ノード装置にデータを送信した結果、前記送信したデータが前記ノード装置で受信されなかったら、前記送信データ中継装置の評価値を減少させ、
前記中継装置選択部は、前記記憶部に格納された前記複数の中継装置の評価値が高い順に、前記送信データ中継装置を選択する
請求項２に記載のサーバ装置。
【請求項４】
前記中継装置評価部は、前記受信部でデータが受信されたら、前記受信データ中継装置の識別子を前記記憶部に格納し、
前記中継装置選択部は、前記記憶部に格納された最新の前記受信データ中継装置の識別子に対応する中継装置を前記送信データ中継装置として選択し、
前記送信部が前記送信データ中継装置を経由して前記ノード装置にデータを送信した結果、前記送信したデータが前記ノード装置で受信されなかったら、前記記憶部に格納された前記複数の中継装置の評価値が高い順に、前記送信データ中継装置を選択する
請求項１に記載のサーバ装置。
【請求項５】
前記送信部が前記ノード装置にデータを送信する際に、データの送信先のノード装置を識別する識別子が前記記憶部に格納されていない場合には、または前記データの送信先のノード装置に関する前記最新の前記受信データ中継装置を経由したデータが前記受信部で受信されてから、あらかじめ設定された最新判定時間が経過した場合には、他のサーバ装置に対して、前記データの送信先のノード装置の識別子が前記他のサーバ装置の記憶部に格納されているか否かを問い合わせる他サーバ装置連携部を有する
請求項４に記載のサーバ装置。
【請求項６】
前記記憶部に格納された前記複数の中継装置の評価値に、あらかじめ設定された周期であらかじめ設定された縮小割合を乗じて前記評価値の最適化を行う最適化部を有する
請求項１に記載のサーバ装置。
【請求項７】
データの通信を行うノード装置からデータの中継を行う複数の中継装置のうちいずれかの中継装置を経由して送信されたデータを受信する受信ステップと、
前記受信ステップでデータが受信されたら、前記複数の中継装置のそれぞれに対応付けて記憶部に格納された評価値のうち、前記受信ステップで受信したデータを中継した受信データ中継装置の評価値を更新する中継装置評価ステップと、
前記記憶部に格納された前記複数の中継装置の評価値に応じて、前記ノード装置にデータを送信する際に前記送信するデータを中継する送信データ中継装置を選択する中継装置選択ステップと、
前記中継装置選択ステップで選択された送信データ中継装置を経由して前記ノード装置にデータを送信する送信ステップと、
を備えたことを特徴とするデータ通信方法。
【請求項８】
データの通信を行うノード装置からデータの中継を行う複数の中継装置のうちいずれかの中継装置を経由して送信されたデータを受信する受信手順と、
前記受信手順でデータが受信されたら、前記複数の中継装置のそれぞれに対応付けて記憶部に格納された評価値のうち、前記受信手順で受信したデータを中継した受信データ中継装置の評価値を更新する中継装置評価手順と、
前記記憶部に格納された前記複数の中継装置の評価値に応じて、前記ノード装置にデータを送信する際に前記送信するデータを中継する送信データ中継装置を選択する中継装置選択手順と、
前記中継装置選択手順で選択された送信データ中継装置を経由して前記ノード装置にデータを送信する送信手順と、
をコンピュータに実行させることを特徴とするデータ通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、データ通信方法、およびデータ通信プログラムに関する。
【背景技術】
【０００２】
従来、センサを有する複数のノード装置を散在させて、各ノード装置のセンシングデータをサーバ装置に収集するセンサネットワークが知られている。センサネットワークでは、各ノード装置とサーバ装置との間にデータの中継を行う複数の中継装置を設けて、各ノード装置は、複数の中継装置のうちのいずれかの中継装置を経由してサーバ装置にデータを送信する。
【０００３】
また、センサネットワークでは、各ノード装置の相互間のネットワークにアドホックネットワークを適用することが知られている。アドホックネットワークでは、各ノード装置は、他の複数のノード装置の中から通信経路となるノード装置を自律的に選択する。例えば通信環境に変化が生じたら、ノード装置は、通信環境の変化前とは異なるノード装置を通信経路とすることにより、通信環境の変化前とは異なる中継装置を経由してサーバ装置にデータを送信することがある。つまり、ノード装置は、固定された中継装置を経由してサーバ装置にデータを送信するのではなく、通信環境の変化に応じて異なる中継装置を経由してサーバ装置にデータを送信する。
【０００４】
一方、サーバ装置がノード装置を遠隔から制御するためのデータをノード装置に送信する場合には、サーバ装置は、複数の中継装置のうちのどの中継装置を経由してノード装置にデータを送信するかを特定する。サーバ装置が中継装置を選択する方式として、サーバ装置は、データの送信元のノード装置のアドレスをデータの受信経路とともに記憶することが知られている。
【０００５】
すなわち、あるノード装置から複数の中継装置のうちのある中継装置を介してサーバ装置にデータが送信されたとすると、サーバ装置はデータを受信したら、データ送信元のノード装置のアドレスと、そのデータを中継した中継装置の情報とを対応付けて記憶する。また、サーバ装置は、ノード装置のアドレスに中継装置の情報がすでに対応付けられていたら、データを中継した中継装置の最新情報を上書きする。そして、サーバ装置は、ノード装置にデータを送信する際には、ノード装置のアドレスに対応づけられた最新情報の中継装置を経由してデータを送信する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−８６６６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術では、中継装置の最新情報が更新された後に通信環境に変化が生じた場合には、サーバ装置はノード装置にデータを送信できないおそれがある。例えば、最新情報に対応する中継装置に障害が発生したら、その中継装置ではデータ中継ができないから、サーバ装置はノード装置にデータを送信できないおそれがある。この場合には、サーバ装置は、最新情報に対応する中継装置を除く他の中継装置のうちのいずれかを選択してデータを送信することが考えられる。しかし、従来技術では、サーバ装置は、最新情報に対応する中継装置を除く他の中継装置に関する情報を有さないから、ノード装置に対するデータ送信の成功率が高い中継装置を柔軟に選択することは難しいと考えられる。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、通信環境の変化に応じて中継装置を柔軟に選択することができるサーバ装置、データ通信方法、およびデータ通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するサーバ装置は、一つの態様において、データの通信を行うノード装置からデータの中継を行う複数の中継装置のうちいずれかの中継装置を経由して送信されたデータを受信する受信部を有する。また、サーバ装置は、複数の中継装置のそれぞれに対応付けられた評価値が格納される記憶部を有する。また、サーバ装置は、受信部でデータが受信されたら、記憶部に格納された複数の中継装置の評価値のうち、受信部で受信したデータを中継した受信データ中継装置の評価値を更新する中継装置評価部を有する。また、サーバ装置は、記憶部に格納された複数の中継装置の評価値に応じて、ノード装置にデータを送信する際に送信するデータを中継する送信データ中継装置を選択する中継装置選択部を有する。また、サーバ装置は、中継装置選択部で選択された送信データ中継装置を経由してノード装置にデータを送信する送信部を有する。
【発明の効果】
【００１０】
本願の開示するサーバ装置の一つの態様によれば、通信環境の変化に応じて中継装置を柔軟に選択することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、アドホックネットワークを説明するための図である。
【図２】図２は、アドホックネットワークを説明するための図である。
【図３】図３は、実施例にかかるサーバ装置の全体構成を示す図である。
【図４】図４は、ＧＷ評価テーブルの構成の一例を示す図である。
【図５】図５は、データ受信時のＧＷ評価部の処理フローを示す図である。
【図６】図６は、データ送信時のＧＷ評価部、ＧＷ選択部、他通信サーバ連携部、メッセージ送信部の処理フローを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するサーバ装置、データ通信方法、およびデータ通信プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により開示技術が限定されるものではない。
【実施例】
【００１３】
まず、実施例にかかるサーバ装置の詳細を説明する前に、図１，図２を用いて主にアドホックネットワークについて説明する。図１、２はアドホックネットワークを説明するための図である。図１に示すように、データの通信を行う複数のノード装置１０２−ａ〜１０２−ｊは、相互にアドホックネットワーク１００で接続される。また、ノード装置１０２−ａ〜１０２−ｊはそれぞれ、複数のＧＷ（ＧａｔｅＷａｙ：ゲートウェイ）１５０−１〜ＧＷ１５０−３とアドホックネットワーク１００で接続される。ノード装置１０２−ａ〜１０２−ｊはそれぞれセンサを有し、センサ検出されたセンシングデータを、ＧＷ１５０−１〜ＧＷ１５０−３のいずれかを経由し、さらに通信路１７０を経由してセンターサーバ２００に送信される。
【００１４】
センターサーバ２００は、サーバ装置２１０，２２０と、制御指示サーバ２３０を有する。サーバ装置２１０，２２０は、センターサーバ２００とノード装置１０２−ａ〜１０２−ｊとの間の通信を管理するサーバである。制御指示サーバ２３０は、ノード装置１０２−ａ〜１０２−ｊへのアクセス指示をサーバ装置２１０，２２０に出力するサーバである。
【００１５】
図１の通信環境では、ノード装置１０２−ａとノード装置１０２−ｂは、ＧＷ１５０−１を経由して、サーバ装置２１０にデータを送信する。ノード装置１０２−ｃは、ＧＷ１５０−２を経由して、サーバ装置２１０にデータを送信する。ノード装置１０２−ｄ〜１０２−ｊは、ＧＷ１５０−３を経由して、サーバ装置２２０にデータを送信する。より具体的には、ノード装置１０２−ｅ，１０２−ｇはともに、ノード装置１０２−ｄ，１０２−ｆ，１０２−ｈ，ＧＷ１５０−３を経由して、サーバ装置２２０にデータを送信する。
【００１６】
アドホックネットワークでは、ノード装置１０２−ａ〜１０２−ｊはそれぞれ、通信環境に変化に応じて、他のノード装置の中から通信経路となるノード装置を自律的に選択する。すなわち、図１の通信環境においてノード装置１０２−ｆに障害が発生した場合には、ノード装置１０２−ｅは、図２に示すように、ノード装置１０２−ｄ，１０２−ｂ，ＧＷ１５０−１を経由して、サーバ装置２１０にデータを送信する。一方、ノード装置１０２−ｇは、ノード装置１０２−ｄ，１０２−ｃ，ＧＷ１５０−２を経由して、サーバ装置２１０にデータを送信する。つまり、ノード装置１０２−ａ〜１０２−ｊはそれぞれ、固定されたＧＷを経由してサーバ装置２１０，２２０にデータを送信するのではなく、通信環境の変化に応じて異なるＧＷを経由してサーバ装置２１０，２２０にデータを送信する。仮に、サーバ装置２２０が、ＧＷ１５０−３経由でノード装置１０２−ｅ，１０２−ｇにデータを送信した場合には、ノード装置１０２−ｆはデータの中継ができないから、通信経路が無くなりデータ送信失敗となる。
【００１７】
続いて、本実施例にかかるサーバ装置の詳細を説明する。図３は、実施例にかかるサーバ装置２１０の全体構成を示す図である。図３では、サーバ装置２１０を例に挙げて説明するが、サーバ装置２２０も同様の構成である。また、図３は、ノード装置１０２−１〜１０２−ｎとＧＷ１５０−１〜ＧＷ１５０−ｎがアドホックネットワーク１００で相互に接続される例を示す。しかし、実施例にかかるサーバ装置は、アドホックネットワークに限らず、通信環境の変化に応じてデータを中継する中継装置が動的に変化するネットワークに接続することができる。なお、ｎは２以上の自然数である。
【００１８】
サーバ装置２１０は、データ受信部２１０−１と、ＧＷ評価部２１０−２と、ＧＷ評価テーブル２１０−３と、制御指示受信部２１０−４と、ＧＷ選択部２１０−５とを有する。また、サーバ装置２１０は、他通信サーバ連携部２１０−６と、通信サーバリスト２１０−７と、メッセージ送信部２１０−８と、外部情報設定部２１０−９と、評価テーブル最適化部２１０−１０とを有する。
【００１９】
データ受信部２１０−１は、ノード装置１０２−１〜１０２−ｎからＧＷ１５０−１〜ＧＷ１５０−ｎのいずれかを経由して送信されたデータを受信する。ノード装置１０２−１〜１０２−ｎから送信されるデータはそれぞれ、ノード装置１０２−ａ〜１０２−ｎのセンサで検出されたセンシングデータ、プローブデータ、アラームメッセージ等である。ＧＷ評価部２１０−２は、データ受信部２１０−１におけるデータの受信結果およびメッセージ送信部２１０−８におけるデータの送信結果に基づいてＧＷ評価テーブル２１０−３を更新する。ＧＷ評価部２１０−２の詳細は後述する。
【００２０】
続いて図４を用いてＧＷ評価テーブル２１０−３を説明する。図４は、ＧＷ評価テーブルの構成の一例を示す図である。図４に示すように、ＧＷ評価テーブル２１０−３には、ノード装置１０２−１〜１０２−ｎのそれぞれを識別するノード識別子２１０−３Ａとして、ｎｏｄｅ１〜ｎｏｄｅｎが設けられる。また、ＧＷ評価テーブル２１０−３には、ｎｏｄｅ１〜ｎｏｄｅｎのそれぞれに対して、最新ＧＷ２１０−３Ｂ、時刻２１０−３Ｃ、ＧＷリスト２１０−３Ｄが格納される。最新ＧＷ２１０−３Ｂには、データ受信部２１０−１で受信したデータを中継したＧＷ（以下、受信データ中継ＧＷという。）の識別子の最新情報が格納される。時刻２１０−３Ｃには、受信データ中継ＧＷを経由したデータをデータ受信部２１０−１で受信した最新の日時および時刻が格納される。ＧＷリスト２１０−３Ｄには、ＧＷ１５０−１〜ＧＷ１５０−ｎのそれぞれを識別するＧＷ識別子ＧＷ１〜ＧＷｎと、ＧＷ識別子ＧＷ１〜ＧＷｎのそれぞれに対応付けられた評価値が格納される。
【００２１】
図３に戻って、制御指示受信部２１０−４は、制御指示サーバ２３０から出力された制御指示データを受信する。ＧＷ選択部２１０−５は、制御指示受信部２１０−４を介して制御指示データを受信したら、ＧＷ評価テーブル２１０−３に基づいて、ノード装置にデータを送信する際に送信データを中継するＧＷ（以下、送信データ中継ＧＷという。）を選択する。ＧＷ選択部２１０−５の詳細は後述する。
【００２２】
他通信サーバ連携部２１０−６は、他の通信サーバであるサーバ装置２２０と通信を行う。通信サーバリスト２１０−７には、センターサーバ２００内で通信可能な他のサーバ装置のリストが格納される。他通信サーバ連携部２１０−６は、通信サーバリスト２１０−７を参照して、他の通信サーバと通信を行う。他通信サーバ連携部２１０−６の詳細は後述する。
【００２３】
メッセージ送信部２１０−８は、ＧＷ選択部２１０−５で選択された送信データ中継ＧＷを経由してノード装置にデータを送信する。また、メッセージ送信部２１０−８は、送信データ中継ＧＷを経由してノード装置にデータを送信した結果、アクセスが成功したか否かの情報をＧＷ評価部２１０−２に出力する。
【００２４】
外部情報設定部２１０−９は、入力インターフェース２４０を介して外部から入力された入力信号に基づいて、最新判定時間、リトライ回数の上限、最適化係数、および最適化周期を設定する。最新判定時間、リトライ回数の上限、最適化係数、および最適化周期は、サーバ装置２１０にあらかじめ設定された値とすることもできる。最新判定時間は、ＧＷ評価テーブル２１０−３に格納された最新ＧＷ２１０−３Ｂの情報が新しい情報か否かを判定するために用いる値である。リトライ回数の上限は、ノード装置に対するデータ送信が失敗したときに、何度再試行するかを定める値である。最適化係数、および最適化周期は、評価テーブル最適化部２１０−１０で用いる値である。
【００２５】
すなわち、評価テーブル最適化部２１０−１０は、外部情報設定部２１０−９で設定された最適化係数、および最適化周期に基づいて、ＧＷ評価テーブル２１０−３に格納されたＧＷ識別子ＧＷ１〜ＧＷｎのそれぞれに対応付けられた評価値の最適化を行う。例えば、評価テーブル最適化部２１０−１０は、最適化係数が５０％、最適化周期が１回／日の場合には、１日１回ＧＷリスト２１０−３Ｄの全ての評価値を５０％に縮小する。評価テーブル最適化部２１０−１０を設けることによって、サーバ装置２１０は、ＧＷ評価テーブル２１０−３の評価値が無限に増加するのを抑制して、評価値の最適化を行うことができる。
【００２６】
続いて、データ受信時のサーバ装置２１０の処理の詳細を説明する。図５は、データ受信時のＧＷ評価部２１０−２の処理フローを示す図である。まず、データ受信部２１０−１でデータが受信されたら、ＧＷ評価部２１０−２は、 データを送信したノード装置の情報がＧＷ評価テーブル２１０−３に存在するか否かを確認する（ステップＳ１０１）。具体的には、ＧＷ評価部２１０−２は、 データを送信したノード装置のノード識別子がＧＷ評価テーブル２１０−３に存在するか否かを確認する。
【００２７】
データを送信したノード装置の情報がＧＷ評価テーブル２１０−３に存在しない場合（ステップＳ１０１でＮＯの場合）には、ＧＷ評価部２１０−２は、データを送信したノード装置の情報をＧＷ評価テーブル２１０−３に新規に追加する（ステップＳ１０２）。具体的には、ＧＷ評価部２１０−２は、ＧＷ評価テーブル２１０−３のノード識別子２１０−３Ａに、データを送信したノード装置のノード識別子を追加する。また、ＧＷ評価部２１０−２は、追加したノード識別子に対する最新ＧＷ２１０−３Ｂに、受信データ中継ＧＷの識別子を追加する。また、ＧＷ評価部２１０−２は、追加したノード識別子に対する時刻２１０−３Ｃに、データ受信部２１０−１でデータを受信した日時および時刻を追加する。また、ＧＷ評価部２１０−２は、追加したノード識別子に対するＧＷリスト２１０−３Ｄに、受信データ中継ＧＷの識別子と、受信データ中継ＧＷの識別子に対応する評価値として「１」を追加する。
【００２８】
一方、データを送信したノード装置の情報がＧＷ評価テーブル２１０−３に存在する場合（ステップＳ１０１でＹＥＳの場合）には、ＧＷ評価部２１０−２は、受信データ中継ＧＷの情報がＧＷ評価テーブル２１０−３に存在するか確認する（ステップＳ１０３）。具体的には、ＧＷ評価部２１０−２は、データを送信したノード装置のノード識別子に対するＧＷリスト２１０−３Ｄに、受信データ中継ＧＷの識別子が存在するか否かを確認する。
【００２９】
受信データ中継ＧＷの情報がＧＷ評価テーブル２１０−３に存在しない場合（ステップＳ１０３でＮＯの場合）には、ＧＷ評価部２１０−２は、受信データ中継ＧＷの情報をＧＷ評価テーブル２１０−３に新規に追加する（ステップＳ１０４）。具体的には、ＧＷ評価部２１０−２は、データを送信したノード識別子に対する最新ＧＷ２１０−３Ｂを受信中継ＧＷに更新する。また、ＧＷ評価部２１０−２は、データを送信したノード識別子に対する時刻２１０−３Ｃを、データを受信した日時および時刻に更新する。また、ＧＷ評価部２１０−２は、データを送信したノード識別子に対するＧＷリスト２１０−３Ｄに、受信データ中継ＧＷの識別子と、受信データ中継ＧＷの識別子に対応する評価値として「１」を追加する。なお、データを送信したノード識別子に対するＧＷリスト２１０−３Ｄが既に埋まっている場合には、評価値が一番低い受信データ中継ＧＷの識別子を削除して、最新の受信データ中継ＧＷの識別子を追加する。
【００３０】
受信データ中継ＧＷの情報がＧＷ評価テーブル２１０−３に存在する場合（ステップＳ１０３でＹＥＳの場合）には、ＧＷ評価部２１０−２は、ＧＷ評価テーブル２１０−３において、受信データ中継ＧＷの情報を更新する（ステップＳ１０５）。具体的には、ＧＷ評価部２１０−２は、データを送信したノード識別子に対する最新ＧＷ２１０−３Ｂを受信中継ＧＷに更新する。また、ＧＷ評価部２１０−２は、データを送信したノード識別子に対する時刻２１０−３Ｃを、データを受信した日時および時刻に更新する。また、ＧＷ評価部２１０−２は、データを送信したノード識別子に対するＧＷリスト２１０−３Ｄの受信データ中継ＧＷの識別子に対応する評価値を増加つまり「＋１」する。なお、ＧＷリスト２１０−３Ｄの評価値を増加または減少させる際の増加値または減少値は、任意に設定することができる。
【００３１】
次に、データ送信時のサーバ装置２１０の処理の詳細を説明する。図６は、データ送信時のＧＷ評価部２１０−２、ＧＷ選択部２１０−５、他通信サーバ連携部２１０−６、メッセージ送信部２１０−８の処理フローを示す図である。まず、ＧＷ選択部２１０−５は、制御指示受信部２１０−４を介して制御指示サーバ２３０からデータ送信の指示を受信したら、データの送信先のノード装置の情報がＧＷ評価テーブル２１０−３に存在するか否かを確認する（ステップＳ２０１）。具体的には、ＧＷ選択部２１０−５は、 データの送信先のノード装置のノード識別子がＧＷ評価テーブル２１０−３に存在するか否かを確認する。
【００３２】
データの送信先のノード装置の情報がＧＷ評価テーブル２１０−３に存在する場合（ステップＳ２０１でＹＥＳの場合）には、ＧＷ選択部２１０−５は、受信データ中継ＧＷの最新情報が最新判定時間内であるか否かを判定する（ステップＳ２０２）。具体的には、ＧＷ選択部２１０−５は、データの送信先のノード装置の識別子に対する時刻２１０−３Ｃと外部情報設定部２１０−９を参照することにより、データ受信部２１０−１でデータを受信してから、最新判定時間が経過したか否かを確認する。
【００３３】
受信データ中継ＧＷの最新情報が最新判定時間内であると判定された場合（ステップＳ２０２でＹＥＳの場合）には、ＧＷ選択部２１０−５は、データの送信先のノード装置の識別子に対する最新ＧＷ２１０−３Ｂを経由してアクセスを行う（ステップＳ２０３）。具体的には、ＧＷ選択部２１０−５は、最新ＧＷ２１０−３Ｂに格納された識別子に対応するＧＷを送信データ中継ＧＷとして選択し、メッセージ送信部２１０−８は、選択された送信データ中継ＧＷを経由してノード装置にデータを送信する。
【００３４】
メッセージ送信部２１０−８は、ＧＷ評価テーブル２１０−３の最新ＧＷ２１０−３ＢのＧＷを経由してノード装置にアクセスを行った結果、アクセスが成功したか否かを判定する（ステップＳ２０４）。具体的には、メッセージ送信部２１０−８は、送信したデータがノード装置で受信されたらアクセスが成功したと判定し、送信したデータがノード装置で受信されなかったらアクセスが失敗したと判定する。メッセージ送信部２１０−８は、アクセスの成否の判定結果をＧＷ評価部２１０−２に送る。
【００３５】
アクセスが成功した場合（ステップＳ２０４でＹＥＳの場合）には、ＧＷ評価部２１０−２は、ＧＷリスト２１０−３Ｄにおいて、アクセスが成功したＧＷ識別子の評価値を増加つまり「＋１」する（ステップＳ２０５）。そして、ＧＷ選択部２１０−５は、ノード装置へのアクセス結果として、データの送信が成功したことを表すＯＫの信号を制御指示サーバ２３０に送信する（ステップＳ２０６）。一方、アクセスが失敗した場合（ステップＳ２０４でＮＯの場合）には、ＧＷ評価部２１０−２は、ＧＷリスト２１０−３Ｄにおいて、アクセスが失敗したＧＷ識別子の評価値を減少つまり「−１」する（ステップＳ２０７）。
【００３６】
続いて、ＧＷ選択部２１０−５は、データの送信先のノード装置の識別子に対するＧＷリスト２１０−３Ｄの評価値が最も高いＧＷ識別子に対応するＧＷを経由してノード装置にアクセスを行う（ステップＳ２０８）。ただし、ステップＳ２０８において、最新ＧＷ２１０−３ＢのＧＷ識別子に対応するＧＷは除かれる。
【００３７】
メッセージ送信部２１０−８は、ＧＷリスト２１０−３Ｄの評価値が最も高いＧＷ識別子に対応するＧＷを経由してノード装置にアクセスを行った結果、アクセスが成功したか否かを判定する（ステップＳ２０９）。
【００３８】
アクセスが成功した場合（ステップＳ２０９でＹＥＳの場合）には、ＧＷ評価部２１０−２は、データの送信先のノード装置の識別子に対する最新ＧＷ２１０−３Ｂにおいて、アクセスが成功したＧＷ識別子を更新する。また、ＧＷ評価部２１０−２は、データの送信先のノード装置の識別子に対する時刻２１０−３Ｃにおいて、データを送信した日時および時刻を更新する（ステップＳ２１０）。また、ＧＷ評価部２１０−２は、データの送信先のノード装置の識別子に対するＧＷリスト２１０−３Ｄにおいて、アクセスが成功したＧＷ識別子の評価値を増加つまり「＋１」する（ステップＳ２１０）。その後、ＧＷ選択部２１０−５は、ノード装置へのアクセス結果として、データの送信が成功したことを表すＯＫの信号を制御指示サーバ２３０に送信する（ステップＳ２０６）。
【００３９】
一方、アクセスが失敗した場合（ステップＳ２０９でＮＯの場合）には、ＧＷ評価部２１０−２は、データ送信先のノード装置の識別子に対するＧＷリスト２１０−３Ｄで、アクセスが失敗したＧＷ識別子の評価値を減少つまり「−１」する（ステップＳ２１１）。その後、ＧＷ選択部２１０−５は、データ送信を試みた回数が、外部情報設定部２１０−９に設定されたリトライ回数の上限未満か否か、および次にＧＷリスト２１０−３Ｄの評価値が高いＧＷ識別子に対応するＧＷがあるか否かを確認する（ステップＳ２１２）。
【００４０】
データ送信を試みた回数がリトライ回数の上限未満であり、かつ次にＧＷリスト２１０−３Ｄの評価値が高いＧＷがある場合（ステップＳ２１２でＹＥＳの場合）には、上述のステップＳ２０８へ進む。ステップＳ２０８以降の処理は上述と同様であるから説明を省略する。一方、データ送信を試みた回数がリトライ回数の上限以上であるか、または次にＧＷリスト２１０−３Ｄの評価値が高いＧＷがない場合（ステップＳ２１２でＮＯの場合）には、上述のステップＳ２０６へ進む。この場合には、ＧＷ選択部２１０−５は、ノード装置へのアクセス結果として、データの送信が失敗したことを表すＮＧの信号を制御指示サーバ２３０に送信する（ステップＳ２０６）。
【００４１】
ところで、データの送信先のノード装置の情報がＧＷ評価テーブル２１０−３に存在しない場合（ステップＳ２０１でＮＯの場合）には、ＧＷ選択部２１０−５は、他通信サーバ連携部２１０−６を介してサーバ装置２２０と通信を行う（ステップＳ２１３）。具体的には、他通信サーバ連携部２１０−６は、データの送信先のノード装置の識別子がサーバ装置２２０のＧＷ評価テーブル２２０−３に存在するか否かをサーバ装置２２０の他通信サーバ連携部２２０−６に問い合わせる。問い合わせを受けたサーバ装置２２０は、他通信サーバ連携部２２０−６で問い合わせを受信し、他通信サーバ連携部２２０−６は、ＧＷ評価テーブル２２０−３を参照して、データの送信先のノード装置の識別子が存在するか否かの結果を返す。他通信サーバ連携部２２０−６は、データの送信先のノード装置の識別子が存在する場合には、そのノード装置の識別子に関する最新ＧＷ２２０−３Ｂ，時刻２２０−３Ｃ，およびＧＷリスト２２０−３Ｄを送信する。他通信サーバ連携部２２０−６は、データの送信先のノード装置の識別子が存在しない場合には、その旨を表す信号を送信する。
【００４２】
サーバ装置２２０と通信を行った結果、送信先のノード装置に関する情報が得られない場合（ステップＳ２１３でＮＯ）には、ＧＷ選択部２１０−５は、ノード装置へのアクセス結果として、ＮＧの信号を制御指示サーバ２３０に送信する（ステップＳ２０６）。
【００４３】
一方、サーバ装置２２０と通信を行った結果、送信先のノード装置に関する情報が得られた場合（ステップＳ２１３でＹＥＳ）には、ＧＷ選択部２１０−５は、送信先のノード装置に関する情報をＧＷ評価テーブル２１０−３に格納する（ステップＳ２１４）。具体的には、ＧＷ選択部２１０−５は、ＧＷ評価テーブル２１０−３のノード識別子２１０−３Ａに、通信装置２２０から得たノード識別子を追加する。また、ＧＷ選択部２１０−５は、追加したノード識別子の最新ＧＷ２１０−３Ｂ，時刻２１０−３Ｃ，ＧＷリスト２１０−３Ｄそれぞれに、通信装置２２０から得た情報を格納する。なお、Ｓ２１４において、送信先のノード装置に関する情報が、複数の他のサーバ装置に格納される場合には、ＧＷ選択部２１０−５は、時刻２１０−３Ｃに格納されている日時および時刻が最新のものを選択して、ＧＷ評価テーブル２１０−３に格納する。その後、処理は上述のステップＳ２０３へ進む。ステップＳ２０３以降の処理は上述と同様であるから説明を省略する。
【００４４】
また、受信データ中継ＧＷの最新情報が最新判定時間内でない場合（ステップＳ２０２でＮＯの場合）には、ＧＷ選択部２１０−５は、他通信サーバ連携部２１０−６を介してサーバ装置２２０と通信を行う（ステップＳ２１５）。具体的には、他通信サーバ連携部２１０−６は、データの送信先のノード装置の識別子がサーバ装置２２０のＧＷ評価テーブル２２０−３に存在するか否かを確認する。
【００４５】
サーバ装置２２０と通信を行った結果、送信先のノード装置に関する情報が得られなかった場合（ステップＳ２１５でＮＯ）には、処理は上述のステップＳ２０３へ進む。ステップＳ２０３以降の処理は上述と同様であるから説明を省略する。
【００４６】
一方、サーバ装置２２０と通信を行った結果、送信先のノード装置に関する情報が得られた場合（ステップＳ２１５でＹＥＳ）には、ＧＷ選択部２１０−５は、最新ＧＷ２１０−３Ｂ，時刻２１０−３Ｃを更新する（ステップＳ２１６）。具体的には、ＧＷ選択部２１０−５は、サーバ装置２２０から、送信先のノード装置に関する最新ＧＷ２２０−３Ｂ，時刻２２０−３Ｃを取得する。そして、ＧＷ選択部２１０−５は、自サーバ装置に格納された送信先のノード装置に対する時刻２１０−３Ｃと、サーバ装置２２０から取得した時刻２２０−３Ｃとを比較して、ＧＷ評価テーブル２１０−３を、新しい方の情報に更新する。その後、処理は上述のステップＳ２０３へ進む。ステップＳ２０３以降の処理は上述と同様であるから説明を省略する。
【００４７】
以上、本実施例のサーバ装置２１０は、受信データ中継ＧＷの最新情報だけではなく、ＧＷ１５０−１〜ＧＷ１５０−ｎのそれぞれに対応付けられた評価値を有するから、通信環境の変化に応じてＧＷを柔軟に選択することができる。すなわち、サーバ装置２１０は、ノード装置から送信されたデータがサーバ装置で受信された場合に、受信データ中継ＧＷの評価値を高くする。また、サーバ装置２１０は、サーバ装置から送信されたデータがノード装置で受信された場合に、送信データ中継ＧＷの評価値を高くする。したがって、ＧＷ評価テーブル２１０−３のＧＷ１５０−１〜ＧＷ１５０−ｎのそれぞれに対応付けられた評価値は、そのＧＷを経由するノード装置へのアクセスの成功率に相関する。サーバ装置２１０は、ＧＷ評価テーブル２１０−３のＧＷ１５０−１〜ＧＷ１５０−ｎの評価値に応じて送信データ中継ＧＷを選択するから、ノード装置に対するデータ送信の成功率が高いＧＷを柔軟に選択することができる。
【００４８】
また、本実施例のサーバ装置２１０は、ＧＷ評価テーブル２１０−３の評価値を用いて送信データ中継ＧＷを選択するから、ノード装置１０２−１〜１０２−ｎから通信可能なＧＷの情報の通知を受けなくてもよい。したがって、本実施例のサーバ装置２１０によれば、ノード装置１０２−１〜１０２−ｎは通信可能なＧＷが切り替わるたびにサーバ装置２１０にその旨を通知しなくてもよいから、通信ネットワークの負荷を軽減することができる。また、本実施例のサーバ装置２１０は、サーバ装置２２０と相互に通信してＧＷ評価テーブルの情報を共有するから、サーバ装置の故障などの障害発生時でも、システム全体に影響をあたえずサービスを続けることができる。
【００４９】
なお、本実施例のサーバ装置２１０は、受信データ中継ＧＷの最新情報とＧＷ１５０−１〜ＧＷ１５０−ｎの評価値とを併用して、送信データ中継ＧＷを選択する例を示した。しかし、これに限らず、サーバ装置２１０は、受信データ中継ＧＷの最新情報を用いず、ＧＷ１５０−１〜ＧＷ１５０−ｎの評価値に応じて、送信データ中継ＧＷを選択することができる。この場合には、サーバ装置２１０は、ＧＷ１５０−１〜ＧＷ１５０−ｎの評価値が高い順に、送信データ中継ＧＷを選択することができる。
【００５０】
また、本実施例で説明したサーバ装置２１０の機能は、あらかじめ用意されたデータ通信プログラムをコンピュータで実行することによって実現することができる。すなわち、データ通信プログラムは、データの通信を行うノード装置からデータの中継を行う複数の中継装置のうちいずれかの中継装置を経由して送信されたデータを受信する受信手順をコンピュータに実行させる。データ通信プログラムは、受信手順でデータが受信されたら、複数の中継装置のそれぞれに対応付けて記憶部に格納された評価値のうち、受信手順で受信したデータを中継した受信データ中継装置の評価値を更新する中継装置評価手順をコンピュータに実行させる。また、データ通信プログラムは、記憶部に格納された複数の中継装置の評価値に応じて、ノード装置にデータを送信する際に送信するデータを中継する送信データ中継装置を選択する中継装置選択手順をコンピュータに実行させる。また、データ通信プログラムは、中継装置選択手順で選択された送信データ中継装置を経由してノード装置にデータを送信する送信手順をコンピュータに実行させる。なお、データ通信プログラムは、インターネットなどの通信ネットワークを介してコンピュータに配布することができる。また、データ通信プログラムは、サーバ装置に設けられたメモリ、ハードディスク、その他のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【００５１】
１００ アドホックネットワーク
１０２−１〜１０２−ｎ  ノード装置
１５０−１〜１５０−ｎ  ＧＷ
２００ センターサーバ
２１０，２２０  サーバ装置
２１０−１  データ受信部
２１０−２  ＧＷ評価部
２１０−３  ＧＷ評価テーブル
２１０−５  ＧＷ選択部
２１０−６  他通信サーバ連携部
２１０−８    メッセージ送信部
２１０−１０  評価テーブル最適化部
２１０−３Ａ  ノード識別子
２１０−３Ｄ  ＧＷリスト
２１０−３Ｃ  時刻
２１０−３Ｂ  最新ＧＷ
【図１】
2011199625.tif 000003
【図２】
2011199625.tif 000004
【図３】
2011199625.tif 000005
【図４】
2011199625.tif 000006
【図５】
2011199625.tif 000007
【図６】
2011199625.tif 000008