特許第6396320号(P6396320)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ エアビクティ インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6396320
(24)【登録日】2018年9月7日
(45)【発行日】2018年9月26日
(54)【発明の名称】効率的なヘッドユニット通信統合
(51)【国際特許分類】
   H04M 11/00 20060101AFI20180913BHJP
   H04M 1/00 20060101ALI20180913BHJP
【FI】
   H04M11/00 302
   H04M1/00 U
【請求項の数】22
【全頁数】50
(21)【出願番号】特願2015-549739(P2015-549739)
(86)(22)【出願日】2013年12月19日
(65)【公表番号】特表2016-506671(P2016-506671A)
(43)【公表日】2016年3月3日
(86)【国際出願番号】US2013076710
(87)【国際公開番号】WO2014100489
(87)【国際公開日】20140626
【審査請求日】2015年11月4日
(31)【優先権主張番号】61/740,376
(32)【優先日】2012年12月20日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】309032522
【氏名又は名称】エアビクティ インコーポレイテッド
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】100147692
【弁理士】
【氏名又は名称】下地 健一
(74)【代理人】
【識別番号】100161148
【弁理士】
【氏名又は名称】福尾 誠
(72)【発明者】
【氏名】マイク オメーラ
(72)【発明者】
【氏名】サーガル パワー
(72)【発明者】
【氏名】レオン ホン
【審査官】 永田 義仁
(56)【参考文献】
【文献】 米国特許出願公開第2011/0289186(US,A1)
【文献】 特開2009−077031(JP,A)
【文献】 特開2009−168772(JP,A)
【文献】 特表2008−500610(JP,A)
【文献】 久米原 栄,Linuxネットワーク ファイアウォール管理者ガイド,ソフトバンクパブリッシング株式会社,2000年 2月25日,第1版,p.150-180
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00−21/36
G01C 23/00−25/00
G06F 13/00
G08G 1/00−99/00
H04L 12/00−12/28
H04L 12/44−12/955
H04M 1/00
H04M 1/24− 3/00
H04M 3/16− 3/20
H04M 3/38− 3/58
H04M 7/00− 7/16
H04M 11/00−11/10
H04M 99/00
(57)【特許請求の範囲】
【請求項1】
モバイル機器、及び有線または短距離無線送信機の少なくとも一方によって該モバイル機器に結合された自動車インフォテインメント・システム(IVI)を含むシステム内の1つ以上の処理装置によって実行される一連のステップを含む方法であって、前記一連のステップは、
前記モバイル機器において、前記IVIの要求を受信するステップと;
前記要求を受信したことに応答して、前記要求に含まれる通信相手についての情報に基づいて、前記IVIが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップであって、前記リソースは、前記モバイル機器の長距離無線送信機を含むステップと;
前記決定の結果に基づいて、前記IVIが前記モバイル機器のリソースを利用する前記要求を許可するステップと;
前記要求が許可された場合に、前記モバイル機器のプロキシを利用して、前記通信相手との接続を確立するステップと
を含み、
前記IVI及び前記通信相手が、前記接続上で交換されるデータ用のトランスポート・レベル・セキュリティを用いることを特徴とする方法。
【請求項2】
前記要求に含まれる通信相手についての情報に基づいて、前記IVIが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップが、前記通信相手に対応する識別子と所定リストとを比較することを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記要求に含まれる通信相手についての情報に基づいて、前記IVIが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップが:
前記IVIにおいて、前記要求に対応する加入/アカウント状態が、所定の加入/アカウント状態に相当するか否かを判定することと;
前記IVIにおいて、前記加入/アカウント状態が前記所定の加入/アカウント状態に相当するものと判定したことに応答して、前記モバイル機器において、前記通信相手に関連する識別子が、所定リスト中のエントリに対応するか否かを判定することと
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項4】
モバイル機器、及び有線または短距離無線送信機の少なくとも一方によって該モバイル機器に結合された車載ヘッドユニットを含むシステム内の1つ以上の処理装置によって実行される方法であって、
前記モバイル機器と前記車載ヘッドユニットとを結合するステップと;
前記車載ヘッドユニットが前記モバイル機器のリソースを利用することの要求を受信するステップと;
前記要求を許可するか否かを決定するステップと;
前記要求を許可することを決定したことに応答して、前記モバイル機器のプロキシを利用して、通信相手との接続を確立するステップとを含み、
前記要求を許可するか否かを決定するステップが、
前記要求によって指示される通信相手に関連する識別子に基づいて、前記要求を許可するか否かを判定することと、
前記車載ヘッドユニットにおいて、前記要求に対応する加入/アカウント状態が、所定の加入/アカウント状態に相当するか否かを判定することと;
前記車載ヘッドユニットにおいて、前記加入/アカウント状態が前記所定の加入/アカウント状態に相当するものと判定したことに応答して、前記モバイル機器において、前記通信相手に関連する識別子が、所定リスト中のエントリに対応するか否かを判定することと
をさらに含み、
前記車載ヘッドユニットにおいて、前記加入/アカウント状態が前記所定の加入/アカウント状態に相当するものと判定したことに応答して、前記車載ヘッドユニットにおいて、SOCKS(ソケット・セキュア)プロキシ・チェイニング通信を前記モバイル機器に送信するステップと;
前記モバイル機器において、受信した前記SOCKSプロキシ・チェイニング通信から、前記通信相手を認識するステップと
をさらに含むことを特徴とする方法。
【請求項5】
前記一連のステップが、
前記IVIにおいて、前記加入/アカウント状態が前記所定の加入/アカウント状態に相当するものと判定したことに応答して、前記IVIにおいて、第1ソケットを周知のポートに対して開放するステップと;
前記IVIにおいて、前記通信相手に関連する識別子が、前記所定リスト中のエントリに対応するものと判定したことに応答して、前記モバイル機器において、第2ソケットを開放するステップと
をさらに含むことを特徴とする請求項3に記載の方法。
【請求項6】
前記モバイル機器において、前記IVIの要求を受信するステップが、前記モバイル機器において前記要求を受信するポートを識別するステップをさらに含み、
前記IVIが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップが、マッピングが、前記識別したポートに対応するエントリを含むか否かを判定するステップと
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記モバイル機器の前記プロキシが、前記要求を前記IVIから送信した第2プロキシ・サーバーとは異なる第1プロキシ・サーバーを具えていることを特徴とする請求項1に記載の方法。
【請求項8】
前記第1プロキシ・サーバーが、第1SOCKSプロキシ・サーバーを具えていることを特徴とする請求項7に記載の方法。
【請求項9】
前記モバイル機器において、前記IVIの要求を受信するステップが、前記モバイル機器において前記要求を受信するポートを識別するステップをさらに含み、
前記IVIが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップが、マッピングが、前記識別したポートに対応するエントリを含むか否かを判定するステップと
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項10】
前記一連のステップが、
前記モバイル機器において、前記要求に関連する加入/アカウント状態をチェックするステップをさらに含み、
前記マッピングが前記エントリを含み、かつ、前記加入/アカウント状態が所定の加入/アカウント状態に相当するものと判定したことに応答して、前記要求が許可されることを特徴とする請求項9に記載の方法。
【請求項11】
モバイル機器、及び有線または短距離無線送信機の少なくとも一方によって該モバイル機器に結合された自動車インフォテインメント・システム(IVI)を含むシステム内の1つ以上の処理装置による実行に応答して、前記処理装置に動作を実行させる命令を記憶したメモリ装置であって、前記動作が:
前記モバイル機器において、前記IVIの要求を識別するステップと;
前記要求を識別したことに応答して、前記要求に含まれる通信相手についての情報に基づいて、前記IVIが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップであって、前記リソースは、前記モバイル機器の長距離無線送信機を含むステップと;
前記決定の結果に基づいて、前記IVIが前記モバイル機器のリソースを利用する前記要求を許可するステップと;
前記要求が許可された場合に、前記モバイル機器のプロキシを利用して、前記通信相手との接続を確立するステップと
を含み、
前記IVI及び前記通信相手が、前記接続上で交換されるデータ用のトランスポート・レベル・セキュリティを用いることを特徴とするメモリ装置。
【請求項12】
前記要求に含まれる通信相手についての情報に基づいて、前記IVIが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップが、前記要求に対応する加入/アカウント状態が所定の加入/アカウント状態に相当する場合のみに、前記モバイル機器において、前記通信相手に対応する識別子が所定リスト中のエントリに対応するか否かを判定することを、さらに含むことを特徴とする請求項11に記載のメモリ装置。
【請求項13】
モバイル機器、及び有線または短距離無線送信機の少なくとも一方によって該モバイル機器に結合された車載ヘッドユニットを含むシステム内の1つ以上の処理装置による実行に応答して、前記処理装置に動作を実行させる命令を記憶したメモリ装置であって、前記動作が:
前記モバイル機器において、前記車載ヘッドユニットの要求を識別するステップと;
前記要求を識別したことに応答して、前記要求に含まれる通信相手についての情報に基づいて、前記車載ヘッドユニットが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップであって、前記リソースは、前記モバイル機器の長距離無線送信機を含むステップと;
前記決定の結果に基づいて、前記車載ヘッドユニットが前記モバイル機器のリソースを利用する前記要求を許可するステップと;
前記要求が許可された場合に、前記モバイル機器のプロキシを利用して、前記通信相手との接続を確立するステップと
を含み、
前記要求に含まれる通信相手についての情報に基づいて、前記車載ヘッドユニットが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップが、前記要求に対応する加入/アカウント状態が所定の加入/アカウント状態に相当する場合のみに、前記モバイル機器において、前記通信相手に対応する識別子が所定リスト中のエントリに対応するか否かを判定することを、さらに含み、
前記動作が、
前記モバイル機器において、前記車載ヘッドユニットから発生するSOCKS(ソケット・セキュア)プロキシ・チェイニング通信を受信したことに応答して、前記受信したSOCKSプロキシ・チェイニング通信から前記通信相手を認識するステップを、さらに含むことを特徴とするメモリ装置。
【請求項14】
前記動作が、
前記通信相手に対応する識別子がホワイトリストに含まれているか否かを判定するステップを、さらに含むことを特徴とする請求項11に記載のメモリ装置。
【請求項15】
前記モバイル機器において、前記IVIの要求を識別するステップ前記モバイル機器において前記要求を受信するポートを識別するステップをさらに含み、
前記IVIが前記モバイル機器のリソースを利用することを許可するか否かを決定するステップが、マッピングが、前記識別したポートに対応するエントリを含むか否かを判定するステップと
をさらに含むことを特徴とする請求項11に記載のメモリ装置。
【請求項16】
前記動作が、
前記対応するエントリに基づいてソケットを開放するステップをさらに含むことを特徴とする請求項15に記載のメモリ装置。
【請求項17】
前記動作が、
前記IVIにおいて、前記通信相手に対応する識別子が所定リスト中のエントリに対応するものと判定したことに応答して、ソケットを開放するステップをさらに含むことを特徴とする請求項11に記載のメモリ装置。
【請求項18】
前記モバイル機器の前記プロキシが、前記要求を前記IVIから送信した第2プロキシ・サーバーとは異なる第1プロキシ・サーバーを具えていることを特徴とする請求項11に記載のメモリ装置。
【請求項19】
前記第1プロキシ・サーバーが、第1SOCKSプロキシ・サーバーを具えていることを特徴とする請求項1に記載のメモリ装置。
【請求項20】
前記IVIにおいて、SOCKS(ソケット・セキュア)プロキシ・チェイニング通信を前記モバイル機器に送信するステップと;
前記モバイル機器において、受信した前記SOCKSプロキシ・チェイニング通信から、前記通信相手を認識するステップと
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項21】
前記トランスポート・レベル・セキュリティが、セキュア・ソケット・レイヤー(SSL)を含むことを特徴とする請求項1に記載の方法。
【請求項22】
前記トランスポート・レベル・セキュリティが、トランスポート層セキュリティ(TLS)を含むことを特徴とする請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
優先権
本願は、米国特許仮出願第61/740376号、2012年12月20日出願、発明の名称”EFFICIENT HEADUNIT COMMUNICATION INTEGRATION”に基づいて優先権を主張し、米国特許出願第13/605846号、2012年9月6日出願、発明の名称”MOBILE INTEGRATION PLATFORM (MIP) INTEGRATED HANDSET APPLICATION PROXY (HAP)”の一部継続出願として優先権を主張し、米国特許出願第13/605846号は、米国特許仮出願第61/533694号、2011年9月12日出願、発明の名称”MOBILE INTEGRATION PLATFORM (MIP) INTEGRATED HANDSET APPLICATION PROXY (HAP)”及び米国特許仮出願第61/538063号、2011年9月22日出願、発明の名称”EXTENSIBLE SCHEME FOR OPERATING VEHICLE HEAD UNIT AS EXTENDED INTERFACE FOR MOBILE DEVICE”の非仮出願であり、米国特許出願第12/777989号、2010年5月11日出願、発明の名称”CENTRALIZED MANAGEMENT OF MOTOR VEHICLE SOFTWARE APPLICATION AND SERVICES”の一部継続出願であり、米国特許出願第12/777989号は、米国特許出願第12/729207号、2010年3月22日出願、発明の名称”CENTRALIZED MANAGEMENT OF MOTOR VEHICLE SOFTWARE APPLICATION AND SERVICES”の一部継続出願であり、米国特許出願第12/729207号は、米国特許仮出願第61/252066号、2009年10月15日出願、発明の名称”CENTRALIZED MANAGEMENT OF MOTOR VEHICLE SOFTWARE APPLICATIONS AND SERVICES”及び米国特許仮出願第61/260781号、2009年11月12日出願、発明の名称”CENTRALIZED MANAGEMENT OF MOTOR VEHICLE SOFTWARE APPLICATIONS AND SERVICES”の非仮出願であり、これらの特許出願の各々は、その全文を参照する形で本明細書に含める。
【0002】
著作権の通知
著作権:2011−2013 Airbiquity Inc。本明細書の開示の一部は、著作権保護を受ける題材を含む。著作権所有者は、何人による本明細書または特許開示の複製にも異議を唱えない、というのは、米国特許商標庁の特許ファイルまたは記録中に見られるからであるが、さもなければ、いずれにせよ全権利を留保する。米国特許法施行規則第1.71条d項(37CFR §1.71(d))。
【背景技術】
【0003】
発明の背景
自動車は、ユーザ・インタフェースを有する「ヘッドユニット」を装備することができる。このユーザ・インタフェースは、スクリーン、スピーカ、マイクロホン、タッチスクリーン、及び/またはキーパッド、等のような種々のリソース構成要素を含むことができる。
【0004】
スマートホンまたは他の携帯電話(ハンドセットとも称する)は、その電話機上で動作する種々のアプリケーションプログラム(「アプリケーション」)をダウンロードすることができる。ユーザは、電話機のユーザ・インタフェースを利用してアプリケーションを制御すること、及び/または、アプリケーションを(視覚表示を視る、あるいは音声出力を聴くような)何らかの方法で利用することができる。携帯電話からヘッドユニットへアプリケーションを拡張することは、種々のサービスプロバイダ(サービス提供業者)及び自動車製造業者によって提供される一般的な特徴機能になっている。その結果、ユーザは、ヘッドユニットによって提供されるより良いユーザ・インタフェース構成要素(例えば、より大型のスクリーン及びより高品位の音声出力)を利用することができる。携帯電話アプリケーションの車載ヘッドユニットへの拡張を制御し、管理し、そして可能にするメカニズムを提供することが望まれる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許第6144336号明細書
【特許文献2】米国特許第6690681号明細書
【特許文献3】米国特許第6493338号明細書
【発明の概要】
【課題を解決するための手段】
【0006】
以下は、本発明のいくつかの態様の基本的な理解をもたらすための、本発明の概要である。この概要は、本発明の主要/重要な要素を識別すること、あるいは本発明の範囲を線引きすることを意図していない。その唯一の目的は、本発明のいくつかの概念を、後に提示するより詳細な説明の前置きとして、簡略化した形式で提供することにある。
【0007】
一例では、ネットワーク装置が、アプリケーション動作モードから車両状態へのマッピングを記憶し、車両状態は、例えば、車両が始動しているが移動中でない第1状態、及び車両が移動中の第2状態である。上記ネットワーク装置は、無線送信される(車両の無線送信機または車両に結合されたモバイル機器の送信機のいずれかによって送信される)、特定アプリケーションが車両によって給電されるインタフェースを利用することの要求を受信する。上記ネットワーク装置は、受信した要求が指定するアプリケーション識別子を上記マッピングと比較する。次に、上記ネットワーク装置は、上記比較に応じて、車両インタフェースの一部分を識別し、制御ソフトウェアを車両上に信号伝達して、上記特定アプリケーションが、車両インタフェースの上記識別された部分のみにアクセスすることを許可する。上記アプリケーションは、上記モバイル機器上に存在して車両インタフェースを拡張インタフェースとして利用することができ、あるいは、上記アプリケーションは、車両自体に存在することができる。
【0008】
一例では、処理装置が、モバイル機器のアプリケーションが車両ヘッドユニットのリソースを利用することの要求をリモートネットワーク装置へ送信し、この要求は、車両ヘッドユニットの第1プロファイル及びモバイル機器の第2プロファイルを含む。この要求を送信したことに応答して、処理装置は上記リモートネットワーク装置から命令を受信し、この命令が車載ヘッドユニットの組込みソフトウェアによって実行されて、上記アプリケーションが車載ヘッドユニットのリソースを利用することを可能にする。
【0009】
一例では、上記組込みソフトウェアが、複数の人間−機械インタフェース(HMI:Human Machine Interface)スクリーンを含むテンプレートHMIアプリケーションを具えている。この例では、上記テンプレートHMIアプリケーションが、インタプリタ・コンポーネントなしで動作する。
【0010】
一例では、上記モバイル機器を、車載ヘッドユニットが当該モバイル機器のリソースを利用することの要求を許可するか否かを決定するように構成することができる。上記モバイル機器は、この要求を許可することを決定したことに応答して、当該モバイル機器のプロキシを利用して、通信相手との接続を確立するように構成することができる。
【0011】
本発明の追加的な態様及び利点は、以下の好適な実施形態の詳細な説明より明らかになり、この説明は、添付した図面を参照しながら進める。
【図面の簡単な説明】
【0012】
図1】ヘッドユニットを電話機アプリケーション用の拡張インタフェースとして安全かつインテリジェントな方法で使用する使用法を制御するシステムを例示する図である。
図2A図1のソフトウェア32の動作を示すフローチャートを例示する図である。
図2B図1のソフトウェア32によって用いることができる接続方式を示すフローチャートを例示する図である。
図3図1のソフトウェア30A〜Bの動作を示すフローチャートを例示する図である。
図4】安全かつインテリジェントな方法でアプリケーションを選択して車両に配信するシステムを例示する図である。
図5図4のソフトウェアの動作を示すフローチャートを例示する図である。
図6図4〜5に示すシステムを、より詳細に例示する図である。
図7】ユーザの嗜好に応じて、安全かつインテリジェントな方法でアプリケーションを選択して車両に配信するシステムを例示する図である。
図8図7のソフトウェアの動作を示すフローチャートを例示する図である。
図9図7〜8に示すシステムをより詳細に例示する図である。
図10】ヘッドユニットの構成に応じて、ヘッドユニット・グラフィカル・インタフェースを選択するシステムを例示する図である。
図11】リモート計算許可を生成してヘッドユニットに送信するシステムを例示する図である。
図12】モバイル機器が、新たなアプリケーションの要求を発生するか、ユーザのウェブポータルが新たなアプリケーションを選択したことに応答して、グラフィカル・ユーザ・インタフェースの更新をヘッドユニットにプッシュするシステムを例示する図である。
図13A】ペアレンタル・コントロール方式の事前動作を示すフローチャートを例示する図である。
図13B】ペアレンタル・コントロール方式の動作を示すフローチャートを例示する図である。
図14】車載ヘッドユニットをモバイル機器用の拡張インタフェースとして動作させるシステムを例示する図である。
図15図14のサーバー、車載ヘッドユニット、及びモバイル機器によって実行することができる動作の一例を示す信号伝達図である。
図16】本発明の実施形態による、携帯電話ユーザ・アプリケーションを、車載ヘッドユニットのHMIを利用するように拡張するためのシステムを例示する図である。
図17】ハンドセット・アプリケーション・プロキシ(HAP)アプリケーションに含まれるソフトウェア・コンポーネントの例を示す機能ブロック図である。
図18】統合型HAPアプリケーションを通した、ユーザ・アプリケーションプログラムと車載ヘッドユニットHMIとの間のデータフローを例示する略図である。
図19】ソフトウェア・コンポーネント間でメッセージ伝達して、ヘッドユニットHMIから受信したイベントを処理するためのメッセージ伝達の例を、携帯電話上でのユーザ・アプリケーションの実行に関連して示すメッセージ伝達図または信号伝達図を例示する図である。
図20】ソフトウェア・コンポーネント間でメッセージ伝達して、携帯電話上で実行中のユーザ・アプリケーションから受信したメッセージを処理し、必要に応じて、ヘッドユニット上のHMIに対して更新メッセージを発生するためのメッセージ伝達の例を示すメッセージ伝達図または信号伝達図を例示する図である。
図21】汎用的な表示スクリーンを含むHMIを有する車載ヘッドユニットの一例を示す図である。
図22】効率的なヘッドユニット通信統合のためのシステムを例示する図である。
図23】(SOCKet Secure:ソケット・セキュア)SOCKSプロキシ・プロトコルを利用した、自動車インフォテインメント・システム(IVI)とバックエンド(リモートサーバー)との間のデータ交換を可能にするスマートホン・アプリケーションを例示する簡略化した通信図である。
図24】IVIとバックエンド(リモートサーバー)との間のデータ交換を可能にするためのトランスペアレント・プロキシ・サーバー機能を提供するスマートホン・アプリケーションを例示する簡略化した通信図である。
図25】SOCKSプロキシ・プロトコル・チェイニングを利用した、自動車IVIとバックエンド(リモートサーバー)との間のデータ交換を可能にするスマートホン・アプリケーションを例示する簡略化した通信図である。
図26】トランスペアレント・プロキシ・チェイニングを利用した、IVIとバックエンド(プロキシ・サーバー)との間のデータ交換を可能にするためのトランスペアレント・プロキシ・サーバー機能を提供するソフトウェア・アプリケーションを例示する簡略化した通信図である。
【発明を実施するための形態】
【0013】
好適な実施形態の詳細な説明
一例では、ユーザが、自動車のヘッドユニットを電話機用の拡張インタフェースとして使用する目的で、この電話機を、有線または無線接続を用いて、このヘッドユニットに接続する。次の段落に説明するように、ユーザは、リモートサーバーを介した決定に応じて、ヘッドユニットのインタフェースを用いて電話機上のアプリケーションを制御することができる。同様に、次の段落に説明するように、ユーザは、リモートサーバーを介した決定に応じて、ヘッドユニットのインタフェース上でアプリケーションの出力を視聴または聴取することができる。
【0014】
電話機上及びヘッドユニット上の新規なクライアント制御ソフトウェアが、電話機から延びる無線接続上で、リモートサーバー上の新規なサーバー制御ソフトウェアとインタフェース(相互作用)する。このクライアント制御ソフトウェアは、電話機アプリケーションを識別して、ヘッドユニットを拡張インタフェースとして利用する。
【0015】
上記サーバー制御ソフトウェアは、識別した電話機アプリケーションを、リモートサーバーがアクセス可能な1つ以上のデータベースと比較する。この比較に基づいて、上記サーバー制御ソフトウェアは、識別したアプリケーションが、ヘッドユニットを拡張インタフェースとして利用することを許可されているか否かを判定し、許可されていれば、ヘッドユニット・インタフェースのどの構成要素を、このアプリケーションが使用することを許可されているかを判定する。上記サーバー制御ソフトウェアは、この判定に応じて電話機及びヘッドユニットを制御することを、上記クライアント制御ソフトウェアに信号伝達する。従って、ヘッドユニットの拡張インタフェースとしてのあらゆる利用を、安全かつインテリジェントな方法で制御することができる。
【0016】
図1に、ヘッドユニットを電話用途向けの拡張インタフェースとして安全かつインテリジェントな方法で使用する使用法を制御するシステムを例示する。
【0017】
システム100は、それぞれが携帯電話20(または他のモバイル機器)上に設定されたソフトウェア30A及び30B、及びヘッドユニット21(あるいは、ハンドルと一体化されたユーザ・インタフェース、または座席の背もたれと一体化されたユーザ・インタフェースのような、自動車によって給電される他のインタフェース)を具えている。ソフトウェア30A及び30Bは、リモートサーバー22上に設定されたソフトウェア32とインタフェースして、電話機20上で動作しているアプリケーション40がヘッドユニット21のI/Oリソース1〜4にアクセスする時点及び方法を調整し制御する。
【0018】
図2Aに、図1のソフトウェア32の動作を示すフローチャートを例示する。
【0019】
ブロック201では、ソフトウェア32が、電話機20上の特定アプリケーション40がヘッドユニット21のインタフェース(入力24のリソース1〜2及び出力25のリソース3〜4を含む)を利用することの要求を受信する。この要求は、自動車及び/またはヘッドユニット21のユーザに対応するユーザ識別子、特定アプリケーション40に対応するアプリケーション識別子、及び車両状態情報を含む。ユーザ識別子は、制御ソフトウェア30Aが携帯電話20において最初に起動された時点でユーザによって提供された識別子、ユーザの電話番号、等とすることができる。
【0020】
ブロック202では、ソフトウェア32がユーザを認証する。このことは、ユーザ識別子によって識別されるユーザが、ヘッドユニット21を用いて電話機20のインタフェースを拡張するサービスの加入者のデータベース11に一致するか否かを判定することを含むことができる。菱形(判定ブロック)203においてユーザが認証されない場合、ブロック204Aでは、ソフトウェア32が、アプリケーション40によるヘッドユニット21へのアクセスを阻止するように、ソフトウェア30A/Bに信号伝達する。システム100は、ブロック202が随意的であるように構成することができる。
【0021】
さもなければ、ユーザが認証された場合、ブロック204では、ソフトウェア32が、アプリケーション識別子をアプリケーションのリスト12(ホワイトリストとも称する)と比較することによって、アプリケーション40を認証する。リスト12をバージョン番号によって比較し、これにより、アプリケーション40の特定バージョンをホワイトリスト上で識別すると共に、異なるバージョンを除外することができる。菱形(判定ブロック)205において、特定アプリケーション40(または特定バージョン)がリスト12上にない場合、ブロック204Aでは、ソフトウェア32が、アプリケーション40によるヘッドユニット21へのアクセスを阻止するように、ソフトウェア30A〜Bに信号伝達する。
【0022】
さもなければ、アプリケーション40が認証された場合、ブロック206では、ソフトウェア32が、アプリケーション識別子及び現在の車両状態情報を、アプリケーション動作モードのマッピング15と比較する。図に示すように、マッピング15は、リスト12のアプリケーション40毎にエントリ17を有する。各エントリ17は、対応するアプリケーション40を詳述するマッピングを含む。例えば、アプリケーションA用のエントリ17は、車両状態「車両移動中≦X」をリソース1、2、及び4にマッピングする(即ち、この車両状態で、アプリケーションAは、スクリーン1、スピーカ2、及びマイクロホン4のみにアクセスすることを許可される)のに対し、アプリケーションC用のエントリ17は、車両状態「車両移動中≦X」を、リソース2及び4のみにマッピングする(即ち、アプリケーションCは、スピーカ2及びマイクロホン4のみにアクセスすることを許可される)。1つの現実世界の例は、ナビゲーション・アプリケーションA及びビデオゲーム・アプリケーションCとすることができる。これらのアプリケーションでは、同乗者が存在する際でも、システム100はビデオゲーム・アプリケーションCをヘッドユニット21のスクリーン1上に表示することを可能にしない、というのは、このことは、過大に運転者の気を散らすものと考えられるからであり、これに対し、アプリケーションAはヘッドユニット21のスクリーン1上に表示することができる。現実世界の他のアプリケーションは、座席の背後に取り付けられたヘッドユニット及びディスプレイのような複数のインタフェースを有する車両とすることができる。あるアプリケーションがヘッドユニットへのアクセスを許可されていない状態下で、同じアプリケーションが後部座席のディスプレイにアクセスすることを許可することができる。
【0023】
他の例では、マッピング15を携帯電話20上に記憶することができることは明らかである。この場合、前の段落で説明した比較を、制御ソフトウェア30Aによって実行することができる。こうした場合、制御ソフトウェア30Aは、ヘッドユニット21と通信することによって、現在の車両状態をチェックする。
【0024】
ブロック207では、ソフトウェア32が、上記比較に応じて、ヘッドユニット21のI/Oリソースの一部または全部の集合を識別する。ブロック208では、特定アプリケーション40に、上記識別された集合のうちI/Oリソース1〜4のみへのアクセスを行わせるように、ソフトウェア32がリモートソフトウェアに信号伝達する。一例では、こうした信号伝達が、携帯電話20上のソフトウェア30Aを制御し、これにより、携帯電話20から送信されるすべてのアクセス要求が上記識別されたI/Oリソースの集合に適合することを含むことができる。他の例では、こうした信号伝達が、ヘッドユニット21上のソフトウェアを制御して、携帯電話20から送信されるアクセス要求を、単にヘッドユニット21上のI/Oリソースを無効にすることによるようなあらゆる方法で阻止することを含むことができる。さらに他の例では、こうした信号伝達が、ソフトウェア30A及びソフトウェア30Bを共に制御することを含むことができる。
【0025】
図2Bに、図1のソフトウェア30Bが用いることができる接続方式を示すフローチャートを例示する。接続方式は、図2Aに示す方式に加えて利用することができる。
【0026】
ブロック209では、ソフトウェア30Bが、上記識別された集合のI/Oリソースのいずれかが現在使用中であるか否かを判定する。菱形(判定ブロック)210において、いずれも使用中でなければ、ブロック211Aでは、ソフトウェア30Bが、特定アプリケーションに、上記識別された集合のI/Oリソースのみへのアクセスを行わせる。
【0027】
さもなければ、上記集合のうち少なくとも1つのリソースが使用中であれば、ブロック211Bでは、ソフトウェア30Bが、上記識別された集合のうち使用中のリソース毎に、アプリケーションの「リソースによるランキング13」を識別する。このことを図1に示し、ここでは、リソース1〜4毎にランキングが存在する。ブロック212では、ソフトウェア30Bが、アプリケーション識別子をリソースによるランキング13と比較して、アプリケーション40が、識別された部分集合の使用中のリソースのいずれかに対する優先権(プライオリティ)を有するか否かを判定する(このことは、信号伝達によって実行することができる、というのは、ランキング13がリモートサーバー上に示されているか、あるいは、このランキングが、以前の処理において車両インタフェースに送信されているからである)。この比較は、特定の使用中リソースを現在使用しているアプリケーションが、この使用中リソースを要求しているアプリケーションよりも高い優先権であると考えられるか低い優先権であると考えられるかを示す。ブロック213では、ソフトウェア30Bが、特定アプリケーション40に、上記識別された集合のI/Oリソース1〜4のうち、現在使用中でないか、より低い優先権のアプリケーションが使用中であるI/Oリソースのみへのアクセスを行わせる。
【0028】
図3に、図1のソフトウェア30A〜Bの動作を示すフローチャートを例示する。
【0029】
ブロック301では、電話機20上の特定アプリケーション40がヘッドユニット21のインタフェースを利用することの要求を、ソフトウェア30A〜Bが送信する。ブロック302では、アプリケーション40がこの時点でヘッドユニット21にアクセスすることを許可されているか否か、及び許可されていれば、リソース1〜4のどれを利用することができるかを示す戻り信号を、ソフトウェア30A〜Bが受信する。菱形(判定ブロック)303において、アプリケーション40が許可されていない場合、ブロック304Aでは、アプリケーション40がヘッドユニットにアクセスすることを許可されていないことの通知を、ソフトウェア30A〜Bが出力する。この通知は、携帯電話20またはヘッドユニット21、あるいは両者によって出力することができる。
【0030】
さもなければ、菱形(判定ブロック)303においてアプリケーション40が許可されている場合、ブロック304Bでは、ソフトウェア30A〜Bが携帯電話20及びヘッドユニット21を制御して、アプリケーション40を上記識別されたリソースに拡張させる。衝突(コンフリクト)が原因で、(それぞれのマッピング17より)アプリケーション40にとって可能なリソースの部分集合しか利用されていない場合、アプリケーション30A〜Bは、通知を発生して、より高い優先権のアプリケーションを起動する前に、より低い優先権のアプリケーションが一時停止していることについて運転者に警告することができる。他の例では、リソースが現在、より低い優先権のアプリケーションによって現在使用されている場合、ソフトウェア30A〜Bは、より低い優先権のアプリケーションを自動的に一時停止/終了して、より高い優先権のアプリケーションを、要求されたリソースを用いて起動することを可能にすることができる。
【0031】
アプリケーション40をヘッドユニット21に拡張することができるものと判定された場合、サーバー22は、対応する「コントロールパネル」ソフトウェアをヘッドユニットにダウンロードして、アプリケーション40を制御することができる。要求されているアプリケーションに基づいて、このソフトウェアをヘッドユニット21にダウンロードしたことによって、新たなアプリケーション、あるいは既存のアプリケーションに対する更新が利用可能になった際に、サービスプロバイダは、「コントロールパネル」を相応にカスタマイズし更新することができる。ヘッドユニットは、ウェブコード・レンダラを有して、「コントロールパネル」ソフトウェアを表示することができる。
【0032】
図1を参照すれば、ソフトウェア30A〜Bは、電話機20から延びる無線接続上でソフトウェア32とインタフェースする。この無線接続は、パケットデータ接続(GPRS(General Packet Radio Service:汎用パケット無線サービス)、EDGE(Enhanced Data GSM Environment:拡張データGSM環境)、EVDO(Evolution Data Only:高速データ専用)、UMTS(Universal Mobile Telecommunication System:汎用モバイル通信システム)、WiMAX(Worldwide Interoperability for Microwave Access:マイクロ波アクセス用の全世界的相互運用性)、Wi−Fi(Wireless Fidelity:無線忠実性)、等を含むが、これらに限定されない)、ショート・メッセージ・サービス(SMS:Short Message Service)、あるいは電話機20及びリモートサーバー22上の帯域内信号伝達モデムを利用することができ、これについては米国特許第6144336号明細書(特許文献1)、米国特許第6690681号明細書(特許文献2)、及び米国特許第6493338号明細書(特許文献3)に記載されている。
【0033】
なお、図1をさらに参照すれば、携帯電話20は、USB(Universal Serial Bus:汎用シリアルバス)接続、ブルートゥース(登録商標)接続、またはWiFi接続のような接続を用いることによってヘッドユニット21に結合することができる。しかし、これらは単なる例であり、他の場合、異なる接続及び/またはプロトコルが、電話機20のアプリケーション40がヘッドユニット21のインタフェースを利用するのに適していることがある。
【0034】
マッピング15は、あらゆる車両状態を有することができ、例示した4つの例は、一部の例に過ぎないことは明らかである。例えば、他の車両状態は、車両が速度「X」以上で移動し、かつ同乗者が存在するか否かとすることができる。
【0035】
ヘッドユニット21が、図示する例の全部に満たないリソースを含むことができ、あるいは、図示していない他のリソースを含むことができることは明らかである。例えば、他の可能なI/Oリソース構成要素は、文字−音声構成要素である。
【0036】
図示する例では、システム100によるインテリジェットな決定に基づいて、ヘッドユニット21上に存在するあらゆるリソースの第1部分集合に、第1アプリケーションがアクセスすることを許可することができるのに対し、これらのリソースの第2部分集合、あるいは全部のリソースに、第2アプリケーションがアクセスすることを許可することができる。
【0037】
図示するように、アプリケーション40は「リソースによって」ランク付けすることができ、あるいは、全部のアプリケーション40を含む単一のランク付けが存在することができる。システム100は、図に示す「リソースによる」ランク付けで実現されるが、本明細書に記載する概念は、リソースとは無関係にアプリケーションをランク付けする他のシステムにおいて実現することができることが明らかである。
【0038】
図4に、安全かつインテリジェントな方法でアプリケーションを選択して車両に配信するシステムを例示する。
【0039】
前に説明した図1のシステムと図4のシステムとの1つの相違は、アプリケーションのインストール場所である。図1のシステム100内のアプリケーションA〜Cが、(ヘッドユニット21または車両によって給電される他のインタフェースを拡張インタフェースとして使用する)携帯電話20上にインストールされて動作するのに対し、図4のシステム200内のアプリケーションJ〜Lは、ヘッドユニット221または車両によって給電される他の構成要素上にインストールされる。図4のシステム200では、ソフトウェア230〜232が、ヘッドユニット221上にインストールすることができるアプリケーションを選択し、選択したアプリケーションの車両への配信を制御することができる。
【0040】
以下の段落でシステム200の詳細を説明する前に、図1〜3において説明したシステム100の構造及び機能を、システム200(図4〜6)の構造及び機能と組み合わせて、単一のシステムにすることができることは明らかである。例えば、単一のシステムが、1つの携帯電話上にインストールされ、車両のインタフェースを拡張インタフェースとして用いるいくつかのアプリケーション、及び車両の構成要素上にインストールされたいくつかのアプリケーションを含むことができる。
【0041】
図5に、図4のソフトウェアの動作を示すフローチャートを例示する。
【0042】
ブロック501では、車両が始動されたことに応答して、制御ソフトウェア230が、車両の始動を示す信号244をサーバー222に送信する。信号244は、USB通信またはブルートゥース(登録商標)通信のようなローカル接続上で送信し、モバイル機器220によって中継して、無線通信ネットワーク上で送信することができる。
【0043】
ブロック502では、ソフトウェア222が、車両に関連するダウンロード・ディレクトリ239(時として「サンドボックス(砂箱)とも称される」)をチェックして、車両にダウンロードすべきアプリケーションが存在するか否かを判定する。ダウンロード・ディレクトリ239内に存在するアプリケーションをインテリジェントに選択する方式は、後に図6を参照して詳細に説明する。
【0044】
ソフトウェア232によるチェックが、ダウンロード・ディレクトリ239が少なくとも1つのアプリケーションを含むことを示す場合、処理を継続する。差し当たり、説明目的で、ダウンロード・ディレクトリ239がアプリケーション240(J〜L)を含むものと仮定する。従って、ブロック503では、ソフトウェア232が、信号伝達(シグナリング)245を発生し送信して、携帯電話220上のIP(Internet Protocol:インターネット・プロトコル)ゲートウェイ・ソフトウェア231を、アプリケーションをヘッドユニット221に転送するためのIPゲートウェイとして動作させる。一例では、信号伝達245が、ブロック502における判定に応答して、ソフトウェア231を携帯電話220に動的にロードして、ソフトウェア231を携帯電話220上で車両へのダウンロード用に動作させるための通信を含む。ソフトウェア231が既に携帯電話220上にロードされ、IPゲートウェイ動作ができる状態である場合、信号伝達245は行われなくてもよい。他の例では、車両の始動を検出したことに応答して、信号伝達235が、ヘッドユニット221上の制御ソフトウェア230から発生することができる。
【0045】
ブロック504では、ソフトウェア232が、IPパケット250を発生し送信して、アプリケーション240を車両上にダウンロードする。IPパケット250は、携帯電話220によって受信され、ソフトウェア231の動作によってヘッドユニット221へ転送される。ブロック505では、ソフトウェア230がIPパケット250を受信して、アプリケーション240(J〜L)を車両上にインストールする(インストールは、ヘッドユニット221の構成要素上または他の車両構成要素上にすることができる)。
【0046】
その後に、車両のユーザが、ヘッドユニット221をインタフェースとして用いて、アプリケーションJ〜Lを動作させることができる。ソフトウェア230及び232は、図1〜3に記載された原理のいずれかによって動作することができることは明らかである。例えば、ソフトウェア230及び232は、現在の車両状態に応じた有効なアプリケーションによって、ヘッドユニット221のI/Oリソースの利用を管理することができる。他の例として、アプリケーションが車両上及びモバイル機器上に共にインストールされたシステムでは、ソフトウェア230及び232が、テーブル(表)13(図1)と同様のアプリケーションランク付け/優先権テーブル中の車両インタフェースを利用するすべてのアプリケーションを含むことができる。
【0047】
一例では、ヘッドユニット221が、ソフトウェア230を介して制御されるウェブコード・レンダラ299、例えばHTML(Hyper text markup Language:ハイパーテキスト・マークアップ言語)レンダラを含む。ウェブコード・レンダラ299は、HTMLコードを表示するように構成されているが、ブラウザとは異なり、ユーザがウェブ上の場所を自由にナビゲートすることは可能にしない。具体的には、ウェブコード・レンダラ299は、プロバイダが許可したアプリケーションのみ、例えば、サーバー222によって指定されたアプリケーションのみを表示する。
【0048】
上述したフローチャートが、車両上にインストールされたアプリケーションを更新することに応えることは明らかである。車両に特定アプリケーションをロードし、これにより、車両上にインストールされたアプリケーションの一部は上記フローチャートに従ってダウンロードするのに対し、他のものは製造中にインストールすることもできる。
【0049】
従って、上述した原理に基づけば、どのアプリケーションも車両上にロードせずに車両を製造することができるが、その代わりに、運転者が車両内に存在する際に、アプリケーションを車両にダウンロードすることができる。車両にダウンロードされるアプリケーションの種類は、運転者によって提供されネットワーク・サーバー内に規定された嗜好によって支配される。
【0050】
図6に、図4〜5に示すシステムをより詳細に例示する。
【0051】
サーバー222が、車両毎にダウンロードされることを待機しているアプリケーションのダウンロード・ディレクトリ239を含むことは、前に説明した。図6は、ダウンロード・ディレクトリ239内のアプリケーションの選択に関与することができるユーザのウェブポータル601、604、及び605を例示し、これらのウェブポータル601、604、及び605の例を記載する。
【0052】
車両のOEM(Original Equipment Manufacturer:相手先商品製造業者)のようなプロバイダが、ウェブポータル601を運用する。コンピュータ端末625のようなインタフェースを用いて、プロバイダは、ウェブポータル601のアプリケーション選択部608を通信650により制御して、車両上にインストールすることができるすべてのアプリケーションのリスト609から、被制御のアプリケーション・リスト610を構築する。一般に、リスト609からリスト610を構築することは、プロバイダの技術的見地及び/または事業上の見地からアプリケーションを検証することを含む。
【0053】
また、プロバイダは、通信651を送信して、特定車両上にインストールすべきアプリケーションを被制御のリスト610から選択する。これらの選択は、例えば車両モデルをアプリケーションにマッピングすることに基づくことができる。これらの選択652は、ダウンロード・ディレクトリ239内に供給される。
【0054】
すべての利用可能なアプリケーションのリスト609に関して、プロバイダ及び/またはサードパーティが開発したアプリケーションによって、このリストを組み立てることができることは明らかである。アプリケーションを提供するサードパーティの場合、このサードパーティは、ウェブポータル604(一例では、プロバイダによって運用されるウェブサーバーをホストとする)のアプリケーション提出部618を用いて、リスト609中に含めるべきアプリケーション649を提出する。
【0055】
車両のユーザは、コンピュータ端末626を用いて、例えばモバイル機器またはデスクトップ・コンピュータのようなインターネットにアクセス可能なコンピュータ装置を用いて、ダウンロード・ディレクトリ239内に含めるべきアプリケーションを選択することもできる。コンピュータ端末626は、ユーザのウェブポータル605(一例では、プロバイダによって運用されるウェブサーバーをホストとする)のアプリケーション選択部628にアクセスして、自分の車両にインストールすることができるアプリケーションンの被制御のリスト610を視る。次に、ユーザは、通信661を送信して、ユーザが自分の車両上にインストールしたいアプリケーションを、被制御のリスト610から選択することができる。これらの選択662は、ダウンロード・ディレクトリ239内に供給される。
【0056】
ユーザのウェブポータル605は、ユーザが特定アプリケーションをダウンロード・ディレクトリ239から除去することを可能にするように構成することもでき、例えば、ユーザは、プロバイダを介してダウンロード・ディレクトリに追加された、プロバイダによって選択され、プロバイダを介してダウンロード・ディレクトリ239に追加されたアプリケーションのうちの1つを除去したいことがある。この除去は、既にディレクトリ239に送信されたアプリケーション652の削除によって、あるいは、特定アプリケーションが初めてダウンロード・ディレクトリ239に追加される前に、こうしたアプリケーションを望まないことを示すことによって行うことができる。
【0057】
以上のことによれば、アプリケーションを車両毎のダウンロード・ディレクトリ239内に蓄積することができる。車両の始動時に、こうしたアプリケーションを車両上にダウンロードしてインストールすることができる。従って、ダウンロード・ディレクトリ239は、次回の車両始動までに、新たなアプリケーションを蓄積することができる。
【0058】
ウェブポータル605のインタフェースと同様のインタフェースを、車両のヘッドユニット上に表示することができる。そして、ユーザは、こうしたインタフェースから選択を行って、被制御のリスト610からアプリケーションを選択することができる。このインタフェースから選択が行われると、選択されたアプリケーションは、ダウンロード・ディレクトリ内に置かれる代わりに、直ちに車両にダウンロードすることができる。
【0059】
図7に、ユーザの嗜好に応じて、安全かつインテリジェントな方法でアプリケーションを選択して車両に配信するシステムを例示する。
【0060】
前に説明した図1のシステムと図7のシステムとの1つの相違は、アプリケーションのインストール場所である。図1のシステム100におけるアプリケーションA〜Cは、携帯電話20上にインストールされて(ヘッドユニット21、あるいは車両によって給電される他のインタフェースを拡張インタフェースとして用いて)動作するのに対し、図7のシステム300におけるアプリケーションM〜P/Q〜Sは、ヘッドユニット321上、あるいは車両によって給電される他の構成要素上にインストールされる。図7のシステム300では、ソフトウェア330〜332は、プロバイダが、ヘッドユニット321上にインストールすることができるアプリケーションを選択し、選択したアプリケーションの車両への配信を制御することを可能にする。
【0061】
以下の段落で、システム300の細部を詳細に説明する前に、図1〜6に記載されたシステム100及び200の構造及び機能をシステム300(図7〜8)の構造及び機能と組み合わせて、単一のシステムにすることができることは明らかである。例えば、単一のシステムが、車両のインタフェースを拡張インタフェースとして用いる携帯電話上にインストールされた一部のアプリケーションを含み、かつ、車両の構成要素上にインストールされた一部のアプリケーションを含むことができる。
【0062】
図8に、図7のソフトウェアの動作を示すフローチャートを例示する。
【0063】
ブロック801では、ヘッドユニット321が、携帯電話320のようなモバイル機器に通信結合されている。一例では、接続540が、ヘッドユニット321と携帯電話320とのブルートゥース(登録商標)ペアリングを介して確立される。このブルートゥース(登録商標)ペアリングは、車両が始動されたこと(ヘッドユニットを起動させて、ブルートゥース(登録商標)装置を検索させる)に応答して行うことができるが、ブルートゥース・ペアリングは、携帯電話320が起動されること、携帯電話320がヘッドユニット321の範囲内に持ち込まれること、他のブルートゥース(登録商標)機器がヘッドユニット321から接続を切られた後の再ペアリングのような他の状況から生じることができることは明らかである。他の例では、ユーザがUSB接続を用いて携帯電話320をヘッドユニット321に接続することによって、こうした通信接続を確立することができる。
【0064】
ブロック802では、制御ソフトウェア330が携帯電話320の電話番号にアクセスする。携帯電話は、発呼プランに加入することに関連した特定電話番号で起動され、この特定電話番号は、制御ソフトウェア330が携帯電話320から読み出す電話番号であることは明らかである。一例では、この特定電話番号を取得するための信号伝達542を、ブルートゥース(登録商標)信号伝達を用いて実行する。
【0065】
ブロック803では、制御ソフトウェア330が信号伝達543をサーバー322に送信する。信号伝達543は、USB接続、ブルートゥース(登録商標)接続、あるいはWi−Fi接続のようなローカル接続上に送信し、モバイル機器320によって中継して、無線通信ネットワーク上で送信することができる。信号伝達543の内容は、図4に関してより詳細に前述した信号244と同様にすることができるが、これに加えて、取得した電話番号を提供することができる。
【0066】
ブロック804では、制御ソフトウェア332が、信号伝達543に含まれる電話番号をマッピング350と比較する。このマッピングは、この特定のヘッドユニット321を介してアクセス可能な複数のダウンロード・ディレクトリA〜Bの各々を、特定の電話番号に関係付ける。例えば、このマッピングでは、第1の電話番号がダウンロード・ディレクトリAに関係付けられ。第2の電話番号がダウンロード・ディレクトリBに関係付けられている。制御ソフトウェア322は、受信した電話番号とマッピング350との比較に基づいて、ダウンロード・ディレクトリA〜Bの一方を選択する。
【0067】
次に、ソフトウェア322は、ダウンロード・ディレクトリA〜Bのうち選択した方をチェックして、この選択したディレクトリ内に現在記憶されているアプリケーションが存在するか否かを判定する。ダウンロード・ディレクトリA〜B内に存在するアプリケーションをインテリジェントに選択する方式は、後に図9を参照して詳細に説明する。差し当たり、説明目的で、ダウンロード・ディレクトリ339A及び339Bが、現在、それぞれアプリケーション340A(M〜P)及び340B(Q〜S)を含むものと仮定する。
【0068】
前の段落で簡単に注記したように、ダウンロード・ディレクトリA〜Bは、それぞれ、アプリケーション340A及び340Bに加えて、ヘッドユニット・フロントエンド設定A〜Bを含む。設定A〜Bは、HTMLコード、あるいはウェブコード・レンダラ399に適合する他のウェブコードとして記憶することができる。ヘッドユニット・フロントエンド設定A〜Bのどちらがヘッドユニット321にダウンロードされるかに応じて、ヘッドユニット321のディスプレイ380が、異なるグラフィカル・ユーザ・インタフェースを表示する。異なるウェブコードファイル369A及び369Bの各々が、ディスプレイ380及びレンダラ399を用いて表示された際に、異なるグラフィカル・ユーザ・インタフェースを生成する。例えば、各グラフィカル・ユーザ・インタフェースが、ユーザが選択した特定の壁紙(画面上の背景)のようなユーザがカスタマイズしたそれ自身の設定を有することができる。異なるヘッドユニット・フロントエンド設定を生成する方式は、後に図9を参照して詳細に説明する。
【0069】
ブロック805では、図4に記載した方式と同様に、ソフトウェア332が信号伝達を発生し送信して、携帯電話320上のIPゲートウェイ・ソフトウェア331を、アプリケーションをヘッドユニット321に転送するためのIPゲートウェイとして動作させる。この例では、図4と同様に、こうした信号伝達が、ソフトウェア331を携帯電話320に動的にロードし、携帯電話320上で動作させて車両にダウンロードするための通信を含む。ソフトウェア331が既に携帯電話320上にダウンロードされて、IPゲートウェイ動作ができる状態にある場合には、この信号伝達を行わないでよい。他の例では、接続540が確立された後に、信号伝達345がヘッドユニット321上の制御ソフトウェア330から発生することができる。
【0070】
ブロック806では、ソフトウェア332がIPパケット545を発生し送信して、上記ディレクトリのうち選択したものからのデータ、例えばアプリケーションM〜P及び設定A、またはアプリケーションQ〜S及び設定Bのいずれかを、車両上にダウンロードする。IPパケット545は、携帯電話320によって受信されて、ソフトウェア331の動作によってヘッドユニット321に転送される。この特定の例示では、IPパケット545がアプリケーション及びグラフィカル・ユーザ・インタフェース用の設定を共に含むが、他のシナリオでは、IPパケット545がアプリケーションまたは設定のいずれかを含むことができることは明らかである。また、現在、選択したダウンロード・ディレクトリ内にアプリケーションが存在せず、ダウンロード・ディレクトリ内に記憶された設定に、前回のダウンロード以後に変更が加えられていない場合、IPパケット545を送信しなくてもよいことも明らかである。
【0071】
ブロック807では、ソフトウェア330がIPパケット545を受信して、IPパケット545内に含まれるアプリケーションを車両上にインストールする(インストールは、ヘッドユニット321の構成要素上または他の車両の構成要素上にすることができる)。また、ソフトウェア330は、ウェブコード・レンダラ399を用いて、IPパケット545からの設定を処理して、検出した電話番号に基づいて特定のグラフィカル・ユーザ・インタフェースを発生する。
【0072】
その後に、ディスプレイ380を通したグラフィカル・ユーザ・インタフェースの出力は、選択したダウンロード・ディレクトリに記憶された設定A〜Bの一方に相当する。車両のユーザは、ヘッドユニット321をインタフェースとして用いて、インストールされたアプリケーションM〜PまたはQ〜Sを動作させることができる。
【0073】
ソフトウェア330及び332が、図1〜3に記載した原理のいずれかに従って動作することができることは明らかである。例えば、ソフトウェア330及び332は、現在の車両状態に応じた有効なアプリケーションによって、ヘッドユニット321のI/Oリソースの利用を管理することができる。他の例として、アプリケーションが車両上及びモバイル機器上に共にインストールされているシステムでは、ソフトウェア330及び332が、テーブル13(図1)と同様のアプリケーションランク付け/優先権テーブル中の車両インタフェースを利用するすべてのアプリケーションを含むことができる。
【0074】
上述した例では、制御ソフトウェア330が、携帯電話320の電話番号にアクセスして、携帯電話320を他の携帯電話から一意的に識別する。他の例では、ヘッドユニット321上の制御ソフトウェアが、通信結合された携帯電話上の異なる値にアクセスして、この携帯電話を他の携帯電話から一意的に識別することができる。他の例では、こうした値がマッピング中に用いられることは明らかであり、例えば、他の値が物理アドレスである場合、マッピングが、ダウンロードしたディレクトリに関連付けられた物理アドレスを含む。
【0075】
上述した例では、制御ソフトウェア330が、アクセスした一意的識別子(この例では電話番号)をサーバー322へ送信する。他の例では、マッピング350を車両上に記憶することができる。こうした場合、制御ソフトウェア330は、上記比較に応じて、マッピング中に挙げられた特定のダウンロード・ディレクトリを識別して、この特定のダウンロードを指定する識別子をサーバー22へ送信する。次に、サーバー322は、識別されたダウンロード・ディレクトリからのデータを送信するIPパケット545で応答する。
【0076】
図9に、図7〜8に示すシステムをより詳細に例示する。
【0077】
サーバー322が、ダウンロードされることを待機しているアプリケーションの複数のダウンロード・ディレクトリ339A〜Bを含むことは、前に説明した。図9は、ダウンロード・ディレクトリ339A〜Bを生成すること、及びディレクトリ毎のアプリケーションの選択に関与することができるユーザのウェブポータル905を例示し、ウェブポータル905の使用法の例を記載する。
【0078】
車両のユーザは、ユーザのウェブポータル905のプロファイル生成部930を用いて、車両に対応する複数のプロファイルを生成することができる。プロファイルは、車両を使用することができる人物毎に生成することができる。フィールド927は、各人物に対応する一意的な電話番号または他の一意的識別子を要求する。各人物の名前または人物毎の他の情報を、電話番号毎に集めることができる。プロファイル生成後またはプロファイル生成中に、サーバー322はプロファイル毎のダウンロード・ディレクトリを生成して、番号/ディレクトリの組合せ毎にマッピング350を更新する。一部の例では、ユーザが生成したプロファイルをランク付けし、これにより、ヘッドユニットをモバイル機器のうち2つ以上に同時に結合することができる場合(このことが可能であるか否かは接続プロトコル次第である)、対応するプロファイルのうちより高くランク付けされたものを使用することを可能にするように、プロファイル生成部930を構成することができる。
【0079】
プロファイル生成中またはプロファイル生成後に、ウェブポータル905は、ダウンロード・ディレクトリ339A〜Bに含めるべきアプリケーションを、コンピュータ端末926を用いて、例えばモバイル機器またはデスクトップ・コンピュータのようなインターネットにアクセス可能なあらゆるコンピュータ装置を用いて選択するように動作することができる。コンピュータ端末926は、ユーザのウェブポータル905(一例では、プロバイダが運用するウェブサーバーをホストとする)のアプリケーション選択部928にアクセスして、車両上にインストールすることができる被制御のアプリケーション・リストを見ることができる。次に、ユーザは、通信961を送信して、ユーザが自分の車両上にインストールしたいアプリケーションを、ディレクトリ毎に選択することができる。これらの選択962は、それぞれ、ダウンロード・ディレクトリ339A〜B内に、ディレクトリ毎に供給される。
【0080】
ユーザのウェブポータル905は、ユーザが特定アプリケーションをダウンロード・ディレクトリ339A〜Bから除去するように構成することもでき、例えば、ユーザは、プロバイダが選択し、プロバイダを介してディレクトリ毎に、ダウンロード・ディレクトリ339Aまたは339Bに追加されたアプリケーション952を除去したいことがある。除去は、既にダウンロード・ディレクトリ339Aまたは339Bに送信されたアプリケーションの削除によって、あるいは、特定アプリケーションが初めてダウンリード・ディレクトリ339Aまたは339Bに追加される前に、こうしたアプリケーションを望まないことを示すことによって行うことができる。
【0081】
ユーザのウェブポータル905は、ヘッドユニット・フロントエンド・カスタマイズ部928を含むこともできる。ヘッドユニット・フロントエンド・カスタマイズ部928は、新たな設定369A〜Bをダウンロード・ディレクトリ339A〜Bに追加することを可能にし、各人物の設定は、当該人物の要求に応じてカスタマイズされている。例えば、第1の壁紙背景をダウンロード・ディレクトリ339Aに追加し、第2の異なる壁紙背景をダウンロード・ディレクトリ339Bに追加することができる。他のカスタマイズは、カスタマイズされたグラフィカル・インタフェースのボタン、カスタマイズされたグラフィカル・ユーザ・インタフェースのレイアウト、カスタム(特注)画像、等を含むことができる。
【0082】
以上のことによれば、アプリケーションを車両毎のダウンロード・ディレクトリ339A〜Bに、ディレクトリ毎に蓄積することができる。ヘッドユニットがモバイル機器のうち特定のものと結合すると、ダウンロード・ディレクトリ339A〜Bのうち対応するものからのデータを、車両上にダウンロードしインストールして、カスタマイズされたアプリケーションの集合及びカスタマイズされたユーザ・インタフェースを提供することができる。
【0083】
ウェブポータル905のインタフェースと同様のインタフェースを車両のヘッドユニット上に表示することができることは明らかである。次に、ユーザは、こうしたインタフェースから選択を行って、上記被制御のリストからアプリケーションを選択することができる。このインタフェースから選択が行われると、選択されたアプリケーションは、ダウンロード・ディレクトリ内に置かれる代わりに、直ちに車両にダウンロードすることができる。
【0084】
図10に、ヘッドユニットの構成に応じて、ヘッドユニット・グラフィカル・インタフェースを選択するシステムを例示する。
【0085】
システム1000は、サーバー1022及びヘッドユニット1021を含み、これらは、前に説明したサーバー及びヘッドユニットのいずれかと同様の構成要素を含むことができる。サーバー1022とヘッドユニット1021が、ヘッドユニット1021に結合されたモバイル機器(図示せず)を用いて通信することは明らかである。ヘッドユニット1021は制御ソフトウェア1030を含み、サーバー1022は制御ソフトウェア1032を含む。
【0086】
ソフトウェア1032は、例えばヘッドユニット1021を調べて(1081)情報を収集することによって、ヘッドユニット1021の設定を識別する。ソフトウェア1030は、ヘッドユニット1021の設定を識別する情報で応答する(1082)。応答1082は、次の少なくとも1つを含むことができる:車両の製造業者/型式/年式、所定のコード、あるいは(カラー/モノクローム表示、固有の解像度、等のような)ヘッドユニット1021の設定のリスト。
【0087】
次に、ソフトウェア1032は、ヘッドユニット情報1082に基づいて、複数のグラフィカル・ユーザ・インタフェースから選択する。例えば、ヘッドユニット情報1082が所定のコードを含む場合、ソフトウェア1032は、このコードを、記憶しているコード対グラフィカル・ユーザ・インタフェースY〜Zのマッピング1085と比較する。選択したグラフィカル・ユーザ・インタフェースは、情報1082によって報告されたヘッドユニット1021の特定の設定に対応する。例えば、ヘッドユニット1021がモノクローム・ディスプレイを有する場合、選択されるグラフィカル・ユーザ・インタフェース(GUI:graphical user interface)はインタフェースYとすることができるのに対し、ヘッドユニット1021がカラーディスプレイを有する場合、選択されるGUIはインタフェースZとすることができる。あるいは、恐らくは、ヘッドユニット1021が第1の値の固有解像度を有する場合、選択されるGUIはインタフェースYとすることができるのに対し、ヘッドユニット1021が第2の値の固有解像度を有する場合、選択するGUIはインタフェースZとすることができる。車の製造業者/型式/年式が第1の設計、例えば豪華な基調(モチーフ)の内装を示す場合、選択するGUIはインタフェースYとすることができるのに対し、車の製造業者/型式/年式が第2の設計、例えばスポーツカーの基調の内装を示す場合、選択するGUIはインタフェースZとすることができる。
【0088】
一旦、グラフィカル・ユーザ・インタフェースを選択すると、ソフトウェア1032は、グラフィカル・ユーザ・インタフェースY〜Zのうち選択したもののIPパケット転送を行う。IPパケット転送1045は、前に説明した携帯電話(図示せず)のIPゲートウェイ・ソフトウェアを利用することができることは明らかである。ソフトウェア1030は、受信したグラフィカル・ユーザ・インタフェースを自動的にインストールする。選択したグラフィカル・ユーザ・インタフェースは、デフォルトのグラフィカル・ユーザ・インタフェース1090、あるいは以前にダウンロードされて転送1045の前にヘッドユニット1021上に存在するグラフィカル・ユーザ・インタフェースを置き換える。
【0089】
前に説明したフロントエンド設定は、選択してインストールしたGUIに適用することができることは明らかである。例えば、選択したGUIは、ヘッドユニット1021上にインストールすることができ、次に、現在ヘッドユニット1021に結合されているモバイル機器の電話番号に応じてカスタマイズされたフロントエンド選択に基づいて、外見をさらに修正することができる。
【0090】
図11に、リモート計算許可を生成してヘッドユニットに送信するシステムを例示する。
【0091】
システム1100は、サーバー1122及びヘッドユニット1121を含み、これらは、前に説明したサーバー及びヘッドユニットのいずれかと同様の構成要素を含むことができる。サーバー1122とヘッドユニット1121が、モバイル機器1131を用いて通信することは明らかである。ヘッドユニット1121は制御ソフト1130を含み、サーバー1122は制御ソフトウェア1132を含む。
【0092】
ヘッドユニット1121は、モバイル機器1131上で実行されているVNCサーバー1149に接続するための、Visual Network Computing(VNC、登録商標)クライアント1148のようなリモート・デスクトップ視聴プログラムを含む。背景として、VNCクライアントとVNCサーバーとが通信して、サーバーのデスクトップ画面または他の現在の画面をクライアントのディスプレイ上に表示する。次に、クライアントに直接接続されたヒューマン・インタフェース装置、例えばキーボード、マウス、等を、表示された画像と共に使用して、VNCサーバーを実行しているコンピュータ装置を遠隔制御する。アプリケーションが、全画面(フルスクリーン)モードで、VNCサーバーと共にコンピュータ装置上で実行されている場合、VNCサーバーを伴うこのコンピュータ装置は、(デスクトップ全体ではなく)当該アプリケーションを制御する。
【0093】
制御ソフトウェア1130は、モバイル機器1131から、特定アプリケーションX(1140)を指定する要求1155を受信する。制御ソフトウェア1130は、要求1155に対応するアプリケーション識別子を、要求1155から直接抽出するか、あるいは、この要求から収集した情報またはモバイル機器1131との何らかの通信から収集した情報に基づく検索を用いるかのいずれかによって識別する。制御ソフトウェア1130は、アプリケーション識別子を含む通信1156を送信する。
【0094】
制御ソフトウェア1132は、このアプリケーション識別子を内部テーブルと比較して、アプリケーションXのVNC許可1157を生成する。VNC許可1157は、VNCがこのアプリケーションXと共に許可される特定条件を指定する。例えば、アプリケーションXがナビゲーション・アプリケーションである場合、許可1157は、車両が停止しているか移動している際にVNCが許可されることを指定することができる。これとは対照的に、アプリケーションXがメディア再生アプリケーションである場合、許可1157は、車両が停止している際のみにVNCが許可されることを指定することができる。
【0095】
VNC許可1157は、アプリケーションが現在、全画面モードで実行されているかウィンドウモードで実行されているかに基づいて、異なる許可を指定することもできる。例えば、ナビゲーション・アプリケーションは、車両が移動中であるが、ナビゲーション・アプリケーションがモバイル機器1131上で全画面モードで実行されている際のみに限って許可することができる。このことは、車両が移動している間にユーザがナビゲーション・アプリケーションをウィンドウモードに切り換えた場合に、VNC機能を即座に停止する。
【0096】
VNC許可1157は、電話番号を指定することもできる。例えば、モバイル機器1131がメディアプレーヤ・アプリケーションを実行中である際に、モバイル機器が特定の電話番号を有する場合のみに、VNCを許可することができる(このことは、パネル制御の形式として用いることができる)。
【0097】
制御ソフトウェア1130は、受信したVNC許可1157を、VNC許可のデータベース1135内に記憶する。制御ソフトウェア1130は、データベース1135内に記憶されたVNC許可に基づく条件を連続的に監視して、制御信号1160を生成する。制御信号1160は、モバイル機器1131の画面1161を、現在、VNCクライアント1148がヘッドユニット1121のディスプレイ上に表示することができるか否かを制御する。制御信号1160は、ヘッドユニット1121の入力インタフェースを用いて行った入力をVNCサーバー1149に送信する(1162)か否かも制御する。
【0098】
図12に、モバイル機器が、新たなアプリケーションの要求を発生するか、ユーザのウェブポータルが新たなアプリケーションを選択したことに応答して、グラフィカル・ユーザ・インタフェースの更新をヘッドユニットにプッシュするシステムを例示する。
【0099】
システム1200は、サーバー1222及びヘッドユニット1221を含み、これらは、前に説明したサーバー及びヘッドユニットのいずれかと同様の構成要素を含むことができる。サーバー1222とヘッドユニット1221が、モバイル機器1231を用いて通信することは明らかである。
【0100】
サーバー122は、システム1200において使用される新たなアプリケーションの指標を、少なくとも2つの形式で受信する(新たなアプリケーションとは、以前にヘッドユニット1221にダウンロードされていないアプリケーション、及び/または、ヘッドユニット1221を拡張インタフェースとして使用していないアプリケーションを称する)。1つの形式では、モバイル機器1231が、ヘッドユニット1221を拡張インタフェースとして利用する新たなアプリケーションX(1240)の指標を送信する。より具体的には、この指標は、制御ソフトウェア1230が、モバイル機器1231から要求1270を受信したことに応答して発生し送信した許可要求1271である。
【0101】
サーバー1222が新たなアプリケーションの指標を受信することができる他の方法は、ユーザのウェブポータル1205上の制御からである。ユーザのウェブポータル1205は、前に説明したウェブポータルと同様である。アプリケーション選択ツール1228を用いて、ユーザはあらゆるリモートコンピュータを用いて、ヘッドユニット上にインストールするために対応するダウンロード・ディレクトリ(図示せず)に含めるべきアプリケーションを選択することができる。従って、新たなアプリケーションを含む受信した選択は、システム1200において使用される新たなアプリケーションの指標の他の形態である。
【0102】
こうした指標を検出したことに応答して、制御ソフトウェア1232は、新たなアプリケーションX用のグラフィカル・ユーザ・インタフェースの更新を含むIPパケット転送1245を送信すべきか否かを決定する。前に説明したアプリケーションの被制御のリスト(図6)に新たなアプリケーションXが含まれない場合、こうしたIPパケット転送を送信しないことは明らかである。一例では、上記グラフィカル・ユーザ・インタフェースの更新が、前に選択してインストールしたグラフィカル・ユーザ・インタフェース(図10)を修正して、新たなアプリケーションXにアクセスするためのアイコンを追加する。他の例では、グラフィカル・ユーザ・インタフェースの更新が、新たなアプリケーションXを動作させるための、前に選択してインストールしたグラフィカル・ユーザ・インタフェースに対する更新の他の何らかの形態を含む。制御ソフトウェア1230は、要求の送信1270及び/または選択の送信1274に応答して、上記更新を自動的にインストールする。アプリケーションのダウンロードがダウンロード・ディレクトリ内で車両の始動を待機している場合、転送1245は、このアプリケーション自体のダウンロードに含めることができる。
【0103】
図13Aに、ペアレンタル・コントロール(親権による管理)方式の事前動作を示すフローチャートを例示する。
【0104】
ブロック1301では、サーバーが、少なくとも1つのプロファイルを、ペアレンタル・コントロールを受けるものとして指定する。このプロファイルは、アカウントの保有によって、例えばウェブポータルを用いて選択に印を付けることによって選択することができる。
【0105】
ブロック1302では、サーバーが、ペアレンタル・コントロールを受けるプロファイルにとっての「親」(一般に、アカウント保有者)として指定されたユーザ名でのログインを受信する。ブロック1303では、サーバーが、ペアレンタル・コントロールを受けるプロファイルに関連するアプリケーションのリストを、ウェブポータルを用いて表示させる。
【0106】
ブロック1304では、このリストを表示した後に、サーバーは、表示されたリストからの選択を受信する。サーバーは、これらの選択を、ペアレンタル・コントロールを受けるプロファイル内に格納することができる。これらの選択は、上記リストからのアプリケーション及び/または、条件付き許可の場合、より詳細な情報を含むことができる(条件付き許可は、後により詳細に説明する)。
【0107】
図13Bに、ペアレンタル・コントロール方式の動作を示すフローチャートを例示する。
【0108】
ブロック1320では、携帯電話がヘッドユニットに通信結合したことに応答して、ヘッドユニットが、サーバーと通信するために使用する携帯電話の電話番号を取得する。ブロック1321では、ヘッドユニットが、この電話番号をサーバーに送信してサーバーが分析する。取得した電話番号が、ペアレンタル・コントロールを受けるものとして指定されたプロファイルと一致しない場合、ブロック1322でペアレンタル・コントロール処理が完了する。
【0109】
さもなければ、取得した電話番号が、ペアレンタル・コントロールを受けるプロファイルに一致した場合、ブロック1323では、サーバーがペアレンタル・コントロールを実行する。一例では、こうした実行がブロック1323〜1327を含み、これらのブロックは、次の段落で説明するVNC許可処理と同様である。
【0110】
ブロック1323では、サーバーがペアレンタル・コントロール・メッセージをヘッドユニットに送信する。ブロック1324では、ペアレンタル・コントロール・メッセージに基づいて、ヘッドユニットが状態を連続的に監視する。ブロック1325では、ヘッドユニットが、特定のアプリケーションが当該ヘッドユニットを拡張インタフェースとして使用することを阻止し、及び/または、当該ヘッドユニット上にインストールされた特定アプリケーションが実行されることを阻止する。例えば、ヘッドユニットは、特定の携帯電話が電話発呼を受信したことの指標を受信することはできるが、この発呼については、当該ヘッドユニットを拡張インタフェースとして使用することを阻止する。あるいは、他の例では、ヘッドユニットが、メディアプレーヤ・アプリケーションを当該ヘッドユニット上で実行しようとすることを阻止することができる。上記連続監視は、受信したペアレンタル・コントロール・メッセージを記憶するヘッドユニット上のデータベースによって促進することができる。
【0111】
ブロック1326では、ヘッドユニットが、特定アプリケーションが当該ヘッドユニットを拡張インタフェースとして使用すること、及び/または、特定アプリケーションが当該ヘッドユニット上で直接実行されることを阻止する。例えば、ヘッドユニットは、特定の携帯電話が電話発呼を受信したことの指標を受信することはできるが、次に、着信した発呼上の発呼者IDフィールドの値に基づいて、当該ヘッドユニットの拡張インタフェースとしての使用を条件付きで阻止する。より具体的には、ペアレンタル・コントロール・メッセージは、特定電話番号を、ヘッドユニットが当該電話機に拡張インタフェースを提供することを防止することの例外として指定することができる。ヘッドユニットは、発呼者のID値を携帯電話から取得し、この携帯電話が当該ヘッドユニットのインタフェースを利用することを条件付きで阻止する。他の例では、ヘッドユニットが、車両の状態に基づく条件付きでアプリケーションを阻止することができ、例えば、ヘッドユニットは、車両が現在移動中である場合のみに、携帯電話が当該ヘッドユニットのインタフェースを利用することを阻止する。
【0112】
ブロック1327では、ペアレンタル・コントロール・メッセージによれば特定アプリケーションが許可されている場合に、ヘッドユニットはこのアプリケーションを阻止しない。この場合、ヘッドユニットは、このアプリケーションがサーバーによる許可に応じて、例えば、このアプリケーションが上記被制御のリスト(図6)上にあるか否かに応じて動作することを可能にする。
【0113】
他の例では、システムが、具体的に上述した処理とは異なる処理を用いて、ペアレンタル・コントロール方式を実行することができることは明らかである。例えば、他の例では、ブロック1323〜1327の処理を使用しない。代わりに、ヘッドユニットは、状態及びアプリケーション要求を絶えずサーバーに報告し、サーバーは、ペアレンタル・コントロール設定に応じて、現在の許可を動的に撤回する。次に、サーバーは、ヘッドユニットを制御して、現在不許可にされたアプリケーションを阻止する。
【0114】
車載ヘッドユニットをモバイル機器用の拡張インタフェースとして動作させるための拡張可能な方式
車載ヘッドユニットをモバイル機器用の拡張インタフェースとして動作させるための既知の方式が存在する。しかし、こうした既知の方式では、車載ヘッドユニットの構成は製造時に固定され、その結果、新たに発売されたモバイル・アプリケーションでは動作不能になることがある。部分的な解決策では、新たなモバイル機器アプリケーションを車載ヘッドユニットにダウンロードし、このことは、このモバイル機器アプリケーションの(車載ヘッドユニット上の)ダウンロード、インストール、及び動作のために、車載ヘッドユニットを比較的高価なハードウェア構成要素で製造することを必要とする。
【0115】
図14に、車載ヘッドユニットをモバイル機器用の拡張インタフェースとして動作させるシステムを例示する。
【0116】
システム1400は、サーバー1411、車載ヘッドユニット1412、及びモバイル機器1413(長距離無線装置、この例ではセルラ電話機とすることができる)を含み、それぞれが処理装置1408、109、及び1410を含む。車載ヘッドユニット1412は、ブルートゥース(登録商標)トランシーバまたはUSBポートのような短距離入力/出力インタフェースを含み、これらは車載ヘッドユニット1412を、モバイル機器1413のような利用可能なモバイル機器に結合するように構成されている。接続1415は、車載ヘッドユニット1412とモバイル機器1413との接続を表す。サーバー1411は、車載ヘッドユニット1412と通信するように構成されたネットワーク・インタフェースを含む。一例では、サーバー1411からの通信1416が、接続1415越しに(一部の場合に、車載ヘッドユニットはモバイル機器の長距離無線を利用して、リモートネットワークと通信することができる)、または他の経路を通って(一部の場合に、車載ヘッドユニットは車両の長距離無線を利用して、リモートネットワークと通信することができる)、車載ヘッドユニット1412に到着することができる。
【0117】
サーバー1411は、1つ以上のアプリケーション命令のグループを記憶するメモリを含む(各グループがモバイル機器アプリケーションに対応する)。あるグループのアプリケーション命令は、モバイル機器アプリケーションが発売されると共に、長期にわたって更新することができる。車載ヘッドユニットは、HMI(Host Micro Interface:ホスト・マイクロ・インタフェース)アプリケーション1421のような組込みソフトウェアを含み、この組込みソフトウェアは、対照的に、車載ヘッドユニット1412の製造時に固定にすることができる。テンプレートHMIアプリケーションは「シン・クライアント(小型軽量クライアント)」であり、ダウンロードされたアプリケーション命令を事項するように構成されている。ここでも、テンプレートHMIアプリケーション1421は「シン・クライアント」と称することができ、インタプリタ、即ちスクリプト言語、例えばJavaScript(ジャバスクリプト:登録商標)を他のプログラミング言語に逐次翻訳するコンポーネントとは無関係に動作する。テンプレートHMIアプリケーション1421は、複数の汎用表示スクリーン、例えば複数のHMIスクリーン1423を含むことができる。
【0118】
ヘッドユニット上の多数のアプリケーション・スクリーンは、複数のスクリーン形式のうちの1つとして一般化することができる。一例では、上記複数のスクリーン形式は、情報型スクリーン、例えば情報のリストを示すスクリーン、インタラクション(相互作用)型スクリーン、例えば、ソーシャル・ネットワーキング・ポストまたは電子メール・メッセージのようなインタラクティブ(対話型)メッセージを示すスクリーン、コンテンツ表示スクリーン、例えば、音楽アプリケーションまたは書籍アプリケーションからのコンテンツのような現在再生中のコンテンツを表示するスクリーンを含む。従って、一例では、複数のHMIスクリーン1423が、情報スクリーン、コンテンツ表示スクリーン、及びインタラクティブ・メッセージ・スクリーンを含む。複数の汎用表示スクリーンの組合せ、例えば複数のHMIスクリーン1423を組み合わせて、所定アプリケーションのスクリーンを形成することができる。個別のテンプレート・フォーマットは、1つの所定アプリケーションから他の所定アプリケーションで変更しなくてもよく、コンテンツそのもの、画像があれば画像、スクリーンを表示する順序、及び電話機上に存在するアプリケーション機能へのボタンのマッピング(対応付け)は、1つの所定アプリケーションから他の所定アプリケーションで変化する。
【0119】
処理装置1408は、アプリケーション命令1425のグループのうち少なくとも1つを、車載ヘッドユニット1412のメモリ1450にダウンロードするように構成されている。このダウンロードは随時に発生することができるが、一例では、処理装置1409または処理装置1410から要求を受信したことに応答して発生することができる。
【0120】
アプリケーション命令のグループのダウンロードは、モバイル機器1413のアプリケーションが、現在の車両の状態に基づいて車載ヘッドユニット1412のリソースを利用することを許可されたことに応答して行うこともできる。アプリケーションが許可されているか否かの判定は、本明細書で図1〜13Bを参照して説明した原理の任意の組合せを含むことができることは明らかである。一例では、アプリケーションが車載ヘッドユニット1412のリソースを利用することを許可されていないものと判定したことに応答して、ダウンロードを発生させないことができる。一例では、アプリケーションが車載ヘッドユニット1412のリソースを利用することを許可されていないものと判定したことに応答して、それでもダウンロードは発生させることができるが、サーバー1411は、アプリケーションがこの時点で車載ヘッドユニット1412のリソースを利用することを防止することができる。
【0121】
ダウンロードされたアプリケーション命令は、テンプレートHMIアプリケーション1421によって実行されると、特定のモバイル機器アプリケーション1414を制御する方法についてHMIアプリケーション1421に命令し、この方法は、特定のモバイル機器アプリケーション1414が理解することのできるコマンド、及びこれらのコマンドのフォーマットを含む。より一般的に言えば、アプリケーション命令のダウンロード及び実行は、テンプレートHMIアプリケーション1421(車載ヘッドユニットの製造の時点で車載ヘッドユニットにインストールされている元のHMIアプリケーションとすることができる)が、新たに発見された特定のモバイル機器アプリケーション1414(「新たな」モバイル機器アプリケーション、即ち、車載ヘッドユニットの製造後に発売されるか、さらには開発されたアプリケーション)を制御することを可能にする。
【0122】
一例では、この命令が、要求されたアプリケーション用の複数のHMIスクリーンの少なくとも一部を表示する特定順序を定める。換言すれば、上記要求されたアプリケーション用の特定順序は、他のアプリケーションに対応する特定順序と異なる順序にすることができる(モバイル機器の複数のアプリケーション用の各命令が、異なる順序を定めることができる)。1つのアプリケーションが、複数のHMIスクリーンのうち、他のアプリケーションとは異なる部分を使用することができる(例えば、1つの所定アプリケーションが全部のスクリーンを用いることができるのに対し、他の所定アプリケーションは、これらのスクリーンのうち1つしか使用しないことができる)。
【0123】
特定のモバイル機器アプリケーション1414からテンプレートHMIアプリケーション1421へ応答を送信することが見込まれる場合、ダウンロードしたアプリケーション命令は、テンプレートHMIアプリケーション1421によって実行される際に、この応答のフォーマット/構造をテンプレートHMIアプリケーション1421に提供するように構成することができ、このフォーマット/構造は、テンプレート・アプリケーション1421が応答中に含まれる情報を表示する方法を記述した情報を含む。特定のモバイル機器アプリケーション1414からテンプレートHMIアプリケーション1421へ応答を送信することが見込まれる場合、ダウンロードしたアプリケーション命令は、テンプレートHMIアプリケーション1421によって実行される際に、コマンド及び応答のリストをテンプレートHMIアプリケーション1421に提供するように構成することができ、このリストは、関係する使用事例についての、テンプレートHMIアプリケーション1421とモバイル機器アプリケーション1414との間で交換されるメッセージの順序及び並びを構成する。
【0124】
図15に、図14のサーバー、車載ヘッドユニット、及びモバイル機器によって実行することができる動作の一例を示す信号伝達図を例示する。
【0125】
車載ヘッドユニット1412とモバイル機器1413とが結合された後に、車載ヘッドユニット1412は、車載ヘッドユニット・プロファイルをモバイル機器1413に提供する(信号1502)。車載ヘッドユニット・プロファイルは、車載ヘッドユニット1412についての一意的識別子を含むことができる。車載ヘッドユニット・プロファイルは、車載ヘッドユニット1412上に現在記憶されているアプリケーション命令の全グループのリストを含むことができる。一例では、車載ヘッドユニット・プロファイルが、車載ヘッドユニット1412によってサポート(支援)される少なくとも1つの言語を識別することもできる。
【0126】
モバイル機器1413は、モバイル機器プロファイル及びヘッドユニット・プロファイルを、サーバー1411に提供する(信号1503)。モバイル機器プロファイルは、一意的識別子、例えばモバイル機器の一意的識別子またはユーザ・アカウント識別子を含むことができ、これらは車載ヘッドユニット1412用の識別子とは異なる。モバイル機器プロファイルは、モバイル機器1413上に現在記憶されている全アプリケーションのリストを含むことができる(一部の例では、一意的識別子が、ユーザ・アカウントに相当することができ、ユーザ・アカウントは、サーバー1411が、当該ユーザ・アカウントに現在関連する全アプリケーションを、そのアカウント識別子に基づいて確認することを可能にする)。一例では、モバイル機器1413が、車載ヘッドユニット1412によってサポートされるテンプレートHMIアプリケーション1421を識別し、アプリケーション1414がテンプレートHMIアプリケーション1421で動作することを識別する。
【0127】
サーバー1411は、アプリケーション命令1425、例えば一組のアプリケーション命令を、モバイル機器1413にダウンロードする(信号1507)。一例では、サーバー1411が、識別したアプリケーションに対応するアプリケーション・ロジック(論理命令)、例えば、特定アプリケーションに命令/特定アプリケーションを制御するように構成されたロジックをダウンロードすることができる。一例では、ダウンロードされるアプリケーション命令が、対応するアプリケーション・ロジックによって実行されたコマンドの結果を含む。車載ヘッドユニット1412へのダウンロードは、上記リストからのアプリケーション命令の更新、あるいは、まだ車載ヘッドユニット1412上に記憶されていない新たなアプリケーション命令を含むことができる。同様に、モバイル機器1413へのダウンロードは、モバイル機器1413の既存のアプリケーションの更新、あるいは新たなアプリケーション用のダウンロードとすることができる。
【0128】
モバイル機器1413は、受信したアプリケーション・ロジックをローカルメモリに記憶し、ダウンロードしたアプリケーション命令1425を車載ヘッドユニット1412に提供する(信号1508)。モバイル機器1413のメモリに記憶されたアプリケーション・ロジックは、モバイル機器1413によって受信したユーザ入力に応答して実行することができる。
【0129】
車載ヘッドユニット1412がアプリケーション命令を受信すれば、車載ヘッドユニット1412は、車載ヘッドユニット1412を拡張インタフェースとして利用することができるモバイル機器用のソフトウェア・ボタンを有するグラフィカル・ユーザ・インタフェースを構築することができる(信号1509)。表示されたGUIは、テンプレートHMIアプリケーション1421(図14)のHMIスクリーン1423(図14)のうちの1つを利用することができる。車載ヘッドユニット1412を拡張インタフェースとして利用するモバイル機器アプリケーションを選択するユーザ入力に応答して、車載ヘッドユニット1412は、ダウンロードしたアプリケーション命令のうち対応するものを実行する(信号1511)。車載ヘッドユニットは、対応するアプリケーション命令を実行した結果に基づいて、テンプレートHMIアプリケーションを動作させる(信号1513)。
【0130】
1つの使用事例では、アプリケーション命令のグループ内の第1命令を実行することによって、車載ヘッドユニットが特定メッセージをモバイル機器アプリケーションに送信し、モバイル機器アプリケーションは、コンテンツを車載ヘッドユニットに返送することによって応答する。この使用事例では、上記グループ内の命令が、車載ヘッドユニットに、上記コンテンツの一部または全体を、次の命令中に含まれるパラメータまたは値と比較させる。この比較の結果に応じて、車載ヘッドユニットは、次の命令に進むか、次の命令後の他の命令に直接進むか、特定文字列のスクリーンを表示するか、ユーザが車載ヘッドユニットのインタフェースを介して選択を入力するのを待つか、完了するか、等を、実行した命令の特異性に応じて行うことができる。
【0131】
図14及び15を参照して説明した原理により動作する例では、車載ヘッドユニットのリソースを利用するアプリケーション・ロジックを、モバイル機器と車載ヘッドユニットとの間に割り振る。図14及び15を参照して説明した原理により動作する他の例では、アプリケーション・ロジックに関連するコードの全部をモバイル機器上に記憶する。
【0132】
一例では、処理装置による実行に応答して処理装置に動作を実行させる命令を記憶したメモリ装置が提供される。ある動作は、モバイル機器と車載ヘッドユニットとを結合することを含む。ある動作は、モバイル機器が車載ヘッドユニットのリソースを利用することの要求をリモートネットワークネットワーク装置に送信することを含み、この要求は、車載ヘッドユニットの第1プロファイル及びモバイル機器の第2プロファイルを含む。ある動作は、上記要求を送信したことに応答して、リモートネットワーク装置から命令を受信することを含み、この命令は、車載ヘッドユニットの組込みソフトウェアによって実行されて、要求したアプリケーションが車載ヘッドユニットを利用することを可能にする。
【0133】
一例では、上記組込みソフトウェアが、テンプレートHMIアプリケーション及び複数のHMIスクリーンを含み、上記命令は、要求したアプリケーション用の複数のHMIスクリーンの少なくとも一部を表示する特定順序を定める。一例では、テンプレートHMIアプリケーションが、インタプリタ・コンポーネントなしで動作する。
【0134】
一例では、上記第1プロファイルが、車載ヘッドユニットに対応し、かつ上記組込みソフトウェアに関連する言語またはプロトコルを識別する第1の一意的識別子を識別する。一例では、上記第2プロファイルが、第1の一意的識別子とは異なる第2の一意的識別子を識別する。
【0135】
一例では、上記命令が、要求したアプリケーションに関連するアプリケーション・ロジックによって実行されたコマンドまたは制御機能の結果を含む。一例では、上記動作が、上記要求に応答して、モバイル機器上に記憶され、かつ上記アプリケーション・ロジックに対応するコードを更新する。一例では、上記アプリケーション・ロジックに対応するコードが、モバイル機器がユーザ入力を受信したことに応答して、車載ヘッドユニットと相互運用されるように構成され、この相互運用は、上記車載ヘッドユニットによる上記命令の実行の結果に応じたものとなる。
【0136】
一例では、処理装置による実行に応答して処理装置に動作を実行させる命令を記憶したメモリ装置が提供される。ある動作は、モバイル機器のアプリケーションが車載ヘッドユニットのリソースを利用することの要求を含み、この要求は、車載ヘッドユニットの第1プロファイル及びモバイル機器の第2プロファイルを含む。ある動作は、要求したアプリケーションが車載ヘッドユニットのリソースを利用することを許可されているか否かを、車両の現在状態に基づいて判定する。ある動作は、要求したアプリケーションが車両のリソースを利用することを許可されているものと判定したことに応答して、命令を車載ヘッドユニットにダウンロードすることを含み、この命令は、車載ヘッドユニットの組込みソフトウェアによって実行されて、要求したアプリケーションが車載ヘッドユニットのリソースを利用することを可能にする。
【0137】
一例では、上記組込みソフトウェアが、テンプレートHMIアプリケーション及び複数のHMIスクリーンを含み、この命令は、要求したアプリケーション用の複数のHMIスクリーンの少なくとも一部を表示する特定順序を定める。一例では、テンプレートHMIアプリケーションが、インタプリタ・コンポーネットなしで動作する。
【0138】
一例では、第1プロファイルが、車載ヘッドユニットに対応する第1の一意的識別子を識別し、上記組込みソフトウェアに関連する言語またはプロトコルを識別する。一例では、上記第2プロファイルが、第1の一意的識別子とは異なる第2の一意的識別子を識別する。
【0139】
一例では、上記命令が、アプリケーション・ロジックによって実行されたコマンドまたは制御機能の結果を含む。一例では、上記動作が、要求したアプリケーションが車両のリソースを利用することを許可されているものと判定したことに応答して、モバイル機器上に記憶され、かつ上記アプリケーション・ロジックに対応するコードを更新することを含む。一例では、上記アプリケーション・ロジックに対応するコードが、上記モバイル機器がユーザ入力を受信したことに応答して、車載ヘッドユニットと相互運用されるように構成され、この相互運用は、車載ヘッドユニットによる命令の実行の結果に応じたものとなる。
【0140】
図16を参照すれば、同図は、本発明の他の態様、即ち、携帯電話のユーザ・アプリケーションを、車載ヘッドユニットのHMIを利用するように拡張する他のシステムを例示する。この簡略化した図は、3つの主要な構成要素、即ち、携帯電話1640、自動車ヘッドユニット1620、及びリモートサーバー1670を有する。図16に例示するように、携帯電話1640は、パケットデータ通信1652を、例えばモバイルネットワーク1654上で行う能力を具えている。種々の音声またはデータサービスを、サーバーとの通信に用いることができる。このモバイルネットワークは、IPクラウド1666として示しているインターネットへのゲートウェイ(図示せず)を有する。リモートサーバー1670は、インターネット1666経由で通信1668を行うための通信構成要素(図示せず)を有する。
【0141】
とりわけ、図16の構成は、ユーザ・アプリケーションプログラム、例えば携帯電話1640上にインストールされているように示すユーザ・アプリケーション1644を、サーバー1670からダウンロードすることを可能にする。ユーザ・アプリケーションプログラムをダウンロードする他の方法は、上述した通りである。モバイル・アプリケーションプログラムをオンライン「アップストア(App store:登録商標)」から取得することも知られている。これに加えて、例示するシステムを用いて、サーバー1670に置かれた電話機アプリケーション情報(「電話アプリ情報」)をダウンロードすることができる。以下でさらに説明するように、電話アプリ情報は、ユーザ・アプリケーション毎に提供することができる。電話アプリ情報1680は、別個のリモートサーバー(図示せず)から取得し、別個のリモートサーバーで維持し、別個のリモートサーバーから更新することができる。好適な実施形態では、電話機アプリケーション情報を、携帯電話上のHAPアプリケーションプログラムにダウンロードする。
【0142】
自動車ヘッドユニット1620は、HUP(Head Unit Program:ヘッドユニット・プログラム)ソフトウェア・コンポーネント1630を含み、これは、携帯電話と通信1635を行うように構成されている。ヘッドユニット・プロキシ1630は、ヘッドユニット1620のHMI1622に動作的に結合されている。例えば、HUPは、種々のソフトウェア・コンポーネント及びプロトコルを介してHMIと相互作用することができる。上述したように、ヘッドユニットのHMIは、表示スクリーン、マイクロホン、スピーカ、及び他のI/O要素を含むことができ、表示スクリーンはタッチスクリーンとすることができる。この例示では、HMIが1つ以上の汎用的な表示スクリーン1624を含む。ここでは、物理的な表示スクリーンを参照せず、むしろ、1つ以上の汎用的なスクリーンの外観及び動作を規定するソフトウェア要素を参照する。以下でより詳細に説明するように、これらの汎用的な表示スクリーンを用いて、携帯電話1640上で実行されるユーザ・アプリケーションプログラム1644のユーザ・インタフェースを拡張する。ヘッドユニットと携帯電話とは、短距離無線リンク、例えばブルートゥース(登録商標)リンク、あるいはIR(Infra-Red:赤外線)のような他の非接触手段またはケーブルによって通信結合される。
【0143】
ヘッドユニットHMIディスプレイ及び関連するアプリケーション・ロジックは、ヘッドユニット・プラットフォーム・リソースの制限により、容易に更新することができない。従って、HMIは、ヘッドユニットが製造またはプログラムされた時点では存在しなかったかもしれない、より新たなユーザ・アプリケーションプログラム用の拡張インタフェースとして機能するように構成できないことがある。一部の場合、車両製造業者または自動車OEMが、新たなユーザ・アプリケーションプログラム及びそれらに対応するコマンドと制御機能を、ヘッドユニットと相互作用する目的で提供するように、ヘッドユニットのファームウェアを更新することは、高価であるか非実用的なことがある。
【0144】
種々のヘッドユニット・プラットフォームは、OEM及びアフター・マーケット(販売後の市場)において既知である。これらのプラットフォームは、多種多様な組込みプロセッサ及びオペレーティングシステム、例えばウィンドウズ(登録商標)オートモティブ(Windows Automotive)、アンドロイド(Android)(登録商標)、QNX(登録商標)、等を用いることができる。ヘッドユニットは、一般に、受動的方法でコンテンツを表示するために使用される表示スクリーンを含む。即ち、ヘッドユニットは、表示するデータの内容または意味を理解せずに、グラフィックスまたは画像のようなコンテンツを表示するか、オーディオファイルを再生することができる。これに加えて、一般に、ヘッドユニットは、電話機上に存在して当該ヘッドユニットが相互作用することができるアプリケーションの状態に対して、状態または使用事例を管理することができない。従って、ヘッドユニットは、ユーザ・アプリケーション特有のビジネス・ロジック(業務用論理命令)を欠く端末にリンクさせることができる。
【0145】
一般に、ヘッドユニットはUI(User Interface:ユーザ・インタフェース)要素を含む。図21を参照すれば、同図は、自動車内に見出すことができるヘッドユニット2102の簡略化した例を示す。この例示中のヘッドユニットは、物理的な表示スクリーン2104を示し、表示スクリーン2104はタッチスクリーンとすることができ、このヘッドユニットは、1つ以上の機械的なボタンまたはスイッチ2110、2112も含み、これらは表示スクリーンを囲むベゼルまたはフレーム(外枠)内に配置することができる。ボタン2110及び2112は、ユーザが入力装置として指で押すことができる実際の物理的なハードウェア・スイッチを例示する。本明細書に記載するように、上記表示スクリーンを用いて、ヘッドユニットがユーザ・アプリケーションから受信したデータ、メッセージ、画像、または他のコンテンツを表示することができる。上記コンテンツは、ヘッドユニットを通して提示するための音声またはビデオデータを含むことができる。
【0146】
多数のヘッドユニットが、汎用的な表示テンプレートまたはレイアウトを実現する。例えば、ビデオ及びそのタイトルを表示するための単純なテンプレートを提供することができる。こうしたテンプレートは、表示スクリーンの2つの領域のみに置かれ、例えば、ビデオを領域2134内に配置し、そのタイトルまたは関係情報を、ビデオの下方のテキスト表示領域またはウィンドウ2140内に配置する。他のテンプレートは、6つの入力ボタンを提供することができる。機械的なボタン、例えば2110及び2112の場合、これらはベゼル内に、各側に3つずつ設置することができる。テキストまたは画像をHMIに出力して、対応する画像、バッジ、あるいは機械的なボタンの各々に隣接する他の識別子を表示することができる。図面中では、例示のため、これらの識別子を、七角形として表す6つの機械的なボタンに対応して、2020の印を付けた6つの領域内に表示することができる。このように、異なる識別子をハードボタンに隣接して表示することによって、当該ハードボタンの機能または意味を変化させることができる。表示スクリーン2104がタッチセンサー型(タッチスクリーン)である場合、正しく識別される同じ領域2120を複数の入力ボタン自体として用いることができる。タッチスクリーンと共に使用される汎用的な表示テンプレートは、検出可能なタッチ領域のあらゆる所定のサイズ及び配置を提供するように構成することができる。従って、一例では、HMIが単に、押された領域を示すメッセージまたはイベントを出力する。HMIは、その意味付けを理解する必要はない。
【0147】
一般に、ヘッドユニット2102を、図16のシステムを利用することによって、付近の携帯電話において実行中のユーザ・アプリケーションプログラムに対する入力用に用いることができる。さらに、ヘッドユニットは、マイクロホンのような他の入力サービスまたはハードウェア(図示せず)を有して、可聴のコマンドを受信することができる。これに加えて、ヘッドユニットは、1つ以上の車載ネットワーク、例えばCAN(Controller Area network:コントロールエリア・ネットワーク)ネットワークにアクセスして、ユーザ・アプリケーションに対する入力として機能することもできる車両から情報を取得することができる。例えば、速度のような車両状態をHAP上に渡して、安全方策を施行することに関連した考慮をさせることができる。
【0148】
ヘッドユニットの汎用的なHMI、より具体的には汎用的な表示スクリーンを用いて、アプリケーションプログラムのユーザ・インタフェースを拡張するためには、このユーザ・アプリケーションプログラムに特有の情報を用いて、ユーザ・アプリケーション1644とHMI1622との間の通信を変換してマッピングしなければならない。図16中の1680として識別される種類の情報を、リモートサーバー1670上に維持して、要求時にダウンロードする。一旦、この情報を、HAPアプリケーションにアクセス可能な方法で携帯電話にダウンロードして記憶すると、この情報がこうした機能を提供することができる。より具体的には、好適な実施形態では、ダウンロードされた電話アプリ情報1680をHAPが用いて、携帯電話上にインストールされて支配下にあるアプリケーションに対する使用事例毎に、及びヘッドユニットを介したデータの表示または他の出力毎に、コマンド及び制御の流れ、及び状態を管理する。HAPは、種々の汎用スクリーン表示テンプレートまたはテンプレート・レイアウトに適したフォーマットでコンテンツを出力することができ、これにより、ヘッドユニットは、使用事例、状況、及び状態のようなユーザ・アプリケーションに特有の知識またはロジックなしに、こうした情報を表示することができる。むしろ、1つの好適な実施形態では、ユーザ・アプリケーションの状況及び状態は、HAPによって携帯電話上に維持される。
【0149】
図17は、図16中に1642で示すもののような、HAPアプリケーションに含むことができるソフトウェア・コンポーネントの例を示す機能ブロック図である。図17では、一実施形態におけるHAP1700が、HAPメッセージ処理コンポーネント1704に結合されたAPI(Application Program interface:アプリケーションプログラム・インタフェース)1702を具えている。次のコンポーネントを、JavaScript(登録商標)またはあらゆる適切なスクリプト言語を用いて実現することができる。JavaScript(登録商標)は、実例として参照する。上記メッセージ処理コンポーネントは、JavaScript(登録商標)インタプリタ1706を含むことができる。このJavaScript(登録商標)インタプリタは、「ノマディック(nomadic)アプリケーション」、例えばアプリケーション1〜n用のコンポーネント1710として示す1つ以上のユーザ・アプリケーションプログラム用の個別のJavaScript(登録商標)コンポーネントに通信結合されている。関心のあるアプリケーション毎に別個のJavaScriptコンポーネントを用意することが好ましい。図面では、例示のために3つのこうしたJavaScript(登録商標)を示すが、この数は決定的ではない。
【0150】
各JavaScript(登録商標)は、対応するテンプレート・メッセージ変換器1712を含むか、対応するテンプレート・メッセージ変換器1712にアクセスするように結合されている。以下でさらに説明するように、このことは、携帯電話とヘッドユニットとの間で通信されるメッセージを変換するために用いられる。以前に述べたように、所定のユーザ・アプリケーション用のJavaScript(登録商標)を、要求時に、サーバー1670上の電話アプリ情報記憶装置1680からダウンロードする。サーバーへの要求は、ユーザのアプリケーションプログラムの識別子を含むことができる。本発明のこうした態様の好適な実施形態では、電話アプリ情報の要求が、ヘッドユニットまたはHMIを具体的に識別する必要がない。この要求は、汎用型のヘッドユニットまたはディスプレイは識別することができ、あるいは、ヘッドユニットは全く識別しないでよい。
【0151】
HAPアプリケーション1700は、ヘッドユニットとの通信用のプロトコル・スタックをさらに含むことができる。その代わりに、あるいはこれに加えて、HAP1700は、より単純なメッセージ・フレーミング・プロトコル・コンポーネント1722を、HTTP(Hyper Text Transfer Protocol:ハイパーテキスト転送プロトコル)/TCP(Transmission Control Protocol:伝送制御プロトコル)/IP(Internet Protocol:インターネット・プロトコル)/SLIP(Serial Line Internet Protocol:シリアル回線インターネット・プロトコル)のような、より複雑なプロトコルをサポートすることができないヘッドユニットとの通信用に含めることができる。プロトコル識別コンポーネント1730は、適用可能なプロトコルを特定し、これに応じて通信を指図する働きをする。最後に、プロトコル識別器が、適切な通信コンポーネント1740に結合されている。
【0152】
各個別のJavaScript(登録商標)、例えば1720は、ユーザ・アプリケーション・ロジック及びメッセージ・フォーマット解釈を実現し、これらは、さもなければ、対応するユーザ・アプリケーションと相互作用するように設計されていれば、関連するヘッドユニットHMIアプリケーション・ユニット内に含まれる。しかし、この場合、HMIはそのように構成されておらず、従って、HMIは一般的なHMIとして処理される。ヘッドユニット上の標準的な「テンプレート・スクリーン」は、決定を行うこともアプリケーション状態を主張することもできない。こうしたテンプレート・スクリーンは、カテゴリー化されたコンテンツ、例えばリスト、基本的なメッセージ、結果、及び「現在再生中」のスクリーンを表示するために用いることができるに過ぎない。例えば、図21を参照すれば、上述したように、表示領域2134を用いて、選択したコンテンツを表示することができる。テンプレート・メッセージ変換器を用いて、ノマディック・アプリケーションが指定した要求及び応答メッセージを、テンプレートに基づくヘッドユニットHMIスクリーンに対して要求されるフォーマットに変換することができる。さらに、JavaScript(登録商標)1710は、ボタン・マッピング情報を、視覚的なボタン識別データと共に含むことができ、視覚的なボタン識別データをスクリーンに送信して、図21を参照して上述するように、対応するボタンを、関連するJavaScript(登録商標)によって表現される個別の電話機アプリケーションに基づいて視覚的に識別することができる。
【0153】
ここで図18を参照し、この図は、統合型HAPアプリケーションを利用した、ユーザ・アプリケーションプログラムと車載ヘッドユニットHMIとの間のデータフローの例を示す略図を示す。ユーザ・アプリケーション(「ノマディック・アプリケーション」)1800は、対応するJavaScript(登録商標)プログラム1810にメッセージを伝達するように構成されたHAP API1802と相互作用し、HAP API1802も携帯電話上にインストールされている。JavaScript(登録商標)1810は、適切なユーザ・アプリケーションHMIロジック、及び状態管理コード1812を含む。ユーザ・アプリケーションからのメッセージ1814は、ユーザ・アプリケーションの通常動作におけるようにフォーマット化される。
【0154】
ユーザ・アプリケーション1800用のJavaScript(登録商標)1810は、テンプレート・メッセージ転送(「TMT(Template Message Transfer)」)コンポーネントをさらに含む。動作中に、TMTはロジック1812からメッセージを受信して、このメッセージをテンプレート・フォーマット化されたメッセージ、即ち、ヘッドユニットに適合したメッセージに変換する。次に、テンプレート・フォーマット化されたメッセージを、ヘッドユニット1830に伝達する。逆に、他の方向には、テンプレート・フォーマット化されたメッセージ1834を、ヘッドユニットからJavaScript(登録商標)1810に伝達することができ、このメッセージはTMT1820によって受信されて、アプリケーション・ロジック及び状態管理1812にとって有用な形式に変換される。そして、このロジックは、(ユーザ・アプリケーション・フォーマット化された)メッセージ1840を、HAP APIを介してアプリケーション1800に送信することを決定することができる。ヘッドユニットから受信した各要求メッセージは、結果がヘッドユニットに戻る前に、JavaScript(登録商標)コードとユーザ・アプリケーションとの間に1つ以上のトランザクションを生じさせる。
【0155】
図19は、同期メッセージの場合の、ソフトウェア・コンポーネント間の相互作用を示すメッセージまたは信号伝達図を含み、同期メッセージは、ヘッドユニットのHMIによって開始されたものを意味する。まず、イベント1902をヘッドユニットHMIから受信する。単純な例として、イベント1902は、音楽プレーヤ・アプリケーションが携帯電話上で実行されている場合の、再生(PLAY)に対応するボタン押下げとすることができる。このイベントは、図16に例示するように、HUPを介して伝達される。図に示すように、JavaScript(登録商標)インタラプタ1910をHAP内に含め、JavaScript(登録商標)インタラプタ(割込み要素)1910は、JavaScriptマネージャ1912、アブストラクト(抽象)JavaScript(登録商標)コンポーネント1920、アプリケーションJavaScript1930、及び状態マネージャ・コンポーネント1932を含む。アプリケーションJavaScript(登録商標)は、「ノマディック・アプリケーション」1940として示すユーザ・アプリケーションに特有であり、アプリケーション・プロキシ・インタフェース1942を含む。この種のJavaScript(登録商標)インタラプタは、携帯電話「SDK(Software Development Kit:ソフトウェア開発キット)」において一般的に利用可能である。
【0156】
アブストラクトJavaScript(登録商標)は、メッセージをアプリケーションJavaScript(登録商標)用に変換し、アプリケーションJavaScript1910は、そのアプリケーション・ビジネス・ロジックを、上記HMIイベント時に実行する。ユーザ・アプリケーションに対する呼出しが適切であれば、メッセージまたは呼出しをHAPメッセージ・ハンドラに送信する(1950)。HAPメッセージ・ハンドラは、このメッセージをユーザ・アプリケーションに送信する(「invokeApplicationCallback(アプリケーション・コールバックを起動)」)1952。このアプリケーションは、応答をメッセージ・ハンドラに送信する(「aqSendMsg(確認応答メッセージ送信)」)1954。メッセージ・ハンドラは、このメッセージを変換することができ、アブストラクトJavaScript(登録商標)は、変換メッセージ・ロジックを実行して、適切なメッセージヲアプリケーションJavaScript(登録商標)に送信することができる。アプリケーションJavaScript(登録商標)は、そのビジネス・ロジックを実行して、状態及びコンテンツ1932を記憶または更新し、応答をテンプレート・フォーマットに変換して、HMIに送信する、1960参照。
【0157】
図20は、同期メッセージの場合の、ソフトウェア・コンポーネント間の相互作用の一例を示すメッセージまたは信号伝達図を含み、同期メッセージは、携帯電話上で実行中のユーザ・アプリケーションによって開始されたものを意味する。まず、このアプリケーションは、HAPによって受信したメッセージを送信する、2010参照。HAPメッセージ・ハンドラ2012は、このメッセージをアプリケーションJavaScript(登録商標)に送信し、アプリケーションJavaScript(登録商標)は、そのロジックを呼び出し、状態及びコマンドを記憶またはフェッチし、必要であれば、HMI更新メッセージ2030を生成する。
【0158】
一例では、システムが提供される。このシステムは車載ヘッドユニット、サーバーコンピュータを含み、このヘッドユニットは、少なくとも一種類の汎用的なアプリケーション表示スクリーンを実現し、このサーバーコンピュータは、モバイルネットワーク上で携帯電話と通信するように構成され、このサーバーコンピュータは、さらに、特定のユーザ・アプリケーションに関連する電話機アプリケーション情報を伝達するように構成され、このサーバーは、この電話機アプリケーション情報を、モバイルネットワーク経由で携帯電話に伝達し、この電話機アプリケーション情報は、特定のユーザ・アプリケーションプログラムのユーザ・インタフェースを拡張して、車載ヘッドユニットの汎用的なアプリケーション表示スクリーンを利用することを可能にする。
【0159】
一例では、上記システムが、携帯電話において実行可能なHAPソフトウェア・アプリケーション、及びヘッドユニット上で実行可能なHUPソフトウェア・アプリケーションを含み、これらのHAP及びHUPは、メッセージまたはイベントを相互間で通信するように構成され、かつ、電話機アプリケーション情報のアスペクト(様相)を利用して、携帯電話上の特定のユーザ・アプリケーションプログラムが、車載ヘッドユニットの汎用的なアプリケーション表示スクリーンと相互作用することを可能にするように構成されている。一例では、ヘッドユニットが、携帯電話上の特定のユーザ・アプリケーションプログラムと相互作用するように特別に開発されたHMIアプリケーション・ロジックをインストールまたは実行しない。一例では、上記HAPが、コンテンツ、テキスト、及び画像のうち1つ以上をHUPに送信し、上記汎用的なアプリケーション表示スクリーンに、当該汎用的なアプリケーション表示スクリーンの所定のテンプレート・レイアウトに応じてレンダリングするように構成されている。一例では、上記HAPソフトウェア・アプリケーション及びHUPソフトウェア・アプリケーションの各々が、スクリプト言語で実現される。一例では、上記電話機アプリケーション情報が、特定のユーザ・アプリケーションプログラムの実行に関連した安全方策を実現するためのデータを含む。一例では、上記HAPが、メッセージ処理コンポーネント、及びこのメッセージ処理コンポーネントに結合された少なくとも1つのプロトコル・スタックを含んで、ヘッドユニットと通信し、このメッセージ処理コンポーネントは、特定のユーザ・アプリケーションプログラムに関連する少なくとも1つのスクリプト言語コンポーネントを含み、このスクリプト言語コンポーネントは、対応するテンプレート・メッセージ変換コンポーネントを含み、このメッセージ変換コンポーネントは、対応するユーザ・アプリケーションプログラムによって生成された要求及び応答メッセージを、車載ヘッドユニットのテンプレートベースの汎用的なアプリケーション表示スクリーンに適合したフォーマットに変換するように構成されている。一例では、上記スクリプト言語コンポーネントが、対応するユーザ・アプリケーション・ロジックを含んで、ヘッドユニット内の特定のユーザ・アプリケーション・ロジックをなくす。一例では、上記スクリプト言語コンポーネントが、対応するユーザ・アプリケーション・ロジックについてのアプリケーション状態を維持して、ヘッドユニット内で状態を維持することをなくす。
【0160】
一例では、携帯電話用の、コンピュータで実現される方法を実行する。このコンピュータ実現方法は、携帯電話上にインストールされたユーザ・アプリケーションプログラムを識別するステップと;識別したユーザ・アプリケーションに特有の情報を、リモートサーバーに要求するステップと;上記情報の要求に応答して、リモートサーバーからダウンロードした電話機アプリケーション情報を受信するステップとを含み、この電話機アプリケーション情報は、識別したユーザ・アプリケーションプログラムのユーザ・インタフェースを拡張して、車載ヘッドユニットの汎用的な表示スクリーンを利用することを可能にする。
【0161】
一例では、上記コンピュータで実現される方法が、HAPソフトウェア・アプリケーションを携帯電話上にインストールするステップと;車載ヘッドユニット上で実行可能なHUPソフトウェア・アプリケーションをインストールするステップとを含み、これらのHAP及びHUPは、メッセージまたはイベントを相互間で通信するように構成され、かつ、上記電話機アプリケーション情報のアスペクトを利用して、携帯電話上の上記識別したユーザ・アプリケーションプログラムが、車載ヘッドユニットの汎用的なアプリケーション表示スクリーンと相互作用することを可能にする。
【0162】
一例では、上記コンピュータで実現される方法が、上記HAPソフトウェア・アプリケーションにおいて、対応するユーザ・アプリケーションプログラムによって生成された要求及び応答メッセージを、車載ヘッドユニットのテンプレートベースの汎用的なアプリケーション表示スクリーンに適合したフォーマットに変換するステップを含む。
【0163】
一例では、上記コンピュータで実現される方法が、上記HAPソフトウェア・アプリケーションにおいて、車載ヘッドユニットから受信したメッセージまたはイベントを、対応するユーザ・アプリケーションプログラムに適合したフォーマットに変換するステップを含む。
【0164】
一例では、上記コンピュータで実現される方法が、上記HAPソフトウェア・アプリケーションにおいて、対応するユーザ・アプリケーションプログラムによって生成された要求メッセージを、車載ヘッドユニットのテンプレートベースの汎用的な表示スクリーンに適合したフォーマットに変換して、コンテンツ、テキスト、及び画像のうち1つ以上を、車載ヘッドユニットの汎用的なアプリケーション表示スクリーン上にレンダリングするステップを含む。
【0165】
一例では、上記コンピュータで実現される方法が、メッセージをヘッドユニットから受信するステップと;受信したメッセージに応答して、ユーザ・アプリケーションプログラムと相互作用するステップと;このユーザ・アプリケーションプログラムによって提供された結果を、ヘッドユニットに返すステップとを含む。一例では、上記コンピュータで実現される方法が、上記結果を、車載ヘッドユニットのテンプレートベースのアプリケーション表示スクリーンに適合したフォーマットに変換するステップを含む。一例では、上記コンピュータで実現される方法が、ヘッドユニットからのボタン押下げイベント・メッセージを、現在のユーザ・アプリケーションプログラム状態に基づき、かつ以前にヘッドユニットに表示用に送信されたボタン識別子に基づいて変換するステップを含む。
【0166】
一例では、スマートホンのユーザ・アプリケーションのユーザ・インタフェースを、車載ヘッドユニットのHMIに拡張する方法が提供される。この方法は、ユーザ・アプリケーションプログラムをスマートホンにインストールするステップと;スマートホンを車載ヘッドユニットに通信結合するステップと;HAPソフトウェア・コンポーネントをスマートホンにおいて実行するステップとを含み、上記HAPは、ユーザ・アプリケーションと相互作用するためのAPI、及び車載ヘッドユニットと通信するためのインタフェースを含み、この方法はさらに、上記HAPにおいて、ボタン押下げ通知をヘッドユニットのHMIから受信するステップと;上記HAPにおいて、ボタン押下げ通知を、実行中のユーザ・アプリケーションに特有のUI(User Interface:ユーザ・インタフェース)制御にマッピングするステップと;上記HAPにおいて、このUI制御を、実行中のユーザ・アプリケーションに伝達するステップとを含む。
【0167】
一例では、上記マッピングが、以前に上記HAPからヘッドユニットに表示用に送信された、選択されたボタンを車載ヘッドユニットの汎用的なタッチスクリーン・ディスプレイ上で視覚的に識別するための視覚的なボタン識別子に基づく。
【0168】
一例では、上記方法が、ユーザ・アプリケーションプログラム状態を上記HAP内に維持して、ユーザ・アプリケーションプログラム状態をヘッドユニット内に維持することをなくすステップを含む。
【0169】
効率的なヘッドユニット通信統合
HTTPは、自動車IVI(In-Vehicle Infotainment:車載インフォテインメント(情報娯楽))の設計者によって選択される通信方法であることが多く、IVIとユーザのセルラ電話機上で実行中のアプリケーションとの間で通信する必要性、及びIVI上で実行中のアプリケーションと、インターネット上または他のIPベースのネットワーク接続上で実行中のコンテンツ及び設定サーバーとの間で通信する必要性が存在する。
【0170】
IVIアプリケーションが、インターネット上または他のIPベースのネットワーク接続上のバックエンドシステムと、HTTPを用いて通信する必要があり、IVIが、インターネット接続をこの通信用の通信経路として有するユーザのセルラ電話機に頼る場合、ユーザのセルラ電話機は、HTTP要求をIVIから受信し、次に、上記IVIアプリケーションの代わりに、セルラ・ネットワークのモバイルIP上の特定エンドポイントに対するHTTP要求を生成して、IVI要求の意図を、インターネット上の当該エンドポイントに導くアプリケーションを含む。
【0171】
また、この同じIP接続上で、上記セルラ電話機アプリケーションは、インターネット上の上記エンドポイントから応答を受信する。一旦、この応答を受信すると、次に、上記セルラ電話機アプリケーションは、この応答を、あたかも元のIVIアプリケーション要求に対する応答であるかのように、IVIアプリケーションに返送する必要がある。このやり方は、セルラ電話機をインターネットへの単純なネットワークアクセス装置として使用する際に(PPP(Point to Point Protocol:ポイント−ポイント・プロトコル)−>IP−>TCP〜セルラ・ネットワーク)、セルラ電話機によって課せられる追加的なコストを回避するために必要になる。
【0172】
セルラ電話機アプリケーションが、IVIアプリケーションとバックエンド・サービスとの間で、HTTP要求のための中間プロキシとして機能する際に、セルラ電話機アプリケーションは、通信に伴う傍受または改竄の恐れをもたらす。こうした構成では、IVIアプリケーションが、標準的なトランスポート・レベル・セキュリティ(伝送レベルの安全性)対策を利用して、バックエンド・サービスとの通信が安全であることを保証することができない、というのは、セルラ電話機アプリケーションが「介入者」として機能するからである。トランスポート・レベル・セキュリティと釣り合ったセキュリティ保証が必要である場合、代わりに、特注のセキュリティを、HTTP上で実現しなければならない。こうした特注のセキュリティが、システムの開発コストに加わり、既存のバックエンド・サービスとの非互換性の可能性をもたらし、システム全体のセキュリティ攻撃の表面を広げる。
【0173】
セルラ電話機アプリケーションが、IVIアプリケーションとバックエンドとの間で、HTTP要求のための中間プロキシとして機能する際に、定義により、セルラ電話機アプリケーションは、使用することができるアプリケーションレベルのプロトコルに制約を与える。こうした構成では、IVIが非HTTPプロトコルを利用することを阻止される。その代わりに、HTTPを通した既存アプリケーションの要求の「通り抜け」をサポートするように、既存アプリケーションを再設計しなければならない。HTTPを通した要求の「通り抜け」は、システムに複雑性及びコストを加え、システムと既存のバックエンド・サービスとの非互換性の可能性をもたらす。
【0174】
HTTP専用プロキシの解決策のこうした多数の問題に応えるために、代案または相補的な解決策は、セルラ電話機アプリケーション内に組み込まれたTCPまたはUDP(User Data protocol:ユーザデータ・プロトコル)プロキシを利用する。
【0175】
図22に、効率的なヘッドユニット通信統合のためのシステムを例示する。
【0176】
システム2200は、ヘッドユニット2201及びモバイル機器2203を含む。ヘッドユニット2201は処理装置2202を含むことができ、処理装置2202は、モバイル機器2203に結合され、モバイル機器2203のリソースを利用することの要求をモバイル機器2203に送信するように構成されている。モバイル機器2203は、この要求を許可するか否かを決定するように構成された処理装置2204を含むことができる。処理装置2204は、この要求を許可することを決定したことに応答して、モバイル機器のプロキシを利用して、通信相手との接続を確立するように構成することができる。
【0177】
図23は、(SOCKet Secure:ソケット・セキュア)SOCKSプロキシ・プロトコルを利用したIVIとバックエンド(リモートサーバー)との間のデータ交換を可能にするスマートホン・アプリケーションを例示する簡略化した通信図である。
【0178】
一実施形態では、標準的なSOCKS(SOCKet Secure:ソケット・セキュア)プロキシを、セルラ電話機アプリケーション内に含める。このSOCKSプロキシは、IVI環境と、より大きなIPネットワークのバックエンドとの間の介在物として機能する。TCPまたはUDP層においてデータをプロキシ(代理伝送)することによって、IVI及びバックエンドは、HTTPプロトコル単独で利用可能であるよりも大きい範囲のネットワーク・サービスを利用することができる。
【0179】
一例では、ヘッドユニット2301が、モバイル機器2303とのSOCKSネゴシエーション(情報交換)を開始して、モバイル機器2303のリソースを利用することの要求を提供すること、例えばSOCKS要求メッセージ2310を送信することができる。モバイル機器2303は、この要求を受信したことに応答して、この要求を許可するか否かを決定する(2313)ように構成することができる。一例では、この要求は、ヘッドユニット2301がモバイル機器2303のリソース、例えばモバイル機器2303の長距離トランシーバを用いて通信する通信相手(即ち、サーバー2305)を指示する。モバイル機器2303は、上記指示された通信相手に関連する識別子に基づいて、上記要求を認可するか否かを決定するように構成することができる。一例では、モバイル機器2303は、上記識別子が、ローカル位置またはリモート位置に記憶されたホワイトリスト内に含まれているか否かを判定するように構成することができ、例えば、この識別子をホワイトリストと比較するように構成することができる。
【0180】
通信相手に基づく許可は、方策実行方式の一部分とすることができる。例えば、モバイル機器2303は、上記要求に関連する加入/アカウント状態をチェックするように構成することができる。モバイル機器2303は、通信相手がホワイトリストに含まれ、かつ加入/アカウント状態が所定状態、例えばアクティブ(有効)状態に相当する場合に、上記要求を許可するか否かを決定するように構成することができる。
【0181】
モバイル機器2303は、上記要求を許可することを決定したことに応答して、通信2316を送信して、上記指示された通信相手との接続を確立するように構成することができる。一例では、上記モバイル機器2303を、上記指示された通信相手に対してソケットを開放して、TCPまたはUDP接続を確立するように構成することができる。
【0182】
モバイル機器2303は、SOCKS要求メッセージ2310に対応するSOCKS完了メッセージ2319を送信するように構成することができる。ヘッドユニット2301は、長距離送信機によって、接続2316上で、サーバー2305と通信(2322)することができる。
【0183】
図24は、IVIとバックエンド(リモートサーバー)との間のデータ交換を可能にするためのトランスペアレント(透過的)プロキシ・サーバー機能を提供するスマートホン・アプリケーションを例示する簡略化した通信図である。
【0184】
他の例では、ヘッドユニット2401が、TCPまたはUDPソケットを、SOCKSネゴシエーションなしに使用し、モバイル機器2303は、IVIのために、TCPまたはUDPソケットを、通信相手のエンドポイントに、トランスペアレント(透過的)にプロキシ(代理伝送)する処理を行う。ヘッドユニット2401は、通信2410を送信して、モバイル機器2303のリソースを利用することの要求を出す。例えば、ヘッドユニット2401は、周知のポートに対してソケットを開放するように構成することができる。
【0185】
モバイル機器2403は、上記要求を許可するか否かを決定する(2413)ように構成することができる。一例では、モバイル機器2403は、当該モバイル機器において上記要求を受信するポートを識別するように構成することができる。モバイル機器2403は、ローカルまたはリモート・マッピングが、上記識別したポートに対応するエントリを含むか否かを判定するように構成することができる。モバイル機器2403は、上記マッピングが当該エントリを含まないものと判定したことに応答して、上記要求を許可しないように構成することができる。モバイル機器2403は、上記マッピングが当該エントリを含むものと判定したことに応答して、通信相手を発見するように構成することができる。一例では、周知のポートから通信相手へのマッピングが、サーバー2405によって提供される。
【0186】
前の例と同様に、通信相手に基づく許可は、方策実行方式の一部分とすることができる。例えば、モバイル機器2403は、上記要求に関連する加入者/アカウント状態をチェックするように構成することができる。モバイル機器2403は、上記マッピングが、上記識別したポートに対応するエントリを含み、かつ、上記加入/アカウント状態が所定状態、例えばアクティブ(有効)状態に相当する場合に、上記要求を許可することを決定するように構成することができる。
【0187】
モバイル機器2403は、通信相手を発見したことに応答して、通信2416を送信して、上記指示された通信相手との接続を確立するように構成することができる。一例では、モバイル機器2403を、上記発見した通信相手に対して開放して、TCPまたはUDP接続を確立するように構成することができる。
【0188】
モバイル機器2303は、通信2410に対応する確認応答2419を送信するように構成することができる。ヘッドユニット2401は、長距離送信機によって、接続2416上で、サーバー2405と通信する(2422)ことができる。
【0189】
図23及び24に関して説明した各例では、IVIアプリケーションとバックエンドとが、フレキシビリティを増加させて通信することができる、というのは、アプリケーション・プロトコルは、もはやHTTPに限定されないからであり、但しHTTPは除外されない。さらに、IVIアプリケーション及びバックエンドは、これらに限定されないが、セキュア・ソケット・レイヤー(SSL:Secure Socket Layer)またはトランスポート層セキュリティ(TLS:Transport Layer Security)を含むトランスポート・レベル・セキュリティを用いて、通信用の強力なセキュリティ保証を提供することができる。これに加えて、中間的なHTTPプロキシがないことが、IVIアプリケーションとバックエンド・サービスとの間で要求をストリーム送信する際に、より大きな効率を可能にする、というのは、中間的なプロキシが要求及び応答を、プロキシ(代理伝送)する前に構文解析する必要がないからである。
【0190】
図25は、SOCKSプロキシ・プロトコル連鎖法を利用した、自動車IVIとバックエンド(リモートサーバー)との間のデータ交換を可能にするスマートホン・アプリケーションを例示する簡略化した通信図である。
【0191】
一例では、プロキシ、例えばSOCKSプロキシを、HUP及びHAP内に含める。これをプロキシ・チェイニングと称する。このプロキシ・チェインは、IVI環境と、より大きなIPネットワーク・バックエンドとの間の介在物として機能する。TCPまたはUDP層においてデータをプロキシ(代理伝送)することによって、IVI及びバックエンドは、HTTPプロトコル単独で利用可能であるよりも大きい範囲のネットワーク・サービスを利用することができる。
【0192】
一例では、ヘッドユニット2501が、SOCKSプロキシ・クライアントを有するIVIアプリケーション2502、及びSOCKSプロキシ・サーバーを含むことができる。ヘッドユニット2501は、SOCKSプロキシ・クライアントを有するIVIアプリケーション2502、及びSOCKSプロキシ・サーバー2504を含むことができる。ヘッドユニット2501は、モバイル機器2503とのSOCKSネゴシエーションを開始して、モバイル機器2503のリソースを利用することの要求を出すことができ、例えば、IVIアプリケーション2502から発生するSOCKS要求メッセージのためのSOCKSプロキシ・チェイニング通信2510を送信することができる。
【0193】
ヘッドユニット2501は、プロキシ・チェイニング通信2510を送信する前に、許可チェックの最初の部分を実行するように構成することができる。例えば、ヘッドユニット2501は、加入/アカウント状態をチェックするように構成することができ、一例では、加入/アカウント状態が、所定の加入/アカウント状態、例えば有効(アクティブ)な加入/アカウント状態に相当するものと判定したことに応答して、プロキシ・チェイニング通信2510を送信するように構成することができる。加入/アカウント状態が、所定の加入/アカウント状態に相当しない場合、例えば、無効な加入/アカウント状態に相当する場合、プロキシ・チェイニング通信2510を送信しない。
【0194】
モバイル機器2503は、SOCKSプロキシ・チェイニング通信2510の要求を受信したことに応答して、この要求を許可するか否かを決定する(2513)ように構成することができる。一例では、モバイル機器2503によるこの決定が、許可方式の後続部分である。一例では、この後続部分が、上記要求に関連する通信相手に基づくことができる。例えば、上記要求は、ヘッドユニット2501が、モバイル機器2503のリソース、例えばモバイル機器2503の長距離トランシーバを用いて通信するための通信相手(即ち、サーバー2505)を指示することができる。モバイル機器2503は、指示された通信相手に関連する識別子に基づいて、上記要求を認可するか否かを決定するように構成することができる。一例では、モバイル機器2503は、上記識別子が、ローカル位置またはリモート位置に記憶されたホワイトリストに含まれているか否かを判定するように構成することができ、例えば、この識別子をホワイトリストと比較するように構成することができる。
【0195】
上記の例では、許可方式の実行を、ヘッドユニット2501とモバイル機器2503とに割り振る。他のSOCKS・プロキシ・プロトコル・チェイニングの例では、許可方式の実行を、ヘッドユニット2501またはモバイル機器2503によって実行することができる。
【0196】
モバイル機器2503は、上記要求を許可したことに応答して、通信2516を送信して、上記指示された通信相手との接続を確立することができる。一例では、モバイル機器2503は、上記指示された通信相手に対してソケットを開放して、TCPまたはUDP接続を確立するように構成することができる。
【0197】
モバイル機器2503は、SOCKS要求メッセージ2510に対応するSOCKS完了メッセージ2519を送信するように構成することができる。ヘッドユニット2501は、長距離トランシーバを介して接続2516上で通信する(2522)ことができる。
【0198】
図26は、トランスペアレント・プロキシ・チェイニングを利用した、IVIとバックエンド(プロキシ・サーバー)との間の可能にするためのトランスペアレント・プロキシ・サーバー機能を提供するソフトウェア・アプリケーションを例示する簡略化した通信図である。
【0199】
他の例では、IVIアプリケーションがSOCKSクライアント・プロトコルを実現する必要がない。その代わりに、IVIアプリケーションは、TCPまたはUDPソケットを、SOCKSネゴシエーションなしに使用し、ヘッドユニット・アプリケーションは、IVIのために、TCPまたはUDPソケットを、通信相手のエンドポイントに、トランスペアレント(透過的)にプロキシ・チェイニングする処理を行う。
【0200】
一例では、ヘッドユニット2601が、SOCKSプロキシ・クライアントなしのIVIアプリケーション2602を含むことができる。IVIアプリケーション2602は、周知のポートに対してソケットを開放して、リモートサーバーのリソースを利用することの要求を開始することができる。
【0201】
前の例と同様に、ヘッドユニット2601は、周知のポートに対してソケットを開放する前に、許可チェックの最初の部分を実行するように構成することができる。例えば、ヘッドユニット2601は、加入/アカウント状態をチェックするように構成することができ、一例では、加入/アカウント状態が、所定の加入/アカウント状態、例えば有効(アクティブ)な加入/アカウント状態に相当するものと判定したことに応答して、周知のポートに対してソケットを開放するように構成することができる。加入/アカウント状態が所定の加入/アカウント状態に相当しない場合、例えば、無効な加入/アカウント状態に相当する場合、ソケットは開放しない。
【0202】
モバイル機器2603は、SOCKS要求メッセージ2610の要求を受信したことに応答して、この要求を許可するか否かを決定する(2613)ように構成することができる。一例では、モバイル機器2603によるこの決定を、許可方式の後続部分とすることができる。一例では、この後続部分が、上記要求に関連する通信相手に基づくことができる。例えば、上記要求は、ヘッドユニット2601が、モバイル機器2603のリソース、例えばモバイル機器2603の長距離トランシーバを用いて通信するための通信相手(即ち、サーバー2605)を指示することができる。モバイル機器2603は、上記指示された通信相手に関連する識別子に基づいて、上記要求を許可するか否かを判定するように構成することができる。一例では、モバイル機器2603は、上記識別子が、ローカル位置またはリモート位置に記憶されたホワイトリストに含まれているか否かを判定するように構成することができ、例えば、上記識別子をホワイトリストと比較するように構成することができる。
【0203】
他のプロキシ・チェイニングの例では、許可方式の実行を、ヘッドユニット2601またはモバイル機器2603によって実行することができる。ヘッドユニット2601によって実行される許可方式の例として、ヘッドユニット2601は、ソケットの開放に応答して、上記要求を許可するか否かを決定するように構成することができる。例えば、ヘッドユニット2601は、トランスペアレントなプロキシ・サーバー2604において上記要求を受信するポートを識別するように構成することができる。ヘッドユニット2601は、ローカルまたはリモート・マッピングが、上記識別されたポートに対応するエントリを含むか否かを判定するように構成することができる。ヘッドユニット2601は、このマッピングが上記エントリを含まないことに応答して、上記要求を許可しないように構成することができる。ヘッドユニット2601は、このマッピングが上記エントリを含むものと判定したことに応答して、通信相手を発見するように構成することができる。ヘッドユニット2601は、こうした通信相手の発見を、モバイル機器2603と共有するように構成することができる。
【0204】
どちらの装置が許可を実行するかにかかわらず、モバイル機器2603は、上記通信相手の発見後に、通信2616を送信して、上記指示された通信相手との接続を確立することができる。一例では、モバイル機器2603は、発見した通信相手に対してソケットを開放して、TCPまたはUDP接続を確立するように構成することができる。
【0205】
モバイル機器2603は、通信2610に対応して、SOCKS完了メッセージ2619を送信するように構成することができる。ヘッドユニット2601は、長距離トランシーバを介して、接続2616上で、サーバー2605と通信(2622)することができる。
【0206】
図25及び26に関して説明した各例では、IVIアプリケーションとバックエンドとが、フレキシビリティを増加させて通信することができる、というのは、アプリケーション・プロトコルは、もはやHTTPに限定されないからであり、但しHTTPは除外されない。さらに、IVIアプリケーション及びバックエンドは、これらに限定されないが、SSLまたはTLSを含むトランスポート・レベル・セキュリティを用いて、通信用の強力なセキュリティ保証を提供することができる。これに加えて、中間的なHTTPプロキシがないことが、IVIアプリケーションとバックエンド・サービスとの間で要求をストリーム送信する際に、より大きな効率を可能にする、というのは、中間的なプロキシが要求及び応答を、プロキシ(代理伝送)する前に構文解析する必要がないからである。
【0207】
一例では、方法が提供される。この方法は、モバイル機器と車載ヘッドユニットとを結合するステップと;モバイル機器において、車載ヘッドユニットが当該モバイル機器のリソースを利用することの要求を受信するステップと;モバイル機器によって、この要求を許可するか否かを決定するステップと;この要求を許可することを決定したことに応答して、モバイル機器のプロキシを利用して、通信相手との接続を確立するステップとを含む。
【0208】
一例では、上記決定するステップが、上記通信相手に関連する識別子に基づく。一例では、上記方法が、上記識別子または通信相手がホワイトリストに含まれるか否かを判定するステップを含む。
【0209】
一例では、上記方法が、モバイル機器において上記要求を受信するポートを識別するステップと;マッピングが上記エントリを含むものと判定したことに応答して、上記通信相手を発見するステップとを含む。
【0210】
一例では、モバイル機器のプロキシが、上記要求を車載ヘッドユニットから送信した第2プロキシ・サーバーとは異なる第1プロキシ・サーバーを具えている。一例では、この第1プロキシ・サーバーが、第1SOCKSプロキシ・サーバーを具えている。一例では、上記決定するステップが、上記通信相手に関連する識別子に基づく。一例では、上記方法が、上記識別子または通信相手がホワイトリストに含まれるか否かを判定するステップを含む。一例では、上記方法が、モバイル機器において上記要求を受信するポートを識別するステップと;マッピングが、この識別したポートに対応するエントリを含むか否かを判定するステップと;上記マッピングが、このエントリを含むものと識別したことに応答して、上記通信相手を発見するステップを含む。一例では、モバイル機器によって、上記要求を許可するか否かを決定するステップが、上記要求に関連する加入/アカウント状態をチェックすることと;上記マッピングが上記エントリを含み、かつ上記加入/アカウント状態が所定の加入/アカウント状態に相当するものと判定したことに応答して、上記要求を許可することとをさらに含む。
【0211】
一例では、特別に構成されたメモリ装置が提供される。このメモリ装置は命令を記憶し、これらの命令は、処理装置による実行に応答して、この処理装置に動作を実行させ、これらの動作は、モバイル機器とヘッドユニットを結合させることと;モバイル機器において、車載ヘッドユニットが当該モバイル機器のリソースを利用することの要求を受信することと;モバイル機器によって、この要求を許可するか否かを決定することと;この要求を許可することを決定したことに応答して、モバイル機器のプロキシを利用して、通信相手との接続を確立することとを含む。
【0212】
一例では、上記決定することが、上記通信相手に関連する識別子に基づく。一例では、上記動作が、上記識別子または通信相手が、ホワイトリストに含まれるか否かを判定することを含む。
【0213】
一例では、上記動作が、モバイル機器において上記要求を受信するポートを識別することと、マッピングが、この識別したポートに対応するエントリを含むか否かを判定することと;上記マッピングが、このエントリを含むものと判定したことに応答して、上記通信相手を発見することを含む。
【0214】
一例では、モバイル機器のプロキシが、上記要求を車載ヘッドユニットから送信した第2プロキシ・サーバーとは異なる第1プロキシ・サーバーを具えている。一例では、この第1プロキシ・サーバーが、第1SOCKSプロキシ・サーバーを具えている。一例では、上記決定することが、上記通信相手に関連する識別子に基づく。一例では、上記動作が、上記識別子または通信相手がホワイトリストに含まれるか否かを判別することを含む。一例では、上記動作が、モバイル機器において上記要求を受信するポートを決定することと;マッピングが、この識別したポートに対応するエントリを含むか否かを判定することと;上記マッピングが、このエントリを含むものと判定したことに応答して、上記通信相手を発見することとを含む。一例では、モバイル機器によって上記要求を許可することが、上記要求に関連する加入/アカウント状態をチェックすることと;上記マッピングが上記エントリを含み、かつ、上記加入/アカウント状態が所定の加入/アカウント状態に相当するものと判定したことに応答して、上記要求を許可することを決定することを、さらに含む。
【0215】
本発明の基になる原理から逸脱することなしに、上述した実施形態の細部に多数の変更を加えることができることは、当業者にとって自明である。従って、本発明の範囲は、以下の特許請求の範囲のみによって定められる。
【0216】
以上に説明した装置の大部分が、ハードウェア及び関連するソフトウェアを具えている。例えば、一般的なナビゲーション装置は、1つ以上のプロセッサ、及びこれらのプロセッサ上で実行可能なソフトウェアを含んで、上述した動作を実行することが多い。本明細書では、「ソフトウェア」を、一般的に理解されている意味で、プログラムまたはルーチン(サブルーチン、オブジェクト、プラグイン、等)、並びに機械またはプロセッサが使用可能なデータを参照すべく用いる。周知のように、コンピュータプログラムは、一般に、機械可読またはコンピュータ可読の記憶媒体に記憶された命令を含む。本発明の一部の実施形態は、デジタルメモリのような機械可読またはコンピュータ可読の媒体に記憶された、実行可能なプログラムまたは命令を含むことができる。特定実施形態のいずれにおいても、通常の意味での「コンピュータ」が要求されることを暗に意味しない。例えば、本明細書に記載した構成要素のような装置内で、種々のプロセッサを、組み込むか他の方法で用いることができる。
【0217】
ソフトウェアを記憶するメモリも周知である。一部の実施形態では、所定のプロセッサに関連するメモリを、プロセッサと同じ物理的デバイス内に格納することができ(「オンボード」メモリ)、例えば、RAM(Random Access Memory:ランダムアクセスメモリ)またはフラッシュメモリが、集積回路型マイクロプロセッサ等の中に配置される。他の例では、上記メモリが、外付けディスクドライブ(ディスク駆動装置)、記憶アレイ、またはポータブルなフラッシュ・キーフォブのような独立型装置を含む。こうした場合、上記メモリと上記デジタルプロセッサとが、動作的に互いに結合されるか、例えばI/O(Input/Output:入出力)ポート、ネットワーク接続、等によって互いに通信する際に、上記メモリが上記プロセッサと「関連する」ようになり、これにより、上記プロセッサが、上記メモリ上に記憶されたファイルを読み出すことができる。関連するメモリは、設計により(ROM:Read Only Memory:読出し専用メモリ)、あるいは許可設定により、「読出し専用」にすることができる。他の例は、WORM(Write, Once Read Many:追記型光ディスク)、EPROM(Erasable Programmable ROM:消去可能プログラマブルROM)、EEPROM(Electrically Erasable Programmable ROM:電気的消去可能プログラマブルROM)、FLASH(フラッシュメモリ)、等を含むが、これらに限定されない。これらの技術は、固体半導体デバイスの形で実現されることが多い。他のメモリは、従来の回転ディスクドライブのような可動部分を含むことができる。こうしたメモリのすべてが「機械可読」または「コンピュータ可読」であり、本明細書に記載した機能を実現するための実行可能な命令を記憶するために用いることができる。
【0218】
「ソフトウェア製品」とは、一連の実行可能な命令がマシン可読な形式で記憶され、これにより、適切な機械またはプロセッサが、当該ソフトウェア製品への適切なアクセスにより、これらの命令を実行して、これらの命令によって実現されるプロセス(工程)を実行することができるメモリ装置を称する。ソフトウェア製品は、時として、ソフトウェアを配給するために使用される。以上にまとめて挙げたものを限定なしに含む、あらゆる種類の機械可読メモリを用いて、ソフトウェア製品を作製することができる。とは言え、ソフトウェアは、電子的伝送(「ダウンロード」)によって配給することができることも知られ、この場合、一般に、伝送の送信側、または受信側、あるいはその両方に、対応するソフトウェア製品が存在する。
【0219】
本発明の原理を、その好適な実施形態の形で説明し図示してきたが、こうした原理を逸脱することなしに、本発明の構成及び細部を変更することができることは明らかである。すべての変更及び変形が、以下の請求項の精神及び範囲内に入ることを主張する。
図1
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13A
図13B
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26