(57)【要約】【課題】簡易な構成により、ノードへのアクセスの集中を避け、全体の通信量の増大を抑制すると共に、キャッシュ領域を効率的に活用するための技術を提供する。【解決手段】ネットワークシステムは、分割されたファイルであるチャンクを送受信すると共に当該チャンクを一時的に保持するノード装置を複数含む。ノード装置には、当該ノード装置が保持すべきチャンクを特定するためのグループが、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先されるように割り当てられ、チャンクは、ゼロ以上のグループと関連付けられる。そして、ノード装置は、自身に割り当てられたグループと関連付けられたチャンクを受信した場合は、当該チャンクをキャッシュとして記憶部に一時的に保持させる。【選択図】図１
2019020994.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）のようなフォーマットに適
用することもできる。
【００５３】
一方、ノード３の中継部３４３は、要求を受信し（Ｓ２）、要求されたチャンクに対応するキャッシュファイルが自ノードの記憶装置３２に保持されているか判断する（Ｓ３）。キャッシュを保持している場合（Ｓ３：ＹＥＳ）、ノード３のキャッシュ送信部３４２は、キャッシュファイルを要求元に送信する（Ｓ４）。一方、要求元の端末４の再生処理部４４１は、キャッシュファイルを受信し、コンテンツの内容をモニタ等の入出力装置４３上に表示させる（Ｓ５）。
【００５４】
また、ノード３がキャッシュを保持していない場合（Ｓ３：ＮＯ）、中継ノードの中継部３４３は、隣接するノード３又はコンテンツサーバ５に要求を中継する（Ｓ６）。なお、複数のノード３を介して要求が転送される場合は、同様の処理が繰り返される。また、本実施形態においては、ノード３は、グループを示すタグのビット位置からいずれのグループに属するノード３において各チャンクがキャッシュされているかわかる。よって、ノード３は、近傍に接続された他のノード３が属するグループを予め記憶しておくことにより、要求されたチャンクのタグのビット位置に基づいて当該チャンクをキャッシュするグループに属するノード３を、要求の転送先に決定するようにしてもよい。
【００５５】
一方、コンテンツサーバ５のコンテンツ配信部５４１は、チャンクに対する送信の要求を受信し（Ｓ７）、該当するチャンクを記憶装置５２から読み出して送信する（Ｓ８）。一方、ノード３の中継部３４３は、受信したチャンクを要求元に対して中継する（Ｓ９）。そして、要求元の端末４の再生処理部４４１は、チャンクを受信し、コンテンツの内容をモニタ等の入出力装置４３上に表示させる（Ｓ１０）。
【００５６】
また、Ｓ９においてチャンクを要求元へ中継する場合、ノード３のキャッシュ保持部３４１は、当該チャンクは自ノードが属するグループにおいてキャッシュすべき対象であるか判断する（Ｓ１１）。本ステップでは、チャンクに対し、自ノードが属するグループを示す情報が関連付けられているか判断する。例えば、図３に示したような情報をノード３の記憶装置３２が保持する。
【００５７】
そして、中継したチャンクがキャッシュ対象であると判断された場合（Ｓ１１：ＹＥＳ）、ノード３のキャッシュ保持部３４１は、当該チャンクを記憶装置３２に一時的に保持させる。一方、中継したチャンクがキャッシュすべき対象でないと判断された場合は、ノード３はチャンクを保持しない。ネットワークシステム１は、要求元ノードからのファイルの送信要求に対して、図５に示したようなファイル配信処理を繰り返す。
【００５８】
＜効果＞
本実施形態では、ネットワーク２において同一のグループが偏らないようにノードをグループ分けする。すなわち、ネットワークトポロジ上隣接する他のノード装置とは異なるグループが優先して割り当てられるという簡便な方法により、同一のチャンクをキャッシュするノードをネットワーク上に分散させ、いずれのノードからもある程度近接した位置に各グループに属するキャッシュサーバが存在するという準最適なキャッシュ配置を実現することができる。また、図１に示したように、１つのチャンクには複数のグループを示
す情報を関連付けておくようにしてもよい。アクセス頻度の高いチャンクほど、多くのグループに属するノードでキャッシュすれば、ネットワーク上におけるキャッシュのヒット率を向上させることができる。特に、動画等のコンテンツファイルの場合、冒頭部分のアクセス頻度が高く、ユーザはその後視聴を中止したり一部をスキップしたりすることがある。また、再生を開始する位置を指定した動画へのリンクがＳＮＳ（Social Networking Service）に投稿された場合など、動画の一部のアクセス頻度が高まることもある。本実
施形態によれば、アクセス頻度の高いチャンクほど多くキャッシュさせておくことができ、ネットワークシステム全体におけるトラフィックの増大を抑えることができる。また、チャンク単位で要求される頻度が異なるような場合であっても、要求の頻度が高いチャンクをキャッシュさせれば、キャッシュ領域を効率的に活用することができる。
【００５９】
＜キャッシュ対象決定処理＞
また、上述したネットワークシステムにおいて、チャンクに対するキャッシュの優先度を決定し、チャンクに関連付けられるグループを示す情報（換言すればキャッシュすべきチャンクのリスト）を動的に変更するようにしてもよい。キャッシュの優先度は、例えばコンテンツサーバ５のキャッシュ管理部５４２が算出する各チャンクへのアクセス頻度に基づき決定する。コンテンツサーバ５は、チャンクに対するアクセスの頻度を算出し、キャッシュ対象のチャンクを決定する、本発明に係る「アクセス管理装置」の一例である。なお、コンテンツサーバ５とは別に、いずれかのネットワーク２にアクセス管理装置を設けてもよい。
【００６０】
図７は、キャッシュ対象のチャンクを変更するキャッシュ対象更新処理の一例を示す処理フロー図である。例えば、ネットワークシステムは、図５に示したコンテンツ配信処理に加え、図７に示すような処理を行うようにしてもよい。図７においては、図５に対応する処理には同一の符号を付し、説明を省略する。
【００６１】
まず、ノード３は、要求に応じてキャッシュを送信した回数をチャンクごとに計数しておき、計数した回数を所定のタイミングでコンテンツサーバ５へ送信する（図７：Ｓ２１）。一方、コンテンツサーバ５は、ノード３からキャッシュの送信回数を受信し、チャンクごとのアクセス数を算出する（Ｓ２２）。本ステップでは、ノード３が記憶しているアクセスログを受信し、チャンクごとのアクセス数を算出してもよい。
【００６２】
また、例えばコンテンツサーバ５は、図５のＳ８においてチャンクを送信するステップにおいて、さらに当該チャンクへのアクセスログを記憶装置３２に書き出す（図７：Ｓ２３）。本ステップで記憶させるアクセスログと、Ｓ２２において受信したアクセス数をチャンクごとに計数することにより、チャンクごとのアクセス頻度を算出することができるようになる。また、本ステップでは、コンテンツサーバ５のキャッシュ管理部５４２は、所定のタイミングで所定期間におけるチャンクごとのアクセス回数（すなわち、アクセス頻度）を集計する。
【００６３】
その後、コンテンツサーバ５のキャッシュ管理部５４２は、所定のタイミングで、頻度の高いチャンクほどキャッシュの優先度が高いものとしてより多くのグループにキャッシュさせる。すなわち、チャンクに対しより多くのグループを示す情報を関連付けるようにする。また、例えば、予め定められた動作時刻が到来した場合や、前回の処理から所定期間が経過した場合等の条件を満たした場合に、キャッシュ対象を更新するものとする。そして、キャッシュ管理部５４２は、チャンクごとのアクセス頻度を算出し、キャッシュ対象を決定する（Ｓ２４）。
【００６４】
図８は、所定期間におけるチャンクへのアクセス数に基づく順位と、当該チャンクに関連付けて割り当てられるグループを示すタグの一例を示す図である。コンテンツサーバ５
は、当該コンテンツサーバ５が要求に応じて送信したチャンクについてのログと、ノード３がキャッシュを送信した旨のログを所定期間分集計し、図８に示すようなチャンクごとの統計データを生成する。図９に示す表は、「順位」、「グループ数」、及び「タグ」の項目を有する。「順位」のフィールドには、所定期間におけるチャンクへのアクセス頻度に基づいて定まる順位の範囲が記録されている。図７のＳ２４においては、所定期間における順位が決定される。「グループ数」のフィールドには、各順位のチャンクをキャッシュするグループの数が示されている。「タグ」のフィールドには、各順位のチャンクをキャッシュするグループを示す情報が上述したタグの形式で記録されている。
【００６５】
また、キャッシュ管理部５４２は、アクセス頻度に応じて、各チャンクをキャッシュするグループを決定する（図７：Ｓ２５）。本ステップでは、各チャンクに対しキャッシュするグループを割り当てる。まず、所定期間のアクセス数に基づいて、図８に示す人気の程度を決定する。例えばノード３を４つのグループに分ける場合、人気の程度を５段階に分類する。また、最も人気の高い程度に属するチャンクを４つのグループすべてにおいてキャッシュさせ、２番目に人気の高い程度に属するチャンクを３つのグループにおいてキャッシュさせ、３番目に人気の高い程度に属するチャンクを２つのグループにおいてキャッシュさせ、４番目に人気の高い程度に属するチャンクを１つのグループにおいてキャッシュさせる。なお、最も人気の低い程度に属するチャンクはいずれのグループにおいてもキャッシュさせないものとする。
【００６６】
このように、人気の程度に応じて当該チャンクをキャッシュするノードのグループ数が決定され、その後、同数のグループが割り当てられたチャンクに対し循環的にグループの組合せを割り当てる。例えば、図８の順位が２１〜１００のレコードの「タグ」のフィールドには、３つのグループの組み合わせを循環的に割り当てることにより決定されたタグが記録されている。Ｓ２５においては、直近の所定期間における各チャンクへのアクセス頻度に基づいて、チャンクに関連付けられるタグが更新される。
【００６７】
そして、キャッシュ管理部５４２は、各チャンクをキャッシュの対象とするグループを示すリストを、各ノードへ配信する（図８：Ｓ２６）。本ステップでは、例えば図８の「チャンク名」及び「タグ」の列に示す情報が、各ノード３へブロードキャストされる。ノード３は、リストを受信すると、当該リストを記憶装置３２に保持させると共に以降は当該リストに基づいて自ノードがキャッシュする対象のチャンクを決定する（Ｓ２７）。このようなリストのグループを示す情報に基づいて、各ノードは、チャンクを要求する先を判断することができる。また、リストが更新された場合、ノード３においてが不要なキャッシュを削除するようにしてもよい。
【００６８】
＜効果＞
キャッシュ対象更新処理によれば、コンテンツサーバ５から配信されるファイルをアクセス数に応じてチャンク単位でキャッシュさせることができる。また、アクセス頻度の傾向が変化した場合にも、傾向の変化に追従してネットワークにおけるキャッシュのヒット率を維持及び向上させられるよう設定を変更できる。なお、アクセス頻度の算出やキャッシュすべきチャンクのリストの更新を行う管理装置は、コンテンツサーバ５が行うようにしてもよいし、ネットワーク２に接続された他の装置が行うようにしてもよい。また、各ノード３が記憶するチャンクごとのアクセスログは、ネットワーク上の所定の装置に保持させ、コンテンツサーバ５又は上記管理装置が各中継ノードにおけるアクセスログを読み出せるようにしてもよい。
【００６９】
＜キャッシュ対象のファイル及びファイルをキャッシュするノードの数＞
本実施形態では、アクセス頻度が高いチャンクをキャッシュ対象とし、アクセス頻度が高いほどネットワーク内における多くのノードでキャッシュする。チャンクをキャッシュ
するノードの数は、ユーザが任意に設定することができる。なお、チャンクをキャッシュするノードの数は、ネットワークに接続された、各グループに属するノードの数と、チャンクに対応づけて設定される、当該チャンクを保持するグループの数とによって決まる。チャンクをキャッシュするノードの数は、例えば遺伝的アルゴリズム等を利用して求めた準最適なキャッシュ配置に従って定めるようにしてもよい。
【００７０】
図９は、１つの平面グラフで表されるメッシュ型ネットワーク上にキャッシュされるファイル（チャンク）及びその数を示すグラフである。図９の横軸は、アクセス頻度の降順にソートしたファイルの通し番号を表し、縦軸は、各ファイルをキャッシュするノード数を表している。ファイルに付すタグの設定は、遺伝的アルゴリズムを利用して求められるキャッシュ配置においてノード上にキャッシュされるファイルの種類及び同一のファイルをキャッシュするノードの数に従って決定してもよい。図９の破線は、メッシュ型のネットワークにおいて、遺伝的アルゴリズム（ＧＡ：Genetic Algorithm）によって求められ
た準最適なキャッシュ配置におけるファイルと当該ファイルがネットワーク上にキャッシュされる数との関係を表している。実線は、遺伝的アルゴリズムで求めたネットワーク中のキャッシュファイル数を、本実施形態に係るネットワークシステムで近似する例である。本実施形態では、上述したタグによって表される、各ファイルに割り当てるグループを変更することにより、当該ファイルをキャッシュするネットワーク上のノード数を調整することができる。また、グループの種類の数を４よりも大きくすることで、準最適な配置に対する近似の精度を向上させることができる。本実施形態に係る階層的に接続されたネットワークにおいても、所定の頻度でアクセスされる複数のファイルを定義し、何らかのアルゴリズムで求めた準最適なキャッシュ配置を近似した値となるように、上記ファイルに割り当てるグループ及びネットワーク上のノードに割り当てるグループの少なくともいずれかを決定するようにしてもよい。
【００７１】
例えば、図９に示したように、アクセス頻度を基準として２０位以内、２１〜１００位、１０１〜２５０位、・・・といった人気の程度毎にチャンクをキャッシュするグループの数が定める。そして、人気の程度に対して対応付けられたタグを、上位から順に循環的に割り当てる。タグは、当該チャンクを保持すべきグループを示す４ビットのビットベクトルによって記述されている。また、ビットベクトルは、各階層におけるグループを表す桁を、所定の順序で連結して形成されている。図８では、４ビットがそれぞれ４つのグループに対応し、各グループにおいてチャンクがキャッシュされるか否かを表す。
【００７２】
＜変形例１＞
図１０は、端末４の入出力装置４３に表示される画面の一例を示す図である。本変形例では、アクセス頻度が所定の閾値以上である（すなわち、人気のある）チャンクを頭出しできるようにする。例えば図６に示したＭＰＤファイルにチャンクごとのアクセス頻度や人気のあるチャンクである旨の情報を追加することにより、アクセス頻度が所定の閾値以上であったり人気のあるチャンクである旨の情報が付加されている所定のチャンクへ再生位置をスキップさせるようにしてもよいし、ＭＰＤファイルとは別にチャンクごとのアクセス頻度や人気の程度を示す情報を含むファイルを用意し、ＭＰＤファイルを組み合わせて所定のチャンクへ再生位置をスキップさせるようにしてもよい。なお、再生位置は必ずしもチャンクの先頭でなく、コンテンツ中の任意の位置が指定されていてもよい。
【００７３】
図１１は、ＭＰＤファイルとは別に生成される、人気のあるチャンクを示す情報の一例を示す図である。図１１の表は、「チャンクＩＤ」、「再生位置」の各属性を含む。「チャンクＩＤ」のフィールドには、チャンクを特定するための識別情報が登録される。この識別情報により、図３に示したチャンクごとのタグや、図６に示したＭＰＤファイルのチャンクと、図１１の再生位置とが紐づけられる。「再生位置」のフィールドには、アクセス頻度に基づいて決定された再生を開始すべき位置が、コンテンツの先頭からの時間を表
す情報によって登録されている。図１１に示すような情報が端末４に配信され、端末４の再生処理部４４１は配信された情報を用いて図１０に示したような画面を生成するようにしてもよい。
【００７４】
図１０の画面は、例えば端末４において実行される、コンテンツを再生するアプリケーションが生成する。図１０の画面は、動画を表示する領域４１１と、シークバー４１２と、前方へのスキップボタン４１３と、後方へのスキップボタン４１４と、シーンのリスト４１５とを含む。領域４１１には、動画の映像が表示される。図１０のシークバー４１２は、全体における現在の再生位置を三角形で示すとともに、アクセス頻度の高い部分を星印で示している。この星印は、図１１に示した再生位置と対応している。そして、前方へのスキップボタン４１３及び後方へのスキップボタン４１４は、図１１に記載された時間に基づき、アクセス頻度の高い部分へ再生位置をスキップさせる。また、シーンのリスト４１５には、アクセス頻度の高い部分の一覧が表示されている。リスト４１５に表示されるシーンも、図１１に示した再生位置と対応している。ユーザの操作によってリスト４１５のシーンが選択された場合、図１１に記載された時間に基づいて、動画を各シーンから再生させることができる。
【００７５】
このように、スキップボタン４１３、４１４、又はリスト４１５を設けることにより、ユーザの操作に応じてアクセス頻度が閾値以上のチャンクから再生を開始することができる。すなわち、多くのユーザが視聴しているチャンクへ再生位置を移動させることができる。したがって、例えばスポーツの得点シーン等、アクセス頻度の高い場面から再生することができるようになる。また、アクセス頻度の高いシーンに相当するチャンクをより多くのノード３でキャッシュしておくことにより、ネットワーク上のトラフィックの増大を抑えることができる。換言すれば、予めキャッシュされたチャンクからの再生をユーザに提案することにより、トラフィックを低減させることができる。
【００７６】
＜変形例２＞
また、アクセス頻度が所定の閾値以上であるチャンクを抽出及び結合して、コンテンツのダイジェストを生成するようにしてもよい。すなわち、１つのファイルを分割して生成したチャンクのうち、管理装置が算出したアクセス頻度が所定の閾値以上であるチャンクを結合して再生する。このような処理は、例えばコンテンツサーバ５等が、アクセス頻度が所定の閾値以上であるチャンクのみを含むＭＰＤファイルを、コンテンツのダイジェストとして生成することにより実現してもよいし、端末４が備えるコンテンツ再生プログラムがＭＰＤファイルに記述されたチャンクのうちアクセス頻度が所定の閾値以上であえるチャンクのみを要求することにより実現してもよい。すなわち、複数のチャンクを結合することによりもとのファイルを形成する処理は、ノード３が行うようにしてもよいし、端末４が行うようにしてもよい。
【００７７】
アクセス頻度の高いシーンに相当するチャンクをより多くのノード３でキャッシュしておくことにより、本変形例によっても、ネットワーク上のトラフィックの増大を抑えることができる。
【００７８】
＜変形例３＞
また、端末４の再生処理部４４１は、アクセス頻度が所定の閾値以上であるチャンクを優先的に受信（プリフェッチ）するようにしてもよい。このようにすれば、端末４は、ユーザが視聴したい部分を先読みしてダウンロードしておき、ユーザが当該シーンへスキップする操作をした場合は、すぐに再生を開始することができる。また、ノード３のキャッシュ送信部３４２が主体となって、端末４へアクセス頻度が所定の閾値以上であるチャンクをプッシュ配信するようにしてもよい。いずれの場合であっても、端末４の再生処理部４４１は、ファイルを構成するチャンクのうち、アクセス頻度が所定の閾値以上であるチ
ャンクを優先的に受信することができる。そして、チャンクの再生時には当該チャンクが端末４の記憶装置４２に保持された状態にしておくことができる。
【００７９】
＜変形例４＞
また、１つのコンテンツのうち、アクセス頻度が所定の閾値以上であるチャンクの前に広告等のような他のコンテンツを挿入して再生するようにしてもよい。このような処理は、例えば端末４の再生処理部４４１が、コンテンツサーバ５やノード３と協調して、アクセス頻度が所定の閾値以上であるチャンクの前に他のコンテンツを割り込ませて再生する。また、他のコンテンツについても、予めノード３にキャッシュさせておくようにしてもよい。このように人気のあるチャンクの前に他のコンテンツを挿入することにより、ユーザに他のコンテンツも視聴してもらえる可能性が高まる。本変形例に係る他のコンテンツの挿入も、ノード３のキャッシュ送信部３４２が主体となって、端末４へプッシュ配信するようにしてもよい。
【００８０】
＜変形例５＞
また、コンテンツデータは、動画や音声に限られず、例えば三次元オブジェクトを含むＶＲ（Virtual Reality）動画であってもよい。このとき、ＶＲ動画内のオブジェクト単
位で送受信を制御できるファイル形式を採用し、時間的に分割されたチャンクごとにキャッシュするだけでなく、三次元オブジェクトごとにキャッシュできるようにしてもよい。すなわち、多くのユーザに視線を向けられ、表示の対象となることが多い三次元オブジェクトは、より多くのグループに属するノード３においてキャッシュし、ユーザに注目されず、表示されることが少ない三次元オブジェクトは、ネットワーク２上にほとんどキャッシュしない。また、段階的に品質の異なる三次元オブジェクトを予め用意しておき、表示の対象となることが多い三次元オブジェクトは高品質なものをキャッシュさせ、表示の対象となることが少ない三次元オブジェクトは低品質なものをキャッシュさせるようにしてもよい。このような変形例によっても、ネットワーク上のトラフィックの増大を抑えることができると共に、キャッシュを保持するための記憶領域を有効的に活用できる。
【００８１】
すなわち、データの処理単位である三次元オブジェクトがまとまって記憶されるデータ構造のファイルのように、データ構造や処理単位が特殊なコンテンツデータを扱う場合には、データ構造や処理単位に基づいてチャンクのデータサイズを決定するようにしてもよい。このようにすれば、チャンク単位でファイルを送受信及びキャッシュする場合の通信効率やデータの処理効率を向上させることができる。
【００８２】
また、コンテンツデータとして、画質の異なるレイヤを組み合わせて再生品質やコンテンツのデータ量を調整できるファイル形式の動画に、実施形態又は変形例に係るキャッシュ方法を適用してもよい。例えば、Ｈ．２６４  ＳＶＣ（Scalable Video Coding）のよ
うに段階的に画質の異なるレイヤを含む動画ファイルを用意しておき、時間的な区間ごとの動画に対するアクセス頻度に応じて、アクセス頻度の高い区間ほど画質の高いレイヤを多くキャッシュするようにしてもよい。また、アクセス頻度に関係なく、低画質のレイヤを多くキャッシュするようにしてもよい。このようにすれば、回線の混雑状況によらず、少なくとも低画質のレイヤは早期に端末４へ配信できるようになる。
【００８３】
上記の実施形態及び変形例に記載した事項は、適宜組み合わせて実施することができる。
【００８４】
＜その他＞
本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範疇に属する。当該プログラムが記録された記録媒体については、コンピュータに、この記録媒体のプログラム
を読み込ませて実行させることにより、上述の処理が可能となる。
【００８５】
ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやＲＯＭ等がある。
【符号の説明】
【００８６】
１      ：ネットワークシステム
２      ：ネットワーク
３      ：ノード
３１    ：通信Ｉ／Ｆ
３２    ：記憶装置
３３    ：入出力装置
３４    ：プロセッサ
３４１  ：キャッシュ保持部
３４２  ：キャッシュ送信部
３４３  ：中継部
３５    ：バス
４      ：端末
４１    ：通信Ｉ／Ｆ
４２    ：記憶装置
４３    ：入出力装置
４４    ：プロセッサ
４４１  ：再生処理部
４５    ：バス
５      ：コンテンツサーバ
５１    ：通信Ｉ／Ｆ
５２    ：記憶装置
５３    ：入出力装置
５４    ：プロセッサ
５４１  ：コンテンツ配信部
５４２  ：キャッシュ管理部
５５    ：バス
【図１】
2019020994.tif 000003
【図２】
2019020994.tif 000004
【図３】
2019020994.tif 000005
【図４】
2019020994.tif 000006
【図５】
2019020994.tif 000007
【図６】
2019020994.tif 000008
【図７】
2019020994.tif 000009
【図８】
2019020994.tif 000010
【図９】
2019020994.tif 000011
【図１０】
2019020994.tif 000012
【図１１】
2019020994.tif 000013