(57)【要約】【課題】悪意のあるアプリからデーベースを保護するとともに、データベース活用の自由度を確保する。【解決手段】追加アプリ管理部５０９は、追加アプリをインストールするとき、追加アプリ識別情報、認証有無情報を追加アプリ管理ＤＢ５１０に記憶し、データベース管理部５０７は、データベースを構築するとき、そのデータベースの識別情報、オーナアプリの識別情報、ＤＢ構成定義情報をデータ構成定義ＤＢ５１１に記憶し、データベースがアクセスされるとき、追加アプリ管理ＤＢ５１０、データ構成定義ＤＢ５１１を参照し、アクセスアプリが組込みアプリか追加アプリか、認証アプリか非認証アプリか、さらに、被アクセスデータベースが組込みＤＢ５１２か追加アプリ用ＤＢ５１３か、オーナが自アプリか他アプリかを判定した結果により、データベースのアクセス操作の可否を決定する。【選択図】図２
2008046959.tif 000002
【特許請求の範囲】
【請求項１】
入力装置と、表示装置と、経路誘導に係る所定の組込みデータベースを記憶した記憶装置と、を少なくとも備え、前記入力装置から入力した入力情報に基づき前記データベースを検索し、その検索した情報を前記表示装置に表示するコンピュータを含んで構成されたカーナビゲーション装置であって、
前記コンピュータが、
所定の通信ネットワークを介して他のコンピュータからダウンロードしたアプリケーションプログラムであるアプリを追加アプリとしてインストールする場合に、その追加アプリの識別情報とその追加アプリの認証有無の情報とを含む情報を追加アプリ管理情報として記憶し、
前記組込みデータベースを構築する場合、または、前記追加アプリによって追加データベースを構築する場合に、その構築する組込みデータベースまたは追加データベースに係るデータベースの識別情報と、そのデータベースを構築するアプリの識別情報と、そのデータベースの構成定義情報と、を含む情報をデータベース管理情報として記憶し、
前記組込みデータベースまたは前記追加データベースをアクセスするときには、前記追加アプリ管理情報および前記データベース管理情報を参照し、
前記データベースをアクセスするアプリが、前記カーナビゲーション装置にあらかじめ組込まれている組込みアプリであるかまたは前記追加アプリであるか、および、認証アプリであるかまたは非認証アプリであるかを判定し、さらに、
前記アクセスされるデータベースが、前記組込みデータベースであるかまたは前記追加データベースであるか、および、前記アクセスするアプリが構築したデータベースであるかまたは他のアプリが構築したデータベースであるかを判定し、
前記判定によって得られた結果に基づき、前記データベースのアクセス操作の可否を決定し、そのアクセス操作を行うこと
を特徴とするカーナビゲーション装置。
【請求項２】
前記コンピュータは、
前記追加データベースを構築する場合に、その追加データベースが継承するデータベースとして前記組込みデータベースが指定されていたときには、その継承元のデータベースの識別情報を前記データベース管理情報に含めて記憶し、
前記組込みアプリから前記組込みデータベースへの検索要求があった場合に、前記データベース管理情報を参照して、その組込みデータベースを継承元とする追加データベースの識別情報があったときには、前記組込みデータベースと併せてその追加データベースをも検索すること
を特徴とする請求項１に記載のカーナビゲーション装置。
【請求項３】
入力装置と、表示装置と、経路誘導に係る所定の組込みデータベースを記憶した記憶装置と、を少なくとも備え、前記入力装置から入力した入力情報に基づき前記データベースを検索し、その検索した情報を前記表示装置に表示するコンピュータを含んで構成されたカーナビゲーション装置におけるデータベース管理方法であって、
前記コンピュータが、
所定の通信ネットワークを介して他のコンピュータからダウンロードしたアプリケーションプログラムであるアプリを追加アプリとしてインストールする場合に、その追加アプリの識別情報とその追加アプリの認証有無の情報とを含む情報を追加アプリ管理情報として記憶し、
前記組込みデータベースを構築する場合、または、前記追加アプリによって追加データベースを構築する場合に、その構築する組込みデータベースまたは追加データベースに係るデータベースの識別情報と、そのデータベースを構築するアプリの識別情報と、そのデータベースの構成定義情報と、を含む情報をデータベース管理情報として記憶し、
前記組込みデータベースまたは前記追加データベースをアクセスするときには、前記追加アプリ管理情報および前記データベース管理情報を参照し、
前記データベースをアクセスするアプリが、前記カーナビゲーション装置にあらかじめ組込まれている組込みアプリであるかまたは前記追加アプリであるか、および、認証アプリであるかまたは非認証アプリであるかを判定し、さらに、
前記アクセスされるデータベースが、前記組込みデータベースであるかまたは前記追加データベースであるか、および、前記アクセスするアプリが構築したデータベースであるかまたは他のアプリが構築したデータベースであるかを判定し、
前記判定によって得られた結果に基づき、前記データベースのアクセス操作の可否を決定し、そのアクセス操作を行うこと
を特徴とするデータベース管理方法。
【請求項４】
前記コンピュータは、
前記追加データベースを構築する場合に、その追加データベースが継承するデータベースとして前記組込みデータベースが指定されていたときには、その継承元のデータベースの識別情報を前記データベース管理情報に含めて記憶し、
前記組込みアプリから前記組込みデータベースへの検索要求があった場合に、前記データベース管理情報を参照して、その組込みデータベースを継承元とする追加データベースの識別情報があったときには、前記組込みデータベースと併せてその追加データベースをも検索すること
を特徴とする請求項３に記載のデータベース管理方法。
【請求項５】
請求項３または請求項４に記載のデータベース管理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースの管理機能を有するカーナビゲーション装置、並びに、そのカーナビゲーション装置におけるデータベース管理方法およびプログラムに関する。
【背景技術】
【０００２】
近年のカーナビゲーション装置（以下、略して「カーナビ装置」という）は、携帯電話などの無線通信手段を介してインターネット上の様々なＷＥＢサイトに接続し、そのＷＥＢサイトから様々なアプリケーションプログラム（以下、略して「アプリ」いう）やデータをダウンロードすることができるようになった。そして、そのアプリやデータをインストールし実行することによって、カーナビ装置の機能は拡張されることになり、ユーザの利便性は向上することとなる。
【０００３】
ところで、多くのカーナビ装置は、経路誘導のための地図データベースのみならず、ユーザが日々蓄積したＰＯＩ（Point of Interest）、電話帳など種々のデータベースを備えている。一方、前記ダウンロードした様々なアプリの中には、悪意のあるアプリが存在する可能性があり、その悪意のあるアプリによって、それらのデータベースが破壊されたり、改ざんされたり、データベース内の個人情報などが無断で参照されたりする可能性がある。そこで、カーナビ装置内のデータベースを悪意のあるアプリから保護する必要があるが、従来のカーナビ装置においては、データベースの保護は充分に行われていないのが現状である。
【０００４】
一般に、データベースのアクセスコントロール（データの参照または改変の制御）は、データベースごとに設定されたユーザのアクセス権限をチェックすることによって行われるが、カーナビ装置は、シングルユーザでの使用が想定されているので、ユーザのアクセス権限のチェックによるアクセスコントロールには、あまり効果が見出せない。また、仮に、カーナビ装置に複数のユーザを設定できるようにしたとしても、所定のアクセス権限を有するユーザが悪意のあるアプリをダウンロードして実行した場合には、そのユーザが有するアクセス権限内での悪意のあるデータベースの操作が許容されることになる。
【０００５】
特許文献１や特許文献２には、カーナビ装置を対象としたものではないが、ダウンロードしたアプリに対しサーバなどによって付与された認証情報を用いて、データベースのアクセスコントロールを行う例が開示されている。これらの文献によれば、同じユーザが同じデータベースをアクセスする場合であっても、実行するアプリに付された認証情報の有無により、アクセスレベルの権限のレベルを変えることができる。例えば、認証情報が付与されていないアプリからのアクセスの場合には、そのアクセスを遮断することができる。
【特許文献１】特開２００３−３３０５５７号公報
【特許文献２】特開２００２−１８２９８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
カーナビ装置の場合、そのカーナビ装置が元々備えているデータベースだけでなく、ＷＥＢサイトなどからダウンロードして追加したアプリが使用する追加したデータベースがあることがある。しかも、その追加したデータベースは、カーナビ装置の元々のデータベースと類似し、元々のデータベースを拡張する効果を有するものもある。従って、このような場合、単に、アプリに付された認証情報だけによってデータベースへのアクセスをコントロールしようとすると、カーナビ装置におけるデータベース活用の自由度、言い換えれば、ユーザに対するサービスの自由度が損なわれる恐れがある。
【０００７】
以上の従来技術の問題点に鑑み、本発明の目的は、悪意のあるアプリからデータベースを保護することができ、かつ、そのデータベース活用の自由度を確保することができるカーナビゲーション装置、並びに、そのカーナビゲーション装置におけるデータベース管理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、入力装置と、表示装置と、経路誘導に係る所定の組込みデータベースを記憶した記憶装置と、を少なくとも備え、前記入力装置から入力した入力情報に基づき前記データベースを検索し、その検索した情報を前記表示装置に表示するコンピュータを含んで構成されたカーナビゲーション装置、並びに、データベース管理方法およびプログラムであって、前記コンピュータが、
（１）所定の通信ネットワークを介して他のコンピュータからダウンロードした追加アプリをインストールするときに、その追加アプリの識別情報とその追加アプリの認証有無の情報とを含む情報を追加アプリ管理情報として記憶し、
（２）前記組込みデータベースを構築する場合、または、前記追加アプリによって追加データベースを構築する場合に、その構築する組込みデータベースまたは追加データベースに係るデータベースの識別情報と、そのデータベースを構築するアプリの識別情報と、そのデータベースの構成定義情報と、を含む情報をデータベース管理情報として記憶し、
（３）前記組込みデータベースまたは前記追加データベースをアクセスするときには、前記追加アプリ管理情報および前記データベース管理情報を参照し、
（４）前記データベースをアクセスするアプリが、前記カーナビゲーション装置にあらかじめ組込まれている組込みアプリであるかまたは前記追加アプリであるか、および、認証アプリであるかまたは非認証アプリであるかを判定し、さらに、
（５）前記アクセスされるデータベースが、前記組込みデータベースであるかまたは前記追加データベースであるか、および、前記アクセスするアプリが構築したデータベースであるかまたは他のアプリが構築したデータベースであるかを判定し、
（６）前記判定によって得られた結果に基づき、前記データベースのアクセス操作の可否を決定し、そのアクセス操作を行うこと
を特徴とする。
【発明の効果】
【０００９】
本発明のカーナビゲーション装置においては、悪意のあるアプリからデーベースを保護することができ、かつ、そのデータベース活用の自由度を確保することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１１】
図１は、本発明の実施形態が適用されるカーナビゲーションシステムの全体の概略構成の例を示した図である。図１に示すように、カーナビゲーションシステム１は、道路を走行する車両５に搭載されたカーナビ装置１０と、そのカーナビ装置１０の構成要素としての携帯電話機１０６、携帯電話の基地局２０、通信ネットワーク３０などを介して接続されたサービスセンタ４０とを含んで構成される。
【００１２】
カーナビ装置１０は、さらに、本体装置部１０１、表示装置１０２、ＧＰＳ（Global Positioning System）受信機１０３、リモコン１０５、携帯電話機１０６などを含んで構成される。ユーザは、リモコン１０５、図示しないタッチパネル、ボタン、スイッチなどを用いてカーナビ装置１０を操作する。また、ＧＰＳ受信機１０３は、ＧＰＳ衛星５０からの信号を受信し車両５の位置を測位する。また、カーナビ装置１０は、携帯電話機１０６を含むことにより、基地局２０、通信ネットワーク３０などを介してサービスセンタ４０との通信が可能になっている。
【００１３】
一方、サービスセンタ４０は、通信部４０１、要求処理部４０２、コンテンツ管理部４０３、コンテンツＤＢ（Database）４０４、アプリ管理部４０５、アプリＤＢ４０６などを含んで構成される。ここで、サービスセンタ４０は、ニュース、地点情報、渋滞情報などのカーナビゲーションに係る交通情報をコンテンツＤＢ４０４に格納し、カーナビ装置１０に追加してインストールするためのアプリ（以下、略して「追加アプリ」という）をアプリＤＢ４０６に格納する。そして、カーナビ装置１０からの要求に応じて、コンテンツＤＢ４０４またはアプリＤＢ４０６から、適宜、交通情報またはアプリを読み出して、カーナビ装置１０に配信する。
【００１４】
このとき、通信部４０１は、通信ネットワーク３０を介して送信されてくるカーナビ装置１０からの要求を受信するとともに、カーナビ装置１０へ前記の交通情報または追加アプリを適宜配信する。また、要求処理部４０２は、カーナビ装置１０からの要求の対象が何であるかを判定し、その要求が「交通情報の配信」であった場合には、コンテンツ管理部４０３においてコンテンツＤＢ４０４から所望の情報を取り出し、カーナビ装置１０に配信する。また、前記要求が「アプリの配信」であった場合には、アプリ管理部４０５においてアプリＤＢ４０６から所望の情報コンテンツを取り出し、カーナビ装置１０に配信する。
【００１５】
なお、以上のカーナビゲーションシステム１の構成において、カーナビ装置１０が複数存在するのは、当然であるが、サービスセンタ４０が複数存在しても構わない。そして、そのサービスセンタ４０がカーナビゲーションに関係しない情報や追加アプリを配信するものであっても構わない。
【００１６】
図２は、本発明の実施形態に係るカーナビ装置における本体装置部の機能ブロックの構成の例を示した図である。図２に示すように、カーナビ装置１０の本体装置部１０１は、表示処理部５０１、入力処理部５０２、通信部５０３、制御部５０４、センサドライバ５０５、ナビゲーション処理部５０６、データベース管理部５０７、追加アプリ処理部５０８、追加アプリ管理部５０９、通話処理部５１４などの機能ブロックを含み、さらに、追加アプリ管理ＤＢ５１０、データ構成定義ＤＢ５１１、組込みＤＢ５１２、追加アプリ用ＤＢ５１３などのデータベースを含んで構成される。
【００１７】
図２において、入力処理部５０２は、リモコン１０５からの入力操作情報を受付け、制御部５０４に対してその入力操作情報を通知する。制御部５０４は、その通知された入力操作情報を、さらに、ナビゲーション処理部５０６、追加アプリ処理部５０８などに通知する。また、制御部５０４は、それぞれの処理部が処理した結果の情報を、表示処理部５０１を介して表示装置１０２に表示する。
【００１８】
また、制御部５０４は、追加アプリ処理部５０８、追加アプリ管理部５０９などからの要求に基づき、通信部５０３、携帯電話機１０６などを介して接続したサービスセンタ４０からアプリなどのコンテンツをダウンロードする。
【００１９】
また、ナビゲーション処理部５０６は、センサドライバ５０５と接続され、そのセンサドライバ５０５を介して、ＧＰＳ受信機１０３から位置情報、図示しない車速センサから車速情報、図示しないジャイロから角速度情報などを取得し、車両５の現在位置を測位する。そして、その測位した現在位置を含んだ地図を表示装置１０２に表示するとともに、その現在位置を所定のマークなどで表示する。さらに、ナビゲーション処理部５０６は、データベース管理部５０７を介して、ナビ用ＰＯＩＤＢ５１２１などの組込みＤＢ５１２にアクセスし、そのナビ用ＰＯＩＤＢ５１２１からユーザが所望する地点情報などを検索し、その検索によって得られた地点を目的地としてその目的地までの誘導経路を探索し、その探索した誘導経路を地図表示するなどして、ユーザに経路誘導情報を提供する。
【００２０】
また、追加アプリ管理部５０９は、通信部５０３を介して接続したサービスセンタ４０から、Ｊａｖａ（登録商標）プログラムなどのアプリとそのアプリについてのアプリ情報とを含んだアプリ配信パッケージ６０（後記図３参照）をダウンロードする。そして、そのダウンロードしたアプリをインストールし、そのアプリ情報を追加アプリ管理ＤＢ５１０に登録する。さらに、追加アプリ管理部５０９は、そのアプリ配信パッケージ６０にＤＢ構成定義情報６０３（後記図３参照）が含まれていたときには、当該追加アプリが使用する追加アプリ用ＤＢ５１３を、その追加アプリのインストール時に併せて構築し、追加アプリでの利用を可能にする。
【００２１】
なお、本実施形態のカーナビ装置１０においては、データベースを、
（１）カーナビ装置１０の工場出荷時などにあらかじめ組込んだ組込みＤＢ５１２と、
（２）ユーザがサービスセンタ４０からダウンロードした情報などによって構築した追加アプリ用ＤＢ５１３と
に区別して使用する。なお、組込みＤＢ５１２としては、例えば、ナビ用ＰＯＩＤＢ５１２１、通話用アドレス帳５１２２などがある。また、追加アプリ用ＤＢ５１３としては、ユーザが追加アプリなどを利用して作成したＰＯＩ拡張ＤＢ５１３１などがある。
【００２２】
データベース管理部５０７は、このようなデータベース（組込みＤＢ５１２および追加アプリ用ＤＢ５１３）を管理し、そのデータベースの構築や削除などの制御を行うとともに、ナビゲーション処理部５０６、追加アプリ処理部５０８などからのデータベースへのアクセスを適宜コントロールする。また、データベース管理部５０７は、データベースの構成やそのアクセスコントロール情報をデータ構成定義ＤＢ５１１により管理する。
【００２３】
通話処理部５１４は、組込みＤＢ５１２のうち、通話用アドレス帳５１２２から所望の電話帳を検索し、通信部５０３を介し、携帯電話機１０６に接続してハンズフリーフォンの機能をサポートする。
【００２４】
なお、図２に示したカーナビ装置１０の本体装置部１０１は、ハードウエアとしては、図示しないＣＰＵ（Central Processing Unit）と図示しない記憶装置（ＲＡＭ（Random Access Memory）、フラッシュメモリ、ハードディスク装置など）とを少なくとも含んで構成されたコンピュータによって実現される。すなわち、本体装置部１０１の各機能ブロックの機能は、前記ＣＰＵが前記記憶装置に格納された所定のプログラムを実行することによって実現される。また、データベースのデータは、前記記憶装置の所定の領域に記憶される。
【００２５】
以上の説明によれば、本体装置部１０１における機能ブロックの機能を実現する動作の主体はＣＰＵである。従って、「ＡＡＡブロックがＸＸＸをする。」の表現は、本来は、正しくない。しかしながら、このような表現は当業者間で広く慣用されているので、本明細書では、以下においても、同様の表現を用いるものとする。そして、「ＡＡＡブロックがＸＸＸをする。」の表現は、「ＣＰＵが（ＡＡＡブロックに対応するプログラムを実行することによって）ＸＸＸをする。」を意味するものとする。
【００２６】
図３は、本実施形態に係るカーナビ装置が追加アプリをサービスセンタからダウンロードするときのアプリ配信パッケージの構成の例を示した図である。図３に示すように、アプリ配信パッケージ６０は、電子署名６０１と、アプリ情報６０２と、ＤＢ構成定義情報６０３と、アプリプログラム６０４とを含んで構成される。
【００２７】
電子署名６０１は、公知の技術を用いてサービスセンタ４０などによって付され、アプリ情報６０２以下に記述された情報の正当性を保証するために用いる。従って、電子署名６０１が正当なものであったときには、アプリプログラム６０４は認証されていることを示し、電子署名６０１が正当でなかったときには、アプリプログラム６０４は認証されていないことを示す。
【００２８】
アプリ情報６０２は、少なくとも、「アプリ名称」、「プログラムサイズ」、「更新日時」、「認証レベル」の各情報を有する。「アプリ名称」は、そのアプリプログラム６０４を識別するための情報である。追加アプリ管理部５０９は、ユーザがアプリプログラム６０４のインストールや実行をするとき、その「アプリ名称」を、適宜、表示装置１０２に表示し、ユーザに対し、その選択を求める。
【００２９】
「プログラムサイズ」は、アプリプログラム６０４のプログラムサイズである。追加アプリ管理部５０９は、アプリプログラム６０４をインストールするとき、その「プログラムサイズ」と実際に配信されたアプリプログラム６０４のプログラムサイズとを比較することによって、配信されたアプリプログラム６０４が元のものと同じであるか否かを検証する。
【００３０】
「更新日時」は、アプリプログラム６０４の最新の更新日時を表す情報である。追加アプリ管理部５０９は、すでに同じ名称のアプリプログラム６０４がインストールされていたときには、その更新日時を比較し、「更新日時」がインストール済みのものより新しい日時であったときには、更新のためアプリプログラム６０４をインストールする。
【００３１】
「認証レベル」は、アプリプログラム６０４の認証レベルを表す情報である。追加アプリ管理部５０９は、例えば、「認証レベル＝１」が認証、「認証レベル＝０」が非認証を表すものとし、この「認証情報」をアプリプログラム６０４と関連付けて管理する。また、データベース管理部５０７は、この「認証情報」をデータベースのアクセスコントロールに利用する。ただし、前記の電子署名６０１が付されていなかったとき、または、その正当性が認められなかったときには、「認証レベル＝０」であるものとする。
【００３２】
ＤＢ構成定義情報６０３は、アプリプログラム６０４がデータベースを利用する場合に付加される情報であり、データベースを利用しない場合には付加されない。ＤＢ構成定義情報６０３の詳細については、次に、図４〜図６を用いて説明する。また、アプリプログラム６０４は、当該アプリ配信パッケージ６０によって配信される追加アプリの本体部分を構成し、Ｊａｖａ（登録商標）などで記述されたプログラムである。
【００３３】
図４は、本実施形態に係るＤＢ構成定義情報の例を示した図で、（ａ）は、継承データベースを有しない場合のデータベース定義情報の例、（ｂ）は、継承データベースを有する場合のデータベース定義情報の例を示している。また、図５は、図４（ａ）のデータベース定義情報により構築されたデータベースの構成の例を示した図、図６は、図４（ｂ）のデータベース定義情報により構築されたデータベースの構成の例を示した図である。
【００３４】
図４に示すように、ＤＢ構成定義情報６１，６２は、公知のデータベース言語であるＳＱＬ（Structured Query Language）を用いて記述されたデータベース定義情報である。図４（ａ）のＤＢ構成定義情報６１において、「ＣＲＥＡＴＥ  ＴＡＢＬＥ」６１１はデータベース作成処理を示すキーワード、「ＰＯＩ」６１２はデータベースの名称、６１３の部分はデータベース中のフィールド定義を表している。
【００３５】
追加アプリ管理部５０９は、追加アプリをインストールするときに、データベース管理部５０７に対して、このＤＢ構成定義情報６１を元にデータベースを構築するように要求する。すると、データベース管理部５０７は、図５に示すようなＰＯＩデータベース６３を構築する。このとき、ＰＯＩデータベース６３は、ＤＢ構成定義情報６１に従って、「ＩＤ」６３１、「名称」６３２、「緯度」６３３、「経度」６３４のフィールドが設けられる。なお、図５では、ＰＯＩデータベース６３の構成を分かりやすくするために、所定の追加アプリがすでにレコード６３５を格納した状態でのデータベースを示しているが、追加アプリをインストールした直後には、そのレコード６３５は存在しない。
【００３６】
図４（ｂ）のＤＢ構成定義情報６２においては、データベース生成の定義文の最後に「ＩＮＨＥＲＩＴＳ（ＰＯＩ）」６２１を付加している。「ＩＮＨＥＲＩＴＳ（ＰＯＩ）」６２１を付加することにより、新たに定義するＴＬＥＭＡ＿ＰＯＩデータベースの継承関係を記述することができる。この例の場合、ＴＬＥＭＡ＿ＰＯＩデータベースの親データベースは、ＰＯＩデータベースであり、そのフィールドは、親データベースのフィールドに「電話番号」のフィールドが追加されたものとなっている。
【００３７】
このＤＢ構成定義情報６２に従って、新たなデータベースを構築すると、図６のＴＬＥＭＡ＿ＰＯＩデータベース６４のようになる。ＴＬＥＭＡ＿ＰＯＩデータベース６４においては、ＰＯＩデータベース６３と同じフィールドである「ＩＤ」６４１、「名称」６４２、「緯度」６４３、「経度」６４４に、「電話番号」６４５のフィールドが加えられている。
【００３８】
なお、図３において、アプリ配信パッケージ６０の中にＤＢ構成定義情報６０３を複数含めることができる。この場合には、１つの追加アプリによって、複数のデータベースを構築し、利用することができるようになる。
【００３９】
図７は、本実施形態に係る追加アプリ管理ＤＢの構成の例を示した図である。図７に示すように、追加アプリ管理ＤＢ５１０のレコードは、「アプリＩＤ」６５１、「アプリ名称」６５２、「認証」６５３、「ＤＢ利用」６５４、「更新日時」６５５の各フィールドを含んで構成される。
【００４０】
ここで、「アプリＩＤ」６５１は、追加アプリを内部で管理するときの識別情報、「アプリ名称」６５２は、当該追加アプリの名称を表示装置１０２などに表示するときに使用する情報である。また、「認証」６５３は、当該追加アプリに付された認証レベルの情報（図３参照）、「ＤＢ利用」６５４は、当該追加アプリがデータベースを使用するか否かを示す情報、「更新日時」６５５は、当該アプリを最後にインストールしたときの当該アプリの更新日時の情報（図３参照）である。
【００４１】
追加アプリ管理ＤＢ５１０のレコードは、追加アプリ管理部５０９によって、追加アプリがインストールされたときに、当該追加アプリのアプリ配信パッケージ６０などを参照して作成される。また、追加アプリが更新されてインストールされたときには、「更新日時」６５５のフィールドを含め、更新内容に応じ、適宜、更新される。なお、「認証」６５３のフィールドは、データベース管理部５０７がデータベースへのアクセスをコントロールするに際し、参照される。
【００４２】
図８は、本実施形態に係るデータ構成定義ＤＢの構成の例を示した図である。図８に示すように、データ構成定義ＤＢ５１１のレコードは、「ＤＢＩＤ」６６１、「ＤＢ名称」６６２、「継承元ＤＢＩＤ」６６３、「オーナアプリＩＤ」６６４、「ＤＢ構成定義情報」６６５の各フィールドを含んで構成される。
【００４３】
ここで、「ＤＢＩＤ」６６１は、データベースを内部で管理するときの識別情報、「ＤＢ名称」６６２は、当該データベースの名称を表示装置１０２などに表示するときに使用する情報である。また、「継承元ＤＢＩＤ」６６３は、当該データベースに継承するデータベースがあったときの継承元データベース（親データベース）のＤＢＩＤである。また、「オーナアプリＩＤ」６６４は、当該データベースのオーナ、つまり、当該データベースを構築した追加アプリのアプリＩＤである。また、「ＤＢ構成定義情報」６６５は、当該データベースのデータベース定義情報である。なお、ナビゲーション処理部５０６などの組み込みプログラムの「オーナアプリＩＤ」は、「０」とする。
【００４４】
データ構成定義ＤＢ５１１のレコードは、データベース管理部５０７によって、追加アプリがインストールされ、データベースが新規に構築されたときに、当該追加アプリのアプリ配信パッケージ６０などを参照して作成される。また、追加アプリが更新されたときには、「ＤＢ構成定義情報」６６５のフィールドなどが更新される。
【００４５】
図９は、本実施形態のカーナビ装置におけるアプリのインストールおよび更新処理の流れの例を示した図である。
【００４６】
制御部５０４（図２参照）は、リモコン１０５などから入力処理部５０２を介して、アプリインストール要求の操作情報を受け付けると（ステップＳ１１）、通信部５０３を介して、サービスセンタ４０からアプリ配信パッケージ６０の形をしたアプリをダウンロードする（ステップＳ１２）。
【００４７】
追加アプリ管理部５０９は、制御部５０４からアプリをダウンロードした旨の通知を受けると、そのダウンロードしたアプリ配信パッケージ６０に含まれるアプリ情報６０２を解析する（ステップＳ１３）。そして、追加アプリ管理部５０９は、アプリ情報６０２に含まれるアプリ名称と同じ名称のアプリが、追加アプリ管理ＤＢ５１０にすでに存在しているか否かを検索し、そのアプリがすでにインストール済みか否かを判定する（ステップＳ１４）。その判定の結果、そのダウンロードしたアプリがまだインストール済みでなかったときには（ステップＳ１４でＮｏ）、追加アプリ管理部５０９は、さらに、アプリ配信パッケージ６０中にＤＢ構成定義情報６０３が付加されているか否かを判定する。（ステップＳ１５）。
【００４８】
その判定の結果、ＤＢ構成定義情報６０３が付加されていたときには（ステップＳ１５でＹｅｓ）、追加アプリ管理部５０９は、当該ダウンロードしたアプリをインストールするとともに、ＤＢ構成定義情報６０３に基づきデータベースを新規構築する（ステップＳ１６）。このとき、追加アプリ管理部５０９は、追加アプリ管理ＤＢ５１０に当該インストールしたアプリのアプリ名称６５２などを含むレコード（図７参照）を新規に追加し、また、データベース管理部５０７は、データ構成定義ＤＢ５１１に当該新規構築したデータベースのＤＢ名称６６２などを含むレコード（図８参照）を新規追加する。
【００４９】
一方、ＤＢ構成定義情報６０３が付加されていなかったときには（ステップＳ１５でＮｏ）、追加アプリ管理部５０９は、当該アプリをインストールする（ステップＳ１７）。このとき、追加アプリ管理部５０９は、追加アプリ管理ＤＢ５１０に当該インストールしたアプリのアプリ名称６５２などを含むレコード（図７参照）を新規に追加する。
【００５０】
また、ステップＳ１４の判定で、当該ダウンロードしたアプリがインストール済みだったときには（ステップＳ１４でＹｅｓ）、追加アプリ管理部５０９は、そのダウンロードしたアプリのアプリ情報６０２に含まれる更新日時と、追加アプリ管理ＤＢ５１０に含まれる当該アプリと名称が同じアプリの更新日時とを比較し、当該ダウンロードしたアプリの更新日時のほうが新しいものであるか否かを判定する（ステップＳ１８）。そして、当該ダウンロードしたアプリの更新日時のほうが新しいものであったときには（ステップＳ１８でＹｅｓ）、追加アプリ管理部５０９は、さらに、アプリ配信パッケージ６０中にＤＢ構成定義情報６０３が付加されているか否かを判定する（ステップＳ１９）。
【００５１】
その判定の結果、ＤＢ構成定義情報６０３が付加されていたときには（ステップＳ１９でＹｅｓ）、追加アプリ管理部５０９は、さらに、データ構成定義ＤＢ５１１を検索して当該アプリがオーナアプリとなっているＤＢ構成定義情報６６５を抽出し、そのＤＢ構成定義情報６６５がアプリ配信パッケージ６０に付加されていたＤＢ構成定義情報６０３と同じであるか否かを判定する（ステップＳ２０）。
【００５２】
その判定の結果、両者のＤＢ構成定義情報が同じでなかったときには（ステップＳ２０でＮｏ）、ダウンロードされたアプリプログラム６０４およびＤＢ構成定義情報６０３により、追加アプリ管理部５０９は、当該アプリのインストールを更新するとともに、当該データベースのフィールド構成を変更する（ステップＳ２１）。このとき、追加アプリ管理部５０９は、アプリ情報６０２により追加アプリ管理ＤＢ５１０の当該アプリのレコードを更新し、データベース管理部５０７は、ＤＢ構成定義情報６０３によりデータ構成定義ＤＢ５１１の当該データベースのレコードを更新する。
【００５３】
一方、ステップＳ１９の判定でＤＢ構成定義情報６０３が付加されていなかったとき（ステップＳ１９でＮｏ）、または、ステップＳ２０の判定で両者のＤＢ構成定義情報が同じだったとき（ステップＳ２０でＹｅｓ）には、追加アプリ管理部５０９は、当該アプリのインストールを更新し（ステップＳ２２）、アプリ情報６０２により追加アプリ管理ＤＢ５１０の当該アプリのレコードを更新する。
【００５４】
また、ステップＳ１８の判定で当該ダウンロードしたアプリの更新日時のほうが新しいものでなかったときには（ステップＳ１８でＮｏ）、すでに最新のアプリがインストールされていることになるので、アプリの更新処理などを行わずにそのまま処理を終了する。
【００５５】
以上のようなアプリのインストールおよび更新処理によって、アプリとそれが使用するデータベースを、データ構成定義ＤＢ５１１において管理することができるので、アプリとデータベースのバージョン不整合などによるアプリの動作不具合を防ぐことができる。また、データベース間の継承関係を管理することができる。
【００５６】
図１０は、本実施形態に係るデータベースのアクセスコントロールのルールの例を模式的に示した図である。ここでは、データベースをアクセスするアプリが、組込みアプリ（ナビゲーション処理部５０６など）であるか、認証された追加アプリであるか、非認証の追加アプリであるかによって、データベースのアクセスをコントロールする。
【００５７】
本実施形態では、データベースのアクセスコントロールのルールを次の（１）〜（５）のように設定する。
（１）オーナアプリは、自ら構築したデータベースを参照し、改変することができる（例えば、図１０の（１））。
（２）認証、非認証にかかわらず追加アプリは、他の追加アプリが構築したデータベースを参照も改変もできない。（例えば、図１０の（２））。
（３）認証された追加アプリは、組込みＤＢ５１２を参照することができる（例えば、図１０の（３））。
（４）非認証の追加アプリは、組込みＤＢ５１２を参照も改変もできない（例えば、図１０の（４））。
（５）組込みアプリ５２１は、オーナアプリの認証、非認証にかかわらず継承先のデータベースを参照することができる（例えば、図１０の（５））。
【００５８】
これらのルールには、それぞれ、次のような効果がある。
（１）および（２）：悪意のあるアプリからデータベースを保護（データの改変および漏洩の防止）し、アプリ間でのデータベースの依存関係を簡素化することができる。
（３）ナビゲーション処理用のデータベース（組込みＤＢ５１２）を活用した拡張サービスを実現することができる。例えば、ナビ用ＰＯＩＤＢ５１２１のＰＯＩデータを組込みアプリ５２１とは異なる見せ方で見せるアプリや、組込みアプリ５２１が管理する楽曲情報のデータベースを元に、選曲アルゴリズムをカスタマイズするアプリなどを実現することができる。
（４）悪意のあるアプリからデータベースを保護することができる。
（５）追加アプリによって蓄積されたデータベースを、ナビゲーション処理部５０６などの組込みアプリ５２１が利用できるようになるので、ユーザの利便性が向上する。例えば、追加アプリがダウンロードしたＰＯＩの情報などをナビゲーション処理部５０６からも利用できるようになる。
【００５９】
図１１は、本実施形態に係るデータベースのアクセスコントロールのルールの例を一覧表にまとめて示した図である。図１１に示すように、データベースのアクセスコントロールの情報は、データベースのアクセスアプリ６７６および被アクセスデータベース６７５のそれぞれの属性の相違ごとに区分して示されている。
【００６０】
図１１において、アクセスアプリ６７６は、組込みアプリ６７３と追加アプリ６７４とに区分され、追加アプリ６７４は、さらに、追加アプリ管理ＤＢ５１０の認証フィールド６５３に基づき、認証アプリ６７４１と非認証アプリ６７４２とに区分されている。また、被アクセスデータベース６７５は、組込みＤＢ６７１と追加アプリ用ＤＢ６７２とに区分され、追加アプリ用ＤＢ６７２は、さらに、データ構成定義ＤＢ５１１のオーナアプリＩＤフィールド６６４に基づき、自アプリ用６７２１と他アプリ用６７２２とに区分される。また、自アプリ用６７２１および他アプリ用６７２２は、それぞれ、データベース構成定義ＤＢ５１１の継承元ＤＢＩＤフィールド６６３に基づき、組込ＤＢ継承ありＤＢ６７２１１、６７２２１と、組込ＤＢ継承なしＤＢ６７２１２、６７２２２とに区分される。
【００６１】
以上のように区分されたアクセスアプリ６７６が被アクセスデータベース６７５へアクセスするときのアクセスコントロールデータは、参照○、参照×、改変○、改変×として示されている。ここで、○印は、データベースへの参照または改変が可能であることを示し、×印は、データベースへの参照または改変が不可であることを示している。
【００６２】
図１２は、本実施形態に係るデータベース管理部においてデータベースのアクセスコントロールを判定する処理の流れの例を示した図である。図１２に示すように、データベース管理部５０７は、データベースをアクセスしようとしているアプリ（アクセスアプリ）からＤＢ名称を指定したデータベースのアクセス要求を受け付けると（ステップＳ３１）、追加アプリ管理ＤＢ５１０を検索して、当該アプリのアプリＩＤを取得する（ステップＳ３２）。
【００６３】
次に、データベース管理部５０７は、指定されたＤＢ名称に基づき、データ構成定義ＤＢ５１１を検索して、そのＤＢ名称を有するレコードのオーナアプリＩＤ６６４を取得する（ステップＳ３３）。そして、データベース管理部５０７は、アクセスアプリが組込みアプリであるか否かを判定し（ステップＳ３４）、アクセスアプリが組込みアプリでなかったときには（ステップＳ３４でＮｏ）、さらに、アクセスアプリが認証アプリであるか否かを判定する（ステップＳ３５）。
【００６４】
ステップＳ３５の判定の結果、アクセスアプリが認証アプリであったときには（ステップＳ３５でＹｅｓ）、データベース管理部５０７は、前記取得したデータベースのオーナアプリＩＤ６６４に基づき、被アクセスデータベースが組込みＤＢ５１２であるか否かを判定する（ステップＳ３６）。このとき、オーナアプリＩＤが「０」の場合は、組込みＤＢ５１２であり、オーナアプリＩＤが「０」以外の場合は、追加アプリである。そして、ステップＳ３６の判定の結果、被アクセスデータベースが組込みＤＢ５１２であったときには（ステップＳ３６でＹｅｓ）、データベース管理部５０７は、当該データベースへの改変を禁止し（改変×）、参照を許可する（参照○）（ステップＳ３７）。
【００６５】
また、ステップＳ３５においてアクセスアプリが認証アプリでなかったとき（ステップＳ３５でＮｏ）、または、ステップＳ３６において被アクセスデータベースが組込みＤＢ５１２でなかったときには（ステップＳ３６でＮｏ）、データベース管理部５０７は、さらに、被アクセスデータベースが自アプリ用ＤＢであるか否かを判定する（ステップＳ３８）。そして、被アクセスデータベースが自アプリ用ＤＢでなかったときには（ステップＳ３８でＮｏ）、データベース管理部５０７は、当該データベースへの改変、参照をともに禁止する（改変×、参照×）（ステップＳ３９）。また、被アクセスデータベースが自アプリ用ＤＢであったときには（ステップＳ３８でＹｅｓ）、データベース管理部５０７は、当該データベースへの改変、参照をともに許可する（改変○、参照○）（ステップＳ４０）。
【００６６】
一方、ステップＳ３４の判定において、アクセスアプリが組込みアプリであったときには（ステップＳ３４でＹｅｓ）、データベース管理部５０７は、さらに、被アクセスデータベースが組込みＤＢ５１２であるか否かを判定する（ステップＳ４１）。そして、その判定の結果、被アクセスデータベースが組込みＤＢ５１２でなかったときには（ステップＳ４１でＮｏ）、データベース管理部５０７は、さらに、その被アクセスデータベース（この場合、被アクセスデータベースは追加アプリ用ＤＢ５１３）が組込みＤＢ５１２を継承しているか否かを判定する（ステップＳ４２）。
【００６７】
その判定の結果、被アクセスデータベースが組込みＤＢ５１２を継承していなかったときには（ステップＳ４２でＮｏ）、データベース管理部５０７は、当該データベースへの改変、参照をともに禁止する（改変×、参照×）（ステップＳ４３）。また、ステップＳ４１で被アクセスデータベースが組込みＤＢ５１２であったとき（ステップＳ４１でＹｅｓ）、または、ステップＳ４２で被アクセスデータベースが組込みＤＢ５１２を継承していたとき（ステップＳ４２でＹｅｓ）には、データベース管理部５０７は、当該データベースへの改変、参照をともに許可する（改変○、参照○）（ステップＳ４４）。
【００６８】
図１３は、本実施形態に係るナビゲーション処理部５０６が、組込みＤＢ５１２とその継承先の追加アプリ用ＤＢ５１３とを併せて検索する際の処理の流れの例を示した図である。なお、その処理の流れは、図１２に示したデータベースアクセス時に行われるアクセスコントロール情報の判定完了後の処理であり、ナビ用ＰＯＩＤＢ５１２１とその継承先のＰＯＩ拡張ＤＢ５１３１には、改変および参照が許可されている。
【００６９】
まず、ナビゲーション処理部５０６が、例えば、「ＰＯＩ検索」を指示するユーザ操作を受け付ける（ステップＳ５１）。次に、ナビゲーション処理部５０６は、データベース管理部５０７に対して、「ＰＯＩ検索要求」を行う（ステップＳ５２）。
【００７０】
データベース管理部５０７は、その「ＰＯＩ検索要求」を受け付け（ステップＳ５３）、データ構成定義ＤＢ５１１を参照してナビ用ＰＯＩＤＢ５１２１を継承したデータベースを検索する（ステップＳ５４）。その結果、ここでは、ＰＯＩ拡張ＤＢ５１３１が検索されたものとする。続いて、データベース管理部５０７は、ナビ用ＰＯＩＤＢ５１２１とその継承データベース（ＰＯＩ拡張ＤＢ５１３１）とに対し、「ＰＯＩ検索要求」を行う（ステップＳ５５）。
【００７１】
その要求に応じて、ナビ用ＰＯＩＤＢ５１２１およびＰＯＩ拡張ＤＢ５１３１は、それぞれ、ＰＯＩ検索処理を実行し（ステップＳ５６，Ｓ５７）、その検索結果を、それぞれ、データベース管理部５０７に報告する。そして、データベース管理部５０７は、それらの検索結果を取得し、例えば、自車位置からの距離が近い順に並べ替えるなど検索結果をソートし（ステップＳ５８）、ナビゲーション処理部５０６にそのソートした検索結果を報告する（ステップＳ５９）。さらに、ナビゲーション処理部５０６は、データベース管理部５０７から取得した検索結果を、表示処理部５０１を介して表示装置１０２に表示する（ステップＳ６０）。
【００７２】
以上、本実施形態によれば、データベースへのアクセスコントロールを、データベースのアクセスアプリの属性（組込みアプリか、認証された追加アプリか、非認証の追加アプリか）、および、被アクセスデータベースの属性（組込みＤＢか、自アプリの追加アプリ用ＤＢか、他アプリの追加アプリ用ＤＢか、組込みＤＢの継承の有無）によって木目細かく区分して行っているので、悪意のあるアプリからデータベースを保護することができるようになり、また、組込みアプリまたは追加アプリによって構築されたデータベースを、ユーザの利便性が向上するように活用することが可能になる。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施形態が適用されるカーナビゲーションシステムの全体の概略構成の例を示した図である。
【図２】本発明の実施形態に係るカーナビ装置における本体装置部の機能ブロックの構成の例を示した図である。
【図３】本発明の実施形態に係るカーナビ装置が追加アプリをサービスセンタからダウンロードするときのアプリ配信パッケージの構成の例を示した図である。
【図４】本発明の実施形態に係るＤＢ構成定義情報の例を示した図で、（ａ）は、継承データベースを有しない場合のデータベース定義情報の例、（ｂ）は、継承データベースを有する場合のデータベース定義情報の例を示している。
【図５】図４（ａ）のデータベース定義情報により構築されたデータベースの構成の例を示した図である。
【図６】図４（ｂ）のデータベース定義情報により構築されたデータベースの構成の例を示した図である。
【図７】本発明の実施形態に係る追加アプリ管理ＤＢの構成の例を示した図である。
【図８】本発明の実施形態に係るデータ構成定義ＤＢの構成の例を示した図である。
【図９】本発明の実施形態のカーナビ装置におけるアプリのインストールおよび更新処理の流れの例を示した図である。
【図１０】本発明の実施形態に係るデータベースのアクセスコントロールのルールの例を模式的に示した図である。
【図１１】本発明の実施形態に係るデータベースのアクセスコントロールのルールの例を一覧表にまとめて示した図である。
【図１２】本発明の実施形態に係るデータベース管理部においてデータベースのアクセスコントロールを判定する処理の流れの例を示した図である。
【図１３】本発明の実施形態に係るナビゲーション処理部５０６が、組込みＤＢ５１２とその継承先の追加アプリ用ＤＢ５１３とを併せて検索する際の処理の流れの例を示した図である。
【符号の説明】
【００７４】
１      カーナビゲーションシステム
５      車両
１０    カーナビ装置
２０    基地局
３０    通信ネットワーク
４０    サービスセンタ
５０    ＧＰＳ衛星
１０１  本体装置部
１０２  表示装置
１０３  ＧＰＳ受信機
１０５  リモコン
１０６  携帯電話機
４０１  通信部
４０２  要求処理部
４０３  コンテンツ管理部
４０４  コンテンツＤＢ
４０５  アプリ管理部
４０６  アプリＤＢ
５０１  表示処理部
５０２  入力処理部
５０３  通信部
５０４  制御部
５０５  センサドライバ
５０６  ナビゲーション処理部
５０７  データベース管理部
５０８  追加アプリ処理部
５０９  追加アプリ管理部
５１０  追加アプリ管理ＤＢ
５１１  データ構成定義ＤＢ
５１２  組込みＤＢ
５１３  追加アプリ用ＤＢ
５１４  通話処理部
５１２１  ナビ用ＰＯＩＤＢ
５１２２  通話用アドレス帳
５１３１  ＰＯＩ拡張ＤＢ
【図１】
2008046959.tif 000003
【図２】
2008046959.tif 000004
【図３】
2008046959.tif 000005
【図４】
2008046959.tif 000006
【図５】
2008046959.tif 000007
【図６】
2008046959.tif 000008
【図７】
2008046959.tif 000009
【図８】
2008046959.tif 000010
【図９】
2008046959.tif 000011
【図１０】
2008046959.tif 000012
【図１１】
2008046959.tif 000013
【図１２】
2008046959.tif 000014
【図１３】
2008046959.tif 000015