【文献】
Lili Qiu et al.,On the placement of Web Server Replicas,INFOCOM 2001. Twentieth Annual Joint Conference of the IEEE Computer and Communications Societies, Proceedings. IEEE,2001年 4月26日
(58)【調査した分野】(Int.Cl.,DB名)
前記評価値算出部は、自ノードが配信するコンテンツを利用する各ユーザ端末を、第1ユーザ端末群と、第2ユーザ端末群の2つに区分して、区分した各ユーザ端末と自ノード間との評価値を算出し、
前記配置決定部は、前記評価値算出部が算出した評価値が閾値を超えたならば、前記第1ユーザ端末群に配信するノードと前記第2ユーザ端末群に配信するノードとに再配置する、
ことを特徴とする請求項1に記載のコンテンツ配信ノード。
前記評価値算出部は、前記コンテンツを配信する近傍ノードと通信して、当該近傍ノードと自ノードとの中間に位置する中間ノードを決定し、自ノードと前記近傍ノードとが配信するコンテンツを利用する各ユーザ端末と前記中間ノード間の評価値を算出し、
前記配置決定部は、前記評価値算出部が算出した評価値が閾値以下ならば、自ノードと前記近傍ノードとが配信する当該コンテンツを前記中間ノードに融合する、
ことを特徴とする請求項1に記載のコンテンツ配信ノード。
前記評価値算出部は、各コンテンツに付与されるメタタグの一致を検出し、一致したメタタグに付与された重み付け係数の総和を各コンテンツ間の関連性評価値として算出する、
ことを特徴とする請求項4に記載のコンテンツ配信ノード。
【発明を実施するための形態】
【0026】
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
(第1の実施形態)
図1は、第1の実施形態におけるコンテンツ配信ネットワーク1の概略を示す図である。
図1に示すように、コンテンツ配信ネットワーク1は、正方格子状に配列した複数のノード2−1〜2−9と、ユーザ端末3−1〜3−4とを含んで構成される。ノード2−1〜2−9と、ユーザ端末3−1〜3−4とは、それぞれ正方格子のいずれかの交叉点に重複しないように配置される。
ノード2−1〜2−9は、例えば映像などのコンテンツを配信するサーバである。ノード2−1〜2−9のいずれかには、各コンテンツのオリジナルまたはレプリカが配置され、各ユーザ端末3−1〜3−4の要求に応じて当該コンテンツを配信する。以下、各ノード2−1〜2−9を区別しないときには、単にノード2記載する。各ユーザ端末3−1〜3−4を区別しないときには、単にユーザ端末3と記載する。
【0027】
図2は、第1の実施形態におけるノード2の概略の構成図である。
図2に示すように、ノード2は、配信部21と、評価値算出部22と、配置決定部23と、記憶部24とを含んで構成される。記憶部24は、例えばハードディスクなどの大容量記憶媒体であり、コンテンツ4が記憶されている。
配信部21は、各ユーザ端末3(
図1参照)の要求に応じてコンテンツ4を配信する。
評価値算出部22(評価値算出手段)は、このコンテンツ4を利用する各ユーザ端末3と自身のノード2との間の評価値を算出する。
配置決定部23(配置決定手段)は、このコンテンツ4を配置するノード2として、コンテンツ4とユーザ端末3との間の評価値に基づき、この評価値が最小となるノード2を決定する。
【0028】
図3は、第1の実施形態におけるコンテンツ4とユーザ端末3の配置の一例を示す図である。
図3に示すように、ユーザ端末3−1は、座標(0,4)に位置する。ユーザ端末3−2は、座標(0,2)に位置する。ユーザ端末3−3は、座標(1,4)に位置する。ユーザ端末3−4は、座標(4,0)に位置する。コンテンツ4(
図2参照)は、座標(2,2)に位置するノード2−5に配置される。各ユーザ端末3−1〜3−4とノード2−5との間は、それぞれ距離l
1〜l
4だけ離間している。
ここでユーザ端末3やノード2の位置とは、物理的に設置された位置のことをいい、例えば緯度と経度とで表される。本緯度と経度は、例えば、各ユーザ端末3やノード2に付与されたIP(Internet Protocol)アドレスと、IPアドレスと地理的情報とを対応づけたデータベースとにより知ることができる。ノード2の位置とユーザ端末3の位置とを緯度と経度で表すことにより、両者間の距離を求めることができる。
本実施形態では、距離に比例して遅延時間が生じる。このことから、各ユーザ端末3−1〜3−4からできるだけ少ない遅延時間でコンテンツにアクセスできるように、各ユーザ端末3からの距離の総和が最小となるノード2に当該コンテンツを配置している。
なお、
図1に示したノード2−1〜2−4,2−6〜2−9は、図示を省略している。
各ユーザ端末3がコンテンツ4のオリジナル、またはそのコピー(レプリカ)の配信を受けるノード2は、ユーザ端末3自身の位置にできるだけ近いものが望ましい。各コンテンツ4のオリジナルまたはレプリカは、交叉点にあるノード2−1〜2−9のいずれにも配置可能である。
【0029】
第1の実施形態のコンテンツ配信ネットワーク1は、すべてのユーザ端末3−1〜3−4からの距離l
iの総和を最少とし、かつ、ユーザ端末3との距離l
iの最大値が所定値以内であることを保障するような交叉点のノード2にコンテンツ4を配置する。各ノード2の評価値算出部22は、コンテンツ4を利用する各ユーザ端末3と各ノード2間の距離の総和を、評価値として算出する。
【0030】
(第2の実施形態)
図4は、第2の実施形態におけるコンテンツ4とユーザ端末3の配置の一例を示す図である。
図4においても、各ユーザ端末3−1〜3−4とノード2−5とは、
図3と同様に配置されている。
各ユーザ端末3とコンテンツ4の間には、位置関係と距離に基づく距離ベクトルl
iが存在する。距離ベクトルl
iは、各コンテンツ4の位置を(X
C,Y
C)、不図示のユーザ端末3iの位置を(X
i,Y
i)とすると、以下の式(1)で算出される。
【数1】
【0031】
図4の例で、ユーザ端末3−3とコンテンツ4を配信するノード2−5との間の距離ベクトルl
3は、以下の式(2)で算出される。
【数2】
【0032】
第2の実施形態においては、コンテンツ位置(X
C,Y
C)は、すべてのユーザ端末3との距離ベクトルの総和が最小になるように算出される。以下の式(3)は、コンテンツ位置(X
C,Y
C)の条件を記載したものである。
【数3】
【0033】
第2の実施形態のコンテンツ配信ネットワーク1は、コンテンツ4が各ユーザ端末3から太さの違うバネでお互いに引っ張られて、その中立点に存在するような動作となる。このとき、コンテンツ4と、このコンテンツ4の配信を受けるユーザ端末3iとの間の距離ベクトルl
iが、仮想的なバネの力に対応する。
図4では、この仮想的なバネの力を矢印で示している。
各ノード2の評価値算出部22は、コンテンツ4を利用する各ユーザ端末3と各ノード2間の距離ベクトルの総和の絶対値を、評価値として算出する。
【0034】
(第3の実施形態)
図5は、第3の実施形態におけるコンテンツ4とユーザ端末3の配置の一例を示す図である。
図5においても、各ユーザ端末3−1〜3−4とノード2−5とは、
図3と同様に配置されている。
各ユーザ端末3は、例えば、スマートフォンでSD(Standard Definition)画質の動画を再生する場合と、大画面テレビでフルHD(High Definition)画質で動画を再生する場合とでは、その動画コンテンツ4の配信に要する帯域が異なる。そこで、各ユーザ端末3が使用する帯域をB
iとして、距離ベクトルに重み付けする。
各ノード2の評価値算出部22は、各ユーザ端末3とコンテンツ4の間の位置関係と距離に基づく距離ベクトルl
iに対して、この帯域B
iで重み付けする。重み付きの距離ベクトルB
i・l
iは、各コンテンツ4の位置を(X
C,Y
C)、ユーザiの位置を(X
i,Y
i)とすると、以下の式(4)で算出される。
【数4】
【0035】
第3の実施形態のコンテンツ配信ネットワーク1は、コンテンツ位置(X
C,Y
C)を、すべてのユーザ端末3との重み付きの距離ベクトルの総和が最小になるように算出する。以下の式(5)は、コンテンツ位置(X
C,Y
C)の算出条件を記載したものである。
【数5】
【0036】
第3の実施形態のコンテンツ配信ネットワーク1は、コンテンツ4が各ユーザ端末3から太さの違うバネでお互いに引っ張られて、その中立点に存在するような動作となる。このとき、コンテンツ4と、このコンテンツ4の配信を受けるユーザ端末3との間の重み付きの距離ベクトルB
i・l
iが、仮想的なバネの力に対応する。
図4では、この仮想的なバネの力を矢印で示している。
各ノード2の評価値算出部22は、コンテンツ4を利用する各ユーザ端末3と各ノード2間の距離ベクトルに、このユーザ端末3の帯域を乗算したベクトルの総和の絶対値を評価値として算出する。
【0037】
(第4の実施形態)
第4の実施形態は、各ノード2が自律分散的にコンテンツ4の配置を決定するものである。これにより、コンテンツ配信ネットワーク1は、短時間にコンテンツ4の配置を決定することができる。
この第4の実施形態では、第2の実施形態と同様な距離ベクトルを評価値としてコンテンツ4の配置を決定している。しかし、これに限られず、第1の実施形態の距離や、第3の実施形態の重み付きの距離ベクトルを評価値としてコンテンツ4の配置を決定してもよく、評価値の算出方法は、特に限定されない。
第4の実施形態において、最初にコンテンツ4の配信を要求する各ユーザ端末3が、すべての交叉点のノード2に対してリクエストを送信する。このリクエストに基づき、各交叉点のノード2は、自身のポテンシャルP
iを、以下の式(6)で算出する。
【数6】
【0038】
各ノード2は、このポテンシャルP
iとそのノード識別情報とを周囲の八方のノード2に伝播させる。ノード識別情報とは、各ノード2を一意に識別する固有の値である。各ノード2は、伝播されたポテンシャルP
nが自身のポテンシャルP
iよりも小さい値であった場合は、その値を残し(記憶し)、大きい値の場合は自身の値と自身のノード識別情報で上書きする。ネットワークをN行×N列の格子状とすると、各ノード2がデータを(N−1)回交換すると、全てのノード2においてポテンシャルが最小値となるノード2が決定される。そのポテンシャル最小のノード2には、コンテンツ4が配置される。このコンテンツ4は、各ユーザ端末3に配信される。
【0039】
図6は、第4の実施形態におけるコンテンツ配信ノード2の決定動作を示すシーケンス図である。ここでは単純化のため、ノード2−1〜2−3が一次元に配列している場合を説明する。
シーケンスQ10において、ユーザ端末3−1〜3−4は、すべての交叉点のノード2に対してリクエストを送信する。
【0040】
シーケンスQ11−1〜Q11−3において、ノード2−1〜2−3は、それぞれ評価値算出部22により、自身のポテンシャルP
1〜P
3(評価値)を算出する。ここでは、ポテンシャルP
1〜P
3のうち、ポテンシャルP
1が最も小さく、ポテンシャルP
3が最も大きいものとする。
シーケンスQ12において、ノード2−1は、自身のポテンシャルP
1とノード識別情報N1との組み合わせを、隣接するノード2−2に伝播させる。
シーケンスQ13において、ノード2−2は、受信したポテンシャルP
1が自身のポテンシャルP
2よりも小さいので、このポテンシャルP
1とノード識別情報N1との組み合わせを記憶する(残す)。
【0041】
シーケンスQ14において、ノード2−2は、自身のポテンシャルP
2とノード識別情報N2との組み合わせを、隣接するノード2−3に伝播させる。
シーケンスQ15において、ノード2−3は、このシーケンスQ14で受信したポテンシャルP
2が自身のポテンシャルP
3よりも小さいので、このポテンシャルP
2とノード識別情報N2との組み合わせを記憶する。
シーケンスQ16において、ノード2−3は、自身のポテンシャルP
3とノード識別情報N3との組み合わせを、隣接するノード2−2に伝播させる。
シーケンスQ17において、ノード2−2は、このシーケンスQ16で受信したポテンシャルP
3が記憶しているポテンシャルP
1よりも大きいので、現在記憶しているポテンシャルP
1とノード識別情報N1との組み合わせを保持する。
【0042】
シーケンスQ18において、ノード2−2は、先のシーケンスQ12で受信したポテンシャルP
1とノード識別情報N1との組み合わせを、隣接するノード2−3に伝播させる。
シーケンスQ19において、ノード2−3は、このシーケンスQ18で受信したポテンシャルP
1が記憶しているポテンシャルP
2よりも小さいので、そのポテンシャルP
1とノード識別情報N1との組み合わせを記憶する。
シーケンスQ20において、ノード2−3は、記憶した情報に基づき、ポテンシャルP
iが最小となる配置ノード2がノード識別情報N1に係るノード2−1であると判定し、自身をコンテンツ4の非配置ノード2とする。
シーケンスQ21において、ノード2−2は、自身のポテンシャルP
2と自身のノード識別情報N2との組み合わせを、隣接するノード2−1に伝播させる。
シーケンスQ22において、ノード2−1は、このシーケンスQ21で受信したポテンシャルP
2が自身のポテンシャルP
1よりも大きいので、現在記憶している自身のポテンシャルP
1と自身のノード識別情報N1との組み合わせを保持する。
【0043】
シーケンスQ23において、ノード2−2は、先のシーケンスQ16で受信したポテンシャルP
3とノード識別情報N3との組み合わせを、隣接するノード2−1に伝播させる。
シーケンスQ24において、ノード2−2は、記憶した情報に基づき、ポテンシャルP
iが最小となる配置ノード2がノード識別情報N1に係るノード2−1であると判定し、自身をコンテンツ4の非配置ノード2とする。
シーケンスQ25において、ノード2−1は、先のシーケンスQ23で受信したポテンシャルP
3が自身のポテンシャルP
1よりも大きいので、現在記憶している自身のポテンシャルP
1と自身のノード識別情報N1との組み合わせを保持する。
シーケンスQ26において、ノード2−1は、ポテンシャルP
iが最小となる配置ノード2がノード識別情報N1に係るノード2−1であると判定し、自身をコンテンツ4の配置ノード2とする。
【0044】
図7は、第4の実施形態におけるコンテンツ配信ノード2の決定処理を示すフローチャートである。
すべてのユーザ端末3からのリクエストを受信すると、各ノード2は、自律分散的にコンテンツ配信ノード2の決定処理を実行する。
ステップS10において、各ノード2の評価値算出部22は、自身のポテンシャルP
iを算出して記憶する。
ステップS11において、各ノード2の配置決定部23は、自身のポテンシャルP
iとノード識別情報とを周囲の他ノード2に伝播させる。
【0045】
ステップS12において、各ノード2の配置決定部23は、他ノード2のポテンシャルP
nとノード識別情報とを受信する。
ステップS13において、各ノード2の配置決定部23は、ノード識別情報に基づき、既に受信した情報であるか否かを判断する。各ノード2は、既に受信した情報ではなかったならば(No)、ステップS14の処理を行い、既に受信した情報ならば、ステップS18の処理を行う。これにより、ポテンシャルの伝播のループを抑止可能である。
ステップS14において、各ノード2の配置決定部23は、は、受信した他ノード2のポテンシャルP
nとノード識別情報とを更に伝播する。
【0046】
ステップS15において、各ノード2の配置決定部23は、記憶している最小ポテンシャルよりもポテンシャルP
nが大きいならば(Yes)、ステップS16の処理を行い、記憶している最小ポテンシャルよりもポテンシャルP
nが大きくないならば(No)、ステップS17の処理を行う。
ステップS16において、各ノード2の配置決定部23は、記憶している最小ポテンシャルをそのまま保持し、ステップS18の処理を行う。
ステップS17において、各ノード2の配置決定部23は、他ノード2のポテンシャルP
nと他ノード2のノード識別情報とを、最小ポテンシャルとそのノード識別情報の組み合わせとして記憶する(残す)。
【0047】
ステップS18において、各ノード2の配置決定部23は、すべてのデータ交換が完了したか否かを判断する。各ノード2は、すべてのデータ交換が完了したならば(Yes)、ステップS19の処理を行い、すべてのデータ交換が完了していなかったならば(No)、ステップS12の処理に戻る。
ステップS19において、各ノード2の配置決定部23は、記憶した最小のポテンシャルに係るノード識別情報が自身のノード識別情報と一致するか否かを判断する。各ノード2は、自身のノード識別情報と一致するならば(Yes)、ステップS20の処理を行い、自身のノード識別情報と一致しないならば(No)、ステップS21の処理を行う。
ステップS20において、ノード2の配置決定部23は、自身をコンテンツ4の配置ノード2に決定し、
図7の処理を終了する。
ステップS21において、ノード2の配置決定部23は、自身をコンテンツ4の非配置ノード2に決定し、
図7の処理を終了する。
【0048】
配置決定部23は、評価値算出部22が算出した自身の評価値を記憶すると共に隣接するノード2に伝播させ、伝播された他ノード2の評価値を更に伝播すると共に、この他ノード2の評価値が記憶した評価値よりも小さいならば、この他ノード2の評価値を記憶する。これにより、評価値が最小となるノード2を、このコンテンツ4の配置として動的かつ自律分散的に計算するので、高効率に短時間で決定することができる。
【0049】
(第5の実施形態)
第5の実施形態は、コンテンツ4を配置するノード2を分裂させる実施形態である。これにより、広域に分布する多くのユーザ端末3がコンテンツ4を要求したときに、これらユーザ端末3に対して適切な品質で、このコンテンツ4を配信するように、多くのノード2にコンテンツ4のレプリカを分散配置することができる。
第5の実施形態では、第2の実施形態の式(2)と同様な距離ベクトルで、コンテンツ4の配置を決定している。しかし、これに限られず、第3の実施形態の重み付きの距離ベクトルによって、コンテンツ4の配置を決定してもよく、評価値の算出方法は特に限定されない。
【0050】
図8は、第5の実施形態におけるユーザベクトルのX成分とY成分とを示す図である。
第5の実施形態では、分裂のメカニズムを第2の実施形態の距離ベクトル算出式を用いて説明する。しかし、これに限られず、第3の実施形態のように、帯域で重み付けを行ってもよい。
図8に示すグラフの原点は、コンテンツ配信ノード2である。X
+成分は、当該ノード2を原点として右半分(第1、第4象限)にあるユーザ端末群(第1ユーザ端末群)との距離ベクトルの総和のX軸方向の成分である。X
−成分は、当該ノード2を原点として左半分(第2、第3象限)にあるユーザ端末群(第2ユーザ端末群)との距離ベクトルの総和のX軸方向の成分である。コンテンツ配信ノード2は、ベクトルのX
+成分とX
−成分とはバランスする。つまりX
+成分とX
−成分とは、ほぼ同じ値となる。以下、X
+成分とX
−成分のことを、単にX成分と記載する場合がある。
【0051】
Y
+成分は、当該ノード2を原点として上半分(第1、第2象限)にあるユーザ端末群(第1ユーザ端末群)との距離ベクトルの総和のY軸方向の成分である。Y
−成分は、当該ノード2を原点として下半分(第3、第4象限)にあるユーザ端末群(第2ユーザ端末群)との距離ベクトルの総和のY軸方向の成分である。Y
+成分とY
−成分とは、バランスする。Y
+成分とY
−成分とは、ほぼ同じ値となる。以下、Y
+成分とY
−成分のことを、単にY成分と記載する場合がある。
【0052】
以下の式(7)は、或るノード2に配置したコンテンツ4(レプリカ)が、2以上のノード2に分裂しない条件を示している。ここでVthは、分裂の閾値である。
【数7】
【0053】
以下の式(8)は、或るノード2に配置したコンテンツ4(レプリカ)が、2以上のノード2に分裂する条件を示している。
【数8】
【0054】
コンテンツ4(レプリカ)が、2以上のノード2に分裂する条件のとき、複数のベクトルのX
+成分またはX
−成分の絶対値と、Y
+成分またはY
−成分の絶対値とを比較する。X
+成分の絶対値が大きいならば、当該ノード2を原点として右半分(第1、第4象限)にあるユーザ端末群(第1ユーザ端末群)と左半分(第2、第3象限)にあるユーザ端末群(第2ユーザ端末群)とに分裂させる。Y
+成分の絶対値が大きいならば、当該ノード2を原点として上半分(第1、第2象限)にあるユーザ端末群(第1ユーザ端末群)と下半分(第3、第4象限)にあるユーザ端末群(第2ユーザ端末群)とに分裂させる。
コンテンツ配信ネットワーク1は、このコンテンツ4(レプリカ)にかかるユーザ端末群を分裂させたならば、例えば、第4の実施形態のコンテンツ配置処理(
図7参照)に基づき、分裂した各ユーザ端末群について最適なノード2にコンテンツ4(レプリカ)を再配置する。
【0055】
図9は、第5の実施形態におけるコンテンツ配信ノード2の分裂処理を示すフローチャートである。
ステップS30において、ノード2の評価値算出部22は、複数のユーザベクトルのX成分とY成分を算出する。
ステップS31において、ノード2の評価値算出部22は、X成分の絶対値とY成分の絶対値との和を算出する。
ステップS32において、ノード2の配置決定部23は、算出した絶対値の和が閾値Vthよりも大きいか否かを判断する。ノード2は、算出した絶対値の和が閾値Vthよりも大きいならば(Yes)、ステップS33の処理を行い、算出した絶対値の和が閾値Vthよりも大きくないならば(No)、
図9の処理を終了する。
【0056】
ステップS33において、ノード2の配置決定部23は、Y成分の絶対値がX成分の絶対値よりも大きいか否かを判断する。ノード2は、Y成分の絶対値がX成分の絶対値よりも大きいならば(Yes)、ステップS34の処理を行い、Y成分の絶対値がX成分の絶対値よりも大きくないならば(No)、ステップS35の処理を行う。
ステップS34において、ノード2の配置決定部23は、このコンテンツ4に係るユーザ端末群を、コンテンツ配信ノード2を原点とする上半分のユーザ端末群と下半分のユーザ端末群の2つに分裂させ、ステップS36の処理を行う。
ステップS35において、ノード2の配置決定部23は、このコンテンツ4に係るユーザ端末群を、コンテンツ配信ノード2を原点とする右半分のユーザ端末群と左半分のユーザ端末群の2つに分裂させる。
ステップS36において、ノード2の配置決定部23は、2つに分裂させたユーザ端末群で、それぞれ新たなコンテンツ配信ノード2を算出し、
図9の処理を終了する。
【0057】
(第6の実施形態)
第6の実施形態は、2個のコンテンツ配信ノード2に分裂していたコンテンツ4を融合させる実施形態である。これにより、このコンテンツ4を要求するユーザが減少したときに、より少数のノード2にコンテンツ4のレプリカを融合させて、記憶リソースの消費を少なくさせることができる。
【0058】
図10は、第6の実施形態におけるコンテンツ配信ノード2の融合前の状態を示す図である。
グラフのA点のノード2aおよびB点のノード2bには、それぞれ同一内容に係るコンテンツ4(レプリカ)が配置されている。各ノード2a,2bは、第5の実施形態の分裂しない閾値を満たしている。グラフの原点は、グラフのA点とB点の中点であり、ノード2cが配置される。各ノード2a,2bは、各々の近傍のユーザ端末群にコンテンツ4を配信する。
【0059】
X
A+成分は、ノード2aを原点として右半分(第1、第4象限)にあるユーザ端末群との距離ベクトルの総和のX軸方向の成分である。X
A−成分は、ノード2aを原点として左半分(第2、第3象限)にあるユーザ端末群との距離ベクトルの総和のX軸方向の成分である。
Y
A+成分は、ノード2aを原点として上半分(第1、第2象限)にあるユーザ端末群との距離ベクトルの総和のY軸方向の成分である。Y
A−成分は、ノード2aを原点として下半分(第3、第4象限)にあるユーザ端末群との距離ベクトルの総和のY軸方向の成分である。
【0060】
X
B+成分は、ノード2bを原点として右半分(第1、第4象限)にあるユーザ端末群との距離ベクトルの総和のX軸方向の成分である。X
B−成分は、ノード2bを原点として左半分(第2、第3象限)にあるユーザ端末群との距離ベクトルの総和のX軸方向の成分である。
Y
B+成分は、ノード2bを原点として上半分(第1、第2象限)にあるユーザ端末群との距離ベクトルの総和のY軸方向の成分である。Y
B−成分は、ノード2bを原点として下半分(第3、第4象限)にあるユーザ端末群との距離ベクトルの総和のY軸方向の成分である。
同一内容に係るコンテンツ4のレプリカが配置され、かつ相互に隣接しているノード2a,2b間は、お互いに連絡をしあい、中間ノード2cに融合できないか否かを常に評価する。
ここでは、以下の式(9)を評価して、実施形態5と同様に分裂の必要性の有無をチェックする。
【数9】
【0061】
すなわち、上記した式(9)式が成立していれば、コンテンツ4(レプリカ)の配置ノードは融合される。これを分散で行うには、コンテンツ4が配置されたノード2は、常に、同一コンテンツ4が配置された近傍の他のノード2と通信を行い、このコンテンツ4にアクセスするユーザ数が減少した場合、動的にコンテンツ配信ノード2を融合するようにする。
なお、ノード2a,2bは、中間ノード2cに融合できないか否かを常に評価すると共に、自身が分裂できないか否かを常に評価する。上記の式(9)は、自身の分裂に係る式(8)との共通項が多く存在するので、分裂と融合の判断処理を好適に実行可能である。
【0062】
図11は、第6の実施形態におけるコンテンツ配信ノード2の融合後の状態を示す図である。
C点に位置する中間ノード2cには、当該コンテンツ4が配置されている。中間ノード2cには、ノード2aとノード2bに分裂していたコンテンツ4が融合されている。ノード2cは、両ノード2a,2bがコンテンツ4を配信していた両ユーザ端末群にコンテンツ4を配信する。
X
C+成分は、ノード2cを原点として右半分(第1、第4象限)にあるユーザ端末群との距離ベクトルの総和のX軸方向の成分である。X
C−成分は、ノード2cを原点として左半分(第2、第3象限)にあるユーザ端末群との距離ベクトルの総和のX軸方向の成分である。
Y
C+成分は、ノード2cを原点として上半分(第1、第2象限)にあるユーザ端末群との距離ベクトルの総和のY軸方向の成分である。Y
c−成分は、ノード2cを原点として下半分(第3、第4象限)にあるユーザ端末群との距離ベクトルの総和のY軸方向の成分である。
中間ノード2cでマージされると、以下の式(10)を評価して、第5の実施形態と同様に分裂の必要性の有無をチェックする。
【数10】
【0063】
このとき、系を安定させるため、融合の閾値と分裂の閾値で値を変えることが容易に考えられる。
【0064】
図12は、第6の実施形態におけるコンテンツ配信ノード2の融合処理を示すフローチャートである。
ステップS50において、隣接する各ノード2の評価値算出部22は、複数のユーザベクトルのX成分とY成分とを算出する。
ステップS51において、各ノード2の配置決定部23は、相互に通信して、両ノード2のX成分とY成分とを相互に取得する。
【0065】
ステップS52において、各ノード2の配置決定部23は、両ノード2のX成分の和の絶対値を算出する。
ステップS53において、各ノード2の配置決定部23は、両ノード2のY成分の和の絶対値を算出する。
ステップS54において、各ノード2の配置決定部23は、X成分の和の絶対値とY成分の和の絶対値との和を算出する。これは、各ユーザ端末3と中間ノード2間の評価値である。
【0066】
ステップS55において、各ノード2の配置決定部23は、算出値が閾値以下か否かを判断する。各ノード2は、算出値が閾値以下ならば(Yes)、ステップS56の処理を行い、算出値が閾値以下でないならば(No)、
図12の処理を終了する。
ステップS56において、各ノード2の配置決定部23は、両ノード2の中間のノード2にコンテンツ4を融合し、
図12の処理を終了する。
【0067】
第6の実施形態において、評価値算出部22は、自身を原点とする複数のユーザベクトルのX成分とY成分とを算出する。しかし、これに限られず、評価値算出部22は、隣接する他ノード2と自身との中間ノード2cの位置を算出し、この中間ノード2cを原点とする複数のユーザベクトルのX成分とY成分とを算出してもよい。これにより、評価値算出部22は、融合された際の評価値を更に正確に算出可能である。
【0068】
第5、第6の実施形態では、ユーザ端末3とコンテンツ4が配置されたノード2との間の距離を、コンテンツ4に対する仮想的なバネの張力と比例すると考えている。しかし、距離と仮想的なバネの張力との関係を非線形にして、距離が所定値を超えたならば、コンテンツ4に対して仮想的な無限の張力を与えることとすると、集合被覆問題の分散解法が可能となる。
第4〜第6の実施形態に説明したように、コンテンツ4のレプリカの配置を、集中制御を用いることなく、各ノード2が動的かつ自律分散的に計算するので、高効率に短時間で決定することができる。
【0069】
(第7の実施形態)
第7の実施形態は、各コンテンツ4に内容を表現するメタタグを付与し、各コンテンツ4間にメタタグの一致数に応じた仮想的な引力を想定して、各コンテンツ4を配置するものである。これにより、未だアクセスされていない新規コンテンツ4や累積アクセス数の少ないコンテンツ4であっても、これらを適切に配置することができる。
【0070】
図13は、第7の実施形態における各コンテンツ4とユーザ端末3の配置の一例を示す図である。
図13に示すように、コンテンツ配信ネットワーク1は、ユーザ端末3と、ノード2p,2q,2rとを含んで構成される。
コンテンツ4Pは、ノード2pに配置され、更にメタタグ41が付与されている。ここでメタタグ41は、このコンテンツ4Pの属性などを示す付加的な情報であり、メタデータと呼ばれることもある。
図13には、このメタタグ41を代表して(スポーツ、サッカー、グランド)を図示している。
【0071】
コンテンツ4Qは、ノード2qに配置され、更にメタタグ41が付与されている。
図13には、このメタタグ41を代表して(スポーツ)を図示している。
コンテンツ4Rは、ノード2rに配置され、更にメタタグ41が付与されている。
図13には、このメタタグ41を代表して(スポーツ、サッカー、グランド)を図示している。この場合、コンテンツ4P,4Rとはメタタグ41が3つ一致しており、関連性がある。この関連性の評価値を、引力に擬えて考える。
コンテンツ4P,4Qは、メタタグ41が1つのみ一致している。よって、コンテンツ4P,4Qの関連性評価値としての引力f
PQ=1である。
コンテンツ4P,4Rは、メタタグ41が3つ一致している。よって、コンテンツ4P,4Rの関連性評価値としての引力f
PR=3である。
コンテンツ4Q,4Rは、メタタグ41が1つのみ一致している。よって、コンテンツ4P,4Qの関連性評価値としての引力f
QR=1である。
【0072】
コンテンツ4Pは、ユーザ端末3から張力F
Uで引かれる。このときコンテンツ4Qは、ユーザ端末3から張力F
UQで引かれる。この張力F
UQは、コンテンツ4Pの張力F
Uにコンテンツ4間の引力を正規化したスカラー量を乗算して算出される。すなわち張力F
UQは、張力F
Uにメタタグ41の一致数を乗算し、更にnで除算して算出される。ここでnは正規化するための定数である。
これにより、ユーザ端末3が或るコンテンツ4にアクセスすると、そのコンテンツ4に関係する他のコンテンツ4は、自然と当該ユーザ端末3の近傍に移動する。このことにより、ユーザ端末3がアクセスする可能性が高いコンテンツ4を、その周辺に配置することができる。
【0073】
図14は、第7の実施形態におけるコンテンツ4の移動処理を示すフローチャートである。このコンテンツ4の移動処理は、ユーザ端末3が、コンテンツ4を要求してアクセスしたときに開始する。
ステップS70において、各ノード2の評価値算出部22は、このコンテンツ4と他のコンテンツ4との間の各引力を算出する。
ステップS71において、各ノード2の評価値算出部22は、他のコンテンツ4とユーザ端末3との間の仮想的なバネの張力をそれぞれ算出する。
ステップS72において、各ノード2の評価値算出部22は、コンテンツ4間の引力を正規化したスカラー量を、ユーザ端末3と他コンテンツ4との間の各張力に乗算する。
ステップS73において、各ノード2の配置決定部23は、算出した張力に応じて、他のコンテンツ4の配置を移動させて、
図14の処理を終了する。
【0074】
(第8の実施形態)
第8の実施形態は、第7の実施形態に加えて更に、各メタタグ41にウェイトを付与するものである。これにより、コンテンツ4に付与されたメタタグ41の重要度に応じて、このコンテンツ4を好適に配置することができる。
図15は、第8の実施形態におけるコンテンツ4の引力のウェイトの一例を示す図である。
各コンテンツ4P〜4Rには、それぞれメタタグ41が付与されている。メタタグ41の各要素には、ウェイト42が付与されている。ウェイト42は、正規化した重み付けの係数である。
ノード2の評価値算出部22は、コンテンツ4間のメタタグ41の一致を検出し、その一致したメタタグ41に付与されたウェイト42の総和を算出することによって、コンテンツ4間の引力を算出する。
コンテンツ4P,4Qは、メタタグ41のうち「スポーツ」のみが一致している。しかし、コンテンツ4Pの「スポーツ」のウェイト42の値が「30」であり、コンテンツ4Qの「スポーツ」のウェイト42の値が「50」であるため、ウェイト42の総和の引力f
PQ=80である。
コンテンツ4P,4Rは、メタタグ41のうち「スポーツ」、「サッカー」、「グランド」の3つが一致している。しかし、一致している各メタタグ41のウェイト42の総和の引力f
PR=75である。
コンテンツ4Q,4Rは、メタタグ41のうち「スポーツ」の1つだけが一致している。このとき、一致しているメタタグ41のウェイト42の総和の引力f
QR=60である。
第8の実施形態は、各コンテンツ4にウェイト42が付与されたメタタグ41間の相関をとることを特徴とし、第7の実施形態と同様にコンテンツ4の配置の引力となる。これにより、メタタグ41の重要度に応じて好適に各コンテンツ4を配置することができる。
【0075】
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)〜(e)のようなものがある。
(a) 第1〜第8の実施形態は、正方格子状のネットワークを用いているが、任意のトポロジのネットワークでも同様のことを行うことができる。
(b) 第1〜第8の実施形態は、映像(動画)コンテンツの配信に限定されず、静止画や音楽やテキストなど、任意の形式のコンテンツ4の配信に適用してもよい。
(c) 第5、第6の実施形態では、コンテンツ配信ノード2を原点として、上下または左右の2つにユーザ端末群を分裂させている。しかし、これに限られず、コンテンツ配信ノード2を原点として、ユーザ端末群を斜め方向に分裂させてもよく、限定されない。
(d) 評価値算出部22または/および配置決定部23は、自律分散的な処理に限定されず、これらの処理に特化した専用装置(専用ノード)を設けてもよい。
(e) 評価値の算出方法は、第1〜第3の実施形態の各式に限定されない。たとえば、ユーザ端末とコンテンツ配信ノードとの距離に、使用可能なネットワーク帯域を乗算したものを評価値としてもよい。ユーザ端末とコンテンツ配信ノードとの距離に、ホップ数を加味したものを評価値としてもよい。