(57)【特許請求の範囲】
【請求項１】
記憶部と、
情報送信手段と、
第１のキャッシュメモリと
を有する情報端末、及び
ディスク装置である記憶装置より高速にアクセス可能な第２のキャッシュメモリと、
キャッシュ処理手段と
を有するサーバ
を備えた情報処理システムであって、
前記記憶部は、自端末で稼働するアプリケーションからのファイルに対するアクセス要求情報を格納し、
前記情報送信手段は、前記記憶部の内容を基に、前記ファイルに含まれるアクセス対象のデータに関する情報を生成し、生成した前記アクセス対象のデータに関する情報を前記サーバがプリフェッチ処理に用いる情報として、前記ファイルを管理する前記サーバに送信し、
前記情報送信手段は、前記アクセス対象のデータが前記第１のキャッシュメモリに格納されている場合に、該前記アクセス対象のデータについての、前記アクセス対象のデータに関する情報を前記アクセス対象のデータに関する情報に含まないように制御し、
前記キャッシュ処理手段は、前記情報端末より送信された前記アクセス対象のデータに関する情報を基に、前記ファイルから該当する前記アクセス対象のデータを読み込み、読み込んだ前記アクセス対象のデータを前記第２のキャッシュメモリに格納する
情報処理システム。
【請求項２】
前記情報送信手段は、前記記憶部に格納された前記ファイルに対するアクセス要求情報のうち、読み込み要求に相当する前記ファイルに対するアクセス要求情報の内容を基に、前記アクセス対象のデータに関する情報を生成し、生成した前記アクセス対象のデータに関する情報を前記プリフェッチ処理に用いる情報として、前記ファイルを管理する前記サーバに送信する
請求項１記載の情報処理システム。
【請求項３】
前記情報送信手段は、前記記憶部に格納された前記ファイルに対するアクセス要求情報があらかじめ定めた一定量を超えたときに、
前記記憶部に格納された前記ファイルに対するアクセス要求情報の内容を基に、前記アクセス対象のデータに関する情報を生成し、生成した前記アクセス対象のデータに関する情報を前記プリフェッチ処理に用いる情報として、前記ファイルを管理する前記サーバに送信する
請求項１又は２に記載の情報処理システム。
【請求項４】
前記アクセス対象のデータに関する情報は、
前記情報端末を識別する情報と、
前記ファイルを識別する情報と、
前記ファイルの読み込みを開始する位置を表す情報と、
前記ファイルを前記位置から読み込む量を表す情報と、
前記ファイルを前記位置から読み込む方向を表す情報と
を含む
請求項１乃至３の何れか一項に記載の情報処理システム。
【請求項５】
記憶部と、
第１のキャッシュメモリと
を有する情報端末、及び
ディスク装置である記憶装置より高速にアクセス可能な第２のキャッシュメモリ
を有するサーバ
を備えた情報処理システムを用いた制御方法において、
前記記憶部によって、自端末で稼働するアプリケーションからのファイルに対するアクセス要求情報を格納し、
前記情報端末によって、
前記記憶部の内容を基に、前記ファイルに含まれるアクセス対象のデータに関する情報を生成し、
生成した前記アクセス対象のデータが前記第１のキャッシュメモリに格納されている場合に、該前記アクセス対象のデータについての、前記アクセス対象のデータに関する情報を前記アクセス対象のデータに関する情報に含まないように制御し、
制御した前記アクセス対象のデータに関する情報を前記サーバがプリフェッチ処理に用いる情報として、前記ファイルを管理する前記サーバに送信し、
前記サーバによって、前記情報端末より送信された前記アクセス対象のデータに関する情報を基に、前記ファイルから該当する前記アクセス対象のデータを読み込み、読み込んだ前記アクセス対象のデータを前記第２のキャッシュメモリに格納する、
情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報端末、情報処理システムおよびデータ読み込み方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
一般的なアプリケーションプログラムは、データが格納されたファイル等から必要なデータを読み込み、その読み込んだデータを用いて処理を行う。そのため、データの読み込みにかかる時間は、アプリケーションプログラムの性能（処理時間）に大きな影響を与える。
【０００３】
データの読み込み性能を向上させる方法として、事前先読み（プリフェッチ）がある。プリフェッチは、将来アプリケーションプログラムが読み込む可能性の高いデータを、事前に低速なディスクから読み込み、そのデータを高速なメモリ（キャッシュメモリ）に格納しておくことにより、読み込み性能を向上させる方法である。その方法として、主に以下の二種類の方法がある。
【０００４】
第一の方法は、サーバにおいて、サーバのキャッシュメモリの存在や配置を把握して、適切な処理を行う方法（Ｓｅｒｖｅｒ−ｉｎｉｔｉａｔｅｄ  ｒｅｐｌｉｃａ）である。この方法は、サーバが管理するデータにアクセスする場合、サーバは、キャッシュメモリに格納されたデータの配置情報を基に、サーバのディスクと、キャッシュメモリのどちらからそのデータを読むかを判断する。また、サーバは、各クライアントからアクセスされたときのデータアクセスパターンに関する履歴情報を基に、これから読み込むデータを推定して、キャッシュメモリに格納する。
【０００５】
第二の方法は、クライアントにおいて独自にキャッシュメモリを生成する方法（Ｃｌｉｅｎｔ−ｉｎｉｔｉａｔｅｄ  ｒｅｐｌｉｃａ）である。この方法を使用した場合、クライアントは、クライアントのキャッシュメモリに格納されたデータの配置情報を持つ。そして、クライアントは、一部のアクセスについて、クライアントに閉じて処理する。すなわち、クライアントは、自端末のキャッシュメモリに格納されていないデータにアクセスする場合は、サーバにアクセスするが、自端末のキャッシュメモリに格納されたデータにアクセスする場合は、サーバにアクセスしない。
【０００６】
ここで、関連技術としては、例えば以下の特許文献がある。
【０００７】
特許文献１に開示された通信システムは、ファイル管理サーバに格納されたファイルを、クライアント端末やファイル管理サーバに分割キャッシュしておく。そして、そのシステムは、ダウンロード要求を受けて、指定されたデータが分割キャッシュに存在するか否かを判断し、存在すれば分割キャッシュからそのデータを使用する。
【０００８】
特許文献２は、端末からの要求に応じて、対象ユーザ以外の他のユーザのアクセス情報を基に、アプリケーション実行のために先読みすべきファイルのリストをサーバが作成する通信システムを開示している。
【０００９】
特許文献３は、コンテンツを表示する視聴者装置のキャッシュサーバに、購入されると予想されるコンテンツをあらかじめ書き込んでおく情報提供システムを開示している。
【００１０】
特許文献４に開示されたホームページデータ収集方法は、キャッシュサーバが、クライアントから転送されたホームページのＵＲＬアドレスからなるアクセスリストを基に、ホームページデータを収集する。その後、キャッシュサーバは、クライアントと接続して、そのホームページデータをクライアントに引き取らせる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１３−０２０５７５号公報
【特許文献２】特開２０１０−２３８１１４号公報
【特許文献３】特開２００３−０９９３５４号公報
【特許文献４】特開２０００−３１５１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上述の第一の方法は、サーバが多くの情報を管理および制御しなければいけないという問題がある。また、サーバがアクセスパターンを推測するため、そのプリフェッチは、シーケンシャル読み込みを行うアプリケーションに関しては有効でも、ランダム読み込みを行うアプリケーションに関しては無駄となるケースが多く存在する。
【００１３】
さらに、上述の第二の方法は、クライアントとサーバにおいて二重にデータを管理することとなる。そのため、クライアントは、比較的頻繁にサーバに対して、一貫性を維持するための確認を行わなければいけないという問題がある。また、クライアントは、アプリケーションからアクセスするように要求されたデータがクライアントにキャッシュされているデータであるとき、サーバにアクセスしない。そのため、サーバは、アクセスパターンを推測することが難しくなり、サーバのプリフェッチが非効率となってしまう。
【００１４】
特許文献１乃至４に提案されている技術を用いても、アプリケーションプログラムの実行時間を短縮するために有効なプリフェッチを行うことは期待できず、その課題を解決するに至らない。
【００１５】
そこで、本発明は、サーバに格納されたデータを効率的に読み込むことが可能な情報端末等の提供を主たる目的とする。
【課題を解決するための手段】
【００１６】
上記の目的を達成すべく、本発明の一態様に係る情報端末は、以下の構成を備える。
【００１７】
即ち、本発明の一態様に係る情報端末は、
自端末で稼働するアプリケーションからのファイルに対するアクセス要求情報が格納される記憶部と、
前記記憶部の内容を基に、そのファイルに含まれるアクセス予定のデータに関する情報を生成し、生成した前記情報をサーバがプリフェッチ処理に用いる情報として、前記ファイルを管理する前記サーバに送信する情報送信手段と
を含む。
【００１８】
同目的を達成する本発明の一態様に係る情報処理システムは、
ディスク等の記憶装置より高速にアクセス可能なキャッシュメモリと、
前記情報端末より送信された前記情報を基に前記ファイルから該当するデータを読み込み、前記キャッシュメモリに格納するキャッシュ処理手段とを
有する前記サーバと、
前記情報端末と
を含む。
【００１９】
同目的を達成する本発明の一態様に係るデータ読み込み方法は、
自端末で稼働するアプリケーションからのファイルに対するアクセス要求情報が格納される記憶部の内容を基に、そのファイルに含まれるアクセス予定のデータに関する情報を生成し、生成した前記情報を、前記ファイルを管理するサーバに送信し、その情報を基に前記サーバがプリフェッチ処理を行う。
【００２０】
更に、同目的は、上記構成を有する情報端末、情報処理システム、或いは、データ読み込み方法を、コンピュータによって実現するためのコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００２１】
上記の本発明によれば、サーバに格納されたデータを効率的に読み込むことができるという効果がある。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施形態に係る情報端末の構成を中心に示すブロック図である。
【図２】本発明の第２の実施形態に係る情報処理システムの構成を示すブロック図である。
【図３】本発明の第２の実施形態に係る情報処理システムのプリフェッチ処理について、クライアント端末における処理を説明するフローチャートである。
【図４】本発明の第２の実施形態に係る情報処理システムのプリフェッチ処理について、サーバにおける処理を説明するフローチャートである。
【図５】本発明の第２の実施形態に係る情報処理システムの先読み情報を説明する図である。
【図６】本発明の第２の実施形態に係る情報処理システムのファイル読み込み処理について、クライアント端末における処理を説明するフローチャートである。
【図７】本発明の第２の実施形態に係る情報処理システムのファイル読み込み処理について、サーバにおける処理を説明するフローチャートである。
【図８】本発明の第２の実施形態に係る情報処理システムのプリフェッチ解放処理を説明するフローチャートである。
【図９】本発明の第１および第２の実施形態を実現可能なコンピュータ（情報処理装置）のハードウェア構成を例示的に説明する図である。
【発明を実施するための形態】
【００２３】
次に、本発明を実施する形態について図面を参照して詳細に説明する。
【００２４】
＜第１の実施形態＞
本発明の第１の実施形態に係る情報端末の構成を中心に示すブロック図である。
【００２５】
本実施形態に係る情報端末１は、アクセス要求情報を格納する記憶部２と、情報送信部３を有する。
【００２６】
記憶部２は、情報端末１で稼働するアプリケーション（図示せず）からのファイル（データファイル）５に対するアクセス要求情報が格納される。
【００２７】
情報送信部３は、記憶部２の内容を基に、そのファイル５に含まれるアクセス予定のデータに関する情報を生成し、生成した情報をサーバ４がプリフェッチ処理に用いる情報として、ファイル５を管理するサーバ４に送信する。
【００２８】
以上、説明したように、第１の実施形態には、サーバに格納されたデータを効率的に読み込む、つまり取得することができるという効果がある。
【００２９】
その理由は、本実施形態に係る情報端末１は、アプリケーションからのアクセス要求情報が格納された記憶部２の内容を基に、そのファイル５に含まれるアクセス予定のデータに関する情報をサーバ４に送信するからである。また、その情報（先読み情報）は、サーバ４がプリフェッチ処理に用いる情報であるからである。したがって、その情報を受信したサーバ４は、その情報を基に、プリフェッチを行うことが可能となる。そして、サーバ４は、情報端末１からのアクセスに対して、先読みされプリフェッチされたデータを効率的に読み取り、情報端末１に提供することが可能となるからである。
【００３０】
＜第２の実施形態＞
次に上述した第１の実施形態に係るクライアント端末を基本とする第２の実施形態について説明する。図２は、本発明の第２の実施形態に係る情報処理システムの構成を示すブロック図である。ただし、図２に示す構成は、一例であって、本発明は、図２に示す情報処理システムに限定されない。
【００３１】
本実施形態に係る情報処理システムは、クライアント端末１０と、サーバ３０とを有する。
【００３２】
クライアント端末１０は、制御部２０と、ファイル処理部１０１と、キャッシュメモリ１０２とを備える。
【００３３】
キャッシュメモリ１０２は、ディスク等の記憶装置より高速にアクセス可能なメモリである。
【００３４】
制御部２０は、リクエスト受付部２０１と、リクエスト処理部２０２と、先読み情報送信部２０３と、キュー２０４とを含む。ファイル処理部１０１と、先読み情報送信部２０３は、第１の実施形態の情報送信部３の他の一例である。また、制御部２０は、アプリケーション（図示せず）を実装する。
【００３５】
キュー２０４は、第１の実施形態における記憶部２に対応する。キュー２０４は、ユーザからのリクエストが格納され、格納した順番に処理される。キュー２０４に格納されたリクエストは、書き込みや読み込みなどの命令種別を表す情報を含む。例えば、読み込みのリクエストである場合、リクエストは、さらに、読み込み予定の対象ファイルを識別する情報と、ファイルの読み込みを開始する位置を表す情報と、その位置から読み込む量を表す情報と、その位置から読み込む方向を表す情報とを含む。
【００３６】
リクエスト受付部２０１は、ユーザ（アプリケーション）からファイルアクセスに関するリクエストを受け付ける。リクエスト受付部２０１は、受け付けたリクエストを示す内容をキュー２０４に格納する。一般的なアプリケーションは、ＵＩ（ユーザインタフェース、Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を用いて、この機能を実現する。
【００３７】
リクエスト処理部２０２は、キュー２０４に格納されたユーザからのリクエストを処理する。具体的にリクエスト処理部２０２は、書き込みまたは読み込みのリクエストをファイル処理部１０１に送る。そして、リクエスト処理部２０２は、リクエストに対してファイル処理部１０１から渡される内容を受け取る。
【００３８】
先読み情報送信部２０３は、キュー２０４に格納されたリクエスト内容を基に、アプリケーションが読み込む予定のデータに関する情報を生成し、その情報をファイル処理部１０１に送る。ここで、読み込む予定のデータに関する情報は、アプリケーションの実行において先読みが必要なデータに関する情報であり、つまりそれは、先読み情報である。先読み情報送信部２０３は、例えば、キュー２０４に格納されたリクエストがあらかじめ定めた一定量を超えたら、キュー２０４の内容を基に処理、すなわち、先読みが必要なデータに関する情報の生成とファイル処理部１０１への送信を行う。
【００３９】
ファイル処理部１０１は、リクエスト処理部２０２および先読み情報送信部２０３から受け取った情報を処理する。
【００４０】
ファイル処理部１０１は、リクエスト処理部２０２から読み込みのリクエストを受け取った場合、クライアント端末１０のキャッシュメモリ１０２に読み込み対象のデータが格納されているかを確認する。格納されている場合、ファイル処理部１０１は、キャッシュメモリ１０２からそのデータを読み込み、読み込んだデータをリクエスト処理部２０２に渡す。キャッシュメモリ１０２に読み込み対象のデータが格納されていない場合、ファイル処理部１０１は、サーバ３０に問い合わせる。すなわち、ファイル処理部１０１は、キャッシュメモリ１０２に格納されていない情報を読み込むためのリクエストをサーバ４に送信する。
【００４１】
ファイル処理部１０１は、先読み情報送信部２０３から先読みが必要なデータに関する情報（先読み情報）を受け取った場合、その情報をサーバ３０に送る。
【００４２】
サーバ３０は、受信部３０１と、先読み情報処理部３０３と、アクセス処理部３０４と、キャッシュ処理部３０５と、記憶装置３０６と、キャッシュメモリ３０７と、キャッシュ情報記憶部３０８とを有する。
【００４３】
記憶装置３０６は、例えば、ユーザデータを格納するディスク装置であり、そこに格納されるデータは、アプリケーションで使用するデータを含む。
【００４４】
キャッシュメモリ３０７は、ディスク等の記憶装置３０６より高速にアクセス可能なメモリである。
【００４５】
キャッシュ情報記憶部３０８は、キャッシュメモリ３０７に関して、容量と、使用量と、格納されているデータに関する情報とを含む。容量は、キャッシュメモリ３０７の大きさを表す情報である。使用量は、キャッシュメモリ３０７のうちで、データを格納することにより使用している量を表す情報である。格納されているデータに関する情報は、格納されているデータの内容を表す情報と、格納位置を表す情報と、格納時刻とを含む。格納されているデータの内容を表す情報は、例えば、後述される図５に示すファイル、オフセット、サイズなどの情報である。格納位置を表す情報は、キャッシュメモリ３０７のどこに格納されているかを表す値であり、例えば、キャッシュメモリ３０７におけるオフセットである。格納時刻は、そのデータをキャッシュメモリ３０７に格納した時刻を表す情報である。
【００４６】
サーバ３０の受信部３０１は、クライアント端末１０から読み込みのリクエストを受け取った場合、アクセス処理部３０４にそのリクエストを送る。さらに、受信部３０１は、先読み情報処理部３０３にリクエストされた読み込み対象データの次のデータを先読みするように指示する。
【００４７】
アクセス処理部３０４は、キャッシュ情報記憶部３０８に格納された情報を基に、読み込み対象のデータがキャッシュメモリ３０７に格納されているか否かを判断する。アクセス処理部３０４は、キャッシュメモリ３０７に格納されている場合、キャッシュメモリ３０７からそのデータを読み込み、読み込んだデータをクライアント端末１０に渡す。格納されていない場合は、アクセス処理部３０４は、記憶装置３０６から対象のデータを読み込み、読み込んだデータをクライアント端末１０に渡す。
【００４８】
また、受信部３０１は、クライアント端末１０から先読み情報を受信して、先読み情報処理部３０３に受信した情報を送る。
【００４９】
先読み情報処理部３０３は、受け取った先読み情報を基に、キャッシュ処理部３０５に対して先読みの指示を出す。
【００５０】
また、先読み情報処理部３０３は、受信部３０１の指示を受けて、読み込み対象データの次に読み込むデータを先読みするようキャッシュ処理部３０５に対して指示を出す。
【００５１】
キャッシュ処理部３０５は、記憶装置３０６からデータを読み込み、キャッシュメモリ３０７に格納する。キャッシュ処理部３０５は、データ格納後のキャッシュメモリ３０７の内容を表すように、キャッシュ情報記憶部３０８を更新する。
【００５２】
次に、本実施形態におけるプリフェッチ処理の流れについて、図３および図４を用いて説明する。図３は、本発明の第２の実施形態に係る情報処理システムのプリフェッチ処理について、クライアント端末における処理を説明するフローチャートである。図４は、本発明の第２の実施形態に係る情報処理システムのプリフェッチ処理について、サーバにおける処理を説明するフローチャートである。
【００５３】
クライアント端末１０の先読み情報送信部２０３は、キュー２０４に格納されたリクエスト内容を基に、アプリケーションが読み込む予定のデータのリストを作成する（ステップＳ１１０）。すなわち、先読み情報送信部２０３は、キュー２０４に格納されたリクエスト内容から命令種別を表す情報が読み込みに相当する内容であるリクエストを抽出して、そのリストを作成する。そのリストは、先読みが必要なデータに関する情報であり、先読み情報である。
【００５４】
図５は、本発明の第２の実施形態に係る情報処理システムの先読み情報を説明する図である。図５によれば、先読み情報は、「クライアント」と、「ファイル」と、「オフセット」と、「サイズ」と、「読み込み方向」とを含む。
【００５５】
「クライアント」は、自クライアント端末を識別する情報であり、例えば、自クライアント端末の名前、もしくは自クライアント端末が一意に定まる情報（例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス）である。
【００５６】
「ファイル」は、読み込み予定の対象ファイルを識別する情報であり、例えば、読み込み予定の対象ファイルのファイル名である。
【００５７】
「オフセット」は、ファイルの読み込みを開始する位置を表す情報であり、例えば、ファイルの読み込みを開始するオフセット番号である。ファイルのすべてのデータを読み込む場合、「オフセット」は、例えば、「０」である。
【００５８】
「サイズ」は、ファイルを「オフセット」が表す位置から読み込む量を表す情報であり、例えば、「オフセット」に設定したオフセット番号から何バイトのデータを読み込むかを表す値である。すべてを読み込む場合、「サイズ」は、例えば、「−１」である。
【００５９】
「読み込み方向」は、ファイルを「オフセット」が表す位置から読み込む方向を表す情報であり、例えば、設定したオフセット番号から順方向に読むか、もしくは逆方向に読むかを表す情報である。通常、ファイルアクセスは、順方向への読み込みとなるが、ビデオのノンリニア編集などの場合を想定し、逆方向も可能としている。
【００６０】
先読み情報送信部２０３は、これらの情報を、キュー２０４に格納された情報から生成する。
【００６１】
次に、先読み情報送信部２０３は、作成したリストに含まれる、すでにキャッシュメモリ１０２に存在しているデータに関する情報をそのリストから削除する（ステップＳ１２０）。これは、すでにキャッシュメモリ１０２に存在しているデータは、先読みする必要がないからである。
【００６２】
それから、そのリストを、先読み情報送信部２０３は、ファイル処理部１０１経由でサーバ３０に送信する（ステップＳ１３０）。
【００６３】
サーバ３０の受信部３０１は、送信されたリストを受信した場合、先読み情報処理部３０３に、そのリストを送る。
【００６４】
先読み情報処理部３０３は、そのリストを基に、キャッシュ処理部３０５に先読みの指示を出す。
【００６５】
キャッシュ処理部３０５は、そのリストに含まれるすべてのデータに対して、以下の処理（図４におけるＳ２１０〜Ｓ２３０）を繰り返し実行する。
【００６６】
はじめに、キャッシュ処理部３０５は、そのデータをキャッシュメモリ３０７に格納した場合の、キャッシュメモリ３０７の使用量がキャッシュメモリ３０７の容量を超えないかを確認する（ステップＳ２１０）。容量を超える場合(ステップＳ２１０で「Ｙｅｓ」)、キャッシュ処理部３０５は、そのデータに関して処理を行わない。容量を超えない場合(ステップＳ２１０で「Ｎｏ」)、キャッシュ処理部３０５は、そのデータをキャッシュメモリに格納済か否かを判定する（ステップＳ２２０）。格納済の場合(ステップＳ２２０で「Ｙｅｓ」)、キャッシュ処理部３０５は、そのデータに関して処理を行わない。格納されていない場合（ステップＳ２２０で「Ｎｏ」）、キャッシュ処理部３０５は、そのデータを記憶装置３０６から読み込み、読み込んだデータをキャッシュメモリ３０７に格納する（ステップＳ２３０）。キャッシュ処理部３０５は、データ格納後のキャッシュメモリ３０７の内容を表すように、キャッシュ情報記憶部３０８を更新する。
【００６７】
リストに含まれるすべてのデータに対して処理が終わるまで、ステップＳ２１０からの処理を繰り返す(ステップＳ２４０)。
【００６８】
ここまで、サーバ３０がクライアント端末１０から読み込み予定のリストを受け取ったときに、先読みする動作について説明した。サーバ３０は、さらに、読み込み要求を受けとったときにも、読み込み対象データの次のデータを先読みして、キャッシュメモリ３０７に格納する。
【００６９】
次に、本実施形態におけるファイル読み込み処理の流れについて、図６および図７を用いて説明する。図６は、本発明の第２の実施形態に係る情報処理システムのファイル読み込み処理について、クライアント端末における処理を説明するフローチャートである。図７は、本発明の第２の実施形態に係る情報処理システムのファイル読み込み処理について、サーバにおける処理を説明するフローチャートである。
【００７０】
アプリケーションから読み込み要求があった場合、ファイル処理部１０１は、まずクライアント端末１０のキャッシュメモリ１０２にそのデータが格納されているか否かを確認する（ステップＳ３１０）。対象のデータが格納されている場合（ステップＳ３１０で「Ｙｅｓ」）、ファイル処理部１０１は、キャッシュメモリ１０２から、そのデータを読み込む（ステップＳ３３０）。もし、キャッシュメモリ１０２に対象のデータが格納されていない場合（ステップＳ３１０で「Ｎｏ」）、ファイル処理部１０１は、サーバ３０に問い合わせる（ステップＳ３２０）。すなわち、ファイル処理部１０１は、キャッシュメモリ１０２に格納されていないデータを読み込むためのリクエストをサーバ４に送信する。
【００７１】
そして、ファイル処理部１０１は、ステップＳ３２０における問い合わせに対して渡されたデータ、またはステップＳ３３０により読み込まれたデータをアプリケーションに渡す（ステップＳ３４０）。
【００７２】
サーバ３０の受信部３０１は、クライアント端末１０から問い合わせを受けて、その問い合わせ内容を表す情報を、アクセス処理部３０４に渡す。
【００７３】
次に、アクセス処理部３０４は、キャッシュ情報記憶部３０８を参照して、キャッシュメモリ３０７にそのデータが格納されているか否かを判定する（ステップＳ４１０）。対象のデータが格納されている場合（ステップＳ４１０で「Ｙｅｓ」）、アクセス処理部３０４は、キャッシュメモリ３０７から、そのデータを読み込む（ステップＳ４３０）。もし、キャッシュメモリ３０７に対象のデータが格納されていない場合（ステップＳ４１０で「Ｎｏ」）、アクセス処理部３０４は、記憶装置３０６からデータを読み込む（ステップＳ４２０）。
【００７４】
そして、サーバ３０は、ステップＳ４２０またはステップＳ４３０により読み込まれたデータをクライアント端末１０に渡す（ステップＳ４４０）。
【００７５】
次に、本実施形態におけるプリフェッチ解放処理の流れについて、図８を用いて説明する。図８は、本発明の第２の実施形態に係る情報処理システムのプリフェッチ解放処理を説明するフローチャートである。
【００７６】
プリフェッチ解放処理は、キャッシュメモリ３０７に格納してから、あらかじめ定めた一定時間を過ぎたデータをキャッシュメモリ３０７から削除する処理である。プリフェッチ解放処理は、定期的に、例えば、あらかじめ定めた時間ごとに実行される。
【００７７】
キャッシュ処理部３０５は、キャッシュメモリ３０７に格納されたすべてのデータに対して、以下の処理を行う。
【００７８】
キャッシュ処理部３０５は、キャッシュ情報格納部３０８を参照して、データが格納されてから、一定時間が経過しているかを判定する（ステップＳ５１０）。
【００７９】
一定時間が経過している場合（ステップＳ５１０で「Ｙｅｓ」）、キャッシュ処理部は、
キャッシュメモリ３０７からそのデータを削除する（ステップＳ５２０）。そして、キャッシュ処理部３０５は、データ削除後のキャッシュメモリ３０７の内容を表すように、キャッシュ情報記憶部３０８を更新する。
【００８０】
キャッシュ３０７に格納された、すべてのデータに対して処理が終わるまで、ステップＳ５１０からの処理を繰り返す(ステップＳ５３０)。
【００８１】
以上、説明したように、第２の実施形態には、サーバに格納されたデータを効率的に読み込むことができるという効果がある。
【００８２】
その理由は、本実施形態に係る情報処理システムは、クライアント端末で動作するアプリケーションが読み込む予定のデータに関する情報を基に、サーバでプリフェッチ処理を行うからである。
【００８３】
これにより、サーバは、無駄なキャッシュをする可能性が格段に減り、より効率的なプリフェッチが可能となる。
【００８４】
さらに、サーバは、必要なデータのみをキャッシュすることができ、管理および制御する情報を少なくすることができるため、必要となるメモリの量を削減することができる。
【００８５】
また、クライアント端末は、キューに格納されたリクエストがあらかじめ定めた一定量を超えたら、先読みが必要なデータに関する情報の生成とその情報のサーバへの送信を行うようにすればよい。そうすれば、クライアント端末は、クライアント端末とサーバの間の通信量を考慮した制御を行うことが可能である。
【００８６】
（ハードウェア構成）
上述した実施形態において図１および図２に示した各部は、専用の装置または回路によって実現してもよいが、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることもできる。但し、これらの図面に示した各部の実装に際しては、様々な構成が想定され得る。このような場合のハードウェア環境の一例を、図９を参照して説明する。
【００８７】
図９は、本発明の第１および第２の実施形態を実現可能なコンピュータ（情報処理装置）のハードウェア構成を例示的に説明する図である。即ち、図９は、図１に示したクライアント端末および図２に示した情報処理システムの全体または一部を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００８８】
図９に示した情報処理装置９０００は、以下の装置を備え、これらがバス９００７を介して接続された構成を有する。
【００８９】
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９００１、
・ディスプレイ９００２、
・通信インタフェース（Ｉ／Ｆ）９００３、
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９００４、
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９００５および
・ハードディスク装置（ＨＤ）９００６。
【００９０】
ハードディスク装置９００６には、プログラム群９００６Ａと、各種の記憶情報９００６Ｂとが格納されている。プログラム群９００６Ａは、例えば、上述した図１に示したクライアント端末および図２に示した情報処理システムの各ブロック（各部）に対応する機能を実現するためのコンピュータ・プログラムである。各種の記憶情報９００６Ｂは、例えば、図２に示した記憶装置３０６である。通信インタフェース９００３は、ネットワーク９１００を介して外部装置と通信を実現する一般的な通信手段である。
【００９１】
そして、情報処理装置９０００は、前述の実施形態の説明において参照したブロック図、あるいは、フローチャートの機能を実現可能なコンピュータ・プログラムを、当該ハードウェアのＣＰＵ９００１が実行する。すなわち、ＣＰＵ９００１は、コンピュータ・プログラムを、図９に示す情報処理装置９０００のハードウェア資源を用いて実行することによって本発明の実施形態の機能が達成される。具体的には、図２に示した情報処理システムを、情報処理装置９０００によって実現する場合、情報処理装置９０００は、図３、４、６〜８に示すフローチャートの処理ステップを実行するためのコンピュータ・プログラムをＣＰＵ９００１が実行すればよい。また、情報処理装置９０００内に供給されたコンピュータ・プログラムは、読み書き可能なＲＡＭ９００５、またはハードディスク装置９００６等の不揮発性の記憶デバイス（記憶媒体）に格納すればよい。
【００９２】
また、上述の場合において、当該装置内へのコンピュータ・プログラムの供給方法は、現在では一般的な手順を採用することができる。その方法は、例えば、ＣＤ−ＲＯＭ等の各種記憶媒体を介して当該装置内にインストールする方法や、インターネット等のネットワーク９１００を介して外部からダウンロードする方法等である。そして、このような場合において、本発明の実施形態は、係るコンピュータ・プログラムを構成するコード或いは、そのコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
【００９３】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００９４】
１    情報端末
２    記憶部
３    情報送信部
４    サーバ
５    ファイル
１０    クライアント端末
２０    制御部
３０    サーバ
１０１    ファイル処理部
１０２    キャッシュメモリ
２０１    リクエスト受付部
２０２    リクエスト処理部
２０３    先読み情報送信部
２０４    キュー
３０１    受信部
３０３    先読み情報処理部
３０４    アクセス処理部
３０５    キャッシュ処理部
３０６    記憶装置
３０７    キャッシュメモリ
３０８    キャッシュ情報記憶部
９０００    情報処理装置
９００１    ＣＰＵ
９００２    ディスプレイ
９００３    通信インタフェース
９００４    ＲＯＭ
９００５    ＲＡＭ
９００６    ハードディスク装置
９００６Ａ    プログラム群
９００６Ｂ    各種の記憶情報
９００７    バス
９１００    ネットワーク
【図１】
0006707824.tif 000002
【図２】
0006707824.tif 000003
【図３】
0006707824.tif 000004
【図４】
0006707824.tif 000005
【図５】
0006707824.tif 000006
【図６】
0006707824.tif 000007
【図７】
0006707824.tif 000008
【図８】
0006707824.tif 000009
【図９】
0006707824.tif 000010