(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-12
(54)【発明の名称】クラウドベースのリアルタイム車両データ共有
(51)【国際特許分類】
G06Q 50/10 20120101AFI20230405BHJP
H04W 4/40 20180101ALI20230405BHJP
H04W 12/06 20210101ALI20230405BHJP
H04W 4/38 20180101ALI20230405BHJP
【FI】
G06Q50/10
H04W4/40
H04W12/06
H04W4/38
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022559314
(86)(22)【出願日】2021-03-30
(85)【翻訳文提出日】2022-11-22
(86)【国際出願番号】 US2021024987
(87)【国際公開番号】W WO2021202601
(87)【国際公開日】2021-10-07
(32)【優先日】2021-03-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-15
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-04-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】522380549
【氏名又は名称】オートノミック,エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ペトリ,ロバート ジェイ.
(72)【発明者】
【氏名】ライムズ,グレゴリー ロリン
(72)【発明者】
【氏名】ブラック,ベンジャミン
(72)【発明者】
【氏名】カレン,ショーン ジェームス
(72)【発明者】
【氏名】スペルマン,マーク エー.
(72)【発明者】
【氏名】カスプロゾク,アンドレアス エム.
(72)【発明者】
【氏名】ブライソン,デイビッド ダブリュー.
(72)【発明者】
【氏名】ティマ,ジャガンナート
(72)【発明者】
【氏名】マートゥル,ガウラヴ
(72)【発明者】
【氏名】ハルマン,リチャード ジー.
(72)【発明者】
【氏名】ガルシア アルバラド,カルロス
(72)【発明者】
【氏名】ハム,ジェイソン ポール
【テーマコード(参考)】
5K067
5L049
【Fターム(参考)】
5K067BB27
5K067EE02
5K067EE16
5L049CC11
(57)【要約】
本出願は、複数の車両に通信可能に結合された車両データフィードサーバを介して車両データを通信することを対象とする。複数の認証情報および関連付けられたアクセスレベルは、車両データフィードサーバのデータベースに記憶される。車両データフィードサーバは、車両から複数のリアルタイム車両データフローを受信する。これらのリアルタイム車両データフローは、任意選択により、関連付けられたアクセスレベルに基づいて認証情報に関連付けられる。クライアントデバイスのユーザからユーザ認証情報および車両データ要求を受信すると、車両データフィードサーバは、ユーザが、ユーザ認証情報に関連付けられた、リアルタイム車両データフローのサブセットを含む車両データにアクセスする権限を有しているか否かを判断する。リアルタイム車両データフローのサブセットは、ユーザが車両データにアクセスする権限を有するとき、クライアントデバイスに転送される。
【特許請求の範囲】
【請求項1】
車両データを通信するための方法であって、
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサによって実行するための命令を記憶するメモリとを有する車両データフィードサーバであって、前記車両データフィードサーバは1つまたは複数の通信ネットワークを介して複数の車両に結合される、車両データフィードサーバにおいて、
複数の認証情報と、車両データに対する関連付けられたアクセスレベルとを受信することと、
前記複数の認証情報を、前記関連付けられたアクセスレベルと共にデータベースに記憶することと、
前記複数の車両から、前記1つまたは複数の通信ネットワークを介して複数のリアルタイム車両データフローを受信することであって、各リアルタイム車両データフローは、それぞれの車両に関連付けられ、少なくとも、前記それぞれの車両の車両テレメトリデータを含むことと、
クライアントデバイスのユーザから、ユーザ認証情報および車両データ要求を受信することと、
前記車両データ要求に応答して、
前記ユーザ認証情報に基づいて、前記ユーザが前記ユーザ認証情報に関連付けられた車両データにアクセスする権限を有するか否かを判断することであって、ここで、前記車両データは、前記複数のリアルタイム車両データフローのサブセットを含むことと、
前記ユーザが前記ユーザ認証情報に関連付けられた前記車両データにアクセスする権限を有するという判断に従って、前記複数のリアルタイム車両データフローの前記サブセットを前記クライアントデバイスに転送することと、
を含む、方法。
【請求項2】
前記車両データ要求を受信する前に、前記ユーザ認証情報に関連付けられた前記アクセスレベルに基づいて、前記複数のリアルタイム車両データフローの前記サブセットを前記ユーザ認証情報に関連付けることをさらに含む、請求項1に記載の方法。
【請求項3】
前記車両データフィードサーバは、前記1つまたは複数の通信ネットワークを介して1つまたは複数の車両オペレータデバイスに通信可能に結合され、前記方法は、
前記1つまたは複数の車両オペレータデバイスまたは前記車両から1つまたは複数の制御データフローを受信することであって、各制御データフローは1つまたは複数の制御コマンドを含み、各コマンドは、前記複数の車両のそれぞれのサブセットを制御するために、それぞれの車両オペレータデバイスによって発行され、前記ユーザ認証情報に関連付けられた前記アクセスレベルは、前記1つまたは複数の制御データフローから前記ユーザ認証情報に関連付けられた前記車両データの少なくとも一部を選択するために用いられることをさらに含む、請求項1または2に記載の方法。
【請求項4】
前記1つまたは複数の制御データフローを前記複数のリアルタイム車両データフローと統合することをさらに含み、前記統合することは、前記複数のリアルタイム車両データフローおよび前記1つまたは複数の制御データフローを複数の車両データシャードにグループ化することを含む、請求項3に記載の方法。
【請求項5】
前記ユーザ認証情報に関連付けられた前記車両データにおけるデータ項目を、第1の補足データ項目で補足することであって、前記第1の補足データ項目は、前記車両データにおける前記それぞれのデータ項目と併せて前記クライアントデバイスに転送されることをさらに含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記複数のリアルタイム車両データフローの各々を第2の補足データ項目で補足することと、
それぞれの車両データシャードにおいて、前記第2の補足データ項目および前記それぞれのリアルタイム車両データフローをグループ化することと、
をさらに含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記複数のリアルタイム車両データフローの前記サブセットの各々について、前記ユーザ認証情報に関連付けられた前記アクセスレベルに従って前記第2の補足データ項目が決定され、前記第2の補足データ項目は、前記それぞれのリアルタイム車両データフローが前記ユーザ認証情報に関連付けられた前記車両データの一部であることを示す、請求項6に記載の方法。
【請求項8】
前記複数のリアルタイム車両データフローを統合することをさらに含み、前記統合することは、前記複数のリアルタイム車両データフローを複数の車両データシャードにグループ化することを含み、前記ユーザ認証情報に関連付けられた前記車両データは前記複数の車両データシャードのサブセットを含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記複数のリアルタイム車両データフローが前記複数の車両データシャードにグループ化されるとき、前記複数のリアルタイム車両データフローの各データ項目は、共通フォーマットに従って、前記複数の車両データシャードのそれぞれのデータ項目に変換される、請求項8に記載の方法。
【請求項10】
前記複数の車両データシャードは所定の数の車両データシャードを含み、前記複数のリアルタイム車両データフローの各々は、前記車両データシャードのそれぞれ1つにおいて完全にグループ化される、請求項8に記載の方法。
【請求項11】
所定のデータストレージ規則に従って、前記車両データフィードサーバの前記データベースに前記複数の車両データシャードを記憶することをさらに含む、請求項8に記載の方法。
【請求項12】
各車両データシャードについて、前記リアルタイム車両データフローのそれぞれのサブセットにおけるデータ項目が、時間的順序に従って順次に前記それぞれの車両データシャードにグループ化される、請求項8に記載の方法。
【請求項13】
前記車両データ要求は現在の要求を含み、前記方法は、
前記現在の要求に応答して、時間的位置に対応する前記複数の車両データシャードにおける参照ポインタを識別することをさらに含み、
前記時間的位置の前に収集された前記リアルタイム車両データフローは、前記クライアントデバイスの前記ユーザから受信された以前の要求に応答して前記ユーザ認証情報に関連付けられた前記車両データを提供するように構成され、
前記時間的位置の後に収集された前記リアルタイム車両データフローは、前記現在の要求に応答して前記ユーザ認証情報に関連付けられた前記車両データを提供するように構成される、請求項12に記載の方法。
【請求項14】
前記車両データ要求は第1の要求を含み、前記ユーザ認証情報に関連付けられた前記車両データは、前記第1の要求に応答して第1の車両データシャードから抽出された第1の車両データを含み、前記方法は、
第2のクライアントデバイスの第2のユーザから、第2のユーザ認証情報および第2の要求を受信することと、
前記第2の要求に応答して、前記第1の要求とは独立して、
前記第2のユーザ認証情報に基づいて、前記第2のユーザが前記第2のユーザ認証情報に関連付けられた第2の車両データにアクセスする権限を有するか否かを判断することであって、ここで、前記第2の車両データは、前記複数のリアルタイム車両データフローの第2のサブセットを含むことと、
前記第2のユーザが前記第2のユーザ認証情報に関連付けられた前記第2の車両データにアクセスする権限を有するという判断に従って、前記複数のリアルタイム車両データフローの前記第2のサブセットを前記第2のクライアントデバイスに転送することと、
をさらに含み、
前記第2の車両データは、前記第1の車両データシャードから抽出されている前記第1の車両データとは独立して第2の車両データシャードから抽出される、請求項8に記載の方法。
【請求項15】
前記クライアントデバイスは、前記クライアントデバイスのユーザアカウントを介して車両データアプリケーションを実行するように構成され、
前記ユーザアカウントは前記ユーザ認証情報に対応し、前記ユーザ認証情報は、ユーザ名と、前記ユーザアカウントのパスワードとを含み、
前記車両データは、前記クライアントデバイスに送信され、前記車両データアプリケーションを介して前記ユーザに提示される、請求項1~14のいずれか1項に記載の方法。
【請求項16】
前記クライアントデバイスは、前記車両データに基づいて車両制御コマンドを生成し、前記車両制御コマンドを前記複数の車両のうちの1つに送信するように構成され、それによって、前記複数の車両のサブセットからリアルタイムで収集され、前記クライアントデバイスの前記ユーザがアクセス可能な前記車両データに基づいて、前記複数の車両のうちの前記1つを制御することができるようにする、請求項1~15のいずれか1項に記載の方法。
【請求項17】
各リアルタイム車両データフローは、制御イベントデータ、制御コマンド、車両対デバイス結合イベントデータ、センサ読み値、および前記それぞれの車両に関連付けられたログデータのうちの1つまたは複数をさらに含む、請求項1~16のいずれか1項に記載の方法。
【請求項18】
各リアルタイム車両データフローをそれぞれの一意のフロー識別子に関連付けることをさらに含み、
前記複数の車両の各々は、一意の車両識別子を有し、各リアルタイム車両データフローは、前記それぞれの車両の前記一意の車両識別子によってそれぞれの車両に関連付けられる、請求項1~17のいずれか1項に記載の方法。
【請求項19】
前記ユーザ認証情報に関連付けられた前記アクセスレベルは、前記複数のリアルタイム車両データフローからの、前記ユーザ認証情報に関連付けられた前記車両データを識別するように構成され、VIN番号、車両タイプ、複数の所定のセンサデータタイプ、および複数の対応する検知閾値のうちの1つまたは複数に基づいて定義される、請求項1~18のいずれか1項に記載の方法。
【請求項20】
前記クライアントデバイスは、前記ユーザ認証情報に関連付けられた前記車両データに局所的にデータフィルタを適用して、前記ユーザ認証情報に関連付けられた前記車両データのサブセットを識別するように構成される、請求項1~19のいずれか1項に記載の方法。
【請求項21】
前記複数のリアルタイム車両データフローを、前記車両データフィードサーバの前記データベースに、第1の期間にわたって記憶することと、
前記複数のリアルタイム車両データフローと、前記クライアントデバイスから受信した前記車両データ要求とに対応する構成メタデータを生成することと、
前記構成メタデータを、前記データベースに、前記第1の期間よりも長い第2の期間にわたって記憶することと、
をさらに含む、請求項1~20のいずれか1項に記載の方法。
【請求項22】
1つまたは複数のプロセッサによって実行されると、前記プロセッサに、請求項1~21のいずれか1項に記載の方法を実行させる命令が記憶された非一時的コンピュータ可読媒体。
【請求項23】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、前記プロセッサに、請求項1~21のいずれか1項に記載の方法を実行させる命令が記憶されたメモリと、
を備える、車両データフィードサーバ。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
[0001] 本出願は、2020年4月1日に出願された、米国仮特許出願第63/003,823号「Cloud-Based Real-Time Vehicle Data Sharing」、および2020年6月15日に出願された米国仮特許出願第63/039,406号「Cloud-Based Real-Time Vehicle Data Sharing」の優先権を主張する、2021年3月25日に出願された米国特許出願第17/213,195号「Cloud-Based Real-Time Vehicle Data Sharing」の継続出願であり、これらはそれぞれ、参照によりその全体が本明細書に援用される。
【0002】
[0002] 本出願は、包括的には、限定ではないが、多数の車両からデータを収集し、収集されたデータを複数のデータクライアントに配信するためのコンピュータ支援方法およびシステムを含む、車両データ収集および配信に関し、複数のデータクライアントは、収集されたデータを分析し、カスタマイズされた車両サービスまたは動作(例えば、コンシェルジュサービス、診断およびメンテナンス、運転者挙動分析、車両性能監視、フリート管理、ジオフェンシング、緊急道路サービス、スマートシティ経営、盗難車両追跡および保証サービス)を開始する。
【背景技術】
【0003】
[0003] 車両には、車両がデータを収集し、このデータをリアルタイムで、接続されたまたはリモートのコンピュータデバイスと交換することを可能にする電子機器が装備されている。通常、各車両は、車両に内蔵された既存のセンサおよび/またはカメラを用いてデータを収集し、データを、携帯電話ネットワーク等の無線ネットワークを介してそれぞれの自動車メーカに提出する。これにより、自動車メーカは、顧客が自動車を遠隔でロック解除し、安全機能および/または車両内ソフトウェアをアップグレードし、車両性能に基づいてメンテナンススケジュールを調整することを遠隔で支援することが可能になる。いくつかの自動車メーカはまた、個々の顧客に、自身の自動車に関する車両データ共有を容易にするためのソフトウェアアプリケーションを提供する。しかしながら、車両データは主に個々の自動車メーカによって収集され、顧客、他の自動車メーカまたはいくつかの車両サービス事業と個別に共有される。現行方式よりも効率的な車両データ収集および配信メカニズムを有することが有益である。
【発明の概要】
【0004】
[0004] 本出願は、車両データアプリケーションを用いてリアルタイム車両データ(例えば、テレメトリデータおよびコマンド)を収集、トランスポートおよびフィルタリングする車両データフィードサービスを提供するコンピュータ実施方法を対象とする。任意選択により、車両データアプリケーションは、フィードコンシューマアプリケーションプログラミングインタフェース(API)によって有効にされ、オープンソースのリモートプロシージャコール(RPC)システム(例えば、gRPC)に基づいて車両データを提示するユーザインタフェースを提供する。車両データアプリケーションによって、車両データフィードサービスは、異なるユーザのデータフィード判断基準(例えば、アクセスレベル)を記録し、複数の車両から複数のデータストリームを収集し、データストリームを複数の車両データシャードに統合し、異なるユーザについてデータストリームを条件付けし、それによって、データ要求を行っているユーザへの条件付けされたデータストリームのサブセットの迅速な配信を可能にする。車両データフィードサービスは、任意選択により、データストリームを提供する車両を製造した1つまたは複数の自動車メーカによって、車両データが配信されるクライアントグループのうちの1つによって、または自動車メーカおよびクライアントグループと別個の第三者によって提供される。
【0005】
[0005] 本出願の1つの態様では、車両データを通信する方法が車両データフィードサーバにおいて実施される。車両データフィードサーバは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行するための命令を記憶するメモリとを有し、1つまたは複数の通信ネットワークを介して複数の車両に結合される。方法は、例えば、1人または複数の顧客から、複数の認証情報と、車両データに対する関連付けられたアクセスレベルとを受信することと、複数の認証情報を関連付けられたアクセスレベルと共にデータベースに記憶することとを含む。方法は、複数の車両から、1つまたは複数の通信ネットワークを介して複数のリアルタイム車両データフローを受信することをさらに含み、各リアルタイム車両データフローは、それぞれの車両に関連付けられ、少なくとも、それぞれの車両の車両テレメトリデータを含む。方法は、クライアントデバイスのユーザからユーザ認証情報および車両データ要求を受信することと、ユーザ認証情報に基づいて、ユーザが、ユーザ認証情報に関連付けられた、複数のリアルタイム車両データフローのサブセットを含む車両データにアクセスする権限を有しているか否かを判断することとをさらに含む。方法は、ユーザがユーザ認証情報に関連付けられた車両データにアクセスする権限を有するという判断に従って、複数のリアルタイム車両データフローのサブセットをクライアントデバイスに転送することをさらに含む。いくつかの実施形態では、クライアントデバイスは、ユーザ認証情報に関連付けられた車両データに局所的にデータフィルタを適用して、ユーザ認証情報に関連付けられた車両データのサブセットを識別するように構成される。いくつかの実施形態では、方法は、車両データ要求を受信する前に、ユーザ認証情報に関連付けられたアクセスレベルに基づいて、複数のリアルタイム車両データフローのサブセットをユーザ認証情報に関連付けることをさらに含む。
【0006】
[0006] いくつかの実施形態では、車両データフィードサーバは、1つまたは複数の通信ネットワークを介して1つまたは複数の車両オペレータデバイスに通信可能に結合される。車両データを通信する方法は、1つまたは複数の車両オペレータデバイスまたは車両から1つまたは複数の制御データフローを受信することをさらに含む。各制御データフローは1つまたは複数の制御コマンドを含み、各コマンドは、複数の車両のそれぞれのサブセットを制御するために、それぞれの車両オペレータデバイスによって発行される。ユーザ認証情報に関連付けられたアクセスレベルを用いて、1つまたは複数の制御データフローから、ユーザ認証情報に関連付けられた車両データの少なくとも一部を選択する。さらに、1つまたは複数の制御データフローを複数のリアルタイム車両データフローと統合することができ、複数のリアルタイム車両データフローおよび1つまたは複数の制御データフローは複数の車両データシャードにグループ化される。
【0007】
[0007] いくつかの実施形態では、ユーザ認証情報に関連付けられた車両データにおけるデータ項目は、第1の補足データ項目で補足され、第1の補足データ項目は、車両データにおけるそれぞれのデータ項目と併せてクライアントデバイスに転送される。代替的に、いくつかの実施形態では、複数のリアルタイム車両データフローの各々が、第2の補足データ項目で補足され、第2の補足データ項目およびそれぞれのリアルタイム車両データフローは、それぞれの車両データシャードにおいてグループ化される。任意選択により、リアルタイム車両データフローのサブセットにおける各フローについて、ユーザ認証情報に関連付けられたアクセスレベルに従ってそれぞれの第2の補足データ項目が決定され、第2の捕捉データ項目は、それぞれのリアルタイム車両データフローがユーザ認証情報に関連付けられた車両データの一部であることを示す。
【0008】
[0008] いくつかの実施形態では、車両データを通信する方法は、複数のリアルタイム車両データフローを複数の車両データシャードにグループ化することによって、複数のリアルタイム車両データフローを統合することをさらに含む。ユーザ認証情報に関連付けられた車両データは、複数の車両データシャードのサブセットを含む。複数の車両データシャードは所定の数の車両データシャードを含むことができ、複数のリアルタイム車両データフローの各々は、車両データシャードの1つにおいて完全にグループ化される。さらに、いくつかの実施形態では、複数のリアルタイム車両データフローが複数の車両データシャードにグループ化されるとき、複数のリアルタイム車両データフローの各データ項目は、共通フォーマットに従って、複数の車両データシャードのそれぞれのデータ項目に変換される。いくつかの実施形態では、所定のデータストレージ規則(例えば、7日間のみ記憶する)に従って、複数の車両データシャードが車両データフィードサーバのデータベースに記憶される。
【0009】
[0009] いくつかの実施形態では、各車両データシャードについて、リアルタイム車両データフローのそれぞれのサブセットにおけるデータ項目が、時間的順序に従って順次にそれぞれの車両データシャードにグループ化される。さらに、いくつかの実施形態では、車両データ要求は現在の要求を含む。現在の要求に応答して、車両データフィードサーバは、時間的位置に対応する複数の車両データシャードにおける参照ポインタを識別する。時間的位置の前に収集されたリアルタイム車両データフローは、クライアントデバイスのユーザから受信された以前の要求に応答してユーザ認証情報に関連付けられた車両データを提供するように構成される。時間的位置の後に収集されたリアルタイム車両データフローは、現在の要求に応答してユーザ認証情報に関連付けられた車両データを提供するように構成される。
【0010】
[0010] いくつかの実施形態では、車両データ要求は第1の要求を含み、ユーザ認証情報に関連付けられた車両データは、第1の要求に応答して第1の車両データシャードから抽出された第1の車両データを含む。第2のユーザ認証情報および第2の車両データの第2の要求が、第2のクライアントデバイスの第2のユーザから受信される。第2の要求に応答して、第1の要求とは独立して、車両データフィードサーバは、第2のユーザ認証情報に基づいて、第2のユーザが第2のユーザ認証情報に関連付けられた第2の車両データにアクセスする権限を有しているか否かを判断する。第2の車両データは、複数のリアルタイム車両データフローの第2のサブセットを含む。第2のユーザが第2のユーザ認証情報に関連付けられた第2の車両データにアクセスする権限を有するという判断に従って、車両データフィードサーバは、複数のリアルタイム車両データフローの第2のサブセットを第2のクライアントデバイスに転送する。第2の車両データは、第1の車両データシャードから抽出されている第1の車両データと独立して、第2の車両データシャードから抽出される。任意選択により、第1および第2の車両データシャードは同じシャードであるのに対し、第2の車両データは第1の車両データと異なる。第1および第2のクライアントデバイスは、同じ処理スレッドにおいて順次同じシャードからそれぞれの要求された車両データを抽出することができる。任意選択により、第1および第2の車両データシャードは異なり、第1の車両データも第2の車両データと異なる。第1および第2の車両データシャードが1つの処理スレッドに割り当てられている場合、第1および第2のクライアントデバイスは、同じ処理スレッドにおいて順次異なるシャードからそれぞれの要求された車両データを抽出することができる。第1および第2の車両データシャードが2つの別個の処理スレッドに割り当てられている場合、第1および第2のクライアントデバイスは、2つの別個の処理スレッドにおいて順次または同時に異なるシャードからそれぞれの要求された車両データを抽出することができる。
【0011】
[0011] いくつかの実施形態では、クライアントデバイスは、クライアントデバイスのユーザアカウントを介して車両データアプリケーションを実行するように構成される。ユーザアカウントはユーザ認証情報に対応し、ユーザ認証情報は、ユーザ名と、ユーザアカウントのパスワードとを含む。車両データは、クライアントデバイスに送信され、車両データアプリケーションを介してユーザに提示される。
【0012】
[0012] いくつかの実施形態では、クライアントデバイスは、車両データに基づいて車両制御コマンドを生成し、車両制御コマンドを複数の車両のうちの1つに送信するように構成され、それによって、複数の車両のサブセットからリアルタイムで収集され、クライアントデバイスのユーザがアクセス可能な車両データに基づいて、複数の車両のうちの1つを制御することができるようにする。複数の車両のサブセットは、任意選択により、車両データに基づいて制御される複数の車両のうちの1つを含めるかまたは除外する。
【0013】
[0013] いくつかの実施形態では、各リアルタイム車両データフローは、制御イベントデータ、制御コマンド、車両対デバイス結合イベントデータ、センサ読み値、およびそれぞれの車両に関連付けられたログデータのうちの1つまたは複数をさらに含む。
【0014】
[0014] いくつかの実施形態では、車両データを通信する方法は、各リアルタイム車両データフローをそれぞれの一意のフロー識別子に関連付けることを含む。複数の車両の各々が一意の車両識別子を有する。各リアルタイム車両データフローは、それぞれの車両の一意の車両識別子によってそれぞれの車両に関連付けられる。
【0015】
[0015] いくつかの実施形態では、ユーザ認証情報に関連付けられたアクセスレベルは、複数のリアルタイム車両データフローからの、ユーザ認証情報に関連付けられた車両データを識別するように構成され、VIN番号、車両タイプ、複数の所定のセンサデータタイプ、および複数の対応する検知閾値のうちの1つまたは複数に基づいて定義される。
【0016】
[0016] いくつかの実施形態では、車両データを通信する方法は、複数のリアルタイム車両データフローを、車両データフィードサーバのデータベースに、第1の期間にわたって記憶することと、複数のリアルタイム車両データフローと、クライアントデバイスから受信した車両データ要求とに対応する構成メタデータを生成することと、構成メタデータを、データベースに、第1の期間よりも長い第2の期間にわたって記憶することとを含む。
【0017】
[0017] 1つまたは複数のプロセッサによって実行されると、プロセッサに、上記の方法のうちの任意のものを実行させる命令が非一時的コンピュータ可読媒体に記憶されている。コンピュータシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると、プロセッサに、上記の方法のうちの任意のものを実行させる命令が記憶されたメモリとを備える。
【0018】
[0018] 様々な記載の実施形態の理解をより良好にするために、以下の実施形態の説明が図面と併せて参照されるべきである。図面において、類似の参照符号は図面全体を通じて対応する部分を指す。
【図面の簡単な説明】
【0019】
【
図1A】[0019]いくつかの実施形態による、1つまたは複数の通信ネットワークを介して車両データを収集および配信するように互いにインタラクトする、車両、サーバシステムおよびクライアントデバイスを含む例示的なネットワーク動作環境である。
【
図1B】[0020]いくつかの実施形態による、1つまたは複数の通信ネットワークを介して車両制御データを収集および配信するように互いにインタラクトする、車両、車両オペレータシステム、サーバシステムおよびクライアントデバイスを含む別の例示的なネットワーク動作環境150である。
【
図2A】[0021]いくつかの実施形態による、車両、サーバシステム、クライアントデバイスおよび車両オペレータデバイス間のデータ通信を示す流れ図である。
【
図2B】いくつかの実施形態による、車両、サーバシステム、クライアントデバイスおよび車両オペレータデバイス間のデータ通信を示す流れ図である。
【
図2C】[0022]いくつかの実施形態による、車両、サーバシステム、クライアントデバイスおよび車両オペレータデバイス間のデータ通信を示す流れ図である。
【
図3】[0023]いくつかの実施形態による、複数のリアルタイム車両データフローが編成される複数の車両データシャードの図である。
【
図4】[0024]いくつかの実施形態による、時間的順序に従って順次データ項目を編成する例示的な車両データシャードである。
【
図5】[0025]いくつかの実施形態による、ユーザ認証情報に関連付けられたアクセスレベルによって制御される例示的な車両データ通信プロセスの流れ図である。
【
図6A】[0026]いくつかの実施形態による、車両データ通信プロセスを管理するように構成された例示的な車両データフィードサーバのブロック図である。
【
図6B】いくつかの実施形態による、車両データを通信する過程で車両データ要求に関連付けられたアクセスレベルを管理するように構成された車両データフィードサーバのコーディネータモジュールのブロック図である。
【
図7】[0027]いくつかの実施形態による、車両データシャードに基づく別の例示的な車両データ通信プロセスの流れ図である。
【
図8A】[0028]いくつかの実施形態による、車両データフィードサーバを介して車両データを通信する例示的な方法の流れ図である。
【
図8B】[0029]いくつかの実施形態による、車両データフィードサーバを介して車両データを通信する別の例示的な方法の流れ図である。
【
図9】[0030]いくつかの実施形態による、車両データ共有を可能にするように構成された例示的なサーバシステムである。
【
図10】[0031]いくつかの実施形態による、車両データの要求およびレビューを可能にする車両データアプリケーションを実行するように構成された例示的なクライアントデバイスである。
【発明を実施するための形態】
【0020】
[0032] 類似の参照符号は、図面のいくつかの図全体を通じて対応する部分を指す。
【0021】
[0033] 本出願の様々な実施形態では、車両データフィードサービスプラットフォームは、複数のクライアントグループにBtoBウェブサービスを提供するように確立される。この車両データフィードサービスプラットフォームは、リアルタイム車両データフロー(例えば、テレメトリデータおよび制御コマンドを含む)を多数のネットワーク接続された車両から収集し、収集した車両データフローを、ホストされたクライアントグループの1つまたは複数のユーザアカウントに提供する。車両データアプリケーションは、クライアントグループのユーザアカウントに関連付けられたクライアントデバイスにおいて実施され、クライアントデバイスのユーザが、対応するユーザアカウントを介して車両データを要求することを可能にする。各ユーザアカウントはアクセスレベルに関連付けられ、車両データフィードサービスプラットフォームは、対応するユーザアカウントのアクセスレベルに従って、収集した車両データフローを条件付けしておく。ユーザによる車両データ要求に応答して、車両データフィードサービスプラットフォームは、条件付けされた車両データフローにおける車両データを直接識別し、要求された車両データを車両データアプリケーションを介してクライアントデバイスに提供する。
【0022】
[0034] 車両データアプリケーションは、フィードコンシューマアプリケーションプログラミングインタフェース(API)によって有効にすることができ、オープンソースリモートプロシージャコール(RPC)システム、例えば、GOOGLE RPCシステムに基づいて、要求された車両データを提示するためのグラフィカルユーザインタフェース(GUI)を提供する。いくつかの実施形態では、車両データフィードサービスプラットフォームは、2つ以上のブランドの車両によって提供される車両データフローを統合し、2つ以上のブランドに関連付けられた任意の自動車メーカと無関係の第三者によって管理される。代替的に、いくつかの実施形態では、車両データフィードサービスプラットフォームは、2つ以上のブランドの自動車メーカによって委託された第三者によって確立または管理される。さらに、いくつかの実施形態では、車両データフィードサービスプラットフォームは、自動車メーカによって、共同データ合意の下で、2つ以上のブランドの車両から車両データフローを提供するように確立または管理される。したがって、大量の一般車両データを車両データフィードサービスプラットフォームによって収集し、個々の自動車メーカによって制限されることのない多岐にわたる車両関連アプリケーションを促進することができる。
【0023】
[0035] 一般車両データが配信されるクライアントグループの例は、限定ではないが、自動車メーカ、レンタカー会社、マーケティング代理店、および公衆サービスエンティティを含む。各クライアントグループは、任意選択により、各々がそれぞれのアクセスレベルを有する1つまたは複数のユーザアカウントを有する。1つまたは複数のユーザアカウントによって、クライアントグループは、異なるメーカの車両から収集された大量の一般車両データに基づいて個々の車両または車両フリートが関与する多岐にわたる車両関連アプリケーションを実施することができる。例えば、ユーザアカウントに関連付けられた車両の位置、燃料レベル、オイルレベル、および制御コマンドに関するリアルタイム車両データに基づいて、ユーザアカウントに多数の個人向けサービス(例えば、モバイルカーディテーリング)を提案するコンシェルジュサービスが有効にされる。メンテナンスパッケージを最適化し、車両部品が修復または交換される必要があるとき、および車両がサービスを必要とするときを、車両ヘルスインジケータおよびトラブル診断コードに基づいて予測する、診断およびメンテナンスサービスを提案することができる。車両データの他の車両関連アプリケーションは、限定ではないが、運転者挙動分析、車両性能監視、フリート管理、ジオフェンシング、緊急道路サービス、スマートシティ経営、盗難車両追跡、および保証サービスを含む。
【0024】
[0036] 次に、添付の図面に例が示されている実施形態を詳細に参照する。以下の詳細な説明では、記載された様々な実施形態の完全な理解をもたらすために、多数の具体的な詳細が示される。しかしながら、記載された様々な実施形態は、これらの具体的な詳細がなくても実施することができることが当業者には明らかであろう。他の例では、よく知られている方法、手順、構成要素、モジュールおよびネットワークは、実施形態の態様を不必要に不明瞭にしないようにするために、詳細に説明されていない。
【0025】
[0037]
図1Aは、いくつかの実施形態による、1つまたは複数の通信ネットワーク108を介して車両データを収集および配信するように互いにインタラクトする、車両102、サーバシステム104、および1つまたは複数のクライアントデバイス106を含む例示的なネットワーク動作環境100である。動作環境100は、サーバシステム104によって作成およびホストされる仮想ユーザドメインに対応し、複数の車両アカウント、複数のユーザアカウント、またはその両方を含む。各車両アカウントは、任意選択により、単一の車両102または2つ以上の車両102のグループ(例えば、共通の所有者、自動車メーカ、またはディーラによってグループ化される)に対応する。各車両102は、それぞれのリアルタイム車両データフローを車両データフィードサーバ110にストリーミングするように構成される。車両データフィードサーバ110は、複数の車両102からストリーミングされたリアルタイム車両データフローを収集および統合するように構成される。仮想ユーザドメインにおけるユーザアカウントの各々について、ユーザ120は、ウェブブラウザまたは専用車両データアプリケーションを介して、クライアントデバイス106上のそれぞれのユーザアカウントにログオンし、関連車両データ(すなわち、統合された車両データフローのサブセット)を要求することができる。クライアントデバイス106のウェブブラウザまたは専用車両データアプリケーションはグラフィカルユーザインタフェース(GUI)を表示し、GUIを介して、ユーザ要求が受信され、要求された車両データがユーザ120に提示される。
【0026】
[0038] 複数の車両102は、サーバシステム104から遠隔にあり、サーバシステム104に通信可能に結合される。車両102は、人物または物品を輸送するために用いられる任意の移動物体を含む。いくつかの状況において、車両102とは、広義には、ワゴン車、自転車、自動車(例えば、オートバイ、乗用車、トラック、バス)、レール付き車両(例えば、電車、トラム)、船(例えば、船舶、ボート)、水陸両用車両(例えば、スクリュー式車両、ホバークラフト)、航空機(例えば、飛行機、ヘリコプター)、および宇宙船を含む。例示的なネットワーク動作環境100において、車両102は陸上を走行している自動車を含み、各車両102は一意の車両識別番号(VIN)によって識別可能である。いくつかの実施形態では、各車両102が通信モジュールを含み、1つまたは複数の通信ネットワーク108を用いて別の車両102、車両オペレータデバイス124、クライアントデバイス106、またはサーバシステム104と通信する。用いられる通信ネットワーク108は、限定ではないが、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、セルラネットワーク、イーサネット、電話網、Bluetooth(登録商標)パーソナルエリアネットワーク(PAN)等を含む1つまたは複数のタイプのトポロジを有する1つまたは複数のネットワークとすることができる。いくつかの実施形態では、サブネットワークにおける車両102およびクライアントデバイス106のうちの2つ以上が、ローカル通信ネットワーク(例えば、ZigBee(登録商標)、Z-Wave、Insteon、Bluetooth、Wi-Fiおよび他のローカル通信ネットワーク)を介して結合される。
【0027】
[0039] いくつかの実施形態では、車両102は、1つまたは複数の通信ネットワーク108に対し、直接(例えば、無線通信事業者への3G/4G/5G接続を用いる)、またはネットワークインタフェースを通じて(例えば、車両102における、車両102に有線接続されているかまたはBluetooth通信リンクを介して車両102に無線で結合されている車両オペレータデバイス124を介して)接続を確立する。例において、車両オペレータデバイス124は、車両102内に位置し、車両102のホットスポットを作成するように構成されたモバイルデバイスである。ホットスポットは、ソフトウェア、ハードウェア、およびネットワークデータサービスを融合させたものであり、これらが組み合わさることにより、車両オペレータデバイス124を、Wi-Fiを介して車両102へウェブ接続を提供するためのブロードバンドモデムおよびルータに相当するものに変換する。
【0028】
[0040] 1つまたは複数のクライアントデバイス106は、サーバシステム104から物理的に遠隔にあり、サーバシステム104に通信可能に結合される。いくつかの実施形態では、クライアントデバイス106はデスクトップコンピュータを含む。いくつかの実施形態では、クライアントデバイス106は、モバイルデバイス、例えば携帯電話、タブレットコンピュータ、およびラップトップコンピュータを含む。各クライアントデバイス106は、1つまたは複数の通信ネットワーク108を用いて別のクライアントデバイス106、車両102、またはサーバシステム104と通信する。いくつかの実施形態では、サブネットワークにおける2つ以上のクライアントデバイス106が有線接続を介して結合されるのに対し、同じサブネットワークにおける少なくともいくつかのクライアントデバイス106は、ローカル無線通信ネットワーク(例えば、ZigBee、Z-Wave、Insteon、Bluetooth、Wi-Fi、および他の無線通信ネットワーク)を介して結合される。例において、クライアントデバイス106は、1つまたは複数の通信ネットワーク108に対し、直接(例えば、無線通信事業者への3G/4G接続を用いる)、またはネットワークインタフェース160(例えば、ルータ、スイッチ、ゲートウェイ、ハブ、またはインテリジェントな専用の宅内全体制御ノード)を通じて、またはそれらの任意の組合せを通じて接続を確立する。
【0029】
[0041] サーバシステム104(
図9にも示される)は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行するための命令を記憶するメモリとを備える。サーバシステム104は、複数の認証情報と、車両データに対する関連付けられたアクセスレベルとを受信し、複数の認証情報を、関連付けられたアクセスレベルと共にデータベースに記憶するように構成される。また、サーバシステム104は、1つまたは複数の通信ネットワーク108を介して複数の車両102から複数のリアルタイム車両データフロー112を受信するように構成される。各リアルタイム車両データフロー112は、それぞれの車両102に関連付けられ、少なくとも、それぞれの車両102の車両テレメトリデータを含む。テレメトリデータは、少なくとも、それぞれの車両102内のセンサからリアルタイムで収集されるデータを含む。いくつかの実施形態では、リアルタイム車両データフロー112は複数の車両データシャードに統合およびグループ化され、これらは任意選択により、サーバシステム104の車両データベースに記憶される。いくつかの実施形態では、複数のリアルタイム車両データフロー112を受信している間、サーバシステム104はさらに、異なるユーザ認証情報に対応するアクセスレベルに従って、複数のリアルタイム車両データフローをこれらのユーザ認証情報に関連付ける。例えば、ユーザ認証情報は、複数のリアルタイム車両データフローから車両データを選択するためにアクセスレベルに関連付けられる。サーバシステム104は、複数のリアルタイム車両データフローからの車両データを識別し、ユーザ認証情報に関連付けられたユーザから任意の要求を受信する前に、車両データをユーザ認証情報に関連付ける。いくつかの実施形態では、リアルタイム車両データフローを受信している間、ユーザ認証情報を含む異なる認証情報の関連付けられたアクセスレベルを定義するための(例えばユーザ認証情報を車両データの情報(例えば、データフロー識別情報)に関連付けるための)ハッシュ関数が確立される。代替的に、いくつかの実施形態では、補足データ項目が、ユーザ認証情報に関連付けられたアクセスレベルに従って、複数の車両データフローのサブセットまたはシャードの各々に関連付けられ、補足データ項目は、それぞれのリアルタイム車両データフローが、ユーザ認証情報について選択された車両データの一部であることを示す。
【0030】
[0042] いくつかの実施態様では、各ユーザ認証情報について、アクセスレベルを用いて複数の車両102から車両を選択する。選択されると、選択された各車両102の車両データフロー112全体がユーザ認証情報に関連付けられ、要求時にユーザ認証情報を有するユーザに提供されることになる。例えば、アクセスレベルは、50,000マイルを超えるマイレージ読み値を有する全ての赤色のフォード(登録商標)ピックアップトラックまたは全ての日産(登録商標)セダンについて、ユーザ認証情報がデータへのアクセスを有することを定義する。しかしながら、アクセスレベルは、赤色の各フォードピックアップトラックの車両データフロー112における2つのタイプのデータ項目を異なる形で扱わず、例えば、それぞれの車両データフロー112におけるガス圧データを、ユーザ認証情報を有するユーザに送信している間、マイレージデータを保持しない。ユーザは、車両データフロー112を受信した後、クライアントデバイス106において追加のフィルタを適用することができる。
【0031】
[0043] サーバシステム104がクライアントデバイス106のユーザからユーザ認証情報および車両データ要求114を受信するとき、車両データ要求は、ユーザ認証情報に関連付けられた車両データを選択するためのユーザ認証情報に関連付けられたアクセスレベルを指定することを要求されない。サーバシステム104は、ユーザが、ユーザ認証情報に関連付けられた、複数のリアルタイム車両データフローのサブセットを含む車両データにアクセスする権限を有するか否かを判断することによって車両データ要求114に応答し、ユーザがユーザ認証情報に関連付けられた車両データにアクセスする権限を有するという判断に従って、複数のリアルタイム車両データフローのサブセットをクライアントデバイスに転送する。サーバシステム104は、複数のリアルタイム車両データフロー112を受信している間、同時に車両データ要求114に応答すること、およびデータフィード116は車両データフロー112をリアルタイムで反映することに留意されたい。
【0032】
[0044] いくつかの実施形態では、サーバシステム104は、リアルタイム車両データフロー112、またはリアルタイム車両データフロー112からそれぞれの車両102または車両アカウントに関連付けて統合された車両データシャードを記憶する車両データベース(
図9における942)を含む。リアルタイム車両データフロー112またはシャードは、所定のデータストレージ規則に従って記憶することができる。例えば、所定のデータストレージ規則に従って、車両データフロー112またはシャードの各々が、それぞれの所定の持続時間(例えば、7日間)にわたって記憶される。別の例において、所定のデータストレージ規則に従って、第1の車両に関連付けられた第1の車両データフロー112またはシャードは、第2の車両に関連付けられた第2の車両データフロー112またはシャードを上回る優先度を有し、車両データベースに割り当てられたメモリ空間が実質的にフルであるか、閾値占有率(例えば、90%)に達しているとき、第2の車両データフロー112またはシャードは、第1の車両データフロー112またはシャードより前にパージされる。
【0033】
[0045] 各クライアントデバイス106は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行するための命令を記憶するメモリとを備える。クライアントデバイス106に記憶された命令は、ウェブブラウザおよび車両データアプリケーションの実施を可能にする。ウェブブラウザおよび車両データアプリケーションは、動作環境100の仮想ユーザドメインにおけるユーザアカウントにリンクされる。特に、ブラウザまたは車両データアプリケーションは、GUIがユーザアカウントのユーザ認証情報および車両データのユーザ要求を受信し、ユーザ120に対するリアルタイムデータフィード116において返される車両データを提示することを可能にする。いくつかの実施形態では、ユーザ120は、要求された車両データのリアルタイムデータフィード116をレビューした後、複数の車両102のうちの1つを制御することを意図する。クライアントデバイス106は、車両データ116に基づいて車両制御コマンド118を生成し、車両制御コマンド118を複数の車両102のうちの1つに送信し、それによって、複数の車両102からリアルタイムで収集される車両データに基づいて、複数の車両102のうちの1つを制御することができるようにする。さらに、いくつかの実施形態では、リアルタイムデータフィード116は、第1の車両102Aに対応する車両データフローを含む場合も含まない場合もある車両データフロー116のサブセットを含む。クライアントデバイス106が、第1の車両102Aを制御するために、リアルタイムデータフィード116に基づいて車両制御コマンド118を生成する際、第1の車両102Aは、任意選択により第1の車両102A自体を含むかまたは除外する1つまたは複数の車両102に関連付けられた車両データの履歴に基づいて制御される。いくつかの実施形態では、クライアントデバイス106は、サーバシステム104のクラウドベースの車両制御サーバ130を介して車両102を制御するように構成される。
【0034】
[0046] いくつかの実施形態では、動作環境100は、1つまたは複数のクライアントグループについて仮想ユーザドメインをホストするために複数のクライアントデバイス106に通信可能に結合されたクライアントグループサーバ122をさらに含む。クライアントグループの例は、限定ではないが、自動車メーカ、レンタカー会社、マーケティング代理店、および公衆サービスエンティティを含む。各クライアントグループは、サーバシステム104によって提供される、車両データへの1つまたは複数のアクセス権を有する複数のユーザアカウントを含む。例えば、レンタカー会社に関連付けられたクライアントグループは、少なくとも、特別ユーザアカウントおよび通常ユーザアカウントを有する複数のユーザアカウントを含む。特別ユーザアカウントは、例えば契約合意書に基づいてレンタカー会社に関連付けられた車両データに対する第1のアクセスレベルを有する。特別ユーザアカウントは、通常ユーザアカウントの第2のアクセスレベルを承認、定義、および調整する優先権を有するが、第2のアクセスレベルは、車両データに対する第1のアクセスレベル以下である。その際、いくつかの状況では、特別ユーザアカウントは、クライアントグループに関連付けられた通常ユーザアカウントのサブセットの各々または全てについてそれぞれのアクセスレベルを定義することを可能にされる。いくつかの実施形態では、クライアントグループは、第1のタイプの複数のユーザアカウント(例えば、特別ユーザアカウント)および第2のタイプの複数のユーザアカウント(例えば、通常ユーザアカウント)を含む。同じタイプのユーザアカウントは、任意選択により、同じアクセスレベルまたは異なるアクセスレベルを有する。代替的に、別の例では、クライアントグループは、同じアクセスレベルを有する単一のタイプのユーザアカウントのみを有し、そのユーザアカウントの全てが同じアクセスレベルに関連付けられる。さらに、いくつかの実施形態では、クライアントグループの各ユーザアカウントは、任意の車両データ要求を送出する前にそれぞれのアクセスレベルを定義することを可能にされる。任意選択により、ユーザアカウントには、所定のクライアントデバイス106のそれぞれのサブセットのウェブブラウザまたは専用車両データアプリケーションを介してのみアクセスすることができる。任意選択により、サーバシステム104が対応するクライアントデバイス106上で提供されるユーザ認証情報を検証することができる限り、ユーザアカウントには、複数のクライアントデバイス106のうちの任意のものを介してアクセスすることができる。サーバシステム104は、これらのユーザアカウントについて、認証情報と、車両データに対する関連付けられたアクセスレベルとを受信し、認証情報を関連付けられたアクセスレベルと共にデータベースに記憶するように構成される。
【0035】
[0047]
図1Bは、いくつかの実施形態による、1つまたは複数の通信ネットワーク108を介して車両制御データ126を収集および配信するように互いにインタラクトする、車両102、車両オペレータデバイス124、サーバシステム104、およびクライアントデバイス106を含む別の例示的なネットワーク動作環境150である。サーバシステム104は、1つまたは複数の車両102を選択し、権限を有するオペレータ(例えば、自動車メーカ、運転者)から受信される制御コマンドに応答して、選択された車両102を制御するように構成されたクラウドベースの車両制御サーバ130を含む。例えば、上記で説明したように、車両制御サーバ130は、クライアントデバイス106から、車両データ116に基づいて生成された車両制御コマンド118を受信し、複数の車両102のうちの選択された1つを制御するための車両制御コマンド118を送信することができる。クライアントデバイス106は、任意選択により、サーバシステム104内のクラウドベースの車両データフィードサーバ110によって収集された車両データに基づいてフリート内の1つまたは複数の車両102を制御するための車両制御コマンド118を発行するレンタカー会社に関連付けられる。
【0036】
[0048] いくつかの実施形態では、車両102は、1つまたは複数の通信ネットワーク108を介して1つまたは複数の車両オペレータデバイス124に通信可能に結合され、1つまたは複数の車両オペレータデバイス124に関連付けられた1つまたは複数の制御データフロー126を受信する。各制御データフロー126は1つまたは複数の制御コマンドを含み、各コマンドは、複数の車両102のそれぞれのサブセットを制御するために、それぞれの車両オペレータデバイス124によって発行される。例えば、オペレータは、車両オペレータデバイス124を介して、例えば、少なくとも第1の制御コマンドを含む制御データフロー126を発行することによって、車両102を制御する。いくつかの状況において、車両オペレータデバイス124は、車両102に近接して配置され、制御データフロー126Aの第1の制御コマンドを、有線またはローカル通信リンク(例えば、Bluetooth)を介して車両102に直接送信する。代替的に、いくつかの状況において、車両オペレータデバイス124は車両102から遠隔に位置し、制御データフロー126Bの第1の制御コマンドを、クラウドベースの車両制御サーバ130を介して車両102に送信する。
【0037】
[0049] いくつかの実施態様では、車両制御サーバ130は、複数のオペレータアカウントを含む仮想ユーザドメインをホストし、各アカウントは、1つまたは複数の車両102に関連付けられる。各オペレータデバイス124は、車両制御アプリケーションを実行し、複数のオペレータアカウントを介して車両102を制御するように構成される。車両制御アプリケーションは、グラフィカルユーザインタフェース(GUI)を表示し、このGUI上に、各制御データフロー126の1つまたは複数の制御コマンドが入力され、それぞれの車両102を直接、または車両制御サーバ130を介して間接的に制御するように適用される。
【0038】
[0050] いくつかの実施形態では、車両オペレータデバイス124は、1つまたは複数の制御コマンドの情報を含む対応する制御データフロー128Aを車両データフィードサーバ110に送信し、対応する制御データフロー126Aまたは126Bは、車両102または車両制御サーバ130に送信される。代替的に、いくつかの実施形態では、車両オペレータデバイス124は、対応する制御データフロー126を車両データフィードサーバ110に直接報告しない。代わりに、車両データフィードサーバ110は、それぞれの車両102が1つまたは複数の車両オペレータデバイス124から1つまたは複数の制御データフロー126を受信した後に、各車両102から制御データフロー128Bを受信する。さらに、いくつかの実施形態では、車両データフィードサーバ110は、車両制御サーバ130が車両オペレータデバイス124または車両102から制御データフロー126を収集した後に、車両制御サーバ130から制御データフロー128Cを受信する。
【0039】
[0051] 車両データフィードサーバ110は、制御データフロー128A~128Cを受信する間、ユーザ認証情報に関連付けられたアクセスレベルに基づいて、制御データフロー128A~128Cにおける車両データの部分を識別し、車両データのこの部分をユーザ認証情報に関連付ける。ユーザ認証情報は、車両データにアクセスし、車両データを選択するためのアクセスレベルに対応する。例として、ユーザ認証情報を車両データの情報(例えば、データフロー識別情報)に関連付けるためのハッシュ関数が適用される。別の例において、車両データは、任意選択により、補足データ項目(例えば、フラグ)に関連付けられ、この補足データ項目は、関連付けられたアクセスレベルに基づいて、車両データがユーザ認証情報にアクセス可能であることを示す。ユーザ認証情報を有するクライアントデバイス106から要求を受信すると、車両データフィードサーバ110は、ハッシュ関数または補足データ項目に基づいて車両データを迅速に識別することができる。
【0040】
[0052] 車両データフィードサーバ110によって収集された1つまたは複数の制御データフロー128A~128Cは、車両データフィードサーバ110においてリアルタイム車両データフロー112と統合される。リアルタイム車両データフロー112および制御データフロー128は、任意選択により、複数の車両データシャードにグループ化される。上記で説明したように、車両データシャードは、サーバシステム104の車両データベースに記憶することができる。リアルタイム車両データフロー112および制御データフロー128の両方が、それぞれの車両102または車両アカウントに関連付けて記憶される。リアルタイム車両データフロー112または制御データフロー128は、所定のデータストレージ規則に従って記憶することができる。
【0041】
[0053] 車両データフロー112および制御データフロー128を収集した後、サーバシステム104は、ユーザが当該ユーザのユーザ認証情報に関連付けられた車両データにアクセスする権限を有するか否か判断することによって、車両データ要求114に応答する。車両データは、複数のリアルタイム車両データフローのサブセットを含む。ユーザがユーザ認証情報に関連付けられた車両データにアクセスする権限を有するという判断に従って、サーバシステム104は、複数のリアルタイム車両データフローのサブセットを抽出し、車両データフローの抽出したサブセットを要求側のクライアントデバイス106に送信する。さらに、いくつかの実施形態では、ユーザ認証情報に関連付けられた車両データは、第1の車両102Aに対応する車両データフローを含む場合も含まない場合もある制御データフロー128のサブセットを含む。クライアントデバイス106が、第1の車両102Aを制御するために、リアルタイムデータフィード116に基づいて車両制御コマンド118を生成する場合、第1の車両102Aは、任意選択により第1の車両102A自体を含むかまたは除外する1つまたは複数の車両102の制御コマンドの履歴に基づいて制御される。
【0042】
[0054]
図2Aおよび
図2Bは、いくつかの実施形態による、車両102、サーバシステム104、クライアントデバイス106、および車両オペレータデバイス124間のデータ通信200を示す流れ図である。車両データアプリケーションがクライアントデバイス106にインストールされる。いくつかの実施形態では、クライアントデバイス106は、レンタカー代理店の管理者等の車両フリートのオペレータによって操作されるが、他の実施形態では、クライアントデバイス106は車両の所有者または運転者によって操作される。いくつかの実施形態では、車両データアプリケーションは、フィードコンシューマAPIによって有効にされ、ユーザインタフェースを適用して、オープンソースgRPCまたは他のRPCシステムに基づいて車両102から収集された車両データを提示する。サーバシステム104は、車両データアプリケーションのプログラム、ユーザインタフェース情報、および設定を、クライアントデバイス106に提供し(202)、それによってクライアントデバイス106は、車両データアプリケーションのインストールまたはロード(204)が可能になる。クライアントデバイス106は車両データアプリケーションを実行し、ユーザ認証情報を利用してユーザアカウントにアクセスする(206)。ユーザ認証情報は、任意選択により、ユーザ名およびユーザアカウントのパスワードを含む。ユーザアカウントから任意の要求を受信する前に、サーバシステム104において、ユーザアカウントのアクセスレベルが定義される(208)。アクセスレベルを用いて、ユーザアカウントからの任意の要求の受信とは独立して、サーバシステム104によって収集されるリアルタイム車両データフロー112から車両データを識別する。
【0043】
[0055] 特に、アクセスレベルを用いて、ユーザ認証情報について、複数の車両102から車両を選択する。選択されると、選択された各車両102の車両データフロー112全体がユーザ認証情報に関連付けられ、要求時に、ユーザ認証情報を有するユーザに提供されることになる。アクセスレベルは、VIN番号、車両タイプ、複数の所定のセンサデータタイプ、および複数の対応する検知閾値のうちの1つまたは複数に基づいて定義される。いくつかの状況において、車両102の車両データフロー112は、ユーザの認証情報について、第1の時点においてアクセスレベルの要件(例えば、タイヤの圧力が25PSI未満である)を満たしていないが、第1の時点に続く第2の時点において、要件を満たし始める。車両102の車両データフロー112は、ユーザ認証情報に関連付けられ、第2の時点の後にユーザに提供されることになる。
【0044】
[0056] いくつかの実施形態では、サーバシステム104を所有するエンティティに関連付けられたユーザによって、ユーザアカウントのアクセスレベルが定義および変更される。いくつかの実施形態では、クライアントグループ122の第1のユーザアカウント(例えば、より高いアクセスレベルを有する特別ユーザアカウント)が同じクライアントグループ122の第2のユーザアカウント(例えば、より低いアクセスレベルを有する通常ユーザアカウント)のアクセスレベルを定義する。いくつかの実施形態では、ユーザアカウントは、それ自体のアクセス権を定義または変更することを許可される。いくつかの実施形態では、アクセスレベルは、車両データアプリケーションのユーザインタフェースを介してユーザアカウントについて定義される。
【0045】
[0057] いくつかの実施形態では、車両オペレータデバイス124は、車両制御信号(すなわち、制御データフロー126Aまたは126B)を車両102に送信する(210)ことによって、車両102を制御することに関与する。いくつかの実施形態では、車両オペレータデバイス124は、車両製造者(すなわち、自動車メーカ)によって操作されるデバイスであるのに対し、他の実施形態では、フリートオペレータによって操作され、さらに他の実施形態では、車両オペレータデバイスは車両の所有者または運転者によって操作される。車両制御信号は、1つまたは複数の制御コマンド、例えば、リモートエンジン開始コマンドを含む。任意選択により、車両オペレータデバイス124は、車両制御信号126を車両102に直接または間接的に通信することとは別個に、制御データフロー128Aをサーバシステム104内の車両データフィードサーバ110に直接報告する。任意選択により、車両102は、車両オペレータデバイス124から直接または間接的に車両制御信号を受信すると、制御データフロー128Bを車両データフィードサーバ110に報告する。
【0046】
[0058] 車両102は、限定ではないが、オドメータ、スピードメータ、大容量エアフローセンサ(MAF)、エンジンスピードセンサ、酸素センサ、分岐管絶対圧力センサ、スパークノックセンサ、燃料温度センサ、電圧センサ、スロットルポジションセンサ、およびタイヤ圧力監視システム(TPMS)を含む複数の内蔵センサを有する。車両102の内蔵センサは、車両102のリアルタイム車両データ(車両テレメトリデータとも呼ばれる)を捕捉し(212)、捕捉された車両データをリアルタイム車両データフロー112においてサブミットするように構成される。リアルタイム車両データフロー112は、少なくとも車両テレメトリデータを含む。いくつかの実施形態では、リアルタイム車両データフロー112は、それぞれの一意のフロー識別子に関連付けられる。車両102は、一意の車両識別子(例えば、VIN)を有することができ、リアルタイム車両データフロー112は、車両102の一意の車両識別子によって車両102に関連付けられる。結果として、サーバシステム104は、車両102からのリアルタイム車両データフロー112を、任意選択により車両102または車両オペレータデバイス124によって報告された制御データフロー128と共に、受信する(214)。
【0047】
[0059] いくつかの実施形態では、車両102は、対応する車両テレメトリデータがその内臓センサによって捕捉された直後に、車両データフロー112および制御データフロー128を報告する。車両テレメトリデータは、任意選択により、データイベント(例えば、ブレーキイベント、車の衝突、ハンドルからの転回制御)の時点において、またはデータイベントがないときに(例えば、周期的に)、内蔵センサによって捕捉される。1つまたは複数の車両テレメトリデータ項目は、同じデータイベントに関連付けることができ、データメッセージにおいて一緒に車両データフィードサーバ110に送信することができる。代替的に、いくつかの実施形態では、車両102は、車両テレメトリデータがその内蔵センサによって捕捉された直後に車両テレメトリデータを報告しない。代わりに、車両102は、車両テレメトリデータのバッチを捕捉およびキャッシュし、周期的に、所定のスケジュールに従って、ある特定のデータ量が収集された後、所定のデータイベントに応答して、または要求時に、車両テレメトリデータのバッチを送信する。
【0048】
[0060] サーバシステム104において複数の車両102からリアルタイム車両データフロー112が受信されている間、各ユーザアカウントに対応する車両データが、リアルタイム車両データフロー112において識別され、それぞれのユーザアカウントのユーザ認証情報に関連付けられたアクセスレベルに基づいてそれぞれのユーザアカウントに関連付けられる(216)。いくつかの実施形態では、ユーザアカウントに関連付けられた車両データの一部は、車両102および車両オペレータデバイス124から収集された制御データフロー128において識別され、ユーザアカウントに関連付けられたアクセスレベルに基づいてそれぞれのユーザアカウントに関連付けられる。いくつかの実施形態では、ユーザ認証情報を車両データの情報(例えば、車両データを含む車両データフロー112および制御データフロー128のフロー識別情報)に関連付けるためにハッシュ関数が適用される。
【0049】
[0061] いくつかの実施形態では、リアルタイム車両データフロー112は、複数の車両データシャードのそれぞれの車両データシャードに統合(すなわち、グループ化)される(220)。それぞれの車両データシャードは、データストレージ規則に従って、車両102(例えば、一意の車両識別子によって表される)に関連付けて車両データベースに記憶される。いくつかの状況において、車両データベース(
図9の942)は、複数の車両データシャードを記憶する。車両102のリアルタイム車両データフロー112に関連付けられたそれぞれの車両データシャードは、これらの車両データシャードの負荷の平衡をとるために複数の車両データシャードから選択される。例えば、リアルタイム車両データフロー112が最初にサーバシステム104において受信されるとき、サーバシステム104は、車両データフロー112の流量および/または1つもしくは複数の車両データシャードのサイズを決定し、車両データフロー112を、1つまたは複数の車両データシャードのうち最も小さなサイズを有するそれぞれの車両データシャードに関連付ける。
【0050】
[0062] リアルタイム車両データフロー112がサーバシステム104によって収集および記憶されている間、クライアントデバイス106は、データフロー112の収集と干渉することなく、対応するユーザアカウントのユーザ認証情報と共に車両データ要求114を送信する(222)。車両データ要求は、任意選択により、要求された車両データを選択するためのアクセスレベルを指定または識別する。車両データ要求は、任意選択により、ユーザ認証情報に関連付けられたアクセスレベルを全く参照しない。車両データ要求114は、任意選択により、サーバシステム104が車両データ要求114を受信する前または後に収集されたユーザ認証情報に関連付けられた車両データを要求するのに用いられる。車両データ要求114に応答して、サーバシステム104は、ユーザ認証情報に基づいて、ユーザがユーザ認証情報に関連付けられた車両データにアクセスする権限を有するか否かを判断し(224)、ここで、車両データは、複数のリアルタイム車両データフロー112のサブセットを含む。ユーザがユーザ認証情報に関連付けられた車両データにアクセスする権限を有するという判断に従って、サーバシステム104は、ユーザ認証情報に関連付けられた要求された車両データを抽出し(226)、複数のリアルタイム車両データフロー112のサブセットを要求側のクライアントデバイス106に転送する(226)。複数のリアルタイム車両データフロー112のサブセットは、ユーザ認証情報のアクセスレベルに従って選択された車両102のリアルタイム車両データフロー112における全てのデータ項目を含む。
【0051】
[0063] いくつかの実施形態では、補足データ項目260を、データ通信200の異なる段階において加えるかまたは車両102に関連付けることができる。いくつかの実施形態では、補足データ項目260は、車両のナンバープレート番号、集積回路カード識別子(ICCID)、および電子シリアル番号(ESN)を含む。データフロー112を統合する過程で、サーバシステム104は、リアルタイム車両データフロー112を、車両102に関連付けられた第2の補足データ項目260Bで補足する(218)。代替的に、いくつかの実施態様では、第2の補足データ項目260Bは、車両102に関連付けられたリアルタイム車両データフロー112にアタッチされたフラグを含み、リアルタイム車両データフロー112がユーザ認証情報に関連付けられたアクセスレベルを満たすことを示す。これによって、第2の補足データ項目260Bは、リアルタイム車両データフロー112と共にサーバシステム104の車両データベースに記憶される。代替的に、いくつかの実施形態では、サーバシステム104は、車両データ要求114に応答して第1の補足データ項目260Aを提供する。ユーザ認証情報に関連付けられた要求された車両データ116における各データ項目は、第1の補足データ項目260Aで補足される(228)。第1の補足データ項目260Aは、サーバシステム104においてそれぞれのリアルタイム車両データフロー112に関連付けられて記憶されていない場合があるが、ユーザ認証情報に関連付けられた要求された車両データ116におけるそれぞれのデータ項目と併せてクライアントデバイス106に送信される。
【0052】
[0064] いくつかの実施形態では、要求された車両データ116は、クライアントデバイス106に送信され(230)、車両データアプリケーションを介してレビューのためにユーザに提示される(232)。要求された車両データ116の分析結果を提供するためのレポートを生成することができる。例えば、レンタカー会社は、例えば、車両位置、ガスレベル、および運転者情報を含むその車両全てのステータスに関するレポートを受信することができる。別の例では、都市交通制御部門は、異なる時間帯における市道の全ての車両のスピードに関するレポートを受信することができる。
【0053】
[0065] いくつかの実施形態では、クライアントデバイス106は、ユーザ認証情報に関連付けられた要求された車両データ116に基づいて車両制御コマンドを生成し(234)、車両制御コマンドを複数の車両のうちの1つに送信し(236)、それによって、複数の車両のうちのこの1つを、複数の車両のサブセットからリアルタイムで収集された、クライアントデバイス106がアクセス可能な車両データに基づいて制御することができるようにする。任意選択により、車両制御コマンドを受信する車両102は、要求された車両データ116のサブセットまたは全てを提供するのと同じ車両102である。要求された車両データ116の全てが車両102によって提供される場合、車両102はそれ自体のフィードバックのみに基づいて制御される。任意選択により、車両制御コマンドを受信する車両102は、要求された車両データ116のサブセットを提供する任意の車両102と別個であり、したがって、1つまたは複数の別個の車両102からのフィードバックに基づいて制御される。車両制御コマンドを受信する車両102は、別の単一の車両102または複数の他の車両102からのフィードバックに基づいて制御することができる。また、車両制御コマンドは、2つ以上の車両102に送達することができることにも留意されたい。例えば、要求された車両データ116は、レンタカー会社によって所有されるフリートにおける全てのレンタカーのEV充電レベルを含み、車両制御コマンドは、フリート内の、20%を下回る充電レベルを有する各車両102に送信される。次に、20%未満の充電レベルを有する各車両102は、車両がすぐに充電される必要があることを示すメッセージをその車両の運転者に表示するように制御される。
【0054】
[0066] 車両データ116は、コンシェルジュサービス、診断およびメンテナンス、運転者挙動分析、車両性能監視、フリート管理、ジオフェンシング、緊急道路サービス、スマートシティ経営、盗難車両追跡、および保証サービスのための多様なエンティティによって広く用いることができる。例えば、コンシェルジュサービスは、各ユーザアカウントに関連付けられた車両の位置、燃料レベル、オイルレベル、および制御コマンドに関するリアルタイム車両データに基づいて、ユーザアカウントに多数の個人向けサービス(例えば、モバイルカーディテーリング)を提案する。別の例では、診断およびメンテナンスサービスは、メンテナンスパッケージを最適化し、車両がサービス提供、修復、または部品交換される必要があるときを、車両ヘルスインジケータおよびトラブル診断コードに基づいて予測する。さらに別の例において、リアルタイム車両データにおける急速な加速または減速イベントに基づいて運転者の挙動を分析して、運転パターン強調するか、運転者の安全性を判断するか、または運転者の挙動を奨励もしくは誘導することができる。別の例において、リアルタイム車両データにおいてバッテリ寿命または次の充電ステーションまでの距離を分析することによって、電気車両の運転者体験を改善することができる。フリート管理の例では、車両位置、イグニッション状態/ステータス、および燃料レベルを用いて、車両フリートを効率的に操作および管理することができる。いくつかの実施形態では、駐車場等のジオフェンシングされた位置に車両が出入りするとき、リアルタイム車両データにおける位置情報を検出し、これを用いて車両、運転者、および位置を追跡することができる。
【0055】
[0067] 他の実施形態では、リアルタイム車両データのうちのいくつか(例えば、衝突ステータス、エアバッグが作動したイベント、急ブレーキイベント、および進行方向)を用いて、ルーティングならびに公共安全および緊急応答の計画を行い、それによって応答時間を短縮させ、物的損害を防止し、命を救うことができる。スマートシティの例では、車両位置、進行方向、およびスピードを用いて、渋滞を管理し、交通の流れを最適化し、大気汚染を低減し、公共安全を高める。リアルタイム車両データは、車両の位置、垂直傾斜、ロックステータス、および/またはドアステータスを含むことができ、これらを用いて車両が盗難されたか否かを判断することができる。使用量ベースの保険は、リアルタイム車両データ、例えば運転者の挙動、オドメータの読み値、位置、およびイグニッションオン/オフ時間を用いて作成されたユーザプロファイルに基づいて実施することができ、個々の車両の車両データを常時監視することにより、保険契約者の経験をパーソナライズし、収益を増大させ、個々の保険契約に関連付けられたコストおよびリスクを低減する。
【0056】
[0068]
図2Cは、いくつかの実施形態による、車両102、サーバシステム104、クライアントデバイス106、および車両オペレータデバイス124間のデータ通信240を示す流れ図である。車両データアプリケーションがクライアントデバイス106にインストールされる。いくつかの実施形態では、クライアントデバイス106は、レンタカー代理店の管理者等の車両フリートのオペレータによって操作されるが、他の実施形態では、クライアントデバイス106は車両の所有者または運転者によって操作される。いくつかの実施形態では、車両データアプリケーションは、フィードコンシューマAPIによって有効にされ、ユーザインタフェースを適用して、オープンソースgRPCまたは他のRPCシステムに基づいて車両102から収集された車両データを提示する。サーバシステム104は、車両データアプリケーションのプログラム、ユーザインタフェース情報、および設定をクライアントデバイス106に提供し(242)、それによってクライアントデバイス106は、車両データアプリケーションのインストールまたはロード(244)が可能となる。クライアントデバイス106は車両データアプリケーションを実行し、ユーザ認証情報を利用してユーザアカウントにアクセスする。ユーザ認証情報は、任意選択により、ユーザ名およびユーザアカウントのパスワードを含む。
【0057】
[0069] いくつかの実施形態では、車両オペレータデバイス124は、車両制御信号(すなわち、制御データフロー126Aまたは126B)を車両102に送信する(246)ことによって、車両102を制御することに関与する。いくつかの実施形態では、車両オペレータデバイス124は、車両製造者(すなわち、自動車メーカ)によって操作されるデバイスであるのに対し、他の実施形態では、フリートオペレータによって操作され、さらに他の実施形態では、車両オペレータデバイスは車両の所有者または運転者によって操作される。車両制御信号は、1つまたは複数の制御コマンド、例えば、リモートエンジン開始コマンドを含む。任意選択により、車両オペレータデバイス124は、車両制御信号を車両102に通信することとは別個に、制御データフロー128Aをサーバシステム104内の車両データフィードサーバ110に直接報告する(248)。任意選択により、車両102は、車両オペレータデバイス124から直接または間接的に車両制御信号を受信すると、制御データフロー128Bを車両データフィードサーバ110に報告する(250)。
【0058】
[0070] 車両102は、限定ではないが、オドメータ、スピードメータ、大容量エアフローセンサ(MAF)、エンジンスピードセンサ、酸素センサ、分岐管絶対圧力センサ、スパークノックセンサ、燃料温度センサ、電圧センサ、スロットルポジションセンサ、およびタイヤ圧力監視システム(TPMS)を含む複数の内蔵センサを有する。車両102の内蔵センサは、車両102のリアルタイム車両データ(車両テレメトリデータとも呼ばれる)を捕捉し(252)、補足された車両データをリアルタイム車両データフロー112においてサブミットするように構成される。リアルタイム車両データフロー112は、少なくとも車両テレメトリデータを含む。いくつかの実施形態では、リアルタイム車両データフロー112は、それぞれの一意のフロー識別子に関連付けられる。車両102は、一意の車両識別子(例えば、VIN)を有することができ、リアルタイム車両データフロー112は、車両102の一意の車両識別子によって車両102に関連付けられる。結果として、サーバシステム104は、車両102からのリアルタイム車両データフロー112を、任意選択により車両102または車両オペレータデバイス124によって報告された制御データフロー128と共に、受信する(256)。
【0059】
[0071] いくつかの実施形態では、車両102は、対応する車両テレメトリデータがその内臓センサによって捕捉された直後に車両データフロー112および制御データフロー128を報告する。車両テレメトリデータは、任意選択により、データイベント(例えば、ブレーキイベント、車の衝突、ハンドルからの転回制御)の時点において、またはデータイベントがないときに(例えば、周期的に)、内蔵センサによって捕捉される。1つまたは複数の車両テレメトリデータ項目は、同じデータイベントに関連付けることができ、データメッセージにおいて一緒に車両データフィードサーバ110に送信することができる。代替的に、いくつかの実施形態では、車両102は、車両テレメトリデータがその内蔵センサによって捕捉された直後に車両テレメトリデータを報告しない。代わりに、車両102は、車両テレメトリデータのバッチを捕捉およびキャッシュし、周期的に、所定のスケジュールに従って、ある特定のデータ量が収集された後、所定のデータイベントに応答して、または要求時に、車両テレメトリデータのバッチを送信する。
【0060】
[0072] いくつかの実施形態では、リアルタイム車両データフロー112は、複数の車両データシャードのそれぞれの車両データシャードに統合(すなわち、グループ化)される(260)。それぞれの車両データシャードは、データストレージ規則に従って、車両102(例えば、一意の車両識別子によって表される)に関連付けて車両データベースに記憶される。いくつかの状況において、車両データベース(
図9の942)は、複数の車両データシャードを記憶する。車両102のリアルタイム車両データフロー112に関連付けられたそれぞれの車両データシャードは、これらの車両データシャードの負荷の平衡をとるために複数の車両データシャードから選択される。例えば、リアルタイム車両データフロー112が最初にサーバシステム104において受信されるとき、サーバシステム104は、車両データフロー112の流量および/または1つもしくは複数の車両データシャードのサイズを決定し、車両データフロー112を、1つまたは複数の車両データシャードのうち最も小さなサイズを有するそれぞれの車両データシャードに関連付ける。
【0061】
[0073] リアルタイム車両データフロー112がサーバシステム104によって収集および記憶されている間、クライアントデバイス106は、データフロー112の収集と干渉することなく、対応するユーザアカウントのユーザ認証情報と共に車両データの要求114を送信する(262)。要求は、要求された車両データを選択するための1つまたは複数の判断基準を指定する。要求114に応答して、サーバシステム104は、車両データ選択判断基準に従って、車両データベースに記憶された複数の車両データシャードから、要求された車両データを抽出し(264)、要求された車両データが、クライアントデバイス106がユーザ認証情報に基づいてアクセス権を有するという判断に従って抽出される。抽出された後、要求された車両データが要求側のクライアントデバイス106に提供される(268)(ユーザ認証情報がマッチし、判断基準に関連付けられたデータが利用可能であると仮定する)。
【0062】
[0074] いくつかの実施形態では、補足データ項目260を、データ通信240の異なる段階において加えるかまたは車両102に関連付けることができる。補足データ項目260の例は、車両のナンバープレート番号、集積回路カード識別子(ICCIDD)、電子シリアル番号(ESN)を含む。いくつかの実施形態では、データフロー112を統合する過程で、サーバシステム104は、リアルタイム車両データフロー112を、車両102に関連付けられた補足データ項目260で補足する(258)。これによって、補足データ項目260は、リアルタイム車両データフロー112と共にサーバシステム104の車両データベースに記憶される。代替的に、いくつかの実施形態では、サーバシステム104は、要求114に応答して補足データ項目260を提供する。いくつかの実施形態では、要求された車両データ116における各データ項目は、補足データ項目260で補足される。いくつかの実施形態では、補足データ項目260は、サーバシステム104においてそれぞれのリアルタイム車両データフロー112に関連付けられて記憶されていないが、要求された車両データ116におけるそれぞれのデータ項目と併せてクライアントデバイス106に送信される。
【0063】
[0075] いくつかの実施形態では、要求された車両データ116は、クライアントデバイス106に送信され(268)、車両データアプリケーションを介してレビューのためにユーザに提示される(270)。要求された車両データ116の分析結果を提供するためのレポートを生成することができる。例えば、レンタカー会社は、例えば、車両位置、ガスレベル、および運転者情報を含むその車両全てのステータスに関するレポートを受信することができる。別の例では、都市交通制御部門は、異なる時点における市道の全ての車両のスピードに関するレポートを受信することができる。
【0064】
[0076] いくつかの実施形態では、クライアントデバイス106は、車両データ116に基づいて車両制御コマンドを生成し(272)、車両制御コマンドを複数の車両のうちの1つに送信し(274)、それによって、複数の車両のうちのこの1つを、複数の車両のサブセットからリアルタイムで収集された、車両データを選択するための判断基準に適合する車両データに基づいて制御することができるようにする。任意選択により、車両制御コマンドを受信する車両102は、要求された車両データ116のサブセットまたは全てを提供するのと同じ車両102である。要求された車両データ116の全てが車両102によって提供される場合、車両102はそれ自体のフィードバックのみに基づいて制御される。任意選択により、車両制御コマンドを受信する車両102は、要求された車両データ116のサブセットを提供する任意の車両102と別個であり、したがって、1つまたは複数の別個の車両102からのフィードバックに基づいて制御される。車両制御コマンドを受信する車両102は、別の単一の車両102または複数の他の車両102からのフィードバックに基づいて制御することができる。また、車両制御コマンドは、2つ以上の車両102に送達することができることにも留意されたい。例えば、要求された車両データ116は、レンタカー会社によって所有されるフリートにおける全てのレンタカーのEV充電レベルを含み、車両制御コマンドは、フリート内の、20%を下回る充電レベルを有する各車両102に送信される。次に、20%未満の充電レベルを有する各車両102は、車両がすぐに充電される必要があることを示すメッセージを運転者に表示するように制御される。
【0065】
[0077] 車両データ116は、コンシェルジュサービス、診断およびメンテナンス、運転者挙動分析、車両性能監視、フリート管理、ジオフェンシング、緊急道路サービス、スマートシティ経営、盗難車両追跡および保証サービスのための多様なエンティティによって広く用いることができる。例えば、コンシェルジュサービスは、各ユーザアカウントに関連付けられた車両の位置、燃料レベル、オイルレベルおよび制御コマンドに関するリアルタイム車両データに基づいて、ユーザアカウントに多数の個人向けサービス(例えば、モバイルカーディテーリング)を提案する。別の例では、診断およびメンテナンスサービスは、メンテナンスパッケージを最適化し、車両がサービス提供、修復または部品交換される必要があるときを、車両ヘルスインジケータおよびトラブル診断コードに基づいて予測する。さらに別の例において、リアルタイム車両データにおける急速な加速または減速イベントに基づいて運転者の挙動を分析して、運転パターン強調するか、運転者の安全性を判断するか、または運転者の挙動を奨励もしくは誘導することができる。別の例において、リアルタイム車両データにおいてバッテリ寿命または次の充電ステーションまでの距離を分析することによって、電気車両の運転者体験を改善することができる。フリート管理の例では、車両位置、イグニッション状態/ステータス、および燃料レベルを用いて、車両フリートを効率的に操作および管理することができる。いくつかの実施形態では、駐車場等のジオフェンシングされた位置に車両が出入りするとき、リアルタイム車両データにおける位置情報を検出し、これを用いて車両、運転者および位置を追跡することができる。
【0066】
[0078] 他の実施形態では、リアルタイム車両データのうちのいくつか(例えば、衝突ステータス、エアバッグが作動したイベント、急ブレーキイベント、および進行方向)を用いて、ルーティングならびに公共安全および緊急応答の計画を行い、それによって応答時間を短縮させ、物的損害を防止し、命を救うことができる。スマートシティの例では、車両位置、進行方向、およびスピードを用いて、渋滞を管理し、交通の流れを最適化し、大気汚染を低減し、公共安全を高める。リアルタイム車両データは、車両の位置、垂直傾斜、ロックステータス、および/またはドアステータスを含むことができ、これらを用いて車両が盗難されたか否かを判断することができる。使用量ベースの保険は、リアルタイム車両データ、例えば運転者の挙動、オドメータの読み値、位置、およびイグニッションオン/オフ時間を用いて作成されたユーザプロファイルに基づいて実施することができ、個々の車両の車両データを常時監視することにより、保険契約者の経験をパーソナライズし、収益を増大させ、個々の保険契約に関連付けられたコストおよびリスクを低減する。
【0067】
[0079]
図3は、いくつかの実施形態による、複数のリアルタイム車両データフロー112が編成される複数の車両データシャード300の図である。車両102からリアルタイム車両データフロー112を収集した後、車両データフィードサーバ110は、これらのデータフロー112を複数の車両データシャード300にグループ化することによってこれらを統合し、複数の車両データシャード300は、任意選択によりサーバシステム104の車両データベースに記憶される。いくつかの実施形態では、車両データフィードサーバ110はまた、複数の車両オペレータデバイス124および/または車両102から制御データフロー128を収集し、制御データフロー128を、リアルタイム車両データフロー112と併せて車両データシャード300にグループ化する。クライアントデバイス106のユーザから車両データ要求114を受信する前、リアルタイム車両データフロー112を収集している間、車両データフィードサーバ110は、複数の車両データシャード30のサブセットを、ユーザに関連付けられたユーザ認証情報のアクセスレベルに基づいて、このユーザ認証情報に関連付ける。いくつかの実施形態では、ユーザ認証情報を車両データの情報(例えば、車両データを含む車両データシャード300のシャード識別情報)に関連付けるためにハッシュ関数が適用される。車両データ要求114の受信時に、ユーザ認証情報に関連付けられた要求された車両データ(例えば、複数の車両データシャード30のサブセット)が抽出され、車両データ要求114に応答して実質的にリアルタイムのデータフィード116において要求側のクライアントデバイス106に送信される。
【0068】
[0080] いくつかの実施形態では、サーバシステム104は、所定の数の車両データシャード300(例えば、24個の車両データシャード)を記憶する。各リアルタイム車両データフロー112は、所定の数の車両データシャード300のそれぞれ1つにおいて完全にグループ化される。例えば、各リアルタイム車両データフロー112は、一意のフロー識別情報、または対応する車両102の一意の車両識別情報に関連付けられる。一意のフローまたは車両識別情報に基づいて単一のそれぞれの車両データシャードに各リアルタイム車両データフロー112を割り当てるためにハッシュ関数が適用され、それによって、対応する車両102に関連するそれぞれの車両データフローにおける全てのデータ項目が、それぞれの車両データシャード内に統合される。任意選択により、各車両データシャード300は、無制限の数の車両データフロー112をグループ化することができる。いくつかの実施形態では、リアルタイム車両データフロー112はランダムにグループ化され、すなわち、車両データシャード300にランダムに割り当てられる。いくつかの実施形態では、リアルタイム車両データフロー112は、対応する車両102が属するグループに基づいてグループ化される。例えば、同じメーカの車両102(例えば、全てのフォード車両)のリアルタイム車両データフロー112が、同じ車両データシャード300に統合される。別の例において、同じレンタカー会社(例えば、Avis)によって所有されている車両102のリアルタイム車両データフロー112が統合され、同じ車両データシャード300にされる。代替的に、いくつかの実施形態では、車両データフィードサーバ110は、最初に各リアルタイム車両データフロー112を受信するとき、所定の数の車両データシャード300から、これらの車両データシャード300の負荷に基づいてそれぞれの車両データシャード300を選択し、それによって、これらの車両データシャード300の負荷の平衡をとる。例えば、それぞれのリアルタイム車両データフロー112は、データフローの最も小さな負荷を有する個々の車両データシャード300に、または残りの車両データシャード300と比較してデータフローのより小さな負荷を有する車両データシャード300のサブセットのうちの1つに割り当てられる。
【0069】
[0081] いくつかの実施形態では、各リアルタイム車両データフロー112は、制御イベントデータ、制御コマンド、車両対デバイス結合イベントデータ、センサ読み値、およびそれぞれの車両102に関連付けられたログデータのうちの1つまたは複数をさらに含む。リアルタイム車両データフロー112は、それぞれの一意のフロー識別子によって識別することができる。例えば、一意のフロー識別子は、シリアル番号、例えば、12345678-910-111201314-151617181920を含むか、または完全修飾フロー名、例えば、aui:flow:feed/somevendor/someregion-fullを含む。各リアルタイム車両データフロー112は、対応する車両102から個々のメッセージとしてまたはバッチで順次受信された複数のデータメッセージを含むことができ、各メッセージは単一のデータ項目302または複数のデータ項目302を含む。また、複数の車両102の各々は、一意の車両識別子(例えば、それぞれの車両102のVIN)を有することができ、リアルタイム車両データフロー112は、それぞれの車両102の一意の車両識別子によってそれぞれの車両102に関連付けられる。いくつかの実施形態では、複数のリアルタイム車両データフロー112が複数の車両データシャード300にグループ化されるとき、複数のリアルタイム車両データフロー112の各データ項目は、共通フォーマットに従って、複数の車両データシャード300のそれぞれのデータ項目302に変換される。
【0070】
[0082] 複数の車両データシャード300は、所定のデータストレージ規則に従って車両データベースに記憶することができることに留意されたい。各リアルタイム車両データフロー112は、任意選択により、それぞれのデータストレージ規則を有する。例えば、データ項目302は、車両データベースに7日を超えて記憶することができず、7日間の期限が切れた後はパージされなくてはならない。第1のタイプのデータ項目302は、第2のタイプのデータ項目302を上回る優先度を有する場合がある。第1のリアルタイム車両データフロー112のデータ項目302は、第2のリアルタイム車両データフロー112のデータ項目302を上回る優先度を有する場合がある。
【0071】
[0083] いくつかの実施形態では、各車両データシャードについて、サーバシステム104によって受信されたリアルタイム車両データフロー112のサブセットが、時間的順序に従って順次にそれぞれの車両データシャードにグループ化される。言い換えると、リアルタイム車両データフロー112のサブセットがグループ化されるとき、リアルタイム車両データフロー112のデータ項目302は互いに混合され、時間的順序に従って順に配列される。各データ項目302は、データイベント(例えば、エンジンを始動する制御コマンドの受信)に関連付けることができ、データイベントに関連付けられたタイムスタンプおよび1つまたは複数のセンサ読み値(例えば、酸素センサ、オドメータ、およびタイヤ圧センサからの読み値)を含むことができる。したがって、この例では、異なる車両102から到来するデータ項目302を、これらの車両102のデータイベントに関連付けられたそれらのタイムスタンプに従って各車両データシャード300において編成することができる。データイベントの時間的順序に関するさらなる詳細が、
図4を参照して以下に論じられる。
【0072】
[0084] 代替的に、いくつかの実施形態では、各車両データシャードについて、サーバシステム104によって受信されたリアルタイム車両データフロー112のサブセットがそれぞれの車両データシャードに順次グループ化され、個々のデータフローによって編成される。各リアルタイム車両データフロー112のデータ項目は、共にサーバシステム104の車両データベースに記憶される。サーバシステム104は、クライアントデバイス106から現在の要求を受信し、現在の要求に応答して、複数の車両データシャードにおける(例えば、車両データシャード300Cにおける)1つまたは複数の参照ポインタ306を識別する。1つまたは複数の参照ポインタ306の前に捕捉または収集されたデータ項目は、同じクライアントデバイス106から現在の要求の前に受信された以前の要求に応答して、ユーザ認証情報に関連付けられた車両データを提供するように構成される。1つまたは複数の参照ポインタ306の後に捕捉または収集されたデータ項目は、現在の要求に応答して、ユーザ認証情報に関連付けられた車両データを提供するように構成される。
【0073】
[0085] いくつかの実施形態では、複数の車両データシャード300は、2つ以上のクライアントデバイス106に提供される。第1のクライアントデバイス106は、第1の車両データの第1の要求を作成し、第1の車両データは、第1の要求に応答して第1の車両データシャード300Aから抽出される。車両データフィードサーバ110はまた、第2のクライアントデバイス106の第2のユーザから、第2のユーザ認証情報と、第2の車両データの第2の要求とを受信する。リアルタイム車両データフロー112を受信している間、車両データフィードサーバ110は、任意選択により、第2のユーザの第2のアクセスレベルに基づいて、例えば、ハッシュ関数を用いて、または第2の車両データをフラグでマーキングすることによって、リアルタイム車両データフロー112における第2の車両データを第2のユーザ認証情報に関連付ける。第2の要求に応答して、第1の要求とは独立して、車両データフィードサーバ110は、第2のユーザが、第2のユーザ認証情報に関連付けられた、複数のリアルタイム車両データフローの第2のサブセットを含む第2の車両データにアクセスする権限を有するか否かを判断する。第2のユーザが第2のユーザ認証情報に関連付けられた第2の車両データにアクセスする権限を有するという判断に従って、サーバシステム104は、第2の車両データシャード300Bから、複数のリアルタイム車両データフロー112の第2のサブセットを含む第2の車両データを抽出し、第2の車両データを、第2の実質的にリアルタイムのデータフィードとして、1つまたは複数の通信ネットワーク108を介して第2のクライアントデバイス106に転送する。第2の車両データは、第1の車両データシャード300Aから抽出されている第1の車両データとは独立して、第2の車両データシャード300Bから抽出される。
【0074】
[0086] さらに、いくつかの実施形態では、2つの車両データが2つの別個のクライアントデバイス106によって要求されるとき、これらの2つの車両データは、任意選択により、同じ車両データシャード300によって、または別個の車両シャード300によって提供される。第1および第2のクライアントデバイス106からの第1および第2の要求を伴う上記の実施形態では、第1の車両データは第2の車両データと異なる。第1および第2の車両データは、スレッド1内の同じ車両データシャード300Aから到来することができ、第1および第2の要求はスレッド1において順次処理される。第1および第2の車両データは、それぞれ2つの車両データシャード300Aおよび300Bから到来することができる。いくつかの状況において、第1および第2の要求は、サーバシステム104によって、同時に、ただし2つの別個のスレッド304Aおよび304Bにおいて処理される。いくつかの状況において、第1および第2の要求は、2つのスレッド304Aおよび304Bにおいて順次処理される。第1の要求に関連付けられた第1のスレッド304Aは第1の車両データシャード300Aを用い、第1の要求に関連付けられた第2のスレッド304Bは第2の車両データシャード300Bを用いる。任意選択により、要求に関連付けられたスレッド(例えば、304B)は、2つ以上の車両データシャード(例えば、300Bおよび300C)を伴い、2つ以上の車両データシャードから、要求された車両データを抽出する。
【0075】
[0087] 一般的に、シャード300は、各スレッドがシャード300のサブセット(例えば、1つのシャード300)から独立して消費している状態で複数のスレッド304Aおよび304Bを起動することによって、高度にスケーリング可能なフィード消費を可能にする。フローは特定のレンタルフリートからのデータを含む場合があるが、シャード300は、小さな数の車両102からのデータを表し、特定の1つの車両102についての全てのデータが常に同じシャード300内にある。シャード300に存在する車両102またはデバイス124の数は潜在的に無限である。参照ポインタは、フローストリーム内のシャードの集合における一連のデータ項目の中の、シャード内の単一のデータ項目へのブックマークポインタである。参照ポインタは、いずれのデータ項目が既に処理されているかを追跡するのに用いられ、既に扱われたデータを繰り返すことなく、または新たなデータを誤ってスキップすることなく、処理を再開することを可能にするためのブックマークとしての役割を果たす。シャード識別子および参照ポインタは、クライアントによるデータの非透過的ブロブ(opaque blob)として扱われる。シャード300のデータイベント(フィードイベントとも呼ばれる)は、車両102および接続されたデバイス124によって生成される情報を保有するデータオブジェクトである。情報は、車両テレメトリ、無線(OTA)イベント、コマンドおよび制御イベント、ならびに車両対デバイス結合イベントを含むことができる。
【0076】
[0088]
図4は、いくつかの実施形態による、時間的順序に従って順次データ項目を編成する例示的な車両データシャード400である。車両データシャード400のデータ項目は、車両102に対応するリアルタイム車両データフロー112から収集される。各リアルタイム車両データフロー112は、対応する車両102から個々のメッセージとしてまたはバッチで順次受信された複数のデータメッセージを含むことができ、各メッセージは単一のデータ項目402または複数のデータ項目402を含む。各データ項目302は、データイベント(例えば、エンジンの始動の制御コマンドの受信)に関連付けられ、データイベントに関連付けられたタイムスタンプおよび1つまたは複数のセンサ読み値(例えば、酸素センサ、オドメータ、およびタイヤ圧センサからの読み値)を含む。任意選択により、2つ以上のデータ項目302が単一のデータイベントおよび異なるセンサからのレコード読み値に関連付けられる。
【0077】
[0089] いくつかの状況において、各車両102は、それぞれの車両102がデータ項目402を捕捉すると直ぐにデータ項目402を報告し、各データ項目は、データ捕捉時刻TDCと、データ捕捉時刻と実質的に同時のデータ報告時刻TDRとを有する。いくつかの状況において、各車両102は、データ項目402を捕捉し、データ項目402の報告をバッチで報告するために、その報告を遅延させる。各データ項目は、データ捕捉時刻TDCと、データ捕捉時刻TDCに続くデータ報告時刻TDRとを有する。いくつかの実施形態では、異なる車両102によって提供されるリアルタイム車両データフロー112のデータ項目302は、車両データシャード400において互いに混合され、時間的順序、例えばそれぞれの捕捉時刻TDCに従って順に並べられる。例において、第1の車両データフロー112の3つのデータ項目402A、402Bおよび402Cが、3つのデータイベントの捕捉時刻TDC1、TDC3およびTDC4に基づいて順に並べられる。第1の車両データフロー112の3つのデータ項目402A、402Bおよび402Cは、第2の車両の第2の車両データフロー112から受信した2つのデータ項目402Dおよび402E、ならびに第3の車両の第3の車両データフロー112から受信したデータ項目402Fと干渉する。データ項目402A~402Fは、対応する捕捉時刻TDCに従って編成される。
【0078】
[0090] いくつかの実施形態では、サーバシステム104は、クライアントデバイス106から現在の要求を受信し、現在の要求に応答して、時間的位置に対応する、複数の車両データシャードにおける(より詳細には、車両データシャード400における)参照ポインタ404を識別する。時間的位置の前に捕捉または収集されたリアルタイム車両データフロー112は、以前の要求に応答して、車両データを提供するように構成される。以前の要求は、同じクライアントデバイス106から、現在の要求の前に受信され、車両データを選択するための同じアクセスレベルに対応する。時間的位置の後に捕捉または収集されたリアルタイム車両データフロー112は、現在の要求に応答して、車両データを提供するように構成される。
【0079】
[0091]
図5は、いくつかの実施形態による、ユーザ認証情報に関連付けられたアクセスレベルによって制御される例示的な車両データ通信プロセス500の流れ図である。サーバシステム104において収集および記憶された複数のリアルタイム車両データフロー112は、サーバシステム104が車両データ要求114を受信するか否かとは独立して、それらの関連付けられたアクセスレベルに従って、異なるユーザのユーザアカウントまたはユーザ認証情報に関連付けられている。車両データ要求114に応答して、サーバシステム104は、2つのレベルのタップによってデータソースにより提供されるデータ項目のフローを制御して、データ項目から、要求された車両データを抽出する。データ項目502を提供するデータソースは、1つまたは複数の通信ネットワーク108を介して複数の車両102から受信した複数のリアルタイム車両データフロー112、またはリアルタイム車両データフロー112から統合された複数の車両データシャード300を含む。2つのレベルのタップは、車両データ要求114を発行するクライアントデバイス106に関連付けられたアクセスレベルに関連する第1のタップ504を含み、第2のタップ506は、要求された車両データ116をさらに選択するための所定のデータフィード判断基準に対応する。これらの手段によって、第1のタップ504および第2のタップ506は、ユーザ認証情報に関連付けられたリアルタイム車両データフロー112のサブセットの、関連付けられたユーザアカウントへの送達を制御し、より有意味で具体的な車両情報、例えば、VIN、スピード、およびオドメータを生成し、結果として、新たな統合出力フロー(すなわち、
図1Aおよび
図1Bにおける実質的にリアルタイムのデータフロー116)が生じる。これらのタップおよび対応するフローは、車両データ通信プロセス500に示すように、有向非巡回グラフ、すなわちトポロジに表される。
【0080】
[0092] クライアントデバイス106は、ウェブブラウザまたは専用車両データアプリケーションを有し、ユーザ120はクライアントデバイス106においてユーザアカウントにログオンし、ウェブブラウザまたは専用車両データアプリケーションを介して車両データを要求する。クライアントデバイス106に関連付けられたアクセスレベルは、ユーザアカウントについて決定される。ユーザアカウントは、ユーザ認証情報、例えば、ユーザ名と、ユーザアカウントのパスワードとに対応する。ユーザ認証情報を受信すると、サーバシステム104は、データ項目502に対するクライアントデバイス106のアクセスレベルを決定する。したがって、第1のタップ504は、クライアントデバイス106によって提供されるユーザ認証情報に基づいて、クライアントデバイス106がアクセス可能なデータ項目502のサブセットを識別する。
【0081】
[0093] 例として、ユーザ認証情報は、米国のFord Focus車のセットの車両データをレビューするためのアクセスレベルを有するレンタカー会社に関連付けられる。Ford Focus車のセットにおけるいくつかの車はレンタカー会社によって所有されている。Ford Focus車のセットにおける他の車は、レンタカー会社によって所有されていないが、対応する車両データは、商業契約に基づいてレンタカー会社に対しオープンである。結果として、第1のタップ504によって制御されるデータ項目502のサブセットは、Ford Focus車のセットにおける全ての車によって提供されるリアルタイム車両データフロー112を含み、レンタカー会社は、自社のFord Focus車および所有していないいくつかのFord Focus車の両方の車両データを用いることができる。
【0082】
[0094] 要求された車両データ116は、第2のタップ506が適用された後、データ項目502のサブセットから識別される。ユーザ認証情報に関連付けられたユーザは、例えば、レンタカー会社のフリートにおける全てのFord Focus車における燃料レベルの車両データの選択について、所定のデータフィード判断基準に関連付けられている。選択された車両データは、サーバシステム104がクライアントデバイス106から任意の要求を受信する前に、収集されたデータ項目152において識別されている。例として、レンタカー会社に関連付けられたクライアントデバイス106は、要求114を送信する。燃料レベルに関連しないデータ項目およびレンタカー会社によって所有されていないFord Focus車に関連するデータ項目は、第2のタップ506によってフィルタリング除去され、レンタカー会社のフリートにおける全てのFord Focus車における燃料レベルに関連する識別されたデータ項目のみが、車両データ要求114に応答して、リアルタイムデータフィード116としてクライアントデバイス106に提供される。いくつかの実施形態では、要求された車両データ116は記憶され、同じクライアントグループ内の1つまたは複数の代替のユーザアカウント508が、要求された車両データ116をレビューすることを許可される。さらに、いくつかの実施形態では、クライアントデバイス106は、実質的にリアルタイムのデータフィードにおける車両データ116に局所的にデータフィルタを適用して、車両データ116のサブセットを識別するように構成される。
【0083】
[0095]
図6Aは、いくつかの実施形態による、車両データ通信プロセスを管理するように構成された例示的な車両データフィードサーバ110のブロック図であり、
図6Bは、いくつかの実施形態による、車両データを通信する過程で異なるユーザアカウントの車両データ要求に関連付けられたアクセスレベルおよび所定のデータフィード判断基準を管理するように構成された車両データフィードサーバ110のコーディネータモジュール612のブロック図である。車両データフィードサーバ110は、永久ストレージ602と、フローおよびタップメタデータストレージ604と、管理者コンポーネント606と、リモートプロシージャコール(RPC)エンドポイント608と、フローマネージャ610と、コーディネータ612とを含む。
【0084】
[0096] 永久ストレージ602は、リアルタイム車両データフロー112を記憶する車両データベースを含む。いくつかの実施形態では、リアルタイム車両データフロー112は、複数の車両データシャード300に統合される。いくつかの実施形態では、リアルタイム車両データフロー112のデータ項目は、時間的順序に従って(すなわち、時系列で)車両データベースにおいて編成される。いくつかの実施形態では、車両データベースに記憶されるリアルタイム車両データフロー112は、所定の寿命(例えば、7日)を有し、寿命後に、リアルタイム車両データフロー112は削除される。所定の寿命は、それぞれの車両102の各個々の車両データフロー112について構成することができる。
【0085】
[0097] 逆に、フローおよびタップメタデータストレージ604は、タップおよびフロー構成メタデータを記憶するように構成される。いくつかの実施形態では、タップおよびフロー構成メタデータは、ストレージ604内に無期限に記憶され、そこからパージされることはない。いくつかの実施形態では、タップおよびフロー構成メタデータは、ストレージ604がフルの場合にのみストレージ604からパージされる。任意選択により、より早い構成メタデータが、より後の構成メタデータよりも先にパージされる。いくつかの実施形態では、複数のリアルタイム車両データフロー112は、車両データフィードサーバ110の車両データベースに、第1の期間(例えば、7日)にわたって記憶される。タップおよびフロー構成メタデータ622は、複数のリアルタイム車両データフロー112、およびクライアントデバイス106から受信した車両データ要求114に対応し、第1の期間よりも長い第2の期間にわたってフローおよびタップメタデータストレージ604に記憶される。例えば、構成メタデータ622は、無制限の期間にわたってストレージ604に記憶される。
【0086】
[0098] 管理者コンポーネント606は、タップ(例えば、
図5におけるタップ504および506)、およびデータ項目502の処理のプロセスフローを管理する。これは、タップの作成、削除および更新、ならびにデータ項目502の対応するプロセスフローの作成および削除を含む。
【0087】
[0099] RPCエンドポイント608は、車両データフィードサーバ110に車両データ要求114を発行しているRPCクライアント(例えば、クライアントデバイス106またはユーザアカウント)を認証する。RPCクライアント106は、異なる時点(例えば、最も早いタイムスタンプ、最も遅いタイムスタンプ、または特定の日)、または参照ポインタ306もしくは404において開始するデータのストリームを要求することができる。当然の結果として、車両データアプリケーションは、RPCクライアント106が、車両データ116の寿命の間、所望の回数、要求された車両データ116をレビューすることを可能にする。いくつかの実施態様では、フィードソフトウェア開発キット(SDK)がRPCエンドポイント608とインタラクトするように適用される。任意選択により、RPCエンドポイント608はGOOGLE RPCシステムに基づく。
【0088】
[00100] フローマネージャ610は、クライアントデバイス106のアクセスレベル、および車両データを選択するための判断基準を含む要求に基づいて、車両データ通信プロセス500を管理し、フローおよびタップメタデータストレージ604におけるタップおよびフロー構成メタデータ622を維持する。
【0089】
[00101] コーディネータ612は、フローマネージャ510から、またはフローおよびタップメタデータストレージ604からタップおよびフロー構成メタデータ622を取得し、車両データ要求114に応答するように処理ユニットをプロビジョニングする。いくつかの実施形態では、コーディネータ612は、タップの状態を監視するためのタップモニタ618と、タップのための配置戦略を提供するためのスケジューラ620とを含む。コーディネータ612は、環境に適応するための複数のプロビジョニング戦略を有する。タップは、コーディネータ612内で独立したプロセスとして、または独立した処理モジュールにおいて実行することができる。いくつかの実施形態では、コーディネータ612は、結果としてタップの作成または削除をもたらす任意のアクティビティを定期的に監視する。例として、各ユーザアカウントは、例えば、アクセスレベルまたは所定のデータフィード判断基準をマーキングすることによって、車両102から収集されたリアルタイム車両データフロー112を前処理するためにサーバシステム104によって適用されるアクセスレベルまたは所定のデータフィード判断基準に関連付けられる。ユーザ認証情報を車両データの情報(例えば、車両データフロー112または車両データを含むシャード300の識別情報)に関連付けるために、ハッシュテーブルまたは関数を作成することができる。ユーザアカウントから要求を受信すると、コーディネータ612は、ユーザアカウントのユーザ認証情報に関連付けられたアクセスレベルを検証し、タップおよびフロー構成メタデータ622に従って確立された車両データ通信プロセス500においてリアルタイム車両データフロー112から前処理された車両データを抽出するように、処理ユニットをプロビジョニングする。
【0090】
[00102] いくつかの実施形態では、車両データフィードサーバ110は、ユーザインタフェースの表示を提供し、可能にするためのユーザインタフェースモジュール614をさらに含み、かかるユーザインタフェースにおいて、1つまたは複数のクライアントデバイス106のための設定、要求された車両データ、および/または他のデータを、クライアントデバイス106を介して構成および/またはレビューすることができる。いくつかの実施形態では、車両データフィードサーバ110は、サーバ側の車両データアプリケーションモジュール616をさらに含み、かかる車両データアプリケーションモジュール616は、車両データ要求114を受信し、要求された車両データ116を受信し、必要な場合、車両制御コマンド118を発行するための、クライアントデバイス106において実施されるウェブブラウザおよび専用車両データアプリケーションに関連付けられたサーバ側の機能を可能にする。
【0091】
[00103]
図7は、いくつかの実施形態による、車両データシャード300に基づく別の例示的な車両データ通信プロセス700の流れ図である。車両データ通信プロセス700は、車両データ要求114に応答して複数のタップによって処理されるデータ項目のフローを含む。車両データ要求114は、複数の車両データシャード300からの車両データを要求するために、クライアントデバイス106によって発行される。複数の車両データシャード300は、複数のシャード識別子によって識別される。車両データ要求114を受信する前に、リアルタイム車両データフロー112を収集しながら、サーバシステム114はユーザアカウントに関連付けられたアクセスレベルを識別する。いくつかの実施態様では、ユーザアカウントのユーザ認証情報と、車両データシャード300のサブセットを識別するシャード識別子のサブセットとの間に、ハッシュ関数が確立される。車両データシャード300のサブセットは、ユーザアカウントのアクセスレベルを満たし、要求された車両データ116を含む。車両データ要求114に応答して、サーバシステム104は、例えばユーザ認証情報を用いてハッシュ関数から、車両データシャード300のサブセットに関連付けられたシャード識別子のサブセットを取得する(702)。
【0092】
[00104] 代替的に、いくつかの実施形態では、ユーザアカウントのユーザ認証情報と、リアルタイム車両データフロー112のサブセットを識別するフロー識別子のサブセットとの間に、ハッシュ関数が確立される。リアルタイム車両データフロー112のサブセットは、関連付けられたアクセスレベルに基づいてユーザアカウントがアクセス可能であり、要求された車両データ116を含む。車両データ要求114に応答して、ハッシュ関数を用いて、要求された車両データ116が抽出されるリアルタイム車両データフロー112の情報を識別する。リアルタイム車両データフロー112の情報は、任意選択により、フロー識別子のサブセット(例えば、aui:flow:feed/somevendor/someregion-full)を含む。データフローインタフェースは、リアルタイム車両データフロー112の情報を取得し、要求された車両データ116を含む車両データシャード300のサブセットに関連付けられたシャード識別子のサブセットを決定する。
【0093】
[00105] サーバシステム104は、シャード識別子のサブセットに関連付けられた車両データシャード300のサブセットにおける1つまたは複数の参照ポインタ306を識別する(704)。任意選択により、各参照ポインタ306は、以前の要求に応答して処理されたデータ項目のサブセットにおける最後のデータ項目である、シャード300のそれぞれのデータ項目を参照する。以前の要求は、車両データ要求114と同一であり、車両データ要求114の前に受信される。
【0094】
[00106] 車両データ要求114に応答して、車両データシャード300のサブセット内の参照ポインタ404に続くデータ項目が、例示的な車両データ通信プロセス500におけるタップ(例えば、アクセスレベル、車両データを選択するための判断基準)を用いて処理される。特に、データストリーム転送は、車両データ要求114の識別情報(すなわち、
図5におけるプロセスフローの名称)、シャード識別子、およびそれぞれのシャード300内のデータ項目への参照ポインタを用いてシャードごとに個々に行われる。結果として、リアルタイム車両データフロー112または車両データシャード300において識別された、要求された車両データが、リアルタイム車両データフロー112または車両データシャード300から抽出される(706)。
【0095】
[00107]
図8Aは、いくつかの実施形態による、車両データフィードサーバ110を介して車両データを通信する方法800の流れ図である。方法800は、任意選択により、非一時的コンピュータ可読ストレージ媒体に記憶され、コンピュータシステム(例えば、サーバシステム104)の1つまたは複数のプロセッサによって実行される命令によって管理される。
図8Aに示す動作の各々は、サーバシステム104のコンピュータメモリまたはコンピュータ可読ストレージ媒体(例えば、
図9におけるサーバシステム104のメモリ906)に記憶される命令に対応することができる。コンピュータ可読ストレージ媒体は、磁気または光ディスクストレージデバイス、フラッシュメモリ等のソリッドステートストレージデバイス、または他の単数もしくは複数の不揮発性メモリデバイスを含むことができる。コンピュータ可読ストレージ媒体上に記憶されたコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、または1つもしくは複数のプロセッサによって解釈される他の命令のうちの1つまたは複数を含むことができる。方法800におけるいくつかの動作は組み合わせることができ、かつ/またはいくつかの動作の順序は変更することができる。
【0096】
[00108] 車両データフィードサーバ110は、1つまたは複数の通信ネットワーク108を介して複数の車両102に結合される。車両データフィードサーバ110は、複数の認証情報と、車両データに対する関連付けられたアクセスレベルとを受信し(802)、複数の認証情報を、関連付けられたアクセスレベルと共にデータベースに記憶する(804)。いくつかの実施態様では、各認証情報について、アクセスレベルは、複数の車両102から1つまたは複数の車両を選択するのに用いられる、ユーザが定義した条件を含む。選択されると、選択された各車両102の車両データフロー112全体がそれぞれの認証情報に関連付けられ、要求時に、認証情報を有するユーザに提供されることになる。各認証情報に関連付けられたアクセスレベルは、車両102のVIN番号、車両タイプ、複数の所定のセンサデータタイプ、および複数の対応する検知閾値のうちの1つまたは複数に基づいて定義される。例えば、アクセスレベルは、50,000マイルを超えるマイレージ読み値を有する全ての赤色のフォードピックアップトラックまたは全ての日産セダンについて、ある特定の認証情報がデータへのアクセスを有することを定義する。しかしながら、アクセスレベルは、赤色の各フォードピックアップトラックの車両データフロー112における2つのタイプのデータ項目を異なる形で扱わず、例えば、それぞれの車両データフロー112におけるガス圧データを、認証情報を有するユーザに送信している間、マイレージデータを保持しない。ユーザは、車両データフロー112を受信した後、クライアントデバイス106において追加のフィルタを適用することができる。
【0097】
[00109] いくつかの実施態様では、この車両データサービスの所有者、およびこの車両データサービスのクライアントグループのユーザは、独立して、または共同で、クライアントグループ内のユーザアカウントの認証情報および関連付けられたアクセスレベルを定義する。車両データフィードサーバ110は、1つまたは複数の通信ネットワーク108を介して複数の車両102から複数のリアルタイム車両データフロー112を受信する(806)。各リアルタイム車両データフローは、それぞれの車両に関連付けられ(808)、少なくとも、それぞれの車両の車両テレメトリデータを含む。任意選択により、各リアルタイム車両データフロー112は、制御イベントデータ、制御コマンド、車両対デバイス結合イベントデータ、センサ読み値、およびそれぞれの車両102に関連付けられたログデータのうちの1つまたは複数をさらに含む。いくつかの実施形態では、各リアルタイム車両データフロー112は、それぞれの一意のフロー識別子に関連付けられる。複数の車両102の各々は、一意の車両識別子を有し、各リアルタイム車両データフローは、それぞれの車両102の一意の車両識別子によってそれぞれの車両102に関連付けられる。
【0098】
[00110] いくつかの実施態様では、次に、各認証情報について、それぞれの車両データ116(すなわち、複数のリアルタイム車両データフロー112のサブセット)が、それぞれの認証情報のアクセスレベルに従ってそれぞれの認証情報に関連付けられる(810)。したがって、各認証情報について、それぞれの認証情報を有するユーザから任意の要求が受信される前に、車両データフィードサーバ110によって車両データが条件付け(例えば、マーキング)され、車両データの要求に応答して、それぞれの認証情報に関連付けられた車両データを即座に識別し、ユーザに提供することができる。特に、各認証情報について、アクセスレベルは、複数の車両102の中から1つまたは複数の車両を選択し、選択された各車両102の車両データフロー112全体がそれぞれの認証情報に関連付けられ、要求時に、認証情報を有するユーザに提供される。いくつかの実施形態では、各認証情報に関連付けられたアクセスレベルは、リアルタイム車両データフロー112からのそれぞれの認証情報に関連付けられたそれぞれの車両データを識別するように構成され、VIN番号、車両タイプ、複数の所定のセンサデータタイプ、および複数の対応する検知閾値のうちの1つまたは複数に基づいて定義される。
【0099】
[00111] いくつかの実施形態では、複数のリアルタイム車両データフロー112は、複数の車両データシャード300に統合(812)およびグループ化される。各データフロー112は、それぞれのフロー識別情報または車両識別情報に基づいて、それぞれの車両データシャード300にグループ化することができる。それぞれのフローまたは車両識別情報に基づいてそれぞれの車両データシャード300を識別するためのハッシュ関数が適用される。データフロー112が車両データシャード300に割り当てられると、その全てのデータ項目が車両データシャード300に記憶される。したがって、データフロー112に対応する車両に関連する全てのデータ項目が、同じ車両データシャード300内に統合される。
【0100】
[00112] いくつかの状況では、複数のリアルタイム車両データフロー112の各々が、第2の補足データ項目で補足され、第2の補足データ項目およびそれぞれのリアルタイム車両データフロー112は、それぞれの車両データシャード300においてグループ化される。いくつかの実施形態では、複数のリアルタイム車両データフロー112が複数の車両データシャード300にグループ化されるとき、複数のリアルタイム車両データフローの各データ項目は、共通フォーマットに従って、複数の車両データシャードのそれぞれのデータ項目に変換される。いくつかの実施形態では、複数の車両データシャード300は所定の数の車両データシャード(例えば、24個のシャード)を含むことができ、複数のリアルタイム車両データフローの112各々は、車両データシャード300のそれぞれ1つにおいて完全にグループ化される。所定のデータストレージ規則(例えば、7日間記憶される)に従って、複数の車両データシャード300が車両データフィードサーバ110の車両データベースに記憶される。いくつかの実施形態では、各車両データシャード300について、リアルタイム車両データフロー112のサブセットが、時間的順序に従って順次にそれぞれの車両データシャード300にグループ化される。
【0101】
[00113] 車両データフィードサーバ110は、クライアントデバイス106のユーザからユーザ認証情報および車両データ要求114を受信する(814)。ユーザ認証情報に関連付けられた車両データは、複数のリアルタイム車両データフロー112から、またはデータフロー112から統合された複数の車両データシャードから識別されているため、車両データ要求は、ユーザ認証情報に関連付けられたアクセスレベルを含まない場合がある。いくつかの状況において、サーバ110によって収集された複数の車両データフローからユーザ認証情報に関連付けられた車両データを要求するための車両データ要求114が受信される。代替的に、いくつかの状況において、サーバ110によって収集されることになる複数のデータフローからの車両データを要求するための車両データ要求114が受信される。いくつかの実施形態では、クライアントデバイス106は、クライアントデバイスのユーザアカウントを介して車両データアプリケーションを実行するように構成される。ユーザアカウントはユーザ認証情報に対応し、ユーザ認証情報は、ユーザ名と、ユーザアカウントのパスワードとを含む。
【0102】
[00114] 車両データ要求114に応答して、車両データフィードサーバ110は、ユーザ認証情報に基づいて、ユーザがユーザ認証情報に関連付けられた車両データ616にアクセスする権限を有するか否かを判断する(816)。車両データは、複数のリアルタイム車両データフローのサブセットを含む。ユーザがユーザ認証情報に関連付けられた車両データにアクセスする権限を有するという判断に従って、車両データフィードサーバ110は、1つまたは複数の通信ネットワークを介して複数のリアルタイム車両データフローのサブセットをクライアントデバイス106に転送する(818)。ユーザ認証情報に関連付けられた車両データ116は、クライアントデバイス106上で実行される車両データアプリケーションを介してユーザに提示することができる。いくつかの実施形態では、ユーザ認証情報に関連付けられた車両データ116におけるデータ項目は、第1の補足データ項目で補足され、第1の補足データ項目は、ユーザ認証情報に関連付けられた車両データ116におけるそれぞれのデータ項目と併せてクライアントデバイス106に送信される。いくつかの実施形態では、クライアントデバイス106は、ユーザ認証情報に関連付けられた車両データに局所的にデータフィルタを適用して、車両データ116のサブセットを識別するように構成される。いくつかの実施形態では、クライアントデバイス106は、車両データ116に基づいて車両制御コマンド118を生成し、車両制御コマンド118を複数の車両102のうちの1つに送信するように構成され、それによって、少なくとも車両102のサブセットからリアルタイムで収集される車両データに基づいて、複数の車両102のうちの1つを制御することができるようにする。
【0103】
[00115] ユーザ認証情報に関連付けられた車両データは、リアルタイム車両データフロー112のサブセットを含む。リアルタイム車両データフロー112のサブセットの各々について、ユーザ認証情報に関連付けられたアクセスレベルに従って第2の補足データ項目が決定され、第2の捕捉データ項目は、それぞれのリアルタイム車両データフローが、ユーザ認証情報に関連付けられた車両データの一部であることを示す。例として、第2の補足データ項目は、サブセット内のそれぞれのリアルタイム車両データフロー112にアタッチされたフラグを含み、フラグは、それぞれのリアルタイム車両データフロー112がユーザ認証情報について選択された車両データの一部であることを示す。別の例として、第2の補足データ項目は、複数のユーザ認証情報の各々を、要求されるユーザ認証情報に関連付けられた車両データに対応する車両データフロー112のサブセットのそれぞれの情報と相関付けるハッシュ関数(例えば、各ユーザ認証情報を、車両データフロー112のサブセットのフロー識別子と相関付けるハッシュ関数)に対応する。
【0104】
[00116] いくつかの実施形態では、クライアントデバイス106から受信される車両データ要求114は現在の要求を含む。現在の要求に応答して、車両データフィードサーバ110は、時間的位置に対応する複数の車両データシャード300における参照ポインタ404を識別する。時間的位置の前に収集されたリアルタイム車両データフロー112は、クライアントデバイス106から受信された以前の要求に応答してユーザ認証情報に関連付けられた車両データを提供するように構成される。以前の要求は、現在の要求の前に受信される。時間的位置の後に収集されたリアルタイム車両データフロー112は、現在の要求に応答してユーザ認証情報に関連付けられた車両データを提供するように構成される。
【0105】
[00117] いくつかの実施形態では、クライアントデバイス106から受信した車両データ要求114は第1の要求を含み、要求された車両データ116は、第1の要求に応答して第1の車両データシャード300から抽出されたユーザ認証情報に関連付けられた第1の車両データを含む。車両データフィードサーバ110は、第2のクライアントデバイスの第2のユーザから、第2のユーザ認証情報と、第2の車両データの第2の要求とを受信する。リアルタイム車両データフローを収集している間、第2の車両データは、第2のユーザ認証情報に関連付けられた第2のアクセスレベルに従って、第2のユーザの第2のユーザ認証情報に関連付けておくことができる。第2の要求に応答して、第1の要求とは独立して、車両データフィードサーバ110は、第2のユーザ認証情報に基づいて、第2のユーザが第2のユーザ認証情報に関連付けられた第2の車両データにアクセスする権限を有しているか否かを判断する。第2の車両データは、複数のリアルタイム車両データフローの第2のサブセットを含む。第2のユーザが第2のユーザ認証情報に関連付けられた第2の車両データにアクセスする権限を有するという判断に従って、次に、車両データフィードサーバ110は、複数のリアルタイム車両データフローの第2のサブセットを第2のクライアントデバイスに転送する。第2の車両データは、第1の車両データシャードから抽出されている第1の車両データとは独立して、第2の車両データシャードから抽出される。いくつかの実施形態では、第1の車両データおよび第2の車両データは別個であり、任意選択により、同じ車両データシャードまたは2つの別個の車両シャードから抽出される。代替的に、いくつかの実施形態では、第1の車両データおよび第2の車両データは同一であってもよく、第1の要求および第2の要求が別個であり、互いに異なる場合であっても、同じ車両シャードから抽出されてもよい。
【0106】
[00118] 任意選択により、第1および第2の車両データシャードは同じ車両データシャードである。第1および第2のクライアントデバイスは、処理スレッドにおいて順次同じシャードから(同一または別個の)それぞれの要求された車両データを抽出することができる。任意選択により、第1および第2の車両データシャードは異なる。第1および第2の車両データシャードが同じ処理スレッドに割り当てられている場合、第1および第2のクライアントデバイスは、同じ処理スレッドにおいて順次異なる車両データシャードからそれぞれの要求された車両データを抽出することができる。第1および第2の車両データシャードが2つの別個の処理スレッドに割り当てられている場合、第1および第2のクライアントデバイスは、2つの別個の処理スレッドにおいて順次または同時に異なる車両データシャードからそれぞれの要求された車両データを抽出することができる。
【0107】
[00119] いくつかの実施形態では、複数のリアルタイム車両データフロー112は、車両データフィードサーバ110のデータベースに、第1の期間にわたって記憶される。構成メタデータが生成され、構成メタデータは、複数のリアルタイム車両データフローと、クライアントデバイスから受信した車両データ要求とに対応する。構成メタデータは、第1の期間よりも長い第2の期間にわたってデータベースに記憶される。換言すれば、構成メタデータは、より長い期間にわたって記憶され、複数のリアルタイム車両データフロー112は、構成メタデータより先に車両データベースからパージされる。
【0108】
[00120] さらに、いくつかの実施形態では、車両データフィードサーバ110は、1つまたは複数の通信ネットワーク108を介して1つまたは複数の車両オペレータデバイス124に通信可能に結合され、1つまたは複数の車両オペレータデバイス124または車両102から1つまたは複数の制御データフロー128を受信する。各制御データフローは1つまたは複数の制御コマンドを含み、各コマンドは、複数の車両のそれぞれのサブセットを制御するために、それぞれの車両オペレータデバイスによって発行される。1つまたは複数の制御データフロー128は、複数のリアルタイム車両データフロー112と統合され、複数のリアルタイム車両データフロー112と共に複数の車両データシャード300にグループ化される。
【0109】
[00121]
図2、
図5、
図7および
図8の各々における動作が説明される特定の順序は例示にすぎず、説明される順序が、動作を実行することができる唯一の順序であることを示すことは意図されないことを理解すべきである。当業者であれば、本明細書に記載のウェアハウスにおけるストレージ空間を計画する様々な方式を認識するであろう。さらに、プロセス200、500、700、および800のうちの1つに関して説明した詳細は、方法200、500、700、および800のうちの任意の他の方法に類似した方式でも適用可能であることに留意されたい。簡潔にするために、類似の詳細については繰り返さない。
【0110】
[00122]
図8Bは、いくつかの実施形態による、車両データフィードサーバ110を介して車両データを通信する方法850の流れ図である。方法850は、任意選択により、非一時的コンピュータ可読ストレージ媒体に記憶され、コンピュータシステム(例えば、サーバシステム104)の1つまたは複数のプロセッサによって実行される命令によって管理される。
図8Bに示す動作の各々は、サーバシステム104のコンピュータメモリまたはコンピュータ可読ストレージ媒体(例えば、
図9におけるサーバシステム104のメモリ906)に記憶される命令に対応することができる。コンピュータ可読ストレージ媒体は、磁気または光ディスクストレージデバイス、フラッシュメモリ等のソリッドステートストレージデバイス、または他の単数もしくは複数の不揮発性メモリデバイスを含むことができる。コンピュータ可読ストレージ媒体上に記憶されたコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、または1つもしくは複数のプロセッサによって解釈される他の命令のうちの1つまたは複数を含むことができる。方法850におけるいくつかの動作は組み合わせることができ、かつ/またはいくつかの動作の順序は変更することができる。
【0111】
[00123] 車両データフィードサーバ110は、1つまたは複数の通信ネットワーク108を介して複数の車両102に結合され、1つまたは複数の通信ネットワーク108を介して複数の車両102から複数のリアルタイム車両データフロー112を受信する(852)。各リアルタイム車両データフローは、それぞれの車両に関連付けられ(854)、少なくとも、それぞれの車両の車両テレメトリデータを含む。任意選択により、各リアルタイム車両データフロー112は、制御イベントデータ、制御コマンド、車両対デバイス結合イベントデータ、センサ読み値、およびそれぞれの車両102に関連付けられたログデータのうちの1つまたは複数をさらに含む。いくつかの実施形態では、各リアルタイム車両データフロー112は、それぞれの一意のフロー識別子に関連付けられる。複数の車両102の各々は、一意の車両識別子を有し、各リアルタイム車両データフローは、それぞれの車両102の一意の車両識別子によってそれぞれの車両102に関連付けられる。
【0112】
[00124] いくつかの実施形態では、複数のリアルタイム車両データフロー112が複数の車両データシャード300に統合(855)およびグループ化される。各データフロー112は、それぞれのフロー識別情報または車両識別情報に基づいて、それぞれの車両データシャード300にグループ化することができる。それぞれのフローまたは車両識別情報に基づいてそれぞれの車両データシャード300を識別するためのハッシュ関数が適用される。データフロー112が車両データシャード300に割り当てられると、その全てのデータ項目が車両データシャード300に記憶される。したがって、データフロー112に対応する車両に関連する全てのデータ項目が、同じ車両データシャード300内に統合される。
【0113】
[00125] いくつかの状況では、複数のリアルタイム車両データフロー112の各々が、補足データ項目で補足され、補足データ項目およびそれぞれのリアルタイム車両データフロー112は、それぞれの車両データシャード300においてグループ化される。いくつかの実施形態では、複数のリアルタイム車両データフロー112が複数の車両データシャード300にグループ化されるとき、複数のリアルタイム車両データフローの各データ項目は、共通フォーマットに従って、複数の車両データシャードのそれぞれのデータ項目に変換される。いくつかの実施形態では、複数の車両データシャード300は所定の数の車両データシャード(例えば、24個のシャード)を含み、複数のリアルタイム車両データフロー112の各々は、車両データシャード300のそれぞれ1つにおいて完全にグループ化される。所定のデータストレージ規則(例えば、7日間記憶される)に従って、複数の車両データシャード300が車両データフィードサーバ110のデータベースに記憶される。いくつかの実施形態では、各車両データシャード300について、リアルタイム車両データフロー112のサブセットが、時間的順序に従って順次にそれぞれの車両データシャード300にグループ化される。
【0114】
[00126] 車両データフィードサーバ110は、クライアントデバイス106から、ユーザ認証情報および車両データの要求114を受信し(856)、要求は、例えば複数のリアルタイム車両データフロー112から、またはデータフロー112が統合された複数の車両データシャードから、車両データを選択するための判断基準を指定する(858)。いくつかの実施形態では、クライアントデバイス106は、クライアントデバイスのユーザアカウントを介して車両データアプリケーションを実行するように構成される。ユーザアカウントはユーザ認証情報に対応し、ユーザ認証情報は、ユーザ名と、ユーザアカウントのパスワードとを含む。いくつかの実施形態では、車両データを選択するための判断基準は、VIN番号、車両タイプ、複数の所定のセンサデータタイプ、および複数の対応する検知閾値のうちの1つまたは複数に基づいて定義される。
【0115】
[00127] 複数のリアルタイム車両データフローを受信している間(860)、要求114に応答して、車両データフィードサーバ110は、ユーザ認証情報に基づいて車両データに対するアクセスレベルを決定し(862)、判断基準およびアクセスレベルに適合する車両データを抽出し(864)、車両データを、1つまたは複数の通信ネットワークを介してクライアントに実質的にリアルタイムのデータフィードとして送信する(866)。車両データ116は、クライアントデバイス106上で実行される車両データアプリケーションを介してユーザに提示することができる。いくつかの実施形態では、車両データ116におけるデータ項目は、補足データ項目で補足され、補足データ項目は、車両データ116におけるそれぞれのデータ項目と併せてクライアントデバイス106に送信される。いくつかの実施形態では、クライアントデバイス106は、車両データ116に基づいて車両制御コマンド118を生成し、車両制御コマンド118を複数の車両102のうちの1つに送信するように構成され、それによって、少なくとも車両102のサブセットからリアルタイムで収集された、車両データ116を選択するための判断基準に適合する車両データに基づいて、複数の車両102のうちの1つを制御することができるようにする。
【0116】
[00128] いくつかの実施形態では、クライアントデバイス106から受信される要求114は現在の要求を含む。現在の要求に応答して、車両データフィードサーバ110は、時間的位置に対応する複数の車両データシャード300における参照ポインタ404を識別する。時間的位置よりも前に収集されたリアルタイム車両データフロー112は、クライアントデバイス106から受信されかつ車両データを選択するための判断基準を指定する以前の要求に応答して処理される。以前の要求は、現在の要求の前に受信される。時間的位置の後に収集されたリアルタイム車両データフロー112は、現在の要求に応答して処理される。
【0117】
[00129] いくつかの実施形態では、クライアントデバイス106から受信した要求114は第1の要求を含み、要求された車両データ116は、第1の要求に応答して第1の車両データシャード300から抽出される。車両データフィードサーバ110は、第2のクライアントデバイスから、第2のユーザ認証情報と、第2の車両データの第2の要求とを受信する。第2の要求は、第2の車両データを選択するための第2の判断基準を指定する。第2の要求に応じて、第1の要求とは独立して、車両データフィードサーバ110は、第2のユーザ認証情報に基づいて第2の車両データに対する第2のアクセスレベルを決定し、第2の車両データシャードから、第2の判断基準および第2のアクセスレベルに適合する第2の車両データを抽出し、第2の車両データを、第2の実質的にリアルタイムのデータフィードとして1つまたは複数の通信ネットワークを介して第2のクライアントデバイスに送信する。第2の車両データは、第1の車両データシャードから抽出されている第1の車両データとは独立して、第2の車両データシャードから抽出される。いくつかの実施形態では、第1の車両データおよび第2の車両データは別個であり、任意選択により、同じ車両データシャードまたは2つの別個の車両シャードから抽出される。代替的に、いくつかの実施形態では、第1の車両データおよび第2の車両データは同一であってもよく、第1の要求および第2の要求が別個であり、互いに異なる場合であっても、同じ車両シャードから抽出されてもよい。
【0118】
[00130] いくつかの実施形態では、複数のリアルタイム車両データフロー112は、車両データフィードサーバ110の車両データベースに、第1の期間にわたって記憶される。構成メタデータが生成され、構成メタデータは、複数のリアルタイム車両データフローと、クライアントデバイスから受信した要求とに対応する。構成メタデータは、第1の期間よりも長い第2の期間にわたって車両データベースに記憶される。換言すれば、構成メタデータは、より長い期間にわたって記憶され、複数のリアルタイム車両データフロー112は、構成メタデータより先に車両データベースからパージされる。
【0119】
[00131] さらに、いくつかの実施形態では、車両データフィードサーバ110は、1つまたは複数の通信ネットワーク108を介して1つまたは複数の車両オペレータデバイス124に通信可能に結合され、1つまたは複数の車両オペレータデバイス124または車両102から1つまたは複数の制御データフロー128を受信する。各制御データフローは1つまたは複数の制御コマンドを含み、各コマンドは、複数の車両のそれぞれのサブセットを制御するために、それぞれの車両オペレータデバイスによって発行される。1つまたは複数の制御データフロー128は、複数のリアルタイム車両データフロー112と統合され、複数のリアルタイム車両データフロー112と共に複数の車両データシャード300にグループ化される。
【0120】
[00132]
図2、
図5、
図7および
図8の各々における動作が説明される特定の順序は例示にすぎず、説明される順序が、動作を実行することができる唯一の順序であることを示すことは意図されないことを理解すべきである。当業者であれば、本明細書に記載のウェアハウスにおけるストレージ空間を計画する様々な方式を認識するであろう。さらに、プロセス240、500、700、および850のうちの1つに関して説明した詳細は、方法240、500、700、および850のうちの任意の他の方法に類似した方式でも適用可能であることに留意されたい。簡潔にするために、類似の詳細については繰り返さない。
【0121】
[00133]
図9は、いくつかの実施形態による、車両データ共有を可能にするように構成された例示的なサーバシステム104である。サーバシステム104は、通常、1つまたは複数の処理ユニット(CPU)902と、1つまたは複数のネットワークインタフェース904と、メモリ906と、これらのコンポーネント(場合によってはチップセットと呼ばれる)を相互接続するための1つまたは複数の通信バス908とを含む。サーバシステム104は、キーボード、マウス、音声コマンド入力ユニットもしくはマイクロフォン、タッチスクリーンディスプレイ、タッチセンサ式入力パッド、ジェスチャー捕捉カメラ、または他の入力ボタンもしくは制御部等の、ユーザ入力を容易にする1つまたは複数の入力デバイス910を含むことができる。サーバシステム104は、1つもしくは複数のスピーカおよび/または1つもしくは複数の視覚ディスプレイを含む、ユーザインタフェースおよび表示コンテンツの提示を可能にする1つまたは複数の出力デバイス912も含むことができる。
【0122】
[00134] メモリ906は、DRAM、SRAM、DDR RAM、または他のランダムアクセスソリッドステートメモリデバイス等の高速ランダムアクセスメモリを含み、任意選択により、1つもしくは複数の磁気ディスクストレージデバイス、1つもしくは複数の光ディスクストレージデバイス、1つもしくは複数のフラッシュメモリデバイス、または1つもしくは複数の他の不揮発性ソリッドステートストレージデバイス等の不揮発性メモリを含む。メモリ906は、任意選択により、1つまたは複数の処理ユニット902から遠隔に配置された1つまたは複数のストレージデバイスを含む。メモリ906、または代替的にメモリ906内の不揮発性メモリは、非一時的コンピュータ可読ストレージ媒体を含む。いくつかの実施形態では、メモリ906、またはメモリ906の非一時的コンピュータ可読ストレージ媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットもしくはスーパーセットを記憶する。
・様々な基本システムサービスを扱い、ハードウェアに依拠したタスクを実行するための手順を含むオペレーティングシステム916;
・サーバシステム104を、1つまたは複数のネットワークインタフェース904(有線または無線)、およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークネットワーク等の1つまたは複数のネットワーク108を介して、他のデバイス(例えば、車両102、クライアントデバイス106、車両オペレータデバイス124)に接続するためのネットワーク通信モジュール918;
・異なる認証情報、ならびにクライアントおよびユーザの関連付けられたアクセスレベルの情報を記憶し、リアルタイム車両データフロー112を収集し、リアルタイム車両データフロー112内の車両データを、関連付けられたアクセスレベルに基づいて異なる認証情報に関連付け、関連付けられた車両データを含むデータフロー112を、ユーザ認証情報および車両データ要求に基づいて1つまたは複数のクライアントデバイス106に配信するための車両データフィードサーバモジュール920;ここで、車両データフィードサーバモジュール920は、ユーザ認証情報および要求から1つまたは複数のタップを抽出し、タップを適用して、実質的にリアルタイムのデータフィード116に対するリアルタイム車両データフロー112を制御し、リアルタイムのデータフィード116は、要求側のクライアントデバイス106に送達されることになる要求された車両データ(すなわち、収集されたリアルタイム車両データフロー112のサブセット)を運ぶ;車両データフィードサーバモジュール920の例示的な内部アーキテクチャーに関するさらなる詳細は、
図6Aおよび
図6Bを参照して上記で説明されている;
・車両オペレータデバイス124および/またはクライアントデバイス106から制御データフロー126を受信し、制御コマンドを遠隔で用いて車両102を制御するための車両制御サーバモジュール930;ここで、制御サーバモジュール930は、車両制御アプリケーションを実行し、例えばユーザインタフェースを表示することによって、複数のオペレータアカウントを介して車両102を制御するように構成され、このユーザインタフェース上で、制御コマンドが入力され、制御コマンドは、それぞれの車両102を直接制御するために、または制御コマンドに応答したリアルタイムの車両10の動作を監視することによって車両制御サーバ108を介して間接的に制御するために、適用される;
・少なくとも、以下を含むリアルタイム車両データフロー112のデータ項目を記憶するためのサーバシステムデータ940:
○リアルタイム車両データフロー112および補足データ項目を複数の車両データシャードに記憶するための車両データベース942;
○1つまたは複数のユーザアカウントのユーザ認証情報および関連付けられたアクセスレベル、1つまたは複数のユーザアカウントのアカウント設定、ならびにユーザアカウントの各々に関連付けられ、サーバシステム104によって管理されるクライアントデバイス106およびアプリケーションの設定を記憶するためのユーザアカウント情報944;ここで、いくつかの実施形態では、ユーザアカウント情報944は、車両データフィードサーバモジュール920に関連付けられた車両データアプリケーション、および/または車両制御サーバモジュール930に関連付けられた車両制御アプリケーションのユーザアカウントのアカウント設定を含む;
○少なくとも、サーバシステム104によって管理される車両データまたは制御アプリケーションのユーザアカウントの各々に関連付けられた、複数のクライアントデバイス106によって生成されるデータ、例えば、車両データ要求履歴、1つまたは複数の参照ポインタ、タップ、およびフロー構成メタデータ等を記憶するためのユーザアカウントデータ946。
【0123】
[00135] 上記で識別された要素の各々は、上述したメモリデバイスのうちの1つまたは複数に記憶することができ、上記で説明した機能を実行するための命令のセットに対応する。上記で識別したモジュールまたはプログラム(すなわち、命令のセット)は、別個のソフトウェアプログラム、プロシージャ、モジュール、またはデータ構造として実施される必要はなく、このため、これらのモジュールの様々なサブセットを、様々な実施形態において組み合わせるか、または他の形で再構成することができる。いくつかの実施形態では、メモリ906は、任意選択により、上記で識別したモジュールおよびデータ構造のサブセットを記憶する。さらに、メモリ906は、任意選択により、上記で説明していない追加のモジュールおよびデータ構造を記憶する。
【0124】
[00136]
図10は、いくつかの実施形態による、車両データの要求およびレビューを可能にする車両データアプリケーションを実行するように構成された例示的なクライアントデバイス106である。クライアントデバイス106は、通常、1つまたは複数の処理ユニット(CPU)1002と、1つまたは複数のネットワークインタフェース1004と、メモリ1006と、これらのコンポーネント(場合によってはチップセットと呼ばれる)を相互接続するための1つまたは複数の通信バス1008とを含む。メモリ1006は、DRAM、SRAM、DDR RAM、または他のランダムアクセスソリッドステートメモリデバイス等の高速ランダムアクセスメモリを含み、任意選択により、1つもしくは複数の磁気ディスクストレージデバイス、1つもしくは複数の光ディスクストレージデバイス、1つもしくは複数のフラッシュメモリデバイス、または1つもしくは複数の他の不揮発性ソリッドステートストレージデバイス等の不揮発性メモリを含む。メモリ1006は、任意選択により、1つまたは複数の処理ユニット1002から遠隔に配置された1つまたは複数のストレージデバイスを含む。メモリ1006、または代替的にメモリ1006内の不揮発性メモリは、非一時的コンピュータ可読ストレージ媒体を含む。クライアントデバイス106は、入力ボタンまたは制御部等のユーザ入力を容易にする1つまたは複数の入力デバイス1010を含むことができる。さらに、クライアントデバイス106は、マイクロフォンおよび音声認識、またはカメラおよびジェスチャー認識を用いて、ボタンを補うかまたはボタンに置き換わることもできる。クライアントデバイス106は、スピーカおよび/または視覚ディスプレイを含む、ユーザインタフェースおよび表示コンテンツの提示を可能にする1つまたは複数の出力デバイス1012も含むことができる。
【0125】
[00137] いくつかの実施形態では、メモリ1006、またはメモリ1006の非一時的コンピュータ可読ストレージ媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットもしくはスーパーセットを記憶する。
・様々な基本システムサービスを扱い、ハードウェアに依拠したタスクを実行するための手順を含むオペレーティングシステム1016;
・クライアントデバイス106を、1つまたは複数のネットワークインタフェース1004(有線または無線)、およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ケーブルテレビシステム、衛星テレビシステム、IPTVシステム等の1つまたは複数のネットワーク108を介して他のコンピュータまたはシステム(例えば、サーバシステム104、クライアントグループサーバ122、車両102、および車両オペレータデバイス124)に接続するためのネットワーク通信モジュール1018;
・1つまたは複数の入力デバイス1010のうちの1つから、1つまたは複数のユーザ入力またはインタラクションを検出し、検出された入力またはインタラクションを解釈するための入力処理モジュール1020;
・インターネットにおいて情報にアクセスし、グラフィックユーザインタフェースを提示するためのウェブブラウザ1022。グラフィックユーザインタフェースは、アクセスレベル、ユーザ認証情報、車両データ要求、および制御コマンドの入力を受信して、リアルタイム車両データフィード(すなわち、リアルタイム車両データフロー112のサブセットを含む、ユーザ認証情報に関連付けられた車両データ116)を提示する;
・アクセスレベルを定義する入力、ユーザ認証情報、車両データ要求、および制御コマンドを受信してリアルタイム車両データフィード(すなわち、リアルタイム車両データフロー112のサブセットを含むユーザ認証情報に関連付けられた車両データ116)を提示するための車両データアプリケーション1024;
・少なくとも、以下を含むサーバシステム104によって提供される車両データフィードを記憶するためのデバイスデータ1030:
○1つまたは複数のユーザアカウントのユーザ認証情報および関連付けられたアクセスレベル、1つまたは複数のユーザアカウントのアカウント設定、ならびにクライアントデバイス106によってアクセスされるユーザアカウントの各々に関連付けられたクライアントデバイス106およびアプリケーションの設定を記憶するためのユーザアカウント情報1032。ここで、いくつかの実施形態では、ユーザアカウント情報1032は、車両データアプリケーション1024の1つまたは複数のユーザアカウントのアカウント設定を含み、1つまたは複数のユーザアカウントは同じクライアントグループに属する;
○少なくとも、クライアントデバイスにおいてアクセスされる車両データアプリケーションのユーザアカウントの各々に関連付けられたデータ、例えば、車両データ要求履歴、1つまたは複数の参照ポインタ、タップ、およびフロー構成メタデータ等を記憶するためのユーザアカウントデータ1034。
○クライアントデバイス106の車両データ要求に応答してサーバシステム104によって提供されるリアルタイムデータフィード116(すなわち、要求された車両データ)を記憶するためのローカル車両データベース1036。
【0126】
[00138] 上記で識別された要素の各々は、上述したメモリデバイスのうちの1つまたは複数に記憶することができ、上記で説明した機能を実行するための命令のセットに対応する。上記で識別したモジュールまたはプログラム(すなわち、命令のセット)は、別個のソフトウェアプログラム、プロシージャ、モジュール、またはデータ構造として実施される必要はなく、このため、これらのモジュールの様々なサブセットを、様々な実施形態において組み合わせるか、または他の形で再構成することができる。いくつかの実施形態では、メモリ1006は、任意選択により、上記で識別したモジュールおよびデータ構造のサブセットを記憶する。さらに、メモリ1006は、任意選択により、上記で説明していない追加のモジュールおよびデータ構造を記憶する。
【0127】
[00139] 上記で識別された要素の各々は、上述したメモリデバイスのうちの1つまたは複数に記憶することができ、上記で説明した機能を実行するための命令のセットに対応する。上記で識別したモジュールまたはプログラム(すなわち、命令のセット)は、別個のソフトウェアプログラム、プロシージャ、モジュール、またはデータ構造として実施される必要はなく、このため、これらのモジュールの様々なサブセットを、様々な実施形態において組み合わせるか、または他の形で再構成することができる。いくつかの実施形態では、メモリ1006は、任意選択により、上記で識別したモジュールおよびデータ構造のサブセットを記憶する。さらに、メモリ1006は、任意選択により、上記で説明していない追加のモジュールおよびデータ構造を記憶する。
【0128】
[00140] ここでは、いくつかの例において、第1、第2等の用語を使用して様々な要素が記述されるが、これらの要素はこれらの用語によって制限されるべきではないことも理解される。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、様々な記載の実施形態の範囲から逸脱することなく、第1の車両データシャードを第2の車両データシャードと呼ぶことができ、同様に、第2の車両データシャードを第1の車両データシャードと呼ぶことができる。第1の車両データシャードおよび第2の車両データシャードは、両方とも車両データシャードであるが、これらは任意選択により、同じ車両データシャードまたは2つの別個の異なる車両データシャードを指す。
【0129】
[00141] 本明細書における様々な記載の実施形態の記述において用いられる用語は、特定の実施形態のみを記述する目的であり、実施形態の限定を意図するものではない。様々な記載の実施形態および添付の特許請求の範囲の記述において用いられるとき、単数形の「1つの」および「その」は、内容が明確にそうでないことを示さない限り、複数形を含むことが意図されている。本明細書において用いられるとき、「および/または」という用語は、関連して列挙されている事項のありとあらゆる組合せを指し、包含することも理解されよう。さらに、「含む」、「含んでいる」、「備える」および/または「備えている」という用語は、本特許明細書において用いられるとき、記載された特徴、整数、ステップ、動作、要素、および/またはコンポーネントの存在を示すが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはこれらのグループの存在または追加を除外していないということが、理解されるであろう。
【0130】
[00142] 本明細書において用いられるとき、「場合」という用語は、文脈に応じて、任意選択により「とき」または「際」、または「~であるという判断に応答して」、または「~の検出に応答して」または「~という判断に従って」の意味として解釈される。同様に、文脈に応じて、句「~であると判断される場合」または「(述べられる条件または事象)が検出される場合」は、任意選択により、「~と判断される際」または「~という判断に応答して」または「(述べられる条件または事象)が検出される際」または「(述べられる条件または事象)の検出に応答して」、または「(述べられる条件または事象)が検出されたという判断に従って」の意味として解釈される。
【0131】
[00143] 様々な図面は、複数の論理ステージを特定の順序で例示するが、順序に左右されないステージを並び替えてもよく、他のステージは組み合わされるかまたは分割されてもよい。いくつかの並び替えまたは他のグループ化を具体的に述べたが、他のものが当業者に明らかになるであろう。そのため、本明細書に提示した順序およびグループ化は、別例の包括的なリストではない。さらに、ステージは、ハードウェア、ファームウェア、ソフトウェア、または任意のそれらの組合せで実現できることを認識されたい。
【0132】
[00144] 上記の記述は、説明の目的で、特定の実施形態を参照して記述された。しかしながら、例示的な論考は、包括的であることも、特許請求の範囲を開示した厳密な形態に限定することも意図していない。上記の教示に照らして多くの変更および変形が可能である。実施形態は、特許請求の範囲の基礎をなす原理、および実際の応用を最もよく説明し、それによって当業者が、意図される特定の用途に適する様々な変更を用いて実施形態を最大限に利用できるように選択された。
【0133】
[00145] 本出願のいくつかの実施態様は、複数の車両に通信可能に結合された車両データフィードサーバを介して車両データを通信することを対象とする。車両データフィードサーバは、車両から複数のリアルタイム車両データフローを受信し、各リアルタイム車両データフローは、それぞれの車両に関連付けられ、それぞれの車両の車両テレメトリデータを含む。車両データフィードサーバはまた、クライアントデバイスから、ユーザ認証情報と、車両データの要求とを受信し、要求は、車両データを選択するための判断基準を指定する。リアルタイム車両データフローを受信している間、要求に応答して、車両データフィードサーバは、ユーザ認証情報に基づいて車両データに対するアクセスレベルを決定し、判断基準およびアクセスレベルに適合する車両データを抽出し、車両データを、クライアントデバイスに実質的にリアルタイムのデータフィードとして送信する。
【0134】
[00146] 条項1。車両データを通信するための方法であって、
1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行するための命令を記憶するメモリとを有する車両データフィードサーバであって、車両データフィードサーバは1つまたは複数の通信ネットワークを介して複数の車両に結合される、車両データフィードサーバにおいて、
複数の車両から、1つまたは複数の通信ネットワークを介して複数のリアルタイム車両データフローを受信することであって、各リアルタイム車両データフローは、それぞれの車両に関連付けられ、少なくとも、それぞれの車両の車両テレメトリデータを含むことと、
クライアントデバイスから、ユーザ認証情報と、車両データの要求とを受信することであって、要求は、車両データを選択するための判断基準を指定することと、
複数のリアルタイム車両データフローを受信している間、要求に応答して、
ユーザ認証情報に基づいて車両データへのアクセスレベルを決定することと、
アクセスレベルおよび要求によって指定された判断基準に従って、判断基準およびアクセスレベルに適合する車両データを抽出することと、
車両データを、実質的にリアルタイムのデータフィードとして、1つまたは複数の通信ネットワークを介してクライアントデバイスに送信することと、
を含む、方法。
【0135】
[00147] 条項2。車両データフィードサーバは、1つまたは複数の通信ネットワークを介して1つまたは複数の車両オペレータデバイスに通信可能に結合され、方法は、
1つまたは複数の車両オペレータデバイスまたは車両から1つまたは複数の制御データフローを受信することをさらに含み、各制御データフローは1つまたは複数の制御コマンドを含み、各コマンドは、複数の車両のそれぞれのサブセットを制御するために、それぞれの車両オペレータデバイスによって発行される、条項1の方法。
【0136】
[00148] 条項3。1つまたは複数の制御データフローを複数のリアルタイム車両データフローと統合することをさらに含み、統合することは、複数のリアルタイム車両データフローおよび1つまたは複数の制御データフローを複数の車両データシャードにグループ化することを含む、条項2の方法。
【0137】
[00149] 条項4。車両データにおけるデータ項目を、補足データ項目で補足することであって、補足データ項目は、車両データにおけるそれぞれのデータ項目と併せてクライアントデバイスに送信されることをさらに含む、条項1~3のいずれかの方法。
【0138】
[00150] 条項5。
複数のリアルタイム車両データフローの各々を補足データ項目で補足することと、
それぞれの車両データシャードにおいて、補足データ項目およびそれぞれのリアルタイム車両データフローをグループ化することと、
をさらに含む、条項1~4のいずれかの方法。
【0139】
[00151] 条項6。複数のリアルタイム車両データフローを統合することをさらに含み、統合することは、複数のリアルタイム車両データフローを複数の車両データシャードにグループ化することを含み、要求に応答して抽出された車両データは、複数の車両データシャードのサブセットを含む、条項1~5のいずれかの方法。
【0140】
[00152] 条項7。複数のリアルタイム車両データフローが複数の車両データシャードにグループ化されるとき、複数のリアルタイム車両データフローの各データ項目は、共通フォーマットに従って、複数の車両データシャードのそれぞれのデータ項目に変換される、条項6の方法。
【0141】
[00153] 条項8。複数の車両データシャードは所定の数の車両データシャードを含み、複数のリアルタイム車両データフローの各々は、車両データシャードのそれぞれ1つにおいて完全にグループ化される、条項6の方法。
【0142】
[00154] 条項9。所定のデータストレージ規則に従って、車両データフィードサーバの車両データベースに複数の車両データシャードを記憶することをさらに含む、条項6の方法。
【0143】
[00155] 条項10。各車両データシャードについて、リアルタイム車両データフローのサブセットが、時間的順序に従って順次にそれぞれの車両データシャードにグループ化される、条項6の方法。
【0144】
[00156] 条項11。要求は現在の要求を含み、方法は、
現在の要求に応答して、時間的位置に対応する複数の車両データシャードにおける参照ポインタを識別することをさらに含み、
時間的位置よりも前に収集されたリアルタイム車両データフローは、クライアントデバイスから受信されたかつ車両データを選択するための判断基準を指定する以前の要求に応答して処理され、
時間的位置の後に収集されたリアルタイム車両データフローは、現在の要求に応答して処理される、条項10の方法。
【0145】
[00157] 条項12。要求は第1の要求を含み、車両データは、第1の要求に応答して第1の車両データシャードから抽出され、方法は、
第2のクライアントデバイスから、第2のユーザ認証情報と、第2の車両データの第2の要求とを受信することであって、第2の要求は、第2の車両データを選択するための第2の判断基準を指定することと、
第2の要求に応答して、第1の要求とは独立して、
第2のユーザ認証情報に基づいて第2の車両データへの第2のアクセスレベルを決定することと、
第2のアクセスレベルおよび第2の要求によって指定された第2の判断基準に従って、第2の車両データシャードから、第2の判断基準および第2のアクセスレベルに適合する第2の車両データを抽出することと、
第2の車両データを、第2の実質的にリアルタイムのデータフィードとして、1つまたは複数の通信ネットワークを介して第2のクライアントデバイスに送信することと、
を含み、
第2の車両データは、第1の車両データシャードから抽出されている第1の車両データシャードとは独立して、第2の車両データシャードから抽出される、条項6の方法。
【0146】
[00158] 条項13。
クライアントデバイスは、クライアントデバイスのユーザアカウントを介して車両データアプリケーションを実行するように構成され、
ユーザアカウントはユーザ認証情報に対応し、ユーザ認証情報は、ユーザ名と、ユーザアカウントのパスワードとを含み、
車両データは、クライアントデバイスに送信され、車両データアプリケーションを介してユーザに提示される、条項1~12のいずれかの方法。
【0147】
[00159] 条項14。クライアントデバイスは、車両データに基づいて車両制御コマンドを生成し、車両制御コマンドを複数の車両のうちの1つに送信するように構成され、それによって、複数の車両のサブセットからリアルタイムで収集された、車両データを選択するための判断基準に適合する車両データに基づいて、複数の車両のうちの1つを制御することができるようにする、条項1~13のいずれかの方法。
【0148】
[00160] 条項15。各リアルタイム車両データフローは、制御イベントデータ、制御コマンド、車両対デバイス結合イベントデータ、センサ読み値、およびそれぞれの車両に関連付けられたログデータのうちの1つまたは複数をさらに含む、条項1~14のいずれかの方法。
【0149】
[00161] 条項16。
各リアルタイム車両データフローをそれぞれの一意のフロー識別子に関連付けることをさらに含み、
複数の車両の各々は、一意の車両識別子を有し、各リアルタイム車両データフローは、それぞれの車両の一意の車両識別子によってそれぞれの車両に関連付けられる、条項1~15のいずれかの方法。
【0150】
[00162] 条項17。車両データを選択するための判断基準は、VIN番号、車両タイプ、複数の所定のセンサデータタイプ、および複数の対応する検知閾値のうちの1つまたは複数に基づいて定義される、条項1~16のいずれかの方法。
【0151】
[00163] 条項18。
複数のリアルタイム車両データフローを、車両データフィードサーバの車両データベースに、第1の期間にわたって記憶することと、
複数のリアルタイム車両データフローと、クライアントデバイスから受信した要求とに対応する構成メタデータを生成することと、
構成メタデータを、車両データベースに、第1の期間よりも長い第2の期間にわたって記憶することと、
をさらに含む、条項1~17のいずれかの方法。
【0152】
[00164] 条項19。1つまたは複数のプロセッサによって実行されると、プロセッサに、条項1~18のいずれかの方法を実行させる命令が記憶された非一時的コンピュータ可読媒体。
【0153】
[00165] 条項20。
1つまたは複数のプロセッサと、
1つまたは複数のプロセッサによって実行されると、プロセッサに、条項1~18のいずれかの方法を実行させる命令が記憶されたメモリと、
を備える、車両データフィードサーバ。
【国際調査報告】