IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラックベリー リミテッドの特許一覧

<>
  • 特開-車両信号の許可の制御 図1
  • 特開-車両信号の許可の制御 図2
  • 特開-車両信号の許可の制御 図3
  • 特開-車両信号の許可の制御 図4
  • 特開-車両信号の許可の制御 図5
  • 特開-車両信号の許可の制御 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024122915
(43)【公開日】2024-09-09
(54)【発明の名称】車両信号の許可の制御
(51)【国際特許分類】
   G06F 21/62 20130101AFI20240902BHJP
【FI】
G06F21/62
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024026818
(22)【出願日】2024-02-26
(31)【優先権主張番号】18/175,745
(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)【発明者】
【氏名】シャビエル ジャヴォルニッキ
(72)【発明者】
【氏名】ジョーダン トーマス ファーガソン
(57)【要約】      (修正有)
【課題】車両信号の許可の制御を実現するシステム、方法およびソフトウェアを提供する。
【解決手段】車両信号の許可を制御するために使用される方法は、許可マップを受信することを含む。許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む。方法はまた、許可マップ内の構成された許可値にしたがって、車両信号カタログ内のノードの許可要素の許可値を設定することを含む。
【選択図】図2
【特許請求の範囲】
【請求項1】
方法であって、前記方法は、
許可マップを受信することであって、前記許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む、ことと、
前記許可マップ内の前記構成された許可値にしたがって、前記車両信号カタログ内の前記ノードの前記許可要素の許可値を設定することと
を含む、方法。
【請求項2】
前記車両信号カタログは、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)に基づく、請求項1に記載の方法。
【請求項3】
前記許可要素は、読み取り許可要素または書き込み許可要素である、請求項1に記載の方法。
【請求項4】
前記許可値は、予め定義された許可値のセットからのものである、請求項1に記載の方法。
【請求項5】
前記許可値は、前記ノードの信号値に対する読み取りアクセスが、同じ許可値を有するアプリケーションの選択されたグループに限定されることを示す、請求項1に記載の方法。
【請求項6】
前記ノードは、ブランチノードであり、前記方法は、前記許可マップ内の前記構成された許可値にしたがって、前記車両信号カタログ内の前記ノードのサブノードの前記許可要素の許可値を設定することをさらに含む、請求項1に記載の方法。
【請求項7】
前記車両信号カタログ内の前記ノードのサブノードの前記許可要素の許可値を設定することは、
前記許可マップが、前記サブノードの前記許可要素の許可値を含むかどうかを決定することと、
前記許可マップが、前記サブノードの前記許可要素の許可値を含まないことを決定することに応答して、前記サブノードの前記許可要素の前記許可値を前記構成された許可値と同じであるように設定することと
を含む、請求項6に記載の方法。
【請求項8】
コンピューティングデバイスであって、前記コンピューティングデバイスは、
少なくとも1つのハードウェアプロセッサと、
前記少なくとも1つのハードウェアプロセッサに結合され、前記少なくとも1つのハードウェアプロセッサによる実行のためのプログラミング命令を格納している1つ以上のコンピュータ読み取り可能な格納媒体であって、前記プログラミング命令は、実行されたとき、前記コンピューティングデバイスに、
許可マップを受信することであって、前記許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む、ことと、
前記許可マップ内の前記構成された許可値にしたがって、前記車両信号カタログ内の前記ノードの前記許可要素の許可値を設定することと
を含む動作を遂行させる、1つ以上のコンピュータ読み取り可能な格納媒体と
を備える、コンピューティングデバイス。
【請求項9】
前記車両信号カタログは、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)に基づく、請求項8に記載のコンピューティングデバイス。
【請求項10】
前記許可要素は、読み取り許可要素または書き込み許可要素である、請求項8に記載のコンピューティングデバイス。
【請求項11】
前記許可値は、予め定義された許可値のセットからのものである、請求項8に記載のコンピューティングデバイス。
【請求項12】
前記許可値は、前記ノードの信号値に対する読み取りアクセスが、同じ許可値を有するアプリケーションの選択されたグループに限定されることを示す、請求項8に記載のコンピューティングデバイス。
【請求項13】
前記ノードは、ブランチノードであり、前記動作は、前記許可マップ内の前記構成された許可値にしたがって、前記車両信号カタログ内の前記ノードのサブノードの前記許可要素の許可値を設定することをさらに含む、請求項8に記載のコンピューティングデバイス。
【請求項14】
前記車両信号カタログ内の前記ノードのサブノードの前記許可要素の許可値を設定することは、
前記許可マップが、前記サブノードの前記許可要素の許可値を含むかどうかを決定することと、
前記許可マップが、前記サブノードの前記許可要素の許可値を含まないことを決定することに応答して、前記サブノードの前記許可要素の前記許可値を前記構成された許可値と同じであるように設定することと
を含む、請求項13に記載のコンピューティングデバイス。
【請求項15】
コンピュータ読み取り可能な媒体であって、前記コンピュータ読み取り可能な媒体は、命令を格納しており、前記命令は、実行されると、コンピューティングデバイスに、
許可マップを受信することであって、前記許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む、ことと、
前記許可マップ内の前記構成された許可値にしたがって、前記車両信号カタログ内の前記ノードの前記許可要素の許可値を設定することと
を含む動作を遂行させる、コンピュータ読み取り可能な媒体。
【請求項16】
前記車両信号カタログは、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)に基づく、請求項15に記載のコンピュータ読み取り可能な媒体。
【請求項17】
前記許可要素は、読み取り許可要素または書き込み許可要素である、請求項15に記載のコンピュータ読み取り可能な媒体。
【請求項18】
前記許可値は、予め定義された許可値のセットからのものである、請求項15に記載のコンピュータ読み取り可能な媒体。
【請求項19】
前記許可値は、前記ノードの信号値に対する読み取りアクセスが、同じ許可値を有するアプリケーションの選択されたグループに限定されることを示す、請求項15に記載のコンピュータ読み取り可能な媒体。
【請求項20】
前記ノードは、ブランチノードであり、前記動作は、前記許可マップ内の前記構成された許可値にしたがって、前記車両信号カタログ内の前記ノードのサブノードの前記許可要素の許可値を設定することをさらに含む、請求項15に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両信号の許可を制御することに関する。
【背景技術】
【0002】
車両は、多数のセンサを含み得、該多数のセンサは、それらが監視しているものにおける状態変化をコンスタントに報告する信号を放出または生成する。これらの信号は、車両の異なる局面の状態を決定するために使用され得る。車両または車両内のエンティティは、車両の動作を制御するためにこれらの信号に対する異なる値をさらに設定し得る。
【発明の概要】
【課題を解決するための手段】
【0003】
いくつかの場合、車両信号は、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)を使用して信号カタログを定義し得る。そのような信号カタログは、車両内のセンサによって放出または生成され得る信号のセットの規範的定義を提供する。
【0004】
いくつかの動作において、非ネイティブアプリケーション(例えば、外部デバイス上で稼働しているアプリケーションまたは車両上にインストールされているサードパーティアプリケーション等)は、信号のうちのいくつかに対するアクセスを必要とする。アクセスは、読み取りアクセス、書き込みアクセス、または両方であり得る。車両は、非ネイティブアプリケーションがこれらの信号にアクセスするための適正な許可を有しているかどうかを決定することを必要とする。
【0005】
いくつかの実装において、車両信号の読み取りおよび書き込みは、異なる許可値を使用することによって設定され得る。いくつかの場合、車両信号の許可値は、VSSを使用して定義された信号カタログのツリー構造のノードに基づいて設定され得る。車両内のソフトウェアまたはハードウェアは、車両信号または信号カタログ内のノードの許可値と、アクセスを要求するエンティティ(例えば、既に議論した非ネイティブアプリケーション等)の許可値とを比較し、アクセスを承諾するかどうかを決定し得る。本開示に記載されるアプローチは、車両信号に対するアクセスを制御し、セキュリティ侵害を防止し、車両動作の安全性を保護するための効率的な方法を提供する。図1~6およびそれらに関連付けられた記載は、これらの実装の追加的な詳細を提供する。
本発明は、例えば、以下の項目を提供する。
(項目1)
方法であって、上記方法は、
許可マップを受信することであって、上記許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む、ことと、
上記許可マップ内の上記構成された許可値にしたがって、上記車両信号カタログ内の上記ノードの上記許可要素の許可値を設定することと
を含む、方法。
(項目2)
上記車両信号カタログは、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)に基づく、上記項目に記載の方法。
(項目3)
上記許可要素は、読み取り許可要素または書き込み許可要素である、上記項目のいずれか一項に記載の方法。
(項目4)
上記許可値は、予め定義された許可値のセットからのものである、上記項目のいずれか一項に記載の方法。
(項目5)
上記許可値は、上記ノードの信号値に対する読み取りアクセスが、同じ許可値を有するアプリケーションの選択されたグループに限定されることを示す、上記項目のいずれか一項に記載の方法。
(項目6)
上記ノードは、ブランチノードであり、上記方法は、上記許可マップ内の上記構成された許可値にしたがって、上記車両信号カタログ内の上記ノードのサブノードの上記許可要素の許可値を設定することをさらに含む、上記項目のいずれか一項に記載の方法。
(項目7)
上記車両信号カタログ内の上記ノードのサブノードの上記許可要素の許可値を設定することは、
上記許可マップが、上記サブノードの上記許可要素の許可値を含むかどうかを決定することと、
上記許可マップが、上記サブノードの上記許可要素の許可値を含まないことを決定することに応答して、上記サブノードの上記許可要素の上記許可値を上記構成された許可値と同じであるように設定することと
を含む、上記項目のいずれか一項に記載の方法。
(項目8)
コンピューティングデバイスであって、上記コンピューティングデバイスは、
少なくとも1つのハードウェアプロセッサと、
上記少なくとも1つのハードウェアプロセッサに結合され、上記少なくとも1つのハードウェアプロセッサによる実行のためのプログラミング命令を格納している1つ以上のコンピュータ読み取り可能な格納媒体であって、上記プログラミング命令は、実行されたとき、上記コンピューティングデバイスに、
許可マップを受信することであって、上記許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む、ことと、
上記許可マップ内の上記構成された許可値にしたがって、上記車両信号カタログ内の上記ノードの上記許可要素の許可値を設定することと
を含む動作を遂行させる、1つ以上のコンピュータ読み取り可能な格納媒体と
を備える、コンピューティングデバイス。
(項目9)
上記車両信号カタログは、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)に基づく、上記項目のいずれか一項に記載のコンピューティングデバイス。
(項目10)
上記許可要素は、読み取り許可要素または書き込み許可要素である、上記項目のいずれか一項に記載のコンピューティングデバイス。
(項目11)
上記許可値は、予め定義された許可値のセットからのものである、上記項目のいずれか一項に記載のコンピューティングデバイス。
(項目12)
上記許可値は、上記ノードの信号値に対する読み取りアクセスが、同じ許可値を有するアプリケーションの選択されたグループに限定されることを示す、上記項目のいずれか一項に記載のコンピューティングデバイス。
(項目13)
上記ノードは、ブランチノードであり、上記動作は、上記許可マップ内の上記構成された許可値にしたがって、上記車両信号カタログ内の上記ノードのサブノードの上記許可要素の許可値を設定することをさらに含む、上記項目のいずれか一項に記載のコンピューティングデバイス。
(項目14)
上記車両信号カタログ内の上記ノードのサブノードの上記許可要素の許可値を設定することは、
上記許可マップが、上記サブノードの上記許可要素の許可値を含むかどうかを決定することと、
上記許可マップが、上記サブノードの上記許可要素の許可値を含まないことを決定することに応答して、上記サブノードの上記許可要素の上記許可値を上記構成された許可値と同じであるように設定することと
を含む、上記項目のいずれか一項に記載のコンピューティングデバイス。
(項目15)
コンピュータ読み取り可能な媒体であって、上記コンピュータ読み取り可能な媒体は、命令を格納しており、上記命令は、実行されると、コンピューティングデバイスに、
許可マップを受信することであって、上記許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む、ことと、
上記許可マップ内の上記構成された許可値にしたがって、上記車両信号カタログ内の上記ノードの上記許可要素の許可値を設定することと
を含む動作を遂行させる、コンピュータ読み取り可能な媒体。
(項目16)
上記車両信号カタログは、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)に基づく、上記項目のいずれか一項に記載のコンピュータ読み取り可能な媒体。
(項目17)
上記許可要素は、読み取り許可要素または書き込み許可要素である、上記項目のいずれか一項に記載のコンピュータ読み取り可能な媒体。
(項目18)
上記許可値は、予め定義された許可値のセットからのものである、上記項目のいずれか一項に記載のコンピュータ読み取り可能な媒体。
(項目19)
上記許可値は、上記ノードの信号値に対する読み取りアクセスが、同じ許可値を有するアプリケーションの選択されたグループに限定されることを示す、上記項目のいずれか一項に記載のコンピュータ読み取り可能な媒体。
(項目20)
上記ノードは、ブランチノードであり、上記動作は、上記許可マップ内の上記構成された許可値にしたがって、上記車両信号カタログ内の上記ノードのサブノードの上記許可要素の許可値を設定することをさらに含む、上記項目のいずれか一項に記載のコンピュータ読み取り可能な媒体。
(摘要)
システム、方法、およびソフトウェアが、車両信号の許可を制御するために使用される。いくつかの局面において、1つの例示的方法は、許可マップを受信することであって、許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む、ことと、許可マップ内の構成された許可値にしたがって、車両信号カタログ内のノードの許可要素の許可値を設定することとを含む。
【図面の簡単な説明】
【0006】
図1図1は、実装にしたがう、車両信号の許可を制御する例示的通信システムを示す概略図である。
【0007】
図2図2は、実装にしたがう、車両信号の許可を制御する例示的方法を示すフロー図である。
【0008】
図3図3は、実装にしたがう、コンピューティングシステムの高レベルアーキテクチャブロック図である。
【0009】
図4図4は、実装にしたがう、車両信号の例示的構造を例示するダイヤグラムである。
【0010】
図5図5は、実装にしたがう、車両信号の許可を構成する例示的方法を示すフロー図である。
【0011】
図6図6は、実装にしたがう、車両信号に対する許可構成を例示するブロック図である。
【0012】
種々の図面における同様の参照番号および指示は、同様の要素を指す。
【発明を実施するための形態】
【0013】
図1は、実装にしたがう、車両信号の許可を制御する例示的な通信システム100を示す概略図である。高レベルにおいて、例示的な通信システム100は、アプリケーション122と通信可能に結合された車両120を含む。車両120はまた、ネットワーク140を介してサーバ130と通信可能に結合される。
【0014】
車両120は、自動車両(例えば、自動車、乗用車、トラック、バス、オートバイ等)、エアクラフト(例えば、エアプレーン、無人航空車両、無人エアクラフトシステム、ドローン、ヘリコプタ等)、スペースクラフト(例えば、スペースプレーン、スペースシャトル、スペースカプセル、スペースステーション、人工衛星等)、ウォータークラフト(例えば、船、ボート、ホバークラフト、潜水艦等)、鉄道車両(例えば、列車、路面電車等)、および、既存であるか将来出現するかを問わず、上記のうちの任意のものの任意の組み合わせを含むその他のタイプの車両を含み得る。例示された例において、車両120は、バス110に接続された1つ以上のセンサ102、車両コンポーネントコントローラ104、車両システムプロセッサ106、通信サブテム116、ユーザインターフェース118、メモリ114、および許可制御モジュール112を含む。
【0015】
いくつかの例において、車両は、1つ以上のセンサを含み得る。1つ以上のセンサは、車両の周囲または内部の環境を反映する入力(例えば、ビデオ入力またはオーディオ入力)を生成し得る。センサの例は、カメラ、マイクロホン、レーザ、レーダ、超音波、光検出および測距(LIDAR)または任意のその他のセンサを含み得る。
【0016】
車両120は、車両120に対する情報を検出または測定する1つ以上のセンサ102を含む。センサ102の例は、車両120の外部の環境情報をキャプチャするセンサ(例えば、カメラ、マイクロホン、レーザ、レーダ、超音波、光検出および測距(LIDAR)等)を含み得る。これらのセンサは、自動判断を行うために車両120上で動作する自動処理プラットフォームに対する環境入力を提供し得る。センサ102の例はまた、車両120の内部の情報をキャプチャするデバイス(例えば、エンジン、バッテリ、燃料、電子システム、冷却システム等のコンポーネントに対するモニタ)を含み得る。これらのセンサは、車両120上で動作している自動処理プラットフォームに動作状態および警告を提供し得る。センサ102の例はまた、車両120の内部のサウンドレベルを検出し得る音響センサを含み得る。音響センサは、車両120の内部のノイズレベルを決定し得るか、または、ノイズレベルを決定するその他の信号プロセッサに対する入力を提供し得る。
【0017】
車両120は、車両コンポーネントコントローラ104を含む。図1においては車両コンポーネントコントローラ104として例示されているが、車両120は、2つ以上の車両コンポーネントコントローラ104を含み得る。車両コンポーネントコントローラ104は、車両120上のコンポーネントの動作を制御するコントローラを表す。コンポーネントの例は、車両120のエンジン、アクセラレータ、ブレーキ、ラジエータ、バッテリ、ステアリングホイール、トランスミッションシステム、冷却システム、電気システム、エンターテイメントシステム、および任意のその他のコンポーネントを含み得る。例えば、車両コンポーネントコントローラ104は、車両120のスピーカシステムを制御し得る(車両120の内部のオーディオ出力に対する音量、バランス、フェード、および任意のその他の設定を制御することを含む)。車両コンポーネントコントローラ104は、車両システムプロセッサ106からの入力またはそれらの組み合わせにしたがって、それぞれのコンポーネントを自動的に動作させ得る。いくつかの実装において、車両コンポーネントコントローラ104は、データ処理装置を含み得る。
【0018】
車両システムプロセッサ106は、車両120上で動作している自動処理プラットフォールに対するプロセス、ステップ、またはアクションのうちの1つ以上に関連する命令を実行するように構成された1つ以上の処理コンポーネント(代替的に、「プロセッサ」または「中央処理ユニット(CPU)」として参照される)を含み得る。概して、車両システムプロセッサ106は、自動処理プラットフォームの動作を遂行するために、命令を実行し、データを操作する。車両システムプロセッサ106は、センサ102から入力を受信し、車両コンポーネントコントローラ104に対するコマンドを生成し得る。いくつかの場合、車両システムプロセッサ106は、自動動作を遂行し得る。いくつかの場合、車両システムプロセッサ106は、データ処理装置を含み得る。
【0019】
通信サブシステム116は、車両120のデータまたは制御情報に対するワイヤレス通信またはワイヤライン通信を提供するように構成され得る。例えば、通信サブシステム116は、ワイヤレスローカルエリアネットワーク(WLANまたはWiFi)、近距離ワイヤレス通信(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内の受信器は、アドバンスト受信器またはベースライン受信器であり得る。
【0020】
ユーザインターフェース118は、例えば、1つ以上のディスプレイまたはタッチスクリーンディスプレイ(例えば、液晶ディスプレイ(LCD)、発光ダイオード(LED)、有機発光ダイオード(OLED)、または微小電気機械システム(MEMS)ディスプレイ)、キーボードまたはキーパッド、トラックボール、スピーカ、またはマイクロホンのうちの任意のものを含み得る。ユーザインターフェース118はまた、I/Oインターフェース、例えば、ユニバーサルシリアルバス(USB)インターフェースを含み得る。
【0021】
メモリ114は、コンピュータ読み取り可能格納媒体であり得る。メモリ114の例は、揮発性メモリおよび不揮発性メモリ、磁気媒体、光学媒体、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、リムーバブル媒体、およびその他を含む。メモリ114は、車両120のオペレーティングシステム(OS)と、上述のプロセス、ステップ、または動作のうちの1つ以上を遂行するための種々のその他のコンピュータ実行可能ソフトウェアとを格納し得る。
【0022】
許可制御モジュール112は、車両120の車両信号のアクセス許可を制御するように構成され得るアプリケーション、アプリケーションのセット、ソフトウェア、ソフトウェアモジュール、ハードウェア、またはそれらの任意の組み合わせを表す。いくつかの実装において、許可制御モジュール112は、例えばアプリケーション122から車両信号に対する要求を受信し得る。要求は、読み取り、書き込み、または両方に対するものであり得る。許可制御モジュール112は、要求された車両信号の許可要素に基づいて、要求を承諾するかどうかを決定する。いくつかの場合、許可制御モジュール112は、車両信号を要求するエンティティの許可要素にさらに基づいて、要求を承諾するかどうかを決定する。図2およびそれに関連付けられた記載は、これらの実装の追加的な詳細を提供する。いくつかの実装において、許可制御モジュール112は、メモリ114内に格納され、車両システムプロセッサ106によって実行される別個のソフトウェアプログラムまたはソフトウェアプログラムの一部として実装され得る。
【0023】
例示されているように、バス110は、車両120上で動作している自動処理プラットフォームのコンポーネントに対する通信インターフェースを提供する。いくつかの場合において、バス110は、コントローラエリアネットワーク(CAN)バスを使用して実装され得る。
【0024】
アプリケーション122は、車両信号を要求するアプリケーション、アプリケーションのセット、ソフトウェア、ソフトウェアモジュール、ハードウェア、またはこれらの任意の組み合わせを表す。いくつかの場合において、アプリケーションは、車両120と接続する電子デバイス上で実行され得る。そのような電子デバイスは、限定するものではないが、エンドポイント、コンピューティングデバイス、モバイルデバイス、モバイル電子デバイス、ユーザデバイス、モバイルステーション、サブスクライバステーション、ポータブル電子デバイス、モバイル通信デバイス、ワイヤレスモデム、ワイヤレス端末、または別の電子デバイスを含み得る。エンドポイントの例は、モバイルデバイス、IoT(Internet of Things)デバイス、EoT(Enterprise of Things)デバイス、セルラーフォン、パーソナルデータアシスタント(PDA)、スマートフォン、ラップトップ、タブレット、パーソナルコンピュータ(PC)、ページャ、ポータブルコンピュータ、ポータブルゲーミングデバイス、ウェアラブル電子デバイス、ヘルス/メディカル/フィットネスデバイス、カメラ、または、ワイヤレス通信ネットワークまたはワイヤード通信ネットワークを介して音声またはデータを通信するためのコンポーネントを有するその他のモバイル通信デバイスを含み得る。電子デバイスはまた、周辺デバイス(例えば、ヘッドセット、リモートコントローラ、またはディスプレイ等)を含み得る。電子デバイスは、短距離通信技術を使用して車両120と接続し得る。短距離通信技術は、ワイヤレス(例えば、BT、NFC、WLAN等)であり得る。短距離通信技術はまた、ワイヤード(例えば、USB等)であり得る。
【0025】
いくつかの場合において、アプリケーション122はまた、車両120上にインストールされ得る。例えば、アプリケーション122は、車両120のいくつかの動作を制御するサードパーティアプリケーションであり得る。
【0026】
サーバ130は、車両120の許可制御を管理するように構成され得るアプリケーション、アプリケーションのセット、ソフトウェア、ソフトウェアモジュール、ハードウェア、またはこれらの任意の組み合わせを表す。いくつかの実装において、サーバ130は、車両120内の許可要素の値、アプリケーションの許可値、または両方を受信、格納、送信、および調整し得る。
【0027】
例示的通信システム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)であり得る。
【0028】
RANは、無線アクセス技術(例えば、UMTS、CDMA2000、3GPP LTE、3GPP LTE-A、および5G)を実装するワイヤレステレコミュニケーションシステムの一部である。多くのアプリケーションにおいて、RANは、少なくとも1つの基地局を含む。基地局は、システムの固定部分内の全てまたは少なくともいくつかの無線関連機能を制御し得る無線基地局であり得る。基地局は、通信するために、そのカバレッジエリアまたはセル内の無線インターフェースをモバイルデバイスに対して提供し得る。基地局は、広いエリアのカバレッジを提供するために、セルラーネットワークの全体にわたって分散され得る。基地局は、1つまたは複数のモバイルデバイス、その他の基地局、および1つ以上のコアネットワークノードに直接的に通信する。
【0029】
図1の要素は、種々の特徴および機能性を実装する種々のコンポーネントパーツ、部分、またはモジュールを含むものとして示されているが、これらの要素は、代わりに、必要に応じて、多数のサブモジュール、サードパーティサービス、コンポーネント、ライブラリ等を含み得る。さらに、種々のコンポーネントの特徴および機能性は、必要に応じて、より少ないコンポーネントに組み合わされ得る。
【0030】
図2は、実装にしたがう、車両信号または信号カタログ内のノードの許可を制御する例示的な方法200を示すフロー図である。方法200は、例えば車両120を含む図1に示されたエンティティによって実施され得る。図2に示されている方法200はまた、追加的なエンティティ、より少ないエンティティ、または異なるエンティティを使用して実施され得る。さらに、図2に示されている方法200は、示されている順序または異なる順序で遂行され得る追加的な動作、より少ない動作、または異なる動作を使用して実装され得る。いくつかの場合において、動作または動作のグループは、例えば、指定された回数の反復について、または終了条件に到達するまで、反復または繰り返され得る。
【0031】
202において、車両は、車両信号または信号カタログ内のノードに対するアクセス要求を受信する。下記に議論されるように、信号カタログ内のノードは、データエントリノードまたはブランチノードであり得る。いくつかの場合において、要求は、アプリケーション(例えば、図1におけるアプリケーション122)から受信され得る。アプリケーションは、車両の外部の電子デバイス上で実行され得、要求は、ワイヤレス接続またはワイヤライン接続(例えば、Bluetooth(登録商標)、NFC、WiFi、LTE、5G、USBまたは任意のその他のローカルエリアネットワーク通信技術またはワイドエリアネットワーク通信技術)を使用することによって送信され得る。アプリケーションはまた、車両上で実行され得る(例えば、車両のオペレーティングシステム上にインストールされ得るサードパーティアプリケーション)。
【0032】
車両信号は、車両動作の情報を搬送する信号を表す。車両信号によって搬送される情報の例は、運転動作に関連する情報(例えば、速度、加速度、位置等)、エンターテイメント動作に関連する情報(例えば、スピーカの音量、キャビン動作に関連する情報(例えば、空調(AC)設定、シートの位置)等)、および車両の動作に関連する任意のその他の情報を含む。
【0033】
いくつかの場合において、接続車両システムアライアンス(COVESA)によって展開された車両信号仕様(VSS)は、車両信号に対する共通のフォーマット/構造を提供するために使用され得る。VSSは、車両に関する情報を通信するために自動車アプリケーションにおける標準として使用され得る車両信号に対するドメイン分類法を導入する。VSSは、車両バスを介して通信される未加工データと、同様にインフォテイメントシステムとより一般的に関連付けられたデータとを伴って、古典的な属性、センサ、およびアクチュエータの意味において、車両信号をツリー様構造で定義する。COVESAは、信号のカタログを定義する。より一般的に、信号のカタログは、「信号カタログ」として参照され得る。信号カタログは、データエントリノードがリーフノードであり、かつブランチノードがデータエントリノードのセットおよびサブブランチを再グループ化する、ツリー構造に編成される。各データエントリノードは、例えばタイプ(例えば、センサ、アクチュエータ、属性等)、データタイプ(例えば、整数、浮動小数点、ストリング等)、単位(例えば、km/時、摂氏等)等を使用して、特定の車両信号を定義する。
【0034】
表1は、COVESA VSSにしたがう、車両信号に対して定義される信号構造/フォーマットの例である。
【表1】
【0035】
図4は、実装にしたがう、車両信号の構造を例示するダイヤグラム400である。ダイヤグラム400における各ノードは、車両信号を表す。ノード410は、車両に対するルートノードである。ノード410は、サブノードであるVehicle.Cabin 420およびVehicle.Speed 422を有する。ノードであるVehicle.Speed 422は、リーフノードであり、これは、サブノードを有しない。ノードであるVehicle.Speed 422は、浮動小数点のデータタイプであり、これは、浮動小数点の数が、ノードであるVehicle.Speedの値を表すために使用されることを示す。Vehicle.Cabin 420は、ブランチノードであり、これは、サブノードであるVehicle.Cabin.Seat 430を有する。Vehicle.Cabin.Seat 430はまた、ブランチノードであり、これは、サブノードであるVehicle.Cabin.Seat.Row1 440およびVehicle.Cabin.Seat.Row2 442を有する。 Vehicle.Cabin.Seat.Row1 440はまた、ブランチノードであり、これは、サブノードであるVehicle.Cabin.Seat.Row1.Pos1 450およびVehicle.Cabin.Seat.Row1.Pos3 452を有する。Vehicle.Cabin.Seat.Row1.Pos1 450は、ブランチノードであり、これは、サブノードであるVehicle.Cabin.Seat.Row1.Pos1.Tilt 460を有する。Vehicle.Cabin.Seat.Row1.Pos1.Tilt 460は、リーフノードであり、これは、浮動小数点のデータタイプを有する。Vehicle.Cabin.Seat.Row1.Pos3 452は、ブランチノードであり、これは、サブノードであるVehicle.Cabin.Seat.Row1.Pos3.Tilt 462を有する。Vehicle.Cabin.Seat.Row1.Pos3.Tilt 462は、リーフノードであり、これは、浮動小数点のデータタイプを有する。例示されていないが、ブランチノードの各々は、追加的なサブノードを有し得る。
【0036】
信号タイプおよびデータタイプに加えて、車両信号を表すデータエントリノードは、その他の要素(例えば、min(信号の最小値を表す)、max(信号の最大値を表す)等)を含み得る。
【0037】
上記の表1から見られるように、ドットは、ブランチ(データエントリのセット)またはデータエントリ(センサ、アクチュエータ、または属性)としてコンポーネントを識別するためのネームパスを記している。センサは、車両から発する一方向信号(例えば、車両内の1つ以上のセンサの測定にしたがって生成される)を示している。アクチュエータは、「設定」値または「獲得」値であり得る二方向信号(すなわち、信号が現在の状態を示し得ることまたは状態を設定するために使用され得ること)を示している。ブランチは、ツリー構造内のノードである。属性は、典型的には、固定値である。センサ/アクチュエータは、典型的には、センサ内で変化が発生したときに信号値を継続的にアップデートするパブリッシャ(またはプロデューサ)を有し得るが、属性は、典型的にはイグニションサイクルごとに1回よりも多く変化すべきではない設定値を有する。いくつかの場合において、表1内の信号は、拡張可能マークアップ言語(XML)、JavaScriptオブジェクトノーテーション(JSON)スクリプト、または別のエンコーディングフォーマットを使用して実装され得る。
【0038】
202における要求は、読み取り要求、書き込み要求、またはこれらの組み合わせであり得る。読み取り要求は、アプリケーションが車両信号またはノードによって表された情報(例えば、車両の速度等)を取得することを要求することを示す。書き込み要求は、アプリケーションが車両信号またはノードによって表された情報を設定すること(例えば、車両上のスピーカの音量を書き込むこと等)を要求することを示す。
【0039】
いくつかの場合において、要求は、信号/ノードのパスネームまたは識別子(例えば、VSSにおいて定義された信号/ノードのVehicle.VehicleIdentificationまたはUUID(Universally Unique Identifier)等)、および要求された許可(例えば、読み取りまたは書き込みまたは両方)を含み得る。いくつかの場合、要求はまた、要求されたアプリケーションの情報(例えば、アプリケーションの識別子等)を含み得る。要求はまた、アプリケーションに割り当てられた許可を含み得る。
【0040】
204において、車両上のソフトウェアまたはハードウェアは、車両信号または信号カタログ内のノードにアクセスする要求を承諾するかどうかを決定する。いくつかの実装において、決定は、少なくとも部分的に、車両内に展開された車両信号または信号カタログ内のノードの許可要素に基づいて行われる。アクセス要求が、信号カタログ内のブランチノードに対して承諾された場合、ブランチノードの下の全てのノードに対するアクセスは、承諾される。
【0041】
いくつかの場合において、要素(例えば、既に議論したデータタイプ、min、max等)に加え、1つ以上の許可要素が、車両信号または信号カタログ内の各ノードに対して定義され得る。例えば、許可要素は、読み取り許可要素(例えば、下述されるような“x-read-permission”)または書き込み許可要素(例えば、下述されるような“x-write-permission”)のいずれかであり得る。代替的に、1つの許可要素は、読み取り許可および書き込み許可の両方のために定義され得、許可要素内の異なる値は、異なる読み取り許可および書き込み許可を定義するために使用され得る(例えば、許可要素内の第1の1つ以上のビットは、読み取り許可を表し、許可要素内の第2の1つ以上のビットは、書き込み許可を表す)。
【0042】
いくつかの場合、各車両信号/ノードに対する許可要素は、車両の製造業者、車両の動作アドミニストレータ、車両のオーナー、車両のドライバ、またはこれらの任意の組み合わせによって設定され得る。許可要素は、車両のユーザインターフェースにおいて直接的に設定され得るか、または、サーバ(例えば、図1におけるサーバ130等)を通して設定され得る。
【0043】
いくつかの場合において、許可要素は、VSSの一部として定義され得る。代替的に、または組み合わせて、許可要素は、独自の要素として定義され得る(例えば、x-read-permissionまたはx-write-permissionとして定義され得、「x」は、独自の要素、プライベートな要素、拡張された要素、または特別な要素を示す)。このアプローチは、VSSによる許可関連要素の将来的な定義の競合を回避し得る。
【0044】
いくつかの場合において、異なる許可値は、信号カタログツリー内の全ノードに対して定義され得る。この場合において、各ノードは、異なる許可値を有し得る。代替的に、または組み合わせて、許可値のセットは、信号カタログツリー内のノードの種々のセットに対するアクセスを制御するために使用され得る。例えば、以下の許可値は、予め定義され得、使用され得る。
【0045】
“READ_ACCESS”:これは、情報を取得するためのアクセスが制限されないノードの読み取り許可要素に対して割り当てられ得る(例えば、車両速度)。
【0046】
“PERSONAL_INFO”:これは、情報を取得するためのアクセスがアプリケーションの選択されたグループに制限されるノードの読み取り許可要素に対して割り当てられ得る(例えば、ドライバ識別、オーナーネーム、車両識別番号(VIN)、保険情報等のパーソナル情報を表す信号)。“READ_ACCESS”および“PERSONAL_INFO”は、読み取り許可要素に対して割り当てられ得る異なる制限/セキュリティレベルを有する2つの許可値である。
【0047】
“WRITE_ACCESS”:これは、書き込みアクセスが制限されるノードの書き込み許可要素に割り当てられる(例えば、加速、制動、ブレーキ、方向転換、およびクルーズコントロール等の車両動作に関連する信号)。“WRITE_ACCESS”は、書き込み許可要素に割り当てられ得る許可値である。
【0048】
多数の車両信号またはカタログ内で定義されたノードが存在し、各信号/ノードの許可要素が定義される必要がある場合、これは、時間の無駄になり得、エラーが生じやすくなり得る。いくつかの場合において、継承がVSSのツリー構造を活用するために使用され得る。このアプローチは、多数のノードに対する許可の割り当てを簡略化する。このアプローチにおいて、ブランチノードに対して定義された許可値はまた、異なる許可値がサブノードのうちのいくつかに対して定義されていない限り、ブランチノードのサブノードのすべてに適用される。この態様において、信号カタログ内の各ノードに許可値を指定する必要はなく、代わりに、許可値が継承を介してノードに自動的に割り当てられ得る。これは、信号カタログ内のノードとして表される車両信号に誰がアクセスを入手し得るかを定義する車両製造業者に対する効率的な機構を提供する。
【0049】
継承アプローチの1つの実装において、書き込み許可は、アクチュエータ信号タイプを有するデータエントリノードであるサブノードと、それ自体がブランチノードであるサブノードとにのみ伝搬される。
【0050】
いくつかの場合において、下述のような許可マップは、車両の車両信号の許可を定義するために使用され得る。許可マップは、信号カタログ内の1つ以上のノードの許可値を含み得、残りのノードの許可要素は、既に議論した継承アプローチに基づいて設定され得る。ソフトウェアツールは、信号カタログツリーをウォークスルーし、各ノードに許可要素を追加し、許可マップにしたがってその値を設定するために実装され得る。
【0051】
代替的にまたは追加的に、信号カタログは、各ノードに対するデフォルト許可値を含み得る。デフォルトは、車両の製造業者、車両の動作アドミニストレータ、車両のオーナー、車両のドライバ、またはこれらの任意の組み合わせによって上書きされ得る。
【0052】
信号カタログは、YAML(yet another markup language)、JSON(JavaScript Object Notation)または任意のその他のフォーマットを使用して実装され得る。
【0053】
以下は、JSONを使用することによって許可マップを用いて車両信号の許可を設定するためのいくつかの例である。1つの例において、“READ_ACCESS”許可値は、信号カタログ内の“Vehicle.Speed”データエントリノードに割り当てられる。
【化1】
【0054】
“x-read-permission”エントリは、そのサブエントリが、“nodes”サブエントリの下で指定される信号カタログ内の各ノードに対する読み取り許可要素(“x-read-permission”にマッチする)に対して適用可能であることを指定する。
【0055】
“permission”エントリは、割り当てられるべき許可値を定義する。許可マップ内の“nodes”エントリは、許可値が割り当てられるノードを定義する。“nodes”エントリは、1つよりも多くの信号カタログノードが同じ許可を与えられ得るので、複数のノードのリストにされ得る。
【0056】
上記許可マップは、“Vehicle.Speed”データエントリノード(信号カタログ内の“Vehicle”ブランチノードの下に位置する)の“x-read-permission”要素に割り当てられている“READ_ACCESS”をもたらす。以下は、信号カタログ内のVehicle.Speedノードの要素である。
【化2】
【0057】
Vehicle.Speedは、「センサ(sensor)」タイプのデータエントリノードであることを前提とすると、その定義内の“x-write-permission”要素が存在しないことに留意されたい。
【0058】
別の例において、“WRITE_ACCESS”許可値は、信号カタログ内の“Vehicle.ADAS.CruiseControl.IsEnabled”データエントリノードに割り当てられる。簡略化のために、データエントリノードのみが、例において示されている。
【化3】
【0059】
データエントリノードである“Vehicle.ADAS.CruiseControl.IsEnabled”のタイプは、「アクチュエータ(actuator)」であり、したがって、許可値“WRITE_ACCESS”を有する許可要素“x-write-permission”は、このノードに割り当てられ得る。ノードはまた、下記に示されるように、許可値“READ_ACCESS”を有する許可要素“x-read-permission”を有し得、これは、このデータエントリノードの上方のブランチノード(例えば、ブランチノードであるVehicle、Vehicle.ADAS、またはVehicle.ADAS.CruiseControl等)から継承され得る。以下は、ノードであるVehicle.ADAS.CruiseControl.IsEnabledの要素である。
【化4】
【0060】
別の例において、ブランチノードに割り当てられる“READ_ACCESS”許可値は、そのブランチノードのいくつかのサブノードによってさらに継承される。
【0061】
許可マップにおいて、これは、以下のように構成され得る。
【化5-1】
【化5-2】
【0062】
許可マップにおいて、“READ_ACCESS”読み取り許可および“WRITE_ACCESS”書き込み許可は、“Vehicle”ブランチノードに割り当てられる。ブランチノードである“Vehicle”の下のサブノード(全てのブランチノードおよびデータエントリノードを含む)は、それらが許可マップ内のそれら自体の許可を割り当てられない限り、読み取り許可を継承し、これは、“Vehicle.VehicleIdentification.VIN”データノードに対する場合である。Vehicle.VehicleIdentification.VINは、それ自体の許可である“PERSONAL_INFO”読み取り許可を割り当てられている。
【0063】
「アクチュエータ」データタイプを有する全てのブランチノードおよびデータエントリノードを含むブランチノードである“Vehicle”の下のサブノードもまた、それらが許可マップ内のそれら自体の許可を割り当てられていない限り、書き込み許可を継承する。換言すると、許可マップは、ブランチノードである“Vehicle”の下のノードに対する書き込み許可要素のいずれの値も指定しないので、ブランチノードである“Vehicle”の下の「アクチュエータ」データタイプを有する全てのサブブランチノードおよびデータエントリノードは、ブランチノードである“Vehicle”から“WRITE_ACCESS”を継承する。許可マップは、“Vehicle.VehicleIdentification.VIN”を除き、ブランチノードである“Vehicle”の下のノードに対する読み取り許可要素のいずれの値も指定しないので、ブランチノードである“Vehicle”の下のすべてのノードは、“Vehicle.VehicleIdentification.VIN”を除き、ブランチノードである“Vehicle”から“READ_ACCESS”を継承する。
【0064】
別の例において、簡略化のために、以下のノードが示される。
【0065】
“Vehicle”ブランチノードは、ツリーの最上部にある。
【0066】
“Vehicle.RoofLoad”データエントリノードは、“Vehicle”ブランチの直下にある。
【0067】
“Vehicle.VehicleIdentification”ブランチノードは、“Vehicle”ブランチの下にある。
【0068】
“Vehicle.VehicleIdentification.Model”データエントリノードは、“Vehicle.VehicleIdentification”ブランチの下にある。
【0069】
“Vehicle.VehicleIdentification.VIN”データエントリノードは、“Vehicle.VehicleIdentification”ブランチの下にある。
【化6-1】
【化6-2】
【0070】
ツリーの最上部における“Vehicle”ブランチノードは、“READ_ACCESS”読み取り許可および“WRITE_ACCESS”書き込み許可を割り当てられている。したがって、ブランチノードである“Vehicle”の下の全てのサブノードは、いくつかのノードが許可マップ内でそれら自体の読み取り許可(例えば、“PERSONAL_INFO”)を割り当てられていない限り、“READ_ACCESS”許可を有する。ブランチノードである“Vehicle”の下の全てのサブノードは、「センサ」または「属性(attribute)」データタイプを有するデータエントリノードを除き、“WRITE_ACCESS”許可を有する。
【0071】
“Vehicle”ブランチの直下の“Vehicle.RoofLoad”データエントリノードは、それらがそれ自体の許可マップ内の読み取り許可を割り当てられていないので、上方の“Vehicle”ブランチノードから、“READ_ACCESS”読み取り許可を継承する。それは、それがブランチノードでも「アクチュエータ」データエントリノードでもないので、書き込み許可を有しない。
【0072】
“Vehicle”ブランチの下の“Vehicle.VehicleIdentification”ブランチノードは、許可マップ内の読み取り許可または書き込み許可のいずれも割り当てられていない。それは“Vehicle”ブランチノードの下にあるので、それは、読み取り許可および書き込み許可の両方を継承する。したがって、それは、“READ_ACCESS”読み取り許可および“WRITE_ACCESS”書き込み許可を割り当てられる。
【0073】
ブランチノードは、書き込まれ得ないので、書き込み許可は、継承目的のためのみに割り当てられることに留意されたい。
【0074】
“Vehicle.VehicleIdentification.Model”データエントリノードは、許可マップ内のそれ自体の許可を割り当てられない。したがって、それは、“Vehicle.VehicleIdentification”ブランチノードから“READ_ACCESS”許可を継承する。それは、「アクチュエータ」タイプのデータエントリノードではないので、書き込み許可を有しない。この実装において、車両のモデルは、個人情報であるとは考えられない。
【0075】
この実装において、“Vehicle.VehicleIdentification.VIN”データエントリノードは、個人情報であるとは見做されない。この理由により、それは、許可マップ内の“PERSONAL_INFO”読み取り許可を割り当てられる。したがって、それは、“Vehicle.VehicleIdentification”ブランチノードから“READ_ACCESS”許可を継承しない。それは、「アクチュエータ」タイプのデータエントリノードではないので、書き込み許可を有しない。
【0076】
いくつかの実装において、204において、車両は、信号/ノードの許可要素の許可値と、信号/ノードを要求するアプリケーションの許可値とを比較することによって、アクセス要求を承諾するかどうかを決定する。例えば、アプリケーションは、“READ_ACCESS”の許可値を割り当てられ得る。この場合において、車両は、アプリケーションが、それの読み取り許可要素が“READ_ACCESS”に設定された任意の信号/ノードを取得することを可能にされることを決定し得る。しかしながら、信号/ノードの読み取り許可要素の許可値が、“PERSONAL_INFO”(例えば、“Vehicle.VehicleIdentification.VIN”)に設定され、アプリケーションの許可値が“READ_ACCESS”に設定され、これが信号/ノードの読み取り許可要素の許可値にマッチしない場合、この場合において、車両は、アプリケーションからの要求を拒絶し得る。例えば、アプリケーションが“READ_ACCESS”の許可のみを有し、“Vehicle.VehicleIdentification”ブランチノードを読み取るように要求する場合、アプリケーションは、“Vehicle.VehicleIdentification.Model”信号の値のみを受信し得る。アプリケーションが“READ_ACCESS”許可および“PERSONAL_INFO”許可の両方を有し、“Vehicle.VehicleIdentification”ブランチノードを読み取るように要求する場合、アプリケーションは、“Vehicle.VehicleIdentification.Model”信号および“Vehicle.VehicleIdentification.VIN”信号の両方の値を受信し得る。
【0077】
いくつかの場合において、車両は、202において、アクセス要求を承諾するかどうかを決定した後、通知をさらに生成し得る。車両は、車両のユーザインターフェースとして通知を出力すること、通知をサーバまたは異なるデバイス(例えば、オーナーのデバイスの上で稼働しているアプリケーション等)に送信すること、または、これらの組み合わせを行い得る。通知は、車両信号/ノードにアクセスするための非認可の試みが存在するかどうかを示し得る。通知は、要求を送信するアプリケーション、要求された信号/ノード、信号/ノードの許可値、アプリケーションの許可値、およびそれらの任意の組み合わせの情報を含み得る。いくつかの場合において、車両は、非認可のアクセスを示すオーディオアラームまたは視覚的アラームをさらにトリガし得る。いくつかの場合において、既に議論した異なる応答の組み合わせは、異なる信号/ノードに対する非認可のアクセスの異なる試みのために構成され得る。代替的に、または組み合わせにおいて、既に議論した異なる応答の組み合わせは、同じ信号/ノードに対する非認可のアクセスの異なる数の試みのために構成され得る。
【0078】
いくつかの場合において、許可値の異なるセットが使用され得る。例えば、階層的な許可値構造が使用され得る。そのような例において、異なる許可値は、異なる許可レベルを表し得、要求は、要求されたパーティの許可レベルが、信号/ノードの許可レベルのものよりも高い場合、承諾され得る。例えば、信号/ノードを要求するアプリケーションは、class 5として書き込み許可のための許可値を有し得る。これは、アプリケーションが、その書き込み許可値がclass 1とclass 5との間にある信号/ノードを書き込むことが可能にされているが、その書き込み許可値がclass 5よりも高いクラスに設定されている信号/ノードに対しては可能にされていないことを示し得る。このアプローチは、異なる度合いのセキュリティ感受性を有する車両信号/ノードのアクセスを保護する柔軟性を提供する。
【0079】
1つの実装において、アプリケーションが車両に接続されたとき、または、セッションの開始時に車両にログインしたとき、アプリケーションは、ログインプロセスの一部として、車両信号の読み取り許可および書き込み許可のために、その許可値(またはその許可値の識別子)を提供し得る。車両は、アプリケーションの許可値を格納し得る。その後、アプリケーションが信号/ノードに対するアクセスを要求するとき、アプリケーションは、セッションが失効しない限り、許可値をアクセスのための要求内に含めないことがあり得る。代替的に、または組み合わせにおいて、要求されたパーティの許可値(または許可値の識別子)は、各信号/ノードのアクセスのための要求内に含まれ得る。いくつかの場合において、車両はまた、その許可値について信号アクセスの要求された部分にクエリし得る。クエリは、要求を受信した後に送信され得るか、または、車両が以前に格納された許可値が失効したことを決定した後に送信され得る。
【0080】
いくつかの場合において、許可値は、車両の製造業者、車両の動作アドミニストレータ、車両のオーナー、車両のドライバ、またはこれらの任意の組み合わせによって、(例えば、認可サーバまたはアプリケーションを使用すること等によって)アプリケーションに割り当てられ得る。許可値は、車両のユーザインターフェースにおいて直接的に送信され得るか、または、サーバ(例えば、図1におけるサーバ130等)を通して送信され得る。許可値の識別子は、さらに暗号化され得、署名され得、またはこれらの両方が行われ得る。暗号化または署名された識別子は、車両に送信され得る。これは、追加的なセキュリティを提供し、車両が許可値の真正性を検証することを可能にする。
【0081】
いくつかの場合において、要求を承諾するかどうかを決定すると、車両は、要求されたパーティに応答を送信し得る。要求が承諾された場合、応答は、要求が承諾されたことを示し得る。いくつかの場合において、応答は、要求された信号/ノードの値を(例えば、読み取り許可のための要求内に)さらに含み得る。ブランチノードの値は、ブランチノードの下の全てのノードの値を含み得る。要求が拒絶された場合、応答は、要求が拒絶されたことと、拒絶のための理由とを示し得る。
【0082】
図5は、実装にしたがう、車両信号または信号カタログ内のノードの許可を構成する例示的な方法500を示すフロー図である。方法500は、車両製造業者または相手先ブランド名製造(OEM)と関連付けられたコンピューティングデバイス(例えば、サーバ等)によって遂行され得る。製造業者またはOEMは、許可マップを作成し、信号カタログ内の各ノードに対する許可値をポピュレートするために許可マップを使用し得る。方法500はまた、図1に示されているエンティティ(例えば、車両120またはサーバ130を含む)によって実施され得る。図5に示されている方法500はまた、追加的なエンティティ、より少ないエンティティ、または異なるエンティティを使用して実施され得る。さらに、図5に示されている方法500は、示されている順序または異なる順序において遂行され得る追加的な動作、より少ない動作、または異なる動作を使用して実施され得る。いくつかの場合において、動作または動作のグループは、例えば、指定された回数の反復について、または終了条件に到達するまで、反復または繰り返され得る。
【0083】
502において、許可マップが受信される。既に議論したように、許可マップは、車両信号カタログ内のノードの許可要素に対する構成された許可値を含み得る。既に議論したように、許可要素は、読み取り許可要素または書き込み許可要素または両方であり得る。構成された許可値は、予め定義され得、“READ_ACCESS”、“PERSONAL_INFO”、“WRITE_ACCESS”、またはその他の値を表し得る。
【0084】
504において、車両信号カタログ内のノードの許可要素の許可値は、許可マップ内の構成された許可値にしたがって設定される。既に議論したように、いくつかの動作において、継承アプローチが使用され得、構成された許可値は、サブノードの許可要素の許可値を設定するために使用され得る。また、既に議論したように、デフォルト値は、許可マップによって使用および上書きされ得る。
【0085】
図6は、実装にしたがう、車両信号または信号カタログ内のノードに対する許可構成を例示するブロック図600である。上記で議論したように、各ノード602に対する許可値を伴わない信号カタログおよび許可マップ604は、各ノード608に対する許可値を伴う信号カタログを生成するツール606に入力され得る。ツール606は、車両製造業者またはOEMに関連付けられたコンピューティングデバイスまたはサーバにおけるソフトウェアツールまたはハードウェアツールであり得る。ツール606はまた、車両におけるものであり得る。
【0086】
図3は、実装にしたがう、ネットワーク350と結合されたコンピュータ302を示す高レベルアーキテクチャブロック図である。記載された例示は、記載された主題の1つの可能な実装に過ぎず、開示を単一の記載された実装に限定するように意図されてはいない。当業者は、記載されたコンポーネントが接続され、組み合わされ、または本開示と整合する代替的な態様において使用され得るという事実を理解し得る。
【0087】
ネットワーク350は、コンピュータ302とその他のデバイスとの間の通信を促進する。いくつかの場合において、ユーザ(例えば、アドミニストレータ等)は、リモートネットワークからコンピュータ302にアクセスし得る。これらの場合またはその他の場合において、ネットワーク350は、ワイヤレスネットワークまたはワイヤラインネットワークであり得る。いくつかの場合において、ユーザは、コンピュータ302にローカルにアクセスし得る。これらの場合またはその他の場合において、ネットワーク350はまた、メモリパイプ、ハードウェア接続、またはコンポーネント間の任意の内部通信パスまたは外部通信パスであり得る。
【0088】
コンピュータ302は、本開示において記載されているアルゴリズムを遂行するように構成されたコンピューティングシステムを含む。例えば、コンピュータ302は、図1に示されているサーバ130を実装するために使用され得る。コンピュータ302は、図1に示されているアプリケーション122を稼働させる電子デバイス(例えば、ラップトップコンピュータまたはスマートフォン等)を実装するために使用され得る。コンピュータ302はまた、図1に示されている許可制御モジュール112を実装するために使用され得る。いくつかの場合において、アルゴリズムは、実行可能なコンピューティングコード(例えば、C/C++実行可能コード等)において実装され得る。代替的に、または組み合わせにおいて、アルゴリズムは、アプリケーションプログラム(例えば、EXCEL等)において実装され得る。いくつかの場合において、コンピュータ302は、バッチアプリケーションを稼働させるスタンドアロンLINUX(登録商標)システムを含み得る。いくつかの場合において、コンピュータ302は、アプリケーションプログラムを稼働させるモバイルコンピュータまたはパーソナルコンピュータを含み得る。
【0089】
コンピュータ302は、入力デバイス(例えば、キーパッド、キーボード、タッチスクリーン、マイクロホン、スピーチ認識デバイス、または、ユーザ情報を受け入れ得る別のデバイス)、および/または、出力デバイス(デジタルデータ、視覚的情報および/またはオーディオ情報、またはGUIを含むコンピュータ302の動作と関連付けられた情報を搬送する)を含み得る。
【0090】
コンピュータ302は、クライアント、ネットワークコンポーネント、サーバ、データベース、またはその他の永続性等としての役割を果たし得る。いくつかの場合において、コンピュータ302の1つ以上のコンポーネントは、クラウドコンピューティングベースの環境内で動作するように構成され得る。
【0091】
高レベルにおいて、コンピュータ302は、データおよび情報を受信、伝送、処理、格納、または管理するように動作可能である電子コンピューティングデバイスである。いくつかの実装にしたがうと、コンピュータ302はまた、アプリケーションサーバ、eメールサーバ、ウェブサーバ、キャッシングサーバ、ストリーミングデータサーバ、ビジネスインテリジェンス(BI)サーバ、および/またはその他のサーバを含み得るか、または、それらと通信可能に結合され得る。
【0092】
コンピュータ302は、クライアントアプリケーション(例えば、ユーザデバイス上で実行している)からネットワーク350を介して要求を受信し、適切なソフトウェアアプリケーションにおいて該要求を処理することによって、受信された要求に応答し得る。加えて、要求はまた、内部ユーザから(例えば、コマンドコンソールから、または別の適切なアクセス方法によって等)、外部またはサードパーティ、その他の自動化アプリケーション、ならびに任意のその他の適切なエンティティ、個人、システム、またはコンピュータから、コンピュータ302に送信され得る。
【0093】
コンピュータ302のコンポーネントの各々は、システムバス303を使用して通信し得る。いくつかの実装において、コンピュータ302の任意のコンポーネントおよび/または全てのコンポーネント(ハードウェアおよび/またはソフトウェアの両方)は、アプリケーションプログラミングインターフェース(API)312および/またはサービス層313を使用して、システムバス303を介して相互におよび/またはインターフェース304とインターフェースし得る。API312は、ルーチン、データ構造、およびオブジェクトクラスに対する仕様を含み得る。API312は、コンピュータ言語独立またはコンピュータ言語従属のいずれかであり得、完全なインターフェース、単一の機能、またはAPIのセットをすら参照し得る。サービス層313は、コンピュータ302にソフトウェアサービスを提供する。コンピュータ302の機能性は、このサービス層を使用する全てのサービス消費者にとってアクセス可能であり得る。例えばサービス層313によって提供されるようなソフトウェアサービスは、定義されたインターフェースを通して、再利用可能な定義されたビジネス機能性を提供する。例えば、インターフェースは、JAVA(登録商標)、C++、または拡張可能マークアップ言語(XML)フォーマットまたは他の適切なフォーマットにおいてデータを提供するその他の適切な言語において書かれたソフトウェアであり得る。コンピュータ302の一体型コンポーネントとして例示されているが、代替的な実装は、コンピュータ302のその他のコンポーネントとの関係におけるスタンドアロンコンポーネントとしてAPI312および/またはサービス層313を例示し得る。さらに、API312および/またはサービス層313の任意の部分または全ての部分は、本開示の範囲から逸脱することなしに、別のソフトウェアモジュールまたはハードウェアモジュールの子モジュールまたはサブモジュールとして実装され得る。
【0094】
コンピュータ302は、インターフェース304を含む。図3においては単一のインターフェース304として例示されているが、2つ以上のインターフェース304が、コンピュータ302の特定のニーズ、構成、または特定の実装にしたがって使用され得る。インターフェース304は、ネットワーク350に接続された分散環境内のその他のシステムとの通信のために、コンピュータ302によって使用される(例示されているかどうかは問わない)。概して、インターフェース304は、適切な組み合わせにおけるソフトウェアおよび/またはハードウェアにおいてエンコードされ、ネットワーク350と通信するように動作可能なロジックを含む。より具体的に、インターフェース304は、通信と関連付けられた1つ以上の通信プロトコルをサポートするソフトウェアを含み得、その結果、ネットワーク350またはインターフェースのハードウェアは、物理的信号を通信するように動作可能であり得る。
【0095】
コンピュータ302は、プロセッサ305を含む。図3においては単一のプロセッサ305として例示されているが、2つ以上のプロセッサが、コンピュータ302の特定のニーズ、構成、または特定の実装にしたがって使用され得る。概して、プロセッサ305は、コンピュータ302の動作を遂行するために命令を実行し、データを操作する。いくつかの場合において、プロセッサ305は、データ処理装置を含み得る。
【0096】
コンピュータ302はまた、コンピュータ302に対するデータを保持するメモリ306を含む。図3においては単一のメモリ306として例示されているが、2つ以上のメモリが、コンピュータ302の特定のニーズ、構成、または特定の実装にしたがって使用され得る。メモリ306は、コンピュータ302の一体型コンポーネントとして例示されているが、代替的な実装において、メモリ306は、コンピュータ302の外部にあり得る。
【0097】
アプリケーション307は、コンピュータ302の特定のニーズ、構成、または特定の実装にしたがって、機能性を提供するアルゴリズミックソフトウェアエンジンを含む。単一のアプリケーション307として例示されているが、アプリケーション307は、コンピュータ302上の複数のアプリケーションとして実装され得る。加えて、コンピュータ302に一体化されて例示されているが、代替的な実装において、アプリケーション307は、コンピュータ302に対して外部にあり得る。
【0098】
システム300に関連付けられ、またはシステム300の外部にあり、そしてネットワーク350と通信する任意の数のコンピュータ302が存在し得る。さらに、用語「クライアント」、「ユーザ」、およびその他の適切な術語は、本開示の範囲から逸脱することなしに、必要に応じて同義的に使用され得る。さらに、本開示は、多くのユーザが1つのコンピュータ302を使用し得ること、または一人のユーザが複数のコンピュータ302を使用し得ることを企図している。
【0099】
主題の記載されている実装は、単独または組み合わせで、1つ以上の特徴を含み得る。
【0100】
例えば、第1の実装において、方法は、許可マップを受信することであって、許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む、ことと、許可マップ内の構成された許可値にしたがって、車両信号カタログ内のノードの許可要素の許可値を設定することとを含む。
【0101】
上記の実装およびその他の記載された実装の各々は、随意に、以下の特徴のうちの1つ以上を含み得る。
【0102】
第1の特徴は、以下の特徴のうちの任意のものと組み合わせ可能であり、車両信号カタログは、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)に基づいている。
【0103】
第2の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、許可要素は、読み取り許可要素または書き込み許可要素である。
【0104】
第3の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、許可値は、予め定義された許可値のセットからのものである。
【0105】
第4の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、許可値は、ノードの信号値に対する読み取りアクセスが、同じ許可値を有するアプリケーションの選択されたグループに限定されることを示す。
【0106】
第5の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、ノードは、ブランチノードであり、方法は、許可マップ内の構成された許可値にしたがって、車両信号カタログ内のノードのサブノードの許可要素の許可値を設定することをさらに含む。
【0107】
第6の特徴は、上記の特徴の特徴のうちの任意のものと組み合わせ可能であり、車両信号カタログ内のノードのサブノードの許可要素の許可値を設定することは、許可マップが、サブノードの許可要素の許可値を含むかどうかを決定することと、許可マップが、サブノードの許可要素の許可値を含まないことを決定することに応答して、サブノードの許可要素の許可値を構成された許可値と同じであるように設定することとを含む。
【0108】
第2の実装において、コンピューティングデバイスは、少なくとも1つのハードウェアプロセッサと、少なくとも1つのハードウェアプロセッサに結合され、少なくとも1つのハードウェアプロセッサによる実行のためのプログラミング命令を格納している1つ以上のコンピュータ読み取り可能な格納媒体とを備え、プログラミング命令は、実行されたときに、コンピューティングデバイスに、許可マップを受信することであって、許可マップは、車両信号カタログ内のノードの許可要素の構成された許可値を含む、ことと、許可マップ内の構成された許可値にしたがって、車両信号カタログ内のノードの許可要素の許可値を設定することとを含む動作を遂行させる。
【0109】
上記の実装およびその他の記載された実装の各々は、随意に、以下の特徴のうちの1つ以上を含み得る。
【0110】
第1の特徴は、以下の特徴のうちの任意のものと組み合わせ可能であり、車両信号カタログは、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)に基づいている。
【0111】
第2の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、許可要素は、読み取り可能許可要素または書き込み可能許可要素である。
【0112】
第3の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、許可値は、予め定義された許可値のセットからのものである。
【0113】
第4の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、許可値は、ノードの信号値に対する読み取りアクセスが、同じ許可値を有するアプリケーションの選択されたグループに限定されることを示す。
【0114】
第5の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、ノードは、ブランチノードであり、動作は、許可マップ内の構成された許可値にしたがって、車両信号カタログ内のノードのサブノードの許可要素の許可値を設定することをさらに含む。
【0115】
第6の特徴は、上記の特徴の特徴のうちの任意のものと組み合わせ可能であり、車両信号カタログ内のノードのサブノードの許可要素の許可値を設定することは、許可マップが、サブノードの許可要素の許可値を含むかどうかを決定することと、許可マップがサブノードの許可要素の許可値を含まないことを決定することに応答して、サブノードの許可要素の許可値を構成された許可値と同じであるように設定することとを含む。
【0116】
第3の実装において、コンピュータ読み取り可能な媒体は、命令を格納しており、命令は、実行されたときに、コンピューティングデバイスに、許可マップを受信することであって、許可マップは、車両信号カタログ内のノードの構成された許可値を含む、ことと、許可マップ内の構成された許可値にしたがって、車両信号カタログ内のノードの許可要素の許可値を設定することとを含む動作を遂行させる。
【0117】
上記の実装およびその他の記載された実装の各々は、随意に、以下の特徴のうちの1つ以上を含み得る。
【0118】
第1の特徴は、以下の特徴のうちの任意のものと組み合わせ可能であり、車両信号カタログは、接続車両システムアライアンス(COVESA)の車両信号仕様(VSS)に基づいている。
【0119】
第2の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、許可要素は、読み取り許可要素または書き込み許可要素である。
【0120】
第3の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、許可値は、予め定義された許可値のセットからのものである。
【0121】
第4の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、ノードの信号値に対する読み取りアクセスが、同じ許可値を有するアプリケーションの選択されたグループに限定されることを示す。
【0122】
第5の特徴は、上記の特徴および以下の特徴のうちの任意のものと組み合わせ可能であり、ノードは、ブランチノードであり、動作は、許可マップ内の構成された許可値にしたがって、車両信号カタログ内のノードのサブノードの許可要素の許可値を設定することをさらに含む。
【0123】
第6の特徴は、上記の特徴のうちの任意のものと組み合わせ可能であり、車両信号カタログ内のノードのサブノードの許可要素の許可値を設定することは、許可マップがサブノードの許可要素の許可値を含むかどうかを決定することと、許可マップが、サブノードの許可要素の許可値を含まないことを決定することに応答して、サブノードの許可要素の許可値を構成された許可値と同じであるように設定することとを含む。
【0124】
本開示に記載された主題および動作のうちのいくつかは、デジタル電子回路において、またはコンピュータソフトウェア、ファームウェア、またはハードウェア(本開示において記載された構造およびそれらの構造的均等物を含む)において、またはこれらのうちの1つ以上の組み合わせにおいて実装され得る。本開示において記載された主題のうちのいくつかは、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、コンピュータ格納媒体上にエンコードされた1つ以上のコンピュータプログラム(すなわち、コンピュータプログラム命令の1つ以上のモジュール)として実装され得る。代替的にまたは追加的に、プログラム命令は、人工的に生成された伝搬信号(例えば、データ処理装置による実行のために適切な受信器装置に伝送するための情報をエンコードするために生成される機械生成電気信号、光学信号、または電磁信号)にエンコードされ得る。コンピュータ格納媒体は、機械読み取り可能な格納デバイス、機械読み取り可能な格納基板、ランダムアクセスメモリデバイスまたはシリアルアクセスメモリデバイス、またはコンピュータ格納媒体の任意の組み合わせであり得る。
【0125】
用語「データ処理装置」、「コンピュータ」、または「電子コンピュータデバイス」という用語は、データを処理するための全ての種類の装置、デバイス、および機械を包括し、例えば、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または複数のもの、または上記のものの組み合わせを含む。装置は、特殊目的ロジック回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。いくつかの実装において、データ処理装置または特殊目的ロジック回路(または、データ処理装置または特殊目的ロジック回路の組み合わせ)は、ハードウェアベースまたはソフトウェアベース(または、ハードウェアベースおよびソフトウェアベースの両方の組み合わせ)であり得る。装置は、随意に、コンピュータプログラムに対する実行環境を作成するコード(例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または実行環境の組み合わせを構成するコード等)を含み得る。本開示は、従来的なオペレーティングシステム(例えば、LINUX(登録商標)、UNIX(登録商標)、WINDOWS(登録商標)、MAC OS(登録商標)、ANDROID(登録商標)、IOS、または任意のその他の適切な従来的なオペレーティングシステム等)を伴うかまたは伴わないデータ処理装置の使用を企図している。
【0126】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとして参照されることまたは記載されることもあり得る)は、コンパイル型言語またはインタプリタ型言語、または宣言型言語または手続き型言語を含む任意の形式のプログラミング言語で書き込まれ得、それは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適したその他のユニットとしてを含む任意の形式において展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、そうである必要はない。プログラムは、その他のプログラムまたはデータを保持するファイルの一部分(例えば、マークアップ言語ドキュメント内に格納された1つ以上のスクリプト等)において、問題としているプログラム専用の単一ファイルにおいて、または複数の連携したファイル(例えば、1つ以上のモジュール、サブルーチン、またはコードの一部分を格納するファイル)において格納され得る。コンピュータプログラムは、1つの場所に位置する1つのコンピュータ上で、または複数の場所にわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。種々の図面において例示されたプログラムの部分は、種々のオブジェクト、方法、またはその他のプロセスを通して種々の特徴および機能性を実装する個々のモジュールとして示されているが、代わりに、プログラムは、必要に応じて、多数のサブモジュール、サードパーティサービス、コンポーネント、ライブラリ等を含み得る。逆に、種々のコンポーネントの特徴および機能性は、必要に応じて、単一のコンポーネントに組み合わされ得る。
【0127】
本開示におけるプロセスおよびロジックフローのうちのいくつかは、1つ以上のプログラマブルプロセッサによって遂行され得、入力データに対して動作し、出力を生成することによってアクションを遂行するように、1つ以上のコンピュータプログラムを実行し得る。プロセスおよびロジックフローはまた、特殊目的ロジック回路(例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)等)によって遂行され得、装置はまた、特殊目的ロジック回路として実装され得る。
【0128】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用マイクロプロセッサおよび特殊目的マイクロプロセッサの両方、および任意の種類のデジタルコンピュータのプロセッサを含む。概して、プロセッサは、リードオンリメモリまたはランダムアクセスメモリ、または両方から命令およびデータを受信し得る。プロセッサは、例えば、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または複数のもの、または上記の任意の組み合わせを含み得る。プロセッサは、特殊目的論理回路、例えばCPU(中央処理ユニット)、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含み得る。
【0129】
コンピュータプログラムの実行のために適したコンピュータは、汎用マイクロプロセッサまたは特殊目的マイクロプロセッサ、これらの両方、または任意のその他の種類のCPUに基づき得る。概して、CPUは、リードオンリメモリ(ROM)またはランダムアクセスメモリ(RAM)、またはこれらの両方から命令およびデータを受信し得る。コンピュータの必須要素は、命令を遂行または実行するためのCPU、および命令およびデータを格納するための1つ以上のメモリデバイスである。概して、コンピュータはまた、データを格納するための1つ以上の大容量格納デバイス(例えば、磁気ディスク、電磁ディスク、または光学ディスク)を含むか、または1つ以上の大容量格納デバイスからデータを受信すること、1つ以上の大容量格納デバイスにデータを転送すること、または両方を行うために、動作可能に結合され得る。しかしながら、コンピュータは、そのようなデバイスを有することは必要ではない。さらに、コンピュータは、別のデバイス(例えば、いくつか例を挙げると、モバイル電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオまたはビデオプレイヤ、ゲームコンソール、全地球測位システム(GPS)受信器、またはポータブル格納デバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ))内に埋め込まれ得る。
【0130】
コンピュータプログラム命令およびデータを格納することに適したコンピュータ読み取り可能な媒体(必要に応じて、一時的または非一時的)は、全ての形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、半導体メモリデバイス(例えば、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、およびフラッシュメモリデバイス等)、磁気ディスク(例えば、内部ハードディスクまたはリムーバブルディスク等)、磁気光学ディスク、およびCD-ROM、DVD+/-R、DVD-RAM、およびDVD-ROMディスクを含む。メモリは、種々のオブジェクトまたはデータ(例えば、キャッシュ、クラス、フレームワーク、アプリケーション、バックアップデータ、ジョブ、ウェブページ、ウェブページテンプレート、データベーステーブル、動的情報を格納しているリポジトリ、および任意のその他の適切な情報(任意のパラメータ、変数、アルゴリズム、命令、規則、制約、またはそれらに対する参照を含む)を含む)を格納し得る。加えて、メモリは、任意のその他の適切なデータ(例えば、ログ、ポリシー、セキュリティ、またはアクセスデータ、報告ファイル、ならびにその他のもの)を含み得る。プロセッサおよびメモリは、特殊目的ロジック回路によって補足され得るか、または、特殊目的ロジック回路内に組み込まれ得る。いくつかの場合において、コンピュータ格納媒体は、一時的、非一時的、またはこれらの組み合わせであり得る。
【0131】
ユーザとの相互作用を提供するために、本開示に記載された主題の実装は、ディスプレイデバイス(例えば、ユーザに情報を提供するためのCRT(陰極線管)、LCD(液晶ディスプレイ)、LED(発光ダイオード)、またはプラズマモニタ等)と、キーボードおよびポインティングデバイス(例えば、ユーザがそれによって入力をコンピュータに提供し得るマウス、トラックボール、またはトラックパッド)とを有するコンピュータ上で実装され得る。入力はまた、タッチスクリーン(例えば、圧力感受性を伴うタブレットコンピュータ表面、容量性または電気的な感知を使用したマルチタッチスクリーン、またはその他のタイプのタッチスクリーン)を使用してコンピュータに提供され得る。その他の種類のデバイスも同様に、ユーザとの相互作用を提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、任意の形式の感知フィードバック(例えば、視覚的フィードバック、聴覚的フィードバック、または触覚フィードバック等)であり得、ユーザからの入力は、任意の形式(音響入力、スピーチ入力、または触覚入力を含む)において受信され得る。加えて、コンピュータは、ウェブブラウザから受信された要求に応答して、例えばユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザによって使用されるデバイスにドキュメントを送信すること、およびユーザによって使用されるデバイスからドキュメントを受信することによって、ユーザと相互作用し得る。
【0132】
用語「グラフィカルユーザインターフェース」または「GUI」は、1つ以上のグラフィカルユーザインターフェースと、特定のグラフィカルユーザインターフェースのディスプレイの各々とを記載するために、単数形または複数形で使用され得る。したがって、GUIは、任意のグラフィカルユーザインターフェース(限定するものではないが、ウェブブラウザ、タッチスクリーン、または情報を処理し、情報結果をユーザに効率的に提示するコマンドラインインターフェース(CLI)を含む)を表し得る。概して、GUIは、複数のユーザインターフェース(UI)要素(いくつかまたは全てが、ビジネススイートユーザによって動作可能な相互作用フィールド、プルダウンリスト、およびボタン等のウェブブラウザと関連付けられている)を含み得る。これらのUI要素またはその他のUI要素は、ウェブブラウザの機能に関連し得るか、または、ウェブブラウザの機能を表し得る。
【0133】
用語「リアル・タイム(real-time)」、「リアル タイム(real time)」、「リアルタイム(realtime)」、「リアル(ファスト)タイム(real (fast) time:RFT)」、「ほぼリアル・タイム(near(ly) real-time:NRT)」、「準リアル・タイム(quasi real-time)」、または(当業者によって理解されるような)類似の用語は、アクションおよび応答が、時間的に近接したものであり、その結果、個人は、アクションおよび応答が実質的に同時に起こることを知覚することを意味する。例えば、データにアクセスするための個人のアクションに続いたデータのディスプレイに対する(またはディスプレイの相互作用のための)応答に対する時間差は、1m秒未満、1秒未満、5秒未満等であり得る。要求されたデータは、瞬間的に表示される(または、表示がイニシエートされる)必要はないが、それは、記載されたコンピューティングシステムの処理限界、例えばデータを収集すること、正確に測定すること、分析すること、処理すること、格納すること、または伝送することのために要求される時間を考慮して、任意の意図的な遅延を伴わずに表示される(または、表示がイニシエートされる)。
【0134】
本開示に記載される主題の実装は、バックエンドコンポーネント(例えば、データサーバのようなもの)を含むコンピューティングシステム、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ等)を含むコンピューティングシステム、またはフロントエンドコンポーネント(例えば、それを通してユーザが本開示に記載された主題の実装と相互作用し得るグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ等)を含むコンピューティングシステム、または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)セル、音声、ビデオ、データ、またはネットワークアドレス間のその他の適切な情報(または通信タイプの組み合わせ)で通信し得る。
【0135】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して、相互から遠隔にあり、典型的には、通信ネットワークを通して相互作用し得る。クライアントとサーバとの関係は、それぞれのコンピュータ上で稼働しているコンピュータプログラムによって生じ、相互に対してクライアント・サーバ関係を有する。
【0136】
いくつかの実装において、コンピューティングシステムのコンポーネントのうちの任意のものまたは全て(ハードウェアまたはソフトウェアのいずれか(またはハードウェアとソフトウェアとの組み合わせ))は、アプリケーションプログラミングインターフェース(API)、またはサービス層(またはAPIとサービス層との組み合わせ)を使用して、相互にまたはインターフェースとインターフェースし得る。APIは、ルーチン、データ構造、およびオブジェクトクラスに対する仕様を含み得る。APIは、コンピュータ言語、独立型または従属型のいずれかであり、完全なインターフェース、単一の機能、またはAPIのセットすら参照し得る。サービス層は、コンピューティングシステムにソフトウェアサービスを提供する。コンピューティングシステムの種々のコンポーネントの機能性は、このサービス層を使用するすべてのサービス消費者にとってアクセス可能であり得る。ソフトウェアサービスは、定義されたインターフェースを通して、再利用可能な定義されたビジネス機能性を提供する。例えば、インターフェースは、拡張マークアップ言語(XML)フォーマットまたは別の適切なフォーマットにおけるデータを提供するJAVA(登録商標)、C++、またはその他の適切な言語で書かれたソフトウェアであり得る。APIまたはサービス層(または、APIとサービス層との組み合わせ)は、コンピューティングシステムのその他のコンポーネントとの関係における一体型コンポーネントまたはスタンドアロンコンポーネントであり得る。さらに、サービス層のうちの任意の部分または全ての部分は、本開示の範囲から逸脱することなしに、別のソフトウェアモジュール、またはハードウェアモジュールの子モジュールまたはサブモジュールとして実装され得る。
【0137】
本開示は、多くの特有の実装の詳細を含むが、これらは、任意の発明の範囲に対する限定または特許請求され得るものの範囲に対する限定として考えられるべきではなく、むしろ、特定の発明の特定の実装に特有であり得る特徴の記載として考えられるべきである。別個の実装の文脈において本開示に記載される特定の特徴はまた、組み合わせにおいて、単一の実装において、実装され得る。逆に、単一の実装の文脈において記載される種々の特徴はまた、別個に、または任意の適切なサブコンビネーションにおいて、複数の実装において実装され得る。さらに、特徴は、特定の組み合わせにおいて作用するものとして上述され得、そのように最初に特許請求すらされ得るが、特許請求される組み合わせからの1つ以上の特徴は、いくつかの場合においては、組み合わせから削除され得、特許請求される組み合わせは、サブコンビネーションまたはサブコンビネーションの変形に向けられ得る。
【0138】
主題の特定の実装が、記載されてきた。記載された実装のその他の実装、代替、および順列は、当業者に理解され得るように以下の特許請求の範囲の範囲内にある。動作は特定の順序において図面および特許請求の範囲に描写されているが、これは、所望の結果を達成するために、そのような動作が示されている特定の順序においてまたは連続順序において遂行されるべきであることを要求していると理解されるべきではなく、または、全ての例示された動作が遂行されるべきであることを要求していると理解されるべきではない(いくつかの動作は、オプションとして考えられ得る)。特定の状況において、マルチタスクまたは並列処理(またはマルチタスクと並列処理との組み合わせ)が有利であり得、適切と判断される場合には遂行され得る。
【0139】
さらに、上述の実装における種々のシステムモジュールおよびコンポーネントの分離または一体化は、全ての実装におけるそのような分離または一体化を要求していると理解されるべきではなく、記載されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに一体化され得るか、または、複数のソフトウェア製品にパッケージ化され得ると理解されるべきである。
【0140】
したがって、例示的な実装についての上記の記載は、本開示を定義または制約するものではない。本開示の精神および範囲から逸脱することなしに、その他の変更、置換、および代替もまた可能である。
【0141】
さらに、以下の任意の特許請求された実装は、少なくとも、コンピュータ実装方法、コンピュータ実装方法を遂行するためのコンピュータ読み取り可能命令を格納している非一時的コンピュータ読み取り可能な媒体、およびコンピュータ実装方法またはコンピュータ読み取り可能な媒体上に格納された命令を遂行するように構成されたハードウェアプロセッサと相互運用可能に結合されたコンピュータメモリを含むコンピュータシステムに対して適用可能であると考えられる。
図1
図2
図3
図4
図5
図6