(57)【要約】本発明は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムを使用するクライアントコンピュータと、クライアントコンピュータとネットワークを介して接続された、リレーショナルデータベースを備えたサーバコンピュータとを含む、セキュアファイルサーバシステムを提供し、このシステムでは、ネットワークを介して送受信される書き込みデータまたは読み出しデータは、クラスタ単位に分割されたデータ（クラスタデータ）を含み、クラスタデータは、クラスタ単位で暗号化されてデータベースに保存される。
2008065725.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムを使用するクライアントコンピュータと、
前記クライアントコンピュータとネットワークを介して接続された、リレーショナルデータベースを備えたサーバコンピュータとを含む、セキュアファイルサーバシステムであって、
前記クライアントコンピュータは、
前記ネットワークを介して前記サーバコンピュータと通信するための通信手段と、
Ｗｉｎｄｏｗｓ  Ｉ／Ｏシステムからの初期化、ファイル読み出し、またはファイル書き込みの要求に応じて、前記初期化もしくはファイル読み出し要求または前記ファイル書き込み要求および書き込みデータを前記通信手段を介して前記サーバコンピュータに送信し、前記初期化要求または前記ファイル読み出し要求に応じて前記サーバコンピュータから送信されたデータを前記通信手段を介して受信するように該クライアントコンピュータを制御するための制御手段と、を少なくとも備え、
前記サーバコンピュータは、
前記ネットワークを介して前記クライアントコンピュータと通信するための通信手段と、
前記通信手段を介して受信した前記クライアントコンピュータからの前記書き込みデータを前記データベースに保存するか、または前記クライアントコンピュータからの初期化要求もしくは読み出し要求に応じて要求されたデータを前記データベースから取得して、前記通信手段を介して前記クライアントコンピュータに送信するように該サーバコンピュータを制御するための制御手段と、を少なくとも備え、
前記ネットワークを介して送受信される前記書き込みデータまたは前記読み出しデータは、クラスタ単位に分割されたデータ（クラスタデータ）を含み、
前記クラスタデータは、クラスタ単位で暗号化されて前記データベースに保存される、セキュアファイルサーバシステム。
【請求項２】
前記書き込みデータはさらに、前記クラスタデータに関連するファイル・アロケーション・テーブル（ＦＡＴ）のデータを含む、請求項１に記載のセキュアファイルサーバシステム。
【請求項３】
前記ＦＡＴデータが、前記クラスタデータとは異なるデータベースに保存される、請求項２に記載のセキュアファイルサーバシステム。
【請求項４】
前記ネットワークを介して送受信するデータが暗号化されている、請求項１〜３のいずれかに記載のセキュアファイルサーバシステム。
【請求項５】
前記ネットワークがイントラネットである、請求項１〜４のいずれかに記載のセキュアファイルサーバシステム。
【請求項６】
前記ネットワークの通信プロトコルが、ＨＴＴＰプロトコルである、請求項１〜５のいずれかに記載のセキュアファイルサーバシステム。
【請求項７】
前記Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムが、ＦＡＴ３２ファイルシステムを使用する、請求項１〜６のいずれかに記載のセキュアファイルサーバシステム。
【請求項８】
前記Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムが、ＮＴＦＳを使用する、請求項１に記載のセキュアファイルサーバシステム。
【請求項９】
請求項１〜７のいずれかに記載のセキュアファイルサーバシステムにおいて、クライアントコンピュータに搭載されるコンピュータプログラムであって、
Ｗｉｎｄｏｗｓ（登録商標）のＩ／Ｏシステムからの要求に応じて、前記クライアントコンピュータに以下の処理：
（ｉ）前記要求が初期化である場合には、
前記初期化の要求をサーバコンピュータへ送信するステップと、
前記サーバコンピュータからＦＡＴデータを取得するステップと、
前記取得したＦＡＴデータに基づいて仮想ディスクを作成するステップと、
前記仮想ディスクの情報をＷｉｎｄｏｗｓ  Ｉ／Ｏシステムに返すステップとを含む処理、
（ｉｉ）前記要求がファイル読み出しである場合には、
読み出しデータがＦＡＴデータのみを含むデータであるか否かを判断するステップと、
（ａ）ＦＡＴデータのみを含むデータである場合には、
前記ＦＡＴデータを仮想ディスクから取得するステップと、
取得した仮想ディスクの情報をＷｉｎｄｏｗｓ  Ｉ／Ｏシステムに返すステップとを含む処理、
（ｂ）ＦＡＴデータ以外も含むデータである場合には、
ファイル読み出し要求をサーバコンピュータに送信するステップと、
前記サーバコンピュータから読み出しデータを受信するステップと、
前記受信した読み出しデータをＷｉｎｄｏｗｓ  Ｉ／Ｏへ返すステップとを含む処理、または
（ｉｉｉ）前記要求がファイル書き込みである場合には、
書き込みデータがＦＡＴデータのみを含むデータであるか否かを判断するステップと、
（ａ）ＦＡＴデータのみを含むデータである場合には、
仮想ディスクのＦＡＴデータを更新するステップと、
前記更新の成否の情報をＷｉｎｄｏｗｓ  Ｉ／Ｏに返すステップとを含む処理、
（ｂ）ＦＡＴデータ以外も含むデータである場合には、
前記データに基づいてクラスタデータを作成するステップと、
前記クラスタデータを含むデータをサーバコンピュータに送信するステップと、
前記送信の成否の情報をＷｉｎｄｏｗｓ  Ｉ／Ｏに返すステップとを含む処理、
を実行させるための、コンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムであって、
前記（ｉ）の処理が、前記サーバコンピュータからＦＡＴデータを取得するステップの後に、さらに、以下のステップ：
前記取得したデータが暗号化されている場合には、前記暗号化されているデータを復号化するステップ、および
前記取得したデータが圧縮されている場合には、前記データを解凍するステップ、
を含む、コンピュータプログラム。
【請求項１１】
請求項９に記載のコンピュータプログラムであって、
前記（ｉｉ）（ｂ）の処理が、前記サーバコンピュータから読み出しデータを受信するステップの後に、さらに、以下のステップ：
前記データが暗号化されている場合には、前記データを復号化するステップ、および
前記データが圧縮されている場合には、前記データを解凍するステップ、
を含む、コンピュータプログラム。
【請求項１２】
請求項９に記載のコンピュータプログラムであって、
前記（ｉｉｉ）（ｂ）の処理が、前記クラスタデータを作成するステップの後に、さらに、
前記クラスタデータを圧縮するステップ、および／または
前記クラスタデータを暗号化するステップ、
を含む、コンピュータプログラム。
【請求項１３】
請求項９に記載のコンピュータプログラムであって、
前記（ｉｉｉ）（ｂ）の処理において、前記クラスタデータを含むデータがさらにＦＡＴデータを含む、コンピュータプログラム。
【請求項１４】
請求項１〜７のいずれかに記載のセキュアファイルサーバシステムにおいて、サーバコンピュータに搭載されるコンピュータプログラムであって、
前記クライアントコンピュータからの要求に応じて、前記サーバコンピュータに以下の処理：
（ｉ）前記要求が初期化である場合には、
ＦＡＴデータを前記データベースから取得するステップと、
前記データを復号化するステップと、
前記データをクライアントコンピュータに送信するステップとを含む処理、
（ｉｉ）前記要求がファイル読み出しである場合には、
読み出しデータを前記データベースから取得するステップと、
前記読み出しデータを復号化するステップと、
前記読み出しデータをクライアントコンピュータに送信するステップとを含む処理、
（ｉｉｉ）前記要求がファイル書き込みである場合には、
書き込みデータをクライアントコンピュータから受信するステップと、
前記受信した書き込みデータを暗号化するステップと、
前記暗号化した書き込みデータを前記データベースに保存するステップとを含む処理、
を実行させるための、コンピュータプログラム。
【請求項１５】
請求項１４に記載のコンピュータプログラムであって、
前記（ｉ）の処理が、前記データを復号化するステップの後に、さらに、
前記データを圧縮するステップ、および／または
前記データを暗号化するステップ、
を含む、コンピュータプログラム。
【請求項１６】
請求項１４に記載のコンピュータプログラムであって、
前記（ｉｉ）の処理が、前記データを復号化するステップの後に、さらに、
前記データを圧縮するステップ、および／または
前記データを暗号化するステップ、
を含む、コンピュータプログラム。
【請求項１７】
請求項１４に記載のコンピュータプログラムであって、
前記（ｉｉｉ）の処理が、前記書き込みデータを前記クライアントコンピュータから受信するステップの後に、さらに、
前記データが暗号化されている場合には、前記データを復号化するステップ、および
前記データが圧縮されている場合には、前記データを解凍するステップ、
をさらに含む、コンピュータプログラム。
【請求項１８】
請求項１４に記載のコンピュータプログラムであって、
前記（ｉｉｉ）の処理において、
前記受信した書き込みデータを暗号化するステップが、ＦＡＴデータとクラスタデータとを別々に暗号化することを含み、該クラスタデータはクラスタ単位で暗号化され、
前記暗号化した書き込みデータを前記データベースに保存するステップが、前記暗号化したＦＡＴデータを、前記暗号化したクラスタデータとは異なるデータベースに保存することを含む、コンピュータプログラム。
【請求項１９】
請求項９〜１３のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
【請求項２０】
請求項１４〜１８のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には情報管理システムに関し、より詳細にはクライアントサーバネットワークにおいて情報をより安全性高く管理するためのセキュアファイルサーバシステムに関する。
【背景技術】
【０００２】
ファイルサーバシステムの運用管理において、システムのセキュリティの確保、業務効率の改善、運用コストの削減等は重要な課題である。このような課題に取り組んだ例として、例えば、ＳＳＬを利用してクライアントのフォルダやファイルをサーバのデータベースにおいて集中管理する、オラクル（登録商標）社のＯｒａｃｌｅ  Ｃｏｎｔｅｎｔ  Ｄａｔａｂａｓｅが知られている。しかしながら、このファイルシステムには、オラクル社製のアプリケーションしか使用できないという制限がある。
【発明の開示】
【０００３】
したがって、アプリケーションによる制限を最小化し、かつ高いセキュリティ性、業務効率、運用コストの削減等を確保することができるセキュアなファイルサーバシステムが求められている。
このような状況に鑑み、本発明者らは、現在汎用されているＭｉｃｒｏｓｏｆｔ（登録商標）社のＷｉｎｄｏｗｓ（登録商標）のファイルシステムに対応したセキュアファイルサーバシステムを提供する。
具体的には、本発明は、以下のセキュアファイルサーバシステム、該システムにおけるクライアントまたはサーバコンピュータに搭載されるコンピュータプログラム、およびそのようなコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体を提供する。
（１）Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム（ＯＳ）を使用するクライアントコンピュータと、
上記クライアントコンピュータとネットワークを介して接続された、リレーショナルデータベースを備えたサーバコンピュータとを含む、セキュアファイルサーバシステムであって、
上記クライアントコンピュータは、
上記ネットワークを介して上記サーバコンピュータと通信するための通信手段と、
Ｗｉｎｄｏｗｓ  Ｉ／Ｏシステムからの初期化、ファイル読み出し、またはファイル書き込みの要求に応じて、上記初期化もしくはファイル読み出し要求または上記ファイル書き込み要求および書き込みデータを上記通信手段を介して上記サーバコンピュータに送信し、上記初期化要求または上記ファイル読み出し要求に応じて上記サーバコンピュータから送信されたデータを上記通信手段を介して受信するように該クライアントコンピュータを制御するための制御手段と、を少なくとも備え、
上記サーバコンピュータは、
上記ネットワークを介して上記クライアントコンピュータと通信するための通信手段と、
上記通信手段を介して受信した上記クライアントコンピュータからの上記書き込みデータを上記データベースに保存するか、または上記クライアントコンピュータからの初期化要求もしくは読み出し要求に応じて要求されたデータを上記データベースから取得して、上記通信手段を介して上記クライアントコンピュータに送信するように該サーバコンピュータを制御するための制御手段と、を少なくとも備え、
上記ネットワークを介して送受信される上記書き込みデータまたは上記読み出しデータは、クラスタ単位に分割されたデータ（クラスタデータ）を含み、
上記クラスタデータは、クラスタ単位で暗号化されて上記データベースに保存される、セキュアファイルサーバシステム。
（２）上記書き込みデータはさらに、上記クラスタデータに関連するファイル・アロケーション・テーブル（ＦＡＴ）のデータを含む、上記（１）に記載のセキュアファイルサーバシステム。
（３）上記ＦＡＴデータが、上記クラスタデータとは異なるデータベースに保存される、上記（２）に記載のセキュアファイルサーバシステム。
（４）上記ネットワークを介して送受信するデータが暗号化されている、上記（１）〜（３）のいずれかに記載のセキュアファイルサーバシステム。
（５）上記ネットワークがイントラネットである、上記（１）〜（４）のいずれかに記載のセキュアファイルサーバシステム。
（６）上記ネットワークの通信プロトコルが、ＨＴＴＰプロトコルである、上記（１）〜（５）のいずれかに記載のセキュアファイルサーバシステム。
（７）上記Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムが、ＦＡＴ３２ファイルシステムを使用する、上記（１）〜（６）のいずれかに記載のセキュアファイルサーバシステム。
（８）上記Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムが、ＮＴＦＳを使用する、上記（１）に記載のセキュアファイルサーバシステム。
（９）上記（１）〜（７）のいずれかに記載のセキュアファイルサーバシステムにおいて、クライアントコンピュータに搭載されるコンピュータプログラムであって、
Ｗｉｎｄｏｗｓ（登録商標）のＩ／Ｏシステムからの要求に応じて、上記クライアントコンピュータに以下の処理：
（ｉ）上記要求が初期化である場合には、
上記初期化の要求をサーバコンピュータへ送信するステップと、
上記サーバコンピュータからＦＡＴデータを取得するステップと、
上記取得したＦＡＴデータに基づいて仮想ディスクを作成するステップと。
上記仮想ディスクの情報をＷｉｎｄｏｗｓ  Ｉ／Ｏシステムに返すステップとを含む処理、
（ｉｉ）上記要求がファイル読み出しである場合には、
読み出しデータがＦＡＴデータのみを含むデータであるか否かを判断するステップと、
（ａ）ＦＡＴデータのみを含むデータである場合には、
上記ＦＡＴデータを仮想ディスクから取得するステップと、
取得した仮想ディスクの情報をＷｉｎｄｏｗｓ  Ｉ／Ｏシステムに返すステップとを含む処理、
（ｂ）ＦＡＴデータ以外も含むデータである場合には、
ファイル読み出し要求をサーバコンピュータに送信するステップと、
上記サーバコンピュータから読み出しデータを受信するステップと、
上記受信した読み出しデータをＷｉｎｄｏｗｓ  Ｉ／Ｏへ返すステップとを含む処理、または
（ｉｉｉ）上記要求がファイル書き込みである場合には、
書き込みデータがＦＡＴデータのみを含むデータであるか否かを判断するステップと、
（ａ）ＦＡＴデータのみを含むデータである場合には、
仮想ディスクのＦＡＴデータを更新するステップと、
上記更新の成否の情報をＷｉｎｄｏｗｓ  Ｉ／Ｏに返すステップとを含む処理、
（ｂ）ＦＡＴデータ以外も含むデータである場合には、
上記データに基づいてクラスタデータを作成するステップと、
上記クラスタデータを含むデータをサーバコンピュータに送信するステップと、
上記送信の成否の情報をＷｉｎｄｏｗｓ  Ｉ／Ｏに返すステップとを含む処理、
を実行させるための、コンピュータプログラム。
（１０）上記（９）に記載のコンピュータプログラムであって、
上記（ｉ）の処理が、上記サーバコンピュータからＦＡＴデータを取得するステップの後に、さらに、以下のステップ：
上記取得したデータが暗号化されている場合には、上記暗号化されているデータを復号化するステップ、および
上記取得したデータが圧縮されている場合には、上記データを解凍するステップ、
を含む、コンピュータプログラム。
（１１）上記（９）に記載のコンピュータプログラムであって、
上記（ｉｉ）（ｂ）の処理が、上記サーバコンピュータから読み出しデータを受信するステップの後に、さらに、以下のステップ：
上記データが暗号化されている場合には、上記データを復号化するステップ、および
上記データが圧縮されている場合には、上記データを解凍するステップ、
を含む、コンピュータプログラム。
（１２）上記（９）に記載のコンピュータプログラムであって、
上記（ｉｉｉ）（ｂ）の処理が、上記クラスタデータを作成するステップの後に、さらに、
上記クラスタデータを圧縮するステップ、および／または
上記クラスタデータを暗号化するステップ、
を含む、コンピュータプログラム。
（１３）上記（９）に記載のコンピュータプログラムであって、
上記（ｉｉｉ）（ｂ）の処理において、上記クラスタデータを含むデータがさらにＦＡＴデータを含む、コンピュータプログラム。
（１４）上記（１）〜（７）のいずれかに記載のセキュアファイルサーバシステムにおいて、サーバコンピュータに搭載されるコンピュータプログラムであって、
上記クライアントコンピュータからの要求に応じて、上記サーバコンピュータに以下の処理：
（ｉ）上記要求が初期化である場合には、
ＦＡＴデータを上記データベースから取得するステップと、
上記データを復号化するステップと、
上記データをクライアントコンピュータに送信するステップとを含む処理、
（ｉｉ）上記要求がファイル読み出しである場合には、
読み出しデータを上記データベースから取得するステップと、
上記読み出しデータを復号化するステップと、
上記読み出しデータをクライアントコンピュータに送信するステップとを含む処理、
（ｉｉｉ）上記要求がファイル書き込みである場合には、
書き込みデータをクライアントコンピュータから受信するステップと、
上記受信した書き込みデータを暗号化するステップと、
上記暗号化した書き込みデータを上記データベースに保存するステップとを含む処理、
を実行させるための、コンピュータプログラム。
（１５）上記（１４）に記載のコンピュータプログラムであって、
上記（ｉ）の処理が、上記データを復号化するステップの後に、さらに、
上記データを圧縮するステップ、および／または
上記データを暗号化するステップ、
を含む、コンピュータプログラム。
（１６）上記（１４）に記載のコンピュータプログラムであって、
上記（ｉｉ）の処理が、上記データを復号化するステップの後に、さらに、
上記データを圧縮するステップ、および／または
上記データを暗号化するステップ、
を含む、コンピュータプログラム。
（１７）上記（１４）に記載のコンピュータプログラムであって、
上記（ｉｉｉ）の処理が、上記書き込みデータを上記クライアントコンピュータから受信するステップの後に、さらに、
上記データが暗号化されている場合には、上記データを復号化するステップ、および
上記データが圧縮されている場合には、上記データを解凍するステップ、
をさらに含む、コンピュータプログラム。
（１８）上記（１４）に記載のコンピュータプログラムであって、
上記（ｉｉｉ）の処理において、
上記受信した書き込みデータを暗号化するステップが、ＦＡＴデータとクラスタデータとを別々に暗号化することを含み、該クラスタデータはクラスタ単位で暗号化され、
上記暗号化した書き込みデータを上記データベースに保存するステップが、上記暗号化したＦＡＴデータを、上記暗号化したクラスタデータとは異なるデータベースに保存することを含む、コンピュータプログラム。
（１９）上記（９）〜（１３）のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
（２０）上記（１４）〜（１８）のいずれかに記載のコンピュータプログラムを記録したコンピュータ読みとり可能な記録媒体。
本発明において、データはクラスタ単位で送受信され、クラスタ単位で暗号化してサーバに保存され、クラスタはハードディスク上にランダムな順序で保存される。そのため、不正なユーザがクラスタデータベースにアクセスしたとしても、ファイルを構成するクラスタデータを正確に抽出することが困難なため、従来のファイルシステムよりも高いセキュリティ性を確保することができる。さらに、ＦＡＴデータをクラスタデータとは別のデータベースに保存することによって、よりセキュアなファイルサーバシステムが提供される。
本発明によれば、このようにデータベースシステムにクラスタデータを暗号化し保存することで高レベルのセキュリティ機能を実現しつつ、データベースシステムの機能を利用して無停止対応や、バックアップなどの高可用性をシンプルに実現することができる。また、データベースシステムをファイルサーバとして利用するため、従来のように業務系システムとは別にファイルサーバを構築する必要がなく、システム統合による全体の維持運営コスト削減を実現することが可能となる。
本発明は、サーバをＷｉｎｄｏｗｓ（登録商標）ファイルシステムとして用いることを実現し、それによって、ユーザがサーバから必要なデータを取得して用いる場合でも、あたかもＷｉｎｄｏｗｓ（登録商標）上のドライブを使用しているような高速性と簡易性とを実感することができるシステムを提供することができる。
【図面の簡単な説明】
【０００４】
図１は、本発明のセキュアファイルサーバシステムの一実施形態の例示的構成を示す模式図である。
図２は、図１におけるクライアントコンピュータ１１、サーバコンピュータ２１、およびネットワーク３１から構成される本発明のセキュアファイルサーバシステムの全体構成と、各コンピュータの具体的な構成とを示したブロック図である。
図３は、本発明のセキュアファイルサーバシステムの一実施形態に含まれるクライアントコンピュータ（１１，１２，１３）に搭載されたＷｉｎｄｏｗｓ（登録商標）アプリケーション１２１、Ｗｉｎｄｏｗｓ  Ｉ／Ｏシステム１２２、仮想ディスクドライバ１２３、および仮想ディスク（ファイル・アロケーション・テーブル（ＦＡＴ））１２４、ならびにサーバコンピュータ２１に搭載されたサーバアプリケーション２２１、およびデータベース２１２の間の相互関係を示す。
図４は、クライアントコンピュータ（１１，１２，１３）において、仮想ディスクドライバ１２３に従って制御手段が実行する初期化の処理を示すフローチャートである。
図５は、クライアントコンピュータ（１１，１２，１３）において、仮想ディスクドライバ１２３に従って制御手段が実行するファイル読み出しの処理を示すフローチャートである。
図６は、クライアントコンピュータ（１１，１２，１３）において、仮想ディスクドライバ１２３に従って制御手段が実行するファイル書き込みの処理を示すフローチャートである。
図７ＡおよびＢは、サーバコンピュータ２１において、サーバアプリケーション２２１に従って制御手段が実行する、（Ａ）：初期化およびファイル読み出し、ならびに（Ｂ）：ファイル書き込みの処理を示すフローチャートである。
【発明を実施するための最良の形態】
【０００５】
本明細書中で言及されるすべての刊行物は、刊行物がそれに関連して引用される本発明の特徴を開示および記載する目的のために本明細書中で参考として援用される。
図１は、本発明のセキュアファイルサーバシステムの一実施形態の例示的構成を示す模式図である。本発明のセキュアファイルサーバシステム１は、クライアントコンピュータ１１、１２、および１３、これらとネットワーク３１を介して接続されたサーバコンピュータ２１から構成される。クライアントコンピュータの数は、１以上の任意の数であり得る。ネットワーク３１は、ルータ３２などを介してインターネット４と接続されている。ネットワーク３１は、典型的には、例えば、企業内のイントラネット等であり得る。ここでは、ネットワーク３１が外部ネットワークであるインターネット４と接続されている例を示したが、ネットワーク３１は、必ずしも外部ネットワークに接続されている必要はない。また、本発明は、例えば、クライアントコンピュータ（１１，１２，１３）とサーバコンピュータ２１とがインターネットを介して接続されているような形態（例えば、サーバコンピュータ２１が社外のサーバ管理会社に配置されているような形態）であってもよい。
ネットワーク３１は、ＬＡＮ、ＷＡＮ、インターネットなどで実現することができる。ネットワーク３１を介したクライアントコンピュータ（１１，１２，１３）と、サーバコンピュータ２１との通信プロトコルとしては、ＨＴＴＰプロトコル、ＴＣＰ／ＩＰなどが含まれるが、とりわけＨＴＴＰプロトコルが好ましい。ＨＴＴＰプロトコルを用いることによって、複雑なネットワークのポリシーの設定を行う必要がない、などの利点が得られる。
ネットワーク３１を介して、データをクライアントコンピュータ（１１，１２，１３）とサーバコンピュータ２１との間で送受信する際には、より高いセキュリティ性を実現するため、データを暗号化してもよい。使用され得る暗号化方法には特に制限はないが、対称方式（たとえば乱数により生成される暗号化キー）または非対称方式（公開鍵方式もしくは秘密鍵方式）を用いた暗号化法などが使用され得る。
本発明において、サーバコンピュータ２１のデータベースは、典型的には、リレーショナルデータベースで構成される。リレーショナルデータベースとは、１件のデータを複数の項目（フィールド）の集合として表現し、データの集合をテーブルと呼ばれる表で表す方式を有するデータベースのことをいう。ＩＤ番号や名前などのキーとなるデータを利用して、データの結合や抽出を容易に行なうことができる。本発明においてリレーショナルデータベースを用いる利点としては、クラスタ単位でデータベースに保存するデータを、管理テーブルで管理するという本発明の方式と適合することが挙げられる。その他、本発明のサーバコンピュータのデータベースとして使用できるものとしては、ＩＢＭ社のＵＤＢ（Ｕｎｉｖｅｒｓａｌ  ＤａｔａＢａｓｅ）、Ｏｒａｃｌｅ社のＯｒａｃｌｅなどが挙げられる。
図２は、代表的な例としてクライアントコンピュータ１１、サーバコンピュータ２１、およびネットワーク３１から構成される本発明のセキュアファイルサーバシステムの全体構成と、各コンピュータの具体的な構成とを示した、ブロック図である。
クライアントコンピュータ１１は、ディスプレイ、プリンタなどから構成される出力装置１１１、マイクロプロセッサで構成される中央処理装置（ＣＰＵ）１１２、ＣＰＵに対する命令やデータを一時的に記憶するＲＡＭ、ＲＯＭなどで構成される主記憶装置１１３、ハードディスク、フロッピーディスク、ＭＯ、ＣＤ−ＲＯＭ、メモリカードなどから構成される補助記憶装置１１４、キーボード、マウス、スキャナ、ライトペン、タッチスクリーンなどで構成される入力装置１１５、およびネットワーク３１を介した通信を可能にするためのネットワークインターフェースカード（ＮＩＣ）（例えば、ＬＡＮカード、ＬＡＮアダプタ、ＬＡＮボード、ネットワークカード）などから構成される通信装置１１６を備える。
サーバコンピュータ２１も同様に、ディスプレイ、プリンタなどから構成される出力装置２１１、マイクロプロセッサで構成される中央処理装置（ＣＰＵ）２１２、ＣＰＵに対する命令やデータを一時的に記憶するＲＡＭ、ＲＯＭなどで構成される主記憶装置２１３、ハードディスク、フロッピーディスク、ＭＯ、ＣＤ−ＲＯＭ、メモリカードなどから構成される補助記憶装置２１４、キーボード、マウス、スキャナ、ライトペン、タッチスクリーンなどで構成される入力装置２１５、およびネットワーク３１を介した通信を可能にするためのネットワークインターフェースカード（ＮＩＣ）（例えば、ＬＡＮカード、ＬＡＮアダプタ、ＬＡＮボード、ネットワークカード）などから構成される通信装置２１６を備え、さらにクライアントコンピュータ１１から送信されるデータを格納するためのデータベース２１２を備える。
図３は、本発明のセキュアファイルサーバシステムの一実施形態の構成をソフトウェアレベルで示したものであり、クライアントコンピュータ（１１，１２，１３）に含まれるＷｉｎｄｏｗｓ（登録商標）アプリケーション１２１、Ｗｉｎｄｏｗｓ  Ｉ／Ｏシステム１２２、仮想ディスクドライバ１２３、および仮想ディスク１２４、ならびにサーバコンピュータ２１に含まれるサーバアプリケーション２２１、およびデータベース２１２の間の相互関係を示す。このように、ソフトウェアレベルでは、本発明のセキュアファイルサーバシステム１１０は、仮想ディスクドライバ１２３、仮想ディスク１２４、ネットワーク３１、サーバアプリケーション２２１、およびデータベース２１２から構成される。仮想ディスク１２４には、クラスタデータを管理するファイル・アロケーション・テーブル（ＦＡＴ）の情報が含まれる。「仮想ディスク」は、仮想ディスクドライバ１２３によりＷｉｎｄｏｗｓ（登録商標）のファイルシステムと適合するようディスクをエミュレートすることによって作成される。
クライアントコンピュータ（１１，１２，１３）において、Ｗｉｎｄｏｗｓ（登録商標）アプリケーション１２１は、ユーザーモードで動作し、Ｗｉｎｄｏｗｓ（登録商標）Ｉ／Ｏシステム１２２および仮想ディスクドライバ１２３は、カーネルモードで動作する。ここで、カーネルモードとは、全てのシステムメモリおよび全てのＣＰＵ命令へのアクセスを許す、プロセッサが備える実行モードの１つである（例えば、インサイド  Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  第４版  （上）および（下）（２００５）、日経ＢＰソフトプレスを参照）。
本発明において使用されるＷｉｎｄｏｗｓ（登録商標）ファイルシステムとしては、ＦＡＴファイルシステム（例えば、ＦＡＴ１２、ＦＡＴ１６、およびＦＡＴ３２）、およびＮＴＦＳが挙げられる。ＦＡＴファイルシステムでは、複数のセクタをまとめたクラスタ（常に、セクタの大きさの倍数となっている）という単位でディスクを管理する。さらにこのクラスタを、ファイル・アロケーション・テーブル（ＦＡＴ）で管理する。クラスタのサイズは、２ｋＢ、４ｋＢ、８ｋＢ、１６ｋＢ、３２ｋＢ、６４ｋＢ、１２８ｋＢ等が可能である。
ＦＡＴボリュームは、いくつかの領域に分割されており、ＦＡＴは、ボリューム上の個々のクラスタのエントリを有している。ＦＡＴ内のエントリは、ディレクトリおよびファイル用のファイルアロケーションチェインを定義する。チェイン内のリンクは、ファイルデータの次のクラスタへのインデックスとなっている。ファイルディレクトリエントリは、ファイル名、その大きさ、開始クラスタ、およびタイムスタンプ（最新アクセス日、作成日など）などの情報を記憶する。ＦＡＴボリュームからのファイル読み出し時には、ＦＡＴのほとんどが読み込まれ、ファイルアロケーションチェインの検索処理が行われることがある。（例えば、インサイド  Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  第４版  （下）（２００５）、日経ＢＰソフトプレスを参照）
ＮＴＦＳは、６４ビットクラスタを使用して、２５６ＴＢより若干少ないボリュームを管理する。ＮＴＦＳは、マスタファイルテーブル（ＭＦＴ）の各エントリにファイル名、タイムスタンプなどの種々の属性を格納する。データ本体などのエントリに入りきらない情報は、別の領域に保存する。ＭＦＴは、各ファイルの情報を管理するディスク上にある全てのファイルと１対１に対応している。（例えば、インサイド  Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  第４版  （下）（２００５）、日経ＢＰソフトプレスを参照）
本明細書中、「クラスタデータ」という場合、上記ＦＡＴファイルシステムまたはＮＴＦＳファイルシステムにおいて、クラスタに分割されたファイルのデータを意味する。また、本明細書中、「ＦＡＴデータ」という場合、ＦＡＴファイルシステムにおけるＦＡＴ内のエントリのデータを意味する。さらに、「ＭＦＴデータ」という場合、ＮＴＦＳファイルシステムにおけるＭＦＴ内のエントリのデータを意味する。本発明において利用可能なＦＡＴファイルシステムまたはＮＴＦＳファイルシステムは、現在利用可能なものに限定されず、クラスタを単位としてファイルを分割してデータをやりとりしたり、データベースに保存したりすることを可能にするものであれば、将来的にバージョンアップしたＦＡＴファイルシステムまたはＮＴＦＳファイルシステムあるいはその他のファイルシステムも本発明において利用可能なファイルシステムに含まれる。
図４、図５および図６はそれぞれ、クライアントコンピュータ（１１，１２，１３）において、仮想ディスクドライバ１２３に従って制御手段（ＣＰＵ１１２）が実行する、初期化、ファイル読み出し、およびファイル書き込みの処理を示すフローチャートである。
図４を参照し、クライアントコンピュータ（１１，１２，１３）のＣＰＵ１１２が行う初期化処理について説明する。スタートにおいて待機状態にあるＣＰＵ１１２がステップＳ１１１でＷｉｎｄｏｗｓ  Ｉ／Ｏから初期化の要求を受けると、ステップＳ１１２で初期化の要求をネットワーク３１を介してサーバコンピュータ２１へ通信手段（通信装置１１６）により送信する。次に、ステップＳ１１３でサーバコンピュータ２１からネットワーク３１を介して通信装置１１６によりＦＡＴデータを取得する。サーバコンピュータ２１から送られてくるＦＡＴデータは、通常、セキュリティを考慮して暗号化されている。したがって、データが暗号化されている場合には、ステップＳ１１４において、暗号化されたデータを復号化する。また、通常、送信速度、セキュリティ性などを高めるためにクライアントコンピュータ（１１，１２，１３）とサーバコンピュータ２１との間で送受信されるデータは、圧縮されている。したがって、データが圧縮されている場合には、ステップＳ１１５において圧縮されているデータを解凍する。このような暗号化、復号化、圧縮、解凍などの処理は、プログラムにより実現することができる。次に、ステップＳ１１６において、ＣＰＵ１１２は、ＦＡＴデータにもとづいて仮想ディスクを主記憶装置１１３内に作成し、ステップＳ１１７で作成した仮想ディスクの情報をＷｉｎｄｏｗｓ（登録商標）Ｉ／Ｏに返し、処理を終了する。
図５を参照し、クライアントコンピュータ（１１，１２，１３）の制御手段（ＣＰＵ１１２）が行うファイル読み出し処理について説明する。スタートにおいて待機状態にあるＣＰＵ１１２がステップＳ１２１でＷｉｎｄｏｗｓ（登録商標）Ｉ／Ｏからファイル読み出しの要求を受けると、ステップＳ１２２でその要求がＦＡＴデータのみを含むデータの読み出し要求か否かを判断する。ＦＡＴデータのみを含むデータの読み出し要求である場合には（Ｓ１２２：ＹＥＳ）、ステップＳ１２３に進んで主記憶装置１１３内に作成されている仮想ディスクのＦＡＴデータの情報を取得し、ステップＳ１２８に進んでＦＡＴデータの情報をＷｉｎｄｏｗｓ（登録商標）Ｉ／Ｏシステムに返し、処理を終了する。ステップＳ１２２において、その要求がＦＡＴデータ以外のデータも含むデータの読み出し要求である場合には（Ｓ１２２：ＮＯ）、ステップＳ１２４に進み、ファイル読み出し要求をネットワーク３１を介してサーバコンピュータ２１へ通信手段（通信装置１１６）により送信する。次に、ステップＳ１２５において、サーバコンピュータ２１からネットワーク３１を介して送られてきたデータを通信装置１１６を介して取得する。データには要求されたファイルを構成するクラスタのデータ（クラスタデータ）が含まれる。サーバコンピュータ２１から送られてくるデータは、通常、セキュリティを考慮して暗号化されている。したがって、ステップＳ１２６において、暗号化されたデータを復号化する。また、通常、送信速度および／またはセキュリティを高めるためにクライアントコンピュータ（１１，１２，１３）とサーバコンピュータ２１との間で送受信されるデータは、圧縮されている。したがって、ステップＳ１２７において圧縮されているデータを解凍する。このような暗号化、復号化、圧縮、解凍などの処理は、プログラムにより実現することができる。次に、ＣＰＵ１１２は、ステップＳ１２８において、クラスタデータを含むデータをＷｉｎｄｏｗｓ  Ｉ／Ｏに返し、処理を終了する。
図６を参照し、クライアントコンピュータ（１１，１２，１３）の制御手段（ＣＰＵ１１２）が行うファイル書き込み処理について説明する。スタートにおいて待機状態にあるＣＰＵ１１２がステップＳ１３１でＷｉｎｄｏｗｓ（登録商標）Ｉ／Ｏからファイル書き込みの要求を受けると、ステップＳ１３２において、その要求がＦＡＴデータのみに関するデータの書き込み要求か否かを判断する。ＦＡＴデータのみに関するデータの書き込み要求である場合（Ｓ１３２：ＹＥＳ）、ステップＳ１３３に進み、主記憶装置１１３内の仮想ディスク上のＦＡＴデータを更新する。次いで、ステップＳ１３８において更新の可否の情報をＷｉｎｄｏｗｓ（登録商標）Ｉ／Ｏに返し、処理を終了する。ステップＳ１３２でその要求がＦＡＴデータ以外のデータも含むデータに関する書き込み要求である場合には（Ｓ１３２：ＮＯ）、ステップＳ１３４に進み、上記データに基づいてクラスタデータを作成する。次いで、ステップＳ１３５において、データを圧縮し、ステップＳ１３６において、圧縮したデータを暗号化し、ステップＳ１３７において暗号化したデータをネットワーク３１を介してサーバコンピュータ２１へ通信手段（通信装置１１６）により送信する。このような暗号化、圧縮などの処理は、プログラムにより実現することができる。なお、ステップＳ１３５および／またはステップＳ１３６は省略することもできる。次いで、ステップＳ１３８において、送信の成否についての情報をＷｉｎｄｏｗｓ（登録商標）Ｉ／Ｏに返し、処理を終了する。
図７ＡおよびＢは、サーバコンピュータ２１において、サーバアプリケーション２２１に従って制御手段（ＣＰＵ２１２）が実行する、初期化、ファイル読み出し、およびファイル書き込みの処理を示すフローチャートである。
図７Ａを参照して、サーバコンピュータ２１の制御手段（ＣＰＵ２１２）が行う初期化およびファイル読み出しの処理について説明する。スタートにおいて待機状態にあるＣＰＵ２１２がステップＳ２１１でクライアントコンピュータ（１１，１２，１３）からネットワーク３１を介して初期化またはファイル読み出しの要求を、通信手段（通信装置２１６）を介して受信する。次に、ステップＳ２１２において、データベース２１２にアクセスし、要求されたデータ（初期化の場合は、ＦＡＴデータ、ファイル読み出しの場合はクラスタデータ）を取得する。データは、データベース２１２に暗号化して保存されている。したがって、ステップＳ２１３において、データベース２１２から取得したデータを復号化し、さらにステップＳ２１４において、送信速度、セキュリティ性の改善等のためにデータを圧縮し、ステップＳ２１５においてそのデータを暗号化する。ステップＳ２１６において暗号化したＦＡＴデータまたはクラスタデータを通信装置２１６によりネットワーク３１を介してクライアントへ送信し、処理を終了する。なお、ステップＳ２１４およびステップＳ２１５は省略することもできる。
図７Ｂを参照して、サーバコンピュータ２１の制御手段（ＣＰＵ２１２）が行うファイル書き込みの処理について説明する。スタートにおいて待機状態にあるＣＰＵ２１２がステップＳ２２１においてクライアントコンピュータ（１１，１２，１３）からネットワーク３１を介してファイル書き込み要求およびファイルを構成するデータを通信手段（通信装置２１６）により受信する。クライアントコンピュータ（１１，１２，１３）から受信するデータは通常暗号化されているため、ステップＳ２２２において、受信したデータを復号化する。また、クライアントコンピュータ（１１，１２，１３）から受信するデータは通常圧縮されているため、ステップＳ２２３において、受信したデータを解凍する。なお、データが暗号化または圧縮されていない場合には、ステップＳ２２２またはステップＳ２２３は省略することができる。次いで、ステップＳ２２４において、そのデータをデータベースへの保存のために暗号化する。ここで、クラスタデータについては、クラスタ単位で暗号化する。データベースへ保存する際のデータの暗号化は、対称方式（たとえば乱数により生成される暗号化キー）または非対称方式（公開鍵方式もしくは秘密鍵方式）を用いた暗号化法などによって行うことができる。次いで、ステップＳ２２５でその暗号化したクラスタデータおよびＦＡＴデータをデータベース２１２に保存する。クラスタデータはクラスタ単位で暗号化してデータベース２１２に保存され、各クラスタの位置はディスク上にランダムに割り当てられるため、不正ユーザによる閲覧、改ざん、取得などに対してよりセキュアなサーバシステムが提供される。ここで、このシステムのセキュリティ性をさらに高めるために、データベース２１２において、クラスタデータ用のデータベースとＦＡＴデータ用のデータベースとを別々に設け、暗号化したこれらのデータをそれぞれのデータベースに別々に保存してもよい。それによって、不正ユーザが侵入した場合でも、クラスタデータのみにアクセスしただけでは元のファイルを復元することは不可能であり、よりセキュリティ性を高めることができる。
本明細書記載の処理動作を実現するためのプログラムは、コピュータ読みとり可能な記録媒体（例：半導体メモリ、フレキシブルディスク、ハードディスク等または光読出手段（例：ＣＤ−ＲＯＭ、ＤＶＤ））に格納した製品としてユーザに供給することができる他、プログラム情報を搬送波として伝播させて供給するためのコンピュータネットワーク（ＬＡＮ、インターネット等のＷＡＮ、無線通信ネットワーク等）を介してユーザに供給することもできる。
【産業上の利用可能性】
【０００６】
本発明は、アプリケーションによる制限を最小化し、かつ高いセキュリティ性、業務効率、運用コストの削減等を確保することができるセキュアなファイルサーバシステムとして用いることができる。
【図１】
2008065725.tif 000003
【図２】
2008065725.tif 000004
【図３】
2008065725.tif 000005
【図４】
2008065725.tif 000006
【図５】
2008065725.tif 000007
【図６】
2008065725.tif 000008
【図７】
2008065725.tif 000009
【国際調査報告】
2008065725.tif 000010
2008065725.tif 000011