(57)【要約】【課題】ストリーム型コンテンツでないファイルをプレフェッチする際に、適切な割り当て帯域を算出する。【解決手段】ファイルサーバと、ファイルサーバにデータを要求するクライアントとの通信を介して中継するファイルキャッシュ装置におけるファイルキャッシュの制御方法であって、クライアントからのファイルサーバに格納されたファイルの一部分についてデータの要求を受け、データをファイルサーバから取得して保持し、保持されたデータをクライアントに提供し、データを取得した履歴を保持し、保持された履歴に基づいて、クライアントが単位時間あたりに必要とするデータ量を算出し、算出された単位時間あたりに必要とするデータ量に基づいて、クライアントが必要とするデータをファイルサーバから先読みして保持し、先読みして保持されたデータをクライアントから要求を受け、クライアントに提供する。【選択図】図４
2011191856.tif 000002
【特許請求の範囲】
【請求項１】
ファイルサーバと、前記ファイルサーバにデータを要求するクライアントとの通信を介して中継するファイルキャッシュ装置におけるファイルキャッシュの制御方法であって、
前記クライアントからの前記ファイルサーバに格納されたファイルの一部分についてデータの要求を受け、前記データを前記ファイルサーバから取得して保持し、
前記保持されたデータを前記クライアントに提供し、
前記データを取得した履歴を保持し、
前記保持された履歴に基づいて、前記クライアントが単位時間あたりに必要とするデータ量を算出し、
前記算出された単位時間あたりに必要とするデータ量に基づいて、前記クライアントが必要とするデータを前記ファイルサーバから先読みして保持し、
前記先読みして保持されたデータを前記クライアントから要求を受け、前記クライアントに提供することを特徴とするファイルキャッシュの制御方法。
【請求項２】
前記履歴に基づいて、前記クライアントから次に要求されるデータを推定し、
前記クライアントが必要とするデータは、前記推定されたデータであることを特徴とする、
請求項１に記載のファイルキャッシュの制御方法。
【請求項３】
前記通信が行われるネットワークの空き帯域を取得し、
前記取得した空き帯域が、前記算出された単位時間あたりに必要とするデータ量を満たさない場合、前記先読みは、前記取得した空き帯域によって算出される単位時間あたりのデータ量以下の速度で行われることを特徴とする請求項２に記載のファイルキャッシュの制御方法。
【請求項４】
前記算出された単位時間あたりに必要とするデータ量を満たす帯域を、前記ネットワークにおいて予約して前記先読みを行うことを特徴とする請求項２に記載のファイルキャッシュの制御方法。
【請求項５】
前記クライアントからのデータ要求は少なくとも、
前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
を含むことを特徴とする請求項１に記載のファイルキャッシュの制御方法。
【請求項６】
前記データを取得した履歴は少なくとも、
前記データの取得開始時間、前記データの取得終了時間と、前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
を含むことを特徴とする請求項５に記載のファイルキャッシュの制御方法。
【請求項７】
前記クライアントからのデータ要求は、ＣＩＦＳによって規定されるフォーマットを含むパケットによるものであることを特徴とする請求項６に記載のファイルキャッシュの制御方法。
【請求項８】
ファイルサーバと、前記ファイルサーバにデータを要求するクライアントとの通信を介して中継するファイルキャッシュ装置であって、
前記クライアントからの前記ファイルサーバに格納されたファイルの一部分についてデータの要求を受け、前記データを前記ファイルサーバから取得して保持し、
前記保持されたデータを前記クライアントに提供し、
前記データを取得した履歴を保持し、
前記保持された履歴に基づいて、前記クライアントが単位時間あたりに必要とするデータ量を算出し、
前記保持された履歴に基づいて、前記クライアントから次に要求されるデータを推定し、
前記算出された単位時間あたりに必要とするデータ量に基づいて、前記推定されたデータを前記ファイルサーバから先読みして保持し、
前記先読みして保持されたデータを前記クライアントから要求を受け、前記クライアントに提供することを特徴とするファイルキャッシュ装置。
【請求項９】
前記通信が行われるネットワークの空き帯域を取得し、
前記取得した空き帯域が、前記算出された単位時間あたりに必要とするデータ量を満たさない場合、前記先読みは、前記取得した空き帯域によって算出される単位時間あたりのデータ量以下の速度で行われることを特徴とする請求項８に記載のファイルキャッシュ装置。
【請求項１０】
前記算出された単位時間あたりに必要とするデータ量を満たす帯域を、前記ネットワークにおいて予約して、前記先読みを行うことを特徴とする請求項８に記載のファイルキャッシュ装置。
【請求項１１】
前記クライアントからのデータ要求は少なくとも、
前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
を含み、前記データを取得した履歴は少なくとも、
前記データの取得開始時間、前記データの取得終了時間と、前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
を含むことを特徴とする請求項８に記載のファイルキャッシュ装置。
【請求項１２】
ネットワーク上の装置をして、ファイルサーバと、前記ファイルサーバにデータを要求するクライアントとの通信を介して中継させるプログラムであって、
前記クライアントからの前記ファイルサーバに格納されたファイルの一部分についてデータの要求を受け、前記データを前記ファイルサーバから取得して保持するステップと、
前記保持されたデータを前記クライアントに提供するステップと、
前記データを取得した履歴を保持するステップと、
前記保持された履歴に基づいて、前記クライアントが単位時間あたりに必要とするデータ量を算出するステップと、
前記保持された履歴に基づいて、前記クライアントから次に要求されるデータを推定するステップと、
前記算出された単位時間あたりに必要とするデータ量に基づいて、前記推定されたデータを前記ファイルサーバから先読みして保持するステップと、
前記先読みして保持されたデータを前記クライアントから要求を受け、前記クライアントに提供するステップを備えることを特徴とするプログラム。
【請求項１３】
前記通信が行われるネットワークの空き帯域を取得させるステップと、
前記取得した空き帯域が、前記算出された単位時間あたりに必要とするデータ量を満たさない場合、前記先読みは、前記取得した空き帯域によって算出される単位時間あたりのデータ量以下の速度で行うことを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記算出された単位時間あたりに必要とするデータ量を満たす帯域を、前記ネットワークにおいて予約して、前記先読みを行わせるステップを備える請求項１２に記載のプログラム。
【請求項１５】
前記クライアントからのデータ要求は少なくとも、
前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
を含み、前記データを取得した履歴は少なくとも、
前記データの取得開始時間、前記データの取得終了時間と、前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
を含むことを特徴とする請求項１２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルキャッシュの管理方法であり、特に、プレフェッチ処理をするファイルキャッシュの管理方法に関する。
【背景技術】
【０００２】
ＷＡＮを介してＤＣ（データセンター）及び拠点間でデータアクセスを行う場合、データアクセスが距離に従って遅延したり、実行スループット（すなわち、実際の処理能力）が小さくなったりするため、キャッシュを用いて情報の取得を高速化させる方法が知られている。キャッシュを用いる方法は、データのうちアクセスした部分（およびその近傍）のコピーを参照側の拠点に保持することによって、同拠点からの再参照を、ＷＡＮを介さず高速におこなうことを可能とする。また、キャッシュにデータがないキャッシュミスの発生による性能低下を低減するよう、参照される可能性のあるデータを事前にキャッシュに転送しておくプレフェッチが知られている。
【０００３】
プレフェッチを用いる方法として、ユーザからのアクセス指示に迅速に応答するため、アクセスされる可能性の高いコンテンツ（特に、ストリーム型コンテンツ）を予測し、各コンテンツを帯域制御した上でキャッシュにプレフェッチする方法がある（例えば、特許文献１参照）。特許文献１に示される方法では、各コンテンツをプレフェッチするために割り当てられる帯域は、参照される可能性の高さに基づいて各コンテンツに対するプレフェッチの優先度を定められた上で、その優先度と各ストリーム型コンテンツの要求する帯域とを用いて決定される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４―０２１７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に示される方法は、要求する帯域があらかじめ規定されているストリーム型コンテンツをプレフェッチする対象としており、各コンテンツが要求する帯域を用いて、各コンテンツをプレフェッチする際の帯域を決定している。しかし、ストリーム型コンテンツではないファイルについては、転送速度に対する要求がファイルごとに規定されていないため、特許文献１に示される方法を用いても、プレフェッチ時の割り当て帯域を算出できないという課題があった。
【０００６】
さらに特許文献１に示される方法では、コンテンツの受信側で使用可能なネットワーク帯域は一定であることを前提としているため、使用可能な実効帯域が動的に変化する一般の環境において特許文献１に示される方法を用いても、プレフェッチに割り当てられる総帯域に過不足が生じるという課題があった。
【０００７】
本発明は、このような課題を鑑みてなされたものであり、要求する帯域が規定されていない非ストリーム型コンテンツのプレフェッチにおいて、アプリケーションによるデータの利用速度に応じた帯域制御をおこなうことによって、ネットワークに過大な負荷をかけず、適切な速度によってプレフェッチすることを実現する。
【０００８】
図１９は、従来技術の非ストリーム型コンテンツをプレフェッチする場合の帯域と時間との関係を示す説明図である。従来技術によって非ストリーム型コンテンツをプレフェッチする場合、図１９に示すように帯域を多く使う。一方、本発明において用いる方法は、はアプリケーションによるデータの利用速度に従って帯域を制御することによって、図１のようにプレフェッチの際にネットワークに過大な負荷をかけることを防ぐ。
【０００９】
図１は、本発明の実施形態の非ストリーム型コンテンツをプレフェッチする場合の帯域と時間との関係を示す説明図である。
【００１０】
さらに、本発明は、利用可能な帯域が動的に変化するネットワーク帯域に適したプレフェッチをおこなうこと実現するファイルキャッシュ装置の提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の代表的な一例を示せば以下の通りである。すなわち、ファイルサーバと、前記ファイルサーバにデータを要求するクライアントとの通信を介して中継するファイルキャッシュ装置におけるファイルキャッシュの制御方法であって、前記クライアントからの前記ファイルサーバに格納されたファイルの一部分についてデータの要求を受け、前記データを前記ファイルサーバから取得して保持し、前記保持されたデータを前記クライアントに提供し、前記データを取得した履歴を保持し、前記保持された履歴に基づいて、前記クライアントが単位時間あたりに必要とするデータ量を算出し、前記算出された単位時間あたりに必要とするデータ量に基づいて、前記クライアントが必要とするデータを前記ファイルサーバから先読みして保持し、前記先読みして保持されたデータを前記クライアントから要求を受け、前記クライアントに提供する。
【発明の効果】
【００１２】
本発明の一実施形態によると、本発明は、アプリケーションがファイルを処理するための速度を算出することによって、ファイルのプレフェッチにおいて、ネットワーク帯域を有効に活用することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態の非ストリーム型コンテンツをプレフェッチする場合の帯域と時間との関係を示す説明図である。
【図２】本発明の第１の実施形態のネットワーク構成を示すブロック図である。
【図３】本発明の第１の実施形態のファイルキャッシュ装置のハードウェアの構成を示すブロック図である。
【図４】本発明の第１の実施形態のファイルキャッシュ装置の論理的な構成を示すブロック図である。
【図５】本発明の第１の実施形態の帯域制御の処理を示す説明図である。
【図６】本発明の第１の実施形態のレイヤー３、レイヤー４、及びレイヤー７のパケットを示す説明図である。
【図７】本発明の第１の実施形態のアクセスパターン解析部の処理を示すフローチャートである。
【図８】本発明の第１の実施形態のアクセスパターンを示す説明図である。
【図９】本発明の第１の実施形態の要求の対象となるファイルの分割を示す説明図である。
【図１０】本発明の第１の実施形態のシーケンシャルな順番によって転送を要求する場合のネットワーク帯域を示す説明図である。
【図１１】本発明の第１の実施形態のアクセスパターンを示す説明図である。
【図１２】本発明の第１の実施形態のシーケンシャルではない順番によって要求する場合のネットワーク帯域を示す説明図である。
【図１３】本発明の第１の実施形態の帯域を予測する処理を示すフローチャートである。
【図１４】本発明の第１の実施形態のキャッシュ情報蓄積部の構成を示す説明図である。
【図１５】本発明の第１の実施形態のキャッシュ制御部のプレフェッチの処理を示すフローチャートである。
【図１６】本発明の第１の実施形態の帯域計算部の処理を示すフローチャートである。
【図１７】本発明の第１の実施形態の業務帯域とプレフェッチの帯域とを示す説明図である。
【図１８】本発明の第２の実施形態のネットワーク構成を示すブロック図である。
【図１９】従来技術の非ストリーム型コンテンツをプレフェッチする場合の帯域と時間との関係を示す説明図である。
【発明を実施するための形態】
【００１４】
以下、本発明にかかる実施形態について、図面を参照して説明する。
【００１５】
（第１の実施形態）
第１の実施形態におけるネットワーク構成は、例えば、図２のようにクライアントのＰＣ１０とネットワーク１３との間にファイルキャッシュ装置１１が実装された構成である。
【００１６】
図２は、本発明の第１の実施形態のネットワーク構成を示すブロック図である。
【００１７】
本実施形態におけるクライアントのＰＣ１０は、ファイルキャッシュ装置１１とクライアント側のゲートウェイ１２とを介してネットワーク１３に接続される。また、ファイルキャッシュ装置１１に使用可能な帯域を割り当てる管理サーバ１７は、ファイルサーバ側のゲートウェイ１４を介してネットワーク１３に接続される。また、ファイルサーバ１５はファイルサーバ側のゲートウェイ１４を介してネットワーク１３に接続される。図２に示すネットワーク構成は、管理サーバ１７及び管理サーバ側のゲートウェイ１６を備えるが、管理サーバ及び管理サーバ側のゲートウェイ１６を備えなくてもよい。ネットワーク１３は、ＬＡＮであっても、ＷＡＮであってもよい。
【００１８】
図３は、本発明の第１の実施形態のファイルキャッシュ装置１１のハードウェアの構成を示すブロック図である。
【００１９】
ファイルキャッシュ装置１１は、制御部２０と、スイッチ２１と、インターフェイスカード２２とを備える。スイッチ２１は、インターフェイスカード２２からの入力を所望のインターフェイスカード２２に振り分ける。制御部２０は、プロセッサ８０及びメモリ９０を備える。
【００２０】
メモリ９０には、プロセッサ８０が実行する各種プログラムが格納されている。例えば、アクセスパターン解析プログラム１０３Ａ、アクセス場所予測プログラム１０６Ａ、帯域予測プログラム１０７Ａ、キャッシュ制御プログラム１０８Ａ、帯域計算プログラム１０９Ａ、帯域予約プログラム１１０Ａである。また、メモリ９０には、図８で後述するアクセスパターン１１６が保持され、図１４で後述するキャッシュ情報蓄積部１１７が構成される。なお、メモリ９０は、制御部２０内に構成される記憶部として例を示したが、制御部外の記憶装置によって構成されていてもよい。
【００２１】
インターフェイスカード２２は、クライアント側のゲートウェイ１２又はクライアントのＰＣ１０から送信されるパケットを送受信するためのネットワークインターフェースであり、カード型ネットワークインターフェース及び内蔵型ネットワークインターフェースのうちいずれでもよい。
【００２２】
スイッチ２１は、インターフェイスカード２２からの入力パケットを所望の宛先に届けたり、入力パケットを解析したりするパケット処理部２３と、パケットを蓄積するパケット蓄積部２４と、パケットの宛先及びアクセスパターンなどの各種情報を保存する各種情報蓄積部２５を備える。パケット蓄積部２４及び各種情報蓄積部２５は、メモリ９０上に構成されてもよく、ハードディスクなどの記憶媒体に構成されてもよい。パケット処理部２３には、例えば、パケット内のコマンドを解析したり、クライアントなどの計算機からのリクエストに対応するレスポンスを生成する処理を実行するためのプログラムが格納される。
【００２３】
図４は、本発明の第１の実施形態のファイルキャッシュ装置１１の論理的な構成を示すブロック図である。
【００２４】
本発明の第１の実施形態のファイルキャッシュ装置１１は、コマンド解析部１０２と、アクセスパターン解析部１０３と、時刻取得部１０４と、レスポンス部生成部１０５と、アクセス場所予測部１０６と、帯域予測部１０７と、キャッシュ制御部１０８と、帯域計算部１０９と、帯域予約部１１０と、要求生成部１１１と、ネットワークモニタリング部１１２と、総帯域取得部１１３とを備える。
【００２５】
ファイルキャッシュ装置１１が備えるこれらの処理部の一部は、図３に示す制御部２０に格納されるプログラムを実行することによって実装される。例えば、アクセスパターン解析部１０３と、アクセス場所予測部１０６と、帯域予測部１０７と、キャッシュ制御部１０８と、帯域計算部１０９と、帯域予約部１１０とは、アクセスパターン解析プログラム１０３Ａ、アクセス場所予測プログラム１０６Ａ、帯域予測プログラム１０７Ａ、キャッシュ制御プログラム１０８Ａ、帯域計算プログラム１０９Ａ、帯域予約プログラム１１０Ａが、プロセッサ８０によって実行されることによって実装される。
【００２６】
また、ファイルキャッシュ装置１１は、アクセスパターン１１６及びキャッシュ情報蓄積部１１７を保持する。アクセスパターン１１６及びキャッシュ情報蓄積部１１７は、データの集合である。なお、制御部のメモリ９０ではなく、アクセスパターン１１６は、スイッチ２１内の各種情報蓄積部２５に格納され、キャッシュ情報蓄積部１１７は、パケット蓄積部２４に格納されてもよい。
【００２７】
なお、図４において、図２に示すクライアント側のゲートウェイ１２、ファイルサーバ側のゲートウェイ１４、管理サーバ側のゲートウェイ１６、及び、管理サーバ１７の記載は、省略する。
【００２８】
図５は、本発明の第１の実施形態の帯域制御の処理を示す説明図である。
【００２９】
図５に示す本実施形態の帯域制御の処理の概要は、以下の通りである。
【００３０】
最初に、クライアントのＰＣ１０からファイルキャッシュ装置１１に所定のパケットによって要求が送信され、送信された要求は、インターフェイスカード２２を介してコマンド解析部１０２に入力される（ステップ２０１）。
【００３１】
コマンド解析部１０２は、クライアントのＰＣ１０から送信された要求を解析することによって、ファイルのオープン、読み込み、又はクローズなどのコマンドの種類と、そのコマンドに付帯するファイル名及び読み込み範囲などの情報とを取得する（ステップ２０２）。
【００３２】
アクセスパターン解析部１０３は、クライアントのＰＣ１０から送信された要求を解析することによって、クライアントのＰＣ１０から送信された要求が示す送信元ＩＰアドレス及び送信元ポートと、コマンドの種類及びコマンドに付帯する情報とを取得し（ステップ２０３）、取得した情報をアクセスパターン１１６に格納する（ステップ２０４）。その際に、クライアントのＰＣ１０から送信された要求に含まれる情報を受信した時刻を、時刻取得部１０４から取得する（ステップ２０５）。そして、ステップ２０４において格納した情報とともに、ステップ２０５において取得された時刻を、アクセスパターン１１６に格納する。
【００３３】
キャッシュ制御部１０８は、ステップ２０２において取得されたコマンド及びコマンドに付帯する情報が、コマンドの種類はファイルの読み込みであり、かつ、そのファイルの読み込み範囲を参照しキャッシュ情報蓄積部１１７に存在するか否かを判定する（ステップ２０６）。
【００３４】
ステップ２０６において、キャッシュ情報蓄積部１１７にファイルの読み込み範囲の情報が存在すると判定された場合、キャッシュ制御部１０８は、その情報をキャッシュ情報蓄積部１１７から取得し（ステップ２０７）、取得された情報を付加したレスポンス用のパケットをレスポンス部生成部１０５に生成させ（ステップ２０８）、生成させたレスポンス用のパケットを、クライアントのＰＣ１０へ返信する（ステップ２０９）。
【００３５】
ステップ２０３の後、アクセス場所予測部１０６は、アクセスパターン１１６を参照し、クライアントのＰＣ１０が次にファイルのどの部位（後述するブロック）を参照するか予測し、予測された場所をキャッシュ制御部１０８にプレフェッチするよう要求する（ステップ２１０）。
【００３６】
また、ステップ２０３の後、帯域予測部１０７は、アクセスパターン１１６を参照し、読み込みが要求されたファイルを用いるアプリケーションが、情報を処理するアクセス速度を予測し、そのアクセス速度を要求帯域としてキャッシュ制御部１０８に設定する（ステップ２１１）。
【００３７】
キャッシュ制御部１０８は、ステップ２０６において、コマンドがファイルの読み込みであり、キャッシュ情報蓄積部１１７にファイルの読み込み範囲の情報が存在しない、すなわちキャッシュミスであると判定した場合、帯域予測部１０７によって設定された要求帯域を帯域計算部１０９に設定する。
【００３８】
帯域計算部１０９は、ネットワークモニタリング部１１２と総帯域取得部１１３とによって、空き帯域を取得する。帯域計算部１０９は、取得された空き帯域と、キャッシュ制御部１０８によって設定された要求帯域とを比較し、要求帯域が空き帯域より小さいか、同じである場合は要求帯域を帯域予約部１１０に割り当てる。また、要求帯域が空き帯域より大きい場合は、要求帯域を空き帯域以下に設定し、帯域予約部１１０に割り当てる。設定方法は比例配分又は優先度による配分などの公知の技術を用いる（ステップ２１２）。クライアントのＰＣ１０からの共有ファイルアクセスにおいて、キャッシュミスが発生すると、帯域計算部１０９は空き帯域に基づいて可能な限り最大の転送速度を求め、帯域予約部１１０に割り当てる。
【００３９】
帯域予約部１１０は、ステップ２１２において割り当てられた帯域を、ファイルサーバ１５までのネットワークにおいて予約する（ステップ２１３）。具体的には、帯域予約部１１０は、クライアント側のゲートウェイ１２、ファイルサーバ側のゲートウェイ１４、及び、ファイルサーバ１５に割り当てられた帯域を予約するように指示する。
【００４０】
キャッシュ制御部１０８は、アクセス場所予測部１０６によって予測された場所をプレフェッチするため、要求生成部１１１にプレフェッチするファイルのブロックを転送する要求を送る。そして、要求生成部１１１は、キャッシュ制御部１０８から送られたプレフェッチするファイルのブロックを要求するパケットを生成し（ステップ２１４）、生成されたパケットを送信することによって、プレフェッチするファイルのブロックをファイルサーバ１５に要求する（ステップ２１５）。
【００４１】
ファイルサーバ１５に送信したパケットに対するレスポンスを、ファイルサーバ１５から受信すると、キャッシュ制御部１０８は、受信したレスポンスに含まれる情報を取得する（ステップ２１６）。そして、受信したレスポンスが、プレフェッチを要求するパケットのレスポンスである場合、受信したレスポンスに含まれる情報、すなわちプレフェッチされたファイルのブロックを、キャッシュ情報蓄積部１１７に格納する（ステップ２１７）。
【００４２】
また、キャッシュ制御部１０８は、ステップ２０６においてキャッシュミスであると判定されていた場合、レスポンス部生成部１０５を用いてクライアントのＰＣ１０へのレスポンスのためのパケットを生成し、ファイルサーバ１５から取得したファイルのブロックを、生成されたパケットに含める（ステップ２１８）。そして、レスポンス部生成部１０５は、生成されたパケットをクライアントのＰＣ１０に送信する（ステップ２１９）。
【００４３】
また、キャッシュ制御部１０８は、アクセスパターン解析部１０３に、クライアントのＰＣ１０にブロックを送信した旨、すなわち、ファイルのブロックの転送が終わった旨を送り、また、ファイルサーバ１５からのレスポンスに含まれる情報を送る。そして、アクセスパターン解析部１０３は、ステップ２１６において取得されたファイルのブロックを、既存のアクセスパターン１１６と照合し（ステップ２２０）、既存のファイルのブロックのうち、レスポンスに含まれたファイルのブロックに連続するファイルの情報とともに、ファイルのブロックをクライアントのＰＣ１０に送信した時刻を、アクセスパターン１１６に格納する（ステップ２２１）。
【００４４】
以下、コマンド解析部１０２、アクセスパターン解析部１０３、アクセス場所予測部１０６、帯域予測部１０７、キャッシュ制御部１０８、及び帯域計算部１０９における処理の詳細について説明する。
【００４５】
（コマンド解析部１０２）
クライアントのＰＣ１０からの要求は、ネットワークのパケットとしてファイルキャッシュ装置１１に備わるコマンド解析部１０２へ入力される。
【００４６】
図６は、本発明の第１の実施形態のパケットのレイヤー３、レイヤー４、及びレイヤー７のフォーマットを示す説明図である。本実施形態におけるクライアントのＰＣ１０からの要求は、ＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）のフォーマットによるパケットによって送信される。なお、本実施形態のＣＩＦＳ以外でも、ファイルを共有するシステムにおいてファイルの転送を要求するためのパケットであれば、いずれのフォーマットを用いてもよい。
【００４７】
レイヤー３のフォーマットには、接続先のサーバを示す宛先アドレスが含まれている。ファイルキャッシュ装置１１は、ＰＣ１０のパケットを解析することにより、ＰＣ１０がどのサーバへ接続しようとしているか知ることができる。また、ＣＩＦＳには、ＰＣ１０がどのファイルをアクセスしようとしているか、ＰＣ１０がファイルのアクセス範囲を示すコマンドなどが記載されている。
【００４８】
このため、コマンド解析部１０２は、図６のＣＩＦＳパケットのフォーマットのコマンド番号と、ＣＩＦＳパケットのデータ部を参照することによってクライアントのＰＣ１０からの要求がファイルのオープン、ファイルのクローズ、アクセス範囲の指定、ファイルの読み込みのコマンドであるかを解析する。
【００４９】
（アクセスパターン解析部１０３）
図７は、本発明の第１の実施形態のアクセスパターン解析部１０３の処理を示すフローチャートである。図７に示すフローチャートは、図５に示すステップ２０２〜ステップ２０４に相当する。
【００５０】
アクセスパターン解析部１０３は、クライアントのＰＣ１０から送信された要求に含まれるコマンドを解析後（ステップ３０１）、要求に含まれる情報を受信した時刻を時刻取得部１０４から取得し（ステップ３０２）、接続元ＩＰアドレス及び接続元ポートを取得する（ステップ３０３）。アクセスパターン解析部１０３は、図６に示すパケットのレイヤー３から送信元ＩＰアドレスを取得し、レイヤー４から送信元ポートを取得する。
【００５１】
アクセスパターン解析部１０３は、コマンドの種類を判定し（ステップ３０４）、コマンドの種類がファイルのオープンの場合、ステップ３０２及びステップ３０３において取得された情報を、ともにアクセスパターン１１６へ記録する（ステップ３０５）。
【００５２】
また、ステップ３０４においてコマンドの種類がファイルのオーブンではないと判定された場合、アクセスパターン解析部１０３は、コマンドの種類がファイルの読み込みであるか否かを判定する（ステップ３０６）。ファイルの読み込みであると判定された場合、アクセスパターン解析部１０３は、図６に示すデータ部に含まれるファイルの読み込み範囲を示す値を、ブロック番号へ変換する（ステップ３０７）。そして、アクセスパターン解析部１０３は、ファイルの読み込みが開始したことを示すため、アクセスパターン１１６へ記録を開始する（ステップ３０８）。
【００５３】
また、ステップ３０６においてコマンドの種類がファイルの読み込みではないと判定された場合、アクセスパターン解析部１０３は、コマンドの種類がファイルのクローズであるか否かを判定する（ステップ３０９）。ファイルのクローズであると判定された場合、ファイルのオープン又は読み込みが終了したことを示すため、アクセスパターン１１６への記録を終了する（ステップ３１０）。
【００５４】
ステップ３０９においてコマンドの種類がファイルのクローズではないと判定された場合、アクセスパターン解析部１０３は、コマンド解析部１０２から送信された要求に対して処理をしない（ステップ３１１）。
【００５５】
図８は、本発明の第１の実施形態のアクセスパターン１１６を示す説明図である。図８に示すアクセスパターン１１６は、シーケンシャル、すなわちブロック番号の順番にブロックの転送を要求する場合のアクセスパターン１１６を示す。
【００５６】
アクセスパターン１１６には、要求を送信した接続元のＩＰアドレス及び接続元ポート番号などの接続元固有の情報と、ファイルのオープン、読み込み又はクローズなどのコマンドの種類を示す情報と、アクセスパターン１１６に情報を格納する際に時刻取得部１０４から取得された時刻を示す情報とが、テーブルとして関連付けられ、保持される。
【００５７】
図８に示すアクセスパターン１１６は、接続元ＩＰアドレス１１６１、接続元ポート番号１１６２、ファイル名１１６３、ブロック番号１１６４、自ブロックの転送終了時刻１１６５、及び、次のブロックのアクセス時刻１１６６を含む。なお、ファイルのオープン、読み込み又はクローズなどのコマンドの種類を示す情報を加えてもよい。
【００５８】
接続元ＩＰアドレス１１６１には、要求をファイルキャッシュ装置１１に送信したクライアントのＰＣ１０を一意に示す値が含まれる。接続元ポート番号１１６２は、要求が送信されたポート番号を示す。ポート番号は一般的に、アプリケーションによって一意に定められる。このため接続元ポート番号１１６２は、クライアントのＰＣ１０においてファイルキャッシュ装置１１に要求を送信したアプリケーションの種類を示す。接続元ＩＰアドレス１１６１と接続元ポート番号１１６２との値は、図５に示すステップ２０４、及び、図７に示すステップ３０５において格納される。
【００５９】
ファイル名１１６３には、要求の対象となるファイル名称が含まれる。図８に示すファイル名１１６３は、ＣＩＦＳを用いた場合のファイル名であるが、ファイル名を一意に特定されればいずれの表記でもよい。ファイル名１１６３は、図５に示すステップ２０４、及び、図７に示すステップ３０５において格納される。
【００６０】
ブロック番号１１６４は、要求の対象となるファイルを一定の大きさに分割し、分割されたブロックに付された番号を示す。ブロック番号１１６４の値は、図７に示すステップ３０７において生成された後、ステップ３０８においてブロック番号１１６４に格納される。
【００６１】
自ブロックの転送終了時刻１１６５は、同じ行のブロック番号１１６４に示されたブロックを、ファイルサーバ１５から転送し終わった時刻を示す。次のブロックのアクセス時刻１１６６は、次の行のブロックを転送し始める時刻を示す。図８に示す時刻は任意の時刻を基準にしたシリアル値によって示されるが、時刻を一意に特定できればどのような形式でもよい。
【００６２】
アクセスパターン解析部１０３は、キャッシュ制御部１０８からレスポンス部生成部１０５へ転送終了後のブロックが送られる際に、キャッシュ制御部１０８からブロックの転送が終了した旨を通知され、ブロックの転送が終了した旨を通知された時刻を、時刻取得部１０４から取得し、自ブロックの転送終了時刻１１６５の値に格納してもよい。
【００６３】
さらに、アクセスパターン解析部１０３は、アプリケーションから次のブロックの転送を要求された際の時刻を、時刻取得部１０４から取得し、次のブロックのアクセス時刻１１６５に格納してもよい。
【００６４】
また、アクセスパターン解析部１０３は、アプリケーションがブロックを処理する時間を予測し、自プロックの転送終了時刻１１６５に予測された時間を加算して、次のブロックのアクセス時刻１１６６に格納してもよい。
【００６５】
例えば、図８に示すアクセスパターン１１６のテーブルのうち１行目は、ブロック番号１１６４が”１”のブロック（以下、ブロック１と記載）の転送が終了した時刻が”５”であり、次のブロック番号１１６４が”２”のブロック（以下、ブロック２と記載）へアクセスを開始した時刻が”１５”であることを示す。このため、接続元ポート番号１１６２が示すアプリケーションが、ブロック１を処理するために要する時間は、”１０”であることが算出される。
【００６６】
さらに、ブロック１の容量を、アプリケーションがブロックを処理するために要した時間によって割ることによって、ブロック一つあたりのアプリケーションのアクセス速度が求まる。接続元ＩＰアドレス１１６１と接続元ポート１１６２とは、それぞれ図６に示す送信元アドレスと送信元ポートとを参照することによって取得される。
【００６７】
図８に示すブロック番号１１６４が”３”のブロック（以下、ブロック３と記載）の自ブロックの転送終了時刻１１６５には、”キャッシュヒット”を示す値が格納される。ブロック３がプレフェッチによって取得され、キャッシュ制御部１０８が、既にキャッシュ情報蓄積部１１７に格納されていたブロック３をクライアントのＰＣ１０に送信する旨をキャッシュ制御部１０８から通知された場合、アクセスパターン解析部１０３は、自ブロックの転送終了時刻１１６５に、”キャッシュヒット”を示す値を格納する。
【００６８】
クライアントのＰＣ１０においてアプリケーションによるブロック３の処理が終了した後、クライアントのＰＣ１０のアプリケーションは、次のブロック４を転送する旨の要求をコマンド解析部１０２を介してアクセスパターン解析部１０３に送信する。アクセスパターン解析部１０３は、アプリケーションからブロック４を転送する旨の要求を受けると、次のブロックのアクセス時刻１１６５に時刻取得部１０４から取得した時刻を格納する。
【００６９】
一方で、アクセスパターン解析部１０３は、ブロック３がクライアントのＰＣ１０に送信された旨を受けると、ブロック４のプレフェッチをするように、アクセス場所予測部１０６及び帯域予測部１０７にアクセスパターン１１６の情報を送る。このため、アプリケーションがブロック３を処理している間、ブロック４はプレフェッチされる。
【００７０】
アプリケーションがブロック３の処理を終了し、アプリケーションからコマンド解析部１０２を介してブロック４を転送する旨の要求を受けた場合、キャッシュ制御部１０８は、キャッシュ情報蓄積部１１７を参照した後、クライアントのＰＣ１０にキャッシュ情報蓄積部１１７に格納されていたブロック４を送り、アクセスパターン解析部１０３にブロック４が既にキャッシュ情報蓄積部１１７に格納されていた旨を通知する。
【００７１】
アクセスパターン解析部１０３は、図７に示すステップ３１０において、クライアントのＰＣ１０から送られた要求に含まれる一つのファイルへの処理が終了（すなわち、クローズ）したことを示すため、同じファイル名１１６３のブロック番号１１６４のうち、最後のブロック番号１１６４の次のブロックのアクセス時刻１１６６に、”ＮＵＬＬ”を格納する。
【００７２】
なお、本実施形態のブロック番号とは、図９のように要求の対象となるファイルを、一定の大きさに分割した、分割された各々のブロックに付された番号である。
【００７３】
図９は、本発明の第１の実施形態の要求の対象となるファイルの分割を示す説明図である。
【００７４】
図９に示すファイルは、要求の対象となるファイルを示す。本実施形態のアクセスパターン解析部１０３は、図７に示すステップ３０７において、ファイルの読み込み範囲を、５１２バイトごとのブロック１〜ｎに分割する。なお、ブロックの大きさは５１２バイトに限定されず、いずれの大きさでもよい。
【００７５】
図８に示すアクセスパターン１１６は、シーケンシャル、すなわちブロック番号順にアクセスする場合のテーブルである。図８に対応するネットワーク帯域を図１０に示す。
【００７６】
図１０は、本発明の第１の実施形態のシーケンシャルな順番によって転送を要求する場合のネットワーク帯域を示す説明図である。
【００７７】
図１０に示すブロック１は、時刻が”５”になるまでファイルサーバ１５から転送され、ブロック１の転送によって帯域が使用される。時刻が”５”〜”１５”の間、ファイルサーバ１５から転送されるブロックがないため、帯域は空きとなる。なお、時刻が”５”〜”１５”の間、ブロック１を要求したアプリケーションは、ブロック１を処理する。
【００７８】
時刻が”１５”〜”２０”の間、ブロック２がファイルサーバ１５から転送され、帯域が使用される。時刻が”２０”から、プロック２を要求したアプリケーションはブロック２を処理する。また、アクセス場所予測部１０６は、次に転送を要求されるブロックがブロック２の次のブロック３であると予測して、キャッシュ制御部１０８にブロック３をプレフェッチさせる。すなわち、キャッシュ制御部１０８は、アクセス場所予測部１０６から送られた帯域によって、ブロック２の転送が終了した時刻から、アプリケーションが一つのブロックを処理するまでの時間、ブロック３をプレフェッチする。
【００７９】
時刻が”３０”から、アプリケーションは、プレフェッチされたブロック３を処理する。そして、ブロック３が処理されている間、キャッシュ制御部１０８は、帯域予測部１０７から送られた帯域によって、ブロック４をプレフェッチする。
【００８０】
時刻が”４０”から、アプリケーションはプレフェッチされたブロック４を処理する。
【００８１】
なお、帯域予測部１０７から送られるプレフェッチするための帯域が、確保することができないと帯域計算部１０９によって判定された場合、キャッシュ制御部１０８はプレフェッチを中止してもよい。
【００８２】
また、図８及び図１０において、プレフェッチのために使用される帯域は、ブロックを転送するための帯域よりも少ない。しかし、アプリケーションが一つのブロックを処理するための時間が、一つのブロックを転送するための時間よりも短い場合、プレフェッチのために使用される帯域は、一つのブロックを転送するための帯域より多くなってもよい。これは、後述のように、プレフェッチのために使用される帯域は、その時のネットワークの空き帯域に依存するためである。
【００８３】
図１１は、本発明の第１の実施形態のアクセスパターン１１６を示す説明図である。図１１に示すアクセスパターン１１６は、ブロック番号が示す順番によってブロックの要求をしない場合のアクセスパターン１１６である。図１１に示すブロック番号１１６４は、一つ飛ばしであり、奇数番号のみが格納される。
【００８４】
図１２は、本発明の第１の実施形態のシーケンシャルではない順番によって要求する場合のネットワーク帯域を示す説明図である。図１２は、図１１に示すアクセスパターン１１６に対応する。
【００８５】
図１２に示す時間が”２”までに、ブロック１が転送される。次にアクセス場所予測部１０６は、アクセスパターン解析部１０３を介して取得したアクセスパターン１１６に示される、ファイルサーバ１５に転送を要求したファイルの情報に基づいて、クライアントのＰＣ１０がブロック１の次はブロック２を要求すると予測し、キャッシュ制御部１０８にブロック２をプレフェッチさせる。しかし、実際はアプリケーションからブロック３が要求され、キャッシュにブロック３が存在せず、キャッシュミスとなるため、キャッシュ制御部１０８は、ブロック３の転送をファイルサーバ１５に要求する。
【００８６】
アクセスパターン解析部１０３は、クライアントのＰＣ１０からのファイル要求が発生すると、前回要求されたブロックと、今回要求されたブロックの統計を取り、アクセスパターン１１６を更新する。これによって、アクセス場所予測部１０６は、次にどのブロックが要求されるかを予測できる。
【００８７】
時刻が”１０”〜”１５”においてブロック３が転送された後、アクセス場所予測部１０６は、アクセスパターン１１６に示される、ファイルサーバ１５に転送を要求したファイルの情報に基づいて、次はブロック５を要求すると予測し、キャッシュ制御部１０８にブロック５をプレフェッチさせる。その後、ブロック７が要求された場合、ブロック７がファイルサーバ１５から転送される。
【００８８】
（アクセス場所予測部１０６）
アクセス場所予測部１０６は、アクセスパターン解析部１０３から取得された、現在ファイルを要求している部位に基づいて、次は最も数字の近い部位が要求されると予測する。例えば図９に示すファイルを要求する場合、ブロック１を要求すると、次は隣接するブロック２を要求すると予測する。また、アクセスパターン解析部１０３から取得されたブロック番号に基づいて、要求される順番の一つ飛ばしなどの規則性を判定し、次に要求されるブロックを予測する。
【００８９】
（帯域予測部１０７）
図１３は、本発明の第１の実施形態の帯域を予測する処理を示すフローチャートである。図１３に示す帯域予測部１０７による処理は、図５に示すステップ２１１に相当する。
【００９０】
帯域予測部１０７は、図１３に示すフローによって、アプリケーションがファイルを処理するためのアクセス速度、すなわち、アプリケーションが必要とする単位時間あたりのデータ量を予測し、要求帯域を決定する。まず、帯域予測部１０７は、ファイルのうち一部分のブロックの転送が終了すると（ステップ４０１）、転送したブロックの番号及びサイズと、転送終了時の時刻とをアクセスパターン１１６から取得する（ステップ４０２、ステップ４０３）。さらに、帯域予測部１０７は、取得したブロックのサイズと、転送終了時の時刻とを保存する（ステップ４０４）。
【００９１】
再び他のブロックが要求されたことをアクセスパターン解析部１０３から取得した場合（ステップ４０５）、要求されたブロックの転送が開始される（ステップ４０６）。この時、帯域予測部１０７は、転送開始の時刻をアクセスパターン１１６から取得する（ステップ４０７）。この転送開始の時刻と、ステップ４０３において取得された転送終了の時刻との差を算出し（ステップ４０８）、算出された差を、アプリケーションがブロックを処理した時間とみなし、前回転送されたブロックのサイズを、この時間によって割ることで、アプリケーションのアクセス速度を求める（ステップ４０９）。例えば、図８に示す例では、アプリケーションがブロック１とブロック２とを処理した時間は、各々５秒であり、アプリケーションのアクセス速度は、５１２バイト／５秒である。
【００９２】
（キャッシュ制御部１０８）
図１４は、本発明の第１の実施形態のキャッシュ情報蓄積部１１７の構成を示す説明図である。
【００９３】
キャッシュ情報蓄積部１１７には、ヘッダ領域６０１とデータ領域６０２との組が含まれる。ヘッダ領域６０１は、プレフェッチする対象のファイルの情報を含み、すなわち、サーバ名６０３、ファイル名６０４、ファイルＩＤ６０５、データ領域上のデータの位置であるポインタ６０６、ブロックの大きさ６０７、及び、合計のブロックサイズ６０８を含む。ファイルＩＤ６０５には、クライアントのＰＣ１０から要求されたファイルを一意に示す識別子が格納される。
【００９４】
データ領域には、ブロックごとのプレフェッチの有無を示す情報６０９と、実際のファイルのデータ６１０とが含まれる。キャッシュ情報蓄積部１１７は、プレフェッチする対象のファイル毎に、図１４に示すヘッダ領域６０１とデータ領域６０２との組を、複数個保持する。
【００９５】
図１５は、本発明の第１の実施形態のキャッシュ制御部１０８のプレフェッチの処理を示すフローチャートである。
【００９６】
キャッシュ制御部１０８は、アクセス場所予測部１０６及び帯域予測部１０７からコマンドの解析結果とプレフェッチするブロックの場所と、プレフェッチのための要求帯域とを取得する（ステップ５００）。なお、アクセスパターン解析部１０３は、キャッシュ制御部１０８がクライアントのＰＣ１０へ一つのブロックを送信する旨を、キャッシュ制御部１０８から通知された場合、アクセスパターン１１６を参照し、次のブロックのプレフェッチをさせるため、アクセス場所予測部１０６及び帯域予測部１０７にプレフェッチするブロックの場所と、プレフェッチのための要求帯域とをキャッシュ制御部１０８に送らせる。
【００９７】
キャッシュ制御部１０８は、コマンドの種類がファイルのオープンであるか否かを判定する（ステップ５０１）。コマンドの種類がファイルのオープンである場合、キャッシュ制御部１０８は、キャッシュ情報蓄積部１１７のヘッダ領域６０１にオープンの対象となるファイル名６０４を格納することによってキャッシュ情報蓄積部１１７を初期化する（ステップ５０２）。
【００９８】
ステップ５０１においてコマンドの種類がオープンではないと判定された場合、キャッシュ制御部１０８は、コマンドの種類が読み込みか否かを判定する（ステップ５０３）。コマンドの種類がファイルの読み込みである場合、ファイルの情報が既にキャッシュ情報蓄積部１１７にあるか否かを判定する（ステップ５０４）。ファイルの情報が既にキャッシュ情報蓄積部１１７にある場合、キャッシュ制御部１０８は、キャッシュ情報蓄積部１１７からファイルの情報を取得し、クライアントのＰＣ１０に送信する（ステップ５０５）。
【００９９】
なお、ステップ５０５においてキャッシュ制御部１０８は、アクセスパターン解析部１０３に”キャッシュヒット”である旨を通知してもよい。
【０１００】
ステップ５０４において、ファイルの情報がキャッシュ情報蓄積部１１７にないと判定された場合、キャッシュ制御部１０８は、キャッシュミスであると判定し、ファイルの送信を１１４へ依頼するためステップ５０８に移行する。
【０１０１】
ステップ５０３において、コマンドの種類がファイルの読み込みではないと判定された場合、キャッシュ制御部１０８は、コマンドの種類がファイルのクローズであるか否かを判定する（ステップ５０６）。コマンドの種類がファイルのクローズであると判定された場合、キャッシュ制御部１０８は、キャッシュ情報蓄積部１１７のヘッダ領域６０１及びデータ領域６０２のうち、クローズとなるファイルに相当する領域を解放、すなわち削除する（ステップ５０７）。
【０１０２】
ステップ５０６において、コマンドの種類がファイルのクローズではないと判定された場合、コマンドの種類が、オープン、読み込み及びクローズのいずれでもないため、コマンドをファイルサーバ１５に送信するため、ステップ５０８に移行する。
【０１０３】
なお、ステップ５００〜ステップ５０４、ステップ５０６は、図５に示すステップ２０６に相当する。また、ステップ５０５は、図２に示すステップ２０７〜ステップ２０９に相当する。
【０１０４】
ステップ５０２、ステップ５０４、又はステップ５０６の後、キャッシュ制御部１０８は、コマンドを要求生成部１１１へ送信する（ステップ５０８）。ステップ５０８は、図５に示すステップ２１４に相当する。
【０１０５】
要求生成部１１１によってコマンドがファイルサーバ１５に送信された後、キャッシュ制御部１０８は、コマンドに対応するレスポンスをファイルサーバ１５から取得し（ステップ５０９）、取得したレスポンスに対応するコマンドを解析する（ステップ５１０）。
【０１０６】
ステップ５１０の結果に基づいて、キャッシュ制御部１０８は、ステップ５０９において受信したコマンドの種類がファイルのオープンであるか否かを判定する（ステップ５１１）。コマンドの種類がファイルのオープンであると判定された場合、キャッシュ制御部１０８は、ヘッダ領域６０１のうちコマンドの対象となるファイルに該当するサーバ名６０３及びファイル名６０４を含むレコードのファイルＩＤ６０５に、オープンしたファイルのＩＤを格納する（ステップ５１２）。
【０１０７】
ステップ５１１において、ステップ５０９において受信したレスポンスに対応するコマンドがファイルのオープンではないと判定された場合、キャッシュ制御部１０８は、レスポンスに含まれるファイルＩＤが、キャッシュ情報蓄積部１１７に格納されたファイルＩＤ６０５と一致するか否かを判定する（ステップ５１３）。レスポンスに含まれるファイルＩＤ６０５がキャッシュ情報蓄積部１１７に格納されたファイルが一致しない場合、キャッシュ制御部１０８は、受信したレスポンスを無視、すなわち、受信したレスポンスをそのままレスポンス部生成部１０５に転送する（ステップ５１８）。
【０１０８】
ステップ５１３において、レスポンスに含まれるファイルＩＤがキャッシュ情報蓄積部１１７に格納されたファイルＩＤ６０５と一致する場合、キャッシュ制御部１０８は、レスポンスに対応するコマンドの種類が、ファイルの読み込みであるか否かを判定する（ステップ５１４）。レスポンスに対応するコマンドの種類が読み込みではないと判定された場合、キャッシュ制御部１０８は、受信したレスポンスを無視、すなわち、受信したレスポンスをそのままレスポンス部生成部１０５に転送する（ステップ５１８）。
【０１０９】
ステップ５１４において、レスポンスに対応するコマンドの種類が読み込みであると判定された場合、キャッシュ制御部１０８は、読み込んだファイルのプレフェッチするためにステップ５１５に移行する。ステップ５１５においてキャッシュ制御部１０８は、読み込んだファイルのブロックを保存する領域がキャッシュ情報蓄積部１１７にあるか否かを判定する（ステップ５１５）。
【０１１０】
読み込んだファイルのブロックを保存する領域がキャッシュ情報蓄積部１１７にある場合、キャッシュ制御部１０８は、読み込んだファイルのブロックをキャッシュ情報蓄積部１１７に格納することによって、プレフェッチする（ステップ５１７）。読み込んだファイルを保存する領域がキャッシュ情報蓄積部１１７になく、領域が足りない場合、キャッシュ制御部１０８は、長時間アクセスされていないファイルに該当する領域を削除し（ステップ５１６）、読み込み範囲の情報を格納することによって、プレフェッチする（ステップ５１７）。ステップ５１３〜ステップ５１８は、図５に示すステップ２１７に相当する。
【０１１１】
なお、特にプレフェッチするための手順を前述したが、通常のファイルについても、同様な手順によって転送してもよい。その際は、ステップ５００において、キャッシュ制御部１０８はコマンド解析部１０２からコマンドの解析結果を送られる。そして、ステップ５１７において、キャッシュ情報蓄積部１１７にファイルのブロックを格納した後、ファイルのブロックを転送した旨をアクセスパターン解析部１０３に通知し、読み込んだファイルをクライアントのＰＣ１０に送信する。
【０１１２】
また、ステップ５１７において読み込んだファイルをキャッシュ情報蓄積部１１７に格納する際に、キャッシュ制御部１０８は、図１４に示すブロックごとのプレフェッチの有無を示す情報６０９のうち、ファイルを格納する場所に相当する部分に、プレフェッチによって格納されたブロックであることを示す場合は”１”を格納し、通常の転送によって格納されたブロックであることを示す場合は、”０”を格納する。
【０１１３】
（帯域計算部１０９）
図１６は、本発明の第１の実施形態の帯域計算部１０９の処理を示すフローチャートである。
【０１１４】
まず帯域計算部１０９は、総帯域取得部１１３からネットワークの総帯域を取得する（ステップ７０１）。総帯域取得部１１３は、ネットワーク１３又はファイルサーバ側のゲートウェイ１４から、ファイルキャッシュ装置１１に割り当てられたネットワーク帯域を取得することによってネットワーク総帯域を取得し、取得したネットワーク帯域を帯域計算部１０９に送る。
【０１１５】
さらに帯域計算部１０９は、ネットワークモニタリング部１１２から、現在の業務帯域とプレフェッチの帯域とを取得する（ステップ７０２）。これによって、現在のネットワークの空き帯域を算出する（ステップ７０３）。
【０１１６】
なお、業務帯域とは、ファイルキャッシュ装置１１によって行われるプレフェッチ以外の通常の転送が用いるネットワーク帯域である。また、プレフェッチの帯域とは、プレフェッチに用いられるネットワーク帯域である。プレフェッチの帯域は、ネットワークの総帯域と業務帯域との差分よりも、小さくなければいけない。
【０１１７】
ネットワークモニタリング部１１２は、要求生成部１１１から送信される要求が、プレフェッチであるかプレフェッチ以外であるかを判定し、業務帯域とプレフェッチの帯域とを算出する。
【０１１８】
図１７は、本発明の第１の実施形態の業務帯域とプレフェッチの帯域とを示す説明図である。ネットワークの総帯域１７００から、業務帯域とプレフェッチの帯域とを差し引いた量が、空き帯域である。
【０１１９】
一方帯域計算部１０９は、キャッシュ制御部１０８からファイルにアクセスするために必要な帯域である要求帯域を取得する（ステップ７０４）。
【０１２０】
帯域計算部１０９は、ステップ３０３において算出した空き帯域と、ステップ７０４において取得した要求帯域を比較し、要求帯域が空き帯域を超えているか否かを判定する（ステップ７０３）。要求帯域が空き帯域を超えていると判定された場合、帯域計算部１０９は、空き帯域を超えない範囲で要求帯域を小さくする（ステップ７０６）。
【０１２１】
ステップ７０５において、要求帯域が空き帯域を超えず、空き帯域よりも少ない場合、帯域計算部１０９は、キャッシュ制御部１０８から送信された要求帯域通りにプレフェッチをさせるため、ステップ７０７に移行する。
【０１２２】
ステップ７０６又はステップ７０５において要求帯域が決まった後、帯域計算部１０９は、帯域予約部１１０に帯域の予約を依頼する（ステップ７０７）。その後、帯域予約部１１０は、要求帯域に従って、クライアント側のゲートウェイ１２、ネットワーク１３、又はファイルサーバ側のゲートウェイ１４の帯域を予約する。
【０１２３】
図１６に示す処理は、図５に示すステップ２１２に相当する。
【０１２４】
第１の実施形態によれば、アプリケーションによるデータの処理速度に従って帯域を制御し、かつ、業務帯域を圧迫しないことによって、ネットワーク１３に過大な負荷をかけずに適切な速度によってプレフェッチすることが可能となる。
【０１２５】
（第２の実施形態）
図１８は、本発明の第２の実施形態のネットワーク構成を示すブロック図である。
【０１２６】
本発明の第２の実施形態のファイルキャッシュ装置１８１１は、第１の実施形態のファイルキャッシュ装置１１は、クライアントのＰＣ１０のアプリケーション又はＯＳなどのソフトウェアとして実装され、機能及び動作についても、第１の実施形態のファイルキャッシュ装置１１と同じである。
【０１２７】
なお、第２の実施形態においては１８１１をクライアントのＰＣ１０内に実装したが、本発明のファイルキャッシュ装置は、ＷＡＮアクセラレータ、ルータ、又はスイッチなどのハードウェア製品、及び、アプリケーション、又は、ＯＳなどのソフトウェア製品にも適用可能である。
【符号の説明】
【０１２８】
１０    クライアントのＰＣ
１１    ファイルキャッシュ装置
１２    クライアント側のゲートウェイ
１３    ネットワーク
１４    ファイルサーバ側のゲートウェイ
１５    ファイルサーバ
１６    管理サーバ側のゲートウェイ
１７    管理サーバ
２０    制御部
２１    スイッチ
２２    インターフェイスカード
２３    パケット処理部
２４    パケット蓄積部
２５    各種情報蓄積部
８０    プロセッサ
９０    メモリ
１０２  コマンド解析部
１０３  アクセスパターン解析部
１０４  時刻取得部
１０５  レスポンス生成部
１０６  アクセス場所予測部
１０７  帯域予測部
１０８  キャッシュ制御部
１０９  帯域計算部
１１０  帯域予約部
１１１  要求生成部
１１２  ネットワークモニタリング部
１１３  総帯域取得部
１１６  アクセスパターン
１１７  キャッシュ情報蓄積部
【図１】
2011191856.tif 000003
【図２】
2011191856.tif 000004
【図３】
2011191856.tif 000005
【図４】
2011191856.tif 000006
【図５】
2011191856.tif 000007
【図６】
2011191856.tif 000008
【図７】
2011191856.tif 000009
【図８】
2011191856.tif 000010
【図９】
2011191856.tif 000011
【図１０】
2011191856.tif 000012
【図１１】
2011191856.tif 000013
【図１２】
2011191856.tif 000014
【図１３】
2011191856.tif 000015
【図１４】
2011191856.tif 000016
【図１５】
2011191856.tif 000017
【図１６】
2011191856.tif 000018
【図１７】
2011191856.tif 000019
【図１８】
2011191856.tif 000020
【図１９】
2011191856.tif 000021