(57)【要約】【課題】データを効率的に集約しネットワークの負荷を低減するデータ転送プログラム、データ転送方法、及び、データ転送装置を提供する。【解決手段】取得したデータを転送する先の転送先ノードを決定し、前記取得したデータを前記転送先ノード別に蓄積し、前記転送先ノードごとに定められた待ち時間中に蓄積した複数のデータをまとめて前記転送先ノードに転送する、処理をコンピュータに実行させる。【選択図】図４
2017163440.tif 000002
【特許請求の範囲】
【請求項１】
取得したデータを転送する先の転送先ノードを決定し、
前記取得したデータを前記転送先ノード別に蓄積し、
前記転送先ノードごとに定められた待ち時間中に蓄積した複数のデータをまとめて前記転送先ノードに転送する、
処理をコンピュータに実行させることを特徴とするデータ転送プログラム。
【請求項２】
請求項１において、
前記待ち時間は、各転送先ノードに単位時間当たりに転送されるデータの数に応じて決定される、
データ転送プログラム。
【請求項３】
請求項２において、
第１の転送先ノードの待ち時間は、前記第１の転送先ノードより前記転送されるデータの数が少ない第２の転送先ノードの待ち時間より長い、
データ転送プログラム。
【請求項４】
請求項１において、
前記取得したデータは、複数のノードとノード間経路とを有するノード網において、当該データの送信元ノードから送信先ノードに前記転送先ノードを経由して送信されるデータである、
データ転送プログラム。
【請求項５】
請求項４において、
前記複数のノードには、前記複数のノードを仮想の円周上に一列に配置した場合の順番情報が割り当てられ、
前記決定は、前記複数のノードの一部の候補ノードのうち、前記円周上の一方の方向における、前記候補ノードから前記送信先ノードまでの前記順番情報の差分が小さい候補ノードを前記転送先ノードとして決定し、
前記待ち時間は、前記円周上の一方の方向における、転送する元の転送元ノードから前記転送先ノードまでの前記順番情報の差分に基づいて決定される、
データ転送プログラム。
【請求項６】
請求項５において、
前記転送元ノードから転送先ノードまでの差分が第１の値である転送先ノードの待ち時間は、当該差分が前記第１の値より大きい第２の値である転送先ノードの待ち時間より長い、
データ転送プログラム。
【請求項７】
取得したデータを転送する先の転送先ノードを決定し、
前記取得したデータを前記転送先ノード別に蓄積し、
前記転送先ノードごとに定められた待ち時間中に蓄積した複数のデータをまとめて前記転送先ノードに転送する、
データ転送方法。
【請求項８】
取得したデータを転送する先の転送先ノードを決定し、前記取得したデータを前記転送先ノード別に蓄積し、前記転送先ノードごとに定められた待ち時間中に蓄積した複数のデータをまとめて前記転送先ノードに転送する処理部と、
前記データを記憶する記憶部と、を有する、
データ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送プログラム、データ転送方法、及び、データ転送装置に関する。
【背景技術】
【０００２】
近年、Ｐ２Ｐ（peer-to-peer）を用いた情報処理システムがある。Ｐ２Ｐの情報処理システムでは、各ピア（ノード）が情報を保持し、 他のノードに対して情報の登録及び要求を行う。このような情報処理システムでは、例えば、移動可能な機器から出力される情報（以下、データと称する）をあるノードが受信して保持する。そして、例えば、センタサーバによる問い合わせに応答して、問い合わせ対象のデータを保持するノードが、センタサーバにデータを送信する。
【０００３】
また、情報処理システムでは、分散ハッシュテーブル（Distributed Hash Table：ＤＨＴ）方式に基づいて、複数の機器のデータを、複数のノードに分散して保持させる。分散ハッシュテーブルによると、機器のデータを保持するノード（以下、登録ノードと称する）は、ハッシュ関数等に基づいて決定される。
【０００４】
そして、機器から発信されたデータを受信したノードは、直接、もしくは、１つ以上のノードを中継して、登録ノードまでデータを送信する。中継ノードは受信したデータを転送し、登録ノードは、受信したデータを保持する。データの登録処理の頻度が高い場合、データの転送処理が増大し、ネットワークの負荷が増加する。
【０００５】
一方、データを送信する際に、所定の時間、データを蓄積し、蓄積したデータを集約して送信することが提案されている。データを集約して送信することにより、ネットワークの負荷が低減する。ネットワークの効率に関する技術については、例えば、特許文献１〜３、及び、非特許文献１に記載される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１５−５２４５８６号公報
【特許文献２】特開２０１４−１０３５５３号公報
【特許文献３】特開２００６−２０３５３７号公報
【非特許文献】
【０００７】
【非特許文献１】“Apache Kafka”、“4.4 The Producer”、［online］、［平成27年12月21日検索］、インターネット＜ＵＲＬ：http://kafka.apache.org/documentation.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、データを転送する際の転送先は、送信先のノード（登録ノード）に応じて異なる。したがって、転送先に応じて、転送処理の発生頻度が異なる。これにより、転送先に応じて、単位時間当たりに転送されるデータの数が異なる。
【０００９】
したがって、転送先に関わらず同じ時間、蓄積したデータをまとめて転送する場合、転送されるデータの数が少ない転送先については、データの集約率が低いにも関わらず、他の転送先と同じ時間、データを蓄積する。これにより、データの集約効率が上がらず、データの送信処理に要する送信時間も長期化する。
【００１０】
開示の１つの側面は、データを効率的に集約しネットワークの負荷を低減するデータ転送プログラム、データ転送方法、及び、データ転送装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の態様によれば、取得したデータを転送する先の転送先ノードを決定し、前記取得したデータを前記転送先ノード別に蓄積し、前記転送先ノードごとに定められた待ち時間中に蓄積した複数のデータをまとめて前記転送先ノードに転送する、処理をコンピュータに実行させる。
【発明の効果】
【００１２】
１つの側面では、データを効率的に集約しネットワークの負荷を低減することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態における情報処理システム１００の一例を説明する図である。
【図２】図１に示す情報処理システム１００における、データの登録処理、及び、データの検索処理を説明する図である。
【図３】分散ハッシュテーブル方式におけるデータの送信処理を説明する図である。
【図４】本実施の形態におけるデータ転送処理の概要を説明する図である。
【図５】本実施の形態におけるデータ転送処理の概要を模式的に説明する図である。
【図６】本実施の形態におけるゲートウェイ１０−１４（データ転送装置）のハードウェア構成図である。
【図７】図６に示したゲートウェイ１０−１４のソフトウェアの機能ブロックを示す図である。
【図８】図６、図７に示したデータ転送プログラム１２０のデータ受信時の処理を説明する第１のフローチャート図である。
【図９】図８のフローチャート図で説明したデータ保持データベース１４０（図６、図７）の一例を説明する図である。
【図１０】データ転送プログラム１２０のデータ受信時の処理を説明する第２のフローチャート図である。
【図１１】Ｃｈｏｒｄの分散ハッシュテーブル方式にしたがって、ゲートウェイ間の通信を管理する方法を模式的に説明する図である。
【図１２】Ｃｈｏｒｄにおける転送先テーブル１３１（図６、図７）の一例を示す図である。
【図１３】Ｃｈｏｒｄにおける送信経路の一例を示す図である。
【図１４】図１０のフローチャート図の工程２５〜Ｓ２７で示したデータ一時保持データベース１３４（図６、図７）の一例を説明する図である。
【図１５】図１０のフローチャート図の工程Ｓ２８で示した保持時間保管テーブル１３２（図６、図７）の一例を説明する図である。
【図１６】送信先ノード「１５」が同一であって送信元ノードが異なる、複数の送信経路を模式的に説明する図である。
【図１７】図１６で説明した、ノード「１５」を転送先とする各転送経路ｒｔ１〜ｒｔ４に転送される、単位時間当たりのデータの数を表す図である。
【図１８】図１６で説明した、ノード「１４」を転送先とする各転送経路ｒｔ１１〜ｒｔ１３に転送される、単位時間当たりのデータの数を表す図である。
【図１９】図１５に示す保持時間保管テーブル１３２に基づくデータ転送処理を模式的に説明する図である。
【図２０】図１０のフローチャート図の工程Ｓ２９で示した、保持時間管理テーブル１３３の一例を説明する図である。
【図２１】図６、図７に示したデータ転送プログラム１２０のデータ送信時の処理を説明するフローチャート図である。
【図２２】本実施の形態におけるデータ転送プログラム１２０が生成するパケットの一例を説明する図である。
【図２３】図２に例示した、ゲートウェイ１０−０からゲートウェイ１０−１５までの送信処理を説明する図である。
【図２４】本実施の形態におけるデータ転送プログラム１２０による、データの集約例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１５】
［情報処理システム］
図１は、本実施の形態における情報処理システム１００の一例を説明する図である。図１に示す情報処理システム１００は、Ｐ２Ｐ（peer-to-peer）に基づくシステムである。Ｐ２Ｐに基づく情報処理システム１００では、各ピアがデータを保持する。図１に示す情報処理システム１００では、ピアはゲートウェイ１０−０〜１０−１５に対応する。
【００１６】
図１に示す情報処理システム１００は、センタサーバ２０と、複数のゲートウェイ１０−０〜１０−１５（ゲートウェイ１０ともいう）と、複数のビーコン３０ａ〜３０ｅ（ビーコン３０ともいう）とを有する。図１は、１６個のゲートウェイ１０、及び、５個のビーコン３０を示すが、情報処理システム１００は、例えば、数万台の、ゲートウェイ１０及びビーコン３０を有する。
【００１７】
ビーコン３０は、例えば、電波や電磁波等の信号を発行する移動可能な装置である。図１に示す各ビーコン３０は、近距離無線通信を介して、通信可能なゲートウェイ１０に、定期的に、データを送信する。近距離通信は、通信エリアが狭い無線通信であって、例えば、ブルートゥース（Bluetooth（登録商標））等に基づく無線通信を示す。また、図１に示すビーコン３０は、移動する。
【００１８】
ゲートウェイ１０は、ビーコン３０が発信するデータを受信するとともに、無線通信または有線送信経路を介して、他のゲートウェイ１０と接続する。また、一部のゲートウェイ１０は、ＷＡＮ（Wide Area Network）を介してセンタサーバ２０と接続する。ゲートウェイ１０は、移動可能な装置であってもよいし、固定位置に設置された装置であってもよい。ゲートウェイ１０は、例えば、スマートフォン等の携帯端末装置、アクセスポイント、店舗や施設等に設定された装置等である。
【００１９】
図１に示す情報処理システム１００は、例えば、子供の居場所検知システムである。子供の居場所検知システムでは、子供４０ａ〜４０ｅ（子供４０ともいう）それぞれがビーコン３０を携帯する。ビーコン３０は、定期的に、ビーコン３０を識別するビーコンＩＤ（identification：ＩＤ）のデータを、通信可能なゲートウェイ１０に送信する。
【００２０】
ビーコン３０が発信したデータを受信したゲートウェイ１０は、所定のゲートウェイ１０にデータを送信して保持させる（登録処理）。また、センタサーバ２０は、親５０（ユーザ）による問い合わせに応答して、問い合わせ対象の子供４０が携帯するビーコン３０のデータを検索する（検索処理）。登録処理及び検索処理の詳細は、図２にしたがって後述する。
【００２１】
なお、図１に示す情報処理システム１００は、子供の居場所検索システムの例に限定されるものではない。情報処理システム１００は、例えば、センサ等によって取得されたデータや、情報処理対象のデータ等を管理するシステムであってもよい。
【００２２】
［データの登録処理、検索処理］
図２は、図１に示す情報処理システム１００における、データの登録処理、及び、データの検索処理を説明する図である。図２において、図１で示したものと同一のものは、同一の符号で示す。
【００２３】
（分散ハッシュテーブル）
図１、図２に示す情報処理システム１００は、分散ハッシュテーブル（Distributed Hash Table：ＤＨＴ）方式に基づいて、複数のビーコン３０のデータを、複数のゲートウェイ１０に分散して保持させる。複数のゲートウェイ１０は、キー情報（ビーコンＩＤに対応）と値（データに対応）とを有するハッシュテーブルを、分散して保持する。したがって、図２に示す各ゲートウェイ１０−０〜１０−１５は、ビーコン３０のデータを保持するデータ保持データベース１４０−０〜１４０−１５（データ保持データベース１４０ともいう）を有する。
【００２４】
また、分散ハッシュテーブル方式によると、あるビーコン３０のデータは、当該ビーコン３０に対応する所定のゲートウェイ１０（以下、登録ゲートウェイ１０と称する）が保持する。例えば、あるビーコン３０の登録ゲートウェイ１０は、当該ビーコン３０のビーコンＩＤをハッシュ関数に入力して算出したハッシュ値に基づいて定まる。
【００２５】
（登録処理）
図２は、ビーコン３０ｂが発信したデータをゲートウェイ１０−９が受信し、登録ゲートウェイ１０に登録する場合を例示する。データを受信すると、ゲートウェイ１０−９は、自ゲートウェイ１０−９を識別するゲートウェイＩＤ（identification：ＩＤ）をデータに付加する。また、ゲートウェイ１０−９は、ビーコン３０ｂのビーコンＩＤ「ｂｅＢ」をハッシュ関数に入力し、ハッシュ値を算出する。そして、ゲートウェイ１０−９は、ハッシュ値に基づいて、ゲートウェイ１０−１５を、ビーコン３０ｂの登録ゲートウェイ１０として特定する。
【００２６】
そして、ゲートウェイ１０−９は、受信したデータに自ゲートウェイ１０−９を識別するゲートウェイＩＤを付加したデータをゲートウェイ１０−１５まで送信する。ゲートウェイ１０−９は、１つまたは複数のゲートウェイ１０を経由して、ゲートウェイ１０−１５までデータを送信する。ゲートウェイ１０−１５は、データを受信すると、データ保持データベース１４０−１５に記憶する。
【００２７】
次に、ビーコン３０ａが発信したデータをゲートウェイ１０−０が受信し、登録処理を行う場合を例示する。ゲートウェイ１０−０は、ビーコン３０ａから受信したデータに、自ゲートウェイ１０−０を識別するゲートウェイＩＤを付加する。同様にして、ゲートウェイ１０−０は、ビーコンＩＤ「ｂｅＡ」に基づいて、ゲートウェイ１０−１５を、ビーコン３０ａの登録ゲートウェイ１０として特定する。ゲートウェイ１０−０は、受信したデータに自ゲートウェイ１０−０を識別するゲートウェイＩＤを付加したデータをゲートウェイ１０−１５まで送信し、ゲートウェイ１０−１５は、当該データをデータ保持データベース１４０−１５に記憶する。
【００２８】
なお、図２の例は、ビーコン３０ａ、３０ｂの登録ゲートウェイ１０が、同一のゲートウェイ１０−１５である場合を例示した。ただし、全てのビーコン３０ａ〜３０ｅの登録ゲートウェイ１０が同一になるわけではない。前述したとおり、各ビーコン３０の登録ゲートウェイ１０は、ビーコンＩＤをハッシュ関数に入力して算出したハッシュ値に基づいて定まる。
【００２９】
また、図１、図２に示すビーコン３０は移動する。例えば、ビーコン３０ａがゲートウェイ１０−０の近隣からゲートウェイ１０−７の近隣に移動した場合、ゲートウェイ１０−７がデータを受信する。そして、ゲートウェイ１０−７は、同様にして、ゲートウェイ１０−１５を登録ゲートウェイ１０として特定し、ゲートウェイ１０−１５までデータを送信する。ビーコン３０ａのビーコンＩＤは同一であるため、ビーコン３０ａの登録ゲートウェイ１０は、ゲートウェイ１０−１５となる。
【００３０】
（検索処理）
次に、センタサーバ２０が、ビーコン３０ｂを携帯する子供４０ｂの居場所を検知する場合を例示する。センタサーバ２０は、検索対象のビーコンＩＤ「ｂｅＢ」をハッシュ関数に入力してハッシュ値を算出し、ビーコン３０ｂの登録ゲートウェイ１０（ゲートウェイ１０−１５）を特定する。そして、センタサーバ２０は、ゲートウェイ１０−１５に、ビーコンＩＤ「ｂｅＢ」のデータの検索指示を出力する（図２の点線）。
【００３１】
ゲートウェイ１０−１５は、検索指示に応答して、データ保持データベース１４０−１５が有するデータのうちビーコンＩＤ「ｂｅＢ」のデータを取得し、センタサーバ２０に送信する（図２の点線）。センタサーバ２０は、受信したデータが含むゲートウェイＩＤに基づいて、ビーコン３０ｂの近隣に位置するゲートウェイ１０（図２の例では、ゲートウェイ１０−９）を識別し、識別したゲートウェイ１０の位置を認識することで、子供４０ｂの位置を検知する。
【００３２】
このように、図１、図２に示す情報処理システム１００では、あるビーコン３０のデータは、当該ビーコン３０のビーコンＩＤに基づいて特定される登録ゲートウェイ１０が保持する。したがって、検索処理を行う場合、センタサーバ２０は、対象のビーコン３０のデータを、全てのゲートウェイ１０から検索しなくてもよい。これにより、検索処理の際の、ネットワークの負荷が低減する。
【００３３】
一方、ビーコン３０が発信したデータを受信したゲートウェイ１０が、当該ビーコン３０の登録ゲートウェイ１０に該当しない場合、受信したゲートウェイ１０から登録ゲートウェイ１０までのデータの送信処理が生じる。次に、図３にしたがって、データの送信処理を説明する。
【００３４】
［データの送信処理］
図３は、分散ハッシュテーブル方式におけるデータの送信処理を説明する図である。図３は、図１、図２に示したゲートウェイ１０−０〜１０−１５を抜粋して表す。図３において、図１、図２で示したものと同一のものは、同一の符号で示す。
【００３５】
前述したとおり、情報処理システム１００は、例えば、数万台のゲートウェイ１０を有する。したがって、各ゲートウェイ１０が、全てのゲートウェイ１０のＩＰ（Internet Protocol：ＩＰ）アドレスを有する場合、メモリ使用量や管理コストが増大する。このため、各ゲートウェイ１０は、例えば、一部の他のゲートウェイ１０のＩＰアドレスを有する。
【００３６】
ビーコン３０からデータを受信したゲートウェイ１０が、登録ゲートウェイ１０のＩＰアドレスを有していない場合、所定のアルゴリズムに基づいて、転送先のゲートウェイ１０を決定し、データを転送する。そして、データを転送された他のゲートウェイ１０がさらに転送を繰り返すことによって、データが登録ゲートウェイ１０に到達する。
【００３７】
図３は、図２に示した、ゲートウェイ１０−９からゲートウェイ１０−１５まで送信経路を例示する。図３の例によると、ゲートウェイ１０−９は、ゲートウェイ１０−１５のＩＰアドレスを有していないが、ゲートウェイ１０−１３は、ゲートウェイ１０−１５のＩＰアドレスを有する。
【００３８】
ゲートウェイ１０−９は、前述した所定のアルゴリズムに基づいて、例えば、ゲートウェイ１０−１３を転送先として決定し、データを転送する。前述したとおり、ゲートウェイ１０−１３は、ゲートウェイ１０−１５のＩＰアドレスを有する。したがって、ゲートウェイ１０−１３は、ゲートウェイ１０−１５にデータを転送する。これにより、データが、ゲートウェイ１０−１５に到達する。
【００３９】
図３の例によると、ゲートウェイ１０−９からゲートウェイ１０−１５までの送信経路は、例えば、経路「ゲートウェイ１０−９->ゲートウェイ１０−１３->ゲートウェイ１０−１５」である。また、当該送信経路は、２つの転送経路「ゲートウェイ１０−９->ゲートウェイ１０−１３」、「ゲートウェイ１０−１３->ゲートウェイ１０−１５」を含む。
【００４０】
なお、ゲートウェイ１０−９からゲートウェイ１０−１３への転送は、実際の物理ネットワークに基づいて行われる。図３の例によると、当該転送は、例えば、経路「ゲートウェイ１０−９->ゲートウェイ１０−８->ゲートウェイ１０−５->ゲートウェイ１０−１４->ゲートウェイ１０−１３」にしたがって送信されることによって実現する。ゲートウェイ１０−１３からゲートウェイ１０−１５への転送についても同様である。
【００４１】
また、情報処理システム１００は、例えば、数万台のビーコン３０を有する。また、各ビーコン３０は、定期的にデータを発信する。したがって、データの登録処理は高頻度に発生する。これにより、データの登録処理に伴うデータの転送処理が頻繁に発生し、ネットワークの負荷が増加する。
【００４２】
一方、データを送信する際に、所定時間中に蓄積した複数のデータを集約して送信する技術が提案されている。この技術によると、各ゲートウェイ１０は、データを転送する際、所定時間中に蓄積したデータをまとめて、転送先のゲートウェイ１０に送信する。複数のデータが集約されることにより、パケットの数が低減し、ネットワークの負荷が低減する。
【００４３】
ただし、データの送信経路は、送信元のゲートウェイ１０と送信先のゲートウェイ（登録ゲートウェイ）１０の組み合わせに応じて様々である。また、前述したとおり、ゲートウェイ１０は、所定のアルゴリズムにしたがって、転送先のゲートウェイ１０を決定する。これにより、各ゲートウェイ１０において、転送先に応じて転送処理の発生頻度（転送頻度ともいう）が異なる。
【００４４】
転送頻度の高い転送先に、単位時間当たりに転送されるデータの数は多い。一方、転送頻度の低い転送先に、単位時間当たりに転送されるデータの数は少ない。転送先に関わらず同一の時間中に蓄積したデータをまとめて送信する場合、転送頻度が低い転送先に転送される複数のデータが、１つまたは複数のパケットに集約される度合いは、他の転送先より低い。複数のデータが１つまたは複数のパケットに集約される度合いを、集約率と称する。
【００４５】
図３の例では、ゲートウェイ１０−９において、例えば、転送先（ゲートウェイ１０−１３）への転送頻度は、他の転送先より低い。したがって、ゲートウェイ１０−９は、データの集約率が低いにも関わらず、他の転送先と同じ時間、ゲートウェイ１０−１３に転送するデータを蓄積する。これにより、データの集約効率が上がらず、データの送信処理に要する時間（以下、送信時間と称する）も長期化する。
【００４６】
［本実施の形態の概要］
したがって、本実施の形態における各ゲートウェイ（データ転送装置）１０は、取得したデータを転送する先の転送先ノード（ゲートウェイ１０）を決定する。そして、本実施の形態におけるゲートウェイ１０は、取得したデータを転送先ノード別に蓄積し、転送先ノードごとに定められた待ち時間中に蓄積した複数のデータをまとめて転送先ノードに送信する。
【００４７】
このように、本実施の形態におけるゲートウェイ１０は、転送先ノード（ゲートウェイ１０）に応じて、データを蓄積する待ち時間を持つ。したがって、ゲートウェイ１０は、集約率が低い転送先ノードの待ち時間を短くすることで、データを効率的に集約し、ネットワーク負荷を低減できる。また、ゲートウェイ１０は、送信時間の非効率な長期化を抑制できる。
【００４８】
図４は、本実施の形態におけるデータ転送処理の概要を説明する図である。
【００４９】
Ｓ１：ゲートウェイ１０は、ビーコン３０や他のゲートウェイ１０から受信して取得したデータを転送する先の転送先ノード（ゲートウェイ１０）を決定する。図３で前述したとおり、ゲートウェイ１０は、例えば、所定のアルゴリズム等にしたがって、転送先のゲートウェイ１０を決定する。
【００５０】
Ｓ２：ゲートウェイ１０は、取得したデータを、工程Ｓ１で決定した転送先ノード（ゲートウェイ１０）別に蓄積する。ゲートウェイ１０は、待ち時間中に取得したデータを順次記憶して蓄積する。
【００５１】
Ｓ３：ゲートウェイ１０は、転送先ノード（ゲートウェイ１０）ごとに定められた待ち時間中に蓄積した複数のデータをまとめて、転送先ノードに送信する。これにより、複数のデータが１つまたは複数のパケットに集約される。複数のデータが集約されることにより、生成されるパケットの数が低減し、ネットワークの負荷が低減する。
【００５２】
転送先ノード（転送先ともいう）に関わらず待ち時間が同一の場合、集約率を向上するために待ち時間を長くすると、全ての転送先の待ち時間が長くなる。これにより、単位時間当たりに転送されるデータの数が少ない転送先の保持時間は、集約率が低いにも関わらず、他の転送先と同一の時間となる。したがって、データの送信時間が非効率に長期化する。
【００５３】
一方、送信時間を短縮するために待ち時間を短縮すると、全ての転送先の待ち時間が短くなる。これにより、単位時間当たりに転送されるデータの数が多い転送先の待ち時間も短くなり、当該転送先のデータの集約率が向上しない。したがって、ネットワークの負荷の抑制が限定的になる。
【００５４】
これに対し、本実施の形態によると、転送先に応じて待ち時間を定める。したがって、ゲートウェイ１０は、転送頻度に応じた待ち時間に基づいて、データを集約できる。これにより、データの集約効率が向上するともに、データの送信時間が非効率に長期化することを抑制可能になる。
【００５５】
図５は、本実施の形態におけるデータ転送処理の概要を模式的に説明する図である。図５において、図３で示したものと同一のものは、同一の符号で示す。図５の例によると、ゲートウェイ１０−９は送信元ノード、ゲートウェイ１０−１５は送信先ノードである。また、ゲートウェイ１０−１３は、データを転送する転送ノードである。
【００５６】
図５の例によると、例えば、単位時間当たりに、転送経路「ゲートウェイ１０−９->ゲートウェイ１０−１３」に転送されるデータ数は少なく、転送経路「ゲートウェイ１０−１３->ゲートウェイ１０−１５」に転送されるデータ数は多い。
【００５７】
例えば、ゲートウェイ１０−９は、ゲートウェイ１０−１３にデータを転送する場合、待ち時間「１秒」の間に蓄積したデータをまとめてゲートウェイ１０−１３に送信する。単位時間当たりに転送されるデータの数が少ない転送経路では、長い時間データを蓄積してもデータの集約率は低い。したがって、ゲートウェイ１０は、待ち時間を短くし、データの送信時間の長期化を抑制する。
【００５８】
一方、ゲートウェイ１０−１３は、ゲートウェイ１０−１５にデータを転送する場合、待ち時間「２秒」の間に蓄積したデータをまとめてゲートウェイ１０−１５に送信する。単位時間当たりに転送されるデータの数が多い転送経路では、長い時間データを蓄積することにより、より多くのデータを蓄積可能になる。したがって、ゲートウェイ１０は、待ち時間を長くすることでデータの集約率を向上させ、ネットワークの負荷を低減する。
【００５９】
このように、本実施の形態におけるゲートウェイ１０は、転送先のゲートウェイ１０に応じて待ち時間を定めることによって、データの集約効率を向上させるとともに、データの送信時間の長期化を抑制できる。
【００６０】
なお、データが集約されることにより、パケットの数が減少する。これにより、セッションの開始及び終了の手続きの発生回数が低減し、手続きによるオーバヘッドが減少する。また、リソースの使用量を抑制可能になる。例えば、ゲートウェイ間の通信が、（Transmission Control Protocol：ＴＣＰ）／ＩＰ（Internet Protocol：ＩＰ）プロトコルに基づく場合、３ウェイ・ハンドシェイク等の、セッション（コネクション）の開始及び終了の手続きの回数を低減可能になる。
【００６１】
また、ゲートウェイ間の通信がＨＴＴＰ（HyperText Transfer Protocol：ＨＴＴＰ）プロトコルに基づく通信である場合も同様である。ＨＴＴＰプロトコルに基づく場合、ＴＣＰ／ＩＰのコネクション確立後、さらに、ＨＴＴＰセッションの処理、及び、ＨＴＴＰリクエストの送信処理が行われる。このように、ＨＴＴＰプロトコルに基づく手続きは、ＴＣＰ／ＩＰに対して、処理が多く負荷が高い。したがって、パケットの数が低減することにより、手続きによるオーバヘッドがさらに低減し、ネットワークの負荷が低減する。
【００６２】
また、データが集約されることにより、セッションの手続きに加えて、セッション確立後のデータの送受信回数も低減する。これにより、ネットワークの負荷がさらに低減する。
【００６３】
次に、図６、図７にしたがって、本実施の形態におけるゲートウェイ１０のハードウェア構成、及び、ソフトウェアブロック図を説明する。なお、図６、図７は、例えば、図５に示すゲートウェイ１０のうち、ゲートウェイ１０−１４の例を示す。他のゲートウェイ１０−０〜１０−１３、１０−１５のハードウェア構成、及び、ソフトウェアブロックについても、ゲートウェイ１０−１４と同様である。
【００６４】
［ゲートウェイ１０−１４のハードウェア構成］
図６は、本実施の形態におけるゲートウェイ１０−１４（データ転送装置）のハードウェア構成図である。ゲートウェイ１０−１４は、例えば、ＣＰＵ（Central Processing Unit：ＣＰＵ）１０１、メインメモリ１１０や補助記憶装置１１１等を備えるメモリ１０２、無線通信部１０３、通信インタフェース部１０４を有する。各部は、バス１０６を介して相互に接続する。
【００６５】
ＣＰＵ１０１は、バス１０６を介してメモリ１０２等と接続するとともに、ゲートウェイ１０−１４全体の制御を行う。無線通信部１０３は、アンテナ１０５を介して、ビーコン３０が発信したデータを受信する。また、通信インタフェース部１０４は、有線通信を介して、他のゲートウェイ１０−０〜１０−１３、１０−１５やセンタサーバ２０とのデータの送受信等を行う。なお、無線通信部１０３は、無線通信にしたがって、他のゲートウェイ１０−０〜１０−１３、１０−１５やセンタサーバ２０とデータの送受信を行ってもよい。
【００６６】
ＲＡＭ（Random Access Memory：ＲＡＭ）等を示すメインメモリ１１０は、ＣＰＵ１０１が処理を行うデータ等を記憶する。補助記憶装置１１１は、ＣＰＵ１０１が実行するオペレーションシステムのプログラムを格納する領域（図示せず）や、データ転送プログラム格納領域１２０を有する。また、補助記憶装置１１１は、転送先テーブル格納領域１３１、保持時間保管テーブル格納領域１３２、保持時間管理テーブル格納領域１３３、データ一時保持データベース格納領域１３４、データ保持データベース格納領域１４０を有する。補助記憶装置１１１は、ＨＤＤ（Hard disk drive）、不揮発性半導体メモリ等を示す。
【００６７】
データ転送プログラム格納領域１２０のデータ転送プログラム（以下、データ転送プログラム１２０と称する）はメインメモリ１１０にロードされる。そして、ＣＰＵ１０１がメインメモリ１１０内にロードされたデータ転送プログラム１２０を実行することによって、本実施の形態におけるデータ転送処理を実現する。
【００６８】
転送先テーブル格納領域１３１の転送先テーブル（以下、転送先テーブル１３１と称する）は、複数の転送先のゲートウェイ１０のアドレス情報を有する。転送先テーブル１３１の一例を、図１２にしたがって後述する。保持時間保管テーブル格納領域１３２の保持時間保管テーブル（以下、保持時間保管テーブル１３２と称する）は、転送先のゲートウェイ１０ごとのデータの保持時間（待ち時間）を有する。保持時間保管テーブル１３２の一例を、図１５にしたがって後述する。
【００６９】
保持時間管理テーブル格納領域１３３の保持時間管理テーブル（以下、保持時間管理テーブル１３３と称する）は、転送先のゲートウェイ１０ごとに、現在の残りの保持時間（待ち時間）を有する。保持時間管理テーブル１３３の一例を、図２０にしたがって後述する。
【００７０】
データ一時保持データベース格納領域１３４のデータ一時保持データベース（以下、データ一時保持データベース１３４と称する）は、転送先のゲートウェイ１０ごとに、保存時間中に保持（蓄積）したデータを記憶する。データ一時保持データベース１３４の一例を、図１４にしたがって後述する。
【００７１】
データ保持データベース格納領域１４０のデータ保持データベース（以下、データ保持データベース１４０と称する）は、登録ゲートウェイ１０として保持するデータを、ビーコン３０ごとに記憶する。データ保持データベース１４０の一例を、図９にしたがって後述する。
【００７２】
［ゲートウェイ１０−１４のソフトウェアの機能ブロック］
図７は、図６に示したゲートウェイ１０−１４のソフトウェアの機能ブロックを示す図である。図７において、図６で示したものと同一のものは、同一の符号で示す。図７に示すデータ転送プログラム１２０は、データ受信モジュール１２１、転送先決定モジュール１２２、データ集約モジュール１２３、データ送信モジュール１２４を有する。
【００７３】
データ受信モジュール１２１は、無線通信部１０３を介して、ビーコン３０が発信したデータを受信する。または、データ受信モジュール１２１は、別のゲートウェイ１０−０〜１０−１３、１０−１５やセンタサーバ２０（図７に図示せず）から、通信インタフェース部１０４を介して、データや指示等を受信する。また、データ受信モジュール１２１は、自ゲートウェイ１０−１４が受信したデータの登録ゲートウェイ１０である場合に、当該データをデータ保持データベース１４０に格納する。
【００７４】
転送先決定モジュール１２２は、転送先テーブル１３１を参照し、受信したデータを転送する先のゲートウェイ１０を決定する。
【００７５】
データ集約モジュール１２３は、受信したデータを、転送先決定モジュール１２２が決定した転送先のゲートウェイ別に、データ一時保持データベース１３４に記憶して蓄積する。そして、データ集約モジュール１２３は、保持時間保管テーブル１３２及び保持時間管理テーブル１３３を参照し、転送先のゲートウェイ１０ごとに定められた待ち時間中に蓄積した複数のデータを、データ一時保持データベース１３４から取得してまとめる。
【００７６】
データ送信モジュール１２４は、データ集約モジュール１２３がまとめたデータを、転送先のゲートウェイ１０−０〜１０−１３、１０−１５に転送する。
【００７７】
次に、図８〜図１３にしたがって、図６、図７に示したデータ転送プログラム１２０のデータ受信時の処理の流れを説明する。
【００７８】
［データ転送プログラム１２０の処理の流れ］
図８は、図６、図７に示したデータ転送プログラム１２０のデータ受信時の処理を説明する第１のフローチャート図である。
【００７９】
Ｓ１１：データ転送プログラム１２０のデータ受信モジュール１２１は、他のゲートウェイ１０（ゲートウェイ１０−０〜１０−１３、１０−１５）、ビーコン３０、センタサーバ２０等からデータ（以下、受信データと称する）を受信する。
【００８０】
Ｓ１２：データ受信モジュール１２１は、受信データが、登録処理を指示するデータであるか否かを判定する。
【００８１】
Ｓ１３：登録処理を指示するデータではない場合（Ｓ１２のＮｏ）、受信データが検索処理を指示するデータであることを示す。したがって、データ受信モジュール１２１は、データ転送プログラム１２０の検索モジュール（図７に図示せず）に、検索指示を出力する。
【００８２】
データ検索モジュールは、データ保持データベース１４０から、検索対象のビーコン３０のデータを検索する。そして、検索モジュールは、検索結果をセンタサーバ２０に送信する。データ保持データベース１４０の一例については、図９にしたがって後述する。
【００８３】
Ｓ１４：登録処理を指示するデータである場合（Ｓ１２のＹｅｓ）、データ受信モジュール１２１は、受信データの送信元が、ゲートウェイ１０であるか否かを判定する。
【００８４】
Ｓ１５：送信元がゲートウェイ１０ではない場合（Ｓ１４のＮｏ）、送信元がビーコン３０であることを示す。したがって、データ受信モジュール１２１は、ビーコン３０から受信したデータに、時刻情報「ｈｈｍｍｓｓ」と、自ゲートウェイ１０を示すゲートウェイＩＤを追加する。
【００８５】
Ｓ１６：工程Ｓ１５の後、データ受信モジュール１２１は、受信データに対応する登録ゲートウェイ１０を特定する。具体的に、データ受信モジュール１２１は、受信データが含むビーコンＩＤをハッシュ関数に入力し、ハッシュ値を算出する。そして、データ受信モジュール１２１は、ハッシュ値に対応するゲートウェイ１０を、登録ゲートウェイ１０として特定する。
【００８６】
Ｓ１７：工程Ｓ１６の後、データ受信モジュール１２１は、Ｓ１５で生成したデータを取得する。
【００８７】
Ｓ１８：一方、送信元がゲートウェイ１０である場合（Ｓ１４のＹｅｓ）、データ受信モジュール１２１は、受信データに、複数のデータが集約されているか否かを判定する。
【００８８】
Ｓ１９：複数のデータが集約されている場合（Ｓ１８のＹｅｓ）、データ受信モジュール１２１は、受信データから複数の各データを取得する。
【００８９】
Ｓ２０：複数のデータが集約されていない場合（Ｓ１８のＮｏ）、データ受信モジュール１２１は、受信データからデータを取得する。工程Ｓ１７、Ｓ１９、Ｓ２０の後続処理（Ａ）については、図１０のフローチャート図で後述する。
【００９０】
［データ保持データベース１４０］
図９は、図８のフローチャート図で説明したデータ保持データベース１４０（図６、図７）の一例を説明する図である。図９は、ゲートウェイ１０−１４のデータ保持データベース１４０（図１の１４０−１４に対応）である。図９に示すデータ保持データベース１４０は、例えば、自ゲートウェイ１０−１４を登録ゲートウェイ１０とする、ビーコン３０ｃのデータを有する。
【００９１】
図９の例によると、データ保持データベース１４０は、ビーコンＩＤ「ｂｅＣ」の情報として、時刻情報「１４：５９：５３」及びゲートウェイＩＤ「６」を有する。ゲートウェイＩＤは、後述するノードＩＤであって、ビーコン３０が発信したデータを受信したゲートウェイ１０の識別情報である。
【００９２】
同様にして、図９に示すデータ保持データベース１４０は、時刻情報「１４：５９：５４」及びゲートウェイＩＤ「６」を有する。同様にして、データ保持データベース１４０は、ビーコンＩＤ「ｂｅＣ」の他の情報を有する。
【００９３】
図１０は、データ転送プログラム１２０のデータ受信時の処理を説明する第２のフローチャート図である。図８のフローチャート図の工程Ｓ１７、Ｓ１９、Ｓ２０の後（Ａ）、データ転送プログラム１２０は、工程Ｓ２１の処理に遷移する。
【００９４】
Ｓ２１：データ転送プログラム１２０の転送先決定モジュール１２２は、受信データのうち１つのデータを選択する。
【００９５】
Ｓ２２：転送先決定モジュール１２２は、選択したデータの登録ゲートウェイ１０が自ゲートウェイ１０−１４であるか否かを判定する。
【００９６】
Ｓ２３：登録ゲートウェイ１０が自ゲートウェイ１０−１４である場合（Ｓ２２のＹｅｓ）、転送先決定モジュール１２２は、選択したデータを、図９に示した、データ保持データベース１４０に記憶して登録する。例えば、転送先決定モジュール１２２は、図９のデータ保持データベース１４０に、ビーコンＩＤ「ｂｅＣ」、時刻情報「１４：５９：５７」及びゲートウェイＩＤ「６」の情報を記憶して登録する。
【００９７】
Ｓ２４：一方、登録ゲートウェイが自ゲートウェイ１０−１４ではない場合（Ｓ２２のＮｏ）、転送先決定モジュール１２２は、転送先テーブル１３１を参照し、選択したデータを転送する転送先のゲートウェイ１０を決定する。
【００９８】
（Ｓ２４：転送先のゲートウェイ１０の決定）
ここで、転送先のゲートウェイ１０の決定処理を説明する。前述したとおり、本実施の形態における情報処理システム１００は、分散ハッシュテーブル方式に基づいて、データを管理する。分散ハッシュテーブル方式は複数のアルゴリズムを有し、アルゴリズムの１つにＣｈｏｒｄがある。本実施の形態では、Ｃｈｏｒｄの分散ハッシュテーブル方式にしたがって、ゲートウェイ間の通信を管理する場合を例示する。
【００９９】
図１１は、Ｃｈｏｒｄの分散ハッシュテーブル方式にしたがって、ゲートウェイ間の通信を管理する方法を模式的に説明する図である。図１１に示すノード「０」〜ノード「１５」（ノード１０−０〜１０−１５、ノード１０ともいう）は、図１〜図３、図５に示したゲートウェイ１０−０〜１０−１５に対応する。また、ノード「０」〜ノード「１５」のノード番号は、ノードＩＤ（ゲートウェイＩＤともいう）を示す。
【０１００】
Ｃｈｏｒｄは、円周状の論理空間に基づいて、ノード間の送信経路を管理する。図１１に示す円周状の論理空間は、始点のノード「０」と終点のノード「１５」とを結んだ円周を示す。各ノード１０は、円周の時計回り方向Ｄ１に一列に配置した位置（図１１の０〜１５）に対応付けられる。円周における位置関係は、ノード１０の物理的な位置関係ではなく、論理的な位置関係である。また、ビーコンＩＤをハッシュ関数に入力して算出するハッシュ値は、円周上の位置に対応する。当該ビーコンＩＤのデータを保持するノード１０は、ハッシュ値に対応する位置に対応付けられたノード１０である。
【０１０１】
なお、Ｃｈｏｒｄでは、時計回り方向Ｄ１のノード番号（図１１の０〜１５）の差分（値「＋１」、値「＋２」…「＋１５」）を、ノード間の距離と称する。ノード間の距離は、論理的な距離である。
【０１０２】
（転送先テーブル１３１）
図１２は、Ｃｈｏｒｄにおける転送先テーブル１３１（図６、図７）の一例を示す図である。ノードが１６個である場合、各ノード１０の転送先テーブル１３１は、距離が値「２ｉ（ｉ＝０〜３）」のノード番号のアドレスを保持する。つまり、ノード「Ｎ」の転送先テーブル１３１は、ノード「Ｎ＋１」、ノード「Ｎ＋２」、ノード「Ｎ＋４」、ノード「Ｎ＋８」のアドレスを有する。
【０１０３】
したがって、転送先テーブル１３１は、図１２に示すように、「＋１ノード」、「＋２ノード」、「＋４ノード」、「＋８ノード」の各アドレスを保持する。具体的に、ノード「１４」（ゲートウェイ１０−１４）の転送先テーブル１３１は、ノード「１５」、ノード「０」、ノード「２」、ノード「６」のアドレスを有する。
【０１０４】
図１２の例によると、「＋１ノード」のアドレスは値「ａ．ａ．ａ．ａ」であって、「＋２ノード」のアドレスは値「ｂ．ｂ．ｂ．ｂ」である。転送先テーブル１３１の他のノード１０についても同様に、アドレスの情報を有する。図１２に示すように、転送先テーブル１３１は、全てのノードではなく、離散的な一部のノード１０のアドレスを保持する。これにより、転送先テーブル１３１のサイズが低減する。
【０１０５】
（送信経路）
図１３は、Ｃｈｏｒｄにおける送信経路の一例を示す図である。ノード１０は、図１２に示した転送先テーブル１３１がアドレスを保持する複数の候補ノードから、次の転送先のノードを決定する。具体的に、ノード１０は、時計回り方向に、自ノードから送信先ノードまでの間に含まれる候補ノードであって、送信先ノードとの距離が最も短い候補ノードを転送先として決定する。即ち、ノード１０は、自ノードから送信先ノードまでの距離の内輪で、送信先ノードとの距離が最短の候補ノードを、転送先として決定する。
【０１０６】
第１の例は、図２で前述した、ノード「０」（ゲートウェイ１０−０）を送信元とし、ノード「１５」（ゲートウェイ１０−１５）を送信先とする送信経路の例である。ノード「０」の転送先テーブル１３１は、ノード「１（＋１）」、「２（＋２）」、「４（＋４）」、「８（＋８）」のアドレスを有する。したがって、ノード「０」は、ノード「１５」との距離「＋１５」の内輪で、ノード「１５」との距離が最も短いノード「８（＋８）」を１つ目の転送先として決定する。
【０１０７】
ノード「８」の転送先テーブル１３１は、ノード「９（＋１）」、「１０（＋２）」、「１２（＋４）」、「０（＋８）」のアドレスを有する。したがって、ノード「８」は、ノード「１５」との距離「＋７」の内輪で、ノード「１５」との距離が最も短いノード「１２（＋４）」を２つ目の転送先として決定する。同様にして、ノード「１２」は、ノード（「１３（＋１）」「１４（＋２）」「０（＋４）」「４（＋８）」）のうち、ノード「１４（＋２）」を３つ目の転送先として決定する。また、ノード「１４」は、ノード「１５（＋１）」のアドレスを有する。
【０１０８】
したがって、送信元ノード「０」から送信先ノード「１５」までの送信経路は、図１３に実線で示すように、経路「ノード「０」->ノード「８（＋８）」->ノード「１２（＋４）」->ノード「１４（＋２）」->ノード「１５（＋１）」」となる。即ち、当該送信経路は、転送ノード「８」「１２」「１４」を介して転送される経路である。
【０１０９】
第２の例は、図２で前述した、ノード「９」（ゲートウェイ１０−９）を送信元とし、送信先ノード「１５」（ゲートウェイ１０−１５）とする送信経路の例である。同様にして転送先を決定した場合、ノード「９」からノード「１５」までの送信経路は、図１３に点線で示すように、経路「ノード「９」->ノード「１３（＋４）」->ノード「１５（＋２）」」となる。
【０１１０】
このように、ゲートウェイ１０は、図１０のフローチャートの工程Ｓ２４の処理として、図１２に示した転送先テーブル１３１に基づいて、転送先のゲートウェイ（ノード）１０を決定する。図１０のフローチャート図に戻って、次の処理を説明する。
【０１１１】
Ｓ２５：工程Ｓ２４の後、データ転送プログラム１２０のデータ集約モジュール１２３は、決定した転送先について、データ一時保持データベース１３４にデータが記憶済みであるか否かを判定する。即ち、データ集約モジュール１２３は、データ一時保持データベース１３４が、決定した転送先のエントリを有するか否かを判定する。データ一時保持データベース１３４の一例については、図１４にしたがって後述する。
【０１１２】
Ｓ２６：エントリを有する場合（Ｓ２５のＹｅｓ）、データ集約モジュール１２３は、データ一時保持データベース１３４の決定した転送先のエントリに、選択したデータを記憶して追加する。
【０１１３】
Ｓ２７：一方、エントリを有していない場合（Ｓ２５のＮｏ）、データ集約モジュール１２３は、決定した転送先のエントリをデータ一時保持データベース１３４に作成し、当該エントリに選択したデータを記憶する。
【０１１４】
Ｓ２８：工程Ｓ２７の後、データ集約モジュール１２３は、保持時間保管テーブル１３２を参照し、決定した転送先の保持時間（待ち時間）を取得する。保持時間保管テーブル１３２の一例については、図１５にしたがって後述する。
【０１１５】
本実施の形態における保持時間（待ち時間）は、例えば、各転送先ノードに単位時間当たりに転送されるデータの数に応じて決定される。これにより、データ集約モジュール１２３は、各転送先に転送されるデータの数に応じた、保持時間を適切に決定できる。適切な保持時間に決定されることにより、データの集約効率が向上するともに、データの送信時間が長期化することを抑制可能になる。
【０１１６】
また、本実施の形態では、第１の転送先ノードの保持時間（待ち時間）は、第１の転送先ノードより転送されるデータの数が少ない第２の転送先ノードの保持時間（待ち時間）より長い。即ち、単位時間当たりに転送されるデータの数が多い転送先ほど、保持時間が長い。
【０１１７】
このように、転送されるデータ数が多い第１の転送先ノードの保持時間を長くすることで、より多くのデータを蓄積可能になり、データの集約率が大幅に向上する。また、データ数が少ない第２の転送先ノードの保持時間を短くすることで、集約率が低いにも関わらず、転送を非効率に待機して送信時間が長期化することを抑制可能になる。
【０１１８】
Ｓ２９：工程Ｓ２８の後、データ集約モジュール１２３は、保持時間管理テーブル１３３に、決定した転送先の保持時間をセットし、残りの保持時間のカウントを開始させる。保持時間管理テーブル１３３の一例については、図２０にしたがって後述する。
【０１１９】
Ｓ３０：データ集約モジュール１２３は、受信データのうち、全てのデータを処理したか否かを判定する。未処理のデータがある場合（Ｓ３０のＮｏ）、データ転送プログラム１２０は、工程Ｓ２１の処理に遷移し、未処理のデータを選択して、工程Ｓ２２〜Ｓ２９の処理を行う。一方、全てのデータを処理済みの場合（Ｓ３０のＹｅｓ）、データ転送プログラム１２０は、データ受信時の処理を終了する。
【０１２０】
なお、本実施の形態では、図１、図２で説明したとおり、取得したデータは、複数のノード１０とノード間経路を有するノード網において、当該データの送信元ノードから送信先ノードに転送先ノードを経由して送信されるデータである。
【０１２１】
ノード網における、送信元ノードから送信先ノードまでの送信経路は、送信元ノード及び送信先ノードに応じて様々である。これにより、送信経路が含む転送経路の発生頻度は、転送経路に応じて異なるため、単位時間当たりに転送先に転送されるデータの数は、転送先に応じて異なる。したがって、転送先に応じて保持時間を定めることで、データの集約効率を向上させることが可能になる。
【０１２２】
［データ一時保持データベース１３４］
図１４は、図１０のフローチャート図の工程Ｓ２５〜Ｓ２７で示したデータ一時保持データベース１３４（図６、図７）の一例を説明する図である。データ一時保持データベース１３４は、転送対象のデータを、保持データとして、転送先ごとに一時的に記憶する。
【０１２３】
保持データは、登録ゲートウェイ１０を示すゲートウェイＩＤ（ノードＩＤ）、及び、登録ゲートウェイ１０に登録される登録データ（ｄａｔａ）を有する。登録データは、ビーコン３０が発信したデータを受信したゲートウェイ１０のゲートウェイＩＤ（ノードＩＤ）、当該ビーコン３０のビーコンＩＤ、時刻情報を含む。
【０１２４】
図１４に示すデータ一時保持データベース１３４によると、「＋１ノード」の保持データは、データ「１５，ｄａｔａ（０，ｂｅＡ、１４：５９：５６）」、及び、データ「１５，ｄａｔａ（０，ｂｅＡ、１４：５９：５９）」である。
【０１２５】
データ「１５，ｄａｔａ（０，ｂｅＡ、１４：５９：５６）」は、時刻「１４：５９：５６」に、ノード「０」がビーコン３０ａからデータを受信したことを示し、ビーコン３０ａの登録ゲートウェイ１０が、ノード「１５」であることを示す。同様にして、データ「１５，ｄａｔａ（０，ｂｅＡ、１４：５９：５９）」は、時刻「１４：５９：５９」に、ノード「０」がビーコン３０ａからデータを受信したことを示す。
【０１２６】
また、図１４に示すデータ一時保持データベース１３４によると、「＋２ノード」の保持データは、データ「１，ｄａｔａ（６，ｂｅＤ、１４：５９：５８）」である。データ「１，ｄａｔａ（６，ｂｅＤ、１４：５９：５８）」は、時刻「１４：５９：５８」に、ノード「６」がビーコン３０ｄからデータを受信したことを示す。また、ビーコン３０ｄの登録ゲートウェイ１０が、ノード「１」であることを示す。データ一時保持データベース１３４は、他のノードについても同様に保持データを有する。
【０１２７】
［保持時間保管テーブル１３２］
図１５は、図１０のフローチャート図の工程Ｓ２８で示した保持時間保管テーブル１３２（図６、図７）の一例を説明する図である。保持時間保管テーブル１３２は、図１２に示した転送先テーブル１３１が有する転送先ごとに、保持時間（待ち時間）を有する。
【０１２８】
図１５に示す保持時間保管テーブル１３２によると、「＋１ノード」の保持時間は、時間「４秒」であって、「＋２ノード」の保持時間は時間「２秒」である。また、「＋４ノード」の保持時間は時間「１秒」であって、「＋８ノード」の保持時間は値「１／２秒」である。このように、本実施の形態では、距離の短い転送先の保持時間は、距離の長い転送先の保持時間に対して長い。
【０１２９】
前述したとおり、各ノードは、時計回り方向に自ノードから送信先ノードまでの間に位置するノードのうち、送信先ノードとの距離が最も短いノードを転送先として決定する。したがって、データの送信経路において、転送先ノードとの距離は、転送の度に短く推移する。図１３に示したノード「０」からノード「１５」までの送信経路によると、転送先までの距離は、距離「＋８」、「＋４」、「＋２」、「＋１」のように推移する。
【０１３０】
送信経路の距離が長い場合、送信処理における転送回数（ホップ数）は多くなる傾向にある。一方、送信経路の距離が短い場合、距離の長い送信経路に対し、転送回数は少ない傾向にある。前述したとおり、転送経路の距離は転送の度に短く推移するため、転送回数が多い送信経路は、転送回数が少ない送信経路に対して、距離が長い転送経路を含む確率が高い。一方、各送信経路は、転送回数に関わらず、短い転送経路を含む確率が高い。
【０１３１】
したがって、距離が短い転送先の転送頻度は、距離が長い転送先より大きい。即ち、Ｃｈｏｒｄによると、距離の短い転送先に転送されるデータの数は、距離の長い転送先に転送されるデータの数より多い。各転送先に転送されるデータの数については、図１６〜図１８にしたがって後述する。
【０１３２】
このように、Ｃｈｏｒｄの特性を利用することにより、転送先までの距離に基づいて、単位時間当たりに転送先に転送されるデータの数を判定可能である。これにより、本実施の形態のゲートウェイ１０は、各転送先の距離に基づいて判定されるデータ数に応じて、適切な保持時間を決定できる。
【０１３３】
そして、本実施の形態におけるゲートウェイ１０は、距離が長い転送先の保持時間（待ち時間）を短くし、距離が短い転送先の保持時間（待ち時間）を長くする。前述したとおり、Ｃｈｏｒｄによると、距離が長い転送先に転送されるデータの数は少ない。したがって、ゲートウェイ１０は、距離が長い転送先の保持時間を短くすることで、データの集約率より送信時間の短縮を優先する。
【０１３４】
また、前述したとおり、Ｃｈｏｒｄによると、距離が短い転送経路に転送されるデータの数は多い。したがって、ゲートウェイ１０は、距離が短い転送経路の保持時間（待ち時間）を長くすることで、送信時間の短縮よりデータの集約率の向上を優先する。
【０１３５】
なお、転送先に関わらず保持時間が一律の場合、転送回数の多い送信経路の送信時間は長くなる。これに対し、本実施の形態におけるゲートウェイ１０は、距離の長い転送先の保持時間を短くする。前述したとおり、転送回数の多い送信経路は、距離の長い転送経路を含む確率が高い。
【０１３６】
したがって、距離の長い転送先の保持時間が短くなることにより、転送回数の多い送信経路の送信時間が長期化することを抑制可能になる。これにより、本実施の形態におけるゲートウェイ１０は、保持時間が一律の場合に対し、転送回数が異なる複数の送信経路の間で、送信時間の差が拡大することを抑制できる。
【０１３７】
ここで、図１６〜図１８にしたがって、Ｃｈｏｒｄに基づく、転送先までの距離に応じたデータの数を説明する。
【０１３８】
（転送先までの距離に応じたデータの数）
図１６は、送信先ノード「１５」が同一であって送信元ノードが異なる、複数の送信経路を模式的に説明する図である。図１６は、図１１、図１３に示した円周の一部を表す。図１６に示すように、ノード「１５」を送信先とする送信経路は、送信元ノードに応じて、多数の送信経路が存在する。
【０１３９】
図１６では、送信経路が含む複数の転送経路のうち、ノード「１５」を転送先とする転送経路に注目する。図１６に太線で示す４つの転送経路ｒｔ１〜ｒｔ４は、ノード「１５」を転送先とする転送経路である。具体的に、当該４つの転送経路ｒｔ１〜ｒｔ４は、ノード「１４（＋１）」、ノード「１３（＋２）」、ノード「１１（＋４）」、ノード「７（＋８）」をそれぞれ転送元とする。
【０１４０】
転送経路ｒｔ１〜ｒｔ４に応じて、転送される前の転送経路の種類の数は異なる。具体的に、転送経路「ノード「１４」->ノード「１５」」ｒｔ１は、図１６に点線で示す、３つの転送経路ｒｔ１１〜ｒｔ１３のいずれかの後に発生する。また、転送経路「ノード「１３」->ノード「１５」」ｒｔ２は、図１６に破線で示す、２つの転送経路ｒｔ２１、ｒｔ２２のいずれかの後に発生する。
【０１４１】
また、転送経路「ノード「１１」->ノード「１５」」ｒｔ３は、図１６に一点鎖線で示す、１つの転送経路ｒｔ３１の後に発生する。また、転送経路「ノード「７」->ノード「１５」」ｒｔ４の前に発生する転送経路はない。このように、距離が短い転送経路ほど、転送される前の転送経路の種類が多い。転送される前の転送経路の種類が多いことは、単位時間当たりに転送されるデータの数が多いことを示す。
【０１４２】
図１７は、図１６で説明した、ノード「１５」を転送先とする各転送経路ｒｔ１〜ｒｔ４に転送される、単位時間当たりのデータの数を表す図である。図１７に示すグラフｇ１の横軸は、各転送経路ｒｔ１〜ｒｔ４を示し、縦軸は、単位時間当たりに転送されるデータの数を示す。
【０１４３】
グラフｇ１に示すように、距離の短い転送経路ほど、単位時間当たりに転送されるデータの数が多い。具体的に、転送経路「ノード「１４」->ノード「１５」」ｒｔ１に転送されるデータの数は、転送経路「ノード「１３」->ノード「１５」」ｒｔ２より多い。同様にして、転送経路「ノード「１３」->ノード「１５」」ｒｔ２に転送されるデータの数は、転送経路「ノード「１１」->ノード「１５」」ｒｔ３より多い。他の転送経路ｒｔ１〜ｒｔ４の関係についても同様である。
【０１４４】
このように、Ｃｈｏｒｄによると、距離が短い転送先ほど、転送されるデータの数が多い。これは、図１６に示す各送信経路に含まれる、他の転送経路についても同様である。次に、他の転送経路の例として、図１６に示す、ノード「１４」を転送先とする各転送経路ｒｔ１１〜ｒｔ１３に注目する。
【０１４５】
図１６に点線で示す４つの転送経路ｒｔ１１〜ｒｔ１３は、ノード「１４」を転送先とする転送経路である。具体的に、当該３つの転送経路ｒｔ１１〜ｒｔ１３は、ノード「１２（＋２）」、ノード「１０（＋４）」、ノード「６（＋８）」をそれぞれ転送元とする。
【０１４６】
転送経路ｒｔ１１〜ｒｔ１３についても同様にして、転送経路ｒｔ１１〜ｒｔ１３に応じて、転送される前の転送経路の種類の数が異なる。転送経路「ノード「１２」->ノード「１４」」ｒｔ１１は、２つの転送経路（不図示）のいずれかの後に発生する。また、転送経路「ノード「１０」->ノード「１４」」ｒｔ１２は、１つの転送経路（不図示）の後に発生する。また、転送経路「ノード「６」->ノード「１４」」ｒｔ１３の前に発生する転送経路はない。
【０１４７】
図１８は、図１６で説明した、ノード「１４」を転送先とする各転送経路ｒｔ１１〜ｒｔ１３に転送される、単位時間当たりのデータの数を表す図である。図１８に示すグラフｇ２の横軸は、各転送経路ｒｔ１１〜ｒｔ１３を示し、縦軸は、単位時間当たりに転送されるデータの数を示す。
【０１４８】
グラフｇ２に示すように、図１７のグラフｇ１と同様にして、距離の短い転送経路ほど、単位時間当たりに転送されるデータの数が多い。図１６〜図１８に示すように、図１６に示す、送信先ノード「１５」を共通とする各送信経路に含まれる転送経路について、距離が短い転送経路ほど、単位時間当たりに転送されるデータの数は多い。
【０１４９】
（保持時間保管テーブル１３２に基づくデータ転送処理）
図１９は、図１５に示す保持時間保管テーブル１３２に基づくデータ転送処理を模式的に説明する図である。図１９は、図１３の例と同様に、送信経路の第１、第２の例を示す。
【０１５０】
まず、図１９に実線で示す第１の送信経路を例示する。図１５に示した保持時間保管テーブル１３２に基づくと、転送経路「ノード「０」->ノード「８」」（＋８）の保持時間は時間「１／２秒」であって、転送経路「ノード「８」->ノード「１２」」（＋４）の保持時間は時間「１秒」である。同様にして、転送経路「ノード「１２」->ノード「１４」」（＋２）の保持時間は時間「２秒」であって、転送経路「ノード「１４」->ノード「１５」」（＋１）の保持時間は時間「４秒」である。
【０１５１】
このように、ノード「１４」は、距離の短い転送先（ノード「１５」）の保持時間を、他の転送先より長くする。これにより、より多くのデータを蓄積可能になるため、データの集約率が向上する。また、ノード「０」は、距離の長い転送先（ノード「８」）の保持時間を、他の転送先より短くする。これにより、データの集約率が低いにも関わらず非効率にデータの転送を待機することを抑制し、送信時間が長期化することを抑制可能になる。
【０１５２】
図１９に点線で示す、第２の送信経路についても同様である。図１９に示すように、距離「＋４」の転送先（ノード「１３」）の保持時間は時間「１秒」であって、距離「＋２」の転送先（ノード「１５」）の保持時間は時間「２秒」である。
【０１５３】
図１５〜図１９で説明したように、本実施の形態における待ち時間は、円周上の一方の方向における、転送元ノードから転送先ノードまでの順番情報の差分に基づいて決定される。転送元ノードから転送先ノードまでの順番情報の差分は、ノード間の距離を示す。
【０１５４】
なお、前述したとおり、複数のノードには、複数のノードを仮想の円周上に一列に配置した場合の順番情報が割り当てられる。また、本実施の形態におけるゲートウェイ１０は、複数のノードの一部の候補ノードのうち、円周上の一方の方向における、候補ノードから送信先ノードまでの順番情報の差分が小さい候補ノードを転送先ノードとして決定する。
【０１５５】
これにより、ゲートウェイ１０は、Ｃｈｏｒｄの特性を利用することにより、各転送先までの距離に基づいて、転送されるデータの数を判定できる。そして、ゲートウェイ１０は、データの数に応じた、適切な保持時間を決定できる。
【０１５６】
また、本実施の形態において、転送元ノードから転送先ノードまでの差分が第１の値である、転送先ノードの待ち時間は、当該差分が第１の値より大きい第２の値である転送先ノードの待ち時間より長い。これにより、ゲートウェイ１０は、距離が短い転送先のデータの集約率を向上するとともに、距離が長い転送先への転送の待機時間を短縮することで、送信時間が長期化することを抑制できる。また、ゲートウェイ１０は、複数の送信経路の間の送信時間の差を平滑化できる。
【０１５７】
次に、図２０にしたがって、図１０のフローチャート図で示した、保持時間管理テーブル１３３（図６、図７）の一例を説明する。
【０１５８】
［保持時間管理テーブル１３３］
図２０は、図１０のフローチャート図の工程Ｓ２９で示した、保持時間管理テーブル１３３の一例を説明する図である。図２０に示す保持時間管理テーブル１３３は、ゲートウェイ１０−１４の保持時間管理テーブル１３３である。
【０１５９】
保持時間管理テーブル１３３は、転送先ごとに、残りの保持時間の情報を有する。なお、図２０の例によると、「＋１ノード」の残り保持時間は、時間「０秒」である。また、ノード「＋２」の残り保持時間は時間「１．５秒」、「＋４ノード」の残り保持時間は時間「０．５秒」である。
【０１６０】
次に、図２１にしたがって、データ転送プログラム１２０のデータ送信時の処理を説明する。
【０１６１】
［データ転送プログラム１２０の処理の流れ：データ送信時］
図２１は、図６、図７に示したデータ転送プログラム１２０のデータ送信時の処理を説明するフローチャート図である。
【０１６２】
Ｓ３１：データ集約モジュール１２３は、図２０に示した保持時間管理テーブル１３３が有する、各転送先の残りの保持時間を定期的に監視する。
【０１６３】
Ｓ３２：データ集約モジュール１２３は、転送先のうち、残りの保持時間が時間「０」に推移した転送先がある否かを判定する。残りの保持時間が時間「０」に推移した転送先がない場合（Ｓ３２のＮｏ）、データ集約モジュール１２３は、工程Ｓ３１の処理に戻る。
【０１６４】
Ｓ３３：残りの保持時間が時間「０」に推移した転送先がある場合（Ｓ３２のＹｅｓ）、データ集約モジュール１２３は、データ一時保持データベース１３４から、当該転送先の保持データを取得し集約する。即ち、データ集約モジュール１２３は、残りの保持時間が時間「０」に推移した転送先の保持データをまとめた、１つのパケットを生成する。パケットの一例については、図２２にしたがって後述する。
【０１６５】
なお、データ集約モジュール１２３は、複数のデータを、必ずしも１つのパケットに集約する必要はない。データ集約モジュール１２３は、集約対象の保持データが多い場合、２つ以上のパケットに集約してもよい。
【０１６６】
図２０に示した保持時間管理テーブル１３３によると、「＋１ノード」の残り保持時間は、値「０秒」である。したがって、データ集約モジュール１２３は、例えば、図１４に示すデータ一時保持データベース１３４が有する「＋１ノード」の２つの保持データを有する、１つのパケットを生成する。
【０１６７】
Ｓ３４：データ送信モジュール１２４は、生成したパケット（データ）を転送先に転送する。工程Ｓ３４の後、データ転送プログラム１２０は、工程Ｓ３１の処理に遷移する。図２０に示した保持時間管理テーブル１３３によると、データ集約モジュール１２３は、０．５秒後に、「＋４ノード」を転送先とするデータをまとめて送信し、１．５秒後に「＋２ノード」を転送先とするデータをまとめて送信する。
【０１６８】
なお、集約される複数のデータは、単一のビーコン３０が発信したデータに加え、異なるビーコン３０が発信したデータも含む。異なるビーコン３０が発信したデータであっても、同一の転送経路にしたがって転送される。仮に、単一のビーコン３０が発信したデータのみを換算する場合、当該ビーコン３０から１秒当たりＸ個のデータが発信され、保持時間がＹ秒である場合、データの集約効果は値「１／（Ｘ＊Ｙ）」となる。
【０１６９】
次に、図２２にしたがって、図２１のフローチャート図の工程Ｓ３３で説明した、パケットの一例を説明する。
【０１７０】
［パケット］
図２２は、本実施の形態におけるデータ転送プログラム１２０が生成するパケットの一例を説明する図である。図２２の（Ａ）は、１つのデータを有する第１のパケットＰＫ１を示し、図２２の（Ｂ）は、２つのデータを有する第２のパケットＰＫ２を示す。
【０１７１】
図２２の（Ａ）に示す第１のパケットＰＫ１は、ヘッダＨｄ、コマンドＣｍ、データＤｔを有する。ヘッダＨｄは、例えば、ＴＣＰ／ＩＰのヘッダであり、転送先のゲートウェイ１０のＩＰアドレスを有する。また、コマンドＣｍは、Ｃｈｏｒｄのコマンドであって、データの登録処理を指示するコマンドである。
【０１７２】
データＤｔは、登録ゲートウェイ１０のゲートウェイＩＤ、及び、登録データを有する。登録ゲートウェイ１０のゲートウェイＩＤは、送信先ノードのノードＩＤである。登録データ（ｄａｔａ）は、図１４で説明したとおり、ビーコン３０が発信したデータを受信したゲートウェイ１０のゲートウェイＩＤ、当該ビーコン３０のビーコンＩＤ、時刻情報を含む。
【０１７３】
一方、図２２の（Ｂ）に示す第２のパケットＰＫ２は、ヘッダＨｄ、コマンドＣｍ、集約されたデータを有する。ヘッダＨｄ、及び、コマンドＣｍは、第１のパケットＰＫ１と同様である。集約されたデータは、複数のデータＤｔ−１、Ｄｔ−２を有する。各データＤｔ−１、Ｄｔ−２のそれぞれは、第１のパケットＰＫ１が有するデータＤｔと同様である。
【０１７４】
このように、本実施の形態におけるゲートウェイ１０は、複数のデータを含むパケットＰＫ２を生成する。これにより、パケット数が低減し、セッションの手続き回数及びデータの送受信回数が減少することで、ネットワークの負荷を抑制可能になる。
【０１７５】
なお、図２２の（Ｂ）は、パケットが２つのデータＤｔ−１、Ｄｔ−２を有する場合を例示したが、パケットは３つ以上のデータを有していてもよい。なお、通信がＨＴＴＰプロトコルに基づく場合、ヘッダＨｄは、さらに、ＨＴＴＰのヘッダを含む。
【０１７６】
［ゲートウェイ１０−０からゲートウェイ１０−１５までの送信処理］
図２３は、図２に例示した、ゲートウェイ１０−０からゲートウェイ１０−１５までの送信処理を説明する図である。図２３において、図２で示したものと同一のものは、同一の符号で示す。
【０１７７】
図１３及び図１９で前述したとおり、ゲートウェイ１０−０からゲートウェイ１０−１５までの送信経路は、経路「ゲートウェイ１０−０->ゲートウェイ１０−８->ゲートウェイ１０−１２->ゲートウェイ１０−１４->ゲートウェイ１０−１５」である。
【０１７８】
図１５に示す保持時間保管テーブル１３２によると、ゲートウェイ１０−０は、１／２秒中に蓄積したデータを集約して、ゲートウェイ１０−８に転送する。そして、ゲートウェイ１０−８は、１秒中に蓄積したデータを集約して、ゲートウェイ１０−１２に転送する。そして、ゲートウェイ１０−１２は、２秒中に蓄積したデータを集約してゲートウェイ１０−１４に転送し、ゲートウェイ１０−１４は、４秒中に蓄積したデータを集約してゲートウェイ１０−１５に転送する。
【０１７９】
このように、本実施の形態におけるゲートウェイ１０は、Ｃｈｏｒｄの特性を利用し、距離が短い転送先の保持時間を長くし、距離が短い転送先の保持時間を短くする。これにより、ゲートウェイ１０は、効率的にデータを集約しネットワークの負荷を低減できるとともに、データの送信時間の長期化を抑制できる。
【０１８０】
なお、図３で前述したとおり、ゲートウェイ間の転送処理は、実際の物理ネットワークに基づいて行われる。例えば、ゲートウェイ１０−０からゲートウェイ１０−８への転送は、例えば、経路「ゲートウェイ１０−０->ゲートウェイ１０−４->ゲートウェイ１０−５->ゲートウェイ１０−８」にしたがって送信されることにより実現する。
【０１８１】
［データの集約］
図２４は、本実施の形態におけるデータ転送プログラム１２０による、データの集約例を示す図である。図２４の（Ａ）は、転送先に関わらず保持時間が２秒である場合を示す図である。一方、図２４の（Ｂ）は、転送先に応じて保持時間が異なる場合を示す図である。図２４の縦軸は時刻（秒）を示し、下方向に時間が経過する場合を示す。また、図２４の横軸は、図１９等に示したノードの一部に対応する。
【０１８２】
図２４の（Ａ）及び（Ｂ）は、各送信元ノード（「６」、「８」、「１２」）から送信先ノード「１５」まで、データを送信する場合を例示する。図２４の例によると、時刻「０．５秒」にノード「６」がビーコン３０ａからデータを受信し、時刻「３秒」にノード「１２」がビーコン３０ｂからデータを受信する。そして、時刻「４秒」にノード「８」がビーコン３０ａからデータを受信する。また、ビーコン３０ａ、３０ｂの登録ゲートウェイ１０は、ノード「１５」である。
【０１８３】
（一律の保持時間）
図２４の（Ａ）の例では、各ノードは２秒の間に取得したデータをまとめて転送する。したがって、ノード「６」は、データを受信してから２秒経過後の時刻「２．５秒」に、ノード「１４」にデータを転送する（ｘ１）。そして、ノード「１４」は、ノード「６」からデータを受信すると、２秒経過後の時刻「４．５秒」にノード「１５」にデータを転送する（ｘ２）。
【０１８４】
同様にして、ノード「１２」はデータを受信してから２秒経過後の時刻「５秒」に、ノード「１４」にデータを転送し（ｘ３）、ノード「１４」は時刻「７秒」に、ノード「１５」にデータを転送する（ｘ４）。
【０１８５】
さらに、ノード「８」はデータを受信してから２秒経過後の時刻「６秒」に、ノード「１２」にデータを転送し（ｘ５）、ノード「１２」は時刻「８秒」に、ノード「１４」にデータを転送する（ｘ６）。そして、ノード「１４」は時刻「１０秒」に、ノード「１５」にデータを転送する（ｘ７）。
【０１８６】
図２４の（Ａ）の例によると、集約されるデータはない。したがって、図２４の（Ａ）の例におけるパケット数は７個である。また、ノード「６」を送信元とするデータ、及び、ノード「１２」を送信元とするデータは、４秒経過後にノード「１５」に到達する。また、ノード「８」を送信元とするデータは、６秒経過後に送信先ノード「１５」に到達する。
【０１８７】
（定められた保持時間）
図２４の（Ｂ）の例によると、各ノードは、図１５に示した保持時間保管テーブル１３２に基づいて、データを転送する。したがって、ノード「６」は、データを受信してから０．５秒経過後の時刻「１秒」に、ノード「１４」にデータを転送する（ｙ１）。
【０１８８】
また、ノード「８」は、データを受信してから１秒経過後の時刻「５秒」に、ノード「１２」にデータを転送する（ｙ２）。そして、ノード「１２」は、データを受信してから２秒間経過後の時刻「５秒」に、当該データとノード「８」から転送されたデータとをまとめて、ノード「１４」に転送する（ｙ３）。
【０１８９】
そして、ノード「１４」は、ノード「６」からデータを受信した後、４秒経過後の時刻「５秒」に、ノード「６」から転送されたデータと、ノード「１２」から転送された２つのデータとをまとめて、ノード「１５」に転送する（ｙ４）。
【０１９０】
図２４の（Ｂ）の例によると、ノード「１２」からノード「１４」への転送時に、２つのデータが集約される。また、ノード「１４」からノード「１５」への転送時に、３つのデータが集約される。これにより、図２４の（Ｂ）の例におけるパケット数は、４個となる。図２４の（Ａ）の例におけるパケット数は７個であるため、本実施の形態のデータ転送処理に基づくことにより、データの集約率が向上する。
【０１９１】
図２４の（Ｂ）の例によると、ノード「６」を送信元とするデータは、４．５秒経過後に送信先ノード「１５」に到達する。また、ノード「１２」を送信元とするデータは２秒経過後に、ノード「８」を送信元とするデータは１秒経過後に、送信先ノード「１５」に到達する。このように、ノード「６」を送信元とするデータの送信時間は、図２４の（Ａ）の例に対して長くなるものの、ノード「８」及びノード「１２」を送信元とするデータの送信時間は、大幅に短縮される。
【０１９２】
ノード「１４」からノード「１５」への転送時の保持時間は長いものの、ノード「１４」は、保持時間の途中に受信したデータをまとめて転送できる。また、距離が長い転送の保持時間は短い。したがって、一部のデータの送信時間を大幅に短縮可能になる。このように、本実施の形態のゲートウェイ１０は、転送先に応じて保持時間を定めることにより、データの集約効率を向上するとともに、送信時間の長期化を抑制可能になる。
【０１９３】
［別の実施の形態］
なお、各転送先の保持時間（待ち時間）は、図１２に示した保持時間保管テーブル１３２の例に限定されるものではない。保持時間は、例えば、登録処理や検索処理の頻度等に基づいて、決定される。また、図１２に示した保持時間保管テーブル１３２によると、全ての転送先の保持時間が異なっているが、一部の転送先の保持時間が異なっていればよい。
【０１９４】
以上の実施の形態をまとめると、次の付記のとおりである。
【０１９５】
（付記１）
取得したデータを転送する先の転送先ノードを決定し、
前記取得したデータを前記転送先ノード別に蓄積し、
前記転送先ノードごとに定められた待ち時間中に蓄積した複数のデータをまとめて前記転送先ノードに転送する、
処理をコンピュータに実行させることを特徴とするデータ転送プログラム。
【０１９６】
（付記２）
付記１において、
前記待ち時間は、各転送先ノードに単位時間当たりに転送されるデータの数に応じて決定される、
データ転送プログラム。
【０１９７】
（付記３）
付記２において、
第１の転送先ノードの待ち時間は、前記第１の転送先ノードより前記転送されるデータの数が少ない第２の転送先ノードの待ち時間より長い、
データ転送プログラム。
【０１９８】
（付記４）
付記１において、
前記取得したデータは、複数のノードとノード間経路とを有するノード網において、当該データの送信元ノードから送信先ノードに前記転送先ノードを経由して送信されるデータである、
データ転送プログラム。
【０１９９】
（付記５）
付記４において、
前記複数のノードには、前記複数のノードを仮想の円周上に一列に配置した場合の順番情報が割り当てられ、
前記決定は、前記複数のノードの一部の候補ノードのうち、前記円周上の一方の方向における、前記候補ノードから前記送信先ノードまでの前記順番情報の差分が小さい候補ノードを前記転送先ノードとして決定し、
前記待ち時間は、前記円周上の一方の方向における、転送する元の転送元ノードから前記転送先ノードまでの前記順番情報の差分に基づいて決定される、
データ転送プログラム。
【０２００】
（付記６）
付記５において、
前記転送元ノードから転送先ノードまでの差分が第１の値である転送先ノードの待ち時間は、当該差分が前記第１の値より大きい第２の値である転送先ノードの待ち時間より長い、
データ転送プログラム。
【０２０１】
（付記７）
取得したデータを転送する先の転送先ノードを決定し、
前記取得したデータを前記転送先ノード別に蓄積し、
前記転送先ノードごとに定められた待ち時間中に蓄積した複数のデータをまとめて前記転送先ノードに転送する、
データ転送方法。
【０２０２】
（付記８）
付記７において、
前記取得したデータは、複数のノードとノード間経路とを有するノード網において、当該データの送信元ノードから送信先ノードに前記転送先ノードを経由して送信されるデータである、
データ転送方法。
【０２０３】
（付記９）
付記８において、
前記複数のノードには、前記複数のノードを仮想の円周上に一列に配置した場合の順番情報が割り当てられ、
前記決定は、前記複数のノードの一部の候補ノードのうち、前記円周上の一方の方向における、前記候補ノードから前記送信先ノードまでの前記順番情報の差分が小さい候補ノードを前記転送先ノードとして決定し、
前記待ち時間は、前記円周上の一方の方向における、転送する元の転送元ノードから前記転送先ノードまでの前記順番情報の差分に基づいて決定される、
データ転送方法。
【０２０４】
（付記１０）
付記９において、
前記転送元ノードから転送先ノードまでの差分が第１の値である転送先ノードの待ち時間は、当該差分が前記第１の値より大きい第２の値である転送先ノードの待ち時間より長い、
データ転送方法。
【０２０５】
（付記１１）
取得したデータを転送する先の転送先ノードを決定し、前記取得したデータを前記転送先ノード別に蓄積し、前記転送先ノードごとに定められた待ち時間中に蓄積した複数のデータをまとめて前記転送先ノードに転送する処理部と、
前記データを記憶する記憶部と、を有する、
データ転送装置。
【０２０６】
（付記１２）
付記１１において、
前記取得したデータは、複数のノードとノード間経路とを有するノード網において、当該データの送信元ノードから送信先ノードに前記転送先ノードを経由して送信されるデータである、
データ転送装置。
【０２０７】
（付記１３）
付記１２において、
前記複数のノードには、前記複数のノードを仮想の円周上に一列に配置した場合の順番情報が割り当てられ、
前記処理部は、前記複数のノードの一部の候補ノードのうち、前記円周上の一方の方向における、前記候補ノードから前記送信先ノードまでの前記順番情報の差分が小さい候補ノードを前記転送先ノードとして決定し、
前記待ち時間は、前記円周上の一方の方向における、転送する元の転送元ノードから前記転送先ノードまでの前記順番情報の差分に基づいて決定される、
データ転送装置。
【０２０８】
（付記１４）
付記１３において、
前記転送元ノードから転送先ノードまでの差分が第１の値である転送先ノードの待ち時間は、当該差分が前記第１の値より大きい第２の値である転送先ノードの待ち時間より長い、
データ転送装置。 
【符号の説明】
【０２０９】
１００：情報処理システム、１０−０〜１０−１５：ゲートウェイ、２０：センタサーバ、３０ａ〜３０ｅ：ビーコン、１０１：ＣＰＵ、１０２：メモリ、１０３：無線通信部、１０４：通信インタフェース部、１０５：アンテナ、１２０：データ転送プログラム
【図１】
2017163440.tif 000003
【図２】
2017163440.tif 000004
【図３】
2017163440.tif 000005
【図４】
2017163440.tif 000006
【図５】
2017163440.tif 000007
【図６】
2017163440.tif 000008
【図７】
2017163440.tif 000009
【図８】
2017163440.tif 000010
【図９】
2017163440.tif 000011
【図１０】
2017163440.tif 000012
【図１１】
2017163440.tif 000013
【図１２】
2017163440.tif 000014
【図１３】
2017163440.tif 000015
【図１４】
2017163440.tif 000016
【図１５】
2017163440.tif 000017
【図１６】
2017163440.tif 000018
【図１７】
2017163440.tif 000019
【図１８】
2017163440.tif 000020
【図１９】
2017163440.tif 000021
【図２０】
2017163440.tif 000022
【図２１】
2017163440.tif 000023
【図２２】
2017163440.tif 000024
【図２３】
2017163440.tif 000025
【図２４】
2017163440.tif 000026