(57)【要約】【課題】  精度よくパーソナルコンピュータ（ＰＣ）内のファイルの移動やコピーを監視できるようにする。特に、ワードプロセッサ等の文書を編集するためのアプリケーション１を使って文書を配布した場合に、文書ファイルのコピーや移動を正確に監視できるようにする。【解決手段】  アプリケーション監視手段２は、アプリケーション１の動作を外部のプログラムから監視する。アプリケーション状態検出手段４は、表示されているウインドウタイトルの文字列等をアプリケーション１の状態として検出する。文書操作推定手段３は、アプリケーション監視手段２の監視結果を、アプリケーション状態検出手段４を利用して解析することによって、そのアプリケーション１で読み込まれた文書ファイルに対するユーザのファイル操作を推定する。また、文書コピー移動ログ記憶手段５は、文書操作推定手段３が推定したファイル操作の推定結果をログとして記憶する。【選択図】  図１
2006092149.tif 000002
【特許請求の範囲】
【請求項１】
文書ファイルのコピー及び移動を監視する文書ファイルコピー移動監視システムであって、
文書ファイルを読み込み編集するためのアプリケーションソフトウェアが搭載され、
ユーザ操作に伴う前記アプリケーションソフトウェアの動作を監視するアプリケーション監視手段と、
前記アプリケーションソフトウェアの状態を検出するアプリケーション状態検出手段と、
前記アプリケーション監視手段の監視結果を、前記アプリケーション状態検出手段の検出機能を利用して解析することによって、前記アプリケーションソフトウェアで読み込まれた文書ファイルに対して、ファイルのコピー又は移動のための操作であるファイル操作が行われたか否かを推定する文書操作推定手段とを
備えたことを特徴とする文書ファイルコピー移動監視システム。
【請求項２】
文書操作推定手段のファイル操作の推定結果を、ログデータとして記憶する文書コピー移動ログ記憶手段を備えた請求項１記載の文書ファイルコピー移動監視システム。
【請求項３】
アプリケーション監視手段は、
ユーザの操作に伴うイベントであるユーザ操作イベントを検出する操作イベント検出手段と、
ファイルシステムへのアクセスに伴うイベントであるファイルアクセスイベントを検出するファイルアクセスイベント検出手段とを含み、
文書操作推定手段は、前記操作イベント検出手段のイベント検出結果と前記ファイルアクセスイベント検出手段のイベント検出結果とにもとづいて、ユーザの操作とファイルシステムの動作との整合性があるか否かを判断する
請求項１又は請求項２記載の文書ファイルコピー移動監視システム。
【請求項４】
文書操作推定手段は、
アプリケーション監視手段の監視結果の解析処理全体を制御する全体処理制御手段と、
ファイルアクセスイベント検出手段が検出結果として出力するファイル情報と、操作イベント検出手段が検出結果として出力するファイル情報とを照合する照合手段と、
アプリケーションソフトウェアで読み込まれたファイルと、前記アプリケーションソフトウェアの状態の変化とを対応づけた対応情報を生成する対応情報生成手段と、
前記対応情報生成手段が生成した対応情報を記憶する対応情報記憶手段と、
前記アプリケーションソフトウェアで読み込まれた複数ファイルの中から、アクティブ状態となっている文書ファイルを検出するアクティブ文書検出手段と、
前記アクティブ文書検出手段の検出結果を記憶するアクティブ文書記憶手段と、
ファイルへの書き込みが行われた場合に、アプリケーション監視手段が監視結果として出力したイベントと前記照合手段の照合結果とにもとづいて、どのファイルの内容がどのファイルに書き込まれたかを推定するファイル書込推定手段とを含む
請求項３記載の文書ファイルコピー移動監視システム。
【請求項５】
操作イベント検出手段は、アプリケーションソフトウェアの種類に応じて割り与えられる識別子であるウインドウクラスと、ユーザ操作に伴う一連の操作の流れを示す操作シーケンスと、ダイアログボックスを用いたユーザ操作によって入力されたデータを示すファイルダイアログパラメータの情報とを監視する請求項３記載の文書ファイルコピー移動監視システム。
【請求項６】
ファイルアクセスイベント検出手段は、ファイルにアクセスしたアプリケーションソフトウェアの実行ファイル名と、ファイルアクセスの目的がデータの読み込みであるかデータの書き出しであるかを示すファイルアクセスモードと、処理対象のファイルのフルパス名とを監視する請求項３記載の文書ファイルコピー移動監視システム。
【請求項７】
照合手段は、
ウインドウクラスと実行ファイルとを対応づけた対応テーブルを予め有し、
前記対応テーブルにもとづいて、ユーザ操作イベントとファイルアクセスイベントとの整合性があるか否かを判断する
請求項４記載の文書ファイルコピー移動監視システム。
【請求項８】
照合手段は、
ユーザ操作に伴う一連の操作の流れを示す操作シーケンスと、ファイルアクセスの目的がデータの読み込みであるかデータの書き出しであるかを示すファイルアクセスモードとを対応づけた対応テーブルを予め有し、
前記対応テーブルにもとづいて、ファイルアクセスイベント検出手段が検出したファイルアクセスイベントの集合に含まれるイベントを絞り込む
請求項４に記載の文書ファイルコピー移動監視システム。
【請求項９】
アプリケーション状態検出手段は、アプリケーションソフトウェアのウインドウタイトルの値を監視し、
対応情報生成手段は、前記アプリケーション状態検出手段の監視結果にもとづいて、アプリケーションソフトウェアの状態として前記ウインドウタイトルの値を含む対応情報を生成し、
対応情報記憶手段は、対応情報として、ウインドウタイトルの値とファイルのフルパス名とを対応づけて記憶する
請求項４記載の文書ファイルコピー移動監視システム。
【請求項１０】
ファイル書込推定手段は、アプリケーションソフトウェアの種類に応じて割り与えられる識別子であるウインドウクラスと、ユーザ操作に伴うファイル操作前の元ファイルのフルパス名と、ファイル操作後のファイルのフルパス名とを含むログデータを生成する
請求項４記載の文書ファイルコピー移動監視システム。
【請求項１１】
文書ファイルのコピー及び移動を監視する文書ファイルコピー移動監視方法であって、
アプリケーションソフトウェアが、文書ファイルを読み込み編集するアプリケーション利用ステップと、
ユーザ操作に伴う前記アプリケーションソフトウェアの動作を監視するアプリケーション監視ステップと、
前記アプリケーションソフトウェアの状態を検出するアプリケーション状態検出ステップと、
前記アプリケーション監視ステップの監視結果を、前記アプリケーション状態検出ステップで行う検出処理を利用して解析することによって、前記アプリケーションソフトウェアで読み込まれた文書ファイルに対して、ファイルのコピー又は移動のための操作であるファイル操作が行われたか否かを推定する文書操作推定ステップと、
文書操作推定ステップのファイル操作の推定結果を、ログデータとして記憶する文書コピー移動ログ記憶ステップとを
含むことを特徴とする文書ファイルコピー移動監視方法。
【請求項１２】
アプリケーション監視ステップとして、
ユーザの操作に伴うイベントであるユーザ操作イベントを検出する操作イベント検出ステップと、
ファイルシステムへのアクセスに伴うイベントであるファイルアクセスイベントを検出するファイルアクセスイベント検出ステップとを含み、
文書操作推定ステップで、前記操作イベント検出ステップのイベント検出結果と前記ファイルアクセスイベント検出ステップのイベント検出結果とにもとづいて、ユーザの操作とファイルシステムの動作との整合性があるか否かを判断する
請求項１１記載の文書ファイルコピー移動監視方法。
【請求項１３】
文書操作推定ステップとして、
アプリケーション監視ステップの監視結果の解析処理全体を制御する全体処理制御ステップと、
ファイルアクセスイベント検出ステップで検出結果として出力するファイル情報と、操作イベント検出ステップで検出結果として出力するファイル情報とを照合する照合ステップと、
アプリケーションソフトウェアで読み込まれたファイルと、前記アプリケーションソフトウェアの状態の変化とを対応づけた対応情報を生成する対応情報生成ステップと、
前記対応情報生成ステップで生成した対応情報を記憶する対応情報記憶ステップと、
前記アプリケーションソフトウェアで読み込まれた複数ファイルの中から、アクティブ状態となっている文書ファイルを検出するアクティブ文書検出ステップと、
前記アクティブ文書検出ステップの検出結果を記憶するアクティブ文書記憶ステップと、
ファイルへの書き込みが行われた場合に、アプリケーション監視ステップで監視結果として出力したイベントと前記照合ステップの照合結果とにもとづいて、どのファイルの内容がどのファイルに書き込まれたかを推定するファイル書込推定ステップとを含む
請求項１２記載の文書ファイルコピー移動監視方法。
【請求項１４】
文書ファイルのコピー及び移動を監視するための文書ファイルコピー移動監視プログラムであって、
文書ファイルを読み込み編集するためのアプリケーションソフトウェアが搭載されたコンピュータに、
ユーザ操作に伴う前記アプリケーションソフトウェアの動作を監視するアプリケーション監視処理と、
前記アプリケーションソフトウェアの状態を検出するアプリケーション状態検出処理と、
前記アプリケーション監視処理の監視結果を、前記アプリケーション状態検出処理を利用して解析することによって、前記アプリケーションソフトウェアで読み込まれた文書ファイルに対して、ファイルのコピー又は移動のための操作であるファイル操作が行われたか否かを推定する文書操作推定処理と、
文書操作推定処理のファイル操作の推定結果を、ログデータとして記憶装置に記憶させる文書コピー移動ログ記憶処理とを
実行させる文書ファイルコピー移動監視プログラム。
【請求項１５】
コンピュータに、
アプリケーション監視処理として、
ユーザの操作に伴うイベントであるユーザ操作イベントを検出する操作イベント検出処理と、
ファイルシステムへのアクセスに伴うイベントであるファイルアクセスイベントを検出するファイルアクセスイベント検出処理とを実行させ、
文書操作推定処理で、前記操作イベント検出処理のイベント検出結果と前記ファイルアクセスイベント検出処理のイベント検出結果とにもとづいて、ユーザの操作とファイルシステムの動作との整合性があるか否かを判断する処理を実行させる
請求項１４記載の文書ファイルコピー移動監視プログラム。
【請求項１６】
コンピュータに、
文書操作推定処理として、
アプリケーション監視処理の監視結果の解析処理全体を制御する全体処理制御処理と、
ファイルアクセスイベント検出処理で検出結果として出力するファイル情報と、操作イベント検出処理で検出結果として出力するファイル情報とを照合する照合処理と、
アプリケーションソフトウェアで読み込まれたファイルと、前記アプリケーションソフトウェアの状態の変化とを対応づけた対応情報を生成する対応情報生成処理と、
前記対応情報生成処理で生成した対応情報を記憶装置に記憶させる対応情報記憶処理と、
前記アプリケーションソフトウェアで読み込まれた複数ファイルの中から、アクティブ状態となっている文書ファイルを検出するアクティブ文書検出処理と、
前記アクティブ文書検出処理の検出結果を記憶装置に記憶させるアクティブ文書記憶処理と、
ファイルへの書き込みが行われた場合に、アプリケーション監視処理で監視結果として出力したイベントと前記照合処理の照合結果とにもとづいて、どのファイルの内容がどのファイルに書き込まれたかを推定するファイル書込推定処理とを実行させる
請求項１５記載の文書ファイルコピー移動監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書ファイルコピー移動監視システム、文書ファイルコピー移動監視方法及び文書ファイルコピー移動監視プログラムに関する。特に、ワードプロセッサ等の文書を編集するためのアプリケーションソフトウェアを使って、文書を配布した場合に、文書ファイルのコピーや移動を正確に監視することができる文書ファイルコピー移動監視システム、文書ファイルコピー移動監視方法及び文書ファイルコピー移動監視プログラムに関する。
【背景技術】
【０００２】
ファイルの移動やコピーが発生するのは、Ｗｉｎｄｏｗｓ（登録商標）のエクスプローラを用いる等のように直接ファイル操作をする場合（以下、ファイラ操作という）と、ワードプロセッサで「名前をつけて保存」するように間接的にファイルを移動又はコピーする場合（以下、アプリファイル操作という）とがある。従って、ファイルの移動やコピーを監視するためには、このファイラ操作とアプリファイル操作との両方を監視する必要がある。
【０００３】
ファイラ操作の場合、ファイルをコピーするコマンドやファイルを移動するコマンドがコンピュータ内部で発行されるので、これらのコマンドをフックすれば、フックしたコマンドの引数から、どのファイルの内容がどのファイルにコピー又は移動されたかを容易に監視することができる。なお、「フック」とは、あるソフトウェア内で発生しているイベントや、オペレーティングシステム（ＯＳ）への呼び出しを、別のプログラムが横取りする仕組みであり、Ｗｉｎｄｏｗｓ等の代表的なソフトウェアでは標準の機能である。
【０００４】
一方、アプリファイル操作の場合、直接コピーコマンドが発行されているわけではないので、ファイルのコピーや移動を監視することは難しい。そこで、例えば、特許文献１には、ファイルの移動やコピーの遷移を監視するのではなく、禁止されている場所にコピーされたことを検出する方式が開示されている。
【０００５】
図２５は、特許文献１に記載された情報漏洩検出防止装置の構成を示すブロック図である。図２５に示すように、特許文献１に記載されたシステムは、ファイルの存在範囲３６を指定するファイル属性設定手段３１と、ファイルの存在位置を検出するファイル位置検出手段３２と、ファイル属性設定手段３１にて設定された存在範囲３６とファイル位置検出手段３２で検出されたファイルの存在位置３６とを比較してファイルが存在範囲内にあるか否かを判断するファイル位置比較手段３３と、ファイル位置比較手段３３の出力に応じてプログラムを実行させるプログラム実行手段３４とを備える。
【０００６】
上記のような構成を有する従来のシステムは、次のように動作する。（１）ユーザは、予めファイル属性設定手段３１を使って、処理対象のファイルを置いておくことが可能な範囲を設定しておく。（２）一方、ファイル位置検出手段３２は、ファイルの位置を順次検出する。（３）そして、ファイル位置比較手段３３は、ファイル位置検出手段３２が検出したファイルの位置が秘密区分に合った正しい位置に置かれている否かをチェックする。以上のように、情報漏洩検出防止装置１００が動作することにより、ファイルが不正な場所にコピーされたことを検出することができる。
【０００７】
【特許文献１】特開２００３−３６２０８号公報（段落００２３−００３１、図１−２）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載された従来のシステムでは、ファイル自体に存在範囲を属性として埋め込むことが前提となる。そして、ファイルの位置と埋め込まれた存在範囲の属性とを比較することで、不正を検出することが可能となる。しかし、一般にパーソナルコンピュータ（ＰＣ）等の情報処理端末で用いられるファイルには、、様々なファイル形式のファイルが存在するので、それら全てのファイルに対して存在範囲情報を埋め込むことはできない。従って、市販のワードプロセッサ等、様々なアプリケーションソフトウェアのファイルフォーマットに対応できないという問題がある。
【０００９】
上記の問題点を解決するために、以下の２つの方法を用いることが考えられる。（方法１）ファイルとその存在範囲情報とをペアとして、外部のファイルに記憶しておく。この方法は、ファイルに対してＩＤを割り当て、この割り当てたＩＤと存在範囲情報とをペアとして、外部ファイルに記憶する方法である。最も単純な方法として、ファイルＩＤとしてファイル名を用いることが考えられる。
【００１０】
しかし、ファイル名を用いると、一般にユーザが簡単にファイル名を変えることができるので、うまく動作しない。そこで、ファイルＩＤとしてハッシュを利用する方法が考えられる。「ハッシュ」とは、各ファイルの指紋のようなものであり、ファイルのデータをハッシュ関数を用いて計算して求めた値のことである。ハッシュ関数の性質上、同じハッシュ値をもつファイルは同じファイルであると考えることができ、ファイルのＩＤとして利用することができる。この場合、ハッシュ値と存在範囲情報とをペアとして、外部のファイルに記憶しておくことになる。
【００１１】
しかし、ハッシュを用いる方法の場合、ユーザがファイルの中身を編集してしまうとハッシュ値が変わってしまうので、ファイルのコピーや移動をうまく管理できなくなる。すなわち、ハッシュを用いる方法は、編集されることがない完成したファイルに対しては有効な手法であるが、編集される可能性があるドラフト状態のファイルや、配布先で編集される可能性があるファイルに対しては有効な方法ではない。
【００１２】
（方法２）ファイルをカプセル化する。この方法は、ファイル全体を、存在範囲情報をヘッダに含んだカプセルで被う方法である。アプリケーションソフトウェアで利用する前にこのカプセルを取り除き（デコードし）、アプリケーションソフトウェアの利用終了の際に再びカプセルで被う（エンコードする）ことで、全てのファイル形式に対応することができる。
【００１３】
しかし、このファイルをカプセル化する方法では、ファイルを利用する前後にユーザがカプセルのデコード／エンコード操作をする必要があり、操作が煩雑である。また、カプセルのデコード操作については、デコードしない限りアプリケーションソフトウェアでファイルを利用できないのでユーザの操作忘れが発生する恐れはないが、カプセルのエンコード操作については、ユーザが操作し忘れる可能性が高い。そのため、ユーザがエンコード操作をし忘れた場合には、うまく監視できないことになる。
【００１４】
そこで、本発明は、市販のワードプロセッサ等、様々なアプリケーションソフトウェアのファイルフォーマットに対応して、ファイルのコピーや移動を監視できる文書ファイルコピー移動監視システム、文書ファイルコピー移動監視方法及び文書ファイルコピー移動監視プログラムを提供することを目的とする。特に、ユーザによってファイル名を変えられた場合や、アプリケーションソフトウェアでファイルの内容が編集された場合であっても、ファイルの位置の変化を正確に監視できる文書ファイルコピー移動監視システム、文書ファイルコピー移動監視方法及び文書ファイルコピー移動監視プログラムを提供することを目的とする。また、ユーザに対して従来と全く変わらない操作性のままで、ファイルのコピーや移動を監視できる文書ファイルコピー移動監視システム、文書ファイルコピー移動監視方法及び文書ファイルコピー移動監視プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明による文書ファイルコピー移動監視システムは、文書ファイルのコピー及び移動を監視する文書ファイルコピー移動監視システムであって、文書ファイルを読み込み編集するためのアプリケーションソフトウェア（例えば、ワードプロセッサ）が搭載され、ユーザ操作に伴うアプリケーションソフトウェアの動作を監視するアプリケーション監視手段と、アプリケーションソフトウェアの状態を検出するアプリケーション状態検出手段と、アプリケーション監視手段の監視結果を、アプリケーション状態検出手段の検出機能を利用して解析することによって、アプリケーションソフトウェアで読み込まれた文書ファイルに対して、ファイルのコピー又は移動のための操作であるファイル操作が行われたか否かを推定する文書操作推定手段とを備えたことを特徴とする。
【００１６】
上記のような構成によって、ユーザがアプリケーションソフトウェアを通常と変わらない方法で利用し、コンピュータ上に常駐しているアプリケーション監視手段は、アプリケーションソフトウェアへのユーザ操作を監視し、この監視結果を随時文書操作推定手段に通知する。文書操作推定手段は、このアプリケーション監視手段からの通知を受けて、ユーザがどんなファイルを読み込み、それらのファイルをどう切り替え、どのようにファイル操作をしたか（すなわち、読み込まれたファイルがどこからどこにコピー又は移動されたか）を推定する。そして、文書操作推定手段は、この推定結果を文書コピー移動ログ記憶手段に記憶させるように動作する。
【００１７】
上記のような構成を採用し動作させることによって、本発明の目的を達成することができる。すなわち、特にワードプロセッサ等の文書を編集するためのアプリケーションソフトウェアを用いて、文書を配布した場合に、文書ファイルのコピーや移動を正確に監視することができる。
【００１８】
なお、「アプリケーションソフトウェアの動作を監視する」とは、例えば、「名前をつけて保存」コマンドをユーザ操作に従って実行した場合等、ユーザ操作に伴うコンピュータの動作を監視することをいう。例えば、アプリケーション監視手段は、アプリケーションソフトウェアに通知されるイベントをフックすることによって、アプリケーションソフトウェアの動作を監視することができる。また、「アプリケーションソフトウェアの状態を検出する」とは、例えば、アプリケーションソフトウェアが現在どのような処理を実行している状態であるかを検出することをいう。例えば、アプリケーション状態検出手段は、ウインドウ中に表示されているウインドウタイトルの文字列を検出することによって、アプリケーションソフトウェアの状態を検出する。
【００１９】
また、文書ファイルコピー移動監視システムは、文書操作推定手段のファイル操作の推定結果を、ログデータとして記憶する文書コピー移動ログ記憶手段を備えたものであってもよい。
【００２０】
また、アプリケーション監視手段は、ユーザの操作（例えば、ユーザのＧＵＩ動作）に伴うイベントであるユーザ操作イベントを検出する操作イベント検出手段と、ファイルシステムへのアクセスに伴うイベントであるファイルアクセスイベントを検出するファイルアクセスイベント検出手段（例えば、Ｉ／Ｏイベント検出手段２０２によって実現される）とを含み、文書操作推定手段は、操作イベント検出手段のイベント検出結果とファイルアクセスイベント検出手段のイベント検出結果とにもとづいて、ユーザの操作とファイルシステムの動作との整合性があるか否かを判断するものであってもよい。そのような構成によれば、ユーザの操作とシステム内部のファイルシステムの動作との整合性をチェックすることによって、より精度の高いファイルのコピーや移動の監視をすることができる。従って、ファイルアクセスのエラー等が発生した場合であっても、ファイルのコピーや移動を正確に監視することができる。
【００２１】
また、文書操作推定手段は、アプリケーション監視手段の監視結果の解析処理全体を制御する全体処理制御手段（例えば、イベント処理全体制御手段３０１によって実現される）と、ファイルアクセスイベント検出手段が検出結果として出力するファイル情報と、操作イベント検出手段が検出結果として出力するファイル情報とを照合する照合手段（例えば、状況解析手段３０４によって実現される）と、アプリケーションソフトウェアで読み込まれたファイルと、アプリケーションソフトウェアの状態の変化とを対応づけた対応情報を生成する対応情報生成手段（例えば、編集文書管理手段３０５によって実現される））と、対応情報生成手段が生成した対応情報を記憶する対応情報記憶手段（例えば、編集文書記憶手段３０６によって実現される）と、アプリケーションソフトウェアで読み込まれた複数ファイルの中から、アクティブ状態となっている文書ファイル（例えば、現在フォーカスがあたっているアクティブドキュメント）を検出するアクティブ文書検出手段（例えば、アクティブ文書判定手段３０２によって実現される）と、アクティブ文書検出手段の検出結果を記憶するアクティブ文書記憶手段と、ファイルへの書き込みが行われた場合に、アプリケーション監視手段が監視結果として出力したイベントと照合手段の照合結果とにもとづいて、どのファイルの内容がどのファイルに書き込まれたかを推定するファイル書込推定手段（例えば、文書コピー移動ログ生成手段３０７によって実現される）とを含むものであってもよい。
【００２２】
上記ような構成によって、１つのアプリケーションソフトウェアで複数のファイルを読み込み、これら複数ファイルをユーザが自由に切り替え編集作業を行った場合であっても、より精度の高いファイルのコピーや移動の監視をすることができる。従って、アプリケーションソフトウェアで一度に複数のファイルを開いた場合であっても、ファイルのコピーや移動を正確に監視することができる。
【００２３】
また、操作イベント検出手段は、アプリケーションソフトウェアの種類に応じて割り与えられる識別子であるウインドウクラスと、ユーザ操作に伴う一連の操作の流れを示す操作シーケンスと、ダイアログボックスを用いたユーザ操作によって入力されたデータを示すファイルダイアログパラメータの情報とを監視するものであってもよい。
【００２４】
また、ファイルアクセスイベント検出手段は、ファイルにアクセスしたアプリケーションソフトウェアの実行ファイル名と、ファイルアクセスの目的がデータの読み込みであるかデータの書き出しであるかを示すファイルアクセスモードと、処理対象のファイルのフルパス名とを監視するものであってもよい。
【００２５】
また、照合手段は、ウインドウクラスと実行ファイルとを対応づけた対応テーブルを予め有し、対応テーブルにもとづいて、ユーザ操作イベントとファイルアクセスイベントとの整合性があるか否かを判断するものであってもよい。
【００２６】
また、照合手段は、ユーザ操作に伴う一連の操作の流れを示す操作シーケンスと、ファイルアクセスの目的がデータの読み込みであるかデータの書き出しであるかを示すファイルアクセスモードとを対応づけた対応テーブルを予め有し、対応テーブルにもとづいて、ファイルアクセスイベント検出手段が検出したファイルアクセスイベントの集合に含まれるイベントを絞り込むものであってもよい。
【００２７】
また、アプリケーション状態検出手段は、アプリケーションソフトウェアのウインドウタイトルの値を監視し、対応情報生成手段は、アプリケーション状態検出手段の監視結果にもとづいて、アプリケーションソフトウェアの状態としてウインドウタイトルの値を含む対応情報を生成し、対応情報記憶手段は、対応情報として、ウインドウタイトルの値とファイルのフルパス名とを対応づけて記憶するものであってもよい。
【００２８】
また、ファイル書込推定手段は、アプリケーションソフトウェアの種類に応じて割り与えられる識別子であるウインドウクラスと、ユーザ操作に伴うファイル操作前の元ファイルのフルパス名と、ファイル操作後のファイルのフルパス名とを含むログデータを生成するものであってもよい。
【００２９】
本発明による文書ファイルコピー移動監視方法は、文書ファイルのコピー及び移動を監視する文書ファイルコピー移動監視方法であって、アプリケーションソフトウェアが、文書ファイルを読み込み編集するアプリケーション利用ステップと、ユーザ操作に伴うアプリケーションソフトウェアの動作を監視するアプリケーション監視ステップと、アプリケーションソフトウェアの状態を検出するアプリケーション状態検出ステップと、アプリケーション監視ステップの監視結果を、アプリケーション状態検出ステップで行う検出処理を利用して解析することによって、アプリケーションソフトウェアで読み込まれた文書ファイルに対して、ファイルのコピー又は移動のための操作であるファイル操作が行われたか否かを推定する文書操作推定ステップと、文書操作推定ステップのファイル操作の推定結果を、ログデータとして記憶する文書コピー移動ログ記憶ステップとを含むことを特徴とする。
【００３０】
また、文書ファイルコピー移動監視方法は、アプリケーション監視ステップとして、ユーザの操作に伴うイベントであるユーザ操作イベントを検出する操作イベント検出ステップと、ファイルシステムへのアクセスに伴うイベントであるファイルアクセスイベントを検出するファイルアクセスイベント検出ステップとを含み、文書操作推定ステップで、操作イベント検出ステップのイベント検出結果とファイルアクセスイベント検出ステップのイベント検出結果とにもとづいて、ユーザの操作とファイルシステムの動作との整合性があるか否かを判断するものであってもよい。そのような構成によれば、ユーザの操作とシステム内部のファイルシステムの動作との整合性をチェックすることによって、より精度の高いファイルのコピーや移動の監視をすることができる。従って、ファイルアクセスのエラー等が発生した場合であっても、ファイルのコピーや移動を正確に監視することができる。
【００３１】
また、文書ファイルコピー移動監視方法は、文書操作推定ステップとして、アプリケーション監視ステップの監視結果の解析処理全体を制御する全体処理制御ステップと、ファイルアクセスイベント検出ステップで検出結果として出力するファイル情報と、操作イベント検出ステップで検出結果として出力するファイル情報とを照合する照合ステップと、アプリケーションソフトウェアで読み込まれたファイルと、アプリケーションソフトウェアの状態の変化とを対応づけた対応情報を生成する対応情報生成ステップと、対応情報生成ステップで生成した対応情報を記憶する対応情報記憶ステップと、アプリケーションソフトウェアで読み込まれた複数ファイルの中から、アクティブ状態となっている文書ファイルを検出するアクティブ文書検出ステップと、アクティブ文書検出ステップの検出結果を記憶するアクティブ文書記憶ステップと、ファイルへの書き込みが行われた場合に、アプリケーション監視ステップで監視結果として出力したイベントと照合ステップの照合結果とにもとづいて、どのファイルの内容がどのファイルに書き込まれたかを推定するファイル書込推定ステップとを含むものであってもよい。そのような構成によれば、１つのアプリケーションソフトウェアで複数のファイルを読み込み、これら複数ファイルをユーザが自由に切り替え編集作業を行った場合であっても、より精度の高いファイルのコピーや移動の監視をすることができる。従って、アプリケーションソフトウェアで一度に複数のファイルを開いた場合であっても、ファイルのコピーや移動を正確に監視することができる。
【００３２】
本発明による文書ファイルコピー移動監視プログラムは、文書ファイルのコピー及び移動を監視するための文書ファイルコピー移動監視プログラムであって、文書ファイルを読み込み編集するためのアプリケーションソフトウェアが搭載されたコンピュータに、ユーザ操作に伴うアプリケーションソフトウェアの動作を監視するアプリケーション監視処理と、アプリケーションソフトウェアの状態を検出するアプリケーション状態検出処理と、アプリケーション監視処理の監視結果を、アプリケーション状態検出処理を利用して解析することによって、アプリケーションソフトウェアで読み込まれた文書ファイルに対して、ファイルのコピー又は移動のための操作であるファイル操作が行われたか否かを推定する文書操作推定処理と、文書操作推定処理のファイル操作の推定結果を、ログデータとして記憶装置に記憶させる文書コピー移動ログ記憶処理とを実行させることを特徴とする。
【００３３】
また、文書ファイルコピー移動監視プログラムは、コンピュータに、アプリケーション監視処理として、ユーザの操作に伴うイベントであるユーザ操作イベントを検出する操作イベント検出処理と、ファイルシステムへのアクセスに伴うイベントであるファイルアクセスイベントを検出するファイルアクセスイベント検出処理とを実行させ、文書操作推定処理で、操作イベント検出処理のイベント検出結果とファイルアクセスイベント検出処理のイベント検出結果とにもとづいて、ユーザの操作とファイルシステムの動作との整合性があるか否かを判断する処理を実行させるものであってもよい。そのような構成によれば、ユーザの操作とシステム内部のファイルシステムの動作との整合性をチェックすることによって、より精度の高いファイルのコピーや移動の監視をすることができる。従って、ファイルアクセスのエラー等が発生した場合であっても、ファイルのコピーや移動を正確に監視することができる。
【００３４】
また、文書ファイルコピー移動監視プログラムは、コンピュータに、文書操作推定処理として、アプリケーション監視処理の監視結果の解析処理全体を制御する全体処理制御処理と、ファイルアクセスイベント検出処理で検出結果として出力するファイル情報と、操作イベント検出処理で検出結果として出力するファイル情報とを照合する照合処理と、アプリケーションソフトウェアで読み込まれたファイルと、アプリケーションソフトウェアの状態の変化とを対応づけた対応情報を生成する対応情報生成処理と、対応情報生成処理で生成した対応情報を記憶装置に記憶させる対応情報記憶処理と、アプリケーションソフトウェアで読み込まれた複数ファイルの中から、アクティブ状態となっている文書ファイルを検出するアクティブ文書検出処理と、アクティブ文書検出処理の検出結果を記憶装置に記憶させるアクティブ文書記憶処理と、ファイルへの書き込みが行われた場合に、アプリケーション監視処理で監視結果として出力したイベントと照合処理の照合結果とにもとづいて、どのファイルの内容がどのファイルに書き込まれたかを推定するファイル書込推定処理とを実行させるものであってもよい。そのような構成によれば、１つのアプリケーションソフトウェアで複数のファイルを読み込み、これら複数ファイルをユーザが自由に切り替え編集作業を行った場合であっても、より精度の高いファイルのコピーや移動の監視をすることができる。従って、アプリケーションソフトウェアで一度に複数のファイルを開いた場合であっても、ファイルのコピーや移動を正確に監視することができる。
【発明の効果】
【００３５】
本発明によれば、アプリケーションソフトウェアの状態を検出し、アプリケーションソフトウェアの動作の監視結果を解析することによって、ファイルのコピーや移動のファイル操作が行われたか否かを推定できる。従って、市販のワードプロセッサ等、様々なアプリケーションソフトウェアのファイルフォーマットに対応して、ファイルのコピーや移動を監視することができる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の実施の形態を図面を参照して説明する。図１は、本発明による文書ファイルコピー移動監視システムの構成の一例を示すブロック図である。図１に示すように、文書ファイルコピー移動監視システムは、アプリケーションソフトウェア１と、アプリケーション監視手段２と、文書操作推定手段３と、アプリケーション状態検出手段４と、文書コピー移動ログ記憶手段５とを含む。
【００３７】
アプリケーションソフトウェア（以下、単にアプリケーションともいう）１は、ワードプロセッサ等のファイルを読み込み編集するための一般ソフトウェアである。
【００３８】
アプリケーション監視手段２は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理端末のＣＰＵによって実現される。アプリケーション監視手段２は、例えば「名前をつけて保存」コマンドがユーザ操作に従って実行された場合等、ユーザ操作に伴うアプリケーション１の動作を外部のプログラムから監視する機能を備える。アプリケーション状態検出手段４は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理端末のＣＰＵによって実現される。アプリケーション状態検出手段４は、ウインドウに表示されているウインドウタイトルの文字列等にもとづいて、アプリケーション１の状態を検出する機能を備える。
【００３９】
文書操作推定手段３は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理端末のＣＰＵ及び記憶装置によって実現される。文書操作推定手段３は、アプリケーション監視手段２の監視結果を、アプリケーション状態検出手段４の検出機能を利用して解析することによって、そのアプリケーション１で読み込まれた文書ファイルに対してユーザのファイル操作が行われたか否かを推定する機能を備える。なお、「ファイル操作」とは、ファイルのコピー又は移動のための操作のことである。
【００４０】
文書コピー移動ログ記憶手段５は、具体的には、パーソナルコンピュータ等の情報処理端末の記憶装置によって実現される。文書コピー移動ログ記憶手段５は、文書操作推定手段３が推定したファイル操作の推定結果をログとして記憶する。
【００４１】
本実施の形態では、アプリケーション１をユーザが通常と変わらない方法で利用する。すると、コンピュータ上に常駐しているアプリケーション監視手段２は、アプリケーション１へのユーザ操作を監視し、この監視結果を随時文書操作推定手段３に通知する。監視結果の通知情報を受けると、文書操作推定手段３は、ユーザがどんなファイルを読み込み、それら読み込んだファイルをどのように切り替え、どうファイル操作をしたかを推定する。すなわち、文書操作推定手段３は、読み込んだファイルがどこからどこへコピー又は移動されたかを推定する。そして、文書操作推定手段３は、この推定結果を文書コピー移動ログ記憶手段５に記憶させるよう動作する。
【００４２】
図１に示す文書ファイルコピー移動監視システムの各構成要素の機能を説明する。アプリケーション１は、ユーザが利用する一般ソフトウェアである。アプリケーション１は、ファイルを読み込み編集して保存するという機能を有していれば、他に特殊な機能を有するソフトウェアでなくてもよい。本実施の形態では、アプリケーション１として、マイクロソフト株式会社のＷｉｎｄｏｗｓ用Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄを用いる場合を例に説明する。ただし、これは説明のための一例であり、アプリケーション１として他のソフトウェアを用いてもよい。
【００４３】
なお、本実施の形態では、「アプリケーション１が保存する」等の表現を用いるが、実際には、情報処理端末のＣＰＵがアプリケーション１に従って処理を実行する。このことは、他のソフトウェアやソフトウェアによって実現される手段についても同様である。
【００４４】
アプリケーション監視手段２は、ユーザのＧＵＩ操作を監視する操作イベント検出手段２０１と、ファイルシステムへのアクセスを監視するＩ／Ｏイベント検出手段２０２とを含む。操作イベント検出手段２０１は、アプリケーション１で発生している操作イベントを横取りする機能を備える。
【００４５】
操作イベントの横取りについて説明する。通常ユーザがアプリケーション１上で操作すると、オペレーティングシステム（以下、ＯＳともいう）は、アプリケーション１に操作イベントを通知する。例えば、ユーザによってメニューが選択されると、ＯＳは、メニュー操作イベントをアプリケーション１に通知する。アプリケーション１は、イベントが通知されると、この通知されたイベントを処理するルーチンへジャンプすることで、イベントドリブンプログラムを用いてユーザが選択した機能を起動することができる。
【００４６】
本実施の形態では、操作イベント検出手段２０１は、アプリケーション１で発生しているイベントを横取りする。すなわち、本実施の形態では、ＯＳは、本来アプリケーション１に通知すべきイベントをそのアプリケーション１に通知するのではなく、操作イベント検出手段２０１に一旦通知する。操作イベント検出手段２０１は、この通知されたイベントを処理した後、アプリケーション１にイベントを転送することで、アプリケーション１を正常に動作させることができる。
【００４７】
なお、本実施の形態において、「イベントを横取りする」とは、イベントを一旦操作イベント検出手段２０１に転送し、操作イベント検出手段２０１が処理した後にアプリケーション１に転送することをいう。この方式は、一般的に「メッセージフック」と呼ばれ、Ｗｉｎｄｏｗｓ等のＯＳではＡＰＩとして一般に提供されている。
【００４８】
なお、全てのＡＰＩ呼び出しをフックする必要はない。本実施の形態では、操作イベント検出手段２０１は、「文書ファイル読み込み」、「文書切り替え」及び「文書ファイル書き込み」に関する操作だけをフックすればよく、これら３つ以外のメッセージを無視する。本実施の形態では、操作イベント検出手段２０１は、このメッセージフックを利用して実現される。以下、操作イベント検出手段２０１がメッセージフックするイベントを「ユーザ操作イベント」という。すなわち、本実施の形態では、操作イベント検出手段２０１は、メッセージフックすることによって、ユーザ操作に伴うイベントであるユーザ操作イベントを検出する。
【００４９】
図２は、ユーザ操作イベントの一例を示す説明図である。図２に示すように、ユーザ操作イベントは、ウインドウクラスＴ０２０１０１と、操作シーケンスＴ０２０１０２と、ファイルダイアログパラメータＴ０２０１０３とを含む。
【００５０】
ウインドウクラス（Ｔ０２０１０１）は、アプリケーション１の種類に応じて割り与えられる識別子である。本実施の形態では、ウインドウクラス（Ｔ０２０１０１）は、ユーザが操作したウインドウのクラス名である。クラス名とは、アプリケーション１がウインドウ生成時につける固有の名前である。従って、ウインドウクラス（Ｔ０２０１０１）は、アプリケーション１毎に決定される。例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄの場合、ウインドウクラス（Ｔ０２０１０１）は「ＯｐｕｓＡｐｐ」となり、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌの場合、ウインドウクラス（Ｔ０２０１０１）は「ＸＬＭＡＩＮ」となる。
【００５１】
操作シーケンス（Ｔ０２０１０２）は、ユーザの操作に伴う一連の操作の流れを示す情報である。例えば、ユーザ操作イベントは、操作シーケンス（Ｔ０２０１０２）として、「メニュー→ファイル→開く」等を含む。ただし、本実施の形態では、分かりやすくするためにメニューのラベル名で表記する場合を説明するが、実際にＷｉｎｄｏｗｓを用いる場合には、各メニューに「ｂｏｄｓ＿ｓｄｍ＿Ｍｓｏ９６」等のコード名が割り当てられている。この場合、ユーザ操作イベントは、操作シーケンス（Ｔ０２０１０２）としてコード名を含む。
【００５２】
ファイルダイアログパラメータ（Ｔ０２０１０３）は、ダイアログボックスを用いたユーザ操作によって入力されたデータであり、ダイアログボックス等でユーザが入力又は選択したパラメータである。例えば、ダイアログボックスでファイルを選択した場合には、ファイルダイアログパラメータ（Ｔ０２０１０３）によってファイル名等の情報が通知される。例えば、ファイルダイアログパラメータ（Ｔ０２０１０３）によって「（ファイル名＝ＡＡＡ）；（文字コード＝ＥＵＣ）」といったパラメータの集合が通知される。なお、本実施の形態では、図２に示すように、各パラメータを「；」で接続して表現し、各パラメータを（「キー」＝「値」）の形式で表現している。
【００５３】
Ｉ／Ｏイベント検出手段２０２は、アプリケーション１で発生しているファイルアクセスイベントを横取りする機能を備える。すなわち、Ｉ／Ｏイベント検出手段２０２は、ファイルシステムへのアクセスに伴うイベントであるファイルアクセスイベントを検出する。Ｉ／Ｏイベント検出手段２０２は、「ＡＰＩフック」と呼ばれるＷｉｎｄｏｗｓ等のＯＳに標準に備わっている機能で実装することができる。「ＡＰＩフック」とは、前述したメッセージフックと似た機能であり、アプリケーション１がＯＳのＡＰＩの呼び出し命令を横取りする機能である。
【００５４】
Ｉ／Ｏイベント検出手段２０２は、ファイルオープン／クローズＡＰＩ、ファイル読み込み／書き込みＡＰＩをフックすることで、どのアプリケーション１がどのファイルにアクセスしたかの通知を受けることができる。以下、どのアプリケーション１がどのファイルへアクセスしたかの通知情報を「ファイルアクセスイベント集合」という。
【００５５】
図３は、ファイルアクセスイベント集合の一例を示す説明図である。図３に示すように、ファイルアクセスイベント集合は、実行ファイル名Ｔ０２０２０１と、ファイルアクセスモードＴ０２０２０２と、ファイルフルパス名Ｔ０２０２０３とを含む。
【００５６】
実行ファイル名（Ｔ０２０２０１）は、アプリケーション１の実行ファイル名である。例えば、ファイルアクセスイベント集合は、実行ファイル名Ｔ０２０２０１として「ＷＯＲＤ．ＥＸＥ」等を含む。
【００５７】
ファイルアクセスモード（Ｔ０２０２０２）は、読み込みモード又は書き込みモードのうちのいずれのアクセスモードであるかを示す情報である。すなわち、ファイルアクセスモード（Ｔ０２０２０２）は、ファイルアクセスの目的がデータの読み込みであるか、データの書き出しであるかを示す。通常、ファイルシステムにアクセスされる場合、読み込みモードでアクセスする場合と書き込みモードでアクセスする場合とがある。本実施の形態では、ファイルアクセスモード（Ｔ０２０２０２）によって、どちらのモードでアクセスしているかが通知される。なお、本実施の形態では、図３に示すように、読み込みモードを「ＲＥＡＤ」と表記し、書き込みモードを「ＷＲＩＴＥ」と表記する場合の例を示す。
【００５８】
ファイルフルパス名（Ｔ０２０２０３）は、アクセスしている処理対象のファイルのフルパス名である。例えば、ファイルアクセスイベント集合は、ファイルフルパス名（Ｔ０２０２０３）として「Ｃ：￥Ｄｏｃ￥ＡＡＡ．ＤＯＣ」等を含む。
【００５９】
文書操作推定手段３は、操作イベント検出手段２０１のイベント検出結果とＩ／Ｏイベント検出手段２０２のイベント検出結果とにもとづいて、ユーザ操作とファイルシステムの動作との整合性があるか否かを判断する。文書操作推定手段３は、イベント処理全体制御手段３０１と、アクティブ文書判定手段３０２と、アクティブ文書記憶手段３０３と、状況解析手段３０４と、編集文書管理手段３０５と、編集文書記憶手段３０６と、文書コピー移動ログ生成手段３０７とを含む。
【００６０】
イベント処理全体制御手段３０１は、文書操作推定手段３が行うアプリケーション監視手段２の監視結果の解析処理全体を制御する機能を備える。状況解析手段３０４は、Ｉ／Ｏイベント検出手段２０２からのファイルパス名と、操作イベント検出手段２０１からのファイル名との関係をマッチング（照合）する機能を備える。すなわち、状況解析手段３０４は、Ｉ／Ｏイベント検出手段２０２が検出結果として出力するファイル情報と、操作イベント検出手段２０１が検出結果として出力するファイル情報とを照合する。
【００６１】
編集文書管理手段３０５は、アプリケーション１で読み込まれたファイルと、ファイルを読み込んだことによるアプリケーション１の状態の変化（例えば、ウインドウタイトルの文字列の変化）とを対応づける機能を備える。本実施の形態では、編集文書管理手段３０５は、アプリケーション１で読み込まれたファイルと、アプリケーション１の状態の変化とを対応づけた対応情報を生成する。そして、編集文書管理手段３０５は、生成した対応情報を編集文書記憶手段３０６に記憶させる。
【００６２】
編集文書記憶手段３０６は、編集文書管理手段３０５が生成したファイルとアプリケーション１の状態との対応関係を記憶する。本実施の形態では、編集文書記憶手段３０６は、編集文書管理手段３０５が生成した対応情報を記憶する。
【００６３】
アクティブ文書判定手段３０２は、読み込んだ複数ファイルの中から現在フォーカスがあたっている文書（操作対象となっているアクティブドキュメント）を検出する機能を備える。すなわち、アクティブ文書判定手段３０２は、アプリケーション１で読み込まれた複数ファイルの中から、アクティブ状態となっている文書ファイルを検出する。なお、本実施の形態では、ファイル等が操作対象となっていることをフォーカスがあたっているとも表現する。アクティブ文書記憶手段３０３は、アクティブ文書判定手段３０２の検出結果を記憶する。
【００６４】
文書コピー移動ログ生成手段３０７は、ファイルが書き込まれた場合に、アプリケーション監視手段２から通知（出力）されるイベントと状況解析手段３０４の照合結果とにもとづいて、どのファイルの内容がどのファイルに書き込まれたかを推定する機能を備える。また、文書コピー移動ログ生成手段３０７は、どのファイルに書き込まれたかの推定結果をログとして生成する機能を備える。
【００６５】
イベント処理全体制御手段３０１は、文書操作推定手段３全体を制御する。イベント処理全体制御手段３０１の制御対象となる処理は、以下に示す「文書読み込み処理」、「文書切り替え処理」及び「文書書き込み処理」の３種類の処理に大きく分類される。
【００６６】
「文書読み込み処理」は、ユーザ操作に従って、アプリケーション１で文書ファイルを読み込む際の処理である。「文書切り替え処理」は、ユーザ操作に従ってアプリケーション１で複数の文書を読み込んでおり、それら複数文書を切り替える際の処理である。「文書書き込み処理」は、ユーザ操作に従って、アプリケーション１で文書ファイルを書き込む際の処理である。
【００６７】
また、イベント処理全体制御手段３０１は、操作イベント検出手段２０１からのイベントの種類にもとづいて処理をディスパッチする。本実施の形態では、イベント処理全体制御手段３０１は、例えば、処理をディスパッチするための知識テーブルを予め記憶する。イベント処理全体制御手段３０１は、イベントの種類が「文書読み込み処理」の場合、知識テーブルにもとづいて、編集文書管理手段３０５に処理を実行させる。また、イベント処理全体制御手段３０１は、イベントの種類が「文書切り替え処理」の場合、アクティブ文書判定手段３０２に処理を実行させる。また、イベント処理全体制御手段３０１は、イベントの種類が「文書書き込み処理」の場合、文書コピー移動ログ生成手段３０７に処理を実行させる。
【００６８】
図４は、処理をディスパッチするための知識テーブルの一例を示す説明図である。図４に示すように、知識テーブルは、操作シーケンスＴ０３０１０１と操作種類Ｔ０３０１０２とを含む。操作シーケンス（Ｔ０３０１０１）は、ユーザ操作イベントの操作シーケンスフィールドの値と同様に、ユーザの操作に伴う一連の操作の流れを示す情報である。操作種類（Ｔ０３０１０２）は、「文書読み込み処理」、「文書切り替え処理」又は「文書書き込み処理」のいずれかの値を示す情報である。
【００６９】
図４に示す例では、例えば、知識テーブルの１行目は、「メニュー→ファイル→開く」という操作シーケンスのイベントが発生すると、イベントの種類が「文書読み込み処理」であることを意味する。この場合、イベント処理全体制御手段３０１は、編集文書管理手段０３０５に処理をディスパッチする。なお、処理をディスパッチする動作については、後述する動作の説明においてフローチャートを用いて説明する。
【００７０】
編集文書管理手段３０５は、ユーザ操作に従ってアプリケーション１でファイルが読み込まれた際にイベント処理全体制御手段３０１から呼び出される。例えば、ユーザがＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄのメニューから「開く」を選択して文書を読み込む操作をした場合に、イベント処理全体制御手段３０１は、「開く」が選択されたというユーザ操作イベントと、文書読み込みのファイルアクセスイベントとを編集文書管理手段３０５に通知する。
【００７１】
ユーザ操作イベントとファイルアクセスイベントとの通知を受けると、編集文書管理手段３０５は、以下に示す３つの処理を行う。（１）編集文書管理手段３０５は、各アプリケーション１毎に開いているファイルの一覧を作成する。（２）また、編集文書管理手段３０５は、開いているファイルをアクティブにした際のアプリケーション１の状態変化を検出する。なお、編集文書管理手段３０５は、アプリケーション１の状態変化として、ウインドウタイトル等アクティブな文書を切り替える際に変化があるＧＵＩ部品の変化を検出すればよい。本実施の形態では、編集文書管理手段３０５は、ウインドウタイトルの文字列の変化を検出する場合を説明する。
【００７２】
（３）また、編集文書管理手段３０５は、処理（１）で作成した一覧や処理（２）で検出したアプリケーション１の状態変化等の処理結果を記憶させる。なお、編集文書管理手段３０５は処理（１）から処理（３）までの機能を実現するための制御部であり、具体的には、処理（１）は、編集文書管理手段３０５の指示に従って状況解析手段３０４によって実行される。また、処理（２）は、編集文書管理手段３０５の指示に従ってアプリケーション状態検出手段４によって実行される。また、処理（３）は、編集文書管理手段３０５によって、編集文書記憶手段３０６に処理結果が記憶される。また、編集文書管理手段３０５が行う詳細な処理の流れについては、後述する動作の説明において説明する。
【００７３】
状況解析手段３０４は、Ｉ／Ｏイベント検出手段２０２からのファイルパス名と、操作イベント検出手段２０１からのファイル名とをマッチング（照合）して整合性をとる。
【００７４】
通常ユーザがファイル操作を行うと、アプリケーション１は、操作対象ファイル以外の多くのファイルにアクセスする。例えば、図３は、ユーザがアプリケーション１「Ｍｉｃｏｒｏｓｏｆｔ  Ｗｏｒｄ」の「ＷＯＲＤ．ＥＸＥ」で、「ＡＡＡ．ＤＯＣ」というファイルを開く操作をした場合を示している。図３に示す例では、一行目は、アプリケーション１が標準のテンプレートファイル「Ｎｏｒｍａｌ．ｄｏｔ」を読み込んでいることを示している。また、二行目は、別のアプリケーション「Ｈｉｄｅｍａｒｕ．ｅｘｅ」が書き込みをしていることを示している。また、三行目は、ユーザによって指定されたファイルを「ＷＯＲＤ．ＥＸＥ」のメモリに読み込んでいることを示している。また、四行目は、アプリケーション１が、読み込んだファイルのバックアップをテンポラリファイルに書き出していることを示している。また、五行目は、テンポラリファイルを「ＷＯＲＤ．ＥＸＥ」のメモリに読み込んでいることを示している。
【００７５】
図３に示すように、状況解析手段３０４は、一般にＩ／Ｏイベント検出手段２０２から複数の情報を通知される。
【００７６】
一方、操作イベント検出手段２０１からの通知については、ファイルのフルパス名が通知されるとは限らない。例えば、図２に示す例では、ファイル読み込みダイアログを用いてファイルを開いた場合、読み込みファイル名が操作イベント検出手段２０１から状況解析手段３０４に通知されるが、そのファイルのパス名は通知されない。図２で示す例のように、操作イベント検出手段２０１から状況解析手段３０４に通知される情報は、ファイルに関する情報が不完全である場合がある。
【００７７】
以上説明したように、操作イベント検出手段２０１から通知される情報は不完全である場合があるので、状況解析手段３０４は、Ｉ／Ｏイベント検出手段２０２からのファイルパス名と、操作イベント検出手段２０１からのファイル名との整合性をとる必要がある。この整合性をとる動作は、所定の選択基準に従って、ユーザ操作イベントと最も関連のあるイベントを、ファイルアクセスイベント集合の中から選択することによって実現される。
【００７８】
本実施の形態では、状況解析手段３０４は、整合性をとるための選択基準として、以下に示す３つの基準（基準１〜基準３）を用いる。基準１は、同じアプリケーション１であることという基準である。すなわち、状況解析手段３０４は、ユーザ操作イベントのウインドウクラスとファイルアクセスイベントの実行ファイル名とをマッチングさせ、アプリケーション１が同じであるか否かを判断する。そして、同じであると判断すると、状況解析手段３０４は、基準１を満たすと判断する。
【００７９】
例えば、状況解析手段３０４は、ウインドウクラスと実行ファイルとを対応づけた対応テーブル（対応表）を予め記憶し、対応テーブルにもとづいてアプリケーション１が同じであるか否かを判断する。すなわち、状況解析手段３０４は、対応テーブルにもとづいて、ユーザ操作イベントとファイルアクセスイベントとの整合性があるか否かを判断する。
【００８０】
図５は、予め記憶する対応テーブルの一例を示す説明図である。図５に示す例では、ウインドウクラス「ＯｐｕｓＡｐｐ」のアプリケーションと、実行ファイル「ＷＯＲＤ．ＥＸＥ」のアプリケーションとは、同じアプリケーション１であることを示している。
【００８１】
基準２は、ユーザの操作に対応したファイルアクセスのモードであることという基準である。一般に、ユーザ操作の種類毎に、ファイルへのアクセスのモードが決定される。例えば、「読み込み」操作はＲＥＡＤモードであり、「名前をつけて保存」操作はＷＲＩＴＥモードである。
【００８２】
例えば、状況解析手段３０４は、ユーザの操作とファイルアクセスモードとを対応づけた対応テーブル（対応表）を予め記憶している。そして、状況解析手段３０４は、対応テーブルにもとづいて、ユーザ操作に対応したファイルアクセスのモードであるか否かを判断し、基準２を満たすか否かを判断する。そして、状況解析手段３０４は、対応テーブルにもとづいて、Ｉ／Ｏイベント検出手段２０２が検出したファイルアクセスイベント集合に含まれるイベントを絞り込む。状況解析手段３０４は、例えば、図６に示すように、ユーザ操作の操作シーケンスとファイルアクセスモードとを対応づけた対応テーブルを記憶している。
【００８３】
基準３は、ファイル名が似ていることという基準である。状況解析手段３０４は、ファイルアクセスイベントのファイルフルパス名の中のファイル名の文字列と、ユーザ操作イベントのパラメータのファイル名の値とをマッチングさせて評価し、基準３を満たすか否かを判断する。この場合、状況解析手段３０４は、以下の３種類の基準（基準３−１〜基準３−３）で判断し、評価結果を求める。
【００８４】
基準３−１は、ファイル名及び拡張子が全く同じであるという基準である。状況解析手段３０４は、基準３−１を満たす場合、最も似ていると判断する。基準３−２は、ファイル名が同じであるが、拡張子がなく拡張子のマッチング不可能であるという基準である。状況解析手段３０４は、基準３−２を満たす場合、基準３−１の次に似ていると判断する。基準３−３は、ファイル名及び拡張子が異なるという基準である。状況解析手段３０４は、基準３−３に該当する場合、ファイル名が異なると判断する。なお、状況解析手段３０４がこれらの基準１〜基準３や基準３−１〜基準３−３を利用して行う処理の流れについては、後述する動作の説明において説明する。
【００８５】
編集文書記憶手段３０６は、編集文書管理手段３０５の処理結果を記憶する。図７は、編集文書記憶手段３０６が記憶する情報のフィールドの一例を示す説明図である。図７に示すように、編集文書記憶手段３０６は、ウインドウクラスＴ０３０６０１と、ファイルフルパス名Ｔ０３０６０２と、アクティブアプリケーション状態Ｔ０３０６０３とを対応づけて記憶する。
【００８６】
ウインドウクラス（Ｔ０３０６０１）は、前述したユーザ操作イベントのウインドウクラス（Ｔ０２０１０１）と同様に、アプリケーション毎に割り振られた名前である。ファイルフルパス名（Ｔ０３０６０２）は、読み込んだファイルのフルパス名である。本実施の形態では、ファイルフルパス名（Ｔ０３０６０２）は、文書の状態が現在フォーカスがあたっている「アクティブ文書」であるか、読み込んでいるがフォーカスがあたっていない「バックグランド文書」であるかのいずれかの値である。アクティブアプリケーション状態（Ｔ０３０６０３）は、この読み込んだ文書がアクティブに切り替わった際のあるＧＵＩ部品の値である。例えば、アクティブアプリケーション状態（Ｔ０３０６０３）は、ウインドウタイトル等である。
【００８７】
編集文書管理手段３０５が編集文書記憶手段３０６に処理結果を記憶させる手順について説明する。図８は、編集文書管理手段３０５の処理結果の記憶方法の処理手順の一例を示す流れ図である。編集文書管理手段３０５は、ファイルとアプリケーション１の状態変化との対応付けの処理を行うと、編集文書記憶手段３０６にレコードを１つ追加させる（ステップＳ３０６０１）。編集文書管理手段３０５は、状況解析手段３０４の処理結果にもとづいて、ウインドウクラス（Ｔ０３０６０１）及びファイルフルパス名（Ｔ０３０６０２）を、ステップＳ３０６０１で追加したレコードにセット（格納）する（ステップＳ３０６０２）。
【００８８】
編集文書管理手段３０５は、アプリケーション状態検出手段４に現在のウインドウタイトルを問い合わせる。そして、編集文書管理手段３０５は、アプリケーション状態検出手段４からのウインドウタイトルの値（文字列）を、追加したレコードのアクティブアプリケーション状態（Ｔ０３０６０３）にセット（格納）する（ステップＳ３０６０３）。通常文書を読み込んだ際には読み込んだ文書にフォーカスがあてられるので、編集文書管理手段３０５は、文書の状態をアクティブ文書記憶手段３０３にセット（格納）する（ステップＳ３０６０４）。なお、編集文書管理手段３０５は、アクティブ文書判定手段３０２にウインドウハンドル及びファイルフルパス名を通知することで、アクティブ文書判定手段３０２を介して文書の状態をセットする。この文書状態のセットの処理については後述する。
【００８９】
アクティブ文書判定手段３０２は、ユーザによって文書の切り替え操作が行われる際に、イベント処理全体制御手段３０１から呼び出される。この呼び出しの際に、イベント処理全体制御手段３０１は、ユーザ操作によって文書を切り替えられたアプリケーション１のウインドウクラスをアクティブ文書判定手段３０２に通知する。すると、アクティブ文書判定手段３０２は、以下に示す３ステップの処理を実行し、アクティブ文書を判定する。
【００９０】
図９は、アクティブ文書判定手段３０２がアクティブ文書を判定する処理手順の一例を示す流れ図である。アクティブ文書判定手段３０２は、イベント処理全体制御手段３０１からのウインドウクラスをキーとして、アプリケーション１の状態の変化をアプリケーション状態検出手段４に問い合わせる。そして、イベント処理全体制御手段３０１は、アプリケーション状態検出手段４からウインドウタイトルを受け取る（ステップＳ３０２０１）。
【００９１】
アクティブ文書判定手段３０２は、ウインドウタイトルの値をキーとして、編集文書記憶手段３０６のアクティブアプリケーション状態フィールド（Ｔ０３０６０３）を検索する（ステップＳ３０２０２）。なお、ユーザが文書をアクティブに切り替える操作をした場合、その切り替え対象の文書は既にアプリケーション１に読み込まれているはずであり、編集文書記憶手段３０６に既に登録されているはずである。従って、ステップＳ３０２０２において、アクティブ文書判定手段３０２は、編集文書記憶手段３０６を検索すると、条件に合致するレコードを必ず１つ見つけて抽出する。
【００９２】
アクティブ文書判定手段３０２は、検索の結果抽出したレコードのファイルフルパス名（Ｔ０３０６０２）を、アクティブ文書としてアクティブ文書記憶手段３０３に一時記憶させる（ステップＳ３０２０３）。以下、アクティブ文書判定手段３０２は、アクティブ文書のアクティブ文書記憶手段３０３への登録処理を実行する。
【００９３】
図１０は、アクティブ文書記憶手段３０３が所定のスキーマに従って記憶する情報の一例を示す説明図である。図１０に示すように、アクティブ文書記憶手段３０３は、ウインドウクラスＴ０３０３０１とファイルフルパス名Ｔ０３０３０２とを対応づけて記憶する。ウインドウクラス（Ｔ０３０３０１）は、イベント処理全体制御手段３０１から通知されたウインドウクラスである。ここでは、ウインドウクラス（Ｔ０３０３０１）は、文書の切り替えを行ったアプリケーション１の種類を表すことになる。ファイルフルパス名（Ｔ０３０３０２）は、編集文書記憶手段３０６の検索の結果抽出したレコードのファイルフルパス名である。
【００９４】
アクティブ文書判定手段３０２は、以下の４ステップの処理を実行し、アクティブ文書をアクティブ文書記憶手段３０３に記憶させる。図１１は、アクティブ文書のアクティブ文書記憶手段３０３への登録処理の一例を示す流れ図である。
【００９５】
アクティブ文書判定手段３０２は、イベント処理全体制御手段３０１から通知されたウインドウクラスの値をキーとして、編集文書記憶手段３０６のウインドウクラスフィールド（Ｔ０３０３０１）を検索する（ステップＳ３０３０１）。そして、アクティブ文書判定手段３０２は、合致するウインドウクラスがあるか否かを判断する（ステップＳ３０３０２）。合致するウインドウクラスが見つかった場合には、アクティブ文書判定手段３０２は、ステップＳ３０３０３に進み処理を実行する。合致するウインドウクラスが見つからなかった場合には、アクティブ文書判定手段３０２は、ステップＳ３０３０４に進み処理を実行する。
【００９６】
合致するウインドウクラスがあると判断すると、アクティブ文書判定手段３０２は、このウインドウクラスが合致したレコードのファイルフルパス名の値を更新する（ステップＳ３０３０３）。合致するウインドウクラスがないと判断すると、アクティブ文書判定手段３０２は、新たにレコードを追加し、追加したレコードにウインドウクラス及びファイルフルパス名をセット（格納）する（ステップＳ３０３０４）。
【００９７】
文書コピー移動ログ生成手段３０７は、ユーザが「文書書き込み処理」の操作を行った際に、イベント処理全体制御手段３０１から呼び出される。この呼び出しの際、イベント処理全体制御手段３０１は、ユーザ操作イベントとファイルアクセスイベント集合とを、文書コピー移動ログ生成手段３０７に通知する。このイベント処理全体制御手段３０１からの通知を受けて、文書コピー移動ログ生成手段３０７は、文書のコピー移動ログを生成する。この場合、文書コピー移動ログ生成手段３０７は、ウインドウクラス、コピー元ファイルフルパス名及びコピー先ファイルフルパス名の項目を含むログを生成する。
【００９８】
なお、コピー移動ログに含まれるウインドウクラスは、コピーしたアプリケーション１を示すことになる。また、コピー元ファイルフルパス名は、アプリケーション１で読み込んだファイル名を示す。また、コピー先ファイルフルパス名は、文書書き込み操作によるファイル書き込み先のファイル名を示す。
【００９９】
文書コピー移動ログ生成手段３０７は、以下に示す方法で、生成したコピー移動ログの値を文書コピー移動ログ記憶手段５に登録する。まず、文書コピー移動ログ生成手段３０７は、ウインドウクラスについて、ユーザ操作イベントのウインドウクラスの値をログとして設定する。
【０１００】
コピー元ファイルフルパス名は、このユーザ操作を伴ったアプリケーション１のアクティブドキュメントのコピー元ファイルのパス名である。文書コピー移動ログ生成手段３０７は、ウインドウハンドルをキーとしてアクティブ文書記憶手段３０３を検索することによって、ファイルフルパス名を得る。そして、文書コピー移動ログ生成手段３０７は、検索して得たファイルフルパス名をコピー元ファイルパス名として設定する。
【０１０１】
コピー先ファイルフルパス名は、この操作に伴うイベントで対象となっているファイルのコピー先ファイルのパス名である。文書コピー移動ログ生成手段３０７は、ユーザ操作イベント及びファイルアクセスイベント集合を状況解析手段３０６に転送してファイルフルパス名を特定し、この特定した値をコピー先ファイルフルパス名とする。
【０１０２】
アプリケーション状態検出手段４は、アクティブ文書を切り替えると、その切り替えに応じて変化するＧＵＩ部品を検出する。例えば、Ｗｉｎｄｏｗｓに限らず、殆どのウインドウシステムでは、ウインドウで読み込んでいる文書に応じてタイトルバーのテキスト（ウインドウタイトル）が変化する。このウインドウタイトルの値は、ＯＳ標準のＡＰＩを用いて取得することができる。この場合、例えば、アプリケーション状態検出手段４は、ウインドウクラスをパラメータとしてウインドウタイトルを取得し、取得したウインドウタイトルをアプリケーション状態として扱えばよい。
【０１０３】
なお、本実施の形態で示すアプリケーション状態の取得方式は一例であり、例えばウインドウの下のステータスバーの値をアプリケーション状態として用いる等、他の取得方法を用いてもよい。
【０１０４】
文書コピー移動ログ記憶手段５は、コピー移動ログを記憶するデータベースである。図１２は、文書コピー移動ログ記憶手段５が所定のスキーマに従って記憶する情報の一例を示す説明図である。図１２に示すように、文書コピー移動ログ記憶手段５は、ウインドウクラスＴ０５０１と、コピー元ファイルフルパス名Ｔ０５０２と、コピー先ファイルフルパス名Ｔ０５０３とを対応づけて記憶する。ウインドウクラス（Ｔ０５０１）は、ユーザがコピー操作したアプリケーション１のウインドウクラスである。コピー元ファイルフルパス名（Ｔ０５０２）は、アプリケーション１で読み込んだファイルのファイル名である。コピー先ファイルフルパス名（Ｔ０５０３）は、文書書き込み操作によるファイル書き込み先のファイル名である。
【０１０５】
なお、本実施の形態において、文書ファイルコピー移動監視システムの記憶装置（図示せず）は、文書ファイルのコピー及び移動を監視する処理を実行させるための各種プログラムを記憶している。例えば、文書ファイルコピー移動監視システムの記憶装置は、コンピュータに、ユーザ操作に伴うアプリケーションソフトウェアの動作を監視するアプリケーション監視処理と、アプリケーションソフトウェアの状態を検出するアプリケーション状態検出処理と、アプリケーション監視処理の監視結果を、アプリケーション状態検出処理を利用して解析することによって、アプリケーションソフトウェアで読み込まれた文書ファイルに対して、ファイルのコピー又は移動のための操作であるファイル操作が行われたか否かを推定する文書操作推定処理と、文書操作推定処理のファイル操作の推定結果を、ログデータとして記憶装置に記憶させる文書コピー移動ログ記憶処理とを実行させるための文書ファイルコピー移動監視プログラムを記憶している。
【０１０６】
次に、フローチャートを参照して、本実施の形態の全体の動作について説明する。図１３は、文書ファイルコピー移動監視システムが行う全体処理の一例を示す流れ図である。ユーザは、情報処理端末を操作して、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ等のアプリケーション１を用いて文書の編集等を行う（ステップＳ１）。
【０１０７】
ユーザがアプリケーション１を利用している間、アプリケーション監視手段２は、アプリケーション１で発生したイベントをフックする（ステップＳ２）。この場合、操作イベント検出手段２０１がユーザのアプリケーション操作のイベントを、Ｉ／Ｏイベント検出手段２０２がファイルアクセスのイベントを、それぞれフックする。
【０１０８】
また、文書操作推定手段３は、ステップＳ２でアプリケーション監視手段２がフックしたイベントを解析する（ステップＳ３）。この場合、文書操作推定手段３のイベント処理全体制御手段３０１は、ユーザ操作イベントの操作シーケンス及び図４に示す知識テーブルを用いて、ユーザの操作とファイルシステムの動作との整合性があるかマッチング（照合）し、ユーザの操作種類を特定する。
【０１０９】
イベント処理全体制御手段３０１は、ユーザの操作種類を特定できたか否かを判断する（ステップＳ４）。本実施の形態では、イベント処理全体制御手段３０１は、対応する操作種類が対応テーブルに存在するか否かを判断する。対応する操作種類が知識テーブルに存在しないと判断すると、文書ファイルコピー移動監視システムは、特にファイルのコピー移動の監視処理を行う必要がないと判断し、ステップＳ１に戻り以降の処理を繰り返し実行する。知識テーブルに存在すると判断すると、文書ファイルコピー移動監視システムは、ステップ５に進み処理を実行する。
【０１１０】
文書操作推定手段３は、特定したユーザの操作の種類に応じて処理を実行する（ステップＳ５）。この場合、文書操作推定手段３は、操作の種類に応じて以下の３種類の処理を行う。特定した操作種類が「文書読み込み操作」である場合、文書操作推定手段３は、イベントを解析することで読み込んだファイルのファイル名を特定し、各アプリケーション１毎に読み込んだファイルリストを作成する。また、文書操作推定手段３は、この処理結果であるファイルリストを編集文書記憶手段３０６に記憶する。
【０１１１】
特定した操作種類が「文書切り替え操作」である場合、文書操作推定手段３は、イベントを解析することで各アプリケーション１毎にアクティブ文書を特定する。この特定処理では、アプリケーション状態検出手段４がウインドウタイトル等文書の切り替えに応じて変化するＧＵＩの部品の値を検出し、文書操作推定手段３は、このアプリケーション状態検出手段４が特定した値にもとづいてアクティブな文書を特定する。また、文書操作推定手段３は、この特定結果をアクティブ文書記憶手段３０３に記憶する。
【０１１２】
特定した操作種類が「文書書き込み操作」である場合、文書操作推定手段３は、イベントを解析することでユーザが行ったコピー操作をログに残す。この場合、文書操作推定手段３は、コピー元のファイルのフルパス名をアクティ文書記憶手段３０３から抽出する。また、文書操作推定手段３の状況解析手段３０４は、コピー先のファイルのフルパス名を、イベントにもとづいて算出する。また、文書操作推定手段３の文書コピー移動ログ生成手段３０７は、コピー移動ログを作成し、文書コピー移動ログ記憶手段５に蓄積させる。
【０１１３】
ステップＳ５で操作種類に応じた処理を終了すると、文書ファイルコピー移動監視システムは、ステップＳ１に戻り以降の処理を繰り返し実行する。
【０１１４】
以上のように、文書ファイルコピー移動システムは、一旦起動されるとマシンを終了させるまで常駐し続け、ファイルのコピーや移動の監視を行う。以下、ステップＳ５における文書読み込み処理、文書切り替え処理及び文書書き込み処理の動作について、３つの場合に分けて説明する。
【０１１５】
図１４は、文書読み込み処理の一例を示す流れ図である。図１４に示す文書読み込み処理では、編集文書管理手段３０５がメイン制御部となり、編集文書管理手段３０５は、状況解析手段３０４、アプリケーション状態検出手段４及び編集文書記憶手段３０６を用いて、以下に示すステップの処理を実行する。
【０１１６】
イベント処理全体制御手段３０１は、編集文書管理手段３０５にユーザ操作イベントとファイルアクセスイベント集合とを渡し（ステップＳ１０１）、文書読み込み処理を開始させる。また、編集文書管理手段３０５は、ステップＳ１で受け取ったユーザ操作イベントとファイルアクセスイベント集合とを状況解析手段３０４に渡し（ステップＳ１０２）、ユーザ操作イベントと関連のあるイベントをファイルアクセスイベント集合の中から検索する処理を開始させる。
【０１１７】
まず、状況解析手段３０４は、基準１に従って、ファイルアクセスイベント集合の中のイベントを絞り込む（ステップＳ１０３）。すなわち、状況解析手段３０４は、ユーザ操作イベントが発生したアプリケーション１に関するイベントのみに、ファイルアクセスイベント集合を絞り込む。
【０１１８】
状況解析手段３０４は、絞り込んだ結果、ファイルアクセスイベント集合が空集合になったか否かを判断する（ステップＳ１０４）。絞り込んだ結果、ファイルアクセスイベント集合が空集合になった場合、ユーザが操作をしたが途中でキャンセル操作したり、なんらかのエラーで処理が正常に終了しなかった場合であるので、状況解析手段３０４は、そのまま処理を終了する。ファイルアクセスイベント集合が空集合にならなかった場合、状況解析手段３０４は、ステップ１０５へ進み処理を実行する。
【０１１９】
状況解析手段３０４は、基準２に従って、ファイルアクセスイベント集合の中のイベントを絞り込む（ステップＳ１０５）。文書読み込み処理の場合、ファイルのアクセスモードはＲＥＡＤモードである。そのため、状況解析手段３０４は、ファイルアクセスイベント集合をＲＥＡＤモードのイベントだけに絞り込む。
【０１２０】
状況解析手段３０４は、絞り込んだ結果、ファイルアクセスイベント集合が空集合になったか否かを判断する（ステップＳ１０６）。絞り込んだ結果、ファイルアクセスイベント集合が空集合になった場合、ユーザが操作をしたが途中でキャンセル操作したり、なんらかのエラーで処理が正常に終了しなかった場合であるので、状況解析手段３０４は、そのまま処理を終了する。ファイルアクセスイベント集合が空集合にならなかった場合、状況解析手段３０４は、ステップＳ１０７へ進み処理を実行する。
【０１２１】
状況解析手段３０４は、基準３−３に従って、ファイルアクセスイベント集合の中のイベントを絞り込む（ステップＳ１０７）。すなわち、状況解析手段３０４は、ファイル名及び拡張子が全く異なるイベントを、ファイルアクセスイベント集合から削除する。
【０１２２】
状況解析手段３０４は、絞り込んだ結果、ファイルアクセスイベント集合が空集合になったか否かを判断する（ステップＳ１０８）。絞り込んだ結果、ファイルアクセスイベント集合が空集合になった場合、ユーザが操作をしたが途中でキャンセル操作したり、なんらかのエラーで処理が正常に終了しなかった場合であるので、状況解析手段３０４は、そのまま処理を終了する。ファイルアクセスイベント集合が空集合にならなかった場合、状況解析手段３０４は、ステップＳ１０９へ進み処理を実行する。
【０１２３】
状況解析手段３０４は、基準３−１に従って、ファイルアクセスイベント集合の中のイベントを絞り込む（ステップＳ１０９）。すなわち、状況解析手段３０４は、ファイル名が全く同じイベントだけになるように、ファイルアクセスイベント集合を絞り込む。
【０１２４】
状況解析手段３０４は、絞り込んだ結果、ファイルアクセスイベント集合が空集合になったか否かを判断する（ステップＳ１１０）。絞り込んだ結果、ファイルアクセスイベント集合が空集合になった場合、状況解析手段３０４は、ステップＳ１１１へ進み処理を実行する。
【０１２５】
空集合にならなかった場合、そのファイルアクセスイベント集合に含まれるイベントに対応するファイルがユーザの操作対象ファイルのフルパス名である。複数のイベントが存在した場合、それら複数イベントに対応するフルパス名が同じであれば、状況解析手段３０４は、そのフルパス名のファイルをユーザ操作対象ファイルと判断する。
【０１２６】
フルパス名が異なるイベントがファイルアクセスイベント集合に複数残る場合、アプリケーション１が対象ファイルを読み込み、読み込んだファイルを用いて、別のディレクトリにテンポラリファイル等を作成した場合である。従って、状況解析手段３０４は、最初の（時間的に最も古い）イベントのフルパス名で示されるファイルをユーザ対象ファイルと判断する。ただし、この判断方法は、必ずしも正しいとは限らない。例えば、あるアプリケーション１のある機能では、時間的に新しい方のイベントがユーザ対象ファイルのイベントである場合がある。従って、より厳密に判断するために、状況解析手段３０４は、アプリケーション名やユーザ操作シーケンスに対して、どの順のイベントをユーザ対象ファイルのイベントであると判断するかを示す知識テーブルをもつことが望ましい。この場合、状況解析手段３０４は、知識テーブルにもとづいて、何番目のイベントがユーザ操作対象ファイルのイベントであるかを判断する。
【０１２７】
ステップＳ１１０でファイルアクセスイベント集合が空集合になったと判断する場合、状況解析手段３０４は、ステップＳ１１１の処理を実行する。具体的には、ステップＳ１１１の処理を実行するのは、ユーザ操作イベントで拡張子が通知されなかった場合である。例えば、ユーザがダイアログボックスでファイル名を入力する操作をする際に、ユーザが拡張子を省略する操作をした場合に相当する。この場合、状況解析手段３０４は、基準３−１を用いた絞り込みを中止し、基準３−２に従ってファイルアクセスイベント集合の中のイベントを絞り込む（ステップＳ１１１）。すなわち、状況解析手段３０４は、拡張子を無視したマッチング（照合）を行う。
【０１２８】
状況解析手段３０４は、絞り込んだ結果、ファイルアクセスイベント集合が空集合になったか否かを判断する（ステップＳ１１２）。絞り込んだ結果、ファイルアクセスイベント集合が空集合になった場合、ユーザが操作をしたが途中でキャンセル操作したり、なんらかのエラーで処理が正常に終了しなかった場合であるので、状況解析手段３０４は、そのまま処理を終了する。
【０１２９】
空集合にならなかった場合、そのファイルアクセスイベント集合に含まれるイベントに対応するファイルのフルパス名が、ユーザの操作対象ファイルのフルパス名である。ファイルアクセスイベント集合に複数のイベントが存在する場合、それら複数イベントに対応するフルパス名が同じであれば、状況解析手段３０４は、そのフルパス名のファイルをユーザ操作対象ファイルと判断する。
【０１３０】
フルパス名が異なるイベントがファイルアクセスイベント集合に複数残る場合、アプリケーション１が対象ファイルを読み込み、読み込んだファイルを用いて、別のディレクトリにテンポラリファイル等を作成した場合である。従って、状況解析手段３０４は、最初の（時間的に最も古い）イベントのフルパス名で示されるファイルをユーザ対象ファイルと判断する。
【０１３１】
以上のように、ステップＳ１０１からステップＳ１１２までの処理が実行されることによって、状況解析手段３０４によるファイルフルパス名の特定処理が終了し、ステップＳ１１３の処理に進む。
【０１３２】
編集文書管理手段３０５は、ユーザ操作イベントのウインドウクラスの値をパラメータとして、アプリケーション状態検出手段４を呼び出す。アプリケーション状態検出手段４は、編集文書管理手段３０５から渡されたウインドウクラスに対応したウインドウの状態を検出し、編集文書管理手段３０５に回答（検出結果を出力）する。本実施の形態では、アプリケーション状態検出手段４は、アプリケーション１の状態として、ウインドウタイトルを編集文書管理手段３０５に返す。そして、編集文書管理手段３０５は、アプリケーション状態検出手段４からのウインドウタイトルを受け取る（ステップＳ１１３）。
【０１３３】
編集文書管理手段３０５は、ステップＳ１０１からステップＳ１１３までの処理結果を、編集文書記憶手段３０６に保存させる（ステップＳ１１４）。本実施の形態では、編集文書管理手段３０５は、図７に示すように、特定したファイルフルパス名を編集文書記憶手段３０６に保存させる。また、編集文書管理手段３０５は、アクティブアプリケーション状態として、ウインドウタイトルを編集文書記憶手段３０６に保存させる。
【０１３４】
図１５は、文書切り替え処理の一例を示す流れ図である。図１５に示す文書切り替え処理では、アクティブ文書判定手段３０２がメイン制御部となり、アクティブ文書判定手段３０２は、アプリケーション状態検出手段４、編集文書記憶手段３０６及びアクティブ文書記憶手段３０３を用いて、以下に示すステップの処理を実行する。
【０１３５】
編集文書管理手段３０５は、アクティブ文書判定手段３０２にユーザ操作イベントのウインドウクラスの値を渡し（ステップＳ２０１）、アクティブドキュメントの切り替え処理を開始させる。アクティブ文書判定手段３０２は、アプリケーション状態検出手段４にウインドウクラスを送り、そのウインドウクラスに対応したアプリケーション１のウインドウタイトルの値を、アプリケーション状態検出手段４から受け取って取得する（ステップＳ２０２）。
【０１３６】
アクティブ文書判定手段３０２は、取得したウインドウタイトルを用いて編集文書記憶手段３０６を検索する（ステップＳ２０３）。この場合、アクティブ文書判定手段３０２は、ステップＳ２０１で受け取ったウインドウクラスの値をキーとして、編集文書記憶手段３０６のウインドウクラスのフィールドを検索する。また、アクティブ文書判定手段３０２は、ステップＳ２０２で取得したウインドウタイトルの値をキーとして、編集文書記憶手段３０６のアクティブアプリケーション状態のフィールドを検索する。
【０１３７】
アクティブ文書判定手段３０２は、検索の結果、ウインドウクラスやウインドウタイトルが合致するファイルのファイルフルパス名を抽出して取得する（ステップＳ２０４）。また、アクティブ文書判定手段３０２は、検索の結果抽出したファイルフルパス名を、アクティブ文書として一時記憶する。
【０１３８】
なお、アクティブ文書判定手段３０２は、検索の結果、必ず１つのファイルフルパス名を抽出する。すなわち、同じ文書を複数回同じアプリケーション１で読み込めないので、編集文書記憶手段３０６のアクティブアプリケーション状態のフィールドが重複することはなく、検索結果が複数になることはない。さらに、文書がアクティブになるためには、文書がアプリケーション１に事前に読み込まれている必要があるので、検索結果がないということもない。
【０１３９】
そして、アクティブ文書判定手段３０２は、ステップＳ２０１で得たウインドウクラスとステップＳ２０４で得たファイルフルパス名とを、アクティブ文書記憶手段３０３に登録する（ステップＳ２０５）。
【０１４０】
図１６は、文書書き込み処理の一例を示す流れ図である。図１６に示す文書書き込み処理では、文書コピー移動ログ生成手段３０７がメイン制御部となり、文書コピー移動ログ生成手段３０７は、状況解析手段３０４、アクティブ文書記憶手段３０３及び文書コピー移動ログ記憶手段５を用いて、以下に示すステップの処理を実行する。
【０１４１】
イベント処理全体制御手段３０１は、文書コピー移動ログ生成手段３０７にユーザ操作イベントとファイルアクセスイベントとを渡し（ステップＳ３０１）、文書書き込み処理を開始させる。文書コピー移動ログ生成手段３０７は、ステップＳ３０１で受け取ったユーザ操作イベントとファイルアクセスイベントとを状況解析手段３０４に渡し（ステップＳ３０２）、ユーザ操作イベントと関連のあるイベントをファイルアクセスイベント集合の中から検索する処理を開始させる。
【０１４２】
次に、状況解析手段３０４は、状況解析の処理を実行する（ステップＳ３０３）。本実施の形態では、状況解析手段３０４は、図１４で示した文書読み込み処理のステップＳ１０３からステップＳ１１２までと同様の処理を、状況解析の処理として実行する。状況解析手段３０４は、状況解析の結果として、ファイルフルパス名を文書コピー移動ログ生成手段３０７に返す。この状況解析手段３０４が文書コピー移動ログ生成手段３０７に返すファイルフルパス名は、ユーザ操作の対象ファイルであり、ログのコピー先ファイルフルパス名に相当する。
【０１４３】
文書コピー移動ログ生成手段３０７は、ステップＳ３０１で得たウインドウクラスをキーとして、アクティブ文書記憶手段３０３のウインドウクラスフィールドを検索する（ステップＳ３０４）。また、文書コピー移動ログ生成手段３０７は、検索の結果抽出したファイルフルパス名を、ログのコピー元ファイルフルパス名として一時記憶する（ステップＳ３０５）。
【０１４４】
なお、文書コピー移動ログ生成手段３０７は、検索の結果必ず１つのフルパス名を抽出する。すなわち、アクティブ文書記憶手段３０３のウインドウクラスの値には重複がないので、複数レコードが検索されることはない。また、書き込み処理を行っているアプリケーション１は書き込みの前に読み込み処理を行っており、この読み込みの際にアクティブ文書記憶手段３０３に登録されるので、検索結果がないということもない。
【０１４５】
文書コピー移動ログ生成手段３０７は、ウインドウクラスや操作シーケンス、コピー先ファイルフルパス名、コピー元ファイルフルパス名を含むログを生成する（ステップＳ３０６）。この場合、文書コピー移動ログ生成手段３０７は、ステップＳ３０１で受け取ったユーザ操作イベントのウインドウクラスや操作シーケンスを含むログを生成する。また、文書コピー移動ログ生成手段３０７は、ステップＳ３０３で受け取ったファイルフルパス名をコピー先ファイルフルパス名として含むログを生成する。更に、文書コピー移動ログ生成手段３０７は、ステップＳ３０５の検索結果のファイルフルパス名をコピー元ファイルフルパス名として含むログを生成する。
【０１４６】
文書コピー移動ログ生成手段３０７は、生成したログを文書コピー移動ログ記憶手段５に登録する（ステップＳ３０７）。この場合、文書コピー移動ログ生成手段３０７は、登録方法として、文書コピー移動ログ記憶手段５にレコードを１つ追加し、追加したレコードにステップＳ３０６で生成したログを書き込む。
【０１４７】
以上のように、本実施の形態によれば、アプリケーション監視手段２がアプリケーション１の動作を外部のプログラムから監視し、アプリケーション状態検出手段４が表示されているウインドウタイトルの文字列等をアプリケーション１の状態として検出する。また、文書操作推定手段３は、アプリケーション監視手段２の監視結果を、アプリケーション状態検出手段４の検出機能を利用して解析することによって、そのアプリケーション１で読み込まれた文書ファイルに対して、ユーザのファイル操作が行われたか否かを推定する。そして、文書操作推定手段３は、推定したファイル操作の推定結果を、ログとして文書コピー移動ログ記憶手段５に記憶させる。
【０１４８】
アプリケーション１の状態を検出し、アプリケーション１の動作の監視結果を解析することによって、ファイルのコピーや移動のファイル操作が行われたか否かを推定できるので、ワードプロセッサで「名前をつけて保存」をした場合のように、間接的にファイルをコピー又は移動するる操作であっても、正確に監視できることにある。従って、市販のワードプロセッサ等、様々なアプリケーションソフトウェアのファイルフォーマットに対応して、ファイルのコピーや移動を監視することができる。また、ユーザによってファイル名を変えられた場合や、アプリケーションソフトウェアでファイルの内容が編集された場合であっても、ファイルの位置の変化を正確に監視することができる。更に、ユーザに対して従来と全く変わらない操作性のままで、ファイルのコピーや移動を監視することができる。
【０１４９】
また、本実施の形態によれば、アプリケーション監視手段２は、ユーザのＧＵＩの操作を監視する操作イベント検出手段２０１と、ファイルシステムへのアクセスを監視するＩ／Ｏイベント検出手段２０２とを含む。そのような構成によって、ユーザが行った操作と実際のファイルシステムの動作との両方の整合性を検証でき、ファイルのコピーや移動を精度よく監視することができる。
【０１５０】
例えば、「名前をつけて保存」をユーザが選択操作したとしても、既に同じ名前のファイルが存在したためにキャンセルされる場合もあれば、磁気ディスク装置の空きスペースがなく書き込みに失敗することもある。このように保存がキャンセルされたり失敗した場合であっても、Ｉ／Ｏイベント検出手段２０２がファイルアクセスを監視しているので、ファイルのコピーや移動の監視結果を誤ることはない。従って、ファイルアクセスのエラー等が発生した場合であっても、ファイルのコピーや移動を正確に監視することができる。
【０１５１】
また、本実施の形態によれば、文書操作推定手段３は、イベント処理全体制御手段３０１と、状況解析手段３０４と、編集文書管理手段３０５と、編集文書記憶手段３０６と、アクティブ文書判定手段３０２と、アクティブ文書記憶手段３０３と、文書コピー移動ログ生成手段３０７とを含む。
【０１５２】
イベント処理全体制御手段３０１は、アプリケーション監視手段２の監視結果の解析処理全体を制御する。また、状況解析手段３０４は、Ｉ／Ｏイベント検出手段２０２からのファイルフルパス名と、操作イベント検出手段２０１からのファイル名との関係をマッチングする。編集文書管理手段３０５は、アプリケーション１で読み込まれたファイルと、アプリケーション１の状態の変化（読み込まれたことによるウインドウタイトルの文字列の変化等）とを対応づける。そして、編集文書記憶手段３０６は、編集文書管理手段３０５が生成したファイルとアプリケーション１の状態との関係を記憶する。
【０１５３】
また、アクティブ文書判定手段３０２は、複数読み込んだファイルの中から、現在フォーカスがあたっている文書（アクティブドキュメント）を検出をする。また、アクティブ文書記憶手段３０３は、アクティブ文書判定手段３０２の検出結果を記憶する。そして、文書コピー移動ログ生成手段３０７は、ファイルへの書き込みが行われた場合に、アプリケーション監視手段２が監視結果として通知するイベントと、状況解析手段３０４の照合結果とにもとづいて、どのファイルの内容がどのファイルに書き込まれたかを推定する。
【０１５４】
そのような構成によって、アプリケーション１内で文書の切り替えを管理でき、アプリケーション１で一度に複数のファイルを開いた場合であっても、ファイルのコピーや移動をより正確に監視することができる。従って、アプリケーション１で一度に複数のファイルを開いた場合であっても、ファイルのコピーや移動を正確に監視することができる。
【実施例】
【０１５５】
次に、具体的な実施例について説明する。本実施例では、実施の形態で示した文書ファイルコピー移動監視システムの処理内容を具体例を用いて説明する。なお、本実施例では、文書ファイルコピー移動監視システムの動作を、（１）文書読み込み、（２）文書切り替え、及び（３）文書書き込みの場合に分けて説明する。
【０１５６】
（１）まず、文書読み込みの場合の動作を、図１３及び図１４を用いて説明する。図１３のステップＳ１では、ユーザは、情報処理端末を操作して、アプリケーション１「Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ」のメニューから「ファイル→開く」操作を選択し、ファイル「ＡＡＡ」を開く。ただし、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄの実行ファイルは「ＷＯＲＤ．ＥＸＥ」であり、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄのウインドウクラスは「ＯｐｕａＡｐｐ」であるとする。
【０１５７】
ステップＳ２では、操作イベント検出手段２０１は、ステップＳ１の操作に対し、図２に示すような操作イベントをフックする。また、Ｉ／Ｏイベント検出手段２０２は、ファイルアクセスイベント集合として、図３に示すようなレコードセットをフックする。なお、ファイルアクセスイベント集合には、図３に示す第二レコードのように、他のアプリケーションで発生したイベントが含まれることがある。本例では、ステップＳ１の操作がユーザによってされたタイミングと同時に、アプリケーション「ＨＩＤＥＭＡＲＵ．ＥＸＥ」が「ＢＢＢ．ｔｘｔ」というファイルのＷＲＩＴＥを行っていることを示している。
【０１５８】
ステップＳ３では、イベント処理全体制御手段３０１は、ユーザ操作イベントの操作シーケンスの項目と、図４に示す知識テーブルの操作シーケンスフィールドＴ０３０１０１とをマッチング（照合）する。本例では、操作シーケンスが「メニュー→ファイル→開く」であるので、図４に示す知識テーブルの第一レコードとマッチ（合致）する。従って、イベント処理全体制御手段３０１は、図４に示す操作種類フィールドＴ０３０１０２の値である「文書読み込み処理」を、このユーザの操作の種類と判断する。
【０１５９】
ステップＳ４では、文書操作推定手段３は、ステップ３でユーザの操作の種類が特定できたと判断するので、ステップＳ５の処理を実行する。ステップＳ５では、文書操作推定手段３は、図１４に示す「文書読み込み処理」を実行する。
【０１６０】
図１４のステップＳ１０１では、イベント処理全体制御手段３０１は、編集文書管理手段３０５に、図２に示すユーザ操作イベントと図３に示すファイルアクセスイベント集合とを送る。ステップＳ１０２では、編集文書管理手段３０５は、ステップ１０１で受け取った図２のユーザ操作イベントと図３のファイルアクセスイベント集合とを、状況解析手段３０４に送る。
【０１６１】
本例では、ユーザ操作イベントのウインドウクラスは「ＯｐｕｓＡｐｐ」である。よって、図５から、このウインドウクラス「ＯｐｕｓＡｐｐ」の実行ファイルが「ＷＯＲＤ．ＥＸＥ」であることがわかる。従って、ステップＳ１０３では、状況解析手段３０４は、図３に示すファイルアクセスイベント集合を、この実行ファイル「ＷＯＲＤ．ＥＸＥ」に関するイベントだけを含むように絞り込む。本例では、状況解析手段３０４は、図１７に示す４レコードにファイルアクセスイベント集合を絞り込む。ステップＳ１０４では、状況解析手段３０４は、ファイルアクセスイベント集合が空集合ではないと判断するので、ステップ１０５に進む。
【０１６２】
また、本例では、ユーザ操作イベントの操作シーケンスは「メニュー→ファイル→開く」である。よって、図６より、この操作シーケンスのファイルアクセスモードが「ＲＥＡＤ」であることがわかる。従って、ステップＳ１０５では、状況解析手段３０４は、図１７に示すファイルアクセスイベント集合を、「ＲＥＡＤ」のイベントだけを含むように絞り込む。本例では、状況解析手段３０４は、図１８に示す３レコードにファイルアクセスイベント集合を絞り込む。ステップＳ１０６では、状況解析手段３０４は、ファイルアクセスイベント集合が空集合ではないと判断するので、ステップ１０７に進む。
【０１６３】
また、本例では、ファイルアクセスイベントのファイル名が「ＡＡＡ」であり、拡張子がない。従って、ステップＳ１０７では、状況解析手段３０４は、図１８に示すファイルアクセスイベント集合を、ファイル名が「ＡＡＡ」であるか拡張子がないファイルに対応するイベントだけを含むように絞り込む。本例では、状況解析手段３０４は、図１９に示す２レコードにファイルアクセスイベント集合を絞り込む。ステップＳ１０８では、状況解析手段３０４は、ファイルアクセスイベント集合が空集合ではないと判断するので、ステップ１０９に進む。
【０１６４】
図１９に示すように、本例では、絞り込んだファイルアクセスイベント集合は、ユーザ操作イベントのファイル名と拡張子との両方が同じであるイベントのログを含まない。従って、ステップＳ１０９で状況解析手段３０４が更に絞り込みを行うと、ファイルアクセスイベント集合は空集合になる。ステップＳ１１０では、状況解析手段３０４は、ファイルアクセスイベント集合が空集合であると判断するので、ステップＳ１１１に進む。
【０１６５】
ステップＳ１１１では、状況解析手段３０４は、拡張子のマッチングを無視した絞り込みを行う。拡張子のマッチングを無視すると、図１９に示すいずれのレコードも基準に合致する。この場合、絞り込み後のファイルアクセスイベント集合は、図１９に示す集合と同じになる。
【０１６６】
図１９に示すように、本例では、ファイルアクセスイベント集合に含まれるレコードは複数存在する。従って、ステップＳ１１２では、状況解析手段３０４は、ログが古いほうのイベント（すなわち、図１９に示す第一レコードのイベント）を、ユーザ操作イベントに対応するファイルアクセスイベントであると判断する。
【０１６７】
ステップＳ１１３では、編集文書管理手段３０５は、ユーザ操作イベントのウインドウクラスの値「ＯｐｕｓＡｐｐ」をパラメータとして、アプリケーション状態検出手段４を呼び出す。アプリケーション状態検出手段４は、渡されたウインドウクラスに対応したウインドウタイトルを検出し、編集文書管理手段３０５に回答する。例えば、アプリケーション状態検出手段４は、「ＷＯＲＤ［ＡＡＡ．ＤＯＣ］」等と回答する。
【０１６８】
ステップＳ１１４では、編集文書管理手段３０５は、以上の処理結果を編集文書記憶手段３０６に保存させる（例えば、図７に示す第一レコード）。
【０１６９】
（２）次に、文書切り替えの場合の動作を、図１３及び図１５を用いて説明する。図１３のステップＳ１では、ユーザは、情報処理端末を操作して、アプリケーション１「Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ」を用いて、「ＡＡＡ．ＤＯＣ」以外の文書の読み込み編集作業を行う。例えば、ユーザは、メニューから「ファイル→ウインドウ→切り替え」操作を選択し、ファイル「ＡＡＡ」にフォーカスをあてる。
【０１７０】
ステップＳ２では、操作イベント検出手段２０１は、ステップＳ１の操作に対し、図２０に示すような操作イベントをフックする。なお、文書切り替えの場合、ファイルへのアクセスはないので、ファイルアクセスイベント集合には何もイベントが発行されない。
【０１７１】
ステップＳ３では、イベント処理全体制御手段３０１は、ユーザ操作イベントの操作シーケンスの項目と、図４に示す知識テーブルの操作シーケンスフィールドＴ０３０１０１とをマッチングする。本例では、操作シーケンスが「メニュー→ウインドウ→切り替え」であるので、図４に示す知識テーブルの第三レコードとマッチする。従って、イベント処理全体制御手段３０１は、図４に示す操作種類フィールドＴ０３０１０２の値である「文書切り替え処理」を、このユーザの操作の種類と判断する。
【０１７２】
ステップＳ４では、文書操作推定手段３は、ステップＳ３でユーザの操作の種類が特定できたと判断するので、ステップＳ５の処理を実行する。ステップＳ５では、文書操作推定手段３は、図１５に示す「文書切り替え処理」を実行する。
【０１７３】
図１５のステップＳ２０１では、編集文書管理手段３０５は、アクティブ文書判定手段３０２にユーザ操作イベントのウインドウクラスの値「ＯｐｕｓＡｐｐ」を渡し、アクティブドキュメントの切り替え処理を開始させる。ステップＳ２０２では、アクティブ文書判定手段３０２は、アプリケーション状態検出手段４にウインドウクラス「ＯｐｕｓＡｐｐ」を送る。そして、アクティブ文書判定手段３０２は、このウインドウクラス「ＯｐｕｓＡｐｐ」に対応したアプリケーション１のウインドウタイトルの値「ＷＯＲＤ［ＡＡＡ．ＤＯＣ］」を、アプリケーション状態検出手段４から受け取って取得する。
【０１７４】
ステップＳ２０３では、アクティブ文書判定手段３０２は、図７に示す編集文書記憶手段３０６が記憶する情報のテーブルに対して情報検索を行う。この場合、アクティブ文書判定手段３０２は、編集文書記憶手段３０６のウインドウクラスのフィールドが「ＯｐｕｓＡｐｐ」で、且つ編集文書記憶手段３０６のアクティブアプリケーション状態のフィールドが「ＷＯＲＤ［ＡＡＡ．ＤＯＣ］」であるレコードを検索する。本例では、アクティブ文書判定手段３０２は、図７に示す第一レコードを検索結果として抽出する。
【０１７５】
ステップＳ２０４では、アクティブ文書判定手段３０２は、検索結果のファイルフルパス名フィールドの値「Ｃ：￥Ｄｏｃ￥ＡＡＡ．ＤＯＣ」を、アクティブ文書として一時記憶する。ステップＳ２０５では、アクティブ文書判定手段３０２は、ステップＳ２０１で得たウインドウクラス「ＯｐｕｓＡｐｐ」と、ステップＳ２０４で得たファイルフルパス名「Ｃ：￥Ｄｏｃ￥ＡＡＡ．ＤＯＣ」とを、アクティブ文書記憶手段３０３に登録する（例えば、図１０に示す第一レコード）。
【０１７６】
（３）次に、文書書き込みの場合の動作を、図１３及び図１６を用いて説明する。図１３のステップＳ１では、ユーザは、情報処理端末を操作して、アプリケーション１「Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ」を用いて、メニューから「メニュー→ファイル→名前を付けて保存」を選択し、保存先ファイル名「ＸＸＸ」を入力する。
【０１７７】
ステップＳ２では、操作イベント検出手段２０１は、ステップＳ１の操作に対し、図２１に示すような操作イベントをフックする。また、Ｉ／Ｏイベント検出手段手段２０２は、ファイルアクセスイベント集合として、図２２に示すレコードセットをフックする。
【０１７８】
ステップＳ３では、イベント処理全体制御手段３０１は、ユーザ操作イベントの操作シーケンスの項目と、図４に示す知識テーブルの操作シーケンスフィールドＴ０３０１０１とをマッチングする。本例では、操作シーケンスが「メニュー→ファイル→名前を付けて保存」であるので、図４に示す知識テーブルの第五レコードとマッチする。従って、イベント処理全体制御手段３０１は、図４に示す操作種類フィールドＴ０３０１０２の値である「文書書き込み処理」を、このユーザの操作の種類と判断する。
【０１７９】
ステップＳ４では、文書操作推定手段３は、ステップＳ３でユーザの操作の種類が特定できたと判断するので、ステップＳ５の処理を実行する。ステップＳ５では、文書操作推定手段３は、図１６に示す「文書書き込み処理」を実行する。
【０１８０】
図１６のステップＳ３０１では、イベント処理全体制御手段３０１は、文書コピー移動ログ生成手段３０７にユーザ操作イベントとファイルアクセスイベントとを渡し、文書書き込み処理を開始させる。ステップＳ３０２では、文書コピー移動ログ生成手段３０７は、ステップＳ３０１で受け取ったユーザ操作イベントと図２２のファイルアクセスイベント集合とを状況解析手段３０４に渡す。
【０１８１】
ステップＳ３０３では、状況解析手段３０４は、図１４で示した文書読み込み処理のステップＳ１０３からステップＳ１１２までの処理を実行する。ステップＳ１０３からステップＳ１１２までの処理が実行された結果、状況解析手段３０４は、図２２に示すファイルアクセス集合の各レコードを、以下のように絞り込む。図２３は、ファイルアクセス集合の絞り込み結果を示す説明図である。
【０１８２】
状況解析手段３０４は、図２２に示すファイルアクセス集合の第一レコードを、基準３−３に従って削除する。また、状況解析手段３０４は、第二レコードを残し、図２３に示すように、ファイルアクセス集合の第一レコードにする。また、状況解析手段３０４は、第三レコードを、基準３−２に従って削除する。また、状況解析手段３０４は、第四レコードを、基準２に従って削除する。
【０１８３】
本例では、状況解析手段３０４は、「Ｃ：￥Ｄｏｃ￥ＸＸＸ．ＤＯＣ」を文書コピー移動ログ生成手段３０７に返す。この状況解析手段３０４から受け取ったファイルフルパス名は、ユーザ操作の対象ファイルのパス名であり、ログのコピー先ファイルフルパス名に相当する。
【０１８４】
ステップＳ３０４では、文書コピー移動ログ生成手段３０７は、ステップＳ３０１で得たウインドウクラス「ＯｐｕｓＡｐｐ」をキーとして、図１０に示すアクティブ文書記憶手段３０３のウインドウクラスフィールドを検索する。文書コピー移動ログ生成手段３０７は、その検索の結果、図１０に示す第一レコードを検索結果として抽出する。ステップＳ３０５では、文書コピー移動ログ生成手段３０７は、検索の結果抽出したファイルフルパス名「Ｃ：￥Ｄｏｃ￥ＡＡＡ．ＤＯＣ」を、ログのコピー元ファイルフルパス名として一時記憶する。
【０１８５】
ステップＳ３０６では、文書コピー移動ログ生成手段３０７は、ウインドウクラス「ＯｐｕｓＡｐｐ」、コピー元ファイル「Ｃ：￥Ｄｏｃ￥ＡＡＡ．ＤＯＣ」、及びコピー先ファイル「Ｃ：￥Ｄｏｃ￥ＸＸＸ．ＤＯＣ」を含むログを生成する。ステップＳ３０７では、文書コピー移動ログ生成手段３０７は、生成したログを文書コピー移動ログ記憶手段５に登録する。本例では、図２４に示すように、文書コピー移動ログ生成手段３０７は、第四レコードとしてログを文書コピー移動ログ記憶手段５に登録する。
【産業上の利用可能性】
【０１８６】
本発明は、ネットワークを介して各磁気ディスク装置を共有する環境で電子文書を配布するパーソナルコンピュータの利用形態において、各文書の配布経路を監視するといった用途に適用できる。そのように文書の配布経路を監視することによって、（１）モラルの低い社員による情報漏洩の抑止のために利用することができる。（２）また、万が一情報が漏れてしまった場合に、監視結果のデータを、情報漏洩の経路を絞り込むための基礎データとして利用することができる。
【図面の簡単な説明】
【０１８７】
【図１】本発明による文書ファイルコピー移動監視システムの構成の一例を示すブロック図である。
【図２】ユーザ操作イベントの一例を示す説明図である。
【図３】ファイルアクセスイベント集合の一例を示す説明図である。
【図４】処理をディスパッチするための知識テーブルの一例を示す説明図である。
【図５】予め記憶する対応テーブルの一例を示す説明図である。
【図６】ユーザ操作の操作シーケンスとファイルアクセスモードとを対応づけた対応テーブルの一例を示す説明図である。
【図７】編集文書記憶手段３０６が記憶する情報のフィールドの一例を示す説明図である。
【図８】編集文書管理手段３０５の処理結果の記憶方法の処理手順の一例を示す流れ図である。
【図９】アクティブ文書判定手段３０２がアクティブ文書を判定する処理手順の一例を示す流れ図である。
【図１０】アクティブ文書記憶手段３０３が所定のスキーマに従って記憶する情報の一例を示す説明図である。
【図１１】アクティブ文書のアクティブ文書記憶手段３０３への登録処理の一例を示す流れ図である。
【図１２】文書コピー移動ログ記憶手段５が所定のスキーマに従って記憶する情報の一例を示す説明図である。
【図１３】文書ファイルコピー移動監視システムが行う全体処理の一例を示す流れ図である。
【図１４】文書読み込み処理の一例を示す流れ図である。
【図１５】文書切り替え処理の一例を示す流れ図である。
【図１６】文書書き込み処理の一例を示す流れ図である。
【図１７】４レコードに絞り込まれたファイルアクセスイベント集合の一例を示す説明図である。
【図１８】３レコードに絞り込まれたファイルアクセスイベント集合の一例を示す説明図である。
【図１９】２レコードに絞り込まれたファイルアクセスイベント集合の一例を示す説明図である。
【図２０】操作イベント検出手段２０１がフックした操作イベントの一例を示す説明図である。
【図２１】操作イベント検出手段２０１がフックした操作イベントの他の例を示す説明図である。
【図２２】Ｉ／Ｏイベント検出手段２０２がフックしたファイルアクセスイベント集合の一例を示す説明図である。
【図２３】ファイルアクセス集合の絞り込み結果を示す説明図である。
【図２４】文書コピー移動ログ記憶手段５に登録されたログの一例を示す説明図である。
【図２５】従来の情報漏洩検出防止装置の構成を示すブロック図である。
【符号の説明】
【０１８８】
１  アプリケーションソフトウェア
２  アプリケーション監視手段
３  文書操作推定手段
４  アプリケーション状態検出手段
５  文書コピー移動ログ記憶手段
２０１  操作イベント検出手段
２０２  Ｉ／Ｏイベント検出手段
３０１  イベント処理全体制御手段
３０２  アクティブ文書判定手段
３０３  アクティブ文書記憶手段
３０４  状況解析手段
３０５  編集文書管理手段
３０６  編集文書記憶手段
３０７  文書コピー移動ログ生成手段
【図１】
2006092149.tif 000003
【図２】
2006092149.tif 000004
【図３】
2006092149.tif 000005
【図４】
2006092149.tif 000006
【図５】
2006092149.tif 000007
【図６】
2006092149.tif 000008
【図７】
2006092149.tif 000009
【図８】
2006092149.tif 000010
【図９】
2006092149.tif 000011
【図１０】
2006092149.tif 000012
【図１１】
2006092149.tif 000013
【図１２】
2006092149.tif 000014
【図１３】
2006092149.tif 000015
【図１４】
2006092149.tif 000016
【図１５】
2006092149.tif 000017
【図１６】
2006092149.tif 000018
【図１７】
2006092149.tif 000019
【図１８】
2006092149.tif 000020
【図１９】
2006092149.tif 000021
【図２０】
2006092149.tif 000022
【図２１】
2006092149.tif 000023
【図２２】
2006092149.tif 000024
【図２３】
2006092149.tif 000025
【図２４】
2006092149.tif 000026
【図２５】
2006092149.tif 000027