(57)【特許請求の範囲】
【請求項１】
ファイル提供装置において提供されるファイルに対するファイル操作装置からのアクセスに関する情報を含むアクセスログと、前記ファイル提供装置又は前記ファイル操作装置に配置されたファイルに対して、前記ファイル操作装置におけるプロセスにより実行された操作に関する情報を含むプロセス操作ログと、を取得するログ取得部と、
前記アクセスログ及び前記プロセス操作ログから、前記ファイル提供装置において提供された操作対象ファイルを操作した前記プロセスである操作プロセスを特定し、前記操作対象ファイルに対して実行された操作の種類に応じて、前記操作対象ファイルの原本ファイルに対して実行され得る操作である派生元操作に関するログのうち、特定の条件を満たすログを、前記プロセス操作ログから抽出し、抽出した前記派生元操作に関するログに記録された前記ファイルを、前記操作対象ファイルに対する原本ファイルとして特定する解析部と、を備える
履歴解析装置。
【請求項２】
前記操作プロセスにより前記操作対象ファイルに対して実行された操作が書き込み操作である場合、前記解析部は、
前記操作プロセスの実行が開始されたプロセス開始時間以後に前記操作プロセスが実行した前記派生元操作である前記ファイルに関する読み込み操作のうち、前記操作対象ファイルに関する書き込み操作が実行された時間以前で、前記操作対象ファイルに関する書き込み操作が実行された時間に最も近い時間に実行された読み込み操作のログが、前記プロセス操作ログに含まれる場合、当該読み込み操作が実行された前記ファイルを、前記操作対象ファイルに関する原本ファイルとして特定する
請求項１に記載の履歴解析装置。
【請求項３】
前記解析部は、
特定された前記原本ファイルの名称と、前記操作対象ファイルの名称とが合致する場合、前記操作プロセスにより前記原本ファイルが編集されたと判定し、
特定された前記原本ファイルの名称と、前記操作対象ファイルの名称とが合致しない場合、前記操作プロセスにより前記原本ファイルが異なる名称で保存されたと判定する
請求項２に記載の履歴解析装置。
【請求項４】
前記解析部は、
特定された前記原本ファイルのサイズと、前記操作対象ファイルのサイズとが合致する場合、前記操作対象ファイルに関する書き込み操作が実行された時間以後の基準時間以内に、前記原本ファイルの削除を表す情報が前記プロセス操作ログに記録されているか否かに基づいて、前記操作プロセスにより前記原本ファイルが前記操作対象ファイルとして移動されたか、又は、前記操作プロセスにより前記原本ファイルが前記操作対象ファイルとしてコピーされたかを判定する
請求項２に記載の履歴解析装置。
【請求項５】
前記ログ取得部は、前記ファイル操作装置において通信ネットワークに対して実行されたデータの送受信操作に関するログであるネットワーク操作ログを更に取得し、
前記操作プロセスにより前記操作対象ファイルに対して実行された操作が書き込み操作である場合、前記解析部は、
前記プロセス開始時間以後に前記操作プロセスが実行した、前記ファイルに関する前記派生元操作であるダウンロード操作のうち、当該ダウンロード操作により受信したデータのサイズ又は当該受信したデータのサイズから算出した補正サイズが、前記操作対象ファイルのサイズに合致するログが、前記ネットワーク操作ログに含まれる場合、当該受信したデータを、前記操作対象ファイルに関する原本ファイルとして特定する
請求項２に記載の履歴解析装置。
【請求項６】
前記解析部は、
前記プロセス操作ログから、前記操作対象ファイルに対して実行された読み込み操作のログを抽出し、当該抽出したログ毎に、前記操作対象ファイルに対する読み込み操作を実行した前記操作プロセスを特定し、
前記プロセス操作ログから、前記操作プロセスにより前記操作対象ファイルに関する読み込み操作が実行された時間以後に、前記操作プロセスが実行した書き込み操作に関するログを特定し、当該特定したログに記録された書き込み操作が実行された前記ファイルを、前記操作対象ファイルに関する派生先ファイルとして特定する
請求項２乃至請求項５のいずれかに記載の履歴解析装置。
【請求項７】
前記解析部は、
前記プロセス開始時間と、前記操作プロセスの実行が終了したプロセス終了時間との間に、前記操作プロセスにより実行された操作に関するログであるプロセス全操作ログリストを前記プロセス操作ログから抽出し、
前記プロセス全操作ログリストから読み込み操作に関するログを抽出した読み込み操作ログリストを作成し、
前記プロセス全操作ログリストから、前記操作対象ファイルに関する操作が実行された時間以降に実行された読み込み操作に関するログを抽出した書き込み操作ログリストを作成し、
前記読み込み操作ログリストを参照して、前記書き込み操作ログリストに含まれる全てのログについて、当該ログに記録された書き込み操作の実行時間よりも前に実行された読み込み操作が存在する場合、当該読み込み操作に関する１以上のログを、推定読み込み候補リストとして当該ログに関連付け、
前記操作対象ファイルに関する操作が読み込み操作である場合、前記推定読み込み候補リストが関連付けされた、前記書き込み操作ログリストのログに記録された前記ファイルを、候補ファイルリストに記録し、
前記操作対象ファイルに関する操作が書き込み操作である場合、前記書き込み操作ログリストのうち、前記操作対象ファイルと同じ名称の前記ファイルに対して実行された書き込み操作に関するログに関連付けされた推定読み込み候補リストの前記ファイルを、候補ファイルリストに記録し、
候補ファイルリストに記録された前記ファイルと、前記操作対象ファイルとの間の類似度を表すスコアを算出し、
候補ファイルリストに記録された前記ファイルのうち、当該スコアが基準値以上である前記ファイルを、前記操作対象ファイルに関する派生先ファイルとして特定する、
請求項２乃至請求項５のいずれかに記載の履歴解析装置。
【請求項８】
コンピュータが、
ファイル提供装置において提供されるファイルに対するファイル操作装置からのアクセスに関する情報を含むアクセスログと、前記ファイル提供装置又は前記ファイル操作装置に配置されたファイルに対して、前記ファイル操作装置におけるプロセスにより実行された操作に関する情報を含むプロセス操作ログと、を取得し、
前記アクセスログ及び前記プロセス操作ログから、前記ファイル提供装置において提供された操作対象ファイルを操作した前記プロセスである操作プロセスを特定し、
前記操作対象ファイルに対して実行された操作の種類に応じて、前記操作対象ファイルの原本ファイルに対して実行され得る操作である派生元操作に関するログのうち、特定の条件を満たすログを前記プロセス操作ログから抽出し、
抽出した前記派生元操作に関するログに記録された前記派生元操作が実行されたファイルを、前記操作対象ファイルに対する原本ファイルとして特定する
履歴解析方法。
【請求項９】
コンピュータに、
ファイル提供装置において提供されるファイルに対するファイル操作装置からのアクセスに関する情報を含むアクセスログと、前記ファイル提供装置又は前記ファイル操作装置に配置されたファイルに対して、前記ファイル操作装置におけるプロセスにより実行された操作に関する情報を含むプロセス操作ログと、を取得する処理と、
前記アクセスログ及び前記プロセス操作ログから、前記ファイル提供装置において提供された操作対象ファイルを操作した前記プロセスである操作プロセスを特定する処理と、
前記操作対象ファイルに対して実行された操作の種類に応じて、前記操作対象ファイルの原本ファイルに対して実行され得る操作である派生元操作に関するログのうち、特定の条件を満たすログを前記プロセス操作ログから抽出する処理と、
抽出した前記派生元操作に関するログに記録された前記派生元操作が実行されたファイルを、前記操作対象ファイルに対する原本ファイルとして特定する処理と、を実行させる
プログラム。
【請求項１０】
操作対象ファイルと、当該操作対象ファイルに対するアクセスに関する情報を含むアクセスログと、を通信ネットワークを介して提供可能なファイル提供装置と、
自装置において、あるプロセスを実行することにより前記操作対象ファイル及び自装置に保持するファイルに関する操作を実行可能であるとともに、当該操作に関する情報を含むプロセス操作ログを通信ネットワークを介して提供可能なファイル操作装置と、
前記通信ネットワークを介して、前記アクセスログを前記ファイル提供装置から取得し、前記プロセス操作ログを前記ファイル操作装置から取得するログ取得部と、
前記アクセスログ及び前記プロセス操作ログから、前記ファイル提供装置において提供された前記操作対象ファイルを操作した前記プロセスである操作プロセスを特定し、前記操作対象ファイルに対して実行された操作の種類に応じて、前記操作対象ファイルの原本ファイルに対して実行され得る操作である派生元操作に関するログのうち、特定の条件を満たすログを、前記プロセス操作ログから抽出し、抽出した前記派生元操作に関するログに記録されたファイルを、前記操作対象ファイルに対する原本ファイルとして特定する解析部と、を有する、
履歴解析装置と、を備える
履歴解析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの派生関係を解析可能な履歴解析装置等に関する。
【背景技術】
【０００２】
近年、ファイルサーバにおける記憶容量（ストレージサイズ）の増大に伴い、ファイルサーバにおいて扱われるデータ量が増大している。また、ファイルサーバに登録されたファイルを複数人数で参照、編集する機会が増えている。
【０００３】
ファイルサーバに保存されたファイルは、複数人からアクセスされることから、改変されたファイル（派生先ファイルと記載する場合がある）が作成されることも多い。例えば、ファイルサーバのファイルがクライアント側で改変された場合等、ファイルサーバにおいて入手可能な情報だけでは、ファイル間の派生関係を特定することが困難な場合がある。このため、ファイル間の派生関係を確認可能な技術が求められている。上記に関連して、以下のような特許文献が知られている。
【０００４】
特許文献１は、クライアント端末におけるファイルの操作ログと、サーバ装置に対するアクセスログとを用いて、あるファイルに関する操作ログに対応するアクセスログを抽出する技術を開示する。
【０００５】
特許文献２は、クライアント端末の操作ログ情報と、ファイルの関係性を示すファイル関係性情報とを用いて、ある指定されたファイルの利用状況を判定する技術を開示する。
特許文献３は、ある基準ファイルに関する操作を監視し、当該基準ファイルに対する操作イベントに基づいて、当該基準ファイルに基づいて生成された派生先ファイルを検出する技術を開示する。
【０００６】
特許文献４は、データベースを用いてファイルに対する操作履歴を管理する記述を開示する。特許文献４に開示された技術は、ファイル操作の追跡要求に適合する操作情報をデータベースから検索し、その結果を一覧可能に表示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−１５３７４２号公報
【特許文献２】特開２００９−１７６１１９号公報
【特許文献３】特開２００９−０１５６５９号公報
【特許文献４】特開２００８−０５２５７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ファイルサーバ等のデータを提供可能なサーバ（データ提供サーバ）に配置されたデータ（ファイル等）から派生されたデータ（以下、「派生先データ」と記載する場合がある）を追跡する場合、データ提供サーバのアクセスログを用いることが考えられる。しかしながら、アクセスログには、データの読み込み、書き込み程度の情報しか記載されないことがある。この場合、データ提供サーバ内で完結しないデータに関する操作（例えば、サーバの外部における編集やコピーなど）により作成された派生先データを特定するのが困難である。
【０００９】
具体例として、データの編集場所、配置場所がデータ提供サーバとクライアント装置との双方にわたる場合を想定する。この場合、データ提供サーバ又はクライアント装置側のアクセスログには、派生元のデータ（以下、「派生元データ」又は「原本データ」と記載する場合がある）と派生先データとを直接関連付ける情報が残らないことがあり、データ間の派生関係を追跡することが困難になり得る。
【００１０】
これに対して、上記特許文献１乃至特許文献４に開示された技術は、アプリケーションの操作ログあるいは操作イベント等から、派生元ファイルと、そこから派生された派生先ファイルとを直接的に特定可能であることを前提としている。しかしながら、上記したように、現実のシステムにおいては、派生元ファイルと、派生先ファイルとを直接的に関連付けるようなログを取得可能であるとは限らない。例えば、ファイルを操作するアプリケーションから、上記のような操作ログを取得できない場合、上記各特許文献に記載された技術では、ファイル間の派生関係を適切に追跡することが困難であると考えられる。
【００１１】
本発明は、上記のような事情を鑑みてなされたものである。即ち、本発明は、異なる装置に配置されたデータに関するログに基づいて、それらのデータに関する派生関係を特定可能な履歴解析装置等を提供することを、主たる目的の一つとする。
【課題を解決するための手段】
【００１２】
上記の目的を達成すべく、本発明の一態様に係る履歴解析装置は、ファイル提供装置において提供されるファイルに対するファイル操作装置からのアクセスに関する情報を含むアクセスログと、前記ファイル提供装置又は前記ファイル操作装置に配置されたファイルに対して、前記ファイル操作装置におけるプロセスにより実行された操作に関する情報を含むプロセス操作ログと、を取得するログ取得部と、上記アクセスログ及び上記プロセス操作ログから、上記ファイル提供装置において提供された操作対象ファイルを操作した上記プロセスである操作プロセスを特定し、上記操作対象ファイルに対して実行された操作の種類に応じて、上記操作対象ファイルの原本ファイルに対して実行され得る操作である派生元操作に関するログのうち、特定の条件を満たすログを、上記プロセス操作ログから抽出し、抽出した上記派生元操作に関するログに記録されたファイルを、上記操作対象ファイルに対する原本ファイルとして特定する解析部と、を備える。
【００１３】
また、本発明の一態様に係る履歴解析方法は、ファイル提供装置において提供されるファイルに対するファイル操作装置からのアクセスに関する情報を含むアクセスログと、前記ファイル提供装置又は前記ファイル操作装置に配置されたファイルに対して、前記ファイル操作装置におけるプロセスにより実行された操作に関する情報を含むプロセス操作ログと、を取得し、上記アクセスログ及び上記プロセス操作ログから、上記ファイル提供装置において提供された操作対象ファイルを操作した上記プロセスである操作プロセスを特定し、上記操作対象ファイルに対して実行された操作の種類に応じて、上記操作対象ファイルの原本ファイルに対して実行され得る操作である派生元操作に関するログのうち、特定の条件を満たすログを上記プロセス操作ログから抽出し、抽出した上記派生操作に関するログに記録された上記派生元操作が実行されたファイルを、上記操作対象ファイルに対する原本ファイルとして特定する。
【００１４】
また、本発明の一態様に係る履歴解析システムは、操作対象ファイルと、当該操作対象ファイルに対するアクセスに関する情報を含むアクセスログと、を通信ネットワークを介して提供可能なファイル提供装置と、自装置において、あるプロセスを実行することにより上記操作対象ファイル及び自装置に保持するファイルに関する操作を実行可能であるとともに、当該操作に関する情報を含むプロセス操作ログを通信ネットワークを介して提供可能なファイル操作装置と、上記通信ネットワークを介して、上記アクセスログを上記ファイル提供装置から取得し、上記プロセス操作ログを上記ファイル操作装置から取得するログ取得部と、上記アクセスログ及び上記プロセス操作ログから、上記ファイル提供装置において提供された操作対象ファイルを操作した上記プロセスである操作プロセスを特定し、上記操作対象ファイルに対して実行された操作の種類に応じて、上記操作対象ファイルの原本ファイルに対して実行され得る操作である派生元操作に関するログのうち、特定の条件を満たすログを、上記プロセス操作ログから抽出し、抽出した上記派生元操作に関するログに記録されたファイルを、上記操作対象ファイルに対する原本ファイルとして特定する解析部と、を有する、履歴解析装置と、を備える。
【００１５】
また、同目的は、上記構成を有する履歴解析装置、履歴解析方法をコンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み込み可能な記録媒体等によっても達成される。
【発明の効果】
【００１６】
本発明によれば、異なる装置に配置されたデータに関するログに基づいて、それらのデータに関する派生関係を特定できる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本開示の第１の実施形態に係る履歴解析装置を含むシステムの機能的な構成を例示するブロック図である。
【図２】図２は、サーバアクセスログの具体例を示す説明図である。
【図３】図３は、ファイルアクセスログの具体例を示す説明図である。
【図４】図４は、ディスク操作ログの具体例を示す説明図である。
【図５】図５は、ネットワーク操作ログの具体例を示す説明図である。
【図６Ａ】図６Ａは、プロセス状態情報の具体例を示す説明図である。
【図６Ｂ】図６Ｂは、プロセス状態情報の他の具体例を示す説明図である。
【図７Ａ】図７Ａは、ネットワーク状態情報の具体例を示す説明図である。
【図７Ｂ】図７Ｂは、ネットワーク状態情報の他の具体例を示す説明図である。
【図８】図８は、操作履歴情報の具体例を示す説明図である。
【図９】図９は、アプリケーション情報の具体例を示す説明図である。
【図１０】図１０は、ファイルを操作したアプリケーションに関する情報を抽出する処理手順を例示するフローチャートである。
【図１１】図１１は、アプリケーションによる操作履歴を特定する処理手順を例示するフローチャートである。
【図１２】図１２は、アプリケーションによる操作履歴（編集、新規作成）及び原本ファイルを特定する処理手順を例示するフローチャートである。
【図１３】図１３は、アプリケーションによる操作履歴（コピー、移動）及び原本ファイルを特定する処理手順を例示するフローチャートである。
【図１４】図１４は、アプリケーションによる操作履歴（ダウンロード）及び原本ファイルを特定する処理手順を例示するフローチャートである。
【図１５】図１５は、本開示の第１の実施形態の第２の変形例に係る履歴解析装置を含むシステムの機能的な構成を例示するブロック図である。
【図１６】図１６は、ファイルを操作したアプリケーションに関する情報を抽出する他の処理手順を例示するフローチャートである。
【図１７】図１７は、本開示の第１の実施形態の第３の変形例に係る履歴解析装置を含むシステムの機能的な構成を例示するブロック図である。
【図１８】図１８は、Ｒｅａｄ操作ログの具体例を示す説明図である。
【図１９】図１９は、Ｗｒｉｔｅ操作ログの具体例を示す説明図である。
【図２０】図２０は、ファイルリストの具体例を示す説明図である。
【図２１Ａ】図２１Ａは、類似度を用いてファイル間の派生関係を特定する処理を例示するフローチャート（その１）である。
【図２１Ｂ】図２１Ｂは、類似度を用いてファイル間の派生関係を特定する処理を例示するフローチャート（その２）である。
【図２２Ａ】本開示の第２の実施形態に係る履歴解析装置の機能的な構成を例示するブロック図である。
【図２２Ｂ】本開示の第２の実施形態に係る履歴解析装置の、他の機能的な構成を例示するブロック図である。
【図２３】図２３は、本開示の各実施形態における履歴解析装置の構成要素を実現可能なハードウェア装置の構成を例示する図面である。
【発明を実施するための形態】
【００１８】
本発明の実施形態に関する説明に先立って、本発明に関する技術的な検討事項等についてより詳細に説明する。
【００１９】
近年、企業においては、情報共有等を目的とし、文書等の各種データ（例えば、ファイル）をデータ提供サーバ（例えば、ファイルサーバ）に配置している場合が多い。以下、説明の便宜上、係るデータが「ファイル」により提供されることを想定する。なお、本開示はこれには限定されず、係るデータはファイル以外の適切な形式により提供されてもよい。
【００２０】
例えば、ユーザ等が、ファイルを編集して更新した後に、係るファイルを別名保存する場合等、元データ（原本ファイル）に基づいて派生先ファイルが生成される場合がある。ファイルサーバに配置された派生先ファイルから元データを追跡する場合、ファイルサーバにおいて完結しない操作が実行されると、元データを追跡することが困難になる場合がある。
【００２１】
ファイルサーバにおいてファイルを共有する場合、例えば、ファイルサーバに配置されたファイルを直接編集せず、当該ファイルを一時的にユーザのクライアント装置（例えば、コンピュータ等）に転送してから編集し、別ファイルとしてファイルサーバに配置し直すことが考えられる。このように、例えば、ファイルの編集、格納等の操作がファイルサーバとクライアント装置との双方に亘って行われる場合を想定する。この場合、ファイルサーバ側とクライアント装置側とのそれぞれのアクセスログ情報を照らし合わせることで、それらのファイルに対して実行された一部の操作（例えばコピーなど）が確認され得る。しかしながら、上記したように、アクセスログに残らない情報（例えば、ファイル編集やネットワークからのダウンロードなど）に関しては、追跡するのが困難な場合がある。
【００２２】
またファイルを操作するアプリケーションによっては、当該アプリケーションに関する操作ログを取得することが困難な場合がある。また、ファイルを操作可能なアプリケーションについて、詳細な操作ログを提供するように改造すること、あるいは当該アプリケーション自体を他のアプリケーションに入れ替えることも、容易ではない場合がある。
【００２３】
上記を鑑みて、本開示に係る技術は、派生元ファイルと、派生先ファイルとが異なる装置（例えばファイルサーバとクライアント端末等）において配置、操作され得る状況において、それぞれの装置から取得可能なログ等を用いて、それらのファイル間の派生関係を推定する。例えば、ある派生先ファイルに対して過去に実行されたファイル操作の履歴を追跡することにより、当該派生先ファイルに対する派生元ファイルを推定することが考えられる。また、例えば、ある派生元ファイルから、当該ファイルに実行されたファイル操作の履歴を追跡することで、当該派生元ファイルに対する派生先ファイルを推定することが考えられる。
【００２４】
以下、各実施形態を用いて説明する本開示に係る技術は、ファイル操作が、コピー（移動）、削除、新規作成、変更（同一ファイル更新、別名保存）等に分類されることに着目する。本開示に係る技術は、例えば、ファイルサーバを利用する各クライアント装置から取得した、アプリケーションに関する情報、ファイルのアクセスログ、記憶装置又はネットワークの入出力情報、及びプロセスの実行状態に関する情報等を利用して、アプリケーションによるファイル操作を推定する。また、本開示に係る技術は、ファイルサーバのアクセスログと、クライアント端末のアクセスログ、及び上記推定したファイル操作を利用することで、ファイルの変更履歴を作成可能である。本開示に係る技術は、例えば、係る操作を再帰的に繰り返すことで、ある派生先ファイルに関する原本ファイル（派生元ファイル）を特定し、当該ファイルに関する操作履歴をたどることを可能にする。また、本開示に係る技術は、例えば、あるファイルに対する更新情報を時系列にたどることにより、当該ファイルに関する操作により生成された派生先ファイルを特定する。本開示に係る技術は、例えば、アプリケーションの操作ログ等から、派生元ファイルと派生先ファイルとの間の直接的な関係が得られない場合であっても、ファイル間の派生関係を推定可能である。これにより、本開示に係る技術は、ファイルに関する変更履歴を階層的に表現できる。
【００２５】
以下、本開示に係る技術を実現可能な履歴解析装置等について、各実施形態を用いて説明する。以下において説明する履歴解析装置は、単体の装置（物理的あるいは仮想的な装置）を用いて構成されてもよく、複数の離間した装置（物理的あるいは仮想的な装置）を用いて実現されてもよい。履歴解析装置が複数の装置により構成される場合、各装置の間は有線、無線、又はそれらを適切に組合せた通信ネットワーク（通信回線）により通信可能に接続されてもよい。係る通信ネットワークは、物理的な通信ネットワークであってもよく、仮想的な通信ネットワークであってもよい。以下において説明する履歴解析装置、あるいは、その構成要素を実現可能なハードウェア構成については、後述する。
【００２６】
＜第１の実施形態＞
本開示に関する第１の実施形態の構成について図面を参照して詳細に説明する。
【００２７】
［構成］
図１は、本実施形態に係る履歴解析装置３００を含む、システムの構成を含む説明図である。
【００２８】
図１に例示するシステムは、ファイルサーバ１００、クライアント２００、履歴解析装置３００、ネットワーク４００から構成される。
【００２９】
ファイルサーバ１００は、ネットワーク４００を介して各種データ（ファイル）を提供可能なデータ提供装置である。ファイルサーバ１００は、共有記憶装置１１０と、サーバアクセスログ１２０とを少なくとも有する。ファイルサーバ１００は、例えば、コンピュータ等の情報処理装置により実現されてよい。ファイルサーバ１００は、例えば、物理的な装置により実現されてもよく、周知の仮想化基盤を用いた仮想マシンにより実現されてもよい。
【００３０】
ファイルサーバ１００は、共有記憶装置１１０に配置されたファイルを、１以上のクライアント２００に対して提供可能である。ファイルサーバ１００は、例えば、周知技術を含む適切な技術を用いて、ファイルの共有を実現してもよい。ファイルサーバ１００は、一例として、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＳＭＢ（Ｓｅｒｖｅｒ  Ｍｅｓｓａｇｅ  Ｂｌｏｃｋ  ）を用いて、ファイルの共有を実現してもよい。後述するライアント２００（具体的には、クライアント２００において実行されるアプリケーション）は、例えば、上記技術を用いて、ファイルサーバ１００において提供されるファイルにアクセス可能である。
【００３１】
共有記憶装置１１０は、ファイルを保持し、当該ファイルに関する１以上のクライアント２００からの読み込み・書き込み・削除などのファイル操作を処理することが可能な記憶装置である。共有記憶装置１１０は、例えば、ハードディスクや半導体記憶装置等の物理的なストレージデバイスを用いて実現されてもよい。また、共有記憶装置１１０は、周知の仮想化基盤を用いた仮想ストレージを用いて実現されてもよい。
【００３２】
サーバアクセスログ１２０は、共有記憶装置１１０に保持されたファイルに対する操作（ファイル操作）の記録（ログ）である。サーバアクセスログ１２０には、クライアント２００により実行された、ファイル操作が記録されてもよい。サーバアクセスログ１２０には、例えば図２に例示するように、あるファイルに関する「アクセス時間（１２０ａ）、アクセス元（１２０ｂ）、ファイル名（１２０ｃ）、ファイル操作（１２０ｄ）、サイズ（１２０ｄ）」の各要素が時系列順に複数記録されてよい。サーバアクセスログ１２０は、例えば、図２に例示するような形式で、ファイル操作に関する記録を保持してもよいが、これには限定されない。
【００３３】
アクセス時間１２０ａは、共有記憶装置１１０に保持されたファイルに対する操作が実行された時間を表す。ファイルに対する操作が実行された時間は、当該操作によりファイルがアクセスされた時間であってもよい。
【００３４】
アクセス元１２０ｂは、当該ファイルにアクセスしたクライアント２００を特定可能な情報を表す。アクセス元１２０ｂは、例えば、クライアント２００を識別可能な名称（例えばコンピュータ名等）を表す情報、あるいは、ネットワークアドレスを表す情報であってもよい。
【００３５】
ファイル名１２０ｃは、操作されたファイルを特定可能な情報を表す。ファイル名１２０ｃは、データが保存されたファイルを特定可能な名称を表す情報であってもよい。係るファイル名１２０ｃは、例えば、ファイルサーバにおいて提供されるファイルのパス（共有パス）を表す情報であってもよい。
【００３６】
サーバアクセスログ１２０に記録されるファイル名１２０ｃと、ファイルアクセスログ２３０（後述）に記載されるファイル名２３０ｂとは、例えば、同じパス名（ファイルサーバの共有パスのパス名等）で記載され、それらの間の同一性を確認可能である。例えば、ファイルサーバ１００における特定のファイルにクライアント２００がアクセスした場合、サーバアクセスログ１２０と、ファイルアクセスログ２３０とに対して、当該ファイルを表す同じパス名が記録されてもよい。例えば、ファイルサーバ１００、クライアント２００がＯＳとしてＷｉｎｄｏｗｓ（登録商標）を採用している場合、係るパス名は、コンピュータ名及び共有名等を含む完全パスの形式により表されてもよい。
【００３７】
ファイル操作１２０ｄは、ファイルに対して実行された操作を表す。係るファイル操作１２０ｄは、例えば、「Ｒｅａｄ（読み込み）、Ｗｒｉｔｅ（書き込み）、Ｄｅｌｅｔｅ（削除）、Ｒｅｎａｍｅ（リネーム、名称変更）」のいずれかであってよい。サーバアクセスログ１２０には、上記以外の操作が記録されてもよい。
【００３８】
サイズ１２０ｅは、何からの操作が実行されたファイルのサイズを表す。
【００３９】
クライアント２００は、ファイルを操作するアプリケーションを実行することが可能な装置である。クライアント２００は、記憶装置２１０、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２２０を備える。クライアント２００は、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のコンピュータであってもよく、通信機能を有するその他の情報処理装置であってもよい。クライアント２００は、物理的な装置により実現されてもよく、周知の仮想化基盤を用いた仮想マシンにより実現されてもよい。係るクライアント２００は、通信ネットワークを介してファイルサーバ１００、履歴解析装置３００と通信可能に接続される。なお、ファイルサーバ１００に対して、複数のクライアント２００が接続されてよい。
【００４０】
クライアント２００は、ファイルアクセスログ２３０、ディスク操作ログ２４０、ネットワーク操作ログ２５０、プロセス状態情報２６０、ネットワーク状態情報２７０を有する。なお、これらのログ等のデータは、記憶装置２１０に保持されてもよい。
【００４１】
クライアント２００（具体的にはクライアント２００において実行されるアプリケーション）は、ファイルサーバ１００において提供されるファイルにアクセス可能である。また、クライアント２００は、自装置に保持する記憶装置２１０（後述）に配置されたファイルにアクセス可能である。
【００４２】
記憶装置２１０は、ファイルの記憶（保管）、読み込み、書き込み、削除などのファイル操作を処理可能である。具体的には、記憶装置２１０は、ＣＰＵ２２０により実行されたアプリケーションによる、ファイル操作を処理可能である。記憶装置２１０は、例えば、ハードディスクや半導体記憶装置等の物理的なストレージデバイスを用いて実現されてもよい。また、クラインと２００が仮想マシンとして実現された場合、記憶装置２１０は仮想ストレージとして実現されてもよい。
【００４３】
ＣＰＵ２２０は、クライアント２００におけるアプリケーション実行処理を行う処理デバイスである。ＣＰＵ２２０は、汎用のマイクロプロセッサ等により実現されてもよい。あるアプリケーションがクライアント２００において実行された場合、ＣＰＵ２２０は、当該アプリケーションに関するプロセスを実行する。
【００４４】
ファイルアクセスログ２３０は、例えば、クライアント２００によりファイルサーバにおける共有記憶装置１１０に対して実行されたファイル操作に関する記録（データ）を保持する。ファイルアクセスログ２３０には、例えば、図３に例示するような形式で、「アクセス時間（２３０ａ）、ファイル名（２３０ｂ）、ファイル操作（２３０ｃ）、サイズ（２３０ｄ）」の各要素が時系列順に複数記録されてよい。
【００４５】
アクセス時間２３０ａは、上記アクセス時間１２０ａと同様、共有記憶装置１１０に保持されたファイルに対する操作が実行された時間を表す。ファイルに対する操作が実行された時間は、当該操作によりファイルがアクセスされた時間であってもよい。
【００４６】
ファイル名２３０ｂは、上記ファイル名１２０ｃと同様、ファイルを特定可能な情報を保持してよい。ファイル名２３０ｂは、データが保存されたファイルを特定可能な名称を表す情報であってもよい。
【００４７】
ファイル操作２３０ｃは、ファイルに対して実行された操作を表す。ファイル操作２３０ｃには、上記ファイル操作１２０ｄと同様、「Ｒｅａｄ（読み込み）、Ｗｒｉｔｅ（書き込み）、Ｄｅｌｅｔｅ（削除）、Ｒｅｎａｍｅ（名称変更）」のいずれかが記録されてよい。ファイルアクセスログ２３０のファイル操作には、上記以外の操作が記録されてもよい。
【００４８】
サイズ２３０ｄは、操作されたファイルのサイズを表す。
【００４９】
ディスク操作ログ２４０は、クライアント２００が、記憶装置２１０に対して行ったディスクアクセス操作が記録されたデータを保持する。より具体的には、ディスク操作ログ２４０には、例えばアプリケーションが、記憶装置２１０に対して実行したファイルアクセスに関する操作が記録されてよい。ディスク操作ログ２４０には、例えば、図４に例示するような形式で、「アクセス時間２４０ａ、プロセスＩＤ２４０ｂ、ファイル名２４０ｃ、ファイル操作２４０ｄ、サイズ２４０ｅ」の各要素が時系列順に複数記録されてよい。
【００５０】
アクセス時間２４０ａは、ディスク操作が発生した時間を表す。ディスク操作が発生した時間は、当該ディスク操作によりファイルがアクセスされた時間であってもよい。
【００５１】
プロセスＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）２４０ｂは、ディスクアクセスを実行したプロセスを識別可能な情報（識別子）を表す。
【００５２】
ファイル名２４０ｃは、上記ファイル名１２０ｃ、ファイル名２３０ｂ等と同様、ファイルを特定可能な情報を保持してよい。即ち、ファイル名２４０ｃは、データが保存されたファイルを特定可能なファイル名（パス名）等を表す情報であってもよい。
【００５３】
ファイル操作２４０ｄには、上記ファイル操作１２０ｄ、２３０ｃと同様の情報が記録されてもよい。
【００５４】
サイズ２４０ｅには、上記サイズ１２０ｅ、サイズ２３０ｄと同様、ファイルのサイズが記録されてよい。
【００５５】
ネットワーク操作ログ２５０は、クライアント２００が、ネットワーク４００を介して他のネットワーク４１０との間でデータを送受信した際のネットワーク操作が記録されたデータを保持する。ネットワーク操作ログ２５０には、例えば、図５に例示するような形式で、「アクセス時間２５０ａ、アクセス元ポート番号２５０ｂ、送受信方向２５０ｃ、アクセス先ホスト２５０ｄ、アクセスポート番号２５０ｅ、サイズ２５０ｆ」の各要素が時系列順に複数記載されてよい。
【００５６】
アクセス時間２５０ａは、ネットワーク操作が実行された時間を表す。
【００５７】
アクセス元ポート番号２５０ｂは、ネットワーク操作を行った際のクライアント２００におけるポート番号を表す。
【００５８】
送受信方向２５０ｃは、ネットワーク操作の種類を表す。具体的には、送受信方向２５０ｃは、ネットワーク操作が送信（Ｕｐｌｏａｄ）であるか、受信（Ｄｏｗｎｌｏａｄ）であるかを表してもよい。
【００５９】
アクセス先ホスト２５０ｄは、クライアント２００において実行されたネットワーク操作のアクセス先を識別可能な情報を表す。アクセス先ホスト２５０ｄは、例えば、アクセス先ホストを識別可能な名称（ホスト名等）であってもよく、アクセス先ホストのネットワークアドレスであってもよい。
【００６０】
アクセス先ポート番号２５０ｅは、クライアント２００において実行されたネットワーク操作により接続される、アクセス先ホストのポート番号を表す。
【００６１】
サイズ２５０ｆは、クライアント２００において実行されたネットワーク操作により送信又は受信されたデータのサイズを表す。
【００６２】
プロセス状態情報２６０は、ＣＰＵ２２０において処理される１以上のプロセスの状態が時系列に記録されたデータ（プロセス状態）を保持する。プロセス状態情報２６０には、例えば、ある規定された時間ごと（例えば、一定時間ごと）のプロセスの状態が記録されてよい。プロセス状態情報２６０には、例えば、図６Ａに例示するような形式で「プロセスＩＤ（２６０ａ）、プロセス名（２６０ｂ）、実行ユーザ（２６０ｃ）」の各要素が記録される。なお、プロセス状態情報２６０には、例えば、図６Ｂに例示するような形式で、あるプロセス状態が記録された時間を表す時刻情報２６０ｄが記録されてもよい。
【００６３】
プロセスＩＤ２６０ａは、クライアント２００において実行されたプロセスを識別可能な情報（識別子）を表す。
【００６４】
プロセス名２６０ｂは、プロセスＩＤ２６０ａにより識別されるプロセスの名称を表す。プロセス名２６０ｂは、例えば、クライアント２００で実行されたアプリケーションの名称を表してもよい。
【００６５】
実行ユーザ２６０ｃは、クライアント２００においてプロセスを実行したユーザを表す。
【００６６】
ネットワーク状態情報２７０は、クライアント２００において使用されている、ネットワークのポート番号の利用状況が時系列に記録されたデータを保持する。ネットワーク状態情報２７０には、例えば、ある既定された時間ごと（例えば、一定時間ごと）に、使用されているネットワークのポート番号が記録されてよい。ネットワーク状態情報２７０には、例えば、図７Ａに例示するような形式で、ポート番号（２７０ａ）と、プロセスＩＤ（２７０ｂ）との各要素が記載される。なお、ネットワーク状態情報２７０には、例えば、図７Ｂに例示するような形式で、あるポート番号の利用状況が記録された時間を表す時刻情報（２７０ｃ）が記録されてもよい。
【００６７】
ポート番号２７０ａは、クライアント２００において使用されているネットワークのポート番号を表す。
【００６８】
プロセスＩＤ２７０ｂは、ポート番号２７０ａのポートを使用しているプロセスのプロセスＩＤを表す。
【００６９】
履歴解析装置３００は、ログ取得部３１０と、解析部３４０とを備える。履歴解析装置３００は、操作履歴情報３２０と、アプリケーション情報３３０とを有してもよい。履歴解析装置３００は、コンピュータ等の情報処理装置により実現され得る。履歴解析装置３００は、例えば、物理的な装置により実現されてもよく、周知の仮想化基盤を用いた仮想マシンにより実現されてもよい。係る履歴解析装置３００は、ネットワーク４００を介してファイルサーバ１００、クライアント２００と通信可能に接続される。
【００７０】
ログ取得部３１０は、ファイルサーバ１００及びクライアント２００から、ネットワーク４００を介して各種ログ情報を取得し、操作履歴情報３２０を生成する機能を有する。係る各種ログ情報には、例えば、サーバアクセスログ１２０、ファイルアクセスログ２３０、ディスク操作ログ２４０、ネットワーク操作ログ２５０、プロセス状態情報２６０、ネットワーク状態情報２７０等が含まれてよい。
【００７１】
操作履歴情報３２０は、ファイルサーバ１００又はクライアント２００において、あるファイルに対して実行された操作履歴をデータとして保持する。操作履歴情報３２０には、具体的には、あるファイルに関する操作履歴を解析部３４０が解析した解析結果が記録される。操作履歴情報３２０には、例えば、図８に例示するような形式で、「操作時間（３２０ａ）、ファイル名（３２０ｂ）、ユーザ操作（３２０ｃ）、操作元ホスト（３２０ｄ）、操作元ファイル（３２０ｅ）、操作ユーザ（３２０ｆ）」の各要素が記録されてよい。
【００７２】
操作時間３２０ａは、あるファイルに対する操作が実行された時間を表す。係る操作時間３２０ａは、当該ファイルに対してアクセスされた時間であってもよい。
【００７３】
ファイル名３２０ｂは、操作が実行されたファイルを特定可能な情報（例えば、ファイルの名、パス名等）を表す。
【００７４】
ユーザ操作３２０ｃは、ファイルに対して実行された操作を表す。ユーザ操作３２０ｃには、例えば、「コピー、新規作成、編集、派生、削除、移動、リネーム」のいずれかが記録されてよい。ユーザ操作３２０ｃには、上記以外の操作が記録されてもよい。
【００７５】
操作元ホスト３２０ｄは、ファイルの操作が実行されたクライアント２００を特定可能な除法を表す。
【００７６】
操作元ファイル３２０ｅは、あるファイルの原本ファイル（派生元ファイル）を特定可能な情報（例えば、ファイル名、パス名等）を表す。
【００７７】
操作ユーザ３２０ｆは、例えば、ファイルを操作したユーザを特定可能な情報（例えば、ユーザ名等）を表す。
【００７８】
アプリケーション情報３３０は、アプリケーションに関する情報（例えば、アプリケーションで使用できる拡張子及び操作に関する情報）をデータとして保持する。アプリケーション情報３３０には、例えば、図９に例示するように、アプリケーションに関する「アプリケーション名（３３０ａ）、拡張子（３３０ｂ）、可能操作（３３０ｃ）、ポート番号（３３０ｄ）」を表す情報が記録されてよい。アプリケーション情報３３０は、ユーザ等によって予め登録されていてもよい。
【００７９】
アプリケーション名３３０ａは、アプリケーションの名称を表す。
【００８０】
拡張子３３０ｂは、例えば、アプリケーションが扱えるファイルの拡張子（アプリケーションに関連付けされたファイルの拡張子）を表す。
【００８１】
可能操作３３０ｃは、アプリケーションが実行可能なファイル操作の種類を表す。可能操作３３０ｃには、例えば、「Ｅｄｉｔ（編集）、Ｃｏｐｙ（コピー：複製）、Ｄｏｗｎｌｏａｄ（ダウンロード）、Ｕｐｌｏａｄ（アップロード）」のいずれかが記載されてよい。可能操作３３０ｃには、上記以外の操作が記録されてもよい。
【００８２】
ポート番号３３０ｄは、アプリケーションがネットワーク通信の際に使用するポート番号を表す。
【００８３】
解析部３４０は、ログ取得部３１０において取得した各種ログ情報、操作履歴情報３２０、及び、アプリケーション情報３３０から、ファイルサーバに配置されたあるファイル（「対象ファイル」と記載する場合がある）の派生元であるファイル（「原本ファイル」と記載する場合がある）と、当該対象ファイルに関する操作履歴とを推定する。解析部３４０の具体的な処理について後述する。
【００８４】
ネットワーク４００は、ファイルサーバ１００と、１以上のクライアント２００と、履歴解析装置３００とを通信可能に接続し、これらの間においてファイルを転送可能とする通信ネットワークである。ネットワーク４００は、他のネットワーク４１０に接続可能であり、他のネットワーク４１０との間で、例えば、Ｗｅｂ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）や電子メールなど用いて、情報（データ）を送受信することができる。係るネットワーク４００は、有線通信、無線通信、あるいはそれらの適切な組合せにより実現されてもよい。係るネットワーク４００は、周知の仮想化基盤を用いた仮想ネットワークとして実現されてもよい。
【００８５】
ネットワーク４００は、他のネットワーク４１０（通信ネットワーク）と通信可能に接続されていてもよい。他のネットワーク４１０は、有線通信、無線通信、あるいはそれらの適切な組合せにより実現されてもよく、周知の仮想化基盤を用いた仮想ネットワークとして実現されてもよい。
【００８６】
なお、上記説明したサーバアクセスログ１２０及びファイルアクセスログ２３０には、共通の時間情報（時刻情報）が記録されることを想定する。このため、ファイルサーバ１００の時間情報と、各クライアント２００の時間情報とは、同期されていてよい。なお、これらの時間情報を厳密に同期することが困難な場合には、例えば、アクセス時間とサイズとを比較することにより、サーバアクセスログ１２０とファイルアクセスログ２３０とにおけるアクセス時間と、ファイル名とについて、同一性を確保できることを想定する。例えば、履歴解析装置３００（特には解析部３４０）は、サーバアクセスログ１２０に記録された特定のログと、ファイルアクセスログ２３０に記録された特定のログとが、同一のファイルについて実行された操作に関するログであるか否かを、以下のような方法で判定してよい。即ち、履歴解析装置３００は、それら２つのログに記録されたアクセス時間の差異と、サイズの差異との少なくとも一方が、規定値より小さい場合、それらのログは同一のファイルについて実行された操作に関するログであると判定してよい。
【００８７】
［動作］
以下、本実施形態における履歴解析装置３００の動作について図面を参照して説明する。具体的には、ファイルサーバ１００の共有記憶装置１１０に保持されている対象ファイル５０１に対する原本ファイル５４１と、対象ファイル５０１に関する操作履歴とを推定する処理について、説明する。対象ファイル５０１は、履歴解析の対象となるファイルである。原本ファイル５４１は、対象ファイル５０１の原本（派生元）のファイルである。
【００８８】
一般的に、原本ファイル（派生元）から読み込まれたデータに対して、編集、コピー、別名保存等が実行されることで、派生先ファイルが作成されると考えられる。換言すると、対象ファイル５０１に対する書き込み（Ｗｒｉｔｅ）操作が実行される前に、原本ファイル５４１から読み込み操作（ｒｅａｄ）が実行されていると考えられる。履歴解析装置３００（解析部３４０）は、対象ファイル５０１に関する書き込み(Ｗｒｉｔｅ）操作の前に実行された、ある特定の条件を満たす読み込み（Ｒｅａｄ）操作を特定する。そして、当該Ｒｅａｄ操作が実行されたファイルを、対象ファイル５０１に関する原本ファイル５４１と推定する。以下、派生元ファイルに対して実行された操作を、派生元操作と記載する場合がある。
【００８９】
履歴解析装置３００は、ログ取得部３１０を使用して、ファイルサーバ１００より、サーバアクセスログ１２０を取得する。また、履歴解析装置３００は、１以上のクライアント２００より、ファイルアクセスログ２３０、ディスク操作ログ２４０、ネットワーク操作ログ２５０、プロセス状態情報２６０、ネットワーク状態情報２７０の各ログを取得する（図１０のステップＳ１００１）。
【００９０】
解析部３４０は、サーバアクセスログ１２０から、対象ファイル５０１の操作が記載されているログを抽出して時系列順に並べる。解析部３４０は並べたログからＷｒｉｔｅ操作に関するログを抽出することにより、対象ファイル５０１に対するＷｒｉｔｅ操作に該当する第１アクセスログリスト５０２を抽出する（ステップＳ１００２）。
【００９１】
解析部３４０は、第１アクセスログリスト５０２の中で最も古いアクセス時間の第１アクセスログ５０３を抽出する（ステップＳ１００３）。解析部３４０は、上記に限定されず、例えば、最も古いアクセス時間からある基準時間の範囲内のログを、第１アクセスログ５０３として抽出してもよい。
【００９２】
解析部３４０は、第１アクセスログ５０３に記録された「アクセス元（図２の１２０ｂ）」を参照する。解析部３４０は、当該アクセス元１２０ｂに該当するクライアント２００のファイルアクセスログ２３０を取得する（ステップＳ１００４）。
【００９３】
解析部３４０は、取得したファイルアクセスログ２３０から、対象ファイル５０１と同一のファイル名を含むログのリストを選択して時系列順に並べる。これにより、解析部３４０は、ファイルアクセスログリスト５１１を作成する（ステップＳ１００５）。
【００９４】
解析部３４０は、ファイルアクセスログリスト５１１から、アクセス時間２３０ａ及びファイル操作２３０ｃが、それぞれ、サーバアクセスログ１２０に記録されたアクセス時間１２０ａ及びファイル操作１２０ｄと合致するログを取得する（ステップＳ１００６）。以下、当該取得したログを、以下書き込みログ５１２と記載する。
【００９５】
なお、ファイルアクセスログ２３０と、ディスク操作ログ２４０とに、同様のデータが記録されている場合には、上記ステップＳ１００４乃至ステップＳ１００５において、ファイルアクセスログ２３０を用いずに、ディスク操作ログ２４０を用いてもよい。
【００９６】
解析部３４０は、ディスク操作ログ２４０から、書き込みログ５１２とアクセス時刻が一致するログを選択する。解析部３４０は、選択したログの内、プロセスＩＤ２４０ｂに記録されたデータを取得する（ステップＳ１００７）。以下、プロセスＩＤ２４０ｂのデータを、プロセスＩＤ５２１（操作プロセスＩＤ）と記載する。係るプロセスＩＤ５２１に該当するプロセスが、対象ファイルに対するＷｒｉｔｅ操作を実行したアプリケーションのプロセスである。
【００９７】
解析部３４０は、クライアント２００から取得したプロセス状態情報２６０の中から、プロセスＩＤ５２１と同一のプロセスＩＤを含むデータを検索し、当該データに含まれるプロセス名２６０ｂを取得する（ステップＳ１００８）。以下、取得したプロセス名２６０ｂを、プロセス名５２２と記載する。
【００９８】
解析部３４０は、アプリケーション情報３３０から、アプリケーション名（図９の３３０ａ）がプロセス名５２２に合致するデータを抽出し、プロセス名５２２に相当するアプリケーションに関する可能操作（図９の３３０ｃ）を特定する（ステップＳ１００９）。以下、特定した可能操作３３０ｃを、可能操作５２３と記載する。プロセス名５２２を抽出できない場合、解析部３４０は、当該アプリケーションを未知のアプリケーションとして扱う。この場合、解析部３４０は、当該アプリケーションが、任意のファイル操作及びネットワーク操作の少なくとも一方を実行可能であると推定する。
【００９９】
以下、解析部３４０が、書き込みが行われた対象ファイル５０１の更新元又はコピー元になったファイル（派生元ファイル（原本ファイル））を検出する処理について説明する。解析部３４０は、例えば、上記説明したステップＳ１００９における処理の後、以下に説明する原本ファイルを推定する処理を実行してもよい。
【０１００】
アプリケーション情報３３０のプロセス名５２２における可能操作５２３に「Ｅｄｉｔ（編集）」の要素が含まれる場合を想定する。この場合、クライアント２００において、ファイルの新規作成、編集による改変、別名保存による派生等が行われている可能性がある。以下、この場合に、解析部３４０が実行する処理について図１１、図１２に例示するフローチャートを参照して説明する。
【０１０１】
解析部３４０は、プロセス状態情報２６０から、書き込みログ５１２のアクセス時間よりも前（過去）に、プロセスＩＤ５２１を含むデータが記録された最も古い時間を検出する（ステップＳ１２０１）。換言すると、解析部３４０は、書き込みログ５１２のアクセス時間よりも過去に、プロセスＩＤ５２１を含むデータが初めてプロセス状態情報２６０に記録された時間を検出する。以下、プロセスＩＤ５２１を含むデータが記録された最も古い時間を「プロセス起動時間」と記載する場合がある。
【０１０２】
具体的には、解析部３４０は、例えば、書き込みログ５１２のアクセス時間から、プロセス状態情報２６０の記録を過去に遡り、プロセスＩＤ５２１を含むプロセス状態が記録されたデータを確認してよい。解析部３４０は、例えば、プロセスＩＤ５２１を含むデータの内、記録された時間が最も古いデータを抽出する。そして、そのデータが記録された時間を、プロセス起動時間として扱ってよい。以下、係るプロセス起動時間を、プロセス起動時間５３１と記載する場合がある。解析部２３０は、プロセスＩＤ５２１に該当するアプリケーションが、少なくとも、プロセス起動時間５３１から書き込みログ５１２のアクセス時間の間で生存していた（実行されていた）と推定してよい。
【０１０３】
解析部３４０は、ファイルアクセスログ２３０の中から、プロセス起動時間５３１から、書き込みログ５２１のアクセス時間までの間の書き込まれたログを確認する。解析部３４０は、それらのログのうち、可能操作５２３に関連するログを絞り込む。これにより、解析部３４０は、プロセスＩＤ５２１に該当するアプリケーションによる操作が記録されたログの候補である、アクセスログリスト５３２（第２アクセスログリスト）を抽出する（ステップＳ１２０２）。解析部３４０は、例えば、可能操作５２３が「Ｅｄｉｔ（編集）」である場合、ファイルアクセスログ２３０の中から、ファイル操作（図３の２３０ｃ）が「Ｒｅａｄ、Ｗｒｉｔｅ、Ｒｅｎａｍｅ」に相当するログを抽出してもよい。
【０１０４】
解析部３４０は、抽出したアクセスログリスト５３２のうち、ディスク操作ログ２４０に含まれるプロセスＩＤが、プロセスＩＤ５２１と合致するログを抽出する。解析部３４０は、抽出したログを用いて、第３アクセスログリストを生成する（ステップＳ１２０３）。以下、第３アクセスログリストを、アクセスログリスト５３３と記載する場合がある。
【０１０５】
解析部３４０は、アクセスログリスト５３３に読み込み（Ｒｅａｄ）操作のログが含まれるか確認する（ステップＳ１２０４）。解析部３４０は、例えば、操作対象ファイルに実行された操作（Ｗｒｉｔｅ操作）に応じて、派生元ファイルに対して実行され得る操作（派生元操作）である読み込み操作（Ｒｅａｄ操作）を特定し、アクセスログリスト５３３に読み込み（Ｒｅａｄ）操作のログが含まれるか確認してもよい。
【０１０６】
以下、アクセスログリスト５３３にＲｅａｄ操作ログが含まれる場合（ステップＳ１２０４においてＹＥＳ）について説明する。
【０１０７】
あるプロセスが単一の文書しか編集できない場合、古い読み込みアクセスによる更新は破棄されたものと考えられる。例えば、読み込みアクセス（Ｒｅａｄ）が複数回発生した場合、新しい読み込みアクセスにより、旧い読み込みアクセスの内容が破棄され得る。よって、解析部３４０は、アクセスログリスト５３３（第３アクセスログリスト）の中で最も新しい（アクセス時間が新しい）Ｒｅａｄ操作が含まれる候補ログを取得する（ステップＳ１２０５）。解析部３４０は、例えば、アクセスログリスト５３３の中で、書き込みログ５１２のアクセス時間に最も近い時間に実行されたＲｅａｄ操作に関するログを、候補ログとして取得してもよい。複数のＲｅａｄ操作が同じ時間に記録されている場合、解析部３４０は、最後に記録されたＲｅａｄ操作に関するログを、候補ログとして取得してもよい。以下、係るログを、候補ログ５３４と記載する。
【０１０８】
この場合、解析部３４０は、対象ファイル５０１の更新元となった原本ファイル５４１は、候補ログ５３４のファイル名により特定されるファイルであると推定してよい（ステップＳ１２０６）。換言すると、解析部３４０は、候補ログ５３４のファイル名を、原本ファイル５４１のファイル名であると推定する。
【０１０９】
原本ファイル５４１のファイル名（即ち、候補ログ５３４に記録されたファイル名）と、対象ファイル５０１のファイル名とが合致する（同一である）場合は、解析部３４０は、当該ファイルに対して実行されたユーザ操作が「更新」であると推定する。以下、推定したユーザ操作を、ユーザ操作５３５と記載する場合がある。
【０１１０】
原本ファイル５４１のファイル名と、対象ファイル５０１のファイル名とが異なる場合、解析部３４０は、対象ファイル５０１は、原本ファイル５４１とは異なるファイル名で保存された派生先ファイルであると推定する。この場合、解析部３４０は、ユーザ操作が「派生」であると推定してよい。
【０１１１】
以下、Ｒｅａｄ操作に関するログが、アクセスログリスト５３３（第３アクセスログリスト）に含まれない場合（ステップＳ１２０４においてＮＯ）について説明する。
【０１１２】
この場合、解析部３０４は、対象ファイル５０１に関する原本ファイル５４１が検出されないと判定してよい（ステップＳ１２０７）。
【０１１３】
解析部３４０は、他に可能操作５２３に他の要素（Ｅｄｉｔ以外の要素）が存在するか確認する（ステップＳ１２０８）。
【０１１４】
ステップＳ１２０８においてＮＯ（他の可能操作がない）場合、解析部３４０は、対象ファイル５０１は新たに作成されたファイルであると推定する（ステップＳ１２０９）。これにより、解析部３４０は、ユーザ操作５３５が「新規作成」であると推定してよい。
【０１１５】
ステップＳ１２０８においてＹＥＳ（他の可能操作がある）場合、解析部３４０は、他の操作について確認する（ステップＳ１２１０）。
【０１１６】
以下、アプリケーション情報３３０におけるプロセス名５２２を含むログの可能操作５２３に「コピー（Ｃｏｐｙ）」の要素が含まれる場合について、図１３のフローチャートを参照して説明する。図１２のフローチャートと同様の処理については同様の参照符号を付すことで重複する説明を省略する。
【０１１７】
あるファイルについてコピーの操作が実行された場合、アプリケーションは、当該ファイルの内容を編集せずに、当該ファイルを別の配置場所に複製、移動したと考えられる。具体的な一例として、Ｗｉｎｄｏｗｓ（登録商標）におけるエクスプローラを用いたファイル操作を想定すると、ファイルを別フォルダにコピーもしくは移動する操作が行われたと考えられる。
【０１１８】
あるファイルがコピーされる場合、コピー先のファイルに関する書き込み操作が発生する前に、コピー元のファイルに対する読み込み操作が、コピー先のファイルと同程度のサイズで実行されていると考えられる。
【０１１９】
そこで、解析部３４０は、コピー元のファイルを追跡すべく、例えば、上記説明した可能操作に「Ｅｄｉｔ（編集）」の要素が含まれている場合と同様の処理を実行してよい（ステップＳ１２０１乃至ステップＳ１２０５）。これにより、解析部３４０は、アクセスログリスト５３３（第３アクセスログリスト）を生成し、最も新しいＲｅａｄ情報が含まれる候補ログ５３４を取得する。
【０１２０】
解析部３４０は、抽出した候補ログ５３４のうち、ログに記録されたサイズ（２３０ｄ）が、書き込みログ５１２のサイズに一致するデータを抽出する（ステップＳ１３０１）。即ち、解析部３４０は、ディスクに対する書き込み操作が発生する前に実行された読み込み操作に関するログうち、書き込まれたサイズに合致するサイズの読み込み操作のログを抽出する。以下、抽出した読み込み操作に関するログを、複製元候補ログと記載する場合がある。
【０１２１】
これにより、解析部３４０は、対象ファイル５０１の更新元となった原本ファイル５４１のファイル名が、複製元候補ログに記載されたファイル名であると推定できる。
【０１２２】
解析部３４０は、ファイルアクセスログ２３０を参照し、複製元候補ログのアクセス時間より後に、当該複製元候補ログに記載されたファイル名のファイルに関するＤｅｌｅｔｅ操作のログが存在するか否かを判定する（ステップＳ１３０２）。具体的には、解析部３４０は、複製元候補ログのアクセス時間から、所定の削除基準時間以内に、当該複製元候補ログに記載されたファイル名のファイルに関するＤｅｌｅｔｅ操作のログが存在するか否かを判定してもよい。係る削除基準時間は、適宜定められてよい。係る削除基準時間は、例えば、ある基準に基づいて定められた、十分に短い一定の時間であってもよい。
【０１２３】
ステップＳ１３０２においてＹＥＳの場合、解析部３４０は、対象ファイル５０１に関する原本ファイル５４１が削除されたと推定し、ユーザ操作５３５について「移動」操作であると判定する（ステップＳ１３０３）。また、ステップＳ１３０２においてＮＯの場合、解析部３４０は、対象ファイル５０１は、原本ファイル５４１からコピーされたと推定し、ユーザ操作５３５について「コピー」操作であると判定する（ステップＳ１３０４）。
【０１２４】
以上、解析部３４０が、ユーザ操作５３５について、「コピー」、「更新」、「新規作成」、「派生」と判定する方法について説明した。解析部３４０は、上記以外の「リネーム（Ｒｅｎａｍｅ）」、「削除（Ｄｅｌｅｔｅ）」の操作については、ディスク操作ログ２４０を参照して、直接的にこれらの操作を特定可能である。この場合、解析部３４０は、ディスク操作ログ２４０の内容から、ユーザ操作５３５を特定可能である。解析部３４０は、ユーザ操作が「リネーム」である場合の原本ファイル５４１を、ディスク操作ログ２４０の内容から特定可能である。
【０１２５】
解析部３４０は、対象ファイル５０１に関する原本ファイル５４１を特定できた場合、操作履歴情報３２０にファイルの更新情報を記載する。
【０１２６】
解析部３４０は、上記推定結果と、収集した各種ログを用いて、操作履歴情報３２０に以下のデータを記録することができる。即ち、操作履歴情報３２０の操作時間３２０ａには、対象ファイル５０１の操作時間（対象ファイル５０１のアクセス時間）が設定されてよい。ファイル名３２０ｂには、対象ファイル５０１のファイル名が設定されてよい。ユーザ操作３２０ｃは、上記推定したユーザ操作５３５が設定されてよい。操作元ホスト３２０ｄには、対象ファイル５０１に関する操作を実行したクライアント２００のホスト名等が設定されてよい。操作元ファイル３２０ｅには、上記処理において推定された候補ログ５３４のファイル名が設定されてよい。操作ユーザ３２０ｆには、プロセス状態情報２６０から抽出した実行ユーザ２６０ｃが設定されてよい。解析部３４０は、例えば、対象ファイル５０１の操作時間の近傍で、プロセスＩＤ５２１に関連付けて登録された実行ユーザ２６０ｃのデータを、操作ユーザ３２０ｆに登録してよい。
【０１２７】
解析部３４０は、例えば、特定した原本ファイル５４１を対象ファイル５０１におきかえて（即ち、特定した原本ファイルを新たな対象ファイルとして）、上記処理を再帰的に実行してよい。これにより、操作履歴情報３２０に情報が追記され、これを順に参照することで、ファイルの変更元履歴を追跡することができる。
【０１２８】
上記のように構成された本実施形態における履歴解析装置３００は、例えば、アプリケーションによる操作ログが取得できない環境であっても、ファイルの更新履歴の追跡が可能となる。なぜならば、履歴解析装置３００（特に解析部３４０）は、クライアント２００に記録された各種ログを用いて、対象ファイル５０１を操作したアプリケーションと、その操作とを特定できるからである。具体的には、履歴解析装置３００は、例えば、対象ファイル５０１のアクセス時間を参照して、ファイルアクセスログ２３０、ディスク操作ログ２４０、プロセス状態情報２６０等から、対象ファイル５０１に関する操作を実行したアプリケーションを抽出する。そして、当該アプリケーションが実行可能な操作、及び、当該アプリケーションが実行したファイル操作のログ等から、対象ファイル５０１に関する原本ファイル５４１と、アプリケーションにより実行されたユーザ操作と、を特定することができる。
【０１２９】
履歴解析装置３００は、対象ファイル５０１の更新履歴を遡ることにより、当該対象ファイル５０１の元になったオリジナルデータを検出可能である。その理由は、履歴解析装置３００は、上記したように、ある対象ファイル５０１に関する原本ファイル５４１を特定可能であるからである。即ち、履歴解析装置３００は、係る処理を繰り返し（再帰的に）実行することにより、ある対象ファイル５０１に関する原本ファイル５４１を順次追跡することができる。
【０１３０】
履歴解析装置３００は、対象ファイル５０１に関する原本ファイル５４１を特定することで、原本ファイル５４１を操作（例えば、新規作成、編集等）したユーザを特定可能である。
【０１３１】
以上より、本実施形態における履歴解析装置３００によれば、異なる装置（例えば、ファイルサーバ１００と、クライアント２００）にそれぞれ配置されたファイル（例えば、対象ファイル５０１、原本ファイル５４１）に関するログ（サーバアクセスログ１２０、ファイルアクセスログ２３０、ディスク操作ログ２４０等）に基づいて、それらのファイルに関する派生関係を特定できる。
【０１３２】
＜第１の変形例＞
以下、上記説明した第１の実施形態に係る第１の変形例（以下、変形例１と記載する場合がある）について説明する。本変形例は、通信ネットワークからのダウンロード（例えば、Ｗｅｂサーバからのダウンロード）等の操作が含まれる場合に対応する。
【０１３３】
本変形例における履歴解析装置３００を実現可能な装置構成は、上記第１の実施形態と同様としてよい。本変形例における履歴解析装置３００は、以下に説明する通り、上記第１の実施形態における履歴解析装置３００とは動作が異なる。本変形例における履歴解析装置３００は、ネットワーク操作ログ２５０及びネットワーク状態情報２７０を参照する。
【０１３４】
本変形例においても、図１０に例示した、対象ファイル５０１を操作するアプリケーションに関する可能操作（可能操作５２３）を取得する処理は、上記第１の実施形態と同様としてよい。
【０１３５】
以下、アプリケーション情報３３０のプロセス名５２２における可能操作にＤｏｗｎｌｏａｄの要素が含まれる場合について説明する。この場合、クライアント２００においては、例えば、ネットワーク４００経由で、他のネットワーク４１０からデータがダウンロードされている可能性がある。係るダウンロードは、例えば、Ｗｅｂブラウザを用いたダウンロード等、現在は一般的な方法により実行され得る。ダウンロード操作により、ネットワーク４００からデータが受信されることから、一般的に、ダウンロード処理を実行した後（例えば直後）に、ダウンロードしたデータのサイズと同程度のサイズで、ファイルに対する書き込みが発生していると考えられる。そこで、履歴解析装置３００（解析部３４０）は、対象ファイル５０１に関する書き込み（Ｗｒｉｔｅ）操作の前に実行された派生元操作として、ある特定の条件を満たすダウンロード（Ｒｅａｄ）操作を特定する。そして、履歴解析装置３００は、当該ダウンロード操作により受信したデータを、対象ファイル５０１に関する原本ファイル５４１と推定する。
【０１３６】
解析部３４０は、ダウンロードしたファイルを追跡すべく、上記第１の実施形態において、可能操作５２３に「編集」の要素が含まれている場合と似た処理を実行する。以下、係る解析部３４０の処理について、図１４に例示するフローチャートを参照して説明する。
【０１３７】
解析部３４０は、上記説明したステップＳ１２０１と同様の処理により、対象ファイル５０１と同じファイル名のファイルについて書き込み処理を実行したプロセス（プロセスＩＤ５１２）の起動時間（プロセス起動時間）を抽出する（ステップＳ１４０１）。
【０１３８】
解析部３４０は、プロセス起動時間から書き込みログ５１２のアクセス時間までの間に取得されたネットワーク状態情報２７０を参照し、プロセスＩＤ（２７０ｂ）にプロセスＩＤ５２１（操作プロセスＩＤ）が記録されたデータを抽出する。プロセスＩＤ５２１は、上記したように、クライアント２００において、対象ファイル５０１に関する操作を実行したプロセスに関するプロセスＩＤである。
【０１３９】
解析部３４０は、例えば、ネットワーク操作ログ２５０に記録されたログのうち、プロセス起動時間５３１から書き込みログ５１２のアクセス時間の範囲で以下のログを抽出する。即ち、解析部３４０は、例えば、ネットワーク操作ログ２５０から、プロセスＩＤ５２１のプロセスが使用するポート番号と、アクセス先ポート番号２５０ｅが一致するログを抽出してよい。解析部３４０は、例えば、アプリケーション名（３３０ａ）がプロセス名５２２に一致するデータがアプリケーション情報３３０に登録されている場合、そのポート番号（３３０ｄ）と、アクセス先ポート番号２５０ｅとが一致するログを抽出してよい。解析部３４０は、抽出したログを含むネットワークログリスト５６０を生成する（ステップＳ１４０２）。ネットワークログリスト５６０は、ネットワーク操作ログ２５０と同じ構成としてよい。以下、ネットワークログリスト５６０のうちの一行（一つログ）を、ネットワークログ５６１と記載する。
【０１４０】
解析部３４０は、ネットワークログリスト５６０から、対象ファイル５０１のアクセス時間に近い順に、ネットワークログリスト５６０内の各ネットワークログ５６１を選択する（ステップＳ１４０３）。
【０１４１】
解析部３４０は、選択したネットワークログが、Ｄｏｗｎｌｏａｄ操作に関するログであるか否かを判定する（ステップＳ１４０４）解析部３４０は、例えば、操作対象ファイルに実行された操作（Ｗｒｉｔｅ操作）に応じて、派生元ファイルに対して実行され得る操作（派生元操作）として、Ｄｏｗｎｌｏａｄ（ダウンロード）操作を特定し、ネットワークログリスト５６０から選択したネットワークログ５６１が、Ｄｏｎｗｌｏａｄ操作のログであるか否かを確認する。解析部３４０は、ネットワークログにおける送受信方向（２５０ｃ）を参照して、当該ログがＤｏｗｎｌｏａｄ操作に関するログであるか否かを判定可能である。
【０１４２】
以下、ステップＳ１４０４においてＹＥＳの場合について説明する。
【０１４３】
この場合、解析部３４０は、Ｄｏｎｗｌｏａｄ操作によりデータを受信した際の通信プロトコルに応じて、ネットワークログに設定されたサイズ（２５０ｆ）を補正してよい（ステップＳ１４０５）。通信プロトコルによっては、ヘッダ情報やエンコーディングなどにより、ダウンロードしたデータサイズと、ファイルに書き込まれるデータサイズとが異なる場合がありえるからである。解析部３４０は、例えば、通信プロトコルに関連付けされた適切な数式等を用いて、データサイズの補正を行ってもよい。以下、補正後のサイズを補正サイズと記載する場合がある。
【０１４４】
解析部３４０は、ネットワークログ５６１に記録されたサイズ（又は補正サイズ）が、書き込みログ５１２に記録されたサイズと適合するか否かを判定する（ステップＳ１４０６）。解析部３４０は、例えば、ネットワークログ５６１に記録されたサイズ（又は、当該サイズ）と、書き込みログ５１２に記録されたサイズとが、一致する場合に、これらが適合すると判定してもよい。解析部３４０は、例えば、ネットワークログ５６１に記録されたサイズ（又は、当該サイズ）と、書き込みログ５１２に記録されたサイズとの差分が、ある所定の基準値（閾値）よりも小さい場合に、これらが適合すると判定してもよい。
【０１４５】
ステップＳ１４０３乃至ステップＳ１４０６において、解析部３４０は、例えば、以下のような処理を実行してもよい。即ち、解析部３４０は、ネットワークログリスト５６０の内、送受信方向２５０ｃが「Ｄｏｗｎｌｏａｄ」であり、サイズ（または補正サイズ）２５０ｆが対象ファイル５０１のサイズに適合し、対象ファイル５０１のアクセス時間に最も近いネットワークログ５６１を選択してよい。
【０１４６】
ステップＳ１４０６においてＹＥＳの場合、解析部３４０は、Ｄｏｗｎｌｏａｄ操作が実行されたと推定する（ステップＳ１４０７）。この場合、解析部３４０は、対象ファイル５０１に関する操作を実行したプロセス（プロセスＩＤ５２１に該当するプロセス）が、対象ファイル５０１に対する書き込みを実行する以前（書き込みログ５１２のアクセス時間以前）に、ネットワークからファイルをダウンロードしたと推定する。また、解析部３４０は、対象ファイル５０１の更新元となった原本ファイル５４１は、ネットワークログ５６１のアクセス先ホスト（２５０ｄ）から取得（受信）したデータであると推定してもよい。
【０１４７】
ステップＳ１４０４又はステップＳ１４０６においてＮＯの場合（サイズ不適合）、解析部３４０は、ネットワークログリストに含まれる他のログについて同様の処理を実行する（ステップＳ１４０８乃至ステップＳ１４０４）。
【０１４８】
ネットワークログリストに、適合するＤｏｗｎｌｏａｄのログがない場合（ステップＳ１４０８においてＮＯ）、解析部３４０は、Ｄｏｗｎｌｏａｄ操作は実行されていないと判定してもよい。その場合、解析部３４０は、他に可能操作があれば、その可能操作に関する処理を続行してもよい（ステップＳ１４０９乃至ステップＳ１４１１）。
【０１４９】
なお、本変形例における履歴解析装置３００が実行する上記以外の処理は、例えば、上記第１の実施形態と同様としてよい。
【０１５０】
上記のように構成された本変形例における履歴解析装置３００は、対象ファイル５０１に関する原本ファイル５４１が、通信ネットワークを介してダウンロードされたデータであるか否かを推定可能である。また、原本ファイル５４１が通信ネットワークを介してダウンロードされたデータである場合、そのダウンロード元を特定可能である。なぜならば、履歴解析装置３００は、原本ファイル５４１を操作したアプリケーション（プロセスＩＤ５２１に相当するアプリケーション）により、原本ファイル５４１のサイズ（書き込みログ５１２のサイズ）に合致するサイズのデータがダウンロードされたことを特定可能だからである。
【０１５１】
上記のような本変形例における履歴解析装置３００を用いることにより、例えば、原本ファイル５４１のダウンロード元が外部サイトなどであった場合に発生し得る問題を確認することができる。
【０１５２】
また、本変形例における履歴解析装置３００は、上記第１の実施形態と同様、原本ファイル５４１を特定し可能である。また、本変形例における履歴解析装置３００は、原本ファイル５４１を操作したユーザを特定することが可能である。
【０１５３】
＜第２の変形例＞
以下、上記第１の実施形態に関する第２の変形例（以下、変形例２と記載する場合がある）について説明する。本変形例における履歴解析装置３００は、あるファイルから派生した派生先ファイルを検出可能である。派生先ファイルは、例えば、あるファイルに基づいて適切な方法（例えば、編集、コピー、別名保存等）により生成されたファイルであってよい。
本変形例における履歴解析装置３００を実現可能な装置構成は、図１５に例示するように、上記第１の実施形態及び変形例１と同様としてよい。本変形例における履歴解析装置３００は、以下に説明する通り、上記第１の実施形態とは動作が異なる。なお、図１５において、図１と同様の構成については同様の参照符号を付することにより、詳細な説明を省略する。
【０１５４】
以下、本変形例において、履歴解析装置３００が、ファイルサーバ１００の共有記憶装置１１０に格納された対象ファイル７０１に関する派生先ファイル７０２と、ファイル７０１に関する操作履歴とを推定する処理について説明する。なお、図１５においては、説明の便宜上、派生先ファイル７０２はクライアント２００に配置されているが、派生先ファイル７０２はファイルサーバ１００に配置されてもよい。
【０１５５】
図１６は、本変形例における履歴解析装置３００の動作の一例を示すフローチャートである。なお、図１６において、図１０と同様の処理（ステップ）については同様の参照符号を付すことで、詳細な説明を省略する。履歴解析装置３００におけるログ取得部３１０の動作は上記第１の実施形態及び第１の変形例と同様としてよいので、詳細な説明を省略する。
【０１５６】
解析部３４０は、上記第１の実施形態と同様、図１６におけるステップＳ１００１乃至Ｓ１００５を実行する。即ち、解析部３４０は、第１アクセスログ５０３のアクセス元（１２０ｂ）を参照し、該当するクライアント２００のファイルアクセスログ２３０を取得する。解析部３４０は、対象ファイル７０１と同一のファイル名を含むログを抽出して時系列順に並べたファイルアクセスログリスト５１１を作成する。
【０１５７】
解析部３４０は、ファイルアクセスログリスト５１１から、Ｒｅａｄアクセスのみを抽出し、読み込みリスト５１３を作成する（ステップＳ１６０１）。係る読み込みリスト５１３は、クライアント２００において実行された、対象ファイル７０１からの読み込み操作のログを表す。以下、読み込みリスト５１３に含まれる一つのログを、読み込みログ５１４と記載する。
【０１５８】
解析部３４０は、例えば、読み込みログ５１４に記録された操作により読み込まれた内容（即ち、対象ファイル７０１から読み込まれた内容）が、別名保存やコピー処理等により、複製されているか否かを時系列順に確認する。
【０１５９】
解析部３４０は、例えば、上記第１の実施形態と同様に、読み込みログ５１４とプロセス状態情報２６０とから、読み込み操作を実行したアプリケーションのプロセスＩＤ５２１（操作プロセスＩＤ）、可能操作５２３の取得を行う（図１６のステップＳ１６０２乃至Ｓ１００９）。なお、ステップＳ１６０２において、解析部３４０は、例えば、ディスク操作ログ２４０から、読み込みログ５１４とアクセス時刻が一致するログを選択し、選択したログの内のプロセスＩＤ２４０ｂを取得してもよい。
【０１６０】
解析部３４０は、上記第１の実施形態における処理と同様に、ファイル（対象ファイル７０１）を読み込んだプロセス（プロセスＩＤ５３１に該当するプロセス）による書き込み操作の有無を確認する。解析部３４０は、例えば、ディスク操作ログ２４０に、対象ファイル７０１のアクセス時間よりも後に、プロセスＩＤ５３１に該当するプロセスによる書き込み操作のログが含まれるか否かを確認してもよい。これにより、解析部３４０は、例えば、対象ファイル７０１が、他のファイル等に書き込まれているか否かを確認することができる。
【０１６１】
ステップＳ１００９において特定した可能操作５２３に「Ｅｄｉｔ（編集）」の要素が含まれる場合、クライアント２００において、ファイルの更新又は別名保存等により、派生先ファイルが生成されている可能性がある。
【０１６２】
解析部３４０は、プロセスＩＤ５３１に該当するプロセスによる書き込み操作が確認された場合、書き込み先ファイルのファイル名を確認する。書き込み先ファイルのファイル名が対象ファイル７０１と同じである場合、解析部３４０は、係る操作を「更新」操作として操作履歴情報３２０に記録してよい。書き込み先ファイルのファイル名が対象ファイル７０１と異なる場合、解析部３４０は、係る操作を「派生」操作として操作履歴情報３２０に記録してよい。
【０１６３】
ステップＳ１００９において特定した可能操作５２３に「Ｃｏｐｙ」の要素が含まれる場合、対象ファイル７０１が、コピー又は移動された可能性がある。具体例として、Ｗｉｎｄｏｗｓ（登録商標）におけるエクスプローラのファイル操作を想定する。この場合、対象ファイル７０１は、ファイルの中身を編集せずに、別フォルダにコピーもしくは移動された可能性がある。
【０１６４】
解析部３４０は、例えば、上記第１の実施形態と同様処理により、対象ファイル７０１のコピー又は移動を推定可能である。即ち、解析部３４０は、対象ファイル７０１に関する読み込み操作の後、当該ファイルについて削除（Ｄｅｌｅｔｅ）操作が実行されたか否かに基づいて、対象ファイル７０１のコピー又は移動を推定可能である。
【０１６５】
解析部３４０は、ファイル操作の推定結果を、操作履歴情報３２０に記録してよい。
【０１６６】
解析部３４０は、読み込みリスト５１３に含まれる全てのログについて上記処理を再帰的に行うことによって、対象ファイル７０１に関する派生先のファイル７０２を特定可能である。
【０１６７】
上記のように構成された本変形例における履歴解析装置３００によれば、派生元ファイル（対象ファイル７０１）から派生された派生先ファイル（派生先ファイル７０２）を特定可能である。これにより、以下のような効果が得られる。
【０１６８】
例えば、不適切な情報が含まれるファイルを見つけた場合、派生先ファイルを特定することで、不適切な情報が含まれるファイルが影響する範囲を特定可能である。一つの具体例として、本変形例における履歴解析装置３００を用いることで、対象ファイル７０１に誤った情報が含まれる場合に、修正が必要される派生先ファイル７０２の範囲を特定することができる。また、他の具体例として、ある対象ファイル７０１から派生先ファイル７０２に対して情報漏洩等が発生した場合、その漏洩範囲を特定可能である。
【０１６９】
また、本変形例における履歴解析装置３００によれば、対象ファイル７０１の派生先ファイル７０２を追跡することで、ある対象ファイル７０１に関する最新版を検索することができる。本変形例における履歴解析装置３００によれば、対象ファイル７０１の利用状況（例えば、派生先ファイル７０２の生成状況等）等を取得することができ、これをフォルダツリーの形などで可視化することが可能となる。本変形例における履歴解析装置３００によれば、セキュリティの確保を求められる領域からのデータ持ち出し状況を確認できる。例えば、セキュリティが確保された領域に配置された対象ファイル７０１から生成された派生先ファイル７０２の書き込み先を特定することにより、データの持ち出しを確認可能である。
【０１７０】
＜第３の変形例＞
以下、上記第１の実施形態に関する第３の変形例（以下、変形例３と記載する）について説明する。本変形例における履歴解析装置３００は、あるプロセス（アプリケーション）が複数のファイルを処理できる場合に、派生元ファイルから作成された派生先ファイルを検出可能である。
【０１７１】
本変形例における履歴解析装置３００は、図１７に例示するように、上記第１の実施形態における履歴解析装置３００に対して、プロセスディスク操作ログ３５０、Ｒｅａｄ操作ログ３６０、Ｗｒｉｔｅ操作ログ３７０を更に有してよい。また、本変形例における履歴解析装置３００は、ファイルリスト３８０を作成してよい。履歴解析装置３００の他の装置構成は、上記第１の実施形態と同様としてよい。本変形例における履歴解析装置３００は、以下に説明する通り、上記第１の実施形態とは動作が異なる。
【０１７２】
プロセスディスク操作ログ３５０は、ディスク操作ログ２４０（図４）と同様の構成としてよい。
【０１７３】
Ｒｅａｄ操作ログ３６０は、Ｒｅａｄ操作に関する情報を記録したログを表す。Ｒｅａｄ操作ログ３６０には、例えば、図１８に示すように、「操作ＩＤ（３６０ａ）、アクセス時間（３６０ｂ）、ファイル名（３６０ｃ）、サイズ（３６０ｄ）」の各要素が、時系列に記録される。Ｒｅａｄ操作ログ３６０を、「Ｒｅａｄ操作ログリスト」と記載する場合がある。
【０１７４】
操作ＩＤ３６０ａは、各Ｒｅａｄ操作を識別可能な識別情報（識別子）である。
【０１７５】
アクセス時間３６０ｂは、読み込み（Ｒｅａｄ）操作が実行されたファイルへのアクセスが発生した時間を表す。アクセス時間３６０ｂは、Ｒｅａｄ操作が実行された時間であってもよい。
【０１７６】
ファイル名３６０ｃは、Ｒｅａｄ操作が実行されたファイルの名称を表す。
【０１７７】
サイズ３６０ｄは、Ｒｅａｄ操作が実行されたファイルのサイズを表す。
【０１７８】
Ｗｒｉｔｅ操作ログ３７０は、Ｗｒｉｔｅ操作に関する情報を記録したログを表す。Ｗｒｉｔｅ操作ログ３７０には、例えば、図１９に例示するように、「アクセス時間（３７０ａ）、ファイル名（３７０ｂ）、サイズ（３７０ｃ）、推定ＲｅａｄＩＤリスト（３７０ｄ）」の各要素が時系列に記録される。Ｗｒｉｔｅ操作ログ３７０を、「Ｗｒｉｔｅ操作ログリスト」と記載する場合がある。
【０１７９】
アクセス時間３７０ａは、書き込み（Ｗｒｉｔｅ）操作が実行されたファイルへのアクセスが発生した時間を表す。アクセス時間３７０ａは、Ｗｒｉｔｅ操作が実行された時間であってもよい。
【０１８０】
ファイル名３７０ｂは、Ｗｒｉｔｅ操作が実行されたファイルの名称を表す。
【０１８１】
サイズ３７０ｃは、Ｗｒｉｔｅ操作が実行されたファイルのサイズを表す。
【０１８２】
推定ＲｅａｄＩＤリスト３７０ｄは、Ｗｒｉｔｅ操作が実行される前に実行されたＲｅａｄ操作を特定可能な情報を表す。推定ＲｅａｄＩＤリスト３７０ｄには、Ｒｅａｄ操作ログ３６０の操作ＩＤ３６０ａが１以上記録される。推定ＲｅａｄＩＤリスト３７０ｄを、「推定読み込み候補リスト」と記載する場合がある。
【０１８３】
ファイルリスト３８０は、ある派生元ファイルと、派生先ファイルとの間の類似度に関する情報を保持する。ファイルリスト３８０には、例えば、ある派生元ファイルに関する派生先ファイルの候補のリストが記録されてもよい。ファイルリスト３８０を、「候補データリスト」と記載する場合がある。ファイルリスト３８０は、例えば、図２０に示すように、「ファイル名（３８０ａ）、スコア（３８０ｂ）」の要素が、複数記載される。以下、ファイルリスト３８０を「候補ファイルリスト」と記載する場合がある。
【０１８４】
ファイル名３８０ａは、ファイルを特定可能なファイル名（パス名等）を表す。ファイル名３８０ａには、例えば、ある派生元ファイルに関する派生先ファイルのファイル名が記録される。ファイル名３８０ａに記録されるデータは、具体的なファイル名に限定されない。ファイル名３８０ａには、例えば、「＜新規作成＞」を表すデータ等、派生元ファイルに関するスコアを設定可能な要素が適宜設定されてよい。
【０１８５】
スコア３８０ｂは、ファイル名３８０ａに記録されたファイルと、派生元ファイルとの間の類似度を表す。スコア３８０ｂには、類似度を表す数値（例えば”０”から”１”の範囲の数値等）が設定されてもよい。
【０１８６】
以下、本変形例における履歴解析装置３００の動作について説明する。
【０１８７】
本変形例における履歴解析装置３００は、上記第１の実施形態と同様、図１０に例示する各処理を実行することで、対象ファイル５０１に関して、プロセスＩＤ５２１（操作プロセスＩＤ）及びアプリケーションの可能操作５２３を取得する。
【０１８８】
以下、本変形例における履歴解析装置３００が派生先ファイルを特定する処理について、図２１Ａ、図２１Ｂに例示するフローチャートを参照して説明する。
【０１８９】
アプリケーションの可能操作５２３に「Ｅｄｉｔ（編集）」が含まれる場合、ファイル改変を伴う読み書き操作（新規作成を含む）が実行されている可能性がある。
【０１９０】
履歴解析装置３００（特には解析部３４０）は、プロセスＩＤ５２１に該当するアプリケーションの生存期間（実行期間）を確認する。解析部３４０は、プロセス状態情報２６０を参照し、対象ファイル５０１に対する操作が行われた時間（アクセス時間）の前後で、プロセスＩＤ５２１が記録された最も古い（過去の）時間と、最も新しい時間と、を取得する（ステップＳ２１０１）。以下、プロセスＩＤ５２１が記録された最も古い時間をプロセス開始時間６０１、最新の時間をプロセス終了時間６０２と記載する。即ち、プロセス開始時間６０１と、プロセス終了時間６０２とは、プロセスＩＤ５２１の生存期間（実行期間）を表す。
【０１９１】
解析部３４０は、ディスク操作ログ２４０から、アクセス時間（２４０ａ）がプロセス開始時間６０１からプロセス終了時間６０２までの間に含まれるとともに、プロセスＩＤ（２４０ｂ）がプロセスＩＤ５２１に該当する全操作のログ（プロセスディスク操作ログ３５０）を抽出する（ステップＳ２１０２）。以下、抽出したプロセスディスク操作ログ３５０を、「プロセス全操作ログリスト」と記載する場合がある。
【０１９２】
解析部３４０は、プロセスディスク操作ログ３５０のうち、ファイル操作が「Ｒｅａｄ操作」であるアクセスに関するログを抽出する。解析部３４０は、抽出したログを時系列順に並べて時系列順に各ログに操作ＩＤを付与し、Ｒｅａｄ操作ログ３６０として記録する（ステップＳ２１０３）。
【０１９３】
解析部３４０は、プロセスディスク操作ログ３５０のうち、アクセス時間が対象ファイル５０１の操作以降の時間であり、ファイル操作が「Ｗｒｉｔｅ操作」であるアクセスに関するログを抽出し、Ｗｒｉｔｅ操作ログ３７０として記録する（ステップＳ２１０４）。
【０１９４】
例えば、あるファイル（派生元ファイル）について別名保存が実行される場合を想定する。この場合、派生元ファイルに対する読み込みアクセスが行われた後に、派生先ファイルに対する書き込みアクセスが行われると考えられる。
【０１９５】
解析部３４０は、Ｗｒｉｔｅ操作ログ３７０に記録されたＷｒｉｔｅ操作に対して、Ｒｅａｄ操作ログ３６０から、当該Ｗｒｉｔｅ操作のアクセス時間（３７０ａ）よりも前に実行されたＲｅａｄ操作を列挙する。解析部３４０は、あるＷｒｉｔｅ操作に関して列挙されたＲｅａｄ操作に関する操作ＩＤ（３６０ａ）のリストを、当該Ｗｒｉｔｅ操作の推定ＲｅａｄＩＤリスト３７０ｄに転記する（ステップＳ２１０５）。解析部３４０は、上記処理を、Ｗｒｉｔｅ操作ログ３７０に記録された全てのＷｒｉｔｅ操作について実行してもよい。解析部３４０は、Ｗｒｉｔｅ操作ログ３７０のアクセス時間が古い順に上記処理を行い、抽出されたＲｅａｄ操作のファイル名が重複する場合は、最新の操作ＩＤに関するＲｅａｄ操作のログのみを残す。これにより、同じファイルが重複してＲｅａｄＩＤリストに登録されることを防ぐ。
【０１９６】
解析部３４０は、書き込みファイルの重複を防ぐため、Ｗｒｉｔｅ操作ログ３７０に、ファイル名が共通するＷｒｉｔｅ操作が重複して記録されている場合、最も新しいＷｒｉｔｅ操作に関するログのみを残す（ステップＳ２１０６）。
【０１９７】
上記処理により、Ｗｒｉｔｅ操作ログ３７０に記録されたＷｒｉｔｅ操作について、派生元ファイルに対するＲｅａｄ操作の候補が、推定ＲｅａｄＩＤリストとして取得される。
【０１９８】
対象ファイル５０１に関する操作が読み込み操作であった場合、解析部３４０は、Ｗｒｉｔｅ操作ログ３７０のうち、推定ＲｅａｄＩＤリストが記録されたログを列挙する（ステップＳ２１０８）。この場合、解析部３４０は、具体例として、以下のような処理を実行してもよい。即ち、解析部３４０は、対象ファイル５０１に関する読み込み（Ｒｅａｄ）操作に付与された操作ＩＤが推定ＲｅａｄＩＤリストに含まれるＷｒｉｔｅ操作のログを、Ｗｒｉｔｅ操作ログ３７０から抽出してもよい。解析部３４０は、抽出されたＷｒｉｔｅ操作のログに記録されたファイル名（３７０ｂ）を取得することで、書き込みが行われた可能性のあるファイルリスト３８０を作成する（ステップＳ２１０９）。換言すると、この場合、ファイルリスト３８０に登録されたファイル名は、プロセスＩＤ５２１に該当するプロセスにより、１以上のファイルに対するＲｅａｄ操作が実行された後、Ｗｒｉｔｅ操作が実行されたファイルを表す。
【０１９９】
対象ファイル５０１が書き込み操作であった場合、解析部３４０は、Ｗｒｉｔｅ操作ログ３７０のうち、対象ファイル５０１とファイル名が一致するログを抽出し、当該ログに記録された推定ＲｅａｄＩＤリストを取得する（ステップＳ２１１０）。
【０２００】
解析部３４０は、推定ＲｅａｄＩＤリストに含まれる操作ＩＤと、Ｒｅａｄ操作ログ３６０とを照らし合わせ、当該操作ＩＤに関するファイル名を取得することで、ファイルリスト３８０を作成する（ステップＳ２１１１）。換言すると、この場合、ファイルリスト３８０に登録されたファイル名は、プロセスＩＤ５２１に該当するプロセスにより、対象ファイル５０１に書き込み操作が実行される前に、読み込み操作が実行されたファイルを表す。
【０２０１】
上記処理において、ファイルリスト３８０が作成されない場合は、解析部３４０は、対象ファイル５０１について、新規作成されたファイルとして扱ってもよい。
【０２０２】
解析部３４０は、対象ファイル５０１と、ファイルリスト３８０に記録されたファイルとの間の類似度を判定する（ステップＳ２１１２）。解析部３４０は、例えば、コサイン類似度計算など、既存の類似判定技術を用いて、これらのファイルの類似度を判定し、ファイルリスト３８０に記録された各ファイルに対するスコアを算出する。
【０２０３】
なお、対象ファイル５０１は、新規作成されたファイルである可能性がある。よって、新規作成の場合を判別にするために、新規作成に該当する項目と、そのスコアとが、ファイルリスト３８０に設定されてもよい。新規作成に設定されるスコアは、一定の値又はファイルサイズに応じて変化する値等であってもよい。
【０２０４】
解析部３４０は、ファイルリスト３８０に記録されたファイルを、スコア順に並べることで、対象ファイル５０１から更新が行われた可能性があるファイルを列挙することができる。解析部３４０は、ファイルリスト３８０に記録されたファイルの内、ある基準値（基準スコア）以上のスコアが算出されたファイルについて、対象ファイル５０１に関する派生先ファイルであると推定できる。ある基準スコア以上のスコアを新規作成のスコアとすることで、ファイルが新規作成された場合についても推定することができる。
【０２０５】
なお、読み込みファイルと書き込みファイルとが１対１に対応している場合には、派生先ファイルが発生していないと考えられる。この場合、解析部３４０は、そのようなファイルをスコア計算から除外することで、誤検出の割合を減らすことができる。
【０２０６】
上記のように構成された本変形例における履歴解析装置３００によれば、一つのプロセスで複数のファイルを扱うアプリケーションなどによりファイルが操作された際に、ファイルの派生関係を推定することができる。
【０２０７】
なお、上記第１の実施形態及びその変形例（第１乃至第３の変形例）においては、ファイルサーバ１００と、クライアント２００と、履歴解析装置３００とが、それぞれ独立した物理的又は論理的な装置として実現される態様について説明した。しかしながら、本開示は上記には限定されない。例えば、いずれかのクライアント２００が、履歴解析装置３００の構成要素を備えることで、履歴解析装置３００の機能を備えてもよい。即ち、クライアント２００と、履歴解析装置３００とが統合された態様も、本開示に含まれる。
【０２０８】
＜第２の実施形態＞
以下、上記説明した本開示の第１の実施形態の基礎となる、本開示に係る第２の実施形態について説明する。
【０２０９】
図２２Ａは、本実施形態における履歴解析装置２２００の機能的な構成を例示するブロック図である。図２２Ａに例示するように、履歴解析装置２２００は、ログ取得部２２０１と、解析部２２０２と、を備える。履歴解析装置２２００を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてもよい。
【０２１０】
履歴解析装置２２００は、図２２Ｂに例示するように、ファイル提供装置２２１０、ファイル操作装置２２２０と通信ネットワークを介して通信可能に接続されていてもよい。ファイル提供装置２２１０は、例えば、上記第１の実施形態及びその変形例におけるファイルサーバ１００と同様に構成された装置であってもよい。ファイル操作装置２２２０は、上記第１の実施形態及びその変形例におけるクライアント２００と同様に構成された装置であってもよい。
【０２１１】
履歴解析装置２２００におけるログ取得部２２０１は、ファイル提供装置２２１０において提供されるファイルに対するファイル操作装置２２２０からのアクセスに関する情報を含むアクセスログを取得する。また、ログ取得部２２０１は、ファイル提供２２１０装置又はファイル操作装置２２２０に配置されたファイルに対して、ファイル操作装置２２２０におけるプロセスにより実行された操作に関する情報を含むプロセス操作ログを取得する
アクセスログには、例えば、以下のような情報が含まれてもよい。アクセスログには、例えば、ファイル提供装置２２１０において提供されるファイルに対する操作が実行された時間を表す情報が含まれてもよい。アクセスログには、例えば、当該ファイルにアクセスしたファイル操作装置２２２０を特定可能な情報が含まれてもよい。アクセスログには、例えば、当該ファイルそのものを特定可能な情報（例えば、パス名、ファイル名等）が含まれてもよい。アクセスログには、例えば、当該ファイルに対して実行された操作の内容（例えば、読み込み、書き込み、削除、リネーム等）表す情報が含まれてもよい。アクセスログには、例えば、当該ファイルのサイズを表す情報が含まれてもよい。アクセスログは、例えば、上記第１の上記第１の実施形態及びその変形例におけるサーバアクセスログ１２０と同様のデータを保持してもよい。
【０２１２】
プロセス操作ログには、例えば、以下のような情報が含まれてもよい。プロセス操作ログには、例えば、ファイル操作装置２２２０において上記プロセスが実行された時間を表す情報が含まれてもよい。プロセス操作ログには、例えば、当該プロセスを識別可能な情報（識別子等）が含まれてもよい。プロセス操作ログには、当該プロセスにより操作（アクセスされた）ファイルを特定可能な情報（パス名、ファイル名）等が含まれてもよい。プロセス操作ログには、当該プロセスにより実行された操作の内容を表す情報が含まれてもよい。プロセス操作ログには、例えば、当該ファイルのサイズを表す情報が含まれてもよい。プロセス操作ログは、例えば、上記第１の上記第１の実施形態及びその変形例におけるファイルアクセスログ２３０及びディスク操作ログ２４０少なくとも一方と同様のデータを保持してもよい。
【０２１３】
係るログ取得部２２０１は、例えば、上記第１の実施形態及びその変形例におけるログ取得部３１０と同様に構成されてもよく、同様の機能を提供してもよい。
【０２１４】
解析部２２０２は、上記アクセスログ及び上記プロセス操作ログから、上記ファイル提供装置において提供された操作対象ファイルを操作した上記プロセスである操作プロセスを特定する。具体的には、解析部２２０２は、例えば、アクセスログとプロセス操作ログとから、操作対象ファイルに関するログを抽出してもよい。そして、解析部２２０２は、抽出した操作対象ファイルに関するログのうち、アクセスログとプロセス操作ログとにおいて操作が実行された時間と、操作の内容とが共通するログを更に抽出し、当該ログに関する操作を実行したプロセスを特定してもよい。
【０２１５】
解析部２２０２は、上記操作対象ファイルに対して実行された操作の種類に応じて、上記操作対象ファイルの派生元ファイルに対して実行され得る操作である派生元操作に関するログのうち、派生元操作に関する条件を満たすログを上記プロセス操作ログから抽出する。
【０２１６】
以下、具体例として、上記操作対象ファイルに対して実行された操作の種類が書き込み操作（Ｗｒｉｔｅ操作）である場合について説明する。この場合、解析部２２０２は、原本ファイルから読み込み操作により読み込まれたデータが、派生先ファイルである操作対象ファイルに書き込まれると推定する。よって、解析部２２０２は、例えば、操作対象ファイルの原本ファイルに対して実行され得る操作（派生元操作）として、読み込み操作（Ｒｅａｄ操作）を特定する。そして、解析部２２０２は、プロセス操作ログから、読み込み操作に関するログのうち、ある特定の条件を満たすログを抽出する。具体的には、解析部２２０２は、例えば、プロセス操作ログに含まれる読み込み操作の内、操作対象ファイルに関する書き込み操作が実行された時間と最も近い時間に実行された読み込み操作に関するログを抽出してもよい。なお、上記特定の条件は、操作対象ファイルに実行された操作と、派生元操作との間の関係等に応じて適宜定められてよい。
【０２１７】
解析部２２０２は、抽出した派生元操作に関するログに記録されたファイルを、上記操作対象ファイルに対する原本ファイルとして特定する。係る原本ファイルは、ファイル操作装置２２２０に保持されていてもよい。
【０２１８】
係る解析部２２０２は、例えば、上記第１の実施形態及びその変形例における解析部３４０と同様に構成されてもよく、同様の機能を提供してもよい。
【０２１９】
上記のように構成された本実施形態における履歴解析装置２２００によれば、異なる装置（例えばファイル提供装置２２１０、ファイル操作装置２２２０）にそれぞれ配置されたデータに関するログ（例えば、アクセスログ及びプロセス操作ログ）に基づいて、それらのデータに関する派生関係を特定することができる。その理由は、以下の通りである。まず、履歴解析装置２２００は、ファイル提供装置２２１０に配置された操作対象ファイルに関する操作を実行した操作プロセスを特定することができる。また、履歴解析装置２２００は、当該操作プロセスがファイル操作装置２２２０において実行した操作に関するログのうち、操作対象ファイルに関する原本ファイルに対して実行され得る操作を特定することができる。即ち、これにより、原本ファイルに関して実行され得る操作の候補をログから抽出することができる。係る候補のログの内、特定の条件を満たすログを選択することで、操作対象ファイルに関する原本ファイルを特定可能である。操作プロセスは、ファイル操作装置２２２０に配置されたファイルを操作可能であることから、原本ファイルは、ファイル操作装置２２２０に配置されていてよい。よって、履歴解析装置２２００は、例えば、ファイル提供装置２２１０に配置された操作対象ファイルと、ファイル操作装置２２２０に配置された原本ファイルの間の派生関係を特定することができる。
【０２２０】
上記各実施形態を用いて、本開示に関する技術を履歴解析装置（３００、２２００）に適用した例を説明した。上記各実施形態では、例えば、履歴解析装置（３００、２２００）を動作させることによって、本開示に関する履歴解析方法を実施することができる。履歴解析方法を実施する方法は上記に限定されず、履歴解析装置（３００、２２００）と同様の動作あるいは処理を実行可能な、適切な装置（例えば、コンピュータ等の情報処理装置）によって実施することも可能である。また、本開示に関する技術は、履歴解析装置３００と、ファイルサーバ１００と、クライアント２００とを含むシステム、又は、履歴解析装置２２００と、ファイル提供装置２２１０と、ファイル操作装置２２２０とを含むシステムとして実施されてもよい。
【０２２１】
＜ハードウェア及びソフトウェア・プログラム（コンピュータ・プログラム）の構成＞
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
【０２２２】
以下の説明においては、上記各実施形態において説明した履歴解析装置（３００、２２００）をまとめて、単に「履歴解析装置」と記載する。また、これら履歴解析装置の各構成要素を、単に「履歴解析装置の構成要素」と記載する場合がある。
【０２２３】
上記各実施形態において説明した履歴解析装置は、１つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図（図１、図１０、図１５、図１７、図２２Ａ及び図２２Ｂ）に示した各構成要素は、その一部又は全部を統合したハードウェア（処理ロジックを実装した集積回路あるいは記憶デバイス等）を用いて実現されてもよい。
【０２２４】
本開示に係る履歴解析装置が、専用のハードウェアにより実現される場合、係る履歴解析装置の構成要素は、例えば、それぞれの機能を提供可能な回路構成（ｃｉｒｃｕｉｔｒｙ）により実現されてもよい。係る回路構成は、例えば、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）等の集積回路や、当該集積回路を用いて実現されたチップセット等を含む。この場合、履歴解析装置の構成要素が保持するデータは、例えば、ＳｏＣとして統合されたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）領域やフラッシュメモリ領域、あるいは、当該ＳｏＣに接続された記憶デバイス（半導体記憶装置等）に記憶されてもよい。また、この場合、履歴解析装置の各構成要素を接続する通信回線としては、周知の通信ネットワークを採用してもよい。また、各構成要素を接続する通信回線は、それぞれの構成要素間をピアツーピアで接続してもよい。
【０２２５】
また、上述した履歴解析装置は、図２３に例示するような汎用のハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、履歴解析装置は、適切な数の汎用のハードウェア装置２３００と、ソフトウェア・プログラムとの組合せにより構成されてもよい。
【０２２６】
図２３における演算装置２３０１は、汎用のＣＰＵ（中央処理装置：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ等の演算処理装置である。演算装置２３０１は、例えば後述する不揮発性記憶装置２３０３に記憶された各種ソフトウェア・プログラムを記憶装置２３０２に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態における履歴解析装置の構成要素の機能は、演算装置２３０１により実行されるソフトウェア・プログラムを用いて実現されてもよい。
【０２２７】
演算装置２３０１は、例えば、複数のＣＰＵコアを備えたマルチコアＣＰＵであってもよい。また演算装置２３０１は、１つのＣＰＵコアが複数のスレッドを実行可能な、マルチスレッドＣＰＵであってもよい。ハードウェア装置２３００は、複数の演算装置２３０１を備えてもよい。
【０２２８】
記憶装置２３０２は、演算装置２３０１から参照可能な、ＲＡＭ等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置２３０２は、揮発性のメモリ装置であってもよい。
【０２２９】
不揮発性記憶装置２３０３は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置等の、不揮発性の記憶装置である。不揮発性記憶装置２３０３は、各種ソフトウェア・プログラムやデータ等を記憶可能である。
【０２３０】
ドライブ装置２３０４は、例えば、後述する記録媒体２３０５に対するデータの読み込みや書き込みを処理する装置である。
【０２３１】
記録媒体２３０５は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
【０２３２】
ネットワークインタフェース２３０６は、通信ネットワークとの間のデータの送受信を制御する装置である。履歴管理装置は、ネットワークインタフェース２３０６を介して、ファイルサーバ１００（ファイル提供装置２２１０）、クライアント２００（ファイル操作装置２２２０）等から各種ログを取得してもよい。
【０２３３】
上述した各実施形態を例に説明した本発明における履歴解析装置、あるいはその構成要素は、例えば、図２３に例示するハードウェア装置２３００に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。
【０２３４】
より具体的には、例えば、係るハードウェア装置２３００に対して供給したソフトウェア・プログラムを、演算装置２３０１が実行することによって、本発明が実現されてもよい。この場合、係るハードウェア装置２３００で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト、仮想環境基盤等のミドルウェアなどが各処理の一部を実行してもよい。
【０２３５】
上述した各実施形態において、上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能（処理）単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
【０２３６】
上記各実施形態及びその変形例に例示した履歴解析装置の各構成要素をソフトウェアモジュールとして実現する場合、例えば、これらのソフトウェアモジュールが不揮発性記憶装置２３０３に記憶されてもよい。そして、演算装置２３０１がそれぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置２３０２に読み出してもよい。
【０２３７】
また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。このような構成により、これらのソフトウェアモジュールは、相互に通信可能に接続される。
【０２３８】
更に、上記ソフトウェア・プログラムは記録媒体２３０５に記録されてもよい。この場合、上記ソフトウェア・プログラムは、上記履歴解析装置の出荷段階、あるいは運用段階等において、適宜ドライブ装置２３０４を通じて不揮発性記憶装置２３０３に格納されるよう構成されてもよい。
【０２３９】
なお、上記の場合において、上記ハードウェア装置２３００への各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
【０２４０】
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み込み可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置２３００と独立した媒体に限らず、ＬＡＮやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記録媒体を含む。
【０２４１】
また、上述した履歴解析装置の構成要素は、図２３に例示するハードウェア装置２３００を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、図２３に例示するハードウェア装置２３００の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図２３に例示するハードウェア装置２３００を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
【０２４２】
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。上述した各実施形態を組合せた実施形態も本発明の技術的範囲に含まれる。更に、上述した各実施形態と、上述した各実施形態に変更又は改良を加えた新たな実施形態とを組合せた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【符号の説明】
【０２４３】
１００  ファイルサーバ
１１０  共有記憶装置
１２０  サーバアクセスログ
２００  クライアント
２１０  記憶装置
２２０  ＣＰＵ
３００  履歴解析装置
３１０  ログ取得部
３４０  解析部
４００  ネットワーク
２２００  履歴解析装置
２２０１  ログ取得部
２２０２  解析部
２２１０  ファイル提供装置
２２２０  ファイル操作装置
２３０１  演算装置
２３０２  記憶装置
２３０３  不揮発性記憶装置
２３０４  ドライブ装置
２３０５  記録媒体
２３０６  ネットワークインタフェース
【図１】
0006720607.tif 000002
【図２】
0006720607.tif 000003
【図３】
0006720607.tif 000004
【図４】
0006720607.tif 000005
【図５】
0006720607.tif 000006
【図６Ａ】
0006720607.tif 000007
【図６Ｂ】
0006720607.tif 000008
【図７Ａ】
0006720607.tif 000009
【図７Ｂ】
0006720607.tif 000010
【図８】
0006720607.tif 000011
【図９】
0006720607.tif 000012
【図１０】
0006720607.tif 000013
【図１１】
0006720607.tif 000014
【図１２】
0006720607.tif 000015
【図１３】
0006720607.tif 000016
【図１４】
0006720607.tif 000017
【図１５】
0006720607.tif 000018
【図１６】
0006720607.tif 000019
【図１７】
0006720607.tif 000020
【図１８】
0006720607.tif 000021
【図１９】
0006720607.tif 000022
【図２０】
0006720607.tif 000023
【図２１Ａ】
0006720607.tif 000024
【図２１Ｂ】
0006720607.tif 000025
【図２２Ａ】
0006720607.tif 000026
【図２２Ｂ】
0006720607.tif 000027
【図２３】
0006720607.tif 000028