(57)【要約】【課題】コンテンツ配信のタイムラグの低減等を図れるサーバシステム、配信システム及びノード管理方法の提供。【解決手段】サーバシステム１００は、配信網１０のノード管理処理を行うノード管理部１２０と、ノード管理処理のためのノード管理情報を記憶する管理情報記憶部１７４を含む。配信網１０は、コンテンツ配信元から直列接続される基幹ノードの列ＫＮＬと、基幹ノード列の各基幹ノードに直列接続される分岐ノードの列ＢＮＬ１〜ＢＮＬ３を有する。ノード管理部１２０は、配信網１０に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、配信網１０への追加順番が最も古いノードを検索し、検索されたノードに対して新規ノードを接続する処理を行う。【選択図】図１
2009246664.tif 000002
【特許請求の範囲】
【請求項１】
配信網を用いたコンテンツ配信のためのサーバシステムであって、
前記配信網のノード管理処理を行うノード管理部と、
前記ノード管理処理のためのノード管理情報を記憶する管理情報記憶部とを含み、
前記配信網は、コンテンツ配信元から直列接続される基幹ノードの列と、前記基幹ノード列の各基幹ノードに直列接続される分岐ノードの列を有し、
前記ノード管理部は、
前記配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、前記配信網への追加順番が最も古いノードを検索し、検索されたノードに対して前記新規ノードを接続する処理を行うことを特徴とするサーバシステム。
【請求項２】
請求項１において、
前記ノード管理部は、
前記検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されていない場合には、前記新規ノードを新たな分岐ノードとして接続する処理を行うことを特徴とするサーバシステム。
【請求項３】
請求項２において、
前記ノード管理部は、
前記検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されているが、基幹ノードが接続されていない場合には、前記新規ノードを新たな基幹ノードとして接続する処理を行うことを特徴とするサーバシステム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記ノード管理部は、
前記配信網から分岐ノードが除外され、前記除外された分岐ノードのコンテンツ配信先ノードとして下位の分岐ノードが存在する場合には、前記除外された分岐ノードの上位のノードを、前記除外された分岐ノードの下位の分岐ノードに接続する処理を行うことを特徴とするサーバシステム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記ノード管理部は、
前記配信網から基幹ノードが除外され、前記除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在する場合には、当該分岐ノードを、前記除外された基幹ノードの代わりとなる新たな基幹ノードに設定することを特徴とするサーバシステム。
【請求項６】
請求項５において、
前記ノード管理部は、
前記新たな基幹ノードの下位の基幹ノードが存在し、前記下位の基幹ノードの前記配信網への追加順番が、前記新たな基幹ノードの追加順番よりも先である場合には、前記新たな基幹ノード及びそれに接続される分岐ノード列と、前記下位の基幹ノード及びそれに接続される分岐ノード列との入れ替え処理を行うことを特徴とするサーバシステム。
【請求項７】
請求項５又は６において、
前記ノード管理部は、
前記除外された基幹ノードに対して複数の分岐ノード列が接続される場合には、前記複数の分岐ノード列の起点となる分岐ノードのうち、前記配信網への追加順番が最も古いノードを、前記除外された基幹ノードの代わりに基幹ノードに設定することを特徴とするサーバシステム。
【請求項８】
請求項５乃至７のいずれかにおいて、
前記ノード管理部は、
前記除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在せず、前記除外された基幹ノードのコンテンツ配信先ノードとして下位の基幹ノードが存在する場合には、前記除外された基幹ノードの上位の基幹ノードを、前記除外された基幹ノードの前記下位の基幹ノードに接続する処理を行うことを特徴とするサーバシステム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記ノード管理部は、
前記配信網に新規ノードが追加された場合に、前記新規ノードを、前記配信網の基幹ノードのコンテンツ配信先ノードとして接続することを、前記配信網のノード数に応じて許可することを特徴とするサーバシステム。
【請求項１０】
請求項９において、
前記ノード管理部は、
前記配信網のノード数をＫとし、前記配信網の基幹ノード数をｎとし、ｎの単調増加関数ｆ（ｎ）で表される所定数をＬ＝ｆ（ｎ）とした場合に、ノード数Ｋが所定数Ｌ以上であることを条件に、前記新規ノードを、前記配信網の基幹ノードのコンテンツ配信先ノードとして接続することを許可することを特徴とするサーバシステム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記ノード管理部は、
前記配信網の下位の基幹ノードに接続される分岐ノード列での追加可能ノード数の方が、上位の基幹ノードに接続される分岐ノード列での追加可能ノード数よりも小さくなるように、各分岐ノード列での追加可能ノード数を制限する処理を行うことを特徴とするサーバシステム。
【請求項１２】
請求項１１において、
前記ノード管理部は、
ｐの単調減少関数をＧ（ｐ）とした場合に、前記基幹ノード列の第ｐの基幹ノードに接続される分岐ノード列の追加可能ノード数をＭ＝Ｇ（ｐ）に制限する処理を行うことを特徴とするサーバシステム。
【請求項１３】
請求項１乃至１２のいずれかにおいて、
前記ノード管理部は、
第１の基幹ノード列及び前記第１の基幹ノード列に接続される第１の分岐ノード列群により構成される第１のノード集合のノード数が所定数になった場合には、前記第１の基幹ノード列に直列接続される第２の基幹ノード列及び前記第２の基幹ノード列に接続される第２の分岐ノード列群により構成される第２のノード集合を設定し、前記第２のノード集合に対して新規ノードを追加することを特徴とするサーバシステム。
【請求項１４】
請求項１乃至１３のいずれかにおいて、
前記配信網の基幹ノードに対して接続可能なコンテンツ配信先ノードの個数をＩとし、前記配信網の分岐ノードに対して接続可能なコンテンツ配信先ノードの個数をＪとした場合に、Ｉ＞Ｊであることを特徴とするサーバシステム。
【請求項１５】
請求項１４において、
Ｉ≧２であり、Ｊ＝１であることを特徴とするサーバシステム。
【請求項１６】
請求項１乃至１５のいずれかにおいて、
前記配信網のコンテンツ配信元の各ノードからコンテンツ配信先の各ノードに対してＰ２Ｐ（Peer to Peer）のリレー方式で配信されるコンテンツを、前記基幹ノード列の起点の基幹ノードに対して送信するコンテンツ配信部を含むことを特徴とするサーバシステム。
【請求項１７】
請求項１乃至１６のいずれかに記載のサーバシステムと、
前記配信網と、
を含むことを特徴とする配信システム。
【請求項１８】
コンテンツ配信のためのノード管理方法であって、
コンテンツ配信元から直列接続される基幹ノードの列と、前記基幹ノード列の各基幹ノードに直列接続される分岐ノードの列とを有する配信網を設定し、
前記配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、前記配信網への追加順番が最も古いノードを検索し、
検索されたノードに対して前記新規ノードを接続することを特徴とするノード管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバシステム、配信システム、及びノード管理方法に関する。
【背景技術】
【０００２】
近年、インターネット等の配信網を介して、映像、音声等のコンテンツのストリームデータを配信するサービスが増加している。このようなコンテンツの配信サービスでは、配信網のより一層の広帯域化が望まれているが、サーバを管理する配信業者のコスト負担が重く、例えばフルハイビジョン対応の高品質な映像コンテンツを視聴者に対して提供することが難しかった。
【０００３】
このような問題を解決するために、例えば特許文献１に開示されるように、いわゆるＰ２Ｐ（Peer to Peer）のリレー方式（バケツリレー方式、キャッシュ・アンド・トス方式）でコンテンツを配信するシステムが提案されている。この特許文献１の技術では、配信網の各ノード間でストリームデータの送受信を行うために、各ノードは、上流ノードと下流ノードの接続関係を示すトポロジ情報を交換して、上流ノードから下流ノードへストリームデータを中継している。この方式では、各ノード間でトポロジ情報を交換しているため、各ノードが自律的にトポロジ情報を記憶すると共に更新して管理することができる。
【０００４】
しかしながら、フルハイビジョン映像のようにデータ量の大きなコンテンツを配信する場合、このようなＰ２Ｐのリレー方式では、配信網の末端のノードにコンテンツが届くまでに大きなタイムラグが生じてしまうという問題があった。また、視聴を終了したノード（クライアント）が配信網から除外された場合に、コンテンツ中継のためのノードのトポロジ（配信順についてのトポロジ）を再構築する必要があり、そのためのサーバの処理負荷が非常に重いという問題があった。この問題は、配信網に参加するコミュニティのクライアント数が多くなるにつれて更に深刻になる。
【特許文献１】特開２００３−１６９０８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の幾つかの態様によれば、コンテンツ配信のタイムラグの低減等を図れるサーバシステム、配信システム及びノード管理方法を提供できる。
【課題を解決するための手段】
【０００６】
本発明は、配信網を用いたコンテンツ配信のためのサーバシステムであって、前記配信網のノード管理処理を行うノード管理部と、前記ノード管理処理のためのノード管理情報を記憶する管理情報記憶部とを含み、前記配信網は、コンテンツ配信元から直列接続される基幹ノードの列と、前記基幹ノード列の各基幹ノードに直列接続される分岐ノードの列を有し、前記ノード管理部は、前記配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、前記配信網への追加順番が最も古いノードを検索し、検索されたノードに対して前記新規ノードを接続する処理を行うサーバシステムに関係する。
【０００７】
本発明によれば、配信網が、コンテンツ配信元に接続される基幹ノード列と、基幹ノード列の各基幹ノードに接続される分岐ノード列を有する。そして配信網に新規ノードが追加されると、コンテンツ配信先ノードの接続が可能なノードのうち、配信網への追加順番が最も古いノードに対して、新規ノードが接続される。このようにすれば、末端のノード等におけるコンテンツ配信のタイムラグの低減等を図ることが可能になる。また、簡素な処理で新規ノードの追加処理を実現することが可能になるため、サーバシステムの処理負荷も軽減できるようになる。
【０００８】
また本発明では、前記ノード管理部は、前記検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されていない場合には、前記新規ノードを新たな分岐ノードとして接続する処理を行ってもよい。
【０００９】
このようにすれば、コンテンツ配信先ノードとして分岐ノードが接続されていないノードに対して、新規ノードを新たな分岐ノードとして接続することが可能になる。
【００１０】
また本発明では、前記ノード管理部は、前記検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されているが、基幹ノードが接続されていない場合には、前記新規ノードを新たな基幹ノードとして接続する処理を行ってもよい。
【００１１】
このようにすれば、コンテンツ配信先ノードとして分岐ノードは接続されているが、基幹ノードは接続されていないノードに対して、新規ノードを新たな基幹ノードとして接続することが可能になる。
【００１２】
また本発明では、前記ノード管理部は、前記配信網から分岐ノードが除外され、前記除外された分岐ノードのコンテンツ配信先ノードとして下位の分岐ノードが存在する場合には、前記除外された分岐ノードの上位のノードを、前記除外された分岐ノードの下位の分岐ノードに接続する処理を行ってもよい。
【００１３】
このようにすれば、除外された分岐ノードの隙間を埋めるように、除外された分岐ノードの上位のノードと下位の分岐ノードとを接続することが可能になる。
【００１４】
また本発明では、前記ノード管理部は、前記配信網から基幹ノードが除外され、前記除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在する場合には、当該分岐ノードを、前記除外された基幹ノードの代わりとなる新たな基幹ノードに設定してもよい。
【００１５】
このようにすれば、除外された基幹ノードの隙間を埋めるように、分岐ノードを、除外された基幹ノードの代わりの新たな基幹ノードに設定できる。
【００１６】
また本発明では、前記ノード管理部は、前記新たな基幹ノードの下位の基幹ノードが存在し、前記下位の基幹ノードの前記配信網への追加順番が、前記新たな基幹ノードの追加順番よりも先である場合には、前記新たな基幹ノード及びそれに接続される分岐ノード列と、前記下位の基幹ノード及びそれに接続される分岐ノード列との入れ替え処理を行ってもよい。
【００１７】
このような入れ替え処理を行えば、配信網におけるノードの追加順番を維持することが可能になり、適正なコンテンツ配信を実現できる。
【００１８】
また本発明では、前記ノード管理部は、前記除外された基幹ノードに対して複数の分岐ノード列が接続される場合には、前記複数の分岐ノード列の起点となる分岐ノードのうち、前記配信網への追加順番が最も古いノードを、前記除外された基幹ノードの代わりに基幹ノードに設定してもよい。
【００１９】
このようにすれば、各基幹ノードに複数の分岐ノード列が接続される場合にも、新規ノードの適正な追加処理を実現できる。
【００２０】
また本発明では、前記ノード管理部は、前記除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在せず、前記除外された基幹ノードのコンテンツ配信先ノードとして下位の基幹ノードが存在する場合には、前記除外された基幹ノードの上位の基幹ノードを、前記除外された基幹ノードの前記下位の基幹ノードに接続する処理を行ってもよい。
【００２１】
このようにすれば、除外された基幹ノードの隙間を埋めるように、上位の基幹ノードと下位の基幹ノードを接続することが可能になる。
【００２２】
また本発明では、前記ノード管理部は、前記配信網に新規ノードが追加された場合に、前記新規ノードを、前記配信網の基幹ノードのコンテンツ配信先ノードとして接続することを、前記配信網のノード数に応じて許可してもよい。
【００２３】
このようにすれば、基幹ノード数が無駄に増加してしまう事態を防止でき、コンテンツ配信の効率化を図れる。
【００２４】
また本発明では、前記ノード管理部は、前記配信網のノード数をＫとし、前記配信網の基幹ノード数をｎとし、ｎの単調増加関数ｆ（ｎ）で表される所定数をＬ＝ｆ（ｎ）とした場合に、ノード数Ｋが所定数Ｌ以上であることを条件に、前記新規ノードを、前記配信網の基幹ノードのコンテンツ配信先ノードとして接続することを許可してもよい。
【００２５】
このようにすれば、配信網のノード数Ｋが十分に多い場合に、新規ノードを基幹ノードとして追加することが許可されるようになる。
【００２６】
また本発明では、前記ノード管理部は、前記配信網の下位の基幹ノードに接続される分岐ノード列での追加可能ノード数の方が、上位の基幹ノードに接続される分岐ノード列での追加可能ノード数よりも小さくなるように、各分岐ノード列での追加可能ノード数を制限する処理を行ってもよい。
【００２７】
このようにすれば、末端ノードでの配信のタイムラグの均一化等を実現できる。
【００２８】
また本発明では、前記ノード管理部は、ｐの単調減少関数をＧ（ｐ）とした場合に、前記基幹ノード列の第ｐの基幹ノードに接続される分岐ノード列の追加可能ノード数をＭ＝Ｇ（ｐ）に制限する処理を行ってもよい。
【００２９】
このようにすれば、各分岐ノード列での追加可能ノード数を適正に制限できる。
【００３０】
また本発明では、前記ノード管理部は、第１の基幹ノード列及び前記第１の基幹ノード列に接続される第１の分岐ノード列群により構成される第１のノード集合のノード数が所定数になった場合には、前記第１の基幹ノード列に直列接続される第２の基幹ノード列及び前記第２の基幹ノード列に接続される第２の分岐ノード列群により構成される第２のノード集合を設定し、前記第２のノード集合に対して新規ノードを追加してもよい。
【００３１】
このようにすれば、処理負荷を軽減しながら、ノード数を効率的に増加させることが可能になる。
【００３２】
また本発明では、前記配信網の基幹ノードに対して接続可能なコンテンツ配信先ノードの個数をＩとし、前記配信網の分岐ノードに対して接続可能なコンテンツ配信先ノードの個数をＪとした場合に、Ｉ＞Ｊであってもよい。
【００３３】
また本発明では、Ｉ≧２であり、Ｊ＝１であってもよい。
【００３４】
また本発明では、前記配信網のコンテンツ配信元の各ノードからコンテンツ配信先の各ノードに対してＰ２Ｐ（Peer to Peer）のリレー方式で配信されるコンテンツを、前記基幹ノード列の起点の基幹ノードに対して送信するコンテンツ配信部を含んでもよい。
【００３５】
また本発明は、上記のいずれかに記載のサーバシステムと、前記配信網とを含む配信システムに関係する。
【００３６】
また本発明は、コンテンツ配信のためのノード管理方法であって、コンテンツ配信元から直列接続される基幹ノードの列と、前記基幹ノード列の各基幹ノードに直列接続される分岐ノードの列とを有する配信網を設定し、前記配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、前記配信網への追加順番が最も古いノードを検索し、検索されたノードに対して前記新規ノードを接続するノード管理方法に関係する。
【発明を実施するための最良の形態】
【００３７】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３８】
１．配信システム、サーバシステム
図１に本実施形態により実現されるコンテンツの配信システム（ノード管理システム）やサーバシステムの構成例を示す。
【００３９】
図１の配信システムは、サーバシステム１００と、サーバシステム１００のクライアントとなる複数のノードＮ１〜Ｎ１０を有する配信網１０を含む。なお、配信システムは図１の構成に限定されず、他の構成要素を追加するなどの種々の変形実施が可能である。
【００４０】
配信網１０（ネットワーク、通信回線）は、例えばインターネットを利用した通信路であり、直接接続のための専用線（専用ケーブル）やイーサネット（登録商標）等によるＬＡＮの他、電話通信網やケーブル網等の通信網を含むことができる。また通信方法については有線／無線を問わない。
【００４１】
配信網１０は、相互に通信接続される複数のノードＮ１〜Ｎ１０を含む。各ノードは、インターネット等への接続機能を有するクライアント端末により構成される。このクライアント端末は、例えば家庭用ゲーム装置、携帯型ゲーム装置、ＰＣ（パーソナルコンピュータ）、携帯型情報端末等により実現され、図示しない操作部、処理部、通信制御部、記憶部、情報記憶媒体用のインターフェース等を有する。操作部は、視聴者がコンテンツ視聴のために必要な各種の入力を行うためのものである。処理部は、暗号化されたコンテンツの復号化処理、映像や音声の再生処理を行う。また、コンテンツ配信元のノードから受信したコンテンツのデータを記憶部にバッファリング（キャッシュイング）し、バッファリングしたコンテンツのデータをリレー方式（バケツリレー方式）でコンテンツ配信先のノードに再送する処理等を行う。この処理部の機能はＣＰＵ等のプロセッサやプロセッサ上で動作するプログラムにより実現できる。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶される。通信制御部は、他のノードやサーバとの通信処理を行うものであり、その機能は通信用のＡＳＩＣやファームウェアにより実現できる。記憶部は、処理部や通信制御部のワーク領域として機能するものであり、その機能はＲＡＭやＨＤＤ等により実現できる。また記憶部は、コンテンツ配信元のノードから受信したコンテンツのデータのキャッシュメモリとしても機能する。情報記憶媒体用のインターフェースは、プログラムやデータが記憶される情報記憶媒体へのアクセス処理などを行う。
【００４２】
図１に示すように、配信網１０は、コンテンツ配信元（サーバシステム、コンテンツ配信部）から直列接続（接続）される基幹ノードＮ１、Ｎ３、Ｎ６、Ｎ１０の列である基幹ノード列ＫＮＬを含む。即ち、これらの基幹ノードＮ１、Ｎ３、Ｎ６、Ｎ１０は、サーバシステム１００から下方向（第１の方向）に一列に直列接続される。
【００４３】
また配信網１０は、基幹ノード列ＫＮＬの各基幹ノード（起点ノード）に直列接続（接続）される分岐ノードの列ＢＮＬ１、ＢＮＬ２、ＢＮＬ３を含む。具体的には、分岐ノード列ＢＮＬ１を構成する分岐ノードＮ２、Ｎ４、Ｎ７は、基幹ノードＮ１に対して直列接続される。即ち、分岐ノードＮ２、Ｎ４、Ｎ７は、基幹ノードＮ１から、横方向（第１の方向に直交する第２の方向）に分岐することなく一列に直列接続される。同様に、分岐ノード列ＢＮＬ２を構成する分岐ノードＮ５、Ｎ８は、基幹ノードＮ３に対して直列接続され、分岐ノード列ＢＮＬ３を構成する分岐ノードＮ９は、基幹ノードＮ６に対して直列接続される。
【００４４】
このように図１の単純分岐型の配信網１０では、基本となる直列接続された基幹ノードＮ１、Ｎ３、Ｎ６、Ｎ１０が設けられると共に、Ｎ１、Ｎ３、Ｎ６、Ｎ１０の各基幹ノードを起点として、分岐ノードＮ２、Ｎ４、Ｎ７の列やＮ５、Ｎ８の列やＮ９の列が、一列に直列接続されている。なおＮ１〜Ｎ１０の各ノードの番号は、コンテンツの配信順番号（ノードの追加順番）を表している。具体的には、起点となるノードＮ１（上位ノード）は、そのコンテンツ配信元であるサーバ（サーバシステム、コンテンツ配信部）からコンテンツを受信する。そして受信したコンテンツを中継して、そのコンテンツ配信先ノードＮ２、Ｎ３（下位ノード）に送信（再送）する。ノードＮ２（上位ノード）は、そのコンテンツ配信元ノードＮ１からコンテンツを受信すると、そのコンテンツを中継して、そのコンテンツ配信先ノードＮ４（下位ノード）に送信する。同様にノードＮ３（上位ノード）も、そのコンテンツ配信元ノードＮ１からコンテンツを受信すると、そのコンテンツを中継して、そのコンテンツ配信先ノードＮ５、Ｎ６（下位ノード）に送信する。
【００４５】
図２（Ａ）に、順序型配信網の例を示す。図２（Ａ）では、コンテンツ配信元であるサーバに対してノードＮ１、Ｎ２、Ｎ３が配信順（ノードの追加順番）に直列接続されている。即ち図２（Ａ）では、ノードＮ１は、サーバからコンテンツを受信すると、受信したコンテンツを中継してノードＮ２に送信する。ノードＮ２は、ノードＮ１からコンテンツを受信すると、受信したコンテンツを中継してノードＮ３に送信する。
【００４６】
そして図２（Ａ）の順序型配信網では、ノードＮ２であるクライアントが、視聴終了や回線切断により配信網から除外されると、その前後のノードであるＮ１とＮ３とを接続することで、最小限の処理負荷（処理コスト）で、配信網を維持する。
【００４７】
しかしながら、図２（Ａ）では、配信網のノード数が増えてくると、末端のノードに対してのコンテンツ配信が開始するまでに、長いタイムラグが発生してしまう。例えばノードＮ２が、ノードＮ１からコンテンツを受信して、受信したコンテンツを中継（リレー）してノードＮ３に送信するまでに、データのバッファリングや配信準備等のために一定の中継時間を要する。このため、末端のノードでは、この中継時間がノード数分だけ積算されたタイムラグが発生してしまい、これによりコンテンツの視聴開始時間が遅れ、ユーザの待ち時間が長くなってしまう。
【００４８】
図２（Ｂ）に二分木型配信網の例を示す。図２（Ｂ）の二分木構造の配信網によれば、ノードが分岐されているため、図２（Ａ）の配信網に比べて、末端のノードでの配信時間のタイムラグを短縮できるという利点がある。しかしながら、視聴終了や回線切断により配信網から特定のノードが除外された場合に、配信順を崩さないようにするノードのトポロジの再構築処理の負荷が非常に大きいという問題点がある。
【００４９】
このように図２（Ａ）の構成では、ノード除外時の配信順維持のためのトポロジ再構築の処理負荷は軽いが、末端ノードでの配信開始のタイムラグが大きいという問題点があり、図２（Ｂ）の構成では、末端ノードでのタイムラグは比較的小さいが、トポロジ再構築の処理負荷が重いという問題点がある。
【００５０】
これに対して、図１の本実施形態の配信網１０の構成によれば、末端のノードＮ７、Ｎ８、Ｎ９、Ｎ１０での配信開始のタイムラグを、同じノード数で比較した場合に図２（Ａ）に比べて小さくできる。例えばノード数が１０である場合に、末端のノードにコンテンツが届くまでに図２（Ａ）では９回の中継処理が必要になるが、図１では３回の中継処理で済むため、タイムラグを大幅に軽減できる。更に図１の配信網１０の構成によれば、配信順の維持のためのトポロジ再構築の処理負荷を、図２（Ｂ）に比べて軽くできる。このように図１では、タイムラグの低減とトポロジの再構築の処理負荷の軽減を両立できる。
【００５１】
図１においてサーバシステム１００は、コンテンツ配信部１１０、ノード管理部１２０、データベース１７０、通信制御部１９０を含む。なお、サーバシステム１００は図１の構成に限定されず、これらの一部の構成要素（例えばコンテンツ配信部）を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００５２】
データベース１７０（データベースサーバ）は、例えばＭｙＳＱＬなどで実現されるリレーショナルデータベースであり、コンテンツ配信やサーバ管理やノード管理に必要な様々な情報を記憶する。例えば配信管理情報、サーバ管理情報、ノード管理情報、ユーザ情報などを記憶する。具体的にはデータベース１７０は、コンテンツ記憶部１７２、管理情報記憶部１７４を含む。コンテンツ記憶部１７２は、配信対象となる映像、音声等のコンテンツを記憶する。管理情報記憶部１７４は、ノード管理処理のためのノード管理情報（ノード情報、配信網情報等）を記憶する。
【００５３】
通信制御部１９０（通信サーバ）は、配信網１０を介した情報転送のための各種の通信制御処理を行う。具体的にはインターネット等のプロトコルに従った通信に必要な各種処理を行う。
【００５４】
コンテンツ配信部１１０（コンテンツサーバ、コンテンツ配信元）は、データベース１７０のコンテンツ記憶部１７２（コンテンツデータベース）に記憶される映像（映画）、音声（音楽）、静止画、テキスト、ゲームプログラム、ゲームデータ等のコンテンツの配信処理（ストリーム配信）を行う。具体的には、配信網１０のコンテンツ配信元の各ノードからコンテンツ配信先の各ノードに対してＰ２Ｐ（Peer to Peer）のリレー方式で配信されるコンテンツを、基幹ノード列ＫＮＬの起点の基幹ノードＮ１に対して送信する。すると、コンテンツ配信部１１０からコンテンツを受信した基幹ノードＮ１は、コンテンツ配信元として、そのコンテンツ配信先のノードＮ２、Ｎ３に対してリレー方式でコンテンツを配信（ストリーム転送）する。この場合にコンテンツ配信部１１０は、必要であれば、ＤＥＳ、ＡＥＳ等の共通鍵暗号化方式や、公開鍵暗号化方式などで、コンテンツの暗号化処理を行う。そしてクライアントである各ノードは、暗号化されたコンテンツの復号化処理を行う。また各ノードは、コンテンツの復号化処理や再生処理を行うと共に、後段の下位のノードに対してコンテンツを再配信する中継処理を行う。
【００５５】
ノード管理部１２０（ノード管理サーバ、斡旋サーバ）は、配信網１０のノード管理処理を行う。例えば配信網１０への新規ノードの追加処理や、視聴終了や回線切断されたノードを配信網１０から除外する処理や、ノード列の接続を組み替える処理や、ノードからの各種要求に応答する処理や、ノードに対して各種要求を発行する処理などを行う。
【００５６】
具体的にはノード管理部１２０は、配信網１０に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、配信網１０への追加順番（配信順）が最も古いノードを検索する。即ち、追加順番の番号（配信順番号）が最も若いノードを検索する。そして検索されたノードに対して新規ノードを接続するための処理（検索や接続の要求処理や応答処理等）を行う。例えば、検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されていない場合（分岐ノードの接続が可能な場合）には、新規ノードを新たな分岐ノードとして接続する。一方、検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されているが、基幹ノードが接続されていない場合（分岐ノードの接続は不可であるが基幹ノードの接続は可能である場合）には、新規ノードを新たな基幹ノードとして接続する。
【００５７】
また、ノード管理部１２０は、視聴終了や回線切断により配信網１０から分岐ノードが除外され、除外された分岐ノードのコンテンツ配信先ノードとして下位（下流）の分岐ノードが存在する場合（下位の分岐ノードが接続されている場合）には、除外された分岐ノードの上位（上流）のノード（分岐ノード又は基幹ノード）を、その下位の分岐ノードに接続する。
【００５８】
一方、ノード管理部１２０は、視聴終了や回線切断により配信網１０から基幹ノードが除外され、除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在する場合（分岐ノードが接続されている場合）には、その分岐ノードを繰り上げて、新たな基幹ノードに設定する。この際に、新たな基幹ノードの下位（下流）の基幹ノードが存在し、この下位の基幹ノードの配信網１０への追加順番が、新たな基幹ノードの追加順番よりも先である場合（番号が若い場合）には、その新たな基幹ノード及びそれに接続される分岐ノード列と、下位の基幹ノード及びそれに接続される分岐ノード列との入れ替え処理を行う。なお除外された基幹ノードに対して複数の分岐ノード列が接続される場合には、複数の分岐ノード列の起点となる分岐ノードのうち、配信網１０への追加順番が最も古い分岐ノード（最も番号が若い分岐ノード）を、除外された基幹ノードの代わりに基幹ノードに設定してもよい。
【００５９】
またノード管理部１２０は、除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在せず、除外された基幹ノードのコンテンツ配信先ノードとして下位の基幹ノードが存在する場合（分岐ノードが非接続で、下位の基幹ノードが接続されている場合）には、除外された基幹ノードの上位の基幹ノードを、下位の基幹ノードに接続する。
【００６０】
更にノード管理部１２０は、配信網１０に新規ノードが追加された場合に、新規ノードを、配信網１０の基幹ノードのコンテンツ配信先ノードとして接続することを、配信網１０のノード数（総ノード数）に応じて許可（制限）してもよい。例えば、配信網１０のノード数をＫとし、基幹ノード数をｎとし、ｎの関数ｆ（ｎ）で表される所定数をＬ＝ｆ（ｎ）とした場合に、ノード数Ｋが所定数Ｌ以上であることを条件に、新規ノードを、基幹ノードのコンテンツ配信先ノードとして接続する。或いは、配信網１０の下位の基幹ノードに接続される分岐ノード列での追加可能ノード数の方が、上位の基幹ノードに接続される分岐ノード列での追加可能ノード数よりも小さくなるように制限する。具体的には、ｐの関数をＧ（ｐ）とした場合に、第ｐの基幹ノードに接続される分岐ノード列の追加可能ノード数をＭ＝Ｇ（ｐ）に制限する。或いは、第１の基幹ノード列及びそれに接続される第１の分岐ノード列群により構成される第１のノード集合のノード数が所定数になった場合には、第２の基幹ノード列及びそれに接続される第２の分岐ノード列群により構成される第２のノード集合を設定してもよい。
【００６１】
２．ノード接続管理手法
本実施形態のＰ２Ｐ配信システムでは、コンテンツ配信を要求している複数のクライアント（ノード）について、迅速且つ円滑に、サーバ・クライアント間、或いは２つのクライアント間のＰ２Ｐ接続ができるように、配信順序を最適化し、接続を斡旋している。即ち配信システムを実現するサーバシステム（適宜、単にサーバと呼ぶ）は、帯域性能が限られており、同時配信可能なクライアント数が少ないため、本実施形態のシステムによって効率の良いノード接続管理（斡旋）を実現する。以下、映画等の動画を配信する場合のノード接続管理手法について、図３（Ａ）〜図５を用いて詳細に説明する。
【００６２】
本実施形態では、Ｐ２Ｐのリレー方式（バケツリレー方式、キャッシュ・アンド・トス方式）にて、直列に接続されたクライアント（ノード）間で順番にコンテンツのデータを受け渡して行く。そして視聴終了や回線切断により配信網から外れるクライアントが発生した場合には、その前後の上位、下位のクライアントを接続することで、最低限の処理コストで配信網を維持する。このとき、配信網の接続変更を迅速に行うために、予め接続変更候補のクライアント同士で予備的なコネクション（セッション）を確立しておき、接続の切り替え処理の負荷（コスト）を低減する。また、直接Ｐ２Ｐ接続している２つのクライアントの順序を入れ替えるなどして、小規模な変更処理で配信網の最適化を図る。
【００６３】
具体的には本実施形態では図１に示すように、図２（Ａ）の基本となる順序型配信網に加えて、各基幹ノードを起点として分岐ノードを更に直列接続する。そして、Ｐ２Ｐ接続の順序として以下のルールを採用する。
（１）基幹ノード（図１のノードＮ１、Ｎ３、Ｎ６、Ｎ１０）に対しては、配信先ノードとして、２個（広義にはＩ個）までの接続を許可する。一方、分岐ノード（ノードＮ２、Ｎ４、Ｎ５、Ｎ７、Ｎ８、Ｎ９）に対しては、配信先ノードとして、１個（広義にはＪ個）だけの接続を許可する。
【００６４】
別の言い方をすれば、基幹ノードに対して接続可能なコンテンツ配信先ノードの個数をＩとし、分岐ノードに対して接続可能なコンテンツ配信先ノードの個数をＪとした場合に、Ｉ＞Ｊとする。図１では、Ｉ＝２、Ｊ＝１になっており、基幹ノードに対しては２個のコンテンツ配信先ノードを接続でき、分岐ノードに対しては１個のコンテンツ配信先ノードを接続できる。なお、各基幹ノードに対して、２本以上の分岐ノード列を接続する構成にしてもよく、この場合にはＩ≧３になる。従って、本実施形態では、Ｉ≧２、Ｊ＝１の関係が成り立つことになる。
（２）配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、配信網への追加順番（接続順番）が最も古いノードに対して新規ノードを接続する。
【００６５】
例えば図３（Ａ）において、サーバに対して基幹ノードＮ１、Ｎ３が直列接続され、基幹ノードＮ１に対して分岐ノードＮ２が接続されている。ここで上記ルール（１）によれば、基幹ノードＮ１、Ｎ３に対する配信先ノードの接続可能個数はＩ＝２であり、分岐ノードＮ２に対する配信先ノードの接続可能個数はＪ＝１である。従って、図３（Ａ）では、基幹ノードＮ１には、追加された新規ノードを接続できず、基幹ノードＮ３には２個の新規ノードを接続でき、分岐ノードＮ２には１個の新規ノードを接続できる。
【００６６】
そして図３（Ａ）の接続構成の配信網に対して、新規ノードＮ４、Ｎ５、Ｎ６（新たに視聴を開始したクライアント）を追加すると、上記ルール（２）により、最終的な接続構成は図３（Ｄ）のようになる。
【００６７】
即ち、図３（Ａ）において、ノードＮ１には、コンテンツ配信先ノード（自身がコンテンツを送信するノード）としてＮ２とＮ３が接続されており、基幹ノードＮ１の接続可能個数はＩ＝２であるため、新たなコンテンツ配信先ノードを接続することはできない。一方、ノードＮ２、Ｎ３には、コンテンツ配信先ノードは接続されておらず、新たなコンテンツ配信先ノードの接続が可能である。従って、上記ルール（２）により、コンテンツ配信先ノードの接続が可能なノードＮ２、Ｎ３の中から、配信網への追加順番が最も古いノードを検索する。すると、ノードＮ２の方がＮ３よりも追加順番が古いので（番号が若いので）、上記ルール（２）により、図３（Ｂ）に示すようにノードＮ２に対して新規ノードＮ４を接続する。
【００６８】
また図３（Ｂ）において、ノードＮ１、Ｎ２には、新たなコンテンツ配信先ノードを接続することはできない。上記ルール（１）より、基幹ノードＮ１の接続可能個数はＩ＝２であり、分岐ノードＮ２の接続可能個数はＪ＝１であるからである。一方、ノードＮ３、Ｎ４には、新たなコンテンツ配信先ノードの接続が可能である。そして、ノードＮ３の方がＮ４よりも配信網への追加順番が古い（番号が若い）。従って、上記ルール（２）により、図３（Ｃ）に示すようにノードＮ３に対して新規ノードＮ５を接続する。
【００６９】
また図３（Ｃ）において、ノードＮ３、Ｎ４、Ｎ５は、新たなコンテンツ配信先ノードの接続が可能である。そして、ノードＮ３の方がＮ４、Ｎ５よりも配信網への追加順番が古い。従って、上記ルール（２）により、図３（Ｄ）に示すようにノードＮ３に対して新規ノードＮ６を接続する。
【００７０】
ここで図３（Ａ）のノードＮ２に着目すると、ノードＮ２のコンテンツ配信先ノードとして分岐ノードが接続されていないので、図３（Ｂ）に示すように、新規ノードＮ４は、新たな分岐ノードとして接続される。また図３（Ｃ）のノードＮ３に着目すると、ノードＮ３のコンテンツ配信先ノードとして分岐ノードＮ５は接続されているが、基幹ノードは接続されていないため、図３（Ｄ）に示すように、新規ノードＮ６は、新たな基幹ノードとして接続される。
【００７１】
次に、ノード（クライアント）の除外（離脱）処理及びそれによる配信網の組み替え処理について、図４（Ａ）〜図５を用いて説明する。
【００７２】
例えば図４（Ａ）では、視聴終了により基幹ノードＮ１が除外されている。また除外された基幹ノードＮ１のコンテンツ配信先ノードとして分岐ノードＮ２が存在する。この場合には、この分岐ノードＮ２を、除外された基幹ノードＮ１の代わりとなる新たな基幹ノードに設定する。即ち、視聴終了や回線切断により、配信網からノード（クライアント）を除外した場合には、各分岐ノード列の残ったノードを左に詰めて隙間を埋める。
【００７３】
また図４（Ｂ）では、基幹ノードＮ１が除外されたが、基幹ノードＮ１には分岐ノードが接続されていない。従って、この場合には、下の列であるノードＮ３、Ｎ５やＮ６を順次繰り上げる。
【００７４】
なお図４（Ａ）において、配信網から分岐ノードＮ２が除外されたとする。この場合に、除外された分岐ノードＮ２のコンテンツ配信先ノードとして下位の分岐ノードＮ４が存在する。従って、この場合には、除外された分岐ノードの上位のノードＮ１（分岐ノード又は基幹ノード）を、下位の分岐ノードＮ４に接続することになる。即ち、ノードＮ２の除外により残ったノードＮ４を、左に詰めて隙間を埋める。
【００７５】
基幹ノードＮ１を除外した場合には配信網の組み替え処理が必要な場合がある。例えば図５では、基幹ノードＮ２が除外され、ノードＮ４が新たな基幹ノードに設定されている。そして、この新たな基幹ノードＮ４の下位の基幹ノードＮ３が存在し、下位の基幹ノードＮ３の配信網への追加順番は、新たな基幹ノードＮ４の追加順番よりも先である。従って、この場合には、新たな基幹ノードＮ４及びそれに接続される分岐ノード列と、下位の基幹ノードＮ３及びそれに接続される分岐ノード列との入れ替え処理を行う。即ち再配置により、基幹ノードが新たな基幹ノードに代わった場合には、上下の基幹ノード間で追加順番（配信順）が逆になっていないかをチェックし、問題がある場合には列を入れ替える。
【００７６】
３．ノード管理情報
次に図１の管理情報記憶部１７４に記憶されるノード管理情報の詳細について図６（Ａ）〜図７を用いて説明する。
【００７７】
本実施形態のノード管理情報は、ノード情報、ノード配信順情報、配信網情報を含むことができる。ここでノード情報は、各ノードについての配信順、配信網における位置、その接続ノードなどの情報である。図６（Ａ）にノード情報のデータ構造の例を示す。このノード情報は、接続ノード情報、ノード配信順番号、配信網位置情報を含む。
【００７８】
接続ノード情報は、そのノードに他のノードが接続されているか否かを示したり、接続されている場合にはどのノードが接続されているのかを示す情報である。具体的には、接続ノード情報は、そのノードの上位の基幹ノード、上位の分岐ノード、下位の分岐ノード、下位の基幹ノードの番号等を含む。
【００７９】
ノード配信順番号は、ノードが配信網に追加された順番を数値で表したものである。配信網位置情報は、ノードが配信網内に配置されている位置や、ノードが基幹ノードなのか分岐ノードなのかを知るための情報である。具体的には、配信網位置情報は、ノード列番号、ノード連結順番号（ノード列内の順番）を有する。
【００８０】
ノード配信順情報は、図６（Ｂ）に示すように、各ノードのノード情報を、配信網に追加された順にリスト化した情報である。新規ノードの追加位置を検索する際には、このノード配信順情報のリスト順にノード情報をチェックすることになる。
【００８１】
なお図６（Ｂ）には、図３（Ｄ）のようなノード構成の場合のノードＮ３のノード情報の例が示されている。このノード情報では、図３（Ｄ）のように、ノードＮ３の上位基幹ノード、下位分岐ノード、下位基幹ノードが、各々、ノードＮ１、Ｎ５、Ｎ６であり、上位分岐ノードは存在しないことが示されている。またノードＮ３の配信順番号が「３」であり、配信網位置が[１，０]であることが示されている。
【００８２】
配信網情報は、配信網全体の情報を管理するための情報であり、図７に示すように、ノード総数、基幹ノード数（ノード列数）、ノード列の接続ノード数を含む。例えば図７は、図３（Ｄ）のノード構成に対応するものであり、ノード総数は９であり、基幹ノード数は３であり、ノード列ノード数は［３，２，１］になっている。また図７では、図６（Ａ）のノード連結順番号（横軸）や、ノード列番号（縦軸）が示されていると共に、ノードＮ１〜Ｎ６のノード情報が模式的に示されている。
【００８３】
４．詳細な処理
次に、新規ノードが追加された場合の本実施形態の詳細な処理例について、図８〜図１１のフローチャートを用いて説明する。
【００８４】
図８、図９は新規ノードの追加処理に関するフローチャートである。新規ノードが追加された場合には、まず図８に示すように、配信網に接続されたノードが存在するか否かを判断する（ステップＳ１）。そして、他のノードが存在しない場合には、追加された新規ノードを起点の基幹ノードとしてサーバに接続する（ステップＳ２）。一方、存在する場合には、新規ノードを配信網に接続するための処理を実行する（ステップＳ３）。
【００８５】
図９は、図８のステップＳ３の処理の詳細を示すフローチャートである。まず配信網への追加順番が最も古いノードを検索する（ステップＳ１１）。この検索処理は図６（Ｂ）のノード配信順情報等を用いて実現できる。
【００８６】
次に、検索されたノードのコンテンツ配信先ノード（下位のノード）として分岐ノードが接続されているか否かを判断する（ステップＳ１２）。この判断処理は図６（Ａ）のノード情報等を用いて実現できる。そして、検索されたノードに分岐ノードが接続されていない場合には、新規ノードを、新たな分岐ノードとして接続する（ステップＳ１３）。
【００８７】
一方、検索されたノードに分岐ノードが接続されている場合には、コンテンツ配信先ノード（下位のノード）として基幹ノードが接続されているか否かを判断する（ステップＳ１４）。そして接続されていない場合には、新規ノードを、新たな基幹ノードとして接続する（ステップＳ１５）。一方、基幹ノードが接続されている場合には、検索されたノードには、新規ノードを接続できないため、検索されたノードを候補から除外する（ステップＳ１６）。そして、他の候補となるノードが存在するか否かを判断し（ステップＳ１７）、存在する場合にはステップＳ１１に戻る。
【００８８】
以上のように新規ノードの追加処理を行えば、末端ノードへの配信開始の少ないタイムラグを維持しながら、負荷が少ない効率的な処理で、新規ノードを配信網に接続することが可能になる。
【００８９】
図１０は、ノード除外時の配信網の組み替え処理に関するフローチャートである。ここでは説明を簡単にするために、図１２（Ａ）又は図１２（Ｂ）のようにノードが接続されていると想定する。即ち図１２（Ａ）において、ノードＡは、視聴終了等により除外された分岐ノードであり、ノードＢは、ノードＡに接続されている上位のノード（分岐ノード、基幹ノード）であり、ノードＣは、ノードＡに接続されている下位の分岐ノードである。また図１２（Ｂ）において、ノードＡは、除外された基幹ノードであり、ノードＤはノードＡの上位の基幹ノードであり、ノードＥはノードＡの下位の基幹ノードである。
【００９０】
図１０に示すように、まず、除外されたノードＡが基幹ノードか否かを判断する（ステップＳ２１）。そして図１２（Ａ）に示すように、ノードＡが基幹ノードではなく分岐ノードである場合には、下位の分岐ノードＣが存在するか否かを判断し（ステップＳ２２）、存在する場合にはノードＢとノードＣを互いに接続する（ステップＳ２３）。このようにすれば、ノードＡが除外された場合に、ノードＣを左に詰めてノードＢに接続できる。
【００９１】
一方、図１２（Ｂ）に示すように、除外されたノードＡが、ステップＳ２１で基幹ノードであると判断された場合には、下位の分岐ノードＣが存在するか否かを判断する（ステップＳ２４）。そしてノードＣが存在する場合には、ノードＣを新たな基幹ノードに設定する（ステップＳ２５）。即ち、ノードＣを左に詰めて、ノードＡの代わりに基幹ノードに設定する。そして、ノード列の接続順を組み替える処理を行う（ステップＳ２７）。
【００９２】
一方、ステップＳ２４で、下位の分岐ノードＣが存在しないと判断された場合には、下位の基幹ノードＥが存在するか否かを判断する（ステップＳ２８）。そして、下位の基幹ノードＥが存在する場合には、基幹ノードＤと基幹ノードＥを互いに接続する（ステップＳ２９）。このようにすれば、ノードＡが除外された場合に、ノードＥを上に詰めでノードＤに接続できるようになる。
【００９３】
図１１は、図１０のステップＳ２７の処理の詳細を示すフローチャートである。即ち、図１２（Ｂ）においてノードＣを新たな基幹ノードに設定した場合の組み替え処理に関するフローチャートである。
【００９４】
まず、ノードＣに下位の基幹ノードが接続されているか否かを判断する（ステップＳ３１）。そして接続されている場合には、下位の基幹ノードＥの配信網への追加順番がノードＣよりも先か否かを判断する（ステップＳ３２）。そして、先である場合には、ノードＣ及びその分岐ノード列とノードＥ及びその分岐ノード列を入れ替える処理を行う（ステップＳ３３）。即ち図５で説明した入れ替え処理を行う。そして入れ替えたノードの上位、下位ノードとの接続を更新する（ステップＳ３４）。
【００９５】
以上のような組み替え処理を行えば、ノードＡが除外された場合にも、Ｐ２Ｐのリレー方式における配信順の維持を、少ない処理負荷で実現できる。
【００９６】
５．複数の分岐ノード列の接続
以上では、各基幹ノードに対して１個の分岐ノード列を接続する場合について説明した。即ち、基幹ノードに対して接続可能なコンテンツ配信先ノードの個数をＩとし、分岐ノードに対して接続可能なコンテンツ配信先ノードの個数をＪとした場合に、Ｉ＝２、Ｊ＝１である場合について説明した。しかしながら、本実施形態では、各基幹ノードに対して複数の分岐ノード列を接続するようにしてもよい。即ちＩ＞２であってもよい。
【００９７】
例えば図１３において、基幹ノード列ＫＮＬを構成する基幹ノードＮ１に対して、複数の分岐ノード列ＢＮＬ１１、ＢＮＬ１２が接続されている。同様に、基幹ノード列ＫＮＬを構成する基幹ノードＮ４に対して、複数の分岐ノード列ＢＮＬ２１、ＢＮＬ２２が接続されている。このように複数の分岐ノード列を接続可能にすることで、末端ノードへの配信のタイムラグを更に小さくすることを期待できる。
【００９８】
なお、図１３のようなノードの接続構成の場合には、図９のステップＳ１２において、検索されたノードが基幹ノードである場合に、複数の分岐ノード列の全ての分岐ノードが、コンテンツ配信先ノードとして接続されているか否かをチェックすればよい。即ち図１３において、基幹ノードＮ１に対して全ての分岐ノードＮ２、Ｎ３が接続されているか否かをチェックし、基幹ノードＮ４に対して全ての分岐ノードＮ７、Ｎ８が接続されているか否かをチェックする。
【００９９】
また、ノード除外時の配信網の組み替え処理については、図１０のフローチャートで示される処理の代わりに、図１４のフローチャートで示される処理を行えばよい。図１４が図１０と異なるのは、図１０のステップＳ２４、Ｓ２５の代わりに、図１４ではステップＳ４４、Ｓ４５、Ｓ４６に示す処理が行われる点であり、その他のステップの処理は同様となる。
【０１００】
即ち図１４のステップＳ４４では、除外されたノードＡに下位の分岐ノードが接続されているか否かを判断する。例えば図１３において基幹ノードＮ１が除外された場合には、基幹ノードＮ１に下位の分岐ノードＮ２、Ｎ３が接続されているか否かを判断する。そしてステップＳ４５、Ｓ４６では、接続された下位の分岐ノードのうち、追加順番が最も古いノードを検索し、検索されたノードを新たな基幹ノードに設定する。即ち図１３では、下位の分岐ノードＮ２、Ｎ３のうち追加順番が最も古いノードを検索すると、分岐ノードＮ２の方が追加順番が古いノードであるため、分岐ノードＮ２が新たな基幹ノードに設定されることになる。
【０１０１】
以上のように図１３では、除外された基幹ノードＮ１に対して複数の分岐ノード列ＢＮＬ１１、ＢＮＬ１２が接続される場合には、分岐ノード列ＢＮＬ１１、ＢＮＬ１２の起点となる分岐ノードＮ２、Ｎ３のうち、配信網への追加順番が最も古いノードＮ２を、ノードＮ１の代わりに基幹ノードに設定している。
【０１０２】
６．基幹ノード数の制限
さて、以上の図１〜図１４で説明した本実施形態の手法でノード接続等を管理した場合に、分岐ノード数がそれほど増加せずに、基幹ノード数の方が大きく増加してしまう可能性がある。このように基幹ノード数が増加してしまうと、末端ノードへの配信のタイムラグが大きくなってしまい、効率の良い配信を実現できなくなるおそれがある。
【０１０３】
例えば図１５（Ａ）〜図１９（Ｂ）に、視聴終了によるノードの除外処理と、視聴開始による新規ノードの追加処理を繰り返した場合のノード構造の変化の例を示す。
【０１０４】
例えば図１５（Ｂ）ではノードＮ１、Ｎ２、Ｎ３が視聴終了により除外され、図１５（Ｄ）では、新規ノードＮ１１、Ｎ１２、Ｎ１３が視聴開始により追加されている。同様に、図１５（Ｆ）ではノードＮ４、Ｎ５、Ｎ６が除外され、図１６（Ｂ）では新規ノードＮ１４、Ｎ１５、Ｎ１６が追加されている。また、図１６（Ｄ）ではノードＮ７、Ｎ８、Ｎ９が除外され、図１６（Ｅ）では新規ノードＮ１７、Ｎ１８、Ｎ１９が追加されている。また図１７（Ｂ）ではノードＮ１０、Ｎ１１、Ｎ１２が除外され、図１７（Ｄ）では新規ノードＮ２０、Ｎ２１、Ｎ２２が追加され、図１７（Ｆ）ではノードＮ１３が除外されている。また図１８（Ｂ）では新規ノードＮ２３、Ｎ２４が追加され、図１８（Ｄ）ではノードＮ１４、Ｎ１５、Ｎ１６、Ｎ１７が除外されている。
【０１０５】
そして図１８（Ｅ）では、分岐ノードの数は増えず、基幹ノードの数ばかりが増える結果となってしまっている。そして図１８（Ｅ）では、分岐ノードＮ２３に比べて、末端の基幹ノードＮ２２での配信のタイムラグが大きくなってしまい、効率的なコンテンツ配信を実現できなくなる。
【０１０６】
即ち、本実施形態では前述のルール（１）（２）により新規ノードの接続処理等を行っている。しかしながら、これらのルール（１）（２）のみでは、定期的にノードが追加された場合に、徐々に基幹ノード数が増加して行くのに対して、基幹ノード数が減少するには、ノード列にノードが追加される前に全てのノードが配信網から除外される必要がある。従って、視聴終了による自然なノード除外のみでは、基幹ノード数はなかなか減少しない。その結果、ノードの追加及び除外を繰り返すうちに、配信網の総ノード数に比較して、基幹ノード数（ノード列数）が増加してしまう。そして、基幹ノード数が増加して、配信網が縦に長くなると、末端のノードに到達するまでの中継ノード数が増えてしまい、結果として配信効率が悪化する。
【０１０７】
このような問題を解消するためには、例えば基幹ノードの追加に条件を設定し、一方的な基幹ノード数の増加を防ぐことが望ましい。そこで上記のルール（１）に加えて、以下のルール（３）を加える。
（３）ルール（１）において、基幹ノードの例えば２つの接続先のうち、新たな基幹ノードとなるノードの接続については、現在、配信網に接続されているノードの数が十分に多い場合にのみ接続を許可する。即ち、配信網に新規ノードが追加された場合に、新規ノードを、基幹ノードのコンテンツ配信先ノードとして接続することを、配信網のノード数に応じて許可する。
【０１０８】
具体的には、配信網のノード数をＫとし、配信網の基幹ノード数をｎとし、ｎの単調増加関数ｆ（ｎ）で表される所定数をＬ＝ｆ（ｎ）としたとする。この場合に、ノード数Ｋが所定数Ｌ以上であることを条件に、新規ノードを、基幹ノードのコンテンツ配信先ノードとして接続することを許可する。
【０１０９】
例えばＬ＝ｆ（ｎ）＝｛（ｎ＋１）×（ｎ＋２）／２｝−１であったとする。そして図１９（Ａ）では、配信網のノード数はＫ＝９であり、基幹ノード数はｎ＝３である。従って、Ｌ＝｛（３＋１）×（３＋２）／２｝−１＝９になり、Ｋ≧Ｌ＝９となる。よって、この場合には、新規ノードＮ１０を、基幹ノードＮ３の下位の基幹ノードとして接続することを許可する。
【０１１０】
一方、図１９（Ｂ）では、配信網のノード数はＫ＝６であり、基幹ノード数はｎ＝３である。従って、Ｌ＝｛（３＋１）×（３＋２）／２｝−１＝９より、Ｋ＜Ｌ＝９になる。よって、この場合には、新規ノードＮ８を、基幹ノードＮ３の下位の基幹ノードとして接続することを禁止する。
【０１１１】
以上のようにすれば、配信網が縦方向に無駄に拡大して行くのを防止でき、コンテンツ配信の効率化を図れる。
【０１１２】
図２０、図２１に、以上の本実施形態の手法を実現する処理のフローチャートを示す。図２０は、図８に対応するフローチャートであり、図２０が図８と異なるのは、図２０ではステップＳ５３とステップＳ５４の処理が追加されている点であり、その他のステップの処理は同様である。
【０１１３】
即ち、ステップＳ５３では、基幹ノード数に対して配信網のノード数（総ノード数）が十分に多いか否かを判断する。具体的には上述のように、配信網のノード数をＫとし、基幹ノード数をｎとした場合に、Ｋ≧Ｌ＝ｆ（ｎ）か否かを判断する。そして、基幹ノード数ｎに対して配信網のノード数Ｋが十分に多い場合には、ステップＳ５５の新規ノードを配信網に接続する処理を行う。即ち、図９で説明した通常の接続処理を行う。
【０１１４】
一方、基幹ノード数に対して配信網のノード数が十分に多くない場合には、ステップＳ５４に示すように、新規ノードを分岐ノードに限定して配信網に接続する処理を行う。具体的には図２１のフローチャートに示す処理を行う。
【０１１５】
ここで図２１と図９が異なるのは、図９ではステップＳ１４、Ｓ１５の処理が行われるのに対して、図２１では、このステップＳ１４、Ｓ１５に対応する処理を行わない点である。即ち、図２１のステップＳ６２で、検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されていると判断された場合には、検索されたノードのコンテンツ配信先ノードとして基幹ノードが接続されているか否かを判断することなく（図９のステップＳ１４の判断を行うことなく）、無条件でその検索ノードを候補から除外する（ステップＳ６６）。従って、図９のステップＳ１５に示す処理（新規ノードを基幹ノードとして接続する処理）が行われないようになり、基幹ノードの増加を防止できるようになる。
【０１１６】
７．基幹ノード追加の制限手法
次に、基幹ノードの追加を制限する種々の手法について説明する。基幹ノードの追加を制限する手法としては、以下の（Ｉ）（II）（III）の方式を考えることができる。
（Ｉ）長方形方式
この方式は、前述の基幹ノード追加制限のルール（３）を適用するだけで実現できる手法である。配信網の形状は、配信網形成開始からノードの除外が発生するまでは三角形になるが、ノードの除外発生以降は、図２２（Ａ）に示すように徐々に長方形に変化して行く。この方式は、配信網の形状が縦方向に無駄に延びる事態を防止できると共に、制限方法が単純であり、配信網管理の処理負荷が軽いというメリットがある。
（II）三角形方式
この方式は、配信網の形状を変化させずに、三角形に維持したまま管理する手法である。この方式では、図２２（Ｂ）に示すように、各末端ノードＮ１５、Ｎ１４、Ｎ１３、Ｎ１２、Ｎ１１に至るまでの中継ノード数をほぼ一定にすることができ、端末ノードでの配信のタイムラグの均等化を図れ、データが伝達するまでの遅延の予測が容易になるというメリットがある。この方式では、接続ノード数をノード列ごとに管理し、ノードの追加探索時に調査対象ノードが属するノード列のノード数により、追加を制限する。
【０１１７】
具体的には、配信網の下位の基幹ノードに接続される分岐ノード列での追加可能ノード数の方が、上位の基幹ノードに接続される分岐ノード列での追加可能ノード数よりも小さくなるように制限する。更に具体的には、ｐの単調減少関数をＧ（ｐ）とした場合に、基幹ノード列の第ｐの基幹ノードに接続される分岐ノード列の追加可能ノード数をＭ＝Ｇ（ｐ）に制限する。
【０１１８】
例えば図２２（Ｂ）では、下位の基幹ノードＮ１０に接続される分岐ノード列ＢＮＬ４での追加可能ノード数の方が、上位の基幹ノードＮ１に接続される分岐ノード列ＢＮＬ１での追加可能ノード数よりも小さくなっている。このようにすることで、配信網の形状が三角形に維持される。
【０１１９】
例えば、基幹ノード数をｎとし、Ｇ（ｐ）＝ｎ−ｐとする。すると、図２２（Ｂ）では、基幹ノード数はｎ＝５であるため、第１（ｐ＝１）の基幹ノードＮ１に接続される分岐ノード列ＢＮＬ１の追加可能ノード数は、Ｍ＝Ｇ（ｐ）＝５−１＝４に制限される。同様に、第２（ｐ＝２）の基幹ノードＮ３に接続される分岐ノード列ＢＮＬ２の追加可能ノード数は、Ｍ＝Ｇ（ｐ）＝５−２＝３に制限され、第３（ｐ＝３）の基幹ノードＮ６に接続される分岐ノード列ＢＮＬ３の追加可能ノード数は、Ｍ＝Ｇ（ｐ）＝５−３＝２に制限され、第４（ｐ＝４）の基幹ノードＮ１０に接続される分岐ノード列ＢＮＬ４の追加可能ノード数は、Ｍ＝Ｇ（ｐ）＝５−４＝１に制限される。従って、結果として配信網の形状が三角形に維持される。
【０１２０】
そして図２２（Ｃ）では、分岐ノード列ＢＮＬ３に対する新規ノードＮ１６の追加は不可になり、分岐ノード列ＢＮＬ４に対する新規ノードＮ１７、Ｎ１８の追加も不可になる。
（III）追加区画管理方式
この方式は、現在存在している配信網のノードの集合である第１のノード集合に対するノードの追加を一定数で停止し、それ以降に追加されたノードを用いて、上記の第１のノード集合の基幹ノードの末端に新たな第２のノード集合を接続する手法である。この方式によれば、ノードの追加の際に、ノードの追加が停止された第１のノード集合をチェックする必要がなくなり、追加位置探索対象となるノードを限定できるため、追加位置探索処理の負荷を抑制できる。
【０１２１】
具体的には図２３において、第１の基幹ノード列ＫＮＬ１及びＫＮＬ１に接続される第１の分岐ノード列群により構成される第１のノード集合ＮＡＧ１のノード数が所定数になったとする。この場合には、第１の基幹ノード列ＫＮＬ１に直列接続される第２の基幹ノード列ＫＮＬ２及びＫＮＬ２に接続される第２の分岐ノード列群により構成される第２のノード集合ＮＡＧ２を設定する。そして、以降は、追加された新規ノードＮ２１、Ｎ２２、Ｎ２３を、第１のノード集合ＮＡＧ１ではなくて、第２のノード集合ＮＡＧ２のノードに接続する。これにより処理負荷を軽減しながら、ノード数を効率的に増加させることが可能になる。
【０１２２】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ノード接続管理手法、ノード列の接続の組み替え手法、コンテンツの配信手法等も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【図面の簡単な説明】
【０１２３】
【図１】本実施形態が適用される配信システム及びサーバシステムの構成例。
【図２】図２（Ａ）、図２（Ｂ）は、順序型配信網や二分木型配信網の例。
【図３】図３（Ａ）〜図３（Ｄ）は本実施形態のノード接続管理手法の説明図。
【図４】図４（Ａ）、図４（Ｂ）は本実施形態のノード接続管理手法の説明図。
【図５】本実施形態のノード接続管理手法の説明図。
【図６】図６（Ａ）、図６（Ｂ）はノード管理情報の説明図。
【図７】ノード管理情報の説明図。
【図８】本実施形態の処理を説明するためのフローチャート。
【図９】本実施形態の処理を説明するためのフローチャート。
【図１０】本実施形態の処理を説明するためのフローチャート。
【図１１】本実施形態の処理を説明するためのフローチャート。
【図１２】図１２（Ａ）、図１２（Ｂ）は本実施形態の処理を説明するための図。
【図１３】各基幹ノードに複数の分岐ノード列を接続する手法の説明図。
【図１４】図１３の手法の処理を説明するためのフローチャート。
【図１５】図１５（Ａ）〜図１５（Ｆ）は基幹ノード数が増加する問題の説明図。
【図１６】図１６（Ａ）〜図１６（Ｆ）は基幹ノード数が増加する問題の説明図。
【図１７】図１７（Ａ）〜図１７（Ｆ）は基幹ノード数が増加する問題の説明図。
【図１８】図１８（Ａ）〜図１８（Ｅ）は基幹ノード数が増加する問題の説明図。
【図１９】図１９（Ａ）、図１９（Ｂ）は基幹ノード数の増加を制限する手法の説明図。
【図２０】図１９（Ａ）、図１９（Ｂ）の手法の処理を説明するためのフローチャート。
【図２１】図１９（Ａ）、図１９（Ｂ）の手法の処理を説明するためのフローチャート。
【図２２】図２２（Ａ）、図２２（Ｂ）、図２２（Ｃ）は四角形方式、三角形方式の手法の説明図。
【図２３】追加区画管理方式の手法の説明図。
【符号の説明】
【０１２４】
ＫＮＬ  基幹ノード列、ＢＮＬ１、ＢＮＬ２、ＢＮＬ３  分岐ノード列、
１０  配信網、１００  サーバシステム、１１０  コンテンツ配信部、
１２０  ノード管理部、１７０  データベース、１７２  コンテンツ記憶部、
１７４  管理情報記憶部、１９０  通信制御部
【図１】
2009246664.tif 000003
【図２】
2009246664.tif 000004
【図３】
2009246664.tif 000005
【図４】
2009246664.tif 000006
【図５】
2009246664.tif 000007
【図６】
2009246664.tif 000008
【図７】
2009246664.tif 000009
【図８】
2009246664.tif 000010
【図９】
2009246664.tif 000011
【図１０】
2009246664.tif 000012
【図１１】
2009246664.tif 000013
【図１２】
2009246664.tif 000014
【図１３】
2009246664.tif 000015
【図１４】
2009246664.tif 000016
【図１５】
2009246664.tif 000017
【図１６】
2009246664.tif 000018
【図１７】
2009246664.tif 000019
【図１８】
2009246664.tif 000020
【図１９】
2009246664.tif 000021
【図２０】
2009246664.tif 000022
【図２１】
2009246664.tif 000023
【図２２】
2009246664.tif 000024
【図２３】
2009246664.tif 000025