(57)【特許請求の範囲】
【請求項１】
コンピュータに、
通信可能な情報発信機器からデバイス情報を取得して、取得した時間と共にデバイス情報蓄積部に記憶し、
通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報としてルーティング情報格納部に記憶すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送し、
前記情報発信機器から取得したデバイス情報又は通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記ルーティング情報格納部に記憶し、
通信可能な情報購読機器から購読条件に過去に関する時刻条件を含む取得依頼を受信すると、前記取得依頼に関する過去のデバイス情報を蓄積する蓄積部を生成し、
前記ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断し、
前記購読条件に一致するルーティング情報を記憶していると判断したときに、該ルーティング情報に含まれる前記取得元が情報発信機器であるか否かを判断し、
前記取得元が情報発信機器でないときには、前記取得元に前記取得依頼を転送し、前記取得元が情報発信機器であるときには、前記取得元から取得したデバイス情報を前記デバイス情報蓄積部から読み出して前記蓄積部に蓄積し、
前記取得元に転送した前記取得依頼に応じてデバイス情報を取得すると前記蓄積部に蓄積し、
前記蓄積部を生成してから所定時間経過後に前記蓄積部に蓄積されたデバイス情報を時系列順に並び替えて前記情報購読機器に送信する
処理を実行させることを特徴とする過去情報提供プログラム。
【請求項２】
デバイス情報の取得元と取得時間を前記マッチ条件に一致したルーティング情報に追加して前記ルーティング情報格納部に記憶する処理を、前記デバイス情報が転送されたホップ数から算出される確率に基づいて行うことを特徴とする請求項１に記載の過去情報提供プログラム。
【請求項３】
第１のコンピュータが、
通信可能な第１情報発信機器からデバイス情報を取得して、取得した時間と共に第１デバイス情報蓄積部に記憶し、
通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報として第１ルーティング情報格納部に記憶すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送し、
前記第１情報発信機器から取得したデバイス情報又は通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記第１ルーティング情報格納部に記憶し、
通信可能な情報購読機器から購読条件に過去に関する時刻条件を含む取得依頼を受信すると、前記取得依頼に関する過去のデバイス情報を蓄積する蓄積部を生成し、
前記第１ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断し、
前記購読条件に一致するルーティング情報を記憶していると判断したときに、該ルーティング情報に含まれる取得元が第１情報発信機器であるか否かを判断し、
取得元が第１情報発信機器でないときには、取得元としての第２のコンピュータに前記取得依頼を転送し、取得元が第１情報発信機器であるときには、取得元から取得したデバイス情報を前記第１デバイス情報蓄積部から読み出して前記蓄積部に蓄積する処理を実行し、
第２のコンピュータが、
通信可能な第２情報発信機器からデバイス情報を取得して、取得した時間と共に第２デバイス情報蓄積部に記憶し、
通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報として第２ルーティング情報格納部に記憶すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送し、
前記第２情報発信機器から取得したデバイス情報又は通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記第２ルーティング情報格納部に記憶し、
前記第１のコンピュータから前記取得依頼を受信すると、前記第２ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断し、
前記購読条件に一致するルーティング情報を記憶していると判断したときに、該ルーティング情報に含まれる取得元が第２情報発信機器であるか否かを判断し、
取得元が第２情報発信機器でないときには、取得元に前記取得依頼を転送し、取得元が第２情報発信機器であるときには、前記取得元から取得したデバイス情報を前記第２デバイス情報蓄積部から読み出して前記第１のコンピュータに送信する処理を実行し、
前記第１のコンピュータが、さらに、
前記第２のコンピュータに転送した前記取得依頼に応じてデバイス情報を取得すると前記蓄積部に蓄積し、
前記蓄積部を生成してから所定時間経過後に前記蓄積部に蓄積されたデバイス情報を時系列順に並び替えて前記情報購読機器に送信する
処理を実行することを特徴とする過去情報提供方法。
【請求項４】
通信可能な情報発信機器からデバイス情報を取得して、取得した時間と共にデバイス情報蓄積部に格納する第１蓄積処理部と、
通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報としてルーティング情報格納部に格納すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送する第１格納処理部と、
前記情報発信機器から取得したデバイス情報又は通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記ルーティング情報格納部に格納する第２格納処理部と、
通信可能な情報購読機器から購読条件に過去に関する時刻条件を含む取得依頼を受信すると、前記取得依頼に関する過去のデバイス情報を蓄積する蓄積部を生成する生成部と、
前記ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断する第１判断部と、
前記第１判断部により前記購読条件に一致するルーティング情報を記憶していると判断されたときに、該ルーティング情報に含まれる前記取得元が情報発信機器であるか否かを判断する第２判断部と、
前記第２判断部により前記取得元が情報発信機器でないと判断されたときには、前記取得元に前記取得依頼を転送し、前記取得元が情報発信機器であると判断されたときには、前記取得元から取得したデバイス情報を前記デバイス情報蓄積部から読み出して前記蓄積部に蓄積する第１蓄積処理部と、
前記取得元に転送した前記取得依頼に応じてデバイス情報を取得すると前記蓄積部に蓄積する第２蓄積処理部と、
前記蓄積部を生成してから所定時間経過後に前記蓄積部に蓄積されたデバイス情報を時系列順に並び替えて前記情報購読機器に送信する送信部と
を有することを特徴とする過去情報提供装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、過去情報提供プログラム、過去情報提供方法及び過去情報提供装置に関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet  of  Things）への関心が高まっている。ＩｏＴでは、ＰＣ（Personal  Computer）、サーバ、スマートデバイスだけでなく、世の中の様々なものがＩｏＴデバイスとしてインターネットに接続する。ＩｏＴデバイスの例としては、環境センサ、ビーコン（電波発信機）、車、家電等がある。
【０００３】
ＩｏＴの応用例として、ＩｏＴデバイスを利用した情報提供サービスがある。図１２は、情報提供サービスの一例として、子供見守りシステムを示す図である。図１２に示す子供見守りシステムは、子供が所有するビーコン９１を利用して子供の居場所をトレースし、子供の居場所に関する情報を提供する。
【０００４】
子供見守りシステムでは、子供が所有するビーコン９１が発信した情報を他の人間が所有するスマホ（スマートフォン）９２を経由してＧＷ（Gateway：ゲートウェイ）９３が受信する。なお、図１２では、経由するスマホ９２は１台のみ示されているが、経由するスマホ９２の台数は２台以上でもよい。
【０００５】
ＧＷ９３は、広域に分散するＩｏＴデバイスを収容して、ＩｏＴデバイスの機能やデータを中継する装置であり、例えば、Ｗｉ−Ｆｉのアクセスポイントやモバイル網の基地局である。ＧＷ９３は、受信した情報をＤＣ（Data  Center：データセンタ）９４に送信する。なお、図１２では、経由するＧＷ９３は１台のみ示されているが、経由するＧＷ９３の台数は２台以上でもよい。
【０００６】
ＤＣ９４は、ビーコン９１が発信した情報を含めて、様々なＩｏＴデバイスからの情報を蓄積する。ＧＷ９３及びＤＣ９４を含む分散システムは、ＩｏＴデバイスを用いて情報を提供するＩｏＴサービスの基盤すなわちＩｏＴサービス基盤を提供する。
【０００７】
ＩｏＴサービス基盤は、探索サービスと通知サービスを提供する。探索サービスでは、例えば、子供の保護者が、所有するスマホ９２を用いて子供の居場所の探索をＩｏＴサービス基盤に依頼すると、ＩｏＴサービス基盤は、ＤＣ９４内のデータを検索し、子供の居場所の情報を保護者に提供する（ケース＃１）。また、ＩｏＴサービス基盤は、ビーコン９１が発信した情報をＧＷ９３に蓄積し、ＧＷ９３内のデータを検索して子供の居場所の情報を保護者に提供してもよい（ケース＃２）。
【０００８】
通知サービスでは、例えば、予め子供の行動範囲を検出してＩｏＴサービス基盤に登録しておき、行動範囲から大きく違う位置へ子供が移動すると、ＩｏＴサービス基盤が保護者に通知する。保護者に通知するか否かの判断は、ＤＣ９４が行う場合（ケース＃１）と、ＧＷ９３が行う場合（ケース＃２）がある。
【０００９】
探索サービスは、ＧＷ９３やＤＣ９４に蓄積されているデータを条件検索して、条件にマッチするデータを提供する蓄積型のデータ提供を行う。また、探索サービスは、探索要求に同期してデータを提供するので、同期型のデータ提供を行う。一方、通知サービスは、予め登録された条件にマッチするデータを受信すると、データを提供するリアルタイム型のデータ提供を行う。また、通知サービスは、条件の指定とデータの提供が同期しない非同期型のデータ提供を行う。
【００１０】
蓄積型のデータ提供において蓄積されるデータの量はリアルタイム型のデータ提供における条件の数よりずっと多くなるので、蓄積型のデータ提供は、リアルタイム型のデータ提供より処理が重い。したがって、リアルタイム型のデータ提供が利用されることが多い。
【００１１】
リアルタイム型のデータ提供を行うシステムとして、Ｐｕｂ（発信者）／Ｓｕｂ（購読者）システムがある。図１３は、Ｐｕｂ／Ｓｕｂシステムを説明するための図である。図１３に示すように、Ｐｕｂ／Ｓｕｂシステムでは、発信者（Publisher）９５と購読者９７（Subscriber）がトピック９６により繋がれる。
【００１２】
発信者９５は、トピック９６に関し、データを送信する。購読者９７は、トピック９６に関し、購読をかけて、データを受信する。購読では、データをフィルタリングするマッチ条件が指定される。Ｐｕｂ／Ｓｕｂシステムは発信者９５と購読者９７を疎結合にできるため、発信者９５と購読者９７はお互いの存在や状態を意識する必要がない。また、Ｐｕｂ／Ｓｕｂシステムは、多対多のコミュニケーションを可能とする。
【００１３】
さらに、Ｐｕｂ／Ｓｕｂシステムは、遅延キューを利用することによって、購読者９７が購読した時点で条件にマッチする過去のデータを提供できる。図１４は、遅延キューを説明するための図である。図１４に示すように、ＧＷ９３は、Ｐｕｂ９５が発信したデータを遅延キュー９８にいれて所定の時間だけ遅延した後、Ｓｕｂ９７に送信する。
【００１４】
したがって、Ｓｕｂ９７は、遅延キュー９８に保存されている古いデータを取得することができる。このように、遅延キュー９８を利用することによって、Ｐｕｂ／Ｓｕｂシステムは、例えば子供見守りシステムにおいて、Ｓｕｂ９７は過去に遡って迷子の情報を得ることができる。
【００１５】
なお、発行−購読ネットワークのルータがデータをキャッシングし、持続タイムフレーム期間が経過するとキャッシングされたデータを消去することで、持続的なキャッシングを実現する技術がある。
【００１６】
また、受信した端末ＩＤ、基地局ＩＤ及び基地局ＩＤの通信可能範囲をもとに端末機の領域を判定し、予め登録した条件に一致したときに登録されている通知方法に従って通知することで、指定された通知方法に従った通知／各種制御を簡易に実現する技術がある。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００９−１６３７５３号公報
【特許文献２】特開平１１−２８９５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
ＩｏＴサービス基盤では、発信されたデータは発信者に最も近いＧＷ９３に蓄積される。したがって、遅延キュー９８を用いた方法では、いずれかのＧＷ９３に遅延キュー９８を用いてデータを溜めると、ＩｏＴサービス基盤が保持すべきデータの量が倍になり、データ量が多くなる。
【００１９】
そこで、遅延キュー９８を用いることなく、発信者に最も近いＧＷ９３に蓄積されたデータを用いて過去のデータを提供することが考えられる。しかしながら、各ＧＷ９３は、購読者から過去のデータを要求されたときに、どのＧＷ９３が要求されたデータを蓄積しているかがわからないため、全てのＧＷ９３に対して過去のデータの取得を要求することになり、ＧＷ９３の負荷が高くなるという問題がある。
【００２０】
本発明は、１つの側面では、過去のデータの取得要求を限られたＧＷにだけ送信することを可能とすることを目的とする。
【課題を解決するための手段】
【００２１】
１つの態様では、過去情報提供プログラムは、コンピュータに、通信可能な情報発信機器からデバイス情報を取得して、取得した時間と共にデバイス情報蓄積部に記憶させる処理を実行させる。そして、過去情報提供プログラムは、コンピュータに、通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報としてルーティング情報格納部に記憶する処理を実行させる。また、過去情報提供プログラムは、コンピュータに、取得依頼に含まれる転送先を自装置に変えて取得依頼を所定の転送先に転送する処理を実行させる。そして、過去情報提供プログラムは、コンピュータに、情報発信機器から取得したデバイス情報又は通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送する処理を実行させる。また、過去情報提供プログラムは、コンピュータに、該デバイス情報の取得元と取得時間を該ルーティング情報に追加してルーティング情報格納部に記憶する処理を実行させる。そして、過去情報提供プログラムは、コンピュータに、通信可能な情報購読機器から購読条件に過去に関する時刻条件を含む取得依頼を受信すると、取得依頼に関する過去のデバイス情報を蓄積する蓄積部を生成する処理を実行させる。そして、過去情報提供プログラムは、コンピュータに、ルーティング情報格納部に取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断する処理を実行させる。そして、過去情報提供プログラムは、コンピュータに、購読条件に一致するルーティング情報を記憶していると判断したときに、該ルーティング情報に含まれる取得元が情報発信機器であるか否かを判断する処理を実行させる。そして、過去情報提供プログラムは、コンピュータに、取得元が情報発信機器でないときには、取得元に取得依頼を転送し、取得元が情報発信機器であるときには、取得元から取得したデバイス情報をデバイス情報蓄積部から読み出して蓄積部に蓄積する処理を実行させる。そして、過去情報提供プログラムは、コンピュータに、取得元に転送した取得依頼に応じてデバイス情報を取得すると蓄積部に蓄積し、蓄積部を生成してから所定時間経過後に蓄積部に蓄積されたデバイス情報を時系列順に並び替えて情報購読機器に送信する処理を実行させる。
【発明の効果】
【００２２】
１つの側面では、過去のデータの取得依頼を限られたＧＷにだけ送信することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、実施例に係る過去情報提供システムを説明するための図である。
【図２】図２は、過去情報提供システムの構成を示す図である。
【図３】図３は、デバイス情報蓄積部の一例を示す図である。
【図４】図４は、ルーティング情報の例を示す図である。
【図５】図５は、ＧＷの処理のフローを示すフローチャートである。
【図６】図６は、蓄積型データ処理のフローを示すフローチャートである。
【図７】図７は、リアルタイム型データ処理のフローを示すフローチャートである。
【図８】図８は、ルーティング情報更新処理のフローを示すフローチャートである。
【図９】図９は、マッチング結果更新処理のフローを示すフローチャートである。
【図１０】図１０は、過去データの探索要求の処理のフローを示すフローチャートである。
【図１１】図１１は、ＧＷのハードウェア構成を示す図である。
【図１２】図１２は、子供見守りシステムを示す図である。
【図１３】図１３は、Ｐｕｂ／Ｓｕｂシステムを説明するための図である。
【図１４】図１４は、遅延キューを説明するための図である。
【発明を実施するための形態】
【００２４】
以下に、本願の開示する過去情報提供プログラム、過去情報提供方法及び過去情報提供装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００２５】
まず、実施例に係る過去情報提供システムについて説明する。図１は、実施例に係る過去情報提供システムを説明するための図である。図１に示すように、実施例に係る過去情報提供システム１は、４つのＧＷ２と、１つのＰｕｂ４と、２つのＳｕｂ５とを有する。なお、過去情報提供システム１は、より多くのＧＷ２、Ｐｕｂ４及びＳｕｂ５を有してよい。
【００２６】
ＧＷ２は、広域に分散するＰｕｂ４の機能やデータを中継する装置であり、例えば、Ｗｉ−Ｆｉのアクセスポイントやモバイル網の基地局である。Ｐｕｂ４は、いずれかのＧＷ２に情報を発信する（publish）装置である。Ｓｕｂ５は、いずれかのＧＷ２に購読する（subscribe）ことを依頼する装置である。
【００２７】
例えば、Ｓｕｂ５がｘ＞１０を条件としてＧＷ２に購読を依頼する。すると、購読を依頼されたＧＷ２は、他のＧＷ２に条件を送信して条件にマッチするデータの自装置への転送を依頼する。また、条件を送信されたＧＷ２は、同様に、他のＧＷ２に条件を送信して条件にマッチするデータの自装置への転送を依頼する。
【００２８】
そして、Ｐｕｂ４がｘ＞１０にマッチするデータを発信すると、Ｐｕｂ４からデータを送信されたＧＷ２は、データを蓄積すると共に、ｘ＞１０にマッチするデータの転送依頼を送信したＧＷ２にマッチしたデータを転送する。また、ＧＷ２は、マッチしたデータの取得元とデータの発信時刻をマッチング結果として記憶する。なお、データの発信時刻とＰｕｂ４に隣接するＧＷ２がデータを受信する時刻は同じであるとする。
【００２９】
データを転送されたＧＷ２は、ｘ＞１０にマッチするデータの転送依頼を送信したＧＷ２にマッチしたデータを転送する。また、データを転送されたＧＷ２は、マッチしたデータの取得元と発信時刻をマッチング結果として記憶する。そして、Ｓｕｂ５から購読依頼を受けたＧＷ２までデータが転送されると、Ｓｕｂ５から購読依頼を受けたＧＷ２は、Ｓｕｂ５にマッチしたデータをＳｕｂ５へ転送し、マッチしたデータの取得元と発信時刻をマッチング結果として記憶する。
【００３０】
そして、新たに別のＳｕｂ５がｘ＞１０を条件としてＧＷ２に過去のデータを含めて購読を依頼すると、過去のデータを含めた購読を依頼されたＧＷ２は、マッチしたデータを一時的に記憶する一時蓄積部２７を生成し、過去データの探索を隣接するＧＷ２に要求する。
【００３１】
過去データの探索を要求されたＧＷ２は、マッチング結果を有する場合、マッチング結果に含まれる取得元がＰｕｂ４になるまで取得元のＧＷ２に過去データの探索を要求する。そして、マッチング結果に含まれる取得元がＰｕｂ４であると、そのＧＷ２はマッチしたデータを蓄積するため、マッチしたデータを、Ｓｕｂ５から購読依頼を受けたＧＷ２の一時蓄積部２７に送信する。そして、Ｓｕｂ５から購読依頼を受けたＧＷ２は、過去データが転送されてくるのを待ち、一定時間経過後に一時蓄積部２７に記憶されたデータを時刻順にＳｕｂ５へ送信する。
【００３２】
このように、過去情報提供システム１では、ＧＷ２がマッチング結果を保存しておく。そして、過去データを含む購読を依頼されたＧＷ２は、一時蓄積部２７を生成すると共に、過去データの探索要求を隣接するＧＷ２に送信する。そして、過去データの探索を依頼されたＧＷ２は、マッチング結果を有する場合、マッチング結果に基づいて過去データの探索依頼を、データを蓄積するＧＷ２まで転送する。そして、データを蓄積するＧＷ２がＳｕｂ５から購読依頼を受けたＧＷ２の一時蓄積部２７にデータを送信する。
【００３３】
したがって、過去情報提供システム１は、遅延キューを用いる場合と比較して蓄積するデータ量を減らすことができる。また、過去情報提供システム１は、マッチング結果に基づいて一部のＧＷ２に対してだけ過去のデータの取得を要求することになり、ＧＷ２の負荷の増大を防ぐことができる。
【００３４】
なお、データの配信経路上の全ＧＷ２でマッチング結果を記憶することは重複があり無駄が大きい。一方、マッチング結果を記憶するＧＷ２が少ないと目的のデータを蓄積するＧＷ２の存在を判断するまでに時間がかかる。すなわち、マッチング結果を記憶するＧＷ２の数と過去データの探索時間にはトレードオフの関係がある。
【００３５】
そこで、過去情報提供システム１は、データ利用の地理的局所性に基づいて、マッチング結果を記憶する。すなわち、過去情報提供システム１は、データは生成された近くで利用される可能性が高いという性質に基づいて、マッチング結果を記憶する。
【００３６】
このため、ＧＷ２は、１／（転送ホップ数）＋（定数）により算出される確率でマッチング結果を保持する。すなわち、データがＰｕｂ４から遠くのＧＷ２へ転送されるほど、ＧＷ２はマッチング結果を残さない。このように、過去情報提供システム１は、データ利用の地理的局所性に基づいてマッチング結果を記憶することによって、マッチング結果を記憶するＧＷ２の数を増やすことなく過去データの探索時間を短くすることができる。
【００３７】
次に、過去情報提供システム１の構成について説明する。図２は、過去情報提供システム１の構成を示す図である。図２に示すように、過去情報提供システム１は、任意の台数のＧＷ２と、Ｐｕｂ４と、Ｓｕｂ５とを有する。ＧＷ２はＮＷ（ネットワーク）３により接続される。
【００３８】
なお、図２では、１台のＰｕｂ４及び１台のＳｕｂ５を示すが、各ＧＷ２は、０を含む任意の台数のＰｕｂ４及びＳｕｂ５を有してよい。また、図２では、Ｐｕｂ４に隣接するＧＷ２は、Ｐｕｂ４からデータを受信した場合の動作を中心に図示し、Ｓｕｂ５に隣接するＧＷ２は、Ｓｕｂ５から購読依頼を受けた場合の動作を中心に図示する。各ＧＷ２は、Ｐｕｂ４からデータを受信した場合、Ｓｕｂ５から購読依頼を受けた場合、他のＧＷ２からデータ、情報の更新依頼、過去データの探索要求等を受信した場合に動作する。
【００３９】
ＧＷ２は、デバイス情報受信部２１と、蓄積型データ処理部２２と、デバイス情報蓄積部２３と、リアルタイム型データ処理部２４と、ルーティング情報格納部２５と、過去データ処理部２６と、一時蓄積部２７とを有する。
【００４０】
デバイス情報受信部２１は、Ｐｕｂ４が発信したデータをデバイス情報として受信し、受信したデータを蓄積型データ処理部２２及びリアルタイム型データ処理部２４に渡す。
【００４１】
蓄積型データ処理部２２は、デバイス情報受信部２１から受け取ったデータをデバイス情報蓄積部２３に格納する。デバイス情報蓄積部２３は、デバイス情報受信部２１がＰｕｂ４から受信したデータを記憶する。
【００４２】
図３は、デバイス情報蓄積部２３の一例を示す図である。図３に示すように、デバイス情報蓄積部２３は、DeviceIDとKeyとValueとTimestampをデータ毎に記憶する。DeviceIDは、データを発信したＰｕｂ４を識別する識別子である。Keyは、データの名前である。Valueは、データの値である。すなわち、データは、KeyとValueの組である。Timestampは、データが発信された時刻である。
【００４３】
例えば、「Ｄｅｖ００１」で識別されるＰｕｂ４が時刻「ｈｈ：ｍｍ：ｓｓ」に「温度」が「２８°Ｃ」であるというデータを発信し、蓄積型データ処理部２２がデータをデバイス情報蓄積部２３に格納した。
【００４４】
リアルタイム型データ処理部２４は、リアルタイム型のデータ提供に関する処理を行う。具体的には、リアルタイム型データ処理部２４は、Ｓｕｂ５から購読依頼を受信すると、ルーティング情報格納部２５のルーティング情報を更新する。ルーティング情報格納部２５は、ルーティング情報を記憶する。図４は、ルーティング情報格納部２５が格納するルーティング情報の例を示す図である。図４は、Ｐｕｂ４に隣接するＧＷ2とＧＷ2に隣接するＧＷ1のルーティング情報を示す。
【００４５】
ルーティング情報には、マッチ条件とnexthopとマッチング結果が含まれる。マッチ条件は、Ｓｕｂ５からの購読依頼に含まれる条件である。nexthopは、データの転送先であり、マッチ条件の送信元でもある。Ｓｕｂ５から購読依頼を受信したＧＷ２では、nexthopはＳｕｂ５である。マッチ条件を他のＧＷ２から転送されたＧＷ２では、nexthopはマッチ条件の送信元である。
【００４６】
マッチング結果は、マッチ条件にマッチしたデータの取得元と発信時刻を示す。マッチング結果は、複数あってよい。「：ｓｒｃ＝」は取得元を示し、「：ｔｉｍｅ＝」は発信時刻を示す。
【００４７】
例えば、ＧＷ1のルーティング情報では、「ｘ＞１０」にマッチするデータはＧＷ3に転送され、ＧＷ2から転送された発信時刻が「ｈｈ：ｍｍ：ｓｓ」であるデータがマッチしたデータとしてマッチング結果に登録されている。
【００４８】
リアルタイム型データ処理部２４は、マッチ条件を転送すべき隣接するＧＷ２がある場合には、マッチ条件と自装置名をルーティング情報の更新情報として転送先に転送する。転送先は、ブロードキャスト木上の子ノードとして特定される。
【００４９】
購読依頼に過去のデータの購読が含まれる場合には、リアルタイム型データ処理部２４は、過去のデータの購読時間範囲を指定する時刻条件を購読依頼から除いて、マッチ条件をルーティング情報の更新情報として転送先に転送する。また、リアルタイム型データ処理部２４は、時刻条件を含む購読依頼に基づいて過去データの探索を行う。
【００５０】
リアルタイム型データ処理部２４は、Ｐｕｂ４又は隣接するＧＷ２から送信されてきたデータを受信すると、次の転送先のＧＷ２が存在しない場合には、データをＳｕｂ５に送信する。一方、次の転送先のＧＷ２が存在する場合には、リアルタイム型データ処理部２４は、Ｐｕｂ４から送信されたデータについては、対応するマッチング結果にデータの取得元と発信時刻の組を追加し、次の転送先に転送する。また、隣接するＧＷ２から転送されたデータについては、リアルタイム型データ処理部２４は、転送ホップ数から算出される確率に基づいてマッチング結果を残すか否かを判定し、残す場合には、対応するマッチング結果にデータの取得元と発信時刻の組を追加し、次の転送先に転送する。
【００５１】
過去データ処理部２６は、購読依頼に過去のデータの購読が含まれる場合に、過去データを探索する処理を行う。Ｓｕｂ５から購読依頼を受けたＧＷ２の過去データ処理部２６は、一時蓄積部２７を生成する。一時蓄積部２７は、購読依頼に含まれる購読条件にマッチしたデータを、生成されてから一定時間が経過するまで一時的に記憶する記憶部である。ここで、購読条件にマッチするとは、購読依頼に含まれるマッチ条件にマッチすると共に、購読依頼に含まれる時刻条件を満たすことを意味する。一時蓄積部２７は、一定時間が経過すると、記憶するデータがＳｕｂ５に送信された後、削除される。
【００５２】
Ｓｕｂ５から購読依頼を受けたＧＷ２の過去データ処理部２６は、購読条件にマッチするマッチング結果があり、マッチしたマッチング結果に含まれる取得元がＰｕｂ４である場合には、マッチしたデータを一時蓄積部２７に格納する。また、マッチしたマッチング結果に含まれる取得元がＰｕｂ４でない場合には、Ｓｕｂ５から購読依頼を受けたＧＷ２の過去データ処理部２６は、マッチング結果に含まれる取得元のＧＷ２に購読条件と共に過去データの探索要求を送信する。そして、Ｓｕｂ５から購読依頼を受けたＧＷ２の過去データ処理部２６は、過去データの探索要求を受信した他のＧＷ２から一時蓄積部２７にへ過去データが送られてくると、一時蓄積部２７に格納する。
【００５３】
なお、購読条件にマッチするマッチング結果が複数ある場合には、Ｓｕｂ５から購読依頼を受けたＧＷ２の過去データ処理部２６は、各マッチング結果に対して同様の処理を行う。また、購読条件にマッチするマッチング結果がない場合には、Ｓｕｂ５から購読依頼を受けたＧＷ２の過去データ処理部２６は、隣接するＧＷ２に購読条件と共に過去データの探索要求を送信する。
【００５４】
隣接するＧＷ２から過去データの探索を要求されたＧＷ２の過去データ処理部２６は、購読条件にマッチするマッチング結果があり、マッチしたマッチング結果に含まれる取得元がＰｕｂ４である場合には、マッチしたデータを一時蓄積部２７に転送する。一時蓄積部２７を有する過去データ処理部２６は、転送されたデータを一時蓄積部２７に格納する。また、取得元がＰｕｂ４でない場合には、隣接するＧＷ２から過去データの探索を要求されたＧＷ２の過去データ処理部２６は、マッチしたマッチング結果に含まれる取得元のＧＷ２に購読条件と共に過去データの探索求を送信する。
【００５５】
なお、購読条件にマッチするマッチング結果が複数ある場合には、隣接するＧＷ２から過去データの探索を要求されたＧＷ２の過去データ処理部２６は、各マッチング結果に対して同様の処理を行う。また、購読条件にマッチするマッチング結果がない場合には、隣接するＧＷ２から購読依頼を受けたＧＷ２の過去データ処理部２６は、隣接するＧＷ２に購読条件と共に過去データの探索求を送信する。
【００５６】
次に、ＧＷ２の処理のフローについて説明する。図５は、ＧＷ２の処理のフローを示すフローチャートである。図５に示すように、ＧＷ２は、Ｐｕｂデータ受信か否かを判定する（ステップＳ１）。ここで、Ｐｕｂデータ受信とは、Ｐｕｂ４からデータを受信することであり、Ｐｕｂデータ受信は、送信元がＰｕｂ４であることによって特定される。Ｐｕｂ４が送信した送信データには、DeviceID、Key及びValueが含まれる。
【００５７】
そして、ＧＷ２は、Ｐｕｂデータ受信である場合には、データをデバイス情報蓄積部２３へ格納する蓄積型データ処理を行い（ステップＳ２）、マッチ条件にマッチするデータをＳｕｂ５へ転送するためにリアルタイム型データ処理を行う（ステップＳ３）。
【００５８】
一方、Ｐｕｂデータ受信でない場合には、ＧＷ２は、購読受信か否かを判定する（ステップＳ４）。ここで、購読受信とは、Ｓｕｂ５から購読依頼を受信することであり、購読受信は、送信元がＳｕｂ５であることによって特定される。Ｓｕｂ５が送信した送信データには、Ｓｕｂ５を識別するDeviceIDと購読条件が含まれる。購読条件には、時刻条件が含まれる場合がある。
【００５９】
そして、ＧＷ２は、購読受信である場合には、ルーティング情報を更新するためにリアルタイム型データ処理を行う（ステップＳ５）。また、購読条件に時刻条件が含まれる場合には、ＧＷ２は、リアルタイム型データ処理において過去データの探索も行う。
【００６０】
一方、購読受信でない場合には、ＧＷ２は、転送データ受信であるか否かを判定する（ステップＳ６）。ここで、転送データ受信とは、隣接するＧＷ２から転送されたデータを受信することであり、転送データ受信は、隣接するＧＷ２からデータを受信することで特定される。隣接するＧＷ２が転送した転送データには、DeviceID、Key及びValueが含まれる。
【００６１】
そして、ＧＷ２は、転送データ受信である場合には、マッチ条件にマッチするデータをＳｕｂ５へ転送するためにリアルタイム型データ処理を行う（ステップＳ７）。一方、転送データ受信でない場合には、ＧＷ２は、更新情報受信であるか否かを判定する（ステップＳ８）。ここで、更新情報受信とは、ルーティング情報の更新情報を隣接するＧＷ２から受信することであり、更新情報受信は、隣接するＧＷ２から条件を含む転送データを受信することで特定される。隣接するＧＷ２が転送した転送データには、nexthopとマッチ条件が含まれる。そして、ＧＷ２は、更新情報受信である場合には、ルーティング情報を更新するルーティング情報更新処理を行う（ステップＳ９）。
【００６２】
このように、ＧＷ２は、送信元の情報及び受信情報に基づいて蓄積型データ処理、リアルタイム型データ処理及びルーティング情報更新処理から１つ又は２つの処理を選択して実行することで、ＩｏＴサービス基盤を提供することができる。
【００６３】
次に、蓄積型データ処理のフローについて説明する。図６は、蓄積型データ処理のフローを示すフローチャートである。なお、蓄積型データ処理の入力パラメータは、DeviceID、Key及びValueである。図６に示すように、蓄積型データ処理部２２は、入力パラメータに基づいて、DeviceIDと受信した時刻と共にデバイス情報蓄積部２３へデータを格納する（ステップＳ１１）。
【００６４】
このように、蓄積型データ処理部２２が、DeviceIDと受信した時刻と共にデータをデバイス情報蓄積部２３へ格納することで、過去情報提供システム１は過去のデータをＳｕｂ５に提供することができる。
【００６５】
次に、リアルタイム型データ処理のフローについて説明する。図７は、リアルタイム型データ処理のフローを示すフローチャートである。なお、リアルタイム型データ処理の入力パラメータは、Ｐｕｂデータ受信の場合には、DeviceID、Key及びValueであり、購読受信の場合には、Ｓｕｂ５を識別するDeviceIDと購読条件である。
【００６６】
図７に示すように、リアルタイム型データ処理部２４は、Ｐｕｂデータ受信又は転送データ受信であるか否かを判定する（ステップＳ２１）。そして、Ｐｕｂデータ受信又は転送データ受信である場合には、リアルタイム型データ処理部２４は、次の転送先のＧＷ２が存在するか否かを判定し（ステップＳ２２）、次の転送先のＧＷ２が存在しない場合には、Ｓｕｂ５へデータを送信する（ステップＳ２５）。一方、次の転送先のＧＷ２が存在する場合には、リアルタイム型データ処理部２４は、マッチング結果を更新するマッチング結果更新処理を行い（ステップＳ２３）、受信した情報を次のＧＷ２へ転送する（ステップＳ２４）。
【００６７】
また、Ｐｕｂデータ受信でも転送データ受信でもない場合には、リアルタイム型データ処理部２４は、購読受信であるか否かを判定し（ステップＳ２７）、購読受信でない場合には、処理を終了する。
【００６８】
一方、購読受信である場合には、リアルタイム型データ処理部２４は、購読依頼から更新条件と過去データ探索クエリとを生成する（ステップＳ２８）。ここで、更新条件とは、ルーティング情報の更新に用いられるマッチ条件である。また、過去データ探索クエリは、過去データの探索要求であり、購読の条件と時刻条件を含む。なお、購読依頼に時刻条件が含まれていない場合には、過去データ探索クエリは生成されない。
【００６９】
そして、更新条件に関して、リアルタイム型データ処理部２４は、ルーティング情報を更新し（ステップＳ２９）、ルーティング情報の更新情報の転送先が存在するか否かを判定する（ステップＳ３０）。そして、存在する場合には、リアルタイム型データ処理部２４は、ルーティング情報の更新情報を転送する（ステップＳ３１）。
【００７０】
また、過去データ探索クエリに関しては、リアルタイム型データ処理部２４は、過去データ処理部２６に過去データの探索を要求する（ステップＳ３２）。
【００７１】
このように、リアルタイム型データ処理部２４が、Ｐｕｂ４により発信されたデータ、隣接するＧＷ２から転送されたデータ、Ｓｕｂ５から送信された購読依頼を処理することによって、過去情報提供システム１は、リアルタイム型のデータ提供を行うことができる。
【００７２】
次に、ルーティング情報更新処理のフローについて説明する。図８は、ルーティング情報更新処理のフローを示すフローチャートである。なお、ルーティング情報更新処理の入力パラメータは、nexthopとマッチ条件である。
【００７３】
図８に示すように、リアルタイム型データ処理部２４は、ルーティング情報の更新情報としてnexthopとマッチ条件を受信する（ステップＳ４１）。そして、リアルタイム型データ処理部２４は、ルーティング情報を更新し（ステップＳ４２）、ルーティング情報の更新情報の転送先が存在するか否かを判定する（ステップＳ４３）。
【００７４】
そして、ルーティング情報の更新情報の転送先が存在する場合には、リアルタイム型データ処理部２４は、自身のＧＷ２をnexthopとしてルーティング情報の更新情報を転送する（ステップＳ４４）。
【００７５】
このように、各ＧＷ２がルーティング情報の更新情報を転送していくことによって、過去情報提供システム１は全てのルーティング情報を更新することができる。
【００７６】
次に、マッチング結果更新処理のフローについて説明する。図９は、マッチング結果更新処理のフローを示すフローチャートである。図９に示すように、リアルタイム型データ処理部２４は、Ｐｕｂデータ受信であるか転送データ受信であるかを判定し（ステップＳ５１）、転送データ受信である場合には、マッチング結果を残すか否かを判定する（ステップＳ５２）。その結果、マッチング結果を残さない場合には、リアルタイム型データ処理部２４は、処理を終了する。
【００７７】
一方、マッチング結果を残す場合、あるいは、Ｐｕｂデータ受信である場合には、リアルタイム型データ処理部２４は、データの転送元とデータの発信時刻の組をルーティング情報のマッチング結果に追加する（ステップＳ５３）。
【００７８】
このように、リアルタイム型データ処理部２４は、ルーティング情報のマッチング結果にデータの転送元とデータの発信時刻の組を追加することによって、過去データの探索を効率よく行うことができる。
【００７９】
次に、過去データの探索要求の処理のフローについて説明する。図１０は、過去データの探索要求の処理のフローを示すフローチャートである。図１０に示すように、過去データ処理部２６は、リアルタイム型データ処理部２４からの探索要求であるか否かを判定する（ステップＳ６１）。
【００８０】
そして、リアルタイム型データ処理部２４からの探索要求である場合には、過去データ処理部２６は、一時蓄積部２７を生成し（ステップＳ６２）、購読条件にマッチするマッチング結果が存在するか否かを判定する（ステップＳ６３）。
【００８１】
そして、購読条件にマッチするマッチング結果が存在する場合には、過去データ処理部２６は、マッチング結果に含まれるｓｒｃがＰｕｂ４であるか否かを判定する（ステップＳ６４）。そして、Ｐｕｂ４である場合には、過去データ処理部２６は、一時蓄積部２７にデータを格納し（ステップＳ６５）、Ｐｕｂ４でない場合には、ｓｒｃが示すＧＷ２へ過去データの探索要求を送信する（ステップＳ６６）。一方、購読条件にマッチするマッチング結果が存在しない場合は、過去データ処理部２６は、隣接するＧＷ２へ過去データの探索要求を送信する（ステップＳ６７）。
【００８２】
その後、過去データ処理部２６は、一定時間経過したか否かを判定し（ステップＳ６８）、一定時間経過していない間は、一定時間経過したか否かの判定を繰り返す。この間、過去データの探索要求を受信したＧＷ２から一時蓄積部２７へ過去データが送られてくると、過去データ処理部２６は、過去データを一時蓄積部２７へ格納する。そして、一定時間経過した場合には、過去データ処理部２６は、一時蓄積部２７内のデータを時刻順に並べてＳｕｂ５へ転送し（ステップＳ６９）、一時蓄積部２７を削除する（ステップＳ７０）。
【００８３】
また、リアルタイム型データ処理部２４からの探索要求でない場合、すなわち、隣接するＧＷ２からの探索要求である場合には、過去データ処理部２６は、購読条件にマッチするマッチング結果が存在するか否かを判定する（ステップＳ７１）。そして、購読条件にマッチするマッチング結果が存在する場合には、過去データ処理部２６は、マッチング結果に含まれるｓｒｃがＰｕｂ４であるか否かを判定する（ステップＳ７２）。そして、Ｐｕｂ４である場合には、過去データ処理部２６は、一時蓄積部２７にデータを転送する（ステップＳ７３）。
【００８４】
一方、マッチング結果に含まれるｓｒｃがＰｕｂ４でない場合は、過去データ処理部２６は、ｓｒｃが示すＧＷ２へ過去データの探索要求を送信する（ステップＳ７４）。また、購読条件にマッチするマッチング結果が存在しない場合は、過去データ処理部２６は、未処理の隣接ＧＷ２が存在するか否かを判定し（ステップＳ７５）、未処理の隣接ＧＷ２が存在する場合には、隣接するＧＷ２へ過去データの探索要求を送信する（ステップＳ７６）。
【００８５】
このように、過去データ処理部２６は、マッチング結果に含まれるｓｒｃが示すＧＷ２に過去データの探索要求を送信することで、過去データを効率よく探索することができる。
【００８６】
上述してきたように、実施例では、ルーティング情報格納部２５が、ルーティング情報のマッチ条件に対応させてマッチング結果を記憶する。そして、Ｓｕｂ５から過去データを含めた購読の依頼を受信すると、購読依頼を受けたＧＷ２の過去データ処理部２６は、一時蓄積部２７を生成し、購読条件にマッチするマッチング結果があると、マッチング結果に含まれるｓｒｃが示すＧＷ２へ過去データの探索要求を送信する。
【００８７】
したがって、ＧＷ２は、全ての他のＧＷ２に過去データの探索要求を送信する必要はなく、一部のＧＷ２だけに過去データの探索要求を送信するので、過去データを効率よく探索することができる。
【００８８】
また、遅延キューを用いる場合と比較して、過去情報提供システム１は、Ｐｕｂ４からデータを受信したＧＷ２だけがデータを記憶すればよく、保持すべきデータ量を半分にすることができる。
【００８９】
また、実施例では、マッチング結果へのデータの取得元と発信時刻の組の追加を、データが転送されたホップ数から算出される確率に基づいて行うので、データが局所的に利用される場合には、マッチング結果として保持する情報の量を増やさなくても、過去データの探索時間の増大を防ぐことができる。
【００９０】
なお、実施例では、過去情報提供装置としてのＧＷ２について説明したが、ＧＷ２が有する構成をソフトウェアによって実現することで、同様の機能を有する過去情報提供プログラムを得ることができる。そこで、過去情報提供プログラムを実行するＧＷ２のハードウェア構成について説明する。
【００９１】
図１１は、ＧＷ２のハードウェア構成を示す図である。図１１に示すように、ＧＷ２は、ＣＰＵ８０ａと、フラッシュメモリ８０ｂと、メモリ８０ｃと、表示部８０ｄと、無線通信部８０ｅと、通信部８０ｆとを有する。
【００９２】
ＣＰＵ８０ａは、メモリ８０ｃに記憶されたプログラムを読み出して実行する処理装置である。フラッシュメモリ８０ｂは、過去情報提供プログラム等を記憶する不揮発性のメモリである。
【００９３】
メモリ８０ｃは、フラッシュメモリ８０ｂから読み出された過去情報提供プログラムを記憶するＲＡＭ（Random  Access  Memory）である。また、メモリ８０ｃは、過去情報提供プログラムの実行に必要なデータ、過去情報提供プログラム実行の途中結果等を記憶する。
【００９４】
表示部８０ｄは、過去情報提供プログラムが出力する画面を表示する装置であり、例えば、液晶表示装置である。無線通信部８０ｅは、携帯電話用通信等の無線通信を行うモジュールである。通信部８０ｆは、他のＧＷ２等と有線通信を行うモジュールである。
【００９５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９６】
（付記１）コンピュータに、
通信可能な情報発信機器からデバイス情報を取得して、取得した時間と共にデバイス情報蓄積部に記憶し、
通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報としてルーティング情報格納部に記憶すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送し、
前記情報発信機器から取得したデバイス情報又は通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記ルーティング情報格納部に記憶し、
通信可能な情報購読機器から購読条件に過去に関する時刻条件を含む取得依頼を受信すると、前記取得依頼に関する過去のデバイス情報を蓄積する蓄積部を生成し、
前記ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断し、
前記購読条件に一致するルーティング情報を記憶していると判断したときに、該ルーティング情報に含まれる前記取得元が情報発信機器であるか否かを判断し、
前記取得元が情報発信機器でないときには、前記取得元に前記取得依頼を転送し、前記取得元が情報発信機器であるときには、前記取得元から取得したデバイス情報を前記デバイス情報蓄積部から読み出して前記蓄積部に蓄積し、
前記取得元に転送した前記取得依頼に応じてデバイス情報を取得すると前記蓄積部に蓄積し、
前記蓄積部を生成してから所定時間経過後に前記蓄積部に蓄積されたデバイス情報を時系列順に並び替えて前記情報購読機器に送信する
処理を実行させることを特徴とする過去情報提供プログラム。
【００９７】
（付記２）デバイス情報の取得元と取得時間を前記マッチ条件に一致したルーティング情報に追加して前記ルーティング情報格納部に記憶する処理を、前記デバイス情報が転送されたホップ数から算出される確率に基づいて行うことを特徴とする付記１に記載の過去情報提供プログラム。
【００９８】
（付記３）第１のコンピュータが、
通信可能な第１情報発信機器からデバイス情報を取得して、取得した時間と共に第１デバイス情報蓄積部に記憶し、
通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報として第１ルーティング情報格納部に記憶すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送し、
前記第１情報発信機器から取得したデバイス情報又は通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記第１ルーティング情報格納部に記憶し、
通信可能な情報購読機器から購読条件に過去に関する時刻条件を含む取得依頼を受信すると、前記取得依頼に関する過去のデバイス情報を蓄積する蓄積部を生成し、
前記第１ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断し、
前記購読条件に一致するルーティング情報を記憶していると判断したときに、該ルーティング情報に含まれる取得元が第１情報発信機器であるか否かを判断し、
取得元が第１情報発信機器でないときには、取得元としての第２のコンピュータに前記取得依頼を転送し、取得元が第１情報発信機器であるときには、取得元から取得したデバイス情報を前記第１デバイス情報蓄積部から読み出して前記蓄積部に蓄積する処理を実行し、
第２のコンピュータが、
通信可能な第２情報発信機器からデバイス情報を取得して、取得した時間と共に第２デバイス情報蓄積部に記憶し、
通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報として第２ルーティング情報格納部に記憶すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送し、
前記第２情報発信機器から取得したデバイス情報又は通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記第２ルーティング情報格納部に記憶し、
前記第１のコンピュータから前記取得依頼を受信すると、前記第２ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断し、
前記購読条件に一致するルーティング情報を記憶していると判断したときに、該ルーティング情報に含まれる取得元が第２情報発信機器であるか否かを判断し、
取得元が第２情報発信機器でないときには、取得元に前記取得依頼を転送し、取得元が第２情報発信機器であるときには、前記取得元から取得したデバイス情報を前記第２デバイス情報蓄積部から読み出して前記第１のコンピュータに送信する処理を実行し、
前記第１のコンピュータが、さらに、
前記第２のコンピュータに転送した前記取得依頼に応じてデバイス情報を取得すると前記蓄積部に蓄積し、
前記蓄積部を生成してから所定時間経過後に前記蓄積部に蓄積されたデバイス情報を時系列順に並び替えて前記情報購読機器に送信する
処理を実行することを特徴とする過去情報提供方法。
【００９９】
（付記４）通信可能な情報発信機器からデバイス情報を取得して、取得した時間と共にデバイス情報蓄積部に格納する第１蓄積処理部と、
通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報としてルーティング情報格納部に格納すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送する第１格納処理部と、
前記情報発信機器から取得したデバイス情報又は通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記ルーティング情報格納部に格納する第２格納処理部と、
通信可能な情報購読機器から購読条件に過去に関する時刻条件を含む取得依頼を受信すると、前記取得依頼に関する過去のデバイス情報を蓄積する蓄積部を生成する生成部と、
前記ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断する第１判断部と、
前記第１判断部により前記購読条件に一致するルーティング情報を記憶していると判断されたときに、該ルーティング情報に含まれる前記取得元が情報発信機器であるか否かを判断する第２判断部と、
前記第２判断部により前記取得元が情報発信機器でないと判断されたときには、前記取得元に前記取得依頼を転送し、前記取得元が情報発信機器であると判断されたときには、前記取得元から取得したデバイス情報を前記デバイス情報蓄積部から読み出して前記蓄積部に蓄積する第１蓄積処理部と、
前記取得元に転送した前記取得依頼に応じてデバイス情報を取得すると前記蓄積部に蓄積する第２蓄積処理部と、
前記蓄積部を生成してから所定時間経過後に前記蓄積部に蓄積されたデバイス情報を時系列順に並び替えて前記情報購読機器に送信する送信部と
を有することを特徴とする過去情報提供装置。
【０１００】
（付記５）通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報としてルーティング情報格納部に記憶すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送し、
通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記ルーティング情報格納部に記憶し、
通信可能な情報購読機器から購読条件に過去に関する時刻条件を含む取得依頼を受信すると、前記取得依頼に関する過去のデバイス情報を蓄積する蓄積部を生成し、
前記ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断し、
前記購読条件に一致するルーティング情報を記憶していると判断したときに、該ルーティング情報に含まれる取得元に前記取得依頼を転送し、
前記取得元に転送した前記取得依頼に応じてデバイス情報を取得すると前記蓄積部に蓄積し、
前記蓄積部を生成してから所定時間経過後に前記蓄積部に蓄積されたデバイス情報を時系列順に並び替えて前記情報購読機器に送信する
処理を実行させることを特徴とする過去情報提供プログラム。
【０１０１】
（付記６）通知すべきデバイス情報のマッチ条件と該マッチ条件を満たすデバイス情報の転送先を含む取得依頼の情報を取得してルーティング情報としてルーティング情報格納部に格納すると共に、前記取得依頼に含まれる転送先を自装置に変えて前記取得依頼を所定の転送先に転送する第１格納処理部と、
通信可能な情報中継機器から取得したデバイス情報を対応するルーティング情報に含まれる転送先に転送すると共に、該デバイス情報の取得元と取得時間を該ルーティング情報に追加して前記ルーティング情報格納部に格納する第２格納処理部と、
通信可能な情報購読機器から購読条件に過去に関する時刻条件を含む取得依頼を受信すると、前記取得依頼に関する過去のデバイス情報を蓄積する蓄積部を生成する生成部と、
前記ルーティング情報格納部に前記取得依頼に含まれる購読条件に一致するルーティング情報を記憶しているか否かを判断する第２判断部と、
前記第２判断部により前記購読条件に一致するルーティング情報を記憶していると判断されたときに、該ルーティング情報に含まれる取得元に前記取得依頼を転送する転送部と、
前記転送部により前記取得元に転送された前記取得依頼に応じてデバイス情報を取得すると前記蓄積部に蓄積する蓄積処理部と、
前記蓄積部を生成してから所定時間経過後に前記蓄積部に蓄積されたデバイス情報を時系列順に並び替えて前記情報購読機器に送信する送信部と
を有することを特徴とする過去情報提供装置。
【符号の説明】
【０１０２】
１    過去情報提供システム
２    ＧＷ
３    ＮＷ
４    Ｐｕｂ
５    Ｓｕｂ
２１    デバイス情報受信部
２２    蓄積型データ処理部
２３    デバイス情報蓄積部
２４    リアルタイム型データ処理部
２５    ルーティング情報格納部
２６    過去データ処理部
２７    一時蓄積部
８０ａ    ＣＰＵ
８０ｂ    フラッシュメモリ
８０ｃ    メモリ
８０ｄ    表示部
８０ｅ    無線通信部
８０ｆ    通信部
９１    ビーコン
９２    スマホ
９３    ＧＷ
９４    ＤＣ
９５    発信者
９６    トピック
９７    購読者
９８    遅延キュー
【図１】
0006665697.tif 000002
【図２】
0006665697.tif 000003
【図３】
0006665697.tif 000004
【図４】
0006665697.tif 000005
【図５】
0006665697.tif 000006
【図６】
0006665697.tif 000007
【図７】
0006665697.tif 000008
【図８】
0006665697.tif 000009
【図９】
0006665697.tif 000010
【図１０】
0006665697.tif 000011
【図１１】
0006665697.tif 000012
【図１２】
0006665697.tif 000013
【図１３】
0006665697.tif 000014
【図１４】
0006665697.tif 000015