(57)【特許請求の範囲】
【請求項１】
グループ情報テーブルと差分検出情報テーブルとが格納される記憶装置と、
入力された差分管理対象ファイルの元のファイルである前回差分検出ファイルを検索し、両者の差分を検出する差分情報検出モジュールと、
前記差分を検出するために用いる差分検出情報を前記差分検出情報テーブルに記録する差分情報管理モジュールと、
を具備し、
前記差分情報検出モジュールは、前記差分管理対象ファイルが所属するグループを、グループ情報テーブルに登録されたグループ所属条件に応じて選定し、
前記グループと同一グループに対応付けられた第１差分検出情報を前記差分検出情報テーブルから抽出し、
前記第１差分検出情報と、前記差分管理対象ファイルのファイル情報との比較結果に基づいて、前記第１差分検出情報の検出に利用された前回差分検出ファイルと、前記差分管理対象ファイルとの差分を検出し、
前記差分情報管理モジュールは、前記差分が検出された場合、前記ファイル情報と前記グループとを対応付けて新たな第２差分検出情報として差分検出情報テーブルに記録する
ファイル差分管理装置。
【請求項２】
請求項１に記載のファイル差分管理装置において、
世代管理タイプ、データベースタイプ（ＤＢタイプ）、又は再帰タイプのいずれかのタイプのグループを、前記グループ情報テーブルに登録する差分管理対象登録モジュールを更に具備し、
前記差分情報検出モジュールは、前記差分管理対象ファイルが所属するグループのタイプに対応する差分検出処理を行う
ファイル差分管理装置。
【請求項３】
請求項２に記載のファイル差分管理装置において、
前記差分管理対象ファイルが所属するグループが前記世代管理タイプに対応する場合、
前記差分情報検出モジュールは、前記ファイル情報に含まれる第１ファイルサイズと、前記グループと同一グループの前記第１差分検出情報に含まれる第２ファイルサイズとを比較し、
前記第１ファイルサイズが前記第２ファイルサイズより大きい場合、前記第１ファイルサイズと前記第２ファイルサイズとの差を差分データとして判定し、前記第１ファイルサイズが前記第２ファイルサイズ以下である場合、前記差分データはないと判定する
ファイル差分管理装置。
【請求項４】
請求項３に記載のファイル差分管理装置において、
前記差分管理対象モジュールは、前記ファイル情報に含まれる作成日時と一致する作成日時を含む差分検出情報の有無を調査し、前記作成日時が一致する差分検出情報を、ファイルサイズを比較する前記第１差分検出情報として選択する
ファイル差分管理装置。
【請求項５】
請求項４に記載のファイル差分管理装置において、
前記差分管理対象モジュールは、前記ファイル情報に含まれるオブジェクト識別子と一致するオブジェクト識別子を含む差分検出情報の有無を調査するステップと、
前記オブジェクト識別子が一致する差分検出情報の作成日時が、前記ファイル情報に含まれる作成日時と一致するかを調査する
ファイル差分管理装置。
【請求項６】
請求項４に記載のファイル差分管理装置において、
前記ファイル情報がオブジェクト識別子を含まない場合、
前記差分情報検出モジュールは、前記ファイル情報に含まれるファイルパスが前記グループに設定されたファイル名の固定フィールドの判定条件に適合しているかを判定し、前記ファイルパスが前記判定条件に適合する場合、前記ファイル情報に含まれる作成日時と一致する作成日時を含む差分検出情報の有無を調査する差分管理装置。
【請求項７】
請求項２に記載のファイル差分管理装置において、
前記差分管理対象ファイルが所属するグループが前記ＤＢタイプ又は前記再帰タイプに対応する場合、
前記差分情報検出モジュールステップは、
前記差分管理対象ファイル内のタイムスタンプを参照して、前記差分検出対象ファイル内で最も古いデータを探索し、前記タイムスタンプを参照して、最も古いデータの位置から差分データの開始位置を探索し、前記差分データの開始位置から前記差分検出対象ファイル内で最も新しいデータの位置までを前記差分データとして判定する
ファイル差分管理装置。
【請求項８】
請求項１から７いずれか１項に記載のファイル差分管理装置において、
前記差分情報検出モジュールは、前記差分管理対象ファイルが所属するグループに対応する差分検出情報がない場合、差分なしと判定し、前記差分管理対象ファイルの全てを差分データとして判定する
ファイル差分管理装置。
【請求項９】
請求項１から８いずれか１項に記載のファイル差分管理装置において、
前記差分情報管理モジュールは、前記差分管理対象ファイルにおける前記差分の位置を示す情報を差分情報とし、前記第２差分検出情報に対応付けて前記差分検出情報テーブルに記録する
ファイル差分管理装置。
【請求項１０】
請求項９に記載のファイル差分管理装置において、
前記差分情報を参照して、前記差分管理対象ファイルから差分データを読み出す差分情報出力モジュールを更に具備するファイル差分管理装置。
【請求項１１】
コンピュータによって実現されるファイル差分管理方法において、
（Ａ）入力された差分管理対象ファイルが所属するグループを、グループ情報テーブルに登録されたグループ所属条件に応じて選定するステップと、
（Ｂ）前記グループと同一グループの差分検出情報と、前記差分管理対象ファイルのファイル情報との比較結果に基づいて、前記差分検出情報の検出に利用された前回差分検出ファイルと、前記差分管理対象ファイルとの差分を検出するステップと、
（Ｃ）前記差分が検出された場合、前記ファイル情報と前記グループとを対応付けて新たな差分検出情報として差分検出情報テーブルに記録するステップと
を具備するファイル差分管理方法。
【請求項１２】
請求項１１に記載のファイル差分管理方法において、
前記（Ａ）ステップは、世代管理タイプ、データベースタイプ（ＤＢタイプ）、又は再帰タイプのいずれかのタイプのグループを、前記グループ情報テーブルに登録するステップを備え、
前記（Ｂ）ステップは、（ｂ１）前記差分管理対象ファイルが所属するグループのタイプに対応する差分検出処理を行うステップを備える
ファイル差分管理方法。
【請求項１３】
請求項１２に記載のファイル差分管理方法において、
前記差分管理対象ファイルが所属するグループが前記世代管理タイプに対応する場合、
前記（ｂ１）ステップは、前記ファイル情報に含まれる第１ファイルサイズと、前記グループと同一グループの差分検出情報に含まれる第２ファイルサイズとを比較するステップと、
前記第１ファイルサイズが前記第２ファイルサイズより大きい場合、前記第１ファイルサイズと前記第２ファイルサイズとの差を差分データとして判定するステップと、
前記第１ファイルサイズが前記第２ファイルサイズ以下である場合、前記差分データはないと判定するステップと、
を備える
ファイル差分管理方法。
【請求項１４】
請求項１３に記載のファイル差分管理方法において、
前記（ｂ１）ステップは、前記ファイル情報に含まれる作成日時と一致する作成日時を含む差分検出情報の有無を調査するステップと、
前記作成日時が一致する差分検出情報を、ファイルサイズを比較する前記差分検出情報として選択するステップと、
を更に備えるファイル差分管理方法。
【請求項１５】
請求項１４に記載のファイル差分管理方法において、
前記（ｂ１）ステップは、前記ファイル情報に含まれるオブジェクト識別子と一致するオブジェクト識別子を含む差分検出情報の有無を調査するステップと、
前記オブジェクト識別子が一致する差分検出情報の作成日時が、前記ファイル情報に含まれる作成日時と一致するかを調査するステップと、
を更に備えるファイル差分管理方法。
【請求項１６】
請求項１４に記載のファイル差分管理方法において、
前記ファイル情報がオブジェクト識別子を含まない場合、
前記（ｂ１）ステップは、前記ファイル情報に含まれるファイルパスが前記グループに設定されたファイル名の固定フィールドの判定条件に適合しているかを判定するステップを更に備え、
前記ファイルパスが前記判定条件に適合する場合、前記ファイル情報に含まれる作成日時と一致する作成日時を含む差分検出情報の有無を調査する
差分管理方法。
【請求項１７】
請求項１２に記載のファイル差分管理方法において、
前記差分管理対象ファイルが所属するグループが前記ＤＢタイプ又は前記再帰タイプに対応する場合、
前記（ｂ１）ステップは、
タイムスタンプを参照して、前記差分検出対象ファイル内で最も古いデータを探索するステップと、
タイムスタンプを参照して、最も古いデータの位置から差分データの開始位置を探索するステップと、
前記差分データの開始位置から前記差分検出対象ファイル内で最も新しいデータの位置までを前記差分データとして判定するステップと、
を備えるファイル差分管理方法。
【請求項１８】
請求項１１から１７いずれか１項に記載のファイル差分管理方法において、
（Ｄ）前記差分管理対象ファイルが所属するグループに対応する差分検出情報がない場合、差分なしと判定するステップと、
（Ｅ）差分なしと判定された場合、前記差分管理対象ファイルの全てを差分データとして判定するステップと、
を更に具備するファイル差分管理方法。
【請求項１９】
請求項１から８いずれか１項に記載のファイル差分管理方法において、
（Ｆ）前記差分管理対象ファイルにおける前記差分の位置を示す情報を差分情報として前記差分検出情報に対応付けて前記差分検出情報テーブルに記録するステップを更に具備するファイル差分管理方法。
【請求項２０】
請求項１９に記載のファイル差分管理方法において、
（Ｇ）前記差分情報を参照して、前記差分管理対象ファイルから差分データを読み出すステップを更に具備するファイル差分管理方法。
【請求項２１】
請求項１１から２０いずれか１項に記載のファイル差分管理方法をコンピュータによて実現させるためのファイル差分管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの更新前後における差分情報によって、ファイルの更新状況を管理するファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムに関する。
【背景技術】
【０００２】
コンピュータ装置では、ファイルをバックアップすることで、人為的な操作ミスや物理的な破壊、あるいはコンピュータウイルスの感染等によって失われたファイルを復旧することができる。ファイルのバックアップは、定期的、あるいは不定期的に行われる。又、直前のデータだけでなく、さらにその前のデータなども保存しておく世代管理を行うバックアップシステムもある。
【０００３】
ファイルの世代管理では、数世代前までのファイルの全てが保存されるため、世代管理数が増大するとバックアップ用の記憶容量が増大してしまう。このため、前回バックアップされたファイルデータと、今回バックアップされるファイルデータの差分を検出し、その差分を前回のファイルデータとして記録することで、バックアップ用の記憶容量を少なくする差分管理方法が普及している。
【０００４】
このような差分管理を行うデータバックアップ装置が特開２００６−１７８６４５号公報に記載されている（特許文献１）。特許文献１に記載のデータバックアップ装置は、同じファイル名を持つ前回のバックアップデータのファイルと、今回のバックアップデータのファイルとを比較し、その相違点を差分圧縮し、差分圧縮したデータを旧世代バックアップデータとして格納する。又、今回バックアップするファイルは、最新世代バックアップデータとして格納される。これにより、バックアップする世代数が増大しても、バックアップに要する記憶容量の増大を抑制することができる。
【０００５】
しかし、特許文献１に記載の技術では、ファイルの差分管理の範囲が同一ファイル名となっており、ファイル名が異なれば別のファイルとして扱われる。このため、Ｌｉｎｕｘのシステムログなどのように、イベントをトリガーとしてファイル名が変更されるファイルの場合、純粋に追加されたデータだけを差分として取り出すことができない。
【０００６】
又、特許文献１に記載の技術では、ファイル名が同一の場合でもファイルの中身を比較することによってしか差分を取り出すことができない。このため、ファイルの内容を比較する場合には、前回の差分検出時（バックアップ時）のファイルデータをすべて保持している必要がある。
【０００７】
更に、格納しているデータが一定サイズを超えないように古いデータから順に削除するファイル管理方式の場合（例えば、データベースからタイムスタンプを持ったデータをタイムスタンプを利用してソートして取り出すようなファイル管理方式の場合）、ファイル上における同一データの位置が変わるため、単純に内容を比較すると既に取り出したデータも新たに追加されたデータとして検出してしまう問題がある。
【特許文献１】特開２００６−１７８６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、ファイル名の変更に関係なくファイルの差分管理を行うファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムを提供することにある。
【０００９】
本発明の他の目的は、ファイルの内容を比較することなく差分を検出するファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムを提供することにある。
【００１０】
本発明の更に他の目的は、各データがタイムスタンプを持ち古いデータから順次削除されるようなファイルに対して差分検出を行うファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を括弧付きで用いて、［課題を解決するための手段］を説明する。この番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１２】
本発明によるファイル管理装置（１０）は、グループ情報テーブル（２１）と差分検出情報テーブル（２２）とが格納される記憶装置（１３）と、入力された差分管理対象ファイルの元のファイルである前回差分検出ファイルを検索し、両者の差分を検出する差分情報検出モジュール（１０３）と、差分を検出するために用いる差分検出情報（２２０）を差分検出情報テーブル（２２）に記録する差分情報管理モジュール（１０２）とを具備する。差分情報検出モジュール（１０３）は、差分管理対象ファイルが所属するグループを、グループ情報テーブル（２１）に登録されたグループ所属条件に応じて選定する。又、差分情報検出モジュール（１０３）は、グループと同一グループに対応付けられた第１差分検出情報（２２０）を差分検出情報テーブル（２２）から抽出し、第１差分検出情報（２２０）と、差分管理対象ファイルのファイル情報（２０１）との比較結果に基づいて、第１差分検出情報（２２０）の検出に利用された前回差分検出ファイルと、差分管理対象ファイルとの差分を検出する。差分情報管理モジュール（１０２）は、差分が検出された場合、ファイル情報（２０１）とグループとを対応付けて新たな第２差分検出情報（２２０）として差分検出情報テーブル（２２）に記録する。
【００１３】
このように、本発明によるファイル管理装置（１０）は、グループに対応付けられた前回差分検出ファイルから差分管理対象ファイルと同一のファイルを検索することができる。このため、ファイル名が変更された場合でも、差分管理対象ファイルに対応する前回差分検出ファイルを検索することができる。
【００１４】
又、ファイル管理装置（１０）は、世代管理タイプ、データベースタイプ（ＤＢタイプ）、又は再帰タイプのいずれかのタイプのグループを、グループ情報テーブル（２２）に登録する差分管理対象登録モジュールを更に具備することが好ましい。この場合、差分情報検出モジュール（１０３）は、差分管理対象ファイルが所属するグループのタイプに対応する差分検出処理を行う。これにより、世代管理タイプ、ＤＢタイプ、又は再帰タイプに応じた差分検出を行うことができる。
【００１５】
更に、本発明によるファイル管理装置（１０）は、前記差分管理対象ファイルが所属するグループが前記世代管理タイプに対応する場合、ファイル名の固定フィールド、ファイルのオブジェクト識別子、作成日時、チェックサムのいずれかを利用して差分管理対象ファイルの元ファイルである前回差分検出ファイルを検索し、差分を検出することが好ましい。この場合、ファイルの内容を比較することなく差分管理対象ファイルの元ファイルである前回差分検出ファイルを検索することができる。このため、ファイルデータの全てを記録することなく差分データを出力することができる。
【００１６】
又、差分情報検出モジュールステップ（１０３）は、差分管理対象ファイルが所属するグループがＤＢタイプ又は再帰タイプに対応する場合、差分管理対象ファイル内のタイムスタンプを参照して、差分検出対象ファイル内で最も古いデータを探索し、最も古いデータの位置から差分データの開始位置を探索する。そして、差分データの開始位置から前記差分検出対象ファイル内で最も新しいデータの位置までを前記差分データとして判定する。これにより、ＤＢタイプや再帰タイプのファイルの差分データを位置を把握することができるため、ファイルデータの全てを記録することなく差分データを出力することができる。
【発明の効果】
【００１７】
本発明によるファイル差分管理装置、ファイル差分管理方法、及びファイル差分管理プログラムによれば、ファイル名の変更に関係なくファイルの差分管理を行うことができる。
【００１８】
又、ファイルの内容を比較することなく差分を検出できる。
【００１９】
更に、各データがタイムスタンプを持ち古いデータから順次削除されるようなファイルに対しても差分検出できる。
【発明を実施するための最良の形態】
【００２０】
以下、添付図面を参照して、本発明によるファイル差分管理装置１０の実施例を説明する。本実施例において、ファイル差分管理装置１０は、世代管理タイプ、データベースタイプ（ＤＢタイプ）、再帰タイプの３つのタイプのファイルを差分管理対象ファイルとして管理する。
【００２１】
世代管理タイプ用のファイルとは、ＵＮＩＸ（登録商標）のシステムログのような管理をされるファイルを示し、あるイベント（例えばサーバの再起動、ファイルサイズ、時間）が発生した時に、書き込み中のファイルの世代が切り替わり、それまで書き込んでいたファイルは１世代前のファイルとして管理される。ファイルの世代が切り替わるときに現在まで書き込んでいたファイルのファイル名の変更がされる場合もある（例えばＦｒｅｅＢＳＤ（Ｆｒｅｅ  Ｂｅｒｋｅｌｅｙ  Ｓｏｆｔｗａｒｅ  Ｄｉｓｔｒｉｂｕｔｉｏｎ）のシステムログ）。又、管理する世代数が決まっている場合、世代数が上限を超えないように古い世代に関する情報が削除される場合もある。更に、管理する世代数は無限の場合や期間で規定される場合もある。
【００２２】
例えば、管理対象となる「世代管理タイプ」のファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」とファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」が、ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」が現在書き込み中のファイルであるとする。サーバの再起動やサーバの切り換え等のイベントの発生に伴いファイルの変更が行われ、ファイル名が「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」から「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」に変更される。ここで、世代数が「１」に設定されている場合、ファイルの変更に応じて元のファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」は削除される。
【００２３】
ＤＢタイプ用のファイルとは、Ｗｉｎｄｏｗｓ（登録商標）のイベントログをＣＳＶ形式で保存するときに出力されるようなファイルを示し、ファイルとして図示しないデータベースに格納されているデータがタイムスタンプ順にソートされて出力される。すなわち、ＤＢタイプ用のファイル内のデータはタイムスタンプを持つ。例えば、データベースに格納されているデータが昇順にソートされて出力される場合、ファイルの始点が最も古いデータになり、ファイルの終端が最も新しいデータになる。又、データベースに格納されるデータは、ある条件（例えばデータベースに格納しているデータ数、データベースに格納しているデータサイズ、各データのタイムスタンプ）をもとに削除される場合もある。
【００２４】
再帰タイプ用のファイルとは、１つのファイルに対して再帰的にデータを出力するファイルを示す。ここで再帰的にデータを出力するとは、ファイルに対して順次データを出力し、ある条件（データ数、ファイルサイズ等）を満たしたときに、データの出力位置をファイルの始点に戻し、そこからまた順次データを出力する。尚、再帰タイプ用のファイル内のデータはタイムスタンプを持つことを条件とするが、データが時系列にソートされていない場合も対象とする。
【００２５】
１．構成
図１を参照して、本発明によるファイル差分管理装置１０の構成を説明する。図１は、ファイル差分管理装置１０の構成図である。本発明によるファイル差分管理装置１０は、バス１７を介して相互に接続されるＣＰＵ１１と、ＲＡＭ１２と、記憶装置１３と、入力装置１４と、出力装置１５と、Ｉ／Ｏインタフェース１６を具備する。記憶装置１３はハードディスクやメモリ等の記憶装置である。又、入力装置１４は、キーボードやマウス等のユーザによって操作されることで、各種データをＣＰＵ１１や記憶装置１３に出力する。出力装置１５は、モニタやプリンタに例示され、ＣＰＵ１１から出力される回路解析の結果をユーザが視認できる形式で出力する。Ｉ／Ｏインタフェース１６は、図示しない他のコンピュータ装置やデータベースとのデータや信号の送受信を行う。
【００２６】
ＣＰＵ１１は、入力装置１４からの入力に応答して、記憶装置１３内の差分管理プログラム２０を実行し、ファイルの差分管理を行う。この際、記憶装置１３からの各種データやプログラムはＲＡＭ１２に一時格納され、ＣＰＵ１１は、ＲＡＭ１２内のデータを用いて各種処理を実行する。
【００２７】
記憶装置１３は、差分管理プログラム２０、グループ情報テーブル２１、差分検出情報テーブル２２を格納している。又、記憶装置１３は、Ｉ／Ｏインタフェースを介して入力された差分管理対象となるファイル（以下、差分管理対象ファイルと称す）が記録される記憶領域として差分管理対象格納部２３を有している。
【００２８】
図２は、グループ情報テーブル２１の構成の一例を示す図である。グループ情報テーブル２１は、ユーザによって設定されたグループ情報２１０を格納するテーブルである。グループ情報２１０とは、差分管理対象ファイルの所属するグループを規定するための情報であり、グループ名によって識別される。グループ情報テーブル２１には、グループ名毎に、グループ所属条件、ファイル名の固定フィールド、ファイルのタイプが対応付けられてグループ情報２１０として設定される。
【００２９】
グループ所属条件とは、差分管理対象ファイルがグループに所属するための条件である。グループ所属条件は、ファイルのパスを示す正規表現などを用いた条件式であることが好ましい。この場合、ファイルのパスがこの条件式に適合する差分管理対象ファイルが、このグループ所属条件に対応するグループに所属すると判定される。
【００３０】
ファイル名の固定フィールドは、グループに所属するファイルのファイル名の固定フィールドを規定する情報である。例えば、「ｐｒｅｇ＿ｍａｔｃｈ＿ａｌｌ（“／（［Ａ−Ｚａ−ｚ０−９］＋）（￥．ｌｏｇ）（［１−９］）／”，  ＄ｆｉｌｅｎａｍｅ，  ＄ｍａｔｃｈｅｓ）；」の第１及び第２パタンがファイル名の固定フィールドとして設定されている場合、ファイル名の固定フィールドが「＊．ｌｏｇ」（＊．ｌｏｇ）である差分管理対象ファイルが、このファイル名の固定フィールドに対応するグループに所属すると判定される（ただし、＊は任意の英数字の組み合せで表現される）。
【００３１】
又、グループ情報２１０には、タイプとして「世代管理タイプ」、「ＤＢタイプ」、「再帰タイプ」のいずれかが設定される。
【００３２】
図３は、差分検出情報テーブル２２の構成の一例を示す図である。差分検出情報テーブル２２は、差分管理装置１０において既に差分管理されている差分管理対象ファイル（以下、前回差分検出ファイルと称す）に関する情報が差分検出情報２２０として記録される。ここで、前回差分検出ファイルは、差分管理装置に前回入力され、差分検出情報２２０が既に検出、記録された差分管理対象ファイルである。差分検出情報２２０は、前回差分検出ファイルに対応するグループ名、ファイルパス、オブジェクト識別子、作成日時、サイズ、チェックサム、差分情報２３０（差分始点検出用データ）を含む。又、差分検出情報テーブル２２には、差分検出情報２２０を参照可能か否かを決める参照可否フラグが設定される。
【００３３】
グループ名は、グループ情報２１０に含まれるグループ名に対応し、管理されているファイルのグループを特定する情報である。ファイルパスは、前回差分検出ファイルを特定するファイル名である。オブジェクト識別子は、前回差分検出ファイルに設定されたオブジェクト識別子である。作成日時、サイズは、それぞれ前回差分検出ファイルの作成日時及びデータサイズである。チェックサムは、前回差分検出ファイルに設定されたチェックサムである。
【００３４】
差分管理対象格納部２３は、差分管理対象ファイルや、差分管理対象ファイルに関する情報（ファイルパス、オブジェクト識別子、作成日時、サイズ、チェックサム）が記録される記憶領域である。差分管理対象格納部２３には、定期的に、又は不定期的にＩ／Ｏインタフェース１７を介して入力された複数の差分管理対象ファイル（以下、差分管理対象ファイル群２００と称す）が記録される。
【００３５】
ＣＰＵ１１は、差分管理プログラム２０を実行することで、図４に示す差分管理モジュール１００の機能を実現する。差分管理モジュール１００は、差分管理対象モジュール１０１、差分情報管理モジュール１０２、差分情報検出モジュール１０３、差分情報出力モジュール１０４を備える。これらのモジュールはそれぞれ概略つぎのような機能を有する。
【００３６】
差分管理対象登録モジュール１０１は、入力装置１４から入力された情報に基づき差分管理対象ファイル群２００をグループ分けするために必要なグループ情報２１０を作成する機能を有する。ユーザは、入力装置１４を用いてグループ情報２１０に含める情報（グループ所属条件、タイプ、ファイル名の固定フィールドの設定）を差分管理対象登録モジュール１０１に出力する。差分管理対象登録モジュール１０１は、入力された情報からグループ情報２１０を作成し、差分情報管理モジュール１０２に渡す機能を有する。
【００３７】
差分情報管理モジュール１０２は、差分管理対象登録モジュール１０１から渡されるグループ情報２１０を差分検出情報テーブル２１に格納する機能と、差分情報検出モジュール１０３にグループ情報２１０や差分検出情報２２０を渡す機能を有する。又、差分情報管理モジュール１０２は、差分情報検出モジュール１０３で生成された新たな差分検出情報２２０を受け取り、差分検出情報テーブル２２に格納する機能を有する。
【００３８】
差分情報検出モジュール１０３は、差分情報管理モジュール１０２からグループ情報２１０を取得し、差分管理対象ファイル群２００内の差分管理対象ファイルをグループ分けする機能を有する。又、差分情報検出モジュール１０３は、差分情報管理モジュール１０２から差分検出情報２２０を取得し、差分管理対象格納部２３から差分対象ファイル群２００と、差分管理対象ファイル毎のファイル情報２０１を取得する機能を有する。差分情報検出モジュール１０３は、差分検出情報２２０とファイル情報２０１とから次回の差分検出のために必要な新たな差分検出情報２２０を生成する。ファイル情報２０１には、差分管理対象ファイルがもともと置かれていたマシン（ファイルへの書き込みが行われるマシン）上でのファイルパス、作成日時、オブジェクト識別子（Ｗｉｎｄｏｗｓ（登録商標）の場合はＢｉｒｔｈ  Ｏｂｊｅｃｔ  ＩＤ、ＵＮＩＸ（登録商標）やＬｉｎｕｘの場合はｉ−ｎｏｄｅ）、ファイルサイズなどが含まれる。尚、ファイル情報２０１はオブジェクト識別子を含まなくても良い。差分情報検出モジュール１０３は、取得した差分管理対象ファイル群２００と差分検出情報２２０とファイル情報２０１とを用いて、差分データ３００の位置を取得し、差分情報２３０として差分情報出力モジュール１０４に出力する機能を有する。ここで、差分データ３００とは、差分管理対象ファイルの全データのうち、前回差分管理対象ファイルから新たに追加されたデータである。又、差分情報２３０は、差分管理対象ファイルにおける差分データ３００の位置（始点及び終点）を示すデータである。尚、差分管理対象ファイルのデータの終点が分かれば、差分情報２３０は、差分データ３００の終点を示す情報を含まなくても良い。
【００３９】
差分情報出力モジュール１０４は、差分情報検出モジュール１０３から取得した差分情報２３０に基づいて、差分管理対象ファイルから差分データを読み込み出力装置１５に出力する機能を有する。
【００４０】
２．動作
図５から図１０を参照して、本発明によるファイル差分管理装置１０の実施例における動作（ファイル差分管理方法）の詳細を説明する。
【００４１】
（グループ情報設定）
本発明によるファイル差分管理装置１０ではファイル管理を行う前に、ユーザは、予めグループ情報２１０をグループ情報テーブル２１に設定する。図５は、グループ情報２１０の設定動作を示すフロー図である。図２及び図５を参照して、本発明に係るグループ情報２１０の設定動作の詳細を説明する。
【００４２】
差分管理対象登録モジュール１０１は、入力装置１４からの指定情報に応じて、差分管理対象ファイル群２００をグループ分けするためグループ名を作成する（ステップＳ１０１）。ここでは、グループ名として「ｈｏｓｔ０１  ｓｙｓｌｏｇ．ｌｏｇ」、「ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ」、「ｈｏｓｔ０３  ｅｖｅｎｔ．ｃｓｖ」の３つのグループが設定される。以下、グループ名「ｈｏｓｔ０１  ｓｙｓｌｏｇ．ｌｏｇ」で特定されるグループをグループＡ、グループ名「ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ」で特定されるグループをグループＢ、グループ名「ｈｏｓｔ０３  ｅｖｅｎｔ．ｃｓｖ」で特定されるグループをグループＣと称して説明する。
【００４３】
次に、差分管理対象登録モジュール１０１は、入力装置１４からの指定情報に応じて、各グループにグループ所属条件を設定する。ここでは、グループＡに「ｈｏｓｔ０１：￥／ｖａｒ￥／ａｄｍ￥／ｓｙｓｌｏｇ￥／（ＯＬＤ｜）ｓｙｓｌｏｇ￥．ｌｏｇ」という正規表現が設定され、グループＢに「ｈｏｓｔ０２：Ｃ：￥￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥￥Ａｐａｃｈｅ￥￥ｌｏｇｓ￥￥ａｃｃｅｓｓ＿ｌｏｇ（￥．［１−９］｛０，１｝）」という正規表現が設定され、グループＣにｈｏｓｔ０３：Ｃ：￥￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥￥ｕｓｅｒ１￥￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥￥ｅｖｅｎｔ￥．ｃｓｖ」という正規表現が設定される。
【００４４】
この場合、グループＡのグループ所属条件に適合するファイルパスは、「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」と「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」がある。逆に、グループＡに「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」と「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」を所属させたい場合、ユーザは、これらのファイルパスに適合する「ｈｏｓｔ０１：￥／ｖａｒ￥／ａｄｍ￥／ｓｙｓｌｏｇ￥／（ＯＬＤ｜）ｓｙｓｌｏｇ￥．ｌｏｇ」という正規表現をグループ所属条件として設定しても良い。
【００４５】
同様に、グループＢのグループ所属条件として、ｈｏｓｔ０２のＣドライブのＰｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇやＰｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１、Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．２などを所属させるために「ｈｏｓｔ０２：Ｃ：￥￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥￥Ａｐａｃｈｅ￥￥ｌｏｇｓ￥￥ａｃｃｅｓｓ＿ｌｏｇ（￥．［１−９］｛０，１｝）」という正規表現が設定される。
【００４６】
グループＣのグループ所属条件として、ｈｏｓｔ０３のＣドライブのＤｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖを所属させるために「ｈｏｓｔ０３：Ｃ：￥￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥￥ｕｓｅｒ１￥￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥￥ｅｖｅｎｔ￥．ｃｓｖ」という正規表現が設定される。
【００４７】
次に、差分管理対象登録モジュール１０１は、入力装置１４からの指定情報に応じて、グループタイプを各グループに設定する（ステップＳ１０３）。ここでは、グループＡとグループＣが世代管理タイプとして設定され、グループＢがＤＢタイプとして設定される。
【００４８】
次に、差分管理対象登録モジュール１０１は、入力装置１４からの指定情報に応じて、各グループに所属する差分管理対象ファイルのファイル名の固定フィールドを設定する（ステップＳ１０４）。ここでは、グループＡにおけるファイル名の固定フィールドとして、「ｐｒｅｇ＿ｍａｔｃｈ＿ａｌｌ（“／（ＯＬＤ｜）（ｓｙｓｌｏｇ￥．ｌｏｇ）／”，  ＄ｆｉｌｅｎａｍｅ，  ＄ｍａｔｃｈｅｓ）；」「ｐｒｅｇ＿ｍａｔｃｈ＿ａｌｌ（“／（ａｃｃｅｓｓ＿ｌｏｇ）（￥．［１−９］｛０，１｝｜）／”，  ＄ｆｉｌｅｎａｍｅ，  ＄ｍａｔｃｈｅｓ）；」の第２パタンが設定され、グループＢにおけるファイル名の固定フィールドとして、「ｐｒｅｇ＿ｍａｔｃｈ＿ａｌｌ（“／（ａｃｃｅｓｓ＿ｌｏｇ）（￥．［１−９］｛０，１｝｜）／”，  ＄ｆｉｌｅｎａｍｅ，  ＄ｍａｔｃｈｅｓ）；」の第１パタンが設定され、グループＣにおけるファイル名の固定フィールドとして、「ｐｒｅｇ＿ｍａｔｃｈ＿ａｌｌ（“／（ｅｖｅｎｔ￥．ｃｓｖ）／”，  ＄ｆｉｌｅｎａｍｅ，  ＄ｍａｔｃｈｅｓ）；」の第１パタンが設定される。
【００４９】
作成されたグループＡ、Ｂ、Ｃに関するグループ情報２１０は、差分情報管理モジュール１０２によってグループ情報テーブル２１に記録される（ステップＳ１０５）。尚、ステップＳ１０２〜Ｓ１０４の設定順は、上述の順番とは限らない。
【００５０】
以上のように、グループ情報テーブル２１には、図２に示すようなグループ情報２１０が登録される。グループ情報２１０が登録されると差分情報検出モジュール１０３は、差分管理対象格納部２３から差分管理対象ファイル群２００を取得し、差分検出を行うことができる。
【００５１】
（差分検出）
図６は、本発明による差分検出処理の動作を示すフロー図である。図６を参照して、ファイル差分管理装置１０における差分検出処理の概要を説明する。
【００５２】
差分情報検出モジュール１０３は、差分検出を指示されると差分管理対象格納部２３から差分管理対象ファイル群２００を取得する（ステップＳ２０１）。この際、差分情報検出モジュール１０３は、差分管理対象ファイル群２００とともに、差分管理対象ファイル毎のファイル情報２０１も取得する。尚、差分検出の指示は、定期的に、あるいは何らかのイベント（サーバの再起動、ファイルサイズ、時間）に応じて行われる。
【００５３】
次に、差分情報検出モジュール１０３は、差分情報管理モジュール１０２から有効なグループ情報２１０を全て取得する（ステップＳ２０２）。ここでは、差分情報検出モジュール１０３は、図２に示されるグループ情報テーブル２１からグループＡ、Ｂ、Ｃに関するグループ情報２１０を取得する。
【００５４】
次に、差分情報検出モジュール１０３は、差分情報管理モジュール１０２から差分検出情報２２０を取得する（ステップＳ２０３）。ここでは、差分情報検出モジュール１０３差分検出情報テーブル２２に記録され、参照可能に設定された全ての差分検出情報２２０を取得する。
【００５５】
次に、差分情報検出モジュール１０３は、ステップＳ２０１で取得したファイル情報２０１とステップＳ２０２で取得したグループ情報２１０とに基づいて、差分管理対象ファイル群２００をグループ分けする（ステップＳ２０４）。ここでは、ファイル情報２０１に含まれるファイルパスが、グループ情報２１０に含まれるグループ所属条件に適合する場合、当該ファイル情報２０１に対応する差分管理対象ファイルが、当該グループ所属条件に対応するグループに所属していると判定される。
【００５６】
差分管理対象ファイルをグループに対応付けることで、ステップＳ２０５の差分検出処理で用いる差分検出情報２２０及びファイルタイプ（世代管理用タイプ、ＤＢタイプ、再帰タイプのいずれか）を特定することができる。
【００５７】
差分管理対象ファイル群２００の全てのファイルをグループ毎に分類すると、差分情報検出モジュール１０３は、差分対象ファイル群２００のうち、前回差分対象ファイルと差分のある差分対象ファイルから新たな差分検出情報２２０を取得し、グループに対応付けて差分検出情報テーブル２２に記録する（ステップＳ２０５）。この際、同じグループの古い差分検出情報２２０（前回差分検出ファイルに対応する差分検出情報２２０）は削除され、今回格納された新たな差分検出情報は参照可能に設定される。
【００５８】
次に、図６から図９を参照して、本発明によるファイル差分管理装置１０における差分検出処理の詳細を説明する。
【００５９】
先ず、差分検出情報テーブル２２に差分検出情報２２０が記録されていない初期状態において行われる世代管理用の差分管理対象ファイルに対する差分検出処理の詳細を説明する。
【００６０】
差分情報検出モジュール１０３は、差分検出処理の指示に応答して、差分管理対象ファイル群２００と、対応するファイル情報２０１を取得する（ステップＳ２０１）。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル群２００として１つの差分管理対象ファイル（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「１０２４バイト」）を取得する。
【００６１】
次に、差分情報検出モジュール１０３は、グループ情報テーブル２１に登録されているグループＡ、Ｂ、Ｃのグループ情報２１０を取得する（ステップＳ２０２）。
【００６２】
初期状態では差分検出情報テーブル２２に、差分検出情報２２０が記録されていないため、差分情報検出モジュール１０３は、「差分検出情報なし」という差分検出情報２２０を取得する（ステップＳ２０３）。
【００６３】
差分情報検出モジュール１０３は、取得した差分管理対象ファイルをグループ情報２１０に基づいてグループに割り当てる（ステップＳ２０４）。ここでは、取得した差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」は、グループＡ（グループ名：「ｈｏｓｔ０１  ｓｙｓｌｏｇ．ｌｏｇ」）のグループ所属条件「ｈｏｓｔ０１：￥／ｖａｒ￥／ａｄｍ￥／ｓｙｓｌｏｇ￥／（ＯＬＤ｜）ｓｙｓｌｏｇ￥．ｌｏｇ」に適合するため、グループＡに対応付けられる。
【００６４】
差分情報検出モジュール１０３は、取得した差分管理対象ファイル群２００内の全てのファイルの差分検出処理を行い、差分検出情報テーブル２２を更新する（ステップＳ２０５）。
【００６５】
図７は、ステップＳ２０５における差分検出処理の動作を示すフロー図である。図７を参照して、ステップＳ２０５における差分検出処理の詳細を説明する。
【００６６】
先ず、差分情報検出モジュール１０３は、グループを１つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する（ステップＳ３０１）。ここでは、グループＡが選択される。差分情報検出モジュール１０３は、グループを選択すると、そのグループのタイプを確認する（ステップＳ３０２）。選択したグループが「世代管理タイプ」である場合、ステップＳ３０３の処理に移行し（ステップＳ３０２Ｙｅｓ）、「ＤＢタイプ」又は「再帰タイプ」である場合、ステップＳ３０９の処理に移行する（ステップＳ３０２Ｎｏ）。
【００６７】
グループＡは世代管理タイプであるため、差分情報検出モジュール１０３は、グループＡに所属する差分管理対象ファイルを選択し、世代管理タイプ用の差分検出処理を行う（ステップＳ３０３）。ここでは差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」が選択される。ステップＳ３０３における世代管理タイプ用の差分検出処理の詳細を図８に示す。
【００６８】
図８を参照して、差分情報検出モジュール１０３は、ステップＳ３０１において選択したグループに所属する前回差分検出ファイルがあるかを確認する（ステップＳ４０１）。ここで、グループに前回差分検出ファイルがある場合、すなわち、グループに対応付けられた差分検出情報２２０が既に記録されている場合、ステップＳ４０３の処理に移行する（ステップＳ４０１Ｙｅｓ）。一方、グループに所属する前回差分検出ファイルがない場合、すなわち、グループに対応付けられた差分検出情報２２０が未登録の場合、差分情報検出モジュール１０３は、ステップＳ３０３で選択された差分管理対象ファイルのデータの全てを差分データ３００として判定する（ステップＳ４０２）。この際、差分情報検出モジュール１０３は、差分管理対象ファイルにおけるデータの始点及び終点を差分情報２３０として取得する。
【００６９】
ここでは、グループＡに対する差分検出はこれが最初であるため、前回差分検出ファイルがないことが確認される。この場合、ステップＳ４０２の処理において、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のデータは、全て新たなデータ、すなわち全て差分データ３００であると判定される。又、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のデータの始点及び終端を差分データ３００の始点及び終点として指定する差分情報２３０を取得する。
【００７０】
以上のように、ステップＳ３０３における差分検出処理が終了すると、図７に示すステップＳ３０４における処理に移行する。
【００７１】
差分情報検出モジュール１０３は、差分管理対象ファイルとともに取得したファイル情報２０１から世代管理タイプ用の差分検出情報２２０を取得する（ステップＳ３０４）。詳細には、差分情報検出モジュール１０３は、ファイル情報２０１と、差分データ３００の読み取り位置を示す差分情報２３０と、差分管理対象ファイルが所属するグループとを対応付けて新たな差分検出情報２２０として取得する。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のファイル情報２０１（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「１０２４バイト」）と、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」と、グループＡとを対応付けて新たな差分検出情報２２０として取得する。ただし、ファイルパスは、差分検出情報２２０として必須ではない。
【００７２】
差分情報検出モジュール１０３は、新たに取得した差分検出情報２２０を、差分情報管理モジュール１０２を介して、差分検出情報テーブル２２に記録する（ステップＳ３０５）。尚、このタイミングでは記録した差分検出情報テーブル２２の差分検出情報は参照できない。このため、差分情報管理モジュール１０２は、新たに記録された差分検出情報２２０を参照可能に設定する（ステップＳ３０６）。
【００７３】
図９に、ステップＳ３０６における処理の動作の詳細を示す。図９を参照して、差分情報検出モジュール１０３は、取得した差分情報２３０を差分情報出力モジュール１０４に渡す（ステップＳ５０１）。差分情報出力モジュール１０４は、差分情報２３０に対応する差分管理対象ファイルから差分情報２３０の示す差分の始点から終点までのデータを順に読み込み、差分データ３００として出力する（ステップＳ５０２）。ここではファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のデータの全てが読み込まれ、出力装置１５に出力される。この際、差分情報管理モジュール１０２は、今回処置したグループに対応する古い差分検出情報２２０（前回差分検出ファイルの差分検出情報２２０）を削除し、今回、新たに格納した差分検出情報２２０を参照可能に設定する。ここでは削除する差分検出情報は無いため、今回格納した新たな差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「１０２４バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）が参照可能に設定される。
【００７４】
ステップＳ３０３〜Ｓ３０６の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる（ステップＳ３０７）。グループ内の全ての差分管理対象ファイルに対しステップＳ３０３〜Ｓ３０６の処理が行われると、ステップＳ３０８に移行する（ステップＳ３０７Ｙｅｓ）。ステップＳ３０８では、差分管理対象ファイル群２００内の全てのファイルに対し、差分検出処理が実行されたかどうかが確認される。ここで、選択されていない差分管理対象ファイルがある場合、ステップＳ３０１に移行して、当該ファイルが所属するグループを選択し、差分検出処理を実行する。このように、ステップＳ３０１以降に続く差分検出処理は、取得した差分管理対象ファイル群２００が所属する全てのグループに対して行われる。ここでは、取得した差分管理対象ファイルがグループＡのみに所属するため、グループＡに所属する差分管理対象ファイル群２００に対してのみ差分検出処理が行われる。
【００７５】
以上のように、初期状態において、世代管理タイプの差分管理対象ファイルが入力された場合、新たな差分検出情報２２０（グループ名＝「ｈｏｓｔ０１  ｓｙｓｌｏｇ．ｌｏｇ」、ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「１０２４バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）が記録される。
【００７６】
次に、差分検出情報テーブル２２に上述の差分検出情報２２０が記録されている状態において、差分情報検出モジュール１０３に対し新たな差分情報検出処理が指示された場合について説明する。
【００７７】
差分情報検出モジュール１０３は、差分検出処理の指示に応答して差分管理対象ファイル群２００と、対応するファイル情報２０１を取得する（ステップＳ２０１）。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル群２００として２つの差分管理対象ファイル（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「２０４８バイト」）と、差分管理対象ファイル（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２５」、ファイルサイズ＝「５１２バイト」）を取得する。
【００７８】
次に、差分情報検出モジュール１０３は、グループ情報テーブル２１に登録されているグループＡ、Ｂ、Ｃのグループ情報２１０を取得する（ステップＳ２０２）。
【００７９】
差分情報管理モジュール１０２は、差分検出情報テーブル２２を参照して、既に記録されている差分検出情報２２０（グループ名＝「ｈｏｓｔ０１  ｓｙｓｌｏｇ．ｌｏｇ」、ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「１０２４バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）を差分情報検出モジュール１０３に渡す（ステップＳ２０３）。
【００８０】
差分情報検出モジュール１０３は、取得した差分管理対象ファイル群２００をグループ情報２１０に基づいてグループ分けする（ステップＳ２０４）。ここでは、取得した差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」及びファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」は、両者ともグループＡ（グループ名：「ｈｏｓｔ０１  ｓｙｓｌｏｇ．ｌｏｇ」）のグループ所属条件「ｈｏｓｔ０１：￥／ｖａｒ￥／ａｄｍ￥／ｓｙｓｌｏｇ￥／（ＯＬＤ｜）ｓｙｓｌｏｇ￥．ｌｏｇ」に適合するため、グループＡに対応付けられる。
【００８１】
差分情報検出モジュール１０３は、取得した差分管理対象ファイル群２００内の全てのファイルの差分検出処理を行い、差分検出情報テーブル２２を更新する（ステップＳ２０５）。図７を参照して、ステップＳ２０５における差分検出処理の詳細を説明する。
【００８２】
先ず、差分情報検出モジュール１０３は、グループを１つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する（ステップＳ３０１）。ここでは、グループＡが選択される。差分情報検出モジュール１０３は、グループを選択すると、そのグループのタイプを確認する（ステップＳ３０２）。選択したグループが「世代管理タイプ」である場合、ステップＳ３０３の処理に移行し（ステップＳ３０２Ｙｅｓ）、「ＤＢタイプ」又は「再帰タイプ」である場合、ステップＳ３０９の処理に移行する（ステップＳ３０２Ｎｏ）。
【００８３】
グループＡは世代管理タイプであるため、差分情報検出モジュール１０３は、グループＡに所属する差分管理対象ファイルを選択し、世代管理タイプ用の差分検出処理を行う（ステップＳ３０３）。ここでは最初に差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」が選択される。
【００８４】
図８を参照して、ステップＳ３０３における差分検出処理の詳細を説明する。差分情報検出モジュール１０３は、ステップＳ３０１において選択したグループに所属する前回差分検出ファイルがあるかを確認する（ステップＳ４０１）。ここではグループＡの前回差分検出ファイルに対応する差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「１０２４バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）があることが確認される。このため、差分情報検出モジュール１０３は、ステップＳ４０３の処理に移行する。
【００８５】
差分情報検出モジュール１０３は、差分管理対象ファイルのファイル情報２０１にオブジェクト識別子があるかを確認する（ステップＳ４０３）。ここで、ファイル情報２０１にオブジェクト識別子がない場合、ステップＳ４０８の処理に移行する（ステップＳ４０３Ｎｏ）。一方、ファイル情報２０１にオブジェクト識別子がある場合、差分情報検出モジュール１０３は、そのオブジェクト識別子と一致するオブジェクト識別子を有する差分検出情報２２０が記録されているかを確認する（ステップＳ４０３、Ｙｅｓ、Ｓ４０４）。ここでは、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」のファイル情報２０１にオブジェクト識別子があることが確認される。又、ファイル情報２０１に含まれるオブジェクト識別子＝「７１７６２２４」と差分検出情報２２０（前回差分検出ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」に対応）に含まれるオブジェクト識別子＝「７１７６２２４」が一致することが確認される。
【００８６】
ステップＳ４０４において、ファイル情報２０１内のオブジェクト識別子と一致する差分検出情報２２０がある場合、差分情報検出モジュール４０５は、オブジェクト識別子が一致する差分検出情報２２０の中にファイル情報２０１に含まれる作成日時に一致する作成日時を有する差分検出情報２２０があるかを確認する（ステップＳ４０５）。ここではファイル情報２０１に含まれる作成日時＝「２００７年１月１日  １３：０１：０１」と差分検出情報２２０（前回差分検出ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」に対応）の作成日時＝「２００７年１月１日  １３：０１：０１」が一致することが確認される。
【００８７】
ここで、ファイル情報２０１がファイルの作成日時を持たない場合、ステップＳ４０５における作成日時の比較処理は行われない。この場合、次のような比較処理が行われても良い。
【００８８】
差分情報検出モジュール１０３は、ファイル情報２０１と差分検出情報２２０のそれぞれに含まれるチェックサムを比較し、チェックサムが一致する場合はその内容の比較を行う。ここで、チェックサムの比較は、ファイル全体である必要はなく、最大でも前回差分検出ファイルのファイルサイズまでのチェックサムでよい。
【００８９】
差分管理対象ファイル群２００内の差分管理対象ファイルをオープンもしくはハードリンクしておいた場合、ファイルが削除されてすぐに別のファイルが作成されても、同じｉ−ｎｏｄｅがそのファイルに使用されることはない。このような場合、差分情報検出モジュール１０３は、オブジェクト識別子（ｉ−ｎｏｄｅ）のみを比較することで同一ファイルか否かの判断をすることができる。すなわち、このような場合、ステップＳ４０５の作成日時比較処理は省略できる。差分管理対象ファイルをオープンもしくはハードリンクしておく必要がある期間は、差分管理モジュール１００が、当該ファイルが削除されたことを検出するまでの間である。換言すると、差分管理対象ファイルをオープンもしくはハードリンクしておく必要がある期間は、そのファイルに対しての最後の差分検出が実行される直前からそのファイルが削除された後に差分検出が実行されるまでの間である。ただし、この期間がこれより長くなっても問題はない。
【００９０】
ファイルのデータ更新が０世代目のファイルに対してのみ差分管理が行われるグループにおいて、０世代目以外の差分管理対象ファイルと０世代目以外の前回差分検出ファイル同士が比較される場合、ファイルデータの更新日時が、比較対象として使用されることが好ましい。又、０世代目の差分管理対象ファイルと０世代目の前回差分検出ファイル同士が比較される場合、チェックサムが比較対象として使用されるか、０世代目の差分管理対象ファイルと０世代目の前回差分検出ファイルが同じオブジェクト識別子（ｉ−ｎｏｄｅ）にならないように、ファイルをオープンもしくはハードリンクしておき、オブジェクト識別子（ｉ−ｎｏｄｅ）のみの比較が行われることが好ましい。ただし、０世代目か否かの判定にはファイル名を利用する。
【００９１】
次に、ステップＳ４０４、Ｓ４０５における処理の結果、ファイル情報２０１内のオブジェクト識別子と作成日時とが一致する差分検出情報２２０がある場合、差分情報検出モジュール１０３は、ファイル情報２０１内のファイルのデータサイズと、当該差分検出情報２２０に含まれるデータサイズとを比較する（ステップＳ４０６）。これにより、オブジェクト識別子と作成日時が一致する差分管理対象ファイルと前回差分検出ファイルとのファイルサイズを比較することができる。ステップＳ４０６の処理において、差分管理対象ファイルのサイズが前回差分検出ファイルのサイズ以下である場合、差分なしと判定される（ステップＳ４０７）。この場合、差分検出情報２２０は更新されない。一方、ステップＳ４０６の処理において差分管理対象ファイルのサイズが前回差分検出ファイルのサイズより大きい場合、そのサイズ差分のデータが差分データ３００として判定される。この場合、差分情報検出モジュール１０３は、前回差分検出ファイルの終端の次のデータを始点として指定し、差分管理対象ファイルの終端をデータの終端として指定する差分情報２３０を取得する。ここでは、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」のサイズ＝「２０４８バイト」と前回差分検出ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のサイズ＝「１０２４バイト」が比較され、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」のサイズの方が「１０２４バイト」大きいため、差分管理対象ファイルの始点から１０２４バイト進んだ位置からファイルの終端までが差分データ３００であると判断される。又、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」の１０２５バイト目を差分データ３００の始点、その終端を差分データ３００の終端として指定する差分情報２３０を取得する。
【００９２】
一方、ステップＳ４０４において、ファイル情報２０１内のオブジェクト識別子と一致する差分検出情報２２０がない場合、あるいは、ステップＳ４０５において、ファイル情報２０１内の作成日時と一致する差分検出情報２２０がない場合、選択された差分管理対象ファイルのデータは、全て新たなデータ、すなわち全て差分データ３００であると判定される（ステップＳ４０２）。この際、差分情報検出モジュール１０３は、差分管理対象ファイルのデータの始点及び終点を差分データ３００の始点及び終点として指定する差分情報２３０を取得する。
【００９３】
以上のように、ステップＳ３０３における差分検出処理が終了すると、図７に示すステップＳ３０４における処理に移行する。
【００９４】
差分情報検出モジュール１０３は、差分管理対象ファイルとともに取得したファイル情報２０１から世代管理タイプ用の差分検出情報２２０を取得する（ステップＳ３０４）。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」のファイル情報２０１（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「２０４８バイト」）と、差分情報２３０＝「始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端」と、グループＡとを対応付けて新たな差分検出情報２２０として取得する。ただし、ファイルパスは、差分検出情報２２０として必須ではない。
【００９５】
差分情報検出モジュール１０３は、取得した新たな差分検出情報２２０を差分情報管理モジュール１０２を介して、差分検出情報テーブル２２に記録する（ステップＳ３０５）。ここでは、新たな差分検出情報２２０として（ファイル名＝「ｈｏｓｔ０１  ｓｙｓｌｏｇ．ｌｏｇ」、ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「２０４８バイト」、差分情報２３０＝始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端）が記録される。尚、このタイミングでは記録した差分検出情報テーブル２２の差分検出情報は参照できない。このため、差分情報管理モジュール１０２は、新たに記録された差分検出情報２２０を参照可能に設定する（ステップＳ３０６）。
【００９６】
図９を参照して、差分情報検出モジュール１０３は、取得した差分情報２３０を差分情報出力モジュール１０４に渡す（ステップＳ５０１）。差分情報出力モジュール１０４は、差分情報２３０に対応する差分管理対象ファイルから差分情報２３０の示す差分の始点から終点までのデータを順に読み込み、差分データ３００として出力する（ステップＳ５０２）。ここでは、差分情報２３０を参照して差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」の１０２５ビット目から終端（２０４８ビット目）までのデータが順に読み込まれ出力装置１５に出力される。この際、差分情報管理モジュール１０２は、今回処置したグループに対応する古い差分検出情報２２０（前回差分検出ファイルの差分検出情報２２０）を削除し、今回、新たに格納した差分検出情報２２０を参照可能に設定する。ここでは、今回格納した新たな差分検出情報２２０（ファイル名＝「ｈｏｓｔ０１  ｓｙｓｌｏｇ．ｌｏｇ」、ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「２０４８バイト」、差分情報２３０＝「始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端」）が参照可能に設定される。
【００９７】
差分管理対象ファイル群２００内に、グループＡに所属し、差分検出されていない差分管理対象ファイルが有る場合、ステップＳ３０３に移行する（ステップＳ３０７Ｎｏ）。ステップＳ３０３では、次の差分管理対象ファイルが選択され、世代管理タイプ用の差分検出処理が行われる。ここでは、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２５」、ファイルサイズ＝「５１２バイト」）が選択される。
【００９８】
図８を参照して、ステップＳ３０３における差分検出処理の詳細を説明する。差分情報検出モジュール１０３は、ステップＳ３０１において選択したグループに所属する前回差分検出ファイルがあるかを確認する（ステップＳ４０１）。ここでは、グループＡの前回差分検出ファイルに対応する差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「２０４８バイト」、差分情報２３０＝「始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端」）があることが確認される。このため、差分情報検出モジュール１０３は、ステップＳ４０３の処理に移行する。
【００９９】
差分情報検出モジュール１０３は、差分管理対象ファイルのファイル情報２０１にオブジェクト識別子があるかを確認する（ステップＳ４０３）。ここでは、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のファイル情報２０１にオブジェクト識別子があることが確認される（ステップＳ４０３Ｙｅｓ）。次に、ファイル情報２０１に含まれるオブジェクト識別子＝「７１７６２２５」と一致する差分検出情報２２０が差分検出情報テーブル２２にないことが確認される（ステップＳ４０４Ｎｏ）。
【０１００】
ファイル情報２０１に含まれるオブジェクト識別子に一致する差分検出情報２２０が差分検出情報テーブル２２にないため、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」の全てが差分データ３００であると判定する（ステップＳ４０２）。又、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のデータの始点及び終端を差分データ３００の始点及び終点として指定する差分情報２３０を取得する。
【０１０１】
以上のように、ステップＳ３０３における差分検出処理が終了すると、図７に示すステップＳ３０４における処理に移行する。
【０１０２】
差分情報検出モジュール１０３は、差分管理対象ファイルとともに取得したファイル情報２０１から世代管理タイプ用の差分検出情報２２０を取得する（ステップＳ３０４）。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のファイル情報２０１（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２５」、ファイルサイズ＝「５１２バイト」）と、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」と、グループＡを対応付けて新たな差分検出情報２２０として取得する。ただし、ファイルパスは、差分検出情報２２０として必須ではない。
【０１０３】
差分情報検出モジュール１０３は、新たに取得した差分検出情報２２０を差分情報管理モジュール１０２を介して、差分検出情報テーブル２２に記録する（ステップＳ３０５）。差分情報検出モジュール１０３は、取得した差分情報２３０を差分情報出力モジュール１０４に渡す。差分情報出力モジュール１０４は、差分情報２３０に対応する差分管理対象ファイルから差分情報２３０の示す差分の始点から終点までのデータを順に読み込み、差分データ３００として出力する。ここではファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のデータの全てが読み込まれ、出力装置１５に出力される。この際、差分情報管理モジュール１０２は、今回、新たに格納した差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のファイル情報２０１（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２５」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）が参照可能に設定される。
【０１０４】
ステップＳ３０３〜Ｓ３０６の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる（ステップＳ３０７）。グループ内の全ての差分管理対象ファイルに対しステップＳ３０３〜Ｓ３０６の処理が行われると、ステップＳ３０８に移行する（ステップＳ３０７Ｙｅｓ）。ステップＳ３０８では、差分管理対象ファイル群２００内の全てのファイルに対し、差分検出処理が実行されたかが確認される。ここで、選択されていない差分管理対象ファイルがある場合、ステップＳ３０１に移行して、当該ファイルが所属するグループを選択し、差分検出処理を実行する。このように、ステップＳ３０１以降に続く差分検出処理は、取得した差分管理対象ファイル群２００が所属する全てのグループに対して行われる。ここでは、取得した差分管理対象ファイルがグループＡのみに所属するため、グループＡに所属する差分管理対象ファイル群２００に対してのみ差分検出処理が行われる。
【０１０５】
以上のように、グループＡに対応する差分検出情報２２０として前回記録された差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「１０２４バイト」、差分情報２３０＝始点：ファイルの先頭、終点：ファイルの終端）が削除され、差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年１月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２４」、ファイルサイズ＝「２０４８バイト」、差分情報２３０＝始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端）と、差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「７１７６２２５」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）がグループＡに対応する新たな差分検出情報２２０として記録される。
【０１０６】
以上のように本発明では、入力された差分管理対象ファイルの元のファイル（変更前又は変更なし）が、前回差分検出ファイルであるか否かの判定（差分管理対象ファイルと前回差分検出ファイルが同一ファイルであるか否かの判定）をファイルパス、オブジェクト識別子、作成日時などの組み合わせで行う。このため、ファイル名が変更されても同一ファイルか否かの判定をすることができる。
【０１０７】
又、本発明では、さらに、同一ファイルと判定したファイル同士のファイルサイズを比較して更新前のファイルと更新後のファイルの差分が検出される。これにより、ファイルへの出力が追記されたファイルに対し、ファイルの中身を比較することなく差分を検出できる。
【０１０８】
次に、オブジェクト識別子のない差分管理対象ファイルに対する差分検出処理の詳細を説明する。ここでは、差分検出情報２２０（グループ名＝ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」）と、差分検出情報２２０（グループ名＝ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「１０２４バイト」）が差分検出情報テーブル２２に記録されているものとする。
【０１０９】
差分情報検出モジュール１０３は、差分検出処理の指示に応答して差分管理対象ファイル群２００と、対応するファイル情報２０１を取得する（ステップＳ２０１）。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル群２００として２つの差分管理対象ファイル（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」）と、差分管理対象ファイル（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「２０４８バイト」）を取得する。
【０１１０】
差分情報検出モジュール１０３は、グループ情報テーブル２１に登録されているグループＡ、Ｂ、Ｃのグループ情報２１０を取得する（ステップＳ２０２）。
【０１１１】
差分情報管理モジュール１０２は、差分検出情報テーブル２２を参照して、既に記録されている差分検出情報２２０（グループ名＝ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝始点：ファイルの先頭、終点：ファイルの終端）と、差分検出情報２２０（グループ名＝ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「１０２４バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）を差分情報検出モジュール１０３に渡す（ステップＳ２０３）。
【０１１２】
差分情報検出モジュール１０３は、取得した差分管理対象ファイル群２００をグループ情報２１０に基づいてグループ分けする（ステップＳ２０４）。ここでは、取得した差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」及び「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」は、両者ともグループＢ（グループ名：「ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ」）のグループ所属条件「ｈｏｓｔ０２：Ｃ：￥￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥￥Ａｐａｃｈｅ￥￥ｌｏｇｓ￥￥ａｃｃｅｓｓ＿ｌｏｇ（￥．［１−９］｛０，１｝）」に適合するため、グループＢに対応付けられる。
【０１１３】
差分情報検出モジュール１０３は、取得した差分管理対象ファイル群２００内の全てのファイルの差分検出処理を行い、差分検出情報テーブル２２を更新する（ステップＳ２０５）。図７を参照して、ステップＳ２０５における差分検出処理の詳細を説明する。
【０１１４】
先ず、差分情報検出モジュール１０３は、グループを１つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する（ステップＳ３０１）。ここでは、グループＢが選択される。差分情報検出モジュール１０３は、グループを選択すると、そのグループのタイプを確認する（ステップＳ３０２）。
【０１１５】
グループＢは世代管理タイプであるため、差分情報検出モジュール１０３は、グループＢに所属する差分管理対象ファイルを選択し、世代管理タイプ用の差分検出処理を行う（ステップＳ３０３）。ここでは最初に差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」が選択される。
【０１１６】
図８を参照して、ステップＳ３０３における差分検出処理の詳細を説明する。差分情報検出モジュール１０３は、ステップＳ３０１において選択したグループに所属する前回差分検出ファイルがあるかを確認する（ステップＳ４０１）。ここではグループＢの前回差分検出ファイルに対応する差分検出情報２２０（グループ名＝ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝始点：ファイルの先頭、終点：ファイルの終端）と、差分検出情報２２０（グループ名＝ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「１０２４バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）があることが確認される。このため、差分情報検出モジュール１０３は、ステップＳ４０３の処理に移行する。
【０１１７】
差分情報検出モジュール１０３は、差分管理対象ファイルのファイル情報２０１にオブジェクト識別子があるかを確認する（ステップＳ４０３）。ここでは、差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」のファイル情報２０１にオブジェクト識別子がないことが確認される（ステップＳ４０３Ｎｏ）。この場合、差分情報検出モジュール１０３は、差分管理対象ファイルのファイル名の固定フィールドが検証対象のグループに対応するファイル名の固定フィールドの条件に適合するかどうかを確認する（ステップＳ４０８）。ファイル名の固定フィールドが適合しない場合、差分管理対象ファイルは新しいファイルとして判定される（ステップＳ４０８Ｎｏ）。この場合、差分管理対象ファイルの全てが差分データ３００として判定される。一方、ファイル名の固定フィールドが適合する場合、ステップＳ４０５における作成日時の比較処理に移行する。ここでは差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」のファイル名の固定フィールド「ａｃｃｅｓｓ＿ｌｏｇ」は、グループＢに対応するファイルの固定フィールド「ｐｒｅｇ＿ｍａｔｃｈ＿ａｌｌ（“／（ａｃｃｅｓｓ＿ｌｏｇ）（￥．［１−９］｛０，１｝｜）／”，  ＄ｆｉｌｅｎａｍｅ，  ＄ｍａｔｃｈｅｓ）；」の第１パタンに適合するため、差分情報検出モジュール１０３は、作成日時比較処理に移行する（ステップＳ４０８Ｙｅｓ）。
【０１１８】
差分情報検出モジュール４０５は、ファイル情報２０１に含まれる作成日時に一致する作成日時を有する差分検出情報２２０があるかを確認する（ステップＳ４０５）。ここではファイル情報２０１に含まれる作成日時＝「２００７年２月１日  １３：０１：０１」と差分検出情報２２０（前回差分検出ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」に対応）の作成日時＝「２００７年２月１日  １３：０１：０１」が一致することが確認される。
【０１１９】
次に、ファイル情報２０１内の作成日時と一致する差分検出情報２２０がある場合、差分情報検出モジュール１０３は、ファイル情報２０１内のファイルのデータサイズと、当該差分検出情報２２０に含まれるデータサイズとを比較する（ステップＳ４０６）。これにより、作成日時が一致する差分管理対象ファイルと前回差分検出ファイルとのファイルサイズを比較することができる。ステップＳ４０６の処理において、差分管理対象ファイルのサイズが前回差分検出ファイルのサイズ以下である場合、差分なしと判定される（ステップＳ４０７）。この場合、差分検出情報２２０は更新されない。一方、ステップＳ４０６の処理において差分管理対象ファイルのサイズが前回差分検出ファイルのサイズより大きい場合、そのサイズ差分のデータが差分データ３００として判定される。この場合、差分情報検出モジュール１０３は、前回差分検出ファイルの終端の次のデータを始点として指定し、差分管理対象ファイルの終端をデータの終端として指定する差分情報２３０を取得する。ここでは、差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」のファイルサイズ＝「５１２バイト」と、作成日時が一致する前回差分検出ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」のファイルサイズ＝「５１２バイト」が比較され、ファイルサイズに差がないことが確認される（ステップＳ４０７）。この場合、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」の始点及び終点を差分データ３００の始点及び終点として指定する差分情報２３０を取得する。
【０１２０】
以上のように、ステップＳ３０３における差分検出処理が終了すると、図７に示すステップＳ３０４における処理に移行する。
【０１２１】
差分情報検出モジュール１０３は、差分管理対象ファイルとともに取得したファイル情報２０１から世代管理タイプ用の差分検出情報２２０を取得する（ステップＳ３０４）。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル「「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」のファイル情報２０１（ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」と、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」と、グループＢとを対応付けて新たな差分検出情報２２０として取得する。ただし、ファイルパスは、差分検出情報２２０として必須ではない。
【０１２２】
差分情報検出モジュール１０３は、取得した新たな差分検出情報２２０を差分情報管理モジュール１０２を介して、差分検出情報テーブル２２に記録する（ステップＳ３０５）。ここでは、新たな差分検出情報２２０として（グループ名＝「ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ」、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）が記録される。尚、このタイミングでは記録した差分検出情報テーブル２２の差分検出情報は参照できない。このため、差分情報管理モジュール１０２は、新たに記録された差分検出情報２２０を参照可能に設定する（ステップＳ３０６）。
【０１２３】
ステップＳ３０６において、差分情報検出モジュール１０３は、取得した差分情報２３０を差分情報出力モジュール１０４に渡す。ここでは、差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」に新たなデータ（差分データ３００）がないことを差分情報２３０として差分情報出力モジュール１０４に通知する。差分情報出力モジュール１０４は、差分情報２３０に基づいて差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」からのデータの読み出しを行わない。差分情報管理モジュール１０２は、今回処置したグループに対応する古い差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝始点：ファイルの先頭、終点：ファイルの終端）を削除し、今回、新たに格納した差分検出情報２２０を参照可能に設定する。ここでは、今回格納した新たな差分検出情報２２０（グループ名＝「ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ」、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）が参照可能に設定される。
【０１２４】
次に、差分管理対象ファイル群２００内に、グループＢに所属し、差分検出されていない差分管理対象ファイルが有る場合、ステップＳ３０３に移行する（ステップＳ３０７Ｎｏ）。ステップＳ３０３では、次の差分管理対象ファイルが選択され、世代管理タイプ用の差分検出処理が行われる。ここでは、差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」（ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「１０２４バイト」）が選択される。
【０１２５】
図８を参照して、ステップＳ３０３における差分検出処理の詳細を説明する。差分情報検出モジュール１０３は、ステップＳ３０１において選択したグループに所属する前回差分検出ファイルがあるかを確認する（ステップＳ４０１）。ここではグループＢの前回差分検出ファイルに対応する差分検出情報２２０（グループ名＝ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）と、差分検出情報２２０（グループ名＝ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「１０２４バイト」、差分情報＝「始点：ファイルの先頭、終点：ファイルの終端」）があることが確認される。このため、差分情報検出モジュール１０３は、ステップＳ４０３の処理に移行する。
【０１２６】
差分情報検出モジュール１０３は、差分管理対象ファイルのファイル情報２０１にオブジェクト識別子があるかを確認する（ステップＳ４０３）。ここでは、差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」のファイル情報２０１にオブジェクト識別子がないことが確認される（ステップＳ４０３Ｎｏ）。この場合、差分情報検出モジュール１０３は、差分管理対象ファイルのファイル名の固定フィールドが検証対象のグループに対応するファイル名の固定フィールドの条件に適合するかどうかを確認する（ステップＳ４０８）。ファイル名の固定フィールドが適合しない場合、差分管理対象ファイルは新しいファイルとして判定される（ステップＳ４０８Ｎｏ）。この際、差分管理対象ファイルの全てが差分データ３００として判定される。一方、ファイル名の固定フィールドが適合する場合、ステップＳ４０５における作成日時比較処理に移行する。ここでは差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」のファイル名の固定フィールド「ａｃｃｅｓｓ＿ｌｏｇ」は、グループＢに対応するファイルの固定フィールド「ｐｒｅｇ＿ｍａｔｃｈ＿ａｌｌ（“／（ａｃｃｅｓｓ＿ｌｏｇ）（￥．［１−９］｛０，１｝｜）／”，  ＄ｆｉｌｅｎａｍｅ，  ＄ｍａｔｃｈｅｓ）；」の第１パタンに適合するため、差分情報検出モジュール１０３は、作成日時比較処理に移行する（ステップＳ４０８Ｙｅｓ）。
【０１２７】
差分情報検出モジュール４０５は、ファイル情報２０１に含まれる作成日時に一致する作成日時を有する差分検出情報２２０があるかを確認する（ステップＳ４０５）。ここではファイル情報２０１に含まれる作成日時＝「２００７年３月１日  １３：０１：０１」と差分検出情報２２０（前回差分検出ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」に対応）の作成日時＝「２００７年３月１日  １３：０１：０１」が一致することが確認される。
【０１２８】
次に、ファイル情報２０１内の作成日時と一致する差分検出情報２２０がある場合、差分情報検出モジュール１０３は、ファイル情報２０１内のファイルのデータサイズと、当該差分検出情報２２０に含まれるデータサイズとを比較する（ステップＳ４０６）。ここでは、差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」のファイルサイズ＝「２０４８バイト」と前回差分検出ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」のファイルサイズ＝「１０２４バイト」が比較され、差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」のファイルサイズが１０２４バイト大きいことが確認される（ステップＳ４０６Ｙｅｓ）。この場合、差分管理対象ファイルのサイズの方が「１０２４バイト」大きいため、差分管理対象ファイルの始点から１０２４バイト進んだ位置からファイルの終端までが差分データ３００であると判断される。又、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」の１０２５バイト目を差分データ３００の始点、その終端を差分データ３００の終端として指定する差分情報２３０を取得する（ステップＳ４０９）。
【０１２９】
以上のように、ステップＳ３０３における差分検出処理が終了すると、図７に示すステップＳ３０４における処理に移行する。
【０１３０】
差分情報検出モジュール１０３は、差分管理対象ファイルとともに取得したファイル情報２０１から世代管理タイプ用の差分検出情報２２０を取得する（ステップＳ３０４）。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ＯＬＤｓｙｓｌｏｇ．ｌｏｇ」のファイル情報２０１（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「２０４８バイト」）と、差分情報２３０＝「始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端」とグループＢとを対応付けて新たな差分検出情報２２０として取得する。ただし、ファイルパスは、差分検出情報２２０として必須ではない。
【０１３１】
差分情報検出モジュール１０３は、取得した新たな差分検出情報２２０を差分情報管理モジュール１０２を介して、差分検出情報テーブル２２に記録する（ステップＳ３０５）。ここでは、新たな差分検出情報２２０として（グループ名＝「ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ」、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「２０４８バイト」、差分情報２３０＝始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端）が記録される。尚、このタイミングでは記録した差分検出情報テーブル２２の差分検出情報は参照できない。このため、差分情報管理モジュール１０２は、新たに記録された差分検出情報２２０を参照可能に設定する（ステップＳ３０６）。
【０１３２】
図９を参照して、差分情報検出モジュール１０３は、取得した差分情報２３０を差分情報出力モジュール１０４に渡す（ステップＳ５０１）。差分情報出力モジュール１０４は、差分情報２３０に対応する差分管理対象ファイルから差分情報２３０の示す差分の始点から終点までのデータを順に読み込み、差分データ３００として出力する（ステップＳ５０２）。ここでは、差分情報２３０を参照して差分管理対象ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」の１０２５ビット目から終端（２０４８ビット目）までのデータが順に読み込まれ出力装置１５に出力される。この際、差分情報管理モジュール１０２は、今回処置したグループに対応する古い差分検出情報２２０（前回差分検出ファイル「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」の差分検出情報２２０）を削除し、今回、新たに格納した差分検出情報２２０を参照可能に設定する。ここでは、今回格納した新たな差分検出情報２２０（グループ名＝「ｈｏｓｔ０２  Ａｐａｃｈｅ  ａｃｃｅｓｓ＿ｌｏｇ」、ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「２０４８バイト」、差分情報２３０＝始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端）が参照可能に設定される。
【０１３３】
ステップＳ３０３〜Ｓ３０６の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる（ステップＳ３０７）。グループ内の全ての差分管理対象ファイルに対しステップＳ３０３〜Ｓ３０６の処理が行われると、ステップＳ３０８に移行する（ステップＳ３０７Ｙｅｓ）。ステップＳ３０８では、差分管理対象ファイル群２００内の全てのファイルに対し、差分検出処理が実行されたかが確認される。ここで、選択されていない差分管理対象ファイルがある場合、ステップＳ３０１に移行して、当該ファイルが所属するグループを選択し、差分検出処理を実行する。このように、ステップＳ３０１以降に続く差分検出処理は、取得した差分管理対象ファイル群２００が所属する全てのグループに対して行われる。ここでは、取得した差分管理対象ファイルがグループＢのみに所属するため、グループＢに所属する差分管理対象ファイル群２００に対してのみ差分検出処理が行われる。
【０１３４】
以上のように、グループＢに対応する差分検出情報２２０として前回記録された差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」））と、差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「１０２４バイト」、差分情報２３０＝「始点：ファイルの先頭、終点：ファイルの終端」）が削除され、差分検出情報２２０（差分管理対象ファイル（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ．１」、作成日時＝「２００７年２月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端）と、差分検出情報２２０（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０２：Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ａｐａｃｈｅ  Ｇｒｏｕｐ￥Ａｐａｃｈｅ￥ｌｏｇｓ￥ａｃｃｅｓｓ＿ｌｏｇ」、作成日時＝「２００７年３月１日  １３：０１：０１」、オブジェクト識別子＝「なし」、ファイルサイズ＝「２０４８バイト」、差分情報２３０＝始点：ファイルの先頭から１０２５バイト目、終点：ファイルの終端）がグループＢに対応する新たな差分検出情報２２０として記録される。
【０１３５】
本発明では、差分管理対象のファイルにオブジェクト識別子が含まれていない場合でも、ファイル名の固定フィールドを検証し、作成日時を比較することで、差分管理対象ファイルと同一な前回差分検出ファイルを抽出し、両者の差分を検出することができる。
【０１３６】
次に、差分検出情報テーブル２２に差分検出情報２２０が記録されていない初期状態において行われるＤＢ用の差分管理対象ファイルに対する差分検出処理の詳細を説明する。
【０１３７】
差分情報検出モジュール１０３は、差分検出処理の指示に応答して差分管理対象ファイル群２００と、対応するファイル情報２０１を取得する（ステップＳ２０１）。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル群２００として差分管理対象ファイル（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」、作成日時＝「２００７年２月２日  １４：０２：０２」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」）とを取得する。
【０１３８】
次に、差分情報検出モジュール１０３は、グループ情報テーブル２１に登録されているグループＡ、Ｂ、Ｃのグループ情報２１０を取得する（ステップＳ２０２）。
【０１３９】
初期状態では差分検出情報テーブル２２に、差分検出情報２２０が記録されていないため、差分情報検出モジュール１０３は、「差分検出情報なし」という差分検出情報２２０を取得する（ステップＳ２０３）。
【０１４０】
差分情報検出モジュール１０３は、取得した差分管理対象ファイルをグループ情報２１０に基づいてグループ分けする（ステップＳ２０４）。ここでは、取得した差分管理対象ファイル「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」は、グループＢ（グループ名：「ｈｏｓｔ０３  ｅｖｅｎｔ．ｃｓｖ」）のグループ所属条件「ｈｏｓｔ０３：Ｃ：￥￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥￥ｕｓｅｒ１￥￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥￥ｅｖｅｎｔ￥．ｃｓｖ」に適合するため、グループＢに対応付けられる。
【０１４１】
差分情報検出モジュール１０３は、取得した差分管理対象ファイル群２００内の全てのファイルの差分検出処理を行い、差分検出情報テーブル２２を更新する（ステップＳ２０５）。図７を参照して、ステップＳ２０５における差分検出処理の詳細を説明する。
【０１４２】
先ず、差分情報検出モジュール１０３は、グループを１つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する（ステップＳ３０１）。ここでは、グループＣが選択される。差分情報検出モジュール１０３は、グループを選択すると、そのグループのタイプを確認する（ステップＳ３０２）。選択したグループが「ＤＢタイプ」又は「再帰タイプ」である場合、ステップＳ３０９の処理に移行する（ステップＳ３０２Ｎｏ）。
【０１４３】
グループＣはＤＢタイプであるため、差分情報検出モジュール１０３は、グループＣに所属する差分管理対象ファイルを選択し、ＤＢタイプ用の差分検出処理を行う（ステップＳ３０９）。ここでは差分管理対象ファイル「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」が選択される。ステップＳ３０９におけるＤＢタイプ用の差分検出処理の詳細を図１０に示す。
【０１４４】
図１０を参照して、差分情報検出モジュール１０３は、ステップＳ３０１において選択したグループに所属する前回差分検出ファイルがあるかを確認する（ステップＳ６０１）。ここで、グループに前回差分検出ファイルがある場合、すなわち、グループに対応付けられた差分検出情報２２０が既に記録されている場合、ステップＳ６０３の処理に移行する（ステップＳ６０１Ｙｅｓ）。一方、グループに所属する前回差分検出ファイルがない場合、すなわち、グループに対応付けられた差分検出情報２２０が未登録の場合、差分情報検出モジュール１０３は、ステップＳ３０３で選択された差分管理対象ファイルのデータの全てを差分データ３００として判定する（ステップＳ６０２）。この際、差分情報検出モジュール１０３は、差分管理対象ファイルにおけるデータの始点及び終点を差分情報２３０として取得する。
【０１４５】
ここでは、グループＣに対する差分検出はこれが最初であるため、前回差分検出ファイルがないことが確認される。この場合、ステップＳ６０２の処理において、差分管理対象ファイル「ｈｏｓｔ０１：／ｖａｒ／ａｄｍ／ｓｙｓｌｏｇ／ｓｙｓｌｏｇ．ｌｏｇ」のデータは、全て新たなデータ、すなわち全て差分データ３００であると判定される。又、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」のデータの始点及び終端を差分データ３００の始点及び終点として指定する差分情報２３０を取得する。
【０１４６】
以上のように、ステップＳ３０３における差分検出処理が終了すると、図７に示すステップＳ３１０における処理に移行する。
【０１４７】
差分情報検出モジュール１０３は、差分管理対象ファイルとともに取得したファイル情報２０１からＤＢタイプ用の差分検出情報２２０を取得する（ステップＳ３１０）。この際、差分検出情報２２０には差分データ３００の読み取り位置を示す差分情報２３０が含まれる。ＤＢタイプ用の差分情報２３０は、差分管理対象ファイルにおける最後のデータから遡って、少なくとも１回（１回より多くても良い）タイムスタンプが変化するデータまでのデータを含む。例えば、差分管理対象ファイルのデータが以下のように昇順に並んでいる場合、
「２００７／０３／０１  １０：１０：１０  ｍｅｓｓａｇｅ＿１」、「２００７／０３／０１  １０：１０：１０  ｍｅｓｓａｇｅ＿２」、「２００７／０３／０１  １０：１０：１０  ｍｅｓｓａｇｅ＿３」、「２００７／０３／０１  １０：１０：１０  ｍｅｓｓａｇｅ＿１」、「２００７／０３／０１  １０：１０：１０  ｍｅｓｓａｇｅ＿２」、「２００７／０３／０１  １０：１０：１１  ｍｅｓｓａｇｅ＿３」、「２００７／０３／０１  １０：１０：１１  ｍｅｓｓａｇｅ＿１」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿２」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿３」、
ＤＢ用の差分情報２３０は、最後のデータ（「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿３」）から  １回タイムスタンプが変化するデータ（「２００７／０３／０１  １０：１０：１１  ｍｅｓｓａｇｅ＿１」）までのデータとなる。すなわち、差分情報２３０は、「２００７／０３／０１  １０：１０：１１  ｍｅｓｓａｇｅ＿１」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿２」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿３」となる。
【０１４８】
差分情報検出モジュール１０３は、新たに取得した差分検出情報２２０を差分情報管理モジュール１０２を介して、差分検出情報テーブル２２に記録する（ステップＳ３０５）。尚、このタイミングでは記録した差分検出情報テーブル２２の差分検出情報は参照できない。このため、差分情報管理モジュール１０２は、新たに記録された差分検出情報２２０を参照可能に設定する（ステップＳ３０６）。
【０１４９】
図９を参照して、差分情報検出モジュール１０３は、取得した差分情報２３０を差分情報出力モジュール１０４に渡す（ステップＳ５０１）。差分情報出力モジュール１０４は、差分情報２３０に対応する差分管理対象ファイルから差分情報２３０に基づいて差分の始点から終点までのデータを順に読み込み、差分データ３００として出力する（ステップＳ５０２）。ここではファイル「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」のデータの全てが読み込まれ、出力装置１５に出力される。この際、差分情報管理モジュール１０２は、今回処置したグループに対応する古い差分検出情報２２０（前回差分検出ファイルの差分検出情報２２０）を削除し、今回、新たに格納した差分検出情報２２０を参照可能に設定する。ここでは、削除する差分検出情報は無いため、今回格納した新たな差分検出情報２２０（ファイルパス＝「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」、作成日時＝「２００７年２月２日  １４：０２：０２」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「２００７／０３／０１  １０：１０：１１  ｍｅｓｓａｇｅ＿１」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿２」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿３」）が参照可能に設定される。
【０１５０】
ステップＳ３０３〜Ｓ３０６の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる（ステップＳ３０７）。ここでは、取得した差分管理対象ファイルがグループＣのみに所属するため、グループＣに所属する差分管理対象ファイル群２００に対してのみ差分検出処理が行われる。
【０１５１】
次に、差分検出情報テーブル２２に上述の差分検出情報２２０が記録されている状態において、差分情報検出モジュール１０３に対し新たな差分情報検出処理が指示された場合について説明する。
【０１５２】
差分情報検出モジュール１０３は、差分検出処理の指示に応答して差分管理対象ファイル群２００と、対応するファイル情報２０１を取得する（ステップＳ２０１）。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル群２００として差分管理対象ファイル（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」、作成日時＝「２００７年３月３日  １５：０３：０３」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」）を取得する。
【０１５３】
次に、差分情報検出モジュール１０３は、グループ情報テーブル２１に登録されているグループＡ、Ｂ、Ｃのグループ情報２１０を取得する（ステップＳ２０２）。
【０１５４】
差分情報管理モジュール１０２は、差分検出情報テーブル２２を参照して、既に記録されている差分検出情報２２０（グループ名＝「ｈｏｓｔ０３  ｅｖｅｎｔ．ｃｓｖ」、ファイルパス＝「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」、作成日時＝「２００７年２月２日  １４：０２：０２」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「２００７／０３／０１  １０：１０：１１  ｍｅｓｓａｇｅ＿１」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿２」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿３」）を差分情報検出モジュール１０３に渡す（ステップＳ２０３）。
【０１５５】
差分情報検出モジュール１０３は、取得した差分管理対象ファイル群２００をグループ情報２１０に基づいてグループ分けする（ステップＳ２０４）。ここでは、取得した差分管理対象ファイル「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」のグループ所属条件ｈｏｓｔ０３：Ｃ：￥￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥￥ｕｓｅｒ１￥￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥￥ｅｖｅｎｔ￥．ｃｓｖ」に適合するため、グループＣに対応付けられる。
【０１５６】
差分情報検出モジュール１０３は、取得した差分管理対象ファイル群２００内の全てのファイルの差分検出処理を行い、差分検出情報テーブル２２を更新する（ステップＳ２０５）。図７を参照して、ステップＳ２０５における差分検出処理の詳細を説明する。
【０１５７】
先ず、差分情報検出モジュール１０３は、グループを１つ選択し、グループに所属する差分管理対象ファイルの差分検出処理を開始する（ステップＳ３０１）。ここでは、グループＣが選択される。差分情報検出モジュール１０３は、グループを選択すると、そのグループのタイプを確認する（ステップＳ３０２）。
【０１５８】
グループＣはＤＢタイプであるため、差分情報検出モジュール１０３は、グループＣに所属する差分管理対象ファイルを選択し、ＤＢタイプ用の差分検出処理を行う（ステップＳ３０９）。ここでは差分管理対象ファイル「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」が選択される。
【０１５９】
図１０を参照して、ステップＳ３０６における差分検出処理の詳細を説明する。差分情報検出モジュール１０３は、ステップＳ３０１において選択したグループに所属する前回差分検出ファイルがあるかを確認する（ステップＳ６０１）。ここではグループＣの前回差分検出ファイルに対応する差分検出情報２２０（「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」、作成日時＝「２００７年２月２日  １４：０２：０２」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「２００７／０３／０１  １０：１０：１１  ｍｅｓｓａｇｅ＿１」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿２」、「２００７／０３／０１  １０：１０：１２  ｍｅｓｓａｇｅ＿３」））があることが確認される。このため、差分情報検出モジュール１０３は、ステップＳ６０３の処理に移行する。
【０１６０】
差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」内で最も古いデータの位置を探索する（ステップＳ６０３）。ここで、差分情報検出モジュール１０３はタイムスタンプを参照し、差分管理対象ファイル内のデータが昇順に並んでいる場合はファイルの始点、降順に並んでいる場合はファイル終点を最も古いデータの位置とする。
【０１６１】
次に、差分情報検出モジュール１０３は、最も古いデータの位置から差分データ３００の開始位置を探索する（ステップＳ６０４）。詳細には、差分情報検出モジュール１０３は、差分管理対象ファイルの最も古いデータの位置から前回差分検出ファイルにないデータの位置を探索する。差分情報検出モジュール１０３は、差分管理対象ファイルの最も古いデータから順に差分検出情報２２０に含まれる差分情報２３０と一致するデータを探索し、一致したデータの次のデータを差分データ３００の開始位置として判定する。この際、差分情報２３０と一致するデータがない場合、差分情報検出モジュール１０３は、差分情報２３０内の最も古いデータを古い順に１つずつ削除し、差分管理対象ファイルの最も古いデータの位置に適合させる。これにより、差分管理対象ファイルの最も古いデータと差分情報２３０の最も古いデータを適合させることができる。ここで、両者の最も古いデータを適合させることができた場合、差分情報検出モジュール１０３は、適合したデータの次のデータを前回差分検出ファイルにない差分データ３００の開始位置として判定する。
【０１６２】
ステップＳ６０４において差分データ３００の開始位置が発見されない場合、差分なしと判定される。すなわち、全ての差分情報２３０内のデータを削除した場合は、ファイルの全てが差分データ３００であると判定される（ステップＳ６０５Ｎｏ、Ｓ６０７）。この場合、差分検出情報２２０の更新は行われない。一方、差分データ３００の開始位置が発見された場合、開始位置から最も新しいデータ位置までが差分データ３００として判定される（ステップ６０５Ｙｅｓ、Ｓ６０６）。この場合、差分情報検出モジュール１０３は、発見した開始位置から最も新しいデータ位置までのデータを新しい差分情報２３０として取得する。ここでは、差分管理対象ファイルにおいて、差分情報２３０のデータと一致するデータの次のデータの位置を発見できたものとする。
【０１６３】
以上のように、ステップＳ３０３における差分検出処理が終了すると、図７に示すステップＳ３１０における処理に移行する。
【０１６４】
差分情報検出モジュール１０３は、差分管理対象ファイルとともに取得したファイル情報２０１からＤＢタイプ用の差分検出情報２２０を取得する（ステップＳ３１０）。この際、差分検出情報２２０には差分データ３００の読み取り位置を示す差分情報２３０が含まれる。ここでは、差分情報検出モジュール１０３は、差分管理対象ファイル「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」のファイル情報２０１ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」、作成日時＝「２００７年２月２日  １４：０２：０２」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」）と、ステップＳ３０７で取得した差分情報２３０差分情報２３０＝「始点：一致データの次のデータ位置、終点：最も新しいデータ位置」とグループＣを対応付けて新たな差分検出情報２２０として取得する。ただし、ファイルパスは、差分検出情報２２０として必須ではない。
【０１６５】
差分情報検出モジュール１０３は、取得した新たな差分検出情報２２０を差分情報管理モジュール１０２を介して、差分検出情報テーブル２２に記録する（ステップＳ３１１）。ここでは、新たな差分検出情報２２０として（ファイル情報２０１：ファイルパス＝「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」、作成日時＝「２００７年２月２日  １４：０２：０２」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０）がグループＣに対応付けられて記録される。尚、このタイミングでは記録した差分検出情報テーブル２２の差分検出情報は参照できない。このため、差分情報管理モジュール１０２は、新たに記録された差分検出情報２２０を参照可能に設定する（ステップＳ３１２）。
【０１６６】
図９を参照して、差分情報検出モジュール１０３は、取得した差分情報２３０を差分情報出力モジュール１０４に渡す（ステップＳ５０１）。差分情報出力モジュール１０４は、差分情報２３０に対応する差分管理対象ファイルから差分情報２３０の示す差分の始点から終点までのデータを順に読み込み、差分データ３００として出力する（ステップＳ５０２）。ここでは、差分情報２３０を参照して、差分管理対象ファイル「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」における差分の始点（一致するデータの次のデータの位置）から最も新しいデータの位置（昇順の場合ファイルの終点、降順の場合ファイルの始点）までのデータが順に読み込まれ出力装置１５に出力される。この際、差分情報管理モジュール１０２は、今回処置したグループに対応する古い差分検出情報２２０（前回差分検出ファイルの差分検出情報２２０）を削除し、今回、新たに格納した差分検出情報２２０を参照可能に設定する。ここでは、今回格納した新たな差分検出情報２２０（グループ名＝「ｈｏｓｔ０３  ｅｖｅｎｔ．ｃｓｖ」、ファイルパス＝「ｈｏｓｔ０３：Ｃ：￥Ｄｏｃｕｍｅｎｔｓ  ａｎｄ  Ｓｅｔｔｉｎｇｓ￥ｕｓｅｒ１￥Ｍｙ  Ｄｏｃｕｍｅｎｔｓ￥ｅｖｅｎｔ．ｃｓｖ」、作成日時＝「２００７年２月２日  １４：０２：０２」、オブジェクト識別子＝「なし」、ファイルサイズ＝「５１２バイト」、差分情報２３０＝「始点：一致データの次のデータ位置、終点：最も新しいデータ位置」）が参照可能に設定される。
【０１６７】
ステップＳ３０９〜Ｓ３１２の処理は、選択したグループに所属する全ての差分管理対象ファイルについて行われる（ステップＳ３１３）。グループ内の全ての差分管理対象ファイルに対しステップＳ３０３〜Ｓ３０６の処理が行われると、ステップＳ３０８に移行する（ステップＳ３１３Ｙｅｓ）。ステップＳ３０８では、差分管理対象ファイル群２００内の全てのファイルに対し、差分検出処理が実行されたかどうかが確認される。ここで、選択されていない差分管理対象ファイルがある場合、ステップＳ３０１に移行して、当該ファイルが所属するグループを選択し、差分検出処理を実行する。このように、ステップＳ３０１以降に続く差分検出処理は、取得した差分管理対象ファイル群２００が所属する全てのグループに対して行われる。ここでは、取得した差分管理対象ファイルがグループＣのみに所属するため、グループＣに所属する差分管理対象ファイル群２００に対してのみ差分検出処理が行われる。
【０１６８】
以上のように、本発明によるファイル差分管理装置１０は、データスタンプに基づいて最も古いデータの位置や、最も新しいデータの位置を判別することで、取得した差分管理対象ファイルにおける差分データ３００の開始位置を検出する。詳細には、ファイル差分管理装置１０は、差分検出時のファイルの最もタイムスタンプが大きい（最近の）データから遡って、少なくとも次にタイムスタンプが大きいデータまでを差分情報２３０として保持する。ファイル差分管理装置１０は、差分管理対象ファイルにおいて、最もタイムスタンプが小さい（最古の）データの位置から最もタイムスタンプが大きいデータの位置に向かって、差分情報２３０と完全一致する部分を検索し、最初に一致したところの次のデータから最もタイムスタンプが大きいデータまでを差分の始点から終点までを新たな差分情報２３０として取得することができる。又、両者に完全に一致する部分がない場合は、保持している差分検出情報の最も古いデータを１つ削除して、対象のファイルの最もタイムスタンプが小さいデータの位置に合わせて比較を行う（削除して比較を行う処理は一致するまで行われる）。削除することによって一致させることができた場合は、一致したところの次のデータから最もタイムスタンプが大きいデータまでを差分の始点から終点までとして取得することができる。差分情報２３０を最後まで削除した場合は、対象のファイルはすべてが新しいデータであると判定する。このように、本発明によるファイル差分管理装置１０は、各データがタイムスタンプを持ち、古いデータから順次削除されるようなファイルに対しても差分検出できる。
【０１６９】
次に、ＤＢタイプと再帰タイプのファイルに対する差分管理の違いについて説明する。再帰タイプの差分管理対象ファイルに対する差分検出処理は、ステップＳ６０３における処理のみがＤＢタイプに対する処理と相違し、その他の処理は、同様である。
【０１７０】
ステップＳ６０３の処理において、「再帰タイプ」の差分管理対象ファイルの最も古いデータの位置を探索する場合、差分情報検出モジュール１０３は、データのタイムスタンプの前後関係を確認し、タイムスタンプが逆行している箇所で、その差が最も大きいところを最も古いデータの位置とする。
【０１７１】
例えば、次のようにデータが並んでいる場合、
「２００７／０３／０１  １０：１０：１０  ｍｓｇ＿Ａ」、「２００７／０３／０１  １０：１０：１１  ｍｓｇ＿Ｂ」、「２００７／０３／０１  １０：１０：１０  ｍｓｇ＿Ｃ」、「２００７／０２／０１  １０：１０：１１  ｍｓｇ＿Ｄ」、「２００７／０２／０１  １０：１０：１０  ｍｅｓｓａｇｅ＿Ｅ、
タイムスタンプが逆行し、その差が最も大きいデータ「２００７／０２／０１  １０：１０：１１  ｍｓｇ＿Ｄ」の位置を最も古いデータの位置とする。また、最も新しいデータの位置は、最も大きいデータの前にある「２００７／０３／０１  １０：１０：１０  ｍｓｇ＿Ｃ」の位置とする。
【０１７２】
以上のように、本発明によれば、ファイルのタイプが再帰タイプであっても、データスタンプに基づいて最も古いデータの位置や、最も新しいデータの位置を判別することができる。
【０１７３】
本発明では、ファイルの差分管理の範囲を同一グループ内のファイルとし、その中で前回差分検出時のファイル群と今回のファイル群のファイルのオブジェクト識別子、ファイルの作成日時、ファイル名などを用いて、同一ファイルかどうかを判定する。このため、ファイル名が変更されても、ファイルの差分管理を行うことができる。又、同一ファイルとして判定された場合、ファイルのサイズを用いて新たに追加されたデータの位置を取得することができる。この場合、本発明によるファイル差分管理装置１０は、ファイルの内容を比較することなく差分を検出できるため、前回差分検出ファイルの内容を保持する必要は無い。従って、差分管理に必要な記憶容量を小さくすることができる。
【０１７４】
又、データベースからタイムスタンプを持つデータを取り出したファイル（ＤＢタイプ）や、１つのファイルにタイムスタンプを持つデータを再帰的に出力するファイル（再帰タイプ）の場合、ファイル差分管理装置１０は、タイムスタンプに基づいて差分データ３００の始点及び終点を検出することができる。
【０１７５】
従って、本発明によれば、定期的にログファイルを収集するシステムにおいて、そのログファイルから新しいログデータのみを収集するための装置（プログラム）に適用できる。
【０１７６】
以上、本発明の実施例を詳述してきたが、具体的な構成は上記実施例に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。本実施例では、世代管理タイプ、ＤＢタイプ、再帰タイプの３つのタイプのグループが登録されたファイル差分管理装置を一例に説明したが、登録されるグループの種類や数は１以上であればこれに限らない。又、ファイル差分管理装置１０に取得される差分管理対象ファイル群２００は、複数種類のグループに対応するファイル群を含んでいても良い。
【図面の簡単な説明】
【０１７７】
【図１】図１は、本発明によるファイル差分管理装置の実施例における構成を示す図である。
【図２】図２は、本発明に係るグループ情報テーブルの構成を示す図である。
【図３】図３は、本発明に係る差分検出情報テーブルの構成を示す図である。
【図４】図４は、本発明による差分管理モジュールの実施例における構成を示す機能ブロック図である。
【図５】図５は、本発明によるファイル差分管理装置の実施例におけるグループ登録処理の動作を示すフロー図である。
【図６】図６は、本発明によるファイル差分管理装置の実施例における差分検出処理の全体動作を示すフロー図である。
【図７】図７は、本発明によるファイル差分管理装置の実施例における差分検出処理の動作を示すフロー図である。
【図８】図８は、本発明によるファイル差分管理装置の実施例における世代管理タイプ用差分検出処理の動作を示すフロー図である。
【図９】図９は、本発明によるファイル差分管理装置の実施例における差分データ出力処理の動作を示すフロー図である。
【図１０】図１０は、本発明によるファイル差分管理装置の実施例におけるＤＢタイプ用又は再帰タイプ用の差分検出処理の動作を示すフロー図である。
【符号の説明】
【０１７８】
１０：ファイル差分管理装置
１１：ＣＰＵ
１２：ＲＡＭ
１３：記憶装置
１４：入力装置
１５：出力装置
１６：Ｉ／Ｏインタフェース
２０：差分管理プログラム
２１：グループ情報テーブル
２２：差分検出情報テーブル
２３：差分管理対象格納部
２００：差分管理対象ファイル群
２１０：グループ情報
２２０：差分検出情報
２３０：差分情報
３００：差分データ
【図１】
0004324976.tif 000002
【図２】
0004324976.tif 000003
【図３】
0004324976.tif 000004
【図４】
0004324976.tif 000005
【図５】
0004324976.tif 000006
【図６】
0004324976.tif 000007
【図７】
0004324976.tif 000008
【図８】
0004324976.tif 000009
【図９】
0004324976.tif 000010
【図１０】
0004324976.tif 000011