(57)【特許請求の範囲】
【請求項１】
複数のノード及びサーバからなり、データを１のノードから直接又は他のノードを経由してサーバに転送するマルチホップネットワークシステムであって、
前記複数のノードは、所定のエリア内を移動するノードを含み、
各ノードは、
他のノードから受信したデータ及び自らが生成したデータのうち少なくともいずれかを対象データとし、
自らが前記サーバと通信可の場合、前記対象データを前記サーバに送信し、
自らが前記サーバと通信不可の場合、前記対象データを他のノードに送信するとともに、
他のノードの前記サーバへのつながりやすさを示す接続度パラメータを記憶する記憶部を備え、
前記対象データを他のノードに送信するときに、当該他のノードの前記接続度パラメータの大きさに応じた確率に従って、送信先のノードを選択する
ことを特徴とするマルチホップネットワークシステム。
【請求項２】
請求項１に記載のマルチホップネットワークシステムであって、
各ノードは、
定期的に前記サーバとの間で通信確認を行い、通信可又は通信不可の結果に応じて前記記憶部の前記接続度パラメータを変更し、
定期的に他のノードとの間で通信確認を行い、当該他のノードから当該通信確認に対する返答として前記接続度パラメータを受信し、前記記憶部に記憶する
ことを特徴とするマルチホップネットワークシステム。
【請求項３】
請求項２に記載のマルチホップネットワークシステムであって、
各ノードは、前記接続度パラメータを変更する場合に、
前記サーバと通信可のときには、前回の接続度パラメータより大きくなるように前記接続度パラメータを設定し、
前記サーバと通信不可のときには、前回の接続度パラメータより小さくなるように前記接続度パラメータを設定する
ことを特徴とするマルチホップネットワークシステム。
【請求項４】
複数のノード及びサーバからなり、データを１のノードから直接又は他のノードを経由してサーバに転送するマルチホップネットワークシステムであって、
前記複数のノードは、所定のエリア内を移動するノードを含み、
各ノードは、
他のノードから受信したデータ及び自らが生成したデータのうち少なくともいずれかを対象データとし、
自らが前記サーバと通信可の場合、前記対象データを前記サーバに送信し、
自らが前記サーバと通信不可の場合、前記対象データを他のノードに送信するとともに、
他のノードから受信したデータに含まれる経由ノードアドレスを参照し、
当該経由ノードアドレスから当該データのノード間の転送回数を算出し、
当該転送回数が多いほど、遅いタイミングで前記対象データを送信する
ことを特徴とするマルチホップネットワークシステム。
【請求項５】
請求項１ないし請求項４のいずれか一項に記載のマルチホップネットワークシステムであって、
各ノードは、
他のノードから受信したデータ及び自らが生成したデータのうち少なくとも一方の中から、合計のサイズが所定値以下になるように１つ以上のデータを選択し、選択したデータが２つ以上であれば、それらのデータを結合した後、選択した１つのデータ又は結合した２つ以上のデータを対象データとする
ことを特徴とするマルチホップネットワークシステム。
【請求項６】
請求項１ないし請求項５のいずれか一項に記載のマルチホップネットワークシステムであって、
前記サーバは、
前記データを受信した場合には、受信した前記データに含まれる送信元ノードのアドレスを取得し、当該アドレスを送信先とする到達確認データを送信する
ことを特徴とするマルチホップネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチホップネットワークシステムに関する。
【背景技術】
【０００２】
現場の施工においては、電子データの利用がＣＡＤ（Computer Aided Design）の普及とともに広がっている。近年は、施工管理システムの利用も始まり、現場の測量機や重機の施工支援システムと、設計図書（ＣＡＤ等）から作成したデータを交換することも頻繁に行われている。このデータ交換については、交換するデータ量を勘案し、現場（屋外）における無線ＬＡＮ（Local Area Network）が利用されている。
【特許文献１】特開２００５−２３６５９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、土木の現場のように、面的な広がりが大きく、既存の電力線等のインフラが利用できない場所で無線ＬＡＮを利用する場合、無線ＬＡＮの特性によれば、広いエリアや障害物があるときには中継局を設置する必要がある。その中継局に供給する電力の確保（近くから電力が取れないときには、バッテリーやソーラーシステムによる）及びメンテナンスには、大きな労力及びコストの負担が必要になる。ところが、土木の現場において送受信されるデータには、測定データ等が多く、最終的にデータが送信先に届けばよいので、ネットワークが常時接続である必要はない。なお、特許文献１には、データを保持する各アドホックネットワーク端末が、データ送信条件に従いデータを周期的に送信し、データを受信した端末が新たなデータを保持する端末となり、そのようなデータの送受信を繰り返すことにより各端末にデータの転送の役割を持たせる技術が開示されている。
【０００４】
本発明は、上記課題を鑑みてなされたものであり、その主たる目的は、既存の通信インフラがない場所で、伝送に遅延があっても確実にデータを送信先に到達させることができる無線ＬＡＮ通信を実現することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明は、複数のノード及びサーバからなり、データを１のノードから直接又は他のノードを経由してサーバに転送するマルチホップネットワークシステムであって、前記複数のノードが、所定のエリア内を移動するノードを含み、各ノードが、他のノードから受信したデータ及び自らが生成したデータのうち少なくともいずれかを対象データとし、自らが前記サーバと通信可の場合、前記対象データを前記サーバに送信し、自らが前記サーバと通信不可の場合、前記対象データを他のノードに送信するとともに、他のノードの前記サーバへのつながりやすさを示す接続度パラメータを記憶する記憶部を備え、前記対象データを他のノードに送信するときに、当該他のノードの前記接続度パラメータの大きさに応じた確率に従って、送信先のノードを選択することを特徴とする。
この構成によれば、送信元ノードと、送信先ノードとの間で常時接続が不要な遅延許可型ネットワークを構築することができる。そして、ノード間においてデータを転々とさせてサーバへの送信機会を増やすことによって、伝送が遅延しても確実にデータをサーバに到達させることができる。また、接続度パラメータの大きさに比例した確率に従って送信先ノードを選択するため、最大の接続度パラメータを有するノードを必ず選択するわけではないので、サーバにつながりやすいノードにデータ送信が集中することを回避し、接続度パラメータの大きさに比例した負荷分散を図ることができる。
【０００７】
また、本発明は、マルチホップネットワークシステムであって、各ノードが、定期的に前記サーバとの間で通信確認を行い、通信可又は通信不可の結果に応じて前記記憶部の前記接続度パラメータを変更し、定期的に他のノードとの間で通信確認を行い、当該他のノードから当該通信確認に対する返答として前記接続度パラメータを受信し、前記記憶部に記憶することを特徴とする。
この構成によれば、定期的な通信確認の結果（経験値）である接続度パラメータに基づいて送信先ノードを選択するので、経験値を活用することによってデータをサーバに到達させる確度を向上させることができる。
【０００８】
また、本発明は、マルチホップネットワークシステムであって、各ノードが、前記接続度パラメータを変更する場合に、前記サーバと通信可のときには、前回の接続度パラメータより大きくなるように前記接続度パラメータを設定し、前記サーバと通信不可のときには、前回の接続度パラメータより小さくなるように前記接続度パラメータを設定することを特徴とする。
この構成によれば、当該ノードと、サーバとの間の通信可又は通信不可に応じて、接続度パラメータを増減させるので、サーバへのつながりやすさを示す指標としての精度をよくすることができる。
【０００９】
また、本発明は、複数のノード及びサーバからなり、データを１のノードから直接又は他のノードを経由してサーバに転送するマルチホップネットワークシステムであって、前記複数のノードが、所定のエリア内を移動するノードを含み、各ノードが、他のノードから受信したデータ及び自らが生成したデータのうち少なくともいずれかを対象データとし、自らが前記サーバと通信可の場合、前記対象データを前記サーバに送信し、自らが前記サーバと通信不可の場合、前記対象データを他のノードに送信するとともに、他のノードから受信したデータに含まれる経由ノードアドレスを参照し、当該経由ノードアドレスから当該データのノード間の転送回数を算出し、当該転送回数が多いほど、遅いタイミングで前記対象データを送信することを特徴とする。
この構成によれば、送信元ノードと、送信先ノードとの間で常時接続が不要な遅延許可型ネットワークを構築することができる。そして、ノード間においてデータを転々とさせてサーバへの送信機会を増やすことによって、伝送が遅延しても確実にデータをサーバに到達させることができる。また、ノード間の転送回数が多いほどデータの送信を遅くするので、無駄なデータ送信をしなくて済むようになる。
【００１０】
また、本発明は、マルチホップネットワークシステムであって、各ノードが、他のノードから受信したデータ及び自らが生成したデータのうち少なくとも一方の中から、合計のサイズが所定値以下になるように１つ以上のデータを選択し、選択したデータが２つ以上であれば、それらのデータを結合した後、選択した１つのデータ又は結合した２つ以上のデータを対象データとすることを特徴とする。
この構成によれば、データのサイズの合計値が所定値以下になるようにデータを選択し、結合するので、効率よくデータを転送することができる。
【００１１】
また、本発明は、マルチホップネットワークシステムであって、前記サーバが、前記データを受信した場合には、受信した前記データに含まれる送信元ノードのアドレスを取得し、当該アドレスを送信先とする到達確認データを送信することを特徴とする。  
この構成によれば、ノードからサーバへのデータの転送に対して、サーバから当該ノードに対して到達確認データを送信するので、データ送信元ノードは、データがサーバに届いたことを確認することができ、データを無駄に保持し続ける必要がなくなる。
【００１２】
その他、本願が開示する課題及びその解決方法は、発明を実施するための最良の形態の欄、及び図面により明らかにされる。
【発明の効果】
【００１３】
本発明によれば、既存の通信インフラがない場所で、伝送に遅延があっても確実にデータを送信先に到達させることができる無線ＬＡＮ通信を実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら、本発明を実施するための最良の形態を説明する。本発明の実施の形態に係るマルチネットワークシステムは、複数のノード及び１のセンタサーバからなり、データを生成し、そのデータをセンタサーバ宛に送信するノードと、そのデータを受信するセンタサーバとが、直接的に無線通信できない状態にある場合にも、データの送信元ノードと、センタサーバとの間で移動するノードを中継局として無線によるデータの送受信を実現するものである。中継局となるノードは、発生箇所が異なるデータを１つのパケットに結合して他のノード又はセンタサーバに送信する。この場合、通信速度や処理時間から算出したサイズにパケットが収まるようにデータを選択することで、効率的なデータ転送を実現することができる。その際、通信可能な相手先ノードがない場合には、次回のデータ送信のために定期的な通信確認の結果を待つ。
【００１５】
所定のエリア内には、移動する可能性のある物体や人等が存在する。この所定エリアとは、例えば、土木工事現場が規定されるが、その場合、各種の工事機械や作業員が「物体や人等」に該当する。ただし、本発明は、土木工事現場に限らず、広く適用可能である。そして、ノードを備える物体や人等が移動することによって、他ノード（最終的には、目的地であるセンタサーバ）に送信すべきデータを有するノードとの間で無線通信の可能性が生じる。そこで、その移動体等に備わるノードを中継局として利用することができる。
【００１６】
土木工事現場で利用する施工管理システムでは、重機にＰＣ（Personal Computer）が搭載されるので、移動する重機に搭載されたＰＣをノードとして利用することができ、また、作業員が携帯する端末をノードとして利用することもできる。なお、アドホックネットワークのように常時接続が確立している必要はなく、１の中継局は、他の中継局との間で無線による通信状態が確立したときにデータを送信し、目的地（現場の事務所にあるセンタサーバ）までデータをホッピング（バケツリレーの要領）する。
【００１７】
≪システムの構成と概要≫
図１は、マルチホップネットワークシステムの構成を示す図である。マルチホップネットワークシステム１は、複数のノード２と、センタサーバ３とから構成される。ノード２は、データを生成し、センタサーバ３に送信する機能や、別のノードから受信したデータをさらに別のノードに転送することにより、センタサーバ３へのデータ転送を中継する機能を有する。ノード２は、上記のように、例えば、土木工事現場（所定のエリア内）を逐次移動する重機等に搭載されたＰＣや携帯情報端末（ＰＤＡ：Personal Digital Assistant）によって実現される。なお、ノード２はノードの総称であり、個々のノードを区別する場合には、ノードＮ１、Ｎ２、・・・のようにＮｉ（ｉ＝１〜ｎ）の符号を用いて示す。センタサーバ３は、複数のノード２からデータを受信し、記憶し、管理する機能を有する。センタサーバ３は、サーバ用コンピュータによって実現される。
【００１８】
ノード２はメッセージデータをセンタサーバ３宛に送信し、センタサーバ３はノード２からメッセージデータを受信する。センタサーバ３は、メッセージデータの受信に対する応答として、到達確認データを当該メッセージデータの送信元であるノード２に送信する。当該ノード２が到達確認データを受信したところで、１つの単位のデータ転送が終了する。
【００１９】
データを生成したノード２と、センタサーバ３との間においては、無線通信によりデータが転送されるが、無線の特性等からその間における無線通信ができない場合がある。マルチホップネットワークシステム１では、ノード２と、センタサーバ３との間の無線通信が直接できない場合であっても、センタサーバ３と通信できる確率に従って選択した他のノード２に対して、データをバケツリレー式に順次転送することによって、最終的にセンタサーバ３に到達可能にするものである。
【００２０】
図２は、ノードの構成を示す図である。ノード２は、無線通信部２１、センサ２２、処理部２３及び記憶部２４を備える。無線通信部２１は、生成したデータを無線により送受信する機能を有する。具体的には、アンテナやＮＩＣ（Network Interface Card）によって実現される。センサ２２は、何らかの量や状態を検知し、その検知結果に応じたデータを処理部２３に出力する機能を有する。例えば、ＧＰＳ（Global Positioning System）機器や、加速度計、速度計、温度計、湿度計等である。処理部２３は、センサ２２からデータを取得し、記憶部２４に記憶する機能や、データをメッセージデータの形式に整え、他のノード２やセンタサーバ３に送信する機能を有する。具体的には、ＣＰＵ（Central Processing Unit）が所定のメモリに格納されたプログラムを実行することによって実現される。記憶部２４は、処理部２３からデータを記憶したり、記憶したデータを読み出したりする。具体的には、フラッシュメモリやハードディスク装置等の不揮発性記憶装置によって実現される。
【００２１】
図３は、センタサーバの構成を示す図である。センタサーバ３は、無線通信部３１、処理部３２及び記憶部３３を備える。無線通信部３１は、無線によりノード２からメッセージデータを受信し、その応答として到達確認データを送信する機能を有する。具体的には、アンテナやＮＩＣによって実現される。処理部３２は、ノード２から受信したメッセージデータを個々のメッセージデータに分解し、記憶部３３に記憶する機能や、個々のメッセージデータの送信元ノードに対応させて到達確認データを作成する機能を有する。具体的には、ＣＰＵが所定のメモリに格納されたプログラムを実行することによって実現される。記憶部３３は、処理部３２からデータを記憶したり、記憶したデータを読み出したりする。具体的には、フラッシュメモリやハードディスク装置等の不揮発性記憶装置によって実現される。
【００２２】
≪データの構成≫
図４は、ノードの記憶部に記憶されるデータの構成を示す図である。各ノード２の記憶部２４には、メッセージデータＭＤ、サーバ接続度テーブル２４Ａ及び接続ノードテーブル２４Ｂが記憶される。
【００２３】
図４（ａ）は、メッセージデータＭＤの構成を示す図である。メッセージデータＭＤは、送信先アドレスＭＤ１、経由ノードアドレスＭＤ２、デリミタＭＤ３及びデータＭＤ４からなる。送信先アドレスＭＤ１は、メッセージデータＭＤの送信先アドレスを示すものであり、ここでは、センタサーバ３のアドレスになる。経由ノードアドレスＭＤ２は、その時点までにメッセージデータＭＤが経由したノード２のアドレスである。最初のアドレス＃１は当該データを生成したノード２のアドレスであり、最後のアドレス＃ｋは当該ノード２のアドレスである。従って、経由ノードアドレスＭＤ２に格納されたアドレスの個数（つまり、値ｋ）によって、メッセージデータＭＤのホップ数（ノード間の転送回数）を特定することができる。さらに、経由ノードアドレスＭＤ２を参照することで、同一の２つのノード間におけるメッセージデータＭＤの転送が頻繁に行われないように、別のノードを送信先として選択するようにしてもよい。デリミタＭＤ３は、メッセージデータＭＤのうち、送信先アドレスＭＤ１及び経由ノードアドレスＭＤ２からなる制御フィールドと、データＭＤ４とを区切るための記号である。データＭＤ４は、当該ノード２（アドレス＃１）で生成されたデータであって、当該ノード２からセンタサーバ３に転送されるべきデータである。
【００２４】
図４（ｂ）は、サーバ接続度テーブル２４Ａの構成を示す図である。サーバ接続度テーブル２４Ａは、当該ノード以外のノード２のセンタサーバ３に対する接続度パラメータを格納するテーブルであり、ノードアドレス２４Ａ１及び接続度パラメータ２４Ａ２を含むレコードからなる。ノードアドレス２４Ａ１は、当該ノード以外のノード２のアドレスであり、ノード２のＩＰ（Internet Protocol）アドレスでもよいし、ノード２に固有のＩＤでもよい。接続度パラメータ２４Ａ２は、ノード２のセンタサーバ３に対するつながりやすさを示す指標であり、当該ノード２が定期的な通信確認としてpingを実行したときの相手先ノードの返答データとして受け付ける。接続度パラメータの詳細については、後記する。
【００２５】
図４（ｃ）は、接続ノードテーブル２４Ｂの構成を示す図である。接続ノードテーブル２４Ｂは、その時点で当該ノード２が通信可能なノードを示すテーブルであり、接続ノードアドレス２４Ｂ１からなる。接続ノードアドレス２４Ｂ１には、当該ノード２が定期的な通信確認としてpingを実行したときに、返答のあったノード（各ノード２及びセンタサーバ３を含む）のアドレスが格納される。
【００２６】
図５は、センタサーバ３の記憶部３３に記憶される接続ノードテーブル３３Ａの構成を示す図である。接続ノードテーブル３３Ａは、その時点でセンタサーバ３が通信可能なノード２を示すテーブルであり、接続ノードアドレス３３Ａ１からなる。接続ノードアドレス３３Ａ１には、センタサーバ３が定期的な通信確認としてpingを実行したときに、返答のあったノード２のアドレスが格納される。
【００２７】
≪システムの処理≫
図６は、各ノードにおけるデータの転送処理を示すフローチャートである。本処理は、常時接続が保証されないノード２とセンタサーバ３との間で遅延許可型ネットワークを実現するために、各ノード２が実行する基本的な処理である。なお、本処理を構成する各ステップの詳細については、後記する。
【００２８】
まず、本処理は、当該ノード以外のノード２（他ノード）からデータを受信した場合（Ｓ６０１）又は当該ノード２（自ノード）でデータを生成した場合（Ｓ６０２）に起動され、１つ以上のデータを結合したデータを次の転送先であるノード２又はセンタサーバ３に送信する。なお、当該ノード以外のノード２からデータを受信した場合（Ｓ６０１）には、記憶部２４のメッセージバッファＢ１に受信データが格納される。また、当該ノード２でデータを生成した場合（Ｓ６０２）には、記憶部２４のメッセージバッファＢ２に生成データが格納される。さらに、タイミングやデータのサイズによっては、メッセージバッファＢ１やＢ２に、まだ結合されていないデータやメッセージバッファＢ３に移行されていないデータが残っている場合もある。
【００２９】
本処理では、まず、ノード２が、メッセージバッファＢ１及びＢ２を参照し、２つ以上のメッセージデータの合計のサイズが所定値以下になるように結合し、結合したメッセージデータをメッセージバッファＢ３に格納する（Ｓ６０３）。なお、１つのメッセージデータをそのままメッセージバッファ３に格納することもある。次に、記憶部２４の接続ノードテーブル２４Ｂを参照し、センタサーバ３のアドレスの有無により、センタサーバ３と通信可能か否かを判定する（Ｓ６０４）。
【００３０】
センタサーバ３と通信不可の場合には（Ｓ６０４のＮ）、ノード２がセンタサーバ３にメッセージデータを直接送信できないので、メッセージデータを転送する先のノードｍを選択する（Ｓ６０５）。続いて、ノードｍにメッセージデータを送信するタイミングとして、現時点から送信までの時間的間隔（送信間隔）Ｔを決定する（Ｓ６０６）。そして、現時点からの経過時間ｔが送信間隔Ｔになった時に、選択したノードｍにメッセージデータを送信する（Ｓ６０７）。
【００３１】
一方、Ｓ６０４の判定においてセンタサーバ３と通信可能の場合には（Ｓ６０４のＹ）、ノード２がセンタサーバ３にメッセージデータを直接送信できるので、センタサーバ３にメッセージデータを送信する（Ｓ６０８）。
【００３２】
なお、必ずしも図６に示すフローチャートの通りに処理することはなく、例えば、ノードｍ又はセンタサーバ３にメッセージデータを送信する直前まで、メッセージデータを結合する処理を行っていてもよい。
【００３３】
図７は、メッセージデータの結合処理（図６のＳ６０３）の例を示す図である。ノード２の記憶部２４には、メッセージデータＭＤを分別して格納するメッセージバッファＢ１、Ｂ２及びＢ３が設けられる。まず、メッセージバッファＢ１には、他ノードから受信したメッセージデータＭ１、Ｍ２、Ｍ３及びＭ４が格納されている。一方、メッセージバッファＢ２には、自ノードで生成したメッセージデータＯ１、Ｏ２、Ｏ３及びＯ４が格納されている。ノード２は、これらのメッセージデータを対象として、合計のサイズが所定値（図７の例では、１０）以下に収まる範囲で１つ以上のメッセージデータを選択し、２つ以上のメッセージデータを選択した場合には、それらを結合し、選択した１つのメッセージデータ又は結合した２つ以上のメッセージデータを対象データとしてメッセージバッファＢ３に格納する。
【００３４】
具体例としては、まず、メッセージデータＭ１とＯ２を結合し、対象データＴ１としてメッセージバッファＢ３に格納する。次に、メッセージデータＭ３をそのまま対象データＴ２としてメッセージバッファＢ３に格納する。続いて、メッセージデータＭ４とＯ３を結合し、対象データＴ３としてメッセージバッファＢ３に格納する。さらに、メッセージデータＭ２、Ｏ１及びＯ４を結合し、対象データＴ４としてメッセージバッファＢ３に格納する。なお、対象データＴ４のサイズは７なので、そのサイズを１０にするために、サイズが３のメッセージデータがメッセージバッファＢ１又はＢ２に格納されるまで、対象データＴ４の送信を待つようにしてもよい。
【００３５】
例えば、ノードＮ１が、送信先アドレスＭＤ１＝Ｎ４、経由ノードアドレスＭＤ２＝Ｎ２、データＭＤ４＝２１、２２のメッセージデータＭＤを受信するとともに、１１、１２のデータを生成した場合には、送信先アドレスＭＤ１＝Ｎ４、経由ノードアドレスＭＤ２＝Ｎ２、Ｎ１、データＭＤ４＝２１、２２、１１、１２のメッセージデータＭＤを作成し、送信する（図示せず）。ここで、経由ノードアドレスＭＤ２は、当該メッセージデータＭＤに含まれるデータのうち最長経路を示すものである。なお、最短経路を示すものであってもよい。
【００３６】
図８は、サーバ接続度テーブル２４Ａとして記憶されている各ノードの接続度パラメータを用いて、次に転送する先のノードを選択する方式（図６のＳ６０５）を説明する図である。接続度パラメータＰ（ｉ）nは、ノードＮｉにおける時刻Ｔｎの接続度パラメータであり、ここでは、特にノードＮｉからセンタサーバ３へのつながりやすさを示す指標である。
【００３７】
ここで、ノードＮ１からセンタサーバ３に対するメッセージデータを送信しようとした場合には、各ノードの接続度パラメータ（Ｐ（１）n、Ｐ（２）n、Ｐ（３）n、Ｐ（４）n、Ｐ（５）n）の大きさに比例した確率に従って、いずれかのノードを転送先として選択する。一例として、Ｐ（１）n＝１０、Ｐ（２）n＝５、Ｐ（３）n＝２０、Ｐ（４）n＝０、Ｐ（５）n＝２０とすると、ノードＮ１が選択される確率は１０／５５であり、ノードＮ２が選択される確率は５／５５であり、ノードＮ３が選択される確率は２０／５５であり、ノードＮ４が選択される確率は０であり、ノードＮ５が選択される確率は２０／５５である。具体的には、例えば、０から１までの乱数を発生させ、その乱数が０以上１０／５５以下であればノードＮ１、１０／５５より大きく１５／５５以下であればノードＮ２、１５／５５より大きく３５／５５以下であればノードＮ３、３５／５５より大きく１（＝５５／５５）以下であればノードＮ５とする処理が考えられる。なお、ノードＮ１が選択された場合には、メッセージデータを他のノードに送信せずに一旦待機した後、次のノード選択を行う。
【００３８】
この選択方式によれば、最大の接続度パラメータを有するノードＮｉを必ず選択するわけではないので、センタサーバ３につながりやすいノードＮｉに過度に集中することを回避し、接続度パラメータの大きさに比例した負荷分散を図ることができる。
【００３９】
なお、図８において、ノードＮ２は、センタサーバ３以外のノードと通信可能である。仮にセンタサーバ３と、ノードＮ３又はＮ５とが通信可能になった場合には、すべてのノードがセンタサーバ３と通信可能になる。
【００４０】
図９は、転送先ノードの選択処理（図６のＳ６０５）を示すフローチャートである。まず、ノード２は、pingに対して返答のあったノードからノードアドレス及び接続度パラメータを取得し、サーバ接続度テーブル２４Ａとして記憶部２４に記憶する（Ｓ９０１）。この場合、取得したノードアドレスによって、接続ノードテーブル２４Ｂの接続ノードアドレス２４Ｂ１を更新するものとする。次に、接続度パラメータ２４Ａ２の大きさに比例した確率に従って、メッセージデータを転送する先のノードを選択する（Ｓ９０２）。この選択の詳細は、図８を用いて説明した通りである。以上により、メッセージデータの送信先を決定する（Ｓ９０３）。
【００４１】
図１０は、センタサーバとの通信可否に応じた接続度パラメータの変更処理を示す図である。この処理は、データを生成したノード２からセンタサーバ３に当該データを転送する処理（図６のデータの転送処理）とは非同期に行われる処理であって、各ノード２のセンタサーバ３に対する接続度パラメータを、センタサーバ３との通信状態に即して随時更新するものである。そのために、各ノード２は、所定の時間ごとに（定期的に）センタサーバ３との間の通信確認（例えば、pingによる）を行う。なお、ノードＮｋの接続度パラメータＰ（ｋ）ｎ（ｎ：所定の時間の繰り返し数）は、記憶部２４のサーバ接続度テーブル２４Ａのうち、自ノードＮｋのノードアドレス２４Ａ１に対する接続度パラメータ２４Ａ２に格納される。以下、各変更処理例について説明する。
【００４２】
変更処理例１において、接続度パラメータの初期値はＮ（所定値）であり、センタサーバ３と通信可の場合の接続度パラメータはＮ（所定値）であり、センタサーバ３と通信不可の場合の接続度パラメータは前回の値からδを引いた値である。これは、当該ノード２がセンタサーバ３と１回でも通信できればその接続度パラメータをＮに設定するものであり、それまで全くつながっていなくても、直近でつながったノード２の接続度パラメータが最大であるという考え方による。なお、Ｐ（ｋ）ｎの最小値は０である。
【００４３】
変更処理例２において、接続度パラメータの初期値はＮ（所定値）であり、センタサーバ３と通信可の場合の接続度パラメータは前回の値にδを足した値であり、センタサーバ３と通信不可の場合の接続度パラメータは前回の値からδを引いた値である。これは、当該ノード２がセンタサーバ３と通信可能な回数が多いほどその接続度パラメータが大きく設定されるものであり、センタサーバ３につながっている時間が長いほどノード２の接続度パラメータが大きくなるという考え方による。なお、Ｐ（ｋ）ｎの最小値は０である。
【００４４】
変更処理例３において、接続度パラメータの初期値は１であり、センタサーバ３と通信可の場合の接続度パラメータは前回の値に１より大きい係数α（例えば、（ｎ＋１）／ｎ）を掛けた値であり、センタサーバ３と通信不可の場合の接続度パラメータは前回の値に０より大きく１より小さい係数β（例えば、（ｎ−１）／ｎ）を掛けた値である。変更処理例１や変更処理例２では、接続度パラメータが一旦０になると、何回通信不可であっても０であり、通信不可の回数（頻度）が接続度パラメータに反映されない。そのような問題を解消すべく、変更処理例３では、過去における通信可又は通信不可の状態を接続度パラメータに反映させるようにしたものである。
【００４５】
図１１は、データの送信間隔の決定処理（図６のＳ６０６）を示すフローチャートである。また、その処理に付随して、接続ノードテーブルの更新処理及び割り込み処理を示すフローチャートを含む。
【００４６】
まず、送信間隔の決定処理において、ノード２は、メッセージバッファＢ３に格納されたメッセージデータＭＤの経由ノードアドレスＭＤ２を取得する（Ｓ１１０１）。図４（ａ）に示すように、経由ノードアドレスＭＤ２は、メッセージデータＭＤが経由したノード２のアドレスが順次格納されている。そこで、経由ノードアドレスＭＤ２から、ノード２間の転送回数（ホップ数）を算出する（Ｓ１１０２）。そして、転送回数から送信間隔Ｔを決定する（Ｓ１１０３）。送信間隔Ｔとは、現時点から送信までの時間的間隔をいう。換言すれば、現時点からＴが経過した後には、メッセージデータＭＤが送信されることになる。送信間隔Ｔは、ノード２間の転送回数（ホップ数）が大きいほど、大きく設定される。例えば、転送回数と送信間隔Ｔとの関係を予めテーブルに保持しておき、このテーブルを参照して送信間隔Ｔを設定するようにしてもよい。これは、転送回数が大きいということはセンタサーバ３につながりにくいことを意味するので、極力送信間隔を空けて（つまり、遅いタイミングで）、無駄なデータ送信をしないようにするものである。そして、経過時間ｔが送信間隔Ｔになるのを待つ（Ｓ１１０４のＮ）。経過時間ｔが送信間隔Ｔになれば（Ｓ１１０４のＮ）、送信間隔の決定処理を終了する。その後は、ノードｍにメッセージデータを送信する（図６のＳ６０７）。
【００４７】
各ノード２では、送信間隔の決定処理を含むデータの転送処理（メイン処理）とは非同期に、所定の時間ごとに（定期的に）接続ノードテーブル２４Ｂの更新処理が行われる。この処理は、例えば、所定の時間ごとに発行されるタイマ割り込みに対する処理として起動される。まず、ping等の通信確認を行い、返答のあった他のノード（他のノード２及びセンタサーバ３を含む）を接続ノードアドレス２４Ｂ１として追加するように、接続ノードテーブル２４Ｂを更新する（Ｓ１１１１）。次に、接続ノードアドレス２４Ｂ１にセンタサーバ３のアドレスがあるか否かを判定する（Ｓ１１１２）。センタサーバ３のアドレスがあれば（Ｓ１１１２のＹ）、メイン処理に対して割り込みを発行する（Ｓ１１１３）。センタサーバ３のアドレスがなければ（Ｓ１１１２のＮ）、そのまま処理を終了する。
【００４８】
センタサーバ３のアドレスがあったことにより発行された割り込みの結果、メイン処理を中断して起動された割り込み処理では、経過時間ｔを送信間隔Ｔにする（Ｓ１１２１）。これによって、送信間隔の決定処理におけるＳ１１０４の待ちがなくなる。次に、センタサーバ３と通信可能であることから、センタサーバ３にメッセージデータを送信する（Ｓ１１２２）。そして、割り込み処理を終了し、メイン処理に戻る。
【００４９】
≪到達確認データの送信≫
センタサーバ３は、メッセージデータの受信に対する応答として、到達確認データをメッセージデータＭＤの送信元ノード（経由ノードアドレスＭＤ２のうち、最初のノードのアドレス＃１）に送信する。到達確認データのフォーマットや転送方法は、基本的にメッセージデータと同様であり、到達確認データを対象データとするものである。異なる点について、以下に示す。  
（１）到達確認データの結合は、送信先が同一のノードである場合に限る。  
（２）次の転送先ノードは、通信可能なノードの中からランダムに選択する。  
なお、到達確認データを効率的に送信するために、次のような方法がある。  
（１）センタサーバ３から到達確認データを送信するタイミングを、例えば、１時間に１回といった方法をとることによって、到達確認データの個数を減らす。  
（２）到達確認データは、受信した個々のメッセージデータに対応させるのではなく、受信したデータの番号が分かる内容とすることによって、到達確認データのサイズ（データ量）を減らす。例えば、＃１から＃１００までのデータを受信した場合には、“１−１００”という内容の到達確認データを送信する。
【００５０】
以上本発明の実施の形態について説明したが、図１に示すマルチホップネットワークシステム１内の各ノード２及びセンタサーバ３を機能させるために、処理部（ＣＰＵ）で実行されるプログラムをコンピュータにより読み取り可能な記録媒体に記録し、その記録したプログラムをコンピュータに読み込ませ、実行させることにより、本発明の実施の形態に係るマルチホップネットワークシステムが実現されるものとする。なお、プログラムをインターネット等のネットワーク経由でコンピュータに提供してもよいし、プログラムが書き込まれた半導体チップ等をコンピュータに組み込んでもよい。
【００５１】
以上説明した本発明の実施の形態によれば、土木の現場のように、面的な広がりが大きく、既存の電力線等のインフラが利用できない場所で無線ＬＡＮを利用する場合、中継局を現場に設置する必要がなくなるので、コストが低くなり、容易に現場（屋外）でＬＡＮを利用することができる。次に、合計のサイズが所定値以下になるようにメッセージデータを選択し、結合するので、効率的にメッセージデータを転送することができる。そして、ノード２間においてメッセージデータを転々とさせてセンタサーバ３への送信機会を増やすことによって、遅くても確実にメッセージデータをセンタサーバ３に到達させることができる。
【００５２】
上記実施の形態によれば、定期的な通信確認の結果（経験値）である接続度パラメータに基づいて送信先のノード２を選択するので、メッセージデータをセンタサーバ３に到達させる確度を向上させることができる。また、接続度パラメータの大きさに比例した確率に従って送信先のノード２を選択するため、最大の接続度パラメータを有するノード２を必ず選択するわけではないので、メッセージデータの送信がセンタサーバ３につながりやすいノード２に集中することを回避し、接続度パラメータの大きさに比例した負荷分散を図ることができる。
【００５３】
上記実施の形態によれば、当該ノード２と、センタサーバ３との間の通信可又は通信不可に応じて、接続度パラメータを増減させるので、センタサーバ３へのつながりやすさを示す指標としての精度をよくすることができる。次に、メッセージデータの転送回数が大きいほど、送信までの間隔を大きくするので、無駄なデータ送信をしなくて済むようになる。そして、ノード２からセンタサーバ３へのデータの転送に対して、センタサーバ３から当該ノード２に対して到達確認データを送信するので、メッセージデータの送信元ノードは、メッセージデータがセンタサーバ３に届いたことを確認することができ、メッセージデータを無駄に保持し続ける必要がなくなる。
【００５４】
≪その他の実施の形態≫
以上、本発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得るとともに、本発明にはその等価物も含まれる。例えば、以下のような実施の形態が考えられる。
【００５５】
（１）上記実施の形態では、ノード２が、土木工事現場を逐次移動する重機等に搭載されたＰＣや携帯情報端末であるように記載したが、他の場合にも適用可能である。例えば、ノード２をエレベータや車に搭載することによって、エレベータが設置されたビル内や、車が日常走行する地域内を適宜移動しながら、データ転送を中継するように機能させてもよい。
【００５６】
（２） 上記実施の形態では、ノード２が他のノードにデータを送信する場合に、各ノードの接続パラメータの大きさに比例した確率に従って送信先を選択するように記載したが、ランダムに（同じ確率に従って）送信先を選択するようにしてもよい。
【００５７】
（３）上記実施の形態では、ノード２が他のノードにデータを送信する場合に、１つのノードに送信するように記載したが、複数のノード（通信可能な全ノードの場合を含む）に送信するようにしてもよい。
【００５８】
（４）データの転送が特定のノード間でループするように行われている場合には、ノード２は、その特定のノード以外のノードを送信先として選択するようにしてもよい。
【図面の簡単な説明】
【００５９】
【図１】マルチホップネットワークシステムの構成を示す図である。
【図２】ノードの構成を示す図である。
【図３】センタサーバの構成を示す図である。
【図４】ノードの記憶部に記憶されるデータの構成を示す図であり、（ａ）はメッセージデータの構成を示し、（ｂ）はサーバ接続度テーブルの構成を示し、（ｃ）は接続ノードテーブルの構成を示す。
【図５】センタサーバの記憶部に記憶されるデータの構成を示す図である。
【図６】各ノードにおけるデータの転送処理を示すフローチャートである。
【図７】メッセージデータの結合処理の例を示す図である。
【図８】次に転送する先のノードを選択する方式を説明する図である。
【図９】転送先ノードの選択処理を示すフローチャートである。
【図１０】接続度パラメータの変更処理を示す図である。
【図１１】データの送信間隔の決定処理を示すフローチャートである。
【符号の説明】
【００６０】
１      マルチホップネットワークシステム
２      ノード
２４    記憶部
２４Ａ２  接続度パラメータ
３      センタサーバ（サーバ）
ＭＤ    メッセージデータ（データ）
ＭＤ１  送信先アドレス
ＭＤ２  経由ノードアドレス
ＭＤ４  データ
Ｔ      送信間隔
【図１】
0005141119.tif 000002
【図２】
0005141119.tif 000003
【図３】
0005141119.tif 000004
【図４】
0005141119.tif 000005
【図５】
0005141119.tif 000006
【図６】
0005141119.tif 000007
【図７】
0005141119.tif 000008
【図８】
0005141119.tif 000009
【図９】
0005141119.tif 000010
【図１０】
0005141119.tif 000011
【図１１】
0005141119.tif 000012