(57)【特許請求の範囲】
【請求項１】
複数の中継装置と管理装置とを有するデータ管理システムにより実行されるデータ管理方法において、
前記管理装置は、
前記複数の中継装置のうちデータを収集するデバイスと接続された中継装置から接続通知を受信した場合に、前記データを取得する際の要求先となる当該中継装置を識別する識別情報を記憶部に登録し、
前記データを取得する場合に、前記識別情報により特定される中継装置に、前記データの取得要求を送信し、
前記複数の中継装置のいずれかに、前記複数の中継装置それぞれに対応する複数の識別情報のうち前記記憶部から削除する削除対象の識別情報を送信し、
前記複数の中継装置は、
前記デバイスが収集したデータを記憶部に記憶し、
前記削除対象の識別情報を受信した場合、前記データに対応付けて、前記削除対象の中継装置を特定する問合せ先情報を前記記憶部に登録し、
前記管理装置から前記データの取得要求を受信した場合に、前記記憶部において前記データに前記問合せ先情報が対応付けられているか否かに基づく前記データの応答制御を実行する
処理を実行することを特徴とするデータ管理方法。
【請求項２】
前記管理装置の登録する処理は、前記デバイスが接続された時刻を含む前記接続通知を受信した場合に、前記中継装置を識別する識別情報と前記時刻とを対応付けて、前記時刻順で前記記憶部に登録し、
前記管理装置の取得要求を送信する処理は、取得対象となるデータの時間帯に含まれる時刻に対応する識別情報により特定される中継装置に、前記時間帯を指定した前記データの取得要求を送信し、
前記複数の中継装置の応答制御を実行する処理は、前記データの取得要求で指定された時間帯に含まれる前記データに前記問合せ先情報が対応付けられていなければ、前記記憶部に記憶される前記データを前記管理装置に送信し、前記問合せ先情報が対応付けられていれば、当該問合せ先情報によって特定される中継装置に、前記データの取得要求を転送することを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
前記管理装置の識別情報を送信する処理は、前記削除対象の中継装置が前記接続通知を送信した時刻よりも前の時刻に前記接続通知を送信した第１の中継装置に、前記削除対象の識別情報を送信し、
前記複数の中継装置の登録する処理は、前記削除対象の識別情報を受信した場合、データ取得時刻がより新しいデータを保持する中継装置へのポインタ情報として前記問合せ先情報を前記記憶部に登録することを特徴とする請求項２に記載のデータ管理方法。
【請求項４】
前記管理装置の識別情報を送信する処理は、前記削除対象の中継装置が前記接続通知を送信した時刻よりも後の時刻に前記接続通知を送信した第２の中継装置に、前記削除対象の識別情報を送信し、
前記複数の中継装置の登録する処理は、前記削除対象の識別情報を受信した場合、データ取得時刻がより古いデータを保持する中継装置へのポインタ情報として前記問合せ先情報を前記記憶部に登録することを特徴とする請求項３に記載のデータ管理方法。
【請求項５】
前記管理装置の識別情報を送信する処理は、前記記憶部に記憶される前記識別情報の参照頻度が閾値未満である場合に、当該識別情報を削除対象の識別情報として特定することを特徴とする請求項１乃至４のいずれか１つに記載のデータ管理方法。
【請求項６】
前記管理装置の識別情報を送信する処理は、前記記憶部に記憶される他の識別情報に対応する中継装置からのホップ数が閾値未満である中継装置の識別情報を、前記削除対象の識別情報として特定することを特徴とする請求項１乃至５のいずれか１つに記載のデータ管理方法。
【請求項７】
前記管理装置が、
前記問合せ先情報に対応する転送先中継装置に対する前記データの取得要求の転送回数が閾値以上である場合に、前記転送先中継装置の識別情報を前記記憶部に再登録する
処理をさらに実行することを特徴とする請求項１乃至６のいずれか１つに記載のデータ管理方法。
【請求項８】
複数の中継装置と管理装置とを有するデータ管理システムにおいて、
前記管理装置は、
前記複数の中継装置のうちデータを収集するデバイスと接続された中継装置から接続通知を受信した場合に、前記データを取得する際の要求先となる当該中継装置を識別する識別情報を記憶部に記憶する登録部と、
前記データを取得する場合に、前記識別情報により特定される中継装置に、前記データの取得要求を送信する取得要求送信部と、
前記複数の中継装置のいずれかに、前記複数の中継装置それぞれに対応する複数の識別情報のうち前記記憶部から削除する削除対象の識別情報を送信する識別情報送信部と
を有し、
前記複数の中継装置は、
前記デバイスが収集したデータを記憶部に記憶する取得部と、
前記削除対象の識別情報を受信した場合、前記データに対応付けて、前記削除対象の中継装置を特定する問合せ先情報を前記記憶部に登録する登録部と、
前記管理装置から前記データの取得要求を受信した場合に、前記記憶部において前記データに前記問合せ先情報が対応付けられているか否かに基づく前記データの応答制御を実行する応答制御部と
を有することを特徴とするデータ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理方法及びデータ管理システムに関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet  of  Things）と呼ばれ、家電製品などのモノをインターネットに接続して管理制御する技術が検討されている。具体的な例としては、自動車などに搭載されたデバイスがもつセンサが、気温などのデータを測定し、測定されたセンサデータを、インターネットを介して所定のサーバ装置などへ自動的に送信する技術などが知られている。
【０００３】
かかる技術を用いて、例えば、サービス提供者が、送信されたセンサデータを、利用者からの要求に応じて提供するサービスが知られている。例えば、サービス利用者が、端末を通じて、位置と時刻とを指定してサーバ装置にセンサデータを要求すると、サーバ装置が、デバイスから取得されたセンサデータの中から、要求に該当するデータを抽出して、端末に提供する。なお、サーバ装置が各デバイスからセンサデータを直接受信する代わりに、ゲートウェイが各デバイスからセンサデータを受信して、サーバ装置に提供する技術も知られている。
【０００４】
ところで、ＩｏＴにおいてインターネットに接続されるデバイスには、スマートフォンなどの携帯端末や自動車などの移動可能なデバイスも含まれる。例えば、デバイスがゲートウェイにセンサデータを送信した後に移動した結果、移動先の他のゲートウェイにセンサデータを送信する場合がある。すなわち、一つのデバイスで測定されたセンサデータを取得するゲートウェイが、測定された時間に応じて異なることが考えられる。この場合、サーバ装置は、例えば、該当するデバイスから取得されたセンサデータのリクエストを全てのゲートウェイに送信し、当該センサデータを取得したゲートウェイからセンサデータを受信する。
【０００５】
これに加えて、サーバ装置において、各デバイスが、どの時点においてどのゲートウェイにセンサデータを送信していたかを示す移動履歴を保持する技術も知られている。当該技術において、サーバ装置は、ユーザから要求されたセンサデータを取得する際、移動履歴に基づいて、ユーザが要求するセンサデータをデバイスから取得したゲートウェイを特定する。そして、サーバ装置は、特定されたゲートウェイに要求されたセンサデータのリクエストを送信する。サーバ装置が移動履歴を保持することにより、リクエスト送信によるレスポンス速度を維持することができるが、移動履歴を保持するための記憶容量を確保する必要がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３６２２６７号公報
【特許文献２】特開２００５−１２３８３６号公報
【特許文献３】特表２０１４−５１６５０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、移動履歴を保持することによるレスポンス速度の維持と、移動履歴を削除することによる記憶装置の容量の削減とはトレードオフの関係にあり、移動履歴の容量を適切に制御することは難しい。
【０００８】
例えば、複数のゲートウェイからデータを収集する際に、サーバ装置において各デバイスの全ての移動履歴を保持すると、移動履歴のデータ量が時間の経過とともに際限なく増えていき、サーバ装置の記憶装置の容量を圧迫する場合がある。一方、移動履歴を保持せず、又は移動履歴のデータの一部を削除する場合、サーバ装置からゲートウェイへ送信されるリクエスト、又はリクエストを受けたゲートウェイから他のゲートウェイへ送信されるリクエストが増大する。この結果、データ取得のリクエストに対するレスポンス速度が低下する場合がある。
【０００９】
一つの側面では、データ取得にかかるレスポンス速度の維持と記憶容量の削減とを実現できるデータ管理方法及びデータ管理システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
一つの態様において、データ管理方法は、複数の中継装置と管理装置とを有するシステムにおいて実行される。管理装置は、複数の中継装置のうちデータを収集するデバイスと接続された中継装置から接続通知を受信した場合に、データを取得する際の要求先となる当該中継装置を識別する識別情報を記憶部に登録する。管理装置は、データを取得する場合に、識別情報により特定される中継装置に、データの取得要求を送信する。管理装置は、複数の中継装置のいずれかに、複数の中継装置それぞれに対応する複数の識別情報のうち記憶部から削除する削除対象の識別情報を送信する。複数の中継装置は、デバイスが収集したデータを記憶部に記憶し、削除対象の識別情報を受信した場合、データに対応付けて、削除対象の中継装置を特定する問合せ先情報を記憶部に登録する。複数の中継装置は、管理装置からデータの取得要求を受信した場合に、記憶部においてデータに問合せ先情報が対応付けられているか否かに基づくデータの応答制御を実行する。
【発明の効果】
【００１１】
一つの側面では、データ取得にかかるレスポンス速度の維持と記憶容量の削減とを実現できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、システム構成の一例を示す図である。
【図２】図２は、データ取得処理の一例を示す図である。
【図３】図３は、機能構成の一例を示す図である。
【図４】図４は、センタの移動履歴ＤＢの一例を示す図である。
【図５】図５は、センタの移動履歴ＤＢの別の一例を示す図である。
【図６】図６は、ＧＷ２のデバイス情報ＤＢの一例を示す図である。
【図７】図７は、ＧＷ７のデバイス情報ＤＢの一例を示す図である。
【図８】図８は、ＧＷ１のデバイス情報ＤＢの一例を示す図である。
【図９】図９は、ポインタを用いたデータ取得処理の一例を示す図である。
【図１０】図１０は、リクエスト処理の一例を示すシーケンス図である。
【図１１】図１１は、センタにおけるリクエスト処理の一例を示すフローチャートである。
【図１２】図１２は、ＧＷにおけるリクエスト応答処理の一例を示すフローチャートである。
【図１３】図１３は、移動履歴更新処理の一例を示すシーケンス図である。
【図１４】図１４は、センタにおける移動履歴更新処理の一例を示すフローチャートである。
【図１５】図１５は、センタにおける履歴データ削除処理の一例を示すフローチャートである。
【図１６】図１６は、移動履歴削除処理の一例を示すシーケンス図である。
【図１７】図１７は、ＧＷにおけるデバイスデータ更新処理の一例を示すフローチャートである。
【図１８】図１８は、ＧＷにおけるポインタ更新処理の一例を示すフローチャートである。
【図１９】図１９は、移動履歴再登録処理の一例を示すシーケンス図である。
【図２０】図２０は、実施例２における、センタにおける履歴データ削除処理の一例を示すフローチャートである。
【図２１】図２１は、実施例３における、センタの移動履歴ＤＢの一例を示す図である。
【図２２】図２２は、実施例３における、センタのポインタ利用頻度ＤＢの一例を示す図である。
【図２３】図２３は、実施例３における、ＧＷ２のデバイス情報ＤＢの一例を示す図である。
【図２４】図２４は、実施例３におけるリクエスト処理の一例を示すシーケンス図である。
【図２５】図２５は、実施例３における移動履歴再登録処理の一例を示すシーケンス図である。
【図２６】図２６は、実施例３における、センタにおける移動履歴再登録処理の一例を示すフローチャートである。
【図２７】図２７は、実施例３における、ＧＷにおけるポインタ更新処理の一例を示すフローチャートである。
【図２８】図２８は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するデータ管理方法及びデータ管理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例１】
【００１４】
＜全体構成＞
まず、本発明を実現するシステム構成の一例について、図１を用いて説明する。図１は、システム構成の一例を示す図である。図１に示すように、本発明にかかるデータ取得システム１は、例えば、センタ１００と、ゲートウェイ２００ａ及び２００ｂとを含むデータ管理システム１０を有する。また、データ取得システム１は、デバイス５００ａ及び５００ｂと、サービス利用者の端末９００とをさらに有する。なお、ゲートウェイを「ＧＷ」と表記する場合があり、ＧＷ２００ａとＧＷ２００ｂとを区別せずに表現する場合に、「ＧＷ２００」と表記する場合がある。本実施例においては、データ取得システム１がＧＷ２００ａとＧＷ２００ｂとの２台のＧＷを含む例を示すが、これに限られず、データ取得システム１が３台以上のＧＷを含む構成であってもよい。なお、センタ１００は、管理装置の一例であり、ＧＷ２００は、中継装置の一例である。
【００１５】
また、各ＧＷ２００には、固有の識別情報が付与される。センタ１００及び各ＧＷ２００は、当該識別情報を用いて、各ＧＷ２００を特定する。例えば、図１に示す例において、ＧＷ２００ａの識別情報は「ＧＷ１」とし、ＧＷ２００ｂの識別情報は「ＧＷ２」とする。なお、ＧＷ２００の識別情報を「装置ＩＤ」と表記する場合がある。
【００１６】
センタ１００とＧＷ２００ａ及び２００ｂとは、それぞれコンピュータ等の機器により実現され、ネットワークＮを通じて相互に通信可能に接続される。かかるネットワークＮには、有線または無線を問わず、インターネット（Internet）を始め、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。
【００１７】
図１に示すデータ取得システム１において、センタ１００は、サービス利用者の端末９００と、ネットワークＮを通じて通信可能に接続される。センタ１００は、サービス利用者の端末９００からデータ取得要求を受け付けると、ＧＷ２００からセンサデータを取得して、サービス利用者の端末９００に提供する。
【００１８】
サービス利用者の端末９００は、例えばスマートフォン等の通信機能を有する機器であるが、これに限られず、デスクトップコンピュータ等の据置型の機器であってもよい。なお、サービス利用者の端末９００を、利用者端末９００と表記する場合がある。本実施例においては、センタ１００が１台の利用者端末９００と接続される例を示すが、これに限られず、複数台の利用者端末９００と接続されるような構成であってもよい。
【００１９】
デバイス５００ａ及び５００ｂは、それぞれＧＷ２００ａ及びＧＷ２００ｂと、ネットワークＮを通じて通信可能に接続される。デバイス５００ａ及び５００ｂは、例えば自動車等に搭載された、センサ機能を有する移動可能な機器であるが、これに限られず、スマートフォン等の機器によって実現されてもよい。なお、デバイス５００ａとデバイス５００ｂとを区別せずに表現する場合に、「デバイス５００」と表記する場合がある。
【００２０】
また、各デバイス５００には、固有のデバイス識別情報が付与される。センタ１００及び各ＧＷ２００は、当該デバイス識別情報を用いて、各デバイス５００を特定する。例えば、図１に示す例において、デバイス５００ａのデバイス識別情報は「Ａ」とし、デバイス５００ｂのデバイス識別情報は「Ｂ」とする。なお、デバイス識別情報を「デバイスＩＤ」と表記する場合がある。
【００２１】
ＧＷ２００は、それぞれデバイス５００からセンサデータを取得し、センタ１００からの要求に応じて、取得したセンサデータを提供する。ＧＷ２００は、センサデータを取得したデバイス５００のデバイスＩＤと、センサデータが取得された時刻を示すタイムスタンプとを、センサデータと対応付けて、センタ１００に送信する。なお、以下において、タイムスタンプを「ＴＳ」と表記する場合があり、また取得されたセンサデータと、対応するデバイスＩＤ及びＴＳとの組み合わせを「デバイスデータ」と表記する場合がある。
【００２２】
本実施例において、ＧＷ２００ａ及び２００ｂは、例えば互いに離隔した場所に設置され、それぞれ異なる範囲に存在するデバイス５００からセンサデータを取得する。また、本実施例におけるデバイス５００は、特定のＧＷ２００にセンサデータを送信した後に移動し、移動先のＧＷ２００にセンサデータを送信する。例えば、デバイス５００ａは、ＧＷ２００ａにセンサデータを送信した後に移動し、移動先でＧＷ２００ｂにセンサデータを送信する。本実施例においては、ＧＷ２００が、デバイス５００ａとデバイス５００ｂとの２台からセンサデータを取得する例を示すが、これに限られない。例えば、ＧＷ２００が１台のデバイス５００からセンサデータを取得する構成であってもよく、３台以上のデバイス５００からセンサデータを取得する構成であってもよい。
【００２３】
＜リクエスト処理の流れ＞
次に、図１に示すようなデータ取得システム１において、サービス利用者によるデータ取得要求に応じてデータを取得する処理の一例について、図２を用いて説明する。図２は、データ取得処理の一例を示す図である。図２に示す例において、各ＧＷ２００は、各デバイス５００からセンサデータを受信して、デバイスＩＤ及びＴＳと対応付けて、デバイス情報ＤＢ２３１に記憶する。
【００２４】
まず、センタ１００は、利用者端末９００から、例えばデバイス５００ａにおいて収集されたセンサデータのデータ取得要求を受信する（ステップＳ１：データ取得要求）。
【００２５】
次に、センタ１００は、移動するデバイス５００と、移動先でセンサデータを取得するＧＷ２００とを対応付けて記憶する移動履歴ＤＢ１３１を参照し、データ取得要求の送信先とするＧＷ２００を特定する（ステップＳ２：移動履歴参照）。例えば、センタ１００は、デバイス５００ａにおいて収集されたセンサデータを取得した装置ＩＤ「ＧＷ２」であるＧＷ２００ｂを、データ取得要求の送信先として特定する。図２に示す例においては、センタ１００の移動履歴ＤＢ１３１には、ＧＷ２００ａの装置ＩＤ「ＧＷ１」は記憶されていない場合について説明する。
【００２６】
次に、センタ１００は、ステップＳ２において特定されたＧＷ２００ｂに対して、デバイス５００ａのデバイスＩＤ「Ａ」を含むデータ取得要求を送信する（ステップＳ３：データ取得要求）。
【００２７】
ＧＷ２００ｂは、センタ１００からデータ取得要求を受信すると、デバイス情報ＤＢ２３１を参照し、データ取得要求に対応するポインタが登録されているか否かを判定する（ステップＳ４：デバイス情報参照）。なお、ポインタは、問合せ先情報の一例である。図２に示す例においては、ＧＷ２００ｂのデバイス情報ＤＢ２３１に、「ＧＷ１」がポインタとして記憶されている例について説明する。
【００２８】
ＧＷ２００ｂは、データ取得要求に対応するポインタがデバイス情報ＤＢ２３１に登録されていない場合、デバイス情報ＤＢ２３１からデバイスデータを読み出し、センタ１００に送信する。一方、ＧＷ２００ｂは、デバイス情報ＤＢ２３１に当該データ取得要求に対応するポインタが登録されている場合、当該ポインタにより特定されるＧＷ２００ａに、デバイスＩＤ「Ａ」を含むデータ取得要求を送信する（ステップＳ５：データ取得要求）。
【００２９】
ＧＷ２００ａは、ＧＷ２００ｂからデータ取得要求を受信すると、ＧＷ２００ａに記憶されるデバイス情報ＤＢ２３１からデバイスデータを読み出して、ＧＷ２００ｂに送信する（ステップＳ６：データ送信）。なお、本実施例においては、ＧＷ２００ｂから転送されたデータ取得要求を受信したＧＷ２００ａが、ＧＷ２００ｂにデバイスデータを送信する構成について説明するが、実施の形態はこれに限られない。例えば、転送されたデータ取得要求を受信したＧＷ２００ａが、ＧＷ２００ｂを経由せず、直接センタ１００にデバイスデータを送信するような構成であってもよい。
【００３０】
ＧＷ２００ａからデバイスデータを受信したＧＷ２００ｂは、ＧＷ２００ａから取得したデバイスデータを、センタ１００に送信する（ステップＳ７：データ送信）。このとき、ＧＷ２００ｂが、ＧＷ２００ｂ自身がデバイス５００ａから取得したデバイスデータをデバイス情報ＤＢ２３１から読み出し、ＧＷ２００ａから取得したデバイスデータと併せてセンタ１００に送信するような構成であってもよい。
【００３１】
次に、センタ１００は、ＧＷ２００ｂから取得したデバイスデータを、利用者端末９００に送信する（ステップＳ８：データ提供）。
【００３２】
以上のように、各ＧＷ２００は、自ら各デバイス５００から取得したデバイスデータを、データ取得要求に応じてセンタ１００に送信する。さらに、本発明においては、各ＧＷ２００が、センサデータを取得した他のＧＷ２００を特定するポインタをデバイス情報ＤＢ２３１に保存することで、他のＧＷ２００が取得したデバイスデータも参照することができる。これにより、センタ１００は、移動履歴ＤＢ１３１から一部の装置ＩＤを削除した場合においても、他のＧＷ２００を経由して、削除された装置ＩＤに対応するＧＷ２００からデバイスデータを取得することができる。
【００３３】
このように、本発明に係る管理装置は、移動デバイスが接続したＧＷの接続履歴を削除する際、削除対象ＧＷのＩＤを当該ＧＷの前後の接続履歴に対応する他ＧＷに記憶させるので、データ量を削減しても当該ＧＷの接続履歴を辿ることができる。
【００３４】
＜センタの機能構成＞
次に、本実施例におけるデータ管理システム１０の機能構成について、図３を用いて説明する。図３は、機能構成の一例を示す図である。図３に示すように、センタ１００は、記憶部１３０と、制御部１４０とを有する。なお、センタ１００は、図３に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
【００３５】
記憶部１３０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１３０は、移動履歴ＤＢ１３１を有する。また、記憶部１３０は、例えば後に説明する「Ｎｕ」の閾値など、制御部１４０での処理に用いる各種情報を記憶する。
【００３６】
移動履歴ＤＢ１３１は、ＧＷ２００の通信可能範囲の間を移動する各デバイスに対応付けて、移動するデバイスからセンサデータを取得するＧＷ２００と、センサデータが取得されたＴＳとの履歴を対応付けて記憶する。図４は、センタの移動履歴ＤＢの一例を示す図である。図４に示すように、移動履歴ＤＢ１３１は、「装置ＩＤ」と、「タイムスタンプ」と、「Ｎｕ」とを、「デバイスＩＤ」に対応付けて記憶する。なお、移動履歴ＤＢ１３１は、管理装置の記憶部の一例である。
【００３７】
図４の符号１０００に示す「デバイスＩＤ」の欄は、センサデータを収集したデバイスのデバイスＩＤを示す。本実施例において、移動履歴ＤＢ１３１は、例えばデバイスＩＤごとに１つのテーブルを有する。
【００３８】
図４において、「装置ＩＤ」の欄及び「タイムスタンプ」の欄は、当該デバイスからセンサデータを取得したＧＷ２００の装置ＩＤと、当該ＧＷ２００が当該デバイスからセンサデータを最初に取得した時刻とを示す。例えば、図４の符号１００１は、装置ＩＤ「ＧＷ１」であるＧＷ２００ａが、デバイスＩＤ「Ａ」のデバイスから、「９：３１」に、センサデータの取得を開始したことを示す。
【００３９】
また、図４の符号１００２は、「９：４３」以降、装置ＩＤ「ＧＷ１」であるＧＷ２００ａに代わり、装置ＩＤ「ＧＷ２」であるＧＷ２００ｂが、デバイスＩＤ「Ａ」のデバイスからセンサデータの取得を開始したことを示す。なお、デバイスＩＤに対応付けられて記憶される装置ＩＤとＴＳとの組み合わせを、「装置データ」と表記する場合がある。
【００４０】
図４において、「Ｎｕ」の欄は、センタ１００が、該当する装置データにより特定されるセンサデータのデータ取得要求を何回送信したかという装置データの参照頻度を示す。例えば、図４の符号１００１は、センタ１００が、デバイスＩＤ「Ａ」のデバイスにより取得されたセンサデータのデータ取得要求を、図４の符号１００１に示す装置データを参照して、装置ＩＤ「ＧＷ１」であるＧＷ２００ａに「１０」回送信したことを示す。
【００４１】
図３の説明に戻って、センタ１００の制御部１４０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１４０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。
【００４２】
この制御部１４０は、リクエスト処理部１４１と、判定部１４２と、移動履歴処理部１４３とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１４０の内部構成は、図３に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、リクエスト処理部１４１、判定部１４２及び移動履歴処理部１４３は、プロセッサなどの電子回路の一例またはプロセッサなどが実行するプロセスの一例である。
【００４３】
リクエスト処理部１４１は、利用者端末９００からデータ取得要求を受信して、ＧＷ２００に対してデータ取得要求を送信し、取得したセンサデータを利用者端末９００に送信する処理部である。なお、リクエストはデータの取得要求の一例であり、リクエスト処理部１４１は取得要求送信部の一例である。
【００４４】
リクエスト処理部１４１は、例えば、センサデータを取得したデバイスのデバイスＩＤと、データ取得を要求する対象時間帯とを特定するデータ取得要求を利用者端末９００から受信する。次に、リクエスト処理部１４１は、移動履歴ＤＢ１３１を参照して、データ取得要求に対応する装置データにより特定されるＧＷ２００に対して、デバイスＩＤ及び対象時間帯を特定するデータ取得要求を送信する。そして、リクエスト処理部１４１は、ＧＷ２００からデバイスデータを取得すると、利用者端末９００に送信する。また、リクエスト処理部１４１は、移動履歴ＤＢ１３１を参照してデータ取得要求を送信した場合、データ取得要求を送信する際に特定した装置データに対応する「Ｎｕ」値を１インクリメントする。
【００４５】
例えば、リクエスト処理部１４１が、利用者端末９００から、デバイスＩＤ「Ａ」と、「９：３５」以降「１０：１５」以前の対象時間帯を指定するデータ取得要求を受信した場合の処理について、図４及び図５を用いて説明する。図５は、センタの移動履歴ＤＢの別の一例を示す図である。なお、図５においては、図４に示す装置データのうち、符号１００１及び１００３に示される２つの装置データが削除されている。また、図５において、符号１００２に示す装置データは、図４の符号１００２に示す装置データと同一である。
【００４６】
リクエスト処理部１４１は、例えば図４に示すような移動履歴ＤＢ１３１を参照した場合、「９：３５」以降「９：４３」より前の時間帯に取得されたセンサデータのデータ取得要求を、装置ＩＤ「ＧＷ１」であるＧＷ２００ａに送信する。同様に、リクエスト処理部１４１は、「９：４３」以降「１０：０２」より前の時間帯に取得されたセンサデータのデータ取得要求を、装置ＩＤ「ＧＷ２」であるＧＷ２００ｂに送信する。また、リクエスト処理部１４１は、「１０：０２」以降「１０：１４」より前の時間帯に取得されたセンサデータのデータ取得要求を、装置ＩＤが「ＧＷ７」であるＧＷ２００に送信する。さらに、リクエスト処理部１４１は、「１０：１４」以降「１０：１５」以前の時間帯に取得されたセンサデータのデータ取得要求を、装置ＩＤが「ＧＷ６」であるＧＷ２００に送信する。
【００４７】
一方、リクエスト処理部１４１は、例えば図５に示すような、装置ＩＤ「ＧＷ１」及び「ＧＷ７」に関する装置データが記憶されていない移動履歴ＤＢ１３１を参照した場合、これらの装置ＩＤのＧＷ２００に対してデータ取得要求を送信しない。この場合、リクエスト処理部１４１は、直前又は直後のＴＳを含む装置データを特定し、特定した装置データにより特定されるＧＷ２００に、データ取得要求を送信する。
【００４８】
例えば、リクエスト処理部１４１は、「９：３５」以降「１０：１４」より前の時間帯に取得されたセンサデータのデータ取得要求を、装置ＩＤが「ＧＷ２」であるＧＷ２００ｂに送信する。同様に、リクエスト処理部１４１は、「１０：１４」以降「１０：１５」以前の時間帯に取得されたセンサデータのデータ取得要求を、装置ＩＤが「ＧＷ６」であるＧＷに送信する。この場合において、データ取得要求を受信した各ＧＷ２００は、それぞれデバイス情報ＤＢ２３１に登録されたポインタにより特定される他のＧＷ２００に対して、データ取得要求を転送する。このようなポインタを用いたデータ取得処理については、後に図９を用いて詳しく説明する。
【００４９】
その後、リクエスト処理部１４１は、送信したデータ取得要求に対応するデバイスデータを各ＧＷ２００から受信すると、利用者端末９００にデバイスデータを送信する。また、リクエスト処理部１４１は、移動履歴ＤＢ１３１を参照し、データ取得要求にかかる装置データに対応する「Ｎｕ」値を１インクリメントする。例えば、リクエスト処理部１４１は、図５に示す移動履歴ＤＢ１３１の一例において、符号１００２に示される「ＧＷ２」に関する装置データに対応付けられた「Ｎｕ」値を１インクリメントし、「２４」とする。
【００５０】
図３の説明に戻って、判定部１４２は、移動履歴ＤＢ１３１に記憶される装置データを削除する条件を満たすか否かを判定し、判定結果を移動履歴処理部１４３に出力する処理部である。
【００５１】
例えば、判定部１４２は、移動履歴ＤＢ１３１を参照し、各装置データに対応付けられた「Ｎｕ」値が、所定の閾値以上であるか否かを判定する。なお、後に説明するように、判定部１４２は、「Ｎｕ」値以外の値が所定の閾値以上であるか否かを判定してもよく、また「Ｎｕ」値に関する条件に加えて、その他の値に関する条件も満たすか否かをさらに判定するような構成であってもよい。このように、判定部１４２が、参照頻度により削除対象の装置データを判定することで、削除してもレスポンス速度の低下が少ない装置データを選択できる。
【００５２】
例えば、「Ｎｕ」の閾値が「１１」である場合における判定処理について説明する。図４に示す移動履歴ＤＢ１３１に記憶された各装置データのうち、例えば、符号１００１に示される装置データのＮｕ値は「１０」であり、符号１００３に示される装置データのＮｕ値は「５」である。これらのＮｕ値は、いずれも「Ｎｕ」の閾値「１１」未満である。一方、図４に示す移動履歴ＤＢ１３１に記憶されたその他の装置データのＮｕ値は、いずれも「Ｎｕ」の閾値「１１」以上である。この場合、判定部１４２は、図４に示すような移動履歴ＤＢ１３１に記憶された装置データのうち、Ｎｕ値が「Ｎｕ」の閾値「１１」未満である符号１００１及び符号１００３に示す装置データが削除対象であると判定する。そして、判定部１４２は、削除対象の装置データを特定する判定結果を移動履歴処理部１４３に出力する。
【００５３】
なお、閾値は、例えば記憶部１３０に予め記憶されるが、これに限られず、判定を行う都度、判定部１４２が閾値を決定するような構成であってもよい。例えば、判定部１４２が、図４に示す移動履歴ＤＢ１３１において、記憶される５つの装置データのうち２つを削除しようとする場合について説明する。この場合において、判定部１４２は、移動履歴ＤＢ１３１に記憶された装置データに対応する「Ｎｕ」値のうち、２番目に小さい値「１０」より大きく、かつ３番目に小さい値「１６」以下である値を、「Ｎｕ」の閾値として決定する。
【００５４】
図３の説明に戻って、移動履歴処理部１４３は、各ＧＷ２００から受信したデバイスＩＤ及びＴＳに基づいて、移動履歴ＤＢ１３１を更新する処理部である。例えば、移動履歴処理部１４３は、ＧＷ２００ｂから、デバイスＩＤ「Ａ」と、ＴＳ「９：４３」とを受信した場合、図４の符号１００２に示すような装置データを移動履歴ＤＢ１３１に記憶する。なお、移動履歴処理部１４３は、登録部、識別情報送信部及び再登録部の一例であり、各ＧＷ２００が送信するデバイスＩＤ及びＴＳは、接続通知の一例である。
【００５５】
本実施例における移動履歴処理部１４３は、装置データを、実際に受信した順番ではなく、例えばＴＳが古いものから順に、移動履歴ＤＢ１３１に格納する。移動履歴処理部１４３は、例えば後に説明する装置データの再登録による場合のように、後から受信した装置データであっても、装置データに含まれるＴＳが古い場合は、既に登録された装置データより前に登録する。
【００５６】
また、移動履歴処理部１４３は、判定部１４２から出力された判定結果に従って、移動履歴ＤＢ１３１に記憶された装置データを更新する。移動履歴処理部１４３は、判定結果に従って、例えば図４に示す移動履歴ＤＢ１３１に記憶された装置データのうち、符号１００１及び符号１００３に示される装置データを削除し、図５に示されるように移動履歴ＤＢ１３１を更新する。移動履歴処理部１４３は、例えば所定の時間が経過した場合に装置データを更新するが、これに限られず、判定部１４２から判定結果が出力されたタイミングで装置データを更新するような構成であってもよい。
【００５７】
さらに、移動履歴処理部１４３は、移動履歴ＤＢ１３１に記憶された装置データを削除する場合、当該装置データにより特定されるＧＷ２００を示すポインタを、他のＧＷ２００に登録させる。例えば、移動履歴処理部１４３は、移動履歴ＤＢ１３１を参照し、削除される装置データに含まれるＴＳの直前及び直後のＴＳを含む装置データを特定する。そして、移動履歴処理部１４３は、特定された装置データにより特定されるＧＷ２００に対して、対象となるデバイスＩＤと、削除される装置データに含まれる装置ＩＤ及びＴＳと、後に説明するポインタの種別とを含むポインタ登録要求を送信する。
【００５８】
例えば、移動履歴処理部１４３が、図４の符号１００３に示す装置データを削除する場合について説明する。まず、移動履歴処理部１４３は、削除される装置データに含まれるＴＳ「１０：０２」の直前のＴＳである「９：４３」を含む装置データの装置ＩＤ「ＧＷ２」と、直後のＴＳである「１０：１４」を含む装置データの装置ＩＤ「ＧＷ６」とを特定する。
【００５９】
そして、移動履歴処理部１４３は、装置ＩＤが「ＧＷ２」であるＧＷ２００に対して、デバイスＩＤ「Ａ」と、削除される装置データに含まれる装置ＩＤ「ＧＷ７」及びＴＳ「１０：０２」と、ポインタの種別「Ｆポインタ」とを含むポインタ登録要求を送信する。また、移動履歴処理部１４３は、装置ＩＤが「ＧＷ６」であるＧＷ２００に対して、デバイスＩＤ「Ａ」と、削除される装置データに含まれる装置ＩＤ「ＧＷ７」及びＴＳ「１０：０２」と、ポインタの種別「Ｂポインタ」とを含むポインタ登録要求を送信する。
【００６０】
なお、移動履歴処理部１４３が、削除される装置データに対応するＧＷ２００に対してもポインタ登録要求を送信するような構成であってもよい。例えば、移動履歴処理部１４３は、削除される装置データに含まれる装置ＩＤ「ＧＷ７」により特定されるＧＷ２００に対して、デバイスＩＤ「Ａ」と、ＴＳ「１０：０２」と、Ｂポインタ「ＧＷ２」と、Ｆポインタ「ＧＷ６」とを含むポインタ登録要求を送信する。
【００６１】
また、移動履歴処理部１４３は、ＧＷ２００における判定結果に従って、移動履歴ＤＢ１３１から削除された装置データを、再び移動履歴ＤＢ１３１に登録する。移動履歴処理部１４３が、図５に示す例において削除された、図４の符号１００１に示す「ＧＷ１」に関する装置データを取得し、移動履歴ＤＢ１３１に再び登録する例について説明する。例えば、移動履歴処理部１４３は、ＧＷ２００ｂから「ＧＷ１」の装置ＩＤとＴＳとを含む装置データと、デバイスＩＤ「Ａ」との組み合わせを受信すると、ＴＳの順番に従って、受信した装置データを移動履歴ＤＢ１３１に登録する。
【００６２】
本実施例において、移動履歴処理部１４３は、新たに装置データを移動履歴ＤＢ１３１に登録する場合も、削除された装置データを移動履歴ＤＢ１３１に再び登録する場合も、同様の処理により登録することができる。また、上で述べたように、本実施例における移動履歴処理部１４３は、装置データに含まれるＴＳの順番に従って、受信した装置データを移動履歴ＤＢ１３１に登録する。これにより、センタ１００における既存の移動履歴処理部１４３が有する機能を変更することなく、削除された装置データを再び移動履歴ＤＢ１３１に登録することができる。
【００６３】
＜ＧＷの機能構成＞
図３の説明に戻って、ＧＷ２００は、記憶部２３０と、制御部２４０とを有する。記憶部２３０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部２３０は、デバイス情報ＤＢ２３１を有する。また、記憶部２３０は、例えば後に説明する「Ｎｐ」の閾値など、制御部２４０での処理に用いる各種情報を記憶する。
【００６４】
デバイス情報ＤＢ２３１は、ＧＷ２００が各デバイスから取得したセンサデータを含むデバイスデータを、センサデータの取得先である他のＧＷ２００を示すポインタと対応付けて記憶する。なお、デバイス情報ＤＢ２３１は、中継装置の記憶部の一例である。
【００６５】
デバイス情報ＤＢ２３１に記憶されるデータについて、図６を用いて説明する。図６は、ＧＷ２のデバイス情報ＤＢの一例を示す図である。図６に示すように、デバイス情報ＤＢ２３１は、「デバイスＩＤ」と、「タイムスタンプ」と、「センサデータ」と、「Ｂポインタ」と、「Ｆポインタ」と、「Ｎｐ」とを対応付けて記憶する。
【００６６】
図６において、「デバイスＩＤ」の欄及び「タイムスタンプ」の欄は、どの時刻に、どのデバイスからセンサデータを取得したかを記憶する。「センサデータ」の欄は、取得されたセンサデータを記憶する。例えば、図６の符号２００１は、ＧＷ２００ｂが、デバイスＩＤ「Ａ」のデバイス５００から、「９：４３」に、「２４．１℃」というセンサデータを取得したことを示す。
【００６７】
「Ｂポインタ」の欄には、対応するデバイスデータにより特定されるデバイス５００から、対応するＴＳに示す時刻の直前にセンサデータを取得したＧＷ２００を特定するポインタが記憶される。「Ｆポインタ」の欄には、対応するデバイスデータにより特定されるデバイス５００から、対応するＴＳに示す時刻の直後にセンサデータを取得したＧＷ２００を特定するポインタが記憶される。例えば、図６における符号２００３は、デバイスＩＤ「Ａ」のデバイス５００から「９：４３」の直前にセンサデータを取得したＧＷ２００の装置ＩＤは「ＧＷ１」であることを示す。また、ポインタが登録されていない場合、「Ｂポインタ」の欄及び「Ｆポインタ」の欄には「−」が記憶される。
【００６８】
「Ｎｐ」の欄は、当該Ｂポインタ又はＦポインタを指定するデータ取得要求が何回送信されたかというポインタの参照頻度を示す。例えば、図６における符号２００５は、符号２００３に示すＢポインタを指定するデータ取得要求が「５」回送信されたことを示す。同様に、図６の符号２０１３は、Ｆポインタ「ＧＷ７」を指定するデータ取得要求はまだ送信されていないことを示す。本実施例においては、図６に示すように、対応するＢポインタもＦポインタも格納されていない場合、「Ｎｐ」の欄には「−」が記憶される。なお、「Ｂポインタ」と「Ｆポインタ」のそれぞれについて、データ取得要求が送信された回数を個別に記憶するような構成であってもよい。
【００６９】
図３の説明に戻って、ＧＷ２００の制御部２４０は、例えば、ＣＰＵやＭＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部２４０は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしてもよい。
【００７０】
この制御部２４０は、センサデータ取得部２４１と、リクエスト応答部２４２と、ポインタ処理部２４３とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部２４０の内部構成は、図３に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、センサデータ取得部２４１、リクエスト応答部２４２及びポインタ処理部２４３は、プロセッサなどの電子回路の一例またはプロセッサなどが実行するプロセスの一例である。
【００７１】
センサデータ取得部２４１は、デバイス５００からセンサデータを取得する処理部である。センサデータ取得部２４１は、デバイス５００から取得したセンサデータを、当該デバイス５００のデバイスＩＤと、センサデータを取得した時刻を示すＴＳと対応付けて、デバイス情報ＤＢ２３１に記憶する。例えば、ＧＷ２００ｂのセンサデータ取得部２４１は、デバイスＩＤ「Ａ」のデバイスから「９：４３」に「２４．１℃」のセンサデータを取得した場合、図６の符号２００１に示すようなレコードをデバイス情報ＤＢ２３１に記憶する。なお、センサデータ取得部２４１は、取得部の一例である。
【００７２】
また、センサデータ取得部２４１は、各デバイス５００からセンサデータを最初に取得した際に、当該デバイス５００のデバイスＩＤと、デバイス情報ＤＢ２３１に記憶するＴＳとの組み合わせを、センタ１００に送信する。例えば、ＧＷ２００ｂのセンサデータ取得部２４１は、図６の符号２００１に示すようなセンサデータを取得した際は、センタ１００にデバイスＩＤ「Ａ」とＴＳ「９：４３」とを送信する。一方、センサデータ取得部２４１は、図６の符号２０１１に示すようなセンサデータを取得した際は、既にセンタ１００にデバイスＩＤとＴＳとを送信しているので、センタ１００にデバイスＩＤとＴＳとを送信しない。なお、センサデータ取得部２４１がセンタ１００にデバイスＩＤとＴＳとを送信するタイミングはこれに限られず、後の実施例で説明するような構成であってもよい。
【００７３】
リクエスト応答部２４２は、センタ１００又は他のＧＷ２００からデータ取得要求を受信した場合に、センサデータを取得して応答する処理部である。なお、リクエスト応答部２４２は、応答制御部、指示送信部及び削除部の一例である。
【００７４】
リクエスト応答部２４２は、例えば、センタ１００から、デバイスＩＤと対象時間帯を含むデータ取得要求を受信すると、デバイス情報ＤＢ２３１を参照する。そして、リクエスト応答部２４２は、当該デバイスＩＤと、当該対象時間帯に含まれるＴＳとにより特定されるデバイスデータをセンタ１００に応答する。
【００７５】
また、リクエスト応答部２４２は、当該デバイスデータに対応付けられて、他のＧＷ２００への問合せ先を示すポインタがデバイス情報ＤＢ２３１に記憶されている場合、ポインタにより特定されるＧＷ２００にセンタ１００から受信したデータ取得要求を転送する。そして、リクエスト応答部２４２は、例えば、他のＧＷ２００からデバイスデータを取得した場合、デバイス情報ＤＢ２３１から読み出したデバイスデータと、取得したデバイスデータとを併せてセンタ１００に送信する。また、リクエスト応答部２４２は、デバイス情報ＤＢ２３１に記憶された、データ取得要求を転送する際に参照したポインタに対応する「Ｎｐ」を１インクリメントする。
【００７６】
さらに、リクエスト応答部２４２は、センタ１００からではなく、他のＧＷ２００からデータ取得要求を受信した場合にも、センタ１００からデータ取得要求を受信した場合と同様の処理を行う。
【００７７】
例えば、ＧＷ２００ｂが、センタ１００からセンサデータのデータ取得要求を受信した場合について、図６乃至図８を用いて説明する。まず、デバイスＩＤ「Ａ」のデバイスから「９：３５」以降「１０：１４」より前の時間帯に取得されたセンサデータのデータ取得要求を受信した場合、リクエスト応答部２４２は、デバイス情報ＤＢ２３１を参照する。そして、リクエスト応答部２４２は、「９：４３」のＴＳと、デバイスＩＤ「Ａ」とに対応付けられたセンサデータを順次読み出す。
【００７８】
次に、リクエスト応答部２４２は、図６の符号２０１１に示すＴＳ「９：５９」のセンサデータに、符号２０１３に示すＦポインタ「ＧＷ７」が対応付けられているので、装置ＩＤが「ＧＷ７」であるＧＷ２００に、データ取得要求を転送する。この場合、リクエスト応答部２４２は、デバイス情報ＤＢ２３１からのデバイスデータの読み出しを終了する。また、リクエスト応答部２４２は、図６の符号２００１に示すＴＳ「９：４３」のセンサデータに、符号２００３に示すＢポインタ「ＧＷ１」が対応付けられているので、装置ＩＤが「ＧＷ１」であるＧＷ２００ａに、データ取得要求を転送する。
【００７９】
そして、リクエスト応答部２４２は、デバイス情報ＤＢ２３１から読み出したデバイスデータと、ＧＷ２００ａ及び装置ＩＤが「ＧＷ７」であるＧＷ２００から受信したデバイスデータとを、センタ１００に送信する。また、リクエスト応答部２４２は、例えば図６の符号２００５及び２０１３に示す「Ｎｐ」を１インクリメントし、それぞれ「６」及び「１」とする。
【００８０】
図３の説明に戻って、ポインタ処理部２４３は、デバイス情報ＤＢ２３１にポインタを登録し、又は削除する処理を行う処理部である。なお、ポインタ処理部２４３は、登録部の一例である。
【００８１】
まず、ポインタ処理部２４３は、センタ１００からポインタ登録要求を受信した場合、受信したポインタ登録要求に含まれるデバイスＩＤ、ＴＳ及びポインタ種別を参照して、デバイス情報ＤＢ２３１に記憶されたデバイスデータを特定する。例えば、ＧＷ２００ｂのポインタ処理部２４３が、デバイスＩＤ「Ａ」、ＴＳ「１０：０２」、及びポインタ種別「Ｆポインタ」を含むポインタ登録要求を受信した場合について説明する。まず、ポインタ処理部２４３は、デバイス情報ＤＢ２３１を参照し、「１０：０２」の直前のＴＳを含むデバイスデータを特定する。例えば、ポインタ処理部２４３は、図６に示すようなデバイス情報ＤＢ２３１を参照した場合、符号２０１１に示すような、デバイスＩＤ「Ａ」及びＴＳ「９：５９」を含むデバイスデータを特定する。
【００８２】
そして、ポインタ処理部２４３は、特定されたデバイスデータに、受信したポインタ登録要求に含まれる装置ＩＤをポインタ種別と対応付けて登録する。例えば、ＧＷ２のポインタ処理部２４３は、図６の符号２０１３に示すように、受信したポインタ登録要求に含まれる装置ＩＤ「ＧＷ７」を、「Ｆポインタ」としてデバイス情報ＤＢ２３１に登録する。
【００８３】
次に、ＧＷ２００ｂが、センタ１００から、デバイスＩＤ「Ａ」、ＴＳ「９：３１」及びポインタ種別「Ｂポインタ」を含むポインタ登録要求を受信した場合のポインタ処理部２４３による処理について説明する。まず、ポインタ処理部２４３は、デバイス情報ＤＢ２３１を参照し、デバイスＩＤ「Ａ」に対応するＴＳのうち、受信したポインタ登録要求に含まれるＴＳ「９：３１」の直後のＴＳ「９：４３」を特定する。そして、ＧＷ２のポインタ処理部２４３は、図６の符号２００１に示すＴＳ「９：４３」及びデバイスＩＤ「Ａ」と対応付けて、符号２００３に示すように、ポインタ登録要求に含まれる装置ＩＤ「ＧＷ１」を、Ｂポインタとしてデバイス情報ＤＢ２３１に登録する。
【００８４】
さらに、センタ１００において削除される装置ＩＤ「ＧＷ７」により特定されるＧＷ２００が、センタ１００からポインタ登録要求を受信した場合における、ＧＷ２００のポインタ処理部２４３による処理について、図７を用いて説明する。図７は、ＧＷ７のデバイス情報ＤＢの一例を示す図である。例えば、ポインタ処理部２４３は、図７の符号２１０１及び２１０３に示すように、受信したポインタ登録要求に含まれるデバイスＩＤ「Ａ」及びＴＳ「１０：０２」に対応付けて、Ｂポインタ「ＧＷ２」とＦポインタ「ＧＷ６」とを登録する。
【００８５】
また、ポインタ処理部２４３は、「Ｎｐ」に基づいて、「Ｎｐ」に対応するポインタ及びＴＳにより特定される装置データを、センタ１００に再び登録させるか否かを判定する。ポインタ処理部２４３は、例えば所定のタイミングで、デバイス情報ＤＢ２３１に記憶された「Ｎｐ」が、所定の閾値以上であるか否かを判定する。ポインタ処理部２４３は、「Ｎｐ」が所定の閾値以上であると判定した場合に、対応するポインタにより特定されるＧＷ２００からＴＳを取得し、当該ＧＷ２００の装置ＩＤと受信したＴＳとをセンタ１００に送信する。
【００８６】
例えば、ＧＷ２００ｂのデバイス情報ＤＢ２３１に記憶された、Ｂポインタ「ＧＷ１」の「Ｎｐ」が「５」であり、記憶部２３０に記憶された「Ｎｐ」の閾値が「３」である場合について説明する。この場合、ポインタ処理部２４３は、「Ｎｐ」が閾値以上であるので、「ＧＷ１」に関する装置データを再び登録すると判定する。この場合、ポインタ処理部２４３は、Ｂポインタに対応する装置ＩＤが「ＧＷ１」であるＧＷ２００ａに、ポインタ種別「Ｂポインタ」と、デバイスＩＤ「Ａ」、ＴＳ「９：４３」とを含むＴＳ取得要求を送信する。
【００８７】
そして、ポインタ処理部２４３は、ＧＷ２００ａからＴＳを受信すると、受信したＴＳと、ＴＳを送信したＧＷ２００の装置ＩＤと、デバイスＩＤとを、センタ１００に送信する。例えば、ポインタ処理部２４３は、上で述べたＴＳ取得要求に対する応答として、ＧＷ２００ａから、ＴＳ「９：３１」を受信した場合、装置ＩＤ「ＧＷ１」と、ＴＳ「９：３１」と、デバイスＩＤ「Ａ」とを、センタ１００に送信する。
【００８８】
さらに、ポインタ処理部２４３は、他のＧＷ２００からＴＳ取得要求を受信した場合、デバイス情報ＤＢ２３１を参照してＴＳを特定し、当該ＧＷ２００に応答する。例えば、装置ＩＤが「ＧＷ１」であるＧＷ２００ａのポインタ処理部２４３が、ＧＷ２００ｂから、デバイスＩＤ「Ａ」、ＴＳ「９：４３」、装置ＩＤ「ＧＷ２」及びポインタ種別「Ｂポインタ」を含むＴＳ取得要求を受信した場合について、図８を用いて説明する。図８は、ＧＷ１のデバイス情報ＤＢの一例を示す図である。まず、ポインタ処理部２４３は、図８に示すデバイス情報ＤＢ２３１を参照し、符号２２０１に示す、受信したＴＳの直前のＴＳ「９：４１」と対応付けられて登録された「Ｆポインタ」である装置ＩＤ「ＧＷ２」を特定する。次に、ポインタ処理部２４３は、デバイス情報ＤＢ２３１を参照し、図８の符号２２１１に示すような、デバイスＩＤ「Ａ」に対応付けられたＴＳのうち、最も早いＴＳ「９：３１」を特定し、ＧＷ２００ｂに送信する。なお、ポインタ処理部２４３は、受信したＴＳより前に、受信したデバイスＩＤと対応づけられて他のＦポインタ又はＢポインタが登録されている場合、最も早いＴＳの代わりに、当該ポインタの直後のＴＳを特定するような構成であってもよい。
【００８９】
また、ポインタ処理部２４３は、ＴＳをセンタ１００に送信した後に、デバイス情報ＤＢ２３１に登録されたポインタを削除するとともに、「Ｎｐ」を更新する。例えば、ＧＷ２のポインタ処理部２４３は、センタ１００に、デバイスＩＤ「Ａ」と、ＴＳ「９：４３」と、装置ＩＤ「ＧＷ１」とを送信した場合、図６の符号２００３に示すＢポインタ「ＧＷ１」を削除する。また、ポインタ処理部２４３は、図６の符号２００５に示すＮｐを「−」に更新する。なお、ポインタ処理部２４３が、センタ１００からポインタ削除指示を受信した後に、ポインタを削除するような構成であってもよい。
【００９０】
＜リクエスト処理の比較＞
移動履歴ＤＢ１３１の更新前後におけるリクエスト処理の違いについて、図９を用いて説明する。図９は、ポインタを用いたデータ取得処理の一例を示す図である。ここでは、上で述べたように、リクエスト処理部１４１が、デバイスＩＤ「Ａ」のデバイスから「９：３５」以降「１０：１５」以前に取得されたデータの取得要求を利用者端末９００から取得した場合の例について説明する。
【００９１】
例えば、リクエスト処理部１４１が、図４に示すような移動履歴ＤＢ１３１を参照する場合、上で述べたように、装置ＩＤが「ＧＷ１」、「ＧＷ２」、「ＧＷ７」又は「ＧＷ６」である各ＧＷ２００にデータ取得要求を送信する。リクエスト処理部１４１は、図９の符号３０００に示すように、例えば図９の符号３００１に示す部分のセンサデータをＧＷ２００ａに対して要求し、図９の符号３００３に示す部分のセンサデータを装置ＩＤが「ＧＷ７」であるＧＷに対して要求する。
【００９２】
一方、リクエスト処理部１４１が、図５に示すような移動履歴ＤＢ１３１を参照する場合、符号３０１１及び３０１３に示す装置データは、移動履歴ＤＢ１３１から削除されている。このため、リクエスト処理部１４１は、図９の符号３０１０に示すように、データ取得要求を、装置ＩＤが「ＧＷ７」であるＧＷ２００及び「ＧＷ１」であるＧＷ２００ａには送信しない。リクエスト処理部１４１は、図９の符号３０１０に示すように、データ取得要求を、装置ＩＤが「ＧＷ６」であるＧＷ２００及び「ＧＷ２」であるＧＷ２００ｂにのみ送信する。
【００９３】
この場合、データ取得要求を受信したＧＷ２００ｂのリクエスト応答部２４２は、図９の符号３０２０に示すようなデバイス情報ＤＢ２３１に記憶されたポインタを参照して、ＧＷ２００ａ及び装置ＩＤが「ＧＷ７」であるＧＷ２００に、データ取得要求を転送する。同様に、装置ＩＤが「ＧＷ６」であるＧＷ２００のリクエスト応答部２４２は、図９の符号３０４０に示すような、デバイス情報ＤＢ２３１に記憶されたポインタを参照することで、装置ＩＤが「ＧＷ７」であるＧＷ２００に、データ取得要求を転送できる。
【００９４】
このように、データ取得要求を受信したＧＷ２００のリクエスト応答部２４２は、デバイス情報ＤＢ２３１に記憶されたポインタを参照して、他のＧＷ２００に対してデータ取得を要求できる。これにより、センタ１００のリクエスト処理部１４１は、移動履歴ＤＢ１３１に装置データが記憶されていないＧＷ２００により取得されたセンサデータも、他のＧＷ２００を経由して取得することができる。
【００９５】
＜各処理の流れ＞
次に、本実施例におけるデータ管理システム１０におけるリクエスト処理の流れについて、図１０乃至図１２を用いて説明する。図１０は、リクエスト処理の一例を示すシーケンス図である。図１０においては、センタ１００からリクエストを受けた、装置ＩＤ「ＧＷ２」であるＧＷ２００ｂが、装置ＩＤ「ＧＷ１」であるＧＷ２００ａからデータを取得する構成について説明する。なお、以下に説明する例においては、センタ１００の移動履歴ＤＢ１３１においては、装置ＩＤ「ＧＷ２」の装置データが記憶されているが、装置ＩＤ「ＧＷ１」の装置データは既に削除されている。
【００９６】
まず、利用者端末９００は、センタ１００に、デバイスＩＤと対象時間帯とを特定するリクエストを送信する（ステップＳ１）。リクエストを受信したセンタ１００のリクエスト処理部１４１は、移動履歴ＤＢ１３１を参照し、受信したデバイスＩＤ及び対象時間帯に該当する装置データを特定する（ステップＳ５）。そして、リクエスト処理部１４１は、特定されたＧＷ２００に、デバイスＩＤと対象時間帯とを含むリクエストを送信する（ステップＳ１１）。また、リクエスト処理部１４１は、移動履歴ＤＢ１３１に登録された、特定された装置データの「Ｎｕ」値を１インクリメントする（ステップＳ１３）。
【００９７】
センタ１００からリクエストを受信したＧＷ２００ｂのリクエスト応答部２４２は、デバイス情報ＤＢ２３１を参照し、受信したデバイスＩＤ及び対象時間帯に含まれるデバイスデータを読み出す（ステップＳ１５）。また、リクエスト応答部２４２は、読み出したデバイスデータにポインタが対応付けられている場合、ポインタにより特定されるＧＷ２００ａに、デバイスＩＤ及び対象時間帯を含むリクエストを転送する（ステップＳ２１）。また、リクエスト応答部２４２は、デバイス情報ＤＢ２３１に登録された、特定された装置データの「Ｎｐ」値を１インクリメントする（ステップＳ２３）。
【００９８】
ＧＷ２００ｂから転送されたリクエストを受信したＧＷ２００ａのリクエスト応答部２４２は、デバイス情報ＤＢ２３１を参照し、受信したデバイスＩＤ及び対象時間帯に含まれるセンサデータ及びＴＳを読み出す（ステップＳ２５）。そして、ＧＷ２００ａのリクエスト応答部２４２は、読み出したセンサデータ及びＴＳをＧＷ２００ｂに送信する（ステップＳ２７）。
【００９９】
ＧＷ２００ａからセンサデータ及びＴＳを受信したＧＷ２００ｂのリクエスト応答部２４２は、受信したセンサデータ及びＴＳと、デバイス情報ＤＢ２３１から読み出したセンサデータ及びＴＳとをセンタ１００に送信する（ステップＳ３１）。センタ１００のリクエスト処理部１４１は、ＧＷ２００ｂから受信したセンサデータ及びＴＳを、利用者端末９００に送信する（ステップＳ４１）。このように、各ＧＷ２００においてポインタを保持することにより、センタ１００において一部の移動履歴を削除した場合においても、データ取得にかかるレスポンス速度の維持と記憶容量の削減とを両立できる。
【０１００】
次に、センタ１００におけるリクエスト処理について、図１１を用いて説明する。図１１は、センタにおけるリクエスト処理の一例を示すフローチャートである。まず、センタ１００のリクエスト処理部１４１は、利用者端末９００からデータ取得要求を受信したか否かを判定する（ステップＳ１０１）。リクエスト処理部１４１は、利用者端末９００からデータ取得要求を受信していない場合は（ステップＳ１０１：Ｎｏ）、データ取得要求を受信するまで待機する。
【０１０１】
リクエスト処理部１４１は、利用者端末９００からデータ取得要求を受信した場合（ステップＳ１０１：Ｙｅｓ）、移動履歴ＤＢ１３１を参照し、データ取得要求で特定されるデバイスＩＤ及び対象時間帯に基づいて、ＧＷ２００を特定する（ステップＳ１０３）。そして、リクエスト処理部１４１は、特定されたＧＷ２００に、デバイスＩＤ及び対象時間帯を含むデータ取得要求を送信する（ステップＳ１０５）。また、リクエスト処理部１４１は、特定されたＧＷ２００に対応する装置データの参照頻度「Ｎｕ」を１インクリメントする（ステップＳ１０７）。その後、リクエスト処理部１４１は、ＧＷ２００から応答データを受信したか否かを判定する（ステップＳ１１１）。リクエスト処理部１４１は、応答データを受信していない場合は（ステップＳ１１１：Ｎｏ）、応答データを受信するまで待機する。
【０１０２】
リクエスト処理部１４１は、ＧＷ２００から応答データを受信した場合（ステップＳ１１１：Ｙｅｓ）、受信した応答データを、利用者端末９００に送信する（ステップＳ１１３）。
【０１０３】
次に、各ＧＷ２００におけるリクエスト応答処理について、図１２を用いて説明する。図１２は、ＧＷにおけるリクエスト応答処理の一例を示すフローチャートである。まず、ＧＷ２００のリクエスト応答部２４２は、センタ１００又は他のＧＷ２００からデータ取得要求を受信したか否かを判定する（ステップＳ２０１）。ＧＷ２００のリクエスト応答部２４２は、データ取得要求を受信していない場合は（ステップＳ２０１：Ｎｏ）、データ取得要求を受信するまで待機する。
【０１０４】
リクエスト応答部２４２は、センタ１００又は他のＧＷ２００からデータ取得要求を受信した場合（ステップＳ２０１：Ｙｅｓ）、デバイス情報ＤＢ２３１を参照する。そして、リクエスト応答部２４２は、デバイス情報ＤＢ２３１が、受信したデータ取得要求に対応する全てのデバイスデータを保持しているか否かを判定する（ステップＳ２０３）。全てのデバイスデータを保持している場合（ステップＳ２０３：Ｎｏ）、ステップＳ２１３に移行する。
【０１０５】
デバイス情報ＤＢ２３１が保持していないデバイスデータがある場合（ステップＳ２０３：Ｙｅｓ）、リクエスト応答部２４２は、デバイス情報ＤＢ２３１に記憶されたポインタを参照して、前後のＧＷ２００を特定する（ステップＳ２０５）。そして、リクエスト応答部２４２は、受信したデータ取得要求を、特定された前後のＧＷ２００に転送する（ステップＳ２０７）。また、リクエスト応答部２４２は、特定されたＧＷ２００に対応するポインタの参照頻度「Ｎｐ」を１インクリメントする（ステップＳ２０９）。その後、リクエスト応答部２４２は、前後のＧＷ２００から応答データを受信したか否かを判定する（ステップＳ２１１）。リクエスト応答部２４２は、応答データを受信していない場合は（ステップＳ２１１：Ｎｏ）、応答データを受信するまで待機する。
【０１０６】
リクエスト応答部２４２は、前後のＧＷ２００から応答データを受信した場合（ステップＳ２１１：Ｙｅｓ）、全てのデバイスデータを取得したか否かを判定する（ステップＳ２１３）。リクエスト応答部２４２は、利用者端末９００から全てのデバイスデータを取得していない場合は（ステップＳ２１３：Ｎｏ）、全てのデバイスデータを取得するまで待機する。リクエスト応答部２４２は、全てのデバイスデータを取得した場合（ステップＳ２１３：Ｙｅｓ）、受信したデバイスデータと、デバイス情報ＤＢ２３１から読み出したデバイスデータとを用いて、応答データを生成する（ステップＳ２１５）。そして、リクエスト応答部２４２は、生成した応答データを、センタ１００に送信する（ステップＳ２１７）。
【０１０７】
次に、ＧＷ２００においてデバイスデータを記憶し、センタ１００において装置データを記憶する移動履歴更新処理について、図１３乃至図１７を用いて説明する。図１３は、移動履歴更新処理の一例を示すシーケンス図である。まず、ＧＷ２００のセンサデータ取得部２４１は、デバイス５００からセンサデータを受信すると（ステップＳ５１）、受信したセンサデータとＴＳとを、デバイスＩＤと対応付けてデバイス情報ＤＢ２３１に記憶する（ステップＳ５３）。
【０１０８】
また、センサデータ取得部２４１は、当該デバイス５００から過去にセンサデータを受信していない場合、デバイスＩＤ及びＴＳをセンタ１００に送信する（ステップＳ５５）。デバイスデータを受信したセンタ１００の移動履歴処理部１４３は、ＧＷ２００の装置ＩＤとＴＳとを含む装置データを、受信したデバイスＩＤに対応付けて、移動履歴ＤＢ１３１に記憶する（ステップＳ５７）。
【０１０９】
次に、センタ１００における移動履歴更新処理について、図１４を用いて説明する。図１４は、センタにおける移動履歴更新処理の一例を示すフローチャートである。まず、センタ１００のリクエスト処理部１４１は、ＧＷ２００からデバイスＩＤ及びＴＳを含む移動履歴を受信したか否かを判定する（ステップＳ３０１）。リクエスト処理部１４１は、移動履歴を受信した場合は（ステップＳ３０１：Ｙｅｓ）、受信したＴＳと、ＧＷ２００の装置ＩＤとを、デバイスＩＤに対応付けて移動履歴ＤＢ１３１に記憶する（ステップＳ３１１）。その後、ステップＳ３２１に移行する。
【０１１０】
リクエスト処理部１４１は、ＧＷ２００から移動履歴を受信しない場合（ステップＳ３０１：Ｎｏ）、所定の時間が経過したか否かを判定する（ステップＳ３２１）。リクエスト処理部１４１は、所定の時間が経過していない場合は（ステップＳ３２１：Ｎｏ）、所定の時間が経過するまで待機する。リクエスト処理部１４１は、所定の時間が経過した場合（ステップＳ３２１：Ｙｅｓ）、判定部１４２に、履歴データ削除処理の実行指示を出力する（ステップＳ３３１）。
【０１１１】
図１５は、センタにおける履歴データ削除処理の一例を示すフローチャートである。まず、センタ１００の判定部１４２は、「Ｎｕ」の閾値を決定する（ステップＳ８０１）。次に、判定部１４２は、移動履歴ＤＢ１３１を参照して、デバイスＩＤを選択し（ステップＳ８０３）、記憶されている装置データを選択する（ステップＳ８０５）。
【０１１２】
次に、判定部１４２は、選択された装置データに対応する「Ｎｕ」の値が、決定した閾値以上であるか否かを判定する（ステップＳ８１１）。「Ｎｕ」の値が閾値以上である場合（ステップＳ８１１：Ｎｏ）、ステップＳ８５１に移行する。一方、「Ｎｕ」の値が閾値未満である場合（ステップＳ８１１：Ｙｅｓ）、判定部１４２は、当該装置データを削除対象であると判定する判定結果を、移動履歴処理部１４３に出力する。判定結果の入力を受けた移動履歴処理部１４３は、移動履歴ＤＢ１３１から当該装置データを削除する（ステップＳ８４３）。その後、移動履歴処理部１４３は、削除される装置データにより特定されるＧＷ２００と、その直前及び直後のＧＷ２００とに、ポインタを送信する（ステップＳ８４５）。
【０１１３】
そして、判定部１４２は、デバイスＩＤに対応する全ての装置データについて処理が行われたか否かを判定する（ステップＳ８５１）。判定部１４２は、全ての装置データについて処理が行われていない場合は（ステップＳ８５１：Ｎｏ）、全ての装置データについて処理が行われるまで処理を繰り返す。判定部１４２は、デバイスＩＤに対応する全ての装置データについて処理が行われた場合（ステップＳ８５１：Ｙｅｓ）、移動履歴ＤＢ１３１に記憶された全てのデバイスＩＤについて処理が行われたか否かを判定する（ステップＳ８６１）。判定部１４２は、全てのデバイスＩＤについて処理が行われていない場合は（ステップＳ８６１：Ｎｏ）、全てのデバイスＩＤについて処理が行われるまで処理を繰り返す。判定部１４２は、全てのデバイスＩＤについて処理が行われた場合（ステップＳ８６１：Ｙｅｓ）、処理を終了する。
【０１１４】
移動履歴削除処理に伴うセンタ１００とＧＷ２００との処理の流れについて、図１６を用いて説明する。図１６は、移動履歴削除処理の一例を示すシーケンス図である。まず、センタ１００の移動履歴処理部１４３は、削除対象となるＧＷ２００を特定する（ステップＳ６１）。次に、移動履歴処理部１４３は、移動履歴ＤＢ１３１を参照し、特定されたＧＷ２００にポインタとなる装置ＩＤと、ポインタ種別と、デバイスＩＤと、ＴＳとを送信する（ステップＳ６３、６５、６７）。
【０１１５】
具体的には、移動履歴処理部１４３は、削除対象の装置ＩＤ「ＧＷ７」の直前に記憶されている装置ＩＤ「ＧＷ２」であるＧＷ２００ｂに、装置ＩＤ「ＧＷ７」と、ポインタ種別「Ｆポインタ」と、デバイスＩＤ「Ａ」と、ＴＳとを送信する（ステップＳ６３）。
【０１１６】
また、移動履歴処理部１４３は、削除対象の装置ＩＤ「ＧＷ７」であるＧＷ２００に、装置ＩＤ「ＧＷ６」及びポインタ種別「Ｆポインタ」と、デバイスＩＤ「Ａ」と、ＴＳとを送信する。この際、移動履歴処理部１４３は、削除対象の装置ＩＤ「ＧＷ７」であるＧＷ２００に、装置ＩＤ「ＧＷ２」及びポインタ種別「Ｂポインタ」も合わせて送信する（ステップＳ６５）。
【０１１７】
また、移動履歴処理部１４３は、削除対象の装置ＩＤ「ＧＷ７」の直後に記憶されている装置ＩＤ「ＧＷ６」であるＧＷ２００に、装置ＩＤ「ＧＷ７」と、ポインタ種別「Ｂポインタ」と、デバイスＩＤ「Ａ」と、ＴＳとを送信する（ステップＳ６７）。
【０１１８】
各ＧＷ２００のポインタ処理部２４３は、それぞれ受信した装置ＩＤを、デバイスＩＤ、ポインタ種別及びＴＳと対応付けて、Ｆポインタ又はＢポインタとしてデバイス情報ＤＢ２３１に記憶する（ステップＳ７３、Ｓ７５、Ｓ７７）。
【０１１９】
次に、ＧＷ２００におけるデバイスデータ更新処理について、図１７を用いて説明する。図１７は、ＧＷにおけるデバイスデータ更新処理の一例を示すフローチャートである。まず、ＧＷ２００のセンサデータ取得部２４１は、デバイス５００からセンサデータを受信したか否かを判定する（ステップＳ４０１）。センサデータ取得部２４１は、センサデータを受信すると（ステップＳ４０１：Ｙｅｓ）、デバイス情報ＤＢ２３１にセンサデータとデバイスＩＤとＴＳとを記憶する（ステップＳ４０３）。一方、デバイスデータを受信しない場合（ステップＳ４０１：Ｎｏ）、ステップＳ４１１に移行する。
【０１２０】
センサデータを受信したセンサデータ取得部２４１は、受信したデバイスＩＤがデバイス情報ＤＢ２３１に登録されているか否かを判定する（ステップＳ４０５）。リクエスト処理部１４１は、センサデータ取得部２４１は、デバイスＩＤが登録されていない場合（ステップＳ４０５：Ｙｅｓ）、センタ１００にデバイスＩＤとＴＳとを含む移動履歴を送信する（ステップＳ４０７）。一方、デバイスＩＤが登録されている場合（ステップＳ４０５：Ｎｏ）、ステップＳ４１１に移行する。
【０１２１】
次に、センサデータ取得部２４１は、センタ１００からポインタを受信したか否かを判定する（ステップＳ４１１）。センサデータ取得部２４１は、ポインタを受信した場合（ステップＳ４１１：Ｙｅｓ）、受信したポインタをデバイス情報ＤＢ２３１に登録する（ステップＳ４１３）。一方、ポインタを受信しない場合（ステップＳ４１１：Ｎｏ）、ステップＳ４２１に移行する。
【０１２２】
次に、センサデータ取得部２４１は、他のＧＷ２００からＴＳ取得要求を受信したか否かを判定する（ステップＳ４２１）。センサデータ取得部２４１は、ＴＳ取得要求を受信した場合（ステップＳ４２１：Ｙｅｓ）、デバイス情報ＤＢ２３１を参照して、ＴＳ取得要求に対応するＴＳを他のＧＷ２００に応答する（ステップＳ４２３）。一方、ＴＳ取得要求を受信しない場合（ステップＳ４２１：Ｎｏ）、ステップＳ４３１に移行する。
【０１２３】
その後、センサデータ取得部２４１は、所定の時間が経過したか否かを判定する（ステップＳ４３１）。センサデータ取得部２４１は、所定の時間が経過していない場合は（ステップＳ４３１：Ｎｏ）、所定の時間が経過するまで待機する。センサデータ取得部２４１は、所定の時間が経過した場合（ステップＳ４３１：Ｙｅｓ）、ポインタ更新処理を実行する（ステップＳ４４１）。
【０１２４】
次に、ＧＷ２００におけるポインタ更新処理について説明する。図１８は、ＧＷにおけるポインタ更新処理の一例を示すフローチャートである。まず、ＧＷ２００のポインタ処理部２４３は、デバイス情報ＤＢ２３１を参照し、ポインタを選択する（ステップＳ７０１）。次に、ポインタ処理部２４３は、選択されたポインタの「Ｎｐ」の値が、所定の閾値以上であるか否かを判定する（ステップＳ７１１）。「Ｎｐ」の値が所定の閾値未満である場合（ステップＳ７１１：Ｎｏ）、ステップＳ７３１に移行する。
【０１２５】
「Ｎｐ」の値が所定の閾値以上である場合（ステップＳ７１１：Ｙｅｓ）、ポインタ処理部２４３は、ポインタにより特定される他のＧＷ２００に、ＴＳ取得要求を送信する（ステップＳ７１３）。その後、ポインタ処理部２４３は、当該ＧＷ２００からＴＳを受信したか否かを判定する（ステップＳ７２１）。ポインタ処理部２４３は、ＴＳを受信していないと判定した場合（ステップＳ７２１：Ｎｏ）、ＴＳを受信するまで待機する。
【０１２６】
ポインタ処理部２４３は、他のＧＷ２００からＴＳを受信した場合（ステップＳ７２１：Ｙｅｓ）、受信したＴＳを、当該ＧＷ２００の装置ＩＤとデバイスＩＤと対応付けて、センタ１００に送信する（ステップＳ７２３）。その後、ポインタ処理部２４３は、当該ポインタをデバイス情報ＤＢ２３１から削除する（ステップＳ７２５）。そして、ポインタ処理部２４３は、デバイス情報ＤＢ２３１に記憶された全てのポインタについて処理が行われたか否かを判定する（ステップＳ７３１）。ポインタ処理部２４３は、全てのポインタについて処理が行われていない場合は（ステップＳ７３１：Ｎｏ）、全てのポインタについて処理が行われるまで処理を繰り返す。ポインタ処理部２４３は、全てのポインタについて処理が行われた場合（ステップＳ７３１：Ｙｅｓ）、処理を終了する。
【０１２７】
図１８に示すようなポインタ更新処理の結果を受けて、センタ１００の移動履歴ＤＢ１３１に、デバイス５００のＧＷ２００間における移動履歴を示す装置データが再登録される。図１９は、移動履歴再登録処理の一例を示すシーケンス図である。図１９においては、センタ１００の移動履歴ＤＢ１３１に、ＧＷ２の装置データは登録されているが、ＧＷ７の装置データは削除されている例について説明する。
【０１２８】
まず、ＧＷ２のポインタ処理部２４３は、ポインタに対応するデバイスＩＤとＴＳとを指定するＴＳ取得要求を送信する（ステップＳ８１）。ＴＳ取得要求を受信したＧＷ７のポインタ処理部２４３は、受信したデバイスＩＤ及びＴＳに対応するＴＳをＧＷ２に送信する（ステップＳ８３）。
【０１２９】
ＧＷ７からＴＳを受信したＧＷ２のポインタ処理部２４３は、ＧＷ７の装置ＩＤと、デバイスＩＤと、受信したＴＳとを含む移動履歴を、センタ１００に送信する（ステップＳ８５）。また、ＧＷ２のポインタ処理部２４３は、ＴＳ取得要求に対応するポインタを、デバイス情報ＤＢ２３１から削除する（ステップＳ８７）。
【０１３０】
センタ１００の移動履歴処理部１４３は、ＧＷ２から移動履歴を受信すると、受信した装置ＩＤとＴＳとを、受信したデバイスＩＤと対応付けて、移動履歴ＤＢ１３１に再び登録する（ステップＳ８９）。
【０１３１】
以上述べたような移動履歴再登録処理において、センタ１００の移動履歴処理部１４３は、通常の移動履歴更新処理の際と同様の移動履歴データを受信し、同様の処理により受信した移動履歴データを移動履歴ＤＢ１３１に登録することができる。
【０１３２】
以上の処理を行うことにより、センタ１００は、デバイス５００のＧＷ間における移動履歴データを削除した場合においても、他のＧＷ２００が記憶するポインタに基づいて、デバイスデータを保持するＧＷ２００からデバイスデータを取得することができる。さらに、本実施例によれば、移動履歴データを削除した場合においても、その後のデバイスデータの参照頻度に応じて移動履歴データを再登録できるので、データ取得にかかるレスポンス速度の低下を抑止できる。
【実施例２】
【０１３３】
実施例１において、センタ１００の判定部１４２が装置データを削除するか否かの判定に、当該装置データの参照頻度の閾値を用いる構成について説明したが、判定部１４２が用いる閾値はこれに限られない。例えば、判定部１４２が、当該装置データを移動履歴ＤＢ１３１から削除するか否かを判定する場合において、当該装置データにより特定されるセンサデータを取得する際に経由するＧＷ２００のホップ数についての閾値を用いて判定処理を行うこともできる。なお、本実施例は、図３に示すような、実施例１における機能構成と同様の構成により実現できるので、機能構成についての詳細な説明は省略する。
【０１３４】
＜ホップ数を用いた判定処理＞
例えば、ホップ数「ｎ」の閾値が「２」である場合、判定部１４２は、装置データを削除した場合においてセンサデータを取得する際に２つ以上のＧＷをホップすることになるか否かを判定する。センサデータを取得する際に２つ以上のＧＷをホップすることになる場合、判定部１４２は、当該装置データを削除対象としないと判定し、移動履歴処理部１４３に指示を出力する。
【０１３５】
例えば、図４に示すような移動履歴ＤＢ１３１において、隣接するＧＷ２００へのホップ数「ｎ」は、それぞれ「１」である。すなわち、図５に示すように、装置ＩＤ「ＧＷ７」であるＧＷ２００へのホップ数「ｎ」は、装置ＩＤ「ＧＷ２」であるＧＷ２００ｂからも、装置ＩＤ「ＧＷ６」であるＧＷ２００からも、それぞれ「１」である。この場合、判定部１４２は、「ｎ」が閾値「２」未満であるので、図５に示すように、移動履歴ＤＢ１３１から装置ＩＤ「ＧＷ７」に対応する装置データを削除すると判定する。
【０１３６】
一方、図４に示すような移動履歴ＤＢ１３１において、装置ＩＤ「ＧＷ２」のＧＷ２００ｂから装置ＩＤ「ＧＷ９」へのホップ数「ｎ」は「３」である。この場合、判定部１４２は、「ｎ」が閾値「２」以上であるので、図５に示すような移動履歴ＤＢ１３１においては、装置ＩＤ「ＧＷ６」に対応する装置データは削除しないと判定する。
【０１３７】
判定部１４２がホップ数を用いて履歴データを削除するか否かを判定する構成について、図２０を用いて説明する。図２０は、実施例２における、センタにおける履歴データ削除処理の一例を示すフローチャートである。なお、以下に説明する点を除き、図２０において、図１５と同じ符号を付した処理は、図１５における処理と同様であるので説明を省略する。
【０１３８】
判定部１４２は、ステップＳ８１１において、「Ｎｕ」の値が閾値未満であると判定された場合（ステップＳ８１１：Ｙｅｓ）、選択された装置データを候補リストに記憶する（ステップＳ８１３）。一方、「Ｎｕ」の値が閾値以上である場合（ステップＳ８１１：Ｎｏ）、ステップＳ８２１に移行する。
【０１３９】
次に、判定部１４２は、全ての装置データについて、「Ｎｕ」の値が閾値以上か否かを判定する処理を完了したか否かを判定する（ステップＳ８２１）。判定部１４２は、全ての装置データについて処理を完了していない場合は（ステップＳ８２１：Ｎｏ）、未処理の装置データについて判定する処理を繰り返す。判定部１４２は、全ての装置データについて判定する処理を完了した場合（ステップＳ８２１：Ｙｅｓ）、候補リストに記憶された装置データを選択する（ステップＳ８３１）。
【０１４０】
次に、判定部１４２は、選択された装置データを削除した場合における、移動履歴ＤＢ１３１に記憶されたその他の装置データにより特定されるＧＷ２００から選択された装置データにより特定されるＧＷ２００へのホップ数「ｎ」を取得する（ステップＳ８３３）。なお、ＧＷ２００間のホップ数は、例えば公知の「ｔｒａｃｅｒｏｕｔｅ」と呼ばれるコマンドを実行することにより取得できるが、これに限られず、例えば、各ＧＷ２００が他のＧＷ２００へのホップ数を記憶するテーブルを参照するような構成であってもよい。
【０１４１】
次に、判定部１４２は、ホップ数「ｎ」が、「ｎ」の閾値未満であるか否かを判定する（ステップＳ８４１）。ホップ数「ｎ」が閾値未満である場合（ステップＳ８４１：Ｙｅｓ）、判定部１４２は、移動履歴ＤＢ１３１から、選択された装置データを削除する（ステップＳ８４３）。
【０１４２】
一方、ホップ数「ｎ」が閾値以上である場合（ステップＳ８４１：Ｎｏ）、判定部１４２は、装置データを削除することなく、ステップＳ８５１に移行する。すなわち、アクセス数「Ｎｕ」が閾値未満である装置データであっても、「ｎ」の値が閾値以上である装置データは、履歴データ削除の対象から除外される。
【０１４３】
その後、判定部１４２は、候補リスト中の全ての装置データを処理したか否かを判定する（ステップＳ８５１）。判定部１４２は、全ての装置データを処理していない場合は（ステップＳ８５１：Ｎｏ）、未処理の装置データについて処理を繰り返す。判定部１４２は、候補リスト中の全ての装置データについて処理を完了した場合（ステップＳ８５３：Ｙｅｓ）、ステップＳ８６１に移行する。
【０１４４】
以上の処理を行うことにより、センタ１００は、移動履歴ＤＢ１３１に記憶された装置データを削除した場合におけるホップ数「ｎ」の増加により、ＧＷ２００からセンサデータを取得する際のレスポンス時間が増加することを防ぐことができる。
【０１４５】
なお、判定部１４２が、ホップ数「ｎ」の閾値の代わりに、各ＧＷ２００が他のＧＷ２００からセンサデータを取得する際のレスポンス時間を用いて判定処理を行うような構成であってもよい。また、Ｆポインタを用いたホップ数「ｎ」と、Ｂポインタを用いたホップ数「ｎ」とをそれぞれ取得し、両方のホップ数「ｎ」が閾値未満である場合に限り、装置データを削除対象とするような構成であってもよい。
【実施例３】
【０１４６】
＜センタ側で「Ｎｐ」値を記憶する構成＞
実施例１においては、各ＧＷ２００のデバイス情報ＤＢ２３１に記憶されたポインタを用いてデータ取得要求が転送された回数「Ｎｐ」を、ＧＷ２００がデバイス情報ＤＢ２３１に記憶する構成について説明したが、これに限られない。例えば、ＧＷ２００ではなく、センタ１００が「Ｎｐ」を記憶するような構成とすることもできる。以下、本実施例においては、センタ１００が「Ｎｐ」を記憶する構成について説明する。なお、本実施例における機能構成は、図３に示すような実施例１における機能構成に加えて、センタ１００の記憶部１３０が、ポインタ利用頻度ＤＢ１３２をさらに有する。
【０１４７】
本実施例における各ＤＢの一例について、図２１乃至図２３を用いて説明する。図２１は、実施例３における、センタの移動履歴ＤＢの一例を示す図である。本実施例における移動履歴ＤＢ１３１は、「装置ＩＤ」と、「タイムスタンプ」と、「Ｎｕ」とを、符号４０００に示す「デバイスデータＩＤ」と対応付けて記憶する点が、図４に示すような実施例１における移動履歴ＤＢ１３１とは異なる。
【０１４８】
デバイスデータＩＤは、センサデータに対応するデバイスＩＤ及びＴＳの組み合わせを識別する情報である。例えば、符号４００１に示すように、装置ＩＤ「ＧＷ２」であるＧＷ２００ｂが「デバイスＡ」から「９：４３」に取得したセンサデータには、デバイスデータＩＤ「６」が付与される。
【０１４９】
次に、ポインタ利用頻度ＤＢ１３２の一例について説明する。図２２は、実施例３における、センタのポインタ利用頻度ＤＢの一例を示す図である。図２２に示すように、ポインタ利用頻度ＤＢ１３２は、「装置ＩＤ」と、「ポインタ種別」と、「Ｎｐ」とを、デバイスデータＩＤに対応付けて記憶する。図２２において、符号４１０１に示すレコードは、図２１の符号４００１に示すデバイスデータに対応するポインタへのアクセス回数「Ｎｐ」を記憶する。図２２の符号４１０３は、デバイスデータＩＤに対応する、装置ＩＤ「ＧＷ２」であるＧＷ２００ｂに記憶された「Ｂポインタ」を用いて、データ取得要求が「５」回転送されたことを示す。
【０１５０】
次に、本実施例における、ＧＷ２００のデバイス情報ＤＢ２３１の一例について説明する。図２３は、実施例３における、ＧＷ２のデバイス情報ＤＢの一例を示す図である。図２３に示すように、本実施例におけるデバイス情報ＤＢ２３１は、「デバイスＩＤ」と、「タイムスタンプ」と、「センサデータ」と、「Ｂポインタ」と、「Ｆポインタ」とを、「デバイスデータＩＤ」に対応付けて記憶する。一方、本実施例におけるデバイス情報ＤＢ２３１は、ポインタへのアクセス回数「Ｎｐ」を記憶しない点が、実施例１におけるデバイス情報ＤＢ２３１とは異なる。
【０１５１】
図２３の符号４２０１に示すように、デバイスデータＩＤ「６」には、Ｂポインタ「ＧＷ１」が対応付けられている。すなわち、図２２の符号４１０３に示すＮｐ「５」は、装置ＩＤ「ＧＷ２」のＧＷ２００ｂが記憶するＢポインタ「ＧＷ１」を用いてデータ取得要求が転送された回数を示す。
【０１５２】
次に、本実施例における各処理部における処理のうち、実施例１と異なる処理について説明する。まず、センタ１００の移動履歴処理部１４３は、実施例１において説明した各処理に加えて、各ＧＷ２００から、ポインタを用いてデータ取得要求が転送されたことの通知を受信し、ポインタ利用頻度ＤＢ１３２に記憶された「Ｎｐ」を１インクリメントする。
【０１５３】
また、移動履歴処理部１４３は、ポインタ利用頻度ＤＢ１３２に記憶されたＮｐが閾値以上であるか否かを判定し、閾値以上であるＮｐに対応するデバイスデータＩＤにより特定されるＧＷ２００に、ＴＳ取得要求を送信する。そして、ＧＷ２００からＴＳと装置ＩＤとデバイスＩＤとを含む移動履歴を受信すると、受信したＴＳ及び装置ＩＤを移動履歴ＤＢ１３１に再登録するとともに、ポインタ利用頻度ＤＢ１３２に記憶された、デバイスデータＩＤに対応するレコードを削除する。また、移動履歴処理部１４３は、ＧＷ２００にポインタ削除指示を送信する。
【０１５４】
本実施例において、各ＧＷ２００のリクエスト応答部２４２は、「Ｎｐ」を１インクリメントする処理に代えて、ポインタを用いてデータ取得要求が転送されたことの通知をセンタ１００に送信する。また、各ＧＷ２００のポインタ処理部２４３は、センタ１００からＴＳ取得要求を受信すると、デバイスデータＩＤ及びポインタ種別によりポインタを特定して、ポインタに対応する他のＧＷ２００にＴＳ取得要求を送信する。また、ポインタ処理部２４３は、センタ１００からポインタ削除指示を受信した後に、デバイス情報ＤＢ２３１に登録されたポインタを削除する。例えば、ＧＷ２のポインタ処理部２４３は、センタ１００から、デバイスＩＤ「Ａ」と、ＴＳ「９：４３」と、装置ＩＤ「ＧＷ１」とを含むポインタ削除指示を受信した場合、図２３の符号４２０１に示すＢポインタ「ＧＷ１」を削除する。なお、センタ１００がＧＷ２００にポインタ削除要求を送信せず、ポインタ処理部２４３が、ＴＳをセンタ１００に送信した後に、ポインタを削除するような構成であってもよい。
【０１５５】
＜処理の流れ＞
次に、本実施例における処理について、図２４乃至図２７を用いて説明する。図２４は、実施例３におけるリクエスト処理の一例を示すシーケンス図である。なお、以下に説明する点を除き、図２４において、図１０と同じ符号を付した処理は、図１０における処理と同様であるので説明を省略する。また、図１３に示すような移動履歴更新処理、及び図１６に示すような移動履歴削除処理については、本実施例においても実施例１と同様の処理を行うので、説明を省略する。
【０１５６】
装置ＩＤ「ＧＷ２」であるＧＷ２００ｂのリクエスト応答部２４２は、ステップＳ２１においてリクエストを送信する際に用いたポインタに対応するデバイスデータＩＤを含む応答データを、センタ１００に送信する（ステップＳ１０３１）。
【０１５７】
応答データを受信したセンタ１００の移動履歴処理部１４３は、ポインタ利用頻度ＤＢ１３２に記憶された、受信したデバイスデータＩＤに対応する「Ｎｐ」を１インクリメントする（ステップＳ１０３３）。
【０１５８】
次に、本実施例における移動履歴の再登録について、図２５を用いて説明する。図２５は、実施例３における移動履歴再登録処理の一例を示すシーケンス図である。なお、以下に説明する点を除き、図２５において、図１９と同じ符号を付した処理は、図１９における処理と同様であるので説明を省略する。
【０１５９】
まず、センタ１００の移動履歴処理部１４３は、装置ＩＤ「ＧＷ２」であるＧＷ２００ｂに対して、デバイスデータＩＤとポインタ種別とを含むＴＳ取得要求を送信する（ステップＳ１０７１）。
【０１６０】
ＴＳ取得要求を受信したＧＷ２００ｂのポインタ処理部２４３は、受信したデバイスデータＩＤ及びポインタ種別に対応するポインタを特定する（ステップＳ１０７５）。本実施例においては、特定されたポインタに対応する装置ＩＤ「ＧＷ７」のＧＷ２００に、ＴＳ取得要求を送信する。その後、ポインタ処理部２４３は、センタ１００からポインタ削除指示を受信した後に（ステップＳ１０８６）、ポインタを削除する。
【０１６１】
センタ１００の移動履歴処理部１４３は、ＧＷ２００ｂから移動履歴を受信した場合、ＧＷ２００ｂにポインタ削除指示を送信するとともに、ポインタ利用頻度ＤＢ１３２に記憶された「Ｎｐ」を１インクリメントする（ステップＳ１０９１）。
【０１６２】
次に、図２５に示す移動履歴再登録処理のうち、センタ１００における処理について、図２６を用いて説明する。図２６は、実施例３における、センタにおける移動履歴再登録処理の一例を示すフローチャートである。まず、移動履歴処理部１４３は、ポインタ利用頻度ＤＢ１３２に記憶されたデバイスデータＩＤを選択する（ステップＳ１３０１）。次に、移動履歴処理部１４３は、デバイスデータＩＤに対応して記憶されたＮｐが、「Ｎｐ」の閾値以上であるか否かを判定する（ステップＳ１３１１）。Ｎｐが閾値未満であると判定された場合（ステップＳ１３１１：Ｎｏ）、ステップＳ１３３１に移行する。
【０１６３】
Ｎｐが閾値以上である場合（ステップＳ１３１１：Ｙｅｓ）、移動履歴処理部１４３は、移動履歴ＤＢ１３１を参照して、デバイスデータＩＤに対応するＧＷ２００を特定し、ＧＷ２００にＴＳ取得要求を送信する（ステップＳ１３１３）。その後、ＧＷ２００から移動履歴を受信したか否かを判定する（ステップＳ１３２１）。移動履歴処理部１４３は、移動履歴を受信していない場合は（ステップＳ１３２１：Ｎｏ）、移動履歴を受信するまで待機する。
【０１６４】
移動履歴処理部１４３は、ＧＷ２００から移動履歴を受信した場合（ステップＳ１３２１：Ｙｅｓ）、受信した移動履歴に含まれる装置ＩＤとＴＳとを、受信したデバイスＩＤに対応付けて、移動履歴ＤＢ１３１に再登録する（ステップＳ１３２３）。また、移動履歴処理部１４３は、ＧＷ２００に、ポインタ削除指示を送信する（ステップＳ１３２５）。その後、移動履歴処理部１４３は、ポインタ利用頻度ＤＢ１３２に記憶された全てのデバイスデータＩＤについて、ステップＳ１３０１に戻って処理したか否かを判定する（ステップＳ１３３１）。移動履歴処理部１４３は、全てのデバイスデータＩＤについて処理を完了していない場合は（ステップＳ１３３１：Ｎｏ）、未処理のデバイスデータＩＤについて処理を繰り返す。その後、移動履歴処理部１４３は、全てのデバイスデータＩＤについて処理を完了すると（ステップＳ１３３１：Ｙｅｓ）、処理を終了する。
【０１６５】
次に、図２５に示す移動履歴再登録処理のうち、ＧＷ２００における処理について、図２７を用いて説明する。図２７は、実施例３における、ＧＷにおけるポインタ更新処理の一例を示すフローチャートである。まず、ポインタ処理部２４３は、センタ１００からＴＳ取得要求を受信したか否かを判定する（ステップＳ１４０１）。ポインタ処理部２４３は、ＴＳ取得要求を受信していない場合は（ステップＳ１４０１：Ｎｏ）、ＴＳ取得要求を受信するまで待機する。ポインタ処理部２４３は、センタ１００からＴＳ取得要求を受信すると（ステップＳ１４０１：Ｙｅｓ）、デバイス情報ＤＢ２３１を参照してＧＷ２００を特定して、ＴＳ取得要求を送信する（ステップＳ１４１３）。その後、ポインタ処理部２４３は、特定されたＧＷ２００からＴＳを受信したか否かを判定する（ステップＳ１４２１）。ポインタ処理部２４３は、ＴＳを受信していない場合は（ステップＳ１４２１：Ｎｏ）、ＴＳを受信するまで待機する。
【０１６６】
ポインタ処理部２４３は、ＴＳを受信した場合（ステップＳ１４２１：Ｙｅｓ）、受信したＴＳと、特定されたＧＷ２００の装置ＩＤと、デバイスＩＤとを、センタ１００に送信する（ステップＳ１４２３）。その後、ポインタ処理部２４３は、センタ１００からポインタ削除指示を受信したか否かを判定する（ステップＳ１４２４）。ポインタ処理部２４３は、ポインタ削除指示を受信していない場合は（ステップＳ１４２４：Ｎｏ）、ポインタ削除指示を受信するまで待機する。
【０１６７】
ポインタ処理部２４３は、ポインタ削除指示を受信した場合（ステップＳ１４２４：Ｙｅｓ）、デバイス情報ＤＢ２３１に記憶されたポインタを削除し（ステップＳ１４２５）、処理を終了する。
【０１６８】
以上説明したような処理により、ポインタへのアクセス回数「Ｎｐ」をセンタ１００において保持するような構成においても、データ取得にかかるレスポンス速度の維持と記憶容量の削減とを両立するように、装置データを削除できる。
【実施例４】
【０１６９】
さて、これまで本発明の実施例について説明したが、本発明は上述した各実施例以外にも、種々の異なる形態にて実施されてよいものである。例えば、図１０乃至図２０及び図２４乃至図２７に示す各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
【０１７０】
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１７１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、センタ１００において、判定部１４２と移動履歴処理部１４３とを統合するような構成であってもよい。また、ＧＷ２００において、デバイスのポインタと、デバイスから取得したセンサデータとを、別々のＤＢに記憶するような構成であってもよい。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１７２】
＜データ取得要求のデータ構成＞
なお、各実施例において、利用者端末９００が、デバイスＩＤの代わりに、住所等、センタ１００においてデバイスＩＤを特定できるその他の情報を含むデータ取得要求を送信するような構成であってもよい。なお、データ取得システム１に含まれるデバイス５００が１台だけであるような構成においては、利用者端末９００及びセンタ１００が、データ取得要求においてデバイスＩＤを特定しないような構成とすることもできる。
【０１７３】
また、利用者端末９００は、対象時間帯の指定を含まないデータ取得要求を送信するような構成であってもよい。例えば、利用者端末９００が、対象時間帯の代わりに、センサデータが取得された時刻の指定を含むデータ取得要求を送信することもできる。この場合において、センタ１００は、利用者端末９００から受信した情報に基づいてデバイスＩＤを特定し、各ＧＷ２００に、特定されたデバイスＩＤと対象時刻とを含むデータ取得要求を送信する。また、データ取得要求を受信した各ＧＷ２００が、対象時刻と同一時刻に対応するデバイスデータがデバイス情報ＤＢ２３１に記憶されていない場合、対象時刻の直前又は直後の時刻に対応するデバイスデータを応答するような構成であってもよい。
【０１７４】
＜ポインタを用いたデータ取得＞
なお、図６乃至図８に示す例において、デバイス情報ＤＢ２３１には、ポインタとして装置ＩＤが記憶されるが、これに限らない。例えば、デバイス情報ＤＢ２３１に、ＧＷ２００のＩＰアドレスやＭＡＣアドレスなど、アクセス先のＧＷ２００を特定できるその他の情報が記憶されるような構成であってもよい。また、センタ１００の移動履歴ＤＢ１３１に装置データが再び登録された場合においても、デバイス情報ＤＢ２３１から装置データに対応するポインタを削除しないような構成であってもよい。
【０１７５】
また、リクエスト処理部１４１が図５に示すような移動履歴ＤＢ１３１を参照した場合、「１０：０２」以降「１０：１４」より前の時間帯を含むデータ取得要求をＧＷ２００ｂではなく装置ＩＤが「ＧＷ６」であるＧＷ２００に送信するような構成であってもよい。また、リクエスト処理部１４１が、「１０：０２」以降「１０：１４」より前の時間帯を含むデータ取得要求をＧＷ２００ｂと装置ＩＤが「ＧＷ６」であるＧＷ２００との両方に送信するような構成であってもよい。例えばＧＷ２００ｂはデバイス情報ＤＢ２３１の「Ｆポインタ」を用いることで、また装置ＩＤが「ＧＷ６」であるＧＷ２００はデバイス情報ＤＢ２３１の「Ｂポインタ」を用いることで、それぞれ装置ＩＤが「ＧＷ７」であるＧＷ２００を特定することができる。すなわち、いずれのＧＷ２００も、各ポインタを用いることで、装置ＩＤが「ＧＷ７」であるＧＷ２００からセンサデータを取得できるためである。
【０１７６】
さらに、各ＧＷ２００のデバイス情報ＤＢ２３１が、ＦポインタとＢポインタとのいずれか一方だけを記憶するような構成であってもよい。例えば、リクエスト処理部１４１が、「１０：０２」以降「１０：１４」より前の時間帯を含むデータ取得要求を、装置ＩＤが「ＧＷ６」であるＧＷ２００には送信せず、装置ＩＤが「ＧＷ２」であるＧＷ２００ｂにのみ送信するような構成であってもよい。
【０１７７】
＜リクエストの対象時間帯変更＞
なお、リクエスト応答部２４２が、データ取得要求を転送する場合に、受信したデータ取得要求に含まれる対象時間帯を変更するような構成であってもよい。例えば、「９：４３」以降のデバイスデータはＧＷ２００ｂが保持しているので、リクエスト応答部２４２が、ＧＷ２００ａにデータ取得要求を転送する際、対象時間帯を「９：３５」以降「９：４３」より前の時間帯に変更するような構成であってもよい。
【０１７８】
＜ＴＳ再登録＞
また、実施例１においては、センタ１００の移動履歴処理部１４３が、例えばＧＷ２００ａの装置データを再び登録する際に、ＧＷ２００ｂからデバイスＩＤ及びＴＳを受信する構成について説明したが、実施の形態はこれに限られない。例えば、ＧＷ２００ｂからＴＳ取得要求を受信したＧＷ２００ａが、ＧＷ２００ｂを経由することなく、センタ１００に直接デバイスＩＤ及びＴＳを送信するような構成であってもよい。
【０１７９】
＜センタにＴＳを送信するタイミング＞
なお、実施例１においては、ＧＷ２００がデバイス５００から最初にセンサデータを受信した場合に、デバイスＩＤ及びＴＳをセンタ１００に送信する構成について説明したが、実施の形態はこれに限られない。例えば、図２に示すデバイス５００ａが一定の範囲を周回したり往復移動したりする場合、ＧＷ２００ｂにアクセスした後に、再びＧＷ２００ａにアクセスする場合が考えられる。この場合において、ＧＷ２００ａは、デバイス５００ａが再びＧＷ２００ａにアクセスしても、既にデバイス５００ａからセンサデータを受信しているので、センタ１００にデバイスＩＤとＴＳとを送信しない場合がある。かかる場合、センタ１００においては、装置データを適切に把握できなくなることがある。
【０１８０】
かかる場合において、例えば、ＧＷ２００ａのセンサデータ取得部２４１が、デバイス５００ａからセンサデータを受信する都度、毎回センタ１００にデバイスＩＤ及びＴＳを送信するような構成であってもよい。この場合、センタ１００の移動履歴処理部１４３は、ＧＷ２００ａから受信したデバイスＩＤに対応付けられて移動履歴ＤＢ１３１に登録された直近のＴＳがＧＷ２００ａのものではない場合に限り、装置データを移動履歴ＤＢ１３１に登録する。かかる構成においては、装置データを移動履歴ＤＢ１３１に登録させるか否かを、ＧＷ２００ではなく、センタ１００が判断する。かかる構成によれば、ＧＷ２００からセンタ１００へ送信される情報は増加するが、センタ１００において適切に装置データを登録することができる。
【０１８１】
また、デバイス５００ａがセンサデータをＧＷ２００ｂに送信した後、再びＧＷ２００ａにセンサデータを送信する際に、直前にセンサデータを送信した送信先であるＧＷ２００の装置ＩＤ「ＧＷ２」と対応付けて送信するような構成であってもよい。この場合、ＧＷ２００ａのセンサデータ取得部２４１は、デバイス５００ａから最初にセンサデータを受信したときに加えて、デバイス５００ａから装置ＩＤに対応付けられたセンサデータを受信した場合にも、装置データをセンタ１００に送信する。かかる構成においては、装置データを移動履歴ＤＢ１３１に登録させるか否かを、ＧＷ２００ではなく、デバイス５００ａが判断する。かかる構成によれば、ＧＷ２００からセンタ１００へ送信される情報の増加を抑制しつつ、センタ１００において適切に装置データを登録することができる。
【０１８２】
＜ハードウェア構成＞
さて、これまで開示のシステムに関する各実施例について説明したが、各実施例におけるセンタ１００のハードウェア構成の一例について説明する。各装置で行われる各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしてもよいことは言うまでもない。上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、ハードウェア構成の一例として、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
【０１８３】
図２８は、ハードウェア構成の一例を示す図である。センタ１００は、図２８に示すコンピュータ７０００と同様のハードウェア構成により実現できる。
【０１８４】
図２８に示すように、コンピュータ７０００は、各種演算処理を実行するプロセッサ７００１と、入出力装置７００２と、利用者端末９００及びＧＷ２００と有線又は無線により接続するための通信装置７００３とを有する。また、コンピュータ７０００は、各種情報を一時記憶するＲＡＭ７００４と、ハードディスク装置７００５とを有する。また、各装置７００１〜７００５は、バス７００６に接続される。  
【０１８５】
ハードディスク装置７００５には、上記各実施例で示したリクエスト処理部１４１、判定部１４２及び移動履歴処理部１４３の各処理部と同様の機能を有するデータ管理プログラムが記憶される。また、ハードディスク装置７００５には、移動履歴ＤＢ１３１及びポインタ利用頻度ＤＢ１３２が記憶される。ハードディスク装置７００５には、データ管理プログラムを実現するための各種データが記憶される。  
【０１８６】
プロセッサ７００１は、ハードディスク装置７００５に記憶された各プログラムを読み出して、ＲＡＭ７００４に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ７０００を上記各実施例で示したリクエスト処理部１４１、判定部１４２及び移動履歴処理部１４３として機能させることができる。なお、上記の各プログラムは、必ずしもハードディスク装置７００５に記憶されている必要はない。例えば、コンピュータ７０００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ７０００が読み出して実行するようにしてもよい。
【０１８７】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１８８】
（付記１）複数の中継装置と管理装置とを有するデータ管理システムにより実行されるデータ管理方法において、
前記管理装置は、
前記複数の中継装置のうちデータを収集するデバイスと接続された中継装置から接続通知を受信した場合に、前記データを取得する際の要求先となる当該中継装置を識別する識別情報を記憶部に登録し、
前記データを取得する場合に、前記識別情報により特定される中継装置に、前記データの取得要求を送信し、
前記複数の中継装置のいずれかに、前記複数の中継装置それぞれに対応する複数の識別情報のうち前記記憶部から削除する削除対象の識別情報を送信し、
前記複数の中継装置は、
前記デバイスが収集したデータを記憶部に記憶し、
前記削除対象の識別情報を受信した場合、前記データに対応付けて、前記削除対象の中継装置を特定する問合せ先情報を前記記憶部に登録し、
前記管理装置から前記データの取得要求を受信した場合に、前記記憶部において前記データに前記問合せ先情報が対応付けられているか否かに基づく前記データの応答制御を実行する
処理を実行することを特徴とするデータ管理方法。
【０１８９】
（付記２）前記管理装置の登録する処理は、前記デバイスが接続された時刻を含む前記接続通知を受信した場合に、前記中継装置を識別する識別情報と前記時刻とを対応付けて、前記時刻順で前記記憶部に登録し、
前記管理装置の取得要求を送信する処理は、取得対象となるデータの時間帯に含まれる時刻に対応する中継装置に、前記時間帯を指定した前記データの取得要求を送信し、
前記複数の中継装置の応答制御を実行する処理は、前記データの取得要求で指定された時間帯に含まれる前記データに前記問合せ先情報が対応付けられていなければ、前記記憶部に記憶される前記データを前記管理装置に送信し、前記問合せ先情報が対応付けられていれば、当該問合せ先情報によって特定される中継装置に、前記データの取得要求を転送することを特徴とする付記１に記載のデータ管理方法。
【０１９０】
（付記３）前記管理装置の識別情報を送信する処理は、前記削除対象の中継装置が前記接続通知を送信した時刻よりも前の時刻に前記接続通知を送信した第１の中継装置に、前記削除対象の識別情報を送信し、
前記複数の中継装置の登録する処理は、前記削除対象の識別情報を受信した場合、データ取得時刻がより新しいデータを保持する中継装置へのポインタ情報として前記問合せ先情報を前記記憶部に登録することを特徴とする付記２に記載のデータ管理方法。
【０１９１】
（付記４）前記管理装置の識別情報を送信する処理は、前記削除対象の中継装置が前記接続通知を送信した時刻よりも後の時刻に前記接続通知を送信した第２の中継装置に、前記削除対象の識別情報を送信し、
前記複数の中継装置の登録する処理は、前記削除対象の識別情報を受信した場合、データ取得時刻がより古いデータを保持する中継装置へのポインタ情報として前記問合せ先情報を前記記憶部に登録することを特徴とする付記３に記載のデータ管理方法。
【０１９２】
（付記５）前記管理装置の識別情報を送信する処理は、前記記憶部に記憶される前記識別情報の参照頻度が閾値未満である場合に、当該識別情報を削除対象の識別情報として特定することを特徴とする付記１乃至４のいずれか１つに記載のデータ管理方法。
【０１９３】
（付記６）前記管理装置の識別情報を送信する処理は、前記記憶部に記憶される他の識別情報に対応する中継装置からのホップ数が閾値未満である中継装置の識別情報を、前記削除対象の識別情報として特定することを特徴とする付記１乃至５のいずれか１つに記載のデータ管理方法。
【０１９４】
（付記７）前記管理装置の登録する処理は、前記問合せ先情報に対応する転送先中継装置に対する前記データの取得要求の転送回数が閾値以上である場合に、前記転送先中継装置の識別情報を前記記憶部に再登録することを特徴とする付記１乃至６のいずれか１つに記載のデータ管理方法。
【０１９５】
（付記８）前記複数の中継装置が、
前記転送先中継装置に対する前記データの取得要求の転送回数が閾値以上である場合に、当該転送先中継装置に対して、識別情報の送信指示を送信し、
前記管理装置の記憶部に、前記転送先中継装置により送信された識別情報が再登録された場合、当該転送先中継装置に対応する問合せ先情報を削除する
処理をさらに実行することを特徴とする付記７に記載のデータ管理方法。
【０１９６】
（付記９）前記管理装置が、
前記問合せ先情報を記憶する転送元中継装置から、前記転送先中継装置に前記データの取得要求が転送された転送回数を取得し、
前記転送回数が閾値以上である場合に、前記転送先中継装置の識別情報の送信指示を、前記転送元中継装置に送信し、
前記転送先中継装置の識別情報を受信した場合に、受信した当該識別情報を前記記憶部に再登録するとともに、前記転送元中継装置に、前記問合せ先情報の削除指示を送信する
処理をさらに実行することを特徴とする付記７に記載のデータ管理方法。
【０１９７】
（付記１０）前記複数の中継装置の応答制御を実行する処理は、前記問合せ先情報に対応する転送先中継装置から、転送された前記データの取得要求に対応するデータを取得し、取得した当該データと、前記記憶部に記憶される前記データとを、前記管理装置に送信することを特徴とする付記１乃至９のいずれか１つに記載のデータ管理方法。
【０１９８】
（付記１１）前記管理装置の登録する処理は、複数の前記デバイスそれぞれを識別するデバイス識別情報ごとに、前記識別情報を前記記憶部に記憶し、
前記管理装置の識別情報を送信する処理は、所定のデバイスに対応するデバイス識別情報と対応づけられる前記識別情報を削除する場合に、前記いずれかの中継装置に、前記削除対象の識別情報と前記デバイス識別情報との組み合わせを送信し、
前記複数の中継装置の登録する処理は、前記組み合わせを受信した場合、前記デバイス識別情報に対応付けて、前記削除対象の中継装置を特定する問合せ先情報を前記記憶部に登録し、
前記複数の中継装置の応答制御を実行する処理は、前記問合せ先情報が前記データの取得要求に含まれる前記デバイス識別情報と対応付けられて前記記憶部に登録されていなければ、当該データを前記管理装置に送信し、前記問合せ先情報が前記デバイス識別情報と対応付けられて前記記憶部に登録されていれば、当該問合せ先情報によって特定される中継装置に、前記デバイス識別情報を含む前記取得要求を転送する
ことを特徴とする付記１乃至１０のいずれか１つに記載のデータ管理方法。
【０１９９】
（付記１２）複数の中継装置と管理装置とを有するデータ管理システムにおいて、
前記管理装置は、
前記複数の中継装置のうちデータを収集するデバイスと接続された中継装置から接続通知を受信した場合に、前記データを取得する際の要求先となる当該中継装置を識別する識別情報を記憶部に記憶する登録部と、
前記データを取得する場合に、前記識別情報により特定される中継装置に、前記データの取得要求を送信する取得要求送信部と、
前記複数の中継装置のいずれかに、前記複数の中継装置それぞれに対応する複数の識別情報のうち前記記憶部から削除する削除対象の識別情報を送信する識別情報送信部と
を有し、
前記複数の中継装置は、
前記デバイスが収集したデータを記憶部に記憶する取得部と、
前記削除対象の識別情報を受信した場合、前記データに対応付けて、前記削除対象の中継装置を特定する問合せ先情報を前記記憶部に登録する登録部と、
前記管理装置から前記データの取得要求を受信した場合に、前記記憶部において前記データに前記問合せ先情報が対応付けられているか否かに基づく前記データの応答制御を実行する応答制御部と
を有することを特徴とするデータ管理システム。
【符号の説明】
【０２００】
１  データ取得システム
１０  データ管理システム
１００  センタ
１３０  記憶部
１３１  移動履歴ＤＢ
１３２  ポインタ利用頻度ＤＢ
１４０  制御部
１４１  リクエスト処理部
１４２  判定部
１４３  移動履歴処理部
２００ａ、２００ｂ  ゲートウェイ（ＧＷ）
２３０  記憶部
２３１  デバイス情報ＤＢ
２４０  制御部
２４１  センサデータ取得部
２４２  リクエスト応答部
２４３  ポインタ処理部
５００ａ、５００ｂ  デバイス
９００  利用者端末
【図１】
0006586909.tif 000002
【図２】
0006586909.tif 000003
【図３】
0006586909.tif 000004
【図４】
0006586909.tif 000005
【図５】
0006586909.tif 000006
【図６】
0006586909.tif 000007
【図７】
0006586909.tif 000008
【図８】
0006586909.tif 000009
【図９】
0006586909.tif 000010
【図１０】
0006586909.tif 000011
【図１１】
0006586909.tif 000012
【図１２】
0006586909.tif 000013
【図１３】
0006586909.tif 000014
【図１４】
0006586909.tif 000015
【図１５】
0006586909.tif 000016
【図１６】
0006586909.tif 000017
【図１７】
0006586909.tif 000018
【図１８】
0006586909.tif 000019
【図１９】
0006586909.tif 000020
【図２０】
0006586909.tif 000021
【図２１】
0006586909.tif 000022
【図２２】
0006586909.tif 000023
【図２３】
0006586909.tif 000024
【図２４】
0006586909.tif 000025
【図２５】
0006586909.tif 000026
【図２６】
0006586909.tif 000027
【図２７】
0006586909.tif 000028
【図２８】
0006586909.tif 000029