(57)【特許請求の範囲】
【請求項１】
ファイルを保持する保持手段と、
前記保持手段が保持しているファイルの送信要求を、ネットワークを介して外部の装置から受信した場合に、該ファイルを要求ファイルとして前記外部の装置に対して送信すると共に、前記要求ファイルが前記外部の装置に対して送信されたことを示す第１の履歴情報を作成する送信手段と、
前記保持手段により保持されているファイルがウィルスに感染しているか否かを判定する判定手段と、
前記判定手段により前記ファイルがウィルスに感染していると判定された場合に、前記送信手段により作成された前記第１の履歴情報を参照し、前記ウィルスに感染していると判定されたファイルを前記送信手段が前記要求ファイルとして過去に送信した送信先を特定する特定手段と、
前記特定手段が特定した前記送信先に対して、前記要求ファイルがウィルスに感染している旨を、前記ネットワークを介して報知する報知手段と、
前記判定手段によりウィルスに感染していると判定されたファイルからウィルスを駆除する駆除手段と、
前記特定手段により特定された送信先が、前記ウィルスに感染していると判定されたファイルに対するアクセス権を有しているか否かを判断する判断手段と、を備え、
前記報知手段は、前記判断手段によりアクセス権を有していると判断された送信先に対しては、前記駆除手段によりウィルスが駆除された後のファイルをダウンロードするよう報知し、前記判断手段によりアクセス権を有していないと判断された送信先に対しては、既に送信先に送信されている前記要求ファイルを削除するよう報知することを特徴とする情報処理装置。
【請求項２】
前記外部の装置からネットワークを介して第１のファイルを受信し、当該第１のファイルを前記保持手段に格納する受信手段をさらに備え、
前記判定手段は、前記受信手段による前記第１のファイルの受信に応じて、前記第１のファイルがウィルスに感染しているか否かを判定する
ことを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記外部の装置からネットワークを介して第１のファイルを受信し、当該第１のファイルを前記保持手段に格納する受信手段と、
前記第１のファイルの送信元を示す第２の履歴情報を作成する作成手段と、をさらに備え
前記判定手段は、前記保持手段に格納されているファイルがウィルスに感染していると判定された場合に、前記第２の履歴情報にしたがって、当該ウィルスに感染していると判定されたファイルの送信元と同一の送信元から受信した他のファイルがウィルスに感染しているか否か判定する
ことを特徴とする、請求項１に記載の情報処理装置。
【請求項４】
前記保持手段は、１つのファイルに対して少なくとも１つ以上のバージョンを保持しており、
前記判定手段は、前記ファイルの１つのバージョンがウィルスに感染していると判定された場合に、当該ウィルスに感染していると判定されたファイルの別のバージョンがウィルスに感染しているか否か判定することを特徴とする、請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記判定手段は、前記ファイルに対して更新が行われ、当該ファイルの新しいバージョンが保持手段に追加されたことに応じて、当該新しいバージョンがウィルスに感染しているか否か判定することを特徴とする、請求項４に記載の情報処理装置。
【請求項６】
前記判定手段は、
前記ファイルがウィルスに感染しているかどうかをチェックするためのチェックプログラムに従って、前記ファイルがウィルスに感染しているか否かの判定を行い、
前記チェックプログラムが使用する、ウィルスのパターンが記されたパターンファイルが更新されたことに応じて、前記保持手段に保持されているファイルがウィルスに感染しているか否かを判定する
ことを特徴とする、請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
ファイルを保持する保持手段を備える情報処理装置が行う情報処理方法であって、
前記情報処理装置の送信手段が、前記保持手段が保持しているファイルの送信要求を、ネットワークを介して外部の装置から受信した場合に、該ファイルを要求ファイルとして前記外部の装置に対して送信すると共に、前記要求ファイルが前記外部の装置に対して送信されたことを示す第１の履歴情報を作成する送信工程と、
前記情報処理装置の判定手段が、前記保持手段により保持されているファイルがウィルスに感染しているか否かを判定する判定工程と、
前記情報処理装置の特定手段が、前記判定工程において前記ファイルがウィルスに感染していると判定された場合に、前記送信工程において作成された前記第１の履歴情報を参照し、前記ウィルスに感染していると判定されたファイルを前記送信工程において前記要求ファイルとして過去に送信した送信先を特定する特定工程と、
前記情報処理装置の第１の報知手段が、前記特定工程において特定した前記送信先に対して、前記要求ファイルがウィルスに感染している旨を、前記ネットワークを介して報知する第１の報知工程と、
前記情報処理装置の駆除手段が、前記判定工程においてウィルスに感染していると判定されたファイルからウィルスを駆除する駆除工程と、
前記情報処理装置の判断手段が、前記特定工程において特定された送信先が、前記ウィルスに感染していると判定されたファイルに対するアクセス権を有しているか否かを判断する判断工程と、
前記情報処理装置の第２の報知手段が、前記判断工程においてアクセス権を有していると判断された送信先に対しては、前記駆除工程においてウィルスが駆除された後のファイルをダウンロードするよう報知し、前記判断工程においてアクセス権を有していないと判断された送信先に対しては、既に送信先に送信されている前記要求ファイルを削除するよう報知する第２の報知工程と、
を含むことを特徴とする情報処理方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか１項に記載の情報処理装置が有する各手段として機能させるための、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータウィルスを検出してユーザに報告する技術に関する。
【背景技術】
【０００２】
近年、サーバ上に格納されたファイルに感染したコンピュータウィルスを検出及び駆除するソフトウェアが知られている。一般に、コンピュータウィルスを検出するためには、コンピュータウィルスの特徴が定義されているパターンファイルが参照される。したがって、サーバ上のパターンファイルが古い場合には、新しいウィルスを検出することができない。新しいパターンファイルを手に入れることにより、新しいウィルスを検出することができる。このとき、検出できなかった新しいウィルスが感染したファイルを、クライアントがダウンロードしてしまう可能性がある。
【０００３】
特許文献１に記載の方法によれば、メール受信サーバは、受信したメールをクライアントに送る際に、同一のメールを保存しておく。そして、更新されたパターンファイルを用いて保存されたメールのウィルスを検出する。保存されたメールからウィルスが検出された場合には、そのメールの宛先情報に従って、メールを受信したクライアントに警告を発する。このようにして、メールがクライアントに送られた後に取得したパターンファイルに従ってウィルスが検出された場合でも、クライアントに警告を発することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−０１８１８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の方法においては、ウィルスに感染したファイルは、メールの宛先情報によって示されるクライアントに送信される。一方でファイルサーバ上のファイルは、任意のユーザによってダウンロードされる可能性がある。しかしながら通常は、ファイルの属性情報を参照しても、サーバ上のファイルをダウンロードしたクライアントを特定することはできない。よって、ウィルスに感染したファイルをダウンロードした全てのクライアントに対して警告を発することは困難であった。
【０００６】
本発明によれば、ウィルスに感染していることが検出されたファイルを以前にダウンロードしているクライアントに対して、通知を発することが可能となる。
【課題を解決するための手段】
【０００７】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。すなわち、
ファイルを保持する保持手段と、
前記保持手段が保持しているファイルの送信要求を、ネットワークを介して外部の装置から受信した場合に、該ファイルを要求ファイルとして前記外部の装置に対して送信すると共に、前記要求ファイルが前記外部の装置に対して送信されたことを示す第１の履歴情報を作成する送信手段と、
前記保持手段により保持されているファイルがウィルスに感染しているか否かを判定する判定手段と、
前記判定手段により前記ファイルがウィルスに感染していると判定された場合に、前記送信手段により作成された前記第１の履歴情報を参照し、前記ウィルスに感染していると判定されたファイルを前記送信手段が前記要求ファイルとして過去に送信した送信先を特定する特定手段と、
前記特定手段が特定した前記送信先に対して、前記要求ファイルがウィルスに感染している旨を、前記ネットワークを介して報知する報知手段と、
前記判定手段によりウィルスに感染していると判定されたファイルからウィルスを駆除する駆除手段と、
前記特定手段により特定された送信先が、前記ウィルスに感染していると判定されたファイルに対するアクセス権を有しているか否かを判断する判断手段と、を備え、
前記報知手段は、前記判断手段によりアクセス権を有していると判断された送信先に対しては、前記駆除手段によりウィルスが駆除された後のファイルをダウンロードするよう報知し、前記判断手段によりアクセス権を有していないと判断された送信先に対しては、既に送信先に送信されている前記要求ファイルを削除するよう報知することを特徴とする。
【発明の効果】
【０００８】
ウィルスに感染していることが検出されたファイルを以前にダウンロードしているクライアントに対して、通知を発することができる。
【図面の簡単な説明】
【０００９】
【図１】実施例１に係るシステム構成の概念図。
【図２】実施例１に係る文書管理サーバ１０１のハードウェア構成図。
【図３】実施例１に係る文書管理サーバ１０１の構成例を表す図。
【図４】実施例１に係るフォルダの論理的な構成例を表す図。
【図５】実施例２に係るバージョン管理の論理的な構成例。
【図６】実施例１に係る履歴テーブルの例を表す図。
【図７】実施例１に係るアクセス権テーブルの例を表す図。
【図８】実施例１に係る操作履歴を表示する画面の例を表す図。
【図９】実施例１に係る文書のアクセス権を設定する画面の例を表す図。
【図１０】実施例１に係る処理の流れを表すフローチャート。
【図１１】実施例２に係る処理の流れを表すフローチャート。
【図１２】実施例３に係る処理の流れを表すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下に述べる実施例は、本発明の説明をしやすいように様々な制約が付加されている。しかしながら本発明の範囲は、以下の説明において特に記載がない限り、これらの態様に限られるものではない。
【００１１】
［実施例１］
図１は、本実施例に係る文書管理システムの構成を示すシステム構成図である。図１には、文書管理サーバ１０１と、クライアントＰＣ１０２（１）、１０２（２）、・・・、１０２（Ｎ）とを示す。クライアントＰＣ１０２は、ネットワーク１００を介して文書管理サーバ１０１に常時接続され。クライアントＰＣ１０２は、ダイアルアップ回線を介して接続されてもよい。
【００１２】
なお、クライアントＰＣ１０２（１）、１０２（２）、・・・、１０２（Ｎ）は、同様の構成を持つ。したがって本明細書では、説明の簡略化のために、クライアントＰＣ１０２（１）、１０２（２）、・・・、１０２（Ｎ）の中から特定されたクライアントＰＣを、クライアントＰＣ１０２（Ｘ）又は１０２（Ｙ）のように示す。また、クライアントＰＣ１０２（１）、１０２（２）、・・・、１０２（Ｎ）の全体を、単にクライアントＰＣ１０２と呼ぶ。
【００１３】
クライアントＰＣ１０２は、本実施形態における文書管理サーバ１０１のユーザが用いる情報処理装置である。例えばユーザはクライアントＰＣ１０２を、自宅又は会社において直接操作する。クライアントＰＣ１０２については、図２を参照して後に詳しく説明する。文書管理サーバ１０１のユーザは、ネットワーク１００を介して文書管理サーバ１０１にアクセスすることができる。ユーザは、クライアントＰＣ１０２に保持されているアプリケーションやＷｅｂブラウザ等を用いて、文書管理サーバ１０１にアクセスすることができる。
【００１４】
こうしてユーザは、文書管理サーバ１０１に文書を送信し、文書管理サーバ１０１に文書を格納することができる。またユーザは、文書管理サーバ１０１に格納されている文書情報等を取得することができる。本実施例において、文書データは、文書管理サーバ１０１内の格納装置に格納される。しかしながら文書データは、文書管理サーバ１０１外の格納装置に格納されてもよい。この場合文書管理サーバ１０１は、外部の格納装置に格納された文書データへの、クライアントＰＣ１０２からのアクセスを制御する。
【００１５】
文書管理サーバ１０１は、クライアントＰＣ１０２と通信をおこなうことができる情報処理装置である。文書管理サーバ１０１は、クライアントＰＣ１０２からネットワーク１００を介して送信される文書を受信し、文書管理サーバ１０１内の所定の場所に文書を格納することができる。また文書管理サーバ１０１は、格納された文書を検索及び取得することができる。文書管理サーバの構成については、図３を参照して後に詳しく説明する。ネットワーク１００は、本実施例ではインターネットである。しかしながらネットワーク１００は、Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ（以下、ＬＡＮ）等の他のネットワークであってもよい。
【００１６】
図２は、本実施例における文書管理サーバ１０１及びクライアントＰＣ１０２の内部構成を示す。本実施例では、文書管理サーバ１０１及びクライアントＰＣ１０２において必要とされる内部構成は、ほぼ同一である。したがって説明の簡略化のために、文書管理サーバ１０１とクライアントＰＣ１０２とを、同一の図を参照して説明する。以下の説明では、文書管理サーバ１０１とクライアントＰＣ１０２とをまとめて情報処理装置と呼ぶ。
【００１７】
２０１は、中央演算装置（以下、ＣＰＵと記す）である。ＣＰＵ２０１は、演算を行い、情報処理装置を制御する。２０２は、ランダムアクセスメモリ（以下、ＲＡＭと記す）である。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、プログラムの格納領域、プログラムの実行領域、並びにデータ領域として働く。
【００１８】
２０３は、ＣＰＵ２０１の動作処理手順を記憶しているリードオンリーメモリ（以下、ＲＯＭと記す）である。ＲＯＭ２０３は、情報処理装置の機器制御をおこなうためのシステムプログラムである基本ソフト（ＯＳ）を記録したプログラムＲＯＭを含む。またＲＯＭ２０３は、システムを稼動させるために必要な情報等が記録されているデータＲＯＭを含む。ＲＯＭ２０３の代わりに後述のＨＤＤ２１２を用いることもできる。
【００１９】
２０４は、フロッピー（登録商標）ディスクドライブ（ＦＤＤ）やＣＤ−ＲＯＭドライブのような外部記憶メディアとデータを交換するデータ入出力装置である。データ入出力装置２０４は、対応する記憶メディアと情報を交換することができる。本実施例においては、データ入出力装置としてＣＤ−ＲＯＭ２０４が用いられる。
【００２０】
２０５は、ネットワークインターフェース（ＮＥＴＩＦ）である。ＮＥＴＩＦ２０５は、ネットワーク１００に接続することができる。またＮＥＴＩＦ２０５は、後述するモデム２０６を介して、外部ネットワークに接続することができる。さらにＮＥＴＩＦ２０５は、ネットワークを介してデータ転送をおこなうために、データ転送の制御及び接続状況の診断をおこなうことができる。
【００２１】
２０６は、モデム等の信号変換器である。モデム２０６は、データ通信のために、外部ネットワークと情報処理装置とを電話回線等を介して接続することができる。２０７はビデオＲＡＭ（ＶＲＡＭ）である。ＶＲＡＭ２０７は、後述するＣＲＴ２０８に表示される画面を制御することができる。
【００２２】
２０８は、表示装置である。表示装置としては、例えばＣＲＴ等のディスプレイ装置を用いることができる。本実施例においては、表示装置としてＣＲＴが用いられる。ＣＲＴ２０８は、情報処理装置の稼動状態を示すことができる。２０９は、後述する外部入力装置２１０及び２１２からの入力信号を取得することができるコントローラ（以下、ＫＢＣと記す）である。２１０は、情報処理装置の利用者が入力操作をおこなうために用いるキーボード（以下、ＫＢと記す）である。２１１は、情報格納装置の利用者が入力操作をおこなうために用いるポインティングデバイス（以下、マウスと記す）である。
【００２３】
２１２は、ハードディスクドライブ（以下、ＨＤＤと記す）である。ＨＤＤ２１２は、アプリケーションプログラムや各種データを保存するために用いられる。本実施例におけるアプリケーションプログラムとは、本実施例における各種処理手段を構成するソフトウェアプログラム等のことである。２００は、上述した各ユニット間を接続するための伝送バス（アドレスバス、データバス、入出力バス及び制御バス）である。
【００２４】
図３は、本実施例に係る文書管理サーバ１０１内で動作する処理モジュールと、及び情報を格納する格納装置とを示す。図３において、３００は処理モジュール群である。処理モジュール群３００に含まれる各モジュールは、図２に示したＲＯＭ２０３、ＦＤＤ２０４、またはＨＤＤ２１２より読み込まれ、ＲＡＭ２０２へと展開され、ＣＰＵ２０１によって使用されるアプリケーションプログラムによって実現される。
【００２５】
３０１は、ウィルスチェック部である。ウィルスチェック部３０１は、たとえばＲＯＭ２０３に格納されたウィルスチェックプログラムをＣＰＵ２０１が実行することにより実現される（第２の保持手段）。ウィルスチェック部３０１は、クライアントＰＣ１０２から送信される文書データを受信する。そしてウィルスチェック部３０１は、ウィルス対策ソフトウェアを実行することにより、受信した文書データにウィルスが感染していないかどうかをチェックする。さらにウィルスチェック部３０１は、後述する登録文書管理部３１１内によって管理される文書データにウィルスが感染していないかどうかを定期的にチェックする。ウィルスチェック部３０１は、後述する定義ファイル管理部３１３によって管理される、ウィルスパターンを定義したパターンファイルを用いて、ウィルスのチェックをおこなう。
【００２６】
３０２は、ウィルス駆除部である。ウィルス駆除部３０２は、ウィルスが感染している文書データから、ウィルスを駆除することを試みる。３０３は、感染文書削除部である。感染文書削除部３０３は、ウィルス駆除部３０２が文書データからウィルスをできなかった場合、その文書データを後述する感染文書管理部３１６から削除する。
【００２７】
３０４は通知部である。通知部３０４は、ウィルスチェック部３０１が文書データに感染したウィルスを検出した場合、クライアントＰＣ１０２のユーザに対して、ウィルスが感染した文書が見つかったことを通知する。本実施例においては通知部３０４は、クライアントＰＣ１０２に対してメールを送信することにより、ウィルスが見つかったことを通知する。しかしながら通知部３０４は任意の方法により通知を行うことができる。例えば通知部３０４がクライアントＰＣ１０２にダイアログ表示命令を送ることにより、クライアントＰＣ１０２のＣＲＴ２０８に警告ダイアログを表示させることもできる。
【００２８】
３０５は、表示情報処理部である。表示情報処理部３０５は、クライアントＰＣ１０２の画面に表示させる、文書管理サーバ１０１についての情報を生成する。表示情報処理部３０５は、例えばクライアントＰＣ１０２がアップロードした文書データがウィルスに感染している場合に、そのことを示す情報をクライアントＰＣ１０２に表示させることができる。
【００２９】
さらに表示情報処理部３０５は、クライアントＰＣ１０２がアップロードした文書の状態をクライアントＰＣ１０２に表示させることができる。たとえば表示情報処理部３０５は、アップロードされた文書データからウィルスが駆除されたことを示す情報をクライアントＰＣ１０２に表示させることができる。
【００３０】
また表示情報処理部３０５は、アップロードされた文書データが削除されていることを示す情報をクライアントＰＣ１０２に表示させることができる。また表示情報処理部３０５は、アップロードされた文書データのアクセス権を示す情報をクライアントＰＣ１０２に表示させてもよい。３０６は、アクセス権設定部である。アクセス権設定部３０６は、後述する登録文書管理部３１１内の文書データ及びバージョン管理部３１２内のバージョンデータへの、クライアントＰＣ１０２のユーザのアクセス権を設定する。
【００３１】
３０７は、文書復帰部である。文書復帰部３０７は、ウィルスに感染していない文書データを、後述する感染文書管理部３１６から、後述する登録文書管理部３１１に移動する。例えば、ウィルス駆除部３０２が感染文書管理部３１６に隔離されている文書データのウィルスを駆除した後に、文書復帰部３０７はこの文書データを登録文書管理部３１１に移動する。定義ファイル管理部３１３に格納されている最新のパターンファイルが用いた検索が行われた際に、感染文書管理部３１６に隔離されている文書データからウィルスが検出されない場合もある。この場合、文書復帰部３０７はこの文書データを登録文書管理部３１１に移動してもよい。３０８は、履歴参照部である。履歴参照部３０８は、後述する履歴管理部３１４で管理される操作履歴を参照する。
【００３２】
３１０は情報格納装置である。情報格納装置３１０は後述する各部３１１〜３１７を備える。情報格納装置３１０は、ＲＡＭ２０２、ＦＤＤ２０４又はＨＤＤ２１２の少なくとも一つを用いて、ファイルシステムまたはデータベースシステムとして実現される。情報格納装置３１０に格納された情報へは、情報を特定するキー又は検索条件を指定することにより、直接アクセスすることが可能である。
【００３３】
３１１は、登録文書管理部である（第１の保持手段）。登録文書管理部３１１は、クライアントＰＣ１０２の登録指示部３２２からの要求に従い、文書データを格納する。文書データはクライアントＰＣ１０２から取得しても良いし、他の情報処理装置から取得してもよい。３１２は、バージョン管理部である。バージョン管理部３１２は、文書管理サーバ１０１が文書のバージョン管理をおこなう場合に使用される。
【００３４】
バージョン管理が行われる場合、文書管理サーバ１０１には、１つの文書について複数のバージョンのデータ（バージョンデータ）が格納される。例えば、文書管理サーバ１０１内の文書４０２（Ｘ）を更新する場合、更新前の文書と更新後の文書とが、ともにバージョンデータとして文書管理サーバ内に格納される。最新のバージョンが登録文書管理部３１１に格納され、古いバージョンが、バージョン管理部３１２に格納されてもよい。ただし、登録文書管理部３１１とバージョン管理部３１２とを分けることは必須ではない。１つの文書について複数のバージョンを格納できれば十分である。
【００３５】
３１３は定義ファイル管理部である。定義ファイル管理部３１３は、ウィルス定義ファイルを格納する。ウィルスチェック部３０１は、定義ファイル管理部３１３に格納されたウィルス定義ファイルを使用することにより、ウィルスチェックを行う。３１４は履歴管理部である。履歴管理部３１４は、クライアントＰＣ１０２による文書管理サーバ１０１データに対する操作の履歴を格納する。例えば、クライアントＰＣ１０２が文書管理サーバ１０１内に文書データを格納した際に、この文書データを特定のクライアントＰＣ１０２が格納したことを示す履歴情報を、履歴管理部３１４は格納することができる。また履歴管理部３１４は、クライアントＰＣ１０２が文書管理サーバ内の文書データを取得した際に、この文書データを特定のクライアントＰＣ１０２が取得したことを示す履歴情報を、格納することができる。
【００３６】
３１５は、ユーザ管理部である。ユーザ管理部３１５は、文書管理サーバ１０１を利用するクライアントＰＣ１０２のユーザの情報を格納する。ユーザ管理部３１５は、文書管理サーバ１０１にアクセスし利用するための認証をユーザが得るためのシステムを構成する。ユーザ管理部３１５には、ユーザに対して一意なユーザＩＤや、メールアドレス、パスワード等の情報を格納することができる。
【００３７】
３１６は、感染文書管理部である。感染文書管理部３１６は、ウィルス感染している文書データを隔離するための一時領域である。ウィルスチェック部３０１によって文書データからウィルスが検出された場合、ウィルスチェック部３０１はこの文書データを感染文書管理部３１６へと移動する。
【００３８】
３１７は、アクセス権管理部である。アクセス権管理部３１７は、文書管理サーバ１０１内のデータに対する、クライアントＰＣ１０２のユーザのアクセス権を管理する。例えばアクセス権管理部３１７は、文書管理サーバ１０１の登録文書管理部３１１内のそれぞれの文書データへと、ユーザがアクセスできるか否かを示す情報を管理する。さらにアクセス権管理部３１７は、バージョン管理部３１２内のそれぞれのバージョンデータへと、ユーザがアクセスできるか否かを示す情報を管理する。
【００３９】
３２１は、表示制御部である。表示制御部３２１は、文書管理システムについての様々な情報を、クライアントＰＣ１０２のＣＲＴ２０８上に表示させる。この情報は、文書管理サーバ１０１の表示情報処理部３０５によって生成される。３２２は、登録指示部である。登録指示部３２２は、クライアントＰＣ１０２上の文書データを文書管理サーバ１０１内の登録文書管理部３１１又はバージョン管理部３１２に登録するために、文書管理サーバ１０１に対して要求を送る。また登録指示部３２２は、クライアントＰＣ１０２上の文書データを文書管理サーバ１０１に対して送信する。
【００４０】
文書管理サーバ１０１内の各処理モジュールは、自動的に起動されてもよい。また文書管理サーバ１０１内の各処理モジュールは、クライアントＰＣ１０２からの指示により必要に応じて起動されてもよい。処理モジュールは、例えば以下のように実現することができる。すなわち、ＲＯＭ２０３、ＦＤＤ２０４、ＨＤＤ２１２等の情報記憶装置から、処理モジュールを実現するブログラムがＲＡＭ２０２へと展開される。ＣＰＵ２０１はプログラムに従って、情報格納装置３１０に格納された情報をＲＡＭ２０２へと展開し、これらの情報を用いて演算を行う。またＣＰＵ２０１は、演算結果を必要に応じてＲＡＭ２０２又は情報格納装置３１０へと書き込む。
【００４１】
図４は、クライアントＰＣ１０２（Ｘ）のユーザが操作する文書管理サーバ１０１上のフォルダ構成を、ツリー構造によって論理的に表す。文書管理サーバ１０１で使用されるフォルダ構成は、一般的にツリー構造によって表されるものが多い。図４においても、説明の簡略化のため、ツリー構造のフォルダ構成が使用されている。しかしながら、ツリー構造のフォルダ構成を用いることは必須ではない。
【００４２】
４０１は、文書管理サーバ１０１に作成されたフォルダを示す。フォルダ４０１（１）、４０２（２）、及び４０１（Ｎ）は、ツリー構造における同じ階層のフォルダである。また４０１（３）は、フォルダ４０１（２）内に作成された子フォルダである。４０２は、文書管理サーバ１０１のフォルダ４０１内に格納された文書を示す。フォルダ４０１（１）内には複数の文書、例えば文書４０２（１）、４０２（２）、及び４０２（Ｎ）を格納することができる。
【００４３】
フォルダ４０１（１）、４０１（２）、・・・、４０１（Ｎ）は、各々同様の構成を有する。本明細書では説明の簡略化のために、複数のフォルダ４０１（１）、４０１（２）、・・・、４０１（Ｎ）の中から特定されたフォルダは、フォルダ４０１（Ｘ）や４０１（Ｙ）等として示される。また、フォルダ４０１（１）、４０１（２）、・・・、４０１（Ｎ）の全体は、単にフォルダ４０１と呼ばれる。文書４０２についても、フォルダ４０１と同様に記述される。
【００４４】
図５は、バージョン管理が行われる場合の、クライアントＰＣ１０２（Ｘ）のユーザが操作する文書管理サーバ１０１上のフォルダ構成を、ツリー構造によって論理的に表す。５０１は、フォルダ４０１内に格納される文書４０２のバージョンを表す。ひとつの文書４０２（Ｘ）に対して、ふたつ以上のバージョン５０１（１）、５０１（２）、・・・、５０１（Ｎ）が作成されている。
【００４５】
通常は、文書４０２（Ｘ）が最初に文書管理サーバ１０１に登録される時に、バージョン５０１（１）が作成される。その後、文書４０２（Ｘ）が更新される際に、バージョン５０１（２）、・・・５０１（Ｎ）が順次作成されていく。それぞれのバージョン５０１はバージョン管理部３１２に格納されてもよい。また、最新のバージョンのみが登録文書管理部３１１に格納され、他のバージョンはバージョン管理部３１２に格納されてもよい。文書が読み出された際にも新しいバージョンが作成されてよい。
【００４６】
図６は、文書管理サーバ１０１内の履歴管理部３１４に格納される履歴情報の一例を示す。履歴情報は、ユーザが文書に対して、いつ、どのような操作をしたかを示す。本実施例においては、ユーザが文書４０２（Ｘ）を操作する度にひとつずつ、履歴情報を示すレコードが作成される。本実施例においては、ユーザが文書４０２を登録した場合、ユーザが文書４０２を削除した場合、及びユーザが文書４０２を取得（ダウンロード）した場合に、レコードが作成される。
【００４７】
例えば、ユーザは文書管理サーバ１０１に文書送信要求を送ることにより、文書管理サーバ１０１から文書を取得することができる。ユーザからの文書送信要求を受けると、例えば履歴参照部３０８は要求された文書（要求ファイル）をユーザに送信し、文書の送信履歴を履歴管理部３１４に保存してもよい（送信手段）。履歴情報としては、文書管理サーバに登録されたファイルと、そのファイルを登録したユーザ（送信元のユーザ）とを示す情報が含まれてもよい（第１の履歴情報）。また履歴情報として、文書管理サーバからダウンロードされたファイルと、そのファイルをダウンロードしたユーザ（送信先のユーザ）とを示す情報が含まれてもよい（第２の履歴情報）。
【００４８】
ただし、記録されるユーザの操作は任意かであり、ユーザが文書４０２をダウンロードしたことを示す履歴が記録されれば十分である。記録形式も図６のものには限られない。また図６においては説明の簡略化のため、文書に対する操作のみが履歴テーブル６００に記録されている。しかしながら、文書に対する操作だけではなく、フォルダに対する操作等の他の操作が記録されてもよい。
【００４９】
６０１には、クライアントＰＣ１０２（Ｘ）のユーザが文書を操作した際に、その操作日時が記録される。６０２には、クライアントＰＣ１０２（Ｘ）のユーザが操作した文書を特定する情報が記録される。例えば、文書管理サーバ１０１における文書４０２のファイル名が格納されてもよい。また、文書管理システムにおいて提供される機能に従って、ユーザが文書４０２に対して任意に設定した文書名が格納されてもよい。
【００５０】
６０３には、文書管理サーバ１０１に登録されている文書を操作したユーザのユーザ名が記録される。ここでユーザ名とは、クライアントＰＣ１０２（Ｘ）を使用しているユーザを特定する、ユーザに対して一意な情報である。ユーザ名とは例えば、メールアドレス、又は文書管理システムを利用するために割り当てられるユーザＩＤ、であってもよい。このユーザ名はユーザ管理部３１５に格納されることができる。上述のように、ユーザ管理部３１５に格納されたユーザ名と、アクセス権管理部３１７に格納されたアクセス権情報とを用いて、文書管理サーバ１０１は文書データに対するアクセス権を制御できる。６０４には、文書データに対するユーザの操作内容が記録される。例えば、文書データのダウンロード、文書データの登録、文書データの削除等の処理が記録される。
【００５１】
図７は、文書管理サーバ１０１内のアクセス権管理部３１７で管理されるアクセス権情報の一例である、アクセス権テーブル７００を示す。アクセス権テーブル７００は、クライアントＰＣ１０２のユーザがフォルダ４０１や文書４０２へアクセスできるかどうかを示す。本実施例においては、文書管理サーバ１０１内の１つのフォルダ４０１又は文書４０２に対する１つのユーザのアクセス権を定義するために、１つのレコードが作成される。
【００５２】
７０１には、アクセス対象が記録される。ユーザに対して文書管理サーバ１０１内のフォルダ４０１又は文書４０２へのアクセスが許可される場合に、そのアクセス対象となるフォルダ４０１又は文書４０２が７０１に記録される。７０２には、アクセス対象７０１に対してアクセスが許可されているユーザのユーザ名が記録される。７０２に記録されるユーザ名は、図６の６０３に記録されるユーザ名と同じものである。すなわち７０２に記録されるユーザ名は、ユーザ管理部３１５に格納されているクライアントＰＣ１０２（Ｘ）のユーザの情報であってもよい。
【００５３】
７０３は、アクセス対象７０１に対してユーザ７０２が有するアクセス権限を示す。アクセス権限としては、任意の種類を用いることができる。一般的には、フォルダ又は文書の読み出しのみが許可される読出権、フォルダ又は文書の変更及び修正が許可される変更権、フォルダ又は文書の削除が許可される削除権等が用いられる。しかしながら文書管理システムに依存して、用いられるアクセス権限の種類は異なる。
【００５４】
図８は、履歴情報が、クライアントＰＣ１０２のＣＲＴ２０８上に表示されている様子を示す。この履歴情報は上述のように、文書又はフォルダに対するユーザの操作履歴を示す。より詳細には、図８には文書４０２（Ｘ）についての履歴情報が表示されている。図８の情報は、履歴テーブル６００から生成することができる。図８の表示を行うために、履歴参照部３０８は履歴テーブル６００を参照する。そして表示情報処理部３０５は、履歴テーブル６００に従って表示情報を作成する。さらに表示制御部３２１は、表示情報処理部３０５が作成した表示情報にしたがってＣＲＴ２０８上に表示を行う。
【００５５】
８０１は、ユーザが対象となる文書４０２（Ｘ）を操作した日時を表している。８０１は、操作日時を示す項目６０１に対応する。８０２は、対象となる文書４０２（Ｘ）を操作したユーザ名を示す。８０２は、ユーザ名を示す項目６０３に対応する。８０３は、対象となる文書４０２（Ｘ）について行われた操作内容を示す。８０３は、操作内容を示す項目６０４に対応する。
【００５６】
図８は、アクセス権情報が、クライアントＰＣ１０２のＣＲＴ２０８上に表示されている様子を示す。このアクセス情報は上述のように、文書又はフォルダに対するユーザのアクセス権を示す。より詳細には、図９には文書４０２（Ｘ）についてのアクセス権情報が表示されている。図９の情報は、アクセス権テーブル７００から生成することができる。図９の表示を行うために、アクセス権設定部３０６はアクセス権テーブル７００を参照する。そして表示情報処理部３０５は、アクセス権テーブル７００に従って表示情報を作成する。さらに表示制御部３２１は、表示情報処理部３０５が作成した表示情報にしたがってＣＲＴ２０８上に表示を行う。
【００５７】
９０１は、表示されているアクセス権が設定されている文書４０２（Ｘ）を示す。９０１は、アクセス対象を示す項目７０１に対応する。９０２は、文書４０２（Ｘ）についてアクセス権が設定されているユーザを示す。９０２は、ユーザ名を示す項目７０２に対応する。９０３は、文書４０２（Ｘ）についてそれぞれのユーザに設定されたアクセス権を示す。９０３は、アクセス権を示す項目７０３に対応する。
【００５８】
次に、本実施例における、登録されている文書データに対して文書管理サーバ１０１がウィルスチェックを行う処理を、図１０のフローチャートを参照して説明する。上述のように文書管理サーバ１０１には、クライアントＰＣ１０２から送信された文書データが登録されている。文書管理サーバ１０１には、クライアントＰＣ１０２の指示に従って外部から取得された文書データが登録されていてもよい。
【００５９】
上述のように文書管理サーバ１０１は、文書データを登録する際に、定義ファイル管理部３１３に格納されたパターンファイルに従ってその文書データがウィルスに感染していないかチェックしてもよい。ただし、このチェックは必須ではない。こうして登録された文書データに対して、文書管理サーバ１０１は以下のようにウィルスチェックを行う。文書管理サーバ１０１内の文書データは、既に何れかのユーザにダウンロードされている（送信処理後である）かもしれない。以下の処理によって、ユーザにダウンロードされている文書データに対しても、ウィルスチェックを行うことができる。
【００６０】
以下で説明するウィルスチェックは、定期的に実行されてもよいし、ユーザの指示に従って実行されてもよい。例えば、タイマ（不図示）から定期的に実行指示が入力され、実行指示に従ってウィルスチェックが行われてもよい。さらには、定義ファイル管理部３１３に格納されたパターンファイルが更新された際に、実行指示が入力され、ウィルスチェックが実行されてもよい。
【００６１】
このパターンファイル更新処理は、ウィルスチェック部３０１が行うことができる。例えばウィルスチェック部３０１は、パターンファイルが供給される外部のサーバに、新しいパターンファイルが存在するか否かを定期的に問い合わせてもよい。新しいパターンファイルが存在する場合、ウィルスチェック部３０１は新しいパターンファイルをダウンロードし、定義ファイル管理部３１３内のパターンファイルを更新することができる。さらには、新しいパターンファイルを入手したユーザが、定義ファイル管理部３１３内のパターンファイルを直接更新することもできる。
【００６２】
ステップＳ１００１〜Ｓ１０１５の処理は、１つの文書データに対するウィルスチェック処理を示す。文書管理サーバ１０１に複数の文書データが格納されている場合、それぞれの文書データについてステップＳ１００１〜Ｓ１０１５の処理が行われる。ステップＳ１００１においてウィルスチェック部３０１は、ウィルスチェックの対象となる文書データを登録文書管理部３１１から取得する。ここでは文書４０２（Ｘ）がウィルスチェックの対象となっているものと仮定する。
【００６３】
ステップＳ１００２においてウィルスチェック部３０１は、Ｓ１００１で取得した文書４０２（Ｘ）に対して、定義ファイル管理部３１３内のウィルス定義ファイルを使用してウィルスチェックを行う。ステップＳ１００３においてウィルスチェック部３０１は、ステップＳ１００２において文書４０２（Ｘ）にウィルスが感染していかか否かを判断する。文書４０２（Ｘ）がウィルスに感染していた場合、処理はステップＳ１００４に進む。文書４０２（Ｘ）がウィルスに感染していなかった場合は、文書４０２（Ｘ）へのウィルスチェック処理は終了し、上述のように次の文書に対するウィルスチェック処理が行われる。
【００６４】
ステップＳ１００４においてウィルスチェック部３０１は、ウィルスに感染している文書４０２（Ｘ）を、登録文書管理部３１１から感染文書管理部３１６へと移動する。こうして、ウィルスに感染している文書４０２（Ｘ）が隔離される。感染文書管理部３１６へと移動された文書４０２（Ｘ）に対するユーザのアクセスは禁止されてもよい。また、一部のユーザ、例えば管理者、にのみ感染文書管理部３１６内の文書データに対するアクセスを許可するように、アクセス権管理部３１７内のアクセス権情報を構成することもできる。
【００６５】
ステップＳ１００５においてウィルス駆除部３０２は、感染文書管理部３１６内の文書４０２（Ｘ）からウィルスを駆除することを試みる。例えばウィルス駆除部３０２は、定義ファイル管理部３１３に格納されたパターンファイルに従って、ウィルスの駆除を行うことができる。ステップＳ１００６においてウィルス駆除部３０２は、ステップＳ１００５において文書４０２（Ｘ）からウィルスを駆除できたか否かを判断する。ウィルスが駆除されている場合、処理はステップＳ１００７に進む。ウィルスが駆除できた場合、処理はステップＳ１０１２に進む。
【００６６】
ステップＳ１００７においてウィルス駆除部３０２は、感染文書管理部３１６内の文書４０２（Ｘ）を、登録文書管理部３１１に移動する。ステップＳ１００８において、ウィルス駆除部３０２は、ウィルスに感染していた文書４０２（Ｘ）をこれまでにダウンロードしているクライアントＰＣ１０２（Ｘ）のユーザ（送信先のユーザ）を検索する。ステップＳ１００９においてウィルス駆除部３０２は、ステップＳ１００８においてこれまでに文書４０２（Ｘ）をダウンロードしたユーザを発見したか否かを判断する。文書４０２（Ｘ）をダウンロードしたユーザがいた場合、処理はＳ１０１０に進む。文書４０２（Ｘ）をダウンロードしたユーザがいなかった場合、処理は終了し、次の文書データについてのウィルスチェックが開始される。
【００６７】
ステップＳ１０１０においてウィルス駆除部３０２は、ウィルスに感染していた文書４０２（Ｘ）をダウンロードしたユーザが、現在も文書４０２（Ｘ）に対してアクセス権を有するか否かを判断する。この判断は、ウィルス駆除部３０２がアクセス権設定部３０６を介してアクセス権管理部３１７内のアクセス権情報をチェックすることによって行われる。ユーザが現在も文書４０２（Ｘ）に対してアクセス権を有する場合は、処理はステップＳ１０１１に課かむ。ユーザの文書４０２（Ｘ）に対するアクセス権がなくなっている場合、処理はステップＳ１０１５に進む。
【００６８】
ステップＳ１０１１においてウィルス駆除部３０２は、ウィルスに感染していた文書４０２（Ｘ）をダウンロードしたユーザに対して通知を行う。ステップＳ１０１１においてウィルス駆除部３０２は、ユーザに対して、ウィルスが駆除された文書４０２（Ｘ）を再びダウンロードするように促す。ウィルス駆除部３０２は、ユーザに対する通知を、通知部３０４を介して行うことができる。通知部３０４が、例えばユーザにメールを送信することにより、この通知が実現される。
【００６９】
この処理によって、過去にウィルスに感染していた文書４０２（Ｘ）をダウンロードしたユーザが、この文書を削除することが可能となる。さらにユーザは、ウィルスが駆除されている文書４０２（Ｘ）を取得することが可能となる。こうして、クライアントＰＣ１０２（Ｘ）からのウィルスの拡散を防ぐことが可能となる。
【００７０】
ウィルス駆除部３０２が文書４０２（Ｘ）に感染しているウィルスを駆除できなかった場合、ステップＳ１０１２においてウィルス駆除部３０２は、感染文書管理部３１６上にある文書４０２（Ｘ）を削除する。ステップＳ１０１３においてウィルス駆除部３０２は、ステップＳ１００８と同様に、文書４０２（Ｘ）をこれまでにダウンロードしているクライアントＰＣ１０２（Ｘ）のユーザを検索する。
【００７１】
ステップＳ１０１４においてウィルス駆除部３０２は、ステップＳ１０１３で文書４０２（Ｘ）をこれまでにダウンロードしているユーザを発見したか否かを判断する。文書４０２（Ｘ）をダウンロードしたユーザがいた場合、処理はＳ１０１５の処理に進む。ダウンロードしたユーザがいなかった場合は、処理は終了し、次の文書データについてのウィルスチェックが開始される。
【００７２】
ステップＳ１０１５においてウィルス駆除部３０２は、ウィルスに感染している文書４０２（Ｘ）をダウンロードしたユーザに対して報知を行う。ステップＳ１０１５においてはウィルス駆除部３０２は、過去にダウンロードした文書４０２（Ｘ）を削除するようにユーザに促す。ステップＳ１０１５の処理は、ステップＳ１０１１と同様に行うことができる。こうして、クライアントＰＣ１０２（Ｘ）からのウィルスの拡散を防ぐことが可能となる。
【００７３】
本実施例においては、１つの文書データに対して、ウィルスチェック部３０１がステップＳ１００１〜Ｓ１００４の処理を行い、続けて同じ文書データに対してウィルス駆除部３０２がステップＳ１００５〜Ｓ１０１５の処理を行った。しかしながら、ウィルスチェック部３０１の処理と、ウィルス駆除部３０２の処理とは、別個に行うことができる。例えば、ウィルスチェック部３０１が登録文書管理部３１１内のそれぞれの文書データについてウィルスチェックを行った後に、ウィルス駆除部３０２が感染文書管理部３１６内のそれぞれの文書データについて駆除処理をおこなってもよい。
【００７４】
本実施例においてはウィルスに感染していた文書４０２（Ｘ）をダウンロードしたユーザに対して報知を行ったが、他のユーザに対して報知を行うこともできる。例えば、ウィルスに感染していた文書４０２（Ｘ）をダウンロードしたユーザの一覧を、システム管理者に通知することもできる。また、ウィルスに感染していた文書４０２（Ｘ）を登録したユーザに対して、文書４０２（Ｘ）がウィルスに感染していたことを通知することもできる。報知の方法はこれらには限られず、様々な方法を用いることができる。さらには、ウィルスに感染していた文書４０２（Ｘ）をダウンロードしたユーザの一覧をログとして記録しておくこともできる。このログを例えばシステム管理者に送信することにより、システム管理者を経由してユーザに対する報知が行われてもよい。
【００７５】
本実施例においてはユーザに対して文書がウィルスに感染していたことを通知するが、これはクライアントＰＣ１０２に対して行われてもよい。例えば、履歴管理部３１４には、文書データをダウンロードしたユーザ名だけではなく、文書データをダウンロードするのに用いられたクライアントＰＣ１０２を特定する情報が記録されてもよい。例えば、クライアントＰＣ１０２のコンピュータ名、又はＩＰアドレスが記録されてもよい。
【００７６】
文書４０２（Ｘ）にウィルスが感染していた場合、ウィルス駆除部３０２は、文書４０２（Ｘ）がダウンロードするのに用いられたクライアントＰＣ１０２に対して通知を送信する。この場合クライアントＰＣ１０２は、このクライアントＰＣ１０２にウィルスが感染した文書４０２（Ｘ）がダウンロードされたという警告を表示することができる。この警告は、現在使用しているユーザが文書４０２（Ｘ）をダウンロードしたか否かに関わらず行うことができる。またこの警告はクライアントＰＣ１０２に対して通知が送信された時に行われてもよい。またこの警告は、クライアントＰＣ１０２に対して通知が送信されてから次にクライアントＰＣ１０２が起動されたときに行われてもよい。
【００７７】
［実施例２］
本実施例においては、文書管理サーバ１０１はバージョン管理をおこなう。以下で、図１１のフローチャートを参照して、文書４０２の１つのバージョンであるバージョン５０１（第１のファイル）が追加された際の、バージョン５０１に対するウィルスチェック処理を説明する。本実施例におけるシステム構成、ハードウェア構成、及びソフトウェア構成は実施例１と同様である。本実施例と実施例１との違いは、文書４０２に対して複数のバージョン５０１を作ることができることである。
【００７８】
ステップＳ１１０１においてユーザは、新しいバージョンの文書４０２を、文書管理サーバ１０１にアップロードする。ここでは図５に示されるように、文書４０２のバージョンとして、バージョン５０１（１）、５０２（２）、及び５０２（Ｎ）が文書管理サーバ１０１に格納されているものとする。ここでユーザがアップロードした新しいバージョンの文書４０２は、バージョン５０１（Ｎ＋１）として取り扱われる。
【００７９】
例えば、ユーザが新しいバージョン５０１（Ｎ＋１）で、文書管理サーバ内のバージョン５０１（Ｎ）を上書きしようとする場合に、バージョン５０１（Ｎ＋１）はバージョン５０１（Ｎ）の新しいバージョンであるものと判定される。バージョン５０１（Ｎ）とバージョン５０１（Ｎ＋１）とが同じファイル名である場合に、ユーザが上書きを行おうとしているものと判断されてもよい。
【００８０】
ステップＳ１１０２においてウィルスチェック部３０１は、バージョン５０１（Ｎ＋１）に対してウィルスチェック（ウィルス検査）を行う。ウィルスチェック部３０１は、定義ファイル管理部３１３に格納されたパターンファイルを使用して、ウィルスチェックを行うことができる。ステップＳ１１０３においてウィルスチェック部３０１は、バージョン５０１（Ｎ＋１）がウィルスに感染しているかどうかを判断する。バージョン５０１（Ｎ＋１）がウィルスに感染していなかった場合、処理はＳ１１０４に進む。バージョン５０１（Ｎ＋１）がウィルスに感染していた場合、処理はＳ１１０５に進む。Ｓ１１０４においてウィルスチェック部３０１は、バージョン５０１（Ｎ＋１）を、文書４０２についての最新バージョンとして、バージョン管理部３１２に格納する。
【００８１】
ステップＳ１１０５においてウィルスチェック部３０１は、ユーザによってアップロードされたバージョン５０１（Ｎ＋１）を感染文書管理部３１６に隔離する。ステップＳ１１０６においてウィルス駆除部３０２は、ステップＳ１００５と同様に、バージョン５０１（Ｎ＋１）に感染しているウィルスの駆除を試みる。
【００８２】
ステップＳ１１０７においてウィルス駆除部３０２は、ステップＳ１００６と同様に、バージョン５０１（Ｎ＋１）からウィルスを駆除できたか否かを判断する。バージョン５０１（Ｎ＋１）からウィルスを駆除できた場合、処理はステップＳ１１０８に進む。バージョン５０１（Ｎ＋１）からウィルスを駆除できなかった場合、処理はステップＳ１１１０に進む。
【００８３】
ステップＳ１１０８においてウィルス駆除部３０２は、ウィルスが駆除されたバージョン５０１（Ｎ＋１）を、文書４０２についての最新バージョンとして、バージョン管理部３１２に格納する。ステップＳ１１０９においてウィルス駆除部３０２は、アップロードされたバージョン５０１（Ｎ＋１）にウィルスが感染していたことをユーザに対して通知する。この通知はバージョン５０１（Ｎ＋１）をアップロードしたユーザに対して送信されてもよいし、システム管理者に対して送信されてもよい。こうしてバージョン５０１（Ｎ＋１）をアップロードしたユーザが、ウィルスに感染しているバージョン５０１（Ｎ＋１）を、ウィルスが削除されたバージョン５０１（Ｎ＋１）で置き換えることができる。したがってクライアントＰＣ１０２（Ｘ）からのウィルスの拡散を防ぐことが可能となる。
【００８４】
ステップＳ１１１０においてウィルス駆除部３０２は、ウィルスを駆除できなかったバージョン５０１（Ｎ＋１）を削除する。ステップＳ１１１１においてウィルス駆除部３０２は、ステップＳ１１０９と同様に、アップロードされたバージョン５０１（Ｎ＋１）にウィルスが感染していたことをユーザに対して通知する。こうしてバージョン５０１（Ｎ＋１）をアップロードしたユーザが、ウィルスに感染しているバージョン５０１（Ｎ＋１）を削除することができる。したがってクライアントＰＣ１０２（Ｘ）からのウィルスの拡散を防ぐことが可能となる。
【００８５】
ステップＳ１１１２〜ステップＳ１１１８では、ステップＳ１１０１以前にすでに文書管理サーバ１０１に格納されている、文書４０２の各バージョンに対するウィルスチェックが行われる。ステップＳ１１１２においてウィルスチェック部３０１は、ステップＳ１１０１以前にすでに文書管理サーバ１０１に格納されている、文書４０２の各バージョンのうち１つを取得する。
【００８６】
この説明においては、ステップＳ１１０１以前にすでにバージョン５０１（１）、５０２（２）、及び５０２（Ｎ）が文書管理サーバ１０１に格納されている。ウィルスチェック部３０１は、例えば文書管理サーバに格納されている文書４０２の各バージョンのうち、新しいものから順に取得していけばよい。ここでは、ウィルスチェック部３０１がバージョン５０１（Ｘ）を取得するものとする。
【００８７】
ステップＳ１１１３においてウィルスチェック部３０１は、ステップＳ１１１２で取得したバージョン５０１（Ｘ）をウィルスチェックする。ステップＳ１１１３におけるウィルスチェックは、ステップＳ１１０２と同様に行うことができる。ステップＳ１１１４においてウィルスチェック部３０１は、ステップＳ１１１３においてウィルスが検出された否かを判断する。ウィルスが検出された場合には処理はステップＳ１１１５に進む。ウィルスが検出されていない場合には処理はステップＳ１１１８に進む。
【００８８】
ステップＳ１１１５においてウィルスチェック部３０１は、ウィルスが感染しているバージョン５０１（Ｘ）を、感染文書管理部３１６へと隔離する。ステップＳ１１１５における処理は、ステップＳ１１０５と同様に行うことができる。ステップＳ１１１６においてウィルス駆除部３０２は、バージョン５０１（Ｘ）からのウィルスの駆除を試みる。ステップＳ１１１６における処理は、ステップＳ１１０６と同様に行うことができる。
【００８９】
ステップＳ１１１７でウィルス駆除部３０２は、ステップＳ１１１６においてバージョン５０１（Ｘ）のウィルスが駆除できたかどうかを判断する。ウィルスが駆除された場合には、処理はＳ１１１９に進む。ウィルスが駆除されなかった場合には、処理はステップＳ１１１８の処理に進む。
【００９０】
ステップＳ１１１８においてウィルス駆除部３０２は、感染文書管理部３１６に隔離されているバージョン５０１（Ｘ）を削除する。ステップＳ１１１９においてウィルス駆除部３０２は、文書４０２の全てのバージョンに対するウィルスチェックが行われたか否かを判断する。まだウィルスチェックが行われていないバージョンがある場合、処理はステップＳ１１１２に戻り、別のバージョンに対するウィルスチェックが行われる。文書４０２の全てのバージョンに対するウィルスチェックが行われている場合、一連の処理は終了する。
【００９１】
ユーザによってアップロードされたバージョン５０１（Ｎ＋１）がウィルスに感染している場合、他のバージョンもウィルスに感染している場合がある。そこで本実施例においては、ウィルスに感染しているバージョン５０１（Ｎ＋１）がアップロードされた場合、他のバージョン５０１（１）、５０１（２）、５０１（Ｎ）に対してもウィルスチェックが行われる。このように、文書４０２の古いバージョンに対してもウィルスチェックをおこなうことができる。したがって、文書管理サーバ１０１内のウィルスに感染したデータを減らすことができる。
【００９２】
本実施例においては、文書４０２の古いバージョンがウィルスに感染していた場合、ウィルスを駆除するか又はバージョンを削除した。しかしながら実施例１と同様に、ウィルスに感染しているバージョンをダウンロードしたユーザを特定し、ユーザに対して通知を行ってもよい。さらには、文書４０２のいくつかのバージョンが削除された場合に、ウィルス駆除部３０２は、文書管理サーバ１０１に格納されている文書４０２の最新のバージョンを、ユーザに対して通知してもよい。
【００９３】
本実施例のようにバージョン管理が行われなくても、同様の処理を行うことができる。すなわち、新しい文書データで古い文書データを上書きする場合（文書データを更新する場合）に新しい文書データにウィルスが発見されたならば、古い文書データに対してウィルスチェックを行えばよい。更新後の文書データがウィルスを含む場合、更新前の文書データもウィルスを含む可能性がある。更新前の文書データに対してウィルスチェックを行うことにより、ウィルスを含んでいる更新前の文書データをダウンロードしたユーザに対して、通知を行うことができる。
【００９４】
また、本実施例においては文書データの新しいバージョンがアップロードされた場合にウィルスチェックを開始した。しかしながら実施例１のように、定期的にウィルスチェックが行われてもよい。また、パターンファイルが更新された時にウィルスチェックが行われてもよい。この場合、例えばウィルスチェック部３０１は、文書データの最新のバージョンのみを最初にウィルスチェックしてもよい。そしてウィルスチェック部３０１は、ウィルスに感染している文書データを発見した場合に、その文書データのより古いバージョンに対してウィルスチェックを行ってもよい。こうして、ウィルスチェックのために必要な時間を削減することができる。
【００９５】
［実施例３］
本実施例においては、クライアントＰＣからアップロードされた文書データからウィルスが検出された場合に、同じクライアントＰＣからアップロードされた文書データに対するウィルスチェックが行われる。以下で、図１２のフローチャートを参照して、文書４０２（Ｘ）がアップロードされた際に、文書管理サーバ１０１が行う処理について説明する。本実施例におけるシステム構成、ハードウェア構成、及びソフトウェア構成は実施例１と同様である。
【００９６】
ステップＳ１２０１においてユーザは、クライアントＰＣ１０２（Ｘ）を用いて、文書４０２（Ｘ）（第１のファイル）を文書管理サーバ１０１にアップロードする。ステップＳ１２０２においてウィルスチェック部３０１は、アップロードされた文書４０２（Ｘ）をウィルスチェック（ウィルス検査）する。ウィルスチェックは、定義ファイル管理部３１３内のパターンファイルを用いて行われる。
【００９７】
ステップＳ１２０３においてウィルスチェック部３０１は、ステップＳ１２０２において文書４０２（Ｘ）からウィルスが検出されたか否かを判断する。ウィルスが検出されなかった場合、ウィルスチェック部３０１は文書４０２（Ｘ）を登録文書管理部３１１に格納する。そして文書４０２（Ｘ）がアップロードされた際の処理は終了する。文書４０２（Ｘ）からウィルスが検出された場合、処理はステップＳ１２０４に進む。
【００９８】
ステップＳ１２０４においてウィルスチェック部３０１は、ウィルス感染している文書４０２（Ｘ）を感染文書管理部３１６に隔離する。ステップＳ１２０５においてウィルス駆除部３０２は、文書４０２（Ｘ）からのウィルスの駆除を試みる。ウィルスの駆除は、例えば定義ファイル管理部３１３に格納されているパターンファイルを用いて行うことができる。ステップＳ１２０６においてウィルス駆除部３０２は、文書４０２（Ｘ）からウィルスが駆除されたか否かを判定する。ウィルスが駆除された場合、処理はステップＳ１２０７に進む。ウィルスが駆除されていない場合、処理はステップＳ１２０８に進む。
【００９９】
ステップＳ１２０７においてウィルス駆除部３０２は、感染文書管理部３１６に格納されている文書４０２（Ｘ）を、登録文書管理部３１１に移動する。ステップＳ１２０８においてウィルス駆除部３０２は、感染文書管理部３１６に格納されている文書４０２（Ｘ）を削除する。ステップＳ１２０７及びＳ１２０８においてウィルス駆除部３０２は、文書４０２（Ｘ）をアップロードしたユーザに対して、文書４０２（Ｘ）にウィルスが感染していたことを通知してもよい。
【０１００】
ステップＳ１２０９においてウィルスチェック部３０１は、クライアントＰＣ１０２（Ｘ）からアップロードされた文書データを、文書管理サーバ１０１から検索する。すなわちウィルスチェック部３０１は、文書管理サーバ１０１に格納されているそれぞれの文書データが、文書４０２（Ｘ）の送信元であるクライアントＰＣ１０２（Ｘ）から送信されているか否かを調査する。以下の処理においてウィルスチェック部３０１及びウィルス駆除部３０２は、クライアントＰＣ１０２（Ｘ）から送信され、何れかのクライアントＰＣ１０２によってダウンロードされている文書データが存在するか否かを調査する。
【０１０１】
例えばウィルスチェック部３０１は、文書データを登録文書管理部３１１から検索する。ウィルスチェック部３０１は、例えば履歴管理部３１４で管理されている履歴テーブル６００のような履歴情報を用いて、文書データを検索することができる。クライアントＰＣ１０２（Ｘ）は、ウィルスに感染していた文書４０２（Ｘ）をアップロードしたクライアントである。
【０１０２】
ステップＳ１２１０においてウィルスチェック部３０１は、クライアントＰＣ１０２（Ｘ）からアップロードされた、文書４０２（Ｘ）以外の文書データが、ステップＳ１２０９において発見されたか否かを判断する。発見された場合、処理はステップＳ１２１１に進む。文書４０２（Ｘ）以外の文書データが文書管理サーバ１０１から発見されなかった場合、文書４０２（Ｘ）がアップロードされた際の処理は終了する。
【０１０３】
ステップＳ１２１１においてウィルスチェック部３０１は、ステップＳ１２０９で発見された文書データのうち１つを、登録文書管理部３１１から取得する。ステップＳ１２１１において取得された文書データは、以下で文書４０２（Ｙ）と呼ばれる。ステップＳ１２１２においてウィルスチェック部３０１は、文書４０２（Ｙ）に対してウィルスチェックを行う。ステップＳ１２１３においてウィルスチェック部３０１は、ステップＳ１２１２においてウィルスが検出された否かを判断する。ウィルスが検出された場合、処理はステップＳ１２１４に進む。ウィルスが検出されなかった場合、処理はステップＳ１２１９に進む。
【０１０４】
ステップＳ１２１４においてウィルスチェック部３０１は、ウィルス感染している文書４０２（Ｙ）を、感染文書管理部３１６に隔離する。ステップＳ１２１５においてウィルス駆除部３０２は、文書４０２（Ｙ）からのウィルスの駆除を試みる。ステップＳ１２１６においてウィルス駆除部３０２は、文書４０２（Ｙ）からウィルスを駆除できたかどうかを判断する。文書４０２（Ｙ）のウィルスを駆除できた場合には処理はＳ１２１７に進む。文書４０２（Ｙ）のウィルスを駆除できなかった場合には処理はＳ１２１８に進む。
【０１０５】
ステップＳ１２１７においてウィルス駆除部３０２は、感染文書管理部３１６から登録文書管理部３１１へと文書４０２（Ｙ）を戻す。ステップＳ１２１８においては、ウィルス駆除部３０２は、感染文書管理部３１６上の文書４０２（Ｙ）を削除する。ステップＳ１２１９においてウィルスチェック部３０１は、文書４０２（Ｘ）がアップロードされてからまだウィルスチェックされていない、クライアントＰＣ１０２（Ｘ）からアップロードされた文書データが残っているかどうかを判断する。もうウィルスチェックされていない文書データが残っていない場合、文書４０２（Ｘ）がアップロードされた際の処理は終了する。まだウィルスチェックされていない文書データが残っている場合、処理はＳ１２１１の処理に戻り、クライアントＰＣ１０２（Ｘ）からアップロードされた他の文書４０２（Ｚ）が取得される。
【０１０６】
クライアントＰＣ１０２（Ｘ）からアップロードされた文書４０２（Ｘ）にウィルスが感染している場合、同じクライアントＰＣ１０２（Ｘ）から過去にアップロードされた文書データにも、ウィルスが感染している可能性が高い。本実施例によればこのような場合、クライアントＰＣ１０２（Ｘ）から過去にアップロードされた文書４０２（Ｙ）、４０２（Ｚ）に対してもウィルスチェックが行われる。こうして本実施例によれば、文書管理サーバ１０１内のウィルス感染したデータを減らすことが可能となる。
【０１０７】
本実施例において、ステップＳ１２１５〜Ｓ１２１８では、ウィルス感染した文書データからウィルスが駆除されるか、又はウィルス感染した文書データが削除された。しかしながら、実施例１と同様に、ウィルス感染した文書データが発見された場合、その文書データをダウンロードしたユーザに対して警告を発することができる。
【０１０８】
［その他の実施形態］
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005555052.tif 000002
【図２】
0005555052.tif 000003
【図３】
0005555052.tif 000004
【図４】
0005555052.tif 000005
【図５】
0005555052.tif 000006
【図６】
0005555052.tif 000007
【図７】
0005555052.tif 000008
【図８】
0005555052.tif 000009
【図９】
0005555052.tif 000010
【図１０】
0005555052.tif 000011
【図１１】
0005555052.tif 000012
【図１２】
0005555052.tif 000013