(57)【要約】【課題】設備費が大幅に増大することを抑制しつつ、情報配信システムに投入する全てのコンテンツ情報を配信可能に保障することができる情報配信システム及び同システムにおけるコンテンツ情報の重複数調整方法を提供する。【解決手段】複数の端末装置と、前記端末装置からの要求に応じたコンテンツ情報を送信する複数の配信サーバとを備えた情報配信システムにおいて、各コンテンツ情報を保持する配信サーバの数を検出し、その検出結果に応じて、各コンテンツ情報を保持する配信サーバの数を調整する。【選択図】図２
2009187141.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンテンツ情報を保持し、端末装置からの要求に応じたコンテンツ情報を送信する情報配信システムにおいて、
前記コンテンツ情報を記憶するコンテンツ情報記憶手段と、前記端末装置からの要求に応じたコンテンツ情報を前記コンテンツ情報記憶手段から取り出して送信するコンテンツ情報送信手段と、を有する複数の配信サーバと、
各前記コンテンツ情報を保持する配信サーバの数を検出する検出手段と、前記検出手段による検出結果に応じて、各前記コンテンツ情報を保持する配信サーバの数を調整する調整手段とを有する調整サーバと、を備えた
ことを特徴とする情報配信システム。
【請求項２】
各前記配信サーバにはそれぞれ固有のサーバ識別情報が割り当てられ、各前記コンテンツ情報にはそれぞれ固有のコンテンツ識別情報が割り当てられており、
前記配信サーバは、
前記コンテンツ情報記憶手段に記憶したコンテンツ情報に割り当てられたコンテンツ識別情報に対応するサーバ識別情報を有する配信サーバへ自装置の所在情報を送信する所在情報送信手段と、
自装置のサーバ識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する配信サーバの所在情報を記憶するサーバ識別情報記憶手段と、を有し、
前記検出手段は、前記サーバ識別情報記憶手段に基づいて、各前記コンテンツ情報を保持する配信サーバの数を検出する
ことを特徴とする請求項１に記載の情報配信システム。
【請求項３】
複数の端末装置と、前記端末装置からの要求に応じたコンテンツ情報を送信する複数の配信サーバとを備えた情報配信システムにおいて、
各前記配信サーバにはそれぞれ固有のサーバ識別情報が割り当てられ、各前記コンテンツ情報にはそれぞれ固有のコンテンツ識別情報が割り当てられており、
前記配信サーバは、
前記コンテンツ情報を記憶するコンテンツ情報記憶手段と、
前記端末装置からの要求に応じたコンテンツ情報を前記コンテンツ情報記憶手段から取り出して送信するコンテンツ情報送信手段と、
前記コンテンツ情報記憶手段に記憶したコンテンツ情報に割り当てられたコンテンツ識別情報に対応するサーバ識別情報を有する配信サーバへ自装置のサーバ識別情報を送信するサーバ識別情報送信手段と、
自装置のサーバ識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する配信サーバのサーバ識別情報を記憶するサーバ識別情報記憶手段と、
前記サーバ識別情報記憶手段に記憶した情報に基づいて、自装置のサーバ識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する配信サーバの数を検出する検出手段と、
前記検出手段による検出結果に応じて、自装置のサーバ識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する配信サーバの数を調整する調整手段と、を有する
ことを特徴とする情報配信システム。
【請求項４】
前記調整手段は、前記検出手段によってコンテンツ情報を保持する配信サーバの数が減少したことが検出されると、当該コンテンツ情報を保持していない配信サーバに当該コンテンツ情報を保持させ、前記検出手段によってコンテンツ情報を保持する配信サーバの数が増加したことが検出されると、当該コンテンツ情報を保持している配信サーバから当該コンテンツ情報を削除させることを特徴とする請求項１〜３のいずれか１項に記載の情報配信システム。
【請求項５】
前記調整手段は、前記検出手段によってコンテンツ情報を保持する配信サーバの数が減少したことが検出されると、当該コンテンツ情報を保持していない配信サーバに当該コンテンツ情報の保持要求を送信し、前記検出手段によってコンテンツ情報を保持する配信サーバの数が増加したことが検出されると、当該コンテンツ情報を保持している配信サーバに当該コンテンツ情報の削除要求を送信し、
前記配信サーバは、
前記保持要求を受信すると、当該保持要求の対象となるコンテンツ情報を保持する配信サーバから当該コンテンツ情報を取得して前記コンテンツ情報記憶手段に記憶する取得手段と、
前記削除要求を受信すると、当該削除要求の対象となるコンテンツ情報を前記コンテンツ情報記憶手段から削除する削除手段と、を備えた
ことを特徴とする請求項４に記載の情報配信システム。
【請求項６】
前記端末装置は、
コンテンツ情報を他の端末装置から取得する取得手段と、
前記取得手段で取得したコンテンツ情報を再生する再生手段と、を有し、
前記取得手段は、コンテンツ情報を他の端末装置から取得できないとき、当該取得できないコンテンツ情報を保持する前記配信サーバから当該コンテンツ情報を取得する
ことを特徴とする請求項２又は請求項３に記載の情報配信システム。
【請求項７】
各前記端末装置及び各前記配信サーバにはそれぞれ固有の装置識別情報が割り当てられており、
前記端末装置は、
前記コンテンツ情報を記憶する記憶手段と、
前記端末装置からの取得要求に応じたコンテンツ情報を前記記憶手段から取り出して送信する送信手段と、
前記記憶手段に記憶したコンテンツ情報に割り当てられたコンテンツ識別情報に対応する装置識別情報を有する装置へ自装置の所在情報を送信する所在情報送信手段と、
自装置の装置識別情報に対応するコンテンツ識別情報を保持する装置の所在情報を記憶する所在情報記憶手段とを有し、
前記配信サーバは、
前記コンテンツ情報記憶手段に記憶したコンテンツ情報に割り当てられたコンテンツ識別情報に対応する装置識別情報を有する装置へ自装置の所在情報を送信する第２の所在情報送信手段と、
自装置の装置識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する装置の所在情報を記憶する装置情報記憶手段と、を有する
ことを特徴とする請求項６に記載の情報配信システム。
【請求項８】
複数の端末装置と、前記端末装置からの要求に応じたコンテンツ情報を送信する複数の配信サーバとを備えた情報配信システムにおけるコンテンツ情報の重複数調整方法において、
各前記コンテンツ情報を保持する配信サーバの数を検出するステップと、
前記検出結果に応じて、各前記コンテンツ情報を保持する配信サーバの数を調整するステップと、を有する
ことを特徴とする情報配信システムにおける重複数調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報配信システム及び同システムにおける重複数調整方法に関するものである。
【背景技術】
【０００２】
従来より、複数のユーザ端末装置をインターネット等の情報通信回線を介して接続して、ユーザ端末装置間で双方向での情報通信が可能なネットワークを構築すると共に、各ユーザ端末装置内のストレージ（記憶装置）に、それぞれ様々なコンテンツ情報を記憶させておくことにより、複数のユーザ端末装置のストレージ群からなる巨大なストレージを仮想的に構築した分散ストレージシステムが知られている（たとえば、特許文献１参照。）。
【０００３】
また、この分散ストレージシステムを利用して、仮想的に構築した巨大なストレージ（以下、「仮想ストレージ」という。）に記憶されている任意のコンテンツ情報を、ネットワークに参加しているユーザ端末装置へ配信可能とした情報配信システムも知られている。
【０００４】
この種の情報配信システムにおいて、当該システムに投入された全てのコンテンツ情報を配信可能に保障するためには、各コンテンツ情報が当該システムのネットワークに参加している少なくとも１台のユーザ端末装置内に記憶されている必要がある。
【０００５】
しかし、上記のように、この情報配信システムでは、仮想ストレージが複数のユーザ端末装置のストレージ群により構成されていたため、任意のユーザ端末装置が任意のタイミングで当該システムのネットワークから脱退した場合、脱退したユーザ端末装置にしか記憶されていないコンテンツ情報があると、当該システムに投入された全てのコンテンツ情報を完全に保障することができなくなるという問題があった。
【０００６】
そこで、ユーザ端末装置による分散ストレージとは別に、情報配信システムに投入した全てのコンテンツ情報を記憶して配信可能なサーバを設けた情報配信システムが考案されている（たとえば、特許文献２参照。）。
【０００７】
しかし、このように、１台のサーバで情報配信システムに投入する全てのコンテンツ情報を保障しようとすると、そのための設備費が大幅に増大するおそれがあった。
【０００８】
すなわち、膨大な量のコンテンツ情報を１台のサーバで保障するためには、大規模なストレージを備えた高性能且つ高価なサーバが必要となる上、このサーバのメンテナンスや障害の発生に対応するため、このサーバと同等の性能を有するバックアップ用のサーバも必要となり、情報配信システムを構築するための設備費が大幅に増大するという問題が生じる。
【０００９】
かかる問題を解消するために、全てのコンテンツ情報を１台のサーバに記憶させるのではなく、比較的安価な複数のサーバに分散させて記憶させておく分散サーバシステムを用いて情報配信システムを構築することも考えられる。
【００１０】
この分散サーバシステムを用いる場合には、仮に１台のサーバが故障しても、この情報配信システムに投入された全てのコンテンツ情報を保障できるように、複数（例えば、２）台のサーバに同一のコンテンツ情報を重複して記憶させておくことが望ましい。
【００１１】
情報配信システムをこのように構築することにより、当該システムに投入するコンテンツ情報が増大しても、比較的安価なサーバ装置を増設するだけで、コンテンツ情報の増大に対処できるため、設備に要するコストの大幅な増大を抑制することができる。
【特許文献１】特開２００６−１９７４００号公報
【特許文献２】特開２００６−２０９６６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところが、上記従来の分散サーバシステムを用いた情報配信システムでも、当該システムに投入した全てのコンテンツ情報を保障することが困難になるおそれがあった。
【００１３】
すなわち、上記従来の情報配信システムでは、分散サーバシステムを構成している一部のサーバの故障やメンテナンスなどによるコンテンツ情報の消失に対処することができなかったため、一部のサーバがコンテンツ情報を配信できなくなった場合に、コンテンツ情報の重複数に偏りが生じてしまい、特定のコンテンツ情報を記憶している全てのサーバ装置が一度に配信不可能な状態になる場合も想定される。
【００１４】
この場合、複数のサーバにより形成された仮想ストレージにおいて、その特定のコンテンツ情報が存在しなくなるので、当該特定のコンテンツ情報が配信不可能となり、全てのコンテンツ情報を配信可能に保障することができなくなる。
【００１５】
そこで、本発明は、設備費が大幅に増大することを抑制しつつ、情報配信システムに投入する全てのコンテンツ情報を配信可能に保障することができる情報配信システム及び同システムにおけるコンテンツ情報の重複数調整方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
請求項１に係る本発明では、複数のコンテンツ情報を保持し、端末装置からの要求に応じたコンテンツ情報を送信する情報配信システムにおいて、前記コンテンツ情報を記憶するコンテンツ情報記憶手段と、前記端末装置からの要求に応じたコンテンツ情報を前記コンテンツ情報記憶手段から取り出して送信するコンテンツ情報送信手段とを有する複数の配信サーバと、各前記コンテンツ情報を保持する配信サーバの数を検出する検出手段と、前記検出手段による検出結果に応じて、各前記コンテンツ情報を保持する配信サーバの数を調整する調整手段とを有する調整サーバとを備えたことを特徴とする。
【００１７】
また、請求項２に係る本発明では、請求項１に記載の情報配信システムにおいて、各前記配信サーバにはそれぞれ固有のサーバ識別情報が割り当てられ、各前記コンテンツ情報にはそれぞれ固有のコンテンツ識別情報が割り当てられており、前記配信サーバは、前記コンテンツ情報記憶手段に記憶したコンテンツ情報に割り当てられたコンテンツ識別情報に対応するサーバ識別情報を有する配信サーバへ自装置の所在情報を送信する所在情報送信手段と、自装置のサーバ識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する配信サーバの所在情報を記憶するサーバ識別情報記憶手段とを有し、前記検出手段は、前記サーバ識別情報記憶手段に基づいて、各前記コンテンツ情報を保持する配信サーバの数を検出することを特徴とする。
【００１８】
また、請求項３に係る本発明では、複数の端末装置と、前記端末装置からの要求に応じたコンテンツ情報を送信する複数の配信サーバとを備えた情報配信システムにおいて、各前記配信サーバにはそれぞれ固有のサーバ識別情報が割り当てられ、各前記コンテンツ情報にはそれぞれ固有のコンテンツ識別情報が割り当てられており、前記配信サーバは、前記コンテンツ情報を記憶するコンテンツ情報記憶手段と、前記端末装置からの要求に応じたコンテンツ情報を前記コンテンツ情報記憶手段から取り出して送信するコンテンツ情報送信手段と、前記コンテンツ情報記憶手段に記憶したコンテンツ情報に割り当てられたコンテンツ識別情報に対応するサーバ識別情報を有する配信サーバへ自装置のサーバ識別情報を送信するサーバ識別情報送信手段と、自装置のサーバ識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する配信サーバのサーバ識別情報を記憶するサーバ識別情報記憶手段と、前記サーバ識別情報記憶手段に記憶した情報に基づいて、自装置のサーバ識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する配信サーバの数を検出する検出手段と、前記検出手段による検出結果に応じて、自装置のサーバ識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する配信サーバの数を調整する調整手段とを有することを特徴とする。
【００１９】
また、請求項４に係る本発明では、請求項１〜３のいずれか１項に記載の情報配信システムにおいて、前記調整手段は、前記検出手段によってコンテンツ情報を保持する配信サーバの数が減少したことが検出されると、当該コンテンツ情報を保持していない配信サーバに当該コンテンツ情報を保持させ、前記検出手段によってコンテンツ情報を保持する配信サーバの数が増加したことが検出されると、当該コンテンツ情報を保持している配信サーバから当該コンテンツ情報を削除させることを特徴とする。
【００２０】
また、請求項５に係る本発明では、請求項４に記載の情報配信システムにおいて、前記調整手段は、前記検出手段によってコンテンツ情報を保持する配信サーバの数が減少したことが検出されると、当該コンテンツ情報を保持していない配信サーバに当該コンテンツ情報の保持要求を送信し、前記検出手段によってコンテンツ情報を保持する配信サーバの数が増加したことが検出されると、当該コンテンツ情報を保持している配信サーバに当該コンテンツ情報の削除要求を送信し、前記配信サーバは、前記保持要求を受信すると、当該保持要求の対象となるコンテンツ情報を保持する配信サーバから当該コンテンツ情報を取得して前記コンテンツ情報記憶手段に記憶する取得手段と、前記削除要求を受信すると、当該削除要求の対象となるコンテンツ情報を前記コンテンツ情報記憶手段から削除する削除手段とを備えたことを特徴とする。
【００２１】
また、請求項６に係る本発明では、請求項２又は請求項３に記載の情報配信システムにおいて、前記端末装置は、コンテンツ情報を他の端末装置から取得する取得手段と、前記取得手段で取得したコンテンツ情報を再生する再生手段とを有し、前記取得手段は、コンテンツ情報を他の端末装置から取得できないとき、当該取得できないコンテンツ情報を保持する前記配信サーバから当該コンテンツ情報を取得することを特徴とする。
【００２２】
また、請求項７に係る本発明では、請求項６に記載の情報配信システムにおいて、各前記端末装置及び各前記配信サーバにはそれぞれ固有の装置識別情報が割り当てられており、前記端末装置は、前記コンテンツ情報を記憶する記憶手段と、前記端末装置からの取得要求に応じたコンテンツ情報を前記記憶手段から取り出して送信する送信手段と、前記記憶手段に記憶したコンテンツ情報に割り当てられたコンテンツ識別情報に対応する装置識別情報を有する装置へ自装置の所在情報を送信する所在情報送信手段と、自装置の装置識別情報に対応するコンテンツ識別情報を保持する装置の所在情報を記憶する所在情報記憶手段とを有し、前記配信サーバは、前記コンテンツ情報記憶手段に記憶したコンテンツ情報に割り当てられたコンテンツ識別情報に対応する装置識別情報を有する装置へ自装置の所在情報を送信する第２の所在情報送信手段と、自装置の装置識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する装置の所在情報を記憶する装置情報記憶手段とを有することを特徴とする。
【００２３】
また、請求項８に係る本発明では、複数の端末装置と、前記端末装置からの要求に応じたコンテンツ情報を送信する複数の配信サーバとを備えた情報配信システムにおけるコンテンツ情報の重複数調整方法において、各前記コンテンツ情報を保持する配信サーバの数を検出するステップと、前記検出結果に応じて、各前記コンテンツ情報を保持する配信サーバの数を調整するステップとを有することを特徴とする。
【発明の効果】
【００２４】
本発明では、複数の端末装置と、前記端末装置からの要求に応じたコンテンツ情報を送信する複数の配信サーバとを備えた情報配信システムにおいて、各コンテンツ情報を保持する配信サーバの数を検出し、その検出結果に応じて、各コンテンツ情報を保持する配信サーバの数を調整するため、当該情報配信システムに投入する全てのコンテンツ情報を記憶可能な高性能且つ高価なサーバを設ける必要がないので、設備費が大幅に増大することを抑制することができると共に、当該情報配信システムに投入する全てのコンテンツ情報を配信可能に保障することができる。
【発明を実施するための最良の形態】
【００２５】
［１．第１実施形態］
以下、本発明の第１実施形態を図面に基づいて説明する。なお、以下に説明する実施形態は、配信する情報を音楽データや映像データなどのコンテンツデータとした情報配信システムに対して本発明を適用した場合の実施形態である。
【００２６】
［１．１．情報配信システムの概要］
図１に示すように、第１実施形態に係る情報配信システムＳは、当該情報配信システムＳを利用する複数のユーザの端末装置（以下、「ユーザ端末１０」という。）と、これらユーザ端末１０からの配信要求に応じたコンテンツ情報を、その配信要求を送信してきたユーザ端末１０へ送信する複数台の配信サーバ１、２、３、４とを備えている。
【００２７】
これら複数のユーザ端末１０、配信サーバ１、２、３、４は、それぞれ情報通信回線を介して接続されて、相互に情報を送受信可能なネットワークを構築している。
【００２８】
各配信サーバ１、２、３、４は、それぞれ複数のコンテンツ情報を記憶する記憶装置（データストレージ）を備えており、コンテンツ投入装置１１（図１１参照）により当該情報配信システムＳに投入されるコンテンツ情報を各データストレージ内に保持（記憶）するように構成している。
【００２９】
すなわち、この情報配信システムＳでは、複数台の配信サーバ１、２、３、４のデータストレージ群により巨大な仮想ストレージを構築している。
【００３０】
そのため、情報配信システムＳでは、比較的安価な配信サーバ１、２、３、４を増設するだけで、仮想ストレージの記憶容量を容易に増大させることができるので、膨大な量のコンテンツ情報を１台で保持及び管理可能な、大規模なストレージを備えた高性能且つ高価な配信サーバを設ける必要がない。そのため、この情報配信システムＳに投入するコンテンツ情報の量が膨大になった場合に、設備費が大幅に増大することがない。
【００３１】
さらに、この情報配信システムＳでは、同一種類のコンテンツ情報を少なくとも２台以上の配信サーバ１、２、３、４に保持させておくことにより、仮に複数の配信サーバ１、２、３、４のうち、一部の配信サーバがメンテナンスや故障等によりコンテンツ情報を配信不可能な状態になっても、当該情報配信システムＳに投入されたコンテンツ情報の中で、一部のコンテンツ情報が配信できなくなるといった問題が発生することを予防するように構成している。
【００３２】
また、各配信サーバは、後述の分散ハッシュテーブル（以下、「ＤＨＴ」と呼ぶ。）を利用したアルゴリズムによって、配信サーバ１、２、３、４間で独自のネットワーク（以下、「サーバ間ＤＨＴネットワークＳＤ」という。）を構築しており、それぞれの配信サーバがサーバ間用ＤＨＴを保持している。
【００３３】
また、各ユーザ端末１０は、配信サーバ１、２、３、４から受信したコンテンツ情報を記憶するデータストレージと、各配信サーバ１、２、３、４に割り当てられた固有のサーバ識別情報とその配信サーバ１、２、３、４の所在情報とが記載されたサーバマシンリストとを備えている。
【００３４】
そして、この情報配信システムＳでは、ユーザが自身のユーザ端末１０を情報通信回線に接続することによって、当該情報配信システムＳに参加し、所定の配信サーバ１、２、３、４へ所望のコンテンツ情報の配信要求を送信すると、その配信要求がサーバ間ＤＨＴネットワークＳＤを介して、ユーザが所望するコンテンツ情報を保持している配信サーバ１、２、３、４まで転送され、その配信サーバ１、２、３、４から所望のコンテンツ情報の配信を受けることができるように構成している。
【００３５】
特に、この情報配信システムＳは、各コンテンツ情報を保持している配信サーバ１、２、３、４の台数を管理及び調整する調整サーバ５を備えている。
【００３６】
この調整サーバ５は、各コンテンツ情報毎に、そのコンテンツ情報を保持している配信サーバ１、２、３、４の台数を検出する検出手段を備えており、この検出手段による検出結果に応じて、各コンテンツ情報を保持している配信サーバ１、２、３、４の台数を調整するものである。
【００３７】
そして、本実施形態の情報配信システムＳでは、この調整サーバ５により、仮想ストレージ内に保持されているコンテンツ情報の種類及び数を均等に保つことによって、当該情報配信システムＳに投入した全てのコンテンツ情報を配信可能に保障するように構成している。
【００３８】
すなわち、この情報配信システムＳにおいて、仮想ストレージを構成する配信サーバ１、２、３、４のうち、１台がコンテンツ情報を配信できない状態になった場合、仮想ストレージ内で一部のコンテンツ情報の数が減少して、コンテンツ情報の数に偏りが生じるが、調整サーバ５が減少した種類のコンテンツ情報を増加させるので、仮想ストレージ内に保持されているコンテンツ情報の種類及び数を均等に保つことができ、これにより、たとえば、配信サーバ１、２、３、４の故障等により、同じコンテンツ情報を保持している配信サーバ１、２、３、４が次々にコンテンツ情報を配信不可能な状態になって、一部のコンテンツ情報がユーザ端末１０へ配信できなくなるといった問題の発生を防止することができる。
【００３９】
また、一旦コンテンツ情報を配信不可能な状態になった配信サーバ１、２、３、４が、この情報配信システムＳシステムに復帰した場合には、それに伴い、仮想ストレージ内で一部のコンテンツ情報の数が増加するが、この情報配信システムＳでは、調整サーバ５が増加したコンテンツ情報を保持する配信サーバ１、２、３、４の数を減少させるように調整するので、仮想ストレージ内に同じ種類のコンテンツ情報が不必要に保持されることを防止することができる。
【００４０】
［１．２．調整サーバによるコンテンツ情報の重複数調整方法］
ここで、調整サーバ５が各コンテンツ情報を保持する配信サーバ１、２、３、４の数を調整することによって、仮想ストレージ内におけるコンテンツ情報の重複数を調整する方法について説明する。
【００４１】
図２〜図７は、調整サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【００４２】
本実施形態では、情報配信システムＳに、Ａ、Ｂ、Ｃ、Ｄという４種類のコンテンツ情報（以下、それぞれ「データＡ、データＢ、データＣ、データＤ」という。）が投入されている場合を例に挙げて説明する。
【００４３】
また、各データＡ、Ｂ、Ｃ、Ｄには、それぞれ各コンテンツ情報を識別するための固有のコンテンツ識別情報（以下、「データＩＤ」という。）が割り当てられており、ここでは、データＡのデータＩＤをＡ１、データＢのデータＩＤをＢ１、データＣのデータＩＤをＣ１、データＤのデータＩＤをＤ１としている。
【００４４】
また、ここでは、仮想ストレージ内に存在する同一のコンテンツ情報の理想的な数（以下、「理想数」という。）を「２」（重複数「１」）としており、調整サーバ５は、情報配信システムＳ内に、同じコンテンツ情報を保持している配信サーバ１、２、３、４が２台存在するように調整する。
【００４５】
各配信サーバ１、２、３、４には、それぞれ固有のサーバ識別情報（以下、「マシンＩＤ」という。）が割り当てられている。マシンＩＤとしては、各配信サーバ１、２、３、４固有の製造番号（例えば、ＭＡＣアドレス）を用いることができるが、ここでは、説明を簡単にするため、配信サーバ１のマシンＩＤを１ａ、配信サーバ２のマシンＩＤを２ａ、配信サーバ３のマシンＩＤを３ａ、配信サーバ４のマシンＩＤを４ａとして説明する。
【００４６】
また、各配信サーバ１、２、３、４は、それぞれネットワーク上における固有の所在情報（以下、「アドレス」という。）を有している。アドレスとしては、一般にインターネット等で使用されるＩＰアドレスを用いることができるが、ここでは、説明を簡単にするため、配信サーバ１のアドレスを１ｂ、配信サーバ２のアドレスを２ｂ、配信サーバ３のアドレスを３ｂ、配信サーバ４のアドレスを４ｂとして説明する。
【００４７】
さらに、各配信サーバ１、２、３、４は、それぞれ特定（複数でもよい）のコンテンツ情報を管理している。ここで、「管理」とは、後に詳述するがコンテンツ情報を保持していることを意味するのではなく、「特定のコンテンツ情報について、そのコンテンツ情報が何れの配信サーバ１、２、３、４に保持されているかを知っている」ことを意味する。
【００４８】
以下、特定のコンテンツ情報を管理している配信サーバ１、２、３、４を、そのコンテンツ情報のルートノードともいう。なお、ルートノードとなっている配信サーバ１、２、３、４がサーバ間ＤＨＴネットワークＳＤから離脱した場合、サーバ間ＤＨＴネットワークＳＤにおいて、離脱した配信サーバ１、２、３、４とネットワーク上で最も近い配信サーバ１、２、３、４が、前記離脱した配信サーバ１、２、３、４が管理していたコンテンツ情報のルートノードとなり、離脱した配信サーバ１、２、３、４が再度サーバ間ＤＨＴネットワークＳＤに復帰した場合には、離脱前に管理していたコンテンツ情報のルートノードに戻るように構成している。
【００４９】
そして、ルートノード（配信サーバ１、２、３、４）は、自装置が管理しているコンテンツ情報の種類と、そのコンテンツ情報を保持している配信サーバ１、２、３、４のアドレスとを対応付けたインデックス情報と、各配信サーバ１、２、３、４間での各種メッセージの転送に用いるサーバ間用ＤＨＴとを保持している。
【００５０】
今、図２に示す状態において、配信サーバ１は、データＡとデータＢとを保持しており、配信サーバ２は、データＢとデータＣとを保持しており、配信サーバ３は、データＣとデータＤとを保持しており、配信サーバ４は、データＤとデータＡとを保持している。
【００５１】
調整サーバ５は、コンテンツ情報の配信が可能な状態となっている全ての配信サーバ１、２、３、４（サーバ間ＤＨＴネットワークＳＤに参加している配信サーバ）毎に、その配信サーバ１、２、３、４のマシンＩＤとアドレスと、その配信サーバ１、２、３、４が保持しているコンテンツ情報のデータＩＤとを対応付けた調整テーブルを保持している。
【００５２】
そして、調整サーバ５は、コンテンツ情報の配信が可能な状態となっている全ての配信サーバ１、２、３、４へ、所定周期で定期的にインデックス情報の送信を要求するインデックス情報送信依頼Ｔ１を送信する。
【００５３】
各配信サーバ１、２、３、４は、調整サーバ５からインデックス情報送信依頼Ｔ１を受信すると、自装置が管理しているコンテンツ情報のインデックス情報Ｔ２を調整サーバ５へ送信する。
【００５４】
そして、調整サーバ５は、各配信サーバ１、２、３、４から受信したインデックス情報Ｔ２に基づいて、定期的に調整テーブルを更新することにより、当該情報配信システムＳで配信可能なコンテンツ情報の数を管理する。
【００５５】
ここで、図３に示すように、配信サーバ１が故障等、何らかの原因によりサーバ間ＤＨＴネットワークＳＤから離脱すると、配信サーバ１が保持しているデータＡ及びデータＢが仮想ストレージ上に存在しなくなる。
【００５６】
調整サーバ５は、離脱した配信サーバ１以外の配信サーバから受信したインデックス情報を用いて調整テーブルを図４に示すように更新する。
【００５７】
このとき、図４に示すように、情報配信システムＳでは、仮想ストレージ内に、データＡとデータＢが１つずつしか存在せず、理想数の２よりも少ない状態となっている。
【００５８】
そのため、調整サーバ５は、調整テーブルを参照して、現在、データＡを保持している配信サーバ４に、データＡの複製を要求する複製要求Ｔ３を送信すると共に、現在データＢを保持している配信サーバ２へ、データＢの複製を要求する複製要求Ｔ６を送信する。
【００５９】
配信サーバ４は、複製要求Ｔ３を受信すると、データＡを複製すると共に、複製したデータＡを他の配信サーバ３へ送信する。また、配信サーバ２は、複製要求Ｔ６を受信すると、データＢを複製すると共に、複製したデータＢを他の配信サーバ４へ送信する。
【００６０】
ここでは、調整サーバ５が複製要求を送信し、その複製要求を受信した配信サーバ２、４がコンテンツ情報を複製して、他の配信サーバ３、４へ複製したコンテンツ情報を送信するように構成しているが、調整サーバ５からデータＡを保持していない配信サーバ３へ、データＡを保持している配信サーバ４のアドレス４ｂと共に、その配信サーバ４からデータＡを受信して保持するように保持要求を送信し、同じく、データＢを保持してない配信サーバ４へ、データＢを保持している配信サーバ２のアドレス２ｂと共に、その配信サーバ２からデータＢを受信して保持するように保持要求を送信するように構成してもよい。
【００６１】
かかる構成とした場合、配信サーバ３は、配信サーバ４からデータＡを受信して保持し、配信サーバ４は、配信サーバ２からデータＢを受信して保持する。
【００６２】
その後、図５に示すように、新たにデータＡを保持した配信サーバ３は、自装置がデータＡを保持したことを示すデータ作成通知Ｔ８を調整サーバ５へ送信し、新たにデータＢを保持した配信サーバ４は、データＢを保持したことを示すデータ作成通知Ｔ９を調整サーバ５へ送信する。
【００６３】
調整サーバ５は、これらデータ作成通知Ｔ８、Ｔ９を受信すると、そのデータ作成通知Ｔ８、Ｔ９に基づいて、図５に示すように調整テーブルを更新する。
【００６４】
こうして、調整サーバ５が数の減少したデータＡ及びデータＢを複製させて他の配信サーバ３、４に保持させることによって、図５に示すように、仮想ストレージ上に全てのコンテンツ情報が２つ存在する状態に戻すようにしている。
【００６５】
その後、図６に示すように、一旦サーバ間ＤＨＴネットワークＳＤを離脱していた配信サーバ１が再度サーバ間ＤＨＴネットワークＳＤに復帰した場合、調整サーバ５は、定期的に行うインデックス情報送信依頼Ｔ１の送信と、インデックス情報Ｔ２の受信とにより、調整テーブルを更新する。
【００６６】
この場合、情報配信システムＳでは、図６に示すように、データＡとデータＢが仮想ストレージ上に３つずつ存在して、理想数の２よりも多い状態となっている。
【００６７】
そのため、調整サーバ５は、調整テーブルを参照して、図７に示すように、現在データＡを保持している配信サーバ３にデータＡの削除要求Ｔ１０を送信すると共に、現在データＢを保持している配信サーバ４へデータＢの削除を要求する削除要求Ｔ１１を送信する。
【００６８】
このとき、削除要求Ｔ１０、Ｔ１１の送信先として選択する配信サーバ１、２、３、４としては、重複数が理想数よりも多いコンテンツ情報を保持している任意の配信サーバ１、２、３、４とすることができるが、好ましくは、保持しているコンテンツ情報の総数が多い配信サーバ１、２、３、４を選択する。
【００６９】
こうすることにより、各配信サーバ１、２、３、４が保持するコンテンツ情報の量を略均等にすることができるので、一部の配信サーバ１、２、３、４にコンテンツ情報が集中して処理負荷が増大することを防止することができる。
【００７０】
その後、削除要求Ｔ１０を受信した配信サーバ３がデータＡを削除し、削除要求Ｔ１１を受信した配信サーバ４がデータＢを削除することによって、情報配信システムＳは、図２に示した状態に戻る。
【００７１】
このように、本実施形態の情報配信システムＳでは、複数台の配信サーバ１、２、３、４のうち、一部の配信サーバ１、２、３、４が何らからの原因によりコンテンツ情報を配信不可能な状態になり、仮想ストレージ内で一部のコンテンツ情報の数が減少した場合に、調整サーバ５が減少したコンテンツ情報の数を増加させて理想数に近づける一方、仮想ストレージ内で一部のコンテンツ情報の数が増加した場合には、調整サーバ５が増加したコンテンツ情報の数を減少させて理想数に近づけるので、仮想ストレージ内における同一の各コンテンツ情報の重複数を略均等に保つことができ、当該情報配信システムＳに投入した全てのコンテンツ情報を配信可能に保障することができる。
【００７２】
［１．３．サーバ間ＤＨＴネットワークの概要等］
ここで、この情報配信システムＳに採用しているサーバ間ＤＨＴネットワークＳＤの概要について、図８〜図１２を参照して説明する。なお、ここでは、配信サーバ１、２、３、４の上記マシンＩＤ、アドレス、コンテンツ情報のデータＩＤに対して具体的な数値を当てはめて説明する。
【００７３】
本実施形態の情報配信システムＳにおいては、ＤＨＴを利用したアルゴリズムによって、サーバ間ＤＨＴネットワークＳＤを構築している。つまり、このサーバ間ＤＨＴネットワークＳＤは、既存のインターネット等の物理的ネットワークを用いて形成された仮想的なリンクを構成したものであり、サーバ間ＤＨＴネットワークＳＤ上に配置された配信サーバ１、２、３、４を、情報配信システムＳに参加（言い換えれば、サーバ間ＤＨＴネットワークＳＤに参加）している配信サーバ１、２、３、４という。
【００７４】
情報配信システムＳに参加している配信サーバ１、２、３、４のサーバ識別情報であるマシンＩＤとして、それぞれの配信サーバ１、２、３、４毎にユニークな番号（固有番号）を付与する。本実施形態においては、各配信サーバ１、２、３、４のＩＰアドレス或いは製造番号等の配信サーバ１、２、３、４毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値を各配信サーバ１、２、３、４のマシンＩＤとする。このように共通のハッシュ関数によりハッシュ化されて求められたマシンＩＤは、当該ＩＰアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、以下の説明においては、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値をマシンＩＤとする。
【００７５】
また、情報配信システムＳに参加している複数の配信サーバ１、２、３、４には、ユーザ端末１０に配信される共用情報としてのコンテンツ情報（例えば、音楽データ、映画データ、文書データ等のデータ）が分散して記憶されているが、当該コンテンツ情報にも、それぞれのコンテンツ情報毎の固有の識別番号としてデータＩＤを付与する。そして、当該データＩＤは、マシンＩＤと同様の長さ（例えば、32bit等）とし、コンテンツ情報の名称（例えば、データファイル名）などが、上記マシンＩＤを得るときと共通のハッシュ関数によりハッシュ化され、配信サーバ１、２、３、４のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置される。
【００７６】
このように、各配信サーバ１、２、３、４に付与されたマシンＩＤ及び各コンテンツ情報に付与されたデータＩＤは、共通のハッシュ関数によって生成したため、図８に示すように、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitでマシンＩＤ及びデータＩＤを付与し、図示したものである。図中丸点はマシンＩＤを、四角形はデータＩＤを示し、反時計回りでＩＤが増加するものとする。
【００７７】
本実施形態においては、「あるデータＩＤを有するコンテンツ情報を管理する配信サーバ１、２、３、４（ルートノード）は、そのデータＩＤに近いマシンＩＤを有する配信サーバ１、２、３、４である」という規則を適用しており、ここでの「近い」ことの定義は、当該データＩＤを超えず、データＩＤとマシンＩＤとの差が一番少ないものとするが、実際には、各コンテンツ情報の管理を各配信サーバ１、２、３、４に割り振る際に、一貫していれば他の定義でもよい。図８に示す例では、この定義に基づいて、データＩＤａは、当該コンテンツＩＤａに近いマシンＩＤ（以下、「マシンＩＤａ」と呼ぶ。）を有する配信サーバ１に管理され、データＩＤｂは、当該データＩＤｂに近いマシンＩＤ（以下、「端末ＩＤｂ」と呼ぶ。）を有する配信サーバ２に管理され、データＩＤｃは、当該データＩＤｃに近いマシンＩＤ（以下、「端末ＩＤｃ」と呼ぶ。）を有する配信サーバ３に管理される。
【００７８】
ここで、「管理」とは、コンテンツ情報を保持していることを意味するのではなく、「コンテンツ情報が何れの配信サーバ１、２、３、４に保持されているかを知っている」ことを意味する。すなわち、情報配信システムＳ内で配信するコンテンツ情報を保持する配信サーバ１、２、３、４の所在情報（ここでは、アドレスとする。）を保持することを意味する。例えば、図８においては、マシンＩＤａを有する配信サーバ１は、データＩＤａを有するコンテンツ情報が何れの配信サーバ１、２、３、４に保持されているかを知っており、マシンＩＤｂを有する配信サーバ２及びマシンＩＤｃを有する配信サーバ３も同様にそれぞれデータＩＤｂを有するコンテンツ情報及びデータＩＤｃを有するコンテンツ情報が何れの配信サーバ１、２、３、４に保持されているかを知っている、ということになる。
【００７９】
このように、あるコンテンツ情報が何れの配信サーバ１、２、３、４に保持されているかを知っている配信サーバ１、２、３、４を、そのコンテンツ情報のルートノードとしている。つまり、マシンＩＤａを有する配信サーバ１は、データＩＤａを有するコンテンツ情報のルートノードであって、マシンＩＤｂを有する配信サーバ２は、データＩＤｂを有するコンテンツ情報のルートノードであって、マシンＩＤｃを有する配信サーバ３は、データＩＤｃを有するコンテンツ情報のルートノードである。
【００８０】
また、情報配信システムＳには、情報配信システムＳ内にコンテンツ情報を投入する機能、すなわち情報配信システムＳ内の配信サーバ１、２、３、４をコンテンツ保持装置とするためにコンテンツ情報を配信サーバへ配布（送信）する機能や、情報配信システムＳにおいてユーザ端末１０へ送信可能なコンテンツ情報のリストである情報リスト（以下、「コンテンツカタログ」と呼ぶ。）を生成して各配信サーバ１、２、３、４へ提供する機能などを有するコンテンツ投入装置１１（図１１参照）を備えている。
【００８１】
［１．３．１ルーティングテーブル］
ここで、図９及び図１０を参照して、サーバ間ＤＨＴネットワークＳＤで用いるルーティングテーブルについて説明する。図９はルーティングテーブルを説明するための図であり、図１０はルーティングテーブルの一例である。このルーティングテーブルは、配信サーバ１、２、３、４から他の配信サーバ１、２、３、４へアクセスするために、各配信サーバ１、２、３、４に保持されているものであり、各配信サーバ１、２、３、４が情報配信システムＳに参加するとき等に形成されるものである。
【００８２】
このルーティングテーブルは、所定の規則に従い、情報配信システムＳに含まれる配信サーバ１、２、３、４を複数のグループに分けて当該各グループをレベル１のグループとし、このレベル１のグループのうち自装置が属するグループをさらに複数のグループに分けて当該各グループをレベル２のグループとし、このレベル２のグループ分けと同様のグループ分けによりレベルｎまでの各グループとして、各段階の各グループ（自装置の属するグループは除く）に属する一の配信サーバ１、２、３、４の所在情報（ＩＰアドレス）をそれぞれ記憶するものである。なお、ｎは３以上の自然数であり、マシンＩＤのＩＤ空間に応じて異なる。例えば、以下のように、ビット長８bitの４進数の場合には、ｎ＝４となる。
【００８３】
ここでは、マシンＩＤをビット長８bitの４進数（「0000」〜「3333」）で表すこととした場合に、マシンＩＤが「1133」の配信サーバ１が保持するルーティングテーブルについて説明する。
【００８４】
図９（ａ）に示すように、マシンＩＤのＩＤ空間を４分割することによって、最大桁が異なる４つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」（Ｘは０から３の自然数、以下同様。）のグループに分ける。これらがレベル１のグループである。配信サーバ１のマシンＩＤは「1133」であるため、配信サーバ１は、図９（ａ）中左下のエリア「1XXX」であるレベル１のグループに属する。従って、配信サーバ１のルーティングテーブルのレベル１のテーブルには、図１０に示すように、配信サーバ１の存在するレベル１のグループ以外のグループ（すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリアの各グループ）に存在する配信サーバのマシンＩＤ及びＩＰアドレスが記憶される。このテーブルでは、「0XXX」のエリアのマシンＩＤとして「0100」、「2XXX」のエリアのマシンＩＤとして「2133」、「3XXX」のエリアのマシンＩＤとして「3213」のそれぞれのマシンＩＤ及びＩＰアドレスが記憶されている。
【００８５】
次に、図９（ｂ）に示すように、レベル１のグループのうち配信サーバ１が属するグループをさらに４分割して、エリア「10XX」、「11XX」、「12XX」、「13XX」のグループに分ける。これらがレベル２のグループである。配信サーバ１は、自装置１のマシンＩＤが「1133」であるため、配信サーバ１のルーティングテーブルのレベル２のテーブルには、図１０に示すように、配信サーバ１が属するレベル２のグループ（「11XX」のエリアのグループ）以外のレベル２のグループ（すなわち、「10XX」のエリア、「12XX」のエリア、「13XX」のエリアの各グループ）にそれぞれ属する配信サーバのマシンＩＤ及びＩＰアドレスが記憶される。このテーブルでは、「10XX」のエリアのマシンＩＤとして「1003」、「12XX」のエリアのマシンＩＤとして「1221」、「13XX」のエリアのマシンＩＤとして「1313」のそれぞれのマシンＩＤ及びＩＰアドレスが記憶されている。
【００８６】
以下同様に、レベル２のグループのうち配信サーバ１が属するグループをさらに４分割して、エリア「110X」、「111X」、「112X」、「113X」のグループ（レベル３のグループ）に分け、配信サーバ１が属するレベル３のグループ「113X」以外のレベル３のグループ（すなわち、「110X」のエリア、「111X」のエリア、「112X」のエリアの各グループ）にそれぞれ属する配信サーバのマシンＩＤ及びＩＰアドレスが記憶される。また、レベル３のグループのうち配信サーバ１が属するグループをさらに４分割して、「1130」「1131」、「1132」、「1133」のグループ（レベル４のグループ）に分け、配信サーバ１が属するレベル４のグループ「1133」以外のレベル４のグループ（すなわち、「1130」「1131」、「1132」の各グループ）にそれぞれ属する配信サーバのマシンＩＤ及びＩＰアドレスが記憶される。なお、上記グループに配信サーバが存在しない場合には、マシンＩＤ及びＩＰアドレスの欄は空白となる。
【００８７】
このように情報配信システムＳにおいては、この情報配信システムＳにおける複数の配信サーバ１、２、３、４のうち一部の配信サーバの識別情報であるマシンＩＤ及び所在情報であるＩＰアドレスを関連付けたルーティングテーブルを各配信サーバ１、２、３、４が有している。
【００８８】
［１．３．２．コンテンツ情報の公開方法］
このような構成の情報配信システムＳの中で、例えば、ある配信サーバが新しいコンテンツ情報を、情報配信システムＳ上の他の配信サーバから検索可能となるように公開する際の手法について述べる。
【００８９】
まず、コンテンツ投入装置１１は、新たなコンテンツ情報を情報配信システムＳに投入（配布）しようとするとき、この新たなコンテンツ情報を投入する配信サーバ１ｍを決定する。そして、コンテンツ投入装置１１は、当該決定した配信サーバ１ｍへコンテンツ情報を投入（送信）する。
【００９０】
コンテンツ投入装置１１から投入されたコンテンツ情報を内部の記憶手段に記憶してコンテンツ保持装置となった配信サーバ１ｍの制御部２０１（図１４参照）は、記憶手段に記憶したコンテンツ情報のデータＩＤと同じマシンＩＤを持つ配信サーバに向けて（この配信サーバが実在するか否かはこの時点ではわからない。）、自装置（コンテンツ情報を保持するコンテンツ保持装置として）の所在情報であるＩＰアドレス等の登録を要求するメッセージ（以下、「登録メッセージ」と呼ぶ。）を送信する。
【００９１】
このように、配信サーバ１ｍの制御部２０１は、コンテンツ情報に割り当てられたコンテンツ識別情報に対応するサーバ識別情報を有する配信サーバへ自装置の所在情報及びサーバ識別情報を送信するサーバ識別情報送信手段として機能する。
【００９２】
そして、図１１に示すように、例えば、配信サーバ１ｍがデータＩＤ「3020」のコンテンツ保持装置となったとき、配信サーバ１ｍは、データＩＤ「3020」を宛先識別情報とした登録メッセージを生成し、この登録メッセージを自己が保持しているルーティングテーブルを参照して送信する。配信サーバ１ｍが、図１０に示すルーティングテーブルのレベル１のテーブルと同様のルーティングテーブルを持っていたとすると、データＩＤ「3020」は「3XXX」のエリアであるため、当該「3XXX」のエリアに属す配信サーバのうち、ＩＰアドレスを知っている（すなわち、自己が保持しているルーティングテーブルにＩＰアドレスが記憶されている）配信サーバ１ｎ（マシンＩＤ「3213」）に対して登録メッセージを送信する。この登録メッセージはコンテンツ保持装置として保持したコンテンツ情報のデータＩＤを含むものであり、このデータＩＤは登録メッセージにおいて宛先識別情報として用いられる。
【００９３】
次に、登録メッセージを受信した配信サーバ１ｎは、この登録メッセージが自装置１ｎ宛のメッセージであるか否かを判定する。自装置１ｎ宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。具体的には、宛先識別情報が自装置１ｎの識別情報であるマシンＩＤと近いか否かが判定される。即ち、宛先識別情報に対して、配信サーバ１ｎ自身が保持しているルーティングテーブル（テーブルの値は図示しない）に記憶されている配信サーバのマシンＩＤから、一番近い配信サーバのマシンＩＤが、自身であるか他の配信サーバであるかを判定する。
【００９４】
そして、自装置１ｎのマシンＩＤよりも他の配信サーバのマシンＩＤの方が、宛先識別情報に近いため、配信サーバ１ｎは、当該配信サーバ１ｎ自身が保持しているルーティングテーブルのレベル２のテーブルを参照して、「30XX」のエリアに属す配信サーバのうち、ＩＰアドレスを知っている配信サーバ１ｐ（マシンＩＤ「3031」）に対して登録メッセージを転送する。
【００９５】
このように、データＩＤの桁を上から順に適合していく要領で登録メッセージの転送が進み、最終的に登録メッセージの宛先識別情報に近いマシンＩＤを有する配信サーバ１ｑに辿り着くと、当該配信サーバ１ｑ自身がそのコンテンツ情報のルートノードとなるべきだと判断し、当該登録メッセージに含まれる当該データＩＤ及びコンテンツ保持装置のマシンＩＤやＩＰアドレス等を含むインデックス情報を記憶する。そして、他の配信サーバから検索メッセージを受信すると、検索メッセージを送信した配信サーバへコンテンツ保持装置の所在情報であるＩＰアドレスを記憶したインデックス情報の中から選択して通知する。なお、上述のようにルーティングテーブルを用いたメッセージの転送をＤＨＴルーティングと呼ぶ。
【００９６】
ところで、ルートノードにおけるインデックス情報の保持は、図１２に示すようなインデックステーブルにより行われる。図１２はルートノード１ｑにおけるインデックステーブルの例を示したものであり、自装置が管理対象であるデータＩＤ「3020」のコンテンツ情報を保持するコンテンツ保持装置のマシンＩＤ、ＩＰアドレス、紹介時間などを記憶している。
【００９７】
〔１．４．調整サーバの構成〕
ここで、調整サーバ５の構成について説明する。図１３は、本実施形態に係る情報配信システムＳにおける調整サーバ５の概略構成を示す図である。
【００９８】
調整サーバ５は、一般のサーバコンピュータを適用可能であり、図１３に示すように、制御部１０１と、サーバ間ＤＨＴネットワークＳＤに参加している配信サーバ１、２、３、４のマシンＩＤ及びアドレス、その配信サーバ１、２、３、４が保持しているコンテンツ情報のデータＩＤが記載された調整テーブル等を記憶する書き換え可能な記憶部１０２と、マウスやキーボード等からなる入力部１０３と、インターネットを介して、配信サーバ１、２、３、４と通信するための通信部１０４とを備えている。なお、制御部１０１、記憶部１０２、通信部１０４は、システムバス１１０を介して相互に接続されている。
【００９９】
制御部１０１は、ＣＰＵ（Central Processing Unit）、内部ＲＯＭ（Read Only Memory）及び内部ＲＡＭ（Random Access Memory）から構成される。この内部ＲＯＭには、複数の配信サーバ１、２、３、４により構築された仮想ストレージ内におけるコンテンツ情報の重複数の調整を行うための情報処理プログラムが格納されており、ＣＰＵは内部ＲＯＭに記憶されている情報処理プログラムを読み出して実行することによって、後述する検出手段、調整手段等として機能する。
【０１００】
なお、この情報処理プログラムは、例えば、インターネットに接続された他のサーバ（図示せず）から、通信部１０４を介して、制御部１０１の内部ＲＯＭにダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、制御部１０１の内部ＲＯＭに読み込まれるようにしてもよい。
【０１０１】
[１．５．配信サーバの構成]
次に、配信サーバの構成について説明する。各配信サーバ１、２、３、４は、それぞれ保持しているコンテンツ情報の種類が異なるだけで、その構成については全て同一であるため、ここでは、配信サーバ１の構成について説明する。
【０１０２】
図１４は、本実施形態に係る情報配信システムＳにおける配信サーバ１の概略構成を示す図である。
【０１０３】
配信サーバ１は、一般のサーバコンピュータを適用可能であり、図１４に示すように、制御部２０１と、サーバ間用ＤＨＴや自装置がルートノードとなって管理しているコンテンツ情報に関するインデックス情報、自装置が保持しているコンテンツ情報に関するカタログ情報等を記憶する書き換え可能な記憶部２０２と、コンテンツ情報を記憶するデータストレージ（記憶装置）としてのハードディスク（ＨＤＤ）２０３と、マウスやキーボード等からなる入力部２０４と、コンテンツ情報をユーザ端末１０へ送信するために一時的に記憶するバッファメモリ２０５と、インターネットを介して、他の配信サーバ２、３、４や調整サーバ５、ユーザ端末１０等の他の装置と通信するための通信部２０６とを備えている。
【０１０４】
本実施形態では、上記ＨＤＤ２０３が複数のコンテンツ情報を記憶するコンテンツ情報記憶手段に相当し、インデックス情報を記憶する記憶部２０２が、自装置のサーバ識別情報（マシンＩＤ）に対応するコンテンツ識別情報（データＩＤ）に割り当てられたコンテンツ情報を保持する配信サーバのサーバ識別情報（マシンＩＤ）及び所在情報（アドレス）を記憶するサーバ識別情報記憶手段に相当する。
【０１０５】
この配信サーバ１の制御部２０１は、ＨＤＤ２０３に保持しているコンテンツ情報を一旦バッファメモリ２０５に記憶させた後、このバッファメモリ２０５に記憶したコンテンツ情報を順次取り出してユーザ端末１０へ送信する。
【０１０６】
また、この制御部２０１は、調整サーバ５から送信される複製要求を受信した場合に、当該複製要求に対応するコンテンツ情報を複製して、他の配信サーバ２、３、４へ送信する他、調整サーバ５から送信される削除要求を受信した場合には、当該削除要求に対応するコンテンツ情報をＨＤＤ２０３から削除する。さらに、他の配信サーバ２、３、４からコンテンツ情報を受信した場合には、そのコンテンツ情報をＨＤＤ２０３内に保持した後、調整サーバ５へデータ作成通知を送信する等、調整サーバ５からの指示に基づいて、コンテンツ情報の作成及び削除を行う。
【０１０７】
なお、制御部２０１、記憶部２０２、ハードディスク２０３、バッファメモリ２０５、通信部２０６は、システムバス２１０を介して相互に接続されている。
【０１０８】
制御部２０１は、ＣＰＵ（Central Processing Unit）、内部ＲＯＭ（Read Only Memory）及び内部ＲＡＭ（Random Access Memory）から構成される。この内部ＲＯＭには、ユーザ端末１０へのコンテンツ情報の送信、コンテンツ情報の作成及び削除、他の装置との間で各種メッセージを送受信するための情報処理プログラムが格納されており、ＣＰＵは内部ＲＯＭに記憶されている情報処理プログラムを読み出して実行することによって、コンテンツ情報送信手段、所在情報送信手段、取得手段、削除手段等として機能する。
【０１０９】
なお、この情報処理プログラムは、例えば、インターネットに接続された他のサーバ（図示せず）から、通信部２０６を介して、制御部２０１の内部ＲＯＭにダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、制御部２０１の内部ＲＯＭに読み込まれるようにしてもよい。
【０１１０】
[１．６．ユーザ端末の構成]
次に、ユーザ端末１０の構成について説明する。図１５は、本実施形態に係る情報配信システムＳにおけるユーザ端末１０の概略構成を示す図である。
【０１１１】
ユーザ端末１０は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能であり、図１５に示すように、制御部３０１と、コンテンツ情報の配信が可能な状態となっている配信サーバ１、２、３、４に関するマシンＩＤ及びアドレスが記載されたサーバ情報テーブル（図示略）等を記憶する書き換え可能な記憶部３０２と、配信サーバ１、２、３、４から取得したコンテンツ情報を記憶する記憶手段としてのハードディスク（ＨＤＤ）３０３と、配信サーバ１、２、３、４から取得したコンテンツ情報を一時的に記憶するバッファメモリ３０４と、ＨＤＤ３０３やバッファメモリ３０４に記憶したコンテンツ情報を順次取り出してデコードするデコーダ部３０５と、このデコーダ部３０５によってデコードされたコンテンツ情報のうち映像情報を後述の表示部３０７で表示可能な情報に変換処理する映像処理部３０６と、この映像処理部３０６からの出力に基づいて映像を表示する液晶表示装置（ＬＣＤ）などの表示部３０７と、デコーダ部３０５によってデコードされたコンテンツ情報のうち音声情報を後述のスピーカ３０９で音波として出力可能な情報に変換処理する音声処理部３０８と、この音声処理部３０８からの出力に基づいて音波を出力するスピーカ３０９と、マウス及びキーボードなどからなる入力部３１０と、インターネットを介して、配信サーバ１、２、３、４と通信するための通信部３１３とを備えている。
【０１１２】
このユーザ端末１０では、デコーダ部３０５、映像処理部３０６、音声処理部３０８、表示部３０７、スピーカ３０９がそれぞれ協働して、コンテンツ情報を再生する再生手段として機能する。なお、制御部３０１、記憶部３０２、ＨＤＤ３０３、バッファメモリ３０４、デコーダ部３０５、通信部３１３は、システムバス３２０を介して相互に接続されている。
【０１１３】
制御部３０１は、ＣＰＵ（Central Processing Unit）、内部ＲＯＭ（Read Only Memory）及び内部ＲＡＭ（Random Access Memory）から構成される。この内部ＲＯＭには、情報配信システムＳに参加して、コンテンツ情報を送受信するための情報処理プログラムが格納されており、ＣＰＵは内部ＲＯＭに記憶されている情報処理プログラムを読み出して実行することによって、配信サーバ１、２、３、４へコンテンツ情報の配信要求を送信して、当該配信要求に対応するコンテンツ情報を保持する配信サーバ１、２、３、４からコンテンツ情報を取得する取得手段等として機能する。
【０１１４】
なお、この情報処理プログラムは、例えば、インターネットに接続されたサーバ（図示略）等から、通信部３１３を介して、制御部３０１の内部ＲＯＭにダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、制御部３０１の内部ＲＯＭに読み込まれるようにしてもよい。
【０１１５】
[１．７．調整サーバの動作]
ここで、上記のように構成した調整サーバ５の動作について説明する。図１６は、調整サーバ５の動作内容の一例を示すフローチャートである。ここでは、本実施形態の情報配信システムＳにおいて、複数の配信サーバ１、２、３、４に分散して保持させているコンテンツ情報の重複数を調整するために調整サーバ５の制御部１０１が実行する処理について説明し、その他の処理については省略している。なお、以下、フローチャートの説明においては、コンテンツ情報を単に、データと称して説明する。
【０１１６】
調整サーバ５の制御部（以下、「制御部１０１」という。）は、電源が投入されている間、図１６に示す重複数調整処理を所定周期で定期的に繰り返し実行する。
【０１１７】
制御部１０１は、この重複数調整処理を開始すると、図１６に示すように、まず、サーバ間ＤＨＴネットワークＳＤに参加している全ての配信サーバ１、２、３、４を調査し、同一のデータを保持している配信サーバ１、２、３、４の数をカウントすることによって、仮想ストレージ内のデータの重複数をカウントする処理を行い（ステップS01）、その後、処理をステップS02へ移す。
【０１１８】
このとき、制御部１０１は、各配信サーバ１、２、３、４からインデックス情報を取得する。このインデックス情報には、各ルートノードが管理しているコンテンツ情報を保持している配信サーバのマシンＩＤ及びアドレスが記載されているため、制御部１０１は、取得したインデックス情報を参照することによって、各配信サーバ１、２、３、４が保持しているコンテンツ情報の数を検出することができ、仮想ストレージ内のデータの重複数をカウントすることができる。
【０１１９】
このように、制御部１０１は、サーバ識別情報記憶手段に記憶しているインデックス情報に基づいて、各コンテンツ情報を保持する配信サーバ１、２、３、４の数を検出する検出手段として機能する。
【０１２０】
次に、ステップS02において、制御部１０１は、自装置（調整サーバ５）が管理する全データから１つを選択する処理を行い、その後、処理をステップS03へ移す。
【０１２１】
次に、ステップS03において、制御部１０１は、データ重複数が理想数（たとえば、「２」）未満であるか否かの判断を行い、理想数未満であると判断した場合に（ステップS03：YES）、処理をステップS04へ移し、理想数以上であると判断した場合に（ステップS03：NO）、処理をステップS07へ移す。
【０１２２】
ステップ04において、制御部１０１は、ステップS02で選択したデータを保持する配信サーバ１、２、３、４の中から、（理想数―データ重複数）台の配信サーバ１、２、３、４を選択する処理を行い、その後、処理をステップS05へ移す。
【０１２３】
次に、ステップS05において、制御部１０１は、ステップS04で選択した配信サーバ１、２、３、４に、ステップS02で選択したデータの複製要求を送信する処理を行い、その後、処理をステップS06へ移す。
【０１２４】
このように、制御部１０１は、検出手段によってコンテンツ情報を保持する配信サーバ数が減少したことが検出されると、当該コンテンツ情報を保持している配信サーバへ複製要求を送信する調整手段として機能する。
【０１２５】
ここでは、仮想ストレージ内において、データの重複数が理想未満であった場合に、制御部１０１から、そのデータを保持している配信サーバ１、２、３、４へデータの複製要求を送信するように構成しているが、これ以外に、たとえば、制御部１０１から重複数が理想数未満であったデータを保持していない他の配信サーバ１、２、３、４へ、そのデータのデータＩＤと、そのデータを保持している配信サーバ１、２、３、４のマシンＩＤ、アドレスを添付した保持要求を送信し、この保持要求を受信した配信サーバ１、２、３、４が保持要求内のアドレスに対応する配信サーバ１、２、３、４へそのデータの送信要求を送信することによって、送信要求したデータを保持するように構成してもよい。
【０１２６】
かかる構成にした場合、制御部１０１は、検出手段によってコンテンツ情報を保持する配信サーバ数が減少したことが検出されると、当該コンテンツ情報を保持していない配信サーバ当該コンテンツ情報の保持要求を送信する調整手段として機能することとなる。
【０１２７】
また、ステップS07において、制御部１０１は、データ重複数が理想数よりも大きいか否かを判断し、データ重複数が理想数よりも大きいと判断した場合に（ステップS07：YES）、処理をステップS08へ移し、データ重複数が理想数以下であると判断した場合に（ステップS07：NO）、処理をステップS06へ移す。
【０１２８】
ステップS08において、制御部１０１は、ステップS02で選択したデータを保持する配信サーバ１、２、３、４の中から、（データ重複数―理想数）台の配信サーバ１、２、３、４を選択する処理を行い、その後、処理をステップS09へ移す。
【０１２９】
ステップS09において、制御部１０１は、ステップS08で選択した配信サーバ１、２、３、４に、ステップS02で選択したデータの削除要求を送信する処理を行い、その後、処理をステップS06へ移す。
【０１３０】
このように、制御部１０１は、検出手段によってコンテンツ情報を保持する配信サーバの数が増加したことが検出されると、当該コンテンツ情報を保持している配信サーバに当該コンテンツ情報の削除要求を送信する調整手段として機能する。
【０１３１】
次に、ステップS06において、制御部１０１は、対象となる全てのデータについて処理を行ったか否かの判断を行う。ここで、制御部１０１は、当該調整サーバが管理している全ての種類のコンテンツ情報について、この重複数調整処理におけるステップS01及びステップS06以外の処理を実行したか否かの判断を行う。
【０１３２】
そして、制御部１０１は、全てのデータについて処理を行ったと判断した場合に（ステップS06：YES）、処理をステップS01へ移し、全てのデータに対して処理を行っていないと判断した場合に（ステップS06：NO）、処理をステップS02へ移す。
【０１３３】
このように、本実施形態では、制御部１０１が、検出手段によってコンテンツ情報を保持する配信サーバの数が減少したことが検出されると、当該コンテンツ情報を保持している配信サーバに複製要求を送信して、その複製したコンテンツ情報を、当該コンテンツ情報を保持していない配信サーバへ送信させて保持させ、検出手段によってコンテンツ情報を保持している配信サーバの数が増加したことが検出されると、当該コンテンツ情報を保持している配信サーバから当該コンテンツ情報を削除させる調整手段として機能するのである。
【０１３４】
[１．８．配信サーバの動作]
次に、配信サーバ１、２、３、４の動作について、図１７〜図１９を参照して説明する。図１７は、調整サーバ５から削除要求を受信したときに配信サーバ１、２、３、４の制御部２０１が実行する削除処理を示すフローチャートであり、図１８は、調整サーバ５から複製要求を受信したときに配信サーバ１、２、３、４の制御部２０１が実行する複製処理を示すフローチャートであり、図１９は、他の配信サーバ１、２、３、４から複製されたデータを受信した配信サーバ１、２、３、４の制御部２０１が実行する受信処理を示すフローチャートである。
【０１３５】
配信サーバ１、２、３、４の制御部（以下、単に「制御部２０１」という。）は、調整サーバ５からデータの削除要求を受信すると、図１７に示すように、当該削除要求に対応するデータＩＤが割り当てられた対象データをＨＤＤ２０３から削除する処理を行い（ステップS11）、その後、この削除処理を終了する。
【０１３６】
このように制御部２０１は、削除要求を受信すると、当該削除要求の対象となるコンテンツ情報をコンテンツ情報記憶手段から削除する削除手段として機能する。
【０１３７】
また、制御部２０１は、調整サーバ５からデータの複製要求を受信すると、図１８に示すように、当該複製要求に対応するデータＩＤが割り当てられた対象データを保持していない適当な他の配信サーバ１、２、３、４を１台選択する処理を行い（ステップS12）、その後、処理をステップS13へ移す。
【０１３８】
このステップS12で配信サーバ１、２、３、４を選択するときの方法としては、たとえば、任意の配信サーバ１、２、３、４へ対象データを保持しているか否かを確認するメッセージを送信し、その返信メッセージに基づいて選択する方法、それ以外に、調整サーバ５から対象データを保持していない配信サーバ１、２、３、４のアドレスをデータの複製要求と共に送信してもらう方法、対象データのルートノードに、当該対象データを保持していない配信サーバのアドレスを送信してもらう方法等、任意の方法を用いることができる。
【０１３９】
次に、ステップS13において、制御部２０１は、対象データを複製した後、その複製した対象データを、ステップS12で選択した配信サーバ１、２、３、４へ送信する処理を行い、その後、この複製処理を終了する。
【０１４０】
このように、制御部２０１は、複製要求を受信すると当該複製要求の対象となるコンテンツ情報を複製する複製手段として機能する。
【０１４１】
また、制御部２０１は、他の配信サーバ１、２、３、４から前述の複製処理（図１８参照）で複製した対象データを受信すると、図１９に示すように、受信した対象データをＨＤＤ２０３に記憶する処理を行い（ステップS14）、その後、この受信処理を終了する。
【０１４２】
このように、制御部２０１は、他の配信サーバからコンテンツ情報を取得すると、そのコンテンツ情報をコンテンツ情報記憶手段に記憶する取得手段として機能する。
【０１４３】
また、調整サーバ５が対象データを保持する配信サーバ１、２、３、４に複製要求を送信する構成ではなく、調整サーバ５が対象データを保持しない配信サーバ１、２、３、４へ前述の保持要求を送信する構成とした場合には、配信サーバ１、２、３、４の制御部２０１が、保持要求を受信すると、当該保持要求の対象となるコンテンツ情報を保持する配信サーバから当該コンテンツ情報を取得してコンテンツ情報記憶手段に記憶する取得手段として機能する。
【０１４４】
[１．９．変形例における調整サーバの動作]
上記第１実施形態の情報配信システムＳでは、調整サーバ５がサーバ間ＤＨＴネットワークＳＤに参加している全ての配信サーバ１、２、３、４に保持されているコンテンツ情報を定期的に検出して、仮想ストレージにおけるコンテンツ情報の重複数を調整するように構成しているが、第１実施形態の変形例として、調整サーバ５がサーバ間ＤＨＴネットワークＳＤに参加している全ての配信サーバ１、２、３、４について、動作しているか否かだけをまず調査して、動作してない配信サーバ１、２、３、４を検出したときにだけ、仮想ストレージにおけるコンテンツ情報の重複数を調整するように構成してもよい。
【０１４５】
かかる構成とすることによって、調整サーバ５の処理負荷を低減することができる。
【０１４６】
ここで、この変形例における調整サーバ５の動作について説明する。図２０、図２１は、調整サーバ５の動作内容の一例を示すフローチャートである。ここでは、本実施形態の情報配信システムＳにおいて、仮想ストレージにおけるコンテンツ情報の重複数を調整するために調整サーバ５が実行する処理について説明し、その他の処理については省略している。
【０１４７】
調整サーバ５の制御部（以下、単に「制御部１０１」という。）は、電源が投入されている間、図２０に示す重複数増加処理を定期的に繰り返し実行する。
【０１４８】
制御部１０１は、この重複数増加処理を開始すると、図２０に示すように、まず、サーバ間ＤＨＴネットワークＳＤに参加している全ての配信サーバ１、２、３、４について動作状態を調査する処理行い（ステップS21）、その後、処理をステップS22へ移す。
【０１４９】
次に、ステップS22において、制御部１０１は、ステップS21で行った調査の結果、全ての配信サーバ１、２、３、４が動作していると判断した場合に（ステップS22：YES）、処理をステップS21へ移し、全ての配信サーバ１、２、３、４の中で動作していない配信サーバ１、２、３、４があると判断した場合に（ステップS22：NO）、処理をステップS23へ移す。
【０１５０】
ステップS23において、制御部１０１は、動作していない配信サーバ１、２、３、４（複数台でもよい）が保持していたデータの種類と不足数とを、自装置の調整テーブルを参照して、当該テーブルから取得する処理を行い、その後、処理をステップS24へ移す。
【０１５１】
次に、ステップS24において、制御部１０１は、ステップS23で取得したデータの中から１種類のデータを選択する処理を行い、その後、処理をステップS25へ移す。
【０１５２】
次に、ステップS25において、制御部１０１は、ステップS25で選択したデータを保持している配信サーバ１、２、３、４からデータの不足数の台数分だけ配信サーバ１、２、３、４を選択する処理を行い、その後、処理をステップS26へ移す。
【０１５３】
次に、ステップS26において、制御部１０１は、ステップS26で選択した各配信サーバ１、２、３、４へ、ステップS24で選択したデータの複製要求を送信する処理を行い、その後、処理をステップS27へ移す。
【０１５４】
次に、ステップS27において、制御部１０１は、自装置の調整テーブルを参照して、当該テーブルを更新する処理を行い、その後、処理をステップS28へ移す。
【０１５５】
次に、ステップS28において、制御部１０１は、対象となる全てのデータについて処理を行ったか否かを判断する。ここで、制御部１０１は、当該調整サーバが管理している全ての種類のコンテンツ情報について、この重複数調整処理におけるステップS24〜ステップS27の処理を実行したか否かの判断を行う。
【０１５６】
そして、制御部１０１は、全てのデータについて処理を行ったと判断した場合に（ステップS28：YES）、処理をステップS21へ移し、全てのデータについて処理を行っていないと判断した場合に（ステップS28:NO）、処理をステップS24へ移す。
【０１５７】
また、この制御部１０１は、配信サーバ１、２、３、４からデータ作成通知を受信すると、図２１に示す重複数減少処理を実行する。
【０１５８】
制御部１０１は、配信サーバ１、２、３、４から新たにデータを保持したことを示すデータ作成通知を受信すると、図２１に示すように、まず、自装置の調整テーブルを参照し、当該テーブルを更新する処理を行い（ステップS31）、その後、処理をステップS32へ移す。
【０１５９】
次に、ステップS32において、制御部１０１は、受信したデータ作成通知に対応する対象データの重複数が理想数より大きいか否かの判断を行い、理想数よりも大きいと判断した場合に（ステップS32：YES）、処理をステップS33へ移し、理想数以下であると判断した場合に（ステップS32：NO）、この重複数減少処理を終了する。
【０１６０】
また、ステップS33において、制御部１０１は、受信したデータ作成通知に対応する対象データを保持している配信サーバ１、２、３、４から（データ重複数―理想数）台の配信サーバ１、２、３、４を選択する処理を行い、その後、処理をステップS34へ移す。
【０１６１】
次に、ステップS34において、制御部１０１は、ステップS33で選択した各配信サーバ１、２、３、４へ、受信したデータ作成通知に対応するデータを削除させる削除要求を送信する処理を行い、その後、この重複数減少処理を終了する。
【０１６２】
[１．９．１．変形例における配信サーバの動作]
次に、上記変形例における配信サーバ１、２、３、４の動作について説明する。
【０１６３】
この変形例において、配信サーバ１、２、３、４の制御部（以下、単に、「制御部２０１」という。）は、調整サーバ５からデータの削除要求を受信すると、図１７に示した削除処理と同様の処理を実行する。すなわち、制御部２０１は、削除要求に対応するコンテンツ情報を自装置のＨＤＤ２０３から削除する処理を行う。
【０１６４】
また、この変形例において、制御部２０１は、調整サーバからデータの複製要求を受信すると、図１８に示した複製処理と同様の処理を実行する。すなわち、制御部２０１は、複製要求に対応するコンテンツ情報を複製する処理を行う。
【０１６５】
また、この変形例において、制御部２０１は、他の配信サーバ２、３、４から複製されたデータを受信すると、図２２に示す受信処理を実行する。
【０１６６】
この受信処理を開始すると、制御部２０１は、図２２に示すように、まず、受信したデータをＨＤＤ２０３へ記憶する処理を行い（ステップS41）、その後、処理をステップS42へ移す。
【０１６７】
次に、ステップS42において、制御部２０１は、調整サーバ５へステップS41でデータを記憶したことを示すデータ作成通知を送信する処理を行い、その後、この受信処理を終了する。
【０１６８】
[１．１０．配信サーバがコンテンツ情報を配信する際の動作]
また、配信サーバ１、２、３、４の制御部２０１（以下、単に「制御部２０１」という。）は、配信要求を送信したユーザ端末１０へコンテンツデータを配信（送信）する際、図２３（ａ）〜（ｂ）に示す情報送信処理（１）、（２）、又は、図２３（ｃ）〜（ｄ）に示す情報送信処理（３）、（４）を実行する。
【０１６９】
情報送信処理（１）、（２）を実行するように配信サーバ１、２、３、４を構成した場合に、制御部２０１は、ユーザ端末１０からコンテンツ情報の配信要求を受信すると、図２３（ａ）に示すように、まず、自装置が受信した配信要求に対応するデータ（対象データ）を保持しているか否かの判断を行い（ステップS71）、保持していると判断した場合に（ステップS71：YES）、処理をステップS73へ移し、保持していないと判断した場合に（ステップS71：NO）、処理をステップS72へ移す。
【０１７０】
ステップS73において、制御部２０１は、配信要求を送信してきたユーザ端末１０へデータ（配信要求に対応するコンテンツ情報）をＨＤＤ２０３から取り出して送信する処理を行い、その後、この情報送信処理（１）を終了する。
【０１７１】
一方、ステップS72において、制御部２０１は、対象データを保持する他の配信サーバ１、２、３、４を検索するためのメッセージを作成し、このメッセージにユーザ情報として、配信要求に対応するデータＩＤ、及び、その配信要求を送信してきたユーザ端末１０の端末識別情報と所在情報とを格納して、ＤＨＴネットワークのルールに従って送信する処理を行い、その後、この情報送信処理を終了する。
【０１７２】
また、ステップS72の処理により送信されたメッセージは、ＤＨＴネットワークのルール（図１１に示す登録メッセージを転送するときと同じルール）に従って、複数の配信サーバ１、２、３、４により転送され、最終的に配信要求に対応するデータを保持している配信サーバ１、２、３、４に受信されることとなる。
【０１７３】
そして、配信要求に対応するデータを保持している配信サーバ１、２、３、４が、ステップS72で送信されたメッセージを受信すると、図２３（ｂ）に示す情報送信処理（２）を実行する。
【０１７４】
この情報送信処理（２）を開始すると、制御部２０１は、メッセージからユーザ情報を取り出す処理を行い（ステップS74）、その後、処理をステップS75へ移す。
【０１７５】
次に、ステップS75において、制御部２０１は、メッセージに格納（記載）されている端末識別情報に対応するユーザ端末１０へデータをＨＤＤ２０３から取り出して送信する処理を行い、その後、この情報送信処理（２）を終了する。
【０１７６】
また、情報送信処理（３）、（４）を実行するように配信サーバ１、２、３、４を構成した場合に、制御部２０１は、図２３（ｃ）に示すように、まず、受信した配信要求に対応するデータ（対象データ）を保持しているか否かの判断を行い（ステップS81）、保持していると判断した場合に（ステップS81：YES）、処理をステップS84へ移し、保持していないと判断した場合に（ステップS81：NO）、処理をステップS82へ移す。
【０１７７】
ステップS84において、制御部２０１は、配信要求を送信してきたユーザ端末１０へデータ（配信要求に対応するコンテンツ情報）をＨＤＤ２０３から取り出して送信する処理を行い、その後、この情報送信処理（３）を終了する。
【０１７８】
一方、ステップS82において、制御部２０１は、対象データを保持する他の配信サーバ１、２、３、４をＤＨＴネットワークを用いて検索する処理を行い、その後、処理をステップS83へ移す。
【０１７９】
次に、ステップS83において、制御部２０１は、ステップS82で行った検索により発見した配信サーバ１、２、３、４にユーザ端末１０を紹介するメッセージを送信する処理を行い、その後、この情報送信処理（３）を終了する。
【０１８０】
また、ステップS83の処理により送信されたユーザ端末１０を紹介するメッセージを受信した配信サーバの制御部２０１は、図２３（ｄ）に示す情報送信処理（４）を実行する。
【０１８１】
この情報送信処理（４）を開始すると、制御部２０１は、図２３（ｄ）に示すように、ステップS83で送信されたメッセージに格納（記載）されているユーザ端末１０にデータをＨＤＤから取り出して送信する処理を行い、その後、この情報送信処理（４）を終了する。
【０１８２】
このように、配信サーバ１、２、３、４の制御部２０１は、ユーザ端末１０からの要求に応じたコンテンツ情報を、コンテンツ情報記憶手段であるＨＤＤ２０３から取り出して送信するコンテンツ情報送信手段として機能する。
【０１８３】
[２．第２実施形態]
次に、本発明の第２実施形態について説明する。なお、以下の説明において、第１実施形態の情報配信システムＳの構成要件と同様の構成要件については、同一の符号を付して説明する。
【０１８４】
上記第１実施形態の情報配信システムＳでは、調整サーバ５が当該情報配信システムＳにおけるコンテンツ情報の重複数を調整するように構成したが、第２実施形態の情報配信システムＳでは、調整サーバ５に替わって、ルートノードとして機能している配信サーバ１、２、３、４が自装置で管理しているコンテンツ情報に関して、その重複数を調整するように構成している。
【０１８５】
あるコンテンツ情報のルートノードとなっている配信サーバ１、２、３、４は、自装置が管理しているコンテンツ情報に関しては、それぞれ、そのコンテンツ情報を保持している配信サーバ１、２、３、４のマシンＩＤ及びアドレスが記載されたインデックス情報を保持している。
【０１８６】
そのため、ルートノードとなっている配信サーバ１、２、３、４は、自装置が保持するインデックス情報を参照することによって、自装置がルートノードとなっているコンテンツ情報を保持する配信サーバ１、２、３、４が、サーバ間ＤＨＴネットワークＳＤから離脱したこと、及び再びサーバ間ＤＨＴネットワークＳＤに復帰したことを検出することができ、これにより、自装置が管理している特定のコンテンツ情報に関してのみ、仮想ストレージ内における重複数を検出することができる。
【０１８７】
そして、第２実施形態の情報配信システムＳでは、このことを利用して、各コンテンツ情報のルートノードに、それぞれ、そのルートノードが管理しているコンテンツ情報の仮想ストレージ内における重複数を監視させ、重複数が理想数よりも少なくなった場合に、その重複数を増加させ、重複数が理想数よりも多い場合に、その重複数を減少させる構成としている。
【０１８８】
かかる構成とすることによって、情報配信システムＳに調整サーバ５を設ける必要がなくなり、当該情報配信システムＳを構築するための設備費を低減することができる。
【０１８９】
［２．１．ルートノードによるコンテンツ情報の重複数調整方法］
ここで、第２実施形態に係る情報配信システムＳにおける仮想ストレージ内でのコンテンツ情報の重複数調整方法について、図２４〜図２６を参照して説明する。
【０１９０】
図２４〜図２６は、ルートノードとして機能する配信サーバ１、２、３、４によるコンテンツ情報の重複数調整方法を示す説明図である。
【０１９１】
本実施形態の情報配信システムＳには、第１実施形態と同様に、データＡ、データＢ、データＣ、データＤという４種類のコンテンツ情報が投入されている場合を例に挙げて説明する。
【０１９２】
また、各データＡ、Ｂ、Ｃ、Ｄには、それぞれＡ１、Ｂ１、Ｃ１、Ｄ１というデータＩＤが割り当てられている。
【０１９３】
また、ここでも、仮想ストレージ内に存在する同一のコンテンツ情報の理想数を「２」（重複数「１」）としており、各ルートノードは、情報配信システムＳ内に、自装置が管理しているコンテンツ情報を保持している配信サーバ１、２、３、４が２台存在するように調整を行うようにしている。
【０１９４】
各配信サーバ１、２、３、４には、それぞれ固有のサーバ識別情報として、１ａ、２ａ、３ａ、４ａというマシンＩＤが割り当てられ、それぞれにネットワーク上における固有の所在情報として、１ｂ、２ｂ、３ｂ、４ｂというアドレスが割り当てられている。
【０１９５】
また、本実施形態では、配信サーバ１がデータＩＤとしてＣ１が割り当てられたデータＣのルートノードとして機能しており、配信サーバ２がデータＩＤとしてＤ１が割り当てられたデータＤのルートノードとして機能しており、配信サーバ３がデータＩＤとしてＡ１が割り当てられたデータＡのルートノードとして機能しており、配信サーバ４がデータＩＤとしてＢ１が割り当てられたデータＣのルートノードとして機能しているものとする。
【０１９６】
そして、各コンテンツ情報のルートノードである配信サーバ１、２、３、４は、それぞれ、自装置が管理しているコンテンツ情報に関するインデックス情報と、サーバ間ＤＨＴとを保持している。
【０１９７】
また、本実施形態においても、ルートノードとなっている配信サーバ１、２、３、４がサーバ間ＤＨＴネットワークＳＤから離脱した場合、サーバ間ＤＨＴネットワークＳＤにおいて、離脱した配信サーバ１、２、３、４とネットワーク上で最も近い配信サーバ１、２、３、４が、前記離脱した配信サーバ１、２、３、４が管理していたコンテンツ情報のルートノードとなる。
【０１９８】
たとえば、データＣのルートノードである配信サーバ１がサーバ間ＤＨＴネットワークＳＤから離脱した場合、マシンＩＤを決定した際のＩＤ空間において、配信サーバ１のマシンＩＤと最も近いマシンＩＤ「２ａ」が割り当てられている他の配信サーバ２がデータＣのルートノードとなる。
【０１９９】
そして、サーバ間ＤＨＴネットワークＳＤを離脱した配信サーバ１、２、３、４が再度サーバ間ＤＨＴネットワークＳＤに復帰した場合には、離脱前に管理していたコンテンツ情報のルートノードに戻るように構成している。
【０２００】
今、図２４（ａ）に示す状態において、配信サーバ１は、データＡとデータＢとを保持しており、配信サーバ２は、データＢとデータＣとを保持しており、配信サーバ３は、データＣとデータＤとを保持しており、配信サーバ４は、データＤとデータＡとを保持している。
【０２０１】
ここで、図２４（ｂ）に示すように、１台の配信サーバ２がサーバ間ＤＨＴネットワークＳＤから離脱すると、仮想ストレージ内に、データＢとデータＣとがそれぞれ１つずつしか存在せず、理想数よりも少ない状態となる。
【０２０２】
このとき、データＤのルートノードである配信サーバ２が存在しなくなるので、配信サーバ３がデータＡ及びデータＤのルートノードとなる。
【０２０３】
そして、データＣのルートノードである配信サーバ１のインデックス情報から、データＣを保持していた配信サーバ２のマシンＩＤとアドレスが削除され、データＢのルートノードである配信サーバ４のインデックス情報から、データＣを保持していた配信サーバ２のマシンＩＤとアドレスが削除される。
【０２０４】
このようにインデックス情報が更新されると、データＣのルートノードである配信サーバ１は、インデックス情報を参照して、データＣを保持している配信サーバ３へ、データＣの複製要求Ｔ２１を送信する。
【０２０５】
配信サーバ３は、この複製要求Ｔ２１を受信すると、データＣを複製したデータＴ２２を、他の配信サーバ４へ送信する。このとき、配信サーバ３は、自装置以外の任意の配信サーバへ複製したデータＴ２２を送信することができるが、好ましくは、現時点でデータＣを保持していない配信サーバへ送信する。
【０２０６】
こうした場合、１台の配信サーバで同じコンテンツ情報を複数保持することがなく、各配信サーバ１、２、３、４のＨＤＤ２０３の空き領域を有効に利用することができるだけでなく、１台の配信サーバがサーバ間ＤＨＴネットワークＳＤから離脱したときに、同一のコンテンツ情報が一度に複数存在しなくなる事態の発生を防止することができる。
【０２０７】
この場合、複製要求Ｔ２１を送信する配信サーバ（ここでは、配信サーバ１）が、現時点でデータＣを保持している配信サーバのマシン情報又はアドレスを複製要求に格納して送信することにより、複製要求を受信した配信サーバ（ここでは、配信サーバ３）が、複製要求に格納されていない配信サーバ（ここでは、配信サーバ４）を送信先に選択して、複製したデータＴ２２を送信することができる。
【０２０８】
その後、複製されたデータＴ２２を受信した配信サーバ４は、図２５（ｂ）に示すように、受信したデータＴ２２を記憶することによって、データＣを保持することとなる。
【０２０９】
そして、新たにデータＣを保持した配信サーバ４は、ＤＨＴのルールに従って、データＣのルートノードである配信サーバ１へ、データＣを保持したことを示すデータ作成通知Ｔ２３を送信する。
【０２１０】
このデータ作成通知Ｔ２３を受信すると、配信サーバ１は、インデックス情報を図２５（ｂ）に示すように更新する。
【０２１１】
また、図２５（ａ）に示した状態において、図示は省略しているが、データＢのルートノードである配信サーバ４から、現時点でデータＢを保持している配信サーバ１へも、データＢの複製要求が送信され、この複製要求を受信した配信サーバ１から複製されたデータＢが配信サーバ３へ送信される。
【０２１２】
その結果、仮想ストレージ内に、データＡ、Ｂ、Ｃ、Ｄが全て理想数である２つずつ存在する状態となる。
【０２１３】
このように、本実施形態では、各ルートノード（配信サーバ１、２、３、４）が、自装置で管理しているコンテンツ情報について、その数が減少したときに、減少したコンテンツ情報を保持している配信サーバ１、２、３、４へ複製要求を送信し、この複製要求を受信した配信サーバ１、２、３、４が、当該複製要求に対応するコンテンツ情報を複製して、減少したコンテンツ情報を保持してない配信サーバ１、２、３、４へ送信するので、第１実施形態のように調整サーバ５を設けることなく、当該情報配信システムＳにおけるコンテンツ情報の数を理想数に近づけることができる。
【０２１４】
さらに、その後、図２６に示すように、一旦サーバ間ＤＨＴネットワークＳＤから離脱した配信サーバ２が復帰した場合、仮想ストレージ内にデータＢとデータＣとが理想数よりも多い３つずつ存在することとなる。
【０２１５】
この場合、データＣのルートノードである配信サーバ１は、自装置に保持しているインデックス情報を参照して、現在データＣを保持している配信サーバ（ここでは、配信サーバ２、３、４）の中から、一台の配信サーバ４を選択して、データＣの削除要求Ｔ２４を送信する。
【０２１６】
そして、この削除要求Ｔ２４を受信した配信サーバ４は、自装置のＨＤＤ２０３からデータＣを削除する。
【０２１７】
また、このとき、データＢのルートノードである配信サーバ４は、現時点でデータＢを保持している配信サーバ３へ、データＢの削除要求Ｔ２４を送信する。
【０２１８】
そして、この削除要求Ｔ２４を受信した配信サーバ３は、自装置のＨＤＤ２０３からデータＢを削除する。
【０２１９】
その結果、当該情報配信システムＳは、図２４に示した状態に戻り、４種類の各コンテンツ情報（データＡ、Ｂ、Ｃ、Ｄ）が共に理想数である２つずつ存在する状態となる。
【０２２０】
このように、本実施形態では、各ルートノード（配信サーバ１、２、３、４）が、自装置で管理しているコンテンツ情報について、その数が増加したときに、増加したコンテンツ情報を保持している配信サーバ１、２、３、４へ削除要求を送信し、この削除要求を受信した配信サーバ１、２、３、４が、当該削除要求に対応するコンテンツ情報を削除するので、第１実施形態のように調整サーバ５を設けることなく、当該情報配信システムＳにおけるコンテンツ情報の数を理想数に近づけることができる。
【０２２１】
[２．２．配信サーバの構成]
本実施形態の配信サーバ１、２、３、４は、その基本的構成に関して、図１４に示した第１実施形態の配信サーバ１、２、３、４と同様の構成をしているが、制御部２０１のＲＯＭに記憶されている情報処理プログラムの内容だけが、第１実施形態とは異なる。
【０２２２】
すなわち、本実施形態の配信サーバ１、２、３、４の制御部２０１が備えるＲＯＭには、第１実施形態の制御部２０１のＲＯＭに記憶されている情報処理プログラムに加えて、所定周期で定期的にインデックス情報を参照し、その参照結果に基づいて、上記複製要求を送信するプログラムや上記削除要求を送信するプログラム、また、上記データ作成通知を送信するプログラム等、自装置が管理しているコンテンツ情報の数を理想数に近づけるために実行する各種プログラムが記憶されている。
【０２２３】
そして、本実施形態では、制御部２０１がこれら各種プログラムを実行することによって、サーバ識別情報記憶手段に記憶したインデックス情報に基づいて、自装置のサーバ識別情報に対応するコンテンツ情報識別情報が割り当てられたコンテンツ情報を保持する配信サーバの数を検出する検出手段と、この検出手段による検出結果に応じて、自装置のサーバ識別情報に対応するコンテンツ識別情報が割り当てられたコンテンツ情報を保持する配信サーバの数を調整する調整手段として機能する。
【０２２４】
[２．３．ルートノードとしての配信サーバの動作]
ここで、特定のコンテンツ情報のルートノードとして機能している配信サーバ１、２、３、４の動作について、図２７を参照して説明する。図２７は、ルートノードの動作内容の一例を示すフローチャートである。なお、以下の処理は、ルートノードの制御部２０１が上述した各手段等として機能することによって実行されるものである。ここでは、本実施形態の情報配信システムＳにおいて、複数の配信サーバ１、２、３、４に分散して保持させているコンテンツ情報の重複数を調整するためにルートノードの制御部２０１が実行する処理について説明し、その他の処理については省略している。
【０２２５】
ルートノードの制御部（以下、単に「制御部２０１」という。）は、電源が投入されている間、所定周期で定期的に図２７に示す重複数増加処理を繰り返し実行する。
【０２２６】
制御部２０１は、この重複数増加処理を開始すると、図２７に示すように、まず、自装置がルートノードとして管理している特定（複数可）のデータを１つ以上保持している配信サーバ１、２、３、４について、動作しているか否かを調査する処理を行い（ステップS51）、その後、処理をステップS52へ移す。
【０２２７】
次に、ステップS52において、制御部２０１は、ステップS51の調査結果に基づいて、ステップS51で調査対象となった全ての配信サーバ１、２、３、４が動作中であるか否かの判断を行い、全ての配信サーバ１、２、３、４が動作中であると判断した場合に（ステップS52:YES）、処理をステップS51へ移し、一部の配信サーバ１、２、３、４が動作していないと判断した場合に（ステップS52：NO）、処理をステップS53へ移す。なお、このステップS53の処理は、図２０に示したステップS23の処理と同様の処理である。
【０２２８】
このステップS53以降の処理において、制御部２０１は、図２７に示すごとく、図２０に示したステップS24〜ステップS28と同様の処理内容のステップS54〜S58の処理を行い、ステップS58において、対象となる全てのデータについて処理を行ったと判断した場合に（ステップS58：Yes）、処理をステップS51へ移す。
【０２２９】
また、このルートノードの制御部２０１は、他の配信サーバ１、２、３、４からのデータ作成通知を受信した場合に、重複数減少処理を実行する。
【０２３０】
このルートノードの制御部２０１が実行する重複数減少処理は、図２１に示した第１実施形態における重複数減少処理と同様の処理であるため、ここでは、その説明を省略する。
【０２３１】
〔２．４．配信サーバの動作〕
上記ルートノードとして機能している配信サーバ１、２、３、４を含め、サーバ間ＤＨＴネットワークＳＤに参加している全ての配信サーバ１、２、３、４の制御部２０１は、自装置以外の他のルートノードからデータの削除要求を受信した場合、図１７に示した第１実施形態の削除処理と同様の処理を実行する。
【０２３２】
また、自装置以外のルートノードからデータの複製要求を受信した場合に、制御部２０１は、図１８に示した第１実施形態の複製処理と同様の処理を実行する。
【０２３３】
また、他の配信サーバ１、２、３、４が複製したデータを受信した場合に、制御部２０１は、図２８に示す受信処理を実行する。
【０２３４】
この受信処理を開始すると、制御部２０１は、受信したデータを自装置のＨＤＤ２０３に記憶して保持すると共に、当該保持したデータのルートノードにデータ作成通知を送信する処理を行い（ステップS61）、その後、この受信処理を終了する。
【０２３５】
[３．第３実施形態]
次に、本発明の第３実施形態について、図２９を参照して説明する。図２９は、第３実施形態に係る情報配信システムＳの概要を示す説明図である。なお、以下の説明において、第１及び第２実施形態の情報配信システムＳの構成要件と同様の構成要件については、同一の符号を付して説明する。
【０２３６】
第３実施形態に係る情報配信システムＳは、図２９に示すように、第１及び第２実施形態と同様に、サーバ間ＤＨＴネットワークＳＤを構築する互いに接続された複数の配信サーバ１、２、３、４と、これら複数の配信サーバ１、２、３、４からコンテンツ情報を受信する複数のユーザ端末１０とを備えている。
【０２３７】
また、本実施形態に係る各配信サーバ１、２、３、４と各ユーザ端末１０とには、それぞれ固有の装置識別情報（マシンＩＤ）と所在情報（アドレス）とが割り当てられている。
【０２３８】
本実施形態においては、ルートノードとして機能している配信サーバ１、２、３、４が、上記第２実施形態において説明した重複数調整方法により、仮想ストレージ内におけるコンテンツ情報の重複数を調整して、当該情報配信システムＳに投入する全てのコンテンツ情報を補償するように構成している。
【０２３９】
さらに、この情報配信システムＳは、サーバ間ＤＨＴネットワークＳＤとは別に、全ての配信サーバ１、２、３、４と全てのユーザ端末１０とが互いに接続されて構築されたユーザ間ＤＨＴネットワークＹＤを備えている。
【０２４０】
つまり、本実施形態の情報配信システムＳでは、ユーザ間ＤＨＴネットワークＹＤに参加している全ての配信サーバ１、２、３、４とユーザ端末１０とが、それぞれコンテンツ情報のルートノードとなりえると共に、コンテンツ情報の取得を要求する取得要求を送信してきたユーザ端末１０に対してコンテンツ情報を配信できるように構成している。
【０２４１】
そのため、各配信サーバ１、２、３、４は、コンテンツ情報等が記憶されたデータストレージとサーバ間用ＤＨＴとユーザ間用ＤＨＴとを保持しており、各ユーザ端末１０は、受信したコンテンツ情報を記憶するＨＤＤ３０３等のデータストレージと、ユーザ間ＤＨＴを保持している。
【０２４２】
[３．１．配信サーバの構成]
ここで、本実施形態に係る配信サーバ１、２、３、４の構成について説明する。本実施形態の配信サーバ１、２、３、４は、その基本的構成に関して、図１４に示した第２実施形態の配信サーバ１、２、３、４と同様の構成をしているが、制御部２０１のＲＯＭに記憶されている情報処理プログラムの内容と、記憶部２０２に保持されている情報の内容とだけが第２実施形態とは異なる。
【０２４３】
すなわち、本実施形態の配信サーバ１、２、３、４の記憶部２０２には、第２実施形態の配信サーバ１、２、３、４が保持しているインデックス情報とサーバ間ＤＨＴに加えて、ユーザ間ＤＨＴが保持されている。
【０２４４】
また、制御部２０１のＲＯＭには、第２実施形態の制御部２０１のＲＯＭに記憶されている情報処理プログラムに加えて、ユーザ間ＤＨＴネットワークＹＤにおけるユーザ間ＤＨＴを用いた各種メッセージの送受信を行うためのプログラムが記憶されている。
【０２４５】
そして、各配信サーバ１、２、３、４の制御部２０１は、ＲＯＭに記憶されているこれらのプログラムを実行することによって、ＨＤＤ２０３に記憶したコンテンツ情報に割り当てられたデータＩＤに対応するマシンＩＤを有する装置（配信サーバ１、２、３、４又はユーザ端末１０）へ自装置の所在情報を送信する第２の所在情報送信手段として機能する。
【０２４６】
また、制御部２０１は、自装置のマシンＩＤに対応するデータＩＤが割り当てられたコンテンツ情報を保持する装置（配信サーバ１、２、３、４又は他のユーザ端末１０）の所在情報（インデックス情報）を記憶する装置情報記憶手段を備えている。
【０２４７】
すなわち、この配信サーバ１、２、３、４は、装置情報記憶手段に記憶したインデックス情報に対応するコンテンツ情報のルートノードとなる。
【０２４８】
[３．２．ユーザ端末の構成]
次に、本実施形態に係るユーザ端末１０の構成について説明する。本実施形態のユーザ端末１０は、その基本的構成に関して、図１５に示した第１実施形態のユーザ端末と同様の構成をしているが、制御部３０１のＲＯＭに記憶されている情報処理プログラムの内容と、記憶部３０２に保持されている情報の内容とが第１実施形態とは異なる。
【０２４９】
すなわち、本実施形態のユーザ端末１０の記憶部３０２には、第１実施形態のユーザ端末１０が保持するサーバマシンリストに換えて、ユーザ間ＤＨＴを保持しており、制御部３０１のＲＯＭには、ユーザ間ＤＨＴを用いて各種メッセージの送受信を、ユーザ間ＤＨＴネットワークＹＤを介して行うためのプログラムが記憶されている。
【０２５０】
さらに、この制御部３０１のＲＯＭには、他のユーザ端末１０又は配信サーバ１、２、３、４からコンテンツ情報を受信して、自装置のＨＤＤ３０３に順次記憶保持しておくためのプログラムや、他のユーザ端末１０からコンテンツ情報の取得要求を受信した場合に、当該取得要求に対応したコンテンツ情報をＨＤＤ３０３から取り出して、その取得要求を送信してきた他のユーザ端末１０へ送信するための各種情報処理プログラムを記憶している。
【０２５１】
すなわち、本実施形態のユーザ端末１０では、ＨＤＤ３０３がコンテンツ情報を記憶する記憶手段として機能し、ユーザ端末１０の制御部３０１が、上記情報処理プログラムを実行することによって、他の装置（他のユーザ端末１０、配信サーバ１、２、３、４）からコンテンツ情報を取得する取得手段、他の装置（他のユーザ端末１０、配信サーバ１、２、３、４）からの取得要求に応じたコンテンツ情報をＨＤＤ３０３から取り出して送信する送信手段等として機能する。
【０２５２】
また、各ユーザ端末１０の制御部３０１は、上記情報処理プログラムを実行することにより、ＨＤＤ３０３に記憶したコンテンツ情報のデータＩＤに対応するマシンＩＤを有する装置（他のユーザ端末１０又は配信サーバ１、２、３、４）へ自装置のアドレスを送信する所在情報送信手段としても機能する。
【０２５３】
また、各ユーザ端末１０は、自装置のマシンＩＤに対応するデータＩＤを保持する装置（他のユーザ端末１０又は配信サーバ１、２、３、４）の所在情報を記憶する所在情報記憶手段を備えている。
【０２５４】
[３．３．メッセージを受信したときの配信サーバの動作]
ここで、本実施形態の配信サーバ１、２、３、４の動作について説明する。ここでは、各配信サーバ１、２、３、４がサーバ間ＤＨＴネットワークＳＤ又はユーザ間ＤＨＴネットワークＹＤを介してメッセージを受信したときに実行するメッセージ対応処理について説明することとし、重複数調整処理等の他の処理については、第２実施形態と同様であるため、その説明を省略する。
【０２５５】
配信サーバ１、２、３、４の制御部（以下、単に、「制御部２０１」という。）は、他の配信サーバ１、２、３、４又はユーザ端末１０からメッセージをしたときに、図３０に示すメッセージ対応処理を実行する。
【０２５６】
他の装置からメッセージを受信すると、制御部２０１は、図３０に示すように、まず、受信したメッセージの宛先が自装置であるか否かの判断を行い（ステップS91）、自装置であると判断した場合に（ステップS91：YES）、処理をステップS92へ移し、自装置でないと判断した場合に（ステップS91：NO）、処理をステップS95へ移す。
【０２５７】
ステップS92において、制御部２０１は、受信したメッセージを解析し、その解析結果の内容に応じた処理を行い、その後、処理をステップS93へ移す。
【０２５８】
次に、ステップS93において、制御部２０１は、ステップS92で解析したメッセージに関し、新たにメッセージを送信する必要があるか否かを判断する処理を行い、必要があると判断した場合に（ステップS93：YES）、処理をステップS94へ移し、必要がないと判断した場合に（ステップS93：NO）、このメッセージ対応処理を終了する。
【０２５９】
また、ステップS94において、制御部２０１は、ＤＨＴを介してメッセージを送信する必要があるか否かを判断し、必要があると判断した場合に（ステップS94：YES）、処理をステップS95へ移し、必要がいないと判断した場合に（ステップS94：NO）、処理をステップS97へ移す。
【０２６０】
ステップS95において、制御部２０１は、ステップS92で解析したメッセージがサーバ間ＤＨＴネットワークＳＤのメッセージであるか否かの判断を行い、サーバ間ＤＨＴネットワークＳＤのメッセージであると判断した場合に（ステップS95：YES）、処理をステップS96へ移し、サーバ間ＤＨＴネットワークＳＤのメッセージでないと判断した場合に（S95：NO）、処理をステップS98へ移す。
【０２６１】
ステップS96において、制御部２０１は、サーバ間ＤＨＴネットワークＳＤからメッセージの転送先を決定する処理を行って処理をステップS97へ移す一方、ステップS98においては、ユーザ間ＤＨＴネットワークＹＤからメッセージの転送先を決定する処理を行って処理をステップS97へ移す。
【０２６２】
そして、ステップS97において、制御部２０１は、ステップS96又はステップS98で決定された転送先、若しくは、予めメッセージに格納されていた転送先へメッセージを送信する処理を行い、その後、このメッセージ対応処理を終了する。
【０２６３】
[３．４．ユーザ端末によるコンテンツ情報の取得方法]
ここで、このように構成した情報配信システムＳにおいて、各ユーザ端末１０がコンテンツ情報を取得する際の取得方法について説明する。
【０２６４】
本実施形態の情報配信システムＳにおいて、コンテンツ情報を所得しようとするユーザ端末１０は、まず、ユーザ間ＤＨＴを用いて、ユーザ間ＤＨＴネットワークＹＤに参加している他の装置（他のユーザ端末１０又は配信サーバ１、２、３、４）へ向けて取得要求を送信する。
【０２６５】
このとき、取得要求を送信するユーザ端末１０は、取得要求の中に自装置のマシンＩＤとアドレス、及び、所望のコンテンツ情報のデータＩＤを格納して送信する。
【０２６６】
この取得要求は、ユーザ間ＤＨＴネットワークＹＤを介して、当該取得要求に格納されたデータＩＤに対応するコンテンツ情報のルートノードへ受信される。
【０２６７】
この取得要求を受信した装置が他のユーザ端末１０であった場合、そのユーザ端末１０は、取得要求に格納されているデータＩＤに対応したコンテンツ情報のインデックス情報を自装置の所在情報記憶手段から取り出して、取得要求の送信基であるユーザ端末１０へ送信する。
【０２６８】
一方、取得要求を受信した装置が配信サーバ１、２、３、４であった場合、その配信サーバ１、２、３、４は、取得要求に格納されているデータＩＤに対応したコンテンツ情報のインデックス情報を自装置の装置情報記憶手段から取り出して、取得要求の送信基であるユーザ端末１０へ送信する。
【０２６９】
所望するコンテンツ情報に対応したインデックス情報を受信したユーザ端末１０は、受信したインデックス情報に記載されている装置（他のユーザ端末１０又は配信サーバ１、２、３、４）へコンテンツ情報の配信を要求するメッセージを送信して、その装置から所望のコンテンツ情報を取得する。
【０２７０】
ここでは、コンテンツ情報を取得しようとするユーザ端末１０が、ルートノードからインデックス情報を受信して、当該インデックス情報に記載されている装置へコンテンツ情報の送信を要求するようにしているが、これ以外に、たとえば、コンテンツ情報の取得要求を受信したルートノード（他のユーザ端末１０又は配信サーバ１、２、３、４）が、当該取得要求に格納されているマシンＩＤ・アドレス（取得要求の送信基のユーザ端末１０のマシンＩＤ・アドレス）を、その取得要求に対応するコンテンツ情報を保持している装置（他のユーザ端末１０又は配信サーバ１、２、３、４）へ送信して、取得要求の送信基のユーザ端末１０へコンテンツ情報の送信を要求するように構成してもよい。
【０２７１】
このように、本実施形態において、各ユーザ端末１０は、コンテンツ情報の取得を行う場合に、ユーザ間ＤＨＴネットワークＹＤを介して、コンテンツ情報の検索を行う。
【０２７２】
そのため、この実施形態における各ユーザ端末１０は、サーバ・クライアント方式を採用している情報配信システムよりも効率よくコンテンツ情報を取得することができる。
【０２７３】
すなわち、サーバ・クライアント方式を採用している情報配信システムにおいて、ユーザ端末１０は、自装置が保持しているサーバマシンリストから１台の配信サーバを選択して、コンテンツ情報の取得要求を送信するが、このとき選択した配信サーバ１がサーバ間ＤＨＴネットワークＳＤを離脱していた場合には、再度別の配信サーバに接続して取得要求を送信しなければ、当該配信要求をサーバ間ＤＨＴネットワークＳＤ上で転送させることができず、所望のコンテンツ情報を保持する配信サーバ１、２、３、４の検索に要する処理が煩雑となる。
【０２７４】
これに対して、本実施形態の情報配信システムＳにおけるユーザ端末１０は、ユーザ間ＤＨＴネットワークＹＤを介して、所望するコンテンツ情報の検索メッセージを送信するだけで、当該所望のコンテンツ情報を保持する配信サーバ又は他のユーザ端末１０を検索することができるので、その分、コンテンツ情報の検索に要する処理を簡略化することができる。
【０２７５】
また、本実施形態では、コンテンツ情報を取得しようとするユーザ端末１０は、他のユーザ端末１０から所望のコンテンツ情報を取得できないときに、当該取得できないコンテンツ情報を保持する配信サーバ１、２、３、４から取得するように構成している。
【０２７６】
すなわち、本実施形態では、ユーザ間ＤＨＴネットワークＹＤに参加している各配信サーバ１、２、３、４が、サーバ間ＤＨＴネットワークＳＤを用いて、上記第２実施形態と同様の重複数調整方法により、情報配信システムＳに投入された全てのコンテンツ情報を保障するようにしているため、仮に特定のコンテンツ情報を保持しているユーザ端末１０が一度にユーザ間ＤＨＴネットワークＹＤから離脱しても、ユーザ端末１０が特定のコンテンツ情報を検索するユーザ間ＤＨＴネットワークＹＤ上には、前記特定のコンテンツ情報を保持している配信サーバ１、２、３、４が存在することになるので、ユーザ端末１０は、確実に所望する特定のコンテンツ情報を取得できる。
【０２７７】
以上説明したように、第１〜第３実施形態に係る情報配信システムＳでは、調整サーバ５又はルートノードとして機能する配信サーバ１、２、３、４により、当該情報配信システムＳの仮想ストレージにおける同一のコンテンツ情報の数を理想数に近づけるように、仮想ストレージにおけるコンテンツ情報の重複を調整することができるので、当該情報配信システムＳに投入した全てのコンテンツ情報を配信可能に保障することができる。
【０２７８】
なお、上記第１及び第２実施形態では、各ユーザ端末１０が配信サーバ１、２、３、４からコンテンツ情報を取得するサーバ・クライアント型の情報配信システムを例に挙げて説明したが、本発明は、これに限定するものではなく、複数の配信サーバ１、２、３、４を備えた情報配信システムであれば、任意の情報配信システムＳに適用することができ、たとえば、各ユーザ端末１０によりＤＨＴネットワークが構成され、ユーザ端末１０同士でもコンテンツ情報の送受信が可能な一般ユーザによる分散ストレージシステムを用いた情報配信システムに対しても適用することができる。
【図面の簡単な説明】
【０２７９】
【図１】第１実施形態に係る情報配信システムの概要を示す説明図である。
【図２】第１実施形態に係る調整サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【図３】第１実施形態に係る調整サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【図４】第１実施形態に係る調整サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【図５】第１実施形態に係る調整サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【図６】第１実施形態に係る調整サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【図７】第１実施形態に係る調整サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【図８】サーバ間ＤＨＴネットワークの概要を示す説明図である。
【図９】サーバ間ＤＨＴネットワークの概要を示す説明図である。
【図１０】サーバ間ＤＨＴネットワークの概要を示す説明図である。
【図１１】サーバ間ＤＨＴネットワークの概要を示す説明図である。
【図１２】サーバ間ＤＨＴネットワークの概要を示す説明図である。
【図１３】調整サーバの構成を示す説明図である。
【図１４】配信サーバの構成を示す説明図である。
【図１５】ユーザ端末の構成を示す説明図である。
【図１６】第１実施形態に係る調整サーバの制御部が行う処理を示すフローチャートである。
【図１７】第１実施形態に係る配信サーバの制御部が行う処理を示すフローチャートである。
【図１８】第１実施形態に係る配信サーバの制御部が行う処理を示すフローチャートである。
【図１９】第１実施形態に係る配信サーバの制御部が行う処理を示すフローチャートである。
【図２０】第２実施形態に係る調整サーバの制御部が行う処理を示すフローチャートである。
【図２１】第２実施形態に係る調整サーバの制御部が行う処理を示すフローチャートである。
【図２２】第１実施形態の変形例に係る配信サーバの制御部が行う処理を示すフローチャートである。
【図２３】第１実施形態に係る配信サーバの制御部が行う処理を示すフローチャートである。
【図２４】第２実施形態に係る配信サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【図２５】第２実施形態に係る配信サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【図２６】第２実施形態に係る配信サーバによるコンテンツ情報の重複数調整方法を示す説明図である。
【図２７】第２実施形態に係る配信サーバの制御部が行う処理を示すフローチャートである。
【図２８】第２実施形態に係る配信サーバの制御部が行う処理を示すフローチャートである。
【図２９】第３実施形態に係る情報配信システムの概要を示す説明図である。
【図３０】第３実施形態に係る配信サーバの制御部が行う処理を示すフローチャートである。
【符号の説明】
【０２８０】
Ｓ  情報配信システム
１、２、３、４  配信サーバ
５  調整サーバ
１０  ユーザ端末
ＳＤ  サーバ間ＤＨＴネットワーク
ＹＤ  ユーザ間ＤＨＴネットワーク
【図１】
2009187141.tif 000003
【図２】
2009187141.tif 000004
【図３】
2009187141.tif 000005
【図４】
2009187141.tif 000006
【図５】
2009187141.tif 000007
【図６】
2009187141.tif 000008
【図７】
2009187141.tif 000009
【図８】
2009187141.tif 000010
【図９】
2009187141.tif 000011
【図１０】
2009187141.tif 000012
【図１１】
2009187141.tif 000013
【図１２】
2009187141.tif 000014
【図１３】
2009187141.tif 000015
【図１４】
2009187141.tif 000016
【図１５】
2009187141.tif 000017
【図１６】
2009187141.tif 000018
【図１７】
2009187141.tif 000019
【図１８】
2009187141.tif 000020
【図１９】
2009187141.tif 000021
【図２０】
2009187141.tif 000022
【図２１】
2009187141.tif 000023
【図２２】
2009187141.tif 000024
【図２３】
2009187141.tif 000025
【図２４】
2009187141.tif 000026
【図２５】
2009187141.tif 000027
【図２６】
2009187141.tif 000028
【図２７】
2009187141.tif 000029
【図２８】
2009187141.tif 000030
【図２９】
2009187141.tif 000031
【図３０】
2009187141.tif 000032