(57)【要約】  本発明は、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートする通信装置を提供する。通信装置は、装置ファームウェアプログラムに関する情報を提供する提供部（３０１）と、通信装置にインストールされた現在のファームウェアプログラムがナビゲーション装置にインストールされた装置ファームウェアプログラムに対応するかを判定する判定部（３０３）と、現在のファームウェアプログラムが装置ファームウェアに対応する場合にナビゲーション装置の挙動をエミュレートするために通信装置上で現在のファームウェアプログラムを実行するプロセッサ（３０５）とを具備する。
2009533722.tif 000002
【特許請求の範囲】
【請求項１】
ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答して前記ナビゲーション装置の挙動をエミュレートする通信装置であって：
前記装置ファームウェアプログラムに関する情報を提供する提供部（３０１）と；
前記通信装置にインストールされた現在のファームウェアプログラムが前記ナビゲーション装置にインストールされた前記装置ファームウェアプログラムに対応するかを判定する判定部（３０３）と；
前記現在のファームウェアプログラムが前記装置ファームウェアに対応する場合に前記ナビゲーション装置の前記挙動をエミュレートするために前記通信装置上で前記現在のファームウェアプログラムを実行するプロセッサ（３０５）とを具備することを特徴とする通信装置。
【請求項２】
前記プロセッサ（３０５）は、前記現在のファームウェアプログラムが前記装置ファームウェアプログラムに対応しない場合、前記現在のファームウェアプログラムの更新バージョンを取得するために通信ネットワークを介してリモートネットワークエンティティに対するネットワーク接続を確立するように更に構成され、プロセッサ（３０５）は、前記ナビゲーション装置の前記挙動をエミュレートするために前記現在のファームウェアプログラムの前記更新バージョンを実行するように更に構成されることを特徴とする請求項１記載の通信装置。
【請求項３】
前記提供部（３０１）は、前記装置ファームウェアプログラムを示す情報を検索するために前記ナビゲーション装置に接続するように構成されることを特徴とする請求項１又は２記載の通信装置。
【請求項４】
前記判定部（３０５）は、前記装置ファームウェアプログラムを示す情報を含むコンテンツファイルのテーブル又は前記現在のファームウェアプログラムを示す情報を含むコンテンツファイルのテーブルに基づいて、前記通信装置にインストールされた前記現在のファームウェアプログラムが前記装置ファームウェアに対応するかを判定するように構成されることを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
前記プロセッサ（３０５）は、前記ナビゲーション装置の前記挙動の前記エミュレーションに基づいて前記ナビゲーション装置を制御するように更に構成されることを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答して前記ナビゲーション装置の挙動をエミュレートする方法であって：
前記ナビゲーション装置から前記装置ファームウェアプログラムに関する情報を提供する工程と；
現在のファームウェアプログラムが前記ナビゲーション装置にインストールされた前記装置ファームウェアに対応するかを判定する工程と；
前記現在のファームウェアプログラムが前記装置ファームウェアに対応する場合に前記ナビゲーション装置の前記挙動をエミュレートするために通信装置上で前記現在のファームウェアプログラムを実行する工程とを有することを特徴とする方法。
【請求項７】
前記現在のファームウェアプログラムが前記装置ファームウェアプログラムに対応しない場合に前記現在のファームウェアプログラムの更新バージョンを取得するために通信ネットワークを介してリモートネットワークエンティティに対するネットワーク接続を確立する工程と、前記ナビゲーション装置の前記挙動をエミュレートするために前記現在のファームウェアプログラムの前記更新バージョンを実行する工程を有することを特徴とする請求項６記載の方法。
【請求項８】
前記装置ファームウェアプログラムを示す情報を検索するために前記ナビゲーション装置に接続する工程を有することを特徴とする請求項６又は７記載の方法。
【請求項９】
前記装置ファームウェアプログラムを示す情報を含むコンテンツファイルのテーブル又は前記現在のファームウェアプログラムを示す情報を含むコンテンツファイルのテーブルに基づいて、前記現在のファームウェアプログラムが前記装置ファームウェアプログラムに対応するかを判定する工程を有することを特徴とする請求項６乃至８のいずれか１項に記載の方法。
【請求項１０】
コンピュータ上で実行される場合に請求項６乃至９のいずれか１項に記載の方法を実行するコンピュータプログラム。
【請求項１１】
ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答して前記ナビゲーション装置の挙動をエミュレートする、プログラム可能に構成された通信装置であって、前記装置ファームウェアプログラムに関する情報を提供するために第１のコンピュータプログラムを実行し、前記プログラム可能に構成された通信装置が利用可能な現在のファームウェアプログラムが前記ナビゲーション装置にインストールされた前記装置ファームウェアプログラムに対応するかを判定するために第２のコンピュータプログラムを実行し、前記現在のファームウェアプログラムが前記装置ファームウェアプログラムに対応する場合に前記ナビゲーション装置の前記挙動をエミュレートするために前記通信装置上で前記現在のファームウェアプログラムを実行するように構成されるプログラム可能に構成された通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報技術に関し、特にモバイルナビゲーションの分野に関する。
【背景技術】
【０００２】
モバイルナビゲーション装置に対する増加し続ける要求により、例えばナビゲーションコンテンツ（ルート情報、交通情報、地図情報等のナビテーション項目）の管理、ナビゲーション装置へのユーザ別ナビゲーションコンテンツ等の提供、ナビゲーション装置の操作又はナビゲーション装置等にインストールされた実行可能なプログラムの管理に関係するいくつかの制約が加えられる。
【０００３】
しかし、より複雑なナビゲーション装置及び情報に対する増加し続ける要求は、情報を効率的に管理すること及びナビゲーション装置を効率的に操作することに関係する問題に影響を与える。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、例えば装置ファームウェアのバージョンが未知であっても、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートする概念を提供することである。
【課題を解決するための手段】
【０００５】
かかる目的は、独立請求項の特徴により達成される。
【０００６】
本発明は、別のプログラムがナビゲーション装置にインストールされた装置ファームウェアをエミュレートするという条件の下、ナビゲーション装置の挙動がその別のプログラムを使用してエミュレートされてもよいということに基づく。別のプログラムは、別の装置に内蔵エミュレータ等としてインストールされ、ナビゲーション装置をエミュレートするために実行されてもよい。しかし、ナビゲーション装置をエミュレートする前に、別のプログラムが装置ファームウェアに対応すること、例えば別のプログラムのソースコードが装置ファームウェアのソースコードに対応することが保証される必要がある。従って、ナビゲーション装置の電源が切れている場合でも、ユーザはエミュレートプログラムを使用してナビゲーション装置を操作できる。
【０００７】
一実施形態は、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートする通信装置を提供する。通信装置は、装置ファームウェアプログラムに関する情報を提供する提供部と、通信装置にインストールされた現在のファームウェアプログラムがナビゲーション装置にインストールされた装置ファームウェアプログラムに対応するかを判定する判定部と、現在のファームウェアプログラムが装置ファームウェアに対応する場合にナビゲーション装置の挙動をエミュレートするために通信装置上で現在のファームウェアプログラムを実行するプロセッサとを具備するのが好ましい。
【０００８】
更なる一実施形態によると、プロセッサは、現在のファームウェアプログラムが装置ファームウェアプログラムに対応しない場合、現在のファームウェアプログラムの更新バージョンを取得するために通信ネットワークを介してリモートネットワークエンティティに対するネットワーク接続を確立してもよい。更にプロセッサは、ナビゲーション装置の挙動をエミュレートするために現在のファームウェアプログラムの更新バージョンを実行してもよい。
【０００９】
更なる一実施形態によると、提供部は、装置ファームウェアプログラムを示す情報を検索するためにナビゲーション装置に接続してもよい。
【００１０】
更なる一実施形態によると、判定部は、装置ファームウェアプログラムを示す情報を含むコンテンツファイルのテーブル又は現在のファームウェアプログラムを示す情報を含むコンテンツファイルのテーブルに基づいて、通信装置にインストールされた現在のファームウェアプログラムが装置ファームウェアに対応するかを判定してもよい。
【００１１】
更なる一実施形態によると、プロセッサは、ナビゲーション装置の挙動のエミュレーションに基づいてナビゲーション装置を制御してもよい。
【００１２】
別の実施形態は、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートする方法を提供する。方法は、ナビゲーション装置から装置ファームウェアプログラムに関する情報を提供する工程と、現在のファームウェアプログラムがナビゲーション装置にインストールされた装置ファームウェアに対応するかを判定する工程と、現在のファームウェアプログラムが装置ファームウェアに対応する場合にナビゲーション装置の挙動をエミュレートするために通信装置上で現在のファームウェアプログラムを実行する工程とを有する。
【００１３】
別の実施形態によると、方法は、現在のファームウェアプログラムが装置ファームウェアプログラムに対応しない場合に現在のファームウェアプログラムの更新バージョンを取得するために通信ネットワークを介してリモートネットワークエンティティに対するネットワーク接続を確立する工程と、ナビゲーション装置の挙動をエミュレートするために現在のファームウェアプログラムの更新バージョンを実行する工程を有する。
【００１４】
別の実施形態によると、方法は、装置ファームウェアプログラムを示す情報を検索するためにナビゲーション装置に接続する工程を有する。
【００１５】
別の実施形態によると、方法は、装置ファームウェアプログラムを示す情報を含むコンテンツファイルのテーブル又は現在のファームウェアプログラムを示す情報を含むコンテンツファイルのテーブルに基づいて、現在のファームウェアプログラムが装置ファームウェアプログラムに対応するかを判定する工程を有する。
【００１６】
別の実施形態は、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートするプログラム可能に構成された通信装置を提供する。プログラム可能に構成された通信装置は、装置ファームウェアプログラムに関する情報を提供するために第１のコンピュータプログラムを実行し、プログラム可能に構成された通信装置が利用可能な現在のファームウェアプログラムがナビゲーション装置にインストールされた装置ファームウェアプログラムに対応するかを判定するために第２のコンピュータプログラムを実行し、現在のファームウェアプログラムが装置ファームウェアプログラムに対応する場合にナビゲーション装置の挙動をエミュレートするために通信装置上で現在のファームウェアプログラムを実行してもよい。
【００１７】
プログラム可能に構成された通信装置は、上述の方法のステップを実行するように構成されるのが好ましい。
【００１８】
別の面によると、プログラム可能に構成されたエンティティは、プログラム可能に構成された更なるエンティティを制御するための特定のコマンドを存在しないネットワークアドレス、すなわちダミーのネットワークアドレスに送信することにより又は送信することを要求することにより更なるエンティティを制御できる。送信又は送信の要求は、プログラム可能に構成された更なるエンティティに特定のコマンドを提供するプログラム可能に構成された追加の（例えば、制御）エンティティにより阻止されてもよい。従って、コマンドは間接的に配信され、付加的な複雑さを軽減する。この点に関して、用語「プログラム可能に構成されたエンティティ」は、プログラム可能に構成された手段又はコンピュータ上で実行可能なコンピュータプログラムを示してもよい。
【００１９】
一実施形態は、プログラム可能に構成された第１の手段、プログラム可能に構成された第２の手段及びプログラム可能に構成された第３の手段を有する通信装置を提供する。プログラム可能に構成された第１の手段は、ダミーアドレス等の存在しないネットワークアドレスに特定のコマンドを送信することをプログラム可能に構成された第２の手段に要求するように構成されてもよい。プログラム可能に構成された第２の手段は、その特定のコマンドを送信するための要求に関してプログラム可能に構成された第３の手段に通知するように構成されてもよい。要求を示す情報に応答して、プログラム可能に構成された第３の手段はその特定のコマンドを実行してもよい。従って、プログラム可能に構成された第１の手段がプログラム可能に構成された第３の手段と直接対話できない場合でも、プログラム可能に構成された第１の手段はプログラム可能に構成された第３の手段を間接的に制御できる。
【００２０】
更なる一実施形態によると、プログラム可能に構成された第２の手段は、別のプログラムに対してホスト又は環境等を提供する仮想マシンを提供する第２のコンピュータプログラムを実行してもよい。プログラム可能に構成された第１の手段は、仮想マシン上で第１のコンピュータプログラムを実行してもよい。従って、第１のコンピュータプログラムは第２のコンピュータプログラムにより提供される仮想マシン上で実行するため、第２のコンピュータプログラムは第１のコンピュータプログラムを監視し、例えば要求を取り込んでもよい。
【００２１】
更なる一実施形態によると、第１のコンピュータプログラムは実行不可能なスクリプトを含む。更に、第２のコンピュータプログラムは、実行された時にウェブブラウザ等のネットワークブラウジング機能性を提供してもよい。また、第３のコンピュータプログラムは、実行された時にユーザ環境（例えば、ホームアプリケーション）等のユーザアプリケーションを提供してもよい。
【００２２】
別の実施形態は、第１のコンピュータプログラム、第２のコンピュータプログラム及び第３のコンピュータプログラムを実行するように構成される通信装置を提供する。第１のコンピュータプログラムは、特定のコマンドを存在しないネットワークアドレスに送信するように第２のコンピュータプログラムに要求する。第２のコンピュータプログラムは、その特定のコマンドを送信するための要求に関して第３のコンピュータプログラムに通知する。第３のコンピュータプログラムは、要求を示す情報に応答してその特定のコマンドを実行する。従って、第１のコンピュータプログラムが第３のコンピュータプログラムと直接対話するための実行可能なルーチンを含まない場合でも、第１のコンピュータプログラムは、実行された時に第３のコンピュータプログラムを間接的に制御できる。
【００２３】
更なる一実施形態によると、第２のコンピュータプログラムは実行された時に仮想マシンを提供してもよく、この場合、第１のコンピュータプログラムは第２のコンピュータプログラムにより提供される仮想マシン上で実行してもよい。第１のコンピュータプログラムは、例えばコンピュータ上で実行された時、第１のコンピュータプログラムを監視し、要求を取り込み且つ特定のコマンドを間接的に取り込むことを可能にする環境をその仮想マシンにより提供する。
【００２４】
更なる一実施形態によると、第１のコンピュータプログラムは実行不可能なスクリプトを提供してもよく、第２のコンピュータプログラムはウェブブラウザ等のネットワークブラウジング機能性を提供してもよく、第３のコンピュータプログラムはユーザ環境等のユーザアプリケーションを提供してもよい。
【００２５】
例えば、特定のコマンドは、第３のコンピュータプログラムにより通信ネットワークを介してリモートネットワークエンティティに対するネットワーク接続を確立することを示す。
【００２６】
別の実施形態は、存在しないネットワークアドレスに特定のコマンドを送信するように第２のコンピュータプログラムにより第１のコンピュータプログラムに要求することと、その要求を示す情報を第３のコンピュータプログラムに提供することと、特定のコマンドを送信するための要求を示す情報に応答して第３のコンピュータプログラムにより特定のコマンドを実行することとから成る通信方法を提供する。
【００２７】
別の実施形態は、第１のコンピュータプログラム、第２のコンピュータプログラム及び第３のコンピュータプログラムを含むコンピュータプログラムを提供する。第１のコンピュータプログラムは、コンピュータ上で実行された時に存在しないネットワークアドレスに特定のコマンドを送信するように第２のコンピュータプログラムに要求する。第２のコンピュータプログラムは、コンピュータ上で実行された時にその特定のコマンドを送信するための要求に関して第３のコンピュータプログラムに通知する。第３のコンピュータプログラムは、コンピュータ上で実行された時に要求に関する情報に応答して特定のコマンドを実行する。
【００２８】
別の面によると、種々のプログラム又はプログラム可能に構成されたエンティティにより提供される標準の統一資源識別子フィールド（ＵＲＩ）が例えばコンピュータプログラム又はプログラム可能に構成されたエンティティと間接的に対話するためのインタフェースを形成してもよい。従って、既存のリソースは効率的に利用される。
【００２９】
一実施形態は、統一資源識別子を表す文字列の特定のコンピュータコマンドを検出する処理装置を提供する。特定のコマンドは事前定義済みコマンドヘッダを含み、複数の事前定義済みコマンド名のうち１つのコマンド名がコマンドヘッダに後続する。処理装置は、文字列が事前定義済みコマンドヘッダを含むかを判定する判定部を具備し、判定部は、文字列が事前定義済みコマンドヘッダを含む場合にコマンドヘッダに後続する文字部分列がコマンド名を含むかを更に判定してもよい。処理装置は、コマンドヘッダがコマンド名を含む場合に事前定義済みコマンドヘッダ及びコマンド名を特定のコンピュータコマンドとして提供する提供部を更に具備する。事前定義済みコマンドヘッダ及びコマンドヘッダに後続するコマンド名を含むコマンド構造は、複雑さが低いＵＲＩの特定のコマンドの識別を可能にする。
【００３０】
更なる一実施形態によると、判定部は、コマンドヘッダに後続する文字部分列がコマンド名を含む場合にコマンド名に後続する更なる文字部分列が少なくとも１つのコマンド引数を含むかを判定してもよい。更に判定部は、少なくとも１つのコマンド引数が特定のコマンドの所定のパラメータに対応するかを判定してもよい。提供部は、少なくとも１つのコマンド引数が所定のパラメータに対応する場合に事前定義済みコマンドヘッダ、コマンド名及び少なくとも１つのコマンド引数を特定のコンピュータコマンドとして提供してもよい。従って、特定のコンピュータコマンドは、ＵＲＩの検出されたコマンド部分に基づいて合成され、例えばプロセッサ等により実行されてもよい。
【００３１】
更なる一実施形態によると、処理装置は、特定のコマンドを実行するプログラム可能に構成されたプロセッサ等を具備してもよい。
【００３２】
別の実施形態は、統一資源識別子を表す文字列の特定のコンピュータコマンドを検出する方法を提供する。特定のコマンドは事前定義済みコマンドヘッダを含み、複数の事前定義済みコマンド名のうち１つのコマンド名がコマンドヘッダに後続する。方法は、文字列が事前定義済みコマンドヘッダを含むかを判定する工程と、文字列が事前定義済みコマンドヘッダを含む場合にコマンドヘッダに後続する文字部分列がコマンド名を含むかを判定する工程と、コマンドヘッダがコマンド名を含む場合に事前定義済みコマンドヘッダ及びコマンド名を特定のコンピュータコマンドとして提供する工程とを有する。
【００３３】
更なる一実施形態によると、１つ以上のコマンド引数がコマンド名に後続し、方法は、コマンドヘッダに後続する文字部分列がコマンド名を含む場合にコマンド名に後続する更なる文字部分列が少なくとも１つのコマンド引数を含むかを判定する工程と、コマンド名に後続する更なる文字部分列が少なくとも１つのコマンド引数を含む場合に事前定義済みコマンドヘッダ、コマンド名及び少なくとも１つのコマンド引数を特定のコンピュータコマンドとして提供する工程とを有する。
【００３４】
更なる一実施形態によると、方法は、コマンドヘッダに後続する文字部分列がコマンド名を含む場合にコマンド名に後続する更なる文字部分列が少なくとも１つのコマンド引数を含むかを判定する工程と、少なくとも１つのコマンド引数が特定のコマンドの所定のパラメータに対応するかを判定する工程と、少なくとも１つのコマンド引数が所定のパラメータに対応する場合に事前定義済みコマンドヘッダ、コマンド名及び少なくとも１つのコマンド引数を特定のコンピュータコマンドとして提供する工程とを有する。
【００３５】
更なる一実施形態によると、所定のパラメータは、コマンド名と更なるコマンド引数とを区切り、方法は、事前定義済みコマンドヘッダ、コマンド名、並びに少なくとも１つのコマンド引数及び更なるコマンド引数を特定のコンピュータコマンドとして提供する工程を更に有する。
【００３６】
更なる一実施形態によると、特定のコマンドは、ユーザ別情報を取得するために通信ネットワークを介してリモートネットワークエンティティへのネットワーク接続を確立することを指示する。
【００３７】
更なる一実施形態によると、方法は特定のコンピュータプログラムをプログラム可能に実行することを含む。
【００３８】
別の面によると、リモートサーバに提供される特定の情報に対する要求に応答して、その特定の情報を送信する代わりに、特定の情報を取得するためにリモートサーバに再び接続する時点を示す時間情報が提供される場合、特定の情報は時宜を得て提供される。従って、ユーザ等による旧情報の管理又は評価に関する問題は回避される。
【００３９】
一実施形態は、更なるネットワークエンティティ（例えば、ネットワークサーバ）からネットワークエンティティ（例えば、通信装置）に特定の情報を提供する方法を提供する。方法は、通信ネットワークを介してネットワークエンティティから更なるネットワークエンティティに特定の情報に対する要求を送信する工程と、通信ネットワークを介して更なるネットワークエンティティからネットワークエンティティに時間情報を送信する工程を有する。ここで、時間情報は、特定の情報を取得するために更なるネットワークエンティティに接続する特定の時点を示す。
【００４０】
更なる一実施形態によると、方法は、特定の時点においてネットワークエンティティと更なるネットワークエンティティとの間にネットワーク接続を確立する工程と、通信ネットワークを介して更なるネットワークエンティティからネットワークエンティティに特定の情報を送信する工程とを有する。
【００４１】
更なる一実施形態によると、方法は、特定の時点においてネットワークエンティティと更なるネットワークエンティティとの間に接続を確立する工程と、通信ネットワークを介して更なる第２のネットワークエンティティからネットワークエンティティに特定の情報を送信する工程と、ネットワークエンティティにより特定の情報を表示する工程とを有する。
【００４２】
更なる一実施形態によると、方法は、特定の情報に対する要求をネットワークエンティティにより受信する工程を有する。
【００４３】
更なる一実施形態によると、特定の情報は、ユーザ別ナビゲーションルートに関する交通情報を含む。
【００４４】
更なる一実施形態によると、方法は、更なるネットワークエンティティに要求を格納する工程を有する。
【００４５】
別の実施形態は、通信ネットワークを介して更なるネットワークエンティティから特定の情報を取得するネットワークエンティティを提供する。ネットワークエンティティは、特定の情報に対する要求を通信ネットワークを介して更なるネットワークエンティティに送信し、通信ネットワークを介して更なるネットワークエンティティから時間情報を受信してもよい。時間情報は、特定の情報を取得するために更なるネットワークエンティティに接続する特定の時点を示す。
【００４６】
更なる一実施形態によると、ネットワークエンティティは、特定の情報を取得するために特定の時点において更なるネットワークエンティティに接続してもよい。
【００４７】
別の実施形態は、通信ネットワークを介して更なる通信エンティティにより送信される特定の情報に対する要求に応答して、通信ネットワークを介して更なるネットワークエンティティに特定の情報を提供するネットワークエンティティを提供する。ネットワークエンティティは、通信ネットワークを介して時間情報を送信するように構成され、時点は、特定の情報を取得するためにネットワークエンティティに接続する時点を示す。
【００４８】
更なる一実施形態によると、更なるネットワークエンティティがネットワークエンティティに対するネットワーク接続を確立した場合、ネットワークエンティティは特定の時点における特定の情報を更なるネットワークエンティティに送信してもよい。
【００４９】
別の面によると、ナビゲーションコンテンツ（ユーザ別であってもよい）は、通信ネットワークを介してアクセス可能なリモートサーバ上で効率的に管理される。リモートサーバは、ナビゲーション装置に現在インストールされているナビゲーションコンテンツ、ユーザ又は装置の権限、あるいは他のパラメータに依存してナビゲーションコンテンツを提供するのが好ましい。従って、更新されたナビゲーションコンテンツはリモートサーバにおいて個々の要望に応じて変更されてもよく、ナビゲーション装置又はナビゲーション装置を管理するコンピュータプログラムの複雑さを軽減する。
【００５０】
一実施形態は、ナビゲーション装置に格納された現在のナビゲーションコンテンツを更新する通信装置を提供する。通信装置は、現在のナビゲーションコンテンツを示す情報をナビゲーション装置から検索する検索部と、現在のナビゲーションコンテンツを示す情報を通信ネットワークを介してリモートネットワーク装置に送信する送信部と、更新されたナビゲーションコンテンツをリモート通信装置から受信する受信部と、更新されたナビゲーションコンテンツに関する情報を表示するか又は更新されたナビゲーションコンテンツをナビゲーション装置にインストールするプロセッサとを具備する。
【００５１】
更なる一実施形態によると、検索部は、装置ＩＤ又はユーザＩＤを示す情報をナビゲーション装置から検索してもよい。ここで、送信部はユーザＩＤの装置をリモート通信装置に送信してもよい。
【００５２】
更なる一実施形態によると、送信部は、現在のナビゲーションコンテンツを示す情報をメタデータとして又はコンテンツファイルのテーブルとして送信してもよい。
【００５３】
更なる一実施形態によると、検索部は、現在のナビゲーションコンテンツをナビゲーション装置から取得するためにナビゲーション装置に接続してもよい。例えば、検索部又は通信装置はナビゲーション装置に無線接続してもよい。別の実施形態によると、ナビゲーション装置又は通信装置は検索部に有線接続可能であってもよいため、検索部はナビゲーション装置に対する有線接続を開始してもよい（あるいは、その逆も可能である）。
【００５４】
別の実施形態は、ナビゲーション装置に格納された現在のナビゲーションコンテンツを更新する方法を提供する。方法は、現在のナビゲーションコンテンツを示す情報をナビゲーション装置から検索する工程と、現在のナビゲーションコンテンツを示す情報を通信ネットワークを介してリモートネットワーク装置に送信する工程と、リモート通信装置から更新されたナビゲーションコンテンツを受信する工程と、更新されたナビゲーションコンテンツに関する情報を表示するか又は更新されたナビゲーションコンテンツをナビゲーション装置にインストールする工程とを有するのが好ましい。
【００５５】
別の実施形態によると、方法は、装置ＩＤ又はユーザＩＤを示す情報をナビゲーション装置から検索する工程、あるいはユーザＩＤの装置をリモート通信装置に送信する工程とを有する。
【００５６】
別の実施形態によると、方法は、現在のナビゲーションコンテンツを示す情報をメタデータとして又はコンテンツファイルのテーブルとして送信する工程を有する。
【００５７】
別の実施形態によると、方法は、ナビゲーション装置と関係付けられるユーザの権限を検証する工程、又は特定の更新されたナビゲーションコンテンツを取得するためにナビゲーション装置の権限を検証する工程を有する。
【００５８】
別の実施形態によると、ナビゲーションコンテンツ又は更新されたナビゲーションコンテンツは、ルート情報、あるいは更新されたファームウェア又は地図情報を示す情報を含む。
【００５９】
別の実施形態によると、更新されたナビゲーションコンテンツを示す情報は、特定のナビゲーションコンテンツが別のナビゲーションコンテンツより高い優先順位を有することを示す優先順位情報を含む。
【００６０】
別の面によると、コンピュータコマンド（例えば、実行可能な）がコマンド名及び１つ以上のコマンド引数（例えば、コマンド引数のリスト）を含む場合、例えば自動的にコマンド名を署名し、（署名した）コマンド名及び追加の引数としてその暗号署名を使用して検証可能なコンピュータコマンドを合成する時、オーバヘッドが減少された暗号化検証可能なコンピュータコマンドが取得されてもよい。
【００６１】
一実施形態は、暗号署名されたコマンドを提供する方法を提供する。コマンドは、コマンド名及び少なくとも１つのコマンド引数を含む。方法は、コマンド名の暗号署名を生成する工程と、コマンド名、署名及び少なくとも１つのコマンド引数を使用して暗号署名されたコマンドを合成する工程とを有する。
【００６２】
更なる一実施形態によると、方法は、暗号署名されたコマンドを合成するために、コマンド名、コマンド名の暗号署名及び少なくとも１つのコマンド引数を連結する工程を有する。
【００６３】
更なる一実施形態によると、方法は、非対称暗号化アルゴリズム、特にＲＳＡ（Rivest-Shamir-Adleman）アルゴリズムに基づくか又はデジタル署名アルゴリズムに基づいてコマンド名の暗号署名を生成する工程を有する。
【００６４】
更なる一実施形態によると、コマンド名は、少なくとも１つのコマンド引数により判定される目的地までのナビゲーションルートを判定することを示し、且つ／又は少なくとも１つのコマンド引数により示されるアドレスデータにより判定されるナビゲーション地図を提供することか又は少なくとも１つのコマンド引数を含むコンピュータプログラムを実行することを示す。
【００６５】
別の実施形態は、暗号署名されたコマンドに基づいて暗号化検証されたコマンドを提供する方法を提供する。暗号署名されたコマンドは、コマンド名、コマンド名の暗号署名及び少なくとも１つのコマンド引数を含む。方法は、第１の暗号化値を取得するため暗号署名を復号する工程と、第２の暗号化値を取得するためコマンド名を処理する工程と、第１の暗号化値及び第２の暗号化値を比較して比較結果を取得する工程と、比較結果に依存してコマンド名及び少なくとも１つのコマンド引数を暗号化検証されたコマンドとして提供又は実行する工程とを有する。
【００６６】
更なる一実施形態によると、第１の暗号化値は暗号署名のハッシュ値を含み、第２の暗号化値はコマンド名のハッシュ値を含む。
【００６７】
更なる一実施形態によると、方法は、第１の暗号化値及び第２の暗号化値が等しい場合に暗号化検証されたコマンドを提供又は実行する工程を含む。例えば、方法はハッシュ値を比較することを更に含む。
【００６８】
別の実施形態は、暗号署名されたコマンドを提供する装置を提供する。コマンドは、コマンド名及び少なくとも１つのコマンド引数を含む。装置は、コマンド名の暗号署名を生成する生成部と、コマンド名、署名及び少なくとも１つのコマンド引数を使用して暗号署名されたコマンドを合成（例えば、連結）する合成部とを具備する。
【００６９】
装置（又はその構成要素）は、暗号署名されたコマンドを提供するために上述の方法ステップを実行するように構成されるのが好ましい。
【００７０】
別の実施形態は、暗号署名されたコマンドに基づいて暗号化検証されたコマンドを提供する装置を提供する。暗号署名されたコマンドは、コマンド名、コマンド名の暗号署名及び少なくとも１つのコマンド引数を含む。装置は、暗号署名を復号化して第１の暗号化値を取得する復号部と、コマンド名を処理して第２の暗号化値を取得するプロセッサと、第１の暗号化値及び第２の暗号化値を比較して比較結果を取得する比較部と、比較結果に依存してコマンド名及び少なくとも１つのコマンド引数を暗号化検証されたコマンドとして提供又は実行する提供部とを具備する。装置（又はその要素）は、暗号化検証されたコマンドを提供するために上述の方法ステップを実行するように構成されるのが好ましい。
【００７１】
別の実施形態は、コンピュータ上で実行される場合に本発明の方法のうち少なくとも１つの方法を実行するコンピュータプログラムを提供する。
【発明を実施するための最良の形態】
【００７２】
以下の図面に関して、本発明の更なる実施形態を説明する。
【００７３】
図１は、プログラム可能に構成された第１の手段１０１と、プログラム可能に構成された第１の手段１０１に接続されるプログラム可能に構成された第２の手段１０３と、プログラム可能に構成された第１の手段１０５に接続されるプログラム可能に構成された第３の手段１０５とを具備する通信装置を示すブロック図である。
【００７４】
プログラム可能に構成された第１の手段１０１は、存在しないネットワークアドレス、すなわち存在しないＨＴＴＰアドレスに特定のコマンドを送信するよう、プログラム可能に構成された第２の手段に要求する。これに応答して、プログラム可能に構成された第２の手段１０３は、特定のコマンドを送信するための要求に関してプログラム可能に構成された第３の手段１０５に通知する。要求を示す情報に応答して、プログラム可能に構成された第３の手段１０５は要求を示す情報に応答して特定のコマンドを実行する。
【００７５】
例えば、プログラム可能に構成された第１の手段１０１は、プログラム可能に構成された第２の手段１０３により実行可能な第２のコンピュータプログラム（例えば、ウェブブラウザ）により提供される環境内で、Ｊａｖａスクリプト（登録商標）等の実行不可能なスクリプトを含む第１のプログラムを実行してもよい。
【００７６】
第１のコンピュータプログラムが自身の代わりにコマンドを送出するために実行される環境（ウェブブラウザ及び推移的にユーザアプリケーション）を要求するため、プログラム可能に構成された第３の手段１０３は、コマンドを受信するユーザアプリケーション（ホームアプリケーション）等の第３のコンピュータプログラムを実行するのが好ましい。Ｊａｖａスクリプト（登録商標）がウェブページ上に存在し、第３のコンピュータプログラムと直接通信できないため、ウェブブラウザ（第２のコンピュータプログラム）は提供される。
【００７７】
例えば上記概念は、ルート情報又はルート地図等のナビゲーションコンテンツを管理するために採用されてもよい。例えば第１のコンピュータプログラムは、リモートサーバ（アクティブページ等を含む）と第３のコンピュータプログラム（ホームクライアントアプリケーションを提供する）との間で通信を開始してもよい。例えばホームアプリケーション（又はリモートサーバ）は、音声、地図等を売るオンライン（ウェブ）ショップを含む。このウェブショップは、組み込みウェブブラウザを使用して実現されるのが好ましい。組み込みブラウザは、そのショップを表すウェブページをダウンロードするようにホームアプリケーションにより命令される。更に、ウェブショップのページはＪａｖａスクリプト（登録商標）を含んでもよいため、ダウンロードされたページはいわゆるＡＪＡＸ技術等を使用してリモートサーバと通信できる。しかし、特定の時に、ページ上のＪａｖａスクリプト（登録商標）は特定のコマンドをホームアプリケーションクライアントに与える必要がある。コマンドの一例は、ユーザがウェブショップで音声を購入した後の「download this voice」である。Ｊａｖａスクリプト（登録商標）はクレジットカード処理を実現できるが、ナビゲーション装置等への実際のダウンロード及びインストールはできないため、コマンドを送出するか又はコマンドを送出するように要求を送出する。
【００７８】
コマンドは、まず特別な要求を作成し（例えば、ショップのウェブページ上にＪａｖａスクリプト（登録商標）で）、その要求を存在しないアドレス（例えば、http://ttds）に送出することにより、ホームアプリケーションクライアントに送出される。ウェブブラウザ（例えば、組み込みウェブブラウザ）は、そのブラウザのホストであるホームクライアントアプリケーションに対して要求に関する通知を行なう。ホームクライアントは、http://ttds等のアドレスが存在しないことを認識しているため、例えばコマンドを抽出して実行する。更なる処理を高速化するために、http://ttdsへのダミーの要求は取り消されてもよい。
【００７９】
地図及び音声のようなナビゲーションコンテンツ等をダウンロードすることに加え、ホームクライアント（第３のコンピュータプログラムにより提供される）は、例として、より多くのウェブページ（例えば、第２のショップのページ）を開くか又は閉じ、ポップアップメッセージを示し、ホームアプリケーション内の特定のウィンドウ（例えば、音声をダウンロードした後に有用なInstall-To-Device）に切り替え、新しいホームアプリケーションバージョンをチェックし、装置ファームウェアへの更新をチェックし、ナビゲーションコンテンツへの更新をチェックし、ナビゲーション装置をエミュレートするエミュレータへの更新をチェックし、あるいはユーザ証明を要求及び送出するように指示される。
【００８０】
図２は、統一資源識別子（ＵＲＩ）を表す文字列の中の特定のコンピュータコマンドを検出する処理装置を示すブロック図である。特定のコマンドは事前定義済みコマンドヘッダを含んでもよく、複数の事前定義済みコマンド名のうち１つのコマンド名及びオプションとして１つ以上のコマンド引数がそのコマンドヘッダの後に続く。処理装置は、文字列が事前定義済みコマンドヘッダを含むかを判定する判定部２０１と、判定部２０１に接続される提供部２０３とを具備する。判定部は、文字列が事前定義済みコマンドヘッダを含む場合に、コマンドヘッダに後続する部分文字列がコマンド名を含むかを判定するように更に構成される。提供部２０３は、コマンドヘッダが特定のコンピュータコマンドとしてコマンド名を含む場合に、事前定義済みコマンドヘッダ及びコマンド名を提供する。
【００８１】
一例として、図２に示される概念はコンピュータプログラム（実行可能な）を使用して実現されてもよい。更に、ＵＲＩに関する説明はＵＲＬ（統一資源識別子）にも当てはまる。
【００８２】
ＵＲＩに関して、同一のＵＲＩは、ウェブページ上又は電子メールにおけるハイパーリンクの「対象」としても使用される。この場合、ＵＲＩは例えばそのようなハイパーリンクをクリックすることにより起動されてもよい。更に、ウェブページに埋め込まれたＪａｖａスクリプトプログラム（登録商標）からＵＲＩを使用することが可能である。しかし、コンピュータ等にローカルにインストールされた他のプログラムもそのようなＵＲＩを使用できる。例えば、電子メールアドレス帳プラグインはこのＵＲＩを使用して、電子メールプログラムからＰＣ等にインストールされているホームアプリケーションにアドレスを送出できる。
【００８３】
例えば、ホームアプリケーション（例えば、ナビゲーションコンテンツを管理する）はアプリケーション自体のＵＩを提供する。しかし、更なるコンテンツはホームアプリケーション外に格納されるナビゲーションの目的で使用される。例えば、電子メールプログラムはワールドワイドウェブのような複数のアドレスを含むアドレス帳を含む。ホームクライアントがそれらを利用する場合、電子メールプログラムは有用である。他のユーザは、そのようなアクセスを可能にする要望に合わせた<header>:///URI方式を実現できるホームアプリケーションによるインストールを可能にする形式でワールドワイドウェブ上にナビゲーションコンテンツを提供することに興味を持つ可能性がある。
【００８４】
ＲＦＣ３９８６により規定されるＵＲＩ方式は、複数のプロトコルが実現可能なフレームワークを規定する。現在のオペレ−ティングシステムにより、アプリケーションは所定のプロトコルを使用してＵＲＩに対する設計されたハンドラとして自身を登録できる。例えば上述の第３のコンピュータプログラムにより提供されるホームアプリケーション（ホームクライアント）は、<header>:///で開始するＵＲＩに対するハンドラとして自身を登録する。
【００８５】
ＵＲＩの残りの部分は、ホームクライアントにおいてcommand-listとして使用される。この方法を使用すると、「Amsterdam, Rembrandtplein 35」のようなアドレスは、例えば<headre>:///Address?Amsterdam&Rembrandtplein&35に符号化される。
【００８６】
ここで、文字「?」及び「&」はオプションであり、他の事前定義済みの文字又は文字列に置換できる。
【００８７】
ＵＲＩをサポートするホームクライアント以外の任意のアプリケーションは、ＵＲＩに遭遇すると、ＵＲＩを解決するようにオペレーティングシステム（ＯＳ）に要求してもよい。次にＯＳは、ユーザが「Address?Amsterdam&Rembrandtplein&35」を使用しようとしていることをホームクライアントに通知する。その後、ホームクライアントはアドレスを使用して行なうことに関する選択肢のリストをユーザに提供する。しかし、アドレスが使用できるナビゲーションタスクは複数存在する。
【００８８】
同一の方法を使用し、「http://shop.<ウェブアドレス>/voices/dutch/bram.toc」がオランダ語の音声であると仮定すると、以下のＵＲＩを作成できる：
<header>:///Install?http%3a%2f%2fshop.<ウェブアドレス>%2fvoices%2fdutch%2fbram.toc
【００８９】
そのようなＵＲＩがウェブページ上に現れ、ユーザがそれをクリックした場合、ウェブブラウザはそれを転送するようにＯＳに要求してもよい。ＯＳは、Install?http%3a%2f%2fshop.<ウェブアドレス>%2fvoices%2fdutch%2fbram.tocにより表される動作を行なうようにホームクライアントに要求する。この場合、その動作は所定のアドレスからbram.toc（コンテンツのテーブル）をダウンロードすることである。
【００９０】
以下において、コマンドの形式の仕様を説明する。
【００９１】
一般的なＵＲＬ形式（ＲＦＣ３９８６に準拠してもよい）を参照すると、コマンドは以下の構造を有してもよい：
<header>:///command-list
ここで、
command-list = command['#'command]+
command = command-name '?' argument-list
command-name = （サポートされるコマンド名、以下を参照）
argument-list = UrlEncode(argument)['&'argument-list]+
argument = UTF8-string
である。
【００９２】
従来のＵＲＬ形式を参照すると、コマンドは以下の構造を有してもよい：
<header>://legacy-command-list
ここで、
legacy-command-list = legacy-command['&'legacy-command]+
legacy-command = command-name'('legacy-argument-list')'
legacy-argument-list = UrlEncode(argument)[','legacy-argument-list]+
である。
【００９３】
従来のＵＲＬは文字「?」を含むことができないが、適切なＵＲＬは常に含む。これにより、ＵＲＬを区別することが可能になる。尚、それらＵＲＬはＲＦＣに準拠していない。多くのＵＲＬ処理エンティティは、処理中にＵＲＬを変更する。特に、多くのウィンドウズウェブブラウザ（登録商標）はＵＲＬを適合させようとする際に余分な「/」を追加する。ウェブブラウザの中にはそれらＵＲＬを全くサポートしないものもある。ホームアプリケーションは、広範囲のＵＲＬ対応アプリケーションに対処するために不完全なＵＲＬを解釈しようとするが、従来のＵＲＬ形式を使用することにより、その方法は更に複雑になる。
コマンドは、以下の構造及び引数を有してもよい：
構造：EMailContact?folder-ID&entry-ID
引数：電子メール連絡先ＩＤ
【００９４】
ホームアプリケーションは、電子メールプログラムから連絡先データを検索し、そのデータを使用して行なうこと（地図上に表示、ナビゲーション、お気に入りとして追加等）をユーザに問い合わせる。
【００９５】
構造：Address?city&street&number
引数：アドレスデータ
【００９６】
ホームアプリケーションは、そのアドレスを使用して行なうこと（地図上に表示、ナビゲーション、お気に入りとして追加等）をユーザに問い合わせる。
【００９７】
構造：ShowOnMap?city&street&number
引数：アドレスデータ
【００９８】
city及びstreetの少なくとも一方は空であってはならない。
【００９９】
構造：NavigateTo?city&street&number
引数：アドレスデータ
【０１００】
city及びstreetの少なくとも一方は空であってはならない。
【０１０１】
構造：AddFavourite?favourite-name&city&street&number
引数：お気に入りの名前及びアドレスデータ
【０１０２】
city及びstreetの少なくとも一方は空であってはならない。
【０１０３】
Install?URL
引数：装置が接続される場合にダウンロード及びインストールする項目に対するＴＯＣ記述のＨＴＴＰ ＵＲＬ
【０１０４】
ＵＲＬにより示されるリソースはＭＩＭＥ型の「text/xml」を有する。
【０１０５】
ＴＯＣ（コンテンツのテーブル）形式は、ファイル「TOC format.xsd」においてＸＭＬ方式等により特定されてもよい。
【０１０６】
以下の種類の項目はユーザ（例えば、第三者）によりインストールされる：ＰＯＩ（地点情報）データセット、音声、配色。
【０１０７】
構造：Execute?URL
引数：実際のcommand-listを含むテキストファイルのＨＴＴＰ ＵＲＬ
【０１０８】
ＵＲＬにより示されるリソースはＭＩＭＥ型の「text/plain」を有する。
【０１０９】
このコマンドは、例えばコマンドをＵＲＬの一部として渡すことによりＵＲＬが長くなりすぎる場合に使用される。
【０１１０】
Execute() command-nameがlegacy-commandにおいて使用される場合、ＵＲＬはそれに応答してlegacy-command-listを提供してもよい。
【０１１１】
構造：SwitchTab?Tabname
引数：サーバが作成したタブ名
【０１１２】
ホームアプリケーションは、そのタブが存在する場合はそのタブに切り替える。存在しない場合、ホームアプリケーションはその名前を記憶し、サーバがタブを作成するとそのタブに切り替える。ホームアプリケーションは１つの名前のみを記憶する。すなわち、第２のSwitchTabコマンドは第１のコマンドと置換される。
【０１１３】
構造：<ユーザ又はホスト名>Page?Tabname&hostname&URL-path&anchor
引数：新しく作成されたタブのタブ名、ホスト名、パス（ホスト名に対する）及びＵＲＬアンカー
【０１１４】
ホームアプリケーションは、所定のタブ名を有するタブが存在するかをまずチェックするか、又はタブを作成する。このタブは、http://hostname.<ウェブアドレス>/URL-path#anchorに設定されたＵＲＬを有する。
【０１１５】
ホームアプリケーションは、英数字でない文字を有するホスト名を拒否してもよく、それにより名前の挿入を防止する。例えば、ホスト名「badguys.com/ignore」は、「.」及び「/」が無効であるため拒否されてもよい。
【０１１６】
以下に対処されるように、コマンドはコマンドの検証を可能にする暗号署名を提供されてもよい。例えば、以下のコマンド構造が使用できる：
構造：<PublicKeyIdentifier>?command-list&signature
引数：command-list及び署名
【０１１７】
このコマンドは、ユーザによってのみ実行されるコマンドのリストを実行するために使用される。署名は、command-listの信憑性を確認する。
signature = Sign<PrivateKey>(command-list)
尚、任意のユーザが署名を検証できる（公開鍵を使用して）。
【０１１８】
Sign<PrivateKey>(command-list)は以下のように実現されてもよい：
コマンドリストは、ＵＴＦ８文字列であるため、バイトシーケンスとして表現可能である。コマンドリストは、Sign<PrivateKey>の入力として使用される場合にＵＲＬ符号化されない。
【０１１９】
符号化方式を参照すると、このバイトシーケンスのＳＨＡ−２５６ハッシュＨが計算される（２５６ビット）。更に秘密鍵(Q, M)を使用して、署名値(Q<SUP>H</SUP> modulo M)が計算される。署名は、バイトのＢａｓｅ６４符号化リトルエンディアンシーケンスとして格納される（パディングは要求も追加もされず、ＵＲＬを短く保持する）。全ての引数と同様に、command-list及び署名引数はＵＲＬ符号化される。<PublicKeyIdentifier>()command-nameがlegacy-commandにおいて使用される場合、第１の引数はlegacy-command-listであるのが好ましい。
【０１２０】
暗号復号は逆の処理である。すなわち、ホームアプリケーションは公開鍵(P, M)を保持する。command-listのＳＨＡ−２５６ハッシュＨ（ＵＲＬ復号化の後）が計算される（２５６ビット）。公開鍵(P, M)を使用して、カウンタ署名(P<SUP>H</SUP> modulo M)が計算される。署名は、(Q<SUP>H</SUP> modulo M)を得るためにＢａｓｅ６４符号化され、積(P<SUP>H</SUP>×Q<SUP>H</SUP>) modulo Mが計算される。署名は、カウンタ署名に一致した場合に受け入れられ、これは(P<SUP>H</SUP>×Q<SUP>H</SUP>) modulo M = 1であることを意味する。
【０１２１】
上記概念は、コマンド引数が存在しない場合にも適用可能である。更に、コマンド名はセマンティックを引数に割り当てる複数のパラメータを含んでもよい。例えば、位置表記法及び名前表記法と呼ばれる２つの可能な方法で全ての引数をパラメータと一致させてもよく、これはプログラミング言語の機能呼出し構文に類似する。
【０１２２】
位置構文を参照すると、コマンド名が例えば３つのパラメータを有し、３つの引数が提供される場合、第１のパラメータを第１の引数と一致させる。例えば、アドレスコマンドが３つのパラメータ、City、Street及びHouseNumberを有する。実際のＵＲＬは３つの引数を含み、第１の引数はCityの名前と解釈される。
【０１２３】
あるいは、以下の構文がサポートされてもよい：
Address?Street = RembrandtPlein&City = Amsterdam
この場合、全ての引数はパラメータ名を含む。従って、それら引数は「名前付き」引数として周知である。
【０１２４】
更に、上記パラメータは必須のパラメータとして指定される。これは、一致する引数が必ず存在することを意味する。例えば「?」の代わりに他のパラメータが使用され、コマンド名とコマンド引数との間の区切りを示してもよい。更に、固定長のコマンド名を要求するような他の機構（その位置の後の第１の文字が第１のコマンド引数を開始することを示す）が採用されてもよい。
【０１２５】
一般に、<header>:///URIは１つ以上のコマンドを含んでもよい。従って、文字「#」（又は「and」等の任意の他の文字）がコマンドを連結するために使用されてもよい。
【０１２６】
図３は、ナビゲーション装置にインストールされた装置ファームウェアプログラムの実行に応答してナビゲーション装置の挙動をエミュレートする通信装置を示すブロック図である。通信装置は、装置ファームウェアプログラムに関する情報を提供する提供部（provider)３０１と、通信装置にインストールされた現在のファームウェアプログラムがナビゲーション装置にインストールされた装置ファームウェアプログラムに対応するかを判定し且つ提供部３０１に接続される判定部３０３と、現在のファームウェアプログラムが装置ファームウェアに対応する場合にナビゲーション装置の挙動をエミュレートするために通信装置上で現在のファームウェアプログラムを実行し且つ判定部３０３に接続されるプロセッサ３０５とを具備する。
【０１２７】
通信装置は、プログラム可能に構成され、エミュレート処理を制御できる上記ホームアプリケーションを実行するように構成される。
【０１２８】
エミュレートの概念は、ナビゲーション装置の有用性及び可搬性を更にサポートする。通常、（ポータブル）ナビゲーション装置は、入力としての役割も果たす小さな画面等を有する。これに対して、例えば（デスクトップ）コンピュータ（例えば、ＰＣ）は、非常に大きな画面及びより高度な入力方法を有する。従って、ナビゲーション装置が例えばナビゲーション装置に接続されてもよいコンピュータにより制御される場合、ナビゲーション装置上で実行される多くのタスクはより容易に行なわれる。更に、コンピュータのプロセッサ（例えば、ＣＰＵ）はより高速でもある。
【０１２９】
また、コンピュータ（通信装置の一実施形態を表す）等がより有能なコンピュータリソースを使用してナビゲーション装置を制御することを効果的に可能にするために、エミュレートの概念は、プログラム可能に実現され且つ例えばホームアプリケーションに組み込まれてもよい。
【０１３０】
ナビゲーション装置がホームクライアント（又は通信装置）に接続される場合、ナビゲーション装置にインストールされたファームウェアバージョンが判定される。ホームクライアントがコンピュータと等価のファームウェアバージョンを有する場合、そのファームウェアが開始される。等価のバージョンが利用可能でないがネットワーク接続（例えば、インターネット接続）が利用可能である場合、ホームクライアントは、等価のバージョンが何であるか及びどこでそれをダウンロードできるかをホームサーバに問い合わせてもよい。
【０１３１】
図４は、更なるネットワークエンティティから、ネットワークエンティティに特定の情報を提供する方法を示す。方法は、通信ネットワークを介してネットワークエンティティから更なるネットワークエンティティに特定の情報に対する要求を送信すること（４０１）と、通信ネットワークを介して更なるネットワークエンティティからネットワークエンティティに時間情報を送信すること（４０３）とを含む。時間情報は、特定の情報を取得するために更なるネットワークエンティティに接続する特定の時点を示す。方法は、例えば実行されると方法ステップを実行するソフトウェアで（例えば、ホームアプリケーションとして）実現されてもよい。
【０１３２】
例えば、ユーザは、特定の道路における交通日報（特定のユーザ別情報）をホームアプリケーションに要求できる。ホームアプリケーションは、毎日要求された時間に要求された道路における交通渋滞及び事故に関するレポートを示す。交通レポート要求がホームクライアントにおいて行なわれる場合、例えばクライアントは要求をサーバに即時に転送する。要求データは、所定のユーザのためにサーバに格納される。要求に応答して、サーバは、ホームクライアントがホームサーバをポーリングすべき時間を送出し返す。また、同一のユーザが再びログインした時、ホームサーバはサーバをポーリングする時間をホームクライアントに必ず知らせる。実際の交通レポートは、ポーリングレポートに反応してサーバにより送出される。ホームアプリケーションは、例えば表示する目的で交通レポートを形成する。その結果、全てのデータはサーバ側に格納されるが、接続はクライアントにより開始される。これにより、ホームクライアントは、コンピュータ上でソフトウェアプログラムとして実行される場合、ファイアウォール又はポップアップブロッカーがあるにも関わらず交通警告を示すことができる。
【０１３３】
ユーザ別情報等を取得するためにユーザ情報を判定する場合、ユーザにより手入力されるログイン証明が利用されてもよい。あるいは、ホームクライアントはそれら証明を事前に格納しておいてもよい。いずれにしても、ホームクライアントは、ログイン証明を有する場合、ソフトウェアプログラムにより提供されるホームクライアントが実行されると必ず自動的にそれら証明を送出してもよい。ホームクライアントが証明をまだ有していない場合、ユーザは手動でログインを開始できる。その場合、ホームクライアントは証明の入力を要求し、それらをリモートサーバに即時に送出し、後で使用するために格納する。
【０１３４】
図５は、コマンド名及び少なくとも１つのコマンド引数を含む暗号署名されたコマンドを提供する方法を示す。方法は、コマンド名の暗号署名を生成すること（５０１）と、コマンド名、署名及び少なくとも１つのコマンド引数を使用して暗号署名されたコマンドを合成（例えば、連結）すること（５０３）とを含む。
【０１３５】
例えば、図２の実施形態と関連して説明した暗号化方式及び復号方式は、デジタル署名を提供及び検証するために採用される。
【０１３６】
例えば、認証ＵＲＩは、２つの引数を含むコマンドを含んでもよい。第１の引数は、コマンドである文字列である。第２の引数は、第１の引数の「デジタル署名」である。デジタル署名を提供する秘密鍵を使用して第１の引数に署名するために、標準の公開鍵暗号化が採用されるのが好ましい。例えば、一致する公開鍵を有するホームクライアントは、第１の引数にカウンタ署名してもよい。鍵が等しい場合、署名及びカウンタ署名は相補的である。鍵が等しい場合、ホームクライアントは第１のコマンドを信用し、第１の引数のコマンドが危険と考えられる場合でもそのコマンドを実行する。
【０１３７】
上述の認証ＵＲＩ機構は、ナビゲーション装置のファームウェアを更新するために使用されてもよい。この機構は、警告なしでコマンドをコピー又は更新することを許可されるが好ましい。従って、例えば不適切なファームウェアでナビゲーション装置を更新することは、ナビゲーション装置に修復不可能な害を与える原因になる可能性がある。
【０１３８】
一実施形態によると、署名されたコマンドは別のコマンド（暗号署名されたコマンド）の第１の引数として使用され、例えば署名は第２の引数として使用される。暗号署名されたコマンドの構造は、以下の通りであってもよい：
verify_command(commandname1(argument1, argument2, argument3), signature)
【０１３９】
認証されるべきコマンドに秘密鍵（共通鍵）等を適用することにより、署名（外部コマンドに対する第２の引数）が生成されてもよい。すなわち：
commandname1(argument1, argument2, argument3) + private_key = signature
【０１４０】
カウンタ署名を生成するために、同様のアルゴリズムが使用されてもよい：
commandname1(argument1, argument2, argument3) + public_key = countersignature
【０１４１】
署名及びカウンタ署名が互いに対応する場合、コマンドは検証される。ＲＳＡ又はＤＳＡアルゴリズム等の標準の公開鍵暗号化方法が署名の目的で採用されるのが好ましい。
【０１４２】
例えば、以下のコマンドが考慮される：
<header>:///<PublicKeyIdentifier>?Install%3fhttp%3a%2f%2fintranet%2fplus%2fdocuments%2ftemp%2fnavcore_6.522.7709.go510-go710.toc&JYrSIQ
ここで、<PublicKeyIdentifier>は、ユーザにより認証されるコマンドに対して使用される実際のcommand-nameである。また、第１の引数は以下の通りである：
Install%3fhttp%3a%2f%2fintranet%2fplus%2fdocuments%2ftemp%2fnavcore_6.522.7709.go510-go710.toc
【０１４３】
これは埋め込まれたコマンドである。実際のコマンド名はinstallであり、「?」は%3fに符号化され、残りはinstallコマンドの引数である。ユーザは秘密鍵を使用してinstallコマンドに署名し、得られた署名はJYrSIQであった。コマンドを検証するために、カウンタ署名が生成されてもよい。コマンドが正確に署名された場合、カウンタ署名は一致する。
【０１４４】
別のユーザが<header>:///<PublicKeyIdentifier>?Install%3fhttp%3a%2f%evil.com%2fnavcore_6.522.7709.go510-go710.toc&JYrSIQ等のコマンドを編集しようとする場合、異なるカウンタ署名が計算され、それは署名と一致しない。evil.comからのコンテンツのインストールは拒否される。
【０１４５】
図６は、ナビゲーション装置に格納された現在のナビゲーションコンテンツを更新する通信装置を示す。通信装置は、現在のナビゲーションコンテンツを示す情報をナビゲーション装置から検索する検索部(retrieving element)６０１と、現在のナビゲーションコンテンツを示す情報を通信ネットワークを介してリモートネットワーク装置に送信し且つ検索部に接続される送信部６０３と、リモート通信装置から更新されたナビゲーションコンテンツを受信する受信部６０５と、更新されたナビゲーションコンテンツに関する情報を表示するか又はナビゲーション装置に更新されたナビゲーションコンテンツをインストールするプロセッサ６０７とを具備する。
【０１４６】
現在のナビゲーションコンテンツ又は更新されたナビゲーションコンテンツを示す情報は、コンテンツの種類、コンテンツ名、コンテンツの大きさ又はコンテンツのバージョン等を示すコンテンツファイルのテーブルとして送信されてもよい。更に、装置ＩＤ又はユーザＩＤに関する情報が送信されてもよい。
【０１４７】
リモート通信装置（例えば、サーバ）は、利用可能なナビゲーション項目（例えば、地図、ルート情報、ＧＰＳの位置等）のリスト等を格納するデータベースを具備してもよい。更にリモートサーバは、更新コンテンツを送信する前に、加入状況等によるユーザの権限又は装置ＩＤ等によるナビゲーション装置の権限をチェックしてもよい。
【０１４８】
上述のように、コンテンツ情報は、ＴＯＣファイル（コンテンツのテーブル）に集約されてもよい。ＴＯＣファイルの例を以下に記述する：
<Program>
<Id>13214</Id>
<Version>1.2</Version>
<Target>target</Target>
<Name>NameOfItem</Name>
<Preview>http://download.<download_address>/somepreview.exe</Preview>
<Location>http://download.<ウェブアドレス>/someitem.cab</Location>
<Size>546484</Size>
</Program>
<Map>
<Id>8977</Id>
<Version>1.2</Version>
<Target>Thistarget</Target>
<Name>Benelux</Name><Category>Category</Category>
<Preview>http://download.<download_address>/mappreview.png</Preview>
<Location>http://download.<download_address>/mapdownload.cab</Location>
<Icon>http://download.<download_address>/mapicon.png</Icon>
<Size>46464987</Size>
<InstallRestrictions DeviceId="35265252"/>
</Map>
<Voice language="en" gender="male">
<Id>4657</Id>
<Version>1.1</Version>
<Name>user_name</Name>
<Preview>http://download.<download_address>/voicepreview.mp3</Preview>
<Location>http://download.<download_address>/voicedownload.cab</Location>
<Size>468797946231</Size>
<Picture>http://<download_address>/voicepicture.png</Picture>
<Icon>http://<download_address>/voiceicon.png</Icon>
</Voice>
<Colorscheme>
<Id>98797</Id>
<Version>1.1</Version>
<Name>Bright Black</Name>
<Location>http://download.<download_address>/colordownload.cab</Location>
<Size>6464</Size>
</Colorscheme>
<Poi>
<Id>65446</Id>
<Version>1.3</Version>
<Name>Wifi Hotspots</Name>
<Category>Connectivity</Category>
<Location>http://download.<download_address>/poidownload.cab</Location>
<Size>54567</Size>
</Poi>
</Toc>
【０１４９】
フィールド<InstallRestrictions DeviceId="35265252"/>は、この項目のインストール可能性（<Target>要素とは別）に対する制約を特定する。これは、コンテンツを有さない。オプションの属性は、項目がその装置ＩＤを有する装置にのみインストール可能であることを示すdeviceid(string)と、インストールされる項目に対してインストールされる必要のあるナビゲーションプログラムの最小バージョンを示すminNavigatorVersion(string)とである。
【０１５０】
図７は、コンピュータ等で実行する実行可能なアプリケーションプログラム７０１（スイートアプリケーション、ホームアプリケーション）との通信例を示すブロック図である。コンピュータは、図７に示すように情報を交換するために通信ネットワーク７０３を介してリモートサーバ７０５と通信する。サーバ７０７は、アプリケーションプログラム７０１により提供される要素をバルーンメッセージ７０７又はブラウザにおいて示すメッセージを提供してもよい。
【０１５１】
上述の実施形態における要素及び特徴の特定の組合せは単に例示である。それら教示を本発明／本出願及び参考として取り入れられている発明／出願における他の教示と交換及び置換することが明らかに考慮されている。当業者には認識されるように、本明細書で説明された例の変形、変更及び他の実現例は、請求される本発明の趣旨の範囲から逸脱せずに当業者により行なわれる。従って、上述の説明は単なる例であり、制限することを意図していない。本発明の範囲は、以下の請求の範囲及びそれらの等価物で規定される。更に、本明細書で使用される図中符号及び請求の範囲は、請求されるような本発明の範囲を制限するものではない。
【図面の簡単な説明】
【０１５２】
【図１】通信装置を示すブロック図である。
【図２】処理装置を示すブロック図である。
【図３】通信装置を示すブロック図である。
【図４】特定の情報を提供する方法を示すフローチャートである。
【図５】暗号署名されたコマンドを提供する方法を示すフローチャートである。
【図６】ナビゲーションコンテンツを更新する通信装置を示すブロック図である。
【図７】通信例を示すブロック図である。
【図１】
2009533722.tif 000003
【図２】
2009533722.tif 000004
【図３】
2009533722.tif 000005
【図４】
2009533722.tif 000006
【図５】
2009533722.tif 000007
【図６】
2009533722.tif 000008
【図７】
2009533722.tif 000009
【手続補正書】
【提出日】平成20年10月1日(2008.10.1)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2009533722.tif 000010
【国際調査報告】
2009533722.tif 000011
2009533722.tif 000012