(57)【要約】【課題】モジュール毎に機能制限を設定する機能がダウンロードするプログラムに搭載されていなくても、運転操作に影響を与えない範囲内でプログラムを実行することができるアプリ実行装置を得ることを目的とする。【解決手段】車両状態検出部１３により検出された車両の状態に応じて、サーバ２からダウンロードしたアプリケーションプログラム３の動作を制御する。これにより、モジュール毎に機能制限を設定する機能がダウンロードするアプリケーションプログラム３に搭載されていなくても、運転操作に影響を与えない範囲内でアプリケーションプログラム３を実行することができる。【選択図】        図１
2005028997.tif 000002
【特許請求の範囲】
【請求項１】
外部からアプリケーションプログラムをロードして、そのアプリケーションプログラムを記憶するアプリ記憶手段と、車両の状態を検出する車両状態検出手段と、上記車両状態検出手段により検出された車両の状態に応じて上記アプリ記憶手段に記憶されているアプリケーションプログラムの動作を制御するアプリ制御手段とを備えたアプリ実行装置。
【請求項２】
アプリ制御手段は、車両の状態に応じたアプリケーションプログラムの制御方法が記載されているアプリ動作制御情報が当該アプリケーションプログラムに含まれている場合、そのアプリ動作制御情報を参照して、そのアプリケーションプログラムの動作を制御することを特徴とする請求項１記載のアプリ実行装置。
【請求項３】
アプリ制御手段は、アプリケーションプログラムに添付されている証明書の正当性を判定し、その証明書の正当性が認められる場合に限り、そのアプリケーションプログラムの動作を制御する際にアプリ動作制御情報を参照することを特徴とする請求項２記載のアプリ実行装置。
【請求項４】
アプリ制御手段は、アプリケーションプログラムの動作として、アプリケーションプログラムの実行状態、ディスプレイに対するアプリケーションプログラムの表示状態、アプリケーションプログラムに対する操作情報の伝達状態、スピーカに対するアプリケーションプログラムの音出力状態のいずれかを制御することを特徴とする請求項１記載のアプリ実行装置。
【請求項５】
アプリ制御手段は、アプリケーションプログラムを起動する時、あるいは、車両の走行状態が変化した時、そのアプリケーションプログラムの動作を制御することを特徴とする請求項１記載のアプリ実行装置。
【請求項６】
アプリ制御手段は、アプリ記憶手段に記憶されているアプリケーションプログラムのうち、現在動作を制御しているアプリケーションプログラムを明示することを特徴とする請求項１記載のアプリ実行装置。
【請求項７】
アプリ制御手段は、アプリ記憶手段に記憶されているアプリケーションプログラムのうち、車両が走行しているときでも、起動可能なアプリケーションプログラムを明示することを特徴とする請求項１記載のアプリ実行装置。
【請求項８】
アプリ実行装置の実行手順を示すプログラムと、上記アプリ実行装置を実装している車両の状態に応じた上記プログラムの制御方法が記載されているアプリ動作制御情報とを備えたアプリケーションプログラム。
【請求項９】
アプリ動作制御情報の正当性を確認するための証明書を備えていることを特徴とする請求項８記載のアプリケーションプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えば、Ｊａｖａ（登録商標、以下同じ）アプリをダウンロードして、そのＪａｖａアプリを実行する車載用のアプリ実行装置に関するものである。
【０００２】
【従来の技術】
車載用のアプリ実行装置（例えば、カーナビゲーション装置）では、走行中に複雑な操作を受け付けると、車両の運転操作に支障をきたす可能性があるため、車速の有無やパーキングブレーキの状態を検出して、走行中には複雑な操作を受け付けないようにしている。
即ち、カーナビゲーション装置に予め搭載されているプログラムには、車両の状態に応じて受け付ける操作を制御する機能が組み込まれている。
しかし、外部からカーナビゲーション装置にダウンロードして、カーナビゲーション装置上で実行されるＪａｖａアプリなどのプログラムには、通常、車両の状態に応じて受け付ける操作を制御する機能が組み込まれておらず、走行中でも停止中と同様に実行される。
【０００３】
ただし、以下の特許文献１には、ダウンロードするプログラムのモジュール毎に、機能制限の設定を可能にする仕組みを施し、アプリ実行装置が当該プログラムをダウンロードしたとき、ユーザの操作にしたがってモジュール毎に機能制限を設定する技術が開示されている。
【０００４】
【特許文献１】
特開２００３−１５０２６７号公報（段落番号［０００６］、図１）
【０００５】
【発明が解決しようとする課題】
従来のアプリ実行装置は以上のように構成されているので、ユーザの操作を受け付けて、モジュール毎の機能制限を設定する機能がダウンロードするプログラムに搭載されていれば、例えば、車両の走行中には複雑な操作を受け付けないようにすることができる。しかし、ダウンロードするプログラム毎に、このような機能の搭載を要求すると、プログラムの開発期間が長くなり、開発費用が高騰するなどの課題があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、モジュール毎に機能制限を設定する機能がダウンロードするプログラムに搭載されていなくても、運転操作に影響を与えない範囲内でプログラムを実行することができるアプリ実行装置を得ることを目的とする。
また、この発明は、車両の状態に応じた適切な制御方法を提示することができるアプリケーションプログラムを得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係るアプリ実行装置は、車両状態検出手段により検出された車両の状態に応じて、外部からロードしたアプリケーションプログラムの動作を制御するようにしたものである。
【０００８】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるアプリ実行装置を示す構成図であり、図において、車載用のアプリ実行装置１（例えば、カーナビゲーション装置）はハードウエア上に実装されるＪａｖａ実行環境を用いて実現され、例えば、無線通信回線を利用して、外部のサーバ２からアプリケーションプログラム３をダウンロードして、そのアプリケーションプログラム３を実行する。ただし、アプリケーションプログラム３は、必ずしも外部のサーバ２からダウンロードする必要はなく、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭからロードするようにしてもよい。
サーバ２はＰＣやルータなどのハードウエアで構成され、アプリ実行装置１から要求されたアプリケーションプログラム３をアプリ実行装置１に配信する。アプリケーションプログラム３はＪＡＲ（Ｊａｖａ  ＡＲｃｈｉｖｅ）形式で圧縮されたＪａｖａ言語のアプリであり、その内部にはアプリ実行装置１の実行手順を示すプログラムを備えている。
【０００９】
アプリ追加部１１はサーバ２と無線通信を実行する無線通信装置を備えており、サーバ２からＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）通信プロトコルを用いてアプリケーションプログラム３をダウンロードし、そのアプリケーションプログラム３をアプリ記憶部１２に追加する。この例では、ＨＴＴＰ通信プロトコルを用いるものとしているが、これに限るものではなく、例えば、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などの通信プロトコルを用いてもよい。アプリ記憶部１２はハードディスクやメモリなどから構成され、アプリ追加部１１によりダウンロードされたアプリケーションプログラム３を記憶する。なお、アプリ追加部１１及びアプリ記憶部１２はアプリ記憶手段を構成している。
【００１０】
車両状態検出部１３は車両状態を検出するためのセンサ群と結合され、そのセンサ群のセンサ信号を取得して車両状態を検出する車両状態検出手段を構成している。なお、車両状態検出部１３はセンサ群の検出信号を取得するＣ言語などのＮａｔｉｖｅ言語で作成されたプログラムをＪａｖａプログラムから利用可能とするため、ＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）などを用いて実装されるプロファイルを備えている。
【００１１】
動作制御部１４は車両状態検出部１３により検出された車両状態から車両が走行中であるか否かを判定し、例えば、走行中でなければアプリケーションプログラム３の起動許可をアプリ管理部１５に与える。アプリ管理部１５は動作制御部１４から起動許可を受ければ、アプリケーションプログラム３の起動指令をアプリ実行部１６に出力し、動作制御部１４から停止許可を受ければ、アプリケーションプログラム３の停止指令をアプリ実行部１６に出力する。
アプリ実行部１６はＪａｖａ仮想マシンや必要なＡＰＩを含むＪａｖａ実行環境であり、アプリ管理部１５の指示の下でアプリケーションプログラム３を実行する。なお、動作制御部１４、アプリ管理部１５及びアプリ実行部１６はアプリ制御手段を構成している。
【００１２】
サーバ２のアプリ記憶部２１は数種類のアプリケーションプログラム３を記憶し、アプリ配信部２２はアプリ実行装置１からアプリ配信要求を受信すると、アプリ記憶部２１から要求対象のアプリケーションプログラム３を取り出し、そのアプリケーションプログラム３をアプリ実行装置１に配信する。
図２はアプリ起動時の処理内容を示すフローチャートであり、図３は停止状態から走行状態に移行時の処理内容を示すフローチャートである。
【００１３】
次に動作について説明する。
最初に、アプリ起動時の処理内容を説明する。
ユーザが新たなアプリケーションプログラム３の追加を希望する場合、ユーザが図示せぬアプリ実行装置１の操作キーやリモコン等を操作して、ユーザＩＤとパスワードを入力する。
アプリ実行装置１のアプリ追加部１１は、ユーザＩＤとパスワードを含むアプリ配信要求をサーバ２に送信する。
【００１４】
サーバ２のアプリ配信部２２は、アプリ実行装置１からユーザＩＤとパスワードを含むアプリ配信要求を受信すると、そのユーザＩＤとパスワードを照合して、アプリ実行装置１に対するログインを許可するか否かを判定する。
サーバ２のアプリ配信部２２は、ログインを許可する場合、アプリ記憶部２１に記憶されているアプリケーションプログラム、即ち、配信可能なアプリケーションプログラムを示すメニューをアプリ実行装置１に送信する。ログインを許可しない場合、例えば、ユーザ登録が行われていないためログインを許可できない旨を示すメッセージをアプリ実行装置１に送信する。
【００１５】
アプリ実行装置１のアプリ追加部１１は、サーバ２から配信可能なアプリケーションプログラムを示すメニューを受信すると、そのメニューを図示せぬディスプレイに表示し、ユーザが図示せぬアプリ実行装置１の操作キーやリモコン等を操作して、ダウンロードを希望するアプリケーションプログラム３を選択すると、その選択結果をサーバ２に送信する。
サーバ２のアプリ配信部２２は、アプリ実行装置１から選択結果を受けると、アプリ記憶部２１からその選択結果に見合うアプリケーションプログラム３を取り出し、そのアプリケーションプログラム３をアプリ実行装置１に配信する。
これにより、アプリ実行装置１のアプリ追加部１１は、サーバ２からアプリケーションプログラム３をダウンロードして、そのアプリケーションプログラム３をアプリ記憶部１２に追加する（ステップＳＴ１）。
【００１６】
アプリ実行装置１のアプリ管理部１５は、新たなアプリケーションプログラム３がアプリ記憶部１２に追加されると、アプリ記憶部１２に記憶されているアプリケーションプログラム３の一覧表を生成して図示せぬディスプレイに表示する（図４を参照）。
例えば、ユーザが一覧表の一番上に表示されている「シューティングゲーム」のアプリケーションプログラム３を選択し、画面下部の「起動」ボタンをクリックすると、「シューティングゲーム」の起動要求を動作制御部１４に出力する。
【００１７】
動作制御部１４は、アプリ管理部１５から「シューティングゲーム」の起動要求を受けると、車両状態検出部１３により検出されている車両状態から車両が走行中であるか否かを判定する（ステップＳＴ２，ＳＴ３）。
ここで、車両状態検出部１３は、車両状態を検出するためのセンサ群のセンサ信号を取得して車両状態を検出するが、車両状態として、例えば、走行速度、サイドブレーキのロック状態、ヘッドランプやスモールランプの点灯状態、ドアの開閉状態、ドアのロック状態、窓の開閉状態、エアコンの動作状態、オーディオ機器の動作状態、ウインカーの点滅状態、ハンドルの舵角、ハザードランプの点灯状態、走行方位、現在位置、走行距離、走行時間、日付、時刻などがある。
なお、動作制御部１４は、一般的なカーナビゲーション装置と同様に、例えば、走行速度が零であるか否かを判断して車両が走行中であるか否かを判定する。
【００１８】
動作制御部１４は、車両が走行中ではないと判断すると、「シューティングゲーム」の起動許可をアプリ管理部１５に与える（ステップＳＴ４）。
アプリ管理部１５は、動作制御部１４から「シューティングゲーム」の起動許可を受けると、特別な制限を設けることなく、「シューティングゲーム」を起動させるため、「シューティングゲーム」の起動指令をアプリ実行部１６に出力する。具体的には、アプリ管理部１５が「シューティングゲーム」のメインクラスのオブジェクトを生成し、アプリ実行部１６は指示に従って、オブジェクトを生成する。
アプリ実行部１６は、アプリ管理部１５から「シューティングゲーム」の起動指令を受けると、「シューティングゲーム」の実行を開始する。
これにより、ユーザは「シューティングゲーム」に伴う操作を開始することができる。
【００１９】
一方、動作制御部１４は、車両が走行中であると判断すると、「シューティングゲーム」の起動不許可をアプリ管理部１５に与える（ステップＳＴ５）。
アプリ管理部１５は、動作制御部１４から「シューティングゲーム」の起動不許可を受けると、アプリ実行部１６に対する「シューティングゲーム」の起動指令を出力しない。
これにより、アプリ実行部１６が「シューティングゲーム」の実行を開始することはないので、ユーザは「シューティングゲーム」に伴う操作を開始することができない。
【００２０】
次に、車両が停止状態から走行状態に移行するときの処理内容を説明する。
動作制御部１４は、車両が停止しているとき、アプリケーションプログラム３である「シューティングゲーム」の実行が開始されると、車両状態検出部１３により検出されている車両状態から、車両が停止状態から走行状態に移行しているか否かを判定する（ステップＳＴ１１，ＳＴ１２）。
動作制御部１４は、車両が停止状態を維持していると判断すると、「シューティングゲーム」の実行を継続しても、運転操作に影響を与えることがないため、「シューティングゲーム」の停止許可をアプリ管理部１５に与えることなく、ステップＳＴ１１の処理に戻る。
【００２１】
一方、動作制御部１４は、車両が停止状態から走行状態に移行していると判断すると、「シューティングゲーム」の停止許可をアプリ管理部１５に与える（ステップＳＴ１３）。
アプリ管理部１５は、動作制御部１４から「シューティングゲーム」の停止許可を受けると、「シューティングゲーム」の停止指令をアプリ実行部１６に出力する。具体的には、「シューティングゲーム」のメインクラスに終了用メソッドを用意しておき、アプリ管理部１５が終了用メソッドを呼び出してアプリ実行部１６に与える。
アプリ実行部１６は、アプリ管理部１５から「シューティングゲーム」の停止指令を受けると、「シューティングゲーム」の実行を終了する。
これにより、以降、ユーザは「シューティングゲーム」に伴う操作を行うことができなくなる。
【００２２】
最後に、車両が走行状態から停止状態に移行したときの処理内容であるが、この実施の形態１では、車両が走行中のときは、すべてのアプリケーションプログラムを終了させるため、車両が走行状態から停止状態に移行したときに、動作中のアプリケーションプログラムは存在しない。
したがって、この実施の形態１では、車両が走行状態から停止状態に移行したときは、特別な処理を行わない。
【００２３】
以上で明らかなように、この実施の形態１によれば、車両状態検出部１３により検出された車両の状態に応じて、サーバ２からダウンロードしたアプリケーションプログラム３の動作を制御するように構成したので、モジュール毎に機能制限を設定する機能がダウンロードするアプリケーションプログラム３に搭載されていなくても、運転操作に影響を与えない範囲内でアプリケーションプログラム３を実行することができる効果を奏する。
【００２４】
なお、この実施の形態１では、アプリ管理部１５がアプリケーションプログラム３を管理する方法として、アプリケーションプログラムのメインクラスのオブジェクト生成を指示したり、メインクラスに終了用メソッドを実装して、これを呼び出したりする管理方法を示したが、ＯＳＧｉ（Ｏｐｅｎ  ＳｅｒｖｉｃｅｓＧａｔｅｗａｙ  Ｉｎｉｔｉａｔｉｖｅ）仕様やＭＩＤＰ（Ｍｏｂｉｌｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｄｅｖｉｃｅ  Ｐｒｏｆｉｌｅ）やｉアプリ（登録商標、以下同じ）管理と同様の管理方法を採用してもよい。
【００２５】
実施の形態２．
図５はこの発明の実施の形態２によるアプリ実行装置を示す構成図であり、図において、図１と同一符号は同一または相当部分を示すので説明を省略する。
動作制御部１７は車両の状態に応じたアプリケーションプログラム３の制御方法が記載されているアプリ動作制御情報がアプリケーションプログラム３に含まれていない場合には図１の動作制御部１４と同様に動作するが、そのアプリ動作制御情報がアプリケーションプログラム３に含まれている場合には当該アプリ動作制御情報を参照して、そのアプリケーションプログラム３の動作を制御する。なお、動作制御部１７はアプリ制御手段を構成している。
図６はアプリ起動時の処理内容を示すフローチャートであり、図７は停止状態から走行状態に移行時の処理内容を示すフローチャートであり、図８は走行状態から停止状態に移行時の処理内容を示すフローチャートである。
【００２６】
次に動作について説明する。
最初に、アプリ起動時の処理内容を説明する。
動作制御部１７は、上記実施の形態１と同様にして、新たなアプリケーションプログラム３がダウンロードされた後、例えば、アプリ管理部１５から「シューティングゲーム」の起動要求を受けると、その「シューティングゲーム」にアプリ動作制御情報が含まれているか否かを判断する（ステップＳＴ２１）。
ここで、アプリ動作制御情報は、アプリケーションプログラム３の目録であるマニフェストファイル（テキスト形式）中に記述され、図９のマニフェストファイルの例では、網掛け部分がアプリ動作制御情報である。
したがって、図９の例では、動作制御部１７は、マニフェストファイルの中に“Ｏｐｅｒａｔｉｏｎ−Ｗｈｉｌｅ−Ｄｒｉｖｉｎｇ：”というキーワードが存在するか否かを確認し、そのキーワードが存在すれば、「シューティングゲーム」にアプリ動作制御情報が含まれていると判断する。
【００２７】
動作制御部１７は、「シューティングゲーム」にアプリ動作制御情報が含まれていると判断すると、「シューティングゲーム」からアプリ動作制御情報の読込を実施する（ステップＳＴ２２）。
図９の例では、“Ｏｐｅｒａｔｉｏｎ−Ｗｈｉｌｅ−Ｄｒｉｖｉｎｇ：”に対応する値“Ｄｉｓａｂｌｅ  Ｏｐｅｒａｔｉｏｎ”をアプリ動作制御情報として読み込むが、ここでのキーワードと対応する値は一例であり、Ｊａｖａやマニフェストの仕様で規定されていないので、メーカが独自に定めることができる。
なお、対応する値“Ｄｉｓａｂｌｅ  Ｏｐｅｒａｔｉｏｎ”は、「走行中に本アプリを操作不可にする」ことを意味している。
【００２８】
動作制御部１７は、アプリ管理部１５から「シューティングゲーム」の起動要求を受けると、上記実施の形態１と同様にして、車両状態検出部１３により検出されている車両状態から車両が走行中であるか否かを判定する（ステップＳＴ２，ＳＴ３）。
動作制御部１７は、車両が走行中ではないと判断すると、上記実施の形態１と同様にして、「シューティングゲーム」の起動許可をアプリ管理部１５に与える（ステップＳＴ４）。
アプリ管理部１５は、動作制御部１７から「シューティングゲーム」の起動許可を受けると、上記実施の形態１と同様にして、「シューティングゲーム」の起動指令をアプリ実行部１６に出力する。
アプリ実行部１６は、アプリ管理部１５から「シューティングゲーム」の起動指令を受けると、「シューティングゲーム」の実行を開始する。
これにより、ユーザは「シューティングゲーム」に伴う操作を開始することができる。
【００２９】
一方、動作制御部１７は、車両が走行中であると判断すると、図９の例では、アプリ動作制御情報の記述内容が「走行中に本アプリを操作不可にする」ことを意味しているので、操作不可状態での「シューティングゲーム」の起動許可をアプリ管理部１５に与える（ステップＳＴ２３）。
アプリ管理部１５は、動作制御部１７から操作不可状態での「シューティングゲーム」の起動許可を受けると、操作不可状態での「シューティングゲーム」の起動指令をアプリ実行部１６に出力する。
アプリ実行部１６は、アプリ管理部１５から操作不可状態での「シューティングゲーム」の起動指令を受けると、操作不可状態で「シューティングゲーム」の実行を開始する。
これにより、「シューティングゲーム」の実行が開始されるが、ユーザは「シューティングゲーム」に伴う操作を開始することができない。
【００３０】
動作制御部１７は、ステップＳＴ２１において、「シューティングゲーム」にアプリ動作制御情報が含まれていないと判断すると、標準のアプリ動作制御情報を適用する（ステップＳＴ２４）。
即ち、「停止中にはアプリケーションプログラム３を制限なしで起動するが、走行中はアプリケーションプログラム３を起動しない」という上記実施の形態１と同様の条件を適用する。
ステップＳＴ２１以降のステップＳＴ２〜ＳＴ５の処理内容は、上記実施の形態１と同様であるため説明を省略する。
【００３１】
次に、車両が停止状態から走行状態に移行するときの処理内容を説明する。
動作制御部１７は、車両が停止しているとき、アプリケーションプログラム３である「シューティングゲーム」の実行が開始されると、上記実施の形態１と同様に、車両状態検出部１３により検出されている車両状態から、車両が停止状態から走行状態に移行しているか否かを判定する（ステップＳＴ１１，ＳＴ１２）。
動作制御部１７は、車両が停止状態を維持していると判断すると、「シューティングゲーム」の実行を継続しても、運転操作に影響を与えることがないため、「シューティングゲーム」の停止許可をアプリ管理部１５に与えることなく、ステップＳＴ１１の処理に戻る。
【００３２】
一方、動作制御部１７は、車両が停止状態から走行状態に移行していると判断すると、ステップＳＴ２１と同様に、「シューティングゲーム」にアプリ動作制御情報が含まれているか否かを判断する（ステップＳＴ３１）。
動作制御部１７は、「シューティングゲーム」にアプリ動作制御情報が含まれていると判断すると、ステップＳＴ２２と同様に、「シューティングゲーム」からアプリ動作制御情報の読込を実施する（ステップＳＴ３２）。
【００３３】
動作制御部１７は、図９の例では、アプリ動作制御情報の記述内容が「走行中に本アプリを操作不可にする」ことを意味しているので、「シューティングゲーム」の実行状態を操作不可状態に設定する設定変更許可をアプリ管理部１５に与える（ステップＳＴ３３）。
アプリ管理部１５は、動作制御部１７から操作不可状態に設定する設定変更許可を受けると、操作不可状態に設定する設定変更指令をアプリ実行部１６に出力する。
アプリ実行部１６は、アプリ管理部１５から操作不可状態に設定する設定変更指令を受けると、「シューティングゲーム」の実行状態を操作不可状態に変更する。
これにより、「シューティングゲーム」の実行は継続されるが、ユーザは「シューティングゲーム」に伴う操作を行うことができなくなる。
【００３４】
動作制御部１７は、「シューティングゲーム」にアプリ動作制御情報が含まれていないと判断すると、ステップＳＴ２４と同様に、標準のアプリ動作制御情報を適用する（ステップＳＴ３４）。
したがって、動作制御部１７は、上記実施の形態１と同様に、「シューティングゲーム」の停止許可をアプリ管理部１５に与える（ステップＳＴ１３）。
アプリ管理部１５は、動作制御部１７から「シューティングゲーム」の停止許可を受けると、「シューティングゲーム」の停止指令をアプリ実行部１６に出力する。
アプリ実行部１６は、アプリ管理部１５から「シューティングゲーム」の停止指令を受けると、「シューティングゲーム」の実行を終了する。
これにより、以降、ユーザは「シューティングゲーム」に伴う操作を行うことができなくなる。
【００３５】
最後に、車両が走行状態から停止状態に移行するときの処理内容を説明する。
動作制御部１７は、車両走行中においては、車両状態検出部１３により検出されている車両状態から、車両が走行状態から停止状態に移行しているか否かを判定する（ステップＳＴ４１，ＳＴ４２）。
動作制御部１７は、車両が走行状態を維持していると判断すると、走行状態に変化がないので、ステップＳＴ４１の処理に戻る。
【００３６】
一方、動作制御部１７は、車両が走行状態から停止状態に移行していると判断すると、現在動作中のアプリケーションプログラムが存在しているか否かを確認し（ステップＳＴ４３）、現在動作中のアプリケーションプログラムが存在していなければ、アプリケーションプログラムの動作状態を変更する必要がないので、処理を終了する。
動作制御部１７は、現在動作中のアプリケーションプログラムが存在している場合、ステップＳＴ２２と同様に、「シューティングゲーム」からアプリ動作制御情報の読込を実施する（ステップＳＴ４４）。
【００３７】
動作制御部１７は、図９の例では、アプリ動作制御情報の記述内容が「走行中に本アプリを操作不可にする」ことを意味しているので、「シューティングゲーム」の実行状態を操作可能状態に設定する設定変更許可をアプリ管理部１５に与える（ステップＳＴ４５）。
アプリ管理部１５は、動作制御部１７から操作可能状態に設定する設定変更許可を受けると、操作可能状態に設定する設定変更指令をアプリ実行部１６に出力する。
アプリ実行部１６は、アプリ管理部１５から操作可能状態に設定する設定変更指令を受けると、「シューティングゲーム」の実行状態を操作可能状態に変更する。
これにより、「シューティングゲーム」の実行が継続され、ユーザは「シューティングゲーム」に伴う操作を再開することができるようになる。
【００３８】
以上で明らかなように、この実施の形態２によれば、車両の状態に応じたアプリケーションプログラムの制御方法が記載されているアプリ動作制御情報が当該アプリケーションプログラムに含まれている場合、そのアプリ動作制御情報を参照して、そのアプリケーションプログラムの動作を制御するように構成したので、個々のアプリケーションプログラムに適する車両状態に応じた制御を実施することが可能になる効果を奏する。
【００３９】
また、この実施の形態２によれば、サーバ２からダウンロードするアプリケーションプログラム３がアプリ実行装置１の実行手順を示すプログラムと、アプリ実行装置１を実装している車両の状態に応じた上記プログラムの制御方法が記載されているアプリ動作制御情報とを備えるように構成したので、そのプログラム自体に特別の機能を付加することなく、車両の状態に応じた適切な制御方法を提示することができる効果を奏する。
【００４０】
なお、この実施の形態２では、アプリ動作制御情報をマニフェストファイル内に記述して、アプリケーションプログラム３のＪＡＲに同梱するものについて示したが、これに限るものではなく、ＭＩＤＰアプリやｉアプリと同様に、アプリ動作制御情報をアプリケーションプログラム３のダウンロードの可否を事前にチェックするための別のテキストファイル内に記載してもよい。
【００４１】
実施の形態３．
図１０はこの発明の実施の形態３によるアプリ実行装置を示す構成図であり、図において、図５と同一符号は同一または相当部分を示すので説明を省略する。
証明書確認部１８はアプリケーションプログラム３に添付されている証明書の正当性を判定し、その証明書の正当性が認められる場合に限り、そのアプリケーションプログラム３の動作を制御する際にアプリ動作制御情報を参照するアプリ制御手段を構成している。
図１１はアプリ起動時の処理内容を示すフローチャートであり、図１２は停止状態から走行状態に移行時の処理内容を示すフローチャートであり、図１３は走行状態から停止状態に移行時の処理内容を示すフローチャートである。
【００４２】
次に動作について説明する。
最初に、アプリ起動時の処理内容を説明する。
証明書確認部１８は、上記実施の形態２と同様に、動作制御部１７が起動希望のアプリケーションプログラム３にアプリ動作制御情報が含まれていると判断すると（ステップＳＴ２１）、アプリケーションプログラム３に証明書（例えば、インターネット上で利用されている電子証明書）が添付されているか否かを確認する（ステップＳＴ５１）。
証明書確認部１８は、アプリケーションプログラム３に証明書が添付されていない場合、アプリケーションプログラム３に含まれているアプリ動作制御情報は信用できないと判断してステップＳＴ２４の処理に進む（ステップＳＴ５２）。この場合、標準のアプリ動作制御情報が適用されて、上記実施の形態２と同様にアプリケーションプログラム３の動作が制御される（ステップＳＴ２４、ＳＴ２〜ＳＴ５）。
【００４３】
証明書確認部１８は、アプリケーションプログラム３に証明書が添付されている場合、その証明書の読込を実施する（ステップＳＴ５２）。
証明書確認部１８は、その証明書の読込を実施すると、その証明書はアプリケーションプログラム３の作成者だけが保持する秘密鍵で暗号化されているので、その秘密鍵に対応する公開鍵（公開鍵はアプリケーションプログラム３の作成者が予め公開するため入手が可能）を用いて復号化する。
証明書確認部１８は、正常に証明書を復号化できれば、アプリケーションプログラム３に添付されている証明書が正当であると判断して（ステップＳＴ５３）、アプリケーションプログラム３からアプリ動作制御情報の読込を実施する（ステップＳＴ２２）。
この場合、アプリケーションプログラム３の動作を制御する際、上記実施の形態２と同様に、そのアプリ動作制御情報が参照される（ステップＳＴ２〜ＳＴ４、ＳＴ２３）。
【００４４】
証明書確認部１８は、正常に証明書を復号化できなければ、アプリケーションプログラム３に含まれているアプリ動作制御情報は信用できないと判断してステップＳＴ２４の処理に進む（ステップＳＴ５２）。この場合も、標準のアプリ動作制御情報が適用されて、上記実施の形態２と同様にアプリケーションプログラム３の動作が制御される（ステップＳＴ２４、ＳＴ２〜ＳＴ５）。
【００４５】
次に、車両が停止状態から走行状態に移行するときの処理内容を説明する。
証明書確認部１８は、上記実施の形態２と同様に、動作制御部１７がアプリケーションプログラム３にアプリ動作制御情報が含まれていると判断すると（ステップＳＴ３１）、アプリケーションプログラム３に証明書が添付されているか否かを確認する（ステップＳＴ６１）。
証明書確認部１８は、アプリケーションプログラム３に証明書が添付されていない場合、アプリケーションプログラム３に含まれているアプリ動作制御情報は信用できないと判断してステップＳＴ３４の処理に進む。この場合、標準のアプリ動作制御情報が適用されて、上記実施の形態２と同様にアプリケーションプログラム３が停止される（ステップＳＴ３４，ＳＴ１３）。
【００４６】
証明書確認部１８は、アプリケーションプログラム３に証明書が添付されている場合、その証明書の読込を実施する（ステップＳＴ６２）。
証明書確認部１８は、その証明書の読込を実施すると、その証明書はアプリケーションプログラム３の作成者だけが保持する秘密鍵で暗号化されているので、その秘密鍵に対応する公開鍵を用いて復号化する。
証明書確認部１８は、正常に証明書を復号化できれば、アプリケーションプログラム３に添付されている証明書が正当であると判断して（ステップＳＴ６３）、アプリケーションプログラム３からアプリ動作制御情報の読込を実施する（ステップＳＴ２２）。
この場合、アプリケーションプログラム３の動作を制御する際、上記実施の形態２と同様に、そのアプリ動作制御情報が参照される（ステップＳＴ３２，ＳＴ３３）。
【００４７】
証明書確認部１８は、正常に証明書を復号化できなければ、アプリケーションプログラム３に含まれているアプリ動作制御情報は信用できないと判断してステップＳＴ３４の処理に進む。この場合も、標準のアプリ動作制御情報が適用されて、上記実施の形態２と同様にアプリケーションプログラム３が停止される（ステップＳＴ３４，ＳＴ１３）。
【００４８】
最後に、車両が走行状態から停止状態に移行するときの処理内容を説明する。
証明書確認部１８は、上記実施の形態２と同様に、動作制御部１７が現在動作中のアプリケーションプログラムが存在していると判断すると、アプリケーションプログラム３に証明書が添付されているか否かを確認する（ステップＳＴ７１）。
証明書確認部１８は、アプリケーションプログラム３に証明書が添付されている場合、その証明書の読込を実施する（ステップＳＴ７２）。
証明書確認部１８は、その証明書の読込を実施すると、その証明書はアプリケーションプログラム３の作成者だけが保持する秘密鍵で暗号化されているので、その秘密鍵に対応する公開鍵を用いて復号化する。
【００４９】
証明書確認部１８は、正常に証明書を復号化できれば、アプリケーションプログラム３に添付されている証明書が正当であると判断して（ステップＳＴ７３）、アプリケーションプログラム３からアプリ動作制御情報の読込を実施する（ステップＳＴ４４）。
この場合、アプリケーションプログラム３の動作を制御する際、上記実施の形態２と同様に、そのアプリ動作制御情報が参照される（ステップＳＴ４５）。
【００５０】
以上で明らかなように、この実施の形態３によれば、アプリケーションプログラム３に添付されている証明書の正当性を判定し、その証明書の正当性が認められる場合に限り、そのアプリケーションプログラム３の動作を制御する際にアプリ動作制御情報を参照するように構成したので、信頼できるアプリケーションプログラムと信頼できないアプリケーションプログラムを別々に動作制御することができる効果を奏する。
【００５１】
実施の形態４．
上記実施の形態１，２では、アプリケーションプログラム３の動作として、アプリケーションプログラム３の実行状態（起動・停止）や、アプリケーションプログラム３に対する操作情報の伝達状態（ユーザの操作受付の有無）を制御するものについて示したが、これに限るものではなく、アプリケーションプログラム３の動作として、次のような制御を行うことができる。
即ち、ディスプレイに対するアプリケーションプログラム３の表示状態（例えば、アプリケーションプログラム３の実行結果の表示・非表示、前席モニタ／後席モニタの表示制御）や、スピーカに対するアプリケーションプログラム３の音出力状態（音出力の有無）を制御するようにしてもよい。
【００５２】
実施の形態５．
上記実施の形態１では、アプリ管理部１５がアプリ記憶部１２に記憶されているアプリケーションプログラムの一覧表を生成してディスプレイに表示するものについて示したが、アプリ管理部１５がアプリケーションプログラムの一覧表を表示する際、現在動作を制御しているアプリケーションプログラムを明示するようにしてもよい。例えば、現在動作を制御しているアプリケーションプログラムを反転表示するなどにより明示する。
これにより、ユーザは起動を希望するアプリケーションプログラムを選択する際、既に起動しているアプリケーションプログラムを把握することができる効果を奏する。
【００５３】
実施の形態６．
上記実施の形態５では、アプリ管理部１５がアプリケーションプログラムの一覧表を表示する際、現在動作を制御しているアプリケーションプログラムを明示するものについて示したが、車両が走行しているときでも、起動可能なアプリケーションプログラムを明示するようにしてもよい。例えば、アプリケーションプログラムのキャプション文字の色を変えるなどにより明示する。
これにより、ユーザが走行中に起動できないアプリケーションプログラムの起動を要求するなどの無駄な操作を回避することができる効果を奏する。
【００５４】
実施の形態７．
上記実施の形態１〜６では、車両が走行中であるか、停止中であるかの状態に応じてアプリケーションプログラム３の動作を制御するものについて示したが、これに限るものではなく、例えば、ライトの点灯状態に応じてアプリケーションプログラム３の表示色を昼色／夜間色に切り換えてもよい。
また、車両位置（例えば、車両が現在存在している地域）に応じてアプリケーションプログラム３の起動／停止を制御することも可能であり、また、車両の速度に応じて速度超過（例えば、走行速度が時速１２０Ｋｍ以上）の警告を出力する／しないを切り換えることも可能であり、さらに、時刻や季節に応じてアプリケーションプログラム３の画面デザインを変更して季節感や時刻感を醸し出すことも可能である。
【００５５】
【発明の効果】
以上のように、この発明によれば、車両状態検出手段により検出された車両の状態に応じて、外部からロードしたアプリケーションプログラムの動作を制御するように構成したので、モジュール毎に機能制限を設定する機能がダウンロードするアプリケーションプログラムに搭載されていなくても、運転操作に影響を与えない範囲内でアプリケーションプログラムを実行することができる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるアプリ実行装置を示す構成図である。
【図２】アプリ起動時の処理内容を示すフローチャートである。
【図３】停止状態から走行状態に移行時の処理内容を示すフローチャートである。
【図４】アプリケーションプログラムの一覧表を示す説明図である。
【図５】この発明の実施の形態２によるアプリ実行装置を示す構成図である。
【図６】アプリ起動時の処理内容を示すフローチャートである。
【図７】停止状態から走行状態に移行時の処理内容を示すフローチャートである。
【図８】走行状態から停止状態に移行時の処理内容を示すフローチャートである。
【図９】マニフェストファイルの一例を示すフローチャートである。
【図１０】この発明の実施の形態３によるアプリ実行装置を示す構成図である。
【図１１】アプリ起動時の処理内容を示すフローチャートである。
【図１２】停止状態から走行状態に移行時の処理内容を示すフローチャートである。
【図１３】走行状態から停止状態に移行時の処理内容を示すフローチャートである。
【符号の説明】
１  アプリ実行装置、２  サーバ、３  アプリケーションプログラム、１１  アプリ追加部（アプリ記憶手段）、１２  アプリ記憶部（アプリ記憶手段）、１３  車両状態検出部（車両状態検出手段）、１４  動作制御部（アプリ制御手段）、１５  アプリ管理部（アプリ制御手段）、１６  アプリ実行部（アプリ制御手段）、１７  動作制御部（アプリ制御手段）、１８  証明書確認部（アプリ制御手段）、２１  アプリ記憶部、２２  アプリ配信部。
【図１】
2005028997.tif 000003
【図２】
2005028997.tif 000004
【図３】
2005028997.tif 000005
【図４】
2005028997.tif 000006
【図５】
2005028997.tif 000007
【図６】
2005028997.tif 000008
【図７】
2005028997.tif 000009
【図８】
2005028997.tif 000010
【図９】
2005028997.tif 000011
【図１０】
2005028997.tif 000012
【図１１】
2005028997.tif 000013
【図１２】
2005028997.tif 000014
【図１３】
2005028997.tif 000015