(57)【特許請求の範囲】
【請求項１】
データを不透明データバックアップストリームから復元するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも１つのプロセッサを備えるクライアント・コンピューティングデバイスによって実施され、前記方法が、
前記クライアント・コンピューティングデバイスから、不透明データバックアップストリームの仮想復元を開始することであって、該不透明データバックアップストリームは、サーバ上でホストされ、かつ修正されたヘッダ及びテールを有するデータブロックを含み、該修正されたヘッダ及びテールは、オリジナルヘッダ及びテールを変更したものであり、前記不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析され、前記仮想復元が、前記不透明データバックアップストリームから完全に復元されたデータセットを前記クライアント・コンピューティングデバイス及び前記サーバに格納しないことによって、当該データセットが前記クライアント・コンピューティングデバイス又は前記サーバのいずれかに格納されることを回避することと、
前記不透明データバックアップストリーム内の各データブロックについて、
前記クライアント・コンピューティングデバイスによって、前記クライアント・コンピューティングデバイス上の前記データブロックの復元されたバージョンに基づいて、前記データブロックの前記オリジナルヘッダ及びテールを決定することと、
前記データブロックの前記オリジナルヘッダ及びテールを前記クライアント・コンピューティングデバイスから前記サーバに送信することと、
前記サーバにおいて、前記サーバ上の前記不透明データバックアップストリーム内の前記データブロックの位置と前記データブロックの前記オリジナルヘッダ及びテールとの間のマッピングを作成することと、
前記クライアント・コンピューティングデバイスによって、完全な復元動作を実施するための前記データバックアップアプリケーションを使用せずに、前記マッピングを使用することによって前記不透明データバックアップストリーム内のデータを復元して、前記データを含む前記データブロックの前記オリジナルヘッダ及びテールを復元することと、を含む、コンピュータ実装方法。
【請求項２】
前記サーバにおいて、前記サーバ上の各データブロックのハッシュを作成することと、
前記クライアント・コンピューティングデバイスにおいて、前記仮想復元中に前記クライアント・コンピューティングデバイスによって見られる前記データブロックのハッシュを作成することと、
前記クライアント・コンピューティングデバイスによって見られる各データブロックについて、
前記クライアント・コンピューティングデバイスによって、前記サーバが前記データブロックの前記ハッシュのコピーを有するか否かを決定するために前記サーバに問い合わせることと、
前記サーバが前記ハッシュの前記コピーを有しない場合、前記クライアント・コンピューティングデバイスによって、前記データブロックを前記サーバに送信することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記データブロックの前記ハッシュを作成することが、前記オリジナルヘッダ及びテールを除外した前記データブロックの一部分のハッシュを作成することを含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記データバックアップアプリケーションが、前記不透明データバックアップストリームからの部分的復元を実施するように構成されておらず、
前記データバックアップアプリケーションを使用せずに前記データを復元することが、前記不透明データバックアップストリームの一部分を除外している間に、前記不透明データバックアップストリームのサブセットを復元することを含む、請求項１の記載のコンピュータ実装方法。
【請求項５】
前記不透明データバックアップストリーム内の前記データを復元することが、前記不透明データバックアップストリームに基づいて差分バックアップを作成することを含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記仮想復元を前記クライアント・コンピューティングデバイス上で実施することが、前記不透明データバックアップストリーム内の前記データを前記クライアント・コンピューティングデバイスに格納することを回避することを含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記仮想復元が、前記不透明データバックアップストリームの修正に応答して開始される、請求項１に記載のコンピュータ実装方法。
【請求項８】
データを不透明データバックアップストリームから復元するためのシステムであって、前記システムが、
クライアント・コンピューティングデバイスから、不透明データバックアップストリームの仮想復元を開始するための手段であって、該不透明データバックアップストリームは、サーバ上でホストされ、かつ修正されたヘッダ及びテールを有するデータブロックを含み、該修正されたヘッダ及びテールは、オリジナルヘッダ及びテールを変更したものであり、前記不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析され、前記仮想復元が、前記不透明データバックアップストリームから完全に復元されたデータセットを前記クライアント・コンピューティングデバイス及び前記サーバに格納しないことによって、当該データセットが前記クライアント・コンピューティングデバイス又は前記サーバのいずれかに格納されることを回避する手段と、
前記不透明データバックアップストリーム内の各データブロックについて、前記クライアント・コンピューティングデバイス上の前記データブロックの復元されたバージョンに基づいて、前記データブロックの前記オリジナルヘッダ及びテールを決定するための手段と、
前記データブロックの前記オリジナルヘッダ及びテールを前記クライアント・コンピューティングデバイスから前記サーバに送信するための手段と、
前記サーバにおいて、前記サーバ上の前記不透明データバックアップストリーム内の前記データブロックの位置と前記データブロックの前記オリジナルヘッダ及びテールとの間のマッピングを作成するための手段と、
完全な復元動作を実施するための前記データバックアップアプリケーションを使用せずに、前記マッピングを使用することによって前記不透明データバックアップストリーム内のデータを復元して、前記データを含む前記データブロックの前記オリジナルヘッダ及びテールを復元するための手段と、
前記開始するための手段、前記決定するための手段、前記送信するための手段、前記作成するための手段、及び前記復元するための手段を実行するように構成された少なくとも１つの物理的プロセッサと、を備える、システム。
【請求項９】
前記作成するための手段が、前記サーバにおいて、前記サーバ上の各データブロックのハッシュを作成し、
前記決定するための手段が、前記クライアント・コンピューティングデバイスにおいて、前記仮想復元中に前記クライアント・コンピューティングデバイスによって見られる前記データブロックのハッシュを作成し、
前記送信するための手段が、前記クライアント・コンピューティングデバイスによって見られる各データブロックについて、前記サーバが前記データブロックの前記ハッシュのコピーを有するか否かを決定するために前記サーバに問い合わせ、前記サーバが前記ハッシュの前記コピーを有しない場合、前記データブロックを前記サーバに送信する、請求項８に記載のシステム。
【請求項１０】
前記作成するための手段が、前記データブロックの前記ハッシュを、前記オリジナルヘッダ及びテールを除外した前記データブロックの一部分のハッシュを作成することによって作成し、
前記決定するための手段が、前記データブロックの前記ハッシュを、前記オリジナルヘッダ及びテールを除外した前記データブロックの一部分のハッシュを作成することによって作成する、請求項９に記載のシステム。
【請求項１１】
前記データバックアップアプリケーションが、前記不透明データバックアップストリームからの部分的復元を実施するように構成されておらず、
前記復元するための手段が、前記データバックアップアプリケーションを使用せずに、前記不透明データバックアップストリームの一部分を除外している間に、前記不透明データバックアップストリームのサブセットを復元することによって前記データを復元する、請求項８の記載のシステム。
【請求項１２】
前記復元するための手段が、前記不透明データバックアップストリームに基づいて差分バックアップを作成することによって、前記不透明データバックアップストリーム内の前記データを復元する、請求項８に記載のシステム。
【請求項１３】
前記開始するための手段が、前記不透明データバックアップストリーム内の前記データを前記クライアント・コンピューティングデバイス上に格納することを回避することによって、前記仮想復元を前記クライアント・コンピューティングデバイス上で実施する、請求項８に記載のシステム。
【請求項１４】
前記開始するための手段が、前記不透明データバックアップストリームの修正に応答して前記仮想復元を開始する、請求項８に記載のシステム。
【請求項１５】
１つ又は２つ以上のコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が、クライアント・コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記クライアント・コンピューティングデバイスに、
前記クライアント・コンピューティングデバイスから、不透明データバックアップストリームの仮想復元を開始することであって、該不透明データバックアップストリームは、サーバ上でホストされ、かつ修正されたヘッダ及びテールを有するデータブロックを含み、該修正されたヘッダ及びテールは、オリジナルヘッダ及びテールを変更したものであり、前記不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析され、前記仮想復元が、前記不透明データバックアップストリームから完全に復元されたデータセットを前記クライアント・コンピューティングデバイス及び前記サーバに格納しないことによって、当該データセットが前記クライアント・コンピューティングデバイス又は前記サーバのいずれかに格納されることを回避することと、
前記不透明データバックアップストリーム内の各データブロックについて、前記クライアント・コンピューティングデバイス上の前記データブロックの復元されたバージョンに基づいて、前記データブロックの前記オリジナルヘッダ及びテールを決定することと、
前記データブロックの前記オリジナルヘッダ及びテールを前記クライアント・コンピューティングデバイスから前記サーバに送信することと、
前記サーバにおいて、前記サーバ上の前記不透明データバックアップストリーム内の前記データブロックの位置と前記データブロックの前記オリジナルヘッダ及びテールとの間のマッピングを作成することと、
完全な復元動作を実施するための前記データバックアップアプリケーションを使用せずに、前記マッピングを使用することによって前記不透明データバックアップストリーム内のデータを復元して、前記データを含む前記データブロックの前記オリジナルヘッダ及びテールを復元することと、を行わせる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
情報時代の幕開けに、アプリケーション及びデータのバックアップは、パンチカード、テープ、次いでディスクに格納された。現在では、仮想バックアップが作成され、世界中のローカルサーバ及びリモートサーバに格納されている。データ及びオペレーティングシステムのバックアップ作成の容易さにより、多くの個人及び組織が多数の冗長バックアップを作成している。最近、データ管理の傾向が変化している。コピーデータ管理は、データをより多くではなく、より少ない場所に保管すべきであることを示唆する一連の原則である。理想的には、コピーデータ管理スキーム下では、フルデータセットが、制作環境内及び単一の完全バックアップ環境内の２つのみに存在すべきである。テスト環境などのデータセットの他の使用では、データセットの全体ではなく、変更されたデータの部分のみを格納する差分又はスナップショットを使用すべきである。
【０００２】
残念ながら、バックアップを作成し管理するための従来のシステムはまだ追いついていない。バックアップを維持するための多くの従来のシステムでは、データの部分的復元ではなく、完全復元のみが可能である。バックアップを作成するためのいくつかの従来のシステムは、データのスナップショット又は差分を作成するように試みている場合がある他のアプリケーションによって読み取ることができない不透明形式でバックアップデータを格納し得る。したがって、本開示は、データを不透明データバックアップストリームから復元するための、追加の改良されたシステム及び方法の必要性を識別し、それに対処する。
【発明の概要】
【０００３】
以下でより詳細に説明されるように、本開示は、仮想復元を実施し、各データブロックについて、データバックアップアプリケーション及び不透明データバックアップストリーム内の格納されたデータブロックの位置によって難読化された復元されたデータブロックの部分間のマッピングを作成することによって、データを不透明データバックアップストリームから復元するための種々のシステム及び方法を説明する。
【０００４】
一例では、データを不透明データバックアップストリームから復元するためのコンピュータ実装方法は、（１）クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含む、不透明データバックアップストリームの仮想復元を開始することと、（２）不透明データバックアップストリーム内の各データブロックについて、（ａ）クライアント上のブロックの復元されたバージョンに基づいて、ブロックのオリジナルヘッダ及びテールを決定することと、（ｂ）ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信することと、（ｃ）サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成することと、（３）データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを含むブロックのオリジナルヘッダ及びテールを復元することとを含み得る。
【０００５】
一実施形態では、コンピュータ実装方法は、（１）サーバにおいて、サーバ上の各データブロックのハッシュを作成することと、（２）クライアントにおいて、仮想復元中にクライアントによって見られるデータブロックのハッシュを作成することと、（３）クライアントによって見られる各データブロックについて、サーバがデータブロックのハッシュのコピーを有するか否かを決定するためにサーバに問い合わせ、サーバがハッシュのコピーを有しない場合、データブロックをサーバに送信することとを更に含み得る。いくつかの例では、データブロックのハッシュを作成することは、ヘッダ及びテールを除外したデータブロックの一部分のハッシュを作成することを含み得る。
【０００６】
一実施形態では、データバックアップアプリケーションは、不透明データバックアップストリームからの部分的復元を実施するように構成されていなくてもよく、データバックアップアプリケーションを使用せずにデータを復元することは、不透明データバックアップストリームの一部分を除外している間に、不透明データバックアップストリームのサブセットを復元することを含み得る。いくつかの例では、不透明データバックアップストリーム内のデータを復元することは、不透明データバックアップストリームに基づいて差分バックアップを作成することを含み得る。
【０００７】
いくつかの例では、仮想復元をクライアント上で実施することは、不透明データバックアップストリーム内のデータをクライアントに格納することを回避することを含み得る。一実施形態では、仮想復元は、不透明データバックアップストリームの修正に応答して開始され得る。
【０００８】
一実施形態では、上記の方法を実装するためのシステムは、（１）クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含み得る、不透明データバックアップストリームの仮想復元を開始する、メモリに格納された開始モジュールと、（２）各ブロックについて、クライアント上のブロックの復元されたバージョンに基づいて、ブロックのオリジナルヘッダ及びテールを決定する、メモリに格納された決定モジュールと、（３）ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信する、メモリに格納された送信モジュールと、（４）サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成する、メモリに格納された作成モジュールと、（５）データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを含むブロックのオリジナルヘッダ及びテールを復元する、メモリに格納された復元モジュールと、（６）開始モジュール、決定モジュール、送信モジュール、作成モジュール、及び復元モジュールを実行するように構成された少なくとも１つの物理的プロセッサとを含み得る。
【０００９】
いくつかの例では、上記の方法は、非一時的コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、１つ又は２つ以上のコンピュータ実行可能命令を含み得るコンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、コンピューティングデバイスに、（１）クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含む、不透明データバックアップストリームの仮想復元を開始することと、（２）クライアント上のブロックの復元されたバージョンに基づいて、各ブロックについて、ブロックのオリジナルヘッダ及びテールを決定することと、（３）ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信することと、（４）サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成することと、（５）データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを含むブロックのオリジナルヘッダ及びテールを復元することとを行わせる。
【００１０】
上記で述べた実施形態のうちのいずれかからの機能は、本明細書で説明する一般原理に従って互いに組み合わせて使用されてもよい。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
【図面の簡単な説明】
【００１１】
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明とともに、これらの図面は、本開示の種々の原理を実証及び説明する。
【図１】データを不透明データバックアップストリームから復元するための例示的なシステムのブロック図である。
【図２】データを不透明データバックアップストリームから復元するための追加の例示的なシステムのブロック図である。
【図３】データを不透明データバックアップストリームから復元するための例示的な方法のフロー図である。
【図４】例示的なデータブロックのブロック図である。
【図５】データを不透明データバックアップストリームから復元するための例示的なコンピューティングシステムのブロック図である。
【図６】本明細書に記載及び／又は例解される実施形態のうちの１つ又は２つ以上を実装することができる例示的なコンピューティングシステムのブロック図である。
【図７】本明細書に記載及び／又は例解される実施形態のうちの１つ又は２つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。  図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書に記載される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の特許請求の範囲の範囲内にある全ての修正物、等価物、及び代替物を網羅する。
【例示的な実施形態の詳細な説明】
【００１２】
本開示は、概して、データを不透明データバックアップストリームから復元するためのシステム及び方法を対象とする。以下でより詳細に説明されるように、不透明データバックアップストリーム内の難読化されたデータブロックとデータブロックの難読化された部分のオリジナルバージョンとの間のマッピングを格納することによって、本明細書に記載されるシステムは、不透明データバックアップストリームを作成したアプリケーション以外のアプリケーションによる不透明データバックアップストリームからのバックアップの完全又は部分的復元を可能にし得る。
【００１３】
下記において、図１、２、及び５を参照して、データを不透明データバックアップストリームから復元するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明も、図３に関連して提供される。例示的なデータブロックの詳細な説明は、図４に関連して提供される。加えて、本明細書に記載される実施形態のうちの１つ又は２つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明は、それぞれ、図６及び７に関連して提供される。
【００１４】
図１は、データを不透明データバックアップストリームから復元するための例示的なシステム１００のブロック図である。この図に示すように、例示的なシステム１００は、１つ又は２つ以上のタスクを実施するための１つ又は２つ以上のモジュール１０２を含んでもよい。例えであって、以下でより詳細に説明されるように、例示的なシステム１００は、クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含み得る、不透明データバックアップストリームの仮想復元を開始する開始モジュール１０４を含み得る。例示的なシステム１００は、加えて、各データブロックについて、クライアント上のブロックの復元されたバージョンに基づいて、ブロックのオリジナルヘッダ及びテールを決定する決定モジュール１０６を含み得る。例示的なシステム１００はまた、ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信する送信モジュール１０８を含み得る。例示的なシステム１００は、加えて、サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成する作成モジュール１１０を含み得る。例示的なシステム１００はまた、データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを構成するブロックのオリジナルヘッダ及びテールを復元する復元モジュール１１２を含み得る。別個の要素として例解されるが、図１のモジュール１０２のうちの１つ又は２つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
【００１５】
ある特定の実施形態では、図１のモジュール１０２のうちの１つ又は２つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、１つ又は２つ以上のタスクを実施させてもよい１つ又は２つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えであって、以下でより詳細に説明されるように、モジュール１０２のうちの１つ又は２つ以上は、図２に示すデバイス（例えば、クライアント２０２、クライアント２１４、及び／若しくはサーバ２０６）、図６のコンピューティングシステム６１０、並びに／又は図７の例示的なネットワークアーキテクチャ７００の部分などの１つ又は２つ以上のコンピューティングデバイス上で動作するように格納及び構成されたソフトウェアモジュールを表し得る。図１のモジュール１０２のうちの１つ又は２つ以上はまた、１つ又は２つ以上のタスクを実施するように構成された１つ又は２つ以上の特殊目的のコンピュータの全て又は部分を表し得る。
【００１６】
図１の例示的なシステム１００は、様々な態様で実装されてもよい。例えば、例示的なシステム１００の全て又は一部分は、図２の例示的なシステム２００の部分を表し得る。図２に示すように、システム２００は、ネットワーク２０４を介してサーバ２０６と通信するクライアント２０２及び／又はクライアント２１４を含み得る。一例では、クライアント２０２は、モジュール１０２のうちの１つ又は２つ以上によってプログラムされ得る。いくつかの例では、クライアント２１４は、モジュール１０２のうちの１つ又は２つ以上によってプログラムされ得る。加えて、又はあるいは、サーバ２０６は、モジュール１０２のうちの１つ又は２つ以上によってプログラムされ得る。
【００１７】
一実施形態では、図１のモジュール１０２のうちの１つ又は２つ以上は、クライアント２０２、クライアント２１４、及び／又はサーバ２０６のうちの少なくとも１つのプロセッサによって実行されるとき、クライアント２０２、クライアント２１４、及び／又はサーバ２０６がデータを不透明データバックアップストリームから復元することを可能にし得る。例えであって、以下でより詳細に説明されるように、開始モジュール１０４は、クライアント２０２から、サーバ２０６上でホストされた不透明データバックアップストリーム２０８であって、不透明データバックアップストリーム２０８を作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含み得る不透明データバックアップストリーム２０８の仮想復元を開始し得る。不透明データバックアップストリーム２０８内の各ブロックについて、決定モジュール１０６は、クライアント２０２上のブロック２１０の復元されたバージョンに基づいて、ブロック２１０のオリジナルヘッダ及びテールを決定し得る。次に、送信モジュール１０８は、ブロック２１０のオリジナルヘッダ及びテールをクライアント２０２からサーバ２０６に送信し得る。最後に、作成モジュール１１０は、サーバ２０６において、サーバ２０６上の不透明データバックアップストリーム２０８内のデータブロック２１０の位置とブロック２１０のオリジナルヘッダ及びテールとの間のマッピング２１２を作成し得る。しばらくして、復元モジュール１１２は、データバックアップアプリケーションを使用せずに、マッピング２１２を使用することによって不透明データバックアップストリーム２０８内のデータを復元して、そのデータを構成するブロックのオリジナルヘッダ及びテールを復元し得る。
【００１８】
クライアント２０２及び／又は２１４は、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。クライアント２０２及び／又は２１４の例としては、限定することなく、ラップトップ、タブレット、デスクトップ、サーバ、セルラ電話、パーソナルデジタルアシスタンツ（Personal Digital Assistant、ＰＤＡ）、マルチメディアプレイヤ、組込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラスなど）、ゲーム機、これらのうちの１つ又は２つ以上の組み合わせ、図６の例示的なコンピューティングシステム６１０、又は任意の他の好適なコンピューティングデバイスが挙げられる。
【００１９】
サーバ２０６は、バックアップデータをホストすることができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。サーバ２０６の例としては、限定することなく、種々のデータベースサービスを提供するように、及び／又はある特定のソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられる。
【００２０】
ネットワーク２０４は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。ネットワーク２０４の例としては、限定することなく、イントラネット、ワイドエリアネットワーク（Wide Area Network、ＷＡＮ）、ローカルエリアネットワーク（Local Area Network、ＬＡＮ）、パーソナルエリアネットワーク（Personal Area Network、ＰＡＮ）、インターネット、電力線通信（Power Line Communication、ＰＬＣ）、セルラネットワーク（例えば、汎欧州デジタル移動電話方式（Global System for Mobile Communication、ＧＳＭ（登録商標））ネットワーク）、又は図７の例示的なネットワークアーキテクチャ７００などが挙げられる。ネットワーク２０４は、無線又は有線接続を使用して、通信又はデータ転送を容易にし得る。一実施形態では、ネットワーク２０４は、クライアント２０２、クライアント２１４、及び／又はサーバ２０６の間の通信を容易にし得る。
【００２１】
図３は、データを不透明データバックアップストリームから復元するための例示的なコンピュータ実装方法３００のフロー図である。図３に示す工程は、任意の好適なコンピュータ実行可能なコード及び／又はコンピューティングシステムによって実施されてもよい。いくつかの実施形態では、図３に示す工程は、図１のシステム１００、図２のシステム２００、図６のコンピューティングシステム６１０、及び／又は図７の例示的なネットワークアーキテクチャ７００の部分の構成要素のうちの１つ又は２つ以上によって実施され得る。
【００２２】
図３に示すように、工程３０２において、本明細書に記載されるシステムのうちの１つ又は２つ以上は、クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含む不透明データバックアップストリームの仮想復元を開始し得る。例えば、開始モジュール１０４は、図２のクライアント２０２の一部として、クライアント２０２から、サーバ２０６上でホストされた不透明データバックアップストリーム２０８であって、不透明データバックアップストリーム２０８を作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含み得る不透明データバックアップストリーム２０８の仮想復元を開始し得る。
【００２３】
本明細書で使用される場合、「データバックアップアプリケーション」という用語は、概して、データのバックアップコピーを作成及び／又は管理するように設計及び／又は構成された任意のアプリケーションを指す。いくつかの実施形態では、データバックアップアプリケーションは、データのバックアップを、制作環境からバックアップサーバにデータのバックアップストリームを作成することによって作成し得る。いくつかの例では、データバックアップアプリケーションは、他のデータバックアップアプリケーションによって読み取り可能でないように設計された不透明データバックアップストリームを作成することがある。データバックアップアプリケーションの例としては、ＯＲＡＣＬＥ  ＲＥＣＯＶＥＲＹ  ＭＡＮＡＧＥＲ及び／又はＳＹＭＡＮＴＥＣ  ＮＥＴＢＡＣＫＵＰが挙げられ得る。
【００２４】
本明細書で使用される場合、「不透明データバックアップストリーム」という用語は、概して、データが部分的又は完全に難読化されるような方法で格納される任意のデータを指す。いくつかの実施形態では、不透明データバックアップストリームは、バックアップアプリケーションによって作成され、バックアップサーバに格納されたデータのストリームであり得る。一実施形態では、不透明データバックアップストリームは、修正されたヘッダ及び／又はテールを有するデータブロックを含み得る。加えて、又はあるいは、不透明データバックアップストリームは、データブロックが制作環境に格納されるのとは異なる順序でデータブロックを格納し得る。いくつかの実施形態では、データバックアップアプリケーションは、破損したデータブロックを修理しつつ、不透明データバックアップストリームを作成し得る。一実施形態では、不透明データバックアップストリームは、ＯＲＡＣＬＥ  ＲＥＣＯＶＥＲＹ  ＭＡＮＡＧＥＲによって作成されたデータバックアップストリームを含み得る。
【００２５】
「データブロック」という用語は、本明細書で使用される場合、概して、データストリームの任意の所定の部分を指す。いくつかの実施形態では、データブロックは、単一のファイルを表し得る。一実施形態では、データブロックは、ヘッダ及びテールを含み得る。「ヘッダ」という用語は、本明細書で使用される場合、概して、ブロック及び／又はブロック内に含まれるデータに関する情報を含むデータブロックの先頭の部分を指す。例えば、ヘッダは、データブロックの相対アドレス及び／又はデータブロックのヘッダの残りのチェックサムを含み得る。「テール」という用語は、本明細書で使用される場合、概して、ブロック及び／又はブロック内に含まれるデータに関する情報を含むデータブロックの終端部分を指す。例えば、テールは、ブロック全体のチェックサムを含み得る。
【００２６】
いくつかの実施形態では、データバックアップアプリケーションは、不透明データバックアップストリーム内のデータブロックのヘッダ及びテールを修正し得る。図４に示すように、オリジナルデータブロック４０２は、制作環境内のデータブロックのオリジナルバージョン及び／又はデータブロックの完全に復元されたバージョンを表し得る。修正されたデータブロック４０４は、不透明データバックアップストリーム内のデータバックアップアプリケーションによって作成されたデータブロックのバージョンを表し得る。いくつかの例では、オリジナルデータブロック４０２は、修正されたデータブロック４０４とは異なるヘッダを有し得る。例えば、修正されたデータブロック４０４のヘッダ内の相対データブロックアドレスは、不透明データバックアップストリーム内の修正されたデータブロック４０４の位置のために異なる場合があり、その結果、修正されたデータブロック４０４のためのヘッダチェックサムも変更される。いくつかの例では、データブロック内の前の変更が、オリジナルデータブロック４０２とは異なるテールを有する修正されたデータブロック４０４をもたらす場合がある。例えば、修正されたデータブロック４０４のテール内のブロックチェックサムは、修正されたデータブロック４０４のヘッダに対する変更のために変更される場合がある。したがって、ヘッダ及びテールを含むデータブロック全体を見るアプリケーションは、修正されたデータブロック４０４がオリジナルデータブロック４０２と同じデータを表すと決定することができない場合がある。
【００２７】
「仮想復元」という用語は、本明細書で使用される場合、概して、データセットを完全に復元し、完全に復元されたデータセットをコンピューティングシステムに格納することを意図しない復元動作を指す。いくつかの例では、本明細書に記載されるシステムは、復元されたデータ全体を任意のコンピューティングシステムに格納することを回避し得る。例えば、本明細書に記載されるシステムは、データブロックが検査されるとすぐに、復元されたデータブロックを破棄し得る。
【００２８】
開始モジュール１０４は、種々のコンテキスト内で仮想復元を開始し得る。一実施形態では、開始モジュール１０４は、仮想復元を不透明データバックアップストリームの修正に応答して開始し得る。例えば、ストリームによってアップされた制作データバックアップが修正されたかもしれないため、不透明データバックアップストリームを修正することができる。別の実施形態では、開始モジュール１０４は、スケジュールされた間隔で仮想復元を開始し得る。例えば、開始モジュール１０４は、仮想復元を毎日、毎週、又は毎月開始し得る。
【００２９】
加えて、又はあるいは、開始モジュール１０４は、仮想復元を別のアプリケーションからの要求に応答して開始し得る。例えば、追加のデータバックアップアプリケーションがデータの一部分を不透明データバックアップストリームから復元するように試みている場合があり、不透明データバックアップストリーム内のデータが追加のバックアップアプリケーションによって読み取り可能であることを確保するために、開始モジュール１０４に仮想復元を開始するように促すことができる。別の実施形態では、開始モジュール１０４は、不透明データバックアップストリーム及び／又は追加のデータバックアップアプリケーションを監視し得、仮想復元を、追加のデータバックアップアプリケーションが不透明データバックアップストリームに対して復元動作を実施するように試みていることの検出に応答して開始し得る。
【００３０】
図３に戻ると、工程３０４において、本明細書に記載されるシステムのうちの１つ又は２つ以上は、各データブロックについて、クライアント上のブロックの復元されたバージョンに基づいて、ブロックのオリジナルヘッダ及びテールを決定し得る。例えば、決定モジュール１０６は、図２のクライアント２０２の一部として、クライアント２０２上のブロック２１０の復元されたバージョンに基づいて、ブロック２１０のオリジナルヘッダ及びテールを決定し得る。
【００３１】
決定モジュール１０６は、種々の態様でブロックのオリジナルヘッダ及びテールを決定し得る。例えば、決定モジュール１０６は、復元されたブロックを検査し、ヘッダ及びテールを識別し得る。別の実施形態では、決定モジュール１０６は、ブロックに対する変更を識別するために、不透明データバックアップストリーム内の修正されたブロックを復元されたブロックと比較し得る。
【００３２】
いくつかの実施形態では、決定モジュール１０６は、各ブロックのハッシュを作成し得る。いくつかの例では、決定モジュール１０６は、ブロックのヘッダ及びテールを除外することによって、ブロックのハッシュを作成し得る。「ハッシュ」という用語は、本明細書で使用される場合、ファイルの任意の省略表現及び／又はファイルのコンテンツを指し得る。例えば、「ハッシュ」という用語は、１つ又は２つ以上のハッシュ関数、フィンガープリント、チェックサム、並びに／又はファイル及び／若しくはファイルコンテンツを（コリジョンがなければ）一意に識別する任意の他のタイプのファイル識別子の出力を指し得る。
【００３３】
工程３０６において、本明細書に記載されるシステムのうちの１つ又は２つ以上は、ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信し得る。例えば、送信モジュール１０８は、図２のクライアント２０２の一部として、ブロック２１０のオリジナルヘッダ及びテールをクライアント２０２からサーバ２０６に送信し得る。
【００３４】
送信モジュール１０８は、ブロックのオリジナルヘッダ及びテールを種々のコンテキストでサーバに送信し得る。例えば、送信モジュール１０８は、ブロックのヘッダ及びテールが識別されるとすぐに、ブロックのヘッダ及びテールをサーバに送信し得る。
【００３５】
別の実施形態では、送信モジュール１０６は、まずブロックのハッシュをサーバに送信し得る。この実施形態では、サーバがブロックのハッシュも有するとサーバが応答した場合、送信モジュール１０６は、ブロックのヘッダ及びテールをサーバに送信し得る。サーバがブロックのハッシュを有しないとサーバが応答した場合、送信モジュール１０６は、データブロック全体をサーバに送信し得る。いくつかの例では、データブロックが不透明データバックアップストリーム内に存在し得ず、その代わりに復元動作中にデータバックアップアプリケーションによって再構築され得るため、サーバはデータブロックのハッシュを有しない場合がある。例えば、データバックアップアプリケーションは、不透明データバックアップストリームに対してヘッダブロック及び／又はブロックゼロを格納しない場合がある。この例では、送信モジュール１０６はブロックゼロのハッシュをサーバに送信し得、サーバはサーバがブロックゼロのハッシュを有しないと応答し得、送信モジュール１０６はサーバブロックゼロを送信し得る。送信モジュール１０６は、サーバに、同じメッセージ又は別個のメッセージ内のブロックゼロのためのヘッダ及びテールを送信し得る。
【００３６】
工程３０８において、本明細書に記載されるシステムのうちの１つ又は２つ以上は、サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成し得る。例えば、作成モジュール１１０は、図２のサーバ２０６の一部として、サーバ２０６において、サーバ２０６上の不透明データバックアップストリーム２０８内のデータブロック２１０の位置とブロック２１０のオリジナルヘッダ及びテールとの間のマッピング２１２を作成し得る。
【００３７】
作成モジュール１１０は、種々の態様でマッピングを作成し得る。例えば、作成モジュール１１０は、不透明データストリーム内のデータブロックの位置とハッシュ内のデータのオリジナルヘッダ及びテールとの間のマッピングを格納し得る。別の実施形態では、作成モジュール１１０は、マッピングをデータベースに格納し得る。いくつかの実施形態では、作成モジュール１１０は、ブロックのオリジナルヘッダ及びテールをマッピングに格納し得る。他の実施形態では、オリジナルヘッダ及びびテールは、サーバ上の他の場所に格納され得、作成モジュール１１０は、オリジナルヘッダ及びテールへのポインタを格納し得る。
【００３８】
いくつかの実施形態では、マッピングを作成する前に、作成モジュール１１０は、まず、サーバに格納された各データブロックのハッシュを作成し得る。この実施形態では、サーバは、サーバが特定のデータブロックのハッシュを有するか否かを尋ねる、クライアントからのメッセージを受信し得る。サーバがデータブロックのハッシュを有するとサーバが応答した場合、作成モジュール１１０は、マッピングの中に入れられるデータブロックのオリジナルヘッダ及びテールを受信し得る。サーバがデータブロックのハッシュを有しないとサーバが応答した場合、サーバは、データブロックを受信し得、作成モジュール１１０は、不透明データバックアップストリームに格納されていないデータブロックの位置とデータブロックのオリジナルヘッダ及びテールとの間のマッピングを作成し得る。
【００３９】
いくつかの実施形態では、作成モジュール１１０は、ブロックのヘッダ及びテールを除外することによって、データブロックのハッシュを作成し得る。この実施形態では、修正されたブロックのサーバによって作成されたハッシュは、ヘッダ及びテール内に存在しないブロック内のデータがデータバックアップアプリケーションによって変更されない場合があるため、復元されたブロックのクライアントによって作成されたハッシュと一致するであろう。
【００４０】
いくつかの実施形態では、サーバ及びクライアントは、データブロックのためのマッピングを作成する過程の間に複数回通信し得る。図５は、マッピングを作成することによってデータを不透明データバックアップストリームから復元するための例示的なコンピューティングシステム５００のブロック図である。図５に示すように、クライアント５０２は、不透明データバックアップストリーム５１０を当初作成したバックアップアプリケーション５０８によって実施される仮想復元を開始し得る。不透明データバックアップストリーム５１０は、ストリームデータをサーバ５０６から要求し得るアプリケーションプログラミングインターフェース（application programming interface、ＡＰＩ）５０４を有し得る。サーバ５０６は、データを不透明データバックアップストリーム５１０からバックアップアプリケーション５０８にＡＰＩ  ５０４を介して送信し得る。次いで、バックアップアプリケーション５０８は、復元されたストリームデータを、ブロックハッシュ５１４をデータブロックから作成し得るクライアント５０２に送信し得る。クライアント５０２はまた、各データブロックについて、オリジナルヘッダ及びテール５１６を識別し得る。クライアント５０２は、ブロックハッシュ５１４を単独及び／又はグループでサーバ５０６に送信し得る。サーバ５０６は、ブロックハッシュ５１４内のハッシュをブロックハッシュ５１２内のハッシュと一致させるように試みる場合がある。次いで、サーバ５０６は、ブロックハッシュ５１４内のハッシュがブロックハッシュ５１２内に存在するもの及び存在しないものについて、クライアント５０２に応答し得る。クライアント５０２は、サーバ５０６に、サーバ５０６がブロックハッシュ５１２内で見つけることができなかった任意のブロックハッシュのためのデータブロックを送信し得る。クライアント５０２はまた、オリジナルヘッダ及びテール５１６をサーバ５０６に送信し得る。最後に、サーバ５０６は、不透明データバックアップストリーム５１０内の各データブロックの位置とオリジナルヘッダ及びテール５１６との間のマッピング５１８を作成し得る。単にサーバ５０６上にまだ存在しない完全なブロックを送信することによって、及び別様に、５０６上に既に存在するブロックのためのオリジナルヘッダ及びテール５１６のみを送信することによって、本明細書に記載されるシステムは、マッピング５１８の完全なセットを生成するために必要なネットワークトラフィックを大幅に低減し得る。
【００４１】
いくつかの実施形態では、バックアップアプリケーション５０８は、ＯＲＡＣＬＥ  ＲＥＣＯＶＥＲＹ  ＭＡＮＡＧＥＲカーネルを含み得、サーバ５０６は、ＯＲＡＣＬＥ  ＲＥＣＯＶＥＲＹ  ＭＡＮＡＧＥＲサーバを含み得、及び／又はクライアント５０２は、ＯＲＡＣＬＥ  ＲＥＣＯＶＥＲＹ  ＭＡＮＡＧＥＲクライアントを含み得る。いくつかの実施形態では、ＡＰＩ  ５０４は、ＯＲＡＣＬＥ  ＲＥＣＯＶＥＲＹ  ＭＡＮＡＧＥＲの一部であり得る。他の実施形態では、ＡＰＩ  ５０４は、ＳＹＭＡＮＴＥＣ  ＮＥＴＢＡＣＫＵＰの一部であり得る。いくつかの実施形態では、バックアップアプリケーション５０８、クライアント５０２、及び／若しくはＡＰＩ  ５０４は全て、ＮＥＴＡＰＰ  ＳＮＡＰＭＡＮＡＧＥＲインスタンスの一部であり得、並びに／又はサーバ５０６は、ＳＹＭＡＮＴＥＣ  ＮＥＴＢＡＣＫＵＰアプライアンスの一部であり得る。
【００４２】
図３に戻ると、工程３１０において、本明細書に記載されるシステムのうちの１つ又は２つ以上は、データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを構成するブロックのオリジナルヘッダ及びテールを復元し得る。例えば、復元モジュール１１２は、図２のクライアント２１４の一部として、データバックアップアプリケーションを使用せずに、マッピング２１２を使用することによって不透明データバックアップストリーム２０８内のデータを復元して、そのデータを構成するブロックのオリジナルヘッダ及びテールを復元し得る。
【００４３】
復元モジュール１１２は、不透明データバックアップストリーム内のデータを種々のコンテキストで復元し得る。例えば、復元モジュール１１２は、仮想復元を実施した同じクライアント上でホストされ得る。別の実施形態では、復元モジュール１１２は、異なるクライアント上でホストされ得る。
【００４４】
いくつかの実施形態では、データバックアップアプリケーションは、不透明データバックアップストリームからの部分的復元を実施するように構成されていなくてもよく、復元モジュール１１２は、データバックアップアプリケーションを使用せずにデータを復元して、不透明データバックアップストリームの一部分を除外している間に、不透明データバックアップストリームのサブセットを復元し得る。例えば、復元モジュール１１２は、不透明データバックアップストリームに基づいて差分バックアップを作成することによって、不透明データバックアップストリーム内のデータを復元し得る。この例では、復元モジュール１１２は、不透明データバックアップストリーム内のデータの部分を読み取り読み得、データ自体を格納せずに、データになされた任意の変更を格納し得る。いくつかの例では、復元モジュール１１２は、テスト環境のための差分バックアップをこのように作成し得る。いくつかの実施形態では、復元モジュール１１２は、不透明データバックアップストリーム内のデータの差分バックアップ及び／又はスナップショットを、不透明データバックアップストリーム内のデータの全体よりもかなり小さいサイズのデータ量を書き込むことによって作成し得る。
【００４５】
いくつかの実施形態では、復元モジュール１１２は、データを、不透明データバックアップストリームからの増分バックアップデータと完全バックアップ画像との組み合わせによる合成バックアップ（即ち、ロールフォワードバックアップ）を作成することによって復元し得る。いくつかの例では、不透明データバックアップストリームを作成したアプリケーションは、追加のバックアップアプリケーションとは異なるブロックサイズを使用する場合があり、したがって、追加のバックアップアプリケーションは、合成バックアップを不透明データバックアップストリーム自体から作成することができない場合がある。いくつかの実施形態では、本明細書に記載されるシステムは、工程３０６、３０８、及び３１０と共に上記のプロセスを使用して、合成バックアップを表すデータブロック及びハッシュのマッピングの新しいセットを作成し得る。一実施形態では、データブロック及びハッシュの新しいセットはまた、既存のブロックにマッピングし得る（即ち、増分バックアップ内のブロックの修正されたバージョンは、完全バックアップ内のブロックのオリジナルバージョンにマッピングし得る）。
【００４６】
上記の方法３００に関連して説明されるように、本明細書に記載されるシステム及び方法は、不透明データバックアップストリームを作成したオリジナルデータバックアップアプリケーションによって実施された完全な復元以外では別様に使用不可であろう不透明データバックアップストリーム上でのコピーデータ管理を可能にし得る。本明細書に記載されるシステム及び方法は、データブロックのオリジナルヘッダ及びテールを不透明データバックアップストリームから捕捉するために仮想復元を実施し得、次いで、ヘッダ及びテールと不透明データバックアップストリーム内のデータブロックの位置との間のマッピングを作成し得る。このマッピングを使用することによって、他のバックアップアプリケーションは、データの一部又は全てを復元することができ得る。いくつかの例では、他のバックアップアプリケーションは、データの差分を作成し、テスト環境及び他のシステムが、データの完全に新しいコピーを作成せずに、データにアクセスすることを可能にし得る。本明細書に記載されるシステム及び方法を、コピーデータ管理技術を不透明データバックアップストリームに適用するために使用することによって、管理者は、データの完全なコピーを有する環境をプロビジョニングすることによって要求されるストレージリソース又は不透明データバックアップストリーム上で完全な復元を実施するために必要なコンピューティングリソースを消費することなく、データセットを有する多くの環境をプロビジョニングすることができ得る。
【００４７】
図６は、本明細書に記載及び／又は例解される実施形態のうちの１つ又は２つ以上を実装することができる例示的なコンピューティングシステム６１０のブロック図である。例えば、コンピューティングシステム６１０の全て又は一部分は、単独又は他の要素との組み合わせのいずれかで、本明細書に記載される工程のうちの１つ又は２つ以上（図３に例示する工程のうちの１つ又は２つ以上など）を実施し得るか、及び／又は実施するための手段であり得る。コンピューティングシステム６１０の全て又は一部分はまた、本明細書に記載及び／又は例解される任意の他の工程、方法、又はプロセスを実施し得るか、及び／又は実施するための手段であり得る。
【００４８】
コンピューティングシステム６１０は、コンピュータ可読命令を実行することができる任意のシングル若しくはマルチプロセッサコンピューティングデバイス又はシステムを広く表す。コンピューティングシステム６１０の例としては、限定することなく、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散コンピューティングシステム、ハンドヘルドデバイス、又は任意の他のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム６１０は、少なくとも１つのプロセッサ６１４、及びシステムメモリ６１６を含み得る。
【００４９】
プロセッサ６１４は、データを処理すること、又は命令を解釈及び実行することができる任意のタイプ又は形式の物理的処理ユニット（例えば、ハードウェア実装中央処理ユニット）を概して表す。ある特定の実施形態では、プロセッサ６１４は、命令をソフトウェアアプリケーション又はモジュールから受信し得る。これらの命令は、プロセッサ６１４に、本明細書に記載及び／又は例解される例示的な実施形態のうちの１つ又は２つ以上の機能を実施させ得る。
【００５０】
システムメモリ６１６は、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形式の揮発性又は不揮発性記憶デバイス若しくは媒体を概して表す。システムメモリ６１６の例としては、限定することなく、ランダムアクセスメモリ（Random Access Memory、ＲＡＭ）、読み取り専用メモリ（Read Only Memory、ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、ある特定の実施形態では、コンピューティングシステム６１０は、揮発性メモリユニット（例えば、システムメモリ６１６など）、及び不揮発性記憶デバイス（例えば、以下で詳細に説明するような一次記憶デバイス６３２など）の両方を含み得る。一例では、図１からのモジュール１０２のうちの１つ又は２つ以上は、システムメモリ６１６にロードされ得る。
【００５１】
ある特定の実施形態では、例示的なコンピューティングシステム６１０はまた、プロセッサ６１４及びシステムメモリ６１６に加えて、１つ又は２つ以上の構成要素又は要素を含み得る。例えば、図６に示すように、コンピューティングシステム６１０は、各々が通信インフラストラクチャ６１２を介して相互接続され得るメモリコントローラ６１８と、入力／出力（Ｉ／Ｏ）コントローラ６２０と、通信インターフェース６２２とを含み得る。通信インフラストラクチャ６１２は、コンピューティングデバイスの１つ又は２つ以上の構成要素間の通信を容易にすることができる任意のタイプ又は形式のインフラストラクチャを概して表す。通信インフラストラクチャ６１２の例としては、限定することなく、通信バス（業界標準アーキテクチャ（Industry Standard Architecture、ＩＳＡ）、周辺構成要素相互接続（Peripheral Component Interconnect、ＰＣＩ）、ＰＣＩエクスプレス（PCI Express、ＰＣＩｅ）、又は類似のバスなど）、及びネットワークが挙げられる。
【００５２】
メモリコントローラ６１８は、メモリ若しくはデータを取り扱うことができるか、又はコンピューティングシステム６１０の１つ又は２つ以上の構成要素間の通信を制御することができる任意のタイプ又は形式のデバイスを概して表す。例えば、ある特定の実施形態では、メモリコントローラ６１８は、通信インフラストラクチャ６１２を介して、プロセッサ６１４と、システムメモリ６１６と、Ｉ／Ｏコントローラ６２０と間の通信を制御し得る。
【００５３】
Ｉ／Ｏコントローラ６２０は、コンピューティングデバイスの入出力機能を調整及び／又は制御することができる任意のタイプ又は形式のモジュールを概して表す。例えば、ある特定の実施形態では、Ｉ／Ｏコントローラ６２０は、プロセッサ６１４、システムメモリ６１６、通信インターフェース６２２、ディスプレイアダプタ６２６、入力インターフェース６３０、及び記憶インターフェース６３４などのコンピューティングシステム６１０の１つ又は２つ以上の要素間のデータの転送を制御し得るか又は容易にし得る。
【００５４】
通信インターフェース６２２は、例示的なコンピューティングシステム６１０と、１つ又は２つ以上の追加のデバイスとの間の通信を容易にすることができる任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。例えば、ある特定の実施形態では、通信インターフェース６２２は、コンピューティングシステム６１０と追加のコンピューティングシステムを含む私的又は公的ネットワークとの間の通信を容易にし得る。通信インターフェース６２２の例としては、限定することなく、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース６２２は、インターネットなどのネットワークへの直接的なリンクを介して、リモートサーバへの直接的な接続を提供し得る。通信インターフェース６２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラ電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供し得る。
【００５５】
ある特定の実施形態では、通信インターフェース６２２はまた、外部バス又は通信チャネルを介して、コンピューティングシステム６１０と、１つ又は２つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタを表し得る。ホストアダプタの例としては、限定することなく、スモールコンピュータシステムインターフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ（ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（ＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、シリアルＡＴＡ（ＳＡＴＡ）、及びエクスターナルＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネット（登録商標）アダプタなどが挙げられる。通信インターフェース６２２はまた、コンピューティングシステム６１０が分散又はリモートコンピューティングに関与することを可能にし得る。例えば、通信インターフェース６２２は、実行のために、命令をリモートデバイスから受信するか、又は命令をリモートデバイスに送信し得る。
【００５６】
図６に示すように、コンピューティングシステム６１０はまた、ディスプレイアダプタ６２６を介して、通信インフラストラクチャ６１２に連結された少なくとも１つのディスプレイデバイス６２４を含み得る。ディスプレイデバイス６２４は、ディスプレイアダプタ６２６によって転送された情報を視覚的に表示することができる任意のタイプ又は形式のデバイスを概して表す。同様に、ディスプレイアダプタ６２６は、ディスプレイデバイス６２４上に表示するために、通信インフラストラクチャ６１２から（又は当該技術分野において既知のように、フレームバッファから）、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。
【００５７】
図６に示すように、例示的なコンピューティングシステム６１０はまた、入力インターフェース６３０を介して、通信インフラストラクチャ６１２に連結された少なくとも１つの入力デバイス６２８を含み得る。入力デバイス６２８は、コンピュータ又は人間のいずれかによって生成された入力を、例示的なコンピューティングシステム６１０に提供することができる任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス６２８の例としては、限定することなく、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
【００５８】
図６に示すように、例示的なコンピューティングシステム６１０はまた、記憶インターフェース６３４を介して、通信インフラストラクチャ６１２に連結された一次記憶デバイス６３２及びバックアップ記憶デバイス６３３を含み得る。記憶デバイス６３２及び６３３は、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。例えば、記憶デバイス６３２及び６３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、又はフラッシュドライブなどであり得る。記憶インターフェース６３４は、コンピューティングシステム６１０の記憶デバイス６３２及び６３３と他の構成要素との間でデータを転送するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。
【００５９】
ある特定の実施形態では、記憶デバイス６３２及び６３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を格納するように構成された取り外し可能な記憶装置から読み取るように、及び／又は記憶装置に書き込むように構成され得る。好適な取り外し可能な記憶装置の例としては、限定することなく、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス６３２及び６３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム６１０にロードされることを可能にするための他の類似の構造又はデバイスを含み得る。例えば、記憶デバイス６３２及び６３３は、ソフトウェア、データ、他のコンピュータ可読情報を読み取り、及び書き込むように構成され得る。記憶デバイス６３２及び６３３はまた、コンピューティングシステム６１０の一部であり得るか、又は他のインターフェースシステムによってアクセスされる別個のデバイスであり得る。
【００６０】
多くの他のデバイス又はサブシステムが、コンピューティングシステム６１０に接続され得る。逆に、図６に示す構成要素及びデバイスの全てが、本明細書に記載及び／又は例解される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図６に示すものとは異なる態様で相互接続され得る。コンピューティングシステム６１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を採用し得る。例えば、本明細書に開示される例示的な実施形態のうちの１つ又は２つ以上は、コンピュータ可読媒体上に、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）としてコード化され得る。「コンピュータ可読媒体」という用語は、本明細書で使用される場合、概して、コンピュータ可読命令を記憶又は担持することができる任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送タイプ媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光記憶媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びＢＬＵ−ＲＡＹ（登録商標）ディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュ媒体）などの非一時的タイプ媒体、並びに他の分散システムが挙げられる。
【００６１】
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム６１０にロードされ得る。次いで、コンピュータ可読媒体に格納されたコンピュータプログラムの全て又は一部分は、システムメモリ６１６並びに／又は記憶デバイス６３２及び６３３の種々の部分の中に格納され得る。プロセッサ６１４によって実行されるとき、コンピューティングシステム６１０にロードされたコンピュータプログラムは、プロセッサ６１４に、本明細書に記載及び／又は例解される例示的な実施形態のうちの１つ又は２つ以上の機能を実施させ得るか、及び／又はそれらの機能を実施するための手段であり得る。加えて、又はあるいは、本明細書に記載及び／又は例解される例示的な実施形態のうちの１つ又は２つ以上は、ファームウェア及び／又はハードウェアにおいて実装され得る。例えば、コンピューティングシステム６１０は、本明細書に開示される例示的な実施形態のうちの１つ又は２つ以上を実装するように適合された特定用途向け集積回路（Application Specific Integrated Circuit、ＡＳＩＣ）として構成され得る。
【００６２】
図７は、クライアントシステム７１０、７２０、及び７３０、並びにサーバ７４０及び７４５がネットワーク７５０に連結され得る例示的なネットワークアーキテクチャ７００のブロック図である。上記で詳述されたように、ネットワークアーキテクチャ７００の全て又は一部分は、単独又は他の要素との組み合わせのいずれかで、本明細書に開示される工程のうちの１つ又は２つ以上（図３に例示する工程のうちの１つ又は２つ以上など）を実施し得るか、及び／又はそれらの工程を実施するための手段であり得る。ネットワークアーキテクチャ７００の全て又は一部分はまた、本開示において記載された他の工程及び特徴を実施するために使用され得るか、及び／又はそれらの工程及び特徴を実施するための手段であり得る。
【００６３】
クライアントシステム７１０、７２０、及び７３０は、図６の例示的なコンピューティングシステム６１０などの任意のタイプ又は形式のコンピューティングデバイス又はシステムを概して表す。同様に、サーバ７４０及び７４５は、種々のデータベースサービスを提供するように、及び／又はある特定のソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを概して表す。ネットワーク７５０は、例えば、イントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを概して表す。一例では、クライアントシステム７１０、７２０、及び／若しくは７３０、並びに／又はサーバ７４０及び／若しくは７４５は、図１からのシステム１００の全て又は一部分を含み得る。
【００６４】
図７に示すように、１つ又は２つ以上の記憶デバイス７６０（１）〜（Ｎ）は、サーバ７４０に直接的に取設され得る。同様に、１つ又は２つ以上の記憶デバイス７７０（１）〜（Ｎ）は、サーバ７４５に直接的に取設され得る。記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）は、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。ある特定の実施形態では、記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）は、ネットワークファイルシステム（Network File System、ＮＦＳ）、サーバメッセージブロック（Server Message Block、ＳＭＢ）、又は共通インターネットファイルシステム（Common Internet File System、ＣＩＦＳ）などの種々のプロトコルを使用して、サーバ７４０及び７４５と通信するように構成されたネットワーク接続型ストレージ（Network-Attached Storage、ＮＡＳ）デバイスを表し得る。
【００６５】
サーバ７４０及び７４５はまた、ストレージエリアネットワーク（Storage Area Network、ＳＡＮ）ファブリック７８０に接続され得る。ＳＡＮファブリック７８０は、複数の記憶デバイス間の通信を容易にすることができる任意のタイプ又は形式のコンピュータネットワーク又はアーキテクチャを概して表す。ＳＡＮファブリック７８０は、サーバ７４０及び７４５と、複数の記憶デバイス７９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ７９５との間の通信を容易にし得る。ＳＡＮファブリック７８０はまた、記憶デバイス７９０（１）〜（Ｎ）及びインテリジェント記憶アレイ７９５がクライアントシステム７１０、７２０、及び７３０にローカルに取設されたデバイスとして見えるように、ネットワーク７５０並びにサーバ７４０及び７４５を介して、クライアントシステム７１０、７２０、及び７３０と、デバイス７９０（１）〜（Ｎ）及び／又はアレイ７９５との間の通信を容易にし得る。記憶デバイス７６０（１）〜（Ｎ）及び記憶デバイス７７０（１）〜（Ｎ）と同様に、記憶デバイス７９０（１）〜（Ｎ）及びインテリジェント記憶アレイ７９５は、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。
【００６６】
ある特定の実施形態及び図６の例示的なコンピューティングシステム６１０の参照では、図６の通信インターフェース６２２などの通信インターフェースを使用して、各クライアントシステム７１０、７２０、及び７３０と、ネットワーク７５０との間の接続性を提供することができる。クライアントシステム７１０、７２０、及び７３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ７４０又は７４５上の情報にアクセスすることができ得る。かかるソフトウェアは、クライアントシステム７１０、７２０、及び７３０が、サーバ７４０、サーバ７４５、記憶デバイス７６０（１）〜（Ｎ）、記憶デバイス７７０（１）〜（Ｎ）、記憶デバイス７９０（１）〜（Ｎ）、又はインテリジェント記憶アレイ７９５によってホストされるデータにアクセスすることを可能にし得る。図７はデータを交換するためのネットワーク（インターネットなど）の使用を描写するが、本明細書に記載及び／又は例解される実施形態は、インターネット又は任意の特定のネットワークベース環境に限定されない。
【００６７】
少なくとも１つの実施形態では、本明細書に開示される例示的な実施形態のうちの１つ又は２つ以上の全て又は一部分は、コンピュータプログラムとしてコード化され、サーバ７４０、サーバ７４５、記憶デバイス７６０（１）〜（Ｎ）、記憶デバイス７７０（１）〜（Ｎ）、記憶デバイス７９０（１）〜（Ｎ）、インテリジェント記憶アレイ７９５、又はこれらの任意の組み合わせにロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうちの１つ又は２つ以上の全て又は一部分はまた、コンピュータプログラムとしてコード化され、サーバ７４０に格納され、サーバ７４５によって動作され、ネットワーク７５０を通じてクライアントシステム７１０、７２０、及び７３０に分散され得る。
【００６８】
上記で詳述したように、コンピューティングシステム６１０及び／又はネットワークアーキテクチャ７００のうちの１つ又は２つ以上の構成要素は、単独又は他の要素との組み合わせのいずれかで、データを不透明データバックアップストリームから復元するための例示的な方法のうちの１つ又は２つ以上の方法を実施し得るか、及び／又はこれらの方法を実施するための手段であり得る。
【００６９】
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書に記載及び／又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア（又はこれらの任意の組み合わせ）構成を使用して、個々に、及び／又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例示的であると見なされるべきである。
【００７０】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表し得る。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザ又は他の遠隔インターフェースを通じて、アクセス可能であり得る。本明細書に記載される種々の機能は、遠隔デスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【００７１】
種々の実施形態では、図１の例示的なシステム１００の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能のうちの１つ又は２つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成し得る。例えば、本明細書に記載されるソフトウェアモジュールのうちの１つ又は２つ以上は、２つ又は３つ以上のクライアント（例えば、顧客）が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）間でアプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有し得る。本明細書に記載されるモジュールのうちの１つ又は２つ以上はまた、ある顧客が別の顧客のデータ及び／又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び／又は構成情報を分割し得る。
【００７２】
種々の実施形態によると、図１の例示的なシステム１００の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書に記載されるモジュール及び／又はデータは、仮想マシン内に存在し得る、及び／又はそこで実行し得る。本明細書で使用される場合、「仮想マシン」という用語は、概して、仮想マシンマネージャ（例えば、ハイパーバイザ）によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。加えて、又はあるいは、本明細書に記載されるモジュール及び／又はデータは、仮想化層内に存在し得る、及び／又はそこで実行し得る。本明細書で使用される場合、「仮想化層」という用語は、概して、オペレーティングシステム環境に重なる、及び／又はそれから抽象化される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、仮想化層を、根本的な基本オペレーティングシステムの一部であるかのように提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって、管理され得る。例えば、ソフトウェア仮想化ソリューションは、最初は基本ファイルシステム及び／又はレジストリ内の場所に向けられた呼び出しを、仮想化層内の場所にリダイレクトし得る。
【００７３】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、モバイルコンピューティング環境の一部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス（例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス）などを含む、広範なモバイルコンピューティングデバイスによって実装され得る。いくつかの例では、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に１つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力、アプリケーションのインストールを制限する（例えば、承認されたアプリケーションストアのみから得る）能力などを制限する、制限されたプラットフォームを含む、１つ又は２つ以上の異なる特性を含み得る。本明細書に記載される種々の機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００７４】
加えて、図１の例示的なシステム１００の全て又は一部分は、情報管理のための１つ又は２つ以上のシステムの一部分を表し得る、それらの相互作用し得る、それらによって生成されるデータを消費し得る、及び／又はそれらによって消費されるデータを生成し得る。本明細書で使用される場合、「情報管理」という用語は、データの保護、組織化、及び／又は記憶を指し得る。情報管理のためのシステムの例としては、限定することなく、記憶システム、バックアップシステム、アーカイバルシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどが挙げられ得る。
【００７５】
いくつかの実施形態では、図１の例示的なシステム１００の全て又は一部分は、情報セキュリティのための１つ又は２つ以上のシステムの一部分を表し得る、それらによって保護されるデータを生成し得る、及び／又はそれらと通信し得る。本明細書で使用される場合、「情報セキュリティ」という用語は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティのためのシステムの例としては、限定することなく、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、アイデンティティ認証システム、アクセス制御システム、暗号化システム、ポリシーコンプライアンスシステム、侵入検出及び防止システム、電子ディスカバリシステムなどが挙げられ得る。
【００７６】
いくつかの実施例によると、図１の例示的なシステム１００の全て又は一部分は、エンドポイントセキュリティのための１つ又は２つ以上のシステムの一部分を表し得る、それらと通信し得る、及び／又はそれらから保護を受け得る。本明細書で使用される場合、「エンドポイントセキュリティ」という用語は、不法及び／又は違法な使用、アクセス、及び／又は制御からのエンドポイントシステムの保護を指し得る。エンドポイント保護のためのシステムの例としては、限定することなく、マルウェア対策システム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどが挙げられ得る。
【００７７】
本明細書に記載及び／又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書に例解及び／又は記載される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書に記載及び／又は例解される種々の例示的な方法はまた、本明細書に記載若しくは例解される工程のうちの１つ又は２つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
【００７８】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書に記載及び／又は例解されているが、これらの例示的な実施形態のうちの１つ又は２つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書に開示される実施形態はまた、ある特定のタスクを実施するソフトウェアモジュールを使用して、実装され得る。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの１つ又は２つ以上を実施するように、コンピューティングシステムを構成し得る。
【００７９】
加えて、本明細書に記載されるモジュールのうちの１つ又は２つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を、ある形態から別の形態に変換し得る。例えば、本明細書に列挙されるモジュールのうちの１つ又は２つ以上は、変換される難読化されたデータブロックを受信し、データブロックを難読化されていないデータブロックに変換し、変換結果をサーバに出力し、変換結果を使用して、難読化されたブロックと難読化されていないデータとの間のマッピングを作成し、変換結果をサーバに格納し得る。加えて、又はあるいは、本明細書に列挙されるモジュールのうちの１つ又は２つ以上は、コンピューティングデバイス上で実行すること、コンピューティングデバイス上にデータを記憶すること、及び／又はそうでなければ、コンピューティングデバイスと相互作用することによって、物理的コンピューティングデバイスのプロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は任意の他の部分を１つの形式からもう１つの形式に変換してもよい。
【００８０】
先述の説明は、当業者が、本明細書に開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、包括的であること、又は開示されるいかなる正確な形態にも限定されることを意図されない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書に開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【００８１】
別途記載されない限り、「〜に接続される（connected to）」及び「〜に連結される（coupled to）」という用語（及びそれらの派生語）は、本明細書及び特許請求の範囲で使用される場合、直接的及び間接的（即ち、他の要素又は構成要素を介した）接続の両方を許容するとして解釈されるものとする。加えて、「ａ」又は「ａｎ」という用語は、本明細書及び特許請求の範囲で使用される場合、「〜のうちの少なくとも１つ（at least one of）」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む（including）」及び「有する（having）」という用語（及びそれらの派生語）は、本明細書及び特許請求の範囲で使用される場合、「備える（comprising）」という語と同義的であり、かつ同じ意味を有する。
【図１】
0006589054.tif 000002
【図２】
0006589054.tif 000003
【図３】
0006589054.tif 000004
【図４】
0006589054.tif 000005
【図５】
0006589054.tif 000006
【図６】
0006589054.tif 000007
【図７】
0006589054.tif 000008