(57)【特許請求の範囲】
【請求項１】
ナビゲーションサービスを提供するナビゲーション装置において、
車載のハードウェアと前記ハードウェアを制御する基本機能とを有するプラットフォーム部と、
前記プラットフォーム部の基本機能を使用してナビゲーションサービスを提供するナビアプリケーション処理部と、
前記プラットフォーム部の基本機能を使用して取得した情報に基づき、前記ナビゲーションサービスを利用した所定の付加サービスを提供する付加アプリケーション処理部と、
前記所定の付加サービスを実行するために、前記付加アプリケーション処理部との間で通信するとともに前記ナビアプリケーション処理部との間で通信するインタフェース処理部とを備え、
前記インタフェース処理部は仮想プラットフォームにより実行され、前記プラットフォーム部に依存しないことを特徴とするナビゲーション装置。
【請求項２】
付加アプリケーション処理部は、仮想プラットフォームで実行され、プラットフォーム部に依存しないアプリケーションである
ことを特徴とする請求項１記載のナビゲーション装置。
【請求項３】
付加アプリケーション処理部は、Ｊａｖａ（登録商標）仮想マシンで実行されるＪａｖａ（登録商標）アプリケーションである
ことを特徴とする請求項１記載のナビゲーション装置。
【請求項４】
インタフェース処理部は、Ｊａｖａ（登録商標）仮想マシンで実行されるＪａｖａ（登録商標）アプリケーションである
ことを特徴とする請求項１から請求項３のうちのいずれか１項記載のナビゲーション装置。
【請求項５】
インタフェース処理部は、付加アプリケーション処理部との間でデータの授受を実行するメソッドまたは前記付加アプリケーション処理部によりデータを読み書きされるメンバ変数と、ナビアプリケーション処理部との間でデータの授受を実行するメソッドまたは前記ナビアプリケーション処理部によりデータを読み書きされるメンバ変数とを有する
ことを特徴とする請求項４記載のナビゲーション装置。
【請求項６】
ナビアプリケーション処理部は、付加アプリケーション処理部からインタフェース処理部を介して供給されるナビ制御データに応じて、所定のナビゲーションサービスを実行し、その進捗状況または実行結果のナビ情報データを前記インタフェース処理部を介して前記付加アプリケーション処理部に供給する
ことを特徴とする請求項１記載のナビゲーション装置。
【請求項７】
インタフェース処理部は、付加アプリケーション処理部からのナビ制御データが複合型ナビ制御データである場合、その複合型ナビ制御データから複数のナビ制御データを生成し、前記複数のナビ制御データをナビアプリケーション処理部に供給する
ことを特徴とする請求項６記載のナビゲーション装置。
【請求項８】
インタフェース処理部は、ソケット通信またはＪａｖａ（登録商標）ＲＭＩにより付加アプリケーション処理部との間で通信する
ことを特徴とする請求項１記載のナビゲーション装置。
【請求項９】
インタフェース処理部は、ソケット通信によりナビアプリケーション処理部との間で通信する
ことを特徴とする請求項１または請求項８記載のナビゲーション装置。
【請求項１０】
インタフェース処理部は、プラットフォーム部の基本機能を使用して外部装置から付加アプリケーション処理部を取得する
ことを特徴とする請求項１記載のナビゲーション装置。
【請求項１１】
インタフェース処理部は、付加アプリケーション処理部の使用する通信サービスを提供可能な場合にのみ、その付加アプリケーション処理部を外部装置から取得する
ことを特徴とする請求項１０記載のナビゲーション装置。
【請求項１２】
インタフェース処理部は、プラットフォーム部の基本機能を使用して付加アプリケーション処理部のメニューを表示させ、外部装置から付加アプリケーション処理部を取得した場合には、その付加アプリケーション処理部を前記メニューに加え、前記メニューから選択された付加アプリケーション処理部を起動する
ことを特徴とする請求項１０記載のナビゲーション装置。
【請求項１３】
付加アプリケーション処理部は、必要な通信サービスの提供要求をインタフェース処理部に供給し、
インタフェース処理部は、前記提供要求を受け取ると、その通信サービスを動的に開始する
ことを特徴とする請求項１記載のナビゲーション装置。
【請求項１４】
インタフェース処理部は、提供要求に対応する通信サービスを実行するモジュールを有さない場合、そのモジュールを外部装置から取得する
ことを特徴とする請求項１３記載のナビゲーション装置。
【請求項１５】
付加アプリケーション処理部は、プラットフォーム部の基本機能を使用して所定のセンタから取得した情報に基づき、ナビゲーションサービスを利用した集配送情報サービスを提供する
ことを特徴とする請求項１記載のナビゲーション装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、現在位置計算、経路探索、経路案内などのナビゲーションサービスを提供するためのナビゲーション装置および記録媒体に関するものである。
【０００２】
【従来の技術】
現在、運転者に現在位置を示したり、目的地までの経路を案内したりする装置としてナビゲーション装置が普及している。これらの基本的なナビゲーションサービスの他、応用的な拡張機能を有するナビゲーション装置が種々開発されており、ＩＴＳ（Intelligent Transport Systems ）の分野でも注目されている。この拡張機能としては、集配送業務分野における物流センタからの集配送情報の表示や集配送先の施設情報の表示、さらに、一般需要者に対する目的地候補の施設（レストランなど）の紹介情報の提示などがある。
【０００３】
従来のナビゲーション装置としては、一般的なナビゲーション装置のプラットフォームでＪａｖａ（登録商標）（以下、Ｊａｖａは登録商標である。）仮想マシンを実行し、拡張機能としてＪａｖａアプリケーションを追加したものが例えば特開平１１−２１１４８９号公報に記載されている。
【０００４】
図２０は従来のナビゲーション装置のハードウェア構成を示すブロック図である。図２０において、５３１は従来のナビゲーション装置である。５０１は後述のナビゲーションＯＳ、デバイスドライバ、ナビアプリケーションモジュール、物流アプリケーションモジュールなどのプログラムを予め記憶したＲＯＭであり、２はナビゲーションＯＳ、デバイスドライバ、ナビアプリケーションモジュール、物流アプリケーションモジュールなどのプログラムを実行するマイクロプロセッサであり、３はナビゲーションＯＳ、デバイスドライバ、ナビアプリケーションモジュール、物流アプリケーションモジュールなどの実行時にプログラムやデータを一時的に記憶するＲＡＭである。
【０００５】
４はＤＶＤ（Digital Versatile Disc）−ＲＯＭ２１を駆動し、データを読み出すＤＶＤ−ＲＯＭドライブであり、５はＤＶＤ−ＲＯＭドライブ４とマイクロプロセッサ２との間でデータの授受を実行するＤＶＤ−ＲＯＭインタフェースである。６はマイクロプロセッサ２からの画像データや画像処理命令に応じてフレームバッファ７に画像データを記憶させ、その画像データに対応する画像を液晶ディスプレイなどのディスプレイ８に描画するグラフィック制御回路である。９はリモートコントローラや各種スイッチなどのユーザ操作部であり、１０はユーザ操作部９とマイクロプロセッサ２との間でデータの授受を実行する操作部インタフェースである。
【０００６】
１１はＧＰＳ（Global Positioning System ）人工衛星からの電波を受信するＧＰＳ受信機であり、１２は車両の車軸などに設けられ車速を測定する車速パルスカウンタであり、１３は車両の方位を検出するジャイロであり、１４はＧＰＳ受信機１１、車速パルスカウンタ１２およびジャイロ１３とマイクロプロセッサ２との間でデータの授受を実行する周辺機器インタフェースである。
【０００７】
１５は携帯電話回線などを介して物流センタ３２やインターネット３３に接続し、それらとの間で通信を実行する携帯電話機であり、１６は携帯電話機１５を制御してデータ通信を実行しマイクロプロセッサ２とデータの授受を実行する通信インタフェースである。
【０００８】
２１は地図データベースなどを予め記憶したＤＶＤ−ＲＯＭである。その他、音声案内を出力するスピーカおよびその駆動回路、外部インフラストラクチャとの通信を実行するＦＭ多重放送受信機、電波ビーコン／光ビーコン受信機などが設けられている。
【０００９】
図２１は従来のナビゲーション装置の構成を階層的に示す図である。図２１において、４１はマイクロプロセッサ２、ＤＶＤ−ＲＯＭドライブ４、ディスプレイ８、ユーザ操作部９、ＧＰＳ受信機１１、携帯電話機１５などのナビゲーションハードウェアであり、４２はナビゲーションハードウェア４１を制御する基本機能を有するナビゲーションＯＳ（オペレーティングシステム）であり、４３は各ナビゲーションハードウェア４１を直接制御するデバイスドライバである。なお、ナビゲーションハードウェア４１、ナビゲーションＯＳ４２およびデバイスドライバ４３によりプラットフォーム部が構成される。
【００１０】
４４はナビゲーションＯＳ４２上で動作するＪａｖａ仮想マシンであり、５４５は物流における集配送業務に必要な各種サービス（以下、集配送情報サービスという）を提供する物流アプリケーションモジュールである。なお、物流アプリケーションモジュール５４５はＪａｖａ言語で記述されたＪａｖａアプリケーションであり、Ｊａｖａ仮想マシン４４上で動作する。５４６はナビゲーションハードウェア４１からの各種情報に基づいて現在位置の算出、経路計算、経路案内、地図表示などを実行してナビゲーションサービスを実現するナビアプリケーションモジュールである。なお、一般的にナビアプリケーションモジュール５４６はプログラミング言語Ｃ，Ｃ＋＋などで開発され、ネイティブコードとしてナビゲーション装置に実装される。
【００１１】
次に動作について説明する。
図２２は物流センタ３２から従来のナビゲーション装置へ供給される車両運行指示に一例を示す図であり、図２３は従来のナビゲーション装置により提供される集配送情報サービスのメニュー表示の一例を示す図である。
【００１２】
まず、ナビゲーションＯＳ４２、デバイスドライバ４３、Ｊａｖａ仮想マシン４４、物流アプリケーションモジュール５４５およびナビアプリケーションモジュール５４６が適宜マイクロプロセッサ２により実行される。そして、これらのプログラムに従って実行される処理において取得または生成されるデータはＲＡＭ３に記憶される。
【００１３】
このようにして各プログラムが起動された後、ナビアプリケーションモジュール５４６は各ナビゲーションハードウェア４１で発生したナビゲーションサービスに関するイベント（例えばユーザによる目的地の設定や地図表示指示）を適宜処理し、例えばディスプレイ８に案内画像を表示させたり、図示せぬスピーカから案内音声を出力させたりしてナビゲーションサービスを提供する。
【００１４】
一方、物流アプリケーションモジュール５４５はＪａｖａ仮想マシン４４上で実行され、携帯電話機１５により受信された物流センタ３２からの例えば図２２に示す車両運行指示を適宜読み込み、集配送情報サービスの一覧であるメニューをディスプレイ８に表示させ、ユーザによりメニューによる選択操作に基づくイベントを適宜処理し、ナビゲーションサービスとは独立に、選択された集配送情報サービスを車両運行指示に基づいて提供する。なお、ユーザとしては、車両の運転手やその同乗者などが考えられる。
【００１５】
図２２に示すように、車両運行指示には、例えば車両情報、配送順と配送先の位置、および各配送先での作業内容が含まれる。また、車両情報には車両ＩＤ、運転手などの情報が含まれ、配送順と配送先の位置としては配送順に配送先の店コード、店名、位置（住所）、配送時刻および時刻指定が列挙され、各配送先での作業内容としては各配送先での配送品名とその数量が列挙される。
【００１６】
このとき例えば図２３に示すように、ディスプレイ８の表示画面の一部の領域６０１において、集配送情報サービスのメニューが表示され、残りの領域６０２にナビゲーションサービスによる地図が表示される。
【００１７】
図２３に示す集配送情報サービスのメニューでは、項目「車両運行指示受信」６２１、項目「配送スケジュール」６２２、項目「配送先情報」６２３、項目「配送品目」６２４および項目「動態入力」６２５が配列されている。そして、図示せぬリモートコントローラや操作ボタンなどのユーザ操作部９に対するユーザによる操作に応じてカーソルが移動され、選択された項目の情報が物流アプリケーションモジュール５４５に供給され、その項目に対応する集配送情報サービスが物流アプリケーションモジュール５４５により提供される。
【００１８】
項目「車両運行指示受信」６２１がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール５４５は、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してナビゲーションハードウェア４１の１つである通信インタフェース１６および携帯電話機１５を制御して物流センタ３２から図２２に示すような車両運行指示を読み出す。このとき、車両運行指示のデータはＲＡＭ３に一旦記憶される。
【００１９】
項目「配送スケジュール」６２２がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール５４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送順、配送先の店名、配送時刻および時刻指定の有無をすべての配送先について読み出し、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してグラフィック制御回路６を制御してディスプレイ８にそのまま表示させる。
【００２０】
項目「配送先情報」６２３がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール５４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送順、配送先の店名および配送先の位置（住所）をすべての配送先について読み出し、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してグラフィック制御回路６を制御してディスプレイ８にそのまま表示させる。
【００２１】
項目「配送品目」６２４がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール５４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送先の店名、配送品名およびその数量をすべての配送先について読み出し、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してグラフィック制御回路６を制御してディスプレイ８にそのまま表示させる。
【００２２】
項目「動態入力」６２５がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール５４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送順および配送先の店名に読み出し、配送順に従って順番に配送先の店名をＪａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してグラフィック制御回路６を制御してディスプレイ８に表示させるとともに、現在の状況を入力するためのボタン「到着」，「出発」，「配送中」，「休憩中」をディスプレイ８に表示させる。
【００２３】
そして、ユーザがユーザ操作部９を操作していずれかのボタンを押すと、その情報が物流アプリケーションモジュール５４５に供給され、物流アプリケーションモジュール５４５は、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してナビゲーションハードウェア４１の１つである通信インタフェース１６および携帯電話機１５を制御して、選択されたボタンに対応する現在の状況およびそのときの配送先のデータを物流センタ３２に供給する。物流センタ３２では、このデータに基づいて各車両の現在の状況や業務の進捗が確認される。
【００２４】
次に、集配送業務遂行時のユーザによるこの従来のナビゲーション装置の操作の一例について説明する。
まずユーザは、物流アプリケーションモジュール５４５による集配送情報サービスにおいて、上述のメニューの項目「車両運行指示受信」６２１を選択して車両運行指示を物流センタ３２から取得する。
【００２５】
次にユーザは、物流アプリケーションモジュール５４５による集配送情報サービスにおいて、上述のメニューの項目「配送先情報」６２３を選択して第１番目の配送先の店名および住所を確認する。
【００２６】
そしてユーザは、ナビアプリケーションモジュール５４６によるナビゲーションサービスにおいて、目的地として第１番目の配送先の住所を登録する。これにより、第１番目の配送先までの経路案内が実行される。
【００２７】
ユーザは第１番目の配送先に到着すると、物流アプリケーションモジュール５４５による集配送情報サービスにおいて、上述のメニューの項目「動態入力」６２５を選択してボタン「到着」を押す。これにより、第１番目の店名およびそこに到着した旨が物流センタ３２に通知される。
【００２８】
第１番目の配送先での作業が完了すると、ユーザは、物流アプリケーションモジュール５４５による集配送情報サービスにおいて、上述のメニューの項目「動態入力」６２５を選択してボタン「出発」を押す。これにより、第１番目の店名およびそこを出発した旨が物流センタ３２に通知される。
【００２９】
以下、第２番目以降の配送先についても同様にして、ユーザは、集配送情報サービスで配送先の店名および住所を確認し、ナビゲーションサービスでその配送先の住所を登録してその配送先までの経路案内の提供を受け、集配送情報サービスで集配送先へ到着した旨、集配送先から出発した旨を物流センタ３２に通知する。
【００３０】
【発明が解決しようとする課題】
従来のナビゲーション装置は以上のように構成されているので、ナビゲーションサービスを実行するナビアプリケーションモジュールと集配送情報サービスを実行する物流アプリケーションモジュールとが独立に動作し、各集配送先についてナビゲーションサービスを受けようとすると各集配送先毎にユーザが目的地を登録しなければならず、集配送業務においてナビゲーションサービスを受ける場合にユーザ操作が煩雑であり、集配送業務の効率を向上させることが困難であるなどの課題があった。なお、このことは集配送業務に限らず、他の付加サービスを提供するアプリケーションモジュールを使用し、ナビゲーションサービスとその付加サービスを併用する場合でも同様である。
【００３１】
また、集配送の現在の状況を物流センタに通知する場合、ユーザが配送先の店名などを確認してから通知する必要があるので、ユーザ操作が煩雑であり、集配送業務の効率を向上させることが困難であるなどの課題があった。
【００３２】
さらに、ＶＩＣＳ（Vehicle Information and Communication System）対応のナビゲーション装置では交通渋滞や交通事故などの情報を享受することができ、それに基づいて経路案内が可能になり、また、目的地までの所要時間の計算も可能になるが、配送時刻までに配送が可能であるか否かをユーザが事前に判断する場合、集配送情報サービスで配送時刻を確認し、ナビゲーションサービスで配送先までの所要時間を確認し、現時刻と所要時間から逐一判断しなければならず、ユーザに対する負荷が増大してしまうなどの課題があった。
【００３３】
この発明は上記のような課題を解決するためになされたもので、ナビゲーションサービスを提供するナビアプリケーション処理部と付加アプリケーション処理部との間で通信を実行して各種データを授受し、ナビゲーションサービスを利用した所定の付加サービスを提供するようにして、あるサービスで得られた情報を他のサービスでユーザを介することなく使用することができ、ユーザ操作の頻度を低減してユーザに対する負荷を軽減するとともに、付加サービスの程度を向上させることができるナビゲーション装置および記録媒体を得ることを目的とする。
【００３４】
また、この発明は上記のような課題を解決するためになされたもので、ナビゲーションサービスを利用して現在位置を取得し、その現在位置と配送先の位置と比較して配送先が正しいか否かを判断するようにして、ユーザによる確認作業を簡略化し、集配送業務の効率を向上させることができるナビゲーション装置および記録媒体を得ることを目的とする。
【００３５】
さらに、この発明は上記のような課題を解決するためになされたもので、ナビゲーションサービスを利用して配送先までの所要時間を取得し、その所要時間から配送先への到着予想時間を計算し、予定配送時刻までに到着するか否かを判断するようにして、ユーザによる確認作業を簡略化し、集配送業務の効率を向上させることができるナビゲーション装置および記録媒体を得ることを目的とする。
【００３６】
【課題を解決するための手段】
この発明に係るナビゲーション装置は、車載のハードウェアとハードウェアを制御する基本機能とを有するプラットフォーム部と、プラットフォーム部の基本機能を使用してナビゲーションサービスを提供するナビアプリケーション処理部と、プラットフォーム部の基本機能を使用して取得した情報に基づき、ナビゲーションサービスを利用した所定の付加サービスを提供する付加アプリケーション処理部と、所定の付加サービスを実行するために、付加アプリケーション処理部との間で通信するとともにナビアプリケーション処理部との間で通信するインタフェース処理部とを備え、前記インタフェース処理部は仮想プラットフォームにより実行され、前記プラットフォーム部に依存しないものである。
【００３７】
この発明に係るナビゲーション装置は、プラットフォーム部に依存しないアプリケーションである付加アプリケーション処理部を仮想プラットフォームで実行するようにしたものである。
【００３８】
この発明に係るナビゲーション装置は、Ｊａｖａアプリケーションである付加アプリケーション処理部をＪａｖａ仮想マシンで実行するようにしたものである。
【００３９】
この発明に係るナビゲーション装置は、Ｊａｖａアプリケーションであるインタフェース処理部をＪａｖａ仮想マシンで実行するようにしたものである。
【００４０】
この発明に係るナビゲーション装置は、付加アプリケーション処理部との間でデータの授受を実行するメソッドまたは付加アプリケーション処理部によりデータを読み書きされるメンバ変数と、ナビアプリケーション処理部との間でデータの授受を実行するメソッドまたはナビアプリケーション処理部によりデータを読み書きされるメンバ変数とをインタフェース処理部に有するものである。
【００４１】
この発明に係るナビゲーション装置は、ナビアプリケーション処理部が付加アプリケーション処理部からインタフェース処理部を介して供給されるナビ制御データに応じて、所定のナビゲーションサービスを実行し、その進捗状況または実行結果のナビ情報データをインタフェース処理部を介して付加アプリケーション処理部に供給するようにしたものである。
【００４２】
この発明に係るナビゲーション装置は、インタフェース処理部により複合型ナビ制御データから複数のナビ制御データを生成し、複数のナビ制御データをナビアプリケーション処理部に供給するようにしたものである。
【００４３】
この発明に係るナビゲーション装置は、ソケット通信またはＪａｖａＲＭＩによりインタフェース処理部と付加アプリケーション処理部との間で通信するようにしたものである。
【００４４】
この発明に係るナビゲーション装置は、ソケット通信によりインタフェース処理部とナビアプリケーション処理部との間で通信するようにしたものである。
【００４５】
この発明に係るナビゲーション装置は、インタフェース処理部により、プラットフォーム部の基本機能を使用して外部装置から付加アプリケーション処理部を取得するようにしたものである。
【００４６】
この発明に係るナビゲーション装置は、付加アプリケーション処理部の使用する通信サービスを提供可能な場合にのみ、インタフェース処理部により、その付加アプリケーション処理部を外部装置から取得するようにしたものである。
【００４７】
この発明に係るナビゲーション装置は、インタフェース処理部により、プラットフォーム部の基本機能を使用して付加アプリケーション処理部のメニューを表示させ、外部装置から付加アプリケーション処理部を取得した場合には、その付加アプリケーション処理部をメニューに加え、メニューから選択された付加アプリケーション処理部を起動するようにしたものである。
【００４８】
この発明に係るナビゲーション装置は、インタフェース処理部が必要な通信サービスの提供要求を受け取ると、その通信サービスを動的に開始するようにしたものである。
【００４９】
この発明に係るナビゲーション装置は、提供要求に対応する通信サービスを実行するモジュールをインタフェース処理部に有さない場合、そのモジュールを外部装置から取得するようにしたものである。
【００５０】
この発明に係る記録媒体は、車載のハードウェアを制御する基本機能を有するプラットフォーム部、プラットフォーム部の基本機能を使用してナビゲーションサービスを提供するナビアプリケーション処理部、プラットフォーム部の基本機能を使用して取得した情報に基づき、ナビゲーションサービスを利用した所定の付加サービスを提供する付加アプリケーション処理部、並びに所定の付加サービスを実行するために、付加アプリケーション処理部との間で通信するとともにナビアプリケーション処理部との間で通信するインタフェース処理部としてコンピュータを機能させるためのプログラムを記録したものである。
【００５１】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
参考例１．
図１はこの発明の参考例１によるナビゲーション装置のハードウェア構成を示すブロック図である。図１において、３１は参考例１によるナビゲーション装置である。１は後述のナビゲーションＯＳ、デバイスドライバ、ナビアプリケーションモジュール、物流アプリケーションモジュール、Ｊａｖａ仮想マシンなどのプログラムを予め記憶したＲＯＭ（記録媒体）であり、２はナビゲーションＯＳ、デバイスドライバ、ナビアプリケーションモジュール、物流アプリケーションモジュール、Ｊａｖａ仮想マシンなどのプログラムを実行するマイクロプロセッサであり、３はナビゲーションＯＳ、デバイスドライバ、ナビアプリケーションモジュール、物流アプリケーションモジュール、Ｊａｖａ仮想マシンなどの実行時にプログラムやデータを一時的に記憶するＲＡＭである。
【００５２】
４はＤＶＤ−ＲＯＭ２１を駆動し、データを読み出すＤＶＤ−ＲＯＭドライブであり、５はＤＶＤ−ＲＯＭドライブ４とマイクロプロセッサ２との間でデータの授受を実行するＤＶＤ−ＲＯＭインタフェースである。６はマイクロプロセッサ２からの画像データや画像処理命令に応じてフレームバッファ７に画像データを記憶させ、その画像データに対応する画像を液晶ディスプレイなどのディスプレイ８に描画するグラフィック制御回路である。９はリモートコントローラや各種スイッチなどのユーザ操作部であり、１０はユーザ操作部９とマイクロプロセッサ２との間でデータの授受を実行する操作部インタフェースである。
【００５３】
１１はＧＰＳ人工衛星からの電波を受信するＧＰＳ受信機であり、１２は車両の車軸などに設けられ車速を測定する車速パルスカウンタであり、１３は車両の方位を検出するジャイロであり、１４はＧＰＳ受信機１１、車速パルスカウンタ１２およびジャイロ１３とマイクロプロセッサ２との間でデータの授受を実行する周辺機器インタフェースである。
【００５４】
１５は携帯電話回線などを介して物流センタ３２やインターネット３３に接続し、それらとの間で通信を実行する携帯電話機であり、１６は携帯電話機１５を制御してデータ通信を実行しマイクロプロセッサ２とデータの授受を実行する通信インタフェースである。
【００５５】
２１は地図データベースなどを予め記憶したＤＶＤ−ＲＯＭである。その他、音声案内を出力するスピーカおよびその駆動回路、外部インフラストラクチャとの通信を実行するＦＭ多重放送受信機、電波ビーコン／光ビーコン受信機などが設けられている。
【００５６】
なお、ＲＯＭ１の代わりに、ナビゲーションＯＳ、デバイスドライバ、ナビアプリケーションモジュール、物流アプリケーションモジュール、Ｊａｖａ仮想マシンなどのプログラムをＤＶＤ−ＲＯＭなどの記録媒体に記録し、ＤＶＤ−ＲＯＭドライブによりそれらのプログラムを読み取り使用するようにしてもよい。また、それらの一部をＲＯＭ１に記憶させておき、残りをＤＶＤ−ＲＯＭなどの記録媒体に記録し、それらを読み取り使用するようにしてもよい。
【００５７】
図２はこの発明の参考例１によるナビゲーション装置の構成を階層的に示す図である。図２において、４１はマイクロプロセッサ２、ＤＶＤ−ＲＯＭドライブ４、ディスプレイ８、ユーザ操作部９、ＧＰＳ受信機１１、車速パルスカウンタ１２、ジャイロ１３、携帯電話機１５などのナビゲーションハードウェア（ハードウェア）であり、４２は各プログラムのメモリ管理、プロセス管理、スレッド管理などの他、ナビゲーションハードウェア４１を制御する基本機能を有するナビゲーションＯＳであり、４３は各ナビゲーションハードウェア４１を直接制御するデバイスドライバである。ナビゲーションハードウェア４１、ナビゲーションＯＳ４２およびデバイスドライバ４３によりプラットフォーム部が構成される。なお、ナビゲーションＯＳ４２としては、例えばマイクロソフト社製の組込機器用ＯＳであるＷｉｎｄｏｗｓＣＥがある。
【００５８】
４４はこのプラットフォーム部で動作するＪａｖａ仮想マシン（仮想プラットフォーム）であり、４５はプラットフォーム部の基本機能を使用して取得した情報に基づき、ナビアプリケーションモジュール４６との間で通信を実行してナビゲーションサービスを利用した集配送情報サービス（付加サービス）を提供する物流アプリケーションモジュール（付加アプリケーション処理部）である。
【００５９】
４６は現在位置の計算、経路探索、経路案内などのナビゲーションサービスを実現するアプリケーションプログラム群であるナビアプリケーションモジュール（ナビアプリケーション処理部）である。５１は、ＪＮＩ（Java Native Interface ）に従ってネイティブコードとしてコーディングされ、Ｊａｖａ仮想マシン４４およびＪａｖａアプリケーションである物流アプリケーションモジュール４５を起動し、物流アプリケーションモジュール４５からナビ制御データを読み出すとともに物流アプリケーションモジュール４５へナビ情報データを書き込むナビアプリケーションモジュール４６におけるＪＮＩ実装部である。なお、ナビアプリケーションモジュール４６はプログラミング言語Ｃ，Ｃ＋＋などで開発され、ネイティブコードとして実装される。
【００６０】
なお、ナビ制御データとは、ナビゲーションサービスを指定して、ナビアプリケーションモジュール４６によりそのナビゲーションサービスを実行させるためのデータであり、ナビ情報データとは、ナビ制御データに従って実行されたナビゲーションサービスの途中経過または実行結果を表すデータである。
【００６１】
次に動作について説明する。
図３は物流センタ３２から参考例１によるナビゲーション装置へ供給される車両運行指示に一例を示す図である。図４は参考例１によるナビゲーション装置により提供される集配送情報サービスのメニュー表示の一例および次配送ルートの表示の一例を示す図であり、図５は参考例１によるナビゲーション装置により提供される集配送情報サービスのメニュー表示の一例および全配送ルートの表示の一例を示す図である。図６は目的地である配送先までの経路探索を実行する際の動作について説明するフローチャートであり、図７は目的地である配送先への到達時刻を計算する際の動作について説明するフローチャートである。
【００６２】
まず、ナビゲーションＯＳ４２、デバイスドライバ４３、Ｊａｖａ仮想マシン４４、物流アプリケーションモジュール４５およびナビアプリケーションモジュール４６が適宜マイクロプロセッサ２により実行される。そして、これらのプログラムに従って実行される処理において取得または生成されるデータはＲＡＭ３に記憶される。なお、Ｊａｖａ仮想マシン４４および物流アプリケーションモジュール４５は、先に起動したナビアプリケーションモジュール４６のＪＮＩ実装部５１によりＪＮＩに従って起動される。なお、ＪＮＩによるプログラミングの詳細については、ロブ・ゴードン著による「Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ  プログラミング」（発行：ピアソン・エデュケーション）に記述されている。このときナビアプリケーションモジュール４６は、Ｊａｖａ仮想マシン４４および物流アプリケーションモジュール４５を起動させるためのコンストラクタ関数の戻り値として、物流アプリケーションモジュール４５と共有される変数へのポインタを取得し、このポインタの指す変数を使用してナビ制御データおよびナビ情報データの授受を実行する。また、ヘッダファイルなどに予め記述されたメンバ変数を共有してナビ制御データおよびナビ情報データが授受される。
【００６３】
このようにして各プログラムが起動された後、ナビアプリケーションモジュール４６はナビゲーションＯＳ４２上で実行され、各ナビゲーションハードウェア４１で発生したナビゲーションサービスに関するイベント（例えばユーザによる目的地の設定や地図表示指示）および物流アプリケーションモジュール４５からのナビ制御データを適宜処理し、例えばディスプレイ８に案内画像を表示させたり、図示せぬスピーカから案内音声を出力させたりしてナビゲーションサービスを提供する。
【００６４】
一方、物流アプリケーションモジュール４５はＪａｖａ仮想マシン４４上で実行され、携帯電話機１５により受信された物流センタ３２からの例えば図３に示す車両運行指示を適宜読み込み、集配送情報サービスの一覧であるメニューをディスプレイ８に表示させ、ユーザによりメニューによる選択操作に基づくイベントを適宜処理し、選択された集配送情報サービスをナビゲーションサービスを利用して車両運行指示に基づいて提供する。なお、ユーザとしては、車両の運転手やその同乗者などが考えられる。
【００６５】
図３に示すように、車両運行指示には、例えば車両情報、配送順と配送先の位置、および各配送先での作業内容が含まれる。また、車両情報には車両ＩＤ、運転手などの情報が含まれ、配送順と配送先の位置としては配送順に配送先の店コード、店名、位置（緯度と経度）、配送時刻および時刻指定が列挙され、各配送先での作業内容としては各配送先での配送品名とその数量が列挙される。なお、配送先の位置は緯度と経度で表され、例えば図３に示す店名「コンビニＡ」は北緯３４度４５分１７．２秒、東経１３５度２５分４５．９秒に位置する。
【００６６】
このとき例えば図４または図５に示すように、ディスプレイ８の表示画面の一部の領域７１において、集配送情報サービスのメニューが表示され、残りの領域７２にナビゲーションサービスによる地図が表示される。また、この残りの領域７２には後述のようにナビゲーションサービスを利用した集配送情報サービスによる経路案内が地図上に表示される。
【００６７】
図４に示す集配送情報サービスのメニューでは、項目「車両運行指示受信」６１、項目「配送スケジュール」６２、項目「配送先情報」６３、項目「配送品目」６４、項目「動態入力」６５、項目「次配送ルート」６６および項目「到着予想時刻」６７が配列されている。また、図５に示す集配送情報サービスのメニューでは、項目「車両運行指示受信」６１、項目「配送スケジュール」６２、項目「配送先情報」６３、項目「配送品目」６４、項目「動態入力」６５、項目「全配送ルート」６８および項目「到着予想時刻」６７が配列されている。なお、これらのメニューは例にすぎず、提供される集配送情報サービスに応じて設計される。
【００６８】
そして、図示せぬリモートコントローラや操作ボタンなどのユーザ操作部９に対するユーザによる操作に応じてカーソルが移動され、選択された項目の情報が物流アプリケーションモジュール４５に供給される。物流アプリケーションモジュール４５によりその項目に対応する集配送情報サービスが必要に応じてナビアプリケーションモジュール４６によるナビゲーションサービスを利用して提供される。
【００６９】
物流アプリケーションモジュール４５は、ナビゲーションサービスを利用する場合、そのナビゲーションサービスに対応するナビ制御データを上述のメンバ変数に書き込む。そしてナビアプリケーションモジュール４６は所定の周期でそのメンバ変数の値を調べ、ナビ制御データが書き込まれたか否かを判断し、ナビ制御データが書き込まれたと判断した場合、そのナビ制御データを読み出し、そのナビ制御データで指定されたナビゲーションサービスを実行する。
【００７０】
そして、ナビアプリケーションモジュール４６は、そのナビゲーションサービスの途中経過または実行結果をナビ情報データとして上述のメンバ変数に書き込む。物流アプリケーションモジュール４５は、そのナビ情報データを読み出し、次の処理に移るか、またはサービスの完了を確認する。
【００７１】
そして、メニューにおける項目「車両運行指示受信」６１がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール４５は、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してナビゲーションハードウェア４１の１つである通信インタフェース１６および携帯電話機１５を制御して物流センタ３２から図３に示すような車両運行指示を読み出す。このとき、車両運行指示のデータはＲＡＭ３に一旦記憶される。
【００７２】
項目「配送スケジュール」６２がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送順、配送先の店名、配送時刻および時刻指定の有無をすべての配送先について読み出し、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してグラフィック制御回路６を制御してディスプレイ８にそのまま表示させる。
【００７３】
項目「配送先情報」６３がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送順、配送先の店名および配送先の位置（緯度と経度）をすべての配送先について読み出し、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してグラフィック制御回路６を制御してディスプレイ８にそのまま表示させる。
【００７４】
項目「配送品目」６４がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送先の店名、配送品名およびその数量をすべての配送先について読み出し、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してグラフィック制御回路６を制御してディスプレイ８にそのまま表示させる。
【００７５】
項目「動態入力」６５がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール４５は、現在位置を計算するナビゲーションサービスを実行させるためのナビ制御データを上述のメンバ変数に書き込む。ナビアプリケーションモジュール４６は、そのナビ制御データを読み出すと、ＧＰＳ受信機１１などのナビゲーションハードウェア４１からの情報に基づいて現在位置を計算し、計算した現在位置をナビ情報データとして上述のメンバ変数に書き込む。物流アプリケーションモジュール４５は、そのメンバ変数から現在位置を読み出す。
【００７６】
そして物流アプリケーションモジュール４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送順および配送先の店名に読み出し、配送順に従って順番に配送先の店名をＪａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してグラフィック制御回路６を制御してディスプレイ８に表示させるとともに、現在の状況を入力するためのボタン「到着」，「出発」，「配送中」，「休憩中」をディスプレイ８に表示させる。なお、ボタン「出発」が押されると、配送順に従って次の配送先に、配送先の店名が変更される。
【００７７】
そして、ユーザがユーザ操作部９を操作してそれらのうちのいずれかのボタンを押すと、その情報が物流アプリケーションモジュール４５に供給され、物流アプリケーションモジュール４５は、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介してナビゲーションハードウェア４１の１つである通信インタフェース１６および携帯電話機１５を制御して、選択されたボタンに対応する現在の状況およびそのときの配送先のデータを物流センタ３２に供給する。なお、ボタン「到着」が押されると、物流アプリケーションモジュール４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送先の位置を読み出し、ナビゲーションサービスにより得られた現在位置と比較し、この配送先と現在位置との距離がすべての他の配送先と現在位置との距離より小さいか否かを判断し、この配送先と現在位置との距離がすべての他の配送先と現在位置との距離より小さい場合にはこの配送先が正しいと判断し、そうでない場合にはこの配送先が正しくないと判断し、現在位置に最も近い配送先に今の配送先を変更する。これによりユーザ操作の誤りなどにより、配送先に誤りが生じても訂正される。そして物流センタ３２では、このデータに基づいて各車両の現在の状況や配送の進捗が確認される。
【００７８】
また、項目「次配送ルート」６６がユーザにより選択された場合、その情報を受け取ると、図６のステップＳＴ１において、物流アプリケーションモジュール４５は、ＲＡＭ３に記憶された車両運行指示のうちの配送先の店名を読み出し、その配送先の店名の一覧をディスプレイ８に表示させる。そして、次の配送先がユーザにより選択されると、その情報が物流アプリケーションモジュール４５に供給される。
【００７９】
そして物流アプリケーションモジュール４５は、ステップＳＴ２において、次の配送先を目的地として、目的地を設定しその目的地までの経路探索を実行させるためのナビ制御データをメンバ変数naviCommandに書き込む。目的地を設定しその目的地までの経路探索を実行させるためのナビ制御データは、例えば文字列「setDestination, N34.45.17.2, E135.25.45.9, 1, コンビニＡ」などとされる。このナビ制御データのうちの「setDestination」は目的地設定および経路探索の命令であり、カンマはフィールドの区切りであり、「N34.45.17.2 」は目的地（すなわち次の配送先）の緯度（＝北緯３４度４５分１７．２秒）であり、「E135.25.45.9」は目的地（すなわち次の配送先）の経度（＝東経１３５度２５分４５．９秒）であり、「1 」は地図上の目的地を示す画像を指定する識別子であり、「コンビニＡ」はその目的地を示す画像に添えて表示される文字列（配送先の店名）である。なお、このナビ制御データにより図４に示す次配送先が設定される。
【００８０】
一方、ナビアプリケーションモジュール４６は、ステップＳＴ１１において、例えば１秒間隔にＪＮＩに従って物流アプリケーションモジュール４５の所定のメソッドgetCommand()を呼び出してメンバ変数naviCommandの値を戻り値として読み出し、ナビ制御データが書き込まれるか否かを判断し、ナビ制御データが書き込まれるまで待機する。そしてナビアプリケーションモジュール４６は、目的地設定および経路探索のためのナビ制御データが書き込まれたと判断した場合、ステップＳＴ１２に進み、そのナビ制御データを読み出し、物流アプリケーションモジュール４５の所定のメソッドsetProgress(progress)を呼び出し、引数ｐｒｏｇｒｅｓｓにサービス実行中を示す値０を設定して物流アプリケーションモジュール４５のメンバ変数commandProgressにその値を書き込み、ステップＳＴ１３において、そのナビ制御データで指定された目的地を設定し、その目的地までの経路探索を実行する。
【００８１】
このとき、ナビアプリケーションモジュール４６は、まず現在位置を計算し、図４に示すように地図上の現在位置に車両を表す画像７６を表示させる。次に、目的地の位置に、上述の識別子により指定された画像を、指定された文字列とともに表示させる。上述のナビ制御データの場合、識別子により指定された画像「マル１」が、指定された文字列「コンビニＡ」とともに表示される。そして経路探索の結果である経路が例えば図４に示すように矢印で表示される。なお、経路探索は、例えばダイクストラ法などの周知の方法に基づいて実行される。
【００８２】
そしてナビ制御データにより指示されたナビゲーションサービスが完了すると、ナビアプリケーションモジュール４６は、ステップＳＴ１４において、ＪＮＩに従ってメソッドsetProgress(progress)を呼び出して、引数progressそのナビゲーションサービスが完了したことを示す所定の値１を設定して物流アプリケーションモジュール４５のメンバ変数commandProgressにその値を書き込む。
【００８３】
このとき物流アプリケーションモジュール４５は、ステップＳＴ２でナビ制御データを書き込んだ後、ステップＳＴ３において、例えば１秒間隔でナビ情報データの書き込まれる変数commandProgress の値を調べ、そのナビゲーションサービスが完了したことを示す所定の値１がその変数commandProgress に書き込まれたか否かを判断し、そのナビゲーションサービスが完了したことを示す所定の値１がその変数commandProgress に書き込まれるまで待機する。そのナビゲーションサービスが完了したことを示す所定の値１がその変数commandProgress に書き込まれた場合、物流アプリケーションモジュール４５は、ステップＳＴ４においてナビ制御データにより指示したサービスが完了したことを確認して、処理を終了する。
【００８４】
また、図５に示す項目「全配送ルート」６８がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール４５は、ＲＡＭ３に記憶された車両運行指示のうちのすべての配送先の位置を読み出し、最後の配送先を目的地とし、その他の配送先を配送順に従って経由地として、各経由地を設定するためのナビ制御データ、および目的地を設定し経由地を介して目的地までの経路探索を実行させるためのナビ制御データを順次上述の変数に書き込む。以下、項目「次配送ルート」６６の場合と同様にして、ナビアプリケーションモジュール４６は、そのナビ制御データで指定されたナビゲーションサービスを実行し、また、ナビ情報データを書き込み、物流アプリケーションモジュール４５がそのナビゲーションサービスの完了を確認する。
【００８５】
このときナビアプリケーションモジュール４６は、例えば図３に示す車両運行指示の場合、図５に示すように、現在位置、経由地および目的地をそれぞれ示す画像を表示し、目的地および経由地を設定して経路探索を実行して得られた経路を矢印で表示させる。このとき、「コンビニＢ」や「コンビニＥ」については配送時刻の時刻指定があるので、他の経由地と異なる画像（配送時刻の指定があることを示す）が表示される。
【００８６】
また、項目「到着予想時刻」６７がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール４５およびナビアプリケーションモジュール４６は、項目「次配送ルート」６６の場合と同様にして、図７におけるステップＳＴ１〜ステップＳＴ４およびステップＳＴ１１〜ステップＳＴ１４においてまず次の配送先を目的地として経路探索をする。その後に、ステップＳＴ５において、物流アプリケーションモジュール４５は、目的地（すなわち次の配送先）までの所要時間を計算させるためのナビ制御データをメンバ変数naviCommandに書き込む。
【００８７】
一方、ナビアプリケーションモジュール４６は、ステップＳＴ２１において、例えば１秒間隔でメンバ変数naviCommandの値をＪＮＩに従って読み出し、ナビ制御データが書き込まれるか否かを判断し、ナビ制御データが書き込まれるまで待機する。そしてナビアプリケーションモジュール４６は、所要時間の計算のためのナビ制御データが書き込まれたと判断した場合、ステップＳＴ２２に進み、そのナビ制御データを読み出し、ステップＳＴ２３において、目的地までの経路を走行した場合の所要時間を計算する。なお、所要時間の計算方法は通常のナビゲーション装置と同様の方法であるのでその説明を省略する。
【００８８】
そしてナビ制御データにより指示されたナビゲーションサービスが完了すると、ナビアプリケーションモジュール４６は、ステップＳＴ２４において、そのナビゲーションサービスが完了したことを示す所定の値をＪＮＩに従ってメンバ変数commandProgressに書き込む。
【００８９】
このとき物流アプリケーションモジュール４５は、ステップＳＴ５でナビ制御データを書き込んだ後、ステップＳＴ６において、例えば１秒間隔でナビ情報データの書き込まれるメンバ変数commandProgressの値をメソッドgetProgress()を用いて調べ、そのナビゲーションサービスが完了したことを示す所定の値がそのメンバ変数commandProgressに書き込まれたか否かを判断し、そのナビゲーションサービスが完了したことを示す所定の値がそのメンバ変数commandProgressに書き込まれるまで待機する。そのナビゲーションサービスが完了したことを示す所定の値がそのメンバ変数commandProgressに書き込まれた場合、物流アプリケーションモジュール４５は、ステップＳＴ７においてナビ制御データにより指示したサービスが完了したことを確認し、ステップＳＴ８においてその所要時間を読み出して、ステップＳＴ９において現在時刻にその所要時間を加算した時刻を到着予想時刻としてディスプレイ８に表示させる。また、物流アプリケーションモジュール４５は、次の配送先に時刻指定がある場合、その時刻と到着予想時刻とを比較して、その時刻までに次の配送先に到着可能か否かをディスプレイ８に表示させる。なお、現在時刻は図示せぬタイマなどにより取得される。
【００９０】
なお、上記の他、物流アプリケーションモジュール４５のサービスに走行方位、走行速度などが必要な場合には、それらの値を取得するためのナビ制御データをナビアプリケーションモジュール４６に供給し、ナビ情報データとしてそれらの値を取得する。
【００９１】
以上のように、この参考例１によれば、ナビゲーションサービスを提供するナビアプリケーションモジュール４６と物流アプリケーションモジュール４５との間で通信してナビ制御データおよびナビ情報データを授受し、ナビゲーションサービスを利用した集配送情報サービスを提供するようにしたので、ユーザ操作の頻度を低減してユーザに対する負荷を軽減するとともに、集配送情報サービスの程度を向上させることができるという効果が得られる。さらに、それにより、集配送業務の効率を向上させることができるという効果が得られる。
【００９２】
また、ナビゲーションサービスを利用して現在位置を取得し、その現在位置と配送先の位置と比較して配送先が正しいか否かを判断するようにしたので、ユーザによる確認作業を簡略化し、集配送業務の効率を向上させることができるという効果が得られる。
【００９３】
さらに、ナビゲーションサービスを利用して配送先までの所要時間を取得し、その所要時間から配送先への到着予想時間を計算し、予定配送時刻までに到着するか否かを判断するようにしたので、ユーザによる確認作業を簡略化し、集配送業務の効率を向上させることができるという効果が得られる。
【００９４】
さらに、物流アプリケーションモジュール４５はＪａｖａ言語で記述され、Ｊａｖａ仮想マシン４４上で実行されるので、プラットフォームに依存せず、他のプラットフォームで稼働するＪａｖａ仮想マシン上で開発することにより、開発効率を向上することができるという効果が得られる。
【００９５】
参考例２．
図８はこの発明の参考例２によるナビゲーション装置の構成を階層的に示す図である。図８において、８１はプラットフォーム部の基本機能を使用して取得した情報に基づき、内蔵のソケット通信部９１を使用してナビアプリケーションモジュール８２との間でソケット通信を実行してナビゲーションサービスを利用した集配送情報サービス（付加サービス）を提供する物流アプリケーションモジュール（付加アプリケーション処理部）である。
【００９６】
８２は現在位置の計算、経路探索、経路案内などのナビゲーションサービスを実現するアプリケーションプログラム群であるナビアプリケーションモジュール（ナビアプリケーション処理部）である。ナビアプリケーションモジュール８２において、１０１は、物流アプリケーションモジュール８１との間でソケット通信を実行してナビ制御データおよびナビ情報データを授受するソケット通信部であり、１０２は、ＪＮＩに従ってネイティブコードとしてコーディングされ、Ｊａｖａ仮想マシン４４およびＪａｖａアプリケーションである物流アプリケーションモジュール８１を起動するＪＮＩ実装部である。
【００９７】
なお、図８におけるその他の構成要素および参考例２によるナビゲーション装置のハードウェア構成については参考例１によるものと同様であるので、その説明を省略する。
【００９８】
次に動作について説明する。
参考例１によるナビゲーション装置（図２）ではＪＮＩに従ってナビ制御データおよびナビ情報データが物流アプリケーションモジュール４５とナビアプリケーションモジュール４６との間で授受されるが、参考例２によるナビゲーション装置（図８）では、ソケット通信によりナビ制御データおよびナビ情報データが物流アプリケーションモジュール８１とナビアプリケーションモジュール８２との間で授受される。
【００９９】
物流アプリケーションモジュール８１は、例えば図４や図５に示すメニューからユーザにより「次配送ルート」などの集配送情報サービスが選択された場合においてナビ制御データをナビアプリケーションモジュール８２に供給するとき、ソケット通信部９１とソケット通信部１０１との間でソケット通信を実行してそのナビ制御データをナビアプリケーションモジュール８２に送信する。
【０１００】
そしてナビアプリケーションモジュール８２は、ソケット通信部１０１でナビ制御データを受信すると、他の処理を中断して（あるいは、実行中の処理の完了後に）、そのナビ制御データにより指定されたナビゲーションサービスを実行する。ナビアプリケーションモジュール８２は、そのナビゲーションサービスの途中経過や実行結果をナビ情報データとし、ソケット通信部１０１とソケット通信部９１との間でソケット通信を実行してそのナビ情報データを物流アプリケーションモジュール８１へ送信する。
【０１０１】
このようにして、ナビ制御データおよびナビ情報データの授受がソケット通信により実行される。なお、その他の動作については参考例１によるものと同様であるので、その説明を省略する。
【０１０２】
以上のように、この参考例２によれば、参考例１による効果の他、ソケット通信によりナビ制御データおよびナビ情報データを授受するようにしたので、データの授受のために参考例１に示すような変数の値の監視をする必要がなくなり、ナビアプリケーションモジュール８２の負荷を軽減することができるという効果が得られる。
【０１０３】
実施の形態１．
図９はこの発明の実施の形態１によるナビゲーション装置の構成を階層的に示す図である。図９において、１１１はプラットフォーム部の基本機能を使用して取得した情報に基づき、内蔵のクライアントＲＭＩ部１２１によりサーバＲＭＩ部１３１との間でＪａｖａＲＭＩ（Remote Method Invocation）により通信を実行してナビゲーションサービスを利用した集配送情報サービスを提供する物流アプリケーションモジュール（付加アプリケーション処理部）である。
【０１０４】
１１２は集配送情報サービスを実行するために、物流アプリケーションモジュール１１１との間でＪａｖａＲＭＩにより通信するとともにナビアプリケーションモジュール４６との間でＪＮＩにより通信して、物流アプリケーションモジュール１１１とナビアプリケーションモジュール４６との間のナビ制御データおよびナビ情報データの授受を実行するＪａｖａアプリケーションであるインタフェースモジュール（インタフェース処理部）である。なお、JavaRMIはリモートオブジェクトが持つメンバ変数やメソッドを自分（ローカルオブジェクト）のメンバ変数やメソッドであるかのように利用可能とする分散オブジェクト技術である。
【０１０５】
なお、図９におけるその他の構成要素および実施の形態１によるナビゲーション装置のハードウェア構成については参考例１によるものと同様であるので、その説明を省略する。ただし、ナビアプリケーションモジュール４６はインタフェースモジュール１１２との間でナビ制御データおよびナビ情報データを授受する。
【０１０６】
次に動作について説明する。
図１０は目的地である配送先までの経路探索を実行する際の動作について説明するフローチャートであり、図１１は目的地である配送先への到達時刻を計算する際の動作について説明するフローチャートである。
【０１０７】
この実施の形態１によるナビゲーション装置では、ナビアプリケーションモジュール４６のＪＮＩ実装部５１によりＪＮＩに従ってＪａｖａ仮想マシン４４およびインタフェースモジュール１１２が起動され、インタフェースモジュール１１２により物流アプリケーションモジュール１１１が起動される。インタフェースモジュール１１２が起動されると、Ｊａｖａ仮想マシン４４上で動作する図示せぬレジストリサーバに、インタフェースモジュール１１２のサーバＲＭＩ部１３１が登録される。このときナビアプリケーションモジュール４６は、Ｊａｖａ仮想マシン４４およびインタフェースモジュール１１２を起動させるためのコンストラクタ関数の戻り値として、インタフェースモジュール１１２と共有される変数へのポインタを取得し、このポインタの指す変数を使用してナビ制御データおよびナビ情報データの授受を実行する。また、ヘッダファイルなどに予め記述されたメンバ変数を共有してナビ制御データおよびナビ情報データが授受される。
【０１０８】
ナビゲーションサービスを利用する場合、物流アプリケーションモジュール１１１は、そのナビゲーションサービスに対応するナビ制御データをクライアントＲＭＩ部１２１によりインタフェースモジュール１１２のサーバＲＭＩ部１３１に送信する。このときクライアントＲＭＩ部１２１は図示せぬレジストリサーバからサーバＲＭＩ部１３１の参照を取得し、それに基づいてサーバＲＭＩ部１３１へデータを送信する。そしてインタフェースモジュール１１２はサーバＲＭＩ部１３１によりそのナビ制御データを受信すると、ナビアプリケーションモジュール４６と共有される上述のメンバ変数にそのナビ制御データを書き込む。一方、ナビアプリケーションモジュール４６は所定の周期でそのメンバ変数の値を調べ、ナビ制御データが書き込まれたか否かを判断し、ナビ制御データが書き込まれたと判断した場合、そのナビ制御データを読み出し、そのナビ制御データで指定されたナビゲーションサービスを実行する。
【０１０９】
そして、ナビアプリケーションモジュール４６は、そのナビゲーションサービスの途中経過または実行結果をナビ情報データとして上述のメンバ変数に書き込む。インタフェースモジュール１１２は所定の周期でそのメンバ変数の値を調べ、ナビ情報データが書き込まれたか否かを判断し、ナビ情報データが書き込まれたと判断した場合、そのナビ情報データを読み出し、サーバＲＭＩ部１３１により物流アプリケーションモジュール１１１に送信する。物流アプリケーションモジュール１１１は、クライアントＲＭＩ部１２１によりそのナビ情報データを受信し、次の処理に移るか、またはサービスの完了を確認する。
【０１１０】
このようにインタフェースモジュール１１２を介してナビ制御データおよびナビ情報データが授受される。なお、その他の動作については参考例１によるものと同様であるので、その説明を省略する。
【０１１１】
次に参考例１の場合と同様に、図４に示すメニューから項目「次配送ルート」６６または項目「到着予想時刻」６７が選択された場合のこの実施の形態１によるナビゲーション装置の動作について説明する。
項目「次配送ルート」６６が選択された場合、その情報を受け取ると、図１０のステップＳＴ３１において、物流アプリケーションモジュール１１１は、ＲＡＭ３に記憶された車両運行指示のうちの配送先の店名を読み出し、その配送先の店名の一覧をディスプレイ８に表示させる。そして、次の配送先がユーザにより選択されると、その情報が物流アプリケーションモジュール１１１に供給される。
【０１１２】
そして物流アプリケーションモジュール１１１は、ステップＳＴ３２において、次の配送先を目的地として、目的地を設定しその目的地までの経路探索を実行させるためのナビ制御データをクライアントＲＭＩ部１２１によりインタフェースモジュール１１２へ送信する。インタフェースモジュール１１２はステップＳＴ４１においてサーバＲＭＩ部１３１によりそのナビ制御データを受信し、ナビアプリケーションモジュール４６と共有されるメンバ変数naviCommandに書き込む。
【０１１３】
一方、ナビアプリケーションモジュール４６は、ステップＳＴ５１において、例えば１秒間隔でメンバ変数naviCommandの値をＪＮＩに従って読み出し、ナビ制御データが書き込まれたか否かを判断し、ナビ制御データが書き込まれるまで待機する。そしてナビアプリケーションモジュール４６は、目的地設定および経路探索のためのナビ制御データが書き込まれたと判断した場合、ステップＳＴ５２に進み、そのナビ制御データを読み出し、ステップＳＴ５３において、ナビ制御データで指定された目的地を設定し、その目的地までの経路探索を参考例１の場合と同様にして実行し、例えば図４に示すように案内画像がディスプレイ８に表示される。
【０１１４】
そしてナビ制御データにより指示されたナビゲーションサービスが完了すると、ナビアプリケーションモジュール４６は、ステップＳＴ５４において、そのナビゲーションサービスが完了したことを示す所定の値をＪＮＩに従ってメンバ変数commandProgressに書き込む。一方、インタフェースモジュール１１２は、ステップＳＴ４２において、例えば１秒間隔でメンバ変数commandProgressの値を調べ、そのメンバ変数commandProgressにサービス完了を示す値が書き込まれるまで待機し、メンバ変数commandProgressにサービス完了を示す値が書き込まれると、ステップＳＴ４３に進み、メンバ変数commandProgressからサービス完了を示すナビ情報データを読み出し、サーバＲＭＩ部１３１により物流アプリケーションモジュール１１１へ送信する。
【０１１５】
物流アプリケーションモジュール１１１は、ステップＳＴ３２でナビ制御データを送信した後、ステップＳＴ３３において、例えば１秒間隔でサービス完了を示すナビ情報データがクライアントＲＭＩ部１２１により受信されたか否かを調べ、そのナビ情報データが受信されるまで待機する。そのナビ情報データが受信された場合、物流アプリケーションモジュール１１１は、ステップＳＴ３４においてナビ制御データにより指示したサービスが完了したことを確認して、処理を終了する。
【０１１６】
また、項目「到着予想時刻」６７が選択された場合、その情報を受け取ると、物流アプリケーションモジュール１１１、インタフェースモジュール１１２およびナビアプリケーションモジュール４６は、項目「次配送ルート」６６の場合と同様にして、図１１におけるステップＳＴ３１〜ステップＳＴ３４、ステップＳＴ４１〜ステップＳＴ４３およびステップＳＴ５１〜ステップＳＴ５４においてまず次の配送先を目的地として経路探索をする。その後に、ステップＳＴ３５において、物流アプリケーションモジュール１１１は、目的地（すなわち次の配送先）までの所要時間を計算させるためのナビ制御データをクライアントＲＭＩ部１２１によりインタフェースモジュール１１２へ送信する。インタフェースモジュール１１２はステップＳＴ４４においてサーバＲＭＩ部１３１によりそのナビ制御データを受信し、ナビアプリケーションモジュール４６と共有されるメンバ変数naviCommandに書き込む。
【０１１７】
一方、ナビアプリケーションモジュール４６は、ステップＳＴ６１において、例えば１秒間隔でメンバ変数naviCommandの値をＪＮＩに従って読み出し、ナビ制御データが書き込まれるか否かを判断し、ナビ制御データが書き込まれるまで待機する。そしてナビアプリケーションモジュール４６は、所要時間の計算のためのナビ制御データが書き込まれたと判断した場合、ステップＳＴ６２に進み、そのナビ制御データを読み出し、ステップＳＴ６３において、目的地までの経路を走行した場合の所要時間を計算する。
【０１１８】
そしてナビ制御データにより指示されたナビゲーションサービスが完了すると、ナビアプリケーションモジュール４６は、ステップＳＴ６４において、そのナビゲーションサービスが完了したことを示す所定の値をＪＮＩに従ってメンバ変数commandProgressに書き込む。一方、インタフェースモジュール１１２は、ステップＳＴ４５において、例えば１秒間隔でメンバ変数commandProgressの値を調べ、メンバ変数commandProgressにサービス完了を示す値が書き込まれるまで待機し、そのメンバ変数commandProgressにサービス完了を示す値が書き込まれると、ステップＳＴ４６に進み、メンバ変数commandProgressからサービス完了を示すナビ情報データを読み出し、サーバＲＭＩ部１３１により物流アプリケーションモジュール１１１へ送信する。
【０１１９】
このとき物流アプリケーションモジュール１１１は、ステップＳＴ３５でナビ制御データを送信した後、ステップＳＴ３６において、例えば１秒間隔でサービス完了および所要時間のナビ情報データがクライアントＲＭＩ部１２１により受信されたか否かを調べ、そのナビ情報データが受信されるまで待機する。そのナビ制御データが受信された場合、物流アプリケーションモジュール１１１は、ステップＳＴ３７においてナビ制御データにより指示したサービスが完了したことを確認し、ステップＳＴ３８においてその所要時間を読み出して、ステップＳＴ３９において現在時刻にその所要時間を加算した時刻を到着予想時刻としてディスプレイ８に表示させる。また、物流アプリケーションモジュール１１１は、次の配送先に時刻指定がある場合、その時刻と到着予想時刻とを比較して、その時刻までに次の配送先に到着可能か否かをディスプレイ８に表示させる。
【０１２０】
なお、その他の動作については参考例１によるものと同様であるので、その説明を省略する。
【０１２１】
以上のように、この実施の形態１によれば、参考例１による効果の他、物流アプリケーションモジュール１１１とナビアプリケーションモジュール４６とがインタフェースモジュール１１２を介してデータを授受するようにしたので、インタフェースモジュールを用意すれば他のプラットフォームでも実機と同一環境で物流アプリケーションモジュールの動作チェックを実行することができ、また開発者にはＪａｖａの知識があればよく、開発効率を向上させることができるという効果が得られる。
【０１２２】
実施の形態２．
図１２はこの発明の実施の形態２によるナビゲーション装置の構成を階層的に示す図である。図１２において、１４１は集配送情報サービスを実行するために、物流アプリケーションモジュール８１との間でソケット通信により通信するとともにナビアプリケーションモジュール４６との間でＪＮＩにより通信して、物流アプリケーションモジュール８１とナビアプリケーションモジュール４６との間でのナビ制御データおよびナビ情報データの授受を実行するＪａｖａアプリケーションであるインタフェースモジュール（インタフェース処理部）である。
インタフェースモジュール１４１において、１５１は物流アプリケーションモジュール８１のソケット通信部９１との間でソケット通信を実行するソケット通信部である。
【０１２３】
なお、図１２におけるその他の構成要素および実施の形態２によるナビゲーション装置のハードウェア構成については実施の形態１によるものと同様であるので、その説明を省略する。ただし、物流アプリケーションモジュール８１は参考例２と同様であるが、物流アプリケーションモジュール８１はソケット通信部９１によりインタフェースモジュール１４１との間で通信する。
【０１２４】
次に動作について説明する。
実施の形態１によるナビゲーション装置（図９）ではＪａｖａＲＭＩによりナビ制御データおよびナビ情報データが物流アプリケーションモジュール１１１とインタフェースモジュール１１２との間で授受されるが、実施の形態２によるナビゲーション装置（図１２）では、ソケット通信によりナビ制御データおよびナビ情報データが物流アプリケーションモジュール８１とインタフェースモジュール１４１との間で授受される。
【０１２５】
物流アプリケーションモジュール８１は、例えば図４や図５に示すメニューからユーザにより「次配送ルート」などの集配送情報サービスが選択された場合においてナビ制御データをインタフェースモジュール１４１に送信するとき、ソケット通信部９１とソケット通信部１５１との間でソケット通信を実行してそのナビ制御データをインタフェースモジュール１４１に送信する。
【０１２６】
また、インタフェースモジュール１４１は、上述のメンバ変数からナビ情報データを読み出すと、ソケット通信部１５１とソケット通信部９１との間でソケット通信を実行してそのナビ情報データを物流アプリケーションモジュール８１に送信する。
【０１２７】
このようにして、物流アプリケーションモジュール８１とインタフェースモジュール１４１との間のナビ制御データおよびナビ情報データの授受がソケット通信により実行される。なお、その他の動作については実施の形態１によるものと同様であるので、その説明を省略する。
【０１２８】
以上のように、この実施の形態２によれば、ＪａｖａＲＭＩの代わりにソケット通信によりナビ制御データおよびナビ情報データを授受するようにしたので、実施の形態１による効果と同様の効果が得られる。
【０１２９】
実施の形態３．
図１３はこの発明の実施の形態３によるナビゲーション装置の構成を階層的に示す図である。図１３において、１６１は集配送情報サービスを実行するために、物流アプリケーションモジュール１１１との間でＪａｖａＲＭＩにより通信するとともにナビアプリケーションモジュール８２との間でソケット通信により通信して、物流アプリケーションモジュール１１１とナビアプリケーションモジュール８２との間でのナビ制御データおよびナビ情報データの授受を実行するＪａｖａアプリケーションであるインタフェースモジュール（インタフェース処理部）である。インタフェースモジュール１６１において、１７１は物流アプリケーションモジュール１１１のクライアントＲＭＩ部１２１との間でＪａｖａＲＭＩによりデータ通信を実行するサーバＲＭＩ部であり、１７２はナビアプリケーションモジュール８２のソケット通信部１０１との間でソケット通信によりデータ通信を実行するソケット通信部である。
【０１３０】
なお、図１３におけるその他の構成要素および実施の形態３によるナビゲーション装置のハードウェア構成については実施の形態２によるものと同様であるので、その説明を省略する。ただし、ナビアプリケーションモジュール８２は参考例２と同様であり、ナビアプリケーションモジュール８２はソケット通信部１０１によりインタフェースモジュール１６１との間で通信する。
【０１３１】
次に動作について説明する。
実施の形態２によるナビゲーション装置（図１２）によりナビ制御データおよびナビ情報データがインタフェースモジュール１４１とナビアプリケーションモジュール４６との間で授受されるが、実施の形態３によるナビゲーション装置（図１３）では、ソケット通信によりナビ制御データおよびナビ情報データがインタフェースモジュール１６１とナビアプリケーションモジュール８２との間で授受される。
【０１３２】
インタフェースモジュール１６１は、ナビ制御データをナビアプリケーションモジュール８２に送信するとき、ソケット通信部１７２とソケット通信部１０１との間でソケット通信を実行してそのナビ制御データをナビアプリケーションモジュール８２に送信する。ナビアプリケーションモジュール８２はソケット通信部１０１によりそのナビ制御データを受信し、そのナビ制御データにより指定されたナビゲーションサービスを実行する。
【０１３３】
一方、ナビアプリケーションモジュール８２は、ナビ情報データをインタフェースモジュール１６１に送信するとき、ソケット通信部１０１とソケット通信部１７２との間でソケット通信を実行してそのナビ情報データをインタフェースモジュール１６１に送信する。
【０１３４】
このようにして、インタフェースモジュール１６１とナビアプリケーションモジュール８２との間のナビ制御データおよびナビ情報データの授受がソケット通信により実行される。なお、その他の動作については実施の形態２によるものと同様であるので、その説明を省略する。
【０１３５】
以上のように、この実施の形態３によれば、実施の形態１による効果の他、インタフェースモジュール１６１とナビアプリケーションモジュール８２との間でソケット通信によりナビ制御データおよびナビ情報データを授受するようにしたので、データの授受のために参考例１に示すような変数の値の監視をする必要がなくなり、ナビアプリケーションモジュール８２の負荷を軽減することができるという効果が得られる。
【０１３６】
実施の形態４．
図１４はこの発明の実施の形態４によるナビゲーション装置の構成を階層的に示す図である。図１４において、１８１は集配送情報サービスを実行するために、物流アプリケーションモジュール８１との間でソケット通信により通信するとともにナビアプリケーションモジュール８２との間でソケット通信により通信して、物流アプリケーションモジュール８１とナビアプリケーションモジュール８２との間でのナビ制御データおよびナビ情報データの授受を実行するＪａｖａアプリケーションであるインタフェースモジュール（インタフェース処理部）である。インタフェースモジュール１８１において、１９１は物流アプリケーションモジュール８１のソケット通信部９１との間でソケット通信によりデータ通信を実行するソケット通信部であり、１９２はナビアプリケーションモジュール８２のソケット通信部１０１との間でソケット通信によりデータ通信を実行するソケット通信部である。
【０１３７】
なお、図１４におけるその他の構成要素および実施の形態４によるナビゲーション装置のハードウェア構成については参考例２によるものと同様であるので、その説明を省略する。ただし、物流アプリケーションモジュール８１とナビアプリケーションモジュール８２はインタフェースモジュール１８１を介して通信する。
【０１３８】
次に動作について説明する。
この実施の形態４によるナビゲーション装置では、ナビアプリケーションモジュール８２のＪＮＩ実装部１０２によりＪＮＩに従ってＪａｖａ仮想マシン４４およびインタフェースモジュール１８１が起動され、インタフェースモジュール１８１により物流アプリケーションモジュール８１が起動される。
【０１３９】
物流アプリケーションモジュール８１は、ナビ制御データをインタフェースモジュール１８１に送信するとき、ソケット通信部９１とソケット通信部１９１との間でソケット通信を実行してそのナビ制御データをインタフェースモジュール１８１に送信する。インタフェースモジュール１８１はソケット通信部１９１によりそのナビ制御データを受信すると、そのナビ制御データをソケット通信部１９２によりナビアプリケーションモジュール８２に送信する。ナビアプリケーションモジュール８２はソケット通信部１０１によりそのナビ制御データを受信し、そのナビ制御データにより指定されたナビゲーションサービスを実行する。
【０１４０】
一方、ナビアプリケーションモジュール８２は、ナビ情報データをインタフェースモジュール１８１に送信するとき、ソケット通信部１０１とソケット通信部１９２との間でソケット通信を実行してそのナビ情報データをインタフェースモジュール１８１に送信する。インタフェースモジュール１８１は、そのナビ制御データを受信すると、ソケット通信部１９１とソケット通信部９１との間でソケット通信を実行してそのナビ制御データを物流アプリケーションモジュール８１へ送信する。
【０１４１】
このようにして、インタフェースモジュール１８１を介して物流アプリケーションモジュール８１とナビアプリケーションモジュール８２との間でナビ制御データおよびナビ情報データの授受がソケット通信により実行される。なお、その他の動作については参考例２によるものと同様であるので、その説明を省略する。
【０１４２】
以上のように、この実施の形態４によれば、実施の形態３におけるＪａｖａＲＭＩの代わりにソケット通信によりナビ制御データおよびナビ情報データを授受するので、実施の形態３による効果と同様の効果が得られる。
【０１４３】
実施の形態５．
この発明の実施の形態５によるナビゲーション装置では、物流アプリケーションモジュール８１，１１１が、ナビアプリケーションモジュール４６，８２に対する複数の指示を１つの指示とした複合型ナビ制御データを使用し、インタフェースモジュール１１２，１４１，１６１，１８１が複合型ナビ制御データから複数のナビ制御データを生成し、ナビアプリケーションモジュール４６，８２へ順次供給する。
【０１４４】
一例として上述のメニューにおいて項目「全配送ルート」６８が選択された場合の各部の動作について説明する。図１５は、項目「全配送ルート」６８が選択された場合の動作について説明するフローチャートである。
【０１４５】
また、項目「全配送ルート」６８がユーザにより選択された場合、その情報を受け取ると、物流アプリケーションモジュール８１，１１１は、ステップＳＴ７１において、ＲＡＭ３に記憶された車両運行指示のうちのすべての配送先の位置を読み出し、ステップＳＴ７２において、複合型ナビ制御データであることを示す所定の命令、配送先の位置のリスト、地図上の目的地を示す画像を指定する識別子のリスト、および各目的地を示す画像に添えて表示される文字列のリストで１つの複合型ナビ制御データを生成し、上述のようにしてインタフェースモジュール１１２，１４１，１６１，１８１に供給する。
【０１４６】
インタフェースモジュール１１２，１４１，１６１，１８１は、ステップＳＴ８１において、全配送ルートの表示のためのその複合型ナビ制御データを受け取り、まず、ステップＳＴ８２において、その命令部が複合型ナビ制御データを示すものであるか否かを判断し、その命令部が複合型ナビ制御データを示すものであると判断した場合、その複合型ナビ制御データの配送先の位置のリスト、地図上の目的地を示す画像を指定する識別子のリストおよび各目的地を示す画像に添えて表示される文字列のリストから、経由地設定または目的地設定／経路探索を命令、その配送先の位置、その識別子およびその文字列で構成される配送先数と同数のナビ制御データを生成する。図１５に示す場合では、図３に示す車両運行指示に基づき配送先数が５つであるので、ステップＳＴ８３〜ステップＳＴ８７において、第１番目の配送先〜第４番目の配送先が経由地１〜経由地４として４つのナビ制御データが生成され、第５番目の配送先が目的地として１つのナビ制御データが生成される。
【０１４７】
一方、命令部が複合型ナビ制御データを示すものではないと判断した場合には、ステップＳＴ８８において、インタフェースモジュール１１２，１４１，１６１，１８１はそのナビ制御データをそのままナビアプリケーションモジュール４６，８２に供給する。
【０１４８】
また、ナビアプリケーションモジュール４６，８２は、ステップＳＴ９１において、ナビ制御データが供給されるまで待機し、ナビ制御データが供給されると、ステップＳＴ９２においてそのナビ制御データを読み出し、ステップＳＴ９３においてそのナビ制御データの命令が経由地設定であるか否かを判断する。そのナビ制御データの命令が経由地設定であると判断した場合、ステップＳＴ９４においてナビアプリケーションモジュール４６，８２はナビゲーションサービスである経由地の設定を実行する。一方、そのナビ制御データの命令が経由地設定ではないと判断した場合、今の場合、そのナビ制御データの命令は目的地設定／経路探索であるので、ステップＳＴ９５において、ナビアプリケーションモジュール４６，８２はナビゲーションサービスである目的地の設定および経路探索を実行し、例えば図５に示すような案内画像を地図上に表示させる。そしてステップＳＴ９６において、ナビアプリケーションモジュール４６，８２はサービス完了を示すナビ情報データをインタフェースモジュール１１２，１４１，１６１，１８１に供給する。
【０１４９】
このときインタフェースモジュール１１２，１４１，１６１，１８１は、ステップＳＴ８９において、サービス完了を示すナビ情報データが供給されるまで待機し、サービス完了を示すナビ情報データが供給されると、ステップＳＴ９０においてそのナビ情報データを物流アプリケーションモジュール４５，８１，１１１に供給する。
【０１５０】
また、物流アプリケーションモジュール８１，１１１は、ステップＳＴ７３において、サービス完了を示すナビ情報データが供給されるまで待機し、サービス完了を示すナビ情報データが供給されると、ステップＳＴ７４においてサービス完了を確認して処理を終了する。
【０１５１】
このように、インタフェースモジュール１１２，１４１，１６１，１８１は、物流アプリケーションモジュール８１，１１１からの制御データが複合型制御データである場合、その複合型制御データから複数の制御データを生成し、複数の制御データをナビアプリケーションモジュール４６，８２に供給する。
【０１５２】
以上のように、この実施の形態５によれば、物流アプリケーションモジュール８１，１１１が、ナビアプリケーションモジュール４６，８２に対する複数の指示を１つの指示とした複合型ナビ制御データを使用し、インタフェースモジュール１１２，１４１，１６１，１８１が複合型ナビ制御データから複数のナビ制御データを生成し、ナビアプリケーションモジュール４６，８２へ順次供給するようにしたので、物流アプリケーションモジュール８１，１１１とインタフェースモジュール１１２，１４１，１６１，１８１との間でのナビ制御データの送受信回数を低減し、処理時間を短縮することができるという効果が得られる。
【０１５３】
実施の形態６．
図１６はこの発明の実施の形態６によるナビゲーション装置の構成を階層的に示す図である。図１６において、１１２Ａは実施の形態１におけるインタフェースモジュール１１２と同様に動作するとともに、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介して通信インタフェース１６および携帯電話機１５を制御し、携帯電話回線などの公衆回線３４および物流センタ３２のルータ３６を介して物流センタ３２のサーバ（外部装置）３７に接続して、物流アプリケーションモジュール１１１をダウンロードするインタフェースモジュール（インタフェース処理部）である。
【０１５４】
なお、図１６におけるその他の構成要素および実施の形態６によるナビゲーション装置のハードウェア構成については実施の形態１によるものと同様であるので、その説明を省略する。ただし、各種プログラムが予め記憶されているＲＯＭ１は、マイクロプロセッサ２により電気的に内容を書き換え可能なＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）などである。
【０１５５】
次に動作について説明する。
インタフェースモジュール１１２Ａは物流アプリケーションモジュール１１１を起動する前に、ＲＯＭ１に記憶された物流アプリケーションモジュール１１１の作成日時を参照するとともに、Ｊａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介して通信インタフェース１６および携帯電話機１５を制御し、公衆回線３４および物流センタ３２のルータ３６を介してサーバ３７に接続して、サーバ３７に保存されている物流アプリケーションモジュールの作成日時を参照する。
【０１５６】
そしてサーバ３７に保存されている物流アプリケーションモジュールの作成日時がＲＯＭ１に記憶された物流アプリケーションモジュール１１１の作成日時より新しい場合、インタフェースモジュール１１２ＡはＪａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介して通信インタフェース１６および携帯電話機１５を制御し、公衆回線３４および物流センタ３２のルータ３６を介してサーバ３７に接続して、物流アプリケーションモジュールをダウンロードし、ＲＯＭ１に記憶された物流アプリケーションモジュールを更新する。
【０１５７】
なお、初期状態において、ＲＯＭ１に物流アプリケーションモジュールのプログラムが記憶されていない場合にも、インタフェースモジュール１１２Ａは同様に物流アプリケーションモジュールをダウンロードする。
【０１５８】
ただし、インタフェースモジュール１１２Ａは、物流アプリケーションモジュールの使用する通信サービスを提供可能な場合にのみ、その物流アプリケーションモジュールをサーバ３７から取得する。
【０１５９】
なお、その他の動作については実施の形態１によるものと同様であるので、その説明を省略する。
【０１６０】
以上のように、この実施の形態６によれば、インタフェースモジュール１１２Ａが必要に応じて物流アプリケーションモジュール１１１を物流センタ３２のサーバ３７から取得するようにしたので、集配送用の各車両に対して個別的に物流アプリケーションモジュールをインストールやバージョンアップする必要がなく、集配送業務の効率を向上させることができるという効果が得られる。
【０１６１】
また、インタフェースモジュール１１２Ａが物流アプリケーションモジュールの使用する通信サービスを提供可能な場合にのみ、その物流アプリケーションモジュールをサーバ３７から取得するようにしたので、インタフェースモジュール１１２Ａが対応できない物流アプリケーションモジュールはダウンロードされず、装置が正常に動作しなくなるような不具合を予防することができるという効果が得られる。
【０１６２】
実施の形態７．
図１７はこの発明の実施の形態７によりナビゲーション装置の構成を階層的に示す図である。１１２Ｂは実施の形態１におけるインタフェースモジュール１１２と同様に動作するとともに、物流アプリケーションモジュール１１１からサービス開始要求を受け取ると、そのサービス開始要求に対応する通信サービスを実行するサービスモジュール２０１−ｉを起動するインタフェースモジュール（インタフェース処理部）である。
【０１６３】
なお、図１７におけるその他の構成要素および実施の形態７によるナビゲーション装置のハードウェア構成については実施の形態１によるものと同様であるので、その説明を省略する。ただし、物流アプリケーションモジュール１１１は、ナビ制御データおよびナビ情報データの送受を実行する前に、使用する通信サービスについてのサービス開始要求をインタフェースモジュール１１２Ｂに供給する。また、各種プログラムが予め記憶されているＲＯＭ１は、マイクロプロセッサ２により電気的に内容を書き換え可能なＥＥＰＲＯＭなどである。
【０１６４】
次に動作について説明する。
物流アプリケーションモジュール１１１は、ナビ制御データおよびナビ情報データの送受を実行する前に、使用する通信サービスについてのサービス開始要求をインタフェースモジュール１１２Ｂに供給する。
【０１６５】
インタフェースモジュール１１２Ｂは物流アプリケーションモジュール１１１からサービス開始要求を受け取ると、そのサービス開始要求に対応する通信サービスを実行するＪａｖａ言語で記述されたクラスであるサービスモジュール２０１−ｉがＲＯＭ１に記憶されているか否かを判断し、記憶されている場合には、そのサービスモジュール２０１−ｉを読み出し、起動する。一方、サービスモジュール２０１−ｉがＲＯＭ１に記憶されていない場合、インタフェースモジュール１１２ＢはＪａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介して通信インタフェース１６および携帯電話機１５を制御し、携帯電話回線などの公衆回線３４および物流センタ３２のルータ３６を介して物流センタ３２のサーバ３７に接続して、そのサービス開始要求に対応するサービスモジュールをダウンロードし、ＲＯＭ１に追加記憶するとともに、そのサービスモジュールを起動する。なお、図１７においてはサービスモジュール２０１−１，２０１−２の数が２つであるが、特に２つに限定されるものではない。通信サービスとしては、例えば上述の複合型ナビ制御データから複数のナビ制御データの生成や、その他各種集配送情報サービスに対応して個別的に実行するサービスがある。
【０１６６】
なお、その他の動作については実施の形態１によるものと同様であるので、その説明を省略する。
【０１６７】
以上のように、この実施の形態７によれば、物流アプリケーションモジュール１１１が必要な通信サービスの提供要求をインタフェースモジュール１１２Ｂに供給し、インタフェースモジュール１１２Ｂがその提供要求を受け取るとその通信サービスを動的に開始するようにしたので、動作に必要なメモリ量を低減することができるという効果が得られる。
【０１６８】
また、インタフェースモジュール１１２Ｂがその提供要求に対応するサービスモジュールを有さない場合、そのサービスモジュールをサーバ３７から取得するようにしたので、各インタフェースモジュール１１２Ｂにすべての種類のサービスモジュールを備える必要がなくなり、動作に必要なメモリ量を低減することができるという効果が得られる。
【０１６９】
実施の形態８．
図１８はこの発明の実施の形態８によりナビゲーション装置の構成を階層的に示す図である。図１８において、１１２Ｃは実施の形態１におけるインタフェースモジュール１１２と同様に動作するとともに、物流センタ３２のサーバ３７に保存されている外部アプリケーションモジュール（付加アプリケーション処理部）のメニューをディスプレイ８に表示させ、ユーザにより選択された外部アプリケーションモジュールを物流センタ３２のサーバ３７からダウンロードするインタフェースモジュール（インタフェース処理部）である。
【０１７０】
１１３はインターネット３３などから音楽データをダウンロードし、その音楽データを再生してその音楽を図示せぬスピーカから出力させるＪａｖａアプリケーションである音楽再生アプリケーションモジュールである。
【０１７１】
なお、図１８におけるその他の構成要素および実施の形態８によるナビゲーション装置のハードウェア構成については実施の形態１によるものと同様であるので、その説明を省略する。
【０１７２】
次に動作について説明する。
図１９は実施の形態８によるナビゲーション装置のインタフェースモジュール１１２Ｃによるメニュー表示の一例を示す図である。
【０１７３】
インタフェースモジュール１１２Ｃは起動すると、実施の形態１におけるインタフェースモジュール１１２と同様に通信サービスを開始するとともに、例えば図１９に示すように画面右上部に「外部アプリダウンロード」ボタンを有するメニューを表示させる。
【０１７４】
ユーザの操作により「外部アプリダウンロード」ボタンが押されると、その情報がインタフェースモジュール１１２Ｃに供給され、インタフェースモジュール１１２ＣはＪａｖａ仮想マシン４４、ナビゲーションＯＳ４２およびデバイスドライバ４３を介して通信インタフェース１６および携帯電話機１５を制御し、携帯電話回線などの公衆回線３４および物流センタ３２のルータ３６を介して物流センタ３２のサーバ３７に接続して、サーバ３７に保存されている外部アプリケーションモジュール（今の場合、音楽再生アプリケーションモジュール１１３）をダウンロードし、その外部アプリケーションモジュールを選択するための項目（今の場合、項目「音楽再生」）を上述のメニューに追加する。
【０１７５】
そして、ユーザの操作によりその外部アプリケーションモジュールを選択するための項目がメニューから選択されると、その情報がインタフェースモジュール１１２Ｃに供給され、インタフェースモジュール１１２Ｃはその外部アプリケーションモジュールを起動する。そして起動した外部アプリケーションモジュールの機能メニューが図１９に示すように画面左側に表示される。例えば音楽再生アプリケーションモジュール１１３が起動した場合、図１９に示すような選曲のための「ＵＰ」ボタンおよび「ＤＯＷＮ」ボタン並びに曲名リストを有する選曲メニュー、他の曲をダウンロードするための項目「他曲ダウンロード」、選択された曲を再生するための項目「再生」および再生を停止するための項目「停止」を有するメニューが表示される。そしてユーザの操作によりいずれかの項目が選択されると、その情報がインタフェースモジュール１１２Ｃに供給され、インタフェースモジュール１１２Ｃがその項目に対応するサービスを実行する。
【０１７６】
なお、その他の動作については実施の形態１によるものと同様であるので、その説明を省略する。
【０１７７】
以上のように、この実施の形態８によれば、物流アプリケーションモジュール１１１だけではなく音楽再生アプリケーションモジュール１１３をサーバ３７からダウンロードし、他の付加サービスである音楽再生サービスを提供することができるという効果が得られる。
【０１７８】
実施の形態９．
なお、上記参考例１〜実施の形態８では、集配送業務に用いる物流アプリケーションモジュールとナビアプリケーションモジュールが連携動作する例について説明したが、物流アプリケーションの代わりに、タクシー配車支援アプリケーションモジュールとナビアプリケーションモジュールを連携させ、タクシーの配車支援システムを構築してもよい。
【０１７９】
実施の形態１０．
同様に、物流アプリケーションモジュールの代わりに、水道施設等の各施設点検支援アプリケーションモジュールとナビアプリケーションモジュールを連携させ、各種点検業務支援システムを構築してもよい。
【０１８０】
実施の形態１１．
同様に、物流アプリケーションモジュールの代わりに、消防活動支援アプリケーションモジュールとナビアプリケーションモジュールを連携させ、消防活動支援システムを構築してもよい。
【０１８１】
実施の形態１２．
同様に、物流アプリケーションモジュールの代わりに、警察活動支援アプリケーションモジュールとナビアプリケーションモジュールを連携させ、警察活動支援システムを構築してもよい。
【０１８２】
実施の形態１３．
なお、上記実施の形態６では物流アプリケーション（付加アプリケーション処理部）をダウンロードする例について説明したが、インタフェースモジュール（インタフェース処理部）をダウンロードして更新するようにしてもよい。
【０１８３】
【発明の効果】
以上のように、車載のハードウェアとハードウェアを制御する基本機能とを有するプラットフォーム部と、プラットフォーム部の基本機能を使用してナビゲーションサービスを提供するナビアプリケーション処理部と、プラットフォーム部の基本機能を使用して取得した情報に基づき、ナビゲーションサービスを利用した所定の付加サービスを提供する付加アプリケーション処理部と、所定の付加サービスを実行するために、付加アプリケーション処理部との間で通信するとともにナビアプリケーション処理部との間で通信するインタフェース処理部とを備え、前記インタフェース処理部は仮想プラットフォームにより実行され、前記プラットフォーム部に依存しないように構成したので、インタフェース処理部を用意すれば他のプラットフォームでも実機と同一環境で動作チェックを実行することができ、開発効率を向上させることができるという効果がある。
【０１８４】
この発明によれば、Ｊａｖａアプリケーションであるインタフェース処理部をＪａｖａ仮想マシンで実行するように構成したので、プラットフォームに依存せず、他のプラットフォームで稼働するＪａｖａ仮想マシン上でインタフェース処理部を開発することにより、開発効率を向上することができるという効果がある。
【０１８５】
この発明によれば、インタフェース処理部により複合型ナビ制御データから複数のナビ制御データを生成し、複数のナビ制御データをナビアプリケーション処理部に供給するように構成したので、付加アプリケーション処理部とインタフェース処理部との間でのナビ制御データの送受信回数を低減し、処理時間を短縮することができるという効果がある。
【０１８６】
この発明によれば、ソケット通信またはＪａｖａＲＭＩによりインタフェース処理部と付加アプリケーション処理部との間で通信するように構成したので、データの授受のために変数の値の監視をする必要がなくなり、インタフェース処理部の負荷を軽減することができるという効果がある。
【０１８７】
この発明によれば、ソケット通信によりインタフェース処理部とナビアプリケーション処理部との間で通信するように構成したので、データの授受のために変数の値の監視をする必要がなくなり、ナビアプリケーション処理部の負荷を軽減することができるという効果がある。
【０１８８】
この発明によれば、インタフェース処理部により、プラットフォーム部の基本機能を使用して外部装置から付加アプリケーション処理部を取得するように構成したので、各車両に対して個別的に付加アプリケーション処理部をインストールやバージョンアップする必要がなく作業効率を向上させることができるという効果がある。
【０１８９】
この発明によれば、付加アプリケーション処理部の使用する通信サービスを提供可能な場合にのみ、インタフェース処理部により、その付加アプリケーション処理部を外部装置から取得するように構成したので、インタフェース処理部が対応できない付加アプリケーション処理部は取得されず、装置が正常に動作しなくなるような不具合を予防することができるという効果がある。
【０１９０】
この発明によれば、インタフェース処理部が必要な通信サービスの提供要求を受け取ると、その通信サービスを動的に開始するように構成したので、動作に必要なメモリ量を低減することができるという効果がある。
【０１９１】
この発明によれば、提供要求に対応する通信サービスを実行するモジュールをインタフェース処理部に有さない場合、そのモジュールを外部装置から取得するように構成したので、各車両のインタフェース処理部にすべての種類のサービスモジュールを備える必要がなくなり、動作に必要なメモリ量を低減することができるという効果がある。
【０１９２】
この発明によれば、付加アプリケーション処理部により、プラットフォーム部の基本機能を使用して所定のセンタから取得した情報に基づき、ナビゲーションサービスを利用した集配送情報サービスを提供するように構成したので、例えばユーザによる確認作業を簡略化し、集配送業務の効率を向上させることができるという効果がある。
【図面の簡単な説明】
【図１】  この発明の参考例１によるナビゲーション装置のハードウェア構成を示すブロック図である。
【図２】  この発明の参考例１によるナビゲーション装置の構成を階層的に示す図である。
【図３】  物流センタから参考例１によるナビゲーション装置へ供給される車両運行指示に一例を示す図である。
【図４】  参考例１によるナビゲーション装置により提供される集配送情報サービスのメニュー表示の一例および次配送ルートの表示の一例を示す図である。
【図５】  参考例１によるナビゲーション装置により提供される集配送情報サービスのメニュー表示の一例および全配送ルートの表示の一例を示す図である。
【図６】  目的地である配送先までの経路探索を実行する際の動作について説明するフローチャートである。
【図７】  目的地である配送先への到達時刻を計算する際の動作について説明するフローチャートである。
【図８】  この発明の参考例２によるナビゲーション装置の構成を階層的に示す図である。
【図９】  この発明の実施の形態１によるナビゲーション装置の構成を階層的に示す図である。
【図１０】  目的地である配送先までの経路探索を実行する際の動作について説明するフローチャートである。
【図１１】  目的地である配送先への到達時刻を計算する際の動作について説明するフローチャートである。
【図１２】  この発明の実施の形態２によるナビゲーション装置の構成を階層的に示す図である。
【図１３】  この発明の実施の形態３によるナビゲーション装置の構成を階層的に示す図である。
【図１４】  この発明の実施の形態４によるナビゲーション装置の構成を階層的に示す図である。
【図１５】  項目「全配送ルート」が選択された場合の動作について説明するフローチャートである。
【図１６】  この発明の実施の形態６によりナビゲーション装置の構成を階層的に示す図である。
【図１７】  この発明の実施の形態７によりナビゲーション装置の構成を階層的に示す図である。
【図１８】  この発明の実施の形態８によりナビゲーション装置の構成を階層的に示す図である。
【図１９】  実施の形態８によるナビゲーション装置のインタフェースモジュールによるメニュー表示の一例を示す図である。
【図２０】  従来のナビゲーション装置のハードウェア構成を示すブロック図である。
【図２１】  従来のナビゲーション装置の構成を階層的に示す図である。
【図２２】  物流センタから従来のナビゲーション装置へ供給される車両運行指示に一例を示す図である。
【図２３】  従来のナビゲーション装置により提供される集配送情報サービスのメニュー表示の一例を示す図である。
【符号の説明】
１  ＲＯＭ（記録媒体）、３１  ナビゲーション装置、３７  サーバ（外部装置）、４１  ナビゲーションハードウェア（プラットフォーム部）、４２  ナビゲーションＯＳ（プラットフォーム部）、４３  デバイスドライバ（プラットフォーム部）、４４  Ｊａｖａ仮想マシン（仮想プラットフォーム）、４５，８１，１１１  物流アプリケーションモジュール（付加アプリケーション処理部）、４６，８２  ナビアプリケーションモジュール（ナビアプリケーション処理部）、１１２，１１２Ａ，１１２Ｂ，１１２Ｃ，１４１，１６１，１８１  インタフェースモジュール（インタフェース処理部）。
【図１】
0003746409.tif 000002
【図２】
0003746409.tif 000003
【図３】
0003746409.tif 000004
【図４】
0003746409.tif 000005
【図５】
0003746409.tif 000006
【図６】
0003746409.tif 000007
【図７】
0003746409.tif 000008
【図８】
0003746409.tif 000009
【図９】
0003746409.tif 000010
【図１０】
0003746409.tif 000011
【図１１】
0003746409.tif 000012
【図１２】
0003746409.tif 000013
【図１３】
0003746409.tif 000014
【図１４】
0003746409.tif 000015
【図１５】
0003746409.tif 000016
【図１６】
0003746409.tif 000017
【図１７】
0003746409.tif 000018
【図１８】
0003746409.tif 000019
【図１９】
0003746409.tif 000020
【図２０】
0003746409.tif 000021
【図２１】
0003746409.tif 000022
【図２２】
0003746409.tif 000023
【図２３】
0003746409.tif 000024