(57)【特許請求の範囲】
【請求項１】
管理対象のファイルシステムにおけるディレクトリ毎に、ディレクトリ情報の更新履歴（ディレクトリ更新履歴）を記憶するディレクトリ更新履歴記憶部と、
前記ファイルシステムにアクセスする各種処理に応じて前記ディレクトリ情報に更新があると、更新のあったディレクトリの前記ディレクトリ更新履歴を更新するディレクトリ更新履歴更新部と、
前記ディレクトリ情報の差分の取得要求として指定ディレクトリおよび指定時刻を表す情報を受信すると、前記ディレクトリ更新履歴記憶部において前記指定ディレクトリについて記憶された前記ディレクトリ更新履歴から、前記指定時刻以降の情報を抽出して差分として出力するディレクトリ更新履歴参照部と、
を備え、
前記ディレクトリ更新履歴記憶部は、前記ディレクトリのうち記録対象のディレクトリについて前記ディレクトリ更新履歴を記憶し、
前記ディレクトリ更新履歴更新部は、前記記録対象のディレクトリのディレクトリ情報に更新があると該ディレクトリの前記ディレクトリ更新履歴を更新し、
前記ディレクトリ更新履歴参照部は、前記指定ディレクトリについて前記ディレクトリ更新履歴記憶部に前記ディレクトリ更新履歴が記憶されていない場合、前記指定ディレクトリを前記記録対象に追加するディレクトリ情報管理装置。
【請求項２】
前記ディレクトリ更新履歴記憶部は、前記ディレクトリについて前記ディレクトリ更新履歴をその記録開始時刻と共に記憶し、
前記ディレクトリ更新履歴参照部は、前記指定時刻が前記指定ディレクトリの前記記録開始時刻以降である場合に、前記指定ディレクトリの前記ディレクトリ更新履歴から前記指定時刻以降の情報を抽出して差分として出力することを特徴とする請求項１に記載のディレクトリ情報管理装置。
【請求項３】
前記ディレクトリ更新履歴更新部は、前記各ディレクトリについての前記ディレクトリ更新履歴のうち最も古い情報から順に所定範囲までを削除し、削除に応じて前記記録開始時刻を更新することを特徴とする請求項２に記載のディレクトリ情報管理装置。
【請求項４】
請求項１から請求項３のいずれか１項に記載のディレクトリ情報管理装置と、
前記ファイルシステムと、
前記ファイルシステムにアクセスする処理を実行して前記ファイルシステムにおけるディレクトリ情報の更新内容を前記ディレクトリ情報管理装置に通知するファイルアクセス処理装置と、を備えた情報処理システム。
【請求項５】
管理対象のファイルシステムにおけるディレクトリ毎に、ディレクトリ情報の更新履歴（ディレクトリ更新履歴）を記憶するディレクトリ更新履歴記憶部を用いて、
前記ファイルシステムにアクセスする各種処理に応じて前記ディレクトリ情報に更新があると、更新のあったディレクトリの前記ディレクトリ更新履歴を更新し、
前記ディレクトリ情報の差分の取得要求として指定ディレクトリおよび指定時刻を表す情報を受信すると、前記ディレクトリ更新履歴記憶部において前記指定ディレクトリについて記憶された前記ディレクトリ更新履歴から、前記指定時刻以降の情報を抽出して差分として出力し、
前記ディレクトリ更新履歴記憶部は、前記ディレクトリのうち記録対象のディレクトリについて前記ディレクトリ更新履歴を記憶し、
前記ディレクトリ更新履歴を更新する処理では、前記記録対象のディレクトリのディレクトリ情報に更新があると該ディレクトリの前記ディレクトリ更新履歴を更新し、
前記指定時刻以降の情報を抽出して差分として出力する処理では、前記指定ディレクトリについて前記ディレクトリ更新履歴記憶部に前記ディレクトリ更新履歴が記憶されていない場合、前記指定ディレクトリを前記記録対象に追加するディレクトリ情報管理方法。
【請求項６】
管理対象のファイルシステムにおけるディレクトリ毎に、ディレクトリ情報の更新履歴（ディレクトリ更新履歴）を記憶するディレクトリ更新履歴記憶部を用いて、
前記ファイルシステムにアクセスする各種処理に応じて前記ディレクトリ情報に更新があると、更新のあったディレクトリの前記ディレクトリ更新履歴を更新するディレクトリ更新履歴更新ステップと、
前記ディレクトリ情報の差分の取得要求として指定ディレクトリおよび指定時刻を表す情報を受信すると、前記ディレクトリ更新履歴記憶部において前記指定ディレクトリについて記憶された前記ディレクトリ更新履歴から、前記指定時刻以降の情報を抽出して差分として出力するディレクトリ更新履歴参照ステップと、
をコンピュータ装置に実行させ、
前記ディレクトリ更新履歴記憶部は、前記ディレクトリのうち記録対象のディレクトリについて前記ディレクトリ更新履歴を記憶し、
前記ディレクトリ更新履歴更新ステップでは、前記記録対象のディレクトリのディレクトリ情報に更新があると該ディレクトリの前記ディレクトリ更新履歴を更新し、
ディレクトリ更新履歴参照ステップでは、前記指定ディレクトリについて前記ディレクトリ更新履歴記憶部に前記ディレクトリ更新履歴が記憶されていない場合、前記指定ディレクトリを前記記録対象に追加するディレクトリ情報管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムにおけるディレクトリ情報を管理する技術に関する。
【背景技術】
【０００２】
複数のクライアントによってファイルを共有するため、ファイルサーバが利用されている。ファイルサーバを利用するクライアントは、利用するディレクトリについて、特定の時点以降に更新されたディレクトリ情報の差分を取得したい場合がある。ディレクトリ情報とは、そのディレクトリに含まれるファイルやディレクトリに関する情報を表す。例えば、クライアントが、あるディレクトリについて以前に取得したディレクトリ情報のキャッシュを最新状態に更新することを考える。この場合、クライアントは、再度そのディレクトリについてディレクトリ情報を取得するより、前回取得した時点以降の差分を取得した方が、転送データ量を削減でき効率が良い。そこで、ファイルサーバには、任意のディレクトリについて任意の時点以降のディレクトリ情報の差分を取得してクライアントに送信する機能が求められる。
【０００３】
このようなディレクトリ情報の差分取得に関連する技術が、特許文献１に記載されている。この関連技術では、サーバが、自装置上のファイルやディレクトリが更新される度に、ディレクトリ情報の差分をクライアントに対して通知する。クライアントは、サーバから取得したディレクトリ情報をキャッシュとして記憶しておき、以降、通知される差分を用いて、ディレクトリ情報のキャッシュを更新する。
【０００４】
また、バックアップの分野において任意の時点からの差分を得る技術を、ディレクトリ情報の差分取得に適用することが考えられる。
【０００５】
例えば、特許文献２には、データベースにおける復元対象のオブジェクトを、フルバックアップファイルおよび部分的バックアップファイルのいずれから復元するかを判定し、判定結果に基づいて復元を行う技術が記載されている。この関連技術を、ディレクトリ情報の差分を求めるために適用することを考える。この場合、ファイルサーバは、ファイルシステム全体のディレクトリ情報についてフルバックアップおよび部分的バックアップを適宜実行する。そして、ファイルサーバは、任意の時点以降のディレクトリ情報の差分を、フルバックアップファイルおよび部分的バックアップファイルに基づいて抽出することになる。
【０００６】
また、特許文献３には、データの完全バックアップ以降の増分バックアップを表す増分バックアップ情報を、単位期間毎に統合する技術が記載されている。この関連技術を、ディレクトリ情報の差分を求めるために適用することを考える。この場合、ファイルサーバは、ファイルシステム全体のディレクトリ情報について、フルバックアップに対する増分バックアップを適宜実行して増分バックアップ情報を保存し、単位期間毎に統合しておく。そして、ファイルサーバは、任意の時点以降のディレクトリ情報の差分を、統合した増分バックアップ情報から抽出することになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−１５４０３１号公報
【特許文献２】特表２０１３−５４２５１３号公報
【特許文献３】特開２０１１−２０９８１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ファイルサーバを利用する一般的なクライアントは、ファイルシステムの一部のファイルを利用する。したがって、クライアントは、一部のディレクトリに関してディレクトリ情報を必要とするが、ファイルシステム全体についてディレクトリ情報を必要とすることは少ない。しかしながら、上述の関連技術は、このことを考慮しておらず、以下の課題がある。
【０００９】
特許文献１に記載された関連技術では、ファイルサーバは、ディレクトリ情報が更新される度に、各クライアントに対して、ディレクトリ情報の差分を通知する。そのため、クライアントは、必要としないディレクトリ情報についても差分の通知を受ける。このように、この関連技術では、サーバおよびクライアントの処理や通信に無駄が多くなる。したがって、この関連技術は、任意のディレクトリについて任意の時点以降のディレクトリ情報の差分を求める用途に適していない。
【００１０】
また、特許文献２に記載された関連技術を用いた場合、ファイルサーバは、ファイルシステム全体のディレクトリ情報について、フルバックアップファイルおよび部分的バックアップファイルを保存する。そして、ファイルサーバは、ファイルシステム全体のディレクトリ情報のフルバックアップファイルおよび部分的バックアップファイルから、一部のディレクトリ情報に関する情報を抽出した上で、任意の時点以降の差分を抽出しなければならない。このように、この関連技術は、要求される差分の抽出にかかる処理コストが高い。したがって、この関連技術は、任意のディレクトリについて任意の時点以降のディレクトリ情報の差分を求める用途に適していない。
【００１１】
また、特許文献３に記載された関連技術を用いた場合、ファイルサーバは、ファイルシステム全体のディレクトリ情報について、統合された増分バックアップ情報を保存する。そして、ファイルサーバは、ファイルシステム全体のディレクトリ情報の統合された増分バックアップ情報から、一部のディレクトリ情報に関する情報を抽出した上で、任意の時点以降の差分を抽出しなければならない。このようにこの関連技術は、要求される差分の抽出にかかる処理コストが高い。したがって、この関連技術は、任意のディレクトリについて任意の時点以降のディレクトリ情報の差分を求める用途に適していない。
【００１２】
本発明は、上述の課題を解決するためになされたものである。すなわち、本発明は、ファイルシステムの任意のディレクトリについて任意の時点以降のディレクトリ情報の差分を、より効率よく取得する技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明のディレクトリ情報管理装置は、管理対象のファイルシステムにおけるディレクトリ毎に、ディレクトリ情報の更新履歴（ディレクトリ更新履歴）を記憶するディレクトリ更新履歴記憶部と、前記ファイルシステムにアクセスする各種処理に応じて前記ディレクトリ情報に更新があると、更新のあったディレクトリの前記ディレクトリ更新履歴を更新するディレクトリ更新履歴更新部と、前記ディレクトリ情報の差分の取得要求として指定ディレクトリおよび指定時刻を表す情報を受信すると、前記ディレクトリ更新履歴記憶部において前記指定ディレクトリについて記憶された前記ディレクトリ更新履歴から、前記指定時刻以降の情報を抽出して差分として出力するディレクトリ更新履歴参照部と、を備える。
【００１４】
また、本発明の情報処理システムは、上述のディレクトリ情報管理装置と、前記ファイルシステムと、前記ファイルシステムにアクセスする処理を実行して前記ファイルシステムにおけるディレクトリ情報の更新内容を前記ディレクトリ情報管理装置に通知するファイルアクセス処理装置と、を備える。
【００１５】
また、本発明のディレクトリ情報管理方法は、管理対象のファイルシステムにおけるディレクトリ毎に、ディレクトリ情報の更新履歴（ディレクトリ更新履歴）を記憶するディレクトリ更新履歴記憶部を用いて、前記ファイルシステムにアクセスする各種処理に応じて前記ディレクトリ情報に更新があると、更新のあったディレクトリの前記ディレクトリ更新履歴を更新し、前記ディレクトリ情報の差分の取得要求として指定ディレクトリおよび指定時刻を表す情報を受信すると、前記ディレクトリ更新履歴記憶部において前記指定ディレクトリについて記憶された前記ディレクトリ更新履歴から、前記指定時刻以降の情報を抽出して差分として出力する。
【００１６】
また、本発明のディレクトリ情報管理プログラムは、管理対象のファイルシステムにおけるディレクトリ毎に、ディレクトリ情報の更新履歴（ディレクトリ更新履歴）を記憶するディレクトリ更新履歴記憶部を用いて、前記ファイルシステムにアクセスする各種処理に応じて前記ディレクトリ情報に更新があると、更新のあったディレクトリの前記ディレクトリ更新履歴を更新するディレクトリ更新履歴更新ステップと、前記ディレクトリ情報の差分の取得要求として指定ディレクトリおよび指定時刻を表す情報を受信すると、前記ディレクトリ更新履歴記憶部において前記指定ディレクトリについて記憶された前記ディレクトリ更新履歴から、前記指定時刻以降の情報を抽出して差分として出力するディレクトリ更新履歴参照ステップと、をコンピュータ装置に実行させる。
【発明の効果】
【００１７】
本発明は、ファイルシステムの任意のディレクトリについて任意の時点以降のディレクトリ情報の差分を、より効率よく取得する技術を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施の形態としての情報処理システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態としての情報処理システムのハードウェア構成の一例を示す図である。
【図３】本発明の第１の実施の形態としての情報処理システムのディレクトリ更新履歴の更新動作を説明するフローチャートである。
【図４】本発明の第１の実施の形態としての情報処理システムのディレクトリ情報の差分取得動作を説明するフローチャートである。
【図５】本発明の第２の実施の形態としての情報処理システムの構成を示すブロック図である。
【図６】本発明の第２の実施の形態におけるディレクトリ更新履歴の一例を示す図である。
【図７】本発明の第２の実施の形態としての情報処理システムのディレクトリ更新履歴の更新動作を説明するフローチャートである。
【図８】本発明の第２の実施の形態としての情報処理システムのディレクトリ情報の差分取得動作を説明するフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００２０】
（第１の実施の形態）
本発明の第１の実施の形態としての情報処理システム１の構成を図１に示す。図１において、情報処理システム１は、ディレクトリ情報管理装置１０と、ファイルシステム３０と、ファイルアクセス処理装置４０とを含む。
【００２１】
ディレクトリ情報管理装置１０は、管理対象のファイルシステム３０のディレクトリ情報を管理する装置である。ディレクトリ情報管理装置１０は、クライアント装置９０からの要求に応じて、ファイルシステム３０の指定ディレクトリについて、指定時刻以降のディレクトリ情報の差分を取得し、クライアント装置９０に送信する。また、ディレクトリ情報管理装置１０は、ディレクトリ更新履歴記憶部１１と、ディレクトリ更新履歴更新部１２と、ディレクトリ更新履歴参照部１３とを備える。各機能ブロックの詳細については後述する。
【００２２】
ファイルシステム３０では、ファイルは、ディレクトリに含まれることにより管理される。また、ディレクトリは、階層的に構成される。また、ファイルシステム３０は、ファイルアクセス処理装置４０によりアクセスされる。
【００２３】
ファイルアクセス処理装置４０は、ファイルシステム３０に含まれるファイルまたはディレクトリに対して各種処理を実行する。各種処理としては、ファイルやディレクトリの作成、削除、リネームや、ファイルの読み出し、書き込み等がある。また、ファイルアクセス処理装置４０は、その処理内容に応じて、ファイルシステム３０のディレクトリ情報を更新する。また、ファイルアクセス処理装置４０は、ディレクトリ情報の更新内容を、ディレクトリ情報管理装置１０に通知する。更新内容には、処理対象のファイルまたはディレクトリ、処理内容、および、処理対象についての更新後のディレクトリ情報が含まれる。なお、処理内容が削除やリネーム等の場合、更新内容には、更新後のディレクトリ情報が含まれていなくてもよい。ファイルアクセス処理装置４０は、クライアント装置９０からの要求に応じて、各種処理を実行してもよい。その他、ファイルアクセス処理装置４０は、図示しない他の機能ブロックからの要求に応じて、各種処理を実行してもよい。
【００２４】
なお、情報処理システム１を構成する各装置は、同一のコンピュータ装置上に実現される。また、情報処理システム１およびクライアント装置９０は、ネットワークを介して通信可能に接続される。図１には、１つのクライアント装置９０を示したが、本発明の情報処理システムを利用するクライアント装置の数を限定するものではない。
【００２５】
ここで、情報処理システム１は、図２に示すようなハードウェア要素によって構成可能である。図２において、情報処理システム１は、ＣＰＵ（Central Processing Unit）１００１、メモリ１００２、および、ネットワークインタフェース１００５を含むコンピュータ装置によって構成される。メモリ１００２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、補助記憶装置（ハードディスク等）等によって構成される。ネットワークインタフェース１００５は、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークに接続するインタフェースである。ネットワークインタフェース１００５は、ネットワークを介してクライアント装置９０に接続される。この場合、ディレクトリ情報管理装置１０の各機能ブロックは、メモリ１００２に格納されるコンピュータ・プログラムを読み込んで実行するとともにコンピュータ装置の各部を制御するＣＰＵ１００１によって構成される。なお、情報処理システム１およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００２６】
次に、ディレクトリ情報管理装置１０の各機能ブロックの詳細について説明する。
【００２７】
ディレクトリ更新履歴記憶部１１は、ファイルシステム３０のディレクトリ毎に、ディレクトリ更新履歴を記憶している。ディレクトリ更新履歴とは、各ディレクトリに関するディレクトリ情報の更新履歴を表す。ディレクトリ情報は、そのディレクトリに含まれるファイルや下位のディレクトリに関する情報である。例えば、ディレクトリ情報には、該当するファイルやディレクトリの名称、更新時刻、種類、サイズ、および、その他の詳細情報が含まれる。また、ディレクトリ更新履歴は、ディレクトリ情報に関する更新情報の時系列からなる。更新情報とは、ディレクトリ情報の更新時刻および更新前のディレクトリ情報と更新後のディレクトリ情報との差分を表す情報である。更新情報は、更新前のディレクトリ情報から更新後のディレクトリ情報を導出可能な情報であればよい。例えば、更新情報は、更新時刻および前述の更新内容からなる情報であってもよい。
【００２８】
ディレクトリ更新履歴更新部１２は、ファイルシステム３０においてディレクトリ情報に更新があると、更新のあったディレクトリについてディレクトリ更新履歴記憶部１１に記憶されるディレクトリ更新履歴を更新する。具体的には、ディレクトリ更新履歴更新部１２は、ファイルアクセス処理装置４０から、ファイルシステム３０に対するディレクトリ情報の更新内容を通知される。前述のように、更新内容には、処理対象のファイルまたはディレクトリ、処理内容、および、更新後のディレクトリ情報が含まれる。そして、ディレクトリ更新履歴更新部１２は、通知された更新内容に応じて、処理対象のファイルを含むディレクトリまたは処理対象のディレクトリのディレクトリ更新履歴に、更新情報を追加する。なお、以降、更新内容の示す処理対象のファイルを含むディレクトリまたは処理対象のディレクトリを、「更新ディレクトリ」とも記載する。
【００２９】
ディレクトリ更新履歴参照部１３は、クライアント装置９０から、ディレクトリ情報の差分の取得要求として指定ディレクトリおよび指定時刻を表す情報を受信する。そして、ディレクトリ更新履歴参照部１３は、ディレクトリ更新履歴記憶部１１において、指定ディレクトリについて記憶されたディレクトリ更新履歴から、指定時刻以降の更新情報を抽出する。そして、ディレクトリ更新履歴参照部１３は、抽出した更新情報を差分として、取得要求元のクライアント装置９０に対して送信すればよい。
【００３０】
以上のように構成された情報処理システム１のディレクトリ情報管理動作について、図面を参照して詳細に説明する。
【００３１】
まず、ディレクトリ情報管理装置１０のディレクトリ更新履歴の更新動作を図３に示す。
【００３２】
図３において、まず、ディレクトリ更新履歴更新部１２は、ファイルアクセス処理装置４０から、ファイルシステム３０に対するディレクトリ情報の更新内容を受信する（ステップＡ１）。
【００３３】
次に、ディレクトリ更新履歴更新部１２は、更新内容の示す更新ディレクトリについてディレクトリ更新履歴記憶部１１に記憶されたディレクトリ更新履歴を検索する。そして、ディレクトリ更新履歴更新部１２は、検索したディレクトリ更新履歴に、更新情報（更新時刻および更新内容）を追加する（ステップＡ２）。
【００３４】
以上で、ディレクトリ情報管理装置１０は、ディレクトリ更新履歴の更新動作を終了する。
【００３５】
次に、ディレクトリ情報管理装置１０のディレクトリ情報の差分取得動作を図４に示す。
【００３６】
図４において、まず、ディレクトリ更新履歴参照部１３は、クライアント装置９０から、ディレクトリ情報の差分の取得要求として、指定ディレクトリおよび指定時刻を表す情報を受信する（ステップＢ１）。
【００３７】
次に、ディレクトリ更新履歴参照部１３は、指定ディレクトリについてディレクトリ更新履歴記憶部１１に記憶されたディレクトリ更新履歴を検索する。そして、ディレクトリ更新履歴参照部１３は、検索したディレクトリ更新履歴から、指定時刻以降の更新情報を抽出する（ステップＢ２）。
【００３８】
次に、ディレクトリ更新履歴参照部１３は、ステップＢ２で抽出した更新情報を、差分としてクライアント装置９０に対して送信する（ステップＢ３）。
【００３９】
以上で、ディレクトリ情報管理装置１０は、ディレクトリ情報の差分取得動作を終了する。
【００４０】
次に、本発明の第１の実施の形態の効果について述べる。
【００４１】
本発明の第１の実施の形態としてのディレクトリ情報管理装置は、ファイルシステムの任意のディレクトリについて任意の時点以降のディレクトリ情報の差分を、より効率よく取得することができる。
【００４２】
その理由について説明する。本実施の形態では、ディレクトリ更新履歴記憶部が、ファイルシステムのディレクトリ毎に、ディレクトリ更新履歴を記憶している。そして、ディレクトリ更新履歴更新部が、ファイルシステムにアクセスする各種処理に応じてディレクトリ情報に更新があると、更新のあったディレクトリのディレクトリ更新履歴を更新する。そして、ディレクトリ更新履歴参照部が、クライアント装置から、ディレクトリ情報の差分の取得要求として指定ディレクトリおよび指定時刻を表す情報を受信する。そして、ディレクトリ更新履歴参照部が、ディレクトリ更新履歴記憶部において指定ディレクトリについて記憶されたディレクトリ更新履歴から、指定時刻以降の情報を抽出して差分として出力するからである。
【００４３】
このように、本実施の形態は、指定ディレクトリについて指定時刻以降のディレクトリ情報の差分を取得する際に、ファイルシステム全体のディレクトリ情報を読み込む必要がない。本実施の形態は、指定ディレクトリについての情報を含むディレクトリ更新履歴を読み出せばよい。したがって、本実施の形態は、指定ディレクトリについて指定時刻以降のディレクトリ情報の差分を取得する際の処理の効率を大幅に改善している。
【００４４】
また、本実施の形態は、ディレクトリ情報のディレクトリ更新履歴をディレクトリ毎に記憶する。そのため、本実施の形態は、ファイルシステム全体についてディレクトリ更新履歴を記憶する場合と比べて、全体のディレクトリ更新履歴から指定ディレクトリに関する情報を抽出する処理を必要としない。したがって、本実施の形態は、そのような抽出処理を省略することができ、指定ディレクトリについて指定時刻以降のディレクトリ情報の差分を取得する際の処理の効率を大幅に改善している。
【００４５】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００４６】
まず、本発明の第２の実施の形態としての情報処理システム２の構成を図５に示す。図５において、情報処理システム２は、本発明の第１の実施の形態としての情報処理システム１に対して、ディレクトリ情報管理装置１０に替えてディレクトリ情報管理装置２０を含む点が異なる。ディレクトリ情報管理装置２０は、ディレクトリ更新履歴記憶部２１と、ディレクトリ更新履歴更新部２２と、ディレクトリ更新履歴参照部２３とを備える。なお、情報処理システム２およびその各機能ブロックは、図２を参照して説明した本発明の第１の実施の形態と同一のハードウェア要素を備えるコンピュータ装置によって構成可能である。ただし、情報処理システム２およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００４７】
ディレクトリ更新履歴記憶部２１は、ファイルシステム３０におけるディレクトリのうち記録対象のディレクトリについて、本発明の第１の実施の形態で説明したディレクトリ毎のディレクトリ更新履歴を記憶している。また、ディレクトリ更新履歴記憶部２１は、記録対象のディレクトリについて、ディレクトリ更新履歴と共に、その記録開始時刻を記憶している。
【００４８】
例えば、ディレクトリ更新履歴記憶部２１は、記録対象管理テーブルおよびディレクトリ毎の更新履歴ファイルを用いて、ディレクトリ更新履歴を記憶してもよい。記録対象管理テーブルは、記録対象のディレクトリ、その記録開始時刻、および、その更新履歴ファイルのメモリ１００２上での格納位置の対応関係を保持する。また、更新履歴ファイルは、該当するディレクトリについての更新情報を、更新時刻にしたがった順序で含む。ここで、記録対象管理テーブルおよび更新履歴ファイルの一例を図６に示す。図６において、記録対象管理テーブルは、記録対象のディレクトリとして、“／”、“／ｄａｔａ”、“／ｄａｔａ／ｔｍｐ”の各ディレクトリに関する情報を含んでいる。なお、これらの文字列は、各ディレクトリのファイルシステム３０上でのパスを表している。また、例えば、“／”のディレクトリは、ディレクトリ更新履歴の記録開始時刻が“２０１４／１０／２２  ０９：３０：１１”であり、その更新履歴ファイルのメモリ１００２での格納位置が、格納位置Ａである。また、格納位置Ａの更新履歴ファイルは、“／”のディレクトリのディレクトリ情報について、「２０１４／１０／２２  ０９：４７：２３に、ｆｉｌｅ＿１がｄｅｌｅｔｅ（削除）された」という更新情報を含む。また、格納位置Ａの更新履歴ファイルは、“／”のディレクトリのディレクトリ情報の更新情報として、「２０１４／１０／２２  １０：０５：５７に、ｆｉｌｅ＿２がｃｒｅａｔｅ（作成）された」という更新情報を含む。この更新情報には、ｆｉｌｅ＿２に関する詳細情報がさらに含まれている。
【００４９】
なお、ディレクトリ更新履歴記憶部２１は、記録対象管理テーブルを、記録対象のディレクトリをキーとして効率よく検索可能な形式で記憶することが望ましい。例えば、ディレクトリ更新履歴記憶部２１は、記録対象管理テーブルにおける記録対象のディレクトリの項目に対して、インデックスを生成して保持しておいてもよい。この場合、例えば、Ｂ＋ｔｒｅｅ構造のインデックスが採用されてもよい。
【００５０】
ディレクトリ更新履歴参照部２３は、本発明の第１の実施の形態におけるディレクトリ更新履歴参照部１３と略同様に構成されるが、以下の点が異なる。
【００５１】
ディレクトリ更新履歴参照部２３は、クライアント装置９０からの取得要求の示す指定時刻が、指定ディレクトリの記録開始時刻以降である場合に、指定ディレクトリのディレクトリ更新履歴から指定時刻以降の更新情報を抽出する。そして、ディレクトリ更新履歴参照部２３は、抽出した更新情報を、クライアント装置９０に送信する。
【００５２】
具体的には、ディレクトリ更新履歴参照部２３は、クライアント装置９０からの取得要求の示す指定ディレクトリについて、記録対象管理テーブルからその記録開始時刻を取得し、指定時刻と比較すればよい。時系列に更新情報が並んだ更新履歴ファイルから、指定時刻以降の更新情報を抽出する処理としては、例えば、バイナリーサーチ等の公知の検索技術が採用可能である。あるいは、ディレクトリ更新履歴参照部２３は、ディレクトリ更新履歴における更新時刻に対して作成されたインデックスを用いて、抽出処理を行ってもよい。この場合、更新時刻に対するインデックスは、ディレクトリ更新履歴更新部２２によって作成され更新されてもよい。
【００５３】
また、ディレクトリ更新履歴参照部２３は、指定時刻が指定ディレクトリの記録開始時刻より前である場合には、差分の抽出を行わない。その代わり、ディレクトリ更新履歴参照部２３は、ファイルシステム３０から、指定ディレクトリのディレクトリ情報を取得してもよい。そして、この場合、ディレクトリ更新履歴参照部２３は、取得したディレクトリ情報を、クライアント装置９０に送信してもよい。
【００５４】
なお、指定時刻が指定ディレクトリの記録開始時刻以降であるにも関わらず、そのディレクトリ更新履歴に更新情報が記録されていない場合がある。具体的には、記録対象管理テーブルに指定ディレクトリの情報が含まれているが、その更新履歴ファイルが未作成の場合等である。この場合、指定ディレクトリについて指定時刻以降の更新はなかったことになる。そこで、ディレクトリ更新履歴参照部２３は、指定ディレクトリのディレクトリ情報の差分として、空（から）の情報を抽出すればよい。そして、ディレクトリ更新履歴参照部２３は、差分として空の情報を、クライアント装置９０に送信する。
【００５５】
また、ディレクトリ更新履歴参照部２３は、ディレクトリ更新履歴記憶部２１に、指定ディレクトリについてディレクトリ更新履歴が記憶されていない場合、指定ディレクトリを記録対象に追加する。
【００５６】
具体的には、ディレクトリ更新履歴参照部２３は、ディレクトリ更新履歴記憶部２１の記録対象管理テーブルに、指定ディレクトリに関する情報が含まれていない場合、指定ディレクトリを表す情報と、記録開始時刻として処理時点の現在時刻とを追加する。このとき、ディレクトリ更新履歴参照部２３は、指定ディレクトリの更新履歴ファイルが未だ作成されていないので、記録対象管理テーブルに対して、更新履歴ファイルの格納位置を追加しなくてよい。これにより、指定ディレクトリが記録対象に追加される。
【００５７】
また、ディレクトリ更新履歴参照部２３は、上述のように指定ディレクトリを記録対象に追加した際に、指定ディレクトリのディレクトリ情報を、ファイルシステム３０から読み込んで、クライアント装置９０に送信してもよい。
【００５８】
また、ディレクトリ更新履歴参照部２３は、指定ディレクトリのディレクトリ情報またはその差分をクライアント装置９０に送信する際に、併せて取得時刻を送信してもよい。この取得時刻は、クライアント装置９０において、次回にディレクトリ情報の差分の取得要求を行うときに、指定時刻として採用される可能性がある。
【００５９】
ディレクトリ更新履歴更新部２２は、本発明の第１の実施の形態におけるディレクトリ更新履歴更新部１２と略同様に構成されるが、以下の点が異なる。
【００６０】
具体的には、ディレクトリ更新履歴更新部２２は、ファイルアクセス処理装置４０から、ファイルシステム３０に対するディレクトリ情報の更新内容を通知される。前述のように、更新内容には、処理対象のファイルまたはディレクトリ、処理内容、および、更新後のディレクトリ情報が含まれる。そして、ディレクトリ更新履歴更新部２２は、ディレクトリ更新履歴記憶部２１の記録対象管理テーブルに、更新ディレクトリに関する情報が含まれている場合に、そのディレクトリ更新履歴を更新すればよい。なお、更新ディレクトリに関する情報が記録対象管理テーブルに含まれていても、その更新履歴ファイルが未だ作成されていない場合がある。この場合、ディレクトリ更新履歴更新部２２は、今回の更新情報を含む更新履歴ファイルを新規に作成して保持すればよい。また、この場合、ディレクトリ更新履歴更新部２２は、新規に作成した更新履歴ファイルの格納位置を、記録対象管理テーブルにおける該当するディレクトリに関する情報に追加すればよい。
【００６１】
また、ディレクトリ更新履歴更新部２２は、各ディレクトリについてのディレクトリ更新履歴のうち、最も古い情報から順に所定範囲までを削除する。また、ディレクトリ更新履歴更新部２２は、削除に応じて、記録対象管理テーブルの記録開始時刻を更新する。
【００６２】
例えば、ディレクトリ更新履歴更新部２２は、１つのディレクトリに関する更新履歴ファイルを、時系列にしたがい複数の更新履歴ファイルに分けて保存しておいてもよい。この場合、ディレクトリ更新履歴更新部２２は、１つの更新履歴ファイルに含める更新情報のサイズまたは期間等の閾値と、更新履歴ファイルの保存数とを定めておいてもよい。そして、ディレクトリ更新履歴更新部２２は、現在更新中の更新履歴ファイルに含まれる更新情報のサイズまたは期間が閾値を超えると、新しい更新履歴ファイルを作成してもよい。そして、ディレクトリ更新履歴更新部２２は、該当するディレクトリに関する更新履歴ファイルのうち、最も古い更新履歴ファイルから保存数を超えた分までを削除するようにしてもよい。また、この場合、ディレクトリ更新履歴更新部２２は、削除した更新履歴ファイルに記録されていた更新情報のうち最も新しい更新時刻を、新たな記録開始時刻として採用してもよい。
【００６３】
以上のように構成された情報処理システム２のディレクトリ情報管理動作について、図面を参照して詳細に説明する。
【００６４】
まず、ディレクトリ情報管理装置２０のディレクトリ更新履歴の更新動作を図７に示す。
【００６５】
図７において、まず、ディレクトリ更新履歴更新部２２は、ファイルアクセス処理装置４０から、ファイルシステム３０に対するディレクトリ情報の更新内容を受信する（ステップＡ１）。
【００６６】
次に、ディレクトリ更新履歴更新部２２は、ディレクトリ更新履歴記憶部２１の記録対象管理テーブルに、更新内容の示す更新ディレクトリに関する情報が含まれるか否かを判断する（ステップＡ１２）。
【００６７】
ここで、この更新ディレクトリに関する情報が記録対象管理テーブルに含まれていない場合（ステップＡ１２でＮｏ）について説明する。この場合、この更新ディレクトリは記録対象ではない。したがって、ディレクトリ更新履歴更新部２２は、この更新ディレクトリについて特に処理を行わずに、動作を終了する。
【００６８】
一方、この更新ディレクトリに関する情報が記録対象管理テーブルに含まれている場合（ステップＡ１２でＹｅｓ）について説明する。この場合、この更新ディレクトリは記録対象である。
【００６９】
そこで、ディレクトリ更新履歴更新部２２は、この更新ディレクトリの更新履歴ファイルが、作成されているか否かを判断する（ステップＡ１３）。この判断処理は、記録対象管理テーブルにおけるこの更新ディレクトリに関する情報に、その更新履歴ファイルの格納位置が含まれるか否かにより判断可能である。
【００７０】
ここで、この更新ディレクトリの更新履歴ファイルが、既に作成されている場合（ステップＡ１３でＹｅｓ）について説明する。この場合、ディレクトリ更新履歴更新部２２は、該当する更新履歴ファイルに、更新情報（更新時刻および更新内容）を追加する（ステップＡ１４）。
【００７１】
一方、この更新ディレクトリの更新履歴ファイルが、未だ作成されていない場合（ステップＡ１３でＮｏ）について説明する。この場合、ディレクトリ更新履歴更新部２２は、更新履歴ファイルを新規作成し、その格納位置を、記録対象管理テーブルにおけるこの更新ディレクトリの情報に記録する（ステップＡ１５）。
【００７２】
そして、ディレクトリ更新履歴更新部２２は、ステップＡ１４を実行し、作成した更新履歴ファイルに、更新情報を追加する。
【００７３】
以上で、ディレクトリ情報管理装置２０は、ディレクトリ更新履歴の更新動作を終了する。
【００７４】
次に、ディレクトリ情報管理装置２０のディレクトリ情報の差分取得動作を図８に示す。
【００７５】
図８において、まず、ディレクトリ更新履歴参照部２３は、クライアント装置９０から、ディレクトリ情報の差分の取得要求として、指定ディレクトリおよび指定時刻を表す情報を受信する（ステップＢ１）。なお、指定時刻としては、このクライアント装置９０に対して前回の差分取得動作でディレクトリ情報管理装置２０から送信された取得時刻が採用されていてもよい。
【００７６】
次に、ディレクトリ更新履歴参照部２３は、ディレクトリ更新履歴記憶部２１の記録対象管理テーブルに、指定ディレクトリに関する情報が含まれるか否かを判断する（ステップＢ１２）。
【００７７】
ここで、記録対象管理テーブルに、指定ディレクトリに関する情報が含まれていない場合（ステップＢ１２でＮｏ）について説明する。この場合、ディレクトリ更新履歴参照部２３は、記録対象管理テーブルに、指定ディレクトリを表す情報と、記録開始時刻として処理時点の現在時刻とを追加する（ステップＢ１３）。これにより、この指定ディレクトリが、記録対象に追加される。
【００７８】
そして、ディレクトリ更新履歴参照部２３は、指定ディレクトリのディレクトリ情報を、ファイルシステム３０から読み込んで、取得時刻と共にクライアント装置９０に送信する（ステップＢ１４）。ここでは、取得時刻としては、記録対象管理テーブルに新たに追加された記録開始時刻が適用されてもよい。
【００７９】
一方、記録対象管理テーブルに、指定ディレクトリに関する情報が含まれている場合（ステップＢ１２でＹｅｓ）について説明する。この場合、ディレクトリ更新履歴参照部２３は、記録対象管理テーブルから、指定ディレクトリの記録開始時刻を取得する。そして、ディレクトリ更新履歴参照部２３は、取得要求の示す指定時刻が、指定ディレクトリの記録開始時刻以降であるか否かを判断する（ステップＢ１５）。
【００８０】
ここで、指定時刻が記録開始時刻以降ではない（記録開始時刻より前である）場合（ステップＢ１５でＮｏ）について説明する。この場合、ディレクトリ更新履歴参照部２３は、指定ディレクトリのディレクトリ情報を、ファイルシステム３０から読み込んで、取得時刻と共にクライアント装置９０に送信する（ステップＢ１４）。ここでは、取得時刻としては、この処理時点の現在時刻が適用されてもよい。または、取得時刻としては、指定ディレクトリに関して読み込んだディレクトリ情報に含まれる最も新しい情報の時刻が適用されてもよい。
【００８１】
一方、指定時刻が記録開始時刻以降である場合（ステップＢ１５でＹｅｓ）について説明する。この場合、ディレクトリ更新履歴参照部２３は、記録対象管理テーブルを参照し、指定ディレクトリについて更新履歴ファイルが既に作成されているか否かを判断する（ステップＢ１６）。
【００８２】
ここで、指定ディレクトリについて更新履歴ファイルが未だ作成されていない場合（ステップＢ１６でＮｏ）について説明する。この場合、ディレクトリ更新履歴参照部２３は、空の情報を差分とする（ステップＢ１７）。
【００８３】
一方、指定ディレクトリについて更新履歴ファイルが既に作成されている場合（ステップＢ１６でＹｅｓ）について説明する。この場合、ディレクトリ更新履歴参照部２３は、該当する更新履歴ファイルから、指定時刻以降の更新情報を抽出して差分とする（ステップＢ１８）。
【００８４】
次に、ディレクトリ更新履歴参照部２３は、ステップＢ１７またはＢ１８で抽出した差分を、取得時刻と共にクライアント装置９０に送信する（ステップＢ１９）。ここでは、取得時刻としては、この処理時点の現在時刻が適用されてもよい。または、差分が空でない場合、取得時刻としては、抽出した差分に含まれる最も新しい更新時刻が適用されてもよい。
【００８５】
以上で、ディレクトリ情報管理装置２０は、ディレクトリ情報の差分取得動作を終了する。
【００８６】
次に、本発明の第２の実施の形態の効果について述べる。
【００８７】
本発明の第２の実施の形態としてのディレクトリ情報管理装置は、ファイルシステムの任意のディレクトリについて任意の時点以降のディレクトリ情報の差分を、さらに効率よく取得することができる。
【００８８】
その理由について説明する。本実施の形態では、ディレクトリ更新履歴記憶部が、ファイルシステムのディレクトリのうち記録対象のディレクトリ毎に、ディレクトリ更新履歴を記憶している。そして、ディレクトリ更新履歴更新部が、ファイルシステムにアクセスする各種処理に応じてディレクトリ情報に更新があると、更新のあったディレクトリが記録対象である場合に、そのディレクトリ更新履歴を更新する。そして、ディレクトリ更新履歴参照部が、クライアント装置から、ディレクトリ情報の差分の取得要求として指定ディレクトリおよび指定時刻を表す情報を受信する。そして、ディレクトリ更新履歴参照部が、ディレクトリ更新履歴記憶部において指定ディレクトリについて記憶されたディレクトリ更新履歴から、指定時刻以降の情報を抽出して差分として出力するからである。また、ディレクトリ更新履歴参照部が、ディレクトリ更新履歴記憶部において指定ディレクトリについて記憶されたディレクトリ更新履歴がない場合、指定ディレクトリを記録対象として追加するからである。
【００８９】
このように、本実施の形態は、クライアント装置からディレクトリ情報の差分の取得要求のあったディレクトリを記録対象として、そのディレクトリ情報の更新履歴を記録する。このため、本実施の形態は、クライアント装置からのディレクトリ情報の差分の取得要求が過去に一度もないディレクトリについては、更新履歴を記録する処理を行わない。その結果、本実施の形態は、ディレクトリ情報の更新差分を効率的に取得するためのディレクトリ毎のディレクトリ更新履歴について、その記録処理および記録容量の増加を抑制できる。したがって、本実施の形態は、ディレクトリ情報の差分取得に関連する処理の効率をさらに改善する。
【００９０】
また、本実施の形態では、ディレクトリ更新履歴更新部が、ディレクトリ毎のディレクトリ更新履歴のうち、最も古い情報から順に所定範囲までを削除する。これにより、本実施の形態は、ディレクトリ情報の更新差分を効率的に取得するためのディレクトリ毎のディレクトリ更新履歴について、その記録容量の増加を抑制できる。
【００９１】
なお、本発明の実施の形態において、ディレクトリ更新履歴更新部およびディレクトリ更新履歴参照部は、記録対象管理テーブルのキャッシュを、記録対象管理テーブルが保持されているメモリより高速なメモリ上に保持してもよい。これにより、本実施の形態は、ディレクトリ更新履歴の更新動作および参照動作をより高速に実現できる。
【００９２】
また、本発明の実施の形態において、ディレクトリ更新履歴記憶部に記憶される情報の構成例を図６に示した。ただし、ディレクトリ更新履歴記憶部に記憶される情報の形式を限定するものではない。ディレクトリ更新履歴記憶部は、記録対象のディレクトリと、記録開始時刻と、そのディレクトリ更新履歴とを対応付けた情報であれば、他の形式で情報を記憶してもよい。
【００９３】
また、本発明の実施の形態において、ディレクトリ情報管理装置は、ディレクトリ情報の差分取得要求を、クライアント装置から受信する例を中心に説明した。これに限らず、ディレクトリ情報管理装置は、情報処理システムで動作する他のアプリケーションから、ディレクトリ情報の差分取得要求を受信してもよい。
【００９４】
また、本発明の実施の形態において、ディレクトリ情報管理装置、ファイルシステム、および、ファイルアクセス処理装置が、同一のコンピュータ装置上に実現されるとして説明した。これに限らず、これらの各装置および各機能ブロックは、複数の装置に分散されて実現されていてもよい。
【００９５】
また、上述した本発明の各実施の形態において、ディレクトリ情報管理装置の各機能ブロックが、記憶装置またはＲＯＭに記憶されたコンピュータ・プログラムを実行するＣＰＵによって実現される例を中心に説明した。これに限らず、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
【００９６】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明したディレクトリ情報管理装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置（記憶媒体）に格納しておく。そして、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【００９７】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【００９８】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【符号の説明】
【００９９】
１、２    情報処理システム
１０、２０    ディレクトリ情報管理装置
１１、２１    ディレクトリ更新履歴記憶部
１２、２２    ディレクトリ更新履歴更新部
１３、２３    ディレクトリ更新履歴参照部
３０  ファイルシステム
４０  ファイルアクセス処理装置
９０  クライアント装置
１００１  ＣＰＵ
１００２  メモリ
１００５  ネットワークインタフェース
【図１】
0006459707.tif 000002
【図２】
0006459707.tif 000003
【図３】
0006459707.tif 000004
【図４】
0006459707.tif 000005
【図５】
0006459707.tif 000006
【図６】
0006459707.tif 000007
【図７】
0006459707.tif 000008
【図８】
0006459707.tif 000009