(57)【特許請求の範囲】
【請求項１】
少なくとも１つの順次バックアップ・デバイスからデータ・オブジェクトを復元するための動作をサーバに実行させるためのコンピュータ・プログラムであって、
前記少なくとも１つの順次バックアップ・デバイス内に重複排除されたデータを有する範囲のデータ・オブジェクトを格納すること、
クライアントから、データ・オブジェクトに関する要求を受信すること、
前記要求されたデータ・オブジェクトに関する前記少なくとも１つの順次バックアップ・デバイス内に格納された範囲を決定すること、
分類リストを生成するために、前記少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って、前記範囲を分類すること、
格納された前記順序で前記順次バックアップ・デバイスから順番に前記範囲にアクセスするための前記分類リスト内の前記順序に従って、前記少なくとも１つの順次バックアップ・デバイスから前記範囲を取り出すこと、
前記クライアントによって前記要求されたデータ・オブジェクトを再構築するために、前記取り出された範囲を前記クライアントに戻すこと、を含み、
前記順次バックアップ・デバイス内へ前記データ・オブジェクトを格納することが、範囲の１つのインスタンスのみを格納し、前記要求されたデータ・オブジェクトのうちの少なくとも２つが少なくとも１つの共通範囲を含み、前記クライアントに戻された前記取り出された範囲が、前記少なくとも２つのデータ・オブジェクトに含まれる前記少なくとも１つの共通範囲の少なくとも１つのインスタンスのみを含むことを特徴とする、コンピュータ・プログラム。
【請求項２】
前記順次バックアップ・デバイス内に格納された前記範囲の位置を示す範囲情報を維持すること、
前記データ・オブジェクト内に含まれる前記範囲を示す要求された各データ・オブジェクトについて、サーバ・データ・オブジェクト情報を生成すること、
前記サーバ・データ・オブジェクト情報を前記クライアントに戻すこと、および
前記クライアントがローカルに維持していない範囲を決定するために、前記サーバによって使用されるインジケーションを前記クライアントから受信することであって、前記サーバは前記クライアントがローカルに維持していない前記範囲を前記クライアントに戻すこと
をさらに含む、請求項１に記載のコンピュータ・プログラム。
【請求項３】
クライアントおよび少なくとも１つの順次バックアップ・デバイスと通信する、システムであって、
プロセッサと、
動作を実行するために、前記プロセッサによって実行されるコードを含む、コンピュータ読み取り可能ストレージ媒体と、を備え、前記動作が、
前記少なくとも１つの順次バックアップ・デバイス内に重複排除されたデータの範囲を有するデータ・オブジェクトを格納すること、
前記クライアントから、データ・オブジェクトに関する要求を受信すること、
前記要求されたデータ・オブジェクトに関する前記少なくとも１つの順次バックアップ・デバイス内に格納された範囲を決定すること、
前記少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って、前記範囲の分類を有する分類リストを提供すること、
格納された前記順序で前記順次バックアップ・デバイスから順番に前記範囲にアクセスするための前記分類リスト内の前記順序に従って、前記少なくとも１つの順次バックアップ・デバイスから前記範囲を取り出すこと、および
前記取り出された範囲を前記クライアントに戻すこと、
を含み、前記クライアントは前記受信された範囲から前記要求されたデータ・オブジェクトを再構築することを含み、
前記順次バックアップ・デバイス内へ前記データ・オブジェクトを格納することが、範囲の１つのインスタンスのみを格納し、前記要求されたデータ・オブジェクトのうちの少なくとも２つが少なくとも１つの共通範囲を含み、前記戻された範囲が、前記少なくとも２つのデータ・オブジェクトに含まれる前記少なくとも１つの共通範囲の少なくとも１つのインスタンスのみを含むことを特徴とする、システム。
【請求項４】
少なくとも１つの順次バックアップ・デバイスと通信するシステムであって、
クライアント・バックアップ・プログラムを有するクライアントと、
サーバ・バックアップ・プログラムを有するサーバと、を備え、前記サーバは前記クライアントと通信し、
前記サーバ・バックアップ・プログラムは、
前記少なくとも１つの順次バックアップ・デバイス内に重複排除されたデータの範囲を有するデータ・オブジェクトを格納すること、
前記クライアントから、データ・オブジェクトに関する要求を受信すること、
前記要求されたデータ・オブジェクトに関する前記少なくとも１つの順次バックアップ・デバイス内に格納された範囲を決定すること、
前記少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って、前記範囲の分類を有する分類リストを提供すること、
格納された前記順序で前記順次バックアップ・デバイスから順番に前記範囲にアクセスするための前記分類リスト内の前記順序に従って、前記少なくとも１つの順次バックアップ・デバイスから前記範囲を取り出すこと、および
前記取り出された範囲を前記クライアントに戻すこと、
を実行するために実行され、前記クライアントは前記受信された範囲から前記要求されたデータ・オブジェクトを再構築することを含み
前記順次バックアップ・デバイス内へ前記データ・オブジェクトを格納することが、範囲の１つのインスタンスのみを格納し、前記要求されたデータ・オブジェクトのうちの少なくとも２つが少なくとも１つの共通範囲を含み、前記戻された範囲が、前記少なくとも２つのデータ・オブジェクトに含まれる前記少なくとも１つの共通範囲の少なくとも１つのインスタンスのみを含むことを特徴とする、システム。
【請求項５】
さらに前記クライアント・バックアップ・プログラムが、前記要求されたデータ・オブジェクトに含まれる範囲のクライアント・データ・オブジェクト情報を維持するために実行され、前記要求されたデータ・オブジェクトを再構築することが、前記受信された範囲を追加する前記データ・オブジェクトを決定するために、前記クライアント・データ・オブジェクト情報を使用することを含み、前記少なくとも１つの共通範囲が、前記共通範囲を含む前記少なくとも２つのデータ・オブジェクトのそれぞれに含まれる、請求項４に記載のシステム。
【請求項６】
前記クライアント・データ・オブジェクト情報が、データ・オブジェクト内の各範囲について、前記データ・オブジェクト内で前記範囲が位置する前記データ・オブジェクト内の少なくとも１つのオフセットを示し、前記データ・オブジェクト内の各範囲が前記データ・オブジェクト内の１つまたは複数のオフセットで発生可能であり、前記要求されたデータ・オブジェクトの再構築が、各範囲の受信に応答して、
前記範囲が含まれる前記要求されたデータ・オブジェクトのそれぞれの中で、前記受信された範囲の前記少なくとも１つのオフセットを決定すること、
前記受信された範囲を含む各データ・オブジェクトについて、前記受信された範囲を、前記データ・オブジェクト内の前記決定された少なくとも１つのオフセットに追加することであって、範囲は、前記範囲が受信された際にデータ・オブジェクト内に含まれる、追加すること、
を実行することを含む、請求項４に記載のシステム。
【請求項７】
前記クライアント・データ・オブジェクト情報が、前記データ・オブジェクト内の各範囲について、前記範囲が位置する前記データ・オブジェクト内の少なくとも１つのオフセットを示し、前記データ・オブジェクト内の各範囲が前記データ・オブジェクト内の１つまたは複数のオフセットで発生可能であり、前記要求されたデータ・オブジェクトの再構築が、
前記要求されたデータ・オブジェクトについて前記範囲のすべてが使用可能となるまで、前記受信された範囲をバッファリングすること、
前記要求されたデータ・オブジェクト内の前記受信された範囲の前記オフセットを決定すること、および
前記サーバから受信された前記データ・オブジェクトについてすべての前記範囲をバッファリングすることに応答して、前記バッファリングされた受信された範囲を、前記要求されたデータ・オブジェクトのうちの１つの前記決定されたオフセットに追加すること、
を実行することを含む、請求項４に記載のシステム。
【請求項８】
前記クライアント・バックアップ・プログラムが、
前記クライアントによって、前記クライアントでローカルに維持されている前記要求されたデータ・オブジェクト内の範囲を決定すること、および、
前記クライアントによって、前記クライアントでローカルに維持されていない前記要求されたデータ・オブジェクト内の範囲のインジケーションを前記サーバに送信することであって、前記サーバは、前記クライアントがローカルに維持していない前記示された範囲を前記クライアントに戻し、前記クライアントは、前記サーバから受信された前記範囲、および、前記クライアントでローカルに維持されている前記要求されたデータ・オブジェクト内の前記範囲から、前記要求されたデータ・オブジェクトを再構築する、送信すること、
を実行するためにさらに実行される、請求項４に記載のシステム。
【請求項９】
前記サーバ・バックアップ・プログラムが
前記順次バックアップ・デバイス内に格納された前記範囲の位置を示す範囲情報を維持すること、
前記データ・オブジェクト内に含まれる前記範囲を示す要求された各データ・オブジェクトについて、サーバ・データ・オブジェクト情報を生成すること、
前記サーバ・データ・オブジェクト情報を前記クライアントに戻すこと、および
前記クライアントがローカルに維持していない範囲を決定するために、前記サーバによって使用されるインジケーションを前記クライアントから受信することであって、前記サーバは前記クライアントがローカルに維持していない前記範囲を前記クライアントに戻す、受信すること
を実行するためにさらに実行される、請求項４に記載のシステム。
【請求項１０】
前記サーバ・データ・オブジェクト情報が複数のデータ・オブジェクトに含まれる前記範囲の複数のインスタンスを示し、前記分類リストが、前記複数の要求されたデータ・オブジェクトに含まれる範囲を含む、各範囲の１つのインスタンスのみを含み、前記クライアント・バックアップ・プログラムが、
前記クライアントによって、各範囲について前記範囲を含む各データ・オブジェクトを示すクライアント・データ・オブジェクト情報を生成するために、前記サーバ・データ・オブジェクト情報を使用することであって、前記クライアントによって、前記要求されたデータ・オブジェクトを再構築することは、前記受信された範囲を、前記範囲を含む前記要求されたデータ・オブジェクトに追加するために、前記クライアント・データ・オブジェクト情報を使用することを含み、前記少なくとも１つの共通範囲は、前記クライアント・データ・オブジェクト情報内に示された前記共通範囲を含む少なくとも２つのデータ・オブジェクトのそれぞれに含まれる、使用すること、
を実行するためにさらに実行される、請求項９に記載のシステム。
【請求項１１】
データ・オブジェクトを復元するための方法であって、
少なくとも１つの順次バックアップ・デバイス内に重複排除されたデータを有する範囲のデータ・オブジェクトを格納すること、
クライアントから、データ・オブジェクトに関する要求を受信すること、
前記要求されたデータ・オブジェクトに関する前記少なくとも１つの順次バックアップ・デバイス内に格納された範囲を決定すること、
分類リストを生成するために、前記少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って、前記範囲を分類すること、
サーバによって、格納された前記順序で前記順次バックアップ・デバイスから順番に前記範囲にアクセスするための前記分類リスト内の前記順序に従って、前記少なくとも１つの順次バックアップ・デバイスから前記範囲を取り出すこと、
前記取り出された範囲を前記クライアントに戻すこと、および
前記受信された範囲から前記要求されたデータ・オブジェクトを再構築すること、
を含み、
前記順次バックアップ・デバイス内へ前記データ・オブジェクトを格納することが、範囲の１つのインスタンスのみを格納し、前記要求されたデータ・オブジェクトのうちの少なくとも２つが少なくとも１つの共通範囲を含み、前記戻された範囲が、前記少なくとも２つのデータ・オブジェクトに含まれる前記少なくとも１つの共通範囲の少なくとも１つのインスタンスのみを含むことを特徴とする、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、順次バックアップ・デバイスから重複排除された（deduplicated）データ・オブジェクトを復元するための、コンピュータ・プログラム、システム、および方法に関する。
【背景技術】
【０００２】
ネットワーク・バックアップ環境では、クライアント・システムは、ネットワークを介してそのデータをバックアップ・サーバにバックアップする。バックアップ・サーバはバックアップ・オブジェクトのデータベースを維持し、バックアップ・ストレージ・プールに格納されたバックアップ・オブジェクトに関する情報を提供する。クライアント・システムは、バックアップ・サーバによって維持されるバックアップ・オブジェクトからデータ・オブジェクト復元することができる。
【０００３】
バックアップ・クライアントおよびサーバはデータの重複排除を実装可能であり、これによって、ストレージ・スペースを最適化し、ネットワーク帯域幅を保持するために、バックアップ動作中に冗長データを除去する。複数のデータ・オブジェクトが同じ範囲を共有している場合、その範囲の１つのインスタンスのみがバックアップ・ストレージ内に格納されるように、バックアップ動作は、データの領域（chunk）または範囲（extent）内にデータをバックアップすることができる。
【０００４】
ストレージ・バックアップ・アクティビティ中の重複排除は、データ・ソース（クライアント）、データ・ターゲット（サーバ）、または、バックアップ・サーバに接続された重複排除機器で実行することができる。サーバからクライアントへの重複排除データの復元は、重複排除された領域または範囲からのデータの再構築を含む。現行のシステムでは、重複排除されたデータはディスク上に格納され、バックアップ・サーバはディスクから復元するためにデータ・オブジェクト用の範囲にアクセスし、共通範囲を有するオブジェクトを含む全データ・オブジェクトをクライアントに戻すことになる。たとえ、復元用に選択された多くのデータ・オブジェクト内に（または同じオブジェクト内に）同じ範囲が発見された場合であっても、その領域または範囲は復元され、サーバからクライアントへと複数回伝送されることになる。バックアップ・サーバは、ディスク・ベース・ストレージのランダム・アクセスの性質により、任意の順序でディスクからその範囲にアクセスすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
当分野では、様々なストレージ環境でデータ・オブジェクトの復元を処理するための改良された技法が求められている。
【課題を解決するための手段】
【０００６】
順次バックアップ・デバイスから重複排除されたデータ・オブジェクトを復元するための、コンピュータ・プログラム製品、システム、および方法が提供される。サーバは、少なくとも１つの順次バックアップ・デバイス内に重複排除されたデータを有する範囲のデータ・オブジェクトを格納する。サーバは、データ・オブジェクトに関する要求をクライアントから受信する。サーバは、要求されたデータ・オブジェクトに関する少なくとも１つの順次バックアップ・デバイスに格納された範囲を決定する。サーバまたはクライアントは、分類リストを生成するために、範囲を、それらが少なくとも１つの順次バックアップ・デバイス内に格納された順序に従って分類する。サーバは、範囲が格納された順序で、順次バックアップ・デバイスから順番にそれらの範囲にアクセスするために、分類リスト内の順序に従って少なくとも１つの順次バックアップ・デバイスから範囲を取り出す。サーバは、取り出した範囲をクライアントに戻し、クライアントは、受信した範囲から要求されたデータ・オブジェクトを再構築する。
【図面の簡単な説明】
【０００７】
【図１】ネットワーク・バックアップ環境の実施形態を示す図である。
【図２】サーバ・データ・オブジェクト情報の実施形態を示す図である。
【図３】範囲情報の実施形態を示す図である。
【図４】クライアント・データ・オブジェクト情報の実施形態を示す図である。
【図５】クライアントによって維持されるデータ・オブジェクトに関して、バックアップ・サーバがバックアップ・デバイス内に範囲を維持する方法の例を示す図である。
【図６】サーバ・データ・オブジェクト情報の例を示す図である。
【図７】クライアント・データ・オブジェクト情報の例を示す図である。
【図８】図７中のオフセットの計算元である範囲サイズに関する情報を示す図である。
【図９】範囲情報の例を示す図である。
【図１０】バックアップ・クライアント・サーバ環境において、データ・オブジェクトを復元するための諸動作の実施形態を示す図である。
【図１１】コンピュータ・アーキテクチャの実施形態を示す図である。
【発明を実施するための形態】
【０００８】
バックアップ・サーバは、複数データ・オブジェクト内に含まれる範囲に対して、各範囲の１つのインスタンスのみがバックアップされるように、順次アクセス・デバイス内の複数データ・オブジェクトから範囲を格納する。順次アクセス媒体（磁気テープなど）からデータを復元するには、カートリッジをマウントし、デバイス・リーダをデータ範囲に位置決めするための時間を必要とする。順次アクセス媒体は、順番にデータ位置にアクセスしなければならないストレージを備える。従来技術では、順次アクセス媒体からの重複排除データの復元動作には、複数ボリュームのマウントおよび探索動作が必要であるため、結果としてアクセス性能が低くなる。説明される諸実施形態では、順次アクセス媒体から重複排除データを復元するための改善された性能および効率的な技法を提供する。クライアントが、重複排除によって順次アクセス媒体内にバックアップされた範囲からデータ・オブジェクトを再構築できるようにするために、バックアップ・サーバは、復元するように要求されたデータ・オブジェクトおよびデータ・オブジェクト内の範囲に関する情報をクライアントに提供する。バックアップ・サーバは、順次アクセス・デバイスから要求されたデータ・オブジェクトに含まれる範囲に、順次バックアップ・デバイス全体にわたって範囲が格納された順にアクセスし、受信した範囲からデータ・オブジェクトを再構築するために、クライアントに範囲を戻す。
【０００９】
図１は、ネットワーク・バックアップ環境の実施形態を示す図である。この環境は、ネットワークを介して通信するクライアント・システム２およびサーバ・システム４を含む。クライアント２およびサーバ４は、それぞれ、クライアント２によってローカル・ストレージ１４内に維持されるデータ・オブジェクト１２のバックアップを含む、クライアント２にバックアップ・サービスを提供するためのクライアント・サーバ・バックアップ関連動作を実行するための、クライアント・バックアップ・プログラム８およびサーバ・バックアップ・プログラム１０を含む。１つのクライアント２が示されているが、サーバ４は、ネットワーク６を介して複数のクライアント・システムにバックアップ・サービスを提供することができる。「バックアップ」という用語は、本明細書で使用される場合、アーカイブおよびスペース管理動作などの他のバックアップ関連動作を言い表す。
【００１０】
サーバ・バックアップ・プログラム１０は、１つまたは複数の順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内にクライアント２からバックアップされたデータ・オブジェクトに関する情報を提供する、オブジェクト・データベース１６を維持する。順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃは、媒体をマウントする必要があり、順次アクセス媒体上のトラック位置まで読み取りヘッドを移動させるための探索動作が実行される、磁気テープ媒体または他の順次アクセス・デバイスなどの、物理的に連続したストレージ位置からデータが順次読み取られ、この位置へ順次書き込まれる、順次アクセス・デバイスを備える。オブジェクト・データベース１６は、データ・オブジェクト内に画定された範囲に関する情報、オブジェクトの出所であるクライアント、データ・オブジェクトを含んでいたクライアント・ストレージ１４内の位置、ならびに、データ・オブジェクトおよびソース・クライアントに関する他の属性およびメタデータを含む。
【００１１】
サーバ４からデータ・オブジェクトを復元するために、サーバ・バックアップ・プログラム１０は、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから復元するためのデータ・オブジェクトに関するサーバ・データ・オブジェクト情報２０と、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内で復元するためのデータ・オブジェクト内の範囲の位置を示す範囲情報２２と、内部で順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから範囲が取り出され、クライアント２へ戻される順序を示す、分類リスト２４とを生成する。クライアント・バックアップ・プログラム８は、データ・オブジェクト内の範囲およびデータ・オブジェクト内の範囲のオフセットを含む、クライアントが復元を要求したデータ・オブジェクトに関する情報を提供する、クライアント・データ・オブジェクト情報２６を生成する。ある諸実施形態では、クライアント・バックアップ・プログラム８がサーバ・バックアップ・プログラム１０から範囲を受信すると、クライアント・バックアップ・プログラム８は、受信した範囲を、復元されているデータ・オブジェクトに即時に追加することができる。一実施形態では、サーバ・バックアップ・プログラム１０が分類リスト２４を生成できる。代替実施形態では、クライアント・バックアップ・プログラム８が分類リスト２４を生成できる。
【００１２】
ある諸実施形態では、複数のファイルを復元する場合、クライアント・バックアップ・プログラム８は、たとえ復元要求内の他のファイルがまだ完全に復元されていない場合であっても、復元が完了した際に使用可能な復元ファイルを作成することができる。クライアント・バックアップ・プログラム８は、部分的に復元されたファイルへのアクセスを防ぐために、すべての範囲が含められるまで、復元中のデータ・オブジェクトにアクセスすることができない。復元に失敗した場合、クライアント・バックアップ・プログラム８は、部分的にしか復元されなかったファイルへのアクセスを防ぐために、部分的に復元されたファイルを除去することができる。別の方法として、クライアント・バックアップ・プログラム８は、復元するためのデータ・オブジェクトに関してサーバ・バックアップ・プログラム１０から受信した範囲を、バッファ２８内に格納することができる。
【００１３】
部分的に復元されたデータ・オブジェクトの使用を防ぐため、ファイル名に拡張子「．ＴＭＰ」を付加するなどのように、復元プロセス中のデータ・オブジェクトの名前を変更することができる。別の方法として、データ・オブジェクトが完全に再構築され、アクセス可能なアクティブ・ディレクトリに戻されるまで、そのデータ・オブジェクトにアクセスできないステージング・ディレクトリ（staging directory）内に、復元中のデータ・オブジェクトを再構築することもできる。さらに他の実施形態では、再構築中のデータ・オブジェクトを、アプリケーションによるアクセスには使用できないことを示す、特別な許可によって構成することもできる。
【００１４】
範囲は、データ・オブジェクトに割り当てられたデータの領域またはブロックを備えるため、結果として１つまたは複数の範囲を含むようにデータ・オブジェクトを構成することができる。データ・オブジェクトは、ファイル、データベース、ファイル・システム、または任意の他のデータのグループ化を備えることができる。
【００１５】
ネットワーク６は、ローカル・エリア・ネットワーク（ＬＡＮ）、ストレージ・エリア・ネットワーク（ＳＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ネットワークなどを含むことができる。クライアント２およびサーバ４は、エンタープライズ・ストレージ・サーバ、ストレージ・コントローラ、ブレード・サーバ、汎用サーバ、デスクトップ・コンピュータ、ワークステーション、電話デバイス、携帯情報端末（ＰＤＡ）など、または他のコンピューティング・デバイスを含むことができる。
【００１６】
ストレージ１４は、相互接続ハード・ディスク・ドライブ（ＤＡＳＤ、ＲＡＩＤ、ＪＢＯＤなどとして構成される）、ソリッド・ステート・ストレージ・デバイス（たとえばＥＥＰＲＯＭ（電気的消去可能プログラマブル読み取り専用メモリ）、フラッシュ・メモリ、フラッシュ・ディスク、ストレージクラス・メモリ（ＳＣＭ））、電子メモリなどの、当分野で知られた１つまたは複数のストレージ・デバイス内に実装された、ストレージ媒体を含むことができる。順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃは、磁気テープ媒体、順次アクセス・メモリ（ＳＡＭ）などの、データが所定の決められた順序でのみアクセス可能な、ストレージ・デバイスまたは要素を含む。
【００１７】
サーバ４は、クラウド内のクライアント２にバックアップ・サービスを提供するための「クラウド」ストレージなどの、分散ストレージ環境またはネットワーク・ストレージ環境内に実装可能である。別の方法として、クライアント２およびサーバ４は、同一メモリ内で実行される別々のプログラムなどの、同一システム内のソフトウェアまたはソフトウェアおよびハードウェアのコンポーネントの組み合わせを含むことができる。
【００１８】
図２は、復元するためのデータ・オブジェクトのデータ・オブジェクトＩＤ５２とデータ・オブジェクト内の範囲５４とを含む、オブジェクト・データベース１６から生成されたサーバ・データ・オブジェクト情報２０内のエントリ５０の実施形態を示す。復元するためのデータ・オブジェクト内には各範囲について１つのエントリ５０が存在することになる。復元するための複数のデータ・オブジェクトが共通範囲を共有している場合、フィールド５４内の同じ範囲を示す複数のエントリ５０が存在することが可能であるため、結果として、同じ範囲５４を示す複数のデータ・オブジェクト５２に関するエントリ５０が存在することになる。連続番号５６は、データ・オブジェクト内の各範囲の連続番号を提供するため、クライアント・バックアップ・プログラム８はそれらの範囲に関するオフセットを計算することができる。同じ範囲が同じデータ・オブジェクト５２内に複数回発生することが可能であり、この場合、サーバ・データ・オブジェクト情報５０はその範囲に関して、それぞれが異なる連続番号を有する複数のエントリを有することになる。サーバ４がクライアントにデータ・オブジェクト情報５０を送信する場合、連続番号が含まれる。
【００１９】
図３は、復元するためのデータ・オブジェクト内の範囲に関する範囲識別子（ＩＤ）６２と、範囲６２を含む順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃのバックアップ・デバイスＩＤ６４と、範囲を有する順次バックアップ・デバイス６４内のブロックまたは位置を示すデバイス・ストレージ位置６６とを示す、サーバ・バックアップ・プログラム１０が維持する範囲情報２２内のエントリ６０の実施形態を示す。データ・オブジェクト内の各範囲について１つのエントリ６０が存在するため、複数のデータ・オブジェクト内に含められる範囲は、範囲の順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内の位置を示す範囲情報２２内に１つのエントリ６０のみを有することになる。
【００２０】
図４は、復元するためのデータ・オブジェクト内の各範囲に関する範囲７２と、内部に範囲７２が含められたデータ・オブジェクトのデータ・オブジェクトＩＤ７４と、クライアント・ローカル・ストレージ１４内に範囲がローカルに格納されているかどうかを示すローカル・インジケータ７６と、データ・オブジェクト７４内の範囲７２のオフセット７８とを示す、クライアント・バックアップ・プログラム８が維持するクライアント・データ・オブジェクト情報２６内のエントリ７０の実施形態を示す。複数のデータ・オブジェクトが共通範囲を共有している場合、フィールド７２内に同一範囲を示す複数の範囲エントリ７０が存在する可能性があるため、結果として複数のエントリ７０が異なるデータ・オブジェクトＩＤ７４について同じ範囲７２を有することになる。同様に、その範囲がデータ・オブジェクト内の複数の位置に発生する場合、同じデータ・オブジェクトについて複数の範囲エントリ７０が存在する可能性がある。
【００２１】
ある実施形態では、クライアント８あるいはサーバ１０またはその両方のバックアップ・プログラムは、複数のデータ・オブジェクト内で維持可能な範囲の１つのインスタンスのみが順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内でバックアップされることを保証するために、データ重複排除を実施する。オブジェクト・データベース１６は、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内のデータ・オブジェクトに関する範囲の位置を識別する。
【００２２】
図５は、サーバ４が、範囲Ｃ、Ｇ、Ａ、Ｂ、Ｆ、Ｄ、Ｈ、Ｊのうちの１つのインスタンスのみを有する３つの順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃをどのように有するかの例を示す。クライアント４は、バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内にバックアップされた範囲からなるデータ・オブジェクト８０ａ、８０ｂ、８０ｃを有する。データ・オブジェクト８０ａ、８０ｂ、８０ｃは範囲を共有することができる。さらに、同じデータ・オブジェクト内に範囲の複数のインスタンスが存在可能である。たとえば、データ・オブジェクト８０ｂおよび８０ｃは共通範囲Ｃ、Ｈ、およびＧを有し、データ・オブジェクト８０ａおよび８０ｃは共通範囲Ａ、Ｄ、Ｆを有する。データ・オブジェクト８０ｃは範囲Ｈの２つのインスタンスを有する。クライアント４は、共通範囲を有するデータ・オブジェクト８０ａ、８０ｂ、８０ｃを維持することができるが、それらの範囲がバックアップ・デバイス１８ａ、１８ｂ、１８ｃ内にバックアップされる場合、重複排除は、バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内に各範囲の１つのインスタンスのみを格納する。
【００２３】
図６は、データ・オブジェクト列９４内のデータ・オブジェクトＩＤに従ってエントリが順序付けられるように、データ・オブジェクト列９４内に示された復元するための各データ・オブジェクトに関する範囲を提供する範囲列９２を有する、図５のデータ・オブジェクト例に関するサーバ・データ・オブジェクト情報２０（図１）の例を含む、サーバ・データ・オブジェクト情報９０の例を示す。サーバ・データ・オブジェクト情報２０は、データ・オブジェクト１、２、および３内の範囲Ｆ、Ｄ、Ａ、Ｃ、およびＨなどの、データ・オブジェクト内の共通範囲を示す。連続番号９６は、サーバ４によってクライアント２に提供されたデータ・オブジェクト９０内の範囲の連続番号を提供する。クライアント・バックアップ・プログラム８は、この範囲サイズ（図８）および連続番号（図６）を使用して、図７に示されるようなデータ・オブジェクト内の範囲のオフセットを計算することができる。
【００２４】
図７は、データ・オブジェクト列１０４内に示された各データ・オブジェクトに関する範囲を有する範囲列１０２を有する、図５のデータ・オブジェクト例に関するクライアント・データ・オブジェクト情報２６（図１）の例を含む、クライアント・データ・オブジェクト情報１００の例を示す。ローカル・インジケータ列１０６は、範囲列１０２内で識別された範囲がクライアント内でローカルに維持されているかどうかを示す、ローカル・インジケータ７６（図４）を含む。オフセット列１０８は、整数、ブロック数などの、範囲のデータ・オブジェクト内のオフセット位置７８を示す。オフセット列１０８内のオフセット・データは、どちらもサーバ４から受信可能な、データ・オブジェクト９２および５２内の各範囲の連続番号９６（図６）、５６（図２）と、範囲サイズとに基づいて計算される。
【００２５】
図８は、サーバ４がクライアント・バックアップ・プログラム８に提供する、範囲サイズの例を提供する。別の方法として、クライアント２はサイズをローカルにキャッシュに入れることができるが、その情報が復元中に使用できない場合、クライアントはサーバ４からの情報を使用することができる。
【００２６】
図９は、各範囲の１つのインスタンスを有する範囲列１２２と、範囲を含む順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃを示すバックアップ・デバイス列１２４と、バックアップ・デバイス１２４上の範囲のアドレスまたは位置を有するデバイス・ストレージ位置列１２６とを有する、図５のデータ・オブジェクト例に関する範囲情報２２（図１）の例を含む、範囲情報１２０の例を示す。範囲情報２２は、復元するためのデータ・オブジェクト内の範囲を有するバックアップ・デバイス１８ａ、１８ｂ、１８ｃおよびストレージ位置を示すために、バックアップ・デバイス列１２４およびデバイス・ストレージ位置１２６のアドレスに従って分類される。
【００２７】
図１０は、データ・オブジェクトを復元するためにサーバ・バックアップ・プログラム１０およびクライアント・バックアップ・プログラム８によって実行される、諸動作の実施形態を示す。サーバ・バックアップ・プログラム１０が（ブロック２００で）、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内に格納されたデータ・オブジェクトを復元するための要求を受信すると、サーバ・バックアップ・プログラム１０は（ブロック２０２で）、要求されたデータ・オブジェクトについて少なくとも１つの順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内に格納された範囲を、オブジェクト・データベース１６から決定する。サーバ・バックアップ・プログラム１０は（ブロック２０４で）、図６に示されるような、復元するためのデータ・オブジェクト５２内に含まれる範囲５４（図２）を示す復元が要求された各データ・オブジェクトについて、サーバ・データ・オブジェクト情報２０を生成する。その後サーバ・バックアップ・プログラム１０は（ブロック２０６で）、サーバ・データ・オブジェクト情報２０および範囲サイズ情報をクライアント２に戻すことができる。
【００２８】
サーバ・データ・オブジェクト情報２０を受信すると、クライアント・バックアップ・プログラム８は（ブロック２０８で）、クライアント・ストレージ１４でローカルに維持された、復元するためのデータ・オブジェクト内の範囲を決定する。クライアント・バックアップ・プログラム８は（ブロック２１０で）、範囲のインジケーションをサーバ４に送信し、サーバはこれを使用して、クライアント２がローカル・ストレージ１４内にローカルに維持している範囲を含まない、クライアント２に送信するための範囲を決定する。一実施形態では、クライアント・バックアップ・プログラム８は、ローカルに維持されている範囲のリスト、または、クライアントがローカルに維持していない復元するためのデータ・オブジェクト内の範囲のリストを、サーバ４に送信することができる。
【００２９】
クライアント・バックアップ・プログラム８は（ブロック２１２で）、サーバ・データ・オブジェクト情報を使用して、各範囲７２（図４）に関して、範囲を含む少なくとも１つのデータ・オブジェクト７４と、範囲がローカルに維持されているかどうかのローカル・インジケータ７６と、範囲を含む各データ・オブジェクト内の範囲のオフセット７８とを示す、クライアント・データ・オブジェクト情報２６を生成する。クライアント・データ・オブジェクト情報２０内でローカル・インジケータ７６として示される、ローカルに維持されている各範囲について、クライアント・バックアップ・プログラム８は（ブロック２１４で）、範囲およびデータ・オブジェクトに関して示されたオフセット７８での範囲を含む、復元するための各データ・オブジェクトに、範囲のローカル・インスタンスを追加する。
【００３０】
サーバ・バックアップ・プログラム１０が、クライアントがローカルに維持していない範囲を決定するために使用されたインジケーションを受信すると、サーバ・バックアップ・プログラム１０は（ブロック２１６で）、サーバ・データ・オブジェクト情報２０内でクライアントがローカルに維持していないことが示された範囲を、分類リスト２４を生成するために、少なくとも１つの順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内に格納された順番に従って分類する。分類リスト２４は、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから範囲に順番にアクセスするためのプランを、サーバ・バックアップ・プログラム１０に提供する。代替実施形態では、クライアント・バックアップ・プログラム８が分類リスト２４を生成することもできる。次にサーバ・バックアップ・プログラム１０はブロック２１８から２２４で、分類リスト２４内に示された各バックアップ・デバイスについて動作ループを実行する。各バックアップ・デバイス１８ａ、１８ｂ、１８ｃに対して、サーバ・バックアップ・プログラム１０は（ブロック２２０で）、分類リスト２４内に示されたような順次バックアップ・デバイス内に格納された順序に従って、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから、分類リスト２４内の範囲を順番に読み取る。サーバ・バックアップ・プログラム１０は（ブロック２２２で）、順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃから読み取られた場合、範囲をクライアント４に送信することができる。
【００３１】
一実施形態では、（ブロック２２６で）サーバ４から範囲を受信すると、クライアント・バックアップ・プログラム８は（ブロック２２８で）、クライアント・データ・オブジェクト情報２６から、その範囲が含まれる要求された各データ・オブジェクト７４内の受信された範囲のオフセット７８を決定する。クライアント・バックアップ・プログラム８は、受信したサーバ・データ・オブジェクト（図２および図６）内の範囲サイズ（図８）および連続番号９６（図６）を使用して、範囲のオフセット１０８（図７）を計算することができる。受信した範囲を含む各データ・オブジェクトについて、クライアント・バックアップ・プログラム８は（ブロック２３０で）、復元するように要求されたデータ・オブジェクト内の決定したオフセットに、受信した範囲を追加する。このようにして、範囲がサーバ４から受信されるかまたはストレージ１４からローカルに取り出されると、データ・オブジェクトは再構築される。
【００３２】
代替実施形態では、クライアント・バックアップ・プログラム８は、サーバ４から受信された範囲およびローカルに取り出された範囲をバッファ２８内に集めることが可能であり、その結果、復元するためのデータ・オブジェクトに関するすべての範囲がバッファ内で使用可能になった後、データ・オブジェクトが再構築されることになる。バッファ２８は、メモリ内またはディスク・ストレージ・デバイス上のいずれかに実装可能である。範囲は、ローカルに維持されているステージされたデータまたはブロックからオブジェクト全体が再構築される時点で、すべての範囲が取り出されるまで、バッファ２８内でステージ（stage）可能である。
【００３３】
説明された諸実施形態は、複数のデータ・オブジェクト内に維持されている範囲の１つのインスタンスのみが順次バックアップ・デバイス１８ａ、１８ｂ、１８ｃ内にバックアップされるように、重複排除を使用してデータ・オブジェクトの範囲をバックアップする、諸実施形態における順次バックアップ・デバイスからの範囲の順次取り出しを最適化するために、順次バックアップ・デバイス内に格納された範囲を含むデータ・オブジェクトを復元するための技法を提供する。バックアップ・サーバはクライアントに範囲を戻し、クライアントはこれを、その受信された範囲を含む復元中の各データ・オブジェクトに追加する。これにより、たとえ、クライアント２がネットワークを介してバックアップ・サーバ４から復元している複数のデータ・オブジェクト内に範囲が含まれている場合であっても、範囲の１つのインスタンスのみをバックアップすることによってストレージを最適化し、範囲の１つのインスタンスのみを送信することによって、ネットワーク帯域幅を最適化する。
【００３４】
説明された諸動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生成するために、標準的なプログラミングあるいはエンジニアリングまたはその両方の技法を使用する、方法、装置、またはコンピュータ・プログラム製品として、実装可能である。したがって、諸実施形態の諸態様は、全体としてハードウェア実施形態、全体としてソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、本明細書ではすべて一般に「回路」、「モジュール」、または「システム」と呼ぶことが可能なソフトウェア態様とハードウェア態様とを組み合わせた実施形態の形を取ることができる。さらに諸実施形態の諸態様は、コンピュータ読み取り可能プログラム・コードがその上で具体化された１つまたは複数のコンピュータ読み取り可能媒体内で具体化された、コンピュータ・プログラム製品の形を取ることもできる。
【００３５】
１つまたは複数のコンピュータ読み取り可能媒体の任意の組み合わせが使用可能である。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能ストレージ媒体とすることができる。コンピュータ読み取り可能ストレージ媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはそれらの任意の好適な組み合わせとすることができるが、それらに限定されるものではない。コンピュータ読み取り可能ストレージ媒体のより特定の例（非網羅的リスト）には、１本または複数本のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、またはそれらの任意の好適な組み合わせが含まれる。本明細書との関連において、コンピュータ読み取り可能ストレージ媒体は、命令実行のシステム、装置、またはデバイスによって、またはこれらに関連して使用するためのプログラムを含むかまたは格納することが可能な、任意の有形媒体とすることができる。
【００３６】
コンピュータ読み取り可能信号媒体は、たとえばベースバンド内または搬送波の一部として、内部にコンピュータ読み取り可能プログラム・コードが具体化された、伝搬データ信号を含むことができる。こうした伝搬信号は、電磁、光、またはそれらの任意の好適な組み合わせを含むがこれらに限定されない、様々な形のいずれかを取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能ストレージ媒体ではなく、命令実行のシステム、装置、またはデバイスによって、またはこれらに関連して使用するためのプログラムを送信、伝搬、または移送することが可能な、任意のコンピュータ読み取り可能媒体とすることができる。
【００３７】
コンピュータ読み取り可能媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはそれらの任意の好適な組み合わせを含むがこれらに限定されない、任意の適切な媒体を使用して伝送可能である。
【００３８】
本発明の諸態様に関する諸動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで作成可能である。プログラム・コードは、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは、全体としてリモート・コンピュータまたはサーバ上で、実行可能である。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介して、リモート・コンピュータをユーザのコンピュータに接続することができる、あるいは、（たとえばインターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータとの接続を実行することができる。
【００３９】
上記では、本発明の諸態様について、本発明の諸実施形態に従った方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図あるいはブロック図またはその両方を参照しながら説明されている。流れ図あるいはブロック図またはその両方の各ブロック、ならびに、流れ図あるいはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることを理解されよう。コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、流れ図あるいはブロック図またはその両方の１つまたは複数のブロック内に指定された機能／活動を実施するための手段を作成するように、これらのコンピュータ・プログラム命令を、汎用コンピュータ、特定用途向けコンピュータ、または他のマシンを製造するためのプログラマブル・データ処理装置のプロセッサへと提供することができる。
【００４０】
コンピュータ読み取り可能媒体内に格納された命令が、流れ図あるいはブロック図またはその両方の１つまたは複数のブロック内に指定された機能／活動を実施する命令を含む製品を生成するように、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の様式で機能するように指示可能な、コンピュータ読み取り可能媒体に格納することも可能である。
【００４１】
コンピュータまたは他のプログラマブル装置上で実行する命令が、流れ図あるいはブロック図またはその両方の１つまたは複数のブロック内に指定された機能／活動を実施するためのプロセスを提供するように、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードして、コンピュータ実施プロセスを生成するために、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させることも可能である。
【００４２】
ある諸実施形態では、図１のシステムは、クラウド・コンピューティング環境におけるクラウド・コンポーネント部分として実装可能である。クラウド・コンピューティング環境では、クラウド・コンピューティングの送達に関与するハードウェアおよびソフトウェアのコンポーネントのシステム・アーキテクチャは、インターネットなどのネットワークを介して互いに通信する複数のクラウド・コンポーネントを備えることができる。たとえば、ある諸実施形態では、図１のサーバ４は、ネットワーク・クラウド内にホストおよびクライアントのバックアップ・サービスを提供することができる。
【００４３】
図１１は、図１のクライアント２およびサーバ４で実装可能なコンピュータ・アーキテクチャ３００の実施形態を示す。アーキテクチャ３００は、プロセッサ３０２（たとえばマイクロプロセッサ）、メモリ３０４（たとえば揮発性メモリ・デバイス）、およびストレージ３０６（たとえば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの、不揮発性ストレージ）を含むことができる。ストレージ３０６は、内部ストレージ・デバイス、あるいは、接続されるかまたはネットワーク・アクセスが可能なストレージを備えることができる。オペレーティング・システム３０８と、ストレージ３０６内のバックアップ・プログラム８および１０を含むプログラムが、メモリ３０４内にロードされ、プロセッサ３０２によって実行される。メモリ３０４は、情報１６、２０、２２、２４、および２６などのデータ構造を、さらに含むことができる。アーキテクチャは、ネットワーク３０と通信可能なネットワーク・カード３１０をさらに含む。入力デバイス３１２は、ユーザ入力をプロセッサ３０２に提供するために使用され、キーボード、マウス、ペン・スタイラス、マイクロフォン、タッチ・センサー式ディスプレイ画面、または当分野で知られた任意の他の起動または入力メカニズムを含むことができる。出力デバイス３１４は、プロセッサ３０２、または、ディスプレイ・モニタ、プリンタ、ストレージなどの他のコンポーネントから伝送された情報をレンダリングすることができる。
【００４４】
「ある実施形態」、「実施形態」、「諸実施形態」、「その実施形態」、「その諸実施形態」、「１つまたは複数の実施形態」、「いくつかの実施形態」、および「一実施形態」という用語は、特に明示的に指定されていない限り「本発明の１つまたは複数の（ただしすべてではない）実施形態」を意味する。
【００４５】
「含む」、「備える」、「有する」、およびそれらの変形の用語は、特に明示的に指定されていない限り、「含むが限定されない」ことを意味する。
【００４６】
アイテムの列挙されたリストは、特に明示的に指定されていない限り、アイテムのいずれかまたはすべてが相互に排他的であることを示唆するものではない。
【００４７】
「ａ」、「ａｎ」、および「ｔｈｅ」は、特に明示的に指定されていない限り、「１つまたは複数」を意味する。
【００４８】
互いに通信しているデバイスは、特に明示的に指定されていない限り、互いに連続した通信状態にあるとは限らない。加えて、互いに通信しているデバイスは、直接、あるいは１つまたは複数の仲介を介して間接的に、通信可能である。
【００４９】
互いに通信しているいくつかのコンポーネントを備える実施形態の説明は、こうしたコンポーネントのすべてが必要であることを示唆するものではない。反対に、本発明の多種多彩かつ可能な諸実施形態を示すために、様々なオプションのコンポーネントについて説明される。
【００５０】
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどについて、ある順序で説明されている場合があるが、こうしたプロセス、方法、およびアルゴリズムは、代替順序で作業するように構成可能である。言い換えれば、説明可能なステップの任意の順序または順番は、ステップがその順番で実行されるという要件を必ずしも示すものではない。本明細書で説明されるプロセスの諸ステップは、任意の実用的な順序で実行可能である。さらに、いくつかのステップは同時に実行可能である。
【００５１】
本明細書で単一のデバイスまたは製品について記載されている場合、単一のデバイス／製品の代わりに、複数のデバイス／製品が（それらが協働するか否かに関わらず）使用可能であることが容易に明らかとなろう。同様に、本明細書で複数のデバイスまたは製品について（それらが協働するか否かに関わらず）記載されている場合、複数のデバイスまたは製品の代わりに、単一のデバイス／製品が使用可能であること、あるいは、表示されたデバイスまたはプログラムの数の代わりに、異なる数のデバイス／製品が使用可能であることが、容易に明らかとなろう。デバイスの機能あるいは特徴またはその両方は、別の方法として、そうした機能／特徴を有するものとして明示的に説明されていない１つまたは複数の他のデバイスによって具体化することができる。したがって、本発明の他の諸実施形態が、デバイス自体を含む必要はない。
【００５２】
図１０に示された諸動作は、ある順序で発生するある諸イベントを示している。代替の諸実施形態では、ある諸動作を異なる順序で実行すること、修正すること、または除去することが可能である。さらに、前述の論理に諸ステップを追加し、依然として説明された諸実施形態に準拠するものとすることが可能である。さらに、本明細書で説明された諸動作は順次発生可能であるか、またはある諸動作は並行して処理可能である。さらに、諸動作を、単一の処理ユニットによって、または分散型処理ユニットによって、実行可能である。
【００５３】
前述の本発明の様々な実施形態の記述は、例示および説明の目的で提示されてきた。これは網羅的なものではなく、本発明を開示された精密な形に限定することは意図されていない。上記教示に鑑みて、多くの修正および変形が可能である。本発明の範囲は、この詳細な説明によってではなく、本明細書に添付された特許請求の範囲によって限定されることが意図される。前述の仕様、例示、およびデータは、本発明の組成物の製造および使用の完全な説明を提供するものである。本発明の多くの実施形態は、本発明の趣旨および範囲を逸脱することなく実行可能であるため、本発明は、以下に添付の特許請求の範囲内に入るものである。
【符号の説明】
【００５４】
２    クライアント
４    サーバ
６    ネットワーク
８    クライアント・バックアップ・プログラム
１０    サーバ・バックアップ・プログラム
１２    データ・オブジェクト
１４    ストレージ
１６    オブジェクト・データベース
１８ａ    順次バックアップ・デバイス
１８ｂ    順次バックアップ・デバイス
１８ｃ    順次バックアップ・デバイス
２０    サーバ・データ・オブジェクト情報
２２    範囲情報
２４    分類リスト
２６    クライアント・データ・オブジェクト情報
２８    バッファ
【図１】
0005938615.tif 000002
【図２】
0005938615.tif 000003
【図３】
0005938615.tif 000004
【図４】
0005938615.tif 000005
【図５】
0005938615.tif 000006
【図６】
0005938615.tif 000007
【図７】
0005938615.tif 000008
【図８】
0005938615.tif 000009
【図９】
0005938615.tif 000010
【図１０】
0005938615.tif 000011
【図１１】
0005938615.tif 000012