(57)【特許請求の範囲】
【請求項１】
アドホックネットワーク上で、提供者ノードから利用者ノードにデータを提供するためのデータ提供方法であって、
前記利用者ノードが、利用者が利用したいデータの条件が記述された受信ポリシを格納した受信用中継フィルタを作成して、複数の中継ノードに配信し、
前記提供者ノードが、提供者がデータを提供したい利用者の条件が記述された送信ポリシを格納した送信用中継フィルタを作成して、前記受信用中継フィルタを有する前記複数の中継ノードの全てまたは一部に配信し、
前記受信用中継フィルタと前記送信用中継フィルタを受信した前記複数の中継ノードが、有する前記受信ポリシと前記送信ポリシに記述された条件を満たす場合に、データの提供を許諾すると判定し、
前記提供者ノードが、前記複数の中継ノードの全てまたは一定数以上でデータの提供を許諾すると判定された場合に、前記複数の中継ノードを含む中継路を介して前記利用者ノードにデータを送信する、データ提供方法。
【請求項２】
アドホックネットワーク上で、提供者ノードから利用者ノードにデータを提供するためのデータ提供方法であって、
前記提供者ノードが、提供者がデータを提供したい利用者の条件が記述された送信ポリシを格納した送信用中継フィルタを作成して、複数の中継ノードに配信し、
前記利用者ノードが、利用者が利用したいデータの条件が記述された受信ポリシを格納した受信用中継フィルタを作成して、前記送信用中継フィルタを有する前記複数の中継ノードの全てまたは一部に配信し、
前記送信用中継フィルタと前記受信用中継フィルタを受信した前記複数の中継ノードが、有する前記送信ポリシと前記受信ポリシに記述された条件を満たす場合に、データの提供を許諾すると判定し、
前記提供者ノードが、前記複数の中継ノードの全てまたは一定数以上でデータの提供を許諾すると判定された場合に、前記複数の中継ノードを含む中継路を介して前記利用者ノードにデータを送信する、データ提供方法。
【請求項３】
前記利用者ノードが、前記受信ポリシを分割し、分割した別々の受信ポリシを前記受信用中継フィルタの各々に格納し、
前記提供者ノードが、前記送信ポリシを分割し、分割した別々の送信ポリシを前記送信用中継フィルタの各々に格納する、請求項１または２に記載のデータ提供方法。
【請求項４】
前記利用者ノードが、同じ受信ポリシを前記受信用中継フィルタの各々に格納し、
前記提供者ノードが、同じ送信ポリシを前記送信用中継フィルタの各々に格納する、請求項１または２に記載のデータ提供方法。
【請求項５】
前記複数の中継ノードの各々が、データの全部または一部をキャッシュし、データの提供を許諾する度に、キャッシュしたデータを直接または間接的に前記利用者ノードに送信する、請求項１から４のいずれか１項に記載のデータ提供方法。
【請求項６】
アドホックネットワークを構成するノード装置の１つであって、データを提供する提供者ノード、データを利用する利用者ノード、および、前記提供者ノードから前記利用者ノードへデータを中継する複数の中継ノードのいずれかの役割を担うノード装置において、
前記利用者ノードとなる場合、利用者が利用したいデータの条件が記述された受信ポリシを格納した受信用中継フィルタを作成し、前記提供者ノードとなる場合、提供者がデータを提供したい利用者の条件が記述された送信ポリシを格納した送信用中継フィルタを作成するフィルタ管理部と、
前記利用者ノードとなる場合、前記受信用中継フィルタを前記複数の中継ノードに送信し、前記提供者ノードとなる場合、前記送信用中継フィルタを、前記受信用中継フィルタを有する前記複数の中継ノードの全てまたは一部に送信し、前記中継ノードとなる場合、前記受信用中継フィルタのみまたは前記受信用中継フィルタと前記送信用中継フィルタの双方を受信する通信部と、
前記中継ノードとなる場合、前記受信用中継フィルタのみを受信した状況では、前記受信ポリシに記述された条件を満たす場合にデータの提供を許諾すると判定し、前記受信用中継フィルタと前記送信用中継フィルタの双方を受信した状況では、前記受信ポリシと前記送信ポリシに記述された条件を共に満たす場合にデータの提供を許諾すると判定するポリシ評価器と、を有し、
前記通信部は、前記提供者ノードとなる場合、前記複数の中継ノードの全てまたは一定数以上でデータの提供を許諾すると判定された場合に、前記複数の中継ノードを介して前記利用者ノードにデータを送信する、ノード装置。
【請求項７】
アドホックネットワークを構成するノード装置の１つであって、データを提供する提供者ノード、データを利用する利用者ノード、および、前記提供者ノードから前記利用者ノードへデータを中継する複数の中継ノードのいずれかの役割を担うノード装置において、
前記利用者ノードとなる場合、利用者が利用したいデータの条件が記述された受信ポリシを格納した受信用中継フィルタを作成し、前記提供者ノードとなる場合、提供者がデータを提供したい利用者の条件が記述された送信ポリシを格納した送信用中継フィルタを作成するフィルタ管理部と、
前記提供者ノードとなる場合、前記送信用中継フィルタを前記複数の中継ノードに送信し、前記利用者ノードとなる場合、前記受信用中継フィルタを、前記送信用中継フィルタを有する前記複数の中継ノードの全てまたは一部に送信し、前記中継ノードとなる場合、前記送信用中継フィルタのみまたは前記受信用中継フィルタと前記送信用中継フィルタの双方を受信する通信部と、
前記中継ノードとなる場合、前記送信用中継フィルタのみを受信した状況では、前記送信ポリシに記述された条件を満たす場合にデータの提供を許諾すると判定し、前記送信用中継フィルタと前記受信用中継フィルタの双方を受信した状況では、前記送信ポリシと前記受信ポリシに記述された条件を共に満たす場合にデータの提供を許諾すると判定するポリシ評価器と、を有し、
前記通信部は、前記提供者ノードとなる場合、前記複数の中継ノードの全てまたは一定数以上でデータの提供を許諾すると判定された場合に、前記複数の中継ノードを介して前記利用者ノードにデータを送信する、ノード装置。
【請求項８】
前記フィルタ管理部は、
前記利用者ノードとなる場合、前記受信ポリシを分割し、分割した別々の受信ポリシを前記受信用中継フィルタの各々に格納し、
前記提供者ノードとなる場合、前記送信ポリシを分割し、分割した別々の送信ポリシを前記送信用中継フィルタの各々に格納する、請求項６または７に記載のノード装置。
【請求項９】
前記フィルタ管理部は、
前記利用者ノードとなる場合、同じ受信ポリシを前記受信用中継フィルタの各々に格納し、
前記提供者ノードとなる場合、同じ送信ポリシを前記送信用中継フィルタの各々に格納する、請求項６または７に記載のノード装置。
【請求項１０】
データの全部または一部をキャッシュするキャッシュストレージをさらに有し、
前記通信部は、前記中継ノードとなる場合、データの提供を許諾する度に、前記キャッシュストレージにキャッシュしたデータを直接または間接的に前記利用者ノードに送信する、請求項６から９のいずれか１項に記載のノード装置。
【請求項１１】
アドホックネットワークを構成するノード装置の１つとなるコンピュータを、請求項６から１０のいずれか１項に記載のノード装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドホックネットワーク上の通信において、通信対象の絞込みおよびアクセス制御を実現する技術に関する。
【背景技術】
【０００２】
近年、インターネットや携帯電話などの普及により、任意の時間に任意の場所でデータ（「データ」と「情報」の総称、以下、同じ）通信を行うことができる、いわゆるユビキタスコミュニケーションが一般化してきている。また、ＣＧＭ（Consumer Generated Media）が普及するなど、エンドユーザがデータを発信することも一般化してきている。
【０００３】
一方、ネットワークの利用形態としては、１）自分のＨＰ（Home Page）やブログ、公開掲示板上で不特定多数のユーザに記事や画像・動画などのファイルを公開するオープンな利用形態や、２）知り合いのユーザ同士でメールをやり取りしたり、知り合いのユーザ同士または特定多数のユーザ間でチャットやメッセージ交換などを行ったりするクローズドな利用形態がある。さらに、最近は、ＳＮＳ（Social Networking Service）などの普及により、直接の知り合いでなくても（オープン）、友人であるなどの条件を満たすユーザ同士で（クローズド）、通信を行うといった利用形態も増えてきている。
【０００４】
このような背景の下、テーマパーク、イベント会場、仮設会場などの広いスペースがある場所や、公共交通機関の車両内や駅のホーム、大規模販売店などの混雑した場所は、ネットワーク接続や回線の確保が困難な場合が多く、ユビキタスネットワーク環境として不適な環境であると言える。このような場所では、ノード（「ノード装置」の略称、以下、同じ）間で直接の通信ができない場合、近傍のノードがバケツリレー式にデータを中継していく、アドホックネットワークによるマルチホップ通信が有効である。
【０００５】
アドホックネットワークは、主に、ノードが携帯電話などであるモバイル通信環境で用いられるため、ノードの電池の消耗やノードの移動を考慮して、ノード同士のデータのやり取りを素早く行うことが要求されている。また、セキュリティ性を考慮して、ノード同士のデータのやり取りを安全に行うことも要求されている。
【０００６】
このような観点から、アドホックネットワークの関連技術として、以下のような技術が開示されている。
【０００７】
１）データを安全にやり取りするための技術
例えば、特許文献１には、デバイス同士で互いに認証を行う技術が開示され、また、特許文献２には、匿名通信路を用いる技術が開示されている。
【０００８】
２）利用者が利用したいデータを発見するための技術
例えば、特許文献３には、データ検索用の検索インターフェースを設ける技術が開示されている。しかし、特許文献３に記載の技術では、利用者自らが条件判定を行っていると考えられるため、データ検索に手間と時間が掛かってしまう。また、特許文献４には、意味によるデータの絞込みを行う技術が開示されている。しかし、特許文献４に記載の技術では、提供者側が用意したフィルタであり、動的な要素を反映するために頻繁な最新化が必要となる。
【０００９】
３）提供者がデータを提供したい利用者を発見し利用許諾を与えるための技術
例えば、特許文献５には、チケットなどの権利情報を登録することにより権利を取得する技術が開示されている。しかし、特許文献５に記載の技術では、データを利用する権利を得るには、チケット発行局といった特殊な部局が必要であり、このような部局を不要とするには、提供者自らで利用許諾を与えなければならない。また、特許文献５に記載の技術では、特定の手段が単独で一元的に条件判定を行うため、内部不正が懸念される。
【特許文献１】特開２００７−０７４３９０号公報
【特許文献２】特開２００４−０８８６５７号公報
【特許文献３】特開２００５−１０２１６４号公報
【特許文献４】特開２００４−２６６６５３号公報
【特許文献５】特開２００３−１８７１６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述したように、従来のアドホックネットワークには、以下のような課題がある。
【００１１】
利用者側の視点で見た課題は、利用者は、利用したいデータを発見しようとする場合、自らで条件設定・条件判定をする必要があるため、データ検索に手間と時間が掛かってしまい、さらには、目的のデータに辿り着けないおそれがあるということである。
【００１２】
提供者側の視点で見た課題は、提供者は、不特定多数のユーザや知り合いのユーザにデータを提供する場合以外にも、特定の条件に一致したユーザにデータを提供しようとする場合があるが、この場合、自らで条件判定をする必要があるため、ユーザの検索に手間と時間が掛かってしまうということである。
【００１３】
利用者と提供者の双方に共通する課題は、通信相手単独で条件判定を一元的に行う場合、内部不正が懸念されるということである。
【００１４】
そこで、本発明の目的は、利用者が素早くかつ安全に特定の条件を満たす目的のデータを取得することができるとともに、提供者が素早くかつ安全に特定の条件を満たす利用者にデータを提供することができる、アドホックネットワークにおけるデータ提供方法、ノード装置、プログラムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するために本発明の第１の態様のデータ提供方法は、
アドホックネットワーク上で、提供者ノードから利用者ノードにデータを提供するためのデータ提供方法であって、
前記利用者ノードが、利用者が利用したいデータの条件が記述された受信ポリシを格納した受信用中継フィルタを作成して、複数の中継ノードに配信し、
前記提供者ノードが、提供者がデータを提供したい利用者の条件が記述された送信ポリシを格納した送信用中継フィルタを作成して、前記受信用中継フィルタを有する前記複数の中継ノードの全てまたは一部に配信し、
前記受信用中継フィルタと前記送信用中継フィルタを受信した前記複数の中継ノードが、有する前記受信ポリシと前記送信ポリシに記述された条件を満たす場合に、データの提供を許諾すると判定し、
前記提供者ノードが、前記複数の中継ノードの全てまたは一定数以上でデータの提供を許諾すると判定された場合に、前記複数の中継ノードを含む中継路を介して前記利用者ノードにデータを送信することを特徴としている。
【００１６】
上記目的を達成するために本発明の第２の態様のデータ提供方法は、
アドホックネットワーク上で、提供者ノードから利用者ノードにデータを提供するためのデータ提供方法であって、
前記提供者ノードが、提供者がデータを提供したい利用者の条件が記述された送信ポリシを格納した送信用中継フィルタを作成して、複数の中継ノードに配信し、
前記利用者ノードが、利用者が利用したいデータの条件が記述された受信ポリシを格納した受信用中継フィルタを作成して、前記送信用中継フィルタを有する前記複数の中継ノードの全てまたは一部に配信し、
前記送信用中継フィルタと前記受信用中継フィルタを受信した前記複数の中継ノードが、有する前記送信ポリシと前記受信ポリシに記述された条件を満たす場合に、データの提供を許諾すると判定し、
前記提供者ノードが、前記複数の中継ノードの全てまたは一定数以上でデータの提供を許諾すると判定された場合に、前記複数の中継ノードを含む中継路を介して前記利用者ノードにデータを送信する。
【００１７】
したがって、利用者は、利用したいデータを素早く取得することができ、また、提供者は、データを提供したい利用者に素早くデータを提供することができる。また、複数の中継ノードが介在して、データの提供を許諾するか判定するため、内部不正を心配することなく、提供者から利用者へのデータの提供を安全に行うことができる。
【発明の効果】
【００１８】
本発明によれば、利用者側の視点では、混雑した環境においても、大量のデータの中から、素早くかつ安全に特定の条件を満たすデータを取得することができ、また、提供者側の視点では、無条件公開や特定知人のみへのデータの提供以外にも、特定の条件を満たす利用者に素早くかつ安全にデータを提供することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
【００２０】
図１は、本発明の一実施形態のノード２の構成を示す図である。
【００２１】
ノード２は、アドホックネットワーク１を構成する携帯端末であり、例えば、スマートフォンなどの携帯電話・ＰＨＳ（Personal Handyphone System）、ＰＤＡ（Personal Digital Assistance）などの携帯情報端末、携帯ゲーム機、カーナビゲーションシステムなどである。
【００２２】
アドホックネットワーク１は、アドホックネットワークプロトコルによって律される、ノード２の移動や入れ替えが頻繁に行われることを前提としたネットワークであり、主にモバイル通信環境で用いられる。
【００２３】
ノード２は、ＵＩ（User Interface）３と、データストレージ４と、送信ポリシストレージ５と、受信ポリシストレージ６と、メタ情報ストレージ７と、フィルタ管理部８と、フィルタ９と、通信部１０と、を有している。
【００２４】
ノード２は、状況に応じて、データを提供する提供者ノード、データを利用する利用者ノード、および、提供者ノードから利用者ノードへデータを中継する中継ノードの３種類のいずれかの役割を担う。例えば、提供者ノードである場合は、主に、ＵＩ３、データストレージ４、送信ポリシストレージ５、メタ情報ストレージ７、フィルタ管理部８、および通信部１０を利用して動作を行い、利用者ノードである場合は、主に、ＵＩ３、データストレージ４、受信ポリシストレージ６、メタ情報ストレージ７、フィルタ管理部８、および通信部１０を利用して動作を行い、中継ノードである場合は、主に、フィルタ管理部８、フィルタ９、および通信部１０を利用して動作を行う。
【００２５】
ＵＩ３は、データを送受信したり、ポリシやメタ情報を入力・編集したり、フィルタ９を作成・編集したりするためのユーザ・インターフェースであるが、ノード２によっては、必ずしも必要ではない。例えば、予め決められたポリシに基づいてデータを定期的に送る提供者ノードや中継ノードとしての役割しか担わないノードなどでは不要である。
【００２６】
データストレージ４は、提供者ノードとなる場合に利用者ノードに提供するデータを格納しておくためのストレージであるが、利用者ノードとなる場合に提供者ノードから提供されたデータを格納するために用いてもよい。但し、そのようにデータストレージ４に格納されたデータを何度も利用するような場合には、許諾時のライセンス或いはそれに相当するものに従って利用を制限することが望ましい。
【００２７】
送信ポリシストレージ５は、提供者ノードとなる場合に、提供者がデータを提供したい利用者の条件が記述された送信ポリシを格納する。中継ノードに、別途送信ポリシを分割して送るならば、送信ポリシを予め分割しておく。なお、送信ポリシは、データストレージ４中のデータと結び付けられている。
【００２８】
受信ポリシストレージ６は、利用者ノードとなる場合に、利用者が利用したいデータの条件が記述された受信ポリシを格納する。中継ノードに、別途受信ポリシを分割して送るならば、受信ポリシを予め分割しておく。なお、受信ポリシは、データストレージ４中のデータと結び付けられている。
【００２９】
送信ポリシおよび受信ポリシは、例えば、ＸＡＣＭＬ（eXtensible Access Control Markup Language）フォーマットのものを想定しており、図２に示すように、条件規定部２６と動作規定部２７を有する。フィルタ９は、条件規定部２６に規定された条件を満たすか判定を行い、その判定結果に応じて、動作規定部２７に規定された動作を行う。本実施形態においては、通常、「条件を満たせば（提供者ノードから利用者ノードへのデータの提供の）許諾」を行う。また、条件規定部２６に規定された条件を満たさない場合や満たすかどうか分からない場合の動作を動作規定部２７に規定することも可能である。
【００３０】
条件規定部２６に規定された条件には、各種メタ情報がパラメータとして記述されており、フィルタ９は、これらのパラメータの値を取得して、条件を満たすかどうかを判定する。なお、条件規定部２６に規定された条件を満たすかどうかを判定し、その判定結果に応じた動作を動作規定部２７から取得する一連の処理を、「ポリシを評価する」と呼ぶ。
【００３１】
例えば、ポリシＡにおいて、条件規定部２６に規定された条件が、「条件式Ａ  ＡＮＤ  条件式Ｂ」、動作規定部２７に規定された動作が、「条件を満たせば許諾」であるならば、ポリシＢ１＝｛条件＝条件式Ａ，  動作＝条件を満たせばポリシＢ２を評価｝、ポリシＢ２＝｛条件＝条件式Ｂ，  動作＝条件を満たせば許諾｝といったように、ポリシＡを分割することができる。
【００３２】
メタ情報ストレージ７は、提供者、利用者、およびノード２に関するプロファイル情報をメタ情報として格納する。メタ情報は、｛識別子、値｝の組で格納される。メタ情報は、ポリシ評価の際に用いられ、効率向上のために、フィルタ９の中にも一部転記される。
【００３３】
フィルタ管理部８は、フィルタ９を作成・編集し、管理するものである。
【００３４】
フィルタ９は、フィルタリングエンジン１１と、フィルタ制御情報ストレージ１２と、キャッシュストレージ１３と、ポリシ評価器１４と、ポリシストレージ１５と、メタ情報取得器１６と、フィルタ内メタ情報ストレージ１７と、フィルタストレージ１８と、ポリシ取得器２８と、を有し、送信用中継フィルタと受信用中継フィルタの２種類がある。
【００３５】
送信用中継フィルタは、送信ポリシを有し、その送信ポリシに基づいて、提供者ノードから利用者ノードへのデータの提供を許諾してもよいか判定するもので、提供者ノードから複数の中継ノードに配信される。データが提供されるのは、中継ノードに配信された一連の送信用中継フィルタが許諾したことが必要条件となる。バリエーションとして、１つの送信用中継フィルタが許諾するごとにデータの一部分を渡すことにしてもよい。一連の送信用中継フィルタとは、各々が分割した送信ポリシを有するフィルタ群（重複可）や、各々が同一の送信ポリシを有する一定数以上のフィルタ群などを指す。
【００３６】
受信用中継フィルタは、受信ポリシを有し、その受信ポリシに基づいて、提供者ノードから利用者ノードへのデータの提供を許諾してもよいか判定するもので、利用者ノードから中継ノードに配信される。データが提供されるのは、中継ノードに配信された一連の受信用中継フィルタが許諾したことが必要条件となる。一連の受信用中継フィルタとは、各々が分割した受信ポリシを有するフィルタ群（重複可）や、各々が同一の受信ポリシを有する一定数以上のフィルタ群などを指す。
【００３７】
つまり、提供者ノードから利用者ノードへのデータの提供は、一連の送信用中継フィルタと一連の受信用中継フィルタが許諾して初めて行われることになる。
【００３８】
なお、通常、複数の中継ノードに送信用中継フィルタがすでに配信された状況では、これら複数の中継ノードの全てまたは一部に受信用中継フィルタが配信され、また、複数の中継ノードに受信用中継フィルタがすでに配信された状況では、これら複数の中継ノードの全てまたは一部に送信用中継フィルタが配信される。
【００３９】
そのため、フィルタ９が配信される中継ノードは、送信用中継フィルタと受信用中継フィルタが対向して設けられたものが最も多い。
【００４０】
通信部１０は、他のノード２との通信を行うものである。
【００４１】
フィルタリングエンジン１１は、フィルタ９における処理を進める部分である。例えば、フィルタ制御情報ストレージ１２中のフィルタ制御情報の編集を行い、他のフィルタ９からの依頼でフィルタ内メタ情報ストレージ１７からメタ情報を取り出す。また、ポリシ評価器１４にポリシ評価を依頼して、その評価結果を受け取り、その評価結果から必要に応じてキャッシュストレージ１３からデータキャッシュを取り出すとともに、フィルタストレージ１８から次に渡すべきフィルタ９を取り出す。
【００４２】
フィルタ制御情報ストレージ１２は、フィルタ制御情報を格納する。
【００４３】
フィルタ制御情報には、図３に示すように、フィルタシリーズＩＤ１９と、フィルタ種別２０と、フィルタＮｏ．２１と、送信元情報２２と、受信時刻２３と、送信先情報２４と、ＴＴＬ（Time To Live）２５と、が格納される。拡張性を持たせるため、これらの他に、その他の情報を格納することにしてもよい。
【００４４】
フィルタシリーズＩＤ１９は、提供者が１つのデータを提供するにあたって作成・配信される送信用中継フィルタに共通して振られるＩＤ、または、利用者が利用する１種類のデータを選別するにあたって作成・配信される受信用中継フィルタに共通して振られるＩＤであり、アドホックネットワーク１に特有のＩＤである必要がある。
【００４５】
フィルタ種別２０は、フィルタ９が送信用中継フィルタであるのか、受信用中継フィルタであるのかを示すものである。
【００４６】
フィルタＮｏ．２１は、同一フィルタシリーズＩＤの中で何番目にフィルタシリーズＩＤが振られたのかを示すものである。例えば、最初の送信用中継フィルタなら、フィルタＮｏ．２１は１となる。つまり、フィルタＮｏ．２１の値が１の場合、提供者ノードまたは利用者ノードの直前の中継ノードであると分かる。
【００４７】
送信元情報２２は、フィルタ９の送信元のノード２を特定するための情報である。ノート２を特定するための情報としては、ノードＩＤなどがある。送信元を次の中継ノード候補には選ばないようにするためなどに、送信元情報２２が利用される。
【００４８】
受信時刻２３は、中継ノードがフィルタ９を受信した時刻であるが、必須ではない。同一フィルタシリーズＩＤ１９、同一フィルタ種別２０、および同一フィルタＮｏ．２１であるフィルタが重複した状況において、受信時刻が早い方を採用するといった場合に、受信時刻２３が利用される。
【００４９】
送信先情報２４は、次のフィルタ９を送信するノード群を特定するための情報であるが、必須ではない。ルーティング変更の際の各種変更を容易にするためなどに、送信先情報２４が利用される。
【００５０】
ＴＴＬ２５は、あと幾つの中継ノードにフィルタ９を送信していくのかを記述したものである。フィルタ９は、ＴＴＬ２５が０ではない限り、次の中継ノードを探して次のフィルタ９を送信しようとする。
【００５１】
キャッシュストレージ１３は、送信ポリシのポリシ評価結果が許諾である場合に、利用者ノードに渡すデータの一部のキャッシュを格納する。データの分割方式は秘密分散方式が望ましいが、この方式の場合、提供者ノード側にはデータを分散するモジュールが必要となり、また、利用者ノード側には分割したデータを結合するモジュールが必要となる。また、データの一部ではなく、最後に評価される送信側中継フィルタにデータ全体のキャッシュをおいてもよい。しかし、キャッシュストレージ１３は必ずしも必要ではない。
【００５２】
ポリシ評価器１４は、ポリシ取得器２８を通じて評価すべき送信ポリシまたは受信ポリシを取得し、その送信ポリシまたは受信ポリシを評価するのに必要なメタ情報をメタ情報取得器１６から取得した上で、ポリシ評価を行う。
【００５３】
ポリシストレージ１５は、フィルタ９において評価すべき（分割された）送信ポリシまたは受信ポリシを格納する。
【００５４】
ポリシ取得器２８は、評価すべき送信ポリシまたは受信ポリシを、ポリシストレージ１５から取得する。拡張として、通信部１０経由で利用者ノードの受信ポリシストレージ６や提供者ノードの送信ポリシストレージ５や他の中継フィルタのポリシストレージ１５からポリシを取得することとしてもよい。
【００５５】
メタ情報取得器１６は、ポリシ評価器１４から要求されたメタ情報を取得する。
【００５６】
送信用中継フィルタの場合、対向する受信用中継フィルタのフィルタ内メタ情報ストレージ１７からメタ情報を取得したり、通信部１０を介して利用者ノードのメタ情報ストレージ７などからメタ情報を取得したり、別途センサによりメタ情報を取得したりする。
【００５７】
受信用中継フィルタの場合、対向する送信用中継フィルタのフィルタ内メタ情報ストレージ１７からメタ情報を取得したり、通信部１０を介して提供者ノードのメタ情報ストレージ７などからメタ情報を取得したり、別途センサによりメタ情報を取得したりする。
【００５８】
フィルタ内メタ情報ストレージ１７は、対向する中継フィルタで用いられる可能性があるメタ情報をキャッシュとして格納する。
【００５９】
フィルタストレージ１８は、次の中継ノードに渡すべきフィルタ９を格納する。
【００６０】
なお、本実施形態においては、フィルタ９における処理はフィルタ９のみに閉じていることが望ましい。また、データ（キャッシュ）、ポリシ、メタ情報も不必要に参照できないようになっていることが望ましい。
【００６１】
また、本実施形態においては、フィルタ９におけるポリシは、実際に利用するときに、利用者ノードや提供者ノードから別途取得することにしてもよい。その際、ポリシを暗号化しておき、フィルタ９が保有する復号鍵によってのみ復号化できるようにしてもよい。
【００６２】
また、本実施形態においては、フィルタリングエンジン１１、ポリシ評価器１４、メタ情報取得器１６、およびポリシ取得器２８は、基本的に共通の処理を行うものであるので、フィルタ９ごとに用意するのではなく、ノード２に共通する機能としてフィルタ９の外部に用意してもよい。
【００６３】
また、本実施形態においては、提供者ノードから利用者ノードへのデータの提供が許諾された後の最終的なデータ転送においても、上記のような暗号化と復号化を行うことにしてもよい。
【００６４】
以下、本実施形態の動作例について、図４〜図９を参照して説明する。
【００６５】
本例では、利用者ノードからすでに受信用中継フィルタが配信されている状況で、提供者ノードが、データを提供する利用者を発見しようとする場合の動作について説明する。この場合、基本的な流れは以下のようになる。
【００６６】
１）利用者ノードによる受信用中継フィルタの作成と配信
２）提供者ノードによる送信用中継フィルタの作成と配信（配信は３と平行して順次行われる）
３）中継ノードによる受信用中継フィルタと送信用中継フィルタを用いた許諾判定
４）許諾時における提供者ノードから利用者ノードへのデータの提供
逆に、提供者ノードからすでに送信用中継フィルタが配信されている状況で、利用者ノードが、データを発見しようとした場合は、上記の基本的な流れにおいて、提供者ノード・送信用中継フィルタと利用者ノード・受信用中継フィルタとを入れ替えた形とすることで実現できる。
【００６７】
また、許諾判定からデータ提供までの処理は、提供者または利用者によるリアルタイムな要求を契機とするものでもよいし、提供者または利用者が定期的に要求を繰り返すものであってもよい。また、代理者が要求を行ってもよいものとする。
【００６８】
最初に、１）利用者ノードによる受信用中継フィルタの作成と配信、について、図４、図５および図６を参照して説明する。
【００６９】
まず、利用者ノードは、利用者が利用したいデータの条件を記述した受信ポリシを基本的には分割し、分割した受信ポリシを各ポリシストレージ１５に格納した受信用中継フィルタを作成する（図４のステップ１）。本例の場合は、ＴＴＬ＝２であり、２種類の受信用中継フィルタ＃１，＃２を作成したものとする。なお、受信用中継フィルタ＃２は、受信用中継フィルタ＃１のフィルタストレージ１８に格納される。
【００７０】
このとき、利用者ノードは、送信用中継フィルタが利用する可能性がある利用者のプロファイルを予めメタ情報ストレージ７から取得してフィルタ内メタ情報ストレージ１７に転記してもよい。
【００７１】
次に、利用者ノードは、隣接ノードを検索する。なお、隣接ノードの情報は、従来のアドホックネットワークプロトコルによるルーティングテーブルから取得する。
【００７２】
次に、利用者ノードは、隣接ノードに受信用中継フィルタ＃１を配信する（図４および図５のステップ２）。
【００７３】
受信用中継フィルタ＃１を受け取った中継ノードは、受信用中継フィルタ＃１の送信元情報２２や受信時刻２３やＴＴＬ２５などのフィルタ制御情報を更新する（図４のステップ３）。
【００７４】
次に、受信用中継フィルタ＃１を受け取った中継ノードは、受信用中継フィルタ＃１の更新後のＴＴＬ２５が０でないか判定する。本例の場合は、受信用中継フィルタ＃１の更新後のＴＴＬ２５は１であり０ではないので、受信用中継フィルタ＃１のフィルタストレージ１８から次の受信用中継フィルタ＃２を読み出す。受信用中継フィルタ＃２のＴＴＬ２５の値は、受信用中継フィルタ＃１の更新後のＴＴＬ２５と同じ値とするか、更新直前のＴＴＬ２５から１を引いた値とする。本例の場合は、後者とする。
【００７５】
次に、受信用中継フィルタ＃１を受け取った中継ノードは、送信元を除く隣接ノードを検索する。もし、送信元を除く隣接ノードがいない場合には、受け取った受信用中継フィルタ＃１を含めて残りの全ての受信用中継フィルタをその中継ノード上で展開する。
【００７６】
次に、受信用中継フィルタ＃１を受け取った中継ノードは、送信元を除く隣接ノードに受信用中継フィルタ＃２を配信する（図４および図６のステップ４）。ただし、中継ノード候補に、既に同一フィルタシリーズＩＤ、同一種別の受信用中継フィルタが存在する場合には、受信用中継フィルタ＃２の配信を行わない。
【００７７】
受信用中継フィルタ＃２を受け取った中継ノードは、受信用中継フィルタ＃２の送信元情報２２や受信時刻２３やＴＴＬ２５などのフィルタ制御情報を更新する（図４のステップ５）。なお、送信元情報２２には、送信元となる利用者ノード以外に、中継してきた全ての中継ノードの情報を追記していき、次の中継ノード候補から外すようにしてもよいが、中継ノードが結託し易くなるので推奨はしない。
【００７８】
次に、受信用中継フィルタ＃２を受け取った中継ノードは、受信用中継フィルタ＃２の更新後のＴＴＬ２５が０でないか判定する。本例の場合は、受信用中継フィルタ＃２の更新後のＴＴＬ２５は０であり、次の受信用中継フィルタもないので、それ以上のフィルタ配信を行わない。
【００７９】
なお、本実施形態においては、受信用中継フィルを受け取った中継ノードは、受け取った受信用中継フィルタを、ある一定の期間が経過したら自動的に削除してもよいし、送信元に確認の上削除してもよい。中継ノードが送信用中継フィルタを受け取った場合も同様である。
【００８０】
次に、２）提供者ノードによる送信用中継フィルタの作成と配信、３）中継ノードによる受信用中継フィルタと送信用中継フィルタを用いた許諾判定、４）許諾時における提供者ノードから利用者ノードへのデータの提供、について、図７、図８および図９を参照して説明する。
【００８１】
まず、提供者ノードは、提供者がデータを提供したい利用者の条件を記述した送信ポリシを基本的には分割し、分割した送信ポリシを各ポリシストレージ１５に格納した送信用中継フィルタを作成する（図７のステップ６）。本例の場合は、ＴＴＬ＝３であり、２種類の送信用中継フィルタ＃１，＃２を作成したものとする。なお、送信用中継フィルタ＃２は、送信用中継フィルタ＃１のフィルタストレージ１８に格納される。
【００８２】
このとき、提供者ノードは、受信用中継フィルタが利用する可能性がある提供者や提供ファイルのプロファイルを予めメタ情報ストレージ７から取得してフィルタ内メタ情報ストレージ１７に転記してもよい。
【００８３】
また、提供者ノードは、利用者ノードに提供するデータの全部または一部をキャッシュストレージ１３に格納してもよい。
【００８４】
次に、提供者ノードは、隣接ノードを辿っていき、ＴＴＬ２５が０である何らかの受信用中継フィルタを有するノードを検索して、送信用中継フィルタ＃１を配信する（図７および図８のステップ７）。本例の場合は、提供者ノードから２ホップのノード群かつ利用者ノードから２ホップのノード群の中に、ＴＴＬ２５が０である受信用中継フィルタ＃２を有するノードが検索され、そのノードに送信用中継フィルタ＃１を配信したものとする。上記の過程において、隣接ノードに受信用中継フィルタがない場合は、送信用中継フィルタ＃１のＴＴＬ２５を１づつ減らしていき、さらに隣接ノードに問い合わせを行っていく。また、中継ノード候補に、既に同一フィルタシリーズＩＤ、同一種別の送信用中継フィルタが存在する場合には、送信用中継フィルタ＃１の配信を行わない。また、隣接ノードに受信用中継フィルタが存在している場合でも、その受信用中継フィルタのＴＴＬ２５が０ではない場合は、その受信用中継フィルタは途中の中継フィルタなので、送信用中継フィルタ＃１の配信は行わない。もしくは、ステップ７において、提供者ノードは、受信用中継フィルタの送信先を辿って、受信用中継フィルタを有する最外殻のノードまで遡ってから、ＴＴＬ２５が０である受信用中継フィルタを有するノードを検索してもよい。
【００８５】
送信用中継フィルタ＃１を受け取った中継ノードは、送信用中継フィルタ＃１の送信元情報２２や受信時刻２３やＴＴＬ２５などのフィルタ制御情報を更新する。なお、この場合の送信元情報２２は提供者ノードからのルーティング情報としてもよい。
【００８６】
次に、送信用中継フィルタ＃１を受け取った中継ノードは、送信用中継フィルタ＃１において、受信用中継フィルタ＃２のメタ情報を利用してポリシ評価を行い、提供者ノードから利用者ノードへのデータの提供を許諾してよいかの判定を行うと同時に、受信用中継フィルタ＃２において、送信用中継フィルタ＃１のメタ情報を利用してポリシ評価を行い、提供者ノードから利用者ノードへのデータの提供を許諾してよいかの判定を行う（図７および図８のステップ８）。
【００８７】
ステップ８において、送信用中継フィルタ＃１および受信用中継フィルタ＃２のどちらかが許諾しない場合、そこで処理は終了する。
【００８８】
一方、ステップ８において、送信用中継フィルタ＃１および受信用中継フィルタ＃２の双方が許諾した場合、送信用中継フィルタ＃１を受け取った中継ノードは、送信用中継フィルタ＃１のフィルタストレージ１８から次の送信用中継フィルタを読み出す。もし、次の送信用中継フィルタがなければ、以降の中継ノードでは受信用中継フィルタのみで許諾の判定を行う。本例の場合は、次の送信用中継フィルタ＃２が読み出される。なお、送信用中継フィルタ＃２のＴＴＬ２５の値は送信用中継フィルタ＃１の更新後のＴＴＬ２５と同じ値とするか、更新直前のＴＴＬ２５から１を引いた値とする。本例の場合は、後者とする。また、送信用中継フィルタ＃１のキャッシュストレージ１３にデータがあれば、送信用中継フィルタ＃２のキャッシュストレージ１３にそのデータをコピーする。
【００８９】
次に、送信用中継フィルタ＃１を受け取った中継ノードは、送信用中継フィルタ＃１の更新後のＴＴＬ２５が０でないか判定するとともに、利用者ノードの隣接ノードでないか判定する。受信用中継フィルタ＃２のフィルタＮｏ．２１が１であれば、その中継ノードが利用者ノードの隣接ノードとなる。もし、送信用中継フィルタ＃１の更新後のＴＴＬ２５が０であり、その中継ノードが利用者ノードの隣接ノードでなければ、そこで処理は終了する。また、その中継ノードが利用者ノードの隣接ノードであれば、次の利用者ノードで許諾判定を行うべきではないので、受け取った送信用中継フィルタを含めて残りの全ての送信用中継フィルタをその中継ノード上で展開する。本例の場合は、送信用中継フィルタ＃１のＴＴＬ２５は１であり０ではなく、また、その中継ノードが利用者ノードの隣接ノードではないため、受信用中継用フィルタ＃２の送信元を検索して、送信用中継フィルタ＃２を配信する（図７および図９のステップ９）。
【００９０】
送信用中継フィルタ＃２を受け取った中継ノードは、送信元情報２２や受信時刻２３やＴＴＬ２５などのフィルタ制御情報を更新する。
【００９１】
次に、送信用中継フィルタ＃２を受け取った中継ノードは、送信用中継フィルタ＃２において、受信用中継フィルタ＃１のメタ情報を利用してポリシ評価を行い、提供者ノードから利用者ノードへのデータの提供を許諾してよいかの判定を行うと同時に、受信用中継フィルタ＃１において、送信用中継フィルタ＃２のメタ情報を利用してポリシ評価を行い、提供者ノードから利用者ノードへのデータの提供を許諾してよいかの判定を行う（図７および図９のステップ１０）。
【００９２】
ステップ１０において、送信用中継フィルタ＃２および受信用中継フィルタ＃１のどちらかが許諾しない場合、そこで処理は終了する。
【００９３】
一方、ステップ１０において、送信用中継フィルタ＃２および受信用中継フィルタ＃１の双方が許諾した場合、送信用中継フィルタ＃２を受け取った中継ノードは、送信用中継フィルタ＃２の更新後のＴＴＬ２５が０でないか判定するとともに、利用者ノードの隣接ノードであるか判定する。本例の場合は、送信用中継フィルタ＃２の更新後のＴＴＬ２５が０であり、また、その中継ノードが利用者ノードの隣接ノードであることから、全ての中継ノードの判定が許諾であったと判断し、その旨を提供者ノードに通知する（図７のステップ１１）。
【００９４】
その後、提供者ノードは、中継ノードを介して、利用者ノードにデータを提供する（図７のステップ１２）。
【００９５】
なお、本実施形態においては、データの提供方法は、送信用中継フィルタの送信元を辿って、提供者ノードからデータを提供してもよいし、送信用中継フィルタ内のキャッシュストレージ１３内のデータを渡して、必要に応じてデータの結合を行ってもよい。
【００９６】
また、本実施形態においては、提供者ノードから利用者ノードにデータを提供するには、一連の送信用・受信用中継フィルタの全て、すなわち中継ノードの全ての許諾が必要であったが、一定数以上の中継ノードの許諾があればよいことにしてもよい。なお、一定数以上の中継ノードの許諾でよいとする場合は、例えば、各中継ノードが、許諾判定の結果に拘わらず次の中継フィルタを隣接ノードに送信し、各許諾判定の結果を提供者ノードに報告する構成とすればよい。
【００９７】
また、本実施形態においては、キャッシュストレージ１３内のデータの一部を途中で送信していたが、直接利用者ノードに送信することとしてもよい。
【００９８】
また、本実施形態においては、ノード２の移動により、ルーティングに変更があった場合（ノード２が持つルーティングテーブルに変更があった場合）は、中継フィルタの送信元に依頼するなどして、適宜中継フィルタの再配信が行われるものとする。
【００９９】
次に、送信用・受信用中継フィルタによるポリシ評価の動作について、図１０を参照して詳しく説明する。
【０１００】
まず、ポリシ評価器１４は、ポリシ取得器２８に対して、評価すべきポリシの取得を要求する（ステップ１００）。
【０１０１】
ポリシ取得器２８は、ポリシストレージ１５からポリシを取得し（ステップ１０１）、そのポリシをポリシ評価器１４に渡す（ステップ１０２）。
【０１０２】
なお、ステップ１０１のポリシ取得は、ポリシストレージ１５からではなく、通信部１０を介して、利用者ノードの受信ポリシストレージ６や提供者ノードの送信ポリシストレージ５や他の中継フィルタのポリシストレージ１５から行ってもよい。
【０１０３】
ポリシ評価器１４は、取得したポリシの条件規定部２６において、変数として用いられているメタ情報の識別子を抽出する（ステップ１０３）。
【０１０４】
ポリシ評価器１４は、メタ情報取得器１６に対して、抽出したメタ情報の識別子によって表されるメタ情報の値の取得を要求する（ステップ１０４）。
【０１０５】
メタ情報取得器１６は、対向する中継フィルタのフィルタ内メタ情報ストレージ１７からメタ情報の値を取得し（ステップ１０５）、その値をポリシ評価器１４に渡す（ステップ１０６）。
【０１０６】
なお、ステップ１０５のメタ情報取得は、対向する中継フィルタのフィルタ内メタ情報ストレージ１７からではなく、通信部１０を介して、利用者ノードまたは提供者ノードのメタ情報ストレージ７から行ってもよい。
【０１０７】
また、ステップ１０４〜１０６は、ステップ１０３で抽出したメタ情報の識別子ごとに複数回行ってもよいし、一括して行ってもよい。
【０１０８】
ポリシ評価器１４は、評価すべきポリシの条件規定部２６に規定された条件式の真偽を判定し（ステップ１０７）、その判定結果を受けて、動作規定部２７に規定された動作、例えば、「許諾」を取得する（ステップ１０８）。
【０１０９】
上述したように本実施形態においては、提供者ノードが、データを提供したい利用者の条件が記述された送信ポリシを格納した送信用中継フィルタの作成と中継ノードへの配信を行い、利用者ノードが、利用者が利用したいデータの条件が記述された受信ポリシを格納した受信用中継フィルタの作成と中継ノードへの配信を行い、複数の中継ノードが、受信ポリシおよび送信ポリシの少なくとも一方を用いて、提供者ノードから利用者ノードへのデータの提供を許諾するか判定し、前記複数の中継ノードの全てまたは一定数以上でデータの提供を許諾すると判定された場合に、提供者ノードから前記複数の中継ノードを含む中継路を介して利用者ノードにデータを提供する。
【０１１０】
したがって、利用者は、利用したいデータを素早く取得することができ、また、提供者は、データを提供したい利用者に素早くデータを提供することができる。また、複数の中継ノードが介在して、データの提供を許諾するか判定するため、内部不正の心配もなく、提供者から利用者へのデータの提供を安心して行うことができる。
【０１１１】
なお、本発明のノード２は、専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【産業上の利用可能性】
【０１１２】
本発明は、企業間の取引を表すＢ２Ｂ（B to B）、企業と消費者間の取引を表すＢ２Ｃ（B to C）、消費者間の取引を表すＣ２Ｃ（C to C）のすべてに利用可能である。
【０１１３】
より具体的には、例えば、次のような場面で利用可能である。
・音楽フェスティバル会場において、同じアーティスト愛好者に対してのみ、そのアーティストに関する感想を交換し合う。
・有料会員が、自分に興味があるニュース速報の配信を受ける。
・アウトレットモールやレストラン街などにおいて、興味のある販売ブースや店の混雑状況やお勧めアイテム・メニューを取得する。
・公共交通機関のターミナルや車内において、自分が乗る予定あるいは乗っている乗り物の時刻表や運行状況を取得する。
・テーマパークおよび同人誌即売会などのイベント会場や展示会場において、自分の現在位置情報から、その近くのライドや施設、ブース、展示品などの混雑状況、スケジュール情報、頒布状況、感想、概要などを取得する。
・海水浴場やキャンプ場、イベント会場などにおいて、家族やサークル仲間、オフ会メンバーなどのグループがバラバラに行動する際に、携帯電話などで撮影した画像や映像を送りあって、現状を報告し合う。
【図面の簡単な説明】
【０１１４】
【図１】本発明の一実施形態のノード装置の構成を示す図である。
【図２】本発明の一実施形態に係るポリシの構成要素と分割例を示す図である。
【図３】本発明の一実施形態に係るフィルタ制御情報を示す図である。
【図４】本発明の一実施形態のノード装置の動作を説明するシーケンス図である。
【図５】本発明の一実施形態のノード装置の動作を説明する図である。
【図６】本発明の一実施形態のノード装置の動作を説明する図である。
【図７】本発明の一実施形態のノード装置の動作を説明するシーケンス図である。
【図８】本発明の一実施形態のノード装置の動作を説明する図である。
【図９】本発明の一実施形態のノード装置の動作を説明する図である。
【図１０】本発明の一実施形態のノード装置のポリシ評価動作を説明するシーケンス図である。
【符号の説明】
【０１１５】
１    アドホックネットワーク
２    ノード
３    ＵＩ
４    データストレージ
５    送信ポリシストレージ
６    受信ポリシストレージ
７    メタ情報ストレージ
８    フィルタ管理部
９    フィルタ
１０    通信部
１１    フィルタリングエンジン
１２    フィルタ制御情報ストレージ
１３    キャッシュストレージ
１４    ポリシ評価器
１５    ポリシストレージ
１６    メタ情報取得器
１７    フィルタ内メタ情報ストレージ
１８    フィルタストレージ
１９    フィルタシリーズＩＤ
２０    フィルタ種別
２１    フィルタＮｏ．
２２    送信元情報
２３    受信時刻
２４    送信先情報
２５    ＴＴＬ
２６    条件規定部
２７    動作規定部
２８    ポリシ取得器
【図１】
0004871224.tif 000002
【図２】
0004871224.tif 000003
【図３】
0004871224.tif 000004
【図４】
0004871224.tif 000005
【図５】
0004871224.tif 000006
【図６】
0004871224.tif 000007
【図７】
0004871224.tif 000008
【図８】
0004871224.tif 000009
【図９】
0004871224.tif 000010
【図１０】
0004871224.tif 000011