(57)【特許請求の範囲】
【請求項１】
ネットワーク上で送受信される情報を中継する中継機器を１以上備えることで通信機能を提供する複数の１次機器群と、
前記１次機器群の下位に位置し、１以上の前記中継機器を備えることで通信機能を提供する複数の２次機器群と、
から構成されるネットワークに、前記１次機器群または前記２次機器群に接続される複数のノード装置により構成されるオーバーレイネットワークにより複数のコンテンツを分散して保存する分散保存システムであって、
前記分散保存システムは、
前記複数のノード装置と、
前記複数のノード装置の中で、前記１次機器群及び前記２次機器群に夫々代表して接続される代表ノード装置と、
前記ネットワークにおける前記１次機器群と前記２次機器群との接続関係を記憶した情報処理装置と、
を備え、
前記代表ノード装置は、
前記複数のノード装置の中で、所望のコンテンツを保持する保持ノードであって、前記保持ノードにおける前記代表ノード装置の前記ネットワーク上における所在を示す所在情報を含むメッセージを、前記複数のノード装置のいずれかから受信する第１受信部と、
前記第１受信部により受信された前記メッセージに基づいて、前記メッセージに含まれる前記所在情報が示す前記代表ノード装置が接続される前記１次機器群、または、前記２次機器群を示す第１接続情報を、前記情報処理装置から取得する第１取得部と、
前記第１取得部により取得した前記第１接続情報を記憶する記憶部と、
前記第１取得部により取得された前記第１接続情報を、前記第１受信部によりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信部と、
前記第１受信部により受信されたメッセージに含まれる前記所在情報が示す前記代表ノード装置の前記第１接続情報が、前記記憶部に記憶されているか否かを判定する判定部と、を備え、
前記判定部により、前記第１接続情報が記憶されていると判定されたとき、前記送信部は、前記記憶部に記憶された前記第１接続情報を、前記送信元ノード装置へ送信し、
前記判定部により、前記第１接続情報が記憶されている判定されなかったとき、前記第１取得部は、前記第１接続情報を前記情報処理装置から取得し、且つ、前記記憶部は、前記第１取得部により取得された前記第１接続情報を記憶することを特徴とする分散保存システム。
【請求項２】
前記複数のノード装置は、前記複数ノード装置が接続される前記１次機器群または前記２次機器群の前記代表ノード装置の前記所在情報を取得し、
前記ノード装置は、
前記複数のノード装置の中から、所望のコンテンツを保持する１以上の前記保持ノード装置の前記所在情報を検索する検索部と、
前記検索部による検索結果として、前記保持ノードの前記所在情報と共に、前記コンテンツ保持ノードの前記代表ノード装置の前記所在情報を受信する第２受信部と、
前記第２受信部により受信した前記保持ノードにおける前記代表ノード装置の前記所在情報に基づいて、前記保持ノードにおける前記代表ノード装置の前記第１接続情報を、前記代表ノードから取得する第２取得部と、
を備えることを特徴とする請求項１に記載の分散保存システム。
【請求項３】
前記複数のノード装置は、前記複数のノード装置が接続される前記１次機器群または前記２次機器群を示す第２接続情報を取得し、
前記ノード装置は、
前記第２取得部により取得された前記保持ノードにおける前記代表ノード装置の前記第１接続情報と、前記第２接続情報とに基づいて、前記検索部により検索した前記ノード装置とネットワーク上で距離の近い前記コンテンツ保持ノードから、前記所定のコンテンツを取得するコンテンツ取得部と、
を備えることを特徴とする請求項２に記載の分散保存システム。
【請求項４】
ネットワーク上で送受信される情報を中継する中継機器を１以上備えることで通信機能を提供する複数の１次機器群と、
前記１次機器群の下位に位置し、１以上の前記中継機器を備えることで通信機能を提供する複数の２次機器群と、
から構成されるネットワークに、前記１次機器群または前記２次機器群に接続される複数のノード装置により構成されるオーバーレイネットワークにより複数のコンテンツを分散して保存する分散保存システムの中で、前記複数のノード装置の中で、前記１次機器群及び前記２次機器群に夫々代表して接続される代表ノード装置であって、
前記代表ノード装置は、
前記複数のノード装置の中で、所望のコンテンツを保持する保持ノードであって、前記保持ノードにおける前記代表ノード装置の前記ネットワーク上における所在を示す所在情報を含むメッセージを、前記複数のノード装置のいずれかから受信する第１受信部と、
前記第１受信部により受信された前記メッセージに基づいて、前記メッセージが含む前記所在情報が示す前記代表ノード装置が接続される前記１次機器群、または、前記２次機器群を示す第１接続情報を、前記ネットワークにおける前記１次機器群と前記２次機器群との接続関係を記憶した情報処理装置から取得する第１取得部と、
前記第１取得部により取得した前記第１接続情報を記憶する記憶部と、
前記第１取得部により取得された前記第１接続情報を、前記第１受信部によりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信部と、
前記第１受信部により受信されたメッセージに含まれる前記所在情報が示す前記代表ノード装置の前記第１接続情報が、前記記憶部に記憶されているか否かを判定する判定部と、を備え、
前記判定部により、前記第１接続情報が記憶されていると判定されたとき、前記送信部は、前記記憶部に記憶された前記第１接続情報を、前記送信元ノード装置へ送信し、
前記判定部により、前記第１接続情報が記憶されている判定されなかったとき、前記第１取得部は、前記第１接続情報を前記情報処理装置から取得し、且つ、前記記憶部は、前記第１取得部により取得された前記第１接続情報を記憶することを特徴とする代表ノード装置。
【請求項５】
ネットワーク上で送受信される情報を中継する中継機器を１以上備えることで通信機能を提供する複数の１次機器群と、
前記１次機器群の下位に位置し、１以上の前記中継機器を備えることで通信機能を提供する複数の２次機器群と、
から構成されるネットワークに、前記１次機器群または前記２次機器群に接続される複数のノード装置により構成されるオーバーレイネットワークにより複数のコンテンツを分散して保存する分散保存システムの中で、前記複数のノード装置の中で、前記１次機器群及び前記２次機器群に夫々代表して接続される代表ノード装置のコンピュータに、
前記複数のノード装置の中で、所望のコンテンツを保持する保持ノードであって、前記保持ノードにおける前記代表ノード装置の前記ネットワーク上における所在を示す所在情報を含むメッセージを、前記複数のノード装置のいずれかから受信する第１受信ステップと、
前記第１受信ステップにより受信された前記メッセージに基づいて、前記メッセージが含む前記所在情報が示す前記代表ノード装置が接続される前記１次機器群、または、前記２次機器群を示す第１接続情報を、前記ネットワークにおける前記１次機器群と前記２次機器群との接続関係を記憶した情報処理装置から取得する第１取得ステップと、
前記第１取得ステップにより取得した前記第１接続情報を記憶部に記憶させる記憶ステップと、
前記第１取得ステップにより取得された前記第１接続情報を、前記第１受信ステップによりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信ステップと、
前記第１受信ステップにより受信されたメッセージに含まれる前記所在情報が示す前記代表ノード装置の前記第１接続情報が、前記記憶部に記憶されているか否かを判定する判定ステップと、を実行させ、
前記判定ステップにより、前記第１接続情報が記憶されていると判定されたとき、前記送信ステップは、前記記憶部に記憶された前記第１接続情報を、前記送信元ノード装置へ送信し、
前記判定ステップにより、前記第１接続情報が記憶されている判定されなかったとき、前記第１取得ステップは、前記第１接続情報を前記情報処理装置から取得し、且つ、前記記憶ステップは、前記第１取得ステップにより取得された前記第１接続情報を前記記憶部に記憶させること、
を前記コンピュータに実行させることを特徴とするプログラム。
【請求項６】
ネットワーク上で送受信される情報を中継する中継機器を１以上備えることで通信機能を提供する複数の１次機器群と、
前記１次機器群の下位に位置し、１以上の前記中継機器を備えることで通信機能を提供する複数の２次機器群と、
から構成されるネットワークに、前記１次機器群または前記２次機器群に接続される複数のノード装置により構成されるオーバーレイネットワークにより複数のコンテンツを分散して保存する分散保存システムであって、前記分散保存システムが含む前記複数のノード装置の中で、前記１次機器群及び前記２次機器群に夫々代表して接続される代表ノード装置の通信方法であって、
前記複数のノード装置の中で、所望のコンテンツを保持する保持ノードであって、前記保持ノードにおける前記代表ノード装置の前記ネットワーク上における所在を示す所在情報を含むメッセージを、前記複数のノード装置のいずれかから受信する第１受信ステップと、
前記第１受信ステップにより受信された前記メッセージに基づいて、前記メッセージが含む前記所在情報が示す前記保持ノードにおける前記代表ノード装置が接続される前記１次機器群、または、前記２次機器群を示す第１接続情報を、前記ネットワークにおける前記１次機器群と前記２次機器群との接続関係を記憶した情報処理装置から取得する第１取得ステップと、
前記第１取得ステップにより取得された前記第１接続情報を記憶部に記憶させる記憶ステップと、
前記第１取得ステップにより取得された前記第１接続情報を、前記第１受信ステップによりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信ステップと、
前記第１受信ステップにより受信されたメッセージに含まれる前記所在情報が示す前記代表ノード装置の前記第１接続情報が、前記記憶部に記憶されているか否かを判定する判定ステップと、を含み、
前記判定ステップにより、前記第１接続情報が記憶されていると判定されたとき、前記送信ステップは、前記記憶部に記憶された前記第１接続情報を、前記送信元ノード装置へ送信し、
前記判定ステップにより、前記第１接続情報が記憶されている判定されなかったとき、前記第１取得ステップは、前記第１接続情報を前記情報処理装置から取得し、且つ、前記記憶ステップは、前記第１取得ステップにより取得された前記第１接続情報を前記記憶部に記憶させることを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ（Ｐ２Ｐ））型の通信システムに関する。具体的には、通信負荷の少ない通信経路のコンテンツホルダからコンテンツを取得する方法に関する。
【背景技術】
【０００２】
この種のピアツーピア型の通信システムは、複数のノード装置により構成される。各種コンテンツのコンテンツデータは、複数のコンテンツデータの複製データ（以下、「レプリカ」という）として複数のノード装置に分散して保存される。コンテンツデータは、映画及び音楽などのコンテンツデータである。一般的には、各ノード装置間でレプリカを利用可能とした分散保存システムが知られている。これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたレプリカの所在は、例えば特許文献１に開示されるような分散ハッシュテーブル（以下、ＤＨＴ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ）という）を利用して効率良く検索可能になっている。
【０００３】
そして、上述のノード装置は、所望のコンテンツを取得するとき、コンテンツデータのレプリカの所在を検索するためのメッセージ（クエリ）が他のノード装置へ送出される。これにより、メッセージは、上記ＤＨＴにしたがって、コンテンツデータのレプリカの所在の管理元のノード装置に向かって転送される。そして、上記メッセージを送出したノード装置は、上記管理元のノード装置から上記レプリカの所在を示す情報を取得することになる。これにより、上記メッセージを送出したノード装置は、上記検索に係るコンテンツデータのレプリカを保存しているノード装置にアクセスすることができる。そして、レプリカを取得（ダウンロード）することができる。通信負荷の少ない通信経路を選択するために、例えば、特許文献２には、コンテンツホルダが所属しているＡＳ（Ａｕｔｏｎｏｍｏｕｓ  Ｓｙｓｔｅｍ）番号が用いられている技術が開示されている。ＡＳ番号は、インターネット内にある複数の組織が運用するネットワークを識別するための番号である。また、ホップ数を用いて経路選択をするものもある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１９７４００号公報
【特許文献２】特開２００６−２７７３３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ホップ数を測定しようとしても必ずしもルータが応答するとは限らない。また、ＡＳ番号を用いて、通信経路を決定しようとしても、ＡＳ番号は全ての管理者に割り当てられているとは限らない。そのため従来では、すべてのノード装置間の通信負荷を判定するために、インターネットのトポロジー情報を記憶したヒントサーバ（トラッカー）が用いられてきた。しかしながら、コンテンツを取得するたびにヒントサーバにアクセスしているのでは、ヒントサーバへの処理負荷が集中し、ヒントサーバの処理負荷が大きかった。
【０００６】
本発明は、上述した問題点を解決するためになされたものである。本発明の目的は、ヒントサーバへの処理負荷を低減させることが可能な通信方法を提供することである。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明によれば、ネットワーク上で送受信される情報を中継する中継機器を１以上備えることで通信機能を提供する複数の１次機器群と、前記１次機器群の下位に位置し、１以上の前記中継機器を備えることで通信機能を提供する複数の２次機器群と、から構成されるネットワークに、前記１次機器群または前記２次機器群に接続される複数のノード装置により構成されるオーバーレイネットワークにより複数のコンテンツを分散して保存する分散保存システムであって、前記分散保存システムは、前記複数のノード装置と、前記複数のノード装置の中で、前記１次機器群及び前記２次機器群に夫々代表して接続される代表ノード装置と、前記ネットワークにおける前記１次機器群と前記２次機器群との接続関係を記憶した情報処理装置と、を備え、前記代表ノード装置は、前記複数のノード装置の中で、所望のコンテンツを保持する保持ノードであって、前記保持ノードにおける前記代表ノード装置の前記ネットワーク上における所在を示す所在情報を含むメッセージを、前記複数のノード装置のいずれかから受信する第１受信部と、前記第１受信部により受信された前記メッセージに基づいて、前記メッセージに含まれる前記所在情報が示す前記代表ノード装置が接続される前記１次機器群、または、前記２次機器群を示す第１接続情報を、前記情報処理装置から取得する第１取得部と、前記第１取得部により取得した前記第１接続情報を記憶する記憶部と、前記第１取得部により取得された前記第１接続情報を、前記第１受信部によりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信部と、を備えることを特徴とする分散保存システムである。
【０００８】
請求項１に記載の発明によれば、前記代表ノード装置は、前記第１受信部により受信されたメッセージに含まれる前記所在情報が示す前記代表ノード装置の前記第１接続情報が、前記記憶部に記憶されているか否かを判定する判定部を備え、前記判定部により、前記第１接続情報が記憶されていると判定されたとき、前記送信部は、前記記憶部に記憶された前記第１接続情報を、前記送信元ノード装置へ送信し、前記判定部により、前記第１接続情報が記憶されている判定されなかったとき、前記第１取得部は、前記第１接続情報を前記情報処理装置から取得し、且つ、前記記憶部は、前記第１取得部により取得された前記第１接続情報を記憶することを特徴とする。
【０００９】
請求項２に記載の発明によれば、前記複数のノード装置は、前記複数ノード装置が接続される前記１次機器群または前記２次機器群の前記代表ノード装置の前記所在情報を取得し、前記ノード装置は、前記複数のノード装置の中から、所望のコンテンツを保持する１以上の前記保持ノード装置の前記所在情報を検索する検索部と、前記検索部による検索結果として、前記保持ノードの前記所在情報と共に、前記コンテンツ保持ノードの前記代表ノード装置の前記所在情報を受信する第２受信部と、前記第２受信部により受信した前記保持ノードにおける前記代表ノード装置の前記所在情報に基づいて、前記保持ノードにおける前記代表ノード装置の前記第１接続情報を、前記代表ノードから取得する第２取得部と、を備えることを特徴とする。
【００１０】
請求項３に記載の発明によれば、前記複数のノード装置は、前記複数のノード装置が接続される前記１次機器群または前記２次機器群を示す第２接続情報を取得し、前記ノード装置は、前記第２取得部により取得された前記保持ノードにおける前記代表ノード装置の前記第１接続情報と、前記第２接続情報とに基づいて、前記検索部により検索した前記ノード装置とネットワーク上で距離の近い前記コンテンツ保持ノードから、前記所定のコンテンツを取得するコンテンツ取得部と、を備えることを特徴とする。
【００１１】
請求項４に記載の発明によれば、ネットワーク上で送受信される情報を中継する中継機器を１以上備えることで通信機能を提供する複数の１次機器群と、前記１次機器群の下位に位置し、１以上の前記中継機器を備えることで通信機能を提供する複数の２次機器群と、から構成されるネットワークに、前記１次機器群または前記２次機器群に接続される複数のノード装置により構成されるオーバーレイネットワークにより複数のコンテンツを分散して保存する分散保存システムの中で、前記複数のノード装置の中で、前記１次機器群及び前記２次機器群に代表して接続される代表ノード装置であって、前記代表ノード装置は、前記複数のノード装置の中で、所望のコンテンツを保持する保持ノードであって、前記保持ノードにおける前記代表ノード装置の前記ネットワーク上における所在を示す所在情報を含むメッセージを、前記複数のノード装置のいずれかから受信する第１受信部と、前記第１受信部により受信された前記メッセージに基づいて、前記メッセージが含む前記所在情報が示す前記代表ノード装置が接続される前記１次機器群、または、前記２次機器群を示す第１接続情報を、前記ネットワークにおける前記１次機器群と前記２次機器群との接続関係を記憶した情報処理装置から取得する第１取得部と、前記第１取得部により取得した前記第１接続情報を記憶する記憶部と、前記第１取得部により取得された前記第１接続情報を、前記第１受信部によりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信部と、を備えることを特徴とする代表ノード装置である。
【００１２】
請求項４に記載の発明によれば、前記代表ノード装置は、前記第１受信部により受信されたメッセージに含まれる前記所在情報が示す前記代表ノード装置の前記第１接続情報が、前記記憶部に記憶されているか否かを判定する判定部を備え、前記判定部により、前記第１接続情報が記憶されていると判定されたとき、前記送信部は、前記記憶部に記憶された前記第１接続情報を、前記送信元ノード装置へ送信し、前記判定部により、前記第１接続情報が記憶されている判定されなかったとき、前記第１取得部は、前記第１接続情報を前記情報処理装置から取得し、且つ、前記記憶部は、前記第１取得部により取得された前記第１接続情報を記憶することを特徴とする。
【００１３】
請求項５に記載の発明によれば、ネットワーク上で送受信される情報を中継する中継機器を１以上備えることで通信機能を提供する複数の１次機器群と、前記１次機器群の下位に位置し、１以上の前記中継機器を備えることで通信機能を提供する複数の２次機器群と、から構成されるネットワークに、前記１次機器群または前記２次機器群に接続される複数のノード装置により構成されるオーバーレイネットワークにより複数のコンテンツを分散して保存する分散保存システムの中で、前記複数のノード装置の中で、前記１次機器群及び前記２次機器群に代表して接続される代表ノード装置のコンピュータに、前記複数のノード装置の中で、所望のコンテンツを保持する保持ノードであって、前記保持ノードにおける前記代表ノード装置の前記ネットワーク上における所在を示す所在情報を含むメッセージを、前記複数のノード装置のいずれかから受信する第１受信ステップと、前記第１受信ステップにより受信された前記メッセージに基づいて、前記メッセージが含む前記所在情報が示す前記代表ノード装置が接続される前記１次機器群、または、前記２次機器群を示す第１接続情報を、前記ネットワークにおける前記１次機器群と前記２次機器群との接続関係を記憶した情報処理装置から取得する第１取得ステップと、前記第１取得ステップにより取得した前記第１接続情報を記憶部に記憶させる記憶ステップと、前記第１取得ステップにより取得された前記第１接続情報を、前記第１受信ステップによりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信ステップと、を実行させることを特徴とするプログラムである。請求項５に記載の発明によれば、前記代表ノード装置のコンピュータに、前記第１受信ステップにより受信されたメッセージに含まれる前記所在情報が示す前記代表ノード装置の前記第１接続情報が、前記記憶部に記憶されているか否かを判定する判定ステップを実行させ、前記判定ステップにより、前記第１接続情報が記憶されていると判定されたとき、前記送信ステップは、前記記憶部に記憶された前記第１接続情報を、前記送信元ノード装置へ送信し、前記判定ステップにより、前記第１接続情報が記憶されている判定されなかったとき、前記第１取得ステップは、前記第１接続情報を前記情報処理装置から取得し、且つ、前記記憶ステップは、前記第１取得ステップにより取得された前記第１接続情報を前記記憶部に記憶させること、前記コンピュータに実行させることを特徴とする。
【００１４】
請求項６に記載の発明によれば、ネットワーク上で送受信される情報を中継する中継機器を１以上備えることで通信機能を提供する複数の１次機器群と、前記１次機器群の下位に位置し、１以上の前記中継機器を備えることで通信機能を提供する複数の２次機器群と、から構成されるネットワークに、前記１次機器群または前記２次機器群に接続される複数のノード装置により構成されるオーバーレイネットワークにより複数のコンテンツを分散して保存する分散保存システムであって、前記分散保存システムが含む前記複数のノード装置の中で、前記１次機器群及び前記２次機器群に代表して接続される代表ノード装置の通信方法であって、前記複数のノード装置の中で、所望のコンテンツを保持する保持ノードであって、前記保持ノードにおける前記代表ノード装置の前記ネットワーク上における所在を示す所在情報を含むメッセージを、前記複数のノード装置のいずれかから受信する第１受信ステップと、前記第１受信ステップにより受信された前記メッセージに基づいて、前記メッセージが含む前記所在情報が示す前記保持ノードにおける前記代表ノード装置が接続される前記１次機器群、または、前記２次機器群を示す第１接続情報を、前記ネットワークにおける前記１次機器群と前記２次機器群との接続関係を記憶した情報処理装置から取得する第１取得ステップと、前記第１取得ステップにより取得された前記第１接続情報を記憶部に記憶させる記憶ステップと、前記第１取得ステップにより取得された前記第１接続情報を、前記第１受信ステップによりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信ステップと、を含むことを特徴とする通信方法である。さらに、通信方法は、前記第１受信ステップにより受信されたメッセージに含まれる前記所在情報が示す前記代表ノード装置の前記第１接続情報が、前記記憶部に記憶されているか否かを判定する判定ステップを含み、前記判定ステップにより、前記第１接続情報が記憶されていると判定されたとき、前記送信ステップは、前記記憶部に記憶された前記第１接続情報を、前記送信元ノード装置へ送信し、前記判定ステップにより、前記第１接続情報が記憶されている判定されなかったとき、前記第１取得ステップは、前記第１接続情報を前記情報処理装置から取得し、且つ、前記記憶ステップは、前記第１取得ステップにより取得された前記第１接続情報を前記記憶部に記憶させることを特徴とする。
【発明の効果】
【００１５】
請求項１に記載の発明によれば、代表ノード装置は、第１受信部により受信されたメッセージに基づいて、メッセージに含まれる所在情報が示す代表ノード装置が接続される１次機器群、または、２次機器群を示す第１接続情報を、情報処理装置から取得する第１取得部を備える。また、代表ノード装置は、第１取得部により取得した第１接続情報を記憶する記憶部を備える。また、第１取得部により取得された第１接続情報を、第１受信部によりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信部を備える。従って、複数のノード装置を代表して、代表ノード装置が情報処理装置へ第１接続情報を取得し、保存することができる。この結果、ヒントサーバとして機能する情報処理装置への処理負荷が集中することを防ぎ、ヒントサーバの処理負荷を低減させることができる。
【００１６】
請求項１に記載の発明によれば、代表ノード装置は、第１受信部により受信されたメッセージが含む所在情報が示す代表ノード装置の第１接続情報が、記憶部に記憶されているか否かを判定する判定部を備える。また、判定部により、第１接続情報が記憶されていると判定されたとき、送信部は、記憶部に記憶された第１接続情報を、送信元ノード装置へ送信する。また、判定部により、第１接続情報が記憶されていると判定されなかったとき、第１取得部は、第１接続情報を情報処理装置から取得し、且つ、記憶部は、第１取得部により取得された第１接続情報を記憶する。従って、代表ノード装置が第１接続情報を記憶している場合、情報処理装置がアクセスされる必要がない。この結果、代表ノード装置が、ヒントサーバとして機能する情報処理装置が記憶する第１接続情報の少なくとも一部を保存することができる。そのため、ヒントサーバとして機能する情報処理装置への処理負荷が集中することを防ぎ、ヒントサーバの処理負荷を低減させることができる。
【００１７】
請求項２に記載の発明によれば、ノード装置は、検索部による検索結果として、保持ノードの所在情報と共に、保持ノードの代表ノード装置の所在情報を受信する第２受信部を備える。また、ノード装置は、第２受信部により受信した保持ノードの代表ノード装置の所在情報に基づいて、保持ノードの第１接続情報を、代表ノードから取得する第２取得部を備える。従って、コンテンツの取得先を決定するために、コンテンツを検索するノード装置が、第１接続情報を代表ノード装置から取得することができる。この結果、コンテンツの取得先を決定するためにノード装置が第１接続情報を取得できるとともに、ヒントサーバとして機能する情報処理装置への処理負荷が集中することを防ぎ、ヒントサーバの処理負荷を低減させることができる。
【００１８】
請求項３に記載の発明によれば、ノード装置は、第２取得部により取得されたコンテンツ保持ノードの第１接続情報と、第２接続情報とに基づいて、検索部により検索した前記ノード装置とネットワーク上で距離の近い保持ノードから、所定のコンテンツを取得するコンテンツ取得部を備える。この結果、コンテンツを取得するノード装置と、ネットワーク上で距離の近い保持ノードから、コンテンツを取得することができる。
【００１９】
請求項４に記載の発明によれば、代表ノード装置は、第１受信部により受信されたメッセージに基づいて、メッセージが含む所在情報が示す代表ノード装置が接続される１次機器群、または、２次機器群を示す第１接続情報を、ネットワークにおける１次機器群と２次機器群との接続関係を記憶した情報処理装置から取得する第１取得部を備える。また、代表ノード装置は、第１取得部により取得した第１接続情報を記憶する記憶部を備える。また、第１取得部により取得された第１接続情報を、第１受信部によりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信部を備える。従って、複数のノード装置を代表して、代表ノード装置が情報処理装置へ第１接続情報を取得し、保存することができる。この結果、ヒントサーバとして機能する情報処理装置への処理負荷が集中することを防ぎ、ヒントサーバの処理負荷を低減させることができる。
【００２０】
請求項４に記載の発明によれば、代表ノード装置は、第１受信部により受信されたメッセージが含む所在情報が示す保持ノードの第１接続情報が、記憶部に記憶されているか否かを判定する判定部を備える。また、判定部により、第１接続情報が記憶されていると判定されたとき、送信部は、記憶部に記憶された第１接続情報を、送信元ノード装置へ送信する。また、判定部により、第１接続情報が記憶されていると判定されなかったとき、第１取得部は、第１接続情報を情報処理装置から取得し、且つ、記憶部は、第１取得部により取得された第１接続情報を記憶する。従って、代表ノード装置が第１接続情報を記憶している場合、情報処理装置がアクセスされる必要がない。この結果、代表ノード装置が、ヒントサーバとして機能する情報処理装置が記憶する第１接続情報の少なくとも一部を保存することができる。そのため、ヒントサーバとして機能する情報処理装置への処理負荷が集中することを防ぎ、ヒントサーバの処理負荷を低減させることができる。
【００２１】
請求項５に記載の発明によれば、第１受信ステップにより受信されたメッセージに基づいて、メッセージが含む所在情報が示す代表ノード装置が接続される１次機器群、または、２次機器群を示す第１接続情報を、ネットワークにおける１次機器群と２次機器群との接続関係を記憶した情報処理装置から取得する第１取得ステップを実行する。また、代表ノード装置のコンピュータは、第１取得ステップにより取得した第１接続情報を記憶部に記憶させる記憶ステップを実行する。また、第１取得ステップにより取得された第１接続情報を、第１受信ステップによりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信ステップを実行する。従って、複数のノード装置を代表して、代表ノード装置が情報処理装置へ第１接続情報を取得し、保存することができる。この結果、ヒントサーバとして機能する情報処理装置への処理負荷が集中することを防ぎ、ヒントサーバの処理負荷を低減させることができる。
【００２２】
請求項６に記載の発明によれば、第１受信ステップにより受信されたメッセージに基づいて、メッセージが含む所在情報が示す保持ノードにおける代表ノード装置が接続される１次機器群、または、２次機器群を示す第１接続情報を、ネットワークにおける１次機器群と２次機器群との接続関係を記憶した情報処理装置から取得する第１取得ステップを実行する。また、代表ノード装置は、第１取得ステップにより取得した第１接続情報を記憶部に記憶させる記憶ステップを実行する。また、第１取得ステップにより取得された第１接続情報を、第１受信ステップによりメッセージを受信したメッセージの送信元である送信元ノード装置へ送信する送信ステップを実行する。従って、複数のノード装置を代表して、代表ノード装置が情報処理装置へ第１接続情報を取得し、保存することができる。この結果、ヒントサーバとして機能する情報処理装置への処理負荷が集中することを防ぎ、ヒントサーバの処理負荷を低減させることができる。
【図面の簡単な説明】
【００２３】
【図１】本実施形態の分散保存システムＳにおける各ノード装置Ｎｎの接続態様の一例を示す図である。
【図２】一般的なインターネット等のネットワーク構造の具体例を示す説明図である。
【図３】ヒントサーバ１０に記憶されるトポロジー情報の概念図である。
【図４】分散保存システムＳの動作概要を説明する説明図である。
【図５】本実施形態のノード装置Ｎｎの電気的構成を示すブロック図である。
【図６】ノード装置Ｎｎにおける動作のメイン処理動作の手順を示すフローチャートである。
【図７】代表ノード処理プログラムに従うノード装置Ｎｎの代表ノード処理を実行するフローチャートである。
【図８】プライベートヒントサーバの電気的構成を示すブロック図である。
【図９】プライベートヒントサーバメイン動作処理を示すフローチャートである。
【発明を実施するための最良の形態】
【００２４】
（第１の実施形態）
以下、本発明の最良の実施形態を図面に基づいて説明する。
【００２５】
［分散保存システムの構成］
図１は、本実施形態の分散保存システムＳを示す。分散保存システムＳは、複数のノード装置Ｎｎ（ｎ＝１，２，３・・・の何れか）から構成される。
【００２６】
図１に示すように、ノード装置Ｎｎは、ネットワークＮＷを介して夫々接続される。図１のノード装置Ｎ１、Ｎ２、Ｎ３は、ネットワークＮＷにブロードバンドルータを介さず、直接接続される。一方、ノード装置Ｎ４、Ｎ５、Ｎ６、Ｎ７は、ブロードバンドルータＢＲを介してネットワークＮＷに接続される。一般的なインターネット等のネットワークＮＷは、ＩＸ（Internet eXchange）、ＩＳＰ（Internet Service Provider）、ＤＳＬ（Digital Subscriber Line）回線事業者の装置、ＦＴＴＨ（Fiber To The Home）回線事業者の装置、通信回線等により構築されている。例えば、通信回線は、電話回線や光ケーブル等である。なお、ネットワークＮＷには、データ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００２７】
各ノード装置Ｎｎには、固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。本実施形態の分散保存システムＳは、ピアツーピア方式のネットワークシステムである。なお、本実施形態のピアツーピア方式のネットワークシステムは、オーバーレイネットワークＯＬにより実現される。オーバーレイネットワークＯＬは、図１の複数のノード装置Ｎｎを仮想的にリンクさせることで構築される。オーバーレイネットワークＯＬは、言い換えれば、論理的なネットワークである。オーバーレイネットワークＯＬは、特定のアルゴリズム、により構築される。例えば、特許文献の特開２００６−１９７４００に記載されたＤＨＴを利用したアルゴリズムにより、オーバーレイネットワークＯＬは構築される。
【００２８】
そして、オーバーレイネットワークＯＬを構成している各ノード装置Ｎｎには、ノードＩＤが割り当てられている。ノードＩＤは、所定桁数からなる固有の識別情報である。また、具体的には、ノードＩＤは、各ノード装置Ｎｎに個別に割り当てられたＩＰアドレス或いは製造番号を基に生成される。ノードＩＤは、上述のＩＰアドレス或いは製造番号を共通のハッシュ関数によりハッシュ化した値である。例えば、ＳＨＡ−１等のハッシュ関数により、ｂｉｔ長が１６０ｂｉｔのハッシュ値が生成される。各ノードＩＤは、ある一つのＩＤ空間に偏りなく分散して配置されることになる。ピアツーピア方式のネットワークシステムは、これらのノード装置Ｎｎのうち、何れか複数のノード装置Ｎｎの参加により形成される。本実施形態における参加とは、ノード装置Ｎｎが分散保存システムＳと接続し、コンテンツデータの送受信をすることを意味している。
【００２９】
分散保存システムＳへの参加は、現在オーバーレイネットワークＯＬに参加していないノード装置Ｎｎが、現在参加している任意のノード装置Ｎｎへ参加要求を示す参加メッセージを送信する。参加メッセージを受信するノード装置は、分散保存システムＳに常時参加しているノード装置である。本実施例では、常時参加しているノード装置をコンタクトノードと称する。例えば、オーバーレイネットワークＯＬに参加していないノード装置から、分散保存システムＳのコンタクトノードへ参加メッセージが送信される。コンタクトノードは、参加メッセージの送信元であるノード装置へオーバーレイネットワークＯＬに参加するために必要な情報を送信する。上述の必要な情報の詳細は後述する。
【００３０】
図１には図示していないが、分散保存システムＳは、コンテンツ投入サーバを備える。また、分散保存システムＳは、ヒントサーバ１０を備える。コンテンツ投入サーバは、新しいコンテンツデータを分散保存システムＳ内に投入するためのサーバである。コンテンツ投入サーバは、コンテンツデータを複製したレプリカを、分散保存システムＳに投入する。
【００３１】
図２に示すヒントサーバ１０は、インターネットに接続される上位機器群と下位機器群とのトポロジー情報を記憶する。ヒントサーバに記憶されるトポロジー情報についての詳細は後述する。なお、ヒントサーバ１０を構築する代わりに、後述するコンタクトノードが、ヒントサーバ１０の機能を備えて構築されても良い。本実施形態のヒントサーバ１０は、本発明の情報処理装置の一例である。
【００３２】
図２は、一般的なインターネット等のネットワーク構造の具体例を示す。ＩＸ（Internet eXchange）３は、ネットワークを介して複数の機器群を接続する。ＩＸ３を頂点として上位機器群１３ａ〜１３ｃが、ＩＸを介して接続される。ＩＸ３を頂点として上位機器群１３ａの下位には、下位機器群１４ａ及び１４ｂが接続される。図２の例では、上位機器群１３ａのみに、下位機器群１４ａ及び１４ｂが接続されている例であるが、上位機器群１３ｂまたは上位機器群１３ｃに、下位機器群が接続されても良い。上位機器群１３ａ〜１３ｃと下位機器群１４ａ及び１４ｂとは、複数のブロードバンドルータＢＲから構成される。各機器群を構成するブロードバンドルータＢＲは、任意の管理者により管理される。各ブロードバンドルータＢＲには、所定範囲のＩＰアドレスが割り当てられている。上位機器群１３ａ〜１３ｃを構成する複数のブロードバンドルータＢＲに対応するＩＰアドレスが、上位機器群１３ａ〜１３ｃのＩＰアドレス範囲として設定される。同様に、下位機器群１４ａ及び１４ｂを構成する複数のブロードバンドルータＢＲのＩＰアドレスが、下位機器群１４ａ及び１４ｂのＩＰアドレス範囲として設定される。
【００３３】
本実施形態に記載の上位機器群または下位機器群は、例えば、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）である。現実世界のインターネットに接続される各ＩＳＰは、上述した上位と下位との関係により接続されている。本実施形態の上位機器群は、例えば、１次ＩＳＰである。また、本実施形態の下位機器群は、例えば、２次ＩＳＰである。１次ＩＳＰと２次ＩＳＰとは、上述した上位と下位との関係により接続されている。１次ＩＳＰは、２次ＩＳＰより上位に接続される。
【００３４】
図２に示すようにＩＸ３を頂点として、上位機器群１３ａ〜１３ｃまたは下位機器群１４ａ及び１４ｂの下位には、多数のノード装置ＮｎがブロードバンドルータＢＲを介して接続される。また、ノード装置Ｎｎは、局舎モデム１５を介してブロードバンドルータＢＲと接続される。尚、ブロードバンドルータＢＲとノード装置Ｎｎとは、直接接続されても良い。
【００３５】
さらに本実施形態では、上述した上位機器群、または、下位機器群に夫々代表ノード装置が設置される。代表ノード装置は、各上位機器群、または、下位機器群を代表するノード装置である。各上位機器群、または、下位機器群に接続された代表ノード装置は、各上位機器群、または、下位機器群に接続されるノード装置の中から決定される。代表ノード装置の決定方法は、任意の方法により決定されても良い。各上位機器群、または、下位機器群に接続された代表ノード装置は、各代表ノード装置間のネットワーク距離を記憶する。ネットワーク距離の決定方法の詳細は、後述する。
【００３６】
また、本実施形態の変形例として、上位機器群、または、下位機器群に夫々、図２に示すプライベートヒントサーバが設置されても良い。プライベートヒントサーバ１１は、各上位機器群、または、下位機器群夫々に少なくとも１台設置される。各プライベートヒントサーバは、少なくとも、プライベートヒントサーバが接続される上位機器群、または、下位機器群のトポロジー情報を記憶する。図２に示す例では、各上位機器群、または、下位機器群に、プライベートヒントサーバ１１ａ、１１ｂ、１１ｃ、１１ｄ、１１ｅが接続される。トポロジー情報の詳細は、後述する。本発明のプライベートヒントサーバは、本発明の情報処理装置の一例である。
【００３７】
［分散保存システムのコンテンツ取得動作説明］
図１または図２に示す各ノード装置Ｎｎは、夫々、ＤＨＴを用いたルーティングテーブルを保持している。このルーティングテーブルは、分散保存システムＳ上における各種メッセージの転送先を規定している。具体的に、このルーティングテーブルには、ＩＤ空間内で適度に離れたノード装置ＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報が複数登録されている。本実施形態では、ノード情報は、メッセージ送信先候補の「ノードＩＤ」と「ＩＰアドレス及びポート番号」と「代表ノード装置のＩＰアドレス」とを含む。代表ノード装置のＩＰアドレスは、ノード情報が含むノードＩＤが表すノード装置が接続する上位機器群、または、下位機器群の代表ノードのＩＰアドレスである。
【００３８】
分散保存システムＳに接続している１台のノードは、必要最低限のノードＮｎのノード情報をルーティングテーブルとして記憶している。各ノードＮｎ間で互いに各種メッセージが転送されることで、ノード情報を記憶していないノードＮｎについてのノード情報が取得される。本実施形態では、ルーティングテーブルを用いて、上述した他のノード装置Ｎｎへ各種メッセージを送信、または転送するとき、メッセージの送信元、または転送元のノード装置Ｎｎのノード情報が含まれて送信される。このメッセージを受信した各ノード装置Ｎｎは、各ノード装置Ｎｎが保持するルーティングテーブル及びインデックスキャッシュに、受信したノード情報の登録および更新を行う。このような構成により、各ノード装置Ｎｎは、他のノード装置のノード情報を把握することができる。このようなＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００３９】
また、分散保存システムＳにおいては、内容の異なる様々なコンテンツデータのレプリカが所定のファイル形式で複数のノード装置Ｎｎに分散保存されている。コンテンツは、映画および動画、または音楽等である。各ノード装置Ｎｎ間でレプリカが送受信可能になっている。
【００４０】
これらコンテンツデータのレプリカには、夫々、コンテンツ名（タイトル）と、コンテンツＩＤとを含む情報が付与されている。コンテンツ名は、コンテンツデータのタイトルであっても良い。また、コンテンツＩＤは、コンテンツ毎に固有のコンテンツ識別情報である。例えば、コンテンツＩＤは、コンテンツ名＋任意の数値が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される。そのため、コンテンツＩＤは、ノードＩＤと同一のＩＤ空間に配置されることとなる。あるいは、システム管理者が、コンテンツデータ毎に一意のＩＤ値を付与しても良い。ＩＤ値は、ノードＩＤと同一ビット長でも良い。コンテンツ名とそのコンテンツＩＤとの対応が記載されたコンテンツカタログリストが、全ノードＮｎに配布される。コンテンツカタログリストには、コンテンツ名と、コンテンツＩＤと、そのコンテンツＩＤが表すレプリカの公開開始日時及び公開終了日時とが対応付けられて記載されている。尚、コンテンツカタログリストの詳細は、特開２００８−１２９６９４号公報に記載されているため、詳細な説明は省略する。
【００４１】
上述のように分散保存されているレプリカの所在は、インデックス情報により管理される。インデックス情報は、レプリカが保存されたノード装置Ｎｎの情報と、レプリカのコンテンツＩＤとを組み合わせた情報から構成される。インデックス情報は、レプリカの所在を管理しているノード装置Ｎｎにより記憶される。レプリカの所在を管理しているノード装置を「ルートノード」とする。つまり、コンテンツデータのレプリカを保存しているノード装置Ｎｎのノード情報は、他のノード装置Ｎｎからの問い合わせに応じて提供可能なようにルートノードにより管理されている。コンテンツのレプリカを保存しているノード装置Ｎｎを「保持ノード」とする。このようなルートノードには、コンテンツＩＤと最も近いノードＩＤを有するノードＮｎが選定される。例えば、コンテンツＩＤと最も近いとは、上位桁がより多く一致する、または、比較結果の差が最も小さいことである。
【００４２】
ルートノードは、保持ノードからパブリッシュメッセージを受信する。そして、ルートノードは、パブリッシュメッセージに含まれるコンテンツＩＤとノード情報とを、インデックス情報としてインデックスキャッシュに登録する。ノード情報は、「ノードＩＤ」と、「ＩＰアドレス及びポート番号」と、「代表ノード装置のＩＰアドレス」を含む。代表ノード装置のＩＰアドレスは、ノード情報が含むノードＩＤが表すノード装置が接続する上位機器群、または、下位機器群の代表ノードのＩＰアドレスである。
【００４３】
そして、あるノード装置のユーザが、所望するコンテンツデータのレプリカを取得したい場合、レプリカの取得を望むユーザは、クエリを生成する。ユーザがレプリカの取得を望むノード装置Ｎｎを、「ユーザノード」とする。クエリは、コンテンツデータのコンテンツＩＤとユーザノードのＩＰアドレスを含む。クエリに含まれるコンテンツＩＤは、ユーザによりコンテンツカタログリストから選択されたコンテンツデータのコンテンツＩＤである。
【００４４】
ユーザノードは、ユーザノードのルーティングテーブルに従って、他のノード装置Ｎｎへクエリを送信する。つまり、ユーザノードは、クエリをルートノードに向けて送信する。これにより、コンテンツＩＤをキーとしてクエリは、ルートノードに到着することとなる。
【００４５】
クエリを受信したルートノードは、クエリに含まれるコンテンツＩＤに対応するインデックス情報をインデックスキャッシュ記憶領域から取得する。取得されたインデックス情報は、クエリの送信元であるユーザノードへ返信される。こうしてインデックス情報を取得したユーザノードは、取得したインデックス情報から保持ノードのＩＰアドレスを知ることができる。取得した保持ノードのＩＰアドレスに基づいて、ユーザノードは、コンテンツ送信要求メッセージを送信する。そして、ユーザノードは、保持ノードからコンテンツデータのレプリカを取得（ダウンロード）することができる。レプリカを取得するとき、レプリカのコンテンツＩＤがレプリカとともに取得される。
【００４６】
そして、保持ノードから取得したコンテンツデータのレプリカを、ユーザノードは、ハードディスク等の記憶手段に保存する。レプリカを保存したユーザノードは、レプリカを保存したことをルートノードに知らせる。レプリカを保存したことを知らせるために、ユーザノードは、レプリカのコンテンツＩＤと、ユーザノードのノード情報が含まれたパブリッシュメッセージを生成する。生成されたパブリッシュメッセージは、ユーザノードからルートノードに向けて送信される。パブリッシュメッセージが送信されることで、分散保存システムＳに参加している他のノード装置Ｎｎは、レプリカを取得したユーザノードからもレプリカを取得（ダウンロード）することができる。
【００４７】
上述の方法により、パブリッシュメッセージは、クエリと同じように、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着する。そして、ルートノードは、受信したパブリッシュメッセージに含まれるユーザノードのノード情報とレプリカのコンテンツＩＤの組とを含むインデックス情報を登録することができる。こうして、上記ユーザノードは、新たに、コンテンツのレプリカを保持する保持ノードとなる。なお、上記パブリッシュメッセージに含まれるユーザノードのインデックス情報は、ルートノードに至るまでの転送経路におけるノード装置Ｎｎにおいても登録される。なお、ルートノードは、所在情報に含まれるＩＰアドレス等により示された保持ノードへコンテンツ送信要求メッセージを送信してもよい。この場合、保持ノードがユーザノードへアクセスしてコンテンツを提供することになる。
【００４８】
また、分散保存システムＳに保存される全てのコンテンツは、コンテンツ管理サーバにより管理される。尚、本実施形態では、コンテンツ管理サーバは、図示していない。コンテンツ管理サーバは、分散保存システムＳに保存される全てのコンテンツの属性情報を記憶している。そして、コンテンツ管理サーバＭＳは、コンテンツの属性情報を含むコンテンツカタログ情報を、全てのノード装置Ｎｎに対して、ＤＨＴマルチキャストで配信する。ＤＨＴマルチキャストでは、コンテンツ管理サーバからあるノードＮｎに配信されたメッセージが、ＤＨＴを用いたルーティングテーブルにしたがって、分散保存システムＳに接続しているノード装置Ｎｎを順次転送される。これにより、最終的には全てのノード装置Ｎｎに行き渡る。なお、ＤＨＴマルチキャストは、例えば特開２００７−０５３６６２号公報等で公知であるので、詳しい説明を省略する。
【００４９】
［トポロジー情報の説明］
図３は、ヒントサーバ１０に記憶されるトポロジー情報の概念図である。トポロジー情報は、上位機器群及び下位機器群との接続態様を表す。具体的には、トポロジー情報は、接続関係情報とＩＰアドレス範囲情報とから構成される。接続関係情報は、インターネットを構成する複数の上位機器群または下位機器群の接続関係を表す情報である。また、ＩＰアドレス範囲情報は、上位機器群または下位機器群夫々に対応するＩＰアドレス範囲である。例えば、接続関係情報は、図３の上位機器群１３ａに接続される上位機器群が、上位機器群１３ｂ、１３ｃであることを示す情報である。また、上位機器群１３ａに接続される下位機器群が、下位機器群１４ａ、１４ｂであることを示す情報である。
【００５０】
ユーザノードがコンテンツを取得するとき、トポロジー情報と、ユーザノードのＩＰアドレスとに基づいて、機器群間の経由が最小の経路である保持ノード装置からコンテンツを取得することができる。尚、本実施形態では、ユーザノードは、ユーザからの指示にしたがってクエリを生成するノード装置Ｎｎを表す。また、保持ノードは、コンテンツデータが記憶されるノード装置Ｎｎを表す。本実施形態では、オーバーレイネットワークＯＬに参加する参加処理に加えて、ノード装置Ｎｎが接続する上位機器群、または、下位機器群が決定される。具体的には、ノード装置Ｎｎが送信する参加メッセージに含まれたＩＰアドレスに基づいて、参加メッセージを送信したノード装置Ｎｎが接続する上位機器群、または、下位機器群が決定される。
【００５１】
決定する方法について具体的に説明する。上述したＩＰアドレス範囲情報は、具体的には、アドレス範囲「１０．１０．１０．１０〜１０．１０．１０．９０」である。このアドレス範囲は、上位機器群または下位機器群が含むブロードバンドルータＢＲに割り当てられたアドレスを示す。以下、コンタクトノードが、ヒントサーバ１０の機能を備えた場合について説明する。あるノード装置がオーバーレイネットワークＯＬに参加するとき、参加するノード装置は、参加メッセージをコンタクトノードに向けて送信する。コンタクトノードは、オーバーレイネットワークＯＬに参加するノード装置が最初にアクセスする装置である。コンタクトノードの詳細は、後述する。参加するノード装置Ｎｎはコンタクトノードに向けて参加メッセージを送信する。参加メッセージは、参加メッセージを送信するノード装置のＩＰアドレスを含む。例えば、ノード装置Ｎ１３のＩＰアドレスが、「１０．１０．１０．８９」の場合、参加メッセージには、ＩＰアドレス「１０．１０．１０．８９」が含まれる。そして、参加メッセージに含まれるＩＰアドレス「１０．１０．１０．８９」を、アドレス範囲として含む上位機器群、または、下位機器群がコンタクトノードにより決定される。例えば、ＩＰアドレス「１０．１０．１０．８９」は、上述したアドレス範囲「１０．１０．１０．１０〜１０．１０．１０．９０」に含まれるため、アドレス範囲「１０．１０．１０．１０〜１０．１０．１０．９０」に対応する上位機器群または下位機器群が決定される。
【００５２】
本実施形態では、コンタクトノードが、各上位機器群または下位機器群に対応するアドレス範囲を知っているものとする。決定された上位機器群または下位機器群が、コンタクトノードから参加するノード装置へ送信される。この処理が実行されることで、参加するノード装置は、参加するノード装置が接続する上位機器群、または、下位機器群を取得することができる。保持ノードについても上記と同様な処理が実行されることで、保持ノードは、保持ノードが接続される上位機器群または下位機器群を取得することができる。保持ノードの詳細は、後述する。コンタクトノードとは異なってヒントサーバ１０が設立されるとき、オーバーレイネットワークＯＬに参加するノード装置、または、保持ノードが、ヒントサーバ１０にアクセスする。この場合、参加するノード装置がコンタクトノードへ参加メッセージを送信すると、参加するノード装置は、コンタクトノードからヒントサーバ１０のＩＰアドレスを取得することができる。そして、上述した処理が実行されることで、参加するノード装置、または、保持ノードは、それらノード装置が接続する上位機器群または下位機器群を取得することができる。
【００５３】
さらに本実施形態では、ヒントサーバ１０は、参加するノード装置、または、保持ノードが接続される上位機器群、または、下位機器群の代表ノード装置のＩＰアドレスを記憶している。ヒントサーバ１０により、参加するノード装置、または、保持ノードが接続する上位機器群、または、下位機器群が決定される。そして、決定された上位機器群、または、下位機器群の代表ノード装置が決定される。決定された代表ノード装置のＩＰアドレスが、ヒントサーバ１０から、参加するノード装置、または、保持ノードに送信される。これにより、参加するノード装置、または、保持ノードが、代表ノード装置にアクセスすることができる。
【００５４】
また本実施形態の変形例で、上位機器群、または、下位機器群夫々に、プライベートヒントサーバを備える場合、プライベートヒントサーバは、プライベートヒントサーバが接続される上位機器群、または、下位機器群内のトポロジー情報を記憶する。この場合、各機器群内に接続されるノード装置と、ノード装置からプライベートヒントサーバまでに経由するルータの数等がトポロジー情報として記憶されても良い。なお、本実施形態の上位機器群は、本発明の１次機器群の一例である。また、本実施形態の下位機器群は、本発明の２次機器群の一例である。
【００５５】
[分散保存システムＳの動作概要]
図４を用いて、本実施形態の分散保存システムＳの動作概要について説明する。以下、コンタクトノードが、ヒントサーバ１０の機能を備えた場合について説明する。図４に示すノード装置Ｎ１３がオーバーレイネットワークＯＬに参加する場合を例に用いて説明する。オーバーレイネットワークＯＬに参加するノード装置Ｎ１３は、まず、参加メッセージをコンタクトノードに送信する。参加メッセージは、ノード装置Ｎ１３のＩＰアドレスを含む。参加メッセージを受信したコンタクトノードは、ノード装置Ｎ１３のＩＰアドレスに基づいて、ノード装置Ｎ１３が接続する上位機器群、または、下位機器群を決定する。そして決定された上位機器群、または、下位機器群の代表ノード装置を決定する。決定された代表ノード装置のＩＰアドレスが、ノード装置Ｎ１３に送信される。
【００５６】
そして、ノード装置Ｎ１３は、ユーザノードとして、所定のコンテンツを検索するためのクエリを生成する。生成されたクエリは、ノード装置Ｎ１３によりルートノードへ向けて送信する。そして、ノード装置Ｎ１３は、インデックスキャッシュを取得することになる。
【００５７】
インデックスキャッシュを取得したノード装置Ｎ１３は、インデックスキャッシュに記載されるノード装置の代表ノード装置と、ユーザノードの代表ノード装置とのネットワーク距離が、ノード装置Ｎ１３の記憶手段に記憶されているかを判定する。ネットワーク距離がノード装置Ｎ１３の記憶手段に記憶されていた場合、記憶手段に記憶されたネットワーク距離が参照される。一方、ノード装置Ｎ１３の記憶手段に記憶されていなかった場合、ノード装置Ｎ１３が接続する機器群の代表ノード装置に、リクエストメッセージがノード装置Ｎ１３から送信される(図４の矢印（１）)。図４の例では、ノード装置Ｎ１３は、下位機器群１４ａに接続される。そのため、下位機器群１４ａの代表ノード装置Ｎ２４へ、リクエストメッセージが送信される。送信されるリクエストメッセージには、ユーザノードの代表ノードのＩＰアドレスと、ネットワーク距離を決定したい保持ノードのＩＰアドレスとが含まれる。
【００５８】
リクエストメッセージを受信した代表ノード装置Ｎ２４は、リクエストメッセージが含む保持ノードの代表ノード装置と、代表ノード装置Ｎ２４とのネットワーク距離が、代表ノード装置Ｎ２４の記憶手段に記憶されているかを判定する。代表ノード装置Ｎ２４の記憶手段に記憶されていた場合、記憶手段に記憶されたネットワーク距離がノード装置Ｎ１３へ送信される（図４の矢印（２））。一方、代表ノード装置Ｎ２４の記憶手段に記憶されていなかった場合、代表ノード装置Ｎ２４は、ヒントサーバ１０にリクエストメッセージを転送する(図４の矢印（３）)。そして、ヒントサーバ１０は、代表ノード装置Ｎ２４から送信されたリクエストメッセージを受信する。ヒントサーバ１０は、受信されたリクエストメッセージが含む保持ノードの代表ノード装置と、ユーザノードの代表ノード装置とのネットワーク距離を決定する。ヒントサーバ１０により決定されたネットワーク距離が、代表ノード装置Ｎ２４に送信される（図４の矢印（４））。代表ノード装置Ｎ２４は、受信したネットワーク距離を代表ノード装置Ｎ２４の記憶手段に記憶する。これにより、代表ノード装置Ｎ２４は、再度、保持ノードの代表ノード装置と、代表ノード装置Ｎ２４とのネットワーク距離を問い合わされたとしても、代表ノード装置Ｎ２４の記憶手段に記憶されたネットワーク距離を参照することができる。
【００５９】
ヒントサーバ１０からネットワーク距離を受信した代表ノード装置Ｎ２４は、ユーザノードに受信したネットワーク距離を転送する（図４の矢印（５））。ネットワーク距離を受信したユーザノードは、ユーザノードの記憶手段に受信したネットワーク距離を記憶する。このように、各上位機器群、または、下位機器群に接続された代表ノード装置が、ネットワーク距離を記憶することで、ヒントサーバ１０へのアクセス集中を分散することができる。
【００６０】
（ネットワーク距離の決定方法）
本実施形態で用いるネットワーク距離の決定方法について説明する。本実施形態では、ユーザノードから保持ノードまでに経由する上位機器群、または、下位機器群の数に基づいて、ネットワーク距離が決定される。
【００６１】
具体的には、図３に示すユーザノードであるノード装置Ｎ１３が、クエリをルートノードへ送信した例を用いて説明する。例として、ノード装置Ｎ１３が、コンテンツの保持ノードとして、ノード装置Ｎ１１、ノード装置Ｎ１５、ノード装置Ｎ１６、ノード装置Ｎ１９、ノード装置Ｎ２０のノード情報がルートノードに記憶されている場合をあげる。そして、ルートノードは、インデックスキャッシュをコンテンツの取得候補先としてノード装置Ｎ１３へ送信する。取得候補先を受信したノード装置Ｎ１３は、ネットワーク距離に基づいてコンテンツ取得先とする保持ノードを決定する。
【００６２】
本実施形態のネットワーク距離は、下記に示すルールにより決定される。
１．ユーザノードの代表ノード装置と、保持ノードの代表ノード装置とが同じ下位機器群と接続されている場合、ネットワーク距離を０とする。
２．ユーザノードの代表ノード装置と、保持ノードの代表ノード装置とが同じ下位機器群と接続されておらず、且つ、ユーザノードの代表ノード装置と保持ノードの代表ノード装置とが同じ上位機器群と接続される場合、ネットワーク距離を１とする。
３．ユーザノードの代表ノード装置と保持ノードの代表ノード装置とが同じ下位機器群と接続されておらず、且つ、ユーザノードの代表ノード装置と保持ノードの代表ノード装置とが同じ上位機器群と接続されず、さらに、ユーザノードの代表ノード装置が接続する上位機器群と異なる他の上位機器群と、保持ノードの代表ノードが直接接続される場合、ネットワーク距離を２とする。
４．ユーザノードの代表ノード装置と保持ノードの代表ノード装置とが同じ下位機器群と接続されておらず、且つ、ユーザノードの代表ノード装置と保持ノードの代表ノード装置とが同じ上位機器群と接続されず、さらに、ユーザノードの代表ノード装置が接続する上位機器群と異なる他の上位機器群と、ユーザノードの代表ノード装置とが直接接続されず、他の上位機器群の下位機器群に接続される場合、ネットワーク距離を３とする。
【００６３】
本実施形態では、上記のルールに基づいて、ネットワーク距離が短い保持ノードからコンテンツデータが取得される。従って、コンテンツ取得の際、経由する機器群の数が減らせることで、機器群間の通信負荷を減らせることができる。
【００６４】
ノード装置Ｎ１３が、保持ノードとして、ノード装置Ｎ１１、ノード装置Ｎ１５、ノード装置Ｎ１６、ノード装置Ｎ１９、ノード装置Ｎ２０のノード情報がルートノードに記憶されている場合を例に挙げて説明する。この場合、ノード装置Ｎ１３とノード装置Ｎ１５とは、同じ下位機器群１４ａに接続されるため、ネットワーク距離が０となる。また、ノード装置Ｎ１３とノード装置Ｎ１６とは、同じ上位機器群１３ａに接続されるため、ネットワーク距離が１となる。また、ノード装置Ｎ１３とノード装置Ｎ１１とも、同じ上位機器群１３ａと接続されるため、ネットワーク距離が１となる。また、ノード装置Ｎ１３とノード装置Ｎ１９とは、夫々異なる上位機器群と接続され、且つ、ノード装置Ｎ１９は、上位機器群１３ｂと直接接続されるため、ネットワーク距離２となる。また、ノード装置Ｎ１３とノード装置Ｎ２０とは、同じ下位機器群に接続されておらず、且つ、上位機器群と接続されず、さらに、ノード装置Ｎ１３が接続する上位機器群１３ａと異なる他の上位機器群１３ｂと直接接続されず、他の上位機器群１３ｂの下位機器群１４ｃに接続されている。そのため、ネットワーク距離が３となる。
【００６５】
本実施形態では、コンテンツ取得先を決定する処理は、ユーザノードにより行われている。ユーザノードがクエリとともにユーザノードの代表ノード装置のＩＰアドレスを送信することで、ルートノードによりコンテンツ取得先を決定することができる。この場合、ルートノードにより決定されたコンテンツ取得先がユーザノードに送信される。また、取得先として決定された保持ノードへコンテンツ送信要求メッセージが送信されても良い。また、ヒントサーバ１０により、ネットワーク距離が決定されても良い。
【００６６】
本実施形態では、経由する機器群の数を、ネットワーク距離としたが、これに限定されるものではない。経由するルータやハブの数をネットワーク距離としても良い。また、上位機器群、または、下位機器群を経由する際に発生するトランジット料金がネットワーク距離として用いられても良い。
【００６７】
[ノード装置の電気的構成]
次に、図５を参照して、ノード装置Ｎｎの電気的構成ついて説明する。図５は、本実施形態のノード装置Ｎｎの電気的構成を示すブロック図である。図５に示すように、本実施形態のノード装置Ｎｎには、ノード装置Ｎｎを制御するＣＰＵ１が備えられている。ＣＰＵ１には、ＨＤＤ２とＲＡＭ３とデコーダ部４と通信部９とがそれぞれ電気的に接続されている。ＨＤＤ２、ＲＡＭ３などの記憶手段とＣＰＵ１とは、ノード装置Ｎｎのコンピュータを構成している。そのコンピュータは、ノード装置Ｎｎの動作を制御処理する。
【００６８】
ＨＤＤ２は、プログラム記憶領域２１を含む。プログラム記憶領域２１は、メイン動作プログラム記憶領域２２と、代表ノード処理プログラム記憶領域２３とを含む。メイン動作プログラム記憶領域２２は、ノード装置Ｎｎを制御するためのプログラム情報を記憶する。代表ノード処理プログラム記憶領域２３は、本実施形態の代表ノードとして、ノード装置Ｎｎを制御するためのプログラムである。 
【００６９】
ＲＡＭ３は、代表ノード情報一時記憶領域３１と、距離情報一時記憶領域３２と、保持ノード情報一時記憶領域３３とを含む。代表ノード情報一時記憶領域３１はＲＡＭ３を備えるノード装置Ｎｎが接続する上位機器群、または、下位機器群の代表ノードのＩＰアドレスを一時記憶する。距離情報一時記憶領域３２は、ＲＡＭ３を備えるノード装置Ｎｎの代表ノードと、保持ノードの代表ノードとのネットワーク距離を一時記憶する。具体的には、距離情報一時記憶領域３２には、ＲＡＭ３を備えるノード装置Ｎｎが受信したネットワーク距離が一時記憶される。保持ノード情報一時記憶領域３３は、ＲＡＭ３を備えるノード装置と、取得したインデックスキャッシュが含む保持ノードの代表ノードとのネットワーク距離を一時記憶する。具体的には、ノード装置Ｎｎがコンテンツを取得する際に取得されたインデックスキャッシュに記載された各保持ノードの代表ノード装置と、コンテンツを取得するユーザノード装置の代表ノード装置とのネットワーク距離が一時記憶される。なお、代表ノード情報一時記憶領域３１と、距離情報一時記憶領域３２と、保持ノード情報一時記憶領域３３とは、夫々、ＨＤＤ２に備えられても良い。本実施形態の距離情報一時記憶領域３２は、本発明の記憶部の一例である。
【００７０】
デコーダ部４は、映像情報と音声情報とをデコードする。本実施形態のデコードは、エンコード化された映像情報と音声情報とを、データ伸張または復号化することである。映像情報と音声情報とは、コンテンツデータに含まれる。
【００７１】
映像処理部５は、デコードされた映像情報に所定の描画処理を施して映像信号を出力する。
【００７２】
ディスプレイ６は、映像処理部５から出力された映像信号に基づいて映像表示する。ディスプレイ６は、ＣＲＴディスプレイ、または、液晶ディスプレイにより構成される。
【００７３】
音声処理部７は、上記デコードされた音声情報をアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換する。
【００７４】
スピーカ８は、変化されたアナログオーディオ信号を、アンプにより増幅して出力する。
【００７５】
通信部９は、ノード装置Ｎｎをインターネットと接続する。通信部９は、ネットワークＮＷを介して他のノード装置Ｎｎまたはコンテンツ投入サーバまたはヒントサーバ１０またはプライベートヒントサーバと情報の送受信を行う。
【００７６】
なお、ノード装置Ｎｎとしては、パーソナルコンピュータ、ＳＴＢ（Ｓｅｔ  Ｔｏｐ  Ｂｏｘ）、或いは、ＴＶ受信機等を適用可能である。
【００７７】
また、分散保存システムＳが、分散保存システムＳに参加する際のアクセス先となるコンタクトノードを備えている場合、各ノード装置ＮｎのＨＤＤ２にはコンタクトノードのＩＰアドレスまたはポート番号等が記憶されている。更に、ＨＤＤ２には、コンテンツカタログリストが記憶されている。なお、ＨＤＤ２に記憶されるプログラムは、例えば、ネットワークＮＷ上の所定のサーバからダウンロードされるようにしてもよい。また、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００７８】
［ノード装置Ｎｎのメイン処理動作］
以上説明した構成からなる本実施形態のノード装置Ｎｎの動作及び作用について、添付図面を参照して説明する。図６は、ノード装置Ｎｎにおける動作のメイン処理動作の手順を示すフローチャートである。言い換えれば、図６は、ユーザノードにおける動作の処理手順を示すフローチャートである。ノード装置Ｎｎにより上述したオーバーレイネットワークＯＬへの参加処理の要求が行われたとき、ノード装置Ｎｎのメイン動作が実行される。ＣＰＵ１がメイン動作プログラムを実行することにより、メイン動作処理が遂行される。以下に示す処理は、ＣＰＵ１により処理される。
【００７９】
ステップＳ１０１では、参加処理が実行される。参加処理が実行されると、コンタクトノードから、参加処理を実行するノード装置の代表ノード装置のＩＰアドレスが取得される。取得された代表ノード装置のＩＰアドレスは、代表ノード情報一時記憶領域３１に一時記憶される。
【００８０】
ステップＳ１０２では、ノード装置Ｎｎの電源がＯＦＦにされたか否かが判定される。電源がＯＦＦにされたと判定された場合、メイン動作処理は終了される。電源がＯＦＦにされたと判定されなかった場合、ステップＳ１０３が実行される。
【００８１】
ステップＳ１０３では、ダウンロード依頼があったか否かが判定される。ダウンロード依頼は、ノード装置Ｎｎのユーザから、所定のコンテンツのダウンロード依頼が入力される。ダウンロード依頼があったと判定された場合、ステップＳ１０４が実行される。ダウンロード依頼があったと判定されなかった場合、ステップＳ１０２が実行される。
【００８２】
ステップＳ１０４では、ノード装置Ｎｎにより保持ノードが検索される。具体的には、
ノード装置Ｎｎによりクエリが生成される。生成されたクエリに基づいて、インデックスキャッシュが取得される。取得されたインデックスキャッシュには、所定のコンテンツを保持する保持ノードのノード情報が登録されている。取得されたインデックスキャッシュは、ＲＡＭの所定の記憶領域に一時記憶される。本実施形態のコンピュータとステップＳ１０４とは、本発明の検索部と第２受信部と第２取得部との一例である。
【００８３】
ステップＳ１０５では、インデックスキャッシュに含まれる保持ノード装置の中で、全ての保持ノード装置のネットワーク距離が取得されたか否かが判定される。ネットワーク距離が取得された保持ノードについては、フラグ等により識別される。全ての保持ノードのネットワーク距離が取得されたと判定された場合、ステップＳ１１３が実行される。全ての保持ノードのネットワーク距離が取得されたと判定されなかった場合、ステップＳ１０６が実行される。
【００８４】
ステップＳ１０６では、ネットワーク距離が取得されていない保持ノードが１つ選択される。ネットワーク距離が取得されていない保持ノードは、フラグ等により識別される。
【００８５】
ステップＳ１０７では、ステップＳ１０６で選択された保持ノードの代表ノード装置のＩＰアドレスが取得される。代表ノード装置のＩＰアドレスは、ステップＳ１０４で取得されたインデックス情報に、保持ノードのノード情報に含まれる。取得された保持ノードの代表ノード装置のＩＰアドレスは、ＲＡＭ３の所定の記憶領域に一時記憶される。
【００８６】
ステップＳ１０８では、距離情報一時記憶領域３２に記憶される距離情報の中に、ステップＳ１０７で取得された保持ノードの代表ノード装置と、ノード装置Ｎｎの代表ノード装置とのネットワーク距離が存在するか否かが判定される。ネットワーク距離が登録されていると判定された場合、ステップＳ１０９が実行される。ネットワーク距離が登録されていなかった場合、ステップＳ１１０が実行される。ノード装置Ｎｎの代表ノード装置のＩＰアドレスは、代表ノード情報一時記憶領域３１に一時記憶されている。
【００８７】
ステップＳ１０９では、ステップＳ１０８で存在すると判定されたネットワーク距離が、距離情報一時記憶領域３２から取得されて、保持ノード情報一時記憶領域３３に一時記憶される。
【００８８】
ステップＳ１１０では、ステップＳ１０６で選択された保持ノードの代表ノード装置と、ノード装置Ｎｎの代表ノード装置とのネットワーク距離が、ノード装置Ｎｎの代表ノード装置にリクエストされる。具体的には、ネットワーク距離を決定したい保持ノードの代表ノード装置のＩＰアドレスと、メッセージの送信元であるノード装置ＮｎのＩＰアドレスとが含まれたリクエストメッセージが、ノード装置Ｎｎの代表ノード装置に送信される。
【００８９】
ステップＳ１１１では、ステップＳ１１０でリクエストされたネットワーク距離が受信される。
【００９０】
ステップＳ１１２では、ステップＳ１１１で受信されたネットワーク距離が、保持ノード情報一時記憶領域３３に一時記憶される。また、ステップＳ１１１で受信されたネットワーク距離が、距離情報一時記憶領域３２に一時記憶される。
【００９１】
ステップＳ１１３では、保持ノード情報一時記憶領域３３に一時記憶されたネットワーク距離が近い順番に、保持ノードがソートされる。ソートされた結果が、再度、保持ノード情報一時記憶領域３３に一時記憶される。
【００９２】
ステップＳ１１４では、ステップＳ１１３でソートされ、ネットワーク距離が近い順番から優先的に、コンテンツがダウンロードされる。例えば、ネットワーク距離が近い順番に、保持ノードへ向けてダウンロード要求が送信される。ネットワーク距離が近い順番から、所定の時間間隔を空けて、保持ノードへ向けてダウンロード要求が送信される。ネットワーク距離が等しい保持ノードが複数あった場合、複数の保持ノードの中で、レスポンスが早く返ってきた保持ノードから優先してダウンロードを行っても良い。本実施形態のコンピュータとステップＳ１１４とは、本発明のコンテンツ取得部の一例である。
【００９３】
[代表ノード処理]
図７は、代表ノード処理プログラムに従うノード装置Ｎｎの代表ノード処理を実行するフローチャートである。代表ノード処理は、代表ノード装置の電源がＯＮにされることにより、図６に示すノード装置Ｎｎのメイン動作処理と並行して実行される。まず、ステップＳ２０１では、代表ノード装置の電源がＯＦＦにされたか否かが判定される。代表ノード装置の電源がＯＦＦにされたと判定された場合、代表ノード処理は終了される。代表ノード装置の電源がＯＦＦにされたと判定されなかった場合、ステップＳ２０２が実行される。
【００９４】
ステップＳ２０２では、ネットワーク距離のリクエストメッセージが受信されたか否かが判定される。ステップＳ２０２で受信されるリクエストメッセージは、図６のステップＳ１１０で、ノード装置Ｎｎにより送信されたリクエストメッセージである。リクエストメッセージが受信されたと判定されたとき、ステップＳ２０３が実行される。リクエストメッセージが受信されたと判定されなかったとき、ステップＳ２０１が再度実行される。本実施形態のコンピュータとステップＳ２０２とは、本発明の第１受信部の一例である。また、本実施形態のステップＳ２０２は、本発明の第１受信ステップの一例である。
【００９５】
ステップＳ２０３では、代表ノード装置の距離情報一時記憶領域３２に、リクエストされたネットワーク距離が記憶されているか否かが判定される。ステップＳ２０２で受信されたリクエストメッセージが含む保持ノードの代表ノードＩＰアドレスと、リクエストメッセージを受信した代表ノード装置とのネットワーク距離が、記憶されているかが判定される。リクエストされたネットワーク距離が記憶されていると判定された場合、ステップＳ２０４が実行される。リクエストされたネットワーク距離が記憶されていると判定されなかった場合、ステップＳ２０５が実行される。本実施形態のコンピュータとステップＳ２０３とは、本発明の判定部の一例である。
【００９６】
ステップＳ２０４では、リクエストメッセージを受信した代表ノード装置の距離情報一時記憶領域３２に一時記憶されたネットワーク距離が取得される。
【００９７】
ステップＳ２０５では、ヒントサーバ１０へ、リクエストメッセージが転送される。
【００９８】
ステップＳ２０６では、ステップＳ２０５で転送されたリクエストメッセージにより要求されたネットワーク距離が、代表ノード装置により受信される。本実施形態のコンピュータとステップＳ２０６とは、本発明の第１取得部の一例である。また、本実施形態のステップＳ２０６は、本発明の第１取得ステップの一例である。
【００９９】
ステップＳ２０７では、ステップＳ２０６で受信されたネットワーク距離が、距離情報一時記憶領域３２に一時記憶される。本発明のステップＳ２０７ｈａ，本発明の記憶ステップの一例である。
【０１００】
ステップ２０８では、ステップＳ２０４で取得されたネットワーク距離、または、ステップＳ２０６で受信されたネットワーク距離が、ステップＳ２０２でネットワーク距離をリクエストしたノード装置Ｎｎへ送信される。本実施形態のコンピュータとステップＳ２０８とは、本発明の送信部の一例である。また、本実施形態のステップＳ２０８は、本発明の送信ステップの一例である。
【０１０１】
本実施形態では、ヒントサーバ１０の代わりに、各上位機器群、または、下位機器群に接続された代表ノードが、ネットワーク距離を記憶することができる。この結果、ヒントサーバ１０へ、ネットワーク距離のリクエストが集中することを防ぐことができる。
【０１０２】
本実施形態では、各代表ノード装置は、受信したネットワーク距離を記憶できるように構成した。代表ノード装置はネットワーク距離を記憶する代わりに、本実施形態のトポロジー情報を記憶しても良い。この場合、代表ノード装置が記憶するトポロジー情報は、ユーザノード、または、代表ノード装置によりネットワーク距離が決定されるため必要なトポロジー情報である。この結果、ヒントサーバ１０が記憶するトポロジー情報を、代表ノード装置に分散して保存することができるため、ヒントサーバ１０への負荷集中を防ぐことができる。
【０１０３】
（変形例）
以下、本実施形態の変形例について説明する。変形例では、上位機器群、または、下位機器群夫々にプライベートヒントサーバが備えられている。そのため、プライベートヒントサーバは、プライベートヒントサーバが接続する上位機器群または、下位機器群のトポロジー情報を記憶している。この場合、図７に示すステップＳ２０５では、図７に示す代表ノード処理を実行する代表ノード装置が接続する上位機器群、または、下位機器群に接続されるプライベートヒントサーバへ、ネットワーク距離がリクエストされる。
【０１０４】
以下、図８を参照して、プライベートヒントサーバの電気的構成について説明する。図８は、プライベートヒントサーバの電気的構成を示すブロック図である。図８に示すように、プライベートヒントサーバには、プライベートヒントサーバを制御するＣＰＵ２０が備えられている。ＣＰＵ２０には、ＨＤＤ１７とＲＡＭ１８と通信部１９とがそれぞれ電気的に接続されている。ＨＤＤ１７、ＲＡＭ１８などの記憶手段とＣＰＵ２０とは、プライベートヒントサーバのコンピュータを構成している。そのコンピュータは、プライベートヒントサーバの動作を制御処理する。ヒントサーバ１０も、プライベートヒントサーバと同様の電気的構成である。
【０１０５】
ＨＤＤ１７は、プログラム記憶領域１７１を含む。プログラム記憶領域１７１は、プライベートヒントサーバメイン動作プログラム記憶領域１７２を含む。プライベートヒントサーバメイン動作プログラム記憶領域１７２は、プライベートヒントサーバを制御するためのプログラム情報を記憶する。なお、ＨＤＤ１７に記憶されるプログラムは、例えば、ネットワークＮＷ上の所定のサーバからダウンロードされるようにしてもよい。また、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【０１０６】
以下、代表ノード装置からネットワーク距離のリクエストを受信したプライベートヒントサーバの動作処理について、図９を参照して説明する。
【０１０７】
図９は、プライベートヒントサーバメイン動作処理を示すフローチャートである。プライベートヒントサーバの電源がＯＮにされることにより、プライベートヒントサーバメイン動作処理が実行される。
【０１０８】
まず、ステップＳ３０１では、プライベートヒントサーバの電源がＯＦＦにされたか否かが判定される。プライベートヒントサーバの電源がＯＦＦにされたと判定された場合、プライベートヒントサーバメイン動作処理は終了される。プライベートヒントサーバの電源がＯＦＦにされたと判定されなかった場合、ステップＳ３０２が実行される。
【０１０９】
ステップＳ３０２では、代表ノード装置から送信、または、転送されたリクエストメッセージが受信されたか否かが判定される。ステップＳ３０２で受信されるリクエストメッセージは、図６のステップＳ１１０で、ノード装置Ｎｎにより送信されたリクエストメッセージである。リクエストメッセージが受信されたと判定されたとき、ステップＳ３０３が実行される。リクエストメッセージが受信されたと判定されなかったとき、ステップＳ３０１が再度実行される。なお、下位の機器群に接続されるプライベートヒントサーバから送信、または、転送されたリクエストメッセージが、ステップＳ３０２で受信されても良い。
【０１１０】
ステップＳ３０３では、ステップＳ３０２で受信された保持ノードの代表ノード装置のＩＰアドレスが、プライベートヒントサーバの担当範囲内のＩＰアドレスであるか否かが判定される。変形例では、上位機器群、または、下位機器群夫々にプライベートヒントサーバが備えられている。そのため、プライベートヒントサーバは、プライベートヒントサーバが接続する上位機器群または、下位機器群のトポロジー情報を記憶している。ステップＳ３０３では、リクエストメッセージに含まれる保持ノードの代表ノード装置のＩＰアドレスが、リクエストメッセージを受信したプライベートヒントサーバが接続する上位機器群、または、下位機器群のＩＰアドレス範囲に含まれるか否かが判定される。保持ノードにおける代表ノード装置のＩＰアドレスが担当範囲内であると判定されたとき、ステップＳ３０４が実行される。代表ノード装置のＩＰアドレスが担当範囲内であると判定されなかったとき、ステップＳ３０５が実行される。
【０１１１】
ステップＳ３０４では、プライベートヒントサーバが記憶しているトポロジー情報に基づいて、保持ノードの代表ノード装置と、ユーザノードの代表ノード装置とのネットワーク距離が決定される。決定されたネットワーク距離は、ＲＡＭ１８の所定の記憶領域に一時記憶される。
【０１１２】
ステップＳ３０５では、ステップＳ３０２でリクエストメッセージを受信したプライベートヒントサーバに、上位機器群が存在するか否かが判定される。ステップＳ３０２でリクエストメッセージを受信したプライベートヒントサーバが下位機器群に接続する場合、上位機器群が存在すると判定される。ステップＳ３０２でリクエストメッセージを受信したプライベートヒントサーバが下位機器群以外に接続する場合、上位機器群が存在しないと判定される。上位機器群が存在すると判定される場合、ステップＳ３０６が実行される。上位機器群が存在しないと判定された場合、ステップＳ３０７が実行される。
【０１１３】
ステップＳ３０６では、上位機器群のプライベートヒントサーバへリクエストメッセージが転送される。
【０１１４】
ステップＳ３０７では、ヒントサーバ１０へリクエストメッセージが転送される。
【０１１５】
ステップＳ３０８では、ステップＳ３０６でリクエストメッセージを転送した上位機器群のプライベートヒントサーバ、または、ヒントサーバ１０から、ネットワーク距離が受信される。受信されるネットワーク距離は、ステップＳ３０６，または、ステップＳ３０７で要求したネットワーク距離である。受信されたネットワーク距離は、ＲＡＭ１８の所定の記憶領域に一時記憶される。
【０１１６】
ステップＳ３０９では、ステップＳ３０４で決定されたネットワーク距離、または、ステップＳ３０８で受信したネットワーク距離が、ステップＳ３０２でネットワーク距離をリクエストした代表ノード装置、または、下位機器群に接続されるプライベートヒントサーバへ送信される。
【０１１７】
変形例では、各上位機器群、または、下位機器群ごとに、プライベートヒントサーバが設置され、ヒントサーバ１０が保存するトポロジー情報が分散して保存されている。この結果、プライベートヒントサーバが各上位機器群、または、下位機器群に設置されるため、各機器群のトポロジー情報をできる限り、外部へ公開することを防ぐことができると共に、ヒントサーバ１０へのアクセス負荷をプライベートヒントサーバに分散させることができる。
【０１１８】
また、上記実施形態においては、オーバーレイネットワークＯＬに、ＤＨＴを利用したピアツーピアネットワークを適用したが、これに限られるものではない。ＤＨＴを利用したルーティングテーブルが用いられても良い。例えば、他のオーバーレイネットワークを用いたシステムが適用されてもよい。ＤＨＴを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。
【符号の説明】
【０１１９】
１  ＣＰＵ
２  ＨＤＤ
３  ＲＡＭ
４  デコーダ部
５  映像処理部
６  ディスプレイ
７  音声処理部
８  スピーカ
９  通信部
１０  ヒントサーバ
１１ａ、１１ｂ、１１ｃ、１１ｄ、１１ｅ  プライベートヒントサーバ
１３ａ、１３ｂ、１３ｃ  上位機器群
１４ａ、１４ｂ  下位機器群
１５  局舎モデム
１６  ＣＰＵ
１７  ＨＤＤ
１８  ＲＡＭ
１９  通信部
２１  プログラム記憶領域
２２  メイン処理動作プログラム記憶領域
２３  代表ノード処理プログラム記憶領域
３１  代表ノード情報一時記憶領域
３２  距離情報一時記憶領域
３３  保持ノード情報一時記憶領域  
１７１  プログラム記憶領域
１７２  ヒントサーバメイン動作処理プログラム記憶領域
Ｓ  分散保存システム
Ｘ  ＩＸ
ＮＷ  ネットワーク
ＯＬ  オーバーレイネットワーク
ＢＲ  ブロードバンドルータ
Ｎｎ  ノード装置
【図１】
0005494361.tif 000002
【図２】
0005494361.tif 000003
【図３】
0005494361.tif 000004
【図４】
0005494361.tif 000005
【図５】
0005494361.tif 000006
【図６】
0005494361.tif 000007
【図７】
0005494361.tif 000008
【図８】
0005494361.tif 000009
【図９】
0005494361.tif 000010