キャッシュ管理装置およびデータ配信システム
【課題】車車間通信により交換される、位置に関連した情報を効率よくキャッシュする。
【解決手段】各車両は、自車両の走行予定経路、キャッシュに保持しているデータの種類、位置情報を含む状態通知メッセージを周囲の車両に送信する。状態通知メッセージによって、自車両が保持しているデータのそれぞれについて、他のどの車両がそのデータを要求しているのかと、そのデータを提供可能であるかを判断可能である。要求者数の多いデータほど、また、提供者数の少ないデータほど優先的にキャッシュに格納されるようにキャッシュ管理を行う。他車両が自車両と同一方向に走行し、かつ、自車両が保持しているデータを保持している場合は、この他車両はこのデータの提供者であると判断する。他車両が自車両と反対方向に走行し、かつ、自車両が保持するデータを保持していない場合は、この他車両はこのデータの要求者であると判断する。
【解決手段】各車両は、自車両の走行予定経路、キャッシュに保持しているデータの種類、位置情報を含む状態通知メッセージを周囲の車両に送信する。状態通知メッセージによって、自車両が保持しているデータのそれぞれについて、他のどの車両がそのデータを要求しているのかと、そのデータを提供可能であるかを判断可能である。要求者数の多いデータほど、また、提供者数の少ないデータほど優先的にキャッシュに格納されるようにキャッシュ管理を行う。他車両が自車両と同一方向に走行し、かつ、自車両が保持しているデータを保持している場合は、この他車両はこのデータの提供者であると判断する。他車両が自車両と反対方向に走行し、かつ、自車両が保持するデータを保持していない場合は、この他車両はこのデータの要求者であると判断する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュ管理技術に関し、特に、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおけるキャッシュ管理技術に関する。
【背景技術】
【0002】
地図情報のように位置に関連するデータ(以下、「データ」と呼ぶ)を配信するサービス(以下、「位置情報サービス」と呼ぶ)が普及しつつある。これに伴い、データ提供元である、クライアント・サーバ型システムにおけるサーバ装置や、インフラ協調型システムにおける路側基地局(以下、これらを総称してサーバ装置と呼ぶ)に必要とされる通信帯域は年々増加する傾向にある。
【0003】
一般に、サービス提供者が通信業者に支払う通信料金は従量課金制である場合が多く、必要とされる通信帯域が大きくなりすぎると、サービス提供のコストが増大してしまう。または、通信帯域の逼迫によりサービス品質に支障が生じてしまう。したがって、クライアント(車両)とサーバ装置との間の通信帯域を削減することが望まれる。
【0004】
特許文献1では、複数の車載機が、サーバにアクセスしてデータの異なる部分を分担して取得し、取得した部分データを車車間通信により相互に交換することで完全なデータを形成する方法が開示されている。この方法では、直接通信可能な状態にある車両でしかデータの交換ができず、サーバの通信帯域の削減効果は限定的である。
【0005】
上記の問題を考慮してマルチホップ型のピア・ツー・ピア通信を行い、直接通信できない車載機間でデータの交換を行う方法が考えられる。しかし、この方法を単純に適用した場合、データを複数の車載機を経由してルーティングすることになり、通信経路上の車載機の通信帯域をより多く消費してしまう。この方法では、車載機の数やホップ数が増えた場合に、通信量が許容範囲を超えてしまうため、サーバの通信帯域の削減効果は限定的である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−274415号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記を考慮して、車載機が取得したデータをストレージに保存しておき、移動先で、そのデータを将来必要とすると予想される車載機に配信する方法が考えられる。しかしこの方法は、車載機のストレージに保持できるデータ量の限界が問題となる。3次元地図情報などのように巨大なデータを扱う場合、保持しておくデータを適切に取捨選択しなければ、ストレージがあふれてしまう。
【0008】
このように、車載機がデータを保持してサーバ装置に代わって他の車両に配信する場合は、車載機のストレージ容量は有限なので、より重要なデータを優先的に保持することが求められる。
【0009】
本発明は、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおいて、他の車両に配信するためにデータを車両内にキャッシュする際にキャッシュヒット率を向上させるようにキャッシュ管理することを目的とする。
【課題を解決するための手段】
【0010】
上記の目的を達成するために、本発明に係るキャッシュ管理装置は、周囲の車両から送信される走行予定経路情報と保持データ情報を基に、自車両が保持しているデータのそれぞれについてデータ要求者数とデータ提供者数を算出し、データ要求者数が多いデータほど、また、データ提供者が少ないデータほど優先的にキャッシュメモリに保持する。
【0011】
より具体的には、本発明に係るキャッシュ管理装置は、複数の車両とサーバ装置から構成され、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおける、車両に搭載されたキャッシュ管理装置であって、キャッシュメモリと、キャッシュ管理手段と、状態通知手段と、状態取得手段と、データ取得手段と、データ送信手段を備える。
【0012】
状態通知手段は、自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する。すなわち、状態通知手段は、自車両が今後どのような経路を走行するかという情報と、自車両がどのようなデータを保持しているかという情報を、周囲の車両に対して送信する。状態通知メッセージには位置情報や走行速度など、車両の走行に関するその他の情報を含めることも好ましい。
【0013】
状態取得手段は、周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する。すなわち、状態取得手段によって、周囲の車両が今後どのような経路を走行するかということと、どのようなデータを保持しているかということを認識できる。
【0014】
データ取得手段は、自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得する。また、データ送信手段は、他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信する。
【0015】
ここで、本発明の状態取得手段は、他車両から受信した状態通知に基づいて、以下の二つの判断を行う。
(1)他車両(状態通知メッセージの送信元車両)と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータをこの他車両も保持している場合は、この他車両をこのデータのデータ提供者であると判断する。
(2)他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータをこの他車両が保持していない場合は、この他車両をこのデータのデータ要求者であると判断する。
この処理を周囲の車両から送信される状態通知メッセージの全てに対して行うことで、自車両が保持しているデータのそれぞれについて、データ提供者の数とデータ要求者の数を把握することができる。
【0016】
そして、本発明のキャッシュ管理手段は、キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する。
【0017】
これにより、各車両のキャッシュメモリには、データ要求者の数が多いデータほど、また、データ提供者の数が少ないデータほど優先的に格納されることになる。したがって、キャッシュヒット率を向上させることができる。
【0018】
上記の状態通知メッセージは、送信元車両の走行予定経路に沿ってルーティングされることが好ましい。なぜならば、データ要求者やデータ提供者に該当するかは、走行予定経路に重複があるか否かによって判断されるためである。走行予定経路から大きくずれる場所に位置する車両がデータ要求者やデータ提供者に該当する可能性は低く、状態通知メッセージをその位置に送信しても無駄に通信帯域が消費されるだけである。走行予定経路に沿ってルーティングすることで、通信帯域の浪費を防止できる。ただし、現時点では走行予定経路に位置しない車両と将来的に走行経路が重複することはあるので、走行予定経路とその周辺の範囲に状態通知メッセージが送信されるようにしても良い。
【0019】
走行予定経路に沿ってルーティングさせるために、送信元の車両の状態通知手段が状態通知メッセージをブロードキャスト送信し、以下の基準で受信車両が転送を行うことが好ましい。すなわち状態通知メッセージの受信車両の状態取得手段は、自車両がこの状態通知メッセージに含まれる走行予定経路上に位置し、かつ、走行予定経路上流の車両から状態通知メッセージを受信した場合に、受信した状態通知メッセージを転送すればよい。なお、通信帯域の逼迫を避けるために、一度受信したことのある状態通知メッセージは転送しないとか、転送回数に上限を設けるとか、送信元車両から所定の距離内の場合のみ転送するとかという基準を設けることも好ましい。
【0020】
また、走行予定経路に沿ってルーティングさせるための別の方法として、送信元の車両の状態通知手段が、自車両の走行予定経路上の車両を中継車両として指定して状態通知メッセージを送信することも好ましい。
【0021】
なお、状態通知メッセージを走行予定経路にそってルーティングする場合は、状態通知メッセージは走行予定経路上流(後方)に対しては伝わらないことになる。したがって、同じ走行予定経路を走行中の二台の車両が同じデータを保持している場合に、下流の車両は上流の車両がこのデータのデータ提供者であることが判断できるが、上流の車両は下流の車両がこのデータのデータ提供者であると判断できないことになってしまう。これに対処するために、状態通知メッセージを受信し、送信元車両が自車両の保持するいずれかのデータについてのデータ提供者であると判断したときに、自車両がこのデータのデータ提供者であることを通知する重複データ保持通知を送信元の車両に対して送信することが好ましい。
【0022】
また、状態取得手段は、状態通知メッセージ送信元の他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持し、かつ当該他車両の走行予定経路近傍のデータであって、当該他車両が保持していないデータについて、当該他車両を当該データのデータ要求者であると判断することが好ましい。すなわち、自車両が保持している全てのデータを対象としてデータ要求者であるか否かを判断するのではなく、自車両が保持しかつ相手車両の走行予定経路近傍のデータのみを対象としてデータ要求者であるか否かを判断する。走行予定経路近傍に関連づけられていないデータを要求することは少ないと考えられるので、これにより、さらに精度の良いキャッシュ管理が可能となる。
【0023】
また、キャッシュ管理手段は、データ要求者数およびデータ提供者数を利用せずに求めた指標と、データ要求者数およびデータ提供者数を利用して求めた指標の両方を用いて、削除するデータを決定することも好ましい。「データ要求者数およびデータ提供者数を利用せずに求めた指標」には、LRU(Least Recently Used)、LFU(Least Frequently Used)、ARC(Adaptive Replacement Cache)などの従来のアルゴリズムにしたがって求めた指標を採用することができる。
【0024】
本発明は、上記手段の少なくとも一部を含むキャッシュ管理装置として捉えることができる。また、本発明は、車載端末においてこれらの処理を行うキャッシュ管理方法、さらには、これらの方法を実現するためのプログラムとして捉えることもできる。また、本発明は、上記キャッシュ管理装置を備える車両と位置に関連するデータを配信するサーバ装置とから構成されるデータ配信システムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0025】
本発明によれば、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおいて、他の車両に配信するためにデータを車両内のキャッシュを有効活用でき、サーバ装置との間の通信を削減可能となる。
【図面の簡単な説明】
【0026】
【図1】本実施形態に係るデータ配信システムの概要図。
【図2】本実施形態に係る車載端末のハードウェア構成図。
【図3】本実施形態に係る車載端末の機能ブロック図。
【図4】(A)経路情報のデータ形式。(B)保持データ情報のデータ形式。(C)近傍車両管理テーブルのテーブルフォーマット。(D)データ要求者管理テーブルのテーブルフォーマット。(E)データ提供者管理テーブルのテーブルフォーマット。
【図5】上位プログラムからデータ要求を受け付けたときに実行される、データ取得処理のフローチャート。
【図6】定期的あるいは不定期に実行される状態通知メッセージ送信処理のフローチャート。
【図7】状態通知メッセージのフォーマット。
【図8】状態通知メッセージを受信したときに実行される処理のフローチャート。
【図9】データ提供者管理テーブル更新処理(図8のS808)の詳細なフローチャート。
【図10】データ要求者管理テーブル更新処理(図8のS812)の詳細なフローチャート。
【図11】キャッシュ管理処理(図5のS516)のフローチャート。
【図12】本実施形態の動作例説明の前提となる状況を説明する図。
【図13】図12に示す状況での状態通知メッセージを示す図。
【図14】図12に示す状況で車両C1によって作成される(A)データ要求者管理テーブルと(B)データ提供者管理テーブル。(C)はデータ要求者数とデータ提供者数を考慮したキャッシュの削除優先度の値を示す。
【発明を実施するための形態】
【0027】
<概要>
図1は本実施形態に係るデータ配信システムの概要を示す図である。データ配信システムは、複数の車両100と、データを配信するサーバ装置200とから構成される。サーバ装置200は、車両100に送信するためのデータ201を保持しており、車両100からの要求に応じてデータを車両に配信する。ここで、データは位置に関連したデータであり、たとえば、3次元地図データ、店舗情報、広告情報などであるが、データの内容は本発明では限定されない。
【0028】
車両100は基本的にサーバ装置200からデータを取得するが、取得したデータをキャッシュメモリに保持しておき、自車が必要とするデータを周囲の車両が保持していれば、サーバ装置200からではなく、周囲の車両からこのデータを取得する。これによって、サーバの通信帯域を削減することができる。
【0029】
なお、図1では車両100とサーバ装置200が無線通信を直接行うように記載しているが、サーバ装置200と通信可能に接続された路側通信設備を設けて、車両はこの路側通信設備からデータを取得する構成としても良い。また、車両100間の通信はマルチホップの通信を行うものとするが、データの取得はシングルホップあるいは限られたホップ数の通信に限定して車車間通信による通信帯域の逼迫を避けることが好ましい。
【0030】
このような仕組みにおいて、車両内のキャッシュを有効に活用するためには適切なキャッシュアルゴリズムの採用が必須である。基本的には、他の車両から必要とされるデータを優先的に保持しておけばよく、また、自車両のみが提供できるデータを優先的に保持しておけばよい。本実施形態においては、各車両が、自車両の走行予定経路と、自車両がどのデータをキャッシュしているかという情報を周囲の車両に対して通知する。これにより、各車両は、周囲の車両がどのような経路を走行し、かつ、どのようなデータを保持しているかを把握することができる。そして、このように把握された状況に基づいて、自車両が保持しているデータのそれぞれについて、このデータを要求している車両の数、および、このデータを提供できる他の車両の数を算出し、これに基づいてキャッシュ管理を行う。
【0031】
<構成>
図2に車両100に搭載される車載端末のハードウェア構成を示す。また、図3に車載端末の機能構成を示す。図2に示すように、車載端末は、CPU1、位置検出装置群2、表示装置7、音声出力装置8、入力装置9、車車間通信装置13、路車間通信装置14などを含んで構成される。これらの装置は車内ネットワークやシステムバスなどを介してCPU1と接続されている。
【0032】
位置検出装置群2は、衛星などからの電波に基づいて車両の位置を検出するGPS(Global Positioning System)受信機3、車両の回転角速度を検出するジャイロセンサ4、
車両の向きを取得するための地磁気センサ5,車両の走行距離を検出する距離センサ6を有している。これらのセンサから取得される情報や、地図情報とのマッチング(マップマッチング)などにより自車両の位置を検出できる。
【0033】
表示装置7は液晶ディスプレイなどであり、音声出力装置8はスピーカーである。入力装置9は、ユーザからの指示を入力するためのものであり、ボタンやスイッチあるいは、キーボードやマウスなどを採用可能である。また、表示装置7と入力装置9を一体化したタッチパネルを採用してもかまわない。また、音声入力装置を採用しても良い。
【0034】
車車間通信装置13は他の車両(の車車間通信装置)と無線通信を行うための装置である。無線通信方式には、例えば、無線LAN(IEEE802.11a,b,g,n)、DSRC(Dedicated Short Range Communication)、UWB、ミリ波通信などを採用可
能である。路車間通信装置14は、サーバ装置と無線通信を行うための装置である。無線通信方式には、WiMAXやLTEを採用可能である。なお、車両とサーバ装置が路側通信設備を介して通信を行う場合には、その他の狭域な無線通信方式を採用しても良い。
【0035】
CPU1は、ROM10や補助記憶装置12などに格納されたOSプログラムやアプリケーションプログラムをRAM11上に展開して実行することで、図3に示すような種々の機能を実現する。
【0036】
キャッシュ管理機能20は、ナビゲーションプログラム30などの上位プログラムからのデータ要求を受けて、キャッシュメモリ25またはサーバ装置や他の車両からデータを取得して上位プログラムに返す機能を有する。ナビゲーションプログラム30は、位置検出装置群2による自車両の位置検出や経路探索などの周知の処理を行う。キャッシュ管理
機能20は、次のような機能部から構成される。
【0037】
状態記憶部21は、自車両および周囲の車両に関する状態を記憶する。具体的には、各車両について、今後どのような経路を走行するかという経路情報、どのようなデータを保持しているかという保持データ情報、および、どの位置にいるのかという位置情報を格納する。なお、自車両の経路情報および位置情報は、例えば、ナビゲーションプログラム30から取得することができる。ナビゲーションプログラムでは、走行経路の探索や設定がなされるのでこの経路をキャッシュ管理機能20へ通知すればよい。また、自車両がどのようなデータを保持しているかは、キャッシュ管理部24から取得できる。
【0038】
経路情報は、図4Aに示すように、ノードID(交差点ID)のリストとして表現される。経路情報は、リンクIDのリストとして表現されてもかまわない。
【0039】
サーバ装置から配信されるデータには、それぞれのデータを識別可能なデータIDが付与される。このデータIDから、そのデータがどの位置に関連づけられているか判断可能とすることが好ましい。例えば、データIDの一部に位置を示す識別子を含むことが好ましい(データID=エリアID+識別番号)。保持データ情報は、図4Bに示すように、各車両がキャッシュメモリ内に保持しているデータのデータIDのリストとして表現される。
【0040】
状態記憶部21には、図4Cに示すような、周囲の車両を管理するための近傍車両管理テーブルが格納される。近傍車載機管理テーブルには、車両ID(または車載機ID)、保持データ情報、経路情報、位置情報が格納される。
【0041】
状態記憶部21には、さらに、自車両が有する各データについて、そのデータを要求していると考えられる車両を格納したデータ要求者管理テーブル(図4D)、および、そのデータを提供可能と考えられる車両を格納したデータ提供者管理テーブル(図4E)も格納される。これらのテーブルは、自車両が有するデータごとに、車両IDのリストとして構成される。これらのテーブルについての詳細は後述する。
【0042】
状態通知部22は、定期的あるいは不定期に自車両の状態(経路情報、保持データ情報、位置情報など)を周囲の車両に通知するための機能部である。なお、状態情報として、走行速度やその他の情報を含めることも好ましい。状態通知部22は、車車間通信装置13から状態通知メッセージを送信することで、周囲の車両へ自車両の状態変更を通知する。この状態通知メッセージの伝播経路は、送信元車両の経路に沿うことが好ましい。そのために、状態通部22が送信経路または中継車両を指定して状態通知メッセージを送信しても良いし、状態通知メッセージの受信車両がメッセージ内に格納された経路情報と自車の位置を基に自律的に中継するか否かを決定しても良い。
【0043】
状態取得部23は、周囲の車両から送信される状態通知メッセージを車車間通信装置13によって受信して、状態記憶部21を更新するための機能部である。状態取得部23が周囲の車両から状態通知メッセージを受信して状態記憶部21を更新することで、状態記憶部21の内容が最新に保たれる。状態取得部23は、受信した状態通知メッセージに自車両が中継車両として指定されていたり、状態通知メッセージに含まれる経路情報と自車両の位置を比較により必要ありと判断できたりする場合は、この状態通知メッセージの転送を行う。また、状態通知メッセージが走行予定経路(以下単に、走行経路と称する)に沿ってルーティングされると、状態通知メッセージによる情報は走行経路下流方向にのみ伝播するので、自車両が送信元車両の有するデータのデータ提供者である場合には、このことを別途通知する。
【0044】
キャッシュ管理部24は、キャッシュメモリ25を管理する機能部であり、キャッシュメモリにデータを格納するための空き容量がないときに、いずれのデータをキャッシュメモリから削除するか決定する。キャッシュヒット率を高めるためには、将来使われる可能性の高いデータをキャッシュメモリに残すことが必要である。キャッシュ管理部24は、データ要求者の数が多いデータほど、また、データ提供者の数が少ないデータほど優先してキャッシュメモリ内に残す制御を行う。また、データ要求者およびデータ提供者の数だけを考慮するのではなく、LRUやLFUなどの従来のキャッシュアルゴリズムによる削除優先度も考慮して、いずれのデータをキャッシュメモリから削除するか決定する。
【0045】
データ取得部26は、上位プログラム30からデータの要求を受け付け、要求されたデータを取得して返す機能部である。データ取得部26は、自車両のキャッシュメモリ内に要求されたデータがあればキャッシュメモリから取得して上位プログラムに渡す。一方、キャッシュメモリ内に要求されたデータがなければ、可能であれば車車間通信によって他の車両から、それもできなければ路車間通信によってサーバ装置からデータを取得して上位プログラムに渡す。
【0046】
データ送信部27は、他の車両からデータの要求を受け付けて、キャッシュメモリ25内にそのデータがあれば、要求元の車両にデータを送信する。キャッシュメモリ25内に要求されたデータがない場合には、何も行わないか、データを保持していないことを通知する。
【0047】
<処理詳細>
以下、各機能部が行う処理の内容について、より詳細に説明する。
【0048】
[データ取得処理]
まず図5を参照して、ナビゲーションプログラムなどの上位プログラムからデータ取得要求を受け付けたときの処理を説明する。データ取得部26が上位プログラム30からデータ取得要求を受け付ける(S502)と、以下の処理が行われる。データ取得部26は、要求されたデータがキャッシュメモリ25内に存在するか否かを、キャッシュ管理部24に問い合わせる(S504)。要求されたデータがキャッシュメモリ25内に存在する場合(S504−YES)には、キャッシュメモリからデータを取得する(S506)。
【0049】
一方、要求されたデータがキャッシュメモリ25内に存在しない場合(S504−NO)には、このデータを提供可能な車両が周囲に存在するか判定する(S508)。この判定は、近傍車両管理テーブルを参照することで判断できる。たとえば十分に近い位置に存在する車両(Nホップ以内(Nは設計パラメータ)で通信可能な車両)がデータを持っている場合に、この車両が要求されたデータを提供可能と判断する。周囲にデータの提供者が存在する場合(S508−YES)は、車車間通信によってこの車両からデータを取得する(S510)。周囲に要求されたデータを提供可能な車両が存在しない(S508−NO)か、周囲の車両にデータを要求したが所定時間内にデータが得られない場合(S512−NO)は、路車間通信によってサーバ装置200からデータを取得する(S514)。
【0050】
このようにして、周囲の車両またはサーバ装置からキャッシュメモリ内に存在しないデータを取得したら、取得したデータをキャッシュメモリに格納するキャッシュ管理処理を行う(S516)。ここで、キャッシュメモリに空き容量が無い場合には、参照される可能性が最も低いと考えられるデータをキャッシュメモリから削除する。キャッシュの削除アルゴリズムについては、その判断の基となる情報の取得方法を説明した後に改めて説明する。
【0051】
データ取得部26は、キャッシュメモリ、他の車両またはサーバ装置のいずれかから要求されたデータを取得し、取得したデータを要求元の上位プログラムへ渡す(S518)。
【0052】
[状態通知送信処理]
次に図6を参照して、状態通知部22が行う状態通知メッセージの送信処理について説明する。この処理は定期的あるいは不定期に実行される。たとえば、100ミリ秒おきに実行するようにしても良いし、あるいは、自車両の状態(経路情報、保持データ情報、位置など)に変更があったときに実行するようにしても良い。
【0053】
状態通知部22は、キャッシュ内に格納されているデータのデータIDを取得する(S602)。本実施形態では、状態通知部22が状態記憶部21に格納されている自車両の保持データ情報を参照することで、キャッシュ内のデータの一覧を取得する。キャッシュ管理部24がキャッシュに変更がある度に状態記憶部21を更新する構成とすれば、状態記憶部21内の自車両の保持データ情報を参照することでキャッシュメモリ内に格納されているデータの一覧を取得できる。もちろん、状態通知部22がキャッシュ管理部24に問い合わせてデータの一覧を取得しても良い。
【0054】
状態通知部22は、自車両の走行予定経路および位置情報を取得する(S604)。これらの情報はナビゲーションプログラムが保持しているので、ここから取得すれば良い。
【0055】
状態通知部22は、送信者ID(自車両の車載機ID)、経路情報、保持データ情報、および位置情報を含む状態通知パケット(図7)を作成し(S606)、車車間通信装置13から送信する(S608)。状態通知パケットは、図7に示すように、送信者ID(車両ID)、経路情報、保持データ情報、および位置情報が含まれる。また、中継車両の指定やフラッディングを停止させる条件など、ルーティングに関する情報も含まれる。
【0056】
本実施形態では、通信を中継する車載機(以下、中継者と呼ぶ)を経由することで、マルチホップ通信によって状態通知メッセージを伝播させる。この際、この状態通知メッセージは、自車両の走行経路にしたがって伝播するようにルーティングされる。すなわち、走行経路の上流から下流に向かって、状態通知メッセージを伝播させる。たとえば、自車両の走行経路上に位置する車両を中継者として選択して伝播させるか、フラッディングにより伝播させればよい。フラッディングを採用する場合には、受信者両側で自律的に中継するか否かを判断することで、走行経路に沿って伝播するようにする。
【0057】
[状態通知受信時処理]
次に図8を参照して、状態取得部23が行う、状態通知メッセージ受信時の処理について説明する。この処理は、状態取得部が他の車両から状態通知メッセージを受信するたびに実行される。なお、この項において、状態通知メッセージの送信元車両のことを「相手車両」と記載する。
【0058】
相手車両から状態通知メッセージを受信する(S802)と、状態記憶部21内の近傍車両管理テーブルの相手車両に関するエントリを、この状態通知メッセージに含まれる情報で更新する(S804)。
【0059】
状態取得部23は、状態通知メッセージに含まれる相手車両の走行経路と、自車両の走行経路が、同一方向であり、かつ、十分な重なりがあるか判断する(S806)。ここで、「十分な重なり」というのは、今後の互いの位置関係の類推から、すれ違う他の車載機の集合が近いと予測できることを意味する。すれ違う他車両の集合は、両車両の、走行経路、現在位置、進行速度などから判断できる。簡単な実装では、両車両の走行経路に所定
距離以上の重複があり、かつ、互いの距離が所定値以内である場合に、「走行経路が十分に重なっている」と判断する。
【0060】
状態通知メッセージの送信元車両(相手車両)と走行経路が同一方向であり、かつ、十分な重なりがある場合(S806−YES)には、すれ違う他車両に対して、相手車両と自車両の両方がデータを提供可能である。したがって、相手車両が自車両の保持するデータを保持していれば、相手信元車両をこのデータの提供者であると判断できる。状況取得部23は、このようにして状態記憶部21内のデータ提供者管理テーブルを更新する(S808)。
【0061】
図9に、上記のデータ提供者管理テーブルの更新処理の詳細を示す。まず、データ提供者管理テーブルから、相手車両に関するエントリを削除する(S902)。そして、自車両が保持しているデータのそれぞれについて、以下の処理(S906−S908)を繰り返す。まず、相手車両がこのデータを保持している、すなわち、状態更新通知メッセージ内のこのデータのデータIDが存在するか判断する(S906)。そして、この条件に該当する場合には、この送信車両を当該データの提供者であるとしてデータ提供者管理テーブルを更新する(S908)。以上の処理によって、データ提供者管理テーブルの更新が完了する。なお、ここでは相手車両に関するエントリを全削除してから再度追加する手法を採用したが、もちろん、それ以外のアルゴリズムによってテーブルの更新を行ってもかまわない。
【0062】
図8のフローチャートの説明に戻る。状態通知メッセージの送信元車両(相手車両)と、走行経路が同一方向ではない、または、走行経路に十分な重なりがない場合(S806−NO)には、走行経路が逆方向で、かつ、走行経路に十分な重なりがあるか判断する(S810)。ここでの「十分な重なり」というのは、今後の互いの位置関係の類推から、両車両が実際にすれ違う可能性が高いと予測できることを意味する。走行経路が重なっていても実際にはすれ違わないことは想定できるため、このような判断を行っている。簡単な実装では、両車両の走行経路に所定距離以上の重複があり、かつ、互いの距離が所定値以内である場合に「走行経路が十分に重なっている」と判断する。この判断基準はステップS806の基準と同様のものであるが、両者の判断基準は必ずしも同じにする必要はなく、それぞれ異なる判断基準で「走行経路が十分に重なっている」と判断してかまわない。
【0063】
状態通知メッセージの相手車両と走行経路が逆方向であり、かつ、十分な重なりがある場合(S810−YES)には、自車両から相手車両に対してデータの提供が可能である。したがって、相手車両が自車両の保持するデータを必要とするのであれば、相手車両をこのデータの要求者であると判断できる。状況取得部23は、このようにして状態記憶部21内のデータ要求者管理テーブルを更新する(S812)。
【0064】
図10に、上記のデータ要求者管理テーブルの更新処理の詳細を示す。データ要求者管理テーブルから、相手車両に関するエントリを削除する(S1002)。各車両は、走行経路近傍の情報を必要とすると考えられる。そこで、自車両が保持するデータのうち、相手車両の走行経路近傍に関連づけられたデータであり、かつ、相手車両が保持していないデータが、相手車両から要求されると考えることができる。そこで、相手車両の走行予定経路のそれぞれの位置ついて、以下の処理(S1006−S1010)を繰り返し実行する。まず、自車両がこの位置に関連するデータを保持しているか判断し(S1006)、自車両が保持している場合には、相手車両が保持しているか判断する(S1008)。相手車両が保持していない場合には、相手車両がこのデータの要求者であるとして、データ要求者管理テーブルを更新する(S1010)。なお、図10のフローチャートでは相手車両の走行経路内の位置ごとにループ処理を実行しているが、自車両が保持するデータご
とに、これが相手車両の走行経路の近傍に位置し、かつ、相手車両が保持していないことを確認してもかまわない。
【0065】
なお、相手車両がどのデータを実際に必要とするかを正確に判断するのは困難である。上記の手法も完全なものではなく、他の方法によって相手車両がどのようなデータを必要とするか判断することも考えられる。一つの方法としては、状態通知メッセージの送信元車両が、メッセージ内にどのようなデータが必要となるかを明示的に記載する方法である。この方法によれば、相手車両が必要としないデータについて相手車両をデータ要求者と判断することがなくなる。ただし、各車両が今後どのようなデータが必要になるかを事前にわかる必要がある。別の方法としては、相手車両の走行経路にかかわらず、相手車両が保持していないデータは全て相手車両が必要とすると見なすことが考えられる。この方法は、実際には必要とされないデータについて相手車両をデータ要求者であると判断してしまうが、処理が簡単であるという利点がある。
【0066】
図8のフローチャートの説明に戻る。自車両の走行経路と状態通知メッセージ送信元車両の走行経路とが同一方向に重複し、かつ、重複するデータを保持している場合(S814−YES)に、自車両が保持する重複するデータ保持していることを示す重複データ保持通知を送信元車両に送信する(S816)。すなわち、相手車両がデータ提供者であると判断された場合に、自車両もそのデータを提供可能であることを相手車両に通知する。この通知には、走行経路、保持データ情報、位置情報などの情報、すなわち、状態通知メッセージと同様の情報を含めることも好ましい。
【0067】
ステップS814,S816の処理は、自車両がデータ提供者に該当することを相手車両に通知するためのものである。状態通知メッセージが走行経路に沿ってルーティングされると、走行経路上流側の車両がデータ提供者に該当することを判断できても、走行経路下流の車両がデータ提供者に該当することが判断できない。そこで、走行経路下流の車両から上流の車両に対して、重複するデータについてデータ提供可能である旨を通知することとしている。なお、「データ提供者」の判断基準から、車両Aが車両Bの保持するデータのデータ提供者であれば、車両Aにとっても車両Bがこのデータのデータ提供者となる。下流側車両からの重複データ保持通知を受信した上流側車両は、下流側車両を重複しているデータのデータ提供者であるとして、データ提供者管理テーブルを更新する。
【0068】
なお、ステップS816において、下流側車両は状態通知メッセージを上流側車両に送信しても良い。すなわち、下流側車両がどのデータのデータ提供者であるかを上流側車両が判断するようにしても良い。この場合は、下流側車両からの状態通知メッセージを受信した上流側車両は、図9に示すフローチャートを実行してデータ提供者管理テーブルを更新する。
【0069】
また、ステップS814,S816の処理は状態通知メッセージを走行経路の下流方向にルーティングさせる場合に必要となる処理であるので、状態通知メッセージを特定方向にルーティングさせない場合には不要な処理である。
【0070】
ステップS818では、状態通知メッセージの転送が必要であるか判断し、必要であればその転送を行う。たとえば、状態通知メッセージに中継車両(のID)が格納されているのであれば、自車両が中継車両として指定されている場合に、状態通知メッセージの転送を行う。状態通知メッセージをフラッディング方式で送信する場合には、自車両が状態通知メッセージに格納される走行経路の下流方向に位置する場合に転送すればよい。なお、フラッディングによる不要な通信を防止するために、一度受信したことのある状態通知メッセージは転送しない、一つのメッセージに対して転送回数の上限、配信距離(送信元車両との直線距離や経路に沿った距離)の上限や、交差点ノードの経由数の上限などを設
けることが好ましい。
【0071】
[キャッシュ管理処理]
ここまで説明したように、状態通知メッセージを車両間で交換することで、周囲の車両に関する情報(図4Cの近傍車両管理テーブル)、自車両が保持するデータについてのデータ要求者(図4Dのデータ要求者管理テーブル)およびデータ提供者の情報(図4Eのデータ提供者管理テーブル)を常に把握できる。キャッシュ管理部24は、これらの情報を用いて、キャッシュメモリ25から破棄するデータを決定する(図5のS516)。
【0072】
図11にキャッシュ管理部24が行うキャッシュ管理処理のフローチャートを示す。この処理は、データ取得部26が新しいデータを外部から取得するたびに実行される。キャッシュ管理部24は、新たなデータが取得されると、保持データがキャッシュメモリ25のキャッシュサイズの上限を超えるか判断する(S1102)。新しいデータを格納してもキャッシュサイズを超えない場合(S1102−NO)は、そのデータをキャッシュメモリ25に格納する(S1106)。
【0073】
一方、保持データの合計がキャッシュサイズを超える場合(S1102−YES)は、いずれかのデータをキャッシュメモリ25から削除する。キャッシュメモリを有効利用するには今後参照されないと予想されるデータを削除することが好ましい。本実施形態では、データ要求者数が多いデータほど、また、データ提供者数が少ないデータほど優先的にキャッシュメモリに保持するようにする。データ要求者数が多いデータほど、他の車両からデータの要求を受け付ける可能性が高いためである。また、データ提供者が多ければ自車両がキャッシュメモリから削除しても他の提供者が提供可能と考えられるためである。
【0074】
本実施形態においては、キャッシュ管理部24は、データ要求者数とデータ提供者数を考慮した削除優先度と、既存のLRU(Least Recently Used)アルゴリズムによる削除
優先度と組み合わせて、キャッシュメモリから削除するデータを決定する。すなわち、下記の式1で表される削除優先度指標の値が最も大きいデータを、キャッシュメモリから削除して(S1104)、新たなデータをキャッシュメモリに格納する(S1106)。
【数1】
ここで、LはLRUにおける削除優先度(最終利用時刻から現在までの経過時間)、Nrはデータ要求者数、Npはデータ提供者数を表す。αは0≦α≦1で与えられる重み付け係数である。
【0075】
重み付け係数を変えることで、LRUの振る舞いと、データ要求者数やデータ提供者数に対する考慮の度合いを調整できる。α=0とおくことで通常のLRUの振る舞いとなり、α=1とおくことでデータ要求者数やデータ提供者数のみを考慮する振る舞いとなる。
【0076】
なお、キャッシュアルゴリズムは上記の式以外にも種々の方法が採用可能である。基本的には、他の条件が同じであるときに、データ要求者数が多いほど削除優先度が低くなり、データ提供者数が少ないほど削除優先度が低くなるようなアルゴリズムであれば、キャッシュメモリを有効活用できると考えられる。たとえば、以下の式2のようにデータ要求者数とデータ提供者数を独立に評価した削除優先度を採用することが考えられる。
【数2】
ここで、0≦α,β,γ≦1かつα+β+γ=1である。
【0077】
またここでは既存のキャッシュアルゴリズムとしてLRUを例に説明したが、LFU(Least Frequently Used)やARC(Adaptive Replacement Cache)などの任意のキャッ
シュアルゴリズムを採用して良い。
【0078】
<動作例>
図12,13を参照して、具体的な状況での動作例を説明する。図12は、ここでの説明における状況を説明する図である。図12において、Niは交差点ノードIDを表し、Ciは車両ID、DiはデータIDを表す。各車両Ciは図に示す位置に存在し、点線がその走行予定経路である。データDiは図に示す位置に関連づけられているものとする。
【0079】
図13は、各車両の現在の状態(走行経路、保持データ、位置情報)を示している。すなわち、図13に示した情報は、各車両から送信される状態通知メッセージに含まれる情報である。車両C1の走行予定経路は、図12に示されるように、(N0,N2,N3,N4,N5)である。また、車両C1は、データD1,D2,D3,D4をキャッシュメモリ内に保持しているものとする。また車両C1の位置は緯度X1、経度Y1とする。他の車両C2〜C5についても、図13に示すような走行経路、保持データ、位置情報を持つものとする。
【0080】
車両C1から送信される状態通知メッセージは、車両C1の走行経路N0,N2,N3,N4,N5に沿ってルーティングされる。例えば、車両C1が、車両C2およびC3を中継車両として送信しても良いし、車両C1はブロードキャスト送信し車両C2,C3が自律的に転送するようにしても良い。
【0081】
車両C1から送信される状態通知メッセージを受信した各車両では以下の判断がなされる。車両C2,C3では、走行経路が同一方向であり十分な重なりがあると判断され(図8のステップS806−YES)、データ提供者管理テーブル更新処理が実行される。車両C4では、走行経路が逆方向であり十分な重なりがあると判断され(ステップS810−YES)、データ要求者管理テーブル更新処理が実行される。車両C5では、走行経路に十分な重なりがないと判断され(S806−NOかつS810−NO)、管理テーブルの更新処理は行われない。
【0082】
車両C2は、車両C1から状態通知メッセージを受信したときにデータ提供者管理テーブル更新処理(図9)を実行する。ここで、図13に示すように、車両C2はデータD1,D2を保持しており、これらのデータについては車両C1も保持している。したがって、車両C2は、車両C1がデータD1およびD2のデータ提供者であると判断できる(S906−S908)。なお、車両C2は、車両C1に対して自車両がデータD1およびD2を提供可能である旨を通知する(S816)。したがって、車両C1も、車両C2がデータD1およびD2のデータ提供者であると判断できる。
【0083】
車両C3も車両C2と同様の処理を行い、車両C1がデータD2およびD4のデータ提供者であると判断する。また、車両C1に対して、車両C3がデータD2およびD4のデータ提供者である旨の通知も行われる。
【0084】
また、車両C1は、車両C4から状態通知メッセージを受信したときにデータ要求者管理テーブル更新処理(図10)を実行する。車両C4の走行経路はN6,N4,N3,N2,N1である。車両C1は、この経路近傍の位置に関連づけられたデータのうち、データD1,D2,D3を保持している。このうち、車両C4はデータD3を保持し、データD1およびD2を保持していない。したがって、車両C1は、車両D4をデータD1およびD2のデータ要求者であると判断して、データ要求者管理テーブルを更新する(S1006〜S1010)。
【0085】
上記のような処理の結果として得られる、車両C1のデータ要求者管理テーブルとデータ提供者管理テーブルを図14A,Bに示す。図14Aに示すように、車両C1は、データD1およびD2の要求者が車両C4であり、データD3およびD4については要求者が存在しないと記憶する。また、図14Bに示すように、車両C1は、データD1の提供者が車両C2、データD2の提供者が車両C2とC3、データD3の提供者は存在せず、データD4の提供者は車両C3であると記憶する。
【0086】
車両C1は、このようなデータ要求者管理テーブルとデータ提供者管理テーブルに基づいてキャッシュ管理処理を行う。上述の式1に基づいて算出される削除優先度のうち、データ要求者数とデータ提供者数に基づく項目の値は図14Cに示すようになる。データD1については、データ要求者数が1台で、データ提供者数が1台であることから、削除優先度は1と算出される。データD2については、データ要求者数が1台で、データ提供者数が2台であることから、削除優先度は1.5と算出される。データD3については、データ要求者数が0台で、データ提供者数が0台であることから、削除優先度は1と算出される。データD4については、データ要求者数が0台で、データ提供者数が1台であることから、削除優先度は2と算出される。したがって、車両C1はキャッシュメモリからデータを削除する必要が生じたときに、LRUによる削除優先度等が等しければ、削除優先度の最も高いデータD4を削除するように決定する。
【0087】
各車両は、データが上位プログラムからデータを要求されたときに、データがキャッシュメモリ内にあればそこから取得して上位プログラムに渡す(S506)。キャッシュメモリに無い場合には、近傍車両管理テーブル(図4C)を参照して、周囲のこのデータを保持する車両が存在するか判断し、存在する場合にはその車両から取得する(S510)。サーバ装置からデータを取得するのは、自車両のキャッシュメモリにも周囲の車両のキャッシュメモリにも要求されたデータが存在しないときとなる(S514)。
【0088】
<実施形態の作用/効果>
本実施形態によれば、サーバ装置から配信されるデータを車両内にキャッシュし、車両間でデータの送信を行うことで、サーバ装置との通信帯域を削減することができる。そして、車両におけるキャッシュ管理を要求者が多く提供者が少ないほど優先してキャッシュメモリに残るように行っているので、キャッシュヒット率が高まり、限られた容量のストレージを有効活用できる。
【符号の説明】
【0089】
100 車両
200 サーバ装置
20 キャッシュ管理機能
21 状態記憶部
22 状態通知部
23 状態取得部
24 キャッシュ管理部
25 キャッシュメモリ
26 データ取得部
27 データ送信部
30 ナビゲーションプログラム
【技術分野】
【0001】
本発明は、キャッシュ管理技術に関し、特に、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおけるキャッシュ管理技術に関する。
【背景技術】
【0002】
地図情報のように位置に関連するデータ(以下、「データ」と呼ぶ)を配信するサービス(以下、「位置情報サービス」と呼ぶ)が普及しつつある。これに伴い、データ提供元である、クライアント・サーバ型システムにおけるサーバ装置や、インフラ協調型システムにおける路側基地局(以下、これらを総称してサーバ装置と呼ぶ)に必要とされる通信帯域は年々増加する傾向にある。
【0003】
一般に、サービス提供者が通信業者に支払う通信料金は従量課金制である場合が多く、必要とされる通信帯域が大きくなりすぎると、サービス提供のコストが増大してしまう。または、通信帯域の逼迫によりサービス品質に支障が生じてしまう。したがって、クライアント(車両)とサーバ装置との間の通信帯域を削減することが望まれる。
【0004】
特許文献1では、複数の車載機が、サーバにアクセスしてデータの異なる部分を分担して取得し、取得した部分データを車車間通信により相互に交換することで完全なデータを形成する方法が開示されている。この方法では、直接通信可能な状態にある車両でしかデータの交換ができず、サーバの通信帯域の削減効果は限定的である。
【0005】
上記の問題を考慮してマルチホップ型のピア・ツー・ピア通信を行い、直接通信できない車載機間でデータの交換を行う方法が考えられる。しかし、この方法を単純に適用した場合、データを複数の車載機を経由してルーティングすることになり、通信経路上の車載機の通信帯域をより多く消費してしまう。この方法では、車載機の数やホップ数が増えた場合に、通信量が許容範囲を超えてしまうため、サーバの通信帯域の削減効果は限定的である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−274415号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記を考慮して、車載機が取得したデータをストレージに保存しておき、移動先で、そのデータを将来必要とすると予想される車載機に配信する方法が考えられる。しかしこの方法は、車載機のストレージに保持できるデータ量の限界が問題となる。3次元地図情報などのように巨大なデータを扱う場合、保持しておくデータを適切に取捨選択しなければ、ストレージがあふれてしまう。
【0008】
このように、車載機がデータを保持してサーバ装置に代わって他の車両に配信する場合は、車載機のストレージ容量は有限なので、より重要なデータを優先的に保持することが求められる。
【0009】
本発明は、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおいて、他の車両に配信するためにデータを車両内にキャッシュする際にキャッシュヒット率を向上させるようにキャッシュ管理することを目的とする。
【課題を解決するための手段】
【0010】
上記の目的を達成するために、本発明に係るキャッシュ管理装置は、周囲の車両から送信される走行予定経路情報と保持データ情報を基に、自車両が保持しているデータのそれぞれについてデータ要求者数とデータ提供者数を算出し、データ要求者数が多いデータほど、また、データ提供者が少ないデータほど優先的にキャッシュメモリに保持する。
【0011】
より具体的には、本発明に係るキャッシュ管理装置は、複数の車両とサーバ装置から構成され、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおける、車両に搭載されたキャッシュ管理装置であって、キャッシュメモリと、キャッシュ管理手段と、状態通知手段と、状態取得手段と、データ取得手段と、データ送信手段を備える。
【0012】
状態通知手段は、自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する。すなわち、状態通知手段は、自車両が今後どのような経路を走行するかという情報と、自車両がどのようなデータを保持しているかという情報を、周囲の車両に対して送信する。状態通知メッセージには位置情報や走行速度など、車両の走行に関するその他の情報を含めることも好ましい。
【0013】
状態取得手段は、周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する。すなわち、状態取得手段によって、周囲の車両が今後どのような経路を走行するかということと、どのようなデータを保持しているかということを認識できる。
【0014】
データ取得手段は、自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得する。また、データ送信手段は、他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信する。
【0015】
ここで、本発明の状態取得手段は、他車両から受信した状態通知に基づいて、以下の二つの判断を行う。
(1)他車両(状態通知メッセージの送信元車両)と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータをこの他車両も保持している場合は、この他車両をこのデータのデータ提供者であると判断する。
(2)他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータをこの他車両が保持していない場合は、この他車両をこのデータのデータ要求者であると判断する。
この処理を周囲の車両から送信される状態通知メッセージの全てに対して行うことで、自車両が保持しているデータのそれぞれについて、データ提供者の数とデータ要求者の数を把握することができる。
【0016】
そして、本発明のキャッシュ管理手段は、キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する。
【0017】
これにより、各車両のキャッシュメモリには、データ要求者の数が多いデータほど、また、データ提供者の数が少ないデータほど優先的に格納されることになる。したがって、キャッシュヒット率を向上させることができる。
【0018】
上記の状態通知メッセージは、送信元車両の走行予定経路に沿ってルーティングされることが好ましい。なぜならば、データ要求者やデータ提供者に該当するかは、走行予定経路に重複があるか否かによって判断されるためである。走行予定経路から大きくずれる場所に位置する車両がデータ要求者やデータ提供者に該当する可能性は低く、状態通知メッセージをその位置に送信しても無駄に通信帯域が消費されるだけである。走行予定経路に沿ってルーティングすることで、通信帯域の浪費を防止できる。ただし、現時点では走行予定経路に位置しない車両と将来的に走行経路が重複することはあるので、走行予定経路とその周辺の範囲に状態通知メッセージが送信されるようにしても良い。
【0019】
走行予定経路に沿ってルーティングさせるために、送信元の車両の状態通知手段が状態通知メッセージをブロードキャスト送信し、以下の基準で受信車両が転送を行うことが好ましい。すなわち状態通知メッセージの受信車両の状態取得手段は、自車両がこの状態通知メッセージに含まれる走行予定経路上に位置し、かつ、走行予定経路上流の車両から状態通知メッセージを受信した場合に、受信した状態通知メッセージを転送すればよい。なお、通信帯域の逼迫を避けるために、一度受信したことのある状態通知メッセージは転送しないとか、転送回数に上限を設けるとか、送信元車両から所定の距離内の場合のみ転送するとかという基準を設けることも好ましい。
【0020】
また、走行予定経路に沿ってルーティングさせるための別の方法として、送信元の車両の状態通知手段が、自車両の走行予定経路上の車両を中継車両として指定して状態通知メッセージを送信することも好ましい。
【0021】
なお、状態通知メッセージを走行予定経路にそってルーティングする場合は、状態通知メッセージは走行予定経路上流(後方)に対しては伝わらないことになる。したがって、同じ走行予定経路を走行中の二台の車両が同じデータを保持している場合に、下流の車両は上流の車両がこのデータのデータ提供者であることが判断できるが、上流の車両は下流の車両がこのデータのデータ提供者であると判断できないことになってしまう。これに対処するために、状態通知メッセージを受信し、送信元車両が自車両の保持するいずれかのデータについてのデータ提供者であると判断したときに、自車両がこのデータのデータ提供者であることを通知する重複データ保持通知を送信元の車両に対して送信することが好ましい。
【0022】
また、状態取得手段は、状態通知メッセージ送信元の他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持し、かつ当該他車両の走行予定経路近傍のデータであって、当該他車両が保持していないデータについて、当該他車両を当該データのデータ要求者であると判断することが好ましい。すなわち、自車両が保持している全てのデータを対象としてデータ要求者であるか否かを判断するのではなく、自車両が保持しかつ相手車両の走行予定経路近傍のデータのみを対象としてデータ要求者であるか否かを判断する。走行予定経路近傍に関連づけられていないデータを要求することは少ないと考えられるので、これにより、さらに精度の良いキャッシュ管理が可能となる。
【0023】
また、キャッシュ管理手段は、データ要求者数およびデータ提供者数を利用せずに求めた指標と、データ要求者数およびデータ提供者数を利用して求めた指標の両方を用いて、削除するデータを決定することも好ましい。「データ要求者数およびデータ提供者数を利用せずに求めた指標」には、LRU(Least Recently Used)、LFU(Least Frequently Used)、ARC(Adaptive Replacement Cache)などの従来のアルゴリズムにしたがって求めた指標を採用することができる。
【0024】
本発明は、上記手段の少なくとも一部を含むキャッシュ管理装置として捉えることができる。また、本発明は、車載端末においてこれらの処理を行うキャッシュ管理方法、さらには、これらの方法を実現するためのプログラムとして捉えることもできる。また、本発明は、上記キャッシュ管理装置を備える車両と位置に関連するデータを配信するサーバ装置とから構成されるデータ配信システムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0025】
本発明によれば、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおいて、他の車両に配信するためにデータを車両内のキャッシュを有効活用でき、サーバ装置との間の通信を削減可能となる。
【図面の簡単な説明】
【0026】
【図1】本実施形態に係るデータ配信システムの概要図。
【図2】本実施形態に係る車載端末のハードウェア構成図。
【図3】本実施形態に係る車載端末の機能ブロック図。
【図4】(A)経路情報のデータ形式。(B)保持データ情報のデータ形式。(C)近傍車両管理テーブルのテーブルフォーマット。(D)データ要求者管理テーブルのテーブルフォーマット。(E)データ提供者管理テーブルのテーブルフォーマット。
【図5】上位プログラムからデータ要求を受け付けたときに実行される、データ取得処理のフローチャート。
【図6】定期的あるいは不定期に実行される状態通知メッセージ送信処理のフローチャート。
【図7】状態通知メッセージのフォーマット。
【図8】状態通知メッセージを受信したときに実行される処理のフローチャート。
【図9】データ提供者管理テーブル更新処理(図8のS808)の詳細なフローチャート。
【図10】データ要求者管理テーブル更新処理(図8のS812)の詳細なフローチャート。
【図11】キャッシュ管理処理(図5のS516)のフローチャート。
【図12】本実施形態の動作例説明の前提となる状況を説明する図。
【図13】図12に示す状況での状態通知メッセージを示す図。
【図14】図12に示す状況で車両C1によって作成される(A)データ要求者管理テーブルと(B)データ提供者管理テーブル。(C)はデータ要求者数とデータ提供者数を考慮したキャッシュの削除優先度の値を示す。
【発明を実施するための形態】
【0027】
<概要>
図1は本実施形態に係るデータ配信システムの概要を示す図である。データ配信システムは、複数の車両100と、データを配信するサーバ装置200とから構成される。サーバ装置200は、車両100に送信するためのデータ201を保持しており、車両100からの要求に応じてデータを車両に配信する。ここで、データは位置に関連したデータであり、たとえば、3次元地図データ、店舗情報、広告情報などであるが、データの内容は本発明では限定されない。
【0028】
車両100は基本的にサーバ装置200からデータを取得するが、取得したデータをキャッシュメモリに保持しておき、自車が必要とするデータを周囲の車両が保持していれば、サーバ装置200からではなく、周囲の車両からこのデータを取得する。これによって、サーバの通信帯域を削減することができる。
【0029】
なお、図1では車両100とサーバ装置200が無線通信を直接行うように記載しているが、サーバ装置200と通信可能に接続された路側通信設備を設けて、車両はこの路側通信設備からデータを取得する構成としても良い。また、車両100間の通信はマルチホップの通信を行うものとするが、データの取得はシングルホップあるいは限られたホップ数の通信に限定して車車間通信による通信帯域の逼迫を避けることが好ましい。
【0030】
このような仕組みにおいて、車両内のキャッシュを有効に活用するためには適切なキャッシュアルゴリズムの採用が必須である。基本的には、他の車両から必要とされるデータを優先的に保持しておけばよく、また、自車両のみが提供できるデータを優先的に保持しておけばよい。本実施形態においては、各車両が、自車両の走行予定経路と、自車両がどのデータをキャッシュしているかという情報を周囲の車両に対して通知する。これにより、各車両は、周囲の車両がどのような経路を走行し、かつ、どのようなデータを保持しているかを把握することができる。そして、このように把握された状況に基づいて、自車両が保持しているデータのそれぞれについて、このデータを要求している車両の数、および、このデータを提供できる他の車両の数を算出し、これに基づいてキャッシュ管理を行う。
【0031】
<構成>
図2に車両100に搭載される車載端末のハードウェア構成を示す。また、図3に車載端末の機能構成を示す。図2に示すように、車載端末は、CPU1、位置検出装置群2、表示装置7、音声出力装置8、入力装置9、車車間通信装置13、路車間通信装置14などを含んで構成される。これらの装置は車内ネットワークやシステムバスなどを介してCPU1と接続されている。
【0032】
位置検出装置群2は、衛星などからの電波に基づいて車両の位置を検出するGPS(Global Positioning System)受信機3、車両の回転角速度を検出するジャイロセンサ4、
車両の向きを取得するための地磁気センサ5,車両の走行距離を検出する距離センサ6を有している。これらのセンサから取得される情報や、地図情報とのマッチング(マップマッチング)などにより自車両の位置を検出できる。
【0033】
表示装置7は液晶ディスプレイなどであり、音声出力装置8はスピーカーである。入力装置9は、ユーザからの指示を入力するためのものであり、ボタンやスイッチあるいは、キーボードやマウスなどを採用可能である。また、表示装置7と入力装置9を一体化したタッチパネルを採用してもかまわない。また、音声入力装置を採用しても良い。
【0034】
車車間通信装置13は他の車両(の車車間通信装置)と無線通信を行うための装置である。無線通信方式には、例えば、無線LAN(IEEE802.11a,b,g,n)、DSRC(Dedicated Short Range Communication)、UWB、ミリ波通信などを採用可
能である。路車間通信装置14は、サーバ装置と無線通信を行うための装置である。無線通信方式には、WiMAXやLTEを採用可能である。なお、車両とサーバ装置が路側通信設備を介して通信を行う場合には、その他の狭域な無線通信方式を採用しても良い。
【0035】
CPU1は、ROM10や補助記憶装置12などに格納されたOSプログラムやアプリケーションプログラムをRAM11上に展開して実行することで、図3に示すような種々の機能を実現する。
【0036】
キャッシュ管理機能20は、ナビゲーションプログラム30などの上位プログラムからのデータ要求を受けて、キャッシュメモリ25またはサーバ装置や他の車両からデータを取得して上位プログラムに返す機能を有する。ナビゲーションプログラム30は、位置検出装置群2による自車両の位置検出や経路探索などの周知の処理を行う。キャッシュ管理
機能20は、次のような機能部から構成される。
【0037】
状態記憶部21は、自車両および周囲の車両に関する状態を記憶する。具体的には、各車両について、今後どのような経路を走行するかという経路情報、どのようなデータを保持しているかという保持データ情報、および、どの位置にいるのかという位置情報を格納する。なお、自車両の経路情報および位置情報は、例えば、ナビゲーションプログラム30から取得することができる。ナビゲーションプログラムでは、走行経路の探索や設定がなされるのでこの経路をキャッシュ管理機能20へ通知すればよい。また、自車両がどのようなデータを保持しているかは、キャッシュ管理部24から取得できる。
【0038】
経路情報は、図4Aに示すように、ノードID(交差点ID)のリストとして表現される。経路情報は、リンクIDのリストとして表現されてもかまわない。
【0039】
サーバ装置から配信されるデータには、それぞれのデータを識別可能なデータIDが付与される。このデータIDから、そのデータがどの位置に関連づけられているか判断可能とすることが好ましい。例えば、データIDの一部に位置を示す識別子を含むことが好ましい(データID=エリアID+識別番号)。保持データ情報は、図4Bに示すように、各車両がキャッシュメモリ内に保持しているデータのデータIDのリストとして表現される。
【0040】
状態記憶部21には、図4Cに示すような、周囲の車両を管理するための近傍車両管理テーブルが格納される。近傍車載機管理テーブルには、車両ID(または車載機ID)、保持データ情報、経路情報、位置情報が格納される。
【0041】
状態記憶部21には、さらに、自車両が有する各データについて、そのデータを要求していると考えられる車両を格納したデータ要求者管理テーブル(図4D)、および、そのデータを提供可能と考えられる車両を格納したデータ提供者管理テーブル(図4E)も格納される。これらのテーブルは、自車両が有するデータごとに、車両IDのリストとして構成される。これらのテーブルについての詳細は後述する。
【0042】
状態通知部22は、定期的あるいは不定期に自車両の状態(経路情報、保持データ情報、位置情報など)を周囲の車両に通知するための機能部である。なお、状態情報として、走行速度やその他の情報を含めることも好ましい。状態通知部22は、車車間通信装置13から状態通知メッセージを送信することで、周囲の車両へ自車両の状態変更を通知する。この状態通知メッセージの伝播経路は、送信元車両の経路に沿うことが好ましい。そのために、状態通部22が送信経路または中継車両を指定して状態通知メッセージを送信しても良いし、状態通知メッセージの受信車両がメッセージ内に格納された経路情報と自車の位置を基に自律的に中継するか否かを決定しても良い。
【0043】
状態取得部23は、周囲の車両から送信される状態通知メッセージを車車間通信装置13によって受信して、状態記憶部21を更新するための機能部である。状態取得部23が周囲の車両から状態通知メッセージを受信して状態記憶部21を更新することで、状態記憶部21の内容が最新に保たれる。状態取得部23は、受信した状態通知メッセージに自車両が中継車両として指定されていたり、状態通知メッセージに含まれる経路情報と自車両の位置を比較により必要ありと判断できたりする場合は、この状態通知メッセージの転送を行う。また、状態通知メッセージが走行予定経路(以下単に、走行経路と称する)に沿ってルーティングされると、状態通知メッセージによる情報は走行経路下流方向にのみ伝播するので、自車両が送信元車両の有するデータのデータ提供者である場合には、このことを別途通知する。
【0044】
キャッシュ管理部24は、キャッシュメモリ25を管理する機能部であり、キャッシュメモリにデータを格納するための空き容量がないときに、いずれのデータをキャッシュメモリから削除するか決定する。キャッシュヒット率を高めるためには、将来使われる可能性の高いデータをキャッシュメモリに残すことが必要である。キャッシュ管理部24は、データ要求者の数が多いデータほど、また、データ提供者の数が少ないデータほど優先してキャッシュメモリ内に残す制御を行う。また、データ要求者およびデータ提供者の数だけを考慮するのではなく、LRUやLFUなどの従来のキャッシュアルゴリズムによる削除優先度も考慮して、いずれのデータをキャッシュメモリから削除するか決定する。
【0045】
データ取得部26は、上位プログラム30からデータの要求を受け付け、要求されたデータを取得して返す機能部である。データ取得部26は、自車両のキャッシュメモリ内に要求されたデータがあればキャッシュメモリから取得して上位プログラムに渡す。一方、キャッシュメモリ内に要求されたデータがなければ、可能であれば車車間通信によって他の車両から、それもできなければ路車間通信によってサーバ装置からデータを取得して上位プログラムに渡す。
【0046】
データ送信部27は、他の車両からデータの要求を受け付けて、キャッシュメモリ25内にそのデータがあれば、要求元の車両にデータを送信する。キャッシュメモリ25内に要求されたデータがない場合には、何も行わないか、データを保持していないことを通知する。
【0047】
<処理詳細>
以下、各機能部が行う処理の内容について、より詳細に説明する。
【0048】
[データ取得処理]
まず図5を参照して、ナビゲーションプログラムなどの上位プログラムからデータ取得要求を受け付けたときの処理を説明する。データ取得部26が上位プログラム30からデータ取得要求を受け付ける(S502)と、以下の処理が行われる。データ取得部26は、要求されたデータがキャッシュメモリ25内に存在するか否かを、キャッシュ管理部24に問い合わせる(S504)。要求されたデータがキャッシュメモリ25内に存在する場合(S504−YES)には、キャッシュメモリからデータを取得する(S506)。
【0049】
一方、要求されたデータがキャッシュメモリ25内に存在しない場合(S504−NO)には、このデータを提供可能な車両が周囲に存在するか判定する(S508)。この判定は、近傍車両管理テーブルを参照することで判断できる。たとえば十分に近い位置に存在する車両(Nホップ以内(Nは設計パラメータ)で通信可能な車両)がデータを持っている場合に、この車両が要求されたデータを提供可能と判断する。周囲にデータの提供者が存在する場合(S508−YES)は、車車間通信によってこの車両からデータを取得する(S510)。周囲に要求されたデータを提供可能な車両が存在しない(S508−NO)か、周囲の車両にデータを要求したが所定時間内にデータが得られない場合(S512−NO)は、路車間通信によってサーバ装置200からデータを取得する(S514)。
【0050】
このようにして、周囲の車両またはサーバ装置からキャッシュメモリ内に存在しないデータを取得したら、取得したデータをキャッシュメモリに格納するキャッシュ管理処理を行う(S516)。ここで、キャッシュメモリに空き容量が無い場合には、参照される可能性が最も低いと考えられるデータをキャッシュメモリから削除する。キャッシュの削除アルゴリズムについては、その判断の基となる情報の取得方法を説明した後に改めて説明する。
【0051】
データ取得部26は、キャッシュメモリ、他の車両またはサーバ装置のいずれかから要求されたデータを取得し、取得したデータを要求元の上位プログラムへ渡す(S518)。
【0052】
[状態通知送信処理]
次に図6を参照して、状態通知部22が行う状態通知メッセージの送信処理について説明する。この処理は定期的あるいは不定期に実行される。たとえば、100ミリ秒おきに実行するようにしても良いし、あるいは、自車両の状態(経路情報、保持データ情報、位置など)に変更があったときに実行するようにしても良い。
【0053】
状態通知部22は、キャッシュ内に格納されているデータのデータIDを取得する(S602)。本実施形態では、状態通知部22が状態記憶部21に格納されている自車両の保持データ情報を参照することで、キャッシュ内のデータの一覧を取得する。キャッシュ管理部24がキャッシュに変更がある度に状態記憶部21を更新する構成とすれば、状態記憶部21内の自車両の保持データ情報を参照することでキャッシュメモリ内に格納されているデータの一覧を取得できる。もちろん、状態通知部22がキャッシュ管理部24に問い合わせてデータの一覧を取得しても良い。
【0054】
状態通知部22は、自車両の走行予定経路および位置情報を取得する(S604)。これらの情報はナビゲーションプログラムが保持しているので、ここから取得すれば良い。
【0055】
状態通知部22は、送信者ID(自車両の車載機ID)、経路情報、保持データ情報、および位置情報を含む状態通知パケット(図7)を作成し(S606)、車車間通信装置13から送信する(S608)。状態通知パケットは、図7に示すように、送信者ID(車両ID)、経路情報、保持データ情報、および位置情報が含まれる。また、中継車両の指定やフラッディングを停止させる条件など、ルーティングに関する情報も含まれる。
【0056】
本実施形態では、通信を中継する車載機(以下、中継者と呼ぶ)を経由することで、マルチホップ通信によって状態通知メッセージを伝播させる。この際、この状態通知メッセージは、自車両の走行経路にしたがって伝播するようにルーティングされる。すなわち、走行経路の上流から下流に向かって、状態通知メッセージを伝播させる。たとえば、自車両の走行経路上に位置する車両を中継者として選択して伝播させるか、フラッディングにより伝播させればよい。フラッディングを採用する場合には、受信者両側で自律的に中継するか否かを判断することで、走行経路に沿って伝播するようにする。
【0057】
[状態通知受信時処理]
次に図8を参照して、状態取得部23が行う、状態通知メッセージ受信時の処理について説明する。この処理は、状態取得部が他の車両から状態通知メッセージを受信するたびに実行される。なお、この項において、状態通知メッセージの送信元車両のことを「相手車両」と記載する。
【0058】
相手車両から状態通知メッセージを受信する(S802)と、状態記憶部21内の近傍車両管理テーブルの相手車両に関するエントリを、この状態通知メッセージに含まれる情報で更新する(S804)。
【0059】
状態取得部23は、状態通知メッセージに含まれる相手車両の走行経路と、自車両の走行経路が、同一方向であり、かつ、十分な重なりがあるか判断する(S806)。ここで、「十分な重なり」というのは、今後の互いの位置関係の類推から、すれ違う他の車載機の集合が近いと予測できることを意味する。すれ違う他車両の集合は、両車両の、走行経路、現在位置、進行速度などから判断できる。簡単な実装では、両車両の走行経路に所定
距離以上の重複があり、かつ、互いの距離が所定値以内である場合に、「走行経路が十分に重なっている」と判断する。
【0060】
状態通知メッセージの送信元車両(相手車両)と走行経路が同一方向であり、かつ、十分な重なりがある場合(S806−YES)には、すれ違う他車両に対して、相手車両と自車両の両方がデータを提供可能である。したがって、相手車両が自車両の保持するデータを保持していれば、相手信元車両をこのデータの提供者であると判断できる。状況取得部23は、このようにして状態記憶部21内のデータ提供者管理テーブルを更新する(S808)。
【0061】
図9に、上記のデータ提供者管理テーブルの更新処理の詳細を示す。まず、データ提供者管理テーブルから、相手車両に関するエントリを削除する(S902)。そして、自車両が保持しているデータのそれぞれについて、以下の処理(S906−S908)を繰り返す。まず、相手車両がこのデータを保持している、すなわち、状態更新通知メッセージ内のこのデータのデータIDが存在するか判断する(S906)。そして、この条件に該当する場合には、この送信車両を当該データの提供者であるとしてデータ提供者管理テーブルを更新する(S908)。以上の処理によって、データ提供者管理テーブルの更新が完了する。なお、ここでは相手車両に関するエントリを全削除してから再度追加する手法を採用したが、もちろん、それ以外のアルゴリズムによってテーブルの更新を行ってもかまわない。
【0062】
図8のフローチャートの説明に戻る。状態通知メッセージの送信元車両(相手車両)と、走行経路が同一方向ではない、または、走行経路に十分な重なりがない場合(S806−NO)には、走行経路が逆方向で、かつ、走行経路に十分な重なりがあるか判断する(S810)。ここでの「十分な重なり」というのは、今後の互いの位置関係の類推から、両車両が実際にすれ違う可能性が高いと予測できることを意味する。走行経路が重なっていても実際にはすれ違わないことは想定できるため、このような判断を行っている。簡単な実装では、両車両の走行経路に所定距離以上の重複があり、かつ、互いの距離が所定値以内である場合に「走行経路が十分に重なっている」と判断する。この判断基準はステップS806の基準と同様のものであるが、両者の判断基準は必ずしも同じにする必要はなく、それぞれ異なる判断基準で「走行経路が十分に重なっている」と判断してかまわない。
【0063】
状態通知メッセージの相手車両と走行経路が逆方向であり、かつ、十分な重なりがある場合(S810−YES)には、自車両から相手車両に対してデータの提供が可能である。したがって、相手車両が自車両の保持するデータを必要とするのであれば、相手車両をこのデータの要求者であると判断できる。状況取得部23は、このようにして状態記憶部21内のデータ要求者管理テーブルを更新する(S812)。
【0064】
図10に、上記のデータ要求者管理テーブルの更新処理の詳細を示す。データ要求者管理テーブルから、相手車両に関するエントリを削除する(S1002)。各車両は、走行経路近傍の情報を必要とすると考えられる。そこで、自車両が保持するデータのうち、相手車両の走行経路近傍に関連づけられたデータであり、かつ、相手車両が保持していないデータが、相手車両から要求されると考えることができる。そこで、相手車両の走行予定経路のそれぞれの位置ついて、以下の処理(S1006−S1010)を繰り返し実行する。まず、自車両がこの位置に関連するデータを保持しているか判断し(S1006)、自車両が保持している場合には、相手車両が保持しているか判断する(S1008)。相手車両が保持していない場合には、相手車両がこのデータの要求者であるとして、データ要求者管理テーブルを更新する(S1010)。なお、図10のフローチャートでは相手車両の走行経路内の位置ごとにループ処理を実行しているが、自車両が保持するデータご
とに、これが相手車両の走行経路の近傍に位置し、かつ、相手車両が保持していないことを確認してもかまわない。
【0065】
なお、相手車両がどのデータを実際に必要とするかを正確に判断するのは困難である。上記の手法も完全なものではなく、他の方法によって相手車両がどのようなデータを必要とするか判断することも考えられる。一つの方法としては、状態通知メッセージの送信元車両が、メッセージ内にどのようなデータが必要となるかを明示的に記載する方法である。この方法によれば、相手車両が必要としないデータについて相手車両をデータ要求者と判断することがなくなる。ただし、各車両が今後どのようなデータが必要になるかを事前にわかる必要がある。別の方法としては、相手車両の走行経路にかかわらず、相手車両が保持していないデータは全て相手車両が必要とすると見なすことが考えられる。この方法は、実際には必要とされないデータについて相手車両をデータ要求者であると判断してしまうが、処理が簡単であるという利点がある。
【0066】
図8のフローチャートの説明に戻る。自車両の走行経路と状態通知メッセージ送信元車両の走行経路とが同一方向に重複し、かつ、重複するデータを保持している場合(S814−YES)に、自車両が保持する重複するデータ保持していることを示す重複データ保持通知を送信元車両に送信する(S816)。すなわち、相手車両がデータ提供者であると判断された場合に、自車両もそのデータを提供可能であることを相手車両に通知する。この通知には、走行経路、保持データ情報、位置情報などの情報、すなわち、状態通知メッセージと同様の情報を含めることも好ましい。
【0067】
ステップS814,S816の処理は、自車両がデータ提供者に該当することを相手車両に通知するためのものである。状態通知メッセージが走行経路に沿ってルーティングされると、走行経路上流側の車両がデータ提供者に該当することを判断できても、走行経路下流の車両がデータ提供者に該当することが判断できない。そこで、走行経路下流の車両から上流の車両に対して、重複するデータについてデータ提供可能である旨を通知することとしている。なお、「データ提供者」の判断基準から、車両Aが車両Bの保持するデータのデータ提供者であれば、車両Aにとっても車両Bがこのデータのデータ提供者となる。下流側車両からの重複データ保持通知を受信した上流側車両は、下流側車両を重複しているデータのデータ提供者であるとして、データ提供者管理テーブルを更新する。
【0068】
なお、ステップS816において、下流側車両は状態通知メッセージを上流側車両に送信しても良い。すなわち、下流側車両がどのデータのデータ提供者であるかを上流側車両が判断するようにしても良い。この場合は、下流側車両からの状態通知メッセージを受信した上流側車両は、図9に示すフローチャートを実行してデータ提供者管理テーブルを更新する。
【0069】
また、ステップS814,S816の処理は状態通知メッセージを走行経路の下流方向にルーティングさせる場合に必要となる処理であるので、状態通知メッセージを特定方向にルーティングさせない場合には不要な処理である。
【0070】
ステップS818では、状態通知メッセージの転送が必要であるか判断し、必要であればその転送を行う。たとえば、状態通知メッセージに中継車両(のID)が格納されているのであれば、自車両が中継車両として指定されている場合に、状態通知メッセージの転送を行う。状態通知メッセージをフラッディング方式で送信する場合には、自車両が状態通知メッセージに格納される走行経路の下流方向に位置する場合に転送すればよい。なお、フラッディングによる不要な通信を防止するために、一度受信したことのある状態通知メッセージは転送しない、一つのメッセージに対して転送回数の上限、配信距離(送信元車両との直線距離や経路に沿った距離)の上限や、交差点ノードの経由数の上限などを設
けることが好ましい。
【0071】
[キャッシュ管理処理]
ここまで説明したように、状態通知メッセージを車両間で交換することで、周囲の車両に関する情報(図4Cの近傍車両管理テーブル)、自車両が保持するデータについてのデータ要求者(図4Dのデータ要求者管理テーブル)およびデータ提供者の情報(図4Eのデータ提供者管理テーブル)を常に把握できる。キャッシュ管理部24は、これらの情報を用いて、キャッシュメモリ25から破棄するデータを決定する(図5のS516)。
【0072】
図11にキャッシュ管理部24が行うキャッシュ管理処理のフローチャートを示す。この処理は、データ取得部26が新しいデータを外部から取得するたびに実行される。キャッシュ管理部24は、新たなデータが取得されると、保持データがキャッシュメモリ25のキャッシュサイズの上限を超えるか判断する(S1102)。新しいデータを格納してもキャッシュサイズを超えない場合(S1102−NO)は、そのデータをキャッシュメモリ25に格納する(S1106)。
【0073】
一方、保持データの合計がキャッシュサイズを超える場合(S1102−YES)は、いずれかのデータをキャッシュメモリ25から削除する。キャッシュメモリを有効利用するには今後参照されないと予想されるデータを削除することが好ましい。本実施形態では、データ要求者数が多いデータほど、また、データ提供者数が少ないデータほど優先的にキャッシュメモリに保持するようにする。データ要求者数が多いデータほど、他の車両からデータの要求を受け付ける可能性が高いためである。また、データ提供者が多ければ自車両がキャッシュメモリから削除しても他の提供者が提供可能と考えられるためである。
【0074】
本実施形態においては、キャッシュ管理部24は、データ要求者数とデータ提供者数を考慮した削除優先度と、既存のLRU(Least Recently Used)アルゴリズムによる削除
優先度と組み合わせて、キャッシュメモリから削除するデータを決定する。すなわち、下記の式1で表される削除優先度指標の値が最も大きいデータを、キャッシュメモリから削除して(S1104)、新たなデータをキャッシュメモリに格納する(S1106)。
【数1】
ここで、LはLRUにおける削除優先度(最終利用時刻から現在までの経過時間)、Nrはデータ要求者数、Npはデータ提供者数を表す。αは0≦α≦1で与えられる重み付け係数である。
【0075】
重み付け係数を変えることで、LRUの振る舞いと、データ要求者数やデータ提供者数に対する考慮の度合いを調整できる。α=0とおくことで通常のLRUの振る舞いとなり、α=1とおくことでデータ要求者数やデータ提供者数のみを考慮する振る舞いとなる。
【0076】
なお、キャッシュアルゴリズムは上記の式以外にも種々の方法が採用可能である。基本的には、他の条件が同じであるときに、データ要求者数が多いほど削除優先度が低くなり、データ提供者数が少ないほど削除優先度が低くなるようなアルゴリズムであれば、キャッシュメモリを有効活用できると考えられる。たとえば、以下の式2のようにデータ要求者数とデータ提供者数を独立に評価した削除優先度を採用することが考えられる。
【数2】
ここで、0≦α,β,γ≦1かつα+β+γ=1である。
【0077】
またここでは既存のキャッシュアルゴリズムとしてLRUを例に説明したが、LFU(Least Frequently Used)やARC(Adaptive Replacement Cache)などの任意のキャッ
シュアルゴリズムを採用して良い。
【0078】
<動作例>
図12,13を参照して、具体的な状況での動作例を説明する。図12は、ここでの説明における状況を説明する図である。図12において、Niは交差点ノードIDを表し、Ciは車両ID、DiはデータIDを表す。各車両Ciは図に示す位置に存在し、点線がその走行予定経路である。データDiは図に示す位置に関連づけられているものとする。
【0079】
図13は、各車両の現在の状態(走行経路、保持データ、位置情報)を示している。すなわち、図13に示した情報は、各車両から送信される状態通知メッセージに含まれる情報である。車両C1の走行予定経路は、図12に示されるように、(N0,N2,N3,N4,N5)である。また、車両C1は、データD1,D2,D3,D4をキャッシュメモリ内に保持しているものとする。また車両C1の位置は緯度X1、経度Y1とする。他の車両C2〜C5についても、図13に示すような走行経路、保持データ、位置情報を持つものとする。
【0080】
車両C1から送信される状態通知メッセージは、車両C1の走行経路N0,N2,N3,N4,N5に沿ってルーティングされる。例えば、車両C1が、車両C2およびC3を中継車両として送信しても良いし、車両C1はブロードキャスト送信し車両C2,C3が自律的に転送するようにしても良い。
【0081】
車両C1から送信される状態通知メッセージを受信した各車両では以下の判断がなされる。車両C2,C3では、走行経路が同一方向であり十分な重なりがあると判断され(図8のステップS806−YES)、データ提供者管理テーブル更新処理が実行される。車両C4では、走行経路が逆方向であり十分な重なりがあると判断され(ステップS810−YES)、データ要求者管理テーブル更新処理が実行される。車両C5では、走行経路に十分な重なりがないと判断され(S806−NOかつS810−NO)、管理テーブルの更新処理は行われない。
【0082】
車両C2は、車両C1から状態通知メッセージを受信したときにデータ提供者管理テーブル更新処理(図9)を実行する。ここで、図13に示すように、車両C2はデータD1,D2を保持しており、これらのデータについては車両C1も保持している。したがって、車両C2は、車両C1がデータD1およびD2のデータ提供者であると判断できる(S906−S908)。なお、車両C2は、車両C1に対して自車両がデータD1およびD2を提供可能である旨を通知する(S816)。したがって、車両C1も、車両C2がデータD1およびD2のデータ提供者であると判断できる。
【0083】
車両C3も車両C2と同様の処理を行い、車両C1がデータD2およびD4のデータ提供者であると判断する。また、車両C1に対して、車両C3がデータD2およびD4のデータ提供者である旨の通知も行われる。
【0084】
また、車両C1は、車両C4から状態通知メッセージを受信したときにデータ要求者管理テーブル更新処理(図10)を実行する。車両C4の走行経路はN6,N4,N3,N2,N1である。車両C1は、この経路近傍の位置に関連づけられたデータのうち、データD1,D2,D3を保持している。このうち、車両C4はデータD3を保持し、データD1およびD2を保持していない。したがって、車両C1は、車両D4をデータD1およびD2のデータ要求者であると判断して、データ要求者管理テーブルを更新する(S1006〜S1010)。
【0085】
上記のような処理の結果として得られる、車両C1のデータ要求者管理テーブルとデータ提供者管理テーブルを図14A,Bに示す。図14Aに示すように、車両C1は、データD1およびD2の要求者が車両C4であり、データD3およびD4については要求者が存在しないと記憶する。また、図14Bに示すように、車両C1は、データD1の提供者が車両C2、データD2の提供者が車両C2とC3、データD3の提供者は存在せず、データD4の提供者は車両C3であると記憶する。
【0086】
車両C1は、このようなデータ要求者管理テーブルとデータ提供者管理テーブルに基づいてキャッシュ管理処理を行う。上述の式1に基づいて算出される削除優先度のうち、データ要求者数とデータ提供者数に基づく項目の値は図14Cに示すようになる。データD1については、データ要求者数が1台で、データ提供者数が1台であることから、削除優先度は1と算出される。データD2については、データ要求者数が1台で、データ提供者数が2台であることから、削除優先度は1.5と算出される。データD3については、データ要求者数が0台で、データ提供者数が0台であることから、削除優先度は1と算出される。データD4については、データ要求者数が0台で、データ提供者数が1台であることから、削除優先度は2と算出される。したがって、車両C1はキャッシュメモリからデータを削除する必要が生じたときに、LRUによる削除優先度等が等しければ、削除優先度の最も高いデータD4を削除するように決定する。
【0087】
各車両は、データが上位プログラムからデータを要求されたときに、データがキャッシュメモリ内にあればそこから取得して上位プログラムに渡す(S506)。キャッシュメモリに無い場合には、近傍車両管理テーブル(図4C)を参照して、周囲のこのデータを保持する車両が存在するか判断し、存在する場合にはその車両から取得する(S510)。サーバ装置からデータを取得するのは、自車両のキャッシュメモリにも周囲の車両のキャッシュメモリにも要求されたデータが存在しないときとなる(S514)。
【0088】
<実施形態の作用/効果>
本実施形態によれば、サーバ装置から配信されるデータを車両内にキャッシュし、車両間でデータの送信を行うことで、サーバ装置との通信帯域を削減することができる。そして、車両におけるキャッシュ管理を要求者が多く提供者が少ないほど優先してキャッシュメモリに残るように行っているので、キャッシュヒット率が高まり、限られた容量のストレージを有効活用できる。
【符号の説明】
【0089】
100 車両
200 サーバ装置
20 キャッシュ管理機能
21 状態記憶部
22 状態通知部
23 状態取得部
24 キャッシュ管理部
25 キャッシュメモリ
26 データ取得部
27 データ送信部
30 ナビゲーションプログラム
【特許請求の範囲】
【請求項1】
複数の車両とサーバ装置から構成され、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおける、車両に搭載されたキャッシュ管理装置であって、
データを格納するキャッシュメモリと、
キャッシュメモリを管理するキャッシュ管理手段と、
自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する状態通知手段と、
周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する状態取得手段と、
自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得するデータ取得手段と、
他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信するデータ送信手段と、
を備え、
前記状態取得手段は、他車両から受信した状態通知に基づいて、
当該他車両と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータを当該他車両も保持している場合は、当該他車両を当該データのデータ提供者であると判断し、
当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータを当該他車両が保持していない場合は、当該他車両を当該データのデータ要求者であると判断し、
前記キャッシュ管理手段は、前記キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する
キャッシュ管理装置。
【請求項2】
前記状態通知手段は、状態通知メッセージをブロードキャスト送信し、
前記状態取得手段は、自車両がこの状態通知メッセージに含まれる走行予定経路上に位置し、かつ、当該走行予定経路上流の車両から状態通知メッセージを受信した場合に、この状態通知メッセージを転送する、
請求項1に記載のキャッシュ管理装置。
【請求項3】
前記状態通知手段は、自車両の走行予定経路上の車両を中継車両として指定して状態通知メッセージを送信する、
請求項1に記載のキャッシュ管理装置。
【請求項4】
状態通知メッセージを受信し、前記状態取得手段が、送信元車両が自車両の保持するいずれかのデータについてのデータ提供者であると判断したときに、自車両が当該データのデータ提供者であること示す重複データ保持通知を送信元の車両に送信し、
他車両から重複データ保持通知を受信したときに、当該他車両を当該データについてのデータ提供者であると判断する、
請求項1〜3のいずれかに記載のキャッシュ管理装置。
【請求項5】
前記状態取得手段は、他車両から受信した状態通知に基づいて、当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、
自車両が保持し、かつ当該他車両の走行予定経路近傍のデータであって、当該他車両が保持していないデータについて、当該他車両を当該データのデータ要求者であると判断す
る、
請求項1〜4のいずれかに記載のキャッシュ管理装置。
【請求項6】
前記キャッシュ管理手段は、データ要求者数およびデータ提供者数を利用せずに求めた指標と、データ要求者数およびデータ提供者数を利用して求めた指標の両方を用いて、削除するデータを決定する、
請求項1〜5のいずれかに記載のキャッシュ管理装置。
【請求項7】
複数の車両とサーバ装置から構成されサーバ装置から車両に対して位置に関連するデータを配信するデータ配信システム、における車両が実行するキャッシュ管理方法であって、
自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する状態通知ステップと、
周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する状態取得ステップと、
自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得するデータ取得ステップと、
他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信するデータ送信ステップと、
を含み、
前記状態取得ステップでは、他車両から受信した状態通知に基づいて、
当該他車両と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータを当該他車両も保持している場合は、当該他車両を当該データのデータ提供者であると判断し、
当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータを当該他車両が保持していない場合は、当該他車両を当該データのデータ要求者であると判断し、
前記キャッシュ管理ステップは、前記キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する
キャッシュ管理方法。
【請求項8】
複数の車両とサーバ装置から構成されサーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおける車両が実行するためのキャッシュ管理プログラムであって、
車両に、
自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する状態通知ステップと、
周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する状態取得ステップと、
自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得するデータ取得ステップと、
他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信するデータ送信ステップと、
を実行させるためのものであり、
前記状態取得ステップでは、他車両から受信した状態通知に基づいて、
当該他車両と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータを当該他車両も保持している場合は、当該他車両を当該データのデータ提供者であると判断し、
当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータを当該他車両が保持していない場合は、当該他車両を当該データのデータ要求者であると判断し、
前記キャッシュ管理ステップは、前記キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する
キャッシュ管理プログラム。
【請求項9】
複数の車両とサーバ装置から構成され、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムであって、
前記サーバ装置は、
データを格納する記憶装置と、
車両からのデータ取得要求に応じて、前記記憶装置に格納されたデータを配信するデータ配信手段と、
を備え、
前記複数の車両は、それぞれ、
データを格納するキャッシュメモリと、
キャッシュメモリを管理するキャッシュ管理手段と、
自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する状態通知手段と、
周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する状態取得手段と、
自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得するデータ取得手段と、
他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信するデータ送信手段と、
を備え、
前記状態取得手段は、他車両から受信した状態通知に基づいて、
当該他車両と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータを当該他車両も保持している場合は、当該他車両を当該データのデータ提供者であると判断し、
当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータを当該他車両が保持していない場合は、当該他車両を当該データのデータ要求者であると判断し、
前記キャッシュ管理手段は、前記キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する
データ配信システム。
【請求項1】
複数の車両とサーバ装置から構成され、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおける、車両に搭載されたキャッシュ管理装置であって、
データを格納するキャッシュメモリと、
キャッシュメモリを管理するキャッシュ管理手段と、
自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する状態通知手段と、
周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する状態取得手段と、
自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得するデータ取得手段と、
他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信するデータ送信手段と、
を備え、
前記状態取得手段は、他車両から受信した状態通知に基づいて、
当該他車両と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータを当該他車両も保持している場合は、当該他車両を当該データのデータ提供者であると判断し、
当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータを当該他車両が保持していない場合は、当該他車両を当該データのデータ要求者であると判断し、
前記キャッシュ管理手段は、前記キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する
キャッシュ管理装置。
【請求項2】
前記状態通知手段は、状態通知メッセージをブロードキャスト送信し、
前記状態取得手段は、自車両がこの状態通知メッセージに含まれる走行予定経路上に位置し、かつ、当該走行予定経路上流の車両から状態通知メッセージを受信した場合に、この状態通知メッセージを転送する、
請求項1に記載のキャッシュ管理装置。
【請求項3】
前記状態通知手段は、自車両の走行予定経路上の車両を中継車両として指定して状態通知メッセージを送信する、
請求項1に記載のキャッシュ管理装置。
【請求項4】
状態通知メッセージを受信し、前記状態取得手段が、送信元車両が自車両の保持するいずれかのデータについてのデータ提供者であると判断したときに、自車両が当該データのデータ提供者であること示す重複データ保持通知を送信元の車両に送信し、
他車両から重複データ保持通知を受信したときに、当該他車両を当該データについてのデータ提供者であると判断する、
請求項1〜3のいずれかに記載のキャッシュ管理装置。
【請求項5】
前記状態取得手段は、他車両から受信した状態通知に基づいて、当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、
自車両が保持し、かつ当該他車両の走行予定経路近傍のデータであって、当該他車両が保持していないデータについて、当該他車両を当該データのデータ要求者であると判断す
る、
請求項1〜4のいずれかに記載のキャッシュ管理装置。
【請求項6】
前記キャッシュ管理手段は、データ要求者数およびデータ提供者数を利用せずに求めた指標と、データ要求者数およびデータ提供者数を利用して求めた指標の両方を用いて、削除するデータを決定する、
請求項1〜5のいずれかに記載のキャッシュ管理装置。
【請求項7】
複数の車両とサーバ装置から構成されサーバ装置から車両に対して位置に関連するデータを配信するデータ配信システム、における車両が実行するキャッシュ管理方法であって、
自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する状態通知ステップと、
周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する状態取得ステップと、
自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得するデータ取得ステップと、
他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信するデータ送信ステップと、
を含み、
前記状態取得ステップでは、他車両から受信した状態通知に基づいて、
当該他車両と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータを当該他車両も保持している場合は、当該他車両を当該データのデータ提供者であると判断し、
当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータを当該他車両が保持していない場合は、当該他車両を当該データのデータ要求者であると判断し、
前記キャッシュ管理ステップは、前記キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する
キャッシュ管理方法。
【請求項8】
複数の車両とサーバ装置から構成されサーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムにおける車両が実行するためのキャッシュ管理プログラムであって、
車両に、
自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する状態通知ステップと、
周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する状態取得ステップと、
自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得するデータ取得ステップと、
他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信するデータ送信ステップと、
を実行させるためのものであり、
前記状態取得ステップでは、他車両から受信した状態通知に基づいて、
当該他車両と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータを当該他車両も保持している場合は、当該他車両を当該データのデータ提供者であると判断し、
当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータを当該他車両が保持していない場合は、当該他車両を当該データのデータ要求者であると判断し、
前記キャッシュ管理ステップは、前記キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する
キャッシュ管理プログラム。
【請求項9】
複数の車両とサーバ装置から構成され、サーバ装置から車両に対して位置に関連するデータを配信するデータ配信システムであって、
前記サーバ装置は、
データを格納する記憶装置と、
車両からのデータ取得要求に応じて、前記記憶装置に格納されたデータを配信するデータ配信手段と、
を備え、
前記複数の車両は、それぞれ、
データを格納するキャッシュメモリと、
キャッシュメモリを管理するキャッシュ管理手段と、
自車両の走行予定経路と自車両が保持しているデータのデータ識別子とを含む状態通知メッセージを、周囲の車両に送信する状態通知手段と、
周囲の車両から受信した状態通知メッセージに基づいて、周囲の車両の走行予定経路とこの車両が保持しているデータのデータ識別子を取得する状態取得手段と、
自車両内のプログラムからデータの要求を受け付けたときに、当該データがキャッシュメモリ内に格納されていればキャッシュメモリから取得し、キャッシュメモリ内に格納されていなければサーバ装置または他の車両から当該データを取得するデータ取得手段と、
他車両からデータの要求を受け付けたときに、当該データがキャッシュメモリに格納されていればキャッシュメモリから取得して、当該他車両に送信するデータ送信手段と、
を備え、
前記状態取得手段は、他車両から受信した状態通知に基づいて、
当該他車両と自車両の走行予定経路が重複し、かつ、同一方向に走行している場合に、自車両が保持するデータを当該他車両も保持している場合は、当該他車両を当該データのデータ提供者であると判断し、
当該他車両と自車両の走行予定経路が重複し、かつ、反対方向に走行している場合に、自車両が保持するデータを当該他車両が保持していない場合は、当該他車両を当該データのデータ要求者であると判断し、
前記キャッシュ管理手段は、前記キャッシュメモリからデータを削除する必要が生じたときに、データ要求者が少ないデータほど、また、データ提供者が多いデータほど優先して削除する
データ配信システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−48489(P2012−48489A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−189897(P2010−189897)
【出願日】平成22年8月26日(2010.8.26)
【出願人】(502087460)株式会社トヨタIT開発センター (232)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願日】平成22年8月26日(2010.8.26)
【出願人】(502087460)株式会社トヨタIT開発センター (232)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
[ Back to top ]