(57)【要約】【課題】複数のグループに所属するノード装置におけるコンテンツの転送遅延を防ぐ。【解決手段】ノード装置は、配信スケジュール情報に基づいて、取得時期が到来したか否かを判定する取得時期判定手段と、取得時期が到来したと取得時期判定手段により判定された場合、取得時期が到来したコンテンツに対応する第１のグループと異なる他のグループに対応するコンテンツをコンテンツ転送手段により転送しているか否かを判定する転送判定手段と、を備え、スケジュール生成装置は、コンテンツ転送手段により他のグループに対応するコンテンツを転送していると転送判定手段により判定されたノード装置である転送ノード装置と、第１のグループにおいて取得時期が転送ノード装置よりも遅い何れか一つのノード装置と、の第１のグループにおける取得時期を互いに入れ替えた配信スケジュール情報を生成するスケジュール情報生成手段と、を備える。【選択図】図１１
2010232782.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置と、配信スケジュール情報を生成するスケジュール生成装置と、を備えるコンテンツ配信システムであり、前記複数のノード装置の何れか複数のノード装置により構成されるグループ毎に、何れかのノード装置から他のノード装置にコンテンツを転送するコンテンツ配信システムであって、
所属するグループに対応するコンテンツを、当該グループに所属するノード装置に要求することにより取得するコンテンツ取得手段と、
前記コンテンツ取得手段により取得されたコンテンツを、当該コンテンツに対応するグループに所属し取得先のノード装置とは異なるノード装置に転送するコンテンツ転送手段と、
前記コンテンツ取得手段によるコンテンツの取得時期を示す前記配信スケジュール情報を取得するスケジュール情報取得手段と、
前記スケジュール情報取得手段により取得された前記配信スケジュール情報に基づいて、前記取得時期が到来したか否かを判定する取得時期判定手段と、
前記取得時期が到来したと前記取得時期判定手段により判定された場合、前記取得時期が到来したコンテンツに対応する第１のグループと異なる他のグループに対応するコンテンツを前記コンテンツ転送手段により転送しているか否かを判定する転送判定手段と、
を備え、
前記スケジュール生成装置は、
前記コンテンツ転送手段により前記他のグループに対応するコンテンツを転送していると前記転送判定手段により判定されたノード装置である転送ノード装置と、前記第１のグループにおいて前記取得時期が前記転送ノード装置よりも遅い何れか一つのノード装置と、の前記第１のグループにおける前記取得時期を互いに入れ替えた前記配信スケジュール情報を生成するスケジュール情報生成手段と、
を備えることを特徴とするコンテンツ配信システム。
【請求項２】
請求項１に記載のコンテンツ配信システムにおいて、
前記配信スケジュール情報生成手段は、前記転送ノード装置と、前記第１のグループにおいて前記取得時期が前記転送ノード装置よりも遅いノード装置のうち前記他のグループには所属しないノード装置と、の前記第１のグループにおける前記取得時期を互いに入れ替えた前記配信スケジュール情報を生成することを特徴とするコンテンツ配信システム。
【請求項３】
請求項１又は請求項２に記載のコンテンツ配信システムにおいて、
前記コンテンツ配信システムは、前記ネットワークを介して互いに通信可能な複数のノード装置の何れか複数のノード装置により構成されるグループ毎に、当該複数のノード装置が複数の階層を形成し、上位階層のノード装置から下位階層のノード装置へコンテンツが順次転送されるようにしたものであって、
前記配信スケジュール情報は、コンテンツの取得時間を階層毎に対応付けて示すものであり、
前記コンテンツ取得手段は、所属するグループに対応するコンテンツを、当該グループにおいて上位階層側に位置するノード装置に要求することにより取得し、
前記コンテンツ転送手段は、前記コンテンツ取得手段により取得されたコンテンツを、当該コンテンツに対応するグループにおいて下位階層側に位置するノード装置に転送し、
前記配信スケジュール情報生成手段は、前記転送ノード装置と、前記第１のグループにおいて前記転送ノード装置よりも下位の階層に位置するノード装置と、が前記第１グループにおいて位置する階層を互いに入れ替えた前記配信スケジュール情報を生成することを特徴とするコンテンツ配信システム。
【請求項４】
請求項３に記載のコンテンツ配信システムにおいて、
前記配信スケジュール情報生成手段は、前記転送ノード装置と、前記第１のグループにおいて最下位層に位置するノード装置と、が前記第１グループにおいて位置する階層を互いに入れ替えた前記配信スケジュール情報を生成することを特徴とするコンテンツ配信システム。
【請求項５】
請求項１乃至４の何れか１項に記載のコンテンツ配信システムに含まれるノード装置であって、
前記ノード装置は、
前記コンテンツ取得手段と、
前記コンテンツ転送手段と、
前記スケジュール情報取得手段と、
前記取得時期判定手段と、
前記転送判定手段と、
前記他のグループに対応するコンテンツを前記コンテンツ転送手段により転送していると前記転送判定手段により判定された場合、前記第１のグループにおける前記配信スケジュール情報の変更を指示する変更指示情報を前記スケジュール生成装置に送信する変更指示情報送信手段と、
を備え、
前記スケジュール情報取得手段は、前記配信スケジュールを前記スケジュール生成装置から受信することを特徴とするノード装置。
【請求項６】
ネットワークを介して互いに通信可能な複数のノード装置の何れか複数のノード装置により構成されるグループ毎に、何れかのノード装置から他のノード装置にコンテンツを転送するコンテンツ配信システムにおけるサーバ装置であって、
各グループを構成する複数のノード装置夫々のコンテンツの取得時期をグループ毎に示す配信スケジュール情報を、各ノード装置に送信するスケジュール情報送信手段と、
前記ノード装置から前記配信スケジュール情報の変更の指示を示す変更指示情報を受信する変更指示情報受信手段と、
前記変更指示情報受信手段により前記変更指示情報が受信された場合、当該変更指示情報を送信したノード装置である送信ノード装置と、当該転送中に前記送信ノード装置による前記取得時期が到来したコンテンツに対応する第１のグループにおいて前記取得時期が前記送信ノード装置よりも遅い何れか一つのノード装置と、の前記第１のグループにおける前記取得時期を互いに入れ替えた前記配信スケジュール情報を生成するスケジュール情報生成手段と、
を備えることを特徴とするサーバ装置。
【請求項７】
コンピュータを、
請求項５に記載のノード装置として機能させることを特徴とするコンテンツ中継処理プログラム。
【請求項８】
コンピュータを、
請求項６に記載のサーバ装置として機能させることを特徴とするスケジュール生成処理プログラム。
【請求項９】
ネットワークを介して互いに通信可能な複数のノード装置と、配信スケジュール情報を生成するスケジュール生成装置と、を備えるコンテンツ配信システムであり、前記複数のノード装置の何れか複数のノード装置により構成されるグループ毎に、何れかのノード装置から他のノード装置にコンテンツを転送するコンテンツ配信システムにおけるコンテンツ配信方法であって、
所属するグループに対応するコンテンツを、当該グループに所属するノード装置に要求することにより取得するコンテンツ取得工程と、
前記ノード装置が、前記コンテンツ取得工程において取得されたコンテンツを、当該コンテンツに対応するグループに所属し取得先のノード装置とは異なるノード装置に転送するコンテンツ転送工程と、
前記ノード装置が、前記コンテンツ取得工程におけるコンテンツの取得時期を示す前記配信スケジュール情報を取得するスケジュール情報取得工程と、
前記ノード装置が、前記スケジュール情報取得工程において取得された前記配信スケジュール情報に基づいて、前記取得時期が到来したか否かを判定する取得時期判定工程と、
前記ノード装置が、前記取得時期が到来したと前記取得時期判定工程において判定された場合、前記取得時期が到来したコンテンツに対応する第１のグループと異なる他のグループに対応するコンテンツを前記コンテンツ転送手段により転送しているか否かを判定する転送判定工程と、
前記スケジュール生成装置が、前記コンテンツ転送工程において前記他のグループに対応するコンテンツを転送していると前記転送判定工程において判定されたノード装置である転送ノード装置と、前記第１のグループにおいて前記取得時期が前記転送ノード装置よりも遅い何れか一つのノード装置と、の前記第１のグループにおける前記取得時期を互いに入れ替えた前記配信スケジュール情報を生成するスケジュール情報生成手段と、
を備えることを特徴とするコンテンツ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のシステムに関して、特許文献１には、分散ハッシュテーブル（以下、「ＤＨＴ」（Distributed Hash Table）という）を利用したコンテンツのマルチキャスト配信を行う技術が開示されている。具体的には、ＤＨＴを用いてコンテンツが複数の拠点サーバに分散配置される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−５３６６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、拠点サーバが複数存在する場合、複数の拠点サーバをグループ化することが考えられる。拠点サーバをグループ化することで、各グループ毎に夫々異なったコンテンツを配信することができる。複数の拠点サーバが、複数のグループにグループ化される場合、或る拠点サーバが異なる複数のグループに所属することが考えられる。このとき、複数のグループに所属する拠点サーバが、或るグループで配信されているコンテンツと、別のグループで配信されているコンテンツとを同時に受信又は送信する場合がある。この場合、複数のグループからコンテンツを受信又は送信するために、転送速度が低下する。この結果、その拠点サーバからコンテンツを受け取る拠点サーバへの配信遅延が生じてしまう。
【０００５】
そこで、本発明は、以上の点等に鑑みてなされたものであり、複数のグループに所属するノード装置におけるコンテンツの転送遅延を防ぐことを可能とするコンテンツ配信システム、ノード装置、サーバ装置、コンテンツ配信方法、コンテンツ中継処理プログラム及びスケジュール生成処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置と、配信スケジュール情報を生成するスケジュール生成装置と、を備えるコンテンツ配信システムであり、前記複数のノード装置の何れか複数のノード装置により構成されるグループ毎に、何れかのノード装置から他のノード装置にコンテンツを転送するコンテンツ配信システムであって、所属するグループに対応するコンテンツを、当該グループに所属するノード装置に要求することにより取得するコンテンツ取得手段と、前記コンテンツ取得手段により取得されたコンテンツを、当該コンテンツに対応するグループに所属し取得先のノード装置とは異なるノード装置に転送するコンテンツ転送手段と、前記コンテンツ取得手段によるコンテンツの取得時期を示す前記配信スケジュール情報を取得するスケジュール情報取得手段と、前記スケジュール情報取得手段により取得された前記配信スケジュール情報に基づいて、前記取得時期が到来したか否かを判定する取得時期判定手段と、前記取得時期が到来したと前記取得時期判定手段により判定された場合、前記取得時期が到来したコンテンツに対応する第１のグループと異なる他のグループに対応するコンテンツを前記コンテンツ転送手段により転送しているか否かを判定する転送判定手段と、を備え、前記スケジュール生成装置は、前記コンテンツ転送手段により前記他のグループに対応するコンテンツを転送していると前記転送判定手段により判定されたノード装置である転送ノード装置と、前記第１のグループにおいて前記取得時期が前記転送ノード装置よりも遅い何れか一つのノード装置と、の前記第１のグループにおける前記取得時期を互いに入れ替えた前記配信スケジュール情報を生成するスケジュール情報生成手段と、を備えることを特徴とする。
【０００７】
この発明によれば、配信スケジュール情報が示すコンテンツの取得時機が到来したときにコンテンツ取得手段によりコンテンツが取得され、取得されたコンテンツがコンテンツ転送手段により転送される。ここで、ノード装置が、或るグループ（他のグループ）に対応するコンテンツを転送しているときに別のグループ（第１のグループ）に対応するコンテンツを取得すると、その後この第１のグループに対応するコンテンツも転送することとなる。そうすると、第１のグループに対応するコンテンツの転送と他のグループに対応するコンテンツの転送とが同時に行われてしまう。そこで、取得時期判定手段及び転送判定手段による判定の結果、スケジュール生成装置により第１のグループにおけるコンテンツの取得時期が、自ノード装置よりも取得時期が遅い他のノード装置と入れ替えられて、配信スケジュール情報が生成される。そして、ノード装置は、自ノード装置によるコンテンツの取得時期が変更された配信スケジュールに基づいて第１のグループに対応するコンテンツを取得するので、第１のグループに対応するコンテンツの転送時期が遅らされる。これにより、自ノード装置において、第１のグループに対応するコンテンツの転送と他のグループに対応するコンテンツの転送とが同時に行われなくなり、複数のグループに属するノード装置におけるコンテンツの転送遅延を防ぐことができる。
【０００８】
請求項２に記載の発明は、請求項１に記載のコンテンツ配信システムにおいて、前記配信スケジュール情報生成手段は、前記転送ノード装置と、前記第１のグループにおいて前記取得時期が前記転送ノード装置よりも遅いノード装置のうち前記他のグループには所属しないノード装置と、の前記第１のグループにおける前記取得時期を互いに入れ替えた前記配信スケジュール情報を生成することを特徴とする。
【０００９】
この発明によれば、他のグループに対応するコンテンツを転送しているノード装置とコンテンツの取得時期を入れ替えるノード装置は、第１のグループに属するノード装置のうち他のグループには属さないノード装置である。従って、当該ノード装置において、第１のグループに対応するコンテンツの転送と他のグループに対応するコンテンツの転送とが同時に行われることを確実に防止することができる。
【００１０】
請求項３に記載の発明は、請求項１又は請求項２に記載のコンテンツ配信システムにおいて、前記コンテンツ配信システムは、前記ネットワークを介して互いに通信可能な複数のノード装置の何れか複数のノード装置により構成されるグループ毎に、当該複数のノード装置が複数の階層を形成し、上位階層のノード装置から下位階層のノード装置へコンテンツが順次転送されるようにしたものであって、前記配信スケジュール情報は、コンテンツの取得時間を階層毎に対応付けて示すものであり、前記コンテンツ取得手段は、所属するグループに対応するコンテンツを、当該グループにおいて上位階層側に位置するノード装置に要求することにより取得し、前記コンテンツ転送手段は、前記コンテンツ取得手段により取得されたコンテンツを、当該コンテンツに対応するグループにおいて下位階層側に位置するノード装置に転送し、前記配信スケジュール情報生成手段は、前記転送ノード装置と、前記第１のグループにおいて前記転送ノード装置よりも下位の階層に位置するノード装置と、が前記第１グループにおいて位置する階層を互いに入れ替えた前記配信スケジュール情報を生成することを特徴とする。
【００１１】
この発明によれば、階層を入れ替えるだけでコンテンツの取得時期を入れ替えることができるので、スケジュールを調整するための処理を簡易にすることができる。
【００１２】
請求項４に記載の発明は、請求項３に記載のコンテンツ配信システムにおいて、前記配信スケジュール情報生成手段は、前記転送ノード装置と、前記第１のグループにおいて最下位層に位置するノード装置と、が前記第１グループにおいて位置する階層を互いに入れ替えた前記配信スケジュール情報を生成することを特徴とする。
【００１３】
この発明によれば、他のグループに対応するコンテンツを転送しているノード装置が第１のグループにおいて最下位層に移動することにより、当該ノード装置は、第１のグループに関してはコンテンツを取得するだけで転送する必要は無くなる。従って、第１のグループに対応するコンテンツの転送と他のグループに対応するコンテンツの転送とが同時に行われることを確実に防止することができる。
【００１４】
請求項５に記載の発明は、請求項１乃至４の何れか１項に記載のコンテンツ配信システムに含まれるノード装置であって、前記ノード装置は、前記コンテンツ取得手段と、前記コンテンツ転送手段と、前記スケジュール情報取得手段と、前記取得時期判定手段と、前記転送判定手段と、前記第１のグループに対応するコンテンツを前記コンテンツ転送手段により転送していると前記転送判定手段により判定された場合、前記他のグループにおける前記配信スケジュール情報の変更を指示する変更指示情報を前記スケジュール生成装置に送信する変更指示情報送信手段と、を備え、前記スケジュール情報取得手段は、前記配信スケジュールを前記スケジュール生成装置から受信することを特徴とする。
【００１５】
請求項６に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置の何れか複数のノード装置により構成されるグループ毎に、何れかのノード装置から他のノード装置にコンテンツを転送するコンテンツ配信システムにおけるサーバ装置であって、各グループを構成する複数のノード装置夫々のコンテンツの取得時期をグループ毎に示す配信スケジュール情報を、各ノード装置に送信するスケジュール情報送信手段と、前記ノード装置から前記配信スケジュール情報の変更の指示を示す変更指示情報を受信する変更指示情報受信手段と、前記変更指示情報受信手段により前記変更指示情報が受信された場合、当該変更指示情報を送信したノード装置である送信ノード装置と、当該転送中に前記送信ノード装置による前記取得時期が到来したコンテンツに対応する第１のグループにおいて前記取得時期が前記送信ノード装置よりも遅い何れか一つのノード装置と、の前記第１のグループにおける前記取得時期を互いに入れ替えた前記配信スケジュール情報を生成するスケジュール情報生成手段と、を備えることを特徴とする。
【００１６】
請求項７に記載の発明は、コンピュータを、請求項５に記載のノード装置として機能させることを特徴とする。
【００１７】
請求項８に記載の発明は、コンピュータを、請求項６に記載のサーバ装置として機能させることを特徴とする。
【００１８】
請求項９に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置と、配信スケジュール情報を生成するスケジュール生成装置と、を備えるコンテンツ配信システムであり、前記複数のノード装置の何れか複数のノード装置により構成されるグループ毎に、何れかのノード装置から他のノード装置にコンテンツを転送するコンテンツ配信システムにおけるコンテンツ配信方法であって、所属するグループに対応するコンテンツを、当該グループに所属するノード装置に要求することにより取得するコンテンツ取得工程と、前記ノード装置が、前記コンテンツ取得工程において取得されたコンテンツを、当該コンテンツに対応するグループに所属し取得先のノード装置とは異なるノード装置に転送するコンテンツ転送工程と、前記ノード装置が、前記コンテンツ取得工程におけるコンテンツの取得時期を示す前記配信スケジュール情報を取得するスケジュール情報取得工程と、前記ノード装置が、前記スケジュール情報取得工程において取得された前記配信スケジュール情報に基づいて、前記取得時期が到来したか否かを判定する取得時期判定工程と、前記ノード装置が、前記取得時期が到来したと前記取得時期判定工程において判定された場合、前記取得時期が到来したコンテンツに対応する第１のグループと異なる他のグループに対応するコンテンツを前記コンテンツ転送手段により転送しているか否かを判定する転送判定工程と、前記スケジュール生成装置が、前記コンテンツ転送工程において前記他のグループに対応するコンテンツを転送していると前記転送判定工程において判定されたノード装置である転送ノード装置と、前記第１のグループにおいて前記取得時期が前記転送ノード装置よりも遅い何れか一つのノード装置と、の前記第１のグループにおける前記取得時期を互いに入れ替えた前記配信スケジュール情報を生成するスケジュール情報生成手段と、を備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、同一のノード装置において、複数のグループに対応するコンテンツの転送が同時に行われなくなるので、複数のグループに所属するノード装置におけるコンテンツの転送遅延を防ぐことができる。
【図面の簡単な説明】
【００２０】
【図１】一実施形態に係るコンテンツ分散保存システムＳの構成及び動作概要について説明する。
【図２】一実施形態に係るコンテンツ分散保存システムＳにおける概要構成の一例を示す図である。
【図３】一実施形態において、グループＡに所属する複数のノードＮｎによる形成された階層とコンテンツの配信経路の一例を示す図である。
【図４】各時刻において各階層に位置するノードＮｎによるデータチャンクの取得スケジュールの一例を示す図である。
【図５】一実施形態において、ＤＨＴによるＩＤ空間及びノードＮｎのグループ分けを概念的に示す図である。
【図６】（ａ）は、グループＡに所属する複数のノードＮｎにより形成された階層とコンテンツの配信経路の一例を示す図であり、（ｂ）は、グループＢに所属する複数のノードＮｎにより形成された階層とコンテンツの配信経路の一例を示す図である。
【図７】一実施形態において、ＤＨＴによるＩＤ空間におけるコンテンツの配信経路の一例を示す図である。
【図８】一実施形態に係る配信スケジュールの入れ替えの様子の一例を示す図である。
【図９】一実施形態に係るセンターサーバ１０の概要構成例を示す図である。
【図１０】一実施形態に係るノードＮｎの概要構成例を示す図である。
【図１１】一実施形態に係るノードＮｎにおけるＣＰＵ２０４の処理例を示すフローチャートである。
【図１２】一実施形態に係るセンターサーバ１０におけるＣＰＵ１０４の処理例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【００２２】
［１．コンテンツ分散保存システムの構成及び動作概要］
始めに、図１等を参照して、本実施形態に係るコンテンツ分散保存システムの構成及び動作概要について説明する。
【００２３】
図１は、本実施形態に係るコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【００２４】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ，４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ，５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線７等によって、インターネット等のネットワーク８が構築されている。ネットワーク８は、現実世界の通信ネットワークである。なお、図１の例におけるネットワーク（通信ネットワーク）８には、データ（パケット）を転送するためのルータが適宜挿入されているが、図１では図示を省略している。なお、通信回線７としては、例えば、電話回線や光ケーブル等が用いられる。
【００２５】
このようなネットワーク８には、複数のノード装置（以下、「ノード」という）Ｎｎ（ｎ＝１，２，３・・・の何れか）が接続されている。また、各ノードＮｎには、固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。そして、本実施形態に係るコンテンツ分散保存システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの参加により形成されるピアツーピア方式のネットワークシステムとなっている。
【００２６】
各ノードＮｎは、本実施形態においては複数の拠点に分散配置された拠点サーバである。また、各拠点サーバは所定の基準に基づいてグループ化されているが、これに関しての詳細は後述する。
【００２７】
なお、なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９である。オーバーレイネットワーク９は、論理的なネットワークである。かかるオーバーレイネットワーク９は、特定のアルゴリズム、例えば、ＤＨＴを利用したアルゴリズムにより実現される。そして、コンテンツ分散保存システムＳ（言い換えれば、オーバーレイネットワーク９）に参加している各ノードＮｎには、所定桁数からなる固有の識別情報であるノードＩＤが割り当てられている。
【００２８】
また、ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を共通のハッシュ関数によりハッシュ化した値である。ノードＩＤは、ＩＤ空間に偏りなく分散して配置されることになる。ハッシュ関数としては、例えば、ＳＨＡ−１等が用いられる。また、ハッシュ化した値は、例えば、ｂｉｔ長が１６０ｂｉｔとなる。
【００２９】
なお、コンテンツ分散保存システムＳへの参加は、参加していないノードＮｎ（例えば、ノードＮ８）が、参加している任意のノードＮｎに対して参加要求を示す参加メッセージを送信することによって行われる。任意のノードＮｎは、例えば、当該システムＳに常時参加しているコンタクトノードである。
【００３０】
また、各ノードＮｎは、夫々、ＤＨＴを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムＳ上における各種メッセージの転送先を規定している。具体的には、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報が複数登録されている。
【００３１】
コンテンツ分散保存システムＳに参加している１台のノードは、必要最低限のノードＮｎのノード情報をルーティングテーブルにとして記憶している。各ノードＮｎ間で互いに各種メッセージが転送されることで、ノード情報を知らない（記憶していない）ノードＮｎについてのノード情報が取得される。
【００３２】
このようなＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００３３】
コンテンツ分散保存システムＳ２は、内容の異なる様々なコンテンツのレプリカを所定のファイル形式で複数のノードＮｎに分散して保存（格納）する。レプリカを保存しているノードＮｎは、以下「コンテンツ保持ノード」という。コンテンツ分散保存システムＳ２は、各ノードＮｎ間でレプリカを利用可能になっている。各コンテンツのオリジナルはセンターサーバ５０に保存されている。例えば、ノードＮ５には、タイトルがＸＸＸの映画のコンテンツのレプリカが保存されている。一方、ノードＮ３には、タイトルがＹＹＹの映画のコンテンツのレプリカが保存される。このように、複数のノードＮｎ（以下、「コンテンツ保持ノード」という）に分散されて保存されている。
【００３４】
上述のコンテンツのレプリカには、夫々、コンテンツ名（タイトル）及びコンテンツＩＤ（コンテンツ毎に固有の識別情報）等の情報が付加されている。このコンテンツＩＤは、例えば、コンテンツ名＋任意の数値が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される。或いは、システム管理者が、コンテンツ毎に一意のＩＤ値を付与しても良い。この場合は、コンテンツ名とそのコンテンツＩＤの対応が書かれたコンテンツカタログ情報が、全ノードＮｎに配布される。また、この場合のコンテンツＩＤは、ノードＩＤと同一ビット長である。
【００３５】
分散保存されているコンテンツのレプリカの所在は、インデックス情報として、コンテンツのレプリカの所在を管理（記憶）しているノードＮｎ（以下、「ルートノード」という）等により記憶される。インデックス情報は、レプリカを保存したノードＮｎのノード情報と、コンテンツのコンテンツＩＤと等の組を含む。
【００３６】
例えば、タイトルがＸＸＸの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ４により管理される。また、タイトルがＹＹＹの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ７により管理される。また、このようなルートノードは、例えば、コンテンツＩＤと最も近いノードＩＤを有するノードＮｎであるように定められる。コンテンツＩＤと最も近いノードＩＤとは、例えば、例えば、コンテンツＩＤと上位桁がより多く一致するノードＩＤである。
【００３７】
そして、あるノードＮｎのユーザが、所望するコンテンツのレプリカを取得したい場合、当該レプリカの取得を望むノードＮｎ（以下、「ユーザノード」という）は、メッセージ（クエリ）を生成する。このメッセージ（クエリ）は、取得を望むコンテンツのコンテンツＩＤ及びユーザノードのＩＰアドレス等を含むコンテンツ所在問合せメッセージである。コンテンツ所在問合せメッセージは、コンテンツ保持ノードを検索するためのメッセージでもある。上述のコンテンツ所在問合せメッセージが、ユーザノードが取得するＤＨＴのルーティングテーブルに従って、他のノードＮｎに対して送出される。つまり、ユーザノードは、コンテンツ所在問合せメッセージを、ルートノードに向けて送出する。これにより、コンテンツ所在問合せメッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着することになる。
【００３８】
なお、各ノードＮｎにおいてユーザにより選択されるべきコンテンツのコンテンツ名及びコンテンツＩＤ等の属性情報は、例えばセンターサーバ１０から全てのノードＮｎに配信されるコンテンツカタログ情報に記述されている。
【００３９】
また、上記コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。なお、ＤＨＴルーティングについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００４０】
上記コンテンツ所在問合せメッセージを受信したルートノードは、これに含まれるコンテンツＩＤに対応するインデックス情報をインデックスキャッシュから取得（検索）する。取得されたインデックス情報は、コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信される。こうしてインデックス情報を取得したユーザノードは、インデックス情報に基づいてコンテンツのレプリカをダウンロード（取得）することができる。インデックス情報に含まれるコンテンツ保持ノードのＩＰアドレス等に基づいて、ユーザノードはコンテンツ保持ノードにアクセスする。アクセスしたコンテンツ保持ノードから、コンテンツのレプリカをダウンロード（取得）することが可能になる。なお、当該インデックス情報には、例えば複数のコンテンツ保持ノードのノード情報が含まれていることもある（同一のコンテンツのレプリカが複数のコンテンツ保持ノードに保存されている場合）。かかる場合、ユーザノードは、当該複数のコンテンツ保持ノードのうち一つのコンテンツ保持ノードを選択する。そして、ユーザノードは、選択したコンテンツ保持ノードに接続してコンテンツのレプリカをダウンロードすることができる。
【００４１】
なお、ルートノードは、当該インデックス情報に含まれるＩＰアドレス等に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージを送信し、これにより、ユーザノードは、上記コンテンツ保持ノードからそのレプリカをダウンロードすることもできる。また、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしているキャッシュノードから当該インデックス情報を取得することもできる。
【００４２】
また、ユーザノードは、コンテンツ保持ノードからコンテンツのレプリカを取得して保存したとき、保存したユーザノードは、パブリッシュ（登録通知）メッセージを生成する。パブリッシュメッセージは、レプリカを保存したことをルートノードへ知らせるためのメッセージである。パブリッシュメッセージは、レプリカのコンテンツＩＤ及び自己のノード情報を含む。パブリッシュメッセージは、ルートノードに向けて（ルートノード宛に）送出される。これにより、パブリッシュメッセージは、コンテンツ所在問合せメッセージと同じように、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになる。そして、ルートノードは、パブリッシュメッセージを受信する。ルートノードは、パブリッシュメッセージに含まれるノード情報及びコンテンツＩＤの組を含むインデックス情報を登録（インデックスキャッシュ領域に記憶）する。こうして、上記ユーザノードは、新たに、上記コンテンツのレプリカを保持するコンテンツ保持ノードとなる。
【００４３】
［２．コンテンツのグループ配信の概要］
次に、コンテンツのグループ配信について、図２乃至図４を用いて説明する。なお、ここからの説明においては、各ノードＮｎが保存しているレプリカも、コンテンツと称する。
【００４４】
図２は、本実施形態に係るコンテンツ分散保存システムＳにおける概要構成の一例を示す図である。
【００４５】
コンテンツ分散保存システムＳにおいては、各拠点に、拠点サーバとしてのノードＮｎが分散して設置されている。また、各拠点には、夫々複数のユーザ端末Ｕｍ（ｍ＝１，２，３・・・の何れか）が設置されている。ユーザ端末Ｕｍとしては、例えば、パーソナルコンピュータ等を適用することができる。そして、図２に示すように、各拠点のノードＮｎと複数のユーザ端末Ｕｍとは、例えば、ＬＡＮ（Local Area Network）等のネットワークを介して接続されている。また、各ノードＮｎは、グリッド技術としてＤＨＴを利用したオーバーレイネットワーク９により互いに接続されている。
【００４６】
例えば、拠点にいるユーザが所望のコンテンツを利用したい場合には、ユーザ端末Ｕｍを操作することにより、ユーザ端末Ｕｍからその拠点のノードＮｎにコンテンツ送信要求メッセージを送信させる。このメッセージを受信したノードＮｎは、要求されたコンテンツを自身が保存している場合には、その保存しているコンテンツをユーザ端末Ｕｍに送信する。一方、ノードＮｎは、リクエストされたコンテンツを保存していない場合には、そのコンテンツを保存している別のノードＮｎから当該コンテンツをダウンロードし保存するとともに、ダウンロードしたコンテンツをユーザ端末Ｕｍに送信する。
【００４７】
また、各ノードＮｎは、所定の条件に基づいてグループ分けされている。例えば、拠点が所在する地域や部門等でグループ分けされている。グループ分けをする条件としては一つのみであっても複数であっても良い。条件が複数である場合には、各基準に基づいて夫々グループ分けがなされる。
【００４８】
このようにグループ分けした場合において、特定のグループに所属する全ノードＮｎに対して特定のコンテンツを予め保存させておきたい場合がある。特定のコンテンツとは、例えば、特定のグループのみに関連するコンテンツである。その場合、コンテンツ分散保存システムＳにおいては、そのグループに所属するノードＮｎで複数の階層を形成し、上位階層のノードＮｎから下位階層のノードＮｎにコンテンツがツリー状の配信経路を経て順次転送されるようにしている。このように、特定のグループに所属するノードＮｎに対してコンテンツを配信することを、「グループ配信」という。
【００４９】
図３は、グループＡに所属する複数のノードＮｎによる形成された階層とコンテンツの配信経路の一例を示す図である。
【００５０】
例えば、グループＡは、図３に示すように、ノードＮ１〜Ｎ２２の２２台のノードＮｎが所属しており、これらのノードＮｎにより４階層が形成されている。第１階層にはノードＮ１のみが位置している。また、第２階層には、ノードＮ２〜Ｎ４の３台のノードＮｎが位置している。また、第３階層には、ノードＮ５〜Ｎ１０の６台のノードＮｎが位置している。更に、第４階層には、ノードＮ１１〜Ｎ２２の１２台のノードＮｎが位置している。
【００５１】
このような構成のグループＡにおいて、先ず或る時刻Ｔ１において、第１階層に位置するノードＮ１がコンテンツ所在問合せを送信することにより、ダウンロードすべきコンテンツの所在を検索する。ただし、このときは、他のグループも含めてそのコンテンツを保存しているノードＮｎは存在していない。従ってこの場合、ノードＮ１は、オリジナルのコンテンツを予め保存しているセンターサーバ１０からコンテンツをダウンロードする。コンテンツをダウンロードしたノードＮ１が、当該コンテンツを保存しパブリッシュメッセージを送信することで、ルートノードが保持するインデックス情報にノードＮ１が登録される。
【００５２】
ノードＮ１によるコンテンツの取得開始から所定時間が経過した時刻Ｔ２において、次に、第２階層に位置するノードＮ２〜Ｎ４が夫々コンテンツの所在を検索する。すると、ノードＮ１がコンテンツ保持ノードであることが判明するので、ノードＮ２〜Ｎ４は、夫々ノードＮ１からコンテンツをダウンロードする。
【００５３】
そして、ノードＮ２〜Ｎ４によるコンテンツの取得開始から更に所定時間が経過した時刻Ｔ３において、第３階層に位置するノードＮ５〜Ｎ１０が夫々コンテンツの所在を検索する。すると、ノードＮ２〜Ｎ４がコンテンツ保持ノードであることが判明するので、ノードＮ５〜Ｎ１０は、夫々ノードＮ２〜Ｎ４の何れかからコンテンツをダウンロードする。このとき、ノードＮ５〜Ｎ１０は、コンテンツの取得先を例えばランダムに選択するので、ノードＮ２〜Ｎ４は、夫々平均して２台のノードＮｎに対してコンテンツを配信することとなる。なおコンテンツの所在の検索においては、コンテンツ保持ノードとして、ノードＮ２〜Ｎ４以外にノードＮ１も検索されるので、ノードＮ１からもコンテンツがダウンロードされる可能性がある。そうなるとコンテンツの配信経路がきれいなツリー形状にならない。そこでこの場合には、例えばノードＮ１は、時刻Ｔ２が到来する前に自身のノードＩＤとコンテンツのコンテンツＩＤとを含むコンテンツ削除メッセージを、ルートノードに向けて送信すると良い。コンテンツ削除メッセージを受信したルートノードは、自身が保持するインデックスキャッシュ情報からノードＮ１を削除する。これによりノードＮ１はコンテンツ保持ノードとしては検索されないようになる。
【００５４】
次に、ノードＮ５〜Ｎ１０によるコンテンツの取得開始から更に所定時間が経過した時刻Ｔ４において、第４階層に位置するノードＮ１１〜Ｎ２２が夫々コンテンツの所在を検索し、ノードＮ５〜Ｎ１０の何れかからコンテンツをダウンロードする。このようにしてグループＡに所属する全ノードＮｎに対してコンテンツが配信される。
【００５５】
基本的にはこのようにしてコンテンツが配信されるのであるが、コンテンツを丸ごとそのまま配信していたのでは配信効率が良くない。例えば、時刻Ｔ１〜Ｔ２の間にコンテンツの送受信を行っているノードＮｎは、第１階層のノードＮ１と第２階層のノードＮ２〜Ｎ４の４台のみであり、その他の階層のノードＮ５〜Ｎ２２は、コンテンツの配信に関しては完全に未稼働の状態である。そこで、コンテンツ分散保存システムＳにおいては、コンテンツを複数のデータ（以下、「データチャンク」という）に分割してデータチャンク単位で順次配信するようになっている。各データチャンクには、通常のコンテンツと同様に、夫々コンテンツＩＤが割り当てられている。従って、各ノードＮｎは、データチャンクをコンテンツの場合と同様にダウンロードすることができる。
【００５６】
図４は、各時刻において各階層に位置するノードＮｎによるデータチャンクの取得スケジュールの一例を示す図である。
【００５７】
各階層のノードＮｎにおいて、データチャンクは、例えば、図４に示すようなスケジュールでダウンロードされる。なお、図４においては、説明を簡単にするため、データチャンクを全部で４個とし、また、コンテンツＩＤの代わりに、シーケンス番号でそのデータチャンクを示している。
【００５８】
先ず、時刻ｔ１においては、第１階層のノードＮｎが、シーケンス番号１のデータチャンク（以下データチャンク１）をセンターサーバ１０からダウンロードする。次に、１周期経過後の時刻ｔ２において、第１階層のノードＮｎが、データチャンク２をセンターサーバ１０からダウンロードする。それと同時に、第２階層のノードＮｎが、データチャンク１を第１階層のノードＮｎからダウンロードする。更に１周期経過後の時刻ｔ３において、第１階層のノードＮｎによるセンターサーバ１０からのデータチャンク３のダウンロード、第２階層のノードＮｎによる第１階層のノードＮｎからのデータチャンク２のダウンロード、及び第３階層のノードＮｎによる第２階層のノードＮｎからのデータチャンク１のダウンロードが同時に行われる。そして、更に１周期経過後の時刻ｔ４において、第１階層のノードＮｎによるセンターサーバ１０からのデータチャンク４のダウンロード、第２階層のノードＮｎによる第１階層のノードＮｎからのデータチャンク３のダウンロード、第３階層のノードＮｎによる第２階層のノードＮｎからのデータチャンク２のダウンロード、及び第４階層のノードＮｎによる第３階層のノードＮｎからのデータチャンク１のダウンロードが同時に行われる。
【００５９】
以下同様にして４周期が経過すると、全ノードに対して全てのデータチャンク、つまり、１個のコンテンツの配信が完了する。このように、隣接する階層間でデータチャンクの取得タイミングを少なくとも１周期以上ずらされる。これにより、コンテンツ分散保存システムＳにおいては、ノードＮｎの稼働率を上げて、コンテンツの配信開始から配信完了までに要する時間を短縮させるようになっている。そして、ユーザ端末Ｕｍからの要求に応じてコンテンツの送信が可能なように、例えば、ノードＮｎにおいて複数のデータチャンクからコンテンツが復元される。
【００６０】
このようなコンテンツの配信スケジュールは、配信スケジュール情報として、センターサーバ１０により管理される。配信スケジュール情報には、例えば、配信対象のコンテンツのコンテンツＩＤ、配信するグループに固有に割り当てられたグループＩＤ、データチャンクの総数、各データチャンクのコンテンツＩＤ、階層の総数、各階層に割り当てられたノードＮｎのノードＩＤ、各階層における各データチャンクの取得時刻等が含まれる。ここで、各階層における取得時刻の間隔は、データチャンク１個のダウンロードに要する時間以上の長さとされるが、この周期が長すぎると、グループ内の全ノードＮｎへの配信完了までに要する時間が長くなるので、適切な長さに調節される。なお、データチャンクを１個のパケットで構成し、１パケットあたりのデータ量が、転送効率が最大となるように適切に調節されるようにしても良い。また、各階層に割り当てられるノードＮｎの台数は、例えば、夫々その上位のノードＮｎ１台あたり同時に何台に対してコンテンツを送信することができるかを示す同時送信可能台数から決定される。図３の例では、第１階層に割り当てられたノードＮｎは１台であり、同時送信可能台数が３台であるとすると、第２階層に割り当てられるノードＮｎの台数は３台となる。また、第２階層における同時送信可能台数が２台であるとすると第３階層に割り当てられるノードＮｎの台数は６台となる。この同時送信可能台数は、例えば、ノードＮｎの上り帯域幅（上り回線速度）や処理能力等に応じて決定される。
【００６１】
配信スケジュール情報は、例えば、カタログ情報と同様にして全ノードＮｎに配布される。この配信スケジュール情報の配布は、例えば、特許文献１に記載のされているようなＤＨＴを利用したマルチキャスト配信を利用しても良い。
【００６２】
なお、これまでの説明で明らかなように、図３に示すツリー状の配信経路は、予め定められたものではなく、各ノードＮｎによるコンテンツ保持ノードの検索の結果形成されたものである。従って、各ノードＮｎが、データチャンク毎にその所在を検索するようにすると、データチャンク毎に異なる配信経路が形成されることとなる。
【００６３】
また、上記説明においては、最初はセンターサーバ１０からノードＮｎがコンテンツをダウンロードすることによりグループ配信が開始されるようにしていたが、これに限られるものではない。例えば、予め１又は複数のノードＮｎにコンテンツを保存させておいて、その状態からグループ配信を開始させるようにしても良い。
【００６４】
［３．グループ配信におけるコンテンツの中継タイミングの衝突とその回避］
コンテンツ分散保存システムＳにおいては、上述のようにしてグループ配信が行われる。ここで、グループの分け方によっては、１台のノードＮｎが複数のグループに所属する場合もあり得る。この複数のグループの間で、グループ配信のスケジュールが重なると、その１台のノードＮｎによる各グループにおけるコンテンツの中継タイミングが衝突する可能性がある。
【００６５】
図５は、ＤＨＴによるＩＤ空間及びノードＮｎのグループ分けを概念的に示す図である。また、図６（ａ）は、グループＡに所属する複数のノードＮｎにより形成された階層とコンテンツの配信経路の一例を示す図である。また、図６（ｂ）は、グループＢに所属する複数のノードＮｎにより形成された階層とコンテンツの配信経路の一例を示す図である。
【００６６】
各ノードＮｎに付与されたノードＩＤは、共通のハッシュ関数によって生成されたため、  図５に示すように、同一のリング状のＩＤ空間上にさほど偏ることなく散らばって存在するものと考えることができる。なお、図５においては、２４ビットでノードＩＤを付与し、図示したものである。図中の白点及び黒点はノードＩＤを示し、反時計回りでＩＤが増加するものとする。
【００６７】
各ノードＮｎは、或る条件に基づいて、例えばグループＡ及びＢにグループ分けされる。ここで、例えばノードＮ１、Ｎ２、Ｎ３、Ｎ５、Ｎ７及びＮ１５はグループＡに所属し、ノードＮ７、Ｎ２３、Ｎ２４、Ｎ２６、Ｎ２８及びＮ３６はグループＢに所属している。この場合、ノードＮ７は、グループＡとグループＢの双方に所属しているため、図５においてはそのノードＩＤを黒点で示している。なお、図５においては、各グループに所属するノードＮｎのうち一部のノードＮｎについて示している。
【００６８】
グループＡに所属するノードＮｎにより形成された階層及びグループＢに所属するノードＮｎにより形成された階層は、例えば、図６（ａ）及び図６（ｂ）に示すようになっている。ノードＮ７は、グループＡにおいて第３階層に位置している。その一方で、ノードＮ７は、グループＢにおいて第２階層に位置している。
【００６９】
ここで、例えば、グループＡの方で先にコンテンツＸの配信が開始される。コンテンツＸは、データチャンクＸ１、データチャンクＸ２、データチャンクＸ３・・・に分割されており、コンテンツＸの配信開始により、先ずデータチャンクＸ１を、グループＡの第１階層に位置する例えばノードＮ１がダウンロードする。その後、３周期目において、グループＡの第３階層に位置するノードＮ７が、データチャンクＸ１を第２階層に位置する例えばノードＮ３からダウンロードする。そして、４周期目において、ノードＮ７が、データチャンクＸ２をダウンロードしつつ、データチャンクＸ２を第４階層に位置する例えばノードＮ１５及びノードＮ１６に送信する。つまり、４周期目からノードＮ７による中継処理が開始される。
【００７０】
一方で、グループＢにおいては、グループＡにおけるコンテンツＸの配信開始から、例えば４周期目にコンテンツＹの配信が開始される。コンテンツＹは、データチャンクＹ１、データチャンクＹ２、データチャンクＹ３・・・に分割されている。この場合においては、コンテンツＸの配信開始から５周期目において、グループＢの第２階層に位置するノードＮ７が、データチャンクＹ１を第１階層に位置する例えばノードＮ２３からダウンロードする。そして、６周期目において、ノードＮ７が、データチャンクＹ２をダウンロードしつつ、データチャンクＹ２を第３階層に位置する例えばノードＮ２８及びノードＮ２９に送信する。
【００７１】
その結果、６周期目において、ノードＮ７による、グループＡにおける中継処理と、グループＢにおける中継処理とが同時に行われることとなる。これを中継タイミングの衝突という。そうすると、ノードＮ７は、同時に４台のノードＮｎに対してデータチャンクを送信することとなる。元来、グループＡの配信スケジュールにおいても、グループＢの配信スケジュールにおいても、夫々ノードＮ７の同時送信可能台数は２台として各階層に位置するノードＮｎの台数が設定されていたとすると、実際の送信数はそれを超えるものとなる。すると、ノードＮ７の中継負荷の増大や上り帯域の消費等により、コンテンツの中継遅延が生じる。つまり、グループＡにおいては、第４階層に位置する、例えばノードＮ１６及びＮ１７によるデータチャンクのダウンロード時間が長くなる。
【００７２】
また、グループＢにおいては、第３階層に位置する、例えばノードＮ２８及びＮ２９によるデータチャンクのダウンロード時間が長くなる。そして、グループＢにおいて、第４階層における取得時刻が到来してもノードＮ２８及びＮ２９によるダウンロードが終了していない場合には、第４階層に位置する１２台のノードＮｎは、ノードＮ２８及びＮ２９以外の第３階層に位置するノードＮｎ、つまり、ノードＮ２６、Ｎ２７、Ｎ３０及び３１の４台からデータチャンクをダウンロードすることとなる。そうすると、この４台のノードＮｎの同時送信数は平均して３台となるから、配信スケジュールにより予定されている同時送信可能台数の２台を超えることとなる。そうすると、この４台のノードＮｎのデータチャンクの中継も遅延する。これにより、第４階層に位置する１２台のノードＮｎによるデータチャンクのダウンロード時間が長くなる。図６において、網掛け領域で囲まれているノードＮｎは、ダウンロード時間が長くなるノードＮｎである。
【００７３】
このようにして中継遅延が生じることにより、コンテンツの配信がスケジュール通りに完了しない事態が生じる。そこで、コンテンツ分散保存システムＳにおいては、各ノードＮｎが、或るグループ（以下、「中継中グループ」という）におけるコンテンツを中継しているときに別のグループ（以下、「取得時刻到来グループ」という）におけるコンテンツの取得時刻が到来した場合には、コンテンツの中継タイミングの衝突を回避すべく、後者の方の取得時刻到来グループにおける配信スケジュール（当該ノードＮｎのコンテンツの取得時刻）をセンターサーバ１０により変更させることとした。つまり、自ノードにおいて中継中グループに対応するコンテンツの中継処理を行っているときに、更に取得時刻到来グループのコンテンツをダウンロードすると、その直後に当該コンテンツの中継処理も行わなければならなくなるので、取得時刻到来グループのコンテンツの取得時刻を遅らせるようセンターサーバ１０に依頼するのである。
【００７４】
図７は、ＤＨＴによるＩＤ空間におけるコンテンツの配信経路の一例を示す図である。また、図８は、配信スケジュールの入れ替えの様子の一例を示す図である。
【００７５】
図６に示す配信経路を、ＤＨＴによるＩＤ空間上で示すと図７に示す通りとなる。グループＡにおけるコンテンツを中継しているときにグループＢにおけるコンテンツの取得時刻が到来したノードＮ７は、グループＢにおいて、自身の取得時刻を変更させるための配信スケジュール変更依頼メッセージをセンターサーバ１０に送信する。配信スケジュール変更依頼メッセージを受信したセンターサーバ１０は、図８に示すように、対応する配信スケジュール情報において、依頼元となるノードＮ７の階層を最下位層である第４階層に移動させる。また、センターサーバ１０は、ノードＮ７を第４階層に移動させる代わりに、現時点で第４階層に位置するノードＮｎのうち、グループＡに属していない例えばノードＮ３６を、ノードＮ７が位置していた第２階層に移動させる。センターサーバ１０は、このように配信スケジュール情報を変更すると、当該配信スケジュール情報を全ノードに配布する。
【００７６】
新しい配信スケジュールを受信したノードＮ７は、グループＡにおけるコンテンツの中継処理は継続しつつ、グループＢにおいては、第４階層に対応する取得タイミングでコンテンツをダウンロードする。最下位層である第４階層は、データチャンクをダウンロードするのみで、中継が行われない階層であるので、ノードＮ７に関する限り、グループＡとグループＢとの間で中継処理の衝突が発生することは決してない。
【００７７】
一方、新しい配信スケジュールを受信したノードＮ３６は、第２階層に対応する取得タイミングでデータチャンクをダウンロードする。そして、ノードＮ３６は、データチャンクの中継処理を行う。ここで、ノードＮ３６は、グループＡには属していないので、ノードＮ３６に関しても、グループＡとグループＢとの間で中継処理の衝突が発生することはない。
【００７８】
［４．センターサーバ１０の構成等］
次に、図９を参照して、センターサーバ１０の構成及び機能について説明する。
【００７９】
図９は、センターサーバ１０の概要構成例を示す図である。
【００８０】
センターサーバ１０は、図９に示すように、主電源１０１、主記憶装置１０２、ハードディスク装置１０３、ＣＰＵ１０４、ネットワークインタフェース１０５、周辺機器制御チップ１０６、ビデオチップ１０７、キーボード１０８、マウス１０９及びディスプレイ１１０等を備えて構成されている。また、主電源１０１、主記憶装置１０２、ハードディスク装置１０３、ＣＰＵ１０４、ネットワークインタフェース１０５、周辺機器制御チップ１０６、及びビデオチップ１０７は、システムバス１１１を介して相互に接続されている。また、センターサーバ１０は、ルータ１１２を介してネットワーク８に接続される。本実施形態に係るサーバ装置として機能するコンピュータは、ＣＰＵ１０４及び主記憶装置１０２により構成される。
【００８１】
主記憶装置１０２は、ＲＡＭ及びＲＯＭ等を備えて構成されており、オペレーティングシステム、運用管理プログラム、拠点サーバ管理プログラム、配信スケジュール管理プログラム及び配信スケジュール調節プログラム等が記憶されている。なお、各プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしても良いし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００８２】
ハードディスク装置１０３には、各種コンテンツ、拠点サーバデータベース及び配信スケジュール情報等が記憶されている。ここで、各コンテンツは、そのコンテンツＩＤに対応付けて記憶されている。また、コンテンツがグループ配信の対象とされるコンテンツである場合には、これを分割した複数のデータチャンクとして夫々そのコンテンツＩＤに対応付けて記憶されている。拠点サーバデータベースには、拠点サーバとしてのノードＮｎのノードＩＤ及びネットワークアドレス情報等が登録されている。また、拠点サーバデータベースには、各グループのグループＩＤと各グループに所属するノードＮｎのノードＩＤとが対応付けて登録されている。配信スケジュール情報は、例えばグループ配信の対象とされるコンテンツ毎に登録されている。そして、配信スケジュール情報には、配信対象のコンテンツのコンテンツＩＤ、配信するグループのグループＩＤ、データチャンクの総数、各データチャンクのコンテンツＩＤ、階層の総数、各階層に割り当てられたノードＮｎのノードＩＤ及び各階層における各データチャンクの取得時刻等が含まれている。この配信スケジュール情報は、例えば、オペレータがキーボード１０８及びマウス１０９等を操作することにより生成されたり、所定の端末装置からルータ１１２を介して受信される。
【００８３】
ＣＰＵ１０４は、主記憶装置１０２に記憶された各種プログラム等を読み出して実行することにより、本発明におけるスケジュール情報送信手段、変更指示情報受信手段及びスケジュール情報生成手段等として機能する。また、ＣＰＵ１０４は、スケジュール配信処理及びスケジュール変更処理等を行う。
【００８４】
ここで、スケジュール配信処理において、ＣＰＵ１０４は、配信スケジュール情報が入力されると、スケジュール情報送信手段として、入力された配信スケジュール情報を各ノードＮｎに配信する。配信スケジュール情報は、生成されたり受信されたりすること等により入力される。このとき、ＣＰＵ１０４は、配信スケジュール情報を全てのノードＮｎに配信しても良いし、関係するグループに所属するノードＮｎに対してのみ配信しても良い。また、配信スケジュール情報の配信方法としては、例えば、特許文献１に記載されているようなＤＨＴを利用したマルチキャスト配信が用いられる。また、例えば、各ノードＮｎが新しい、または変更された配信スケジュール情報の有無をセンターサーバ１０に定期的に問い合わせ、これに応じてＣＰＵ１０４が送信するようにしても良い。
【００８５】
そして、スケジュール変更処理において、ＣＰＵ１０４は、変更指示情報受信手段としてノードＮｎから配信スケジュール変更依頼メッセージを受信すると、スケジュール情報生成手段として、配信スケジュール情報を変更する。具体的に、ＣＰＵ１０４は、受信した配信スケジュール変更依頼メッセージからメッセージ送信元のノードＮｎ（以下、「変更依頼ノード」という）のノードＩＤを取得する。次いで、ＣＰＵ１０４は、取得したコンテンツＩＤが設定されている配信スケジュール情報を検索する。変更依頼ノードが複数のグループに所属している場合には、各グループに対応した配信スケジュール情報が夫々検索される。そこで、ＣＰＵ１０４は、これらの配信スケジュール情報に基づいて、変更依頼ノードが或るグループ（中継中グループ）におけるコンテンツを現在中継している最中に当該変更依頼ノードによるコンテンツの取得開始時刻が到来している別のグループ（取得時刻到来グループ）の配信スケジュール情報を特定する。コンテンツの取得開始時刻とは、当該コンテンツの最初のデータチャンクの取得時刻である。
【００８６】
そして、ＣＰＵ１０４は、特定した配信スケジュール情報において、変更依頼ノードとの配信スケジュール（階層）の入れ替えが可能なノードＮｎ（以下、「入替ノード」という）を検索する。具体的に、ＣＰＵ１０４は、最下位層に位置しているノードＮｎの中から何れか一つを入替ノードとして選定する。次いで、ＣＰＵ１０４は、特定した配信スケジュールにおいて、最下位層に対応付けられている入替ノードのノードＩＤを削除するとともに、当該入替ノードのノードＩＤを、変更依頼ノードのノードＩＤが対応付けられている階層に追加して対応付ける。また、ＣＰＵ１０４は、特定した配信スケジュールにおいて、変更依頼ノードのノードＩＤを当該ノードＩＤが対応付けられている階層から削除するとともに、当該変更依頼ノードのノードＩＤを最下位層に追加して対応付ける。このようにして変更された配信スケジュール情報は、スケジュール配信処理において各ノードＮｎに配信される。
【００８７】
入替ノードを検索するにあたっては、最下位層に位置するノードＮｎのうち、例えば、コンテンツの中継能力が最も高いノードＮｎ、或いは、コンテンツを中継する能力があるノードＮｎを入替ノードとして検索しても良い。コンテンツを中継する能力があるノードＮｎとは、中継能力が所定値以上であるノードＮｎである。コンテンツの中継能力が高いノードＮｎが最下位層以外の階層に移動する、つまり、コンテンツを中継するノードＮｎとなることにより、コンテンツの配信効率を高めることができる。ここで、コンテンツの中継能力は、例えば、各ノードＮｎの上り帯域幅（上り回線速度）から判定することができる。例えば、各ノードＮｎは、コンテンツ分散保存システムＳに参加する際、帯域測定を行い、その結果をセンターサーバ１０に送信する。帯域測定の方法は公知の各種方法を用いることができるそして、ＣＰＵ１０４は、帯域測定の結果をノードＩＤに対応付けて拠点サーバデータベースに登録しておけば良い。
【００８８】
また、ノードＮｎが、配信スケジュール変更依頼メッセージを送信する際に、当該メッセージに変更対象となる配信スケジュール情報を示す情報を含めるようにすれば、ＣＰＵ１０４にて、変更すべき配信スケジュール情報を検索する必要は無くなる。配信スケジュール情報を示す情報とは、例えば、コンテンツＩＤやグループＩＤ等である。
【００８９】
なお、このようなセンターサーバ１０として、専用のサーバの他、何れかのノードＮｎ（拠点サーバ）が適用されても良い。
【００９０】
［５．ノードＮｎの構成等］
次に、図１０を参照して、ノードＮｎの構成及び機能について説明する。
【００９１】
図１０は、ノードＮｎの概要構成例を示す図である。
【００９２】
ノードＮｎは、図１０に示すように、主電源２０１、主記憶装置２０２、ハードディスク装置２０３、ＣＰＵ２０４、ネットワークインタフェース２０５、周辺機器制御チップ２０６、ビデオチップ２０７、キーボード２０８、マウス２０９及びディスプレイ２１０等を備えて構成されている。また、主電源２０１、主記憶装置２０２、ハードディスク装置２０３、ＣＰＵ２０４、ネットワークインタフェース２０５、周辺機器制御チップ２０６、及びビデオチップ２０７は、システムバス２１１を介して相互に接続されている。また、ノードＮｎは、ルータ２１２を介してネットワーク８及び拠点に構築されたネットワークに接続される。本実施形態に係るノード装置として機能するコンピュータは、ＣＰＵ３０４及び主記憶装置３０２により構成される。
【００９３】
主記憶装置２０２は、オペレーティングシステム、運用管理プログラム、ＨＴＴＰ（Hyper Text Transfer Protocol）サーバプログラム、ルーティングテーブル、ルート制御プログラム及び配信順序管理プログラム等が記憶されている。なお、各プログラムは、例えば、センターサーバ１０からダウンロードされるようにしても良いし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００９４】
ハードディスク装置２０３には、ダウンロードされたコンテンツまたはコンテンツを分割したデータチャンクと配信スケジュール情報等が記憶されている。
【００９５】
ＣＰＵ２０４は、主記憶装置２０２に記憶された各種プログラム等を読み出して実行することにより、本発明におけるスケジュール情報取得手段、取得時期判定手段及び転送判定手段等として機能する。また、ＣＰＵ２０４は、スケジュール受信処理、コンテンツ取得制御処理及びコンテンツ中継処理等を行う。
【００９６】
ここで、スケジュール受信処理において、ＣＰＵ２０４は、スケジュール情報取得手段として、センターサーバ１０から送信されてきた配信スケジュール情報を受信しハードディスク装置２０３に記憶させる。
【００９７】
コンテンツ取得制御処理において、ＣＰＵ２０４は、取得時期判定手段として、自ノードが所属するグループのコンテンツの取得時刻が到来したか否かを判定する。具体的に、ＣＰＵ１０４は、ハードディスク装置２０３に記憶されている自ノードが所属するグループの配信スケジュール情報を参照し、自ノードが位置する階層における各データチャンクの取得時刻が到来したか否かを判定する。また、ＣＰＵ２０４は、コンテンツの取得時刻が到来したと判定した場合には、転送判定手段として、その取得時刻が到来したグループとは異なるグループにおけるコンテンツの転送をコンテンツ中継処理で行っているか否かを判定する。
【００９８】
この判定は、例えば、コンテンツを送受信する際のパケットヘッダに設定されている情報に基づいて行っても良い。例えば、センターサーバ１０が、ノードＮｎに対してコンテンツを送信する際、送信パケットのヘッダに、どのグループに対応するコンテンツであるかを示す情報を設定する。どのグループに対応するコンテンツであるかを示す情報は、例えば、グループＩＤ、コンテンツＩＤ等の識別情報である。そして、ノードＮｎにおいて、ＣＰＵ２０４が、コンテンツをダウンロードする際には、受信パケットのヘッダから識別情報を読み取る。また、ＣＰＵ２０４が、ダウンロードしたコンテンツを転送する際には、ダウンロード時に読み取った識別情報を送信パケットのヘッダに設定して、識別情報を引き継ぐ。このようにすれば、自ノードで現在転送しているコンテンツがどのグループのどのコンテンツであるかを識別することができる。
【００９９】
ＣＰＵ２０４は、上記判定により、コンテンツの取得時刻が到来したグループとは異なるグループにおけるコンテンツの転送が行われていない場合には、コンテンツ取得手段として、その取得時刻が到来したコンテンツをダウンロードする。具体的に、ＣＰＵ２０４は、配信スケジュール情報に設定されているコンテンツＩＤを含むコンテンツ所在問合せメッセージをルートノードに向けて送信し、これに応じてルートノードから送信されてきたインデックス情報を受信する。次いで、ＣＰＵ２０４は、受信したインデックス情報に示される任意のコンテンツ保持ノードにコンテンツ送信要求メッセージを送信してデータチャンクをダウンロードする。次いで、ＣＰＵ２０４は、ダウンロードしたデータチャンクをコンテンツＩＤに対応付けてハードディスク装置２０３に記憶させる。そして、ＣＰＵ２０４は、ルートノードに向けてパブリッシュメッセージを送信する。
【０１００】
一方、ＣＰＵ２０４は、コンテンツの取得時刻が到来したグループとは異なるグループにおけるコンテンツの転送が行われている場合には、変更指示情報送信手段として、自ノードのノードＩＤを含む配信スケジュール変更依頼メッセージをセンターサーバ１０に送信する。ＣＰＵ２０４は、この場合にはコンテンツのダウンロードを実行しないので、変更させたい配信スケジュール情報をこの時点でハードディスク装置２０３から削除しても良い。配信スケジュール変更依頼メッセージ送信によりセンターサーバ１０により変更された配信スケジュール情報が送信されてくるので、ＣＰＵ２０４は、この配信スケジュール情報をスケジュール受信処理により受信する。そして、受信された新しい配信スケジュール情報に基づいてコンテンツのダウンロードが行われる。
【０１０１】
コンテンツ中継処理において、ＣＰＵ２０４は、コンテンツ取得制御処理によりダウンロードしたコンテンツを他のノードＮｎに転送する。具体的に、ＣＰＵ２０４は、コンテンツ送信要求メッセージを受信すると、当該メッセージに含まれるコンテンツＩＤに対応するデータチャンクをハードディスク装置２０３から取得し、メッセージ送信元のノードＮｎに送信する。グループ配信されるコンテンツ（データチャンク）を要求してくるノードＮｎは、配信スケジュール情報により、自ノードと同一のグループに所属しているノードＮｎと定められている。
【０１０２】
［６．コンテンツ分散保存システムＳの動作］
次に、図１１及び図１２を参照して、本実施形態に係るコンテンツ分散保存システムＳの動作について説明する。なお、ここでは一部の動作の説明を省略している。
【０１０３】
図１１は、本実施形態に係るノードＮｎにおけるＣＰＵ２０４の処理例を示すフローチャートである。
【０１０４】
図１１の処理は、例えばノードＮｎの電源がＯＮとされた場合に開始される。先ず、ＣＰＵ２０４は、拠点サーバとして機能するためのプログラムの各種の初期化処理を実行する（ステップＳ１）。次いで、ＣＰＵ２０４は、センターサーバ１０から新しい配信スケジュール情報を受信したか否かを判定する（ステップＳ２）。このとき、ＣＰＵ２０４は、新しい配信スケジュール情報を受信した場合には（ステップＳ２：ＹＥＳ）、ハードディスク装置２０３に記憶されている配信スケジュール情報を新しい配信スケジュール情報で更新する（ステップＳ３）。
【０１０５】
一方、ステップＳ２において、ＣＰＵ２０４は、新しい配信スケジュール情報を受信していない場合には（ステップＳ２：ＮＯ）、ユーザ端末Ｕｍからのコンテンツ送信要求メッセージを受信したか否かを判定する（ステップＳ４）。このとき、ＣＰＵ２０４は、コンテンツ送信要求メッセージを受信した場合には（ステップＳ４：ＹＥＳ）、受信したコンテンツ送信要求メッセージに対応するコンテンツをユーザ端末Ｕｍに送信する（ステップＳ５）。
【０１０６】
ステップＳ４において、ＣＰＵ２０４は、コンテンツ送信要求メッセージを受信していない場合には（ステップＳ４：ＮＯ）、配信スケジュール情報に示される取得時刻が到来したか否かを判定する（ステップＳ６）。このとき、ＣＰＵ２０４は、取得時刻が到来した場合には（ステップＳ６：ＹＥＳ）、取得時刻が到来したグループ以外のグループのうち、既にコンテンツ中継処理中のグループは存在しないか否かを判定する（ステップ７）。例えば、ＣＰＵ２０４は、コンテンツを送受信する際のパケットヘッダに設定されている識別情報に基づいて判定する。この識別情報は、どのグループに対応するコンテンツであるかを示す情報である。また、この識別情報は、センターサーバ１０が、コンテンツを送信する際の送信パケットのヘッダに設定する。そして、ＣＰＵ２０４は、コンテンツをダウンロードする際には、受信パケットのヘッダから識別情報を読み取る。また、ＣＰＵ２０４は、ダウンロードしたコンテンツを転送する際には、ダウンロード時に読み取った識別情報を送信パケットのヘッダに設定する。これにより、ＣＰＵ２０４は、現在コンテンツを転送しているか否かと、どのグループのコンテンツを転送しているか否かを判断することができる。
【０１０７】
このとき、ＣＰＵ２０４は、既にコンテンツ中継処理中のグループは存在しない場合には（ステップＳ７：ＹＥＳ）、配信スケジュール情報に示されるデータチャンクのコンテンツＩＤを含むコンテンツ所在問合わせメッセージ（検索クエリ）をルートノードに向けて送信する（ステップＳ８）。一方、ＣＰＵ２０４は、既にコンテンツ中継処理中のグループが存在する場合には（ステップＳ７：ＮＯ）、自ノード装置のノードＩＤを含む配信スケジュール変更依頼メッセージをセンターサーバ１０に送信する（ステップＳ９）。
【０１０８】
ＣＰＵ２０４は、ステップＳ３、Ｓ５、Ｓ８又はＳ９の処理を終えたとき、或いは、ステップＳ６において取得時刻が到来していない場合には（ステップＳ６：ＮＯ）、拠点サーバとしてのサービスを終了させるか否かを判定する（ステップＳ１０）。例えば、キーボード２０８やマウス２０９がオペレータにより操作されることによってシャットダウンが指示された場合には、サービスを終了させると判定される。このとき、ＣＰＵ２０４は、サービスを終了させない場合には（ステップＳ１０：ＮＯ）、ステップＳ２に移行する。一方、ＣＰＵ２０４は、サービスを終了させる場合には（ステップＳ１０：ＹＥＳ）、プログラムを終了させるための各種の終了処理を実行し（ステップＳ１１）、当該処理を終了させる。
【０１０９】
図１２は、本実施形態に係るセンターサーバ１０におけるＣＰＵ１０４の処理例を示すフローチャートである。
【０１１０】
図１２の処理は、例えばセンターサーバ１０の電源がＯＮとされた場合に開始される。先ず、ＣＰＵ１０４は、センターサーバ１０として機能するためのプログラムの各種の初期化処理を実行する（ステップＳ２１）。次いで、ＣＰＵ１０４は、新しい配信スケジュール情報が入力されたか又はハードディスク装置１０３に記憶されている何れかの配信スケジュール情報が変更されたか否かを判定する（ステップＳ２２）。配信スケジュール情報の変更の判定は、例えば、ＲＡＭに変更フラグが設定されているか否かを判定することにより行われる。この変更フラグは、後述するステップＳ２６において配信スケジュール情報が変更されたとき、変更された配信スケジュールに対応して設定される情報である。このとき、ＣＰＵ１０４は、配信スケジュール情報が入力され又は変更された場合には（ステップＳ２２：ＹＥＳ）、全てのノードＮｎに対して、入力又は変更された配信スケジュールをプッシュ式で配信する（ステップＳ２３）。
【０１１１】
一方、ＣＰＵ１０４は、配信スケジュール情報が入力も変更されていない場合には（ステップＳ２２：ＮＯ）、ノードＮｎから配信スケジュール変更依頼メッセージを受信したか否かを判定する（ステップＳ２４）。このとき、ＣＰＵ１０４は、配信スケジュール変更依頼メッセージを受信した場合には（ステップＳ２４：ＹＥＳ）、変更する配信スケジュール情報を特定し、変更依頼ノードと入れ替え可能なノードＮｎ（入替ノード）を検索する（ステップＳ２５）。例えば、ＣＰＵ１０４は、最下位層に位置するノードＮｎのうちコンテンツの中継能力が所定値以上のノードＮｎを検索する。次いで、ＣＰＵ１０４は、変更依頼ノードと、検索した入替ノードとの階層を互いに入れ替えることにより、配信スケジュール情報を変更する（ステップＳ２６）。このとき、ＣＰＵ１０４は、変更した配信スケジュール情報に対応する変更フラグをＲＡＭに設定する。その後、ステップＳ２７の判定を経由してステップＳ２２に移行した場合、ＣＰＵ１０４は、変更フラグが設定されていることを認識する。従って、ステップＳ２２において、ＣＰＵ１０４は、配信スケジュール情報が変更されたと判定する。そして、ステップＳ２３において、その変更された配信スケジュール情報を全てのノードＮｎに配信する。そして、ＣＰＵ１０４は、配信スケジュール情報の配信が完了すると、変更フラグをＲＡＭから削除する。
【０１１２】
ＣＰＵ１０４は、ステップＳ２３又はＳ２６の処理を終えたとき、或いは、ステップＳ２４において配信スケジュール変更依頼メッセージを受信していない場合には（ステップＳ２４：ＮＯ）、センターサーバ１０としてのサービスを終了させるか否かを判定する（ステップＳ２７）。例えば、キーボード１０８やマウス１０９がオペレータにより操作されることによってシャットダウンが指示された場合には、サービスを終了させると判定される。このとき、ＣＰＵ１０４は、サービスを終了させない場合には（ステップＳ２７：ＮＯ）、ステップＳ２２に移行する。一方、ＣＰＵ１０４は、サービスを終了させる場合には（ステップＳ２７：ＹＥＳ）、プログラムを終了させるための各種の終了処理を実行し（ステップＳ２８）、当該処理を終了させる。
【０１１３】
以上説明したように、本実施形態によれば、ノードＮｎは、自ノードが所属するグループに対応するコンテンツを、当該グループに所属する他のノードＮｎにコンテンツ送信要求メッセージを送信することによりダウンロードする。また、ノードＮｎは、ダウンロードされたコンテンツを当該コンテンツに対応するグループに所属する他のノードＮｎに転送する。また、センターサーバ１０は、配信スケジュール情報を各ノードＮｎに配信する。ノードＮｎは、この配信スケジュール情報を受信する。また、ノードＮｎは、配信スケジュール情報に基づいてコンテンツの取得時刻が到来したか否かを判定し、取得時刻が到来した場合には、当該コンテンツに対応する取得時刻到来グループ以外のグループに対応するコンテンツを転送しているか否かを判定する。そして、ノードＮｎは、コンテンツを転送している場合には、配信スケジュール変更依頼メッセージをセンターサーバ１０に送信する。配信スケジュール変更依頼メッセージを受信したセンターサーバ１０は、当該変更依頼ノードが現在コンテンツを転送している中継中グループ以外のグループのうち当該転送中に変更依頼ノードによる取得時刻が到来したコンテンツに対応する取得時刻到来グループにおいて、変更依頼ノードと、取得時刻が変更依頼ノードよりも遅い何れか一つのノードＮｎと、の取得時刻を互いに入れ替えた配信スケジュール情報を生成する。
【０１１４】
従って、変更依頼ノードは、自ノードによるコンテンツの取得時刻が変更された配信スケジュール情報を受信し、この配信スケジュール情報に基づいて取得時刻到来グループに対応するコンテンツをダウンロードするので、コンテンツの取得時刻が遅らされる。これにより、変更依頼ノードにおいて、中継中グループに対応するコンテンツの転送と、取得時刻到来グループに対応するコンテンツの転送と、が同時に行われなくなる。よって、複数のグループに所属するノードＮｎにおけるコンテンツの転送遅延を防ぐことができる。
【０１１５】
また、センターサーバ１０は、配信スケジュール情報を変更する際、変更依頼ノードと取得時刻を入れ替える入替ノードを、変更依頼ノードが現在コンテンツを転送しているグループには所属していないノードＮｎから選定する。
【０１１６】
従って、入替ノードにおいても、中継中グループに対応するコンテンツの転送と、取得時刻到来グループに対応するコンテンツの転送と、が同時に行われることを確実に防止することができる。
【０１１７】
また、センターサーバ１０は、配信スケジュール情報を変更する際、取得時刻到来グループにおいて、変更依頼ノードと、当該変更依頼ノードよりも下位の階層に位置するノードＮｎと、の階層を入れ替える。
【０１１８】
従って、階層の入れ替えによりコンテンツの取得時期を入れ替えることができるので、よりスケジュールを調整するための処理を簡易にすることができる。
【０１１９】
また、センターサーバ１０は、配信スケジュール情報を変更する際、取得時刻到来グループにおいて、変更依頼ノードと、最下位層に位置する何れかのノードＮｎと、の階層を入れ替える。
【０１２０】
従って、変更依頼ノードが最下位層に移動することにより当該変更依頼ノードは、コンテンツを中継する必要が無くなるので、中継中グループに対応するコンテンツの転送と、取得時刻到来グループに対応するコンテンツの転送と、が同時に行われることを確実に防止することができる。
【０１２１】
なお、上記実施形態において、センターサーバ１０は、配信スケジュール情報を変更する際、変更依頼ノードを最下位層に移動させるようにしていたが、移動先としては最下位層に限られるものではない。具体的には、変更依頼ノードが元来位置していた階層よりも下位の階層であり、且つ、取得時刻到来グループにおける変更依頼ノードのコンテンツの転送と、中継中グループにおける変更依頼ノードのコンテンツの転送が同時に行われないような階層であれば良い。
【０１２２】
また、上記実施形態におけるコンテンツ分散保存システムＳは、グループに所属する複数のノードＮｎにより複数の階層により形成し、上位階層のノード装置から下位階層のノード装置へコンテンツが順次転送されるようにしていたが、階層を形成するようなシステムに限られるものではない。例えば、グループに所属する各ノードＮｎのコンテンツの取得順序を決めて、その順序に従ってコンテンツが順次転送されるようなシステムでも良い。そして、配信スケジュール情報の変更する場合には、この順序を入れ替えれば良い。
【０１２３】
また、上記実施形態においては、配信スケジュールの変更をセンターサーバ１０が行っていたが、ノードＮｎ自身が行っても良い。例えば、ノードＮｎは、配信スケジュール情報を保持しているので、この配信スケジュール情報を参照することにより、取得時刻到来グループにおいて取得時刻を入れ替える入替ノードを検索する。そして、ノードＮｎは、検索した入替ノードと直接通信することにより、ノードＮｎ及び入替ノードにおける配信スケジュール情報を変更するようにする。
【０１２４】
また、上記実施形態においては、コンテンツを複数のデータチャンクに分割して配信するようにしていたが、分割しないで配信するようにしても良い。
【０１２５】
また、上記実施形態においては、コンテンツを取得する側のノードＮｎから要求することによってコンテンツが送信されるようにしていた。つまり、コンテンツはＰｕｌｌ送信されるようにしていたが、これに限られるものではない。Ｐｕｓｈ送信する場合に本発明を適用しても良い。
【０１２６】
また、上記実施形態においては、配信スケジュールをセンターサーバ１０が一括管理していたが、これに限られるものではない。例えば、所定のノードＮｎが配信スケジュールを一括して管理し、変更するようにしても良い。また、例えば、各ノードＮｎが配信スケジュールを管理し、変更するようにしても良い。
【符号の説明】
【０１２７】
３  ＩＸ
４ａ、４ｂ  ＩＳＰ
５ａ、５ｂ  ＤＳＬ回線業者
６  ＦＴＴＨ回線業者
７  通信回線
８  ネットワーク
９  オーバーレイネットワーク
１０  センターサーバ
１０１，２０１  主電源
１０２，２０２  主記憶装置
１０３，２０３  ハードディスク装置
１０４，２０４  ＣＰＵ
１０５，２０５  ネットワークインタフェース
１０６，２０６  周辺機器制御チップ
１０７，２０７  ビデオチップ
１０８，２０８  キーボード
１０９，２０９  マウス
１１０，２１０  ディスプレイ
１１１，２１１  システムバス
１１２，２１２  ルータ
Ｎｎ  ノード（拠点サーバ）
Ｓ  コンテンツ分散保存システム
【図１】
2010232782.tif 000003
【図２】
2010232782.tif 000004
【図３】
2010232782.tif 000005
【図４】
2010232782.tif 000006
【図５】
2010232782.tif 000007
【図６】
2010232782.tif 000008
【図７】
2010232782.tif 000009
【図８】
2010232782.tif 000010
【図９】
2010232782.tif 000011
【図１０】
2010232782.tif 000012
【図１１】
2010232782.tif 000013
【図１２】
2010232782.tif 000014