(57)【要約】 【課題】本発明の目的は、分散保存システムで生存確認のメッセージを送受信する際、管理装置への情報処理負荷を増加することを防ぐノード装置、情報通信システム、ノード装置確認方法を提供することである。【解決手段】メッセージを受信したノード装置は、受信したノード装置のノードＩＤとＡｌｉｖｅ情報とをメッセージの送信元へ送信する。Ａｌｉｖｅ情報は、メッセージを受信したノード装置がＰ２Ｐネットワーク９に接続していることを示す情報である。Ｐ２Ｐネットワーク９に接続していないノード装置には、マルチキャストにより送信されたメッセージを受信することができない。従って、Ｐ２Ｐネットワーク９に接続していないノード装置は、Ａｌｉｖｅ情報を送信することができない。メッセージの送信元であるノード装置は、受信したノードＩＤとＡｌｉｖｅ情報とを、受信したノードＩＤと一致するルーティングテーブルに登録する。【選択図】図２
2011023996.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置から構成され、前記複数のノード装置の何れかのノード装置から他のノード装置へ情報を送受信する前記複数ノード装置の間で、情報の送受信が可能であるか否かを確認する確認メッセージを、各種メッセージの送信先を示すルーティングテーブルに基づいて前記複数のノード装置の少なくとも一部のノード装置へ送信するメッセージ送信手段と、
前記確認メッセージを受信したノード装置が、前記情報の送受信が可能であることを示す接続情報を、前記確認メッセージの送信元へ送信する接続情報送信手段と、
前記確認メッセージの送信先から受信した接続情報と、前記接続情報の送信元のノード装置を表すノード情報とを対応付けて前記ルーティングテーブルに記憶させる制御手段と、
前記制御手段により前記ルーティングテーブルに記憶された接続情報を、前記接続情報を管理する管理装置へ送信する管理送信手段と、
を備えることを特徴とする情報通信システム。
【請求項２】
前記メッセージ送信手段と、
前記制御手段と、
前記管理送信手段と、
前記確認メッセージを受信したノード装置から、前記接続情報を受信する接続情報受信手段と、
を備える第１ノード装置と、
前記確認メッセージを受信するメッセージ受信手段と、
前記接続情報送信手段と、
を備える第２ノード装置と、
を少なくとも備えることを特徴とする請求項１に記載の情報通信システム。
【請求項３】
前記第１ノード装置は、
前記ルーティングテーブルに記載された送信先へ確認メッセージを送信してから所定の時間以内に前記接続情報を受信したか否かを判定する接続判定手段と、
を備え、
前記接続判定手段により、所定の時間以内に前記接続情報を受信しなかったと判定されたとき、前記記憶手段が記憶するルーティングテーブルに、前記接続情報を受信しなかったと判定された送信先のノード装置と前記情報通信システムとの間で、情報の送受信が不可能であることを示す非接続情報を、前記接続情報を受信しなかったと判定された送信先のノード装置のノード情報と対応付けて記憶することを特徴とする請求項２に記載の情報通信システム。
【請求項４】
前記第１ノード装置に備えられた前記管理送信手段は、送信するタイミングをランダムに決められた所定の待機時間経過後に前記管理装置へ、前記ルーティングテーブルに記憶された接続情報を送信することを特徴とする請求項２または請求項３に記載の情報通信システム。
【請求項５】
前記第２ノード装置は、
前記接続情報を記憶する接続情報記憶手段と、
前記接続情報送信手段により前記接続情報が送信されたとき、前記接続情報記憶手段から前記接続情報を削除する接続情報削除手段と、
を備え、
前記接続情報記憶手段に前記接続情報が記憶されているとき、前記接続情報送信手段は、前記接続情報を送信することを特徴とする請求項２から請求項４のいずれかに記載の情報通信システム。
【請求項６】
前記接続情報削除手段により前記接続情報が削除されてから所定の時間が経過した後に、前記接続情報を再度前記接続情報記憶手段に記憶させる記憶制御手段と、
を備えることを特徴とする請求項５に記載の情報通信システム。
【請求項７】
前記メッセージ受信手段により前記確認メッセージを受信したときに、前記接続情報記憶手段に前記接続情報が記憶されていないとき、前記接続情報送信手段は、前記第２ノード装置が前記接続情報を既に送信した旨を示す完了メッセージを前記第１ノード装置へ送信することを特徴とする請求項５または請求項６に記載の情報通信システム。
【請求項８】
請求項５から請求項７のいずれかに記載の情報通信システムを構成する第２ノード装置。
【請求項９】
ネットワークを介して互いに通信可能な複数のノード装置から構成され、前記複数のノード装置の何れかのノード装置から他のノード装置へ情報を送受信する前記複数ノード装置の間で、情報の送受信が可能であるか否かを確認する確認メッセージを、各種メッセージの送信先を示すルーティングテーブルに基づいて前記複数のノード装置の少なくとも一部のノード装置へ送信するメッセージ送信手段と、
前記メッセージ送信手段により送信されたメッセージを受信したノード装置が、前記確認メッセージの送信元へ送信した前記情報の送受信が可能であることを示す接続情報を受信する接続情報受信手段と、
前記確認メッセージの送信先から受信した接続情報と、前記接続情報の送信元のノード装置を表すノード情報とを対応付けて前記ルーティングテーブルに記憶させる制御手段と、
前記制御手段により前記ルーティングテーブルに記憶された接続情報を、前記接続情報を管理する管理装置へ送信する管理送信手段と、
を備えることを特徴とするノード装置。
【請求項１０】
前記記憶手段に記憶された前記ルーティングテーブルに記載された送信先へ確認メッセージの送信が完了したか否かを判定する完了判定手段と、
前記ルーティングテーブルに記載された送信先へ確認メッセージの送信が完了してから所定の時間以内に前記接続情報を受信したか否かを判定する接続判定手段と、
を備え、
前記接続判定手段により、所定の時間以内に前記接続情報を受信しなかったと判定されたとき、前記記憶手段が記憶するルーティングテーブルに、前記接続情報を受信しなかったと判定された送信先のノード装置と前記情報通信システムとの間で情報の送受信が不可能であることを示す非接続情報を、前記接続情報を受信しなかったと判定された送信先のノード装置のノード情報と対応付けて記憶することを特徴とする請求項９に記載のノード装置。
【請求項１１】
前記管理送信手段は、送信するタイミングをランダムに決められた所定の待機時間経過後に前記管理装置へ、前記ルーティングテーブルに記憶された接続情報を送信することを特徴とする請求項９または請求項１０に記載のノード装置。
【請求項１２】
ネットワークを介して互いに通信可能な複数のノード装置から構成され、前記複数のノード装置の何れかのノード装置から他のノード装置へ情報を送受信する前記複数ノード装置の間で、情報の送受信が可能であるか否かを確認する確認メッセージを、各種メッセージの送信先を示すルーティングテーブルに基づいて前記複数のノード装置の少なくとも一部のノード装置へ送信するメッセージ送信ステップと、
前記メッセージ送信ステップにより送信されたメッセージを受信したノード装置が、前記確認メッセージの送信元へ送信した前記情報の送受信が可能であることを示す接続情報を受信する接続情報受信ステップと、
前記確認メッセージの送信先から受信した接続情報と、前記接続情報の送信元のノード装置を表すノード情報とを対応付けて前記ルーティングテーブルに記憶させる制御ステップと、
前記制御ステップにより前記ルーティングテーブルに記憶された接続情報を、前記接続情報を管理する管理装置へ送信する管理送信ステップと、
をコンピュータに実現させるためのプログラム。
【請求項１３】
ネットワークを介して互いに通信可能な複数のノード装置から構成され、前記複数のノード装置の何れかのノード装置から他のノード装置へ情報を送受信する前記複数ノード装置の間で、情報の送受信が可能であるか否かを確認する確認メッセージを、各種メッセージの送信先を示すルーティングテーブルに基づいて前記複数のノード装置の少なくとも一部のノード装置へ送信するメッセージ送信ステップと、
前記確認メッセージを受信したノード装置が、前記情報の送受信が可能であることを示す接続情報を、前記確認メッセージの送信元へ送信する接続情報送信ステップと、
前記確認メッセージの送信先から受信した接続情報と、前記接続情報の送信元のノード装置を表すノード情報とを対応付けて前記ルーティングテーブルに記憶させる制御ステップと、
前記制御ステップにより前記ルーティングテーブルに記憶された接続情報を、前記接続情報を管理する管理装置へ送信する管理送信ステップと、
を備えることを特徴とするノード装置確認方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ（Ｐ２Ｐ））方式の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のピアツーピア方式の通信システムは、複数のノード装置により構成される。各種コンテンツのデータファイルは、複数のデータファイルの複製データ（以下、「レプリカ」という）として複数のノード装置に分散して保存される。データファイルは、映画及び音楽などのデータファイルである。一般的には、各ノード装置間でレプリカを利用可能とした分散保存システムが知られている。これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたレプリカの所在は、例えば特許文献１に開示されるような分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用して効率良く検索可能になっている。
【０００３】
そして、所望のコンテンツを取得するとき、上述のノード装置はレプリカの所在を検索するためのメッセージ（クエリ）を他のノード装置へ送信する。これにより、送信されたメッセージは、上記のＤＨＴにしたがって、レプリカの所在の管理元のノード装置に向かって転送される。そして、上記メッセージを送信したノード装置は、上記の管理元のノード装置からレプリカの所在を示す情報を取得することになる。これにより、メッセージを送信したノード装置は、検索されているレプリカを保存しているノード装置にアクセスすることができる。そして、レプリカを取得（ダウンロード）することができる。
【０００４】
特許文献２には、上述したＤＨＴを用いて、各種情報を送受信することが可能か否かを確認するメッセージを、分散保存システムを構成するノード装置へ送信する技術が開示されている。分散保存システムを構成するノード装置の生存を確認すメッセージが送信されることで、各ノード装置の生存を確認することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１９７４００号公報
【特許文献２】特開２００９−０７７２１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献２では、生存確認メッセージを受信した各ノード装置は、生存している旨を表す生存情報を、分散保存システムを管理する管理装置へ送信する。しかしながら、分散保存システムを構成する各ノード装置から一斉に生存情報が管理装置へ送信されると、管理装置の情報処理負荷及び通信負荷が増大し、管理装置の負担が大きくなる問題があった。
【０００７】
本発明は、上述した問題点を解決するためになされたものである。本発明の目的は、分散保存システムで管理装置が生存情報を受信する際、管理装置への情報処理負荷を増大することを防ぐ情報通信システム、ノード装置、ノード装置確認方法を提供することである。
【課題を解決するための手段】
【０００８】
請求項１記載の発明によれば、ネットワークを介して互いに通信可能な複数のノード装置から構成され、前記複数のノード装置の何れかのノード装置から他のノード装置へ情報を送受信する前記複数ノード装置の間で、情報の送受信が可能であるか否かを確認する確認メッセージを、各種メッセージの送信先を示すルーティングテーブルに基づいて前記複数のノード装置の少なくとも一部のノード装置へ送信するメッセージ送信手段と、前記確認メッセージを受信したノード装置が、前記情報の送受信が可能であることを示す接続情報を、前記確認メッセージの送信元へ送信する接続情報送信手段と、前記確認メッセージの送信先から受信した接続情報と、前記接続情報の送信元のノード装置を表すノード情報とを対応付けて前記ルーティングテーブルに記憶させる制御手段と、前記制御手段により前記ルーティングテーブルに記憶された接続情報を、前記接続情報を管理する管理装置へ送信する管理送信手段と、を備えることを特徴とする情報通信システムである。
【０００９】
請求項２記載の発明によれば、前記メッセージ送信手段と、前記制御手段と、前記管理送信手段と、前記確認メッセージを受信したノード装置から、前記接続情報を受信する接続情報受信手段と、を備える第１ノード装置と、前記確認メッセージを受信するメッセージ受信手段と、前記接続情報送信手段と、を備える第２ノード装置と、を少なくとも備えることを特徴とする。
【００１０】
請求項３記載の発明によれば、前記第１ノード装置は、前記ルーティングテーブルに記載された送信先へ確認メッセージを送信してから所定の時間以内に前記接続情報を受信したか否かを判定する接続判定手段と、を備え、前記接続判定手段により、所定の時間以内に前記接続情報を受信しなかったと判定されたとき、前記記憶手段が記憶するルーティングテーブルに、前記接続情報を受信しなかったと判定された送信先のノード装置と前記情報通信システムとの間で、情報の送受信が不可能であることを示す非接続情報を、前記接続情報を受信しなかったと判定された送信先のノード装置のノード情報と対応付けて記憶することを特徴とする。
【００１１】
請求項４記載の発明によれば、前記第１ノード装置に備えられた前記管理送信手段は、送信するタイミングをランダムに決められた所定の待機時間経過後に前記管理装置へ、前記ルーティングテーブルに記憶された接続情報を送信することを特徴とする。
【００１２】
請求項５記載の発明によれば、前記第２ノード装置は、前記接続情報を記憶する接続情報記憶手段と、前記接続情報送信手段により前記接続情報が送信されたとき、前記接続情報記憶手段から前記接続情報を削除する接続情報削除手段と、を備え、前記接続情報記憶手段に前記接続情報が記憶されているとき、前記接続情報送信手段は、前記接続情報を送信することを特徴とする。
【００１３】
請求項６記載の発明によれば、前記接続情報削除手段により前記接続情報が削除されてから所定の時間が経過した後に、前記接続情報を再度前記接続情報記憶手段に記憶させる記憶制御手段と、を備えることを特徴とする。
【００１４】
請求項７記載の発明によれば、前記メッセージ受信手段により前記確認メッセージを受信したときに、前記接続情報記憶手段に前記接続情報が記憶されていないとき、前記接続情報送信手段は、前記第２ノード装置が前記接続情報を既に送信した旨を示す完了メッセージを前記第１ノード装置へ送信することを特徴とする。
【００１５】
請求項８記載の発明によれば、請求項５から請求項７のいずれかに記載の情報通信システムを構成する第２ノード装置である。
【００１６】
請求項９に記載の発明によれば、ネットワークを介して互いに通信可能な複数のノード装置から構成され、前記複数のノード装置の何れかのノード装置から他のノード装置へ情報を送受信する前記複数ノード装置の間で、情報の送受信が可能であるか否かを確認する確認メッセージを、各種メッセージの送信先を示すルーティングテーブルに基づいて前記複数のノード装置の少なくとも一部のノード装置へ送信するメッセージ送信手段と、前記メッセージ送信手段により送信されたメッセージを受信したノード装置が、前記確認メッセージの送信元へ送信した前記情報の送受信が可能であることを示す接続情報を受信する接続情報受信手段と、前記確認メッセージの送信先から受信した接続情報と、前記接続情報の送信元のノード装置を表すノード情報とを対応付けて前記ルーティングテーブルに記憶させる制御手段と、前記制御手段により前記ルーティングテーブルに記憶された接続情報を、前記接続情報を管理する管理装置へ送信する管理送信手段と、を備えることを特徴とするノード装置である。
【００１７】
請求項１０に記載の発明によれば、前記記憶手段に記憶された前記ルーティングテーブルに記載された送信先へ確認メッセージの送信が完了したか否かを判定する完了判定手段と、前記ルーティングテーブルに記載された送信先へ確認メッセージの送信が完了してから所定の時間以内に前記接続情報を受信したか否かを判定する接続判定手段と、を備え、前記接続判定手段により、所定の時間以内に前記接続情報を受信しなかったと判定されたとき、前記記憶手段が記憶するルーティングテーブルに、前記接続情報を受信しなかったと判定された送信先のノード装置と前記情報通信システムとの間で情報の送受信が不可能であることを示す非接続情報を、前記接続情報を受信しなかったと判定された送信先のノード装置のノード情報と対応付けて記憶することを特徴とする。
【００１８】
請求項１１に記載の発明によれば、前記管理送信手段は、送信するタイミングをランダムに決められた所定の待機時間経過後に前記管理装置へ、前記ルーティングテーブルに記憶された接続情報を送信することを特徴とする。
【００１９】
請求項１２に記載の発明によれば、ネットワークを介して互いに通信可能な複数のノード装置から構成され、前記複数のノード装置の何れかのノード装置から他のノード装置へ情報を送受信する前記複数ノード装置の間で、情報の送受信が可能であるか否かを確認する確認メッセージを、各種メッセージの送信先を示すルーティングテーブルに基づいて前記複数のノード装置の少なくとも一部のノード装置へ送信するメッセージ送信ステップと、前記メッセージ送信ステップにより送信されたメッセージを受信したノード装置が、前記確認メッセージの送信元へ送信した前記情報の送受信が可能であることを示す接続情報を受信する接続情報受信ステップと、前記確認メッセージの送信先から受信した接続情報と、前記接続情報の送信元のノード装置を表すノード情報とを対応付けて前記ルーティングテーブルに記憶させる制御ステップと、前記制御ステップにより前記ルーティングテーブルに記憶された接続情報を、前記接続情報を管理する管理装置へ送信する管理送信ステップと、をコンピュータに実現させるためのプログラムである。
【００２０】
請求項１３に記載の発明によれば、ネットワークを介して互いに通信可能な複数のノード装置から構成され、前記複数のノード装置の何れかのノード装置から他のノード装置へ情報を送受信する前記複数ノード装置の間で、情報の送受信が可能であるか否かを確認する確認メッセージを、各種メッセージの送信先を示すルーティングテーブルに基づいて前記複数のノード装置の少なくとも一部のノード装置へ送信するメッセージ送信ステップと、前記確認メッセージを受信したノード装置が、前記情報の送受信が可能であることを示す接続情報を、前記確認メッセージの送信元へ送信する接続情報送信ステップと、前記確認メッセージの送信先から受信した接続情報と、前記接続情報の送信元のノード装置を表すノード情報とを対応付けて前記ルーティングテーブルに記憶させる制御ステップと、前記制御ステップにより前記ルーティングテーブルに記憶された接続情報を、前記接続情報を管理する管理装置へ送信する管理送信ステップと、を備えることを特徴とするノード装置確認方法である。
【発明の効果】
【００２１】
請求項１記載の発明によれば、制御手段は、確認メッセージの送信先から受信した接続情報と、接続情報の送信元のノード装置を表すノード情報とを対応付けてルーティングテーブルに記憶させる。管理送信手段は、制御手段によりルーティングテーブルに記憶された接続情報を、接続情報を管理する管理装置へ送信する。従って、確認メッセージを受信した各ノード装置が、接続情報を管理する管理装置へ確認メッセージを送信するのではなく、ルーティングテーブルを記憶するノード装置へ送信する。そして、ルーティングテーブルに集約された接続情報が、管理装置へ送信される。この結果、ルーティングテーブルを記憶するノード装置が、各ノード装置の確認メッセージをルーティングテーブルに集約して送信管理装置へ送信することができる。情報通信システムを構成するノード装置から一斉に接続情報が送信されることがなく、管理装置の情報処理負荷の増大を軽減することができる。
【００２２】
請求項２に記載の発明によれば、第１ノード装置は、メッセージ送信手段と、制御手段と、管理送信手段と、確認メッセージを受信したノード装置から接続情報を受信する接続情報受信手段と、を備える。第２ノード装置は、確認メッセージを受信するメッセージ受信手段と、接続情報送信手段と、を備える。従って、情報通信システムを構成する各ノード装置が、第１ノード装置または第２ノード装置として機能することができる。この結果、情報通信システムに特別な情報処理装置等を構築することなく、管理装置の情報処理負荷の増大を軽減することができる。
【００２３】
請求項３に記載の発明によれば、接続判定手段により、所定の時間以内に接続情報を受信しなかったと判定されたとき、記憶手段が記憶するルーティングテーブルに、接続情報を受信しなかったと判定された送信先のノード装置と情報通信システムとの間で、情報の送受信が不可能であることを示す非接続情報を、接続情報を受信しなかったと判定された送信先のノード装置のノード情報と対応付けて記憶する。従って、ルーティングテーブルに記載されたノード装置の接続情報及び非接続情報を、ルーティングテーブルに集約して管理装置へ送信することができる。この結果、接続情報及び非接続情報が管理装置へ一斉に送信することを防ぎ、管理装置の情報処理負荷の増大を軽減することができる。
【００２４】
請求項４に記載の発明によれば、前記第１ノード装置に備えられた前記管理送信手段は、送信するタイミングをランダムに決められた所定の待機時間経過後に前記管理装置へ、前記ルーティングテーブルに記憶された接続情報を送信する。この結果、各ノード装置が、同じタイミングで接続情報を管理装置へ送信することがないため、管理装置の情報処理負荷の増大を低減することができる。
【００２５】
請求項５に記載の発明によれば、接続情報削除手段は、接続情報送信手段により接続情報が送信されたとき、接続情報記憶手段から接続情報を削除する。この結果、一度接続情報を送信したノード装置は、接続情報を送信することができないため、接続情報を重複して送信することを防ぐことができる。
【００２６】
請求項６に記載の発明によれば、記憶制御手段は、接続情報削除手段により接続情報が削除されてから所定の時間が経過した後に、接続情報を再度接続情報記憶手段に記憶させる。この結果、所定の時間が経過した後に接続情報を再度送信可能になる。従って、所定の時間の間、接続情報を重複して送信することを防ぎながら、接続情報を集約して管理装置へ送信する動作を繰り返し実行することができる。
【００２７】
請求項７に記載の発明によれば、メッセージ受信手段により確認メッセージを受信したときに、接続情報記憶手段に接続情報が記憶されていないとき、接続情報送信手段は、第２ノード装置が接続情報を既に送信した旨を示す完了メッセージを第１ノード装置へ送信する。この結果、完了メッセージが送信されることで、第１ノード装置は、既に接続情報を送信済みであるか否かを確認することができる。
【００２８】
請求項８に記載の発明によれば、請求項５から請求項７のいずれかに記載の情報通信システムを構成する第２ノード装置である。
【００２９】
請求項９に記載の発明によれば、接続情報受信手段は、メッセージ送信手段により送信されたメッセージを受信したノード装置が、確認メッセージの送信元へ送信した情報の送受信が可能であることを示す接続情報を受信する。制御手段は、確認メッセージの送信先から受信した接続情報と、接続情報の送信元のノード装置を表すノード情報とを対応付けてルーティングテーブルに記憶させる。管理送信手段は、制御手段によりルーティングテーブルに記憶された接続情報を、接続情報を管理する管理装置へ送信する。従って、確認メッセージを受信した各ノード装置が、接続情報を管理する管理装置へ確認メッセージを送信するのではなく、ルーティングテーブルを記憶するノード装置へ送信する。この結果、ルーティングテーブルを記憶するノード装置が、各ノード装置の確認メッセージをルーティングテーブルに集約して送信管理装置へ送信することができる。情報通信システムを構成するノード装置から一斉に接続情報が送信されることがなく、管理装置の情報処理負荷の増大を軽減することができる。
【００３０】
請求項１０に記載の発明によれば、接続判定手段により、所定の時間以内に接続情報を受信しなかったと判定されたとき、記憶手段が記憶するルーティングテーブルに、接続情報を受信しなかったと判定された送信先のノード装置と情報通信システムとの間で、情報の送受信が不可能であることを示す非接続情報を、接続情報を受信しなかったと判定された送信先のノード装置のノード情報と対応付けて記憶する。従って、ルーティングテーブルに記載されたノード装置の接続情報及び非接続情報を、ルーティングテーブルに集約して管理装置へ送信することができる。この結果、接続情報及び非接続情報が管理装置へ一斉に送信することを防ぎ、管理装置の情報処理負荷の増大を軽減することができる。
【００３１】
請求項１１に記載の発明によれば、管理送信手段は、送信するタイミングをランダムに決められた所定の待機時間経過後に管理装置へ送信する。この結果、各ノード装置が、同じタイミングで接続情報を管理装置へ、前記ルーティングテーブルに記憶された接続情報を送信することがないため、管理装置の情報処理負荷の増大を低減することができる。
【００３２】
請求項１２に記載の発明によれば、接続情報受信ステップは、メッセージ送信ステップにより送信されたメッセージを受信したノード装置が、確認メッセージの送信元へ送信した情報の送受信が可能であることを示す接続情報を受信する。制御ステップは、確認メッセージの送信先から受信した接続情報と、接続情報の送信元のノード装置を表すノード情報とを対応付けてルーティングテーブルに記憶させる。管理送信ステップは、制御ステップによりルーティングテーブルに記憶された接続情報を、接続情報を管理する管理装置へ送信する。従って、確認メッセージを受信した各ノード装置が、接続情報を管理する管理装置へ確認メッセージを送信するのではなく、ルーティングテーブルを記憶するノード装置へ送信する。この結果、ルーティングテーブルを記憶するノード装置が、各ノード装置の確認メッセージをルーティングテーブルに集約して送信管理装置へ送信することができる。情報通信システムを構成するノード装置から一斉に接続情報が送信されることがなく、管理装置の情報処理負荷の増大を軽減することができる。
【００３３】
請求項１３に記載の発明によれば、制御ステップは、確認メッセージの送信先から受信した接続情報と、接続情報の送信元のノード装置を表すノード情報とを対応付けてルーティングテーブルに記憶させる。管理送信ステップは、制御ステップによりルーティングテーブルに記憶された接続情報を、接続情報を管理する管理装置へ送信する。従って、確認メッセージを受信した各ノード装置が、接続情報を管理する管理装置へ確認メッセージを送信するのではなく、ルーティングテーブルを記憶するノード装置へ送信する。この結果、ルーティングテーブルを記憶するノード装置が、各ノード装置の確認メッセージをルーティングテーブルに集約して送信管理装置へ送信することができる。情報通信システムを構成するノード装置から一斉に接続情報が送信されることがなく、管理装置の情報処理負荷の増大を軽減することができる
【図面の簡単な説明】
【００３４】
【図１】本実施形態の分散保存システムＳにおける各ノード装置Ｎｎの接続態様の一例を示す図である。
【図２】ノードＮ２が保持するルーティングテーブルの一例を示す概念図である。
【図３】ＤＨＴのＩＤ空間の一例を示す概念図である。
【図４】分散保存システムＳへの参加時におけるルーティングテーブルの生成手順の一例を示す概念図である。
【図５】各ノードＮｎ間を転送するメッセージの様子を示す概念図である。
【図６】ノード装置Ｎｎの電気的構成を示す概念図である。
【図７】ノード装置Ｎｎのメイン処理動作を示すフローチャートである。
【図８】転送処理プログラムに従うノード装置Ｎｎの転送処理を実行するフローチャートである。
【発明を実施するための最良の形態】
【００３５】
以下、本発明の最良の実施形態を図面に基づいて説明する。
【００３６】
［分散保存システムの構成］
図１は、本実施形態の分散保存システムＳの概念図を示す。図１は、分散保存システムＳの具体的構成図１０１と、概念的構成図１００とから構成される。分散保存システムＳの具体的構成図１０１が示すように、分散保存システムＳは、多数ノード装置Ｎｎ（ｎ＝１，２，３・・・の何れか）から構成される。
【００３７】
図１の下部枠の具体的構成図１０１内に示すように、一般的なインターネット等のネットワーク８は、ＩＸ（Internet eXchange）３、ＩＳＰ（Internet Service Provider）４ａ及び４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者の装置５ａ及び５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者の装置６、通信回線７等によって構築されている。例えば、通信回線７は、電話回線や光ケーブル等である。なお、図１の例におけるネットワーク８には、データ（パケット）を転送するためのルータが、適宜挿入されているが図示を省略している。
【００３８】
図１の具体的構成図１０１が示すように、ネットワーク８は、多数のノード装置Ｎｎ（ｎ＝１，２，３・・・の何れか）から構成される。多数のノード装置Ｎｎは、ルータ等を介してインターネットで接続されている。また、各ノード装置Ｎｎには、固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。本実施形態の分散保存システムＳは、ピアツーピア方式のネットワークシステムである。図１の上部枠の概念的構成図１００内に示すように、ピアツーピア方式のネットワークシステムは、これらのノード装置Ｎｎのうち、何れか複数のノード装置Ｎｎの参加により形成される。本実施形態における参加とは、ノード装置Ｎｎが分散保存システムＳと接続し、コンテンツデータの送受信をすることを意味している。
【００３９】
なお、図１の上部枠の概念的構成図１００内に示すＰ２Ｐネットワーク９は、既存のネットワーク８を用いて形成されたＰ２Ｐネットワークである。Ｐ２Ｐネットワークは、図１の上部枠の概念的構成図１００内の複数のノード装置を仮想的にリンクさせることで構築される。Ｐ２Ｐネットワーク９は、オーバーレイネットワーク、または、論理的なネットワークである。Ｐ２Ｐネットワーク９は、特定のアルゴリズム、により構築される。例えば、特許文献１の特開２００６−１９７４００に記載されたＤＨＴを利用したアルゴリズムにより、Ｐ２Ｐネットワーク９は構築される。
【００４０】
そして、Ｐ２Ｐネットワーク９を構成している各ノード装置Ｎｎには、ノードＩＤが割り当てられている。ノードＩＤは、所定桁数からなる固有の識別情報である。また、具体的には、各ノード装置Ｎｎに個別に割り当てられたＩＰアドレス或いは製造番号を基に、ノードＩＤは生成される。ノードＩＤは、上述のＩＰアドレス或いは製造番号を共通のハッシュ関数によりハッシュ化した値である。例えば、ＳＨＡ−１等のハッシュ関数により、ｂｉｔ長が１６０ｂｉｔのハッシュ値が生成される。各ノードＩＤは、ある一つのＩＤ空間に偏りなく分散して配置されることになる。
【００４１】
図１に示すように、分散保存システムＳは、コンテンツ投入サーバ１６を備える。コンテンツ投入サーバ１６は、新しいコンテンツデータを分散保存システムＳ内に投入するためのサーバである。コンテンツ投入サーバ１６は、コンテンツデータを複製したレプリカを、分散保存システムＳに投入する。また、分散保存システムＳは、センターサーバ１７を備える。センターサーバ１７は、各ノード装置Ｎｎのログ情報等を管理する。具体的には、Ｐ２Ｐネットワーク９を構成している各ノード装置Ｎｎの接続状況を管理する。Ｐ２Ｐネットワーク９を構成する各ノード装置Ｎｎは、基本的には常に起動している状態である。ノード装置Ｎｎが起動していることを確認するために、センターサーバ１７で各ノード装置Ｎｎの生存確認を行う必要がある。生存確認とは、各ノード装置ＮｎがＰ２Ｐネットワーク９に接続されており、起動しているかの確認である。本実施形態では、各ノード装置ＮｎがＰ２Ｐネットワーク９に接続されており、起動しているかの確認を行うために、Ａｌｉｖｅ情報が送受信される。Ａｌｉｖｅ情報は、ノード装置ＮｎがＰ２Ｐネットワーク９に接続し、起動していることを示す情報であれば特に限定されない。Ｐ２Ｐネットワーク９に接続していないノード装置Ｎｎには、マルチキャストにより送信されたメッセージを受信することができない。従って、Ｐ２Ｐネットワーク９に接続していないノード装置Ｎｎは、Ａｌｉｖｅ情報を送信することができない。
【００４２】
分散保存システムＳへの参加は、現在Ｐ２Ｐネットワーク９に参加していないノード装置Ｎｎが、現在参加している任意のノード装置Ｎｎへ参加要求を示す参加メッセージを送信する。参加メッセージを受信するノード装置は、分散保存システムＳに常時参加しているノード装置である。本実施形態では、常時参加しているノード装置をコンタクトノードと称する。例えば、Ｐ２Ｐネットワーク９に参加していないノード装置から、分散保存システムＳのコンタクトノードへ送信要求メッセージが送信される。コンタクトノードは、参加メッセージの送信元であるノード装置へＰ２Ｐネットワーク９に参加するために必要な情報を送信する。上述の必要な情報の詳細は後述する。
【００４３】
［分散保存システムのコンテンツ取得動作説明］
図１に示す各ノード装置Ｎｎは、夫々、ＤＨＴを用いたルーティングテーブルを記憶している。このルーティングテーブルは、分散保存システムＳ上における各種メッセージの転送先を規定している。具体的に、このルーティングテーブルには、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報が複数登録されている。本実施形態では、ノード情報は、メッセージ送信先候補の「ノードＩＤ」と「ＩＰアドレス及びポート番号」と「Ａｌｉｖｅ情報」とを含む。
【００４４】
分散保存システムＳに接続している１台のノード装置Ｎｎは、必要最低限のノード装置Ｎｎのノード情報をルーティングテーブルとして記憶している。各ノード装置Ｎｎ間で互いに各種メッセージが転送されることで、ノード情報を記憶していないノード装置Ｎｎについてのノード情報が取得される。本実施形態では、ルーティングテーブルを用いて、上述した他のノード装置Ｎｎへ各種メッセージを送信、または転送するとき、メッセージの送信元、または転送元のノード装置Ｎｎのノード情報が含まれて送信される。このメッセージを受信した各ノード装置Ｎｎは、各ノード装置Ｎｎが記憶するルーティングテーブルに、受信したノード情報の登録および更新を行う。このような構成により、各ノード装置Ｎｎは、他のノード装置のノード情報を把握することができる。ルーティングテーブルの登録及び更新を行う方法の詳細は後述する。
【００４５】
[ルーティングテーブルの概要]
以下、分散保存システムＳにおける各ノード装置Ｎｎの機能を説明する。各ノード装置Ｎｎが記憶するルーティングテーブルについて詳細に説明する。ここで、図２及び図３を参照して、ルーティングテーブルについて詳しく説明する。
【００４６】
図２は、ノードＮ２が記憶するルーティングテーブルの一例である。図３は、ＤＨＴのＩＤ空間の一例を示す概念図である。なお、図２及び図３の例においては、説明の便宜上、ノードＩＤのｂｉｔ長を２ｂｉｔ×３桁＝６ｂｉｔとしている。そのため、各桁は、２ｂｉｔで表された４進数（０〜３の整数）で表されている。各桁を２ｂｉｔよりも長いｂｉｔ長を用いても良い。例えば、各桁を４ｂｉｔで表して、０〜ｆの１６進数で表現しても良い。
【００４７】
図２に示すように、ルーティングテーブルは、レベル１（一段目）〜レベル３（三段目）の複数レベルから構成される。各エリアには、ノード情報が登録される。ノード情報として、ノードＩＤと、ノードＩＤに対応するノード装置Ｎ２のＩＰアドレス及びポート番号と、ノード装置Ｎ２のＡｌｉｖｅ情報とが対応付けられて登録される。
【００４８】
各レベルにおける各エリアは、ノードＩＤ空間を分割することにより決定されるエリアである。図３は、ノードＩＤを用いて各エリアが決定される概念図である。ノードＩＤ空間は、各桁が４進数（０〜３の整数）で表される３桁の数字により構成される。図３に示すように、レベル１のエリアとして、ノードＩＤ空間が４つ（４進数のため）に分割される。具体的にレベル１のエリアは、０ＸＸのエリアと、１ＸＸのエリアと、２ＸＸのエリアと、３ＸＸとに分割される。０ＸＸのエリアは、'０００'〜‘１００’の範囲で、'０００'〜'０３３'のノードＩＤが存在するエリアである。１ＸＸのエリアは、'１００'〜‘２００’の範囲で、'１００'〜'１３３'のノードＩＤが存在するエリアである。２ＸＸのエリアは、'２００'〜‘３００’の範囲で、'２００'〜'２３３'のノードＩＤが存在するエリアである。３ＸＸのエリアは、'３００'〜‘０００’の範囲で、'３００'〜'３３３'のノードＩＤが存在するエリアである。
【００４９】
また、レベル２では、レベル１のエリアが更に４つ（４進数のため）に分割される。つまり、０ＸＸ〜３ＸＸの各エリアが更に４つに分割される。０ＸＸのエリアと１ＸＸのエリアと２ＸＸのエリアと３ＸＸのエリアとが夫々４分割される。例えば、１ＸＸのエリアの場合、'１００'〜'１０３'のノードＩＤが存在するエリアが１０Ｘのエリアとして分割される。また、'１１０'〜'１１３'のノードＩＤが存在するエリアが１１Ｘのエリアとして分割される。'１２０'〜'１２３'のノードＩＤが存在するエリアが１２Ｘのエリアとして分割される。'１３０'〜'１３３'のノードＩＤが存在するエリアが１３Ｘのエリアとして分割される。
【００５０】
以降、ノードＮ２のノードＩＤが'１２２'の場合を例として説明する。図２に示すように、ルーティングテーブルのレベル１における１ＸＸのエリアは、ノードＮ２のノードＩＤが存在するエリアである。そのため、レベル１の１ＸＸのエリアには、図２の列でノードＮ２自身のノードＩＤと、ＩＰアドレスまたはポート番号と、Ａｌｉｖｅ情報とが登録される。本実施形態では、ノードＮ２自身のノードＩＤとＩＰアドレスまたはポート番号とＡｌｉｖｅ情報とを登録したが、ノードＩＤとＩＰアドレスまたはポート番号とＡｌｉｖｅ情報とはノードＮ２自身のものであるので登録されなくてもよい。ノードＮ２のノードＩＤが存在しないエリアには、夫々、他の任意のノード装置ＮｎのノードＩＤと、ＩＰアドレスまたはポート番号とＡｌｉｖｅ情報とが登録されている。ノードＮ２のノードＩＤが「１２２」の場合、ノードＮ２のノードＩＤが存在しないエリアは、０ＸＸのエリアと、２ＸＸのエリアと、３ＸＸのエリアとである。
【００５１】
また、ルーティングテーブルのレベル２における１２Ｘのエリアは、ノードＮ２のノードＩＤが存在するエリアである。そのため、レベル２の１２Ｘのエリアには、ノードＮ２自身のノードＩＤと、ＩＰアドレスまたはポート番号と、Ａｌｉｖｅ情報とが登録される。ノードＮ２のノードＩＤが存在しないエリアには、レベル１と同様に、他の任意のノード装置ＮｎのノードＩＤと、ＩＰアドレスまたはポート番号と、Ａｌｉｖｅ情報とが登録されている。
【００５２】
更に、ルーティングテーブルのレベル３には、図２に示すように、ノードＩＤが'１２０'〜'１２２'である。そのため、レベル３の１２２のエリアには、ノードＮ２自身のノードＩＤと、ＩＰアドレスまたはポート番号と、Ａｌｉｖｅ情報とが登録される。本実施形態では、ノードＮ２自身のノードＩＤとＩＰアドレスまたはポート番号とＡｌｉｖｅ情報とを登録したが、ＩＰアドレスまたはポート番号、Ａｌｉｖｅ情報はノードＮ２自身のものであるので、登録されなくても良い。
【００５３】
なお、図２及び図３の例では、ノードＩＤのｂｉｔ長を３桁×２ｂｉｔである。例えば、ノードＩＤのｂｉｔ長を１６桁×４ｂｉｔとした場合、１６レベル分のテーブルが必要となる。図２および図３に示すように、本実施形態におけるルーティングテーブルでは、レベルの数値が大きくなるほど、エリアが狭くなっていく。そして、このようなルーティングテーブルは、例えば、未参加のノード装置が分散保存システムＳに参加する際に生成される。ここで、図４を参照して、分散保存システムＳへの参加時におけるルーティングテーブルの生成手順について詳しく説明する。
【００５４】
図４は、分散保存システムＳへの参加時におけるルーティングテーブルの生成手順の一例を示す概念図である。以降、未参加のノードＮ８が分散保存システムＳに参加する例を用いて説明する。図４のノードＮ８のノードＩＤは、'１２３'が割当てられていることとする。
【００５５】
図４に示すように、未参加のノードＮ８が分散保存システムＳに参加する場合、コンタクトノードＮ３１のＩＰアドレスを用いてコンタクトノードに参加メッセージが送信される。参加メッセージは、ノードＮ８のノード情報を含む。コンタクトノードにメッセージを送信するためのＩＰアドレスを、ノード装置Ｎ８が事前に知っているものとする。例えば、Ｐ２Ｐネットワークに参加するために必要なソフトウェアをダウンロードするときに、コンタクトノードのＩＰアドレスは配布される。参加メッセージを受信したコンタクトノードは、コンタクトノードのルーティングテーブルを参照する。具体的には、ルーティングテーブルにおけるレベル１のテーブルに登録されているノード情報が参照される。レベル１に登録されているノード情報を含む返信メッセージを、コンタクトノードＮ３１はノードＮ８へ返信する。さらにコンタクトノードは、受信された参加メッセージに含まれるノードＩＤと、ルーティングテーブルに登録された他のノードＮｎのノードＩＤと比較する。比較結果に基づいてルーティングテーブルから、一つのノードＮｎが選定される。例えば、参加メッセージに含まれるノードＩＤと最も近いノードＩＤであるノードＮ３５が選定される。ノードＮ８のノードＩＤと最も近いノードＩＤが、ノードＮ３５であった場合を例に説明する。本実施形態では、最も近いノードＩＤは、上位桁がより多く一致するＩＤ、または、比較されるノードＩＤとの差が最も小さいノードＩＤである。このとき、参加メッセージには、次に返信させるテーブルの段数を示す情報が含められる。上記例では、レベル２が参加メッセージに含められる。
【００５６】
参加メッセージを受信したノードＮ３５は、ノードＮ３５のルーティングテーブルのレベル２に登録されているノード情報を含む返信メッセージを、ノードＮ８に対して返信する。さらに、ノードＮ３５は、ルーティングテーブルから選定されたノードＮ２へ、上記参加メッセージを転送する。このとき、参加メッセージには、次に返信させるべきテーブルの段数として、レベル３を示す情報が含められる。
【００５７】
参加メッセージを受信したノードＮ２は、ノードＮ２のルーティングテーブルにおけるレベル３に登録されているノード情報を含む返信メッセージを、ノードＮ８に対して返信する。以上のようにして参加メッセージは、ノードＩＤをキーとしてルーティングに基づいて転送される。そのため、未参加のノードＮ８のノードＩＤに最も近いノードＩＤを有するノードＮｎまで転送される。本実施形態では、最も近いノードＩＤは、上位桁がより多く一致するＩＤ、または、比較されるノードＩＤとの差が最も小さいノードＩＤである。
【００５８】
そして、ノードＮ８は、各ノード装置Ｎｎから受信した返信メッセージに含まれるノード情報を用いてルーティングテーブルを生成する。具体的には、コンタクトノードから送信されたノード情報が、ノードＮ８のルーティングテーブルのレベル１に登録される。ノードＮ３５から送信されたノード情報が、ノードＮ８のルーティングテーブルのレベル２に登録される。ノードＮ２から送信されたノード情報が、ノードＮ８のルーティングテーブルのレベル３に登録される。
【００５９】
こうして、ノードＮ８は、分散システムＳへの参加が完了することになる。本実施形態では、上述したような参加メッセージや、後述するクエリ等の各種メッセージは、メッセージの送信元、または、転送元のノード装置Ｎｎのノード情報を含む。そのため、メッセージを受信したノード装置Ｎｎは、ノード装置Ｎｎのルーティングテーブルに、ノード情報を登録及び更新する。
【００６０】
図５は、各ノード装置Ｎｎ間を転送するメッセージの様子を示す概念図である。具体的には、図５は、ノード装置Ｎｎからの参加メッセージがノードＮ３１、ノードＮ３５、ノードＮ２間を転送する概念図である。
【００６１】
各ノード装置Ｎｎ間を転送するメッセージは、メッセージ送信元のノードＩＤと、メッセージの内容と、送信元または転送元のノード情報とを含む。メッセージ送信元のノードＩＤは、メッセージを送信した送信元のノード装置ＮｎのノードＩＤである。メッセージの内容は、メッセージの目的を表す「参加（ＪＯＩＮ）」、「パブリッシュ」、「クエリ」等である。ノード情報は、送信元または転送元のノードＮｎのノードＩＤと、ＩＰアドレスまたはポート番号と、Ａｌｉｖｅ情報とを含んで構成される。なお、'メッセージの内容'は、参加メッセージの場合、テーブルの登録情報の返信を要求する旨の情報等が含まれている。また、パブリッシュ（登録）メッセージまたはクエリの場合、パブリッシュ（登録）やクエリ（要求）の対象となるコンテンツのコンテンツＩＤが含まれている。
【００６２】
図５に示す例の場合、ノードＮ３５は、コンタクトノードのノードＮ３１から参加メッセージを受信する。そして、ノードＮ３５は、参加メッセージに含まれる送信元または転送元のノードＮ３１のノード情報をノードＮ３５のルーティングテーブルに登録する。このとき、ノードＮ３５のルーティングテーブルにノードＮ３１のノード情報が既に登録されている場合、登録済みノードＮ３１のノード情報は、受信したノード情報に基づいて更新される。
【００６３】
同様に、ノードＮ３５から参加メッセージを受信したノードＮ２は、参加メッセージに含まれる送信元または転送元のノードＮ３５のノード情報をノードＮ２のルーティングテーブルに登録、或いは更新する。以上の手順に従い、ルーティングテーブルは、ノード情報を登録、または、更新される。
【００６４】
このようなＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００６５】
また、図５は、ルーティングテーブルを用いて各種メッセージをマルチキャストにより送信した図である。各種メッセージは、参加メッセージとクエリメッセージとパブリッシュメッセージ等である。本実施形態では、まず、図２に示すレベル１に記載されるノード情報あてにメッセージが送信される。レベル１に記載されるノードＮ３とノードＮ２とノード２１とノード３１とへメッセージが送信される。そして、ノードＮ３１はメッセージをノードＮ３５へ転送する。例えば、図５に示すように、メッセージを受信したノード装置はＮ３５は、受信したノード装置のノード情報とＡｌｉｖｅ情報とをメッセージの送信元のノードＮ３１へ送信する。Ａｌｉｖｅ情報は、メッセージを受信したノード装置ＮｎがＰ２Ｐネットワーク９に接続していることを示す情報である。Ａｌｉｖｅ情報は、ノード装置ＮｎがＰ２Ｐネットワーク９に接続し、起動していることを示す情報であれば特に限定されない。Ｐ２Ｐネットワーク９に接続していないノード装置Ｎｎには、マルチキャストにより送信されたメッセージを受信することができない。従って、Ｐ２Ｐネットワーク９に接続していないノード装置Ｎｎは、Ａｌｉｖｅ情報を送信することができない。メッセージの送信元であるノード装置Ｎｎは、受信したノード情報とＡｌｉｖｅ情報とを、受信したノード情報のノードＩＤと一致するルーティングテーブルに登録する。一方、各種メッセージを送信してから一定期間経過した後に、Ａｌｉｖｅ情報を受信しなかったノード装置Ｎｎについては、Ａｌｉｖｅ情報の代わりに異常情報が登録される。異常情報は、ノード装置ＮｎがＰ２Ｐネットワーク９に接続していないことを示す情報である。
【００６６】
同様に、レベル２に記載されたノード情報あてにメッセージが送信される。メッセージの送信元へ送信されたＡｌｉｖｅ情報が、ルーティングテーブルに登録される。このように、各レベルに記載されたノード情報のＡｌｉｖｅ情報がルーティングテーブルに登録される。ルーティングテーブルに登録されたＡｌｉｖｅ情報は、各ノード装置でランダムなタイミングでセンターサーバ１７へ送信される。尚、本実施形態では、一度Ａｌｉｖｅ情報を送った端末は、一定期間の間、Ａｌｉｖｅ情報が送れなくなるように設定される。具体的には、Ａｌｉｖｅ情報を他のノード装置へ送信したことを示す情報がノード装置Ｎｎの記憶部に記憶される。この内容の詳細については、後述する。
【００６７】
[ノード装置の電気的構成]
次に、図６を参照して、ノード装置Ｎｎの電気的構成ついて説明する。
【００６８】
図６は、本実施形態のノード装置Ｎｎの電気的構成を示すブロック図である。図６に示すように、本実施形態のノード装置Ｎｎには、ノード装置Ｎｎを制御するＣＰＵ３１が備えられている。ＣＰＵ３１には、ＲＡＭ３２とＨＤＤ３３とデコーダ部３４と通信部３９と入力部４０とがそれぞれ電気的に接続されている。ＲＡＭ３２、ＨＤＤ３３などの記憶手段とＣＰＵ３１とは、ノード装置Ｎｎのコンピュータを構成している。そのコンピュータは、ノード装置Ｎｎの動作を制御処理する。ＣＰＵ３１は、タイマー３１１を備える。タイマー３１１は、計時動作を行う。
【００６９】
ＲＡＭ３２は、各種メッセージ一時記憶領域３２１と、Ａｌｉｖｅ情報一時記憶領域３２２と、ＩＤマスク情報一時記憶領域３２３と最大ＩＤマスク情報一時記憶領域３２４とタイマー開始情報一時記憶領域３２５と送信先情報一時記憶領域３２６とを含む。各種メッセージ一時記憶領域３２１は、ノード装置Ｎｎが受信した各種メッセージを一時記憶する。例えば、参加メッセージやクエリやパブリッシュメッセージ等である。Ａｌｉｖｅ情報一時記憶領域３２２は、ノード装置Ｎｎが他のノード装置へ送信するＡｌｉｖｅ情報を一時記憶する。ノード装置ＮｎがＡｌｉｖｅ情報を送信した後に、Ａｌｉｖｅ情報一時記憶領域３２２には、「Ｎｕｌｌ」が一時記憶される。「Ｎｕｌｌ」は、既にＡｌｉｖｅ情報が他のノード装置へ送信されたことを示す。Ａｌｉｖｅ情報一時記憶領域３２２は、本発明の接続情報記憶手段の一例である。また、本発明の接続情報記憶手段の一例であるＡｌｉｖｅ情報一時記憶領域は、ＨＤＤ３３の所定の記憶領域に記憶されても良い。ＩＤマスク情報一時記憶領域３２３は、ルーティングテーブルのレベルを表すＩＤマスクが一時記憶される。最大ＩＤマスク情報一時記憶領域３２４は、ルーティングテーブル記憶領域に記憶されるルーティングテーブルの最大レベルが一時記憶される。例えば、図２に示すテーブルの最大レベルは「レベル３」である。従って、最大ＩＤマスク情報一時記憶領域３２４には、「レベル３」が一時記憶される。タイマー開始情報一時記憶領域３２５は、後述するステップＳ１０５でＡｌｉｖｅ情報が送信された時間を一時記憶する。送信先情報一時記憶領域３２６は、メッセージの送信先を示すノード装置のノード情報と、時間情報とを一時記憶する。時間情報は、送信先情報一時記憶領域３２６に記憶されたノード装置へメッセージが送信された時間を示す。
【００７０】
ＨＤＤ３３は、プログラム記憶領域３３１と、ルーティングテーブル記憶領域３３４とを含む。プログラム記憶領域３３１は、メイン動作プログラム記憶領域３３２と転送処理プログラム記憶領域３３３とを含む。メイン動作プログラム記憶領域３３２は、ノード装置Ｎｎを制御するためのメイン動作プログラム情報を記憶する。転送処理プログラム記憶領域３３３は、マルチキャストメッセージを転送するための転送処理プログラム情報を記憶する。
【００７１】
デコーダ部３４は、映像情報と音声情報とをデコードする。本実施形態のデコードは、エンコード化された映像情報と音声情報とを、データ伸張または復号化することである。映像情報と音声情報とは、コンテンツデータのレプリカに含まれる。
【００７２】
映像処理部３５は、デコードされた映像情報に所定の描画処理を施して映像信号を出力する。
【００７３】
ディスプレイ３６は、映像処理部１５から出力された映像信号に基づいて映像表示する。ディスプレイ３６は、ＣＲＴディスプレイ、または、液晶ディスプレイにより構成される。
【００７４】
音声処理部３７は、上記デコードされた音声情報をアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換する。スピーカ３８は、変化されたアナログオーディオ信号を、アンプにより増幅して出力する。
【００７５】
通信部３９は、ノード装置Ｎｎをインターネットと接続する。通信部３９は、ネットワーク８を介して他のノード装置Ｎｎまたはコンテンツ投入サーバ１６またはセンターサーバ１７と情報の送受信を行う。
【００７６】
入力部４０は、ユーザからの指示を受け付ける。入力部４０は、キーボード、マウス、或いは、操作パネル等から構成される。なお、ノード装置Ｎｎとしては、パーソナルコンピュータ、ＳＴＢ（Ｓｅｔ  Ｔｏｐ  Ｂｏｘ）、或いは、ＴＶ受信機等を適用可能である。
【００７７】
また、分散保存システムＳが、分散保存システムＳに参加する際のアクセス先となるコンタクトノードを備えている場合、各ノード装置ＮｎのＨＤＤ３３にはコンタクトノードのＩＰアドレスまたはポート番号等が記憶されている。更に、ＨＤＤ３３には、コンテンツカタログリストが記憶されている。なお、ＨＤＤ３３に記憶されるプログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよい。また、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００７８】
［ノード装置Ｎｎのメイン処理動作］
以上説明した構成からなる本実施形態のノード装置Ｎｎの動作及び作用について、添付図面を参照して説明する。図７は、ノード装置Ｎｎにおけるメイン動作の処理手順を示すフローチャートである。ノード装置Ｎｎにより上述したＰ２Ｐネットワークへの参加処理の要求が行われたとき、ノード装置Ｎｎのメイン動作処理が実行される。ＣＰＵ３１がメイン動作プログラムを実行することにより、遂行される。以下に示す処理は、ＣＰＵ３１により処理される。メイン動作処理が実行されるとき、初期値として、ＩＤマスク情報一時記憶領域３２３には、「０」が記憶される。また、メイン動作処理が実行されるとき、初期値として、最大ＩＤマスク情報一時記憶領域３２４には、図２に示すルーティングテーブルの「レベル３」が一時記憶される。最大ＩＤマスク情報一時記憶領域３２４に一時記憶される「レベル３」は、ルーティングテーブルの最大レベル数を示す。
【００７９】
ステップＳ１０１では、メイン動作を実行するノード装置ＮｎからＰ２Ｐネットワーク脱退指示を受け付けたか否かが判定される。Ｐ２Ｐネットワーク脱退指示は、ノード装置Ｎｎから視聴終了が行われたこと、または、ノード装置Ｎｎがインターネットとの接続を切断したこと、または、Ｐ２Ｐネットワーク９との接続を切断したことを示す。Ｐ２Ｐネットワーク脱退指示があったと判定したとき、メイン動作処理は終了される。Ｐ２Ｐネットワーク脱退指示があったと判定しなかったとき、ステップＳ１０２が実行される。
【００８０】
ステップＳ１０２では、各種メッセージを受信したか否かが判定される。各種メッセージとは、例えば上述した参加（ＪＯＩＮ）メッセージ、クエリ、パブリッシュメッセージである。各種メッセージを受信したと判定されたとき、ステップＳ１０３が実行される。各種メッセージを受信しなかったと判定されたとき、ステップＳ１０１が実行される。本実施形態のコンピュータと、ステップＳ１０２とは、本発明のメッセージ受信手段の一例である。また、本実施形態のステップＳ１０２は、本発明のメッセージ受信ステップの一例である。
【００８１】
ステップＳ１０３では、Ａｌｉｖｅ情報を他のノード装置へ送信済みか否かが判定される。Ａｌｉｖｅ情報一時記憶領域３２２に、「Ｎｕｌｌ」が記憶されている場合、本実施形態では、Ａｌｉｖｅ情報が他のノード装置へ送信済みであると判定される。Ａｌｉｖｅ情報一時記憶領域３２２に、「Ｎｕｌｌ」が記憶されていない場合、本実施形態では、Ａｌｉｖｅ情報が他のノード装置へ送信済みでないと判定される。ステップＳ１０３でＡｌｉｖｅ情報が他のノード装置へ送信済みであると判定されたとき、ステップＳ１０４が実行される。ステップＳ１０３でＡｌｉｖｅ情報が他のノード装置へ送信済みであると判定されなかったとき、ステップＳ１０５が実行される。
【００８２】
ステップＳ１０４では、メッセージの送信元へ、完了メッセージが送信される。完了メッセージは、Ａｌｉｖｅ情報一時記憶領域３２２に記憶されたＡｌｉｖｅ情報が既に他のノード装置へ送信されたことを示すメッセージである。
【００８３】
ステップＳ１０５では、メッセージの送信元へ、Ａｌｉｖｅ情報が送信される。ステップＳ１０５では、Ａｌｉｖｅ情報は、Ａｌｉｖｅ情報を送信したノード装置のノード情報と共に送信される。本実施形態のコンピュータと、ステップＳ１０５とは、本発明の接続情報送信手段の一例である。また、本実施形態のステップＳ１０５は、本発明の接続情報送信ステップの一例である。
【００８４】
ステップＳ１０６では、タイマー３１１によるタイマーのカウントがスタートされる。ステップＳ１０５でＡｌｉｖｅ情報が送信されたときの時間がタイマー開始情報一時記憶領域３２５に一時記憶される。
【００８５】
ステップＳ１０７では、Ａｌｉｖｅ情報が削除される。具体的には、ステップＳ１０５でＡｌｉｖｅ情報が送信されたのち、Ａｌｉｖｅ情報一時記憶領域３２２に「Ｎｕｌｌ」が記憶される。
【００８６】
ステップＳ１０８では、ＩＤマスク情報一時記憶領域３２３に記憶されている値に、「１」が加算される。例えば、ＩＤマスク情報一時記憶領域３２３に「１」が記憶されている場合、「１」加算された「２」が一時記憶される。
【００８７】
ステップＳ１０９では、記憶されているルーティングテーブルの最大レベルに登録されるノード装置Ｎｎまで転送が終わったか否かが判定される。具体的には、ＩＤマスク情報一時記憶領域３２３に一時記憶された値と、最大ＩＤマスク情報一時記憶領域３２４に一時記憶された値とが一致するか否かが判定される。上記値が一致するとき、テーブルの最大レベルに登録されるノード装置Ｎｎまで、メッセージの転送が終わったと判定される。最大レベルに登録されるノード装置Ｎｎまで、メッセージの転送が終わったと判定されたとき、ステップＳ１１１が実行される。最大レベルに登録されるノード装置Ｎｎまで、メッセージの転送が終わったと判定されなかったとき、ステップＳ１１０が実行される。
【００８８】
ステップＳ１１０では、転送処理が実行される。転送処理の詳細は、後述で説明する。
【００８９】
ステップＳ１１１では、ルーティングテーブルにＡｌｉｖｅ情報が登録されたか否かが判定される。具体的には、ルーティングテーブル記憶領域３３４に記憶されたルーティングテーブルに、Ａｌｉｖｅ情報が登録されているかが判定される。Ａｌｉｖｅ情報が登録されていると判定されたとき、ステップＳ１１２が実行される。Ａｌｉｖｅ情報が登録されていないと判定されたとき、ステップＳ１１４が実行される。
【００９０】
ステップＳ１１２では、ランダムに設定された時間が経過したか否かが判定される。本実施形態では、各ノード装置でランダムに時間が設定される。ランダムに設定された時間が経過したと判定されたとき、ステップＳ１１３が実行される。ランダムに設定された時間が経過したと判定されなかったとき、ステップＳ１１２が再度実行される。ステップＳ１１１で「Ｙｅｓ」と判定されたときから、タイマー３１１によるカウントがスタートされる。カウントがスタートされた時間が、ＲＡＭ３２の所定の記憶領域に一時記憶される。ランダムに設定された時間が経過したか否かは、ステップＳ１１２が実行された時間と、上述したＲＡＭ３２の所定の記憶領域に一時記憶された時間との差が設定された時間を経過したか否かにより判定される。
【００９１】
ステップＳ１１３では、ルーティングテーブルに記憶されたＡｌｉｖｅ情報が、センターサーバ１７へアップロードされる。具体的には、ルーティングテーブルに記憶されたノード情報として少なくともノードＩＤと、Ａｌｉｖｅ情報とが、センターサーバ１７にアップロードされる。アップロードされた後に、ルーティングテーブルに登録されたＡｌｉｖｅ情報は、ルーティングテーブルから削除される。本実施形態のコンピュータと、ステップＳ１１３とは、本発明の管理送信手段の一例である。また、本実施形態のステップＳ１１３は、本発明の管理送信ステップの一例である。ステップＳ１１３が実行されることで、ルーティングテーブルを記憶するノード装置が、ルーティングテーブルに集約したＡｌｉｖｅ情報をセンターサーバ１７へ送信することができる。
【００９２】
ステップＳ１１４では、ステップＳ１０５でＡｌｉｖｅ情報が送信されてから、所定の時間が経過したか否かが判定される。タイマー３１１によりカウントされている現在の時間と、タイマー開始情報一時記憶領域３２５に記憶された時間との差が、所定の時間以上であるか否かにより、所定の時間が経過したか否かが判定される。所定の時間が経過したと判定されたとき、ステップＳ１１５が実行される。所定の時間が経過したと判定されなかったとき、ステップＳ１１４が再度実行される。
【００９３】
ステップＳ１１５では、Ａｌｉｖｅ情報が、Ａｌｉｖｅ情報一時記憶領域３２２に再度一時記憶される。具体的には、Ａｌｉｖｅ情報一時記憶領域３２２に「Ｎｕｌｌ」が記憶されていたとき、Ａｌｉｖｅ情報がＡｌｉｖｅ情報一時記憶領域３２２に記憶される。本実施形態のコンピュータとステップＳ１１５とは、本発明の記憶制御手段の一例である。
【００９４】
（転送処理）
ステップＳ１１０の転送処理では、図８に示されているように、ステップＳ２０１で、メッセージの送信先として決定されていないノード装置が存在するか否かが決定される。具体的には、ＩＤマスク情報記憶領域３２３に記憶されている値と一致するレベルのルーティングテーブルに、メッセージの送信先として決定されていないノード装置が存在するか否かが決定される。本実施形態では、図示はしないが、送信フラグが各ノードＩＤに対応付けられてルーティングテーブルに登録される。送信フラグは、ルーティングテーブルに登録されたノード装置がメッセージの送信先として決定されたか、または、決定されていないかを示す。フラグが「ＯＮ」にされている場合、既にメッセージの送信先として決定されたノード装置であることを示す。フラグが「ＯＦＦ」にされている場合、メッセージの送信先として決定されていないノード装置であることを示す。メッセージの送信先として決定されていないノード装置が存在すると判定されたとき、ステップＳ２０２が実行される。メッセージの送信先として決定されていないノード装置が存在すると判定されなかったとき、転送処理は終了される。
【００９５】
ステップＳ２０２では、ステップＳ２０１で存在すると判定されたテーブルのノード装置の中から、メッセージの送信先が決定される。具体的には、ＩＤマスク情報記憶領域３２３に記憶されている値と一致するレベルのルーティングテーブルに記憶されているノード情報の中から、メッセージの送信先として決定されていないノード装置が送信先として決定される。メッセージの送信先として決定されていないノード装置は、上述したフラグのＯＮ、ＯＦＦにより判定される。決定された送信先を示すノード情報が、送信先情報一時記憶領域３２６に一時記憶される。ステップＳ２０２で決定されたノード情報のフラグがＯＮにされてルーティングテーブルに記憶される。
【００９６】
ステップＳ２０３では、ステップＳ２０２で決定された送信先へメッセージが送信される。具体的には、ステップＳ１０２で受信したメッセージが、ステップＳ２０２で決定された送信先へマルチキャスト配信される。タイマー３１１により、ステップＳ２０３でメッセージが送信された時間が時間情報としてＲＡＭ３２の所定の記憶領域に一時記憶される。本実施形態のコンピュータとステップＳ２０３とは、本発明のメッセージ送信手段の一例である。また、本実施形態のステップＳ２０３とは、本発明のメッセージ送信ステップの一例である。
【００９７】
ステップＳ２０４では、ステップＳ２０３でメッセージを送信した送信先から、Ａｌｉｖｅ情報を受信したか否かが判定される。ステップＳ２０４で受信されるＡｌｉｖｅ情報は、Ａｌｉｖｅ情報を送信してきたノード装置のノード情報を含む。送信先からＡｌｉｖｅ情報を受信したか否かは、送信先情報一時記憶領域３２６に記憶されたノード情報が示すノード装置と、Ａｌｉｖｅ情報が送信されたノード装置とが一致するかにより判定される。Ａｌｉｖｅ情報を受信したと判定したとき、ステップＳ２０５が実行される。Ａｌｉｖｅ情報を受信したと判定されなかったとき、ステップＳ２０６が実行される。
【００９８】
ステップＳ２０５では、ステップＳ２０４で受信したＡｌｉｖｅ情報がルーティングテーブルに記憶される。送信先情報一時記憶領域３２６に記憶されたノード情報に対応するルーティングテーブルに、受信したＡｌｉｖｅ情報が記憶される。本実施形態コンピュータとステップＳ２０５とは、本発明の制御手段の一例である。また、本実施形態のステップＳ２０５は、本発明の制御ステップの一例である。
【００９９】
ステップＳ２０６では、ステップＳ２０３でメッセージを送信した送信先から、完了メッセージを受信したか否かが判定される。具体的には、送信先情報一時記憶領域３２６に記憶されたノード情報が示すノード装置から完了メッセージを受信したか否かが判定される。送信先から完了メッセージを受信したか否かは、送信先情報一時記憶領域３２６に記憶されたノード情報が示すノード装置と、完了メッセージが送信されたノード装置とが一致するかにより判定される。完了メッセージを受信したと判定されたとき、ステップＳ２０１が実行される。完了メッセージを受信したと判定されなかったとき、ステップＳ２０７が実行される。
【０１００】
ステップＳ２０７では、ステップＳ２０３でメッセージが送信されてから所定の時間が経過したか否かが判定される。具体的には、タイマー３１１によりカウントされる現在の時間と、ステップＳ２０３でＲＡＭ３２の所定の記憶領域に記憶された時間情報との差が、所定の時間以上になったか否かにより判定される。所定の時間が経過したと判定されたとき、ステップＳ２０８が実行される。所定の時間が経過したと判定されなかったとき、ステップＳ２０４が再度実行される。本実施形態のコンピュータとステップＳ２０７とは、本発明の接続判定手段の一例である。
【０１０１】
ステップＳ２０８では、ルーティングテーブルに異常情報が記憶される。送信先情報一時記憶領域３２６に記憶されたノード情報に対応するルーティングテーブルに、異常情報が記憶される。
【０１０２】
上記実施形態における分散保存システムＳは、ＤＨＴを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。ＤＨＴを利用したルーティングテーブル以外にも適用可能である。本実施形態は、Ｐ２Ｐネットワーク９を構成するノード装置の一部のノード情報が登録されたルーティングテーブルに、本発明を適用した例である。メッセージの送信先が登録されたルーティングテーブルを用いる分散保存システム全てに適用可能である。メッセージの送信先が全て登録されたルーティングテーブルを用いる分散保存システムにも適用可能である。また、本実施形態では、所在情報としてＩＰアドレスを用いたが、ＩＰアドレスに限定されるものではない。ＭＡＣアドレス等が用いられても良い。
【符号の説明】
【０１０３】
３  ＩＸ
４ａ、４ｂ  ＩＳＰ
５ａ、５ｂ  ＤＳＬ回線業者装置
６  ＦＴＴＨ回線事業者装置
７  回線速度
８  ネットワーク
９  Ｐ２Ｐネットワーク（オーバーレイネットワーク）
１６  コンテンツ投入サーバ
１７  センターサーバ
３１  ＣＰＵ
３２  ＲＡＭ
３３  ＨＤＤ
３４  デコーダ部
３５  映像処理部
３６  ディスプレイ
３７  音声処理部
３８  スピーカ
３９  通信部
４０  入力部
３１１  タイマー
３２１  各種メッセージ記憶一時記憶領域
３２２  Ａｌｉｖｅ情報一時記憶領域
３２３  ＩＤマスク情報一時記憶領域
３２４  最大ＩＤマスク情報一時記憶領域
３２５  タイマー開始情報一時記憶領域
３２６  送信先情報一時記憶領域
３３１  プログラム記憶領域
３３２  メイン動作プログラム記憶領域
３３３  転送処理プログラム記憶領域
３３４  ルーティングテーブル記憶領域
Ｓ  分散保存システム
Ｎｎ  ノード
【図１】
2011023996.tif 000003
【図２】
2011023996.tif 000004
【図３】
2011023996.tif 000005
【図４】
2011023996.tif 000006
【図５】
2011023996.tif 000007
【図６】
2011023996.tif 000008
【図７】
2011023996.tif 000009
【図８】
2011023996.tif 000010