(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024037817
(43)【公開日】2024-03-19
(54)【発明の名称】一次デバイスと車両ヘッドユニットとの間の通信のための切り替え可能な通信トランスポート
(51)【国際特許分類】
H04L 69/326 20220101AFI20240312BHJP
H04L 12/28 20060101ALI20240312BHJP
【FI】
H04L69/326
H04L12/28 100A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023206758
(22)【出願日】2023-12-07
(62)【分割の表示】P 2021160961の分割
【原出願日】2021-09-30
(31)【優先権主張番号】17/130,734
(32)【優先日】2020-12-22
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】スリラム・ビスワナサン
(72)【発明者】
【氏名】カルステン・アイセルト
(72)【発明者】
【氏名】ベルント・ホルツアイ
(72)【発明者】
【氏名】レスリー・グレン・ワトキンス
(72)【発明者】
【氏名】ポール・ダーモット・クロウリー
(72)【発明者】
【氏名】マービン・ウィルヘルム・マックス・ポール
(57)【要約】 (修正有)
【課題】概して、一次デバイスと車両ヘッドユニットとの間の通信のための切り替え可能な通信トランスポートを実現する方法、一次デバイス及び記憶媒体を提供する。
【解決手段】システム10において、一次デバイスは、オペレーティングシステムおよびアプリケーションを格納するメモリと、オペレーティングシステムを実行して単一の通信インターフェイスを提示するプロセッサと、を備える。当該単一の通信インターフェイスによって、アプリケーションは、車両ヘッドユニットによって提示するためのデータをアプリケーションが提供するモードの実行を容易にする一次デバイスと車両ヘッドユニットとの間の第1のトランスポート109を確立する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
方法であって、
一次デバイスによって実行されるオペレーティングシステムが、単一の通信インターフェイスを提示することを備え、前記単一の通信インターフェイスによって、アプリケーションは、車両ヘッドユニットによって提示するためのデータを前記アプリケーションが提供するモードの実行を容易にする前記一次デバイスと前記車両ヘッドユニットとの間の第1のトランスポートを確立し、前記方法はさらに、
前記モードの実行中に前記アプリケーションが、前記第1のトランスポートを介して前記データを送信することと、
前記モードの実行中に前記オペレーティングシステムが、前記第1のトランスポートから第2のトランスポートに切り替えることと、
前記モードの実行中に前記アプリケーションが、前記第2のトランスポートを介して前記データを送信することとを備える、方法。
【請求項2】
前記モードの実行中に前記第2のトランスポートによって使用されるソケットストリームの確立を容易にするように、前記車両ヘッドユニットおよび前記一次デバイスに関するプラットフォーム要件を前記単一の通信インターフェイスを介してネゴシエートすることをさらに備える、請求項1に記載の方法。
【請求項3】
前記オペレーティングシステムが、前記アプリケーションによって送信される前記データの複数の特性のうちの1つ以上の特性に基づいて前記第2のトランスポートを選択することをさらに備える、請求項1に記載の方法。
【請求項4】
前記アプリケーションは第1のアプリケーションを含み、
前記複数の特性は、前記データをソースする第2のアプリケーションのタイプと、前記データをソースする前記第2のアプリケーションが必要とする帯域幅の量と、前記データをソースする前記第2のアプリケーションのサービス提供能力とを含む、請求項3に記載の方法。
【請求項5】
前記サービスは、オーディオストリーミング、ビデオストリーミング、音声アシスタンス、セルラー通信、および情報表示、のうちの少なくとも1つである、請求項4に記載の方法。
【請求項6】
前記オペレーティングシステムが、前記第2のトランスポートを介して通信されるデータのタイプ、前記第2のトランスポートを介して通信されるデータの量、または前記第2のトランスポートを介して通信されるデータのパケット、のうちの少なくとも1つに基づいて前記第2のトランスポートを選択することをさらに備える、請求項1に記載の方法。
【請求項7】
前記オペレーティングシステムが、前記データをソースするアプリケーションの待ち時間閾値またはバースト性許容範囲の少なくとも一方に基づいて前記第2のトランスポートを選択することをさらに備える、請求項1に記載の方法。
【請求項8】
前記第1のトランスポートおよび前記第2のトランスポートの各々は、パーソナルエリアネットワークトランスポート、無線ローカルエリアネットワークトランスポート、および有線トランスポート、のうちの1つを備える、請求項1に記載の方法。
【請求項9】
前記第1のトランスポートおよび前記第2のトランスポートの各々は、同じパーソナルエリアネットワークトランスポートの異なるバージョンを含む、請求項1に記載の方法。
【請求項10】
前記同じパーソナルエリアネットワークトランスポートの前記異なるバージョンは、前記同じパーソナルエリアネットワークトランスポートの低エネルギーバージョンおよび前記同じパーソナルエリアネットワークトランスポートの高エネルギーバージョンを含む、請求項9に記載の方法。
【請求項11】
前記アプリケーションは投影アプリケーションを含み、
前記モードは、前記投影アプリケーションが前記車両ヘッドユニットによって提示するための前記データを投影する投影モードを含む、請求項1に記載の方法。
【請求項12】
一次デバイスであって、
オペレーティングシステムおよびアプリケーションを格納するように構成されたメモリと、
1つ以上のプロセッサとを備え、前記1つ以上のプロセッサは、
前記オペレーティングシステムを実行して単一の通信インターフェイスを提示するように構成され、前記単一の通信インターフェイスによって、前記アプリケーションは、車両ヘッドユニットによって提示するためのデータを前記アプリケーションが提供するモードの実行を容易にする前記一次デバイスと前記車両ヘッドユニットとの間の第1のトランスポートを確立し、前記1つ以上のプロセッサはさらに、
前記アプリケーションを実行して、前記モードの実行中に、前記第1のトランスポートを介して前記データを送信するように構成され、
前記オペレーティングシステムは、前記モードの実行中に、前記第1のトランスポートから第2のトランスポートに切り替え、
前記アプリケーションは、前記モードの実行中に、前記第2のトランスポートを介して前記データを送信する、一次デバイス。
【請求項13】
前記1つ以上のプロセッサは、前記モードの実行中に前記第2のトランスポートによって使用されるソケットストリームの確立を容易にするように、前記車両ヘッドユニットおよび前記一次デバイスに関するプラットフォーム要件を前記単一の通信インターフェイスを介してネゴシエートするようにさらに構成される、請求項12に記載の一次デバイス。
【請求項14】
前記1つ以上のプロセッサは、前記オペレーティングシステムを実行して、前記アプリケーションによって送信される前記データの複数の特性のうちの1つ以上の特性に基づいて前記第2のトランスポートをネゴシエート選択するようにさらに構成される、請求項12に記載の一次デバイス。
【請求項15】
前記アプリケーションは第1のアプリケーションを含み、
前記複数の特性は、前記データをソースする第2のアプリケーションのタイプと、前記データをソースする前記第2のアプリケーションが必要とする帯域幅の量と、前記データをソースする前記第2のアプリケーションのサービス提供能力とを含む、請求項14に記載の一次デバイス。
【請求項16】
前記1つ以上のプロセッサは、前記オペレーティングシステムを実行して、前記第2のトランスポートを介して通信されるデータのタイプ、前記第2のトランスポートを介して通信されるデータの量、または前記第2のトランスポートを介して通信されるデータのパケット、のうちの少なくとも1つに基づいて前記第2のトランスポートを選択するようにさらに構成される、請求項12に記載の一次デバイス。
【請求項17】
前記1つ以上のプロセッサは、前記オペレーティングシステムを実行して、前記データをソースするアプリケーションの待ち時間閾値またはバースト性許容範囲の少なくとも一方に基づいて前記第2のトランスポートを選択するようにさらに構成される、請求項12
に記載の一次デバイス。
【請求項18】
前記第1のトランスポートおよび前記第2のトランスポートの各々は、パーソナルエリアネットワークトランスポート、無線ローカルエリアネットワークトランスポート、および有線トランスポート、のうちの1つを備える、請求項12に記載の一次デバイス。
【請求項19】
前記アプリケーションは投影アプリケーションを含み、
前記モードは、前記投影アプリケーションが前記車両ヘッドユニットによって提示するための前記データを投影する投影モードを含む、請求項12に記載の一次デバイス。
【請求項20】
命令が格納された非一時的なコンピュータ読取可能記憶媒体であって、前記命令は、実行されると、一次デバイスの1つ以上のプロセッサに、
オペレーティングシステムを実行して単一の通信インターフェイスを提示させ、前記単一の通信インターフェイスによって、アプリケーションは、車両ヘッドユニットによって提示するためのデータを前記アプリケーションが提供するモードの実行を容易にする前記一次デバイスと前記車両ヘッドユニットとの間の第1のトランスポートを確立し、前記命令はさらに、実行されると、前記1つ以上のプロセッサに、
前記アプリケーションを実行して、前記モードの実行中に、前記第1のトランスポートを介して前記データを送信させ、
前記オペレーティングシステムは、前記モードの実行中に、前記第1のトランスポートから第2のトランスポートに切り替え、
前記アプリケーションは、前記モードの実行中に、前記第2のトランスポートを介して前記データを送信する、非一時的なコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
背景
車両は、暖房・換気・空調(HVAC)システム、(車内の光および/または車外の光を制御するための)照明システム、インフォテイメントシステム、(運転席および/または助手席の位置を制御するための)座席システムなどの車両システムを制御するために使用するインターフェイス(たとえば、グラフィカルユーザインターフェイスGUI)を提示する、いわゆる「ヘッドユニット」またはその他の統合されたヘッドユニットを含み得る。インターフェイスは、コンソール(たとえば車載ディスプレイ)を介して提示され得る。自動車、オートバイ、バス、レクリエーショナル・ビークル(RV)、セミトレーラートラック、トラクターもしくはその他の種類の農機具、列車、飛行機、ドローン、ヘリコプター、または個人用移動車両などの車両のユーザは、一次デバイス(たとえば携帯電話)を車両のヘッドユニットに接続してグラフィカルユーザインターフェイスをヘッドユニットに投影(または、換言すると、提供)し得る。次いで、ヘッドユニットは、ヘッドユニットに結合されたディスプレイを介してグラフィカルユーザインターフェイスを提示し得る。
【発明の概要】
【発明が解決しようとする課題】
【0002】
グラフィカルユーザインターフェイスをヘッドユニットに投影するために、スマートフォンなどの一次デバイスは、有線トランスポートまたは無線トランスポートを介してヘッドユニットに接続し得る。有線トランスポートは、一次デバイスがUSBケーブルを介してヘッドユニットに結合されるユニバーサルシリアルバス(USB)トランスポートを含み得る。無線トランスポートは、低エネルギーおよび高(または、換言すると、通常)エネルギーバージョンを含み得るパーソナルエリアネットワーク(PAN)トランスポート、(別のタイプのPANトランスポートを表し得る)超広帯域(UWB)接続、ならびに無線ローカルエリアネットワーク(WLAN)接続などを含み得る。ヘッドユニットと一次デバイスとの間の通信が劣化するか、中断するか、またはそうでなければ失敗すると、一次デバイスはトランスポートを再開して車両ヘッドユニットとのトランスポートを再確立し得る。トランスポートを再開すると、グラフィカルユーザインターフェイスの投影が中断する可能性があり、場合によっては一次デバイスが異なる形態の接続を確立する(たとえば、無線トランスポートから有線トランスポートに切り替える)必要性が生じる可能性がある。
【課題を解決するための手段】
【0003】
概要
概して、ヘッドユニットへのグラフィカルユーザインターフェイスの投影中に、またはヘッドユニットによって出力されるグラフィカルユーザインターフェイスのサポート中に、一次デバイスがトランスポート間をシームレスに切り替えることができるようにするための技術について記載する。すなわち、一次デバイスのオペレーティングシステムは、ヘッドユニットにおいて表示するためのグラフィカルユーザインターフェイスを一次デバイスが投影またはサポートし得るトランスポートを確立するための単一の通信インターフェイスを提示し得る。一次デバイスによって実行されるアプリケーションは、この単一の通信インターフェイスとインターフェイス接続して当該トランスポートを確立し、当該単一の通信インターフェイスを介して、グラフィカルユーザインターフェイスを投影またはサポートするための当該トランスポートを要求し得る。一次デバイスのオペレーティングシステムは、当該トランスポート要求に応じて、いくつかの異なるトランスポート(有線ト
ランスポートおよび無線トランスポートの双方を含む)の中から当該トランスポートを選択し得る。この点に関して、オペレーティングシステムは、アプリケーションからトランスポート選択をオフロードし、適切なトランスポートを確立する際のアプリケーションに対する依存性をすべて除去し得る。
【0004】
一次デバイスのオペレーティングシステムが、グラフィカルユーザインターフェイスおよびグラフィカルユーザインターフェイスに対応付けられた1つ以上のアプリケーションに対処しないトランスポートを選択した場合、一次デバイスのオペレーティングシステムは、グラフィカルユーザインターフェイスに対応付けられた1つ以上のアプリケーションにより良く対処する、いくつかの異なるトランスポートのうちの異なるトランスポートを選択し得る。たとえば、一次デバイスのユーザは、最初に、(一例として、ナビゲーションアプリケーションなどの異なるアプリケーションに対応付けられたグラフィカルユーザインターフェイスと比較して)トランスポート帯域幅をほとんど必要としない別のアプリケーション、たとえば電話アプリケーションに対応付けられた第1のグラフィカルユーザインターフェイスの投影を容易にする投影アプリケーションの実行を開始し得る。
【0005】
一次デバイスのオペレーティングシステムは、第1のグラフィカルユーザインターフェイスのための最初のトランスポートとして、PANトランスポートを選択し得る。次いで、ユーザは、第1のグラフィカルユーザインターフェイスとインターフェイス接続して、より大きいトランスポート帯域幅を消費するナビゲーションアプリケーションを開始し得る。一次デバイスのオペレーティングシステムは、第1のグラフィカルユーザインターフェイスの投影を再開して異なるトランスポートを選択するようにクライアントに要求するのではなく、基礎となるアプリケーション(すなわち、この例ではナビゲーションアプリケーション)がトランスポート間の切り替えに気付かないように、PANトランスポートから、よりロバストな無線トランスポート(たとえばWLAN)および/または有線トランスポートにシームレスに移行し得る。
【0006】
この点に関して、本技術のさまざまな局面はユーザ体験を改善することができる。トランスポートを介した接続が遮断された(たとえば、有線接続が一時的に切断された、および/もしくは無線トランスポートにおいて干渉が生じた)ときに、または一次デバイスが異なるトランスポート特性(たとえば、損失データに関する異なる帯域幅、異なる待ち時間、異なる信頼性など)を必要とするときに、一次デバイスは投影(またはサポート)を中止し得ないからである。そのようなユーザ体験の改善は、一次デバイスのユーザが車両を操作中である車両設定において特に有益であり得る。ユーザ体験が改善することにより、車両を操作中のユーザの注意散漫が低減し、これにより安全性が高まる可能性があるからである。さらに、本技術のさまざまな局面は、再開を減らすことによって、一次デバイスおよびヘッドユニットが(たとえば、費やされるプロセッササイクル、消費されるメモリ、利用されるメモリバス帯域幅、消費される無線帯域幅などに関して)より効率的に動作することを可能にすることができる。再開のたびに、一次デバイスとヘッドユニットとの間でグラフィカルユーザインターフェイスの投影を行うためのトランスポートを再ネゴシエートするために追加のリソース(たとえば、プロセッササイクル、メモリ空間、メモリバス帯域幅、無線帯域幅など)が必要であるからである。
【0007】
いくつかの例では、本技術のさまざまな局面は、方法を対象としており、上記方法は、一次デバイスによって実行されるオペレーティングシステムが、単一の通信インターフェイスを提示することを備え、上記単一の通信インターフェイスによって、アプリケーションは、車両ヘッドユニットによって提示するためのデータを上記アプリケーションが提供するモードの実行を容易にする上記一次デバイスと上記車両ヘッドユニットとの間の第1のトランスポートを確立し、上記方法はさらに、上記モードの実行中に上記アプリケーションが、上記第1のトランスポートを介して上記データを送信することと、上記モードの
実行中に上記オペレーティングシステムが、上記第1のトランスポートから第2のトランスポートに切り替えることと、上記モードの実行中に上記アプリケーションが、上記第2のトランスポートを介して上記データを送信することとを備える。
【0008】
いくつかの例では、本技術のさまざまな局面は、一次デバイスを対象としており、上記一次デバイスは、オペレーティングシステムおよびアプリケーションを格納するように構成されたメモリと、1つ以上のプロセッサとを備え、上記1つ以上のプロセッサは、上記オペレーティングシステムを実行して単一の通信インターフェイスを提示するように構成され、上記単一の通信インターフェイスによって、上記アプリケーションは、車両ヘッドユニットによって提示するためのデータを上記アプリケーションが提供するモードの実行を容易にする上記一次デバイスと上記車両ヘッドユニットとの間の第1のトランスポートを確立し、上記1つ以上のプロセッサはさらに、上記アプリケーションを実行して、上記モードの実行中に、上記第1のトランスポートを介して上記データを送信するように構成され、上記オペレーティングシステムは、上記モードの実行中に、上記第1のトランスポートから第2のトランスポートに切り替え、上記アプリケーションは、上記モードの実行中に、上記第2のトランスポートを介して上記データを送信する。
【0009】
いくつかの例では、本技術のさまざまな局面は、命令が格納された非一時的なコンピュータ読取可能記憶媒体を対象としており、上記命令は、実行されると、一次デバイスの1つ以上のプロセッサに、オペレーティングシステムを実行して単一の通信インターフェイスを提示させ、上記単一の通信インターフェイスによって、アプリケーションは、車両ヘッドユニットによって提示するためのデータを上記アプリケーションが提供するモードの実行を容易にする上記一次デバイスと上記車両ヘッドユニットとの間の第1のトランスポートを確立し、上記命令はさらに、実行されると、上記1つ以上のプロセッサに、上記アプリケーションを実行して、上記モードの実行中に、上記第1のトランスポートを介して上記データを送信させ、上記オペレーティングシステムは、上記モードの実行中に、上記第1のトランスポートから第2のトランスポートに切り替え、上記アプリケーションは、上記モードの実行中に、上記第2のトランスポートを介して上記データを送信する。
【0010】
1つ以上の例の詳細は、添付の図面および以下の説明に記載される。本開示の他の特徴、目的、および利点は、説明および図面ならびに特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【0011】
【
図1】本開示に記載される切り替え可能な通信トランスポート技術のさまざまな局面を実行するように構成されるシステムの一例を示す概念図である。
【
図2】本開示に記載されるトランスポート管理技術のさまざまな局面を実行するように構成される投影アーキテクチャの一例を示すブロック図である。
【
図3】本開示に記載される技術のさまざまな局面に従う、シームレスに切り替え可能なトランスポート管理が行われ得るようにするためのオペレーティングシステムの階層アーキテクチャの概念図を示すブロック図である。
【
図4】本開示に記載される技術のさまざまな局面に従う、シームレスに切り替え可能なトランスポート管理が行われ得るようにするためのオペレーティングシステムの階層アーキテクチャの概念図を示す別のブロック図である。
【
図5】
図1の一次デバイスをより詳細に示すブロック図である。
【
図6】本開示の技術に従う、投影モードの実行中にトランスポート間をシームレスに切り替える際の
図1の一次デバイスの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0012】
詳細な説明
図1は、本開示に記載される切り替え可能な通信トランスポート技術のさまざまな局面を実行するように構成されるシステムの一例を示す概念図である。
図1の例に示されるように、システム10は、本開示の1つ以上の技術に従う投影モード(または、サポートモードなどの他のモード)の実行を容易にするように複数のトランスポートを管理し得る。システム10は、一次デバイス100および車両ヘッドユニット102を含み得る。
【0013】
図1の例では、一次デバイス100はスマートフォンである。しかしながら、一次デバイス100の他の例は、セルラー電話、スマートフォン、ヘッドユニット拡張もしくはアップグレードカートリッジモジュール、携帯情報端末(PDA)、ラップトップコンピュータ、タブレットコンピュータ、携帯ゲーム装置、携帯メディアプレーヤー、電子書籍リーダー、時計(いわゆるスマートウォッチを含む)、アドオンデバイス(キャスティングデバイスなど)、スマートグラス、ゲームコントローラ、または別のタイプの携帯もしくは移動デバイスであってもよい。
【0014】
車両ヘッドユニット102は、暖房・換気・空調(HVAC)システム、(車内の光および/または車外の光を制御するための)照明システム、インフォテイメントシステム、(運転席および/または助手席の位置を制御するための)座席システムなどの車両システムを制御するために使用するインターフェイス(たとえば、グラフィカルユーザインターフェイスGUI)を提示する、統合されたヘッドユニットを表し得る。インターフェイスは、コンソール(たとえば、
図1の例ではディスプレイ116として示されている車載ディスプレイ)を介して提示され得る。車両ヘッドユニット102は、オートバイ、バス、レクリエーショナル・ビークル(RV)、セミトレーラートラック、トラクターもしくはその他の種類の農機具、列車、飛行機、ドローン、ヘリコプター、個人用移動車両、または本明細書に記載される技術のうちの1つ以上に従ってトランスポートを管理することができる任意の他の種類の車両に含まれ得る。
【0015】
一次デバイス100は、
図1の例に示されるように、アプリケーション104などの1つ以上のアプリケーションの実行環境を提供するオペレーティングシステム103を含み得る。オペレーティングシステム103は、アプリケーション104が一次デバイス100のハードウェアにアクセスするためにインターフェイス接続し得るマルチスレッドオペレーティングシステムまたはシングルスレッドオペレーティングシステムを表し得る。オペレーティングシステム103は、一次デバイス100の基礎となるハードウェアへのアクセスを容易にするカーネルを含み得る。カーネルは、アプリケーション104が一次デバイス100の基礎となるハードウェアにアクセスするために呼び出し得るいくつかの異なるインターフェイス(たとえば、アプリケーションプログラマインターフェイス-API)を提示し得る。
【0016】
一次デバイス100の基礎となるハードウェアの例は、オペレーティングシステム(「OS」)103およびアプリケーション104、ディスプレイ106、ならびに通信(「COMM」)コンポーネント108A~108N(「commコンポーネント108」であり、「通信コンポーネント108」とも称され得る)の実行をサポートする1つ以上のプロセッサ(説明を簡単にするために図示せず)を含む。一次デバイス100のディスプレイ106は、入力デバイスおよび出力デバイスとして機能する存在感知ディスプレイを表し得る。存在感知ディスプレイ106は、さまざまなディスプレイハードウェアを使用して実装され得る。
【0017】
たとえば、存在感知ディスプレイ106は、抵抗型タッチスクリーン、表面弾性波タッチスクリーン、容量式タッチスクリーン、投影型静電容量タッチスクリーン、感圧スクリーン、音響パルス認識タッチスクリーン、または別の存在感知ディスプレイ技術などの、存在感知入力コンポーネントを使用する入力デバイスとして機能し得る。存在感知ディス
プレイ106は、液晶ディスプレイ(LCD)、ドットマトリクスディスプレイ、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、e-ink、または、目に見える情報を一次デバイス100のユーザに出力することができる同様のモノクロもしくはカラーディスプレイなどの、任意の1つ以上のディスプレイコンポーネントを使用する出力(たとえばディスプレイ)デバイスとして機能し得る。
【0018】
通信コンポーネント108は、セルラー無線、3G無線、4G無線、5G無線、超広帯域(UWB)無線、ブルートゥース(登録商標)無線(もしくは任意の他のPAN無線)、NFC無線、またはWi-Fi(商標)無線(もしくは任意の他のWLAN無線)などの通信信号を送信および/または受信可能な無線通信デバイスを含み得る。これに加えてまたはこれに代えて、通信コンポーネント108は、有線通信媒体(たとえば、ユニバーサルシリアルバス-USB-ケーブル)上で直接リンクを介して通信信号を送信および/または受信可能な有線通信デバイスを含み得る。
【0019】
オペレーティングシステム103および/またはアプリケーション104は、一次デバイス100のユーザが一次デバイス100とやり取りするためにインターフェイス接続し得るグラフィカルユーザインターフェイス(GUI)を提示し得る。オペレーティングシステム103は、アプリケーション104の1つ以上のアイコンまたは他の視覚表現を含むGUIをディスプレイ106を介して提示し得、一次デバイス100のユーザは、当該アイコンまたは他の視覚表現のうちの1つ以上を選択して、オペレーティングシステム103によってまたはアプリケーション104によって、一次デバイス100が提供するさまざまなサービスにアクセスし得る。
【0020】
たとえば、オペレーティングシステム103は、電話サービス(たとえば、セルラーテレフォニーサービス、ボイスオーバーインターネットプロトコル(Voice over Internet Protocol)-VoIP-サービスなど)、ウェブ会議サービス、ビデオ会議サービス、テキスティングサービス、電子メールサービス、(たとえば統合されたウェブブラウザを介した)ウェブブラウジングサービス、ナビゲーションサービス、アシスタントサービス、(サードパーティアプリケーションを取得するための)アプリケーションストアサービス(アプリケーション104は、統合されたファーストパーティアプリケーションおよび/もしくはアプリケーションストアサービスを介して取得されるサードパーティアプリケーションのいずれかまたは両方を表し得る)、ならびに/または統合されたファーストパーティアプリケーションによって提供される任意の他のサービスを可能にする、さまざまな統合アプリケーションを含み得る(アプリケーション104はこれらの統合アプリケーションのうちの1つ以上を表し得る)。
【0021】
アプリケーション104は、上述のように、オペレーティングシステム103に統合されるアプリケーションとして開発および提供されるファーストパーティアプリケーション、または、一次デバイス100のユーザがオペレーティングシステム103によって提供されるアプリケーションストアサービスを介して取得するサードパーティアプリケーションを表し得る。アプリケーション104は一次デバイス100のソフトウェア機能を拡張し得、アプリケーション104はオペレーティングシステム103によって提示される実行環境内で実行され得る。アプリケーション104は、数例として、ゲームサービス(たとえばビデオゲーム)、電子メールサービス、ウェブブラウジングサービス、テキスティングおよび/またはチャットサービス、ウェブ会議サービス、ビデオ会議サービス、音楽サービス(ストリーミング音楽サービスを含む)、ビデオサービス(ビデオストリーミングサービスを含む)、ナビゲーションサービス、ワードプロセッシングサービス、スプレッドシートサービス、スライドおよび/もしくはプレゼンテーションサービス、アシスタントサービス、テキスト入力サービス、またはアプリケーションによって一般に提供される任意の他のサービスを提供し得る。
【0022】
図1の例にさらに示されるように、車両ヘッドユニット102はオペレーティングシステム113を含み得、オペレーティングシステム113は、車両ヘッドユニット102の機能(または、換言すると、車両ヘッドユニット102によって提供されるサービス)を拡張するために1つ以上のアプリケーション(説明を簡単にするために
図1の例には図示せず)が実行され得る実行環境を提示し得るという点で、オペレーティングシステム103と同様または実質的に同様であり得る。オペレーティングシステム113は、オペレーティングシステム103の統合アプリケーションに関して上述したサービスと同様のサービスを提供する、統合されたファーストパーティアプリケーションを含み得る。さらに、オペレーティングシステム113によって提供される実行環境において実行される1つ以上のサードパーティアプリケーションは、アプリケーション104に関して上述したサービスと同様のサービスを提供し得る。
【0023】
いずれにしても、オペレーティングシステム113は、アプリケーションが車両ヘッドユニット102の基礎となるハードウェアとインターフェイス接続できるようにするためのインターフェイスを提示することができる。車両ヘッドユニット102の基礎となるハードウェアは、オペレーティングシステム113および1つ以上のアプリケーション、ディスプレイ116および通信(「COMM」)コンポーネント118A~118N(「commコンポーネント118」であり、「通信コンポーネント118」とも称され得る)を実行するように構成される1つ以上のプロセッサ(これも説明を簡単にするために
図1の例には図示せず)を含み得る。
【0024】
ディスプレイ116はディスプレイ106と同様であり得、ディスプレイ116は、ディスプレイ106と同様に、存在感知ディスプレイを表し得る(そのため、「存在感知ディスプレイ116」と称され得る)。すなわち、一次デバイス100の存在感知ディスプレイ106と同様に、存在感知ディスプレイ116は、(たとえば、抵抗型タッチスクリーン、表面弾性波タッチスクリーン、容量式タッチスクリーン、投影型静電容量タッチスクリーン、感圧スクリーン、音響パルス認識タッチスクリーンなどの存在感知入力コンポーネントを使用することによって)入力デバイスとして機能し得、かつ、(たとえば、液晶ディスプレイ(LCD)、ドットマトリクスディスプレイ、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、e-inkなどの任意の1つ以上のディスプレイコンポーネントを使用することによって)出力デバイスとして機能し得る。さらに、一次デバイス100の通信コンポーネント108と同様に、通信コンポーネント118は、セルラー無線、3G無線、4G無線、5G無線、ブルートゥース(登録商標)無線(または任意の他のタイプのPAN無線)、Wi-Fi(商標)無線(または任意の他のタイプのWLAN無線)、イーサネット(登録商標)、USBなどの通信信号を送信および/または受信可能な無線および有線通信インターフェイスを含み得る。
【0025】
車両ヘッドユニット102が位置する車両の乗員は、一次デバイス100(たとえばスマートフォン)を車両ヘッドユニット102に接続して、グラフィカルユーザインターフェイス(オペレーティングシステム103および/またはアプリケーション104によってソースされる)を車両ヘッドユニット102に投影し得る。次いで、車両ヘッドユニット102は、ディスプレイ116を介してグラフィカルユーザインターフェイスを提示し得る。
【0026】
グラフィカルユーザインターフェイスを車両ヘッドユニット102に投影するために、一次デバイス100は、通信コンポーネント108と対応する通信コンポーネント118との間の通信セッションを介して提供される有線トランスポートまたは無線トランスポートを介して車両ヘッドユニット102に接続し得る。有線トランスポートは、一次デバイス100がUSBケーブルを介して車両ヘッドユニット102に結合されるユニバーサル
シリアルバス(USB)トランスポートを含み得る。無線トランスポートは、低エネルギーおよび高(または、換言すると、通常)エネルギーバージョンを含み得るパーソナルエリアネットワーク(PAN)トランスポート、ならびに無線ローカルエリアネットワーク(WLAN)接続などを含み得る。
【0027】
最初に、乗員は、PAN無線トランスポートをサポートするcommコンポーネント108のうちの1つを介して一次デバイス100を車両ヘッドユニット102に結合し得る、または、換言すると、ペアリングし得る。この結合はペアリングと称され得る。ペアリングされると、commコンポーネント108のうちの1つがイネーブルされている限り、一次デバイス100は車両ヘッドユニット102と自動的にペアリングし得る。ペアリングされると、車両ヘッドユニット102のオペレーティングシステム113は、一次デバイス100からのGUIの投影を確立するために他の形態のトランスポート(たとえば、WLANトランスポートまたは有線トランスポート)が必要であることを示す通知をディスプレイ116を介して提示し得る(この例では投影はまだ始まっていない)。
【0028】
この点に関して、オペレーティングシステム113は、一次デバイス100のオペレーティングシステム103および/またはアプリケーション104によって投影されるGUIを受信するように動作するシンクライアント(thin client)を表し得る。換言すると
、オペレーティングシステム113は、一次デバイス100によって提供されるGUIの投影をサポートするためのハードウェア抽象化レイヤー(hardware abstraction layer)(HAL)と(クライアントとして機能する)シンカーネルとを含み得る。HALは、車両ヘッドユニット102が統合される車両のさまざまな局面(たとえば、暖房・換気・空調システム-HVACシステム、座席制御システム、照明システム、全地球測位システムなどのナビゲーションハードウェア、または車両に関して上述した任意の他の局面)とインターフェイス接続するためのコマンドを一次デバイス100が提供することを可能にすることができる。
【0029】
「シン」クライアントまたは「シン」カーネルは、投影をサポートするのに十分な機能を提供するが、フル機能のオペレーティングシステム体験を提供しないクライアントまたはカーネルを指す。そのようなシンクライアントまたはカーネルは、換言すると、オペレーティングシステム113によるアプリケーションのネイティブ実行をサポートし得ず、むしろ、一次デバイス100とインターフェイス接続して一次デバイス100によって投影されるGUIを取得するために使用する動作環境を提供し得る。シンクライアントまたはカーネルはさらに、車両ヘッドユニット102との乗員のやり取り(たとえば、ディスプレイ116上での位置の選択)に関するデータ、および/または、車両ヘッドユニット102に対応付けられたボタンもしくは他の制御機器、ハンドルもしくは他の制御インターフェイスに統合された制御機器などを含む、車内のさまざまな物理制御機器の状態などの、車両ヘッドユニット102が統合される車両のさまざまな局面の変化する制御状態に関するデータを、一次デバイス100に提供し得る。シンクライアントまたはカーネルは、ハードウェアに関して大きく異なり得る多種多様な車両ヘッドユニットのオペレーティングシステム113のより効率的な実行を可能にすることができる。
【0030】
いずれにしても、オペレーティングシステム103は、通信コンポーネント108のうちの1つ以上とインターフェイス接続して、一次デバイス100と車両ヘッドユニット102との間のトランスポート(トランスポート109として示される)を確立することができる。場合によっては、一次デバイス100は、投影アプリケーション105からのデータを車両ヘッドユニット102に通信するためのいくつかの異なるトランスポートのうちの特定のトランスポートを示す投影アプリケーション105を含み得る。これらの例では、オペレーティングシステム103は、投影アプリケーション105が特定のトランスポートを確立するようオペレーティングシステム103に要求できるようにするためのイ
ンターフェイス(たとえばアプリケーションプログラミングインターフェイス)を提示し得る。投影アプリケーション105は、この例では、車両ヘッドユニット102へのGUIの投影を容易にする(かつ、たとえば、音楽ストリーミング、ナビゲーション、電話、通知などのための、承認された追加のアプリケーション104同士の間のブリッジと、これらのアプリケーション104のためのGUIの投影とを提供する)アプリケーションを表し得る。
【0031】
次いで、投影アプリケーション105は、乗員が(たとえば、アイコンまたは他の視覚表現を選択することによって)車両ヘッドユニット102のディスプレイ116を介して1つ以上の追加のアプリケーション104を選択できるようにするための要求されたトランスポート109を介して、投影アプリケーション105のためのGUIを投影し得る。GUIの投影について述べる場合、投影アプリケーション105は、投影される(たとえば、GUIを表す)データをオペレーティングシステム103に渡し、オペレーティングシステム103は通信コンポーネント108のうちの1つ以上とインターフェイス接続して、投影されるデータをトランスポート109を介して車両ヘッドユニット102に出力することが理解されるべきである。車両ヘッドユニット102は、投影されるデータをトランスポート109と通信コンポーネント118のうちの対応する1つとを介して受信し、ディスプレイ116とインターフェイス接続して、トランスポート109を介して受信したデータによって表されるGUIを提示する。
【0032】
投影アプリケーション105が、オペレーティングシステム103によって提示されるインターフェイスを介してトランスポート109を明示的に要求するこの構成では、投影アプリケーション105は、要求されたトランスポート(および場合によっては異なるトランスポート)を介してのみ作動し得、オペレーティングシステム103は、複数のトランスポート間を切り替えるための方法を提供し得ない。さらに、オペレーティングシステム103は複数のアプリケーション間の投影におけるコンフリクトを緩和する方法を有していない(かつ、投影アプリケーションは競合する投影アプリケーションに気付いていない)ので、オペレーティングシステム103は、確立されたトランスポートを介して複数のアプリケーションを同時に投影できない場合がある。
【0033】
よって、車両ヘッドユニット102と一次デバイス100との間のトランスポート109が劣化するか、中断するか、またはそうでなければ失敗すると、投影アプリケーション105はトランスポート109を再開して車両ヘッドユニット102とのトランスポート109を再確立し得る。トランスポートを再開すると、グラフィカルユーザインターフェイスの投影が中断する可能性があり、場合によっては一次デバイス100が異なる形態のトランスポートを確立する(たとえば、無線トランスポートから有線トランスポートに切り替える)必要性が生じる可能性がある。
【0034】
トランスポート109を再確立すると、または異なる形態のトランスポートを確立すると、オペレータまたは他の乗員が一次デバイス100とやり取りする必要があり得るため、オペレータまたは他の乗員が注意散漫になって安全上の懸念が生じ得る。さらに、トランスポート109を何度も再確立すると、または異なる形態のトランスポートを確立すると、(たとえば、プロセッササイクル、電力、メモリ帯域幅、メモリ記憶空間、トランスポート帯域幅などに関して)非効率化につながり、一次デバイス100および車両ヘッドユニット102の動作が劣化し得る。
【0035】
本開示の技術に従うと、一次デバイス100のオペレーティングシステム103は、車両ヘッドユニット102において表示するためのグラフィカルユーザインターフェイスを投影アプリケーション105が投影し得るトランスポート109を確立するための単一の通信インターフェイスを提示し得る。一次デバイス100によって実行される投影アプリ
ケーション105は、この単一の通信インターフェイスとインターフェイス接続してトランスポート109を確立し、当該単一の通信インターフェイスを介して、グラフィカルユーザインターフェイスを投影するためのトランスポート109を要求し得る。一次デバイス100のオペレーティングシステム103は、トランスポート109を求める当該要求に応じて、いくつかの異なるトランスポート(有線トランスポートおよび無線トランスポートの双方を含む)の中からトランスポート109を選択し得る。この点に関して、オペレーティングシステム103は、投影アプリケーション105からトランスポート選択をオフロードし、適切なトランスポートを確立する際の投影アプリケーション105に対する依存性をすべて除去し得る。
【0036】
一次デバイス100のオペレーティングシステム103が、グラフィカルユーザインターフェイスおよびグラフィカルユーザインターフェイスに対応付けられた1つ以上のアプリケーション104に対処しないトランスポート109を選択した場合、一次デバイス100のオペレーティングシステム103は、当該グラフィカルユーザインターフェイスに対応付けられたアプリケーション104のうちの1つ以上により良く対処する、いくつかの異なるトランスポートのうちの異なるトランスポート119を選択し得る。たとえば、一次デバイス100のユーザは、最初に、(一例として、ナビゲーションアプリケーションなどの異なるアプリケーション104に対応付けられたグラフィカルユーザインターフェイスと比較して)トランスポート帯域幅をほとんど必要としない別のアプリケーション104、たとえば電話アプリケーションに対応付けられた第1のグラフィカルユーザインターフェイスの投影を容易にする投影アプリケーション105の実行を開始し得る。
【0037】
一次デバイス100のオペレーティングシステム103は、第1のグラフィカルユーザインターフェイスのための最初のトランスポートとして、PANトランスポートを選択し得る。次いで、ユーザは、ディスプレイ116を介して第1のグラフィカルユーザインターフェイスとインターフェイス接続して、より大きいトランスポート帯域幅を消費するナビゲーションアプリケーション104を開始し得る。一次デバイス100のオペレーティングシステム103は、第1のグラフィカルユーザインターフェイスの投影を再開して異なるトランスポートを選択するようにクライアントに要求するのではなく、基礎となるアプリケーション(すなわち、この例ではナビゲーションアプリケーション104)がトランスポート109/119間の切り替えに気付かないように、PANトランスポートから、よりロバストな無線トランスポート(たとえばWLAN)および/または有線トランスポートにシームレスに移行し得る。
【0038】
動作時、オペレーティングシステム103は単一の通信インターフェイスを提示し得、当該単一の通信インターフェイスによって、投影アプリケーション105は、投影アプリケーション105がグラフィカルユーザインターフェイスを車両ヘッドユニット102に投影する投影モードの実行を容易にする一次デバイス100と車両ヘッドユニット102との間の第1のトランスポート109を確立する。当該単一の通信インターフェイスは、トランスポート(たとえばトランスポート109)を要求するための1つ以上の関数呼び出しをエクスポーズするトランスポートアプリケーションプログラミングインターフェイス(application programming interface)(API)を表し得る。
【0039】
しかしながら、関数呼び出しは、関数呼び出しを介してトランスポートのタイプ(たとえば、有線または無線、PANまたはWLANなど)を指示するのではなく、一般的に投影アプリケーション105からのトランスポートを抽象化する。すなわち、投影アプリケーション105には、トランスポートのタイプまたはトランスポートの(たとえば、待ち時間、帯域幅、データ損失などに関する)さまざまな特性がオペレーティングシステム103によって通知されず、投影アプリケーション105は代わりに、トランスポートを要求し、次いで、車両ヘッドユニット102に投影されるGUIを表すデータをトランスポ
ートAPIを介してオペレーティングシステム103に提供する。この点に関して、オペレーティングシステム103は、投影アプリケーション105(および/またはアプリケーション104などの他のアプリケーション)からトランスポート管理をオフロードする。
【0040】
投影アプリケーション105からトランスポート管理をオフロードすると、オペレーティングシステム103は、投影時に生じ得る問題により良く対処することが可能になり得る。さらに、オペレーティングシステム103は、投影モードの実行中に、投影アプリケーション105に投影モードの実行を再開させる必要なしに、トランスポート109と119とを動的に切り替え得る。
【0041】
よって、投影アプリケーション105は、GUIを示すデータをトランスポートAPIを介してオペレーティングシステム103に提供し、これにより投影モードの実行中に第1のトランスポート109を介してGUIを投影し得る。オペレーティングシステム103は、投影モードの実行中に、第1のトランスポート109から第2のトランスポート119に切り替え得る。すなわち、投影アプリケーション105は、GUIを表すデータをトランスポートAPIを介してオペレーティングシステム103に提供し続け得、オペレーティングシステム103は、投影アプリケーション105に通知せずに、トランスポート109からトランスポート119に動的に切り替え得る。
【0042】
オペレーティングシステム103は、投影アプリケーション105による投影モードの実行を遮断することなくさまざまな状況により良く対処するために、トランスポート109からトランスポート119に切り替え得る。たとえば、トランスポート109が有線トランスポートであり、(たとえばUSBケーブルが部分的にまたは完全に切断されたために)当該有線トランスポートが遮断されたと仮定して、オペレーティングシステム103は、トランスポート109から、この例ではWLANトランスポートを表す可能性が高い(WLANトランスポートはUSB有線トランスポートと同様の帯域幅を提供するので)トランスポート119に動的に切り替え得る。次いで、投影アプリケーション105は、投影モードの実行中にトランスポート119を介してグラフィカルユーザインターフェイスを投影し得る。
【0043】
この点に関して、本技術のさまざまな局面はユーザ体験を改善することができる。トランスポート109を介した接続が遮断された(たとえば、有線接続が一時的に切断された、および/もしくは無線トランスポートにおいて干渉が生じた)ときに、または一次デバイス100が異なるトランスポート特性(たとえば、損失データに関する異なる帯域幅、異なる待ち時間、異なる信頼性など)を必要とするときに、一次デバイス100は投影を中止し得ないからである。そのようなユーザ体験の改善は、一次デバイスのユーザが車両を操作中である車両設定において特に有益であり得る。ユーザ体験が改善することにより、車両を操作中のユーザの注意散漫が低減し、これにより安全性が高まる可能性があるからである。
【0044】
さらに、本技術のさまざまな局面は、再開を減らすことによって、一次デバイス100およびヘッドユニット102が(たとえば、費やされるプロセッササイクル、消費されるメモリ、利用されるメモリバス帯域幅、消費される無線帯域幅などに関して)より効率的に動作することを可能にすることができる。再開のたびに、一次デバイス100と車両ヘッドユニット102との間でグラフィカルユーザインターフェイスの投影を行うためのトランスポート109を再ネゴシエートするために追加のリソース(たとえば、プロセッササイクル、メモリ空間、メモリバス帯域幅、無線帯域幅など)が必要であるからである。
【0045】
本技術のさまざまな局面は、GUIに関して説明されているが、一般的にデータの投影
を容易にすることができ、そのようなデータは、(電話アプリケーション用などの)音声通信を表すデータ、(ビデオ会議アプリケーション用などの)ビデオ通信を表すデータ、(音楽ストリーミングもしくは再生アプリケーションなどの)音楽を表すデータ、音声通知、GUI通知、およびGUIのうちの1つ以上を含み得るナビゲーション再生を表すデータ、またはそれらのさまざまな組合せを含み得る。このように、本技術のさまざまな局面は、投影アプリケーション105、および投影アプリケーション105と連動して作動するアプリケーション104による一般的なデータ投影が、1つ以上のトランスポートを介して車両ヘッドユニット102にデータを投影することを可能にすることができる。
【0046】
図2は、本開示に記載されるトランスポート管理技術のさまざまな局面を実行するように構成される投影アーキテクチャの一例を示すブロック図である。投影アーキテクチャ200は、
図1の例に示される一次デバイス100のオペレーティングシステム103および/または車両ヘッドユニット102のオペレーティングシステム113のためのカーネルの一部を表し得る。すなわち、投影アーキテクチャ200は、専用の投影アプリケーション選択トランスポートを確立および管理するための関数呼び出しを実装するレガシー投影アプリケーション105と、単一の通信インターフェイスのネイティブ関数呼び出しを実装するフォワードルッキング(forward-looking)投影アプリケーション105とにつ
いての後方互換性を可能にする通信アーキテクチャを表し得る。
【0047】
図2の例に示されるように、投影アーキテクチャ200は、トランスポート202A~202N(「トランスポート202」)と、単一の通信インターフェイス204(ユニバーサル自動車リンク(universal automotive link)-UAL-トランスポート204と
称され得る)と、1つ以上のプロトコルドメイン206と、1つ以上のドメインモジュール208と、サービス210A~210N(「サービス210」)とを含む。トランスポート202は、トランスポート109および119、ならびに
図1の例に関して上述した他のトランスポートを表し得る。UALトランスポート204は、投影アプリケーション105がトランスポート202のうちの1つ以上を確立するためにインターフェイス接続し得る上述の単一の通信インターフェイスを表し得る。
【0048】
換言すると、UALトランスポート204は、データの投影が行われ得る高信頼ソケットストリームを作成するように、一次デバイス100および車両ヘッドユニット102の双方についてのプラットフォーム要件を駆動し得る。すなわち、UALトランスポート204は、投影モードの実行中にトランスポート202のうちの1つ以上によって使用されるソケットストリームの確立を容易にするように、車両ヘッドユニット102および一次デバイス100に関するプラットフォーム要件をネゴシエートし得る。UALトランスポート204は、接続された車両プロファイルをサポートするように車両ヘッドユニット102とそのような要件をネゴシエートし得る。いずれにしても、PANトランスポート、WLANトランスポート、および/またはUSBトランスポート上でソケットストリームが確立されると、UALトランスポート204は、複数のプロトコルドメイン206が同じトランスポートを共有することを可能にする。
【0049】
プロトコルドメイン206の各々は、制御された証明ドメインを表し得る。つまり、一例として、各プロトコルドメイン206は、ピアプロトコルドメイン(たとえば、車両ヘッドユニット102のオペレーティングシステム113によってサポートされる)がプロトコルバージョン仕様に準拠していることを確かめる既知の検証メカニズムによって終了され得る。よって、プロトコルドメイン206の各々は、いくつかの例では、レガシー関数呼び出しをUALトランスポート204によってサポートされる関数呼び出しにトランスレートする(たとえば、レガシー投影アプリケーション用の)シムとして作用するコンテナを表し得る。レガシー投影アプリケーションは、レガシー自動車リンク(legacy automotive link)(LAL)トランスポートについてのレガシー関数呼び出しを呼び出し得
る。プロトコルドメイン206は、レガシー関数呼び出しがレガシー投影アプリケーションによって呼び出されると、プロトコルドメイン206がレガシー関数呼び出しをUALトランスポート204によってサポートされる呼び出しにトランスレートし得るように、LALトランスポートをシムコンテナ内にラップし得る。
【0050】
プロトコルドメイン206の各々はさらに、セキュリティメカニズムなどのいくつかの異なる機能を提供するとともに、複数のプロトコルドメイン206が共存してトランスポート202のうちの基礎となる同じ1つのトランスポート202を共有することを可能にすることができる。プロトコルドメイン206は、たとえば、セキュアソケットレイヤー(secure socket layer)(SSL)相互認証、セキュアリアルタイムトランスポートプ
ロトコル(secure-real-time transport protocol)(SRTP)、データグラムトラン
スポートレイヤーセキュリティ(datagram transport layer security)(DTLS)、
トランスポートレイヤーセキュリティ(transport layer security)(TLS)、オープンセキュリティ(セキュリティなし)などをサポートし得る。オペレーティングシステム103および/または113のカーネルはさらに、トランスポート202間のシームレスな転送を容易にするようにプロトコルドメイン206を動的に追加、削除、および更新するとともに、一次デバイス100から車両ヘッドユニット102にデータを投影するための増加機能を促進し得る。
【0051】
例示として、一次デバイス100が車両ヘッドユニット102とペアリングし得る(または、換言すると、アソシエーションを形成し得る)最初のPAN接続を、プロトコルドメイン206が、PANプロトコル、たとえばブルートゥース(登録商標)を介して容易にし得ると想定する。車両ヘッドユニット102は、一次デバイス100とのペアリングに成功した後、キー(たとえば32バイトキー)を生成し得、車両ヘッドユニット102は当該キーをPAN接続を介して一次デバイス100に送信する。次いで、一次デバイス100は、一次デバイス100と車両ヘッドユニット102との間のセキュアセッションを確立するために、Ukey2接続を開始し得る。Ukey2に関するさらなる情報は、「Ukey2」と題された、2016年9月に最後に更新された、github.com/google/ukey2で入手可能なGitHubプロジェクトにおいて見つけることができる。
【0052】
簡潔に述べると、Ukey2は、ディフィー・ヘルマンベースの認証鍵交換プロトコルであり、クライアントおよびサーバは共有のマスター秘密を有し、当該秘密を用いて鍵を導出することができ、当該鍵を後続のプロトコルにおいて使用することができる。Ukey2は、トランスポート間を移行する(たとえば、新しいデバイスがパスワード保護されたWLANへの接続を望んでいる)のためのパスワードまたは他のクレデンシャルを送信するためのセキュアチャネルをサーバおよびクライアントがを確立することを可能にすることができる。よって、Ukey2は、一次デバイス100が、第2のトランスポートについての再認証を実行しなくてはならないために一次デバイス100の動作(または一次デバイス100と車両ヘッドユニット102との間の接続)を中断することなく、第1のセキュアトランスポートから第2のセキュアトランスポートに移行することを可能にする。
【0053】
いずれにしても、一次デバイス100は、一次デバイス100が高度暗号化標準-ガロアカウンターモード(Advanced Encryption Standard-Galois Counter Mode)(AES-GCM)暗号化メッセージをUkey検証トークンおよびノンスとともに送信するUkey2ハンドシェイクを実行することができる。次に、車両ヘッドユニット102は、メッセージを復号し、一次デバイストークンが車両ヘッドユニット102によって格納されたローカルトークンと一致することを検証し得る。車両ヘッドユニット102は、Ukey検証トークンおよびノンスとともにAES-GCP暗号化メッセージで応答する。一次デバイス100は、メッセージを復号し、車両ヘッドユニットトークンが一次デバイス10
0によって格納されたローカルトークンと一致することを検証する。このように、プロトコルドメイン206の各々はさらに、セキュリティメカニズムなどのいくつかの異なる機能を提供するとともに、複数のプロトコルドメイン206が共存してトランスポート202のうちの基礎となる同じ1つのトランスポート202を共有することを可能にすることができる。
【0054】
プロトコルドメイン206の各々は、UALトランスポート204に登録し得る。プロトコルドメイン206の各々は、登録すると、プロトコルドメイン206の各々を一意的に参照するための一意の識別子(ID)を受信し得る。プロトコルドメイン206の各々はさらに、登録すると、登録されたプロトコルドメイン206の各々に宛てられたパケットの識別子として使用される一次デバイス100内の一意の整数IDを受信し得る。上述のように、プロトコルドメイン206の各々は、トランスポート202のうちの基礎となる1つのトランスポート202を終了させずに、追加、削除、および更新され得る。プロトコルドメイン206の各々はさらに、いくつかの例では、キャッシュクッキーが有効であるとともにトランスポート202の短時間の遮断から回復するのに十分な情報および/またはデータを有していることを条件として、当該短時間の遮断から再開され得る。
【0055】
プロトコルドメイン206の各々は、1つ以上のドメインモジュール208を参照し得る。ドメインモジュール208の各々は、独立して証明することができる、別個に証明可能なモジュールを表す。証明とは、ドメインモジュール208によって提供される機能を安全性、完全性(悪意のあるアクティビティもしくは他のアクティビティによって損なわれていない)について検証できるプロセス、または他の検証および/もしくは証明プロセスを意味し得る。投影アーキテクチャ200はドメインモジュール208を含むが、すべての状況で証明が必要であるわけではない(たとえば、速度の遅い農機具および/または古い車両など、特定の車両については証明が不要な場合がある)ため、投影アーキテクチャ200は場合によってはドメインモジュール208を含まなくてもよい。
【0056】
例示として、二次アクティビティ投影としてもインスタンス化され得るクラスタとして機能する投影ドメインモジュール(たとえばドメインモジュール208のうちの1つ)の以下の例について検討する。同じ投影モジュールを、カートリッジのためのネイティブアクティビティ投影に使用してもよく、これについては以下でより詳細に述べる。別の例は、無線モジュールまたは車両動作モジュールであるが、同じモジュールを、カートリッジのためだけでなく、LALトランスポートにおいて使用することもできる。
【0057】
ドメインモジュール208の各々は、サービス210のうちの1つ以上をさらに参照し得る。サービス210の各々は、互いに関連する一連のサービスを表し得、たとえば、表示ソースサービスおよび入力ソースサービスが(これらのサービスは、ウィンドウ、およびそのウィンドウの入力ソースに関係しているため)、投影モードを実行する一連のサービスとしてカプセル化され得る。この点に関して、サービス210の各々は、車両ヘッドユニット102に提供されるサービスをホストするための専用サービスを実行するためのモード(たとえば投影モード)または他の一連のサービスを表し得る。
【0058】
図3は、本開示に記載される技術のさまざまな局面に従う、シームレスに切り替え可能なトランスポート管理が行われ得るようにするためのオペレーティングシステムの階層アーキテクチャの概念図を示すブロック図である。オペレーティングシステム300は、実行されると本開示に記載されるシームレスなトランスポート管理技術のさまざまな局面を実行するように1つ以上のプロセッサを構成し得るオペレーティングシステム103および/またはオペレーティングシステム113の一例を表し得る。
【0059】
図3の例では、オペレーティングシステム300は、UALトランスポート302と、
UALベースプロトコルモジュール304と、LALプロトコルモジュール306とを含み得る。UALトランスポート302は、上述の態様でオペレーティングシステム300によって選択される、基礎となるトランスポート(たとえば、PANトランスポート、WLANトランスポート、USBトランスポートなどの有線トランスポート、などのうちの1つ以上)を表し得る。
【0060】
オペレーティングシステム300は、
図1の例に示される投影アプリケーション105などの投影アプリケーションによって投影されるデータの1つ以上の特性に基づいて、UALトランスポート302を選択し得る。投影されるデータは、投影アプリケーション105によって、またはアプリケーション104によってソースされ得、アプリケーション104は、データを、車両ヘッドユニット102に投影するために投影アプリケーション105に提供する。そのような特性は、データをソースするアプリケーションのタイプ(たとえば、ナビゲーションアプリケーションでは、オペレーティングシステム300が、帯域幅要件の増加に起因してWLANトランスポートまたは有線トランスポートを選択する結果になり得る)と、データをソースするアプリケーションが必要とする帯域幅の量(たとえば、ナビゲーションアプリケーションはより大きな帯域幅のトランスポートを要求し得る)と、データをソースするアプリケーションのサービス提供能力とを含み得る。
【0061】
オペレーティングシステム300は、1つ以上の特性に基づく上記選択に代えてまたは上記選択とともに、UALトランスポート302を介して通信されるデータのタイプ、UALトランスポート302を介して通信されるデータの量(たとえば、経時的に識別されるか、もしくはUALトランスポート302を求める最初の要求を介して識別される)、またはUALトランスポート302を介して通信されるデータのパケット(たとえば、VoIPパケットは、VoIPポートを識別し得るという点で、通常のIPパケットとは区別され得る)に基づいて、UALトランスポート302を選択してもよい。オペレーティングシステム300はさらに、上記選択基準のうちのいずれかに代えてまたは上記選択基準のうちのいずれかとともに、データをソースするアプリケーションの待ち時間閾値またはバースト性許容範囲の少なくとも一方に基づいて、UALトランスポート302を選択してもよい。オペレーティングシステム300は、トランスポート109などの第1のトランスポートについての上記選択基準のうちのいずれかに基づいて、および/または、たとえばトランスポート119についてトランスポート間を切り替える際に、この選択を実行してもよい。
【0062】
UALベースプロトコルモジュール304は、UALトランスポート302の確立および管理をサポートするオペレーティングシステム300によって提供されるサービスを表し得る。
図3の例に示されるように、UALベースプロトコルモジュール304は、トランスポート発見モジュール310と、PANペアリングモジュール312と、WLANセットアップモジュール314と、チャネルモジュール316と、セキュリティモジュール318と、接続維持モジュール320とを含み得る。
【0063】
トランスポート発見モジュール310は、一次デバイス100を車両ヘッドユニット102に接続するのに利用可能なさまざまなトランスポートを発見するように構成されたモジュールを表し得る。トランスポート発見モジュール310は、投影用データをソースするアプリケーション(この例ではアプリケーション104であると仮定する)からトランスポート発見をオフロードし得る。
【0064】
PANペアリングモジュール312は、一次デバイス100と車両ヘッドユニット102とが互いに近接しているときにペアリング処理の必要なしにこれらの再接続を容易にするようにこれらを最初にペアリングすることを含む、PANトランスポートを確立するためのさまざまな動作を実行するように構成されたモジュールを表し得る。WLANセット
アップモジュール314は、一次デバイス100と車両ヘッドユニット102との間のWLANトランスポートを確立するように構成されたモジュールを表し得る。
【0065】
チャネルモジュール316は、投影されるデータを提供するためのトランスポート上にチャネルを確立するように構成されたモジュールを表し得る。セキュリティモジュール318は、たとえばSSL暗号化または上記に列挙した他のセキュリティメカニズムのうちのいずれかを適用することによってチャネル/トランスポートをセキュア化するように構成されたモジュールを表し得る。接続維持モジュール320は、UALトランスポート302のサービス品質(QoS)、UALトランスポート302の帯域幅、UALトランスポート302の待ち時間、UALトランスポート302のバースト性、および/または任意の他の特性、または、換言すると、UALトランスポート302の選択基準をネゴシエートするかまたはそうでなければ監視するように構成されたモジュールを表し得る。接続維持モジュール320はさらに、UALトランスポート302の中断の結果として再接続を実行し得る。
【0066】
図3の例にさらに示されるように、LALプロトコルモジュール306は、ベース投影モジュール330と、クラスタ投影モジュール332と、アシスタント統合モジュール334と、再生モジュール336と、センサモジュール338と、(説明を簡単にするために
図3の例には示されていないLALプロトコルモジュール306によってサポートされる他のモジュールと)を含む。ベース投影モジュール330は、要求されたトランスポートを介した投影を開始する前に特定のトランスポートが構成されることを要求するレガシー投影モジュールを表す。
【0067】
UALトランスポートモジュール304は、上述のように、この要求を一般的なトランスポート要求にトランスレートし、次いで、上記選択基準に基づいてUALトランスポート302を構成し得、これにより、具体的に要求された当該トランスポートまたは異なるトランスポートがUALトランスポート302として構成され得る。UALベースプロトコルモジュール304は、UALトランスポート302を構成した後、データ投影要求をトランスレートしてUALトランスポート302に対処し続け、場合によっては、UALトランスポート302に使用される基礎となるトランスポートを切り替えて、アプリケーション104から車両ヘッドユニット102にデータを投影し得る。
【0068】
クラスタ投影モジュール332は、たとえば一次デバイス100を含む1つ以上の一次デバイスからのクラスタ化投影を管理するように構成されたモジュールを表し得る。クラスタ投影モジュール332は、複数の一次デバイスが車両ヘッドユニット102の1つ以上のディスプレイ、たとえばディスプレイ116に投影することを可能にすることができる。場合によっては、複数の一次デバイスは、同じディスプレイ、たとえばディスプレイ116に、または、(
図1の例には示されていないが車両ヘッドユニット102が含み得る)2つ以上の異なるディスプレイに投影し得る。
【0069】
アシスタント統合モジュール334は、車両ヘッドユニット102へのデータの投影中の音声および/またはテキストアシスタントの統合を容易にするように構成されたモジュールを表し得る。音声/テキストアシスタントが、車両ヘッドユニット102へのデータの投影中にさまざまなアシスタントサービスを提供することにより、車両の乗員が当該アシスタントとやり取りして、数例として、ナビゲーション、テキストメッセージ作成、テキストメッセージ再生(アシスタントが着信テキストメッセージを読み上げる)、音楽再生(ストリーミング音楽再生を含む)、およびビデオ再生(ストリーミングビデオ再生を含む)などを要求することができる。
【0070】
再生モジュール336は、音楽および/またはビデオを表すデータを車両ヘッドユニッ
ト102に投影することによって音楽および/またはビデオ再生を実行するように構成されたモジュールを表し得る。再生モジュール336は、投影モードを介して、車両ヘッドユニット102のオーディオおよび/またはビデオ(AV)システムとインターフェイス接続して音楽および/またはビデオの再生を実行し得る。再生モジュール336は、音楽に関して説明されているが、アシスタントオーディオの再生(たとえば着信テキストメッセージを読み上げること)およびナビゲーション(たとえば方向に関連するオーディオ)などを含む任意の形態のオーディオ再生を実行し得る。
【0071】
センサモジュール338は、車両ヘッドユニット102のセンサとインターフェイス接続するように構成されたモジュールを表し得る。センサモジュール338は、GPSセンサ、周囲光センサ、近接センサ、高度計、ジャイロスコープ、および車両において一般に見られる任意の他のセンサなどのセンサを含む、車両ヘッドユニット102に結合されたセンサからのセンサデータを求める要求を発行し得る。
【0072】
図4は、本開示に記載される技術のさまざまな局面に従う、シームレスに切り替え可能なトランスポート管理が行われ得るようにするためのオペレーティングシステムの階層アーキテクチャの概念図を示す別のブロック図である。オペレーティングシステム400は、実行されると本開示に記載されるシームレスなトランスポート管理技術のさまざまな局面を実行するように1つ以上のプロセッサを構成し得るオペレーティングシステム103および/またはオペレーティングシステム113の一例を表し得る。
【0073】
図4の例では、オペレーティングシステム400は、UALトランスポート302と、UALベーストランスポートプロトコルモジュール304と、LALプロトコルモジュール306とを含むという点で、オペレーティングシステム300と同様である。しかしながら、オペレーティングシステム400は、カートリッジと、一次デバイス100と、車両ヘッドユニット102との間の接続性をサポートするカートリッジプロトコルモジュール402と示される別の一連のプロトコルモジュールを含む。カートリッジに関するさらなる情報は、2020年10月8日に出願され「車両のための拡張可能なコンピューティングアーキテクチャ(EXTENSIBLE COMPUTING ARCHITECTURE FOR VEHICLES)」と題された米国特許出願第17/065,932号において見ることができる。
【0074】
簡潔に述べると、カートリッジは、車両ヘッドユニット102の延長部として車両ヘッドユニット102に結合して、車両の所有者がカートリッジのインストールを介して車両ヘッドユニット102をアップグレードして、更新された車内体験を提示することを可能にすることができる。車両の所有者は、カートリッジをインストールし、換言すると、車両ヘッドユニット102に対応付けられた物理ハードウェアをアップグレードし、これにより、車両ヘッドユニット全体の交換が不要な、新しい車両ヘッドユニットと一致する最新のユーザ体験を提供し得る。一次デバイス100は、(トランスポートを介して)カートリッジに結合し、カートリッジとやり取りしてアプリケーション104からデータを投影し得、カートリッジは、アプリケーション104から車両ヘッドユニット102にデータを投影する中間デバイスとして作用し得る。
【0075】
カートリッジプロトコルモジュール402は、中間カートリッジを通して投影を実行するためにカートリッジとインターフェイス接続するように構成されたプロトコルモジュールを表し得る。カートリッジプロトコルモジュール402は、アクティビティ投影モジュール410と、ランタイム更新モジュール412と、オーディオルーティングモジュール414と、仮想マシン(VMS)モジュール416と、センサモジュール418と、LALプロトコルモジュール306と同様の追加モジュールとを含み得る。アクティビティ投影モジュール410は、一次デバイス100によって実行されるアプリケーション104から受信したデータのパススルー投影をサポートするように構成されたモジュールを表し
得る。
【0076】
ランタイム更新モジュール412は、ランタイム時に(または換言すると実行時に)共有リソース(たとえば共有ライブラリ)を更新して一次デバイス100および車両ヘッドユニット102との相互接続性を可能にするように構成されたモジュールを表し得る。オーディオルーティングモジュール414は、一次デバイス100および車両ヘッドユニット102を介して受信したオーディオデータを一次デバイス100と車両ヘッドユニット102との間でルーティングするように構成されたモジュールを表す。VMSモジュール416は、仮想マシンを実行して上記に言及した米国特許出願に記載されているカートリッジに関連するさまざまな機能を提供するように構成されたモジュールを表す。センサモジュール418は、カートリッジ上に存在するセンサに関して動作し得ること以外は、センサモジュール318と同様のモジュールを表し得る。
【0077】
図5は、
図1の一次デバイスの一例をより詳細に示すブロック図である。
図5の例に示される一次デバイス500は、
図1に示される一次デバイス100の一例である。
図5の例に示されるように、一次デバイス500は、存在感知ディスプレイ512と、1つ以上のプロセッサ540と、1つ以上の通信コンポーネント542と、1つ以上のストレージデバイス548とを含む。一次デバイス500のストレージデバイス548は、一次デバイス500と車両ヘッドユニット102との間のトランスポートを開始する、更新する、また、そうでなければ維持するおよび/または管理するための単一のUALインターフェイス550を提示するオペレーティングシステム503(
図1の例に示されるオペレーティングシステム103の一例であり得る)を含む。
【0078】
通信チャンネル560は、コンポーネント間通信のためにコンポーネント512,540,542および/または148の各々を(物理的に、通信可能に、および/または、動作可能に)相互接続し得、これによりコンポーネント512,540,542および548が互いに通信することを可能にすることができる。いくつかの例では、通信チャンネル560は、システムバス、ネットワーク接続、1つ以上のプロセス間通信データ構造、または、データ(情報とも称される)を通信するための任意の他のコンポーネントを含み得る。一次デバイス500は、コンポーネント512,540,542および548を含むように示されているが、示されるコンポーネント以外のコンポーネントまたは示されるコンポーネントより少ないコンポーネントを含んでもよく、そのようなコンポーネントは、テレマティック制御ユニット(telematic control unit)(TCU)などの他の制御ユニットに含まれてもよい。
【0079】
一次デバイス500の1つ以上の通信ユニット542は、データを送信および/または受信することによって外部デバイスと通信し得る。たとえば、一次デバイス500は、通信ユニット542のうちの1つ以上を使用して、セルラー無線ネットワークなどの無線ネットワーク上で無線信号を送信および/または受信し得る。いくつかの例では、通信ユニット542は、全地球測位システム(GPS)ネットワークなどの衛星ネットワーク上で衛星信号を送信および/または受信し得る。通信ユニット542の例は、ネットワークインターフェイスカード(たとえばイーサネットカードなど)、光トランシーバ、無線周波数トランシーバ、GPS受信機、または、情報を送信および/もしくは受信し得る任意の他のタイプのデバイスを含む。通信ユニット542の他の例は、モバイルデバイスにおいて見られる短波無線(たとえば、NFC、ブルートゥース(BLEを含む))、GPS、3G、4G、5G、およびWIFI無線、ならびに、ユニバーサルシリアルバス(USB)コントローラなどを含み得る。
【0080】
いくつかの例では、一次デバイス500の存在感知ディスプレイ512は、入力コンポーネントおよび/または出力コンポーネントの機能を含み得る。
図5の例では、存在感知
ディスプレイ512は、存在感知スクリーンまたはタッチ感知スクリーンなどの存在感知入力(presence-sensitive input)(PSI)コンポーネント536(「PSIコンポーネント536」)を含み得る。いくつかの例では、存在感知入力コンポーネント536は、当該存在感知入力コンポーネントにおいて、および/または、当該存在感知入力コンポーネントの近傍において、対象を検出し得る。1つの例示的な範囲として、存在感知入力コンポーネント536は、存在感知入力コンポーネント536の2インチ以内にある指またはスタイラスなどの対象を検出し得る。存在感知入力コンポーネント536は、当該対象が検出された存在感知入力コンポーネントの位置(たとえば、(x,y)座標)を決定し得る。別の例示的な範囲において、存在感知入力コンポーネント536は、存在感知入力コンポーネント536から2インチ以下の対象を検出し得、他の範囲も可能である。存在感知入力コンポーネント536は、容量的認識技術、誘導的認識技術および/または光学的認識技術を使用して、ユーザの指によって選択される存在感知入力コンポーネント536の位置を決定し得る。
【0081】
いくつかの例では、存在感知ディスプレイ512はさらに、触覚刺激、オーディオ刺激またはビデオ刺激を使用して、ユーザに出力を提供し得る。たとえば、存在感知ディスプレイ512は、グラフィカルユーザインターフェイスを表示するディスプレイコンポーネント534を含み得る。ディスプレイコンポーネント534は、視覚出力を提供する任意のタイプの出力コンポーネントであり得る。存在感知ディスプレイ512は、一次デバイス500の統合されたコンポーネントとして示されているが、いくつかの例では、入力および出力を送信および/または受信するために、一次デバイス500の他のコンポーネントとデータパスまたは情報パスを共有する外部コンポーネントであり得る。たとえば、存在感知ディスプレイ512は、一次デバイス500の外部パッケージング内に位置するともに一次デバイス500の外部パッケージングに物理的に接続される一次デバイス500の内蔵コンポーネント(たとえば、車両のダッシュボードに搭載される車載スクリーン)であり得る。別の例では、存在感知ディスプレイ512は、一次デバイス500のパッケージングの外部に位置するともに一次デバイス500のパッケージングとは物理的に分離されている一次デバイス500の外部コンポーネント(たとえば、車両の電子制御ユニットと有線および/または無線のデータパスを共有するモニタ、プロジェクタなど)であり得る。いくつかの例では、存在感知ディスプレイ512は、一次デバイス500のパッケージングの外側に位置するともに一次デバイス500のパッケージングから物理的に分離されている場合、入力を受け取るための存在感知入力コンポーネント536と、出力を提供するためのディスプレイコンポーネント534という、2つの別個のコンポーネントによって実現され得る。
【0082】
一次デバイス500内の1つ以上のストレージデバイス548は、一次デバイス500の動作中における処理のための情報を格納し得る(たとえば、一次デバイス500は、一次デバイス500での実行中にオペレーティングシステム503によってアクセスされるデータを格納し得る)。いくつかの例では、ストレージデバイス548は一時的なメモリであり、これは、ストレージデバイス548の一次的な目的が長期的な記憶ではないことを意味する。一次デバイス500上のストレージデバイス548は、揮発性メモリとして情報の短期的な記憶のために構成され得、したがって、電源がオフにされた場合、格納されたコンテンツを保持し得ない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、および、当技術において公知である揮発性メモリの他の形態を含む。
【0083】
いくつかの例では、ストレージデバイス548はさらに、1つ以上のコンピュータ読取可能記憶媒体を含む。いくつかの例では、ストレージデバイス548は、1つ以上の非一時的なコンピュータ読取可能記憶媒体を含む。ストレージデバイス548は、揮発性メモ
リによって典型的に格納されるよりも大きな量の情報を格納するように構成され得る。ストレージデバイス548はさらに、不揮発性メモリスペースとして長期間の情報の記憶のために構成され得、かつ、電源オン/オフサイクル後に情報を保持するように構成され得る。不揮発性メモリの例は、磁気ハードディスク、光ディスク、フラッシュメモリ、または電気的プログラム可能メモリ(EPROM)もしくは電気的消去可能プログラム可能(EEPROM)メモリの形態を含む。ストレージデバイス548は、オペレーティングシステム503、アプリケーション504(アプリケーション104と実質的に同様でなければ、同様であり得る)、および投影アプリケーション505(投影アプリケーション105と実質的に同様でなければ、同様であり得る)に関連するプログラム命令および/または情報(たとえばデータ)を格納し得る。ストレージデバイス548は、オペレーティングシステム503、アプリケーション504、および投影アプリケーション505に関連するデータまたは他の情報を格納するように構成されたメモリを含み得る。
【0084】
1つ以上のプロセッサ540は、一次デバイス500に関連する機能を実現し得、および/または、一次デバイス500に関連する命令を実行し得る。プロセッサ540の例は、アプリケーションプロセッサと、ディスプレイコントローラと、補助プロセッサと、1つ以上のセンサハブと、プロセッサ、処理ユニットまたは処理デバイスとして機能するように構成された任意の他のハードウェアとを含む。オペレーティングシステム503、アプリケーション504、および投影アプリケーション505は、一次デバイス500のさまざまなアクション、動作、または機能を実行するようにプロセッサ540によって動作可能であり得る(または、換言すると、実行され得る)。すなわち、モジュール503~505は、実行可能なバイトコードを形成し得る。当該実行可能なバイトコードは、実行されると、本明細書に記載される技術のさまざまな局面に従って、プロセッサ540に特定の動作を実行させる(そして、これにより、一次デバイス500が、実行するべき特定目的のコンピュータとなる)。たとえば、一次デバイス500のプロセッサ540は、オペレーティングシステム503、アプリケーション504、および投影アプリケーション505に起因する本明細書に記載される動作をプロセッサ540に実行させる、ストレージデバイス548によって格納される命令を抽出および実行し得る。当該命令は、プロセッサ540によって実行されると、一次デバイス500に、ストレージデバイス548内に情報を格納させ得る。
【0085】
図5の例にさらに示されるように、オペレーティングシステム503はUALインターフェイス550を含む。UALインターフェイス550は、(
図3の例における)オペレーティングシステム300および(
図4の例における)オペレーティングシステム400として示されるオペレーティングシステムの部分を指す別の方法である。よって、UALインターフェイス550は、トランスポートを要求するための単一の通信インターフェイスを提示し得、オペレーティングシステム503は、上記選択基準のうちの1つ以上に基づいて当該トランスポートを選択し得る。
【0086】
オペレーティングシステム503は、UALインターフェイス550によって提供される基礎となるUALトランスポートを監視し、UALトランスポートが、投影アプリケーション505を介してデータをソースするアプリケーション504によるデータの投影に対処するのに不十分であるかを識別し得る。UALトランスポートがアプリケーション504によるデータの投影に対処するのに不十分であるという判定に応じて、UALインターフェイス550は、異なるトランスポートをUALトランスポートとして選択し得る。UALインターフェイス550は、現在のトランスポートから異なるトランスポートに切り替えて、新しいUALトランスポートをシームレスに(つまり、アプリケーション504および/もしくは投影アプリケーション505によって検出されることなく、またはアプリケーション504および/もしくは投影アプリケーション505に通知することなく、かつ、アプリケーション504によってソースされるデータを投影する投影モードの実
行中に)確立し得る。次いで、オペレーティングシステム503は、アプリケーション504によってソースされるデータを、UALトランスポートを介して車両ヘッドユニット102に投影し続け得る。
【0087】
図6は、本開示の技術に従う、投影モードの実行中にトランスポート間をシームレスに切り替える際の
図1の一次デバイスの動作の一例を示すフローチャートである。
図6の例では、一次デバイス100は、オペレーティングシステム103を実行して単一の通信インターフェイス(たとえば、
図5の例に示されるUALインターフェイス550)を提示し得、当該単一の通信インターフェイスによって、投影アプリケーション105は、車両ヘッドユニット102によって提示するための投影モード(たとえば、PANトランスポート109を介した音楽オーディオデータの投影、無線または有線トランスポート109を介したGUIデータの投影などのうちの1つ以上)の実行を容易にする一次デバイス100と車両ヘッドユニット102との間のトランスポート109を確立し得る(600)。
【0088】
投影アプリケーション105は、トランスポート109を受信したこと応じて、データ(たとえば、アプリケーション104によってソースされる)をトランスポート109を介して投影し得る(602)。オペレーティングシステム103は、トランスポート109を(たとえば、定期的に、データ特性の何らかの閾値変化に応じて、ユーザ指示によって、など)分析して、トランスポート109がデータ投影に対処するのに十分であるか否かを判定し得る(604)。すなわち、オペレーティングシステム103は、データバースト性、トランスポート109の待ち時間、トランスポート109の帯域幅、トランスポート109の(たとえばドロップされたパケットによって表される)干渉、または他の特性などの、上述のさまざまな選択基準を監視し、これらの選択基準を、トランスポートが投影データに対処するのに不十分であるかを識別するさまざまな閾値と比較し得る。
【0089】
トランスポート109が十分であると判定された場合(606で「YES」)、オペレーティングシステム103は、投影アプリケーション105がトランスポート109を介してデータを投影することを許可し続けて、トランスポート109を分析し続け得る(602,604)。トランスポート109が不十分であると判定された場合(「NO」)、オペレーティングシステム103は、データ投影に対処する第2のトランスポート119を選択し得る(608)。たとえば、投影データをサポートするのに十分な帯域幅がない(たとえば、ユーザが音楽のストリーミングから音楽のストリーミングおよびナビゲーションの実行の双方に切り替えたために)とオペレーティングシステム109が判定した場合、オペレーティングシステム109は、トランスポート119として有線トランスポートを選択し得る。いずれにしても、オペレーティングシステム103は、トランスポート109からトランスポート119にシームレスに切り替えて(610)、投影アプリケーション105がトランスポート119を介してデータを投影し続けることを可能にすることができる(612)。
【0090】
このように、本技術のさまざまな局面は、以下の項目を可能にし得る。
第1項.方法であって、一次デバイスによって実行されるオペレーティングシステムが、単一の通信インターフェイスを提示することを備え、上記単一の通信インターフェイスによって、アプリケーションは、車両ヘッドユニットによって提示するためのデータを上記アプリケーションが提供するモードの実行を容易にする上記一次デバイスと上記車両ヘッドユニットとの間の第1のトランスポートを確立し、上記方法はさらに、上記モードの実行中に上記アプリケーションが、上記第1のトランスポートを介して上記データを送信することと、上記モードの実行中に上記オペレーティングシステムが、上記第1のトランスポートから第2のトランスポートに切り替えることと、上記モードの実行中に上記アプリケーションが、上記第2のトランスポートを介して上記データを送信することとを備え
る、方法。
【0091】
第2項.上記モードの実行中に上記第2のトランスポートによって使用されるソケットストリームの確立を容易にするように、上記車両ヘッドユニットおよび上記一次デバイスに関するプラットフォーム要件を上記単一の通信インターフェイスを介してネゴシエートすることをさらに備える、第1項に記載の方法。
【0092】
第3項.上記オペレーティングシステムが、上記アプリケーションによって送信される上記データの複数の特性のうちの1つ以上の特性に基づいて上記第2のトランスポートを選択することをさらに備える、第1項と第2項の任意の組み合わせに記載の方法。
【0093】
第4項.上記アプリケーションは第1のアプリケーションを含み、上記複数の特性は、上記データをソースする第2のアプリケーションのタイプと、上記データをソースする上記第2のアプリケーションが必要とする帯域幅の量と、上記データをソースする上記第2のアプリケーションのサービス提供能力とを含む、第3項に記載の方法。
【0094】
第5項.上記サービスは、オーディオストリーミング、ビデオストリーミング、音声アシスタンス、セルラー通信、および情報表示、のうちの少なくとも1つである、第4項に記載の方法。
【0095】
第6項.上記オペレーティングシステムが、上記第2のトランスポートを介して通信されるデータのタイプ、上記第2のトランスポートを介して通信されるデータの量、または上記第2のトランスポートを介して通信されるデータのパケット、のうちの少なくとも1つに基づいて上記第2のトランスポートを選択することをさらに備える、第1項~第5項の任意の組み合わせに記載の方法。
【0096】
第7項.上記オペレーティングシステムが、上記データをソースするアプリケーションの待ち時間閾値またはバースト性許容範囲の少なくとも一方に基づいて上記第2のトランスポートを選択することをさらに備える、第1項~第6項の任意の組み合わせに記載の方法。
【0097】
第8項.上記第1のトランスポートおよび上記第2のトランスポートの各々は、パーソナルエリアネットワークトランスポート、無線ローカルエリアネットワークトランスポート、および有線トランスポート、のうちの1つを備える、第1項~第7項の任意の組み合わせに記載の方法。
【0098】
第9項.上記第1のトランスポートおよび上記第2のトランスポートの各々は、同じパーソナルエリアネットワークトランスポートの異なるバージョンを含む、第1項~第8項の任意の組み合わせに記載の方法。
【0099】
第10項.上記同じパーソナルエリアネットワークトランスポートの上記異なるバージョンは、上記同じパーソナルエリアネットワークトランスポートの低エネルギーバージョンおよび上記同じパーソナルエリアネットワークトランスポートの高エネルギーバージョンを含む、第9項に記載の方法。
【0100】
第11項.上記アプリケーションは投影アプリケーションを含み、上記モードは、上記投影アプリケーションが上記車両ヘッドユニットによって提示するための上記データを投影する投影モードを含む、第1項~第10項の任意の組み合わせに記載の方法。
【0101】
第12項.一次デバイスであって、オペレーティングシステムおよびアプリケーション
を格納するように構成されたメモリと、1つ以上のプロセッサとを備え、上記1つ以上のプロセッサは、上記オペレーティングシステムを実行して単一の通信インターフェイスを提示するように構成され、上記単一の通信インターフェイスによって、上記アプリケーションは、車両ヘッドユニットによって提示するためのデータを上記アプリケーションが提供するモードの実行を容易にする上記一次デバイスと上記車両ヘッドユニットとの間の第1のトランスポートを確立し、上記1つ以上のプロセッサはさらに、上記アプリケーションを実行して、上記モードの実行中に、上記第1のトランスポートを介して上記データを送信するように構成され、上記オペレーティングシステムは、上記モードの実行中に、上記第1のトランスポートから第2のトランスポートに切り替え、上記アプリケーションは、上記モードの実行中に、上記第2のトランスポートを介して上記データを送信する、一次デバイス。
【0102】
第13項.上記1つ以上のプロセッサは、上記モードの実行中に上記第2のトランスポートによって使用されるソケットストリームの確立を容易にするように、上記車両ヘッドユニットおよび上記一次デバイスに関するプラットフォーム要件を上記単一の通信インターフェイスを介してネゴシエートするようにさらに構成される、第12項に記載の一次デバイス。
【0103】
第14項.上記1つ以上のプロセッサは、上記オペレーティングシステムを実行して、上記アプリケーションによって送信される上記データの複数の特性のうちの1つ以上の特性に基づいて上記第2のトランスポートをネゴシエート選択するようにさらに構成される、第12項と第13項の任意の組み合わせに記載の一次デバイス。
【0104】
第15項.上記アプリケーションは第1のアプリケーションを含み、上記複数の特性は、上記データをソースする第2のアプリケーションのタイプと、上記データをソースする上記第2のアプリケーションが必要とする帯域幅の量と、上記データをソースする上記第2のアプリケーションのサービス提供能力とを含む、第14項に記載の一次デバイス。
【0105】
第16項.上記1つ以上のプロセッサは、上記オペレーティングシステムを実行して、上記第2のトランスポートを介して通信されるデータのタイプ、上記第2のトランスポートを介して通信されるデータの量、または上記第2のトランスポートを介して通信されるデータのパケット、のうちの少なくとも1つに基づいて上記第2のトランスポートを選択するようにさらに構成される、第12項~第15項の任意の組み合わせに記載の一次デバイス。
【0106】
第17項.上記1つ以上のプロセッサは、上記オペレーティングシステムを実行して、上記データをソースするアプリケーションの待ち時間閾値またはバースト性許容範囲の少なくとも一方に基づいて上記第2のトランスポートを選択するようにさらに構成される、第12項~第16項の任意の組み合わせに記載の一次デバイス。
【0107】
第18項.上記第1のトランスポートおよび上記第2のトランスポートの各々は、パーソナルエリアネットワークトランスポート、無線ローカルエリアネットワークトランスポート、および有線トランスポート、のうちの1つを備える、第12項~第17項の任意の組み合わせに記載の一次デバイス。
【0108】
第19項.上記アプリケーションは投影アプリケーションを含み、上記モードは、上記投影アプリケーションが上記車両ヘッドユニットによって提示するための上記データを投影する投影モードを含む、第12項~第18項の任意の組み合わせに記載の一次デバイス。
【0109】
第20項.命令が格納された非一時的なコンピュータ読取可能記憶媒体であって、上記命令は、実行されると、一次デバイスの1つ以上のプロセッサに、オペレーティングシステムを実行して単一の通信インターフェイスを提示させ、上記単一の通信インターフェイスによって、アプリケーションは、車両ヘッドユニットによって提示するためのデータを上記アプリケーションが提供するモードの実行を容易にする上記一次デバイスと上記車両ヘッドユニットとの間の第1のトランスポートを確立し、上記命令はさらに、実行されると、上記1つ以上のプロセッサに、上記アプリケーションを実行して、上記モードの実行中に、上記第1のトランスポートを介して上記データを送信させ、上記オペレーティングシステムは、上記モードの実行中に、上記第1のトランスポートから第2のトランスポートに切り替え、上記アプリケーションは、上記モードの実行中に、上記第2のトランスポートを介して上記データを送信する、非一時的なコンピュータ読取可能記憶媒体。
【0110】
限定ではなく例として、そのようなコンピュータ読取可能記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、フラッシュメモリ、または、命令もしくはデータ構造の形態で所望のプログラムコードを格納するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の記憶媒体を含み得る。さらに、任意の接続がコンピュータ読取可能媒体と適切に称される。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、当該同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線およびマイクロ波といったワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的な有形記憶媒体を対象とすることが理解されるべきである。ディスク(diskおよびdisc)は、使用される場合、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイ(登録商標)ディスクを含む。ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザにより光学的に再生する。上記の組み合わせもコンピュータ読取可能媒体の範囲内に含まれるべきである。
【0111】
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または、他の同等の集積回路もしくは離散論理回路のような1つ以上のプロセッサによって実行され得る。したがって、使用される「プロセッサ」という用語は、前述の構造、または、記載される技術の実現のために好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの局面では、本明細書に記載される機能は、専用のハードウェアおよび/またはソフトウェアモジュール内で提供され得る。さらに、当該技術は、1つ以上の回路または論理要素において完全に実現され得る。
【0112】
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、または、ICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実現され得る。本開示では、開示される技術を実行するように構成されたデバイスの機能的な局面を強調するためにさまざまなコンポーネント、モジュール、または、ユニットが記載されているが、必ずしも異なるハードウェアユニットによって実現される必要はない。むしろ、上述したように、さまざまなユニットは、ハードウェアユニットにおいて組み合わされてもよく、または、好適なソフトウェアおよび/またはファームウェアに関連して、上述したように1つ以上のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供されてもよい。
【0113】
さまざまな例を記載した。これらの例および他の例は、添付の特許請求の範囲内である。
【外国語明細書】