(57)【要約】【課題】端末装置およびネットワークのリソースの消費を抑えて宛先へのメッセージの到達率を向上させること。【解決手段】端末装置は、直接検出回数に基づく値と間接検出回数に基づく値とを検出情報として検出情報テーブルを記憶する経路制御データベースと、近接通信部が他の端末装置と通信すると、通信した相手の端末装置の直接検出回数に基づく値を算出するとともに、相手の端末装置が記憶する検出情報テーブルに基づいて、検出情報テーブルの検出情報を更新する検出回数管理部と、検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置までの転送確率を算出する確率算出部と、確率算出部が算出した転送確率と相手の端末装置から宛先の端末装置までの転送確率とを比較して、メッセージを転送するか否かを判定する確率判定部と、を備える。【選択図】図２
2015076809.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構成する端末装置であって、
他の端末装置と無線通信する近接通信部と、
他の端末装置を直接的に検出した回数を表す直接検出回数に基づく値と他の端末装置を間接的に検出した回数を表す間接検出回数に基づく値とを検出情報として他の端末装置ごとに検出情報テーブルを記憶する検出回数記憶部と、
前記近接通信部が他の端末装置を検出すると、前記検出回数記憶部が記憶する検出情報テーブルにおける当該検出した相手の端末装置の直接検出回数に基づく値を算出するとともに、前記相手の端末装置が記憶する検出情報テーブルに基づいて、前記検出回数記憶部が記憶する前記検出情報テーブルの前記検出情報を更新する検出回数管理部と、
前記検出回数記憶部が記憶する前記検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置までのメッセージの配送のしやすさを示す転送確率を算出する確率算出部と、
前記確率算出部が算出した自装置から前記宛先の端末装置までの前記転送確率と前記相手の端末装置から前記宛先の端末装置までの転送確率とを比較して、前記メッセージを転送するか否かを判定する確率判定部と、
前記確率判定部が転送すると判定した前記メッセージを前記近接通信部から前記相手の端末装置に転送するメッセージ管理部と、
を備えることを特徴とする端末装置。
【請求項２】
前記確率判定部は、自装置から前記宛先の端末装置までの前記転送確率と前記相手の端末装置から前記宛先の端末装置までの前記転送確率とを比較して、前記メッセージを転送するか、前記メッセージを複製して送信するか、前記メッセージを保持するかを判定し、
前記メッセージ管理部は、前記確率判定部が転送すると判定した前記メッセージを前記近接通信部から前記相手の端末装置に転送し、前記確率判定部が複製して送信すると判定した前記メッセージを複製して前記近接通信部から前記相手の端末装置に送信すること
を特徴とする請求項１に記載の端末装置。
【請求項３】
公衆網と接続する公衆網接続部を備え、
前記検出回数記憶部は、前記公衆網の直接検出回数に基づく値と前記公衆網の間接検出回数に基づく値とを公衆網の検出情報として前記検出情報テーブルに更に記憶し、
前記検出回数管理部は、前記公衆網接続部が前記公衆網に接続すると、前記検出回数記憶部が記憶する前記検出情報テーブルにおいて前記公衆網の直接検出回数に基づく値を算出すること
を特徴とする請求項１または請求項２に記載の端末装置。
【請求項４】
メッセージを生成する生成部と、
前記生成部が生成した前記メッセージを多重化する多重化処理部と、
を備え、
前記メッセージ管理部は、前記多重化処理部が多重化したメッセージを異なるタイミングで送信すること
を特徴とする請求項１から請求項３のいずれか一項に記載の端末装置。
【請求項５】
前記メッセージ管理部は、自装置宛のメッセージを受信すると、当該メッセージおよび当該メッセージと同一のメッセージが送達されたことを他の端末装置に通知すること
を特徴とする請求項４に記載の端末装置。
【請求項６】
宛先に送達されたメッセージの一覧である送達済リストと宛先に送達されていないメッセージとを記憶するメッセージ記憶部を備え、
前記メッセージ管理部は、前記近接通信部が他の端末装置を検出すると、当該検出した相手の端末装置が記憶する送達済リストに基づいて、前記メッセージ記憶部が記憶する前記送達済リストを更新し、更新した前記送達済リストにある前記宛先に送達されていないメッセージを前記メッセージ記憶部から削除すること
を特徴とする請求項１から請求項５のいずれか一項に記載の端末装置。
【請求項７】
ネットワークを構成する端末装置における経路制御方法であって、
前記端末装置が、他の端末装置を検出すると、他の端末装置を直接的に検出した回数を表す直接検出回数に基づく値と他の端末装置を間接的に検出した回数を表す間接検出回数に基づく値とを検出情報として他の端末装置ごとに検出情報テーブルを記憶する検出回数記憶部が記憶する前記検出情報テーブルにおける当該検出した相手の端末装置の直接検出回数に基づく値を算出するとともに、前記相手の端末装置が記憶する検出情報テーブルに基づいて、前記検出回数記憶部が記憶する前記検出情報テーブルの前記検出情報を更新するステップと、
前記端末装置が、前記検出回数記憶部が記憶する前記検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置までのメッセージの配送のしやすさを示す転送確率を算出するステップと、
前記端末装置が、前記算出した自装置から前記宛先の端末装置までの前記転送確率と前記相手の端末装置から前記宛先の端末装置までの転送確率とを比較して、前記メッセージを転送するか否かを判定するステップと、
前記端末装置が、前記転送すると判定した前記メッセージを前記相手の端末装置に転送するステップと、
を有することを特徴とする経路制御方法。
【請求項８】
ネットワークを構成する端末装置としてのコンピュータに、
他の端末装置を検出すると、他の端末装置を直接的に検出した回数を表す直接検出回数に基づく値と他の端末装置を間接的に検出した回数を表す間接検出回数に基づく値とを検出情報として他の端末装置ごとに検出情報テーブルを記憶する検出回数記憶部が記憶する前記検出情報テーブルにおける当該検出した相手の端末装置の直接検出回数に基づく値を算出するとともに、前記相手の端末装置が記憶する検出情報テーブルに基づいて、前記検出回数記憶部が記憶する前記検出情報テーブルの前記検出情報を更新するステップと、
前記検出回数記憶部が記憶する前記検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置までのメッセージの配送のしやすさを示す転送確率を算出するステップと、
前記算出した自装置から前記宛先の端末装置までの前記転送確率と前記相手の端末装置から前記宛先の端末装置までの転送確率とを比較して、前記メッセージを転送するか否かを判定するステップと、
前記転送すると判定した前記メッセージを前記相手の端末装置に転送するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、経路制御方法およびプログラムに関する。
【背景技術】
【０００２】
端末装置を利用したアドホックネットワークでは、送信元から宛先までＥｎｄ−ｔｏ−Ｅｎｄで応答可能な通信経路が確立されていないと通信を行うことができない。端末装置（以下、ノードとも称する。）による大規模なネットワークを想定した場合には、ノードの接触は疎であると考えられ、ネットワークの時間的および空間的な不連続性が発生し、物理的なネットワークトポロジが絶えず変化する。このような環境下では、データを直ちに次のノードに転送せずに一時的に蓄積するＤＴＮ（Ｄｅｌａｙ  Ｔｏｌｅｒａｎｔ  Ｎｅｔｗｏｒｋ：耐性遅延ネットワーク）がある。ＤＴＮのためのデータの中継転送は、接触したノード間ですべてのメッセージを複製し合い、感染的にメッセージをネットワーク中のノードに拡散することで宛先のノードに届ける手法（例えば、非特許文献１参照）や、宛先までのメッセージの配送のしやすさを表す配送率を算出することにより転送先のノードを選択する手法（例えば、特許文献１または非特許文献２参照）などがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００９／０７８４２７号
【非特許文献】
【０００４】
【非特許文献１】Ａ．Ｖａｈａｄａｔ  ａｎｄ  Ｄ．Ｂｅｃｋｅｒ、“Ｅｐｉｄｅｍｉｃ  Ｒｏｕｔｉｎｇ  ｆｏｒ  Ｐａｒｔｉａｌｌｙ−Ｃｏｎｎｅｃｔｅｄ  Ａｄ  Ｈｏｃ  Ｎｅｔｗｏｒｋｓ”、  Ｔｅｃｈ  ｒｅｐｏｒｔ、  Ｄｕｋｅ  Ｕｎｉｖｅｒｓｉｔｙ（２０００）.
【非特許文献２】Ａ．Ｌｉｎｄｇｒｅｎ、  Ａ．Ｄｏｒｉａ  ａｎｄ  Ｏ．Ｓｃｈｅｌｅｎ、“Ｐｒｏｂａｂｉｌｉｓｔｉｃ  Ｒｏｕｔｉｎｇ  ｉｎ  Ｉｎｔｅｒｍｉｔｔｅｎｔｌｙ  Ｃｏｎｎｅｃｔｅｄ  Ｎｅｔｗｏｒｋｓ”、  ＬＮＣＳ、  ３１２６、  ｐｐ．２３９−２５４（２００４）.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１に記載された技術では、接触したノードすべてに対してメッセージを感染的に複製するため、感染的に複製された余分なメッセージがネットワーク全体に幾何級数的に増加することになり、ネットワーク全体のリソースの消費が大きくなり、結果的にメッセージの到達率が低くなる、という問題がある。
また、特許文献１および非特許文献２に記載された技術では、ノード同士が一度でも接触した場合には、配送率が０にならないため、時間の経過とともに算出する配送率と実際の配送率とが乖離する、という問題がある。また、一度でも接触したすべてのノードの配送率を時間とともに減衰させる計算を一定のタイミングで行うため、ノードのリソース消費が大きくなる、という問題がある。さらに、ノードの移動性が高い環境においては、配送率を正確に判定することが困難であり、転送先のノードを選択して託す手法のみではメッセージの到達率が低くなる、という問題がある。
【０００６】
また、特許文献１に記載された技術では、あるノードが別の送信元のノードから宛先のノードまでのエンド‐エンド（Ｅｎｄ  ｔｏ  Ｅｎｄ）の接続関係を、経路要求メッセージを送信して、当該経路要求メッセージに対する応答の有無により判定し、当該経路要求メッセージの送信時に、エンド‐エンドの転送経路が確立しているもののみ考慮され、ノードが疎であるときには経路要求メッセージを送信しても転送経路が存在せず、宛先のノードへのメッセージ到達率が低くなると、という問題があった。また、非特許文献２に記載された技術では、複数のノードを経由する転送経路について考慮されていない。
このように、ネットワークにおいて、端末装置およびネットワークリソースの消費が大きくなり、宛先へのメッセージの到達率が低くなる、という問題があった。
【０００７】
そこで、本発明は、上述の事情を鑑みてなされたものであり、端末装置およびネットワークのリソースの消費を抑えて宛先へのメッセージの到達率を向上させることができる端末装置、経路制御方法およびプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
（１）本発明は、上述した課題を解決するためになされたものであり、本発明の一態様は、ネットワークを構成する端末装置であって、他の端末装置と無線通信する近接通信部と、他の端末装置を直接的に検出した回数を表す直接検出回数に基づく値と他の端末装置を間接的に検出した回数を表す間接検出回数に基づく値とを検出情報として他の端末装置ごとに検出情報テーブルを記憶する検出回数記憶部と、前記近接通信部が他の端末装置を検出すると、前記検出回数記憶部が記憶する検出情報テーブルにおける当該通信した相手の端末装置の直接検出回数に基づく値を算出するとともに、前記相手の端末装置が記憶する検出情報テーブルに基づいて、前記検出回数記憶部が記憶する前記検出情報テーブルの前記検出情報を更新する検出回数管理部と、前記検出回数記憶部が記憶する前記検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置までのメッセージの配送のしやすさを示す転送確率を算出する確率算出部と、前記確率算出部が算出した自装置から前記宛先の端末装置までの前記転送確率と前記相手の端末装置から前記宛先の端末装置までの転送確率とを比較して、前記メッセージを転送するか否かを判定する確率判定部と、前記確率判定部が転送すると判定した前記メッセージを前記近接通信部から前記相手の端末装置に転送するメッセージ管理部と、を備えることを特徴とする端末装置である。
【０００９】
（２）また、本発明の他の一態様は、上述の端末装置であって、前記確率判定部は、自装置から前記宛先の端末装置までの前記転送確率と前記相手の端末装置から前記宛先の端末装置までの前記転送確率とを比較して、前記メッセージを転送するか、前記メッセージを複製して送信するか、前記メッセージを保持するかを判定し、前記メッセージ管理部は、前記確率判定部が転送すると判定した前記メッセージを前記近接通信部から前記相手の端末装置に転送し、前記確率判定部が複製して送信すると判定した前記メッセージを複製して前記近接通信部から前記相手の端末装置に送信することを特徴とする端末装置である。
【００１０】
（３）また、本発明の他の一態様は、上述の端末装置であって、公衆網と接続する公衆網接続部を備え、前記検出回数記憶部は、前記公衆網の直接検出回数に基づく値と前記公衆網の間接検出回数に基づく値とを公衆網の検出情報として前記検出情報テーブルに更に記憶し、前記検出回数管理部は、前記公衆網接続部が前記公衆網に接続すると、前記検出回数記憶部が記憶する前記検出情報テーブルにおいて前記公衆網の直接検出回数に基づく値を算出することを特徴とする端末装置である。
【００１１】
（４）また、本発明の他の一態様は、上述の端末装置であって、メッセージを生成する生成部と、前記生成部が生成した前記メッセージを多重化する多重化処理部と、を備え、前記メッセージ管理部は、前記多重化処理部が多重化したメッセージを異なるタイミングで送信することを特徴とする端末装置である。
【００１２】
（５）また、本発明の他の一態様は、上述の端末装置であって、前記メッセージ管理部は、自装置宛のメッセージを受信すると、当該メッセージおよび当該メッセージと同一のメッセージが送達されたことを他の端末装置に通知することを特徴とする端末装置である。
【００１３】
（６）また、本発明の他の一態様は、上述の端末装置であって、宛先に送達されたメッセージの一覧である送達済リストと宛先に送達されていないメッセージとを記憶するメッセージ記憶部を備え、前記メッセージ管理部は、前記近接通信部が他の端末装置を検出すると、当該検出した相手の端末装置が記憶する送達済リストに基づいて、前記メッセージ記憶部が記憶する前記送達済リストを更新し、更新した前記送達済リストにある前記宛先に送達されていないメッセージを前記メッセージ記憶部から削除することを特徴とする端末装置である。
【００１４】
（７）また、本発明の他の一態様は、経路制御方法であって、ネットワークを構成する端末装置における経路制御方法であって、前記端末装置が、他の端末装置を検出すると、他の端末装置を直接的に検出した回数を表す直接検出回数に基づく値と他の端末装置を間接的に検出した回数を表す間接検出回数に基づく値とを検出情報として他の端末装置ごとに検出情報テーブルを記憶する検出回数記憶部が記憶する前記検出情報テーブルにおける当該検出した相手の端末装置の直接検出回数に基づく値を算出するとともに、前記相手の端末装置が記憶する検出情報テーブルに基づいて、前記検出回数記憶部が記憶する前記検出情報テーブルの前記検出情報を更新するステップと、前記端末装置が、前記検出回数記憶部が記憶する前記検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置までのメッセージの配送のしやすさを示す転送確率を算出するステップと、前記端末装置が、前記算出した自装置から前記宛先の端末装置までの前記転送確率と前記相手の端末装置から前記宛先の端末装置までの転送確率とを比較して、前記メッセージを転送するか否かを判定するステップと、前記端末装置が、前記転送すると判定した前記メッセージを前記相手の端末装置に転送するステップと、を有することを特徴とする経路制御方法である。
【００１５】
（８）また、本発明の他の一態様は、プログラムであって、ネットワークを構成する端末装置としてのコンピュータに、他の端末装置を検出すると、他の端末装置を直接的に検出した回数を表す直接検出回数に基づく値と他の端末装置を間接的に検出した回数を表す間接検出回数に基づく値とを検出情報として他の端末装置ごとに検出情報テーブルを記憶する検出回数記憶部が記憶する前記検出情報テーブルにおける当該検出した相手の端末装置の直接検出回数に基づく値を算出するとともに、前記相手の端末装置が記憶する検出情報テーブルに基づいて、前記検出回数記憶部が記憶する前記検出情報テーブルの前記検出情報を更新するステップと、前記検出回数記憶部が記憶する前記検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置までのメッセージの配送のしやすさを示す転送確率を算出するステップと、前記算出した自装置から前記宛先の端末装置までの前記転送確率と前記相手の端末装置から前記宛先の端末装置までの転送確率とを比較して、前記メッセージを転送するか否かを判定するステップと、前記転送すると判定した前記メッセージを前記相手の端末装置に転送するステップと、を実行させるためのプログラムである。
【発明の効果】
【００１６】
本発明によれば、他の端末装置を直接検出した回数を表す直接検出回数に基づく値と、他の端末装置を間接的に検出した回数を表す間接検出回数とに基づいて算出した転送確率を比較することによりメッセージを転送するか否かを判定する。これにより、ネットワークにおいて、端末装置およびネットワークのリソースの消費を抑えて宛先へのメッセージの到達率を向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係る通信システムの構成の一例を示す概略図である。
【図２】本発明の第１の実施形態に係る端末装置の構成の一例を示す概略ブロック図である。
【図３】本発明の第１の実施形態に係る端末装置のハードウェア構成の一例を示すハードウェア構成図である。
【図４】本発明の第１の実施形態に係るメッセージデータベースが記憶する送達済リストのデータ構造およびデータの一例を示す概略図である。
【図５】本発明の第１の実施形態に係る経路制御データベースが記憶する検出情報テーブルのデータ構造およびデータの一例を示す概略図である。
【図６】本発明の第１の実施形態に係る通信システムにおけるメッセージの配送方法の一例を説明するための説明図である。
【図７】本発明の第１の実施形態に係る端末装置が実行するメッセージ生成処理の処理手順の一例を示すフローチャートである。
【図８】本発明の第１の実施形態に係る端末装置が実行するメッセージ転送処理の処理手順の一例を示すフローチャートである。
【図９】本発明の第１の実施形態に係る検出回数管理部が実行する検出回数算出処理の処理手順の一例を示すフローチャートである。
【図１０】本発明の第１の実施形態に係る確率判定部が実行する判定処理の処理手順の一例を示すフローチャートである。
【図１１】本発明の第１の実施形態に係る確率算出部が実行する確率算出処理の処理手順の一例を示すフローチャートである。
【図１２】本発明の第１の実施形態に係る端末装置が実行するメッセージ受信処理の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
（第１の実施形態）
以下、本発明の第１の実施形態について、図面を参照しながら説明する。
なお、各図において同一部分には同一符号を付している。
図１は、本発明の第１の実施形態に係る通信システム１の構成の一例を示す概略図である。
図示する例では、通信システム１は、複数（本図に示す例では４台）の端末装置１０により構成される。端末装置１０は、ＤＴＮ（Ｄｅｌａｙ  Ｔｏｌｅｒａｎｔ  Ｎｅｔｗｏｒｋ：耐性遅延ネットワーク）を構成するノードである。端末装置１０は、例えば、スマートフォン、携帯電話機、タブレット端末などの端末装置である。以下、説明の便宜を図るため、端末装置１０を４台とし、それぞれの端末装置１０にＡ〜Ｄの符号を割り当て、端末装置１０Ａ、１０Ｂ、１０Ｃ、１０Ｄと記す。なお、各端末装置１０Ａ〜Ｄに共通する事項については、Ａ〜Ｄの符号を省略し、単に「端末装置１０」または「各端末装置１０」と記す。
【００１９】
図２は、本発明の第１の実施形態に係る端末装置１０の構成の一例を示す概略ブロック図である。
図示するように、端末装置１０は、アプリケーション部１９０と、ミドルウェア部１００と、を備える。
アプリケーション部１９０（生成部）は、例えば、メッセージの生成や送受信を行うメーラなどのアプリケーションソフトを実行する。
ミドルウェア部１００は、アプリケーション部１９０に対して必要な各種機能を提供する。ミドルウェア部１００は、ＩＦ（インタフェース）制御部１１０と、メッセージ制御部１２０と、経路制御部１３０と、無線通信部１４０と、を備える。
【００２０】
ＩＦ制御部１１０は、アプリ間ＩＦ（インタフェース）部１１１と、アドレス変換部１１２と、アドレスデータベース１１３と、を備える。
アプリ間ＩＦ部１１１は、アプリケーション部１９０とメッセージ制御部１２０とを仲介するインタフェースである。例えば、アプリ間ＩＦ部１１１は、アプリケーション部１９０が生成したメッセージをメッセージ制御部１２０に出力する。
【００２１】
アドレス変換部１１２は、自装置のアプリケーションレイヤなどのＤＴＮの上位レイヤでのアドレス、例えばメールアドレス、ＩＰアドレスなどと自装置のＤＴＮでのアドレス、例えば端末装置固有のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ：マック）アドレスとの対応付けし、アドレス情報を生成する。そして、アドレス変換部１１２は、後述する相手の端末装置１０と検出情報を交換して取得する際に、生成したアドレス情報を相手の端末装置１０に送信し、相手の端末装置１０のアドレス情報を取得する。
アドレスデータベース１１３は、アドレス変換部１１２が生成した自装置のアドレス情報、相手の端末装置１０のアドレス情報など、端末装置１０のアドレス情報を記憶する。
【００２２】
これにより、端末装置１０は、予めルーティングテーブル多アドレス対応表を自装置で管理しなくても、後述する直接的に検出した端末装置１０や間接的に検出した端末装置１０のアドレス情報を自動的に取得し、知ることができる。つまり、端末装置１０は、相手の端末装置１０の上位レイヤのアドレスさえ知っていれば、相手の端末装置１０のＤＴＮでのアドレスを知る必要がない。
端末装置１０は、後述する間接検出回数に基づく値から自動的に転送確率を算出するため、自装置が他の端末装置１０を検出したときにメッセージを転送、複製して送信する相手の端末装置１０（宛先の端末装置１０にメッセージを配送するために適切な中継ノード）を適切に判断することができる。
【００２３】
メッセージ制御部１２０は、アプリケーション部１９０が生成したメッセージを管理する。メッセージ制御部１２０は、メッセージデータベース１２１と、多重化処理部１２２と、メッセージ管理部１２３と、を備える。
メッセージデータベース１２１（メッセージ記憶部）は、未送達メッセージおよび送達済リストを記憶する。未送達メッセージは、宛先に送達されていないメッセージである。送達済リストは、宛先に送達されたメッセージの一覧である。
【００２４】
多重化処理部１２２は、アプリケーション部１９０が生成したメッセージを多重化してメッセージデータベース１２１に書き込む。具体的には、多重化処理部１２２は、アプリケーション部１９０が生成したメッセージの複製を生成する。多重化処理部１２２は、生成したメッセージとその複製とをメッセージデータベース１２１に未送達メッセージとして書き込む。このとき、多重化処理部１２２は、多重化したメッセージを枝番などで管理し、未送達メッセージと枝番とを関連付ける。
【００２５】
メッセージ管理部１２３は、メッセージデータベース１２１に未送達メッセージが記憶されている場合、無線通信部１４０から宛先の端末装置１０に対する未送達メッセージを送信する。ここで、メッセージ管理部１２３は、多重化されたメッセージを異なるタイミングで送信する。例えば、メッセージ管理部１２３は、第１のメッセージを送信した所定時間、例えばｔ（ｔは正の実数）時間後に第１のメッセージと同一の第２のメッセージ（第１のメッセージの複製）を送信する。
【００２６】
また、メッセージ管理部１２３は、未送達メッセージを送信する際に、公衆網接続部１４３から公衆網に接続できなかった場合には、近接通信部１４２から他の端末装置１０にリクエストを送信して他の端末装置１０と無線通信する。そして、メッセージ管理部１２３は、経路制御部１３０の判定に基づいて、未送達メッセージを転送、複製または保持のうち少なくともいずれかを行う。具体的には、メッセージ管理部１２３は、転送または複製と判定されたメッセージを、ＴＴＬ（Ｔｉｍｅ  ｔｏ  Ｌｉｖｅ）期限の長い順にソートし、ソートした順（ＴＴＬ期限の長いメッセージから順）にメッセージを無線通信している相手の端末装置１０に転送または複製して送信する。
【００２７】
ここで、ＴＴＬ期限は、メッセージのライフタイム（保存期限）である。例えば、メッセージ管理部１２３は、経路制御部１３０が転送と判定した未送達メッセージを、近接通信部１４２から無線通信している相手の端末装置１０に転送する。また、メッセージ管理部１２３は、経路制御部１３０が複製と判定した未送達メッセージを複製し、当該未達メッセージを近接通信部１４２から無線通信している相手の端末装置１０に送信する。
【００２８】
また、メッセージ管理部１２３は、無線通信部１４０を介して他の端末装置１０と無線通信しているときに、無線通信している相手の端末装置１０から送達済リストを取得し、取得した送達済リストに基づいて、メッセージデータベース１２１が記憶する送達済リストを更新する。具体的には、メッセージ管理部１２３は、取得した送達済リストに存在し、記憶している送達済リストに存在しない項目を、記憶している送達済リストに追加する。そして、メッセージ管理部１２３は、送達済リストに追加した項目に該当する（更新した送達済リストにある）未送達メッセージ自体をメッセージデータベース１２１から削除する。また、メッセージ管理部１２３は、ＴＴＬ期限の過ぎた項目をメッセージデータベース１２１が記憶する送達済リストから削除する。また、メッセージ管理部１２３は、ＴＴＬ期限の過ぎた未送達メッセージ自体をメッセージデータベース１２１から削除する。
【００２９】
また、メッセージ管理部１２３は、無線通信部１４０を介して自装置宛のメッセージを受信すると、当該メッセージおよび当該メッセージと同一のメッセージが送達されたことを他の端末装置１０に通知する。同一のメッセージとは、多重化されて枝番で関連付けられたメッセージである。
【００３０】
経路制御部１３０は、メッセージの配送経路を制御する。経路制御部１３０は、経路制御データベース１３１と、検出回数管理部１３２と、確率算出部１３３と、確率判定部１３４と、を備える。
経路制御データベース１３１（検出回数記憶部）は、他の端末装置１０の検出情報を示す検出情報テーブルを記憶する。検出情報は、他の端末装置１０を検出した回数を表す情報である。検出情報には、自装置が他の端末装置１０を近接通信部１４２により直接検出した回数である直接検出回数に基づく値と、他の端末装置１０を間接的に検出した回数である間接検出回数に基づく値とが含まれる。
なお、検出情報には、自装置の通信エリア内に存在する他の端末装置１０を検出した回数、自装置と他の端末装置１０とが実際に通信した回数の少なくともいずれかを含んでもよい。
【００３１】
検出回数管理部１３２は、近接通信部１４２が自装置の通信エリア内に存在する他の端末装置１０を検出し、検出した相手の端末装置１０から検出情報テーブルを取得し、取得した検出情報テーブルに基づいて、経路制御データベース１３１に記憶している検出情報テーブルを更新する。具体的には、検出回数管理部１３２は、検出した相手の端末装置１０の直接検出回数に基づく値、例えば直接検出回数を算出するとともに、取得した検出情報テーブルに基づいて、他の端末装置１０の間接検出回数に基づく値、例えば間接検出回数を更新する。
また、検出回数管理部１３２は、公衆網接続部１４３が公衆網と接続すると、経路制御データベース１３１が記憶する検出情報テーブルにおける公衆網の直接検出回数に基づく値、例えば直接検出回数を算出する。
【００３２】
確率算出部１３３は、経路制御データベース１３１が記憶する検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置１０までの転送確率を算出する。転送確率は、メッセージの配送のしやすさを表す。また、確率算出部１３３は、検出回数管理部１３２が相手の端末装置１０から取得した検出情報テーブルに基づいて、相手の端末装置１０からメッセージの宛先の端末装置１０までの転送確率を算出する。
【００３３】
確率判定部１３４は、確率算出部１３３が算出した自装置から宛先の端末装置１０までの転送確率Ｐ（自，宛）と、相手の端末装置１０から宛先の端末装置１０までの転送確率Ｐ（相，宛）とを比較して、メッセージを保持するか、メッセージを複製して送信するか、メッセージを転送するかを判定する。具体的には、確率判定部１３４は、転送確率Ｐ（自，宛）が所定の閾値βより大きい場合、または転送確率（自，宛）が転送確率（相，宛）より大きく、かつその差が所定の閾値αより大きい場合は、メッセージを保持すると判定する。
また、確率判定部１３４は、転送確率Ｐ（自，宛）が閾値β以下であり、転送確率Ｐ（自，宛）と転送確率Ｐ（相，宛）との差が閾値α以下である場合は、メッセージを複製すると判定する。
また、確率判定部１３４は、転送確率Ｐ（自，宛）が閾値β以下であり、転送確率Ｐ（相，宛）が転送確率Ｐ（自，宛）より大きく、かつその差が閾値αより大きい場合は、メッセージを転送すると判定する。
【００３４】
無線通信部１４０は、他の端末装置１０または公衆網と無線通信する。無線通信部１４０は、データ通信部１４１と、近接通信部１４２と、公衆網接続部１４３と、を備える。
データ通信部１４１は、近接通信部１４２または公衆網接続部１４３を介して、データを送受信する。
近接通信部１４２は、他の端末装置１０と近距離無線通信を行う。
公衆網接続部１４３は、インターネットまたは携帯網などの公衆網に接続する。
【００３５】
次に、端末装置１０のハードウェア構成について説明する。
図３は、本発明の第１の実施形態に係る端末装置１０のハードウェア構成の一例を示すハードウェア図である。
端末装置１０は、ＣＰＵ１０１と、記憶媒体１０２と、ドライブ部１０３と、入力部１０４と、出力部１０５と、ＲＯＭ１０６（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ：ロム）と、ＲＡＭ１０７（Ｒａｎｄｏｍ  Ａｃｃｃｅｓｓ  Ｍｅｍｏｒｙ：ラム）と、補助記憶部１０８と、通信部１０９と、を備える。
ＣＰＵ１０１と、ドライブ部１０３と、入力部１０４と、出力部１０５と、ＲＯＭ１０６と、ＲＡＭ１０７と、補助記憶部１０８と、通信部１０９とは、バスＢ（母線）を介して相互に接続される。
【００３６】
ＣＰＵ１０１は、補助記憶部１０８が記憶するプログラム、ＲＯＭ１０６およびＲＡＭ１０７が記憶する各種データを読み出して実行し、端末装置１０を制御する。また、ＣＰＵ１０１は、ドライブ部１０３を介して記憶媒体１０２が記憶する各種データを読み出して実行し、端末装置１０を制御する。記憶媒体１０２は、光磁気ディスク、フレキシブルディスク、フラッシュメモリなどの可搬記憶媒体であり、各種データを記憶する。ドライブ部１０３は、光ディスクドライブ、フレキシブルディスクドライブなどの記憶媒体１０２の読み出し装置である。入力部１０４は、マウス、キーボード、タッチパネルなどの入力装置である。出力部１０５は、表示部、スピーカなどの出力装置である。ＲＯＭ１０６、ＲＡＭ１０７は、各種データを一時的に記憶する。補助記憶部１０８は、ハードディスクドライブ、フラッシュメモリなどであり、上述した端末装置１０の各機能部を動作させるためのプログラム、各種データを記憶する。通信部１０９は、通信インタフェースを有し、有線または無線によりネットワークＮＷに接続される。
【００３７】
次に、メッセージデータベース１２１が記憶する送達済リストについて説明する。
図４は、本発明の第１の実施形態に係るメッセージデータベース１２１が記憶する送達済リストのデータ構造およびデータの一例を示す概略図である。
図示するように、送達済リストは、メッセージＩＤとＴＴＬ期限との組のリストである。メッセージＩＤは、メッセージを識別する識別情報である。ＴＴＬ期限は、メッセージＩＤに対応するメッセージのライフタイムである。
図示する例では、送達済リストは、ＴＴＬ期限が「２０：１５：０１」であるメッセージＩＤ「６０」と、ＴＴＬ期限が「６：１２：１２」であるメッセージＩＤ「２０」とを保持している。当該ＴＴＬ期限は、期限として時刻により表される。なお、当該ＴＴＬ期限は、図示した例のように、時分秒であってもよいし、時、分、秒、時分、年月日、月、日、月日のように、所定の期限により、表されてもよい。
【００３８】
次に、経路制御データベース１３１が記憶する検出情報テーブルについて説明する。
図５は、本発明の第１の実施形態に係る経路制御データベース１３１が記憶する検出情報テーブルのデータ構造およびデータの一例を示す概略図である。
図示するように、検出情報テーブルは、確率算出対象期間における各タイムフレーム（０〜Ｎ−１（ただし、Ｎは正の整数））の検出情報を、他の端末装置１０の識別情報ごとに記憶する。確率算出対象期間は、転送確率を算出するための期間であり、Ｎ個のタイムフレームからなる。タイムフレームは、検出単位時間の期間である。検出単位時間は、他の端末装置１０を検出するための単位時間である。また、検出情報テーブルは、公衆網もノードの１つとみなし、公衆網の検出情報をフレームタイムごとに保持する。
図示する例では、検出情報テーブルは、端末装置１０Ｂ（識別情報「Ｂ」）と、端末装置１０Ｃ（識別情報「Ｃ」）と、端末装置１０Ｄ（識別情報「Ｄ」）と、公衆網と、の各タイムフレーム（０〜Ｎ−１）における検出情報を保持している。
【００３９】
検出情報には、直接検出回数と間接検出回数とがある。例えば、端末装置１０Ａが端末装置１０Ｄを直接検出したことがない場合であっても、端末装置１０Ｂが端末装置１０Ｄを頻繁に直接検出している場合には、端末装置１０Ａと端末装置１０Ｂとが通信すれば端末装置１０Ｂを経由して端末装置１０Ｄにメッセージを転送することが可能であると考えられる。そのため、検出回数管理部１３２は、検出した端末装置１０が過去に検出した他の端末装置１０の検出回数に基づいて、直接的に検出していない他の端末装置１０を間接的に検出（通信）した端末装置１０とみなし、検出回数として算出する。
【００４０】
検出情報Ｅｉ（自，Ｘ）は、タイムフレームｉ（ｉは０からＮ−１までの整数）における自装置の他の端末装置１０Ｘ（Ｘは、他の端末装置、例えば端末装置１０Ｃなどを表す）に対する検出情報であり、０以上１以下の実数である。
検出回数管理部１３２は、１つのタイムフレームｉ内で同一の端末装置１０Ｘを複数回検出した場合であっても、検出情報Ｅｉ（自，Ｘ）＝１とする。また、検出回数管理部１３２は、１つのタイムフレーム内で端末装置１０Ｘを検出した場合には、端末装置１０Ｘの間接検出回数を算出せず、端末装置１０Ｘの直接検出回数のみを算出する。すなわち、検出回数管理部１３２は、１つのタイムフレームｉ内で端末装置１０Ｘと通信した場合には、検出情報Ｅｉ（自，Ｘ）に１を代入する。
【００４１】
また、検出回数管理部１３２は、タイムフレームｉ内で端末装置１０Ｘと接触していないときに他の端末装置１０（相手の端末装置１０とする）と通信すると、端末装置１０Ｘに対する間接検出回数を算出する。具体的には、検出回数管理部１３２は、検出情報Ｅｉ（自，Ｘ）が検出情報Ｅｉ（相，Ｘ）×ρより小さいとき、検出情報Ｅｉ（相，Ｘ）×ρを検出情報Ｅｉ（自，Ｘ）とする。検出情報Ｅｉ（相，Ｘ）は、タイムフレームｉにおける相手の端末装置１０の端末装置１０Ｘに対する検出情報である。ρは、間接検出回数の減衰係数であり、０＜ρ＜１である。すなわち、検出情報Ｅｉ（自，Ｘ）＝１は、直接検出回数を表し、検出情報Ｅｉ（自，Ｘ）＜１は、間接検出回数を表す。
【００４２】
次に、通信システム１におけるメッセージの配送方法について説明する。
図６は、本発明の第１の実施形態に係る通信システム１におけるメッセージの配送方法の一例を説明するための説明図である。
本図において、通信エリア５０Ａは、端末装置１０Ａの近接通信部１４２が通信可能なエリアであり、通信エリア５０Ｂは、端末装置１０Ｂの近接通信部１４２が通信可能なエリアであり、通信エリア５０Ｃは、端末装置１０Ｃの近接通信部１４２が通信可能なエリアであり、通信エリア５０Ｄは、端末装置１０Ｄの近接通信部１４２が通信可能なエリアである。
【００４３】
まず、端末装置１０Ａは、例えば端末装置１０Ｄ宛のメッセージを生成する（図６（ａ）参照）。このとき、端末装置１０Ａは、端末装置１０Ａの通信エリア５０Ａ内に他の端末装置１０がないため、メッセージを保持する。
【００４４】
そして、端末装置１０Ａは、端末装置１０Ａまたは端末装置１０Ｂが移動して通信エリア５０Ａと通信エリア５０Ｂとが重なり、端末装置１０Ｂと通信可能になると、端末装置１０Ａ、１０Ｂのそれぞれが記憶している検出情報テーブルを交換する。次に、端末装置１０Ａは、端末装置１０Ａが記憶している検出情報テーブルに基づいて、端末装置１０Ａから端末装置１０Ｄへの転送確率Ｐ（Ａ，Ｄ）を算出する。同時に、端末装置１０Ｂは、端末装置１０Ｂが記憶している検出情報テーブルに基づいて、端末装置１０Ｂから端末装置１０Ｄへの転送確率Ｐ（Ｂ，Ｄ）を算出する。
そして、端末装置１０Ａは、端末装置１０Ｂから転送確率Ｐ（Ｂ，Ｄ）を取得し、転送確率Ｐ（Ａ，Ｄ）と転送確率Ｐ（Ｂ，Ｄ）とを比較して、端末装置１０Ｄ宛のメッセージを転送するか、複製するか、保持するかを判定する。
本例では、端末装置１０Ａは、メッセージを複製すると判定したため、メッセージを複製し、複製したメッセージを端末装置１０Ｂに送信する（図６（ｂ）参照）。
【００４５】
続いて、端末装置１０Ｂは、端末装置１０Ａから端末装置１０Ａの端末装置１０Ｄ宛のメッセージを受信した後に、端末装置１０Ｂまたは端末装置１０Ｃが移動して通信エリア５０Ｂと通信エリア５０Ｃとが重なり、端末装置１０Ｃと通信可能になると、端末装置１０Ａ、１０Ｃのそれぞれが記憶している検出情報テーブルを交換する。次に、端末装置１０Ｂから端末装置１０Ｄへの転送確率Ｐ（Ｂ，Ｄ）を算出する。同時に、端末装置１０Ｃは、端末装置１０Ｃが記憶している検出情報テーブルに基づいて、端末装置１０Ｃから端末装置１０Ｄへの転送確率Ｐ（Ｃ，Ｄ）を算出する。
そして、端末装置１０Ｂは、端末装置１０Ｃから転送確率Ｐ（Ｃ，Ｄ）を取得し、転送確率Ｐ（Ｂ，Ｄ）と転送確率Ｐ（Ｃ，Ｄ）とを比較して、端末装置１０Ｄ宛のメッセージを転送するか、複製するか、保持するかを判定する。
本例では、端末装置１０Ｂは、メッセージを転送すると判定したため、メッセージを端末装置１０Ｃに転送する（図６（ｃ）参照）。
【００４６】
続いて、端末装置１０Ｃは、端末装置１０Ｃまたは端末装置１０Ｄが移動して通信エリア５０Ｃと通信エリア５０Ｄとが重なり、端末装置１０Ｄと通信可能になると、端末装置１０Ｄ宛のメッセージを端末装置１０Ｄに転送する（図６（ｄ）参照）。
【００４７】
このように、端末装置１０は、自装置の転送確率と通信した相手の端末装置１０の転送確率とを比較してメッセージを転送するか、複製するか、保持するかを判定する。これにより、余分な複製を抑えると同時に必要な複製を行うことができ、ネットワークリソースを抑えながらメッセージの到達率を向上させることができる。
【００４８】
なお、端末装置１０Ａは、複数の端末装置１０Ｂおよび端末装置１０Ｃと接触した場合には、端末装置１０Ｂおよび端末装置１０Ｃのそれぞれに対して転送確率を比較してメッセージを転送するか、複製するかまたは保持する。ただし、端末装置１０Ａは、メッセージを複製した場合には、メッセージを複製した時刻から所定時間内はメッセージの複製を制限する。当該制限は、制限なしに複製すると級数的にメッセージが増えるためである。
【００４９】
次に、メッセージの多重化について説明する。
時間的または空間的に不連続である環境においては、端末装置１０の接続関係を正確に予測することは困難である。このため、端末装置１０のメッセージの到達率を１００％にすることは難しい。よって、端末装置１０は、メッセージを多重化して送信する。
具体的には、端末装置１０は、メッセージを送信する際に、メッセージの複製を生成する。このとき、端末装置１０は、メッセージとその複製に枝番のみが異なるメッセージＩＤを付して、メッセージとその複製とを関連付ける。
そして、端末装置１０は、メッセージを送信した所定時間、例えばｔ時間後に、そのメッセージを複製して送信する。これにより、複製されたメッセージは、既に送信したメッセージとは違う経路で宛先へ送信される。よって、例えば、メッセージの配送経路に障害が発生した場合であっても、複製されたメッセージが他の配送経路で宛先に送信することが可能であるため、メッセージの宛先への到達率を向上させることができる。
【００５０】
また、自装置宛のメッセージを受信した端末装置１０は、メッセージとそのメッセージに関連付けられた同一のメッセージ（本体または複製）を送達済リストに追加する。そして、端末装置１０は、更新した送達済リストを他の端末装置１０にブロードキャスト送信する。送達済リストを受信した端末装置１０は、送達済リストに該当するメッセージを保持している場合、当該メッセージを削除する。これにより、メッセージの本体または複製のいずれかが宛先に送達されれば、未送達の同一のメッセージも他の端末装置１０から削除することができる。
【００５１】
次に、図７から図１２を参照して、端末装置１０における処理について説明する。
図７は、本発明の第１の実施形態に係る端末装置１０が実行するメッセージ生成処理の処理手順の一例を示すフローチャートである。
本図に示す処理は、アプリケーション部１９０がメッセージを生成したときに実行される。
ステップＳ１０１において、アプリケーション部１９０は、メッセージを生成する。続いて、アプリ間ＩＦ部１１１、アプリケーション部１９０により生成されたメッセージをメッセージ制御部１２０に出力する。
【００５２】
ステップＳ１０２において、メッセージ制御部１２０の多重化処理部１２２は、入力されたメッセージを多重化して未送達メッセージとしてメッセージデータベース１２１に蓄積する。具体的には、多重化処理部１２２は、入力されたメッセージにメッセージＩＤ（＃１）とＴＴＬ期限（＃１）とを付して未送達メッセージとしてメッセージデータベース１２１に書き込む。ＴＴＬ期限（＃１）は、現在時刻に所定時間を加算した時間である。続いて、多重化処理部１２２は、当該メッセージを複製し、複製したメッセージにメッセージＩＤ（＃２）とＴＴＬ期限（＃２）とを付して未送達メッセージとしてメッセージデータベース１２１に書き込む。メッセージＩＤ（＃１）とメッセージＩＤ（＃２）とは枝番のみが異なる。例えば、当該メッセージ本体に「１００−１」が付された場合には、当該メッセージの複製には「１００−２」が付される。これにより、メッセージ本体とその複製とが枝番号により関連付けられる。また、多重化処理部１２２は、メッセージ本体に付したＴＴＬ期限（＃１）に所定時間ｔを加算した値をＴＴＬ期限（＃２）として複製に付する。
【００５３】
ステップＳ１０３において、メッセージ管理部１２３は、未送達メッセージを送信するために、無線通信部１４０による無線通信を開始する。その後、図７に係る処理を終了する。
【００５４】
図８は、本発明の第１の実施形態に係る端末装置１０が実行するメッセージ転送処理の処理手順の一例を示すフローチャートである。
本図に示す処理は、近接通信部１４２が他の端末装置１０と通信したとき、または公衆網接続部１４３が公衆網に接続したときに実行される。
【００５５】
ステップＳ２０１において、データ通信部１４１は、公衆網に接続したか否かを判定する。検出回数管理部１３２は、公衆網に接続している場合、ステップＳ２１１に進む。一方、公衆網に接続していない場合、ステップＳ２０２にすすむ。
ステップＳ２０２において、データ通信部１４１は、他の端末装置１０と通信したときに通信した相手の端末装置１０と検出情報テーブルを交換する。具体的には、検出回数管理部１３２は、無線通信部１４０を介して、経路制御データベース１３１が記憶する検出情報テーブルを相手の端末装置１０に送信し、相手の端末装置１０から検出情報テーブルを受信する。
【００５６】
ステップＳ２０３において、検出回数管理部１３２は、相手の端末装置１０から受信した検出情報テーブルに基づいて、経路制御データベース１３１が記憶する検出情報テーブルを更新する。検出情報テーブルの更新処理の詳細については後述する。
【００５７】
ステップＳ２０４において、メッセージ管理部１２３は、相手の端末装置１０と送達済リストを交換する。具体的には、メッセージ管理部１２３は、無線通信部１４０を介して、メッセージデータベース１２１が記憶する送達済リストを相手の端末装置１０に送信し、相手の端末装置１０から送達済リストを受信する。
【００５８】
ステップＳ２０５において、メッセージ管理部１２３は、受信した送達済リストに基づいて、メッセージデータベース１２１が記憶する送達済リストを更新する。具体的には、まず、メッセージ管理部１２３は、ＴＴＬ期限の過ぎている項目をメッセージデータベース１２１が記憶する送達済リストから削除する。続いて、メッセージ管理部１２３は、メッセージデータベース１２１が記憶する送達済リストにない項目であって、受信した送達済リストにある項目を、メッセージデータベース１２１が記憶する送達済リストに追加する。そして、メッセージ管理部１２３は、送達済リストに追加した項目に対応する未送達メッセージとＴＴＬ期限の過ぎた未送達メッセージとをメッセージデータベース１２１から削除する。
【００５９】
ステップＳ２０６において、メッセージ管理部１２３は、メッセージデータベース１２１が未送達メッセージを記憶しているか否かを判定する。未送達メッセージを記憶している場合、ステップＳ２０７に進む。一方、未送達メッセージを記憶していない場合、図８に係る処理を終了する。
ステップＳ２０７において、確率判定部１３４は、各未送達メッセージについて、複製するか、転送するか、保持するかを判定する。確率判定部１３４における判定処理の詳細については後述する。
【００６０】
ステップＳ２０８において、メッセージ管理部１２３は、転送または複製と判定された未送達メッセージを全てメッセージデータベース１２１から読み出し、読み出した未送達メッセージをＴＴＬ期限の長い順にソートする。
【００６１】
ステップＳ２０９において、メッセージ管理部１２３は、ソートした順に未送達メッセージを相手の端末装置１０に転送または複製して送信する。具体的には、メッセージ管理部１２３は、確率判定部１３４により転送と判定されたメッセージを無線通信部１４０から相手の端末装置１０に転送する。このとき、メッセージ管理部１２３は、メッセージデータベース１２１から読み出したメッセージを削除する。また、メッセージ管理部１２３は、確率判定部１３４により複製と判定されたメッセージを無線通信部１４０から相手の端末装置１０に送信する。このとき、メッセージ管理部１２３は、メッセージデータベース１２１から読み出したメッセージを削除しないため、自装置も相手の端末装置１０も同一のメッセージを持つことを表す複製となる。その後、図８に係る処理を終了する。
【００６２】
ＴＴＬ期限の短いメッセージは、既にネットワークに広がっており、宛先の端末装置１０に送達される可能性が高い。そのため、端末装置１０は、ＴＴＬ期限が長くまだネットワークに広がっていないメッセージを優先的に転送または複製して送信する。これにより、端末装置１０は、メッセージの到達率を高くすることができる。
【００６３】
ステップＳ２１１において、検出回数管理部１３２は、経路制御データベース１３１が記憶する検出情報テーブルを更新する。具体的には、検出回数管理部１３２は、現在のタイムフレームにおける公衆網の直接検出回数を１にする。
ステップＳ２１２において、メッセージ管理部１２３は、メッセージデータベース１２１が未送達メッセージを記憶しているか否かを判定する。未送達メッセージを記憶している場合、ステップＳ２１３に進む。一方、未送達メッセージを記憶していない場合、図８に係る処理を終了する。
【００６４】
ステップＳ２１３において、メッセージ管理部１２３は、未送達メッセージをメッセージデータベース１２１から読み出し、読み出した未送達メッセージを無線通信部１４０から公衆網へ送信する。このとき、メッセージ管理部１２３は、送信した未送達メッセージをメッセージデータベース１２１から削除する。
【００６５】
ステップＳ２１４において、メッセージ管理部１２３は、送信した未送達メッセージのメッセージＩＤとＴＴＬ期限とを送達済リストに追加し、当該送達済リストをメッセージデータベース１２１に記憶させて送達済リストを更新する。その後、図８に係る処理を終了する。
【００６６】
図９は、本発明の第１の実施形態に係る検出回数管理部１３２が実行する検出回数算出処理の処理手順の一例を示すフローチャートである。
本図に示す処理は、上述したステップＳ２０３における処理に対応する。
【００６７】
ステップＳ４０１において、検出回数管理部１３２は、経路制御データベース１３１が記憶する検出情報テーブルから検出情報Ｅｉ（自，Ｘ）を読み出して取得する。Ｘは、過去に検出した複数の端末装置１０を表す。なお、当該Ｘは、検出した一つの端末装置１０を表してもよい。
【００６８】
ステップＳ４０２において、検出回数管理部１３２は、現在時刻が最新のタイムフレーム（最新フレーム）の範囲内であるか否かを判定する。現在時刻が最新のタイムフレーム（最新フレーム）の範囲内である場合、ステップＳ４０５に進む。一方、現在時刻が最新のタイムフレーム（最新フレーム）の範囲内でない場合、ステップＳ４０３に進む。
【００６９】
ステップＳ４０３において、検出回数管理部１３２は、現在時刻に基づいて適切な数の最新フレームを作成する。
ステップＳ４０４において、検出回数管理部１３２は、各タイムフレームの検出回数値（検出情報）をシフトする。具体的には、検出回数管理部１３２は、検出情報Ｅｉ（自，Ｘ）を検出情報Ｅｉ＋１（自，Ｘ）に代入する。そして、検出回数管理部１３２は、検出情報Ｅ０（自，Ｘ）に初期値０を代入する。
【００７０】
ステップＳ４０５において、検出回数管理部１３２は、検出情報Ｅ０（自，相）に１を代入する。検出情報Ｅ０（自，相）は、現在のタイムフレーム０における相手の端末装置１０の検出情報である。すなわち、検出回数管理部１３２は、タイムフレーム０における相手の端末装置１０の直接検出回数を１とする。
【００７１】
ステップＳ４０６において、検出回数管理部１３２は、ｉ＝０、１、・・・、Ｎ−１について、検出情報Ｅｉ（自，Ｘ）が検出情報Ｅｉ（相，Ｘ）×ρより小さいとき、検出情報Ｅｉ（自，Ｘ）に検出情報Ｅｉ（相，Ｘ）×ρを代入する。ただし、相手の端末装置１０がＸ（過去に検出した端末装置１０）でない場合に限る。その後、図９に係る処理を終了する。
【００７２】
図１０は、本発明の第１の実施形態に係る確率判定部１３４が実行する判定処理の処理手順の一例を示すフローチャートである。
本図に示す処理は、上述したステップＳ２０７における処理に対応する。
【００７３】
ステップＳ５０１において、確率判定部１３４は、メッセージデータベース１２１から未送達メッセージを読み出して取得する。
ステップＳ５０２において、確率判定部１３４は、読み出した未送達メッセージと同一のメッセージを保持しているか否かを相手の端末装置１０に問い合わせる。相手の端末装置１０が同一のメッセージを保持している場合、ステップＳ５０３にすすむ。一方、相手の端末装置１０が同一のメッセージを保持していない場合、ステップＳ５０４に進む。
ステップＳ５０３において、確率判定部１３４は、未送達メッセージを保持すると判定し、ステップＳ５１２に進む。
【００７４】
ステップＳ５０４において、確率判定部１３４は、確率算出部１３３から転送確率Ｐ（自，宛）を取得し、相手の端末装置１０から転送確率Ｐ（相，宛）を取得する。転送確率Ｐ（自，宛）は、自装置から当該未送達メッセージの宛先の端末装置１０までの転送確率である。また、転送確率Ｐ（相，宛）は、相手の端末装置１０から当該未送達メッセージの宛先の端末装置１０までの転送確率である。
【００７５】
ステップＳ５０５において、確率判定部１３４は、転送確率Ｐ（自，宛）が閾値βより大きいか否かを判定する。転送確率Ｐ（自，宛）が閾値βより大きい場合、ステップＳ５０６に進む。一方、転送確率Ｐ（自，宛）が閾値β以下である場合、ステップＳ５０７に進む。
ステップＳ５０６において、確率判定部１３４は、当該未送達メッセージを保持すると判定し、ステップＳ５１２に進む。
【００７６】
ステップＳ５０７において、確率判定部１３４は、転送確率Ｐ（自，宛）から転送確率Ｐ（相，宛）を減算した値（転送確率Ｐ（自，宛）−転送確率Ｐ（相，宛））が閾値αより大きいか否かを判定する。（転送確率Ｐ（自，宛）−転送確率Ｐ（相，宛））が閾値αより大きい場合、ステップＳ５０８に進む。一方、（転送確率Ｐ（自，宛）−転送確率Ｐ（相，宛））が閾値α以下である場合、ステップＳ５０９に進む。
ステップＳ５０８において、確率判定部１３４は、当該未送達メッセージを保持すると判定し、ステップＳ５１２に進む。
【００７７】
ステップＳ５０９において、確率判定部１３４は、転送確率Ｐ（相，宛）から転送確率Ｐ（自，宛）を減算した値（転送確率Ｐ（相，宛）‐転送確率Ｐ（自，宛））が閾値αより大きいか否かを判定する。（転送確率Ｐ（相，宛）‐転送確率Ｐ（自，宛））が閾値αより大きい場合、ステップＳ５１０に進む。一方、（転送確率Ｐ（相，宛）‐転送確率Ｐ（自，宛））が閾値α以下である場合、ステップＳ５１２に進む。
ステップＳ５１０において、確率判定部１３４は、当該未送達メッセージに転送フラグを設定して、当該未送達メッセージを転送すると判定し、ステップＳ５１２に進む。
【００７８】
ステップＳ５１１において、確率判定部１３４は、当該未送達メッセージに複製フラグを設定して、当該未送達メッセージを複製すると判定する。
ステップＳ５１２において、確率判定部１３４は、次の未送達メッセージがメッセージデータベース１２１に記憶されているか否かを判定する。次の未送達メッセージが記憶されている場合、ステップＳ５０１に戻る。一方、次の未送達メッセージが記憶されていない場合。図１０に係る処理を終了する。
【００７９】
図１１は、本発明の第１の実施形態に係る確率算出部１３３が実行する確率算出処理の処理手順の一例を示すフローチャートである。
本図に示す処理は、上述したステップＳ５０４の処理に対応する。
ステップＳ６０１において、確率算出部１３３は、検出回数管理部１３２から検出情報Ｅｉ（自，宛）を取得する。
ステップＳ６０２において、確率算出部１３３は、全てのタイムフレームｉにおける検出情報Ｅｉ（自，宛）の総和をタイムフレーム数Ｎで除算した値を転送確率Ｐ（自，宛）に代入する。その後、図１１に係る処理を終了する。
【００８０】
図１２は、本発明の第１の実施形態に係る端末装置１０が実行するメッセージ受信処理の処理手順の一例を示すフローチャートである。
本図に示す処理は、他の端末装置１０からメッセージを受信したときに実行される。
ステップＳ７０１において、メッセージ管理部１２３は、受信したメッセージが自装置宛であるか否かを判定する。受信したメッセージが自装置宛である場合、メッセージ管理部１２３は、受信したメッセージをアプリ間ＩＦ部１１１からアプリケーション部１９０に出力し、ステップＳ７０２に進む。一方、受信したメッセージが自装置宛でない場合、ステップＳ７１１に進む。
【００８１】
ステップＳ７０２において、メッセージ管理部１２３は、メッセージデータベース１２１が記憶する送達済リストを更新する。具体的には、メッセージ管理部１２３は、受信したメッセージのメッセージＩＤとＴＴＬ期限を送達済リストに追加する。このとき、メッセージ管理部１２３は、受信したメッセージと枝番の異なる同一のメッセージ（本体または複製）のメッセージＩＤとＴＴＬ期限も合わせて送達済リストに追加する。
【００８２】
ステップＳ７０３において、メッセージ管理部１２３は、更新した送達済リストを示す送達情報を全ての端末装置１０にブロードキャスト送信する。その後、図１２に係る処理を終了する。
ステップＳ７１１において、メッセージ管理部１２３は、受信したメッセージを未送達メッセージとしてメッセージデータベース１２１に書き込み、図１２に係る処理を終了する。
【００８３】
このように、本実施形態によれば、端末装置１０は、他の端末装置１０と無線通信する近接通信部１４２と、他の端末装置１０を直接的に検出した回数を表す直接検出回数に基づく値と、他の端末装置を間接的に検出した回数を表す間接検出回数に基づく値とを検出情報として他の端末装置１０ごとに検出情報テーブルを記憶する検出回数記憶部（経路制御データベース１３１）と、近接通信部１４２が他の端末装置１０を検出すると、検出回数記憶部（経路制御データベース１３１）が記憶する検出情報テーブルにおける当該検出した相手の端末装置１０の直接検出回数に基づく値を算出するとともに、相手の端末装置１０が記憶する検出情報テーブルに基づいて、検出回数記憶部（経路制御データベース１３１）が記憶する検出情報テーブルの検出情報を更新する検出回数管理部と、検出回数記憶部（近接通信部１４２）が記憶する検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置１０までのメッセージの配送のしやすさを示す転送確率を算出する確率算出部１３３と、確率算出部１３３が算出した自装置から宛先の端末装置１０までの転送確率と、相手の端末装置１０から宛先の端末装置１０までの転送確率とを比較して、メッセージを転送するか否かを判定する確率判定部１３４と、確率判定部１３４が転送すると判定したメッセージを近接通信部１４２から相手の端末装置１０に転送するメッセージ管理部１２３と、を備える。
【００８４】
すなわち、端末装置１０は、直接検出回数に基づく値と間接検出回数に基づく値とを検出情報として検出情報テーブルを記憶する経路制御データベース１３１と、近接通信部１４２が他の端末装置１０を検出すると、検出した相手の端末装置１０の直接検出回数に基づく値を算出するとともに、相手の端末装置１０が記憶する検出情報テーブルに基づいて、自装置の検出情報を更新する検出回数管理部１３２と、検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置１０までの転送確率を算出する確率算出部１３３と確率算出部１３３が算出した転送確率とを比較して、メッセージを転送するか否かを判定する確率判定部１３４と、を備える。
【００８５】
これにより、端末装置１０は、他の端末装置を直接検出した回数を表す直接検出回数に基づく値と、他の端末装置を間接的に検出した回数を表す間接検出回数に基づく値と、に基づいて算出した転送確率を比較することによりメッセージを転送するか否かを判定するため、ネットワークにおいて、端末装置の移動が大きくかつ疎であり接触の少ない状態であった場合でも、複数の端末装置を経由した経路を考慮でき、端末装置およびネットワークのリソースの消費を抑えて宛先へのメッセージの到達率を大幅に向上させることができる。
【００８６】
（第２の実施形態）
以下、本発明の第２の実施形態について、図面を参照しながら第１の実施形態と異なる部分を中心に説明する。
本実施形態に係る端末装置１０の構成は、図２に示した第１の実施形態に係る端末装置１０の構成と同様であるので、図２の概略ブロック図を援用して説明する。
【００８７】
経路制御データベース１３１（検出回数記憶部）は、他の端末装置１０の検出情報を示す検出情報テーブルを記憶する。検出情報は、他の端末装置１０を検出した回数に基づく値の情報である。検出情報には、自装置が他の端末装置１０を近接通信部１４２により直接検出したことを表す直接検出回数に基づく値と、他の端末装置１０を間接的に検出したことを表す間接検出回数に基づく値とが含まれる。直接検出回数に基づく値とは、直接的に検出した回数である。間接検出回数に基づく値とは、他の端末装置１０が他の端末装置１０を直接的に検出した回数または間接的に検出した回数に減衰係数ρを乗算した値の少なくともいずれかに減衰係数ρ１を乗算した値である。
直接検出回数に基づく値および間接検出回数に基づく値は、値が大きいほど他の端末装置１０と検出した回数が多いことを表す。
【００８８】
検出回数管理部１３２は、近接通信部１４２が他の端末装置１０を検出したときに、検出した相手の端末装置１０から検出情報テーブルを取得し、取得した検出情報テーブルに基づいて、経路制御データベース１３１に記憶している検出情報テーブルを更新する。具体的には、検出回数管理部１３２は、検出した相手の端末装置１０の直接検出回数に基づく値を算出するとともに、他の端末装置１０から取得した検出情報テーブルに基づいて、他の端末装置１０の間接検出回数に基づく値に減衰係数ρ２１乗算して端末装置１０の間接検出回数に基づく値を算出し、当該間接検出回数に基づく値を検出情報テーブル更新する。
なお、上述した減衰係数ρと減衰係数ρ１とは、同じ値であってもよいし、異なる値であってもよい。当該減衰係数ρ、ρ１は、０から１までの間の値である。
【００８９】
検出回数管理部１３２は、他の端末装置１０から取得した検出情報テーブルにおける検出情報に対して減衰係数を乗算することにより間接検出回数に基づく値を算出し、当該経間接検出回数に基づく値を経路制御データベース１３１に格納する。このように、端末装置１０は、減衰係数が考慮された検出情報を他の端末装置１０から取得し、取得した検出情報に対して減衰係数を乗算することで、他の端末装置１０のホップ数のカウントや、当該ホップ数の管理などをせずに検出情報を取得することができる。
【００９０】
検出情報Ｅｉ（自，Ｘ）は、タイムフレームｉ（ｉは０からＮ−１までの整数）における自装置の他の端末装置１０Ｘ（Ｘは、他の端末装置、例えば端末装置１０Ｃなどを表す）に対する検出情報であり、０以上１以下の実数である。
検出回数管理部１３２は、１つのタイムフレームｉ内で同一の端末装置１０Ｘを複数回検出した場合であっても、検出情報を所定の値、例えば、検出情報Ｅｉ（自，Ｘ）＝１とする。また、検出回数管理部１３２は、１つのタイムフレーム内で端末装置１０Ｘを検出した場合には、端末装置１０Ｘの間接検出回数に基づく値を算出せず、端末装置１０Ｘの直接検出回数に基づく値、例えば直接検出回数を算出する。すなわち、検出回数管理部１３２は、１つのタイムフレームｉ内で端末装置１０Ｘを検出した場合には、検出情報Ｅｉ（自，Ｘ）に所定の値、例えば１を代入する。
【００９１】
また、検出回数管理部１３２は、タイムフレームｉ内で端末装置１０Ｘと接触していないときに他の端末装置１０（相手の端末装置１０とする）を検出すると、端末装置１０Ｘに対する間接検出回数に基づく値を算出する。具体的には、検出回数管理部１３２は、検出情報Ｅｉ（自，Ｘ）が検出情報Ｅｉ（相，Ｘ）×ρ１より小さいとき、検出情報Ｅｉ（相，Ｘ）×ρ１を検出情報Ｅｉ（自，Ｘ）とする。検出情報Ｅｉ（相，Ｘ）は、タイムフレームｉにおける相手の端末装置１０の端末装置１０Ｘに対する検出情報である。ρ１は、間接検出回数に基づく値の減衰係数であり、その値の範囲は０＜ρ１＜１である。すなわち、検出情報Ｅｉ（自，Ｘ）＝１は、直接検出回数に基づく値を表し、検出情報Ｅｉ（自，Ｘ）＜１は、間接検出回数に基づく値を表す。
【００９２】
このように、本位実施形態によれば、端末装置１０は、他の端末装置１０と無線通信する近接通信部１４２と、他の端末装置１０を直接的に検出した回数を表す直接検出回数に基づく値と、他の端末装置を間接的に検出した回数を表す間接検出回数に基づく値とを検出情報として他の端末装置１０ごとに検出情報テーブルを記憶する検出回数記憶部（経路制御データベース１３１）と、近接通信部１４２が他の端末装置１０を検出すると、検出回数記憶部（経路制御データベース１３１）が記憶する検出情報テーブルにおける当該検出した相手の端末装置１０の直接検出回数に基づく値を算出するとともに、相手の端末装置１０が記憶する検出情報テーブルに基づいて、検出回数記憶部（経路制御データベース１３１）が記憶する検出情報テーブルの検出情報を更新する検出回数管理部と、検出回数記憶部（近接通信部１４２）が記憶する検出情報テーブルに基づいて、自装置からメッセージの宛先の端末装置１０までのメッセージの配送のしやすさを示す転送確率を算出する確率算出部１３３と、確率算出部１３３が算出した自装置から宛先の端末装置１０までの転送確率と、相手の端末装置１０から宛先の端末装置１０までの転送確率とを比較して、メッセージを転送するか否かを判定する確率判定部１３４と、確率判定部１３４が転送すると判定したメッセージを近接通信部１４２から相手の端末装置１０に転送するメッセージ管理部１２３と、を備える。
【００９３】
これにより、第１の実施形態と同様の効果が得られるとともに、他の端末装置１０から取得した検出情報に基づいて間接検出回数に基づく値を算出することが可能であるため、他の端末装置１０のホップ数のカウントや、当該ホップ数の管理などをせずに検出情報を取得することができる。
【００９４】
上述した各実施形態において、端末装置１０は、転送確率を算出するための確率算出対象期間を設けているため、十分に過去の検出情報による余分な影響を排除して少ない計算量で精度の高い転送確率を算出することができる。
また、上述した各実施形態において、端末装置１０は、直接的に検出した相手の端末装置１０が過去に検出した他の端末装置１０の検出情報を間接検出回数に基づく値とすることで、経路要求メッセージなどを使用できない疎な状態であっても、自装置が直接検出した端末装置１０の先に存在する宛先への転送確率をより精度良く算出することができる。
【００９５】
また、上述した各実施形態において、端末装置１０は、自装置から宛先の端末装置１０への転送確率と相手の端末装置１０から宛先の端末装置１０への転送確率とを比較して、メッセージを転送するか、複製するか、保持するかを判定するため、余分な複製を抑えると同時に必要な複製を行うことができ、ネットワークリソースを抑えながらメッセージの到達率を向上させることができる。
また、上述した各実施形態において、端末装置１０は、公衆網もノードの一つとみなしていることから公衆網への接続も他の端末装置１０と同様に非同期で行うことができる。
また、上述した各実施形態において、端末装置１０は、同一メッセージを別メッセージとして多重化して送付し、どちらかが送達した場合には両方とも送達済みとして削除するため、リソース消費を少なくしながら送達率を向上させることができる。
【００９６】
なお、上述した各実施形態における端末装置１０の一部、例えば、ミドルウェア部１００をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、端末装置１０に内蔵されたコンピュータシステムであって、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、上述した実施形態における端末装置１０の一部、または全部を、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の集積回路として実現しても良い。
端末装置１０の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
【００９７】
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【００９８】
例えば、上述した各実施形態において、端末装置１０は、閾値αおよび閾値βを定数としているが、これに限らず、人（端末装置１０）の密度に応じて閾値αおよび閾値βを変更してもよい。
また、端末装置１０の通信範囲は、近接通信部１４２における通信方式によって変更してもよい。
【符号の説明】
【００９９】
１０・・・端末装置、１００・・・ミドルウェア部、１１０・・・ＩＦ制御部、１１１・・・アプリ間ＩＦ部、１１２・・・アドレス変換部、１１３・・・アドレスデータベース、１２０・・・メッセージ制御部、１２１・・・メッセージデータベース、１２２・・・多重化処理部、１２３・・・メッセージ管理部、１３０・・・経路制御部、１３１・・・経路制御データベース、１３２・・・検出回数管理部、１３３・・・確率算出部、１３４・・・確率判定部、１４０・・・無線通信部、１４１・・・データ通信部、１４２・・・近接通信部、１４３・・・公衆網接続部、１９０・・・アプリケーション部、１０１・・・ＣＰＵ、１０２・・・記憶媒体、１０３・・・ドライブ部、１０４・・・入力部、１０５・・・出力部、１０６・・・ＲＯＭ、１０７・・・ＲＡＭ、１０８・・・補助記憶部、１０９・・・通信部
【図１】
2015076809.tif 000003
【図２】
2015076809.tif 000004
【図３】
2015076809.tif 000005
【図４】
2015076809.tif 000006
【図５】
2015076809.tif 000007
【図６】
2015076809.tif 000008
【図７】
2015076809.tif 000009
【図８】
2015076809.tif 000010
【図９】
2015076809.tif 000011
【図１０】
2015076809.tif 000012
【図１１】
2015076809.tif 000013
【図１２】
2015076809.tif 000014