(57)【要約】      （修正有）【課題】管理者によるファイルの管理を簡略化するファイル管理プログラム、情報処理装置およびファイル管理方法を提供する。【解決手段】ファイル操作フックライブラリ１０４は、ソフトウェア１０３から、第１のコマンド１１１を受け付ける。次にファイル操作フックライブラリ１０４は、第１のファイルパス１１２を、「／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇ」に変換した第２のコマンド１２１を生成する。そして、ファイル操作フックライブラリ１０４は、ファイル名と、第１のファイルパス１１２と、第２のファイルパス１２２とを対応付けて記憶部１１０に格納する。また、ファイル操作フックライブラリ１０４は、第２のコマンド１２１を、ＯＳ１０２に発行し、ＯＳ１０２による第２のコマンド１２１の実行結果を、ソフトウェア１０３に通知する。【選択図】図１
2018101310.tif 000002
【特許請求の範囲】
【請求項１】
記憶部にアクセス可能なコンピュータに、
ソフトウェアから、ファイルの識別情報を含む第１のファイルパスを含む第１のコマンドを受け付け、
受け付けた前記第１のコマンドに含まれる前記第１のファイルパスを、前記ファイルの種別に応じた第２のファイルパスに変換した第２のコマンドを生成し、
前記ファイルの識別情報と、前記第１のファイルパスと、前記第２のファイルパスとを対応付けて前記記憶部に格納し、
前記第２のコマンドを前記コンピュータ上で動作するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に発行し、
前記ＯＳによる前記第２のコマンドの実行結果を、前記ソフトウェアに通知する、
処理を実行させることを特徴とするファイル管理プログラム。
【請求項２】
前記記憶部は、ソフトウェアから発行されたコマンドに含まれるファイルの識別情報を含む変換前のファイルパスと、前記変換前のファイルパスを変換した変換後のファイルパスとを対応付けて記憶しており、
前記コンピュータに、
前記記憶部を参照して、前記変換前のファイルパスに含まれるファイルの識別情報と前記第１のファイルパスに含まれるファイルの識別情報とが同一であり、かつ、前記変換前のファイルパスと前記第１のファイルパスとが異なる場合、前記第１のファイルパスで特定されるファイルの種別に応じたファイルパスであって前記変換後のファイルパスとは異なる第３のファイルパスに変換した第３のコマンドを生成し、
前記ファイルの識別情報と、前記第１のファイルパスと、前記第３のファイルパスとを対応付けて前記記憶部に格納し、
前記第３のコマンドを前記ＯＳに発行し、
前記ＯＳによる前記第３のコマンドの実行結果を、前記ソフトウェアに通知する、
処理を実行させることを特徴とする請求項１に記載のファイル管理プログラム。
【請求項３】
前記記憶部は、ソフトウェアに対応付けて、前記ソフトウェアのカレントパスを記憶しており、
前記コンピュータに、
受け付けた前記第１のコマンドに含まれる前記第１のファイルパスが相対パスか否かを判断し、
前記第１のファイルパスが前記相対パスであると判断した場合、前記第１のファイルパスを、前記ソフトウェアのカレントパスに基づき絶対パスに変換した第４のコマンドを生成し、
生成した前記第４のコマンドに含まれる絶対パスを、前記第４のコマンドに含まれる絶対パスで特定されるファイルの種別に応じた第２のファイルパスに変換した第２のコマンドを生成し、
前記ファイルの識別情報と、前記第４のコマンドに含まれる絶対パスと、前記第２のファイルパスとを対応付けて前記記憶部に格納する、
処理を実行させることを特徴とする請求項１または２に記載のファイル管理プログラム。
【請求項４】
前記記憶部は、ソフトウェアから発行されたコマンドに含まれるファイルの識別情報を含む変換前のファイルパスと、前記変換前のファイルパスを変換した変換後のファイルパスと、前記ファイルに関連する情報とを対応付けて記憶しており、
前記コンピュータに、
検索対象となるファイルの種別を受け付け、
前記記憶部を参照して、受け付けた前記ファイルの種別に応じたファイルを検索し、検索して得られたファイルの識別情報および当該ファイルに関連する情報を検索要求元に通知する、
処理を実行させることを特徴とする請求項１〜３のいずれか一つに記載のファイル管理プログラム。
【請求項５】
ソフトウェアから、ファイルの識別情報を含む第１のファイルパスを含む第１のコマンドを受け付け、
受け付けた前記第１のコマンドに含まれる前記第１のファイルパスを、前記ファイルの種別に応じた第２のファイルパスに変換した第２のコマンドを生成し、
前記ファイルの識別情報と、前記第１のファイルパスと、前記第２のファイルパスとを対応付けて記憶部に格納し、
前記第２のコマンドを自装置上で動作するＯＳに発行し、
前記ＯＳによる前記第２のコマンドの実行結果を、前記ソフトウェアに通知する、
制御部を有することを特徴とする情報処理装置。
【請求項６】
記憶部にアクセス可能なコンピュータが、
ソフトウェアから、ファイルの識別情報を含む第１のファイルパスを含む第１のコマンドを受け付け、
受け付けた前記第１のコマンドに含まれる前記第１のファイルパスを、前記ファイルの種別に応じた第２のファイルパスに変換した第２のコマンドを生成し、
前記ファイルの識別情報と、前記第１のファイルパスと、前記第２のファイルパスとを対応付けて前記記憶部に格納し、
前記第２のコマンドを前記コンピュータ上で動作するＯＳに発行し、
前記ＯＳによる前記第２のコマンドの実行結果を、前記ソフトウェアに通知する、
処理を実行することを特徴とするファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル管理プログラム、情報処理装置、およびファイル管理方法に関する。
【背景技術】
【０００２】
従来、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が、アプリケーションソフトウェア等から呼び出されたＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）をフックする機能を提供することがある。関連する先行技術として、例えば、フックしたファイルＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）要求のファイルＩ／Ｏに関する情報を取得し、個々のファイルＩ／Ｏ要求に、構成情報に基づいて制御情報を付加したＩ／Ｏ要求をファイルシステムに発行し、要求発行元に実行結果を渡す技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１９６０６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、アプリケーションソフトウェアの保守や運用といった管理を行う際に、管理者によるファイルの管理が煩雑になる場合がある。例えば、複数のアプリケーションソフトウェアを１つの情報処理装置上で動作させる場合、管理者は、各アプリケーションソフトウェアに関連するファイルを管理することになる。各アプリケーションソフトウェアの間では、ファイルの論理的な格納位置を示すファイルパスの決定方針が異なる場合がある。管理者は、決定方針が異なった各アプリケーションソフトウェアの一貫性のない煩雑なファイルパスを確認することになるため、ファイルを管理することが煩雑になる。
【０００５】
１つの側面では、本発明は、管理者によるファイルの管理を簡略化することができるファイル管理プログラム、情報処理装置、およびファイル管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの実施態様では、ファイル管理プログラム、情報処理装置、およびファイル管理方法は、ソフトウェアから、ファイルの識別情報を含む第１のファイルパスを含む第１のコマンドを受け付け、受け付けた第１のコマンドに含まれる第１のファイルパスを、ファイルの種別に応じた第２のファイルパスに変換した第２のコマンドを生成し、ファイルの識別情報と、第１のファイルパスと、第２のファイルパスとを対応付けて記憶部に格納し、第２のコマンドをコンピュータ上で動作するＯＳに発行し、ＯＳによる第２のコマンドの実行結果を、ソフトウェアに通知する。
【発明の効果】
【０００７】
１つの側面では、本発明は、管理者によるファイルの管理を簡略化することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態にかかる情報処理装置１０１の動作例を示す説明図である。
【図２】図２は、システム２００の構成例を示す説明図である。
【図３】図３は、情報処理装置１０１のハードウェア構成例を示す説明図である。
【図４】図４は、ある業務システムにおけるファイルパスの一例を示す説明図である。
【図５】図５は、他の業務システムにおけるファイルパスの一例を示す説明図である。
【図６】図６は、情報処理装置１０１の機能構成例を示す説明図である。
【図７】図７は、ファイル管理情報テーブル６１１の記憶内容の一例を示す説明図である。
【図８】図８は、ファイル管理ルール定義テーブル６１２の記憶内容の一例を示す説明図である。
【図９】図９は、ディレクトリ配置変換の動作例を示す説明図（その１）である。
【図１０】図１０は、ディレクトリ配置変換の動作例を示す説明図（その２）である。
【図１１】図１１は、ｈｌｓコマンドの動作結果の一例を示す説明図である。
【図１２】図１２は、ｈｌｓコマンドの動作結果の他の例を示す説明図である。
【図１３】図１３は、ｈｌｓコマンドの動作例を示す説明図である。
【図１４】図１４は、ｈｍｏｒｅコマンドの動作結果の一例を示す説明図である。
【図１５】図１５は、ｈｍｏｒｅコマンドの動作例を示す説明図である。
【図１６】図１６は、アクセス頻度の高いファイルを高性能なディスクに移動させる一例を示す説明図である。
【図１７】図１７は、ファイル操作フックライブラリ１０４の処理手順の一例を示すフローチャート（その１）である。
【図１８】図１８は、ファイル操作フックライブラリ１０４の処理手順の一例を示すフローチャート（その２）である。
【図１９】図１９は、ファイル操作パス取得処理手順の一例を示すフローチャートである。
【図２０】図２０は、ファイル操作フックライブラリ１０４のシーケンスの一例を示す説明図である。
【図２１】図２１は、ｈｌｓコマンド処理手順の一例を示すフローチャートである。
【図２２】図２２は、ｈｍｏｒｅコマンド処理手順の一例を示すフローチャートである。
【図２３】図２３は、本実施の形態における効果の一例を示す説明図である。
【図２４】図２４は、本実施の形態における効果の他の例を示す説明図である。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、開示のファイル管理プログラム、情報処理装置、およびファイル管理方法の実施の形態を詳細に説明する。
【００１０】
図１は、本実施の形態にかかる情報処理装置１０１の動作例を示す説明図である。情報処理装置１０１は、１以上の業務システムを動作させるコンピュータである。例えば、情報処理装置１０１は、サーバである。
【００１１】
ここで、業務システムは、何らかの目的、サービスのために、ソフトウェアやハードウェアを連携して構築されたコンピュータ環境のことである。業務システムは、例えば、全国の各放送局間の映像配信を制御するデジタルＴＶのシステムや、企業の業務を支援する企業業務支援システム、家庭の消費電力量を確認できるようにするシステム、ＥＣ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｍｍｅｒｃｅ）のポータルサイトを運営するシステムなど様々なシステムを指す。
【００１２】
そして、業務システムは、１以上のアプリケーションソフトウェアが実行されることにより実現される。以下、アプリケーションソフトウェアを、「アプリ」と称する。そして、業務システムとして提供する機能の数により、アプリそのものや、アプリが使用する定義ファイル、アプリが出力するログファイル等、アプリに関連するファイルの数は異なる。例えば、１つの業務システムに対して、数百から数千のファイルが存在する場合もある。
【００１３】
ここで、ファイルの管理について説明する。ＯＳは、ファイルシステムを提供する。ファイルシステムでは、ファイルをグループ化して管理することができる仕組みとして、ディレクトリまたはフォルダと呼ばれる仕組みを提供する。以下、前述の仕組みを、「ディレクトリ」と称する。また、ディレクトリは、階層化することも可能である。１以上のディレクトリ名を結合することにより、ファイルの格納位置を示す文字列を、「ファイルパス」または、単に「パス」と称す。ファイルパスは、例えば、階層化における最上位の階層であるルートディレクトリを示す文字列が先頭にある。例えば、ファイルパスは、「／ｅｘｐｏｒｔ／ＳＯ／Ｌｏｇ／ｓｏ．ｌｏｇ」というような文字列である。このような、ルートディレクトリを示す文字列が先頭にあるファイルパスを、絶対パスと呼ぶ。
【００１４】
また、業務システムの保守や運用といった管理を行う管理者は、例えば、複数のアプリの各アプリのファイルの内容を確認する。具体的には、管理者は、ログファイルの内容を確認して、どのようなエラーが出力されているかを確認したり、アプリにエラーが発生した場合に、ログファイルをアプリの開発者に送付したりする。
【００１５】
しかしながら、業務システムの管理を行う際に、管理者によるファイルの管理が煩雑になる場合がある。例えば、複数の業務システムに対応する複数のアプリを１つの情報処理装置上で動作させる場合、管理者は、複数のアプリの各アプリに関連するファイルを管理することになる。そして、各アプリの間では、ファイルパスの決定方針が異なる場合がある。管理者は、決定方針が異なった結果、一貫性のない煩雑なファイルパスを確認することになるため、ファイルを管理することが煩雑になる。より具体的には、管理者は、一貫性のない煩雑なファイルパスを記憶したり、ファイルパスが記載された、業務システムごとのマニュアルを確認したり、ＯＳの検索コマンドを駆使して目的のファイルを探したりするといった、手間や時間を費やすことになる。
【００１６】
ここで、各アプリの間でファイルパスの決定方針が異なってしまう理由について説明する。ファイルパスに含まれるディレクトリ名は、人がファイルを管理しやすい文字列が選ばれやすい。そして、人がファイルを管理しやすいディレクトリ名は、個々の人の主観によって異なるため、様々な文字列が存在する。また、開発担当者、開発期間、業務システムの構成等の違いによって、同じアプリであっても異なるディレクトリ名が付与されることがある。具体的なファイルパスの例については、図４、図５で示す。
【００１７】
また、各アプリの間で、一貫性のあるファイルパスに変更することも考えられる。しかしながら、ファイルパスの変更は、アプリの元となるソースコードの修正を行い、修正したソースコードをコンパイルすることになる。また、アプリに関連するファイルのファイルパスがソースコードではなく、定義ファイルに記載される場合もあるが、この場合、ソースコードには、定義ファイルのファイルパスが記載されることになるため、ソースコードをコンパイルすることは変わらない。そして、ソースコードをコンパイルして得られたアプリに対しては、アプリが正常に動作するかといった試験を行わなければならない。
【００１８】
このような業務システムごとに一貫性のないファイルパスは、保守、運用において、管理者の作業効率を低下させ、また、容易な流用開発の妨げとなる。
【００１９】
そこで、本実施の形態では、受け付けたコマンド内のファイルパスをファイルの種別に応じたパスに変換したコマンドを、ＯＳに発行し、変換したコマンドの実行結果をコマンドの発行元に通知することについて説明する。
【００２０】
図１を用いて、情報処理装置１０１の動作例について説明する。情報処理装置１０１上では、ＯＳ１０２と、ソフトウェア１０３と、ファイル操作フックライブラリ１０４とが動作する。また、情報処理装置１０１は、記憶部１１０にアクセス可能である。ソフトウェア１０３は、例えば、なんらかの業務システムを提供するアプリである。ファイル操作フックライブラリ１０４は、本実施の形態におけるファイル管理方法を提供するソフトウェアである。また、ファイル操作フックライブラリ１０４は、ＯＳ１０２の一部であってもよい。
【００２１】
まず、ファイル操作フックライブラリ１０４は、ソフトウェア１０３から、ファイルの識別情報を含む第１のファイルパス１１２を含む第１のコマンド１１１を受け付ける。ここで、ファイルの識別情報は、例えば、ファイル名である。以下、ファイルの識別情報は、ファイル名であるとする。また、コマンドは、何らかの機能の実行を指示する命令である。例えば、コマンドは、ＯＳ１０２が標準で提供するライブラリに含まれるコマンドや、ＯＳ１０２のユーザのために提供されるソフトウェアであるシェルアプリ上で使用可能なコマンドである。また、コマンドには、コマンド名を示す文字列と、命令の処理対象となる値や変数を指定するオペランドと呼ばれる文字列とが含まれる。ファイルパスは、オペランドとして指定される。
【００２２】
また、第１のコマンド１１１の受け付け方としては、例えば、ファイル操作フックライブラリ１０４は、ＯＳ１０２が標準で提供するライブラリに含まれるコマンドをフックすることにより、第１のコマンド１１１を受け付けてもよい。または、ファイル操作フックライブラリ１０４は、ＯＳ１０２が提供するコマンド名に類似する名称を有するコマンドをソフトウェア１０３に提供し、類似するコマンドが呼び出されたことにより、第１のコマンド１１１を受け付けたとしてもよい。
【００２３】
図１の例では、ファイル操作フックライブラリ１０４は、図１の（１）で示すように、ソフトウェア１０３から、第１のコマンド１１１として、「ｏｐｅｎ  ／ｅｘｐｏｒｔ／ＳＯ／Ｌｏｇ／ｓｏ．ｌｏｇ」を受け付ける。ここで、「／ｅｘｐｏｒｔ／ＳＯ／Ｌｏｇ／ｓｏ．ｌｏｇ」が第１のファイルパス１１２となる。
【００２４】
そして、ファイル操作フックライブラリ１０４は、受け付けた第１のコマンド１１１に含まれる第１のファイルパス１１２を、ファイルの種別に応じた第２のファイルパス１２２に変換した第２のコマンド１２１を生成する。ファイルの種別は、どのような分類による種別でもよい。例えば、ファイルのデータ内容による分類として、ファイルに文字データだけが含まれるテキストファイルという種別や、ファイルの内容が文字データ以外のデータも含まれるバイナリファイルという種別である。または、ファイル内のデータの意味による分類として、アプリのログが記載されるログファイルという種別や、アプリの動作を定義する定義情報が記載される定義ファイルという種別がある。
【００２５】
ファイル操作フックライブラリ１０４は、ファイルの種別を、例えば、第１のファイルパスで特定する。ファイルの種別を第１のファイルパスで特定する方法としては、例えば、ファイル名に付与された拡張子でファイルの種別を特定する方法がある。例えば、拡張子が「ｌｏｇ」であれば、該当のファイルは、ログファイルとなる。そして、ファイル操作フックライブラリ１０４は、ファイルの種別に応じてファイルを格納するディレクトリを予め決めておく。例えば、ファイル操作フックライブラリ１０４は、ログファイルであれば、あるディレクトリに格納するというルールを決めておく。また、ファイル操作フックライブラリ１０４は、どのファイル種別であっても、あるディレクトリに格納するというルールを決めてもよい。
【００２６】
図１の例では、どのファイル種別であっても、「／ｈｏｏｋ／ａｒｅａ１」というディレクトリに格納するというルールが決められているとする。この場合、ファイル操作フックライブラリ１０４は、図１の（２）で示すように、第１のファイルパス「／ｅｘｐｏｒｔ／ＳＯ／Ｌｏｇ／ｓｏ．ｌｏｇ」を、「／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇ」に変換した第２のコマンド１２１を生成する。
【００２７】
次に、ファイル操作フックライブラリ１０４は、図１の（３）で示すように、ファイル名と、第１のファイルパス１１２と、第２のファイルパス１２２とを対応付けて記憶部１１０に格納する。ここで、第１のファイルパス１１２と第２のファイルパス１２２とでは、ファイル名が共通する。そこで、記憶する情報量の削減のため、記憶部１１０には、ソフトウェア１０３の名称と、ファイル名と、第１のファイルパス１１２からファイル名を除いた文字列と、第２のファイルパス１２２からファイル名を除いた文字列とを対応付けても記憶させてもよい。また、ファイル操作フックライブラリ１０４は、ソフトウェア１０３の識別情報として、例えばソフトウェア１０３の名称をさらに対応付けて記憶部１１０に格納してもよい。
【００２８】
また、ファイル操作フックライブラリ１０４は、図１の（４）で示すように、第２のコマンド１２１を、ＯＳ１０２に発行する。そして、ファイル操作フックライブラリ１０４は、図１の（５）で示すように、ＯＳ１０２による第２のコマンド１２１の実行結果を、ソフトウェア１０３に通知する。ここで、図１の（３）で示す処理と、図１の（４）で示す処理とについて、ファイル操作フックライブラリ１０４は、図１の（３）で示す処理を先に行ってもよいし、図１の（４）で示す処理を先に行ってもよいし、並列で行ってもよい。例えば、図１の（５）の処理で、実行結果としてファイルが開けない等のエラーが発生する場合がある。この場合、ファイル操作フックライブラリ１０４は、第２のファイルパス１２２とは異なるファイルパスに変換したコマンドをＯＳ１０２に発行してもよい。そして、図１の（５）の処理で、実行結果が成功を示す場合に、ファイル操作フックライブラリ１０４は、図１の（３）で示す処理を先に行ってもよい。
【００２９】
以上により、ファイル操作フックライブラリ１０４は、管理者によるファイルの管理を簡略化することができる。具体的には、ファイル操作フックライブラリ１０４を利用するソフトウェア１０３は、管理者がディレクトリ名を意識しないでよい、一貫性がある環境を提供することができる。また、管理者は、ソフトウェアごとに管理された、深いファイルパスを指定せずにファイルを確認することができるようになるため、管理者は、ファイルの管理を簡略化することができる。
【００３０】
ここで、図１の説明では、ソフトウェア１０３は、情報処理装置１０１上で動作していたが、ファイル操作フックライブラリ１０４は、他の装置で動作するソフトウェアからのコマンドを受け付けてもよい。また、ソフトウェア１０３は、アプリであると説明したが、ＯＳ１０２の一部分のソフトウェアでもよい。次に、情報処理装置１０１を含むシステムについて、図２を用いて説明する。
【００３１】
図２は、システム２００の構成例を示す説明図である。システム２００は、情報処理装置１０１と、ユーザ端末２０１−１、２、…と、管理者端末２０２とを含む。情報処理装置１０１と、ユーザ端末２０１−１、２、…と、管理者端末２０２とは、それぞれ、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク２１０で接続される。
【００３２】
ユーザ端末２０１−１、２、…は、それぞれ、ユーザＵ１、Ｕ２、…によって操作されるコンピュータである。ユーザＵ１、Ｕ２、…は、情報処理装置１０１上で動作する業務システムを利用する者である。
【００３３】
管理者端末２０２は、管理者Ａｄによって操作されるコンピュータである。管理者Ａｄは、情報処理装置１０１を管理する者である。次に、情報処理装置１０１のハードウェア構成について、図３を用いて説明する。
【００３４】
（情報処理装置１０１のハードウェア構成例）
図３は、情報処理装置１０１のハードウェア構成例を示す説明図である。図３において、情報処理装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、を含む。また、情報処理装置１０１は、ディスクドライブ３０４およびディスク３０５と、通信インターフェース３０６と、を含む。また、ＣＰＵ３０１〜ディスクドライブ３０４、通信インターフェース３０６はバス３０７によってそれぞれ接続される。
【００３５】
ＣＰＵ３０１は、情報処理装置１０１の全体の制御を司る演算処理装置である。また、ＣＰＵ３０１は、複数のコアを有してもよい。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００３６】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ３０４には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ３０４が磁気ディスクドライブである場合、ディスク３０５には、磁気ディスクを採用することができる。また、ディスクドライブ３０４が光ディスクドライブである場合、ディスク３０５には、光ディスクを採用することができる。また、ディスクドライブ３０４がソリッドステートドライブである場合、ディスク３０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００３７】
通信インターフェース３０６は、ネットワーク２１０と内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース３０６は、通信回線を通じてネットワーク２１０を介して他の装置に接続される。通信インターフェース３０６には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３８】
また、管理者Ａｄが、情報処理装置１０１を直接操作する場合、情報処理装置１０１は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。また、ユーザ端末２０１、管理者端末２０２は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ディスクドライブ、ディスク、通信インターフェース、ディスプレイ、キーボード、マウスを有する。次に、ファイルの管理方式について説明する。
【００３９】
（ファイルパスの管理方式）
コンピュータのファイルシステムは、ファイルをグループ化して管理するためにディレクトリという仕組みを提供する。人によるファイルの管理は、このディレクトリに人が見て分かり易いと思う名前をつけてファイルを格納することで行われる。ディレクトリに付与する名前の例としては、個人名、メーカ名、アプリ名、開発する製品名、日付、言語名、ファイル種別、バージョン値等である。開発する製品名としては、「ｉｎｔｅｒｓｔａｇｅ（登録商標）」、「ｓｙｓｔｅｍｗａｌｋｅｒ（登録商標）」、「ｐｏｓｔｇｒｅｓＳＱＬ」等がある。日付としては、例えば「２０１６０８」等がある。言語名としては、「ｓｈｅｌｌ」、「ｂｓｈ」、「ｐｈｐ」、「ｊａｖａ」、「ｃｓｈ」、「ｃｓｈｅｌｌ」等がある。ファイル種別としては、「ｌｏｇ」、「ｃｏｎｆ」、「ｃｆｇ」、「ｂｉｎ」、「ａｐｐ」、「ａｐｌｉｃａｔｉｏｎ」、「Ａｐｌ」、「Ｌｏｇｆｉｌｅ」、「ｃｏｍｍａｎｄ」等がある。バージョン値は、例えば、「ｖ１．０」、「Ｖｅｒｓｉｏｎ２．０」等がある。
【００４０】
そして、アプリそのものや、アプリの関連ファイルの格納ディレクトリは、上記ディレクトリの組み合わせで作成される。ここで、あるアプリによって提供される、ある業務システムのファイルパスの一例について、図４で示し、他のアプリによって提供される、他の業務システムのファイルパスの一例について、図５で示す。
【００４１】
図４は、ある業務システムにおけるファイルパスの一例を示す説明図である。図４に示す表４０１は、ある業務システムにおけるファイルパスと、ファイルパスの意味とを示す。また、図５は、他の業務システムにおけるファイルパスの一例を示す説明図である。図５に示す表５０１は、他の業務システムにおけるファイルパスと、ファイルパスの意味とを示す。
【００４２】
表４０１と表５０１とを比較してわかるように、２つのシステムでは、それぞれの業務システムの開発担当者等の個人の主観によって異なるため様々な名前が付与される。このため、個々にアプリ開発を行い、アプリによって提供する業務システムにおいてもディレクトリの樹形構成は、開発担当者、システム構成、使用言語などの違いにより、システムごとに異なることになることが多い。また、管理ができていないシステムでは、システム内においても個人の主観でディレクトリが作成され、ディレクトリ数が数百におよぶ場合もある。
【００４３】
（情報処理装置１０１の機能構成例）
図６は、情報処理装置１０１の機能構成例を示す説明図である。情報処理装置１０１は、制御部６０１を有する。制御部６０１は、ＯＳ１０２と、ファイル操作フックライブラリ１０４とを含む。そして、ファイル操作フックライブラリ１０４は、受け付け部６０２と、相対パス判断部６０３と、生成部６０４と、格納部６０５と、発行部６０６と、通知部６０７と、を含む。制御部６０１は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などである。また、各部の処理結果は、ＲＡＭ３０３や、ＣＰＵ３０１のレジスタ、ＣＰＵ３０１のキャッシュメモリ等に格納される。
【００４４】
また、情報処理装置１０１は、記憶部１１０にアクセス可能である。記憶部１１０は、ＲＡＭ３０３、ディスク３０５といった記憶装置である。記憶部１１０には、ファイル管理情報テーブル６１１と、ファイル管理ルール定義テーブル６１２とが含まれる。ファイル管理情報テーブル６１１の記憶内容の一例は、図７で示す。また、ファイル管理ルール定義テーブル６１２の記憶内容の一例は、図８で示す。
【００４５】
ＯＳ１０２は、ＯＳ１０２が標準で提供するライブラリであるＯＳ標準ライブラリ６２１と、シェルアプリ上で使用可能なコマンドであるＯＳ標準コマンド６２２とを含む。ＯＳ標準ライブラリ６２１には、例えば、ｏｐｅｎ、ｆｏｐｅｎ、ｅｘｅｃｖｅ、…といったコマンドがある。また、ＯＳ標準コマンド６２２には、ｍｏｒｅ、ｖｉ、…といったコマンドがある。
【００４６】
受け付け部６０２は、アプリから、第１のコマンド１１１を受け付ける。例えば、受け付け部６０２は、ＯＳ標準ライブラリ６２１のコマンドをフックすることにより、第１のコマンド１１１を受け付ける。
【００４７】
また、図６に示すＯＳ標準コマンド６２２について、ファイル操作フックライブラリ１０４は、ＯＳ標準コマンド６２２のコマンド名に類似する名称を有するコマンドをアプリに提供する。類似する名称は、どのような名称でもよく、元の名称がわかることが好ましい。本実施の形態では、ファイル操作フックライブラリ１０４は、ＯＳ標準コマンド６２２のコマンド名の先頭に「ｈ」を付与した名称を有するコマンドをアプリに提供するものとして記載する。例えば、ファイル操作フックライブラリ１０４は、ＯＳ標準コマンド６２２に含まれる「ｍｏｒｅ」コマンドに対応する「ｈｍｏｒｅ」コマンドをアプリに提供する。そして、受け付け部６０２は、「ｈ」を付与した名称を有する第１のコマンド１１１が呼び出されることにより、第１のコマンド１１１を受け付ける。
【００４８】
生成部６０４は、受け付けた第１のコマンド１１１に含まれる第１のファイルパス１１２を、第１のファイルパス１１２で特定されるファイルの種別に応じた第２のファイルパス１２２に変換した第２のコマンド１２１を生成する。また、第１のコマンド１１１が、ファイル操作フックライブラリ１０４が提供するコマンドであるとする。この場合、生成部６０４は、第１のコマンド１１１のコマンド名から先頭にある「ｈ」を除いた文字列と、第２のファイルパス１２２とを含む第２のコマンド１２１を生成する。また、ファイルの種別に応じた第２のファイルパス１２２の例については、既に説明した例に限らない。例えば、動画ファイルを再生する際には、シーケンシャルアクセスが主に発生すると想定される。従って、生成部６０４は、ファイルの種別が動画ファイルである場合、第２のファイルパス１２２として、ハードディスク内の記憶領域を示すパスとしてもよい。
【００４９】
格納部６０５は、ファイル名と、第１のファイルパス１１２と、第２のファイルパス１２２とを対応付けてファイル管理情報テーブル６１１に格納する。発行部６０６は、第２のコマンド１２１をＯＳ１０２に発行する。通知部６０７は、ＯＳ１０２による第２のコマンド１２１の実行結果を、第１のコマンド１１１の発行元となるアプリに通知する。
【００５０】
また、ファイル管理情報テーブル６１１が、アプリから発行されたコマンドに含まれるファイル名を含む変換前のファイルパスと、変換前のファイルパスを変換した変換後のファイルパスとを対応付けて記憶しているとする。このとき、生成部６０４は、ファイル管理情報テーブル６１１を参照して、変換前のファイルパスに含まれるファイル名と第１のファイルパス１１２に含まれるファイル名とが同一であるか否かを判断する。同一でない場合、生成部６０４は、前述した機能通りに、第２のコマンド１２１を生成する。一方、同一である場合、生成部６０４は、変換前のファイルパスと第１のファイルパス１１２とが同一であるか否かを判断する。同一である場合、生成部６０４は、前述した機能通りに、第２のコマンド１２１を生成する。一方、同一でない場合、生成部６０４は、第１のファイルパス１１２で特定されるファイルの種別に応じたファイルパスであって変換後のファイルパスとは異なる第３のファイルパスに変換した第３のコマンドを生成する。そして、発行部６０６は、第３のコマンドをＯＳ１０２に発行する。そして、通知部６０７は、ＯＳ１０２による第３のコマンドの実行結果を、第１のコマンド１１１の発行元となるアプリに通知する。
【００５１】
第３のコマンドの例について具体的に説明する。図１の例を用いると、第３のコマンドを生成する契機は、「／ｅｘｐｏｒｔ／ＳＯ／Ｌｏｇ／ｓｏ．ｌｏｇ」以外のファイルパスから変換された「／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇ」が存在する際に、図１に示す第１のコマンド１１１が発行された場合である。変換前のファイルパスが異なるため、第１のコマンド１１１は、ファイル管理情報テーブル６１１で管理されているファイルとは異なるファイルに対するコマンドである。従って、発行部６０６は、例えば、第３のファイルパスとして、「／ｈｏｏｋ／ａｒｅａ２／ｓｏ．ｌｏｇ」を含む第３のコマンドを生成する。
【００５２】
また、受け付け部６０２が受け付けた第１のコマンド１１１に含まれる第１のファイルパス１１２は、図１に示したような絶対パスでもよいし、相対パスでもよい。ここで、相対パスは、カレントディレクトリからのファイルの論理的な格納位置を示す文字列である。カレントディレクトリは、ソフトごとに管理される。また、ルートディレクトリからカレントディレクトリまでのファイルパスを、カレントパスと呼ぶ。そして、相対パスに対応するため、ファイル管理情報テーブル６１１が、アプリに対応付けて、アプリのカレントパスを記憶しているとする。アプリのカレントパスの初期値は、アプリそのものが格納されているファイルパスとなる。
【００５３】
このとき、相対パス判断部６０３は、受け付けた第１のコマンド１１１に含まれる第１のファイルパス１１２が相対パスか否かを判断する。例えば、相対パス判断部６０３は、第１のファイルパス１１２の先頭の文字が、相対パスを示す文字であれば、第１のファイルパス１１２が相対パスであると判断する。相対パスを示す文字は、例えば、「．」である。または、相対パス判断部６０３は、第１のファイルパス１１２の先頭の文字が、絶対パスを示す文字でなければ、第１のファイルパス１１２が相対パスであると判断してもよい。
【００５４】
そして、生成部６０４は、相対パス判断部６０３が第１のファイルパス１１２が相対パスであると判断した場合、第１のファイルパス１１２を、アプリのカレントパスに基づき絶対パスに変換した第４のコマンドを生成する。次に、生成部６０４は、生成した第４のコマンドに含まれる絶対パスを、第４のコマンドに含まれる絶対パスで特定されるファイルの種別に応じた第２のファイルパス１２２に変換した第２のコマンド１２１を生成する。格納部６０５は、ファイル名と、第４のコマンドに含まれる絶対パスと、第２のファイルパス１２２とを対応付けてファイル管理情報テーブル６１１に格納する。
【００５５】
また、ファイル操作フックライブラリ１０４は、ファイル管理情報テーブル６１１を検索するコマンドをアプリに提供してもよい。このコマンドを、ｈｌｓコマンドとする。そして、ファイル管理情報テーブル６１１は、発行されたコマンドに含まれるファイルの識別情報を含む変換前のファイルパスと、変換前のファイルパスを変換した変換後のファイルパスと、ファイルに関連する情報とを対応付けて記憶しているとする。ファイルに関連する情報は、ファイルに関連するどのような情報でもよい。ファイルに関連する情報は、例えば、ファイルに対するアクセス種別や、ファイルにアクセスした時刻、ファイルにアクセスした回数等である。
【００５６】
ｈｌｓコマンドを提供する場合、受け付け部６０２は、ｈｌｓコマンドとして、検索対象となるファイルの種別を受け付けてもよい。ファイルの種別は、例えば、ファイルの拡張子である。また、ファイルの種別としては、ファイルの先頭などの特定の位置に記載されている、ファイルの形式を示すマジックナンバーに対応する文字列でもよい。また、受け付け部６０２は、ファイルの種別の他に、ファイル名や、ファイルに対してアクセスしたソフトウェアの名称を受け付けてもよい。そして、通知部６０７は、ファイル管理情報テーブル６１１を参照して、受け付けたファイルの種別に応じたファイルを検索し、検索して得られたファイル名および当該ファイルに関連する情報を、ｈｌｓコマンドを発行した検索要求元に通知する。
【００５７】
また、ファイル操作フックライブラリ１０４は、ファイル管理情報テーブル６１１に記憶された変換後のファイルパスが更新された場合、更新前のファイルパスに格納されているファイルを、更新後のファイルパスに移動させてもよい。
【００５８】
図７は、ファイル管理情報テーブル６１１の記憶内容の一例を示す説明図である。図７に示すファイル管理情報テーブル６１１は、レコード７０１−１〜１１を有する。
【００５９】
ファイル管理情報テーブル６１１は、ファイル名と、要求パスと、変換後のパスと、カレントパスと、アプリ名称と、アクセス種別と、インストール／初回作成日時と、付加情報１〜３というフィールドを含む。
【００６０】
ファイル名フィールドには、該当のレコードの対象となるファイル名が格納される。要求パスフィールドには、該当のファイルに対する要求パスを示す値が格納される。ここで、要求パスフィールドは、絶対パスサブフィールドと、相対パスサブフィールドとを有する。絶対パスサブフィールドには、該当のファイルを絶対パスで指定した際のファイルパスが格納される。相対パスサブフィールドには、該当のファイルを、カレントパスからの相対パスで指定した際のファイルパスが格納される。ここで、絶対パスサブフィールドや相対パスサブフィールドに格納されるファイルパスには、ファイル名が含まれないが、ファイル名を含んでもよい。
【００６１】
変換後のパスフィールドには、絶対パスを変換した後の変換後のファイルパスが格納される。カレントパスフィールドには、アプリ名称フィールドで示されるアプリのカレントパスが格納される。アプリ名称フィールドには、アプリの名称が格納される。アクセス種別フィールドには、アクセス種別を示す識別子として、「ｒｅａｄ」、または、「ｗｒｉｔｅ」が格納される。インストール／初回作成日時フィールドには、該当のファイルをインストール日時、または、該当のファイルの初回作成日時を示す文字列が格納される。
【００６２】
付加情報１フィールドとなる最終アクセス日時フィールドには、該当のファイルに最後にアクセスした日時を示す文字列が格納される。付加情報２フィールドとなるアクセスカウンタフィールドには、該当のファイルへのアクセス数を記憶する。付加情報３フィールドには、現状値が設定されていないが、例えば、該当のファイルについて、ｈｌｓコマンドで表示したい情報を格納してもよい。
【００６３】
図８は、ファイル管理ルール定義テーブル６１２の記憶内容の一例を示す説明図である。ファイル管理ルール定義テーブル６１２は、格納対象ファイルを格納する際のルールを定義するテーブルである。ファイル管理ルール定義テーブル６１２の１つのレコードが、１つのルールを示す。図８に示すファイル管理ルール定義テーブル６１２は、レコード８０１−１〜１０を有する。
【００６４】
ファイル管理ルール定義テーブル６１２は、ファイル格納先と、有効／無効と、格納先のパスと、対象ファイルと、最大ファイル数と、備考というフィールドを含む。ファイル格納先フィールドには、ルールの一部となる、ファイルの格納先のディレクトリの特徴を示す文字列が格納される。例えば、レコード８０１−１のファイル格納先フィールドには、「基本格納先」が格納されており、レコード８０１−２のファイル格納先フィールドには、「基本格納先・冗長ファイル格納先１」が格納されている。また、レコード８０１−９のファイル格納先フィールドには、「高性能ディスク」が格納されている。
【００６５】
「基本格納先」は、格納先のディレクトリが標準的な性能のディスク内にあり、かつ、ファイル名が重複していないファイルを格納するディレクトリであることを示す。また、「基本格納先・冗長ファイル格納先１」は、格納先のディレクトリが標準的な性能のディスク内にあり、かつ、格納対象ファイルと同名のファイルが「基本格納先」が示すディレクトリにある際に格納対象ファイルを格納するディレクトリであることを示す。また、「高性能ディスク」は、格納先のディレクトリが、標準的な性能のディスクより高性能なディスク内にあるディレクトリであることを示す。
【００６６】
有効／無効フィールドには、該当のレコードが有効か無効を示す識別子が格納される。格納先のパスフィールドには、格納先のディレクトリへのパスが格納される。対象ファイルフィールドには、ルールの一部となる、格納対象ファイルを格納先のディレクトリに格納する際に、対象ファイルのファイル名が満たすべき文字列が格納される。例えば、レコード８０１−１の対象ファイルフィールドには、「＊」が格納される。「＊」は、正規表現の一つであって、本実施の形態では、１文字以上のいずれかの文字を示す。従って、「＊」は、どのようなファイル名でも適合する。また、レコード８０１−９の対象ファイルフィールドには、「Ａｃｃｅｓｓ．ｌｏｇ」が格納されていることから、レコード８０１−９の格納先のディレクトリに格納するファイルのファイル名は、「Ａｃｃｅｓｓ．ｌｏｇ」だけであることを示す。
【００６７】
最大ファイル数フィールドには、ルール格納先のディレクトリに格納可能な最大ファイル数が格納される。備考フィールドには、備考を示す文字列が格納される。
【００６８】
例えば、格納対象ファイルを、標準的な性能のディスクに格納するものとする。この場合、情報処理装置１０１は、ファイル管理ルール定義テーブル６１２を参照して、標準的な性能のディスク内に格納先のディレクトリがある、レコード８０１−１〜８のうち、先頭にあるレコード８０１−１を取得する。ここで、レコード８０１−１の対象ファイルフィールドは、「＊」である。従って、レコード８０１−１の格納先のパスフィールドが示す「／ｈｏｏｋ／ａｒｅａ１」ディレクトリに含まれるファイル数が５００未満であれば、情報処理装置１０１は、格納対象ファイルを「／ｈｏｏｋ／ａｒｅａ１」ディレクトリに格納する。
【００６９】
次に、本実施の形態により、ファイルのディレクトリ配置が変換される例を、図９と図１０を用いて説明する。
【００７０】
図９は、ディレクトリ配置変換の動作例を示す説明図（その１）である。図９では、ファイルへのアクセス要求が、存在しないファイルに対するアクセス要求である場合の例を示す。そして、図９と図１０では、特定のユーザのユーザ空間９０１内で、アプリ名称が「Ｓｅｒｖｉｃｅ＿Ｍａｎａｇｅｒ」であるアプリ９０２と、ファイル操作フックライブラリ１０４とが動作するものとする。アプリ９０２は、図１で示したソフトウェア１０３に相当する。
【００７１】
ファイル操作フックライブラリ１０４は、図９の（１）で示すように、アプリ９０２から発行されたファイルアクセス要求をキャッチする。図９で示すアクセス要求は、「ｏｐｅｎ  ／ｅｘｐｏｒｔ／ＳＯ／Ｌｏｇ／ｓｏ．ｌｏｇ」である。このように、図９と図１０とでは、ＯＳ標準ライブラリ６２１が提供するコマンドのうち、ｏｐｅｎが呼ばれた場合を用いて説明を行う。
【００７２】
次に、ファイル操作フックライブラリ１０４は、図９の（２）で示すように、ファイルの操作要求を行ったアプリ名称を取得し、さらに、アクセス要求からファイル操作を行うパス、ファイル名を取得する。そして、ファイル操作フックライブラリ１０４は、図９の（３）で示すように、ファイル操作を行うファイル名がファイル管理情報テーブル６１１に存在するかを判断する。
【００７３】
図９の例では、ファイルへのアクセス要求は、存在しないファイルに対するアクセス要求であるため、ファイル操作を行うファイル名を有するレコードが、ファイル管理情報テーブル６１１には存在しない。従って、ファイル操作フックライブラリ１０４は、図９の（４）で示すように、ファイル管理ルール定義テーブル６１２に従って、アクセス要求に含まれるパスを変換する。図９の例では、ファイル操作フックライブラリ１０４は、レコード８０１−１に従って、「／ｅｘｐｏｒｔ／ＳＯ／Ｌｏｇ／ｓｏ．ｌｏｇ」を、「／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇ」に変換する。
【００７４】
そして、ファイル操作フックライブラリ１０４は、図９の（５）で示すように、変換したパスを含むコマンドをＯＳ１０２に発行する。変換したパスを含むコマンドは、「（ｏｐｅｎ  ／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇ」となる。ＯＳ１０２は、ＯＳ標準ライブラリ６２１内のｏｐｅｎ関数を実行して、発行されたコマンドを実行する。そして、ＯＳ１０２は、発行されたコマンドの実行結果を、ファイル操作フックライブラリ１０４に通知する。
【００７５】
実行結果をＯＳ１０２から受け付けたファイル操作フックライブラリ１０４は、ＯＳ１０２から受け付けた結果を確認する。そして、ファイル操作フックライブラリ１０４は、図９の（６）で示すように、取得したアプリケーション名、ファイル操作を行うパス、ファイル名、変換後のパス、アクセスカウンタなどの付加情報を対応付けて、ファイル管理情報テーブル６１１に格納する。図９の例では、ファイル操作フックライブラリ１０４は、レコード７０１−１をファイル管理情報テーブル６１１に格納する。また、ファイル操作フックライブラリ１０４は、図９の（７）で示すように、ＯＳ１０２から通知された実行結果としてファイルポインタをアプリ９０２に通知する。
【００７６】
アプリ９０２は、図９の（８）で示すように、ファイル操作フックライブラリ１０４により変換されたパスのファイルに書き込む。図９の例では、アプリ９０２は、通知されたファイルポインタを用いて、ログファイル９０３となる／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇに書き込む。
【００７７】
図１０は、ディレクトリ配置変換の動作例を示す説明図（その２）である。図１０では、ファイルへのアクセス要求が、存在するファイルに対するアクセス要求である場合の例を示す。ここで、図１０の（１）〜（３）、（５）、（７）、（８）で示す処理は、図９の（１）〜（３）、（５）、（７）、（８）で示す処理と同一であるため、説明を省略する。
【００７８】
図１０の（３）の処理について、図１０の例では、ファイルへのアクセス要求は、存在するファイルに対するアクセス要求であるため、ファイル操作を行うファイル名を示すレコードが、ファイル管理情報テーブル６１１には存在する。従って、ファイル操作フックライブラリ１０４は、図１０の（４）で示すように、ファイル管理情報テーブル６１１の該当のレコードに基づいて、現在ファイルが存在するパスに変換する。図１０の例では、ファイル操作フックライブラリ１０４は、レコード７０１−１に従って、「／ｅｘｐｏｒｔ／ＳＯ／Ｌｏｇ／ｓｏ．ｌｏｇ」を、「／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇ」に変換する。
【００７９】
図１０の（５）の処理終了後、実行結果をＯＳ１０２から受け付けたファイル操作フックライブラリ１０４は、ＯＳ１０２から受け付けた結果を確認する。そして、ファイル操作フックライブラリ１０４は、図１０の（６）で示すように、最終アクセス日時やアクセスカウンタなどの付加情報を更新する。
【００８０】
なお、図９、図１０では、ｆｏｐｅｎ、ｅｘｅｃｖｅも記載されているが、ｆｏｐｅｎ、ｅｘｅｃｖｅも、ＯＳ標準ライブラリ６２１が提供する関数である。ｆｏｐｅｎやｅｘｅｃｖｅが呼ばれた場合も、ファイル操作フックライブラリ１０４は、図９と図１０とで示したｏｐｅｎの処理と同様な処理を行う。
【００８１】
（ｈｌｓコマンド）
次に、ｈｌｓコマンドの動作結果について、アプリ９０２がアクセスしたファイルの一覧表示の例を、図１１を用いて説明し、拡張子が「ｃｏｎｆ」となるファイルと、該当のファイルにアクセスしたアプリとの一覧表示の例を、図１２を用いて説明する。そして、図１３で、ｈｌｓコマンドの動作例を示す。ここで、ｈｌｓコマンドは、以下のように、コマンドライン引数を与えることができる。
【００８２】
ｈｌｓ  −ｒ  アプリ名称／ファイル名
【００８３】
また、図１１〜図１３では、情報処理装置１０１上で、リモートシェルアプリが動作するものとする。リモートシェルアプリは、ネットワーク経由で別のコンピュータ上でシェルのコマンドを実行するＣＵＩ（Ｃｈａｒａｃｔｅｒ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）のアプリである。リモートシェルアプリは、例えば、ＴｅｌｎｅｔやＳＳＨ（Ｓｅｃｕｒｅ  ＳＨｅｌｌ）といったプロトコルを用いる。また、リモートシェルアプリは、ＣＵＩを実行し、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）をユーザに提供してもよい。
【００８４】
図１１は、ｈｌｓコマンドの動作結果の一例を示す説明図である。管理者端末２０２は、管理者Ａｄの入力により、「ｈｌｓ」を含むコマンド「ｈｌｓ  −ｒ  Ｓｅｒｖｉｃｅ＿Ｍａｎａｇｅｒ」を受け付ける。管理者端末２０２は、リモートシェルアプリによって、受け付けたコマンドを情報処理装置１０１に送信する。コマンドを受け付けた情報処理装置１０１は、受け付けたコマンドに従って処理を実行する。情報処理装置１０１によるｈｌｓコマンドを受け付けた際の処理の具体例については、図１３で説明する。そして、情報処理装置１０１は、受け付けたコマンドの実行結果を、管理者端末２０２に送信する。実行結果を受け付けた管理者端末２０２は、リモートシェルアプリによって、実行結果を自身のディスプレイに表示する。
【００８５】
図１１の説明では、管理者端末２０２が、ｈｌｓコマンドを受け付けたが、これに限らない。例えば、ユーザ端末２０１−１、２、…は、ユーザＵ１、Ｕ２、…の入力により、ｈｌｓコマンドを受け付けてもよい。そして、ユーザ端末２０１−１、２、…は、リモートシェルアプリによって、受け付けたｈｌｓコマンドを情報処理装置１０１に送信する。なお、ファイル管理情報テーブル６１１、ファイル管理ルール定義テーブル６１２の更新権限を、管理者Ａｄが有し、ユーザＵ１、Ｕ２、…が有さない、としてもよい。
【００８６】
図１１で示す画面１１０１は、管理者端末２０２のディスプレイ上に表示される画面である。画面１１０１は、管理者Ａｄの入力による入力結果と、該当の入力に応じた実行結果とを示す。
【００８７】
図１２は、ｈｌｓコマンドの動作結果の他の例を示す説明図である。管理者端末２０２は、管理者Ａｄの入力により、「ｈｌｓ」を含むコマンド「ｈｌｓ  −ｒ  ＊．ｃｏｎｆ」を受け付ける。以下のリモートシェルアプリに関連する一連の処理は、図１１で示した処理と同一であるため、説明を省略する。
【００８８】
図１２で示す画面１２０１は、管理者端末２０２のディスプレイ上に表示される画面である。画面１２０１は、管理者Ａｄの入力による入力結果と、該当の入力に応じた実行結果とを示す。
【００８９】
図１３は、ｈｌｓコマンドの動作例を示す説明図である。図１３では、管理者Ａｄのユーザ空間１３０１内で、リモートシェルアプリ１３０２と、ファイル操作フックライブラリ１０４とが動作するものとする。
【００９０】
ファイル操作フックライブラリ１０４は、図１３の（１）で示すように、リモートシェルアプリ１３０２から発行されたコマンド「ｈｌｓ  −ｒ  Ｓｅｒｖｉｃｅ＿Ｍａｎａｇｅｒ」を取得する。次に、ファイル操作フックライブラリ１０４は、図１３の（２）で示すように、ファイル管理情報テーブル６１１を参照して、Ｓｅｒｖｉｃｅ＿Ｍａｎａｇｅｒがアクセスしたファイルを検索する。そして、ファイル操作フックライブラリ１０４は、図１３の（３）で示すように、リモートシェルアプリ１３０２に、検索結果を通知する。
【００９１】
（ｈｍｏｒｅコマンド）
次に、ｈｍｏｒｅコマンドの動作結果について、Ｓｅｒｖｉｃｅ＿Ｍａｎａｇｅｒがアクセスしたｓｏ．ｌｏｇの内容表示の例を、図１４を用いて説明する。また、図１５で、ｈｍｏｒｅコマンドの動作例を示す。また、図１４、図１５では、図１１〜図１３と同様に、情報処理装置１０１上で、リモートシェルアプリが動作するものとする。
【００９２】
図１４は、ｈｍｏｒｅコマンドの動作結果の一例を示す説明図である。管理者端末２０２は、管理者Ａｄの入力により、「ｈｌｓ」を含むコマンド「ｈｍｏｒｅ  ｓｏ．ｌｏｇ」を受け付ける。以下のリモートシェルアプリによる一連の処理は、図１１で示した処理とほぼ同一であるため、説明を省略する。
【００９３】
図１４で示す画面１４０１は、管理者端末２０２のディスプレイ上に表示される画面である。画面１４０１は、管理者Ａｄの入力による入力結果と、該当の入力に応じた実行結果とを示す。
【００９４】
図１５は、ｈｍｏｒｅコマンドの動作例を示す説明図である。図１５では、管理者Ａｄのユーザ空間１３０１内で、リモートシェルアプリ１３０２と、ファイル操作フックライブラリ１０４とが動作するものとする。ここで、図１５では、管理者Ａｄは、ログファイル９０３の内容を閲覧したいものとする。
【００９５】
ファイル操作フックライブラリ１０４は、図１５の（１）で示すように、リモートシェルアプリ１３０２から発行されたコマンド「ｈｍｏｒｅ  ｓｏ．ｌｏｇ」を取得する。次に、ファイル操作フックライブラリ１０４は、図１５の（２）で示すように、ファイル管理情報テーブル６１１を参照して、ファイルパス「ｓｏ．ｌｏｇ」を「／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇ」に変換する。そして、ファイル操作フックライブラリ１０４は、図１５の（３）で示すように、変換したファイルパスを含むコマンド「ｍｏｒｅ  ／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇ」を、ＯＳ１０２に発行する。
【００９６】
ＯＳ１０２は、発行されたコマンドに基づいて、ＯＳ標準コマンド６２２内のｍｏｒｅを実行し、図１５の（４）で示すように、指定されたファイルとなるログファイル９０３「／ｈｏｏｋ／ａｒｅａ１／ｓｏ．ｌｏｇ」を読み込む。そして、ＯＳ１０２は、図１５の（５）で示すように、読み込んだ結果をリモートシェルアプリ１３０２に通知する。
【００９７】
なお、図１５の（２）において、「ｓｏ．ｌｏｇ」というファイル名を有するファイルが複数存在する可能性もある。この場合、ファイル操作フックライブラリ１０４は、「ｓｏ．ｌｏｇ」というファイル名を有する複数のファイルの各々に対応するファイルパスに変換する。従って、ファイル操作フックライブラリ１０４は、ファイルパスを、「ｓｏ．ｌｏｇ」というファイル名を有するファイルの数分得ることになる。そして、ファイル操作フックライブラリ１０４は、複数のファイルの各々に対応するファイルパスを含むコマンドを、ＯＳ１０２に発行すればよい。
【００９８】
（ファイルの移動）
次に、ファイルのディスクの移動について説明する。例えば、業務システムの運用中に、ディスクの性能が異なるサーバへ移動させる場合がある。具体的には、アクセス頻度が高いファイルが存在する場合に、該当のファイルがボトルネックとなり、業務システム全体の性能が低下する場合がある。このような場合、高性能なディスクに該当のファイルを移動すればよいが、アプリを回収することとなり、アプリの開発者でない者がアプリを回収することは困難である。そこで、本実施の形態では、ファイル管理情報テーブル６１１を更新するだけで、高性能なディスクに該当のファイルを移動する機能を提供する。アクセス頻度の高いファイルを、高性能なディスクに移動させる例を、図１６を用いて説明する。
【００９９】
図１６は、アクセス頻度の高いファイルを高性能なディスクに移動させる一例を示す説明図である。図１６の上部および下部では、ファイル管理情報テーブル６１１の一部として、レコード７０１−３〜６を示す。
【０１００】
図１６の上部に示すレコード７０１−４は、「Ｎｏ７＿ａｃｃｅｓｓ．ｌｏｇ」のアクセスカウンタの値が、１６８８８７８９であり、他のファイルと比べて多いことがわかる。情報処理装置１０１は、管理者Ａｄ等の操作により、「Ｎｏ７＿ａｃｃｅｓｓ．ｌｏｇ」の変換後のパスを、「／ｈｏｏｋ／ａｒｅａ１」から、図１６の下部で示すように「／ｄｅｖ／ｓｓｄ／ｈｉｇｈｔ＿ｄｓｋ」に書き換える。そして、情報処理装置１０１は、／ｈｏｏｋ／ａｒｅａ１／Ｎｏ７＿ａｃｃｅｓｓ．ｌｏｇを、／ｄｅｖ／ｓｓｄ／ｈｉｇｈｔ＿ｄｓｋ／Ｎｏ７＿ａｃｃｅｓｓ．ｌｏｇに移動させる。
【０１０１】
このように、本実施の形態では、アプリの回収を行わずに、アクセス頻度の高いファイルを、性能が高いディスクに移動させることができる。
【０１０２】
次に、ファイル操作フックライブラリ１０４の処理を示すフローチャートを、図１７〜図１９で示し、ファイル操作フックライブラリ１０４のシーケンスの一例を、図２０を用いて説明する。
【０１０３】
図１７は、ファイル操作フックライブラリ１０４の処理手順の一例を示すフローチャート（その１）である。また、図１８は、ファイル操作フックライブラリ１０４の処理手順の一例を示すフローチャート（その２）である。ファイル操作フックライブラリ１０４は、図１７と図１８とで示す処理を、アプリからＯＳ１０２に発行されるコマンドがフックされた際に実行する。
【０１０４】
ファイル操作フックライブラリ１０４は、フックされたコマンドであって、ファイルアクセスとして実行されるコマンドを受け付ける（ステップＳ１７０１）。次に、ファイル操作フックライブラリ１０４は、コマンドの発行元となる、アプリケーション名を取得する（ステップＳ１７０２）。そして、ファイル操作フックライブラリ１０４は、受け付けたコマンドから、アクセス種別を取得する（ステップＳ１７０３）。ここで、アクセス種別は、コマンドに含まれる引数の一つである。次に、ファイル操作フックライブラリ１０４は、ファイル操作パス取得処理を実行する（ステップＳ１７０４）。ファイル操作パス取得処理は、図１９で説明する。
【０１０５】
そして、ファイル操作フックライブラリ１０４は、受け付けたコマンドから、ファイル操作を行うファイル名を取得する（ステップＳ１７０５）。次に、ファイル操作フックライブラリ１０４は、ファイル管理情報テーブル６１１から、取得したファイル名を有するレコードを検索する（ステップＳ１７０６）。
【０１０６】
そして、ファイル操作フックライブラリ１０４は、検索結果として取得したファイル名を有するレコードがあるか否かを判断する（ステップＳ１８０１）。検索結果として取得したファイル名を有するレコードがない場合（ステップＳ１８０１：Ｎｏ）、ファイル操作フックライブラリ１０４は、ファイル管理ルール定義テーブル６１２から、取得したファイル名のルールを取得する（ステップＳ１８０２）。
【０１０７】
一方、検索結果として取得したファイル名を有するレコードがある場合（ステップＳ１８０１：Ｙｅｓ）、ファイル操作フックライブラリ１０４は、検索結果として見つかったレコード数分、ステップＳ１８０３〜Ｓ１８０５の処理を繰り返す。ここで、取得したファイル名と同一のファイル名は、絶対パスが異なれば複数存在する可能性がある。
【０１０８】
ファイル操作フックライブラリ１０４は、検索結果として見つかったレコード群のうちのあるレコードについて、レコードのファイルの絶対パスと、受け付けたコマンドの絶対パスとが一致するか否かを判断する（ステップＳ１８０４）。レコードのファイルの絶対パスと、受け付けたコマンドの絶対パスとが一致しない場合（ステップＳ１８０４：Ｎｏ）、ファイル操作フックライブラリ１０４は、あるレコードとは別のレコードについて、ステップＳ１８０４の処理を実行する。また、検索結果として見つかったレコード群全てについてステップＳ１８０４の処理を行った場合、ファイル操作フックライブラリ１０４は、繰り返しを抜ける。そして、ファイル操作フックライブラリ１０４は、ファイル管理ルール定義テーブル６１２の冗長ファイル格納先を参照して、検索で見つかった既存のファイルと異なる格納先のパスを作成する（ステップＳ１８０６）。
【０１０９】
ステップＳ１８０２、またはステップＳ１８０６の処理終了後、ファイル操作フックライブラリ１０４は、取得したルールや、作成したパスに基づいて、ＯＳ１０２に発行するファイルの操作のパスを変換する（ステップＳ１８０７）。
【０１１０】
また、レコードのファイルの絶対パスと受け付けたコマンドの絶対パスとが一致する場合（ステップＳ１８０４：Ｙｅｓ）、ファイル操作フックライブラリ１０４は、見つかったレコードを参照して、現在ファイルが存在するパスに変換する（ステップＳ１８０８）。
【０１１１】
ステップＳ１８０７、またはステップＳ１８０８の処理終了後、ファイル操作フックライブラリ１０４は、変換したパスを指定して、ＯＳにファイルアクセスのコマンドを発行する（ステップＳ１８０９）。
【０１１２】
そして、ファイル操作フックライブラリ１０４は、ＯＳ１０２からの返却結果が正常を示すか否かを判断する（ステップＳ１８１０）。ＯＳ１０２からの返却結果が正常を示す場合（ステップＳ１８１０：Ｙｅｓ）、ファイル操作フックライブラリ１０４は、アプリ名、絶対パス、相対パス、ファイル名、変換後のパス、アクセスカウンタ等の付加情報をファイル管理情報テーブル６１１に格納する（ステップＳ１８１１）。なお、相対パスについて、ファイル操作フックライブラリ１０４は、受け付けたコマンドの要求パスが相対パスである場合に限り、相対パスをファイル管理情報テーブル６１１に格納する。
【０１１３】
ステップＳ１８１１の処理終了後、または、ＯＳ１０２からの返却結果が正常を示さない場合（ステップＳ１８１０：Ｎｏ）、ファイル操作フックライブラリ１０４は、ＯＳ１０２から返却されたファイルポインタまたは／およびコマンド実行結果をアプリに通知する（ステップＳ１８１２）。ステップＳ１８１２の処理終了後、ファイル操作フックライブラリ１０４は、一連の処理を終了する。
【０１１４】
図１９は、ファイル操作パス取得処理手順の一例を示すフローチャートである。ファイル操作フックライブラリ１０４は、受け付けたコマンドに含まれる、要求されたパスを取得する（ステップＳ１９０１）。次に、ファイル操作フックライブラリ１０４は、取得した要求パスが相対パスか否かを判断する（ステップＳ１９０２）。ここで、要求パスが相対パスか否かは、例えば、要求パスが、ルートディレクトリを示す文字列で始まっているか否かで判断することができる。
【０１１５】
取得した要求パスが相対パスでない、すなわち絶対パスである場合（ステップＳ１９０２：Ｎｏ）、ファイル操作フックライブラリ１０４は、ファイル操作パス取得処理を終了する。
【０１１６】
一方、取得した要求パスが相対パスである場合（ステップＳ１９０２：Ｙｅｓ）、ファイル操作フックライブラリ１０４は、ファイル管理情報テーブル６１１を参照して、アプリ名からカレントパスを取得する（ステップＳ１９０３）。次に、ファイル操作フックライブラリ１０４は、取得したカレントパスと相対パスから絶対パスを作成する（ステップＳ１９０４）。そして、ファイル操作フックライブラリ１０４は、作成した絶対パスを要求パスに格納する（ステップＳ１９０５）。ここで、格納先となる要求パスは、例えば、受け付けたコマンド内の要求パスである。ステップＳ１９０５の処理終了後、ファイル操作フックライブラリ１０４は、ファイル操作パス取得処理を終了する。
【０１１７】
図２０は、ファイル操作フックライブラリ１０４のシーケンスの一例を示す説明図である。ここで、図２０で示す（１）、（５）、（７）、（８）の処理は、図９、図１０で示す（１）、（５）、（７）、（８）の処理に相当する。
【０１１８】
アプリ２００１は、図２０の（１）で示すように、ファイル２００２に対するアクセス要求となるコマンドをＯＳ１０２に発行する。ここで、アプリ２００１は、業務アプリを動作させるアプリでもよいし、シェルアプリでもよい。また、ファイル２００２は、アプリが操作しようとするファイルである。例えば、ファイル２００２は、図９で示すログファイル９０３に相当する。
【０１１９】
そして、ファイル操作フックライブラリ１０４は、ＯＳ１０２に発行されたコマンドをフックして、パスを変換し、図２０の（５）で示すように、パス変換後のコマンドを、ＯＳ１０２に発行し、コマンドの実行結果を受け付ける。次に、ファイル操作フックライブラリ１０４は、図２０の（７）で示すように、受け付けたコマンドの実行結果をアプリ２００１に通知する。アプリ２００１は、図２０の（８）で示すように、実行結果に含まれるファイルポインタ等を用いてファイル２００２にアクセスし、ファイルシステムから、ファイル２００２のアクセス結果を受け付ける。
【０１２０】
次に、シェルアプリから呼ばれるｈｌｓコマンドが呼び出された際にファイル操作フックライブラリ１０４が実行する、ｈｌｓコマンド処理のフローチャートを、図２１を用いて説明する。
【０１２１】
図２１は、ｈｌｓコマンド処理手順の一例を示すフローチャートである。ファイル操作フックライブラリ１０４は、管理者Ａｄ等の操作によって入力された、ｈｌｓコマンドを受け付ける（ステップＳ２１０１）。次に、ファイル操作フックライブラリ１０４は、受け付けたコマンドから、パラメータを取得する（ステップＳ２１０２）。そして、ファイル操作フックライブラリ１０４は、取得したパラメータに従いファイル管理情報テーブルを検索する（ステップＳ２１０３）。次に、ファイル操作フックライブラリ１０４は、検索結果があるか否かを判断する（ステップＳ２１０４）。
【０１２２】
検索結果がある場合（ステップＳ２１０４：Ｙｅｓ）、ファイル操作フックライブラリ１０４は、検索結果を、管理者端末２０２等の画面に表示させる（ステップＳ２１０５）。一方、検索結果がない場合（ステップＳ２１０４：Ｎｏ）、ファイル操作フックライブラリ１０４は、検索結果として情報なしのメッセージを、管理者端末２０２等の画面に表示する（ステップＳ２１０６）。
【０１２３】
ステップＳ２１０５、またはステップＳ２１０６の処理終了後、ファイル操作フックライブラリ１０４は、ｈｌｓコマンド処理を終了する。
【０１２４】
次に、シェルアプリから呼ばれるｈｍｏｒｅコマンドが呼び出された際にファイル操作フックライブラリ１０４が実行する、ｈｍｏｒｅコマンド処理のフローチャートを、図２１を用いて説明する。
【０１２５】
図２２は、ｈｍｏｒｅコマンド処理手順の一例を示すフローチャートである。ファイル操作フックライブラリ１０４は、ｈｍｏｒｅコマンドを受け付ける（ステップＳ２２０１）。次に、ファイル操作フックライブラリ１０４は、受け付けたコマンドから、パラメータを取得する（ステップＳ２２０２）。そして、ファイル操作フックライブラリ１０４は、取得したパラメータのファイル名のパスをファイル管理情報テーブル６１１から検索する（ステップＳ２２０３）。次に、ファイル操作フックライブラリ１０４は、検索結果があるか否かを判断する（ステップＳ２２０４）。
【０１２６】
検索結果がある場合（ステップＳ２２０４：Ｙｅｓ）、ファイル操作フックライブラリ１０４は、検索結果を用いて変換したパスと、ファイル名とを付与したｍｏｒｅを、ＯＳ１０２に発行する（ステップＳ２２０５）。そして、ファイル操作フックライブラリ１０４は、ＯＳ１０２からの通知結果を、管理者端末２０２等の画面に表示させる（ステップＳ２２０６）。一方、検索結果がない場合（ステップＳ２２０４：Ｎｏ）、ファイル操作フックライブラリ１０４は、検索結果として情報なしのメッセージを、管理者端末２０２等の画面に表示させる（ステップＳ２２０７）。ステップＳ２２０６、ステップＳ２２０７の処理終了後、ファイル操作フックライブラリ１０４は、ｈｍｏｒｅコマンド処理手順を終了する。
【０１２７】
ここで、図２２では、ｈｍｏｒｅコマンドについて説明したが、ＯＳ標準コマンド６２２に含まれる、ファイルを取り扱う他のコマンドについても、ファイル操作フックライブラリ１０４は、図２２で示すフローチャートとほぼ同様な動作を行えばよい。具体的には、ステップＳ２２０５において、ファイル操作フックライブラリ１０４は、「ｍｏｒｅ」コマンドのかわりに、該当の他のコマンドをＯＳ１０２に発行すればよい。
【０１２８】
（効果の一例）
次に、本実施の形態における効果例として、ファイル操作フックライブラリ１０４を用いない場合と用いる場合とにおける、管理者Ａｄの作業量の違いを、図２３、図２４を用いて説明する。ここで、図２３、図２４の上部では、ファイル操作フックライブラリ１０４を用いない場合の管理者Ａｄの作業内容を示し、図２３、図２４の下部では、ファイル操作フックライブラリ１０４を用いる場合の管理者Ａｄの作業内容を示す。また、故障発生としてアプリ：Ｓｅｒｖｉｃｅ＿Ｍａｎａｇｅｒで異常が発生したとする。
【０１２９】
図２３は、本実施の形態における効果の一例を示す説明図である。図２３では、保守、運用において、日常的に行われるアプリケーションエラーを契機としたログファイルの内容を参照する際における、管理者Ａｄの作業量の違いを示す。
【０１３０】
まず、ファイル操作フックライブラリ１０４を用いない場合について説明する。管理者Ａｄは、図２３の（ｏ−１）で示すように、机上にてマニュアル２３０１を閲覧して、「アプリ：Ｓｅｒｖｉｃｅ  Ｍａｎａｇｅｒ」のログファイル名を確認する。ここで、マニュアル２３０１には、ログファイル名は、「ｓｏ．ｌｏｇ」であると記載されているとする。
【０１３１】
そして、ログファイル名が確認できたら、管理者Ａｄは、図２３の（ｏ−２）で示すように、机上にてマニュアル２３０１を参照して、「アプリ：Ｓｅｒｖｉｃｅ  Ｍａｎａｇｅｒ」のログファイルのパスを確認する。ここで、マニュアル２３０１には、ログファイルは、「／ｅｘｐｏｒｔ／Ｓｏ／Ｌｏｇ／」に格納されていると記載されているとする。ログファイルのパスが確認できたら、管理者Ａｄは、管理者端末２０２に対して、「ｍｏｒｅ  ／ｅｘｐｏｒｔ／Ｓｏ／Ｌｏｇ／ｓｏ．ｌｏｇ」を入力する。情報処理装置１０１は、図２３の（ｏ−３）で示すように、管理者端末２０２から通知された「ｍｏｒｅ  ／ｅｘｐｏｒｔ／Ｓｏ／Ｌｏｇ／ｓｏ．ｌｏｇ」を実行する。このように、ファイル操作フックライブラリ１０４を用いない場合、管理者Ａｄは、２回のマニュアルの確認と、１回の入力操作とを行うことになる。
【０１３２】
次に、ファイル操作フックライブラリ１０４を用いる場合について説明する。ここで、管理者Ａｄは、参照するファイルがログファイルであることから、拡張子が「ｌｏｇ」であるとあたりをつけて、管理者端末２０２に、「ｈｍｏｒｅ  −ｒ  ／Ｓｅｒｖｉｃｅ＿Ｍａｎａｇｅｒ：  ＊．ｌｏｇ」を入力する。そして、情報処理装置１０１は、図２３の（ｎ−１）で示すように、管理者端末２０２から通知された「ｈｍｏｒｅ  −ｒ  ／Ｓｅｒｖｉｃｅ＿Ｍａｎａｇｅｒ：  ＊．ｌｏｇ」を実行する。このように、ファイル操作フックライブラリ１０４を用いる場合、管理者Ａｄは、１回の入力操作だけを行えばよく、ファイル操作フックライブラリ１０４を用いない場合に比べて作業量を削減することができる。
【０１３３】
図２４は、本実施の形態における効果の他の例を示す説明図である。図２４では、故障解析のため、全てのログを収集して、故障発生したＳｅｒｖｉｃｅ＿Ｍａｎａｇｅｒの開発者に送付する作業を行う際における、管理者Ａｄの作業量の違いを示す。
【０１３４】
まず、ファイル操作フックライブラリ１０４を用いない場合について説明する。管理者Ａｄは、図２４の（ｏ−１）で示すように、机上にてマニュアル２３０１を閲覧して、ログファイルが格納された全てのパスを確認する。ここで、マニュアル２３０１には、／ａｐ／ＭＳＭＳ／ａｐｌ／ｌｏｇ／、／ａｐ／ＭＳＭＳ／ｓｙｓ／ｌｏｇ／等にログファイルが格納されていると記載されているとする。
【０１３５】
そして、管理者が、ログファイルの全てのパスが確認できたとする。この場合、管理者Ａｄは、「ｔａｒ  ｃｖｆ  ．／Ａｌｌ＿ｌｏｇ．ｔａｒ  ／ａｐ／ＭＳＭＳ／ａｐｌ／ｌｏｇ／＊．ｌｏｇ  ／ａｐ／ＭＳＭＳ／ｓｙｓ／ｌｏｇ／＊．ｌｏｇ  …」を入力する。そして、情報処理装置１０１は、図２４の（ｏ−２）で示すように、「ｔａｒ  ｃｖｆ  ．／Ａｌｌ＿ｌｏｇ．ｔａｒ  ／ａｐ／ＭＳＭＳ／ａｐｌ／ｌｏｇ／＊．ｌｏｇ  ／ａｐ／ＭＳＭＳ／ｓｙｓ／ｌｏｇ／＊．ｌｏｇ  …」を実行する。このように、ファイル操作フックライブラリ１０４を用いない場合、管理者Ａｄは、ログファイルが格納されたディレクトリの数分のマニュアルの確認と、１回の入力操作とを行うことになる。
【０１３６】
次に、ファイル操作フックライブラリ１０４を用いる場合について説明する。ここで、管理者Ａｄは、収集するファイルがログファイルであることから、拡張子が「ｌｏｇ」であるとあたりをつけて、管理者端末２０２に、「ｈｔａｒ  ｃｖｆ  ．／Ａｌｌ＿ｌｏｇ．ｔａｒ  ＊．ｌｏｇ」を入力する。そして、情報処理装置１０１は、図２４の（ｎ−１）で示すように、管理者端末２０２から通知された「ｈｔａｒ  ｃｖｆ  ．／Ａｌｌ＿ｌｏｇ．ｔａｒ  ＊．ｌｏｇ」を実行する。このように、ファイル操作フックライブラリ１０４を用いる場合、管理者Ａｄは、１回の入力操作だけを行えばよく、ファイル操作フックライブラリ１０４を用いない場合に比べて作業量を削減することができる。
【０１３７】
以上説明したように、ファイル操作フックライブラリ１０４は、第１のコマンド１１１を変換した第２のコマンド１２１を、ＯＳ１０２に発行し、第２のコマンド１２１の実行結果を、第１のコマンド１１１の発行元に通知する。これにより、ファイル操作フックライブラリ１０４は、一貫性のないアプリのファイルパス制約を無効化し、ファイルの種別による操作を管理者Ａｄに提供できるので、管理者Ａｄの作業を簡略化することができる。また、管理者Ａｄが、ＯＳ１０２の検索コマンドを駆使して目的のファイルを探すことをしなくてよくなるため、ファイル操作フックライブラリ１０４は、ＯＳ１０２の検索コマンドを実行しなくてよい分、情報処理装置１０１の負荷を抑制することができる。
【０１３８】
また、ファイル操作フックライブラリ１０４は、ファイル管理情報テーブル６１１に記憶されているファイル名と同一のファイル名であって、変換前のファイルパスと、第１のファイルパス１１２とが異なれば、重複先のディレクトリを含むファイルパスに変換する。ここで、変換前のファイルパスと、第１のファイルパス１１２とが異なる場合とは、第１のファイルパス１１２で指定されたファイルが、ファイル管理情報テーブル６１１で管理されているファイルとは異なるファイルである。従って、ファイル操作フックライブラリ１０４は、異なるファイルに対するコマンドを、正しく処理することができる。
【０１３９】
また、ファイル操作フックライブラリ１０４は、第１のファイルパス１１２が相対パスである場合、絶対パスに変換し、変換した絶対パスと、第２のファイルパス１２２とを対応付けてファイル管理情報テーブル６１１に記憶する。これにより、ファイル操作フックライブラリ１０４は、相対パスでアクセスされたファイルも正しく管理することができる。より具体的には、ファイル操作フックライブラリ１０４は、あるファイルに対して、相対パスでアクセスされた後、アプリのカレントパスが変更した後に、あるファイルに対して、相対パスでアクセスされた場合でも、正しく処理することができる。
【０１４０】
また、ファイル操作フックライブラリ１０４は、ｈｌｓコマンドを提供してもよい。これにより、管理者Ａｄは、ファイルの拡張子といったファイルの種別からファイルを検索することができるため、一貫性のないアプリのファイルパス制約を覚えなくてよくなり、管理者Ａｄの作業が簡略化する。
【０１４１】
また、ファイル操作フックライブラリ１０４は、ファイル管理情報テーブル６１１内の変換後のパスが更新された場合、更新前のファイルパスに格納されているファイルを、更新後のファイルパスに移動させてもよい。例えば、アクセス頻度が高いファイルが存在し、該当のファイルがボトルネックとなっているとする。そして、図１６で示したように、ファイル操作フックライブラリ１０４は、アプリの回収を行わずに、アクセス頻度の高いファイルを、性能が高いディスクに移動させることができる。そして、ファイル操作フックライブラリ１０４は、ボトルネックを解消することができる。
【０１４２】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１４３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１４４】
（付記１）記憶部にアクセス可能なコンピュータに、
ソフトウェアから、ファイルの識別情報を含む第１のファイルパスを含む第１のコマンドを受け付け、
受け付けた前記第１のコマンドに含まれる前記第１のファイルパスを、前記ファイルの種別に応じた第２のファイルパスに変換した第２のコマンドを生成し、
前記ファイルの識別情報と、前記第１のファイルパスと、前記第２のファイルパスとを対応付けて前記記憶部に格納し、
前記第２のコマンドを前記コンピュータ上で動作するＯＳに発行し、
前記ＯＳによる前記第２のコマンドの実行結果を、前記ソフトウェアに通知する、
処理を実行させることを特徴とするファイル管理プログラム。
【０１４５】
（付記２）前記記憶部は、ソフトウェアから発行されたコマンドに含まれるファイルの識別情報を含む変換前のファイルパスと、前記変換前のファイルパスを変換した変換後のファイルパスとを対応付けて記憶しており、
前記コンピュータに、
前記記憶部を参照して、前記変換前のファイルパスに含まれるファイルの識別情報と前記第１のファイルパスに含まれるファイルの識別情報とが同一であり、かつ、前記変換前のファイルパスと前記第１のファイルパスとが異なる場合、前記第１のファイルパスで特定されるファイルの種別に応じたファイルパスであって前記変換後のファイルパスとは異なる第３のファイルパスに変換した第３のコマンドを生成し、
前記ファイルの識別情報と、前記第１のファイルパスと、前記第３のファイルパスとを対応付けて前記記憶部に格納し、
前記第３のコマンドを前記ＯＳに発行し、
前記ＯＳによる前記第３のコマンドの実行結果を、前記ソフトウェアに通知する、
処理を実行させることを特徴とする付記１に記載のファイル管理プログラム。
【０１４６】
（付記３）前記記憶部は、ソフトウェアに対応付けて、前記ソフトウェアのカレントパスを記憶しており、
前記コンピュータに、
受け付けた前記第１のコマンドに含まれる前記第１のファイルパスが相対パスか否かを判断し、
前記第１のファイルパスが前記相対パスであると判断した場合、前記第１のファイルパスを、前記ソフトウェアのカレントパスに基づき絶対パスに変換した第４のコマンドを生成し、
生成した前記第４のコマンドに含まれる絶対パスを、前記第４のコマンドに含まれる絶対パスで特定されるファイルの種別に応じた第２のファイルパスに変換した第２のコマンドを生成し、
前記ファイルの識別情報と、前記第４のコマンドに含まれる絶対パスと、前記第２のファイルパスとを対応付けて前記記憶部に格納する、
処理を実行させることを特徴とする付記１または２に記載のファイル管理プログラム。
【０１４７】
（付記４）前記記憶部は、ソフトウェアから発行されたコマンドに含まれるファイルの識別情報を含む変換前のファイルパスと、前記変換前のファイルパスを変換した変換後のファイルパスと、前記ファイルに関連する情報とを対応付けて記憶しており、
前記コンピュータに、
検索対象となるファイルの種別を受け付け、
前記記憶部を参照して、受け付けた前記ファイルの種別に応じたファイルを検索し、検索して得られたファイルの識別情報および当該ファイルに関連する情報を検索要求元に通知する、
処理を実行させることを特徴とする付記１〜３のいずれか一つに記載のファイル管理プログラム。
【０１４８】
（付記５）前記記憶部は、ソフトウェアから発行されたコマンドに含まれるファイルの識別情報を含む変換前のファイルパスと、前記変換前のファイルパスを変換した変換後のファイルパスとを対応付けて記憶しており、
前記コンピュータに、
前記記憶部に記憶された変換後のファイルパスが更新された場合、更新前のファイルパスに格納されているファイルを、更新後のファイルパスに移動させる、
処理を実行させることを特徴とする付記１〜４のいずれか一つに記載のファイル管理プログラム。
【０１４９】
（付記６）ソフトウェアから、ファイルの識別情報を含む第１のファイルパスを含む第１のコマンドを受け付け、
受け付けた前記第１のコマンドに含まれる前記第１のファイルパスを、前記ファイルの種別に応じた第２のファイルパスに変換した第２のコマンドを生成し、
前記ファイルの識別情報と、前記第１のファイルパスと、前記第２のファイルパスとを対応付けて記憶部に格納し、
前記第２のコマンドを自装置上で動作するＯＳに発行し、
前記ＯＳによる前記第２のコマンドの実行結果を、前記ソフトウェアに通知する、
制御部を有することを特徴とする情報処理装置。
【０１５０】
（付記７）記憶部にアクセス可能なコンピュータが、
ソフトウェアから、ファイルの識別情報を含む第１のファイルパスを含む第１のコマンドを受け付け、
受け付けた前記第１のコマンドに含まれる前記第１のファイルパスを、前記ファイルの種別に応じた第２のファイルパスに変換した第２のコマンドを生成し、
前記ファイルの識別情報と、前記第１のファイルパスと、前記第２のファイルパスとを対応付けて前記記憶部に格納し、
前記第２のコマンドを前記コンピュータ上で動作するＯＳに発行し、
前記ＯＳによる前記第２のコマンドの実行結果を、前記ソフトウェアに通知する、
処理を実行することを特徴とするファイル管理方法。
【符号の説明】
【０１５１】
１０１  情報処理装置
１０２  ＯＳ
１０３  ソフトウェア
１０４  ファイル操作フックライブラリ
１１０  記憶部
６０１  制御部
６０２  受け付け部
６０３  相対パス判断部
６０４  生成部
６０５  格納部
６０６  発行部
６０７  通知部
６１１  ファイル管理情報テーブル
６１２  ファイル管理ルール定義テーブル
６２１  ＯＳ標準ライブラリ
６２２  ＯＳ標準コマンド
【図１】
2018101310.tif 000003
【図２】
2018101310.tif 000004
【図３】
2018101310.tif 000005
【図４】
2018101310.tif 000006
【図５】
2018101310.tif 000007
【図６】
2018101310.tif 000008
【図７】
2018101310.tif 000009
【図８】
2018101310.tif 000010
【図９】
2018101310.tif 000011
【図１０】
2018101310.tif 000012
【図１１】
2018101310.tif 000013
【図１２】
2018101310.tif 000014
【図１３】
2018101310.tif 000015
【図１４】
2018101310.tif 000016
【図１５】
2018101310.tif 000017
【図１６】
2018101310.tif 000018
【図１７】
2018101310.tif 000019
【図１８】
2018101310.tif 000020
【図１９】
2018101310.tif 000021
【図２０】
2018101310.tif 000022
【図２１】
2018101310.tif 000023
【図２２】
2018101310.tif 000024
【図２３】
2018101310.tif 000025
【図２４】
2018101310.tif 000026