(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024122916
(43)【公開日】2024-09-09
(54)【発明の名称】拡張識別子を使用した車両信号情報の通信
(51)【国際特許分類】
H04W 48/14 20090101AFI20240902BHJP
H04W 4/44 20180101ALI20240902BHJP
【FI】
H04W48/14
H04W4/44
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024026820
(22)【出願日】2024-02-26
(31)【優先権主張番号】18/175,737
(32)【優先日】2023-02-28
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.3GPP
2.JAVASCRIPT
3.iOS
(71)【出願人】
【識別番号】500043574
【氏名又は名称】ブラックベリー リミテッド
【氏名又は名称原語表記】BlackBerry Limited
【住所又は居所原語表記】2200 University Avenue East, Waterloo ON N2K 0A7, Canada
(74)【代理人】
【識別番号】100107489
【弁理士】
【氏名又は名称】大塩 竹志
(72)【発明者】
【氏名】ピエール ピエール ブレイス
(72)【発明者】
【氏名】ジョーダン トーマス ファーガソン
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA21
5K067BB03
5K067DD11
5K067EE02
5K067EE10
5K067EE16
(57)【要約】 (修正有)
【課題】拡張識別子を使用した車両信号情報の通信を実現するシステム、方法およびソフトウェアを提供する。
【解決手段】車両信号を通信するために使用される方法は、サーバにおいて、車両信号に対するクエリを受信することと、サーバから、車両信号の識別子を含む応答メッセージを伝送することと、を含む。識別子は、車両信号のネームと、車両信号の少なくとも1つのその他の要素の定義との表現を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
方法であって、
サーバにおいて、車両信号に対するクエリを受信することと、
前記サーバから、前記車両信号の識別子を含む応答メッセージを伝送することであって、前記識別子は、前記車両信号のネームと、前記車両信号の少なくとも1つのその他の要素の定義との表現を含む、ことと
を含む、方法。
【請求項2】
前記少なくとも1つのその他の要素は、前記車両信号の単位またはデータタイプを含む、請求項1に記載の方法。
【請求項3】
前記識別子は、前記車両信号の前記少なくとも1つのその他の要素の前記定義を含むストリングのハッシュ積を含む、請求項1に記載の方法。
【請求項4】
前記クエリは、前記車両信号の前記識別子を含む、請求項1に記載の方法。
【請求項5】
前記クエリは、前記車両信号に対するパスネームを含む、請求項1に記載の方法。
【請求項6】
前記クエリは、前記車両信号の第1の識別子を含み、前記応答メッセージ内の前記識別子は、前記車両信号の第2の識別子であり、前記第1の識別子は、前記車両信号の前記少なくとも1つのその他の要素の第1の定義に基づいており、前記第2の識別子は、前記車両信号の前記少なくとも1つのその他の要素の第2の定義に基づいている、請求項1に記載の方法。
【請求項7】
前記車両信号は、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)として定義される、請求項1に記載の方法。
【請求項8】
サーバであって、
少なくとも1つのハードウェアプロセッサと、
前記少なくとも1つのハードウェアプロセッサに結合され、前記少なくとも1つのハードウェアプロセッサによる実行のためのプログラミング命令を格納している1つ以上のコンピュータ読み取り可能な格納媒体であって、前記プログラミング命令は、実行されたとき、前記サーバに、
前記サーバにおいて、車両信号に対するクエリを受信することと、
前記サーバから、前記車両信号の識別子を含む応答メッセージを伝送することであって、前記識別子は、前記車両信号のネームと、前記車両信号の少なくとも1つのその他の要素の定義との表現を含む、ことと
を含む動作を遂行させる、1つ以上のコンピュータ読み取り可能な格納媒体と
を備える、サーバ。
【請求項9】
前記少なくとも1つのその他の要素は、前記車両信号の単位またはデータタイプを含む、請求項8に記載のサーバ。
【請求項10】
前記識別子は、前記車両信号の前記少なくとも1つのその他の要素の前記定義を含むストリングのハッシュ積を含む、請求項8に記載のサーバ。
【請求項11】
前記クエリは、前記車両信号の前記識別子を含む、請求項8に記載のサーバ。
【請求項12】
前記クエリは、前記車両信号に対するパスネームを含む、請求項8に記載のサーバ。
【請求項13】
前記クエリは、前記車両信号の第1の識別子を含み、前記応答メッセージ内の前記識別子は、前記車両信号の第2の識別子であり、前記第1の識別子は、前記車両信号の前記少なくとも1つのその他の要素の第1の定義に基づいており、前記第2の識別子は、前記車両信号の前記少なくとも1つのその他の要素の第2の定義に基づいている、請求項8に記載のサーバ。
【請求項14】
前記車両信号は、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)として定義される、請求項8に記載のサーバ。
【請求項15】
コンピュータ読み取り可能な媒体であって、前記コンピュータ読み取り可能な媒体は、命令を格納しており、前記命令は、実行されたとき、コンピューティングデバイスに、
サーバにおいて、車両信号に対するクエリを受信することと、
前記サーバから、前記車両信号の識別子を含む応答メッセージを伝送することであって、前記識別子は、前記車両信号のネームと、前記車両信号の少なくとも1つのその他の要素の定義との表現を含む、ことと
を含む動作を遂行させる、コンピュータ読み取り可能な媒体。
【請求項16】
前記少なくとも1つのその他の要素は、前記車両信号の単位またはデータタイプを含む、請求項15に記載のコンピュータ読み取り可能な媒体。
【請求項17】
前記識別子は、前記車両信号の前記少なくとも1つのその他の要素の前記定義を含むストリングのハッシュ積を含む、請求項15に記載のコンピュータ読み取り可能な媒体。
【請求項18】
前記クエリは、前記車両信号の前記識別子を含む、請求項15に記載のコンピュータ読み取り可能な媒体。
【請求項19】
前記クエリは、前記車両信号に対するパスネームを含む、請求項15に記載のコンピュータ読み取り可能な媒体。
【請求項20】
前記クエリは、前記車両信号の第1の識別子を含み、前記応答メッセージ内の前記識別子は、前記車両信号の第2の識別子であり、前記第1の識別子は、前記車両信号の前記少なくとも1つのその他の要素の第1の定義に基づいており、前記第2の識別子は、前記車両信号の前記少なくとも1つのその他の要素の第2の定義に基づいている、請求項15に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、車両信号情報を通信することに関する。
【背景技術】
【0002】
車両は、多数のセンサを含み得、該多数のセンサは、それらが監視しているものにおける状態変化をコンスタントに報告する信号を放出または生成する。車両は、これらの信号を使用し、車両の異なる局面の状態を決定する。車両または車両内のエンティティは、車両の動作を制御するためにこれらの信号に対する異なる値をさらに設定し得る。
【発明の概要】
【課題を解決するための手段】
【0003】
いくつかの場合において、車両信号は、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)を使用する信号カタログを定義し得る。そのような信号カタログは、車両内のセンサによって放出または生成され得る信号のセットの規範的定義を提供する。信号の定義は、信号の異なる要素の定義(例えば、データタイプ、単位等)を含み得る。
【0004】
いくつかの場合において、新しい信号定義が追加、変更、または削除されるので、信号カタログは進化し得る。例えば、信号のデータタイプは、整数から浮動小数点に変更され得る。これらの変更を追跡するために、バージョニングが使用され得る。例えば、COVESA信号カタログは、異なるバージョンを有し、1つのバージョン内のいくつかの信号は、別のバージョン内のものとは異なる定義を有し得る。それら自体の信号カタログを作成および管理するその他のエンティティ(例えば、異なる車両製造業者)はまた、それらの信号カタログのそれら自体のバージョンを有し得る。いくつかの場合において、用語「系統」は、信号カタログを作成したエンティティ(来歴としても参照され、例えば、来歴は、COVESA等の標準化組織、車両製造業者、または任意のその他のパーティであり得る)と、信号カタログのバージョンとの組み合わせを表すために使用され得る。各来歴は、信号をそれら自体の方法で定義し得、異なる系統からの信号カタログが、いくつかの信号の異なる定義を有することにつながる。したがって、同じ車両信号の定義(例えば、車両速度)は、信号の系統が異なる場合、異なり得る。例えば、1つの系統は、車両速度をkm/時におけるものとして定義し得るが、別のものは、それをmphにおけるものとして定義する。
【0005】
いくつかの動作において、非ネイティブアプリケーション(例えば、外部デバイス上で稼働しているアプリケーションまたは車両上にインストールされているサードパーティアプリケーション)またはネイティブアプリケーションは、信号のうちのいくつかに対するアクセスを必要とする。信号はまた、それらは信号カタログ内のノードとして定義されるので、データエントリノードとして参照され得る。アクセスは、読み取りアクセス、書き込みアクセス、または両方であり得る。アプリケーションが車両信号を正確に解釈または設定するために、アプリケーションは、各車両信号の異なる要素(例えば、単位、データタイプ等)の定義を理解することを必要とする。定義は、異なる系統を有する同じ信号に対して異なり得るので、信号の系統のインジケータが、信号に対する要求内に含まれ得る、または、要求された信号を提供する応答内に含まれ得る。しかしながら、これは、アプリケーションに対する複雑性を増大させ得る。同じアプリケーションは、異なるタイプ、メーカー、およびモデルの車両にアクセスするために使用され得る。したがって、アプリケーションは、異なる来歴からの信号カタログおよびこれらの信号カタログの異なるバージョンを含む複数の系統にわたって同じ信号の定義を追跡する必要があり得る。信号カタログの各バージョンは、数千の車両信号の定義を含み得、したがって、メモリに対する過大な負担と、アプリケーションに対して要請される過大な処理パワーとを追加する。さらに、信号アクセスに対する要求メッセージおよび応答メッセージ内に系統インジケータを含むことは、信号伝送内に追加的なオーバーヘッドを引き起こし得る。
【0006】
いくつかの実装において、車両信号の異なる要素の定義は、車両信号に対する拡張識別子を生成するために使用され得る。したがって、拡張識別子は、信号の識別子(例えば、信号のネーム)と、(例えば、信号のデータタイプまたは単位を含む)信号のその他の定義(またはセマンティクス)との両方を表し得る。換言すると、拡張識別子は、信号のネームならびに信号の系統を表し得る。アプリケーションおよび車両は、車両信号の要求および応答内で拡張識別子を使用し得る。車両信号は、アプリケーションと車両とが同じ拡張識別子を使用する限り、正確に解釈および設定され得る。本開示内のアプローチは、車両信号を通信するための効率的な方法を提供し、車両動作の安全性を保護し、信号を要求または提供するエンティティの複雑性を低減させる。記載されたアプローチはまた、拡張識別子を単純に比較することによって、2つの系統からの信号の定義(またはセマンティクス)が同じであるかどうかを決定するための効率的な方法を提供する。
図1~4およびそれに関連付けられた記載は、これらの実装の追加的な詳細を提供する。
本発明は、例えば、以下の項目を提供する。
(項目1)
方法であって、
サーバにおいて、車両信号に対するクエリを受信することと、
上記サーバから、上記車両信号の識別子を含む応答メッセージを伝送することであって、上記識別子は、上記車両信号のネームと、上記車両信号の少なくとも1つのその他の要素の定義との表現を含む、ことと
を含む、方法。
(項目2)
上記少なくとも1つのその他の要素は、上記車両信号の単位またはデータタイプを含む、上記項目に記載の方法。
(項目3)
上記識別子は、上記車両信号の上記少なくとも1つのその他の要素の上記定義を含むストリングのハッシュ積を含む、上記項目のいずれかに記載の方法。
(項目4)
上記クエリは、上記車両信号の上記識別子を含む、上記項目のいずれかに記載の方法。
(項目5)
上記クエリは、上記車両信号に対するパスネームを含む、上記項目のいずれかに記載の方法。
(項目6)
上記クエリは、上記車両信号の第1の識別子を含み、上記応答メッセージ内の上記識別子は、上記車両信号の第2の識別子であり、上記第1の識別子は、上記車両信号の上記少なくとも1つのその他の要素の第1の定義に基づいており、上記第2の識別子は、上記車両信号の上記少なくとも1つのその他の要素の第2の定義に基づいている、上記項目のいずれかに記載の方法。
(項目7)
上記車両信号は、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)として定義される、上記項目のいずれかに記載の方法。
(項目8)
サーバであって、
少なくとも1つのハードウェアプロセッサと、
上記少なくとも1つのハードウェアプロセッサに結合され、上記少なくとも1つのハードウェアプロセッサによる実行のためのプログラミング命令を格納している1つ以上のコンピュータ読み取り可能な格納媒体であって、上記プログラミング命令は、実行されたとき、上記サーバに、
上記サーバにおいて、車両信号に対するクエリを受信することと、
上記サーバから、上記車両信号の識別子を含む応答メッセージを伝送することであって、上記識別子は、上記車両信号のネームと、上記車両信号の少なくとも1つのその他の要素の定義との表現を含む、ことと
を含む動作を遂行させる、1つ以上のコンピュータ読み取り可能な格納媒体と
を備える、サーバ。
(項目9)
上記少なくとも1つのその他の要素は、上記車両信号の単位またはデータタイプを含む、上記項目のいずれかに記載のサーバ。
(項目10)
上記識別子は、上記車両信号の上記少なくとも1つのその他の要素の上記定義を含むストリングのハッシュ積を含む、上記項目のいずれかに記載のサーバ。
(項目11)
上記クエリは、上記車両信号の上記識別子を含む、上記項目のいずれかに記載のサーバ。
(項目12)
上記クエリは、上記車両信号に対するパスネームを含む、上記項目のいずれかに記載のサーバ。
(項目13)
上記クエリは、上記車両信号の第1の識別子を含み、上記応答メッセージ内の上記識別子は、上記車両信号の第2の識別子であり、上記第1の識別子は、上記車両信号の上記少なくとも1つのその他の要素の第1の定義に基づいており、上記第2の識別子は、上記車両信号の上記少なくとも1つのその他の要素の第2の定義に基づいている、上記項目のいずれかに記載のサーバ。
(項目14)
上記車両信号は、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)として定義される、上記項目のいずれかに記載のサーバ。
(項目15)
コンピュータ読み取り可能な媒体であって、上記コンピュータ読み取り可能な媒体は、命令を格納しており、上記命令は、実行されたとき、コンピューティングデバイスに、
サーバにおいて、車両信号に対するクエリを受信することと、
上記サーバから、上記車両信号の識別子を含む応答メッセージを伝送することであって、上記識別子は、上記車両信号のネームと、上記車両信号の少なくとも1つのその他の要素の定義との表現を含む、ことと
を含む動作を遂行させる、コンピュータ読み取り可能な媒体。
(項目16)
上記少なくとも1つのその他の要素は、上記車両信号の単位またはデータタイプを含む、上記項目のいずれかに記載のコンピュータ読み取り可能な媒体。
(項目17)
上記識別子は、上記車両信号の上記少なくとも1つのその他の要素の上記定義を含むストリングのハッシュ積を含む、上記項目のいずれかに記載のコンピュータ読み取り可能な媒体。
(項目18)
上記クエリは、上記車両信号の上記識別子を含む、上記項目のいずれかに記載のコンピュータ読み取り可能な媒体。
(項目19)
上記クエリは、上記車両信号に対するパスネームを含む、上記項目のいずれかに記載のコンピュータ読み取り可能な媒体。
(項目20)
上記クエリは、上記車両信号の第1の識別子を含み、上記応答メッセージ内の上記識別子は、上記車両信号の第2の識別子であり、上記第1の識別子は、上記車両信号の上記少なくとも1つのその他の要素の第1の定義に基づいており、上記第2の識別子は、上記車両信号の上記少なくとも1つのその他の要素の第2の定義に基づいている、上記項目のいずれかに記載のコンピュータ読み取り可能な媒体。
(摘要)
車両信号を通信するために使用されるシステム、方法、およびソフトウェア。いくつかの局面において、1つの例示的方法は、サーバにおいて、車両信号に対するクエリを受信することと、サーバから、車両信号の識別子を含む応答メッセージを伝送することであって、識別子は、車両信号のネームと、車両信号の少なくとも1つのその他の要素の定義との表現を含む、こととを含む。
【図面の簡単な説明】
【0007】
【
図1】
図1は、実装にしたがう、車両信号を通信する例示的通信システムを示す概略図である。
【0008】
【
図2】
図2は、実装にしたがう、車両信号を通信する例示的方法を示すフロー図である。
【0009】
【
図3】
図3は、実装にしたがう、コンピューティングシステムの高レベルアーキテクチャブロック図である。
【0010】
【
図4】
図4は、実装にしたがう、車両信号情報を通信する例示的方法を示すフロー図である。
【0011】
種々の図面における同様の参照番号および指示は、同様の要素を指す。
【発明を実施するための形態】
【0012】
図1は、実装にしたがう、車両信号を通信する例示的通信システム100を示す概略図である。高レベルにおいて、例示的通信システム100は、アプリケーション122と通信可能に結合された車両120を含む。車両120はまた、ネットワーク140を介してサーバ130と通信可能に結合される。
【0013】
車両120は、自動車両(例えば、自動車、乗用車、トラック、バス、オートバイ等)、エアクラフト(例えば、エアプレーン、無人航空車両、無人エアクラフトシステム、ドローン、ヘリコプタ等)、スペースクラフト(例えば、スペースプレーン、スペースシャトル、スペースカプセル、スペースステーション、人工衛星等)、ウォータークラフト(例えば、船、ボート、ホバークラフト、潜水艦等)、鉄道車両(例えば、列車および路面電車等)、および、既存であるか将来出現するかを問わず、上記のうちの任意のものの任意の組み合わせを含むその他のタイプの車両を含み得る。例示された例において、車両120は、バス110に接続された1つ以上のセンサ102、車両コンポーネントコントローラ104、車両システムプロセッサ106、通信サブテム116、ユーザインターフェース118、メモリ114、および車両信号制御モジュール112を含む。
【0014】
いくつかの例において、車両は、1つ以上のセンサを含み得る。1つ以上のセンサは、車両の周囲または内部の環境を反映する情報(例えば、ビデオ情報またはオーディオ情報)を生成し得る。センサの例は、カメラ、マイクロホン、レーザ、レーダ、超音波、光検出および測距(LIDAR)または任意のその他のセンサを含み得る。
【0015】
車両120は、車両120に対する情報を検出または測定する1つ以上のセンサ102を含む。センサ102の例は、車両120の外部の環境情報をキャプチャするセンサ(例えば、カメラ、マイクロホン、レーザ、レーダ、超音波、光検出および測距(LIDAR)等)を含み得る。これらのセンサは、自動判断を行うために車両120上で動作する自動処理プラットフォームに対する環境入力を提供し得る。センサ102の例はまた、車両120の内部の情報をキャプチャするデバイス(例えば、エンジン、バッテリ、燃料、電子システム、冷却システム等のコンポーネントに対するモニタ)を含み得る。これらのセンサは、車両120上で動作している自動処理プラットフォームに動作状態および警告を提供し得る。センサ102の例はまた、車両120の内部のサウンドレベルを検出し得る音響センサを含み得る。音響センサは、車両120の内部のノイズレベルを決定し得るか、または、ノイズレベルを決定するその他の信号プロセッサに対する入力を提供し得る。
【0016】
車両120は、車両コンポーネントコントローラ104を含む。
図1においては車両コンポーネントコントローラ104として例示されているが、車両120は、1つよりも多くの車両コンポーネントコントローラ104を含み得る。車両コンポーネントコントローラ104は、車両120上のコンポーネントの動作を制御するコントローラを表す。コンポーネントの例は、車両120のエンジン、アクセラレータ、ブレーキ、ラジエータ、バッテリ、ステアリングホイール、トランスミッションシステム、冷却システム、電気システム、エンターテイメントシステム、および任意のその他のコンポーネントを含み得る。例えば、車両コンポーネントコントローラ104は、車両120のスピーカシステムを制御し得る(車両120の内部のオーディオ出力に対する音量、バランス、フェード、および任意のその他の設定を制御することを含む)。車両コンポーネントコントローラ104は、車両システムプロセッサ106からの入力またはこれらの組み合わせにしたがって、それぞれのコンポーネントを自動的に動作させ得る。いくつかの実装において、車両コンポーネントコントローラ104は、データ処理装置を含み得る。
【0017】
車両システムプロセッサ106は、車両120上で動作している自動処理プラットフォールに対するプロセス、ステップ、またはアクションのうちの1つ以上に関連する命令を実行するように構成された1つ以上の処理コンポーネント(代替的に、「プロセッサ」または「中央処理ユニット(CPU)」として参照される)を含み得る。概して、車両システムプロセッサ106は、自動処理プラットフォームの動作を遂行するために、命令を実行し、データを操作する。車両システムプロセッサ106は、センサ102から入力を受信し、車両コンポーネントコントローラ104に対するコマンドを生成し得る。いくつかの場合、車両システムプロセッサ106は、自動動作を遂行し得る。いくつかの場合、車両システムプロセッサ106は、データ処理装置を含み得る。
【0018】
通信サブシステム116は、車両120のデータまたは制御情報に対するワイヤレス通信またはワイヤライン通信を提供するように構成され得る。例えば、通信サブシステム116は、ワイヤレスローカルエリアネットワーク(WLANまたはWi-Fi)、近距離ワイヤレス通信(NFC)、赤外線(IR)、無線周波数識別(RFID)、Bluetooth(登録商標)(BT)、ユニバーサルシリアルバス(USB)、または任意のその他の短距離通信プロトコルを介した伝送をサポートし得る。通信サブシステム116はまた、グローバルシステムフォーモバイルコミュニケーション(GSM(登録商標))、Interim標準95(IS-95)、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、CDMA2000(符号分割多重アクセス)、進化型ユニバーサルモバイルテレコミュニケーションシステム(E-UMTS)、ロングタームエボリューション(LTE)、LTE-アドバンスト、5G、または任意のその他の無線アクセス技術をサポートし得る。通信サブシステム116は、例えば、1つ以上のアンテナ、受信器、送信器、局所発振器、ミキサ、およびデジタル信号処理(DSP)ユニットを含み得る。いくつかの実装において、通信サブシステム116は、多入力多出力(MIMO)伝送をサポートし得る。いくつかの実装において、通信サブシステム116内の受信器は、アドバンスト受信器またはベースライン受信器であり得る。
【0019】
ユーザインターフェース118は、例えば、1つ以上のディスプレイまたはタッチスクリーンディスプレイ(例えば、液晶ディスプレイ(LCD)、発光ダイオード(LED)、有機発光ダイオード(OLED)、または微小電気機械システム(MEMS)ディスプレイ)、キーボードまたはキーパッド、トラックボール、スピーカ、またはマイクロホンのうちの任意のものを含み得る。ユーザインターフェース118はまた、I/Oインターフェース、例えば、ユニバーサルシリアルバス(USB)インターフェースを含み得る。
【0020】
メモリ114は、コンピュータ読み取り可能格納媒体であり得る。メモリ114の例は、揮発性メモリおよび不揮発性メモリ、磁気媒体、光学媒体、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、リムーバブル媒体、およびその他を含む。メモリ114は、車両120のオペレーティングシステム(OS)と、上述のプロセス、ステップ、または動作のうちの1つ以上を遂行するための種々のその他のコンピュータ実行可能ソフトウェアを格納し得る。
【0021】
車両信号制御モジュール112は、車両120の車両信号の通信を制御するように構成され得るアプリケーション、アプリケーションのセット、ソフトウェア、ソフトウェアモジュール、ハードウェア、またはこれらの任意の組み合わせを表す。いくつかの実装において、車両信号制御モジュール112は、例えばアプリケーション122から車両信号に対する要求を受信し得る。要求は、要求された信号の拡張識別子を含み得る。車両信号制御モジュール112は、拡張識別子を有する信号がサポートされているかどうかを決定する。車両信号制御モジュール112は、要求された車両信号の値を含む応答メッセージを送信する。いくつかの場合において、応答メッセージは、拡張識別子をさらに含む。
図2およびそれに関連付けられた記載は、これらの実装の追加的な詳細を提供する。いくつかの実装において、車両信号制御モジュール112は、メモリ114内に格納され、車両システムプロセッサ106によって実行される別個のソフトウェアプログラムまたはソフトウェアプログラムの一部として実装され得る。
【0022】
例示されているように、バス110は、車両120上で動作している自動処理プラットフォームのコンポーネントに対する通信インターフェースを提供する。いくつかの場合において、バス110は、コントローラエリアネットワーク(CAN)バスを使用して実装され得る。
【0023】
アプリケーション122は、車両信号を要求するアプリケーション、アプリケーションのセット、ソフトウェア、ソフトウェアモジュール、ハードウェア、またはこれらの任意の組み合わせを表す。いくつかの場合において、アプリケーションは、車両120と接続する電子デバイス上で実行され得る。そのような電子デバイスは、限定するものではないが、エンドポイント、コンピューティングデバイス、モバイルデバイス、モバイル電子デバイス、ユーザデバイス、モバイルステーション、サブスクライバステーション、ポータブル電子デバイス、モバイル通信デバイス、ワイヤレスモデム、ワイヤレス端末、または別の電子デバイスを含み得る。エンドポイントの例は、モバイルデバイス、IoT(Internet of Things)デバイス、EoT(Enterprise of Things)デバイス、セルラーフォン、パーソナルデータアシスタント(PDA)、スマートフォン、ラップトップ、タブレット、パーソナルコンピュータ(PC)、ページャ、ポータブルコンピュータ、ポータブルゲーミングデバイス、ウェアラブル電子デバイス、ヘルス/メディカル/フィットネスデバイス、カメラ、または、ワイヤレス通信ネットワークまたはワイヤード通信ネットワークを介して音声またはデータを通信するためのコンポーネントを有するその他のモバイル通信デバイスを含み得る。電子デバイスはまた、周辺デバイス(例えば、ヘッドセット、リモートコントローラ、またはディスプレイ)を含み得る。電子デバイスは、短距離通信技術を使用して車両120と接続し得る。短距離通信技術は、ワイヤレス(例えば、BT、NFC、WLAN)であり得る。短距離通信技術はまた、ワイヤード(例えば、USB)であり得る。
【0024】
いくつかの場合において、アプリケーション122は、車両120上にインストールされ得る。例えば、アプリケーション122は、車両120のいくつかの動作を制御するサードパーティアプリケーションであり得る。例えば、アプリケーション122は、センサ102から生成された車両信号を受信および解釈し得る。アプリケーション122はまた、車両の動作を制御するための車両信号を設定し得る。
【0025】
サーバ130は、車両120の車両信号およびそれらの対応する拡張識別子を管理するように構成され得るアプリケーション、アプリケーションのセット、ソフトウェア、ソフトウェアモジュール、ハードウェア、またはこれらの任意の組み合わせを表す。いくつかの実装において、サーバ130は、車両120の車両信号の拡張識別子を受信、格納、送信、および調整し得る。
【0026】
例示的通信システム100は、ネットワーク140を含む。ネットワーク140は、通信システム100内のサーバ130と車両120との間でデータを伝送するように構成され得るアプリケーション、アプリケーションのセット、ソフトウェア、ソフトウェアモジュール、ハードウェア、またはこれらの組み合わせを表す。ネットワーク140は、ワイヤレスネットワーク、ワイヤラインネットワーク、またはこれらの組み合わせを含む。例えば、ネットワーク140は、1つまたは複数の無線アクセスネットワーク(RAN)、コアネットワーク(CN)、および外部ネットワークを含み得る。RANは、1つ以上の無線アクセス技術を含み得る。いくつかの実装において、無線アクセス技術は、グローバルシステムフォーモバイルコミュニケーション(GSM(登録商標))、Interim標準95(IS-95)、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、CDMA2000(符号分割多重アクセス)、進化型ユニバーサルモバイルテレコミュニケーションシステム(E-UMTS)、ロングタームエボリューション(LTE)、LTE-アドバンスト、5G、または任意のその他の無線アクセス技術であり得る。いくつかの場合において、コアネットワークは、進化型パケットコア(EPC)であり得る。
【0027】
RANは、無線アクセス技術(例えば、UMTS、CDMA2000、3GPP LTE、3GPP LTE-A、および5G)を実装するワイヤレステレコミュニケーションシステムの一部である。多くのアプリケーションにおいて、RANは、少なくとも1つの基地局を含む。基地局は、システムの固定部分内の全てまたは少なくともいくつかの無線関連機能を制御し得る無線基地局であり得る。基地局は、通信するために、そのカバレッジエリアまたはセル内の無線インターフェースをモバイルデバイスに対して提供し得る。基地局は、広いエリアのカバレッジを提供するために、セルラーネットワークの全体にわたって分散され得る。基地局は、1つまたは複数のモバイルデバイス、その他の基地局、および1つ以上のコアネットワークノードに直接的に通信する。
【0028】
図1の要素は、種々の特徴および機能性を実装する種々のコンポーネントパーツ、部分、またはモジュールを含むものとして示されているが、これらの要素は、代わりに、必要に応じて、多数のサブモジュール、サードパーティサービス、コンポーネント、ライブラリ等を含み得る。さらに、種々のコンポーネントの特徴および機能性は、必要に応じて、より少ないコンポーネントに組み合わされ得る。
【0029】
図2は、実装にしたがう、車両信号を通信する例示的方法200を示すフロー図である。方法200は、例えば車両120を含む
図1に示されたエンティティによって実施され得る。
図2に示されている方法200はまた、追加的なエンティティ、より少ないエンティティ、または異なるエンティティを使用して実施され得る。さらに、
図2に示されている方法200は、示されている順序または異なる順序で遂行され得る追加的な動作、より少ない動作、または異なる動作を使用して実装され得る。いくつかの場合において、動作または動作のグループは、例えば、指定された回数の反復について、または終了条件に到達するまで、反復または繰り返され得る。
【0030】
202において、車両は、車両信号に対する要求を受信する。いくつかの場合において、要求は、アプリケーション(例えば、
図1におけるアプリケーション122)から受信され得る。アプリケーションは、車両の外部の電子デバイス上で実行され得、要求は、ワイヤレス接続またはワイヤライン接続(例えば、Bluetooth(登録商標)、NFC、Wi-Fi、LTE、5G、USBまたは任意のその他のローカルエリアネットワーク通信技術またはワイドエリアネットワーク通信技術)を使用することによって送信され得る。アプリケーションはまた、車両上で実行され得る(例えば、車両のオペレーティングシステム上にインストールされ得るサードパーティアプリケーション)。
【0031】
車両信号は、車両動作の情報を搬送する信号を表す。車両信号によって搬送される情報の例は、運転動作に関連する情報(例えば、速度、加速度、位置等)、エンターテイメント動作に関連する情報(例えば、スピーカの音量、キャビン動作に関連する情報(例えば、空調(AC)設定、シートの位置)等)、および車両の動作に関連する任意のその他の情報を含む。
【0032】
要求は、読み取り要求であり得る。読み取り要求は、アプリケーションが車両信号によって表される情報(例えば、車両の速度)を取得することを要求することを示す。代替的に、または追加的に、要求は、書き込み要求であり得る。書き込み要求は、アプリケーションが車両信号によって表される情報を設定すること(例えば、車両上のスピーカの音量を書き込むこと)を要求することを示す。
【0033】
いくつかの場合において、接続車両システムアライアンス(COVESA)によって展開された車両信号仕様(VSS)は、車両信号に対する共通のフォーマット/構造を提供するために使用され得る。VSSは、車両をとりまく情報を通信するために自動車アプリケーションにおける標準として使用され得る車両信号に対するドメイン分類法を導入する。VSSは、車両バスを介して通信される未加工データと、同様にインフォテイメントシステムとより一般的に関連付けられたデータとを伴って、古典的な属性、センサ、アクチュエータの意味において、車両信号をツリー様構造で定義する。COVESAは、信号のカタログを定義する。より一般的に、信号のカタログは、「信号カタログ」として参照され得る。信号カタログは、データエントリノードのセットを含み、その各々は、多数の要素(例えば、信号タイプ(例えば、センサ、アクチュエータ、属性)、データタイプ(例えば、整数、浮動小数点、ストリング等)、単位(例えば、km/時、摂氏等))を使用して、特定の車両信号を定義する。信号カタログは、ツリー構造に編成され、ここで、データエントリノードがリーフであり、ブランチノードは、データエントリノードのセットおよびサブブランチを再グループ化する。いくつかの場合において、異なるタイプの車両は、異なる信号カタログを有する。
【0034】
表1は、COVESA VSSにしたがう、車両信号に対して定義される信号構造/フォーマットの例である。
【表1】
【0035】
上記の表1から見られるように、ドットは、ブランチノード(子ブランチノードまたはデータエントリノードのセット)またはデータエントリ(リーフ)ノード(センサ、アクチュエータ、または属性)としてコンポーネントを識別するためのネームパスを記している。センサは、車両から発する一方向信号(例えば、車両内の1つ以上のセンサの測定にしたがって生成される)を示している。アクチュエータは、設定値または獲得値であり得る二方向信号(すなわち、信号が現在の状態を示し得ることまたは状態を設定するために使用され得ること)を示している。ブランチは、ツリー構造内のノードである。属性は、典型的には、固定値である。センサ/アクチュエータは、典型的には、センサ内で変化が発生したときに信号値を継続的にアップデートするパブリッシャ(またはプロデューサ)を有するが、属性は、典型的にはイグニションサイクルごとに1回よりも多く変化すべきではない設定値を有する。いくつかの場合において、表1内の信号は、拡張可能マークアップ言語(XML)、JavaScriptオブジェクトノーテーション(JSON)スクリプト、または別のエンコーディングフォーマットを使用して実装され得る。
【0036】
信号タイプおよびデータタイプに加え、車両信号を表すノードは、その他の要素(例えば、min(信号の最小値を表す)、max(信号の最大値を表す)等)を含み得る。車両信号またはノードに関連付けられた要素のセットまたはサブセットはまた、車両信号またはノードのセマンティクスとして参照される。いくつかの場合において、信号のセマンティクスは、信号ネームの要素を除外する。例えば、表2は、ノードの例示的要素を示す。
【表2】
【0037】
各車両信号に関し、定義は、各要素に割り当てられ得る。例えば、Vehicle.Speedに関し、Unitは、キロメータ/時またはマイル/時のいずれかとして定義され得る。MinおよびMaxは、車両の最小速度または最大速度として定義され得る。別の例において、Vehicle.Cabin.HVAC.Station.Row1.Left.Temperatureに関し、Unitは、摂氏または華氏のいずれかとして定義され得る。
【0038】
いくつかの実装において、各車両信号に対する要素の定義は、車両の製造業者によって設定され得る。例えば、製造業者は、車両の標的動作領域に基づいて定義を設定し得る。例えば、米国内で動作する車両に関し、信号Vehicle.SpeedのUnitは、マイル/時に設定され得、信号Vehicle.Cabin.HVAC.Station.Row1.Left.TemperatureのUnitは、華氏に設定され得る。他方、カナダ、欧州、またはアジア内で動作する車両に関し、信号Vehicle.SpeedのUnitは、キロメータ/時に設定され得、信号Vehicle.Cabin.HVAC.Station.Row1.Left.TemperatureのUnitは、摂氏に設定され得る。いくつかの場合において、要素の定義は、車両のモデルに基づいて設定され得る(例えば、異なるモデルは、Vehicle.Speedの異なるMin/Maxを有し得る)。異なるモデルはまた、Vehicle.Speedの異なるデータタイプ(例えば、整数または浮動小数点)を定義し得る。代替的にまたは追加的に、いくつかの車両信号に対する要素の定義は、ローカルにまたは遠隔的にのいずれかで、またはこれらの組み合わせで、車両の動作アドミニストレータ、車両のオーナー、車両のドライバによって設定または調整され得る。要素の定義は、車両のオペレーティングシステムが車両内にインストールされたときに設定され得る。代替的にまたは追加的に、要素の定義はまた、車両のユーザインターフェースにおいて直接的に、またはサーバ(例えば、
図1におけるサーバ130)を通して設定され得る。
【0039】
いくつかの場合において、識別子は、各車両信号に割り当てられ得る。例えば、VSSは、各信号に対してUUID(Universally Unique Identifier)を定義する。UUIDは、信号のネームから作成される。いくつかの場合において、要求は、要求された車両信号のネーム(例えば、UUID)を含み得る。UUIDは、車両信号のその他の要素の情報(例えば、UnitまたはData Type)を含まない。したがって、UUIDは、信号のセマンティクス(または信号をどのように解釈するか)を表さない。
【0040】
いくつかの実装において、その他の要素(要素は信号ネームを除外する)の情報を含む識別子が使用され得る。そのような識別子は、拡張識別子(例えば、拡張UUID(EUUID))として参照され得る。識別子のその他のネームもまた、使用され得る。加えて、信号の識別子またはネームを示すために、EUUIDはまた、信号の1つ以上の要素の定義(すなわち、信号のセマンティクス)を含み得る。拡張識別子内に要素を含むことによって、車両信号は、同じ拡張識別子が信号を参照するために使用される限り、正確に解釈および設定され得る。このアプローチは、同じ信号に対して要素の異なる定義(または異なるセマンティクス)を有し得る異なる系統を有する車両信号を通信するための効率的な方法を提供する。
【0041】
いくつかの実装において、車両信号の1つ以上の要素の定義は、組み合わされた値に結合され得る。1つの例において、車両信号の各要素の定義は、ストリングによって表され得る(例えば、Vehicle.Speedに関し、Unitの定義は、「マイル/時」または「m/時」または「キロメータ/時」または「km/時」として表され得、MinおよびMaxの定義はまた、それぞれ、ストリング「0」および「160」として表され得る)。これらのストリングは、ジョイントストリングを形成するように結合され得る。ジョイントストリングはさらに、信号のネームと結合され、ノードの系統を一意的に表す組み合わされたストリングを形成し得る。
【0042】
代替的にまたは追加的に、車両信号の1つ以上の要素の定義は、値によって表され得る。例えば、Vehicle.Speedに関し、Unitの定義は、列挙値を使用することによって表され得(例えば、「マイル/時」に対して0、「キロメータ/時」に対して1)、MinおよびMaxの定義はまた、それぞれ、整数値0および160として表され得る。これらの数は、結合され、ジョイント値を形成し得る。ジョイント値はさらに、信号のネームと結合され、組み合わされたストリングを形成し得る。
【0043】
これらのアプローチは、組み合わせで使用され得る(例えば、いくつかの要素の定義は、ストリングを使用することによって表され得、その一方で、いくつかの要素の定義は、値を使用することによって表され得る)。その他のエンコーディング方法もまた、要素の定義を表すために使用され得る。これらの表現は、結合され、組み合わされたストリングを形成し得る。いくつかの場合において、ストリングとして表される信号のネーム(例えば、“Vehicle.Speed”)を使用することの代わりに、Vehicle.SpeedのUUIDまたはUUIDの短縮形が、信号のネームを表すために使用され、組み合わされたストリングを形成するためにその他の要素の定義と組み合わされ得る。UUIDの短縮形は、UUID(または信号のネーム)をハッシュ関数への入力として使用し、UUIDよりも短い(例えば、16ビット、32ビット、または64ビット)ハッシュ積を生成することによって生成され得る。
【0044】
いくつかの場合において、既に議論した組み合わされたストリングは、EUUIDとして使用され得る。しかしながら、固定長(例えば、64ビットまたは128ビット)を用いてEUUIDを定義することが有益であり得る。これは、車両信号に対するシグナリング交換を簡略化することに役立ち得る。1つの実装において、組み合わされたストリングは、追加的な「0」ビットを充填することによって固定長に拡張され得るか、または、固定長を超える組み合わされたストリングのビットを削除することによって固定長に短縮され得る。別の実装においては、ハッシュ関数が使用され得る。組み合わされたストリングは、EUUIDの固定長を有するハッシュ積を生成するために、ハッシュ関数への入力として使用され得る。代替的にまたは組み合わせで、EUUIDを生成するために、組み合わされたストリングに圧縮アルゴリズムが適用され得る。
【0045】
信号のEUUIDは、信号のセマンティク搬送要素の定義を含むので、同じ要素の異なる定義を有する同じ信号は、異なるEUUIDを有し得る。例えば、既に議論したように、マイル/時またはキロメータ/時の表現が、EUUIDの生成プロセス内に含まれるので、マイル/時としてのUnitの定義を有するVehicle.Speedは、キロメータ/時としてのUnitの定義を有する信号Vehicle.Speedとは異なるEUUIDを有し得る。同様に、信号のデータタイプが信号カタログの1つの系統から信号カタログの別の系統に変更された場合、信号のEUUIDは、これら2つの系統に対して異なり得る。他方、信号のデータタイプが信号カタログの1つの系統から信号カタログの別の系統まで同じままである場合、信号のEUUIDは、これら2つの系統に対して同じであり得る。したがって、このアプローチは、車両信号の(例えば、アプリケーションと車両との間の)交換の複雑性を低減させる。アプリケーションは、信号カタログの異なる系統と、各信号に対する要素の定義の変更とを追跡する必要がなく、その代わりに、アプリケーションは、信号を要求し、信号値の意味を解釈するためにEUUIDを使用することだけを必要とする。
【0046】
いくつかの場合において、信号のネーム以外に、車両信号の全てのその他の要素が、EUUIDを生成するために組み合わされたストリング内に含まれるわけではない。1つの例においては、Name、Signal Type、Data Type、Unit、Min、Max、Allowed、およびDefaultは含まれるが、DescriptionおよびCommentは含まれない。別の例においては、信号の解釈の混乱を引き起こし得る要素(例えば、UnitおよびData Type)のみが、信号のネームとともに組み合わされたストリング内に含まれる。さらに別の例においては、複数の系統が利用可能である要素のみが、組み合わされたストリング内に含まれる。例えば、信号のデータタイプが1つの系統においては整数であり得るが、別の系統においては浮動小数点であり得る場合、データタイプは、組み合わされたストリング内に含まれる。一方、1つの車両モデルに対する1つの信号に対してMinおよびMaxが常に同じである場合、MinおよびMaxは、組み合わされたストリング内に含まれないことがあり得る。
【0047】
EUUIDを生成するために組み合わされたストリング内に含まれる要素の集合(すなわち、どの要素が含まれるかについてのリスト)は、プロトコル(例えば、VSS)で定義され得る。代替的にまたは追加的に、EUUIDを生成するために組み合わされたストリング内に含まれる要素の集合は、信号を要求するアプリケーションにアクセス可能なサーバまたはウェブサイトを通して利用可能であり得る。同様に、既に議論したEUUIDの生成中に使用されるハッシュ関数はまた、VSSで定義され得るか、または、そうでなければサーバまたはウェブサイト内のアプリケーションに適用可能であり得る。いくつの場合において、特定の車両に対する各車両信号のEUUIDはまた、アプリケーションに適用可能であり得る。この場合において、アプリケーションは、クエリをサーバ(例えば、
図1におけるサーバ130)に送信し、特定の車両の信号のEUUIDをクエリし得る。このようにすることで、アプリケーションは、EUUID自体を生成する必要がない。
【0048】
いくつかの場合において、202における要求は、要求された信号のEUUIDを含み得る。実装において、アプリケーションが車両に接続されたとき、または、セッションの開始時に車両にログオンしたとき、アプリケーションは、アプリケーションがセッション内で要求し得る1つ以上の信号のEUUIDを含むジョイント要求を送信し得る。このようにすることで、アプリケーションは、セッション全体にわたって、車両信号に対する全要求においてEUUIDを含む必要はない。代替的にまたは組み合わせで、アプリケーションは、セッション全体にわたって車両信号に対する各要求内にEUUIDを含み得る。
【0049】
いくつかの場合において、EUUIDは、VSS内の各信号カタログノードの定義内に追加的な要素として含まれ得る。代替的に、EUUIDは、ノードのパスネームの情報のみを表すUUID要素を置換し、EUUIDは、信号カタログ内の信号の系統を示すために使用され得る。
【0050】
204において、車両は、車両信号を要求するパーティに車両信号を含む応答メッセージを伝送する。いくつかの場合において、応答メッセージは、車両信号の少なくとも1つの要素の定義を含む車両信号の識別子を含む。例えば、応答メッセージは、既に議論したように、EUUIDを含み得る。
【0051】
いくつかの実装において、車両の各車両信号のEUUIDは、車両内に(例えば、車両上のメモリデバイス内に)含まれ得る。これらのEUUIDは、例えば車両のオペレーティングシステムが車両内にインストールされたとき、車両の製造プロセス中に製造業者によって格納され得る。代替的にまたは追加的に、EUUIDは、車両のユーザインターフェースを通して、またはサーバ(例えば、
図1におけるサーバ130)を通して、車両にアップロードされ得る。EUUIDはまた、車両の製造業者、車両の動作アドミニストレータ、車両のオーナー、車両のドライバ、またはこれらの任意の組み合わせによって、車両のユーザインターフェースを通して、またはサーバを通して調整され得る。
【0052】
202における要求が、要求された信号のEUUIDを含む場合、車両は、車両内に格納されている車両信号のEUUIDを検索し、車両が対応するEUUIDを有する信号をサポートしているかどうかを決定し得る。車両がEUUIDを有する信号をサポートしている場合、車両は、信号を要求するアプリケーションに応答メッセージを伝送することによって、要求に応答し得る。応答メッセージは、信号の現在の値を含み得る。例えば、EUUIDがVehicle.Speedに対応する場合、応答メッセージは、信号の現在の速度を含み得る。さらに、既に議論したように、EUUIDは、例えばUnitを含む車両信号の要素の定義を(結合、ハッシュ、またはこれらの任意の組み合わせを通して)含む。したがって、応答メッセージは、これらの要素のインジケータを含む必要はない。例えば、マイル/時としてのUnitの定義を有する信号Vehicle.Speedは、信号として異なるEUUIDを有し得るので、応答メッセージ内の信号の値は、EUUIDに対応し得る。例えば、EUUIDが、Unitがマイル/時であることに対応する場合、信号の値は、マイル/時の単位である。EUUIDが、キロメータ/時であるUnitに対応する場合、信号の値は、キロメータ/時の単位である。アプリケーションは、Unitの追加的なインジケータを伴わずに、受信された応答メッセージ内の信号の値を正確に解釈し得る。
【0053】
いくつかの場合において、EUUIDは、信号の値とともに応答メッセージ内に含まれ得る。いくつかの場合において、応答メッセージのEUUIDが、要求されたメッセージと同じである場合、EUUIDは、応答メッセージ内で省略され得る。
【0054】
いくつかの場合において、要求された信号のEUUIDは、車両によってサポートされないことがあり得る。例えば、アプリケーションは、マイル/時のUnitにおけるVehicle.Speedを要求し、アプリケーションは、マイル/時であるUnitの定義に対応するEUUIDを含み得る。車両は、そのようなEUUIDをサポートしないことがあり得る。なぜなら、車両は、キロメータ/時のUnitにおけるVehicle.Speedのみをサポートするので、異なるEUUID(キロメータ/時のUnitに対応する)を有するVehicle.Speedをサポートすることになり得るからである。車両は、要求された信号がサポートされていないことを示す応答メッセージを送信し得る。いくつかの場合において、応答メッセージは、原因インジケータを含み得る。原因インジケータは、同じ信号の別のEUUIDがサポートされていることを示し得る。応答メッセージはさらに、サポートされているその他のEUUIDを含み得る。いくつかの実装において、車両はまた、その他のEUUIDと、その他のEUUIDに対応する信号の値との両方を含み得る。アプリケーションは、その他のEUUIDに基づいて、信号の値を解釈し得る。いくつかの場合において、ハッシュ関数が使用された後にEUUIDを生成する組み合わされたストリング内に含まれる各要素の定義を決定することは困難であり得るので、アプリケーションは、その他のEUUIDの意味を理解することが可能ではないことがあり得る。アプリケーションは、EUUIDに対する各要素の定義を取得するために、クエリをサーバ(例えば、
図1におけるサーバ130)に送信し得るか、または、車両と関連付けられたウェブサイトを検索し得る。このことは、アプリケーションが信号の値を正確に解釈することを可能にする。
【0055】
いくつかの場合において、既に議論したように、アプリケーションは、セッションの開始時にジョイント要求を送信する。ジョイント要求は、アプリケーションがセッション内で要求し得る信号の複数のEUUIDを含み得る。アプリケーションは、これらのEUUIDがサポートされているかどうかを決定し、ジョイント応答メッセージをアプリケーションに送信する。ジョイント応答メッセージは、サポートされている要求されたEUUIDのリスト、サポートされていない要求されたEUUIDのリスト、同じ要求された信号の対応する代替的なEUUIDを伴うサポートされていない要求されたEUUIDのリストを示し得る。このことは、アプリケーションが、セッションに対して代替的なEUUIDを使用するかどうかを決定すること、サポートされているEUUIDを有する信号を解釈するための追加的な情報を取得すること、またはセッション内のサポートされていないEUUIDの信号の要求を控えることを助ける。
【0056】
EUUIDを使用して車両信号の値を取得する手順(すなわち、信号を読み取る要求)と同様に、EUUIDはまた、車両信号を書き込むために使用され得る。例えば、アプリケーションは、車両信号を書き込む要求を送信し得る。要求は、車両信号のEUUIDを含み得る。車両は、車両がEUUIDをサポートするかどうかを決定し得る。EUUIDがサポートされている場合、車両は、要求内の値にしたがって車両信号の値を設定することに進み得る。EUUIDがサポートされていない場合、車両は要求を拒絶する応答メッセージを送信し得る。このことは、車両が車両信号の値を不正確に設定することを防止する。例えば、アプリケーションが、華氏の単位である値を意図しているとき、キャビンの標的温度を摂氏の単位の値で設定する。いくつかの場合において、応答メッセージはまた、車両がサポートする同じ車両信号の代替的なEUUIDを含み得る。このことは、アプリケーションが、代替的なEUUIDに対応する値で要求を再送することを可能にする。
【0057】
図4は、実装にしたがう、拡張識別子を使用して車両信号情報を通信する例示的な方法400を示すフロー図である。方法400は、
図1に示されているエンティティ(例えば、車両120、アプリケーション122、サーバ130、およびこれらの任意の組み合わせを含む)によって実装され得る。
図4に示されている方法400はまた、追加的なエンティティ、より少ないエンティティ、または異なるエンティティを使用して実装され得る。さらに、
図4に示されている方法400は、示されている順序でまたは異なる順序で遂行され得る追加的な動作、より少ない動作、または異なる動作を使用して実装され得る。いくつかの場合において、動作または動作のグループは、例えば、指定された回数の反復について、または、終了条件に到達するまで、反復または繰り返され得る。
【0058】
402において、サーバ(例えば、
図1にけるサーバ130)は、車両信号情報クエリを受信し得る。車両信号情報クエリは、車両信号カタログ内のノードのリストを含み得る。車両信号情報クエリは、1つの特定のタイプの車両によってサポートされる既に議論した拡張識別子(例えば、EUUID)の情報要求を表す。車両信号情報クエリは、拡張識別子が要求されるノードのパスネーム(例えば、Vehicle.Speed)を含み得る。
【0059】
いくつかの場合において、車両信号情報クエリは、既に議論したような
図1におけるアプリケーション122によって送信され得る。代替的に、車両信号クエリは、アプリケーション122の開発者のサーバまたはデバイスから送信され得る。例えば、アプリケーション開発者は、アプリケーションが特定のタイプの車両上に展開され得るかどうかを決定することを試みる。アプリケーション122の開発者は、特定のタイプの車両によってサポートされる拡張識別子を収集するために、車両信号情報クエリを使用し得る。このアプローチは、アプリケーション122が、車両の特定のタイプの車両信号のセマンティクスをサポートすることを確実にし、車両信号のセマンティクス(例えば、単位およびデータタイプ)は、上述したような拡張識別子においてキャプチャされる。
【0060】
404において、サーバは、車両信号情報応答で車両信号情報クエリに応答し得る。車両信号情報応答は、既に議論した車両信号情報クエリを送信するエンティティに送信され得る。車両信号情報応答は、車両信号情報クエリ内のノードに対応する拡張識別子を含み得る。
【0061】
その他のアプローチはまた、サポートされた拡張識別子をアプリケーション122またはアプリケーション122の開発者に伝達するために使用され得る。例えば、車両信号情報クエリは、拡張識別子のリスト(例えば、アプリケーションによってサポートされた信号セマンティクスに基づく拡張識別子のリスト)を含み得る。これらの拡張識別子のうちの任意のものが、特定のタイプの車両によってサポートされていない場合、車両信号情報応答は、サポートされていない拡張識別子を示し得る。いくつかの場合において、クエリ内のサポートされていない拡張識別子に関し、サーバは、対応するノードを識別し得、車両信号情報応答はさらに、特定のタイプの車両によってサポートされている信号セマンティクスに基づいて、これらのノードに対する拡張識別子を含み得る。
【0062】
いくつかの場合において、アプリケーション122は、同じノードに対して複数の拡張識別子を扱うように開発され得る。例えば、アプリケーション122は、ノード車両速度を第1の拡張識別子(km/時の単位に対応する)と、第2の拡張識別子(マイル/時の単位に対応する)とを用いて扱い得る。ステップ402および404における情報交換に基づいて、アプリケーション122は、1つの車両がノード車両速度に対して第1の拡張識別子のみをサポートしているという情報を受信し得る。したがって、アプリケーション122が、そのような車両と相互作用するとき、アプリケーション122は、ノードのネームまたはパスを使用して、車両からノード車両速度の信号値を要求し得る。車両から信号値を受信した後、アプリケーション122は、正確な単位(すなわち、km/時)を使用して値を解釈し得る。いくつかの場合において、アプリケーション122は、さらなる処理および出力のために異なる単位に値を変換し得る。
【0063】
いくつかの場合において、アプリケーション開発に先立って、またはアプリケーション開発中に、アプリケーションまたはアプリケーション開発者は、ノードのリスト(例えば、ノードパスネームのリスト)をサーバに送信し得る。サーバは、特定のタイプの車両に対する信号カタログによってサポートされるこれらのノードに対応するEUUIDのセットを返送し得る。EUUIDに基づいて、アプリケーションまたはアプリケーション開発者は、車両によって使用されるこれらのノードのセマンティクス(例えば、単位およびデータタイプ)を通知され、その結果、開発者は、車両のノードセマンティクスをサポートするようにアプリケーションを適合させ得る。いくつかの場合において、アプリケーションが車両上に展開されることに先立って、アプリケーションがサポートするEUUIDのリストはまた、車両がサポートするEUUIDのリストに対して照合され得る。EUUIDの2つのリストが合致する場合、アプリケーションは、車両上に展開され得る。2つのリストが合致しない場合、車両がサポートするEUUIDのリストは、アプリケーションに返送され得る。返送されたEUUIDから、アプリケーションまたはアプリケーション開発者は、車両がサポートする信号セマンティクスを取得し得、アプリケーションは、アプリケーションが異なるセマンティクスをサポートする場合、適合され得る。
【0064】
図3は、実装にしたがう、ネットワーク350と結合されたコンピュータ302を示す高レベルアーキテクチャブロック図である。記載された例示は、記載された主題の1つの可能な実装に過ぎず、開示を単一の記載された実装に限定するように意図されてはいない。当業者は、記載されたコンポーネントが接続され、組み合わされ、または本開示と整合する代替的な態様において使用され得るという事実を理解し得る。
【0065】
ネットワーク350は、コンピュータ302とその他のデバイスとの間の通信を促進する。いくつかの場合において、ユーザ(例えば、アドミニストレータ等)は、リモートネットワークからコンピュータ302にアクセスし得る。これらの場合またはその他の場合において、ネットワーク350は、ワイヤレスネットワークまたはワイヤラインネットワークであり得る。いくつかの場合において、ユーザは、コンピュータ302にローカルにアクセスし得る。これらの場合またはその他の場合において、ネットワーク350はまた、メモリパイプ、ハードウェア接続、またはコンポーネント間の任意の内部通信パスまたは外部通信パスであり得る。
【0066】
コンピュータ302は、本開示において記載されているアルゴリズムを遂行するように構成されたコンピューティングシステムを含む。例えば、コンピュータ302は、
図1に示されているサーバ130を実装するために使用され得る。コンピュータ302は、
図1に示されているアプリケーション122を稼働させる電子デバイス(例えば、ラップトップコンピュータまたはスマートフォン等)を実装するために使用され得る。コンピュータ302はまた、
図1に示されている車両信号モジュール112を実装するために使用され得る。いくつかの場合において、アルゴリズムは、実行可能なコンピューティングコード(例えば、C/C++実行可能コード等)において実装され得る。代替的に、または組み合わせにおいて、アルゴリズムは、アプリケーションプログラム(例えば、EXCEL等)において実装され得る。いくつかの場合において、コンピュータ302は、バッチアプリケーションを稼働させるスタンドアロンLINUX(登録商標)システムを含み得る。いくつかの場合において、コンピュータ302は、アプリケーションプログラムを稼働させるモバイルコンピュータまたはパーソナルコンピュータを含み得る。
【0067】
コンピュータ302は、入力デバイス(例えば、キーパッド、キーボード、タッチスクリーン、マイクロホン、スピーチ認識デバイス、または、ユーザ情報を受け入れ得る別のデバイス)、および/または、出力デバイス(デジタルデータ、視覚的情報および/またはオーディオ情報、またはGUIを含むコンピュータ302の動作と関連付けられた情報を搬送する)を含み得る。
【0068】
コンピュータ302は、クライアント、ネットワークコンポーネント、サーバ、データベース、またはその他の永続性等としての役割を果たし得る。いくつかの場合において、コンピュータ302の1つ以上のコンポーネントは、クラウドコンピューティングベースの環境内で動作するように構成され得る。
【0069】
高レベルにおいて、コンピュータ302は、データおよび情報を受信、伝送、処理、格納、または管理するように動作可能である電子コンピューティングデバイスである。いくつかの実装にしたがうと、コンピュータ302はまた、アプリケーションサーバ、eメールサーバ、ウェブサーバ、キャッシングサーバ、ストリーミングデータサーバ、ビジネスインテリジェンス(BI)サーバ、および/またはその他のサーバを含み得るか、または、それらと通信可能に結合され得る。
【0070】
コンピュータ302は、クライアントアプリケーション(例えば、ユーザデバイス上で実行している)からネットワーク350を介して要求を受信し、適切なソフトウェアアプリケーションにおいて該要求を処理することによって、受信された要求に応答し得る。加えて、要求はまた、内部ユーザから(例えば、コマンドコンソールから、または別の適切なアクセス方法によって等)、外部またはサードパーティ、その他の自動化アプリケーション、ならびに任意のその他の適切なエンティティ、個人、システム、またはコンピュータから、コンピュータ302に送信され得る。
【0071】
コンピュータ302のコンポーネントの各々は、システムバス303を使用して通信し得る。いくつかの実装において、コンピュータ302の任意のコンポーネントおよび/または全てのコンポーネント(ハードウェアおよび/またはソフトウェアの両方)は、アプリケーションプログラミングインターフェース(API)312および/またはサービス層313を使用して、システムバス303を介して相互におよび/またはインターフェース304とインターフェースし得る。API312は、ルーチン、データ構造、およびオブジェクトクラスに対する仕様を含み得る。API312は、コンピュータ言語独立またはコンピュータ言語従属のいずれかであり得、完全なインターフェース、単一の機能、またはAPIのセットをすら参照し得る。サービス層313は、コンピュータ302にソフトウェアサービスを提供する。コンピュータ302の機能性は、このサービス層を使用する全てのサービス消費者にとってアクセス可能であり得る。例えばサービス層313によって提供されるようなソフトウェアサービスは、定義されたインターフェースを通して、再利用可能な定義されたビジネス機能性を提供する。例えば、インターフェースは、JAVA(登録商標)、C++、または拡張可能マークアップ言語(XML)フォーマットまたは他の適切なフォーマットにおいてデータを提供するその他の適切な言語において書かれたソフトウェアであり得る。コンピュータ302の一体型コンポーネントとして例示されているが、代替的な実装は、コンピュータ302のその他のコンポーネントとの関係におけるスタンドアロンコンポーネントとしてAPI312および/またはサービス層313を例示し得る。さらに、API312および/またはサービス層313の任意の部分または全ての部分は、本開示の範囲から逸脱することなしに、別のソフトウェアモジュールまたはハードウェアモジュールの子モジュールまたはサブモジュールとして実装され得る。
【0072】
コンピュータ302は、インターフェース304を含む。
図3においては単一のインターフェース304として例示されているが、2つ以上のインターフェース304が、コンピュータ302の特定のニーズ、構成、または特定の実装にしたがって使用され得る。インターフェース304は、ネットワーク350に接続された分散環境内のその他のシステムとの通信のために、コンピュータ302によって使用される(例示されているかどうかは問わない)。概して、インターフェース304は、適切な組み合わせにおけるソフトウェアおよび/またはハードウェアにおいてエンコードされ、ネットワーク350と通信するように動作可能なロジックを含む。より具体的に、インターフェース304は、通信と関連付けられた1つ以上の通信プロトコルをサポートするソフトウェアを含み得、その結果、ネットワーク350またはインターフェースのハードウェアは、物理的信号を通信するように動作可能であり得る。
【0073】
コンピュータ302は、プロセッサ305を含む。
図3においては単一のプロセッサ305として例示されているが、2つ以上のプロセッサが、コンピュータ302の特定のニーズ、構成、または特定の実装にしたがって使用され得る。概して、プロセッサ305は、コンピュータ302の動作を遂行するために命令を実行し、データを操作する。いくつかの場合において、プロセッサ305は、データ処理装置を含み得る。
【0074】
コンピュータ302はまた、コンピュータ302に対するデータを保持するメモリ306を含む。
図3においては単一のメモリ306として例示されているが、2つ以上のメモリが、コンピュータ302の特定のニーズ、構成、または特定の実装にしたがって使用され得る。メモリ306は、コンピュータ302の一体型コンポーネントとして例示されているが、代替的な実装において、メモリ306は、コンピュータ302の外部にあり得る。
【0075】
アプリケーション307は、コンピュータ302の特定のニーズ、構成、または特定の実装にしたがって、機能性を提供するアルゴリズミックソフトウェアエンジンを含む。単一のアプリケーション307として例示されているが、アプリケーション307は、コンピュータ302上の複数のアプリケーションとして実装され得る。加えて、コンピュータ302に一体化されて例示されているが、代替的な実装において、アプリケーション307は、コンピュータ302に対して外部にあり得る。
【0076】
システム300に関連付けられ、またはシステム300の外部にあり、そしてネットワーク350と通信する任意の数のコンピュータ302が存在し得る。さらに、用語「クライアント」、「ユーザ」、およびその他の適切な術語は、本開示の範囲から逸脱することなしに、必要に応じて同義的に使用され得る。さらに、本開示は、多くのユーザが1つのコンピュータ302を使用し得ること、または一人のユーザが複数のコンピュータ302を使用し得ることを企図している。
【0077】
主題の記載されている実装は、単独または組み合わせで、1つ以上の特徴を含み得る。
【0078】
例えば、第1の実装において、方法は、サーバにおいて、車両信号に対するクエリを受信することと、サーバから、車両信号の識別子を含む応答メッセージを伝送することであって、識別子は、車両信号のネームと、車両信号の少なくとも1つのその他の要素の定義との表現を含む、こととを含む。
【0079】
上記の実装およびその他の記載された実装の各々は、随意に、以下の特徴のうちの1つ以上を含み得る。
【0080】
第1の特徴は、以下の特徴のうちの任意のものと組み合わせ可能であり、少なくとも1つのその他の要素は、車両信号の単位またはデータタイプを含む。
【0081】
第2の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、識別子は、車両信号の少なくとも1つのその他の要素の定義を含むストリングのハッシュ積を含む。
【0082】
第3の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、クエリは、車両信号の識別子を含む。
【0083】
第4の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、クエリは、車両信号に対するパスネームを含む。
【0084】
第5の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、クエリは、車両信号の第1の識別子を含み、応答メッセージ内の識別子は、車両信号の第2の識別子であり、第1の識別子は、車両信号の少なくとも1つのその他の要素の第1の定義に基づいており、第2の識別子は、車両信号の少なくとも1つのその他の要素の第2の定義に基づいている。
【0085】
第6の特徴は、上記の特徴のうちの任意のものと組み合わせ可能であり、車両信号は、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)として定義される。
【0086】
第2の実装において、サーバは、少なくとも1つのハードウェアプロセッサと、少なくとも1つのハードウェアプロセッサに結合され、少なくとも1つのハードウェアプロセッサによる実行のためのプログラミング命令を格納している1つ以上のコンピュータ読み取り可能な格納媒体であって、プログラミング命令は、実行されたとき、サーバに、サーバにおいて、車両信号に対するクエリを受信することと、サーバから、車両信号の識別子を含む応答メッセージを伝送することであって、識別子は、車両信号のネームと、車両信号の少なくとも1つのその他の要素の定義との表現を含む、こととを含む動作を遂行させる、1つ以上のコンピュータ読み取り可能な格納媒体とを備える。
【0087】
上記の実装およびその他の記載された実装の各々は、随意に、以下の特徴のうちの1つ以上を含み得る。
【0088】
第1の特徴は、以下の特徴のうちの任意のものと組み合わせ可能であり、少なくとも1つのその他の要素は、車両信号の単位またはデータタイプを含む。
【0089】
第2の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、識別子は、車両信号の少なくとも1つのその他の要素の定義を含むストリングのハッシュ積を含む。
【0090】
第3の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、クエリは、車両信号の識別子を含む。
【0091】
第4の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、クエリは、車両信号に対するパスネームを含む。
【0092】
第5の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、クエリは、車両信号の第1の識別子を含み、応答メッセージ内の識別子は、車両信号の第2の識別子であり、第1の識別子は、車両信号の少なくとも1つのその他の要素の第1の定義に基づいており、第2の識別子は、車両信号の少なくとも1つのその他の要素の第2の定義に基づいている。
【0093】
第6の特徴は、上記の特徴のうちの任意のものと組み合わせ可能であり、車両信号は、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)として定義される。
【0094】
第3の実装において、コンピュータ読み取り可能な媒体は、命令を格納しており、命令は、実行されたとき、コンピューティングデバイスに、サーバにおいて、車両信号に対するクエリを受信することと、サーバから、車両信号の識別子を含む応答メッセージを伝送することであって、識別子は、車両信号のネームと、車両信号の少なくとも1つのその他の要素の定義との表現を含む、こととを含む動作を遂行させる。
【0095】
上記の実装およびその他の記載された実装の各々は、随意に、以下の特徴のうちの1つ以上を含み得る。
【0096】
第1の特徴は、以下の特徴のうちの任意のものと組み合わせ可能であり、少なくとも1つのその他の要素は、車両信号の単位またはデータタイプを含む。
【0097】
第2の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、識別子は、車両信号の少なくとも1つのその他の要素の定義を含むストリングのハッシュ積を含む。
【0098】
第3の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、クエリは、車両信号の識別子を含む。
【0099】
第4の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、クエリは、車両信号に対するパスネームを含む。
【0100】
第5の特徴は、上記の特徴または以下の特徴のうちの任意のものと組み合わせ可能であり、クエリは、車両信号の第1の識別子を含み、応答メッセージ内の識別子は、車両信号の第2の識別子であり、第1の識別子は、車両信号の少なくとも1つのその他の要素の第1の定義に基づいており、第2の識別子は、車両信号の少なくとも1つのその他の要素の第2の定義に基づいている。
【0101】
第6の特徴は、上記の特徴のうちの任意のものと組み合わせ可能であり、車両信号は、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)として定義される。
【0102】
本開示に記載された主題および動作のうちのいくつかは、デジタル電子回路において、またはコンピュータソフトウェア、ファームウェア、またはハードウェア(本開示において記載された構造およびそれらの構造的均等物を含む)において、またはこれらのうちの1つ以上の組み合わせにおいて実装され得る。本開示において記載された主題のうちのいくつかは、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、コンピュータ格納媒体上にエンコードされた1つ以上のコンピュータプログラム(すなわち、コンピュータプログラム命令の1つ以上のモジュール)として実装され得る。代替的にまたは追加的に、プログラム命令は、人工的に生成された伝搬信号(例えば、データ処理装置による実行のために適切な受信器装置に伝送するための情報をエンコードするために生成される機械生成電気信号、光学信号、または電磁信号)にエンコードされ得る。コンピュータ格納媒体は、機械読み取り可能な格納デバイス、機械読み取り可能な格納基板、ランダムアクセスメモリデバイスまたはシリアルアクセスメモリデバイス、またはコンピュータ格納媒体の任意の組み合わせであり得る。
【0103】
用語「データ処理装置」、「コンピュータ」、または「電子コンピュータデバイス」という用語は、データを処理するための全ての種類の装置、デバイス、および機械を包括し、例えば、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または複数のもの、または上記のものの組み合わせを含む。装置は、特殊目的ロジック回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。いくつかの実装において、データ処理装置または特殊目的ロジック回路(または、データ処理装置または特殊目的ロジック回路の組み合わせ)は、ハードウェアベースまたはソフトウェアベース(または、ハードウェアベースおよびソフトウェアベースの両方の組み合わせ)であり得る。装置は、随意に、コンピュータプログラムに対する実行環境を作成するコード(例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または実行環境の組み合わせを構成するコード等)を含み得る。本開示は、従来的なオペレーティングシステム(例えば、LINUX(登録商標)、UNIX(登録商標)、WINDOWS(登録商標)、MAC OS(登録商標)、ANDROID(登録商標)、IOS、または任意のその他の適切な従来的なオペレーティングシステム等)を伴うかまたは伴わないデータ処理装置の使用を企図している。
【0104】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとして参照されることまたは記載されることもあり得る)は、コンパイル型言語またはインタプリタ型言語、または宣言型言語または手続き型言語を含む任意の形式のプログラミング言語で書き込まれ得、それは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適したその他のユニットとしてを含む任意の形式において展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、そうである必要はない。プログラムは、その他のプログラムまたはデータを保持するファイルの一部分(例えば、マークアップ言語ドキュメント内に格納された1つ以上のスクリプト等)において、問題としているプログラム専用の単一ファイルにおいて、または複数の連携したファイル(例えば、1つ以上のモジュール、サブルーチン、またはコードの一部分を格納するファイル)において格納され得る。コンピュータプログラムは、1つの場所に位置する1つのコンピュータ上で、または複数の場所にわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。種々の図面において例示されたプログラムの部分は、種々のオブジェクト、方法、またはその他のプロセスを通して種々の特徴および機能性を実装する個々のモジュールとして示されているが、代わりに、プログラムは、必要に応じて、多数のサブモジュール、サードパーティサービス、コンポーネント、ライブラリ等を含み得る。逆に、種々のコンポーネントの特徴および機能性は、必要に応じて、単一のコンポーネントに組み合わされ得る。
【0105】
本開示におけるプロセスおよびロジックフローのうちのいくつかは、1つ以上のプログラマブルプロセッサによって遂行され得、入力データに対して動作し、出力を生成することによってアクションを遂行するように、1つ以上のコンピュータプログラムを実行し得る。プロセスおよびロジックフローはまた、特殊目的ロジック回路(例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路))によって遂行され得、装置はまた、特殊目的ロジック回路として実装され得る。
【0106】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用マイクロプロセッサおよび特殊目的マイクロプロセッサの両方、および任意の種類のデジタルコンピュータのプロセッサを含む。概して、プロセッサは、リードオンリメモリまたはランダムアクセスメモリ、または両方から命令およびデータを受信し得る。プロセッサは、例えば、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または複数のもの、または上記の任意の組み合わせを含み得る。プロセッサは、特殊目的論理回路、例えばCPU(中央処理ユニット)、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含み得る。
【0107】
コンピュータプログラムの実行のために適したコンピュータは、汎用マイクロプロセッサまたは特殊目的マイクロプロセッサ、これらの両方、または任意のその他の種類のCPUに基づき得る。概して、CPUは、リードオンリメモリ(ROM)またはランダムアクセスメモリ(RAM)、またはこれらの両方から命令およびデータを受信し得る。コンピュータの必須要素は、命令を遂行または実行するためのCPU、および命令およびデータを格納するための1つ以上のメモリデバイスである。概して、コンピュータはまた、データを格納するための1つ以上の大容量格納デバイス(例えば、磁気ディスク、電磁ディスク、または光学ディスク)を含むか、または1つ以上の大容量格納デバイスからデータを受信すること、1つ以上の大容量格納デバイスにデータを転送すること、または両方を行うために、動作可能に結合され得る。しかしながら、コンピュータは、そのようなデバイスを有することは必要ではない。さらに、コンピュータは、別のデバイス(例えば、いくつか例を挙げると、モバイル電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオまたはビデオプレイヤ、ゲームコンソール、全地球測位システム(GPS)受信器、またはポータブル格納デバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ))内に埋め込まれ得る。
【0108】
コンピュータプログラム命令およびデータを格納することに適したコンピュータ読み取り可能な媒体(必要に応じて、一時的または非一時的)は、全ての形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、半導体メモリデバイス(例えば、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、およびフラッシュメモリデバイス等)、磁気ディスク(例えば、内部ハードディスクまたはリムーバブルディスク等)、磁気光学ディスク、およびCD-ROM、DVD+/-R、DVD-RAM、およびDVD-ROMディスクを含む。メモリは、種々のオブジェクトまたはデータ(キャッシュ、クラス、フレームワーク、アプリケーション、バックアップデータ、ジョブ、ウェブページ、ウェブページテンプレート、データベーステーブル、動的情報を格納しているリポジトリ、および任意のその他の適切な情報(任意のパラメータ、変数、アルゴリズム、命令、規則、制約、またはそれらに対する参照を含む)を含む)を格納し得る。加えて、メモリは、任意のその他の適切なデータ(例えば、ログ、ポリシー、セキュリティ、またはアクセスデータ、報告ファイル、ならびにその他のもの)を含み得る。プロセッサおよびメモリは、特殊目的ロジック回路によって補足され得るか、または、特殊目的ロジック回路内に組み込まれ得る。いくつかの場合において、コンピュータ格納媒体は、一時的、非一時的、またはこれらの組み合わせであり得る。
【0109】
ユーザとの相互作用を提供するために、本開示に記載された主題の実装は、ディスプレイデバイス(例えば、ユーザに情報を提供するためのCRT(陰極線管)、LCD(液晶ディスプレイ)、LED(発光ダイオード)、またはプラズマモニタ等)と、キーボードおよびポインティングデバイス(例えば、ユーザがそれによって入力をコンピュータに提供し得るマウス、トラックボール、またはトラックパッド)とを有するコンピュータ上で実装され得る。入力はまた、タッチスクリーン(例えば、圧力感受性を伴うタブレットコンピュータ表面、容量性または電気的な感知を使用したマルチタッチスクリーン、またはその他のタイプのタッチスクリーン)を使用してコンピュータに提供され得る。その他の種類のデバイスも同様に、ユーザとの相互作用を提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、任意の形式の感知フィードバック(例えば、視覚的フィードバック、聴覚的フィードバック、または触覚フィードバック等)であり得、ユーザからの入力は、任意の形式(音響入力、スピーチ入力、または触覚入力を含む)において受信され得る。加えて、コンピュータは、ウェブブラウザから受信された要求に応答して、例えばユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザによって使用されるデバイスにドキュメントを送信すること、およびユーザによって使用されるデバイスからドキュメントを受信することによって、ユーザと相互作用し得る。
【0110】
用語「グラフィカルユーザインターフェース」または「GUI」は、1つ以上のグラフィカルユーザインターフェースと、特定のグラフィカルユーザインターフェースのディスプレイの各々とを記載するために、単数形または複数形で使用され得る。したがって、GUIは、任意のグラフィカルユーザインターフェース(限定するものではないが、ウェブブラウザ、タッチスクリーン、または情報を処理し、情報結果をユーザに効率的に提示するコマンドラインインターフェース(CLI)を含む)を表し得る。概して、GUIは、複数のユーザインターフェース(UI)要素(いくつかまたは全てが、ビジネススイートユーザによって動作可能な相互作用フィールド、プルダウンリスト、およびボタン等のウェブブラウザと関連付けられている)を含み得る。これらのUI要素またはその他のUI要素は、ウェブブラウザの機能に関連し得るか、または、ウェブブラウザの機能を表し得る。
【0111】
用語「リアル・タイム(real-time)」、「リアル タイム(real time)」、「リアルタイム(realtime)」、「リアル(ファスト)タイム(real (fast) time:RFT)」、「ほぼリアル・タイム(near(ly) real-time:NRT)」、「準リアル・タイム(quasi real-time)」、または(当業者によって理解されるような)類似の用語は、アクションおよび応答が、時間的に近接したものであり、その結果、個人は、アクションおよび応答が実質的に同時に起こることを知覚することを意味する。例えば、データにアクセスするための個人のアクションに続いたデータのディスプレイに対する(またはディスプレイの相互作用のための)応答に対する時間差は、1m秒未満、1秒未満、5秒未満等であり得る。要求されたデータは、瞬間的に表示される(または、表示がイニシエートされる)必要はないが、それは、記載されたコンピューティングシステムの処理限界、例えばデータを収集すること、正確に測定すること、分析すること、処理すること、格納すること、または伝送することのために要求される時間を考慮して、任意の意図的な遅延を伴わずに表示される(または、表示がイニシエートされる)。
【0112】
本開示に記載される主題の実装は、バックエンドコンポーネント(例えば、データサーバのようなもの)を含むコンピューティングシステム、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ等)を含むコンピューティングシステム、またはフロントエンドコンポーネント(例えば、それを通してユーザが本開示に記載された主題の実装と相互作用し得るグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ等)を含むコンピューティングシステム、または1つ以上のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実装され得る。システムのコンポーネントは、ワイヤラインまたはワイヤレスデジタルデータ通信(またはデータ通信の組み合わせ)の任意の形式または媒体、例えば通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、Worldwide Interoperability for Microwave Access(WIMAX)、ワイヤレスローカルエリアネットワーク(WLAN)(例えば、802.11 a/b/g/nまたは802.20(または、802.11xと802.20との組み合わせ、または本開示と整合するその他のプロトコル)を使用する)、インターネットの全部または一部分、または任意のその他の通信システム、または1つ以上の位置におけるシステム(または通信ネットワークの組み合わせ)を含む。ネットワークは、例えば、インターネットプロトコル(IP)パケット、フレームリレーフレーム、非同期転送モード(ATM)セル、音声、ビデオ、データ、またはネットワークアドレス間のその他の適切な情報(または通信タイプの組み合わせ)で通信し得る。
【0113】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して、相互から遠隔にあり、典型的には、通信ネットワークを通して相互作用し得る。クライアントとサーバとの関係は、それぞれのコンピュータ上で稼働しているコンピュータプログラムによって生じ、相互に対してクライアント・サーバ関係を有する。
【0114】
いくつかの実装において、コンピューティングシステムのコンポーネントのうちの任意のものまたは全て(ハードウェアまたはソフトウェアのいずれか(またはハードウェアとソフトウェアとの組み合わせ))は、アプリケーションプログラミングインターフェース(API)、またはサービス層(またはAPIとサービス層との組み合わせ)を使用して、相互にまたはインターフェースとインターフェースし得る。APIは、ルーチン、データ構造、およびオブジェクトクラスに対する仕様を含み得る。APIは、コンピュータ言語、独立型または従属型のいずれかであり、完全なインターフェース、単一の機能、またはAPIのセットすら参照し得る。サービス層は、コンピューティングシステムにソフトウェアサービスを提供する。コンピューティングシステムの種々のコンポーネントの機能性は、このサービス層を使用するすべてのサービス消費者にとってアクセス可能であり得る。ソフトウェアサービスは、定義されたインターフェースを通して、再利用可能な定義されたビジネス機能性を提供する。例えば、インターフェースは、拡張マークアップ言語(XML)フォーマットまたは別の適切なフォーマットにおけるデータを提供するJAVA(登録商標)、C++、またはその他の適切な言語で書かれたソフトウェアであり得る。APIまたはサービス層(または、APIとサービス層との組み合わせ)は、コンピューティングシステムのその他のコンポーネントとの関係における一体型コンポーネントまたはスタンドアロンコンポーネントであり得る。さらに、サービス層のうちの任意の部分または全ての部分は、本開示の範囲から逸脱することなしに、別のソフトウェアモジュール、またはハードウェアモジュールの子モジュールまたはサブモジュールとして実装され得る。
【0115】
本開示は、多くの特有の実装の詳細を含むが、これらは、任意の発明の範囲に対する限定または特許請求され得るものの範囲に対する限定として考えられるべきではなく、むしろ、特定の発明の特定の実装に特有であり得る特徴の記載として考えられるべきである。別個の実装の文脈において本開示に記載される特定の特徴はまた、組み合わせにおいて、単一の実装において、実装され得る。逆に、単一の実装の文脈において記載される種々の特徴はまた、別個に、または任意の適切なサブコンビネーションにおいて、複数の実装において実装され得る。さらに、特徴は、特定の組み合わせにおいて作用するものとして上述され得、そのように最初に特許請求すらされ得るが、特許請求される組み合わせからの1つ以上の特徴は、いくつかの場合においては、組み合わせから削除され得、特許請求される組み合わせは、サブコンビネーションまたはサブコンビネーションの変形に向けられ得る。
【0116】
主題の特定の実装が、記載されてきた。記載された実装のその他の実装、代替、および順列は、当業者に理解され得るように以下の特許請求の範囲の範囲内にある。動作は特定の順序において図面および特許請求の範囲に描写されているが、これは、所望の結果を達成するために、そのような動作が示されている特定の順序においてまたは連続順序において遂行されるべきであることを要求していると理解されるべきではなく、または、全ての例示された動作が遂行されるべきであることを要求していると理解されるべきではない(いくつかの動作は、オプションとして考えられ得る)。特定の状況において、マルチタスクまたは並列処理(またはマルチタスクと並列処理との組み合わせ)が有利であり得、適切と判断される場合には遂行され得る。
【0117】
さらに、上述の実装における種々のシステムモジュールおよびコンポーネントの分離または一体化は、全ての実装におけるそのような分離または一体化を要求していると理解されるべきではなく、記載されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに一体化され得るか、または、複数のソフトウェア製品にパッケージ化され得ると理解されるべきである。
【0118】
したがって、例示的な実装についての上記の記載は、本開示を定義または制約するものではない。本開示の精神および範囲から逸脱することなしに、その他の変更、置換、および代替もまた可能である。
【0119】
さらに、以下の任意の特許請求された実装は、少なくとも、コンピュータ実装方法、コンピュータ実装方法を遂行するためのコンピュータ読み取り可能命令を格納している非一時的コンピュータ読み取り可能な媒体、およびコンピュータ実装方法またはコンピュータ読み取り可能な媒体上に格納された命令を遂行するように構成されたハードウェアプロセッサと相互運用可能に結合されたコンピュータメモリを含むコンピュータシステムに対して適用可能であると考えられる。