(57)【要約】      （修正有）【課題】プリケーションを自動的に起動して種々の車載情報サービスをユーザに提供できる車載情報システムを提供する。【解決手段】車載情報サービスの基本機能を提供する基本機能モジュール２４と、基本機能モジュールでは提供されない車載情報サービスの拡張機能を提供するアプリケーションを基本機能モジュールと連携しながら動作させる拡張機能モジュール２５とを備え、拡張機能モジュール２５は、アプリケーションを蓄積するアプリ蓄積手段４１と、アプリケーションを実行するアプリ実行手段４４と、所定条件が満たされたと判断したときに所定のアプリケーションの自動起動を指示するアプリ自動起動手段４３と、アプリ自動起動手段からの指示に応答して、所定のアプリケーションをアプリ蓄積手段から読み出し、該読み出した所定のアプリケーションをアプリ実行手段に送って実行させるアプリ管理手段４２とを備えている。【選択図】図２
2006309664.tif 000002
【特許請求の範囲】
【請求項１】
車載情報サービスの基本機能を提供する基本機能モジュールと、
前記基本機能モジュールでは提供されない車載情報サービスの拡張機能を提供するアプリケーションを前記基本機能モジュールと連携しながら動作させる拡張機能モジュール
とを備えた車載情報システムにおいて、
前記拡張機能モジュールは、
アプリケーションを蓄積するアプリ蓄積手段と、
アプリケーションを実行するアプリ実行手段と、
所定条件が満たされたと判断したときに所定のアプリケーションの自動起動を指示するアプリ自動起動手段と、
前記アプリ自動起動手段からの指示に応答して、前記所定のアプリケーションを前記アプリ蓄積手段から読み出し、該読み出した所定のアプリケーションを前記アプリ実行手段に送って実行させるアプリ管理手段
とを備えた車載情報システム。
【請求項２】
アプリ自動起動手段は、当該車載情報システムが電源投入によって起動された時に、所定条件が満たされたと判断して所定のアプリケーションの自動起動を指示する
ことを特徴とする請求項１記載の車載情報システム。
【請求項３】
ユーザの指示を入力する入力手段を備え、
アプリ管理手段は、前記入力手段から所定のアプリケーション以外の他のアプリケーションの起動指示が入力された時に、自動起動された所定のアプリケーションの実行を中断または終了させる
ことを特徴とする請求項１記載の車載情報システム。
【請求項４】
ユーザの指示を入力する入力手段を備え、
アプリ管理手段は、前記入力手段から所定のアプリケーション以外の他のアプリケーションの起動指示が入力された時に、自動起動された前記所定のアプリケーションの実行を継続させ、前記他のアプリケーションを起動させない
ことを特徴とする請求項１記載の車載情報システム。
【請求項５】
アプリ自動起動手段は、所定のアプリケーション以外の他のアプリケーションの実行が終了した時に、前記所定のアプリケーションを起動させることを特徴とする請求項１記載の車載情報システム。
【請求項６】
アプリ自動起動手段は、複数のアプリケーションの中から所定の方法によって選択した１つを所定のアプリケーションとし、所定条件が満たされたときに該所定のアプリケーションの自動起動を指示する
ことを特徴とする請求項１記載の車載情報システム。
【請求項７】
車両状態を表す車両情報を取得する車両情報取得手段を備え、
アプリ自動起動手段は、前記車両情報取得手段で取得された車両情報によって所定条件が満たされたと判断したときに所定のアプリケーションの自動起動を指示する
ことを特徴とする請求項１記載の車載情報システム。
【請求項８】
アプリ自動起動手段は、複数のアプリケーションの中から、車両情報取得手段で取得された車両情報に応じて１つのアプリケーションを選択し、該選択したアプリケーションの自動起動を指示する
ことを特徴とする請求項７記載の車載情報システム。
【請求項９】
アプリケーションは、自己が自動起動される条件となる車両情報条件を含み、
アプリ自動起動手段は、車両情報取得手段で取得された車両情報をアプリケーションに含まれる車両情報条件と比較することによって所定の条件が満たされたと判断した時に、該アプリケーションの自動起動を指示する
ことを特徴とする請求項７記載の車載情報システム。
【請求項１０】
アプリケーションは、自己が自動起動される条件となる車両情報条件を含み、
アプリ自動起動手段は、複数のアプリケーションの中から、車両情報取得手段で取得された車両情報を前記車両情報条件と比較することによって１つのアプリケーションを選択し、該選択したアプリケーションの自動起動を指示する
ことを特徴とする請求項８記載の車載情報システム。
【請求項１１】
外部からアプリケーションの起動を指示する自動起動トリガ情報を受信する起動トリガ受信手段を備え、
アプリ自動起動手段は、前記起動トリガ受信手段で受信された自動起動トリガ情報によって所定条件が満たされたと判断したときに所定のアプリケーションの自動起動を指示する
ことを特徴とする請求項１記載の車載情報システム。
【請求項１２】
アプリ自動起動手段は、複数のアプリケーションの中から、起動トリガ受信手段で受信された自動起動トリガ情報に応じて１つのアプリケーションを選択し、該選択したアプリケーションの自動起動を指示する
ことを特徴とする請求項１１記載の車載情報システム。
【請求項１３】
アプリケーションは、自己が自動起動される条件となる自動起動トリガ条件情報を含み、
アプリ自動起動手段は、起動トリガ受信手段で受信された自動起動トリガ情報をアプリケーションに含まれる自動起動トリガ条件情報と比較することによって所定の条件が満たされたと判断した時に、該アプリケーションの自動起動を指示する
ことを特徴とする請求項１１記載の車載情報システム。
【請求項１４】
アプリケーションは、自己が自動起動される条件となる自動起動トリガ条件情報を含み、
アプリ自動起動手段は、複数のアプリケーションの中から、起動トリガ受信手段で受信された自動起動トリガ情報を前記自動起動トリガ条件情報と比較することによって１つのアプリケーションを選択し、該選択したアプリケーションの自動起動を指示する
ことを特徴とする請求項１２記載の車載情報システム。
【請求項１５】
アプリケーションをインストールするアプリインストール手段と、
前記アプリインストール手段によってインストールされるアプリケーションが自動起動の対象であるかどうかを判別するアプリ判別手段とを備え、
アプリ自動起動手段は、前記アプリ判別手段で自動起動の対象であると判別されたアプリケーションを所定のアプリケーションとして設定する
ことを特徴とする請求項１記載の車載情報システム。
【請求項１６】
アプリケーションをインストールするアプリインストール手段と、
前記アプリインストール手段によってインストールされるアプリケーションが自動起動かどうかを判別するアプリ判別手段と備え、
アプリ蓄積手段は、前記アプリ判別手段で自動起動の対象であると判別されたアプリケーションと自動起動の対象でないと判別されたアプリケーションとを区別して蓄積し、
前記アプリ自動起動手段は、前記アプリ判別手段によって自動起動の対象であると判別された複数のアプリケーションの中から所定の方法によって選択した１つを所定のアプリケーションとし、所定条件が満たされたときに該所定のアプリケーションの自動起動を指示する
ことを特徴とする請求項１記載の車載情報システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車載情報システムに関し、特に、インストールされたアプリケーションを自動的に起動する技術に関する。
【背景技術】
【０００２】
従来の車載情報システムは、ナビゲーションサービスのような基本的な機能を実現する基本機能モジュールとＪａｖａ（登録商標；以下同じ）仮想マシン（ＪａｖａＶＭ；Java Virtual Machine）上で動作するＪａｖａアプリケーションのような拡張機能を実現するための拡張機能モジュールとが連携して動作する場合において、各モジュールは、他のモジュールへのアクセスライブラリとしてインタフェースモジュールを備えており、これらインタフェースモジュールを介して通信を行うように構成されている（例えば、特許文献１参照）。
【０００３】
最近の車載情報システムの１つであるカーナビゲーションシステムでは、この特許文献１に開示された技術をベースにして、携帯電話等のモバイル情報端末用のＭＩＤＰ（Mobile Information Device Profile）準拠のＪａｖａ仮想マシンを組み込み、エンターテイメントとしてのゲームアプリケーションや車外の情報を取得するテレマティクスアプリケーションを動作させている。
【０００４】
また、他の車載情報システムとして、特許文献２は、災害など緊急時にセンタ側（基地局側）から緊急情報を提供するプログラム（Ｊａｖａアプリケーション）を情報端末に送信し、これを情報端末側で受信した時に緊急情報を提供するプログラムを起動する情報端末を開示している。この情報端末では、緊急時であれば、ユーザが手動で起動しなくてもＪａｖａアプリケーションを自動的に起動できる。
【０００５】
【特許文献１】特開２００２−３１８７０２号公報
【特許文献２】特開２００３−２４２５８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１に記載された車載情報システムのようなＪａｖａ対応カーナビゲーションシステムで動作するＪａｖａアプリケーションは、ユーザが手動で起動する必要がある。従って、例えば、カーディーラがディーラ情報を車載情報サービスとして提供するＪａｖａアプリケーションを、そのカーディーラで購入した車両のカーナビゲーションシステムにインストールしたとしても、ユーザが起動しない限りは、ディーラ情報を提供するサービスができず、Ｊａｖａアプリケーションをインストールした効果が得られない。これは、Ｊａｖａアプリケーションは、カーナビゲーションシステムという限られたリソース（ＣＰＵ負荷／メモリ使用量等）上で動作するので、システム全体の安全を配慮した結果であるが、サービス提供者側から見れば、ユーザのサービス利用機会を減少させているという問題がある。
【０００７】
また、特許文献２に開示された情報端末では、プログラムを受信した時のみ自動的に起動するように構成されているので、例えばセンタ側（基地局側）と通信できない場合などは、プログラムを受信できないのでプログラムを自動的に起動できないという問題がある。
【０００８】
この発明は、上述した問題を解決するためになされたものであり、アプリケーションを自動的に起動して種々の車載情報サービスをユーザに提供できる車載情報システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る車載情報システムは、車載情報サービスの基本機能を提供する基本機能モジュールと、基本機能モジュールでは提供されない車載情報サービスの拡張機能を提供するアプリケーションを基本機能モジュールと連携しながら動作させる拡張機能モジュールとを備えた車載情報システムにおいて、拡張機能モジュールは、アプリケーションを蓄積するアプリ蓄積手段と、アプリケーションを実行するアプリ実行手段と、所定条件が満たされたと判断したときに所定のアプリケーションの自動起動を指示するアプリ自動起動手段と、アプリ自動起動手段からの指示に応答して、所定のアプリケーションをアプリ蓄積手段から読み出し、該読み出した所定のアプリケーションをアプリ実行手段に送って実行させるアプリ管理手段とを備えている。
【発明の効果】
【００１０】
この発明によれば、当該車載情報システムが電源投入によって起動されることにより、アプリ自動起動部が自動起動アプリ情報をアプリ管理部に送り、アプリ管理部は、自動起動アプリ情報によって指定されたアプリケーションを自動的に起動させる。従って、ユーザは、車載情報サービスを提供するアプリケーションを手動で起動する必要がないので、車載情報サービスを提供するアプリケーションが動作する機会が増える。その結果、車載情報サービスを提供するサービスプロバイダは、ユーザ情報を効果的にユーザに提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。以下では、この発明に係る車載情報システムがカーナビゲーション装置である場合を例に挙げて説明するが、この発明はカーナビゲーション装置に限らず、車両に搭載される種々の情報処理装置に適用できる。
実施の形態１．
図１は、この発明の実施の形態１に係るカーナビゲーション装置のハードウェア構成を示すブロック図である。このカーナビゲーション装置は、ＲＯＭ（Read Only Memory）１、ＣＰＵ（Central Processing Unit）２、ＲＡＭ（Random Access Memory）３、外部記憶装置ドライブ４、外部記憶メディア５、外部記憶装置インタフェース６、ディスプレイ７、グラフィック制御回路８、ユーザ操作部９、操作部インタフェース１０、周辺機器１１および周辺機器インタフェース１２から構成されている。
【００１２】
ＲＯＭ１は、デバイスドライバ２２、カーナビゲーションオペレーティングシステム（以下、「カーナビゲーションＯＳ」と略する）２３、基本機能モジュール２４および拡張機能モジュール２５（何れも詳細は後述する）を構成するプログラムを記憶する。ＣＰＵ２は、ＲＯＭ１からプログラムを読み出して実行する。ＲＡＭ３は、ＣＰＵ１によってプログラムが実行される時に、プログラムやデータを一時的に記憶する。
【００１３】
外部記憶装置ドライブ４は、外部記憶メディア５からデータを読み出して外部記憶装置インタフェース６に送る。外部記憶メディア５は、例えばＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＨＤＤ（Hard Disk Drive）等から構成されており、地図データベースや拡張機能を実現するアプリケーションを記憶する。外部記憶装置インタフェース６は、ＣＰＵ１と外部記憶装置ドライブ４との間におけるデータの送受を制御する。
【００１４】
ディスプレイ７は、例えばＬＣＤ（Liquid Crystal Display）から構成されており、グラフィック制御回路８から送られてくる表示データに従った画像を表示する。グラフィック制御回路８は、ＣＰＵ１から送られてくる描画命令に従ってディスプレイ７に画像を描画する。
【００１５】
ユーザ操作部９は、例えばリモートコントローラ（以下、「リモコン」と略する）や各種スイッチ、タッチパネル等から構成されている。このユーザ操作部９が操作されることにより発生した操作データは、操作部インタフェース１０に送られる。操作部インタフェース１０は、ＣＰＵ１とユーザ操作部９との間におけるデータの送受を制御する。
【００１６】
周辺機器１１は、例えばＧＰＳ（Global Positioning System）受信機、ジャイロ、車速センサ、スピーカ、携帯電話等から構成されている。この周辺機器１１で発生されたデータは周辺機器インタフェース１２に送られる。周辺機器インタフェース１２は、周辺機器１１とＣＰＵ１との間におけるデータの送受を制御する。
【００１７】
図２は、この発明の実施の形態１に係るカーナビゲーション装置のソフトウェア構成を示す図である。このソフトウェアは、デバイスドライバ２２、カーナビゲーションＯＳ２３、基本機能モジュール２４および拡張機能モジュール２５から構成されている。
【００１８】
デバイスドライバ２２は、外部記憶装置ドライブ４、外部記憶装置インタフェース６、ディスプレイ７、グラフィック制御回路８、ユーザ操作部９、操作部インタフェース１０、周辺機器１１および周辺機器インタフェース１２といったカーナビゲーションハードウェア２１を制御する。カーナビゲーションＯＳ２３は、デバイスドライバ２２を用いて、カーナビゲーションハードウェア２１を管理および制御するとともに、基本機能モジュール２４および拡張機能モジュール２５に対して動作環境を提供する。
【００１９】
基本機能モジュール２４は、カーナビゲーションＯＳ２３に依存したネイティブコードによって記述されたプログラムである。この基本機能モジュール２４は、車載情報サービスの基本機能を実現する。例えば、カーナビゲーションハードウェア２１からデバイスドライバ２２を介して得た情報を元に、車両の現在位置の計算、誘導経路の計算などを行う。また、デバイスドライバ２２を介してカーナビゲーションハードウェア２１に含まれるディスプレイ７や周辺機器１１の１つとしてのスピーカ等にデータを送って地図の表示や案内音声の再生などを行う。
【００２０】
この基本機能モジュール２４は、カーナビゲーション装置に必須である基本機能の動作を高速化するために、ＣＰＵ２およびカーナビゲーションＯＳ２３に適したネイティブコードで記述されており、あらかじめＲＯＭ１に格納されて出荷される。なお、ＲＯＭ１として電気的に書き換え可能なフラッシュメモリを用いることができる。この場合、基本機能モジュール２４を交換可能な外部記憶メディア５に記録しておき、カーナビゲーション装置の起動時または所定のタイミングにて外部記憶メディア５から基本機能モジュール２４を読み出してフラッシュメモリに書き込む。
【００２１】
この基本機能モジュール２４には、ナビゲーションサービス３０を提供するためのモジュールの他に、ＪａｖａＶＭインタフェースモジュール３１が含まれている。ＪａｖａＶＭインタフェースモジュール３１は、基本機能モジュール２４から拡張機能モジュール２５の機能を利用する際のインタフェースが定義されたライブラリから構成されている。このＪａｖａＶＭインタフェースモジュール３１は、例えば拡張機能モジュール２５からの要求に応答して、現在地や施設情報を拡張機能モジュール２５に返す。
【００２２】
拡張機能モジュール２５は、ＣＰＵ２およびカーナビゲーションＯＳ２３に適したネイティブコードで記述されており、あらかじめＲＯＭ１に格納されているが、基本機能モジュール２４で提供されない車載情報サービスの拡張機能を提供するために、必要に応じてＲＡＭ３にロードされて起動される。なお、ＲＯＭ１には基本機能モジュール２４のみを格納し、拡張機能モジュール２５は外部記憶メディア５に記憶するように構成することもできる。この場合、必要に応じて外部記憶メディア５から拡張機能モジュール２５を読み出してＲＡＭ３に書き込み、このＲＡＭ３を用いて動作させる。
【００２３】
この拡張機能モジュール２５には、Ｊａｖａアプリケーション（以下、「Ｊａｖａアプリ」と略する場合もある）４０等の他に、ナビゲーションサービスインタフェースモジュール４５が含まれる。ナビゲーションサービスインタフェースモジュール４５は、拡張機能モジュール２５から基本機能モジュール２４の機能を利用する際のインタフェースが定義されたライブラリから構成されている。このナビゲーションサービスインタフェースモジュール４５は、例えば地図表示や経路探索の要求を基本機能モジュール２４に送る。
【００２４】
図３は、拡張機能モジュール２５のソフトウェア構成を示すブロック図である。拡張機能モジュール２５は、Ｊａｖａアプリ蓄積部４１、Ｊａｖａアプリ管理部４２、Ｊａｖａアプリ自動起動部４３およびＪａｖａアプリ実行部４４から構成されている。
【００２５】
Ｊａｖａアプリ実行部４４は、Ｊａｖａ言語でプログラミングされたＪａｖａアプリ４０が動作するＪａｖａ仮想マシン（ＪａｖａＶＭ）である。このＪａｖａアプリ実行部４４は、具体的には、例えばサンマイクロシステムズ社が定義しているＣＬＤＣ（Connected Limited Device Configuration）およびＭＩＤＰ（Mobile Information Device Profile）を満たすＪａｖａ仮想マシンである。Ｊａｖａアプリ４０は、プログラミングされたバイトコードがＪａｖａ仮想マシン内で解釈されることにより実行される。
【００２６】
次に、上記のように構成されるカーナビゲーション装置の全体的な動作の概略を説明する。電源投入により起動されたカーナビゲーション装置においては、従来のカーナビゲーション装置と同様に、カーナビゲーションＯＳ２３が起動され、このカーナビゲーションＯＳ２３の上で動作する基本機能モジュール２４（ナビゲーションサービス３０）および拡張機能モジュール２５が起動される。この際、各モジュールを連携するためのＪａｖａＶＭインタフェースモジュール３１およびナビゲーションサービスインタフェースモジュール４５の初期化および起動も行われる。
【００２７】
拡張機能モジュール２５内のＪａｖａアプリ自動起動部４３は、カーナビゲーションＯＳ２３上で起動される（動作を開始する）と、あらかじめ設定されている自動起動アプリ情報をＪａｖａアプリ管理部４２に送る。自動起動アプリ情報は、自動的に起動するべきＪａｖａアプリ名称を含む。Ｊａｖａアプリ管理部４２は、Ｊａｖａアプリ自動起動部４３から受け取った自動起動アプリ情報に含まれるＪａｖａアプリ名称に対応するＪａｖａアプリを取得するように、Ｊａｖａアプリ蓄積部４１に対してＪａｖａアプリ読出依頼を送る。
【００２８】
Ｊａｖａアプリ蓄積部４１は、Ｊａｖａアプリ管理部４２から送られてくるＪａｖａアプリ読出依頼に応じて、蓄積している複数のＪａｖａアプリの中から、指定された名称のＪａｖａアプリを選択し、選択したＪａｖａアプリを表すＪａｖａアプリをＪａｖａアプリ管理部４２に送る。Ｊａｖａアプリ管理部４２は、受け取ったＪａｖａアプリデータによって表されるＪａｖａアプリがＪａｖａアプリ実行部４４において動作するように、そのＪａｖａアプリを起動する。
【００２９】
以下、拡張機能モジュール２５を構成する各部の詳細な動作を説明する。まず、Ｊａｖａアプリ蓄積部４１において、蓄積されたＪａｖａアプリの中から、Ｊａｖａアプリ読出依頼によって指定された名称のＪａｖａアプリを取得する処理の詳細を説明する。以下では、各Ｊａｖａアプリは、カーナビゲーションＯＳ２３のファイルシステム上のファイルとして管理されているものとする。なお、各Ｊａｖａアプリは、例えばＲＯＭ１上のメモリアドレスやＨＤＤ上のセクタアドレスで管理するように構成することもできる。
【００３０】
Ｊａｖａアプリ蓄積部４１は、図４に示すような、Ｊａｖａアプリ名称とＪａｖａアプリファイル名称とが関連付けられたＪａｖａアプリ管理情報を格納している。Ｊａｖａアプリ蓄積部４１は、Ｊａｖａアプリがユーザによって追加または削除される度に、Ｊａｖａアプリ管理情報を更新する。なお、Ｊａｖａアプリ管理情報は、外部記憶メディア５内にファイルとして記憶されており、カーナビゲーション装置の起動時に、外部記憶メディア５から読み出されてＪａｖａアプリ蓄積部４１に格納される。
【００３１】
Ｊａｖａアプリ蓄積部４１は、上述したように、Ｊａｖａアプリ管理部４２からＪａｖａアプリ名称を指定したＪａｖａアプリ読出依頼を受け取ると、指定されたＪａｖａアプリ名称に対応するＪａｖａアプリファイル名称をＪａｖａアプリ管理情報から検索し、検索されたＪａｖａアプリファイル名称を有するＪａｖａアプリファイルを、カーナビゲーションＯＳ２３を介して読み出してメモリ（ＲＡＭ３）に展開する。そして、メモリ展開されたＪａｖａアプリデータをＪａｖａアプリ管理部４２に送る。なお、カーナビゲーションＯＳ２３におけるファイルアクセス方法は、通常のパーソナルコンピュータのオペレーティングシステムにおけるファイルアクセス方法と同じである。
【００３２】
次に、Ｊａｖａアプリ管理部４２におけるＪａｖａアプリの起動方法について説明する。Ｊａｖａアプリ管理部４２は、Ｊａｖａアプリ蓄積部４１からメモリ展開されたＪａｖａアプリデータを受け取ると、そのＪａｖａアプリデータをＪａｖａアプリ実行部４４に渡すとともに、該Ｊａｖａアプリ実行部４４を起動する。このＪａｖａアプリ実行部４４は、カーナビゲーションＯＳ２３上におけるスレッドとして動作するように構成することができる。Ｊａｖａアプリ実行部４４は、起動されると、Ｊａｖａ仮想マシンの内部を初期化した後、渡されたＪａｖａアプリデータを起動するためのメソッドを読み出す。
【００３３】
上述したＣＬＤＣ／ＭＩＤＰで決められたルールに従って作成されたＪａｖａアプリは全てｓｔａｒｔメソッドを有しており、このｓｔａｒｔメソッドを呼び出すことによりＪａｖａアプリを実行できる。なお、その他のプロファイル（定義）でも同様のルールが定められており、上述した方法と同じ方法でＪａｖａアプリを起動することができる。メモリ展開されたＪａｖａアプリの中から、ｓｔａｒｔメソッドを呼び出す方法は、ＭＩＤＰ準拠のＪａｖａＶＭの基本的な動作であり、携帯電話で既に実施されている技術であるので、ここでは説明を省略する。なお、極めて単純なモデルとしては、Ｊａｖａアプリデータのスタートアドレスから所定のオフセットを取ったアドレスにｓｔａｒｔメソッドへのポインタを設けておくことが考えられる。
【００３４】
また、ＣＬＤＣ／ＭＩＤＰでは、Ｊａｖａアプリを停止させるｓｔｏｐメソッドおよびＪａｖａアプリを中断させるｐａｕｓｅメソッドも定義されている。Ｊａｖａ実行環境がこれらのメソッドを呼び出すことによって、Ｊａｖａアプリを停止させたり中断させることができる。
【００３５】
次に、Ｊａｖａアプリ実行部４４の詳細を説明する。Ｊａｖａアプリ実行部４４の処理は、基本的に一般的なＪａｖａ仮想マシンの動作と同じである。Ｊａｖａ仮想マシンは、Ｊａｖａアプリにおいて記述されたバイトコードを解釈してカーナビゲーションＯＳ２３上で動作可能なネイティブコードに変換し、この変換したネイティブコードを実行することにより動作する。
【００３６】
以上説明したように、この発明の実施の形態１に係るカーナビゲーション装置によれば、カーナビゲーション装置が電源投入によって起動されることにより、Ｊａｖａアプリ自動起動部４３が自動起動アプリ情報をＪａｖａアプリ管理部４２に送り、Ｊａｖａアプリ管理部４２は、自動起動アプリ情報によって指定されたＪａｖａアプリを自動的に起動させる。従って、ユーザは、車載情報サービスを提供するＪａｖａアプリを手動で起動する必要がないので、車載情報サービスを提供するＪａｖａアプリが動作する機会が増える。その結果、車載情報サービスを提供するサービスプロバイダは、ユーザ情報を効果的にユーザに提供できる。また、カーナビゲーション装置の起動時から車載情報サービスを提供するＪａｖａアプリが動作するので、運転者は、出発する前に車載情報サービスを受けることができる。
【００３７】
なお、上述した実施の形態１に係るカーナビゲーション装置では、該カーナビゲーション装置が電源投入によって起動されることにより、Ｊａｖａアプリ自動起動部４３がカーナビゲーションＯＳ２３上で起動された時に、Ｊａｖａアプリ自動起動部４３が自動起動アプリ情報をＪａｖａアプリ管理部４２に送ることにより、Ｊａｖａアプリ管理部４２が所定のＪａｖａアプリを起動するように構成したが、Ｊａｖａアプリを起動するタイミングはカーナビゲーション装置の電源投入による起動時に限る必要はなく、任意のタイミングでＪａｖａアプリを起動するように構成することができる。
【００３８】
また、上述した実施の形態１に係るカーナビゲーション装置では、あらかじめ定められた１つのＪａｖａアプリを自動起動するように構成したが、複数の候補の中から任意のＪａｖａアプリを選択し、選択したＪａｖａアプリのＪａｖａアプリ名称を自動起動アプリ情報とするように構成することができる。この場合、Ｊａｖａアプリ自動起動部４３は、自動起動の対象となるＪａｖａアプリを、図５に示すように、自動起動Ｊａｖａアプリ候補として記憶しておき、発生させた乱数を用いて任意の１つのＪａｖａアプリを選択するように構成することができる。また、Ｊａｖａアプリ名称に対応させて、あらかじめ優先順位を決めておき、優先順位の高いものを優先的に選択するように構成することもできる。これらの構成によれば、複数のＪａｖａアプリの中の１つを自動起動させることができるので、ユーザに提供する車載情報サービスの幅を広げることができる。
【００３９】
実施の形態２．
この発明の実施の形態２に係るカーナビゲーション装置は、ユーザが他のＪａｖａアプリを動作させたい場合に、自動起動されたＪａｖａアプリを中断または終了させるようにしたものである。
【００４０】
この実施の形態２に係るカーナビゲーション装置のハードウェア構成およびソフトウェア構成は、実施の形態１のそれと同じである。
【００４１】
図６は、拡張機能モジュール２５のソフトウェア構成を示すブロック図である。この拡張機能モジュール２５は、実施の形態１のそれに、ユーザ入力部４６および表示部４７が追加されて構成されている。ユーザ入力部４６は、ユーザ操作部９からの入力を処理する。このユーザ入力部４６における処理によって得られた入力キーＩＤは、Ｊａｖａアプリ管理部４２に送られる。表示部４７は、Ｊａｖａアプリ管理部４２から送られてくるメニュー表示の指示およびＪａｖａアプリ実行部４４から送られてくるアプリ表示の指示に応じてグラフィック制御回路８を制御することにより、画像をディスプレイ７に表示させる処理を行う。
【００４２】
この実施の形態２に係るカーナビゲーション装置では、ユーザ操作部９として、図７に示すような、「メニュー」、「キャンセル」、「現在地」および「２画面」の各ボタンおよび十字ボタンを備えたリモコン９ａが使用されるものとする。
【００４３】
今、カーナビゲーション装置が電源投入によって起動されることにより、実施の形態１で説明したように、所定のＪａｖａアプリが自動起動された状態にあるものとする。この状態において、ユーザがリモコン９ａの「メニュー」ボタンを押下する操作を行うと、「メニュー」ボタンに応じたリモコンコード（ＩＤ番号）が操作部インタフェース１０を介してＣＰＵ２に送られる。このリモコンコードは、カーナビゲーションＯＳ２３において、その時点で動作している（例えば画像を表示させている）Ｊａｖａアプリに対する入力であると判定される。
【００４４】
図８は、カーナビゲーションＯＳ２３において実行される入力判定処理を示すフローチャートである。この入力判定処理では、ユーザがリモコン９ａの「メニュー」ボタンを押下すると、その「メニュー」ボタンに対応するリモコンコードが生成され、入力キーＩＤとしてカーナビゲーションＯＳ２３に送られる。カーナビゲーションＯＳ２３は、入力キーＩＤの受信を試みる（ステップＳＴ１１）。このステップＳＴ１１で、入力キーＩＤが受信されると、次いで、その時点でディスプレイ７に画像を出力しているモジュールがナビゲーションサービス３０であるかＪａｖａアプリ（Ｊａｖａ仮想マシン）であるかが調べられる（ステップＳＴ１２）。
【００４５】
このステップＳＴ１２で、ディスプレイ７に画像を出力しているモジュールがナビゲーションサービス３０であることが判断されると、ステップＳＴ１１で受信された入力キーＩＤは基本機能モジュール２４側のナビゲーションサービス３０に送られる（ステップＳＴ１３）。その後、シーケンスはステップＳＴ１１に戻る。一方、ステップＳＴ１２で、ディスプレイ７に画像を出力しているモジュールがＪａｖａアプリであることが判断されると、ステップＳＴ１１で受信された入力キーＩＤは拡張機能モジュール２５側のユーザ入力部４６に送られる（ステップＳＴ１４）。その後、シーケンスはステップＳＴ１１に戻る。
【００４６】
拡張機能モジュール２５側では、ユーザ入力部４６は、受け取った入力キーＩＤを、Ｊａｖａアプリ管理部４２に送る。Ｊａｖａアプリ管理部４２は、Ｊａｖａアプリ蓄積部４１に蓄積されているＪａｖａアプリ管理情報に含まれるＪａｖａアプリ名称のリストからＪａｖａアプリメニューデータを作成し（詳細は後述する）、表示部４７に送ってメニュー表示を指示する。これにより、表示部４７は、例えば図９に示すようなＪａｖａアプリメニューをディスプレイ７に表示させる。
【００４７】
ユーザは、ディスプレイ７に表示されたＪａｖａアプリメニューから所望のＪａｖａアプリを、リモコン９ａを使用して選択する。リモコン９ａによるＪａｖａアプリの選択方法としては、従来のカーナビゲーション装置におけるメニュー画面の選択方法と同じ方法を用いることができる。Ｊａｖａアプリ管理部４２は、ユーザ入力部４６によって選択されたＪａｖａアプリに対応するＪａｖａアプリデータを、実施の形態１と同様の方法で、Ｊａｖａアプリ蓄積部４１から取得する。Ｊａｖａアプリ管理部４２は、Ｊａｖａアプリデータを取得すると、その時点で動作している自動起動されたＪａｖａアプリのｓｔｏｐメソッドをコールし、そのＪａｖａアプリが停止させる。その後、Ｊａｖａアプリ管理部４２は、Ｊａｖａアプリ実行部４４を初期化し、ユーザからリモコン９ａによって指定されたＪａｖａアプリに対する起動処理を行う。Ｊａｖａアプリの起動処理は、実施の形態１のそれと同じである。
【００４８】
ここで、この実施の形態２に係るカーナビゲーション装置の理解を深めるために、ユーザから指定されたＪａｖａアプリを起動する時のカーナビゲーション装置の全体の処理を図１０に示すフローチャートを参照しながら説明する。まず、「メニュー」ボタンに対応する入力キーＩＤが受信される（ステップＳＴ２１）。次いで、Ｊａｖａアプリ名称リストが生成される（ステップＳＴ２２）。そして、ステップＳＴ２２で作成されたＪａｖａアプリ名称リストに基づきＪａｖａアプリメニューが表示される（ステップＳＴ２３）。次いで、ユーザのリモコン９ａによる選択に応じて、手動によって起動するＪａｖａアプリ（以下、「手動起動のＪａｖａアプリ」という）が決定される（ステップＳＴ２４）。次いで、その時点で動作している自動起動されたＪａｖａアプリが停止される（ステップＳＴ２５）。その後、ステップＳＴ２４で決定された手動起動のＪａｖａアプリが起動される（ステップＳＴ２６）。
【００４９】
ここで、Ｊａｖａアプリメニューを生成する動作の詳細を説明する。Ｊａｖａアプリ蓄積部４１は、実施の形態１で説明したように、蓄積しているＪａｖａアプリを、図４に示すＪａｖａアプリ管理情報によって管理している。Ｊａｖａアプリ蓄積部４１は、Ｊａｖａアプリ管理部４２から送られてくるＪａｖａアプリリスト要求（実施の形態１におけるＪａｖａアプリ読出依頼に相当する）を受け取ると、Ｊａｖａアプリ管理情報に含まれるＪａｖａアプリ名称をリスト形式のデータ、例えば、「かえるたたき，ムーンシュート，占い，」のように、カンマで区切った形式のデータとして、Ｊａｖａアプリ管理部４２に渡す。Ｊａｖａアプリ管理部４２は、受け取ったＪａｖａアプリリストからＪａｖａアプリメニューデータを生成する。なお、Ｊａｖａアプリメニューデータの生成は、従来のカーナビゲーション装置におけるメニュー画面データの生成と同じ方法で行うことができるので、ここでは詳細な説明は省略する。
【００５０】
以上説明したように、この発明の実施の形態２に係るカーナビゲーション装置によれば、ユーザ入力部４６から所定のアプリケーション以外の他のアプリケーションの起動指示が入力された時に、自動起動された所定のアプリケーションの実行を中断または終了させるように構成したので、車載情報サービスのＪａｖａアプリが１つしか動作しないカーナビゲーション装置であっても、例えばゲームなどといったユーザが動作させたいＪａｖａアプリを動作させることができる。
【００５１】
なお、上述した実施の形態２に係るカーナビゲーション装置では、上述した実施の形態２に係るカーナビゲーション装置では、ユーザが指定したＪａｖａアプリを起動させる場合に、自動起動したＪａｖａアプリを終了させるように構成したが、自動起動されたＪａｖａアプリの実行を継続させ、手動起動されたＪａｖａアプリを起動させないように構成することもできる。この構成によれば、車載情報サービスを提供するＪａｖａアプリが１つしか動作しないカーナビゲーション装置において、特定の車載情報サービスを提供するＪａｖａアプリ（自動起動されたＪａｖａアプリ）のみを動作させることができるので、ユーザに車載情報サービスを提供する機会の減少を防止できる。
【００５２】
また、上述した実施の形態２に係るカーナビゲーション装置では、ユーザから指定されたＪａｖａアプリを起動するときに自動起動されたＪａｖａアプリを終了させるように構成したが、自動起動されたＪａｖａアプリを終了させる時にユーザに終了の可否を確認させるために、図１１に示すようなダイアログを表示させるように構成することができる。この構成により、ユーザの誤操作によるＪａｖａアプリの手動起動を回避できるので、誤操作によって起動された手動起動のＪａｖａアプリを終了させるという無駄な処理を行わなくて済む。
【００５３】
また、上述した実施の形態２に係るカーナビゲーション装置では、ユーザが指定したＪａｖａアプリを起動させる場合に、自動起動したＪａｖａアプリを終了させるように構成したが、ユーザがＪａｖａアプリを指定して手動起動した状態で、そのＪａｖａアプリをユーザが手動で終了させた場合に、Ｊａｖａアプリ管理部４２がＪａｖａアプリの終了をＪａｖａアプリ自動起動部４３に通知し、Ｊａｖａアプリ自動起動部４３が、実施の形態１と同様の方法で、自動起動Ｊａｖａアプリ情報をＪａｖａアプリ管理部４２に送り、Ｊａｖａアプリ管理部４２が、受け取った自動起動Ｊａｖａアプリ情報を元に、Ｊａｖａアプリを起動させるよう構成することもできる。この構成によって、ユーザが手動で起動したＪａｖａアプリが終了すると自動起動Ｊａｖａアプリを再開させることができる。その結果、ユーザが手動で起動した例えばゲーム等のＪａｖａアプリが終了すると自動的に特定の車載情報サービスのＪａｖａアプリが動作するので、ユーザに車載情報サービスを提供する機会を増加させることができる。
【００５４】
また、上述した実施の形態２に係るカーナビゲーション装置では、ＣＬＤＣ／ＭＩＤＰで定義されたＪａｖａ仮想マシンをＪａｖａアプリ実行部４４としているため、複数のＪａｖａアプリを同時に動作させることができず、動作しているＪａｖａアプリを終了させてから、次のＪａｖａアプリを起動するようにしている。しかし、複数のＪａｖａアプリが同時に動作可能な場合（例えば、サンマイクロシステムズ社からは、ＣＤＣ（Connected Device Configuration）／ＦＰ（Foundation Profile）／ＰＢＰ（Personal Basis Profile）といったＪａｖａ仮想マシンが定義されている。）には、終了させる必要はなく、メモリ使用量やＣＰＵ負荷の観点から、Ｊａｖａアプリを中断（一時停止）させておくように構成することができる。この場合、各Ｊａｖａアプリにｐａｕｓｅメソッドを用意しておき、Ｊａｖａアプリ実行部がｐａｕｓｅメソッドをコールすることに実現可能である。なお、ＣＤＣ／ＦＰ／ＰＢＰ準拠のＪａｖａ仮想マシンでＪａｖａアプリを停止させるように構成することもできる。
【００５５】
また、上述した実施の形態２に係るカーナビゲーション装置では、ユーザが手動で他のＪａｖａアプリを起動できるように構成したが、Ｊａｖａアプリ管理部４２において、起動させたＪａｖａアプリが自動起動のＪａｖａアプリであるか、ユーザが手動で起動させたＪａｖａアプリであるかを判定し、自動的に起動させたＪａｖａアプリの場合、ユーザが手動で別のアプリを起動できないように構成することもできる。これは、例えば、Ｊａｖａアプリ管理部４２内に自動起動Ｊａｖａアプリの場合にフラグを立てておき、そのフラグが立っている場合には、「メニュー」ボタンが入力された時でも、Ｊａｖａアプリメニューを表示しないように構成することによって実現できる。
【００５６】
なお、上述した実施の形態２に係るカーナビゲーション装置では、ユーザが手動で指定したＪａｖａアプリが起動された時に自動起動されたＪａｖａアプリを終了するように構成したが、Ｊａｖａアプリメニューを表示する際に、Ｊａｖａアプリを終了させるように構成することができる。この場合、Ｊａｖａアプリメニューを表示する際には、どのＪａｖａアプリも動作していないことになる。
【００５７】
さらに、上述した実施の形態２に係るカーナビゲーション装置では、ユーザ入力部４６としてリモコン９ａを使用した例を示したが、ユーザ入力部４６として、タッチパネルや音声認識による音声入力、モニタや車両に設けられているハードウェアキー（ボタン）を用いることもできる。
【００５８】
実施の形態３．
この発明の実施の形態２に係るカーナビゲーション装置は、取得した車両情報に応じて、指定されたＪａｖａアプリを自動起動するようにしたものである。
【００５９】
この実施の形態３に係るカーナビゲーション装置のハードウェア構成は、実施の形態１のそれと同じである。ただし、周辺機器１１としてＧＰＳ受信機が用いられ、このＧＰＳ受信機で受信されたＧＰＳ衛星情報が周辺機器インタフェース１２を介してカーナビゲーション装置の本体（ＣＰＵ２）に送られる。
【００６０】
図１２は、拡張機能モジュール２５のソフトウェア構成を示すブロック図である。この拡張機能モジュール２５は、実施の形態１のそれに、車両情報取得部４８が追加されて構成されている。車両情報取得部４８は、ＧＰＳ衛星情報に基づき車両の位置座標（緯度・経度）を算出し、Ｊａｖａアプリ自動起動部４３に送る。車両情報取得部４８における車両の位置座標の算出方法としては、例えば特開平３−２０２０６５号公報や特開平９―２３６６５０号公報に開示されているように、複数個のＧＰＳ衛星に対する位置および距離から車両の位置座標を算出する方法を用いることができる。
【００６１】
次に、Ｊａｖａアプリ自動起動部４３の動作を説明する。図１３は、Ｊａｖａアプリ自動起動部４３で行われる自動起動条件判定処理を示すフローチャートである。Ｊａｖａアプリ自動起動部４３には、自動起動の条件として、所定の位置座標（緯度・経度）があらかじめ設定されているものとする。
【００６２】
Ｊａｖａアプリ自動起動部４３では、まず、車両情報取得部４８から車両の位置情報が受信される（ステップＳＴ３１）。次いで、あらかじめＪａｖａアプリ自動起動部４３の内部に設定されている位置座標と、車両情報取得部４８から受信した車両の位置座標との距離が算出される（ステップＳＴ３２）。そして、ステップＳＴ３２で算出された距離が所定の閾値以下になったかどうかが調べられる（ステップＳＴ３３）。ここで、所定の閾値以下になっていないことが判断されると、シーケンスはステップＳＴ３１に戻り、上述した処理が繰り返される。一方、ステップＳＴ３３で、所定の閾値以下になったことが判断されると、Ｊａｖａアプリ管理部４２に自動起動アプリ情報が送信される（ステップＳＴ３４）。以上により、Ｊａｖａアプリが自動起動される。
【００６３】
以上説明したように、この発明の実施の形態３に係るカーナビゲーション装置によれば、車両状態に応じて、Ｊａｖａアプリを自動起動するかどうかを判断することが可能となるので、車両位置によっては提供しても意味のない車載情報サービスを提供するＪａｖａアプリの起動を抑止できる。
【００６４】
なお、上述した実施の形態３に係るカーナビゲーション装置では、あらかじめＪａｖａアプリ自動起動部４３の内部に設定されている位置座標と、車両情報取得部４８から受信した車両の位置座標とが所定距離内にある場合にＪａｖａアプリを自動起動するように構成したが、Ｊａｖａアプリの内部に自己が自動起動される条件として位置座標を記憶しておき、このＪａｖａアプリの内部に記憶された位置座標と車両情報取得部４８から受信した車両の位置座標とが所定距離内にある場合にＪａｖａアプリを自動起動するように構成することができる。この構成によれば、車載情報サービスを提供する側で自動起動条件を指定することが可能になり、車載情報サービスを提供するサービスプロバイダの意図を反映したサービスが容易になる。
【００６５】
また、上述した実施の形態３に係るカーナビゲーション装置では、単一のＪａｖａアプリに対して、所定の自動起動の条件を設定するように構成したが、自動起動の候補となる複数のＪａｖａアプリを用意し、Ｊａｖａアプリ自動起動部４３が車両情報取得部４８から受け取った車両の位置座標に応じて自動起動するＪａｖａアプリを選択するように構成することができる。この構成によれば、自動起動される複数のＪａｖａアプリの中から、車両状態に応じて起動するＪａｖａアプリを切り替えることが可能になる。
【００６６】
また、上述した実施の形態３に係るカーナビゲーション装置では、単一のＪａｖａアプリに対して、所定の自動起動の条件を設定するように構成したが、自動起動の候補となる複数のＪａｖａアプリを用意し、各Ｊａｖａアプリに、図１４に示すような、自己が自動起動される位置座標を自動起動条件として設定しておき、Ｊａｖａアプリ自動起動部４３が車両情報取得部４８から受け取った車両の位置座標と、Ｊａｖａアプリに設定された各自動起動条件とを比較することにより、自動起動するＪａｖａアプリを選択するように構成することができる。この構成によれば、自動起動される複数のＪａｖａアプリの中から、車両状態に応じて起動するＪａｖａアプリを切り替えることが可能になるとともに、車載情報サービスを提供する側で自動起動条件を指定することが可能になるので、車載情報サービスを提供するサービスプロバイダの意図を反映したサービスが容易になる。
【００６７】
また、上述した実施の形態３に係るカーナビゲーション装置では、Ｊａｖａアプリ自動起動部４３は、Ｊａｖａアプリの自動起動条件を判定して該Ｊａｖａアプリを起動するように構成したが、自動起動条件に該当することによって自動起動されたＪａｖａアプリを、自動起動条件に該当しなくなった時に、終了させるように構成することもできる。この場合、Ｊａｖａアプリ自動起動部４３は、Ｊａｖａアプリ管理部４２に対して、Ｊａｖａアプリ自動終了要求を発行し、Ｊａｖａアプリ管理部４２は、自動起動されたＪａｖａアプリを終了させる。
【００６８】
また、上述した実施の形態３に係るカーナビゲーション装置では、自動起動Ｊａｖａアプリが起動される際には、動作中のＪａｖａアプリは存在しないものとしているが、ユーザが手動で起動したＪａｖａアプリや、他の自動起動Ｊａｖａアプリが動作中であってもよい。この場合、Ｊａｖａアプリ管理部４２は、動作中のＪａｖａアプリを一旦終了させてから、Ｊａｖａアプリ自動起動部４３から指定されたＪａｖａアプリを起動する処理を行う。
【００６９】
また、上述した実施の形態３に係るカーナビゲーション装置では、車両情報取得部４８で取得される情報を車両の位置座標としたが、位置座標以外の車両情報として、速度、方位、時間（年月日・曜日）を用いることもできるし、ユーザの状態、例えば座席にセンサによって検知された搭乗人数を用いることもできる。さらには、上述した自動起動条件をユーザが入力または設定するように構成することもできる。
【００７０】
実施の形態４．
この発明の実施の形態４に係るカーナビゲーション装置は、外部（車外）から発行された起動トリガによってＪａｖａアプリを自動起動させるようにしたものである。
【００７１】
この実施の形態４に係るカーナビゲーション装置のハードウェア構成は、実施の形態１のそれと同じである。ただし、周辺機器１１として、ＤＳＲＣ（Dedicated Short−Range Communication）路側機から無線で送られてくるデータ（自動起動トリガ情報）を受信することが可能なＤＳＲＣ車載器が用いられる。このＤＳＲＣ車載器は、カーナビゲーション装置とケーブルで接続されており、ＤＳＲＣ路側機から受信した信号をＤＳＲＣデータとして周辺機器インタフェース１２を介してカーナビゲーション装置の本体（ＣＰＵ２）に送る。なお、ＤＳＲＣは、現存のＥＴＣ（Electronic Toll Collection）で用いられている通信方式であり、周知であるので、詳細な説明は省略する。
【００７２】
図１５は、拡張機能モジュール２５のソフトウェア構成を示すブロック図である。この拡張機能モジュール２５は、実施の形態１のそれに、ＤＳＲＣトリガ受信部４９が追加されて構成されている。ＤＳＲＣトリガ受信部４９は、ＳＤＲＣ車載機からＤＳＲＣデータを受け取り、ＤＳＲＣトリガデータとしてＪａｖａアプリ自動起動部４３に送る。これによって、ＤＳＲＣ路側機が設置された駐車場やガソリンスタンドのような固定の場所において、所定のＪａｖａアプリを起動することが可能になっている。
【００７３】
次に、ＤＳＲＣトリガ受信部４９およびＪａｖａアプリ自動起動部４３の動作を説明する。ＤＳＲＣトリガ受信部４９では、ＤＳＲＣ車載器から受信したＤＳＲＣデータを、ＤＳＲＣトリガデータとしてＪａｖａアプリ自動起動部４３に送る。Ｊａｖａアプリ自動起動部４３は、受け取ったＤＳＲＣトリガデータが自動起動トリガ情報（例えば、「JavaApp start」といった文字列情報）であるかどうかを判断し、自動起動トリガ情報である場合に、Ｊａｖａアプリ管理部４２に対して、あらかじめＪａｖａアプリ自動起動部４３の内部に設定されたＪａｖａアプリ名称を自動起動アプリ情報として送る。これ以外の動作は、実施の形態１のそれと同じである。
【００７４】
以上説明したように、この発明の実施の形態４に係るカーナビゲーション装置によれば、外部から受信した自動起動トリガ情報に応じて、Ｊａｖａアプリを自動起動するかどうかを判断することが可能となるので、ＤＳＲＣ路側機が設置された場所に好適な車載情報サービスを提供するＪａｖａアプリを起動することができる。これにより、例えば、駐車場にＤＳＲＣ路側機が設置されている場合において、その駐車場の出入口や空きスペースを案内するＪａｖａアプリをＤＳＲＣ路側機から受信して起動させることにより、それらを表示させるといった利用が可能である。
【００７５】
なお、上述した実施の形態４に係るカーナビゲーション装置では、あらかじめＪａｖａアプリ自動起動部４３の内部に設定されている自動起動トリガ情報と、ＤＳＲＣトリガ受信部４９で受信された自動起動トリガ情報（ＤＳＲＣトリガデータ）とが一致する場合にＪａｖａアプリを自動起動するように構成したが、Ｊａｖａアプリの内部に自己が自動起動される条件として自動起動トリガ情報を記憶しておき、このＪａｖａアプリの内部に記憶された自動起動トリガ情報とＤＳＲＣトリガ受信部４９で受信された自動起動トリガ情報とが一致した場合にＪａｖａアプリを自動起動するように構成することができる。この構成によれば、車載情報サービスを提供する側で自動起動条件を指定することが可能になり、車載情報サービスを提供するサービスプロバイダの意図を反映したサービスが容易になる。
【００７６】
また、上述した実施の形態４に係るカーナビゲーション装置では、単一のＪａｖａアプリに対して、所定の自動起動の条件を設定するように構成したが、自動起動の候補となる複数のＪａｖａアプリを用意し、Ｊａｖａアプリ自動起動部４３がＤＳＲＣトリガ受信部４９から受け取った自動起動トリガ情報（ＤＳＲＣトリガデータ）に応じて自動起動するＪａｖａアプリを選択するように構成することができる。この構成によれば、自動起動される複数のＪａｖａアプリの中から、自動起動トリガ情報（ＤＳＲＣトリガデータ）に応じて起動するＪａｖａアプリを切り替えることが可能になる。
【００７７】
また、上述した実施の形態４に係るカーナビゲーション装置では、単一のＪａｖａアプリに対して、所定の自動起動の条件を設定するように構成したが、自動起動の候補となる複数のＪａｖａアプリを用意し、各Ｊａｖａアプリに、自己が自動起動される自動起動トリガ情報を自動起動条件として設定しておき、Ｊａｖａアプリ自動起動部４３がＤＳＲＣトリガ受信部４９から受け取った自動起動トリガ情報（ＤＳＲＣトリガデータ）を、Ｊａｖａアプリに設定された各自動起動条件と比較することにより、自動起動するＪａｖａアプリを選択するように構成することができる。この構成によれば、自動起動される複数のＪａｖａアプリの中から、自動起動トリガ情報（ＤＳＲＣトリガデータ）に応じて起動するＪａｖａアプリを切り替えることが可能になるとともに、車載情報サービスを提供する側で自動起動条件を指定することが可能になるので、車載情報サービスを提供するサービスプロバイダの意図を反映したサービスが容易になる。
【００７８】
また、上述した実施の形態４に係るカーナビゲーション装置では、自動起動トリガ情報として、「JavaApp start」という文字列を使用したが、起動するＪａｖａアプリ名称を自動起動トリガ情報として用いることもできる。この場合、Ｊａｖａアプリ自動起動部４３では、受信したＪａｖａアプリ名称が、自動起動アプリ候補として用意されているＪａｖａアプリの中に存在すれば、Ｊａｖａアプリ管理部４２に対して、受信したＪａｖａアプリ名称を有するＪａｖａアプリの自動起動を指示する。
【００７９】
また、自動起動トリガ情報として、自動起動条件を文字列で記述したものを用いるように構成することもできる。例えば、図１６に示すように、起動レベルをあらかじめ複数の自動起動アプリ候補の各々に設定しておき、起動レベルをＤＳＲＣ路側機から送信するように構成することができる。
実施の形態４の説明では、自動起動トリガを起動のトリガとして扱っているが、起動するＪａｖａアプリの起動パラメーターを含んでも構わない。例えば、複数の入口がある駐車場で、駐車場の入口を示すパラメーターをＤＳＲＣで渡し、自動起動されたＪａｖａアプリがパラメーターに応じて、駐車場の案内図を表示することができる。
【００８０】
さらに、上述した実施の形態４に係るカーナビゲーション装置では、車外からの起動トリガの送信手段として、ＤＳＲＣを用いたが、無線ＬＡＮ（Local Area Network）を用いることもできる。また、車内に受光部やマイクを設置しておき、車外から送られてくる光や音を起動トリガとして使用するように構成することもできる。
【００８１】
実施の形態５．
この発明の実施の形態４に係るカーナビゲーション装置は、自動起動の対象になるＪａｖａアプリであるかどうかをインストール時に判定し、自動起動の対象であると判定されたＪａｖａアプリを自動起動Ｊａｖａアプリとして設定するようにしたものである。
【００８２】
この実施の形態５に係るカーナビゲーション装置のハードウェア構成は、実施の形態１のそれと同じである。ただし、周辺機器１１として携帯電話が用いられ、この携帯電話で所定のアドレス（ＵＲＬ；Uniform Resource Locator）を有するＷＥＢサーバ（センタ）にアクセスし、ＷＥＢサーバからＪａｖａアプリをダウンロードする。ダウンロードされたＪａｖａアプリは、周辺機器インタフェース１２を介してカーナビゲーション装置の本体（ＣＰＵ２）に送られる。
【００８３】
図１７は、拡張機能モジュール２５のソフトウェア構成を示すブロック図である。この拡張機能モジュール２５は、実施の形態１のそれに、Ｊａｖａアプリインストール部５０および自動起動Ｊａｖａアプリ判別部５１が追加されて構成されている。
【００８４】
まず、Ｊａｖａアプリインストール部５０について説明する。まず、ＷＥＢサーバからＪａｖａアプリをダウンロードする方法について説明する。Ｊａｖａアプリインストール部５０は、まず、所定のＵＲＬのＷＥＢサーバにアクセスし、図１８に示すような、ＷＥＢサーバで提供されているＨＴＭＬ（HyperText Markup Language）ファイルをダウンロードする。アクセス方法としては、従来のＨＴＴＰ（HyperText Transfer Protocol）を用いることができる。なお、ＨＴＭＬファイルには、Ｊａｖａアプリ名称（図１８に示す例では「点検リマインダ」）と、Ｊａｖａアプリを指定するためのＪＡＤファイルに付されたＪＡＤファイル名称（図１８では、「reiminder.jad」）が記述されている。
【００８５】
次に、Ｊａｖａアプリインストール部５０は、ダウンロードしたＨＴＭＬファイルからＪＡＤファイル名称とＪａｖａアプリ名称を抜き出す。次に、抜きだしたＪＡＤファイル名称を有するＪＡＤファイルをＷＥＢサーバからダウンロードする。図１９は、ＪＡＤファイルの一例を示す。ＪＡＤファイルには、ＪａｖａアプリデータであるＪＡＲファイルのファイル名が記述されている。Ｊａｖａアプリインストール部５０は、このＪＡＲファイルのファイル名の文字列を抜き出して、このファイル名を有するＪＡＲファイルをＷＥＢサーバからダウンロードする。なお、ＭＩＤＰのＪＡＤファイルの仕様については、サンマイクロシステムズ社のサイト（http://www.sun.com/）に紹介されているので必要に応じて参照されたい。
【００８６】
以上の処理によって、ＪＡＤファイル、ＪＡＲファイルおよびＪａｖａアプリ名称のダウンロードが完了する。Ｊａｖａアプリインストール部５０は、ダウンロードしたＪＡＲファイルおよびＪａｖａアプリ名称を、ＪａｖａアプリデータとしてＪａｖａアプリ蓄積部４１に送り、ＪＡＤファイルおよびＪａｖａアプリ名称を自動起動Ｊａｖａアプリ判別部５１に送る。なお、Ｊａｖａアプリ蓄積部４１は、実施の形態１で説明したように、Ｊａｖａアプリ管理情報を格納しているが、さらにＪＡＲファイルを蓄積処理するとともに、受け取ったＪａｖａアプリ名称およびＪＡＲファイルに基づきＪａｖａアプリ管理情報を更新する。
【００８７】
次に、自動起動Ｊａｖａアプリ判別部５１の動作を、図２０に示す自動起動アプリ判定処理のフローチャートを参照しながら説明する。自動起動Ｊａｖａアプリ判別部５１は、Ｊａｖａアプリインストール部５０から受信したＪＡＤファイルを解析し、まず、「AutoStarted:」という文字列が含まれるかどうかをチェックする（ステップＳＴ４１）。そして、このチェックの結果、「AutoStarted:」という文字列が含まれていることを判断すると、「AutoStarted:」に続く文字列が、「ＴＲＵＥ」であるかどうかをチェックする（ステップＳＴ４２）。このチェックの結果、「ＴＲＵＥ」であることを判断すると、インストールしたＪａｖａアプリは自動起動の対象であると認識し、自動起動アプリとして設定する（ステップＳＴ４３）。
【００８８】
具体的には、自動起動Ｊａｖａアプリ判別部５１は、Ｊａｖａアプリインストール部５０から受け取ったＪａｖａアプリ名称をＪａｖａアプリ自動起動部４３に送る。Ｊａｖａアプリ自動起動部４３は、受け取ったＪａｖａアプリ名称を自動起動Ｊａｖａアプリとして設定する。つまり、それまでに設定したＪａｖａアプリ名称と置き換える。一方、ステップＳＴ４１において、「AutoStarted:」という文字列が含まれていないと判断した場合、およびステップＳＴ４２において、「ＴＲＵＥ」でないと判断した場合は、自動起動アプリとして設定しない（ステップＳＴ４４）。
【００８９】
以上説明したように、この発明の実施の形態５に係るカーナビゲーション装置によれば、車載情報サービスを提供するＪａｖａアプリのインストール時に自動起動の対象とするＪａｖａアプリと自動起動の対象としないＪａｖａアプリとを区別することが可能となる。また、自動起動が可能であると判定されたＪａｖａアプリのみが自動起動の対象となるので、許可されたサービスプロバイダからのＪａｖａアプリしか自動起動に設定されない。従って、車載情報システムにおいて優先的に車載情報サービスやそのサービスプロバイダを取捨選択することが可能になる。
【００９０】
なお、上述した実施の形態５に係るカーナビゲーション装置では、ＷＥＢサーバからインストールするように構成したが、Ｊａｖａアプリ（ＪＡＲファイル）、ＪＡＤファイルおよびＨＴＭＬファイルをＤＶＤ−ＲＯＭに格納しておき、このＤＶＤ−ＲＯＭから読み出してインストールするように構成することもできる。
【００９１】
また、上述した実施の形態５に係るカーナビゲーション装置では、自動起動の対象となるＪａｖａアプリが１つである（それまでに設定されていたものは置き換えられる）について説明したが、複数のＪａｖａアプリを自動起動の対象とするように構成することができる。この場合、Ｊａｖａアプリを置き換える処理を行う代わりに、自動起動Ｊａｖａアプリ候補をリストとして管理することになる。
【００９２】
さらに、上述した実施の形態５に係るカーナビゲーション装置では、ＪＡＤファイルから自動起動Ｊａｖａアプリであるかどうか判別するために、ＪＡＤファイルに含まれる「AutoStarted:」というキーを用いたが、例えば、「MIDlet-Vendor」（Ｊａｖａアプリの提供者）を用いるように構成することもできる。この構成によれば、例えば、Ａ社から提供されたＪａｖａアプリは自動起動の対象とするといった機能を実現できる。
【００９３】
また、ＪＡＤファイルの内容を用いないで自動起動Ｊａｖａアプリであるかどうかを判別するように構成することもできる。その方法として２つ挙げる。
（１）ダウンロード先（ＵＲＬ）による判別
Ｊａｖａアプリのダウンロード先（ＵＲＬ）によって区別する。例えば、Ａ社のサイトとして、ＵＲＬ内に、http://www.a.com/が含まれていれば、自動起動の対象とするといったことが可能である。
（２）電子署名を用いた判別
ＪａｖａアプリをＷＥＢサーバからダウンロードする時に、Ｊａｖａアプリと一緒に電子署名もダウンロードし、ダウンロードした電子署名が正当であるかどうかによって、自動起動の対象とするかどうかを判定するように構成することができる。なお、電子署名を利用した認証は、相戸浩志著、「よくわかる最新情報セキュリティ技術の基本と仕組み」、第１版、株式会社秀和システム、２０００年６月１２日、ｐ．９１−９９に記載されている技術を用いることができる。
【図面の簡単な説明】
【００９４】
【図１】この発明の実施の形態１に係るカーナビゲーション装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態１に係るカーナビゲーション装置のソフトウェア構成を示す図である。
【図３】この発明の実施の形態１に係るカーナビゲーション装置の拡張機能モジュールのソフトウェア構成を示すブロック図である。
【図４】この発明の実施の形態１に係るカーナビゲーション装置で使用されるＪａｖａアプリ管理情報の例を示す図である。
【図５】この発明の実施の形態１の変形例に係るカーナビゲーション装置で使用される自動起動Ｊａｖａアプリ候補の例を示す図である。
【図６】この発明の実施の形態２に係るカーナビゲーション装置の拡張機能モジュールのソフトウェア構成を示すブロック図である。
【図７】この発明の実施の形態２に係るカーナビゲーション装置においてユーザ操作部として使用されるリモコンの構成を示す図である。
【図８】この発明の実施の形態２に係るカーナビゲーション装置のカーナビゲーションＯＳで実施される入力判定処理を示すフローチャートである。
【図９】この発明の実施の形態２に係るカーナビゲーション装置で表示されるＪａｖａアプリメニューの例を示す図である。
【図１０】この発明の実施の形態２に係るカーナビゲーション装置において、ユーザ指定のＪａｖａアプリを起動する時の全体の処理を示すフローチャートである。
【図１１】この発明の実施の形態２の変形例に係るカーナビゲーション装置で表示されるダイアログの例を示す図である。
【図１２】この発明の実施の形態３に係るカーナビゲーション装置の拡張機能モジュールのソフトウェア構成を示すブロック図である。
【図１３】この発明の実施の形態３に係るカーナビゲーション装置のＪａｖａアプリ自動起動部で行われる自動起動条件判定処理を示すフローチャートである。
【図１４】この発明の実施の形態３に係るカーナビゲーション装置において使用される自動起動条件の例を示す図である。
【図１５】この発明の実施の形態４に係るカーナビゲーション装置の拡張機能モジュールのソフトウェア構成を示すブロック図である。
【図１６】この発明の実施の形態４の変形例に係るカーナビゲーション装置で使用される自動起動トリガ情報の例を示す図である。
【図１７】この発明の実施の形態５に係るカーナビゲーション装置の拡張機能モジュールのソフトウェア構成を示すブロック図である。
【図１８】この発明の実施の形態５に係るカーナビゲーション装置においてＷＥＢサーバからダウンロードされるＨＴＭＬファイルの例を示す図である。
【図１９】この発明の実施の形態５に係るカーナビゲーション装置においてＷＥＢサーバからダウンロードされるＪＡＤファイルの例を示す図である。
【図２０】この発明の実施の形態５に係るカーナビゲーション装置の自動起動Ｊａｖａアプリ判別部で行われる自動起動アプリ判定処理を示すフローチャートである。
【符号の説明】
【００９５】
１  ＲＯＭ、２  ＣＰＵ、３  ＲＡＭ、４  外部記憶装置ドライブ、５  外部記憶メディア、６  外部記憶装置インタフェース、７  ディスプレイ、８  グラフィック制御回路、９  ユーザ操作部、９ａ  リモコン、１０  操作部インタフェース、１１  周辺機器、１２  周辺機器インタフェース、２１  カーナビゲーションハードウェア、２２  デバイスドライバ、２３  カーナビゲーションＯＳ、２４  基本機能モジュール、２５  拡張機能モジュール、３０  ナビゲーションサービス、３１  ＪａｖａＶＭインタフェースモジュール、４０  Ｊａｖａアプリ（アプリケーション）、４１  Ｊａｖａアプリ蓄積部（Ｊａｖａアプリ蓄積手段）、４２  Ｊａｖａアプリ管理部（Ｊａｖａアプリ管理手段）、４３  Ｊａｖａアプリ自動起動部（Ｊａｖａアプリ自動起動手段）、４４  Ｊａｖａアプリ実行部（Ｊａｖａアプリ実行手段）、４５  ナビゲーションサービスインタフェースモジュール、４６  ユーザ入力部（入力手段）、４７  表示部、４８  車両情報取得部（車両情報取得手段）、４９  ＤＳＲＣトリガ受信部（起動トリガ受信手段）、５０  Ｊａｖａアプリインストール部（アプリインストール手段）、５１  自動起動Ｊａｖａアプリ判別部（アプリ判別手段）。
【図１】
2006309664.tif 000003
【図２】
2006309664.tif 000004
【図３】
2006309664.tif 000005
【図４】
2006309664.tif 000006
【図５】
2006309664.tif 000007
【図６】
2006309664.tif 000008
【図７】
2006309664.tif 000009
【図８】
2006309664.tif 000010
【図９】
2006309664.tif 000011
【図１０】
2006309664.tif 000012
【図１１】
2006309664.tif 000013
【図１２】
2006309664.tif 000014
【図１３】
2006309664.tif 000015
【図１４】
2006309664.tif 000016
【図１５】
2006309664.tif 000017
【図１６】
2006309664.tif 000018
【図１７】
2006309664.tif 000019
【図１８】
2006309664.tif 000020
【図１９】
2006309664.tif 000021
【図２０】
2006309664.tif 000022