(57)【要約】      （修正有）【課題】シンクライアント端末装置において、システム更新データを二次記憶装置に書込む前のデータを退避させ、リアルタイムに該更新データを二次記憶装置に反映する方法を提供する。【解決手段】二次記憶装置に対する要求が書込み要求であった場合に、ファイルアクセス制御手段が、当該要求を行ったアプリケーションについて、前記二次記憶装置へのデータ書込みが許可されているか否かを判断し、第一の書込み制御手段が、前記書込みデータをリダイレクトしてキャッシュメモリに格納し、第二の書込み制御手段が、前記ファイルアクセス制御手段が前記二次記憶装置への書込みが許可されていると判断した場合、書込み要求が対象とする前記二次記憶装置内の領域のデータを前記キャッシュメモリに格納するように、前記第一の書込み制御手段に対して通知し、前記第一の書込み制御手段が、前記二次記憶装置からデータを読み込んで前記キャッシュメモリに格納する。【選択図】図１
2011053975.tif 000002
【特許請求の範囲】
【請求項１】
シンクライアントシステムの一部を構成する、二次記憶装置とキャッシュメモリとを備えた利用者端末装置であって、
前記二次記憶装置に対するＩ／Ｏ要求を判断し、前記Ｉ／Ｏ要求が書込み要求であった場合に、当該Ｉ／Ｏ要求を行ったアプリケーションについて、前記二次記憶装置へのデータ書込みが許可されているか否かを判断するファイルアクセス制御手段と、
前記書込み要求のあったデータをリダイレクトしてキャッシュメモリに格納する第一の書込み制御手段と、
前記書込みが許可されていると判断されたデータを前記二次記憶装置へ書込み要求を行う第二の書込み制御手段と、
を備え、
前記第二の書込み制御手段は、前記二次記憶装置へ前記書込み要求を行う前に、前記書込み要求が対象とする前記二次記憶装置内の領域のデータを前記キャッシュメモリに格納するように、前記第一の書込み制御手段に対して通知し、
前記第一の書込み制御手段は、前記通知を受け、前記二次記憶装置内の領域からデータを読み込んで前記キャッシュメモリに格納することを特徴とする利用者端末装置。
【請求項２】
前記第一の書込み制御手段と前記第二の書込み制御手段は、前記二次記憶装置内の同じ領域を管理していることを特徴とする請求項１記載の利用者端末装置。
【請求項３】
前記ファイルアクセス制御手段は、前記アプリケーションによる書込みが許可されていると判断した場合、前記第一の書込み制御手段および前記第二の書込み制御手段に書込み要求を転送し、
前記第一の書込み制御手段は、前記書込み要求のあったデータをリダイレクトしてキャッシュメモリに格納し、
前記第二の書込み制御手段は、前記二次記憶装置内の領域のデータが前記キャッシュメモリに格納された後、前記二次記憶装置へ前記書込み要求をリアルタイムに実行することを特徴とする請求項１記載の利用者端末装置。
【請求項４】
前記ファイルアクセス制御手段は、前記アプリケーションによる書込みが禁止されていると判断した場合、前記第一の書込み制御手段のみに書込み関連要求を転送し、
前記第一の書込み制御手段は、前記書込み要求のあったデータをリダイレクトしてキャッシュメモリに格納することを特徴とする請求項１記載の利用者端末装置。
【請求項５】
シンクライアントシステムの一部を構成する、二次記憶装置とキャッシュメモリとを備えた利用者端末装置の制御方法であって、
ファイルアクセス制御手段が、前記二次記憶装置に対するＩ／Ｏ要求を判断し、前記Ｉ／Ｏ要求が書込み要求であった場合に、当該Ｉ／Ｏ要求を行ったアプリケーションについて、前記二次記憶装置へのデータ書込みが許可されているか否かを判断するステップと、
第一の書込み制御手段が、前記書込み要求のあったデータをリダイレクトしてキャッシュメモリに格納するステップと、
第二の書込み制御手段が、前記ファイルアクセス制御手段が前記二次記憶装置への書込みが許可されていると判断した場合、前記書込み要求が対象とする前記二次記憶装置内の領域のデータを前記キャッシュメモリに格納するように、前記第一の書込み制御手段に対して通知するステップと、
前記第一の書込み制御手段が、前記通知を受け、前記二次記憶装置内の領域からデータを読み込んで前記キャッシュメモリに格納するステップと、
を備えることを特徴とする利用者端末装置の制御方法。
【請求項６】
さらに、前記第二の書込み制御手段が、前記アプリケーションについての書込みが許可されていると判断されたデータを前記二次記憶装置へ書込み要求を行うステップと、
を備えることを特徴とする請求項５記載の利用者端末装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者端末装置及び利用者端末装置の制御方法に関し、例えば、利用者データをファイルサーバに集約し、機密情報の紛失・漏洩防止を実現するシンクライアントシステムの一部を構成する利用者端末装置及び利用者端末装置の制御方法に関するものである。
【背景技術】
【０００２】
近年、ファイルサーバに保管されている重要データが利用者端末から拡散するのを防ぐためのシステムとして、シンクライアントシステムが考案されている。シンクライアントシステムは、端末内に不揮発性の二次記憶装置を装備しない端末（ディスクレスＰＣ）を使用するのが一般的であるが、書込みを制御した二次記憶装置を備えるＰＣ（パーソナル・コンピュータ）をシンクライアント端末として使用するシステムも存在する。
【０００３】
例えば、特許文献１では、二次記憶装置を持つ端末において、アプリケーションから二次記憶装置へ書込みが発生した場合、その書込みを主記憶装置（キャッシュメモリ）上へリダイレクトすることで、二次記憶装置への書込みを制限し、擬似的に二次記憶を持たない端末を実現している。
【０００４】
ディスクレスＰＣを使用する場合に比べ、書込み制御した二次記憶装置を備えるＰＣをシンクライアント端末として使用する場合、サーバサイドでの負荷が少ないため、インフラ構築等のコストを安価にできるメリットがある。このシステムによれば、ファイルサーバに保管されている重要データが拡散するのを防止することに加え、利用者による不適切なＯＳ設定変更や、アプリケーションのインストールを防止することも可能である。
【０００５】
一方、特許文献１のシステムは、ＯＳパッチ等のシステム更新データを、二次記憶装置に保存することができないため、システムを最新の状態に保てない。これに対し、システム更新データのみを利用者端末の二次記憶装置へ保存可能なシステムとして、特許文献２のようなシステムが提案されている。特許文献２では、ファイルシステムの下位に書込み可能フィルタデバイスと、書込み禁止フィルタデバイスの２つを生成する。そして、ファイルシステムの上位のフィルタドライバであるファイルアクセス制御ドライバで書込み禁止のファイルアクセスを検知して、書込み禁止フィルタデバイスにリダイレクトする。書込み可能ファイルは、通常通り二次記憶装置への書込みとして物理的に反映される。これにより、二次記憶装置への書込みに関して、ファイル・フォルダ単位の保存制御を実現している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１７２０６３号公報
【特許文献２】特開２００８−５９５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献２に記載されたシンクライアント端末は、リアルタイムに、システム更新データをＯＳ上の全てのアプリケーションに対して有効にするものではない。言い換えるなら、リアルタイムに更新データを書き込むことは可能だが、書込みを許可したアプリケーションからしかその更新データをリアルタイムに使用することが出来ない。全てのアプリケーションでシステム更新データを有効にするには再起動が必要である。これは、書込み許可のアプリケーションが書き込んだファイル・フォルダを、書込み禁止のアプリケーションが参照することができないためである。単純に、書込み禁止アプリケーションからの読み込み要求は書込み許可のファイル・フォルダへ、書込み要求は書込み禁止ファイル・フォルダへと振り分けると、ファイル整合性に問題がでるため困難である。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、リアルタイムにシステム更新データを二次記憶装置に書き込みつつ、再起動無しで、リアルタイムに、システム上の全てのアプリケーションから二次記憶装置に書き込んだ更新データを有効にする方法を提供するものである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明による利用者端末装置は、二次記憶装置に対するＩ／Ｏ要求を判断し、Ｉ／Ｏ要求が書込み要求であった場合に、当該Ｉ／Ｏ要求を行ったアプリケーションについて、二次記憶装置へのデータ書込みが許可されているか否かを判断するファイルアクセス制御手段（ファイルアクセス制御モジュール）と、読み書き要求を処理しかつ書込み要求のあったデータをリダイレクトしてキャッシュメモリに格納するボリュームフィルタデバイス及び書込み要求の処理及びボリュームフィルタデバイスに対して二次記憶装置からデータを読込んでキャッシュする要求を新たに命令することが可能な機能を持つシャドウボリュームデバイスを有する書込み制御手段（書込み制御モジュール）と、を備える。なお、ボリュームフィルタデバイスとシャドウボリュームデバイスは、同じボリューム領域を参照するボリュームフィルタの一種とする。
【００１０】
そして、ファイルアクセス制御手段が、書込み要求を行ったアプリケーションについて二次記憶装置への書込みが許可されていると判断した場合、ファイルアクセス制御手段自身は、Ｉ／Ｏを２重化してファイルシステムを経由してボリュームフィルタデバイスとシャドウボリュームデバイスに転送する。ボリュームフィルタデバイスは書込み要求のあったデータをキャッシュメモリに格納する。シャドウボリュームデバイスは、シャドウボリュームデバイスが書込む予定の領域をボリュームフィルタデバイスに事前に読み込ませてキャッシュメモリに格納させ、ボリュームフィルタデバイスの読込みが完了した後に、シャドウボリュームデバイスが書込みデータを二次記憶装置に書き込む。
【００１１】
また、ファイルアクセス制御手段が、書込み要求を行ったアプリケーションについて二次記憶装置への書込みが禁止されていると判断した場合には、ファイルアクセス制御手段自身は、書込みデータをファイルシステムを経由してボリュームフィルタデバイスへ転送し、ボリュームフィルタデバイスが、書込み要求のあったデータをキャッシュメモリに格納する。
【００１２】
ファイルアクセス制御手段が、Ｉ／Ｏ要求が読み込み要求であると判断した場合、ボリュームフィルタデバイスは、読み込み要求のあったデータをキャッシュメモリ又は二次記憶装置から読み込む。
【００１３】
さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
【発明の効果】
【００１４】
本発明によれば、二次記憶装置への書込みを制御した擬似シンクライアント端末装置において、リアルタイムにシステム更新データを二次記憶装置に反映し、シャットダウンを高速化することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態によるシンクライアントシステムの概略構成を示す図である。
【図２】利用者端末１０１の内部構成を示す図である。
【図３】ファイルアクセス制御モジュール１０６の動作を説明するためのフローチャートである。
【図４】ボリュームフィルタデバイス２１２(アプリケーション要求時)の動作を説明するためのフローチャートである。
【図５】ボリュームフィルタデバイス２１２(シャドウボリューム要求時)の動作を説明するためのフローチャートである。
【図６】シャドウボリュームデバイス２１３の動作を説明するためのフローチャートである。
【図７】起動時の動作を説明するためのフローチャートである。
【図８】アプリケーション制御ファイル２０６の構成例を示す図である。
【発明を実施するための形態】
【００１６】
本発明は、利用者端末の二次記憶装置への書込み制御、及び、外部記憶媒体への書出し制御により、利用者データをファイルサーバに集約し、機密情報の紛失・漏洩防止を実現するシンクライアントシステムの一部を構成する利用者端末装置及びデータ制御方法に関するものである。また、本発明は、先願（特願２００８−２７４０９９）を改良するものである。
【００１７】
先願（特願２００８−２７４０９９）であるシンクライアントシステムの一部を構成する利用者端末装置及びデータ制御方法によれば、ファイルシステムの下位にボリュームフィルタデバイスとシャドウボリュームデバイスの２つを生成する。この２つのデバイスはそれぞれ、上位モジュールから転送されてくる書込みデータをメモリ上にキャッシュする機能を備えている。そして、ファイルシステムの上位のフィルタドライバであるファイルアクセス制御モジュールでプロセス毎の書込み処理を判定し、二次記憶装置へ書込みを反映させたいデータはボリュームフィルタデバイスとシャドウボリュームデバイスの両方へ書込みデータを転送し、書込みを反映させたくないデータはボリュームフィルタデバイスのみに書込みデータを転送する。そして、シャットダウン時にシャドウボリュームデバイスがキャッシュしたデータを二次記憶装置に書き込む。これにより、二次記憶装置への書込みに関して、ファイル・フォルダ単位の保存制御をする装置を実現している。
【００１８】
しかしながら、上記シンクライアント端末では、メモリにキャッシュしたデータをシャットダウン時に二次記憶装置へまとめて書込むため、システムシャットダウンの時間が増加し、ユーザビリティが著しく低下する問題がある。
【００１９】
本発明の実施形態ではこの問題を解決すべく、二次記憶装置への書込みを制御した擬似シンクライアント端末装置においてシャットダウン高速化に関するデータ制御方法を提供する。
【００２０】
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
【００２１】
＜情報処理システムの構成＞
図１は、本発明の実施形態による情報処理システムの概略構成を示す図である。
この情報処理システムは、利用者端末１０１とファイルサーバ１０２で構成されており、それぞれがネットワーク１０３で接続されている。なお、ここでのネットワーク１０３は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ピアツーピアネットワーク等として一般に知られるネットワークを用いて実現することができる。また、利用者端末は、ＣＰＵ、主記憶装置、ネットワークデバイス、入出力装置、二次記憶装置を備える一般的なＰＣであり、可搬性等の形態に限定は無い。
【００２２】
利用者端末１０１上には、ＯＳ１０４、文書・帳票作成・ブラウザ等のアプリケーション１０５、ファイルアクセス制御モジュール１０６、デバイス制御モジュール１０７、書込み制御モジュール１０８、ディスクモジュール１０９がインストールされており、二次記憶装置１１１にはアプリケーション制御ファイル１１０が格納されている。さらに、利用者端末１０１は、図１に示されてはいないが、制御部（ＣＰＵ）、メモリ、ネットワークインタフェース、入出力装置（キーボード、ディスプレイ、スピーカ等）等を備えている。
【００２３】
ファイルサーバ１０２は、図１には示されていないが、ＣＰＵ、主記憶装置、ネットワークデバイス、入出力装置、二次記憶装置等を備え、利用者端末１０１とコネクションを張って、ファイル転送が可能となっており、利用者端末１０１上のアプリケーション１０５で作成・編集された機密データ１１２を保存することが可能な一般的なファイルサーバである。
【００２４】
利用者は、利用者端末１０１のＯＳ１０４上で動作するアプリケーション１０５を用いて、ファイルサーバ１０２上の機密データ１１２にアクセスし、利用・編集することができる。
【００２５】
利用者端末１０１において、書込み制御モジュール１０８は、ＵＳＢ等の外部記憶媒体を検知し、前記外部記憶媒体への書き出しを制御する機能を備える。外部記憶媒体の検知はＯＳの機能を使用して外部デバイスを検知し、デバイスへのアクセスを禁止、または、そのデバイスへの書込みをメモリ上にリダイレクトする等の手段により、書出しを制御する。この機能により、ファイルサーバ上の機密データが利用者端末から外部へ保存されることが無くなり、データの集約及び情報漏えいを防止することが可能となる。
【００２６】
＜利用者端末の内部構成＞
図２は、利用者端末１０１のＯＳコンポーネントを含む内部構成を詳細に示す図である。図２の有向線は、アプリケーションやＯＳモジュール等のプログラム（話を分かりやすくするために、以後、ドキュメント作成等のアプリケーションソフトウェアだけでなく、ＯＳのモジュール等でも二次記憶装置へ書込みを行うプログラムのことを、単にアプリケーションと呼ぶ。この「アプリケーション」には、例えばwindows（登録商標） updateのようなシステム更新用のアプリケーションも含まれる。）が、二次記憶装置に対して要求するＩ／Ｏの流れを示している（実際はＲｅａｄ／Ｗｒｉｔｅ以外のものも存在するが省略する）。
【００２７】
また、図２の実線２１８〜２２２は主にアプリケーションが発行した場合のＩ／Ｏで、一点鎖線２２３、２２６、２２７はファイルアクセス制御モジュール１０６が発行するＩ／Ｏ、点線２２４、２２５はシャドウボリュームデバイス２１３が発行するＩ／Ｏに関するものである。
【００２８】
ディスクモジュール１０９は、二次記憶装置１１１上のボリュームを表現するボリュームデバイス２１５を作成する機能を持つＯＳ１０４のモジュールである。
【００２９】
ファイルアクセス制御モジュール１０６は、ボリュームデバイス２１５にマウントされているファイルシステム２１０にアタッチして、アプリケーション１０５が発行する二次記憶装置１１１へのＩ／Ｏをフィルタすることが可能なファイルシステムフィルタデバイス２０５を作成する機能を備えている。また、アプリケーション１０５の発行した二次記憶装置１１１へのＩ／Ｏが書込み要求だった場合、ファイルアクセス制御モジュール１０６は、その書込み要求元のアプリケーションが「書込み許可」アプリケーションか「書込み禁止」アプリケーションかを判定する。そして、ファイルアクセス制御モジュール１０６は、「書込み許可」アプリケーションの書込みならば、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３の両方へデータを複製・送信する（実線２１９、一点鎖線２２３、後述する図３のＳ３０７、Ｓ３０８）。逆に、「書込み禁止」アプリケーションの書込みならば、ファイルアクセス制御モジュール１０６は、ボリュームフィルタデバイス２１２にのみデータを送信する（実線２１９、後述する図３のＳ３０６）。
【００３０】
「書込み許可」アプリケーションの例として、ＯＳやアプリケーションソフトウェアの、アップデートプログラムが挙げられる。これらのプログラムは、通常ＯＳやアプリケーションのベンダから提供されるものである。「書込み禁止」プログラムの例として、機密データを作成・編集するようなアプリケーションプログラム、一般的に考えて文書・帳票作成・編集用のアプリケーションプログラムが挙げられる。
【００３１】
書込み要求元のプログラムの振り分けの方法としては、アプリケーション制御ファイル２０６（例：図８（表１））を利用者端末１０１にインストールしておくことで可能となる。
【００３２】
アプリケーション制御ファイル２０６は、アプリケーション名８０３と書込み禁止／許可のフラグ８０４をセットにしたリスト形式のファイルである。一般的なＯＳならば、アプリケーション名から実行プロセス名やプロセスＩＤを取得することが可能である。このため、このリストを読み込めば、利用者端末上で動作しているアプリケーションのプロセス名とプロセスＩＤを取得することが可能である。
【００３３】
また、ファイルアクセス制御モジュール１０６をファイルシステムのフィルタドライバとして実装しておけば、ファイルシステムフィルタデバイス２０５で書込み処理要求を取得した時に、要求元のプロセス名やプロセスＩＤを取得することが可能である。以上の手段で取得したプロセス名やプロセスＩＤを比べることで、書込み処理元のアプリケーションが、書込み「許可」アプリケーションか書込み「禁止」アプリケーションか、を判定することが可能となる。
【００３４】
なお、アプリケーション制御ファイル２０６は、システム管理者が利用者端末のシステムポリシーに従って適切に作成し、あらかじめインストールしておくものであるが、アップデートと同時に更新することも可能なファイルである。また、一般利用者がアプリケーションのインストールを行うことができるとすると、害意（不正目的で）のアプリケーションをインストールする可能性があるため、インストール作業は管理者が行うのが好ましい。
【００３５】
ここで、ファイルアクセス制御モジュール１０６が、書込み許可プログラムからの書込みを、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３の両方へ二重に書き込んでいる理由について述べる。即ち、本システムでは、アプリケーションからのＲｅａｄ要求（実線２１８、２１９参照）は、ファイルシステムフィルタデバイス２０５→ファイルシステム２１０→ボリュームフィルタデバイス２１２の順に転送される。そして、最終的にボリュームデバイス２１５が二次記憶装置１１１から読み込んだデータをアプリケーション１０５に返すか（実線２２２→２１９→２１８）、或いはボリュームフィルタデバイス２１２がメモリ２１７にキャッシュしたデータをアプリケーション１０５に返す（実線２２０→２１９→２１８）。そのため、仮にシャドウボリュームデバイス２１３だけにしかデータ書込みを行っていないとすると、読み込んだデータが二次記憶装置１１１上の古いデータとなる状況が起こる。よって、シャドウボリューム２１３からボリュームデバイス２１５を介して二次記憶装置１１１へデータ書込みを行う場合は、さらにボリュームフィルタデバイス２１２を介して同じデータをキャッシュメモリに書き込んでおき、アプリケーションからのＲｅａｄ要求には最新のデータを返す（実線２２１→２１９→２１８）。これにより、古いデータを読み込んでしまうという危険を回避することができ、また、再起動しなくても最新の制御データをリアルタイムに反映することができるようになる。
【００３６】
なお、ファイルアクセス制御モジュール１０６は、ファイルシステムフィルタにより実現可能であること述べたが、ここに述べたものは一例であり、本発明を限定するものではない。ここで述べた方法以外にも、書込みアプリケーションプロセス内で書込み先のファイルパスを変更して書込みＩ／Ｏを振り分ける方法なども考えられる。
【００３７】
書込み制御モジュール１０８は、ボリュームデバイス２１５にアタッチ（１対１に対応付ける）して、アプリケーション１０５から二次記憶装置１１１へのＩ／Ｏをフィルタすることが可能なボリュームフィルタデバイス２１２と、シャドウボリュームデバイス２１３の２つのデバイスを作成する機能を備えている。なお、ここでは、書込み制御モジュール１０８は、ディスクドライバのフィルタドライバの一種として話を進めるが、実現手段に関しては、ここで述べた以外の方法でもかまわない。
【００３８】
ボリュームフィルタデバイス２１２は、二次記憶装置１１１へデータを書込むことが可能であるボリュームデバイス２１５にアタッチして書込みデータをメモリ２１７上にリダイレクトしてキャッシュする機能を備える。また、シャドウボリュームデバイス２１３（後述）から要求を受けて、二次記憶装置上の任意の領域のデータを読み込んでキャッシュする機能も備える（実線２２０）。ここでは、アプリケーション１０５が二次記憶装置１１１に対してＩ／Ｏを行った場合に、そのＩ／Ｏを取得するための手段の一例として「アタッチ」を用いている。アタッチによる方法でなくとも、任意のプログラムがボリュームに対して行うＩ／Ｏデータを取得できるならば、その方法はアタッチに限定されない。
【００３９】
シャドウボリュームデバイス２１３は、ファイルアクセス制御モジュール１０６からの書込み要求を処理するモジュールである。なお、シャドウボリュームデバイス２１３は、ボリュームデバイス２１５の存在を認識しておりボリュームデバイス２１５を経由して二次記憶装置１１１へデータを書き込むことが可能であるが（一点鎖線２２６、２２７）、二次記憶装置１１１のボリュームデバイス２１５にアタッチすることは無い。アタッチをしないことにより、アプリケーション１０５が発行する任意のＩ／Ｏがシャドウボリュームデバイス２１３に到達することがなくなり、アクセス制御モジュール１０６からの書込み処理のみがシャドウボリューム２１３に転送されることを実現している（一点鎖線２２３）。
【００４０】
シャドウボリュームデバイス２１３は、アクセス制御モジュール１０６からファイルシステム２１０を経由して書込み要求を受けた場合（一点鎖線２２３）、二次記憶装置１１１に書き込む前にボリュームフィルタデバイス２１２に対して、シャドウボリュームフィルタデバイス２１３が書込みを行う二次記憶装置１１１上の領域に現在存在するデータを二次記憶装置１１１から読み込んでキャッシュするように（点線２２５）、ボリュームフィルタデバイス２１２に要求を行う機能を持つ（点線２２４）。要求が成功した後、シャドウボリュームデバイス２１３は書込み要求をボリュームデバイス２１５に転送して（一点鎖線２２６）、二次記憶装置１１１への書込みを完了させる（一点鎖線２２７）。以後、ボリュームフィルタデバイス２１２への読み書き要求がこの領域に対して行われた場合は、このキャッシュデータが使用されるようになる。
【００４１】
ここで、シャドウボリュームデバイス２１３が二次記憶装置１１１へデータを書き込む前にボリュームフィルタデバイス２１２に対して事前にデータを読み込んでキャッシュさせておく理由について述べる。
【００４２】
本システムにおいて、ファイルシステム２１０はボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３をそれぞれ別々のボリュームとして認識する。しかし、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３は、同じボリューム（二次記憶装置１１１上のボリュームを表現するボリュームデバイス２１５）を参照する（図２実線２２２、一点鎖線２２６）。これらが意味することは、アクセス制御モジュール１０６がファイルＩ／Ｏを２重化してボリュームフィルタデバイス２１２経由で読込む二次記憶装置上の領域と、シャドウボリュームデバイス２１３経由で書込む二次記憶装置上の領域が隔離されていない（同じ領域を管理している）ことを意味する。つまり、各デバイスの管理領域は専用領域として管理されているわけではない。同じ領域を管理している理由は、例えばWindows(登録商標)のシステム階層構造上、二次記憶装置１１１へアクセスするにはCドライブ等に該当するボリュームデバイス２１５という同一のドライバを介してしなければならないからである。
【００４３】
Windows(登録商標)が採用するファイルシステムであるＮＴＦＳにおいては、各ボリュームの先頭にはＭＦＴ(Master File Table)ファイルが格納されている。MFTとは、ボリューム内のファイル属性とファイルレコードとを含む関連データベースであり、この中にはボリューム内のファイル構造を表す情報が格納されている。また、MFTは、ボリューム毎に存在するファイルである。アプリケーションからファイルの書込みや属性変更等があると、ファイルシステムはMFTを更新(書込み)する。ＯＳ１０４を起動した時点では、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３は、ボリュームデバイス２１５のＭＦＴ領域を参照するためファイル・フォルダ構成は同じである。しかし、ファイルシステム２１０はボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３を別ボリュームとして認識するため、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３それぞれのＭＦＴに対して異なる書込みがファイルシステム２１０から発生する。
【００４４】
例えば、ＯＳ１０４起動時に、ＭＦＴファイルが１番セクタ〜５番セクタに格納され、ファイルＡの情報が２番セクタ〜３番セクタに格納されている場合を想定する。今、「書込み許可」アプリケーションがファイルＢの新規作成・書込みをする。この時、ボリュームフィルタデバイス２１２ではファイルＢのファイル情報が１番セクタ〜２番セクタに作成・書込みされ、シャドウボリュームデバイス２１３ではファイルＢのファイル情報が２番セクタ〜３番セクタに作成・書込みされたとする。ここで仮に、シャドウボリュームデバイス２１３が、ボリュームフィルタデバイス２１２に２番セクタ〜３番セクタのデータをキャッシュさせずにボリュームデバイス２１５にデータを書き込んだとする。その後、任意のアプリケーションからボリュームフィルタデバイス２１２にファイルＡの読込みがあった時、ファイルシステム２１０はＭＦＴの読込みを行うが、ボリュームフィルタデバイス２１２では２番セクタ〜３番セクタはまだ書込みがないのでキャッシュされておらず、ボリュームデバイス２１５からデータを読み込んでくる。すると、２番セクタ〜３番セクタはシャドウボリュームデバイス２１３からの書き込みにより不整合が生じているため、正しいＭＦＴを読込めず、システムがクラッシュする。
これは、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３で、ＭＦＴファイル内における書込み内容が異なることに起因する。
【００４５】
他の例として、ＯＳ１０４起動時に、ボリュームデバイス２１５に保存されているＭＦＴに、ファイルＡのデータは１００００番セクタ〜１０１００番セクタと１０２００番セクタ〜１０３００セクタに分割格納され、ファイルＢのデータは１０４００番セクタ〜１０５００番セクタに格納されているというファイル情報がある場合を想定する（１０１００番セクタ〜１０２００番セクタは空のセクタ領域）。ＯＳ１０４起動時は、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３で同じＭＦＴを参照するので、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３のフォルダ・ファイル構成は同じである。今、シャドウボリュームデバイス２１３でファイルシステム２１０によるデフラグ処理が発生し、シャドウボリュームデバイス２１３では、ファイルＡは１００００番セクタ〜１０２００番セクタ、ファイルＢは１０２００番セクタ〜１０３００番セクタに最適化された(書込まれた)とする。ここで仮に、シャドウボリュームデバイス２１３が、ボリュームフィルタデバイス２１２に１０１００番セクタ〜１０３００番セクタのデータをキャッシュさせずにボリュームデバイス２１５にデータを書き込んだとする。その後、ボリュームフィルタデバイス２１２にファイルＡの読込みがあると、ボリュームフィルタデバイス２１２は１００００番セクタ〜１０１００番セクタと１０２００番セクタ〜１０３００セクタを読み込む(ボリュームフィルタデバイス２１２ではこの領域はまだ書込みがないのでキャッシュされておらず、ボリュームデバイス２１５からデータを読み込んでくる)。すると、１０２００番セクタ〜１０３００番セクタはシャドウボリュームデバイス２１３によりファイルＢのデータが書き込まれているため、破壊されたファイルＡを読み込むこととなる。
【００４６】
従って、ファイルシステム以下のレイヤーでの動作を保証するために、事前にボリュームフィルタデバイスにデータを読み込ませる動作は必須となる。
【００４７】
さらに付け加えるなら、本システムは、１つのストレージ領域に対して、ファイルシステムより上のレイヤーでは２つのアクセス経路を提供しているが、最終的に二次記憶装置に反映できる書込み経路は１つである。そして、本システムでは、システム更新に関わるデータをシャドウボリュームデバイス２１３経由で書き込む構成をとっている。ゆえに、シャドウボリュームデバイス２１３経由の書込みデータを二次記憶装置１１１へ書き込むためには、ボリュームフィルタデバイス２１２経路用の二次記憶装置１１１内のデータを事前に吸い上げて（図２点線２２５）、キャッシュとしてボリュームフィルタデバイス２１２に持たせる必要がある。
【００４８】
このようにすることで、以後の同データの読み書きはキャッシュされたメモリ２１７上で行われ（図４のＳ４０５、Ｓ４０７、図３のＳ３０５〜Ｓ３０７）、ボリュームフィルタデバイス２１２経由で二次記憶装置１１１上の同データを読み込めない問題が無くなる。従って、同データが存在する二次記憶装置１１１の領域に、シャドウボリュームデバイス２１３経由でアップデートプログラム等を新たに書き込んでおくことができ、シャットダウン時にまとめて行っていた書込み時間が不要となる。
【００４９】
＜ファイルアクセス制御モジュールの動作＞
図３は、ファイルアクセス制御モジュール１０６の処理動作を説明するためのフローチャートである。
まず、アプリケーション１０５がファイルシステムフィルタデバイス２０５にアクセスを行った場合、ファイルアクセス制御モジュール１０６はそのアクセスを検知する（ステップＳ３０１、図２実線２１８）。そして、ファイルアクセス制御モジュール１０６は、初めにその要求が書込みに関連する要求か否かを判定する（ステップＳ３０２）。なお、書込みに関連する要求とは、いわゆる二次記憶装置への書込みが起こる要求のことを指している。例えば、書込み要求以外にもファイルの属性変更等の要求も書込み関連要求に含まれる。
【００５０】
書込み関連要求ではない場合、ファイルアクセス制御モジュール１０６は、その要求をボリュームフィルタデバイス２１２へ転送して処理を終了する（ステップＳ３０５、図２実線２１９）。要求が書込み関連の場合、ファイルアクセス制御モジュール１０６は、アプリケーション制御ファイル２０６を読み込み（ステップＳ３０３）、書込み処理のプロセス名をＯＳに問い合わせて取得し、リストのアプリケーション名に対応するプロセス名と比較して一致するエントリーの書込みフラグを取得し、書込み許可／禁止を判定する（ステップＳ３０４）。
【００５１】
書込みフラグが「ＴＲＵＥ」の場合、書込みは「許可」であり、ファイルアクセス制御モジュール１０６は、ボリュームフィルタデバイス２１２に書込み関連要求を転送する（ステップＳ３０７、図２実線２１９）。さらに、ファイルアクセス制御モジュール１０６は、シャドウボリュームデバイス２１３に対しても同じデータの書込みを行った後（ステップＳ３０８、図２一点鎖線２２３）、処理を終了する。なお、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３に対して並行に書込み処理を行っても良い。
【００５２】
一方、ステップＳ３０４で書込みフラグが「ＦＡＬＳＥ」と判断された場合には、書込みは「禁止」であり、ファイルアクセス制御モジュール１０６は、ボリュームフィルタデバイス２１２に書込み関連要求を転送したのち（ステップＳ３０６、図２実線２１９）、処理を終了する。
【００５３】
＜書込み制御モジュールの動作＞
図４は、書込み制御モジュール１０８内のボリュームフィルタデバイス２１２がアプリケーションからアクセスを受けた場合（図２実線２１９）の処理動作を説明するためのフローチャートである。
【００５４】
アプリケーション１０５は、ファイルシステムフィルタデバイス２０５を経由し、ボリュームフィルタデバイス２１２にアクセスすると（ステップＳ４０１、図２実線２１９）、ボリュームフィルタデバイス２１２は、その要求が書込みに関連する要求か否かを判定する（ステップＳ４０２）。
【００５５】
書込み関連処理の場合、ボリュームフィルタデバイス２１２は、書込みデータをメモリ２１７上に確保した領域にキャッシュしておく（ステップＳ４０５、図２実線２２１）。なお、書込み制御が施されていない通常のＰＣでは、この書込み要求は、ボリュームデバイスに転送され、二次記憶装置に書き込まれる。
【００５６】
書込み関連処理以外の場合、（ここでは、読み込み処理に話を限定するがそれ以外のものもふくまれることが考えられる）、ボリュームフィルタデバイス２１２は、ボリュームデバイス２１５を介して２次記憶装置１１１からデータを読み込む（ステップＳ４０３、図２実線２２２）。
【００５７】
その後、ボリュームフィルタデバイス２１２は、メモリ２１７中にデータがキャッシュされているか否かを判定し（ステップＳ４０４）、キャッシュが存在しない場合、読み込んだデータをそのままアプリケーションに返す（ステップＳ４０６）。キャッシュデータが存在する場合は、ボリュームフィルタデバイス２１２は、キャッシュを読み込みデータに上書きしてアプリケーションに返す（ステップＳ４０７）。
【００５８】
図５は、書込み制御モジュール１０８内のボリュームフィルタデバイス２１２がシャドウボリュームデバイス２１３からキャッシュ命令をうけた場合の動作フローである。
なお、このフローは、シャドウボリュームデバイス２１３がアクセス制御モジュールから書込み要求を受け、二次記憶装置１１１への書込みが発生した場合に起こる(図２点線２２４、後述する図６のステップＳ６０２)。
【００５９】
まず、ボリュームフィルタデバイス２１２がシャドウボリュームデバイス２１３からのキャッシュ命令を検知する(ステップＳ５０１)。なお、シャドウボリュームからの通知は、アプリケーションからのアクセスとは異なる方法で通知される。命令を受けると、ボリュームフィルタデバイス２１２は、ボリュームデバイス２１５に読み込み処理を送信し、二次記憶装置１１１内のデータを読み込む（ステップＳ５０２、図２実線２２２）。次に、ボリュームフィルタデバイス２１２は、読み込んだデータがメモリ２１７中に既にキャッシュされているデータか否かをチェックする(ステップＳ５０３)。キャッシュされていない場合は、ボリュームフィルタデバイス２１２は読み込んだデータをキャッシュする(ステップＳ５０４、図２実線２２１)。既にキャッシュされているデータの場合、キャッシュされているデータをそのまま使用し、読み込んだデータは破棄する。
【００６０】
図６は、書込み制御モジュール１０８内のシャドウボリュームデバイス２１３の処理動作を説明するためのフローチャートである。
アクセス制御モジュール１０６のシャドウボリュームデバイス２１３に対するアクセスが検知されると（ステップＳ６０１、図２一点鎖線２２３）、シャドウボリュームフィルタデバイス２１３は二次記憶装置１１１上の書込み領域の情報を取得する（ステップＳ６０２）。次に、シャドウボリュームデバイス２１３が書込みを行う二次記憶装置１１１の領域に現在格納されているデータをボリュームフィルタデバイス２１２が読み込んでキャッシュするように（図２点線２２５）、ボリュームフィルタデバイス２１２に対して要求する（ステップＳ６０３、図２点線２２４）。なお、ここでボリュームフィルタデバイス２１２がキャッシュするデータは、ボリュームフィルタデバイスへの書込み要求がなされたときにキャッシュするデータと同じ扱いになる。ボリュームフィルタデバイス２１２のキャッシュが成功した後、シャドウボリュームデバイス２１３はアクセス制御モジュール１０６から要求されていた二次記憶装置１１１への書込み処理をボリュームデバイス２１５に要求する（ステップＳ６０４、図２一点鎖線２２６）。ボリュームデバイス２１５は二次記憶装置１１１へのデータ書込みを完了する（ステップＳ６０５、図２一点鎖線２２７）。
【００６１】
＜利用者端末起動時の動作＞
図７は、利用者端末１０１を起動した時の処理動作を説明するためのフローチャートである。
まず、利用者が利用者端末１０１を起動するとＯＳ１０４が起動し（ステップＳ７０１）、ＯＳ１０４が各モジュールをシステムにロードする（ステップＳ７０２）。
【００６２】
次に、書込み制御モジュール１０８は、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３を作成する（ステップＳ７０３）。なお作成の際に、ボリュームフィルタデバイス２１２とシャドウボリュームデバイス２１３は、二次記憶装置１１１内のボリュームを表すボリュームデバイス２１５を保持することで、ボリュームに対する読込み・書込み処理が可能となる。また、ボリュームフィルタデバイス２１２は、ボリュームデバイス２１５にアタッチ（対応付け）する（ステップＳ７０４）。このアタッチにより、アプリケーション１０５が二次記憶装置１１１にアクセスする場合の処理をボリュームフィルタデバイス２１２で取得できるようになる。
【００６３】
続いて、ＯＳ１０４は、ボリュームデバイス２１５に対し、ファイルシステム２１０、例えばＮＴＦＳやＦＡＴ等をマウントする（ステップＳ７０５）。
【００６４】
最後に、ファイルアクセス制御モジュール１０６は、ファイルシステムフィルタデバイス２０５を作成し、ファイルシステム２１０にアタッチする。これにより、ファイルシステムフィルタデバイス２０５で、ボリュームに対するファイル処理を取得することが可能になりファイル処理の振り分けが可能になる。
【００６５】
＜まとめ＞
本実施形態では、書込み制御モジュールとして、ボリュームフィルタデバイス及びシャドウボリュームデバイスを導入し、二次記憶装置に書込み可能な制御データ（システム更新データ）と書込み禁止されている機密データとのキャッシュルートを変えている。これにより、利用者端末のシステム更新データのみを、利用者端末の二次記憶装置に保存することが可能で、かつ、利用者端末のシャットダウン後には機密データが利用者端末に残存することがなくなることが可能になる。
【００６６】
また、シャドウボリュームデバイス２１３が書き込む二次記憶装置１１１上のデータを書込み前にボリュームフィルタデバイス２１２にキャッシュさせることで、ボリュームフィルタデバイスの読込みデータを破壊することなく最新の更新データを二次記憶装置に書込むことができる状態にできる。
【００６７】
また、書込み許可ファイルについては、メモリ２１７及び二次記憶装置１１１へリアルタイムに書き込むことで、シャドウボリュームデバイス２１３経由の書込みをリアルタイム化でき、システム更新データをリアルタイムにシステムに反映させることが可能となる。つまり、システムシャットダウンの時間にかかる二次記憶装置１１１への書込み処理時間を軽減し、ユーザビリティを向上させることが可能となる。
【００６８】
また、書込み禁止ファイルについては、メモリ２１７へ書き込み、二次記憶装置１１１へは書込みを行わない。これにより、機密データが二次記憶装置へ保存されることを防止できる。
【００６９】
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【００７０】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【００７１】
また、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ-ＲＷ、ＣＤ-Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はＣＰＵやＭＰＵ)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【符号の説明】
【００７２】
１０１…利用者端末、１０２…ファイルサーバ、１０３…ネットワーク、１０４…ＯＳ、１０５…アプリケーション、１０６…ファイルアクセス制御モジュール、１０７…デバイス制御モジュール、１０８…書込み制御モジュール、１０９…ディスクモジュール、１１０…アプリケーション制御ファイル、１１１…二次記憶装置、１１２…機密データ
【図１】
2011053975.tif 000003
【図２】
2011053975.tif 000004
【図３】
2011053975.tif 000005
【図４】
2011053975.tif 000006
【図５】
2011053975.tif 000007
【図６】
2011053975.tif 000008
【図７】
2011053975.tif 000009
【図８】
2011053975.tif 000010