(57)【要約】【課題】  ２つ以上のデータを入力することにより演算結果を出力するプログラムが動作する処理基盤のリソースを効率的に使用できる情報処理装置等を提供する。【解決手段】  情報処理装置は、ネットワークを介して端末から取得した情報、情報の取得日時、情報を取得した位置情報を含む情報セットを用いてプログラムを実行するプログラム実行部と、情報セットに含まれる取得日時と現在日時との差分を遅延時間として情報を取得した位置情報と関連付けて格納する遅延時間算出部と、取得日時が最新である情報セットから、実行するプログラムが取得待ちする情報を取得する端末の位置情報を読み出し、遅延時間算出部に格納される、位置情報に近い位置情報に関連付けられた遅延時間に基づいて取得待ちする情報の遅延時間を予測する遅延時間予測部とを備え、予測された遅延時間に基づいて取得待ちする情報が取得されないと判断するとプログラムを終了する。【選択図】      図１
2015011414.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して通信可能な端末から、当該端末が取得した情報、当該情報の取得日時および当該情報を取得した位置情報を含む情報セットを用いてプログラムを実行するプログラム実行部と、
前記情報セットに含まれる前記取得日時と現在日時との差分を遅延時間として算出すると共に、当該遅延時間を前記情報を取得した位置情報と関連付けて格納する遅延時間算出部と、
前記情報セットのうち前記端末ごとに前記取得日時が最新である情報セットから、前記プログラム実行部が実行するプログラムが取得待ちする情報を取得する端末の位置情報を読み出すと共に、前記遅延時間算出部に格納される、当該位置情報に近い位置情報に関連付けられた遅延時間に基づいて、前記取得待ちする情報の遅延時間を予測する遅延時間予測部とを備え、
前記プログラム実行部は、前記遅延時間予測部により予測された遅延時間に基づいて前記取得待ちする情報が取得されないと判断するのに応じて前記プログラムを終了する
情報処理装置。
【請求項２】
前記通信ネットワークを介して前記端末から前記情報セットを受信する情報受信部をさらに備えた
請求項１記載の情報処理装置。
【請求項３】
前記遅延時間算出部は、前記算出した遅延時間を、前記情報を取得した位置情報に代えて前記情報の取得日時と関連付けて格納し、
前記遅延時間予測部は、前記情報セットのうち前記端末ごとに前記取得日時が最新である情報セットから、前記プログラム実行部が実行するプログラムが取得待ちする情報を取得する端末の位置情報に代えて前記情報の取得日時を読み出し、前記遅延時間算出部に格納される、当該情報の取得日時に近い前記情報の取得日時に関連付けられた遅延時間に基づいて、前記取得待ちする情報の遅延時間を予測する
請求項１または２記載の情報処理装置。
【請求項４】
前記情報受信部は、前記端末が取得した前記情報を前記通信ネットワークを介して送信する日時を、前記情報の取得日時として受信する
請求項２記載の情報処理装置。
【請求項５】
通信ネットワークを介して通信可能な端末から、当該端末が取得した情報、当該情報の取得日時および当該情報を取得した位置情報を含む情報セットを用いてプログラムをプログラム実行部によって実行し、
前記情報セットに含まれる前記取得日時と現在日時との差分を遅延時間として遅延時間算出部によって算出すると共に、当該遅延時間を前記情報を取得した位置情報と関連付けて当該遅延時間算出部に格納し、
前記情報セットのうち前記端末ごとに前記取得日時が最新である情報セットから、前記プログラム実行部が実行するプログラムが取得待ちする情報を取得する端末の位置情報を遅延時間予測部によって読み出すと共に、前記遅延時間算出部に格納される、当該位置情報に近い位置情報に関連付けられた遅延時間に基づいて、前記取得待ちする情報の遅延時間を前記遅延時間予測部によって予測し、
前記遅延時間予測部により予測された遅延時間に基づいて前記取得待ちする情報が取得されないと判断するのに応じて前記プログラム実行部は前記プログラムを終了する
情報処理方法。
【請求項６】
前記遅延時間算出部は、前記算出した遅延時間を、前記情報を取得した位置情報に代えて前記情報の取得日時と関連付けて格納し、
前記遅延時間予測部は、前記情報セットのうち前記端末ごとに前記取得日時が最新である情報セットから、前記プログラム実行部が実行するプログラムが取得待ちする情報を取得する端末の位置情報に代えて前記情報の取得日時を読み出し、前記遅延時間算出部に格納される、当該情報の取得日時に近い前記情報の取得日時に関連付けられた遅延時間に基づいて、前記取得待ちする情報の遅延時間を予測する
請求項５記載の情報処理方法。
【請求項７】
通信ネットワークを介して通信可能な端末から、当該端末が取得した情報、当該情報の取得日時および当該情報を取得した位置情報を含む情報セットを用いてプログラムを実行する処理と、
前記情報セットに含まれる前記取得日時と現在日時との差分を遅延時間として算出すると共に、当該遅延時間を前記情報を取得した位置情報と関連付けて遅延時間算出部に格納する処理と、
前記情報セットのうち前記端末ごとに前記取得日時が最新である情報セットから、前記実行されるプログラムが取得待ちする情報を取得する端末の位置情報を読み出すと共に、前記遅延時間算出部に格納される、当該位置情報に近い位置情報に関連付けられた遅延時間に基づいて、前記取得待ちする情報の遅延時間を予測する処理と、
前記予測された遅延時間に基づいて前記取得待ちする情報が取得されないと判断するのに応じて前記プログラムを終了する処理と
を、コンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つ以上のデータを入力すると共に、当該データを用いた演算結果を出力するプログラムを実行する情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
近年、スマートフォンや車載機などの端末に備えられているセンサが検出した結果を表す情報を、リアルタイムにクラウドシステムに収集すると共に、係る端末が存在する場所で起きている事象をリアルタイムに分析し、情報提供するサービスへの期待が高まっている。
【０００３】
例えば、特許文献１は、ウィンドウによって生存期間が定義されるデータに対して処理するストリームデータ処理方法を開示する。このストリームデータ処理方法では、遅延処理ハートビートタプル（ＨＢＴ）に従い、遅延タプルを除く演算結果を未確定フラグとともに即時に出力するとともに、再生に必要な途中処理結果を生存期間とともに保持する。そして、当該方法では、遅延タプル到着時には、遅延タプル、および処理結果復元タプルから正確な処理結果を算出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２６６００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
２つ以上のセンサデータを入力することにより演算結果を出力するプログラムを実行するストリームデータ処理装置では、当該プログラムが大量にストリームデータ処理装置のリソースを消費してしまうという問題が生じる。
【０００６】
その理由は、当該プログラムは、演算結果を出力するために必要なセンサデータの入力が終わるまでストリームデータ処理装置のリソースを確保する必要があるので、必要なセンサデータの入力を待つプログラムが増加するたびにリソースを消費してしまうためである。
【０００７】
特許文献１に開示される技術では、遅延情報（遅延処理ＨＢＴ）に従い、その遅延情報に対応するストリームデータ（１次情報）を除く処理結果を、未確定データであることを表すフラグとともにリアルタイム処理結果として即時に出力する。そして、再計算に必要な途中処理結果を生存期間とともに保持し、遅延情報に対応する１次情報が到着したときには、途中処理結果、および遅延情報に対応する１次情報から、正確な処理結果を遅延出力結果として算出する。
【０００８】
この方法では、ノードからデータが到着しない場合に影響が出るストリームデータを選択、抽出および管理する。そして、遅延タプル到着時に遅延処理結果出力、状態のみメンテナンスの切り替えを可能とすることで、保持メモリ量の減少、処理高速化を可能にしている。しかしながら、データの到着日時を考慮に入れていないため、リソースを効率的に使うことができないという課題がある。
【０００９】
本願発明は、上記課題を鑑みてなされたものであり、２つ以上のデータを入力することにより演算結果を出力するプログラムが動作する処理基盤のリソースを効率的に使用できる情報処理装置、情報処理方法および情報処理プログラムを提供することを主要な目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の情報処理装置は、通信ネットワークを介して通信可能な端末から、当該端末が取得した情報、当該情報の取得日時および当該情報を取得した位置情報を含む情報セットを用いてプログラムを実行するプログラム実行部と、前記情報セットに含まれる前記取得日時と現在日時との差分を遅延時間として算出すると共に、当該遅延時間を前記情報を取得した位置情報と関連付けて格納する遅延時間算出部と、前記情報セットのうち前記端末ごとに前記取得日時が最新である情報セットから、前記プログラム実行部が実行するプログラムが取得待ちする情報を取得する端末の位置情報を読み出すと共に、前記遅延時間算出部に格納される、当該位置情報に近い位置情報に関連付けられた遅延時間に基づいて、前記取得待ちする情報の遅延時間を予測する遅延時間予測部とを備え、前記プログラム実行部は、前記遅延時間予測部により予測された遅延時間に基づいて前記取得待ちする情報が取得されないと判断するのに応じて前記プログラムを終了する。
【００１１】
本発明の第１の情報処理方法は、通信ネットワークを介して通信可能な端末から、当該端末が取得した情報、当該情報の取得日時および当該情報を取得した位置情報を含む情報セットを用いてプログラムをプログラム実行部によって実行し、前記情報セットに含まれる前記取得日時と現在日時との差分を遅延時間として遅延時間算出部によって算出すると共に、当該遅延時間を前記情報を取得した位置情報と関連付けて当該遅延時間算出部に格納し、前記情報セットのうち前記端末ごとに前記取得日時が最新である情報セットから、前記プログラム実行部が実行するプログラムが取得待ちする情報を取得する端末の位置情報を遅延時間予測部によって読み出すと共に、前記遅延時間算出部に格納される、当該位置情報に近い位置情報に関連付けられた遅延時間に基づいて、前記取得待ちする情報の遅延時間を前記遅延時間予測部によって予測し、前記遅延時間予測部により予測された遅延時間に基づいて前記取得待ちする情報が取得されないと判断するのに応じて前記プログラム実行部は前記プログラムを終了する。
【００１２】
なお同目的は、上記の各構成を有する情報処理装置または情報処理方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１３】
本願発明によれば、２つ以上のデータを入力することにより演算結果を出力するプログラムが動作する情報処理装置のリソースを効率的に使用できるという効果が得られる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係るストリームデータ処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るストリームデータ処理装置のハードウエア構成を示す図である。
【図３】本発明の第１の実施形態に係るストリームデータ処理装置のデータ取得部の動作を示すフローチャートである。
【図４】本発明の第１の実施形態に係るストリームデータ処理装置のデータ取得部が取得したセンサデータの例を示す図である。
【図５】本発明の第１の実施形態に係るストリームデータ処理装置の遅延時間算出部の動作を示すフローチャートである。
【図６】本発明の第１の実施形態に係るストリームデータ処理装置の遅延時間格納部が格納する遅延履歴情報である。
【図７】本発明の第１の実施形態に係るストリームデータ処理装置のプレゼンス情報更新部の動作を示すフローチャートである。
【図８】本発明の第１の実施形態に係るストリームデータ処理装置のプレゼンス情報格納部が格納するプレゼンス情報の例を示す図である。
【図９】本発明の第１の実施形態に係るストリームデータ処理装置の終了日時情報の作成動作を説明するフローチャートである。
【図１０】本発明の第１の実施形態に係るストリームデータ処理装置の実行ルール格納部が格納する実行ルールの例を示す図である。
【図１１】本発明の第１の実施形態に係るストリームデータ処理装置の終了日時管理テーブルの例を示す図である。
【図１２】本発明の第１の実施形態に係るストリームデータ処理装置のイベント処理実行部の動作を示すフローチャートである。
【図１３】本発明の第２の実施形態に係る情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００１６】
第１の実施形態
図１は、本発明の第１の実施形態に係るストリームデータ処理装置１００の構成を示すブロック図である。
【００１７】
図１に示すように、ストリームデータ処理装置１００は、データ受信部１１０、遅延時間算出部１２０、遅延時間格納部１３０、プレゼンス情報更新部１４０、イベント処理部１５０、プレゼンス情報格納部１６０および遅延時間予測部１７０を備える。
【００１８】
イベント処理部１５０は、実行ルール判定部１５１、実行ルール格納部１５２、タイムウィンドウ設定部１５３およびイベント処理実行部１５４を備える。
【００１９】
ストリームデータ処理装置１００は、通信ネットワーク２０（以降、単に「ネットワーク２０」と称する）を介してセンサデータ取得部１０ａ、１０ｂ、・・・、１０ｃと通信可能である。図１に示すように、ストリームデータ処理装置１００は、センサデータ取得部１０ａ、１０ｂ、・・・、１０ｃから、ネットワーク２０を介してセンサデータを取得する。センサデータ取得部１０ａ−１０ｃ（以降、「センサデータ取得部１０」と表記する）は、センサデバイスが持つセンサ機能からデータを取得する機能を有する。
【００２０】
具体的には、センサデータ取得部１０は、携帯電話、スマートフォン、車載機などの端末（センサデバイス）に搭載されている、ＧＰＳ（Global Positioning System）受信機や加速度センサなどのセンサからデータを取得する機能を有する。センサデータ取得部１０は、センサが取得したデータ（値）、センサが当該データを取得した日時を示すセンサデータ取得日時、センサを一意に特定できるセンサＩＤ（Identifier）およびセンサがデータを取得した場所を一意に特定できる位置情報を少なくとも含むセンサデータを取得する。
【００２１】
センサデータ取得部１０は、センサデータを取得すると、当該センサデータをネットワーク２０を介してストリームデータ処理装置１００に送信する。ネットワーク２０を介してデータが送信されるとき、データ送信に遅延が生じる場合がある。
【００２２】
なお、センサデータ取得部１０は、１つ以上であればよく、その数は限定されない。ここでは、３つのセンサデータ取得部１０を用いて説明する。また、本実施形態では、位置情報として、ＧＰＳにより取得される緯度および経度の値を用いて説明するが、場所を一意に特定できれば位置情報は緯度および経度の値に限定されない。また、センサデータ取得部１０が付与するセンサデータの取得日時は、後述の遅延時間算出部１２０が扱う日時と同期している必要がある。同期させる方法として、ＮＴＰ（Network Time Protocol）を用いて正確な日時を取り扱うことが考えられるが、本願の本実施形態を例に説明する本発明は、それに限定されない。
【００２３】
図１に示すストリームデータ処理装置１００の各部は、コンピュータにより実現した場合、図２に例示するハードウエア資源において実現される。すなわち、図２に示す構成は、ＣＰＵ（Central Processing Unit）２００、メモリ等の記憶媒体２０１および記憶媒体２０１に含まれるプログラム２０２を備える。ストリームデータ処理装置１００のＣＰＵ２００は、各種ソフトウエア・プログラム（コンピュータ・プログラム）を実行することにより、ストリームデータ処理装置１００の全体的な動作を司る。本実施形態および以下に示す他の実施形態において、ＣＰＵ２００が、メモリ等の記憶媒体２０１を適宜参照しながら、以下に示すストリームデータ処理装置１００が備える各機能（各部）を実行するソフトウエア・プログラムを実行する。
【００２４】
以下、ストリームデータ処理装置１００の各機能の動作の概略を説明する。
【００２５】
データ受信部１１０は、ネットワーク２０を介してセンサデバイスが取得したセンサデータを受け取るインタフェース機能と、受け取ったセンサデータを遅延時間算出部１２０等に与える機能とを有する。
【００２６】
遅延時間算出部１２０は、センサデータ取得部１０からストリームデータ処理装置１００にセンサデータが送信された際に、ネットワーク２０を介して送信されたことにより生じたセンサデータの到着遅延時間を演算する機能を有する。
【００２７】
遅延時間格納部１３０は、データ受信部１１０が受け取ったセンサデータがネットワーク２０を介して送信されたことにより生じた遅延時間に関する遅延履歴情報を格納する。
【００２８】
プレゼンス情報更新部１４０は、データ受信部１１０が受け取ったセンサデータのうち、センサＩＤごとに最新のセンサデータのみをプレゼンス情報格納部１５０が格納するようにプレゼンス情報格納部１５０を更新する。プレゼンス情報格納部１５０は、データ受信部１１０が受け取ったセンサデータのうち、センサＩＤごとに最新のセンサデータのみを格納する。
【００２９】
イベント処理部１５０は、データ受信部１１０から受け取ったセンサデータを入力すると共に、決められた実行ルールに従い分析プログラムを実行（処理）することにより、実行結果を出力する機能を有する。
【００３０】
実行ルール格納部１５２は、センサデータの入力に基づいて動作する分析プログラムに関する実行ルールを格納する。
【００３１】
実行ルール判定部１５１は、受け取ったセンサデータに基づいて、実行ルール格納部１５２に格納される実行ルールに従って、分析プログラムを実行するか否かを判定する機能を有する。
【００３２】
タイムウィンドウ設定部１５３は、イベント処理実行部１５４が実行する分析プログラムの終了日時を表す終了日時情報を算出する機能を有する。
【００３３】
イベント処理実行部１５４は、センサデータを入力することにより実行を開始する１つ以上の分析プログラムを格納すると共に、終了日時情報に基づいて当該分析プログラムを実行および終了する機能を有する。
【００３４】
遅延時間予測部１７０は、分析プログラムが必要とするセンサデータの到着遅延時間を予測する機能を有する。
【００３５】
次に、ストリームデータ処理装置１００の各機能の動作の詳細を説明する。
【００３６】
図３は、データ受信部１１０の動作を示すフローチャートである。図３に示すように、データ受信部１１０は、ネットワーク２０を介してセンサデータ取得部１０からセンサデータを受信する（ステップＳ３０１）。ネットワーク２０は、公衆無線網を利用しており、時間帯、場所に応じて遅延を生じる。
【００３７】
データ受信部１１０は、受信したセンサデータを、遅延時間算出部１２０、プレゼンス情報更新部１４０、実行ルール判定部１５１およびイベント処理実行部１５４に送信する（ステップＳ３０２）。
【００３８】
図４は、データ受信部１１０が受信したセンサデータの例を示す図である。センサデータは、センサを一意に識別するセンサＩＤ、位置情報を表す緯度および経度、センサデータ取得日時およびセンサの値として加速度の値を含む。
【００３９】
図５は、遅延時間算出部１２０の動作を示すフローチャートである。図５に示すように、遅延時間算出部１２０は、センサデータ受信部１１０からセンサデータを取得すると、現在日時と、センサデータに含まれるセンサデータ取得日時との差分時間を、遅延時間として算出する（ステップＳ４０１）。遅延時間算出部１２０は、データ受信部１１０からセンサデータを受け取ると、その受け取った日時をデータ受信日時として取得する。遅延時間算出部１２０は、データ受信日時を現在日時とする。
【００４０】
例えば、図４に示す１レコード目のセンサデータ取得日時は「2013-03-18 16:00:00.000Z」であり、遅延時間算出部１２０が取得した現在日時が「2013-03-18 16:00:20.000Z」であるとすると、遅延時間算出部１２０は、両者の日時の差分である「２０秒」を遅延時間として算出する。
【００４１】
遅延時間算出部１２０は、受け取ったセンサデータに含まれる位置情報と、当該取得した遅延時間とを紐づけた情報を遅延履歴情報として遅延時間格納部１３０に格納する（ステップＳ４０２）。図６は、遅延時間格納部１３０が格納する遅延履歴情報の一例を示す図である。図６に示すように、遅延履歴情報は、例えば、センサデータが取得された場所の位置情報である緯度および経度、センサデータ取得日時、遅延時間算出部１２０が算出した遅延時間を含む。
【００４２】
図７は、プレゼンス情報更新部１４０の動作を示すフローチャートである。また、図８は、プレゼンス情報格納部１６０が格納するプレゼンス情報の例を示す図である。図８に示すように、プレゼンス情報格納部１６０は、少なくとも、センサＩＤ、位置情報、センサデータ取得日時を含むプレゼンス情報を格納する。
【００４３】
図７に示すように、プレゼンス情報更新部１４０は、センサＩＤ毎にセンサデータ取得日時が最新のセンサデータを取得した場合に値を更新する（ステップＳ５０１）。具体的には、プレゼンス情報更新部１４０は、データ受信部１１０からセンサデータを取得すると、センサデータに含まれるセンサＩＤと一致するデータがプレゼンス情報格納部１６０に格納されていない場合、センサＩＤ、位置情報、センサデータ取得日時の値をプレゼンス情報格納部１６０に格納する。
【００４４】
一方、センサデータに含まれるセンサＩＤと一致するデータがプレゼンス情報格納部１６０に格納されている場合、該当データを最新のセンサＩＤ、位置情報、センサデータ取得日時の値に更新する。プレゼンス情報は、センサＩＤ毎にユニークな値を持つ。
【００４５】
図９は、実行プログラムの終了日時情報の作成動作を説明するフローチャートである。終了日時情報とは、イベント処理部１５０が実行する分析プログラムが終了する日時を含む情報である。終了日時情報は、実行ルール判定部１５１、タイムウィンドウ設定部１５３および遅延時間予測部１７０により、イベント処理部１５０が実行する分析プログラムが終了する日時を、センサデータの到着遅延を考慮して算出される。
【００４６】
図９を用いて、終了日時情報の作成動作について説明する。
【００４７】
実行ルール判定部１５１は、データ受信部１１０からセンサデータを取得すると（Ｌ）、そのセンサＩＤに対応する実行ルールを、実行ルール格納部１５２から読み出す（ステップＳ６０１）。
【００４８】
図１０は、実行ルール格納部１５２が格納する実行ルールの例を示す図である。図１０に示すように、実行ルールは、少なくとも、実行ルールＩＤ、入力データスキーマ、処理プログラムＩＤおよび標準タイムウィンドウを含む。
【００４９】
入力データスキーマは、分析プログラムを実行開始するトリガーとなるセンサデータのセンサＩＤと、当該分析プログラムが実行開始してから演算結果を出力するために必要となる１つ以上のセンサデータのセンサＩＤと、各センサＩＤの入力の順番を含む。
【００５０】
処理プログラムＩＤは、複数の分析プログラムに対し、ぞれぞれのプログラムを一意に識別するためのＩＤである。具体的には、イベント処理実行部１５４が入力データスキーマに規定されたセンサデータを取得すると、当該センサデータに対応する実行ルールに記載された処理プログラムＩＤで指定される分析プログラムが実行される。
【００５１】
標準タイムウィンドウは、ネットワークによるセンサデータの到達遅延がなかった場合における、分析プログラムの実行開始から終了までの最大時間を表す。具体的には、分析プログラムが実行開始してから、標準タイムウィンドウで定められた時間までの間のみ、必要となる全てのセンサデータを入力し、当該分析プログラムを終了して実行結果を出力をする。
【００５２】
つまり、標準タイムウィンドウで定められた時間までの間に必要となる全てのセンサデータを入力されなかった場合、分析プログラムは、実行結果を出力することなく終了される（詳細は、図１２を参照して後述する）。
【００５３】
続いて、実行ルール判定部１５１は、実行ルール格納部１５２から、入力データスキーマに含まれる、実行開始のトリガーとなるセンサデータのセンサＩＤ（入力データスキーマの先頭に記載されるセンサＩＤ）とセンサデータ受信部１１０からのセンサデータのセンサＩＤが一致する実行ルールを全て読み出す。このような実行ルールがある場合（ステップＳ６０２）、当該実行ルールとセンサデータ受信部１１０からのセンサデータとをタイムウィンドウ設定部１５３に送る（ステップＳ６０３）。
【００５４】
具体的には、実行ルール判定部１５１は、センサデータ受信部１１０からセンサＩＤ＝“Ａ”であるセンサデータを受信すると、図１０に示す実行ルールから、実行ルールＩＤ＝“１”，“３”，“４”の実行ルールを読み出すと共に、それらをセンサデータＡと共にタイムウィンドウ設定部１５３に送る。
【００５５】
上記実行ルールがない場合（ステップＳ６０２）、実行ルール判定部１５１は処理を終了する。
【００５６】
次に、タイムウィンドウ設定部１５３は、実行ルール判定部１５１から受け取った実行ルールに含まれる入力データスキーマの値を、遅延時間予測部１７０に送信する（ステップＳ６０４）。
【００５７】
遅延時間予測部１７０は、タイムウィンドウ設定部１５３から入力データスキーマの値を受け取ると、以下の動作により予測遅延時間を算出すると共に、その時間をタイムウィンドウ設定部１５３に返す。
【００５８】
すなわち、遅延時間予測部１７０は、タイムウィンドウ設定部１５３から入力データスキーマの値を受け取ると、当該入力データスキーマに記載されるセンサＩＤのうち、既に受け取り済みのセンサデータ（入力データスキーマの先頭に記載されるセンサＩＤを持つセンサデータ）以外のセンサデータのセンサＩＤを含むプレゼンス情報を、プレゼンス情報格納部１６０から取得する（ステップＳ６０５）。
【００５９】
ここで、入力データスキーマに、受け取り済みのセンサデータ以外のセンサデータを示すセンサＩＤが２つ以上含まれる場合は、遅延時間予測部１７０は、それぞれのセンサＩＤを含むプレゼンス情報を取得する。
【００６０】
具体的には、遅延時間予測部１７０は、図１０に示す実行ルールＩＤ＝“１”の実行ルールに含まれる入力データスキーマ＝“Ａ⇒Ｂ”を受け取ったとき、ストリームデータ処理装置１００は、センサＩＤ＝“Ａ”のセンサデータを受け取り済みで、センサＩＤ＝“Ｂ”のセンサデータの入力待ち状態にある。
【００６１】
遅延時間予測部１７０は、センサＩＤ＝“Ｂ”のセンサデータを取得するために、センサＩＤ＝“Ｂ”を持つプレゼンス情報を、図８に示すプレゼンス情報格納部１６０から読み出す。
【００６２】
同様に、遅延時間予測部１７０は、図１０に示す実行ルールＩＤ＝“３”の実行ルールに含まれる入力データスキーマの値「Ａ⇒Ａ」に関して、センサＩＤ＝“Ａ”を持つプレゼンス情報をプレゼンス情報格納部１６０から読み出す。
【００６３】
同様に、遅延時間予測部１７０は、図１０に示す実行ルールＩＤ＝“４”の実行ルールに含まれる入力データスキーマの値「Ａ⇒Ｂ⇒Ｃ」に関して、センサＩＤ＝“Ｂ”、“Ｃ”を持つプレゼンス情報をプレゼンス情報格納部１６０から読み出す。
【００６４】
次に、遅延時間予測部１７０は、プレゼンス情報格納部１６０から取得したプレゼンス情報に含まれる位置情報をキーとして、その位置情報に近い位置情報を含む遅延履歴情報を遅延時間格納部１３０から取得する（ステップＳ６０６）。ここで、遅延時間予測部１７０は、２つ以上のプレゼンス情報を取得している場合、それぞれのプレゼンス情報に関する遅延履歴情報を取得する。
【００６５】
ここで、プレゼンス情報に含まれる位置情報に近い位置情報を含む遅延履歴情報とは、当該プレゼンス情報に含まれる位置情報の値に近い（場所が近い）位置情報を含む遅延履歴情報である。例えば、遅延時間予測部１７０は、実行ルールが必要としているセンサデータのプレゼンス情報に含まれる緯度±0.0002かつ経度±0.0002である位置情報を含む遅延履歴情報を、当該センサデータのプレゼンス情報に近い遅延履歴情報としてもよい。
【００６６】
具体的には、実行ルールＩＤ＝“１”である実行ルールが必要としているセンサデータのセンサＩＤは“Ｂ”であり、遅延時間予測部１７０がプレゼンス情報格納部１６０から取得したセンサＩＤ＝“Ｂ”のプレゼンス情報は、（センサＩＤ、緯度、経度、センサデータ取得日時）＝（Ｂ、35.12370、139.12370、2013-03-18 16:00:01.000Z）である。遅延時間予測部１７０は、このプレゼンス情報に含まれる位置情報に近い遅延履歴情報を、遅延時間格納部１３０から取得する。
【００６７】
上述のように、遅延時間予測部１７０は、プレゼンス情報に含まれる緯度±0.0002かつ経度±0.0002である位置情報を含む遅延履歴情報を、「近い」遅延履歴情報とする場合、遅延時間予測部１７０は、実行ルールＩＤ＝“１”が必要としているセンサデータのセンサＩＤが“Ｂ”のとき、図６に示す遅延履歴情報のうち、（緯度、経度、センサデータ取得日時、遅延時間）＝（35.12371、139.12369、2013-03-18 16:00:04.000Z、20）を、遅延履歴情報として取得する。
【００６８】
同様に、実行ルールＩＤ＝“３”が必要としているセンサデータのセンサＩＤは“Ａ”であるので、遅延時間予測部１７０は、（緯度、経度、センサデータ取得日時、遅延時間）＝（35.12340、139.12340、2013-03-18 16:00:00.000Z、20）、（緯度、経度、センサデータ取得日時、遅延時間）＝（35.12341、139.12341、2013-03-18 16:00:01.000Z、25）および（緯度、経度、センサデータ取得日時、遅延時間）＝（35.12339, 139.12339（, 2013-03-18 16:00:02.000Z,45)を遅延履歴情報として取得する。
【００６９】
同様に、実行ルールＩＤ＝“４”が必要としているセンサデータのセンサＩＤは“Ｂ”であるので、（緯度、経度、センサデータ取得日時、遅延時間）＝（35.12371, 139.12369, 2013-03-18 16:00:04.000Z,20)を遅延履歴情報として取得する。さらに、当該実行ルールＩＤ＝“４”は、センサＩＤ＝“Ｃ”のセンサデータも必要とするので、（緯度、経度、センサデータ取得日時、遅延時間）＝（36.12380, 140.12380, 2013-03-18 16:00:05.000Z,5)を遅延履歴情報として取得する。
【００７０】
次に、遅延時間予測部１７０は、遅延時間格納部１３０から取得した遅延履歴情報に含まれる遅延時間の最大値を予測遅延時間とする。すなわち、遅延時間予測部１７０は、２つ以上の遅延履歴情報を取得している場合は、それぞれの遅延時間のうち一番長い遅延時間を予測遅延時間とする。遅延時間予測部１７０は、取得した予測遅延時間を、タイムウィンドウ設定部１５３に送る（ステップＳ６０７）。
【００７１】
具体的には、遅延時間予測部１７０は、実行ルールＩＤ＝“１”の実行ルールに関して、遅延時間格納部１３０から取得した遅延時間情報の遅延時間において、最大値は２０[秒]であるので、２０[秒]を予測遅延時間としてタイムウィンドウ設定部１５３に送る。同様に、遅延時間予測部１７０は、実行ルールＩＤ＝“３”の実行ルールに関して、遅延時間格納部１３０から取得した遅延時間情報の遅延時間において、最大値は４５[秒]であるので、４５[秒]を予測遅延時間としてタイムウィンドウ設定部１５３に送信する。同様に、遅延時間予測部１７０は、実行ルールＩＤ＝“４”の実行ルールに関して、遅延時間格納部１３０から取得した遅延時間情報の遅延時間において、最大値は２０[秒]であるので、２０[秒]を予測遅延時間としてタイムウィンドウ設定部１５３に送信する。
【００７２】
なお、遅延時間予測部１７０は、プレゼンス情報の位置情報をキーとして、当該位置情報に近い位置情報を含む遅延時間情報に含まれる遅延時間を遅延時間格納部１３０から取得することを説明したが、本願の各実施形態を例に説明する本発明は、これに限られない。例えば、遅延時間情報にセンサデータ取得日時が含まれている場合、遅延時間予測部１７０は、実行ルールが必要としているセンサデータのプレゼンス情報に含まれるセンサデータ取得日時に最も値が近いセンサデータ取得日時に対応する遅延時間を遅延時間情報から取得してもよい。
【００７３】
次に、タイムウィンドウ設定部１５３は、遅延時間予測部１７０から予測遅延時間を受け取ると、終了日時情報を作成する（ステップＳ６０８）。
【００７４】
終了日時情報は、入力データスキーマ、処理プログラムＩＤ、処理終了日時の各値を含む。入力データスキーマは、当該分析プログラムが従う実行ルールに含まれる入力データスキーマである。処理プログラムＩＤは、実行する分析プログラムのＩＤである。処理終了日時は、当該分析プログラムが終了する予定の日時である。
【００７５】
処理終了日時は、現在の日時に、標準タイムウィンドウの値と予測遅延時間の値とを加算した日時である。上述したように、実行ルールＩＤ＝“１”の実行ルールに関して、遅延時間予測部１７０から取得した遅延時間は２０[秒]、標準タイムウィンドウの値は１５[秒]、現在時刻は2013-03-18 16:00:10.000Zとすると、処理終了日時は、2013-03-18 16:00:45.000Zとなる。この場合、タイムウィンドウ設定部１５３は、終了日時情報として、（実行ＩＤ,入力データスキーマ,処理プログラムＩＤ,処理終了日時）＝（20130318160045000, A⇒B, 1, 2013-03-18 16:00:45.000Z）を作成する。
【００７６】
同様に、実行ルールＩＤ＝“３”の実行ルールに関して、遅延時間予測部１７０から取得した遅延時間は４５[秒]、標準タイムウィンドウの値は１０[秒]、現在時刻は2013-03-18 16:00:15.000Zとすると、終了日時は、2013-03-18 16:01:10.000Zとなる。この場合、タイムウィンドウ設定部１５３は、終了日時情報として、（実行ＩＤ,入力データスキーマ,処理プログラムＩＤ,終了日時,待ちデータ）＝（20130318160110000, A⇒A, 3, 2013-03-18 16:01:10.000Z, A）を作成する。同様に、実行ルールＩＤ＝“４”の実行ルールに関して、遅延時間予測部１７０から取得した遅延時間は２０[秒]、標準タイムウィンドウの値は２０[秒]、現在時刻は2013-03-18 16:00:25.000Zとすると、終了日時は、2013-03-18 16:01:05.000Zとなる。この場合、タイムウィンドウ設定部１５３は、終了日時情報として、（実行ＩＤ,入力データスキーマ,処理プログラムＩＤ,終了日時,待ちデータ）＝（20130318160055000, A⇒B⇒C, 4, 2013-03-18 16:01:05.000Z, B）を作成する。
【００７７】
タイムウィンドウ設定部１５３は、上述のように作成した終了日時情報とセンサデータとを、イベント処理実行部１５４に送る（ステップＳ６０９）。
【００７８】
図１１は、イベント処理実行部１５４が保持する終了日時管理テーブルの例を示す図である。また、図１２は、イベント処理実行部１５４の動作を示すフローチャートである。図１１および図１２を参照して、イベント処理実行部１５４の動作について説明する。
【００７９】
イベント処理実行部１５４は、タイムウィンドウ設定部１５３から受け取った終了日時情報を、図１１に示すように終了日時管理テーブルに挿入する（ステップＳ７０４）。図１１に示すように、終了日時管理テーブルは、実行ＩＤ、入力データスキーマ、処理プログラムＩＤ、処理終了日時および待ちデータの各値を含む。ここでは、具体的には、イベント処理実行部１５４は、（実行ＩＤ,入力データスキーマ,処理プログラムＩＤ,処理終了日時,待ちデータ) = (20130318160045000, A⇒B, 1, 2013-03-18 16:00:45.000Z, B)である終了日時情報を、終了日時管理テーブルに挿入する。
【００８０】
また、イベント処理実行部１５４は、上記終了日時情報に含まれる処理プログラムＩＤと一致する分析プログラムの実行を開始する（ステップＳ７０４）。このとき、イベント処理実行部１５４は、図１１に示すように、実行する分析プログラムに実行ＩＤを付与する。実行ＩＤは、同一の実行ルールに基づいて実行される分析プログラムを複数動作させる際に、分析プログラムを識別するための識別子である。イベント処理実行部１５４は、実行する各種の分析プログラムを格納し、分析プログラムには、各々を一意に表すことのできる処理プログラムＩＤが付与されている。
【００８１】
具体的には、イベント処理実行部１５４は、終了日時管理テーブルを参照して、処理プログラムＩＤ＝“１”の分析プログラムを実行する。ここで、処理プログラムＩＤ＝“１”の分析プログラムは、２つのセンサデータを入力し、入力したセンサデータの平均値を求めるプログラムとする。この分析プログラムは、実行ルールの入力データスキーマに関して上述したように、センサデータをＡ，Ｂの順番に入力する。図９のステップＳ６０９に示したように、イベント処理実行部１５４は、センサデータＡを終了日時情報と共にタイムウィンドウ設定部１５３から受け取っている。したがって、イベント処理実行部１５４は、分析プログラムに、時刻＝（2013-03-18 16:00:00.000Z）に取得したセンサＩＤ＝“Ａ”の値（加速度０．１）を入力すると共に、当該分析プログラムの実行を開始する。
【００８２】
イベント処理実行部１５４は、常時、終了日時管理テーブルを参照することにより、分析プログラムの実行を管理する。イベント処理実行部１５４は、終了日時管理テーブルを参照し、処理終了日時を過ぎている分析プログラムを判定する（ステップＳ７０５）。処理終了日時を過ぎている分析プログラムがあれば、当該分析プログラムを強制終了する（ステップＳ７１０）。そして、イベント処理実行部１５４は、終了日時管理テーブルから、強制終了した分析プログラムに関する終了日時情報を削除する。
【００８３】
具体的には、現在日時が2013-03-18 16:00:40.000Zのときに参照した終了日時情報が、(実行ＩＤ,入力データスキーマ,処理プログラムＩＤ,終了日時,待ちデータ)＝(20130318160045000, A⇒B, 1, 2013-03-18 16:00:45.000Z, B)である場合、終了日時は現在日時を過ぎていないので、イベント処理実行部１５４はこの分析プログラムの実行を続ける。すなわち、この分析プログラムは、センサデータＢの入力を待機する。
【００８４】
また、現在日時が2013-03-18 16:00:50.000Zのときに、参照した終了日時情報が、(実行ＩＤ,入力データスキーマ,処理プログラムＩＤ,終了日時,待ちデータ)＝(20130318160045000, A⇒B, 1, 2013-03-18 16:00:45.000Z, B)である場合、終了日時は現在日時を過ぎているので、イベント処理実行部１５４はこの分析プログラムを強制終了する。また、イベント処理実行部１５４は、終了日時管理テーブルから、上記終了日時情報のレコードを削除する。
【００８５】
一方、イベント処理実行部１５４は、図３のステップＳ３０２において、データ受信部１１０からセンサデータを受け取ると、終了日時管理テーブルを参照する（ステップＳ７０１）。イベント処理実行部１５４は、受け取ったセンサデータが、実行している分析プログラムが必要としているセンサデータか否かを判断する（ステップＳ７０２）。分析プログラムが必要としているセンサデータでない場合、イベント処理実行部１５４は、当該センサデータを破棄する（ステップＳ７０３）。
【００８６】
一方、分析プログラムが必要としているセンサデータである場合、イベント処理実行部１５４は、当該分析プログラムにセンサデータを入力する（ステップＳ７０７）。
【００８７】
具体的には、イベント処理実行部１５４は、データ受信部１１０からセンサデータＢ＝(センサＩＤ,緯度,経度,センサデータ取得日時,加速度)=(B, 35.12339, 139.12341, 2013-03-18 16:00:40.000Z, 0.5)を入力したとする。ここで、センサデータのセンサＩＤ＝“Ｂ”であるので、イベント処理実行部１５４は、センサＩＤ＝“Ｂ”をキーとして終了日時管理テーブルの待ちデータを検索することにより、センサデータＢを必要とする分析プログラムを検索する。図１１の場合、実行ＩＤ＝“20130318160045000”と実行ＩＤ＝“20130318160055000”の分析プログラムが、センサデータＢを必要としている。したがって、イベント処理実行部１５４は、実行ＩＤ＝“20130318160045000”の分析プログラムと実行ＩＤ＝“20130318160055000”の分析プログラムに、センサデータ受信部１１０から受け取ったセンサデータＢの値を入力する。
【００８８】
続いて、イベント処理実行部１５４は、実行中の分析プログラムはさらにセンサデータを入力する必要があるか否かを判断する（ステップＳ７０８）。
【００８９】
例えば、イベント処理実行部１５４は、実行ＩＤ＝“20130318160045000”の分析プログラムを実行中にセンサデータＢをセンサデータ受信部１１０から受け取ったとする。イベント処理実行部１５４は、すでにセンサデータＡを入力している場合、センサデータＢを受け取ると分析プログラムが必要とするセンサデータをすべて受け取ったことになるので、すべてのセンサデータを受け取ったと判断する。
【００９０】
一方で、実行ＩＤ＝“20130318160055000”である分析プログラムを実行中にセンサデータＢをセンサデータ受信部１１０から受け取ったとき、イベント処理実行部１５４は、さらにセンサデータＣが必要であると判断する。このとき、当該分析プログラムは、センサデータＣの入力を待機している。またイベント処理実行部１５４は、終了日時情報に含まれる「待ちデータ」の値を“Ｃ”に更新する。すなわち、終了日時情報を(実行ＩＤ,入力データスキーマ,処理プログラムＩＤ,終了日時,待ちデータ)＝（20130318160055000, A⇒B⇒C, 4, 2013-03-18 16:01:05.000Z, C）に更新する。また、イベント処理実行部１５４は、入力待機中に現在日時が処理終了日時を過ぎた場合、当該分析プログラムを強制終了すると共に、処理日時管理テーブルから強制終了した分析プログラムに関する終了日時情報を削除する（ステップＳ７１０）。
【００９１】
イベント処理実行部１５４は、実行中の分析プログラムに記述される処理を実行し、実行結果を出力する（ステップＳ７０９）。そして、イベント処理実行部１５４は、処理日時管理テーブルから、出力を終えた終了日時情報を削除する。具体的には、イベント処理実行部１５４は、終了日時情報＝(20130318160045000, A⇒B, 1, 2013-03-18 16:00:45.000Z)に関して、処理プログラムＩＤ＝“１”の分析プログラムを実行し、センサデータＡに含まれる加速度０．１とセンサデータＢに含まれる加速度０．０５を入力すると、分析プログラムは２つの入力値の平均値０．０７５を出力する。そして、イベント処理実行部１５４は、日時管理テーブルから実行ＩＤ＝“20130318160045000”である終了日時情報を削除する。
【００９２】
以上の手順により、ストリームデータ処理装置１００は、プログラムが必要とするセンサデータの到着遅延時間を考慮すると共に、ストリームデータ処理装置１００のリソースを効率的に使用しながらプログラムを実行することが可能となる。
【００９３】
以上説明したように、本第１の実施形態によれば、ネットワークを介して２つ以上のセンサデータをセンサデバイスから入力することにより演算結果を出力するプログラムを実行するストリームデータ処理装置１００において、遅延時間算出部１２０は、センサデータの受信がネットワーク２０を介したことによる遅延時間を算出すると共に、そのセンサデータが取得された位置情報を関連付けて格納する。そして、遅延時間予測部１７０は、上記プログラムが入力待ちするセンサデータを取得するセンサデバイスの最新の位置情報に近い位置情報に関連付けられた遅延時間に基づいて、当該入力待ちするセンサデータの予測遅延時間を算出する。プログラムを実行するイベント処理実行部１５４は、入力待ちするセンサデータが予測遅延時間を過ぎても入力しない場合、そのプログラムを強制的に終了する。
【００９４】
上記構成を採用することにより、本第１の実施形態によれば、ストリームデータ処理装置１００が実行するプログラムが必要とするセンサデータのうち到着可能性のあるセンサデータについては待機した後に当該プログラムを実行し、予測遅延時間を過ぎてもセンサデータを入力しないプログラムを強制終了する。この構成により、予測遅延時間よりも到着が遅延しているセンサデータを待機するプログラムが確保しているストリームデータ処理装置１００のリソースを解放できるので、ストリームデータ処理装置１００のリソースを効率的に使用することができるという効果が得られる。
【００９５】
第２の実施形態
図１３は、本発明の第２の実施形態に係る情報処理装置８００の構成を示すブロック図である。図１３に示すように、情報処理装置８００は、プログラム実行部８０１、遅延時間算出部８０２および遅延時間予測部８０３を備える。
【００９６】
プログラム実行部８０１は、通信ネットワークを介して通信可能な端末（センサデバイス）から、当該端末が取得した情報（センサデータ）、当該情報の取得日時および当該情報を取得した位置情報を含む情報セットを用いてプログラムを実行する。
【００９７】
遅延時間算出部８０２は、情報セットに含まれる取得日時と現在日時との差分を遅延時間として算出すると共に、当該遅延時間を情報を取得した位置情報と関連付けて格納する。
【００９８】
遅延時間予測部８０３は、情報セットのうち端末ごとに取得日時が最新である情報セットから、プログラム実行部８０１が実行するプログラムが取得待ちする情報を取得する端末の位置情報を読み出すと共に、遅延時間算出部８０２に格納される、当該位置情報に近い位置情報に関連付けられた遅延時間に基づいて、取得待ちする情報の遅延時間を予測する。
【００９９】
プログラム実行部８０２はまた、遅延時間予測部８０３により予測された遅延時間に基づいて取得待ちする情報が取得されないと判断するのに応じてプログラムを終了する。
【０１００】
上記構成を採用することにより、本第２の実施形態は、２つ以上のデータを入力することにより演算結果を出力するプログラムが動作する情報処理装置のリソースを効率的に使用できるという効果を奏する。
【０１０１】
なお、上述した各実施形態では、図１および図１３に示すストリームデータ処理装置および情報処理装置を、図２に示すＣＰＵ２００が実行する一例として、ソフトウエア・プログラムによって実現する場合について説明した。しかしながら、図１および図１３に示す各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。
【０１０２】
また、上述した各実施形態を例に説明した本発明は、上述したストリームデータ処理装置および情報処理装置に対して、その説明において参照したフローチャート（図３、図５、図７、図９、図１２）の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、ＣＰＵ２００に読み出して実行することによって達成される。
【０１０３】
また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ（一時記憶媒体）またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
【産業上の利用可能性】
【０１０４】
本発明は、例えば、交通情報システムなどのリアルタイム性が要求される配信システム
に適用できる。
【符号の説明】
【０１０５】
１００  ストリームデータ処理装置
１１０  データ受信部
１２０  遅延時間算出部
１３０  遅延時間格納部
１４０  プレゼンス情報更新部
１５０  イベント処理部
１５１  実行ルール判定部
１５２  実行ルール格納部
１５３  タイムウィンドウ設定部
１５４  イベント処理実行部
１６０  プレゼンス情報格納部
１７０  遅延時間予測部
【図１】
2015011414.tif 000003
【図２】
2015011414.tif 000004
【図３】
2015011414.tif 000005
【図４】
2015011414.tif 000006
【図５】
2015011414.tif 000007
【図６】
2015011414.tif 000008
【図７】
2015011414.tif 000009
【図８】
2015011414.tif 000010
【図９】
2015011414.tif 000011
【図１０】
2015011414.tif 000012
【図１１】
2015011414.tif 000013
【図１２】
2015011414.tif 000014
【図１３】
2015011414.tif 000015