(57)【要約】【課題】回線速度が異なるノード装置が混在している場合に、コンテンツの配信に要する時間を短縮させる。【解決手段】ノード装置は、複数のノード装置夫々のネットワークに接続するための回線の回線速度に応じて複数のノード装置がグループ分けされた複数のグループのコンテンツの取得順序として、回線速度が速いグループから順に取得することを示す順序情報を取得するグループ情報取得手段と、グループ情報取得手段により取得された順序情報に基づいて、コンテンツの取得時期を決定する取得時期決定手段と、取得時期決定手段により決定された取得時期にコンテンツを取得するコンテンツ取得手段と、を備え、所属する各ノード装置が、取得時期の何れかにコンテンツを取得することにより、各グループによりコンテンツが取得され、各グループによるコンテンツの取得が、順序情報により示される取得順序が早いグループから順に開始される。【選択図】図１０
2010238162.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ配信システムにおいて、
前記ノード装置は、
前記複数のノード装置夫々の前記ネットワークに接続するための回線の回線速度に応じて前記複数のノード装置がグループ分けされた複数のグループのコンテンツの取得順序として、前記回線速度が速いグループから順に取得することを示す順序情報を取得するグループ情報取得手段と、
前記グループ情報取得手段により取得された順序情報に基づいて、コンテンツの取得時期を決定する取得時期決定手段と、
前記取得時期決定手段により決定された取得時期に前記コンテンツを取得するコンテンツ取得手段と、
を備え、
所属する各ノード装置が、前記取得時期の何れかに前記コンテンツを取得することにより、各前記グループによりコンテンツが取得され、
前記各グループによるコンテンツの取得が、前記順序情報により示される取得順序が早いグループから順に開始されることを特徴とするコンテンツ配信システム。
【請求項２】
請求項１に記載のコンテンツ配信システムに含まれるノード装置において、
前記グループ情報取得手段と、
前記取得時期決定手段と、
前記コンテンツ取得手段と、
を備え、
前記コンテンツ取得手段は、前記コンテンツを取得したことにより当該コンテンツを送信可能となったノード装置を検索し、前記検索されたノード装置から前記コンテンツを取得することを特徴とするノード装置。
【請求項３】
請求項２に記載のノード装置において、
前記グループ情報取得手段は、各ノード装置のコンテンツの送信可能数をグループ毎に示す送信数情報として、前記回線速度が速いグループほど多い値の前記送信可能数が設定された送信数情報を更に取得し、
前記取得時期決定手段は、前記グループ情報取得手段により取得された前記順序情報及び前記送信数情報に基づいて、前記グループ毎における前記コンテンツを送信可能となったノード装置の個数と前記送信可能数とに応じた個数のノード装置により前記コンテンツが取得されるように前記取得時期を決定することを特徴とするノード装置。
【請求項４】
請求項２又は請求項３に記載のノード装置において、
前記取得時期決定手段は、前記順序情報に従って取得順序が最初のグループから最後のグループまで順次前のグループに所属するノード装置により前記コンテンツが取得された後、次のグループに所属するノード装置により前記コンテンツが取得されるよう前記取得時期を決定することを特徴とするノード装置。
【請求項５】
コンピュータを、
請求項２乃至４の何れか１項に記載のノード装置として機能させることを特徴とするコンテンツ取得処理プログラム。
【請求項６】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ配信システムにおけるコンテンツ配信方法において、
前記ノード装置が、前記複数のノード装置夫々の前記ネットワークに接続するための回線の回線速度に応じて前記複数のノード装置がグループ分けされた複数のグループのコンテンツの取得順序として、前記回線速度が速いグループから順に取得することを示す順序情報を取得するグループ情報取得工程と、
前記ノード装置が、前記グループ情報取得工程において取得された順序情報に基づいて、コンテンツの取得時期を決定する取得時期決定工程と、
前記ノード装置が、前記取得時期決定工程において決定された取得時期に前記コンテンツを取得するコンテンツ取得手段と、
を有し、
所属する各ノード装置が、前記取得時期の何れかに前記コンテンツを取得することにより、各前記グループによりコンテンツが取得され、
前記各グループによるコンテンツの取得が、前記順序情報により示される取得順序が早いグループから順に開始されることを特徴とするコンテンツ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型の通信システムの技術分野に関する。
【背景技術】
【０００２】
この種のシステムに関し、特許文献１には、ピアツーピア型のコンテンツ配信に関する技術が開示されている。具体的に、この技術においては、各ノード装置がコンテンツを保存している他のノード装置を検索し、検索されたノード装置のうち何れかのノード装置にコンテンツを要求する。これにより、各ノード装置はコンテンツを取得するようになっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１９７４００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、同一のコンテンツを複数のノード装置に配信したい場合がある。この場合において、全てのノード装置が一斉にコンテンツを要求すると、コンテンツを保存しているノード装置に負荷が集中してしまう。そこで、コンテンツの配信の際、例えば、最初のうちはコンテンツの要求を行う（取得する）ノード装置を少数とし、時間の経過に従ってコンテンツの要求を行うノード装置を増加させていくようにすることが考えられる。最初のうちにコンテンツを取得したノード装置は、先に他のノード装置に対して配信可能となる。従って、コンテンツを取得したノード装置が増えるほど、配信可能なノード装置が増える。  
【０００５】
ところが、各ノード装置が接続されている回線の種類（例えば、ＦＴＴＨ（Fiber To The Home）、ＡＤＳＬ（Asymmetric Digital Subscriber Line）等）等によって、その回線速度が異なる場合がある。この場合、回線速度の遅いノード装置が最初にコンテンツを取得しに行くと、コンテンツを取得し、他のノード装置へ配信可能となるまでに必要以上の時間を要してしまう。そのため、コンテンツを配信可能なノード装置が増えるまで、多大な時間を要してしまう問題があった。
【０００６】
そこで、本発明は、以上の点等に鑑みてなされたものであり、回線速度が異なるノード装置が混在している場合に、コンテンツの配信に要する時間を短縮させることを可能とするコンテンツ配信システム、ノード装置、コンテンツ配信方法及びコンテンツ取得処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ配信システムにおいて、前記ノード装置は、前記複数のノード装置夫々の前記ネットワークに接続するための回線の回線速度に応じて前記複数のノード装置がグループ分けされた複数のグループのコンテンツの取得順序として、前記回線速度が速いグループから順に取得することを示す順序情報を取得するグループ情報取得手段と、前記グループ情報取得手段により取得された順序情報に基づいて、コンテンツの取得時期を決定する取得時期決定手段と、前記取得時期決定手段により決定された取得時期に前記コンテンツを取得するコンテンツ取得手段と、を備え、所属する各ノード装置が、前記取得時期の何れかに前記コンテンツを取得することにより、各前記グループによりコンテンツが取得され、前記各グループによるコンテンツの取得が、前記順序情報により示される取得順序が早いグループから順に開始されることを特徴とする。
【０００８】
この発明によれば、回線速度が速いグループから順に、所属するノード装置によるコンテンツの取得が開始される。よって、他のノード装置にコンテンツを送信可能となるノード装置が早く増加する。これにより、コンテンツの配信に要する時間を短縮させることができる。
【０００９】
請求項２に記載の発明は、請求項１に記載のコンテンツ配信システムに含まれるノード装置において、前記グループ情報取得手段と、前記取得時期決定手段と、前記コンテンツ取得手段と、を備え、前記コンテンツ取得手段は、前記コンテンツを取得したことにより当該コンテンツを送信可能となったノード装置を検索し、前記検索されたノード装置から前記コンテンツを取得することを特徴とする。
【００１０】
この発明によれば、各ノード装置は、コンテンツを取得する際、コンテンツを取得したことにより当該コンテンツを送信可能となったノード装置を検索する。従って、各ノード装置は、コンテンツ配信開始から早い段階で多くのコンテンツ送信可能なノード装置の中からコンテンツを取得することができる。これにより、コンテンツの配信に要する時間を短縮させることができる。
【００１１】
請求項３に記載の発明は、請求項２に記載のノード装置において、前記グループ情報取得手段は、各ノード装置のコンテンツの送信可能数をグループ毎に示す送信数情報として、前記回線速度が速いグループほど多い値の前記送信可能数が設定された送信数情報を更に取得し、前記取得時期決定手段は、前記グループ情報取得手段により取得された前記順序情報及び前記送信数情報に基づいて、前記グループ毎における前記コンテンツを送信可能となったノード装置の個数と前記送信可能数とに応じた個数のノード装置により前記コンテンツが取得されるように前記取得時期を決定することを特徴とする。
【００１２】
この発明によれば、送信可能数が多いグループの順に、所属するノード装置によるコンテンツの取得が開始される。そして、コンテンツを送信可能となったノード装置の個数とそのノード装置が所属するグループの送信可能数とに応じた個数のノード装置が、夫々コンテンツを送信可能となったノード装置からコンテンツを取得する。これにより、コンテンツを送信可能なノード装置の個数の増加率を高めることができる。
【００１３】
請求項４に記載の発明は、請求項２又は請求項３に記載のノード装置において、前記取得時期決定手段は、前記順序情報に従って取得順序が最初のグループから最後のグループまで順次前のグループに所属するノード装置により前記コンテンツが取得された後、次のグループに所属するノード装置により前記コンテンツが取得されるよう前記取得時期を決定することを特徴とする。
【００１４】
この発明によれば、回線速度が速いグループから順に、所属するノード装置がコンテンツを取得してから、次のグループに所属するノード装置がコンテンツの取得を開始する。よって、各グループのコンテンツを取得する所定時間間隔としては、そのグループの回線速度を考慮すれば良い。従って、各グループの所定時間間隔を調節することにより、コンテンツの配信に要する時間を短縮させることができる。
【００１５】
請求項５に記載の発明は、コンピュータを、請求項２乃至４の何れか１項に記載のノード装置として機能させることを特徴とする。
【００１６】
請求項６に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ配信システムにおけるコンテンツ配信方法において、前記ノード装置が、前記複数のノード装置夫々の前記ネットワークに接続するための回線の回線速度に応じて前記複数のノード装置がグループ分けされた複数のグループのコンテンツの取得順序として、前記回線速度が速いグループから順に取得することを示す順序情報を取得するグループ情報取得工程と、前記ノード装置が、前記グループ情報取得工程において取得された順序情報に基づいて、コンテンツの取得時期を決定する取得時期決定工程と、前記ノード装置が、前記取得時期決定工程において決定された取得時期に前記コンテンツを取得するコンテンツ取得手段と、を有し、所属する各ノード装置が、前記取得時期の何れかに前記コンテンツを取得することにより、各前記グループによりコンテンツが取得され、前記各グループによるコンテンツの取得が、前記順序情報により示される取得順序が早いグループから順に開始されることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、他のノード装置に送信可能となるノード装置が早く増加する。これにより、コンテンツの配信に要する時間を短縮させることができる。
【図面の簡単な説明】
【００１８】
【図１】一実施形態に係るコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【図２】一実施形態に係るコンテンツ分散保存システムＳにおいて、コンテンツが配信される様子の一例を示す図である。
【図３】複数のグループがコンテンツを既に取得している場合の当選台数と当選確率の計算方法を示す図である。
【図４】一実施形態に係るパラメータ情報に設定される内容の一例を示す図である。
【図５】一実施形態に係る各グループのコンテンツの取得時期の一例を時系列で示す図である。
【図６】一実施形態に係るセンターサーバＳＡの概要構成例を示す図である。
【図７】一実施形態に係るノードＮｎの概要構成例を示す図である。
【図８】一実施形態に係るコンテンツ分散保存システムＳの回線速度計測時における処理例を示すフローチャートである。
【図９】一実施形態に係るコンテンツ分散保存システムＳのパラメータ情報作成時における処理例を示すフローチャートである。
【図１０】一実施形態に係るコンテンツ分散保存システムＳのコンテンツ配信時における処理例を示すフローチャートである。
【図１１】一実施形態に係るノードＮｎの制御部２１のコンテンツ取得処理における処理例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【００２０】
［１．コンテンツ分散保存システムの構成及び動作概要］
始めに、図１等を参照して、本実施形態に係るコンテンツ分散保存システムの構成及び動作概要について説明する。
【００２１】
図１は、本実施形態に係るコンテンツ分散保存システムＳにおける各ノード装置の接続態様の一例を示す図である。
【００２２】
図１の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４ａ，４ｂ、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ，５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線７等によって、インターネット等のネットワーク８が構築されている。ネットワーク８は、現実世界の通信ネットワークである。なお、図１の例におけるネットワーク（通信ネットワーク）８には、データ（パケット）を転送するためのルータが適宜挿入されているが、図１では図示を省略している。なお、通信回線７としては、例えば、電話回線や光ケーブル等が用いられる。
【００２３】
このようなネットワーク８には、複数のノード装置（以下、「ノード」という）Ｎｎ（ｎ＝１，２，３・・・の何れか）が接続されている。また、各ノードＮｎには、固有の製造番号及びＩＰ（Internet Protocol）アドレスが割り当てられている。そして、本実施形態に係るコンテンツ分散保存システムＳは、これらのノードＮｎのうち、図１の上部枠１００内に示すように、何れか複数のノードＮｎの参加により形成されるピアツーピア方式のネットワークシステムとなっている。
【００２４】
なお、図１の上部枠１００内に示すネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク９である。オーバーレイネットワーク９は、論理的なネットワークであるかかるオーバーレイネットワーク９は、特定のアルゴリズム、例えば、ＤＨＴを利用したアルゴリズムにより実現される。そして、コンテンツ分散保存システムＳ（言い換えれば、オーバーレイネットワーク９）に参加している各ノードＮｎには、所定桁数からなる固有の識別情報であるノードＩＤが割り当てられている。
【００２５】
また、ノードＩＤは、例えば、各ノードＮｎに個別に割り当てられたＩＰアドレス或いは製造番号を共通のハッシュ関数によりハッシュ化した値である。ノードＩＤは、ＩＤ空間に偏りなく分散して配置されることになる。ハッシュ関数としては、例えば、ＳＨＡ−１等が用いられる。また、ハッシュ化した値は、例えば、ｂｉｔ長が１６０ｂｉｔとなる。そして、このノードＩＤは、ＩＤ空間に偏りなく分散して配置されることになる。
【００２６】
なお、コンテンツ分散保存システムＳへの参加は、参加していないノードＮｎ（例えば、ノードＮ８）が、参加している任意のノードＮｎに対して参加要求を示す参加メッセージを送信することによって行われる。任意のノードＮｎは、例えば、当該システムＳに常時参加しているコンタクトノードである。
【００２７】
また、各ノードＮｎは、夫々、ＤＨＴを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムＳ上における各種メッセージの転送先を規定している。具体的に、このルーティングテーブルには、ＩＤ空間内で適度に離れたノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号を含むノード情報が複数登録されている。
【００２８】
コンテンツ分散保存システムＳに参加している１台のノードは、必要最低限のノードＮｎのノード情報をルーティングテーブルとして記憶している。各ノードＮｎ間で互いに各種メッセージが転送されることで、ノード情報を知らない（記憶していない）ノードＮｎについてのノード情報が取得される。
【００２９】
このようなＤＨＴを用いたルーティングテーブルについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００３０】
コンテンツ分散保存システムＳは、内容の異なる様々なコンテンツのレプリカを所定のファイル形式で複数のノードＮｎに分散して保存（格納）する。レプリカを保存しているノードＮｎは、以下「コンテンツ保持ノード」という。コンテンツ分散保存システムＳは、各ノードＮｎ間でレプリカを利用可能になっている。各コンテンツのオリジナルはセンターサーバＳＡに保存されている。例えば、ノードＮ５には、タイトルがＸＸＸの映画のコンテンツのレプリカが保存されている。一方、ノードＮ３には、タイトルがＹＹＹの映画のコンテンツのレプリカが保存される。このように、複数のノードＮｎ（以下、「コンテンツ保持ノード」という）に分散されて保存されている。
【００３１】
上述のコンテンツのレプリカには、夫々、コンテンツ名（タイトル）及びコンテンツＩＤ（コンテンツ毎に固有の識別情報）等の情報が付加されている。このコンテンツＩＤは、例えば、コンテンツ名＋任意の数値が、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて生成される。或いは、システム管理者が、コンテンツ毎に一意のＩＤ値を付与しても良い。この場合は、コンテンツ名とそのコンテンツＩＤの対応が書かれたコンテンツカタログ情報が、全ノードＮｎに配布される。また、この場合のコンテンツＩＤは、ノードＩＤと同一ビット長である。
【００３２】
分散保存されているコンテンツのレプリカの所在は、インデックス情報として、コンテンツのレプリカの所在を管理（記憶）しているノードＮｎ（以下、「ルートノード」という）等により記憶される。インデックス情報は、レプリカを保存したノードＮｎのノード情報と、コンテンツのコンテンツＩＤと等の組を含む。このようなルートノードは、例えば、コンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノードＮｎであるように定められる。
【００３３】
例えば、タイトルがＸＸＸの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ４により管理される。また、例えば、タイトルがＹＹＹの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツ（コンテンツＩＤ）のルートノードであるノードＮ７により管理される。また、このようなルートノードは、例えば、コンテンツＩＤと最も近いノードＩＤを有するノードＮｎであるように定められる。コンテンツＩＤと最も近いノードＩＤとは、例えば、コンテンツＩＤと上位桁がより多く一致するノードＩＤである。
【００３４】
そして、あるノードＮｎのユーザが、所望するコンテンツのレプリカを取得したい場合、当該レプリカの取得を望むノードＮｎ（以下、「ユーザノード」という）は、メッセージ（クエリ）を生成する。このメッセージ（クエリ）は、取得を望むコンテンツのコンテンツＩＤ及びユーザノードのＩＰアドレス等を含むコンテンツ所在問合せメッセージである。コンテンツ所在問合せメッセージは、コンテンツ保持ノードを検索するためのメッセージでもある。上述のコンテンツ所在問合せメッセージが、ユーザノードが取得するＤＨＴのルーティングテーブルに従って、他のノードＮｎに対して送出される。つまり、ユーザノードは、コンテンツ所在問合せメッセージを、ルートノードに向けて送出する。これにより、コンテンツ所在問合せメッセージは、コンテンツＩＤをキーとするＤＨＴルーティングによって最終的にルートノードに到着することになる。
【００３５】
なお、各ノードＮｎにおいて、コンテンツのコンテンツ名及びコンテンツＩＤ等の属性情報は、例えばセンターサーバＳＡから全てのノードＮｎに配信されるコンテンツカタログ情報に記述されている。
【００３６】
また、上記コンテンツ所在問合せ（検索）メッセージに含まれるコンテンツＩＤは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。なお、ＤＨＴルーティングについては、特開２００６−１９７４００号公報等で公知であるので、詳しい説明を省略する。
【００３７】
上記コンテンツ所在問合せメッセージを受信したルートノードは、これに含まれるコンテンツＩＤに対応するインデックス情報をインデックスキャッシュから取得（検索）する。取得されたインデックス情報は、コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信される。こうしてインデックス情報を取得したユーザノードは、インデックス情報に基づいてコンテンツのレプリカをダウンロード（取得）することができる。インデックス情報に含まれるコンテンツ保持ノードのＩＰアドレス等に基づいて、ユーザノードはコンテンツ保持ノードにアクセスする。アクセスしたコンテンツ保持ノードから、コンテンツのレプリカをダウンロード（取得）することが可能になる。なお、当該インデックス情報には、例えば複数のコンテンツ保持ノードのノード情報が含まれていることもある（同一のコンテンツのレプリカが複数のコンテンツ保持ノードに保存されている場合）。かかる場合、ユーザノードは、当該複数のコンテンツ保持ノードのうち一つのコンテンツ保持ノードを選択する。そして、ユーザノードは、選択したコンテンツ保持ノードに接続してコンテンツのレプリカをダウンロードすることができる。
【００３８】
なお、ルートノードは、当該インデックス情報に含まれるＩＰアドレス等に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージを送信し、これにより、ユーザノードは、上記コンテンツ保持ノードからそのレプリカをダウンロードすることもできる。また、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしているキャッシュノードから当該インデックス情報を取得することもできる。
【００３９】
また、ユーザノードは、コンテンツ保持ノードからコンテンツのレプリカを取得して保存したとき、保存したユーザノードは、パブリッシュ（登録通知）メッセージを生成する。パブリッシュメッセージは、レプリカを保存したことをルートノードへ知らせるためのメッセージである。パブリッシュメッセージは、レプリカのコンテンツＩＤ及び自己のノード情報を含む。パブリッシュメッセージは、ルートノードに向けて（ルートノード宛に）送出される。これにより、パブリッシュメッセージは、コンテンツ所在問合せメッセージと同じように、コンテンツＩＤをキーとするＤＨＴルーティングによってルートノードに到着することになる。そして、ルートノードは、パブリッシュメッセージを受信する。ルートノードは、パブリッシュメッセージに含まれるノード情報及びコンテンツＩＤの組を含むインデックス情報を登録（インデックスキャッシュ領域に記憶）する。こうして、上記ユーザノードは、新たに、上記コンテンツのレプリカを保持するコンテンツ保持ノードとなる。
【００４０】
［２．コンテンツ配信の概要］
次に、コンテンツ分散保存システムＳにおけるコンテンツ配信について、図２乃至図５を用いて説明する。なお、ここからの説明においては、各ノードＮｎが保存しているレプリカも、コンテンツと称する。
【００４１】
コンテンツ分散保存システムＳにおいては、当該システムに参加する複数のノードＮｎが、夫々がネットワーク８に接続する回線の伝送速度、つまり回線速度に応じて複数のグループにグループ分けされている。そして、当該システムにおいては、本実施形態では、例えば、回線速度の速いグループから順に、コンテンツの取得を開始するようになっている。先ず、コンテンツがどのように配信されるかを説明する。
【００４２】
図２は、本実施形態に係るコンテンツ分散保存システムＳにおいて、コンテンツが配信される様子の一例を示す図である。
【００４３】
例えば、図２に示す９台のノードＮ１〜Ｎ９の回線速度の最も速いグループ１に所属しているとする。また、全ノードＮｎに配信されるべきコンテンツは、最初はセンターサーバＳＡのみが保持している。コンテンツ配信の開始とともに、ノードＮ１〜Ｎ９のうち、例えば、１台のノードＮｎがコンテンツを取得する。
【００４４】
グループ１に所属するノードＮｎのうち、どのノードＮｎがどのタイミングでコンテンツを取得するかは予め決められてはいない。これは、確率計算によって決められる。図２に示す例では、９台のうち１台のノードＮｎがコンテンツを取得する。従って、ノードＮ１〜Ｎ９は、夫々１／９の確率でコンテンツの取得に当選する抽選処理を実行する。そして、当選したノードＮｎ、例えばノードＮ１のみがコンテンツを取得する。ノードＮ１は、コンテンツを取得するために、コンテンツの所在をルートノードに問い合わせる（コンテンツ所在問合せメッセージをルートノードに送信することにより、インデックス情報を取得する）。この時点では、取得すべきコンテンツを保存しているノードＮｎは存在していないので、ノードＮ１は、センターサーバＳＡから当該コンテンツをダウンロードする。
【００４５】
ノードＮ１のコンテンツ取得開始から所定時間が経過した後、次は２台のノードＮｎがコンテンツを取得する。ここでは、未だコンテンツを取得していない８台のノードＮ２〜Ｎ９のうち２台のノードＮｎがコンテンツを取得するので、当選確率は２／８となる。ノードノードＮ２〜Ｎ９は、夫々当選確率２／８の抽選処理を行う。そして、当選した、例えばノードＮ２及びＮ３がコンテンツの取得を開始する。ノードＮ２及びＮ３が、コンテンツの所在をルートノードに問い合わせると、ノードＮ１がコンテンツ保持ノードであることを特定することができる。そこで、ノードＮ２及びＮ３は、夫々ノードＮ１からコンテンツをダウンロードする。ノードＮ１としては、同時に２台のノードＮｎに対してコンテンツをアップロードすることになる。
【００４６】
ノードＮ２及びＮ３のコンテンツ取得開始から所定時間が経過した後、次は６台のノードＮｎがコンテンツを取得する。ここでは、未だコンテンツを取得していない６台のノードＮ４〜Ｎ９のうち６台のノードＮｎがコンテンツを取得するので、当選確率は１となる。従って、ノードＮ４〜Ｎ９全てがコンテンツの取得を開始する。ノードＮ４〜Ｎ９が、コンテンツの所在をルートノードに問い合わせると、ノードＮ１〜３がコンテンツ保持ノードであることを特定することができる。そこで、ノードＮ４〜Ｎ９は、夫々ノードＮ１〜３の何れかのノードＮｎからコンテンツをダウンロードする。このとき、ノードＮ４〜Ｎ９は、例えば、コンテンツ取得先のノードＮｎをノードＮ１〜３の中からランダムに選択する。そのため、ノードＮ１〜Ｎ３は、夫々平均して同時に２台のノードＮｎに対してコンテンツをアップロードすることになる。このようにしてコンテンツが配信されていく。
【００４７】
図２に示す例では、１台のノードＮｎが、同時に２台のノードＮｎに対してコンテンツをアップロードするようになっている。この台数（以下、「アップロード可能台数」という）は、例えばコンテンツをアップロードする側の回線速度の上り帯域幅によって予め設定されている。回線速度が速いほど、同時に多くのノードＮｎに対してアップロードすることが可能であるので、アップロード可能台数も多くなるようになっている。図２に示す例では、ノードＮ１〜Ｎ９は同一のグループ１に所属している。つまり、ノードＮ１〜Ｎ９の回線速度は、同一であるか又は所定の範囲内に収まっている。従って、ノードＮ１〜Ｎ９のアップロード可能台数は同一（２台）であり、この台数が、グループ１のアップロード可能台数となる。
【００４８】
また、ノードＮ１がコンテンツの取得を開始してからノードＮ２及びＮ３がコンテンツの取得を開始するまでの時間は、ノードＮ１がコンテンツをダウンロードに要する時間以上とする必要がある。同様に、ノードＮ２及びＮ３がコンテンツの取得を開始してからノードＮ４〜Ｎ７がコンテンツの取得を開始するまでの時間は、ノードＮ２及びＮ３がコンテンツをダウンロードに要する時間以上とする必要がある。具体的に、この時間（以下、「待機時間」という）は、コンテンツをアップロードする側の回線速度の上り帯域幅と、コンテンツをダウンロードする側の回線速度の下り帯域幅とによって予め設定される。図２に示す例では、ノードＮ１〜Ｎ９は同一のグループ１に所属しているので、各待機時間は同一となる。また、グループ１よりも回線速度が速いグループは存在しないので、待機時間は、グループ１の回線速度を考慮すれば良い。
【００４９】
更に、待機時間が経過する毎にコンテンツを取得するノードＮｎの台数（以下、「当選台数」という）は、既にコンテンツを取得しているノードＮｎの台数及びアップロード可能台数によって決定される。図２に示す例では、ノードＮ１がコンテンツを取得した後は、既にコンテンツを取得しているノードＮｎの台数は１台である。従って、次の当選台数は、１台×アップロード可能台数２＝２台となる。その次の当選台数は、３台×アップロード可能台数２＝６となる。そして、その次の当選台数は、９台×アップロード可能台数２＝１８となる。なお、最初にコンテンツを取得するノードＮｎの当選台数は、１台に限られるものではなく、複数台であっても良い。
【００５０】
このように、グループに所属する各ノードＮｎが、待機時間が経過する毎に到来する各タイミング（取得時期）の何れかに夫々コンテンツを取得するようになっている。
【００５１】
当選台数の決定において、複数のグループでコンテンツが既に取得されている場合には、その各グループのアップロード可能台数が考慮される。
【００５２】
図３は、複数のグループがコンテンツを既に取得している場合の当選台数と当選確率の計算方法を示す図である。
【００５３】
例えば、図３に示すように、グループ１には２０台、グループ２には６０台、グループ３には３００台のノードＮｎが所属しているとする。ここで、回線速度はグループ１、グループ２、グループ３の順に速くなっている。また、グループ１のアップロード可能台数は３台であり、グループ２のアップロード可能台数は１台であるとする。
【００５４】
グループ１では２０台全てのノードＮｎが既にコンテンツを取得している。また、グループ２でも３０台全てのノードＮｎが既にコンテンツを取得している。一方、グループ３においては、未だ１台もコンテンツを取得していない。
【００５５】
この状態で、グループ３に所属する３００台のノードＮｎが、夫々抽選処理において当選台数及び当選確率を計算する。グループ１では、２０台のノードＮｎが夫々アップロード可能台数である３台のノードＮｎに対してアップロードを行う。従って、２０×３＝６０台のノードＮｎに対してコンテンツがアップロードされる。グループ２では、６０台のノードＮｎが夫々アップロード可能台数である１台のノードＮｎに対してアップロードを行う。従って、６０×１＝６０台のノードＮｎに対してコンテンツがアップロードされる。そして、グループ１のアップロード台数とグループ２のアップロード台数の和は１２０台となる。これが、グループ３の当選台数となる。そして、グループ３の全ノードＮｎが未だコンテンツを取得していないので、当選確率は１２０／３００＝０．４となる。
【００５６】
図２を用いて説明したように、各ノードＮｎは、コンテンツ取得先のノードＮｎを、例えばランダムに選択する。そうすると、グループ１に所属する各ノードＮｎに対してもグループ２に所属する各ノードＮｎに対しても、夫々同じ台数のノードＮｎからコンテンツが要求されることとなる。そうすると、グループ１に所属するノードＮｎは、コンテンツのアップロードに余裕ができてしまうが、グループ２に所属するノードＮｎは、負荷が大きくなる。そこで、本実施形態においては、実際のコンテンツのアップロード台数が各グループのアップロード可能台数に調整されるようにしている。具体的に、コンテンツを取得するユーザノードは、ルートノードからコンテンツ保持ノードのインデックス情報を取得すると、当該インデックス情報に示されるノードＮｎの中から所定数の複数のノードＮｎを選択する。次いで、ユーザノードは、選択した複数のノードＮｎにアクセスし、夫々のノードＮｎからコンテンツの一部をダウンロードする。コンテンツの一部のダウンロードは、例えば、一定時間ダウンロードすることにより行われても良いし、一定バイト数ダウンロードすることにより行われても良い。コンテンツの一部をダウンロードしたユーザノードは、夫々の受信速度を算出する。そして、ユーザノードは受信速度が最速であるノードＮｎのみからコンテンツのダウンロードを継続し、それ以外のノードＮｎに対してはダウンロードを中断する。そうすると、アップロードする側のノードＮｎの回線速度に応じて、実際のアップロード台数が調整される。そして、最終的なアップロード台数は、各ノードＮｎが所属するグループのアップロード可能台数に収束する。
【００５７】
図４は、本実施形態に係るパラメータ情報に設定される内容の一例を示す図である。
【００５８】
各ノードＮｎは、抽選処理を行うため及び抽選処理を行うタイミングを求めるために、センターサーバＳＡからパラメータ情報（順序情報及び送信数情報の一例）を取得する。図３に示すように、パラメータ情報には、例えば、コンテンツを取得する順序番号毎に対応付けて、その順序のグループを示す識別情報、グループに所属するノードＮｎの台数（以下、「所属台数」という）、待機時間及びアップロード可能台数等が設定される。順序は１から始まり、Ｇが最後の順序を示している。以下、Ｉ番目のグループは、グループＩとして示す。また、このＩを、グループ番号ともいう。そして、グループ番号が小さいグループであるほど、回線速度が速くなるようになっている。
【００５９】
また、ＭＩは、グループＩの所属台数である。また、ＴＩは、グループＩの待機時間である。待機時間ＴＩは、グループＴ１〜ＴＩの回線速度の上り帯域幅及びグループＴＩの回線速度の下り帯域幅に基づいて設定される。待機時間ＴＩには、グループＩに所属するノードＮｎがコンテンツのダウンロードに要する時間以上の値が設定される。そして、待機時間ＴＩは、コンテンツの取得順序が早いほど短くなっている。また、ＵＩは、グループＩのアップロード可能台数である。アップロード可能台数ＵＩは、グループＩの回線速度の上り帯域幅に基づいて設定される。例えば、アップロード可能台数ＵＩには、回線に負荷がかからない範囲で台数が極力多くなるように設定される。そして、アップロード可能台数ＵＩは、コンテンツの取得順序が早いほど多くなっている。なお、取得順序が隣り合うグループ間で、アップロード可能台数が同値に設定される場合がある。
【００６０】
本実施形態においては、各ノードＮｎの回線速度における上り帯域幅と下り帯域幅の比率を調整することができる。回線速度（所属するグループ）にもよるが、各ノードＮｎは、コンテンツを複数台のノードＮｎに対して同時にアップロードする場合がある。その一方で、各ノードＮｎは、同時に１台のノードＮｎからのみしかコンテンツをダウンロードしない。そこで、例えば、各ノードＮｎの上り帯域幅を下り帯域幅よりも広く設定することで、回線を効率よく使用することができる。
【００６１】
また、パラメータ情報には、当該パラメータを取得したノードＮｎが所属するグループ（自グループ）のグループ番号としてＫが示されている。よって、グループＫの所属台数、待機時間及びアップロード台数は、Ｍｋ、Ｔｋ及びＵｋとなる。なお、実際には、所属するグループ番号Ｋが示される代わりに、各グループにどのノードＮｎが所属しているかが、ノードＩＤで示されている。
【００６２】
次に、どのようにして各グループに対してコンテンツが配信されているかを説明する。ここで、グループ１の所属台数、待機時間及びアップロード可能台数は、例えば、図４に示すように、２０台、６０秒及び３台とする。また、グループ２の所属台数、待機時間及びアップロード可能台数は、３０台、１８０秒及び１台とする。
【００６３】
図５は、各グループのコンテンツの取得時期の一例を時系列で示す図である。
【００６４】
コンテンツ配信開始時に、先ずグループ１に所属する１台のノードＮｎがコンテンツの取得を開始する。そして、コンテンツ配信開始からグループ１の待機時間である６０秒経過後、グループ１に所属するノードＮｎのうちコンテンツ取得済の台数１×アップロード可能台数３＝３台のノードＮｎがコンテンツを取得する。コンテンツ配信開始から１２０秒経過後、配信が完了しているノードＮｎの台数は４台である。従って次は、グループ１に所属するノードＮｎのうち１２台のノードＮｎがコンテンツを取得する。コンテンツ配信開始から１８０秒経過後、配信が完了しているノードＮｎの台数は１６台である。従って次の当選台数は４８台である。しかし、グループ１に所属するノードＮｎのうち、この時点でコンテンツを取得していないノードＮｎは４台である。従って、４台のノードＮｎがコンテンツを取得する。
【００６５】
ここで、ｔＩは、コンテンツ配信開始からＩ番目のグループの全ノードＮｎに対してコンテンツ配信が完了するまでに要する時間である。コンテンツ配信開始から２４０秒経過後、グループ１の全ノードＮｎに対してコンテンツ配信が完了する。グループ１のコンテンツ取得期間は、コンテンツ配信開始から２４０秒までの間である。そして、ｔ１＝２４０である。の時点で、グループ２に所属するノードＮｎがコンテンツの取得を開始する。ここでは、当選台数は６０台である。従って、グループ２に所属する３０台のノードＮｎ全てがコンテンツを取得する。そして、グループ２の待機時間である１８０秒が経過し、コンテンツ配信開始からｔ２＝４２０秒が経過すると、グループ１の所属台数Ｍ１＋グループ２の所属台数Ｍ２＝５０台に対してコンテンツ配信が完了する。グループ２のコンテンツ取得期間は、コンテンツ配信開始から２４０秒経過してから、４２０秒までの間である。
【００６６】
このようにして、或るグループに所属するノードＮｎ全てがコンテンツを取得し終わった後、その次の順番のグループに所属するノードＮｎがコンテンツの取得を開始する。例えば、グループＫ−１に所属する全てのノードＮｎがコンテンツを取得し終わった後、グループＫに所属するノードＮｎがコンテンツの取得を開始する。コンテンツ配信開始からｔｋ秒経過後は、Ｍ１＋Ｍ２＋・・・ＭＫ台のノードＮｎに対してコンテンツ配信が完了する。そして、コンテンツ配信開始からｔＧ秒経過後、Ｍ１＋Ｍ２＋・・・ＭＧ台、つまり、全てのノードＮｎに対してコンテンツ配信が完了する。
【００６７】
このように、回線速度が速いグループからコンテンツの取得が開始される。各グループにおいては、そのコンテンツ取得期間中、所属する各ノードＮｎが、夫々待機時間が経過する毎に到来する各タイミング（取得時期）の何れかのタイミングでコンテンツを取得する。また、取得順序が前のグループに所属する全ノードＮｎがコンテンツを取得し終わった後に、次のグループに所属するノードＮｎがコンテンツの取得を開始する。
【００６８】
次に、このようにしてグループ分けしてコンテンツを配信する場合と、グループ分けしないでコンテンツを配信しない場合の配信完了までに要する時間の違いについて説明する。
【００６９】
第１の例として、回線速度に応じて待機時間を変えた場合について説明する。この例において、グループは、グループ１とグループ２が存在するものとする。回線速度はグループ１の方がグループ２よりも速くなっている。そして、グループ１の所属台数Ｍ１、待機時間Ｔ１及びアップロード可能台数Ｕ１は、２５６台、６０秒、１台とする。また、グループ２の所属台数Ｍ２、待機時間Ｔ２及びアップロード可能台数Ｕ２は、２５６台、１８０秒、１台とする。理解を容易にするため、両グループの所属台数及びアップロード可能台数を同値にしている。
【００７０】
この場合、コンテンツ配信開始時にグループ１に所属する１台のノードＮｎがコンテンツを取得する。そして、６０秒経過後に配信が完了したノードＮｎの台数は１台となる。その後、６０秒ごとに、配信が完了するノードＮｎの台数は、２、４、８、１６、３２、６４、１２４、２５６台と増加する。このようにして、コンテンツ配信開始から９×Ｔ１＝５４０秒経過後にグループ１に所属する全ノードＮｎに対して配信が完了する。次に、グループ２に所属する２５６台全てのノードＮｎがコンテンツを取得する。そうすると、コンテンツ配信開始から５４０秒＋１×Ｔ２＝７２０秒後に全ノードＮｎに対して配信が完了する。
【００７１】
一方、グループ分けをしない場合、グループ１に所属するはずのノードＮｎとグループ２に所属するはずのノードＮｎが混在することになる。従って、待機時間は回線速度が最も遅いグループ２の１８０秒に合わせる必要がある。また、アップロード可能台数は、例えば平均値を取ることとする。この例の場合は、（Ｕ１×Ｍ１＋Ｕ２×Ｍ２）／（Ｍ１＋Ｍ２）＝１となる。
【００７２】
そうすると、コンテンツ配信開始時に１台のノードＮｎがコンテンツを取得する。そして、１８０秒経過後に配信が完了したノードＮｎの台数は１台となる。その後、１８０秒ごとに、配信が完了するノードＮｎの台数は、２、４、８、１６、３２、６４、１２４、２５６、５１２台と増加する。このようにして、コンテンツ配信開始から１０×１８０秒＝１８００秒経過後に全ノードＮｎに対して配信が完了する。
【００７３】
以上の結果から、グループ分けをして、回線速度が速いグループから順にコンテンツを取得すると、コンテンツ配信完了までに要する時間を短縮することができることが分かる。
【００７４】
第２の例として、回線速度に応じてアップロード可能台数を変えた場合について説明する。この例においても、グループは、グループ１とグループ２が存在するものとする。回線速度はグループ１の方がグループ２よりも速くなっている。そして、グループ１の所属台数Ｍ１、待機時間Ｔ１及びアップロード可能台数Ｕ１は、２５６台、６０秒、３台とする。また、グループ２の所属台数Ｍ２、待機時間Ｔ２及びアップロード可能台数Ｕ２は、２５６台、６０秒、１台とする。
【００７５】
回線速度が速いほど、アップロード可能台数を多くすることができるので、グループ１の方がグループ２よりもアップロード可能台数が多くなっている。また、待機時間が同じであれば、アップロード可能台数が多いほど、多くのノードＮｎに対して早くコンテンツを送信することができる。従って、回線速度が速いほど、コンテンツの配信完了に要する時間を短くすることができる。
【００７６】
この場合、コンテンツ配信開始時にグループ１に所属する１台のノードＮｎがコンテンツを取得する。そして、６０秒経過後に配信が完了したノードＮｎの台数は１台となる。その後、６０秒ごとに、配信が完了するノードＮｎの台数は、４、１６、６４、２５６台と増加する。このようにして、コンテンツ配信開始から５×Ｔ１＝３００秒経過後にグループ１に所属する全ノードＮｎに対して配信が完了する。次に、グループ２に所属する２５６台全てのノードＮｎがコンテンツを取得する。そうすると、コンテンツ配信開始から３００秒＋１×Ｔ２＝３６０秒後に全ノードＮｎに対して配信が完了する。
【００７７】
一方、グループ分けをしない場合、待機時間はこれまでと同じ６０秒である。また、アップロード可能台数は、（Ｕ１×Ｍ１＋Ｕ２×Ｍ２）／（Ｍ１＋Ｍ２）＝２となる。
【００７８】
そうすると、コンテンツ配信開始時に１台のノードＮｎがコンテンツを取得する。そして、６０経過後に配信が完了したノードＮｎの台数は１台となる。その後、６０秒ごとに、配信が完了するノードＮｎの台数は、３、９、２７、８１、２４３、２５６台と増加する。このようにして、コンテンツ配信開始から７×６０秒＝４２０秒経過後に全ノードＮｎに対して配信が完了する。
【００７９】
以上の結果からも、グループ分けをして、回線速度が速いグループから順にコンテンツを取得すると、コンテンツ配信完了までに要する時間を短縮することができることが分かる。
【００８０】
上記第１及び第２の例は、待機時間又はアップロード可能台数のうち何れか一方のみをグループ毎に変えた場合である。待機時間及びアップロード可能台数の両方を変えるようにすれば、更に効果的である。
【００８１】
なお、これまでの説明においては、コンテンツを丸ごと一度に配信する場合を述べたが、コンテンツを分割して順次配信する場合についても同様に行うことができる。例えば、コンテンツを複数のデータ（以下、「断片データ」という）に分割して、これらの断片データをセンターサーバＳＡに記憶させておく。各断片データは、通常のコンテンツと同様に、夫々コンテンツＩＤが割り当てられている。よって、各ノードＮｎは、各断片データを、通常のコンテンツと同様にして取得することができる。図２を例にして説明すると、コンテンツ配信開始時には、ノードＮ１が、センターサーバＳＡからコンテンツを構成する複数の断片データのうち１番目の断片データをダウンロードする。待機時間が経過した後、ノードＮ１は、センターサーバＳＡから２番目の断片データをダウンロードする。これと同時に、ノードＮ２及びＮ３は、夫々ノードＮ１から１番目の断片データをダウンロードする。待機時間が経過した後、ノードＮ１は、センターサーバＳＡから３番目の断片データをダウンロードする。これと同時に、ノードＮ２及びＮ３は、夫々ノードＮ１から２番目の断片データをダウンロードする。さらに同時に、ノードＮ４〜Ｎ９は、夫々、ノードＮ１〜Ｎ３の何れかから１番目の断片データをダウンロードする。このようにして、断片データが次々に配信されていく。このときの待機時間は、断片データのダウンロードに要する時間以上とされる。
【００８２】
［３．センターサーバＳＡの構成等］
次に、図６を参照して、センターサーバＳＡの構成及び機能について説明する。
【００８３】
図６は、センターサーバＳＡの概要構成例を示す図である。
【００８４】
センターサーバＳＡは、図６に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成された制御部１１と、各種データ及び各種プログラム等を記憶保存（格納）するためのＨＤ等から構成された記憶部１２と、ネットワーク８等を通じてノードＮｎとの間の情報の通信制御を行うための通信部１３と、を備えて構成され、制御部１１、記憶部１２、及び通信部１３はバス１４を介して相互に接続されている。
【００８５】
記憶部１２には、各ノードＮｎのノードＩＤ、ＩＰアドレス及びポート番号等が記憶されている。また、記憶部１２には、配信対象となるコンテンツが記憶されている。また、記憶部１２には、全ノードＮｎ分の回線速度情報が夫々ノードＩＤに対応付けて記憶されている。回線速度情報は、対応するノードＮｎの回線速度を示す情報である。更に、記憶部１２には、コンテンツを配信するためのパラメータ情報が記憶されている。
【００８６】
制御部１１は、ＣＰＵが記憶部１２等に記憶されたプログラムを読み出して実行することにより、センターサーバＳＡ全体を統括制御する。
【００８７】
例えば、制御部１１は、各ノードＮｎの回線速度を回線速度情報として各ノードＮｎから取得する。そして、制御部１１は、パラメータ情報を作成する。具体的に、制御部１１は、取得した回線速度情報に基づいて、ノードＮｎのグループ分けを行う。このグループ分けは、例えば、各グループの回線速度の範囲が予め定められており、制御部１１が、どのノードＮｎがどの回線速度の範囲に入るかを判断することによって行われても良い。また、例えば、制御部１１が、各ノードＮｎの回線速度の分布に応じて、その都度グループ毎の回線速度の範囲をフレキシブルに決定しても良い。また、グループ数もフレキシブルに決定しても良い。各グループの待機時間及びダウンロード可能台数は、例えば、予め設定されていても良い。また、例えば、制御部１１が、各グループの所属台数、回線速度等に応じて、各グループの待機時間及びダウンロード可能台数をフレキシブルに決定しても良い。制御部１１は、各グループの所属台数、待機時間及びアップロード可能台数を決定すると、これらの情報に基づいて、パラメータ情報を作成する。
【００８８】
パラメータ情報を作成した制御部１１は、このパラメータ情報を全ノードＮｎに配信する。このパラメータ情報の配信は、例えば、特開２００７−０５３６６２号公報にて開示されたＤＨＴマルチキャスト（マルチキャストメッセージ転送処理）によりコンテンツ分散保存システムＳに参加している全てのノードＮｎに対して行っても良い。
【００８９】
また、制御部１１は、外部からセンターサーバＳＡにコンテンツが投入されると、コンテンツ分散保存システムＳに参加している全てのノードＮｎに対して配信開始指令を送信する。これにより、コンテンツの配信が開始されることとなる。なお、例えば、コンテンツを予め記憶部１２に記憶させておいて、制御部１１が、コンテンツの配信を開始すべき日時が到来したときに、配信開始指令を送信するようにしても良い。
【００９０】
なお、上記プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしても良い。また、上記プログラムは、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【００９１】
［４．ノードＮｎの構成及び機能等］
次に、図７を参照して、ノードＮｎの構成及び機能について説明する。
【００９２】
図７は、ノードＮｎの概要構成例を示す図である。
【００９３】
各ノードＮｎは、図７に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部２１と、各種データ及び各種プログラム等を記憶保存（格納）するためのＨＤ（ハードディスク）等から構成された記憶部２２と、受信されたコンテンツのレプリカ等を一時蓄積するバッファメモリ２３と、コンテンツのレプリカに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部２４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部２５と、当該映像処理部２５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部２６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ （Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部２７と、当該音声処理部２７から出力されたオーディオ信号を音波として出力するスピーカ２８と、ネットワーク８を通じて他のノードＮｎ等間の情報の通信制御を行うための通信部２９と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部２１に対して与える入力部（例えば、キーボード、マウス、或いは、リモコンや操作パネル等）３０と、を備えて構成され、制御部２１、記憶部２２、バッファメモリ２３、デコーダ部２４、通信部２９、及び入力部３０はバス３１を介して相互に接続されている。なお、ノードＮｎとしては、専用のサーバ装置のほか、パーソナルコンピュータ、ＳＴＢ（Set Top Box）等を適用可能である。
【００９４】
記憶部２２には、ＤＨＴを用いたルーティングテーブル、インデックス情報、及びコンテンツカタログ情報、並びに、コンテンツ分散保存システムＳに参加する際のアクセス先となるコンタクトノードのＩＰアドレス及びポート番号、及びセンターサーバＳＡのＩＰアドレス及びポート番号等が記憶されている。
【００９５】
また、記憶部２２には、センターサーバＳＡから取得されたパラメータ情報が記憶される。
【００９６】
制御部２１は、ＣＰＵが記憶部２２等に記憶されたプログラム（本発明のコンテンツ取得処理プログラムを含む）を読み出して実行することにより、本発明におけるグループ情報取得手段、取得時期決定手段及びコンテンツ取得手段として機能する。
【００９７】
グループ情報取得手段としての制御部２１は、センターサーバＳＡから配信されたパラメータ情報を受信する。
【００９８】
また、制御部２１は、取得時期決定手段として、センターサーバＳＡから送信された配信開始指令を受信すると、予め受信しているパラメータ情報に基づいて、自ノードのコンテンツの取得時期を決定する。具体的に、制御部２１は、待機時間が経過する毎に、自ノードが所属する自グループの抽選処理を行う時期か否かを判定する。この待機時間は、その時点で抽選処理を行うグループの待機時間とされる。どのグループの待機時間が用いられるかは、パラメータ情報に基づいて決定される。そして、制御部２１は、自グループの抽選処理を行う時期であると判定すると、抽選処理を実行する。この抽選処理において、制御部２１は、コンテンツの取得に当選した場合には、コンテンツ取得処理を実行する。一方、制御部２１は、コンテンツの取得に当選しなかった場合には、自グループの待機時間が経過した後、再度抽選処理を実行する。なお、詳細な処理内容については後述する。
【００９９】
コンテンツの取得に当選した制御部２１は、コンテンツ取得手段として、コンテンツ保持ノード（コンテンツを配信可能なノードＮｎ）からコンテンツを取得する。ここで、制御部２１は、コンテンツ保持ノードを検索する。具体的に、制御部２１は、コンテンツ所在問い合わせメッセージをルートノードに向けて送信する。そして、制御部２１は、ルートノードから送信されてきたインデックス情報を受信する。これによりコンテンツ保持ノードが検索される。
【０１００】
そして、制御部２１は、検索されたコンテンツ保持ノードからコンテンツをダウンロードする。ここで、制御部２１は、上述したように、最初は複数のコンテンツ保持ノードからコンテンツの一部をダウンロードする。そして、制御部２１は、これらのコンテンツ保持ノードのうち受信速度が最速であるコンテンツ保持ノードからコンテンツのダウンロードを継続する。
【０１０１】
なお、上記コンテンツ取得処理プログラムは、例えば、ネットワーク８上の所定のサーバからダウンロードされるようにしても良いし、例えば、ＣＤ−ＲＯＭ等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
【０１０２】
［５．コンテンツ分散保存システムＳの動作］
次に、図８乃至図１１を参照して、本実施形態に係るコンテンツ分散保存システムＳの動作について説明する。
【０１０３】
図８は、本実施形態に係るコンテンツ分散保存システムＳの回線速度計測時における処理例を示すフローチャートである。
【０１０４】
図８に示すノードＮｎの処理は、例えば、定期的に実行される。先ず、ステップＳ１において、ノードＮｎの制御部２１は、自ノードの回線速度を計測する（ステップＳ１）。例えば、制御部２１は、所定の回線速度計測用のサーバに、計測用のデータを所定量送信する。回線速度計測用のサーバは、このときの受信時間を計測し、これを受信時間情報として要求元のノードＮｎに送信する。受信時間情報を受信した制御部２１は、データ送信量と受信時間に基づいて回線速度の上り帯域幅を算出する。また、回線速度計測用のサーバは、要求元のノードＮｎに対して、計測用のデータを所定量送信する。計測用のデータを受信した制御部２１は、このときの受信速度を算出し、回線速度の下り帯域幅とする。
【０１０５】
次いで、ステップＳ２において、制御部２１は、回線速度情報及び自ノードのノードＩＤをセンターサーバＳＡに送信する（ステップＳ２）。ここで、制御部２１は、算出した回線速度の上り帯域幅と下り帯域幅を統合して回線速度情報とする。
【０１０６】
回線速度情報及びノードＩＤを受信したセンターサーバＳＡの制御部１１は、ステップＳ１１において、これらの情報を対応付けて記憶部１２に記憶させる（ステップＳ１１）。このようにして、各ノードＮｎの回線速度情報がセンターサーバＳＡにより収集される。
【０１０７】
図９は、本実施形態に係るコンテンツ分散保存システムＳのパラメータ情報作成時における処理例を示すフローチャートである。
【０１０８】
図９に示すセンターサーバＳＡの処理は、例えば、定期的に実行される。先ず、ステップＳ２１において、制御部１１は、各ノードＮｎの回線速度情報に基づいて、パラメータ情報を作成する（ステップＳ２１）。具体的に、制御部１１は、回線速度情報が示す各ノードＮｎの回線速度に基づいてグループ分けを行う。次いで、制御部１１は、各グループの所属台数を求める。更に、制御部１１は、各グループの待機時間及びダウンロード可能台数を決定する。そして、制御部１１は、これらの情報からパラメータ情報作成し、これを記憶部１２に記憶させる。
【０１０９】
次いで、ステップＳ２２において、制御部１１は、作成したパラメータ情報を各ノードＮｎに送信する（ステップＳ２２）。
【０１１０】
パラメータ情報を受信したノードＮｎの制御部２１は、ステップＳ３１において、このパラメータ情報を記憶部２２に記憶させる（ステップＳ３１）。このとき、制御部２１は、古いパラメータ情報が記憶部２２に記憶されていた場合には、受信した新しいパラメータ情報を上書きする。
【０１１１】
図１０は、本実施形態に係るコンテンツ分散保存システムＳのコンテンツ配信時における処理例を示すフローチャートである。
【０１１２】
図１０に示すセンターサーバＳＡの処理は、例えば、配信対象となるコンテンツがセンターサーバＳＡに投入されたときに実行される。先ず、ステップＳ４１において、制御部１１は、各ノードＮｎに配信開始指令を送信する（ステップＳ４１）。
【０１１３】
配信開始指令を受信したノードＮｎの制御部２１は、ステップＳ５１において、タイマーをスタートさせる（ステップＳ５１）。具体的に、制御部２１は、タイマーｔに０を設定する。このタイマーｔは、１秒ごとに１加算されるタイマー変数である。また、このタイマー変数の値は、コンテンツ配信開始時からの経過時間を示す。
【０１１４】
次いで、ステップＳ５２において、制御部２１は、定数設定及び初期値設定を行う（ステップＳ５２）。具体的に、制御部２１は、記憶部２２に記憶されているパラメータ情報から、定数である自ノードの所属するグループ番号Ｋ、各グループの所属台数Ｍ１〜ＭＧ、待機時間Ｔ１〜ＴＧ、アップロード可能台数Ｕ１〜ＵＧを設定する。また、制御部２１は、変数の初期値として、グループ番号Ｉ、施行回数ｉ、コンテンツ配信完了時期ｔ０及び当選済台数Ｈ１〜ＨＧを設定する。グループ番号Ｉは現時点でどのグループが抽選処理を行うかを示す変数である。コンテンツ配信開始時であるので、グループ番号Ｉの初期値は１となる。施行回数ｉは、現時点で抽選処理を行っているグループの抽選処理の回数を示す変数である。グループ１の１回目の抽選処理が行われるので、施行回数ｉの初期値は０である。コンテンツ配信完了時期ｔＩは、グループＩに所属する全ノードＮｎがコンテンツを取得し終わった時期を、コンテンツ配信開始時からの経過時間で示す変数である。ここでは、現時点で抽選処理を行っているグループが抽選処理を開始させる時期を示す情報として、前の順番のグループのコンテンツ配信完了時期が使用される。グループ１が抽選処理を開始するので、初期値としてＴｉ−１＝Ｔ０＝０が設定される。当選済台数Ｈ１〜ＨＧは、抽選処理においてコンテンツの取得に当選したノードＮｎの個数をグループ毎に示す変数である。コンテンツ配信開始時は、何れのノードＮｎも当選していないので、当選済台数Ｈ１〜ＨＧの初期値は全て０である。
【０１１５】
次いで、ステップＳ５３において、制御部２１は、タイマーｔがｔＩ−１＋ＴＩ×ｉと等しいか否かを判定する（ステップＳ５３）。つまり、制御部２１は、グループＩが抽選処理を実行すべきタイミングになったか否かを判定する。このとき、制御部２１は、タイマーｔがｔＩ−１＋ＴＩ×ｉと等しくはない場合、すなわち、グループＩが抽選処理を実行すべきタイミングではない場合には（ステップＳ５３：ＮＯ）、ステップＳ５３に移行して同じ判定を繰り返す。
【０１１６】
一方、ステップＳ５３において、制御部２１は、タイマーｔがｔＩ−１＋ＴＩ×ｉと等しい場合、すなわち、グループＩが抽選処理を実行すべきタイミングである場合には（ステップＳ５３：ＹＥＳ）、ｉ＝ｉ＋１を計算する（ステップＳ５４）。次いで、ステップＳ５５において、制御部２１は、グループ番号Ｉが１であり且つ施行回数ｉが１であるか否かを判定する（ステップＳ５５）。つまり、制御部２１は、最初のグループの最初の抽選処理（コンテンツ配信開始時）であるか否かを判定する。このとき、制御部２１は、グループ番号Ｉが１であり且つ施行回数ｉが１である場合には（ステップＳ５５：ＹＥＳ）、当選台数ｈに１を設定する（ステップＳ５６）。当選台数ｈは、今回の抽選処理において、コンテンツの取得に当選する台数を示す変数である。コンテンツ配信開始時であるので、当選台数ｈとしては定数が設定される。
【０１１７】
一方、ステップＳ５５において、制御部２１は、グループ番号Ｉが１ではないか、又は施行回数ｉが１ではない場合には（ステップＳ５５：ＮＯ）、当選台数ｈを算出する（ステップＳ５７）。コンテンツ配信開始時ではない場合、既にコンテンツの取得に当選することによってコンテンツを取得したノードＮｎが、所属するグループのアップロード可能台数分のノードＮｎに対してコンテンツを送信する。そしてコンテンツを送信される方のノードＮｎの台数の総和が当選台数ｈとなる。従って、当選台数ｈは、各グループについて、アップロード可能台数に対して既に当選しているノードＮｎの台数を掛けて得られた値を、グループ１からグループＩまで合計して得られる。つまり、
ｈ＝Ｕ１×Ｈ１＋Ｕ２×Ｈ２＋・・・＋ＵＩ−１×ＨＩ−１＋ＵＩ×ＨＩ  ・・・式１
となる。ただし、グループ１からグループＩ−１までのグループについては、全ノードＮｎが既に当選している。従って、ｈは、以下の式２で得られる。
ｈ＝Ｕ１×Ｍ１＋Ｕ２×Ｍ２＋・・・＋ＵＩ−１×ＭＩ−１＋ＵＩ×ＨＩ  ・・・式２
となる。
【０１１８】
制御部２１は、ステップＳ５６又はＳ５７の処理を終えると、ステップＳ５８において、グループ番号Ｉが自グループのグループ番号Ｋと等しいか否かを判定する（ステップＳ５８）。つまり、制御部２１は、自グループが抽選処理を実行するタイミングであるか否かを判定する。このとき、制御部２１は、グループ番号Ｉが自グループのグループ番号Ｋと等しくはない場合、すなわち、自グループが抽選処理を実行するタイミングではない場合には（ステップＳ５８：ＮＯ）、ＨＩ＝ＨＩ＋ｈを計算する（ステップＳ５９）。つまり、制御部２１は、今回当選した台数分だけグループＩの当選済台数を増加させるのである。
【０１１９】
次いで、ステップＳ６０において、制御部２１は、当選済台数ＨＩが所属台数ＮＩ以上であるか否かを判定する（ステップＳ６０）。つまり、制御部２１は、グループＩに所属する全ノードＮｎがコンテンツの取得に当選したか否かを判定する。このとき、制御部２１は、当選済台数ＨＩが所属台数ＮＩ未満である場合、すなわち、グループＩに所属するノードＮｎのうちコンテンツの取得に当選していないノードＮｎが存在する場合には（ステップＳ６０：ＮＯ）、ステップＳ５３に移行する。つまり、制御部２１は、グループＩの抽選処理が終わっていないので、待機時間ＴＩだけ待機するのである。
【０１２０】
一方、ステップＳ６０において、制御部２１は、当選済台数ＨＩが所属台数ＮＩ以上である場合、すなわち、グループＩに所属する全ノードＮｎがコンテンツの取得に当選した場合には（ステップＳ６０：ＹＥＳ）、ｔＩ＝ｔＩ−１＋ＴＩ×ｉを計算する（ステップＳ６１）。つまり、制御部２１は、グループＩの抽選処理が全て終わったので、グループＩ＋１の抽選処理を開始させる時期を設定するのである。次いで、ステップＳ６２において、制御部２１は、Ｉ＝Ｉ＋１を計算し、ｉに０を設定する（ステップＳ６２）。つまり、制御部２１は、抽選処理を行う対象をグループＩ＋１とするのである。制御部２１は、この処理を終えると、ステップＳ５３に移行する。
【０１２１】
ステップＳ５７において、制御部２１は、グループ番号Ｉが自グループのグループ番号Ｋと等しい場合、すなわち、自グループが抽選処理を実行するタイミングである場合には（ステップＳ５７：ＹＥＳ）、ステップＳ６４〜Ｓ６６の抽選処理を実行する。先ず、制御部２１は、コンテンツの取得に当選する当選確率Ｐを算出する（ステップＳ６３）。当選台数Ｐは、未だコンテンツの取得に当選していない自グループのノードＮｎのうち今回当選するノードＮｎの割合となる。従って、当選台数Ｐは、以下の式３で得られる。
Ｐ＝ｈ／（ＮＫ−Ｈｋ）  ・・・式３
【０１２２】
次いで、ステップＳ６４において、制御部２１は、当選確率Ｐが１より大きいか否かを判定する（ステップＳ６４）。このとき、制御部１１は、当選確率Ｐが１以下である場合には（ステップＳ６４：ＮＯ）、０以上１未満の乱数を発生させ、この乱数を乱数値Ｒに設定する（ステップＳ６５）。次いで、ステップＳ６６において、制御部２１は、当選確率Ｐが乱数値Ｒよりも大きいか否かを判定する（ステップＳ６６）。つまり、制御部２１は、コンテンツの取得に当選したか否かを判定する。このとき、制御部２１は、当選確率Ｐが乱数値Ｒ以下である場合、すなわち、落選した場合には（ステップＳ６６：ＮＯ）、ステップＳ５９に移行する。つまり、制御部２１は、今回当選した台数分だけグループＫの当選済台数Ｈｋを増加させ、待機時間Ｔｋ分だけ待機した後、再度抽選処理を行うのである。
【０１２３】
一方、ステップＳ６６において、制御部２１は、当選確率Ｐが乱数値Ｒより大きい場合、すなわち、当選した場合には、後述するコンテンツ取得処理を実行する（ステップＳ６７）。また、制御部２１は、ステップＳ６４において、当選確率Ｐが１より大きい場合にも（ステップＳ６４：ＹＥＳ）、コンテンツ取得処理を実行する（ステップＳ６７）。当選台数ｈが未だコンテンツの取得に当選していないノードＮｎの台数を上回る場合がある。この場合は、当選確率Ｐが１を上回る。このときは、コンテンツの取得に１００％当選するので、制御部２１は、不必要な処理を省略するのである。
【０１２４】
図１１は、本実施形態に係るノードＮｎの制御部２１のコンテンツ取得処理における処理例を示すフローチャートである。
【０１２５】
図１１に示すように、ステップＳ７１において、制御部２１は、コンテンツ所在問い合わせメッセージをルートノードに向けて送信する（ステップＳ７１）。次いで、ステップＳ７２において、制御部２１は、ルートノードから送信されてきたインデックス情報を受信する（ステップＳ７２）。次いで、ステップＳ７３において、制御部２１は、受信したインデックス情報を参照して、コンテンツ保持ノードの台数を判定する（ステップＳ７３）。このとき、制御部２１は、コンテンツ保持ノードの台数が０である場合には（ステップＳ７３：０台）、センターサーバＳＡからコンテンツをダウンロードする（ステップＳ７４）。
【０１２６】
また、ステップＳ７３において、制御部２１は、コンテンツ保持ノードの台数が１である場合には（ステップＳ７３：１台）、この１台のコンテンツ保持ノードからコンテンツの全部をダウンロードする（ステップＳ７５）。
【０１２７】
また、ステップＳ７３において、制御部２１は、コンテンツ保持ノードの台数が２以上である場合には（ステップＳ７３：２台以上）、所定数のコンテンツ保持ノードからコンテンツの一部をダウンロードする（ステップＳ７６）。このとき、制御部２１は、コンテンツ保持ノードの台数が所定数に満たない場合には、例えば、全コンテンツ保持ノードからダウンロードする。次いで、ステップＳ７７において、制御部２１は、コンテンツの一部のダウンロードによる夫々の受信速度を算出する（ステップＳ７７）。次いで、ステップＳ７８において、制御部２１は、受信速度が最速であったコンテンツ保持ノードからのダウンロードを継続し、コンテンツの全部をダウンロードする（ステップＳ７８）。一方、制御部２１は、それ以外のコンテンツ保持ノードからのダウンロードを中断する。
【０１２８】
制御部２１は、コンテンツのダウンロードを完了すると（ステップＳ７４、Ｓ７５又はＳ７８の処理を終えたとき）、パブリッシュメッセージをルートノードに向けて送信する（ステップＳ７９）。これにより、自ノードがコンテンツ保持ノードとして登録される。制御部２１は、この処理を終えると、コンテンツ取得処理を終了させる。また、制御部２１は、コンテンツ取得処理を終了させると、図１０に示す処理を終了させる。
【０１２９】
以上説明したように、本実施形態によれば、ノードＮｎの制御部２１が、回線速度が速いほどコンテンツの取得順序が早くなるように設定されたパラメータ情報を受信する。また、制御部２１が、受信したパラメータ情報に基づいて、自グループが抽選処理を行うタイミングであるか否かを判定する。このとき、制御部２１が、自グループが抽選処理を行うタイミングである場合には、自グループの待機時間間隔で抽選処理を行う。そして、制御部２１が、抽選処理で当選した場合には、コンテンツ保持ノードからコンテンツを取得する。制御部２１は、このようにして、コンテンツの取得時期を決定する。そして、これにより、各グループに所属する各ノードＮｎがその待機時間間隔で到来する取得時期の何れかの取得時期にコンテンツを取得することのより各グループによりコンテンツが取得される。そして、各グループによるコンテンツの取得（抽選処理）が、パラメータ情報により示される取得順序が早いグループから順に開始される。
【０１３０】
従って、他のノードＮｎにコンテンツを送信可能となるノードＮｎが早く増加する。よって、コンテンツの配信に要する時間を短縮させることができる。
【０１３１】
また、制御部２１が、パブリッシュメッセージをルートノードに向けて送信することによりインデックス情報を取得する。このようにして、制御部２１は、コンテンツ保持ノードを検索する。そして、制御部２１が、検索されたコンテンツ保持ノードからコンテンツを取得する。
【０１３２】
従って、各ノードＮｎは、コンテンツ配信開始から早い段階で増加したコンテンツ保持ノードの中からコンテンツを取得することができる。よって、コンテンツの配信に要する時間を短縮させることができる。
【０１３３】
また、制御部２１が受信するパラメータ情報には、回線速度が速いグループほど多い値のアップロード可能台数がグループ毎に設定されている。そして、制御部２１が、式２を計算することにより、コンテンツの取得に当選するノードｈの台数を算出する。つまり、コンテンツ保持ノードが所属しているグループのアップロード可能台数が多いほど、当選するノードＮｎの台数が多くなる。
【０１３４】
従って、コンテンツ保持ノード、すなわち、コンテンツを配信可能となったノードＮｎの台数の増加率を高めることができる。
【０１３５】
また、制御部２１が、パラメータ情報に従って取得順序が最初のグループから最後のグループまで順次前のグループに所属する全てのノードＮｎがコンテンツの取得に当選した後、次のグループに所属するノードＮｎにより抽選処理が行われるように、各グループの抽選処理のタイミングを特定する。そして、制御部２１が、このタイミングで抽選処理を行うことにより、自ノードのコンテンツの取得時期が決定される。
【０１３６】
従って、各グループの待機時間としては、そのグループの回線速度を考慮すれば良い。よって、各グループの待機時間を調節することにより、コンテンツの配信に要する時間を短縮させることができる。
【０１３７】
なお、上記実施形態においては、アップロード可能台数を、回線速度に応じてグループ毎に設定していたが、これを固定値としても良い。つまり、全グループのアップロード可能台数が同値であっても良い。この場合のアップロード可能台数は、予め各ノードＮｎが保持していれば良く（コンテンツ取得プログラムにハードコーディングされていても良い）、パラメータ情報に含めなくても良い。
【０１３８】
また、上記実施形態においては、前のグループに所属する全てのノードＮｎがコンテンツの取得に当選した後、次のグループに所属するノードＮｎにより抽選処理が行われるようにしていた。しかし、コンテンツの取得を開始する順序は、回線速度の速い順とする一方で、抽選処理を行う時期（コンテンツの取得時期）をグループ間で一部重複させても良い。この場合、コンテンツの取得時期が重複する期間については、グループ間でタイミングを合わせるため、期間が重複するグループの中で回線速度が最も遅いグループに待機時間を合わせる必要がある。
【０１３９】
また、上記実施形態においては、各ノードＮｎは、パラメータ情報に基づいて抽選処理を行うことにより、コンテンツの取得時期を決定していた。しかし、これとは別の方法を用いても良い。例えば、グループ毎に、どのノードＮｎがどの順番でコンテンツを取得するかを、例えば、センターサーバＳＡが予め決定する。そして、センターサーバＳＡが、グループのコンテンツの取得順序（回線速度が速いグループほど早い）、各グループ内における各ノードの取得タイミング、待機時間等を設定したパラメータ情報を作成し、これを全ノードＮｎに配信する。各ノードＮｎは、自グループのコンテンツの取得順序、自グループより取得順序が前のグループの待機時間、各グループ内で何回コンテンツの取得が行われるか、によって、自グループのコンテンツの取得開始時期を求めることができる。そして、各ノードＮｎは、自グループ内における自ノードの順番と自グループの待機時間から、自ノードのコンテンツの取得時期を求めることができる。
【０１４０】
また、グループ分けに用いられる回線速度としては、上り帯域幅の方を用いても良いし、下り帯域幅の方を用いても良い。また、上り帯域幅と下り帯域幅とを総合して用いても良い。
【０１４１】
また、上記実施形態においては、抽選処理において例えば式２に示したように、アップロード可能台数、既に当選しているノードＮｎの台数等に基づいて当選台数を決定し、当選確率を算出していたが、これに限られるものではない。例えば、グループ毎に各ノードＮｎが予め決められた当選確率でランダムにコンテンツを取得するようにしても良い。ただし、全てのノードＮｎがコンテンツを取得しないとコンテンツの配信が完了しない。従って、当選確率が最終的に１になるようにするか、ある時点になったらグループ内で当選していない残り全てのノードＮｎにコンテンツを取得させるようにするなどの方法が必要である。
【０１４２】
また、上記実施形態においては、ノードＮｎがコンテンツを取得する際、最初は複数のコンテンツ保持ノードからコンテンツの一部をダウンロードし、その後、受信速度が最速であるコンテンツ保持ノードからコンテンツの全部をダウンロードしていたが（図１１に示すステップＳ７６〜Ｓ７８）、これに限られるものではない。例えば、最初から１台のコンテンツ保持ノードを選択し、選択したコンテンツ保持ノードからコンテンツを全部ダウンロードしても良い。ただし、前者の方法でダウンロードすることにより、各コンテンツ保持ノードの実際のアップロード数がアップロード可能台数に近づいていく。従って、アップロードする側の負荷がその回線速度に応じて分散される。よって、前者の方法をとれば、より好ましい。
【０１４３】
また、上記実施形態においては、各グループに所属する各ノードＮｎが、待機時間毎に到来する各取得時期の何れかに夫々コンテンツを取得するようにしていたが、これに限られるものではない。例えば、所属する全ノードＮｎが同じ時期にコンテンツを取得するようにしても良い。この場合には、例えば、先ず、回線速度が最速であるグループ１に所属する全ノードＮｎがコンテンツを取得する。グループ１によるコンテンツの取得開始から、グループ１の待機時間が経過した後、次は、回線速度が２番目に速いグループ２に所属する全ノードＮｎがコンテンツを取得する。グループ２によるコンテンツの取得開始から、グループ２の待機時間が経過した後、次は、回線速度が３番目に速いグループ３に所属する全ノードＮｎがコンテンツを取得する。このようにして、次々にコンテンツが取得されるようにする。なお、一部のグループについては、全ノードＮｎが同じ時期にコンテンツを取得し、これとは別のグループについては、各ノードＮｎが待機時間毎に到来する各取得時期の何れかに夫々コンテンツを取得するようにしても良い。
【符号の説明】
【０１４４】
３  ＩＸ
４ａ、４ｂ  ＩＳＰ
５ａ、５ｂ  ＤＳＬ回線業者
６  ＦＴＴＨ回線業者
７  通信回線
８  ネットワーク
９  オーバーレイネットワーク
１１  制御部
１２  記憶部
１３  通信部
１４  バス
２１  制御部
２２  記憶部
２３  バッファメモリ
２４  デコーダ部
２５  映像処理部
２６  表示部
２７  音声処理部
２８  スピーカ
２９  通信部
３０  入力部
３１  バス
Ｎｎ  ノード
ＳＡ  センターサーバ
Ｓ  コンテンツ分散保存システム
【図１】
2010238162.tif 000003
【図２】
2010238162.tif 000004
【図３】
2010238162.tif 000005
【図４】
2010238162.tif 000006
【図５】
2010238162.tif 000007
【図６】
2010238162.tif 000008
【図７】
2010238162.tif 000009
【図８】
2010238162.tif 000010
【図９】
2010238162.tif 000011
【図１０】
2010238162.tif 000012
【図１１】
2010238162.tif 000013