(57)【要約】 【課題】本発明は、ＬＡＮ内とＬＡＮ外との通信により発生する通信負荷を軽減し、コンテンツを効率良く取得することが出来るノード装置、情報通信システム、メッセージ送信方法及びプログラム等を提供することを目的とする。【解決手段】ノード装置Ｔｍ−ｎが第１ルーティングテーブルと第２ルーティングテーブルとを記憶している場合、パブリッシュメッセージは、第２ルーティングテーブルに記載された宛先へパブリッシュメッセージを送信する。検索要求メッセージは、最初に第２ルーティングテーブルに記載の宛先へ送信される。そして、所定期間の間に検索応答メッセージが受信されなかった場合、次に第１ルーティングテーブルに記載の宛先へ検索要求メッセージが送信される。【選択図】図１
2011211476.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンテンツが複数のノード装置間で送受信され、グローバルアドレスにより通信可能な外部ネットワークが１以上の内部ネットワークを含み、前記複数のノード装置の少なくとも一部のノード装置が、前記前記内部ネットワークに接続されるノード装置であって、
前記外部ネットワークまたは前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、前記第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が記憶された第１ルーティングテーブルを取得する第１取得部と、
前記ノード装置が接続する前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、前記第２オーバーレイネットワークに参加するノード装置の前記所在情報が記憶された第２ルーティングテーブルを取得する第２取得部と、
前記ノード装置が送信するメッセージの内容に応じて、前記第１ルーティングテーブルと前記第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する決定部と、
前記決定部により決定されたルーティングテーブルに記載された所在情報を送信先として前記メッセージを送信する送信部と、
を備えることを特徴とするノード装置。
【請求項２】
前記複数のノード装置のいずれかから取得したコンテンツを記憶する記憶部を備え、
前記送信部は、前記ノード装置が前記記憶部にコンテンツを記憶したことを前記複数のノード装置に通知する通知メッセージであって、コンテンツを記憶した前記ノード装置の前記所在情報を含む前記通知メッセージを送信し、
前記送信部が前記通知メッセージを送信する場合、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定することを特徴とする請求項１に記載のノード装置。
【請求項３】
前記記憶部に記憶されたコンテンツが、前記第１オーバーレイネットワークへの公開を許可されたコンテンツであるか否かを判定する第１判定部を備え、
前記第１判定部により、前記記憶部が記憶したコンテンツが、許可されたコンテンツであると判定されたとき、前記決定部は、前記第１ルーティングテーブルと前記第２ルーティングテーブルとに記載された前記所在情報を送信先として決定し、
前記第１判定部により、前記記憶部が記憶したコンテンツが、許可されたコンテンツでないと判定されたとき、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定することを特徴とする請求項２に記載のノード装置。
【請求項４】
前記ノード装置が、前記記憶部に記憶されたコンテンツを、前記第１オーバーレイネットワークへ公開することを許可されたノード装置であるか否かを判定する第２判定部を備え、
前記第２判定部により、前記ノード装置が許可されたノード装置であると判定されたとき、前記決定部は、前記第１ルーティングテーブルと前記第２ルーティングテーブルとに記載された前記所在情報を送信先として決定し、
前記第２判定部により、前記ノード装置が許可されたノード装置でないと判定されたとき、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定することを特徴とする請求項２に記載のノード装置。
【請求項５】
前記送信部は、前記複数のノード装置の中から所望のコンテンツを保持する１以上のコンテンツ保持ノード装置の前記ネットワーク上における所在を示す所在情報を検索する検索メッセージを送信し、
前記送信部が前記検索メッセージを送信する場合、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定することを特徴とする請求項１に記載のノード装置。
【請求項６】
前記送信部が前記検索メッセージを送信する場合、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定し、前記第２ルーティングテーブルに記載された前記所在情報を送信先として前記検索メッセージを送信した後に、前記決定部は、前記第１ルーティングテーブルに記載された前記所在情報を送信先としてさらに決定することを特徴とする請求項５に記載のノード装置。
【請求項７】
前記検索メッセージに対応する前記コンテンツ保持ノードの前記所在情報を受信する受信部と、
前記決定部により決定された前記第２ルーティングテーブルに記載された前記所在情報を送信先として前記検索メッセージを送信してから、所定の時間の間に、前記受信部が前記所在情報を受信したか否かを判定する第３判定部と、
を備え、
前記第３判定部により、前記所定の時間の間に、前記受信部が前記所在情報を受信したと判定されなかったとき、前記送信部は、前記第１ルーティングテーブルに記載された前記所在情報を送信先として、前記検索メッセージを送信することを特徴とする請求項６に記載のノード装置。
【請求項８】
前記検索メッセージに対応する前記コンテンツ保持ノードの前記所在情報を受信する受信部と、
前記受信部が受信したコンテンツ保持ノードの前記所在情報の数が、所定の数より小さいか否かを判定する第４判定部と、
を備え、
前記第４判定部により、前記コンテンツ保持ノードの数が、所定の数より小さいと判定されたとき、前記送信部は、前記第１ルーティングテーブルに記載された前記所在情報を送信先として、前記検索メッセージを送信することを特徴とする請求項６に記載のノード装置。
【請求項９】
複数のコンテンツが複数のノード装置間で送受信され、グローバルアドレスにより通信可能な外部ネットワークが１以上の内部ネットワークを含み、前記複数のノード装置の少なくとも一部のノード装置が、前記前記内部ネットワークに接続されるノード装置により構成される情報通信システムであって、
前記情報通信システムは、
前記外部ネットワークまたは前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、前記第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が記憶された第１ルーティングテーブルを取得する第１取得部と、
前記ノード装置が接続する前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、前記第２オーバーレイネットワークに参加するノード装置の前記所在情報が記憶された第２ルーティングテーブルを取得する第２取得部と、
前記ノード装置が送信するメッセージの内容に応じて、前記第１ルーティングテーブルと前記第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する決定部と、
前記決定部により決定されたルーティングテーブルに記載された所在情報を送信先として前記メッセージを送信する送信部と、
を備えることを特徴とするノード装置を備えることを特徴とする情報通信システム。
【請求項１０】
複数のコンテンツが複数のノード装置間で送受信され、グローバルアドレスにより通信可能な外部ネットワークが１以上の内部ネットワークを含み、前記複数のノード装置の少なくとも一部のノード装置が、前記前記内部ネットワークに接続されるノード装置のメッセージ送信方法であって、
前記外部ネットワークまたは前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、前記第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上の所在を示す所在情報が記憶された第１ルーティングテーブルを取得する第１取得ステップと、
前記ノード装置が接続する前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、前記第２オーバーレイネットワークに参加するノード装置の前記所在情報が記憶された第２ルーティングテーブルを取得する第２取得ステップと、
前記ノード装置が送信するメッセージの内容に応じて、前記第１ルーティングテーブルと前記第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する決定ステップと、
前記決定部により決定されたルーティングテーブルに記載された所在情報を送信先として前記メッセージを送信する送信ステップと、
を含むメッセージ送信方法。
【請求項１１】
複数のコンテンツが複数のノード装置間で送受信され、グローバルアドレスにより通信可能な外部ネットワークが１以上の内部ネットワークを含み、前記複数のノード装置の少なくとも一部のノード装置が、前記前記内部ネットワークに接続されるノード装置のメッセージ送信方法であって、
前記外部ネットワークまたは前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、前記第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が記憶された第１ルーティングテーブルを取得する第１取得ステップと、
前記ノード装置が接続する前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、前記第２オーバーレイネットワークに参加するノード装置の前記所在情報が記憶された第２ルーティングテーブルを取得する第２取得ステップと、
前記ノード装置が送信するメッセージの内容に応じて、前記第１ルーティングテーブルと前記第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する決定ステップと、
前記決定部により決定されたルーティングテーブルに記載された所在情報を送信先として前記メッセージを送信する送信ステップと、
をノード装置が含むコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））方式の通信システムの技術分野に関する。
【背景技術】
【０００２】
近年、特許文献１に開示されているようなピアツーピア方式の通信システムが注目されている。ピアツーピア方式の通信システムは、現在のコンテンツ配信における主流形態であるサーバクライアント方式に変わる新しい形態として注目されている。このピアツーピア方式の通信システムでは、センターのサーバ装置に対するコンテンツの要求が集中しない。そのため、サーバクライアント方式に比して、短時間でコンテンツを取得することが可能となる。具体的には、特許文献１には、ソフトウェアを単位としたグループごとに、複数のＤＨＴ（Distributed Hash Table）ルーティングテーブルが生成される技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１７１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、会社や学校、ホテル等のように各地に拠点があり、各拠点に端末装置が複数存在するケースがある。このケースにおいては、一般的に、拠点内に各端末装置が接続されるＬＡＮ（Local Area Network）等のプライベートネットワークが形成される。また、拠点には、インターネット等の或いはＷＡＮ（Wide Area Network）等のパブリックネットワークに接続する回線が設けられる。
【０００５】
このようなケースにおいて、各端末装置に、特許文献１に開示されているようなピアツーピア方式の通信機能を持たせることが考えられる。そうすると、各端末装置は、同じＬＡＮ内に存在する端末装置からもコンテンツを取得することが可能となる。一方、ＤＨＴルーティングテーブルには、ＬＡＮ内に接続される端末装置と、ＬＡＮ外のＷＡＮに接続される端末装置との夫々に対応するＩＰアドレスが登録される。所定の端末装置によりコンテンツの取得が要求された場合、要求されたコンテンツを記憶する端末装置のＩＰアドレスが、ＤＨＴルーティングテーブルによって検索される。ＤＨＴルーティングテーブルには、ＬＡＮ内に接続される端末装置と、ＬＡＮ外のＷＡＮに接続される端末装置とが登録されているため、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内への通信メッセージ、コンテンツのダウンロード及びアップロードが頻繁に行われる。しかしながら、例えばＬＡＮ内とＬＡＮ外とを外部接続する回線の本数が少なかったり帯域幅が狭かったりすると、コンテンツの取得に要する時間が長くなる。また、ＬＡＮ内とＬＡＮ外とを経由する通信メッセージが増加することで、上記帯域幅を圧迫することになる。そのため、ピアツーピア方式の通信システムを採用したことによる効果が十分に得られない場合があった。
【０００６】
本発明は、以上の点に鑑みてなされたものである。本発明は、ＬＡＮ内とＬＡＮ外との通信により発生する通信負荷を軽減し、コンテンツを効率良く取得することが出来るノード装置、情報通信システム、メッセージ送信方法及びプログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明によれば、複数のコンテンツが複数のノード装置間で送受信され、グローバルアドレスにより通信可能な外部ネットワークが１以上の内部ネットワークを含み、前記複数のノード装置の少なくとも一部のノード装置が、前記前記内部ネットワークに接続されるノード装置であって、前記外部ネットワークまたは前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、前記第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が記憶された第１ルーティングテーブルを取得する第１取得部と、前記ノード装置が接続する前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、前記第２オーバーレイネットワークに参加するノード装置の前記所在情報が記憶された第２ルーティングテーブルを取得する第２取得部と、前記ノード装置が送信するメッセージの内容に応じて、前記第１ルーティングテーブルと前記第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する決定部と、前記決定部により決定されたルーティングテーブルに記載された所在情報を送信先として前記メッセージを送信する送信部と、を備えることを特徴とするノード装置である。
【０００８】
請求項２に記載の発明によれば、前記複数のノード装置のいずれかから取得したコンテンツを記憶する記憶部を備え、前記送信部は、前記ノード装置が前記記憶部にコンテンツを記憶したことを前記複数のノード装置に通知する通知メッセージであって、コンテンツを記憶した前記ノード装置の前記所在情報を含む前記通知メッセージを送信し、前記送信部が前記通知メッセージを送信する場合、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定することを特徴とする。
【０００９】
請求項３に記載の発明によれば、前記記憶部に記憶されたコンテンツが、前記第１オーバーレイネットワークへの公開を許可されたコンテンツであるか否かを判定する第１判定部を備え、前記第１判定部により、前記記憶部が記憶したコンテンツが、許可されたコンテンツであると判定されたとき、前記決定部は、前記第１ルーティングテーブルと前記第２ルーティングテーブルとに記載された前記所在情報を送信先として決定し、前記第１判定部により、前記記憶部が記憶したコンテンツが、許可されたコンテンツでないと判定されたとき、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定することを特徴とする。
【００１０】
請求項４に記載の発明によれば、前記ノード装置が、前記記憶部に記憶されたコンテンツを、前記第１オーバーレイネットワークへ公開することを許可されたノード装置であるか否かを判定する第２判定部を備え、前記第２判定部により、前記ノード装置が許可されたノード装置であると判定されたとき、前記決定部は、前記第１ルーティングテーブルと前記第２ルーティングテーブルとに記載された前記所在情報を送信先として決定し、前記第２判定部により、前記ノード装置が許可されたノード装置でないと判定されたとき、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定することを特徴とする。
【００１１】
請求項５に記載の発明によれば、前記送信部は、前記複数のノード装置の中から所望のコンテンツを保持する１以上のコンテンツ保持ノード装置の前記ネットワーク上における所在を示す所在情報を検索する検索メッセージを送信し、前記送信部が前記検索メッセージを送信する場合、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定することを特徴とする。
【００１２】
請求項６に記載の発明によれば、前記送信部が前記検索メッセージを送信する場合、前記決定部は、前記第２ルーティングテーブルに記載された前記所在情報を送信先として決定し、前記第２ルーティングテーブルに記載された前記所在情報を送信先として前記検索メッセージを送信した後に、前記決定部は、前記第１ルーティングテーブルに記載された前記所在情報を送信先としてさらに決定することを特徴とする。
【００１３】
請求項７に記載の発明によれば、前記検索メッセージに対応する前記コンテンツ保持ノードの前記所在情報を受信する受信部と、前記決定部により決定された前記第２ルーティングテーブルに記載された前記所在情報を送信先として前記検索メッセージを送信してから、所定の時間の間に、前記受信部が前記所在情報を受信したか否かを判定する第３判定部と、を備え、前記第３判定部により、前記所定の時間の間に、前記受信部が前記所在情報を受信したと判定されなかったとき、前記送信部は、前記第１ルーティングテーブルに記載された前記所在情報を送信先として、前記検索メッセージを送信することを特徴とする。
【００１４】
請求項８に記載の発明によれば、前記検索メッセージに対応する前記コンテンツ保持ノードの前記所在情報を受信する受信部と、前記受信部が受信したコンテンツ保持ノードの前記所在情報の数が、所定の数より小さいか否かを判定する第４判定部と、を備え、前記第４判定部により、前記コンテンツ保持ノードの数が、所定の数より小さいと判定されたとき、前記送信部は、前記第１ルーティングテーブルに記載された前記所在情報を送信先として、前記検索メッセージを送信することを特徴とする。
【００１５】
請求項９に記載の発明によれば、複数のコンテンツが複数のノード装置間で送受信され、グローバルアドレスにより通信可能な外部ネットワークが１以上の内部ネットワークを含み、前記複数のノード装置の少なくとも一部のノード装置が、前記前記内部ネットワークに接続されるノード装置により構成される情報通信システムであって、前記情報通信システムは、前記外部ネットワークまたは前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、前記第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が記憶された第１ルーティングテーブルを取得する第１取得部と、前記ノード装置が接続する前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、前記第２オーバーレイネットワークに参加するノード装置の前記所在情報が記憶された第２ルーティングテーブルを取得する第２取得部と、前記ノード装置が送信するメッセージの内容に応じて、前記第１ルーティングテーブルと前記第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する決定部と、前記決定部により決定されたルーティングテーブルに記載された所在情報を送信先として前記メッセージを送信する送信部と、を備えることを特徴とするノード装置を備えることを特徴とする情報通信システムである。
【００１６】
請求項１０に記載の発明によれば、複数のコンテンツが複数のノード装置間で送受信され、グローバルアドレスにより通信可能な外部ネットワークが１以上の内部ネットワークを含み、前記複数のノード装置の少なくとも一部のノード装置が、前記前記内部ネットワークに接続されるノード装置のメッセージ送信方法であって、前記外部ネットワークまたは前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、前記第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上の所在を示す所在情報が記憶された第１ルーティングテーブルを取得する第１取得ステップと、前記ノード装置が接続する前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、前記第２オーバーレイネットワークに参加するノード装置の前記所在情報が記憶された第２ルーティングテーブルを取得する第２取得ステップと、前記ノード装置が送信するメッセージの内容に応じて、前記第１ルーティングテーブルと前記第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する決定ステップと、前記決定部により決定されたルーティングテーブルに記載された所在情報を送信先として前記メッセージを送信する送信ステップと、
を含むメッセージ送信方法である。
【００１７】
請求項１１に記載の発明によれば、複数のコンテンツが複数のノード装置間で送受信され、グローバルアドレスにより通信可能な外部ネットワークが１以上の内部ネットワークを含み、前記複数のノード装置の少なくとも一部のノード装置が、前記前記内部ネットワークに接続されるノード装置のメッセージ送信方法であって、前記外部ネットワークまたは前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、前記第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が記憶された第１ルーティングテーブルを取得する第１取得ステップと、前記ノード装置が接続する前記内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、前記第２オーバーレイネットワークに参加するノード装置の前記所在情報が記憶された第２ルーティングテーブルを取得する第２取得ステップと、前記ノード装置が送信するメッセージの内容に応じて、前記第１ルーティングテーブルと前記第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する決定ステップと、前記決定部により決定されたルーティングテーブルに記載された所在情報を送信先として前記メッセージを送信する送信ステップと、をノード装置が含むコンピュータに実行させるプログラムである。
【発明の効果】
【００１８】
請求項１または請求項９に記載の発明によれば、第１取得部は、外部ネットワークまたは内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が記憶された第１ルーティングテーブルを取得する。第２取得部は、ノード装置が接続する内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、第２オーバーレイネットワークに参加するノード装置の所在情報が記憶された第２ルーティングテーブルを取得する。決定部は、ノード装置が送信するメッセージの内容に応じて、第１ルーティングテーブルと第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する。従って、送信するメッセージの内容に応じて、第１ルーティングテーブルと第２ルーティングテーブルとを切り替えることができる。この結果、例え、ＬＡＮ内とＬＡＮ外とを外部接続する回線の本数が少ない場合や、帯域幅が狭い場合であっても、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内への通信メッセージ、コンテンツのダウンロード及びアップロードの頻度を抑え通信を行うことができる。
【００１９】
請求項２に記載の発明によれば、送信部は、ノード装置が記憶部にコンテンツを記憶したことを複数のノード装置に通知する通知メッセージであって、コンテンツを記憶したノード装置の所在情報を含む通知メッセージを送信する。送信部が通知メッセージを送信する場合、決定部は、第２ルーティングテーブルに記載された所在情報を送信先として決定する。従って、通知メッセージが、第２ルーティングテーブルに従って送信される。これにより、同じ内部ネットワークに接続されるノード装置は、内部ネットワークからコンテンツを取得することができる。この結果、内部ネットワーク内からコンテンツを取得することができるため、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内へのコンテンツのダウンロード及びアップロードの頻度を抑えることができる。
【００２０】
請求項３に記載の発明によれば、第１判定部により、記憶部が記憶したコンテンツが、許可されたコンテンツであると判定されたとき、決定部は、第１ルーティングテーブルと第２ルーティングテーブルとに記載された所在情報を送信先として決定する。第１判定部により、記憶部が記憶したコンテンツが、許可されたコンテンツでないと判定されたとき、決定部は、第２ルーティングテーブルに記載された所在情報を送信先として決定する。従って、通知メッセージにより通知されるコンテンツの種類によって、通知メッセージの送信先が、第１ルーティングテーブルと第２ルーティングテーブルとで切り替えることができる。この結果、コンテンツの種類によって、内部ネットワーク内からコンテンツを取得することができるため、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内へのコンテンツのダウンロード及びアップロードの頻度を抑えることができる。
【００２１】
請求項４に記載の発明によれば、第２判定部により、ノード装置が許可されたノード装置であると判定されたとき、決定部は、第１ルーティングテーブルと第２ルーティングテーブルとに記載された所在情報を送信先として決定する。第２判定部により、ノード装置が許可されたノード装置でないと判定されたとき、決定部は、第２ルーティングテーブルに記載された所在情報を送信先として決定する。従って、通知メッセージを送信するノード装置によって、通知メッセージの送信先が、第１ルーティングテーブルと第２ルーティングテーブルとで切り替えることができる。この結果、各ノード装置によって、内部ネットワーク内に接続されるノード装置からコンテンツを取得することができるため、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内へのコンテンツのダウンロード及びアップロードの頻度を抑えることができる。
【００２２】
請求項５に記載の発明によれば、送信部は、複数のノード装置の中から所望のコンテンツを保持する１以上のコンテンツ保持ノード装置のネットワーク上における所在を示す所在情報を検索する検索メッセージを送信し、送信部が検索メッセージを送信する場合、決定部は、第２ルーティングテーブルに記載された所在情報を送信先として決定する。従って、検索メッセージが、第２ルーティングテーブルに従って送信される。これにより、検索メッセージを送信するノード装置は、同じ内部ネットワークに接続されるノード装置の中から、コンテンツ保持ノードを検索し、内部ネットワークからコンテンツを取得することができる。この結果、内部ネットワーク内からコンテンツを取得することができるため、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内への通信メッセージ、または、コンテンツのダウンロード及びアップロードの頻度を抑えることができる。
【００２３】
請求項６に記載の発明によれば、送信部が検索メッセージを送信する場合、決定部は、第２ルーティングテーブルに記載された所在情報を送信先として決定し、第２ルーティングテーブルに記載された所在情報を送信先として検索メッセージを送信した後に、決定部は、第１ルーティングテーブルに記載された所在情報を送信先としてさらに決定する。従って、検索メッセージは、第１ルーティングテーブルよりも、第２ルーティングテーブルに記載された所在情報を優先して、送信される。この結果、外部ネットワークより内部ネットワーク内からコンテンツを取得する確率が高くなるため、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内への通信メッセージ、または、コンテンツのダウンロード及びアップロードの頻度を抑えることができる。
【００２４】
請求項７に記載の発明によれば、第３判定部は、決定部により決定された第２ルーティングテーブルに記載された所在情報を送信先として検索メッセージを送信してから、所定の時間の間に、受信部が所在情報を受信したか否かを判定する。第３判定部により、所定の時間の間に、受信部が所在情報を受信したと判定されなかったとき、送信部は、第１ルーティングテーブルに記載された所在情報を送信先として、検索メッセージを送信する。従って、所定の時間の間に、所在情報が受信されなかった場合に限り、送信部は、第１ルーティングテーブルに記載された所在情報を送信先として検索メッセージを送信する。この結果、外部ネットワークに接続されるノード装置を含む第１ルーティングテーブルに記載された送信先へ、検索メッセージを送信する確率が低くなるため、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内へのコンテンツの通信メッセージ、または、ダウンロード及びアップロードの頻度を抑えることができる。
【００２５】
請求項８に記載の発明によれば、第４判定部は、受信部が受信したコンテンツ保持ノードの所在情報の数が、所定の数より小さいか否かを判定する。判定部により、コンテンツ保持ノードの数が、所定の数より小さいと判定されたとき、送信部は、第１ルーティングテーブルに記載された所在情報を送信先として、検索メッセージを送信する。従って、受信したコンテンツ保持ノードの数が、所定の数より少なかった場合に限り、送信部は、第１ルーティングテーブルに記載された所在情報を送信先として検索メッセージを送信する。この結果、外部ネットワークに接続されるノード装置を含む第１ルーティングテーブルに記載された送信先へ、検索メッセージを送信する確率が低くなるため、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内へのコンテンツの通信メッセージ、または、ダウンロード及びアップロードの頻度を抑えることができる。
【００２６】
請求項１０または請求項１１に記載の発明によれば、第１取得ステップは、外部ネットワークまたは内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第１オーバーレイネットワークであって、第１オーバーレイネットワークに参加するノード装置の前記ネットワーク上での所在を示す所在情報が記憶された第１ルーティングテーブルを取得する。第２取得ステップは、ノード装置が接続する内部ネットワークに接続されるノード装置の少なくとも一部のノード装置により構成される第２オーバーレイネットワークであって、第２オーバーレイネットワークに参加するノード装置の所在情報が記憶された第２ルーティングテーブルを取得する。決定ステップは、ノード装置が送信するメッセージの内容に応じて、第１ルーティングテーブルと第２ルーティングテーブルとの中から、メッセージの送信先として用いるルーティングテーブルを決定する。従って、送信するメッセージの内容に応じて、第１ルーティングテーブルと第２ルーティングテーブルとを切り替えることができる。この結果、例え、ＬＡＮ内とＬＡＮ外とを外部接続する回線の本数が少ない場合や、帯域幅が狭い場合であっても、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内への通信メッセージ、コンテンツのダウンロード及びアップロードの頻度を抑え通信を行うことができる。
【図面の簡単な説明】
【００２７】
【図１】本実施形態におけるコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【図２】ノード装置が記憶する第１ルーティングテーブルの一例である。
【図３】ＤＨＴのＩＤ空間の一例を示す概念図である。
【図４】コンテンツ分散保存システムＳへの参加時における第１ルーティングテーブルの生成手順の一例を示す概念図である。
【図５】第１ルーティングテーブル作成手順における参加メッセージの転送概要を示す概念図である。
【図６】本実施形態のノード装置Ｔｍ−ｎの電気的構成を示すブロック図である。
【図７】ノード装置Ｔｍ−ｎにおけるメイン動作の処理手順を示すフローチャートである。
【図８】ノード装置Ｔｍ−ｎにおける第２ルーティングテーブル生成の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００２８】
［最良の実施形態］
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【００２９】
［コンテンツ分散保存システムの概要構成］
始めに、図１を参照して、本実施形態におけるコンテンツ分散保存システムＳの概要構成について説明する。図１は、本実施形態におけるコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【００３０】
図１に示すように、コンテンツ分散保存システムＳは、複数のノード装置Ｔｍ−ｎ（ｎ＝１，２，３・・・の何れか）から構成されている。複数のノード装置Ｔｍ−ｎは、ネットワークＮＷを介して互いに通信可能である。このネットワークＮＷは、現実世界の通信ネットワークである。例えば、インターネットである。
【００３１】
ネットワークＮＷは、各拠点ネットワークＮＬｍを相互接続するためのネットワークである。このネットワークＮＷは、例えば、インターネットやＷＡＮ（Wide Area Network）等である。そして、ネットワークＮＷは、例えば、ＩＸ（Internet Exchange）、ＩＳＰ（Internet Service Provider）、ＤＳＬ（Digital Subscriber Line）回線事業者の装置、ＦＴＴＨ（Fiber To The Home）回線事業者の装置、及び通信回線等によって構築されている。なお、ネットワークＮＷは、コンテンツ分散保存システムＳ専用のネットワークであっても良い。
【００３２】
本実施形態では、ネットワークＮＷ内に、１つ以上の各拠点ネットワークＮＬｍが形成される。また、各拠点ネットワークＮＬｍには、複数のノード装置Ｔｍ−ｎ（ｎ＝１，２，３・・・の何れか）が接続されている。各拠点ネットワークＮＬｍは、夫々拠点ｍの敷地内に構築されたネットワークである。拠点としては、例えば、会社、学校、病院、塾等がある。この拠点ネットワークＮＬｍは、例えば、ＬＡＮ等により構築されている。或いは、拠点ネットワークＮＬｍは、複数のＬＡＮが相互接続して構築されたネットワークであっても良い。この場合、複数のＬＡＮは、ルータ等のネットワーク機器を介して接続される。複数のＬＡＮが相互接続されたネットワークとしては、例えば、ＣＡＮ（Campus Area Network）等がある。各拠点ネットワークＮＬｍには、ファイアーウォールＦＷ又はブロードバンドルータＢＲが接続されている。ファイアーウォールＦＷ又はブロードバンドルータＢＲは、拠点内に接続されるノード装置と、その拠点に接続されるノード装置以外のノード装置とを通信可能にする通信機器である。ファイアーウォールＦＷ又はブロードバンドルータＢＲは、公知であるので詳細な説明は省略する。ファイアーウォールＦＷ又はブロードバンドルータＢＲの何れが拠点に設置されるかは、拠点毎に任意に決定される。本実施形態の拠点ネットワークＮＬｍは、例えば、ＬＡＮ（Local Area Network）である。
【００３３】
また、ネットワークＮＷには、投入サーバ及びポータルサーバ等のサーバ装置等が接続されている。投入サーバとポータルサーバとは特に図示していない。
【００３４】
このような構成のコンテンツ分散保存システムＳにおいて、構成要素たる各装置の機能概要は以下の通りである。投入サーバは、後述する第１オーバーレイネットワークＰＷ、または、第２オーバーレイネットワークＰＬｍにコンテンツデータを投入するサーバ装置である。ここで、コンテンツデータの投入とは、コンテンツデータをノード装置Ｔｍ−ｎから取得可能な状態におくことをいう。なお、コンテンツデータを、「コンテンツ」という。
【００３５】
ポータルサーバは、ノード装置Ｔｍ−ｎからのリクエストに応じてＷｅｂページをノード装置Ｔｍ−ｎに送信する。ポータルサーバにより送信されるＷｅｂページは、コンテンツの一例として動画データを配信するＷｅｂサイトを構成する。
【００３６】
ノード装置Ｔｍ−ｎは、拠点ｍにいるユーザにより使用される端末装置である。ノード装置Ｔｍ−ｎは、ポータルサーバ等のＷｅｂサーバからＷｅｂページを取得し、取得したＷｅｂページを画面表示する。ノード装置Ｔｍ−ｎは、他のノード装置Ｔｍ−ｎ又からコンテンツを取得し保存する。更に、ノード装置Ｔｍ−ｎは、動画データ等のコンテンツを再生する。
【００３７】
本実施形態のコンテンツ分散保存システムＳでは、コンテンツ配信のためのオーバーレイネットワークが構築されている。オーバーレイネットワークは、ネットワークＮＷ上に構築されたオーバーレイネットワークである。言い換えれば、オーバーレイネットワークは、物理的なネットワーク上に生成される論理的なネットワークである。また、オーバーレイネットワークは、特定のアルゴリズム、例えば、分散ハッシュテーブルを利用したアルゴリズムにより実現される。分散ハッシュテーブルを、以下、「ＤＨＴ（Distributed Hash Table）」という。なお、ＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知である。
【００３８】
本実施形態では、このオーバーレイネットワークが２種類ある。図２に示すように、第１オーバーレイネットワークＰＷと、第２オーバーレイネットワークＰＬｍ（ｍ＝１，２，３・・・の何れか））である。第１オーバーレイネットワークＰＷは、ネットワークＮＷに接続されるノード装置のいずれかから構成される。言い換えれば、オーバーレイネットワークＰＷは、各拠点に接続されるノード装置に限定されず、ネットワークＮＷに接続されるノード装置のいずれかから構成される。第２オーバーレイネットワークＰＬｍは、拠点ｍ毎に構築されたオーバーレイネットワークある。各拠点ｍに接続されるノード装置により、第２オーバーレイネットワークＰＬｍは生成される。第１オーバーレイネットワークＰＷ、または、第２オーバーレイネットワークＰＬｍの生成方法の詳細については、後述する。第１オーバーレイネットワークＰＷ、または、第２オーバーレイネットワークＰＬｍを用いて、各ノード装置Ｔｍ−ｎがピアツーピア方式で通信を行えるよう、ブロードバンドルータＢＲやファイアーウォールＦＷにおいてポートフォワーディングの設定が行われる。例えば、ブロードバンドルータＢＲであれば、ＵＰｎＰ（Universal Plug and Play）機能等を利用して自動的にポートフォワーディングの設定が行われるようにしておくと良い。
【００３９】
［第１オーバーレイネットワークの生成方法］
以下、コンテンツ分散保存システムＳにおける各ノード装置Ｔｍ−ｎの機能を説明する。各ノード装置Ｔｍ−ｎが記憶する第１オーバーレイネットワークＰＷで用いられるＤＨＴの第１ルーティングテーブルについて詳細に説明する。ここで、図２及び図３を参照して、ルーティングテーブルについて詳しく説明する。
【００４０】
図２は、ノード装置Ｔｍ−ｎが記憶する第１ルーティングテーブルの一例である。図３は、ＤＨＴのＩＤ空間の一例を示す概念図である。なお、図２及び図３の例においては、説明の便宜上、ノードＩＤのｂｉｔ長を２ｂｉｔ×３桁＝６ｂｉｔとしている。そのため、各桁は、２ｂｉｔで表された４進数（０〜３の整数）で表されている。各桁を２ｂｉｔよりも長いｂｉｔ長を用いても良い。例えば、各桁を４ｂｉｔで表して、０〜ｆの１６進数で表現しても良い。
【００４１】
図２に示すように、第１ルーティングテーブルは、レベル１（一段目）〜レベル３（三段目）の複数レベルから構成される。各エリアには、ノード情報が登録される。ノード情報は、ノードＩＤと、ノードＩＤに対応するノード装置のＩＰアドレス及びポート番号と、を含む。図２の例の場合、レベル１の０ＸＸのエリアには、ノードＩＤ「００２」と、ノードＩＤ「００２」に対応するノード装置Ｔ２−２のＩＰアドレス及びポート番号とが、対応付けられてノード情報として登録されている。
【００４２】
図２に示すレベル１〜レベル３の各レベルにおける各エリアは、ノードＩＤ空間を分割することにより決定されるエリアである。図３は、ノードＩＤを用いて各エリアが決定される概念図である。ノードＩＤ空間は、各桁が４進数（０〜３の整数）で表される３桁の数字により構成される。図３に示すように、レベル１のエリアとして、ノードＩＤ空間が４つ（４進数のため）に分割される。具体的にレベル１のエリアは、０ＸＸのエリアと、１ＸＸのエリアと、２ＸＸのエリアと、３ＸＸとに分割される。０ＸＸのエリアは、'０００'〜'０３３'のノードＩＤが存在するエリアである。１ＸＸのエリアは、'１００'〜'１３３'のノードＩＤが存在するエリアである。２ＸＸのエリアは、'２００'〜'２３３'のノードＩＤが存在するエリアである。３ＸＸのエリアは、'３００'〜'３３３'のノードＩＤが存在するエリアである。
【００４３】
また、レベル２では、レベル１のエリアが更に４つ（４進数のため）に分割される。つまり、０ＸＸ〜３ＸＸの各エリアが更に４つに分割される。０ＸＸのエリアと１ＸＸのエリアと２ＸＸのエリアと３ＸＸのエリアとが夫々４分割される。例えば、１ＸＸのエリアの場合、'１００'〜'１０３'のノードＩＤが存在するエリアが１０Ｘのエリアとして分割される。また、１１Ｘのエリアの場合、'１１０'〜'１１３'のノードＩＤが存在するエリアが１１Ｘのエリアとして分割される。また、１２Ｘのエリアの場合、'１２０'〜'１２３'のノードＩＤが存在するエリアが１２Ｘのエリアとして分割される。また、１３Ｘのエリアの場合、'１３０'〜'１３３'のノードＩＤが存在するエリアが１３Ｘのエリアとして分割される。
【００４４】
以降、ノード装置Ｔｍ−ｎのノードＩＤが「１２２」の場合を例として説明する。図２に示すように、ルーティングテーブルのレベル１における１ＸＸのエリアは、ノード装置Ｔ１−４のノードＩＤが存在するエリアである。そのため、レベル１の１ＸＸのエリアには、図２の例では、ノード装置Ｔ１−４自身のノードＩＤと、ＩＰアドレスまたはポート番号とが登録される。本実施形態では、ノード装置Ｔ１−４自身のノードＩＤとＩＰアドレスまたはポート番号とを登録したが、ノードＩＤとＩＰアドレスまたはポート番号とはノード装置Ｔ１−４自身のものであるので登録されなくてもよい。ノード装置Ｔ１−４のノードＩＤが存在しないエリアには、夫々、他の任意のノード装置Ｔ１−４のノードＩＤと、ＩＰアドレスまたはポート番号とが登録されている。ノード装置Ｔ１−４のノードＩＤが「１２２」の場合、ノード装置Ｔ１−４のノードＩＤが存在しないエリアは、０ＸＸのエリアと、２ＸＸのエリアと、３ＸＸのエリアとである。
【００４５】
また、ルーティングテーブルのレベル２における１２Ｘのエリアは、ノード装置Ｔ１−４のノードＩＤが存在するエリアである。そのため、レベル２の１２Ｘのエリアには、ノード装置Ｔ１−４自身のノードＩＤと、ＩＰアドレスまたはポート番号とが登録される。ノード装置Ｔ１−４のノードＩＤが存在しないエリアには、レベル１と同様に、他の任意のノード装置Ｔ１−４のノードＩＤと、ＩＰアドレスまたはポート番号とが登録されている。
【００４６】
更に、ルーティングテーブルのレベル３には、図２に示すように、ノードＩＤが'１２０'〜'１２３'である。そのため、レベル３の１２２のエリアには、ノード装置Ｔ１−４自身のノードＩＤと、ＩＰアドレスまたはポート番号とが登録される。本実施形態では、ノード装置Ｔ１−４自身のノードＩＤとＩＰアドレスまたはポート番号とを登録したが、ＩＰアドレスまたはポート番号はノード装置Ｔ１−４自身のものであるので、登録されなくても良い。
【００４７】
なお、図２及び図３の例では、ノードＩＤのｂｉｔ長を３桁×２ｂｉｔである。例えば、ノードＩＤのｂｉｔ長を１６桁×４ｂｉｔとした場合、１６レベル分のテーブルが必要となる。図２および図３に示すように、本実施形態における第１ルーティングテーブルでは、レベルの数値が大きくなるほど、エリアが狭くなっていく。そして、このような第１ルーティングテーブルは、例えば、未参加のノード装置が分散保存システムＳに参加する際に生成される。ここで、図４を参照して、コンテンツ分散保存システムＳへの参加時における第１ルーティングテーブルの生成手順について詳しく説明する。
【００４８】
図４は、コンテンツ分散保存システムＳへの参加時における第１ルーティングテーブルの生成手順の一例を示す概念図である。具体的には、図４は、各ノード装置Ｔｍ−ｎ間を参加メッセージが転送される概要を示す概念図である。また、図５は、第１ルーティングテーブル作成手順における参加メッセージの転送概要を示す概念図である。以降、未参加のノード装置Ｔ８−１がコンテンツ分散保存システムＳに参加する例を用いて説明する。以下未参加のノード装置Ｔ８−１のノードＩＤは、「１２３」とする。また、図４及び図５では、ノード装置の略称として、「ノード」と記載している。また、参加メッセージの略称として、「ＪＯＩＮ」と記載している。
【００４９】
図４及び図５に示すように、未参加のノード装置Ｔ８−１がコンテンツ分散保存システムＳに参加する場合、コンタクトノード装置Ｔ９−１のＩＰアドレスを用いてコンタクトノード装置Ｔ９−１に参加メッセージが送信される。図５に示すように、参加メッセージは、未参加のノード装置Ｔ８−１のノードＩＤを含む。コンタクトノード装置Ｔ９−１にメッセージを送信するためのＩＰアドレスを、未参加のノード装置Ｔ８−１が事前に知っているものとする。例えば、第１オーバーレイネットワークＰＷまたは第２オーバーレイネットワークＰＬｍに参加するために必要なソフトウェアをダウンロードするときに、コンタクトノード装置Ｔ９−１のＩＰアドレスは取得される。参加メッセージを受信したコンタクトノード装置Ｔ９−１は、コンタクトノード装置Ｔ９−１の第１ルーティングテーブルを参照する。具体的には、第１ルーティングテーブルにおけるレベル１のテーブルに登録されているノード情報が参照される。レベル１に登録されているノード情報を含む返信メッセージを、コンタクトノード装置Ｔ９−１はノード装置Ｔ８−１へ返信する。さらにコンタクトノード装置Ｔ９−１は、受信された参加メッセージに含まれるノードＩＤと、第１ルーティングテーブルに登録された他のノード装置Ｔｍ−ｎのノードＩＤと比較する。比較結果に基づいて第１ルーティングテーブルから、一つのノード装置Ｔｍ−ｎが選定される。例えば、参加メッセージに含まれるノードＩＤ１２３と最も近いノードＩＤ１３１であるノード装置Ｔ１０−１が選定される。例えば、最も近いノードＩＤは、上位桁がより多く一致するＩＤ、または、比較されるノードＩＤとの差が最も小さいノードＩＤである。本実施形態では、ノードＩＤ１３１とノードＩＤ１２３との差が最も小さいため、ノード装置Ｔ１−４が選定あれる。選定されたノード装置が、ノード装置Ｔ１−４である例を用いて説明する。このとき、参加メッセージには、次に返信させるテーブルの段数を示す情報が含められる。上記例では、レベル２が参加メッセージに含められる。
【００５０】
参加メッセージを受信したノード装置Ｔ１０−１は、ノード装置Ｔ１０−１の第１ルーティングテーブルのレベル２に登録されているノード情報を含む返信メッセージを、ノード装置Ｔ８−１に対して返信する。さらに、ノード装置Ｔ１０−１は、第１ルーティングテーブルから選定されたノード装置Ｔ１−４へ、上記参加メッセージを転送する。このとき、参加メッセージには、次に返信させるべきテーブルの段数として、レベル３を示す情報が含められる。
【００５１】
参加メッセージを受信したノード装置Ｔ１−４は、ノード装置Ｔ１−４の第１ルーティングテーブルにおけるレベル３に登録されているノード情報を含む返信メッセージを、ノード装置Ｔ８−１に対して返信する。以上のようにして参加メッセージは、ノードＩＤをキーとして第１ルーティングテーブルに基づいて転送される。そのため、未参加のノード装置Ｔ８−１のノードＩＤに一番近いノードＩＤを有するノード装置Ｔｍ−ｎまで転送される。例えば、最も近いノードＩＤは、上位桁がより多く一致するＩＤ、または、比較されるノードＩＤとの差が最も小さいノードＩＤである。
【００５２】
そして、ノード装置Ｔ８−１は、各ノード装置から受信した返信メッセージに含まれるノード情報を用いて第１ルーティングテーブルを生成する。具体的には、コンタクトノード装置Ｔ９−１から送信されたノード情報が、ノード装置Ｔ８−１の第１ルーティングテーブルのレベル１に登録される。ノード装置Ｔ１０−１から送信されたノード情報が、ノード装置Ｔ８−１の第１ルーティングテーブルのレベル２に登録される。ノード装置Ｔ１−４から送信されたノード情報が、ノード装置Ｔ８−１の第１ルーティングテーブルのレベル３に登録される。
【００５３】
こうして、ノード装置Ｔ８−１は、コンテンツ分散保存システムＳへの参加が完了することになる。本実施形態では、上述したような参加メッセージや、後述するクエリ等の各種メッセージは、メッセージの送信元、または、転送元のノード装置のノード情報を含む。そのため、メッセージを受信したノード装置は、ノード装置の第１ルーティングテーブルに、ノード情報を登録及び更新する。
【００５４】
各ノード装置Ｔｍ−ｎ間を転送するメッセージは、メッセージ送信元のノードＩＤと、メッセージの内容と、送信元または転送元のノード情報とを含む。メッセージ送信元のノードＩＤは、メッセージを送信した送信元のノード装置Ｔｍ−ｎのノードＩＤである。メッセージの内容は、メッセージの目的を表す「参加（ＪＯＩＮ）」、「パブリッシュ」、「クエリ」等である。「参加」は、参加メッセージを示す。「パブリッシュ」は、パブリッシュメッセージを示す。「クエリ」は、検索要求メッセージを示す。パブリッシュメッセージ及び検索要求メッセージの詳細は、後述する。ノード情報は、送信元または転送元のノード装置Ｔｍ−ｎのノードＩＤと、ＩＰアドレスまたはポート番号とを含んで構成される。なお、'メッセージの内容'は、参加メッセージの場合、テーブルのノード情報の返信を要求する旨の情報等が含まれている。また、パブリッシュ（登録）メッセージまたはクエリの場合、パブリッシュ（登録）やクエリ（要求）の対象となるコンテンツのコンテンツＩＤが含まれている。
【００５５】
図４に示す例の場合、ノード装置Ｔ１０−１は、コンタクトノード装置Ｔ９−１から参加メッセージを受信する。そして、ノード装置Ｔ１０−１は、参加メッセージに含まれる送信元または転送元のコンタクトノード装置Ｔ９−１のノード情報をノード装置Ｔ１０−１の第１ルーティングテーブルに登録する。このとき、ノード装置Ｔ１０−１のルーティングテーブルにコンタクトノード装置Ｔ９−１のノード情報が既に登録されている場合、登録済みコンタクトノード装置Ｔ９−１のノード情報は、受信したノード情報に基づいて更新される。
【００５６】
同様に、ノード装置Ｔ１０−１から参加メッセージを受信したノード装置Ｔ１−４は、参加メッセージに含まれる送信元または転送元のノード装置Ｔ１０−１のノード情報をノード装置Ｔ１−４の第１ルーティングテーブルに登録、或いは更新する。以上の手順に従い、ルーティングテーブルは、ノード情報を登録、または、更新される。本明細書に記載のＤＨＴの第１ルーティングテーブルについては、特開２００６−１９７４００号公報等で公知である。
【００５７】
［第２オーバーレイネットワークの生成方法］
以下、第２オーバーレイネットワークＰＬｍで用いられるＤＨＴの第２ルーティングテーブルについて詳細に説明する。本実施形態では、各拠点ｍごとにオーバーレイネットワークが生成される。具体的には、同一ＬＡＮ内に接続されるノード装置により、第２オーバーレイネットワークＰＬｍが生成される。
【００５８】
本実施形態では、拠点１を例に挙げて説明する。例えば、拠点１に接続するノード装置Ｔ１−８が新規に拠点１に接続したとする。この場合、ノード装置Ｔ１−８は、拠点１内のノード装置に向けて、参加要求メッセージをブロードキャストで送信する。参加要求メッセージは、参加メッセージを送信可能なノード装置Ｔｍ−ｎが、拠点ｍに存在するかを確認するためのメッセージである。参加要求メッセージがブロードキャストで送信されることで、拠点１に接続するノード装置Ｔ１−ｎ全てに参加要求メッセージが送信されることになる。参加要求メッセージを受信したノード装置Ｔ１−ｎは、参加要求メッセージを送信したノード装置Ｔ１−８へ参加応答メッセージを送信する。この参加応答メッセージには、参加応答メッセージを送信したノード装置Ｔ１−ｎのノード情報が含まれる。参加応答メッセージを受信したノード装置Ｔ１−８は、参加応答メッセージが含むノードＩＤの中から、所定のノードＩＤを選択する。そして、選択されたノードＩＤに向けて、参加メッセージを送信する。参加メッセージを送信した後の処理は、図２〜図５に示す第１ルーティングテーブルの作成方法と同様の処理が、拠点内のノード装置Ｔ１−８間で実行される。参加要求メッセージが、拠点１内のノード装置に向けてマルチキャスト配信されても良い。
【００５９】
参加要求メッセージを送信したときに、いずれのノード装置Ｔ１−ｎから参加応答メッセージが受信されなかった場合、そのノード装置は最初に拠点１に接続されたノード装置である。この場合、第２ルーティングテーブルには、第２ルーティングテーブルを保持するノード装置自身のノード情報が登録される。そして、新たに別のノード装置が拠点ｍに参加して参加要求メッセージを送信したとき、既に参加していたノード装置は、参加要求メッセージを受信する。参加要求メッセージを受信したノード装置は、参加応答メッセージを参加要求メッセージの送信元へ送信する。このとき、既に参加していたノード装置は、第２ルーティングテーブルに、参加要求メッセージが含むノード情報を登録する。このように、第２ルーティングテーブルが生成される。このようにして生成される第２ルーティングテーブルが、参加メッセージを送信したノード装置へ送信される。
【００６０】
各拠点ｍごとに第２オーバーレイネットワークＰＬｍのコンタクトノードが設定されても良い。例えば、第１オーバーレイネットワークＰＷまたは第２オーバーレイネットワークＰＬｍに参加するために必要なソフトウェアをダウンロードするときに、第２オーバーレイネットワークＰＬｍのコンタクトノードのＩＰアドレスは取得される。取得されたＩＰアドレスに基づいて、参加ノード装置は、拠点ｍ内のコンタクトノードにアクセスする。このように、拠点ｍ内のコンタクトノードにアクセスすることで、第２ルーティングテーブルが生成されても良い。
【００６１】
［コンテンツ取得動作の説明］
コンテンツ分散保存システムＳは、内容の異なる様々なコンテンツデータのレプリカを所定のファイル形式で複数のノード装置Ｔｍ−ｎに分散して保存する。以下、コンテンツデータを、「コンテンツ」という。そして、各ノード装置Ｔｍ−ｎ間でレプリカが利用可能になっている。各コンテンツのオリジナルは、ＷＡＮに接続されているセンターサーバ（不図示）に保存されている。以下、コンテンツのレプリカが保存されるノード装置Ｔｍ−ｎは、「コンテンツ保持ノード」という。以下の説明においては、オリジナルのコンテンツとレプリカとを特に区別することなく、コンテンツと称する。上述のコンテンツには、夫々、コンテンツ名及びコンテンツ毎に固有の識別情報であるコンテンツＩＤ等の情報が付加されている。
【００６２】
分散保存されているコンテンツの所在は、インデックス情報として、コンテンツの所在を管理（記憶）しているノード装置Ｔｍ−ｎ等により記憶される。以下、コンテンツの所在を管理（記憶）しているノード装置Ｔｍ−ｎを、「ルートノード」という。インデックス情報は、レプリカを保存したノード装置Ｔｍ−ｎのノード情報と、コンテンツのコンテンツＩＤと等の組を含む。このようなルートノードは、例えば、コンテンツＩＤと最も近いノードＩＤを有するノード装置Ｔｍ−ｎであるように定められる。コンテンツＩＤと最も近いノードＩＤとは、例えば、コンテンツＩＤと上位桁がより多く一致するノードＩＤである。
【００６３】
そして、或るノード装置Ｔｍ−ｎのユーザが、所望するコンテンツを取得したい場合、このコンテンツの取得を望むノード装置Ｔｍ−ｎは、メッセージを生成する。以下、ユーザによりコンテンツの取得を望むノード装置Ｔｍ−ｎを、「ユーザノード」という。このメッセージは、取得を望むコンテンツのコンテンツＩＤ、ユーザノードのノード情報等を含む検索要求メッセージである。検索要求メッセージは、コンテンツ保持ノードを検索するためのメッセージでもある。上述の検索要求メッセージが、ユーザノードが記憶するＤＨＴの第１ルーティングテーブルまたは第２ルーティングテーブルに従って、他のノード装置Ｔｍ−ｎに対して送出される。つまり、ユーザノードは、検索要求メッセージを、コンテンツルートノードに向けて送出する。これにより、検索要求メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到達することになる。
【００６４】
上記検索要求メッセージを受信したルートノードは、これに含まれるコンテンツＩＤに対応するインデックス情報をインデックス情報キャッシュから取得する。そして、ルートノードは、取得したインデックス情報を含む検索応答メッセージを、検索要求メッセージの送信元であるユーザノードに対して返信する。インデックス情報を取得したユーザノードは、インデックス情報に含まれるコンテンツ保持ノードのＩＰアドレス及びポート番号等に基づいて、コンテンツ要求メッセージをコンテンツ保持ノードに送信する。コンテンツ要求メッセージには、取得を望むコンテンツのコンテンツＩＤが含まれている。コンテンツ要求メッセージを受信したコンテンツ保持ノードは、コンテンツ要求メッセージに含まれるコンテンツＩＤに対応するコンテンツを、コンテンツキャッシュエリアから取得する。そして、コンテンツ保持ノードは、取得したコンテンツを含むコンテンツ要求応答メッセージをユーザノードに送信する。このようにして、ユーザノードは、コンテンツをダウンロード（取得）することが可能になる。
【００６５】
また、ユーザノードは、コンテンツ保持ノードからコンテンツを取得して保存したとき、保存したユーザノードは、パブリッシュメッセージを生成する。パブリッシュメッセージは、コンテンツを保存したことをルートノードへ知らせるためのメッセージである。パブリッシュメッセージは、コンテンツのコンテンツＩＤ、コンテンツを保存したノード装置Ｔｍ−ｎのノード情報を含む。パブリッシュメッセージは、ルートノードに向けて送出される。これにより、パブリッシュメッセージは、検索要求メッセージと同じように、コンテンツＩＤをキーとするＤＨＴの第１ルーティングテーブルまたは第２ルーティングテーブルによってルートノードに到達することになる。そして、ルートノードは、パブリッシュメッセージを受信する。ルートノードは、パブリッシュメッセージに含まれるノード情報及びコンテンツＩＤの組を含むインデックス情報をインデックス情報キャッシュ領域に記憶する。こうして、上記ユーザノードは、新たに、上記コンテンツのコンテンツを保持するコンテンツ保持ノードとなる。
【００６６】
本実施形態では、ノード装置Ｔｍ−ｎが第１ルーティングテーブルと第２ルーティングテーブルとを記憶している場合、パブリッシュメッセージは、第２ルーティングテーブルに記載された宛先へ送信される。一方、パブリッシュメッセージは、第１ルーティングテーブルに記載された宛先へは送信されない。これは、拠点ｍ内、言い換えれば、ＬＡＮ内に記憶されたコンテンツを、拠点ｍ外またはＬＡＮ外に接続されたノード装置から取得できないようにするためである。これは、コンテンツ分散保存システムＳへのコンテンツの提供者が、拠点ｍ外またはＬＡＮ外にコンテンツを流出させたくないためである。本実施形態のように、パブリッシュメッセージが第２ルーティングテーブルに記載の宛先には送信され、第１ルーティングテーブルの宛先には送信されないことで、拠点ｍ内またはＬＡＮ内でコンテンツをオーバーレイネットワークにより送受信することができる。また、上記の形態には限定されず、パブリッシュメッセージが、第１ルーティングテーブルと第２ルーティングテーブルとの両方に送信されても良い。
【００６７】
本実施形態では、検索要求メッセージは、最初に第２ルーティングテーブルに記載の宛先へ送信される。そして、所定期間の間に検索応答メッセージが受信されなかった場合、次に第１ルーティングテーブルに記載の宛先へ検索要求メッセージが送信される。これは、コンテンツの取得先を、拠点ｍ外またはＬＡＮ外よりも、拠点ｍ内またはＬＡＮ内を優先させるためである。この処理により、ＬＡＮ内からＬＡＮ外、または、ＬＡＮ外からＬＡＮ内へのコンテンツのダウンロード及びアップロードの頻度を抑え通信を行うことができる。また、検索要求メッセージが、第１ルーティングテーブルと第２ルーティングテーブルとの両方に送信され、受信した応答メッセージの中から、同じ拠点ｍ内または同じＬＡＮ内に接続されたノード装置が選択されてコンテンツがダウンロード及びアップロードされても良い。
【００６８】
［ノード装置の電気的構成］
次に、図６を参照して、ノード装置Ｔｍ−ｎの電気的構成ついて説明する。図６は、本実施形態のノード装置Ｔｍ−ｎの電気的構成を示すブロック図である。図６に示すように、本実施形態のノード装置Ｔｍ−ｎには、ノード装置Ｔｍ−ｎを制御するＣＰＵ１が備えられている。ＣＰＵ１には、ＨＤＤ２とＲＡＭ３とデコーダ部４と通信部９とがそれぞれ電気的に接続されている。ＨＤＤ２、ＲＡＭ３、などの記憶手段とＣＰＵ１とは、ノード装置Ｔｍ−ｎのコンピュータを構成している。ＣＰＵ１、ＨＤＤ２、ＲＡＭ３、デコーダ部４、及び通信部９はバスを介して相互に接続されている。なお、ノード装置Ｔｍ−ｎとしては、パーソナルコンピュータ、又はＳＴＢ（Set Top Box）等を適用可能である。
【００６９】
ＨＤＤ２は、プログラム記憶領域２１と、アドレス情報記憶領域２４と、第１ルーティングテーブル記憶領域２５と第２ルーティングテーブル記憶領域２６とを含む。プログラム記憶領域２１は、メイン動作プログラム記憶領域２２と第２ルーティングテーブル生成プログラム記憶領域２３とを含む。なお、上記メイン動作プログラム及び第２ルーティングテーブル生成プログラムは、例えば、ネットワークＮＷ上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００７０】
アドレス情報記憶領域２４は、コンタクトノードのＩＰアドレスが取得される。第１ルーティングテーブル記憶領域２５には、生成された第１ルーティングテーブルが記憶される。第２ルーティングテーブル記憶領域２６は、生成された第２ルーティングテーブルが記憶される。本実施形態の第１ルーティングテーブル記憶領域２５は、本発明の第１取得部の一例である。また、本実施形態の第２ルーティングテーブル記憶領域２６は、本発明の第２取得部の一例である。
【００７１】
ＲＡＭ３は、コンテンツデータ一時記憶領域３１を含む。コンテンツデータ一時記憶領域３１は、ノード装置Ｔｍ−ｎ間で送受信されるコンテンツデータが一時記憶される。通信部９は、ネットワークＮＷを通じてノード装置Ｔｍ−ｎまたは外部装置と情報の通信制御を行う。
【００７２】
ノード装置Ｔｍ−ｎは、通信部９を介して要求に応じて送信されてきたコンテンツデータを受信する受信処理を行う。本実施形態のコンテンツデータはパケット化されて送信されるようになっている。各パケットは、通信部９を通じて受信され、ＲＡＭ３のコンテンツデータ一時記憶領域３１に一時記憶される。このように一時記憶されたコンテンツデータは、ＲＡＭ３から読み出されてデコーダ部４と、映像処理部５と、音声処理部７と、ディスプレイ６と、スピーカ８とを通じて再生出力される。或いは、ＲＡＭ３に記憶されたコンテンツデータは、ＲＡＭ３から読み出されてＨＤＤ２に記憶されても良い。または、コンテンツデータがＲＡＭ３を介さず、直接ＨＤＤ２に記憶されても良い。その後、入力部１０を介してユーザからの操作指示にしたがって、ＨＤＤ２からコンテンツデータが読み出される。読み出されたコンテンツデータは、デコーダ部４と、映像処理部５と、音声処理部７と、ディスプレイ６と、スピーカ８とを通じて再生出力される。これにより、ユーザはコンテンツの視聴を行うことができる。
【００７３】
[本実施形態の端末装置１の動作の説明]
以上説明した構成からなる本実施形態のノード装置Ｔｍ−ｎの動作及び作用について、添付図面を参照して説明する。まず、ノード装置Ｔｍ−ｎの動作及び作用について、添付図面を参照して説明する。図７は、ノード装置Ｔｍ−ｎにおけるメイン動作の処理手順を示すフローチャートである。メイン動作は、電源またはコンセントを介して商用電源などの外部電源と端末装置１とが接続され、インストールされたＰ２ＰソフトウェアプログラムがＣＰＵ１により実行されたことにより、遂行される。以下に示す処理は、ＣＰＵ１により処理される。
【００７４】
ステップＳ１０１では、ノード装置Ｔｍ−ｎは、コンタクトノードに参加メッセージを送信する。アドレス情報記憶領域２４に記憶されたＩＰアドレスに基づいてコンタクトノードにメッセージが送信されると、コンタクトノードからノード情報が取得される。また、コンタクトノードが参加メッセージを他のノード装置に転送する。転送された参加メッセージを受信したノード装置は、参加メッセージを送信したノード装置Ｔｍ−ｎへノード情報を送信する。このように、ノード装置Ｔｍ−ｎは、参加メッセージを受信したノード装置により送信されたノード情報を取得する。
【００７５】
ステップＳ１０２では、ステップＳ１０１で参加メッセージを送信して取得されたノード情報に基づいて、第１ルーティングテーブルが生成される。生成された第１ルーティングテーブルは、第１ルーティングテーブル記憶領域２５へ記憶される。本実施形態のステップＳ１０２は、本発明の第１取得ステップの一例である。
【００７６】
ステップＳ１０３では、第２ルーティングテーブル生成処理が実行される。第２ルーティグテーブル生成処理の詳細は、後述する。生成された第２ルーティングテーブルは、第２ルーティングテーブル記憶領域２６に記憶される。本実施形態のステップＳ１０３は、本発明の第２取得ステップの一例である。
【００７７】
ステップＳ１０４では、ノード装置Ｔｍ−ｎによりパブリッシュメッセージが送信されたか否かが判定される。パブリッシュメッセージが送信されたと判定されたとき（ステップＳ１０４：ＹＥＳ）、ステップＳ１０５が実行される。パブリッシュメッセージが送信されたと判定されなかったとき（ステップＳ１０４：ＮＯ）、ステップＳ１０６が実行される。本実施形態のコンピュータと、ステップＳ１０３及びステップＳ１０４とは、本発明の決定部の一例である。また、本発明のステップＳ１０４は、本発明の送信部の一例である。また、本実施形態のステップＳ１０３及びステップＳ１０４は、本発明の決定ステップの一例である。
【００７８】
ステップＳ１０５では、第２ルーティングテーブルに記載された宛先へ、パブリッシュメッセージが送信される。第２ルーティングテーブル記憶領域２６に記憶された宛先に向けて、パブリッシュメッセージが送信される。本実施形態のコンピュータとステップＳ１０５とは、本発明の送信部の一例である。また、本実施形態のステップＳ１０５は、本発明の送信ステップの一例である。
【００７９】
ステップＳ１０６では、ノード装置Ｔｍ−ｎにより検索要求メッセージが送信されたか否かが判定される。検索要求メッセージが送信されたと判定されたとき（ステップＳ１０６：ＹＥＳ）、ステップＳ１０７が実行される。検索要求メッセージが送信されたと判定されなかったとき（ステップＳ１０６：ＮＯ）、ステップＳ１１４が実行される。
【００８０】
ステップＳ１０７では、第２ルーティングテーブルに記載された宛先へ、検索要求メッセージが送信される。第２ルーティングテーブル記憶領域２６に記憶された宛先に向けて、検索要求メッセージが送信される。また、ステップＳ１０７で検索要求メッセージが送信された時刻が、ＲＡＭ３の所定の記憶領域に一時記憶される。本実施形態の時刻は、通信部９を介してインターネットから取得される。また、図示していないＣＰＵ１による計時動作により、時刻が決定されても良い。本実施形態のコンピュータと、ステップＳ１０６及びステップＳ１０７とは、本発明の決定部の一例である。また、本発明のステップＳ１０７は、本発明の送信部の一例である。また、本実施形態のステップＳ１０６及びステップＳ１０７は、本発明の決定ステップの一例である。
【００８１】
ステップＳ１０８では、ステップＳ１０７で検索要求メッセージが送信されてから、所定の期間以内に、応答メッセージが受信されたか否かが判定される。ステップＳ１０７でＲＡＭ８に記憶された時刻から所定の期間以内に、応答メッセージが受信されたか否かが判定される。所定の期間以内に応答メッセージが受信されたと判定されたとき（ステップＳ１０８：ＹＥＳ）、ステップＳ１１１が実行される。所定の期間以内に応答メッセージが受信されたと判定されなかったとき（ステップＳ１０８：ＮＯ）、ステップＳ１０９が実行される。本実施形態のコンピュータとステップＳ１０８とは、本発明の第３判定部の一例である。
【００８２】
ステップＳ１０９では、第１ルーティングテーブルに基づいて、検索要求メッセージが送信される。第１ルーティングテーブル記憶領域２５に記憶された宛先に向けて、検索要求メッセージが送信される。また、ステップＳ１０９で検索要求メッセージが送信された時刻が、ＲＡＭ３の所定の記憶領域に一時記憶される。本実施形態の時刻は、通信部９を介してインターネットから取得される。また、図示していないＣＰＵ１による計時動作により、時刻が決定されても良い。本実施形態のコンピュータとステップＳ１０９とは、本発明の送信部の一例である。また、本実施形態のステップＳ１０９は、本発明の送信ステップの一例である。
【００８３】
ステップＳ１１０では、ステップＳ１０９で検索要求メッセージが送信されてから、所定の期間以内に、応答メッセージが受信されたか否かが判定される。ステップＳ１０９でＲＡＭ８に記憶された時刻から所定の期間以内に、応答メッセージが受信されたか否かが判定される。所定の期間以内に応答メッセージが受信されたと判定されたとき（ステップＳ１１０：ＹＥＳ）、ステップＳ１１１が実行される。所定の期間以内に応答メッセージが受信されたと判定されなかったとき（ステップＳ１１０：ＮＯ）、ステップＳ１１３が実行される。
【００８４】
ステップＳ１１１では、検索応答メッセージが受信される。受信された検索応答メッセージは、ＲＡＭ３の所定の記憶領域に一時記憶される。本実施形態のコンピュータとステップＳ１１１とは、本発明の受信部の一例である。
【００８５】
ステップＳ１１２では、ステップＳ１０８またはステップＳ１１０で受信した応答メッセージに基づいて、コンテンツの取得先が決定される。そして、決定された取得先から、コンテンツがダウンロードされる。ステップＳ１０８で応答メッセージが受信された場合、応答メッセージが含むノード情報は、同じ拠点ｍに接続されるノード装置のノード情報である。このため、同じ拠点ｍ、言い換えれば、同じＬＡＮ内のノード装置から、コンテンツをダウンロードすることができる。一方、同じ拠点ｍ、または、同じＬＡＮ内のノード装置からノード情報が取得できなかったとき、ステップＳ１１０で取得された応答メッセージが含むノード情報は、拠点ｍとは異なる接続先に接続するノード装置のノード情報である。このとき、第１オーバーレイネットワークＰＷに接続するノード装置からコンテンツを取得することができる。
【００８６】
ステップＳ１１３では、エラー通知が行われる。エラー通知は、第１オーバーレイネットワークＰＷまたは第２オーバーレイネットワークＰＬｍのいずれかからもコンテンツが取得できなかったことを示す。
【００８７】
ステップＳ１１４では、同じ拠点ｍ内、言い換えれば、同じＬＡＮ内に接続されるノード装置から送信された参加メッセージが受信されたか否かが判定される。参加メッセージが受信されたと判定されたとき（ステップＳ１１４：ＹＥＳ）、ステップＳ１１５が実行される。参加メッセージが送信されたと判定されなかったとき（ステップＳ１１４：ＮＯ）、ステップＳ１１６が実行される。
【００８８】
ステップＳ１１５では、第２ルーティングテーブルに記載されたノード情報が、参加メッセージの送信元に送信される。上述した図２及び図３で示したように、参加メッセージには、参加メッセージを送信したノード装置のノード情報が含まれている。このノード情報に基づいて、参加メッセージの送信元に、ノード情報が送信される。具体的には、参加メッセージには、レベルが含まれている。第２ルーティングテーブルに記載された情報の中で、参加メッセージに含まれるレベルに応じた位置のノード情報が、参加メッセージの送信元に送信される。
【００８９】
ステップＳ１１６では、同じ拠点ｍ内、言い換えれば、同じＬＡＮ内に接続されるノード装置から送信された参加要求メッセージが受信されたか否かが判定される。参加要求メッセージが受信されたと判定されたとき（ステップＳ１１６：ＹＥＳ）、ステップＳ１１７が実行される。参加メッセージが送信されたと判定されなかったとき（ステップＳ１１６：ＮＯ）、ステップＳ１１８が実行される。
【００９０】
ステップＳ１１７では、参加応答メッセージが、参加要求メッセージの送信元に送信される。上述したように、参加要求メッセージには、参加要求メッセージを送信したノード装置のノード情報が含まれている。このノード情報に基づいて、参加要求メッセージの送信元に、参加応答メッセージが送信される。
【００９１】
ステップＳ１１８では、その他メッセージが受信されたか否かが判定される。その他メッセージが受信されたと判定されたとき（ステップＳ１１８：ＹＥＳ）、ステップＳ１１９が実行される。その他メッセージが送信されたと判定されなかったとき（ステップＳ１１８：ＮＯ）、ステップＳ１２０が実行される。
【００９２】
ステップＳ１１９では、第１ルーティングテーブルと第２ルーティングテーブルとに記載された宛先へ、その他メッセージが送信される。第１ルーティングテーブル記憶領域２５に記憶された宛先と、第２ルーティングテーブル記憶領域２６に記憶された宛先に向けて、その他メッセージが送信される。
【００９３】
ステップＳ１２０では、ユーザにより電源スイッチがＯＦＦにされたかが判定される。電源スイッチがＯＦＦにされなかった場合は、再度ステップＳ１０４が実行される。電源スイッチがＯＦＦにされた場合は、メイン動作処理が終了される。
【００９４】
[本実施形態の第２ルーティングテーブル生成処理動作の説明]
ステップＳ２０１では、同じ拠点ｍ、言い換えれば、同じＬＡＮ内に接続するノード装置に向けて、ブロードキャストにより参加要求メッセージが送信される。また、ステップＳ２０１で参加要求メッセージが送信された時刻が、ＲＡＭ３の所定の記憶領域に一時記憶される。本実施形態の時刻は、通信部９を介してインターネットから取得される。また、図示していないＣＰＵ１による計時動作により、時刻が決定されても良い。
【００９５】
ステップＳ２０２では、参加応答メッセージが受信されたか否かが判定される。ステップＳ２０１で送信された参加要求メッセージを受信したノード装置は、参加応答メッセージを送信する。参加要求メッセージを受信したノード装置から、参加応答メッセージを受信したか否かが判定される。参加応答メッセージが受信されたと判定されたとき（ステップＳ２０２：ＹＥＳ）、ステップＳ２０３が実行される。参加応答メッセージが受信されたと判定されなかったとき（ステップＳ２０２：ＮＯ）、ステップＳ２０４が実行される。
【００９６】
ステップＳ２０３では、ステップＳ２０２で受信された応答メッセージが、ＲＡＭ３の所定の記憶領域に一時記憶される。
【００９７】
ステップＳ２０４では、ステップＳ２０１で参加要求メッセージが送信されてから、所定の期間以内が経過したか否かが判定される。ステップＳ２０１でＲＡＭ８に記憶された時刻と、現在の時刻とが比較される。比較した結果、所定の期間が経過したと判定された場合（ステップＳ２０４：ＹＥＳ）、ステップＳ２０５が実行される。所定の期間が経過したと判定されなかった場合（ステップＳ２０４：ＮＯ）、ステップＳ２０２が実行される。
【００９８】
ステップＳ２０５では、同じ拠点ｍ、言い換えれば、同じＬＡＮ内に他のノード装置が接続されているか否かが判定される。具体的には、ステップＳ２０３で受信された応答メッセージに基づいて、他のノード装置が接続されているか否かが判定される。ＲＡＭ３の所定の記憶領域に、ステップＳ２０３で受信された参加応答メッセージが１つでも記憶されていれば、他のノード装置が存在していると判定される。ステップＳ２０３で受信された参加応答メッセージが１つでも記憶されていなければ、他のノード装置が存在していないと判定される。同じＬＡＮ内に他のノード装置が接続されていると判定されたとき（ステップＳ２０５：ＹＥＳ）、ステップＳ２０６が実行される。同じＬＡＮ内に他のノード装置が接続されていないと判定されたとき（ステップＳ２０５：ＮＯ）、第２ルーティングテーブル生成処理が終了される。
【００９９】
ステップＳ２０６では、参加応答メッセージが示すノード装置の中から、所定のノード装置が選択される。具体的には、ＲＡＭ３の所定の記憶領域に記憶された参加応答メッセージの中から、所定の参加応答メッセージが選択される。参加応答メッセージが複数ある場合、ランダムに参加応答メッセージが選択されても良い。また、ノード装置Ｔｍ−ｎのノードＩＤと最も近いノードＩＤを含む参加応答メッセージが選択されても良い。選択される参加応答メッセージの数は、１つであっても、複数であっても良い。
【０１００】
ステップＳ２０７では、ステップＳ２０６で選択された参加応答メッセージが示すノード装置へ、参加メッセージが送信される。参加メッセージが送信されることで、第２ルーティングテーブルが生成される。生成された第２ルーティングテーブルは、第２ルーティングテーブル記憶領域２６に記憶される。
【０１０１】
（変形例１）
以下、本実施形態の変形例１について説明する。本実施形態のステップＳ１０４では、送信されるメッセージが、パブリッシュメッセージであるか否かが判定されている。パブリッシュメッセージであるときに、ステップＳ１０５では、第２ルーティングテーブルに記載の宛先へパブリッシュメッセージが送信されている。変形例１では、コンテンツの提供者側で、各コンテンツにコンテンツの識別情報が付与されてもよい。このコンテンツの識別情報は、第１ルーティングテーブルと第２ルーティングテーブルとへパブリッシュメッセージを送信してもよいコンテンツであるかと、第２ルーティングテーブルに記載された宛先のみへパブリッシュメッセージを送信してもよいコンテンツであるかと、第１ルーティングテーブルのみへパブリッシュメッセージを送信してもよいコンテンツであるかとを識別する情報である。コンテンツ提供者が第１オーバーレイネットワークＰＷまたは第２オーバーレイネットワークＰＬｍにコンテンツを投入するときに、コンテンツの識別情報が付与される。各ノード装置Ｔｍ−ｎは、コンテンツをＨＤＤ２またはＲＡＭ３に記憶したときに、コンテンツの識別情報も対応付けて記憶する。このとき、パブリッシュメッセージには、コンテンツＩＤとコンテンツの識別情報とが含まれる。このパブリッシュメッセージに含まれる識別情報に基づいて、第１ルーティングテーブルと第２ルーティングテーブルとにパブリッシュメッセージが送信されてもよいか、第２ルーティングテーブルにのみパブリッシュメッセージが送信されてよいか、第１ルーティングテーブルにのみパブリッシュメッセージが送信されてよいかが、ステップＳ１０４で判定されてもよい。判定結果により、パブリッシュメッセージが送信される。識別情報により、少なくとも第１ルーティングテーブルと第２ルーティングテーブルとへパブリッシュメッセージを送信してもよいコンテンツであるかと、第２ルーティングテーブルに記載された宛先のみへパブリッシュメッセージを送信してもよいコンテンツであるかと、が判定されても良い。変形例１のステップＳ１０４での判定処理と、本実施形態のコンピュータとが、本発明の第２判定部の一例である。
【０１０２】
（変形例２）
以下、本実施形態の変形例２について説明する。本実施形態のステップＳ１０７では、第２ルーティングテーブルに記載された宛先へ、検索要求メッセージが送信される。そしてステップＳ１０８では、所定の期間以内に検索応答メッセージが受信されたか否かが判定されている。所定期間以内に検索応答メッセージが受信されたとき、ステップＳ１１１で検索応答メッセージが受信される。変形例２では、ステップＳ１０７で送信した検索要求メッセージに対応する検索応答メッセージを受信した数が所定の数より小さいか否かが判定される。所定の数より小さいと判定されたとき、第１ルーティングテーブルに記載の宛先へ検索要求メッセージが送信されても良い。これにより、受信した検索応答メッセージが所定の数より小さかったときに、検索応答メッセージが含むコンテンツのダウンロード先からコンテンツが取得できないことが考えられる。この場合、検索応答メッセージの数が少ないため、コンテンツの取得先候補が少なく、コンテンツを取得するのに必要以上に時間がかかってしまう場合がある。第１ルーティングテーブルに記載の宛先へ検索要求メッセージが送信されることで、第１オーバーレイネットワークＰＷに接続されるノード装置からもコンテンツが取得可能になり、コンテンツの取得にかかる時間を短縮することができる。
【符号の説明】
【０１０３】
１  ＣＰＵ１
２  ＨＤＤ
３  ＲＡＭ
４  デコーダ部
５  映像処理部
６  ディスプレイ６
７  音声処理部
８  スピーカ８
９  通信部
１０  入力部
Ｔｍ−ｎ  ノード装置
ＮＷ  ネットワーク
ＦＷ  ファイアーウォール
ＢＲ  ブロードバンドルータ
Ｓ  コンテンツ分散保存システム
ＰＷ  第１オーバーレイネットワーク
ＰＬｍ  第２オーバーレイネットワーク
【図１】
2011211476.tif 000003
【図２】
2011211476.tif 000004
【図３】
2011211476.tif 000005
【図４】
2011211476.tif 000006
【図５】
2011211476.tif 000007
【図６】
2011211476.tif 000008
【図７】
2011211476.tif 000009
【図８】
2011211476.tif 000010