(57)【要約】【課題】プログラムで使用されるファイルを特定するファイル情報を抽出し記録する際に、簡単に適切なファイル情報を抽出し、記録できるようにする。【解決手段】記憶部２は、プログラムＰ１で使用されるファイルを特定するファイル情報Ｄ２の抽出条件Ｄ１を記憶し、制御部３は、ＯＳ１０の処理を実行し、ＯＳ１０は、プログラムＰ１からのシステムコールにより、ファイルの入力要求または出力要求が発生したことを検出すると、入力要求または出力要求が抽出条件Ｄ１を満たしたときに、当該ファイルのファイル情報Ｄ２を抽出して記録を行う。【選択図】図１
2014026570.tif 000002
【特許請求の範囲】
【請求項１】
プログラムで使用されるファイルを特定するファイル情報の抽出条件を記憶する記憶部と、
オペレーションシステムの処理を実行する制御部と、を有し、
前記オペレーションシステムは、前記プログラムからのシステムコールにより、前記ファイルの入力要求または出力要求が発生したことを検出すると、前記入力要求または前記出力要求が前記抽出条件を満たしたときに、当該ファイルのファイル情報を抽出して記録を行う、
ファイル情報記録装置。
【請求項２】
前記抽出条件は、前記ファイル情報を記録済みのファイルに対する前記入力要求時または前記出力要求時に、当該ファイルのファイル情報を新たに記録するか否かを指定する情報を含む、請求項１に記載のファイル情報記録装置。
【請求項３】
前記オペレーションシステムは、前記プログラムまたは前記プログラムを実行するユーザが、前記抽出条件に前記ファイル情報の抽出を許容するプログラムまたはユーザとして定義されていなくても、前記情報が前記ファイル情報を新たに記録することを指定するものであるとき、前記プログラムの識別情報または前記ユーザの識別情報を含むファイル情報の記録を行う、請求項２に記載のファイル情報記録装置。
【請求項４】
前記ファイル情報は、前記ファイルのサイズまたはハッシュ値を含む、請求項１乃至３の何れか一項に記載のファイル情報記録装置。
【請求項５】
制御部が、オペレーションシステムの処理を実行し、
前記オペレーションシステムは、プログラムからのシステムコールにより、前記プログラムで使用されるファイルの入力要求または出力要求が発生したことを検出すると、前記入力要求または前記出力要求が、記憶部に記憶されている、前記ファイルを特定するファイル情報の抽出条件を満たしたときに、当該ファイルのファイル情報を抽出して記録を行う、
ファイル情報記録方法。
【請求項６】
制御部が、オペレーションシステムの処理を実行し、
前記オペレーションシステムは、プログラムからのシステムコールにより、前記プログラムで使用されるファイルの入力要求または出力要求が発生したことを検出すると、前記入力要求または前記出力要求が、記憶部に記憶されている、前記ファイルを特定するファイル情報の抽出条件を満たしたときに、当該ファイルのファイル情報を抽出して記録を行う、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル情報記録装置、ファイル情報記録方法及びプログラムに関する。
【背景技術】
【０００２】
設計または開発業務などでは、コンピュータ上で多数のプログラムが組み合わされて実行され、計算条件や他のプログラムの実行結果をプログラムに取り込むために多数のファイルが使用される。
【０００３】
設計時の検証や問題発生時の解析などのために、プログラム実行時にプログラムが使用（参照、生成または更新）したファイルを後から特定するためのファイル情報を抽出し、記録することが行われる。ファイル情報の抽出処理は、プログラム内のファイル入出力処理の前後またはプログラム実行期間の前後で行われる。
【０００４】
なお、ファイルバックアップシステムとして、アプリケーションプログラムがファイルを入出力するシステムコールを発行したときに、バックアップ対象のファイルを識別するための情報などを取得するような技術があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３０５８３０号公報
【特許文献２】特開２００７−１６４２６５号公報
【特許文献３】特開２０１０−１８２１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、プログラム実行時に使用されるファイルの種類や組み合わせはプログラムの種類ごとに異なり、多くのプログラム種類ごとにファイル情報の抽出処理を定義すると、その定義は膨大なものとなるため、ファイル情報を適切に記録することは困難であった。
【課題を解決するための手段】
【０００７】
発明の一観点によれば、プログラムで使用されるファイルを特定するファイル情報の抽出条件を記憶する記憶部と、オペレーションシステムの処理を実行する制御部と、を有し、前記オペレーションシステムは、前記プログラムからのシステムコールにより、前記ファイルの入力要求または出力要求が発生したことを検出すると、前記入力要求または前記出力要求が前記抽出条件を満たしたときに、当該ファイルのファイル情報を抽出して記録を行う、ファイル情報記録装置が提供される。
【０００８】
また、発明の一観点によれば、制御部が、オペレーションシステムの処理を実行し、前記オペレーションシステムは、プログラムからのシステムコールにより、前記プログラムで使用されるファイルの入力要求または出力要求が発生したことを検出すると、前記入力要求または前記出力要求が、記憶部に記憶されている、前記ファイルを特定するファイル情報の抽出条件を満たしたときに、当該ファイルのファイル情報を抽出して記録を行う、ファイル情報記録方法が提供される。
【発明の効果】
【０００９】
開示のファイル情報記録装置、ファイル情報記録方法及びプログラムによれば、簡単に適切なファイル情報を抽出し、記録できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態のファイル情報記録装置の一例を示す図である。
【図２】ファイル情報記録方法の一例の流れを示すフローチャートである。
【図３】抽出判定処理の一例の流れを示すフローチャートである。
【図４】抽出条件Ｄ１の定義例である。
【図５】本実施例における抽出条件定義ファイルを示す図である。
【図６】登録されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイルのファイル情報の一例を示す図である。
【図７】更新されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイルのファイル情報の一例を示す図である。
【図８】登録されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報の一例を示す図である。
【図９】更新されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報の一例を示す図である。
【図１０】登録されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報の一例を示す図である。
【図１１】更新されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報の一例を示す図である。
【図１２】本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
図１は、本実施の形態のファイル情報記録装置の一例を示す図である。ファイル情報記録装置１は、記憶部２と制御部３を有する。
【００１２】
記憶部２は、プログラムで使用されるファイルを特定するファイル情報の抽出条件Ｄ１と、抽出されたファイル情報Ｄ２、プログラムで使用されるファイル群Ｄ３などを記憶する。記憶部２は、ＲＡＭ（Random Access Memory）やＨＤＤ（Hard Disk Drive）などの記憶装置であってもよい。なお、記憶部２は複数あってもよく、抽出条件Ｄ１、ファイル情報Ｄ２、ファイル群Ｄ３を別々に記憶するようにしてもよい。
【００１３】
ファイル情報の抽出条件Ｄ１としては、ファイル情報の抽出対象のプログラムであるか否か、実行者が登録されたユーザであるか否か、ファイルの場所が定義されたディレクトリにあるか否か、伝搬抽出（後述する）を行うか否か、などがある。ファイルを特定するファイル情報Ｄ２としては、たとえば、ファイルのサイズ、ハッシュ値、ファイル名、ファイルの場所を示すパス名などがある。
【００１４】
制御部３は、ＯＳ（Operating System）１０の処理を実行する。ＯＳ１０は、プログラムＰ１からのシステムコールにより、ファイルの入力要求または出力要求が発生したことを検出すると、抽出条件Ｄ１を満たしたときに、そのファイルのファイル情報Ｄ２を抽出し、記憶部２に記録する。制御部３は、ＣＰＵ（Central Processing Unit）及びＲＡＭを用いて実行されるプログラムとして実現してもよい。
【００１５】
ＯＳ１０は、システムコールを処理するシステムコール処理部１１を有する。システムコール処理部１１は、ファイル情報の抽出処理を行う抽出処理部１２と、システムコールに応じたファイルの入出力処理を行うファイル入出力処理部１３を有する。
【００１６】
なお、ＯＳ１０の種類は、特に限定されないが、Ｌｉｎｕｘ（登録商標）、Ｓｏｌａｒｉｓ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）などが適用可能である。たとえば、Ｌｉｎｕｘの場合には、システムコールは、ｓｙｓｔｅｍ＿ｃａｌｌという関数から呼ばれる。また、ＬＫＭ（Loadable Kernel Module）という機能を用いて、／ｓｂｉｎ／ｉｎｓｍｏｄと／ｓｂｉｎ／ｒｍｍｏｄというコマンドによる動的にカーネルに機能を追加する方法で、ファイル情報の抽出処理部１２の機能が実現可能である。
【００１７】
このようなファイル情報記録装置１では、たとえば、プログラムＰ１からシステムコールのリクエストとして、ファイルの入力要求または出力要求があると、システムコール処理部１１は、一旦その時点のシステムコールの処理を停止する。そして、抽出処理部１２は、抽出条件Ｄ１を参照し、そのリクエストが抽出条件Ｄ１を満たすか否か判定する。
【００１８】
リクエストが抽出条件Ｄ１を満たすとき、抽出処理部１２は、リクエストされたファイルのファイル情報を、記憶部２に記憶されたファイル群Ｄ３から抽出し、記憶部２に記録する。また、ファイル入出力処理部１３は、ファイルの入力要求があった場合には、そのファイルを記憶部２から読み出して、レスポンスとしてプログラムＰ１に渡す。また、ファイル入出力処理部１３は、ファイルの出力要求があった場合には、プログラムＰ１で生成または更新されたファイルを記憶部２に記録する。
【００１９】
このように、本実施の形態のファイル情報記録装置１では、ＯＳ１０が、システムコールにより、ファイルの入力要求または出力要求が発生したことを検出すると、抽出条件Ｄ１を満たしたときに、そのファイルのファイル情報Ｄ２を抽出し、記憶部２に記録する。
【００２０】
これにより、個々のプログラムの実行の際に使用されるファイルのファイル情報を一か所（抽出処理部１２）で抽出することができるため、プログラムの種類ごとにファイル情報の抽出処理を定義しなくてもよくなり、簡単に適切な情報を記録できる。
【００２１】
また、ＯＳ１０は、プログラムからのシステムコールにより、ファイルの入力要求または出力要求が発生したことを検出したときに抽出処理を行うため、プログラムが入出力するファイルを漏れなく抽出することができる。
【００２２】
以下、本実施の形態のファイル情報記録装置１を用いたファイル情報記録方法を、フローチャートを用いてより詳細に説明する。
（ファイル情報記録方法）
図２は、ファイル情報記録方法の一例の流れを示すフローチャートである。
【００２３】
システムコール処理部１１は、プログラムからのシステムコールを受信したか否かを判定する（ステップＳ１）。システムコール処理部１１は、システムコールを受信した場合、ステップＳ２の処理を行い、システムコールを受信しない場合には、ファイル情報の記録処理が終了される。
【００２４】
ステップＳ２の処理では、システムコール処理部１１は、受信したシステムコールが、ファイルのオープンまたはクローズをリクエスト（入力要求または出力要求）するものであるか否かを判定する。受信したシステムコールが、ファイルのオープンまたはクローズをリクエストするものである場合には、ステップＳ３の処理が行われる。受信したシステムコールが、ファイルのオープンまたはクローズをリクエストするものでない場合には、ファイル情報の記録処理が終了される。
【００２５】
ステップＳ３の処理では、抽出処理部１２は、リクエストが抽出条件Ｄ１を満たすか否かを判定する。リクエストが抽出条件Ｄ１を満たさない場合、ファイル情報の記録処理が終了される。リクエストが抽出条件Ｄ１を満たす場合、抽出処理部１２は、指定されたファイルが未抽出であるか否かを判定する（ステップＳ４）。指定されたファイルが未抽出である場合、抽出処理部１２は、そのファイルのファイル情報を抽出し記憶部２に記録（登録）する（ステップＳ５）。
【００２６】
一方、ファイルが抽出済みである場合、抽出処理部１２は、リクエストがファイルのクローズであるか否かを判定する（ステップＳ６）。リクエストがファイルのクローズである場合、抽出処理部１２は、そのファイルのファイル情報を抽出し記憶部２に記録（更新）する（ステップＳ７）。
【００２７】
リクエストがファイルのクローズでない場合、または、ステップＳ５，Ｓ７の処理の後、ファイル情報の記録処理が終了される。
以下、ステップＳ３の判定処理（抽出判定処理）の一例を説明する。
【００２８】
（抽出判定処理）
図３は、抽出判定処理の一例の流れを示すフローチャートである。
抽出処理部１２は、リクエストを行ったプログラムＰ１が、抽出条件Ｄ１に定義されたプログラムであるか否かを判定する（ステップＳ１０）。リクエストを行ったプログラムＰ１が、抽出条件Ｄ１に定義されたプログラムである場合には、ステップＳ１１の処理が行われ、リクエストを行ったプログラムＰ１が、抽出条件Ｄ１に定義されたプログラムではない場合には、ステップＳ１４の処理が行われる。
【００２９】
ステップＳ１１の処理では、抽出処理部１２は、プログラムＰ１を実行する実行者は抽出条件Ｄ１に定義されたユーザであるか否かを判定する。プログラムＰ１を実行する実行者は抽出条件Ｄ１に定義されたユーザである場合には、ステップＳ１２の処理が行われ、プログラムＰ１を実行する実行者は抽出条件Ｄ１に定義されたユーザではない場合には、ステップＳ１４の処理が行われる。
【００３０】
ステップＳ１２の処理では、抽出処理部１２は、リクエストで指定されたファイルは、抽出条件Ｄ１に定義されたディレクトリ内に存在するか否かを判定する。リクエストで指定されたファイルは、抽出条件Ｄ１に定義されたディレクトリ内に存在する場合には、抽出処理部１２は、リクエストにより指定されるファイルのファイル情報を抽出対象として判定する（ステップＳ１３）。リクエストで指定されたファイルは、抽出条件Ｄ１に定義されたディレクトリ内に存在しない場合、ステップＳ１４の処理が行われる。
【００３１】
ステップＳ１４の処理では、抽出処理部１２は、抽出条件Ｄ１に伝搬抽出を行う指定がなされているか否かを判定する（ステップＳ１４）。伝搬抽出とは、本明細書中では、記録済みのファイル情報Ｄ２を用いて、ファイル情報Ｄ２に登録されているものと同じファイルのオープンまたはクローズのリクエストがあった場合に、そのファイルのファイル情報を新たに抽出し、記録する処理であるものとする。抽出条件Ｄ１には、そのようなファイル情報を新たに記録するか否かを指定する情報が含まれている。
【００３２】
抽出条件Ｄ１に伝搬抽出を行う指定がなされている場合、ステップＳ１５の処理が行われる。抽出条件Ｄ１に伝搬抽出を行う指定がなされていない場合は、抽出処理部１２は、リクエストで指定されたファイルのファイル情報を抽出対象外として判定して（ステップＳ１６）、抽出判定処理を終える。
【００３３】
ステップＳ１５の処理では、抽出処理部１２は、リクエストで指定されたファイルが、ファイル情報Ｄ２に登録されたファイルであるか否かを判定する。リクエストで指定されたファイルが、ファイル情報Ｄ２に登録されたファイルである場合には、抽出処理部１２は、そのファイルのファイル情報を抽出対象として判定し、抽出判定処理を終える。リクエストで指定されたファイルが、ファイル情報Ｄ２に登録されたファイルではない場合には、抽出処理部１２は、ステップＳ１６の処理により、そのファイルのファイル情報を抽出対象外として判定し、抽出判定処理を終える。
【００３４】
以下、本実施の形態のファイル情報記録方法を、具体例を用いてより詳細に説明する。
（抽出条件Ｄ１の定義例）
図４は、抽出条件Ｄ１の定義例である。
【００３５】
抽出条件Ｄ１は、たとえば、図４に示すようなフォーマットの抽出条件定義ファイルＦ１として記憶部２に記憶されている。
図４のような抽出条件定義ファイルＦ１では、ＤＥＦＩＮＥ行からＥＮＤ行までが１つの抽出条件の定義となっている。プログラムが参照するファイルが複数の定義に合致する場合には、抽出処理部１２は、たとえば、抽出条件定義ファイルＦ１において合致する最後の定義を有効とする。
【００３６】
１行目のＤＥＦＩＮＥ文において、“ＮＡＭＥ”（省略不可）では、抽出条件の定義を識別するための任意の名前が指定されている。同一の抽出条件名をもつＤＥＦＩＮＥが複数定義されている場合には、たとえば、抽出条件定義ファイルＦ１において最後の定義のみ有効とする。
【００３７】
ＤＥＦＩＮＥ文において、“ＴＹＰＥ”（省略時は“ＩＮＣＬＵＤＥ”）では、定義された条件に合致するファイルを抽出対象とする（“ＩＮＣＬＵＤＥ”）のか、非対象とする（“ＥＸＣＬＵＤＥ”）のかが指定されている。
【００３８】
ＤＥＦＩＮＥ文において、“ＰＲＯＰＡＧＡＴＥ”（省略時ＯＦＦ）では、合致するファイルに対して伝搬抽出を行うか否かが指定されている。
２行目以下のＰＲＯＧＲＡＭ文では、ファイル情報の抽出対象となるプログラムが定義されている。ＰＲＯＧＲＡＭ文において、“ＮＡＭＥ”では、プログラムの実行ファイル名が指定されている。ファイル名には、たとえば、ｇｌｏｂ形式の正規表現として“？”、“＊”を使用可能とする。
【００３９】
ＰＲＯＧＲＡＭ文において、“ＰＡＴＨ”（省略可）では、実行ファイルの存在するディレクトリが絶対パスで指定されている。省略時には、ＰＡＴＨ＝＊を指定したことと同じとする。
【００４０】
ＵＳＥＲ文（省略可）では、ファイル情報の抽出を許容するユーザが、アカウント名またはユーザＩＤ（IDentification）の何れかで指定されている。“ＮＡＭＥ”では、ユーザアカウント名が指定される。“ＩＤ”では、ユーザＩＤが指定される。
【００４１】
ＧＲＯＵＰ文（省略可）では、ファイル情報の抽出を許容するユーザ群がグループ名またはグループＩＤの何れかで指定される。“ＮＡＭＥ”では、グループ名が指定される。“ＩＤ”では、グループＩＤが指定される。
【００４２】
なお、ＵＳＥＲ文、ＧＲＯＵＰ文のいずれもが省略された場合には、全てのユーザにおいて、ファイル情報の抽出が許容される。
ＦＩＬＥ文（省略可）では、ファイル情報を抽出する対象となるファイルのディレクトリが絶対パスで指定されている。省略時には、全てのディレクトリが対象となる。“ＰＡＴＨ”では、絶対パスが指定される。
【００４３】
ＥＮＤ文では、１つの抽出条件の定義の終わりが指定されている。
このような、抽出条件定義ファイルＦ１は、ファイル情報記録装置１でユーザの入力のもと作成されるようにしてもよいし、ユーザのコンピュータで作成されたものが、ファイル情報記録装置１に供給されて記憶部２に記録されるようにしてもよい。
【００４４】
次に、抽出処理の実施例を説明する。
（抽出処理の実施例）
抽出処理の実施条件を以下に示す。
【００４５】
実行ファイル名ａｌｐｈａ，ｂｅｔａの２つのプログラムを順に実行する。
実行ファイル名ａｌｐｈａのプログラムは、１つのファイルを入力（参照のみ）し、１つのファイルを出力（新規作成）する。また、実行ファイル名ａｌｐｈａのプログラムは、実行時の第１引数に入力ファイルを、第２引数に出力ファイルを指定する。
【００４６】
実行ファイル名ｂｅｔａのプログラムは、１つのファイルを入出力（更新）する。
図５は、本実施例における抽出条件定義ファイルを示す図である。
抽出条件定義ファイルＦ２において、１行目のＤＥＦＩＮＥ文において、“ｅｘｔｒａｃｔ１”という抽出条件の定義を識別するための名前が指定されている。また、“ＰＲＯＰＡＧＡＴＥ”が“ＯＮ”であり、合致するファイルに対して伝搬抽出を行うことが指定されている。
【００４７】
ＰＲＯＧＲＡＭ文では、ファイル情報の抽出対象となるプログラムの実行ファイル名が“ａｌｐｈａ”と、指定されている。
また、ＵＳＥＲ文では、ファイル情報の抽出を許容するユーザのユーザＩＤが“３７００３”と指定されている。
【００４８】
このような抽出条件定義ファイルＦ２により、ユーザＩＤが“３７００３”のユーザが、実行ファイル名ａｌｐｈａのプログラムの実行時に使用した全てのディレクトリ上のファイルがファイル情報の抽出対象になる。
【００４９】
以上のような、抽出条件定義ファイルＦ２を用いて抽出処理を行う際の動作例を説明する。
まず、ユーザＩＤが“３７００３”のユーザが、ファイル情報記録装置１上、またはファイル情報記録装置１にネットワークで接続されたコンピュータ上で、実行ファイル名ａｌｐｈａのプログラムの実行を開始する。このときのコマンドは、たとえば、ｃｍｄ＞ａｌｐｈａ／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａ／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂ、と表される。
【００５０】
実行ファイル名ａｌｐｈａのプログラムが、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイルのオープンをリクエストすると、抽出処理部１２は、このリクエストが抽出条件を満たすか判定する。
【００５１】
図５に示したような抽出条件定義ファイルＦ２が適用される場合、ユーザＩＤが“３７００３”のユーザが実行ファイル名ａｌｐｈａのプログラムの実行時に使用するファイルのファイル情報は、全て抽出対象となる。そのため、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａで指定されるファイルのファイル情報は抽出対象となり、抽出が行われる。
【００５２】
ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイルのファイル情報は、未抽出であるため、前述した図２のステップＳ５の処理が行われ、ファイル情報の登録が行われる。
図６は、登録されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイルのファイル情報の一例を示す図である。
【００５３】
ファイル情報Ｆ３には、プログラムＩＤ、プログラムの実行ファイル名、ユーザＩＤ、伝搬抽出を行うか否かを示す情報“ＰＲＯＰＡＧＥＴＥ”の状態、プログラムの開始日時、ファイル名が登録されている。さらにファイル情報Ｆ３には、オープンリクエストが行われた日時、ファイルのサイズ、及びハッシュ値が登録されている。
【００５４】
次に、実行ファイル名ａｌｐｈａのプログラムが、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイルのクローズをリクエストしたときも、抽出処理部１２は、このリクエストが抽出条件を満たすか判定する。
【００５５】
上記の抽出条件定義ファイルＦ２から、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａで指定されるファイルのファイル情報は抽出対象となるため、ファイル情報の抽出が行われる。
【００５６】
ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイル情報は、抽出済みであるため、前述した図２のステップＳ７の処理が行われ、ファイル情報の更新が行われる。
図７は、更新されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイルのファイル情報の一例を示す図である。
【００５７】
更新されたファイル情報Ｆ３ａには、図６に示した情報の他に、クローズリクエストが行われた日時、ファイルのサイズ、及びハッシュ値が登録されている。
次に、実行ファイル名ａｌｐｈａのプログラムが、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのオープンをリクエストすると、抽出処理部１２は、このリクエストが抽出条件を満たすか判定する。
【００５８】
上記の抽出条件定義ファイルＦ２から、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂで指定されるファイルのファイル情報も抽出対象となり、抽出が行われる。
ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報は、未抽出であるため、前述した図２のステップＳ５の処理が行われ、ファイル情報の登録が行われる。
【００５９】
図８は、登録されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報の一例を示す図である。
図８のファイル情報Ｆ３ｂのように、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報は、たとえば、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイルのファイル情報の後に登録される。
【００６０】
登録される項目は、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅａのファイルのファイル情報の項目と同じである。
次に、実行ファイル名ａｌｐｈａのプログラムが、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのクローズをリクエストすると、抽出処理部１２は、このリクエストが抽出条件を満たすか判定する。
【００６１】
上記の抽出条件定義ファイルＦ２から、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂで指定されるファイルのファイル情報も抽出対象となり、抽出が行われる。
ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報は、抽出済みであるため、前述した図２のステップＳ７の処理が行われ、ファイル情報の更新が行われる。
【００６２】
図９は、更新されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報の一例を示す図である。
更新されたファイル情報Ｆ３ｃには、図８に示した情報の他に、クローズリクエストが行われた日時、ファイルのサイズ、及びハッシュ値が登録されている。
【００６３】
プログラムにより、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルに、情報が書き込まれることにより、ファイルのサイズが、０から１０５になっている。
実行ファイル名ａｌｐｈａのプログラムが終了して、ユーザＩＤが“３７００５”のユーザが、ファイル情報記録装置１上、またはファイル情報記録装置１にネットワークで接続されたコンピュータ上で、実行ファイル名ｂｅｔａのプログラムの実行を開始する。このときのコマンドは、たとえば、ｃｍｄ＞ｂｅｔａ／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂと表される。
【００６４】
実行ファイル名ｂｅｔａのプログラムが、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのオープンをリクエストすると、抽出処理部１２は、このリクエストが抽出条件を満たすか判定する。
【００６５】
図５に示したような抽出条件定義ファイルＦ２が適用される場合、ユーザＩＤ“３７００５”、及び実行ファイル名ｂｅｔａは、抽出を許容するものとして定義されていない。ただし、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂは、ファイル情報Ｆ３ｃに登録されており、“ＰＲＯＰＡＧＡＴＥ”が“ＯＮ”になっている。そのため、図３のステップＳ１４，Ｓ１５の判定処理により、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂで指定されるファイルのファイル情報は伝搬抽出の対象となり、伝搬抽出が行われる。
【００６６】
ユーザＩＤ“３７００５”のユーザによる、実行ファイル名ｂｅｔａのプログラムの実行時において、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報は、未抽出である。そのため、前述した図２のステップＳ５の処理が行われ、ファイル情報の登録が行われる。
【００６７】
図１０は、登録されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報の一例を示す図である。
ファイル情報Ｆ３ｄには、図９に示した情報の他に、２つ目のプログラムに関するプログラムＩＤ、プログラムの実行ファイル名、新たなユーザＩＤ、“ＰＲＯＰＡＧＥＴＥ”の状態、プログラムの開始日時、ファイル名が登録されている。さらにファイル情報Ｆ３ｄには、オープンリクエストが行われた日時、ファイルのサイズ、及びハッシュ値が登録されている。
【００６８】
次に、実行ファイル名ｂｅｔａのプログラムが、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルに情報を書き込み、その後クローズをリクエストしたときも、抽出処理部１２は、このリクエストが抽出条件を満たすか判定する。
【００６９】
上記のように、このリクエストに対しても伝搬抽出が行われるため、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂで指定されるファイルのファイル情報は伝搬抽出の対象となり、伝搬抽出が行われる。
【００７０】
図１１は、更新されたファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルのファイル情報の一例を示す図である。
更新されたファイル情報Ｆ３ｅには、図１０に示した情報の他に、クローズリクエストが行われた日時、ファイルのサイズ、及びハッシュ値が登録されている。
【００７１】
プログラムにより、ファイル名／ｕｓｒ／ｈｏｍｅ／ｆｉｌｅｂのファイルに、情報が書き込まれることにより、ファイルのサイズが、１０５から１０６になっている。
その後、実行ファイル名ｂｅｔａのプログラムが終了する。
【００７２】
以上のように、本実施の形態のファイル情報記録方法では、個々のプログラムの実行の際に使用されるファイルのファイル情報を一か所（抽出処理部１２）で抽出することができる。そのため、プログラムの種類ごとにファイル情報の抽出処理を定義しなくてもよくなり、簡単に適切な情報を記録できる。
【００７３】
また、ＯＳ１０は、プログラムからのシステムコールにより、ファイルの入力要求または出力要求が発生したことを検出したときに抽出処理を行うため、プログラムが入出力するファイルを漏れなく抽出することができる。
【００７４】
また、本実施の形態のファイル情報記録方法では、ファイルのサイズやハッシュ値を含むファイル情報が、プログラムによるファイルの入出力や、プログラムの実行前後で更新されていく。これにより同一ファイル名、ファイルパスのファイルで内容が更新されていく場合や、同一のファイル名、ファイルパスでファイルが差し替えられた場合などにおいても、ファイルの特定が容易になる。
【００７５】
また、ＯＳ１０の抽出処理部１２が、上記のような伝搬抽出を行うことで、未登録のプログラムやユーザによって抽出済みのファイル情報が更新された場合に、その事実を記録することができる。そのため、コンピュータ上の作業で用いられるファイルを主に参照／作成／更新するプログラムとユーザを登録しておけば、その他のプログラムやユーザによる更新も、漏れなく記録することができる。
【００７６】
なお、本実施の形態のファイル情報記録装置１は、たとえば、以下のようなハードウェアのコンピュータにて実現可能である。
図１２は、本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ１００は、演算装置であるＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。ＣＰＵ１０１は、前述した図１の制御部３の機能を実施する。なお、コンピュータ１００は、複数の演算装置を備えて、処理を分散して実行してもよい。
【００７７】
ＲＡＭ１０２は、コンピュータ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に用いる各種データが格納される。
【００７８】
バス１０８に接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、及び通信インタフェース１０７がある。
【００７９】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ１０３は、コンピュータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００８０】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令にしたがって、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００８１】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００８２】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１０６ａに記録されたデータの読み取りを行う。光ディスク１０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１０６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００８３】
通信インタフェース１０７は、ネットワーク１０７ａに有線または無線で接続されている。通信インタフェース１０７は、ネットワーク１０７ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。他のコンピュータは、たとえば、図１に示したようなプログラムＰ１を実行するもの、または、抽出条件Ｄ１を設定するものである。他のコンピュータも、図１２に示すようなハードウェアで実現可能である。
【００８４】
以上のようなハードウェアによって、本実施の形態の処理機能を実現することができる。
このように、上記の処理機能は、コンピュータによって実現することができる。その場合、ファイル情報記録装置１が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００８５】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８６】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【００８７】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【００８８】
以上、実施の形態に基づき、本発明のファイル情報記録装置、ファイル情報記録方法及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【００８９】
１  ファイル情報記録装置
２  記憶部
３  制御部
１０  ＯＳ
１１  システムコール処理部
１２  抽出処理部
１３  ファイル入出力処理部
Ｄ１  抽出条件
Ｄ２  ファイル情報
Ｄ３  ファイル群
Ｐ１  プログラム
【図１】
2014026570.tif 000003
【図２】
2014026570.tif 000004
【図３】
2014026570.tif 000005
【図４】
2014026570.tif 000006
【図５】
2014026570.tif 000007
【図６】
2014026570.tif 000008
【図７】
2014026570.tif 000009
【図８】
2014026570.tif 000010
【図９】
2014026570.tif 000011
【図１０】
2014026570.tif 000012
【図１１】
2014026570.tif 000013
【図１２】
2014026570.tif 000014