(57)【要約】【課題】高速データストリームを複数のアプリケーションで解析する場合において、可能な限り冗長な計算を省いて高速化をはかることができるようにする。【解決手段】解析対象となるデータを時々刻々と出力するデータ出力手段が出力するデータを逐次的に分析する情報処理装置に適用されるストリームデータ解析高速化装置であって、データ出力手段が出力したデータを、データの発生時間を考慮して解析するために、時系列に記憶するデータ記憶手段と、データ記憶手段が記憶するデータを複数のアプリケーションとして並列に解析する手段であって、それぞれ解析のインスタンスが独立に動作するデータ解析手段と、複数のデータ解析手段に共通する下位の解析手段を提供するライブラリであって、複数のデータ解析の並列実行に関して、冗長な計算を省いて高速化をはかるイベントデータ解析ライブラリ手段とを備える。【選択図】図１
2009087190.tif 000002
【特許請求の範囲】
【請求項１】
解析対象となるデータを時々刻々と出力するデータ出力手段が出力するデータを逐次的に分析する情報処理装置に適用されるストリームデータ解析高速化装置であって、
前記データ出力手段が出力したデータを、データの発生時間を考慮して解析するために、時系列に記憶するデータ記憶手段と、
前記データ記憶手段が記憶するデータを複数のアプリケーションとして並列に解析する手段であって、それぞれ解析のインスタンスが独立に動作するデータ解析手段と、
複数の前記データ解析手段に共通する下位の解析手段を提供するライブラリであって、複数のデータ解析の並列実行に関して、冗長な計算を省いて高速化をはかるイベントデータ解析ライブラリ手段と
を備えたことを特徴とするストリームデータ解析高速化装置。
【請求項２】
イベントデータ解析ライブラリ手段は、
データ解析手段が前記イベントデータ解析ライブラリ手段を利用する際のインタフェースを提供するサブ解析インタフェース手段と、
前記データ解析手段が前記サブ解析インタフェース手段を呼び出した際に、データ記憶手段が記憶するデータを使って計算をするのか、過去の計算結果を流用して計算するのかを判断するサブ解析方法決定手段と、
前記サブ解析インタフェース手段が提供する下位の解析に関して、前記データ記憶手段が記憶するデータを使って解析するサブ解析手段と、
前記サブ解析手段が解析した結果を、時間軸を考慮しながら再利用のために一時的に記憶するサブ解析結果共有記憶手段と
を含む請求項１記載のデータストリーム解析高速化装置。
【請求項３】
イベントデータ解析ライブラリ手段は、
データ解析手段がサブ解析インタフェース手段を呼び出した履歴を示す履歴情報のうち、最新の履歴情報を常に記憶する最新呼出履歴手段と、
複数のデータ解析手段が並列にかつ互いに独立に実行している状況に対して、互いに解析対象となるデータの解析単位を示す解析ウインドウを同期させるデータ解析スケジューリング手段と、
前記データ解析スケジューリング手段の結果を受けて、各データ解析手段が保持している解析ウインドウを時間軸でずらす解析データシフト手段と
を含む請求項１または請求項２記載のデータストリーム解析高速化装置。
【請求項４】
イベントデータ解析ライブラリ手段は、サブ解析結果共有記憶手段が記憶している解析結果の中で必要がないエントリーを削除するサブ解析結果共有記憶部管理手段を含む請求項１から請求項３のうちのいずれか１項に記載のデータストリーム解析高速化装置。
【請求項５】
サブ解析結果共有記憶部管理手段は、
データ記憶手段から削除されたデータを監視するデータ記憶部監視手段と、
前記データ記憶部監視手段が監視した結果に基づいて、前記サブ解析結果共有記憶手段が記憶している計算結果の中から再利用されないエントリーを検索し削除する再利用データ削除手段と
を有する請求項４記載のデータストリーム解析高速化装置。
【請求項６】
サブ解析結果共有記憶部管理手段は、サブ解析手段が実行する解析にかかる計算コストの見積りを記憶する計算コスト見積手段を有し、
サブ解析結果共有記憶手段は、再利用した場合の高速化の効果の見積り値を示す高速化度情報を記憶し、
再利用データ削除手段は、前記計算コスト見積手段が算出した計算コストデータをサブ解析結果共有記憶手段に高速化度情報として記憶し、前記高速化度情報に基づいて、サブ解析結果共有記憶手段が記憶している計算結果の中から再利用されないエントリーを抽出して削除する
請求項４または請求項５記載のデータストリーム解析高速化装置。
【請求項７】
イベントデータ解析ライブラリ手段は、サブ解析手段が計算にかかった時間を観測し、観測結果を計算コスト見積手段に計算コストの見積りとして記録するサブ解析観測手段を含む請求項６記載のデータストリーム解析高速化装置。
【請求項８】
サブ解析結果共有記憶手段は、計算結果を再利用した回数を示す情報を記憶し、
再利用データ削除手段は、サブ解析結果共有記憶手段からデータを削除する際に、計算結果を再利用した回数を示す情報に基づいて、利用頻度の少ないデータから削除する
請求項４から請求項７のうちのいずれか１項に記載のデータストリーム解析高速化装置。
【請求項９】
サブ解析結果共有記憶部管理手段は、サブ解析結果共有記憶手段の中から再利用の可能性が低いデータを削除する処理を実行するタイミングをはかる再利用共有記憶部管理タイミング判定手段を有する
請求項４から請求項８のうちのいずれか１項に記載のデータストリーム解析高速化装置。
【請求項１０】
時々刻々と出力されるデータを逐次的に分析するストリームデータ解析高速化方法であって、
発生したイベントデータを管理する処理ステップであり、解析するために記憶手段に一時的に記憶し、必要がなくなれば記憶手段から削除するデータフロー処理と、
前記データフロー処理で記憶しているイベントデータを複数の解析方法で並列に解析するイベントデータ解析処理と、
前記イベントデータ解析処理を複数のサブタスクに分割し、複数のイベント解析処理に共通に利用されるサブタスクについては過去の計算結果を再利用することで解析を高速化するイベントデータ共通解析処理と、
前記イベントデータ共通解析処理が高速に解析するために、過去の計算結果を記憶し、再利用の可能性をチェックするデータ再利用処理とを含み、
前記データフロー処理、イベントデータ解析処理、イベントデータ共通解析処理およびデータ再利用処理を並列に動作させる
ことを特徴とするデータストリーム解析高速化方法。
【請求項１１】
イベントデータ解析処理の複数のインスタンスにおける解析ウインドウを同期させるデータ解析スケジューリング処理を含む請求項１０記載のデータストリーム解析高速化方法。
【請求項１２】
データ解析スケジューリング処理で、同期がとれそうなイベントデータ解析処理のインスタンスを抽出するための元データを、イベントデータ共通解析処理の呼び出しを一時的に記録することで生成する呼出履歴管理処理と、
前記呼出履歴管理処理で蓄積した呼出履歴データを分析して、イベントデータ共通解析処理の解析ウインドウの解析開始のタイミングを制御するデータ解析スケジューリング処理と、
前記データ解析スケジューリング処理の結果をうけて、各イベントデータ解析処理の解析データをシフトするように要請するシフト要請処理と
を含む請求項１１記載のデータストリーム解析高速化方法。
【請求項１３】
記憶手段が記憶している解析結果の中で必要がないエントリーを削除する再利用データ削除処理を含む請求項１０から請求項１２のうちのいずれか１項に記載のデータストリーム解析高速化方法。
【請求項１４】
再利用データ削除処理で、データフロー処理を監視してすでにデータ記憶手段から削除されているデータの時間を検出する上書き監視処理と、
前記上書き監視処理の結果を受けて、データ再利用処理で記憶している過去の計算結果の中から、再利用されないデータを削除する削除処理と
を含む請求項１３に記載のデータストリーム解析高速化方法。
【請求項１５】
時々刻々と出力されるデータを逐次的に分析するためのストリームデータ解析高速化プログラムであって、
コンピュータに、
発生したイベントデータを管理し、解析するために記憶手段に一時的に記憶し、必要がなくなったときに記憶手段から削除するデータフロー処理と、
前記データフロー処理で記憶しているイベントデータを複数の解析方法で並列に解析するイベントデータ解析処理と、
前記イベントデータ解析処理を複数のサブタスクに分割し、複数のイベント解析処理に共通に利用されるサブタスクについては過去の計算結果を再利用することで解析を高速化するイベントデータ共通解析処理と、
前記イベントデータ共通解析処理が高速に解析するために、過去の計算結果を記憶し、再利用の可能性をチェックするデータ再利用処理と
を実行させるためのデータストリーム解析高速化プログラム。
【請求項１６】
イベントデータ解析処理の複数のインスタンスにおける解析ウインドウを同期させるデータ解析スケジューリング処理を実行させるための請求項１５記載のデータストリーム解析高速化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大量に、永続的に時々刻々と発生する情報を逐次的に分析するストリームデータ解析高速化装置、ストリームデータ解析高速化方法およびストリームデータ解析高速化プログラムに関し、特に、大量のセンサデータを複数のアプリケーションが同時に解析するストリームデータ解析高速化装置、ストリームデータ解析高速化方法およびストリームデータ解析高速化プログラムに関する。
【背景技術】
【０００２】
大量のデータを複数のアプリケーションが同時に解析する手段として、データベース管理システム（ＤＢＭＳ）が広く利用されている。特に、ＤＢＭＳの処理性能に応じてデータベースを利用するアプリケーションの性能も決定されるため、ＤＢＭＳの処理性能の向上は極めて重要である。
【０００３】
データベースは、多大な量のデータを扱うため、ＤＢＭＳの実行環境の多くにおいては、ＤＢＭＳが実行される計算機に対して大容量の記憶装置を接続し、記憶装置上にデータベースのデータを記憶する。そのため、データベースに関する処理を行う場合に、記憶装置に対してアクセスが発生し、記憶装置におけるデータアクセス性能がＤＢＭＳの性能を大きく左右する。従って、ＤＢＭＳが稼動するシステムにおいて、記憶装置におけるアクセスの最適化が重要である。
【０００４】
特許文献１には、無駄なアクセスの削減や必要なデータの先読みにより、ＤＢＭＳの性能を向上させる技術について開示されている。特許文献１には、ユーザからの問い合わせ処理を実行する部分において、問い合わせの実行プランやデータアクセス特性、メモリバッファ量、Ｉ／Ｏ負荷等を考慮して、プリフェッチ実行やその量の決定、メモリバッファ管理等を行うことによりＩ／Ｏアクセス性能を向上させてＤＢＭＳの性能を向上させることが記載されている。
【０００５】
特許文献２には、データベースが記憶する一部のデータをアクセス速度の高速なＲＡＭメモリ上へ複写することでデータベースを高速化する技術が開示されている。特許文献２には、データベース管理専用のＣＰＵ１によって、各データベースファイルへアクセスした回数を常時集計し、ディスク上に置かれているデータベースの複数のテーブルの中から利用頻度の高いテーブルを適時に抽出し、自動的にアクセス速度の高速なＲＡＭメモリ上へ複写することが記載されている。また、一般演算処理用ＣＰＵ２からデータベースへアクセスする際は、ＲＡＭ上のデータベースを優先的にアクセスする。これにより、データベースの平均アクセス時間の短縮、高速化を図ることができる。
【０００６】
特許文献３には、計算機がアクセスするために利用する論理的記憶装置を、実際にデータを記憶する物理的記憶装置上に配置する記憶装置において、論理的記憶装置の物理的記憶装置への配置を動的に変更することにより記憶装置のアクセス性能を向上する技術について開示されている。アクセス頻度が高い物理記憶装置に記憶されているデータの一部をの配置動的変更機能を用いて他の物理記憶装置に移動することにより、特定の物理記憶装置のアクセス頻度が高くならないようにし、これにより記憶装置を全体としてみたときの性能を向上させる。また、特許文献３には、配置動的変更機能による高性能化処理の自動実行方法についても開示されている。
【０００７】
【特許文献１】米国特許５３１７７２７号公報
【特許文献２】特開平１１−３１０９３号公報
【特許文献３】特許第３６４１８７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１、２に記載されている方式では、高速化の効果をもたらしているのは、データアクセスのローカル性である。データベースの大量のデータに対して、現在の処理で何度もアクセスするデータ（以下、ワーキングデータ）はほんの一部である。そこで、特許文献１、２に記載されている方式では、ワーキングデータの処理にメモリなどのより早い記憶装置を利用し、あまりアクセスしないデータに対しては、ディスクなどの遅い記憶装置を利用することで、処理全体を高速化をはかっている。
【０００９】
ここで、本発明で想定しているデータストリーム処理の、ワーキングデータについて検討する。まず、図２８を参照して、本発明が対象とするデータストリーム処理について説明する。図２８は、データストリーム処理の一例を説明するための説明図である。図２８に示すように、データは常に流れている（このデータをイベントデータと呼ぶ）。一般的なストリームデータ解析装置は、イベントデータを逐次的に解析処理（図２８に示す例では、解析関数F）に入力して解析結果を得る。多くの一般的なデータストリーム処理において、一般的なストリームデータ解析装置は、イベントデータひとつひとつを解析処理の入力にするのではなく、あるかたまりで解析処理に入力する。この入力するためのかたまりを、流れているイベントデータから取得するために、解析ウインドウが利用される。ここで、解析ウインドウとは、解析処理の入力に渡すイベントデータのかたまりを定義したものであり、期間やイベント数などで定義される。
【００１０】
図２８には、一定時間単位に解析ウインドウが作られる場合を示している。この一定時間をスパンと呼ぶ。図２８に示す例では、解析ウインドウ−ｔ１のデータをまず解析処理Fに入力して解析結果を出力する。次に、解析ウインドウ−ｔ２のデータを解析処理Fに入力して解析結果を出力する。以下同様の方法で解析ウインドウを時間的にずらしていき、解析処理Fの適用を繰り返す。
【００１１】
以上に説明したように、データストリーム処理とは、流れているデータに対して解析処理を繰り返し適用する計算方法である。各データから見れば、一度だけ解析処理のプロセスから読み込みのアクセスがあるだけであり、何度もアクセスされるわけではない。従って、ある一定期間アクセスが集中するワーキングデータはないと考えられる。あるいは、非常に短い時間しかワーキングデータとして有効ではないと考えられる。データストリーム処理では、ワーキングデータがないため、特許文献１、２記載された方式では、高速化の効果は期待できない。
【００１２】
特許文献３に記載されている技術は、ハードウエアの集中アクセスを分散させることで高速化をはかる技術である。逆に言えば、アクセスが集中している部分がないと効果がないといえる。
【００１３】
すでに説明したように、本発明で想定しているデータストリーム処理は、常にワーキングデータが変化する非常に分散された処理方法による処理であり、一定の記憶装置に集中的にアクセスすることはない。さらに、イベントデータなどの発生源は、RFID(Radio Frequency Identification)などのセンサであり、もともと物理的に分散している。以上のように、データストリーム処理では、特許文献３に記載されている技術による高速化の効果は期待できない。
【００１４】
そこで、本発明は、大量に、永続的に時々刻々と発生する高速データストリームを、複数のアプリケーションで解析する場合において、可能な限り冗長な計算を省いて高速化をはかることができるストリームデータ解析高速化装置、ストリームデータ解析高速化方法およびストリームデータ解析高速化プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明によるストリームデータ解析高速化装置は、解析対象となるデータを時々刻々と出力するデータ出力手段が出力するデータを逐次的に分析する情報処理装置に適用されるストリームデータ解析高速化装置であって、データ出力手段が出力したデータを、データの発生時間を考慮して解析するために、時系列に記憶するデータ記憶手段と、データ記憶手段が記憶するデータを複数のアプリケーションとして並列に解析する手段であって、それぞれ解析のインスタンスが独立に動作するデータ解析手段と、複数のデータ解析手段に共通する下位の解析手段を提供するライブラリであって、複数のデータ解析の並列実行に関して、冗長な計算を省いて高速化をはかるイベントデータ解析ライブラリ手段とを備えたことを特徴とする。
【００１６】
本発明によるストリームデータ解析高速化方法は、時々刻々と出力されるデータを逐次的に分析するストリームデータ解析高速化方法であって、発生したイベントデータを管理する処理ステップであり、解析するために記憶手段に一時的に記憶し、必要がなくなれば記憶手段から削除するデータフロー処理と、データフロー処理で記憶しているイベントデータを複数の解析方法で並列に解析するイベントデータ解析処理と、イベントデータ解析処理を複数のサブタスクに分割し、複数のイベント解析処理に共通に利用されるサブタスクについては過去の計算結果を再利用することで解析を高速化するイベントデータ共通解析処理と、イベントデータ共通解析処理が高速に解析するために、過去の計算結果を記憶し、再利用の可能性をチェックするデータ再利用処理とを含み、データフロー処理、イベントデータ解析処理、イベントデータ共通解析処理およびデータ再利用処理を並列に動作させることを特徴とする。
【００１７】
本発明によるストリームデータ解析高速化プログラムは、時々刻々と出力されるデータを逐次的に分析するためのストリームデータ解析高速化プログラムであって、コンピュータに、発生したイベントデータを管理し、解析するために記憶手段に一時的に記憶し、必要がなくなったときに記憶手段から削除するデータフロー処理と、データフロー処理で記憶しているイベントデータを複数の解析方法で並列に解析するイベントデータ解析処理と、イベントデータ解析処理を複数のサブタスクに分割し、複数のイベント解析処理に共通に利用されるサブタスクについては過去の計算結果を再利用することで解析を高速化するイベントデータ共通解析処理と、イベントデータ共通解析処理が高速に解析するために、過去の計算結果を記憶し、再利用の可能性をチェックするデータ再利用処理とを実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、大量に、永続的に時々刻々と発生する高速データストリームを、複数のアプリケーションで解析する場合において、可能な限り冗長な計算を省いて高速化をはかることができるという効果がある。
【発明を実施するための最良の形態】
【００１９】
実施形態１.
以下、本発明の第１の実施形態を図面を参照して説明する。図１は、第１の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【００２０】
ストリームデータ解析高速化装置は、大量に、永続的に時々刻々と発生する情報（ストリームデータ）を逐次的に分析する情報処理装置に適用され、特に、大量のセンサデータを複数のアプリケーションが同時に解析する情報処理装置に適用される。
【００２１】
図１に示すストリームデータ解析高速化装置は、センサ１と、解析用キュー２と、データ解析手段３と、イベントデータ解析ライブラリ手段４とを備える。ストリームデータ解析高速化装置がこれらの機能を有することにより、データ解析手段３の高速化が期待できる。
【００２２】
センサ１は、解析対象となるデータを時々刻々と発生させる。すなわち、センサ１は、所定の検出値を所定の信号に変換し、データとして解析用キュー２に出力する。以下、センサ１がデータを出力することを、センサ１がデータを発生させると表記する場合がある。
【００２３】
解析用キュー２は、センサ１からのデータを、データの発生時間を考慮して解析するために時系列に記憶する。解析用キュー２は、例えば、メモリ等の記憶部で実現される。以下、解析用キュー２が記憶するデータを、「解析用キュー２のデータ」と表記する場合がある。
【００２４】
データ解析手段３は、解析用キュー２のデータを解析するアプリケーションである。ストリームデータ解析高速化装置は、例えば、複数のデータ解析手段３を有する。それぞれのデータ解析手段３において、解析のインスタンスは独立に動作する。
【００２５】
イベントデータ解析ライブラリ手段４は、複数のデータ解析手段３に共通のサブ（下位）の解析手段を提供するライブラリである。イベントデータ解析ライブラリ手段４は、複数のデータ解析の並列実行に関して、可能な限り冗長な計算を省いて高速化をはかるためのライブラリである。
【００２６】
イベントデータ解析ライブラリ手段４は、サブ解析インタフェース手段４０１と、サブ解析方法決定手段４０２と、サブ解析手段４０３と、サブ解析結果共有メモリ４０４とを含む。
【００２７】
サブ解析インタフェース手段４０１は、データ解析手段３がイベントデータ解析ライブラリ手段４を利用する際のインタフェースを提供する。
【００２８】
サブ解析方法決定手段４０２は、サブ解析インタフェース手段４０１が呼び出された際に、解析用キュー２が記憶するデータを使って計算をするのか、過去の計算結果を流用するのかを判断する。
【００２９】
サブ解析手段４０３は、サブ解析インタフェース手段４０１が提供するサブの解析に関して、解析用キュー２のデータを使って解析する。
【００３０】
サブ解析結果共有メモリ４０４は、サブ解析手段４０３の解析結果を時間軸を考慮しながら再利用のために一時的に記憶する。
【００３１】
センサ１は、解析対象のデータを出力する手段であり、時々刻々とデータを出力する手段であれば何でも構わない。センサ１は、例えば、１分間隔に気温データを出力する手段や、RFID(Radio Frequency Identification)システムのように商品情報が書き込まれたICチップの情報をリーダで読み取り、データを発生させる手段などであってもよい。
【００３２】
以下の説明では、センサ１が出力したデータをイベントデータと呼ぶ。イベントデータの形式は特に問わないが、「時間：イベントが発生した日時」および「内容：発生したイベントの情報」のフィールドを持つものとする。
【００３３】
解析用キュー２は、複数のセンサ１からのイベントデータをひとつの系列にして記憶する。イベントデータは時々刻々と発生するため、古いイベントデータから順にメモリ（解析用キュー２）から削除していく必要がある。この実現には、リングバッファと呼ばれる方式を使用すれば良い。
【００３４】
図２は、リングバッファ方式の一例を説明するための説明図である。リングバッファ方式は、図２に示すように、メモリを円上に配置したように扱い、次にデータを格納するメモリの位置を示すWtite Pointerと、次にデータを読むメモリの位置を示すRead Pointerとを持つ方式である。リングバッファ方式では、一定方向（図では右回り）にデータの格納、読み出しを行うため、Write Pointer、Read Pointer共にアクセスするたびに同じ方向に移動する。図２に示す例では、メモリに１から８までのインデックスが付けられている。図２（ａ）は、インデックス１から格納しインデックス３まで格納されている状態であり、Wtite Pointerは４番目を指している。図２（ｂ）は、８番目まですべてのメモリを使ってしまった状態である。Write Pointerは１番目を指すため、次の書き込みで1番目のデータが上書きされる。リングバッファ方式を用いることで、時々刻々と発生するイベントデータを、古いイベントデータから順にメモリから削除しながら管理することができる。なお、Write PointerがReadPointerを追い抜く、すなわち、まだ読んでいないデータが上書きされてしまうことがないように十分なメモリサイズが必要である。
【００３５】
データ解析手段３には、複数のインスタンスがあり、それぞれにIDが割り振られているとする。このIDを使って、他の手段からデータ解析手段３のインスタンスを特定してコミュニケーションができる（第２の実施形態における解析データシフト手段４０６で利用する）。
【００３６】
データ解析手段３は、解析するデータを定義する解析ウインドウをインスタンス毎に記憶する。解析ウインドウは、開始情報と、スパン情報と、スライド情報とを含む情報であって、解析対象となるデータの解析単位を示す情報である。
【００３７】
開始情報は、解析ウインドウの開始ポインタであって、イベントデータの時系列のオフセット値に相当する。スパン情報は、解析ウインドウのサイズを示す情報である。従って、解析ウインドウのイベントデータは、開始情報のイベントデータから開始情報＋スパン情報までのイベントデータである。スライド情報は、ある解析が終了し、次の解析へ移るときに、解析ウインドウを移動させる幅を示す情報である。
【００３８】
なお、これらの値の記述は、時間軸で指定する方法と、データの個数で指定する方法がある。例えば、開始情報の場合、時間軸で指定する場合には日時を指定し、データの個数で指定する場合には、イベントデータに通し番号をうち、この番号で指定する。第１の実施形態では、時間軸で指定する方法で説明するが、データの個数で指定しても同様に処理ができる。また、ストリームデータ解析高速化装置全体では、時計をもっており時間や期間は測定できるものとする。
【００３９】
データ解析手段３の各インスタンスの動作について説明する。各インスタンスは、以下の処理を繰り返す。
【００４０】
第１のステップで、インスタンスは、解析用キュー２からイベントデータを取得する。この際、複数のデータを一度に取得することが一般的な解析方法であり、解析ウインドウを利用する。解析ウインドウは、解析用キュー２のデータからデータ解析手段３に入力するデータの範囲を表す。インスタンスは、古いデータから順に解析ウインドウをスライドさせてイベントデータを取得する。図２８に示す例では、解析ウインドウ−ｔ１が示す範囲が、最初に第１のステップで取得されるイベントデータである。以後、第１のステップを繰り返し実行するたびに、解析ウインドウ−ｔ２、解析ウインドウ−ｔ３という具合にスライドさせてイベントデータを取得する。
【００４１】
第２のステップで、インスタンスは、取得したイベントデータを解析する。インスタンスは、第１のステップで得られたイベントデータの集合を入力し、解析をして結果を出力する。通常、複数のデータ解析手段３のインスタンスが並行して解析用キュー２のデータを解析する。
【００４２】
図３は、インスタンスが並行してデータを解析する処理（並列解析）の一例を説明するための説明図である。図３には、各インスタンスが、解析関数Ｆによる解析処理と、解析関数Ｇによる解析処理と、解析関数Ｈによる解析処理とを行う場合を例示する。図３に示すように、基本的に各インスタンスは独立に動作し、解析ウインドウの定義も同じとは限らない。図３に示す例では、解析Ｇ、解析Ｆ、解析Ｈの順にスパンが小さい。複数のデータ解析手段３のインスタンスが独立に並行して解析するためには、各データ解析手段３のインスタンスがどこまで解析したのかを独自に管理する必要がある。これは、次に解析する解析ウインドウのリングバッファのRead Pointerを、データ解析手段３のインスタンス毎に解析ウインドウの開始情報と対応させることで実現できる。図４は、並列解析におけるリングバッファ方式の一例を説明するための説明図である。
【００４３】
第１の実施形態では、解析の具体例を示すために、一次元の最小二乗法により説明する。図５は、最小二乗法の一例を説明するための説明図である。一次元の最小二乗法は、ある一定期間のイベントデータの組を特定の一次関数を用いて近似する方法であり、一次近似関数が各イベントデータの値に対してよい近似となるように、残差の二乗和を最小とするような係数を決定する方法である。図５に示す例では、横軸に時間を表し、縦軸にイベントデータの値を表している。図５に示す例では、t1からtnの合計ｎ個のイベントデータが解析対象のデータである。このとき、図５に示す直線式で近似することが一次元の最小二乗法である。この近似直線は、将来、例えば、時間txのイベントデータの値を予測することに利用できる。
【００４４】
近似直線の求め方は広く開示されている。以下、近似直線の求め方について説明する。
まず、一時変数ＡからＥを求める。
A=SUM[(Y_ti)*(Y_ti)]
B=SUM[(X_ti)*(X_ti)]
C=SUM[Y_ti]
D=SUM[Y_ti*X_ti]
E=SUM[X_ti]
【００４５】
なお、Y_tiは、時刻tiのイベントデータの値を意味し、X_tiは時刻tiの値を意味し、SUMはiを1からnまで変化させた和を意味する。
【００４６】
近似関数を、y=aX+bとしたとき、係数a、bの値は以下の式で計算できる。
a = (nD - CE) / (nB - E*E)
b = (BC - DE) / (nB - E*E)
【００４７】
なお、説明を簡単にするために以後、一次元の最小二乗法で説明するが、この解析方法に限ったわけではない。
【００４８】
第３のステップで、インスタンスは、解析ウインドウを変更する。第２のステップの解析が終了すると、インスタンスは、解析ウインドウをスライドパラメータに従って変更する。スライドのさせ方は、解析方法依存であり特に限定しない。
【００４９】
図６は、解析ウインドウのスライディングの例を説明するための説明図である。図６（ａ）に示すように、スパンとスライドを同じ値にして、すべてのデータを一度だけ処理する場合もあれば、図６（ｂ）に示すように、解析ウインドウが重なり合う場合もあれば、図６（ｃ）に示すように、処理されないデータがある場合もある。解析ウインドウを変更した後は、第１のステップに戻る。
【００５０】
イベントデータ解析ライブラリ手段４は、データ解析手段３と解析用キュー２との間に入って、データ解析手段３の解析の高速化をはかる手段である。以下、各データ解析手段３をサブのタスクに分けたとき、共通の処理が含まれていることを前提とする。データ解析手段３は、例えば、統計処理などを実行することが多く、平均、分散、標準偏差といった解析処理がサブタスクとして考えられる。また、最小二乗法では、一時変数Ｃ，Ｅの算出のような、値の合計の算出や、一時変数Ａ，Ｂの算出のような、二乗平均の合計の算出などの処理がサブタスクとなる。
【００５１】
ここで注意が必要なのは、一般的なシステムにイベントデータ解析ライブラリ手段４を構成に加えるだけでは、本発明の効果は得られない点である。図７は、ストリームデータ解析装置の構成例を比較するための説明図である。図７（ａ）に、イベントデータ解析ライブラリ手段４を利用しない一般的なシステム構成を示す。図７（ｂ）に、イベントデータ解析ライブラリ手段４を利用した第１の実施形態のシステム構成を示す。
【００５２】
データ解析手段３の実現方法として、イベントデータ解析ライブラリ手段４をサブタスクとして呼び出しながら実装するようにソースコードのレベルで実装する。図７に示す例では、データ解析手段３が実行する解析処理Ｆ（）には、サブタスクとして、イベントデータ解析ライブラリ手段４を利用することにより実行可能なSub-l() とSub-m() とが実装されている。一般的な方式では、これらのサブタスクは、すべてＦ（）の中に実装される。本発明は、イベントデータ解析ライブラリ手段４を利用することを前提に作られたデータ解析手段３を高速化する。
【００５３】
以下、イベントデータ解析ライブラリ手段４内の構成に関して説明する。
【００５４】
サブ解析インタフェース手段４０１は、イベントデータ解析ライブラリ手段４のＡＰＩ（Application Interface ）であり、イベントデータ解析ライブラリ手段４が実装するサブタスクの一覧を示す。
【００５５】
図７に示す例では、Sub-l() 、Sub-m() 、Sub-n() 、Sub-o() の４つのサブタスクが公開されている。実現方法は、通常のライブラリのＡＰＩと同様である。例えば、データ解析手段３が、公開されているサブタスク名で呼び出しを行い、コンパイル時にリンカがこのサブタスク名をイベントデータ解析ライブラリ手段４内の関数ポインタに変換することにより、サブタスクを実行することができる。
【００５６】
サブタスクのインタフェースのパラメータは、解析対象のデータである。解析対象のデータは、解析ウインドウを指定する。すなわち、サブ解析インタフェース手段４０１は、解析ウインドウで示される解析対象のデータをパラメータとして入力する。
【００５７】
図８は、サブ解析結果共有メモリ４０４の登録例を示す説明図である。サブ解析結果共有メモリ４０４は、サブタスク名４０４−１、種類４０４−２、開始情報４０４−３、スパン４０４−４および計算結果４０４−５を含む情報を記憶する。
【００５８】
サブタスク名４０４−１は、サブ解析インタフェース手段４０１が扱うサブタスクの名前を意味する。種類４０４−２は、解析ウインドウの種類を意味し、「期間」「個数」のいずれかの値をとる。開始情報４０４−３は、解析ウインドウの先頭の情報を意味する。期間の場合は、時刻であって、個数の場合は、イベントデータの通し番号である。スパン４０４−４は、解析ウインドウのスパンの情報を意味する。期間の場合は、時間であって、個数の場合は、イベントデータの数である。計算結果４０４−５は、再利用する計算結果を意味する。
【００５９】
図８に示す例では、第１レコードは、Ｘ合計という名前のサブタスクを、期間で解析ウインドウをとり、時刻10:00:00から、10:01:00までのイベントデータを計算した結果が、１２３であることを意味している。
【００６０】
尚、サブ解析結果共有メモリ４０４が記憶するデータの検索、挿入は、サブ解析方法決定手段４０２が行う。サブ解析方法決定手段４０２の動作については後述する。
【００６１】
サブ解析手段４０３は、サブ解析インタフェース手段４０１が公開しているサブタスクを実行する手段である。サブ解析手段４０３は、サブ解析インタフェース手段４０１から、サブタスク名と解析対象とする解析ウインドウのパラメータを受け取り、解析用キュー２のデータを解析する。
【００６２】
サブ解析方法決定手段４０２は、イベントデータ解析ライブラリ手段４内の動作のメイン制御部の働きをする。図９は、サブ解析方法決定手段４０２の動作の一例を示すフローチャートである。
【００６３】
ステップＳ４０２−１において、データ解析手段３は、サブ解析インタフェース手段４０１を通してサブタスクを呼び出す。データ解析手段３は、サブタスクの呼び出し時に、サブタスク名と解析対象データを特定するためのパラメータである解析ウインドウの情報とをサブ解析インタフェース手段４０１に渡す。
【００６４】
ステップＳ４０２−２において、サブ解析方法決定手段４０２は、サブ解析結果共有メモリ４０４を検索して、再利用できる計算結果を検索する。サブ解析方法決定手段４０２は、例えば、各フィールド毎に以下に示す条件をＡＮＤ条件で検索する。例えば、サブ解析方法決定手段４０２は、「サブタスク名４０４−１が、ステップＳ４０２−１で呼び出されたサブタスク名であること」、「種類４０４−２が、ステップＳ４０２−１で呼び出された解析ウインドウ情報の種類の値であること」、「開始情報４０４−３が、ステップＳ４０２−１で呼び出された解析ウインドウ情報の開始情報の値であること」および「スパン４０４−４が、ステップＳ４０２−１で呼び出された解析ウインドウ情報のスパン情報の値あること」の全ての条件を満たすデータをサブ解析結果共有メモリ４０４から抽出する。尚、サブ解析結果共有メモリ４０４への登録方法が、上記の条件で見つからなかったときに限り、ステップＳ４０２−５にてレコードを登録するため、この検索結果は、高々１つである。
【００６５】
ステップＳ４０２−３において、サブ解析方法決定手段４０２は、サブ解析結果共有メモリ４０４を検索した結果に基づいて、データを再利用可能か否かを判断する。検索結果が見つかれば、再利用可能であり（ＹＥＳ）、ステップＳ４０２−６へ進む。検索結果が見つからなければ、再利用不可能であり（ＮＯ）、ステップＳ４０２−４へ進み、解析用キューのデータを解析する。
【００６６】
再利用不可能な場合、サブ解析手段４０３は、ステップＳ４０２−４において、解析ウインドウによる条件に基づいて解析用キュー２のデータを取得して、サブタスク名に相当する解析を実行する。サブ解析方法決定手段４０２は、解析を実行して、計算結果として出力する。
【００６７】
ステップＳ４０２−５において、サブ解析手段４０３は、ステップＳ４０２−４の計算結果を再利用するために、サブ解析方法決定手段４０２を介してサブ解析結果共有メモリ４０４に登録する。
【００６８】
ステップＳ４０２−４で算出した計算結果の登録方法について説明する。サブ解析方法決定手段４０２は、サブ解析結果共有メモリ４０４において新規にレコードを追加し、以下の値を登録する。すなわち、サブ解析方法決定手段４０２は、サブタスク名４０４−１として、ステップＳ４０２−１で呼び出されたサブタスク名を登録し、種類４０４−２として、ステップＳ４０２−１で呼び出された解析ウインドウ情報の種類の値を登録し、開始情報４０４−３として、ステップＳ４０２−１で呼び出された解析ウインドウ情報の開始情報の値を登録し、スパン４０４−４として、ステップＳ４０２−１で呼び出された解析ウインドウ情報のスパン情報の値を登録し、計算結果４０４−５として、ステップＳ４０２−４で算出した計算結果を登録する。
【００６９】
サブ解析方法決定手段４０２は、ステップＳ４０２−６において、呼び出し元であるデータ解析手段３にサブタスクの計算結果を返す。サブ解析方法決定手段４０２は、計算結果として、ステップＳ４０２−２で検索されたレコードにおける計算結果か、ステップＳ４０２−４で計算された計算結果を返す。すなわち、サブ解析方法決定手段４０２は、データを再利用可能である場合には、ステップＳ４０２−２で検索された計算結果をデータ解析手段３に返し、データを再利用不可能である場合には、ステップＳ４０２−４で計算された計算結果ををデータ解析手段３に返す。
【００７０】
なお、ストリームデータ解析高速化装置は、コンピュータで実現可能であり、ストリームデータ解析高速化装置を構成する各構成要素、すなわち、データ解析手段３およびイベントデータ解析ライブラリ手段４は、コンピュータの処理装置（ＣＰＵ）に上述した機能を実現させるためのプログラムとして実現可能である。ストリームデータ解析高速化装置を構成する各構成要素がコンピュータで実現可能であること、およびプログラムとして実現可能であることは、第１の実施の形態に限らず、他の実施の形態でも同様である。
【００７１】
次に、図１０を参照して第１の実施形態の動作について説明する。図１０は、第１の実施形態におけるストリームデータ解析高速化装置の動作の一例を示すフローチャートである。第１の実施形態では、データフロー処理Ｆ１と、イベントデータ解析処理Ｆ２と、イベントデータ共通解析処理Ｆ３と、データ再利用処理Ｆ４とが並列に動作する。例えば、ストリームデータ解析高速化装置の制御部（図示せず。）が、データフロー処理Ｆ１と、イベントデータ解析処理Ｆ２と、イベントデータ共通解析処理Ｆ３と、データ再利用処理Ｆ４とを並列に動作させる。
【００７２】
データフロー処理Ｆ１は、発生したイベントデータを管理する処理ステップであり、解析するためにメモリに一時的に記憶し、必要がなくなればメモリから削除する処理である。
【００７３】
イベントデータ解析処理Ｆ２は、データフロー処理Ｆ１で記憶しているイベントデータを複数の解析方法で並列に解析する処理である。
【００７４】
イベントデータ共通解析処理Ｆ３は、イベントデータ解析処理Ｆ２を複数のサブタスクに分割し、複数のイベント解析処理に共通に利用されるサブタスクについては過去の計算結果を再利用することで解析を高速化する処理である。
【００７５】
データ再利用処理Ｆ４は、イベントデータ共通解析処理Ｆ３が高速に解析するために、過去の計算結果を記憶しこの再利用の可能性をチェックする処理である。
【００７６】
データフロー処理Ｆ１は、センサ１と解析用キュー２を使って実現すればよい。
【００７７】
イベントデータ解析処理Ｆ２は、データ解析手段３で実現される。データ解析手段３は、複数のインスタンスからなり、通常、複数のインスタンスが並行に解析を実行する。図１０に示すように、データ解析手段３は、例えば、解析Ｆと解析Ｇとを並行して実行する。各解析インスタンスは、２つのサブの解析処理として、個別解析処理Ｆ２１または共通解析処理Ｆ２２を実行する。
【００７８】
個別解析処理Ｆ２１は、イベントデータ共通解析処理Ｆ３を利用せずに直接データフロー処理Ｆ１と連携して解析をする処理である。一般的な手法であり高速化の効果はない。
【００７９】
共通解析処理Ｆ２２は、イベントデータ共通解析処理Ｆ３を利用して高速解析する処理である。
【００８０】
個別解析処理Ｆ２１、共通解析処理Ｆ２２のいずれの処理を実行するかの区別は、動的に決まるのではなく静的に決定される。すなわち、イベントデータ共通解析処理Ｆ３の処理内容の一覧は事前に公開されていることから、イベントデータ解析処理Ｆ２の中の一部の処理を、イベントデータ共通解析処理Ｆ３を利用して実行するように実装する。
【００８１】
イベントデータ共通解析処理Ｆ３は、イベントデータ解析ライブラリ手段４を使って実装すればよい。イベントデータ共通解析処理Ｆ３は、システム起動時には動作していない。イベントデータ解析処理Ｆ２から、イベントデータ解析ライブラリ手段４への呼び出しがあったタイミングで、呼び出しを処理するインスタンスが生成され動作する。
【００８２】
全体の動作フローは、イベントデータ解析ライブラリ手段４のメイン制御部であるサブ解析方法決定手段４０２の処理フロー（図９参照。）である。なお、この処理フローが終了すると、このインスタンスは消滅する。また、この処理フローにおける計算結果の求め方として、次の２つの方法がある。
【００８３】
１つは、イベントデータから計算する方法Ｆ３１であって、データフロー処理Ｆ１と連携してイベントデータを解析する方法である。
【００８４】
もう１つは、過去の計算結果を再利用する方法Ｆ３２であって、データ再利用処理Ｆ４と連携して過去の計算結果を再利用する方法である。
【００８５】
イベントデータから計算する方法Ｆ３１、過去の計算結果を再利用する方法Ｆ３２のいずれの処理を実行するかの区別は、図９のステップＳ４０２−３の条件分岐により行う。
【００８６】
データ再利用処理Ｆ４は、サブ解析結果共有メモリ４０４で実現すればよい。
【００８７】
以上に説明したように、第１の実施形態によれば、複数のデータ解析手段に共通の部分解析処理を高速に処理できるという効果がある。その理由は、複数のデータ解析の並列実行に関して、過去の計算結果を再利用するイベントデータ解析ライブラリ手段を有するからである。すなわち、複数のデータ解析処理の並列実行において、過去の計算結果を再利用するため、処理を高速に行うことができる。
【００８８】
実施形態２．
次に、本発明の第２の実施形態を図面を参照して説明する。図１１は、第２の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【００８９】
図１１を参照すると、本発明の第２の実施形態は、第１の実施形態のイベントデータ解析ライブラリ手段４には設けられていない最新呼出履歴手段４０７と、データ解析スケジューリング手段４０５と、解析データシフト手段４０６とを含む。図１１に示すように構成することにより、サブ解析結果共有メモリ４０４で記憶している過去の計算結果の再利用率が増加し、さらに高速化が期待できる。
【００９０】
最新呼出履歴手段４０７は、データ解析手段３がサブ解析インタフェース手段４０１を呼び出した履歴の中で最新のものを常に記憶する記憶手段である。
【００９１】
データ解析スケジューリング手段４０５は、複数のデータ解析手段３が並列にかつ互いに独立に実行している状況に対して、互いに解析ウインドウを同期させる。
【００９２】
解析データシフト手段４０６は、データ解析スケジューリング手段４０５の結果を受けて、各データ解析手段３が保持している解析ウインドウを時間軸でずらす。
【００９３】
データ解析スケジューリング手段４０５の目的を図１２、図１３を使って説明する。図１２は、解析ウインドウの同期が取れていない場合の例を説明するための説明図である。図１２に示す例では、解析Ａの解析ウインドウを実線で表し、解析Ｂの解析ウインドウを波線で表している。共に解析ウインドウの種類（期間あるいは個数）、スパンは同じであり、開始情報が異なる。開始のタイミングが異なっているために、これら２つの解析の間では、サブ解析結果共有メモリ４０４を使った再利用は行われない。
【００９４】
これに対し、図１３に示すように、データ解析スケジューリング手段４０５が解析Ａの解析ウインドウをずらすことにより、解析Ｂと計算結果の再利用が可能となる。図１３は、解析ウインドウの同期処理の一例を説明するための説明図である。
【００９５】
なお、解析ウインドウをずらすと、解析対象のデータが変わるため、解析結果は変化する。しかし、データストリーム解析では、データを流れとしてとらえるために、問題とならない。すなわち、データストリーム解析では、解析開始のタイミングは重要ではない。データストリーム解析は、データをあるセグメント単位に繰り返し解析し、全体の傾向を解析するものであるためである。以下、データ解析手段３が同期をとるための解析ウインドウのずらし方について説明する。
【００９６】
まず、最新呼出履歴手段４０７について説明する。最新呼出履歴手段４０７は、データ解析手段３がサブ解析インタフェース手段４０１を呼び出した履歴を示す履歴情報を記憶する。図１４は、履歴情報が登録されるテーブルの構造の例を示す説明図である。履歴情報が登録されるテーブルは、具体的には、ストリームデータ解析高速化装置のハードディスク装置やメモリ等の記憶装置に記憶される。
【００９７】
データ解析手段ＩＤ４０７−１は、直前のサブ解析インタフェース手段４０１を呼び出したデータ解析手段３のＩＤを意味する。
【００９８】
サブタスク名４０７−２は、直前のサブ解析インタフェース手段４０１を呼び出したサブタスク名を意味する。
【００９９】
種類４０７−３は、直前のサブ解析インタフェース手段４０１を呼び出した解析ウインドウの種類を意味する。
【０１００】
開始情報４０７−４は、直前のサブ解析インタフェース手段４０１を呼び出した解析ウインドウの開始情報を意味する。
【０１０１】
スパン４０７−５は、直前のサブ解析インタフェース手段４０１を呼び出した解析ウインドウのスパンを意味する。
【０１０２】
最新呼出履歴手段４０７は、図１４に示すテーブルを、データ解析手段３がサブ解析インタフェース手段４０１を呼び出す毎に、図１５に示す処理を行うことにより更新する。図１５は、最新呼出履歴手段４０７の動作の一例を示すフローチャートである。
【０１０３】
ステップＳ４０７−１において、最新呼出履歴手段４０７は、図１４に示すテーブルから、古い履歴がないか検索を行う。最新呼出履歴手段４０７は、図１４に示すテーブルの各フィールドの値を、以下に示す条件で検索する。例えば、最新呼出履歴手段４０７は、「データ解析手段ＩＤ４０７−１が、現在のサブ解析インタフェース手段４０１を呼び出したデータ解析手段３のＩＤであること」、「サブタスク名４０７−２が、現在のサブ解析インタフェース手段４０１を呼び出したサブタスク名であること」、「種類４０７−３が、現在のサブ解析インタフェース手段４０１を呼び出した解析ウインドウの種類であること」および「スパン４０７−５が、現在のサブ解析インタフェース手段を呼び出した解析ウインドウのスパンであること」の条件を満たす履歴情報を、テーブルから抽出する。
【０１０４】
ステップＳ４０７−２において、最新呼出履歴手段４０７は、ステップＳ４０７−１の処理で履歴情報が抽出されたか否かを判断する。ステップＳ４０７−１の処理でレコードが見つかれば（ＹＥＳ）、ステップＳ４０７−３に進む。ステップＳ４０７−１の処理でレコードが見つからなければ（ＮＯ）、ステップＳ４０７−４へ進む。
【０１０５】
ステップＳ４０７−３において、最新呼出履歴手段４０７は、ステップＳ４０７−１で検索されたレコードを削除する。
【０１０６】
ステップＳ４０７−４において、最新呼出履歴手段４０７は、現在のサブ解析インタフェース手段４０１の呼び出し情報を新しい履歴情報としてテーブルに追加する。
【０１０７】
図１６は、データ解析スケジューリング手段４０５の動作の一例を示すフローチャートである。
【０１０８】
ステップＳ４０５−１において、データ解析スケジューリング手段４０５は、最新呼出履歴手段４０７から、サブタスク名、種類、スパンが同じ値のレコードを同じグループとするグループ分けを行う。
【０１０９】
図１４に示す例の場合、図１７に示すように２つのグループにわかれる。図１７は、グループ分けされた履歴情報の例を説明するための説明図である。以下、グループ分けされたテーブルのそれぞれを、履歴情報テーブルと呼び、各履歴情報テーブルの集合全体をスケジューリング候補と呼ぶ。図１７に示す例では、スケジューリング候補は、２つの履歴情報テーブルを含む。
【０１１０】
ステップＳ４０５−２において、データ解析スケジューリング手段４０５は、スケジューリング候補の中からひとつの履歴情報テーブルを選択する。
【０１１１】
ステップＳ４０５−３において、データ解析スケジューリング手段４０５は、履歴情報テーブルを選択可能であるか否かを判断する。選択可能であれば（ＹＥＳ）、ステップＳ４０５−４へ処理を進める。選択できない場合は（ＮＯ）、スケジューリング候補の中のすべての履歴情報テーブルを処理したことを意味するため、処理を終了する。以下、履歴情報テーブルとして、図１７に示す履歴情報テーブルのうち、グループ１（図１７（ａ）参照。）が選ばれたとして説明する。
【０１１２】
ステップＳ４０５−４において、データ解析スケジューリング手段４０５は、さらに細かくグルーピングを行う。データ解析スケジューリング手段４０５は、開始情報のフィールドの値が同じであれば同じグループとするグループ分けを行う。図１８は、さらに細かくグループ分けされた履歴情報の例を説明するための説明図である。図１７に示す例では、データ解析スケジューリング手段４０５は、図１８に示すように３つのグループにグルーピングを行う。以下、３つのグループを、それぞれ、サブグループ１−１（図１８（ａ）参照。）、サブグループ１−２（図１８（ｂ）参照。）、サブグループ１−３（図１８（ｃ）参照。）と呼ぶ。
【０１１３】
ステップＳ４０５−５において、データ解析スケジューリング手段４０５は、サブグループ毎に要素数を数える。図１８に示す例の場合、サブグループ１−１の要素数は２レコード、サブグループ１−２およびサブグループ１−３の要素数は１レコードである。
【０１１４】
ステップＳ４０５−６において、データ解析スケジューリング手段４０５は、同期するための基準になるサブグループを決定する。データ解析スケジューリング手段４０５は、ステップＳ４０５−５で要素数が最も多かったサブグループを基準とする。最も多かったサブグループが複数ある場合には、すべてを基準サブグループとする。
【０１１５】
ステップＳ４０５−７において、データ解析スケジューリング手段４０５は、解析データシフト手段４０６に結果を出力する。基準サブグループのテーブルと、基準ではないサブグループのテーブルとをそれぞれ区別して解析データシフト手段４０６に送る。
【０１１６】
ステップＳ４０５−８において、データ解析スケジューリング手段４０５は、ステップＳ４０５−７でスケジューリング処理が終了したグループをスケジューリング候補から削除する。例えば、データ解析スケジューリング手段４０５は、グループ１を削除する。
【０１１７】
解析データシフト手段４０６は、データ解析スケジューリング手段４０５からの結果を受けて、基準サブグループではないサブグループについて、基準サブグループとのずれを検出する。また、解析データシフト手段４０６は、検出した結果に基づいて、それぞれのデータ解析手段３に、サブグループの開始情報の値をずらす処理を依頼する。
【０１１８】
ずれ幅の算出は、開始情報の値を基準サブグループの値と比較することにより行う。図１８に示す例の場合、サブグループ１−２のずれ幅は＋２０秒（10:00:20−10:00:00）であり、サブグループ１−３のずれ幅は−１０秒（09:59:50−10:00:00）である。
【０１１９】
尚、ずれ幅が＋の値の場合は、基準より進んでいることを示し、−の場合は基準より遅れていることを示す。図の例では、データ解析手段Ｇが２０秒早く、データ解析手段Ｈが１０秒遅れているという結果であるので、データ解析手段Ｇには、２０秒遅らせるように依頼し、データ解析手段Ｈには、１０秒早めるように依頼する。依頼を受けたデータ解析手段３のインスタンスは、内部で記憶している解析ウインドウの設定を依頼通りに変更する。
【０１２０】
次に、図１９を参照して第２の実施形態の動作について説明する。図１９は、第２の実施形態におけるストリームデータ解析高速化装置の動作の一例を示すフローチャートである。
【０１２１】
第２の実施形態の処理では、第１の実施形態の処理（図１０参照。）に、データ解析スケジューリング処理Ｆ５が加えられている。データ解析スケジューリング処理Ｆ５は、イベントデータ解析処理Ｆ２の複数のインスタンスにおける解析ウインドウを同期させる処理である。図１９に示すような処理を行うことにより、第２の実施形態では、過去の計算結果の再利用率が増加し、さらに高速化できる。
【０１２２】
データ解析スケジューリング処理Ｆ５は、呼出履歴管理処理Ｆ５１と、データ解析スケジューリング処理Ｆ５２と、シフト要請処理Ｆ５３とを含む処理である。
【０１２３】
呼出履歴管理処理Ｆ５１は、同期がとれそうなイベントデータ解析処理Ｆ２のインスタンスを抽出するための元データを、イベントデータ共通解析処理Ｆ３の呼び出しを一時的に記録することで生成する処理である。
【０１２４】
データ解析スケジューリング処理Ｆ５２は、呼出履歴管理処理Ｆ５１で蓄積した呼出履歴データを分析して、イベントデータ共通解析処理Ｆ３の解析ウインドウの解析開始のタイミングを制御する処理である。
【０１２５】
シフト要請処理Ｆ５３は、データ解析スケジューリング処理Ｆ５２の結果をうけて、各イベントデータ解析処理Ｆ２の解析データをシフトするように要請する処理である。
【０１２６】
データ解析スケジューリング処理Ｆ５は、最新呼出履歴手段４０７、データ解析スケジューリング手段４０５、解析データシフト手段４０６で実現すればよい。
【０１２７】
呼出履歴管理処理Ｆ５１は、最新呼出履歴手段４０７が、図１５に示す処理を行うことにより実現すればよい。
【０１２８】
データ解析スケジューリング処理Ｆ５２は、データ解析スケジューリング手段４０５が、図１６に示す処理を行うことにより実現すればよい。
【０１２９】
シフト要請処理Ｆ５３は、解析データシフト手段４０６で実現すればよい。
【０１３０】
以上に説明したように、第２の実施形態によれば、複数のデータ解析手段が互いに独立に解析を実行した場合においても高速に処理できるという効果がある。その理由は、データ解析手段のデータ解析単位である解析ウインドウを監視し、複数のデータ解析手段で解析ウインドウが重なり合うようにスケジューリングするデータ解析スケジューリング手段と、この結果をうけて解析タイミングを変更する解析データシフト手段を有するからである。
【０１３１】
実施形態３．
次に、本発明の第３の実施形態を図面を参照して説明する。図２０は、第３の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【０１３２】
図２０を参照すると、本発明の第３の実施形態は、第１の実施形態および第２の実施形態のイベントデータ解析ライブラリ手段４には設けられていないサブ解析結果共有メモリ管理手段４０８を含む。サブ解析結果共有メモリ管理手段４０８は、サブ解析結果共有メモリ４０４が記憶している解析結果の中から、必要がないエントリを削除する処理を行う。図２０に示すように構成することにより、メモリ利用効率をあげることができる。
【０１３３】
サブ解析結果共有メモリ管理手段４０８は、解析用キュー監視手段４０８０２と、再利用データ削除手段４０８０１とを有する。
【０１３４】
解析用キュー監視手段４０８０２は、解析用キュー２から削除されたデータを監視する処理を行う。
【０１３５】
再利用データ削除手段４０８０１は、解析用キュー監視手段４０８０２の結果をうけて、サブ解析結果共有メモリ４０４で記憶している計算結果の中から、再利用されないエントリを検索し、削除する処理を行う。
【０１３６】
解析用キュー監視手段４０８０２は、解析用キュー２にデータが追加される場合に、上書きされたデータを監視する。監視項目は、上書きされたデータの時間の属性（以下処理完了時間）である。つまり、処理完了時間は、もうデータ解析手段３では解析が完了している古いデータの時間を意味しており、サブ解析結果共有メモリ４０４から削除しても構わない。
【０１３７】
再利用データ削除手段４０８０１は、サブ解析結果共有メモリ４０４から、例えば、「開始情報にスパンを足した値が、処理完了時間より古い」という条件に合致するレコードを削除する。
【０１３８】
次に、図２１を参照して第３の実施形態の動作について説明する。図２１は、第３の実施形態におけるストリームデータ解析高速化装置の動作の一例を示すフローチャートである。
【０１３９】
第３の実施形態の処理は、第１の実施形態の処理（図１０参照。）および第２の実施形態の処理（図１９参照。）に、再利用データ削除処理Ｆ６が加えられている。再利用データ削除処理Ｆ６は、サブ解析結果共有メモリ４０４が記憶している解析結果の中で必要がないエントリを削除する処理である。
【０１４０】
再利用データ削除処理Ｆ６は、上書き監視処理Ｆ６１と、削除処理Ｆ６２とを含む処理である。
【０１４１】
上書き監視処理Ｆ６１は、データフロー処理Ｆ１を監視してすでに解析用キュー２から削除されているデータの時間を検出する処理である。
【０１４２】
削除処理Ｆ６２は、上書き監視処理Ｆ６１の結果を受けて、データ再利用処理Ｆ４で記憶している過去の計算結果の中から、再利用されないデータを削除する処理である。
【０１４３】
再利用データ削除処理Ｆ６は、サブ解析結果共有メモリ管理手段４０８で実現すればよい。
【０１４４】
上書き監視処理Ｆ６１は、解析用キュー監視手段４０８０２で実現すればよい。
【０１４５】
削除処理Ｆ６２は、再利用データ削除手段４０８０１で実現すればよい。
【０１４６】
第３の実施形態によれば、永続的にストリームデータを高速に解析できるという効果がある。その理由は、再利用する計算結果を記憶しているサブ解析結果共有メモリの計算結果の中で、将来再利用されない計算結果を削除するサブ解析結果共有メモリ管理手段を有することで、永続的に解析した場合においても、一定量のメモリしか利用しないからである。
【０１４７】
実施形態４．
次に、本発明の第４の実施形態を図面を参照して説明する。図２２は、第４の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【０１４８】
図２２を参照すると、本発明の第４の実施形態は、第３の実施形態のサブ解析結果共有メモリ管理手段４０８には設けられていない計算コスト見積手段４０８０３を含む。計算コスト見積手段４０８０３は、サブ解析手段４０３が実行する解析にかかる計算コストの見積りを記憶しておく。
【０１４９】
また、第４の実施形態では、再利用データ削除手段４０８０１の動作を、計算コスト見積手段４０８０３が算出した計算コストデータを元に、サブ解析結果共有メモリ４０４が記憶している計算結果の中から再利用されないエントリを削除するように改造する。
【０１５０】
さらに、サブ解析結果共有メモリ４０４のフィールドに、再利用した場合の高速化の効果の見積もり値を記憶する「高速化度」を追加する。図２３は、第４の実施形態におけるサブ解析結果共有メモリ４０４の登録例を示す説明図である。サブ解析結果共有メモリ４０４は、サブタスク名４０４−１、種類４０４−２、開始情報４０４−３、スパン４０４−４および計算結果４０４−５（図８参照。）に加えて、高速化度４０４−６を含む情報を記憶する。高速化度４０４−６は、サブ解析手段４０３が解析した場合と、サブ解析結果共有メモリ４０４の計算結果を再利用した場合での計算コストの差を記憶するフィールドである。
【０１５１】
図２４は、計算コスト見積手段４０８０３が算出した値が設定されるテーブルの登録例を示す説明図である。図２４に示すテーブルは、例えば、ユーザによって設定される。計算コスト見積手段４０８０３が算出した値が設定されるテーブルは、具体的には、ストリームデータ解析高速化装置のハードディスク装置やメモリ等の記憶装置に記憶される。
【０１５２】
サブタスク名４０８０３−１は、サブ解析手段４０３が実行する解析の名前である。スパン４０８０３−２は、サブ解析手段４０３が実行する解析の解析ウインドウのスパンである。計算コスト４０８０３−３は、サブタスク名４０８０３−１が示すサブタスクを、スパン４０８０３−２として設定された値で実行したときの計算コストの見積値である。計算コスト４０８０３−３の単位は、処理時間などで構わない。
【０１５３】
再利用データ削除手段４０８０１は、計算コスト見積手段４０８０３のデータを使って、高速化度を算出し、サブ解析結果共有メモリ４０４に登録する。すなわち、再利用データ削除手段４０８０１は、サブ解析結果共有メモリ４０４が記憶するサブタスク名４０４−１とスパン４０４−４とをキーにして、計算コスト見積手段４０８０３が算出した値が設定されるテーブル（図２４参照。）を検索し、計算コスト４０８０３−３の値を抽出して、サブ解析結果共有メモリ４０４に高速化度４０４−６として設定する。
【０１５４】
計算コスト４０８０３−３を高速化度４０４−６として設定する理由を説明する。再利用の処理は、サブ解析結果共有メモリ４０４を検索するだけであり、処理コストは、サブタスク名やスパンに関わらず一定である。よって、再利用処理は、処理コストを無視できるくらい高速であると考えることができる。したがって、高速化の効果を、サブ解析手段４０３の解析コストで近似できる。
【０１５５】
図２３の第３レコードに示す例では、サブタスク名４０４−１がＸ二乗合計であり、スパン４０４−４が1:00である。これらの値で図２４に示すテーブルを検索すると、計算コスト４０８０３−３として1000が抽出される。そのため、高速化度４０４−６は、1000となる。
【０１５６】
すべてのサブ解析結果共有メモリ４０４の高速化度４０４−６を算出すると、再利用データ削除手段４０８０１は、高速化度４０４−６の値の小さい方、すなわち再利用の効果のひくいレコードから順に削除する。図２３に示す例では、第１レコードと第２レコードとは、第３レコードや第４レコードよりも優先的に削除される。
【０１５７】
第４の実施形態によれば、メモリが少ない場合においても、高速に処理できるという効果がある。その理由は、各解析にかかるコストを見積り、優先度をつけて再利用の計算結果を記憶するように制御する計算コスト見積手段を有しているからである。
【０１５８】
実施形態５．
次に、本発明の第５の実施形態を図面を参照して説明する。図２５は、第５の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【０１５９】
図２５を参照すると、本発明の第５の実施形態は、第４の実施形態のイベントデータ解析ライブラリ手段４には設けられていないサブ解析観測手段４０９を含む。サブ解析観測手段４０９は、サブ解析手段４０３が各計算にかかった時間を観測し、観測結果を計算コスト見積手段４０８０３の計算コスト４０８０３−３として記録する。
【０１６０】
サブ解析観測手段４０９は、サブ解析手段４０３から、計算を開始したときと、計算が終了したときに、通知を受ける。例えば、サブ解析観測手段４０９は、サブ解析手段４０３が計算を開始したときに、サブタスク名と、スパンと、「開始」を示す情報とを含む通知を受ける。また、サブ解析観測手段４０９は、例えば、サブ解析手段４０３が計算を終了したときに、サブタスク名と、スパンと、「終了」を示す情報とを含む通知を受ける。
【０１６１】
サブ解析観測手段４０９は、開始と終了の通知があった時刻を記憶しておき、この差から、サブタスク名とスパンとの組に対する実行時間を算出する。サブ解析観測手段４０９は、算出した結果を、計算コスト見積手段４０８０３が記憶するテーブルの計算コスト４０８０３−３として登録する。この際、計算コスト４０８０３−３がすでに登録されている場合は、すでに登録されている値と、新規に登録する値の平均値を計算コストとして登録すれば良い。ただし、これは一例であり、上書きなど別の方法でも構わない。
【０１６２】
第５の実施形態によれば、高速化の処理のためのオーバヘッドを最小限におさえることができるという効果がある。その理由は、メモリの残量などのリソースの状態を監視しながら計算結果の再利用メモリを整理するタイミングを判定する再利用共有メモリ管理タイミング判定手段を有しているからである。
【０１６３】
実施形態６．
次に、本発明の第６の実施形態を図面を参照して説明する。第６の実施形態のストリームデータ解析高速化装置の構成は、図２５に示す第５の実施形態と同様である。
【０１６４】
第６の実施形態では、サブ解析結果共有メモリ４０４のフィールドに、計算結果を再利用した回数を記憶する「再利用回数」を追加する。
【０１６５】
また、再利用データ削除手段４０８０１がデータを削除する際に、利用頻度の少ないデータから削除するように再利用データ削除手段４０８０１を改造する。
【０１６６】
図２６は、第６の実施形態におけるサブ解析結果共有メモリ４０４の登録例を示す説明図である。サブ解析結果共有メモリ４０４は、サブタスク名４０４−１、種類４０４−２、開始情報４０４−３、スパン４０４−４、計算結果４０４−５および高速化度４０４−６（図２３参照。）に加えて、再利用回数４０４−７を含む情報を記憶する。
【０１６７】
再利用回数４０４−７には、サブ解析方法決定手段４０２がサブ解析結果共有メモリ４０４に登録する際（ステップＳ４０２−５）に、例えば、値０が設定される。以後、サブ解析方法決定手段４０２がサブ解析結果共有メモリ４０４のデータを再利用する度にひとつ値を増加させる。
【０１６８】
実施形態７．
次に、本発明の第７の実施形態を図面を参照して説明する。図２７は、第７の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【０１６９】
図２７を参照すると、本発明の第７の実施形態は、第３、第４、第５および第６の実施形態に加えて、再利用共有メモリ管理タイミング判定手段４１０を含む。再利用共有メモリ管理タイミング判定手段４１０は、サブ解析結果共有メモリ管理手段４０８が、サブ解析結果共有メモリ４０４の中から再利用の可能性が低いデータを削除する処理を実行するタイミングを判断する。
【０１７０】
再利用共有メモリ管理タイミング判定手段４１０は、メモリの残量などを監視し、例えば、ある一定の値以下になった場合に、サブ解析結果共有メモリ管理手段４０８に、再利用の可能性が低いデータの削除を依頼するようにすれば良い。ただし、これは一例であり、例えば、使用メモリの利用率の履歴から将来のメモリ利用率を予測して、リソースの限界を超えないタイミングで通知するなど様々な方法が考えられる。
【０１７１】
なお、本発明の各実施形態は、以下に示す構成を備えることにより、本発明の目的を達成することができる。
【０１７２】
大量に、永続的に時々刻々と発生する情報を逐次的に分析する情報処理装置において、特に、大量のセンサデータを複数のアプリケーションが同時に解析する情報処理装置に関して、解析対象となるデータを時々刻々と発生させるセンサと、センサからのデータをデータの発生時間を考慮して解析するために時系列にデータを記憶する解析用キューと、解析用キューのデータを複数のアプリケーションで並列に解析する手段であり、それぞれ解析のインスタンスが独立に動作するデータ解析手段と、複数のデータ解析手段に共通のサブの解析手段を提供するライブラリーであり、複数のデータ解析の並列実行に関して、可能な限り冗長な計算を省いて高速化をはかるイベントデータ解析ライブラリ手段を有することにより、データ解析手段の高速化が期待できる。
【０１７３】
イベントデータ解析ライブラリ手段は、データ解析手段がイベントデータ解析ライブラリ手段を利用するインタフェースを提供するサブ解析インタフェース手段と、サブ解析インタフェース手段が呼び出された際に、解析用キューを使って計算をするのか、過去の計算結果を流用するのかを判断するサブ解析方法決定手段と、サブ解析インタフェース手段が提供するサブの解析に関して、解析用キューのデータを使って解析するサブ解析手段と、サブ解析手段の解析結果を時間軸を考慮しながら再利用のために一時的に記憶するサブ解析結果共有メモリから構成することで、データ解析手段の高速化が期待できる。
【０１７４】
さらに、データ解析手段が、サブ解析インタフェース手段を呼び出した履歴の中で最新のものを常に記憶する最新呼出履歴手段と、複数のデータ解析手段が並列にかつ互いに独立に実行している状況に対して、互いに解析ウインドウを同期させるデータ解析スケジューリング手段と、データ解析スケジューリング手段の結果を受けて、各データ解析手段が保持している解析ウインドウを時間軸でずらす解析データシフト手段を構成に加えることで、複数のデータ解析手段が互いに独立に解析を実行した場合においても高速に処理できる。
【０１７５】
サブ解析結果共有メモリで記憶している解析結果の中で必要がないエントリーを削除するサブ解析結果共有メモリ管理手段を構成に加えることで、永続的にストリームデータを高速に解析できる。
【０１７６】
サブ解析結果共有メモリ管理手段が、解析用キューのデータで削除されたデータを監視する解析用キュー監視手段と、解析用キュー監視手段の結果をうけて、サブ解析結果共有メモリで記憶している計算結果の中から再利用されないエントリーを検索し削除する再利用データ削除手段から構成されることで、永続的にストリームデータを高速に解析できる。
【０１７７】
さらに、サブ解析結果共有メモリ管理手段に、サブ解析手段で実行する解析にかかる計算コストの見積りを記憶しておく、計算コスト見積手段を構成に加え、再利用データ削除手段の動作を計算コスト見積手段が算出した計算コストデータを元にサブ解析結果共有メモリで記憶している計算結果の中から再利用されないエントリーを削除するように改造し、さらに、サブ解析結果共有メモリのフィールドに再利用した場合の高速化の効果の見積もり値を記憶する高速化度を追加することにより、メモリが少ない場合においても、高速に処理できる。
【０１７８】
サブ解析手段の各計算にかかった時間を観測し、計算コスト見積手段へ観測結果を記録するサブ解析観測手段を構成に追加することで、メモリが少ない場合においても、高速に処理できる。
【０１７９】
サブ解析結果共有メモリ管理手段に、計算結果を再利用した回数を記憶するフィールドを追加し、再利用データ削除手段がデータを削除する際に、利用頻度の少ないデータから削除するように改造することで、メモリが少ない場合においても、高速に処理できる。
【０１８０】
サブ解析結果共有メモリ管理手段が、サブ解析結果共有メモリの中から再利用の可能性が低いデータを削除する処理を実行するタイミングをはかる再利用共有メモリ管理タイミング判定手段を構成に加えることで、高速化の処理のためのオーバヘッドを最小限におさえることができる。
【０１８１】
なお、上記に示した実施形態では、以下の（１）〜（９）に示すような特徴的構成を備えた証明書生成配布システムが示されている。
【０１８２】
（１）解析対象となるデータを時々刻々と出力するデータ出力手段が出力するデータを逐次的に分析する情報処理装置に適用されるストリームデータ解析高速化装置であって、データ出力手段が出力したデータを、データの発生時間を考慮して解析するために、時系列に記憶するデータ記憶手段（例えば、解析用キュー２で実現される）と、データ記憶手段が記憶するデータを複数のアプリケーションとして並列に解析する手段であって、それぞれ解析のインスタンスが独立に動作するデータ解析手段（例えば、データ解析手段３で実現される）と、複数のデータ解析手段に共通する下位の解析手段を提供するライブラリであって、複数のデータ解析の並列実行に関して、冗長な計算を省いて高速化をはかるイベントデータ解析ライブラリ手段（例えば、イベントデータ解析ライブラリ手段４で実現される）とを備えたことを特徴とするストリームデータ解析高速化装置。
【０１８３】
（２）イベントデータ解析ライブラリ手段は、データ解析手段がイベントデータ解析ライブラリ手段を利用する際のインタフェースを提供するサブ解析インタフェース手段（例えば、サブ解析インタフェース手段４０１で実現される）と、データ解析手段がサブ解析インタフェース手段を呼び出した際に、データ記憶手段が記憶するデータを使って計算をするのか、過去の計算結果を流用して計算するのかを判断するサブ解析方法決定手段（例えば、サブ解析方法決定手段４０２で実現される）と、サブ解析インタフェース手段が提供する下位の解析に関して、データ記憶手段が記憶するデータを使って解析するサブ解析手段（例えば、サブ解析手段４０３で実現される）と、サブ解析手段が解析した結果を、時間軸を考慮しながら再利用のために一時的に記憶するサブ解析結果共有記憶手段（例えば、サブ解析結果共有メモリ４０４で実現される）とを含むデータストリーム解析高速化装置。そのように構成されたデータストリーム解析高速化装置は、複数のデータ解析手段に共通の部分解析処理を高速に処理することができる。
【０１８４】
（３）イベントデータ解析ライブラリ手段は、データ解析手段がサブ解析インタフェース手段を呼び出した履歴を示す履歴情報のうち、最新の履歴情報を常に記憶する最新呼出履歴手段（例えば、最新呼出履歴手段４０７で実現される）と、複数のデータ解析手段が並列にかつ互いに独立に実行している状況に対して、互いに解析対象となるデータの解析単位を示す解析ウインドウを同期させるデータ解析スケジューリング手段（例えば、データ解析スケジューリング手段４０５で実現される）と、データ解析スケジューリング手段の結果を受けて、各データ解析手段が保持している解析ウインドウを時間軸でずらす解析データシフト手段（例えば、解析データシフト手段４０６で実現される）とを含むデータストリーム解析高速化装置。そのように構成されたデータストリーム解析高速化装置は、複数のデータ解析手段が互いに独立に解析を実行した場合においても高速に処理することができる。
【０１８５】
（４）イベントデータ解析ライブラリ手段は、サブ解析結果共有記憶手段が記憶している解析結果の中で必要がないエントリーを削除するサブ解析結果共有記憶部管理手段（例えば、サブ解析結果共有メモリ管理手段４０８で実現される）を含むデータストリーム解析高速化装置。そのように構成されたデータストリーム解析高速化装置は、一定量のメモリしか利用しないため、高速に解析することができる。
【０１８６】
（５）サブ解析結果共有記憶部管理手段は、データ記憶手段から削除されたデータを監視するデータ記憶部監視手段（例えば、解析用キュー監視手段４０８０２で実現される）と、データ記憶部監視手段が監視した結果に基づいて、サブ解析結果共有記憶手段が記憶している計算結果の中から再利用されないエントリーを検索し削除する再利用データ削除手段（例えば、再利用データ削除手段４０８０１で実現される）とを有するデータストリーム解析高速化装置。そのように構成されたデータストリーム解析高速化装置は、メモリが少ない場合においても、高速に処理することができる。
【０１８７】
（６）サブ解析結果共有記憶部管理手段は、サブ解析手段が実行する解析にかかる計算コストの見積りを記憶する計算コスト見積手段（例えば、計算コスト見積手段４０８０３で実現される）を有し、サブ解析結果共有記憶手段は、再利用した場合の高速化の効果の見積り値を示す高速化度情報を記憶し、再利用データ削除手段は、計算コスト見積手段が算出した計算コストデータをサブ解析結果共有記憶手段に高速化度情報として記憶し、高速化度情報に基づいて、サブ解析結果共有記憶手段が記憶している計算結果の中から再利用されないエントリーを抽出して削除するデータストリーム解析高速化装置。そのように構成されたデータストリーム解析高速化装置は、高速化の処理のためのオーバヘッドを最小限におさえることができる。
【０１８８】
（７）イベントデータ解析ライブラリ手段は、サブ解析手段が計算にかかった時間を観測し、観測結果を計算コスト見積手段に計算コストの見積りとして記録するサブ解析観測手段（例えば、サブ解析観測手段４０９で実現される）を含むデータストリーム解析高速化装置。
【０１８９】
（８）サブ解析結果共有記憶手段は、計算結果を再利用した回数を示す情報を記憶し、再利用データ削除手段は、サブ解析結果共有記憶手段からデータを削除する際に、計算結果を再利用した回数を示す情報に基づいて、利用頻度の少ないデータから削除するデータストリーム解析高速化装置。
【０１９０】
（９）サブ解析結果共有記憶部管理手段は、サブ解析結果共有記憶手段の中から再利用の可能性が低いデータを削除する処理を実行するタイミングをはかる再利用共有記憶部管理タイミング判定手段（例えば、再利用共有メモリ管理タイミング判定手段４１０で実現される）を有するデータストリーム解析高速化装置。
【産業上の利用可能性】
【０１９１】
本発明は、大量に、永続的に時々刻々と発生する情報を逐次的に分析する情報処理装置に効果的に適用でき、特に、大量のセンサデータを複数のアプリケーションが同時に解析する情報処理装置に効果的に適用できる。
【図面の簡単な説明】
【０１９２】
【図１】第１の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【図２】リングバッファ方式の一例を説明するための説明図である。
【図３】インスタンスが並行してデータを解析する処理（並列解析）の一例を説明するための説明図である。
【図４】並列解析におけるリングバッファ方式の一例を説明するための説明図である。
【図５】最小二乗法の一例を説明するための説明図である。
【図６】解析ウインドウのスライディングの例を説明するための説明図である。
【図７】ストリームデータ解析装置の構成例を比較するための説明図である。
【図８】サブ解析結果共有メモリ４０４の登録例を示す説明図である。
【図９】サブ解析方法決定手段４０２の動作の一例を示すフローチャートである。
【図１０】第１の実施形態におけるストリームデータ解析高速化装置の動作の一例を示すフローチャートである。
【図１１】第２の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【図１２】解析ウインドウの同期が取れていない場合の例を説明するための説明図である。
【図１３】解析ウインドウの同期処理の一例を説明するための説明図である。
【図１４】履歴情報が登録されているテーブルの構造の例を示す説明図である。
【図１５】最新呼出履歴手段４０７の動作の一例を示すフローチャートである。
【図１６】データ解析スケジューリング手段４０５の動作の一例を示すフローチャートである。
【図１７】グループ分けされた履歴情報の例を説明するための説明図である。
【図１８】さらに細かくグループ分けされた履歴情報の例を説明するための説明図である。
【図１９】第２の実施形態におけるストリームデータ解析高速化装置の動作の一例を示すフローチャートである。
【図２０】第３の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【図２１】第３の実施形態におけるストリームデータ解析高速化装置の動作の一例を示すフローチャートである。
【図２２】第４の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【図２３】第４の実施形態におけるサブ解析結果共有メモリ４０４の登録例を示す説明図である。
【図２４】計算コスト見積手段４０８０３が算出した値が設定されるテーブルの登録例を示す説明図である。
【図２５】第５の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【図２６】第６の実施形態におけるサブ解析結果共有メモリ４０４の登録例を示す説明図である。
【図２７】第７の実施形態のストリームデータ解析高速化装置の構成例を示すブロック図である。
【図２８】データストリーム処理の一例を説明するための説明図である。
【符号の説明】
【０１９３】
１      センサ
２      解析用キュー
３      データ解析手段
４      イベントデータ解析ライブラリ手段
４０１  サブ解析インタフェース手段
４０２  サブ解析方法決定手段
４０３  サブ解析手段
４０４  サブ解析結果共有メモリ
【図１】
2009087190.tif 000003
【図２】
2009087190.tif 000004
【図３】
2009087190.tif 000005
【図４】
2009087190.tif 000006
【図５】
2009087190.tif 000007
【図６】
2009087190.tif 000008
【図７】
2009087190.tif 000009
【図８】
2009087190.tif 000010
【図９】
2009087190.tif 000011
【図１０】
2009087190.tif 000012
【図１１】
2009087190.tif 000013
【図１２】
2009087190.tif 000014
【図１３】
2009087190.tif 000015
【図１４】
2009087190.tif 000016
【図１５】
2009087190.tif 000017
【図１６】
2009087190.tif 000018
【図１７】
2009087190.tif 000019
【図１８】
2009087190.tif 000020
【図１９】
2009087190.tif 000021
【図２０】
2009087190.tif 000022
【図２１】
2009087190.tif 000023
【図２２】
2009087190.tif 000024
【図２３】
2009087190.tif 000025
【図２４】
2009087190.tif 000026
【図２５】
2009087190.tif 000027
【図２６】
2009087190.tif 000028
【図２７】
2009087190.tif 000029
【図２８】
2009087190.tif 000030