(57)【要約】【課題】第１に複数のセンサが計測したデータを随時格納した場合であっても、一定の時間間隔毎のデータからＢＦを作成し、このＢＦを一定の時間間隔で上位層の中間ノードに格納することから、偽陽性を抑制しつつ、確実に対象のデバイスを探索可能なデバイス探索システムを提供すること。【解決手段】末端デバイス１０は、センサ４０から取得した複数のデータを、ある一定の時間間隔で分割し、当該分割したデータ毎に作成したＢＦ（ブルームフィルタ）をＢＦ格納部１３に格納した上で、当該格納したＢＦ毎に自身のデバイスＩＤを付加したＢＦブロックＢ１を中間ノード２０へ送信する。中間ノード２０は、ＢＦ格納部１３から一定間隔で受信したＢＦブロックＢ１を、当該受信したタイミングで作成した複数のルーティングテーブルＲＴにそれぞれ格納する。【選択図】図４
2019086883.tif 000002
【特許請求の範囲】
【請求項１】
データを収集し保存する複数のデバイスと、当該複数のデバイスの上位層に位置し前記複数のデバイスから前記データを集約する中央サーバと、を階層的に備えた、前記デバイスを探索するためのデバイス探索システムにおいて、
前記複数のデバイスの各々は、
前記データを一定の時間ウィンドウ毎に収集し保存するデータ格納部と、
前記データ格納部に格納されたデータに基づき、単一のビット列を作成するビット列作成部と、
前記ビット列作成部にて作成された単一のビット列をフィルタ情報として保存し、当該フィルタ情報と前記デバイスを示す識別情報とを含むブロック情報を前記時間ウィンドウ毎に生成して前記上位層に送信するフィルタ情報送信部と、
を備え、
前記中央サーバは、
前記デバイスから送信されたブロック情報に含まれるフィルタ情報とこのフィルタ情報の送信元を示す識別情報との組み合わせを、ルーティングテーブルとして前記時間ウィンドウ毎に保存するルーティングテーブル管理部と、
デバイス探索要求を受け取った場合に、当該デバイス探索要求に含まれるフィルタ情報に基づいて前記ルーティングテーブルから対応する識別情報を検索し、当該検索された識別情報をもとに探索対象となる前記デバイスを探索する処理を実行する探索処理部と、
を備える、デバイス探索システム。
【請求項２】
前記複数のデバイスと前記中央サーバとの中間の階層に配置された中間ノード装置を、さらに備え、
前記中間ノード装置は、
前記複数のデバイスから送信された各ブロック情報に含まれるフィルタ情報とこのフィルタ情報の送信元を示す識別情報とを含むブロック情報を、中間ルーティングテーブルとして前記時間ウィンドウ毎に保存する中間ルーティングテーブル管理部と、
前記中間ルーティングテーブル管理部に前記識別情報毎に保存された前記フィルタ情報に基づき、新たな単一のビット列を中間フィルタ情報として作成する中間フィルタ情報作成部と、
前記中間フィルタ情報作成部にて作成された中間フィルタ情報と前記中間ノード装置を示す識別情報とを含む中間ブロック情報を前記時間ウィンドウ毎に生成して、上位層に送信する中間フィルタ情報送信部と、
前記中央サーバから、前記デバイスを探索する処理の実行に伴い、デバイス探索要求を受信した場合に、当該デバイス探索要求に含まれる中間フィルタ情報に基づいて前記中間ルーティングテーブルから対応する識別情報を検索し、当該検索された識別情報をもとに探索対象となる前記デバイスを探索する処理を実行する中間探索処理部と、
を備える請求項１に記載のデバイス探索システム。
【請求項３】
前記中央サーバが前記ルーティングテーブルを複数保持し、前記中間ノード装置が中間ルーティングテーブルを複数保持する場合には、一定期間が経過すると、複数存在する前記ルーティングテーブルおよび中間ルーティングテーブル中で時間的に一番古いテーブルを削除し、
前記中央サーバが単一の前記前記ルーティングテーブルを保持し、前記中間ノード装置が単一の中間ルーティングテーブルを保持する場合には、当該前記ルーティングテーブルおよび中間ルーティングテーブルのそれぞれに、当該前記ルーティングテーブルおよび中間ルーティングテーブルよりも生成時刻の新しいテーブルを上書きする、
請求項２に記載のデバイス探索システム。
【請求項４】
前記中間ノード装置は、
前記中間フィルタ情報送信部が上位層に送信した中間ブロック情報を保存する中間フィルタ情報保存部を、さらに備え、
前記中間フィルタ情報作成部は、前記中間ルーティングテーブル管理部に保存された中間ルーティングテーブルが更新された場合に、当該更新された中間ルーティングテーブルのフィルタ情報を、前記中間フィルタ情報保存部に保存されている中間フィルタ情報と比較し、前記更新された中間ルーティングテーブルのフィルタ情報が、前記中間フィルタ情報保存部に保存されていない場合に前記新たな中間フィルタ情報の作成を行い、保存されている場合には前記新たな中間フィルタ情報の作成を行わない、
請求項２または３に記載のデバイス探索システム。
【請求項５】
データを収集し保存する複数のデバイスと、当該複数のデバイスの上位層に位置し前記複数のデバイスから前記データを集約する中央サーバと、を階層的に備えたシステムが実行するデバイス探索システムであって、
前記複数のデバイスの各々は、
前記データを一定の時間ウィンドウ毎に収集し保存する過程と、
前記保存されたデータに基づき、単一のビット列を作成する過程と、
前記作成された単一のビット列をフィルタ情報として保存し、当該フィルタ情報と前記デバイスを示す識別情報とを含むブロック情報を前記時間ウィンドウ毎に生成して前記上位層に送信する過程と、
を備え、
前記中央サーバは、
前記デバイスから送信されたブロック情報に含まれるフィルタ情報とこのフィルタ情報の送信元を示す識別情報との組み合わせを、ルーティングテーブルとして前記時間ウィンドウ毎に保存する過程と、
デバイス探索要求を受け取った場合に、当該デバイス探索要求に含まれるフィルタ情報に基づいて前記ルーティングテーブルから対応する識別情報を検索し、当該検索された識別情報をもとに探索対象となる前記デバイスを探索する処理を実行する過程と
を備える、デバイス探索方法。
【請求項６】
前記複数のデバイスと前記中央サーバとの中間の階層に配置された中間ノード装置をさらに備えるシステムが実行するデバイス探索方法であって、
前記中間ノード装置は、
前記複数のデバイスから送信された各ブロック情報に含まれるフィルタ情報とこのフィルタ情報の送信元を示す識別情報とを含むブロック情報を、中間ルーティングテーブルとして前記時間ウィンドウ毎に保存する過程と、
前記識別情報毎に保存された前記フィルタ情報に基づき、新たな単一のビット列を中間フィルタ情報として作成する過程と、
前記作成された中間フィルタ情報と、前記中間ノード装置を示す識別情報とを含む中間ブロック情報を前記時間ウィンドウ毎に生成して、上位層に送信する過程と、
前記中央サーバから、前記デバイスを探索する処理の実行に伴い、デバイス探索要求を受信した場合に、当該デバイス探索要求に含まれる中間フィルタ情報に基づいて前記中間ルーティングテーブルから対応する識別情報を検索し、当該検索された識別情報をもとに探索対象となる前記デバイスを探索する処理を実行する過程と、
を備える、請求項５に記載のデバイス探索方法。
請
【請求項７】
前記中央サーバが前記ルーティングテーブルを複数保持し、前記中間ノード装置が中間ルーティングテーブルを複数保持する場合には、一定期間が経過すると、複数存在する前記ルーティングテーブルおよび中間ルーティングテーブル中で時間的に一番古いテーブルを削除し、
前記中央サーバが単一の前記前記ルーティングテーブルを保持し、前記中間ノード装置が単一の中間ルーティングテーブルを保持する場合には、当該前記ルーティングテーブルおよび中間ルーティングテーブルのそれぞれに、当該前記ルーティングテーブルおよび中間ルーティングテーブルよりも生成時刻の新しいテーブルを上書きする、請求項６に記載のデバイス探索方法。
【請求項８】
前記中間ノード装置は、
前記上位層に送信した中間ブロック情報を中間フィルタ情報保存部に保存する過程と、さらに備え、
前記中間フィルタ情報を作成する過程は、前記時間ウィンドウ毎に保存された中間ルーティングテーブルが更新された場合に、当該更新された中間ルーティングテーブルのフィルタ情報を、前記中間フィルタ情報保存部に保存されている中間フィルタ情報と比較し、前記更新された中間ルーティングテーブルのフィルタ情報が、前記中間フィルタ情報保存部に保存されていない場合に前記新たな中間フィルタ情報の作成を行い、保存されている場合には前記新たな中間フィルタ情報の作成を行わない、
請求項７に記載のデバイス探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩｏＴサービスにおけるデバイス探索システム及びデバイス探索方法に関する。
【背景技術】
【０００２】
近年、種々のデータを取得可能なセンサが付随されたデバイス（以下、末端デバイスと呼ぶ）をネットワークに接続して構成されるシステムにおいて、前記末端デバイスが生成するデータを活用したＩｏＴ（Ｉｎｔｅｒｎｅｔ  Ｏｆ  Ｔｈｉｎｇｓ）が注目されている。
【０００３】
ＩｏＴの分野では、前記センサが接続された下位層の複数の末端デバイスと、当該末端デバイスがセンサから取得したデータを予め集約する上位層の中央サーバとが階層的にネットワークを介して接続されている。
【０００４】
また、このＩｏＴサービスでは広範囲で大量のデータを取扱うため、末端デバイスと中央サーバとの間に何層かの中間ノードを介する場合がある。すなわち、中間ノードの配下には、複数の中間ノードが設けられていることが多い。
【０００５】
そして、複数の末端デバイスから取得されたデータを中間ノードに集約する際に、集約したデータを１つに纏めて、一連のビット列を作成する機能（以下、これをブルームフィルタ（Ｂｌｏｏｍ  Ｆｉｌｔｅｒ）と呼び、以下このブルームフィルタを用いて作成された単一のビット列を「ＢＦ」と呼ぶ）が用いられる。このＢＦを作成する機能は、通信時のデータ量の削減と粒度の細かさを両立できる、空間効率に優れた確率的データ構造に関する技術である。
【０００６】
ところで、ＩｏＴシステムでは、当該ＩｏＴシステム内で生じた不具合などを究明するため、ユーザが指定した探索条件に基づいて中央サーバに集約されたデータから探索対象となる末端デバイスを特定する場合がある。このため、複雑な階層構造のＩｏＴシステムにおいては、各中間ノードの配下に位置する末端デバイスに格納されているデータをＢＦに集約して上位階層に予め送信しておくことにより、探索時の効率を改善する技術が提案されている（例えば、非特許文献１参照。）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】堺竜太郎、唐笠良太、佐藤文明、“Ｂ木構造に基づくＢｌｏｏｍフィルタ検索システムの実装と評価”、「マルチメディア、分散、協調とモバイル（ＤＩＣＯＭＯ２０１１）シンポジウム」、平成２３年７月、p771-p777.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、一般的なＩｏＴシステムは、大量な末端デバイスから成立し、且つ当該末端デバイスが複数の中間ノード間を頻繁に移動するといった特性を有するため、末端デバイスの探索自体が難しいといった問題点がある。また、非特許文献１に記載された技術は、一部の中間ノードに格納されるＢＦのみを用いて検索を効率的に行うものであり、また末端デバイスが前記中間ノード間を移動する場合が考慮されていない。
【０００９】
仮に、前記非特許文献１に記載された技術において、末端デバイスの移動を考慮してＢＦを作成すると、末端デバイスからの取得データを随時集約し、当該ＢＦを上位層のノードに追加し続けることになる。
【００１０】
これは、ＢＦを構成する数字（２進数からなるビット列）が全て“１”になり偽陽性が大幅に上昇してしまうといった問題が生じ、探索回数の増大を引き起こす。なお、偽陽性とは、“０”と“１”とから構成されるビット列のうち“１”の比率が多くなってしまうために、本来送信すべきセンサが取得したデータとは異なるデータを誤って認識してしまうことをいう。
【００１１】
また、各末端デバイスが移動する度に、この移動した末端デバイスから中央サーバまでのＢＦの再計算を行うことになり、階層構造の更新を頻繁に行うことになる。これは、特に中央サーバ付近での通信回数が増大し、前記不具合の究明のために末端デバイスを探索するといった通常の運用以外に多大なコストが掛かるだけでなく、システムへの負荷が増大するといった問題を生じる。
【００１２】
本発明は、前記課題に鑑みてなされたものであり、第１に複数のデバイスが取得したデータを随時集約した場合であっても、一定の時間間隔毎のデータからＢＦを作成し、このＢＦを一定の時間間隔で上位層の中間ノードに格納することから、偽陽性を抑制しつつ、確実に対象のデバイスを探索可能なデバイス探索システム及びデバイス探索方法を提供することにある。
【００１３】
第２に末端デバイスが移動し、当該末端デバイスの位置が変化したことで、新たな中間ノード下に配置される場合でも、中間ノードは、条件に応じて末端デバイスが取得したデータを上位層に送信しないことから、システム全体にて授受するデータ通信量を抑えつつ、確実に対象のデバイスを探索可能なデバイス探索システム及びデバイス探索方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明に係るデバイス探索システムの一態様は、データを収集し保存する複数のデバイスと、当該複数のデバイスの上位層に位置し前記複数のデバイスから前記データを集約する中央サーバと、を階層的に備えた、前記デバイスを探索するためのデバイス探索システムにおいて、前記複数のデバイスの各々は、前記データを一定の時間ウィンドウ毎に収集し保存するデータ格納部と、前記データ格納部に格納されたデータに基づき、単一のビット列を作成するビット列作成部と、前記ビット列作成部にて作成された単一のビット列をフィルタ情報として保存し、当該フィルタ情報と前記デバイスを示す識別情報とを含むブロック情報を前記時間ウィンドウ毎に生成して前記上位層に送信するフィルタ情報送信部と、を備え、前記中央サーバは、前記デバイスから送信されたブロック情報に含まれるフィルタ情報とこのフィルタ情報の送信元を示す識別情報との組み合わせを、ルーティングテーブルとして前記時間ウィンドウ毎に保存するルーティングテーブル管理部と、デバイス探索要求を受け取った場合に、当該デバイス探索要求に含まれるフィルタ情報に基づいて前記ルーティングテーブルから対応する識別情報を検索し、当該検索された識別情報をもとに探索対象となる前記デバイスを探索する処理を実行する探索処理部と、を備える。
【発明の効果】
【００１５】
本発明に係るデバイス探索システムの一態様によれば、第１に複数の末端デバイスがデータを随時集約した場合であっても、一定の時間間隔毎のデータからＢＦを作成し、このＢＦを一定の時間間隔で上位層の中間ノードに格納することから、偽陽性を抑制可能としつつ、確実に対象の末端デバイスを探索可能となる。
【００１６】
第２に、末端デバイスが移動し、当該末端デバイスの位置が変化したことで、新たな中間ノード下に配置された場合でも、中間ノードは、条件に応じて末端デバイスが取得したデータを上位層に送信しないことから、システム全体にて授受するデータ通信量を抑えつつ、確実に対象のデバイスを探索可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係るＩｏＴサービスにおけるデバイス探索システムの階層構造を示すブロック図。
【図２】前記デバイス探索システムを構成する末端デバイス１０および中間ノード２０にてＢＦブロックＢ１（Ｂ２）を作成するための構成を示した機能ブロック図。
【図３】前記デバイス探索システムにおいて階層的に配置される末端デバイス１０、中間ノード２０、及び中央サーバ３０の構成を示す機能ブロック図。
【図４】前記デバイス探索システムの第１の動作例に係るデータ処理工程およびデバイス探索処理工程を示す図。
【図５】前記第１の動作例におけるデータ処理工程を示すシーケンス図。
【図６】前記デバイス探索システムにおける前記第２の動作例に係るデバイス探索処理工程を示すシーケンス図。
【図７】前記デバイス探索システムにおける第３の動作例に係るデータ処理工程を示す図。
【図８】前記第３の動作例におけるデータ処理工程を示すシーケンス図。
【図９】前記デバイス探索システムにおける第４の動作例であって、中間ノード２０ａが中間ノード２０ｃ、２０ｄを管轄する場合のデータ処理工程を示す概略図。
【図１０】前記デバイス探索システムにおける第５の動作例であって、ルーティングテーブル格納部での更新処理工程を示したシーケンス図。
【図１１】本発明の第２の実施形態に係るデバイス探索システムにおいて末端デバイス１０ｄが移動し、別の中間ノード２０ｄが管轄する領域に入った場合のデータ処理工程を示した概略図。
【図１２】前記デバイス探索システムにおける各装置間の機能ブロックと、このデバイス探索システムにおける第１の動作例に係る各装置間のデータ処理工程を示す図。
【図１３】前記第１の動作例でのデータ処理工程を示すシーケンス図。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態に係るＩｏＴサービスにおけるデバイス探索システム及びデバイス探索方法について、図面を参照して説明する。
【００１９】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るＩｏＴサービスにおけるデバイス探索システムの階層構造を示すブロック図である。  
デバイス探索システムは、その構成上、末端デバイス１０が１台以上、中間ノード２０は０台以上、中央サーバ３０は１台のみで成立するが、ここでは一例として、下位層から上位層へ向かって末端デバイス１０（１０ａ〜１０ｆ）、中間ノード２０（２０ａ〜２０ｅ）、および中央サーバ３０が配置された構成をとる。
【００２０】
すなわち、複数の末端デバイス１０（１０ａ〜１０ｆ）を、当該末端デバイス１０（１０ａ〜１０ｆ）の上位層に位置する中間ノード２０（２０ｃ〜２０ｅ）が管轄し、当該中間ノード２０（２０ｃ〜２０ｅ）を、当該中間ノード２０（２０ｃ〜２０ｅ）の上層に位置する中間ノード２０（２０ａ、２０ｂ）が管轄し、そして当該中間ノード２０（２０ａ、２０ｂ）を中央サーバ３０が管轄する構成をとる。ここで、末端デバイスは前記複数の中間ノード２０間を移動するものとする。
【００２１】
なお、中間ノード２０が０台、すなわち中間ノード２０ａ〜中間ノード２０ｅが設けられていない場合は、デバイス探索システムは、末端デバイス１０が中央サーバ３０と直接接続される構成となる。
【００２２】
以下では、末端デバイス１０ａおよび末端デバイス１０ｂ、中間ノード２０ｄおよび中間ノード２０ａ、ならびに中央サーバ３０に着目して説明する。なお、末端デバイス１０（１０ａ〜１０ｆ）、中間ノード２０（２０ａ〜２０ｅ）を区別しない場合には、単に末端デバイス１０、中間ノード２０と称する。
【００２３】
末端デバイス１０ａには、例えば加速度を計測するセンサ４０ａ、および温度を計測するセンサ４０ｂが接続される。他の末端デバイス１０ｃ〜１０ｆに付随するセンサついても同様の機能を有するものとする。
【００２４】
末端デバイス１０ａは、
（１）センサ４０ａおよびセンサ４０ｂが計測したデータを取得する機能
（２）当該取得したデータを時刻ｔ毎に集約してＢＦ（単一のビット列）を作成する機能
（３）当該ＢＦに末端デバイス１０ａ自身のＩＤ（ここでは、ＩＤ＝デバイス１０ａとする）を付加したＢＦブロックＢ１（ＢＦ＋ＩＤ）を中間ノード２０ｄに送信する機能
（４）当該送信したＢＦを一定期間記憶し、別の中間ノード２０への移動後に当該記憶してあるＢＦにデバイスＩＤ（以下、単にＩＤと呼ぶことがある）を付加した前記ＢＦブロックＢ１を、別の中間ノード２０に再送信する機能
（５）中央サーバ３０、中間ノード２０を介してユーザからデバイス探索指示がなされると、対象データが自身に格納されているか否か検索し、その結果をユーザに返す機能
を有する。
【００２５】
中間ノード２０ｄは、
（１）管轄する末端デバイス１０ａ、１０ｂからのＢＦブロックＢ１を受信し、当該受信したＢＦブロックＢ１を格納する機能
（２）新たに管轄することになった、例えば末端デバイス１０ｄが再送信したＢＦブロックＢ１を受信し、当該受信したＢＦブロックＢ１を追加する機能
（３）格納された末端デバイス１０ａおよび１０ｂの各ＢＦ（末端デバイス１０ｄからのＢＦブロックＢ１を追加した場合には、このＢＦも含む）について、例えばＯＲ等の論理和を用いて更にＢＦを作成する機能
（４）前記更に作成したＢＦに中間ノード２０ｄ自身のＩＤを付加したＢＦブロックＢ２ａ（ＢＦ＋ＩＤ）を上位の中間ノード２０ａに送信する機能
（５）一定期間経過後に自身に格納してある一番古い情報（データなど）を削除する機能
（６）中央サーバ３０を介してユーザからデバイス探索指示がなされると、対象データが自身に格納されているか否か検索し、格納されていれば、前記対象データが格納された末端デバイス１０（１０ａ、１０ｂ）へ探索指示を出力する機能
を有する。
【００２６】
なお、図１のように、中間ノード２０が２階層となっており、複数の中間ノード２０（例えば２０ｃ、２０ｄ）を中間ノード２０ａが管轄する場合、当該中間ノード２０ａは、
（１）下位層の中間ノード２０（２０ｃ、２０ｄ）が送信するＢＦブロックＢ２ａを受信する機能
（２）受信したＢＦブロックＢ２ａを格納する機能
（３）中間ノード２０（２０ｃ、２０ｄ）の各々が送信したＢＦについて、例えばＯＲ等の論理和を用いて更にＢＦ（単一のビット列）を作成する機能
（４）作成したＢＦに中間ノード２０ａ自身のＩＤを付加したＢＦブロックＢ２ｂ（ＢＦ＋ＩＤ）を上位の中央サーバ３０に送信する機能
（５）一定期間経過後に自身に格納してある一番古い情報（データなど）を削除する機能の他
（６）中央サーバ３０を介してユーザからデバイス探索指示がなされると、対象データが自身に格納されているか否か検索し、格納されていれば、当該対象データが格納された中間ノード２０（２０ｃ、２０ｄ）へ探索指示を出力する機能
を有する。
【００２７】
中央サーバ３０は、
（１）下位層の中間ノード２０ａが送信するＢＦブロックＢ２ｂを受信する機能
（２）受信したＢＦブロックＢ２ｂを格納する機能、
（３）ユーザからデバイス探索指示がなされると、対象データが自身に格納されているか否か検索し、格納されていれば、前記対象データを含む中間ノード２０（２０ａ、２０ｂ）または中間ノード２０が本システムに含まれていない場合には、末端デバイス１０（１０ａ〜１０ｆ）へ直接探索指示を出力する機能
を有する。
【００２８】
図２は、前記末端デバイス１０、および中間ノード２０にてＢＦブロックＢ（Ｂ１、Ｂ２ａ、Ｂ２ｂ）を作成するための構成を示した機能ブロック図である。以下では、一例として、ＢＦブロックＢ１に着目して説明する。
【００２９】
なお、ＢＦブロックＢ１、およびＢＦブロックＢ２（Ｂ２ａ、Ｂ２ｂ）を区別しない場合には、単にＢＦブロックＢと呼ぶ。
【００３０】
ＢＦブロックＢ１は、複数のデータから作成された単一のビット列を格納する箱、すなわちブルームフィルタと、末端デバイス１０のデバイスＩＤと、を組み合わせて構成される。
【００３１】
ここで、ブルームフィルタを用いた複数のデータの集約方法について説明する。ブルームフィルタでは、取得された複数のデータに対して複数のアルゴリズム（以下、ハッシュ関数と呼ぶ）を適用する。ここで、センサ４０ａが計測した加速度として、例えば９．８［ｍ／ｔ２］は、前記ハッシュ関数を用いて“１０１００”と変換され、センサ４０ｂが計測した温度として、例えば２５．４［℃］は前記ハッシュ関数を用いて“００１０１”と変換されたとする。
【００３２】
この場合、前記ハッシュ関数を用いて両者のデータ（“１０１００”と“００１０１”）を集約すると、例えば“１０１０１”と新たな単一のビット列に変換することができ、通信データ量の削減を実現できる。以下、この単一のビット列への変換を「フィルタ化」と呼び、例えば末端デバイス１０ａ（末端ＢＦ作成部１２）が作成したＢＦを「Ｆｉｌｔｅｒ１０ａ」と記載することがある。
【００３３】
なお、末端デバイス１０ｂ〜末端デバイス１０ｆは、前記末端デバイス１０ａと同一の機能を有することから、説明を省略する。
【００３４】
図３は、前記デバイス探索システムにおいて階層的に配置される末端デバイス１０、中間ノード２０、及び中央サーバ３０の構成を示す機能ブロック図である。ここでは、中間ノード２０を１層、すなわち全階層数を３階層とした場合を例にとる。
【００３５】
末端デバイス１０は、センサデータ格納部１１、末端ＢＦ作成部１２、ＢＦ格納部１３、および探索処理部１４を備える。
【００３６】
センサデータ格納部１１は、センサ４０が計測したデータを取得し、当該取得したデータを一定の時間毎に纏めて格納する。
【００３７】
末端ＢＦ作成部１２は、当該センサデータ格納部１１に一定の時間毎に纏めて格納されたデータ毎に、当該データに基づいてＢＦを作成する。
【００３８】
ＢＦ格納部１３は、前記末端ＢＦ作成部１２にて作成されたＢＦを格納し、当該格納したＢＦに自身のＩＤを付加した前記ＢＦブロックＢ１を中間ノード２０に送信し、必要に応じてまた再送信する。
【００３９】
探索処理部１４は、ユーザからの探索処理による対象のデータを自身に格納されているか否かについて前記センサデータ格納部１１を検索し、その検索結果をユーザに返す。
【００４０】
中間ノード２０は、ルーティングテーブル格納部２１、中間ＢＦ作成部２２、中間ＢＦ送信部２３および探索処理部２４を備える。
【００４１】
ルーティングテーブル格納部２１は、管轄する末端デバイス１０が送信したＢＦブロックＢ１を、一定のタイムウィンドウ（ｔ１、ｔ２、ｔ３、…、ｔｎ）で生成されるルーティングテーブルＲＴ毎に格納（追加・更新）する。ここで、ルーティングテーブルＲＴには、ＢＦとこれに対応するデバイスＩＤが格納されるが、例えば２階層以降の中間ノード２０の場合には、下位層の中間ノード２０を示すノードＩＤとなる。
【００４２】
中間ＢＦ作成部２２は、ルーティングテーブルＲＴに格納される複数の末端デバイス１０が送信したＢＦ同士で論理演算（例えばＯＲ等の論理和）を行い、新たなＢＦ（単一のビット列）を更に作成する。
【００４３】
中間ＢＦ送信部２３は、作成したＢＦに中間ノード２０自身のＩＤを付加したＢＦブロックＢ２（ＢＦ＋ＩＤ）を上位層の中央サーバ３０に送信する。
【００４４】
探索処理部２４は、ユーザからの探索処理による対象のデータを自身が有するか否かについて前記ルーティングテーブル格納部２１を検索し、格納されていれば、前記対象データが格納された末端デバイス１０へ探索指示を出力する。
【００４５】
中央サーバ３０は、ルーティングテーブル格納部３１、および探索処理部３２を備える。
【００４６】
ルーティングテーブル格納部３１は、管轄する中間ノード２０が送信したＢＦブロックＢ２を、一定のタイムウィンドウ（ｔ１、ｔ２、ｔ３、…、ｔｎ）で生成されるルーティングテーブルＲＴに格納する。
【００４７】
探索処理部３２は、ユーザからの探索処理による対象のデータを自身が有するか否かについて前記ルーティングテーブル格納部３１を検索し、格納されていれば、前記対象データが格納された中間ノード２０へ探索指示を出力する。
【００４８】
このように構成されたデバイス探索システムに係る末端デバイス１０、中間ノード２０、および中央サーバ３０のそれぞれは、各装置の図示せぬ各制御部（ＣＰＵ）が装置制御プログラムに記述された命令に従い各機能部の動作を制御し、ソフトウェアとハードウェアとが協働して動作することにより、以下で述べるような処理工程を実現する。
【００４９】
（第１の動作例：データ処理工程）
図４は、前記デバイス探索システムにおける各装置間の第１の動作例であって、データ処理工程およびデバイス探索処理工程を示す図である。
【００５０】
図５は、前記第１の動作例での各装置間のデータ処理工程を示すシーケンス図である。
【００５１】
まず、図４、および図５に示すように、センサ４０ａ、４０ｂがデータ（加速度、温度）を計測すると（Ｓ０）、末端デバイス１０ａでは、当該計測されたデータを取得し、当該データを一定の時間毎に纏めてセンサデータ格納部１１に格納する（Ｓ１−１）。
【００５２】
すると末端ＢＦ作成部１２は、当該センサデータ格納部１１に前記一定の時間毎に纏めて格納されるデータ単位でＢＦ（例えば、単一のビット列“１０１０１”）を作成する（Ｓ１−２）。具体的には、時間経過と共にデータが随時格納されることから、一定の時刻ｔ毎（例えば、ｔ０〜ｔ１、ｔ１〜ｔ２など）に分割して格納されたデータに基づいて前記ＢＦを作成する。
【００５３】
このような構成を採用することで、ＢＦを構成するビット列において、データ増加に伴う前記ビット列の“１”の増加を抑制できることから、たとえ当該中間ノード２０ｄが別の中間ノード２０の管轄する領域から移動してきて当該中間ノード２０ｄで管理するデータ量が増加した場合であったとしても偽陽性の著しい増加を抑えられ、後述する探索効率を高く維持することができる。
【００５４】
その後、ＢＦ格納部１３にて、前記作成されたＢＦを格納し、この格納したＢＦに自身のＩＤ（ここでは、ＩＤ＝デバイス１０ａ）を付加して作成したＢＦブロックＢ１を、時刻ｔ（ｔ１、ｔ２、ｔ３、…、ｔｎ）毎に中間ノード２０ｄに送信する（Ｓ１−４）。
【００５５】
すると、ルーティングテーブル格納部２１は、受信した末端デバイス１０ａのＢＦブロックＢ１を、例えば所定のタイムウィンドウ（ｔ１、ｔ２、ｔ３、…、ｔｎ）で生成される複数のルーティングテーブルＲＴに格納する（Ｓ２−１）。
【００５６】
なお、ルーティングテーブル格納部２１には、配下に位置する末端デバイス１０ｂが同時刻ｔ１、ｔ２、ｔ３、…ｔｎに送信したＢＦブロックＢ１も併せてルーティングテーブルＲＴにそれぞれ格納するものとする。
【００５７】
このため、例えば時刻ｔ１、ｔ２、ｔ３、…、ｔｎ毎に「Ｆｉｌｔｅｒ１０ａ、デバイス１０ａ」と「Ｆｉｌｔｅｒ１０ｂ、デバイス１０ｂ」とがそれぞれ格納される（Ｓ２−１）。
【００５８】
なお、ここでは、ルーティングテーブル格納部２１が複数のルーティングテーブルＲＴを記憶する構成としたが、単一のルーティングテーブルＲＴを記憶する構成であってもよい。この場合、古い時刻ｔｏｌｄに生成されたルーティングテーブルＲＴに新しい時刻ｔｎｅｗに生成されたルーティングテーブルＲＴを上書きする構成を取る。
【００５９】
また、中間ＢＦ作成部２２は、ルーティングテーブル格納部２１から時間ｔ毎にルーティングテーブルＲＴ（ＲＴ１、ＲＴ２、ＲＴ３）を受信し（Ｓ２−２ａ）、各ルーティングテーブルＲＴ（ＲＴ１、ＲＴ２、ＲＴ３）内に記憶された「Ｆｉｌｔｅｒ１０ａ」と「Ｆｉｌｔｅｒ１０ｂ」とに基づいてフィルタ化、すなわちＢＦ（図中「Ｆｉｌｔｅｒ２０ｄ」と記載）を作成する（Ｓ２−２ｂ）。
【００６０】
中間ＢＦ送信部２３は、当該作成したＢＦを受信し（Ｓ２−３）、当該ＢＦに中間ノード２０ａ自身のＩＤを付加したＢＦブロックＢ２（Ｆｉｌｔｅｒ２０ｄ、ノード２０ｄ）を中央サーバ３０へ送信する（Ｓ２−４）。
【００６１】
すると、中央サーバ３０内に設けられる、ルーティングテーブル格納部３１は、受信した中間ノード２０ｄからのＢＦブロックＢ２を、例えば受信した時刻Ｔ０、Ｔ１、Ｔ２毎に生成される複数のルーティングテーブルＲＴ（ＲＴ１、ＲＴ２、ＲＴ３）に格納する（Ｓ３−１）。なお、ルーティングテーブル格納部３１には、配下に位置する中間ノード２０ｃが同時刻Ｔ０、Ｔ１、Ｔ２に送信したＢＦブロックＢ２も併せてルーティングテーブル格納部３１にそれぞれ格納するものとする。
【００６２】
以上のように、時間経過と共にＢＦ格納部１３、ルーティングテーブル格納部２１、３１の各々は計測されたデータをフィルタ化したＢＦを蓄積することとなるが、一定時間が経過すると、当該ＢＦ格納部１３では最も時刻ｔｏｌｄの古いＢＦが削除され（Ｓ１−ａ）、ルーティングテーブル格納部２１、３１でも同様に、最も時刻ｔｏｌｄの古いルーティングテーブルＲＴが削除される（Ｓ２−ａ、Ｓ３−ａ）。
【００６３】
なお、ＢＦおよびルーティングテーブルＲＴを削除する具体的な処理工程については後述することとする。
【００６４】
（第２の動作例：デバイス探索処理）  
図６は、前記デバイス探索システムにおける前記第２の動作例に係る各装置間のデバイス探索処理工程を示すシーケンス図である。
【００６５】
前記図４および図６に示すように、運用管理者（ユーザ）から、例えば探索条件として温度２８［℃］且つ加速度９．６［ｍ／ｔ２］を取得した末端デバイス１０を探索する指示があると（Ｓ４−０）、中央サーバ３０内に設けられた探索処理部３２は複数の前記ハッシュ関数を用いて、前記指示（温度２８［℃］、加速度９．６［ｍ／ｔ２］）をビット列（“１０１０１”）に変換する（Ｓ４−１）。
【００６６】
その後、探索処理部３２は、ルーティングテーブル格納部３１に対し、前記変換した対象のビット列を含むＢＦに対応付けられたＩＤ（ノードＩＤ、或いはデバイスＩＤ）の有無について各ルーティングテーブルＲＴに問い合わせる（Ｓ４−２）。
【００６７】
具体的には、ルーティングテーブルＲＴ（ＲＴ１、ＲＴ２、ＲＴ３）毎に格納された「Ｆｉｌｔｅｒ２０ｄ」、「Ｆｉｌｔｅｒ２０ｃ」に対して対象のビット列を含むか否か問い合わせる。
【００６８】
当該問い合わせの結果、仮に「Ｆｉｌｔｅｒ２０ｄ」に対象のビット列（“１０１０１”）が含まれると判断すると、前記探索処理部３２は、次の探索先を当該「Ｆｉｌｔｅｒ２０ｄ」に対応するノードＩＤ（ここでは、中間ノード２０ｄ）に決定し、当該中間ノード２０ｄに対して前記探索指示（温度２８［℃］、加速度９．６［ｍ／ｔ２］）を送信する（Ｓ４−３）。
【００６９】
すると、更に中間ノード２０ｄに設けられた探索処理部２４は、前記中央サーバ３０にと同様に探索処理を実行する。
【００７０】
すなわち、複数の前記ハッシュ関数を用いて、前記指示を再度ビット列（“１０１０１”）に変換し（Ｓ５−１）、ルーティングテーブル格納部２１に対し、前記変換した対象のビット列を含むＩＤ（ノードＩＤ、或いはデバイスＩＤ）の有無について各ルーティングテーブルＲＴ（ＲＴ１、ＲＴ２、ＲＴ３）に問い合わせる（Ｓ５−２）。
【００７１】
具体的には、ルーティングテーブルＲＴ毎に格納された「Ｆｉｌｔｅｒ１０ｄ」、「Ｆｉｌｔｅｒ１０ｂ」に対して対象のビット列を含むか否か問い合わせる。
【００７２】
当該問い合わせの結果、仮に、「Ｆｉｌｔｅｒ１０ａ」に対象のビット列（“１０１０１”）が含まれると判断すると、探索処理部２４は、次の探索先を当該「Ｆｉｌｔｅｒ１０ａ」に対応するデバイスＩＤである末端デバイス１０ａに決定し（Ｓ５−３ａ）、当該末端デバイス１０ａ（探索処理部１４）に対して前記探索指示（温度２８［℃］、加速度９．６［ｍ／ｔ２］）を更に送信する（Ｓ５−３）。
【００７３】
すると、探索処理部１４は、複数の前記ハッシュ関数を用いて、前記指示を再度ビット列（“１０１０１”）に変換し、センサデータ格納部１１に対して検索成功判定および検索（Ｓ６−１、Ｓ６−２）を実行する。その結果、検索対象のビット列“１０１０１”を発見すると、その結果を中間ノード２０、および中央サーバ３０を介して、ユーザに返す（Ｓ７）。
【００７４】
しかし、末端デバイス１０ａが中間ノード２０ｄの管轄から外れ、他の中間ノード２０（例えば、中間ノード２０ｂ等）へ移動した場合などは、当該末端デバイス１０ａを検索できないことから、探索処理部２４は、探索処理部３２へ「探索失敗」である旨を通知する（Ｓ５−３ｂ、図６）。
【００７５】
以上のようにデータ収集時には、センサ４０から取得したデータを一定のタイムウィンドウ（ｔ０、ｔ１、ｔ２）毎に時間を区切り、分割したデータを複数のルーティングテーブルＲＴに格納していくため、当該データの偽陽性を抑制できる。このことから、デバイス探索処理工程において誤ってユーザによる検索指示とは異なる末端デバイス１０を検索してしまうことや、探索処理の探索回数が増加し、効率が低下するために、当該探索するための時間を要するといったことを抑制することができる。
【００７６】
なお、中間ノード２０が本システムに含まれず、中央サーバ３０の前記ルーティングテーブル格納部３１が格納するＩＤがノードＩＤでなく、デバイスＩＤであった場合には、前記問い合わせの上（Ｓ４−２）、当該探索処理部３２は、前記デバイスＩＤ、すなわち末端デバイス１０ａ（探索処理部１４）に対して前記検索成功判定および検索（Ｓ６−１、Ｓ６−２）を実行する。
【００７７】
（第３の動作例：データ処理工程）  
図７は、第３の動作例であって、図１における末端デバイス１０ｄが移動し、中間ノード２０ｃから中間ノード２０ｄの管轄する領域に入った場合における各装置間のデータ処理工程を示す図である。
【００７８】
図８は、前記第３の動作例での各装置間のデータ処理工程を示すシーケンス図である。
なお、以下では、図４および図５と異なる処理工程についてのみ説明をする。
【００７９】
図７に示すように、中間ノード２０ｄの管轄する領域内に末端デバイス１０ｄが移動し、当該末端デバイス１０ｄが中間ノード２０ｄに接続されると（Ｐ０、図８）、末端デバイス１０ｄは、それまでセンサ４０から取得した全てのデータ（前記Ｓ１−ａにて前記ＢＦ格納部１３から削除したデータを除く）に自身のＩＤ（デバイス１０ｄ）を付加したＢＦブロックＢ１を中間ノード２０ｄへ再送信する（Ｐ１−１）。
【００８０】
そして、中間ノード２０ｄにおけるルーティングテーブル格納部２１内の、例えばルーティングテーブルＲＴ３にて前記末端デバイス１０ｄからのＢＦを初めて格納する場合には、前記ＢＦブロックＢ１に含まれるＢＦと、ＩＤとして末端デバイス１０ｄと、を対応させて当該ルーティングテーブルＲＴ３に追加する（Ｐ２−１）。
【００８１】
その後、中間ＢＦ作成部２２は、前記ルーティングテーブルＲＴ３に格納された「Ｆｉｌｔｅｒ１０ａ」、「Ｆｉｌｔｅｒ１０ｂ」、および「Ｆｉｌｔｅｒ１０ｄ」に基づいて新たなＢＦを作成する（Ｐ２−２）。
【００８２】
次いで、中間ＢＦ送信部２３は、前記ＢＦを受け取ると（Ｐ２−３）、前記中間ＢＦ作成部２２にて新たに作成されたＢＦに自身のＩＤ（ここでは、中間ノード２０ｄ）を付加したＢＦブロックＢ２を中央サーバ３０へ再送信する（Ｐ２−４）。
【００８３】
中央サーバ３０のルーティングテーブル格納部３１は、再送信された前記ＢＦブロックＢ２に基づいて、当該ルーティングテーブル格納部３１内のルーティングテーブルＲＴ３に格納された「Ｆｉｌｔｅｒ２０ｄ」を上書きし更新する（図７参照）。
【００８４】
なお、中間ノード２０が図１のように２階層構造であって、例えば、末端デバイス１０ｄが移動した結果、中間ノード２０ｃの管轄する領域から外れ、中間ノード２０ｄの管轄する領域に入った場合には、当該中間ノード２０内のルーティングテーブル格納部２１にて更新処理が行われることがある（Ｐ２−１）。以下、図１のように中間ノード２０が２階層になった場合の各装置間のデータ処理工程について図９を用いて説明する。
【００８５】
（第４の動作例：データ処理工程）
図９は、第４の動作例であって、図１のように中間ノード２０が２階層構造とされ、前記中間ノード２０ａが中間ノード２０ｃ、中間ノード２０ｄを管轄する場合の、各装置間のデータ処理工程を示す概略図である。
【００８６】
この場合、末端デバイス１０ｄと中間ノード２０ｄは中間ノード２０ａに対して前記図７、図８にて説明した処理工程が実行される（Ｐ１−１、Ｐ２−１、Ｐ２−２、Ｐ２−３、Ｐ２−４）。すなわち、例えば図７に示す中央サーバ３０を中間ノード２０ａに置き換えた処理工程が実行される。
【００８７】
すると、図９に示すように中間ノード２０ａに設けられたルーティングテーブル格納部２１内のルーティングテーブルＲＴ３（「Ｆｉｌｔｅｒ２０ｄ、ノード２０ｄ」）を更新し、更新した「Ｆｉｌｔｅｒ２０ｄ」および「Ｆｉｌｔｅｒ２０ｃ」に基づいて論理和演算し、新たに作成したＢＦに、自身のＩＤ（ここでは、ノード２０ａ）を付加したＢＦブロックＢ２を中央サーバ３０へ送信する。
【００８８】
以上、第３の動作例および第４の動作例では、末端デバイス１０の追加に伴うルーティングテーブル格納部２１、３１内でのＢＦの追加・更新について説明したが、以下第４の動作例では当該ルーティングテーブルＲＴの更新処理（削除・追加）について説明する。
【００８９】
（第５の動作例：ルーティングテーブルＲＴの更新処理）  
図１０は、第５の動作例であって、例えば中間ノード２０ｄに設けられるルーティングテーブル格納部２１内の前記ルーティングテーブルＲＴを更新する様子を示したシーケンス図である。
【００９０】
ここで、ＢＦを作成する時間間隔であるタイムウィンドウを、例えば１分とし、また保存可能なルーティングテーブルＲＴの数を“２”とする。以下では、ルーティングテーブルＲＴ２がルーティングテーブルＲＴ１よりも時刻的に新しいものとする。
【００９１】
まず、末端デバイス１０ａのセンサ４０（４０ａ、４０ｂ）により時刻ｔ０（ｘｘ：００分）〜時刻ｔ１（ｘｘ：０１分）の間に計測されたデータを、当該末端デバイス１０ａがフィルタ化（Ｆｉｌｔｅｒ_ｔ１と記載）し、これをＢＦブロックＢ１（「Ｆｉｌｔｅｒ_ｔ１、デバイス１０ａ」）として中間ノード２０ｄに送信すると、当該中間ノード２０ｄのルーティングテーブル格納部２１にて、時刻ｔ１で生成されたルーティングテーブルＲＴ１に前記「Ｆｉｌｔｅｒ_ｔ１」と「デバイス１０ａ」とが対応付けて格納される。
【００９２】
ここでは、末端デバイス１０ｂも同じタイミングでＢＦブロックＢ１（「Ｆｉｌｔｅｒ_ｔ１、デバイス１０ｂ」）を送信しているため、当該ＢＦブロックＢ１（「Ｆｉｌｔｅｒ_ｔ１、デバイス１０ｂ」）も前記ルーティングテーブルＲＴ１に格納される。以下、同様に、末端デバイス１０ｂのＢＦブロックＢ１の送信タイミングは、末端デバイス１０ａと同一とする。
【００９３】
その後、前記センサ４０（４０ａ〜４０ｄ）により、時刻ｔ１（ｘｘ：０１分）〜時刻ｔ２（ｘｘ：０２分）の間に取得されたデータを、末端デバイス１０（１０ａ、１０ｂ）がフィルタ化（Ｆｉｌｔｅｒ_ｔ２と記載）し、それぞれの末端デバイス１０（１０ａ、１０ｂ）のＩＤを付加したＢＦブロックＢ１（「Ｆｉｌｔｅｒ_ｔ２、デバイス１０ａ」と、「Ｆｉｌｔｅｒ_ｔ２、デバイス１０ｂ」）を中間ノード２０ｄに送信すると、時刻ｔ２に作成された新たなルーティングテーブルＲＴ２に、これら「Ｆｉｌｔｅｒ_ｔ２、デバイス１０ａ」、および「Ｆｉｌｔｅｒ_ｔ２、デバイス１０ｂ」がそれぞれ対応付けて格納される。
【００９４】
このタイミングで、末端デバイス１０（１０ａ、１０ｂ）のＢＦ格納部１３には、「Ｆｉｌｔｅｒ_ｔ１」と「Ｆｉｌｔｅｒ_ｔ２」がそれぞれ格納されており、また中間ノード２０ｄのルーティングテーブル格納部２１には、時刻ｔ１と時刻ｔ２に作成された２つのルーティングテーブルＲＴ（ＲＴ１、ＲＴ２）が格納されている。
【００９５】
このため、末端デバイス１０（１０ａ、１０ｂ）のＢＦ格納部１３は、時刻ｔとして一番古い「Ｆｉｌｔｅｒ_ｔ１」を削除すべきと判定し、また中間ノード２０ｄのルーティングテーブル格納部２１は、時刻ｔとして一番古い「ルーティングテーブルＲＴ１」を削除すべきと判定する。
【００９６】
その後、時刻ｔ３（ｘｘ：０３分）のタイミングで当該「Ｆｉｌｔｅｒ_ｔ１」および「ルーティングテーブルＲＴ１」を削除した上で、時刻ｔ２（ｘｘ：０２分）〜時刻ｔ３（ｘｘ：０３分）にて計測されたデータに基づいて作成された「Ｆｉｌｔｅｒ_ｔ３」を末端デバイス１０（１０ａ、１０ｂ）のＢＦ格納部１３に格納し、またルーティングテーブル格納部２１に時刻ｔ３に作成されたルーティングテーブルＲＴ３に「Ｆｉｌｔｅｒ_ｔ３、デバイス１０ａ」と「Ｆｉｌｔｅｒ_ｔ３、デバイス１０ｂ」とが格納される。
【００９７】
したがって、前記構成の第１の実施形態のデバイス探索システムによれば、末端デバイス１０は、センサ４０から取得した複数のデータを、ある一定の時間間隔（ｔ１、ｔ２、ｔ３、図１０参照）で分割し、当該分割したデータ毎に作成したＢＦをＢＦ格納部１３に格納した上で、当該格納したＢＦ毎に自身のデバイスＩＤを付加したＢＦブロックＢ１を中間ノード２０へ送信する。そして中間ノード２０は、ＢＦ格納部１３から一定時間間隔（ｔ１、ｔ２、ｔ３、図１０参照）で受信したＢＦブロックＢ１を、当該受信したタイミングで作成した複数のルーティングテーブルＲＴ（ＲＴ１、ＲＴ２、ＲＴ３）にそれぞれ格納する。
【００９８】
これにより、末端デバイス１０にて、センサ４０が取得した全データを１つのＢＦに纏めて管理する必要がなくなり、末端デバイス１０の末端ＢＦ作成部１２にて作成する１つ当たりのＢＦのデータ量を小さくすることができる。
【００９９】
つまり、例えば新たな末端デバイス１０ｄが中間ノード２０ｄの管轄する領域に入ると、当該中間ノード２０ｄの中間ＢＦ作成部２２にて「Ｆｉｌｔｅｒ２０ａ」、「Ｆｉｌｔｅｒ２０ｂ」に加えて新たに「Ｆｉｌｔｅｒ２０ｄ」に基づき新たなＢＦを作成することになるが、末端デバイス１０（１０ａ、１０ｂ、１０ｄ）からのＢＦのデータ量が小さい上に、当該複数のルーティングテーブルＲＴ毎にこのＢＦを作成することから、当該ＢＦを作成するにあたってデータ量が増加した場合であっても偽陽性が高まるといった問題を回避することができる。
【０１００】
このため、ユーザが末端デバイス１０を探索した場合であっても、対象となる末端デバイス１０を探索するまでの、例えば中央サーバ３０−中間ノード２０間、中間ノード２０−末端デバイス１０間の通信回数の増加を抑制することができ、探索効率を高く維持することができる。
【０１０１】
更に、前記構成のデバイス探索システムによれば、末端デバイス１０内のＢＦ格納部１３に格納されたＢＦ、および中間ノード２０および中央サーバ３０内の前記ルーティングテーブル格納部２１（３１）に設けられたルーティングテーブルＲＴ、についてそれらの中で時間的に一番古い情報を一定期間経過後に削除する機能を有する。
【０１０２】
ＢＦからはそれを構成する要素（例えば、データ列の一部）を削除することはできないが、非常に古い情報や、余分な情報をテーブルＲＴ毎に削除することができるため、前記ユーザからの末端デバイス１０の探索処理において検索するルーティングテーブルＲＴの数を減らすことが出来、結果として中央サーバ３０−中間ノード２０間、中間ノード２０−末端デバイス１０間の通信回数の増加を更に抑制することができ、探索効率をより高く維持することができる。
【０１０３】
また更に、前記構成のデバイス探索システムによれば、前記ルーティングテーブル格納部２１（３１）において、複数または単一のルーティングテーブルＲＴのいずれかを保有する構成を採用することが出来る。
【０１０４】
すなわち、中間ノード２０、および中央サーバ３０で、例えば複数のルーティングテーブルＲＴを設けた場合には、各中間ノード２０、および中央サーバ３０に設けられるルーティングテーブルＲＴが増加し、また末端デバイス１０が移動した際に古いルーティングテーブルＲＴに格納されるデバイスＩＤに探索対象の末端デバイス１０が存在しないといったことが生じやすくなるものの、多くの探索対象データを扱いつつ、偽陽性を低く抑えることが出来る。
【０１０５】
これに対して、中間ノード２０および中央サーバ３０が、ルーティングテーブル格納部２１（３１）内に単一のルーティングテーブルＲＴしか保持しない構成の場合には、当該中間ノード２０および中央サーバ３０に格納するルーティングテーブルＲＴの数、すなわちデータ量を抑えることができ、また末端デバイス１０を探索する正に現時点の状況だけに対応できることから、たとえ末端デバイス１０の移動が増加してもルーティングテーブルＲＴに探索対象となる末端デバイス１０が存在する点で利点である。
【０１０６】
このように、それぞれ利点があることから、（１）中間ノード２０および中央サーバ３０のデータ容量が大きく、末端デバイス１０の他の中間ノード２０への移動回数が少ない場合は、複数のルーティングテーブルＲＴを備える構成を採用し、これに対して、（２）中間ノード２０および中央サーバ３０のデータ容量が小さく、末端デバイス１０の他の中間ノード２０への移動回数が多い場合は、単一のルーティングテーブルＲＴを備える構成を採用する、といったように場合によって構成を変えることが望ましい。
【０１０７】
［第２の実施形態］
第２の実施形態に係るＩｏＴサービスにおけるデバイス探索システムでは、末端デバイス１０が移動し、別の中間ノード２０が管轄する領域に入った場合において、中間ノード２０がその末端デバイス１０から過去に送信されたＢＦブロックＢ１を含んでいれば、当該中間ノード２０よるＢＦブロックＢ２の再作成・再送信を停止する構成とする。
【０１０８】
このような構成を採用したのは、ＩｏＴサービスでは、末端デバイス１０の移動範囲は物理的な環境に依存することがあるため、近隣の中間ノード２０に移動することが多いが、更に上層の中間ノード２０から見れば、その中間ノード２０の管轄内であり、前記末端デバイス１０のデータを保有していることが多いといった背景に鑑みたものである。
【０１０９】
図１１は、第２の実施形態に係るデバイス探索システムにおいて末端デバイス１０ｄが移動し、別の中間ノード２０ｄの管轄する領域に入った場合の各装置間のデータ処理工程を示した概略図である。
【０１１０】
中間ノード２０ｄの管轄する領域に入った末端デバイス１０ｄは、以前中間ノード２０ｃに送信したことのあるＢＦブロックＢ１を移動先の前記中間ノード２０ｄへ送信することになる。
【０１１１】
すると、中間ノード２０ｄは、末端デバイス１０ｄが送信したＢＦブロックＢ１に基づいてルーティングテーブル格納部２１内に設けられたルーティングテーブルＲＴに「Ｆｉｌｔｅｒ１０ｄ、デバイス１０ｄ」を追加し格納した上で、この「Ｆｉｌｔｅｒ１０ｄ」を含む、「Ｆｉｌｔｅｒ１０ａ」および「Ｆｉｌｔｅｒ１０ｂ」に基づいて新たなＢＦを再作成し、次いで当該ＢＦを含むＢＦブロックＢ２を上位層に再送するか否かの判断をする。
【０１１２】
つまり中間ノード２０ｄは、それまで末端デバイス１０から受信したＢＦを格納しており、この格納してある全てのＢＦ内に、末端デバイス１０ｄから受信した「Ｆｉｌｔｅｒ１０ｄ」が含まれているかを比較し、比較した結果に応じて新たなＢＦを再作成し、当該ＢＦを含むＢＦブロックＢ１を再送するか否かの判断をする。なお、中間ノード２０ａの機能も同様である。
【０１１３】
したがって、例えば図１１に従えば、中間ノード２０ｄは、過去に末端デバイス１０ｄからのデータを受け取っていないことから、末端デバイス１０ｄが移動した場合、前記中間ノード２０ｄは新たなＢＦを作成し、中間ノード２０ａへの当該ＢＦの再送信を行う。
【０１１４】
一方、中間ノード２０ａは過去に末端デバイス１０ｄからのデータを受け取っていることから、たとえ末端デバイス１０ｄが移動したとしても、新たなＢＦは作成せず、中央サーバ３０へのＢＦの再送信は行わないこととなる。
【０１１５】
以下、上記処理工程を実現するための構成を図１２に示す。  
（第１の動作例）
図１２は、第２の実施形態に係る第１の動作例、および第２の動作例であって、デバイス探索システムにおける各装置間の機能ブロックと、この各装置間のデータ処理工程を示す図である。  
図１３は、前記第１の動作例、および第２の動作例でのデータ処理工程を示すシーケンス図である。
【０１１６】
以下では、図４と同一の構成およびその機能については説明を省略し、異なる構成および機能についてのみ述べる。すなわち、ここでは末端デバイス１０ｄと中央サーバ３０については同一の構成および機能を有するため説明を省略し、中間ノード２０ｄについてのみ説明する。
【０１１７】
中間ノード２０ｄは、中間ＢＦ格納部２５を更に備える。  
この中間ＢＦ格納部２５は、（１）上位層の中間ノード２０ａに対して過去に送信したＢＦを格納しておく機能を有する他、（２）末端デバイス１０ｄの移動によってルーティングテーブル格納部２１に追加されて格納された「Ｆｉｌｔｅｒ１０ｄ」が、自身が有する前記過去に送信したＢＦに含まれるか否か比較し、その比較結果を前記ルーティングテーブル格納部２１に通知する機能を有する。
【０１１８】
ルーティングテーブル格納部２１は、前記比較結果に基づき、追加した「Ｆｉｌｔｅｒ１０ｄ」、「Ｆｉｌｔｅｒ１０ａ」および「Ｆｉｌｔｅｒ１０ｂ」に基づき、新たにＢＦを作成すべきか否かについて、中間ＢＦ作成部２２へ通知する機能を有する。すなわち、前記比較結果が、「含まれる」であった場合、新たなＢＦを作成すべきでないと判断し、その判断結果を中間ＢＦ作成部２２へ通知する。これに対して、前記比較結果が、「含まれない」であった場合、新たなＢＦを作成すべきと判断し、その判断結果を中間ＢＦ作成部２２へ通知する。
【０１１９】
中間ＢＦ作成部２２は、前記ルーティングテーブル格納部２１からの通知に基づいて、新たなＢＦを作成する必要がある場合には、前記ルーティングテーブル格納部２１に格納された「Ｆｉｌｔｅｒ１０ｄ」、「Ｆｉｌｔｅｒ１０ａ」および「Ｆｉｌｔｅｒ１０ｂ」に基づき、新たにＢＦを作成し、前記中間ＢＦ送信部２３へ前記新たに作成したＢＦを出力する機能を有する。
【０１２０】
これに対して、ＢＦを新たに作成する必要のない場合には、中間ＢＦ作成部２２での当該ＢＦの作成および再送信は行わない。
【０１２１】
（第２の動作例）  
末端デバイス１０ｄが中間ノード２０ｄの管轄する領域に入り（Ｔ０）、その後、当該末端デバイス１０ｄが中間ノード２０ｄへＢＦブロックＢ１を再送信すると（Ｔ１−１）、この送信したＢＦブロックＢ１（「Ｆｉｌｔｅｒ１０ｄ、デバイス１０ｄ）をルーティングテーブル格納部２１内のルーティングテーブルＲＴに追加する（Ｔ２−１）。
【０１２２】
その後、当該ルーティングテーブル格納部２１は、ルーティングテーブルＲＴに格納してある「Ｆｉｌｔｅｒ１０ｄ」を前記中間ＢＦ格納部２５に送信する（Ｔ２−２ａ）。
【０１２３】
中間ＢＦ格納部２５では、前記ルーティングテーブル格納部２１が送信した「Ｆｉｌｔｅｒ１０ｄ」が、過去に中間ノード２０ａを介して中央サーバ３０へ送信したＢＦであって、現在格納されているＢＦ内に含まれるか否かを比較し（Ｔ２−２ｂ）、その結果をルーティングテーブル格納部２１に送信する（Ｔ２−２ｃ）。
【０１２４】
具体的には、「Ｆｉｌｔｅｒ１０ｄ」を構成するビット列が、中間ノード２０ａを介して中央サーバ３０へ送信したＢＦであって、中間ＢＦ格納部２５に現在格納されているＢＦを構成するビット列に含まれ、その範囲内にあるか否かを比較判断し、その結果をルーティングテーブル格納部２１へ送信する（Ｔ２−２ｂ、Ｔ２−２ｃ）。
【０１２５】
前記Ｔ２−２ｃの結果、前記末端デバイス１０ｄが送信した「Ｆｉｌｔｅｒ１０ｄ」が中間ＢＦ格納部２５に格納されていると判断されると、中間ノード２０ａを介して更に上位層の中央サーバ３０のルーティングテーブル格納部３１にも同様に格納されていると判断し、当該ルーティングテーブル格納部２１は、この時点で（「Ｆｉｌｔｅｒ１０ａ」、「Ｆｉｌｔｅｒ１０ｂ」、および「Ｆｉｌｔｅｒ１０ｄ」に基づいて作成される）新たなＢＦの作成をせず、処理を終了する（Ｔ２−３ａ）。
【０１２６】
このように、「Ｆｉｌｔｅｒ１０ｄ」が、中間ＢＦ格納部２５に格納され、過去に上位層に送信したＢＦに含まれている場合には、中間ＢＦ作成部２２での前記新たなＢＦの作成を行わず、またＢＦブロックＢ２の再送信を行わないことから、通信データ量を削減することができる。
【０１２７】
これに対して、前記Ｔ２−２ｃの結果、前記末端デバイス１０ｄが送信した「Ｆｉｌｔｅｒ１０ｄ」が中間ＢＦ格納部２５に格納されていないと判断された場合、ルーティングテーブル格納部２１は、中間ＢＦ作成部２２へ前記新たなＢＦの作成の指示を行い（Ｔ２−３ｂ）、当該中間ＢＦ作成部２２はルーティングテーブル格納部２１に格納された「Ｆｉｌｔｅｒ１０ａ」および「Ｆｉｌｔｅｒ１０ｂ」の他、「Ｆｉｌｔｅｒ１０ｄ」に基づいてＢＦを再作成し（Ｔ２−３）、それを中間ＢＦ格納部２５へ送信する（Ｔ２−４）。
【０１２８】
最後に、この中間ＢＦ格納部２５は、中間ＢＦ作成部２２が作成した新たなＢＦを更新して格納し（Ｔ２−４）、中間ＢＦ送信部２３はこの格納された新たなＢＦに自身のＩＤ（ここでは、中間ノード２０ｄ）を付加したＢＦブロックＢ２ａを中間ノード２０ａを介して中央サーバ３０へ送信する（Ｔ２−５）。
【０１２９】
ここで、中央サーバ３０は、ＢＦブロックＢ２ａをルーティングテーブルＲＴにて更新して格納する処理を行う（Ｔ３−１）。
【０１３０】
なお、末端デバイス１０の探索処理工程については、図６と同様であるため説明を省略する。
【０１３１】
したがって、前記構成のデバイス探索システムによれば、末端デバイス１０ｄが中間ノード２０ｄの管轄する領域に入り、当該末端デバイス１０ｄのＢＦ格納部１３に格納してあったＢＦ（Ｆｉｌｔｅｒ１０ｄ）をＢＦブロックＢ１として中間ノード２０ｄへ送信すると、当該中間ノード２０ｄ内に設けられたルーティングテーブル格納部２１は、当該ＢＦブロックＢ１をルーティングテーブルＲＴに追加して格納し、また中間ＢＦ格納部２５は、この追加したＢＦ（「Ｆｉｌｔｅｒ１０ｄ」）が、過去に中央サーバ３０へ送信し、現在自身が格納しているＢＦの範囲内にあるか否かを比較判断する。
【０１３２】
中間ＢＦ格納部２５による比較の結果、「Ｆｉｌｔｅｒ１０ｄ」が送信した前記ＢＦの範囲内にあると判断すると、この結果を受けたルーティングテーブル格納部２１はこのまま処理を終了する。これに対して、中間ＢＦ格納部２５が、「Ｆｉｌｔｅｒ１０ｄ」が前記ＢＦの範囲内にないと判断すると、中間ＢＦ作成部２２は、ルーティングテーブル格納部２１が格納する「Ｆｉｌｔｅｒ１０ａ」、「Ｆｉｌｔｅｒ１０ｂ」に加え「Ｆｉｌｔｅｒ１０ｄ」に基づいて新たな「ＢＦ」を作成し、当該ＢＦを中間ＢＦ格納部２５に格納する。
【０１３３】
中間ＢＦ格納部２５に格納されたＢＦは、自身のノードＩＤが付されたＢＦブロックＢ２ａを上位層へ送信する。
【０１３４】
これにより、たとえ末端デバイス１０ｄが移動し、当該末端デバイス１０ｄの位置が変化したことで、新たな中間ノード２０ｄの管轄する領域に入った場合でも、システム全体にて授受するデータ通信量を抑えつつ、確実に対象のデバイスの探索が可能となる。
【０１３５】
そして、中間ノード２０ｄにおいて過去に上位層に送信したＢＦを格納しておく必要があり、また当該中間ノード２０ｄにおいて、過去に上位層に送信したＢＦとの比較処理を行う必要があるものの、例えば末端デバイス１０ｄの移動時に、上位層へＢＦの再送信を行わないことによりデバイス探索システム内での通信回数及び通信データ量を抑えることが出来、また特に近隣中間ノード２０への移動が多くなる場合には、より通信回数及び通信データ量を抑えることができる点で本手法は有利である。
【０１３６】
［その他の実施形態］
本発明は、前記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【符号の説明】
【０１３７】
１０、１０ａ〜１０ｆ…末端デバイス、１１…センサデータ格納部、
１２…末端ＢＦ作成部、１３…ＢＦ格納部、１４、２４、３２…探索処理部、
２０…中間ノード２０、２１、３１…ルーティングテーブル格納部、
２２…中間ＢＦ作成部、２３…中間ＢＦ送信部、２５…中間ＢＦ格納部、
３０…中央サーバ、３１…ルーティングテーブル格納部、
４０、４０ａ〜４０ｈ…センサ、Ｂ、Ｂ１、Ｂ２ａ、Ｂ２ｂ…ＢＦブロック。
【図１】
2019086883.tif 000003
【図２】
2019086883.tif 000004
【図３】
2019086883.tif 000005
【図４】
2019086883.tif 000006
【図５】
2019086883.tif 000007
【図６】
2019086883.tif 000008
【図７】
2019086883.tif 000009
【図８】
2019086883.tif 000010
【図９】
2019086883.tif 000011
【図１０】
2019086883.tif 000012
【図１１】
2019086883.tif 000013
【図１２】
2019086883.tif 000014
【図１３】
2019086883.tif 000015