(57)【要約】      （修正有）【課題】ネットワーク上で同一の範囲に接続するノード装置からなるグループ内での通信を可能とする。【解決手段】ノード装置がオーバーレイネットワークに参加するための情報の要求を示す要求メッセージをノード装置から受信する第１受信手段と、要求メッセージを送信してきたノード装置の接続先のネットワークの範囲を示す範囲情報を取得する取得手段と、要求メッセージを送信してきたノード装置が所属するグループの識別情報を生成する生成手段と、生成された識別情報を要求メッセージを送信してきたノード装置に送信する第２送信手段とを備える第１の情報処理装置と、要求メッセージを第１の情報処理装置に送信する第１送信手段と、第１の情報処理装置から識別情報を受信する第２受信手段と、取得された範囲情報が示すネットワークの範囲に接続する複数のノード装置間で情報通信が行われるオーバーレイネットワークに参加する参加手段とを備えるノード装置。【選択図】図２
2011211543.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムであって、
前記ノード装置がオーバーレイネットワークに参加するための情報の要求を示す要求メッセージを、前記複数のノード装置の何れかのノード装置から受信する第１受信手段と、
前記要求メッセージを送信してきた前記ノード装置の接続先のネットワークの範囲を示す範囲情報を取得する取得手段と、
前記取得手段により取得された前記範囲情報に基づいて、前記要求メッセージを送信してきた前記ノード装置が所属するグループの識別情報を生成する生成手段と、
前記生成手段により生成された前記識別情報を、前記要求メッセージを送信してきた前記ノード装置に送信する第２送信手段と、
を備える第１の情報処理装置と、
前記要求メッセージを前記第１の情報処理装置に送信する第１送信手段と、
前記第１の情報処理装置から送信された前記識別情報を受信する第２受信手段と、
前記第２受信手段により受信された前記識別情報に基づいて、前記取得手段により取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加する参加手段と、
を備える前記ノード装置と、
を備えることを特徴とする情報通信システム。
【請求項２】
ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムであって、
前記ノード装置は、
接続先のネットワークの範囲を示す範囲情報を取得する取得手段と、
前記取得手段により取得された前記範囲情報に基づいて、前記ノード装置が所属するグループの識別情報を生成する生成手段と、
前記生成手段により生成された前記識別情報に基づいて、前記取得手段により取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加する参加手段と、
を備えることを特徴とする情報通信システム。
【請求項３】
前記情報通信システムは、前記ノード装置との情報通信が可能な第２の情報処理装置を更に備え、
前記第２の情報処理装置は、
前記ノード装置のアドレス情報を、当該ノード装置が所属するグループの識別情報に対応付けて記憶する第１記憶手段と、
前記ノード装置から送信された前記識別情報を受信する第３受信手段と、
前記第３受信手段により受信された前記識別情報に対応付けて前記第１記憶手段に記憶されている前記アドレス情報を、当該識別情報を送信してきた前記ノード装置に送信する第４送信手段と、
を備え、
前記ノード装置は、
前記生成手段により生成された前記識別情報を前記第２の情報処理装置へ送信する第３送信手段と、
前記第２の情報処理装置から送信された前記アドレス情報を受信する第４受信手段と、
を備え、
前記参加手段は、前記第４受信手段により受信された前記アドレス情報と、前記生成手段により生成された前記識別情報と、に基づいて、前記取得手段により取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加することを特徴とする請求項１または請求項２に記載の情報通信システム。
【請求項４】
前記ノード装置の前記参加手段は、
前記生成手段により生成された前記識別情報と、オーバーレイネットワークへ参加する前記ノード装置の前記アドレス情報と、を含む参加メッセージを、前記第４受信手段により受信された前記アドレス情報が示す前記ノード装置に送信する第５送信手段と、
他の前記ノード装置から送信された応答メッセージを受信する第６受信手段と、
前記第６受信手段により受信された前記応答メッセージに含まれる前記アドレス情報を、前記生成手段により生成された前記識別情報に対応付けて記憶する第２記憶手段と、を備え、
前記ノード装置は、
他の前記ノード装置から送信された前記参加メッセージを受信する第５受信手段と、
前記第５受信手段により受信された前記参加メッセージに含まれる前記識別情報に対応付けて前記第２記憶手段に記憶されている前記アドレス情報を含む前記応答メッセージを、当該参加メッセージを送信してきた前記ノード装置に送信する第６送信手段と、
を更に備え、
前記ノード装置の前記第２記憶手段は、前記第５受信手段により受信された前記参加メッセージに含まれる前記アドレス情報を、当該参加メッセージに含まれる前記識別情報に対応付けて記憶することを特徴とする請求項３に記載の情報通信システム。
【請求項５】
前記ノード装置の前記第３送信手段は、前記生成手段により生成された前記識別情報と、前記ノード装置の前記アドレス情報と、を前記第２の情報処理装置へ送信し、
前記第２の情報処理装置の前記第３受信手段は、前記ノード装置から送信された前記識別情報と前記アドレス情報とを受信し、
前記第２の情報処理装置の前記第１記憶手段は、前記第３受信手段により受信された前記アドレス情報を、前記第３受信手段により受信された前記識別情報に対応付けて記憶し、
前記第２の情報処理装置の前記第４送信手段は、前記第３受信手段により受信された前記識別情報に対応付けて前記第１記憶手段に記憶されている前記アドレス情報のうち、当該識別情報とともに受信された前記アドレス情報と異なる前記アドレス情報を送信することを特徴とする請求項４に記載の情報通信システム。
【請求項６】
前記ノード装置の前記参加手段は、前記参加メッセージを、前記第２記憶手段により記憶された前記アドレス情報が示す前記ノード装置へ周期的に送信することを特徴とする請求項４または請求項５に記載の情報通信システム。
【請求項７】
前記第２の情報処理装置は、前記第１記憶手段により記憶された前記アドレス情報に対応付けられる前記識別情報が示すグループの情報を管理する前記ノード装置であり、
前記ノード装置の前記第３送信手段は、前記生成手段により生成された前記識別情報を、当該識別情報が示すグループの情報を管理する前記ノード装置に送信することを特徴とする請求項３乃至６の何れか１項に記載の情報通信システム。
【請求項８】
前記取得手段は、ネットワーク間で送受信される情報を中継する通信機器が、前記ノード装置により送信された情報を中継するときに当該情報に設定する当該通信機器のアドレス情報を、前記範囲情報として取得することを特徴とする請求項１乃至７の何れか１項に記載の情報通信システム。
【請求項９】
前記取得手段は、前記ノード装置が属するドメインを示すドメイン情報を、前記範囲情報として取得することを特徴とする請求項１乃至８の何れか１項に記載の情報通信システム。
【請求項１０】
接続先のネットワークの範囲が複数存在する場合、
前記取得手段は、前記範囲情報を複数取得し、
前記生成手段は、前記取得手段により取得された複数の前記範囲情報それぞれに対応する前記識別情報を生成し、
前記ノード装置の前記参加手段は、前記生成手段により生成された複数の前記識別情報それぞれに対応するオーバーレイネットワークに参加し、
前記ノード装置は、
情報通信を行うオーバーレイネットワークを、所定の条件に基づいて切り換える切替手段を更に備えることを特徴とする請求項１乃至９の何れか１項に記載の情報通信システム。
【請求項１１】
ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムにおける情報処理装置であって、
前記ノード装置の接続先のネットワークの範囲を示す範囲情報を取得する取得手段と、
前記取得手段により取得された前記範囲情報に基づいて、前記ノード装置が所属するグループの識別情報を生成する生成手段と、
を備えることを特徴とする情報処理装置。
【請求項１２】
ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムであって、情報処理装置と前記複数のノード装置とを備える情報通信システムにおける情報処理方法において、
前記情報処理装置が、前記ノード装置がオーバーレイネットワークに参加するための情報の要求を示す要求メッセージを、前記複数のノード装置の何れかのノード装置から受信する第１受信工程と、
前記情報処理装置が、前記要求メッセージを送信してきた前記ノード装置の接続先のネットワークの範囲を示す範囲情報を取得する取得工程と、
前記情報処理装置が、前記取得工程において取得された前記範囲情報に基づいて、前記要求メッセージを送信してきた前記ノード装置が所属するグループの識別情報を生成する生成工程と、
前記情報処理装置が、前記生成工程において生成された前記識別情報を、前記要求メッセージを送信してきた前記ノード装置に送信する第２送信工程と、
前記ノード装置が、前記要求メッセージを前記情報処理装置に送信する第１送信工程と、
前記ノード装置が、前記情報処理装置から送信された前記識別情報を受信する第２受信工程と、
前記ノード装置が、前記第２受信工程において受信された前記識別情報に基づいて、前記取得工程において取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加する参加工程と、
を含むことを特徴とする情報処理方法。
【請求項１３】
ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムにおける情報処理方法であって、
前記ノード装置が、接続先のネットワークの範囲を示す範囲情報を取得する取得工程と、
前記ノード装置が、前記取得工程において取得された前記範囲情報に基づいて、前記ノード装置が所属するグループの識別情報を生成する生成工程と、
前記ノード装置が、前記生成工程において生成された前記識別情報に基づいて、前記取得工程において取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加する参加工程と、
を含むことを特徴とする情報処理方法。
【請求項１４】
ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムにおける情報処理装置に含まれるコンピュータに、
前記ノード装置の接続先のネットワークの範囲を示す範囲情報を取得する取得ステップと、
前記取得ステップにおいて取得された前記範囲情報に基づいて、前記ノード装置が所属するグループの識別情報を生成する生成ステップと、
を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））方式の通信システムの技術分野に関する。
【背景技術】
【０００２】
近年、ピアツーピア方式の通信システムが注目されている。このピアツーピア方式の通信システムに関し、特許文献１には、効率的に通信を行うことを目的の１つとする方法が開示されている。具体的には、各ノード装置（ピア）が、他のノード装置とのネットワーク上の距離に基づいて、複数のノード装置をグループ分けする。そして、或るノード装置が情報を発信したり中継したりする場合、各グループの代表のノード装置に情報を送信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００４／０３０２７３号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ピアツーピア方式の通信システムにおいては、物理的なネットワーク上に、論理的なネットワークであるオーバーレイネットワークが構築される。そして、物理的なネットワークは、例えば、ＬＡＮ（Local Area Network）やアクセスネットワーク等の複数のネットワークが相互接続することにより構成されている場合がある。しかしながら、特許文献１に記載の方法によるグループ分けには、このような事情は考慮されていない。そのため、例えば、同一のネットワーク内で通信ができるにもかかわらず、ネットワーク間をまたいで通信が行われる場合がある。そうすると、ノード装置から送信された情報がネットワーク間を接続する通信回線を大量に通過する可能性が高くなる。よって、通信回線の通信路の帯域幅が小さいと、ネットワーク間で情報の送受信が十分に行えなくなる場合がある。
【０００５】
そこで、本発明は、以上の点に鑑みてなされたものである。本発明は、ネットワーク上で同一の範囲に接続するノード装置からなるグループ内での通信を可能とする情報通信システム、情報処理装置、情報通信方法、及び情報通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムであって、前記ノード装置がオーバーレイネットワークに参加するための情報の要求を示す要求メッセージを、前記複数のノード装置の何れかのノード装置から受信する第１受信手段と、前記要求メッセージを送信してきた前記ノード装置の接続先のネットワークの範囲を示す範囲情報を取得する取得手段と、前記取得手段により取得された前記範囲情報に基づいて、前記要求メッセージを送信してきた前記ノード装置が所属するグループの識別情報を生成する生成手段と、前記生成手段により生成された前記識別情報を、前記要求メッセージを送信してきた前記ノード装置に送信する第２送信手段と、を備える第１の情報処理装置と、前記要求メッセージを前記第１の情報処理装置に送信する第１送信手段と、前記第１の情報処理装置から送信された前記識別情報を受信する第２受信手段と、前記第２受信手段により受信された前記識別情報に基づいて、前記取得手段により取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加する参加手段と、を備える前記ノード装置と、を備えることを特徴とする。
【０００７】
この発明によれば、ノード装置は、所属するグループに対応するオーバーレイネットワークを介して、ネットワーク上で同一の範囲に接続する他のノード装置と通信することができる。
【０００８】
請求項２に記載の発明は、ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムであって、前記ノード装置は、接続先のネットワークの範囲を示す範囲情報を取得する取得手段と、前記取得手段により取得された前記範囲情報に基づいて、前記ノード装置が所属するグループの識別情報を生成する生成手段と、前記生成手段により生成された前記識別情報に基づいて、前記取得手段により取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加する参加手段と、を備えることを特徴とする。
【０００９】
この発明によれば、ノード装置は、所属するグループに対応するオーバーレイネットワークを介して、ネットワーク上で同一の範囲に接続する他のノード装置と通信することができる。
【００１０】
請求項３に記載の発明は、前記情報通信システムは、前記ノード装置との情報通信が可能な第２の情報処理装置を更に備え、前記第２の情報処理装置は、前記ノード装置のアドレス情報を、当該ノード装置が所属するグループの識別情報に対応付けて記憶する第１記憶手段と、前記ノード装置から送信された前記識別情報を受信する第３受信手段と、前記第３受信手段により受信された前記識別情報に対応付けて前記第１記憶手段に記憶されている前記アドレス情報を、当該識別情報を送信してきた前記ノード装置に送信する第４送信手段と、を備え、前記ノード装置は、前記生成手段により生成された前記識別情報を前記第２の情報処理装置へ送信する第３送信手段と、前記第２の情報処理装置から送信された前記アドレス情報を受信する第４受信手段と、を備え、前記参加手段は、前記第４受信手段により受信された前記アドレス情報と、前記生成手段により生成された前記識別情報と、に基づいて、前記取得手段により取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加することを特徴とする。
【００１１】
この発明によれば、ノード装置は、同一のグループに所属するノード装置のアドレス情報を取得することができる。よって、ノード装置は、取得されたアドレス情報を用いて同一のグループに所属するノード装置と通信することにより、オーバーレイネットワークに参加することができる。
【００１２】
請求項４に記載の発明は、前記ノード装置の前記参加手段は、前記生成手段により生成された前記識別情報と、オーバーレイネットワークへ参加する前記ノード装置の前記アドレス情報と、を含む参加メッセージを、前記第４受信手段により受信された前記アドレス情報が示す前記ノード装置に送信する第５送信手段と、他の前記ノード装置から送信された応答メッセージを受信する第６受信手段と、前記第６受信手段により受信された前記応答メッセージに含まれる前記アドレス情報を、前記生成手段により生成された前記識別情報に対応付けて記憶する第２記憶手段と、を備え、前記ノード装置は、他の前記ノード装置から送信された前記参加メッセージを受信する第５受信手段と、前記第５受信手段により受信された前記参加メッセージに含まれる前記識別情報に対応付けて前記第２記憶手段に記憶されている前記アドレス情報を含む前記応答メッセージを、当該参加メッセージを送信してきた前記ノード装置に送信する第６送信手段と、を更に備え、前記ノード装置の前記第２記憶手段は、前記第５受信手段により受信された前記参加メッセージに含まれる前記アドレス情報を、当該参加メッセージに含まれる前記識別情報に対応付けて記憶することを特徴とする。
【００１３】
この発明によれば、同一のグループに所属する複数のノード装置間で、当該グループに所属するノード装置のアドレス情報が交換される。そして、交換されたアドレス情報が、グループ内において情報の送信先を示す情報として、それぞれのノード装置により記憶される。このようにして、ネットワーク上で同一の範囲に接続する複数のノード装置間で情報通信を行うことができるオーバーレイネットワークを生成することができる。
【００１４】
請求項５に記載の発明は、前記ノード装置の前記第３送信手段は、前記生成手段により生成された前記識別情報と、前記ノード装置の前記アドレス情報と、を前記第２の情報処理装置へ送信し、前記第２の情報処理装置の前記第３受信手段は、前記ノード装置から送信された前記識別情報と前記アドレス情報とを受信し、前記第２の情報処理装置の前記第１記憶手段は、前記第３受信手段により受信された前記アドレス情報を、前記第３受信手段により受信された前記識別情報に対応付けて記憶し、前記第２の情報処理装置の前記第４送信手段は、前記第３受信手段により受信された前記識別情報に対応付けて前記第１記憶手段に記憶されている前記アドレス情報のうち、当該識別情報とともに受信された前記アドレス情報と異なる前記アドレス情報を送信することを特徴とする。
【００１５】
この発明によれば、オーバーレイネットワークに参加しようとするノード装置は、現在オーバーレイネットワークに参加しているノード装置のアドレス情報を第２の情報処理装置から取得することができる。よって、オーバーレイネットワークを介して安定した通信を行うことができる。
【００１６】
請求項６に記載の発明は、前記参加メッセージを、前記第２記憶手段により記憶された前記アドレス情報が示す前記ノード装置へ周期的に送信することを特徴とする。
【００１７】
ノード装置がオーバーレイネットワークに参加した時点では、そのオーバーレイネットワークに現在参加している他のノード装置が存在しない場合がある。また、そのオーバーレイネットワークに現在参加している他のノード装置の数が少なかったりする場合がある。この発明によれば、このような場合であっても、ノード装置が参加メッセージを再度送信するまでに新たなノード装置がオーバーレイネットワークに参加していれば、参加したノード装置のアドレス情報を取得することができる。よって、十分な数のアドレス情報を用いて、オーバーレイネットワークを介した通信を安定して行うことができる。
【００１８】
請求項７に記載の発明は、前記第２の情報処理装置は、前記第１記憶手段により記憶された前記アドレス情報に対応付けられる前記識別情報が示すグループの情報を管理する前記ノード装置であり、前記ノード装置の前記第３送信手段は、前記生成手段により生成された前記識別情報を、当該識別情報が示すグループの情報を管理する前記ノード装置に送信することを特徴とする。
【００１９】
この発明によれば、複数のグループの情報を管理する負担を、複数のノード装置に分散させることができる。
【００２０】
請求項８に記載の発明は、前記取得手段は、ネットワーク間で送受信される情報を中継する通信機器が、前記ノード装置により送信された情報を中継するときに当該情報に設定する当該通信機器のアドレス情報を、前記範囲情報として取得することを特徴とする。
【００２１】
この発明によれば、ネットワーク間を接続する通信回線を通過する情報の量及び通信機器により中継される情報の量がオーバーレイネットワークを介した通信によって多くなることを防止することができる。また、通信機器によるアドレス情報の書き換えによりネットワーク間のピアツーピア方式による通信が困難であっても、ネットワーク内で通信することができる。
【００２２】
請求項９に記載の発明は、前記取得手段は、前記ノード装置が属するドメインを示すドメイン情報を、前記範囲情報として取得することを特徴とする。
【００２３】
この発明によれば、同一のドメインに属するノード装置により構成されるネットワークの範囲を、ノード装置が接続するネットワークの範囲とする。そのため、ドメインの単位でノード装置をグループ化して、オーバーレイネットワークを生成することができる。
【００２４】
請求項１０に記載の発明は、接続先のネットワークの範囲が複数存在する場合、前記取得手段は、前記範囲情報を複数取得し、前記生成手段は、前記取得手段により取得された複数の前記範囲情報それぞれに対応する前記識別情報を生成し、前記ノード装置の前記参加手段は、前記生成手段により生成された複数の前記識別情報それぞれに対応するオーバーレイネットワークに参加し、前記ノード装置は、情報通信を行うオーバーレイネットワークを、所定の条件に基づいて切り換える切替手段を更に備えることを特徴とする。
【００２５】
この発明によれば、条件に適したオーバーレイネットワークを介して通信を行うことにより、より効率的な通信を行うことができる。
【００２６】
請求項１１に記載の発明は、ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムにおける情報処理装置であって、前記ノード装置の接続先のネットワークの範囲を示す範囲情報を取得する取得手段と、前記取得手段により取得された前記範囲情報に基づいて、前記ノード装置が所属するグループの識別情報を生成する生成手段と、を備えることを特徴とする。
【００２７】
請求項１２に記載の発明は、ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムであって、情報処理装置と前記複数のノード装置とを備える情報通信システムにおける情報処理方法において、前記情報処理装置が、前記ノード装置がオーバーレイネットワークに参加するための情報の要求を示す要求メッセージを、前記複数のノード装置の何れかのノード装置から受信する第１受信工程と、前記情報処理装置が、前記要求メッセージを送信してきた前記ノード装置の接続先のネットワークの範囲を示す範囲情報を取得する取得工程と、前記情報処理装置が、前記取得工程において取得された前記範囲情報に基づいて、前記要求メッセージを送信してきた前記ノード装置が所属するグループの識別情報を生成する生成工程と、前記情報処理装置が、前記生成工程において生成された前記識別情報を、前記要求メッセージを送信してきた前記ノード装置に送信する第２送信工程と、前記ノード装置が、前記要求メッセージを前記情報処理装置に送信する第１送信工程と、前記ノード装置が、前記情報処理装置から送信された前記識別情報を受信する第２受信工程と、前記ノード装置が、前記第２受信工程において受信された前記識別情報に基づいて、前記取得工程において取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加する参加工程と、を含むことを特徴とする。
【００２８】
請求項１３に記載の発明は、ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムにおける情報処理方法であって、前記ノード装置が、接続先のネットワークの範囲を示す範囲情報を取得する取得工程と、前記ノード装置が、前記取得工程において取得された前記範囲情報に基づいて、前記ノード装置が所属するグループの識別情報を生成する生成工程と、前記ノード装置が、前記生成工程において生成された前記識別情報に基づいて、前記取得工程において取得された前記範囲情報が示すネットワークの範囲に接続する複数の前記ノード装置間で情報通信が行われるオーバーレイネットワークに参加する参加工程と、を含むことを特徴とする。
【００２９】
請求項１４に記載の発明は、ネットワークに接続する複数のノード装置間で情報通信を行うためのオーバーレイネットワークを生成する情報通信システムにおける前記ノード装置に含まれるコンピュータに、前記ノード装置の接続先のネットワークの範囲を示す範囲情報を取得する取得ステップと、前記取得ステップにおいて取得された前記範囲情報に基づいて、前記ノード装置が所属するグループの識別情報を生成する生成ステップと、を実行させることを特徴とする。
【発明の効果】
【００３０】
本発明によれば、ノード装置は、所属するグループに対応するオーバーレイネットワークを介して、ネットワーク上で同一の範囲に接続する他のノード装置と通信することができる。
【図面の簡単な説明】
【００３１】
【図１】一実施形態におけるコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【図２】一実施形態におけるコンテンツ分散システムＳにおいて、ノードＮｎがグループＰ２Ｐネットワークに参加する場合の動作概要の一例を示す図である。
【図３】センターサーバＳＡの概要構成例を示す図である。
【図４】ノードＮｎの概要構成例を示す図である。
【図５】一実施形態におけるノードＮｎの制御部２１のルーティングテーブル監視処理における処理例を示すフローチャートである。
【図６】一実施形態におけるノードＮｎの制御部２１のＰ２Ｐグループ参加処理における処理例を示すフローチャートである。
【図７】（ａ）は、一実施形態におけるノードＮｎの制御部２１の参加要求メッセージ受信処理における処理例を示すフローチャートであり、（ｂ）は、一実施形態におけるノードＮｎの制御部２１のコンタクトノード要求メッセージ受信処理における処理例を示すフローチャートである。
【図８】（ａ）は、一実施形態におけるノードＮｎの制御部２１のグループ情報通知メッセージ受信処理における処理例を示すフローチャートであり、（ｂ）は、一実施形態におけるノードＮｎの制御部２１のノード情報通知メッセージ受信処理における処理例を示すフローチャートである。
【発明を実施するための形態】
【００３２】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【００３３】
［１．コンテンツ分散保存システムの概要構成］
始めに、図１を参照して、本実施形態におけるコンテンツ分散保存システムの概要構成について説明する。図１は、本実施形態におけるコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【００３４】
図１に示すように、コンテンツ分散保存システムＳは、複数のノード装置Ｎｎがネットワーク５を介して接続されることで構成される。ネットワーク５は、現実世界の通信ネットワークである。例えば、ネットワーク５は、インターネット等である。このネットワーク５は、複数の物理的なネットワークにより構成されている。物理的なネットワークとしては、例えば、ＩＳＰネットワークｍ（ｍ＝１，２，３の何れか）、及びＷＡＮ（Wide Area Network）４等がある。各ＩＳＰネットワークは、例えば、ＩＳＰ（Internet Service Provider）がインターネット接続サービス等を提供するために構築したアクセスネットワークである。各ＩＳＰネットワークｍは、例えば、電話回線や光ファイバー等により構成されている。各ＩＳＰネットワークｍは、ＩＳＰネットワークｍとネットワーク５との間で送受信される情報を中継するルータＲＴｍを含む。各ルータＲＴｍは、例えば、ＬＳＮ（Large Scale NAT（Network Address Translator））機能を有するルータである。なお、ルータＲＴｍは、本発明の通信機器の一例である。各ＩＳＰネットワークｍは、ＩＳＰネットワークｍ内で情報を中継するためのルータを１または複数有しても良い。
【００３５】
各ノード装置Ｎｎ（ｎ＝１，２，３・・・の何れか）は、ネットワーク５を構成するＩＳＰネットワークｍ、ＷＡＮ４等に接続されている。以下、ノード装置を、「ノード」という。各ノードＮｎには、固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。そして、本実施形態におけるコンテンツ分散保存システムＳは、これらのノードＮｎのうち、何れか複数のノードＮｎの接続により形成されるピアツーピア方式のネットワークシステムとなっている。
【００３６】
なお、ＩＳＰネットワークｍが、複数のアクセスネットワークを含んでいても良い。以下、ＩＳＰネットワークｍに含まれる各アクセスネットワークを、「ＬＳＮネットワーク」という。ＬＳＮネットワークは、ＬＳＮネットワークとＩＳＰネットワークｍとの間で送受信される情報を中継するＬＳＮ機能を有するルータを含む。また、ＬＡＮが、ＮＡＴ機能を有するルータを介して、ＷＡＮ４、ＩＳＰネットワークｍ、またはＬＳＮネットワークに接続されても良い。
【００３７】
［２．グループＰ２Ｐネットワークの概要］
コンテンツ分散システムＳにおいては、ノードＮｎが接続するネットワークの範囲に応じて、各ノードが複数のグループに所属する。そして、コンテンツ分散システムＳは、グループ内のノードＮｎ間で情報通信するためのピアツーピア方式の通信ネットワークとして、グループＰ２Ｐネットワークを複数生成する。グループＰ２Ｐネットワークは、物理的なネットワーク上に生成される論理的なオーバーレイネットワークである。ノードＮｎが接続するネットワークの範囲とは、ノードＮｎが、ネットワーク５上において、どの範囲に接続するかを示す。各ノードＮｎは、所属しているグループに対応するグループＰ２Ｐネットワークに参加する。そして、グループＰ２Ｐネットワークは、同一のグループに所属するノードＮｎのうち、何れか複数のノードＮｎの参加により生成される。ここで、グループＰ２Ｐネットワークへの参加とは、ノードＮｎがグループＰ２Ｐネットワークに接続されて、グループＰ２Ｐネットワークからコンテンツデータを取得可能な状態になることをいう。各グループには、それぞれ固有の識別情報であるグループＩＤが割り当てられる。また、グループＩＤは、グループＰ２Ｐネットワークを識別するための情報でもある。そして、グループＩＤは、ノードＮｎが、グループＰ２Ｐネットワークに参加し、グループＰ２Ｐネットワークに参加する他のノードＮｎと情報通信するための情報である。なお、グループＩＤは、本発明の識別情報の一例である。ネットワークの範囲及びグループＩＤの詳細については後述する。
【００３８】
各グループＰ２Ｐネットワークは、特定のアルゴリズム、例えば、ＤＨＴ（Distributed Hash Table）を利用したアルゴリズムにより実現される。そして、コンテンツ配信システムＳに接続されている各ノードには、所定桁数からなる固有の識別情報であるノードＩＤが割り当てられている。ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を共通のハッシュ関数によりハッシュ化した値である。
【００３９】
また、各ノードＮｎは、夫々、ＤＨＴ（Distributed Hash Table）を用いたルーティングテーブルを保持している。このルーティングテーブルは、グループＰ２Ｐネットワークにおける各種メッセージの転送先を規定している。具体的に、このルーティングテーブルには、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報が複数登録されている。ＩＰアドレスは、本発明のアドレス情報の一例である。ルーティングテーブルは、ノードＮｎが所属するグループ毎に作成される。そのため、各ノードＮｎにおいて、グループ情報一覧が作成される。グループ情報一覧は、複数のグループ情報が登録されるリスト形式のデータ構造である。各グループ情報は、ルーティングテーブルとグループＩＤとを含む。このようにして、グループ毎のルーティングテーブルが、グループＩＤと対応付けて保持される。グループＰ２Ｐネットワークに接続している１台のノードＮｎは、必要最低限のノードＮｎのノード情報をルーティングテーブルとして記憶している。各ノードＮｎ間で互いに各種メッセージが転送されることで、ノード情報を記憶していないノードＮｎについてのノード情報が取得される。このようなＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００４０】
コンテンツ分散保存システムＳは、内容の異なる様々なコンテンツデータのレプリカを所定のファイル形式で複数のノードＮｎに分散して保存する。以下、コンテンツデータを、「コンテンツ」という。そして、各ノードＮｎ間でレプリカが利用可能になっている。各コンテンツのオリジナルは、ＷＡＮ４に接続されているセンターサーバＳＡに保存されている。以下、コンテンツのレプリカが保存されるノードＮｎは、「コンテンツ保持ノード」という。以下の説明においては、オリジナルのコンテンツとレプリカとを特に区別することなく、コンテンツと称する。上述のコンテンツには、夫々、コンテンツ名及びコンテンツ毎に固有の識別情報であるコンテンツＩＤ等の情報が付加されている。
【００４１】
分散保存されているコンテンツの所在は、インデックス情報として、コンテンツの所在を管理（記憶）しているノードＮｎ等により記憶される。以下、コンテンツの所在を管理（記憶）しているノードＮｎを、「コンテンツルートノード」という。インデックス情報は、レプリカを保存したノードＮｎのノード情報と、コンテンツのコンテンツＩＤと等の組を含む。インデックス情報は、ノードＮｎが所属するグループ毎に必要となる。そのため、各ノードＮｎにおいて、グループ毎のインデックス情報が、それぞれグループＩＤと対応付けて記憶される。このようなコンテンツルートノードは、例えば、コンテンツＩＤと最も近いノードＩＤを有するノードＮｎであるように定められる。コンテンツＩＤと最も近いノードＩＤとは、例えば、コンテンツＩＤと上位桁がより多く一致するノードＩＤである。
【００４２】
そして、或るノードＮｎのユーザが、所望するコンテンツを取得したい場合、このコンテンツの取得を望むノードＮｎは、メッセージを生成する。以下、ユーザによりコンテンツの取得を望むノードＮｎを、「ユーザノード」という。このメッセージは、取得を望むコンテンツのコンテンツＩＤ、ユーザノードのノード情報、コンテンツを取得するグループＰ２Ｐネットワークに対応するグループのグループＩＤ等を含む検索要求メッセージである。検索要求メッセージは、コンテンツ保持ノードを検索するためのメッセージでもる。上述の検索要求メッセージが、ユーザノードが記憶するＤＨＴのルーティングテーブルに従って、他のノードＮｎに対して送出される。つまり、ユーザノードは、検索要求メッセージを、コンテンツルートノードに向けて送出する。このときに用いられるルーティングテーブルは、検索要求メッセージに含まれるグループＩＤに対応するルーティングテーブルである。検索要求メッセージを受信したノードＮｎが検索要求メッセージを転送するとき、ノードＮｎは、検索要求メッセージに含まれるグループＩＤに対応するルーティングテーブルを用いる。これにより、検索要求メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にコンテンツルートノードに到達することになる。
【００４３】
上記検索要求メッセージを受信したコンテンツルートノードは、これに含まれるコンテンツＩＤに対応するインデックス情報をインデックス情報キャッシュから取得する。このときに用いられるインデックス情報は、検索要求メッセージに含まれるグループＩＤに対応するインデックス情報である。そして、コンテンツルートノードは、取得したインデックス情報を含む検索応答メッセージを、検索要求メッセージの送信元であるユーザノードに対して返信する。インデックス情報を取得したユーザノードは、インデックス情報に含まれるコンテンツ保持ノードのＩＰアドレス及びポート番号等に基づいて、コンテンツ要求メッセージをコンテンツ保持ノードに送信する。コンテンツ要求メッセージには、取得を望むコンテンツのコンテンツＩＤが含まれている。コンテンツ要求メッセージを受信したコンテンツ保持ノードは、コンテンツ要求メッセージに含まれるコンテンツＩＤに対応するコンテンツを、コンテンツキャッシュエリアから取得する。そして、コンテンツ保持ノードは、取得したコンテンツを含むコンテンツ要求応答メッセージをユーザノードに送信する。このようにして、ユーザノードは、コンテンツをダウンロード（取得）することが可能になる。
【００４４】
また、ユーザノードは、コンテンツ保持ノードからコンテンツを取得して保存したとき、保存したユーザノードは、パブリッシュメッセージを生成する。パブリッシュメッセージは、コンテンツを保存したことをコンテンツルートノードへ知らせるためのメッセージである。パブリッシュメッセージは、コンテンツのコンテンツＩＤ、コンテンツを保存したノードＮｎのノード情報、及びノードＮｎが所属するグループのグループＩＤ等を含む。パブリッシュメッセージは、コンテンツルートノードに向けて送出される。これにより、パブリッシュメッセージは、検索要求メッセージと同じように、コンテンツＩＤをキーとするＤＨＴルーティングによってコンテンツルートノードに到達することになる。そして、コンテンツルートノードは、パブリッシュメッセージを受信する。コンテンツルートノードは、パブリッシュメッセージに含まれるノード情報及びコンテンツＩＤの組を含むインデックス情報を、パブリッシュメッセージに含まれるグループＩＤに対応するインデックス情報キャッシュ領域に記憶する。こうして、上記ユーザノードは、新たに、上記コンテンツのコンテンツを保持するコンテンツ保持ノードとなる。なお、ノードＮｎが複数のグループに所属する場合、ノードＮｎは、各グループに対応するパブリッシュメッセージを送信する。
【００４５】
［３．ネットワークの範囲及びグループＩＤ］
次に、ノードＮｎが接続するネットワークの範囲及びグループＩＤについて説明する。上述したように、ノードＮｎが接続するネットワークの範囲は、ノードＮｎが、ネットワーク５上において、どの範囲に接続するかを示す。各ノードＮｎは、ＷＡＮ４を介して、ネットワーク５に接続することができる。そこで、ネットワーク５は、コンテンツ分散保存システムＳにおいて、ノードＮｎが接続する最も広いネットワークの範囲となる。このネットワーク５に対応するグループＰ２Ｐネットワークが、図１に示すグローバルＰ２Ｐネットワーク６である。グローバルＰ２Ｐネットワーク６は、全てのノードＮｎが参加可能なグループＰ２Ｐネットワークである。
【００４６】
そして、ネットワーク５を最上位のネットワークの範囲として、ネットワークの範囲が上位階層から下位階層にかけて階層的に分割される。例えば、第２階層においては、ネットワーク５が複数のネットワークの範囲に分割される。また、第３階層においては、第２階層の各ネットワークの範囲が、それぞれ複数のネットワークの範囲に分割される。また、ネットワークの範囲に対応して、複数のノードＮｎが階層的にグループ分けされ、グループＰ２Ｐネットワークも階層的に形成される。なお、説明の便宜上、ＷＡＮ４は、最上位の階層に位置するものとする。
【００４７】
第２階層以下に位置するネットワークの範囲の定め方としては、ＮＡＴを行うルータを介さなくても通信を行うことができる範囲を、ネットワークの範囲と定める方法がある。言い換えれば、ＮＡＴを行うルータを介さなくても通信を行うことができるノードＮｎにより、グループが構成される。ＩＳＰネットワークｍの内部では、ルータＲＴｍを介さなくても通信を行うことができるノードＮｎが存在する。ルータＲＴｍを介さないことにより、ＩＳＰネットワークｍとＷＡＮ４とを接続する通信回線を通過する情報の量、及び、ルータＲＴｍが中継する情報の量が多くなることが防止される。また、ＮＡＴを行うルータを介してのピアツーピア方式の通信は、特別な仕組みを用いないと難しい場合がある。そのような場合であっても、ＩＳＰネットワークｍの内部でピアツーピア方式の通信を行うことができる。そこで、各ＩＳＰネットワークｍを、それぞれ第２階層に位置するネットワークの範囲とする。
【００４８】
また、ＩＳＰネットワークｍに接続する複数のノードＮｎによってグループが構成される。そして、このグループ内の複数のノードＮｎにより、ＩＳＰネットワークｍに対応するグループＰ２Ｐネットワークが形成される。例えば、図１に示すように、グループＰ２Ｐネットワーク７は、ＩＳＰネットワーク１に接続するノードＮｎのうち、グループＰ２Ｐネットワーク７に参加している複数のノードＮｎにより形成されている。また、グループＰ２Ｐネットワーク８は、ＩＳＰネットワーク３に接続するノードＮｎのうち、グループＰ２Ｐネットワーク８に参加している複数のノードＮｎにより形成されている。同一のＩＳＰネットワークｍに接続するノードＮｎ同士が、ＩＳＰネットワークｍに対応するグループＰ２Ｐネットワークにより通信を行うことで、異なるＩＳＰネットワークｍ間で送受信される情報を減らすことができる。これにより、異なるＩＳＰネットワークｍ間の通信による回線の負荷やルータＲＴｍの負荷を減らすことができる。
【００４９】
ＩＳＰネットワークｍが、１または複数のＬＳＮネットワークを含んでいる場合がある。この場合、ＬＳＮネットワークの内部では、ＬＳＮネットワークに接続するノードＮｎは、ＬＳＮネットワークのルータを介さなくても通信を行うことができる。そこで、各ＬＳＮネットワークを、それぞれ第３階層に位置するネットワークの範囲としても良い。この場合、或るＬＳＮネットワークに接続するノードＮｎは、そのＬＳＮネットワークに対応するグループＰ２Ｐネットワークと、そのＬＳＮネットワークの上位階層に位置するＩＳＰネットワークｍに対応するグループＰ２Ｐネットワークと、グローバルＰ２Ｐネットワーク６とに参加することになる。また、ＬＡＮが、ＷＡＮ４、ＩＳＰネットワークｍまたはＬＳＮネットワークに接続されているとする。この場合、ＬＡＮを、接続されているネットワークの下位階層に位置するネットワークの範囲としても良い。
【００５０】
グローバルＰ２Ｐネットワーク６に参加するためのグループＩＤは、ノードＮｎが接続するネットワークの範囲に対応させる必要がある。そして、グループＩＤを生成するために、ネットワークの範囲を示す情報を取得することが必要となる。このネットワークの範囲を示す情報を、「ネットワーク範囲情報」という。なお、ネットワーク範囲情報は、本発明の範囲情報の一例である。ネットワーク範囲情報としては、例えば、ＩＳＰネットワーク、ＬＳＮネットワーク、ＬＡＮ等を識別するための情報が用いられる。具体的には、各ネットワークには、そのネットワークの外部のネットワークとの間で送受信される情報を中継するＮＡＴ機能を有するルータが接続されている。そして、各ルータには、接続するネットワークの外部のネットワークでの通信に用いられるＩＰアドレスが割り当てられている。このＩＰアドレスがネットワーク範囲情報として用いられる。
【００５１】
ルータのＩＰアドレスを取得する方法としては、ノードＮｎが、接続先のネットワークのルータを介するように情報を送信する方法がある。つまり、ノードＮｎが、接続先のネットワークの外部に情報を送信する。これにより、送信された情報のパケットヘッダの送信元ＩＰアドレスは、ルータＲＴｍのＩＰアドレスに書き換えられる。すなわち、ノードＮｎのローカルＩＰアドレスがグローバルＩＰアドレスに書き換えられる。例えば、ＩＳＰネットワークｍに接続するノードＮｎからＷＡＮ４へ送信された情報は、ルータＲＴｍによって中継される。このとき、パケットヘッダの送信元ＩＰアドレスは、ルータＲＴｍによって、ノードＮｎのＩＰアドレスからルータＲＴｍのＷＡＮ４側のＩＰアドレスに書き換えられる。そこで、このようにして送信された情報を、他のノードＮｎが受信することにより、受信された情報のパケットヘッダから、ルータのＩＰアドレスを取得することができる。また、例えば、各ノードＮｎが、ノードＮｎ自身のグローバルＩＰアドレスを予め記憶しておいても良い。
【００５２】
第２階層以下に位置するネットワークの範囲の定め方としては、ノードＮｎが属するドメインを示すドメイン名に基づいて定める方法がある。各ＩＳＰには、それぞれ固有のドメイン名が割り当てられている。ドメイン名は、複数のレベルのドメイン名により構成されている。トップレベルドメイン名は、国名コードに基づく国ドメイン名が割り当てられる場合がある。国ドメイン名としては、例えば、日本を示す「.jp」等がある。国ドメイン名は、ＩＳＰがＩＳＰネットワークｍを設置している国を示している。従って、国ドメイン名は、ノードＮｎが属する国レベルのドメインを示す。そして、国ドメイン名は、ノードＮｎが接続するネットワークの範囲として、ノードＮｎが接続するネットワークが設置されている国を示す。そこで、ノードＮｎが接続するネットワークが設置されている国として、国ドメイン名が示す国を、例えば、第２階層に位置するネットワークの範囲とする。
【００５３】
この場合において、ネットワーク範囲情報は国ドメイン名となる。ドメイン名は、例えば、ＤＮＳ（Domain Name System）により、ノードＮｎのグローバルＩＰアドレスから変換して取得することができる。また、ＩＳＰに割り当てられたドメイン名自体は、ＩＳＰにより構築されたＩＳＰネットワークに対応する。そこで、ノードＮｎが接続するＩＳＰネットワークとして、ドメイン名が示すＩＳＰネットワークを、例えば、第３階層に位置するネットワークの範囲とする。この場合において、ネットワーク範囲情報はＩＳＰに割り当てられたドメイン名となる。なお、ドメイン名及び国ドメイン名は、本発明のドメイン情報の一例である。
【００５４】
また、ネットワークの範囲の定め方として、上記２つの方法を組み合わせても良い。例えば、第２階層に位置するネットワークの範囲を、国ドメイン名から得られる国とする。また、第３階層に位置するネットワークの範囲を、ルータＲＴｍのＩＰアドレスから得られるＩＳＰネットワークｍとする。
【００５５】
また、ネットワークの範囲の定め方として、各ノードＮｎのネットワーク範囲情報を管理するサーバから取得しても良い。
【００５６】
［４．グループＰ２Ｐネットワークの生成、参加］
次に、コンテンツ分散システムＳにおけるグループＰ２Ｐネットワークの生成及び参加の動作概要を説明する。なお、以下に説明する例は、第２階層のネットワークの範囲として、ＩＳＰネットワークｍを適用した場合の例である。
【００５７】
図２は、本実施形態におけるコンテンツ分散システムＳにおいて、ノードＮｎがグループＰ２Ｐネットワークに参加する場合の動作概要の一例を示す図である。例えば、ＩＳＰネットワーク１に接続するノードＮ１が、これからグループＰ２Ｐネットワークに参加するものとする。なお、この時点では、ＩＳＰネットワーク１に対応するグループＰ２Ｐネットワークは生成されていない。
【００５８】
グループＰ２Ｐネットワークへの参加は、これから参加するノードＮｎが、既に参加しているノードＮｎに対して参加要求メッセージを送信することにより行われる。ここで、これからグループＰ２Ｐネットワークへ参加するノードＮｎを、「参加要求ノード」という。また、参加要求メッセージの送信先のノードＮｎを、「コンタクトノード」という。なお、コンタクトノードは、本発明の第１の情報処理装置の一例である。参加要求ノードとしてのノードＮ１は、先ず、グループ情報一覧を作成する。そして、ノードＮ１は、ノード情報が１つも登録されていない空（から）のルーティングテーブルと、最上位のグループのグループＩＤとを含むグループ情報を、最上位のグループに対応するグループ情報として、グループ情報一覧に追加する。（図２（１））。最上位のグループは、ネットワークの範囲としてネットワーク５に対応するグループである。最上位のグループには、全てのノードＮｎが所属する。そして、最上位のグループのグループＩＤは、予め設定されている。
【００５９】
次いで、ノードＮ１は、最上位グループのコンタクトノード、例えば、ノードＮ４に対して参加要求メッセージを送信する（図２（２））。最上位グループのコンタクトノードは、例えば、ネットワーク５に常時接続しているノードＮｎである。ノードＮ１は、参加要求メッセージに、ノードＮ１のノード情報と、最上位グループのグループＩＤを含ませる。なお、参加要求メッセージは、本発明の参加メッセージの一例である。
【００６０】
ノードＮ４は、受信した参加要求メッセージに含まれるグループＩＤに対応するルーティングテーブルに、参加要求メッセージに含まれるノード情報を登録する（図２（３））。また、ノードＮ４は、グループＩＤに対応するルーティングテーブルから、ノードＮ１以外のノードＮｎのノード情報を所定数取得する。そして、ノードＮ４は、取得したノード情報と、最上位グループのグループＩＤとを含むノード情報通知メッセージをノードＮ１に送信する（図２（４））。
【００６１】
ノードＮ１は、受信した参加要求メッセージに含まれる最上位グループのグループＩＤに対応するルーティングテーブルに、参加要求メッセージに含まれるノード情報を登録する（図２（５））。これにより、ノードＮ１によるグローバルＰ２Ｐネットワーク６への参加が完了する。ノードＮ１は、ルーティングテーブルにノード情報が登録されているノードＮｎへメッセージを送信することができる。
【００６２】
一方、ノードＮ４が受信した参加要求メッセージのパケットヘッダの送信元ＩＰアドレスには、ノードＮ１のグローバルＩＰアドレス、すなわち、ルータＲＴ１のＩＰアドレスが設定されている。そこで、ノードＮ４は、ノードＮ１のグローバルＩＰアドレスを取得する。そして、ノードＮ４は、取得したグローバルＩＰアドレスに基づいて、ＩＳＰネットワーク１に対応するグループのグループＩＤを生成する（図２（６））。次いで、ノードＮ４は、生成したグループＩＤを含むグループ情報通知メッセージをノードＮ１に送信する（図２（７））。
【００６３】
ノードＮ１は、受信したグループ情報通知メッセージに含まれるグループＩＤと、空のルーティングテーブルとを含むグループ情報を、第２階層に対応するグループ情報としてグループ情報一覧に追加する（図２（８））。次いで、ノードＮ１は、受信したグループ情報通知メッセージに含まれるグループＩＤと、ノードＮ１のノード情報とを含むコンタクトノード要求メッセージを、グループルートノードに向けて送信する（図２（９））。コンタクトノード要求メッセージは、グループＩＤが示すグループのコンタクトノードのノード情報を要求するメッセージである。グループルートノードは、グループＩＤが示すグループに所属するノードＮｎの情報を管理するノードである。具体的に、グループルートノードは、グループＩＤとノード情報とを対応付けて登録するためのグループノード情報管理テーブルを保持している。グループルートノードは、コンテンツルートノードと同様に、グループＩＤと最も近いノードＩＤを有するノードＮｎであるように定められる。グループＩＤと最も近いノードＩＤとは、例えば、グループＩＤと上位桁がより多く一致するノードＩＤである。ノードＮ１から送信されたコンタクトノード要求メッセージは、ＤＨＴルーティングによって、グループルートノード、例えば、ノードＮ１１に到達する。
【００６４】
ノードＮ１１は、受信したコンタクトノード要求メッセージに含まれるグループＩＤとノード情報とを対応付けてグループノード情報管理テーブルに登録する（図２（１０））。なお、この時点で、グループノード情報管理テーブルには、ノードＮ１のノード情報以外のノード情報は登録されていない。従って、ノードＮ１１は、ノードＮ１に対してコンタクトノードのノード情報を通知しない。なお、グループルートノードは、本発明の第２の情報処理装置の一例である。
【００６５】
その後、ＩＳＰネットワーク１に接続するノードＮ２が、グループＰ２Ｐネットワークに接続するものとする。この場合も、図２（１）〜図２（１０）と同様の処理が、ノードＮ２について行われる。このとき、ノードＮ１１のグループノード情報管理テーブルには、ノードＮ１のノード情報が登録されている。そこで、ノードＮ２からコンタクトノード要求メッセージを受信したノードＮ１１は、グループノード情報管理テーブルに登録されているノードＮ１のノード情報とグループＩＤとを含むノード情報通知メッセージをノードＮ２に送信する（図２（１１））。
【００６６】
ノードＮ２は、受信したノード情報通知メッセージに含まれるノード情報に基づいて、ノードＮ１に参加要求メッセージを送信する。この場合、ノードＮ２は、ノードＮ２のノード情報と、受信したノード情報通知メッセージに含まれるグループＩＤとを含む参加要求メッセージを送信する（図２（１２））。その後、図２（３）〜図２（５）と同様の処理が、ノードＮ１及びＮ２において行われる。そして、ＩＳＰネットワーク１に接続する２つ以上のノードＮｎのルーティングテーブルに、ＩＳＰネットワーク１に接続する他のノードＮｎのノード情報がそれぞれ少なくとも１つ以上登録される。これにより、ＩＳＰネットワーク１に対応するグループＰ２Ｐネットワークが生成される。
【００６７】
複数のグループＰ２Ｐネットワークに参加したノードＮｎは、所定の条件に基づいて、コンテンツを取得するグループＰ２Ｐネットワークを切り換えることができる。例えば、ノードＮｎが、接続するＩＳＰネットワーク内からコンテンツを取得する必要がある場合には、コンテンツの取得先を、接続するＩＳＰネットワークに対応するグループＰ２Ｐネットワークに切り換える。また、例えば、ノードＮｎが、接続するＩＳＰネットワーク外からコンテンツを取得する必要がある場合には、コンテンツの取得先を、グローバルＰ２Ｐネットワーク６に切り換える。また、ノードＮｎは、コンテンツを取得するグループＰ２Ｐネットワークを、ユーザの操作に基づいて切り換えても良い。
【００６８】
また、ルーティングテーブル及びインデックス情報は、各ノードＮｎにおいて、グループ毎に対応付けて記憶される。そのため、ノードＮｎは、検索要求メッセージ、またはパブリッシュメッセージを送信する場合、通信を行うグループＰ２ＰネットワークのグループＩＤに対応するルーティングテーブルから、送信先のノードＮｎのノード情報を取得する。そして、ノードＮｎは、検索要求メッセージまたはパブリッシュメッセージ上記メッセージを送信するときに、通信を行うグループＰ２ＰネットワークのグループＩＤをメッセージに含める。検索要求メッセージまたはパブリッシュメッセージを受信したノードＮｎは、受信したメッセージに含まれるグループＩＤに対応するルーティングテーブルを用いて、メッセージを転送する。また、検索要求メッセージを受信したコンテンツルートノードは、検索要求メッセージに含まれるグループＩＤに対応するインデックス情報を、ユーザノードに送信する。また、パブリッシュメッセージを受信したコンテンツルートノードは、パブリッシュメッセージに含まれるグループＩＤに対応付けてコンテンツ保持ノードのインデックス情報を登録する。
【００６９】
［５．各装置の構成及び機能］
次に、図３及び図４を参照して、各装置の構成及び機能について説明する。図３は、センターサーバＳＡの概要構成例を示す図である。また、図４は、ノードＮｎの概要構成例を示す図である。
【００７０】
［５．１  センターサーバＳＡの構成］
センターサーバＳＡは、図３に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成された制御部１１を備えている。また、センターサーバＳＡは、各種データ及び各種プログラム等を記憶保存するためのＨＤ等から構成された記憶部１２を備えている。更に、センターサーバＳＡは、ネットワーク８等を通じてノードＮｎとの間の情報の通信制御を行うための通信部１３を備えている。また更に、センターサーバＳＡは、各種情報を表示するＣＲＴ，液晶ディスプレイ等の表示部１４を備えている。更にまた、センターサーバＳＡは、オペレータからの指示を受け付けこの指示に応じた指示信号を制御部１１に対して与える入力部１５（例えば、キーボード、マウス等）を備えている。そして、制御部１１、記憶部１２、通信部１３、表示部１４、及び入力部１５はバス１６を介して相互に接続されている。
【００７１】
記憶部１２には、各ノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号等が記憶されている。制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを読み出して実行することにより、センターサーバＳＡ全体を統括制御する。
【００７２】
［５．２  ノードＮｎの構成］
各ノードＮｎは、図４に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部２１を備えている。また、各ノードＮｎは、各種データ及び各種プログラム等を記憶保存するためのＨＤ（ハードディスク）等から構成された記憶部２２と、受信されたコンテンツのレプリカ等を一時蓄積するバッファメモリ２３とを備えている。更に、各ノードＮｎは、コンテンツのレプリカに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコードするデコーダ部２４を備えている。また更に、各ノードＮｎは、このデコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部２５と、この映像処理部２５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部２６と、を備えている。更にまた、各ノードＮｎは、上記デコードされたオーディオデータをアナログオーディオ信号にＤ （Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部２７と、この音声処理部２７から出力されたオーディオ信号を音波として出力するスピーカ２８と、を備えている。また更に、各ノードＮｎは、ネットワーク８を通じて他のノードＮｎ等間の情報の通信制御を行うための通信部２９を備えている。更にまた、各ノードＮｎは、ユーザからの指示を受け付けこの指示に応じた指示信号を制御部２１に対して与える入力部３０（例えば、キーボード、マウス、或いは、リモコンや操作パネル等）を備えている。そして、制御部２１、記憶部２２、バッファメモリ２３、デコーダ部２４、通信部２９、及び入力部３０はバス３１を介して相互に接続されている。
【００７３】
記憶部２２は、第１記憶手段及び第２記憶手段の一例を構成する。この記憶部２２には、ノードＮｎ自身のノード情報、センターサーバＳＡのＩＰアドレス及びポート番号が記憶されている。また、記憶部２２には、最上位のグループのグループＩＤ、最上位のグループのコンタクトノードのＩＰアドレス及びポート番号が記憶されている。また、記憶部２２には、グループ情報一覧が記憶される。また、記憶部２２には、インデックス情報がグループＩＤに対応付けて記憶される。また、記憶部２２には、参加要求メッセージを送信するか否かの判定に用いられる規定数が設定される。ルーティングテーブルに登録されているノード情報の数が規定数以下であると、このルーティングテーブルに対応するグループＰ２Ｐネットワークへ参加するための参加要求メッセージが送信される。また、記憶部２２には、グループ階層数及びネットワーク範囲情報指定テーブルが記憶される。グループ階層数は、最上位階層から第何階層までグループＰ２Ｐネットワークを生成するかを示す情報である。例えば、グループ階層数に３が設定されている場合、最上位階層から第３階層までの３階層分のグループＰ２Ｐネットワークが生成される。ネットワーク範囲情報指定テーブルは、ネットワーク範囲情報としてどの情報を用いるかを示す。具体的に、ネットワーク範囲情報指定テーブルには、ネットワーク範囲情報として用いられる情報の種別を示す情報種別が、階層毎に設定されている。例えば、第２階層に位置するネットワークの範囲を国とし、第３階層に位置するネットワークの範囲をＩＳＰネットワークｍとする。この場合、第２階層に対応して、国ドメイン名を示す情報種別が設定される。また、第３階層に対応して、ノードＮｎのグローバルＩＰアドレスを示す情報種別が設定される。なお、全てのノードＮｎに対して、同一内容のグループ階層数及びネットワーク範囲情報指定テーブルが設定される。また、記憶部２２には、ノードＮｎがコンタクトノードとしてグループＩＤを生成するためのハッシュ関数が記憶されている。
【００７４】
また、記憶部２２には、ダウンロードされたコンテンツが、コンテンツＩＤに対応付けて記憶されている。更に、記憶部２２には、オペレーティングシステム、Ｐ２Ｐソフトウェア（本発明の情報処理プログラムを含む）等の各種プログラムが記憶されている。Ｐ２Ｐソフトウェアは、各グループＰ２Ｐネットワークに参加し、それぞれのグループＰ２Ｐネットワークにおいて、他のノードＮｎとの情報通信を行うためのソフトウェアである。なお、Ｐ２Ｐソフトウェアは、例えば、センターサーバＳＡ等からダウンロードされるようにしても良い。また、Ｐ２Ｐソフトウェアは、例えば、記録媒体に記録されて当該記録媒体からドライブを介して読み込まれるようにしても良い。
【００７５】
制御部２１は、ＣＰＵが記憶部２２等に記憶されたプログラムを読み出して実行することにより、取得手段、生成手段、参加手段、第１記憶手段、第１受信手段、第２送信手段、第１送信手段、第２受信手段、第３送信手段、第４受信手段、第２記憶手段、第３受信手段、第４送信手段、第５送信手段、第５受信手段、第６送信手段、第６受信手段、及び切替手段として機能する。
【００７６】
［６．コンテンツ分散保存システムの動作］
次に、図５乃至図８を参照して、本実施形態におけるコンテンツ分散保存システムＳの動作について説明する。
【００７７】
図５は、本実施形態におけるノードＮｎの制御部２１のルーティングテーブル監視処理における処理例を示すフローチャートである。
【００７８】
ルーティングテーブル監視処理は、ノードＮｎが所属する複数のグループのグループＰ２Ｐネットワークへ参加するための参加要求メッセージをそれぞれ定期的に送信するための処理である。参加要求メッセージが定期的に送信されることにより、ルーティングテーブルに登録されているノード情報の数が、規定数よりも多くなるように保たれる。
【００７９】
ルーティングテーブル監視処理は、例えばノードＮｎの電源がＯＮとされた場合に開始される。先ず、制御部２１は、グループ情報一覧を新規に作成して、記憶部２２に記憶させる。そして、制御部２１は、グループ情報一覧に、最上位のグループのグループ情報を追加する（ステップＳ１）。具体的に、制御部２１は、空のルーティングテーブルと、最上位のグループのグループＩＤとを含むグループ情報を追加する。次いで、制御部２１は、グループ情報一覧に登録されているグループ情報数Ｎに１を設定する（ステップＳ２）。
【００８０】
次いで、制御部２１は、ユーザから電源ＯＦＦの要求がされたか否かを判定する（ステップＳ３）。このとき、制御部２１は、ユーザから電源ＯＦＦの要求がされなかった場合には（ステップＳ３：ＮＯ）、最上位のグループのグループ情報のルーティングテーブルが空であるか否かを判定する（ステップＳ４）。このとき、制御部２１は、最上位のグループのグループ情報のルーティングテーブルが空である場合には（ステップＳ４：ＹＥＳ）、ノード情報の登録を行う（ステップＳ５）。具体的に、制御部２１は、最上位のグループのグループ情報のルーティングテーブルに、最上位のグループのコンタクトノードのノード情報を登録する。制御部２１は、ステップＳ４において、最上位のグループのグループ情報のルーティングテーブルが空ではない場合（ステップＳ４：ＮＯ）、または、ステップＳ５の処理を終えた場合には、インデックスＸに１を設定する（ステップＳ６）。
【００８１】
次いで、制御部２１は、インデックスＸがグループ情報数Ｎ以下であるか否かを判定する（ステップＳ７）。このとき、制御部２１は、インデックスＸがグループ情報数Ｎ以下である場合には（ステップＳ７：ＹＥＳ）、後述するＰ２Ｐグループ参加処理を実行する（ステップＳ８）。この場合、制御部２１は、グループ情報一覧から階層番号としてＸ番目に対応するグループ情報を指定する。Ｐ２Ｐグループ参加処理においては、Ｘ番目の階層のグループのグループＰ２Ｐネットワークへ参加する処理が行われる。次いで、制御部２１は、Ｘに１を加算して（ステップＳ９）、ステップＳ７に移行する。
【００８２】
ステップＳ７において、制御部２１は、インデックスＸがグループ情報数Ｎよりも大きい場合には（ステップＳ７：ＮＯ）、一定時間待機して（ステップＳ１０）、ステップＳ３に移行する。ステップＳ３において、制御部２１は、ユーザから電源ＯＦＦの要求がされた場合には（ステップＳ３：ＹＥＳ）、ルーティングテーブル監視処理を終了させる。
【００８３】
後述するＰ２Ｐグループ参加処理及びグループ情報通知メッセージ受信処理により、第２階層以下に対応するグループ情報が、グループ情報一覧に順次追加される。これにより、グループ情報数Ｎが増加する。そのため、制御部２１は、グループ情報一覧に登録されているグループ情報それぞれに対応するＰ２Ｐグループ参加処理を実行すると、一定時間待機する。
【００８４】
図６は、本実施形態におけるノードＮｎの制御部２１のＰ２Ｐグループ参加処理における処理例を示すフローチャートである。
【００８５】
先ず、制御部２１は、指定されたグループ情報のルーティングテーブルが空であるか否かを判定する（ステップＳ２１）。このとき、制御部２１は、指定されたグループ情報のルーティングテーブルが空ではない場合には（ステップ２１：ＮＯ）、指定されたグループ情報のルーティングテーブルに登録されているノード情報の数が規定数以下であるか否かを判定する（ステップＳ２２）。このとき、制御部２１は、指定されたグループ情報のルーティングテーブルに登録されているノード情報の数が規定数よりも多い場合には（ステップＳ２２：ＮＯ）、Ｐ２Ｐグループ参加処理を終了させる。
【００８６】
一方、制御部２１は、指定されたグループ情報のルーティングテーブルに登録されているノード情報の数が規定数以下である場合には（ステップＳ２２：ＹＥＳ）、参加手段、第１送信手段及び第５送信手段として、参加要求メッセージを送信する（ステップＳ２３）。具体的に、制御部２１は、指定されたグループ情報のルーティングテーブルにノード情報が登録されているノードＮｎのうち、任意のノードＮｎに参加要求メッセージを送信する。このとき、制御部２１は、ノードＮｎのノード情報と、指定されたグループ情報のグループＩＤと、指定されたグループ情報に対応するグループの階層を示す階層番号とを参加要求メッセージに含める。例えば、指定されたグループ情報が最上位のグループのグループ情報である場合、階層番号として１が設定される。また、例えば、指定されたグループ情報が第２階層のグループのグループ情報である場合、階層番号として２が設定される。次いで、制御部２１は、参加要求メッセージの送信が成功したか否かを判定する（ステップＳ２４）。例えば、参加要求メッセージの送信先のノードＮｎが、グループＰ２Ｐネットワークから離脱している場合には、参加要求メッセージの送信が失敗する。このとき、制御部２１は、参加要求メッセージの送信が成功した場合には（ステップＳ２４：ＹＥＳ）、Ｐ２Ｐグループ参加処理を終了させる。一方、制御部２１は、参加要求メッセージの送信が失敗した場合には（ステップＳ２４：ＮＯ）、指定されたグループ情報のルーティングテーブルから、参加要求メッセージの送信先のノードＮｎのノード情報を削除する（ステップＳ２５）。制御部２１は、ステップＳ２５の処理を終えると、ステップＳ２１に移行する。
【００８７】
ステップＳ２１において、制御部２１は、指定されたグループ情報のルーティングテーブルが空である場合には（ステップＳ２１：ＹＥＳ）、指定されたグループ情報が最上位のグループのグループ情報であるか否かを判定する（ステップＳ２６）。例えば、制御部２１は、指定されたグループ情報のグループＩＤと、記憶部２２に記憶されている最上位のグループのグループＩＤとが一致するか否かを判定する。このとき、制御部２１は、指定されたグループ情報が最上位のグループのグループ情報である場合には（ステップＳ２６：ＹＥＳ）、Ｐ２Ｐグループ参加処理を終了させる。
【００８８】
一方、制御部２１は、指定されたグループ情報が最上位のグループのグループ情報ではない場合には（ステップＳ２６：ＮＯ）、第３送信手段として、コンタクトノード要求メッセージを送信する（ステップＳ２７）。具体的に、制御部２１は、グループ情報一覧において、指定されたグループ情報よりも１つ上位の位置に登録されているグループ情報を取得する。そして、制御部２１は、取得したグループ情報のルーティングテーブルにノード情報が登録されているノードＮｎのうち、任意のノードＮｎにコンタクトノード要求メッセージを送信する。つまり、制御部２１は、Ｐ２Ｐグループ参加処理の対象となっているグループより１つ上位のグループのグループＰ２Ｐネットワークに参加しているノードＮｎにコンタクトノード要求メッセージを送信する。以下、Ｐ２Ｐグループ参加処理の対象となっているグループより１つ上位のグループを「上位グループ」という。また、このとき、制御部２１は、ノードＮｎ自身のノード情報、第１グループＩＤ及び第２グループＩＤを、コンタクトノード要求メッセージに含める。第１グループＩＤは、指定されたグループ情報のグループＩＤである。送信されたコンタクトノード要求メッセージは、ＤＨＴルーティングによって、第１グループＩＤと最も近いノードＩＤを有するノードＮｎ、すなわち、グループルートノードに到達する。第２グループＩＤは、上位グループのグループＩＤである。コンタクトノード要求メッセージを受信したノードＮｎは、コンタクトノード要求メッセージに含まれる第２グループＩＤに対応するグループ情報のルーティングテーブルを用いて、コンタクトノード要求メッセージを転送する。制御部２１は、ステップＳ２７の処理を終えると、Ｐ２Ｐグループ参加処理を終了させる。
【００８９】
図７（ａ）は、本実施形態におけるノードＮｎの制御部２１の参加要求メッセージ受信処理における処理例を示すフローチャートである。
【００９０】
参加要求メッセージ受信処理は、コンタクトノードの制御部２１が、第１受信手段及び第５受信手段として参加要求メッセージを受信したときに開始される。先ず、制御部２１は、受信した参加要求メッセージに含まれるグループＩＤに対応するグループ情報のルーティングテーブルに、参加要求メッセージに含まれるノード情報を登録する（ステップＳ４１）。次いで、制御部２１は、受信した参加要求メッセージに含まれるグループＩＤに対応するグループ情報のルーティングテーブルから、任意のノード情報を所定数取得する（ステップＳ４２）。なお、ステップＳ４１において登録されたノード情報は、ステップＳ４２においての取得対象から除外される。また、ルーティングテーブルに登録されているノード情報の数が所定数に満たない場合には、登録されているノード情報が全て取得される。次いで、制御部２１は、第６送信手段として、取得したノード情報を含むノード情報通知メッセージを、参加要求メッセージの送信元のノードＮｎに送信する（ステップＳ４３）。このとき、制御部２１は、受信した参加要求メッセージに含まれているグループＩＤを、ノード情報通知メッセージに設定する。
【００９１】
次いで、制御部２１は、受信した参加要求メッセージに含まれる階層番号がグループ階層数の値よりも小さいか否かを判定する（ステップＳ４４）。このとき、制御部２１は、参加要求メッセージに含まれる階層番号がグループ階層数の値よりも小さい場合には（ステップＳ４４：ＹＥＳ）、グループＩＤの生成を行う。参加要求メッセージに含まれる階層番号は、参加要求メッセージに含まれるグループＩＤが示すグループの階層を示す。すなわち、階層番号は、参加要求ノードが今参加しようとしているグループＰ２Ｐネットワークに対応するグループの階層を示す。階層番号がグループ階層数の値よりも小さい場合には、参加要求ノードが、更に下位階層のグループのグループＰ２Ｐネットワークに参加すべきであることを示す。そこで、制御部２１は、参加要求ノードが今参加しようとしているグループＰ２Ｐネットワークに対応するグループの階層より１つ下位の階層のグループのグループＩＤを生成する。
【００９２】
先ず、制御部２１は、取得手段として、ネットワーク範囲情報を取得する（ステップＳ４５）。具体的に、制御部２１は、参加要求メッセージに含まれる階層番号に１を加算する。次いで、制御部２１は、ネットワーク範囲情報指定テーブルから、階層番号に対応する情報種別を取得する。そして、制御部２１は、取得した情報種別に応じて、ネットワーク範囲情報を取得する。例えば、情報種別がノードＮｎのグローバルＩＰアドレスを示す場合、制御部２１は、受信した参加要求メッセージのパケットヘッダの送信元ＩＰアドレスから、グローバルＩＰアドレスを取得する。また、例えば、情報種別が国ドメイン名を示す場合、制御部２１は、ノードＮｎのグローバルＩＰアドレスを、ドメイン名に変換する。そして、制御部２１は、ドメイン名から国ドメイン名を取得する。
【００９３】
次いで、制御部２１は、生成手段として、取得したネットワーク範囲情報をハッシュ化して、グループＩＤを生成する（ステップＳ４６）。次いで、制御部２１は、第２送信手段として、生成したグループＩＤを含むグループ情報通知メッセージを、参加要求メッセージの送信元の参加要求ノードに送信する（ステップＳ４７）。
【００９４】
制御部２１は、ステップＳ４４において、参加要求メッセージに含まれる階層番号がグループ階層数の値以下である場合（ステップＳ４４：ＮＯ）、または、ステップＳ４７の処理を終えた場合には、参加要求メッセージ受信処理を終了させる。
【００９５】
図７（ｂ）は、本実施形態におけるノードＮｎの制御部２１のコンタクトノード要求メッセージ受信処理における処理例を示すフローチャートである。
【００９６】
コンタクトノード要求メッセージ受信処理は、グループルートノードの制御部２１が、第３受信手段として、コンタクトノード要求メッセージを受信したときに開始される。先ず、制御部２１は、受信したコンタクトノード要求メッセージに含まれるグループＩＤとノード情報とを対応付けて、グループノード情報管理テーブルに登録する（ステップＳ６１）。なお、グループノード情報管理テーブルのサイズは有限であるため、グループノード情報管理テーブルに登録することができるノード情報及びグループＩＤの数は限られている。そこで、制御部２１は、グループノード情報管理テーブルにノード情報及びグループＩＤを登録する空きがない場合、登録された時期が最も古い破棄する。そして、制御部２１は、空いた部分に新しいノード情報及びグループＩＤを登録する。
【００９７】
次いで、制御部２１は、受信したコンタクトノード要求メッセージに含まれるグループＩＤに対応するノード情報がグループノード情報管理テーブルに登録されているか否かを判定する（ステップＳ６２）。なお、ステップＳ６１において登録されたノード情報は、グループノード情報管理テーブルに登録されているか否かの判定の対象とはならない。このとき、制御部２１は、コンタクトノード要求メッセージに含まれるグループＩＤに対応するノード情報がグループノード情報管理テーブルに登録されている場合には（ステップＳ６２：ＹＥＳ）、グループノード情報管理テーブルから、コンタクトノード要求メッセージに含まれるグループＩＤに対応するノード情報を所定数取得する（ステップＳ６３）。なお、登録されているノード情報の数が所定数に満たない場合には、登録されているノード情報が全て取得される。次いで、制御部２１は、第４送信手段として、取得したノード情報を含むノード情報通知メッセージを、コンテンツノード要求メッセージの送信元のノードＮｎに送信する（ステップＳ６４）。このとき、制御部２１は、受信したコンタクトノード要求メッセージに含まれている第１グループＩＤを、ノード情報通知メッセージに設定する。
【００９８】
制御部２１は、ステップＳ６２において、コンタクトノード要求メッセージに含まれるグループＩＤに対応するノード情報がグループノード情報管理テーブルに登録されていない場合（ステップＳ６２：ＮＯ）、または、ステップＳ６４の処理を終えた場合には、コンタクトノード要求メッセージ受信処理を終了させる。
【００９９】
なお、グループルートノード以外のノードＮｎがコンタクトノード要求メッセージを受信した場合も、グループノード情報管理テーブルへの情報の登録を行っても良い。具体的には、ノードＮｎは、受信したコンタクトノード要求メッセージに含まれるグループＩＤとノード情報とを対応付けて、グループノード情報管理テーブルに登録する。そして、ノードＮｎは、ルーティングテーブルを用いて、コンタクトノード要求メッセージを転送する。これにより、グループルートノードがグループＰ２Ｐネットワークから離脱した後も、参加要求ノードは、新たなグループルートノードからノード情報を取得することができる。
【０１００】
図８（ａ）は、本実施形態におけるノードＮｎの制御部２１のグループ情報通知メッセージ受信処理における処理例を示すフローチャートである。
【０１０１】
グループ情報通知メッセージ受信処理は、参加要求ノードの制御部２１が、第２受信手段としてグループ情報通知メッセージを受信したときに開始される。先ず、制御部２１は、受信したグループ情報通知メッセージに含まれるグループＩＤに対応するグループ情報が、グループ情報一覧に登録されているか否かを判定する（ステップＳ８１）。このとき、制御部２１は、グループ情報通知メッセージに含まれるグループＩＤに対応するグループ情報が登録されていない場合には（ステップＳ８１：ＮＯ）、グループ情報数Ｎに１を加算する（ステップＳ８２）。次いで、制御部２１は、グループ情報一覧に、グループ情報を追加する（ステップＳ８３）。具体的に、制御部２１は、グループ情報一覧において、グループ情報数Ｎの値が示す階層に対応する位置に、グループ情報を追加する。このとき、制御部２１は、空のルーティングテーブルと、グループ情報通知メッセージに含まれるグループＩＤとを含むグループ情報を追加する。
【０１０２】
制御部２１は、ステップＳ８１において、グループ情報通知メッセージに含まれるグループＩＤに対応するグループ情報が登録されている場合（ステップＳ８１：ＹＥＳ）、または、ステップＳ８３の処理を終えた場合には、Ｐ２Ｐグループ参加処理を実行する（ステップＳ８４）。このとき、制御部２１は、グループ情報通知メッセージに含まれるグループＩＤに対応するグループ情報を指定する。制御部２１は、ステップＳ８４の処理を終えると、グループ情報通知メッセージ受信処理を終了させる。
【０１０３】
図８（ｂ）は、本実施形態におけるノードＮｎの制御部２１のノード情報通知メッセージ受信処理における処理例を示すフローチャートである。
【０１０４】
ノード情報通知メッセージ受信処理は、参加要求ノードの制御部２１が、参加手段、第４受信手段及び第６受信手段として、ノード情報通知メッセージを受信したときに開始される。先ず、制御部２１は、受信したノード情報通知メッセージに含まれるグループＩＤに対応するグループ情報が、グループ情報一覧に登録されているか否かを判定する（ステップＳ１０１）。このとき、制御部２１は、ノード情報通知メッセージに含まれるグループＩＤに対応するグループ情報が登録されている場合には（ステップＳ１０１：ＹＥＳ）、参加手段として、ノード情報通知メッセージに含まれるグループＩＤに対応するグループ情報のルーティングテーブルに、ノード情報通知メッセージに含まれるノード情報を登録する（ステップＳ１０２）。次いで、制御部２１は、Ｐ２Ｐグループ参加処理を実行する（ステップＳ１０３）。このとき、制御部２１は、ノード情報通知メッセージに含まれるグループＩＤに対応するグループ情報を指定する。
【０１０５】
制御部２１は、ステップＳ１０１において、ノード情報通知メッセージに含まれるグループＩＤに対応するグループ情報が登録されていない場合（ステップＳ１０１：ＮＯ）、または、ステップＳ１０３の処理を終えた場合には、ノード情報通知メッセージ受信処理を終了させる。
【０１０６】
以上説明したように、本実施形態によれば、コンタクトノードが、取得されたネットワーク範囲情報に基づいて、グループＩＤを生成する。参加要求ノードが、生成されたグループＩＤに基づいて、グループＰ２Ｐネットワークに参加する。従って、ノードＮｎは、所属するグループに対応するグループＰ２Ｐネットワークを介して、ネットワーク上で同一の範囲に接続する他のノードＮｎと通信することができる。
【０１０７】
また、参加要求ノードが、生成されたグループＩＤを含むコンタクトノード要求メッセージをグループルートノードへ送信する。グループルートノードが、コンタクトノード要求メッセージに含まれるグループＩＤに対応付けてグループノード情報管理テーブルに登録されているノード情報を含むノード情報通知メッセージを、参加要求ノードに送信する。参加要求ノードが、ノード情報通知メッセージに含まれるノード情報と生成されたグループＩＤとに基づいて、グループＰ２Ｐネットワークに参加する。従って、ノードＮｎは、取得されたノード情報を用いて同一のグループに所属するノードＮｎと通信することにより、グループＰ２Ｐネットワークに参加することができる。
【０１０８】
参加要求ノードが、コンタクトノードから送信されたノード情報通知メッセージに含まれるノード情報を、生成されたグループＩＤに対応するルーティングテーブルに登録する。従って、同一のグループに所属する複数のノードＮｎ間で、このグループに所属するノードＮｎのノード情報が交換される。そして、交換されたノード情報が、グループ内において情報の送信先を示す情報として、それぞれのノードＮｎにより記憶される。このようにして、グループＰ２Ｐネットワークを生成することができる。
【０１０９】
グループルートノードが、コンタクトノード要求メッセージに含まれるグループＩＤに対応付けてグループノード情報管理テーブルに登録されているノード情報のうち、参加要求ノードのノード情報と異なるノード情報を、参加要求ノードに送信する。従って、参加要求ノードは、現在グループＰ２Ｐネットワークに参加しているノードＮｎのノード情報をグループルートノードから取得することができる。よって、グループＰ２Ｐネットワークを介して安定した通信を行うことができる。
【０１１０】
また、ノードＮｎが、各グループＰ２Ｐネットワーク毎に、参加要求メッセージを周期的に送信する。従って、十分な数のノード情報を用いて、グループＰ２Ｐネットワークを介した通信を安定して行うことができる。また、ノードＮｎが、グループルートノードとしてグループノード情報を管理するので、複数のグループのグループノード情報を管理する負担を、複数のノードＮｎに分散させることができる。
【０１１１】
また、コンタクトノードが、参加要求ノードのグローバルＩＰアドレスであるルータＲＴｍのＩＰアドレスを、ネットワーク範囲情報として取得することを特徴とする。従って、ネットワーク間を接続する通信回線を通過する情報の量及びルータＲＴｍにより中継される情報の量がグループＰ２Ｐネットワークを介した通信によって多くなることを防止することができる。また、ルータＲＴｍによるＩＰアドレスの書き換えによりネットワーク間のピアツーピア方式による通信が困難であっても、ネットワーク内で通信することができる。
【０１１２】
また、コンタクトノードが、参加要求ノードが属するドメインを示すドメイン名を、ネットワーク範囲情報として取得する。従って、同一のドメインに属するノードＮｎにより構成されるネットワークの範囲を、ノードＮｎが接続するネットワークの範囲とする。そのため、ドメインの単位でノードＮｎをグループ化して、グループＰ２Ｐネットワークを生成することができる。また、ノードＮｎが、複数のグループＰ２Ｐネットワークに参加した場合、コンテンツを取得するためのグループＰ２Ｐネットワークを、所定の条件に基づいて切り換える。従って、条件に適したグループＰ２Ｐネットワークを介して通信を行うことにより、より効率的な通信を行うことができる。
【０１１３】
なお、上記実施形態においては、参加要求ノードから参加要求メッセージを受信したコンタクトノードがグループＩＤを生成していた。しかしながら、参加要求ノードがグループＩＤを生成しても良い。例えば、参加要求メッセージを受信したコンタクトノードが、ネットワーク範囲情報を取得する。次いで、コンタクトノードが、取得したネットワーク範囲情報を参加要求ノードに送信する。次いで、参加要求ノードが、受信したネットワーク範囲情報に基づいて、グループＩＤを生成する。
【０１１４】
また、ネットワーク範囲情報が予めノードＮｎにより記憶されていても良い。例えば、記憶部２２には、ノードＮｎ自身が接続するネットワークの範囲を示すネットワーク範囲情報が、階層毎に記憶される。ノードＮｎは、グローバルＰ２Ｐネットワーク６に参加した後、第２階層に対応するネットワーク範囲情報を、記憶部２２から取得する。次いで、ノードＮｎは、取得したネットワーク範囲情報に基づいて、グループＩＤを生成する。そして、ノードＮｎは、生成したグループＩＤに基づいて、第２階層のグループのグループＰ２Ｐネットワークに参加する。ノードＮｎは、第３階層以下についても、同様の処理を行う。
【０１１５】
また、上記実施形態においては、参加要求ノードから参加要求メッセージを受信したコンタクトノードが、ノード情報通知メッセージを参加要求ノードに送信していた。しかしながら、コンタクトノード以外のノードＮｎが、ノード情報通知メッセージを送信しても良い。例えば、コンタクトノードは、参加要求メッセージに含まれるグループＩＤに対応するルーティングテーブルにノード情報が登録されているノードＮｎを所定数選択する。次いで、コンタクトノードは、選択した各ノードＮｎに参加要求メッセージを転送する。そして、参加要求メッセージの転送を受けたノードＮｎが、ノード情報通知メッセージを参加要求ノードに送信する。
【０１１６】
また、上記実施形態においては、参加要求ノードから参加要求メッセージを受信したコンタクトノードが、グループ情報通知メッセージを参加要求ノードに送信していた。しかしながら、グループルートノードが、グループ情報通知メッセージを送信しても良い。例えば、コンタクトノードは、グループ情報通知要求メッセージを、グループルートノードに向けて送信する。グループ情報通知要求メッセージには、参加要求メッセージに含まれるノード情報と、生成したグループＩＤとが設定される。送信されたグループ情報通知要求メッセージは、ＤＨＴルーティングによりグループルートノードに到達する。グループルートノードは、受信したグループ情報通知要求メッセージに含まれるノード情報とグループＩＤとを対応付けて、グループノード情報管理テーブルに登録する。また、グループルートノードは、グループ情報通知要求メッセージに含まれるグループＩＤに対応するノード情報を、グループノード情報管理テーブルから取得する。そして、グループルートノードは、取得したノード情報を含むグループ情報通知メッセージを、参加要求ノードに送信する。このとき、グループルートノードは、受信したグループ情報通知要求メッセージに含まれるグループＩＤを、グループ情報通知メッセージに設定する。参加要求ノードは、グループ情報通知メッセージを受信することにより、グループＩＤとコンタクトノードのノード情報とを取得することができる。よって、参加要求ノードは、コンタクトノード要求メッセージを送信する必要がない。
【０１１７】
また、コンタクトノードは、生成したグループＩＤに対応するノード情報がグループノード情報管理テーブルに登録されている場合には、このノード情報をグループ情報通知メッセージに含めても良い。この場合、参加要求ノードは、コンタクトノード要求メッセージを送信する必要がない。
【０１１８】
また、上記実施形態においては、オーバーレイネットワークに、ＤＨＴを利用したピアツーピアネットワークが適用されていたが、これに限られるものではない。例えば、他のピアツーピアシステム、または、オーバーレイネットワークを用いたシステムが適用されても良い。ＤＨＴを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。ハイブリッド型のピアツーピアシステムの場合、本発明の情報処理装置として、センターサーバＳＡを適用することができる。例えば、センターサーバＳＡは、全てのグループのノード情報を管理する。
【符号の説明】
【０１１９】
１、２、３  ＩＳＰネットワーク
４  ＷＡＮ
５  ネットワーク
６  グローバルＰ２Ｐネットワーク
７、８  グループＰ２Ｐネットワーク
Ｎｎ  ノード
ＳＡ  センターサーバ
ＲＴｍ  ルータ
Ｓ  コンテンツ分散保存システム
【図１】
2011211543.tif 000003
【図２】
2011211543.tif 000004
【図３】
2011211543.tif 000005
【図４】
2011211543.tif 000006
【図５】
2011211543.tif 000007
【図６】
2011211543.tif 000008
【図７】
2011211543.tif 000009
【図８】
2011211543.tif 000010