(57)【要約】【課題】ストリームデータが送受信されるネットワークにおいて、簡易な構成により、配信サーバへのアクセスの集中を避け、全体の通信量の増大を抑制する。【解決手段】ネットワークシステムは、ファイルを送受信すると共に、所定の条件に基づいて当該ファイルを保持するノード装置を複数含む。また、所定の条件は、基準となる日時からの経過時間が短いファイルを優先するという条件を含む。【選択図】図１
2019133453.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを送受信すると共に、所定の条件に基づいて当該ファイルを保持するノード装置を複数含むネットワークシステムであって、
前記所定の条件は、基準となる日時からの経過時間が短いファイルを優先するという条件を含む
ネットワークシステム。
【請求項２】
前記ファイルに対し配信を要求する端末からの要求を集計する管理装置をさらに含み、
前記所定の条件は、前記要求が多いファイルを優先するという条件をさらに含む
請求項１に記載のネットワークシステム。
【請求項３】
前記ノード装置が属するネットワークにおいて、前記ノード装置には、当該ノード装置が保持すべきファイルを特定するためのグループが、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先されるように割り当てられ、
前記ファイルは、優先して保持されるべきファイルほど多くのグループが割り当てられるように、ゼロ以上の前記グループと関連付けられ、
前記ノード装置は、
自身に割り当てられた前記グループと関連付けられた前記ファイルを受信した場合は、当該ファイルをキャッシュとして記憶部に一時的に保持させるキャッシュ保持部と、
要求元のノード装置が送信を要求する前記ファイルに対応する前記キャッシュを保持している場合は、当該キャッシュを前記要求元のノード装置に対して送信するキャッシュ送信部と、
前記要求元のノード装置が要求する前記ファイルに対応する前記キャッシュを保持していない場合は、他のノードに前記ファイルを要求する中継部と、
を備える請求項１又は２に記載のネットワークシステム。
【請求項４】
前記ファイルは、コンテンツデータであり、
前記基準となる日時は前記コンテンツデータの配信が開始された日時であり、
前記コンテンツデータは、コンテンツのベースとなるデータと前記コンテンツの品質を向上させるためのデータとを有し、
前記所定の条件は、前記コンテンツのベースとなるデータを優先するという条件をさらに含む
請求項１から３のいずれか一項に記載のネットワークシステム。
【請求項５】
前記ノード装置は、階層的に接続される複数のネットワークのいずれかに属し、
前記ファイルは、優先して保持されるべきファイルほど配信を要求する端末側に位置する下流のネットワークに属するノードに保持される
請求項１から４のいずれか一項に記載のネットワークシステム。
【請求項６】
前記ファイルは、ストリーミング配信される一連のデータの一部を構成するチャンクである
請求項１から５のいずれか一項に記載のネットワークシステム。
【請求項７】
ファイルを送受信すると共に、所定の条件に基づいて当該ファイルを保持するノード装置であって、
前記所定の条件は、基準となる日時からの経過時間が短いファイルを優先するという条件を含む
ノード装置。
【請求項８】
ファイルを送受信すると共に、所定の条件に基づいて当該ファイルを保持する処理であって、
前記所定の条件は、基準となる日時からの経過時間が短いファイルを優先するという条件を含む処理
をコンピュータが実行するキャッシュ方法。
【請求項９】
ファイルを送受信すると共に、所定の条件に基づいて当該ファイルを保持する処理であって、
前記所定の条件は、基準となる日時からの経過時間が短いファイルを優先するという条件を含む処理
をコンピュータに実行させるためのキャッシュプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム、ノード装置、キャッシュ方法及びキャッシュプログラムに関する。
【背景技術】
【０００２】
従来、ネットワークに接続されたコンピュータ間で伝送されるファイルを中間的にキャッシュするための様々な技術が提案されている。オリジナルファイルの代わりにキャッシュファイルをダウンロードすることで、オリジナルファイルへのアクセスの集中を避けると共に、受信側においてダウンロードを完了するまでの時間を短縮し得る。例えば容量が比較的大きい動画等のコンテンツファイルを送受信する場合には、大きな効果が期待できる。
【０００３】
なお、ＬＲＵバッファのヘッドからアクセス頻度の高いキャッシュエントリを取り出し、コンテンツレシーバに近い下流にある他のキャッシュサーバに移動させ、ＬＲＵバッファのテイルからアクセス頻度の低いキャッシュエントリを取り出し、コンテンツプロバイダに近い上流にあるキャッシュサーバに移動させるという技術が提案されている（特許文献１）。
【０００４】
また、ユーザ端末のコンテンツの再生状態に応じて、キャッシュサーバに格納された前記コンテンツの削除禁止期間を設定するという技術も提案されている（特許文献２）。本技術は、ユーザが再生し終えた箇所から後でコンテンツを視聴する可能性の有無に基づいてキャッシュ削除の優先度付けを行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−８５０３２号公報
【特許文献２】特開２００９−１１１８９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、ネットワークシステムを構成する複数のノードに分散してファイルをキャッシュさせる場合、アクセスの集中を避け、全体の通信量を低減できるファイル配置を決定するためには、一般的に処理に時間がかかるという問題があった。また、特にライブ配信されるストリームデータは、アクセス頻度の予測が立てにくく、最適な分散配置を決定するのは困難であった。
【０００７】
本発明は、ストリームデータが送受信されるネットワークにおいて、簡易な構成により、配信サーバへのアクセスの集中を避け、全体の通信量の増大を抑制するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るネットワークシステムは、ファイルを送受信すると共に、所定の条件に基づいて当該ファイルを保持するノード装置を複数含む。また、所定の条件は、基準となる日時からの経過時間が短いファイルを優先するという条件を含む。
【０００９】
このようにすれば、ファイルへの配信要求が予測しにくい場合であっても、配信が開始
された日時からの経過時間に基づいてネットワーク上にファイルを保持させることができる。すなわち、簡易な構成により、配信サーバへのアクセスの集中を避け、全体の通信量の増大を抑制することができる。
【００１０】
また、ファイルに対し配信を要求する端末からの要求を集計する管理装置をさらに含み、所定の条件は、要求が多いファイルを優先するという条件をさらに含むようにしてもよい。このようにすれば、データに対する配信要求を加味してネットワーク上にファイルを保持する優先度を決定することができる。
【００１１】
また、ノード装置が属するネットワークにおいて、ノード装置には、当該ノード装置が保持すべきファイルを特定するためのグループが、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先されるように割り当てられ、ファイルは、優先して保持されるべきファイルほど多くのグループが割り当てられるように、ゼロ以上のグループと関連付けられるようにしてもよい。また、ノード装置は、自身に割り当てられたグループと関連付けられたファイルを受信した場合は、当該ファイルをキャッシュとして記憶部に一時的に保持させるキャッシュ保持部と、要求元のノード装置が送信を要求するファイルに対応するキャッシュを保持している場合は、当該キャッシュを要求元のノード装置に対して送信するキャッシュ送信部と、要求元のノード装置が要求するファイルに対応するキャッシュを保持していない場合は、他のノードにファイルを要求する中継部とを備えるものであってもよい。ノードに対して、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先されるように割り当てるという簡便な方法により、ネットワーク上のノード装置においてファイルを分散して保持することができる。また、優先して保持されるべきファイルほど多くのグループが割り当てられるように、ゼロ以上のグループと関連付けることにより、ネットワーク上において保持されるファイルの量を所定の優先度に基づいて制御することができるようになる。
【００１２】
また、ファイルは、コンテンツデータであり、基準となる日時はコンテンツデータの配信が開始された日時であり、コンテンツデータは、コンテンツのベースとなるデータとコンテンツの品質を向上させるためのデータとを有し、所定の条件は、コンテンツのベースとなるデータを優先するという条件をさらに含むようにしてもよい。このようにすれば、配信に必要な最低限度のベースとなるデータを、品質を向上させるためのデータよりも優先して、ネットワーク上に保持させることができる。よって、ネットワークのスループットが低いときであってもベースとなるデータは配信できるようになる。
【００１３】
また、ノード装置は、階層的に接続される複数のネットワークのいずれかに属し、ファイルは、優先して保持されるべきファイルほど配信先の端末側に位置する下流のネットワークに属するノードに保持されるようにしてもよい。このようにすれば、優先度の高いファイルを配信先の端末に近い階層においてキャッシュすることができ、階層的に接続されるネットワーク間での通信量も削減することができる。
【００１４】
また、ファイルは、ストリーミング配信される一連のデータの一部を構成するチャンクであってもよい。なお、チャンクとは、何らかのデータについて時間的な区間又はデータサイズに基づいて分割した複数の部分的なファイルをいうものとする。このようにすれば、ライブ配信される一連のデータを逐次キャッシュすることができる。また、一連のデータの一部に配信要求が偏るような場合であっても、例えば要求頻度に応じてネットワーク上におけるキャッシュ量を制御できるようになる。
【００１５】
本発明の他の側面に係るノード装置は、ファイルの一部を構成するファイルを送受信すると共に、所定の条件に基づいて当該ファイルを保持する。また、所定の条件は、基準となる日時からの経過時間が短いファイルを優先するという条件を含む。
【００１６】
なお、課題を解決するための手段に記載の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。また、課題を解決するための手段の内容は、コンピュータ等の装置若しくは複数の装置を含むシステム、コンピュータが実行する方法、又はコンピュータに実行させるプログラムとして提供することができる。なお、プログラムを保持する記録媒体を提供するようにしてもよい。
【発明の効果】
【００１７】
ストリームデータが送受信されるネットワークにおいて、簡易な構成により、配信サーバへのアクセスの集中を避け、全体の通信量の増大を抑制するための技術を提供できる。
【図面の簡単な説明】
【００１８】
【図１】ネットワークシステムの構成の一例を示す図である。
【図２】チャンクに付されるグループを示す情報を説明するための図である。
【図３】チャンクに対応付けてタグを記憶するテーブルの一例を示す図である。
【図４】端末、ノード及び配信サーバの構成の一例を示すブロック図である。
【図５】ライブ配信処理における配信者の端末と配信サーバとの間の処理の一例を示す処理フロー図である。
【図６】ライブ配信処理における配信サーバとノードと視聴者の端末との間の処理の一例を示す処理フロー図である。
【図７】ＭＰＤファイルの内容の一例を示す。
【図８】キャッシュ対象更新処理の一例を示す処理フロー図である。
【図９】キャッシュの対象を決める際の優先順位を説明するための図である。
【図１０】キャッシュを行う優先順位と、当該チャンクに関連付けて割り当てられるグループを示すタグの一例を示す図である。
【図１１】１つの平面グラフで表されるメッシュ型ネットワーク上にキャッシュされるファイル及びその数を示すグラフである。
【図１２】変形例に係るネットワーク構成の一例を示す図である。
【図１３】本変形例においてチャンクに付されるタグを説明するための図である。
【図１４】キャッシュの対象を決める際の優先順位を説明するための図である。
【図１５】キャッシュの対象を決める際の優先順位を説明するための図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明を実施するための形態について説明する。
【００２０】
＜システム構成＞
図１は、実施形態に係るネットワークシステムの構成の一例を示す図である。図１のネットワークシステム１は、ネットワーク２と、ネットワーク２を形成するノード３（３ａ〜３ｅ）と、ネットワーク２に接続される端末４（４ａ〜４ｄ）と、ネットワーク２に接続される配信サーバ５とを含む。ネットワーク２は、ＩＳＰ（Internet Service Provider）によって管理される自律システム（ＡＳ：Autonomous System）等の通信回線網である。ノード３、端末４及び配信サーバ５は、コンピュータであり、通信可能に接続された他のコンピュータとの間で電子ファイルを送受信することができるものとする。また、配信サーバ５は、ストリーミングによっていわゆるライブ配信を行うサーバである。配信サーバ５は、配信ユーザの端末４（例えば４ｄ）から継続的に送信される動画又は音声等のコンテンツデータ６を要求元の端末４（例えば４ａ）へストリーミング配信する。なお、配信サーバ５は、配信ユーザの端末から受信したコンテンツデータを所定の形式でエンコードし、要求元の端末４へストリーミング配信するようにしてもよい。
【００２１】
図１において大きな吹出し内に示すように、配信サーバ５には、配信ユーザの端末から
受信したコンテンツデータ６が格納されている。そして、配信サーバ５は、端末４からの要求に応じて、ネットワーク２を介してコンテンツデータ６を端末４へ例えばストリーミング方式で送信する。また、コンテンツデータ６は、時間的な区間又はデータサイズに基づいて分割された複数の部分的なファイル（「チャンク」とも呼ぶ）６１〜６３に分割されている。ライブ配信されるコンテンツデータは、チャンク単位で順次配信される。なお、チャンク６１、６２、６３の順に、配信日時からの経過時間が大きい（すなわち古い）ものとする。
【００２２】
また、ライブ配信されるコンテンツデータ６について、ユーザの端末４は、ライブ配信中のコンテンツ又はライブ配信終了後のコンテンツについて、タイムシフト又はオンデマンドで配信を受けることができるものとする。ここで、本実施形態では、図１において小さな吹出し内に示すように、チャンク単位でコンテンツデータ６がノード３にキャッシュされる。そして、端末４からの要求を配信サーバ５へ中継する過程において、要求を受信したノード３は、要求されたチャンクを自身がキャッシュしている場合は、キャッシュしているチャンクを要求元に送信する。なお、要求を受信したノード３は、要求されたチャンクを自身がキャッシュしていない場合は、配信サーバ５又は他のノード３に当該チャンクの要求を転送する。
【００２３】
また、各ノード３には、当該ノード３にキャッシュすべきチャンクを特定するためのグループが予め割り当てられているものとする。換言すれば、各ノード３は、予め定められた複数のグループのいずれかに属する。図１の例では、各ノード３の近傍に表示された円内に施されたハッチングが、各ノード３が属するグループを表している。ノード３ａは、横縞のグループ（「グループＡ」と呼ぶ）に属する。ノード３ｂは、縦縞のグループ（「グループＢ」と呼ぶ）に属する。ノード３ｃ及び３ｅは、右上から左下にかけた斜線のグループ（「グループＣ」と呼ぶ）に属する。ノード３ｄは、左上から右下にかけた斜線のグループ（「グループＤ」と呼ぶ）に属する。本実施形態では４種類のグループを、ノード３及びチャンクに割り当てるものとして説明するが、グループの数は４には限定されない。
【００２４】
また、あるノード３には、ネットワーク２内においてネットワークトポロジ上隣接する他のノード３とは異なるグループが優先して割り当てられるようにしてもよい。すなわち、複数のノード３には、グループが、ネットワークトポロジ上偏らないように割り当てられる。例えば、新たなノード３をネットワーク２に接続する場合は、例えば複数のグループについて、すでにネットワーク２上に存在する他のノード３のうち、ホップ数が小さいノード３又は回線の経路長が短いノード３に付されたグループから順に除外し、残ったグループを新たなノードに割り当てるようにしてもよい。また、平面グラフで表されるメッシュ型のネットワークや、リング型のネットワークにおいては、いわゆる四色定理を応用し、隣接するノードが同じグループに属さないように、グループを割り当てるようにしてもよい。このようにすれば、あるノード３から他のグループが割り当てられたノード３までは、いずれのグループの場合も同程度のホップ数又は経路長で到達するようになる。
【００２５】
また、各チャンクは、当該チャンクをキャッシュすべきゼロ以上のグループと関連付けられている。図１の例では、チャンク６１〜６３の各々の下に表示された矩形内に施されたハッチングが各チャンクを保持すべきグループを表している。チャンク６１には、グループＡ〜Ｄの４つが割り当てられている。チャンク６２には、グループＡ、Ｂ及びＤの３つが割り当てられている。チャンク６３には、グループＡ及びＣの２つが割り当てられている。なお、グループが１つも割り当てられていないチャンクがあってもよい。このようなネットワークシステム１によれば、チャンクに割り当てるグループの数によって、当該チャンクがネットワーク２においてキャッシュされる量を調整することができる。例えば、ライブ配信からの経過時間が小さいチャンク又は要求頻度の大きいチャンクに対し、よ
り多くのグループを割り当てるようにすれば、要求元のノード３に近い場所にチャンクがキャッシュされている確率を高めることができる。
【００２６】
このようなシステム１において、ノード３は、自身に割り当てられたグループと関連付けられたチャンクを受信した場合は、当該チャンクをキャッシュする。また、要求元のノード３が送信を要求するチャンクに対応するキャッシュを保持している場合は、当該キャッシュを要求元のノード３に対して送信する。一方、要求元のノード装置が要求するチャンクに対応するキャッシュを保持していない場合は、他のノード３に当該チャンクの要求を中継する。
【００２７】
図２は、チャンクに付される、グループを示す情報を説明するための図である。コンテンツデータ６には、例えばチャンクごとに、ゼロ以上の上述したグループの組合せを示す情報が関連付けられる。図２には、ハッチングのパターンで表した４種類のグループの組合せのバリエーションが示されている。すなわちグループの組合せの各々は、グループを０〜４個有する。また、グループの組合せは、図２の右辺に示すように、例えばグループの数だけ桁数を有するビット列によって形成されるタグによって表すことができる。そして、チャンクに対するグループの関連付けは、各ノード３において、チャンクの識別情報に関連付けてタグを保持することにより記憶させることができる。
【００２８】
高解像度の動画コンテンツや、全方向の情報を含むＶＲ（Virtual Reality）コンテン
ツ、音楽コンテンツ等は、１ファイル当たりの容量が大きく内容が更新されることが少ない。したがって、ＣＤＮ（Contents Delivery Network）において、配信が開始されてか
らの経過時間が小さいコンテンツ又はアクセス頻度の高いコンテンツをキャッシュ対象とすれば、キャッシュによるトラフィックの削減が期待できる。
【００２９】
図３は、チャンクに対応付けてタグを記憶するテーブルの一例を示す図である。図３のテーブルは、「チャンクＩＤ」及び「タグ」の属性を有する。「チャンクＩＤ」のフィールドには、チャンクの識別情報が登録される。識別情報としては、チャンクを一意に特定するための名称を用いるようにしてもよいし、ファイルの名称及び当該ファイル中のチャンクの範囲を示す情報を用いるようにしてもよい。チャンクの範囲は、例えばファイルの先頭からのオフセットで表すことができる。「タグ」のフィールドには、対応付けられたファイルをキャッシュするゼロ以上のグループが登録される。図３に示すようなチャンクとグループとの対応付けを表す情報（換言すれば、キャッシュすべきチャンクのリスト）は、データベースやフラットファイル、その他の様々な形式のファイルとして各ノード３に記憶させることができる。また、図３に示すような情報は、例えばネットワーク２に接続された配信サーバ５等の管理装置が一元的に管理し、例えばキャッシュすべきチャンクのリストをネットワーク２上のノード３にブロードキャストしてノード３の各々に保持させるようにしてもよいし、ノード３の各々がネットワーク２上の管理装置から任意のタイミングで読み出すようにしてもよい。
【００３０】
＜装置の構成＞
図４は、端末４、ノード３及び配信サーバ５の構成の一例を示すブロック図である。端末４、ノード３及び配信サーバ５は、一般的なコンピュータである。
【００３１】
＜端末＞
端末４は、ＰＣ（Personal Computer）、スマートフォン、タブレット等のコンピュー
タであり、通信Ｉ／Ｆ４１と、記憶装置４２と、入出力装置４３と、プロセッサ４４と、バス４５とを備えている。
【００３２】
通信Ｉ／Ｆ４１は、例えば有線のネットワークカード又は無線の通信モジュールであり
、所定のプロトコルに基づき、他のコンピュータと通信を行う。例えば、ネットワーク２を介してコンテンツデータ６を受信する。
【００３３】
記憶装置４２は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等の主記憶装置（一次記憶装置）及びＨＤＤ（Hard-disk Drive）やＳＳＤ（Solid State Drive）、フラッシュメモリ等の補助記憶装置（二次記憶装置）である。主記憶装置は、プロセッサが読み出したプログラムやコンテンツデータ６を一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラム等を記憶する。
【００３４】
入出力装置４３は、例えばキーボード、マウス、カメラ（ウェブカメラ）等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。例えば、ユーザは、入出力装置４３を介して配信サーバ５に対しコンテンツデータ６の送信を要求したり、受信したコンテンツデータ６を読み出して表示させたりする。
【００３５】
プロセッサ４４は、ＣＰＵ（Central Processing Unit）等の演算処理装置であり、プ
ログラムを実行することにより本実施の形態に係る各処理を行う。図４の例では、プロセッサ４４内に機能ブロックを示している。プロセッサ４４は、例えば、再生処理部４４１及び配信処理部４４２として機能する。再生処理部４４１は、例えばユーザの操作に基づいて、ネットワーク２を介してコンテンツデータ６の送信を要求したり、受信したチャンクを再生したりする。配信処理部４４２は、例えばカメラ等の入力装置を介して動画を構成するデータを生成し、通信Ｉ／Ｆ４１を介して配信サーバ５へ送信する。
【００３６】
以上のような構成要素が、バス４５を介して接続されている。
【００３７】
＜ノード＞
ノード３も、通信Ｉ／Ｆ３１と、記憶装置３２と、入出力装置３３と、プロセッサ３４と、バス３５とを備えている。
【００３８】
通信Ｉ／Ｆ３１は、例えばネットワークカードや通信モジュールであり、所定のプロトコルに基づき、他のコンピュータと通信を行う。例えば、ノード３、端末４及び配信サーバ５との間においてコンテンツデータ６を送受信する。
【００３９】
記憶装置３２は、ＲＡＭやＲＯＭ等の主記憶装置及びＨＤＤやＳＳＤ、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、送受信されるファイルのチャンク単位でのキャッシュ、当該ノード３に割り当てられたグループを示す情報等を記憶する。
【００４０】
入出力装置３３は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。
【００４１】
プロセッサ３４は、ＣＰＵ等の演算処理装置であり、アプリケーションを実行することにより本実施の形態に係る各処理を行う。ノード３においても、プロセッサ３４内に機能ブロックを示している。プロセッサ３４は、例えば、キャッシュ保持部３４１、キャッシュ送信部３４２及び中継部３４３の各処理部として機能する。キャッシュ保持部３４１は、チャンクに関連付けられたグループを示す情報に基づいて、受信したチャンクを保持するか否か判断し、記憶装置４２に一時的に保持させる。キャッシュ送信部３４２は、他のノードから配信サーバ５へのファイルのチャンク単位での要求に対し、当該ノード３の記憶装置４２にキャッシュされている場合、キャッシュされているチャンクを他のノード３
又は端末４に送信する。中継部３４３は、端末４から配信サーバ５への経路上に当該ノード３が位置する場合において、他のノード３又は端末４から配信サーバ５へのチャンク送信要求や、他のノードへ送信するチャンクを中継する。
【００４２】
以上のような構成要素が、バス３５を介して接続されている。
【００４３】
＜配信サーバ＞
配信サーバ５も、通信Ｉ／Ｆ５１と、記憶装置５２と、入出力装置５３と、プロセッサ５４と、バス５５とを備えている。
【００４４】
通信Ｉ／Ｆ５１は、例えばネットワークカードであり、所定のプロトコルに基づき、ノード３やネットワーク２を介して接続された配信ユーザの端末４等のコンピュータと通信を行う。例えば、配信ユーザの端末４からコンテンツデータ６を受信するとともに、ノード３からの要求に応じてコンテンツデータ６を送信する。
【００４５】
記憶装置５２は、ＲＡＭやＲＯＭ等の主記憶装置及びＨＤＤやＳＳＤ、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、配信するオリジナルのコンテンツデータ６等を記憶しているものとする。
【００４６】
入出力装置５３は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。
【００４７】
プロセッサ５４は、ＣＰＵ等の演算処理装置であり、アプリケーションを実行することにより本実施の形態に係る各処理を行う。配信サーバ５についても、プロセッサ５４内に機能ブロックを示している。プロセッサ５４は、コンテンツ管理部５４１、キャッシュ管理部５４２の各機能部として機能する。コンテンツ管理部５４１は、配信者の端末４からコンテンツデータ６を受信して記憶装置５２へ格納したり、送信を要求されたコンテンツデータ６を記憶装置５２から読み出し、要求元のノードに対して送信する。キャッシュ管理部５４２は、ネットワーク２上のノード３にキャッシュさせる対象のチャンクを決定したり、チャンクをキャッシュするグループを割り当てたりする。キャッシュ管理部５４２は、例えばチャンクごとにアクセス数を計数し、所定期間内のアクセス頻度を算出し、アクセス頻度に応じて、各ファイルをキャッシュするグループを決定するようにしてもよい。
【００４８】
以上のような構成要素が、バス５５を介して接続されている。
【００４９】
＜ライブ配信処理＞
図５は、ライブ配信処理における配信者の端末と配信サーバとの間の処理の一例を示す処理フロー図である。ライブ配信者の端末４の配信処理部４４２は、例えば端末４が備えるカメラを利用して動画等のコンテンツデータ６を出力する（図５：Ｓ１）。また、配信処理部４４２は、出力したコンテンツデータ６を、通信Ｉ／Ｆ４１及びネットワーク２を介して配信サーバ５へ順次送信する（Ｓ２）。
【００５０】
一方、配信サーバ５のコンテンツ管理部５４１は、通信Ｉ／Ｆ５１を介して端末４からコンテンツデータ６を受信し、記憶装置５２に格納する（Ｓ３）。また、コンテンツ管理部５４１は、受信したコンテンツデータ６を所定の形式にエンコードするようにしてもよい（Ｓ４）。本ステップでは、例えばＨ．２６４のようなファイルフォーマットに変換し、記憶装置５２に格納する。また、コンテンツ管理部５４１は、変換後のコンテンツデー
タ６を配信する（Ｓ５）。本ステップでは、リアルタイムで視聴するユーザの端末４からの配信要求を受けてコンテンツデータ６を配信するほか、オンデマンド（タイムシフト）で視聴するユーザの端末４からの配信要求に対してもコンテンツデータ６を配信するものとする。
【００５１】
図６は、ライブ配信処理における配信サーバとノードと視聴者の端末との間の処理の一例を示す処理フロー図である。図６の「ノード」は、図１、図４における要求元の端末４から配信サーバ５までの経路上に存在するノード３に相当する。すなわち、複数のノード３を経由する場合もあるが、図６においては、便宜上、１つのノードを示す。
【００５２】
視聴者の端末４の再生処理部４４１は、配信者の端末４の配信処理部４４２が配信サーバ５へ送信し、配信サーバ５が保持するコンテンツの送信を要求する（図６：Ｓ１１）。本実施形態では、ＭＰＥＧ−ＤＡＳＨ規格のＭＰＤ（Media Presentation Description）ファイルによって、複数のチャンクに分割されたコンテンツファイルを記述する例を説明する。
【００５３】
図７に、ＭＰＤファイルの内容の一例を示す。ＭＰＤファイルはＸＭＬ（Extensible Markup Language）で記述され、ファイルの所在を示す位置情報（ＵＲＬ：Uniform Resource Locator）６１１、６２１、６３１、・・・と、ファイルにおける各チャンクの範囲を示す範囲情報６１２、６２２、６３２、・・・とを含む。すなわち、ＭＰＤファイル（コンテンツファイル）６は、位置情報６１１及び範囲情報６１２を含む第１のチャンク６１に関する情報と、位置情報６２１及び範囲情報６２２を含む第２のチャンク６２に関する情報と、位置情報６３１及び範囲情報６３２を含む第３のチャンク６３に関する情報とを含んでいる。端末４の再生処理部４４１は、このようなコンテンツデータ６に基づいて、基本的には前方の範囲を構成するチャンクから順に、配信サーバ５に対しチャンクの送信を要求する。なお、１つのコンテンツデータ６には、コンテンツの画質や音質等が異なる複数のファイルについてそれぞれ上述のチャンクが記述されていてもよい。この場合は、端末４の性能や通信経路の状態等に応じて複数のファイルのいずれかが送受信される。また、ＭＰＤファイルに限らず、Ｍ３ＵやＨＬＳ（HTTP Live Streaming）のようなフォー
マットに適用することもできる。
【００５４】
一方、ノード３の中継部３４３は、要求を受信し（Ｓ１２）、要求されたチャンクに対応するキャッシュファイルが自ノードの記憶装置３２に保持されているか判断する（Ｓ１３）。キャッシュを保持している場合（Ｓ１３：ＹＥＳ）、ノード３のキャッシュ送信部３４２は、キャッシュファイルを要求元に送信する（Ｓ１４）。一方、要求元の端末４の再生処理部４４１は、キャッシュファイルを受信し、コンテンツの内容をモニタ等の入出力装置４３上に表示させる（Ｓ１５）。
【００５５】
また、ノード３がキャッシュを保持していない場合（Ｓ１３：ＮＯ）、中継ノードの中継部３４３は、隣接するノード３又は配信サーバ５に要求を中継する（Ｓ１６）。なお、複数のノード３を介して要求が転送される場合は、同様の処理が繰り返される。また、本実施形態においては、ノード３は、グループを示すタグのビット位置からいずれのグループに属するノード３において各チャンクがキャッシュされているかわかる。よって、ノード３は、近傍に接続された他のノード３が属するグループを予め記憶しておくことにより、要求されたチャンクのタグのビット位置に基づいて当該チャンクをキャッシュするグループに属するノード３を、要求の転送先に決定するようにしてもよい。
【００５６】
一方、配信サーバ５のコンテンツ管理部５４１は、チャンクに対する送信の要求を受信し（Ｓ１７）、該当するチャンクを記憶装置５２から読み出して送信する（Ｓ１８）。一方、ノード３の中継部３４３は、受信したチャンクを要求元に対して中継する（Ｓ１９）
。そして、要求元の端末４の再生処理部４４１は、チャンクを受信し、コンテンツの内容をモニタ等の入出力装置４３上に表示させる（Ｓ２０）。
【００５７】
また、Ｓ１９においてチャンクを要求元へ中継する場合、ノード３のキャッシュ保持部３４１は、当該チャンクは自ノードが属するグループにおいてキャッシュすべき対象であるか判断する（Ｓ２１）。本ステップでは、チャンクに対し、自ノードが属するグループを示す情報が関連付けられているか判断する。例えば、図３に示したような情報をノード３の記憶装置３２が保持する。
【００５８】
そして、中継したチャンクがキャッシュ対象であると判断された場合（Ｓ２１：ＹＥＳ）、ノード３のキャッシュ保持部３４１は、当該チャンクを記憶装置３２に一時的に保持させる。一方、中継したチャンクがキャッシュすべき対象でないと判断された場合は、ノード３はチャンクを保持しない。ネットワークシステム１は、要求元ノードからのファイルの送信要求に対して、図５に示したようなファイル配信処理を繰り返す。
【００５９】
＜効果＞
本実施形態では、ネットワーク２において同一のグループが偏らないようにノードをグループ分けする。すなわち、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先して割り当てられるという簡便な方法により、同一のチャンクをキャッシュするノードをネットワーク上に分散させ、いずれのノードからもある程度近接した位置に各グループに属するキャッシュサーバが存在するようなキャッシュ配置を実現することができる。また、図１に示したように、１つのチャンクには複数のグループを示す情報を関連付けておくようにしてもよい。そして、リアルタイム又はオンデマンドの配信要求の多いチャンクほど多くのグループを割り当てておけば、より多くのノードでキャッシュすすることができ、ネットワーク上におけるキャッシュのヒット率を向上させることができる。また、チャンク単位でキャッシュすることにより、チャンク単位で要求される頻度が異なるような場合であっても、要求の頻度が高いチャンクをキャッシュさせれば、キャッシュ領域を効率的に活用することができる。
【００６０】
＜キャッシュ対象決定処理＞
また、上述したネットワークシステムにおいて、チャンクに対するキャッシュの優先度を決定し、チャンクに関連付けられるグループを示す情報（換言すればキャッシュすべきチャンクのリスト）を動的に変更するようにしてもよい。キャッシュの優先度は、例えば、コンテンツデータ６の配信からの経過時間に基づいて決定することができる。すなわち、ライブ配信が行われる場合、リアルタイムで視聴するユーザのほか、少し遅れて視聴を開始したり、一部分を聞き直すこと等によりリアルタイムよりも遅れて視聴するユーザも存在する。一般的なコンテンツデータについては、配信の開始から時間が経過するほど配信の要求が少なくなる傾向があるところ、コンテンツデータ６の配信からの経過時間が短いほどネットワーク上に多くキャッシュすることを１つの条件としてキャッシュ対象を決定すれば、ネットワーク上におけるキャッシュのヒット率を向上させることができるといえる。また、配信サーバ５のキャッシュ管理部５４２が算出する各チャンクへの配信要求の頻度（アクセス頻度）をもう１つの条件としてキャッシュ対象を決定するようにしてもよい。コンテンツデータ６によって、配信要求の多寡が異なるところ、アクセス頻度に基づいてキャッシュ対象を決定することによってもネットワーク上におけるキャッシュのヒット率を向上させることができる。また、２つの条件を組み合わせてキャッシュ対象を決定する場合は、各条件の重みを適宜決定し、配信から経過した時間が短く且つアクセス頻度の大きいチャンクほど、多くのグループを割り当てるものとする。なお、配信サーバ５は、チャンクに対するアクセスの頻度を算出し、キャッシュ対象のチャンクを決定する、本発明に係る「アクセス管理装置」の一例である。また、配信サーバ５とは別に、いずれかのネットワーク２にアクセス管理装置を設けてもよい。
【００６１】
図８は、キャッシュ対象のチャンクを変更するキャッシュ対象更新処理の一例を示す処理フロー図である。例えば、ネットワークシステムは、図８に示すような処理を行うようにしてもよい。図８においては、図６に対応する処理には同一の符号を付し、説明を省略する。
【００６２】
また、例えば配信サーバ５は、図６のＳ１８に代えて、チャンクを送信すると共に、さらに当該チャンクへの配信要求のログを記憶装置３２に書き出す（図８：Ｓ３１）。配信要求は、リアルタイムでの視聴における配信要求と、オンデマンドでの視聴における配信要求とを合算する。また、配信サーバ５のキャッシュ管理部５４２は、所定のタイミングで直近の所定期間におけるチャンクごとの要求頻度（アクセス頻度とも呼ぶ）を集計する。
【００６３】
また、ノード３は、配信の要求に応じてキャッシュを送信した回数をチャンクごとに計数しておき、計数した回数を所定のタイミングで配信サーバ５へ送信する（Ｓ３２）。一方、配信サーバ５は、ノード３からキャッシュの送信回数を受信し、チャンクごとのアクセス数を算出する（Ｓ３３）。すなわち、配信サーバ５から配信されていないがノード３のキャッシュを送信することによって視聴者の端末４に配信を行ったチャンクについて、要求数を集計できる。
【００６４】
また、配信サーバ５のキャッシュ管理部５４２は、キャッシュ対象のチャンクを決定する（Ｓ３４）。例えば、所定のタイミングで、配信からの経過時間が相対的に短く且つ要求頻度が相対的に高いチャンクほどキャッシュの優先度が高いものとしてより多くのグループにキャッシュさせる。すなわち、より多くのグループにキャッシュさせるために、チャンクに対しより多くのグループを割り当てる。また、例えば、予め定められた動作時刻が到来した場合や、前回の処理から所定期間が経過した場合等の条件を満たした場合に、キャッシュ対象及びこれに割り当てるグループの数を更新するものとする。
【００６５】
図９は、キャッシュの対象を決める際の優先順位を説明するための図である。図９は、縦軸がチャンクへの要求頻度を表し、横軸が配信からの経過時間を表しており、これらの大きさの組み合わせに対してチャンクに割り当てるグループ数を模式的に示している。すなわち、割り当てられるグループ数が大きいほど、多くのノード３においてキャッシュされるといえる。図９に示すように、配信からの経過時間が同一のチャンクであれば、要求頻度が高いチャンクほど、ネットワーク上に多くキャッシュされるようになっている。また、要求頻度が同一のチャンクであれば、配信からの経過時間が短いほど、ネットワーク上に多くキャッシュされるようになっている。すなわち、配信が開始された日時からの経過時間が短いチャンクを優先するという条件と、配信要求が多いチャンクを優先するという条件とのバランスによって、キャッシュする優先度を決定する。なお、図９のグラフは一例であり、割り当てるグループ数の境界を示す直線の傾きは適宜決定することができ、また、境界を直線で定義しなくてもよい。また、要求頻度に代えて、又は要求頻度に加えて、例えばチャンクの重要度を示す他の基準を用いて割り当てるグループ数を決定するようにしてもよいし、配信からの経過時間のみによって割り当てるグループ数を決定するようにしてもよい。
【００６６】
図１０は、キャッシュを行う優先順位と、当該チャンクに関連付けて割り当てられるグループを示すタグの一例を示す図である。なお、図９に示したような配信からの経過時間と要求頻度とに基づいて、チャンクごとにキャッシュを行う優先順位を決定するものとする。図１０に示す表は、「順位」、「グループ数」、及び「タグ」の項目を有する。「順位」のフィールドには、配信からの経過時間及び所定期間における要求頻度に基づいて定まる順位の範囲が記録されている。図８のＳ３４においては、所定期間における順位が決
定される。「グループ数」のフィールドには、各順位のチャンクをキャッシュするグループの数が示されている。「タグ」のフィールドには、各順位のチャンクをキャッシュするグループを示す情報が上述したタグの形式で記録されている。
【００６７】
また、キャッシュ管理部５４２は、配信からの経過時間及び要求頻度に応じて、各チャンクをキャッシュするグループを決定する（図８：Ｓ３５）。本ステップでは、各チャンクに対しキャッシュするグループを割り当てる。まず、所定期間のアクセス数に基づいて、図９に示す優先の程度を決定する。例えばノード３を４つのグループに分ける場合、優先の程度を５段階に分類する。また、最も優先すべき程度に属するチャンクを４つのグループすべてにおいてキャッシュさせ、２番目に優先すべき程度に属するチャンクを３つのグループにおいてキャッシュさせ、３番目に優先すべき程度に属するチャンクを２つのグループにおいてキャッシュさせ、４番目に優先すべき程度に属するチャンクを１つのグループにおいてキャッシュさせる。なお、優先度の低いチャンクはいずれのグループにおいてもキャッシュさせないものとする。
【００６８】
このように、優先の程度に応じて当該チャンクをキャッシュするノードのグループ数が決定され、その後、同数のグループが割り当てられたチャンクに対し循環的にグループの組合せを割り当てる。例えば、図１０の順位が２１〜１００のレコードの「タグ」のフィールドには、３つのグループの組み合わせを循環的に割り当てることにより決定されたタグが記録されている。Ｓ２５においては、直近の所定期間における各チャンクへのアクセス頻度に基づいて、チャンクに関連付けられるタグが更新される。
【００６９】
そして、キャッシュ管理部５４２は、各チャンクをキャッシュの対象とするグループを示すリストを、各ノードへ配信する（図８：Ｓ３６）。本ステップでは、例えば図１０の「チャンク名」及び「タグ」の列に示す情報が、各ノード３へブロードキャストされる。ノード３は、リストを受信すると、当該リストを記憶装置３２に保持させると共に以降は当該リストに基づいて自ノードがキャッシュする対象のチャンクを決定する（Ｓ３７）。このようなリストのグループを示す情報に基づいて、各ノードは、チャンクを要求する先を判断することができる。また、リストが更新された場合、ノード３において保持する対象でなくなったキャッシュを削除するようにしてもよい。
【００７０】
＜効果＞
キャッシュ対象更新処理によれば、配信サーバ５から配信されるデータについて、配信からの経過時間及び要求頻度に応じて、ネットワーク上においてキャッシュさせる量を制御できる。また、要求頻度の傾向が変化した場合にも、傾向の変化に追従してネットワーク上におけるキャッシュのヒット率を維持及び向上させられるようキャッシュ配置を変更できる。なお、要求頻度の算出やキャッシュすべきチャンクのリストの更新を行う管理装置は、配信サーバ５であってもよいし、ネットワーク２に接続された他の装置であってもよい。また、各ノード３が記憶するチャンクごとのアクセスログは、ネットワーク上の所定の装置に保持させ、配信サーバ５又は上記管理装置が各中継ノードにおけるアクセスログを読み出せるようにしてもよい。
【００７１】
＜キャッシュ対象のファイル及びファイルをキャッシュするノードの数＞
本実施形態では、所定の条件に基づいてキャッシュ対象を決定する。チャンクをキャッシュするノードの数は、ユーザが任意に設定することができる。なお、チャンクをキャッシュするノードの数は、各グループに属するノードの数と、チャンクに割り当てられたグループの数とによって決まる。チャンクをキャッシュするノードの数は、例えば遺伝的アルゴリズム等を利用して求めた準最適なキャッシュ配置に従って定めるようにしてもよい。
【００７２】
図１１は、１つの平面グラフで表されるメッシュ型ネットワーク上にキャッシュされるファイル（チャンク）及びその数を示すグラフである。図１１の横軸は、優先順位の降順にソートしたファイルの通し番号を表し、縦軸は、各ファイルをキャッシュするノード数を表している。ファイルに付すタグの設定は、遺伝的アルゴリズムを利用して求められるキャッシュ配置においてノード上にキャッシュされるファイルの種類及び同一のファイルをキャッシュするノードの数に従って決定してもよい。図１１の破線は、メッシュ型のネットワークにおいて、遺伝的アルゴリズム（ＧＡ：Genetic Algorithm）によって求めら
れた準最適なキャッシュ配置におけるファイルと当該ファイルがネットワーク上にキャッシュされる数との関係を表している。実線は、遺伝的アルゴリズムで求めたネットワーク中のキャッシュファイル数を、本実施形態に係るネットワークシステムで近似する例である。本実施形態では、上述したタグによって表される、各ファイルに割り当てるグループを変更することにより、当該ファイルをキャッシュするネットワーク上のノード数を調整することができる。また、グループの種類の数を４よりも大きくすることで、準最適な配置に対する近似の精度を向上させることができる。
【００７３】
＜変形例１＞
図１２は、変形例に係るネットワーク構成の一例を示す図である。本変形例に係るネットワークシステム１は、階層状に接続された複数のネットワーク２を含む。ネットワーク２は、例えばインターネットサービスプロバイダ（ＩＳＰ：Internet Service Provider
）によって管理される自律システムであり、上位の階層からティア（Ｔｉｅｒ）１、ティア２、ティア３と呼ぶ。各ネットワーク２は、メッシュ型、フルメッシュ型、リング型、バス型等のネットワークトポロジで接続された複数のノードを含む。また、各ノードは、自ノードが属する階層に割り当てられたグループのいずれかと対応付けられている。本変形例においても、ノード３へのグループの割り当ては、ネットワーク２において同一のグループが偏らないように行ってもよい。すなわち、各ノード３には、ネットワーク２内においてネットワークトポロジ上隣接する他のノード３とは異なるグループが優先して割り当てられる。また、接続関係を表すトポロジを平面グラフで表すことができるネットワークにおいては、いわゆる四色定理を応用し、隣接するノードが同じグループに属さないように、グループを割り当てるようにしてもよい。
【００７４】
また、ネットワーク２には、電気通信回線を介して通信可能に接続された複数のノード３が接続される。ノード３は、自身が記憶するチャンクを、自身が接続されたネットワーク２や、他の階層に属するネットワーク２を介して、他のコンピュータとの間で送受信することができる。
【００７５】
一般的に、１つのネットワーク２に接続された２つのコンピュータ間で通信を行う場合、例えばネットワーク２を制御するＩＳＰは、自己の管理するインフラストラクチャによって通信を完結させることができる。また、同程度の階層に属するネットワーク２の間では、ネットワーク２に接続されたコンピュータ間のトラフィックを相互に転送する「ピアリング」が行われる場合がある。また、上下の階層に属するネットワーク２の間では、下位のネットワーク２に接続されたコンピュータのトラフィックを上位のネットワーク２を介してさらに他のネットワーク２に転送する「トランジット」が行われることがある。このとき、下位のネットワーク２を管理するＩＳＰには、上位のネットワーク２を利用するための費用が発生することがある。したがって、各ネットワーク２においては上位のネットワーク２への通信が低減されることが望ましい。
【００７６】
本変形例では、いずれかのネットワーク２に接続された配信サーバ５からチャンクを受信する場合に、視聴者の端末４に近い場所にファイルがキャッシュされている確率を高めると共に、ネットワーク２間におけるトラフィックの発生を低減させる。また、ＩＳＰが提供するネットワークの下で、ユーザは例えば建物内にＬＡＮ（Local Area Network）を
構築することがある。本実施形態では、ＩＳＰやユーザ等によって管理される単位が異なるものを別のネットワークとして扱い、ネットワークはティア１から段階的に階層に属するものとする。
【００７７】
図１３は、本変形例においてチャンクに付されるタグを説明するための図である。本変形例においても、チャンクには、ゼロ以上の上述したグループを示す情報が関連付けられる。また、１つのチャンクに対して複数のグループを割り当てる場合は、階層を跨ぐことなく、３つの階層のいずれかに属する４つ以下のグループの組合せが割り当てられる。
【００７８】
なお、３つの階層に４つのグループが存在する場合、１２桁のビット列によって（２４）３種類のタグを生成することができる。本実施形態では、あるファイルはいずれかの階層においてキャッシュするものとし、（２４）×３種類のタグを利用する。また、本実施形態では、所定の条件に基づいて決定される優先順位の高いチャンクほど、下位のネットワーク２においてキャッシュする。また、優先順位の高いチャンクほど、多くのグループでキャッシュするようにしてもよい。また、すべてのファイルにグループを関連付ける必要はなく、タグが「００００  ００００  ００００」のファイルは、いずれの階層においてもキャッシュされないファイルを示す。このようなタグによれば、各階層に属するノード３は、他のノード３からキャッシュされたチャンクを受信する場合、要求する先のノードを同一の階層に属するノード３とすべきか、上下いずれの階層に属するノード３とすべきか容易に判断することができる。
【００７９】
図１４は、本変形例における、キャッシュの対象を決める際の優先順位を説明するための図である。図１４のグラフは、縦軸がチャンクへの要求頻度を表し、横軸が配信からの経過時間を表しており、これらの大きさの組み合わせに対してチャンクに割り当てるグループ数及びキャッシュする階層を模式的に示している。図１４の例では、破線で区切られた領域について、左から下位のネットワークでキャッシュするチャンク、中位のネットワークでキャッシュするチャンク、上位のネットワークでキャッシュするチャンク、キャッシュ対象でないチャンクを含む。また、各階層のネットワークでキャッシュするチャンクにおいて、左から４つのグループを割り当てるチャンク、３つのグループを割り当てるチャンク、２つのグループを割り当てるチャンク、１つのグループを割り当てるチャンクを含むものとする。なお、要求頻度に代えて、又は要求頻度に加えて、例えばチャンクの重要度を示す他の基準を用いて割り当てるグループ数を決定するようにしてもよいし、配信からの経過時間のみによって割り当てるグループ数を決定するようにしてもよい。
【００８０】
本変形例においては、配信からの経過時間が同一のチャンクであれば、要求頻度が高いチャンクほどより下位のネットワークでキャッシュされ、且つ当該ネットワーク上において多くのグループでキャッシュされる傾向を有する。また、要求頻度が同一のチャンクであれば、配信からの経過時間が短いチャンクほどより下位のネットワークでキャッシュされ、且つ当該ネットワーク上において多くのグループでキャッシュされる傾向を有する。すなわち、本変形例においても、配信が開始された日時からの経過時間が短いチャンクを優先するという条件と、配信要求が多いチャンクを優先するという条件とのバランスによって、キャッシュする優先度を決定する。ここで、下位のネットワークは一般的に視聴者の端末４に近いネットワークであり、下位のネットワークにキャッシュされるチャンクは、上位のネットワークにキャッシュされるチャンクよりも速やかに視聴者の端末４へ送信することができる。なお、図１４のグラフも一例であり、割り当てるグループ数の境界を示す直線の傾きは適宜決定することができ、また、各領域間の境界を直線で定義しなくてもよい。また、要求頻度に代えて、又は要求頻度に加えて、例えばチャンクの重要度を示す他の基準を用いて割り当てるグループ数を決定するようにしてもよいし、配信からの経過時間のみによって割り当てるグループ数を決定するようにしてもよい。
【００８１】
＜効果＞
本変形例では、キャッシュの必要性に関する優先度の高いチャンクほど下位のネットワーク２においてキャッシュすることで、視聴者の端末４により近い位置からキャッシュを送信することができるようになる。各ネットワーク上においては、優先度の高いチャンクほど、多くのグループに属するノード３でキャッシュすることで、ネットワーク上におけるキャッシュのヒット率を向上させることができる。
【００８２】
＜変形例２＞
配信されるコンテンツデータは、例えばＨ．２６４  ＳＶＣのようにベースレイヤと拡張レイヤのように複数のレイヤを含む構造を有していてもよい。ここで、ベースレイヤは、比較的低い解像度及びフレームレートによる最低限の動画を構成するデータを含む。また、拡張レイヤは、解像度、フレームレート、Ｓ／Ｎ（Signal/Noise）比等を向上させるための追加的なデータを含むものとする。なお、拡張レイヤを複数有し、段階的にコンテンツの品質を向上させられる構成であってもよい。
【００８３】
本変形例では、各チャンクのベースレイヤについてキャッシュの優先度を高く設定し、拡張レイヤについては相対的にキャッシュの優先度を低く設定する。すなわち、ベースレイヤについてはネットワーク上においてより多くのグループを割り当てる。また、上述した変形例１と組み合わせる場合には、ベースレイヤについてより下位のネットワークにおいてキャッシュさせるようにする。
【００８４】
図１５は、変形例１と変形例２とを組み合わせた場合における、キャッシュの対象を決める際の優先順位を説明するための図である。図１５のグラフは、縦軸がチャンクへの要求頻度を表し、横軸が配信からの経過時間を表しており、これらの大きさの組み合わせに対してチャンクに割り当てるグループ数及びキャッシュする階層を模式的に示している。図１５の例では、破線で区切られた領域について、左から下位のネットワークでキャッシュするチャンク、中位のネットワークでキャッシュするチャンク、上位のネットワークでキャッシュするチャンク、キャッシュ対象でないチャンクを含む。また、各階層のネットワークでキャッシュするチャンクにおいて、左から４つのグループを割り当てるチャンク、３つのグループを割り当てるチャンク、２つのグループを割り当てるチャンク、１つのグループを割り当てるチャンクを含むものとする。また、３つの実線の矩形でベースレイヤ（低品質層）、拡張レイヤ１（中品質層）、拡張レイヤ２（高品質層）を示している。これは、配信からの経過時間及び要求頻度とはことなる第３の軸を表し、配信からの経過時間及び要求頻度が同一の場合に、低品質層ほど下段のネットワークで且つより多くのグループでキャッシュされることを表すものとする。なお、要求頻度に代えて、又は要求頻度に加えて、例えばチャンクの重要度を示す他の基準を用いて割り当てるグループ数を決定するようにしてもよいし、配信からの経過時間のみによって割り当てるグループ数を決定するようにしてもよい。
【００８５】
＜効果＞
本変形例によれば、キャッシュすべきデータ（チャンク）がコンテンツのベースとなるデータとコンテンツの品質を向上させるためのデータとを含む場合において、配信に必要な最低限度のデータを品質を向上させるためのデータよりも優先して、ネットワーク上においてより多く且つ視聴者の端末４に近い位置にキャッシュさせることができるため、利用する回線速度が遅い視聴者の端末４へも要求するコンテンツを速やかに配信できるようになる。また、例えば動画の視聴中においてネットワークのスループットが変化する場合は、スループットが低い期間においても低品質層のデータは受信できる可能性が高まるため、動画の再生が停止しづらくなるといえる。このように、本変形例によれば、ネットワーク上のキャッシュ容量を有効に使用することができる。
【００８６】
なお、段階的にコンテンツの品質を向上させることができるデータは、動画におけるＨ．２６４  ＳＶＣのようなフォーマットには限られない。例えば、プログレッシブＪＰＥＧのように解像度の異なる色情報を段階的に記録したデータに適用することもできる。また、例えばＶＲ（Virtual Reality）コンテンツ等に含まれる三次元モデルについて、例
えばポリゴン数のような精細さの程度が異なるデータを含むものや、さらに触覚等を表す付加的な情報によって品質を向上させることができるデータについて適用するようにしてもよい。
【００８７】
＜変形例３＞
上述した実施形態及び変形例では、ノード３及びチャンクにそれぞれグループが割り当てられるものとして説明したが、ネットワークシステム上にグループを定義しなくてもよい。すなわち、コンテンツを構成するチャンクについて、配信が開始された日時からの経過時間が短いチャンクを優先するという条件と、配信要求が多いチャンクを優先するという条件とを用いて決まる優先度に基づいて、すべてのノード３がチャンクをキャッシュするものとする。
【００８８】
本変形例によっても、視聴者からの配信要求が予測しにくいライブ配信に係るコンテンツデータについて、配信サーバへのアクセスの集中を避け、全体の通信量の増大を抑制するためのキャッシュをネットワークシステム上に配置することができる。
【００８９】
＜その他＞
実施形態及び変形例の構成は例示であり、本発明は上述した構成に限定されない。また、実施形態及び変形例に示した構成は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。
【００９０】
また、実施形態及び変形例ではストリーミング配信されるコンテンツをチャンク単位でキャッシュする例を示したが、ノード３がキャッシュするデータの単位はチャンクに分割されていないファイル全体であってもよい。例えば、ライブ配信が終了したコンテンツや、ダウンロード又はプログレッシブダウンロードによって配信されるコンテンツについて、ファイル全体をキャッシュする。また、キャッシュされるファイルは、動画や音楽等のコンテンツに限らず、文書やアプリケーションの実行ファイル等、コンピュータによって生成、読み出し、書き込み、記憶等される様々な電子データであってもよい。
【００９１】
本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範疇に属する。当該プログラムが記録された記録媒体については、コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、上述の処理が可能となる。
【００９２】
ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやＲＯＭ等がある。
【符号の説明】
【００９３】
１        ：ネットワークシステム
２        ：ネットワーク
３        ：ノード
３１      ：通信Ｉ／Ｆ
３２      ：記憶装置
３３      ：入出力装置
３４      ：プロセッサ
３４１    ：キャッシュ保持部
３４２    ：キャッシュ送信部
３４３    ：中継部
３５      ：バス
４        ：端末
４１      ：通信Ｉ／Ｆ
４２      ：記憶装置
４３      ：入出力装置
４４      ：プロセッサ
４４１    ：再生処理部
４４２    ：配信処理部
４５      ：バス
５        ：配信サーバ
５１      ：通信Ｉ／Ｆ
５２      ：記憶装置
５３      ：入出力装置
５４      ：プロセッサ
５４１    ：コンテンツ管理部
５４２    ：キャッシュ管理部
５５      ：バス
【図１】
2019133453.tif 000003
【図２】
2019133453.tif 000004
【図３】
2019133453.tif 000005
【図４】
2019133453.tif 000006
【図５】
2019133453.tif 000007
【図６】
2019133453.tif 000008
【図７】
2019133453.tif 000009
【図８】
2019133453.tif 000010
【図９】
2019133453.tif 000011
【図１０】
2019133453.tif 000012
【図１１】
2019133453.tif 000013
【図１２】
2019133453.tif 000014
【図１３】
2019133453.tif 000015
【図１４】
2019133453.tif 000016
【図１５】
2019133453.tif 000017