【文献】
Amin Vahdat,David Becker,Epidemic Routing for Partially-Connected Ad Hoc Networks,Technical Report. CS-2000-06,Duke University,2000年,全文,URL,http://issg.cs.duke.edu/epidemic/epidemic.pdf
【文献】
Mert Akdere et.al,A comparison of epidemic algorithms in wireless sensor networks,Computer Communications,2006年 3月 3日,Vol.29,第2450-2457頁
【文献】
植田啓文,藤田範人,Epidemic型情報共有におけるメッセージ量削減手法,電子情報通信学会総合大会講演論文集,日本,社団法人電子情報通信学会,2010年 3月16日,第171頁
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0020】
以下、実施の形態を説明する。以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが必須の構成要素であるとは限らない。
【0021】
図1は、一実施形態に係る情報共有システム100の利用環境の一例を示す。情報共有システム100は、複数の移動通信端末110a、b、c、・・・(以下、移動通信端末110と総称する。)を備える。情報共有システム100は、移動通信端末110が多数集まり、各々を無線通信L1で接続し、アドホックネットワークを構築することで実現される。
【0022】
図2は、サマリーベクターの具体例を示す。サマリーベクター(SV)は、移動通信端末110の保持する情報を通知するメッセージである。また、サマリーベクター(SV)は、自端末の保持コンテンツを通知するだけではなく、ネットワーク内の他の移動通信端末110の保持コンテンツのサマリ情報、例えばハッシュテーブル化されたデータや位置情報等複数の要素から構成されるリスト化された情報の総称とする。そして、本実施の形態では、他の移動通信端末110とのSVの交換により、次の1〜4のようなイベントを検知した場合に自端末のSVを送信するものとする。
1.新規移動通信端末110を検知
2.受信SVが保持していない情報を自端末が保持していた場合
3.受信SVが自端末より古い情報を保持していた場合。
4.一定間隔毎に定期的に送信
【0023】
本実施の形態におけるSVの内容は、
図2に示すネットワーク内コンテンツ情報102として説明する。また、例えば、移動通信端末110aと移動通信端末110bが持つSVのサマリ情報をそれぞれX、Yとしたとき、そのSVをSV(X)、SV(Y)と表記する。そして、端末110aが端末110bからSVを受信し、SVの内容が更新された場合は、端末110aのSVであるSV(X)と、端末110bのSVであるSV(Y)の2つの情報を保持していることがわかるように、端末110aのSVはSV(X,Y)と分けて表記するものとする。
【0024】
図3は、第1の実施の形態の構成図を示す。移動通信端末110は、他の移動通信端末110b、c、・・と無線通信を行う無線通信機能部11と、自端末の保持する情報を管理する情報管理部12と、情報交換の制御を行う交換制御部13を含む。
【0025】
無線通信機能部11は、情報交換部111を備えている。情報交換部111では、無線通信機能部11を通じて他の移動通信端末からの情報(SV、コンテンツ取得要求や応答、コンテンツ情報、他の移動通信端末の位置情報)の受信や自端末が保持するコンテンツ情報や定期的にSVを送信する機能を有する。受信した情報は、情報管理部12のデータ記憶部121に送られ、データ記憶部121に保存される。また、SVを受信した場合は、交換制御部13の交換検知部131を経由してからデータ記憶部121に保存される。
情報の送信を行う場合は、情報交換部111は、情報管理部12内のデータ記憶部121から送信する情報を読み込み、情報の送信を行う。SVを送信する場合は、定期的に送信する以外に、交換制御部13の重複判定部133から送信通知を受け取った場合に、データ記憶部121から自端末のSVを読み出し、SVの送信を行う。
【0026】
情報管理部12は、データ記憶部121を備えている。データ記憶部121は、自端末が作成したコンテンツやSV、情報交換部111を通じて取得したコンテンツや交換検知部131を通して受信したSVを更新・保存・削除する機能を有する。新たにSVを受け取った場合は、保存されている自端末のSVと統合する。例えば、受信SVと自端末のSV内のサマリ情報を比較し、更新日時の新しいサマリ情報が受信SV内にあれば、該当する自端末のSV内のサマリ情報を上書きし、新しく得たサマリ情報があれば自端末のSVに追記し更新する。情報交換部111から情報送信の通知を受け取った場合は、該当する情報を情報交換部111に送る。
【0027】
交換制御部13は、交換検知部131、隣接端末管理部132、重複判定部133、内部推測部134、バックオフ計算部135を備えている。交換検知部131は、無線通信機能部11の情報交換部111から、他の移動通信端末からのSVを受け取ると、自端末のSVと比較してSVの交換が必要かどうか判断し、交換が必要であれば重複判定部133にその旨を通知する機能を有する。SV交換の判断は、自端末が受信SVに無いサマリ情報、もしくは更新日時の新しいサマリ情報を保持していた場合に交換が必要と判断する。例えば、受信SVに無いサマリ情報を自端末のSVが保持していた場合は、自端末のSVの方がより多くのネットワーク内のサマリ情報を備えたSVであると判断し、SV送信元移動通信端末とSVの交換を行う。また、受信SV内のサマリ情報が自端末内のSVよりも古いことを検知した場合は、自端末のSVがより新しいサマリ情報を含んだSVであると判断し、SV送信元移動通信端末に通知するためにSVの交換が必要と判断する。
【0028】
また、SVの交換の判断が終了すると、交換可否に関わらず、情報管理部12のデータ記憶部121に受信SVを送り自端末のSVを更新する。もし、交換を行うと判断した場合は、更に重複判定部133へSV交換開始の通知を送り、他の移動通信端末と自端末が送信するSVの内容が重複しないか判定を行う。更に、重複判定部133から送信完了の通知を受け取るまでは、SV送信の待ち時間(バックオフ期間中)であると認識し、以降の受信したSVをデータ記憶部121に送るだけでなく、隣接端末管理部132へ送り、自端末のSV送信決定の判断からSVを送信するまでのSVの受信履歴を保存する処理を行う。
【0029】
隣接端末管理部132は、
図4A及び
図4Bに示すように、交換検知部131から送られてくる他の移動通信端末のSVの受信履歴(
図4A)の保存と、自端末が推測した他の移動通信端末のSVの内部推測結果(
図4B)を保存する機能を有する。例えば、新たに交換検知部131からSVを受け取ると、まず、SVの受信履歴を保存する。受信したSVが時刻13:00:00に端末110bから受信したもので、そのサマリ情報が「X」という内容だったとすると、
図4Aに示すように、送信端末IDが「110b」、その端末から受信したSVの内容が「X」と記録する。次に、隣接端末管理部132は、内部推測部134を用いて、SV受信履歴と以前の内部推測結果から、
図4Bに示す新しい内部推測結果を取得し、保存する。
【0030】
重複判定部133は、自端末がSVを送信するまでに他の移動通信端末が自端末と重複する内容のSVを送信したかどうか、他の移動通信端末が自端末と同じサマリ情報を保持しているかどうかを判断する機能を有する。交換検知部131から自端末のSVを送信するという通知を受け取ると、重複判定部133は自端末のSVの送信処理を開始する。
【0031】
まず、重複判定部133は、バックオフ計算部135を用いて自端末のSVの送信タイミングを決定する。そして、SV送信時には、隣接端末管理部132から他の移動通信端末のSVの内部推測結果を読み出し、内部推測結果と自端末のSV(自端末の保有する情報)に基づいて送信の可否を決定する。送信する場合には、情報交換部111へ通知を送り、自端末のSVの送信を行う。
【0032】
このとき、SVの送信可否の決定は、内部推測結果内の他の移動通信端末のSV(他の移動通信端末の保有する情報)に対して、送信する自端末のSV(自端末の保有する情報)の情報を全て含まない他の移動通信端末のSVが1つ以上、もしくは、閾値以上存在した場合に送信を行う。内部推測結果内の全てのSVに含まれている場合は、すでに他の移動通信端末は自端末と同じ保有情報を保持しているため、自端末のSVを送信する必要はないと判断し、自端末のSVの送信を取り止める。送信制御が終了すると、重複判定部133は、交換検知部131にSV送信制御の完了通知を返答する。また、送信可否の決定は、他の移動通信端末からSVを受信する度に行い、自端末のSV送信タイミングまで待たずにSVの送信を取り止めても良い。
【0033】
内部推測部134は、隣接端末管理部132に保存されているSVの受信履歴から他の移動通信端末が保持していると考えられる現在のSV(保有する情報)を自端末内部で推測する機能を有する。隣接端末管理部132から、他の移動通信端末からのSVの受信履歴と以前に計算した他の移動通信端末の保持するSVの内部推測結果を受け取ると、現在、他の移動通信端末が保持していると考えられるSVを推測する。他の移動通信端末のSVの推測方法は、いくつか考えられる。
【0034】
例えば、
図5に示すように、SVの受信履歴111において受信したSVの内容の総和(X,Y)は、自端末の通信範囲内に送信された情報になるので、自端末の通信範囲内にいる全ての他の移動通信端末も同じ情報を保持しているとし、単純に
図5の内部推測結果121のように推測する方法が考えられる。
【0035】
また、SV受信履歴内の移動通信端末110のSVの共通部分に基づいてSVを推測する方法も考えられる。他の移動通信端末からSVを受信しSVの受信履歴の保存を開始し、他の移動通信端末のSV推測時までの受信履歴が、例えば
図6のSV受信履歴112に示すように、最初に移動通信端末110bからSV(X)を受信し、次に移動通信端末110cから情報SV(X,Y)を受信したとする。
【0036】
このとき、移動通信端末110cから受信したSVには、移動通信端末110bが送信してきたサマリ情報「X」が含まれており、移動通信端末110b及び移動通信端末110cのSV内のサマリ情報に共通部があることがわかる。そうすると、移動通信端末110bに対して共通部を持つ移動通信端末110cは、移動通信端末110bが送信したSVを受信した後にSVを送信してきたと考えることができる。このことから、移動通信端末110cが送信したSV(X,Y)を移動通信端末110bも同様に受信していると判断し、
図6の内部推測結果122の示すように移動通信端末110bのSVは、SV(X,Y)であると推測する方法が考えられる。
【0037】
更に、データ記憶部121において、定期的なSVの送受信を含めた内部推測結果算出までのSVの受信履歴を保存していた場合は、過去の履歴からの変化に基づいて推測する方法も考えられる。例えば、
図7の受信履歴113に示すように、最初に定期的なSVの受信により移動通信端末110cからSV(Y)を受信しており、その後、移動通信端末110bがSV(X)を送信し、続いて移動通信端末110cがSV(X,Y)を送信したとする。このとき、移動通信端末110bの送信前後で、移動通信端末110cのSVが「X」から「X,Y」に変化していることがわかる。このSVの変化に加えて、移動通信端末110bに続いて移動通信端末110cがSVを送信してきたということは、移動通信端末110cは、移動通信端末bのSVを受信しSVの違いを検知した上で、自端末のSVを送信したと考えることができる。このことから、移動通信端末110bと移動通信端末110cはお互いに通信可能な位置に存在し、移動通信端末110cが送信したSV(X,Y)を移動通信端末110bも受信していると判断し、
図7の内部推測結果123に示すように、移動通信端末110bのSVはSV(X,Y)であると推測する方法が考えられる。
【0038】
前述した方法において、サマリ情報「X」が更新され「X´」となった場合は、同一の情報として扱うのではなく、別の情報として扱う。例えば、共通部分に基づいた推測方法で例を述べると、最初に移動通信端末110bからSV(X,Y)を受信し、移動通信端末110cからSV(X´,Y)を受信したとする。このとき、情報の新旧が異なるサマリ情報「X」は互いに異なるものとして扱い、共通部としてサマリ情報「Y」を認識する。そして、移動通信端末110b及び移動通信110cはお互いに通信可能な範囲にいるものと判断し、移動通信端末110b及び移動通信端末110cはSV(X´,Y)を保有していると推測する。
【0039】
以上に述べたように、内部推測部134で計算された他の移動通信端末のSVの内部推測結果は、隣接端末管理部132へ送り返され、隣接端末管理部132が保存している他の移動通信端末のSVの内部推測結果が更新される。
【0040】
バックオフ計算部135は、自端末のSVの送信タイミングを決定する機能を有する。バックオフ計算部135は、重複判定部133からバックオフ期間の計算開始の通知を受け取ると、ランダムに送信待ち時間を計算する(式(1))。送信待ち時間の計算は、情報交換部111で端末の位置情報を交換し、データ記憶部121から位置情報が利用できる場合には、データ記憶部121から端末の位置関係、移動速度を読み出して計算に利用しても良い(式(2))。位置情報から移動速度を計算し移動速度が速い端末ほど、優先的にSVを送信したい場合は、補正係数αを大きくする、もしくは、乱数値の増減を決める基準値を小さく設定すれば良い。
【0042】
図8は、第1の実施の形態の動作フローチャートを示す。以下、本実施形態において移動通信端末110間の保持情報に基づいたSVの送信制御について詳細に説明する。他の移動通信端末のSVの推測方法は、
図6に示すSV受信履歴内の端末のSVの共通部分に基づいた方法を用いるものとする。
【0043】
図9に示す移動通信端末110a〜110dは、それぞれ他の全ての端末との間で通信可能なアドホックネットワークを構築している。そして、移動通信端末110a〜110dは、
図9に示すように、それぞれサマリ情報X、Y、Z、ZのSVを保持しているとする。このとき、各々の移動通信端末110は、ネットワーク上の情報を把握するために他の移動通信端末110とSVの交換を開始する。
【0044】
まず、各移動通信端末110は、自身のSVを定期的にブロードキャスト形式で他の移動通信端末110に送信することで、移動通信端末110間におけるSVの違いを監視する。このとき、他の移動通信端末110からSVを受信すると、交換制御部13の交換検知部131を用いて、自端末のSVの送信が必要かどうかを判断(
図8 S100、S101)してから、データ記憶部121に送られ、自端末のSVが更新される。
【0045】
交換検知部131では、まず、自端末がすでに他のSVを受信しており、重複検知部133にSV送信制御の通知を送り、完了通知の応答を待っているバックオフ期間中であるかどうか(
図8 S100)を判断する。
【0046】
バックオフ期間中でなければ、受信したSVと自端末のSVのサマリ情報の差分を確認(
図8 S101)し、受信SVに無い、又は新しいサマリ情報を自端末が保持している、もしくは新規端末を検知した場合には、自端末のSVの送信処理(
図8 S102以降)を開始する。
【0047】
次に、実際に
図9に示す状況から、移動通信端末110a〜110dのSVの交換が完了するまでの流れを
図8〜14を用いて説明する。
【0048】
まず、移動通信端末110aが他の移動通信端末110b〜110dに自端末のSVを通知するために、定期的なSVの送信としてSV(X)を送信したとする。移動通信端末110aからSV(X)を受信した移動通信端末110b〜110dは、交換検知部131において受信したSVの内容に基づいて、自端末のSVの送信が必要かどうかの判断(
図8 S100、S101)を開始する。
【0049】
ステップS100では、移動通信端末110b〜110dの交換検知部131は、現在は重複検知部133にSV送信制御の通知を送っておらず、完了通知の応答を待っているバックオフ期間ではないので、
図8のステップS100ではバックオフ期間中でないとして、次ステップS101の処理に移る。
【0050】
ステップS101では、自端末のSVと受信したSV間の差分を確認し、自端末のSVの送信が必要かどうか判断する。
図9内の表に示すように自端末のSVと受信したSV(X)を比較し差分を確認すると、自末は移動通信端末110aのSV(X)に無いサマリ情報、例えば移動通信端末110bはサマリ情報Y,移動通信端末110c、移動通信端末110dはサマリ情報Z、があり、移動通信端末110aに通知すべきサマリ情報を自端末が保持していることがわかる。
【0051】
その結果、各移動通信端末110b〜110dの交換検知部131は、自端末のSVの送信が必要と判断し、重複判定部133に自端末のSVの送信制御を行うように通知を送る。これにより、各移動通信端末110b〜110dは、
図8に示すS102以降のSVの送信処理を開始する。
【0052】
ここで、重複判定部133にSV送信制御の通知を送った交換検知部131は、自端末のSVの送信処理が完了したという応答を重複判定部133から受け取るまで、今後は受信したSVをデータ記憶部121に送り自端末のSVを更新するだけではなく、隣接端末管理部132にもSVを送り、一時的なSVの受信履歴(
図10)の保存も行う。
【0053】
まず、隣接端末管理部132は、SVの送信が必要と判断した交換検知部131からSVを受け取ると、
図8のステップS102の処理を開始する。
【0054】
ステップS102では、隣接端末管理部132は、交換検知部131から受け取ったSVを、
図10に示すSV受信履歴のように、送信元端末ID(110a)と受信したSVの内容(X)を記録し受信履歴として保存する。その後、内部推測部134を用いて、内部推測結果(
図10)の計算を行う(
図8 S102)。内部推測結果は、端末自身が他の移動通信端末の現在のSVを推測したものである。
【0055】
図8のステップS102の処理において、初回の内部推測結果の算出では、受信したSVの内容とその送信元端末以外に、他の移動通信端末110の情報及び、その端末のSVの情報を保持していない。そのため、受信したSVの情報(送信元端末IDとSVの内容)を
図10に示すように内部推測結果としてそのまま記録する。初回以降は、隣接端末管理部132は、SVを交換検知部131から受け取るたびに内部推測部134を用いて内部推測結果を更新し記録する。
【0056】
一方で、データ記憶部121は、交換検知部131からSVを受け取ると、
図8のステップS103の処理を開始する。
【0057】
ステップS103では、データ記憶部121は、自端末のSVと受信SV内のサマリ情報に更新日時の新旧、又は差分がないか確認し、
図10に示すように自端末のSV内のサマリ情報を更新する。今回は、自端末が保持していないサマリ情報Xを受信したので、移動通信端末110b〜110dは自端末のSVにサマリ情報Xを追記し、移動通信端末110bはSV(X,Y)、移動通信端末110c及び移動通信端末110dはSV(X,Z)にSVを更新する(
図8 S103)。
【0058】
次に、移動通信端末110b〜110dの重複判定部133は、交換検知部131からSV送信制御の通知を受け取ると、自端末のSVを送信するために
図8のステップS104以降の処理を開始する。
【0059】
ステップS104では、自端末のSV送信のタイミングを決定するために、重複判定部133はバックオフ計算部135を用いてSVを送信する時刻を決定する(
図8 S104)。その後、ステップS105の処理に移る。
【0060】
この送信時刻の決定は、ランダム遅延時間(式(1))や端末の移動速度に基づいて計算(式(2))しても良い。移動速度に基づいて計算する場合は、移動速度が速い端末は、通信範囲外に移動してしまう前にSVを送信できるように、送信時間を早めるようにすることが考えられる。
【0061】
次に、ステップS105で示されるSV送信時刻までのバックオフ期間中に、移動通信端末110b〜110dは新たに別のSVを受信すると、各端末の交換検知部131は、
図8のステップS100の処理においてバックオフ期間中と判定する。これにより、新たにSVを受信した場合は、
図8のステップS109及びS110の処理が実行されるようになり、現在のSV送信処理が終了するまでは新たにSVを受信しても自端末のSVを送信しなくなる。
【0062】
このとき設定された各端末の送信タイミングと以降のSV送信シーケンスを示したものを
図11に示し、バックオフ期間の決定によるSV送信順序は移動通信端末110b、移動通信端末110c、次いで移動通信端末110dの順として説明する。
【0063】
移動通信端末110aがSVを送信した後、前述したように移動通信端末110b〜110dは、自端末のSV送信のためのバックオフ期間に入る(
図8 S105)。そして、
図11に示すように、移動通信端末110b〜110dの中で、送信時刻が最も早い移動通信端末110bが、
図8のステップS105を終了し、次ステップS106の処理を開始する(
図12)。
【0064】
ステップS106では、移動通信端末110bの重複判定部133は、SV送信時刻になると隣接端末管理部132から内部推測結果を読み出し、推測した他の移動通信端末のSVと自端末のSVを比較し、他の移動通信端末に対して送信すべきサマリ情報の差分があるかどうか確認する(
図8 S106)。
【0065】
その結果、移動通信端末110bは、自身のSV(X,Y)には推測した移動通信端末110aのSV(X)に無いサマリ情報「Y」を保持していることがわかる。これにより、移動通信端末110bは、自端末のSVは移動通信端末110aに比べてより多くのサマリ情報を含んでいるSVであると判断し、移動通信端末110aに通知するために自端末のSV(X,Y)の送信を決定する(
図8 S107)。
【0066】
そして、重複判定部133は、情報交換部111にSV送信の通知を送り、移動通信端末110bのSVが送信され(
図8 S108)、移動通信端末110bのSV送信処理は終了する。
【0067】
このとき、重複判定部133は、交換検知部131にSV送信完了を通知し、最初に設定されたバックオフ期間を解除すると共に、以降の隣接端末管理部132へのSVの受け渡しと内部推測の計算を終了する。
【0068】
次に、移動通信端末110bからSVを受信した移動通信端末110a、移動通信端末110c、及び移動通信端末110dは、新たに他の移動通信端末からSVを受信したので、各端末の交換検知部131においてSVの送信が必要かどうかの判断(
図8 S100、S101)を開始する。
【0069】
移動通信端末110aは、交換検知部131において、まず、バックオフ期間中かどうかの確認(
図8 S100)を行い、現在はバックオフ期間を設けていないので、バックオフ期間中でないとして、次ステップS101の処理に移る。
【0070】
ステップS101では、自端末のSVと受信したSV間の差分を確認し、自端末のSVの送信が必要かどうか判断する。ステップS101において、移動通信端末110aの交換検知部131は、受信したSV(X,Y)と自端末のSV(X)には差分はあるが、受信したSVに無いサマリ情報を自端末が持っていないため、SVの送信は必要ないと判断し、交換検知部131は処理を終了させる。受信したSVは情報管理部12のデータ記憶部121に送られ、自端末のSVの更新が行われ、
図12に示すようにSVは、新しくサマリ情報Yを受信したのでSV(X,Y)となる。
【0071】
移動通信端末110c及び移動通信端末110dは、交換検知部131において、まず、バックオフ期間中かどうかの確認(
図8 S100)を行う。重複判定部133にSV送信制御の通知を送り、まだ終了を示す応答を交換検知部131は受け取っていないので、現在はバックオフ期間中であるとし、
図8のS109の処理へ移る。
【0072】
ステップS109では、交換検知部131は、受信したSVをデータ記憶部121と隣接端末管理部132に送り、移動通信端末110aからSVを受信した時と同様に、隣接端末管理部132は、SVの受信履歴を更新した後、内部推測部134を用いて他の移動通信端末のSVの内部推測結果を
図12に示すように更新する(
図8 S109)。更に、ステップS110の処理に移り、新しくサマリ情報Yを受信したので
図12に示すように自端末のSVの更新を行う。
【0073】
ここで、2回目以降の内部推測(
図8 S109)の計算では、内部推測部134は、隣接端末管理部132に記録されている他の移動通信端末からのSV受信履歴を用いて行う。
【0074】
図12に示すように、これまでに移動通信端末110c及び移動通信端末110dは、最初に移動通信端末110aからSV(X)を受信し、その後、移動通信端末110bからSV(X,Y)を受信している。その結果、隣接端末管理部132が保存している受信履歴には、移動通信端末110aと移動通信端末110bからの受信履歴が記録されている。
【0075】
このとき、移動通信端末110c及び移動通信端末110dは、受信履歴のSV内のサマリ情報を1つの要素と見なし、積集合(SV(X)∩SV(X,Y))を計算すると、2つのSVの履歴に共通のサマリ情報としてサマリ情報Xが存在することがわかる。SVの送信は、定期的な送信を除けば、他の移動通信端末が保持していないサマリ情報を自端末が保持している場合に送信される。つまり、移動通信端末110a及び移動通信端末110bも他の移動通信端末が保持していないサマリ情報を持っていると判断した上で、これらのサマリ情報を送信したことになる。
【0076】
そうすると、元々、移動通信端末110bはサマリ情報Xを持っておらず、移動通信端末110aからSV(X)を受信した後に、SV(X,Y)を送信してきたと考えられる。もしくは、お互いが通信可能で予め移動通信端末110bは移動通信端末110aより受信していたとも考えられる。それゆえに、移動通信端末110bが送信したSV(X,Y)も移動通信端末110aは受信しており、移動通信端末110aはサマリ情報X,Yを保持していると推測することができる。もし、SVの受信履歴においてSV間の共通部が存在していない場合は、SVを受信していないと判断し、推測する保持情報の更新は行わない。
【0077】
ここでの他の移動通信端末のSVの内部推測結果は、必ずしも正確に推測する必要はない。内部推測は、一度に多くの重複内容の情報が送信されることを抑制するためのものであり、すでに他の移動通信端末が保持している情報と誤判定されたものは、次の定期的なSV送信機会で交換されれば良いためである。
【0078】
内部推測部134の処理であるステップS109が終わり、
図12に示すように、移動通信端末110c及び移動通信端末110dは自身の内部推測結果を更新する。そして、データ記憶部121において自端末のSVを更新(
図8 S110)した後、移動通信端末110c及び移動通信端末110dは、移動通信端末110bのSV受信に対する処理を終了する。
【0079】
移動通信端末110bがSVを送信した後、前述したように移動通信端末110a、移動通信端末110c、及び移動通信端末110dは、新たに受信したSVに対して処理を行う。次に、
図11に示すように、移動通信端末110c及び移動通信端末110dの内で、送信時刻が早い移動通信端末110cが、
図8のステップS105を終了し、次ステップS106の処理を開始する(
図13)。
【0080】
ステップS106では、移動通信端末110cの重複判定部133は、自端末のSV送信時刻になると、隣接端末管理部132から内部推測102を読み出し、他の移動通信端末のSVと自端末のSVを比較し、差分を確認する(
図8 S106)。
【0081】
その結果、移動通信端末110cは、自端末のSV(X,Y,Z)が移動通信端末110aと移動通信端末110bのSV(X,Y)に無いサマリ情報Zを保持していることがわかる。これにより、移動通信端末110cは、移動通信端末110aと移動通信端末110bのSVに比べ、より多くのサマリ情報を含んでいるSVであると判断し、移動通信端末110aと移動通信端末110bに通知するために自端末のSV(X,Y,Z)の送信を決定する(
図8 S107)。
【0082】
そして、重複判定部133は、情報交換部111にSV送信の通知を送り、移動通信端末110cのSVが送信される(
図8 S108)。
【0083】
このとき、重複判定部133は、交換検知部131にSV送信完了を通知し、最初に設定されたバックオフ期間を解除すると共に、以降の隣接端末管理部132へのSVの受け渡しと内部推測結果の計算を終了する。
【0084】
次に、移動通信端末110cからのSVを受信した移動通信端末110a、移動通信端末110b、及び移動通信端末110dは、新たに他の移動通信端末からSVを受信したので、各端末の交換検知部131においてSVの送信が必要かどうかの判断(
図8 S100、S101)を開始する。
【0085】
移動通信端末110aは、前述した移動通信端末110bからSVを受信した場合と同様に、交換検知部131において、現在はバックオフ期間中ではないと判断し(
図8 S100)、更に受信SVと自端末のSVを比較し自端末が送信すべきサマリ情報がない(
図8 S101)ため、受信したSVをデータ記憶部121に送り、自端末のSVの更新を行い、
図13に示すように移動通信端末110aのSVは、新しくサマリ情報Zを受信したのでSV(X,Y,Z)となる。
【0086】
移動通信端末110bは、交換検知部131において、まず、現在はバックオフ期間であるか確認を行う(
図8 S100)。重複判定部133からSV送信制御の完了通知を受け取っているため、現在はバックオフ期間でないとし、ステップS101の処理に移る。
【0087】
ステップS101では、交換検知部131は、受信したSV(X,Y,Z)と自端末のSV(X,Y)には差分があるが、受信したSVに無いサマリ情報を自端末が保持していないため、SVを送信する必要はないと判断し(
図8 S101)、処理を終了する。受信したSVはデータ記憶部121に送られ、自端末のSVの更新を行い、
図13に示すように移動通信端末110bのSVは、新しくサマリ情報Zを受信したのでSV(X,Y,Z)に更新される。
【0088】
移動通信端末110dは、交換検知部131において、まず、バックオフ期間中かどうかを確認する(
図8 S100)。重複判定部133にSV送信制御の通知を送り、まだ終了を示す応答を交換検知部131は受信していないので、現在はバックオフ期間中であるとし、
図8のS109の処理へ移る。
【0089】
ステップS109では、交換検知部131は、受信したSVをデータ記憶部121と隣接端末管理部132に送り、移動通信端末110bからSVを受信した時と同様に、隣接端末管理部132は、SVの受信履歴を更新した後、内部推測部134を用いて他の移動通信端末のSVの内部推測結果を
図13に示すように更新し(
図8 S109)、
図13に示すように自端末のSVの更新(
図8 S110)を行う。
【0090】
ここでの内部推測結果の算出(
図8 S109)は、前述した算出方法と同様に、SVの受信履歴からSV内のサマリ情報の共通部を見つけることで、他の移動通信端末の受信状況を推測する。移動通信端末110dは、
図13内の受信履歴より、移動通信端末110cから受信したサマリ情報SV(X,Y,Z)内には、移動通信端末110a及び移動通信端末110bから受信したサマリ情報SV(X),SV(X,Y)が含まれていることがわかるので、移動通信端末110cと移動通信端末110a及び移動通信端末110bは通信可能な位置にいると判断する。そして、移動通信端末110cが送信した内容を移動通信端末110a及び移動通信端末110bは受信していると判断し、
図13内に示すように移動通信端末110a、移動通信端末110b、及び移動通信端末110cが持つSVの内部推測結果をSV(X,Y,Z)に更新する。
【0091】
移動通信端末110cがSVを送信した後、前述したように移動通信端末110a、移動通信端末110b、及び移動通信端末110dは、新たに受信したSVに対して処理を行う。次に、
図11に示すように、最後にSVを送信する移動通信端末110dが、
図8のステップS105を終了し、次ステップS106の処理を開始する(
図14)。
【0092】
ステップS106では、重複判定部133は、自端末のSV送信時刻になると、現時点の他の移動通信端末のSVを示す内部推測結果を隣接端末管理部132から読み出し、自端末の現在のSVと差分があるかを比較し、SVを送信すべきかどうかの判断を行う(
図8 S107)。
【0093】
その結果、
図14に示すように、移動通信端末110dのSV(X,Y,Z)と、内部推測における全ての他の移動通信端末110a〜110cのSV(X,Y,Z)が一致し、自端末が送るべきサマリ情報がないことがわかる。そして、移動通信端末110dの重複判定部133は、SVを送信する必要はないと判断し、自身のSV送信制御を終了する。
【0094】
このとき、重複判定部133は、交換検知部131にSV送信完了を通知し、最初に設定されたバックオフ期間を解除すると共に、以降の隣接端末管理部132へのSVの受け渡しと内部推測の計算を終了する。
【0095】
移動通信端末110a〜110dのSV送信が終了すると、
図14に示すように移動通信端末110a〜110d間でサマリ情報の同期が完了し、全ての移動通信端末110がSV(X,Y,Z)を保持することになる。以降は、定期的なSV送信により、他の移動通信端末とサマリ情報の同期ができているかを監視し、もし他の移動通信端末との間でSVの差分が発生した場合は、前述した同期処理を再度実行する。
【0096】
もし、他の移動通信端末のSVを推測する内部推測が正確に推測できず、1回のサマリ情報同期処理で他の移動通信端末と共有できていないサマリ情報が存在した場合は、次回の定期的なSV交換タイミングで不足分のサマリ情報が補完される。
【0097】
SVの送信が完了した後、Epidemic法を用いた場合は、各移動通信端末110はSVに基づき自端末に足りないコンテンツの受信要求を開始し、コンテンツ情報の同期を開始することになる。SVに位置情報を用いた場合は、SV送信完了と同時に情報の同期が完了する。
【0098】
以上のことによって、移動通信端末110間で重複するSVの送信を削減することができる。これにより、端末密度が高い状況や他の端末との間で類似した情報を保持している場合の既存技術の問題点を解決することができる。
【0099】
本実施の形態では、端末によって構成されたネットワークが無線ネットワークの場合について述べたが、無線ネットワークのように通信範囲内の端末全てに情報が伝達するような他のネットワークに用いることも考えられる。例えば、有線網において、ブロードキャストドメイン(コリジョンドメイン)内の情報共有に利用することが考えられる。
【0100】
図15は、第2の実施の形態の構成を示す。第1の実施の形態においては、自端末のSV送信時にバックオフ期間を一度だけ設定するシステムについて説明した。これに対し、第2の実施の形態では、最初に設定したSVの送信タイミング時に再度バックオフ期間を設定し、バックオフ期間は他の移動通信端末のSVと自信端末の保有する情報に対して共通する要素の割合を示す類似度に基づいて計算する。具体的には、第2の実施の形態は、交換制御部13が、
図3に示された第1の実施の形態における交換制御部13のバックオフ計算部135の代わりに、再帰バックオフ計算部136を有する点で異なる。
【0101】
重複判定部133は、第1の実施の形態と同じ機能を有するが、本実施の形態では、次に述べるSV送信可否の判断を新たに行っても良い。SVの送信可否の決定は、送信する自端末のSVと内部推測結果内の全ての他の移動通信端末のSVの類似度を計算し、その平均が閾値以下の場合に送信を行う。閾値以上の場合は、すでに他の移動通信端末は自端末と同じSVを保持していると判断し、自端末のSVの送信を取り止めても良い。
【0102】
この類似度の計算は、SV内に共通したサマリ情報がいくつ含まれているかに基づいて計算することが考えられる。例えば、SVを1つの集合とし端末のSV内のサマリ情報を集合内の1つの要素と捉え、集合(SVa とSVb)と見なして、集合SVaと集合SVbの共通要素数を少なくとも1方にある要素の総数で割ったもの(ジャッカード係数)で計算したものを用いても良い。
【0104】
また、送信を取り止めるのではなく、再帰バックオフ計算部136を用いて再度バックオフ期間を設けてSVの送信タイミングを決定しても良い。これにより、移動通信端末110間でサマリ情報の差分を多く持っている端末から優先的にSVを送信することが可能になり、一度に多くのサマリ情報の差分を移動通信端末110間で補完することができる。
【0105】
再帰バックオフ計算部136は、データ記憶部121から自端末のSVと隣接端末管理部132から他の移動通信端末のSVの内部推測結果を読み出し、自端末のSVと他の移動通信端末のSVに基づいてバックオフ期間を計算する機能を有する。すぐに送信する場合は、重複判定部133にバックオフ期間なしを通知する。
【0106】
SVに基づいたバックオフの計算は、自端末が保持するSVと受信したSVとの相関に基づいて行う。例えば単純に式(3)のように計算することが考えられる。
【0108】
保持情報の相関は、前述した類似度の計算と同様にジャッカード係数を用いても良い。
式(3)は補正係数の設定によって、端末がとる時間分布を調整することが可能である。
送信タイミングを早める場合はβの値を小さくし、遅くする場合は値を大きくすれば良い。
【0109】
一方で保持情報の相関の影響を強くしたい場合は、γの値を大きくし、影響を弱くしたい場合は値を小さく設定すれば良い。保持情報の相関に基づいてバックオフ期間を設定することで、サマリ情報の差分を多く持つ端末からSVを送信することができ、一度の多くのサマリ情報の差分を補完することが可能になる。
【0110】
また、式(3)を用いずに、ジャッカード係数で算出される相関値に閾値を設け、閾値を超えた場合に第1の実施の形態において用いたバックオフ期間の計算式(1)、(2)のを用いて計算してもよい。
【0111】
図16は、第2の実施の形態の動作フローチャートを示す。第2の実施の形態は、第1の実施の形態のS107とS108の間にS111の処理が追加されていることが特徴である。ステップS100〜S103、S105〜S110で示される交換検知部131、隣接端末管理部132、重複判定部133、内部推測部134が行う処理は、第1の実施の形態の各機能部131〜134の動作と同一のため説明は省略する。
【0112】
第1の実施の形態で説明した
図9に示す状況からSVの同期が完了するまでの流れを用いて、本実施の形態の再帰バックオフ計算部136がS104、S111の処理を行った際の変更点についてのみ詳細に説明する。
【0113】
まず、移動通信端末110aが定期的なSVの送信として、自端末のSVを送信したとする。移動通信端末110aからSVを受信した移動通信端末110b、移動通信端末110c、及び移動通信端末110dは、
図16のステップS100〜S103の処理を行い、次のステップS104において、再帰バックオフ計算部136を用いてバックオフ期間の計算を行う。
【0114】
ステップS104では、再帰バックオフ計算部136は、データ記憶部121から自端末のSV、及び隣接端末管理部132から内部推測結果を読み込む。そして、式(3)に基づいてSV送信時刻を計算し、重複判定部133へ通知する。
【0115】
このバックオフ期間の計算により、第1の実施の形態と同様に
図11に示すようにSV送信順序が決まり、送信順序は、移動通信端末110b、移動通信端末110c、次いで移動通信端末110dとする。
【0116】
移動通信端末110aがSVを送信した後、
図11に示すように移動通信端末110b、移動通信端末110c、及び移動通信端末110dの中で、送信時刻が一番早い移動通信端末110bが次にSVの送信を開始する。
【0117】
移動通信端末110bは、
図16のステップS105、S106を終了すると、ステップS107において移動通信端末110aが保持していないサマリ情報を保持しているので、自端末のSV(X,Y)の送信を決定する。そして、次にステップS111の処理へ移る。
【0118】
ステップS111において、移動通信端末110bの重複検知部133は、自端末のSVの送信決定を判断したが、再度バックオフ期間を設定するかどうかを判断する。
【0119】
バックオフ期間の再設定(
図16 S111)は、他の移動通信端末のSVの内部推測と自端末のSVのジャッカード係数の平均を求めることで比較する。平均値が低い(保持情報の差分が多い、類似8割以下)場合はすぐに送信を行い、平均値が高い(差分が少ない、類似8割以上)場合はすぐに送信を行わず再度バックオフ期間を設けて、通信機会を他の移動通信端末に割り当てるようにする。
【0120】
このように、再度バックオフ期間の設定を行う理由は、自端末が最初に他の移動通信端末に対して多くのサマリ情報の差分を持っていたとしても、自端末より先にSVを送信した端末がすでに同じサマリ情報を送信している場合があるためである。
【0121】
自端末のSV送信時に、他の移動通信端末に対してサマリ情報の差分が減少した場合は、再度バックオフ期間を設けることで、次に送信する多くのサマリ情報の差分を持つ端末に送信機会を与えることができる。その結果、少ない送信回数で、周辺の端末との間で一度に多くのサマリ情報の差分を補完することができる。
【0122】
以降、第1の実施の形態と同様に処理を行っていき、移動通信端末110c及び移動通信端末110dが送信する際に、バックオフの再設定の判断を行いつつ、SVの同期を行う。
【0123】
また、第1の実施の形態で述べたように、新たにSVを受信する度にSV送信可否を判断すること、バックオフ時間の再設定も行っても良い。SVを受信する度に、バックオフ時間の再設定を行うことで、その時点で他の移動通信端末に対して多くのサマリ情報の差分を持っている端末がより早くSVを送信するように動的に送信タイミングを調節することができるようになる。
【0124】
以上のことにより、本実施の形態では、移動通信端末110間の保持情報の差分に基づいてバックオフ期間を設定するため、他の移動通信端末に対して多くのサマリ情報の差分を持つ端末が優先的にSVを送信することになる。その結果、第1の実施の形態に比べて、少ない送信回数で一度に多くのサマリ情報の差分を補完することが可能である。
【0125】
本実施の形態では、複数の移動通信端末110によって構成されたネットワークが無線ネットワークの場合について述べたが、無線ネットワークのように通信範囲内の端末全てに情報が伝達するような他のネットワークに用いることも考えられる。例えば、有線網においては、ブロードキャストドメイン(コリジョンドメイン)内の情報共有に利用することが考えられる。
【0126】
図19は、移動通信端末110をコンピュータ等の電子情報処理装置で構成した場合のハードウェア構成の一例を示す。移動通信端末110は、CPU(Central Processing Unit)周辺部と、入出力部と、レガシー入出力部とを備える。CPU周辺部は、ホスト・コントローラ901により相互に接続されるCPU902、RAM(Random Access Memory)903、グラフィック・コントローラ904、及び表示装置905を有する。入出力部は、入出力コントローラ906によりホスト・コントローラ901に接続される通信インターフェイス907、ハードディスクドライブ908、及びCD−ROM(Compact Disk Read Only Memory)ドライブ909を有する。レガシー入出力部は、入出力コントローラ906に接続されるROM(Read Only Memory)910、フレキシブルディスク・ドライブ911、及び入出力チップ912を有する。
【0127】
ホスト・コントローラ901は、RAM903と、高い転送レートでRAM903をアクセスするCPU902、及びグラフィック・コントローラ904とを接続する。CPU902は、ROM910、及びRAM903に格納されたプログラムに基づいて動作して、各部の制御をする。グラフィック・コントローラ904は、CPU902等がRAM903内に設けたフレーム・バッファ上に生成する画像データを取得して、表示装置905上に表示させる。これに代えて、グラフィック・コントローラ904は、CPU902等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0128】
入出力コントローラ906は、ホスト・コントローラ901と、比較的高速な入出力装置であるハードディスクドライブ908、通信インターフェイス907、CD−ROMドライブ909を接続する。ハードディスクドライブ908は、CPU902が使用するプログラム、及びデータを格納する。通信インターフェイス907は、他の移動通信端末110に接続してプログラム又はデータを送受信する。CD−ROMドライブ909は、CD−ROM992からプログラム又はデータを読み取り、RAM903を介してハードディスクドライブ908、及び通信インターフェイス907に提供する。
【0129】
入出力コントローラ906には、ROM910と、フレキシブルディスク・ドライブ911、及び入出力チップ912の比較的低速な入出力装置とが接続される。ROM910は、移動通信端末110が起動時に実行するブート・プログラム、あるいは移動通信端末110のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ911は、フレキシブルディスク993からプログラム又はデータを読み取り、RAM903を介してハードディスクドライブ908、及び通信インターフェイス907に提供する。入出力チップ912は、フレキシブルディスク・ドライブ911、あるいはパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【0130】
CPU902が実行するプログラムは、フレキシブルディスク993、CD−ROM992、又はIC(Integrated Circuit)カード等の記録媒体に格納されて利用者によって提供される。記録媒体に格納されたプログラムは圧縮されていても非圧縮であってもよい。プログラムは、記録媒体からハードディスクドライブ908にインストールされ、RAM903に読み出されてCPU902により実行される。CPU902により実行されるプログラムは、移動通信端末110を、
図1から
図16に関連して説明した無線通信機能部11、情報管理部12、交換制御部13、情報交換部111、データ記憶部121、交換検知部131、隣接端末管理部132、重複判定部133、内部推測部134、バックオフ計算部135、及び再帰バックオフ計算部136として機能させる。
【0131】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク993、CD−ROM992の他に、DVD(Digital Versatile Disk)又はPD(Phase Disk)等の光学記録媒体、MD(MiniDisk)等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークあるいはインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶媒体を記録媒体として使用して、ネットワークを介したプログラムとして情報共有システム100を提供してもよい。
【0132】
以上、各実施の形態を説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれる。