本発明の実施形態に関する説明に先立って、本発明に関する技術的な検討事項等についてより詳細に説明する。
近年、企業においては、情報共有等を目的とし、文書等の各種データ(例えば、ファイル)をデータ提供サーバ(例えば、ファイルサーバ)に配置している場合が多い。以下、説明の便宜上、係るデータが「ファイル」により提供されることを想定する。なお、本開示はこれには限定されず、係るデータはファイル以外の適切な形式により提供されてもよい。
例えば、ユーザ等が、ファイルを編集して更新した後に、係るファイルを別名保存する場合等、元データ(原本ファイル)に基づいて派生先ファイルが生成される場合がある。ファイルサーバに配置された派生先ファイルから元データを追跡する場合、ファイルサーバにおいて完結しない操作が実行されると、元データを追跡することが困難になる場合がある。
ファイルサーバにおいてファイルを共有する場合、例えば、ファイルサーバに配置されたファイルを直接編集せず、当該ファイルを一時的にユーザのクライアント装置(例えば、コンピュータ等)に転送してから編集し、別ファイルとしてファイルサーバに配置し直すことが考えられる。このように、例えば、ファイルの編集、格納等の操作がファイルサーバとクライアント装置との双方に亘って行われる場合を想定する。この場合、ファイルサーバ側とクライアント装置側とのそれぞれのアクセスログ情報を照らし合わせることで、それらのファイルに対して実行された一部の操作(例えばコピーなど)が確認され得る。しかしながら、上記したように、アクセスログに残らない情報(例えば、ファイル編集やネットワークからのダウンロードなど)に関しては、追跡するのが困難な場合がある。
またファイルを操作するアプリケーションによっては、当該アプリケーションに関する操作ログを取得することが困難な場合がある。また、ファイルを操作可能なアプリケーションについて、詳細な操作ログを提供するように改造すること、あるいは当該アプリケーション自体を他のアプリケーションに入れ替えることも、容易ではない場合がある。
上記を鑑みて、本開示に係る技術は、派生元ファイルと、派生先ファイルとが異なる装置(例えばファイルサーバとクライアント端末等)において配置、操作され得る状況において、それぞれの装置から取得可能なログ等を用いて、それらのファイル間の派生関係を推定する。例えば、ある派生先ファイルに対して過去に実行されたファイル操作の履歴を追跡することにより、当該派生先ファイルに対する派生元ファイルを推定することが考えられる。また、例えば、ある派生元ファイルから、当該ファイルに実行されたファイル操作の履歴を追跡することで、当該派生元ファイルに対する派生先ファイルを推定することが考えられる。
以下、各実施形態を用いて説明する本開示に係る技術は、ファイル操作が、コピー(移動)、削除、新規作成、変更(同一ファイル更新、別名保存)等に分類されることに着目する。本開示に係る技術は、例えば、ファイルサーバを利用する各クライアント装置から取得した、アプリケーションに関する情報、ファイルのアクセスログ、記憶装置又はネットワークの入出力情報、及びプロセスの実行状態に関する情報等を利用して、アプリケーションによるファイル操作を推定する。また、本開示に係る技術は、ファイルサーバのアクセスログと、クライアント端末のアクセスログ、及び上記推定したファイル操作を利用することで、ファイルの変更履歴を作成可能である。本開示に係る技術は、例えば、係る操作を再帰的に繰り返すことで、ある派生先ファイルに関する原本ファイル(派生元ファイル)を特定し、当該ファイルに関する操作履歴をたどることを可能にする。また、本開示に係る技術は、例えば、あるファイルに対する更新情報を時系列にたどることにより、当該ファイルに関する操作により生成された派生先ファイルを特定する。本開示に係る技術は、例えば、アプリケーションの操作ログ等から、派生元ファイルと派生先ファイルとの間の直接的な関係が得られない場合であっても、ファイル間の派生関係を推定可能である。これにより、本開示に係る技術は、ファイルに関する変更履歴を階層的に表現できる。
以下、本開示に係る技術を実現可能な履歴解析装置等について、各実施形態を用いて説明する。以下において説明する履歴解析装置は、単体の装置(物理的あるいは仮想的な装置)を用いて構成されてもよく、複数の離間した装置(物理的あるいは仮想的な装置)を用いて実現されてもよい。履歴解析装置が複数の装置により構成される場合、各装置の間は有線、無線、又はそれらを適切に組合せた通信ネットワーク(通信回線)により通信可能に接続されてもよい。係る通信ネットワークは、物理的な通信ネットワークであってもよく、仮想的な通信ネットワークであってもよい。以下において説明する履歴解析装置、あるいは、その構成要素を実現可能なハードウェア構成については、後述する。
<第1の実施形態>
本開示に関する第1の実施形態の構成について図面を参照して詳細に説明する。
[構成]
図1は、本実施形態に係る履歴解析装置300を含む、システムの構成を含む説明図である。
図1に例示するシステムは、ファイルサーバ100、クライアント200、履歴解析装置300、ネットワーク400から構成される。
ファイルサーバ100は、ネットワーク400を介して各種データ(ファイル)を提供可能なデータ提供装置である。ファイルサーバ100は、共有記憶装置110と、サーバアクセスログ120とを少なくとも有する。ファイルサーバ100は、例えば、コンピュータ等の情報処理装置により実現されてよい。ファイルサーバ100は、例えば、物理的な装置により実現されてもよく、周知の仮想化基盤を用いた仮想マシンにより実現されてもよい。
ファイルサーバ100は、共有記憶装置110に配置されたファイルを、1以上のクライアント200に対して提供可能である。ファイルサーバ100は、例えば、周知技術を含む適切な技術を用いて、ファイルの共有を実現してもよい。ファイルサーバ100は、一例として、NFS(Network File System)、SMB(Server Message Block )を用いて、ファイルの共有を実現してもよい。後述するライアント200(具体的には、クライアント200において実行されるアプリケーション)は、例えば、上記技術を用いて、ファイルサーバ100において提供されるファイルにアクセス可能である。
共有記憶装置110は、ファイルを保持し、当該ファイルに関する1以上のクライアント200からの読み込み・書き込み・削除などのファイル操作を処理することが可能な記憶装置である。共有記憶装置110は、例えば、ハードディスクや半導体記憶装置等の物理的なストレージデバイスを用いて実現されてもよい。また、共有記憶装置110は、周知の仮想化基盤を用いた仮想ストレージを用いて実現されてもよい。
サーバアクセスログ120は、共有記憶装置110に保持されたファイルに対する操作(ファイル操作)の記録(ログ)である。サーバアクセスログ120には、クライアント200により実行された、ファイル操作が記録されてもよい。サーバアクセスログ120には、例えば図2に例示するように、あるファイルに関する「アクセス時間(120a)、アクセス元(120b)、ファイル名(120c)、ファイル操作(120d)、サイズ(120d)」の各要素が時系列順に複数記録されてよい。サーバアクセスログ120は、例えば、図2に例示するような形式で、ファイル操作に関する記録を保持してもよいが、これには限定されない。
アクセス時間120aは、共有記憶装置110に保持されたファイルに対する操作が実行された時間を表す。ファイルに対する操作が実行された時間は、当該操作によりファイルがアクセスされた時間であってもよい。
アクセス元120bは、当該ファイルにアクセスしたクライアント200を特定可能な情報を表す。アクセス元120bは、例えば、クライアント200を識別可能な名称(例えばコンピュータ名等)を表す情報、あるいは、ネットワークアドレスを表す情報であってもよい。
ファイル名120cは、操作されたファイルを特定可能な情報を表す。ファイル名120cは、データが保存されたファイルを特定可能な名称を表す情報であってもよい。係るファイル名120cは、例えば、ファイルサーバにおいて提供されるファイルのパス(共有パス)を表す情報であってもよい。
サーバアクセスログ120に記録されるファイル名120cと、ファイルアクセスログ230(後述)に記載されるファイル名230bとは、例えば、同じパス名(ファイルサーバの共有パスのパス名等)で記載され、それらの間の同一性を確認可能である。例えば、ファイルサーバ100における特定のファイルにクライアント200がアクセスした場合、サーバアクセスログ120と、ファイルアクセスログ230とに対して、当該ファイルを表す同じパス名が記録されてもよい。例えば、ファイルサーバ100、クライアント200がOSとしてWindows(登録商標)を採用している場合、係るパス名は、コンピュータ名及び共有名等を含む完全パスの形式により表されてもよい。
ファイル操作120dは、ファイルに対して実行された操作を表す。係るファイル操作120dは、例えば、「Read(読み込み)、Write(書き込み)、Delete(削除)、Rename(リネーム、名称変更)」のいずれかであってよい。サーバアクセスログ120には、上記以外の操作が記録されてもよい。
サイズ120eは、何からの操作が実行されたファイルのサイズを表す。
クライアント200は、ファイルを操作するアプリケーションを実行することが可能な装置である。クライアント200は、記憶装置210、CPU(Central Processing Unit)220を備える。クライアント200は、例えば、PC(Personal Computer)等のコンピュータであってもよく、通信機能を有するその他の情報処理装置であってもよい。クライアント200は、物理的な装置により実現されてもよく、周知の仮想化基盤を用いた仮想マシンにより実現されてもよい。係るクライアント200は、通信ネットワークを介してファイルサーバ100、履歴解析装置300と通信可能に接続される。なお、ファイルサーバ100に対して、複数のクライアント200が接続されてよい。
クライアント200は、ファイルアクセスログ230、ディスク操作ログ240、ネットワーク操作ログ250、プロセス状態情報260、ネットワーク状態情報270を有する。なお、これらのログ等のデータは、記憶装置210に保持されてもよい。
クライアント200(具体的にはクライアント200において実行されるアプリケーション)は、ファイルサーバ100において提供されるファイルにアクセス可能である。また、クライアント200は、自装置に保持する記憶装置210(後述)に配置されたファイルにアクセス可能である。
記憶装置210は、ファイルの記憶(保管)、読み込み、書き込み、削除などのファイル操作を処理可能である。具体的には、記憶装置210は、CPU220により実行されたアプリケーションによる、ファイル操作を処理可能である。記憶装置210は、例えば、ハードディスクや半導体記憶装置等の物理的なストレージデバイスを用いて実現されてもよい。また、クラインと200が仮想マシンとして実現された場合、記憶装置210は仮想ストレージとして実現されてもよい。
CPU220は、クライアント200におけるアプリケーション実行処理を行う処理デバイスである。CPU220は、汎用のマイクロプロセッサ等により実現されてもよい。あるアプリケーションがクライアント200において実行された場合、CPU220は、当該アプリケーションに関するプロセスを実行する。
ファイルアクセスログ230は、例えば、クライアント200によりファイルサーバにおける共有記憶装置110に対して実行されたファイル操作に関する記録(データ)を保持する。ファイルアクセスログ230には、例えば、図3に例示するような形式で、「アクセス時間(230a)、ファイル名(230b)、ファイル操作(230c)、サイズ(230d)」の各要素が時系列順に複数記録されてよい。
アクセス時間230aは、上記アクセス時間120aと同様、共有記憶装置110に保持されたファイルに対する操作が実行された時間を表す。ファイルに対する操作が実行された時間は、当該操作によりファイルがアクセスされた時間であってもよい。
ファイル名230bは、上記ファイル名120cと同様、ファイルを特定可能な情報を保持してよい。ファイル名230bは、データが保存されたファイルを特定可能な名称を表す情報であってもよい。
ファイル操作230cは、ファイルに対して実行された操作を表す。ファイル操作230cには、上記ファイル操作120dと同様、「Read(読み込み)、Write(書き込み)、Delete(削除)、Rename(名称変更)」のいずれかが記録されてよい。ファイルアクセスログ230のファイル操作には、上記以外の操作が記録されてもよい。
サイズ230dは、操作されたファイルのサイズを表す。
ディスク操作ログ240は、クライアント200が、記憶装置210に対して行ったディスクアクセス操作が記録されたデータを保持する。より具体的には、ディスク操作ログ240には、例えばアプリケーションが、記憶装置210に対して実行したファイルアクセスに関する操作が記録されてよい。ディスク操作ログ240には、例えば、図4に例示するような形式で、「アクセス時間240a、プロセスID240b、ファイル名240c、ファイル操作240d、サイズ240e」の各要素が時系列順に複数記録されてよい。
アクセス時間240aは、ディスク操作が発生した時間を表す。ディスク操作が発生した時間は、当該ディスク操作によりファイルがアクセスされた時間であってもよい。
プロセスID(Identifier)240bは、ディスクアクセスを実行したプロセスを識別可能な情報(識別子)を表す。
ファイル名240cは、上記ファイル名120c、ファイル名230b等と同様、ファイルを特定可能な情報を保持してよい。即ち、ファイル名240cは、データが保存されたファイルを特定可能なファイル名(パス名)等を表す情報であってもよい。
ファイル操作240dには、上記ファイル操作120d、230cと同様の情報が記録されてもよい。
サイズ240eには、上記サイズ120e、サイズ230dと同様、ファイルのサイズが記録されてよい。
ネットワーク操作ログ250は、クライアント200が、ネットワーク400を介して他のネットワーク410との間でデータを送受信した際のネットワーク操作が記録されたデータを保持する。ネットワーク操作ログ250には、例えば、図5に例示するような形式で、「アクセス時間250a、アクセス元ポート番号250b、送受信方向250c、アクセス先ホスト250d、アクセスポート番号250e、サイズ250f」の各要素が時系列順に複数記載されてよい。
アクセス時間250aは、ネットワーク操作が実行された時間を表す。
アクセス元ポート番号250bは、ネットワーク操作を行った際のクライアント200におけるポート番号を表す。
送受信方向250cは、ネットワーク操作の種類を表す。具体的には、送受信方向250cは、ネットワーク操作が送信(Upload)であるか、受信(Download)であるかを表してもよい。
アクセス先ホスト250dは、クライアント200において実行されたネットワーク操作のアクセス先を識別可能な情報を表す。アクセス先ホスト250dは、例えば、アクセス先ホストを識別可能な名称(ホスト名等)であってもよく、アクセス先ホストのネットワークアドレスであってもよい。
アクセス先ポート番号250eは、クライアント200において実行されたネットワーク操作により接続される、アクセス先ホストのポート番号を表す。
サイズ250fは、クライアント200において実行されたネットワーク操作により送信又は受信されたデータのサイズを表す。
プロセス状態情報260は、CPU220において処理される1以上のプロセスの状態が時系列に記録されたデータ(プロセス状態)を保持する。プロセス状態情報260には、例えば、ある規定された時間ごと(例えば、一定時間ごと)のプロセスの状態が記録されてよい。プロセス状態情報260には、例えば、図6Aに例示するような形式で「プロセスID(260a)、プロセス名(260b)、実行ユーザ(260c)」の各要素が記録される。なお、プロセス状態情報260には、例えば、図6Bに例示するような形式で、あるプロセス状態が記録された時間を表す時刻情報260dが記録されてもよい。
プロセスID260aは、クライアント200において実行されたプロセスを識別可能な情報(識別子)を表す。
プロセス名260bは、プロセスID260aにより識別されるプロセスの名称を表す。プロセス名260bは、例えば、クライアント200で実行されたアプリケーションの名称を表してもよい。
実行ユーザ260cは、クライアント200においてプロセスを実行したユーザを表す。
ネットワーク状態情報270は、クライアント200において使用されている、ネットワークのポート番号の利用状況が時系列に記録されたデータを保持する。ネットワーク状態情報270には、例えば、ある既定された時間ごと(例えば、一定時間ごと)に、使用されているネットワークのポート番号が記録されてよい。ネットワーク状態情報270には、例えば、図7Aに例示するような形式で、ポート番号(270a)と、プロセスID(270b)との各要素が記載される。なお、ネットワーク状態情報270には、例えば、図7Bに例示するような形式で、あるポート番号の利用状況が記録された時間を表す時刻情報(270c)が記録されてもよい。
ポート番号270aは、クライアント200において使用されているネットワークのポート番号を表す。
プロセスID270bは、ポート番号270aのポートを使用しているプロセスのプロセスIDを表す。
履歴解析装置300は、ログ取得部310と、解析部340とを備える。履歴解析装置300は、操作履歴情報320と、アプリケーション情報330とを有してもよい。履歴解析装置300は、コンピュータ等の情報処理装置により実現され得る。履歴解析装置300は、例えば、物理的な装置により実現されてもよく、周知の仮想化基盤を用いた仮想マシンにより実現されてもよい。係る履歴解析装置300は、ネットワーク400を介してファイルサーバ100、クライアント200と通信可能に接続される。
ログ取得部310は、ファイルサーバ100及びクライアント200から、ネットワーク400を介して各種ログ情報を取得し、操作履歴情報320を生成する機能を有する。係る各種ログ情報には、例えば、サーバアクセスログ120、ファイルアクセスログ230、ディスク操作ログ240、ネットワーク操作ログ250、プロセス状態情報260、ネットワーク状態情報270等が含まれてよい。
操作履歴情報320は、ファイルサーバ100又はクライアント200において、あるファイルに対して実行された操作履歴をデータとして保持する。操作履歴情報320には、具体的には、あるファイルに関する操作履歴を解析部340が解析した解析結果が記録される。操作履歴情報320には、例えば、図8に例示するような形式で、「操作時間(320a)、ファイル名(320b)、ユーザ操作(320c)、操作元ホスト(320d)、操作元ファイル(320e)、操作ユーザ(320f)」の各要素が記録されてよい。
操作時間320aは、あるファイルに対する操作が実行された時間を表す。係る操作時間320aは、当該ファイルに対してアクセスされた時間であってもよい。
ファイル名320bは、操作が実行されたファイルを特定可能な情報(例えば、ファイルの名、パス名等)を表す。
ユーザ操作320cは、ファイルに対して実行された操作を表す。ユーザ操作320cには、例えば、「コピー、新規作成、編集、派生、削除、移動、リネーム」のいずれかが記録されてよい。ユーザ操作320cには、上記以外の操作が記録されてもよい。
操作元ホスト320dは、ファイルの操作が実行されたクライアント200を特定可能な除法を表す。
操作元ファイル320eは、あるファイルの原本ファイル(派生元ファイル)を特定可能な情報(例えば、ファイル名、パス名等)を表す。
操作ユーザ320fは、例えば、ファイルを操作したユーザを特定可能な情報(例えば、ユーザ名等)を表す。
アプリケーション情報330は、アプリケーションに関する情報(例えば、アプリケーションで使用できる拡張子及び操作に関する情報)をデータとして保持する。アプリケーション情報330には、例えば、図9に例示するように、アプリケーションに関する「アプリケーション名(330a)、拡張子(330b)、可能操作(330c)、ポート番号(330d)」を表す情報が記録されてよい。アプリケーション情報330は、ユーザ等によって予め登録されていてもよい。
アプリケーション名330aは、アプリケーションの名称を表す。
拡張子330bは、例えば、アプリケーションが扱えるファイルの拡張子(アプリケーションに関連付けされたファイルの拡張子)を表す。
可能操作330cは、アプリケーションが実行可能なファイル操作の種類を表す。可能操作330cには、例えば、「Edit(編集)、Copy(コピー:複製)、Download(ダウンロード)、Upload(アップロード)」のいずれかが記載されてよい。可能操作330cには、上記以外の操作が記録されてもよい。
ポート番号330dは、アプリケーションがネットワーク通信の際に使用するポート番号を表す。
解析部340は、ログ取得部310において取得した各種ログ情報、操作履歴情報320、及び、アプリケーション情報330から、ファイルサーバに配置されたあるファイル(「対象ファイル」と記載する場合がある)の派生元であるファイル(「原本ファイル」と記載する場合がある)と、当該対象ファイルに関する操作履歴とを推定する。解析部340の具体的な処理について後述する。
ネットワーク400は、ファイルサーバ100と、1以上のクライアント200と、履歴解析装置300とを通信可能に接続し、これらの間においてファイルを転送可能とする通信ネットワークである。ネットワーク400は、他のネットワーク410に接続可能であり、他のネットワーク410との間で、例えば、Web(World Wide Web)や電子メールなど用いて、情報(データ)を送受信することができる。係るネットワーク400は、有線通信、無線通信、あるいはそれらの適切な組合せにより実現されてもよい。係るネットワーク400は、周知の仮想化基盤を用いた仮想ネットワークとして実現されてもよい。
ネットワーク400は、他のネットワーク410(通信ネットワーク)と通信可能に接続されていてもよい。他のネットワーク410は、有線通信、無線通信、あるいはそれらの適切な組合せにより実現されてもよく、周知の仮想化基盤を用いた仮想ネットワークとして実現されてもよい。
なお、上記説明したサーバアクセスログ120及びファイルアクセスログ230には、共通の時間情報(時刻情報)が記録されることを想定する。このため、ファイルサーバ100の時間情報と、各クライアント200の時間情報とは、同期されていてよい。なお、これらの時間情報を厳密に同期することが困難な場合には、例えば、アクセス時間とサイズとを比較することにより、サーバアクセスログ120とファイルアクセスログ230とにおけるアクセス時間と、ファイル名とについて、同一性を確保できることを想定する。例えば、履歴解析装置300(特には解析部340)は、サーバアクセスログ120に記録された特定のログと、ファイルアクセスログ230に記録された特定のログとが、同一のファイルについて実行された操作に関するログであるか否かを、以下のような方法で判定してよい。即ち、履歴解析装置300は、それら2つのログに記録されたアクセス時間の差異と、サイズの差異との少なくとも一方が、規定値より小さい場合、それらのログは同一のファイルについて実行された操作に関するログであると判定してよい。
[動作]
以下、本実施形態における履歴解析装置300の動作について図面を参照して説明する。具体的には、ファイルサーバ100の共有記憶装置110に保持されている対象ファイル501に対する原本ファイル541と、対象ファイル501に関する操作履歴とを推定する処理について、説明する。対象ファイル501は、履歴解析の対象となるファイルである。原本ファイル541は、対象ファイル501の原本(派生元)のファイルである。
一般的に、原本ファイル(派生元)から読み込まれたデータに対して、編集、コピー、別名保存等が実行されることで、派生先ファイルが作成されると考えられる。換言すると、対象ファイル501に対する書き込み(Write)操作が実行される前に、原本ファイル541から読み込み操作(read)が実行されていると考えられる。履歴解析装置300(解析部340)は、対象ファイル501に関する書き込み(Write)操作の前に実行された、ある特定の条件を満たす読み込み(Read)操作を特定する。そして、当該Read操作が実行されたファイルを、対象ファイル501に関する原本ファイル541と推定する。以下、派生元ファイルに対して実行された操作を、派生元操作と記載する場合がある。
履歴解析装置300は、ログ取得部310を使用して、ファイルサーバ100より、サーバアクセスログ120を取得する。また、履歴解析装置300は、1以上のクライアント200より、ファイルアクセスログ230、ディスク操作ログ240、ネットワーク操作ログ250、プロセス状態情報260、ネットワーク状態情報270の各ログを取得する(図10のステップS1001)。
解析部340は、サーバアクセスログ120から、対象ファイル501の操作が記載されているログを抽出して時系列順に並べる。解析部340は並べたログからWrite操作に関するログを抽出することにより、対象ファイル501に対するWrite操作に該当する第1アクセスログリスト502を抽出する(ステップS1002)。
解析部340は、第1アクセスログリスト502の中で最も古いアクセス時間の第1アクセスログ503を抽出する(ステップS1003)。解析部340は、上記に限定されず、例えば、最も古いアクセス時間からある基準時間の範囲内のログを、第1アクセスログ503として抽出してもよい。
解析部340は、第1アクセスログ503に記録された「アクセス元(図2の120b)」を参照する。解析部340は、当該アクセス元120bに該当するクライアント200のファイルアクセスログ230を取得する(ステップS1004)。
解析部340は、取得したファイルアクセスログ230から、対象ファイル501と同一のファイル名を含むログのリストを選択して時系列順に並べる。これにより、解析部340は、ファイルアクセスログリスト511を作成する(ステップS1005)。
解析部340は、ファイルアクセスログリスト511から、アクセス時間230a及びファイル操作230cが、それぞれ、サーバアクセスログ120に記録されたアクセス時間120a及びファイル操作120dと合致するログを取得する(ステップS1006)。以下、当該取得したログを、以下書き込みログ512と記載する。
なお、ファイルアクセスログ230と、ディスク操作ログ240とに、同様のデータが記録されている場合には、上記ステップS1004乃至ステップS1005において、ファイルアクセスログ230を用いずに、ディスク操作ログ240を用いてもよい。
解析部340は、ディスク操作ログ240から、書き込みログ512とアクセス時刻が一致するログを選択する。解析部340は、選択したログの内、プロセスID240bに記録されたデータを取得する(ステップS1007)。以下、プロセスID240bのデータを、プロセスID521(操作プロセスID)と記載する。係るプロセスID521に該当するプロセスが、対象ファイルに対するWrite操作を実行したアプリケーションのプロセスである。
解析部340は、クライアント200から取得したプロセス状態情報260の中から、プロセスID521と同一のプロセスIDを含むデータを検索し、当該データに含まれるプロセス名260bを取得する(ステップS1008)。以下、取得したプロセス名260bを、プロセス名522と記載する。
解析部340は、アプリケーション情報330から、アプリケーション名(図9の330a)がプロセス名522に合致するデータを抽出し、プロセス名522に相当するアプリケーションに関する可能操作(図9の330c)を特定する(ステップS1009)。以下、特定した可能操作330cを、可能操作523と記載する。プロセス名522を抽出できない場合、解析部340は、当該アプリケーションを未知のアプリケーションとして扱う。この場合、解析部340は、当該アプリケーションが、任意のファイル操作及びネットワーク操作の少なくとも一方を実行可能であると推定する。
以下、解析部340が、書き込みが行われた対象ファイル501の更新元又はコピー元になったファイル(派生元ファイル(原本ファイル))を検出する処理について説明する。解析部340は、例えば、上記説明したステップS1009における処理の後、以下に説明する原本ファイルを推定する処理を実行してもよい。
アプリケーション情報330のプロセス名522における可能操作523に「Edit(編集)」の要素が含まれる場合を想定する。この場合、クライアント200において、ファイルの新規作成、編集による改変、別名保存による派生等が行われている可能性がある。以下、この場合に、解析部340が実行する処理について図11、図12に例示するフローチャートを参照して説明する。
解析部340は、プロセス状態情報260から、書き込みログ512のアクセス時間よりも前(過去)に、プロセスID521を含むデータが記録された最も古い時間を検出する(ステップS1201)。換言すると、解析部340は、書き込みログ512のアクセス時間よりも過去に、プロセスID521を含むデータが初めてプロセス状態情報260に記録された時間を検出する。以下、プロセスID521を含むデータが記録された最も古い時間を「プロセス起動時間」と記載する場合がある。
具体的には、解析部340は、例えば、書き込みログ512のアクセス時間から、プロセス状態情報260の記録を過去に遡り、プロセスID521を含むプロセス状態が記録されたデータを確認してよい。解析部340は、例えば、プロセスID521を含むデータの内、記録された時間が最も古いデータを抽出する。そして、そのデータが記録された時間を、プロセス起動時間として扱ってよい。以下、係るプロセス起動時間を、プロセス起動時間531と記載する場合がある。解析部230は、プロセスID521に該当するアプリケーションが、少なくとも、プロセス起動時間531から書き込みログ512のアクセス時間の間で生存していた(実行されていた)と推定してよい。
解析部340は、ファイルアクセスログ230の中から、プロセス起動時間531から、書き込みログ521のアクセス時間までの間の書き込まれたログを確認する。解析部340は、それらのログのうち、可能操作523に関連するログを絞り込む。これにより、解析部340は、プロセスID521に該当するアプリケーションによる操作が記録されたログの候補である、アクセスログリスト532(第2アクセスログリスト)を抽出する(ステップS1202)。解析部340は、例えば、可能操作523が「Edit(編集)」である場合、ファイルアクセスログ230の中から、ファイル操作(図3の230c)が「Read、Write、Rename」に相当するログを抽出してもよい。
解析部340は、抽出したアクセスログリスト532のうち、ディスク操作ログ240に含まれるプロセスIDが、プロセスID521と合致するログを抽出する。解析部340は、抽出したログを用いて、第3アクセスログリストを生成する(ステップS1203)。以下、第3アクセスログリストを、アクセスログリスト533と記載する場合がある。
解析部340は、アクセスログリスト533に読み込み(Read)操作のログが含まれるか確認する(ステップS1204)。解析部340は、例えば、操作対象ファイルに実行された操作(Write操作)に応じて、派生元ファイルに対して実行され得る操作(派生元操作)である読み込み操作(Read操作)を特定し、アクセスログリスト533に読み込み(Read)操作のログが含まれるか確認してもよい。
以下、アクセスログリスト533にRead操作ログが含まれる場合(ステップS1204においてYES)について説明する。
あるプロセスが単一の文書しか編集できない場合、古い読み込みアクセスによる更新は破棄されたものと考えられる。例えば、読み込みアクセス(Read)が複数回発生した場合、新しい読み込みアクセスにより、旧い読み込みアクセスの内容が破棄され得る。よって、解析部340は、アクセスログリスト533(第3アクセスログリスト)の中で最も新しい(アクセス時間が新しい)Read操作が含まれる候補ログを取得する(ステップS1205)。解析部340は、例えば、アクセスログリスト533の中で、書き込みログ512のアクセス時間に最も近い時間に実行されたRead操作に関するログを、候補ログとして取得してもよい。複数のRead操作が同じ時間に記録されている場合、解析部340は、最後に記録されたRead操作に関するログを、候補ログとして取得してもよい。以下、係るログを、候補ログ534と記載する。
この場合、解析部340は、対象ファイル501の更新元となった原本ファイル541は、候補ログ534のファイル名により特定されるファイルであると推定してよい(ステップS1206)。換言すると、解析部340は、候補ログ534のファイル名を、原本ファイル541のファイル名であると推定する。
原本ファイル541のファイル名(即ち、候補ログ534に記録されたファイル名)と、対象ファイル501のファイル名とが合致する(同一である)場合は、解析部340は、当該ファイルに対して実行されたユーザ操作が「更新」であると推定する。以下、推定したユーザ操作を、ユーザ操作535と記載する場合がある。
原本ファイル541のファイル名と、対象ファイル501のファイル名とが異なる場合、解析部340は、対象ファイル501は、原本ファイル541とは異なるファイル名で保存された派生先ファイルであると推定する。この場合、解析部340は、ユーザ操作が「派生」であると推定してよい。
以下、Read操作に関するログが、アクセスログリスト533(第3アクセスログリスト)に含まれない場合(ステップS1204においてNO)について説明する。
この場合、解析部304は、対象ファイル501に関する原本ファイル541が検出されないと判定してよい(ステップS1207)。
解析部340は、他に可能操作523に他の要素(Edit以外の要素)が存在するか確認する(ステップS1208)。
ステップS1208においてNO(他の可能操作がない)場合、解析部340は、対象ファイル501は新たに作成されたファイルであると推定する(ステップS1209)。これにより、解析部340は、ユーザ操作535が「新規作成」であると推定してよい。
ステップS1208においてYES(他の可能操作がある)場合、解析部340は、他の操作について確認する(ステップS1210)。
以下、アプリケーション情報330におけるプロセス名522を含むログの可能操作523に「コピー(Copy)」の要素が含まれる場合について、図13のフローチャートを参照して説明する。図12のフローチャートと同様の処理については同様の参照符号を付すことで重複する説明を省略する。
あるファイルについてコピーの操作が実行された場合、アプリケーションは、当該ファイルの内容を編集せずに、当該ファイルを別の配置場所に複製、移動したと考えられる。具体的な一例として、Windows(登録商標)におけるエクスプローラを用いたファイル操作を想定すると、ファイルを別フォルダにコピーもしくは移動する操作が行われたと考えられる。
あるファイルがコピーされる場合、コピー先のファイルに関する書き込み操作が発生する前に、コピー元のファイルに対する読み込み操作が、コピー先のファイルと同程度のサイズで実行されていると考えられる。
そこで、解析部340は、コピー元のファイルを追跡すべく、例えば、上記説明した可能操作に「Edit(編集)」の要素が含まれている場合と同様の処理を実行してよい(ステップS1201乃至ステップS1205)。これにより、解析部340は、アクセスログリスト533(第3アクセスログリスト)を生成し、最も新しいRead情報が含まれる候補ログ534を取得する。
解析部340は、抽出した候補ログ534のうち、ログに記録されたサイズ(230d)が、書き込みログ512のサイズに一致するデータを抽出する(ステップS1301)。即ち、解析部340は、ディスクに対する書き込み操作が発生する前に実行された読み込み操作に関するログうち、書き込まれたサイズに合致するサイズの読み込み操作のログを抽出する。以下、抽出した読み込み操作に関するログを、複製元候補ログと記載する場合がある。
これにより、解析部340は、対象ファイル501の更新元となった原本ファイル541のファイル名が、複製元候補ログに記載されたファイル名であると推定できる。
解析部340は、ファイルアクセスログ230を参照し、複製元候補ログのアクセス時間より後に、当該複製元候補ログに記載されたファイル名のファイルに関するDelete操作のログが存在するか否かを判定する(ステップS1302)。具体的には、解析部340は、複製元候補ログのアクセス時間から、所定の削除基準時間以内に、当該複製元候補ログに記載されたファイル名のファイルに関するDelete操作のログが存在するか否かを判定してもよい。係る削除基準時間は、適宜定められてよい。係る削除基準時間は、例えば、ある基準に基づいて定められた、十分に短い一定の時間であってもよい。
ステップS1302においてYESの場合、解析部340は、対象ファイル501に関する原本ファイル541が削除されたと推定し、ユーザ操作535について「移動」操作であると判定する(ステップS1303)。また、ステップS1302においてNOの場合、解析部340は、対象ファイル501は、原本ファイル541からコピーされたと推定し、ユーザ操作535について「コピー」操作であると判定する(ステップS1304)。
以上、解析部340が、ユーザ操作535について、「コピー」、「更新」、「新規作成」、「派生」と判定する方法について説明した。解析部340は、上記以外の「リネーム(Rename)」、「削除(Delete)」の操作については、ディスク操作ログ240を参照して、直接的にこれらの操作を特定可能である。この場合、解析部340は、ディスク操作ログ240の内容から、ユーザ操作535を特定可能である。解析部340は、ユーザ操作が「リネーム」である場合の原本ファイル541を、ディスク操作ログ240の内容から特定可能である。
解析部340は、対象ファイル501に関する原本ファイル541を特定できた場合、操作履歴情報320にファイルの更新情報を記載する。
解析部340は、上記推定結果と、収集した各種ログを用いて、操作履歴情報320に以下のデータを記録することができる。即ち、操作履歴情報320の操作時間320aには、対象ファイル501の操作時間(対象ファイル501のアクセス時間)が設定されてよい。ファイル名320bには、対象ファイル501のファイル名が設定されてよい。ユーザ操作320cは、上記推定したユーザ操作535が設定されてよい。操作元ホスト320dには、対象ファイル501に関する操作を実行したクライアント200のホスト名等が設定されてよい。操作元ファイル320eには、上記処理において推定された候補ログ534のファイル名が設定されてよい。操作ユーザ320fには、プロセス状態情報260から抽出した実行ユーザ260cが設定されてよい。解析部340は、例えば、対象ファイル501の操作時間の近傍で、プロセスID521に関連付けて登録された実行ユーザ260cのデータを、操作ユーザ320fに登録してよい。
解析部340は、例えば、特定した原本ファイル541を対象ファイル501におきかえて(即ち、特定した原本ファイルを新たな対象ファイルとして)、上記処理を再帰的に実行してよい。これにより、操作履歴情報320に情報が追記され、これを順に参照することで、ファイルの変更元履歴を追跡することができる。
上記のように構成された本実施形態における履歴解析装置300は、例えば、アプリケーションによる操作ログが取得できない環境であっても、ファイルの更新履歴の追跡が可能となる。なぜならば、履歴解析装置300(特に解析部340)は、クライアント200に記録された各種ログを用いて、対象ファイル501を操作したアプリケーションと、その操作とを特定できるからである。具体的には、履歴解析装置300は、例えば、対象ファイル501のアクセス時間を参照して、ファイルアクセスログ230、ディスク操作ログ240、プロセス状態情報260等から、対象ファイル501に関する操作を実行したアプリケーションを抽出する。そして、当該アプリケーションが実行可能な操作、及び、当該アプリケーションが実行したファイル操作のログ等から、対象ファイル501に関する原本ファイル541と、アプリケーションにより実行されたユーザ操作と、を特定することができる。
履歴解析装置300は、対象ファイル501の更新履歴を遡ることにより、当該対象ファイル501の元になったオリジナルデータを検出可能である。その理由は、履歴解析装置300は、上記したように、ある対象ファイル501に関する原本ファイル541を特定可能であるからである。即ち、履歴解析装置300は、係る処理を繰り返し(再帰的に)実行することにより、ある対象ファイル501に関する原本ファイル541を順次追跡することができる。
履歴解析装置300は、対象ファイル501に関する原本ファイル541を特定することで、原本ファイル541を操作(例えば、新規作成、編集等)したユーザを特定可能である。
以上より、本実施形態における履歴解析装置300によれば、異なる装置(例えば、ファイルサーバ100と、クライアント200)にそれぞれ配置されたファイル(例えば、対象ファイル501、原本ファイル541)に関するログ(サーバアクセスログ120、ファイルアクセスログ230、ディスク操作ログ240等)に基づいて、それらのファイルに関する派生関係を特定できる。
<第1の変形例>
以下、上記説明した第1の実施形態に係る第1の変形例(以下、変形例1と記載する場合がある)について説明する。本変形例は、通信ネットワークからのダウンロード(例えば、Webサーバからのダウンロード)等の操作が含まれる場合に対応する。
本変形例における履歴解析装置300を実現可能な装置構成は、上記第1の実施形態と同様としてよい。本変形例における履歴解析装置300は、以下に説明する通り、上記第1の実施形態における履歴解析装置300とは動作が異なる。本変形例における履歴解析装置300は、ネットワーク操作ログ250及びネットワーク状態情報270を参照する。
本変形例においても、図10に例示した、対象ファイル501を操作するアプリケーションに関する可能操作(可能操作523)を取得する処理は、上記第1の実施形態と同様としてよい。
以下、アプリケーション情報330のプロセス名522における可能操作にDownloadの要素が含まれる場合について説明する。この場合、クライアント200においては、例えば、ネットワーク400経由で、他のネットワーク410からデータがダウンロードされている可能性がある。係るダウンロードは、例えば、Webブラウザを用いたダウンロード等、現在は一般的な方法により実行され得る。ダウンロード操作により、ネットワーク400からデータが受信されることから、一般的に、ダウンロード処理を実行した後(例えば直後)に、ダウンロードしたデータのサイズと同程度のサイズで、ファイルに対する書き込みが発生していると考えられる。そこで、履歴解析装置300(解析部340)は、対象ファイル501に関する書き込み(Write)操作の前に実行された派生元操作として、ある特定の条件を満たすダウンロード(Read)操作を特定する。そして、履歴解析装置300は、当該ダウンロード操作により受信したデータを、対象ファイル501に関する原本ファイル541と推定する。
解析部340は、ダウンロードしたファイルを追跡すべく、上記第1の実施形態において、可能操作523に「編集」の要素が含まれている場合と似た処理を実行する。以下、係る解析部340の処理について、図14に例示するフローチャートを参照して説明する。
解析部340は、上記説明したステップS1201と同様の処理により、対象ファイル501と同じファイル名のファイルについて書き込み処理を実行したプロセス(プロセスID512)の起動時間(プロセス起動時間)を抽出する(ステップS1401)。
解析部340は、プロセス起動時間から書き込みログ512のアクセス時間までの間に取得されたネットワーク状態情報270を参照し、プロセスID(270b)にプロセスID521(操作プロセスID)が記録されたデータを抽出する。プロセスID521は、上記したように、クライアント200において、対象ファイル501に関する操作を実行したプロセスに関するプロセスIDである。
解析部340は、例えば、ネットワーク操作ログ250に記録されたログのうち、プロセス起動時間531から書き込みログ512のアクセス時間の範囲で以下のログを抽出する。即ち、解析部340は、例えば、ネットワーク操作ログ250から、プロセスID521のプロセスが使用するポート番号と、アクセス先ポート番号250eが一致するログを抽出してよい。解析部340は、例えば、アプリケーション名(330a)がプロセス名522に一致するデータがアプリケーション情報330に登録されている場合、そのポート番号(330d)と、アクセス先ポート番号250eとが一致するログを抽出してよい。解析部340は、抽出したログを含むネットワークログリスト560を生成する(ステップS1402)。ネットワークログリスト560は、ネットワーク操作ログ250と同じ構成としてよい。以下、ネットワークログリスト560のうちの一行(一つログ)を、ネットワークログ561と記載する。
解析部340は、ネットワークログリスト560から、対象ファイル501のアクセス時間に近い順に、ネットワークログリスト560内の各ネットワークログ561を選択する(ステップS1403)。
解析部340は、選択したネットワークログが、Download操作に関するログであるか否かを判定する(ステップS1404)解析部340は、例えば、操作対象ファイルに実行された操作(Write操作)に応じて、派生元ファイルに対して実行され得る操作(派生元操作)として、Download(ダウンロード)操作を特定し、ネットワークログリスト560から選択したネットワークログ561が、Donwload操作のログであるか否かを確認する。解析部340は、ネットワークログにおける送受信方向(250c)を参照して、当該ログがDownload操作に関するログであるか否かを判定可能である。
以下、ステップS1404においてYESの場合について説明する。
この場合、解析部340は、Donwload操作によりデータを受信した際の通信プロトコルに応じて、ネットワークログに設定されたサイズ(250f)を補正してよい(ステップS1405)。通信プロトコルによっては、ヘッダ情報やエンコーディングなどにより、ダウンロードしたデータサイズと、ファイルに書き込まれるデータサイズとが異なる場合がありえるからである。解析部340は、例えば、通信プロトコルに関連付けされた適切な数式等を用いて、データサイズの補正を行ってもよい。以下、補正後のサイズを補正サイズと記載する場合がある。
解析部340は、ネットワークログ561に記録されたサイズ(又は補正サイズ)が、書き込みログ512に記録されたサイズと適合するか否かを判定する(ステップS1406)。解析部340は、例えば、ネットワークログ561に記録されたサイズ(又は、当該サイズ)と、書き込みログ512に記録されたサイズとが、一致する場合に、これらが適合すると判定してもよい。解析部340は、例えば、ネットワークログ561に記録されたサイズ(又は、当該サイズ)と、書き込みログ512に記録されたサイズとの差分が、ある所定の基準値(閾値)よりも小さい場合に、これらが適合すると判定してもよい。
ステップS1403乃至ステップS1406において、解析部340は、例えば、以下のような処理を実行してもよい。即ち、解析部340は、ネットワークログリスト560の内、送受信方向250cが「Download」であり、サイズ(または補正サイズ)250fが対象ファイル501のサイズに適合し、対象ファイル501のアクセス時間に最も近いネットワークログ561を選択してよい。
ステップS1406においてYESの場合、解析部340は、Download操作が実行されたと推定する(ステップS1407)。この場合、解析部340は、対象ファイル501に関する操作を実行したプロセス(プロセスID521に該当するプロセス)が、対象ファイル501に対する書き込みを実行する以前(書き込みログ512のアクセス時間以前)に、ネットワークからファイルをダウンロードしたと推定する。また、解析部340は、対象ファイル501の更新元となった原本ファイル541は、ネットワークログ561のアクセス先ホスト(250d)から取得(受信)したデータであると推定してもよい。
ステップS1404又はステップS1406においてNOの場合(サイズ不適合)、解析部340は、ネットワークログリストに含まれる他のログについて同様の処理を実行する(ステップS1408乃至ステップS1404)。
ネットワークログリストに、適合するDownloadのログがない場合(ステップS1408においてNO)、解析部340は、Download操作は実行されていないと判定してもよい。その場合、解析部340は、他に可能操作があれば、その可能操作に関する処理を続行してもよい(ステップS1409乃至ステップS1411)。
なお、本変形例における履歴解析装置300が実行する上記以外の処理は、例えば、上記第1の実施形態と同様としてよい。
上記のように構成された本変形例における履歴解析装置300は、対象ファイル501に関する原本ファイル541が、通信ネットワークを介してダウンロードされたデータであるか否かを推定可能である。また、原本ファイル541が通信ネットワークを介してダウンロードされたデータである場合、そのダウンロード元を特定可能である。なぜならば、履歴解析装置300は、原本ファイル541を操作したアプリケーション(プロセスID521に相当するアプリケーション)により、原本ファイル541のサイズ(書き込みログ512のサイズ)に合致するサイズのデータがダウンロードされたことを特定可能だからである。
上記のような本変形例における履歴解析装置300を用いることにより、例えば、原本ファイル541のダウンロード元が外部サイトなどであった場合に発生し得る問題を確認することができる。
また、本変形例における履歴解析装置300は、上記第1の実施形態と同様、原本ファイル541を特定し可能である。また、本変形例における履歴解析装置300は、原本ファイル541を操作したユーザを特定することが可能である。
<第2の変形例>
以下、上記第1の実施形態に関する第2の変形例(以下、変形例2と記載する場合がある)について説明する。本変形例における履歴解析装置300は、あるファイルから派生した派生先ファイルを検出可能である。派生先ファイルは、例えば、あるファイルに基づいて適切な方法(例えば、編集、コピー、別名保存等)により生成されたファイルであってよい。
本変形例における履歴解析装置300を実現可能な装置構成は、図15に例示するように、上記第1の実施形態及び変形例1と同様としてよい。本変形例における履歴解析装置300は、以下に説明する通り、上記第1の実施形態とは動作が異なる。なお、図15において、図1と同様の構成については同様の参照符号を付することにより、詳細な説明を省略する。
以下、本変形例において、履歴解析装置300が、ファイルサーバ100の共有記憶装置110に格納された対象ファイル701に関する派生先ファイル702と、ファイル701に関する操作履歴とを推定する処理について説明する。なお、図15においては、説明の便宜上、派生先ファイル702はクライアント200に配置されているが、派生先ファイル702はファイルサーバ100に配置されてもよい。
図16は、本変形例における履歴解析装置300の動作の一例を示すフローチャートである。なお、図16において、図10と同様の処理(ステップ)については同様の参照符号を付すことで、詳細な説明を省略する。履歴解析装置300におけるログ取得部310の動作は上記第1の実施形態及び第1の変形例と同様としてよいので、詳細な説明を省略する。
解析部340は、上記第1の実施形態と同様、図16におけるステップS1001乃至S1005を実行する。即ち、解析部340は、第1アクセスログ503のアクセス元(120b)を参照し、該当するクライアント200のファイルアクセスログ230を取得する。解析部340は、対象ファイル701と同一のファイル名を含むログを抽出して時系列順に並べたファイルアクセスログリスト511を作成する。
解析部340は、ファイルアクセスログリスト511から、Readアクセスのみを抽出し、読み込みリスト513を作成する(ステップS1601)。係る読み込みリスト513は、クライアント200において実行された、対象ファイル701からの読み込み操作のログを表す。以下、読み込みリスト513に含まれる一つのログを、読み込みログ514と記載する。
解析部340は、例えば、読み込みログ514に記録された操作により読み込まれた内容(即ち、対象ファイル701から読み込まれた内容)が、別名保存やコピー処理等により、複製されているか否かを時系列順に確認する。
解析部340は、例えば、上記第1の実施形態と同様に、読み込みログ514とプロセス状態情報260とから、読み込み操作を実行したアプリケーションのプロセスID521(操作プロセスID)、可能操作523の取得を行う(図16のステップS1602乃至S1009)。なお、ステップS1602において、解析部340は、例えば、ディスク操作ログ240から、読み込みログ514とアクセス時刻が一致するログを選択し、選択したログの内のプロセスID240bを取得してもよい。
解析部340は、上記第1の実施形態における処理と同様に、ファイル(対象ファイル701)を読み込んだプロセス(プロセスID531に該当するプロセス)による書き込み操作の有無を確認する。解析部340は、例えば、ディスク操作ログ240に、対象ファイル701のアクセス時間よりも後に、プロセスID531に該当するプロセスによる書き込み操作のログが含まれるか否かを確認してもよい。これにより、解析部340は、例えば、対象ファイル701が、他のファイル等に書き込まれているか否かを確認することができる。
ステップS1009において特定した可能操作523に「Edit(編集)」の要素が含まれる場合、クライアント200において、ファイルの更新又は別名保存等により、派生先ファイルが生成されている可能性がある。
解析部340は、プロセスID531に該当するプロセスによる書き込み操作が確認された場合、書き込み先ファイルのファイル名を確認する。書き込み先ファイルのファイル名が対象ファイル701と同じである場合、解析部340は、係る操作を「更新」操作として操作履歴情報320に記録してよい。書き込み先ファイルのファイル名が対象ファイル701と異なる場合、解析部340は、係る操作を「派生」操作として操作履歴情報320に記録してよい。
ステップS1009において特定した可能操作523に「Copy」の要素が含まれる場合、対象ファイル701が、コピー又は移動された可能性がある。具体例として、Windows(登録商標)におけるエクスプローラのファイル操作を想定する。この場合、対象ファイル701は、ファイルの中身を編集せずに、別フォルダにコピーもしくは移動された可能性がある。
解析部340は、例えば、上記第1の実施形態と同様処理により、対象ファイル701のコピー又は移動を推定可能である。即ち、解析部340は、対象ファイル701に関する読み込み操作の後、当該ファイルについて削除(Delete)操作が実行されたか否かに基づいて、対象ファイル701のコピー又は移動を推定可能である。
解析部340は、ファイル操作の推定結果を、操作履歴情報320に記録してよい。
解析部340は、読み込みリスト513に含まれる全てのログについて上記処理を再帰的に行うことによって、対象ファイル701に関する派生先のファイル702を特定可能である。
上記のように構成された本変形例における履歴解析装置300によれば、派生元ファイル(対象ファイル701)から派生された派生先ファイル(派生先ファイル702)を特定可能である。これにより、以下のような効果が得られる。
例えば、不適切な情報が含まれるファイルを見つけた場合、派生先ファイルを特定することで、不適切な情報が含まれるファイルが影響する範囲を特定可能である。一つの具体例として、本変形例における履歴解析装置300を用いることで、対象ファイル701に誤った情報が含まれる場合に、修正が必要される派生先ファイル702の範囲を特定することができる。また、他の具体例として、ある対象ファイル701から派生先ファイル702に対して情報漏洩等が発生した場合、その漏洩範囲を特定可能である。
また、本変形例における履歴解析装置300によれば、対象ファイル701の派生先ファイル702を追跡することで、ある対象ファイル701に関する最新版を検索することができる。本変形例における履歴解析装置300によれば、対象ファイル701の利用状況(例えば、派生先ファイル702の生成状況等)等を取得することができ、これをフォルダツリーの形などで可視化することが可能となる。本変形例における履歴解析装置300によれば、セキュリティの確保を求められる領域からのデータ持ち出し状況を確認できる。例えば、セキュリティが確保された領域に配置された対象ファイル701から生成された派生先ファイル702の書き込み先を特定することにより、データの持ち出しを確認可能である。
<第3の変形例>
以下、上記第1の実施形態に関する第3の変形例(以下、変形例3と記載する)について説明する。本変形例における履歴解析装置300は、あるプロセス(アプリケーション)が複数のファイルを処理できる場合に、派生元ファイルから作成された派生先ファイルを検出可能である。
本変形例における履歴解析装置300は、図17に例示するように、上記第1の実施形態における履歴解析装置300に対して、プロセスディスク操作ログ350、Read操作ログ360、Write操作ログ370を更に有してよい。また、本変形例における履歴解析装置300は、ファイルリスト380を作成してよい。履歴解析装置300の他の装置構成は、上記第1の実施形態と同様としてよい。本変形例における履歴解析装置300は、以下に説明する通り、上記第1の実施形態とは動作が異なる。
プロセスディスク操作ログ350は、ディスク操作ログ240(図4)と同様の構成としてよい。
Read操作ログ360は、Read操作に関する情報を記録したログを表す。Read操作ログ360には、例えば、図18に示すように、「操作ID(360a)、アクセス時間(360b)、ファイル名(360c)、サイズ(360d)」の各要素が、時系列に記録される。Read操作ログ360を、「Read操作ログリスト」と記載する場合がある。
操作ID360aは、各Read操作を識別可能な識別情報(識別子)である。
アクセス時間360bは、読み込み(Read)操作が実行されたファイルへのアクセスが発生した時間を表す。アクセス時間360bは、Read操作が実行された時間であってもよい。
ファイル名360cは、Read操作が実行されたファイルの名称を表す。
サイズ360dは、Read操作が実行されたファイルのサイズを表す。
Write操作ログ370は、Write操作に関する情報を記録したログを表す。Write操作ログ370には、例えば、図19に例示するように、「アクセス時間(370a)、ファイル名(370b)、サイズ(370c)、推定ReadIDリスト(370d)」の各要素が時系列に記録される。Write操作ログ370を、「Write操作ログリスト」と記載する場合がある。
アクセス時間370aは、書き込み(Write)操作が実行されたファイルへのアクセスが発生した時間を表す。アクセス時間370aは、Write操作が実行された時間であってもよい。
ファイル名370bは、Write操作が実行されたファイルの名称を表す。
サイズ370cは、Write操作が実行されたファイルのサイズを表す。
推定ReadIDリスト370dは、Write操作が実行される前に実行されたRead操作を特定可能な情報を表す。推定ReadIDリスト370dには、Read操作ログ360の操作ID360aが1以上記録される。推定ReadIDリスト370dを、「推定読み込み候補リスト」と記載する場合がある。
ファイルリスト380は、ある派生元ファイルと、派生先ファイルとの間の類似度に関する情報を保持する。ファイルリスト380には、例えば、ある派生元ファイルに関する派生先ファイルの候補のリストが記録されてもよい。ファイルリスト380を、「候補データリスト」と記載する場合がある。ファイルリスト380は、例えば、図20に示すように、「ファイル名(380a)、スコア(380b)」の要素が、複数記載される。以下、ファイルリスト380を「候補ファイルリスト」と記載する場合がある。
ファイル名380aは、ファイルを特定可能なファイル名(パス名等)を表す。ファイル名380aには、例えば、ある派生元ファイルに関する派生先ファイルのファイル名が記録される。ファイル名380aに記録されるデータは、具体的なファイル名に限定されない。ファイル名380aには、例えば、「<新規作成>」を表すデータ等、派生元ファイルに関するスコアを設定可能な要素が適宜設定されてよい。
スコア380bは、ファイル名380aに記録されたファイルと、派生元ファイルとの間の類似度を表す。スコア380bには、類似度を表す数値(例えば”0”から”1”の範囲の数値等)が設定されてもよい。
以下、本変形例における履歴解析装置300の動作について説明する。
本変形例における履歴解析装置300は、上記第1の実施形態と同様、図10に例示する各処理を実行することで、対象ファイル501に関して、プロセスID521(操作プロセスID)及びアプリケーションの可能操作523を取得する。
以下、本変形例における履歴解析装置300が派生先ファイルを特定する処理について、図21A、図21Bに例示するフローチャートを参照して説明する。
アプリケーションの可能操作523に「Edit(編集)」が含まれる場合、ファイル改変を伴う読み書き操作(新規作成を含む)が実行されている可能性がある。
履歴解析装置300(特には解析部340)は、プロセスID521に該当するアプリケーションの生存期間(実行期間)を確認する。解析部340は、プロセス状態情報260を参照し、対象ファイル501に対する操作が行われた時間(アクセス時間)の前後で、プロセスID521が記録された最も古い(過去の)時間と、最も新しい時間と、を取得する(ステップS2101)。以下、プロセスID521が記録された最も古い時間をプロセス開始時間601、最新の時間をプロセス終了時間602と記載する。即ち、プロセス開始時間601と、プロセス終了時間602とは、プロセスID521の生存期間(実行期間)を表す。
解析部340は、ディスク操作ログ240から、アクセス時間(240a)がプロセス開始時間601からプロセス終了時間602までの間に含まれるとともに、プロセスID(240b)がプロセスID521に該当する全操作のログ(プロセスディスク操作ログ350)を抽出する(ステップS2102)。以下、抽出したプロセスディスク操作ログ350を、「プロセス全操作ログリスト」と記載する場合がある。
解析部340は、プロセスディスク操作ログ350のうち、ファイル操作が「Read操作」であるアクセスに関するログを抽出する。解析部340は、抽出したログを時系列順に並べて時系列順に各ログに操作IDを付与し、Read操作ログ360として記録する(ステップS2103)。
解析部340は、プロセスディスク操作ログ350のうち、アクセス時間が対象ファイル501の操作以降の時間であり、ファイル操作が「Write操作」であるアクセスに関するログを抽出し、Write操作ログ370として記録する(ステップS2104)。
例えば、あるファイル(派生元ファイル)について別名保存が実行される場合を想定する。この場合、派生元ファイルに対する読み込みアクセスが行われた後に、派生先ファイルに対する書き込みアクセスが行われると考えられる。
解析部340は、Write操作ログ370に記録されたWrite操作に対して、Read操作ログ360から、当該Write操作のアクセス時間(370a)よりも前に実行されたRead操作を列挙する。解析部340は、あるWrite操作に関して列挙されたRead操作に関する操作ID(360a)のリストを、当該Write操作の推定ReadIDリスト370dに転記する(ステップS2105)。解析部340は、上記処理を、Write操作ログ370に記録された全てのWrite操作について実行してもよい。解析部340は、Write操作ログ370のアクセス時間が古い順に上記処理を行い、抽出されたRead操作のファイル名が重複する場合は、最新の操作IDに関するRead操作のログのみを残す。これにより、同じファイルが重複してReadIDリストに登録されることを防ぐ。
解析部340は、書き込みファイルの重複を防ぐため、Write操作ログ370に、ファイル名が共通するWrite操作が重複して記録されている場合、最も新しいWrite操作に関するログのみを残す(ステップS2106)。
上記処理により、Write操作ログ370に記録されたWrite操作について、派生元ファイルに対するRead操作の候補が、推定ReadIDリストとして取得される。
対象ファイル501に関する操作が読み込み操作であった場合、解析部340は、Write操作ログ370のうち、推定ReadIDリストが記録されたログを列挙する(ステップS2108)。この場合、解析部340は、具体例として、以下のような処理を実行してもよい。即ち、解析部340は、対象ファイル501に関する読み込み(Read)操作に付与された操作IDが推定ReadIDリストに含まれるWrite操作のログを、Write操作ログ370から抽出してもよい。解析部340は、抽出されたWrite操作のログに記録されたファイル名(370b)を取得することで、書き込みが行われた可能性のあるファイルリスト380を作成する(ステップS2109)。換言すると、この場合、ファイルリスト380に登録されたファイル名は、プロセスID521に該当するプロセスにより、1以上のファイルに対するRead操作が実行された後、Write操作が実行されたファイルを表す。
対象ファイル501が書き込み操作であった場合、解析部340は、Write操作ログ370のうち、対象ファイル501とファイル名が一致するログを抽出し、当該ログに記録された推定ReadIDリストを取得する(ステップS2110)。
解析部340は、推定ReadIDリストに含まれる操作IDと、Read操作ログ360とを照らし合わせ、当該操作IDに関するファイル名を取得することで、ファイルリスト380を作成する(ステップS2111)。換言すると、この場合、ファイルリスト380に登録されたファイル名は、プロセスID521に該当するプロセスにより、対象ファイル501に書き込み操作が実行される前に、読み込み操作が実行されたファイルを表す。
上記処理において、ファイルリスト380が作成されない場合は、解析部340は、対象ファイル501について、新規作成されたファイルとして扱ってもよい。
解析部340は、対象ファイル501と、ファイルリスト380に記録されたファイルとの間の類似度を判定する(ステップS2112)。解析部340は、例えば、コサイン類似度計算など、既存の類似判定技術を用いて、これらのファイルの類似度を判定し、ファイルリスト380に記録された各ファイルに対するスコアを算出する。
なお、対象ファイル501は、新規作成されたファイルである可能性がある。よって、新規作成の場合を判別にするために、新規作成に該当する項目と、そのスコアとが、ファイルリスト380に設定されてもよい。新規作成に設定されるスコアは、一定の値又はファイルサイズに応じて変化する値等であってもよい。
解析部340は、ファイルリスト380に記録されたファイルを、スコア順に並べることで、対象ファイル501から更新が行われた可能性があるファイルを列挙することができる。解析部340は、ファイルリスト380に記録されたファイルの内、ある基準値(基準スコア)以上のスコアが算出されたファイルについて、対象ファイル501に関する派生先ファイルであると推定できる。ある基準スコア以上のスコアを新規作成のスコアとすることで、ファイルが新規作成された場合についても推定することができる。
なお、読み込みファイルと書き込みファイルとが1対1に対応している場合には、派生先ファイルが発生していないと考えられる。この場合、解析部340は、そのようなファイルをスコア計算から除外することで、誤検出の割合を減らすことができる。
上記のように構成された本変形例における履歴解析装置300によれば、一つのプロセスで複数のファイルを扱うアプリケーションなどによりファイルが操作された際に、ファイルの派生関係を推定することができる。
なお、上記第1の実施形態及びその変形例(第1乃至第3の変形例)においては、ファイルサーバ100と、クライアント200と、履歴解析装置300とが、それぞれ独立した物理的又は論理的な装置として実現される態様について説明した。しかしながら、本開示は上記には限定されない。例えば、いずれかのクライアント200が、履歴解析装置300の構成要素を備えることで、履歴解析装置300の機能を備えてもよい。即ち、クライアント200と、履歴解析装置300とが統合された態様も、本開示に含まれる。
<第2の実施形態>
以下、上記説明した本開示の第1の実施形態の基礎となる、本開示に係る第2の実施形態について説明する。
図22Aは、本実施形態における履歴解析装置2200の機能的な構成を例示するブロック図である。図22Aに例示するように、履歴解析装置2200は、ログ取得部2201と、解析部2202と、を備える。履歴解析装置2200を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてもよい。
履歴解析装置2200は、図22Bに例示するように、ファイル提供装置2210、ファイル操作装置2220と通信ネットワークを介して通信可能に接続されていてもよい。ファイル提供装置2210は、例えば、上記第1の実施形態及びその変形例におけるファイルサーバ100と同様に構成された装置であってもよい。ファイル操作装置2220は、上記第1の実施形態及びその変形例におけるクライアント200と同様に構成された装置であってもよい。
履歴解析装置2200におけるログ取得部2201は、ファイル提供装置2210において提供されるファイルに対するファイル操作装置2220からのアクセスに関する情報を含むアクセスログを取得する。また、ログ取得部2201は、ファイル提供2210装置又はファイル操作装置2220に配置されたファイルに対して、ファイル操作装置2220におけるプロセスにより実行された操作に関する情報を含むプロセス操作ログを取得する
アクセスログには、例えば、以下のような情報が含まれてもよい。アクセスログには、例えば、ファイル提供装置2210において提供されるファイルに対する操作が実行された時間を表す情報が含まれてもよい。アクセスログには、例えば、当該ファイルにアクセスしたファイル操作装置2220を特定可能な情報が含まれてもよい。アクセスログには、例えば、当該ファイルそのものを特定可能な情報(例えば、パス名、ファイル名等)が含まれてもよい。アクセスログには、例えば、当該ファイルに対して実行された操作の内容(例えば、読み込み、書き込み、削除、リネーム等)表す情報が含まれてもよい。アクセスログには、例えば、当該ファイルのサイズを表す情報が含まれてもよい。アクセスログは、例えば、上記第1の上記第1の実施形態及びその変形例におけるサーバアクセスログ120と同様のデータを保持してもよい。
プロセス操作ログには、例えば、以下のような情報が含まれてもよい。プロセス操作ログには、例えば、ファイル操作装置2220において上記プロセスが実行された時間を表す情報が含まれてもよい。プロセス操作ログには、例えば、当該プロセスを識別可能な情報(識別子等)が含まれてもよい。プロセス操作ログには、当該プロセスにより操作(アクセスされた)ファイルを特定可能な情報(パス名、ファイル名)等が含まれてもよい。プロセス操作ログには、当該プロセスにより実行された操作の内容を表す情報が含まれてもよい。プロセス操作ログには、例えば、当該ファイルのサイズを表す情報が含まれてもよい。プロセス操作ログは、例えば、上記第1の上記第1の実施形態及びその変形例におけるファイルアクセスログ230及びディスク操作ログ240少なくとも一方と同様のデータを保持してもよい。
係るログ取得部2201は、例えば、上記第1の実施形態及びその変形例におけるログ取得部310と同様に構成されてもよく、同様の機能を提供してもよい。
解析部2202は、上記アクセスログ及び上記プロセス操作ログから、上記ファイル提供装置において提供された操作対象ファイルを操作した上記プロセスである操作プロセスを特定する。具体的には、解析部2202は、例えば、アクセスログとプロセス操作ログとから、操作対象ファイルに関するログを抽出してもよい。そして、解析部2202は、抽出した操作対象ファイルに関するログのうち、アクセスログとプロセス操作ログとにおいて操作が実行された時間と、操作の内容とが共通するログを更に抽出し、当該ログに関する操作を実行したプロセスを特定してもよい。
解析部2202は、上記操作対象ファイルに対して実行された操作の種類に応じて、上記操作対象ファイルの派生元ファイルに対して実行され得る操作である派生元操作に関するログのうち、派生元操作に関する条件を満たすログを上記プロセス操作ログから抽出する。
以下、具体例として、上記操作対象ファイルに対して実行された操作の種類が書き込み操作(Write操作)である場合について説明する。この場合、解析部2202は、原本ファイルから読み込み操作により読み込まれたデータが、派生先ファイルである操作対象ファイルに書き込まれると推定する。よって、解析部2202は、例えば、操作対象ファイルの原本ファイルに対して実行され得る操作(派生元操作)として、読み込み操作(Read操作)を特定する。そして、解析部2202は、プロセス操作ログから、読み込み操作に関するログのうち、ある特定の条件を満たすログを抽出する。具体的には、解析部2202は、例えば、プロセス操作ログに含まれる読み込み操作の内、操作対象ファイルに関する書き込み操作が実行された時間と最も近い時間に実行された読み込み操作に関するログを抽出してもよい。なお、上記特定の条件は、操作対象ファイルに実行された操作と、派生元操作との間の関係等に応じて適宜定められてよい。
解析部2202は、抽出した派生元操作に関するログに記録されたファイルを、上記操作対象ファイルに対する原本ファイルとして特定する。係る原本ファイルは、ファイル操作装置2220に保持されていてもよい。
係る解析部2202は、例えば、上記第1の実施形態及びその変形例における解析部340と同様に構成されてもよく、同様の機能を提供してもよい。
上記のように構成された本実施形態における履歴解析装置2200によれば、異なる装置(例えばファイル提供装置2210、ファイル操作装置2220)にそれぞれ配置されたデータに関するログ(例えば、アクセスログ及びプロセス操作ログ)に基づいて、それらのデータに関する派生関係を特定することができる。その理由は、以下の通りである。まず、履歴解析装置2200は、ファイル提供装置2210に配置された操作対象ファイルに関する操作を実行した操作プロセスを特定することができる。また、履歴解析装置2200は、当該操作プロセスがファイル操作装置2220において実行した操作に関するログのうち、操作対象ファイルに関する原本ファイルに対して実行され得る操作を特定することができる。即ち、これにより、原本ファイルに関して実行され得る操作の候補をログから抽出することができる。係る候補のログの内、特定の条件を満たすログを選択することで、操作対象ファイルに関する原本ファイルを特定可能である。操作プロセスは、ファイル操作装置2220に配置されたファイルを操作可能であることから、原本ファイルは、ファイル操作装置2220に配置されていてよい。よって、履歴解析装置2200は、例えば、ファイル提供装置2210に配置された操作対象ファイルと、ファイル操作装置2220に配置された原本ファイルの間の派生関係を特定することができる。
上記各実施形態を用いて、本開示に関する技術を履歴解析装置(300、2200)に適用した例を説明した。上記各実施形態では、例えば、履歴解析装置(300、2200)を動作させることによって、本開示に関する履歴解析方法を実施することができる。履歴解析方法を実施する方法は上記に限定されず、履歴解析装置(300、2200)と同様の動作あるいは処理を実行可能な、適切な装置(例えば、コンピュータ等の情報処理装置)によって実施することも可能である。また、本開示に関する技術は、履歴解析装置300と、ファイルサーバ100と、クライアント200とを含むシステム、又は、履歴解析装置2200と、ファイル提供装置2210と、ファイル操作装置2220とを含むシステムとして実施されてもよい。
<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。
以下の説明においては、上記各実施形態において説明した履歴解析装置(300、2200)をまとめて、単に「履歴解析装置」と記載する。また、これら履歴解析装置の各構成要素を、単に「履歴解析装置の構成要素」と記載する場合がある。
上記各実施形態において説明した履歴解析装置は、1つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図(図1、図10、図15、図17、図22A及び図22B)に示した各構成要素は、その一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路あるいは記憶デバイス等)を用いて実現されてもよい。
本開示に係る履歴解析装置が、専用のハードウェアにより実現される場合、係る履歴解析装置の構成要素は、例えば、それぞれの機能を提供可能な回路構成(circuitry)により実現されてもよい。係る回路構成は、例えば、SoC(System on a Chip)等の集積回路や、当該集積回路を用いて実現されたチップセット等を含む。この場合、履歴解析装置の構成要素が保持するデータは、例えば、SoCとして統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域、あるいは、当該SoCに接続された記憶デバイス(半導体記憶装置等)に記憶されてもよい。また、この場合、履歴解析装置の各構成要素を接続する通信回線としては、周知の通信ネットワークを採用してもよい。また、各構成要素を接続する通信回線は、それぞれの構成要素間をピアツーピアで接続してもよい。
また、上述した履歴解析装置は、図23に例示するような汎用のハードウェアと、係るハードウェアによって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、履歴解析装置は、適切な数の汎用のハードウェア装置2300と、ソフトウェア・プログラムとの組合せにより構成されてもよい。
図23における演算装置2301は、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置2301は、例えば後述する不揮発性記憶装置2303に記憶された各種ソフトウェア・プログラムを記憶装置2302に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。例えば、上記各実施形態における履歴解析装置の構成要素の機能は、演算装置2301により実行されるソフトウェア・プログラムを用いて実現されてもよい。
演算装置2301は、例えば、複数のCPUコアを備えたマルチコアCPUであってもよい。また演算装置2301は、1つのCPUコアが複数のスレッドを実行可能な、マルチスレッドCPUであってもよい。ハードウェア装置2300は、複数の演算装置2301を備えてもよい。
記憶装置2302は、演算装置2301から参照可能な、RAM等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置2302は、揮発性のメモリ装置であってもよい。
不揮発性記憶装置2303は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置等の、不揮発性の記憶装置である。不揮発性記憶装置2303は、各種ソフトウェア・プログラムやデータ等を記憶可能である。
ドライブ装置2304は、例えば、後述する記録媒体2305に対するデータの読み込みや書き込みを処理する装置である。
記録媒体2305は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。
ネットワークインタフェース2306は、通信ネットワークとの間のデータの送受信を制御する装置である。履歴管理装置は、ネットワークインタフェース2306を介して、ファイルサーバ100(ファイル提供装置2210)、クライアント200(ファイル操作装置2220)等から各種ログを取得してもよい。
上述した各実施形態を例に説明した本発明における履歴解析装置、あるいはその構成要素は、例えば、図23に例示するハードウェア装置2300に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。
より具体的には、例えば、係るハードウェア装置2300に対して供給したソフトウェア・プログラムを、演算装置2301が実行することによって、本発明が実現されてもよい。この場合、係るハードウェア装置2300で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト、仮想環境基盤等のミドルウェアなどが各処理の一部を実行してもよい。
上述した各実施形態において、上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
上記各実施形態及びその変形例に例示した履歴解析装置の各構成要素をソフトウェアモジュールとして実現する場合、例えば、これらのソフトウェアモジュールが不揮発性記憶装置2303に記憶されてもよい。そして、演算装置2301がそれぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置2302に読み出してもよい。
また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。このような構成により、これらのソフトウェアモジュールは、相互に通信可能に接続される。
更に、上記ソフトウェア・プログラムは記録媒体2305に記録されてもよい。この場合、上記ソフトウェア・プログラムは、上記履歴解析装置の出荷段階、あるいは運用段階等において、適宜ドライブ装置2304を通じて不揮発性記憶装置2303に格納されるよう構成されてもよい。
なお、上記の場合において、上記ハードウェア装置2300への各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み込み可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置2300と独立した媒体に限らず、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記録媒体を含む。
また、上述した履歴解析装置の構成要素は、図23に例示するハードウェア装置2300を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図23に例示するハードウェア装置2300の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図23に例示するハードウェア装置2300を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。上述した各実施形態を組合せた実施形態も本発明の技術的範囲に含まれる。更に、上述した各実施形態と、上述した各実施形態に変更又は改良を加えた新たな実施形態とを組合せた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。