(57)【要約】【課題】複数ある記憶手段のうちのひとつに電子情報をリストアする際に、同じ値のＩＤの電子情報が複数存在しないように電子情報をリストアする場合に、リストア対象の記憶手段を除く記憶手段内の電子情報のＩＤと、リストア対象の電子情報のＩＤの値との比較を、必ずすべてについて行うということなくリストアする情報処理プログラムを提供する。【解決手段】ＩＤと移動元情報とに対応付けられた電子情報を記憶した複数の記憶手段に接続されたコンピュータは、記憶手段内の電子情報をバックアップし、リストア対象の第１記憶手段を除いた、第２記憶手段内の電子情報のうち、対応付けられた移動元情報に第１記憶手段が示されている電子情報に対応付けられたＩＤを取得し、バックアップされた電子情報をリストア対象とした第１記憶手段にリストアするリストアであって、取得されたＩＤとリストア対象の電子情報のＩＤが一致したものを除外してリストアする。【選択図】図１
2009176195.tif 000002
【特許請求の範囲】
【請求項１】
識別情報と移動元の記憶手段を示す移動元情報とに対応付けられた電子情報を記憶した複数の記憶手段に接続されたコンピュータに、
前記記憶手段に記憶された前記電子情報と、該電子情報と対応付けられた前記識別情報とをバックアップするバックアップステップ、
前記複数の記憶手段から、そのいずれかひとつであるリストアの対象とされた第１の記憶手段を除いた、第２の記憶手段に記憶された電子情報のうち、対応付けられた移動元情報に前記第１の記憶手段が示されている電子情報に対応付けられた識別情報を取得する取得ステップ、
前記バックアップステップにおいてバックアップされた前記電子情報をリストアの対象とされた前記第１の記憶手段にリストアするリストアステップであって、前記取得ステップにおいて取得された識別情報の値とリストアする対象の電子情報に対応付けられた識別情報の値が一致した電子情報を、リストアする電子情報から除外してリストアするリストアステップ
を実行させるための情報処理プログラム。
【請求項２】
前記取得ステップでは、さらに、前記第１の記憶装置に記憶する電子情報と対応付けられた移動元情報に前記第２の記憶装置が示されており、該第２の記憶装置に記憶されている電子情報に対応付けられた識別情報を取得する
ことを特徴とする請求項１に記載の情報処理プログラム。
【請求項３】
前記バックアップステップでは、さらに、前記電子情報が移動された時期を前記識別情報と対応付けてバックアップし、該バックアップした時期を記録し、
前記リストアステップは、前記第２の記憶装置に記憶された電子情報と対応付けられた移動元情報に前記第１の記憶装置が示されており、前記リストアする対象のバックアップ時期以降の移動時期を有する電子情報であって、前記取得ステップにおいて取得された識別情報の値とリストアする対象の電子情報に対応付けられた識別情報の値が一致した電子情報を、リストアする電子情報から除外してリストアする
ことを特徴とする請求項１又は２に記載の情報処理プログラム。
【請求項４】
前記バックアップステップは、さらに、前記電子情報が移動されたときの版情報を前記識別情報と対応付けてバックアップし、
前記リストアステップは、前記第２の記憶装置に記憶された電子情報と対応付けられた移動元情報に前記第１の記憶装置が示されており、前記リストアする対象の版情報以降の版情報を有する電子情報であって、前記取得ステップにおいて取得された識別情報の値とリストアする対象の電子情報に対応付けられた識別情報の値が一致した電子情報を、リストアする電子情報から除外してリストアする
ことを特徴とする請求項１から３のいずれか一項に記載の情報処理プログラム。
【請求項５】
識別情報と移動元の記憶手段を示す移動元情報とに対応付けられた電子情報を記憶した、複数の記憶手段と、
前記記憶手段に記憶された前記電子情報と、該電子情報と対応付けられた前記識別情報とをバックアップするバックアップ手段と、
前記複数の記憶手段から、そのいずれかひとつであるリストアの対象とされた第１の記憶手段を除いた、第２の記憶手段に記憶された電子情報のうち、対応付けられた移動元情報に前記第１の記憶手段が示されている電子情報に対応付けられた識別情報を取得する取得手段と、
前記バックアップ手段によりバックアップされた前記電子情報をリストアの対象とされた前記第１の記憶手段にリストアするリストア手段であって、前記取得手段により取得された識別情報の値とリストアする対象の電子情報に対応付けられた識別情報の値が一致した電子情報を、リストアする電子情報から除外してリストアするリストア手段と
を具備することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
記憶装置が大規模化したことに伴い、地震や停電、通信回線の障害、周辺装置の故障、システムダウン、コンピュータシステムの異常、利用者の誤操作などのトラブル発生に備えて、その記憶装置に記憶されているデータのバックアップ処理、リストア処理の重要性が高まっている。
【０００３】
また、特許文献１には、画像データに対して一意の識別子を割り振り、画像データの保管場所の管理や特定を行うことで、画像データの保管場所の変更などが、利用者の利便を損なうことなく、自由かつ簡便に行えるようにすることを目的とし、画像データが格納されている画像保管装置を示す特定情報を管理し、外部装置より画像データの要求があった場合に、該格納されている特定情報に基づいて該画像データが格納されている画像保管装置を特定することにより解決することが開示されている。
【特許文献１】特開２０００−１０５６７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
複数ある記憶手段のうちのいずれかひとつの記憶手段に電子情報をリストアする際に、同じ値の識別情報と対応付けられた電子情報が複数存在しないように電子情報をリストアする場合において、リストアの対象とした記憶手段を除く記憶手段に記憶された電子情報に対応付けられた識別情報の値と、リストアする対象の電子情報に対応付けられた識別情報の値との比較を、必ずすべてについて行うということなくリストアするようにした情報処理プログラム及び情報処理システムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、識別情報と移動元の記憶手段を示す移動元情報とに対応付けられた電子情報を記憶した複数の記憶手段に接続されたコンピュータに、前記記憶手段に記憶された前記電子情報と、該電子情報と対応付けられた前記識別情報とをバックアップするバックアップステップ、前記複数の記憶手段から、そのいずれかひとつであるリストアの対象とされた第１の記憶手段を除いた、第２の記憶手段に記憶された電子情報のうち、対応付けられた移動元情報に前記第１の記憶手段が示されている電子情報に対応付けられた識別情報を取得する取得ステップ、前記バックアップステップにおいてバックアップされた前記電子情報をリストアの対象とされた前記第１の記憶手段にリストアするリストアステップであって、前記取得ステップにおいて取得された識別情報の値とリストアする対象の電子情報に対応付けられた識別情報の値が一致した電子情報を、リストアする電子情報から除外してリストアするリストアステップを実行させることを特徴とする。
【０００６】
請求項２の発明は、請求項１に記載の発明において、前記取得ステップでは、さらに、前記第１の記憶装置に記憶する電子情報と対応付けられた移動元情報に前記第２の記憶装置が示されており、該第２の記憶装置に記憶されている電子情報に対応付けられた識別情報を取得することを特徴とする。
【０００７】
請求項３の発明は、請求項１又は２に記載の発明において、前記バックアップステップでは、さらに、前記電子情報が移動された時期を前記識別情報と対応付けてバックアップし、該バックアップした時期を記録し、前記リストアステップは、前記第２の記憶装置に記憶された電子情報と対応付けられた移動元情報に前記第１の記憶装置が示されており、前記リストアする対象のバックアップ時期以降の移動時期を有する電子情報であって、前記取得ステップにおいて取得された識別情報の値とリストアする対象の電子情報に対応付けられた識別情報の値が一致した電子情報を、リストアする電子情報から除外してリストアすることを特徴とする。
【０００８】
請求項４の発明は、請求項１から３のいずれか一項に記載の発明において、前記バックアップステップは、さらに、前記電子情報が移動されたときの版情報を前記識別情報と対応付けてバックアップし、前記リストアステップは、前記第２の記憶装置に記憶された電子情報と対応付けられた移動元情報に前記第１の記憶装置が示されており、前記リストアする対象の版情報以降の版情報を有する電子情報であって、前記取得ステップにおいて取得された識別情報の値とリストアする対象の電子情報に対応付けられた識別情報の値が一致した電子情報を、リストアする電子情報から除外してリストアすることを特徴とする。
【０００９】
請求項５の発明は、識別情報と移動元の記憶手段を示す移動元情報とに対応付けられた電子情報を記憶した、複数の記憶手段と、前記記憶手段に記憶された前記電子情報と、該電子情報と対応付けられた前記識別情報とをバックアップするバックアップ手段と、前記複数の記憶手段から、そのいずれかひとつであるリストアの対象とされた第１の記憶手段を除いた、第２の記憶手段に記憶された電子情報のうち、対応付けられた移動元情報に前記第１の記憶手段が示されている電子情報に対応付けられた識別情報を取得する取得手段と、前記バックアップ手段によりバックアップされた前記電子情報をリストアの対象とされた前記第１の記憶手段にリストアするリストア手段であって、前記取得手段により取得された識別情報の値とリストアする対象の電子情報に対応付けられた識別情報の値が一致した電子情報を、リストアする電子情報から除外してリストアするリストア手段とを具備することを特徴とする。
【発明の効果】
【００１０】
請求項１記載の情報処理プログラムによれば、複数ある記憶手段のうちのいずれかひとつの記憶手段に電子情報をリストアする際に、同じ値の識別情報と対応付けられた電子情報が複数存在しないように電子情報をリストアする場合において、リストアの対象とした記憶手段を除く記憶手段に記憶された電子情報に対応付けられた識別情報の値と、リストアする対象の電子情報に対応付けられた識別情報の値との比較を、必ずすべてについて行うということなくリストアすることができる。
【００１１】
請求項２記載の情報処理プログラムによれば、同じ識別情報と対応付けられた電子情報が同時期に複数の記憶装置に存在する状態となることを回避することができる。
【００１２】
請求項３記載の情報処理プログラムによれば、請求項１又は２に記載の情報処理プログラムと比較して、リストアの処理時間を短縮することができる。
【００１３】
請求項４記載の情報処理プログラムによれば、請求項１から３のいずれか一項に記載の情報処理プログラムと比較して、リストアの処理時間を短縮することができる。
【００１４】
請求項５記載の情報処理システムによれば、複数ある記憶手段のうちのいずれかひとつの記憶手段に電子情報をリストアする際に、同じ値の識別情報と対応付けられた電子情報が複数存在しないように電子情報をリストアする場合において、リストアの対象とした記憶手段を除く記憶手段に記憶された電子情報に対応付けられた識別情報の値と、リストアする対象の電子情報に対応付けられた識別情報の値との比較を、必ずすべてについて行うということなくリストアすることができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、ひとつのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、ひとつのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。
【００１６】
以下、電子情報として、オブジェクトを主に例示して説明する。オブジェクトとは、テキスト、画像、動画、音声等の電子データであり、名前の付いた構造体の単位であって、記憶、編集及び検索等ができ、システム又は利用者間で個別の単位として交換できるものをいい、これらに類似するものを含む。より具体的には、電子文書、ファイル等が該当する。また、電子情報に対応付けられている識別情報としてオブジェクトＩＤ（ＩＤｅｎｔｉｆｉｅｒ、識別子）を、主に例示して説明する。
また、電子情報を記憶する記憶装置として、リポジトリ（Ｒｅｐｏｓｉｔｏｒｙ）を主に例示して説明する。リポジトリの他に、文書管理装置等のＤＢ（ＤａｔａＢａｓｅ）等であってもよい。
なお、バックアップ（ｂａｃｋｕｐ）とは、喪失若しくは破壊されたデータの復元を助けるために、又はシステムの作動を維持するために使用する手続き、技法に関する用語として用いる。また、そのバックアップ対象のデータそのものを指すこともある。
また、リストア（ｒｅｓｔｏｒｅ）とは、外部記憶装置などにバックアップしておいたデータを情報処理装置に戻すことであり、リカバリ（ｒｅｃｏｖｅｒｙ）ともいう。ただし、ここで、情報処理装置に戻す際の情報処理装置とは、必ずしもバックアップしたデータを記憶していた情報処理装置と物理的に同一なものに限る必要はなく、別の情報処理装置であってもよい。
また、管理という用語を用いるが、これは文脈に応じて、制御する、マネジメントする、制御又はマネジメントするためのデータを記憶するの意で用い、その役割又は動作をさす。
また、「同一」、「同じ」という用語は、物理的に同一である場合のことではなく、情報として同一であることをいい、符号又はその符号が意味する内容等が一致することをいう。
【００１７】
本実施の形態は、複数リポジトリ間でオブジェクトを移動しても識別子の一意性を維持するものである。リポジトリグループ１００は、複数のリポジトリを有しており、その複数のリポジトリを管理するものである。そして、個別のリポジトリ毎でのバックアップ処理、リストア処理を行うものである。さらに、リポジトリ間での移動を提供するものである。
リポジトリとオブジェクトにリポジトリグループ１００内における一意な識別子を付与する。さらに、各リポジトリにはオブジェクト移動履歴管理モジュールを備え、オブジェクトの移動履歴を記憶する。オブジェクトが移動した場合、移動元リポジトリのリポジトリＩＤを移動先のリポジトリの移動履歴に記憶する。リポジトリのバックアップの際には、オブジェクトとともに移動履歴も一緒にバックアップする。リストアの際には、バックアップされている移動履歴を参照し、移動により他のリポジトリに存在する可能性があるオブジェクトのみ、一意性のチェックを行う。つまり、移動履歴により一貫性が維持されない可能性があるものを特定し、そのオブジェクトに対してのみ存在チェックを行えばよい。
【００１８】
図１の構成例に示すように、リポジトリグループ１００は、リポジトリ管理モジュール１１０、リポジトリＡ１２０、リポジトリＺ１９０等を有している。なお、リポジトリＺ１９０は、リポジトリＡ１２０と同等の構成であり、オブジェクト記憶モジュール１２１に対応するオブジェクト記憶モジュール１９１、リポジトリＩＤ１２２に対応するリポジトリＩＤ１９２、オブジェクト移動履歴管理モジュール１２３に対応するオブジェクト移動履歴管理モジュール１９３を有している。リポジトリＡ１２０と同等のものがリポジトリＺ１９０以外にあってもよい。つまり、リポジトリＡ１２０と同等の構成のものが複数ある。
【００１９】
リポジトリ管理モジュール１１０は、ＩＤ生成モジュール１１１、所属リポジトリＩＤ保持モジュール１１２、バックアップ・リストア処理モジュール１１３を有しており、リポジトリＡ１２０、リポジトリＺ１９０等と接続されており、各々のリポジトリを管理する。
ＩＤ生成モジュール１１１は、リポジトリＡ１２０のオブジェクト記憶モジュール１２１内のオブジェクトに付与するオブジェクトＩＤ又はリポジトリＡ１２０のリポジトリＩＤ１２２を生成する。オブジェクトＩＤ又はリポジトリＩＤは、オブジェクト又はリポジトリを一意に識別できる識別子であり、一意に識別できる範囲はリポジトリグループ１００内のリポジトリの間であってもよいし、さらに広くグローバルな範囲で一意に識別できるようにしてもよい。
なお、ＩＤ生成モジュール１１１は、リポジトリ管理モジュール１１０内になくてもよく、各リポジトリがＩＤ生成モジュール１１１を有しており、各リポジトリでグローバルに一意なＩＤを生成する技術を用いてもよい。グローバルに一意な識別子をローカルに生成するための仕様としてＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  ＩＤｅｎｔｉｆｉｅｒ）がある。ＵＵＩＤは世界中でユニークな１２８ｂｉｔ幅の２進数値であり、ＯＳＦ（Ｏｐｅｎ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎ）のＤＣＥ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｅｎｖｉｒｏｎｍｅｎｔ）仕様によって決められたものである。実際のＵＵＩＤでは、ユニーク性を保証するために、ＵＵＩＤを作成した時間や作成に使用したマシンに装着されているネットワーク・カードのＭＡＣアドレスなどを数値の一部に組み入れたりしている。
【００２０】
所属リポジトリＩＤ保持モジュール１１２は、リポジトリグループ１００内のリポジトリ（１２０、１９０）のリポジトリＩＤを保持している。つまり、リポジトリ管理モジュール１１０が管理している全てのリポジトリのリポジトリＩＤを保持しており、他のモジュールからの要求に応じて、そのリポジトリＩＤを渡す。
バックアップ・リストア処理モジュール１１３は、各リポジトリが記憶しているオブジェクト等のバックアップ処理、リストア処理を行う。バックアップ・リストア処理モジュール１１３内の構成については、図２の構成例を用いて後述する。
【００２１】
リポジトリＡ１２０は、オブジェクト記憶モジュール１２１、リポジトリＩＤ１２２、オブジェクト移動履歴管理モジュール１２３を有しており、リポジトリ管理モジュール１１０と接続されている。リポジトリＡ１２０は、オブジェクトＩＤ及びそのオブジェクトの移動元のリポジトリを示す移動元情報（少なくともリポジトリＩＤを含む）とに対応付けられたオブジェクトを記憶する。
オブジェクト記憶モジュール１２１は、オブジェクトとそのオブジェクトと対応付けられたオブジェクトＩＤを記憶している。リポジトリ管理モジュール１１０又は図示していない他の装置からの要求に応じて、オブジェクトを渡す、又はオブジェクトを記憶する。より具体的には、ハードディスク等が該当する。
リポジトリＩＤ１２２は、リポジトリＡ１２０又はオブジェクト記憶モジュール１２１を一意に識別できる識別子を保持しており、他のモジュールからの要求に応じて、そのリポジトリＩＤを渡す、又はリポジトリＩＤを保持する。より具体的には、メモリ等が該当する。
【００２２】
オブジェクト移動履歴管理モジュール１２３は、オブジェクト記憶モジュール１２１内のオブジェクトの移動（リポジトリＡ１２０以外の他のリポジトリからリポジトリＡ１２０へ移動してきたオブジェクト）の履歴を管理しているものである。例えば、具体的には、オブジェクトＩＤと移動元のリポジトリ（又はリポジトリ内のオブジェクト記憶モジュール）を示す移動元情報が対応付けられたテーブルを記憶する。そして、他のリポジトリからオブジェクトが移動してきた場合は、そのオブジェクトＩＤと移動元のリポジトリＩＤをそのテーブルに記憶する。そして、バックアップ・リストア処理モジュール１１３等からの要求に応じて、そのテーブル内容を渡す。また、移動元情報として、リポジトリＩＤの他に、オブジェクトが移動された時期（時期には、時分の時刻の他に、年月日等を含めてもよいし、秒、秒以下の単位の時刻を含めてもよく、これらの組み合わせであってもよい）、オブジェクトが移動されたときの版情報を含めてもよい。なお、オブジェクトがリポジトリを移動するときに、オブジェクト移動履歴管理モジュール１２３が版情報を更新（バージョンアップ）する。
なお、オブジェクトの移動とは、あるリポジトリに記憶されているオブジェクトを、そのオブジェクトに対応したオブジェクトＩＤを保ったまま別のリポジトリに移動することをいう。また、移動とは、移動元のリポジトリにオブジェクトを残さずに、他のリポジトリに移すことをいう。
【００２３】
図２は、バックアップ・リストア処理モジュール１１３の構成例についての概念的なモジュール構成図である。
バックアップ・リストア処理モジュール１１３は、処理要求受付モジュール２１０、バックアップ処理モジュール２２０、リストア処理モジュール２３０を有している。
処理要求受付モジュール２１０は、バックアップ処理モジュール２２０、リストア処理モジュール２３０と接続されており、外部（例えば、図３の例に示す管理者用端末３２０）からの要求に基づいて、リポジトリ内のオブジェクト等のバックアップ処理、リストア処理をバックアップ処理モジュール２２０、リストア処理モジュール２３０に指示する。
【００２４】
バックアップ処理モジュール２２０は、オブジェクト収集モジュール２２１、オブジェクト移動履歴収集モジュール２２２を有しており、処理要求受付モジュール２１０と接続されている。処理要求受付モジュール２１０からの指示に応じて、対象とするリポジトリのオブジェクト等のバックアップ処理を行う。
オブジェクト収集モジュール２２１は、対象とするリポジトリに記憶されたオブジェクトを収集し、図示していない記憶装置にバックアップする。リポジトリＡ１２０を例とすると、リポジトリＡ１２０のオブジェクト記憶モジュール１２１内のオブジェクト（そのオブジェクトと対応付けられたオブジェクトＩＤを含む）のバックアップをリポジトリＩＤ１２２（移動元のリポジトリＩＤ）と対応付けて行う。
オブジェクト移動履歴収集モジュール２２２は、対象とするリポジトリに記憶されたオブジェクトＩＤ及び移動元情報との対応付けを収集し、図示していない記憶装置にバックアップする。リポジトリＡ１２０を例とすると、リポジトリＡ１２０のオブジェクト移動履歴管理モジュール１２３内に記憶されているオブジェクトＩＤ及び移動元情報を内容にもつテーブル（移動された時期、版情報を含めてもよい）のバックアップをリポジトリＩＤ１２２と対応付けて行う。そして、そのバックアップした時期を記録するようにしてもよい。
【００２５】
リストア処理モジュール２３０は、バックアップ特定モジュール２３１、復元処理モジュール２３２、ＩＤ重複チェックモジュール２３３、ＩＤ取得モジュール２３４を有しており、処理要求受付モジュール２１０と接続されている。バックアップ処理モジュール２２０によってバックアップされたオブジェクトを複数のリポジトリのうちのいずれかひとつのリポジトリにリストアする。つまり、処理要求受付モジュール２１０からの指示に応じて、対象とするリポジトリ（以下、リストア対象リポジトリともいう）にオブジェクト等のリストア処理を行う。
バックアップ特定モジュール２３１は、リポジトリＩＤに基づいて、図示していない記憶装置に記憶されているバックアップ（つまり、リストアする対象）を特定する。
復元処理モジュール２３２は、リストア対象リポジトリにバックアップ特定モジュール２３１で特定されたバックアップをリストアする。ただし、その際に、ＩＤ重複チェックモジュール２３３によるチェックを行う。
【００２６】
ＩＤ重複チェックモジュール２３３は、復元処理モジュール２３２が、バックアップ処理モジュール２２０によりバックアップされたオブジェクトをリストアの対象とされたリポジトリにリストアする場合に、ＩＤ取得モジュール２３４により取得されたＩＤとリストアする対象のオブジェクトに対応付けられたオブジェクトＩＤが一致したオブジェクトを、リストアするオブジェクトから除外する。そしてその後に、復元処理モジュール２３２は、ＩＤ重複チェックモジュール２３３による処理結果に基づいてリストアを行う。
さらに、ＩＤ重複チェックモジュール２３３は、リストア対象リポジトリ以外の他のリポジトリに記憶されたオブジェクトと対応付けられた移動元情報にリストア対象リポジトリが示されており、そのリストアする対象のバックアップ時期以降の移動時期を有するオブジェクトであって、ＩＤ取得モジュール２３４により取得されたオブジェクトＩＤの値とリストアする対象のオブジェクトに対応付けられたオブジェクトＩＤの値が一致したオブジェクトを、リストアするオブジェクトから除外するようにしてもよい。
さらに、ＩＤ重複チェックモジュール２３３は、リストア対象リポジトリ以外の他のリポジトリに記憶されたオブジェクトと対応付けられた移動元情報にリストア対象リポジトリが示されており、そのリストアする対象の版情報以降の版情報を有するオブジェクトであって、ＩＤ取得モジュール２３４により取得されたオブジェクトＩＤの値とリストアする対象のオブジェクトに対応付けられたオブジェクトＩＤの値が一致したオブジェクトを、リストアする電子情報から除外するようにしてもよい。
【００２７】
ＩＤ重複チェックモジュール２３３について、別の観点から説明する。
ＩＤ重複チェックモジュール２３３は、複数のリポジトリのうちのリストア対象リポジトリ以外の他のリポジトリに記憶されたオブジェクトと対応付けられた移動元情報にリストア対象リポジトリが示されていて、他のリポジトリに記憶されているオブジェクトに対応付けられたオブジェクトＩＤとリストアする対象のオブジェクトに対応付けられたオブジェクトＩＤが一致するときには、そのリストアする対象のオブジェクトのリストアを抑制する。
さらに、リストア対象リポジトリに記憶されたオブジェクトと対応付けられた移動元情報に他の記憶装置が示されており、他のリポジトリに記憶されているオブジェクトに対応付けられたオブジェクトＩＤとリストアする対象のオブジェクトに対応付けられたオブジェクトＩＤが一致するときには、そのリストアする対象のオブジェクトのリストアを抑制するようにしてもよい。
また、他のリポジトリに記憶されたオブジェクトと対応付けられた移動元情報にリストア対象リポジトリが示されており、リストアする対象のバックアップ時期以降の移動時期であって、他のリポジトリに記憶されているオブジェクトに対応付けられたオブジェクトＩＤとリストアする対象のオブジェクトに対応付けられたオブジェクトＩＤが一致するときには、そのリストアする対象のオブジェクトのリストアを抑制するようにしてもよい。
また、他のリポジトリに記憶されたオブジェクトと対応付けられた移動元情報にリストア対象リポジトリが示されており、リストアする対象の版情報以降の版情報であって、他のリポジトリに記憶されているオブジェクトに対応付けられたオブジェクトＩＤとリストアする対象のオブジェクトに対応付けられたオブジェクトＩＤが一致するときには、そのリストアする対象のオブジェクトのリストアを抑制する。具体的な例については、図７等に示す例を用いて説明する。
【００２８】
ＩＤ取得モジュール２３４は、リストア対象リポジトリ以外の他のリポジトリに記憶されたオブジェクトのうち、対応付けられた移動元情報にリストアの対象とされたリポジトリが示されているオブジェクトに対応付けられたオブジェクトＩＤを取得する。
また、ＩＤ取得モジュール２３４は、さらに、リストア対象リポジトリに記憶させるオブジェクトと対応付けられた移動元情報にリストア対象リポジトリ以外のリポジトリが示されており、そのリストア対象リポジトリ以外のリポジトリに記憶されているオブジェクトに対応付けられたオブジェクトＩＤを取得する。
【００２９】
図３は、本実施の形態を実現するシステム構成の例を示す説明図である。
リポジトリサーバー３１０Ａ、リポジトリサーバー３１０Ｂ、管理者用端末３２０は、通信回線３９０を介してそれぞれ接続されている。リポジトリサーバー３１０Ａ、３１０Ｂにそれぞれリポジトリグループ１００が構築されている。また、管理者用端末３２０の操作者の操作に応じて、各リポジトリサーバー内でバックアップ処理、リストア処理を行う。
【００３０】
ここで、図１５を用いて、従来技術におけるバックアップ、リストア処理の例を説明する。つまり、従来技術において、リポジトリ間でのオブジェクト移動操作で識別子の一意性が維持されない例を説明する。
【００３１】
図１５では、左から右に時系列でリポジトリグループ内の状態、及びバックアップ処理、リストア処理の例を示す。
つまり、時期ｔ１では、リポジトリグループ１５１０内にリポジトリＡ１５１１とリポジトリＢ１５１２があり、リポジトリＡ１５１１にはオブジェクトＩＤがｏｂｊ１というオブジェクト１５５０が存在している。この段階で、リポジトリＡ１５１１のバックアップ処理を行う。つまり、リポジトリＡ１５４０というリポジトリＡ１５１１の複製ができる。もちろん、リポジトリＡ１５４０内にはオブジェクト１５５０が記憶されている。
【００３２】
次に、時期ｔ２で、リポジトリＡ１５１１に記憶されているオブジェクト１５５０をリポジトリＢ１５１２へ移動する。図１５の例では、移動した後の状態を表している。リポジトリグループ１５２０（時期ｔ１でのリポジトリグループ１５１０に対応）内のリポジトリＡ１５２１（時期ｔ１でのリポジトリＡ１５１１に対応）にはオブジェクト１５５０がなくなり、リポジトリＢ１５２２（時期ｔ１でのリポジトリＢ１５１２に対応）にオブジェクト１５５１（時期ｔ１でのオブジェクト１５５０に対応）が記憶されている。
【００３３】
次に、時期ｔ３で、リポジトリＡ１５４０をリポジトリグループ１５３０（時期ｔ１でのリポジトリグループ１５１０に対応）のリポジトリＡ１５３１（時期ｔ１でのリポジトリＡ１５１１に対応）にリストアする。つまり、リポジトリＡ１５３１には、時期ｔ１におけるリポジトリＡ１５１１内のオブジェクト１５５０が記憶されることになる。したがって、リポジトリＡ１５３１とリポジトリＢ１５３２（時期ｔ１でのリポジトリＢ１５１２に対応）には、同じオブジェクトＩＤのｏｂｊ１のオブジェクト１５５０とオブジェクト１５５２が存在することになり、一意性が維持されないこととなる。
【００３４】
図４は、本実施の形態を用いて、オブジェクトがリポジトリ間を移動する例を示す説明図である。そして、オブジェクトを移動した際の各リポジトリでの移動履歴の変遷の例を示している。
図４に示す例では、左から右に時系列でリポジトリグループ内の状態の例を示す。
つまり、時期ｔ１では、リポジトリグループ４１０内にリポジトリＡ４１１とリポジトリＢ４１２とリポジトリＣ４１３があり、リポジトリＡ４１１にはオブジェクトＩＤがｏｂｊ１というオブジェクト４５０が存在している。
【００３５】
次に、時期ｔ２で、リポジトリＡ４１１に記憶されているオブジェクト４５０をリポジトリＢ４１２へ移動する。図４に示す例では、移動した後の状態を表している。リポジトリグループ４２０（時期ｔ１でのリポジトリグループ４１０に対応）内のリポジトリＡ４２１（時期ｔ１でのリポジトリＡ４１１に対応）にはオブジェクト４５０がなくなり、リポジトリＢ４２２（時期ｔ１でのリポジトリＢ４１２に対応）にオブジェクト４５２（時期ｔ１でのオブジェクト４５０に対応）が記憶されている。なお、リポジトリ間を移動した際にはオブジェクトＩＤはｏｂｊ１のまま変わらない。ただし、オブジェクト４５２には、オブジェクトＩＤ（Ｏｂｊ１）と対応して移動履歴を記憶する。つまり、移動先リポジトリであるリポジトリＢ４２２において、移動元情報として、移動元リポジトリであるリポジトリＡ４１１から移動してきたことを表すリポジトリＩＤ（図４に示す例では「Ａ」）をオブジェクトＩＤ（Ｏｂｊ１）と対応させて、リポジトリＢ４２２のオブジェクト移動履歴管理モジュール１２３に記憶する。
【００３６】
次に、時期ｔ３で、さらに、リポジトリＢ４２２に記憶されているオブジェクト４５２をリポジトリＣ４２３へ移動する。図４に示す例では、移動した後の状態を表している。リポジトリグループ４３０（時期ｔ１でのリポジトリグループ４１０に対応）内のリポジトリＢ４３２（時期ｔ１でのリポジトリＢ４１２に対応）にはオブジェクト４５２がなくなり、リポジトリＣ４３３（時期ｔ１でのリポジトリＣ４１３に対応）にオブジェクト４５４（時期ｔ１でのオブジェクト４５０、時期ｔ２でのオブジェクト４５２に対応）が記憶されている。オブジェクト４５４には、オブジェクトＩＤ（Ｏｂｊ１）と対応して移動履歴を記憶する。つまり、移動先リポジトリであるリポジトリＣ４３３において、移動元情報として、移動元リポジトリであるリポジトリＡ４１１、リポジトリＢ４２２から移動してきたことを表すリポジトリＩＤ（図４に示す例では「Ａ、Ｂ」）をオブジェクトＩＤ（Ｏｂｊ１）と対応させて、リポジトリＣ４３３のオブジェクト移動履歴管理モジュール１２３に記憶する。
【００３７】
図５は、オブジェクト移動履歴管理モジュール内で記憶されるオブジェクト移動履歴テーブル５００のデータ構造例を示す説明図である。
オブジェクト移動履歴テーブル５００は、オブジェクトＩＤ欄５０１、移動元リポジトリＩＤ欄５０２を有している。オブジェクトＩＤ欄５０１はオブジェクトＩＤを記憶し、移動元リポジトリＩＤ欄５０２は移動が行われた場合の移動元リポジトリのリポジトリＩＤを記憶する。そして、行内のオブジェクトＩＤ欄５０１と移動元リポジトリＩＤ欄５０２は対応している。例えば、図５の例では、オブジェクトＩＤ「Ｏｂｊ１」は、リポジトリＡからリポジトリＢへ、リポジトリＢからリポジトリＣへ移動してきたことを示している。オブジェクトＩＤ「Ｏｂｊ２」は、リポジトリＢからリポジトリＣへ移動してきたことを示している。
これらは、オブジェクト移動履歴管理モジュール１２３によって、オブジェクトがリポジトリ間を移動したときにオブジェクト移動履歴テーブル５００に追加される。なお、履歴の順番は必要なく、セット（順序関係のない組み合わせ）でよい。
なお、オブジェクト移動履歴テーブル５００には、オブジェクトＩＤ欄５０１、移動元リポジトリＩＤ欄５０２以外に、オブジェクトが移動された時期、オブジェクトが移動されたときの版情報を記憶する欄を設けるようにしてもよい。その欄を設けたような場合、オブジェクトが移動された場合に、オブジェクト移動履歴管理モジュール１２３がそれらの情報（移動時期、版情報）をオブジェクト移動履歴テーブル５００に記憶させるようにする。
【００３８】
図６は、オブジェクトが移動した場合の、オブジェクト移動履歴テーブル６００の変化の例を示す説明図である。
オブジェクト移動履歴テーブル６００は、図４の例で示したリポジトリＢ４２２内のオブジェクト移動履歴テーブルである。
図６（ａ）の例で示すものは、図４の例における時期ｔ２でのリポジトリＢ４２２のオブジェクト移動履歴テーブル６００の状態である。つまり、オブジェクトＩＤ「Ｏｂｊ１」は、リポジトリＡからリポジトリＢへ移動してきたことを示している。
図６（ｂ）の例で示すものは、図４の例における時期ｔ３でのリポジトリＢ４３２のオブジェクト移動履歴テーブル６００の状態である。つまり、オブジェクトＩＤ「Ｏｂｊ１」は、リポジトリＢから他のリポジトリへ移動したことを示している。
【００３９】
移動により出て行ったオブジェクトが、元のリポジトリに戻ってきた場合（例えば、図４の例に示す時期ｔ３の状態から、オブジェクト４５４をリポジトリＡに移動する場合）、オブジェクト移動履歴テーブルから自分のリポジトリ（リポジトリＡ）のエントリを削除する。つまり、図４の記載の例で示すと「ｏｂｊ１：Ｂ、Ｃ」となり、図５の例で示すとオブジェクト移動履歴テーブル５００の移動元リポジトリＩＤ欄５０２を「Ａ、Ｂ」から「Ａ、Ｂ、Ｃ」となるところを「Ｂ、Ｃ」とする。
【００４０】
オブジェクト削除時、つまり、あるリポジトリにおいてオブジェクトが削除された場合には、そのリポジトリのオブジェクト移動履歴管理モジュール１２３において、オブジェクト移動履歴テーブルから該当するオブジェクトの移動履歴も削除する。つまり、移動元のリポジトリにおいては、移動することによって、そのリポジトリから削除されることになるので、図６の例を用いて説明したものと同様の処理を行うことになる。
【００４１】
バックアップ時の処理、つまり、リポジトリをバックアップする場合には、オブジェクト記憶モジュール１２１内のオブジェクト（対応するオブジェクトＩＤを含む）とオブジェクト移動履歴管理モジュール１２３内のオブジェクト移動履歴テーブルの情報も含めてバックアップする。
【００４２】
図７は、リストア時の処理例、つまり、ＩＤ重複チェックモジュール２３３、ＩＤ取得モジュール２３４の処理例を示すフローチャートである。
まず、リストア処理の概要を説明する。
処理１（ステップＳ７００からステップＳ７１０まで）  他のリポジトリから、リストア対象リポジトリから移動してきたオブジェクトのオブジェクトＩＤを取得し、バックアップ内にそれが存在するか否かをチェックする。
処理２（ステップＳ７２２からステップＳ７３０まで）  バックアップ内で他のリポジトリから移動してきたオブジェクトのオブジェクトＩＤを取得し、そのオブジェクトＩＤに対応する移動元情報にあるリポジトリに、そのオブジェクトが存在するか否かをチェックする。
【００４３】
ステップＳ７０２では、リポジトリグループ内の全リポジトリ（リストア対象リポジトリ以外のリポジトリでもよい）に対してのチェックは終了したか否かを判断する。チェックを終了していると判断した場合はステップＳ７２２へ進み、それ以外の場合はステップＳ７０４へ進む。
ステップＳ７０４では、リストア対象リポジトリ以外のリポジトリにおいて、リストア対象リポジトリから移動してきた全てのオブジェクトのチェックは終了したか否かを判断する。つまり、リストア対象リポジトリ以外のリポジトリのオブジェクト移動履歴管理モジュール１２３内のオブジェクト移動履歴テーブル５００の移動元リポジトリＩＤ欄５０２にリストア対象リポジトリのリポジトリＩＤがあるか否かを判断する。チェックを終了していると判断した場合はステップＳ７０２へ戻り、それ以外の場合はステップＳ７０６へ進む。
【００４４】
ステップＳ７０６では、リストア対象リポジトリから移動してきたオブジェクトのオブジェクトＩＤを取得する。
ステップＳ７０８では、リストア対象リポジトリにステップＳ７０６で取得したオブジェクトＩＤのオブジェクトがあるか否かを判断する。あると判断した場合はステップＳ７１０へ進み、それ以外の場合はステップＳ７０４へ戻る。
ステップＳ７１０では、ステップＳ７０８であると判断されたオブジェクトに対して、ＮＧ処理を行う。ＮＧ処理については後述する。
【００４５】
ステップＳ７２２では、リストア対象リポジトリの全部の移動履歴に対してのチェックは終了したか否かを判断する。チェックを終了していると判断した場合はステップＳ７３０へ進み終了する。そして、それ以外の場合はステップＳ７２４へ進む。
ステップＳ７２４では、リストア対象リポジトリ内のオブジェクトで、他から移動してきたオブジェクトのオブジェクトＩＤを取得する。
ステップＳ７２６では、移動元リポジトリに、ステップＳ７２４で取得したオブジェクトＩＤのオブジェクトがあるか否かを判断する。あると判断した場合はステップＳ７２８へ進み、それ以外の場合はステップＳ７２２へ戻る。
ステップＳ７２８では、ステップＳ７２６であると判断されたオブジェクトに対して、ＮＧ処理を行う。ＮＧ処理については後述する。
【００４６】
ＮＧ処理（リストアからの除外処理）、つまり他のリポジトリにオブジェクトＩＤが一致するオブジェクトが存在している場合（図７に示すフローチャート例でＮＧになった場合（ステップＳ７１０、ステップＳ７２８））の処理としては、以下のような選択肢（（１）〜（４））があり、システムに応じて選択可能である。また、実行時にユーザーに選択させてもよい。また、これら以外の処理を行うようにしてもよい。
（１）ＮＧと判断されたオブジェクトは、そのオブジェクトＩＤを変更してリストアする。
（２）ＮＧと判断されたオブジェクトは、リストアを行わない。
（３）ＮＧと判断されたオブジェクトがある場合、リポジトリのリストア処理自体を中止する。
（４）ＮＧと判断されたオブジェクトをリストアし、別リポジトリに存在しているオブジェクトＩＤが一致しているオブジェクトを削除する。
【００４７】
なお、オブジェクト移動履歴テーブル５００が、移動時期を記憶している場合は、ステップＳ７０６の処理において、他のリポジトリから、バックアップを取った時期以降にリストア対象リポジトリから移動してきたオブジェクトのオブジェクトＩＤのみを取得すればよいことになる。
また、オブジェクト移動履歴テーブル５００が、版情報を記憶している場合は、ステップＳ７０６の処理において、他のリポジトリから、バックアップを取った版以降にリストア対象リポジトリから移動してきたオブジェクトのオブジェクトＩＤのみを取得すればよいことになる。なお、前述の時期情報を用いた場合、時期にリポジトリサーバーの時期を用いると、時期を恣意的に変更されてしまうことがあり得るが、そのような場合にも対応するために版情報を用いている。
さらに、オブジェクト移動履歴テーブル５００が、移動時期及び版情報を記憶している場合は、ステップＳ７０６の処理において、他のリポジトリから、バックアップを取った時期以降であって、かつバックアップを取った版以降にリストア対象リポジトリから移動してきたオブジェクトのオブジェクトＩＤのみを取得すればよいことになる。
【００４８】
処理１（ステップＳ７００からステップＳ７１０まで）における処理例を図８、９に示す例を用いて説明する。
図８は、バックアップ処理の例を示す説明図である。
リポジトリグループ１００は、リポジトリＡ８０２〜リポジトリＦ８１２の６個のリポジトリを有しているとする。
図８に示す例の状況は、オブジェクトＩＤがオブジェクトＸというオブジェクトが、まずリポジトリＡ８０２に登録され、リポジトリＡ８０２からリポジトリＢ８０４に移動され、リポジトリＢ８０４からリポジトリＣ８０６に移動され、リポジトリＣ８０６からリポジトリＤ８０８に移動された場合である。つまり、リポジトリＤ８０８にオブジェクト８５０が記憶されている。このときに、リポジトリＤ８０８をバックアップしたことを示している。つまり、図８の例に示すようにオブジェクト８５０は移動履歴として「Ａ、Ｂ、Ｃ」を有している。「Ａ、Ｂ、Ｃ」はそれぞれリポジトリＡ８０２、Ｂ８０４、Ｃ８０６のリポジトリＩＤである。
【００４９】
図９は、リストア処理の例を示す説明図である。
図８に示す例の状況の後のことであり、オブジェクトＩＤがオブジェクトＸというオブジェクトが、さらにリポジトリＤ８０８からリポジトリＥ８１０に移動され、リポジトリＥ８１０からリポジトリＦ８１２に移動された。つまり、リポジトリＦ８１２にオブジェクト８５２（図８のオブジェクト８５０に対応する）が記憶されている。このときに、図８の例で示したバックアップをリポジトリＤ８０８にリストアしようとしている。
このとき、次のようにリストア処理（処理１）を行う。リポジトリＤ８０８以外のリポジトリに記憶されたオブジェクトのうち、リポジトリＤ８０８に記憶されたことがあるオブジェクトのオブジェクトＩＤを取得し、リストアしようとする各オブジェクトのオブジェクトＩＤと移動元とを比較する。オブジェクトＩＤが一致するオブジェクトがあれば、そのオブジェクトについては所定の処理（ＮＧ処理）を実行する。図９の例では、オブジェクト８５２のオブジェクトＩＤが一致するので（ステップＳ７０８で「ある」を判断）、オブジェクト８５２については所定の処理（ステップＳ７１０のＮＧ処理）を実行する。
【００５０】
処理２（ステップＳ７２２からステップＳ７３０まで）における処理例を図１０〜１３に示す例を用いて説明する。
図１０は、第１回目のバックアップ処理の例を示す説明図である。
リポジトリグループ１００は、リポジトリＡ１００２〜リポジトリＦ１０１２の６個のリポジトリを有しているとする。
図１０に示す例の状況は、オブジェクトＩＤがオブジェクトＸというオブジェクトが、まずリポジトリＡ１００２に登録され、リポジトリＡ１００２からリポジトリＢ１００４に移動された場合である。つまり、リポジトリＢ１００４にオブジェクト１０５０が記憶されている。このときに、リポジトリＢ１００４をバックアップしたことを示している。つまり、図１０の例に示すようにオブジェクト１０５０は移動履歴として「Ａ」を有している。「Ａ」はリポジトリＡ１００２のリポジトリＩＤである。
【００５１】
図１１は、第２回目のバックアップ処理の例を示す説明図である。
図１０に示す例の状況の後のことであり、オブジェクトＩＤがオブジェクトＸというオブジェクトが、さらにリポジトリＢ１００４からリポジトリＣ１００６に移動され、リポジトリＣ１００６からリポジトリＤ１００８に移動された。つまり、リポジトリＤ１００８にオブジェクト１０５２（図１０のオブジェクト１０５０に対応する）が記憶されている。このときに、リポジトリＤ１００８をバックアップしたことを示している。つまり、図１１の例に示すようにオブジェクト１０５２は移動履歴として「Ａ、Ｂ、Ｃ」を有している。「Ａ、Ｂ、Ｃ」はそれぞれリポジトリＡ１００２、Ｂ１００４、Ｃ１００６のリポジトリＩＤである。
【００５２】
図１２は、第１回目のリストア処理の例を示す説明図である。
図１１に示す例の状況の後のことであり、オブジェクトＩＤがオブジェクトＸというオブジェクトが、さらにリポジトリＤ１００８からリポジトリＥ１０１０に移動され、リポジトリＥ１０１０からリポジトリＦ１０１２に移動された。その後に、リポジトリＦ１０１２が故障した。この状態で、図１０の例で示したバックアップをリポジトリＢ１００４にリストアすると、図１２に示す例のようになる。オブジェクト１０５０については、リポジトリＦ１０１２が故障しているため（つまり、リポジトリＦ１０１２のオブジェクト移動履歴管理モジュール１２３をＩＤ重複チェックモジュール２３３が参照できないため）、図９に示した例の手順でリストア処理しても、リポジトリＢ１００４にリストアされることになる。
【００５３】
図１３は、第２回目のリストア処理の例を示す説明図である。
図１２に示す例の状況の後のことであり、図１１の例で示したバックアップをリポジトリＤ１００８にリストアしようとしている。ここで、図９に示した例の手順でリストア処理（処理１のみ）しようとすると、リポジトリＢ１００４にリストアされたオブジェクト１０５０の存在は検出されずに（オブジェクト１０５０にはリポジトリＤ１００８に記憶されたことがあるという履歴がないから）、オブジェクト１０５２がリポジトリＤ１００８にもリストアされることになってしまう。
このような例外処理が発生した場合（この例ではリポジトリＦ１０１２が故障中に、リポジトリＢ１００４にリストアするという場合）、同じオブジェクトＩＤをもつオブジェクトが同時期に複数存在する状態とならないようにするために、処理２（ステップＳ７２２からステップＳ７３０まで）が必要になる。
つまり、処理２では、リポジトリＤ１００８にリストアするバックアップ内の移動履歴で、リポジトリＤ１００８以外のリポジトリから移動してきたオブジェクト（図１１の例で示したオブジェクト１０５２）を取得し（ステップＳ７２４）、そのオブジェクトの移動履歴内にはリポジトリＡ１００２、リポジトリＢ１００４、リポジトリＣ１００６が含まれているので、そのリポジトリＡ１００２、リポジトリＢ１００４、リポジトリＣ１００６内にオブジェクトＸというオブジェクトＩＤのオブジェクトがあるか否かを判断する（ステップＳ７２６）。それによって、リポジトリＢ１００４にオブジェクト１０５０があるので、オブジェクト１０５２については所定の処理（ステップＳ７２８のＮＧ処理）を実行する。
【００５４】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図１４に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。ＩＤ生成モジュール１１１、バックアップ・リストア処理モジュール１１３、オブジェクト収集モジュール２２１、オブジェクト移動履歴収集モジュール２２２、バックアップ特定モジュール２３１、復元処理モジュール２３２、ＩＤ重複チェックモジュール２３３等のプログラムを実行するＣＰＵ１４０１と、そのプログラムやデータを記憶するＲＡＭ１４０２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ１４０３と、補助記憶装置であるＨＤ１４０４（例えばハードディスクを用いることができる）と、キーボード、マウス等のデータを入力する入力装置１４０６と、ＣＲＴや液晶ディスプレイ等の出力装置１４０５と、通信ネットワークと接続するための通信回線インタフェース１４０７（例えばネットワークインタフェースカードを用いることができる）、そして、それらをつないでデータのやりとりをするためのバス１４０８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【００５５】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図１４に示すハードウェア構成は、ひとつの構成例を示すものであり、本実施の形態は、図１４に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えばＡＳＩＣ等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１４に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、情報家電、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００５６】
前記実施の形態においては、電子情報に対応付けられた識別情報として、オブジェクトに対応付けられたオブジェクトＩＤを示したが、バックアップ、リストア対象のリポジトリ内で一意に識別できる符号であればよく、オブジェクトＩＤ、前述のＵＵＩＤ以外にオブジェクト名、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）、ファイル名、ファイルＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ  ｎｕｍｂｅｒ）等であってもよい。
【００５７】
また、移動により出て行ったオブジェクトの履歴も、オブジェクト移動履歴管理モジュール１２３がオブジェクト移動履歴テーブル５００に記憶するようにしてもよい。
この構成の場合、リストアするときに以下の処理を行う。処理１（ステップＳ７００からステップＳ７１０まで）において、リストア元のリポジトリの移動履歴で、移動により出て行ったオブジェクトが、バックアップ内に存在しないことをチェックする処理を加えてもよい。つまり、リストア元のリポジトリの全てが壊れているというわけではない場合（部分的に壊れているが、リポジトリ内の一部であるオブジェクト移動履歴管理モジュール１２３は正常に動作している場合）又はリポジトリが正常に動作している場合（例えば、操作者の操作ミスによって意図せずに必要とするオブジェクトを削除してしまった又は誤った変更操作を行ってしまった場合が該当し、それを修復するような場合）に、リポジトリグループの全てのリポジトリをチェックしなくてもよいこととなる。
【００５８】
また、リポジトリグループ内のリストア対象外のリポジトリが停止している場合（正常に動作していない場合）に、そのリポジトリ内のオブジェクトの存在をチェックできず、リストアできないことに対処するため、停止しているリポジトリがあっても、無視してリストアしてしまってもよい。そして、この場合、停止していたリポジトリを起動するときに、図７の例に示した処理と同様の処理を行えばよい。
【００５９】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【図面の簡単な説明】
【００６０】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】バックアップ・リストア処理モジュールの構成例についての概念的なモジュール構成図である。
【図３】本実施の形態を実現するシステム構成の例を示す説明図である。
【図４】オブジェクトがリポジトリ間を移動する例を示す説明図である。
【図５】オブジェクト移動履歴テーブルのデータ構造例を示す説明図である。
【図６】オブジェクトが移動した場合の、オブジェクト移動履歴テーブルの変化の例を示す説明図である。
【図７】ＩＤ重複チェックモジュール、ＩＤ取得モジュールの処理例を示すフローチャートである。
【図８】バックアップ処理の例を示す説明図である。
【図９】リストア処理の例を示す説明図である。
【図１０】第１回目のバックアップ処理の例を示す説明図である。
【図１１】第２回目のバックアップ処理の例を示す説明図である。
【図１２】第１回目のリストア処理の例を示す説明図である。
【図１３】第２回目のリストア処理の例を示す説明図である。
【図１４】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【図１５】従来技術におけるバックアップ、リストア処理の例を示す説明図である。
【符号の説明】
【００６１】
１００…リポジトリグループ
１１０…リポジトリ管理モジュール
１１１…ＩＤ生成モジュール
１１２…所属リポジトリＩＤ保持モジュール
１１３…バックアップ・リストア処理モジュール
１２０…リポジトリＡ
１２１…オブジェクト記憶モジュール
１２２…リポジトリＩＤ
１２３…オブジェクト移動履歴管理モジュール
１９０…リポジトリＺ
１９１…オブジェクト記憶モジュール
１９２…リポジトリＩＤ
１９３…オブジェクト移動履歴管理モジュール
２１０…処理要求受付モジュール
２２０…バックアップ処理モジュール
２２１…オブジェクト収集モジュール
２２２…オブジェクト移動履歴収集モジュール
２３０…リストア処理モジュール
２３１…バックアップ特定モジュール
２３２…復元処理モジュール
２３３…ＩＤ重複チェックモジュール
２３４…ＩＤ取得モジュール
３１０Ａ、３１０Ｂ…リポジトリサーバー
３２０…管理者用端末
３９０…通信回線
【図１】
2009176195.tif 000003
【図２】
2009176195.tif 000004
【図３】
2009176195.tif 000005
【図４】
2009176195.tif 000006
【図５】
2009176195.tif 000007
【図６】
2009176195.tif 000008
【図７】
2009176195.tif 000009
【図８】
2009176195.tif 000010
【図９】
2009176195.tif 000011
【図１０】
2009176195.tif 000012
【図１１】
2009176195.tif 000013
【図１２】
2009176195.tif 000014
【図１３】
2009176195.tif 000015
【図１４】
2009176195.tif 000016
【図１５】
2009176195.tif 000017