説明

利用者端末装置及びその制御方法、並びにプログラム

【課題】二次記憶装置への書込み許可プロセスと、書込み禁止プロセスのデータ使用において、パッチ等のシステム構成データは両プロセスが最新のものをリアルタイムに使用できるが、両プロセス間で共有するべきでないデータは隔離して使用することを可能にする。
【解決手段】Aボリューム(二次記憶装置上の実際のボリューム)のミラーボリュームBをPC起動時に作成し、書込み禁止プロセスはボリュームAのみに読書きさせ、かつ、書込み許可プロセスはミラーボリュームBのみに読書させる。OSパッチ等のシステム構成データはボリュームAとミラーボリュームBの両方に書込み、書込み禁止プロセスからも書込み許可プロセスからも最新のシステム構成データを扱えるようにする。この時、ボリュームAとミラーボリュームBへの全ての書込み処理をメモリ上にリダイレクトする手段を用いてメモリ上にキャッシュしておき、シャットダウン時にミラーボリュームBのキャッシュのみを二次記憶装置に書込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、利用者端末装置及びその制御方法、並びにプログラムに関し、利用者端末の二次記憶装置への書込み制御、及び、外部記憶媒体への書出し制御により、利用者データをファイルサーバに集約し、機密情報の紛失・漏洩防止を実現するシンクライアントシステムにおける、利用者端末のファイルアクセス制御に関するものである。
【背景技術】
【0002】
近年、ファイルサーバに保管されている重要データが、利用者端末から拡散するのを防ぐためのシステムとして、シンクライアントシステムが考案されている。シンクライアントシステムは、端末内に不揮発性の二次記憶装置を装備しない端末(ディスクレスPC)を使用するのが一般的であるが、書込みを制御した二次記憶装置を備えるPC(パーソナル・コンピュータ)をシンクライアント端末として使用するシステムも存在する。
【0003】
例えば、特許文献1では、二次記憶装置を持つ端末装置において、アプリケーションから二次記憶装置へ書き込みが発生した場合、その書き込みを主記憶装置(キャッシュメモリ)上へリダイレクトすることで、二次記憶装置への書き込みを制限し、擬似的に二次記憶を持たない端末装置を実現している。
【0004】
ディスクレスPCを使用する場合に比べ、書込み制御した二次記憶装置を備えるPCをシンクライアント端末装置として使用する場合、サーバサイドでの負荷が少ないため、インフラ構築等のコストを安価できるメリットがある。このシステムによれば、ファイルサーバに保管されている重要データが拡散するのを防止することに加え、利用者による不適切なOS設定変更や、アプリケーションのインストールを防止することも可能である。
【0005】
一方、特許文献1に開示のシステムは、OSパッチ等のシステム更新データを、二次記憶装置に保存することができないため、システムを最新の状態に保てない。
【0006】
これに対して、システム更新データのみを利用者端末の二次記憶装置へ保存可能なシステムとして、特許文献2に開示されているようなシステムが提案されている。特許文献2では、ファイルシステムの下位に書込み可能フィルタデバイスと、書込み禁止フィルタデバイスの2つを生成する。そして、ファイルシステムの上位のフィルタドライバであるファイルアクセス制御ドライバで書込み禁止のファイルアクセスを検知して、書込み禁止フィルタデバイスにリダイレクトする。これにより、二次記憶装置への書込みに関して、ファイル・フォルダ単位の保存制御を実現している。この手段を使えば、システム更新データのみを利用者端末装置の二次記憶装置へ保存し、システムを最新の状態に保つことが可能である。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−172063号公報
【特許文献2】特開2008−59501号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、OSパッチ(システム更新)のデータを有効にするために、二次記憶装置にこのOSパッチデータが反映されてなければならない。そして、特許文献2のシステムにおいては、OSパッチデータを二次記憶装置に反映するためにシステムを再起動する必要があり、リアルタイムでOSパッチ等のシステム更新データを有効にすることができないという問題がある。これは、ローカル上で動作する書込みを禁止されたファイルを参照する場合のボリュームデバイスとOSパッチが書き込まれたボリュームデバイスが異なるため起きる問題である。また、アプリケーションの構成ファイル等、プロセス間で共通のファイルを使うべきでないデータの書き込みに関する制御がないため、セキュリティ上の問題も考えられる。
【0009】
本発明はこのような状況に鑑みてなされたものであり、シンクライアント端末装置において、ローカルに保存するOSパッチ等のシステム更新データをリアルタイムで有効することができ、アプリケーションの構成ファイル等、複数プロセス間で共有すべきでないデータを適切に保存し、かつ、端末に残存すべきではないデータはシャットダウン後に揮発させることができる技術を提供するものである。
【課題を解決するための手段】
【0010】
上記課題を解決するために、例えば、Aボリューム(二次記憶装置上の実際のボリューム)のミラーボリュームBをPC起動時に作成し、書込み禁止プロセスはボリュームAのみに読み書き処理を実行させ、かつ、書込み許可プロセスはミラーボリュームBのみに読み書させる。また、OSパッチ等のシステム構成データはボリュームAとミラーボリュームBの両方に書込み、書込み禁止プロセスからも書込み許可プロセスからも最新のシステム構成データを扱えるようにする。この時、ボリュームAとミラーボリュームBへの全ての書込み処理をメモリ上にリダイレクトする手段を用いてメモリ上にキャッシュしておき、シャットダウン時にミラーボリュームBのキャッシュのみを二次記憶装置に書込む。
【0011】
即ち、本発明による利用者端末装置は、二次記憶装置と、キャッシュメモリと、アプリケーションからの二次記憶装置に対するI/O要求の種別を判断するファイルアクセス制御部(ファイルアクセス制御モジュール)と、I/O要求をリダイレクトする、第1及び第2のリダイレクト処理部(ボリュームフィルタデバイス及びシャドウボリュームデバイス)と、を備えている。ファイルアクセス制御部は、アプリケーションからのI/O要求が2重書き込み許可プロセスであり、かつ書き込み要求であると判断した場合、当該I/O要求を第1及び第2のリダイレクト処理部に転送する。そして、第1及び第2のリダイレクト処理部はそれぞれ、I/O要求に対応するデータをキャッシュメモリに書き込む。2重書き込む許可プロセスのI/O要求を発行するアプリケーションの例としては、OSパッチを含むシステム更新データが挙げられる。なお、第2のリダイレクト処理部は、利用者端末装置のシャットダウン時に、第2のリダイレクト処理部によってキャッシュメモリに書き込まれたデータを、二次記憶装置に書き込む。これにより、システム更新データが最終的に利用者端末装置に反映される。
【0012】
一方、ファイルアクセス制御部は、アプリケーションからの前記I/O要求が2重書き込み許可プロセスであり、かつ書き込み要求以外の要求であると判断した場合、当該I/O要求を前記第2のリダイレクト処理部に転送する。そして、第2のリダイレクト処理部は、I/O要求に対応するデータをキャッシュメモリから読み込む。
【0013】
また、ファイルアクセス制御部は、アプリケーションからの前記I/O要求が2重書き込み許可プロセスではないが書き込み許可プロセスであり、かつ書き込み要求であると判断した場合、当該I/O要求を第2のリダイレクト処理部に転送する。そして、第2のリダイレクト処理部のみが、書き込み許可プロセス、かつ書き込み要求のI/O要求に対応するデータをキャッシュメモリに書き込む。一方、ファイルアクセス制御部は、アプリケーションからのI/O要求が2重書き込み許可プロセスではないが書き込み許可プロセスであり、かつ書き込み要求以外の要求であると判断した場合、当該I/O要求を前記第2のリダイレクト処理部に転送する。そして、第2のリダイレクト処理部が、書き込み許可プロセス、かつ書き込み要求以外の要求のI/O要求に対応するデータをキャッシュメモリから読み込む。
【0014】
さらに、ファイルアクセス制御部は、アプリケーションからの前記I/O要求が書き込み禁止プロセスであり、かつ書き込み要求であると判断した場合、当該I/O要求を前記第1のリダイレクト処理部に転送する。そして、第1のリダイレクト処理部のみが、書き込み禁止プロセス、かつ書き込み要求のI/O要求に対応するデータをキャッシュメモリに書き込む。一方、ファイルアクセス制御部は、アプリケーションからのI/O要求が書き込み禁止プロセスであり、かつ書き込む要求以外の要求であると判断した場合、当該I/O要求を前記第1のリダイレクト処理部に転送する。そして、第1のリダイレクト処理部が、書き込み禁止プロセス、かつ書き込み要求以外の要求のI/O要求に対応するデータをキャッシュメモリから読み込む。書込み禁止プロセスのI/Oを発行するアプリケーションの例としては、機密データを作成・編集するためのアプリケーションプログラムが挙げられる。
【0015】
さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
【発明の効果】
【0016】
本発明によれば、OSパッチ等のシステム更新データを書込み許可プロセスと書込み禁止プロセスの全プロセスでリアルタイムに有効にすることが可能になる。また、PC起動からシャットダウンまでの間、書込み許可プロセスと書き込み禁止プロセス間でファイル、例えば、アプリケーション固有の設定・構成データ等、を隔離することができ、データをセキュアに管理することが可能となる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態によるシンクライアントシステムの概略構成を示す図である。
【図2】利用者端末の内部構成を示す図である。
【図3】ファイルアクセス制御モジュールの動作を説明するためのフローチャートである。
【図4】書込み制御モジュールの動作を説明するためのフローチャートである。
【図5】起動時の動作を説明するためのフローチャートである。
【図6】シャットダウン時の動作を説明するためのフローチャートである。
【図7】アプリケーション制御ファイルの例を示す図である。
【発明を実施するための形態】
【0018】
本発明は、利用者端末の二次記憶装置への書込み制御、及び、外部記憶媒体への書出し制御により、利用者データをファイルサーバに集約し、機密情報の紛失・漏洩防止を実現するシンクライアントシステムにおける、利用者端末のファイルアクセス制御に関する。
【0019】
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
【0020】
<情報処理システムの構成>
図1は、本発明の実施形態による情報処理システムの概略構成を示す図である。この情報処理システムは、利用者端末101とファイルサーバ102で構成されており、それぞれがネットワーク103で接続されている。なお、ここで、ネットワーク103は、ローカルエリアネットワーク(LAN、ワイドエリアネットワーク(WAN)、ピアツーピアネットワーク等として一般に知られるネットワーク)を用いて実現することができる。また、利用者端末101は、CPU、主記憶装置、ネットワークデバイス、入出力装置、二次記憶装置を備える一般的なPCであり、可搬性等の形態に限定は無い。
【0021】
利用者端末101上には、OS104、文書・帳票作成・ブラウザ等のアプリケーション105、ファイルアクセス制御モジュール106、書込み制御モジュール107、デバイス制御モジュール108がインストールされている。また、二次記憶装置110にはアプリケーション制御ファイル109が格納されている。さらに、利用者端末101は、図1に示されてはいないが、制御部(CPU)、メモリ、ネットワークインタフェース、入出力装置(キーボード、ディスプレイ、スピーカ等)等を備えている。
【0022】
ファイルサーバ102は、図1には示されていないが、CPU、主記憶装置、ネットワークデバイス、入出力装置、二次記憶装置等を備え、利用者端末101とコネクションを張って、ファイル転送が可能となっており、利用者端末101上のアプリケーション105で作成・編集された機密データ111を保存することが可能な一般的なファイルサーバである。
【0023】
利用者端末101において、デバイス制御モジュール108は、USB等の外部記憶媒体を検知し、外部記憶媒体への書き出しを制御する機能を備える。外部記憶媒体の検知はOSの機能を使用して外部デバイスを検知し、デバイスへのアクセスを禁止、または、そのデバイスへの書き込みをメモリ上にリダイレクトする等の手段により、書出しを制御する。この機能により、ファイルサーバ上の機密データが利用者端末から外部へ保存されることが無くなり、データの集約及び情報漏えいを防止することが可能となる。
【0024】
<利用者端末の内部構成及びI/O処理の流れ>
図2は、利用者端末101のOSコンポーネントを含む内部構成を詳細に示す図である。図2の有向線は、アプリケーションやOSモジュール等のプログラム(話を分かりやすくするために、以後、ドキュメント作成等のアプリケーションソフトウェアだけでなく、OSのモジュール等でも二次記憶装置へ書き込みを行うプログラムのことを、単にアプリケーションと呼ぶ。この「アプリケーション」には、例えばwindows(登録商標) updateのようなシステム更新用のアプリケーションも含まれる。)が、二次記憶装置に対して要求するI/O要求の流れを示している(実際はRead/Write以外のものも存在するが省略する)。
【0025】
利用者端末101上では、アプリケーション105がI/O要求を発行した場合、ファイルアクセス制御モジュール106より下のレイヤーでは書き込み処理が3種類に分岐する。1つ目は、図2に記載の実線フローのみの書き込み処理、2つ目は図2に記載の破線フローのみの書き込み処理、3つ目は図2に記載の実線フローと破線フロー両方の書き込み処理である。なお、図2の実線は主にアプリケーション105が発行した場合のI/O要求で、破線はファイルアクセス制御モジュール106が発行するI/O要求である。
【0026】
ファイルアクセス制御モジュール106は、ボリュームデバイス215にマウントされているファイルシステム210にアタッチして、アプリケーション105が発行する二次記憶装置110へのI/Oをフィルタすることが可能なファイルシステムフィルタデバイス205を作成する機能を備えている。
【0027】
また、アプリケーション105の発行した二次記憶装置110へのI/Oが書き込み要求だった場合、ファイルアクセス制御モジュール106は、アプリケーション制御ファイル206を参照して、その書き込み要求元のアプリケーションが「2重書き込み許可」アプリケーションか、「書き込み許可」アプリケーションか、「書き込み禁止」アプリケーションかを判定する。「2重書き込み許可」アプリケーションの書き込みならば、ボリュームフィルタデバイス212とシャドウボリュームデバイス213の両方へデータを複製・送信する。また、「書き込み許可」アプリケーションの書き込みならば、ファイルアクセス制御モジュール106は、シャドウボリュームデバイス213にのみデータを送信する。さらに、「書き込み禁止」アプリケーションの書き込みならば、ファイルアクセス制御モジュール106は、ボリュームフィルタデバイス212にのみデータを送信する。
【0028】
なお、「2重書き込み許可」アプリケーションの例として、OSやアプリケーションソフトウェアのアップデートプログラムが挙げられる。これらのプログラムは、通常OSやアプリケーションのベンダから提供されるものである。また、「書き込み許可」アプリケーションの例として、アプリケーションのインストーラが挙げられる。インストール後、即使用するアプリケーションでない場合、「書き込み許可」アプリケーションとして書き込みを行うことで、バックグラウンドでインストール処理が行われ、PC使用環境を変化させることなくインストールが完了する。さらに、「書き込み禁止」プログラムの例として、機密データを作成・編集するようなアプリケーションプログラム、一般的に考えて文書・帳票作成・編集用のアプリケーションプログラムが挙げられる。本システムによれば、プロセス間でのデータ分離効果によるセキュリティ機能向上の効果が得られる。
【0029】
書き込み要求元のプログラムの振り分けの方法としては、予めアプリケーション制御ファイル206(例:図7(表1))を利用者端末101にインストールしておくことで可能となる。
【0030】
アプリケーション制御ファイル206は、アプリケーション名703と書き込み禁止/許可のフラグ704と2重書き込みの禁止/許可のフラグ(2重化フラグ)705をセットにしたリスト形式のファイルである。一般的なOSならば、アプリケーション名から実行プロセス名やプロセスIDを取得することが可能である。このため、このリストを読み込めば、利用者端末上で動作しているアプリケーションのプロセス名とプロセスIDを取得することが可能である。
【0031】
また、ファイルアクセス制御モジュール106をファイルシステムのフィルタドライバとして実装しておけば、ファイルシステムフィルタデバイス205で書込み処理要求を取得した時に、要求元のプロセス名やプロセスIDを取得することが可能である。以上の手段で取得したプロセス名やプロセスIDを比べることで、書込み処理元のアプリケーションが、「2重書込み許可」アプリケーションか「書込み許可」アプリケーションか「書込み禁止」アプリケーションか、を判定することが可能となる。
【0032】
なお、アプリケーション制御ファイル206は、システム管理者が利用者端末のシステムポリシーに従って適切に作成し、あらかじめインストールしておくものであるが、アップデートと同時に更新することも可能なファイルである。また、一般利用者がアプリケーションのインストールを行うことができるとすると、害意(不正目的で)のアプリケーションをインストールする可能性があるため、インストール作業は管理者が行うのが好ましい。
【0033】
書き込み制御モジュール107は、ボリュームデバイス215にアタッチ(1対1に対応付ける)して、アプリケーション105から二次記憶装置110へのI/Oをフィルタすることが可能なボリュームフィルタデバイス212と、シャドウボリュームデバイス213の2つのデバイスを作成する機能を備えている。なお、ここでは、書込み制御モジュール107は、ディスクドライバのフィルタドライバの一種として話を進めるが、実現手段に関しては、ここの述べる以外の方法でもかまわない。書き込み制御モジュール107の中で、ボリュームフィルタデバイス212とシャドウボリュームデバイス213を作成するためのI/Oクリエイト関数が定義されている。
【0034】
ボリュームフィルタデバイス212は、ボリュームデバイス215へのI/O要求をフィルタするオブジェクトであり、二次記憶装置110のボリュームデバイス215にアタッチして書き込みデータをメモリ217上にリダイレクトしてキャッシュする機能を備えている。ここでは、アプリケーション105が二次記憶装置110に対してI/O要求を行った場合に、そのI/O要求を取得するための手段の一例として「アタッチ」を用いている。アタッチによる方法でなくとも、任意のプログラムがボリュームに対して行うI/Oデータを取得できるならば、その方法はアタッチに限定されない。
【0035】
シャドウボリュームデバイス213は、シャドウボリュームデバイス213自身に対して書き込み命令されたデータをメモリ217上にキャッシュする機能を備え、かつ、二次記憶装置110のボリュームデバイス215にアタッチすることはない。ただし、シャドウボリュームデバイス213は、ボリュームデバイス215の存在を認識しており、シャットダウン時に、ボリュームデバイス215に対してシャドウボリュームデバイス213がキャッシュしたデータを二次記憶装置へ書き込むことが可能である。なお、シャドウボリュームデバイス213への書き込み要求は、ファイルアクセス制御モジュール106が行うのみである。シャドウボリューム213とボリュームフィルタデバイス212との違いは、利用者端末101のシャットダウン時に、シャドウボリュームデバイス213がメモリ217内のデータを二次記憶装置110に書き込む点である。通常ボリュームデバイス212のみが設けられており、シャドウボリューム213を設けた点が本発明の特徴の1つとなっている。
【0036】
本発明によれば、ボリュームフィルタデバイス212及びシャドウボリュームデバイス213を設け、OSやアプリケーションソフトウェアのアップデートプログラムに関して2重書き込み許可を実行することにより、これらの更新されたアプリケーションを使用する際に利用者端末101を再起動する必要がなくなる。
【0037】
<ファイルアクセス制御モジュールの動作>
図3は、ファイルアクセス制御モジュール106の処理動作を説明するためのフローチャートである。
【0038】
まず、アプリケーション105がボリュームデバイス215にアクセスを行った場合、ファイルアクセス制御モジュール106はそのアクセスを検知する(ステップS301)。
【0039】
ファイルアクセス制御モジュール106は、アプリケーション制御ファイル206を読み込み(ステップS302)、処理要求元のプロセス名をOSに問い合わせて取得し、リストのアプリケーション名に対応するプロセス名と比較して一致するエントリーの書込みフラグ704と2重化フラグ705を取得し、書込み許可/禁止と2重書込み許可/禁止を判定する(ステップS303)。この時、ファイルアクセス制御モジュール106は、その要求が書込みに関連する要求か否かを判定する(ステップS304)。なお、書込みに関連する要求とは、いわゆる二次記憶装置への書込みが起こる要求のことを指している。例えば、書込み要求以外にもファイルの属性変更等の要求も書込み関連要求に含まれる。
【0040】
書込み要求の場合で、書込みフラグ704が「TRUE」、かつ、2重書き込みフラグ705が「TRUE」の場合、「2重書込み許可プロセス」であり、ファイルアクセス制御モジュール106は、ボリュームデバイス215に書込み関連要求を転送する(ステップS305)。その後、さらに、ファイルアクセス制御モジュール106は、シャドウボリュームデバイス213に対しても同じデータの書込みを行った後(ステップS306)、処理は終了する。
【0041】
また、書込み要求の場合で、書込みフラグ704が「TRUE」、かつ、2重書き込みフラグ705が「FALSE」の場合、「書込み許可プロセス」であり、ファイルアクセス制御モジュール106は、シャドウボリュームデバイス213に書込み関連要求を転送したのち(ステップS307)、処理は終了する。
【0042】
一方、書込み要求の場合で、ステップS304で書込みフラグ704が「FALSE」と判断された場合(この場合、必ず2重化フラグ705は「FALSE」となっている)には、「書込み禁止プロセス」であり、ファイルアクセス制御モジュール106は、ボリュームフィルタデバイス212に書込み関連要求を転送したのち(ステップS308)、処理は終了する。
【0043】
さらに、書込み要求以外の場合で、書込みフラグ704が「TRUE」、かつ、2重書き込みフラグ705が「TRUE」の場合、「2重書込み許可プロセス」であり、ファイルアクセス制御モジュール106は、シャドウボリュームデバイス213に対して読込み要求を転送した後(ステップS309)、処理を終了する。ここで、この処理がボリュームデバイス215に対してではなく、シャドウボリュームデバイス213に対して行われている理由は、最終的に二次記憶装置110へ適用されるデータはシャドウボリュームデバイス213にキャッシュされているデータなためである。仮に、「2重書込み許可プロセス」からの読込み要求をボリュームフィルタデバイス212に転送し、データを読み込んできた場合、再起動後にボリュームフィルタデバイス212がキャッシュしたデータとシャドウボリュームデバイス213がキャッシュしたデータが混在し、データの不整合によるシステムクラッシュが発生する可能性がある。
【0044】
書込み要求以外の場合で、書込みフラグ704が「TRUE」、かつ、2重書き込みフラグ705が「FALSE」の場合、「書込み許可プロセス」であり、ファイルアクセス制御モジュール106は、シャドウボリュームデバイス213に対して読み込み要求を転送したのち(ステップS310)、処理を終了する。
【0045】
書込み要求以外の場合で、ステップS304で書込みフラグ704が「FALSE」と判断された場合(この場合、必ず2重化フラグ705は「FALSE」となっている)には、「書込みは禁止」アプリケーションからの要求であり、ファイルアクセス制御モジュール106は、ボリュームフィルタデバイス212に読込み要求を転送したのち(ステップS311)、処理は終了する。
【0046】
以上のように、書き込み許可の場合のプロセスと書き込み禁止の場合のプロセスとの間で、データを分離することができる。よって、よりセキュアなシステムを提供することができるようになる。
【0047】
<書き込み制御モジュールの動作>
図4は、書き込み制御モジュール107内のボリュームフィルタデバイス212とシャドウボリュームデバイス213の処理動作を説明するためのフローチャートである。基本的に読込み・書込みの処理動作はボリュームフィルタデバイス212とシャドウボリュームデバイス213で同じであるが、若干説明の違いがあるので別々に説明する。
【0048】
i)まず、ボリュームフィルタデバイス212の処理動作について説明する。アプリケーション105によるボリュームデバイス215(二次記憶装置110)に対するアクセスが検知されると(ステップS401)、ボリュームフィルタデバイス212は、その要求が書込みに関連する要求か否かを判定する(ステップS402)。
【0049】
書込み関連処理の場合、ボリュームフィルタデバイス212は、書込みデータをメモリ217上に確保した領域にキャッシュし(ステップS405)、処理を完了する(ステップS408)。なお、書込み制御が施されていない通常のPCでは、この書込み要求は、ボリュームデバイス212に転送され、二次記憶装置110に書き込まれる。
【0050】
書込み関連処理以外の場合、(ここでは、読み込み処理に話を限定するがそれ以外のものもふくまれることが考えられる)、ボリュームフィルタデバイス212は、ボリュームデバイス215(2次記憶装置110から)データを読み込む(ステップS403)。
【0051】
その後、ボリュームフィルタデバイス212は、メモリ217中にデータがキャッシュされているか否かを判定し(ステップS404)、キャッシュが存在しない場合、読み込んだデータをそのままアプリケーションに返す(ステップS406)。キャッシュデータが存在する場合は、ボリュームフィルタデバイス212は、キャッシュを読み込みデータに上書きしてアプリケーションに返す(ステップS407)。
【0052】
ii)次に、書込み制御モジュール107内のシャドウボリュームデバイス213の処理動作を説明する。シャドウボリュームデバイス213の処理動作も、図4のフローチャートを使って説明する。
【0053】
アプリケーション105によるシャドウボリュームデバイス213に対するアクセス(正確にはファイルアクセス制御モジュール106が要求元のアクセス)が検知されると(ステップS401)、シャドウボリュームデバイス213は、その要求が書込みに関連する要求か否かを判定する(ステップS402)。なお、シャドウボリュームデバイス213に対するアクセス要求は、アプリケーション105が直接アクセスしているわけではない。アプリケーション105はボリュームデバイス212に対してアクセスを試みているが、ファイルアクセス制御モジュール106がアプリケーションの種類によってシャドウボリュームデバイス213に処理をリダイレクトしているものである。
【0054】
書込み関連処理の場合、シャドウボリュームデバイス213は、書込みデータをメモリ217上に確保した領域にキャッシュし(ステップS405)、処理を完了する(ステップS408)。なお、シャドウボリュームデバイス213がキャッシュするデータと、ボリュームフィルタデバイス212がキャッシュするデータは別領域にキャッシュされるデータである。
【0055】
書込み関連処理以外の場合、(ここでは、読み込み処理に話を限定するがそれ以外のものも含まれることが考えられる)、シャドウボリュームデバイス213は、ボリュームデバイス215(2次記憶装置110から)データを読み込む(ステップS403)。ボリュームフィルタデバイス212とシャドウボリュームデバイス213は書き込み処理と読み込み処理しか行わないが、フィルタシステムデバイス205は、書き込み関連以外の処理も行う。例えば、ファイルのクリエイト、ファイルのクロース、及びファイル情報の変更等である。
【0056】
その後、シャドウボリュームデバイス213は、メモリ217中にデータがキャッシュされているか否かを判定し(ステップS404)、キャッシュが存在しない場合、読み込んだデータをそのままアプリケーションに返す(ステップS406)。キャッシュデータが存在する場合は、シャドウボリュームデバイス213は、キャッシュを読み込みデータに上書きしてアプリケーションに返す(ステップS407)。
【0057】
<利用者端末起動時の動作>
図5は、利用者端末101を起動した時の処理動作を説明するためのフローチャートである。
【0058】
まず、利用者が利用者端末101を起動するとOS104が起動し(ステップS501)、OS104が各モジュールをシステムにロードする(ステップS502)。
【0059】
次に、書込み制御モジュール107は、定義されているOSの関数(I/Oクリエイト関数)を読み込み、ボリュームフィルタデバイス212とシャドウボリュームデバイス213を作成する(ステップS503)。また、ボリュームフィルタデバイス212は、ボリュームデバイス215にアタッチ(対応付け)する(ステップS504)。このアタッチにより、アプリケーション105が二次記憶装置110にアクセスする場合のI/O要求をボリュームフィルタデバイス212で取得できるようになる。一方、シャドウボリュームデバイス213はどこにもアタッチされていないので、シャドウボリュームデバイス213に対してアプリケーション105からI/O要求を投げることができない。従って、ファイルシステムフィルタデバイス205が、意図的にシャドウボリュームデバイス213にI/O要求を投げない限り、シャドウボリュームデバイス213はI/O要求を取得できないようになっている。
【0060】
続いて、OS104は、ボリュームデバイス215に対し、ファイルシステム210、例えばNTFSやFAT等をマウントする(ステップS505)。最後に、ファイルアクセス制御モジュール106は、ファイルシステムフィルタデバイス205を作成し、ファイルシステム210にアタッチする(ステップS506)。これにより、ファイルシステムフィルタ205で、ボリュームデバイス212に対するファイル処理を取得することが可能になりファイル処理の振り分けが可能になる。
【0061】
<利用者端末シャットダウン時の動作>
図6は、利用者端末101がシャットダウンされた時の処理動作を説明するためのフローチャートである。
【0062】
まず、利用者端末101のシャットダウンが開始されると(ステップS601)、シャドウボリュームデバイス213は、シャドウボリューム自身がメモリ217中にキャッしたシュデータがあるか否かをチェックする(ステップS602)。キャッシュデータが存在するならば、シャドウボリュームデバイス213は、ボリュームデバイス215を介して、キャッシュデータを二次記憶装置110へ書込む(ステップS603)。ボリュームフィルタデバイスによりキャッシュされたデータに関しては、二次記憶装置へ書込みされることはないため、特に書込み操作は行われずそのままシャットダウンにより揮発する。以上の操作が終了したら利用者端末101がシャットダウンされる(ステップS604)。
【0063】
<アプリケーション制御ファイルの例>
図7は、アプリケーション制御ファイルの具体例を示す図である。図7によれば、例えば、書込み禁止プロセスを発行できるアプリケーションはOS等のシステムファイルやDocument Creator等の情報漏えいの危険性があるアプリケーションが該当する。また、2重書き込み許可を発行できるアプリケーションは上述のようにOSパッチ等のシステム更新データであり、書き込み許可プロセスを発行しうるアプリケーションは社内管理ツール等が該当する。
【0064】
<まとめ>
本発明では、アプリケーションからのI/O要求が2重書き込み許可プロセスであり、かつ書き込み要求である場合、当該I/O要求がボリュームフィルタデバイスとシャドウボリュームデバイスに転送される。そして、ボリュームフィルタデバイスとシャドウボリュームデバイスが共に、I/O要求に対応するデータをキャッシュメモリ(メモリの異なる箇所)に書き込む。なお、2重書き込む許可プロセスのI/O要求を発行するアプリケーションの例としては、OSパッチを含むシステム更新データが挙げられる。このようにすることにより、OSパッチ等のシステム更新データを書込み許可プロセスと書込み禁止プロセスの全プロセスでリアルタイムに有効にすることが可能になる。つまり、実施形態で説明したように、書き込み許可プロセスを発行できるアプリケーションからのI/O要求が読み込み要求であった場合には、シャドウボリュームデバイスを介してメモリからOSパッチ等のシステム更新データを読み込むことができる。また、書込み禁止プロセスのみを発行するアプリケーションからのI/O要求が読み込み要求であった場合には、ボリュームフィルタデバイスを介してメモリからシステム更新データを読み込むことができる。よって、利用者端末を再起動しなくても、リアルタイムに全てのプロセスからシステム更新データを読み込みことができるようになる。
【0065】
利用者端末装置のシャットダウン時には、シャドウボリュームデバイスが、キャッシュメモリに書き込まれたシステム更新データを、二次記憶装置に書き込む。これにより、システム更新データが最終的に利用者端末装置に反映することができる。つまり、利用者端末が再起動された場合に、OSパッチ等のシステム更新データはOSに反映される。
【0066】
上記書込み禁止プロセスのI/Oを発行するアプリケーションの例としては、機密データを作成・編集するためのアプリケーションプログラムが挙げられる。
【0067】
また、以上説明したように、利用者端末装置(PC)起動からシャットダウンまでの間、書込み許可プロセスと書き込み禁止プロセス間でファイル、例えば、アプリケーション固有の設定・構成データ等、を隔離することができるので、データをセキュアに管理することが可能となる。
【0068】
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0069】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【0070】
また、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【符号の説明】
【0071】
101…利用者端末、102…ファイルサーバ、103…ネットワーク、104…OS、105…アプリケーション、106…ファイルアクセス制御モジュール、107…書込み制御モジュール、108…デバイス制御モジュール、109…アプリケーション制御ファイル、110…二次記憶装置、111…機密データ

【特許請求の範囲】
【請求項1】
データをファイルサーバに転送して格納するシンクライアントシステムの一部を構成する利用者端末装置であって、
二次記憶装置と、
キャッシュメモリと、
アプリケーションからの前記二次記憶装置に対するI/O要求の種別を判断するファイルアクセス制御部と、
前記I/O要求をリダイレクトする、第1及び第2のリダイレクト処理部と、を備え、
前記ファイルアクセス制御部は、前記アプリケーションからの前記I/O要求が2重書き込み許可プロセスであり、かつ書き込み要求であると判断した場合、当該I/O要求を前記第1及び第2のリダイレクト処理部に転送し、
前記第1及び第2のリダイレクト処理部はそれぞれ、前記I/O要求に対応するデータを前記キャッシュメモリに書き込むことを特徴とする利用者端末装置。
【請求項2】
前記ファイルアクセス制御部は、前記アプリケーションからの前記I/O要求が2重書き込み許可プロセスではないが書き込み許可プロセスであり、かつ書き込み要求であると判断した場合、当該I/O要求を前記第2のリダイレクト処理部に転送し、
前記第2のリダイレクト処理部のみが、前記書き込み許可プロセス、かつ書き込み要求のI/O要求に対応するデータを前記キャッシュメモリに書き込むことを特徴とする請求項1に記載の利用者端末装置。
【請求項3】
前記ファイルアクセス制御部は、前記アプリケーションからの前記I/O要求が書き込み禁止プロセスであり、かつ書き込み要求であると判断した場合、当該I/O要求を前記第1のリダイレクト処理部に転送し、
前記第1のリダイレクト処理部のみが、前記書き込み禁止プロセス、かつ書き込み要求のI/O要求に対応するデータを前記キャッシュメモリに書き込むことを特徴とする請求項1に記載の利用者端末装置。
【請求項4】
前記ファイルアクセス制御部は、前記アプリケーションからの前記I/O要求が2重書き込み許可プロセスであり、かつ書き込み要求以外の要求であると判断した場合、当該I/O要求を前記第2のリダイレクト処理部に転送し、
前記第2のリダイレクト処理部は、前記I/O要求に対応するデータを前記キャッシュメモリから読み込むことを特徴とする請求項1に記載の利用者端末装置。
【請求項5】
前記第2のリダイレクト処理部は、前記利用者端末装置のシャットダウン時に、前記第2のリダイレクト処理部によって前記キャッシュメモリに書き込まれたデータを、前記二次記憶装置に書き込むことを特徴とする請求項1に記載の利用者端末装置。
【請求項6】
前記ファイルアクセス制御部は、前記アプリケーションからの前記I/O要求が2重書き込み許可プロセスではないが書き込み許可プロセスであり、かつ書き込み要求以外の要求であると判断した場合、当該I/O要求を前記第2のリダイレクト処理部に転送し、
前記第2のリダイレクト処理部が、前記書き込み許可プロセス、かつ書き込み要求以外の要求のI/O要求に対応するデータを前記キャッシュメモリから読み込むことを特徴とする請求項2に記載の利用者端末装置。
【請求項7】
前記ファイルアクセス制御部は、前記アプリケーションからの前記I/O要求が書き込み禁止プロセスであり、かつ書き込み要求以外の要求であると判断した場合、当該I/O要求を前記第1のリダイレクト処理部に転送し、
前記第1のリダイレクト処理部が、前記書き込み禁止プロセス、かつ書き込み要求以外の要求のI/O要求に対応するデータを前記キャッシュメモリから読み込むことを特徴とする請求項3に記載の利用者端末装置。
【請求項8】
前記2重書き込み許可プロセスのI/O要求を発行するアプリケーションは、OSパッチを含むシステム更新データであることを特徴とする請求項1に記載の利用者端末装置。
【請求項9】
前記書込み禁止プロセスのI/Oを発行するアプリケーションは、機密データを作成・編集するためのアプリケーションプログラムであることを特徴とする請求項3に記載の利用者端末装置。
【請求項10】
データをファイルサーバに転送して格納するシンクライアントシステムの一部を構成する利用者端末装置の制御方法であって、
前記利用者端末装置は、二次記憶装置と、キャッシュメモリと、アプリケーションからの前記二次記憶装置に対するI/O要求の種別を判断するファイルアクセス制御部と、前記I/O要求をリダイレクトする、第1及び第2のリダイレクト処理部と、を備え、
前記制御方法は、
前記ファイルアクセス制御部が、前記アプリケーションからの前記I/O要求が2重書き込み許可プロセスであり、かつ書き込み要求であると判断した場合、当該I/O要求を前記第1及び第2のリダイレクト処理部に転送し、
前記第1及び第2のリダイレクト処理部が、それぞれ、前記I/O要求に対応するデータを前記キャッシュメモリに書き込むことを特徴とする制御方法。
【請求項11】
前記ファイルアクセス制御部が、前記アプリケーションからの前記I/O要求が2重書き込み許可プロセスであり、かつ書き込み要求以外の要求であると判断した場合、当該I/O要求を前記第2のリダイレクト処理部に転送し、
前記第2のリダイレクト処理部が、前記I/O要求に対応するデータを前記キャッシュメモリから読み込むことを特徴とする請求項10に記載の制御方法。
【請求項12】
さらに、前記第2のリダイレクト処理部が、前記利用者端末装置のシャットダウン時に、前記第2のリダイレクト処理部によって前記キャッシュメモリに書き込まれたデータを、前記二次記憶装置に書き込むことを特徴とする請求項10に記載の制御方法。
【請求項13】
コンピュータを請求項1に記載の利用者端末として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−237921(P2010−237921A)
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願番号】特願2009−84407(P2009−84407)
【出願日】平成21年3月31日(2009.3.31)
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)
【Fターム(参考)】