【文献】
中島 拓真,外3名,“色タグ情報に基づく分散協調キャッシュおよびチャンク分割キャッシュ制御のプロトタイプの実装”,信学技報,一般社団法人 電子情報通信学会,2017年11月12日,第117巻, No. 314,p. 9-14
【文献】
三須 剛史,外3名,“CCNにおけるストリーミング再生を考慮したキャッシング方式”,信学技報,一般社団法人電子情報通信学会,2016年 2月25日,第115巻, No.484,p. 71-76
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0019】
以下、図面を参照して本発明を実施するための形態について説明する。
【0020】
<システム構成>
図1は、実施形態に係るネットワークシステムの構成の一例を示す図である。
図1のネットワークシステム1は、ネットワーク2と、ネットワーク2を形成するノード3(3a〜3e)と、ネットワーク2に接続される端末4(4a〜4d)と、ネットワーク2に接続される配信サーバ5とを含む。ネットワーク2は、ISP(Internet Service Provider)によって管理される自律システム(AS:Autonomous System)等の通信回線網である。ノード3、端末4及び配信サーバ5は、コンピュータであり、通信可能に接続された他のコンピュータとの間で電子ファイルを送受信することができるものとする。また、配信サーバ5は、ストリーミングによっていわゆるライブ配信を行うサーバである。配信サーバ5は、配信ユーザの端末4(例えば4d)から継続的に送信される動画又は音声等のコンテンツデータ6を要求元の端末4(例えば4a)へストリーミング配信する。なお、配信サーバ5は、配信ユーザの端末から受信したコンテンツデータを所定の形式でエンコードし、要求元の端末4へストリーミング配信するようにしてもよい。
【0021】
図1において大きな吹出し内に示すように、配信サーバ5には、配信ユーザの端末から
受信したコンテンツデータ6が格納されている。そして、配信サーバ5は、端末4からの要求に応じて、ネットワーク2を介してコンテンツデータ6を端末4へ例えばストリーミング方式で送信する。また、コンテンツデータ6は、時間的な区間又はデータサイズに基づいて分割された複数の部分的なファイル(「チャンク」とも呼ぶ)61〜63に分割されている。ライブ配信されるコンテンツデータは、チャンク単位で順次配信される。なお、チャンク61、62、63の順に、配信日時からの経過時間が大きい(すなわち古い)ものとする。
【0022】
また、ライブ配信されるコンテンツデータ6について、ユーザの端末4は、ライブ配信中のコンテンツ又はライブ配信終了後のコンテンツについて、タイムシフト又はオンデマンドで配信を受けることができるものとする。ここで、本実施形態では、
図1において小さな吹出し内に示すように、チャンク単位でコンテンツデータ6がノード3にキャッシュされる。そして、端末4からの要求を配信サーバ5へ中継する過程において、要求を受信したノード3は、要求されたチャンクを自身がキャッシュしている場合は、キャッシュしているチャンクを要求元に送信する。なお、要求を受信したノード3は、要求されたチャンクを自身がキャッシュしていない場合は、配信サーバ5又は他のノード3に当該チャンクの要求を転送する。
【0023】
また、各ノード3には、当該ノード3にキャッシュすべきチャンクを特定するためのグループが予め割り当てられているものとする。換言すれば、各ノード3は、予め定められた複数のグループのいずれかに属する。
図1の例では、各ノード3の近傍に表示された円内に施されたハッチングが、各ノード3が属するグループを表している。ノード3aは、横縞のグループ(「グループA」と呼ぶ)に属する。ノード3bは、縦縞のグループ(「グループB」と呼ぶ)に属する。ノード3c及び3eは、右上から左下にかけた斜線のグループ(「グループC」と呼ぶ)に属する。ノード3dは、左上から右下にかけた斜線のグループ(「グループD」と呼ぶ)に属する。本実施形態では4種類のグループを、ノード3及びチャンクに割り当てるものとして説明するが、グループの数は4には限定されない。
【0024】
また、あるノード3には、ネットワーク2内においてネットワークトポロジ上隣接する他のノード3とは異なるグループが優先して割り当てられるようにしてもよい。すなわち、複数のノード3には、グループが、ネットワークトポロジ上偏らないように割り当てられる。例えば、新たなノード3をネットワーク2に接続する場合は、例えば複数のグループについて、すでにネットワーク2上に存在する他のノード3のうち、ホップ数が小さいノード3又は回線の経路長が短いノード3に付されたグループから順に除外し、残ったグループを新たなノードに割り当てるようにしてもよい。また、平面グラフで表されるメッシュ型のネットワークや、リング型のネットワークにおいては、いわゆる四色定理を応用し、隣接するノードが同じグループに属さないように、グループを割り当てるようにしてもよい。このようにすれば、あるノード3から他のグループが割り当てられたノード3までは、いずれのグループの場合も同程度のホップ数又は経路長で到達するようになる。
【0025】
また、各チャンクは、当該チャンクをキャッシュすべきゼロ以上のグループと関連付けられている。
図1の例では、チャンク61〜63の各々の下に表示された矩形内に施されたハッチングが各チャンクを保持すべきグループを表している。チャンク61には、グループA〜Dの4つが割り当てられている。チャンク62には、グループA、B及びDの3つが割り当てられている。チャンク63には、グループA及びCの2つが割り当てられている。なお、グループが1つも割り当てられていないチャンクがあってもよい。このようなネットワークシステム1によれば、チャンクに割り当てるグループの数によって、当該チャンクがネットワーク2においてキャッシュされる量を調整することができる。例えば、ライブ配信からの経過時間が小さいチャンク又は要求頻度の大きいチャンクに対し、よ
り多くのグループを割り当てるようにすれば、要求元のノード3に近い場所にチャンクがキャッシュされている確率を高めることができる。
【0026】
このようなシステム1において、ノード3は、自身に割り当てられたグループと関連付けられたチャンクを受信した場合は、当該チャンクをキャッシュする。また、要求元のノード3が送信を要求するチャンクに対応するキャッシュを保持している場合は、当該キャッシュを要求元のノード3に対して送信する。一方、要求元のノード装置が要求するチャンクに対応するキャッシュを保持していない場合は、他のノード3に当該チャンクの要求を中継する。
【0027】
図2は、チャンクに付される、グループを示す情報を説明するための図である。コンテンツデータ6には、例えばチャンクごとに、ゼロ以上の上述したグループの組合せを示す情報が関連付けられる。
図2には、ハッチングのパターンで表した4種類のグループの組合せのバリエーションが示されている。すなわちグループの組合せの各々は、グループを0〜4個有する。また、グループの組合せは、
図2の右辺に示すように、例えばグループの数だけ桁数を有するビット列によって形成されるタグによって表すことができる。そして、チャンクに対するグループの関連付けは、各ノード3において、チャンクの識別情報に関連付けてタグを保持することにより記憶させることができる。
【0028】
高解像度の動画コンテンツや、全方向の情報を含むVR(Virtual Reality)コンテン
ツ、音楽コンテンツ等は、1ファイル当たりの容量が大きく内容が更新されることが少ない。したがって、CDN(Contents Delivery Network)において、配信が開始されてか
らの経過時間が小さいコンテンツ又はアクセス頻度の高いコンテンツをキャッシュ対象とすれば、キャッシュによるトラフィックの削減が期待できる。
【0029】
図3は、チャンクに対応付けてタグを記憶するテーブルの一例を示す図である。
図3のテーブルは、「チャンクID」及び「タグ」の属性を有する。「チャンクID」のフィールドには、チャンクの識別情報が登録される。識別情報としては、チャンクを一意に特定するための名称を用いるようにしてもよいし、ファイルの名称及び当該ファイル中のチャンクの範囲を示す情報を用いるようにしてもよい。チャンクの範囲は、例えばファイルの先頭からのオフセットで表すことができる。「タグ」のフィールドには、対応付けられたファイルをキャッシュするゼロ以上のグループが登録される。
図3に示すようなチャンクとグループとの対応付けを表す情報(換言すれば、キャッシュすべきチャンクのリスト)は、データベースやフラットファイル、その他の様々な形式のファイルとして各ノード3に記憶させることができる。また、
図3に示すような情報は、例えばネットワーク2に接続された配信サーバ5等の管理装置が一元的に管理し、例えばキャッシュすべきチャンクのリストをネットワーク2上のノード3にブロードキャストしてノード3の各々に保持させるようにしてもよいし、ノード3の各々がネットワーク2上の管理装置から任意のタイミングで読み出すようにしてもよい。
【0030】
<装置の構成>
図4は、端末4、ノード3及び配信サーバ5の構成の一例を示すブロック図である。端末4、ノード3及び配信サーバ5は、一般的なコンピュータである。
【0031】
<端末>
端末4は、PC(Personal Computer)、スマートフォン、タブレット等のコンピュー
タであり、通信I/F41と、記憶装置42と、入出力装置43と、プロセッサ44と、バス45とを備えている。
【0032】
通信I/F41は、例えば有線のネットワークカード又は無線の通信モジュールであり
、所定のプロトコルに基づき、他のコンピュータと通信を行う。例えば、ネットワーク2を介してコンテンツデータ6を受信する。
【0033】
記憶装置42は、RAM(Random Access Memory)やROM(Read Only Memory)等の主記憶装置(一次記憶装置)及びHDD(Hard-disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等の補助記憶装置(二次記憶装置)である。主記憶装置は、プロセッサが読み出したプログラムやコンテンツデータ6を一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラム等を記憶する。
【0034】
入出力装置43は、例えばキーボード、マウス、カメラ(ウェブカメラ)等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。例えば、ユーザは、入出力装置43を介して配信サーバ5に対しコンテンツデータ6の送信を要求したり、受信したコンテンツデータ6を読み出して表示させたりする。
【0035】
プロセッサ44は、CPU(Central Processing Unit)等の演算処理装置であり、プ
ログラムを実行することにより本実施の形態に係る各処理を行う。
図4の例では、プロセッサ44内に機能ブロックを示している。プロセッサ44は、例えば、再生処理部441及び配信処理部442として機能する。再生処理部441は、例えばユーザの操作に基づいて、ネットワーク2を介してコンテンツデータ6の送信を要求したり、受信したチャンクを再生したりする。配信処理部442は、例えばカメラ等の入力装置を介して動画を構成するデータを生成し、通信I/F41を介して配信サーバ5へ送信する。
【0036】
以上のような構成要素が、バス45を介して接続されている。
【0037】
<ノード>
ノード3も、通信I/F31と、記憶装置32と、入出力装置33と、プロセッサ34と、バス35とを備えている。
【0038】
通信I/F31は、例えばネットワークカードや通信モジュールであり、所定のプロトコルに基づき、他のコンピュータと通信を行う。例えば、ノード3、端末4及び配信サーバ5との間においてコンテンツデータ6を送受信する。
【0039】
記憶装置32は、RAMやROM等の主記憶装置及びHDDやSSD、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、送受信されるファイルのチャンク単位でのキャッシュ、当該ノード3に割り当てられたグループを示す情報等を記憶する。
【0040】
入出力装置33は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。
【0041】
プロセッサ34は、CPU等の演算処理装置であり、アプリケーションを実行することにより本実施の形態に係る各処理を行う。ノード3においても、プロセッサ34内に機能ブロックを示している。プロセッサ34は、例えば、キャッシュ保持部341、キャッシュ送信部342及び中継部343の各処理部として機能する。キャッシュ保持部341は、チャンクに関連付けられたグループを示す情報に基づいて、受信したチャンクを保持するか否か判断し、記憶装置42に一時的に保持させる。キャッシュ送信部342は、他のノードから配信サーバ5へのファイルのチャンク単位での要求に対し、当該ノード3の記憶装置42にキャッシュされている場合、キャッシュされているチャンクを他のノード3
又は端末4に送信する。中継部343は、端末4から配信サーバ5への経路上に当該ノード3が位置する場合において、他のノード3又は端末4から配信サーバ5へのチャンク送信要求や、他のノードへ送信するチャンクを中継する。
【0042】
以上のような構成要素が、バス35を介して接続されている。
【0043】
<配信サーバ>
配信サーバ5も、通信I/F51と、記憶装置52と、入出力装置53と、プロセッサ54と、バス55とを備えている。
【0044】
通信I/F51は、例えばネットワークカードであり、所定のプロトコルに基づき、ノード3やネットワーク2を介して接続された配信ユーザの端末4等のコンピュータと通信を行う。例えば、配信ユーザの端末4からコンテンツデータ6を受信するとともに、ノード3からの要求に応じてコンテンツデータ6を送信する。
【0045】
記憶装置52は、RAMやROM等の主記憶装置及びHDDやSSD、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、配信するオリジナルのコンテンツデータ6等を記憶しているものとする。
【0046】
入出力装置53は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。
【0047】
プロセッサ54は、CPU等の演算処理装置であり、アプリケーションを実行することにより本実施の形態に係る各処理を行う。配信サーバ5についても、プロセッサ54内に機能ブロックを示している。プロセッサ54は、コンテンツ管理部541、キャッシュ管理部542の各機能部として機能する。コンテンツ管理部541は、配信者の端末4からコンテンツデータ6を受信して記憶装置52へ格納したり、送信を要求されたコンテンツデータ6を記憶装置52から読み出し、要求元のノードに対して送信する。キャッシュ管理部542は、ネットワーク2上のノード3にキャッシュさせる対象のチャンクを決定したり、チャンクをキャッシュするグループを割り当てたりする。キャッシュ管理部542は、例えばチャンクごとにアクセス数を計数し、所定期間内のアクセス頻度を算出し、アクセス頻度に応じて、各ファイルをキャッシュするグループを決定するようにしてもよい。
【0048】
以上のような構成要素が、バス55を介して接続されている。
【0049】
<ライブ配信処理>
図5は、ライブ配信処理における配信者の端末と配信サーバとの間の処理の一例を示す処理フロー図である。ライブ配信者の端末4の配信処理部442は、例えば端末4が備えるカメラを利用して動画等のコンテンツデータ6を出力する(
図5:S1)。また、配信処理部442は、出力したコンテンツデータ6を、通信I/F41及びネットワーク2を介して配信サーバ5へ順次送信する(S2)。
【0050】
一方、配信サーバ5のコンテンツ管理部541は、通信I/F51を介して端末4からコンテンツデータ6を受信し、記憶装置52に格納する(S3)。また、コンテンツ管理部541は、受信したコンテンツデータ6を所定の形式にエンコードするようにしてもよい(S4)。本ステップでは、例えばH.264のようなファイルフォーマットに変換し、記憶装置52に格納する。また、コンテンツ管理部541は、変換後のコンテンツデー
タ6を配信する(S5)。本ステップでは、リアルタイムで視聴するユーザの端末4からの配信要求を受けてコンテンツデータ6を配信するほか、オンデマンド(タイムシフト)で視聴するユーザの端末4からの配信要求に対してもコンテンツデータ6を配信するものとする。
【0051】
図6は、ライブ配信処理における配信サーバとノードと視聴者の端末との間の処理の一例を示す処理フロー図である。
図6の「ノード」は、
図1、
図4における要求元の端末4から配信サーバ5までの経路上に存在するノード3に相当する。すなわち、複数のノード3を経由する場合もあるが、
図6においては、便宜上、1つのノードを示す。
【0052】
視聴者の端末4の再生処理部441は、配信者の端末4の配信処理部442が配信サーバ5へ送信し、配信サーバ5が保持するコンテンツの送信を要求する(
図6:S11)。本実施形態では、MPEG−DASH規格のMPD(Media Presentation Description)ファイルによって、複数のチャンクに分割されたコンテンツファイルを記述する例を説明する。
【0053】
図7に、MPDファイルの内容の一例を示す。MPDファイルはXML(Extensible Markup Language)で記述され、ファイルの所在を示す位置情報(URL:Uniform Resource Locator)611、621、631、・・・と、ファイルにおける各チャンクの範囲を示す範囲情報612、622、632、・・・とを含む。すなわち、MPDファイル(コンテンツファイル)6は、位置情報611及び範囲情報612を含む第1のチャンク61に関する情報と、位置情報621及び範囲情報622を含む第2のチャンク62に関する情報と、位置情報631及び範囲情報632を含む第3のチャンク63に関する情報とを含んでいる。端末4の再生処理部441は、このようなコンテンツデータ6に基づいて、基本的には前方の範囲を構成するチャンクから順に、配信サーバ5に対しチャンクの送信を要求する。なお、1つのコンテンツデータ6には、コンテンツの画質や音質等が異なる複数のファイルについてそれぞれ上述のチャンクが記述されていてもよい。この場合は、端末4の性能や通信経路の状態等に応じて複数のファイルのいずれかが送受信される。また、MPDファイルに限らず、M3UやHLS(HTTP Live Streaming)のようなフォー
マットに適用することもできる。
【0054】
一方、ノード3の中継部343は、要求を受信し(S12)、要求されたチャンクに対応するキャッシュファイルが自ノードの記憶装置32に保持されているか判断する(S13)。キャッシュを保持している場合(S13:YES)、ノード3のキャッシュ送信部342は、キャッシュファイルを要求元に送信する(S14)。一方、要求元の端末4の再生処理部441は、キャッシュファイルを受信し、コンテンツの内容をモニタ等の入出力装置43上に表示させる(S15)。
【0055】
また、ノード3がキャッシュを保持していない場合(S13:NO)、中継ノードの中継部343は、隣接するノード3又は配信サーバ5に要求を中継する(S16)。なお、複数のノード3を介して要求が転送される場合は、同様の処理が繰り返される。また、本実施形態においては、ノード3は、グループを示すタグのビット位置からいずれのグループに属するノード3において各チャンクがキャッシュされているかわかる。よって、ノード3は、近傍に接続された他のノード3が属するグループを予め記憶しておくことにより、要求されたチャンクのタグのビット位置に基づいて当該チャンクをキャッシュするグループに属するノード3を、要求の転送先に決定するようにしてもよい。
【0056】
一方、配信サーバ5のコンテンツ管理部541は、チャンクに対する送信の要求を受信し(S17)、該当するチャンクを記憶装置52から読み出して送信する(S18)。一方、ノード3の中継部343は、受信したチャンクを要求元に対して中継する(S19)
。そして、要求元の端末4の再生処理部441は、チャンクを受信し、コンテンツの内容をモニタ等の入出力装置43上に表示させる(S20)。
【0057】
また、S19においてチャンクを要求元へ中継する場合、ノード3のキャッシュ保持部341は、当該チャンクは自ノードが属するグループにおいてキャッシュすべき対象であるか判断する(S21)。本ステップでは、チャンクに対し、自ノードが属するグループを示す情報が関連付けられているか判断する。例えば、
図3に示したような情報をノード3の記憶装置32が保持する。
【0058】
そして、中継したチャンクがキャッシュ対象であると判断された場合(S21:YES)、ノード3のキャッシュ保持部341は、当該チャンクを記憶装置32に一時的に保持させる。一方、中継したチャンクがキャッシュすべき対象でないと判断された場合は、ノード3はチャンクを保持しない。ネットワークシステム1は、要求元ノードからのファイルの送信要求に対して、
図5に示したようなファイル配信処理を繰り返す。
【0059】
<効果>
本実施形態では、ネットワーク2において同一のグループが偏らないようにノードをグループ分けする。すなわち、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先して割り当てられるという簡便な方法により、同一のチャンクをキャッシュするノードをネットワーク上に分散させ、いずれのノードからもある程度近接した位置に各グループに属するキャッシュサーバが存在するようなキャッシュ配置を実現することができる。また、
図1に示したように、1つのチャンクには複数のグループを示す情報を関連付けておくようにしてもよい。そして、リアルタイム又はオンデマンドの配信要求の多いチャンクほど多くのグループを割り当てておけば、より多くのノードでキャッシュすすることができ、ネットワーク上におけるキャッシュのヒット率を向上させることができる。また、チャンク単位でキャッシュすることにより、チャンク単位で要求される頻度が異なるような場合であっても、要求の頻度が高いチャンクをキャッシュさせれば、キャッシュ領域を効率的に活用することができる。
【0060】
<キャッシュ対象決定処理>
また、上述したネットワークシステムにおいて、チャンクに対するキャッシュの優先度を決定し、チャンクに関連付けられるグループを示す情報(換言すればキャッシュすべきチャンクのリスト)を動的に変更するようにしてもよい。キャッシュの優先度は、例えば、コンテンツデータ6の配信からの経過時間に基づいて決定することができる。すなわち、ライブ配信が行われる場合、リアルタイムで視聴するユーザのほか、少し遅れて視聴を開始したり、一部分を聞き直すこと等によりリアルタイムよりも遅れて視聴するユーザも存在する。一般的なコンテンツデータについては、配信の開始から時間が経過するほど配信の要求が少なくなる傾向があるところ、コンテンツデータ6の配信からの経過時間が短いほどネットワーク上に多くキャッシュすることを1つの条件としてキャッシュ対象を決定すれば、ネットワーク上におけるキャッシュのヒット率を向上させることができるといえる。また、配信サーバ5のキャッシュ管理部542が算出する各チャンクへの配信要求の頻度(アクセス頻度)をもう1つの条件としてキャッシュ対象を決定するようにしてもよい。コンテンツデータ6によって、配信要求の多寡が異なるところ、アクセス頻度に基づいてキャッシュ対象を決定することによってもネットワーク上におけるキャッシュのヒット率を向上させることができる。また、2つの条件を組み合わせてキャッシュ対象を決定する場合は、各条件の重みを適宜決定し、配信から経過した時間が短く且つアクセス頻度の大きいチャンクほど、多くのグループを割り当てるものとする。なお、配信サーバ5は、チャンクに対するアクセスの頻度を算出し、キャッシュ対象のチャンクを決定する、本発明に係る「アクセス管理装置」の一例である。また、配信サーバ5とは別に、いずれかのネットワーク2にアクセス管理装置を設けてもよい。
【0061】
図8は、キャッシュ対象のチャンクを変更するキャッシュ対象更新処理の一例を示す処理フロー図である。例えば、ネットワークシステムは、
図8に示すような処理を行うようにしてもよい。
図8においては、
図6に対応する処理には同一の符号を付し、説明を省略する。
【0062】
また、例えば配信サーバ5は、
図6のS18に代えて、チャンクを送信すると共に、さらに当該チャンクへの配信要求のログを記憶装置32に書き出す(
図8:S31)。配信要求は、リアルタイムでの視聴における配信要求と、オンデマンドでの視聴における配信要求とを合算する。また、配信サーバ5のキャッシュ管理部542は、所定のタイミングで直近の所定期間におけるチャンクごとの要求頻度(アクセス頻度とも呼ぶ)を集計する。
【0063】
また、ノード3は、配信の要求に応じてキャッシュを送信した回数をチャンクごとに計数しておき、計数した回数を所定のタイミングで配信サーバ5へ送信する(S32)。一方、配信サーバ5は、ノード3からキャッシュの送信回数を受信し、チャンクごとのアクセス数を算出する(S33)。すなわち、配信サーバ5から配信されていないがノード3のキャッシュを送信することによって視聴者の端末4に配信を行ったチャンクについて、要求数を集計できる。
【0064】
また、配信サーバ5のキャッシュ管理部542は、キャッシュ対象のチャンクを決定する(S34)。例えば、所定のタイミングで、配信からの経過時間が相対的に短く且つ要求頻度が相対的に高いチャンクほどキャッシュの優先度が高いものとしてより多くのグループにキャッシュさせる。すなわち、より多くのグループにキャッシュさせるために、チャンクに対しより多くのグループを割り当てる。また、例えば、予め定められた動作時刻が到来した場合や、前回の処理から所定期間が経過した場合等の条件を満たした場合に、キャッシュ対象及びこれに割り当てるグループの数を更新するものとする。
【0065】
図9は、キャッシュの対象を決める際の優先順位を説明するための図である。
図9は、縦軸がチャンクへの要求頻度を表し、横軸が配信からの経過時間を表しており、これらの大きさの組み合わせに対してチャンクに割り当てるグループ数を模式的に示している。すなわち、割り当てられるグループ数が大きいほど、多くのノード3においてキャッシュされるといえる。
図9に示すように、配信からの経過時間が同一のチャンクであれば、要求頻度が高いチャンクほど、ネットワーク上に多くキャッシュされるようになっている。また、要求頻度が同一のチャンクであれば、配信からの経過時間が短いほど、ネットワーク上に多くキャッシュされるようになっている。すなわち、配信が開始された日時からの経過時間が短いチャンクを優先するという条件と、配信要求が多いチャンクを優先するという条件とのバランスによって、キャッシュする優先度を決定する。なお、
図9のグラフは一例であり、割り当てるグループ数の境界を示す直線の傾きは適宜決定することができ、また、境界を直線で定義しなくてもよい。また、要求頻度に代えて、又は要求頻度に加えて、例えばチャンクの重要度を示す他の基準を用いて割り当てるグループ数を決定するようにしてもよいし、配信からの経過時間のみによって割り当てるグループ数を決定するようにしてもよい。
【0066】
図10は、キャッシュを行う優先順位と、当該チャンクに関連付けて割り当てられるグループを示すタグの一例を示す図である。なお、
図9に示したような配信からの経過時間と要求頻度とに基づいて、チャンクごとにキャッシュを行う優先順位を決定するものとする。
図10に示す表は、「順位」、「グループ数」、及び「タグ」の項目を有する。「順位」のフィールドには、配信からの経過時間及び所定期間における要求頻度に基づいて定まる順位の範囲が記録されている。
図8のS34においては、所定期間における順位が決
定される。「グループ数」のフィールドには、各順位のチャンクをキャッシュするグループの数が示されている。「タグ」のフィールドには、各順位のチャンクをキャッシュするグループを示す情報が上述したタグの形式で記録されている。
【0067】
また、キャッシュ管理部542は、配信からの経過時間及び要求頻度に応じて、各チャンクをキャッシュするグループを決定する(
図8:S35)。本ステップでは、各チャンクに対しキャッシュするグループを割り当てる。まず、所定期間のアクセス数に基づいて、
図9に示す優先の程度を決定する。例えばノード3を4つのグループに分ける場合、優先の程度を5段階に分類する。また、最も優先すべき程度に属するチャンクを4つのグループすべてにおいてキャッシュさせ、2番目に優先すべき程度に属するチャンクを3つのグループにおいてキャッシュさせ、3番目に優先すべき程度に属するチャンクを2つのグループにおいてキャッシュさせ、4番目に優先すべき程度に属するチャンクを1つのグループにおいてキャッシュさせる。なお、優先度の低いチャンクはいずれのグループにおいてもキャッシュさせないものとする。
【0068】
このように、優先の程度に応じて当該チャンクをキャッシュするノードのグループ数が決定され、その後、同数のグループが割り当てられたチャンクに対し循環的にグループの組合せを割り当てる。例えば、
図10の順位が21〜100のレコードの「タグ」のフィールドには、3つのグループの組み合わせを循環的に割り当てることにより決定されたタグが記録されている。S25においては、直近の所定期間における各チャンクへのアクセス頻度に基づいて、チャンクに関連付けられるタグが更新される。
【0069】
そして、キャッシュ管理部542は、各チャンクをキャッシュの対象とするグループを示すリストを、各ノードへ配信する(
図8:S36)。本ステップでは、例えば
図10の「チャンク名」及び「タグ」の列に示す情報が、各ノード3へブロードキャストされる。ノード3は、リストを受信すると、当該リストを記憶装置32に保持させると共に以降は当該リストに基づいて自ノードがキャッシュする対象のチャンクを決定する(S37)。このようなリストのグループを示す情報に基づいて、各ノードは、チャンクを要求する先を判断することができる。また、リストが更新された場合、ノード3において保持する対象でなくなったキャッシュを削除するようにしてもよい。
【0070】
<効果>
キャッシュ対象更新処理によれば、配信サーバ5から配信されるデータについて、配信からの経過時間及び要求頻度に応じて、ネットワーク上においてキャッシュさせる量を制御できる。また、要求頻度の傾向が変化した場合にも、傾向の変化に追従してネットワーク上におけるキャッシュのヒット率を維持及び向上させられるようキャッシュ配置を変更できる。なお、要求頻度の算出やキャッシュすべきチャンクのリストの更新を行う管理装置は、配信サーバ5であってもよいし、ネットワーク2に接続された他の装置であってもよい。また、各ノード3が記憶するチャンクごとのアクセスログは、ネットワーク上の所定の装置に保持させ、配信サーバ5又は上記管理装置が各中継ノードにおけるアクセスログを読み出せるようにしてもよい。
【0071】
<キャッシュ対象のファイル及びファイルをキャッシュするノードの数>
本実施形態では、所定の条件に基づいてキャッシュ対象を決定する。チャンクをキャッシュするノードの数は、ユーザが任意に設定することができる。なお、チャンクをキャッシュするノードの数は、各グループに属するノードの数と、チャンクに割り当てられたグループの数とによって決まる。チャンクをキャッシュするノードの数は、例えば遺伝的アルゴリズム等を利用して求めた準最適なキャッシュ配置に従って定めるようにしてもよい。
【0072】
図11は、1つの平面グラフで表されるメッシュ型ネットワーク上にキャッシュされるファイル(チャンク)及びその数を示すグラフである。
図11の横軸は、優先順位の降順にソートしたファイルの通し番号を表し、縦軸は、各ファイルをキャッシュするノード数を表している。ファイルに付すタグの設定は、遺伝的アルゴリズムを利用して求められるキャッシュ配置においてノード上にキャッシュされるファイルの種類及び同一のファイルをキャッシュするノードの数に従って決定してもよい。
図11の破線は、メッシュ型のネットワークにおいて、遺伝的アルゴリズム(GA:Genetic Algorithm)によって求めら
れた準最適なキャッシュ配置におけるファイルと当該ファイルがネットワーク上にキャッシュされる数との関係を表している。実線は、遺伝的アルゴリズムで求めたネットワーク中のキャッシュファイル数を、本実施形態に係るネットワークシステムで近似する例である。本実施形態では、上述したタグによって表される、各ファイルに割り当てるグループを変更することにより、当該ファイルをキャッシュするネットワーク上のノード数を調整することができる。また、グループの種類の数を4よりも大きくすることで、準最適な配置に対する近似の精度を向上させることができる。
【0073】
<変形例1>
図12は、変形例に係るネットワーク構成の一例を示す図である。本変形例に係るネットワークシステム1は、階層状に接続された複数のネットワーク2を含む。ネットワーク2は、例えばインターネットサービスプロバイダ(ISP:Internet Service Provider
)によって管理される自律システムであり、上位の階層からティア(Tier)1、ティア2、ティア3と呼ぶ。各ネットワーク2は、メッシュ型、フルメッシュ型、リング型、バス型等のネットワークトポロジで接続された複数のノードを含む。また、各ノードは、自ノードが属する階層に割り当てられたグループのいずれかと対応付けられている。本変形例においても、ノード3へのグループの割り当ては、ネットワーク2において同一のグループが偏らないように行ってもよい。すなわち、各ノード3には、ネットワーク2内においてネットワークトポロジ上隣接する他のノード3とは異なるグループが優先して割り当てられる。また、接続関係を表すトポロジを平面グラフで表すことができるネットワークにおいては、いわゆる四色定理を応用し、隣接するノードが同じグループに属さないように、グループを割り当てるようにしてもよい。
【0074】
また、ネットワーク2には、電気通信回線を介して通信可能に接続された複数のノード3が接続される。ノード3は、自身が記憶するチャンクを、自身が接続されたネットワーク2や、他の階層に属するネットワーク2を介して、他のコンピュータとの間で送受信することができる。
【0075】
一般的に、1つのネットワーク2に接続された2つのコンピュータ間で通信を行う場合、例えばネットワーク2を制御するISPは、自己の管理するインフラストラクチャによって通信を完結させることができる。また、同程度の階層に属するネットワーク2の間では、ネットワーク2に接続されたコンピュータ間のトラフィックを相互に転送する「ピアリング」が行われる場合がある。また、上下の階層に属するネットワーク2の間では、下位のネットワーク2に接続されたコンピュータのトラフィックを上位のネットワーク2を介してさらに他のネットワーク2に転送する「トランジット」が行われることがある。このとき、下位のネットワーク2を管理するISPには、上位のネットワーク2を利用するための費用が発生することがある。したがって、各ネットワーク2においては上位のネットワーク2への通信が低減されることが望ましい。
【0076】
本変形例では、いずれかのネットワーク2に接続された配信サーバ5からチャンクを受信する場合に、視聴者の端末4に近い場所にファイルがキャッシュされている確率を高めると共に、ネットワーク2間におけるトラフィックの発生を低減させる。また、ISPが提供するネットワークの下で、ユーザは例えば建物内にLAN(Local Area Network)を
構築することがある。本実施形態では、ISPやユーザ等によって管理される単位が異なるものを別のネットワークとして扱い、ネットワークはティア1から段階的に階層に属するものとする。
【0077】
図13は、本変形例においてチャンクに付されるタグを説明するための図である。本変形例においても、チャンクには、ゼロ以上の上述したグループを示す情報が関連付けられる。また、1つのチャンクに対して複数のグループを割り当てる場合は、階層を跨ぐことなく、3つの階層のいずれかに属する4つ以下のグループの組合せが割り当てられる。
【0078】
なお、3つの階層に4つのグループが存在する場合、12桁のビット列によって(2
4)
3種類のタグを生成することができる。本実施形態では、あるファイルはいずれかの階層においてキャッシュするものとし、(2
4)×3種類のタグを利用する。また、本実施形態では、所定の条件に基づいて決定される優先順位の高いチャンクほど、下位のネットワーク2においてキャッシュする。また、優先順位の高いチャンクほど、多くのグループでキャッシュするようにしてもよい。また、すべてのファイルにグループを関連付ける必要はなく、タグが「0000 0000 0000」のファイルは、いずれの階層においてもキャッシュされないファイルを示す。このようなタグによれば、各階層に属するノード3は、他のノード3からキャッシュされたチャンクを受信する場合、要求する先のノードを同一の階層に属するノード3とすべきか、上下いずれの階層に属するノード3とすべきか容易に判断することができる。
【0079】
図14は、本変形例における、キャッシュの対象を決める際の優先順位を説明するための図である。
図14のグラフは、縦軸がチャンクへの要求頻度を表し、横軸が配信からの経過時間を表しており、これらの大きさの組み合わせに対してチャンクに割り当てるグループ数及びキャッシュする階層を模式的に示している。
図14の例では、破線で区切られた領域について、左から下位のネットワークでキャッシュするチャンク、中位のネットワークでキャッシュするチャンク、上位のネットワークでキャッシュするチャンク、キャッシュ対象でないチャンクを含む。また、各階層のネットワークでキャッシュするチャンクにおいて、左から4つのグループを割り当てるチャンク、3つのグループを割り当てるチャンク、2つのグループを割り当てるチャンク、1つのグループを割り当てるチャンクを含むものとする。なお、要求頻度に代えて、又は要求頻度に加えて、例えばチャンクの重要度を示す他の基準を用いて割り当てるグループ数を決定するようにしてもよいし、配信からの経過時間のみによって割り当てるグループ数を決定するようにしてもよい。
【0080】
本変形例においては、配信からの経過時間が同一のチャンクであれば、要求頻度が高いチャンクほどより下位のネットワークでキャッシュされ、且つ当該ネットワーク上において多くのグループでキャッシュされる傾向を有する。また、要求頻度が同一のチャンクであれば、配信からの経過時間が短いチャンクほどより下位のネットワークでキャッシュされ、且つ当該ネットワーク上において多くのグループでキャッシュされる傾向を有する。すなわち、本変形例においても、配信が開始された日時からの経過時間が短いチャンクを優先するという条件と、配信要求が多いチャンクを優先するという条件とのバランスによって、キャッシュする優先度を決定する。ここで、下位のネットワークは一般的に視聴者の端末4に近いネットワークであり、下位のネットワークにキャッシュされるチャンクは、上位のネットワークにキャッシュされるチャンクよりも速やかに視聴者の端末4へ送信することができる。なお、
図14のグラフも一例であり、割り当てるグループ数の境界を示す直線の傾きは適宜決定することができ、また、各領域間の境界を直線で定義しなくてもよい。また、要求頻度に代えて、又は要求頻度に加えて、例えばチャンクの重要度を示す他の基準を用いて割り当てるグループ数を決定するようにしてもよいし、配信からの経過時間のみによって割り当てるグループ数を決定するようにしてもよい。
【0081】
<効果>
本変形例では、キャッシュの必要性に関する優先度の高いチャンクほど下位のネットワーク2においてキャッシュすることで、視聴者の端末4により近い位置からキャッシュを送信することができるようになる。各ネットワーク上においては、優先度の高いチャンクほど、多くのグループに属するノード3でキャッシュすることで、ネットワーク上におけるキャッシュのヒット率を向上させることができる。
【0082】
<変形例2>
配信されるコンテンツデータは、例えばH.264 SVCのようにベースレイヤと拡張レイヤのように複数のレイヤを含む構造を有していてもよい。ここで、ベースレイヤは、比較的低い解像度及びフレームレートによる最低限の動画を構成するデータを含む。また、拡張レイヤは、解像度、フレームレート、S/N(Signal/Noise)比等を向上させるための追加的なデータを含むものとする。なお、拡張レイヤを複数有し、段階的にコンテンツの品質を向上させられる構成であってもよい。
【0083】
本変形例では、各チャンクのベースレイヤについてキャッシュの優先度を高く設定し、拡張レイヤについては相対的にキャッシュの優先度を低く設定する。すなわち、ベースレイヤについてはネットワーク上においてより多くのグループを割り当てる。また、上述した変形例1と組み合わせる場合には、ベースレイヤについてより下位のネットワークにおいてキャッシュさせるようにする。
【0084】
図15は、変形例1と変形例2とを組み合わせた場合における、キャッシュの対象を決める際の優先順位を説明するための図である。
図15のグラフは、縦軸がチャンクへの要求頻度を表し、横軸が配信からの経過時間を表しており、これらの大きさの組み合わせに対してチャンクに割り当てるグループ数及びキャッシュする階層を模式的に示している。
図15の例では、破線で区切られた領域について、左から下位のネットワークでキャッシュするチャンク、中位のネットワークでキャッシュするチャンク、上位のネットワークでキャッシュするチャンク、キャッシュ対象でないチャンクを含む。また、各階層のネットワークでキャッシュするチャンクにおいて、左から4つのグループを割り当てるチャンク、3つのグループを割り当てるチャンク、2つのグループを割り当てるチャンク、1つのグループを割り当てるチャンクを含むものとする。また、3つの実線の矩形でベースレイヤ(低品質層)、拡張レイヤ1(中品質層)、拡張レイヤ2(高品質層)を示している。これは、配信からの経過時間及び要求頻度とはことなる第3の軸を表し、配信からの経過時間及び要求頻度が同一の場合に、低品質層ほど下段のネットワークで且つより多くのグループでキャッシュされることを表すものとする。なお、要求頻度に代えて、又は要求頻度に加えて、例えばチャンクの重要度を示す他の基準を用いて割り当てるグループ数を決定するようにしてもよいし、配信からの経過時間のみによって割り当てるグループ数を決定するようにしてもよい。
【0085】
<効果>
本変形例によれば、キャッシュすべきデータ(チャンク)がコンテンツのベースとなるデータとコンテンツの品質を向上させるためのデータとを含む場合において、配信に必要な最低限度のデータを品質を向上させるためのデータよりも優先して、ネットワーク上においてより多く且つ視聴者の端末4に近い位置にキャッシュさせることができるため、利用する回線速度が遅い視聴者の端末4へも要求するコンテンツを速やかに配信できるようになる。また、例えば動画の視聴中においてネットワークのスループットが変化する場合は、スループットが低い期間においても低品質層のデータは受信できる可能性が高まるため、動画の再生が停止しづらくなるといえる。このように、本変形例によれば、ネットワーク上のキャッシュ容量を有効に使用することができる。
【0086】
なお、段階的にコンテンツの品質を向上させることができるデータは、動画におけるH.264 SVCのようなフォーマットには限られない。例えば、プログレッシブJPEGのように解像度の異なる色情報を段階的に記録したデータに適用することもできる。また、例えばVR(Virtual Reality)コンテンツ等に含まれる三次元モデルについて、例
えばポリゴン数のような精細さの程度が異なるデータを含むものや、さらに触覚等を表す付加的な情報によって品質を向上させることができるデータについて適用するようにしてもよい。
【0087】
<変形例3>
上述した実施形態及び変形例では、ノード3及びチャンクにそれぞれグループが割り当てられるものとして説明したが、ネットワークシステム上にグループを定義しなくてもよい。すなわち、コンテンツを構成するチャンクについて、配信が開始された日時からの経過時間が短いチャンクを優先するという条件と、配信要求が多いチャンクを優先するという条件とを用いて決まる優先度に基づいて、すべてのノード3がチャンクをキャッシュするものとする。
【0088】
本変形例によっても、視聴者からの配信要求が予測しにくいライブ配信に係るコンテンツデータについて、配信サーバへのアクセスの集中を避け、全体の通信量の増大を抑制するためのキャッシュをネットワークシステム上に配置することができる。
【0089】
<その他>
実施形態及び変形例の構成は例示であり、本発明は上述した構成に限定されない。また、実施形態及び変形例に示した構成は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。
【0090】
また、実施形態及び変形例ではストリーミング配信されるコンテンツをチャンク単位でキャッシュする例を示したが、ノード3がキャッシュするデータの単位はチャンクに分割されていないファイル全体であってもよい。例えば、ライブ配信が終了したコンテンツや、ダウンロード又はプログレッシブダウンロードによって配信されるコンテンツについて、ファイル全体をキャッシュする。また、キャッシュされるファイルは、動画や音楽等のコンテンツに限らず、文書やアプリケーションの実行ファイル等、コンピュータによって生成、読み出し、書き込み、記憶等される様々な電子データであってもよい。
【0091】
本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範疇に属する。当該プログラムが記録された記録媒体については、コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、上述の処理が可能となる。
【0092】
ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやROM等がある。