(57)【要約】【課題】簡易な構成により、ファイルへのアクセスの集中を避け、且つ全体の通信量を削減する。【解決手段】ネットワークシステムは、送受信されるファイルを一時的に保持するノード装置を複数含み、ノード装置は階層的に接続されるネットワークのいずれかに属する。また、ノード装置は、当該ノード装置が保持すべきファイルを特定するためのグループのいずれかに属し、ファイルは、ゼロ以上のグループを示す情報と関連付けられ、グループを示す情報は、ファイルが保持される階層及びグループを特定するための情報を含み、ノード装置は、当該ノード装置が属するグループを示す情報と関連付けられたファイルを受信した場合は、当該ファイルをキャッシュファイルとして一時的に保持し、要求元のノード装置が要求するファイルに対応するキャッシュファイルを保持している場合に、当該キャッシュファイルを要求元のノード装置に対して送信する。【選択図】図２
2018200581.tif 000002
【特許請求の範囲】
【請求項１】
送受信されるファイルを一時的に保持するノード装置を複数含み、前記ノード装置は階層的に接続されるネットワークのいずれかに属するネットワークシステムであって、
前記ノード装置は、当該ノード装置が保持すべきファイルを特定するためのグループであって、階層に対して割り当てられた複数のグループのいずれかに属し、
前記ファイルは、ゼロ以上の前記グループを示す情報と関連付けられ、
前記グループを示す情報は、前記ファイルが保持される前記階層及び前記グループを特定するための情報を含み、
前記ノード装置は、
当該ノード装置が属する前記グループを示す情報と関連付けられた前記ファイルを受信した場合は、当該ファイルをキャッシュファイルとして一時的に保持するキャッシュ保持部と、
要求元のノード装置が要求する前記ファイルに対応する前記キャッシュファイルを保持している場合に、当該キャッシュファイルを前記要求元のノード装置に対して送信するキャッシュ送信部と、
前記要求元のノード装置が要求する前記ファイルに対応する前記キャッシュファイルを保持していない場合に、前記グループを示す情報に基づき、同一の階層又は他の階層に属する他のノード装置に前記ファイルを要求する中継部と、
を含むネットワークシステム。
【請求項２】
前記ファイルに対するアクセスの頻度を算出するアクセス管理装置をさらに含み、
前記アクセス管理装置は、算出した前記頻度が高いファイルは前記頻度が低いファイルよりも下位の階層において保持されるように、前記ファイルに関連付ける前記グループを示す情報を変更する
請求項１に記載のネットワークシステム。
【請求項３】
前記アクセス管理装置は、前記頻度が高いファイルは前記頻度が低いファイルよりも同一の階層においてより多くの前記グループに属する前記ノード装置によって保持されるように、前記ファイルに関連付ける前記グループを示す情報を変更する
請求項２に記載のネットワークシステム。
【請求項４】
複数の前記ノード装置には、ネットワークトポロジ上、偏りが小さくなるように前記グループが割り当てられる
請求項１から３のいずれか一項に記載のネットワークシステム。
【請求項５】
少なくとも一部の前記ノード装置は、同一の階層に属する複数のネットワークに接続され、前記中継部は、同一の階層に属する他のノード装置に前記ファイルを要求する場合は、前記同一の階層に属する複数のネットワークのいずれかに要求する
請求項１から４のいずれか一項に記載のネットワークシステム。
【請求項６】
階層的に接続されるネットワークのいずれかに属し、送受信されるファイルを一時的に保持するノード装置であって、
自身が保持すべきファイルを特定するためのグループであって、階層に対して割り当てられた複数のグループのいずれかに属し、
前記ファイルは、ゼロ以上の前記グループを示す情報と関連付けられ、
前記グループを示す情報は、前記ファイルが保持される前記階層及び前記グループを特定するための情報を含み、
自身が属する前記グループを示す情報と関連付けられた前記ファイルを受信した場合は、当該ファイルをキャッシュファイルとして一時的に保持するキャッシュ保持部と、
要求元のノード装置が要求する前記ファイルに対応する前記キャッシュファイルを保持している場合に、当該キャッシュファイルを前記要求元のノード装置に対して送信するキャッシュ送信部と、
前記要求元のノード装置が要求する前記ファイルに対応する前記キャッシュファイルを保持していない場合に、前記グループを示す情報に基づき、同一の階層又は他の階層に属する他のノード装置に前記ファイルを要求する中継部と、
を含むノード装置。
【請求項７】
階層的に接続されるネットワークのいずれかに属し、送受信されるファイルを一時的に保持するノード装置が実行するキャッシュ方法であって、
前記ノード装置は、自身が保持すべきファイルを特定するためのグループであって、階層に対して割り当てられた複数のグループのいずれかに属し、
前記ファイルは、ゼロ以上の前記グループを示す情報と関連付けられ、
前記グループを示す情報は、前記ファイルが保持される前記階層及び前記グループを特定するための情報を含み、
自身が属する前記グループを示す情報と関連付けられた前記ファイルを受信した場合は、当該ファイルをキャッシュファイルとして一時的に保持するステップと、
要求元のノード装置が要求する前記ファイルに対応する前記キャッシュファイルを保持している場合に、当該キャッシュファイルを前記要求元のノード装置に対して送信するステップと、
前記要求元のノード装置が要求する前記ファイルに対応する前記キャッシュファイルを保持していない場合に、前記グループを示す情報に基づき、同一の階層又は他の階層に属する他のノード装置に前記ファイルを要求するステップと、
を含むキャッシュ方法。
【請求項８】
階層的に接続されるネットワークのいずれかに属し、送受信されるファイルを一時的に保持するノード装置によって実行されるプログラムであって、
前記ノード装置は、自身が保持すべきファイルを特定するためのグループであって、階層に対して割り当てられた複数のグループのいずれかに属し、
前記ファイルは、ゼロ以上の前記グループを示す情報と関連付けられ、
前記グループを示す情報は、前記ファイルが保持される前記階層及び前記グループを特定するための情報を含み、
自身が属する前記グループを示す情報と関連付けられた前記ファイルを受信した場合は、当該ファイルをキャッシュファイルとして一時的に保持するステップと、
要求元のノード装置が要求する前記ファイルに対応する前記キャッシュファイルを保持している場合に、当該キャッシュファイルを前記要求元のノード装置に対して送信するステップと、
前記要求元のノード装置が要求する前記ファイルに対応する前記キャッシュファイルを保持していない場合に、前記グループを示す情報に基づき、同一の階層又は他の階層に属する他のノード装置に前記ファイルを要求するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム、キャッシュ方法及びキャッシュプログラムに関する。
【背景技術】
【０００２】
従来、ネットワークに接続されたコンピュータ間で伝送されるファイルを中間的にキャッシュするための様々な技術が提案されている。オリジナルファイルの代わりにキャッシュファイルをダウンロードすることで、オリジナルファイルへのアクセスの集中を避けると共に、受信側においてダウンロードを完了するまでの時間を短縮し得る。
【０００３】
例えば、上位キャッシュサーバは、下位キャッシュサーバにおいて削除されるオブジェクトの参照回数の通知を受け、削除されるオブジェクトの累積参照回数にもとづいて、そのオブジェクトをキャッシュするかどうかを判断するという技術が提案されている（例えば、特許文献１）。
【０００４】
また、キャッシュ制御装置は、分散キャッシュシステムの外部から受信するリクエストについて、キャッシュミスに起因して分散キャッシュシステム内で転送されるリクエストの伝搬量を推定し、推定されるリクエストの伝搬量に基づいて、リクエストに対応するデータを格納および配信するためのトータルコストを推定し、推定されるコストを小さくするようにキャッシュメモリにデータが格納される時間（ＴＴＬ）の初期値を更新するという技術も提案されている（例えば、特許文献２）。
【０００５】
また、コンテンツ記憶ノード（ＣＳＮ）が、局所的に人気のあるコンテンツ・オブジェクトを記憶するためのローカル空間と、より人気の低いコンテンツ・オブジェクトの一部を記憶するための連合空間との間で割り振られる記憶空間を有し、ローカル空間が、有用性レベルの比較的高い利用可能なコンテンツ・オブジェクトを記憶するように適合され、連合空間が、他のＣＳＮの前記連合空間と協働して、有用性レベルの比較的低い利用可能なコンテンツ・オブジェクトの少なくとも一部を記憶するように適合され、コンテンツ・オブジェクトが、有用性レベルの差に応答してローカル空間と連合空間との間で移行されるという技術も提案されている（例えば、特許文献３）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２６４９５６号公報
【特許文献２】特開２０１６−４８４９８号公報
【特許文献３】特表２０１２−５１８８４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来、ネットワークシステムを構成する複数のノードに分散してファイルをキャッシュさせる場合、アクセスの集中を避け、全体の通信量を低減できるファイル配置を決定するためには、一般的に処理に時間がかかるという問題があった。
【０００８】
本発明は、簡易な構成により、ファイルへのアクセスの集中を避け、且つ全体の通信量を削減できるネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るネットワークシステムは、送受信されるファイルを一時的に保持したり、ファイルの要求元になったりするノード装置を複数含み、ノード装置は階層的に接続されるネットワークのいずれかに属する。また、ノード装置は、当該ノード装置が保持すべきファイルを特定するためのグループであって、階層に対して割り当てられた複数のグループのいずれかに属し、ファイルは、ゼロ以上のグループを示す情報と関連付けられ、グループを示す情報は、ファイルが保持される階層及びグループを特定するための情報を含み、ノード装置は、当該ノード装置が属するグループを示す情報と関連付けられたファイルを受信した場合は、当該ファイルをキャッシュファイルとして一時的に保持するキャッシュ保持部と、要求元のノード装置が要求するファイルに対応するキャッシュファイルを保持している場合に、当該キャッシュファイルを要求元のノード装置に対して送信するキャッシュ送信部と、要求元のノード装置が要求するファイルに対応するキャッシュファイルを保持していない場合に、グループを示す情報に基づき、同一の階層又は他の階層に属する他のノードにファイルを要求する中継部とを含む。
【００１０】
このようにすれば、いずれかのグループに属するノード装置をネットワーク上に分散させることにより、分散協調システムを実現することができる。すなわち、ファイルと関連付けられるグループを示す情報は、ファイルが保持される階層及びグループを特定するための情報を含むため、キャッシュ保持部は、自身が保持すべきファイルを容易に特定することができる。また、中継部は、グループを示す情報に基づいて、ファイルを要求する先を、同一の階層とすべきか、又は上下いずれの階層とすべきか容易に判断することができる。すなわち、簡易な構成により、オリジナルファイルへのアクセスの集中を避け、且つ全体の通信量を削減できるようになる。
【００１１】
また、ファイルに対するアクセスの頻度を算出するアクセス管理装置をさらに含み、アクセス管理装置は、算出した頻度が高いファイルは頻度が低いファイルよりも下位の階層において保持されるように、ファイルに関連付けるグループを示す情報を変更するようにしてもよい。このようにすれば、送受信される可能性の高いファイルを、ネットワーク上においてファイルの要求元に近い場所にキャッシュすることができる。したがって、オリジナルファイルへのアクセスの集中を避け、且つ全体の通信量を削減できるようになる。
【００１２】
また、アクセス管理装置は、頻度が高いファイルは頻度が低いファイルよりも同一の階層においてより多くのグループに属するノード装置によって保持されるように、ファイルに関連付けるグループを示す情報を変更するようにしてもよい。このような構成によっても、送受信される可能性の高いファイルを、ネットワーク上においてファイルの要求元に近い場所にキャッシュすることができる。
【００１３】
また、複数のノード装置には、ネットワークトポロジ上、偏りが小さくなるようにグループが割り当てられるようにしてもよい。このような構成によっても、送受信される可能性の高いファイルを、ネットワーク上においてファイルの要求元に近い場所にキャッシュすることができる。
【００１４】
また、少なくとも一部のノード装置は、同一の階層に属する複数のネットワークに接続され、中継部は、同一の階層に属する他のノード装置にファイルを要求する場合は、同一の階層に属する複数のネットワークのいずれかに要求するようにしてもよい。例えば、ＩＳＰが提供するネットワークとは別に、端末間通信又はＰＬＣを利用するネットワークに接続するようにしてもよい。このようにすれば、通信帯域の状況等に応じて利用するネットワークを変更することができ、ネットワークにかかる負荷を軽減すると共にファイルの送受信の実効速度を向上させることができる。
【００１５】
また、本発明に係るノード装置は、階層的に接続されるネットワークのいずれかに属し
、送受信されるファイルを一時的に保持する。そして、自身が保持すべきファイルを特定するためのグループであって、階層に対して割り当てられた複数のグループのいずれかに属し、ファイルは、ゼロ以上のグループを示す情報と関連付けられ、グループを示す情報は、ファイルが保持される階層及びグループを特定するための情報を含み、自身が属するグループを示す情報と関連付けられたファイルを受信した場合は、当該ファイルをキャッシュファイルとして一時的に保持するキャッシュ保持部と、要求元のノード装置が要求するファイルに対応するキャッシュファイルを保持している場合に、当該キャッシュファイルを要求元のノード装置に対して送信するキャッシュ送信部と、要求元のノード装置が要求するファイルに対応するキャッシュファイルを保持していない場合に、グループを示す情報に基づき、同一の階層又は他の階層に属する他のノードにファイルを要求する中継部とを含む。
【００１６】
いずれかのグループに属する、上述のようなノード装置をネットワーク上に分散させることにより、分散協調システムを実現することができる。すなわち、ファイルと関連付けられるグループを示す情報は、ファイルが保持される階層及びグループを特定するための情報を含むため、キャッシュ保持部は、自身が保持すべきファイルを容易に特定することができる。また、中継部は、グループを示す情報に基づいて、ファイルを要求する先を、同一の階層とすべきか、又は上下いずれの階層とすべきか容易に判断することができる。すなわち、簡易な構成により、オリジナルファイルへのアクセスの集中を避け、且つ全体の通信量を削減できるようになる。
【００１７】
なお、課題を解決するための手段に記載の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。また、課題を解決するための手段の内容は、コンピュータ等の装置若しくは複数の装置を含むシステム、コンピュータが実行する方法、又はコンピュータに実行させるプログラムとして提供することができる。なお、プログラムを保持する記録媒体を提供するようにしてもよい。
【発明の効果】
【００１８】
簡易な構成により、ファイルへのアクセスの集中を避け、且つ全体の通信量を削減できるネットワークシステムを提供することができるようになる。
【図面の簡単な説明】
【００１９】
【図１】ネットワークシステムの構成の一例を示す図である。
【図２】ティア３に相当する１つのネットワークに接続されるコンピュータの一例を示す図である。
【図３】複数の階層を形成するネットワークに接続されたノードと、グループの割り当ての一例を説明するための図である。
【図４】ファイルに付される、グループを示す情報を説明するための図である。
【図５】ノードの構成の一例を示すブロック図である。
【図６】配信サーバの構成の一例を示すブロック図である。
【図７】ネットワークシステムが行うファイル配信処理の一例を示す処理フロー図である。
【図８】キャッシュ対象のファイルを変更するキャッシュ対象更新処理の一例を示す処理フロー図である。
【図９】所定期間におけるファイルへのアクセス数に基づく順位と、当該ファイルに関連付けて割り当てられるグループを示すタグの一例を示す図である。
【図１０】１つのメッシュ型ネットワーク上にキャッシュされるファイル及びその数を示すグラフである。
【図１１】ネットワークシステムをＣＡＴＶのネットワークに適用する場合の、宅内の装置構成の一例を示すブロック図である。
【図１２】ＩＳＰが提供するネットワークと併存させて、近隣のノード同士を接続する地域のネットワークを形成する例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明を実施するための形態について説明する。なお、実施形態の構成は例示であり、本発明は実施形態に示す構成に限定されない。
【００２１】
＜ネットワーク構成＞
図１は、実施形態に係るネットワークシステム１の構成の一例を示す図である。実施形態に係るネットワークシステム１は、階層状に接続された複数のネットワーク２を含む。ネットワーク２は、例えばインターネットサービスプロバイダ（ＩＳＰ：Internet Service Provider）によって管理される自律システム（ＡＳ：Autonomous System）であり、上位の階層からティア（Ｔｉｅｒ）１、ティア２、ティア３と呼ぶ。ネットワーク２には、電気通信回線を介して通信可能に接続された複数のコンピュータ（図示せず）が接続される。コンピュータは、自身が記憶する様々な形式の電子データ（「ファイル」とも呼ぶ）を、自身が接続されたネットワーク２や、上位の階層に相当するネットワーク２を介して、他のコンピュータとの間で送受信することができる。
【００２２】
１つのネットワーク２に接続された２つのコンピュータ間で通信を行う場合、例えばネットワーク２を制御するＩＳＰは、自己の管理するインフラストラクチャによって通信を完結させることができる。また、同程度の階層に属するネットワーク２の間では、ネットワーク２に接続されたコンピュータ間のトラフィックを相互に転送するピアリングが行われる場合がある。また、上下の階層に属するネットワーク２の間では、下位のネットワーク２に接続されたコンピュータのトラフィックを上位のネットワーク２を介してさらに他のネットワーク２に転送するトランジットが行われることがある。このとき、下位のネットワーク２を管理するＩＳＰには、上位のネットワーク２を利用するための料金的なコストが発生する。したがって、各ネットワーク２においては上位のネットワーク２への通信が低減されることが望ましい。本実施形態では、いずれかのネットワーク２に接続されたコンテンツプロバイダのサーバ（「配信サーバ」とも呼ぶ）３からファイルを受信する場合に、要求元のコンピュータに近い場所にファイルがキャッシュされている確率を高め、特にネットワーク２間のトラフィックを低減させる。また、ＩＳＰが提供するネットワークの下で、ユーザは例えば建物内にＬＡＮ（Local Area Network）を構築することがある。一般的に、ＩＳＰが提供するネットワークとＬＡＮとでは、通信速度が異なる。何らかのデータを送受信する場合は、ホップ数や通信速度によって定義される通信コストが低く抑えられることが好ましい。本実施形態では、ＩＳＰやユーザによって管理される単位が異なるものを別のネットワークと呼び、接続されたネットワークをティア１から順に階層と呼ぶものとする。なお、上下の階層に属するネットワーク間におけるピアリングが含まれてもよい。
【００２３】
図２は、ティア３に相当する１つのネットワーク２に接続されるコンピュータ４の一例を示す図である。本実施形態では、一戸建てや集合住宅等の家庭に設置されるＰＣ（Personal Computer）にキャッシュを保持する機能を付加したり、ＣＡＴＶ（Cable Television）の視聴装置と組み合わせてキャッシュサーバを設置することにより、ネットワーク上
にキャッシュを保持するシステムを実現する。本実施形態では、ネットワーク２に接続されたコンピュータ４を、「ノード」又は「ノード装置」とも呼ぶ。各ノードは、送受信するファイルをキャッシュファイルとして一時的に記憶（キャッシュ）し、同一のファイルに対する要求に対しキャッシュファイルを送信する。
【００２４】
また、本実施形態では、複数のノードが同一のファイルを分散してキャッシュする。そして、ファイルのダウンロードを要求するノードは、例えば当該ファイルをキャッシュす
るノードのうち、自ノードからのホップ数が最も小さいノードからファイルを受信する。具体的には、各ノードが保持すべきファイルを特定するためのグループを予め定義しておく。換言すれば、各ノードは、予め定められた複数のグループのいずれかに属する。図２の例では、各ノードに付した円内のハッチングが、当該ノードの属するグループを表している。また、本実施形態では、複数の階層を有するネットワーク２に対し、階層ごとに異なる複数のグループを割り当てる。そして、あるグループがいずれの階層に割り当てられたものかわかるようにする。なお、グループの種類は４つには限定されず、１つのグループに属するノードの数も特に限定されない。
【００２５】
図３は、複数の階層を形成するネットワーク２に接続されたノードと、グループの割り当ての一例を説明するための図である。各ネットワーク２は、メッシュ型、フルメッシュ型、リング型、バス型等のネットワークトポロジで接続された複数のノードを含む。また、各ノードは、自ノードが属する階層に割り当てられたグループのいずれかと対応付けられている。図３の例では、各階層に４つのグループが割り当てられている。
【００２６】
また、ノードへのグループの割り当ては、ネットワーク２において同一のグループが偏らないように行われる。すなわち、新たなノードをネットワーク２に接続する場合は、例えば複数のグループについて、すでにネットワーク２上に存在する他のノードのうち、ホップ数が小さい又は回線の経路長が短いものに付されたグループから順に除外し、残ったグループを新たなノードに割り当てる。また、メッシュ型やリング型のネットワークにおいては、いわゆる四色定理を応用し、隣接するノードが同じグループに属さないように、グループを割り当てるようにしてもよい。
【００２７】
一方、各ファイルは、当該ファイルをキャッシュすべきゼロ以上のグループを示す情報を有する。そして、各ノードは、自身が属するグループを示す情報を有するファイルを送受信（中継を含む）する際、当該ファイルをキャッシュする。
【００２８】
図４は、ファイルに付される、グループを示す情報を説明するための図である。図４のファイル５は、コンピュータによって生成、読み出し、書き込み、記憶等される様々な電子データであり、動画や文書、アプリケーションの実行ファイル等である。特に、高解像度の動画コンテンツや３６０°の情報を含むＶＲ（Virtual Reality）コンテンツ等は、
１ファイル当たりの容量が大きく内容が更新されることが少ない。したがって、いわゆるＣＤＮ（Contents Delivery Network）において、アクセス頻度の高いコンテンツをキャ
ッシュ対象とすれば、キャッシュによるトラフィックの削減効果が大きくなると期待できる。また、ファイル５には、ゼロ以上の上述したグループを示す情報が関連付けられている。図３の例では、１つのファイル５に対し、吹出し内に示すようにハッチングのパターンで表したグループの組合せが関連付けられる。図４に示すグループの組合せは、３つの階層のいずれかに対し当てられたグループを０〜４個有する。
【００２９】
ファイルに対するグループの対応付けは、各ノードにおいて、例えばグループの数だけ桁数を有するビット列によって表されるタグを、ファイルの識別情報に関連付けて保持しておくことにより設定される。また、このようなファイルのリストは、各ノードにおいてデータベースのテーブルに記憶させるようにしてもよい。また、このような関連付けは、例えばネットワーク２上の配信サーバ３等の管理装置が一元的に管理し、例えばキャッシュすべきファイルのリストをネットワーク上のノードにブロードキャストして各ノードの記憶装置に保持するようにしてもよいし、ネットワーク上の管理装置から各ノードが任意のタイミングで読み出せるようにしてもよい。
【００３０】
なお、３つの階層に４つのグループが存在する場合、４桁のビット列によって（２4）3種類のタグを生成することができる。本実施形態では、あるファイルはいずれかの階層に
おいてキャッシュするものとし、（２4）×３種類のタグを利用する。また、本実施形態
では、頻繁にアクセスされるファイルほど、下位のネットワーク２においてキャッシュする。また、頻繁にアクセスされるファイルほど、多くのグループでキャッシュするようにしてもよい。また、すべてのファイルにグループを関連付ける必要はなく、タグが「００００  ００００  ００００」のファイルは、いずれの階層においてもキャッシュされないファイルを示す。
【００３１】
そして、各ノードは、自身が属するグループを示す情報を有するファイルを受信した場合、当該ファイルをキャッシュすると共に、他のノードからの要求に対して自身がキャッシュしている情報を出力する。
【００３２】
＜ノードの構成＞
図５は、ノードの構成の一例を示すブロック図である。ノード４は、一般的なコンピュータであり、通信Ｉ／Ｆ４１と、記憶装置４２と、入出力装置４３と、プロセッサ４４と、バス４５とを備えている。
【００３３】
通信Ｉ／Ｆ４１は、例えばネットワークカードであり、所定のプロトコルに基づき、図１〜３に示したリンクを介して他のコンピュータと通信を行う。例えば、ノード間においてファイル５を送受信する。
【００３４】
記憶装置４２は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等の主記憶装置及びＨＤＤ（Hard-disk Drive）やＳＳＤ（Solid State Drive）、フラッシュメモリ等の補助記憶装置（二次記憶装置）である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、送受信されるファイルのキャッシュ、当該ノード４が属するグループを示す情報等を記憶する。
【００３５】
入出力装置４３は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。例えば、ユーザは、入出力装置４３を介して配信サーバに対しファイルの送信を要求したり、受信したファイルを読み出して表示させたりする。
【００３６】
プロセッサ４４は、ＣＰＵ（Central Processing Unit）等の演算処理装置であり、ア
プリケーション（プログラム、ソフトウェア等とも呼ぶ）を実行することにより本実施の形態に係る各処理を行う。図３の例では、プロセッサ４４内に機能ブロックを示している。プロセッサ４４は、例えば、ファイル要求部４４１、中継部４４２、キャッシュ保持部４４３、キャッシュ送信部４４４、キャッシュ削除部４４５の各処理部として機能する。ファイル要求部４４１は、例えばユーザの操作に基づいて、ネットワークを介して接続されたファイル配信サーバに対し、ファイルの送信を要求する。中継部４４２は、他のノードと配信サーバとの経路上に当該ノード４が位置する場合において、他のノードから配信サーバへのファイル送信要求や、他のノードへ送信するファイルを中継する。キャッシュ保持部４４３は、ファイルに関連付けられたグループを示す情報に基づいて、受信したファイルを保持するか否か判断し、記憶装置４２に一時的に保持させる。キャッシュ送信部４４４は、他のノードから配信サーバへのファイルの要求に対し、当該ノード４の記憶装置４２にキャッシュされている場合、キャッシュされているファイルを他のノード装置に送信する。キャッシュ削除部４４５は、所定のルールに基づいて、記憶装置４２に記憶されたキャッシュを削除する。
【００３７】
以上のような構成要素が、バス４５を介して接続されている。
【００３８】
＜配信サーバの構成＞
図６は、配信サーバの構成の一例を示すブロック図である。コンテンツプロバイダ等の配信サーバ３も、一般的なコンピュータであり、通信Ｉ／Ｆ３１と、記憶装置３２と、入出力装置３３と、プロセッサ３４と、バス３５とを備えている。
【００３９】
通信Ｉ／Ｆ３１は、例えばネットワークカードであり、所定のプロトコルに基づき、図１〜３に示したリンクを介して他のコンピュータと通信を行う。例えば、リンクする他のノードとの間でファイル５を送受信する。
【００４０】
記憶装置３２は、ＲＡＭやＲＯＭ等の主記憶装置及びＨＤＤやＳＳＤ、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、配信するオリジナルのファイル等を記憶しているものとする。また、各ファイルに関連づけて、当該ファイルをキャッシュするグループを示す情報を記憶するようにしてもよい。さらに、ファイルに対する送信要求を計数し、所定期間における頻度に基づいて各ファイルをキャッシュするグループの設定を変更するようにしてもよい。
【００４１】
入出力装置３３は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。
【００４２】
プロセッサ３４は、ＣＰＵ等の演算処理装置であり、アプリケーションを実行することにより本実施の形態に係る各処理を行う。図６の例では、プロセッサ３４内に機能ブロックを示している。プロセッサ３４は、例えば、ファイル配信部３４１、頻度算出部３４２、設定変更部３４３の各処理部として機能する。ファイル配信部３４１は、送信の要求を受けたファイルを記憶装置３２から読み出し、要求元のノードに対して送信する。頻度算出部３４２は、ファイルごとにアクセス数を計数し、所定期間内のアクセス頻度を算出する。設定変更部３４３は、アクセス頻度に応じて、各ファイルをキャッシュするグループを示す情報を変更する。設定の変更に伴い、設定変更部３４３は、ネットワーク上のノードに対し、特定のキャッシュファイルの削除を指示する情報を送信するようにしてもよい。
【００４３】
以上のような構成要素が、バス３５を介して接続されている。
【００４４】
＜ファイル配信処理＞
図７は、ネットワークシステムが行うファイル配信処理の一例を示す処理フロー図である。図７の要求元ノードは、図４等に示したいずれかのノードに相当し、図５に示した機能部を備えている。図７の配信サーバは、図１に示した配信サーバ３に相当し、図６に示した機能部を備えている。また、図７の中継ノードは、図１〜図３における要求元ノードと配信サーバ３との間の経路上に存在するノードに相当する。すなわち、２以上の中継ノードを経由する場合もある。図７では、便宜上、１つの中継ノードを示す。
【００４５】
まず、要求元ノードのファイル要求部４４１は、配信サーバが保持するファイルの送信を要求する（図７：Ｓ１）。一方、中継ノードの中継部４４２は、要求を受信し（Ｓ２）、自ノードの記憶装置４２に対応するキャッシュファイルを保持しているか判断する（Ｓ３）。キャッシュを保持している場合（Ｓ３：Ｙｅｓ）、中継ノードのキャッシュ送信部４４４は、キャッシュファイルを要求元ノードに送信する（Ｓ４）。また、中継ノードがキャッシュを保持していない場合（Ｓ３：Ｎｏ）、中継ノードの中継部４４２は、隣接する中継ノード（図示せず）又は配信サーバに要求を中継する（Ｓ５）。なお、中継ノードが複数存在する場合は、同様の処理が繰り返される。また、本実施形態においては、各ノ
ードは、グループを示すタグのビット位置からいずれの階層においてキャッシュされているかわかる。よって、各ノードは要求されたファイルのタグのビット位置に基づいて要求を上位階層のネットワーク又は同一階層のネットワークに転送することができる。そして、配信サーバ３のファイル配信部３４１は、ファイルに対する送信の要求を受信し（Ｓ６）、該当するファイルを記憶装置３２から読み出して送信する（Ｓ７）。一方、中継ノードの中継部４４２は、ファイルを要求元のノード対して中継する（Ｓ８）。そして、Ｓ８の後、又はＳ４において中継ノードがキャッシュを送信した後、要求元ノードのファイル要求部４４１はＳ１において要求したファイルを受信する（Ｓ９）。また、Ｓ８においてファイルを要求元ノードへ送信する場合、中継ノードのキャッシュ保持部４４３は、当該ファイルは自ノードにおいてキャッシュすべき対象であるか判断する（Ｓ１０）。本ステップでは、ファイルに対し、自ノードが属するグループを示す情報が関連付けられているか判断する。ファイルとグループを示す情報との関連付けは、自ノードの記憶装置４２又はネットワーク上の所定の装置が保持するデータベースのテーブルやファイルに記憶させておくことができる。そして、中継したファイルがキャッシュすべき対象であると判断された場合（Ｓ１０：Ｙｅｓ）、中継ノードのキャッシュ保持部４４３は、当該ファイルを記憶装置４２に一時的に保持する。一方、中継したファイルがキャッシュすべき対象でないと判断された場合は、中継ノードはファイルを保持しない。ネットワークシステム１は、要求元ノードからファイルの送信要求に対して、図５に示したようなファイル配信処理を繰り返す。
【００４６】
＜効果＞
本実施形態によれば、ネットワーク２において同一のグループが偏らないようにノードをグループ分けするという簡便な方法により、同一のファイルをキャッシュするノードをネットワーク上に分散させ、いずれのノードからもある程度近接した位置に各グループに属するキャッシュサーバが存在するという準最適なキャッシュ配置を実現することができる。このとき、アクセス頻度の高いファイルほど下位のネットワーク２においてキャッシュすれば、要求元により近い位置からファイルを送信することができる。また、図４に示したように、１つのファイルには複数のグループを示す情報を関連付けておくようにしてもよい。アクセス頻度の高いファイルほど、多くのグループに属するノードでキャッシュすれば、ネットワーク上におけるキャッシュのヒット率を向上させることができる。
【００４７】
＜キャッシュ対象更新処理＞
また、上述したネットワークシステムにおいて、ファイルに対するキャッシュの優先度を決定し、ファイルに関連付けられたグループを示す情報（キャッシュすべきファイルの一覧）を動的に変更するようにしてもよい。キャッシュの優先度は、配信サーバ３の頻度算出部３４２が算出する各ファイルへのアクセス頻度に基づき決定する。配信サーバ３は、ファイルに対するアクセスの頻度を算出し、キャッシュ対象のファイルを決定する、本発明に係る「アクセス管理装置」の一例である。なお、配信サーバ３とは別に、いずれかのネットワーク２にアクセス管理装置を設けてもよい。
【００４８】
図８は、キャッシュ対象のファイルを変更するキャッシュ対象更新処理の一例を示す処理フロー図である。例えば、ネットワークシステムは、図７に示したファイル配信処理に加え、図８に示すような処理を行うようにしてもよい。
【００４９】
まず、中継ノードは、要求に応じてキャッシュファイルを送信した回数をファイルごとに計数しておき、当該回数を所定のタイミングで配信サーバ３へ送信する（図８：Ｓ２１）。一方、配信サーバ３は、各中継ノードからファイルの送信回数を受信し、ファイルごとのアクセス数を記憶する（Ｓ２２）。本ステップでは、アクセス数を集計するためのアクセスログを受信するようにしてもよい。また、例えば配信サーバ３は、図７のＳ７においてファイルを送信する場合、さらに当該ファイルへのアクセスログを記憶装置３２に書
き出す（Ｓ２３）。
【００５０】
そして、配信サーバ３は、所定のタイミングで所定期間における各ファイルへのアクセス回数（すなわち、アクセスの頻度）を算出し（図示せず）、頻度の高いファイルほどキャッシュの優先度が高いものとしてより多くのグループにキャッシュさせる。すなわち、ファイルに対しより多くのグループを示す情報を関連付けるようにする。具体的には、まず、頻度算出部３４２は、キャッシュ対象を更新するタイミングであるか判断する（Ｓ２４）。例えば、予め定められた動作時刻が到来した場合や、前回の処理から所定期間が経過した場合等の条件を満たした場合に、キャッシュ対象を更新するタイミグであると判断するものとする。キャッシュ対象を更新するタイミングでないと判断された場合、配信サーバ３は特に処理を行わない。一方、キャッシュ対象を更新するタイミングであると判断された場合（Ｓ２４：Ｙｅｓ）、頻度算出部３４２は、ファイルごとのアクセス頻度を算出し、キャッシュ対象を決定する（Ｓ２５）。
【００５１】
図９は、所定期間におけるファイルへのアクセス数に基づく順位と、当該ファイルに関連付けて割り当てられるグループを示すタグの一例を示す図である。配信サーバ３は、当該配信サーバ３が要求に応じて送信したファイルについてのアクセスログと、中継ノードがキャッシュを送信した旨のアクセスログを所定期間分集計し、図９に示すようなファイルごとの統計データを生成する。図９に示す表は、「順位」、「階層」、「グループ数」、及び「タグ」の項目を有する。「順位」のフィールドには、所定期間におけるファイルへのアクセス頻度に基づいて定まる順位の範囲が記録されている。図８のＳ２５においては、所定期間における順位が決定される。「階層」のフィールドには、各順位のファイルをキャッシュする階層が示されている。「グループ数」のフィールドには、各順位のファイをキャッシュするグループの数が示されている。「タグ」のフィールドには、各順位のファイルをキャッシュするグループを示す情報が上述したタグの形式で記録されている。
【００５２】
また、設定変更部３４３は、アクセス頻度に応じて、各ファイルをキャッシュするグループを決定する（図８：Ｓ２５）。本ステップでは、各ファイルに対しキャッシュするグループを割り当てる。まず、所定期間のアクセス数に基づいて、図９に示す人気の程度を決定する。例えばノードを３階層で１２のグループに分ける場合、人気の程度を１３段階に分類する。また、各階層において、最も人気の高い程度に属するファイルを当該階層に割り当てられた４つのグループすべてにおいてキャッシュさせ、２番目に人気の高い程度に属するファイルを３つのグループにおいてキャッシュさせ、３番目に人気の高い程度に属するファイルを２つのグループにおいてキャッシュさせ、４番目に人気の高い程度に属するファイルを１つのグループにおいてキャッシュさせる。なお、最も人気の低い程度に属するファイルはいずれのグループにおいてもキャッシュさせないものとする。
【００５３】
このように、人気の程度に応じて当該ファイルをキャッシュするノードのグループ数が決定され、その後、同数のグループが割り当てられたファイルに対し循環的にグループの組合せを割り当てる。例えば、図９の順位２１〜１００のレコードの「タグ」のフィールドには、３つのグループの組み合わせを循環的に割り当てることにより決定されたタグが記録されている。Ｓ２５においては、直近の所定期間における各ファイルへのアクセス頻度に基づいて、ファイルに関連付けられるタグが更新される。
【００５４】
そして、設定変更部３４３は、各ファイルをキャッシュの対象とするグループを示すリストを、各ノードへ配信する（図８：Ｓ２６）。本ステップでは、例えば図９の「ファイル名」及び「タグ」の列に示す情報が、各ノードへブロードキャストされる。中継ノードは、リストを受信すると、当該リストを記憶装置４２に保持させると共に以降は当該リストに基づいて自ノードがキャッシュする対象のファイルを決定する（Ｓ２７）。このようなリストのグループを示す情報に基づいて、各ノードは、ファイルを要求する先を、同一
の階層とすべきか、又は上下いずれの階層とすべきか容易に判断することができる。また、更新されたリストの内容に応じて、例えばキャッシュ削除部４４５が不要なキャッシュを削除するようにしてもよい。
【００５５】
＜効果＞
キャッシュ対象更新処理によれば、配信サーバから新たに配信されるファイルについてもその後のアクセス数に応じてキャッシュさせることができると共に、既存のファイルに対するアクセス頻度の傾向が変化した場合にも、傾向の変化に追従してネットワークにおけるキャッシュのヒット率を維持及び向上させられるよう設定を変更できる。なお、アクセス頻度の算出やキャッシュすべきファイルのリストの更新は、配信サーバ３とは異なるネットワーク上の管理装置が行うようにしてもよい。また、各中継ノードが記憶するファイルへのアクセスログは、ネットワーク上の所定の装置に保持させ、配信サーバ３又は上記管理装置が各中継ノードにおけるアクセスログを読み出せるようにしてもよい。
【００５６】
＜キャッシュ対象のファイル及びファイルをキャッシュするノードの数＞
本実施形態では、アクセス頻度が高いファイルをキャッシュ対象とし、アクセス頻度が高いほどネットワーク内における多くのノードでキャッシュする。ファイルをキャッシュするノードの数は、ユーザが任意に設定することができる。なお、ファイルをキャッシュするノードの数は、ネットワークに接続された、各グループに属するノードの数と、ファイルに対応づけて設定される、当該ファイルを保持するグループの数とによって決まる。ファイルをキャッシュするノードの数は、例えば遺伝的アルゴリズム等を利用して求めた準最適なキャッシュ配置に従って定めるようにしてもよい。
【００５７】
図１０は、１つのメッシュ型ネットワーク上にキャッシュされるファイル及びその数を示すグラフである。図１０の横軸は、アクセス頻度の降順にソートしたファイルの通し番号を表し、縦軸は、各ファイルをキャッシュするノード数を表している。ファイルに付すタグの設定は、遺伝的アルゴリズムを利用して求められるキャッシュ配置においてノード上にキャッシュされるファイルの種類及び同一のファイルをキャッシュするノードの数に従って決定してもよい。図１０の破線は、メッシュ型のネットワークにおいて、遺伝的アルゴリズム（ＧＡ：Genetic Algorithm）によって求められた準最適なキャッシュ配置に
おけるファイルと当該ファイルがネットワーク上にキャッシュされる数との関係を表している。実線は、遺伝的アルゴリズムで求めたネットワーク中のキャッシュファイル数を、本実施形態に係るネットワークシステムで近似する例である。本実施形態では、上述したタグによって表される、各ファイルに割り当てるグループを変更することにより、当該ファイルをキャッシュするネットワーク上のノード数を調整することができる。また、グループの種類の数を４よりも大きくすることで、準最適な配置に対する近似の精度を向上させることができる。本実施形態に係る階層的に接続されたネットワークにおいても、所定の頻度でアクセスされる複数のファイルを定義し、何らかのアルゴリズムで求めた準最適なキャッシュ配置を近似した値となるように、上記ファイルに割り当てるグループ及びネットワーク上のノードに割り当てるグループの少なくともいずれかを決定するようにしてもよい。
【００５８】
例えば、図９に示したように、アクセス頻度を基準として２０位以内、２１〜１００位、１０１〜２５０位、・・・といった人気の程度毎にファイルをキャッシュするグループの数及び階層が定める。そして、人気の程度に対して対応付けられたタグを、上位から順に循環的に割り当てる。タグは、当該ファイルを保持すべき階層及びグループを示す１２ビットのビットベクトルによって記述されている。また、ビットベクトルは、各階層におけるグループを表す桁を、所定の順序で連結して形成されている。図９では、左の４ビットが第１の階層に割り当てられた４つのグループにおいてファイルがキャッシュされるか否かを表す。同様に、中央の４ビットは、第２の階層に割り当てられた４つのグループに
おいてファイルがキャッシュされるか否かを表す。そして、右の４ビットは、第３の階層に割り当てられた４つのグループにおいてファイルがキャッシュされるか否かを表す。このように、ファイルは、当該ファイルをキャッシュすべきゼロ以上のグループ及び当該グループが属する階層を表す情報が対応付けられる。
【００５９】
＜ＣＡＴＶシステム＞
図１１は、実施形態に係るネットワークシステムをＣＡＴＶのネットワークに適用する場合の、宅内の装置構成の一例を示すブロック図である。図１１のＣＡＴＶ視聴システム６は、保安器６１と、ブースター６２と、分配器６３と、ＳＴＢ（Set-Top Box）６４と
、録画機器６５と、受像機６６と、モデム６７と、キャッシュサーバ６８と、ルータ６９と、ＩＰ−ＶｏＤ  ＳＴＢ７０と、ＰＣ７１とを含む。保安器６１は、引込線と宅内のシステムとの間に設けられ、落雷等による異常電流から宅内の機器を保護するための装置である。ブースター６２は、保安器６１と同軸ケーブルで接続され、伝送される包装信号を増幅する。分配器６３は、ブースター６２と同軸ケーブルで接続され、例えば複数のＳＴＢ６４へ信号線を分配する。ＳＴＢ６４は、分配器６３と同軸ケーブルで接続され、放送信号を受信して映像を出力する。録画機器６５は、ＳＴＢ６４とＬＡＮケーブル等で接続され、放送を録画する。また、受像機６６は、録画機器６５とＨＤＭＩ（登録商標，High-Definition Multimedia Interface）ケーブル等で接続され、放送を表示する。また、モデム６７は、保安器６１と同軸ケーブル等で接続され、データ通信を行う。キャッシュサーバ６８は、例えば図５に示したノードのようなコンピュータであり、モデム６７とＬＡＮケーブル等で接続される。また、複数の家庭に設置されたキャッシュサーバ６８は、割り当てられたグループに基づき、ＶｏＤ（Video On Demand）コンテンツやＶＲコンテン
ツ等を分散キャッシュする。また、ルータ６９は、キャッシュサーバ６８とＬＡＮケーブル等で接続され、家庭内のネットワークへデータ通信を中継する。また、ＩＰ−ＶｏＤ  ＳＴＢ７０は、ルータ６９と例えばＬＡＮケーブルで接続され、インターネット経由でのデータ通信により配信される動画を再生する。なお、ＩＰ−ＶｏＤ  ＳＴＢ７０は、ＳＴＢ６４と受像機６６とを例えばＨＤＭＩケーブルを介して接続し、既存のＳＴＢ６４からの出力を受像機６６へスルーアウトさせるようにしてもよい。また、ＰＣ７１は、ルータと接続され、データ通信を行う。なお、送受信されるファイルは、例えばＤＲＭ（Digital Rights Management）により暗号化されており、ＳＴＢ６４、ＩＰ−ＶｏＤ  ＳＴＢ７
０等が適宜復号して再生する。
【００６０】
このように、ＣＡＴＶ視聴システムにキャッシュサーバ６８を追加し、本実施形態に係るノードとして機能させることにより、ユーザの宅内設備間でキャッシュを送受信するネットワークシステムが実現できる。図１１のようなシステムにおいては、アクセス頻度の高いファイルをキャッシュ対象とするだけでなく、いわゆる見逃し配信の需要が一般的に高い公開から所定期間内のコンテンツについて予めキャッシュ対象としておくようにしてもよい。また、キャッシュサーバ６８は、ルータ６９やＳＴＢ６４、ＩＰ−ＶｏＤ  ＳＴＢ７０等と一体の装置にしてもよい。
【００６１】
＜変形例２＞
図１２は、ＩＳＰが提供するネットワークと併存させて、近隣のノード同士を接続する地域のネットワークを形成する例を示す図である。例えば端末間無線通信や、建物内又は建物間を接続するＬＡＮ又は電力線通信（ＰＬＣ：Power Line Communications）等を利
用して、比較的近隣に存在するノードによるメッシュネットワークを形成する。図１２の例では、ＩＳＰ１又はＩＳＰ２が提供するネットワーク２に接続されたノード４が、ネットワーク２とは別に、比較的近い距離において直接リンクすることにより地域のＣＤＮ７（破線のリンク）を形成している。地域のＣＤＮ７は、ＩＳＰのネットワーク２と同一階層の他のネットワークであり、図１２のノード４は、同一階層の複数のネットワークに接続されているといえる。そして、ノード４は、同一階層においてキャッシュされているフ
ァイルを要求する場合に、ＩＳＰのネットワーク２と、地域のＣＤＮ７とのいずれかを利用することができる。例えば、各ノード４のファイル要求部４４１及び中継部４４２は、ネットワークの帯域の利用状態（混雑状況）に応じて、ＩＳＰのネットワーク２を利用するか、本変形例に係る地域のＣＤＮ７を利用するかを決定するようにしてもよい。
【００６２】
本変形例によれば、異なるＩＳＰを利用しているユーザ同士でキャッシュを利用し合うことができる。特に、経路長の短い近隣のノード同士を直接リンクさせることにより、実効速度を向上させることができる。
【００６３】
上記の実施形態及び変形例に記載した事項は、適宜組み合わせて実施することができる。
【００６４】
＜その他＞
本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範疇に属する。当該プログラムが記録された記録媒体については、コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、上述の処理が可能となる。
【００６５】
ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやＲＯＭ等がある。
【符号の説明】
【００６６】
１      ：ネットワークシステム
２      ：ネットワーク
３      ：配信サーバ
３１    ：通信Ｉ／Ｆ
３２    ：記憶装置
３３    ：入出力装置
３４    ：プロセッサ
３４１  ：ファイル配信部
３４２  ：頻度算出部
３４３  ：設定変更部
３５    ：バス
４      ：ノード（コンピュータ）
４１    ：通信Ｉ／Ｆ
４２    ：記憶装置
４３    ：入出力装置
４４    ：プロセッサ
４４１  ：ファイル要求部
４４２  ：中継部
４４３  ：キャッシュ保持部
４４４  ：キャッシュ送信部
４４５  ：キャッシュ削除部
４５    ：バス
５      ：ファイル
６      ：ＣＡＴＶ視聴システム
６１    ：保安器
６２    ：ブースター
６３    ：分配器
６５    ：録画機器
６６    ：受像機
６７    ：モデム
６８    ：キャッシュサーバ
６９    ：ルータ
７０    ：ＩＰ−ＶｏＤ  ＳＴＢ
７１    ：ＰＣ
【図１】
2018200581.tif 000003
【図２】
2018200581.tif 000004
【図３】
2018200581.tif 000005
【図４】
2018200581.tif 000006
【図５】
2018200581.tif 000007
【図６】
2018200581.tif 000008
【図７】
2018200581.tif 000009
【図８】
2018200581.tif 000010
【図９】
2018200581.tif 000011
【図１０】
2018200581.tif 000012
【図１１】
2018200581.tif 000013
【図１２】
2018200581.tif 000014