(57)【要約】      （修正有）【課題】記憶装置への負荷を軽減させ、かつファイルを指定日時のバージョンに簡単に復帰させる。【解決手段】設定された時間間隔ごとにバックアップ・ファイルを生成し第１記憶装置１０ｂに記憶するバックアップ・ファイル生成部２１と、ファイルが変更されたことに応答して、差分データとして第２記憶装置１０ｃに記憶する差分データ取得部２２と、ユーザにより指定された日時の直前に生成されたバックアップ・ファイルを、第１記憶装置１０ｂ内より読み出すバックアップ・ファイル検索部２３と、読み出したバックアップ・ファイルに関連付けられた日時と指定された日時との間の差分データを、第２記憶装置１０ｃ内より読み出す差分データ検索部２４と、バックアップ・ファイルに、日時順に、差分データに含まれる変更内容を反映することにより、ファイルの指定された日時におけるバージョンを生成するバージョン生成部２５とを含む。【選択図】図２
2006277563.tif 000002
【特許請求の範囲】
【請求項１】
ファイルをユーザが指定した日時のバージョンに復帰させるためのバックアップ・システムであって、
前記ファイルに対して設定された時間間隔ごとにバックアップ・ファイルを生成し、当該バックアップ・ファイルを生成した日時と関連付けて第１記憶装置に記憶するバックアップ・ファイル生成部と、
前記ファイルが変更されることに応答して、変更内容を当該変更が行われた日時と関連付け、差分データとして第２記憶装置に記憶する差分データ取得部と、
ユーザにより指定された日時の直前に生成されたバックアップ・ファイルを、前記第１記憶装置内を検索して読み出すバックアップ・ファイル検索部と、
読み出した前記バックアップ・ファイルに関連付けられた日時と前記指定された日時との間の日時を有する差分データを、前記第２記憶装置内を検索して読み出す差分データ検索部と、
前記読み出したバックアップ・ファイルに、日時順に、読み出した前記差分データに含まれる前記変更内容を反映することにより、前記ファイルの前記指定された日時におけるバージョンを生成するバージョン生成部とを含む、システム。
【請求項２】
ユーザからのファイルの指定に応答して、指定された前記ファイルを、前記バックアップ・ファイルを生成すべきバックアップ対象のファイルとしてグループ化するグループ化部を含む、請求項１に記載のシステム。
【請求項３】
ファイルの変更頻度を計測する頻度計測部と、前記頻度が閾値を超えるか否かを判定する頻度判定部と、前記頻度が前記閾値を超えると判定した場合に、前記バックアップ・ファイルを生成する前記時間間隔を変更する時間間隔変更部とを含む、請求項１または２に記載のシステム。
【請求項４】
前記頻度判定部は、前記頻度が第２閾値を超えるか否かを判定する第２頻度判定部を含み、前記時間間隔変更部は、前記頻度が前記閾値を超えると判定した場合に、前記時間間隔を短縮させる時間短縮部と、前記頻度が前記第２閾値を超えないと判定された場合に、前記時間間隔を延長させる時間延長部とを含む、請求項３に記載のシステム。
【請求項５】
前記バックアップ・ファイル生成部は、生成した前記バックアップ・ファイルに対応するファイルを識別するためのファイル識別子と、前記バックアップ・ファイルが記憶される前記第１記憶装置内のバックアップ・ファイル・アドレスと、当該バックアップ・ファイルを生成した日時とを含むバックアップ・ファイル・アドレス情報を前記第１記憶装置に記憶し、前記バックアップ・ファイル検索部は、前記指定された日時の直前のバックアップ・ファイルを、前記バックアップ・ファイル・アドレス情報に含まれる前記ファイル識別子と前記日時とに基づいて検索し、前記バックアップ・ファイル・アドレスに基づいて読み出す、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記差分データ取得部は、前記差分データに対応するファイルを識別するためのファイル識別子と、前記差分データが記憶される前記第２記憶装置内の差分データ・アドレスと、前記ファイルが変更された日時とを含む前記差分データ・アドレス情報を前記第２記憶装置に記憶し、前記差分データ検索部は、前記読み出したバックアップ・ファイルに関連付けられた日時と前記指定された日時との間の日時を有する前記差分データを、前記差分データ・アドレス情報に含まれる前記ファイル識別子と前記日時とに基づいて検索し、前記差分データ・アドレスに基づいて読み出す、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
前記バックアップ・ファイル生成部は、複数のファイルの各々に対して設定された時間間隔ごとに、前記複数のファイルの各々に対し、バックアップ・ファイルを各々生成し、前記差分データ取得部は、各ファイルが変更されることに応答して、前記各ファイルに対応する差分データを記憶し、前記バックアップ・ファイル検索部は、前記各ファイルに対応する各バックアップ・ファイルを読み出し、前記差分データ検索部は、前記各ファイルに対応する各差分データを読み出し、前記バージョン生成部は、前記各ファイルに対応する前記指定された日時におけるバージョンをそれぞれ生成する、請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
前記差分データ取得部は、複数のコンピュータの各々による各ファイルの変更を、ネットワークを介して検出し、各コンピュータから各変更内容を、前記ネットワークを介して受信し、差分データとして前記第１記憶装置に記憶し、前記バックアップ・ファイル検索部は、前記複数のコンピュータのいずれかから送信される日時を指定する情報を受信し、前記各ファイルに対応する各バックアップ・ファイルを前記第１記憶装置から読み出す、請求項７に記載のシステム。
【請求項９】
ファイルをユーザが指定した日時のバージョンに復帰させるためにコンピュータに実行させるバックアップ方法であって、
前記ファイルに対して設定された時間間隔ごとにバックアップ・ファイルを生成させ、当該バックアップ・ファイルが生成された日時と関連付けて第１記憶装置に記憶させるステップと、
前記ファイルが変更されることに応答して、変更内容を当該変更が行われた日時と関連付け、差分データとして第２記憶装置に記憶させるステップと、
ユーザにより指定された日時の直前に生成されたバックアップ・ファイルを、前記第１記憶装置内を検索して読み出させるステップと、
読み出された前記バックアップ・ファイルに関連付けられた日時と前記指定された日時との間の日時を有する差分データを、前記第２記憶装置内を検索して読み出させるステップと、
前記読み出されたバックアップ・ファイルに、日時順に、読み出された前記差分データに含まれる前記変更内容を反映させ、前記ファイルの前記指定された日時におけるバージョンを生成させるステップとを含む、方法。
【請求項１０】
ファイルをユーザが指定した日時のバージョンに復帰させるためのバックアップ方法をコンピュータに実行させるためのプログラムであって、
前記ファイルに対して設定された時間間隔ごとにバックアップ・ファイルを生成し、当該バックアップ・ファイルを生成した日時と関連付けて第１記憶装置に記憶するステップと、
前記ファイルが変更されることに応答して、変更内容を当該変更が行われた日時と関連付け、差分データとして第２記憶装置に記憶するステップと、
ユーザにより指定された日時の直前に生成されたバックアップ・ファイルを、前記第１記憶装置内を検索して読み出すステップと、
読み出した前記バックアップ・ファイルに関連付けられた日時と前記指定された日時との間の日時を有する差分データを、前記第２記憶装置内を検索して読み出すステップと、
前記読み出したバックアップ・ファイルに、日時順に、読み出した前記差分データに含まれる前記変更内容を反映することにより、前記ファイルの前記指定された日時におけるバージョンを生成するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルをユーザが指定する日時のバージョンに復帰させるためのバックアップ・システム、バックアップ方法およびコンピュータに該方法を実行させるためのプログラムに関する。
【背景技術】
【０００２】
重要なファイルに書き込みを行っている際、フリーズしたり、バグを生じたりして、リブートしなければならなくなった場合、これまでに行った作業を取り戻すことができない。また、そのファイル自体が壊れてしまった場合、再度作成しなければならない。しかしながら、そのファイルをバックアップしておけば、現在の時刻に最も近いバックアップ・ファイルを読み出し、わずかな書き込みを行うことで、復元を容易にすることができる。ユーザが書き込みを行い、ファイルを更新したものの、その書き込みが誤りであることに気づき、ある日時のファイルのバージョンに戻したいことがある。この場合も、適宜バックアップを行っておけば、その日時に近いバックアップ・ファイルを読み出し、わずかな書き込みを行うことで、その日時のバージョンに復帰させることができる。
【０００３】
ファイルを前の状態に戻して、前のバージョンに復帰させる場合、ワードプロセッサやプレゼンテーション・ソフトウェアなどのアプリケーションがもつ「元に戻す（ＵＮＤＯ）」という機能を使用して、前の状態に戻すことができる。この機能は、アプリケーションの使用中、何らかの誤操作をしたときに、その操作を無効にして操作前の状態に戻すために使用されている。アプリケーションによっては、自動バックアップ・システムを備えるものがある。この自動バックアップ・システムでは、予め設定された時間間隔でコンピュータが自動的にファイルのコピーを生成し、ハードディスクなどの記憶装置に記憶させることにより、バックアップを行っている。複数のファイルを同時に扱うプロジェクトにおいて、それら複数のファイルをバックアップする場合や、コンピュータのハードディスク内のすべてのファイルのバックアップを行う場合などのように、複数のファイルをバックアップする必要がある場合には、専用のバックアップ・ソフトウェアが使用されている。この専用のバックアップ・ソフトウェアでは、個別のファイルの更新情報を随時取得するのではなく、バックアップを行った時点の内容を記憶させている。あるバックアップ・アプリケーションでは、最短１５分単位で、ファイル全体をコピーし、ハードディスクなどの記憶装置に記憶させている。
【０００４】
上記のＵＮＤＯ機能では、ある程度前の状態に戻すことができるものの、時刻と関連付けられていないため、ユーザが指定した日時のバージョンに戻すことはできない。また、１つのファイルを前の状態に戻すのみであるため、複数のファイルを、同期をとって同一日時のバージョンに復帰させることはできない。専用のバックアップ・ソフトウェアでは、バックアップを行った日時のバージョンに復帰させることはできるものの、それ以外の日時のバージョンに復帰させることはできない。例えば、１つ前に行ったバックアップと、今回行うバックアップとの間に、２以上の書き込みがあった場合、１つの書き込みがあった後のバージョンは生成されないため、その１つの書き込みがあった後の日時のバージョンに復帰させることはできない。また、複数のファイルの各々について、同じ時刻に同時にバックアップを行ったとしても、ファイル・サイズの差によって、バックアップ・ファイルを生成し、記憶されるまでに時間差を生じ、同一日時に揃えることはできない。また、専用のバックアップ・ソフトウェアでは、バックアップを行うごとにファイル全体をコピーして記憶させるため、膨大なデータ量となり、大容量の記憶装置が必要となる。さらに、最短１５分という制約があるため、１５分前のバージョンにしか復帰させることができない。
【０００５】
専用のバックアップ・アプリケーションには、現在のファイルと、１つ前のファイルを比較し、書き込みなどで追加されたデータのみの差分データを生成し、その差分データを記憶装置に記憶させるものがある。このアプリケーションでは、ファイル全体のコピーを記憶させるのではなく、ファイル全体のファイル・サイズに比較して小さいサイズの差分データを生成して記憶させるため、記憶装置に記憶させるデータ量を低減し、記憶装置への負荷を低減させている。しかしながら、このアプリケーションは、ユーザからの書き込みに応答して、オペレーティング・システム（以下、ＯＳという。）がファイルにアクセスすることを監視しないため、スケジュールした時間間隔で、現在のバージョンと、その前のバージョンとを全体比較して差分データを抽出するのみである。このように、更新情報を随時取得するものではないため、このアプリケーションにおいても、バックアップを行った日時以外のバージョンには復帰させることができない。また、このアプリケーションは、スケジュールできる時間間隔が最短１０分程度という制約があり、１０分前のバージョンにしか復帰させることができない。
【０００６】
そこで、ＯＳが特定ファイルへアクセスするのを監視し、任意の時刻におけるバージョンに復帰させる方法が提案されている（特許文献１参照）。この方法では、ＯＳが特定ファイルへアクセスするのを監視し、行われた書き込み操作情報を記憶する。書き込み操作情報は、ファイル内の位置、書き込むデータである。したがって、記憶させるデータ量を少なくすることができ、記憶装置への負荷を軽減できるとともに、任意の時刻におけるバージョンに復帰させることができる。しかしながら、この方法は、ファイルを任意の時刻に復帰させることができるものの、復帰させる場合、「元に戻す（ＵＮＤＯ）」操作をし、指定する時刻まで遡らなければならない。このため、記憶した書き込み操作情報からＵＮＤＯ操作の内容を生成しなければならない。ファイルの一手段分を消去した場合、書き込み操作からＵＮＤＯ操作に必要な情報を取得することは単純な処理ではなく、また、頻繁に更新する大量のＵＮＤＯ操作を順に実行しなければならず、簡単に所定日時のバージョンに復帰させることができない。
【０００７】
１つのプロジェクトにおいて、互いに密接に関連する複数のファイルを複数のユーザが扱う場合、それらの複数のファイルを同じ時刻のバージョンに復帰させ、その時刻から書き込みをやり直したいというニーズがある。また、個人で複数のファイルを扱っており、それら複数のファイルを同じ時刻のバージョンに復帰させたいといったニーズや、複数のユーザがネットワークを介してそのネットワークに接続されるデータベース内の複数のファイルをアクセスし、ファイルを更新するために書き込み操作を行う場合、データベース内のそれら複数のファイルを同じ時刻のバージョンに復帰させたいといったニーズ、１つのファイルを、特定の時刻のバージョンに復帰させ、その時刻のバージョンからやり直したいといったニーズなどがある。従来の専用のバックアップ・アプリケーションでは、１つのファイルを任意の時刻のバージョンに復帰させることができるものの、操作が複雑であり、また、複数のファイルを同一日時のバージョンに復帰させることはできないといった問題があった。ユーザ・コンピュータやサーバ、別途設置される記憶装置には、データを記憶できる容量に制限があるため、記憶装置への負荷を軽減することができ、また、複雑な処理を要することなく、ファイルを、ユーザが指定する日時のバージョンに簡単に復帰させることができるシステムや方法の提供が望まれている。
【特許文献１】特開２００１−１０９５５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、記憶装置への負荷を軽減させ、かつファイルを指定日時のバージョンに簡単に復帰させることができるバックアップ・システム、バックアップ方法およびコンピュータにバックアップを実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明らが鋭意検討した結果、定期的にファイル全体のコピーを生成してバックアップ・ファイルとして記憶させ、その間は書き込みや削除などによる変更分のみを差分データとして記憶させることで、記憶装置への負荷を軽減させることができ、記憶させる際、日時を関連付けて記憶させ、ユーザによる日時の指定を受けて、日時を基に、指定された日時の直前のバックアップ・ファイルを検索して読み出し、そのバックアップ・ファイルに関連付けられた日時と指定日時との間の日時を有する差分データを検索して読み出し、そのバックアップ・ファイルの内容に、差分データを反映することで、簡単に指定時刻におけるバージョンに復帰させることができることを見出した。上記課題は、本発明のバックアップ・システム、方法およびコンピュータにバックアップを実行させるためのプログラムを提供することにより解決される。
【００１０】
すなわち、本発明のバックアップ・システムは、ファイルに対して設定された時間間隔ごとにバックアップ・ファイルを生成し、当該バックアップ・ファイルを生成した日時と関連付けて第１記憶装置に記憶するバックアップ・ファイル生成部と、上記ファイルが変更されることに応答して、変更内容を当該変更が行われた日時と関連付け、差分データとして第２記憶装置に記憶する差分データ取得部と、ユーザにより指定された日時の直前に生成されたバックアップ・ファイルを、上記バックアップ・ファイルに関連付けられた日時に基づいて上記第１記憶装置内を検索し、該第１記憶装置から読み出すバックアップ・ファイル検索部と、読み出したバックアップ・ファイルに関連付けられた日時と上記指定された日時との間の日時を有する差分データを、上記変更内容に関連付けられた日時に基づいて上記第２記憶装置内を検索し、該第２記憶装置から読み出す差分データ検索部と、読み出したバックアップ・ファイルに、日時順に、読み出した差分データに含まれる変更内容を反映することにより、上記ファイルの上記指定された日時におけるバージョンを生成するバージョン生成部とを含む。
【００１１】
ここで、第１記憶装置および第２記憶装置は、同じものであっても、別個のものであってもよい。また、第１記憶装置および第２記憶装置は、ユーザが使用するコンピュータ内にあるハードディスク、別途設置される外付けハードディスク、フレキシブルディスク、ＭＤ（mini disc）、ＣＤ（compact disc）、ＤＶＤ（digital video disk）、メモリカード、メモリスティック、サーバ内にあるハードディスク、その他記憶装置とすることができる。第１記憶装置および第２記憶装置は、ネットワークに個別に接続されていてもよく、ユーザは、ネットワークに接続されたコンピュータを使用して、ネットワークを介してファイルを読み出し、内容を変更することができる。
【００１２】
本発明によれば、ユーザが指定したファイルのみをバックアップ対象とするため、ユーザからのファイルの指定に応答して、指定されたファイルを、バックアップ・ファイルを生成すべきバックアップ対象のファイルとしてグループ化するグループ化部をさらに含むことができる。
【００１３】
また、本発明によれば、ファイル更新の頻度に応じてバックアップ作業を行う時間間隔を変更し、バックアップ作業の効率化を図るため、ファイルへの変更頻度を計測する頻度計測部と、頻度が閾値を超えるか否かを判定する頻度判定部と、頻度が閾値を超えると判定された場合に、バックアップ・ファイルを生成する時間間隔を変更する時間間隔変更部とを含むことができる。
【００１４】
なお、閾値の上限のみならず、下限も設定するため、頻度判定部は、頻度が第２閾値を超えるか否かを判定する第２頻度判定部をさらに含むことができ、時間間隔変更部は、頻度が閾値を超えると判定した場合に、時間間隔を短縮させる時間短縮部と、頻度が第２閾値を超えないと判定した場合に、時間間隔を延長させる時間延長部を含むことができる。
【００１５】
また、本発明によれば、バックアップ・ファイルを検索し、読み出す効率を向上させるために、バックアップ・ファイル生成部は、生成したバックアップ・ファイルに対応するファイルを識別するためのファイル識別子と、バックアップ・ファイルが記憶される第１記憶装置内のバックアップ・ファイル・アドレスと、バックアップ・ファイルを生成した日時とを含むバックアップ・ファイル・アドレス情報を記憶することが好ましい。この場合、バックアップ・ファイル検索部は、指定された日時の直前のバックアップ・ファイルを、バックアップ・ファイル・アドレス情報に含まれるファイル識別子と日時とに基づいて検索し、バックアップ・ファイル・アドレスに基づいて読み出すことができる。
【００１６】
また、差分データ取得部は、差分データに対応するファイルを識別するためのファイル識別子と、差分データが記憶される第２記憶装置内の差分データ・アドレスと、ファイルが変更された日時とを含む差分データ・アドレス情報を記憶することが好ましい。こうすることにより、差分データ検索部は、読み出したバックアップ・ファイルに関連付けられた日時と指定された日時との間の日時を有する差分データを、差分データ・アドレス情報に含まれるファイル識別子と日時とに基づいて検索し、差分データ・アドレスに基づいて読み出すことができる。
【００１７】
本発明によれば、複数のファイルを同一日時のバージョンに復帰させることもでき、この場合、バックアップ・ファイル生成部は、複数のファイルの各々に対して設定された時間間隔ごとに、複数のファイルの各々に対し、バックアップ・ファイルを各々生成し、差分データ取得部は、各ファイルが変更されることに応答して、各ファイルに対応する差分データを取得して記憶し、バックアップ・ファイル検索部は、各ファイルに対応する各バックアップ・ファイルを読み出し、差分データ検索部は、各ファイルに対応する各差分データを読み出し、バージョン生成部は、各ファイルに対応する指定された日時におけるバージョンをそれぞれ生成する。
【００１８】
本発明によれば、ネットワークに接続される複数のコンピュータとサーバとを含むネットワーク環境において実施することができ、この場合、本発明のバックアップ・システムは、サーバに含まれ、バックアップ・ファイル生成部が、複数のファイルの各々に対して設定された時間間隔で、各ファイルに対する各バックアップ・ファイルを生成し、差分データ取得部が、複数のコンピュータの各々による各ファイルの変更を検出し、各コンピュータから各変更内容を受信し、差分データとして記憶し、バックアップ・ファイル検索部が、複数のコンピュータのいずれかから送信される日時を指定する情報を受信し、各ファイルに対応する各バックアップ・ファイルを読み出すことができる。
【００１９】
ユーザが指定した日時のバージョンに復帰させるためのシステムとして構成する場合、指定日時のバージョンに復帰させるためのバックアップ方法を実行させるプログラムと、そのプログラムを実行するプロセッサとして構成し、該プロセッサを、上記各部として機能させることができる。
【００２０】
本発明では、上記システムのほか、ファイルをユーザが指定した日時のバージョンに復帰させるためにコンピュータに実行させるバックアップ方法を提供する。また、本発明では、上記方法をコンピュータに実行させるためのプログラムとして構成することができ、このプログラムは、コンピュータやサーバに設けられるハードディスクといった記録媒体、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＤや外付けハードディスクといった記録媒体に格納することができる。
【発明の効果】
【００２１】
本発明のバックアップ・システム、バックアップ方法およびプログラムを提供することにより、ファイルを指定日時のバージョンに簡単に復帰させることが可能となる。また、複数のファイルを同一日時のバージョンに復帰させることも可能となる。さらに、記憶装置への負荷も軽減することができ、バックアップ効率を向上させることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を図面に示した具体的な実施の形態に沿って説明するが、本発明は、後述する実施の形態に限定されるものではない。本発明のバックアップ・システムについて説明する前に、本発明のバックアップ・システムが組み込まれるコンピュータ・システムを説明する。
【００２３】
図１は、本発明のバックアップ・システムを組み込んだコンピュータ・システムの実施例を示した図である。図１には、複数のコンピュータ１０がネットワーク１１に接続され、ネットワーク１１にはサーバ１２や記憶装置１３が接続されている。これら複数のコンピュータ１０やサーバ１２には、ワードプロセッサ、プレゼンテーション・ソフトウェア、表計算ソフトウェアなどの複数のアプリケーション、ファイルの管理、メモリの管理、入出力の管理、ユーザーインターフェースの提供を行うＯＳなどが記憶されており、起動することによって読み出され、実行される。ユーザは、個々のコンピュータ１０を使用し、ＯＳおよびアプリケーションを起動させ、コンピュータ１０内のハードディスクやメモリなどの記憶装置１０ａからファイルを読み出し、書き込みまたは削除を行うなどしてファイルを更新する。また、ユーザは、ネットワーク１１に接続された他のコンピュータ１０、サーバ１２、記憶装置１３に、ネットワーク１１を介してアクセスすることができ、それらに記憶される複数のファイルを読み出し、書き込みまたは削除するなどしてファイル内容を変更し、ファイルを更新する。バックアップ・ファイルは、ファイルと同じ記憶装置に記憶することもできるが、ファイルを記憶する記憶装置が故障などした場合にバックアップ・ファイルが使用できるように、ファイルを記憶する記憶装置とは別の記憶装置に記憶されるのが好ましい。また、バックアップ・ファイルは、本発明のバックアップ・システムにより、ユーザにより設定された時間間隔ごと、または、デフォルトの時間間隔ごとに生成される。以下、ファイル内容の変更を、書き込みによるものとして説明する。
【００２４】
本発明のバックアップ・システムは、後述する各部として構成され、コンピュータ１０内またはサーバ１２内に含まれる。コンピュータ１０内に含まれる場合、バックアップ・システムは、予め設定された時間間隔で、バックアップ・ファイルを生成して、コンピュータ１０に接続される記憶装置１０ｂに記憶し、この間に、ユーザによる書き込みがあった場合、これを検知し、変更内容となる書き込みデータを取得し、記憶装置１０ｃに記憶する。ユーザが、ある日時のバージョンに復帰させるため、入力手段を使用して入力し、日時を指定すると、バックアップ・システムは、それに応答して、その指定日時の直前のバックアップ・ファイルを記憶装置１０ｂから読み出し、そのバックアップ・ファイルが生成された日時と指定日時との間の書き込みデータを記憶装置１０ｃから読み出し、書き込みデータを反映し、復帰させるべきバージョンを生成する。ここでは、記憶装置１０ａ、１０ｂ、１０ｃを別個のものとして示しているが、これらは同じものでも、記憶装置１０ｂ、１０ｃが同じで、記憶装置１０ａとは異なるものであってもよい。すべてが同じものの場合、記憶装置は、コンピュータ１０内のハードディスクとすることができ、記憶装置１０ａと、記憶装置１０ｂ、１０ｃとが異なる場合、記憶装置１０ａをハードディスクとし、記憶装置１０ｂ、１０ｃを外付けハードディスク、フレキシブル・ディスク、ＭＤ、ＣＤなどとすることができる。
【００２５】
サーバ１２内に含まれる場合には、個々のコンピュータ１０に含まれる必要はなく、上記と同様、予め設定された時間間隔で生成されるバックアップ・ファイルを、例えば、ネットワーク１１に接続される記憶装置１３に記憶し、その間にコンピュータ１０において書き込みがあった場合、ネットワーク１１を介してこれを検出し、ネットワーク１１を介して書き込みデータを取得し、記憶装置１３に記憶させる。ユーザが、ある日時のバージョンに復帰させるため、コンピュータ１０に日時を入力し、日時を指定すると、サーバ１２は、ネットワーク１１を介して日時が指定されたことを検出し、その指定日時の直前に生成されたバックアップ・ファイルを記憶装置１３から読み出し、そのバックアップ・ファイルが生成された日時と指定日時との間の書き込みデータを読み出し、書き込みデータを反映し、復帰させるべきバージョンを生成する。生成されたバージョンは、ネットワーク１１を介してコンピュータ１０に送信することもできるし、記憶装置１３に記憶し、コンピュータ１０からの読み出し要求に応答して、サーバ１２が記憶装置１３から読み出し、コンピュータ１０に送信することもできる。
【００２６】
図２に、本発明のバックアップ・システムの詳細を示す。本発明のバックアップ・システム２０は、ファイルに対して設定された時間間隔ごとに、バックアップ・ファイルを生成し、そのバックアップ・ファイルを生成した日時と関連付けて第１記憶装置１０ｂに記憶するバックアップ・ファイル生成部２１と、ユーザからのファイルへの書き込みに応答して、書き込みデータを、書き込みが行われた日時と関連付け、差分データとして第２記憶装置１０ｃに記憶する差分データ取得部２２と、ユーザにより指定された日時の直前に生成されたバックアップ・ファイルを、第１記憶装置１０ｂ内を検索して読み出すバックアップ・ファイル検索部２３と、読み出したバックアップ・ファイルに関連付けられた日時と指定された日時との間の日時を有する差分データを、第２記憶装置１０ｃ内を検索して読み出す差分データ検索部２４と、読み出したバックアップ・ファイルに、日時順に、読み出した差分データに含まれる書き込みデータを反映することにより、ファイルの指定された日時におけるバージョンを生成するバージョン生成部２５を含んで構成される。第１記憶装置１０ｂおよび第２記憶装置１０ｃは、同じものであってもよいが、ここでは異なるものとして説明する。
【００２７】
各部について以下に詳述する。バックアップ・ファイル生成部２１は、ファイルに対して、例えば、ユーザが予め設定した時間間隔ごとにバックアップ・ファイルを生成する。具体的には、設定した時間間隔ごとに、第１記憶装置１０ｂおよび第２記憶装置１０ｃとは別に設けられる記憶装置１０ａからファイルを読み出し、そのファイルのコピーを生成することにより、バックアップ・ファイルを生成する。また、バックアップ・ファイル生成部２１は、生成したバックアップ・ファイルを、そのバックアップ・ファイルを生成した日時と関連付け、第１記憶装置１０ｂに記憶する。このデータ構造については後述する。なお、ＯＳ２７は、ファイルを管理するものであり、ファイルの読み出し、書き込み、記憶は、ＯＳ２７を介して行われる。
【００２８】
差分データ取得部２２は、ユーザが入力手段２６を使用して、記憶装置１０ａからファイルを読み出し、書き込みを行ったことを検出し、その書き込みデータを取得する。入力手段２６は、書き込みといったイベントを生じさせ、ＯＳ２７がそれを検出する。ＯＳ２７は、記憶装置１０ａ内に格納されているファイルへアクセスし、書き込み命令を実行し、書き込み位置、サイズ、データをファイルに適用し、ファイル更新する。差分データ取得部２２は、常時、ＯＳ２７によるファイルへのアクセスを監視し、アクセスがあった場合、これを検出して、ＯＳ２７から、書き込み位置、サイズ、書き込みデータ、書き込みが行われた日時を取得する。差分データ取得部２２は、書き込みデータに、取得した日時を関連付け、これを差分データとして、第２記憶装置１０ｃに記憶する。この差分データ取得部２２は、このデータ構造についても後述する。
【００２９】
バックアップ・ファイル検索部２３は、ユーザが復帰させるバージョンの日時を指定したことに応答して、対象となるバックアップ・ファイルを検索する。検索すべきバックアップ・ファイルは、指定された日時の直前に生成されたバックアップ・ファイルである。バックアップ・ファイル検索部２３は、第１記憶装置１０ｂに記憶されるバックアップ・ファイルに関連付けられた日時を指定された日時と比較し、指定された日時より前で、かつ指定された日時に最も近い日時が関連付けられたバックアップ・ファイルを検索し、読み出す。
【００３０】
差分データ検索部２４は、対象となる差分データを検索する。検索すべき差分データは、バックアップ・ファイル検索部２３によって読み出されたバックアップ・ファイルに関連付けられた日時と、指定された日時との間の日時を有する差分データである。差分データ検索部２４は、第２記憶装置１０ｃに記憶される差分データに含まれる日時が、上記間に入るか否かを判断し、その間に入る差分データを検索して読み出す。読み出された差分データが２以上ある場合には、日時順に配列される。
【００３１】
バージョン生成部２５は、読み出されたバックアップ・ファイルに、日時順に配列された差分データを反映する。具体的には、書き込み命令を実行し、差分データに含まれる書き込みデータを、書き込み位置として与えられるデータを基に、バックアップ・ファイルの所定位置に書き込み、そのファイルの指定された日時におけるバージョンを生成する。
【００３２】
図２に示すバックアップ・システム２０は、１つのファイルを指定した日時のバージョンに復帰させるだけではなく、複数のファイルを同一日時のバージョンに復帰させることもできる。複数のファイルを同一日時のバージョンに復帰させる場合、バックアップ・ファイル生成部２１は、複数のファイルの各々に対して設定された時間間隔ごとに、複数のファイルの各々に対し、バックアップ・ファイルを各々生成することができ、第１記憶装置１０ｂに記憶することができる。差分データ取得部２２は、各ファイルへの書き込みに応答して、各ファイルに対応する差分データを第２記憶装置１０ｃに記憶することができる。また、バックアップ・ファイル検索部２３は、各ファイルに対応する各バックアップ・ファイルを読み出すことができ、差分データ検索部２４は、各ファイルに対応する各差分データを読み出すことができる。バージョン生成部２５は、各ファイルに対応する指定された日時におけるバージョンをそれぞれ生成することができる。
【００３３】
また、図２に示すバックアップ・システム２０は、図１に示すサーバ１２内に格納することができ、このサーバ１２と複数のコンピュータ１０とがネットワーク１１に接続され、複数のコンピュータ１０により複数のファイルを更新し、サーバ１２によりバックアップ作業を行うことができる。この場合、差分データ取得部２２は、複数のコンピュータ１０の各々による各ファイルへの書き込みを、ネットワーク１１を介して検出し、各ユーザ・コンピュータ１０から各書き込みデータを、ネットワーク１１を介して受信し、差分データとして記憶装置１３に記憶し、バックアップ・ファイル検索部２３は、複数のユーザ・コンピュータ１０のいずれかから送信される日時を指定する情報を受信し、各ファイルに対応する各バックアップ・ファイルを記憶装置１３から読み出すことができる。
【００３４】
図３は、本発明のバックアップ・システムの別の実施形態を示した図である。図３に示すバックアップ・システムに含まれるバックアップ・ファイル生成部２１、差分データ取得部２２、バックアップ・ファイル検索部２３、差分データ検索部２４、バージョン生成部２５は、図２に示すものと同様であるため、ここでは省略する。図３に示すシステム３０では、さらに、ユーザが指定したファイルのみをバックアップ対象とするため、ユーザからのファイルの指定に応答して、指定されたファイルを、バックアップ・ファイルを生成すべきバックアップ対象のファイルとしてグループ化するグループ化部３１を含んでいる。グループ化は、ウィンドウやアイコンなどを画像として表示するグラフィカル・ユーザ・インタフェース（ＧＵＩ）を用いる場合、本発明のシステムによって管理されるフォルダ３２を表示装置３３上に生成しておき、そのフォルダ３２に、バックアップ対象にするファイル３４を、ユーザがマウスなどのポインティング・デバイス３５を使用してドラッグ・アンド・ドロップすることで、１群のグループにグループ化させることができる。グループ化されたファイルは、グループ化されていないファイルと区別するため、例えば、ファイル識別子が割り当てられる。ファイル識別子は、グループ化された各ファイルを識別することができるものであれば、数字、記号、文字、これらを組み合わせたものとすることができ、いかなる桁、文字数であってもよい。このファイル識別子は、以下に説明するファイル識別子と同じものであっても、異なるものであってもよい。本発明では、記憶装置１０ｂ、１０ｃの記憶容量に制限があることから、バックアップ対象にするファイルをユーザが指定し、バックアップ対象となるファイル数を少なくするほうが好ましい。
【００３５】
図３では、さらに、書き込み頻度に応じてバックアップ作業を行う時間間隔を変更し、バックアップ作業の効率化を図るため、ファイルへの書き込み頻度を計測する頻度計測部３６と、頻度が閾値を超えるか否かを判定する頻度判定部３７と、頻度が閾値を超えると判定された場合に、バックアップ・ファイルを生成する時間間隔を変更する時間間隔変更部３８とを含んだ構成とされている。このように、書き込み頻度の多いものに対して、時間間隔を短く変更することにより、その間の書き込み回数を減少させ、日時が指定された際の、その日時におけるバージョンの生成において、バックアップ・ファイルに反映する書き込みデータを減少させて、バックアップ作業の効率化を図ることができる。頻度計測部３６は、カウンタとすることができ、このカウンタは、ハードウェアとすることもできるし、ソフトウェアで、例えば、８ビットデータとし、１回では、「０００００００１」、２回では、「００００００１０」というように、書き込みを検出するごとにカウントさせることができる。このカウンタは、バックアップ・ファイルが生成されてから、次に、バックアップ・ファイルが生成されるまでのファイル更新回数をカウントする。したがって、この間のカウントが終了した後は、カウンタを０にし、新たにカウントを開始する。なお、カウンタは、ＯＳがファイルへのアクセスを行ったことに応答して、カウントすることができる。
【００３６】
また、閾値の下限を設定するため、頻度判定部３７は、頻度が第２閾値を超えるか否かを判定する第２頻度判定部３７ａを含むことができ、時間間隔変更部３８は、頻度が閾値を超えると判定された場合に、時間間隔を短縮させる時間短縮部３８ａと、頻度が第２閾値を超えないと判定された場合に、時間間隔を延長させる時間延長部３８ｂとを含む構成とされている。この構成により、ユーザによる書き込み頻度の多いファイルに対しては、時間間隔を短く、頻度の少ないファイルに対しては、時間間隔を長くして、記憶装置への負荷を軽減させることができる。
【００３７】
例えば、ファイルＡについて、バックアップ・ファイルを生成する時間間隔を１０分で設定し、閾値を１０と設定しておき、ユーザがこの１０分間にファイルＡの更新を１１回行ったとする。頻度計測部３６は、更新回数を計測して１１回という情報を取得する。頻度判定部３７は、この更新回数１１回を閾値１０と比較し、閾値を超えると判断する。時間間隔変更部３８は、これまで時間間隔１０分と設定していたものを、例えば９分に設定する。時間間隔変更部３８によって９分に設定されると、それ以降、バックアップ・ファイル生成部２１は、９分ごとにファイルＡについてバックアップ・ファイルを生成する。
【００３８】
本発明では、さらに、ユーザの選択により、選択されたファイルのみをユーザ指定日時におけるバージョンに復帰させる選択部３９を設けることができる。この選択部３９は、ユーザが日時を指定するとともに、ファイルを指定することを受けて、指定されたファイルをグループ化し、そのグループ化されたファイルのみを検索するように、上記バックアップ・ファイル検索部２３および差分データ検索部２４に指示する。選択部３９は、例えば、復帰ファイル識別子を割り当て、バックアップ・ファイル検索部２３および差分データ検索部２４に、その割り当てられたファイルのバックアップ・ファイルおよび差分データのみを検索させることができる。この選択部３９は、必要に応じて設けることができる。
【００３９】
ここで、図４に、バックアップ・ファイルのデータ構造および差分データの１つの実施例を示す。図４（ａ）に、バックアップ・ファイルのデータ構造を、図４（ｂ）に、差分データのデータ構造をそれぞれ示す。図４（ａ）に示すデータ構造４０は、バックアップ対象となっているファイルのファイル名４１と、バックアップ・ファイル・データ４２と、バックアップ・ファイルを生成した日時４３とから構成される。ファイル名４１は、ネットワークを介してアクセスするファイルの場合、ＵＲＬ（Uniform Resource Locator）とすることができ、図４（ａ）では、www.abc.com/finance/data/2004/01.datとされている。ここで、www.abc.comは、マシン名であり、それ以降がマシン内のファイル名を示している。このファイル名は、データ長が変更可能であることから、可変長データとされている。また、バックアップ・ファイル・データのデータ長も変更可能であることから、可変長データとされている。しかしながら、日時に関しては、一定のデータ長であることから、固定長データとされている。
【００４０】
図４（ｂ）に示すデータ構造４４は、ファイル名４５と、ファイルに書き込まれたデータの位置を示す書き込み位置４６と、書き込まれたデータのサイズ４７と、書き込まれたデータ４８と、書き込まれた日時４９とから構成される。上記と同様、ファイル名４５、データ４８は、可変長データであり、その他の位置４６、サイズ４７、日時４９は、固定長データである。位置４６は、データ４８を、バックアップ・ファイルのどの位置に書き込むかを示す。位置４６は、例えば、先頭からのバイト数などで示すことができる。
【００４１】
図５は、バックアップ作業を効率化するために、データ構造を、バックアップ・ファイル・データおよび書き込みデータを指し示すバックアップ・ファイルのデータ・レコードおよびファイル更新情報のデータ・レコードとして示した図である。図５（ａ）に、バックアップ・ファイルのデータ・レコードを、図５（ｂ）に、ファイル更新情報のデータ・レコードをそれぞれ示す。図５（ａ）に示すデータ・レコード５０は、ファイルを識別するためのファイル識別子５１と、バックアップ・ファイル・データが存在するバックアップ・ファイル・アドレス５２と、バックアップ・ファイルを生成した日時５３とから構成される。ファイル識別子５１は、ファイル名と関連付けられ、対応表データとして第１記憶装置および第２記憶装置に別途格納される。ファイル識別子５１、バックアップ・ファイル・アドレス５２、日時５３はすべて、固定長データである。これらを含むデータ・レコードは、固定長となり、記憶装置内の記憶領域に規則正しく配列して記憶することができ、この結果、検索および読み出しが容易となるため、処理時間を短くすることができる。
【００４２】
図５（ｂ）に示すデータ・レコード５４は、ファイル識別子５５と、ファイルに書き込まれたデータの位置を示す書き込み位置５６と、書き込まれたデータのサイズ５７と、書き込まれたデータ５８と、書き込まれた日時５９とから構成される。このデータ・レコード５４は、すべてのデータが、固定長データであることから、固定長データ・レコードとなる。このため、このデータ・レコード５４を適用することで、処理時間を短くすることができる。
【００４３】
データ・レコード５４の場合、図２および図３に示すバックアップ・ファイル生成部２１は、生成されたバックアップ・ファイルに、ファイルを識別するためのファイル識別子５１を割り当て、データ・レコード５０のバックアップ・ファイル・アドレス情報を生成し、このバックアップ・ファイル・アドレス情報を第１記憶装置に記憶し、バックアップ・ファイル検索部２３は、バックアップ・ファイル・アドレス情報に含まれるファイル識別子５１と日時５３とに基づいて検索し、バックアップ・ファイル・アドレス５２に基づいて目的のバックアップ・ファイルを読み出すことができる。
【００４４】
差分データ取得部２２は、データ・レコード５４の差分データ・アドレス情報となる書き込みデータ・アドレス情報を生成し、第２記憶装置に記憶し、差分データ検索部２４は、読み出されたバックアップ・ファイルに関連付けられた日時と指定された日時との間の日時を有する差分データを、書き込みデータ・アドレス情報に含まれるファイル識別子５５と日時５９とに基づいて検索し、書き込みデータ・アドレス５８に基づいて読み出すことができる。
【００４５】
ここで、複数のファイルのバックアップ・ファイルおよび書き込みデータを記憶装置に記憶させるフローを、時刻とともに図６に示す。図６には、ファイルＡ、ファイルＢ、ファイルＣといった３つのファイルのみが示され、異なる時間間隔で、各ファイルのバックアップ・ファイルが生成され、また、各ファイルへの書き込みが任意に行われているのが示されている。ファイルＡは、ユーザによって時間間隔ＴＡごとにバックアップ・ファイルを生成するように設定されている。本発明のバックアップ・システムは、ファイルＡについて、バックアップ・ファイルＡ１を生成し、時間ＴＡ経過後、バックアップ・ファイルＡ２を生成する。本発明のバックアップ・システムは、これらのバックアップ・ファイルを、生成した日時と関連付けて第１記憶装置に記憶する。このファイルＡは、この間、ユーザによって３度の書き込みが行われている。バックアップ・システムは、ユーザによって書き込まれたファイルＡへの書き込みデータａ１、ａ２、ａ３を取得し、書き込みデータａ１、ａ２、ａ３のそれぞれを、書き込みが行われた日時と関連付けて第２記憶装置に記憶する。ファイルＢも、ユーザによって設定されるが、ファイルＡとは異なる時間間隔ＴＢに設定されている。したがって、バックアップ・ファイルＢ１を生成する日時も、バックアップ・ファイルＡ１を生成する日時とは異なる日時となっている。バックアップ・システムは、ファイルＢについて、バックアップ・ファイルＢ１を生成し、時間ＴＢの経過後、バックアップ・ファイルＢ２を生成する。バックアップ・システムは、生成したバックアップ・ファイルを、生成した日時と関連付けて第１記憶装置に記憶する。ファイルＢは、この間、ユーザによって２度の書き込みが行われており、バックアップ・システムは、ファイルＢへの書き込みデータｂ１、ｂ２を取得し、書き込みが行われた日時を関連付けて第２記憶装置に記憶する。
【００４６】
ファイルＣもファイルＡやファイルＢと同様に、ユーザによって設定されるが、ファイルＡやファイルＢとは異なる時間間隔ＴＣに設定されている。図６に示す実施の形態では、時間間隔ＴＣが最も長くなっている。生成されたバックアップ・ファイルＣ１は、生成された日時が関連付けられて第１記憶装置に記憶される。ファイルＣについても、ユーザによって、バックアップ・ファイルＣ１の生成前に１回、生成後に３回書き込みが行われており、バックアップ・システムは、ファイルＣへの書き込みデータｃ１、ｃ２、ｃ３、ｃ４を取得し、その書き込みが行われた日時を関連付けて第２記憶装置に記憶する。
【００４７】
例えば、各ファイルを、破線で示される日時ｔにおけるバージョンに復帰させる場合、バックアップ・システムは、日時ｔより前で、かつ日時ｔに最も近いそれぞれのバックアップ・ファイルを第１記憶装置から検索し、読み出す。ファイルＡについてはバックアップ・ファイルＡ１で、ファイルＢについてはバックアップ・ファイルＢ１で、ファイルＣについてはバックアップ・ファイルＣ１となる。次に、それぞれのファイルについて読み出したバックアップ・ファイルに関連付けられた日時と、日時ｔとの間の日時を有する差分データを、第２記憶装置を検索して読み出す。ファイルＡについては書き込みデータａ１を含む差分データ、書き込みデータａ２を含む差分データで、ファイルＢについては書き込みデータｂ１を含む差分データ、書き込みデータｂ２を含む差分データで、ファイルＣについては書き込みデータｃ２を含む差分データとなる。
【００４８】
バックアップ・システムは、読み出されたそれぞれのバックアップ・ファイルに、書き込みデータを反映し、各ファイルを日時ｔのバージョンに復帰させる。ファイルＡについては、バックアップ・ファイルＡ１に、書き込みデータａ１、ａ２をこの時間順に反映して、日時ｔのバージョンを生成する。ファイルＢについては、バックアップ・ファイルＢ１に、書き込みデータｂ１、ｂ２をこの時間順に反映し、日時ｔのバージョンを生成する。ファイルＣについては、バックアップ・ファイルＣ１に、書き込みデータｃ２を反映し、日時ｔのバージョンを生成する。このようにして、すべてのファイルを同一日時ｔのバージョンに復帰させることができる。
【００４９】
本発明の方法を、図７〜図１４を参照して詳細に説明する。この方法は、上記各部を備えるシステムあるいはコンピュータに実行させるためのプログラムとして実現することができる。図７は、バックアップ・ファイルを生成し、差分データを記憶するフローを示す。ここでは、すべてのファイルをバックアップ対象とはせず、ユーザが指定したファイルをバックアップ対象とする場合について説明する。また、バックアップ・ファイルおよび差分データを記憶する記憶装置は、同じであっても、異なっていてもよいが、ここでは異なる第１記憶装置と第２記憶装置とを用いるものとして説明する。
【００５０】
ユーザが、バックアップ対象とするファイルを指定し、そのファイルの指定に応答して、指定されたファイルを１つのグループにグループ化する（ステップ７００）。バックアップ対象とするファイルを指定するのは、１ユーザに限らず、複数のユーザであってもよい。例えば、同じプロジェクトに参加する複数のユーザが、そのプロジェクトに必要な複数のファイルをそれぞれ指定することができる。上述したように、各ユーザが、マウスなどを使用して、バックアップ対象にするファイルを、本発明のシステムによって管理されるフォルダにドラッグ・アンド・ドロップすることにより、１つのグループにグループ化することができる。複数のグループにグループ化する場合、本発明のシステムによって管理されるフォルダを複数生成することができる。これにより、複数のプロジェクトに関するファイルを、プロジェクトごとにグループ化することができる。
【００５１】
ユーザの入力により、複数のファイルのそれぞれに、バックアップ・ファイルを生成する時間間隔を設定する（ステップ７１０）。例えば、５分あるいは１０分などの時間を設定することができる。その設定に基づいて、複数のファイルの各々についてバックアップ・ファイルを生成し、それらバックアップ・ファイルを、それらバックアップ・ファイルを生成した日時と関連付けて第１記憶装置に記憶する（ステップ７２０）。次に、設定された時間に達したか否かを判断する（ステップ７３０）。達した場合、ステップ７２０に戻り、再びバックアップ・ファイルを生成する。達していない場合、ユーザからファイルにアクセスがあったか否かを検出する（ステップ７４０）。ＯＳを監視し、ＯＳがファイルにアクセスすることを検知することにより、アクセスを検出することができる。検出されない場合には、ステップ７３０に戻り、検出された場合には、ＯＳがファイルへ書き込んだデータを、システムが取得し、書き込みが行われた日時を関連付けて第２記憶装置に記憶する（ステップ７５０）。その後、ステップ７３０に戻り、設定された時間に達したか否かを判断する。
【００５２】
図８は、図７に示すステップ７２０において、バックアップ・ファイルの生成のほか、図５に示すバックアップ・ファイルのデータ・レコードを生成するフローを示す。このデータ・レコードを適用することで、処理時間を短くすることができ、バックアップ効率を向上させることができる。ファイル名にファイル識別子を割り当て、ファイル識別子とファイル名とを対応表データとして第１記憶装置に記憶する（ステップ８００）。バックアップ・ファイル・データが記憶された第１記憶装置内の記憶領域のバックアップ・ファイル・アドレスを取得する（ステップ８１０）。バックアップ・ファイル・データを記憶装置に記憶するとき、アドレスを指定して記憶するため、その指定されたアドレスを取得することができる。アドレスは、上述したように、先頭からのバイト数とすることができる。ファイル識別子と、バックアップ・ファイル・アドレスと、バックアップ・ファイルを生成した日時とを関連付け、データ・レコードを生成する（ステップ８２０）。いずれも固定長データであるため、データ・レコードも固定長となる。このデータ・レコードは、第１記憶装置に記憶される。
【００５３】
図９は、図７に示すステップ７５０において、図５に示すファイル更新情報のデータ・レコードを生成するフローを示す。このデータ・レコードを適用することで、処理時間を短くすることができ、バックアップ効率を向上させることができる。ファイル名にファイル識別子を割り当て、ファイル識別子とファイル名とを対応表データとして第２記憶装置に記憶する（ステップ９００）。書き込みデータが記憶された第２記憶装置内の記憶領域の書き込みデータ・アドレス、書き込み位置、書き込みデータのサイズを取得する（ステップ９１０）。書き込みデータ・アドレスは、上記バックアップ・ファイルと同様の方法により、取得することができる。このアドレスも、先頭からのバイト数とすることができる。書き込み位置およびサイズおよび日時は、ファイルにデータを書き込むＯＳからを取得することができる。この書き込み位置およびサイズおよび日時は、ＯＳがファイルに書き込んだ位置、書き込んだデータのサイズ、書き込んだ日時となる。次に、ファイル識別子と、書き込みデータ・アドレスと、位置、サイズ、日時を関連付け、固定長のデータ・レコードを生成する（ステップ９２０）。このデータ・レコードは、第２記憶装置に記憶される。
【００５４】
図１０は、ユーザが復帰させたい日時を指定し、その日時におけるバージョンを生成するフローを示す。ユーザが、復帰させたい日時を入力することに応答して、日時を指定する（ステップ１０００）。日時の指定は、設定することにより行われ、ユーザの入力により、例えば、「2005/02/14  13:20」と設定する。その指定に応答して、バックアップ・ファイルを、その指定された日時を基に、検索する（ステップ１０１０）。図４（ａ）に示すデータ構造の場合、ファイル名が同じものについて、指定日時より前で、かつ最も近いものを検索することにより特定することができる。検索結果として特定されたバックアップ・ファイルを読み出す（ステップ１０２０）。読み出されたバックアップ・ファイルは、例えばメモリに保持され、後述する書き込みデータが反映される。
【００５５】
特定されたバックアップ・ファイルに関連付けられた日時を取得し、その日時と、指定された日時との間の日時を有する差分データを検索する（ステップ１０３０）。図４（ｂ）に示すデータ構造の場合、ファイル名が同じものについて、その間に入る差分データを、差分データに含まれる日時を基に検索し、特定する。検索結果として特定された差分データを読み出す（ステップ１０４０）。読み出された差分データも、メモリに保持される。
【００５６】
読み出され、保持されたバックアップ・ファイルに、読み出され、保持された差分データを反映して、指定された日時におけるバーションを生成する（ステップ１０５０）。差分データは、書き込み位置、サイズ、書き込みデータを含む。システムは、書き込み命令を実行し、書き込み位置から、バックアップ・ファイルに書き込む位置を特定し、その位置において書き込みデータを書き込んで指定日時におけるバージョンを生成する。２以上の差分データがある場合には、日時順に、同様の方法により書き込み、指定日時におけるバージョンを生成する。
【００５７】
図１１は、図１０に示すステップ１０１０およびステップ１０２０において、図５（ａ）に示すデータ・レコードを使用する場合のフローを示した図である。ユーザによって日時が指定されると、システムはそれを受けて、第１記憶装置から対応表データを読み出し、ファイルに対応するファイル識別子を取得する（ステップ１１００）。そのファイル識別子と指定日時を基に、第１記憶装置に記憶されるデータ・レコードを検索する（ステップ１１１０）。指定日時より前で、かつ最も近い日時を有するデータ・レコードを特定する（ステップ１１２０）。そのデータ・レコードに含まれるアドレスを基に、バックアップ・ファイルを読み出す（ステップ１１３０）。複数のファイルの各々に対する各バックアップ・ファイルを読み出す場合には、ステップ１１００で、ファイル名を変え、上記複数のファイルに含まれる別のファイルに対応するファイル識別子を取得し、ステップ１１１０からステップ１１３０までは同様の処理を行い、これを繰り返すことで、複数のファイルの各々についての各バックアップ・ファイルを読み出すことができる。
【００５８】
図１２は、図１０に示すステップ１０３０およびステップ１０４０において、図５（ｂ）に示すデータ・レコードを使用する場合のフローを示した図である。図１１のステップ１１３０で、バックアップ・ファイルが読み出されると、これを受けてシステムは、バックアップ・ファイルに関連付けられる日時を取得する（ステップ１２００）。取得した日時と、指定日時とから検索するべき日時範囲を算出し、その日時範囲に入る、第２記憶装置に記憶されるデータ・レコードを、ファイル識別子を基に検索する（ステップ１２１０）。日時範囲に入るデータ・レコードを読み出す（ステップ１２２０）。ここで、データ・レコードを読み出すのは、データ・レコードに、書き込み位置およびサイズが含まれ、日時も含まれているからである。複数のデータ・レコードを読み出した場合、日時順に配列させる（ステップ１２３０）。これは、日時順に、バックアップ・ファイルに適用するためである。配列されたデータ・レコードに含まれるアドレスを基に、順に書き込みデータを読み出す（ステップ１２４０）。これにより、読み出された書き込みデータが、日時順に配列した書き込みデータとなる。本発明では、配列させなくてもよく、この場合には、書き込みデータを読み出し、読み出された書き込みデータをデータ・レコードと関連付けて保持させておき、適用する段階で、日時を基に、日時順に適用することができる。複数のファイルの各々に対して書き込みデータを読み出す場合には、複数のファイルの各々についてステップ１２００からステップ１２４０を繰り返すことで、複数のファイルの各々についての書き込みデータを読み出すことができる。
【００５９】
本発明のバックアップ・システムは、書き込み回数を計測し、回数に応じてバックアップ作業を行う時間間隔の設定を変更することができる。図１３は、バックアップ・ファイルを生成する時間間隔の設定を変更するフローを示した図である。初期値となる時間間隔をユーザが入力し、バックアップ・システムが、入力された時間間隔を設定する（ステップ１３００）。初期値は、バックアップ・システムがもつデフォルト値であってもよい。例えば、ユーザが１０分と入力することで、時間間隔を１０分と設定する。時間間隔の設定を受けて、その時間間隔でバックアップを開始する（ステップ１３１０）。バックアップ・システムは、プログラムを実行させることにより、設定時間経過時、バックアップ・ファイルを生成する。設定した時間が経過するまでの間に、ユーザが書き込みを行い、ファイルを更新した回数をカウントする（ステップ１３２０）。これは、上記カウンタなどの頻度計測部によって行われる。設定時間に到達した後、その設定した時間内にユーザが行った更新回数が、閾値を超えるか否かを判定する（ステップ１３３０）。超えない場合、カウンタを０にし、ステップ１３２０に戻り、時間間隔を変更することなく、再度カウントする。超える場合、設定時間を変更する（ステップ１３４０）。設定時間の変更は、閾値を超えない回数にするため、設定時間を短縮させ、例えば、１０分を９分に変更する。次に、カウンタを０にする（ステップ１３５０）。設定時間を変更し、カウンタを０にした後、ステップ１３２０に戻り、変更された時間間隔の間の更新回数のカウントを開始する。
【００６０】
図１４は、バックアップ・ファイルを生成する時間間隔の設定を変更する別のフローを示した図である。図１３と同様、初期値となる時間間隔をユーザが入力し、入力された時間間隔を設定する（ステップ１４００）。時間間隔の設定を受けて、その時間間隔でバックアップを開始する（ステップ１４１０）。設定した時間が経過するまでの間に、ファイルを更新した回数をカウントする（ステップ１４２０）。設定時間に到達した後、更新回数が閾値を超えるか否かを判定する（ステップ１４３０）。超えると判定された場合、設定時間を短縮させる（ステップ１４４０）。設定時間を短縮させ、その時間を設定した後、カウンタを０にして（ステップ１４５０）、再びステップ１４２０に戻り、新たに設定された時間間隔の間の更新回数をカウントする。ステップ１４３０で、超えないと判定された場合、第２閾値を超えるか否かを判定する（ステップ１４６０）。超えると判定された場合、カウンタを０にし、ステップ１４２０に戻り、時間間隔を変更することなく、再び更新回数をカウントする。超えないと判定された場合、設定時間を延長させる（ステップ１４７０）。例えば、設定時間１０分を１１分に延長させることができる。設定時間を延長させ、その時間を設定した後、カウンタを０にして（ステップ１４８０）、再びステップ１４２０に戻り、新たに設定された時間間隔の間の更新回数をカウントする。
【００６１】
これまで図面を参照して、本発明のバックアップ・システム、バックアップ方法について説明してきたが、本発明は、バックアップ方法をコンピュータに実行させるプログラムとして構成することもでき、このプログラムを記録した記録媒体として提供することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明のシステムを組み込んだコンピュータ・システムの概略図。
【図２】本発明のシステムの構成を例示した図。
【図３】本発明のシステムの別の実施形態を示した図。
【図４】データ構造を例示した図。
【図５】データ・レコードを例示した図。
【図６】各ファイルにつき、バックアップ作業を時刻とともに示したフロー図。
【図７】バックアップ・ファイルを生成し、差分データを記憶するフロー図。
【図８】図７に示すステップ７２０において、図５に示すバックアップ・ファイルのデータ・レコードを生成するフロー図。
【図９】図７に示すステップ７５０において、図５に示すファイル更新情報のデータ・レコードを生成するフロー図。
【図１０】ユーザが復帰させたい日時を指定し、その日時におけるバージョンを生成するフロー図。
【図１１】図１０に示すステップ１０１０において、図５（ａ）に示すデータ・レコードを使用する場合のフロー図。
【図１２】図１０に示すステップ１０３０において、図５（ｂ）に示すデータ・レコードを使用する場合のフロー図。
【図１３】バックアップ・ファイルを生成する時間間隔の設定を変更するフロー図。
【図１４】バックアップ・ファイルを生成する時間間隔の設定を変更する別のフロー図。
【符号の説明】
【００６３】
１０…ユーザ・コンピュータ
１０ａ、１０ｂ、１０ｃ…記憶装置
１１…ネットワーク
１２…サーバ
１３…記憶装置
２０、３０…バックアップ・システム
２１…バックアップ・ファイル生成部
２２…差分データ取得部
２３…バックアップ・ファイル検索部
２４…差分データ検索部
２５…バージョン生成部
２６…入力手段
２７…ＯＳ
３１…グループ化部
３２…フォルダ
３３…表示装置
３４…ファイル
３５…ポインティング・デバイス
３６…頻度計測部
３７…頻度判定部
３７ａ…第２頻度判定部
３８…時間間隔変更部
３８ａ…時間短縮部
３８ｂ…時間延長部
３９…選択部
４０…データ構造
４１…ファイル名
４２…バックアップ・ファイル・データ
４３…日時
４４…データ構造
４５…ファイル名
４６…位置
４７…サイズ
４８…データ
４９…日時
５０…データ・レコード
５１…ファイル識別子
５２…バックアップ・ファイル・アドレス
５３…日時
５４…データ・レコード
５５…ファイル識別子
５６…位置
５７…サイズ
５８…書き込みデータ・アドレス
５９…日時
【図１】
2006277563.tif 000003
【図２】
2006277563.tif 000004
【図３】
2006277563.tif 000005
【図４】
2006277563.tif 000006
【図５】
2006277563.tif 000007
【図６】
2006277563.tif 000008
【図７】
2006277563.tif 000009
【図８】
2006277563.tif 000010
【図９】
2006277563.tif 000011
【図１０】
2006277563.tif 000012
【図１１】
2006277563.tif 000013
【図１２】
2006277563.tif 000014
【図１３】
2006277563.tif 000015
【図１４】
2006277563.tif 000016