説明

プログラム提供装置および車載情報システム

【課題】 車載情報システム用に開発されたプログラムの動作検証および提供に好適なプログラム提供装置およびそれによって提供されたプログラムを実行する車載情報システムを提供する。
【解決手段】 車載情報システムのハードウェア環境およびソフトウェア環境をエミュレートするエミュレート手段と、車載情報システム用に開発されたプログラムを受け取るプログラム受信手段と、車載情報システムのリソース状態および環境状態を制約条件として保持する制約条件保持手段21と、制約条件保持手段に保持された制約条件に基づいてプログラムの動作を制限するプログラム実行制限手段22と、エミュレート手段によって提供されるリソースを用いて、プログラム受信手段から受け取ったプログラムを、プログラム実行制限手段による制限にしたがって実行するプログラム実行手段112とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、開発された車載情報システム用のプログラムの動作安全性の確認を、実機上で動作確認することなく行って車載情報システムに提供するプログラム提供装置およびこのプログラム提供装置によって提供されたプログラムを実行する車載情報システムに関する。
【背景技術】
【0002】
近年のパーソナルコンピュータや携帯電話などといったインターネットに接続可能な機器は、インターネットを介して様々なサーバからプログラムをダウンロードすることができる。そのため、誰でも自由にプログラムを開発してサーバにアップロードし、このサーバにアップロードされたプログラムを目的の機器にダウンロードして実行することができる。しかしながら、悪意のあるプログラムや設計ミスを含むプログラムなどをダウンロードして実行することによって、機器の動作不良、機器内の情報の漏洩などといった被害が出る恐れがある。
【0003】
そこで、従来は、プログラム開発元で開発されたプログラムの動作テストを認証機関において行い、認証機関が、必要なリソースにのみアクセスを許可する情報を付加することによってプログラムの動作安全性を確保している。例えば、特許文献1に開示された通信端末のアクセス制御方法では、認定機関は、コンテンツプロバイダから認定を依頼された携帯電話機用のJava(登録商標、以下省略)アプリを審査し、このJavaアプリが、コンテンツプロバイダから申請されたリソースにアクセスするプログラムとして所定の動作基準を満たしており、リソースにアクセスできる認定プログラムであると認定した場合に、リソースを指定するリソース指定情報を認定サーバによりJavaアプリに付与する。携帯電話機は、認定機関により認定されたJavaアプリの実行中にアクセスできるリソースを、このJavaアプリに付与されているリソース指定情報によって指定されるリソースに制限する。
【0004】
【特許文献1】特開2003−283494号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、例えばカーナビゲーション装置のような車載情報システムに実装されるプログラムでは、携帯電話機などとは異なり、安全上の観点から、車の動作状態、例えば走行中であるか停止中であるかに応じてプログラムの動作を制限する必要がある。したがって、特許文献1に開示された方法では十分な動作検証および適切なアクセス許可を付与できない。また、広く一般のプログラマにプログラムの開発を促すためには、動作検証と検証したプログラムの提供を一緒に行うのが都合がよい。
【0006】
そこで、この発明は、車載情報システム用に開発されたプログラムの動作検証および提供に好適なプログラム提供装置およびそれによって提供されたプログラムを実行する車載情報システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
この発明に係るプログラム提供装置は、上記目的を達成するために、車載情報システムのハードウェア環境およびソフトウェア環境をエミュレートするエミュレート手段と、車載情報システム用に開発されたプログラムを受け取るプログラム受信手段と、車載情報システムのリソース状態および環境状態を制約条件として保持する制約条件保持手段と、制約条件保持手段に保持された制約条件に基づいてプログラムの動作を制限するプログラム実行制限手段と、エミュレート手段によって提供されるリソースを用いて、プログラム受信手段から受け取ったプログラムを、プログラム実行制限手段による制限にしたがって実行するプログラム実行手段とを備えている。
【0008】
また、この発明に係る車載情報システムは、車載情報システム用に開発されたプログラムおよび証明情報を受信するプログラム受信手段と、プログラム受信手段から受け取った証明情報を解読して認証するプログラム認証手段と、プログラム認証手段から受け取った認証結果に応じてプログラムの動作を制限するプログラム実行制限手段と、プログラム受信手段から受け取ったプログラムを、プログラム実行制限手段による制限にしたがって実行するプログラム実行手段とを備えている。
【0009】
また、この発明に係る記憶媒体は、車載情報システムのハードウェア環境およびソフトウェア環境をエミュレートするエミュレート手段と、車載情報システム用に開発されたプログラムを受け取るプログラム受信手段と、車載情報システムのリソース状態および環境状態を制約条件として保持する制約条件保持手段と、制約条件保持手段に保持された制約条件に基づいてプログラムの動作を制限するプログラム実行制限手段、エミュレート手段によって提供されるリソースを用いて、プログラム受信手段から受け取ったプログラムを、プログラム実行制限手段による制限にしたがって実行するプログラム実行手段とを備えたコンピュータで実行可能なプログラムを記憶している。
【発明の効果】
【0010】
この発明に係るプログラム提供装置によれば、リソース状態と環境状態を制約条件として設定することによって、車載情報システムのような環境における動作確認をエミュレート手段を用いて実施することができる。したがって、車載情報システム用に開発されたプログラムの動作検証および提供に好適である。
【0011】
この発明に係る車載情報システムによれば、受信した証明情報に基づきプログラムの動作を制限するように構成したので、プログラム提供装置によって提供されたプログラムの検証が不十分であっても、そのプログラムを正当に実行することができる。
【0012】
この発明に係る記憶媒体によれば、上述したプログラム提供装置と同様の効果を奏する。
【発明を実施するための最良の形態】
【0013】
以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。以下では、この発明に係る車載情報システムとしてカーナビゲーション装置を例に挙げて説明する。また、車載情報システム用に開発されたプログラムはJavaアプリケーションプログラム(以下「Javaアプリ」と略する)であるものとし、プログラム提供装置は、パーソナルコンピュータ上で動作するカーナビゲーション装置用Javaアプリの動作テストプログラムなどから構成されるものとする。また、カーナビゲーション装置は、プログラム提供装置から提供されたJavaアプリのみ実行可能なものとする。
実施の形態1.
図1は、この発明の実施の形態1に係る車載情報システムとしてのカーナビゲーション装置のハードウェア構成を示すブロック図である。このカーナビゲーション装置は、CPU(Central Processing Unit)1、ROM(Read Only Memory)2、RAM(Random Access Memory)3、操作部インタフェース4、出力部インタフェース5、通信部インタフェース6および外部記録装置インタフェース7から構成されている。
【0014】
CPU1は、ROM2に格納されているプログラムに従って演算処理を行うことにより、カーナビゲーション装置の全体を制御する。ROM2は、地図データやプログラム(ナビゲーションプログラム等)を記憶する。このROM2に記憶されている内容はCPU1によって読み出される。RAM3は、CPU1によるプログラム実行時に、データを一時的に記憶するワークエリアとして使用される。
【0015】
操作部インタフェース4には、リモートコントローラ(以下、「リモコン」と略する)41およびマイクロフォン(以下、「マイク」と略する)42が接続されている。この操作部インタフェース4は、リモコン41およびマイク42から入力された指示をCPU1に送る制御を行う。出力部インタフェース5には、ディスプレイ51およびスピーカ52が接続されている。この出力部インタフェース5は、CPU1から送られてく出力データをディスプレイ51およびスピーカ52に送る制御を行う。
【0016】
通信部インタフェース6には、例えば携帯電話やDSRC(Dedicated Short Range Communication)車載器といった通信機器61および車内LAN(Local Area Network)62が接続されている。通信部インタフェース6は、CPU10と通信機器61および車内LAN62との間の通信を制御する。CPU1は、車内LAN62から通信部インタフェース6を介して、例えば速度や燃料の残量といった車両情報を取得する。
【0017】
外部記録装置インタフェース7には、例えばCD(Compact Disc)やDVD(Digital Versatile Disk)といった記録メディアからデータを読み込む外部記録装置ドライブ71が接続されている。この外部記録装置インタフェース7は、外部記録装置ドライブ71とCPU1との間のデータの送受を制御する。
【0018】
図2は、図1に示すカーナビゲーション装置のソフトウェア構成を示す図である。カーナビゲーション装置のオペレーティングシステム(以下、「カーナビゲーションOS」と略する)は、カーナビゲーション装置のハードウェア(以下、「カーナビゲーションハードウェア」という)を動作させるための種々のデバイスドライバの上に形成されている。このカーナビゲーションOSの上位に、ライブラリおよびアプリケーションプログラムインタフェース(以下、「API:Application Program Interface」という)が設けられ、さらに、その上位に、プログラムによって構成されたナビゲーションサービス10、Javaアプリ11、Javaアプリ実行部(JavaVM;Java Virtual Machine)12、Javaアプリ管理部13およびJavaアプリ認証部14が設けられている。
【0019】
ナビゲーションサービス10は、現在地を表示し、または目的地を設定してルート案内を行うといったカーナビゲーションの基本的なサービスを行う。Javaアプリ11は、例えばゲームや走行支援プログラムといったコンテンツである。Javaアプリ実行部12は、Javaアプリ11を実行する環境を提供する。Javaアプリ管理部13は、Javaアプリ11の動作全体を管理する。Javaアプリ認証部14は、Javaアプリ11の認証を行う。
【0020】
ナビゲーションサービス10は、JavaVMインタフェースモジュール10aを備えている。また、Javaアプリ実行部12は、ナビゲーションサービスインタフェースモジュール12aを備えている。これらJavaVMインタフェースモジュール10aとナビゲーションサービスインタフェースモジュール12aとが相互に通信することにより、ナビゲーションサービス10とJavaアプリ実行部12とが連携して動作する。
【0021】
図3は、この発明の実施の形態1に係るプログラム提供装置の主要な部分の構成を示す図である。このプログラム提供装置は、ハードウェア環境をエミュレートするハードウェアエミュレータおよびソフトウェア環境をエミュレートするソフトウェアエミュレータによって構成された動作テストプログラム20、ナビ画面出力ウインドウ31、操作入力ウインドウ32およびナビ環境設定ウインドウ33を備え、上述したカーナビゲーション装置のハードウェアおよびソフトウェアの機能をパーソナルコンピュータ上で再現するプログラムとして構成されている。ハードウェアエミュレータおよびソフトウェアエミュレータは、この発明のエミュレート手段に対応する。
【0022】
動作テストプログラム20は、カーナビゲーション装置の実機には存在しない構成として、制約条件保持部21、Javaアプリ実行制限部22および証明部23を備えている。なお、カーナビゲーション装置の実機に存在する構成部分には、図1で使用した符号に「100」を加えた符号を付してあり、各部の機能はカーナビゲーション装置の実機の機能と同じである。
【0023】
制約条件保持部21は、この発明の制約条件保持手段に対応する。この制約条件保持部21には、動作テストプログラム20の提供者によってあらかじめ設定されている制約条件が保持されている。この制約条件保持部21には、カーナビゲーション装置のリソース状態と環境状態とが対応づけて保持されており、例えば図4に示すように、動作可能な状態が列挙されたファイルとして形成されている。図4では、例えば画面表示は停車中にのみ可能であることを示している。
【0024】
制約条件として制約条件保持部21に保持されるリソース状態には、ハードウェアリソースとして、例えばCPU使用率、メモリ使用量、ハードディスク使用量(換言すればプログラムサイズ)、バス使用率およびネットワーク使用可否などの少なくとも1つが含まれる。また、ソフトウェアリソースとして、APIの使用可否、ライブラリの使用可否、特定プログラムの実行状態の少なくとも1つが含まれる。また、環境状態には、例えば、走行中または停止中を表す走行状態、走行速度、位置、向き、高度、温度、湿度、天気、道路種別などの少なくとも1つが含まれる。
【0025】
Javaアプリ実行制限部22は、この発明のプログラム実行制限手段に対応し、制約条件保持部21に保持されている制約条件に従って、Javaアプリ実行部112で実行されるJavaアプリの動作を制限する。証明部23は、動作確認ができたJavaアプリに対して、あらかじめ埋め込まれている鍵を用いてJavaアプリの証明情報を生成する。
【0026】
また、ナビ画面出力ウインドウ31は、カーナビゲーション装置においてはディスプレイ51に表示される画面を、パーソナルコンピュータの画面上で表示するためのウインドウである。操作入力ウインドウ32は、カーナビゲーション装置ではリモコン41またはマイク42などによって入力される情報を、パーソナルコンピュータの入力装置から入力するためのウインドウである。
【0027】
ナビ環境設定ウインドウ33は、カーナビゲーション装置では車両本体から得られる環境状態を表す情報を、パーソナルコンピュータの入力装置から入力するためのウインドウである。なお、制約条件保持部21に設定されている制約条件は、当該プログラム提供装置の提供者によってあらかじめ設定されるものであり、ナビ環境設定ウインドウ33によって設定することはできない。
【0028】
次に、上述した動作テストプログラム20によって、開発されたJavaアプリが実行される手順を図5に示すフローチャートを参照しながら説明する。
【0029】
まず、Javaアプリが取得される(ステップST11)。すなわち、動作テストプログラム20で実現されている図示しない通信インタフェースを用いて、Javaアプリが受信され、動作テストプログラム20のJavaアプリ111としてセットされる。この場合、図示しない通信インタフェースは、この発明に係るプログラム提供装置のプログラム受信手段に対応し、この通信インタフェースで受信するJavaアプリはプログラムに対応する。
【0030】
次いで、Javaアプリが実行される(ステップST12)。すなわち、Javaアプリ実行部112は、ステップST11でセットされたJavaアプリ111の実行処理を行う。このJavaアプリ実行部112は、この発明のプログラム実行手段に対応する。
【0031】
次いで、動作テストが終了であるかどうかが調べられる(ステップST13)。具体的には、ナビ環境設定ウインドウ33の操作によって様々な環境で行われた動作テストの終了であるかどうかが調べられる。このステップST13において、動作テストが終了でないことが判断されると、次いで、環境設定が行われる(ステップST14)。このステップST14では、ユーザがナビ環境設定ウインドウ22を用いて様々な環境を設定する。例えば、走行中と停止中の状態を切り替えたり、走行位置や高度、車の向き、車内/車外の温度/湿度、一般道/高速道路走行中を変更したりする。また、CPUの使用率を70%としてメモリ空き容量を1MBとし、バスの使用率を80%とするなど、エミュレート環境の状態を変更し、その状態で動作テストを実施する。
【0032】
次いで、制限対象処理であるかどうかが調べられる(ステップST15)。すなわち、制約条件として設定されているリソースに対する処理であるかどうかが調べられる。このステップST15において、制限対象処理でないことが判断されると、シーケンスはステップST13に戻り、上述した処理が繰り返される。一方、ステップST15において、制限対象処理であることが判断されると、次いで、環境状態が取得される(ステップST14)。すなわち、Javaアプリ実行部112はナビゲーションサービス110から環境状態を取得する。
【0033】
次いで、実行可能であるかどうかが調べられる(ステップST17)。すなわち、Javaアプリ実行部112は、ステップST14で取得した環境状態に基づいて、Javaアプリを実行可能であるかどうかを調べる。このステップST17で、実行可能であることが判断されると、シーケンスはステップST13に戻り、上述した処理が繰り返される。一方、ステップST17において、実行可能でないことが判断されると、処理は終了する。
【0034】
上記ステップST13において、動作テストが終了であることが判断されると、証明情報が生成される(ステップST18)。すなわち、ナビ環境設定ウインドウ33の操作によって様々な環境での動作テストが行われた後、正常に動作する事が確認できたら、Javaアプリを用いて証明部23は証明情報を生成する。証明部23で行われる証明方法としては、証明部23にあらかじめ用意されている鍵を用いてJavaアプリに署名する方法やJavaアプリを暗号化する方法を用いることができる。なお。署名および暗号化の技術としては、公知の技術を用いることができる。その後、処理は終了する。
【0035】
なお、このステップST13において、証明部23は、CPU使用率、メモリ使用量、ハードディスク使用量、バス使用率およびネットワーク使用可否の少なくとも1つを含むリソース状態と、走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む環境状態とを含む制約条件に応じて証明情報を生成するように構成できる。この構成によれば、ハードウェアに関する制約条件の要素毎に動作の証明を行うことができる。
【0036】
また、証明部23は、APIの使用可否、ライブラリの使用可否、特定プログラムの実行状態の少なくとも1つを含むリソース状態と、走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む環境状態とを含む制約条件に応じて証明情報を生成するように構成することもできる。この構成によれば、ソフトウェアに関する制約条件の要素毎に動作の証明を行うことができる。
【0037】
さらに、証明部23は、プログラム提供元に応じて証明情報を生成するように構成することもできる。この構成によれば、プログラム提供装置を提供する対象(例えばカーメーカやコンテンツプロバイダなど)毎に証明情報を生成することができる。
【0038】
このステップST18において生成された証明情報は、Javaアプリとともに図示しないメモリに保存するように構成できる。この場合、図示しないメモリは、この発明のプログラム保存手段に対応し、このメモリに保存されるJavaアプリはプログラムに対応する。また、ステップST18において生成された証明情報は、Javaアプリとともに、動作テストプログラム20で実現されている図示しない通信インタフェースを用いて、カーナビゲーション装置に直接に送信するように構成できる。この場合、図示しない通信インタフェースは、この発明に係るプログラム提供装置のプログラム送信手段に対応し、この通信インタフェースで受信するJavaアプリはプログラムに対応する。
【0039】
次に、上述した手順によって生成された証明情報とJavaアプリをカーナビゲーション装置で実行する動作を、図6に示すフローチャートを参照しながら説明する。
【0040】
まず、Javaアプリが取得される(ステップST21)。具体的には、カーナビゲーション装置は、通信機器61(図1参照)を介してJavaアプリおよび証明情報を受信する。受信されたJavaアプリは、Javaアプリ11としてセットされる。
【0041】
次いで、Javaアプリの認証が行われる(ステップST22)。すなわち、Javaアプリ認証部14は、受け取った証明情報を認証する。このJavaアプリ認証部14は、この発明のプログラム認証手段に対応する。Javaアプリ認証部14における認証方法としては、Javaアプリ認証部14にあらかじめ用意されている鍵を用いて署名検証を行う方法やJavaアプリの暗号化を復号する方法を用いることができる。なお、署名検証および復号の技術としては、公知の技術を用いることができる。Javaアプリ認証部14は、認証結果をJavaアプリ実行部12に送る。
【0042】
次いで、認証が正当(OK)であるかどうかが調べられる(ステップST23)。すなわち、Javaアプリ実行部12は、Javaアプリ認証部14から送られてきた認証結果が正当であるかどうかを調べる。このステップST23において、認証が正当であることが判断されると、Javaアプリが実行される(ステップST24)。一方、認証が不正(例えば鍵が存在しない場合や署名検証で一致が得られない場合)であることが判断されると、Javaアプリを実行せずに処理は終了する。
【0043】
以上説明したように、この発明の実施の形態1に係るプログラム提供装置によれば、リソース状態と環境状態を制約条件として設定することによって、カーナビゲーション装置のような環境における動作確認をパーソナルコンピュータ上で実施することができる。したがって、カーナビゲーション装置用に開発されたプログラムの動作検証および提供に好適である。また、カーナビゲーション装置では、動作テストプログラムによって動作確認されたJavaアプリのみ動作を許可するため、不正なJavaアプリが動作するのを防ぐことができる。
【0044】
ハードウェアエミュレータおよびソフトウェアエミュレータによって再現されているリソースの使用を環境状態によって制限するように構成したので、特許文献1に記載されている技術とは異なり、安全上の観点から、車の動作状態、例えば走行中であるか停止中であるかに応じてプログラムの動作を制限したテストを行うことができ、十分な動作検証が可能になる。
【0045】
また、制約条件をファイルとして保持しているため、プログラム提供装置を提供する側がファイルの内容を変更することで、プログラム提供装置を提供する対象(例えばカーメーカやコンテンツプロバイダなど)毎に制約条件を変更した環境を提供することができる。
【0046】
また、Javaアプリ実行部112によってJavaアプリが正常に実行されたことを証明する証明情報を生成してJavaアプリとともにユーザに提供するように構成したので、ユーザは、プログラム提供装置で動作テストしたことが証明されたプログラムを取得することができ、悪意のあるプログラムや設計ミスを含むプログラムなどをカーナビゲーション装置で実行することがない。その結果、機器の動作不良、機器内の情報の漏洩などといった被害を防止できる。
【0047】
なお、上述した実施の形態1では、様々な環境での動作確認をユーザがナビ環境設定ウインドウ33を用いてカーナビゲーション装置の環境を設定することによって行うように構成したが、この環境の設定を自動で行うように構成することもできる。例えば、動作テストプログラム20を提供する側が、テストコースのデータをあらかじめ用意しておき、このテストコースを走行中に正常に動作していればJavaアプリは安全に動作すると判断して証明情報を生成するように構成できる。
【0048】
また、上述した実施の形態1では、制約条件を保持する例として、ファイルにリソース状態と環境状態を羅列するように構成したが、制約条件を、Javaのアクセス制御のために標準で用意されているJavaポリシーファイルに追記するように構成することもできる。また、このJavaポリシーファイルをネットワークを通じて更新することによって、制約条件を更新することもできる。
【0049】
また、カーナビゲーション装置のメーカが、自社のカーナビゲーション装置用のJavaアプリを一般のユーザが作成できるような環境を提供したい場合、制約条件に一般のユーザに許可してもよい動作範囲の設定を施し、カーナビゲーション装置のJavaアプリ認証部14に埋め込んである鍵に対応したカーナビゲーション装置のメーカ独自の鍵を動作テストプログラム20の証明部23に埋め込んで動作テストプログラム20を配布する。また、正規ディーラに対しては一般のユーザの場合と制約条件を変更して動作テストプログラム20を配布する。この際、動作テストプログラム20の証明部23に埋め込む鍵は変更する必要はない。これにより、カーメーカは制約条件を変更するだけで提供先毎に適した動作テストプログラムを送付することができる。
【0050】
実施の形態2.
この発明の実施の形態2は、証明情報に制約条件を埋め込むようにしたものである。この実施の形態2は、Javaアプリ動作テストプログラム20の証明部23における証明方法とカーナビゲーション装置のソフトウェア構成が、実施の形態1と異なる。以下では、実施の形態1と相違する部分を中心に説明する。
【0051】
この実施の形態2に係るプログラム提供装置を構成する動作テストプログラム20の証明部23は、制約条件を含んだ証明情報を生成する。例えば、制約条件が図4に示したようなファイルに保持されている場合、証明部23は、そのファイル自体も暗号化して証明情報に埋め込む。
【0052】
図7は、この発明の実施の形態2に係るカーナビゲーション装置のソフトウェア構成を示す図である。このソフトウェア構成は、実施の形態1に係るカーナビゲーション装置のソフトウェア構成に、Javaアプリ実行制限部15が追加されて構成されている。なお、実施の形態1においては、Javaアプリ実行制限部は動作テストプログラム20にのみ含まれており、カーナビゲーション装置には含まれていない。
【0053】
次に、プログラム提供装置で生成された証明情報とJavaアプリをカーナビゲーション装置で実行する動作を、図8に示すフローチャートを参照しながら説明する。
【0054】
まず、Javaアプリが取得される(ステップST31)。具体的には、カーナビゲーション装置は、通信機器61(図1参照)を介してJavaアプリおよび証明情報を受信する。この場合の通信機器61は、この発明に係る車載情報システムのプログラム受信手段に対応し、この通信機器61で受信するJavaアプリはプログラムに対応する。受信されたJavaアプリは、Javaアプリ11としてセットされる。
【0055】
次いで、Javaアプリの認証が行われる(ステップST32)。すなわち、Javaアプリ認証部14は、受け取った証明情報を認証する。ここで、Javaアプリ認証部14における認証方法としては、Javaアプリ認証部14にあらかじめ用意されている鍵を用いて暗号化されている証明情報を復号する方法を用いることができる。次いで、認証が正当(OK)であるかどうかが調べられる(ステップST33)。すなわち、Javaアプリ実行部12は、Javaアプリ認証部14から送られてきた認証結果が不正であるかどうかを調べる。このステップST33において、認証が不正であることが判断されると、Javaアプリを実行せずに処理は終了する。
【0056】
一方、ステップST33において、認証が正当であることが判断されると、次いで、制約条件が取得される(ステップST34)。すなわち、Javaアプリ実行部12は、認証結果が正当であることを判断すると、証明情報から制約条件を取得してJavaアプリ実行制限部15に送る。次いで、Javaアプリが実行される(ステップST35)。すなわち、Javaアプリ実行部12は、Javaアプリ11を実行する。この時、Javaアプリ実行制限部15は、ステップST34において取得した制約条件に従ってJavaアプリ11の動作を制限する。なお、アプリの終了処理がコールされることによって、アプリは正常に終了する。
【0057】
次いで、Javaアプリが実行中の動作制限として、APIがコールされると制限対象処理であるかどうかが調べられる(ステップST36)。すなわち、制約条件に記載されたリソースに対する処理であるかどうかが調べられる。このステップST36において、制限対象処理でないことが判断されると、シーケンスはステップST35に戻り、上述した処理が繰り返される。一方、ステップST36において、制限対象処理であることが判断されると、次いで、環境状態が取得される(ステップST37)。すなわち、Javaアプリ実行部12はナビゲーションサービス10から環境状態を取得する。
【0058】
次いで、実行可能であるかどうかが調べられる(ステップST38)。すなわち、Javaアプリ実行部12は、ステップST37で取得した環境状態に基づいて、Javaアプリを実行可能であるかどうかを調べる。このステップST39で、実行可能であることが判断されると、シーケンスはステップST35に戻り、上述した処理が繰り返される。一方、ステップST38において、実行可能でないことが判断されると、処理はエラー終了する。
【0059】
以上説明したように、この発明の実施の形態2によれば、受信したJavaアプリに制約条件が付属されているため、カーナビゲーション装置側でJavaアプリの動作環境を知ることができる。したがって、カーナビゲーション装置のユーザに対して、どの状態であればJavaアプリが実行可能であるかどうかを通知することができるので、例えば、カーメーカから取得したJavaアプリAは走行中にも動作可能であるが、コンテンツプロバイダから取得したJavaアプリBは停車中にしか使えないことをユーザに知らせることで、走行中にJavaアプリBを動作させようという意思を起こさせないようにすることができる。
【0060】
また、サービスアプリCを実行するためにはライブラリCが必要でサービスアプリDが実行中でなければならないといったソフトウェアリソースや、サービスアプリCを実行するためにはハードディスクの空き容量とメモリの空き容量がどれだけ必要で、CPUの負荷は何%以下であるといったハードウェアリソースの詳細な動作環境をユーザに通知することができる。
【0061】
なお、通信機器61を介して受信された証明情報は、CPU使用率、メモリ使用量、ハードディスク使用量、バス使用率およびネットワーク使用可否の少なくとも1つを含むリソース状態と、走行中または停止中を表す走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む環境状態とを含むように構成できる。この構成によれば、証明情報として環境状態とハードウェアのリソース状態が含まれているので、車載情報システムで安全に動作可能な状態を決定できる。
【0062】
また、通信機器61を介して受信された証明情報は、アプリケーションプログラムインタフェースの使用可否、ライブラリの使用可否および特定プログラムの実行状態の少なくとも1つを含むリソース状態と、走行中または停止中を表す走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む環境状態とを含むように構成できる。この構成によれば、証明情報として環境状態とソフトウェアのリソース状態が含まれているので、車載情報システムで安全に動作可能な状態を決定できる。
【0063】
実施の形態3.
この発明の実施の形態3は、証明情報に提供元情報を埋め込むようにしたものである。この実施の形態3は、Javaアプリ動作テストプログラム20の証明部23における証明方法とカーナビゲーション装置のソフトウェア構成が、実施の形態1と異なる。以下では、実施の形態1と相違する部分を中心に説明する。
【0064】
プログラム提供装置を構成する動作テストプログラム20の証明部23は、Javaアプリの提供元の情報を含んだ証明情報を生成する。例えば、証明部23が持っている鍵は提供元毎に異なっており、この鍵を用いて署名や暗号化などの処理を行うことにより提供元の情報を埋め込むことができる。
【0065】
図9は、この発明の実施の形態3に係るカーナビゲーション装置のソフトウェア構成を示す図である。このソフトウェア構成は、実施の形態2に係るカーナビゲーション装置のソフトウェア構成に、制約条件リスト16が追加されて構成されている。この制約条件リスト16は、この発明の制約条件取得手段に対応し、鍵の種類に応じた動作を規定している。
【0066】
次に、上述したようにして生成された証明情報とJavaアプリをカーナビゲーション装置で実行する動作を、図10に示すフローチャートを参照しながら説明する。
【0067】
まず、Javaアプリが取得される(ステップST41)。具体的には、カーナビゲーション装置は、通信機器61(図1参照)を介してJavaアプリおよび証明情報を受信する。この場合の通信機器61は、この発明に係る車載情報システムのプログラム受信手段に対応し、この通信機器61で受信するJavaアプリはプログラムに対応する。受信されたJavaアプリは、Javaアプリ11としてセットされる。
【0068】
次いで、Javaアプリの認証が行われる(ステップST42)。すなわち、Javaアプリ認証部14は、受け取った証明情報を認証する。ここで、Javaアプリ認証部14における認証方法としては、Javaアプリ認証部14にあらかじめ用意されている提供元に応じた鍵を用いて暗号化されている証明情報を復号する方法を用いることができる。この時、復号に成功した鍵によってJavaアプリの提供元を判別することができる。
【0069】
次いで、認証が正当(OK)であるかどうかが調べられる(ステップST43)。すなわち、Javaアプリ実行部12は、Javaアプリ認証部14から送られてきた認証結果が不正であるかどうかを調べる。このステップST43において、認証が不正であることが判断されると、Javaアプリを実行せずに処理はエラー終了する。一方、ステップST43において、認証が正当であることが判断されると、次いで、Javaアプリの提供元の判別結果に基づき制約条件リスト16から該当する制約条件を決定される(ステップST44)。すなわち、Javaアプリ実行部12は、認証結果が正当であることを判断すると、制約条件リスト16から制約条件を取得してJavaアプリ実行制限部15に送る。
【0070】
次いで、Javaアプリが実行される(ステップST45)。すなわち、Javaアプリ実行部12は、Javaアプリを実行する。この時、Javaアプリ実行制限部15は、ステップST44において決定された制約条件に従ってJavaアプリの動作を制限する。なお、アプリの終了処理がコールされることによって、アプリは正常に終了する。
【0071】
次いで、Javaアプリ実行中の動作制限として、APIがコールされると、制限対象処理であるかどうかが調べられる(ステップST46)。すなわち、制約条件に記載されたリソースに対する処理であるかどうかが調べられる。このステップST46において、制限対象処理でないことが判断されると、シーケンスはステップST45に戻り、上述した処理が繰り返される。一方、ステップST46において、制限対象処理であることが判断されると、次いで、環境状態が取得される(ステップST47)。すなわち、Javaアプリ実行部12はナビゲーションサービス10から環境状態を取得する。
【0072】
次いで、実行可能であるかどうかが調べられる(ステップST48)。すなわち、Javaアプリ実行部12は、ステップST47で取得した環境状態に基づいて、Javaアプリを実行可能であるかどうかを調べる。このステップST48で、実行可能であることが判断されると、シーケンスはステップST45に戻り、上述した処理が繰り返される。一方、ステップST48において、実行可能でないことが判断されると、処理はエラー終了する。
【0073】
以上説明したように、この発明の実施の形態3によれば、証明情報としてあらかじめ車載情報システムが所持している制約条件リストの中から提供元を指定するように構成したので、提供元に応じた動作制限ができる。また、Javaアプリには提供元情報のみが記載されているため、詳細な動作設定がなされることによって制約条件のデータが多い場合でも通信に要するコストを抑えることができる。また、動作テストプログラムを配布した後にJavaアプリの動作環境の変更が生じた場合、カーナビゲーション装置に記録されている制約条件リストを更新することで対応できる。
【0074】
また、上述した実施の形態3では、提供元を特定する方法として鍵の種別を用いたが、提供元を示す情報、例えばID、URL、名称などを記録したデータをJavaアプリに付属するように構成することができる。
【0075】
なお、上述した実施の形態1〜3では、開発対象のプログラムをJavaアプリとして説明したが、開発対象のプログラムは、例えばC言語などによって記述されるネイティブアプリケーションとすることもできる。また、実施の形態1〜3に係るプログラム提供装置は、パーソナルコンピュータ上で実行されるプログラムであるので、このプログラムを記録媒体に格納して配布するように構成できる。
【図面の簡単な説明】
【0076】
【図1】この発明の実施の形態1に係る車載情報システムとしてのカーナビゲーション装置のハードウェア構成を示すブロック図である。
【図2】図1に示すカーナビゲーション装置のソフトウェア構成を示す図である。
【図3】この発明の実施の形態1に係るプログラム提供装置の主要な部分の構成を示す図である。
【図4】この発明の実施の形態1に係る車載情報システムとしてのカーナビゲーション装置で使用される制約条件を説明するための図である。
【図5】この発明の実施の形態1に係るプログラム提供装置によって、開発されたJavaアプリが実行される手順を示すフローチャートである。
【図6】この発明の実施の形態1に係る車載情報システムとしてのカーナビゲーション装置によって、プログラム提供装置から提供されたJavaアプリが実行される手順を示すフローチャートである。
【図7】この発明の実施の形態2に係る車載情報システムとしてのカーナビゲーション装置のソフトウェア構成を示す図である。
【図8】この発明の実施の形態2に係る車載情報システムとしてのカーナビゲーション装置によって、プログラム提供装置から提供されたJavaアプリが実行される手順を示すフローチャートである。
【図9】この発明の実施の形態3に係る車載情報システムとしてのカーナビゲーション装置のソフトウェア構成を示す図である。
【図10】この発明の実施の形態3に係る車載情報システムとしてのカーナビゲーション装置によって、プログラム提供装置から提供されたJavaアプリが実行される手順を示すフローチャートである。
【符号の説明】
【0077】
1 CPU、2 ROM、3 RAM、4 操作部インタフェース、5 出力部インタフェース、6 通信部インタフェース、7 外部記録装置インタフェース、10 ナビゲーションサービス、10a JavaVMインタフェースモジュール、11 Javaアプリ、12 Javaアプリ実行部、12a ナビゲーションサービスインタフェースモジュール、13 Java管理部、14 Javaアプリ認証部、15 Javaアプリ実行制限部、16 制約条件リスト、20 動作テストプログラム、21 制約条件保持部、22 Javaアプリ実行制限部、23 証明部、31 ナビ画面出力ウインドウ、
32 操作入力ウインドウ、33 ナビ環境設定ウインドウ、41 リモコン、42 マイク、51 ディスプレイ、52 スピーカ、61 通信機器、62 車内LAN、71 外部記録装置ドライブ、110 ナビゲーションサービス、111 Javaアプリ本体、112 Javaアプリ実行部、113 Javaアプリ管理部、114 Javaアプリ認証部。

【特許請求の範囲】
【請求項1】
車載情報システムのハードウェア環境およびソフトウェア環境をエミュレートするエミュレート手段と、
車載情報システム用に開発されたプログラムを受け取るプログラム受信手段と、
車載情報システムのリソース状態および環境状態を制約条件として保持する制約条件保持手段と、
前記制約条件保持手段に保持された制約条件に基づいて前記プログラムの動作を制限するプログラム実行制限手段と、
前記エミュレート手段によって提供されるリソースを用いて、前記プログラム受信手段から受け取ったプログラムを、前記プログラム実行制限手段による制限にしたがって実行するプログラム実行手段
とを備えたプログラム提供装置。
【請求項2】
制約条件保持手段に保持された制約条件に含まれるリソース状態は、CPU使用率、メモリ使用量、ハードディスク使用量、バス使用率およびネットワーク使用可否の少なくとも1つを含み、
環境状態は、走行中または停止中を表す走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む
ことを特徴とする請求項1記載のプログラム提供装置。
【請求項3】
制約条件保持手段に保持された制約条件に含まれるリソース状態は、アプリケーションプログラムインタフェースの使用可否、ライブラリの使用可否、特定プログラムの実行状態の少なくとも1つを含み、
環境状態は、走行中または停止中を表す走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む
ことを特徴とする請求項1記載のプログラム提供装置。
【請求項4】
制約条件保持手段に保持されている制約条件を更新する制約条件更新手段を備えたことを特徴とする請求項1記載のプログラム提供装置。
【請求項5】
プログラム実行手段によってプログラムが正常に実行されたことを証明する証明情報を生成するプログラム証明手段と、
前記プログラム証明手段によって正常に実行されたことが証明されたプログラムおよび前記プログラム証明手段で生成された証明情報を保存するプログラム保存手段
とを備えたことを特徴とする請求項1記載のプログラム提供装置。
【請求項6】
プログラム実行手段によってプログラムが正常に実行されたことを証明する証明情報を生成するプログラム証明手段と、
前記プログラム証明手段によって正常に実行されたことが証明されたプログラムおよび前記プログラム証明手段で生成された証明情報を外部へ送信するプログラム送信手段
とを備えたことを特徴とする請求項1記載のプログラム提供装置。
【請求項7】
プログラム証明手段は、
CPU使用率、メモリ使用量、ハードディスク使用量、バス使用率およびネットワーク使用可否の少なくとも1つを含むリソース状態と、
走行中または停止中を表す走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む環境状態とを含む制約条件に応じて証明情報を生成することを特徴とする請求項5または請求項6記載のプログラム提供装置。
【請求項8】
プログラム証明手段は、
アプリケーションプログラムインタフェースの使用可否、ライブラリの使用可否、特定プログラムの実行状態の少なくとも1つを含むリソース状態と、
走行中または停止中を表す走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む環境状態とを含む制約条件に応じて証明情報を生成することを特徴とする請求項5または請求項6記載のプログラム提供装置。
【請求項9】
プログラム証明手段は、プログラム提供元に応じて証明情報を生成する
ことを特徴とする請求項5または請求項6記載のプログラム提供装置。
【請求項10】
車載情報システムのハードウェア環境およびソフトウェア環境をエミュレートするエミュレート手段と、
車載情報システム用に開発されたプログラムを受け取るプログラム受信手段と、
車載情報システムのリソース状態および環境状態を制約条件として保持する制約条件保持手段と、
前記制約条件保持手段に保持された制約条件に基づいて前記プログラムの動作を制限するプログラム実行制限手段と、
前記エミュレート手段によって提供されるリソースを用いて、前記プログラム受信手段から受け取ったプログラムを、前記プログラム実行制限手段による制限にしたがって実行するプログラム実行手段
とを備えたコンピュータで実行可能なプログラムを記憶した記憶媒体。
【請求項11】
車載情報システム用に開発されたプログラムおよび証明情報を受信するプログラム受信手段と、
前記プログラム受信手段から受け取った証明情報を解読して認証するプログラム認証手段と、
前記プログラム認証手段から受け取った認証結果に応じて前記プログラムの動作を制限するプログラム実行制限手段と、
前記プログラム受信手段から受け取ったプログラムを、前記プログラム実行制限手段による制限にしたがって実行するプログラム実行手段
とを備えた車載情報システム。
【請求項12】
プログラム受信手段で受信された証明情報は、CPU使用率、メモリ使用量、ハードディスク使用量、バス使用率およびネットワーク使用可否の少なくとも1つを含むリソース状態と、
走行中または停止中を表す走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む環境状態
とを含むことを特徴とする請求項11記載の車載情報システム。
【請求項13】
プログラム受信手段で受信された証明情報は、アプリケーションプログラムインタフェースの使用可否、ライブラリの使用可否および特定プログラムの実行状態の少なくとも1つを含むリソース状態と、
走行中または停止中を表す走行状態、走行速度、位置、向き、高度、温度、湿度、天気および道路種別の少なくとも1つを含む環境状態
とを含むことを特徴とする請求項11記載の車載情報システム。
【請求項14】
車載情報システムのリソース状態および環境状態を含む制約条件を取得する制約条件取得手段を備え、
プログラム認証手段から得られる認証結果は、前記制約条件取得手段で取得された制約条件を特定する情報を含み、
プログラム実行制限手段は、前記認証結果と前記制約条件取得手段で取得された制約条件に応じてプログラムの動作を変更する
ことを特徴とする請求項11記載の車載情報システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−65893(P2007−65893A)
【公開日】平成19年3月15日(2007.3.15)
【国際特許分類】
【出願番号】特願2005−249872(P2005−249872)
【出願日】平成17年8月30日(2005.8.30)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】