(57)【要約】【課題】  車両領域のマルチレベル・パラレル・バッファリング及び文脈ベース・ストリーミング・データ前処理システム、車両領域においてパラレル・バッファリング及び文脈ベース・ストリーミング・データ前処理を実行する方法、及び車両領域のマルチレベル・パラレル・バッファリング及び文脈ベース・ストリーミング・データ前処理システムを制御するためのコンピュータ・プログラムを提供する。【解決手段】  車両領域のマルチレベル・パラレル・バッファリング及び文脈ベース・ストリーミング・データ前処理システムが、第１データ処理レベルと、第２データ処理レベルとを含む。第１データ処理レベルは、複数の車両から出力された複数の生データ・ストリームから提供されるデータをバッファリングするように構成された第１レベル・バッファを含む。第２データ処理レベルは、電子タスク・キュー・辞書（ＴＱＤ）モジュールと、複数の第２レベル・データ処理バッファとを含む。ＴＱＤモジュールは、第１レベル・バッファからシリアル・データ・ストリーム出力を受け取ることに応答して、複数のタスクを作成するように構成される。ＴＱＤモジュールは、各タスクを、対応する第２レベル・バッファに割り当て、タスクに基づいて、シリアル・データ・ストリームを、特定の第２レベル・バッファに配信される個々のデータ値に分離し、マルチレベル・パラレル及び文脈ベース・バッファリング動作を生成するようにさらに構成される。【選択図】      図６
2019506648.tif 000002
【特許請求の範囲】
【請求項１】
車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムであって、
複数の車両から出力された複数の生データ・ストリームから提供されるデータをバッファリングするように構成された第１レベル・バッファを含む第１データ処理レベルと、
前記第１レベル・バッファからのシリアル・データ・ストリーム出力を受け取ることに応答して複数のタスクを作成するように構成された電子タスク・キュー・辞書（ＴＱＤ）モジュールと、複数の第２レベル・データ処理バッファとを含む第２データ処理レベルと、
を含み、
前記ＴＱＤモジュールは、各タスクを対応する第２レベル・バッファに割り当て、前記タスクに基づいて、前記シリアル・データ・ストリームを、特定の第２レベル・バッファに配信される個々のデータ値に分離する、システム。
【請求項２】
前記ＴＱＤモジュールは、前記データ値を、前記対応する第２レベル・バッファにパラレルに配信する、請求項１に記載のシステム。
【請求項３】
前記データ値は、車両識別情報を含み、前記ＴＱＤモジュールは、バッファ識別値を各第２レベル・バッファに割り当て、前記データ値は、前記車両識別情報に合致するバッファ識別値を有する対応する第２レベル・バッファ内にロードされる、請求項２に記載のシステム。
【請求項４】
前記ＴＱＤモジュールは、各車両を、前記第２データ処理レベルにおいて作成された単一の作業タスクに制限する、請求項２に記載のシステム。
【請求項５】
前記ＴＱＤモジュールは、それぞれのデータ値により示されるタイムスタンプに基づいて、各第２レベル・バッファをロードする、請求項２に記載のシステム。
【請求項６】
車両領域におけるデータ・ストリームを処理する方法であって、
マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第１データ処理レベルにインストールされた第１レベル・バッファを用いて、複数の車両から出力された複数の生データ・ストリームから提供されるデータをバッファリングすることと、
シリアル・データ・ストリーム出力を、前記第１レベル・バッファから、前記マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第２データ処理レベルにインストールされた電子タスク・キュー・辞書（ＴＱＤ）モジュールに配信することと、
前記シリアル・データ・ストリームを受け取ることに応答して、前記ＴＱＤモジュールを介して複数のタスクを作成することと、
を含み、
前記ＴＱＤモジュールは、各タスクを対応する第２レベル・バッファに割り当て、前記タスクに基づいて、前記シリアル・データ・ストリームを、特定の第２レベル・バッファに配信される個々のデータ値に分離する、方法。
【請求項７】
前記ＴＱＤモジュールは、前記データ値を前記対応する第２レベル・バッファにパラレルに配信する、請求項６に記載の方法。
【請求項８】
車両識別情報を前記データ値内に埋め込むことをさらに含み、前記ＴＱＤモジュールは、バッファ識別値を各第２レベル・バッファに割り当て、前記データ値を、前記車両識別情報に合致するバッファ識別値を有する対応する第２レベル・バッファ内にロードする、請求項７に記載の方法。
【請求項９】
前記ＴＱＤモジュールは、各車両を、前記第２データ処理レベルにおいて作成された単一の作業タスクに制限する、請求項７に記載の方法。
【請求項１０】
前記ＴＱＤモジュールは、それぞれのデータ値により示されるタイムスタンプに基づいて、各第２レベル・バッファをロードする、請求項７に記載の方法。
【請求項１１】
車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムであって、
第１データ処理レベルにインストールされ、複数の車両から出力された複数のデータ・ストリームから提供されるデータ値を同時にキューイングするように構成された第１レベル・バッファと、
前記第１データ処理レベルとは異なる第２データ処理レベルにインストールされ、前記第１レベル・バッファからシリアル・データ・ストリーム出力を受け取り、前記データ値のコンテキストに基づいて、前記データ値を前記シリアル・データ・ストリームから分離するように構成された電子タスク・キュー・辞書（ＴＱＤ）モジュールと、
前記第２データ処理レベルにインストールされ、コンテキストバッファ識別値がこれに割り当てられ、前記コンテキストバッファ識別値に合致するコンテキストを有するデータ値をキューイングするように構成された複数の第２レベル・バッファと、
を含むシステム。
【請求項１２】
前記ＴＱＤモジュールは、パラレル・データ配信スキームに従って、データ値をそれぞれの第２レベル・バッファ内にロードし、それぞれの分離したデータ・ストリームを生成する、請求項１１に記載のシステム。
【請求項１３】
前記データ値の前記コンテキストに基づいて、それぞれの車両による要求されるタスクを判断し、前記要求されるタスクを判断することに応答して、前記第２データ処理レベル内に新しいタスクを作成すること及び既存のタスクを更新することの少なくとも一方を実行するように、前記ＴＱＤモジュールに命令するように構成された少なくとも１つの電子データ・ポータ・モジュールをさらに含む、請求項１２に記載のシステム。
【請求項１４】
前記要求されるタスクを完了するのに必要な少なくとも１つのデータ・プロセスを実行するように構成された少なくとも１つの電子メッセージ・ハンドラと、
分離したデータ・ストリームを受け取り、前記分離したデータ・ストリームに対応する前記要求されるタスクを完了するのに必要な少なくとも１つのプロセスを判断し、前記判断した少なくとも１つのプロセスに基づいて、前記分離したデータ・ストリームを前記少なくとも１つのメッセージ・ハンドラに配信するように構成された電子作業タスク辞書（ＷＴＤ）モジュールと、
をさらに含む、請求項１３に記載のシステム。
【請求項１５】
前記ＴＱＤモジュールは、各車両ごとに、単一の第２レベル・バッファを単一の作業タスクに割り当て、前記作業タスクが完了した後、それぞれの車両に対する新しいタスクを含むように、前記第２レベル・バッファを更新する、請求項１４に記載のシステム。
【請求項１６】
車両領域においてパラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理を実行する方法であって、
複数の車両から出力された複数のデータ・ストリームから提供されるデータ値を第１データ処理レベル内に同時にキューイングすることと、
第１レベル・バッファから、第２データ処理レベル内のシリアル・データ・ストリームを受け取り、前記データ値のコンテキストに基づいて、前記データ値を前記シリアル・データ・ストリームから分離することと、
コンテキストバッファ識別値を第２レベル・バッファの各々に割り当てることと、
前記データ値の前記コンテキストと前記コンテキストバッファ識別値との間の比較に基づいて、データをそれぞれの第２レベル・データ・バッファ内にキューイングすることと、
を含む、方法。
【請求項１７】
パラレル・データ配信スキームに従って、データ値をそれぞれの第２レベル・バッファ内にロードし、それぞれの分離したデータ・ストリームを生成することをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記データ値の前記コンテキストに基づいて、それぞれの車両からの要求されるタスクを判断し、前記要求されるタスクを判断することに応答して、前記第２データ処理レベル内に新しいタスクを作成すること及び既存のタスクを更新することの少なくとも一方を実行するように、電子タスク・キュー・辞書（ＴＱＤ）モジュールに命令することをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記分離したデータ・ストリームに対応する前記要求されるタスクを完了するのに必要な少なくとも１つのプロセスを判断することと、
前記要求されるタスクを完了するのに必要な少なくとも１つのデータ・プロセスを実行するように、前記判断した少なくとも１つのプロセスに基づいて前記分離したデータ・ストリームを少なくとも１つのメッセージ・ハンドラ・モジュールに配信することと、
をさらに含む、請求項１８に記載の方法。
【請求項２０】
各車両ごとに、単一の第２レベル・バッファを単一の作業タスクに割り当てることと、
前記作業タスクが完了した後、それぞれの車両に対する新しいタスクを含むように、前記第２レベル・バッファを更新することと、
をさらに含む、請求項１９に記載の方法。
【請求項２１】
車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムを制御するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、電子コンピュータ・プロセッサにより実行されるプログラム命令を含み、前記システムは、
前記マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第１データ処理レベルにインストールされた第１レベル・バッファを用いて、複数の車両から出力された複数の生データ・ストリームから提供されるデータをバッファリングすることと、
シリアル・データ・ストリーム出力を、前記第１レベル・バッファから、前記マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第１データ処理レベルにインストールされた電子タスク・キュー・辞書（ＴＱＤ）モジュールに配信することと、
前記シリアル・データ・ストリームを受け取ることに応答して、前記ＴＱＤモジュールを介して複数のタスクを作成することと、
各タスクを対応する第２レベル・バッファに割り当て、前記タスクに基づいて、前記シリアル・データ・ストリームを、特定の第２レベル・バッファに配信される個々のデータ値に分離するように、前記ＴＱＤモジュールに命令することと、
を含む動作を実行する、コンピュータ・プログラム。
【請求項２２】
前記動作は、前記データ値を、前記対応する第２レベル・バッファにパラレルに配信することをさらに含む、請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
前記動作は、車両識別情報を前記データ値内に埋め込むことと、バッファ識別値を各第２レベル・バッファに割り当て、前記データ値を、前記車両識別情報に合致するバッファ識別値を有する対応する第２レベル・バッファ内にロードすることとをさらに含む、請求項２２に記載のコンピュータ・プログラム。
【請求項２４】
前記動作は、各車両を、前記第２データ処理レベルにおいて作成された単一の作業タスクに制限することをさらに含む、請求項２２に記載のコンピュータ・プログラム。
【請求項２５】
前記動作は、それぞれのデータ値により示されるタイムスタンプに基づいて、各第２レベル・バッファをロードすることをさらに含む、請求項２２に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両の位置情報サービス（location-based service、ＬＢＳ）に関し、より具体的には、車両領域（vehicle domain）のデータ・ストリーミング処理システムに関する。
【背景技術】
【０００２】
車両テレマティックス（telematics）、センサ及びモビリティ技術の開発が進むことにより、モバイル・コンピューティング・システム及び位置情報サービス（ＬＢＳ）が普及するようになった。車両テレマティックス・アプリケーションを向上させるためには、一般に、リアルタイムのＬＢＳを用いて走行車両のデータをストリーミングする必要がある。これらの向上した車両テレマティックス・アプリケーションの例として、例えば、オンライン・イベント警報、渋滞の監視、リアルタイムの運転経路案内、ライド・シェアリング（ride-sharing）・アプリケーションのためのドライバ接近警報、及び自動ナビゲーションが挙げられる。
【０００３】
ＬＢＳアプリケーションを助けるためにデータ・ストリーミングを処理しようとする従来の試みとして、例えば、Ｈａｄｏｏｐ、Ｓｔｏｒｍ、Ｓｐａｒｋ等といった既存のインターネット・ベースのフレームワークの実装が挙げられる。しかしながら、これらのインターネット・ベースのフレームワークは、様々な固有の課題を示す。例えば、一般に、据置型又は実質的に据置型の端末又はノードからデータを受け取る従来のインターネット・ベースのデータ処理方法とは異なり、車両領域では、様々な条件下で動作する常に移動している大量の端末デバイスが提供される。さらに、従来のＧＰＳ／３Ｇ／４Ｇ信号は不安定であり、多くの要因に影響されやすい。例えば、気象条件、高層建築物、高架道路、トンネル、橋等は、信号エラー、中断及び遅延をもたらし得る。
【０００４】
インターネット・ベースのフレームワークはまた、一般に、独立した要求を処理するように設計される。しかしながら、要求が独立していないという意味で、車両領域は異なる。つまり、単一の事例において、単一の車両が、例えばコンテキストマップ及び道路網情報、イベント、トラフィック／気象条件、動的ナビゲーション命令、及び迂回命令などの多数の要求を求めることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、要求をパラレルに処理し、陳腐なデータをエンドユーザに配信するのを回避するために、迅速かつ大容量の共有メモリ・アクセスが必要である。
【課題を解決するための手段】
【０００６】
本発明の実施形態によると、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムが、第１データ処理レベルと、第２データ処理レベルとを含む。第１データ処理レベルは、複数の車両から出力された複数の生データ・ストリームから提供されるデータをバッファリングするように構成された第１レベル・バッファを含む。第２データ処理レベルは、電子タスク・キュー・辞書（task-queue-dictionary、ＴＱＤ）モジュールと、複数の第２レベル・データ処理バッファとを含む。ＴＱＤモジュールは、第１レベル・バッファからシリアル・データ・ストリームを受け取ることに応答して、複数のタスクを作成するように構成される。ＴＱＤモジュールは、各タスクを対応する第２レベル・バッファに割り当て、タスクに基づいて、シリアル・データ・ストリームを、特定の第２レベル・バッファに配信される個々のデータ値に分離し、マルチレベル・パラレル及びコンテキストベース・バッファリング動作を生成するようにさらに構成される。
【０００７】
別の限定されない実施形態によると、車両領域においてデータ・ストリームを処理する方法が、マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第１データ処理レベルにインストールされた第１レベル・バッファを用いて、複数の車両から出力された複数の生データ・ストリームから提供されるデータをバッファリングすることを含む。方法は、シリアル・データ・ストリーム出力を、第１レベル・バッファから、マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第２データ処理レベルにインストールされた電子タスク・キュー・辞書（ＴＱＤ）モジュールに配信することをさらに含む。方法は、シリアル・データ・ストリームを受け取ることに応答して、ＴＱＤモジュールを介して、複数のタスクを作成することをさらに含む。ＴＱＤモジュールは、各タスクを対応する第２レベル・バッファに割り当て、タスクに基づいて、シリアル・データ・ストリームを、特定の第２レベル・バッファに配信される個々のデータ値に分離するようにさらに構成される。
【０００８】
さらに別の限定されない実施形態において、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムは、第１データ処理レベルにインストールされた第１レベル・バッファを含む。第１レベル・バッファは、複数の車両から出力された複数のデータ・ストリームから提供されるデータ値を同時にキューイングするように構成される。電子タスク・キュー・辞書（ＴＱＤ）モジュールは、第１データ処理レベルとは異なる第２データ処理レベルにインストールされ、ＴＱＤモジュールは、第１レベル・バッファからシリアル・データ・ストリーム出力を受け取り、データ値のコンテキストに基づいて、シリアル・データ・ストリームからデータ値を分離するように構成される。第２レベル・バッファは、第２データ処理レベルにインストールされる。第２レベル・バッファは、これに割り当てられたコンテキストバッファ識別値を有し、コンテキストバッファ識別値に合致するコンテキストを有するデータ値をキューイングするように構成される。
【０００９】
更に別の限定されない実施形態において、車両領域においてパラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理を実行する方法が、複数の車両から出力された複数のデータ・ストリームから提供されるデータ値を第１データ処理レベル内に同時にキューイングすることを含む。方法は、第１レベル・バッファから、第２データ処理レベル内のシリアル・データ・ストリームを受け取り、データ値のコンテキストに基づいて、シリアル・データ・ストリームからデータ値を分離することをさらに含む。方法は、コンテキストバッファ識別値を第２レベル・バッファの各々に割り当て、データ値のコンテキストとコンテキストバッファ識別値との比較に基づいて、データをそれぞれの第２レベル・データ・バッファ内にキューイングすることをさらに含む。
【００１０】
別の限定されない実施形態において、コンピュータ・プログラム製品は、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムを制御する。コンピュータ・プログラム製品は、プログラム命令がそこに具体化されたコンピュータ可読ストレージ媒体を含み、かつ、電子コンピュータ・プロセッサにより実行可能であるプログラム命令を有するコンピュータ可読ストレージ媒体を含み、このシステムは、マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第１データ処理レベルにインストールされた第１レベル・バッファを用いて、複数の車両から出力された複数の生データ・ストリームから提供されるデータをバッファリングすることを含む動作を実行する。動作は、第１レベル・バッファから、マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第１データ処理レベルにインストールされた電子タスク・キュー・辞書（ＴＱＤ）モジュールにシリアル・データ・ストリーム出力を配信することをさらに含む。動作は、シリアル・データ・ストリームを受け取ることに応答して、ＴＱＤモジュールを介して複数のタスクを作成することをさらに含む。動作は、各タスクを対応する第２レベル・バッファに割り当て、タスクに基づいて、シリアル・データ・ストリームを、特定の第２レベル・バッファに配信される個々のデータ値に分離するように、ＴＱＤモジュールに命令することをさらに含む。
【００１１】
本発明の技術を通じて、付加的な特徴が実現される。他の実施形態は、本明細書で詳細に説明され、請求される本発明の一部と見なされる。これらの特徴を有する本発明をよりよく理解するために、説明及び図面を参照されたい。
【図面の簡単な説明】
【００１２】
【図１】限定されない実施形態による、車両範囲のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれるコア論理をサポートできるクラウド・コンピューティング環境を示す。
【図２】分散型クラウド環境内に含まれるクラウド・コンピューティング・ノードの概略図である。
【図３】限定されない実施形態による、車両範囲のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれるコア論理をサポートできるクラウド・コンピューティング環境により提供される機能抽象化層のセットである。
【図４】限定されない実施形態による、車両範囲のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムの動作を示す図である。
【図５】限定されない実施形態による、車両範囲のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムを示す図である。
【図６】限定されない実施形態による、車両範囲のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム１００を制御する方法を示すフロー図である。
【発明を実施するための形態】
【００１３】
種々の実施形態は、特にピーク・データ期間中、複数の車両によるコンテキストベース・データ前処理データ・ストリーム出力を容易にすることができる、マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムを提供する。マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムは、データのコンテキスト（例えば、個々の車両についての車両ＩＤ情報、タスクＩＤ情報、タイムスタンプ情報等）に基づいて、高速かつ大容量の共有メモリ・アクセスを提供する。
【００１４】
少なくとも１つの実施形態において、システムは、車両間のパラレル・データ処理を実行するが、各車両からのデータ出力のシリアル処理を実行する。従って、少なくとも１つの実施形態は、例えば、Ｈａｄｏｏｐ、Ｓｔｏｒｍ及びＳｐａｒｋのような従来のプロセス・レベル・コンピューティング・フレームワークと比べて、マルチコア・コンピュータ（例えば、８コア・コンピュータ）上のメモリ使用状況を約８倍乃至約１６倍節約するシステムを提供する。パラレル・データ前処理バッファリングはまた、不均衡状態のＣＰＵコア使用率によりもたらされる低スループットの問題を解決し、均衡状態及び不均衡状態のＣＰＵコア使用率において高スループットを達成する。
【００１５】
少なくとも１つの実施形態によると、マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムは、ピーク・データ速度期間中、リアルタイムの位置情報サービスにおける待ち時間を、約２０％乃至約３０％だけ減少させ得る。ピーク・データ速度期間中、マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムは、最初に、第１レベル・バッファリング・キュー内の高ボリューム・データを組織化し、次に、第１レベル・バッファリング・データを第２レベル・バッファリング・キュー内に迅速にディスパッチし、コンテキストベースのデータ前処理を実行することができる。このように、位置情報サービスは、無用なデータを適時に効率的に廃棄し、それにより、コンピュータ・システム、サーバ、及び／又はクラウド・ネットワークの性能及び出力が改善される。
【００１６】
ここで図１を参照すると、限定されない実施形態により、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム１００内に含まれるコア論理をサポートできるクラウド・コンピューティング環境１０が示される。図示のように、クラウド・コンピューティング環境１０は、例えば携帯情報端末（ＰＤＡ）又は携帯電話５４Ａ、デスクトップ型コンピュータ５４Ｂ、ラップトップ型コンピュータ５４Ｃ、及び／又は自動車コンピュータ・システム５４Ｎといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスと通信することができる１つ又は複数のクラウド・コンピューティング・ノード５０を含む。少なくとも１つの実施形態において、自動車コンピュータ・システム５４Ｎは、クラウド・コンピューティング環境とデータを交換するように構成されたモバイル・データ端末を含むことができる。ノード５０は、互いに通信することができる。これらのノードは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、又はハイブリッド・クラウド、又はこれらの組み合わせのような、１つ又は複数のネットワークにおいて物理的又は仮想的にグループ化することができる（図示せず）。これにより、クラウド・コンピューティング環境１０が、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ、ｐｌａｔｆｏｒｍ  ａｓ  ａ  ｓｅｒｖｉｃｅ、及び／又はｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅを提供することが可能になる。図２に示されるコンピューティング・デバイス５４Ａ〜Ｎのタイプは単に例示であることを意図し、コンピューティング・ノード５０及びクラウド・コンピューティング環境１０は、任意のタイプのネットワーク及び／又はネットワーク・アドレス指定可能な接続によって（例えば、ウェブ・ブラウザを用いて）、任意のタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
【００１７】
ここで図２を参照すると、限定されない実施形態により、分散型クラウド環境又はクラウド・サービス・ネットワーク内に含まれるクラウド・コンピューティング・ノード５０の概略図が示される。クラウド・コンピューティング・ノード５０は、好適なクラウド・コンピューティング・ノードの一例にすぎず、本明細書で説明される本発明の実施形態の使用範囲又は機能に関するいかなる限定も示唆することを意図しない。いずれにしても、クラウド・コンピューティング・ノード５０は、上述した機能のいずれかを実装及び／又は実行することができる。
【００１８】
クラウド・コンピューティング・ノード５０には、多数の他の汎用又は専用コンピューティング・システム環境又は構成で動作可能な、コンピュータ・システム／サーバ１２が存在する。コンピュータ・システム／サーバ１２と共に用いるのに好適であり得る周知のコンピューティング・システム、環境、及び／又は構成の例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能民生電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム若しくはデバイスのいずれかを含む分散型クラウド・コンピューティング環境等が含まれる。
【００１９】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム／サーバ１２は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
【００２０】
図２に示されるように、クラウド・コンピューティング・ノード５０のコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ１２のコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット１６、システム・メモリ２８、及びシステム・メモリ２８を含む種々のシステム・コンポーネントをプロセッサ１６に結合するバス１８を含むことができる。
【００２１】
バス１８は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表す。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【００２２】
コンピュータ・システム／サーバ１２は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１２によりアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方、取り外し可能媒体及び取り外し不能媒体の両方を含む。
【００２３】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０及び／又はキャッシュ・メモリ３２など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体（図示されておらず、一般的には「ハードドライブ」と呼ばれる）との間の読み出し及び書き込みのために、ストレージ・システム３４を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピーディスク」）との間の読み出し及び書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、１つ又は複数のデータ媒体インターフェースによってバス１８に接続することができる。以下にさらに示され説明されるように、メモリ２８は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００２４】
限定ではなく例として、メモリ２８内に、プログラム・モジュール４２のセット（少なくとも１つ）を有するプログラム／ユーティリティ４０、並びにオペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを格納することができる。オペレーティング・システム、１つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール４２は、一般に、本明細書で説明される本発明の実施形態の機能及び／又は方法を実行する。
【００２５】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４等のような１つ又は複数の外部デバイス１４；ユーザがコンピュータ・システム／サーバ１２と対話することを可能にする１つ又は複数のデバイス；及び／又はコンピュータ・システム／サーバ１２が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデム等）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース２２を経由して行うことができる。さらにまた、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）、及び／又はパブリック・ネットワーク（例えば、インターネット）のような１つ又は複数のネットワークと通信することもできる。示されるように、ネットワーク・アダプタ２０は、バス１８を介して、コンピュータ・システム／サーバ１２の他のコンポーネントと通信する。図示されないが、コンピュータ・システム／サーバ１２と共に、他のハードウェア及び／又はソフトウェア・コンポーネントを使用できることを理解されたい。例としては、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープドライブ、及びデータ・アーカイブ・ストレージ・システムが含まれる。
【００２６】
ここで図３を参照すると、クラウド・コンピューティング環境１０によって提供される機能抽象化層のセットが示される。図３に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、クラウド・コンピューティング環境１０により提供される種々の層及び対応する機能を以下により詳細に説明する。
【００２７】
ハードウェア及びソフトウェア層６０は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、ＩＢＭ（登録商標）ｚＳｅｒｉｅｓ（登録商標）システムを一例とするメインフレームと；ＩＢＭ  ｐＳｅｒｉｅｓ（登録商標）システムを一例とするＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ（縮小命令セット・コンピュータ））アーキテクチャ・ベースのサーバと；ＩＢＭ  ｘＳｅｒｉｅｓ（登録商標）システムと；ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（登録商標）システムと；ストレージ・デバイスと；ネットワーク及びネットワーキング・コンポーネントと、が含まれる。ソフトウェア・コンポーネントの例として、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ（登録商標）アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェアと、ＩＢＭ  ＤＢ２（登録商標）データベース・ソフトウェアを一例とするデータベース・ソフトウェアと、が含まれる。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅ及びＤＢ２は、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。）
【００２８】
仮想化層６２は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる。
【００２９】
一例においては、管理層６４が、以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡と、これらのリソースの消費に対する課金又は請求とを提供する。１つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント（Service Level Agreement、ＳＬＡ）の計画及び履行は、ＳＬＡに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【００３０】
ワークロード層６６は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例には、マッピング及びナビゲーション、ソフトウェア開発及びライフサイクル管理、仮想教室教育配信、データ分析処理、及びトランザクション処理が含まれる。
【００３１】
車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム１００のコア論理をサポートできるクラウド環境が詳細に上述されるが、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム１００のコア論理は、デバイス５４Ａ〜５４Ｎの１つ又は複数上にローカルに存在し得ることを理解されたい。例えば、各々の自動車両コンピュータ・システム５４Ｎには、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム１００のコア論理がローカルにインストールされていることがある。このように、デバイス５４Ａ〜５４Ｎは、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム１００の種々の特徴及び動作をローカルに実行することができる。
【００３２】
ここで図４を参照すると、限定されない実施形態により、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム１００の動作が示される。１又は複数の車両１０１ａ〜１０１ｄは、システム１００と信号通信し、それぞれのリアルタイム・データ・ストリーム１０２ａ〜１０２ｄを出力する。限定されない実施形態によると、各データ・ストリーム１０２ａ〜１０２ｄは、シリアルに出力され、データのコンテキスト（context）を示す、例えばタプル１０３ａ〜１０３ｄなどのデータ値のシーケンスを含む。タプル１０３ａ〜１０３ｄは、例えば、＜車両１０１ａのＩＤ、タスク・ヘッダＩＤ、車両１０１ａのトリップＩＤ、車両１０１ａのタイムスタンプ、車両１０１ａの位置、車両１０１ａの速度、車両１０１ａの進行方向，．．．＞、＜車両１０１ｂのＩＤ、タスク・ヘッダＩＤ、車両１０１ｂのトリップＩＤ、車両１０１ｂのタイムスタンプ、車両１０１ｂの位置、車両１０１ｂの速度、車両１０１ｂの進行方向，．．．＞等を含むことができる。それぞれの車両１０１ａ〜１０１ｄのデータ・ストリーム１０２ａ〜１０２ｄの各タプル１０３ａ〜１０３ｄは、例えばタイムスタンプなどのシーケンス識別子を有する。例えば、タイムスタンプ識別子は、各タプル、例えば１、２、３．．．．８等に対応する数で示される。
【００３３】
システム１００は、第１レベル・バッファ１０６をサポートする第１データ処理レベル１０４と、１又は複数の第２レベル・バッファ１１０をサポートする第２データ処理レベル１０８とを含む。少なくとも１つの実施形態において、第１データ処理レベル１０４及び第２データ処理レベル１０８は、共通のサーバ又はクラウド・コンピューティング環境上にインストールされる。第１レベル・バッファ１０６は、車両１０１ａ〜１０１ｄと信号通信する入力と、第２レベル・バッファ１１０a〜１１０ｄと信号通信する出力とを含む。少なくとも１つの実施形態において、第１レベル・バッファ１０６は、データ・ストリーム１０２ａ〜１０２ｄにより提供されるデータ値を同時にバッファリングするシリアル・バッファとして構成される。従って、第１レベル・バッファ１０６は、先入れ先出し（first-in-first-out）スキームに従って、データを処理することができる。
【００３４】
第２データ処理レベル１０８は、第２レベル・バッファ１１０ａ〜１１０ｄの動作を制御するように構成された電子タスク、キュー及び辞書（ＴＱＤ）モジュール（図４には図示されない）を含む。従って、第２データ処理レベル１０８は、車両１０１ａ〜１０１ｄが、タプル１０３ａ〜１０３ｄのタスク・ヘッドＩＤに基づいて、新しいタスク又は更新されたタスクを要求したかどうかを判断する。新しいタスクが要求されるとき、新しいタスクが、個々の第２レベル・バッファ１１０ａ〜１１０ｄに割り当てられる。例えば、タプル１０３ａ〜１０３ｄから抽出された車両ＩＤに対応するバッファＩＤを、第２レベル・バッファ１１０ａ〜１１０ｄに割り当てることができる。第２レベル・バッファ１１０a〜１１０ｄのキューの長さは、サーバ又はネットワークのスループットに基づいて動的に調整することができる。更新されたタスクが要求されるとき、以前に割り当てられた第２レベル・バッファを更新する。少なくとも１つの実施形態において、第２データ処理レベル１０８は、それぞれの車両１０１ａ〜１０１ｄについて単一のタスクのバッファリングしか可能でない。従って、現在動作しているタスクが完了するまで、単一の第２レベル・バッファ１１０ａ〜１１０ｄしか、各車両１０１ａ〜１０１ｄに割り当てられない。
【００３５】
タスクをそれぞれの第２レベル・バッファ１１０a〜１１０ｄに割り当てた後、第２データ処理レベル１０８において受け取った各タプル１０３ａ〜１０３ｄを、正しい第２レベル・バッファ１１０ａ〜１１０ｄに配信する。例えば、第１の車両１０１ａについての車両ＩＤを含むタプル１０３ａは、第１の車両１０１ａ車両ＩＤに合致するバッファＩＤを有する第１のバッファ１１０ａにキューイングされる。このように、各第２レベル・バッファ１１０a〜１１０ｄは、それぞれの車両１０１ａ〜１０１ｄによりリアルタイムにストリーミングされるタプル１０３ａ〜１０３ｄをキューイングする。言い換えれば、データ・ストリーム１０２ａ〜１０２ｄは、各タプル１０３ａ〜１０３ｄのコンテキスト（例えば、車両ＩＤ）に従って分離され、それぞれの第２レベル・バッファ１１０ａ〜１１０ｄ内にキューイングされ、第２レベル・パラレル及びコンテキストベース・バッファリング・プロセスを確立する。従って、図４に示される限定されない実施形態は、第１の車両１０１ａによりストリーミングされた第１の第２レベル・バッファ１１０ａのキュー・タプル１０３ａと、第２の車両１０１ｂによりストリーミングされた別の第２レベル・バッファ１１０ｂのキュー・タプル１０３ｂと、第３の車両１０１ｃによりストリーミングされた第３の第２レベル・バッファ１１０ｃのキュー・タプル１０３ｃと、第４の車両１０１ｄによりストリーミングされた第４の第２レベル・バッファ１１０ｄのキュー・タプル１０３ｄとを提供する。４つの第２レベル・バッファ１１０ａ〜１１０ｄが示されるが、本発明は、それに限定されるものではない。第２データ処理レベル１０８はまた、例えば先入れ先出しスキームなどの種々の優先順位ポリシーに従って、又は、タプル１０３ａ〜１０３ｄ内に含まれるタイムスタンプＩＤに基づいて、タプル１０３ａ〜１０３ｄをロードすることもできる。
【００３６】
各第２レベル・バッファ１１０a〜１１０ｄの出力は、それぞれの電子メッセージ・ハンドラ・モジュール１１２ａ〜１１２ｄと信号通信する。メッセージ・ハンドラ・モジュール１１２ａ〜１１２ｄは、キューイングされたタプル１０３ａ〜１０３ｄを受け取り、埋め込まれたタスクＩＤ及び埋め込まれた車両ＩＤに基づいて、特定の車両１０１ａ〜１０１ｄのタスクを処理する。少なくとも１つの実施形態において、メッセージ・ハンドラ・モジュール１１２ａ〜１１２ｄは、これに限定されるものではないが、タスクを処理する優先順位を変えることを含む種々のプロセスを実行する。例えば、それぞれの車両１０１ａ〜１０１ｄのデータが処理を開始したとき、タスクの処理の優先順位を変えることができる。ひとたびメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｄがそれぞれの車両に対応するタスクを完了すると、メッセージ・ハンドラ・モジュール１１２ａ〜１１２ｄは、タスク完了信号を第２レベル・バッファ１１０ａ〜１１０ｄに出力し、それぞれの車両に対応する新しいタスクを、対応する第２レベル・バッファ１１０a〜１１０ｄ内にロードする。このように、第２データ処理レベル１０８は、各車両１０１ａ〜１０１ｄについて１つだけの待機タスクを含むことができる。従って、第２レベル・バッファ１１０a〜１１０ｄを用いて、１又は複数の車両１０１ａ〜１０１ｄからのシリアルなリアルタイム・データ・ストリーム出力をパラレルに前処理することができる。さらに、データ・ストリームのパラレル・バッファリングは、データ・ストリームの車両領域特有のコンテキストに従って実行される。
【００３７】
ここで図５を参照すると、限定されない実施形態により、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム１００が示される。システム１００は、レベル１バッファ１０６、１又は複数の電子データ・ポータ・モジュール１０７ａ〜１０７ｎ、１又は複数の第２レベル・バッファ１１０ａ〜１１０ｎ、第２データ処理レベルに含まれ第２レベル・バッファ１１０ａ〜１１０ｎの動作を制御する電子ＴＱＤモジュール１１１、及び１又は複数の電子メッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎを含む。システム１００は、受信機１１４を介して１又は複数の車両１０１ａ〜１０１ｎと信号通信する。受信機１１４及びレベル１バッファ１０６は、第１データ処理レベルにインストールされるが、ＴＱＤモジュール１１１及び第２レベル・バッファ１１０ａ〜１１０ｎは、第１データ処理レベルとは異なる第２データ処理レベルにインストールされる。少なくとも１つの実施形態において、レベル１バッファ１０６は、ネットワークとデータを交換する全ての車両１０１ａ〜１０１ｎからのデータ（例えば、タプル）をキューイングするが、第２レベル・バッファ１１０a〜１１０ｎは、特定の車両１１０ａ〜１１０ｎからのデータ（例えば、タプル）出力をキューイングする。
【００３８】
システム１００は、車両１０１ａ〜１０１ｎからリアルタイム・データ・ストリームを受け取ることによって、動作（すなわち、動作１）を開始する。衛星通信を含むがこれに限定されない、車両１０１ａ〜１０１ｎと受信機１１４との間でデータを交換するためのあらゆる手段を用いることができる。受信機１１４は、同時に又は連続的にキューイングするシリアルな方法で、データをレベル１バッファに配信する（すなわち、動作２）。前述のように、各車両により生成されるデータ・ストリームは、例えば、それぞれのデータ・ストリームのコンテンツを示す、タプルなどの個々のデータ値のシーケンスを含む。タプルにより示されるコンテンツは、例えば、車両１０１ａ〜１０１ｎのＩＤ、タスク・ヘッダＩＤ、車両１０１ａ〜１０１ｎのトリップＩＤ、車両１０１ａ〜１０１ｎのタイムスタンプ、車両１０１ａ〜１０１ｎの位置、車両１０１ａ〜１０１ｎの速度、及び車両１０１ａ〜１０１ｎの進行方向を含むことができる。少なくとも１つの実施形態において、第１レベル・バッファは、先入れ先出しスキームに従って、受信機１１４により配信される生データをキューイングするように、シリアル・バッファとして構成される。
【００３９】
次に、バッファリングされた生データは、第１レベル・バッファ１０６からデータ・ポータ・モジュール１０７ａ〜１０７ｎに出力される（すなわち、動作３）。少なくとも１つの実施形態において、データ・ポータ・モジュール１０７は、マルチコア処理ユニット（ＣＰＵ）上にインストールされ、互いにパラレルに動作する。各データ・ポータ・モジュール１０７ａ〜１０７ｎは、第１レベル・バッファ１０６からの生データ出力に埋め込まれたヘッダ・メッセージ（例えば、タスク・ヘッダＩＤ）を取得するように構成される。ヘッダ・メッセージに基づいて、データ・ポータ・モジュール１０７ａ〜１０７ｎは、第２データ処理レベル内に新しいタスクを作成すべきか、又は第２データ処理レベル内の既存のタスクを更新すべきかを判断する。少なくとも１つの実施形態において、データ・ポータ・モジュール１０７ａ〜１０７ｎは、第２データ処理レベルが、現在、特定の車両と関連したタスクを収容することを判断し、既存のタスクが処理されるまで、車両により要求される別の新しいタスクを作成しないことを決定することができる。このように、第２データ処理レベルは、既存のタスクが完了するまで、各車両１０１ａ〜１０１ｎに対して複数の新しいタスクを作成することを回避する。
【００４０】
ＴＱＤモジュール１１１は、データ・ポータ・モジュール１０７ａ〜１０７ｎから、第２データ処理レベル内に新しいタスクを作成するかどうか、又は第２データ処理レベルにおいて現在処理されている既存のタスクを更新するかどうかを命令する（すなわち、動作４）コマンド信号を受け取る。例えば、新しいタスクが要求されると、新しいタスクは個々の第２レベル・バッファ１１０ａ／１１０ｎに割り当てられる（すなわち、動作５ａ）。データ・ストリームのタプルから抽出した車両ＩＤに対応するバッファＩＤを各第２レベル・バッファ１１０ａ〜１１０ｎに割り当てることができる。
【００４１】
ＴＱＤモジュール１１１はまた、第２レベル・バッファ１１０a〜１１０ｎの動作を制御する種々の管理動作を実行することもできる。例えば、ＴＱＤモジュール１１１は、例えば、先入れ先出しスキームのような種々の優先順位ポリシーに従って、又はタイムスタンプＩＤに基づいて、タプルをそれぞれの第２レベル・バッファ１１０ａ〜１１０ｎ内にロードすることができる。ＴＱＤモジュール１１１はまた、サーバ又はネットワークのスループットに基づいて、第２レベル・バッファ１１０ａ〜１１０ｎのキューの長さを動的に調整することもできる。
【００４２】
更新されたタスクが要求されるとき、以前に割り当てられた第２レベル・バッファ１１０ｂを更新する（すなわち、動作５ｂ）。少なくとも１つの実施形態において、ＴＱＤモジュール１１１は、上述のように、それぞれの車両１０１ａ〜１０１ｎについて単一のタスクのみのバッファリングを可能にする。従って、第２レベル・バッファ１１０ａ〜１１０ｎにおいて現在処理されている以前に作成されたタスクが完了するまで、単一の第２レベル・バッファ１１０ａ〜１１０ｎのみが、各車両１０１ａ〜１０１ｎに割り当てられる。
【００４３】
第２レベル・バッファ１１０ａ〜１１０ｎは、キューイングされたタプルを出力し、それぞれの車両１０１ａ〜１０１ｎから要求されるタスクを示す分離したデータ・ストリームを定める。各々の分離したデータ・ストリームは、電子作業タスク辞書（ＷＴＤ）モジュール１１６に配信される（すなわち、動作６）。ＷＴＤモジュール１１６は、各々の分離したデータ・ストリームの構造についての情報又は定義を含み、それにより、検査のためにメッセージ・コンテンツからのフィールドのアンパックが可能になる。少なくとも１つの実施形態において、ＷＴＤモジュール１１６は、メッセージ・ヘッダ又は分離したデータ・ストリーム内のフィールドに問い合わせて、主題分類又はキーワードを取り出す。次に、主題分類又はキーワードを用いて、分離したデータ・ストリームを対応するメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎに経路指定することができる（すなわち、動作７）。
【００４４】
メッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎは、ＷＴＤモジュール１１６の決定に応答して動作可能である。例えば、ＷＴＤモジュール１１６は、別個のデータ・ストリームを分析し、それぞれの車両１０１ａ〜１０１ｎにより要求されるタスクを実行できる処理動作を実行するように構成された特定のメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎを決定する。
【００４５】
例えば、イメージ・コンテンツを含む又はそのコンテンツの何らかのイメージ処理を要求する全てのタスクが、イメージを処理するように構成されたメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎに配信される。同様に、音声処理を要求する音声データを含む全てのタスクが、音声データを処理するように構成されたメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎに送られる。他の識別可能なデータ・タイプを含むタスクが、タスクを処理することができるそれぞれのメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎに送られる。この動作は、メッセージが多数のコンテンツ・タイプを含む場合、各々が異なるメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎにより実行される処理ステップのシーケンスを通じて、別個のデータ・ストリームを配信することを必要とすることがある。望ましくないプログラム・コードから加入者を保護するために、発行を許可する前に、認証（例えば、デジタル署名検証又はウィルス・チェック）を実行するメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎに、実行可能コードを含むタスクを送ることができる。
【００４６】
少なくとも１つの実施形態において、選択されたメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎにより実行される処理は、個々の加入者アプリケーション、分離したデータ・ストリームの要求されるタスク及びコンテンツの特定の特性、並びに加入者システムの能力により決定される。例えば、別個のデータ・ストリームのタプル内に埋め込まれたタスクＩＤは、特定のマルチメディア・コンテンツの存在を示し、分離したデータ・ストリームをどのように処理すべきかの判断に関連するコンテンツの特性を明らかにし得る。状況によっては、タスクＩＤはまた、識別されたコンテンツを適切に処理するのに要求される１又は複数のコード・モジュールも示し得る。次に、選択されたメッセージ・ハンドラ・モジュール１１２ａ〜１１２ｎは、関連したタスク定義に従って、分離したデータ・ストリームに対する動作を実行する。少なくとも１つの実施形態によると、次に、結果、すなわち完了したタスクを、要求されたタスクをサブミットした対応する車両１０１ａ〜１０１ｎに戻すことができる。
【００４７】
ここで図６を参照すると、限定されない実施形態により、車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム１００を制御する方法が示される。方法は、動作６００で開始し、動作６０２において、１又は複数の車両からの生データ・ストリーム出力を受け取る。少なくとも１つの実施形態において、車両は、データ・ストリームをシリアルに出力する。動作６０４において、第１データ処理レベルにおいて、生データ・ストリームがバッファリングされる。少なくとも１つの実施形態によると、生データ・ストリームはタプルを含み、タプルは、先入れ先出しスキームに従って、第１レベル・バッファ内にシリアルにバッファリングされる。動作６０６において、第１レベル・バッファからのタプル出力から得られるデータ・コンテンツに基づいて、タスクを判断する。少なくとも１つの実施形態において、各タプルは、タスクを示すトピックＩＤを含む。動作６０８において、分析を行って、判断したタスクが現在システムの第２データ処理レベル内に存在するかどうかを判断する。タスクが存在する場合、動作６１０において、第２データ処理レベルにおいて、既存のタスクを更新する。しかしながら、判断したタスクが第２データ処理レベル内に存在しないとき、動作６１２において、新しいタスクを作成する。少なくとも１つの実施形態において、第２データ処理レベルは、既存のタスクの進行中の作業が完了するまで、システムと通信する各車両について単一の既存のタスクのみを処理する。
【００４８】
動作６１４において、第２レベル・バッファを、新しく作成されたタスクに割り当てる。少なくとも１つの実施形態において、タスクを要求している車両に対応する車両ＩＤに合致するバッファＩＤが、第２レベル・バッファに割り当てられる。動作６１６において、第２データ処理レベルにインストールされたＴＱＤモジュールが、第１データ処理レベルから配信された生データ・ストリームに対応するタスクのパラレル・データ・バッファリングを実行する。このように、データ・ストリームを、車両によりシリアルに出力することができるが、前処理データ・バッファリングは、コンテキストベースの分析に従ってパラレルに実行される。
【００４９】
動作６１８を参照すると、分析を行って、１又は複数の第２レベル・バッファのバッファリング・プロセスが完了したかどうかを判断する。タスクのバッファリングが依然として進行中である場合、方法は、動作６１６に戻って、対応するタスクのデータ（例えば、タプル）のバッファリングを続行する。しかしながら、バッファリングが完了すると、別個のデータ・ストリームが生成され、動作６２０において、ＷＴＤモジュールに配信される。動作６２２において、ＷＴＤモジュールは、分離したデータ・ストリームを処理するように構成された１又は複数のタスク・ハンドラ・モジュールを判断する。次に、動作６２４において、分離したデータ・ストリームは、適切なタスク・ハンドラ・モジュールに配信され、処理される。動作６２６において、完了したタスクの結果が報告され、動作６２８において方法は終了する。
【００５０】
上述した種々の限定されない実施形態によると、マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムは、最初に、第１レベル・バッファリング・キュー内の高ボリューム・データを組織化し、次に、第１レベル・バッファリング・データを第２レベル・バッファリング・キューに迅速にディスパッチし、コンテキストベースのデータ前処理を実行するように構成される。このように、ピーク・データ速度期間中のリアルタイムの位置情報サービスにおける待ち時間を、約２０％乃至約３０％だけ減少させ得る。従って、従来のデータ・ストリーム処理システム及び／又は既存のインターネット・ベースのフレームワークに比べて、コンピュータ・システム、サーバ、及び／又はクラウド・ネットワークの性能及び出力が大きく改善される。
【００５１】
本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【００５２】
本明細書で使用される場合、用語「モジュール」は、特定用途向け集積回路（ＡＳＩＣ）、電子回路、電子ハードウェア・コンピュータ・プロセッサ（共有、専用、又はグループ）及び１つ又は複数のソフトウェア又はファームウェア・プログラムを実行するメモリ、組み合わせ論理回路、マイクロプロセッサ、及び／又は記載した機能を提供する他の適切なコンポーネントを指す。ソフトウェアの形で実装されるとき、モジュールは、処理回路により可読であり、方法を実行するための処理回路により実行される命令を格納する非一時的マシン可読ストレージ媒体としてメモリ内に具体化することができる。
【００５３】
本発明の種々の実施形態の説明が例示の目的のために提示されたが、これらは、網羅的であること、又は開示された実施形態に制限することを意図するものではない。当業者には、説明される実施形態の範囲の趣旨及び範囲から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の適用、又は市場に見られる技術に優る技術的改善を最もよく説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。
【００５４】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【００５５】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【００５６】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【００５７】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、又は、「Ｃ」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネットサービスプロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて、電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【００５８】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【００５９】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実施する命令を含む製品を製造するようにすることもできる。
【００６０】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【００６１】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【符号の説明】
【００６２】
１０：クラウド・コンピューティング環境
１２：コンピュータ・システム／サーバ
１６：プロセッサ又は処理ユニット
１８：バス
２０：ネットワーク・アダプタ
２８：システム・メモリ
４０：プログラム・ユーティリティ
５０：クラウド・コンピューティング・ノード
６０：ハードウェア及びソフトウェア層
６２：仮想化層
６４：管理層
６６：ワークロード層
１００：車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム
１０１ａ〜１０１ｎ：車両
１０２ａ〜１０２ｎ：データ・ストリーム
１０３ａ〜１０３ｎ：タプル
１０４：第１データ処理レベル
１０６：第１レベル・バッファ
１０７、１０７ａ〜１０７ｎ：データ・ポータ・モジュール
１０８：第２データ処理レベル
１１０、１１０ａ〜１１０ｎ：第２レベル・バッファ
１１１：タスク・キュー・辞書（ＴＱＤ）モジュール
１１２ａ〜１１２ｄ：メッセージ・ハンドラ・モジュール
１１４：受信機
１１６：作業タスク辞書（ＷＴＤ）モジュール
【図１】
2019506648.tif 000003
【図２】
2019506648.tif 000004
【図３】
2019506648.tif 000005
【図４】
2019506648.tif 000006
【図５】
2019506648.tif 000007
【図６】
2019506648.tif 000008
【手続補正書】
【提出日】平成30年7月19日(2018.7.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムであって、
複数の車両から出力された複数の生データ・ストリームから提供されるデータをバッファリングするように構成された第１レベル・バッファを含む第１データ処理レベルと、
前記第１レベル・バッファからのシリアル・データ・ストリーム出力を受け取ることに応答して複数のタスクを作成するように構成された電子タスク・キュー・辞書（ＴＱＤ）モジュールと、複数の第２レベル・データ処理バッファとを含む第２データ処理レベルと、
を含み、
前記ＴＱＤモジュールは、各タスクを対応する第２レベル・バッファに割り当て、前記タスクに基づいて、前記シリアル・データ・ストリームを、特定の第２レベル・バッファに配信される個々のデータ値に分離する、システム。
【請求項２】
前記ＴＱＤモジュールは、前記データ値を、前記対応する第２レベル・バッファにパラレルに配信する、請求項１に記載のシステム。
【請求項３】
前記データ値は、車両識別情報を含み、前記ＴＱＤモジュールは、バッファ識別値を各第２レベル・バッファに割り当て、前記データ値は、前記車両識別情報に合致するバッファ識別値を有する対応する第２レベル・バッファ内にロードされる、請求項２に記載のシステム。
【請求項４】
前記ＴＱＤモジュールは、各車両を、前記第２データ処理レベルにおいて作成された単一の作業タスクに制限する、請求項２に記載のシステム。
【請求項５】
前記ＴＱＤモジュールは、それぞれのデータ値により示されるタイムスタンプに基づいて、各第２レベル・バッファをロードする、請求項２に記載のシステム。
【請求項６】
車両領域におけるデータ・ストリームを処理する方法であって、
マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第１データ処理レベルにインストールされた第１レベル・バッファを用いて、複数の車両から出力された複数の生データ・ストリームから提供されるデータをバッファリングすることと、
シリアル・データ・ストリーム出力を、前記第１レベル・バッファから、前記マルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システム内に含まれる第２データ処理レベルにインストールされた電子タスク・キュー・辞書（ＴＱＤ）モジュールに配信することと、
前記シリアル・データ・ストリームを受け取ることに応答して、前記ＴＱＤモジュールを介して複数のタスクを作成することと、
を含み、
前記ＴＱＤモジュールは、各タスクを対応する第２レベル・バッファに割り当て、前記タスクに基づいて、前記シリアル・データ・ストリームを、特定の第２レベル・バッファに配信される個々のデータ値に分離する、方法。
【請求項７】
前記ＴＱＤモジュールは、前記データ値を前記対応する第２レベル・バッファにパラレルに配信する、請求項６に記載の方法。
【請求項８】
車両識別情報を前記データ値内に埋め込むことをさらに含み、前記ＴＱＤモジュールは、バッファ識別値を各第２レベル・バッファに割り当て、前記データ値を、前記車両識別情報に合致するバッファ識別値を有する対応する第２レベル・バッファ内にロードする、請求項７に記載の方法。
【請求項９】
前記ＴＱＤモジュールは、各車両を、前記第２データ処理レベルにおいて作成された単一の作業タスクに制限する、請求項７に記載の方法。
【請求項１０】
前記ＴＱＤモジュールは、それぞれのデータ値により示されるタイムスタンプに基づいて、各第２レベル・バッファをロードする、請求項７に記載の方法。
【請求項１１】
車両領域のマルチレベル・パラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理システムであって、
第１データ処理レベルにインストールされ、複数の車両から出力された複数のデータ・ストリームから提供されるデータ値を同時にキューイングするように構成された第１レベル・バッファと、
前記第１データ処理レベルとは異なる第２データ処理レベルにインストールされ、前記第１レベル・バッファからシリアル・データ・ストリーム出力を受け取り、前記データ値のコンテキストに基づいて、前記データ値を前記シリアル・データ・ストリームから分離するように構成された電子タスク・キュー・辞書（ＴＱＤ）モジュールと、
前記第２データ処理レベルにインストールされ、コンテキストバッファ識別値がこれに割り当てられ、前記コンテキストバッファ識別値に合致するコンテキストを有するデータ値をキューイングするように構成された複数の第２レベル・バッファと、
を含むシステム。
【請求項１２】
前記ＴＱＤモジュールは、パラレル・データ配信スキームに従って、データ値をそれぞれの第２レベル・バッファ内にロードし、それぞれの分離したデータ・ストリームを生成する、請求項１１に記載のシステム。
【請求項１３】
前記データ値の前記コンテキストに基づいて、それぞれの車両による要求されるタスクを判断し、前記要求されるタスクを判断することに応答して、前記第２データ処理レベル内に新しいタスクを作成すること及び既存のタスクを更新することの少なくとも一方を実行するように、前記ＴＱＤモジュールに命令するように構成された少なくとも１つの電子データ・ポータ・モジュールをさらに含む、請求項１２に記載のシステム。
【請求項１４】
前記要求されるタスクを完了するのに必要な少なくとも１つのデータ・プロセスを実行するように構成された少なくとも１つの電子メッセージ・ハンドラと、
分離したデータ・ストリームを受け取り、前記分離したデータ・ストリームに対応する前記要求されるタスクを完了するのに必要な少なくとも１つのプロセスを判断し、前記判断した少なくとも１つのプロセスに基づいて、前記分離したデータ・ストリームを前記少なくとも１つのメッセージ・ハンドラに配信するように構成された電子作業タスク辞書（ＷＴＤ）モジュールと、
をさらに含む、請求項１３に記載のシステム。
【請求項１５】
前記ＴＱＤモジュールは、各車両ごとに、単一の第２レベル・バッファを単一の作業タスクに割り当て、前記作業タスクが完了した後、それぞれの車両に対する新しいタスクを含むように、前記第２レベル・バッファを更新する、請求項１４に記載のシステム。
【請求項１６】
車両領域においてパラレル・バッファリング及びコンテキストベース・ストリーミング・データ前処理を実行する方法であって、
複数の車両から出力された複数のデータ・ストリームから提供されるデータ値を第１データ処理レベル内に同時にキューイングすることと、
第１レベル・バッファから、第２データ処理レベル内のシリアル・データ・ストリームを受け取り、前記データ値のコンテキストに基づいて、前記データ値を前記シリアル・データ・ストリームから分離することと、
コンテキストバッファ識別値を第２レベル・バッファの各々に割り当てることと、
前記データ値の前記コンテキストと前記コンテキストバッファ識別値との間の比較に基づいて、データをそれぞれの第２レベル・データ・バッファ内にキューイングすることと、
を含む、方法。
【請求項１７】
パラレル・データ配信スキームに従って、データ値をそれぞれの第２レベル・バッファ内にロードし、それぞれの分離したデータ・ストリームを生成することをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記データ値の前記コンテキストに基づいて、それぞれの車両からの要求されるタスクを判断し、前記要求されるタスクを判断することに応答して、前記第２データ処理レベル内に新しいタスクを作成すること及び既存のタスクを更新することの少なくとも一方を実行するように、電子タスク・キュー・辞書（ＴＱＤ）モジュールに命令することをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記分離したデータ・ストリームに対応する前記要求されるタスクを完了するのに必要な少なくとも１つのプロセスを判断することと、
前記要求されるタスクを完了するのに必要な少なくとも１つのデータ・プロセスを実行するように、前記判断した少なくとも１つのプロセスに基づいて前記分離したデータ・ストリームを少なくとも１つのメッセージ・ハンドラ・モジュールに配信することと、
をさらに含む、請求項１８に記載の方法。
【請求項２０】
各車両ごとに、単一の第２レベル・バッファを単一の作業タスクに割り当てることと、
前記作業タスクが完了した後、それぞれの車両に対する新しいタスクを含むように、前記第２レベル・バッファを更新することと、
をさらに含む、請求項１９に記載の方法。
【請求項２１】
請求項６〜１０に記載の何れか１項の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項２２】
請求項２１に記載の前記コンピュータ・プログラムを、コンピュータ可読ストレージ媒体に記録した、コンピュータ可読ストレージ媒体。
【国際調査報告】
2019506648.tif 000009
2019506648.tif 000010