しかしながら、上述したレプリカを例えばアクセス頻度等に応じて当該配信システム内において動的に増やし続け、多くのコンテンツ保持ノードに保存させていくと、上記インデックス情報を記憶するノードの記憶領域の容量は有限であるため、当該記憶領域が容量オーバーとなり(つまり、それ以上インデックス情報を記憶しておけないという状況に至り)、上記レプリカを増やしても、これらのレプリカへのアクセス負荷をそれ以上分散できないという問題が生じる。
また、当該インデックス情報が多くなると、当該インデックス情報の記憶可能数がそれほど多くないノードにおいては、その配信要求の多いコンテンツに対応するインデックス情報により、そのノードに記憶されているインデックス情報の大半が占められてしまうこととなり、結果として、それほど人気のない(換言すれば、配信要求数が多くない)コンテンツに対応するインデックス情報の記憶数が減少してしまうと言う問題点があった。
そして、この問題点は、それほど人気のないコンテンツ(裏を返せば、人気はないけれど配信要求がゼロではないコンテンツ)の配信を希望する場合、対応するインデックス情報を配信システム内において発見できる可能性が低下することに繋がり、結果として、そのコンテンツの配信に支障を来す場合があると言う問題点に繋がることとなる。
そこで、本発明は上記の各問題点に鑑みて為されたもので、その課題は、不人気コンテンツのインデックス情報の記憶数が低減することによって当該インデックス情報に対応するコンテンツが配信不能状態となることを防止し、配信システムとしての利便性及び配信効率の向上に資することが可能な配信システム及び配信システム制御方法、当該配信システムに含まれる制御装置及び制御装置用プログラム、管理装置及び管理装置用プログラム並びに補助装置及び補助装置用プログラムを提供することにある。
上記の課題を解決するために、請求項1に記載の発明は、複数のノード装置がネットワークを介して接続されて構成され、且つ、いずれかの前記ノード装置内に蓄積されている配信情報を、他のいずれかの前記ノード装置に配信する主配信システムと、前記配信情報を識別するための配信情報識別情報と、当該配信情報を蓄積している前記ノード装置である蓄積装置を識別するための蓄積装置識別情報と、を含む配信情報所在情報を記憶する記憶部等の補助記憶手段を備える補助装置と、当該補助装置を管理する制御部等の管理手段を備える管理装置と、により構成される補助システムと、を含む配信システムであって、前記主配信システムは、前記配信情報所在情報を記憶する記憶部等の所在情報記憶手段を備える前記ノード装置を含んでおり、前記補助記憶手段は、前記所在情報記憶手段に記憶可能な前記配信情報所在情報の数より多い数の当該配信情報所在情報が記憶可能とされており、更に前記主配信システムは、一の前記配信情報である特定配信情報に対する単位時間当たりの前記配信要求の数又は前記主配信システム内のいずれかの前記ノード装置内に蓄積されている前記特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて、前記補助装置の当該主配信システム内への補助参加を要求する補助要請情報を前記管理手段に出力する補助要請情報出力手段を備える前記ノード装置である制御装置を含み、当該補助要請情報を取得した前記管理手段は、当該管理手段が管理しているいずれかの前記補助装置を前記主配信システム内に参加させ、当該主配信システム内における前記特定配信情報の配信の制御に供させるように構成される。
よって、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を管理手段に出力し、当該補助要請情報に対応して配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置を主配信システムに参加させるので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
上記の課題を解決するために、請求項2に記載の発明は、請求項1に記載の主配信システムに含まれている制御装置であって、前記要求情報出力手段を備える。
よって、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を管理手段に出力し、当該補助要請情報に対応して管理装置により配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置が主配信システムに参加させられるので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
上記の課題を解決するために、請求項3に記載の発明は、請求項2に記載の制御装置において、前記補助要請情報出力手段は、前記少なくともいずれか一方が予め設定された閾値以上になったとき、前記補助要請情報を前記管理手段に出力するように構成される。
よって、単位時間当たりの配信要求の数又は複製情報の数の少なくともいずれか一方にが閾値以上になったとき補助要請情報を出力するので、現実の配信要求数又は複製情報の数に基づいて判定することで、効率的に主配信システムと補助システムとの間の連携を行うことができる。
上記の課題を解決するために、請求項4に記載の発明は、請求項2又は3に記載の制御装置において、前記主配信システム内に前記補助装置が参加している場合において、前記特定配信情報に対する前記配信要求が所定の閾値未満となったとき、当該参加している補助装置を前記主配信システムから離脱させることを要求する離脱要求情報を前記管理手段に出力する制御部等の離脱要求情報出力手段を更に備える。
よって、特定配信情報に対する配信要求が所定の閾値未満となったとき、主配信システム内に参加している補助装置を主配信システムから離脱させることを要求する離脱要求情報を管理手段に出力するので、特定配信情報の配信状況が改善されたときは補助装置を主配信システムから離脱させることで、元の主配信システムの状態に復帰させることができると共に、以後の配信状況の悪化に備えて補助システムを待機させることができる。
上記の課題を解決するために、請求項5に記載の発明は、請求項1に記載の補助システムに含まれている管理装置であって、前記管理手段を備える。
よって、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を受信し、当該補助要請情報に対応して配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置を主配信システムに参加させるので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
上記の課題を解決するために、請求項6に記載の発明は、請求項5に記載の管理装置において、前記管理手段は、前記補助装置を識別するための補助装置識別情報の値を前記特定配信情報に対応する前記配信情報識別情報の値に相当する値に設定して前記主配信システム内に参加させ、当該主配信システム内における前記特定配信情報の配信の制御に供させる制御部等の識別情報設定手段を備える。
よって、補助装置識別情報の値を特定配信情報に対応する配信情報識別情報の値に相当する値に設定して主配信システム内に参加させ、当該主配信システム内における特定配信情報の配信の制御に供させるので、当該参加させた補助装置を確実に特定配信情報の配信制御に供させることができる。
上記の課題を解決するために、請求項7に記載の発明は、請求項6に記載の管理装置において、前記識別情報設定手段は、前記制御装置識別情報の値が、前記特定配信情報に対応する前記配信情報識別情報の値に相当する値であるとき、前記補助装置を識別するための識別情報の値を前記特定配信情報に対応する前記配信情報識別情報の値に関連する値に設定して前記主配信システム内に参加させ、当該主配信システム内における前記特定配信情報の配信の制御に供させるように構成される。
よって、制御装置識別情報の値が、特定配信情報に対応する配信情報識別情報の値に相当する値であるとき、補助装置を識別するための識別情報の値を特定配信情報に対応する配信情報識別情報の値に関連する値に設定して主配信システム内に参加させるので、主配信システムにおける配信情報の配信に与える影響を与えることなく補助装置を主配信システムに参加させることができる。
上記の課題を解決するために、請求項8に記載の発明は、請求項7に記載の管理装置において、前記関連する値は、前記特定配信情報に対応する前記配信情報識別情報の値に対して直近に大きい値又は直近に小さい値のいずれか一方の値であるように構成される。
よって、特定配信情報に対応する配信情報識別情報の値に関連する値が、特定配信情報に対応する配信情報識別情報の値に対して直近に大きい値又は直近に小さい値のいずれか一方の値であるので、より迅速且つスムーズに補助装置を主配信システムに参加させることができる。
上記の課題を解決するために、請求項9に記載の発明は、請求項5から8のいずれか一項に記載の管理装置において、前記管理手段は、前記主配信システム内に前記補助装置が参加している場合において、当該参加している補助装置を前記主配信システムから離脱させることを要求する離脱要求情報を取得したとき、当該補助装置に対して前記主配信システムから離脱する旨の離脱指示情報を送信する制御部等の離脱指示情報送信手段を更に備える。
よって、主配信システム内に参加している補助装置をその主配信システムから離脱させることを要求する離脱要求情報を取得したとき、当該補助装置に対して主配信システムから離脱する旨の離脱指示情報を送信するので、主配信システムに参加していた補助装置を迅速に管理装置の管理下に戻すことができる。
上記の課題を解決するために、請求項10に記載の発明は、請求項1に記載の補助システムに含まれている補助装置であって、前記補助記憶手段を備える。
よって、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて、管理装置の管理の下、配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置が主配信システムに参加するので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
上記の課題を解決するために、請求項11に記載の発明は、請求項10に記載の補助装置において、前記補助記憶手段における前記配信情報所在情報の記憶可能数が、前記所在情報記憶手段における前記配信情報所在情報の記憶可能数の少なくとも二倍であるように構成される。
よって、補助記憶手段における配信情報所在情報の記憶可能数が、所在情報記憶手段における配信情報所在情報の記憶可能数の少なくとも二倍であるので、主配信システムにおける特定配信情報の配信状態の改善のために十分な機能を持った補助装置を当該主配信システムに参加させることができる。
上記の課題を解決するために、請求項12に記載の発明は、請求項10又は11に記載の補助装置において、前記主配信システムに参加する際、前記特定配信情報を配信するために必要な配信制御情報であって前記配信情報所在情報を含む配信制御情報を、前記主配信システム内のいずれかの前記ノード装置から取得する制御部等の取得手段と、前記取得した配信制御情報を、前記補助記憶手段内に記憶させて前記特定配信情報の配信に供させる制御部等の記憶制御手段と、を備える。
よって、主配信システムに参加する際、主配信システム内のいずれかのノード装置から配信制御情報を取得し、その取得した配信制御情報を補助記憶手段内に記憶させて特定配信情報の配信に供させるので、簡易且つ迅速な処理で補助装置を主配信システムに参加させ、直ちに特性配信情報の配信に供させることができる。
上記の課題を解決するために、請求項13に記載の発明は、請求項1に記載の主配信システム内のいずれかの前記ノード装置に含まれるコンピュータを、請求項2から4のいずれか一項に記載の制御装置として機能させる。
よって、当該コンピュータを請求項2に記載された制御装置として機能させる場合は、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を管理手段に出力し、当該補助要請情報に対応して管理装置により配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置が主配信システムに参加させられるように当該コンピュータが機能するので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
また、当該コンピュータを請求項3に記載された制御装置として機能させる場合は、当該コンピュータを請求項2に記載された制御装置として機能させる場合に加えて、単位時間当たりの配信要求の数又は複製情報の数の少なくともいずれか一方が予め設定された閾値以上になったとき補助要請情報を出力する当該コンピュータが機能するので、現実の配信要求数又は複製情報の数に基づいて判定することで、効率的に主配信システムと補助システムとの間の連携を行うことができる。
更に、当該コンピュータを請求項4に記載された制御装置として機能させる場合は、当該コンピュータを請求項2又は3に記載された制御装置として機能させる場合に加えて、特定配信情報に対する配信要求が所定の閾値未満となったとき、主配信システム内に参加している補助装置を主配信システムから離脱させることを要求する離脱要求情報を管理手段に出力するように当該コンピュータが機能するので、特定配信情報の配信状況が改善されたときは補助装置を主配信システムから離脱させることで、元の主配信システムの状態に復帰させることができると共に、以後の配信状況の悪化に備えて補助システムを待機させることができる。
上記の課題を解決するために、請求項14に記載の発明は、請求項1に記載の補助システム内の前記管理装置に含まれるコンピュータを、請求項5から9のいずれか一項に記載の管理手段として機能させる。
よって、当該コンピュータを請求項5に記載された管理手段として機能させる場合は、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を受信し、当該補助要請情報に対応して配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置を主配信システムに参加させるように当該コンピュータが機能するので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
また、当該コンピュータを請求項6に記載された管理手段として機能させる場合は、当該コンピュータを請求項5に記載された管理手段として機能させる場合に加えて、補助装置識別情報の値を特定配信情報に対応する配信情報識別情報の値に相当する値に設定して主配信システム内に参加させ、当該主配信システム内における特定配信情報の配信の制御に供させるように当該コンピュータが機能するので、当該参加させた補助装置を確実に特定配信情報の配信制御に供させることができる。
更に、当該コンピュータを請求項7に記載された管理手段として機能させる場合は、当該コンピュータを請求項6に記載された管理手段として機能させる場合に加えて、制御装置識別情報の値が、特定配信情報に対応する配信情報識別情報の値に相当する値であるとき、補助装置を識別するための識別情報の値を特定配信情報に対応する配信情報識別情報の値に関連する値に設定して主配信システム内に参加させるように当該コンピュータが機能するので、主配信システムにおける配信情報の配信に与える影響を与えることなく補助装置を主配信システムに参加させることができる。
更にまた、当該コンピュータを請求項8に記載された管理手段として機能させる場合は、当該コンピュータを請求項7に記載された管理手段として機能させる場合に加えて、特定配信情報に対応する配信情報識別情報の値に関連する値が、特定配信情報に対応する配信情報識別情報の値に対して直近に大きい値又は直近に小さい値のいずれか一方の値であるので、より迅速且つスムーズに補助装置を主配信システムに参加させることができる。
また、当該コンピュータを請求項9に記載された管理手段として機能させる場合は、当該コンピュータを請求項5から8のいずれか一項に記載された管理手段として機能させる場合に加えて、主配信システム内に参加している補助装置をその主配信システムから離脱させることを要求する離脱要求情報を取得したとき、当該補助装置に対して主配信システムから離脱する旨の離脱指示情報を送信するように当該コンピュータが機能するので、主配信システムに参加していた補助装置を迅速に管理装置の管理下に戻すことができる。
上記の課題を解決するために、請求項15に記載の発明は、請求項1に記載の補助システム内の前記補助装置に含まれるコンピュータを、請求項10から12のいずれか一項に記載の補助装置として機能させる。
よって、当該コンピュータを請求項10に記載された補助装置として機能させる場合は、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて、管理装置の管理の下、配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置が主配信システムに参加するように当該コンピュータが機能するので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
また、当該コンピュータを請求項11に記載された補助装置として機能させる場合は、当該コンピュータを請求項10に記載された補助装置として機能させる場合に加えて、補助記憶手段における配信情報所在情報の記憶可能数が、所在情報記憶手段における配信情報所在情報の記憶可能数の少なくとも二倍であるので、主配信システムにおける特定配信情報の配信状態の改善のために十分な機能を持った補助装置を当該主配信システムに参加させることができる。
更に、当該コンピュータを請求項12に記載された補助装置として機能させる場合は、当該コンピュータを請求項10又は11に記載された補助装置として機能させる場合に加えて、主配信システムに参加する際、主配信システム内のいずれかのノード装置から配信制御情報を取得し、その取得した配信制御情報を補助記憶手段内に記憶させて特定配信情報の配信に供させるように当該コンピュータが機能するので、簡易且つ迅速な処理で補助装置を主配信システムに参加させ、直ちに特性配信情報の配信に供させることができる。
上記の課題を解決するために、請求項16に記載の発明は、複数のノード装置がネットワークを介して接続されて構成され、且つ、いずれかの前記ノード装置内に蓄積されている配信情報を、他のいずれかの前記ノード装置に配信する主配信システムであって、前記配信情報所在情報を記憶する所在情報記憶手段を備える前記ノード装置を含む主配信システムと、前記配信情報を識別するための配信情報識別情報と、当該配信情報を蓄積している前記ノード装置である蓄積装置を識別するための蓄積装置識別情報と、を含む配信情報所在情報を記憶する補助記憶手段であって、前記所在情報記憶手段に記憶可能な前記配信情報所在情報の数より多い数の当該配信情報所在情報が記憶可能とされている補助記憶手段を備える補助装置と、当該補助装置を管理する管理手段を備える管理装置と、により構成される補助システムと、を含む配信システムにおいて実行される配信システム制御方法であって、一の前記配信情報である特定配信情報に対する単位時間当たりの前記配信要求の数又は前記主配信システム内のいずれかの前記ノード装置内に蓄積されている前記特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて、前記補助装置の当該主配信システム内への補助参加を要求する補助要請情報を前記管理手段に出力する補助要請情報出力工程と、当該補助要請情報を取得した前記管理手段において、当該管理手段が管理しているいずれかの前記補助装置を前記主配信システム内に参加させ、当該主配信システム内における前記特定配信情報の配信の制御に供させる管理工程と、を含む。
よって、単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を管理手段に出力し、当該補助要請情報に対応して配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置を主配信システムに参加させるので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
以上説明したように、請求項1に記載の発明によれば、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を管理手段に出力し、当該補助要請情報に対応して配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置を主配信システムに参加させるので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
また、請求項2に記載の発明によれば、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を管理手段に出力し、当該補助要請情報に対応して管理装置により配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置が主配信システムに参加させられるので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
更に、請求項5に記載の発明によれば、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を受信し、当該補助要請情報に対応して配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置を主配信システムに参加させるので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
更にまた、請求項10に記載の発明によれば、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて、管理装置の管理の下、配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置が主配信システムに参加するので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
また、請求項16に記載の発明によれば、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を管理手段に出力し、当該補助要請情報に対応して配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置を主配信システムに参加させるので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
従って、請求項1、2、5、10及び16に夫々記載の発明によれば、配信情報所在情報の記憶数が低減することによって当該配信情報所在情報に対応する他の配信情報が配信不能状態となることを防止し、主配信システムにおける利便性及び配信効率の向上に資することができる。
請求項3に記載の発明によれば、請求項2に記載の発明の効果に加えて、単位時間当たりの配信要求の数又は複製情報の数の少なくともいずれか一方にが閾値以上になったとき補助要請情報を出力するので、現実の配信要求数又は複製情報の数に基づいて判定することで、効率的に主配信システムと補助システムとの間の連携を行うことができる。
請求項4に記載の発明によれば、請求項2又は3に記載の発明の効果に加えて、特定配信情報に対する配信要求が所定の閾値未満となったとき、主配信システム内に参加している補助装置を主配信システムから離脱させることを要求する離脱要求情報を管理手段に出力するので、特定配信情報の配信状況が改善されたときは補助装置を主配信システムから離脱させることで、元の主配信システムの状態に復帰させることができると共に、以後の配信状況の悪化に備えて補助システムを待機させることができる。
請求項6に記載の発明によれば、請求項5に記載の発明の効果に加えて、補助装置識別情報の値を特定配信情報に対応する配信情報識別情報の値に相当する値に設定して主配信システム内に参加させ、当該主配信システム内における特定配信情報の配信の制御に供させるので、当該参加させた補助装置を確実に特定配信情報の配信制御に供させることができる。
請求項7に記載の発明によれば、請求項6に記載の発明の効果に加えて、制御装置識別情報の値が、特定配信情報に対応する配信情報識別情報の値に相当する値であるとき、補助装置を識別するための識別情報の値を特定配信情報に対応する配信情報識別情報の値に関連する値に設定して主配信システム内に参加させるので、主配信システムにおける配信情報の配信に与える影響を与えることなく補助装置を主配信システムに参加させることができる。
請求項8に記載の発明によれば、請求項7に記載の発明の効果に加えて、特定配信情報に対応する配信情報識別情報の値に関連する値が、特定配信情報に対応する配信情報識別情報の値に対して直近に大きい値又は直近に小さい値のいずれか一方の値であるので、より迅速且つスムーズに補助装置を主配信システムに参加させることができる。
請求項9に記載の発明によれば、請求項5から8のいずれか一項に記載の発明の効果に加えて、主配信システム内に参加している補助装置をその主配信システムから離脱させることを要求する離脱要求情報を取得したとき、当該補助装置に対して主配信システムから離脱する旨の離脱指示情報を送信するので、主配信システムに参加していた補助装置を迅速に管理装置の管理下に戻すことができる。
請求項11に記載の発明によれば、請求項10に記載の発明の効果に加えて、補助記憶手段における配信情報所在情報の記憶可能数が、所在情報記憶手段における配信情報所在情報の記憶可能数の少なくとも二倍であるので、主配信システムにおける特定配信情報の配信状態の改善のために十分な機能を持った補助装置を当該主配信システムに参加させることができる。
請求項12に記載の発明によれば、請求項10又は11に記載の発明の効果に加えて、主配信システムに参加する際、主配信システム内のいずれかのノード装置から配信制御情報を取得し、その取得した配信制御情報を補助記憶手段内に記憶させて特定配信情報の配信に供させるので、簡易且つ迅速な処理で補助装置を主配信システムに参加させ、直ちに特性配信情報の配信に供させることができる。
請求項13に記載の発明によれば、請求項1に記載の主配信システム内のいずれかのノード装置に含まれるコンピュータを請求項2に記載された制御装置として機能させる場合は、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を管理手段に出力し、当該補助要請情報に対応して管理装置により配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置が主配信システムに参加させられるように当該コンピュータが機能するので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
従って、配信情報所在情報の記憶数が低減することによって当該配信情報所在情報に対応する他の配信情報が配信不能状態となることを防止し、主配信システムにおける利便性及び配信効率の向上に資することができる。
また、当該コンピュータを請求項3に記載された制御装置として機能させる場合は、当該コンピュータを請求項2に記載された制御装置として機能させる場合に加えて、単位時間当たりの配信要求の数又は複製情報の数の少なくともいずれか一方が閾値以上になったとき補助要請情報を出力するように当該コンピュータが機能するので、現実の配信要求数又は複製情報の数に基づいて判定することで、効率的に主配信システムと補助システムとの間の連携を行うことができる。
更に、当該コンピュータを請求項4に記載された制御装置として機能させる場合は、当該コンピュータを請求項2又は3に記載された制御装置として機能させる場合に加えて、特定配信情報に対する配信要求が所定の閾値未満となったとき、主配信システム内に参加している補助装置を主配信システムから離脱させることを要求する離脱要求情報を管理手段に出力するように当該コンピュータが機能するので、特定配信情報の配信状況が改善されたときは補助装置を主配信システムから離脱させることで、元の主配信システムの状態に復帰させることができると共に、以後の配信状況の悪化に備えて補助システムを待機させることができる。
請求項14に記載の発明によれば、請求項1に記載の補助システム内の前記管理装置に含まれるコンピュータを請求項5に記載された管理手段として機能させる場合は、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて補助要請情報を受信し、当該補助要請情報に対応して配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置を主配信システムに参加させるように当該コンピュータが機能するので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
従って、配信情報所在情報の記憶数が低減することによって当該配信情報所在情報に対応する他の配信情報が配信不能状態となることを防止し、主配信システムにおける利便性及び配信効率の向上に資することができる。
また、当該コンピュータを請求項6に記載された管理手段として機能させる場合は、当該コンピュータを請求項5に記載された管理手段として機能させる場合に加えて、補助装置識別情報の値を特定配信情報に対応する配信情報識別情報の値に相当する値に設定して主配信システム内に参加させ、当該主配信システム内における特定配信情報の配信の制御に供させるように当該コンピュータが機能するので、当該参加させた補助装置を確実に特定配信情報の配信制御に供させることができる。
更に、当該コンピュータを請求項7に記載された管理手段として機能させる場合は、当該コンピュータを請求項6に記載された管理手段として機能させる場合に加えて、制御装置識別情報の値が、特定配信情報に対応する配信情報識別情報の値に相当する値であるとき、補助装置を識別するための識別情報の値を特定配信情報に対応する配信情報識別情報の値に関連する値に設定して主配信システム内に参加させるように当該コンピュータが機能するので、主配信システムにおける配信情報の配信に与える影響を与えることなく補助装置を主配信システムに参加させることができる。
更にまた、当該コンピュータを請求項8に記載された管理手段として機能させる場合は、当該コンピュータを請求項7に記載された管理手段として機能させる場合に加えて、特定配信情報に対応する配信情報識別情報の値に関連する値が、特定配信情報に対応する配信情報識別情報の値に対して直近に大きい値又は直近に小さい値のいずれか一方の値であるので、より迅速且つスムーズに補助装置を主配信システムに参加させることができる。
また、当該コンピュータを請求項9に記載された管理手段として機能させる場合は、当該コンピュータを請求項5から8のいずれか一項に記載された管理手段として機能させる場合に加えて、主配信システム内に参加している補助装置をその主配信システムから離脱させることを要求する離脱要求情報を取得したとき、当該補助装置に対して主配信システムから離脱する旨の離脱指示情報を送信するように当該コンピュータが機能するので、主配信システムに参加していた補助装置を迅速に管理装置の管理下に戻すことができる。
請求項15に記載の発明によれば、請求項1に記載の補助システム内の前記補助装置に含まれるコンピュータを請求項10に記載された補助装置として機能させる場合は、特定配信情報に対する単位時間当たりの配信要求の数又は特定配信情報の複製に相当する複製情報の数の少なくともいずれか一方に基づいて、管理装置の管理の下、配信情報所在情報の記憶可能数が主配信システム内のノード装置より多い補助装置が主配信システムに参加するように当該コンピュータが機能するので、主配信システムに属するノード装置において、当該配信情報に対する配信要求の集中により当該配信情報に対応する配信情報所在情報の数が増大することに起因する他の配信情報に対応する配信情報所在情報の記憶数の低減を防止できる。
従って、配信情報所在情報の記憶数が低減することによって当該配信情報所在情報に対応する他の配信情報が配信不能状態となることを防止し、主配信システムにおける利便性及び配信効率の向上に資することができる。
また、当該コンピュータを請求項11に記載された補助装置として機能させる場合は、当該コンピュータを請求項10に記載された補助装置として機能させる場合に加えて、補助記憶手段における配信情報所在情報の記憶可能数が、所在情報記憶手段における配信情報所在情報の記憶可能数の少なくとも二倍であるので、主配信システムにおける特定配信情報の配信状態の改善のために十分な機能を持った補助装置を当該主配信システムに参加させることができる。
更に、当該コンピュータを請求項12に記載された補助装置として機能させる場合は、当該コンピュータを請求項10又は11に記載された補助装置として機能させる場合に加えて、主配信システムに参加する際、主配信システム内のいずれかのノード装置から配信制御情報を取得し、その取得した配信制御情報を補助記憶手段内に記憶させて特定配信情報の配信に供させるように当該コンピュータが機能するので、簡易且つ迅速な処理で補助装置を主配信システムに参加させ、直ちに特性配信情報の配信に供させることができる。
次に、本発明を実施するための最良の形態について、図面に基づいて説明する。なお、以下に説明する実施形態は、インターネット等のネットワークを用いて上記コンテンツの配信を行う上記配信システムに対して本発明を適用した場合の実施の形態である。
(I)本発明の原理
初めに、本発明の実施形態について具体的に説明する前に、本発明の原理につき、実施形態に係る配信システムの概要と共に説明する。
(A)配信システムの概要
先ず、実施形態に係る配信システムの概要につき、図1及び図2を用いて説明する。なお、図1及び図2は当該配信システムの概要を示す模式図である。
一般に、上述したDHTを用いた配信システムにおいては、対応するノードID及びコンテンツIDが相互に同じビット長で表現されていることも関連して、当該配信システム内の上記ノード及びコンテンツを、同一のリング状の仮想的なID空間上に点在するものとして考えることができる。即ち、一のノードを●で表示し且つ一のコンテンツを○で表示する図1(a)に示すように、コンテンツが属するリングRcとノードが属するリングRnとを仮想的に同心円状に想定し、更に各リングRc及びRnにおいて反時計回りに各IDの値が増加すると規定すると、各ノード又は各コンテンツは、各リングRc及びRn上に重なることなく存在すると仮定できるのである。なお、各IDを上記の例のように128ビット長で表現すると桁数が多くなりすぎるので、図1(a)においては、説明の簡略化のために、各IDのビット長を32ビットとして表現している(以下、同様)。そして、上述したように各IDの値を決めるに当たってハッシュ関数を用いたことに起因して、各ノード及び各コンテンツは、上記各リングRc及びRn上に偏ることなく概ね分散して存在することとなる。
一方、上記DHTを用いた配信システムでは、「あるコンテンツIDが付与されているコンテンツを管理するノードは、そのコンテンツIDの値に一番近い値を有するノードIDが付与されているノード」とされている。
ここで、「近い」とは、その配信システムに関する各種規定等において一貫してさえいればどのような定義付けでも良いのであるが、具体的には例えば、「そのコンテンツIDの値を超えない値であって且つIDとしての値同士の差が最も小さいもの」というように定義付けられる。
より具体的には、例えば図1(a)に例示するように、ノードIDの値が「A0334055」であるノードとノードIDの値が「A03340FF」であるノードとがリングRn上で隣り合って存在しているとすると、コンテンツIDの値が「A0334080」であるコンテンツは、ノードIDの値が「A0334055」であるノードが管理することになる。なお、図1(a)では、○のコンテンツを管理する端末情報を、当該各○から伸びた矢印で示している。このようにすると、多数のノードで分散して様々なコンテンツを管理することができる。
このとき、「管理」とは、そのコンテンツIDが付与されているコンテンツをその中に記録しているという意味ではなく、そのコンテンツが記録されているノードの所在(例えばIPアドレス等)を認識しているとの意味である。実際にコンテンツが記録されているノードと管理するノードとが異なっても良いし、或いは管理するノード内にその管理対象であるコンテンツが記録されていても良い。
そして、上述したコンテンツ管理用のノードを「ルートノード」と称する。ルートノードは、それが管理することとされているコンテンツを示すコンテンツIDと、当該コンテンツIDにより示されるコンテンツが記録されているノードのIPアドレスと、の対から少なくともなる上記インデックス情報を記録し、これを配信システム内の他のノードから参照可能に記録する。このインデックス情報内に、そのコンテンツのタイトルやその属性(ジャンル)等が含まれる場合もある。
また、異なるコンテンツを夫々示すコンテンツIDが偶然に近い値となり、その値に近い値のノードIDを有するノードが他に存在しない場合には、一つのルートノードが複数のコンテンツに対応する複数のインデックス情報を記録することとなる。更に、同一のコンテンツが異なる複数のノード内に記録されている場合であって、その同一のコンテンツを記録しているノードが偶然に一つのルートノードに近い場合、当該ルートノードには、同一のコンテンツが夫々に記録されている複数のノードのインデックス情報が記録されることとなる。上述してきたルートノード内のインデックス情報EXの一例を図1(b)に示す。
更に、実際に各コンテンツ自体を記録しているノードを「コンテンツホルダ」と称する。このとき、当該コンテンツホルダ自体は本来的にはノードであるから、そのノードIDは、図1(a)におけるリングRn上に存在していることになる。
次に、上記DHTを用いた配信システムにおいて、上述したように全てのノードのIPアドレスを各ノード夫々が記録する必要性を排除するための工夫の一つであるDHT(ルーティングテーブル)自体について説明する。
実施形態に係るDHTには、図1に例示したID空間を段階的なレベル毎にレベル数を上げつつ細分化(例えば、レベル1の場合は当該ID空間を四分割)していき、そのレベル毎(段階的に細分化した領域毎)に、任意のノードのノードIDとそのIPアドレスとを対としたルーティング情報が記述されている。そして、例えばコンテンツの配信元情報を要求するための配信元問い合わせ情報をそのインデックス情報が記録されているルートノードに転送する場合、このルーティング情報を参照しつつ当該問い合わせ情報を目的のルートノードまで転送する。即ち、DHTにおけるレベルが上がる度に、ルーティング先のノードIDが到達しようとするルートノードのノードIDに一桁ずつ合致していき、最終的に当該到達しようとするルートノードに上記要求情報が到達することになる。
なお、DHTを用いた配信システムにおいては、上述した如き問い合わせ情報(クエリ)や、そのコンテンツの配信自体を要求する配信要求情報、及び後述する公開メッセージ、などを単に「メッセージ」と称している。そして、上述した仕組みのDHTを使うと、上記メッセージを図1に例示する如き上記ID空間内で効率よく目的のノードまで転送することができる。なお、以下の説明においては、コンテンツホルダにおいて新たにコンテンツが記録された場合に、それを他のノードから発見可能にする(公開する)ために、当該コンテンツホルダにおいて生成されるメッセージを公開メッセージと称し、後述するリクエスタからルートノード又は後述するキャッシュノードに対して送信するメッセージを配信元問い合わせメッセージと称する。
ここで、上述したようにルートノードのノードIDの値は、そのルートノードがコンテンツを管理しているコンテンツホルダのノードIDの値に最も近いのであるから、上記配信元問い合わせメッセージは、当該配信要求メッセージにより要求されているコンテンツホルダに到達する直前に、配信要求対象のコンテンツを管理するルートノードに到達することになる。そして、当該配信元問い合わせメッセージを受け取ったルートノードは、その配信元問い合わせメッセージにより要求されているコンテンツを蓄積しているコンテンツホルダのIPアドレス等を、当該配信元問い合わせメッセージの発信元まで返信する。即ち、ルートノード内に記録されているインデックス情報(図1(b)参照)の中から、当該配信元問い合わせメッセージにより要求されているコンテンツを示すタイトル、属性情報及びそのコンテンツホルダとしてのノードのIPアドレス等が配信元問い合わせメッセージの発信元であるノードまで返信される。このようなDHTの活用により、効率的に所望のコンテンツの所在が例えば配信要求元において認識できるのである。なお、上述したコンテンツの配信要求元であるノードを、以下「リクエスタ」と称する。
次に、あるノードに新たなコンテンツが蓄積された場合における当該コンテンツの登録処理について説明する。
新しいコンテンツがノード、即ちそのコンテンツのコンテンツホルダに蓄積されると、そのコンテンツホルダは、配信システム内の他のノードに対してそのコンテンツが蓄積されたことを公開することになる。
即ち、あるノードに新たなコンテンツが蓄積されたとき、当該蓄積されたコンテンツに対するコンテンツホルダとなるそのノードは、蓄積されたコンテンツのタイトル等に基づき、当該コンテンツに対応するコンテンツIDを算出する。
次に、当該コンテンツホルダは、算出されたコンテンツIDと同じ値を有するノードIDを有するノードを到達先として(そのノードIDを有するノードが実在するかどうかに拘わらず)、公開メッセージを送信する。この公開メッセージは、そのコンテンツを示すタイトル、属性情報及びそのコンテンツホルダとしてのノードのIPアドレス等を含むものであり、上記DHTの記述に従って各ルーティング先を介して各レベルの到達先としてのノードに順次転送される。
そして、最も近い値のノードIDを有するノードに到達すると、そのノードはその後にその公開メッセージを転送すべきノードがID空間内に存在しないことを認識して(DHTで桁合わせをすると、次に転送すべきノードが自分自身であることを認識する)、この時点で当該公開メッセージが到達しているノードが新たなコンテンツを管理するルートノードとなることになる。そして、当該ルートノードとなったノードは、公開メッセージ含まれているコンテンツID及びコンテンツホルダを示すIPアドレス並びに属性情報等を図1(b)に例示するインデックス情報EXとして記録する。
次に、実施形態に係る配信システムにおける「キャッシュノード」なる概念について、図2を用いて説明する。なお、図2及び後述の図3においては、ルートノードを二重丸で示し、コンテンツホルダを内部に×が記された○で示し、リクエスタを内部に|が記された○で示し、後述するキャッシュノードを内部に+が記された○で示し、他の一般のノードは●で示す。
上述したDHTを用いたルーティングによりリクエスタRQ1乃至RQ3からの配信元問い合わせメッセージQRmsgをルートノードRN(又はコンテンツホルダCH)に転送する場合、その転送経路(図2(a)及び図2(b)において破線で示す)は、図2(a)に示すように上述した公開メッセージPUBmsgが辿った経路(図2(a)及び図2(b)において実線で示す)と似た経路となるので、この経路上にある各ノード(図2(a)において符号CNで示す)においても図1(b)に例示するインデックス情報EXを記録しておけば、当該経路を経る配信元問い合わせメッセージQRmsgに対応して、その到達先であるルートノードRN又はコンテンツホルダCHに当該配信元問い合わせメッセージQRmsgが到達する前に、早い段階で当該配信元問い合わせメッセージQRmsgに対応する回答をリクエスタRQ1乃至RQ3まで返信することができる。
即ち、配信システム内に公開されたコンテンツの配信を要求するリクエスタRQ1乃至RQ3が、そのコンテンツが記録されているノード(即ちコンテンツホルダCH)のIPアドレスを要求する旨の配信元問い合わせメッセージQRmsgを送信すると、当該配信元問い合わせメッセージQRmsgは各ノード内のDHTに記述されているルーティング先を転送されルートノードRNに近づいていく。そして、最終的には、その経路がコンテンツホルダCHからの公開メッセージPUBmsgの経路と合流して、ルートノードRNに到達する。
ここで、図2(a)に示したリングRc上の経路を木構造に置き換えると図2(b)に示した如きものとなるが、これを一般には「スパニングツリー」と称する。
なお、この「スパニングツリー」なる用語は、元々はIPルータの接続がループ状にならないようにするためのルータ技術の中で使われる用語ではあるが、図2(b)に示す場合でも、ループにならない転送経路のツリーがコンテンツID毎に一つ定義できる(当該図2(b)では省略されているが、その時点で配信システム内に参加している全てノードを含んだスパニングツリーを記述することができる)。
一方、図2(a)に示したように、各リクエスタRQから送信された配信元問い合わせメッセージQRmsgの経路とコンテンツホルダCHから送信された公開メッセージPUBmsgの経路とは、それら経路上のいずれかのノードにおいていずれ交わる。そこで、公開用の公開メッセージPUBmsgをルートノードRNまで到達させる経路上にあるノード夫々に当該公開メッセージPUBmsgに含まれているインデックス情報EXを、一時的に記録可能な一時記録領域に記録させつつ(即ち、一時的にキャッシュさせつつ)当該公開メッセージPUBmsgの転送を行う。そうすれば、リクエスタRQからの配信元問い合わせメッセージQRmsgに対する返信を、ルートノードRNに至る経路上の配信元問い合わせメッセージQRmsgが到達したノードから、配信元問い合わせメッセージQRmsgがルートノードRNに到達する前に行うことができるのである。このようにルートノードRN以外のノードであってインデックス情報EXを一時的に記録しているノードを、以下「キャッシュノード」CNと称する。
一方、本発明に係るDHTを用いた配信システムにおいて、当該配信システム内に参加しているコンテンツホルダCHが多くなることで配信可能なコンテンツが種類及び数共に増大してくると、当該各コンテンツに夫々対応しているインデックス情報EXが、図3に例示するスパニングツリーに見られるように、ルートノードRN又はキャッシュノードCNの夫々について数多く記憶されることになる。
そして、これに加えて、図3に例示するように、一つのルートノードRN又はキャッシュノードCNの夫々に複数のコンテンツに対応するインデックス情報EXが記録されており、更に一つのコンテンツにつき、同一のコンテンツを記録する複数のコンテンツホルダCHを示すインデックス情報EXが記録されるようになり、当該ルートノードRN又はキャッシュノードCNに記憶されるインデックス情報EXの数も増大していくこととなる。
このとき、当該配信システムにおいて、あるコンテンツに対する配信要求が増大してくる(即ち、そのコンテンツが人気コンテンツとなる)と、そのコンテンツを蓄積しているコンテンツホルダCHの数が少ないと、増大する配信需要に対応できず、配信遅延や配信不可能状態が発生してしまうことになる。
これに対応すべく、上記配信システムにおいては、配信要求(上記配信元問い合わせメッセージQRmsgを含む。以下、同じ)が多く発生しているコンテンツについては、他のノード内に当該コンテンツの複製(いわゆるレプリカ)を蓄積させることで、配信元のコンテンツホルダCHとしての機能を配信システム内で分散することで、当該配信要求の増大に対応する場合が多い。そしてこの場合にも、図3に例示するように、同一のコンテンツIDについて異なるIPアドレスを含む上記インデックス情報EXが更に増大することとなる。
(B)本発明の原理
次に、概要を上述した配信システムを前提とする本発明に原理について、図4を用いて説明する。
上述したような、同一のコンテンツIDについて異なるIPアドレスを含む上記インデックス情報EXが配信システム内において増大することに備え、本発明に係る配信システムSは、図4に示すように、上記P2P型の配信システムと同様の構成を備える主配信システムSMの他に、物理的なネットワークとしては当該主配信システムSM内に参加しているノードN又はルートノードRNとの間でメッセージ等の授受が可能とされてはいるが、普段は当該主配信システムSMには参加していない補助システムSPを備える。
そして、当該補助システムSPは、主配信システムSM内に参加している各ノードN又はルートノードRN夫々におけるインデックス情報EXの記憶可能量よりも多くの(より望ましくは2倍以上)インデックス情報EXを記憶することが可能である複数のヘルパーノードSNと、これら複数のヘルパーノードSNの配信システムSMへの参加又は脱退を司る補助サーバSPMとにより構成されている。
この構成において、主配信システムSM内において、特定のコンテンツ(当該特定コンテンツのコンテンツIDを、仮に「1234」とする)に対する配信要求が増大する(即ち、その特定コンテンツの人気が上昇する)ことで当該特定コンテンツのレプリカが主配信システムSM内の多数のノードに夫々蓄積されて来ると、例えば図4に示すルートノードRN内のインデックスメモリCM1では、当該特定コンテンツ(コンテンツID=1234)に対応するインデックス情報EXがその記憶領域の大半を占めてしまうこととなる。そして、その結果として、当該特定コンテンツ以外の他のコンテンツ(換言すれば、不人気コンテンツであり、図4に例示するインデックスメモリCM1内で言えばコンテンツIDが「88d3」であるコンテンツ)に対応するインデックス情報EXが記憶される余地が少なくなってしまう。このことは、当該不人気コンテンツの配信を所望するリクエスタRQから見ると、その不人気コンテンツの配信元となるコンテンツホルダCHを発見する機会が損なわれてしまう等の配信障害を招来することを意味する。
そこで、本発明では、上述した理由により例えばルートノードRN内のインデックスメモリCM1内でインデックス情報EXの記憶数につき、コンテンツ間での過剰な不均衡が発生する状態となったときは、補助サーバSPMの制御の元、主配信システムSM内のノードN又はルートノードRNよりもインデックス情報EXの記憶可能数が大きいインデックスメモリCM2を備えるヘルパーノードSNを臨時に主配信システムSM内に参加させ、当該主配信システムSM内において広範囲のコンテンツに対応するインデックス情報EXの一時記憶に供させる。これに加えて、ヘルパーノードSNのノードIDを人気が集中しているコンテンツのコンテンツIDに一致させて参加させることで、当該ヘルパーノードSNを上記特定コンテンツ(コンテンツID=「1234」)に対する新たなルートノードRNとして稼働させる。
このヘルパーノードSNの主配信システムSMへの臨時参加は、そのインデックスメモリCM1内においてコンテンツまでの過剰な不均衡が発生しているルートノードRNからの援助依頼メッセージRMGを補助サーバSPMが受け取ることから開始され、その援助依頼メッセージRMGを受け取った補助サーバSPMがヘルパーノードSNの一つに参加指示メッセージCMGを送信することにより、当該ヘルパーノードSNの主配信システムSMへの臨時参加が実際に実行される。
このようにヘルパーノードSNを主配信システムSMに臨時参加させることで、当該ヘルパーノードSNは、上記特定コンテンツ(コンテンツID=「1234」)に対する新たなルートノードRNとなり、当該ヘルパーノードSN内のインデックスメモリCM2には、図4に例示するように、上記特定コンテンツ(コンテンツID=「1234」)に対応するインデックス情報EXが多数記憶されることとなり、上述した如き配信障害の招来は未然に防止できることとなる。
(II)実施形態
次に、上述した原理に則った本発明に係る実施形態について、具体的に図5乃至図9を用いて説明する。なお、以下に説明する第1実施形態に係る配信システムでは、説明の簡略化のため、当該配信システム内に上記キャッシュノードCNが存在していないものとして説明する。
始めに、実施形態に係るノードの概要構成について図5を用いて説明する。なお、図5は実施形態に係るノードの概要構成を示すブロック図である。また、実施形態においては、上記コンテンツホルダCH、リクエスタRQ、ルートノードRN、その他のノードN、補助サーバSPM及びヘルパーノードSNは、インデックスメモリCMの記憶容量を除き、基本的に全て同一のハードウエア構成を有するものであるので、それらを代表して一般のノードNの構成について、図5を用いてその概要を説明する。
図5に示すように、実施形態に係る配信システムに含まれているノードNは、演算機能を有するCPU、作業用RAM(Random Access Memory)、各種データ及びプログラムを記録するROM(Read Only Memory)等から構成された制御部11と、上記コンテンツ自体としてのコンテンツデータ、上記DHT及びその他の必要なプログラム等を記録保存(格納)すると共に上記インデックス情報EXを記憶するための上記インデックスメモリCMを兼ねるHDD等から構成された記憶部12(上記コンテンツデータは、その配信前はコンテンツホルダCHとしてのノードN内の記憶部12内にのみ記録されている)と、受信されたコンテンツデータを一時蓄積するバッファメモリ13と、コンテンツデータに含まれるエンコード(符号化)されたビデオデータ(映像情報)及びオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT(Cathode Ray Tube)又は液晶ディスプレイ等よりなる表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD/A(Digital/Analog)変換した後これを増幅器等により増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノードNとの間の情報の通信制御を行なうための通信部20と、夫々の使用者からの指示を受け付け当該指示に応じた指示信号を制御部11に出力する入力部(例えば、キーボード、マウス或いは、操作パネル等)21と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14、及び通信部20はバス22を介して相互にデータの授受が可能に接続されている。
そして、制御部11におけるCPUが記憶部12等に記録された各種プログラムを実行することにより、制御部11が、リクエスタRQ、ルートノードRN、コンテンツホルダCH、補助サーバSPM、ヘルパーサーバSN又はそれら以外の一般のノードNのいずれか一つとしての全体動作を統括制御する。
なお、上記ノードNが本発明に係る制御装置としてのルートノードRNである場合は、記憶部12が所在情報記憶手段として機能し、制御部11が要求情報出力手段及び離脱要求情報出力手段として機能する。また、上記ノードNが本発明に係る管理装置としての補助サーバSPMである場合は、制御部11が識別情報設定手段及び離脱指示情報送信手段として機能する。更に、上記ノードNが本発明に係る補助装置としてのヘルパーノードSNである場合は、記憶部12が補助記憶手段としての機能し、制御部11が取得手段及び記憶制御手段として機能する。
次に、ノード一般(ルートノードRN、コンテンツホルダCH及びリクエスタRQを含む)としての基本的な共通動作、ルートノードRN、補助サーバSPM及びヘルパーノードSNに分けて、実施形態に係る動作について説明する。
(A)ノードとしての一般動作
先ず、実施形態に係るノードNとしての一般動作、即ち、主配信システムSM内のノードNとしての基本的な共通動作を、図6を用いて説明する。なお、図6は実施形態に係るノードNとしての一般動作を示すフローチャートであり、制御部11により実行される。
図6に示すように、実施形態に係るノードNとしての共通動作においては、先ず、制御部11は、当該ノードNを起動するための初期化処理を行い(ステップS1)、主配信システムSMにそのノードNが参加するための参加要求メッセージを、当該ノードNが主配信システムSMに参加するに当たっての仲介役となる他のノードNであるコンタクトノードに送信し(ステップS2)、その参加の可否の回答を待つ(ステップS3)。そして、そのノードNが主配信システムSM内に参加できない何らかの理由(たとえば、主配信システムSMに新規に参加する場合には料金が発生することとされている場合においてその料金の支払いが確認されない場合等)があるときは(ステップS3;NO)、その旨をそのノードNの表示部16に表示する等してその使用者に告知して(ステップS15)、当該ノードNとしての実施形態に係る処理を終了する。
一方、ステップS3の判定において、そのノードNが主配信システムSM内に参加することが許可される場合は(ステップS3;YES)、そのコンタクトノードから主配信システムSMにおいてその時に有効な上記ルーティング情報を取得して記憶し(ステップS4)、更に新規に参加したノードNが主配信システムSM内の他のノードNに配信可能なコンテンツを記憶している場合には、上記コンテンツホルダCHとしてそのコンテンツに対応する上記公開メッセージPUBmsgを生成して主配信システムSM内に送信する(ステップS5)。
そして、記憶部12内の後述する再生指示フラグ及び後述する端末終了指示フラグを「0」に初期化すると共に、新たに参加したノードNの使用者に対して、主配信システムSM内において配信を受けることが可能なコンテンツを検索して選択する等のためのスレッド(当該スレッドの詳細は、後ほど図7を用いて説明する)を起動する処理を行う(ステップS6)。
ここで、上記再生指示フラグとは、ノードNの使用者が上記入力部21を用いて行う入力操作により視聴を希望するコンテンツを選択決定したときに「1」となる制御部11内のフラグであり、一方、端末終了指示フラグは、当該使用者が入力部21を用いてノードNの使用を終了する旨の操作を行ったときに「1」となる制御部11内のフラグである。
そして、当該スレッドにおける処理により当該各指示フラグが更新されて「1」に変化することを待機すると共に、参加した主配信システムSMの他のノードNからの各種メッセージの受信を待機する(ステップS7、S8;NO)。
そして、使用者によるいずれかの指示フラグの変化又はいずれかのメッセージの受信がされたときは(ステップS8;YES)、再生指示フラグが「1」であるか否か、即ち使用者によるコンテンツの配信要求操作があったか否かを確認する(ステップS9)。
ステップS9の判定において、使用者による当該配信要求操作があったときは(ステップS9;YES)、当該ノードNは以後上記リクエスタRQとして動作することとなるので、その配信が所望されるコンテンツの発見処理又はその取得後の再生処理を実行する(ステップS13)。なお、再生指示フラグが「1」になったときは、それと同時にスレッド処理中にユーザが選択したコンテンツのコンテンツIDが記憶されているので、そのコンテンツIDを用いて発見・再生処理が行われる。
そして、コンテンツの再生が開始した後は、再生指示フラグを「0」に戻して(ステップS16)、次の配信要求等に備えて上記ステップS7の処理に移行する。
一方、ステップS9の判定において、ステップS8における処理が使用者による配信要求操作でないときは(ステップS9;NO)、ステップS8における処理は、配信要求操作以外の入力操作か、或いは他のメッセージの受信処理であったこととなるので、メッセージ受信があったか否かを確認する(ステップS10)。そして、メッセージの受信処理だったときは(ステップS10;YES)、当該受信したメッセージに対応する処理(具体的には、ルーティング情報の更新処理、他のノードNへのメッセージの転送処理等)を行い(ステップS14)、上記ステップS7の処理に移行する。
他方、ステップS10の判定において、未だいずれのメッセージも受信していないときは(ステップS10;NO)、次に、先ほどの入力操作が、当該ノードNとしての動作を終了する旨の操作であったか否かを確認する(ステップS11)。そして、当該操作がされていないときは(ステップS11;NO)、無効な操作がなされたと見なし、上記ステップS8の処理に移行する。
これに対し、ノードNとしての動作を終了する旨の操作が為されたときは(ステップS11;YES)、脱退メッセージ等の主配信システムSMへの送信処理等の脱退処理を実行し(ステップS12)、実施形態に係るノードNとしての動作を終了する。
次に、上記ステップS6の処理の一部として実行される、上記スレッドの内容について具体的に図7を用いて説明する。なお、図7は、当該スレッドの内容を示すフローチャートである。
当該スレッドとして具体的には、図7に示すように、コンテンツ検索及び選択操作のためのスレッドが開始されると、先ず、コンテンツ検索用の予め設定された検索画面を表示部16に表示する。
ここで、当該検索画面としては、例えば、その検索画面としての表題が表示される表題欄と、コンテンツのタイトルを手掛かりとして検索を行う際に当該タイトルが入力されるタイトル入力欄と、そのコンテンツに出演している俳優等の名前を手掛かりとして検索を行う際に当該名前が入力される名前入力欄と、そのコンテンツの監督の名前を手掛かりとして検索を行う際に当該名前が入力される名前入力欄と、そのコンテンツを端的に示すキーワードを手掛かりとして検索を行う際に当該キーワードが入力されるキーワード入力欄と、入力された検索条件を用いてコンテンツを検索させる際に操作する検索操作ボタンと、その他の種々の情報を表示するための情報表示欄と、当該情報の続きを表示させるために操作される操作ボタンと、ノードNとしての動作終了を指示するための終了ボタンと、他の種々の情報が表示される情報表示欄と、を含む検索画面が表示部16上に表示される(ステップS60)。
当該検索画面が表示されると、先ずタイトル入力欄を文字入力可能とし(ステップS61)、その後に入力部21におけるいずれかのキーの操作又はボタンの操作を待機する(ステップS62)。そして、入力部21内の図示しない上下キーが操作されたときは(ステップS63;YES)、文字入力可能とする検索画面内の欄を、例えば上記名前入力欄等の他の入力欄に移動させ(ステップS66)、上記ステップS62に戻って次の入力操作を待機する。
また、上記入力操作が上下キーを用いたものでないときは(ステップS63;NO)、次に、入力部21内の図示しない左右キー、文字キー又は削除キー等が操作されたか否かを確認する(ステップS64)。そして、いずれかの文字等の入力が実行されたときは(ステップS64;YES)、その時点で文字入力可能とされている入力欄において、その入力された文字等を用いた検索キーワードの編集処理(より具体的には、検索キーワードの確定処理等)が実行され(ステップS67)、再度上記ステップS62に戻って次の入力操作を待機する。
他方、ステップS64の判定において、文字キー等の操作が為されていないときは(ステップS64;NO)、次に検索実行ボタンが操作されたか否かを確認する(ステップS65)。そして、当該検索実行ボタンも操作されていないときは(ステップS65;NO)、最後に、上記終了ボタンが操作されたか否かを確認し(ステップS68)、当該終了ボタンも操作されていないときは(ステップS68;NO)、上記ステップS62に戻って更なる入力操作を待機する。
一方、ステップS68の判定において、終了ボタンが操作されたときは(ステップS68;YES)、上記端末終了指示フラグの値を制御部11内において「1」に設定し(ステップS69)、上記ステップS62に戻って更なる入力操作を待機する。
他方、上記ステップS65の判定において上記検索実行ボタンが操作されたときは(ステップS65;YES)、この時点で各入力欄に入力されている検索キーワードでカタログの検索を行うことが確定したことになる。これを用いて、現在記憶部12内に記憶されているコンテンツ検索のためのカタログの中から、上記確定された検索キーワードに一致するタイトル等を有するコンテンツを抽出し(ステップS70)、その抽出した内容をリスト表示する(ステップS71)。このとき、当該リストは、コンテンツ再生表示画面とは別画面により検索結果一覧表として表示部16に表示される。
ステップS71の処理により検索結果一覧表が表示部16に表示された後は、いずれかのボタン又はキーの操作を待機しつつ(ステップS72)、上記戻るボタンが操作されたか否かを確認する(ステップS74)。そして、当該戻るボタンが操作されたときは(ステップS74;YES)、上記ステップS60に戻って検索画面の新たな表示から処理を繰り返す(ステップS60乃至S71)。
他方、ステップS74の判定において、上記戻るボタンも操作されていないときは(ステップS74;NO)、最後に、上記視聴ボタンが操作されたか否かを確認する(ステップS75)。そして、当該視聴ボタンも操作されていないは(ステップS75;NO)、上記ステップS72に戻って次の入力操作を待機し、操作されたときは(ステップS75;YES)、当該視聴対象となっているコンテンツのコンテンツIDを制御部11内に記憶させると共に当該制御部11内の再生指示フラグを「1」に設定し(ステップS76)、再度上記ステップS62に戻って次の入力操作を待機する。
(B)ルートノードとしての動作
次に、実施形態に係るルートノードRN(図4参照)としての動作を、図8を用いて説明する。なお、図8は実施形態に係る主配信システムSM内のルートノードRNとしての動作を示すフローチャートであり、当該ルートノードRNとして機能するノードN内の制御部11により実行される。また、図8に示すルートノードRNとしての処理は、上記図6及び図7を用いて説明した通常のノードNとしてのメッセージ処理(図6ステップS14参照)等とは全く独立して、例えば一定時間毎に定期的に開始される処理(即ち、例えばタイマー起動による割り込み処理)であり、図8に示す処理自体が終了した時点で元の通常の処理に戻ることになる。
図8に示すように、実施形態に係るルートノードRNとしての動作においては、先ず、そのルートノードRNがインデックス情報EXを記憶しているコンテンツを蓄積しているコンテンツホルダCHにおける配信要求の集中度(換言すれば、当該ルートノードRN内のインデックスメモリCMが、図4に例示するインデックスメモリCM1のような不均衡状態になる可能性)を確認する(ステップS20、S21)。
このステップS20の動作として具体的には、例えば、当該ルートノードRN内の記憶部12におけるインデックス情報EXの記憶領域の情報量に比べて、特定のコンテンツに対応するインデックス情報EXの数(即ち、当該特定のコンテンツのレプリカの数)が当該記憶領域の大半を占めているか否かや、その特定のコンテンツに相当するコンテンツデータを蓄積しているコンテンツホルダCHに対する配信要求数の増加度、或いは当該コンテンツホルダCHに対する単位時間当たりの配信要求数等を、予め設定されている閾値との比較により判定する。
そして、当該配信要求の集中度が高いと判定されるときは(ステップS21;YES)、補助サーバSPMに対して上記援助依頼メッセージRMGを送信済みか否かを確認し(ステップS22)、送信済みでないときは(ステップS22;NO)、直ちにヘルパーノードSNの主配信システムSMへの参加を求める援助依頼メッセージRMGを補助サーバSPMに送信して(ステップS23)、ノードNとしての上記した通常の処理(図6及び図7参照)に戻る。
なお、当該補助サーバSPMに接続するための情報(より具体的には、例えば当該補助サーバを示すIPアドレス又はポート番号)は、例えば、実施形態に係るノードNの工場出荷時において、記憶部12を構成するハードディスク内か、或いは制御部11内の図示しないROM(Read Only Memory)に記憶されているものである。
また、当該援助依頼メッセージRMGの具体的内容としては、少なくとも、当該援助依頼メッセージRMGを送信するルートノードRNのIPアドレス、当該ルートノードRNに対応するノードID及び当該援助依頼メッセージRMGの対象であるコンテンツ(人気コンテンツ)に対応するコンテンツIDが含まれている。なお、援助依頼メッセージRMGとしてはこの他に、ヘルパーノードSNを求める緊急度を示す指標等を含ませても良い。
一方、ステップS22の判定において、援助依頼メッセージRMGを送信済みであるときは(ステップS22;YES)、ノードNとしての上記した通常の処理(図6及び図7参照)に戻る。
他方、上記ステップS21の判定において、対象となっているコンテンツに対する配信要求の集中度が高いと判定されないときは(ステップS21;NO)、上記援助依頼メッセージRMGを補助サーバSPMに対して送信済みか否かを確認し(ステップS25)、送信済みでないときは(ステップS25;NO)、配信要求の集中度が低いためそもそも当該援助依頼メッセージRMGを送信する必要事態がないことになるため、そのままノードNとしての上記した通常の処理(図6及び図7参照)に戻る。
また、上記ステップS25の判定において、援助依頼メッセージRMGが送信済みであるときは(ステップS25;YES)、対象となっているコンテンツに対する配信要求の集中度が高いと判定されない(上記ステップS21;NO参照)が故にヘルパーノードSNが主配信システムSM内に参加している必要がなくなっているので、以降に改めて参加する機会が発生する場合のために当該ヘルパーノードSNを主配信システムSMから離脱させて元の補助システムSP内に返却すべく、援助解除メッセージをそのルートノードRNから補助サーバSPMに送信し(ステップS28)、上記ノードNとしての上記した通常の処理(図6及び図7参照)に戻る。
なお、図8には図示していないが、ルートノードRNとしてノードNは、上記援助依頼メッセージRMG及び援助解除メッセージの発生に対応してヘルパノードSNが主配信システムSMに参加又は脱退することで、現在対象となっている(人気)コンテンツのルートノードRNとしての機能を果たす必要がなくなったり、或いは再びその機能を開始することとなったりすることになる。より具体的には、例えば、上記援助依頼メッセージRMG及び援助解除メッセージ等のメッセーMGの授受に対応してルートノードSNとしてのノードNに記憶されているルーティング情報が更新されることで、ルートノードRNとしての機能を果たしたり果たさなくなったりするのである。
(C)補助サーバとしての動作
次に、実施形態に係る補助サーバSPM(図4参照)としての動作を、図9を用いて説明する。なお、図9は実施形態に係る補助システムSP内の補助サーバSPMとしての動作を示すフローチャートであり、当該補助サーバSPMとして機能するノードN内の制御部11により実行される。また、図9に示す補助サーバSPMとしての処理は、その電源がオンとされた以降当該電源がオフとされるまで繰り返し実行される無限ループパターンの処理である。
図9に示すように、実施形態に係る補助サーバSPMとしての動作においては、先ず、主配信システムSM内の任意のノードNからのメッセージの受信を待機する(ステップS30)。
そして、何らかのメッセージを受信したら、その受信したメッセージが、補助サーバSPMにとって有効なメッセージか否か、即ち、上記援助依頼メッセージRMG又は上記援助解除メッセージのいずれかであるか否かを確認する(ステップS32)。
受信したメッセージが上記援助依頼メッセージRMG又は上記援助解除メッセージのいずれでもないときは(ステップS32;NO)、当該受信したメッセージを無視して、上記ステップS30に戻って待機状態を継続する。
一方、ステップS32の判定において、受信したメッセージが上記援助依頼メッセージRMG又は上記援助解除メッセージのいずれかであるときは(ステップS32;YES)、次に、その受信したメッセージが援助依頼メッセージRMGであるか否かを確認する(ステップS33)。
ステップS33の判定において、受信したメッセージが援助依頼メッセージRMGでないときは(ステップS33;NO)、受信したメッセージは援助解除メッセージであることになるので、現在主配信システムSMに参加しているヘルパーノードSNのうち当該援助解除メッセージを送信してきたルートノードRNからの上記援助依頼メッセージRMGに対応して主配信システムSMに参加させたヘルパーノードSNに対して、当該主配信システムSMから脱退して補助システムSPに戻る旨の脱退指示メッセージを送信し(ステップS34)、その脱退を確認後にヘルパーノードSNを管理するために補助サーバSPM内に記憶されている管理リストを更新して(ステップS35)、その後上述してきた動作を繰り返す。
ここで、当該管理リストとしては、上記援助解除メッセージに対応して主配信システムSMから脱退させるヘルパーノードSNを特定すべく、上記援助依頼メッセージRMGに対応して主配信システムSMに参加させたヘルパーノードSNのIPアドレスと、当該援助依頼メッセージRMGを送信してきたルートノードRN(即ち、上記援助解除メッセージを送信してきたノードN)のIPアドレスと、を対応付けた一覧表(換言すれば、どのルートノードRNからの援助依頼メッセージRMGに応答してどのヘルパーノードSNを主配信システムSMに参加させたかを示す対応表)が、当該管理リストとして補助サーバSPM内の記憶部12に記憶されている。
一方、ステップS33の判定において、受信したメッセージが援助依頼メッセージRMGであるときは(ステップS33;YES)、次に、主配信システムSM内に参加させることが可能なヘルパーノードSNが実際にあるか否か(即ち、他の用途に用いられていない空き状態のヘルパーノードSNがあるか否か)を確認する(ステップS36)。
そして、空き状態のヘルパーノードSNがないときは(ステップS36;NO)、当該管理下にあるいずれかのヘルパーノードSNが空き状態になるまで待機すべく予め定められた一定時間待機し(ステップS37)、再度ステップS36に戻って空き状態のヘルパーノードSNがあるか否かの判定を行うことを繰り返す。
他方、ステップS36の判定において、空き状態のヘルパーノードSNがあるときは(ステップS36;YES)、次に、援助依頼メッセージRMGを送信して来たルートノードRNのノードIDの値が、援助依頼メッセージRMGを送信して来たルートノードRNが管理しているコンテンツを示すコンテンツIDの値と等しいか否かを確認する(ステップS38)。
ここで、ノードIDのbit長は、一般には128bit乃至160bitと長いので、ルートノードRNのノードIDとコンテンツIDが正確に一致する確率は非常に低い。このため、ヘルパーノードSNのノードIDをコンテンツIDに完全に一致させて、ルートノードRNとして参加させることが、ほぼ確実に可能である。しかしながら一方で、当該一致する確率は全くの「0」ではないので、上記ステップS38の処理に係る判定が必要になるのである。
そして、当該ルートノードRNのノードIDの値とコンテンツIDの値とが等しくないときは(ステップS38;NO)、空き状態にあるヘルパーノードSNのいずれかに対して、その時に援助依頼メッセージRMGの対象となっている(配信要求が集中している)コンテンツを示すコンテンツIDの値と同一の値を有するノードIDを割り振り、更に当該援助依頼メッセージRMGを送信して来たルートノードRNを上記コンタクトノードとして主配信システムSMに参加することを指示する参加指示メッセージCMGを送信し(ステップS44)、上記ステップS35の処理に移行する。
ここで、ステップS38の判定において、当該ルートノードRNのノードIDの値とコンテンツIDの値とが等しいときにおいて、仮に空き状態にあるヘルパーノードSNのいずれかに対して、その時に援助依頼メッセージRMGの対象となっている(配信要求が集中している)コンテンツを示すコンテンツIDの値と同一の値を有するノードIDを割り振った上で主配信システムSMに参加させると、一つの配信システム内に同一のノードIDのノードが2つ併存することとなる。
そこで、この事態を回避すべく、ルートノードRNのノードIDの値とコンテンツIDの値とが等しいときは(ステップS38;YES)、現在の当該コンテンツIDの値に「1」を加算した値を有するノードIDを新たに生成し(ステップS39)、その新たに生成されたノードIDと等しいノードIDを既に有している他のノードが主配信システムSM内に既に存在しているか否かを確認する(ステップS40、S41)。より具体的には、例えば当該新たに生成されたノードIDを宛先としてルートノード確認メッセージ(上記DHTに基づいて転送されるタイプのメッセージ)を主配信システムSM内に送信し、実際に現時点でルートノードRNとして機能しているノードNのノードIDの返信を受ける(換言すれば、当該コンテンツIDに相当するコンテンツを管理するノードNがどのノードNであるかを問い合わせる旨のメッセージを送信してその返答を受ける)。
そして、新たに生成されたノードIDと等しいノードIDを既に有している他のノードが主配信システムSM内に既に存在しているときは(ステップS41;YES)、当該新たに生成したノードIDの値に更に「1」を加えて新たなノードIDを再度生成し(ステップS43)、上記ステップS40に戻って再度同じ判定を行う。
一方、ステップS41の判定において、新たに生成されたノードIDと等しいノードIDを既に有している他のノードが主配信システムSM内に存在していないときは(ステップS41;NO)、当該空き状態にあるヘルパーノードSNのいずれかに対して、そのときの値のノードIDを割り振り、更に当該援助依頼メッセージRMGを送信して来たルートノードRNを上記コンタクトノードとして主配信システムSMに参加することを指示する参加指示メッセージCMGを当該空き状態にあるヘルパーノードSNに送信し(ステップS42)、上記ステップS35の処理に移行する。
このように、コンテンツIDの値に完全に一致するノードIDを持つノードNが既に存在していた場合は、ヘルパーノードSNのノードIDを、コンテンツIDから少しずらした値にして上で主配信システムSMに参加させることで、新たなルートノードRNになることはできないが、ルートノードRNに限りなく近いノードIDを持つノード(準ルートノード)として働かせることができる。この場合、人気コンテンツのインデックス情報の記憶を負担するという効果は若干下がるものの、一般には上記キャッシュノードCNとして働くことができるので、ある一定の効果を得ることができる。
(D)ヘルパーノードとしての動作
最後に、実施形態に係るヘルパーノードSN(図4参照)としての動作を、図10を用いて説明する。なお、図10は実施形態に係る補助システムSP内のヘルパーノードSNとしての動作を示すフローチャートであり、当該補助サーバSPMとして機能するノードN内の制御部11により実行される。
図10左に示すように、実施形態に係るヘルパーノードSNとしての動作においては、先ず、当該ヘルパーノードSNとしての起動処理を行い、補助サーバSPMからの参加指示メッセージCMGの待機状態に入る(ステップS50、S50A;NO)。
そして、当該参加指示メッセージCMGが受信されたときは(ステップS50A;YES)、主配信システムSMにそのヘルパーノードSNが参加し、DHTとしてのメッセージ処理を行うためのスレッドを起動し(ステップS51)、当該主配信システムSMに参加後は、上述した如く当該参加指示メッセージCMGの対象となっているコンテンツのルートノードRN或いは、ルートノードRNに限りなく近いノードIDを持つノード(準ルートノード)として機能する。
次に、当該ヘルパーノードSNとして動作中においては、定期的に以下に説明するステップS52乃至S56の処理を繰り返す。即ち、当該コンテンツに対する配信要求に対する集中状態の自然解消を待つべく予め設定された一定時間待機している間に(ステップS52)、当該集中状態を確認する(ステップS53、S54)。
ここで、当該ステップS53及びS54の動作として具体的には、上記図8ステップS20の場合と同様に、例えば、当該ヘルパーノードSN内の記憶部12におけるインデックス情報EXの記憶領域の情報量に比べて、特定のコンテンツに対応するインデックス情報EXの数(即ち、当該特定のコンテンツのレプリカの数)が当該記憶領域の大半を占めているか否かや、その特定のコンテンツに相当するコンテンツデータを蓄積しているコンテンツホルダCHに対する配信要求数の増加度、或いは当該コンテンツホルダCHに対する単位時間当たりの配信要求数等を、予め設定されている閾値と比較することにより判定することとすればよいが、このステップS53及びS54の判定処理は、上記ステップS20の場合と異なり配信要求の集中状態が解消されているか否かを判定することが目的であるので、当該ステップS20の判定で用いた閾値と異なる閾値を用いてステップS54の場合の判定を行っても良い。
次に、上記ステップS53及びS54の確認処理において、配信要求の集中度が集中状態であると判定されないときは(ステップS54;NO)、上記ステップS51として開始した一般のDHTを用いた処理を終了させ(ステップS56)、上記ステップS50の処理に戻って参加指示メッセージCMGの待機状態に入る。
一方、ステップS53及びS54の確認処理において、当該コンテンツに対する配信要求が依然として集中しているときは(ステップS54;YES)、補助サーバSPMからの上記脱退指示メッセージを受信したか否かを確認する(ステップS55)。そして、当該脱退指示メッセージを受信していないときは(ステップS55;NO)、上記ステップS52の処理に移行し、引き続き当該コンテンツに対応するルートノードRN或いは準ルートノードとして機能しつつ、上記ステップS52乃至S55の処理を繰り返す。
他方、ステップS55の判定において、脱退指示メッセージを受信したときは(ステップS55;YES)、上記ステップS51として開始したDHTメッセージ処理スレッドを終了させ(ステップS56)、上記ステップS50の処理に戻って参加指示メッセージCMGの待機状態に入る。
次に、上記ステップS51として開始したDHTメッセージ処理スレッドについて、具体的に図10右に示すフローチャートを用いて説明する。なお、このフローチャートは、図6に示したフローチャートから、コンテンツ要求・再生等の処理を除いたものに相当する。
図10右に示すように、当該DHTメッセージ処理スレッドにおいては、ステップS50の処理において受信した参加指示メッセージCMGに対応して主配信システムSM内に参加すべく、上記参加要求メッセージを、当該ヘルパーノードSNが主配信システムSMに参加するに当たっての仲介役となるコンタクトノードに送信し(ステップS57)、その後、当該参加要求メッセージに対する返信メッセージを含むメッセージの待機状態に入る(ステップS58;NO)。なお、このステップS57の実行に伴い、当該コンタクトノードはその時点で記憶している上記インデックス情報EX全てを返信メッセージに添付するようにしても良い。ヘルパーノードSNは、この情報を元に、自己のインデックス情報EXを構築すると、すみやかにルートノードRNとしての機能を発揮することができる。
そして、当該受信待機中においていずれかのメッセージを受信したときは(ステップS58;YES)、当該受信したメッセージの種類に対応した種々のメッセージ処理を行い(ステップS59(図6ステップS14参照))、その後上記ステップS58に戻ってメッセージ受信の待機状態に入る。
以上説明したように、実施形態に係る配信システムSの動作によれば、特定の人気コンテンツに対する配信要求が閾値以上となったとき援助依頼メッセージRMGを補助サーバSPMに出力し、当該援助依頼メッセージRMGに対応してヘルパーノードSNを主配信システムSMに参加させるので、主配信システムSMに属するノードにおいて、当該人気コンテンツに対する配信要求の集中により当該人気コンテンツに対応するインデックス情報EXの数が増大することに起因する他のコンテンツに対応する他のインデックス情報EXの記憶数の低減を防止できる。
従って、当該他のインデックス情報EXの記憶数が低減することによって当該他のインデックス情報EXに対応する他のコンテンツが配信不能状態となることを防止し、主配信システムSMにおける利便性及び配信効率の向上に資することができる。
更に、単位時間当たりの配信要求の数又はレプリカの数の少なくともいずれか一方に基づいて、人気コンテンツに対する配信要求が閾値以上になったか否かを判定するので、現実の配信要求数又はレプリカの数に基づいて判定することで、効率的に主配信システムSMと補助システムSPとの間の連携を行うことができる。
更にまた、人気コンテンツに対する配信要求が所定の閾値未満となったとき、主配信システムSM内に参加しているヘルパーノードSNを主配信システムSMから離脱させるので、人気コンテンツの配信状況が改善されたときはヘルパーノードSNを主配信システムSMから離脱させることで、元の主配信システムSMの状態に復帰させることができると共に、以後の配信状況の悪化に備えて補助システムSPを待機させることができる。
また、ヘルパーノードSNのノードIDの値を人気コンテンツに対応するコンテンツIDの値に相当する値に設定して主配信システムSM内に参加させ、当該主配信システムSM内における当該人気コンテンツの配信の制御に供させるので、当該参加させたヘルパーノードSNを確実に人気コンテンツの配信制御に供させることができる。
更に、ルートノードRNのノードIDの値が、人気コンテンツに対応するコンテンツIDの値に相当する値であるとき、ヘルパーノードSNを識別するためのノードIDの値を人気コンテンツに対応するコンテンツIDの値に関連する値に設定して主配信システムSM内に参加させるので、主配信システムSMにおけるコンテンツの配信に与える影響を与えることなくヘルパーノードSNを主配信システムSMに参加させることができる。
また、人気コンテンツに対応するコンテンツIDの値に関連する値が、人気コンテンツに対応するコンテンツIDの値に対して直近に大きい値であるので、より迅速且つスムーズにヘルパーノードSNを主配信システムSMに参加させることができる。
更に、主配信システムSM内に参加しているヘルパーノードSNをその主配信システムSMから離脱させるとき、当該ヘルパーノードSNに対して主配信システムSMから脱退する旨の脱退指示メッセージを送信するので、主配信システムSMに参加していたヘルパーノードSNを迅速に補助サーバSPMの管理下に戻すことができる。
更にまた、ヘルパーノードSNにおけるインデックス情報EXの記憶可能数が、主配信システムSM内のノードにおけるインデックス情報EXの記憶可能数の少なくとも二倍であるので、主配信システムSMにおける人気コンテンツの配信状態の改善のために十分な機能を持ったヘルパーノードSNを当該主配信システムSMに参加させることができる。
また、主配信システムSMに参加する際、主配信システムSM内のルートノードRNからルーティング情報を取得し、その取得したルーティング情報をヘルパーノードSN内に記憶させて人気コンテンツの配信に供させるので、簡易且つ迅速な処理でヘルパーノードSNを主配信システムSMに参加させ、直ちに人気コンテンツの配信に供させることができる。
なお、上述した実施形態では、主配信システムSMへヘルパーノードSNを参加させる際のノードIDを、既に存在しているコンテンツID又はノードIDとの関係で「1」ずつ増大させつつ設定した(図9ステップS39、S43参照)が、これ以外に、「1」ずつ減少させるようにして設定してもよい。この構成によっても、上記実施形態と同様の作用効果を奏することができる。
また、上述した実施形態では、主配信システムSM内にキャッシュノードCNが存在しない場合について説明したが、実施形態におけるルートノードRNの機能のうち本発明に係る部分は、そのままキャッシュノードCNに適用することも可能である。
更に、上述した図8乃至図10に示すフローチャートに対応するプログラムを、フレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、又はインターネット等を介して取得して記録しておき、これらを汎用のコンピュータで読み出して実行することにより、当該コンピュータを実施形態に係るルートノードRN、補助サーバSPM及びヘルパーノードSN内の制御部11として夫々機能させることも可能である。