ピアツーピア (Peer-to-Peer,P2P) とは,クライアントサーバモデルと違い中央管理が無く,個々の端末 (以後ノードと呼ぶ) が自律的に動作しながら互いに協調して動作するネットワークの形態を指す.P2Pが注目されている理由は,クライアントサーバモデルでは提供できない大規模なサービスを提供できるからである.P2P方式はコンテンツの検索方法からHybrid P2P,Pure P2P,Distributed Hash Table (DHT),Complex P2Pの4つに分類できる.本研究では検索効率もよく負荷分散可能なDHTを対象としている.
DHTの特徴として,P2Pネットワークを構造化している点が挙げられる.構造化による利点は,コンテンツがある一定の規則に従って配置されることである.それにより,コンテンツの所在が予測できるため効率的な検索が可能となる.コンテンツはハッシュ関数に通されることで一意な値を得,それを基にP2Pネットワーク内に配置される.しかし,DHTではハッシュ関数を利用した仕組みのため,入力値を的確に指定しなければコンテンツの所在を得ることは出来ない.そのため,キーワード検索が難しいという問題点がある.
そこで,本研究はDHT環境下で複数キーワード検索を可能にすることを目的とする.解決方法として,BloomフィルタをDHTに適用することで複数キーワード検索を可能にする.DHTの具体的なシステムとしてはChordを用いる.
Bloomフィルタとは,複数の要素から構成される集合の中に,任意の要素が含まれているかどうかを判定するアルゴリズムである.巨大なビット列に対し,コンテンツを表すキーワードを複数のハッシュ関数に通し,得た値と等しい位置のビットをそれぞれ立てることでキーワードを格納したとみなす.利点として,キーワードはビットデータとして格納されているため,ノード間で情報を交換する際は少ない負荷で済む.また,コンテンツ有無の確認にもXOR演算で済むなど,処理に関する負荷が全体的に低いことが挙げられる.
検証のため,シミュレータを作成し動作を確認した結果,ChordとBloomフィルタを組み合わせることで,DHT環境下で複数キーワードの検索が可能であることを実証した.