(58)【調査した分野】(Int.Cl.,DB名)
前記アクセス管理装置は、前記頻度が高いファイルは前記頻度が低いファイルよりも同一の階層においてより多くの前記グループに属する前記ノード装置によって保持されるように、前記ファイルに関連付ける前記グループを示す情報を変更する
請求項2に記載のネットワークシステム。
少なくとも一部の前記ノード装置は、同一の階層に属する複数のネットワークに接続され、前記中継部は、同一の階層に属する他のノード装置に前記ファイルを要求する場合は、前記同一の階層に属する複数のネットワークのいずれかに要求する
請求項1から4のいずれか一項に記載のネットワークシステム。
【発明を実施するための形態】
【0020】
以下、図面を参照して本発明を実施するための形態について説明する。なお、実施形態の構成は例示であり、本発明は実施形態に示す構成に限定されない。
【0021】
<ネットワーク構成>
図1は、実施形態に係るネットワークシステム1の構成の一例を示す図である。実施形態に係るネットワークシステム1は、階層状に接続された複数のネットワーク2を含む。ネットワーク2は、例えばインターネットサービスプロバイダ(ISP:Internet Service Provider)によって管理される自律システム(AS:Autonomous System)であり、上位の階層からティア(Tier)1、ティア2、ティア3と呼ぶ。ネットワーク2には、電気通信回線を介して通信可能に接続された複数のコンピュータ(図示せず)が接続される。コンピュータは、自身が記憶する様々な形式の電子データ(「ファイル」とも呼ぶ)を、自身が接続されたネットワーク2や、上位の階層に相当するネットワーク2を介して、他のコンピュータとの間で送受信することができる。
【0022】
1つのネットワーク2に接続された2つのコンピュータ間で通信を行う場合、例えばネットワーク2を制御するISPは、自己の管理するインフラストラクチャによって通信を完結させることができる。また、同程度の階層に属するネットワーク2の間では、ネットワーク2に接続されたコンピュータ間のトラフィックを相互に転送するピアリングが行われる場合がある。また、上下の階層に属するネットワーク2の間では、下位のネットワーク2に接続されたコンピュータのトラフィックを上位のネットワーク2を介してさらに他のネットワーク2に転送するトランジットが行われることがある。このとき、下位のネットワーク2を管理するISPには、上位のネットワーク2を利用するための料金的なコストが発生する。したがって、各ネットワーク2においては上位のネットワーク2への通信が低減されることが望ましい。本実施形態では、いずれかのネットワーク2に接続されたコンテンツプロバイダのサーバ(「配信サーバ」とも呼ぶ)3からファイルを受信する場合に、要求元のコンピュータに近い場所にファイルがキャッシュされている確率を高め、特にネットワーク2間のトラフィックを低減させる。また、ISPが提供するネットワークの下で、ユーザは例えば建物内にLAN(Local Area Network)を構築することがある。一般的に、ISPが提供するネットワークとLANとでは、通信速度が異なる。何らかのデータを送受信する場合は、ホップ数や通信速度によって定義される通信コストが低く抑えられることが好ましい。本実施形態では、ISPやユーザによって管理される単位が異なるものを別のネットワークと呼び、接続されたネットワークをティア1から順に階層と呼ぶものとする。なお、上下の階層に属するネットワーク間におけるピアリングが含まれてもよい。
【0023】
図2は、ティア3に相当する1つのネットワーク2に接続されるコンピュータ4の一例を示す図である。本実施形態では、一戸建てや集合住宅等の家庭に設置されるPC(Personal Computer)にキャッシュを保持する機能を付加したり、CATV(Cable Television)の視聴装置と組み合わせてキャッシュサーバを設置することにより、ネットワーク上
にキャッシュを保持するシステムを実現する。本実施形態では、ネットワーク2に接続されたコンピュータ4を、「ノード」又は「ノード装置」とも呼ぶ。各ノードは、送受信するファイルをキャッシュファイルとして一時的に記憶(キャッシュ)し、同一のファイルに対する要求に対しキャッシュファイルを送信する。
【0024】
また、本実施形態では、複数のノードが同一のファイルを分散してキャッシュする。そして、ファイルのダウンロードを要求するノードは、例えば当該ファイルをキャッシュす
るノードのうち、自ノードからのホップ数が最も小さいノードからファイルを受信する。具体的には、各ノードが保持すべきファイルを特定するためのグループを予め定義しておく。換言すれば、各ノードは、予め定められた複数のグループのいずれかに属する。
図2の例では、各ノードに付した円内のハッチングが、当該ノードの属するグループを表している。また、本実施形態では、複数の階層を有するネットワーク2に対し、階層ごとに異なる複数のグループを割り当てる。そして、あるグループがいずれの階層に割り当てられたものかわかるようにする。なお、グループの種類は4つには限定されず、1つのグループに属するノードの数も特に限定されない。
【0025】
図3は、複数の階層を形成するネットワーク2に接続されたノードと、グループの割り当ての一例を説明するための図である。各ネットワーク2は、メッシュ型、フルメッシュ型、リング型、バス型等のネットワークトポロジで接続された複数のノードを含む。また、各ノードは、自ノードが属する階層に割り当てられたグループのいずれかと対応付けられている。
図3の例では、各階層に4つのグループが割り当てられている。
【0026】
また、ノードへのグループの割り当ては、ネットワーク2において同一のグループが偏らないように行われる。すなわち、新たなノードをネットワーク2に接続する場合は、例えば複数のグループについて、すでにネットワーク2上に存在する他のノードのうち、ホップ数が小さい又は回線の経路長が短いものに付されたグループから順に除外し、残ったグループを新たなノードに割り当てる。また、メッシュ型やリング型のネットワークにおいては、いわゆる四色定理を応用し、隣接するノードが同じグループに属さないように、グループを割り当てるようにしてもよい。
【0027】
一方、各ファイルは、当該ファイルをキャッシュすべきゼロ以上のグループを示す情報を有する。そして、各ノードは、自身が属するグループを示す情報を有するファイルを送受信(中継を含む)する際、当該ファイルをキャッシュする。
【0028】
図4は、ファイルに付される、グループを示す情報を説明するための図である。
図4のファイル5は、コンピュータによって生成、読み出し、書き込み、記憶等される様々な電子データであり、動画や文書、アプリケーションの実行ファイル等である。特に、高解像度の動画コンテンツや360°の情報を含むVR(Virtual Reality)コンテンツ等は、
1ファイル当たりの容量が大きく内容が更新されることが少ない。したがって、いわゆるCDN(Contents Delivery Network)において、アクセス頻度の高いコンテンツをキャ
ッシュ対象とすれば、キャッシュによるトラフィックの削減効果が大きくなると期待できる。また、ファイル5には、ゼロ以上の上述したグループを示す情報が関連付けられている。
図3の例では、1つのファイル5に対し、吹出し内に示すようにハッチングのパターンで表したグループの組合せが関連付けられる。
図4に示すグループの組合せは、3つの階層のいずれかに対し当てられたグループを0〜4個有する。
【0029】
ファイルに対するグループの対応付けは、各ノードにおいて、例えばグループの数だけ桁数を有するビット列によって表されるタグを、ファイルの識別情報に関連付けて保持しておくことにより設定される。また、このようなファイルのリストは、各ノードにおいてデータベースのテーブルに記憶させるようにしてもよい。また、このような関連付けは、例えばネットワーク2上の配信サーバ3等の管理装置が一元的に管理し、例えばキャッシュすべきファイルのリストをネットワーク上のノードにブロードキャストして各ノードの記憶装置に保持するようにしてもよいし、ネットワーク上の管理装置から各ノードが任意のタイミングで読み出せるようにしてもよい。
【0030】
なお、3つの階層に4つのグループが存在する場合、4桁のビット列によって(2
4)
3種類のタグを生成することができる。本実施形態では、あるファイルはいずれかの階層に
おいてキャッシュするものとし、(2
4)×3種類のタグを利用する。また、本実施形態
では、頻繁にアクセスされるファイルほど、下位のネットワーク2においてキャッシュする。また、頻繁にアクセスされるファイルほど、多くのグループでキャッシュするようにしてもよい。また、すべてのファイルにグループを関連付ける必要はなく、タグが「0000 0000 0000」のファイルは、いずれの階層においてもキャッシュされないファイルを示す。
【0031】
そして、各ノードは、自身が属するグループを示す情報を有するファイルを受信した場合、当該ファイルをキャッシュすると共に、他のノードからの要求に対して自身がキャッシュしている情報を出力する。
【0032】
<ノードの構成>
図5は、ノードの構成の一例を示すブロック図である。ノード4は、一般的なコンピュータであり、通信I/F41と、記憶装置42と、入出力装置43と、プロセッサ44と、バス45とを備えている。
【0033】
通信I/F41は、例えばネットワークカードであり、所定のプロトコルに基づき、
図1〜3に示したリンクを介して他のコンピュータと通信を行う。例えば、ノード間においてファイル5を送受信する。
【0034】
記憶装置42は、RAM(Random Access Memory)やROM(Read Only Memory)等の主記憶装置及びHDD(Hard-disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等の補助記憶装置(二次記憶装置)である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、送受信されるファイルのキャッシュ、当該ノード4が属するグループを示す情報等を記憶する。
【0035】
入出力装置43は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。例えば、ユーザは、入出力装置43を介して配信サーバに対しファイルの送信を要求したり、受信したファイルを読み出して表示させたりする。
【0036】
プロセッサ44は、CPU(Central Processing Unit)等の演算処理装置であり、ア
プリケーション(プログラム、ソフトウェア等とも呼ぶ)を実行することにより本実施の形態に係る各処理を行う。
図3の例では、プロセッサ44内に機能ブロックを示している。プロセッサ44は、例えば、ファイル要求部441、中継部442、キャッシュ保持部443、キャッシュ送信部444、キャッシュ削除部445の各処理部として機能する。ファイル要求部441は、例えばユーザの操作に基づいて、ネットワークを介して接続されたファイル配信サーバに対し、ファイルの送信を要求する。中継部442は、他のノードと配信サーバとの経路上に当該ノード4が位置する場合において、他のノードから配信サーバへのファイル送信要求や、他のノードへ送信するファイルを中継する。キャッシュ保持部443は、ファイルに関連付けられたグループを示す情報に基づいて、受信したファイルを保持するか否か判断し、記憶装置42に一時的に保持させる。キャッシュ送信部444は、他のノードから配信サーバへのファイルの要求に対し、当該ノード4の記憶装置42にキャッシュされている場合、キャッシュされているファイルを他のノード装置に送信する。キャッシュ削除部445は、所定のルールに基づいて、記憶装置42に記憶されたキャッシュを削除する。
【0037】
以上のような構成要素が、バス45を介して接続されている。
【0038】
<配信サーバの構成>
図6は、配信サーバの構成の一例を示すブロック図である。コンテンツプロバイダ等の配信サーバ3も、一般的なコンピュータであり、通信I/F31と、記憶装置32と、入出力装置33と、プロセッサ34と、バス35とを備えている。
【0039】
通信I/F31は、例えばネットワークカードであり、所定のプロトコルに基づき、
図1〜3に示したリンクを介して他のコンピュータと通信を行う。例えば、リンクする他のノードとの間でファイル5を送受信する。
【0040】
記憶装置32は、RAMやROM等の主記憶装置及びHDDやSSD、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、配信するオリジナルのファイル等を記憶しているものとする。また、各ファイルに関連づけて、当該ファイルをキャッシュするグループを示す情報を記憶するようにしてもよい。さらに、ファイルに対する送信要求を計数し、所定期間における頻度に基づいて各ファイルをキャッシュするグループの設定を変更するようにしてもよい。
【0041】
入出力装置33は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。
【0042】
プロセッサ34は、CPU等の演算処理装置であり、アプリケーションを実行することにより本実施の形態に係る各処理を行う。
図6の例では、プロセッサ34内に機能ブロックを示している。プロセッサ34は、例えば、ファイル配信部341、頻度算出部342、設定変更部343の各処理部として機能する。ファイル配信部341は、送信の要求を受けたファイルを記憶装置32から読み出し、要求元のノードに対して送信する。頻度算出部342は、ファイルごとにアクセス数を計数し、所定期間内のアクセス頻度を算出する。設定変更部343は、アクセス頻度に応じて、各ファイルをキャッシュするグループを示す情報を変更する。設定の変更に伴い、設定変更部343は、ネットワーク上のノードに対し、特定のキャッシュファイルの削除を指示する情報を送信するようにしてもよい。
【0043】
以上のような構成要素が、バス35を介して接続されている。
【0044】
<ファイル配信処理>
図7は、ネットワークシステムが行うファイル配信処理の一例を示す処理フロー図である。
図7の要求元ノードは、
図4等に示したいずれかのノードに相当し、
図5に示した機能部を備えている。
図7の配信サーバは、
図1に示した配信サーバ3に相当し、
図6に示した機能部を備えている。また、
図7の中継ノードは、
図1〜
図3における要求元ノードと配信サーバ3との間の経路上に存在するノードに相当する。すなわち、2以上の中継ノードを経由する場合もある。
図7では、便宜上、1つの中継ノードを示す。
【0045】
まず、要求元ノードのファイル要求部441は、配信サーバが保持するファイルの送信を要求する(
図7:S1)。一方、中継ノードの中継部442は、要求を受信し(S2)、自ノードの記憶装置42に対応するキャッシュファイルを保持しているか判断する(S3)。キャッシュを保持している場合(S3:Yes)、中継ノードのキャッシュ送信部444は、キャッシュファイルを要求元ノードに送信する(S4)。また、中継ノードがキャッシュを保持していない場合(S3:No)、中継ノードの中継部442は、隣接する中継ノード(図示せず)又は配信サーバに要求を中継する(S5)。なお、中継ノードが複数存在する場合は、同様の処理が繰り返される。また、本実施形態においては、各ノ
ードは、グループを示すタグのビット位置からいずれの階層においてキャッシュされているかわかる。よって、各ノードは要求されたファイルのタグのビット位置に基づいて要求を上位階層のネットワーク又は同一階層のネットワークに転送することができる。そして、配信サーバ3のファイル配信部341は、ファイルに対する送信の要求を受信し(S6)、該当するファイルを記憶装置32から読み出して送信する(S7)。一方、中継ノードの中継部442は、ファイルを要求元のノード対して中継する(S8)。そして、S8の後、又はS4において中継ノードがキャッシュを送信した後、要求元ノードのファイル要求部441はS1において要求したファイルを受信する(S9)。また、S8においてファイルを要求元ノードへ送信する場合、中継ノードのキャッシュ保持部443は、当該ファイルは自ノードにおいてキャッシュすべき対象であるか判断する(S10)。本ステップでは、ファイルに対し、自ノードが属するグループを示す情報が関連付けられているか判断する。ファイルとグループを示す情報との関連付けは、自ノードの記憶装置42又はネットワーク上の所定の装置が保持するデータベースのテーブルやファイルに記憶させておくことができる。そして、中継したファイルがキャッシュすべき対象であると判断された場合(S10:Yes)、中継ノードのキャッシュ保持部443は、当該ファイルを記憶装置42に一時的に保持する。一方、中継したファイルがキャッシュすべき対象でないと判断された場合は、中継ノードはファイルを保持しない。ネットワークシステム1は、要求元ノードからファイルの送信要求に対して、
図5に示したようなファイル配信処理を繰り返す。
【0046】
<効果>
本実施形態によれば、ネットワーク2において同一のグループが偏らないようにノードをグループ分けするという簡便な方法により、同一のファイルをキャッシュするノードをネットワーク上に分散させ、いずれのノードからもある程度近接した位置に各グループに属するキャッシュサーバが存在するという準最適なキャッシュ配置を実現することができる。このとき、アクセス頻度の高いファイルほど下位のネットワーク2においてキャッシュすれば、要求元により近い位置からファイルを送信することができる。また、
図4に示したように、1つのファイルには複数のグループを示す情報を関連付けておくようにしてもよい。アクセス頻度の高いファイルほど、多くのグループに属するノードでキャッシュすれば、ネットワーク上におけるキャッシュのヒット率を向上させることができる。
【0047】
<キャッシュ対象更新処理>
また、上述したネットワークシステムにおいて、ファイルに対するキャッシュの優先度を決定し、ファイルに関連付けられたグループを示す情報(キャッシュすべきファイルの一覧)を動的に変更するようにしてもよい。キャッシュの優先度は、配信サーバ3の頻度算出部342が算出する各ファイルへのアクセス頻度に基づき決定する。配信サーバ3は、ファイルに対するアクセスの頻度を算出し、キャッシュ対象のファイルを決定する、本発明に係る「アクセス管理装置」の一例である。なお、配信サーバ3とは別に、いずれかのネットワーク2にアクセス管理装置を設けてもよい。
【0048】
図8は、キャッシュ対象のファイルを変更するキャッシュ対象更新処理の一例を示す処理フロー図である。例えば、ネットワークシステムは、
図7に示したファイル配信処理に加え、
図8に示すような処理を行うようにしてもよい。
【0049】
まず、中継ノードは、要求に応じてキャッシュファイルを送信した回数をファイルごとに計数しておき、当該回数を所定のタイミングで配信サーバ3へ送信する(
図8:S21)。一方、配信サーバ3は、各中継ノードからファイルの送信回数を受信し、ファイルごとのアクセス数を記憶する(S22)。本ステップでは、アクセス数を集計するためのアクセスログを受信するようにしてもよい。また、例えば配信サーバ3は、
図7のS7においてファイルを送信する場合、さらに当該ファイルへのアクセスログを記憶装置32に書
き出す(S23)。
【0050】
そして、配信サーバ3は、所定のタイミングで所定期間における各ファイルへのアクセス回数(すなわち、アクセスの頻度)を算出し(図示せず)、頻度の高いファイルほどキャッシュの優先度が高いものとしてより多くのグループにキャッシュさせる。すなわち、ファイルに対しより多くのグループを示す情報を関連付けるようにする。具体的には、まず、頻度算出部342は、キャッシュ対象を更新するタイミングであるか判断する(S24)。例えば、予め定められた動作時刻が到来した場合や、前回の処理から所定期間が経過した場合等の条件を満たした場合に、キャッシュ対象を更新するタイミグであると判断するものとする。キャッシュ対象を更新するタイミングでないと判断された場合、配信サーバ3は特に処理を行わない。一方、キャッシュ対象を更新するタイミングであると判断された場合(S24:Yes)、頻度算出部342は、ファイルごとのアクセス頻度を算出し、キャッシュ対象を決定する(S25)。
【0051】
図9は、所定期間におけるファイルへのアクセス数に基づく順位と、当該ファイルに関連付けて割り当てられるグループを示すタグの一例を示す図である。配信サーバ3は、当該配信サーバ3が要求に応じて送信したファイルについてのアクセスログと、中継ノードがキャッシュを送信した旨のアクセスログを所定期間分集計し、
図9に示すようなファイルごとの統計データを生成する。
図9に示す表は、「順位」、「階層」、「グループ数」、及び「タグ」の項目を有する。「順位」のフィールドには、所定期間におけるファイルへのアクセス頻度に基づいて定まる順位の範囲が記録されている。
図8のS25においては、所定期間における順位が決定される。「階層」のフィールドには、各順位のファイルをキャッシュする階層が示されている。「グループ数」のフィールドには、各順位のファイをキャッシュするグループの数が示されている。「タグ」のフィールドには、各順位のファイルをキャッシュするグループを示す情報が上述したタグの形式で記録されている。
【0052】
また、設定変更部343は、アクセス頻度に応じて、各ファイルをキャッシュするグループを決定する(
図8:S25)。本ステップでは、各ファイルに対しキャッシュするグループを割り当てる。まず、所定期間のアクセス数に基づいて、
図9に示す人気の程度を決定する。例えばノードを3階層で12のグループに分ける場合、人気の程度を13段階に分類する。また、各階層において、最も人気の高い程度に属するファイルを当該階層に割り当てられた4つのグループすべてにおいてキャッシュさせ、2番目に人気の高い程度に属するファイルを3つのグループにおいてキャッシュさせ、3番目に人気の高い程度に属するファイルを2つのグループにおいてキャッシュさせ、4番目に人気の高い程度に属するファイルを1つのグループにおいてキャッシュさせる。なお、最も人気の低い程度に属するファイルはいずれのグループにおいてもキャッシュさせないものとする。
【0053】
このように、人気の程度に応じて当該ファイルをキャッシュするノードのグループ数が決定され、その後、同数のグループが割り当てられたファイルに対し循環的にグループの組合せを割り当てる。例えば、
図9の順位21〜100のレコードの「タグ」のフィールドには、3つのグループの組み合わせを循環的に割り当てることにより決定されたタグが記録されている。S25においては、直近の所定期間における各ファイルへのアクセス頻度に基づいて、ファイルに関連付けられるタグが更新される。
【0054】
そして、設定変更部343は、各ファイルをキャッシュの対象とするグループを示すリストを、各ノードへ配信する(
図8:S26)。本ステップでは、例えば
図9の「ファイル名」及び「タグ」の列に示す情報が、各ノードへブロードキャストされる。中継ノードは、リストを受信すると、当該リストを記憶装置42に保持させると共に以降は当該リストに基づいて自ノードがキャッシュする対象のファイルを決定する(S27)。このようなリストのグループを示す情報に基づいて、各ノードは、ファイルを要求する先を、同一
の階層とすべきか、又は上下いずれの階層とすべきか容易に判断することができる。また、更新されたリストの内容に応じて、例えばキャッシュ削除部445が不要なキャッシュを削除するようにしてもよい。
【0055】
<効果>
キャッシュ対象更新処理によれば、配信サーバから新たに配信されるファイルについてもその後のアクセス数に応じてキャッシュさせることができると共に、既存のファイルに対するアクセス頻度の傾向が変化した場合にも、傾向の変化に追従してネットワークにおけるキャッシュのヒット率を維持及び向上させられるよう設定を変更できる。なお、アクセス頻度の算出やキャッシュすべきファイルのリストの更新は、配信サーバ3とは異なるネットワーク上の管理装置が行うようにしてもよい。また、各中継ノードが記憶するファイルへのアクセスログは、ネットワーク上の所定の装置に保持させ、配信サーバ3又は上記管理装置が各中継ノードにおけるアクセスログを読み出せるようにしてもよい。
【0056】
<キャッシュ対象のファイル及びファイルをキャッシュするノードの数>
本実施形態では、アクセス頻度が高いファイルをキャッシュ対象とし、アクセス頻度が高いほどネットワーク内における多くのノードでキャッシュする。ファイルをキャッシュするノードの数は、ユーザが任意に設定することができる。なお、ファイルをキャッシュするノードの数は、ネットワークに接続された、各グループに属するノードの数と、ファイルに対応づけて設定される、当該ファイルを保持するグループの数とによって決まる。ファイルをキャッシュするノードの数は、例えば遺伝的アルゴリズム等を利用して求めた準最適なキャッシュ配置に従って定めるようにしてもよい。
【0057】
図10は、1つのメッシュ型ネットワーク上にキャッシュされるファイル及びその数を示すグラフである。
図10の横軸は、アクセス頻度の降順にソートしたファイルの通し番号を表し、縦軸は、各ファイルをキャッシュするノード数を表している。ファイルに付すタグの設定は、遺伝的アルゴリズムを利用して求められるキャッシュ配置においてノード上にキャッシュされるファイルの種類及び同一のファイルをキャッシュするノードの数に従って決定してもよい。
図10の破線は、メッシュ型のネットワークにおいて、遺伝的アルゴリズム(GA:Genetic Algorithm)によって求められた準最適なキャッシュ配置に
おけるファイルと当該ファイルがネットワーク上にキャッシュされる数との関係を表している。実線は、遺伝的アルゴリズムで求めたネットワーク中のキャッシュファイル数を、本実施形態に係るネットワークシステムで近似する例である。本実施形態では、上述したタグによって表される、各ファイルに割り当てるグループを変更することにより、当該ファイルをキャッシュするネットワーク上のノード数を調整することができる。また、グループの種類の数を4よりも大きくすることで、準最適な配置に対する近似の精度を向上させることができる。本実施形態に係る階層的に接続されたネットワークにおいても、所定の頻度でアクセスされる複数のファイルを定義し、何らかのアルゴリズムで求めた準最適なキャッシュ配置を近似した値となるように、上記ファイルに割り当てるグループ及びネットワーク上のノードに割り当てるグループの少なくともいずれかを決定するようにしてもよい。
【0058】
例えば、
図9に示したように、アクセス頻度を基準として20位以内、21〜100位、101〜250位、・・・といった人気の程度毎にファイルをキャッシュするグループの数及び階層が定める。そして、人気の程度に対して対応付けられたタグを、上位から順に循環的に割り当てる。タグは、当該ファイルを保持すべき階層及びグループを示す12ビットのビットベクトルによって記述されている。また、ビットベクトルは、各階層におけるグループを表す桁を、所定の順序で連結して形成されている。
図9では、左の4ビットが第1の階層に割り当てられた4つのグループにおいてファイルがキャッシュされるか否かを表す。同様に、中央の4ビットは、第2の階層に割り当てられた4つのグループに
おいてファイルがキャッシュされるか否かを表す。そして、右の4ビットは、第3の階層に割り当てられた4つのグループにおいてファイルがキャッシュされるか否かを表す。このように、ファイルは、当該ファイルをキャッシュすべきゼロ以上のグループ及び当該グループが属する階層を表す情報が対応付けられる。
【0059】
<CATVシステム>
図11は、実施形態に係るネットワークシステムをCATVのネットワークに適用する場合の、宅内の装置構成の一例を示すブロック図である。
図11のCATV視聴システム6は、保安器61と、ブースター62と、分配器63と、STB(Set-Top Box)64と
、録画機器65と、受像機66と、モデム67と、キャッシュサーバ68と、ルータ69と、IP−VoD STB70と、PC71とを含む。保安器61は、引込線と宅内のシステムとの間に設けられ、落雷等による異常電流から宅内の機器を保護するための装置である。ブースター62は、保安器61と同軸ケーブルで接続され、伝送される包装信号を増幅する。分配器63は、ブースター62と同軸ケーブルで接続され、例えば複数のSTB64へ信号線を分配する。STB64は、分配器63と同軸ケーブルで接続され、放送信号を受信して映像を出力する。録画機器65は、STB64とLANケーブル等で接続され、放送を録画する。また、受像機66は、録画機器65とHDMI(登録商標,High-Definition Multimedia Interface)ケーブル等で接続され、放送を表示する。また、モデム67は、保安器61と同軸ケーブル等で接続され、データ通信を行う。キャッシュサーバ68は、例えば
図5に示したノードのようなコンピュータであり、モデム67とLANケーブル等で接続される。また、複数の家庭に設置されたキャッシュサーバ68は、割り当てられたグループに基づき、VoD(Video On Demand)コンテンツやVRコンテン
ツ等を分散キャッシュする。また、ルータ69は、キャッシュサーバ68とLANケーブル等で接続され、家庭内のネットワークへデータ通信を中継する。また、IP−VoD STB70は、ルータ69と例えばLANケーブルで接続され、インターネット経由でのデータ通信により配信される動画を再生する。なお、IP−VoD STB70は、STB64と受像機66とを例えばHDMIケーブルを介して接続し、既存のSTB64からの出力を受像機66へスルーアウトさせるようにしてもよい。また、PC71は、ルータと接続され、データ通信を行う。なお、送受信されるファイルは、例えばDRM(Digital Rights Management)により暗号化されており、STB64、IP−VoD STB7
0等が適宜復号して再生する。
【0060】
このように、CATV視聴システムにキャッシュサーバ68を追加し、本実施形態に係るノードとして機能させることにより、ユーザの宅内設備間でキャッシュを送受信するネットワークシステムが実現できる。
図11のようなシステムにおいては、アクセス頻度の高いファイルをキャッシュ対象とするだけでなく、いわゆる見逃し配信の需要が一般的に高い公開から所定期間内のコンテンツについて予めキャッシュ対象としておくようにしてもよい。また、キャッシュサーバ68は、ルータ69やSTB64、IP−VoD STB70等と一体の装置にしてもよい。
【0061】
<変形例2>
図12は、ISPが提供するネットワークと併存させて、近隣のノード同士を接続する地域のネットワークを形成する例を示す図である。例えば端末間無線通信や、建物内又は建物間を接続するLAN又は電力線通信(PLC:Power Line Communications)等を利
用して、比較的近隣に存在するノードによるメッシュネットワークを形成する。
図12の例では、ISP1又はISP2が提供するネットワーク2に接続されたノード4が、ネットワーク2とは別に、比較的近い距離において直接リンクすることにより地域のCDN7(破線のリンク)を形成している。地域のCDN7は、ISPのネットワーク2と同一階層の他のネットワークであり、
図12のノード4は、同一階層の複数のネットワークに接続されているといえる。そして、ノード4は、同一階層においてキャッシュされているフ
ァイルを要求する場合に、ISPのネットワーク2と、地域のCDN7とのいずれかを利用することができる。例えば、各ノード4のファイル要求部441及び中継部442は、ネットワークの帯域の利用状態(混雑状況)に応じて、ISPのネットワーク2を利用するか、本変形例に係る地域のCDN7を利用するかを決定するようにしてもよい。
【0062】
本変形例によれば、異なるISPを利用しているユーザ同士でキャッシュを利用し合うことができる。特に、経路長の短い近隣のノード同士を直接リンクさせることにより、実効速度を向上させることができる。
【0063】
上記の実施形態及び変形例に記載した事項は、適宜組み合わせて実施することができる。
【0064】
<その他>
本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範疇に属する。当該プログラムが記録された記録媒体については、コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、上述の処理が可能となる。
【0065】
ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやROM等がある。