JP2009246664A - サーバシステム、配信システム、及びノード管理方法 - Google Patents
サーバシステム、配信システム、及びノード管理方法 Download PDFInfo
- Publication number
- JP2009246664A JP2009246664A JP2008090591A JP2008090591A JP2009246664A JP 2009246664 A JP2009246664 A JP 2009246664A JP 2008090591 A JP2008090591 A JP 2008090591A JP 2008090591 A JP2008090591 A JP 2008090591A JP 2009246664 A JP2009246664 A JP 2009246664A
- Authority
- JP
- Japan
- Prior art keywords
- node
- nodes
- basic
- branch
- distribution network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】コンテンツ配信のタイムラグの低減等を図れるサーバシステム、配信システム及びノード管理方法の提供。
【解決手段】サーバシステム100は、配信網10のノード管理処理を行うノード管理部120と、ノード管理処理のためのノード管理情報を記憶する管理情報記憶部174を含む。配信網10は、コンテンツ配信元から直列接続される基幹ノードの列KNLと、基幹ノード列の各基幹ノードに直列接続される分岐ノードの列BNL1〜BNL3を有する。ノード管理部120は、配信網10に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、配信網10への追加順番が最も古いノードを検索し、検索されたノードに対して新規ノードを接続する処理を行う。
【選択図】図1
【解決手段】サーバシステム100は、配信網10のノード管理処理を行うノード管理部120と、ノード管理処理のためのノード管理情報を記憶する管理情報記憶部174を含む。配信網10は、コンテンツ配信元から直列接続される基幹ノードの列KNLと、基幹ノード列の各基幹ノードに直列接続される分岐ノードの列BNL1〜BNL3を有する。ノード管理部120は、配信網10に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、配信網10への追加順番が最も古いノードを検索し、検索されたノードに対して新規ノードを接続する処理を行う。
【選択図】図1
Description
本発明は、サーバシステム、配信システム、及びノード管理方法に関する。
近年、インターネット等の配信網を介して、映像、音声等のコンテンツのストリームデータを配信するサービスが増加している。このようなコンテンツの配信サービスでは、配信網のより一層の広帯域化が望まれているが、サーバを管理する配信業者のコスト負担が重く、例えばフルハイビジョン対応の高品質な映像コンテンツを視聴者に対して提供することが難しかった。
このような問題を解決するために、例えば特許文献1に開示されるように、いわゆるP2P(Peer to Peer)のリレー方式(バケツリレー方式、キャッシュ・アンド・トス方式)でコンテンツを配信するシステムが提案されている。この特許文献1の技術では、配信網の各ノード間でストリームデータの送受信を行うために、各ノードは、上流ノードと下流ノードの接続関係を示すトポロジ情報を交換して、上流ノードから下流ノードへストリームデータを中継している。この方式では、各ノード間でトポロジ情報を交換しているため、各ノードが自律的にトポロジ情報を記憶すると共に更新して管理することができる。
しかしながら、フルハイビジョン映像のようにデータ量の大きなコンテンツを配信する場合、このようなP2Pのリレー方式では、配信網の末端のノードにコンテンツが届くまでに大きなタイムラグが生じてしまうという問題があった。また、視聴を終了したノード(クライアント)が配信網から除外された場合に、コンテンツ中継のためのノードのトポロジ(配信順についてのトポロジ)を再構築する必要があり、そのためのサーバの処理負荷が非常に重いという問題があった。この問題は、配信網に参加するコミュニティのクライアント数が多くなるにつれて更に深刻になる。
特開2003−169089号公報
本発明の幾つかの態様によれば、コンテンツ配信のタイムラグの低減等を図れるサーバシステム、配信システム及びノード管理方法を提供できる。
本発明は、配信網を用いたコンテンツ配信のためのサーバシステムであって、前記配信網のノード管理処理を行うノード管理部と、前記ノード管理処理のためのノード管理情報を記憶する管理情報記憶部とを含み、前記配信網は、コンテンツ配信元から直列接続される基幹ノードの列と、前記基幹ノード列の各基幹ノードに直列接続される分岐ノードの列を有し、前記ノード管理部は、前記配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、前記配信網への追加順番が最も古いノードを検索し、検索されたノードに対して前記新規ノードを接続する処理を行うサーバシステムに関係する。
本発明によれば、配信網が、コンテンツ配信元に接続される基幹ノード列と、基幹ノード列の各基幹ノードに接続される分岐ノード列を有する。そして配信網に新規ノードが追加されると、コンテンツ配信先ノードの接続が可能なノードのうち、配信網への追加順番が最も古いノードに対して、新規ノードが接続される。このようにすれば、末端のノード等におけるコンテンツ配信のタイムラグの低減等を図ることが可能になる。また、簡素な処理で新規ノードの追加処理を実現することが可能になるため、サーバシステムの処理負荷も軽減できるようになる。
また本発明では、前記ノード管理部は、前記検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されていない場合には、前記新規ノードを新たな分岐ノードとして接続する処理を行ってもよい。
このようにすれば、コンテンツ配信先ノードとして分岐ノードが接続されていないノードに対して、新規ノードを新たな分岐ノードとして接続することが可能になる。
また本発明では、前記ノード管理部は、前記検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されているが、基幹ノードが接続されていない場合には、前記新規ノードを新たな基幹ノードとして接続する処理を行ってもよい。
このようにすれば、コンテンツ配信先ノードとして分岐ノードは接続されているが、基幹ノードは接続されていないノードに対して、新規ノードを新たな基幹ノードとして接続することが可能になる。
また本発明では、前記ノード管理部は、前記配信網から分岐ノードが除外され、前記除外された分岐ノードのコンテンツ配信先ノードとして下位の分岐ノードが存在する場合には、前記除外された分岐ノードの上位のノードを、前記除外された分岐ノードの下位の分岐ノードに接続する処理を行ってもよい。
このようにすれば、除外された分岐ノードの隙間を埋めるように、除外された分岐ノードの上位のノードと下位の分岐ノードとを接続することが可能になる。
また本発明では、前記ノード管理部は、前記配信網から基幹ノードが除外され、前記除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在する場合には、当該分岐ノードを、前記除外された基幹ノードの代わりとなる新たな基幹ノードに設定してもよい。
このようにすれば、除外された基幹ノードの隙間を埋めるように、分岐ノードを、除外された基幹ノードの代わりの新たな基幹ノードに設定できる。
また本発明では、前記ノード管理部は、前記新たな基幹ノードの下位の基幹ノードが存在し、前記下位の基幹ノードの前記配信網への追加順番が、前記新たな基幹ノードの追加順番よりも先である場合には、前記新たな基幹ノード及びそれに接続される分岐ノード列と、前記下位の基幹ノード及びそれに接続される分岐ノード列との入れ替え処理を行ってもよい。
このような入れ替え処理を行えば、配信網におけるノードの追加順番を維持することが可能になり、適正なコンテンツ配信を実現できる。
また本発明では、前記ノード管理部は、前記除外された基幹ノードに対して複数の分岐ノード列が接続される場合には、前記複数の分岐ノード列の起点となる分岐ノードのうち、前記配信網への追加順番が最も古いノードを、前記除外された基幹ノードの代わりに基幹ノードに設定してもよい。
このようにすれば、各基幹ノードに複数の分岐ノード列が接続される場合にも、新規ノードの適正な追加処理を実現できる。
また本発明では、前記ノード管理部は、前記除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在せず、前記除外された基幹ノードのコンテンツ配信先ノードとして下位の基幹ノードが存在する場合には、前記除外された基幹ノードの上位の基幹ノードを、前記除外された基幹ノードの前記下位の基幹ノードに接続する処理を行ってもよい。
このようにすれば、除外された基幹ノードの隙間を埋めるように、上位の基幹ノードと下位の基幹ノードを接続することが可能になる。
また本発明では、前記ノード管理部は、前記配信網に新規ノードが追加された場合に、前記新規ノードを、前記配信網の基幹ノードのコンテンツ配信先ノードとして接続することを、前記配信網のノード数に応じて許可してもよい。
このようにすれば、基幹ノード数が無駄に増加してしまう事態を防止でき、コンテンツ配信の効率化を図れる。
また本発明では、前記ノード管理部は、前記配信網のノード数をKとし、前記配信網の基幹ノード数をnとし、nの単調増加関数f(n)で表される所定数をL=f(n)とした場合に、ノード数Kが所定数L以上であることを条件に、前記新規ノードを、前記配信網の基幹ノードのコンテンツ配信先ノードとして接続することを許可してもよい。
このようにすれば、配信網のノード数Kが十分に多い場合に、新規ノードを基幹ノードとして追加することが許可されるようになる。
また本発明では、前記ノード管理部は、前記配信網の下位の基幹ノードに接続される分岐ノード列での追加可能ノード数の方が、上位の基幹ノードに接続される分岐ノード列での追加可能ノード数よりも小さくなるように、各分岐ノード列での追加可能ノード数を制限する処理を行ってもよい。
このようにすれば、末端ノードでの配信のタイムラグの均一化等を実現できる。
また本発明では、前記ノード管理部は、pの単調減少関数をG(p)とした場合に、前記基幹ノード列の第pの基幹ノードに接続される分岐ノード列の追加可能ノード数をM=G(p)に制限する処理を行ってもよい。
このようにすれば、各分岐ノード列での追加可能ノード数を適正に制限できる。
また本発明では、前記ノード管理部は、第1の基幹ノード列及び前記第1の基幹ノード列に接続される第1の分岐ノード列群により構成される第1のノード集合のノード数が所定数になった場合には、前記第1の基幹ノード列に直列接続される第2の基幹ノード列及び前記第2の基幹ノード列に接続される第2の分岐ノード列群により構成される第2のノード集合を設定し、前記第2のノード集合に対して新規ノードを追加してもよい。
このようにすれば、処理負荷を軽減しながら、ノード数を効率的に増加させることが可能になる。
また本発明では、前記配信網の基幹ノードに対して接続可能なコンテンツ配信先ノードの個数をIとし、前記配信網の分岐ノードに対して接続可能なコンテンツ配信先ノードの個数をJとした場合に、I>Jであってもよい。
また本発明では、I≧2であり、J=1であってもよい。
また本発明では、前記配信網のコンテンツ配信元の各ノードからコンテンツ配信先の各ノードに対してP2P(Peer to Peer)のリレー方式で配信されるコンテンツを、前記基幹ノード列の起点の基幹ノードに対して送信するコンテンツ配信部を含んでもよい。
また本発明は、上記のいずれかに記載のサーバシステムと、前記配信網とを含む配信システムに関係する。
また本発明は、コンテンツ配信のためのノード管理方法であって、コンテンツ配信元から直列接続される基幹ノードの列と、前記基幹ノード列の各基幹ノードに直列接続される分岐ノードの列とを有する配信網を設定し、前記配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、前記配信網への追加順番が最も古いノードを検索し、検索されたノードに対して前記新規ノードを接続するノード管理方法に関係する。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.配信システム、サーバシステム
図1に本実施形態により実現されるコンテンツの配信システム(ノード管理システム)やサーバシステムの構成例を示す。
図1に本実施形態により実現されるコンテンツの配信システム(ノード管理システム)やサーバシステムの構成例を示す。
図1の配信システムは、サーバシステム100と、サーバシステム100のクライアントとなる複数のノードN1〜N10を有する配信網10を含む。なお、配信システムは図1の構成に限定されず、他の構成要素を追加するなどの種々の変形実施が可能である。
配信網10(ネットワーク、通信回線)は、例えばインターネットを利用した通信路であり、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLANの他、電話通信網やケーブル網等の通信網を含むことができる。また通信方法については有線/無線を問わない。
配信網10は、相互に通信接続される複数のノードN1〜N10を含む。各ノードは、インターネット等への接続機能を有するクライアント端末により構成される。このクライアント端末は、例えば家庭用ゲーム装置、携帯型ゲーム装置、PC(パーソナルコンピュータ)、携帯型情報端末等により実現され、図示しない操作部、処理部、通信制御部、記憶部、情報記憶媒体用のインターフェース等を有する。操作部は、視聴者がコンテンツ視聴のために必要な各種の入力を行うためのものである。処理部は、暗号化されたコンテンツの復号化処理、映像や音声の再生処理を行う。また、コンテンツ配信元のノードから受信したコンテンツのデータを記憶部にバッファリング(キャッシュイング)し、バッファリングしたコンテンツのデータをリレー方式(バケツリレー方式)でコンテンツ配信先のノードに再送する処理等を行う。この処理部の機能はCPU等のプロセッサやプロセッサ上で動作するプログラムにより実現できる。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶される。通信制御部は、他のノードやサーバとの通信処理を行うものであり、その機能は通信用のASICやファームウェアにより実現できる。記憶部は、処理部や通信制御部のワーク領域として機能するものであり、その機能はRAMやHDD等により実現できる。また記憶部は、コンテンツ配信元のノードから受信したコンテンツのデータのキャッシュメモリとしても機能する。情報記憶媒体用のインターフェースは、プログラムやデータが記憶される情報記憶媒体へのアクセス処理などを行う。
図1に示すように、配信網10は、コンテンツ配信元(サーバシステム、コンテンツ配信部)から直列接続(接続)される基幹ノードN1、N3、N6、N10の列である基幹ノード列KNLを含む。即ち、これらの基幹ノードN1、N3、N6、N10は、サーバシステム100から下方向(第1の方向)に一列に直列接続される。
また配信網10は、基幹ノード列KNLの各基幹ノード(起点ノード)に直列接続(接続)される分岐ノードの列BNL1、BNL2、BNL3を含む。具体的には、分岐ノード列BNL1を構成する分岐ノードN2、N4、N7は、基幹ノードN1に対して直列接続される。即ち、分岐ノードN2、N4、N7は、基幹ノードN1から、横方向(第1の方向に直交する第2の方向)に分岐することなく一列に直列接続される。同様に、分岐ノード列BNL2を構成する分岐ノードN5、N8は、基幹ノードN3に対して直列接続され、分岐ノード列BNL3を構成する分岐ノードN9は、基幹ノードN6に対して直列接続される。
このように図1の単純分岐型の配信網10では、基本となる直列接続された基幹ノードN1、N3、N6、N10が設けられると共に、N1、N3、N6、N10の各基幹ノードを起点として、分岐ノードN2、N4、N7の列やN5、N8の列やN9の列が、一列に直列接続されている。なおN1〜N10の各ノードの番号は、コンテンツの配信順番号(ノードの追加順番)を表している。具体的には、起点となるノードN1(上位ノード)は、そのコンテンツ配信元であるサーバ(サーバシステム、コンテンツ配信部)からコンテンツを受信する。そして受信したコンテンツを中継して、そのコンテンツ配信先ノードN2、N3(下位ノード)に送信(再送)する。ノードN2(上位ノード)は、そのコンテンツ配信元ノードN1からコンテンツを受信すると、そのコンテンツを中継して、そのコンテンツ配信先ノードN4(下位ノード)に送信する。同様にノードN3(上位ノード)も、そのコンテンツ配信元ノードN1からコンテンツを受信すると、そのコンテンツを中継して、そのコンテンツ配信先ノードN5、N6(下位ノード)に送信する。
図2(A)に、順序型配信網の例を示す。図2(A)では、コンテンツ配信元であるサーバに対してノードN1、N2、N3が配信順(ノードの追加順番)に直列接続されている。即ち図2(A)では、ノードN1は、サーバからコンテンツを受信すると、受信したコンテンツを中継してノードN2に送信する。ノードN2は、ノードN1からコンテンツを受信すると、受信したコンテンツを中継してノードN3に送信する。
そして図2(A)の順序型配信網では、ノードN2であるクライアントが、視聴終了や回線切断により配信網から除外されると、その前後のノードであるN1とN3とを接続することで、最小限の処理負荷(処理コスト)で、配信網を維持する。
しかしながら、図2(A)では、配信網のノード数が増えてくると、末端のノードに対してのコンテンツ配信が開始するまでに、長いタイムラグが発生してしまう。例えばノードN2が、ノードN1からコンテンツを受信して、受信したコンテンツを中継(リレー)してノードN3に送信するまでに、データのバッファリングや配信準備等のために一定の中継時間を要する。このため、末端のノードでは、この中継時間がノード数分だけ積算されたタイムラグが発生してしまい、これによりコンテンツの視聴開始時間が遅れ、ユーザの待ち時間が長くなってしまう。
図2(B)に二分木型配信網の例を示す。図2(B)の二分木構造の配信網によれば、ノードが分岐されているため、図2(A)の配信網に比べて、末端のノードでの配信時間のタイムラグを短縮できるという利点がある。しかしながら、視聴終了や回線切断により配信網から特定のノードが除外された場合に、配信順を崩さないようにするノードのトポロジの再構築処理の負荷が非常に大きいという問題点がある。
このように図2(A)の構成では、ノード除外時の配信順維持のためのトポロジ再構築の処理負荷は軽いが、末端ノードでの配信開始のタイムラグが大きいという問題点があり、図2(B)の構成では、末端ノードでのタイムラグは比較的小さいが、トポロジ再構築の処理負荷が重いという問題点がある。
これに対して、図1の本実施形態の配信網10の構成によれば、末端のノードN7、N8、N9、N10での配信開始のタイムラグを、同じノード数で比較した場合に図2(A)に比べて小さくできる。例えばノード数が10である場合に、末端のノードにコンテンツが届くまでに図2(A)では9回の中継処理が必要になるが、図1では3回の中継処理で済むため、タイムラグを大幅に軽減できる。更に図1の配信網10の構成によれば、配信順の維持のためのトポロジ再構築の処理負荷を、図2(B)に比べて軽くできる。このように図1では、タイムラグの低減とトポロジの再構築の処理負荷の軽減を両立できる。
図1においてサーバシステム100は、コンテンツ配信部110、ノード管理部120、データベース170、通信制御部190を含む。なお、サーバシステム100は図1の構成に限定されず、これらの一部の構成要素(例えばコンテンツ配信部)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
データベース170(データベースサーバ)は、例えばMySQLなどで実現されるリレーショナルデータベースであり、コンテンツ配信やサーバ管理やノード管理に必要な様々な情報を記憶する。例えば配信管理情報、サーバ管理情報、ノード管理情報、ユーザ情報などを記憶する。具体的にはデータベース170は、コンテンツ記憶部172、管理情報記憶部174を含む。コンテンツ記憶部172は、配信対象となる映像、音声等のコンテンツを記憶する。管理情報記憶部174は、ノード管理処理のためのノード管理情報(ノード情報、配信網情報等)を記憶する。
通信制御部190(通信サーバ)は、配信網10を介した情報転送のための各種の通信制御処理を行う。具体的にはインターネット等のプロトコルに従った通信に必要な各種処理を行う。
コンテンツ配信部110(コンテンツサーバ、コンテンツ配信元)は、データベース170のコンテンツ記憶部172(コンテンツデータベース)に記憶される映像(映画)、音声(音楽)、静止画、テキスト、ゲームプログラム、ゲームデータ等のコンテンツの配信処理(ストリーム配信)を行う。具体的には、配信網10のコンテンツ配信元の各ノードからコンテンツ配信先の各ノードに対してP2P(Peer to Peer)のリレー方式で配信されるコンテンツを、基幹ノード列KNLの起点の基幹ノードN1に対して送信する。すると、コンテンツ配信部110からコンテンツを受信した基幹ノードN1は、コンテンツ配信元として、そのコンテンツ配信先のノードN2、N3に対してリレー方式でコンテンツを配信(ストリーム転送)する。この場合にコンテンツ配信部110は、必要であれば、DES、AES等の共通鍵暗号化方式や、公開鍵暗号化方式などで、コンテンツの暗号化処理を行う。そしてクライアントである各ノードは、暗号化されたコンテンツの復号化処理を行う。また各ノードは、コンテンツの復号化処理や再生処理を行うと共に、後段の下位のノードに対してコンテンツを再配信する中継処理を行う。
ノード管理部120(ノード管理サーバ、斡旋サーバ)は、配信網10のノード管理処理を行う。例えば配信網10への新規ノードの追加処理や、視聴終了や回線切断されたノードを配信網10から除外する処理や、ノード列の接続を組み替える処理や、ノードからの各種要求に応答する処理や、ノードに対して各種要求を発行する処理などを行う。
具体的にはノード管理部120は、配信網10に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、配信網10への追加順番(配信順)が最も古いノードを検索する。即ち、追加順番の番号(配信順番号)が最も若いノードを検索する。そして検索されたノードに対して新規ノードを接続するための処理(検索や接続の要求処理や応答処理等)を行う。例えば、検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されていない場合(分岐ノードの接続が可能な場合)には、新規ノードを新たな分岐ノードとして接続する。一方、検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されているが、基幹ノードが接続されていない場合(分岐ノードの接続は不可であるが基幹ノードの接続は可能である場合)には、新規ノードを新たな基幹ノードとして接続する。
また、ノード管理部120は、視聴終了や回線切断により配信網10から分岐ノードが除外され、除外された分岐ノードのコンテンツ配信先ノードとして下位(下流)の分岐ノードが存在する場合(下位の分岐ノードが接続されている場合)には、除外された分岐ノードの上位(上流)のノード(分岐ノード又は基幹ノード)を、その下位の分岐ノードに接続する。
一方、ノード管理部120は、視聴終了や回線切断により配信網10から基幹ノードが除外され、除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在する場合(分岐ノードが接続されている場合)には、その分岐ノードを繰り上げて、新たな基幹ノードに設定する。この際に、新たな基幹ノードの下位(下流)の基幹ノードが存在し、この下位の基幹ノードの配信網10への追加順番が、新たな基幹ノードの追加順番よりも先である場合(番号が若い場合)には、その新たな基幹ノード及びそれに接続される分岐ノード列と、下位の基幹ノード及びそれに接続される分岐ノード列との入れ替え処理を行う。なお除外された基幹ノードに対して複数の分岐ノード列が接続される場合には、複数の分岐ノード列の起点となる分岐ノードのうち、配信網10への追加順番が最も古い分岐ノード(最も番号が若い分岐ノード)を、除外された基幹ノードの代わりに基幹ノードに設定してもよい。
またノード管理部120は、除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在せず、除外された基幹ノードのコンテンツ配信先ノードとして下位の基幹ノードが存在する場合(分岐ノードが非接続で、下位の基幹ノードが接続されている場合)には、除外された基幹ノードの上位の基幹ノードを、下位の基幹ノードに接続する。
更にノード管理部120は、配信網10に新規ノードが追加された場合に、新規ノードを、配信網10の基幹ノードのコンテンツ配信先ノードとして接続することを、配信網10のノード数(総ノード数)に応じて許可(制限)してもよい。例えば、配信網10のノード数をKとし、基幹ノード数をnとし、nの関数f(n)で表される所定数をL=f(n)とした場合に、ノード数Kが所定数L以上であることを条件に、新規ノードを、基幹ノードのコンテンツ配信先ノードとして接続する。或いは、配信網10の下位の基幹ノードに接続される分岐ノード列での追加可能ノード数の方が、上位の基幹ノードに接続される分岐ノード列での追加可能ノード数よりも小さくなるように制限する。具体的には、pの関数をG(p)とした場合に、第pの基幹ノードに接続される分岐ノード列の追加可能ノード数をM=G(p)に制限する。或いは、第1の基幹ノード列及びそれに接続される第1の分岐ノード列群により構成される第1のノード集合のノード数が所定数になった場合には、第2の基幹ノード列及びそれに接続される第2の分岐ノード列群により構成される第2のノード集合を設定してもよい。
2.ノード接続管理手法
本実施形態のP2P配信システムでは、コンテンツ配信を要求している複数のクライアント(ノード)について、迅速且つ円滑に、サーバ・クライアント間、或いは2つのクライアント間のP2P接続ができるように、配信順序を最適化し、接続を斡旋している。即ち配信システムを実現するサーバシステム(適宜、単にサーバと呼ぶ)は、帯域性能が限られており、同時配信可能なクライアント数が少ないため、本実施形態のシステムによって効率の良いノード接続管理(斡旋)を実現する。以下、映画等の動画を配信する場合のノード接続管理手法について、図3(A)〜図5を用いて詳細に説明する。
本実施形態のP2P配信システムでは、コンテンツ配信を要求している複数のクライアント(ノード)について、迅速且つ円滑に、サーバ・クライアント間、或いは2つのクライアント間のP2P接続ができるように、配信順序を最適化し、接続を斡旋している。即ち配信システムを実現するサーバシステム(適宜、単にサーバと呼ぶ)は、帯域性能が限られており、同時配信可能なクライアント数が少ないため、本実施形態のシステムによって効率の良いノード接続管理(斡旋)を実現する。以下、映画等の動画を配信する場合のノード接続管理手法について、図3(A)〜図5を用いて詳細に説明する。
本実施形態では、P2Pのリレー方式(バケツリレー方式、キャッシュ・アンド・トス方式)にて、直列に接続されたクライアント(ノード)間で順番にコンテンツのデータを受け渡して行く。そして視聴終了や回線切断により配信網から外れるクライアントが発生した場合には、その前後の上位、下位のクライアントを接続することで、最低限の処理コストで配信網を維持する。このとき、配信網の接続変更を迅速に行うために、予め接続変更候補のクライアント同士で予備的なコネクション(セッション)を確立しておき、接続の切り替え処理の負荷(コスト)を低減する。また、直接P2P接続している2つのクライアントの順序を入れ替えるなどして、小規模な変更処理で配信網の最適化を図る。
具体的には本実施形態では図1に示すように、図2(A)の基本となる順序型配信網に加えて、各基幹ノードを起点として分岐ノードを更に直列接続する。そして、P2P接続の順序として以下のルールを採用する。
(1)基幹ノード(図1のノードN1、N3、N6、N10)に対しては、配信先ノードとして、2個(広義にはI個)までの接続を許可する。一方、分岐ノード(ノードN2、N4、N5、N7、N8、N9)に対しては、配信先ノードとして、1個(広義にはJ個)だけの接続を許可する。
(1)基幹ノード(図1のノードN1、N3、N6、N10)に対しては、配信先ノードとして、2個(広義にはI個)までの接続を許可する。一方、分岐ノード(ノードN2、N4、N5、N7、N8、N9)に対しては、配信先ノードとして、1個(広義にはJ個)だけの接続を許可する。
別の言い方をすれば、基幹ノードに対して接続可能なコンテンツ配信先ノードの個数をIとし、分岐ノードに対して接続可能なコンテンツ配信先ノードの個数をJとした場合に、I>Jとする。図1では、I=2、J=1になっており、基幹ノードに対しては2個のコンテンツ配信先ノードを接続でき、分岐ノードに対しては1個のコンテンツ配信先ノードを接続できる。なお、各基幹ノードに対して、2本以上の分岐ノード列を接続する構成にしてもよく、この場合にはI≧3になる。従って、本実施形態では、I≧2、J=1の関係が成り立つことになる。
(2)配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、配信網への追加順番(接続順番)が最も古いノードに対して新規ノードを接続する。
(2)配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、配信網への追加順番(接続順番)が最も古いノードに対して新規ノードを接続する。
例えば図3(A)において、サーバに対して基幹ノードN1、N3が直列接続され、基幹ノードN1に対して分岐ノードN2が接続されている。ここで上記ルール(1)によれば、基幹ノードN1、N3に対する配信先ノードの接続可能個数はI=2であり、分岐ノードN2に対する配信先ノードの接続可能個数はJ=1である。従って、図3(A)では、基幹ノードN1には、追加された新規ノードを接続できず、基幹ノードN3には2個の新規ノードを接続でき、分岐ノードN2には1個の新規ノードを接続できる。
そして図3(A)の接続構成の配信網に対して、新規ノードN4、N5、N6(新たに視聴を開始したクライアント)を追加すると、上記ルール(2)により、最終的な接続構成は図3(D)のようになる。
即ち、図3(A)において、ノードN1には、コンテンツ配信先ノード(自身がコンテンツを送信するノード)としてN2とN3が接続されており、基幹ノードN1の接続可能個数はI=2であるため、新たなコンテンツ配信先ノードを接続することはできない。一方、ノードN2、N3には、コンテンツ配信先ノードは接続されておらず、新たなコンテンツ配信先ノードの接続が可能である。従って、上記ルール(2)により、コンテンツ配信先ノードの接続が可能なノードN2、N3の中から、配信網への追加順番が最も古いノードを検索する。すると、ノードN2の方がN3よりも追加順番が古いので(番号が若いので)、上記ルール(2)により、図3(B)に示すようにノードN2に対して新規ノードN4を接続する。
また図3(B)において、ノードN1、N2には、新たなコンテンツ配信先ノードを接続することはできない。上記ルール(1)より、基幹ノードN1の接続可能個数はI=2であり、分岐ノードN2の接続可能個数はJ=1であるからである。一方、ノードN3、N4には、新たなコンテンツ配信先ノードの接続が可能である。そして、ノードN3の方がN4よりも配信網への追加順番が古い(番号が若い)。従って、上記ルール(2)により、図3(C)に示すようにノードN3に対して新規ノードN5を接続する。
また図3(C)において、ノードN3、N4、N5は、新たなコンテンツ配信先ノードの接続が可能である。そして、ノードN3の方がN4、N5よりも配信網への追加順番が古い。従って、上記ルール(2)により、図3(D)に示すようにノードN3に対して新規ノードN6を接続する。
ここで図3(A)のノードN2に着目すると、ノードN2のコンテンツ配信先ノードとして分岐ノードが接続されていないので、図3(B)に示すように、新規ノードN4は、新たな分岐ノードとして接続される。また図3(C)のノードN3に着目すると、ノードN3のコンテンツ配信先ノードとして分岐ノードN5は接続されているが、基幹ノードは接続されていないため、図3(D)に示すように、新規ノードN6は、新たな基幹ノードとして接続される。
次に、ノード(クライアント)の除外(離脱)処理及びそれによる配信網の組み替え処理について、図4(A)〜図5を用いて説明する。
例えば図4(A)では、視聴終了により基幹ノードN1が除外されている。また除外された基幹ノードN1のコンテンツ配信先ノードとして分岐ノードN2が存在する。この場合には、この分岐ノードN2を、除外された基幹ノードN1の代わりとなる新たな基幹ノードに設定する。即ち、視聴終了や回線切断により、配信網からノード(クライアント)を除外した場合には、各分岐ノード列の残ったノードを左に詰めて隙間を埋める。
また図4(B)では、基幹ノードN1が除外されたが、基幹ノードN1には分岐ノードが接続されていない。従って、この場合には、下の列であるノードN3、N5やN6を順次繰り上げる。
なお図4(A)において、配信網から分岐ノードN2が除外されたとする。この場合に、除外された分岐ノードN2のコンテンツ配信先ノードとして下位の分岐ノードN4が存在する。従って、この場合には、除外された分岐ノードの上位のノードN1(分岐ノード又は基幹ノード)を、下位の分岐ノードN4に接続することになる。即ち、ノードN2の除外により残ったノードN4を、左に詰めて隙間を埋める。
基幹ノードN1を除外した場合には配信網の組み替え処理が必要な場合がある。例えば図5では、基幹ノードN2が除外され、ノードN4が新たな基幹ノードに設定されている。そして、この新たな基幹ノードN4の下位の基幹ノードN3が存在し、下位の基幹ノードN3の配信網への追加順番は、新たな基幹ノードN4の追加順番よりも先である。従って、この場合には、新たな基幹ノードN4及びそれに接続される分岐ノード列と、下位の基幹ノードN3及びそれに接続される分岐ノード列との入れ替え処理を行う。即ち再配置により、基幹ノードが新たな基幹ノードに代わった場合には、上下の基幹ノード間で追加順番(配信順)が逆になっていないかをチェックし、問題がある場合には列を入れ替える。
3.ノード管理情報
次に図1の管理情報記憶部174に記憶されるノード管理情報の詳細について図6(A)〜図7を用いて説明する。
次に図1の管理情報記憶部174に記憶されるノード管理情報の詳細について図6(A)〜図7を用いて説明する。
本実施形態のノード管理情報は、ノード情報、ノード配信順情報、配信網情報を含むことができる。ここでノード情報は、各ノードについての配信順、配信網における位置、その接続ノードなどの情報である。図6(A)にノード情報のデータ構造の例を示す。このノード情報は、接続ノード情報、ノード配信順番号、配信網位置情報を含む。
接続ノード情報は、そのノードに他のノードが接続されているか否かを示したり、接続されている場合にはどのノードが接続されているのかを示す情報である。具体的には、接続ノード情報は、そのノードの上位の基幹ノード、上位の分岐ノード、下位の分岐ノード、下位の基幹ノードの番号等を含む。
ノード配信順番号は、ノードが配信網に追加された順番を数値で表したものである。配信網位置情報は、ノードが配信網内に配置されている位置や、ノードが基幹ノードなのか分岐ノードなのかを知るための情報である。具体的には、配信網位置情報は、ノード列番号、ノード連結順番号(ノード列内の順番)を有する。
ノード配信順情報は、図6(B)に示すように、各ノードのノード情報を、配信網に追加された順にリスト化した情報である。新規ノードの追加位置を検索する際には、このノード配信順情報のリスト順にノード情報をチェックすることになる。
なお図6(B)には、図3(D)のようなノード構成の場合のノードN3のノード情報の例が示されている。このノード情報では、図3(D)のように、ノードN3の上位基幹ノード、下位分岐ノード、下位基幹ノードが、各々、ノードN1、N5、N6であり、上位分岐ノードは存在しないことが示されている。またノードN3の配信順番号が「3」であり、配信網位置が[1,0]であることが示されている。
配信網情報は、配信網全体の情報を管理するための情報であり、図7に示すように、ノード総数、基幹ノード数(ノード列数)、ノード列の接続ノード数を含む。例えば図7は、図3(D)のノード構成に対応するものであり、ノード総数は9であり、基幹ノード数は3であり、ノード列ノード数は[3,2,1]になっている。また図7では、図6(A)のノード連結順番号(横軸)や、ノード列番号(縦軸)が示されていると共に、ノードN1〜N6のノード情報が模式的に示されている。
4.詳細な処理
次に、新規ノードが追加された場合の本実施形態の詳細な処理例について、図8〜図11のフローチャートを用いて説明する。
次に、新規ノードが追加された場合の本実施形態の詳細な処理例について、図8〜図11のフローチャートを用いて説明する。
図8、図9は新規ノードの追加処理に関するフローチャートである。新規ノードが追加された場合には、まず図8に示すように、配信網に接続されたノードが存在するか否かを判断する(ステップS1)。そして、他のノードが存在しない場合には、追加された新規ノードを起点の基幹ノードとしてサーバに接続する(ステップS2)。一方、存在する場合には、新規ノードを配信網に接続するための処理を実行する(ステップS3)。
図9は、図8のステップS3の処理の詳細を示すフローチャートである。まず配信網への追加順番が最も古いノードを検索する(ステップS11)。この検索処理は図6(B)のノード配信順情報等を用いて実現できる。
次に、検索されたノードのコンテンツ配信先ノード(下位のノード)として分岐ノードが接続されているか否かを判断する(ステップS12)。この判断処理は図6(A)のノード情報等を用いて実現できる。そして、検索されたノードに分岐ノードが接続されていない場合には、新規ノードを、新たな分岐ノードとして接続する(ステップS13)。
一方、検索されたノードに分岐ノードが接続されている場合には、コンテンツ配信先ノード(下位のノード)として基幹ノードが接続されているか否かを判断する(ステップS14)。そして接続されていない場合には、新規ノードを、新たな基幹ノードとして接続する(ステップS15)。一方、基幹ノードが接続されている場合には、検索されたノードには、新規ノードを接続できないため、検索されたノードを候補から除外する(ステップS16)。そして、他の候補となるノードが存在するか否かを判断し(ステップS17)、存在する場合にはステップS11に戻る。
以上のように新規ノードの追加処理を行えば、末端ノードへの配信開始の少ないタイムラグを維持しながら、負荷が少ない効率的な処理で、新規ノードを配信網に接続することが可能になる。
図10は、ノード除外時の配信網の組み替え処理に関するフローチャートである。ここでは説明を簡単にするために、図12(A)又は図12(B)のようにノードが接続されていると想定する。即ち図12(A)において、ノードAは、視聴終了等により除外された分岐ノードであり、ノードBは、ノードAに接続されている上位のノード(分岐ノード、基幹ノード)であり、ノードCは、ノードAに接続されている下位の分岐ノードである。また図12(B)において、ノードAは、除外された基幹ノードであり、ノードDはノードAの上位の基幹ノードであり、ノードEはノードAの下位の基幹ノードである。
図10に示すように、まず、除外されたノードAが基幹ノードか否かを判断する(ステップS21)。そして図12(A)に示すように、ノードAが基幹ノードではなく分岐ノードである場合には、下位の分岐ノードCが存在するか否かを判断し(ステップS22)、存在する場合にはノードBとノードCを互いに接続する(ステップS23)。このようにすれば、ノードAが除外された場合に、ノードCを左に詰めてノードBに接続できる。
一方、図12(B)に示すように、除外されたノードAが、ステップS21で基幹ノードであると判断された場合には、下位の分岐ノードCが存在するか否かを判断する(ステップS24)。そしてノードCが存在する場合には、ノードCを新たな基幹ノードに設定する(ステップS25)。即ち、ノードCを左に詰めて、ノードAの代わりに基幹ノードに設定する。そして、ノード列の接続順を組み替える処理を行う(ステップS27)。
一方、ステップS24で、下位の分岐ノードCが存在しないと判断された場合には、下位の基幹ノードEが存在するか否かを判断する(ステップS28)。そして、下位の基幹ノードEが存在する場合には、基幹ノードDと基幹ノードEを互いに接続する(ステップS29)。このようにすれば、ノードAが除外された場合に、ノードEを上に詰めでノードDに接続できるようになる。
図11は、図10のステップS27の処理の詳細を示すフローチャートである。即ち、図12(B)においてノードCを新たな基幹ノードに設定した場合の組み替え処理に関するフローチャートである。
まず、ノードCに下位の基幹ノードが接続されているか否かを判断する(ステップS31)。そして接続されている場合には、下位の基幹ノードEの配信網への追加順番がノードCよりも先か否かを判断する(ステップS32)。そして、先である場合には、ノードC及びその分岐ノード列とノードE及びその分岐ノード列を入れ替える処理を行う(ステップS33)。即ち図5で説明した入れ替え処理を行う。そして入れ替えたノードの上位、下位ノードとの接続を更新する(ステップS34)。
以上のような組み替え処理を行えば、ノードAが除外された場合にも、P2Pのリレー方式における配信順の維持を、少ない処理負荷で実現できる。
5.複数の分岐ノード列の接続
以上では、各基幹ノードに対して1個の分岐ノード列を接続する場合について説明した。即ち、基幹ノードに対して接続可能なコンテンツ配信先ノードの個数をIとし、分岐ノードに対して接続可能なコンテンツ配信先ノードの個数をJとした場合に、I=2、J=1である場合について説明した。しかしながら、本実施形態では、各基幹ノードに対して複数の分岐ノード列を接続するようにしてもよい。即ちI>2であってもよい。
以上では、各基幹ノードに対して1個の分岐ノード列を接続する場合について説明した。即ち、基幹ノードに対して接続可能なコンテンツ配信先ノードの個数をIとし、分岐ノードに対して接続可能なコンテンツ配信先ノードの個数をJとした場合に、I=2、J=1である場合について説明した。しかしながら、本実施形態では、各基幹ノードに対して複数の分岐ノード列を接続するようにしてもよい。即ちI>2であってもよい。
例えば図13において、基幹ノード列KNLを構成する基幹ノードN1に対して、複数の分岐ノード列BNL11、BNL12が接続されている。同様に、基幹ノード列KNLを構成する基幹ノードN4に対して、複数の分岐ノード列BNL21、BNL22が接続されている。このように複数の分岐ノード列を接続可能にすることで、末端ノードへの配信のタイムラグを更に小さくすることを期待できる。
なお、図13のようなノードの接続構成の場合には、図9のステップS12において、検索されたノードが基幹ノードである場合に、複数の分岐ノード列の全ての分岐ノードが、コンテンツ配信先ノードとして接続されているか否かをチェックすればよい。即ち図13において、基幹ノードN1に対して全ての分岐ノードN2、N3が接続されているか否かをチェックし、基幹ノードN4に対して全ての分岐ノードN7、N8が接続されているか否かをチェックする。
また、ノード除外時の配信網の組み替え処理については、図10のフローチャートで示される処理の代わりに、図14のフローチャートで示される処理を行えばよい。図14が図10と異なるのは、図10のステップS24、S25の代わりに、図14ではステップS44、S45、S46に示す処理が行われる点であり、その他のステップの処理は同様となる。
即ち図14のステップS44では、除外されたノードAに下位の分岐ノードが接続されているか否かを判断する。例えば図13において基幹ノードN1が除外された場合には、基幹ノードN1に下位の分岐ノードN2、N3が接続されているか否かを判断する。そしてステップS45、S46では、接続された下位の分岐ノードのうち、追加順番が最も古いノードを検索し、検索されたノードを新たな基幹ノードに設定する。即ち図13では、下位の分岐ノードN2、N3のうち追加順番が最も古いノードを検索すると、分岐ノードN2の方が追加順番が古いノードであるため、分岐ノードN2が新たな基幹ノードに設定されることになる。
以上のように図13では、除外された基幹ノードN1に対して複数の分岐ノード列BNL11、BNL12が接続される場合には、分岐ノード列BNL11、BNL12の起点となる分岐ノードN2、N3のうち、配信網への追加順番が最も古いノードN2を、ノードN1の代わりに基幹ノードに設定している。
6.基幹ノード数の制限
さて、以上の図1〜図14で説明した本実施形態の手法でノード接続等を管理した場合に、分岐ノード数がそれほど増加せずに、基幹ノード数の方が大きく増加してしまう可能性がある。このように基幹ノード数が増加してしまうと、末端ノードへの配信のタイムラグが大きくなってしまい、効率の良い配信を実現できなくなるおそれがある。
さて、以上の図1〜図14で説明した本実施形態の手法でノード接続等を管理した場合に、分岐ノード数がそれほど増加せずに、基幹ノード数の方が大きく増加してしまう可能性がある。このように基幹ノード数が増加してしまうと、末端ノードへの配信のタイムラグが大きくなってしまい、効率の良い配信を実現できなくなるおそれがある。
例えば図15(A)〜図19(B)に、視聴終了によるノードの除外処理と、視聴開始による新規ノードの追加処理を繰り返した場合のノード構造の変化の例を示す。
例えば図15(B)ではノードN1、N2、N3が視聴終了により除外され、図15(D)では、新規ノードN11、N12、N13が視聴開始により追加されている。同様に、図15(F)ではノードN4、N5、N6が除外され、図16(B)では新規ノードN14、N15、N16が追加されている。また、図16(D)ではノードN7、N8、N9が除外され、図16(E)では新規ノードN17、N18、N19が追加されている。また図17(B)ではノードN10、N11、N12が除外され、図17(D)では新規ノードN20、N21、N22が追加され、図17(F)ではノードN13が除外されている。また図18(B)では新規ノードN23、N24が追加され、図18(D)ではノードN14、N15、N16、N17が除外されている。
そして図18(E)では、分岐ノードの数は増えず、基幹ノードの数ばかりが増える結果となってしまっている。そして図18(E)では、分岐ノードN23に比べて、末端の基幹ノードN22での配信のタイムラグが大きくなってしまい、効率的なコンテンツ配信を実現できなくなる。
即ち、本実施形態では前述のルール(1)(2)により新規ノードの接続処理等を行っている。しかしながら、これらのルール(1)(2)のみでは、定期的にノードが追加された場合に、徐々に基幹ノード数が増加して行くのに対して、基幹ノード数が減少するには、ノード列にノードが追加される前に全てのノードが配信網から除外される必要がある。従って、視聴終了による自然なノード除外のみでは、基幹ノード数はなかなか減少しない。その結果、ノードの追加及び除外を繰り返すうちに、配信網の総ノード数に比較して、基幹ノード数(ノード列数)が増加してしまう。そして、基幹ノード数が増加して、配信網が縦に長くなると、末端のノードに到達するまでの中継ノード数が増えてしまい、結果として配信効率が悪化する。
このような問題を解消するためには、例えば基幹ノードの追加に条件を設定し、一方的な基幹ノード数の増加を防ぐことが望ましい。そこで上記のルール(1)に加えて、以下のルール(3)を加える。
(3)ルール(1)において、基幹ノードの例えば2つの接続先のうち、新たな基幹ノードとなるノードの接続については、現在、配信網に接続されているノードの数が十分に多い場合にのみ接続を許可する。即ち、配信網に新規ノードが追加された場合に、新規ノードを、基幹ノードのコンテンツ配信先ノードとして接続することを、配信網のノード数に応じて許可する。
(3)ルール(1)において、基幹ノードの例えば2つの接続先のうち、新たな基幹ノードとなるノードの接続については、現在、配信網に接続されているノードの数が十分に多い場合にのみ接続を許可する。即ち、配信網に新規ノードが追加された場合に、新規ノードを、基幹ノードのコンテンツ配信先ノードとして接続することを、配信網のノード数に応じて許可する。
具体的には、配信網のノード数をKとし、配信網の基幹ノード数をnとし、nの単調増加関数f(n)で表される所定数をL=f(n)としたとする。この場合に、ノード数Kが所定数L以上であることを条件に、新規ノードを、基幹ノードのコンテンツ配信先ノードとして接続することを許可する。
例えばL=f(n)={(n+1)×(n+2)/2}−1であったとする。そして図19(A)では、配信網のノード数はK=9であり、基幹ノード数はn=3である。従って、L={(3+1)×(3+2)/2}−1=9になり、K≧L=9となる。よって、この場合には、新規ノードN10を、基幹ノードN3の下位の基幹ノードとして接続することを許可する。
一方、図19(B)では、配信網のノード数はK=6であり、基幹ノード数はn=3である。従って、L={(3+1)×(3+2)/2}−1=9より、K<L=9になる。よって、この場合には、新規ノードN8を、基幹ノードN3の下位の基幹ノードとして接続することを禁止する。
以上のようにすれば、配信網が縦方向に無駄に拡大して行くのを防止でき、コンテンツ配信の効率化を図れる。
図20、図21に、以上の本実施形態の手法を実現する処理のフローチャートを示す。図20は、図8に対応するフローチャートであり、図20が図8と異なるのは、図20ではステップS53とステップS54の処理が追加されている点であり、その他のステップの処理は同様である。
即ち、ステップS53では、基幹ノード数に対して配信網のノード数(総ノード数)が十分に多いか否かを判断する。具体的には上述のように、配信網のノード数をKとし、基幹ノード数をnとした場合に、K≧L=f(n)か否かを判断する。そして、基幹ノード数nに対して配信網のノード数Kが十分に多い場合には、ステップS55の新規ノードを配信網に接続する処理を行う。即ち、図9で説明した通常の接続処理を行う。
一方、基幹ノード数に対して配信網のノード数が十分に多くない場合には、ステップS54に示すように、新規ノードを分岐ノードに限定して配信網に接続する処理を行う。具体的には図21のフローチャートに示す処理を行う。
ここで図21と図9が異なるのは、図9ではステップS14、S15の処理が行われるのに対して、図21では、このステップS14、S15に対応する処理を行わない点である。即ち、図21のステップS62で、検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されていると判断された場合には、検索されたノードのコンテンツ配信先ノードとして基幹ノードが接続されているか否かを判断することなく(図9のステップS14の判断を行うことなく)、無条件でその検索ノードを候補から除外する(ステップS66)。従って、図9のステップS15に示す処理(新規ノードを基幹ノードとして接続する処理)が行われないようになり、基幹ノードの増加を防止できるようになる。
7.基幹ノード追加の制限手法
次に、基幹ノードの追加を制限する種々の手法について説明する。基幹ノードの追加を制限する手法としては、以下の(I)(II)(III)の方式を考えることができる。
(I)長方形方式
この方式は、前述の基幹ノード追加制限のルール(3)を適用するだけで実現できる手法である。配信網の形状は、配信網形成開始からノードの除外が発生するまでは三角形になるが、ノードの除外発生以降は、図22(A)に示すように徐々に長方形に変化して行く。この方式は、配信網の形状が縦方向に無駄に延びる事態を防止できると共に、制限方法が単純であり、配信網管理の処理負荷が軽いというメリットがある。
(II)三角形方式
この方式は、配信網の形状を変化させずに、三角形に維持したまま管理する手法である。この方式では、図22(B)に示すように、各末端ノードN15、N14、N13、N12、N11に至るまでの中継ノード数をほぼ一定にすることができ、端末ノードでの配信のタイムラグの均等化を図れ、データが伝達するまでの遅延の予測が容易になるというメリットがある。この方式では、接続ノード数をノード列ごとに管理し、ノードの追加探索時に調査対象ノードが属するノード列のノード数により、追加を制限する。
次に、基幹ノードの追加を制限する種々の手法について説明する。基幹ノードの追加を制限する手法としては、以下の(I)(II)(III)の方式を考えることができる。
(I)長方形方式
この方式は、前述の基幹ノード追加制限のルール(3)を適用するだけで実現できる手法である。配信網の形状は、配信網形成開始からノードの除外が発生するまでは三角形になるが、ノードの除外発生以降は、図22(A)に示すように徐々に長方形に変化して行く。この方式は、配信網の形状が縦方向に無駄に延びる事態を防止できると共に、制限方法が単純であり、配信網管理の処理負荷が軽いというメリットがある。
(II)三角形方式
この方式は、配信網の形状を変化させずに、三角形に維持したまま管理する手法である。この方式では、図22(B)に示すように、各末端ノードN15、N14、N13、N12、N11に至るまでの中継ノード数をほぼ一定にすることができ、端末ノードでの配信のタイムラグの均等化を図れ、データが伝達するまでの遅延の予測が容易になるというメリットがある。この方式では、接続ノード数をノード列ごとに管理し、ノードの追加探索時に調査対象ノードが属するノード列のノード数により、追加を制限する。
具体的には、配信網の下位の基幹ノードに接続される分岐ノード列での追加可能ノード数の方が、上位の基幹ノードに接続される分岐ノード列での追加可能ノード数よりも小さくなるように制限する。更に具体的には、pの単調減少関数をG(p)とした場合に、基幹ノード列の第pの基幹ノードに接続される分岐ノード列の追加可能ノード数をM=G(p)に制限する。
例えば図22(B)では、下位の基幹ノードN10に接続される分岐ノード列BNL4での追加可能ノード数の方が、上位の基幹ノードN1に接続される分岐ノード列BNL1での追加可能ノード数よりも小さくなっている。このようにすることで、配信網の形状が三角形に維持される。
例えば、基幹ノード数をnとし、G(p)=n−pとする。すると、図22(B)では、基幹ノード数はn=5であるため、第1(p=1)の基幹ノードN1に接続される分岐ノード列BNL1の追加可能ノード数は、M=G(p)=5−1=4に制限される。同様に、第2(p=2)の基幹ノードN3に接続される分岐ノード列BNL2の追加可能ノード数は、M=G(p)=5−2=3に制限され、第3(p=3)の基幹ノードN6に接続される分岐ノード列BNL3の追加可能ノード数は、M=G(p)=5−3=2に制限され、第4(p=4)の基幹ノードN10に接続される分岐ノード列BNL4の追加可能ノード数は、M=G(p)=5−4=1に制限される。従って、結果として配信網の形状が三角形に維持される。
そして図22(C)では、分岐ノード列BNL3に対する新規ノードN16の追加は不可になり、分岐ノード列BNL4に対する新規ノードN17、N18の追加も不可になる。
(III)追加区画管理方式
この方式は、現在存在している配信網のノードの集合である第1のノード集合に対するノードの追加を一定数で停止し、それ以降に追加されたノードを用いて、上記の第1のノード集合の基幹ノードの末端に新たな第2のノード集合を接続する手法である。この方式によれば、ノードの追加の際に、ノードの追加が停止された第1のノード集合をチェックする必要がなくなり、追加位置探索対象となるノードを限定できるため、追加位置探索処理の負荷を抑制できる。
(III)追加区画管理方式
この方式は、現在存在している配信網のノードの集合である第1のノード集合に対するノードの追加を一定数で停止し、それ以降に追加されたノードを用いて、上記の第1のノード集合の基幹ノードの末端に新たな第2のノード集合を接続する手法である。この方式によれば、ノードの追加の際に、ノードの追加が停止された第1のノード集合をチェックする必要がなくなり、追加位置探索対象となるノードを限定できるため、追加位置探索処理の負荷を抑制できる。
具体的には図23において、第1の基幹ノード列KNL1及びKNL1に接続される第1の分岐ノード列群により構成される第1のノード集合NAG1のノード数が所定数になったとする。この場合には、第1の基幹ノード列KNL1に直列接続される第2の基幹ノード列KNL2及びKNL2に接続される第2の分岐ノード列群により構成される第2のノード集合NAG2を設定する。そして、以降は、追加された新規ノードN21、N22、N23を、第1のノード集合NAG1ではなくて、第2のノード集合NAG2のノードに接続する。これにより処理負荷を軽減しながら、ノード数を効率的に増加させることが可能になる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ノード接続管理手法、ノード列の接続の組み替え手法、コンテンツの配信手法等も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
KNL 基幹ノード列、BNL1、BNL2、BNL3 分岐ノード列、
10 配信網、100 サーバシステム、110 コンテンツ配信部、
120 ノード管理部、170 データベース、172 コンテンツ記憶部、
174 管理情報記憶部、190 通信制御部
10 配信網、100 サーバシステム、110 コンテンツ配信部、
120 ノード管理部、170 データベース、172 コンテンツ記憶部、
174 管理情報記憶部、190 通信制御部
Claims (18)
- 配信網を用いたコンテンツ配信のためのサーバシステムであって、
前記配信網のノード管理処理を行うノード管理部と、
前記ノード管理処理のためのノード管理情報を記憶する管理情報記憶部とを含み、
前記配信網は、コンテンツ配信元から直列接続される基幹ノードの列と、前記基幹ノード列の各基幹ノードに直列接続される分岐ノードの列を有し、
前記ノード管理部は、
前記配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、前記配信網への追加順番が最も古いノードを検索し、検索されたノードに対して前記新規ノードを接続する処理を行うことを特徴とするサーバシステム。 - 請求項1において、
前記ノード管理部は、
前記検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されていない場合には、前記新規ノードを新たな分岐ノードとして接続する処理を行うことを特徴とするサーバシステム。 - 請求項2において、
前記ノード管理部は、
前記検索されたノードのコンテンツ配信先ノードとして分岐ノードが接続されているが、基幹ノードが接続されていない場合には、前記新規ノードを新たな基幹ノードとして接続する処理を行うことを特徴とするサーバシステム。 - 請求項1乃至3のいずれかにおいて、
前記ノード管理部は、
前記配信網から分岐ノードが除外され、前記除外された分岐ノードのコンテンツ配信先ノードとして下位の分岐ノードが存在する場合には、前記除外された分岐ノードの上位のノードを、前記除外された分岐ノードの下位の分岐ノードに接続する処理を行うことを特徴とするサーバシステム。 - 請求項1乃至4のいずれかにおいて、
前記ノード管理部は、
前記配信網から基幹ノードが除外され、前記除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在する場合には、当該分岐ノードを、前記除外された基幹ノードの代わりとなる新たな基幹ノードに設定することを特徴とするサーバシステム。 - 請求項5において、
前記ノード管理部は、
前記新たな基幹ノードの下位の基幹ノードが存在し、前記下位の基幹ノードの前記配信網への追加順番が、前記新たな基幹ノードの追加順番よりも先である場合には、前記新たな基幹ノード及びそれに接続される分岐ノード列と、前記下位の基幹ノード及びそれに接続される分岐ノード列との入れ替え処理を行うことを特徴とするサーバシステム。 - 請求項5又は6において、
前記ノード管理部は、
前記除外された基幹ノードに対して複数の分岐ノード列が接続される場合には、前記複数の分岐ノード列の起点となる分岐ノードのうち、前記配信網への追加順番が最も古いノードを、前記除外された基幹ノードの代わりに基幹ノードに設定することを特徴とするサーバシステム。 - 請求項5乃至7のいずれかにおいて、
前記ノード管理部は、
前記除外された基幹ノードのコンテンツ配信先ノードとして分岐ノードが存在せず、前記除外された基幹ノードのコンテンツ配信先ノードとして下位の基幹ノードが存在する場合には、前記除外された基幹ノードの上位の基幹ノードを、前記除外された基幹ノードの前記下位の基幹ノードに接続する処理を行うことを特徴とするサーバシステム。 - 請求項1乃至8のいずれかにおいて、
前記ノード管理部は、
前記配信網に新規ノードが追加された場合に、前記新規ノードを、前記配信網の基幹ノードのコンテンツ配信先ノードとして接続することを、前記配信網のノード数に応じて許可することを特徴とするサーバシステム。 - 請求項9において、
前記ノード管理部は、
前記配信網のノード数をKとし、前記配信網の基幹ノード数をnとし、nの単調増加関数f(n)で表される所定数をL=f(n)とした場合に、ノード数Kが所定数L以上であることを条件に、前記新規ノードを、前記配信網の基幹ノードのコンテンツ配信先ノードとして接続することを許可することを特徴とするサーバシステム。 - 請求項1乃至10のいずれかにおいて、
前記ノード管理部は、
前記配信網の下位の基幹ノードに接続される分岐ノード列での追加可能ノード数の方が、上位の基幹ノードに接続される分岐ノード列での追加可能ノード数よりも小さくなるように、各分岐ノード列での追加可能ノード数を制限する処理を行うことを特徴とするサーバシステム。 - 請求項11において、
前記ノード管理部は、
pの単調減少関数をG(p)とした場合に、前記基幹ノード列の第pの基幹ノードに接続される分岐ノード列の追加可能ノード数をM=G(p)に制限する処理を行うことを特徴とするサーバシステム。 - 請求項1乃至12のいずれかにおいて、
前記ノード管理部は、
第1の基幹ノード列及び前記第1の基幹ノード列に接続される第1の分岐ノード列群により構成される第1のノード集合のノード数が所定数になった場合には、前記第1の基幹ノード列に直列接続される第2の基幹ノード列及び前記第2の基幹ノード列に接続される第2の分岐ノード列群により構成される第2のノード集合を設定し、前記第2のノード集合に対して新規ノードを追加することを特徴とするサーバシステム。 - 請求項1乃至13のいずれかにおいて、
前記配信網の基幹ノードに対して接続可能なコンテンツ配信先ノードの個数をIとし、前記配信網の分岐ノードに対して接続可能なコンテンツ配信先ノードの個数をJとした場合に、I>Jであることを特徴とするサーバシステム。 - 請求項14において、
I≧2であり、J=1であることを特徴とするサーバシステム。 - 請求項1乃至15のいずれかにおいて、
前記配信網のコンテンツ配信元の各ノードからコンテンツ配信先の各ノードに対してP2P(Peer to Peer)のリレー方式で配信されるコンテンツを、前記基幹ノード列の起点の基幹ノードに対して送信するコンテンツ配信部を含むことを特徴とするサーバシステム。 - 請求項1乃至16のいずれかに記載のサーバシステムと、
前記配信網と、
を含むことを特徴とする配信システム。 - コンテンツ配信のためのノード管理方法であって、
コンテンツ配信元から直列接続される基幹ノードの列と、前記基幹ノード列の各基幹ノードに直列接続される分岐ノードの列とを有する配信網を設定し、
前記配信網に新規ノードが追加された場合に、コンテンツ配信先ノードの接続が可能なノードのうち、前記配信網への追加順番が最も古いノードを検索し、
検索されたノードに対して前記新規ノードを接続することを特徴とするノード管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008090591A JP2009246664A (ja) | 2008-03-31 | 2008-03-31 | サーバシステム、配信システム、及びノード管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008090591A JP2009246664A (ja) | 2008-03-31 | 2008-03-31 | サーバシステム、配信システム、及びノード管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009246664A true JP2009246664A (ja) | 2009-10-22 |
Family
ID=41308104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008090591A Pending JP2009246664A (ja) | 2008-03-31 | 2008-03-31 | サーバシステム、配信システム、及びノード管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009246664A (ja) |
-
2008
- 2008-03-31 JP JP2008090591A patent/JP2009246664A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4599581B2 (ja) | 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等 | |
US20110246658A1 (en) | Data exchange optimization in a peer-to-peer network | |
US20110208828A1 (en) | Node apparatus and computer-readable storage medium for computer program | |
JP2007053662A (ja) | 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム | |
WO2007058233A1 (ja) | 情報配信システム、情報処理装置及び記憶媒体 | |
JP5205289B2 (ja) | 端末装置およびパケット送信方法 | |
US20240022520A1 (en) | Network Connection Handoff | |
CN115669075A (zh) | 专用网络装置和专用局域网连接、内容发现、数据传输和控制方法 | |
CN101888403A (zh) | 存储和分发电子内容的方法和*** | |
JP5614530B2 (ja) | 情報通信システム、ノード装置、情報処理方法、及び情報処理プログラム | |
JP2010271933A (ja) | 分散保存システム、ノード装置、ノード処理プログラム及びデータファイル保存方法 | |
JP2006319466A (ja) | 情報配信システム、処理プログラム、管理プログラム及び情報配信方法等 | |
JP2009246664A (ja) | サーバシステム、配信システム、及びノード管理方法 | |
JP2009017381A (ja) | 情報配信システム、同システムに用いる端末装置及び情報処理プログラム、並びに情報処理方法 | |
WO2008041422A1 (fr) | Terminal de système de distribution de contenu, son procédé de traitement d'information et programme contenant un support d'enregistrement | |
JP2009246817A (ja) | サーバシステム及び配信システム | |
JP2009246698A (ja) | 配信方法、配信システム、クライアント端末及びプログラム | |
JP4797679B2 (ja) | コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム | |
JP5233799B2 (ja) | コンテンツ配信システム、ノード装置、コンテンツ配信方法及びコンテンツ取得処理プログラム | |
CN101540884B (zh) | 一种基于跳图的对等化VoD***构建方法 | |
JP5327078B2 (ja) | 情報通信システム、情報通信方法、ノード装置及びプログラム | |
Budhkar et al. | Two-tier peer selection strategy to minimize delay in p2p live streaming systems | |
JP2011076507A (ja) | 情報処理装置、情報通信システム、情報処理方法及び情報処理用プログラム | |
JP4947106B2 (ja) | 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム | |
Gotoh et al. | A scheduling method for waiting time reduction in node relay-based webcast considering available bandwidth |