(57)【特許請求の範囲】
【請求項１】
コンテンツを保存するコンテンツ保存部と、
エンドユーザからのコンテンツ要求に対して当該要求コンテンツを前記エンドユーザに送信するコンテンツ処理部とを備え、前記コンテンツ保存部に新規保存または継続保存されるコンテンツがその優先度に基づいて制御されるキャッシュ装置において、
前記コンテンツ処理部は、
要求コンテンツのサイズを取得するサイズ取得部と、
当該要求コンテンツが存在するコンテンツサーバと前記キャッシュ装置との距離を取得する距離取得部と、
当該要求コンテンツに対するエンドユーザからの要求の頻度を取得する頻度取得部と、
当該取得されたサイズ、距離及び頻度に基づいて当該要求コンテンツの優先度を算出する優先度算出部とを含み、
前記コンテンツ処理部は、
要求コンテンツが前記コンテンツ保存部に保存されている場合には前記コンテンツ保存部より当該要求コンテンツを前記エンドユーザに送信し、
保存されていない場合には当該要求コンテンツをコンテンツサーバより取得して前記エンドユーザに送信すると共に前記優先度算出部に対して当該取得した要求コンテンツの優先度を算出させ、当該優先度が所定基準を満たしていれば前記要求コンテンツを前記コンテンツ保存部に新規保存し、満たしていなければ新規保存せず、
前記コンテンツ保存部にはコンテンツを保存可能な所定容量値が設定され、
前記コンテンツ処理部が、前記算出された優先度が前記所定基準を満たしている要求コンテンツを前記コンテンツ保存部に新規保存する際に、当該新規保存によって保存されているコンテンツの総容量が前記所定容量値を超える場合には、該所定容量値を超えないようになるまで保存されたコンテンツの中から優先度の低い順にコンテンツを削除して当該新規保存に必要な容量を確保し、
前記所定基準が、前記要求コンテンツに対して前記優先度算出部が算出した優先度と、前記コンテンツ保存部に既に保存されているコンテンツに対する優先度のうちの最小値と、の比較に基づく基準であり、
当該比較される最小値には、前記コンテンツの削除が実施されない時点において初期値として「０」が設定され、
前記優先度算出部は、S、D、Fをそれぞれ前記取得されたサイズ、距離及び頻度とし、a、b、cをそれぞれ正の定数として、以下の式(1)又は式(2)により要求コンテンツの優先度を算出することを特徴とするキャッシュ装置。
(コンテンツの優先度)＝Sa×Db×Fc…式(1)
(コンテンツの優先度)＝aS＋bD＋cF …式(2)
【請求項２】
前記優先度算出部が、前記サイズ、距離及び頻度の各々に所定の重み付けを与えた所定の増加関数を用いて前記優先度を算出することを特徴とする請求項1に記載のキャッシュ装置。
【請求項３】
前記コンテンツ処理部は、さらに、要求コンテンツのうちそのURLが所定のフィルタ条件を満たすものに対して前記優先度算出部に優先度を算出させることで、当該要求コンテンツを前記コンテンツ保存部に新規保存または継続保存されうるコンテンツとして制御し、
要求コンテンツのうちそのURLが前記所定のフィルタ条件を満たさないものに対しては前記優先度算出部に優先度を算出させず、コンテンツサーバより当該要求コンテンツを取得して前記エンドユーザに送信し、当該要求コンテンツを前記コンテンツ保存部に保存しないことを特徴とする請求項１または２に記載のキャッシュ装置。
【請求項４】
前記キャッシュ装置が、前記エンドユーザがインターネットに接続する際に経由するアクセスネットワークと前記インターネットの間に配置されていることを特徴とする請求項１ないし３のいずれかに記載のキャッシュ装置。
【請求項５】
コンテンツをキャッシュ装置に保存するコンテンツ保存段階と、
エンドユーザからのコンテンツ要求に対して当該要求コンテンツを前記エンドユーザに送信するコンテンツ処理段階とを備え、前記キャッシュ装置に新規保存または継続保存されるコンテンツがその優先度に基づいて制御されるキャッシュ装置のキャッシュ方法において、
前記コンテンツ処理段階は、
要求コンテンツのサイズを取得するサイズ取得段階と、
当該要求コンテンツが存在するコンテンツサーバと前記キャッシュ装置との距離を取得する距離取得段階と、
当該要求コンテンツに対するエンドユーザからの要求の頻度を取得する頻度取得段階と、
当該取得されたサイズ、距離及び頻度に基づいて当該要求コンテンツの優先度を算出する優先度算出段階とを含み、
前記コンテンツ処理段階では、
要求コンテンツが前記コンテンツ保存段階にて保存されている場合には当該要求コンテンツを前記エンドユーザに送信し、
保存されていない場合には当該要求コンテンツをコンテンツサーバより取得して前記エンドユーザに送信すると共に前記優先度算出段階に対して当該取得した要求コンテンツの優先度を算出させ、当該優先度が所定基準を満たしていれば前記要求コンテンツを前記コンテンツ保存段階にて新規保存し、満たしていなければ新規保存せず、
前記コンテンツ保存段階にはコンテンツを保存可能な所定容量値が設定され、
前記コンテンツ処理段階が、前記算出された優先度が前記所定基準を満たしている要求コンテンツを前記コンテンツ保存段階にて新規保存する際に、当該新規保存によって保存されているコンテンツの総容量が前記所定容量値を超える場合には、該所定容量値を超えないようになるまで保存されたコンテンツの中から優先度の低い順にコンテンツを削除して当該新規保存に必要な容量を確保し、
前記所定基準が、前記要求コンテンツに対して前記優先度算出段階が算出した優先度と、前記コンテンツ保存段階にて既に保存されているコンテンツに対する優先度のうちの最小値と、の比較に基づく基準であり、
当該比較される最小値には、前記コンテンツの削除が実施されない時点において初期値として「０」が設定され、
前記優先度算出段階は、S、D、Fをそれぞれ前記取得されたサイズ、距離及び頻度とし、a、b、cをそれぞれ正の定数として、以下の式(1)又は式(2)により要求コンテンツの優先度を算出することを特徴とするキャッシュ方法。
(コンテンツの優先度)＝Sa×Db×Fc…式(1)
(コンテンツの優先度)＝aS＋bD＋cF …式(2)
【請求項６】
コンテンツをキャッシュ装置に保存するコンテンツ保存段階と、
エンドユーザからのコンテンツ要求に対して当該要求コンテンツを前記エンドユーザに送信するコンテンツ処理段階とを備え、前記キャッシュ装置に新規保存または継続保存されるコンテンツがその優先度に基づいて制御されるキャッシュ装置のキャッシュ方法をコンピュータに実行させるプログラムにおいて、
前記コンテンツ処理段階は、
要求コンテンツのサイズを取得するサイズ取得段階と、
当該要求コンテンツが存在するコンテンツサーバと前記キャッシュ装置との距離を取得する距離取得段階と、
当該要求コンテンツに対するエンドユーザからの要求の頻度を取得する頻度取得段階と、
当該取得されたサイズ、距離及び頻度に基づいて当該要求コンテンツの優先度を算出する優先度算出段階とを含み、
前記コンテンツ処理段階では、
要求コンテンツが前記コンテンツ保存段階にて保存されている場合には当該要求コンテンツを前記エンドユーザに送信し、
保存されていない場合には当該要求コンテンツをコンテンツサーバより取得して前記エンドユーザに送信すると共に前記優先度算出段階に対して当該取得した要求コンテンツの優先度を算出させ、当該優先度が所定基準を満たしていれば前記要求コンテンツを前記コンテンツ保存段階にて新規保存し、満たしていなければ新規保存せず、
前記コンテンツ保存段階にはコンテンツを保存可能な所定容量値が設定され、
前記コンテンツ処理段階が、前記算出された優先度が前記所定基準を満たしている要求コンテンツを前記コンテンツ保存段階にて新規保存する際に、当該新規保存によって保存されているコンテンツの総容量が前記所定容量値を超える場合には、該所定容量値を超えないようになるまで保存されたコンテンツの中から優先度の低い順にコンテンツを削除して当該新規保存に必要な容量を確保し、
前記所定基準が、前記要求コンテンツに対して前記優先度算出段階が算出した優先度と、前記コンテンツ保存段階にて既に保存されているコンテンツに対する優先度のうちの最小値と、の比較に基づく基準であり、
当該比較される最小値には、前記コンテンツの削除が実施されない時点において初期値として「０」が設定され、
前記優先度算出段階は、S、D、Fをそれぞれ前記取得されたサイズ、距離及び頻度とし、a、b、cをそれぞれ正の定数として、以下の式(1)又は式(2)により要求コンテンツの優先度を算出することを特徴とするプログラム。
(コンテンツの優先度)＝Sa×Db×Fc…式(1)
(コンテンツの優先度)＝aS＋bD＋cF …式(2)
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャッシュ装置及び方法並びにプログラムに関する。
【背景技術】
【０００２】
近年、インターネットにおいて、映像などに代表される大容量コンテンツの転送によるトラフィック増加や、それに伴うエンドユーザへのレスポンス低下が問題となっている。トラフィック増を抑制し、かつエンドユーザへのレスポンスを向上させる手段として、エンドユーザの近くにキャッシュサーバを設置する方法がある。キャッシュサーバは、オリジナルコンテンツのコピーを蓄積するとともに、エンドユーザからコンテンツの配信リクエストを受ける。エンドユーザがリクエストするコンテンツがキャッシュサーバに存在すれば、そのコンテンツはキャッシュサーバからエンドユーザに配信され、キャッシュサーバに存在しない場合は、オリジナルコンテンツを保持するサーバからコンテンツを取得して蓄積し、エンドユーザに配信する。
【０００３】
エンドユーザからのリクエストに対する、キャッシュサーバでのコンテンツヒット率が高くなるにつれ、オリジナルのコンテンツサーバとキャッシュサーバとの間のトラフィック削減効果も高くなることから、キャッシュサーバにおいてキャッシュするコンテンツの選択方法が、キャッシュサーバの有効利用における技術的ポイントの一つとなる。
【０００４】
このような事情に関連する従来技術として、以下の特許文献1には、リクエストの少ないコンテンツは優先的にキャッシュサーバから削除し、リクエストが多いコンテンツを優先的にキャッシュサーバに蓄積することで、キャッシュサーバのヒット率を向上させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第3999004号(コンテンツ管理方法)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記従来技術は、コンテンツへのリクエスト頻度のみを考慮してキャッシュサーバのヒット率を向上させるものである。しかしながら、キャッシュサーバ設置の目的である、トラフィック抑制およびエンドユーザへのレスポンス向上を効果的に達成するには、コンテンツへのリクエストの頻度だけでなく、コンテンツサイズや、オリジナルのコンテンツが存在するサーバまでの距離（遅延）も考慮する必要がある。
【０００７】
例えば、リクエスト頻度が同等の場合、よりサイズの大きいコンテンツをキャッシュサーバでキャッシュすれば、トラフィック抑制効果はより大きくなる。また距離が大きいコンテンツを優先的にキャッシュすれば、エンドユーザへのレスポンス向上について、キャッシュ効果がより大きくなる。しかし、上記従来技術は、リクエスト頻度のみを考慮するため、トラフィック抑制やレスポンス向上を効率的に達成することができない。
【０００８】
本発明の目的は、上記の従来技術の課題を解決し、頻度のみならずコンテンツサイズや距離をも考慮してキャッシュするコンテンツを選択するキャッシュ装置及び方法並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明に係るキャッシュ装置は、コンテンツを保存するコンテンツ保存部と、エンドユーザからのコンテンツ要求に対して当該要求コンテンツを前記エンドユーザに送信するコンテンツ処理部とを備え、前記コンテンツ保存部に新規保存または継続保存されるコンテンツがその優先度に基づいて制御されるキャッシュ装置において、前記コンテンツ処理部は、要求コンテンツのサイズを取得するサイズ取得部と、当該要求コンテンツが存在するコンテンツサーバと前記キャッシュ装置との距離を取得する距離取得部と、当該要求コンテンツに対するエンドユーザからの要求の頻度を取得する頻度取得部と、当該取得されたサイズ、距離及び頻度に基づいて当該要求コンテンツの優先度を算出する優先度算出部とを含むことを特徴とする。
【００１０】
また、本発明に係るキャッシュ方法はコンテンツをキャッシュ装置に保存するコンテンツ保存段階と、エンドユーザからのコンテンツ要求に対して当該要求コンテンツを前記エンドユーザに送信するコンテンツ処理段階とを備え、前記キャッシュ装置に新規保存または継続保存されるコンテンツがその優先度に基づいて制御されるキャッシュ装置のキャッシュ方法において、前記コンテンツ処理段階は、要求コンテンツのサイズを取得するサイズ取得段階と、当該要求コンテンツが存在するコンテンツサーバと前記キャッシュ装置との距離を取得する距離取得段階と、当該要求コンテンツに対するエンドユーザからの要求の頻度を取得する頻度取得段階と、当該取得されたサイズ、距離及び頻度に基づいて当該要求コンテンツの優先度を算出する優先度算出段階とを含むことを特徴とする。
【００１１】
さらに、本発明に係るプログラムは、コンテンツをキャッシュ装置に保存するコンテンツ保存段階と、エンドユーザからのコンテンツ要求に対して当該要求コンテンツを前記エンドユーザに送信するコンテンツ処理段階とを備え、前記キャッシュ装置に新規保存または継続保存されるコンテンツがその優先度に基づいて制御されるキャッシュ装置のキャッシュ方法をコンピュータに実行させるプログラムにおいて、前記コンテンツ処理段階は、要求コンテンツのサイズを取得するサイズ取得段階と、当該要求コンテンツが存在するコンテンツサーバと前記キャッシュ装置との距離を取得する距離取得段階と、当該要求コンテンツに対するエンドユーザからの要求の頻度を取得する頻度取得段階と、当該取得されたサイズ、距離及び頻度に基づいて当該要求コンテンツの優先度を算出する優先度算出段階とを含むことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、コンテンツのサイズ、コンテンツサーバとの距離及びコンテンツ要求の頻度という3つのパラメータに基づいた優先度を利用してキャッシュするコンテンツを決定するので、トラヒック抑制やエンドユーザへのレスポンス向上をより効率的に達成することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係るキャッシュ装置が存在する典型的なネットワーク構成を示す図である。
【図２】キャッシュ装置の機能ブロック図である。
【図３】制御部のうち優先度算出に関する機能を担う部分の機能ブロック図である。
【図４】キャッシュ装置の動作のフローチャートである。
【図５】優先度管理テーブルの例を示す図である。
【図６】新たに取得したコンテンツの保存判断及び該判断に応じた処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に、図面を参照して本発明を詳細に説明する。図1に、本発明において想定する典型的なネットワーク構成を示す。インターネットには、多数のコンテンツサーバが存在する。各エンドユーザはADSLやFTTH等のアクセスネットワーク経由でインターネットに接続する。エンドユーザがあるコンテンツサーバからコンテンツを取得する際、まずキャッシュ装置1に接続する。
【００１５】
キャッシュ装置1は、エンドユーザが要求するコンテンツをキャッシュしているかどうか検索し、キャッシュしている場合は、エンドユーザにそのコンテンツを代理で配信する。キャッシュしていない場合は、オリジナルのコンテンツを持つコンテンツサーバに接続してコンテンツを取得し、必要であればそのコンテンツをキャッシュした上で、エンドユーザにそのコンテンツを配信する。
【００１６】
図2はキャッシュ装置1の、エンドユーザ及びコンテンツサーバとの関係を含む機能ブロック図である。キャッシュ装置1は、コンテンツ処理部2及びコンテンツ保存部3を備える。コンテンツ処理部2は、リクエスト受付部20、コンテンツ取得部21、コンテンツ送信部22及び制御部23を含む。コンテンツ保存部3にはコンテンツがキャッシュして保存される。コンテンツ保存部3内の優先度管理テーブルには各コンテンツの優先度及び関連情報が保存されている。ここで、優先度とはコンテンツがキャッシュ装置1へ新規保存、または継続保存される優先度を意味する。
【００１７】
図3は制御部23のうち、優先度算出に関連する部分の機能ブロック図である。制御部23は、サイズ取得部231、距離取得部232、頻度取得部233及び優先度算出部234を含む。エンドユーザからのコンテンツ要求に応じて、当該要求コンテンツに対して、サイズ取得部231はそのサイズを取得し、距離取得部232はその距離を取得し、頻度取得部はその頻度を取得する。また優先度算出部234は当該算出されたサイズ、距離及び頻度に基づいて優先度を算出する。
【００１８】
リクエスト受付部20はエンドユーザからのリクエスト(コンテンツ要求)を受け付け、制御部23は、当該コンテンツ要求に従って、キャッシュ装置1内の処理全般の制御を行う。図4に当該制御によるキャッシュ装置1の動作のフローチャートを示す。
【００１９】
ステップS1にてリクエスト受付部20がエンドユーザよりコンテンツ要求を受信する。ステップS1では、コンテンツ要求の情報より頻度取得部231が当該要求コンテンツに対する頻度を求めることができる。ステップS2にて制御部23は、要求されたコンテンツがコンテンツ保存部3に保存されているか検索するため、当該コンテンツ保存部3にある優先度管理テーブルを参照する。
【００２０】
優先度管理テーブルには、保存されているコンテンツのID、コンテンツサイズ、コンテンツへの距離、リクエスト頻度及びこれらのパラメータから算出された優先度が対応付けられて記録されている。図5に優先度管理テーブルの例を示す。各項目については後述するが、それぞれサイズ取得部231、距離取得部232、頻度取得部233及び優先度算出部234によって取得された値であって、制御部23が優先度管理テーブルに書き込んで更新したものである。
【００２１】
優先度管理テーブルの１つの役目として、保存コンテンツファイルのリストという役目がある。当該優先度管理テーブルに登録されているコンテンツは、コンテンツ保存部3内に保存されており、キャッシュとして利用することができる。
【００２２】
図4に戻り、ステップS3にて、エンドユーザの要求コンテンツがコンテンツ優先度管理テーブルに登録されている場合は、上記の通り、コンテンツ保存部3に当該コンテンツがキャッシュとして保存されている。よってステップS4に進み、制御部23は、コンテンツ保存部3内の当該コンテンツをコンテンツ送信部22によってエンドユーザに送信させる。
【００２３】
またステップS3にて、エンドユーザの要求コンテンツがコンテンツ優先度管理テーブルに登録されていない場合は、当該コンテンツはコンテンツ保存部3には保存されていない。よってステップS7に進み、制御部23は、コンテンツ取得部21にコンテンツサーバからコンテンツを新たに取得させる。
【００２４】
ステップS7にて、コンテンツ取得部21を介してキャッシュ装置1がどのコンテンツサーバに接続するかは、DNS(図1では不図示)を利用して決定する。具体的には、制御部23がエンドユーザからのコンテンツ要求に含まれるURLからホスト名を抽出し、DNSを利用してそのホスト名に対応するIPアドレスを求める。またこの際に、当該コンテンツに対してサイズ取得部231がサイズを取得し、距離取得部232が距離を取得し、頻度取得部233が頻度を取得する。頻度取得はステップS7ではなくステップS1で行ってもよい。
【００２５】
ステップS8にて、優先度算出部234は各取得部が取得した値を利用して、新たに取得したコンテンツの優先度を算出する。制御部23は当該優先度に基づいて当該コンテンツをコンテンツ保存部3に保存するかの判断を行う。保存すると判断した場合は制御部23はステップS8にて保存も行う。当該ステップS8の詳細については後述する。
【００２６】
ステップS8の判断の後のステップS4にて、保存するか否かの当該判断に関わらず、新たに取得したコンテンツをコンテンツ送信部22がエンドユーザに送信する。なお、保存しない場合は、当該コンテンツはキャッシュ装置1にてエンドユーザへの送信のために一時的に保存はされるが、制御部23により、送信後に削除される。
【００２７】
あるいは、ステップS7ではコンテンツ本体を取得するのではなく、当該コンテンツの優先度算出に必要な情報のみを取得してもよい。そしてステップS8で保存すると判断してからコンテンツ本体を取得してもよい。保存しないと判断した際は、キャッシュ装置1では当該コンテンツをエンドユーザへ送信するための中継を行うようにしてもよい。
【００２８】
以上、ステップS4を終えた後、ステップS5で制御部23は優先度管理テーブルを更新して、ステップS6でエンドユーザからのコンテンツ要求に応じた一連の処理が終了する。ステップS5における更新は、ステップS3の後の各経緯に応じた処理となる。
【００２９】
すなわち、要求コンテンツが既に優先度管理テーブルに登録されていた場合は、制御部23は、当該テーブルの当該コンテンツに対する要求の頻度の項目を、頻度取得部233がステップS1で取得した値によって更新する。さらに、既に優先度管理テーブルに記載されているサイズ及び距離を用いて優先度算出部234により優先度を求めて、制御部23は当該コンテンツの優先度も更新する。
【００３０】
登録されていなかった場合で且つステップS8で要求コンテンツが保存された場合には、制御部23は当該要求コンテンツを新たに優先度管理テーブルに登録し、また必要に応じて既に登録されている他のコンテンツをテーブルから削除する。ステップS8で要求コンテンツが保存されなかった場合は優先度管理テーブルは更新されない（更新する必要がない）。これらについては後述する。
【００３１】
なお、ステップS4とS5とは順序が逆又は同時であってもよい。すなわち、ステップS4を開始する時点は、コンテンツをどのように送信するかということが既に決定されている状態である。よって、ステップS4の開始時点で優先度管理テーブルの更新も行うことができるため、ステップS4とS5とは順序が逆又は同時であってもよい。
【００３２】
図6は、図4のステップS8の詳細を示すフローチャートである。すなわち、図6は新たに取得したコンテンツの保存判断及び該判断に応じた処理を示すフローチャートである。まずステップS11において、優先度算出部234は当該コンテンツの優先度を算出する。算出の詳細については後述するが、サイズ取得部231ないし頻度取得部233がステップS7などで取得したサイズ及び距離と、当該コンテンツに対するコンテンツ要求の頻度とに基づいて算出される。
【００３３】
次にステップS12にて、制御部23は、当該算出した優先度を、コンテンツを保存するか否かの基準となる所定の閾値と比較する。閾値以上／閾値より大であれば、当該新コンテンツをコンテンツ保存部3に保存するため、ステップS13へ進む。閾値未満／閾値以下であれば、当該新コンテンツは保存しないので、ステップS15へ進み、判断フローを終了し、前述の通り図4に戻ってステップS4へ進む。
【００３４】
保存すると判断した後のステップS13では、制御部23が、コンテンツ保存部3において当該新コンテンツを保存可能であるかを判定する。すなわち、コンテンツ保存部3における当該時点の保存コンテンツの総容量値に、当該新コンテンツの容量値を加えて、コンテンツ保存部3の所定のコンテンツ保存可能容量値を超えないかを判定する。
【００３５】
所定容量値を超えなければステップS14に進み、制御部23は当該コンテンツをコンテンツ保存部3に保存し、ステップS15で終了する。この場合、制御部23は、図4のステップS5では新たに保存したコンテンツをそのサイズ、距離及び頻度並びに算出された優先度の情報と共に優先度管理テーブルに新規登録する。
【００３６】
ステップS13にて所定容量値を超えると判断された場合ステップS16に進み、コンテンツ保存部3において当該コンテンツが保存可能となるように、制御部23は空き容量を確保する処理を行う。すなわち、優先度管理テーブルを参照して、優先度の低いコンテンツから順次、コンテンツ保存部3より削除する。当該削除処理は当該新コンテンツを保存可能な空き容量が確保された時点で終了し、ステップS14に進んで制御部23は当該新コンテンツを保存し、ステップS15で当該フローは終了する。この場合、図4のステップS5では保存したコンテンツに対して制御部23は、そのサイズ、距離及び頻度並びに算出された優先度の情報と共に優先度管理テーブルに新規登録すると共に、削除したコンテンツの情報は優先度管理テーブルからも削除する。
【００３７】
なお、ステップS12におけるコンテンツ保存判断用の前記所定の閾値には、キャッシュ装置1の運用管理者などによって固定値を設定しておいてもよいし、動的に変動するようにしてもよい。以下、動的に変動させる場合の例を説明する。
【００３８】
まず初期状態として、コンテンツ保存部3に充分容量の余裕がある状態を想定する。そして当該初期状態にて、制御部23は閾値の初期値を0にしておく。この場合、コンテンツ要求がある都度しばらくは、当該コンテンツが保存されていなければキャッシュとして保存される。
【００３９】
キャッシュ装置1のキャッシュ可能容量(コンテンツ保存部3に追加保存可能な容量)が少なくなり、制御部23が優先度の小さいコンテンツをキャッシュ装置から削除する際に、制御部23は前記削除されたコンテンツの優先度を新たな閾値とする。複数削除された場合は、最後に削除されたコンテンツに対応する最大の優先度を用いてもよいし、その他の削除コンテンツに対応する優先度を用いてもよい。以降キャッシュ装置1からコンテンツが削除される度、すなわちステップS16にて、閾値を更新する。
【００４０】
あるいは動的に変動させる例で上記とほぼ同様の効果が得られる例として、ステップS12において優先度管理テーブルを参照して、当該時点における最小の優先度を閾値とすることもできる。なお、この場合も上記と同様に、閾値の初期値としては0を与えておけばよい。
【００４１】
次に、優先度算出部234による優先度の算出手法について説明する。一実施形態では、優先度を以下の式(1)で算出する。
(コンテンツの優先度)＝Sa×Db×Fc  …式(1)
ここで、a、b、cは正の定数とし、例えばキャッシュ装置1の運用管理者等によって値を設定される。またSはコンテンツサイズ、Dはキャッシュ装置からコンテンツサーバまでの距離（パケット転送時間）、Fはコンテンツ要求の頻度を表す。
【００４２】
a、b、cの値は、コンテンツ優先度算出において、どのパラメータを重要視するかを調整する役割を持つ。例えばコンテンツ1、2があり、各コンテンツのS、D、Fの値が以下の通りであったとする。
コンテンツ1：  S = 2、D = 2、F = 5
コンテンツ2：  S = 1、D = 4、F = 5
【００４３】
ここで a = b = c = 1とすれば、コンテンツ1、2の優先度は同じとなる。一方、a = 2、b = c = 1とすれば、コンテンツ1の優先度の方が大きくなり、a = c = 1、b = 2とすれば、コンテンツ2の優先度の方が大きくなる。すなわち、サイズが大きいコンテンツを優先的にキャッシュさせたい場合はaの値をb、cよりも大きく設定し、距離が大きいコンテンツを優先的にキャッシュさせたい場合はbの値a、cよりも大きく設定し、コンテンツ要求の頻度が大きいコンテンツを優先的にキャッシュさせたい場合はcの値をa、bよりも大きく設定すればよい。なお、図5の優先度管理テーブルの例では、a=b=c=1として算出された例が示されている。
【００４４】
なお、優先度の算出は上記の式に限らず、3つのパラメータすなわちサイズ、距離及びコンテンツ要求の頻度の関数であって、各パラメータの重み付けが可能な任意の所定関数、特に増加関数を利用することができる。例えば同様の変数S,D,F及び正の定数a,b,cを用いて、次式(2)で与えてもよい。
(コンテンツの優先度)＝aS＋bD＋cF  …式(2)
なおまた式(1)や(2)のような関数を用いる場合、S,D,Fは各パラメータの所定単位を用いて、適宜無次元の値に変換して利用するものとする。
【００４５】
次に、ステップS5と関連して、優先度の算出対象・算出タイミングの各実施形態を説明する。一実施形態では、制御部23による優先度管理テーブルの更新負荷を下げるため、要求を受けたコンテンツに対してのみ優先度を算出する。そして、ステップS5で優先度管理テーブルを更新する必要が生じた場合に、当該要求されたコンテンツの欄のみを更新する。なお、ステップS16で削除された場合は必ず優先度管理テーブルより削除して更新するものとする。
【００４６】
この場合、優先度を算出するケースは次の2通りである。第一のケースは、図3にてステップS7,S8を辿る新たなコンテンツに対して算出される場合である。当該新コンテンツに対して優先度が算出された後、当該新コンテンツが保存される場合にはステップS5で優先度管理テーブルに登録される。例えば、図5の例で、ID=BD345のコンテンツは新規登録されたものであり、初めてコンテンツ要求を受けることで頻度=初期値1として、サイズ=5及び距離=30を求めて、優先度=5*30*1=150として優先度管理テーブルに登録されている。
【００４７】
第二のケースは、図4にてステップS7,S8を辿らない既に保存されているコンテンツに対して、当該コンテンツに対する要求をトリガとして算出される場合である。この場合、頻度取得部233がステップS1にて頻度を当該コンテンツに対する最新の値として取得する。そして、優先度算出部234は当該最新の頻度と、既に優先度管理テーブルに保存されているサイズ及び距離とを用いて、優先度を最新の値に更新する。これらの結果を用いて制御部23は優先度管理テーブルの当該コンテンツの欄を更新する。
【００４８】
例えば、図5の例で、ID=AA123のコンテンツに対してさらにコンテンツ要求を受けると、頻度が図5に記載の5から5+1=6に更新され、その結果、ステップS5にて優先度が10*30*6=1800と算出され、古い値の1500(=10*30*5)を上書きして更新される。
【００４９】
あるいは、別の一実施形態では、ステップS5にて優先度管理テーブルの全体を常に更新する。すなわち、要求を受けたコンテンツに関して前記と同様に優先度を算出して更新するのみならず、要求を受けていないその他全てのコンテンツの欄も、更新する。
【００５０】
この場合、ステップS1にて各コンテンツにつき頻度取得部233が頻度を最新の値として求める。ここでは、要求を受けていないコンテンツに関しては、頻度の値は変わらないか又は減少する。さらに、優先度管理テーブルに既に記載されているサイズ及び距離を用いて優先度算出部234が優先度を最新の値として算出し、制御部23が優先度管理テーブルの全体を更新する。当該実施形態では更新負荷がかかる代わりに、頻度の情報をタイムリーに反映したキャッシュ判断を行うことができる。
【００５１】
なおまた、上記二実施形態の中間的な実施形態として、要求を受けた際に優先度管理テーブルでは当該コンテンツの欄のみを更新し、頻度に関しては別途各コンテンツに対する頻度情報を頻度取得部233がユーザ要求とは独立に取得して管理しておく。そしてエンドユーザからの要求とは独立に、所定タイミング毎に各コンテンツの頻度情報を優先度管理テーブルの全体で更新して、全コンテンツに対する優先度の値も更新するようにしてもよい。
【００５２】
次に、距離算出部232の取得する距離の各実施形態について説明する。一実施形態では、ステップS7においてキャッシュ装置1がコンテンツサーバからコンテンツを取得する際に、そのコンテンツサーバに向けてpingを実行してキャッシュ装置とコンテンツサーバ間のRTT（Round Trip Time、往復遅延時間）を計測し、その値で距離を代表する。
【００５３】
別の一実施形態では、やはりステップS7において、キャッシュ装置がコンテンツサーバとTCPで通信する場合は、TCP接続確立時にキャッシュ装置がTCP SYNパケットを送信してから、コンテンツサーバよりSYN ACKパケットが返ってくるまでの時間を計測し、その値で距離を代表する。
【００５４】
上記２実施形態における距離は、遅延によって定義される距離であるので、ネットワークの混雑状況の変遷により時間変化がある。よって新たに取得するコンテンツに対してステップS7で取得するのみならず、既に優先度管理テーブルに記載されコンテンツ保存部3に保存されているコンテンツに対する要求を受信した際も、ステップS1などで時間計測を行って、頻度の更新と同様に、優先度管理テーブルの該当コンテンツ欄を更新するようにしてもよい。また当該要求がある都度取得した遅延時間の平均値を用いて、優先度管理テーブルを更新するようにしてもよい。更新タイミングについては、頻度情報の反映について説明した上記二実施形態及び中間的な実施形態と同様の各手法を適用できる。
【００５５】
次に、頻度取得部233が取得する頻度の各実施形態につき説明する。一実施形態では、コンテンツ毎に単位時間当たりにキャッシュ装置1がエンドユーザから受信したコンテンツ要求の回数を算出して頻度とする。例えば単位時間を1分とし、ある1分間にコンテンツ1のリクエストが10回あった場合、コンテンツ1に対する要求の頻度は10と定義する。
【００５６】
優先度管理テーブルには登録されていなくとも、あるコンテンツに対してリクエストがあった場合、当該コンテンツに対する頻度の情報は頻度取得部233は別個独立して保持しておき、ステップS8での優先度算出に利用する。当該コンテンツを保存しないと判断した際も頻度の情報は残しておく。
【００５７】
別の一実施形態として、直近のコンテンツ要求受信時間からの経過時間の逆数を、頻度とする。直近のコンテンツ要求受信時間からの経過時間が長い／短いということは、当該コンテンツへに対する要求の回数が少ない／多いということを意味するため、逆数をとることで頻度として利用できる。この場合も、優先度管理テーブルに登録されていないコンテンツについても、頻度の情報のみを別個保持しておくようにする。
【００５８】
なお、本発明では以上の説明において、エンドユーザからのコンテンツ要求があれば、図4のフローを辿ってキャッシュされているか、キャッシュされていなければキャッシュするか、の判断を全てのコンテンツに対して行うことが前提となっていた。これに対する追加処理を行う別実施形態として、オリジナルのコンテンツのURL(すなわちネットワーク上の位置)に基づいて、そもそもキャッシュ対象とするか否かについて前判断を行う実施形態を説明する。
【００５９】
当該実施形態は特に、キャッシュ装置1の運用者が当該キャッシュ装置1において特定のネットワーク又はサイト（サイト群）に存在するコンテンツのみをキャッシュ対象として設定したい場合や、逆にキャッシュ対象から除外するよう設定したい場合に有効である。
【００６０】
この場合、制御部23がステップS1でコンテンツ要求に含まれるURLに対して判断するようにすればよい。ここで、キャッシュ装置1において予め例えば、「example.comのコンテンツはキャッシュ対象としない」、「test.comのコンテンツはキャッシュ対象とする」等のように、URLに対する所定のフィルタ条件が設定されているものとする。当該フィルタ条件は前者の例のように、除外するものの指定によって設定されてもよいし、逆に後者の例のように通過させるものの指定によって設定されてもよい。
【００６１】
上記処理は、図3などでは不図示の制御部23に含まれるフィルタ処理部によって行われてもよい。上記処理は、URLに対してではなくIPアドレス(アドレス単体又はプレフィクス)に対して行ってもよく、両者を併用してもよい。なお、IPアドレスを用いる場合(ステップS7でなく)ステップS1で制御部23がDNSにアクセスするものとする。
【００６２】
ステップS1で制御部23がキャッシュ対象（キャッシュ候補）と判断したコンテンツに対しては、以上の説明と同様のキャッシュに存在するか、追加するか、等の判断処理(図4の通常の処理)が行われる。キャッシュ対象としないと判断されたコンテンツに対しては、（算出等が不要であるため）サイズ取得、距離取得、頻度取得及び優先度算出や対応する優先度管理テーブル更新は行わず、図4のステップS7及びステップS4の処理のみが行われる。すなわち、当該コンテンツは単に、キャッシュ装置1によってコンテンツサーバとの間で中継されてエンドユーザに送信されるのみである。当該コンテンツに対しては、優先度算出などが省略されるのでキャッシュ装置1の処理負荷を下げることができる。
【００６３】
なお、図4及び図6に示す各ステップを実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータに読み込ませて実行させることにより、当該コンピュータを本発明に係るキャッシュ装置1として機能させるようにしてもよい。この際、当該コンピュータ内にコンテンツ保存部3が含まれていなくともよい。すなわち、当該コンピュータはコンテンツ処理部2として機能するものであってもよい。
【００６４】
以上、本発明によれば、キャッシュ装置1において、(1)コンテンツサイズ、(2)コンテンツへの距離、(3)コンテンツへのリクエスト頻度、の三つのパラメータを考慮してキャッシュするコンテンツを選択するため、キャッシュヒット率の向上とともに、トラフィック抑制やエンドユーザに対するレスポンス向上を効果的に実現できる。
【符号の説明】
【００６５】
1…キャッシュ装置、2…コンテンツ処理部、3…コンテンツ保存部、23…制御部、231…サイズ取得部、232…距離取得部、233…頻度取得部
【図１】
0005566320.tif 000002
【図２】
0005566320.tif 000003
【図３】
0005566320.tif 000004
【図４】
0005566320.tif 000005
【図５】
0005566320.tif 000006
【図６】
0005566320.tif 000007