(57)【要約】      （修正有）【課題】  ネットワークを構成する１つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることが可能なコンテンツ分散保存システムを提供する。【解決手段】  ネットワークを介して互いに通信可能な複数のノード装置に複数のコンテンツデータが分散保存されたコンテンツ分散保存システムに含まれるノード装置であって、コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、保存要求情報に応じて、ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、基準を満たす場合には、保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータをネットワークを介して取得して保存するコンテンツデータ取得手段と、を備える。【選択図】  図６
2008236591.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、
前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、
前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、
を備えることを特徴とするノード装置。
【請求項２】
請求項１に記載のノード装置において、
前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、
前記コンテンツデータ取得手段は、現在時刻が前記利用禁止時間帯にない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項３】
請求項１に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークの夫々に接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、
前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記負荷量が前記基準量を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項４】
請求項１に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、
前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項５】
請求項１に記載のノード装置において、
前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、
前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記応答時間が前記基準時間を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項６】
請求項１に記載のノード装置において、
前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、
前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記消費帯域が前記基準値を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項７】
請求項１乃至６の何れか一項に記載のノード装置において、
前記基準を満たさない場合、前記コンテンツデータ取得手段は、当該基準を満たすようになるまで待機し、当該基準を満たすようになったときに、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項８】
請求項１乃至６の何れか一項に記載のノード装置において、
前記基準を満たさない場合、前記コンテンツデータ取得手段は、単位時間当たりの前記コンテンツデータの取得速度を低下させて、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項９】
請求項１乃至６の何れか一項に記載のノード装置において、
前記基準を満たさない場合には、他のノード装置に対して前記保存要求情報を転送する保存要求情報転送手段を更に備えることを特徴とするノード装置。
【請求項１０】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、
他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、
前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、
を備えることを特徴とするノード装置。
【請求項１１】
請求項１０に記載のノード装置において、
前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、
前記コンテンツデータ提供手段は、現在時刻が前記利用禁止時間帯にない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項１２】
請求項１０に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、
前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記負荷量が前記基準量を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項１３】
請求項１０に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、
前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項１４】
請求項１０に記載のノード装置において、
前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、
前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記応答時間が前記基準時間を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項１５】
請求項１０に記載のノード装置において、
前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、
前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記消費帯域が前記基準値を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項１６】
コンピュータを、請求項１乃至１５の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
【請求項１７】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、
前記ノード装置は、
前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、
前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、
を備えることを特徴とするコンテンツ分散保存システム。
【請求項１８】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータ取得方法であって、
前記ノード装置が、
前記コンテンツデータの保存要求を示す保存要求情報を受け付ける工程と、
前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、
前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存する工程と、
を備えることを特徴とするコンテンツデータ取得方法。
【請求項１９】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、
前記ノード装置は、
他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、
前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、
を備えることを特徴とするコンテンツ分散保存システム。
【請求項２０】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータの提供方法であって、
前記ノード装置が、
他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する工程と、
前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、
前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信する工程と、
を備えることを特徴とするコンテンツデータの提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のピアツーピア型の通信システムにおいて、コンテンツデータのレプリカ（複製データ）を複数のノード装置に分散配置（分散保存）させておくコンテンツ分散保存システムが知られており、これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたコンテンツデータのレプリカの所在は、例えば特許文献１に開示されるような分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用して効率良く検索可能になっている。当該ＤＨＴは、各ノード装置に記憶されており、当該ＤＨＴには、各種メッセージの転送先となるべき複数のノード装置を示すノード情報（例えば、ＩＰアドレス及びポート番号を含む）が登録されている。
【０００３】
そして、コンテンツ分散保存システムに参加しているノード装置は、所望のコンテンツデータの取得を望む場合、当該コンテンツデータのレプリカの所在を検索（発見）するためのメッセージ（クエリ）を他のノード装置に送出することにより、当該メッセージは、上記ＤＨＴにしたがって、中継のノード装置により当該コンテンツデータのレプリカの所在の管理元のノード装置に向かって転送され、最終的に当該メッセージが辿り着く上記管理元のノード装置から上記所在を示す情報を取得することになる。これにより、当該メッセージを送出したノード装置は、上記検索に係るコンテンツデータのレプリカを保存しているノード装置に対して、当該コンテンツデータのレプリカを要求し、当該コンテンツデータのレプリカの提供を受けることができる。
【特許文献１】特開２００６−１９７４００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、このようなコンテンツ分散保存システムにおけるネットワークを構成する１つの回線に、ルータ等の中継装置を通じて多くのノード装置が接続している環境も存在する。このため、例えば時間帯によっては、多くのノード装置が１つの回線を共用する場合が生じ、かかる場合、ネットワーク及びルータ等の中継装置の負荷が増大し、好ましくない。
【０００５】
本発明は、以上の問題等に鑑みてなされたものであり、ネットワークを構成する１つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることが可能なコンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びコンテンツデータの提供方法を提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、を備えることを特徴とする。
【０００７】
この発明によれば、当該ノード装置が前記コンテンツデータの保存要求を示す保存要求情報を受け付けた場合に、当該保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別し、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するように構成したので、ネットワークを構成する１つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及び中継装置の負荷を低減させることができる。
【０００８】
請求項２に記載の発明は、請求項１に記載のノード装置において、前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、前記コンテンツデータ取得手段は、現在時刻が前記利用禁止時間帯にない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【０００９】
この発明によれば、現在時刻が前記利用禁止時間帯にない場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、多くのユーザが当該システムを利用する時間帯に当該コンテンツデータの取得を禁止でき、ネットワーク及び中継装置の負荷を低減させることができる。
【００１０】
請求項３に記載の発明は、請求項１に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークの夫々に接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記負荷量が前記基準量を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【００１１】
この発明によれば、中継装置の負荷量が予め設定された基準量を超えていない場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【００１２】
請求項４に記載の発明は、請求項１に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【００１３】
この発明によれば、中継装置に接続されているノード装置の数が、予め設定された基準数を超えている場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【００１４】
請求項５に記載の発明は、請求項１に記載のノード装置において、前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記応答時間が前記基準時間を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【００１５】
この発明によれば、他の装置からの応答時間が、予め設定された基準時間を超えている場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【００１６】
請求項６に記載の発明は、請求項１に記載のノード装置において、前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記消費帯域が前記基準値を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【００１７】
この発明によれば、前記ネットワークの消費帯域が、予め設定された基準値を超えていない場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【００１８】
請求項７に記載の発明は、請求項１乃至６の何れか一項に記載のノード装置において、前記基準を満たさない場合、前記コンテンツデータ取得手段は、当該基準を満たすようになるまで待機し、当該基準を満たすようになったときに、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【００１９】
この発明によれば、上記基準を満たすようになったときに、当該ノード装置が、迅速に他のノード装置から当該コンテンツデータを取得して保存することができる。
【００２０】
請求項８に記載の発明は、請求項１乃至６の何れか一項に記載のノード装置において、前記基準を満たさない場合、前記コンテンツデータ取得手段は、単位時間当たりの前記コンテンツデータの取得速度を低下させて、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【００２１】
この発明によれば、単位時間当たりの前記コンテンツデータの取得速度を低下させてコンテンツデータを取得するので、ネットワーク及び中継装置の負荷を低減させることができる。
【００２２】
請求項９に記載の発明は、請求項１乃至６の何れか一項に記載のノード装置において、前記基準を満たさない場合には、他のノード装置に対して前記保存要求情報を転送する保存要求情報転送手段を更に備えることを特徴とする。
【００２３】
請求項９に記載の発明によれば、当該ノード装置が、他のノード装置にコンテンツデータを保存させることができる。
【００２４】
請求項１０に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、を備えることを特徴とする。
【００２５】
この発明によれば、当該ノード装置が、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信した場合に、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別し、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するように構成したので、ネットワークを構成する１つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及び中継装置の負荷を低減させることができる。
【００２６】
請求項１１に記載の発明は、請求項１０に記載のノード装置において、前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、前記コンテンツデータ提供手段は、現在時刻が前記利用禁止時間帯にない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【００２７】
請求項１２に記載の発明は、請求項１０に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記負荷量が前記基準量を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【００２８】
請求項１３に記載の発明は、請求項１０に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【００２９】
請求項１４に記載の発明は、請求項１０に記載のノード装置において、前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記応答時間が前記基準時間を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【００３０】
請求項１５に記載の発明は、請求項１０に記載のノード装置において、前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記消費帯域が前記基準値を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【００３１】
請求項１６に記載のノード処理プログラムの発明は、コンピュータを、請求項１乃至１５の何れか一項に記載のノード装置として機能させることを特徴とする。
【００３２】
請求項１７に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、前記ノード装置は、前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、を備えることを特徴とする。
【００３３】
請求項１８に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータ取得方法であって、前記ノード装置が、前記コンテンツデータの保存要求を示す保存要求情報を受け付ける工程と、前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存する工程と、を備えることを特徴とする。
【００３４】
請求項１９に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、前記ノード装置は、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、を備えることを特徴とする。
【００３５】
請求項２０に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータの提供方法であって、前記ノード装置が、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する工程と、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信する工程と、を備えることを特徴とする。
【発明の効果】
【００３６】
本発明によれば、ノード装置が、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別し、前記基準を満たす場合に、コンテンツデータを前記ネットワークを介して取得又は前記他のノード装置に対して送信するように構成したので、ネットワークを構成する１つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及び中継装置の負荷を低減させることができる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【００３８】
［１．コンテンツ分散保存システムの構成等］
始めに、図１等を参照して、本実施形態に係るコンテンツ分散保存システムの概要構成等について説明する。
【００３９】
図１は、本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【００４０】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ,４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ,５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界の通信ネットワークであり、通信手段の一例）８が構築されている。なお、図１の例におけるネットワーク（通信ネットワーク）８には、データ（パケット）を転送するためのルータが適宜挿入されている。
【００４１】
このようなネットワーク８には、複数のノード装置（以下、「ノード」という）Ｎｎ（ｎ＝１，２，３・・・の何れか）が接続されている。また、図１に示すＤＳＬ回線事業者５ａに示されるように、ネットワーク８を構成する１つの回線（通信回線）７１には、ルータ５１を通じて複数のノードＮ２〜Ｎ５、及びＮ８等が接続される（１つの回線７１を共用する）ようになっている。なお、ルータ５１に接続されている、符号Ｎｎが付されていないマーク（丸）は、ここでは、コンテンツ分散保存システムＳとは関係の無い一般端末（例えば、ＰＣ）を示している。
【００４２】
また、各ノードＮｎには、固有の製造番号およびＩＰ（Internet Protocol）アドレスが割り当てられている。このような製造番号およびＩＰアドレスは、複数のノードＮｎ間で重複しないものである。
【００４３】
そして、本実施形態に係るコンテンツ分散保存システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの参加により形成されるピアツーピア方式のネットワークシステムとなっている。なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９（論理的なネットワーク）である。かかるオーバーレイネットワーク９は、特定のアルゴリズム、例えば、ＤＨＴ（Distributed Hash Table）を利用したアルゴリズムにより実現される。
【００４４】
そして、コンテンツ分散保存システムＳ（言い換えれば、オーバーレイネットワーク９）に参加している各ノードＮｎには、所定桁数からなる固有の識別情報であるノードＩＤが割り当てられており、当該ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を共通のハッシュ関数（例えば、ＳＨＡ−１等）によりハッシュ化した値（例えば、ｂｉｔ長が１６０ｂｉｔ）であり、図３に示すような一つのＩＤ空間に偏りなく分散して配置されることになる。
【００４５】
なお、コンテンツ分散保存システムＳへの参加は、参加していないノードＮｎ（例えば、ノードＮ８）が、参加している任意のノードＮｎ（例えば、当該システムＳに常時参加しているコンタクトノード）に対して参加要求を示す参加メッセージを送信することによって行われる。
【００４６】
上記のように共通のハッシュ関数により求められた（ハッシュ化された）ノードＩＤは、当該ＩＰアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。また、このノードＩＤは、ノードの最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、2＾128＝340×10＾36台のノードを運用できる。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【００４７】
また、各ノードＮｎは、夫々、ＤＨＴを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムＳ上における各種メッセージの転送先を規定しており、具体的には、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報が複数登録されている。
【００４８】
コンテンツ分散保存システムＳに参加している１台のノードＮｎは、該システムＳに参加している全てのノードＮｎのうち、必要最低限のノードＮｎのノード情報をルーティングテーブルに登録しておき、ノード情報を知らない（記憶していない）ノードＮｎについては、各ノードＮｎ間で互いに各種メッセージを転送し合って届けてもらうようになっている。
【００４９】
ここで、図２及び図３を参照して、ＤＨＴを用いたルーティングテーブルについて詳しく説明する。
【００５０】
図２は、ノードＮ２が保持するＤＨＴを用いたルーティングテーブルの一例を示す図であり、図３は、ＤＨＴのＩＤ空間の一例を示す概念図である。
【００５１】
なお、図２及び図３の例においては、説明の便宜上、ノードＩＤのｂｉｔ長を２ｂｉｔ×３桁＝６ｂｉｔとし、各桁を４進数（０〜３の整数）で表している（実際には、もっと長いｂｉｔ長を用い、各桁も例えば４ｂｉｔに区切って０〜ｆの１６進数で表現する）。
【００５２】
図２の例において、ＤＨＴを用いたルーティングテーブルは、レベル１〜レベル３のテーブルからなり（複数のレベルに区分されており）、各レベルのテーブルエントリーには、エリア毎に、ノード情報として、ノードＩＤとこれに対応するノードＮｎのＩＰアドレス及びポート番号が対応付けられて登録されている。各レベルのテーブルにおける各エリアは、ＤＨＴのノードＩＤ空間を分割することにより得られるエリアである。例えば、図３に示すように、レベル１では、ＤＨＴのＩＤ空間全体が４分割され、“０００”〜“０３３”のノードＩＤが存在するエリアを０ＸＸのエリア、“１００”〜“１３３” のノードＩＤが存在するエリアを１ＸＸのエリア、“２００”〜“２３３” のノードＩＤが存在するエリアを２ＸＸのエリア、“３００”〜“３３３” のノードＩＤが存在するエリアを３ＸＸのエリアとする。また、レベル２では、レベル１のエリア（つまり、０ＸＸ〜３ＸＸのエリア）が更に４分割、例えば１ＸＸのエリアが４分割され、“１００”〜“１０３” のノードＩＤが存在するエリアを１０Ｘのエリア、“１１０”〜“１１３” のノードＩＤが存在するエリアを１１Ｘのエリア、“１２０”〜“１２３” のノードＩＤが存在するエリアを１２Ｘのエリア、“１３０”〜“１３３” のノードＩＤが存在するエリアを１３Ｘのエリアとする。
【００５３】
そして、例えば、ノードＮ２のノードＩＤが“１２２”とすると、図２に示すように、かかるノードＮ２のレベル１における１ＸＸのエリア（自己（つまり、自ノード）が存在するエリア）のテーブルには、自己のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録され、自己が存在しないエリア（つまり、０ＸＸのエリア、２ＸＸのエリア、及び３ＸＸのエリア）には、夫々、他の任意のノードＮｎのノードＩＤ及びＩＰアドレス等が登録されている。
【００５４】
また、かかるノードＮ２のレベル２における１２Ｘのエリア（自己が存在するエリア）のテーブルには、図２に示すように、自己のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録され、自己が存在しないエリア（つまり、１０Ｘのエリア、１１Ｘのエリア、及び１３Ｘのエリア）等には、夫々、他の任意のノードＮｎのノードＩＤ及びＩＰアドレス等が登録されている。
【００５５】
更に、かかるノードＮ２のレベル３には、図２に示すように、ノードＩＤが“１２０”〜“１２２”のノードＩＤ及びＩＰアドレス（ＩＰアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い）等が登録されている。
【００５６】
なお、図２及び図３の例では、ノードＩＤのｂｉｔ長を３桁×２ｂｉｔとしたので、レベル１〜３の３レベル分のテーブルで網羅できるが、ノードＩＤのｂｉｔ長が増せば、その分のテーブルが必要となる（例えば、ノードＩＤのｂｉｔ長を１６桁×４ｂｉｔとした場合、１６レベル分のテーブルが必要となる）。
【００５７】
このように、本実施形態におけるＤＨＴを用いたルーティングテーブルでは、レベルが上がるほど、エリアが狭まっていくようになっている。
【００５８】
また、このようなＤＨＴは、例えば、未参加のノードがコンテンツ分散保存システムＳに参加する際に与えられることになる。
【００５９】
ところで、コンテンツ分散保存システムＳにおいては、内容の異なる様々なコンテンツ（例えば、映画や音楽等）データの夫々の複製データ（以下、「レプリカ」という）が複数のノードＮｎに分散して保存（格納）されている。
【００６０】
例えば、ノードＮ１及びノードＮ５には、タイトルがＸＸＸの映画のコンテンツデータのレプリカが保存されており、一方、ノードＮ３には、タイトルがＹＹＹの映画のコンテンツデータのレプリカが保存されるというように、複数のノードＮｎ（以下、「コンテンツ保持ノード」という）に分散されて保存される。
【００６１】
また、これらのコンテンツデータのレプリカには、夫々、コンテンツ名（タイトル）及びコンテンツＩＤ（コンテンツ毎に固有の識別情報）等の情報が付加されている。このコンテンツＩＤは、例えば、コンテンツ名＋任意の数値（或いは、当該コンテンツデータの先頭数バイトでも良い）が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される（ノードＩＤと同一のＩＤ空間に配置）。或いは、システム管理者が、コンテンツ毎に一意のＩＤ値（ノードＩＤと同一ビット長）を付与しても良い。この場合は、コンテンツ名とそのコンテンツＩＤの対応が書かれたコンテンツカタログ情報が、全ノードＮｎに配布される。
【００６２】
また、このように分散保存されているコンテンツデータのレプリカの所在、つまり、当該コンテンツデータのレプリカを保存したノードＮｎのＩＰアドレス等と当該コンテンツデータに対応するコンテンツＩＤ等の組が含まれるインデックス情報が、当該コンテンツデータのレプリカの所在の管理元であるノードＮｎ（以下、「ルートノード」、又は「コンテンツ（コンテンツＩＤ）のルートノード」という）等により記憶（インデックスキャッシュに記憶）、管理されるようになっている。
【００６３】
例えば、タイトルがＸＸＸの映画のコンテンツデータのレプリカについてのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ４により管理され、タイトルがＹＹＹの映画のコンテンツデータのレプリカについてのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ６により管理される（つまり、レプリカの所在が夫々のコンテンツデータ毎に管理される）。
【００６４】
すなわち、コンテンツ毎にルートノードが分けられるので負荷分散が図らており、しかも、同一（内容が同一）のコンテンツデータ（コンテンツＩＤが同一）のレプリカが、夫々、複数のコンテンツ保持ノードに保存されている場合であっても、かかるコンテンツデータのインデックス情報は、一つのルートノードで管理することができる。このため、各ルートノードは、コンテンツ分散保存システムＳにおいて自己がその所在を管理するコンテンツデータのレプリカの数（言い換えれば、当該レプリカを保存しているコンテンツ保持ノードの数）を認識している。
【００６５】
また、このようなルートノードは、例えば、コンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードＮｎであるように定められる。
【００６６】
そして、あるノードＮｎのユーザが、所望するコンテンツデータを取得したい場合、当該コンテンツデータの取得を望むノードＮｎ（以下、「ユーザノード」という）は、当該ユーザにより選択（例えば、全てのノードＮｎに配信されているコンテンツカタログ情報（コンテンツ名とコンテンツＩＤ等が記述されており、例えばコンテンツカタログ管理サーバ（図示せず）にて管理される）から選択）されたコンテンツデータ（例えば、コンテンツ名が選択される）のコンテンツＩＤ及び自己のＩＰアドレス等を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）を生成し、これを自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送出する。つまり、ユーザノードは、コンテンツ所在問合せ（検索）メッセージを、ルートノードに向けて（ルートノード宛てに）送出する。これにより、コンテンツ所在問合せ（検索）メッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着することになる。
【００６７】
ここで、ユーザノードは、当該ユーザによりコンテンツカタログ情報からコンテンツ名等が選択された場合だけでなく、例えばシステム管理者等のコンテンツ管理サーバからコンテンツ投入要求（保存要求）メッセージ（特定の新規コンテンツデータのコンテンツ名及びコンテンツＩＤ等を含む）を受信した場合にも、コンテンツ所在問合せ（検索）メッセージ（クエリ）をルートノードに向けて送出する。このコンテンツ投入要求（保存要求）メッセージ（事前プッシュメッセージともいう）は、例えば新規コンテンツデータ（コンテンツカタログ情報により公開される前のコンテンツデータ）のレプリカを、コンテンツ分散保存システムＳにおいて所定数確保（保存）させるために、任意の複数のノードＮｎに配信されるものである。そして、所定数以上のレプリカがコンテンツ分散保存システムＳにおいて保存されると、当該新規コンテンツデータのコンテンツ名とコンテンツＩＤ等が記述されたコンテンツカタログ情報が各ノードＮｎに配信（これにより公開）されることになる。或いは、新規に投入するべき新規コンテンツデータの属性情報が記述されたコンテンツカタログ情報を全ノードＮｎに予め配布しておくが、当該コンテンツカタログ情報には、新規コンテンツデータの公開日が設定されており、公開日までは各ノードＮｎのユーザに公開されない（利用できない）ようにしておき、公開日が過ぎると、上記投入要求により事前に新規コンテンツデータを保存した各ノードＮｎ以外のノードＮｎにおいても、当該新規コンテンツデータをリクエストできるようになる。
【００６８】
また、上記コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。
【００６９】
図４は、ユーザノードから送出されたコンテンツ所在問合せ（検索）メッセージの流れの一例を、ＤＨＴのＩＤ空間にて示した概念図である。
【００７０】
図４の例において、例えば、ユーザノードであるノードＮ２は、自己のＤＨＴのレベル１のテーブルを参照して、コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＮ３のＩＰアドレス及びポート番号を取得し、そのＩＰアドレス及びポート番号宛てに、上記コンテンツ所在問合せ（検索）メッセージ（クエリ）を送信する。
【００７１】
これに対して、ノードＮ３は、当該コンテンツ所在問合せ（検索）メッセージを受信し、自己のＤＨＴのレベル２のテーブルを参照して、当該コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有する例えばノードＮ４のＩＰアドレス及びポート番号を取得し、そのＩＰアドレス及びポート番号宛てに、上記コンテンツ所在問合せ（検索）メッセージを転送する。
【００７２】
これに対して、ノードＮ４は、当該コンテンツ所在問合せ（検索）メッセージを受信し、自己のＤＨＴのレベル３のテーブルを参照して、当該コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤが自分である、つまり、自分がそのコンテンツＩＤのルートノードであることを認識すると、当該コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤに対応するインデックス情報をインデックスキャッシュから取得して、当該インデックス情報を、該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信する。これにより、ユーザノードは、所望のコンテンツデータのレプリカを保存している上記コンテンツ保持ノードである例えばノードＮ１に対して、コンテンツ送信要求メッセージを送信し、そこから当該コンテンツデータのレプリカの提供を受けることが可能になる。
【００７３】
或いは、ルートノードであるノードＮ４は、当該インデックス情報に含まれるＩＰアドレス等に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージ（ユーザノードのＩＰアドレス等を含み、当該ユーザノードに対してコンテンツデータのレプリカの送信要求を示す要求情報）を送信する。これにより、ユーザノードは、上記コンテンツ保持ノードである例えばノードＮ１から当該コンテンツデータのレプリカの提供を受けることが可能になる。
【００７４】
なお、コンテンツ分散保存システムＳにおいて分散保存されているレプリカの数が少ない（当該レプリカを保存しているコンテンツ保持ノードの数が少ない）コンテンツデータについては、ユーザノードが上述したコンテンツ所在問合せ（検索）メッセージ（クエリ）を、そのルートノードに向けて送出しても、ノードＮｎやネットワーク８の負荷増大等により、当該ルートノードから迅速に返答（インデックス情報の送信）が得られない（例えば、返答に時間がかかったり、返答が帰ってこない等）場合や、当該コンテンツデータのレプリカを保存しているコンテンツ保持ノードから迅速にコンテンツデータの提供を受けることができない（例えば、ダウンロードに時間がかかる）場合がある。このような場合、各ノードＮｎは、例えば全コンテンツデータを保存、管理しているコンテンツ管理サーバにアクセスして当該レプリカを取得することも可能になっているが、極力、コンテンツ管理サーバに負荷をかけずノードＮｎ間でコンテンツデータのレプリカの授受できることが望ましい。
【００７５】
なお、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード（例えば、ノードＮ３のキャッシュノード）から当該インデックス情報を取得（受信）することもできる。
【００７６】
このようにしてコンテンツデータのレプリカを取得、保存したユーザノードは、当該レプリカを保存したことをそのルートノードに知らせるために（言い換えれば、自己が当該コンテンツデータのレプリカを保持していることを、該システムＳに参加している他のノードＮｎに対して公開するために）、そのコンテンツデータのコンテンツＩＤ及び自己のＩＰアドレス等が含まれるパブリッシュ（登録通知）メッセージ（コンテンツデータのレプリカを保存したので、ＩＰアドレス等の登録の要求を示す登録メッセージ）を生成し、該パブリッシュメッセージを、そのルートノードに向けて送出する。これにより、パブリッシュメッセージは、コンテンツ所在問合せ（検索）メッセージと同じように、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになり、該ルートノードは、受信したパブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報を登録（インデックスキャッシュ領域に記憶）することになる。こうして、上記ユーザノードは、新たに、上記コンテンツデータのレプリカを保持するコンテンツ保持ノードとなる。
【００７７】
なお、上記パブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報は、ルートノードに至るまでの転送経路における中継ノードにおいても登録（キャッシュ）される。
【００７８】
［２．ノードＮｎの構成及び機能等］
次に、図５を参照して、ノードＮｎの構成及び機能について説明する。
【００７９】
図５は、ノードＮｎの概要構成例を示す図である。
【００８０】
各ノードＮｎは、図５に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データおよびプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、各種データ（例えば、コンテンツデータのレプリカ、インデックス情報、ＤＨＴ等）及び各種プログラム等を記憶保存（格納）するためのＨＤ等から構成された記憶部１２と、受信されたコンテンツデータのレプリカ等を一時蓄積するバッファメモリ１３と、コンテンツデータのレプリカに含まれるエンコードされたビデオデータ（映像情報）およびオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ （Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノードＮｎや各種サーバ等との間の情報の通信制御を行うための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、通信部２０、及び入力部２１はバス２２を介して相互に接続されている。なお、ノードＮｎとしては、パーソナルコンピュータ、ＳＴＢ（Set Top Box）、或いは、ＴＶ受信機等を適用可能である。また、記憶部１２には、コンテンツ分散保存システムＳに参加する際のアクセス先となるコンタクトノードのＩＰアドレス及びポート番号等が記憶されている。
【００８１】
このような構成において、制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを読み出して実行することにより、全体を統括制御し、コンテンツ分散保存システムＳへの参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、及びコンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行うようになっており、ユーザノードとしての処理を実行する場合には、本発明における保存要求受付手段、基準判別手段、コンテンツデータ取得手段、負荷情報取得手段、ノード数情報取得手段、計測手段、消費帯域情報取得手段、及び保存要求情報転送手段等として機能するようになっている。また、制御部１１は、コンテンツ保持ノードとしての処理を実行する場合には、本発明における提供要求受信手段、基準判別手段、コンテンツデータ提供手段、負荷情報取得手段、ノード数情報取得手段、計測手段、及び消費帯域情報取得手段等として機能するようになっている。
【００８２】
具体的には、ユーザノードの制御部１１がコンテンツデータの保存要求（保存要求情報）を受け付けた場合（例えば、コンテンツカタログ情報に基づきユーザにより入力部２１を介して選択されたコンテンツデータのコンテンツ検索指示を受けた場合、又はコンテンツ管理サーバからのコンテンツ投入要求（保存要求）メッセージを受信した場合）、当該保存要求情報に応じて、当該システムＳの利用制限有無を判定するために、ネットワーク８の負荷度合いを決定する基準を満たすか否かを判別するようになっている。
【００８３】
ここで、ネットワーク８等の負荷度合いを決定する基準としては、例えば、コンテンツ分散保存システムＳの利用禁止時間帯（例えば、多くのユーザがコンテンツ分散保存システムＳを利用する２１時〜３時位までの間）、自ノードＮｎが接続されたルータ（自ノードＮｎを含む複数のノードＮｎ及びネットワーク８の夫々に接続されデータを中継する中継装置の一例であり、この他にも、ブリッジ、リピータ、又はスイッチ等でも良い）の負荷量、自ノードＮｎが接続されたルータに接続されているノードＮｎの総数、他のノードＮｎ（又はサーバ）からの応答時間、及び自ノードＮｎが接続されているネットワーク８における回線の消費帯域等が挙げられる。
【００８４】
そして、当該制御部１１は、上記基準を満たす場合（例えば、現在時刻がコンテンツ分散保存システムＳの利用禁止時間帯にない場合、上記ルータの負荷量が予め設定された基準量を超えていない場合、上記ルータに接続されているノードＮｎの総数が予め設定された基準数を超えていない場合、他のノードＮｎからの応答時間が予め設定された基準時間を超えていない場合、及び自ノードＮｎが接続されている回線の消費帯域が予め設定された基準値を超えていない場合、の何れか一つの場合、或いはこれらの２つ以上の場合を満たす場合）に（当該システムＳの利用制限有と判定）、上述したように、当該保存要求情報に係るコンテンツデータのコンテンツＩＤ及び自己のＩＰアドレス等を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）をルートノードに向けて送出し、そのレプリカを保存しているコンテンツ保持ノードである他のノードＮｎから当該コンテンツデータのレプリカをネットワーク８を介して取得して保存するようになっている（言い換えれば、上記基準を満たさない場合は、当該コンテンツデータのレプリカを取得しない）。これにより、ネットワーク８及びルータの負荷を低減させることができる。
【００８５】
また、コンテンツ保持ノードの制御部１１が、ユーザノードである他のノードＮｎからコンテンツデータの提供要求を示す提供要求情報を受信した場合（例えば、上述したコンテンツ送信要求メッセージを受信した場合）、当該提供要求情報に応じて、ネットワーク８の負荷度合いを決定する基準を満たすか否かを判別し（上記ユーザノードの場合と同様）、上記基準を満たす場合に（当該システムＳの利用制限有と判定）、上述したように、当該提供要求情報に係るコンテンツデータのレプリカを、上記ユーザノードに対してネットワーク８を介して送信するようになっている（言い換えれば、上記基準を満たさない場合は、当該コンテンツデータのレプリカを送信しない）。
【００８６】
なお、上記ノード処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしてもよいし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【００８７】
［３．コンテンツ分散保存システムＳの動作］
次に、図６乃至図１０等を参照して、コンテンツ分散保存システムＳの動作について説明する。
【００８８】
図６は、ノードＮｎの制御部１１におけるメイン処理を示すフローチャートである。図７（Ａ）〜（Ｅ）は、図６及び図１０におけるシステム利用制限有無判定処理の詳細を示すフローチャートである。図８は、図６及び図１０におけるコンテンツデータ取得処理の詳細を示すフローチャートである。図９（Ａ）及び（Ｂ）は、図６及び図１０におけるシステム利用制限有り時の詳細を示すフローチャートである。図１０は、図６におけるメッセージ受信処理の詳細を示すフローチャートである。
【００８９】
図６に示す処理は、任意のノードＮｎにおいて例えば電源ＯＮになった場合に開始され、コンテンツ分散保存システムＳへの参加処理が実行される。この参加処理においては、当該ノードＮｎの制御部１１は、記憶部１２からコンタクトノードのＩＰアドレス及びポート番号を取得し、これに基づきコンタクトノードにネットワーク８を介して接続し、参加要求を示す参加メッセージ（自己のノードＩＤ及びノード情報等を含む）を送信する。これにより、当該ノードＮｎには、当該システムＳに参加している他のノードＮｎからルーティングテーブルが送信されることになり、受信したルーティングテーブルに基づき自己のルーティングテーブルを生成し、コンテンツ分散保存システムＳに参加が完了することになる。なお、ルーティングテーブルの生成方法は、本発明の直接の関係がないので、詳しい説明を省略する。また、コンタクトノードのＩＰアドレス等の情報は、例えばノードＮｎの出荷時、或いはソフトウェア初回インストール時の初期状態で記憶部１２に記憶される。
【００９０】
こうしてコンテンツ分散保存システムＳへの参加処理が完了すると、制御部１１は、電源ＯＦＦの指示（例えば、ユーザから入力部２１を介した電源ＯＦＦ操作指示）があった場合には（ステップＳ１：ＹＥＳ）、当該処理を終了する。一方、電源ＯＦＦの指示がない場合には（ステップＳ１：ＮＯ）、制御部１１は、ユーザから入力部２１を介してコンテンツ検索指示があったか否かを判別する（ステップＳ２）。ユーザからコンテンツ検索指示があった（例えば表示部１２上に表示されたコンテンツカタログ情報から、当該ユーザが所望のコンテンツデータのコンテンツ名等を入力部２１により選択してコンテンツ検索指示を行った）場合には（ステップＳ２：ＹＥＳ）、ステップＳ３に進み、コンテンツ検索指示がない場合には（ステップＳ２：ＮＯ）、ステップＳ７に進む。
【００９１】
ステップＳ３では、ユーザノードとしてシステム利用制限有無判定処理が行われるが、この例としては、図７（Ａ）〜（Ｅ）に示す処理が挙げられ、何れの処理を採用するかは、例えば、各ノードＮｎで任意、或いはシステム管理者によりコンテンツ分散保存システムＳで統一的に決定される。
【００９２】
例えば、図７（Ａ）のシステム利用制限有無判定処理（例１）では、制御部１１は、現在時刻を示す現在時刻情報を取得し（ステップＳ３１Ａ）、当該現在時刻が、コンテンツ分散保存システムＳにおける、予め設定された（記憶部１２における設定領域に記憶された）利用禁止時間帯（例えば、２１時から３時までの時間帯）にあるか否かを判別し（ステップＳ３２Ａ）、当該現在時刻が利用禁止時間帯にある場合には（ステップＳ３２Ａ：ＹＥＳ）、ネットワーク８等の負荷度合いが高くなるため、返り値を“Ｆ”（システム利用制限有）として図６の処理に戻り、当該現在時刻が利用禁止時間帯にない場合には（ステップＳ３２Ａ：ＮＯ）、返り値を“Ｔ”（システム利用制限無）として図６の処理に戻る。
【００９３】
また、図７（Ｂ）のシステム利用制限有無判定処理（例２）では、制御部１１は、自ノードＮｎが接続されたルータの負荷量（例えば、当該ルータにおけるＣＰＵ使用率の単位時間（例えば、１分）当たりの平均値）を示す負荷情報を当該ルータ（ログを送出するルータ）から取得し（ステップＳ３１Ｂ）、当該負荷量が、予め設定された（記憶部１２における設定領域に記憶された）基準量（例えば、７０％）を超えているか否かを判別し（ステップＳ３２Ｂ）、当該負荷量が基準量を超えている場合には（ステップＳ３２Ｂ：ＹＥＳ）、ネットワーク８等の負荷度合いが高くなるため、返り値を“Ｆ”として図６の処理に戻り、当該負荷量が基準量を超えていない場合には（ステップＳ３２Ｂ：ＮＯ）、返り値を“Ｔ”として図６の処理に戻る。
【００９４】
また、図７（Ｃ）のシステム利用制限有無判定処理（例３）では、制御部１１は、自ノードＮｎが接続されたルータに接続されているノードＮｎを含む全ての端末（コンテンツ分散保存システムＳに参加しているか否か及び参加可能か否かに拘わらずルータに接続されている全ての端末）の数を示すノード数情報を当該ルータから取得（同じセグメント上にある全てのノードＮｎにブロードキャストして各ノードＮｎからの応答に基づき当該ノードＮｎの数を算出しても良い）し（ステップＳ３１Ｃ）、当該ノードＮｎの数（総数）が、予め設定された（記憶部１２における設定領域に記憶された）基準数を超えているか否かを判別し（ステップＳ３２Ｃ）、当該ノードＮｎの総数が基準数を超えている場合には（ステップＳ３２Ｃ：ＹＥＳ）、ネットワーク８等の負荷度合いが高くなるため、返り値を“Ｆ”として図６の処理に戻り、当該ノードＮｎの総数が基準数を超えていない場合には（ステップＳ３２Ｃ：ＮＯ）、返り値を“Ｔ”として図６の処理に戻る。
【００９５】
また、図７（Ｄ）のシステム利用制限有無判定処理（例４）では、制御部１１は、予め設定されたサーバからの応答時間（レスポンス時間）を計測（例えば、ピング（Ping））を送信し、返信されてきた時間を計測）し（ステップＳ３１Ｄ）、計測した応答時間が、予め設定された（記憶部１２における設定領域に記憶された）基準時間を超えているか否かを判別し（ステップＳ３２Ｄ）、当該応答時間が基準時間を超えている場合には（ステップＳ３２Ｄ：ＹＥＳ）、ネットワーク８等の負荷度合いが高くなるため、返り値を“Ｆ”として図６の処理に戻り、当該応答時間が基準時間を超えていない場合には（ステップＳ３２Ｄ：ＮＯ）、返り値を“Ｔ”として図６の処理に戻る。
【００９６】
また、図７（Ｅ）のシステム利用制限有無判定処理（例５）では、制御部１１は、自ノードＮｎ（例えば、ノードＮ２）が接続されているネットワーク８における回線（例えば、図１に示す回線７１）の消費帯域（ｂｐｓ）を示す消費帯域情報を取得（例えば、予め設定された他のノードＮｎに対して所定量のデータを伝送するように要求し、単位時間当たりのデータ伝送量等に基づき計測）し（ステップＳ３１Ｅ）、当該消費帯域が、予め設定された（記憶部１２における設定領域に記憶された）基準値（例えば、最大消費帯域の６０％）を超えているか否かを判別し（ステップＳ３２Ｅ）、当該消費帯域が基準値を超えている場合には（ステップＳ３２Ｅ：ＹＥＳ）、ネットワーク８等の負荷度合いが高くなるため、返り値を“Ｆ”として図６の処理に戻り、当該消費帯域が基準値を超えていない場合には（ステップＳ３２Ｅ：ＮＯ）、返り値を“Ｔ”として図６の処理に戻る。
【００９７】
なお、図７（Ａ）〜（Ｅ）に示す処理の組合せを採用しても良く、例えば、現在時刻がコンテンツ分散保存システムＳの利用禁止時間帯にあっても、上記ルータの負荷量が予め設定された基準量を超えていない場合（或いは、上記ルータに接続されているノードＮｎの総数が予め設定された基準数を超えていない場合）には、返り値を“Ｔ”として図６の処理に戻るように構成しても良い。
【００９８】
次に、制御部１１は、図６に示すステップＳ４では、システム利用制限有無判定処理からの返り値が“Ｔ”であるか否かを判別し、返り値が“Ｔ”である場合には（ステップＳ４：ＹＥＳ）、ステップＳ５に進み、返り値が“Ｔ”でない（返り値が“Ｆ”である）場合には（ステップＳ４：ＮＯ）、ステップＳ６に進む。
【００９９】
ステップＳ５では、制御部１１は、コンテンツデータ取得処理を実行し、その後、ステップＳ７に進む。
【０１００】
当該コンテンツデータ取得処理において、制御部１１は、図８に示すように、コンテンツ所在問合せ（検索）処理を行う（ステップＳ５１）。かかるコンテンツ所在問合せ（検索）処理においては、制御部１１は、上記ステップＳ２におけるコンテンツ検索指示に係るコンテンツデータのコンテンツＩＤを含むコンテンツ所在問合せ（検索）メッセージを、自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎ（つまり、当該コンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードＮｎ）に対して送信（当該コンテンツＩＤのルートノードに向けて送出）し、当該コンテンツＩＤのルートノードからインデックス情報を取得する。
【０１０１】
次いで、制御部１１は、レプリカの送信（ダウンロード）間隔、及び１回のダウンロードにおけるデータ量を設定し（ステップＳ５２）、当該設定した送信間隔及びデータ量を指定する情報を含むコンテンツ送信要求メッセージを、上記取得したインデックス情報に含まれるＩＰアドレス等に基づき、コンテンツ保持ノードに対して送信する（ステップＳ５３）。これに応じて、コンテンツ保持ノードは、上記コンテンツ送信要求メッセージにより指定されたコンテンツデータのレプリカを上記ユーザノードへ送信することになるが、このとき、当該レプリカを上記指定されたデータ量（ブロック）毎に分割し、コンテンツ送信要求メッセージにより指定された送信間隔で順次送信することになる。
【０１０２】
図１１（Ａ）は、システム利用制限無時において、レプリカの各ブロックが送信間隔Ｔ１でコンテンツ保持ノードから送信される様子を示す図である。なお、当該コンテンツデータのレプリカを構成する各ブロックは、夫々別々のコンテンツ保持ノードに保存されるように構成し、ユーザノードは、上記設定したデータ量を指定する情報を含むコンテンツ送信要求メッセージを、夫々のコンテンツ保持ノードに対して上記設定した送信間隔で送信するように構成しても良い。
【０１０３】
そして、コンテンツ保持ノードから送信された各ブロックは、通信部２０を通じて受信されバッファメモリ１３に蓄積される。そして、制御部１１は、バッファメモリ１３に所定量の上記ブロックのデータが蓄積されたとき、当該ブロックのデータをバッファメモリ１３から記憶部１２に記憶保存（例えば、ＨＤの所定領域に書き込む）させる（ステップＳ５４）。こうして、順次当該ブロックのデータがバッファメモリ１３から記憶部１２に送られ記憶保存されていく。
【０１０４】
次いで、制御部１１は、レプリカを構成するブロックが全て揃い、記憶保存された否かを判断し（ステップＳ５５）、全て記憶保存されていない場合には（ステップＳ５５：ＮＯ）、ステップ５４に戻り当該処理を継続し、全て記憶保存された場合には（ステップＳ５５：ＹＥＳ）、ステップＳ５６に進む。なお、当該レプリカのデータ量が少ない場合、バッファメモリ１３に全てのブロックが揃ってから記憶部１２に記憶保存されるように構成しても良い。
【０１０５】
次いで、制御部１１は、当該保存されたレプリカに係るコンテンツデータのコンテンツＩＤを含む、上述したパブリッシュメッセージを、自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎに対して送信（当該コンテンツＩＤのルートノードに向けて送出）し（ステップＳ５６）、図６の処理に戻る。これにより、当該パブリッシュメッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになり、該ルートノードは、受信したパブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報を登録する。
【０１０６】
ステップＳ６では、ユーザノードとしてシステム利用制限有時の処理が行われるが、この例としては、図９（Ａ）及び（Ｂ）に示す処理が挙げられ、何れの処理を採用するかは、例えば、各ノードＮｎで任意、或いはシステム管理者によりコンテンツ分散保存システムＳで統一的に決定される。
【０１０７】
例えば、図９（Ａ）のシステム利用制限有時の処理（例１）では、制御部１１は、システム利用制限無になったときに（基準を満たすようになるまで待機）取得するべきコンテンツデータの例えばコンテンツＩＤ等を登録するためのコンテンツ取得リストに、上記ステップＳ２におけるコンテンツ検索指示に係るコンテンツデータのコンテンツＩＤ等を登録し（ステップＳ６１Ａ）、図６の処理に戻る。
【０１０８】
また、図９（Ｂ）のシステム利用制限有時の処理（例２）では、制御部１１は、ランダムなノードＩＤを生成し（ステップＳ６１Ｂ）、自己のＤＨＴを用いたルーティンングテーブルに登録されたノードＩＤのうち、自ノードＮｎのノードＩＤが、当該生成したノードＩＤに最も近い（例えば、上位桁がより多く一致する）か否かを判別し（ステップＳ６２Ｂ）、自ノードＮｎのノードＩＤが、当該生成したノードＩＤに最も近い場合には（ステップＳ６２Ｂ：ＹＥＳ）、ステップＳ６１Ｂに戻り、同様の処理を行う。一方、自ノードＮｎのノードＩＤが当該生成したノードＩＤに最も近くない場合には（ステップＳ６２Ｂ：ＮＯ）、制御部１１は、当該生成したノードＩＤに最も近いノードＩＤを有する他のノードＮｎを、自己のＤＨＴを用いたルーティンングテーブルから特定し、当該ノードＮｎに対して、コンテンツ投入要求メッセージを転送する（ステップＳ６３Ｂ）。
【０１０９】
なお、制御部１１は、ランダムなノードＩＤを生成せずに、自己のＤＨＴを用いたルーティングテーブルからランダムに他のノードＮｎを特定して、そのノードＮｎに対して、コンテンツ投入要求メッセージを転送するように構成しても良い。
【０１１０】
また、システム利用制限有時の処理の別の例として、制御部１１は、単位時間当たりのコンテンツデータのレプリカの取得（ダウンロード）速度を低下させて、上記コンテンツ保持ノードから当該コンテンツデータのレプリカを取得して保存するように構成しても良い。この場合、上記ステップＳ６では、システム利用制限有時の処理として図８に示すコンテンツデータ取得処理が行われ、制御部１１は、ステップＳ５２において、レプリカの１回のダウンロードにおけるデータ量を、システム利用制限無時よりも減らす（図１１（Ｂ））ように設定（レプリカの送信（ダウンロード）間隔は同じ）する。これにより、コンテンツデータのレプリカ全体としての取得（ダウンロード）速度が低下し、ネットワーク８及びルータの負荷を抑えることができる。なお、ステップＳ５２において、レプリカの送信（ダウンロード）間隔が、システム利用制限無時よりも長く設定（図１１に示す送信間隔Ｔ１より長く設定）されるように構成しても良い。
【０１１１】
以上のシステム利用制限有時の処理が行われた後、ステップＳ７に進む。
【０１１２】
次に、ステップＳ７では、制御部１１は、他のノードＮｎから送信されたメッセージを受信したか否かを判別し、当該メッセージを受信していない場合には（ステップＳ７：ＮＯ）、ステップＳ９に進み、当該メッセージを受信した場合には（ステップＳ７：ＹＥＳ）、ステップＳ８に進み、メッセージ受信処理を行う。
【０１１３】
当該メッセージ受信処理では、図１０に示すように、制御部１１は、受信されたメッセージがコンテンツ所在問合せメッセージであるか否かを判別し（ステップＳ８１）、コンテンツ所在問合せメッセージでない場合には（ステップＳ８１：ＮＯ）、ステップＳ８６に進む。一方、コンテンツ所在問合せメッセージである場合には（ステップＳ８１：ＹＥＳ）、制御部１１は、所在問合せ対象のインデックス情報（コンテンツ所在問合せメッセージに含まれるコンテンツＩＤに対応するインデックス情報）がインデックスキャッシュに記憶されているか否かを判別し（ステップＳ８２）、記憶されている場合には（ステップＳ８２：ＹＥＳ）、当該インデックス情報を該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して送信し（ステップＳ８３）、図６の処理に戻る。一方、当該インデックス情報が記憶されていない場合には（ステップＳ８２：ＮＯ）、制御部１１は、自己（自ノードＮｎ）がルートノードであるか否かを判別（つまり、自己のルーティングテーブルを参照して、当該コンテンツ所在問合せメッセージに含まれるコンテンツＩＤと最も近いノードＩＤが自分であるか否かを判別）し（ステップＳ８４）、自己がルートノードでない（つまり、中継ノードである）場合には（ステップＳ８４：ＮＯ）、ステップＳ８５に進み、自己がルートノードである場合には（ステップＳ８４：ＹＥＳ）、図６の処理に戻る。
【０１１４】
ステップＳ８５では、制御部１１は、受信されたコンテンツ所在問合せメッセージを、自己のＤＨＴを用いたルーティングテーブルにしたがって他のノードＮｎ（つまり、コンテンツ所在問合せメッセージに含まれるコンテンツＩＤと最も近いノードＩＤを有するノードＮｎ）に対して転送（当該コンテンツＩＤのルートノードに向けて送出）し、図６の処理に戻る。
【０１１５】
ステップＳ８６では、制御部１１は、受信されたメッセージがコンテンツ投入要求メッセージであるか否かを判別し、コンテンツ投入要求メッセージでない場合には（ステップＳ８６：ＮＯ）、ステップＳ９１に進む。一方、コンテンツ投入要求メッセージである場合には（ステップＳ８６：ＹＥＳ）、上述したステップＳ３と同様、ユーザノードとしてシステム利用制限有無判定処理（図７（Ａ）〜（Ｅ）に示す処理の何れか、又はその組み合わせ）が行われる（ステップＳ８７）。
【０１１６】
次いで、制御部１１は、システム利用制限有無判定処理からの返り値が“Ｔ”であるか否かを判別し（ステップＳ８８）、返り値が“Ｔ”である場合には（ステップＳ８８：ＹＥＳ）、上述したステップＳ５と同様、コンテンツ取得処理を行い（ステップＳ８９）、返り値が“Ｔ”でない（返り値が“Ｆ”である）場合には（ステップＳ８８：ＮＯ）、上述したステップＳ６と同様、システム利用制限有時の処理を行い（ステップＳ９０）、図６の処理に戻る。
【０１１７】
ステップＳ９１では、制御部１１は、受信されたメッセージがコンテンツ送信要求メッセージであるか否かを判別し、コンテンツ送信要求メッセージでない場合には（ステップＳ９１：ＮＯ）、ステップＳ９６に進む。一方、コンテンツ送信要求メッセージである場合には（ステップＳ９１：ＹＥＳ）、コンテンツ保持ノードとしてシステム利用制限有無判定処理（図７（Ａ）〜（Ｅ）に示す処理の何れか、又はその組み合わせ）が行われる（ステップＳ９２）。
【０１１８】
なお、コンテンツ保持ノードとしてシステム利用制限有無判定処理が行われる場合、ユーザノードとしてシステム利用制限有無判定処理が行われる場合よりも、図７（Ｂ）〜（Ｅ）における基準（基準量、基準数、基準時間、基準値）を緩く設定するように構成しても良い。例えば、ユーザノードとして図７（Ｅ）の処理が行われる場合、基準値を例えば最大消費帯域の６０％とするのに対し、コンテンツ保持ノードとして図７（Ｅ）の処理が行われる場合、基準値を例えば最大消費帯域の８０％とする。コンテンツ保持ノードとして動作している（アップロードしている）間は、制限を緩めることにより、ユーザノードのダウンロードがスムーズに行えるためである。
【０１１９】
次いで、制御部１１は、システム利用制限有無判定処理からの返り値が“Ｔ”であるか否かを判別し（ステップＳ９３）、返り値が“Ｔ”である場合には（ステップＳ９３：ＹＥＳ）、コンテンツデータ提供（アップロード）処理を行い（ステップＳ９４）、図６の処理に戻る。当該コンテンツ提供処理においては、上述したように、受信されたコンテンツ送信要求メッセージにより指定されたコンテンツデータのレプリカが、ブロック毎に、当該コンテンツ送信要求メッセージの送信元のユーザノードに対して順次送信されることになる。
【０１２０】
一方、返り値が“Ｔ”でない場合には（ステップＳ９３：ＮＯ）、制御部１１は、当該コンテンツ送信要求メッセージの送信元のユーザノードに対して、コンテンツデータのレプリカを送信（提供）できないことを示す提供不可メッセージを通信部２０等を介して送信し（ステップＳ９５）、図６の処理に戻る。
【０１２１】
ステップＳ９６では、制御部１１は、受信されたメッセージがパブリッシュメッセージであるか否かを判別し、パブリッシュメッセージでない場合には（ステップＳ９６：ＮＯ）、ステップＳ１００に進む。一方、パブリッシュメッセージである場合には（ステップＳ９６：ＹＥＳ）、受信されたパブリッシュメッセージに含まれるＩＰアドレス等及びコンテンツＩＤの組を含むインデックス情報を登録（インデックスキャッシュ領域に記憶）する（ステップＳ９７）。
【０１２２】
次いで、制御部１１は、上記ステップＳ８４と同様、自己がルートノードであるか否かを判別し（ステップＳ９８）、自己がルートノードでない（つまり、中継ノードである）場合には（ステップＳ９８：ＮＯ）、ステップＳ９９に進み、自己がルートノードである場合には（ステップＳ９８：ＹＥＳ）、図６の処理に戻る。
【０１２３】
ステップＳ９９では、制御部１１は、受信されたパブリッシュメッセージを、自己のルーティングテーブルにしたがって他のノードＮｎ（つまり、パブリッシュメッセージに含まれるコンテンツＩＤと最も近いノードＩＤを有するノードＮｎ）に対して転送（当該コンテンツＩＤのルートノードに向けて送出）し、図６の処理に戻る。
【０１２４】
なお、ステップＳ１００における、その他のメッセージ受信処理においては、その他のメッセージ（例えば、参加メッセージ）が受信された場合の処理が行われる。
【０１２５】
次に、図６に示すステップＳ９では、上述したステップＳ３と同様、システム利用制限有無判定処理が行われる。
【０１２６】
そして、制御部１１は、システム利用制限有無判定処理からの返り値が“Ｔ”であるか否かを判別し（ステップＳ１０）、返り値が“Ｔ”である場合（つまり、基準が満たされシステム利用制限無になったとき）には（ステップＳ１０：ＹＥＳ）、ステップＳ１１に進み、返り値が“Ｔ”でない場合には（ステップＳ１０：ＮＯ）、ステップＳ１３に進む。
【０１２７】
ステップＳ１１では、制御部１１は、コンテンツ登録リストにコンテンツデータのコンテンツ名及びコンテンツＩＤが登録（上記ステップＳ６又はＳ９０にて登録）されているか否かを判別し、登録されていない場合には（ステップＳ１１：ＮＯ）、ステップＳ１３に進み、登録されている場合には（ステップＳ１１：ＹＥＳ）、上述したステップＳ５と同様、コンテンツデータ取得処理を行う（ステップＳ１２）。つまり、システム利用制限有無判定処理（ステップＳ３又はステップＳ８７）により基準を満たさない（返り値が“Ｆ”）場合、制御部１１は、コンテンツ取得リストに登録して基準を満たすようになるまで待機し、ステップＳ９のシステム利用制限有無判定処理で基準を満たすようになったときに、コンテンツ保持ノードから当該コンテンツデータのレプリカを取得（ダウンロード）して保存することになる。
【０１２８】
なお、ステップＳ１３におけるその他の処理では、例えば、ユーザからの入力部２１を介した指示に応じた処理等が行われ、ステップＳ１に戻る。
【０１２９】
以上説明したように、上記実施形態によれば、ユーザノードがコンテンツデータの保存要求（保存要求情報）を受け付けた場合、当該保存要求情報に応じて、当該システムＳの利用制限有無を判定するために、ネットワーク８の負荷度合いを決定する上記基準を満たすか否かを判別し、当該基準を満たす場合（例えば、現在時刻がコンテンツ分散保存システムＳの利用禁止時間帯にない場合、上記ルータの負荷量が予め設定された基準量を超えていない場合、上記ルータに接続されているノードＮｎの総数が予め設定された基準数を超えていない場合、他のノードＮｎからの応答時間が予め設定された基準時間を超えていない場合、及び自ノードＮｎが接続されている回線の消費帯域が予め設定された基準値を超えていない場合、の何れか一つの場合、或いはこれらの２つ以上の場合を満たす場合）に（当該システムＳの利用制限有と判定）、当該保存要求情報に係るコンテンツデータのコンテンツＩＤ及び自己のＩＰアドレス等を含むコンテンツ所在問合せ（検索）メッセージ（クエリ）をルートノードに向けて送出し、そのレプリカを保存しているコンテンツ保持ノードである他のノードＮｎから当該コンテンツデータのレプリカをネットワーク８を介して取得して保存するように構成したので、ネットワーク８を構成する１つの回線にルータ等の中継装置を通じて多くのノードＮｎが接続している（１つの回線を共用している）場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることができる。また、ネットワークが混み合っているときに、他のノードＮｎのユーザに迷惑をかけることを回避することができる。
【０１３０】
また、コンテンツ保持ノードが、ユーザノードである他のノードＮｎからコンテンツデータの提供要求を示す提供要求情報を受信した場合も、当該提供要求情報に応じて、ネットワーク８の負荷度合いを決定する基準を満たすか否かを判別し、上記基準を満たす場合に（当該システムＳの利用制限有と判定）、当該提供要求情報に係るコンテンツデータのレプリカを、上記ユーザノードに対してネットワーク８を介して送信するように構成したので、ネットワーク８を構成する１つの回線にルータ等の中継装置を通じて多くのノードＮｎが接続している（１つの回線を共用している）場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることができる。
【０１３１】
また、各ノードＮｎは、コンテンツ管理サーバからコンテンツ投入要求（保存要求）メッセージを受信した場合に、ネットワーク８の負荷度合いを決定する基準を満たさないときも、当該コンテンツデータのレプリカの投入を極力妨げないようにすることができる。
【０１３２】
なお、上記実施形態におけるコンテンツ分散保存システムＳは、ＤＨＴを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【０１３３】
【図１】本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ノードＮ２が保持するＤＨＴを用いたルーティングテーブルの一例を示す図である。
【図３】ＤＨＴのＩＤ空間の一例を示す概念図である。
【図４】ユーザノードから送出されたコンテンツ所在問合せ（検索）メッセージの流れの一例を、ＤＨＴのＩＤ空間にて示した概念図である。
【図５】ノードＮｎの概要構成例を示す図である。
【図６】ノードＮｎの制御部１１におけるメイン処理を示すフローチャートである。
【図７】図６及び図１０におけるシステム利用制限有無判定処理の詳細を示すフローチャートである。
【図８】図６及び図１０におけるコンテンツデータ取得処理の詳細を示すフローチャートである。
【図９】図６及び図１０におけるシステム利用制限有り時の詳細を示すフローチャートである。
【図１０】図６におけるメッセージ受信処理の詳細を示すフローチャートである。
【図１１】コンテンツデータのレプリカの各ブロックが送信間隔Ｔ１でコンテンツ保持ノードから送信される様子を示す図である。
【符号の説明】
【０１３４】
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スピーカ
２０  通信部
２１  入力部
２２  バス
Ｎｎ  ノード
Ｓ  コンテンツ分散保存システム
【図１】
2008236591.tif 000003
【図２】
2008236591.tif 000004
【図３】
2008236591.tif 000005
【図４】
2008236591.tif 000006
【図５】
2008236591.tif 000007
【図６】
2008236591.tif 000008
【図７】
2008236591.tif 000009
【図８】
2008236591.tif 000010
【図９】
2008236591.tif 000011
【図１０】
2008236591.tif 000012
【図１１】
2008236591.tif 000013