(57)【要約】【課題】信頼性が確保されていない通信路であっても、移動体等をリアルタイムに制御可能なストリームデータ処理装置等を提供する。【解決手段】ストリームデータ処理装置１は、入力ストリームデータの中から処理対象となるデータを取り出すウィンドウ演算処理２１、取り出したデータに対して、所定の関係演算処理を実行する関係演算処理２２、及び演算結果から出力ストリームデータを生成するストリーム化演算処理２３を実行する。ウィンドウ演算処理２１では、開始から実行周期ごとにデータを分割するウィンドウを用いる。関係演算処理２２では、状態別関係演算処理を予め状態ごとに対応付けておき、イベントの発生によって状態の遷移を実行することによって、制御対象の状態ごとに処理内容を切り替える。【選択図】図２
2015184959.tif 000002
【特許請求の範囲】
【請求項１】
ストリームデータ処理を実行するストリームデータ処理装置であって、
入力ストリームデータおよび入力イベントを入力する入力手段と、
前記入力ストリームデータおよび前記入力イベントの中から処理対象を取り出し、取り出された処理対象に対する関係演算を行い、前記関係演算の結果に基づいて出力ストリームデータを生成する演算手段と、
前記出力ストリームデータを出力する出力手段と、
を備え、
前記演算手段による処理内容は予め状態ごとに定められており、
前記演算手段は、前記入力イベントに従って状態の遷移を実行し、状態の遷移に応じて処理内容を切り替える
ことを特徴とするストリームデータ処理装置。
【請求項２】
前記演算手段は、予め定められた実行周期ごとに、前記入力イベントが入力されていない場合には前記入力ストリームデータのみを処理対象として取り出し、前記入力イベントが入力されている場合には前記入力ストリームデータを取り出す前又は取り出した後に前記入力イベントを処理対象として取り出す
ことを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項３】
前記演算手段は、予め定められた実行周期ごとに、前記入力ストリームデータおよび前記入力イベントを取り出し、前記入力イベントの時刻を区切りとして前記入力ストリームデータをストリームサブセットに分割し、時刻順に前記ストリームサブセットと前記入力イベントに含まれるイベントエレメントとを交互に処理対象とする
ことを特徴とする請求項１に記載のストリームデータ処理装置。
【請求項４】
前記演算手段は、前記入力ストリームデータの抜けに対する補完、及び前記入力ストリームデータの到着順序の逆転に対する修正を行う
ことを特徴とする請求項１乃至請求項３のいずれかに記載のストリームデータ処理装置。
【請求項５】
ＣＰＵ、メモリ及びデータの入出力手段を備える処理装置が、ストリームデータ処理を実行するストリームデータ処理方法であって、
入力ストリームデータおよび入力イベントを入力する入力ステップと、
前記入力ストリームデータおよび前記入力イベントの中から処理対象を取り出し、取り出された処理対象に対する関係演算を行い、前記関係演算の結果に基づいて出力ストリームデータを生成する演算ステップと、
前記出力ストリームデータを出力する出力ステップと、
を含み、
前記演算ステップによる処理内容は予め状態ごとに定められており、
前記演算ステップは、前記入力イベントに従って状態の遷移を実行し、状態の遷移に応じて処理内容を切り替える
ことを特徴とするストリームデータ処理方法。
【請求項６】
ＣＰＵ、メモリ及びデータの入出力手段を備える処理装置にストリームデータ処理を実行させるためのストリームデータ処理プログラムであって、
前記処理装置に、
入力ストリームデータおよび入力イベントを入力する入力ステップと、
前記入力ストリームデータおよび前記入力イベントの中から処理対象を取り出し、取り出された処理対象に対する関係演算を行い、前記関係演算の結果に基づいて出力ストリームデータを生成する演算ステップと、
前記出力ストリームデータを出力する出力ステップと、
を実行させ、
前記演算ステップによる処理内容は予め状態ごとに定められており、
前記演算ステップは、前記入力イベントに従って状態の遷移を実行し、状態の遷移に応じて処理内容を切り替える
ことを特徴とするストリームデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータ処理を実行するストリームデータ処理装置等に関するものである。
【背景技術】
【０００２】
近年のネットワーク技術やセンサ技術の進歩に伴い、大規模なセンサデータの収集、解析をクラウド上で行い、その分析結果を活用するアプリケーションが広まりつつある。ここで、クラウドの構成要素としては、データセンタのみならず、移動体（車両を含む。）、ＰＣ（Personal Computer）、スマートフォン等、ネットワークに接続される処理装置の全てが対象となる。特に、ＩＴＳ（Intelligent Transport Systems：高度道路交通システム）関係のアプリケーションでは、単なるセンサデータの収集、解析に留まらず、移動体等（信号、標識等の周辺環境も含む。）に対して、クラウドからリアルタイムに制御を行うことも考えられる。例えば、広範囲の移動体の位置や速度、信号の状態等を収集してクラウドで処理し、リアルタイムに移動体等を制御して衝突回避を行うアプリケーション等が挙げられる。クラウドから制御を行う利点は、広範囲の情報を扱うことができること、移動体等の計算負荷をオフロードできること等が挙げられる。
【０００３】
センサデータのリアルタイム処理を可能にするデータ処理技術としては、例えば、ストリームデータ処理技術が挙げられる。ストリームデータ処理技術とは、データ源から時系列で生成される継続的なデータ列を、データベースに格納するのではなく、メモリ上でリアルタイムに処理する技術である。ストリームデータ処理技術の特徴の一つは、非同期に到着する可変個の入力データを扱えることである。ストリームデータ処理技術を搭載したデータ処理システムは、一般的にデータストリーム管理システム（ＤＳＭＳ：DataStream Management System）と呼ばれる。
【０００４】
クラウドから移動体等を制御するためにデータストリーム管理システムを用いる理由は、非同期に到着する可変個のデータを入力とする制御アプリケーションを簡潔に実現するためである。例えば、クラウドによるセンサデータの収集時には非同期にセンサデータが到着し、かつデータの発生時刻は互いに異なる。また、信頼性が確保されていない通信路を用いることが多く、データの遅れ、抜け、到着順序の逆転など、ある単位時間当たりの入力データが可変個で不完全である可能性がある。データストリーム管理システムは、このような入力データ列を処理することに適したシステムであり、クラウドから移動体等を制御するために有望な技術である。すなわち、非同期に到着する可変個の入力データに対して、リアルタイムに統計演算を施して、入力データを補完、修正できる。また、互いに発生時刻が近接する入力データを抽出し、それらを一纏まりの入力データとして処理を行うことができる。
【０００５】
従来のＤＳＭＳとしては、非特許文献１に記載のものがある。また、ＤＳＭＳに近い仕組みを利用した制御アプリケーションとしては、特許文献１に記載のものがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２３６２４３号公報
【非特許文献】
【０００７】
【非特許文献１】M. Cherniack et al. “Scalabledistributed stream processing. In Proc. of the First Biennial Conference onInnovative Data Systems Research” (CIDR’03), 2003
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、非特許文献１のような従来のＤＳＭＳは、クラウドから移動体等を制御する用途には向いていない。すなわち、分析結果を移動体等にフィードバッグして制御することは考慮されておらず、リアルタイムにデータを収集、分析するだけの用途に用いられている。そのため、従来のＤＳＭＳのデータ収集、分析アルゴリズムは、オペレータという状態を持たない演算子を組み合わせることでストリームデータ処理を記述できることが多い。また、それらの演算子は、入力が与えられたら即座に処理を行い、出力するという非同期的な処理を行う。しかし、移動体等の制御アルゴリズム等では、移動体等の状態（例：加速モード、減速モード等）によって処理内容を切り替える必要があるため、従来のＤＳＭＳでは、移動体等の制御アルゴリズムを記述し、実行することが困難である。
【０００９】
また、特許文献１に記載の制御アプリケーションでは、非同期入力を扱える一方、信頼性が確保されていない通信路には対応していない。例えば、取り込み開始命令を受信後に、本来、それ以前に受信すべきデータが届いた場合には対応できない。また、取り込み開始指令自体が遅延して届いた場合、送信データの取り込みが実行周期に間に合わない可能性もある。
【００１０】
本発明は、前述した問題点に鑑みてなされたものであり、その目的とすることは、信頼性が確保されていない通信路であっても、移動体等をリアルタイムに制御可能なストリームデータ処理装置等を提供することである。
【課題を解決するための手段】
【００１１】
前述した目的を達成するための第１の発明は、ストリームデータ処理を実行するストリームデータ処理装置であって、入力ストリームデータおよび入力イベントを入力する入力手段と、前記入力ストリームデータおよび前記入力イベントの中から処理対象を取り出し、取り出された処理対象に対する関係演算を行い、前記関係演算の結果に基づいて出力ストリームデータを生成する演算手段と、前記出力ストリームデータを出力する出力手段と、を備え、前記演算手段による処理内容は予め状態ごとに定められており、前記演算手段は、前記入力イベントに従って状態の遷移を実行し、状態の遷移に応じて処理内容を切り替えることを特徴とするストリームデータ処理装置である。第１の発明によって、移動体等をリアルタイムに制御可能となる。
【００１２】
第１の発明における前記演算手段は、例えば、予め定められた実行周期ごとに、前記入力イベントが入力されていない場合には前記入力ストリームデータのみを処理対象として取り出し、前記入力イベントが入力されている場合には前記入力ストリームデータを取り出す前又は取り出した後に前記入力イベントを処理対象として取り出す。これによって、周期的にストリーム処理を駆動することが可能となる。
【００１３】
第１の発明における前記演算手段は、例えば、予め定められた実行周期ごとに、前記入力ストリームデータおよび前記入力イベントを取り出し、前記入力イベントの時刻を区切りとして前記入力ストリームデータをストリームサブセットに分割し、時刻順に前記ストリームサブセットと前記入力イベントに含まれるイベントエレメントとを交互に処理対象とする。これによって、入力ストリームデータと入力イベントが時系列的に前後せず、矛盾なく入力される為、状態に応じたストリームデータ処理を定義し、イベントの発生によって状態を切り替えることができ、ひいては、ストリームデータ処理を状態に応じて切り替えることが可能となる。
【００１４】
また、第１の発明における前記演算手段は、例えば、前記入力ストリームデータの抜けに対する補完、及び前記入力ストリームデータの到着順序の逆転に対する修正を行う。これによって、信頼性が確保されていない通信路であっても、ストリームデータ処理を実現することができる。
【００１５】
第２の発明は、ＣＰＵ、メモリ及びデータの入出力手段を備える処理装置が、ストリームデータ処理を実行するストリームデータ処理方法であって、入力ストリームデータおよび入力イベントを入力する入力ステップと、前記入力ストリームデータおよび前記入力イベントの中から処理対象を取り出し、取り出された処理対象に対する関係演算を行い、前記関係演算の結果に基づいて出力ストリームデータを生成する演算ステップと、前記出力ストリームデータを出力する出力ステップと、を含み、前記演算ステップによる処理内容は予め状態ごとに定められており、前記演算ステップは、前記入力イベントに従って状態の遷移を実行し、状態の遷移に応じて処理内容を切り替えることを特徴とするストリームデータ処理方法である。第２の発明によって、移動体等をリアルタイムに制御可能となる。
【００１６】
第３の発明は、ＣＰＵ、メモリ及びデータの入出力手段を備える処理装置にストリームデータ処理を実行させるためのストリームデータ処理プログラムであって、前記処理装置に、入力ストリームデータおよび入力イベントを入力する入力ステップと、前記入力ストリームデータおよび前記入力イベントの中から処理対象を取り出し、取り出された処理対象に対する関係演算を行い、前記関係演算の結果に基づいて出力ストリームデータを生成する演算ステップと、前記出力ストリームデータを出力する出力ステップと、を実行させ、前記演算ステップによる処理内容は予め状態ごとに定められており、前記演算ステップは、前記入力イベントに従って状態の遷移を実行し、状態の遷移に応じて処理内容を切り替えることを特徴とするストリームデータ処理プログラムである。第３の発明のストリームデータ処理プログラムを、ＣＰＵ、メモリ及びデータの入出力手段を備える処理装置にインストールすることによって、第１の発明のストリームデータ処理装置を得ることができる。
【発明の効果】
【００１７】
本発明により、信頼性が確保されていない通信路であっても、移動体等をリアルタイムに制御可能なストリームデータ処理装置等を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】ストリームデータ処理装置のハードウエア構成図
【図２】ストリームデータ処理の概要を示すフローチャート
【図３】ジャンピングタイムベースウィンドウを説明する図
【図４】ストリームセパレータを説明する図
【図５】状態別関係演算処理機能を説明する図
【図６】第１実施形態の全体構成を示す図
【図７】第１実施形態の第１状態を示す図
【図８】第１実施形態の第２状態を示す図
【図９】第１実施形態の第３状態を示す図
【図１０】第１実施形態の第４状態を示す図
【図１１】第１実施形態の第５状態を示す図
【図１２】第１実施形態の第６状態を示す図
【図１３】第１実施形態の第７状態を示す図
【図１４】第１実施形態の第８状態を示す図
【図１５】第２実施形態の全体構成を示す図
【図１６】第３実施形態の全体構成を示す図
【発明を実施するための形態】
【００１９】
以下図面に基づいて、本発明の実施形態を詳細に説明する。最初に、図１〜図５を参照しながら、全ての実施形態に共通する構成について説明する。
【００２０】
図１は、ストリームデータ処理装置のハードウエア構成図である。尚、図１のハードウエア構成は一例である。ストリームデータ処理装置１は、少なくとも、後述するＣＰＵ１１及びメモリ１２、並びにデータの入出力手段（通信制御部１４、周辺機器Ｉ／Ｆ部１７等）を備えていれば良い。
【００２１】
図１に示すように、ストリームデータ処理装置１は、ＣＰＵ（Central
Processing Unit）１１、メモリ１２、記憶部１３、通信制御部１４、入力部１５、表示部１６、周辺機器Ｉ／Ｆ部１７等が、バス１８を介して接続される。
【００２２】
ＣＰＵ１１は、記憶部１３等に格納されるプログラムをメモリ１２上のワークメモリ領域に呼び出して実行し、バス１８を介して接続された各装置を駆動制御し、ストリームデータ処理装置１が行う後述する処理を実現する。
【００２３】
メモリ１２は、揮発性メモリであり、記憶部１３等からロードしたプログラム、データ等を一時的に保持するとともに、ＣＰＵ１１が各種処理を行う為に使用するワークエリアを備える。特に、ストリームデータ処理では、ＣＰＵ１１は、データ源から時系列で生成される継続的なデータ列を、メモリ１２上でリアルタイムに処理する。
【００２４】
記憶部１３は、ＨＤＤ（Hard Disk Drive）等であり、ＣＰＵ１１が実行するプログラム、プログラム実行に必要なデータ、ＯＳ（Operating System）等が格納される。プログラムに関しては、ＯＳに相当する制御プログラムや、後述する処理をストリームデータ処理装置１に実行させるためのアプリケーションプログラムが格納されている。これらの各プログラムコードは、ＣＰＵ１１により必要に応じて読み出されてメモリ１２に移され、ＣＰＵ１１に読み出されて各種の手段として実行される。
【００２５】
通信制御部１４は、通信制御装置、通信ポート等を有し、ストリームデータ処理装置１とネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他のコンピュータ間との通信制御を行う。ネットワークは、有線、無線を問わない。
【００２６】
入力部１５は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。入力部１５を介して、ストリームデータ処理装置１に対して、操作指示、動作指示、データ入力等を行うことができる。表示部１６は、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してストリームデータ処理装置１のビデオ機能を実現するための論理回路等（ビデオアダプタ等）を有する。尚、入力部１５及び表示部１６は、タッチパネルディスプレイのように、一体となっていても良い。
【００２７】
周辺機器Ｉ／Ｆ（Interface）部１７は、ストリームデータ処理装置１に周辺機器を接続させるためのポートであり、周辺機器Ｉ／Ｆ部１７を介してストリームデータ処理装置１は周辺機器とのデータの送受信を行う。周辺機器Ｉ／Ｆ部２７は、ＵＳＢ（Universal Serial Bus）やＩＥＥＥ１３９４やＲＳ−２３２Ｃ等によって構成されており、通常複数の周辺機器Ｉ／Ｆを有する。周辺機器との接続形態は有線、無線を問わない。バス１８は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００２８】
図２は、ストリームデータ処理の概要を示すフローチャートである。ストリームデータ処理装置１は、入力ストリームデータ及び入力イベントを入力し、ウィンドウ演算処理２１、関係演算処理２２及びストリーム化演算処理２３を実行し、出力ストリームデータ及び出力イベントを出力する。
【００２９】
ウィンドウ演算処理２１では、ストリームデータ処理装置１のＣＰＵ１１は、入力ストリームデータの中から処理対象となるデータを取り出す。入力ストリームデータは時刻順に連続して到来するため、データの切れ目がない。ＣＰＵ１１は、処理対象とするデータを取り出すため、「ウィンドウ」という単位で入力ストリームデータを分割する。
【００３０】
関係演算処理２２では、ＣＰＵ１１は、取り出したデータに対して、所定の関係演算処理を実行する。関係演算処理の一例としては、例えば、条件を満たすデータの抽出（フィルタリング）、データの結合、データの計算や集計（四則演算、比較演算、論理演算、集合関数による演算）等が挙げられる。
【００３１】
ストリーム化演算処理２３では、ＣＰＵ１１は、演算結果から出力ストリームデータを生成する。入力ストリームデータが時刻順に連続して到来するため、演算結果も変化していく。ストリーム化演算処理２３では、どのタイミングで演算結果から出力ストリームデータを生成するかを定義しておく。
【００３２】
図３は、ジャンピングタイムベースウィンドウを説明する図である。本実施形態のストリームデータ処理装置１は、ウィンドウ演算処理２１において、以下に説明する「ジャンピングタイムベースウィンドウ」によってストリームデータを分割する。「ジャンピングタイムベースウィンドウ」は、開始から実行周期ごとにデータを分割するウィンドウである。以下、「ジャンピングタイムベースウィンドウ」を省略して「ウィンドウ」と表記する場合もある。
【００３３】
図３に示す例では、実行周期ｔｐは５[ｍｓ]である。入力ストリームデータｓｉｎ１は、時刻０のとき「２」、時刻１のとき「２」、時刻３のとき「３」、時刻８のとき「４」、時刻１０のとき「５」、時刻１５のとき「６」である。ここで、｛時刻０のとき「２」｝というデータは、「タプル」と呼ばれており、値と時刻（タイムスタンプ）を併せ持つデータである。
【００３４】
ＣＰＵ１１は、実行周期ごとに、ストリームセパレータ（図４を参照しながら後述）の起動とウィンドウのクリアを繰り返す。図３に示す例であれば、時刻５になると、現在のウィンドウに含まれる３つのタプル｛時刻０のとき「２」、時刻１のとき「２」、時刻３のとき「３」｝を引数としてストリームセパレータが起動され、ウィンドウがクリアされる。また、時刻１０になると、現在のウィンドウに含まれる２つのタプル｛時刻８のとき「４」、時刻１０のとき「５」｝を引数としてストリームセパレータが起動され、ウィンドウがクリアされる。尚、ストリームセパレータの起動後に実行周期を経過して到着したタプルは破棄される。
【００３５】
「ジャンピングタイムベースウィンドウ」によって、可変個の入力ストリームデータが非同期に到着しても、周期的にストリームデータ処理を実行することができる。
【００３６】
図４は、ストリームセパレータを説明する図である。本実施形態のストリームデータ処理装置１は、関係演算処理２２において、以下に説明する「ストリームセパレータ」を起動し、ストリームサブセット及びイベントエレメントを状態別関係演算処理機能（図５を参照しながら後述）に引き渡す。「ストリームセパレータ」は、ストリーム分割機能及びストリームサブセット入力機能を備え、予め定められた実行周期ごとに、入力ストリームデータおよび入力イベントを取り出し、入力イベントの時刻を区切りとして入力ストリームデータをストリームサブセットに分割し、時刻順にストリームサブセットと入力イベントに含まれるイベントエレメントとを交互に処理対象とする。
【００３７】
ストリーム分割機能は、実行周期ごとに、（１−１）ジャンピングタイムベースウィンドウで区切った入力ストリームデータについて、入力イベントの時刻（タイムスタンプ）を区切りにしてストリーム分割リストとしてリスト化し、（１−２）入力イベントをイベント分割リストとしてリスト化する。
【００３８】
ストリームサブセット入力機能は、ストリーム分割機能の動作ごとに、（２−１）ストリーム分割リストの先頭のストリームサブセットを状態別関係演算処理機能に引き渡し、（２−２）イベント分割リストの先頭のイベントエレメントを状態別関係演算処理機能に引き渡し、（２−３）各リストの先頭を削除する、という処理をストリーム分割リスト及びイベント分割リストが空になるまで繰り返す。
【００３９】
図４に示す例では、実行周期ｔｐは２０[ｍｓ]である。入力ストリームデータｓｉｎ１は、時刻０のとき「２」、時刻１のとき「２」、時刻３のとき「３」、時刻８のとき「４」、時刻１０のとき「５」、時刻１５のとき「６」、時刻１８のとき「７」という７つのタプルを含む。入力ストリームデータｓｉｎ２は、時刻０のとき「５」、時刻２のとき「１３」、時刻８のとき「２１」、時刻１１のとき「３３」、時刻１４のとき「４２」という５つのタプルを含む。入力イベントｅｉｎ１は、時刻７のとき「１」、時刻１０のとき「１」という２つのタプルを含む。
【００４０】
ＣＰＵ１１は、ストリーム分割機能のプログラムに従い、ジャンピングタイムベースウィンドウで区切った入力ストリームデータについて、入力イベントの時刻（タイムスタンプ）を区切りにしてストリーム分割リストとしてリスト化する。図４に示す入力ストリームデータｓｉｎ１の例であれば、時刻７のとき「１」、時刻１０のとき「１」という２つの入力イベントの時刻（タイムスタンプ）を区切りとして、｛時刻０のとき「２」、時刻１のとき「２」、時刻３のとき「３」｝という３つのタプルを含む第１ストリームサブセット、｛時刻８のとき「４」、時刻１０のとき「５」｝という２つのタプルを含む第２ストリームサブセット、｛時刻１５のとき「６」、時刻１８のとき「７」｝という２つのタプルを含む第３ストリームサブセットと分割し、ストリーム分割リストｓｌｓｔ１としてリスト化する。
【００４１】
同様に、図４に示す入力ストリームデータｓｉｎ２の例であれば、時刻７のとき「１」、時刻１０のとき「１」という２つの入力イベントの時刻（タイムスタンプ）を区切りとして、｛時刻０のとき「５」、時刻２のとき「１３」｝という２つのタプルを含む第１ストリームサブセット、｛時刻８のとき「２１」｝という１つのタプルを含む第２ストリームサブセット、｛時刻１１のとき「３３」、時刻１４のとき「４２」｝という２つのタプルを含む第３ストリームサブセットと分割し、ストリーム分割リストｓｌｓｔ２としてリスト化する。
【００４２】
次に、ＣＰＵ１１は、ストリーム分割機能のプログラムに従い、（１−２）入力イベントをイベント分割リストとしてリスト化する。図４に示す例であれば、時刻７のとき「１」というタプルを第１イベントエレメント、時刻１０のとき「１」というタプルを第２イベントエレメントとし、イベント分割リストとしてリスト化する。
【００４３】
次に、ＣＰＵ１１は、ストリームサブセット入力機能のプログラムに従い、（２−１）ストリーム分割リストの先頭のストリームサブセットを状態別関係演算処理機能に引き渡す。図４に示す例であれば、第１ストリームサブセット群を状態別関係演算処理機能に引き渡す。
【００４４】
次に、ＣＰＵ１１は、ストリームサブセット入力機能のプログラムに従い、（２−２）イベント分割リストの先頭のイベントエレメントを状態別関係演算処理機能に引き渡す。図４に示す例であれば、第１イベントエレメントを状態別関係演算処理機能に引き渡す。
【００４５】
次に、ＣＰＵ１１は、ストリームサブセット入力機能のプログラムに従い、（２−３）各リストの先頭を削除する。図４に示す例であれば、第１ストリームサブセット群及び第１イベントエレメントを削除する。
【００４６】
そして、ＣＰＵ１１は、ストリームサブセット入力機能のプログラムに従い、（２−１）〜（２−３）の処理を、ストリーム分割リスト及びイベント分割リストが空になるまで繰り返す。これによって、ＣＰＵ１１は、第１ストリームサブセット群、第１イベントエレメント、第２ストリームサブセット群、第２イベントエレメント、第３ストリームサブセット群の順に、状態別関係演算処理機能に引き渡す。
【００４７】
「ストリームセパレータ」によって、入力ストリームデータと入力イベントが時系列的に前後せず、矛盾なく入力される為、状態に応じたストリームデータ処理を定義し、イベントの発生によって状態を切り替えることができ、ひいては、ストリームデータ処理を状態に応じて切り替えることが可能となる。
【００４８】
尚、図４に示す例では、データの遅れ、抜け、到着順序の逆転などが発生していないが、データの抜け、到着順序の逆転などが発生した場合、ストリームセパレータは、データの補完や順序修正を行う。これによって、信頼性が確保されていない通信路であっても、ストリームデータ処理を実現することができる。
【００４９】
さらに、ストリームセパレータを具備しない場合、ＣＰＵ１１は、ジャンピングタイムベースウィンドウから直接、入力ストリームデータと入力イベントを状態別関係処理演算機能に引き渡す。その場合、入力ストリームデータと入力イベントを引き渡す順序は任意に設定できる。例えば、入力ストリームデータを入力した後に入力イベントを入力するか、入力ストリームデータを入力する前に入力イベント入力するかを設定できる。従って、ストリームセパレータを具備しない場合、ＣＰＵ１１は、予め定められた実行周期ごとに、入力イベントが入力されていない場合には入力ストリームデータのみを処理対象として状態別関係処理演算機能に引き渡し、入力イベントが入力されている場合には入力ストリームデータを引き渡す前又は引き渡した後に入力イベントを処理対象として引き渡す。また、この引渡しの前に、ＣＰＵ１１は、データの抜け、到着順序の逆転を修正する処理をジャンピングタイムベースウィンドウ内で行うこともできる。
【００５０】
図５は、状態別関係演算処理機能を説明する図である。本実施形態のストリームデータ処理装置１は、関係演算処理２２において、以下に説明する「状態別関係演算処理機能」を実行する。
【００５１】
状態別関係演算処理機能は、状態別関係演算処理を予め状態ごとに対応付けておき、イベントの発生によって状態の遷移を実行することによって、制御対象の状態ごとに処理内容を切り替える。図５に示す例では、３つの状態別関係演算処理ａ１、ａ２、ａ３を予め状態ごとに対応付けておき、イベントエレメントｅｅｌｍ１〜ｅｅｌｍ４の発生によって状態の遷移を実行することによって、制御対象の状態ごとに処理内容を切り替える。これによって、移動体等の制御アルゴリズムを記述し、実行することができる。
【００５２】
図５に示す状態別関係演算処理に含まれる「□」は関係演算オペレータ、「○」はイベント発行オペレータを示している。関係演算オペレータは、データの抽出（フィルタリング）、データの結合、データの計算や集計（四則演算、比較演算、論理演算、集合関数による演算）等を実行する。イベント発行オペレータは、所定の条件を満たした場合、時刻（タイムスタンプ）とともにイベントを発行する。
【００５３】
尚、図５に示す「その他関係演算処理」は、状態とは無関係に実行される。例えば、「その他関係演算処理」は、実行周期ごとに、状態別関係演算処理の実行後に実行される。
【００５４】
図２〜図５に示すストリームデータ処理は、ストリームデータ処理装置１に、本実施形態のストリームデータ処理プログラムをインストールすることによって実現される。本実施形態のストリームデータ処理プログラムの構成としては、２通り考えられる。第１の構成は、本実施形態のストリームデータ処理を実行させるための特有のデータストリーム管理システムである。第２の構成は、市販のデータストリーム管理システムに対して、本実施形態のストリームデータ処理を実行させるための特有のプラグインが追加された構成である。本実施形態のストリームデータ処理プログラムは、いずれの構成であっても良い。
【００５５】
＜第１実施形態＞
次に、図６〜図１４を参照しながら、第１実施形態について説明する。第１実施形態では、車両が制御対象である。ストリームデータ処理装置１は、車両のドライブモードに応じた制御を実現する。
【００５６】
図６は、第１実施形態の全体構成を示す図である。図６に示すように、車両のドライブモードは、「エコ」、「ノーマル」、「スポーツ」の３種類である。実行周期ｔｐは１００[ｍｓ]である。入力ストリームデータｓｉｎ１は、アクセル開度（到着周期１５［ｍｓ］）である。入力ストリームデータｓｉｎ２は、現速度（到着周期２０［ｍｓ］）である。入力イベントｅｉｎ１は、モード切替である。出力ストリームデータｓｏｕｔは、目標速度（出力周期１００［ｍｓ］）である。
【００５７】
エコモードの状態別関係演算処理では、ストリームサブセットｓｓｕｂ２の各タプルの値をストリームサブセットｓｓｕｂ１の最も近い時刻のタプルの値に加算し、目標速度’ｓｏｕｔ’とする。ノーマルモードの状態別関係演算処理では、ストリームサブセットｓｓｕｂ２の各タプルの値をストリームサブセットｓｓｕｂ１の最も近い時刻のタプルの２倍の値に加算し、目標速度’ｓｏｕｔ’とする。スポーツモードの状態別関係演算処理では、ストリームサブセットｓｓｕｂ２の各タプルの値をストリームサブセットｓｓｕｂ１の最も近い時刻のタプルの３倍の値に加算し、目標速度’ｓｏｕｔ’とする。
【００５８】
初期のモードはエコモードである。入力イベントｅｉｎ１が発生すると、エコモード⇒ノーマルモード、ノーマルモード⇒スポーツモード、スポーツモード⇒エコモード、と遷移する。
【００５９】
図７は、第１実施形態の第１状態を示す図である。第１状態は、動作開始から実行周期ｔｐ＝１００［ｍｓ］が経過した状態である。モードの現状態はエコモードである。
【００６０】
ストリームデータ処理装置１のＣＰＵ１１は、ジャンピングタイムベースウィンドウに入力ストリームデータ及び入力イベントを格納する。ここで、入力ストリームデータｓｉｎ１には、データの抜け、及び到着順序の逆転が発生している。具体的には、時刻３０のとき「３」というタプルと、時刻１５のとき「２」というタプルの順序が逆転している。また、到着周期が１５［ｍｓ］であるところ、時刻７５のタプルが抜けている。
【００６１】
図８は、第１実施形態の第２状態を示す図である。第２状態は、ストリームセパレータのストリーム分割機能が実行された状態である。モードの現状態はエコモードである。
【００６２】
ストリームデータ処理装置１のＣＰＵ１１は、次の実行周期に移行する直前に、ストリームセパレータを起動する。そして、ＣＰＵ１１は、ストリームセパレータのストリーム分割機能によって、入力ストリームデータｓｉｎ１及び入力ストリームデータｓｉｎ２について、入力イベントｅｉｎ１の発生を区切りにしてストリーム分割リストｓｌｓｔ１及びストリーム分割リストｓｌｓｔ２としてリスト化し、入力イベントｅｉｎ１をイベント分割リストｅｌｓｔ１としてリスト化する。
【００６３】
ここで、ＣＰＵ１１は、入力ストリームデータｓｉｎ１について、データの抜けの補完、及び到着順序の逆転の修正を行っている。具体的には、時刻３０のとき「３」というタプルと、時刻１５のとき「２」というタプルの順序を交換している。また、時刻７５のタプルを線形補完し、時刻７５のとき「６」というタプルを追加している。
【００６４】
図９は、第１実施形態の第３状態を示す図である。第３状態は、第１ストリームサブセットについて状態別関係演算処理が実行された状態である。モードの現状態はエコモードである。
【００６５】
ストリームデータ処理装置１のＣＰＵ１１は、ストリームセパレータのストリームサブセット入力機能によって、ストリーム分割リストにおける先頭のストリームサブセットを、状態別関係演算処理機能に引き渡し、ストリーム分割リストから削除する。具体的には、｛時刻０のとき「２」、時刻１５のとき「２」、時刻３０のとき「３」｝という３つのタプルを含むストリーム分割リストｓｌｓｔ１の第１ストリームサブセットｓｓｕｂ１、及び｛時刻０のとき「２１」、時刻２０のとき「２２」｝という２つのタプルを含むストリーム分割リストｓｌｓｔ２の第１ストリームサブセットｓｓｕｂ２を、状態別関係演算処理機能に引き渡し、ストリーム分割リストから削除する。
【００６６】
次に、ストリームデータ処理装置１のＣＰＵ１１は、現状態のモードであるエコモードの状態別関係演算処理として、ストリームサブセットｓｓｕｂ２の各タプルの値をストリームサブセットｓｓｕｂ１の最も近い時刻のタプルの値に加算し、目標速度’ｓｏｕｔ’とする。具体的には、ストリームサブセットｓｓｕｂ２に含まれる時刻０のとき「２１」というタプルの値を、ストリームサブセットｓｓｕｂ１に含まれる時刻０のとき「２」というタプルの値に加算し、目標速度’ｓｏｕｔ’に含まれる時刻０のとき「２３」というタプルとする。また、ストリームサブセットｓｓｕｂ２に含まれる時刻２０のとき「２２」というタプルの値を、ストリームサブセットｓｓｕｂ１に含まれる時刻１５のとき「２」というタプルの値に加算し、目標速度’ｓｏｕｔ’に含まれる時刻１５のとき「２４」というタプルとする。また、ストリームサブセットｓｓｕｂ２に含まれる時刻２０のとき「２２」というタプルを、ストリームサブセットｓｓｕｂ１に含まれる時刻３０のとき「３」というタプルに加算し、目標速度’ｓｏｕｔ’に含まれる時刻３０のとき「２５」というタプルとする。
【００６７】
図１０は、第１実施形態の第４状態を示す図である。第４状態は、第１イベントエレメントについて状態別関係演算処理が実行された状態である。モードの現状態はノーマルモードである。
【００６８】
ストリームデータ処理装置１のＣＰＵ１１は、ストリームセパレータのストリームサブセット入力機能によって、イベント分割リストにおける先頭のイベントエレメントを、状態別関係演算処理機能に引き渡し、イベント分割リストから削除する。具体的には、｛時刻３５のとき「１」｝という１つのタプルを含むイベント分割リストｅｌｓｔ１の第１イベントエレメントｅｅｌｍを、状態別関係演算処理機能に引き渡し、イベント分割リストから削除する。
【００６９】
次に、ストリームデータ処理装置１のＣＰＵ１１は、イベントの発生によって状態の遷移を実行する。具体的には、第１イベントエレメントｅｅｌｍの発生に応じて、直前の状態のモードであるエコモードから、現状態のモードとしてノーマルモードに遷移させる。尚、目標速度’ｓｏｕｔ’のストリームキューは、状態間で共有する。
【００７０】
図１１は、第１実施形態の第５状態を示す図である。第５状態は、第２ストリームサブセットについて状態別関係演算処理が実行された状態である。モードの現状態はノーマルモードである。
【００７１】
ストリームデータ処理装置１のＣＰＵ１１は、ストリームセパレータのストリームサブセット入力機能によって、ストリーム分割リストにおける先頭のストリームサブセットを、状態別関係演算処理機能に引き渡し、ストリーム分割リストから削除する。具体的には、｛時刻４５のとき「４」、時刻６０のとき「５」｝という２つのタプルを含むストリーム分割リストｓｌｓｔ１の第２ストリームサブセットｓｓｕｂ１、及び｛時刻４０のとき「２４」、時刻６０のとき「２７」｝という２つのタプルを含むストリーム分割リストｓｌｓｔ２の第２ストリームサブセットｓｓｕｂ２を、状態別関係演算処理機能に引き渡し、ストリーム分割リストから削除する。
【００７２】
次に、ストリームデータ処理装置１のＣＰＵ１１は、現状態のモードであるノーマルモードの状態別関係演算処理として、ストリームサブセットｓｓｕｂ２の各タプル値をストリームサブセットｓｓｕｂ１の最も近い時刻のタプルの２倍の値に加算し、目標速度’ｓｏｕｔ’とする。具体的には、ストリームサブセットｓｓｕｂ２に含まれる時刻４０のとき「２４」というタプルの値を、ストリームサブセットｓｓｕｂ１に含まれる時刻４５のとき「４」というタプルの２倍の値「８」に加算し、目標速度’ｓｏｕｔ’に含まれる時刻４５のとき「３２」というタプルとする。また、ストリームサブセットｓｓｕｂ２に含まれる時刻６０のとき「２７」というタプルの値を、ストリームサブセットｓｓｕｂ１に含まれる時刻６０のとき「５」というタプルの２倍の値「１０」に加算し、目標速度’ｓｏｕｔ’に含まれる時刻６０のとき「３７」というタプルとする。
【００７３】
図１２は、第１実施形態の第６状態を示す図である。第６状態は、第２イベントエレメントについて状態別関係演算処理が実行された状態である。モードの現状態はスポーツモードである。
【００７４】
ストリームデータ処理装置１のＣＰＵ１１は、ストリームセパレータのストリームサブセット入力機能によって、イベント分割リストにおける先頭のイベントエレメントを、状態別関係演算処理機能に引き渡し、イベント分割リストから削除する。具体的には、｛時刻７０のとき「１」｝という１つのタプルを含むイベント分割リストｅｌｓｔ１の第２イベントエレメントｅｅｌｍを、状態別関係演算処理機能に引き渡し、イベント分割リストから削除する。
【００７５】
次に、ストリームデータ処理装置１のＣＰＵ１１は、イベントの発生によって状態の遷移を実行する。具体的には、第２イベントエレメントｅｅｌｍの発生に応じて、直前の状態のモードであるノーマルモードから、現状態のモードとしてスポーツモードに遷移させる。
【００７６】
図１３は、第１実施形態の第７状態を示す図である。第７状態は、第３ストリームサブセットについて状態別関係演算処理が実行された状態である。モードの現状態はノーマルモードである。
【００７７】
ストリームデータ処理装置１のＣＰＵ１１は、ストリームセパレータのストリームサブセット入力機能によって、ストリーム分割リストにおける先頭のストリームサブセットを、状態別関係演算処理機能に引き渡し、ストリーム分割リストから削除する。具体的には、｛時刻７５のとき「６」、時刻９０のとき「７」｝という２つのタプルを含むストリーム分割リストｓｌｓｔ１の第３ストリームサブセットｓｓｕｂ１、及び｛時刻８０のとき「３０」｝という１つのタプルを含むストリーム分割リストｓｌｓｔ２の第３ストリームサブセットｓｓｕｂ２を、状態別関係演算処理機能に引き渡し、ストリーム分割リストから削除する。
【００７８】
次に、ストリームデータ処理装置１のＣＰＵ１１は、現状態のモードであるスポーツモードの状態別関係演算処理として、ストリームサブセットｓｓｕｂ２の各タプル値をストリームサブセットｓｓｕｂ１の最も近い時刻のタプルの３倍の値に加算し、目標速度’ｓｏｕｔ’とする。具体的には、ストリームサブセットｓｓｕｂ２に含まれる時刻８０のとき「３０」というタプルの値を、ストリームサブセットｓｓｕｂ１に含まれる時刻７５のとき「６」というタプルの３倍の値「１８」に加算し、目標速度’ｓｏｕｔ’に含まれる時刻４５のとき「４８」というタプルとする。また、ストリームサブセットｓｓｕｂ２に含まれる時刻８０のとき「３０」というタプルの値を、ストリームサブセットｓｓｕｂ１に含まれる時刻９０のとき「７」というタプルの３倍の値「２１」に加算し、目標速度’ｓｏｕｔ’に含まれる時刻９０のとき「５１」というタプルとする。
【００７９】
図１４は、第１実施形態の第８状態を示す図である。第８状態は、その他関係演算処理が実行された状態である。その他関係演算処理は、モードの現状態とは無関係の処理である。
【００８０】
ストリームデータ処理装置１のＣＰＵ１１は、ジャンピングタイムベースウィンドウｗｓ１、ｗｓ２、ｗｅ１をクリアする。
【００８１】
次に、ＣＰＵ１１は、その他関係演算処理として、集約演算ａｇｒを実行する。ここで、集約演算ａｇｒは、ジャンピングタイムベースウィンドウｗｓに入力される時刻が新しい順から３つのタプルの値の単純移動平均を算出するオペレータとする。すなわち、集約演算ａｇｒの演算結果は、時刻６０のとき「３７」、時刻７５のとき「４８」、時刻９０のとき「５１」という３つのタプルの値を加算して３で割った値「４５」（但し、小数点第１位を四捨五入した値）となる。尚、単純移動平均を用いる理由は、急激な速度変化を回避するためである。
【００８２】
そして、ＣＰＵ１１は、｛時刻１００のとき「４５」｝というタプルを含む目標速度ｓｏｕｔを生成し、ジャンピングタイムベースウィンドウｗｓをクリアする。以降、ＣＰＵ１１は、実行周期ごとに第１状態から第８状態を繰り返す。
【００８３】
第１実施形態によれば、ストリームデータ処理装置１は、信頼性が確保されていない通信路であっても、車両の３つのドライブモードに応じた制御をリアルタイムに実現することができる。
【００８４】
＜第２実施形態＞
次に、図１５を参照しながら、第２実施形態について説明する。第２実施形態では、車両が制御対象である。ストリームデータ処理装置１は、自車両と他車両の衝突危険度を算出する。特に、ストリームデータ処理装置１は、処理負荷や車両数に応じて状態を切り替え、最適なパフォーマンスで衝突危険度を算出する。
【００８５】
図１５は、第２実施形態の全体構成を示す図である。図１５に示すように、状態は、「低負荷時」、「中負荷時」、「高負荷時」の３種類である。入力ストリームデータｓｉｎ１は、自車両データである。入力ストリームデータｓｉｎ２は、地図データである。入力ストリームデータｓｉｎ３は、他車両データである。入力イベントｅｉｎ１は、モード切替である。出力ストリームデータｓｏｕｔは、衝突危険度である。
【００８６】
「低負荷時」の状態別関係演算処理では、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ１（自車両データ）に基づいて自車両の軌道を予測し、ストリームサブセットｓｓｕｂ３（他車両データ）に基づいて他車両の軌道を予測する。そして、自車両の軌道及び他車両の軌道に基づいて厳密にＴＴＣ（Time To Collision：衝突までの時間）を算出し、衝突危険度ｓｏｕｔとして出力する。
【００８７】
「中負荷時」の状態別関係演算処理では、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ１（自車両データ）及びストリームサブセットｓｓｕｂ２（地図データ）に基づいて空間演算を行い、自車両の位置を地図データにマッピングする。また、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ３（他車両データ）及びストリームサブセットｓｓｕｂ２（地図データ）に基づいて空間演算を行い、他車両の位置を地図データにマッピングする。次に、ＣＰＵ１１は、地図データ上の自車両の位置及び他車両の位置に基づいて、衝突の危険性がある対象車の絞り込みを行い、厳密にＴＴＣ（Time To Collision：衝突までの時間）を算出し、衝突危険度ｓｏｕｔとして出力する。例えば、「同じ道路を走行中」という条件で衝突の危険性がある対象車の絞り込みを行う。
【００８８】
「高負荷時」の状態別関係演算処理では、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ１（自車両データ）及びストリームサブセットｓｓｕｂ２（地図データ）に基づいて空間演算を行い、自車両の位置を地図データにマッピングする。また、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ３（他車両データ）から、自車両周辺の車両に絞り込むフィルタリングを行い、絞り込まれた他車両に対してのみ空間演算を行い、他車両の位置を地図データにマッピングする。次に、ＣＰＵ１１は、地図データ上の自車両の位置及び他車両の位置に基づいて、衝突の危険性がある対象車の絞り込みを行い、簡易にＴＴＣ（Time To Collision：衝突までの時間）を算出し、衝突危険度ｓｏｕｔとして出力する。例えば、「同じ道路を走行中」という条件で衝突の危険性がある対象車の絞り込みを行う。
【００８９】
初期の状態は「低負荷時」である。処理負荷や車両数に応じてモード切替の入力イベントｅｉｎ１が発生し、入力イベントｅｉｎ１の値に応じて、「低負荷時」、「中負荷時」、「高負荷時」の状態にそれぞれ遷移する。
【００９０】
第２実施形態によれば、ストリームデータ処理装置１は、信頼性が確保されていない通信路であっても、処理負荷や車両数に応じて状態を切り替え、最適なパフォーマンスで衝突危険度を算出し、衝突回避の制御をリアルタイムに実現することができる。
【００９１】
＜第３実施形態＞
次に、図１６を参照しながら、第３実施形態について説明する。第３実施形態では、車両が制御対象である。ストリームデータ処理装置１は、自車両が交差点を右折する時と直進する時に分けて、自車両と他車両の衝突危険度を算出する。特に、ストリームデータ処理装置１は、自車両の走行状況を認識し、最適な状態に切り替えて衝突危険度を算出する。
【００９２】
図１６は、第３実施形態の全体構成を示す図である。図１６に示すように、状態は、「状況認識」、「右折時衝突検知」、「直進時衝突検知」の３種類である。入力ストリームデータｓｉｎ１は、自車両データである。自車両データには、「自車両の左右ウィンカーの有無」が含まれている。入力ストリームデータｓｉｎ２は、地図データである。入力ストリームデータｓｉｎ３は、他車両データである。出力ストリームデータｓｏｕｔは、衝突危険度である。
【００９３】
「状況認識」の状態別関係演算処理では、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ１（自車両データ）及びストリームサブセットｓｓｕｂ２（地図データ）に基づいて空間演算を行い、自車両の位置を地図データにマッピングする。次に、ＣＰＵ１１は、自車両の位置及び「自車両の左右ウィンカーの有無」に基づいて交差点右折検知と交差点直進検知を行う。ＣＰＵ１１は、交差点の右折を検知した場合には「右折時衝突検知」の状態に遷移させるためのイベントを発行し、交差点の直進を検知した場合には「直進時衝突検知」の状態に遷移させるためのイベントを発行する。
【００９４】
「右折時衝突検知」の状態別関係演算処理では、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ１（自車両データ）及びストリームサブセットｓｓｕｂ２（地図データ）に基づいて空間演算を行い、自車両の位置を地図データにマッピングする。また、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ３（他車両データ）及びストリームサブセットｓｓｕｂ２（地図データ）に基づいて空間演算を行い、他車両の位置を地図データにマッピングする。次に、ＣＰＵ１１は、地図データ上の自車両の位置及び他車両の位置に基づいて、衝突の危険性がある対向車両の絞り込みを行い、厳密にＴＴＣ（Time To Collision：衝突までの時間）を算出し、衝突危険度ｓｏｕｔとして出力する。そして、ＣＰＵ１１は、「状況認識」の状態に遷移させるためのイベントを発行する。
【００９５】
「直進時衝突検知」の状態別関係演算処理では、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ１（自車両データ）及びストリームサブセットｓｓｕｂ２（地図データ）に基づいて空間演算を行い、自車両の位置を地図データにマッピングする。また、ＣＰＵ１１は、ストリームサブセットｓｓｕｂ３（他車両データ）及びストリームサブセットｓｓｕｂ２（地図データ）に基づいて空間演算を行い、他車両の位置を地図データにマッピングする。次に、ＣＰＵ１１は、地図データ上の自車両の位置及び他車両の位置に基づいて、衝突の危険性がある交差車両の絞り込みを行い、厳密にＴＴＣ（Time To Collision：衝突までの時間）を算出し、衝突危険度ｓｏｕｔとして出力する。そして、「状況認識」の状態に遷移させるためのイベントを発行する。そして、ＣＰＵ１１は、「状況認識」の状態に遷移させるためのイベントを発行する。
【００９６】
初期の状態は「状況認識」である。「状況認識」の状態では、ＣＰＵ１１は、自車両の走行状況を認識し、「右折時衝突検知」の状態に遷移させるためのイベントを発行し、交差点の直進を検知した場合には「直進時衝突検知」の状態に遷移させるためのイベントを発行する。「右折時衝突検知」及び「直進時衝突検知」の状態では、処理が終了すると、「状況認識」の状態に遷移させるためのイベントを発行する。
【００９７】
第３実施形態によれば、ストリームデータ処理装置１は、信頼性が確保されていない通信路であっても、車両の走行状況を認識し、最適な状態に切り替えて衝突危険度を算出し、衝突回避の制御をリアルタイムに実現することができる。
【００９８】
以上、ストリームデータ処理装置１によれば、信頼性が確保されていない通信路であっても、移動体等をリアルタイムに制御可能となる。
【００９９】
特に、開始から実行周期ごとにデータを分割するウィンドウである「ジャンピングタイムベースウィンドウ」によって、可変個の入力ストリームデータが非同期に到着しても、周期的にストリームデータ処理を実行することができる。
【０１００】
また、ストリーム分割機能及びストリームサブセット入力機能を備える「ストリームセパレータ」によって、入力ストリームデータと入力イベントが時系列的に前後せず、矛盾なく入力される為、状態に応じたストリームデータ処理を定義し、イベントの発生によって状態を切り替えることができ、ひいては、ストリームデータ処理を状態に応じて切り替えることが可能となる。
【０１０１】
更に、データの抜け、到着順序の逆転などが発生した場合、ストリームセパレータは、データの補完や順序修正を行うので、信頼性が確保されていない通信路であっても、ストリームデータ処理を実現することができる。
【０１０２】
尚、上記の第１実施形態〜第３実施形態では、ジャンピングタイムベースウィンドウとストリームセパレータの両方を具備する場合を説明したが、片方のみを具備する場合や双方とも具備しない場合であっても、本発明に係るストリームデータ処理装置を実施することが可能である。
【０１０３】
以上、添付図面を参照しながら、本発明に係るストリームデータ処理装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１０４】
１………ストリームデータ処理装置
１１………ＣＰＵ
１２………メモリ
１３………記憶部
１４………通信制御部
１５………入力部
１６………表示部
１７………周辺機器Ｉ／Ｆ部
１８………バス
２１………ウィンドウ演算処理
２２………関係演算処理
２３………ストリーム化演算処理
【図１】
2015184959.tif 000003
【図２】
2015184959.tif 000004
【図３】
2015184959.tif 000005
【図４】
2015184959.tif 000006
【図５】
2015184959.tif 000007
【図６】
2015184959.tif 000008
【図７】
2015184959.tif 000009
【図８】
2015184959.tif 000010
【図９】
2015184959.tif 000011
【図１０】
2015184959.tif 000012
【図１１】
2015184959.tif 000013
【図１２】
2015184959.tif 000014
【図１３】
2015184959.tif 000015
【図１４】
2015184959.tif 000016
【図１５】
2015184959.tif 000017
【図１６】
2015184959.tif 000018