(57)【要約】【課題】ファイルのダウンロードを抑制し、パフォーマンスを向上させることができる仮想ファイル処理システム及び仮想ファイル処理プログラムを提供する。【解決手段】クライアントコンピュータ２と、ネットワーク１を介してクライアントコンピュータ２と通信可能に接続されるリモートストレージ３と、を備える仮想ファイル処理システム１００であって、クライアントコンピュータ２は、ファイルシステム１３からの要求を処理する要求処理手段１７を備え、該要求処理手段１７は、ファイルシステム１３から読み込み要求があった仮想ファイルの断片データをクライアントコンピュータ２のローカルストレージ１１にキャッシュし、以降、ファイルシステム１３から同一仮想ファイルの同一断片データの読み込み要求があった場合、ローカルストレージ１１にキャッシュされた断片データをファイルシステム１３に渡す。【選択図】図３
2020095588.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータと、
ネットワークを介して前記クライアントコンピュータと通信可能に接続されるリモートストレージと、を備える仮想ファイル処理システムであって、
前記クライアントコンピュータは、
当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、
前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記リモートストレージにアップロードし、且つ、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡す要求処理手段と、を備え、
前記要求処理手段は、前記ファイルシステムから読み込み要求があった仮想ファイルの断片データを前記クライアントコンピュータのローカルストレージにキャッシュし、以降、前記ファイルシステムから同一仮想ファイルの同一断片データの読み込み要求があった場合、前記ローカルストレージにキャッシュされた断片データを前記ファイルシステムに渡すことを特徴とする仮想ファイル処理システム。
【請求項２】
前記断片データは、仮想ファイルをサムネイル表示又はプレビュー表示するためのデータであることを特徴とする請求項１に記載の仮想ファイル処理システム。
【請求項３】
前記ローカルストレージにキャッシュされた断片データは、前記クライアントコンピュータをシャットダウンしても保持されることを特徴とする請求項１又は２に記載の仮想ファイル処理システム。
【請求項４】
前記ローカルストレージにキャッシュされた断片データは、対応する仮想ファイルの書き込み要求に応じて消去されることを特徴とする請求項１〜３のいずれか１項に記載の仮想ファイル処理システム。
【請求項５】
ネットワークを介してリモートストレージと通信可能に接続されるクライアントコンピュータを動作させる仮想ファイル処理プログラムであって、
前記クライアントコンピュータを、
当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、
前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記リモートストレージにアップロードし、且つ、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡す要求処理手段と、として機能させ、
前記要求処理手段は、前記ファイルシステムから読み込み要求があった仮想ファイルの断片データを前記クライアントコンピュータのローカルストレージにキャッシュし、以降、前記ファイルシステムから同一仮想ファイルの同一断片データの読み込み要求があった場合、前記ローカルストレージにキャッシュされた断片データを前記ファイルシステムに渡すことを特徴とする仮想ファイル処理プログラム。
【請求項６】
前記断片データは、仮想ファイルをサムネイル表示又はプレビュー表示するためのデータであることを特徴とする請求項５に記載の仮想ファイル処理プログラム。
【請求項７】
前記ローカルストレージにキャッシュされた断片データは、前記クライアントコンピュータをシャットダウンしても保持されることを特徴とする請求項５又は６に記載の仮想ファイル処理プログラム。
【請求項８】
前記ローカルストレージにキャッシュされた断片データは、対応する仮想ファイルの書き込み要求に応じて消去されることを特徴とする請求項５〜７のいずれか１項に記載の仮想ファイル処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントコンピュータ上のファイルを仮想化し、ファイルの実体をリモートストレージに保存する仮想ファイル処理システム及び仮想ファイル処理プログラムに関する。
【背景技術】
【０００２】
クライアントコンピュータ上のファイルを仮想化し、ファイルの実体をリモートストレージに保存する仮想ファイル処理システムが知られている（例えば、特許文献１参照）。この種の仮想ファイル処理システムは、クライアントコンピュータが、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対するファイルシステムからの要求をフックするファイル仮想化手段と、ファイルシステムから仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体をリモートストレージにアップロードし、且つ、ファイルシステムから仮想ドライブに対する仮想ファイルの読み込み要求に応じてリモートストレージから仮想ファイルの実体をダウンロードしてファイルシステムに渡す要求処理手段と、を備えることにより実現できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１４８９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、クライアントコンピュータのファイルシステムは、ユーザがファイルを利用しない場合であっても、サムネイル表示やプレビュー表示などの目的でファイルの読み込みを要求する場合がある。このような読み込み要求では、ファイル全体を利用するのではなく、ファイルの一部しか利用しないにも拘わらず、要求処理手段がリモートストレージからファイル全体をダウンロードするため、ファイルのダウンロードが頻発し、パフォーマンスが低下する虞がある。
【課題を解決するための手段】
【０００５】
本発明は、上記の如き実情に鑑みこれらの課題を解決することを目的として創作されたものであって、請求項１の発明は、クライアントコンピュータと、ネットワークを介して前記クライアントコンピュータと通信可能に接続されるリモートストレージと、を備える仮想ファイル処理システムであって、前記クライアントコンピュータは、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記リモートストレージにアップロードし、且つ、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡す要求処理手段と、を備え、前記要求処理手段は、前記ファイルシステムから読み込み要求があった仮想ファイルの断片データを前記クライアントコンピュータのローカルストレージにキャッシュし、以降、前記ファイルシステムから同一仮想ファイルの同一断片データの読み込み要求があった場合、前記ローカルストレージにキャッシュされた断片データを前記ファイルシステムに渡すことを特徴とする。
また、請求項２の発明は、請求項１に記載の仮想ファイル処理システムであって、前記断片データは、仮想ファイルをサムネイル表示又はプレビュー表示するためのデータであることを特徴とする。
また、請求項３の発明は、請求項１又は２に記載の仮想ファイル処理システムであって、前記ローカルストレージにキャッシュされた断片データは、前記クライアントコンピュータをシャットダウンしても保持されることを特徴とする。
また、請求項４の発明は、請求項１〜３のいずれか１項に記載の仮想ファイル処理システムであって、前記ローカルストレージにキャッシュされた断片データは、対応する仮想ファイルの書き込み要求に応じて消去されることを特徴とする。
また、請求項５の発明は、ネットワークを介してリモートストレージと通信可能に接続されるクライアントコンピュータを動作させる仮想ファイル処理プログラムであって、前記クライアントコンピュータを、当該クライアントコンピュータのファイルシステムに仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対する前記ファイルシステムからの要求をフックするファイル仮想化手段と、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体を前記リモートストレージにアップロードし、且つ、前記ファイルシステムから前記仮想ドライブに対する仮想ファイルの読み込み要求に応じて前記リモートストレージから仮想ファイルの実体をダウンロードして前記ファイルシステムに渡す要求処理手段と、として機能させ、前記要求処理手段は、前記ファイルシステムから読み込み要求があった仮想ファイルの断片データを前記クライアントコンピュータのローカルストレージにキャッシュし、以降、前記ファイルシステムから同一仮想ファイルの同一断片データの読み込み要求があった場合、前記ローカルストレージにキャッシュされた断片データを前記ファイルシステムに渡すことを特徴とする。
また、請求項６の発明は、請求項５に記載の仮想ファイル処理プログラムであって、前記断片データは、仮想ファイルをサムネイル表示又はプレビュー表示するためのデータであることを特徴とする。
また、請求項７の発明は、請求項５又は６に記載の仮想ファイル処理プログラムであって、前記ローカルストレージにキャッシュされた断片データは、前記クライアントコンピュータをシャットダウンしても保持されることを特徴とする。
また、請求項８の発明は、請求項５〜７のいずれか１項に記載の仮想ファイル処理プログラムであって、前記ローカルストレージにキャッシュされた断片データは、対応する仮想ファイルの書き込み要求に応じて消去されることを特徴とする。
【発明の効果】
【０００６】
請求項１又は５の発明によれば、ファイルシステムから同一仮想ファイルの同一断片データの読み込み要求があった場合、ローカルストレージにキャッシュされた断片データをファイルシステムに渡すので、リモートストレージからのファイルのダウンロードを抑制し、パフォーマンスを向上させることができる。また、断片データをキャッシュするので、ファイル全体をキャッシュする場合に比べて、キャッシュ容量を抑制できるだけでなく、セキュリティの低下を回避できる。
請求項２又は６の発明によれば、断片データは、仮想ファイルをサムネイル表示又はプレビュー表示するためのデータなので、サムネイル表示やプレビュー表示のパフォーマンスを向上させることができる。
請求項３又は７の発明によれば、ローカルストレージにキャッシュされた断片データは、クライアントコンピュータをシャットダウンしても保持されるので、次回の起動以降においても、リモートストレージからのファイルのダウンロードを抑制できる。
請求項４又は８の発明によれば、ローカルストレージにキャッシュされた断片データは、対応する仮想ファイルの書き込み要求に応じて消去されるので、キャッシュされた断片データと更新された仮想ファイルとの間の不整合を防止できる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態に係る仮想ファイル処理システムの概略構成を示すブロック図である。
【図２】クライアントコンピュータのハードウェア構成を示すブロック図である。
【図３】クライアントコンピュータの機能構成を示すブロック図である。
【図４】断片データキャッシュ機能（キャッシュデータが無い場合）の説明図である。
【図５】断片データキャッシュ機能（キャッシュデータが有る場合）の説明図である。
【図６】断片データ読み込み要求時の処理手順を示す処理シーケンス図である。
【図７】ファイル書き込み要求時の処理手順を示す処理シーケンス図である。
【発明を実施するための形態】
【０００８】
［仮想ファイル処理システム］
以下、本発明の実施の形態について、図面に基づいて説明する。図１において、１００は仮想ファイル処理システムであって、該仮想ファイル処理システム１００は、クライアントコンピュータ２と、リモートストレージ３（クラウドストレージ）と、これらを通信可能に接続するインターネットなどのネットワーク１と、を備えて構成されている。
【０００９】
［クライアントコンピュータ］
図２に示すように、クライアントコンピュータ２は、ＣＰＵ５、ＲＡＭ６、ＲＯＭ７、入力部８、表示部９、通信部１０及びローカルストレージ１１を備えており、これらがバス１２を介して接続されている。
【００１０】
ＣＰＵ５は、中央制御装置であり、ＲＯＭ７やローカルストレージ１１に記憶されている各種プログラムをＲＡＭ６上に読み出して実行し、各部の制御を行う。ＲＡＭ６は、揮発性のメモリであり、各種プログラムの一時的な記憶領域やＣＰＵ５の作業領域として使用される。ＲＯＭ７は、不揮発性のメモリであり、ＢＩＯＳなどの基本プログラムが記憶されている。また、入力部８は、キーボード、マウスなどの入力装置であり、表示部９は、液晶ディスプレイなどの表示装置であり、通信部１０は、ネットワーク１を介したリモートストレージ３との通信を可能にする通信インタフェースである。
【００１１】
ローカルストレージ１１は、ハードディスクドライブなどの不揮発性記憶装置であり、ファイルシステム１３を含むオペレーティングシステム、各種のアプリケーションソフト１４、アプリケーションソフト１４で作成した各種のファイル（非仮想ファイル）などに加え、本発明に係る仮想ファイル処理プログラム１５が格納されている。仮想ファイル処理プログラム１５は、クライアントコンピュータ２上のファイルを仮想化し、ファイルの実体をリモートストレージ３に保存するソフトウェアであり、その詳細は後述する。
【００１２】
［リモートストレージ］
リモートストレージ３は、クライアントコンピュータ２からネットワーク１を介してファイルの書き込み及び読み出しが可能な遠隔記憶装置である。本発明の実施形態に係るクライアントコンピュータ２は、仮想ファイル処理プログラム１５との協働により、リモートストレージ３に対するファイルの書き込み及び読み出しを自動的に行う。
【００１３】
［仮想ファイル処理プログラム］
本発明の実施形態に係る仮想ファイル処理プログラム１５は、ローカルストレージ１１に格納されており、例えばクライアントコンピュータ２の起動に際して自動的に起動される。そして、仮想ファイル処理プログラム１５は、図３に示すように、クライアントコンピュータ２を、後述するファイル仮想化手段１６、要求処理手段１７、アップロード管理手段１８及びリモートストレージアダプタ１９として機能させる。これら機能構成の詳細は後述する。
【００１４】
また、仮想ファイル処理プログラム１５は、図３に示すように、ローカルストレージ１１にローカルキャッシュ領域２１、断片データキャッシュ領域２２などのキャッシュ領域を確保する。ローカルキャッシュ領域２１は、リモートストレージ３からダウンロードしたファイルの実体、リモートストレージ３にアップロードするファイルの実体、リモートストレージ３に保存されている仮想ファイルの一覧情報などを格納するキャッシュ領域であり、ダウンロードしたファイルの実体及びアップロードしたファイルの実体は、セキュリティ上、クライアントコンピュータ２又は仮想ファイル処理プログラム１５のシャットダウン時に消去されるが、仮想ファイル一覧情報は、クライアントコンピュータ２や仮想ファイル処理プログラム１５がシャットダウンされても保持される。
【００１５】
仮想ファイル一覧情報は、アプリケーションソフト１４が仮想ファイルの一覧表示を行う際に必要な情報群（ファイル実体を除く）であり、具体的には、リモートストレージ３において仮想ファイルを特定するためのキー情報、クライアントコンピュータ２における仮想ファイルのパス、仮想ファイルのファイル名、仮想ファイル又はディレクトリを一意に表すＩＤ、仮想ファイルのサイズ（ｂｙｔｅ）、仮想ファイルのファイル属性、仮想ファイルのファイル作成日時、ファイルアクセス日時、ファイル最終更新日時、仮想ファイルとディレクトリとを識別するフォルダフラグ、リモートストレージ３に対する最終アップロード日時、仮想ファイルの圧縮後のファイルサイズ、仮想ファイルの圧縮の有無を識別する圧縮フラグ、通常の仮想ファイルと削除された仮想ファイルを識別する削除フラグ、リモートストレージ３に対するアップロードの有無を識別するアップロードフラグなどの項目が含まれている。
【００１６】
断片データキャッシュ領域２２は、サムネイル表示やプレビュー表示などを目的として、ファイルシステム１３から仮想ファイルの断片データの読み込み要求があったとき、その断片データをローカルストレージ１１にキャッシュするための領域であり、ここにキャッシュされた断片データは、クライアントコンピュータ２や仮想ファイル処理プログラム１５がシャットダウンされても保持されるが、対応する仮想ファイルの書き込み要求に応じて消去される。なお、図３の符号２３は、ローカルストレージ１１に格納された非仮想ファイル群を示す。
【００１７】
ファイル仮想化手段１６は、ファイルシステム１３に仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対するファイルシステム１３からの要求をフックし、要求処理手段１７に処理を要求する機能構成である。具体的に説明すると、ファイル仮想化手段１６は、ファイルシステム１３から仮想ファイル一覧情報の読み込み要求があった場合、これを要求処理手段１７に要求するとともに、要求処理手段１７から仮想ファイル一覧情報を受け取ってファイルシステム１３に渡す。また、ファイル仮想化手段１６は、ファイルシステム１３から仮想ファイルの読み込み要求があった場合、これを要求処理手段１７に要求するとともに、要求処理手段１７から仮想ファイルの実体を受け取ってファイルシステム１３に渡す。また、ファイル仮想化手段１６は、ファイルシステム１３から仮想ファイルの書き込み要求があった場合、書き込むファイルの実体を要求処理手段１７に渡し、リモートストレージ３にアップロードさせる。
【００１８】
また、ファイル仮想化手段１６は、ＲＡＭ６上のキャッシュ領域であるオンメモリキャッシュ１６ａを確保し、要求処理手段１７との間で送受したデータをオンメモリキャッシュ１６ａにキャッシュする。例えば、ファイルシステム１３から仮想ドライブに対する仮想ファイルの読み込み要求があった場合、ファイル仮想化手段１６は、該当ファイルの実体がオンメモリキャッシュ１６ａにあるか否かを確認し、オンメモリキャッシュ１６ａに該当ファイルの実体があるときは、要求処理手段１７に読み込み要求を行うことなく、オンメモリキャッシュ１６ａにある該当ファイルの実体をファイルシステム１３に渡す。また、ファイルシステム１３から仮想ドライブに対する仮想ファイルの書き込み要求があった場合、ファイル仮想化手段１６は、該当ファイルの実体をオンメモリキャッシュ１６ａにキャッシュするか、書き込み要求の有無を他の手段が確認するための情報をオンメモリキャッシュ１６ａに登録する。
【００１９】
要求処理手段１７は、ファイルシステム１３（ファイル仮想化手段１６）からの要求に応じて、仮想ファイル一覧情報の読み込み処理、仮想ファイルの実体のダウンロード処理、仮想ファイルの実体のアップロード処理などを行う。具体的に説明すると、要求処理手段１７は、ファイルシステム１３から仮想ファイル一覧情報の読み込み要求があった場合、ローカルキャッシュ領域２１から仮想ファイル一覧情報を読み込み、これをファイル仮想化手段１６を介してファイルシステム１３に渡す。
【００２０】
また、要求処理手段１７は、ファイルシステム１３から仮想ファイルの読み込み要求があった場合、該当ファイルの実体がローカルキャッシュ領域２１にあるか否かを確認し、ローカルキャッシュ領域２１にある場合は、ローカルキャッシュ領域２１から読み出した該当ファイルの実体をファイル仮想化手段１６を介してファイルシステム１３に渡す。一方、要求処理手段１７は、該当ファイルの実体がローカルキャッシュ領域２１にない場合、リモートストレージアダプタ１９を介してリモートストレージ３から該当ファイルの実体をダウンロードし、これをローカルキャッシュ領域２１にキャッシュするとともに、ファイル仮想化手段１６を介してファイルシステム１３に渡す。
【００２１】
また、要求処理手段１７は、ファイルシステム１３から仮想ファイルの書き込み要求があった場合、書き込むファイルの実体をローカルキャッシュ領域２１に書き込み、その後、アップロード管理手段１８によってリモートストレージ３にアップロードさせる。そして、要求処理手段１７は、各種の処理を実行した後、処理内容に応じて仮想ファイル一覧情報を更新する。
【００２２】
アップロード管理手段１８は、オンメモリキャッシュ１６ａ又はローカルキャッシュ領域２１の一定時間毎の監視によってアップロードすべき仮想ファイルを検出した場合は、アップロード対象の仮想ファイルの実体をローカルキャッシュ領域２１から読み出し、リモートストレージアダプタ１９を介してリモートストレージ３にアップロードする。また、アップロード管理手段１８は、一定時間毎にローカルキャッシュ領域２１から仮想ファイル一覧情報を読み出し、リモートストレージアダプタ１９を介してリモートストレージ３にアップロードする。
【００２３】
リモートストレージアダプタ１９は、様々なリモートストレージ３に対応するために、アップロード管理手段１８などから分離されたアダプタである。つまり、仮想ファイル処理プログラム１５は、様々なリモートストレージ３に対応する複数のリモートストレージアダプタ１９を有し、使用するリモートストレージ３に応じてリモートストレージアダプタ１９が選択される。
【００２４】
［断片データキャッシュ機能］
つぎに、要求処理手段１７によって実現される断片データキャッシュ機能について、図４以降を参照して説明する。
【００２５】
図４に示すように、ファイルシステム１３は、ユーザがファイルを利用しない場合であっても、サムネイル表示やプレビュー表示などの目的で仮想ファイルの読み込みを要求する場合がある。このような読み込み要求では、ファイル全体を利用するのではなく、ファイルの一部しか利用しないにも拘わらず、要求処理手段１７は、リモートストレージ３からファイル全体をダウンロードする。その理由は、リモートストレージ３との間におけるデータ転送の最小指定単位がファイル単位だからである。しかしながら、このようなダウンロードが頻発すると、パフォーマンスが低下する虞がある。
【００２６】
要求処理手段１７は、ファイルシステム１３から読み込み要求があった仮想ファイルの断片データをローカルストレージ１１に確保された断片データキャッシュ領域２２にキャッシュし、以降、ファイルシステム１３から同一仮想ファイルの同一断片データの読み込み要求があった場合、ローカルストレージ１１の断片データキャッシュ領域２２にキャッシュされた断片データをファイルシステム１３に渡す。
【００２７】
このような断片データキャッシュ機能を備える仮想ファイル処理プログラム１５によれば、ファイルシステム１３から仮想ファイルの断片データの読み込み要求があった場合（Ｓ１１）、該当断片データが断片データキャッシュ領域２２にキャッシュされていない当初は、図４に示すように、リモートストレージ３から該当ファイル（実体）の全体又は一部をローカルキャッシュ領域２１にダウンロードし（Ｓ１２）、その一部である該当断片データをファイルシステム１３に渡すことになるが（Ｓ１３）、その際に該当断片データが断片データキャッシュ領域２２にキャッシュされる（Ｓ１４）。そして、図５に示すように、ファイルシステム１３から同一仮想ファイルの同一断片データの読み込み要求があった場合は（Ｓ２１）、リモートストレージ３から該当ファイル（実体）の全体をダウンロードすることなく、断片データキャッシュ領域２２にキャッシュされた該当断片データを読み出して、オンメモリキャッシュ１６ａへキャッシュするとともにファイルシステム１３に渡すことができるので（Ｓ２２）、ダウンロードの頻発を抑制し、パフォーマンスを向上させることができる。
【００２８】
なお、断片データキャッシュ領域２２に対するキャッシュは、サムネイル表示やプレビュー表示などを目的とする断片データの読み込み要求時に限らず、ファイル全体の読み込み要求時にも行うことができる。つまり、ほとんどのファイルは、すべてのデータを一度に読み出すことはなく、全体を読み出す場合であっても、ファイルを区切り部分的に読み出す操作を繰り返すため、これらの部分的な読み出しデータを断片データとして断片データキャッシュ領域２２にキャッシュすることができる。そして、キャッシュする断片データは、ファイルの位置と長さを特定する情報と一緒に記憶するとともに、１ファイルあたりの断片データのキャッシュサイズを制限することで、結果的に、読み出し順の最初の部分、すなわち高頻度に読み出される位置のデータを少ないキャッシュサイズで効率よく保持することが可能になる。
【００２９】
［仮想ファイル処理システムの処理手順］
つぎに、本発明の実施形態に係る仮想ファイル処理システム１００の処理手順について、図６及び図７を参照して説明する。
【００３０】
図６に示すように、クライアントコンピュータ２のユーザがアプリケーションソフト１４において仮想ファイルのサムネイル表示やプレビュー表示などのように仮想ファイルの断片データを要求する操作を行うと（Ｓ１０１）、ファイルシステム１３は、アプリケーションソフト１４からの要求（Ｓ１０２）に応じて、仮想ファイルの断片データの読み込み要求を行う（Ｓ１０３）。ファイル仮想化手段１６は、ファイルシステム１３からの仮想ファイルの断片データの読み込み要求をフックするとともに、該当断片データがオンメモリキャッシュ１６ａにあるか否かをチェックし（Ｓ１０４）、オンメモリキャッシュ１６ａにない場合は、要求処理手段１７に対して仮想ファイルの断片データの読み込みを要求する（Ｓ１０５）。
【００３１】
要求処理手段１７は、該当断片データが断片データキャッシュ領域２２にある場合は、該当断片データを断片データキャッシュ領域２２から読み出し（Ｓ１０６）、該当断片データが断片データキャッシュ領域２２にない場合は、ローカルキャッシュ領域２１に該当ファイルの実体が存在するか否かをチェックする（Ｓ１０７）。要求処理手段１７は、ローカルキャッシュ領域２１に該当ファイルの実体が存在しない場合、リモートストレージ３から該当ファイルの実体（全体）をダウンロードし（Ｓ１０８）、ローカルキャッシュ領域２１にキャッシュする。要求処理手段１７は、ローカルキャッシュ領域２１にキャッシュされた該当ファイルの該当断片データを読み出すとともに（Ｓ１０９）、断片データキャッシュ領域２２にキャッシュ済みの該当ファイルの断片データ合計サイズをチェックし（Ｓ１１０）、断片データ合計サイズが予め定められた上限（例えば、ファイルサイズの９０％以内）を超えていない場合は、該当断片データを断片データキャッシュ領域２２にキャッシュする（Ｓ１１１）。その後、読み出した該当断片データは、要求処理手段１７からファイル仮想化手段１６を介してファイルシステム１３に渡され（Ｓ１１２、Ｓ１１３）、さらにファイルシステム１３からアプリケーションソフト１４に渡される（Ｓ１１４）。
【００３２】
図７に示すように、クライアントコンピュータ２のユーザがアプリケーションソフト１４において仮想ファイルの書き込み操作を行うと（Ｓ２０１）、ファイルシステム１３は、アプリケーションソフト１４からの要求（Ｓ２０２）に応じて、仮想ファイルの書き込み要求を行う（Ｓ２０３）。ファイル仮想化手段１６は、ファイルシステム１３からの仮想ファイルの書き込み要求をフックするとともに、未アップロードファイルの存在を示す情報をオンメモリキャッシュ１６ａに書き込むとともに（Ｓ２０４）、要求処理手段１７に対して仮想ファイルの書き込みを要求する（Ｓ２０５）。
【００３３】
要求処理手段１７は、書き込みを行う仮想ファイルに対応する断片データが断片データキャッシュ領域２２に存在するか否かを判断するとともに、存在する場合は、それらの断片データを断片データキャッシュ領域２２から消去する（Ｓ２０６）。その後、要求処理手段１７は、書き込みを行う仮想ファイルの実体をローカルキャッシュ領域２１に書き込むとともに（Ｓ２０７）、処理の完了通知をファイル仮想化手段１６及びファイルシステム１３を介してアプリケーションソフト１４に送る（Ｓ２０８、Ｓ２０９、Ｓ２１０）。
【００３４】
また、図７に示すように、アップロード管理手段１８は、一定時間毎にアップロードすべき仮想ファイルの有無を判断し（Ｓ２１１）、アップロードすべき仮想ファイルがある場合は、アップロード対象の仮想ファイルの実体をローカルキャッシュ領域２１から読み出し（Ｓ２１２）、リモートストレージ３にアップロードする（Ｓ２１３）。
【００３５】
叙述の如く構成された本実施形態によれば、クライアントコンピュータ２と、ネットワーク１を介してクライアントコンピュータ２と通信可能に接続されるリモートストレージ３と、を備える仮想ファイル処理システム１００であって、クライアントコンピュータ２は、当該クライアントコンピュータ２のファイルシステム１３に仮想ファイルを格納する仮想ドライブを認識させ、該仮想ドライブに対するファイルシステム１３からの要求をフックするファイル仮想化手段１６と、ファイルシステム１３から仮想ドライブに対する仮想ファイルの書き込み要求に応じて仮想ファイルの実体をリモートストレージ３にアップロードし、且つ、ファイルシステム１３から仮想ドライブに対する仮想ファイルの読み込み要求に応じてリモートストレージ３から仮想ファイルの実体をダウンロードしてファイルシステム１３に渡す要求処理手段１７と、を備え、要求処理手段１７は、ファイルシステム１３から読み込み要求があった仮想ファイルの断片データをクライアントコンピュータ２のローカルストレージ１１にキャッシュし、以降、ファイルシステム１３から同一仮想ファイルの同一断片データの読み込み要求があった場合、ローカルストレージ１１にキャッシュされた断片データをファイルシステム１３に渡すので、リモートストレージ３からのファイルのダウンロードを抑制し、パフォーマンスを向上させることができる。また、断片データをキャッシュするので、ファイル全体をキャッシュする場合に比べて、キャッシュ容量を抑制できるだけでなく、セキュリティの低下を回避できる。
【００３６】
また、断片データは、仮想ファイルをサムネイル表示又はプレビュー表示するためのデータなので、サムネイル表示やプレビュー表示のパフォーマンスを向上させることができる。
【００３７】
また、ローカルストレージ１１キャッシュされた断片データは、クライアントコンピュータ２をシャットダウンしても保持されるので、次回の起動以降においても、リモートストレージ３からのファイルのダウンロードを抑制できる。
【００３８】
また、ローカルストレージ１１にキャッシュされた断片データは、対応する仮想ファイルの書き込み要求に応じて消去されるので、キャッシュされた断片データと更新された仮想ファイルとの間の不整合を防止できる。
【００３９】
なお、本発明は前記実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。例えば、前記実施形態では、断片データキャッシュ機能の作用及び効果を、サムネイル表示時やファイルのプレビュー表示時を例として説明したが、ＯＳや各種アプリケーションでは、サムネイル表示やプレビュー表示以外でも部分データの読み出しは頻繁に発生しており、このような読み出しにおいても断片データキャッシュ機能は有効に機能し、リモートストレージからのファイルのダウンロードを抑制できる。
【符号の説明】
【００４０】
１００  仮想ファイル処理システム
１  ネットワーク
２  クライアントコンピュータ
３  リモートストレージ
１１  ローカルストレージ
１３  ファイルシステム
１５  仮想ファイル処理プログラム
１６  ファイル仮想化手段
１７  要求処理手段
１８  アップロード管理手段
１９  リモートストレージアダプタ
２１  ローカルキャッシュ領域
２２  断片データキャッシュ領域
【図１】
2020095588.tif 000003
【図２】
2020095588.tif 000004
【図３】
2020095588.tif 000005
【図４】
2020095588.tif 000006
【図５】
2020095588.tif 000007
【図６】
2020095588.tif 000008
【図７】
2020095588.tif 000009