(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6589054
(24)【登録日】2019年9月20日
(45)【発行日】2019年10月9日
(54)【発明の名称】データを不透明データバックアップストリームから復元するためのシステム及び方法
(51)【国際特許分類】
G06F 11/14 20060101AFI20191001BHJP
G06F 16/11 20190101ALI20191001BHJP
G06F 16/174 20190101ALI20191001BHJP
G06F 3/06 20060101ALI20191001BHJP
【FI】
G06F11/14 669
G06F16/11
G06F16/174
G06F11/14 664
G06F3/06 304Z
【請求項の数】15
【全頁数】25
(21)【出願番号】特願2018-513854(P2018-513854)
(86)(22)【出願日】2016年9月26日
(65)【公表番号】特表2018-537749(P2018-537749A)
(43)【公表日】2018年12月20日
(86)【国際出願番号】US2016053848
(87)【国際公開番号】WO2017058736
(87)【国際公開日】20170406
【審査請求日】2018年3月15日
(31)【優先権主張番号】3107/DEL/2015
(32)【優先日】2015年9月29日
(33)【優先権主張国】IN
(31)【優先権主張番号】3148/DEL/2015
(32)【優先日】2015年9月30日
(33)【優先権主張国】IN
(31)【優先権主張番号】14/965,249
(32)【優先日】2015年12月10日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】516222277
【氏名又は名称】ベリタス テクノロジーズ エルエルシー
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】100134119
【弁理士】
【氏名又は名称】奥町 哲行
(72)【発明者】
【氏名】ポールザガデー・スッダカール
(72)【発明者】
【氏名】アナンド・ニティン
(72)【発明者】
【氏名】ジェイン・ソーラブ
【審査官】
井上 宏一
(56)【参考文献】
【文献】
米国特許出願公開第2012/0084523(US,A1)
【文献】
特開2006−268846(JP,A)
【文献】
特表2013−502655(JP,A)
【文献】
特開2013−254400(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/14
G06F 3/06
G06F 16/11
G06F 16/174
(57)【特許請求の範囲】
【請求項1】
データを不透明データバックアップストリームから復元するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも1つのプロセッサを備えるクライアント・コンピューティングデバイスによって実施され、前記方法が、
前記クライアント・コンピューティングデバイスから、不透明データバックアップストリームの仮想復元を開始することであって、該不透明データバックアップストリームは、サーバ上でホストされ、かつ修正されたヘッダ及びテールを有するデータブロックを含み、該修正されたヘッダ及びテールは、オリジナルヘッダ及びテールを変更したものであり、前記不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析され、前記仮想復元が、前記不透明データバックアップストリームから完全に復元されたデータセットを前記クライアント・コンピューティングデバイス及び前記サーバに格納しないことによって、当該データセットが前記クライアント・コンピューティングデバイス又は前記サーバのいずれかに格納されることを回避することと、
前記不透明データバックアップストリーム内の各データブロックについて、
前記クライアント・コンピューティングデバイスによって、前記クライアント・コンピューティングデバイス上の前記データブロックの復元されたバージョンに基づいて、前記データブロックの前記オリジナルヘッダ及びテールを決定することと、
前記データブロックの前記オリジナルヘッダ及びテールを前記クライアント・コンピューティングデバイスから前記サーバに送信することと、
前記サーバにおいて、前記サーバ上の前記不透明データバックアップストリーム内の前記データブロックの位置と前記データブロックの前記オリジナルヘッダ及びテールとの間のマッピングを作成することと、
前記クライアント・コンピューティングデバイスによって、完全な復元動作を実施するための前記データバックアップアプリケーションを使用せずに、前記マッピングを使用することによって前記不透明データバックアップストリーム内のデータを復元して、前記データを含む前記データブロックの前記オリジナルヘッダ及びテールを復元することと、を含む、コンピュータ実装方法。
【請求項2】
前記サーバにおいて、前記サーバ上の各データブロックのハッシュを作成することと、
前記クライアント・コンピューティングデバイスにおいて、前記仮想復元中に前記クライアント・コンピューティングデバイスによって見られる前記データブロックのハッシュを作成することと、
前記クライアント・コンピューティングデバイスによって見られる各データブロックについて、
前記クライアント・コンピューティングデバイスによって、前記サーバが前記データブロックの前記ハッシュのコピーを有するか否かを決定するために前記サーバに問い合わせることと、
前記サーバが前記ハッシュの前記コピーを有しない場合、前記クライアント・コンピューティングデバイスによって、前記データブロックを前記サーバに送信することと、を更に含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記データブロックの前記ハッシュを作成することが、前記オリジナルヘッダ及びテールを除外した前記データブロックの一部分のハッシュを作成することを含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記データバックアップアプリケーションが、前記不透明データバックアップストリームからの部分的復元を実施するように構成されておらず、
前記データバックアップアプリケーションを使用せずに前記データを復元することが、前記不透明データバックアップストリームの一部分を除外している間に、前記不透明データバックアップストリームのサブセットを復元することを含む、請求項1の記載のコンピュータ実装方法。
【請求項5】
前記不透明データバックアップストリーム内の前記データを復元することが、前記不透明データバックアップストリームに基づいて差分バックアップを作成することを含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記仮想復元を前記クライアント・コンピューティングデバイス上で実施することが、前記不透明データバックアップストリーム内の前記データを前記クライアント・コンピューティングデバイスに格納することを回避することを含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記仮想復元が、前記不透明データバックアップストリームの修正に応答して開始される、請求項1に記載のコンピュータ実装方法。
【請求項8】
データを不透明データバックアップストリームから復元するためのシステムであって、前記システムが、
クライアント・コンピューティングデバイスから、不透明データバックアップストリームの仮想復元を開始するための手段であって、該不透明データバックアップストリームは、サーバ上でホストされ、かつ修正されたヘッダ及びテールを有するデータブロックを含み、該修正されたヘッダ及びテールは、オリジナルヘッダ及びテールを変更したものであり、前記不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析され、前記仮想復元が、前記不透明データバックアップストリームから完全に復元されたデータセットを前記クライアント・コンピューティングデバイス及び前記サーバに格納しないことによって、当該データセットが前記クライアント・コンピューティングデバイス又は前記サーバのいずれかに格納されることを回避する手段と、
前記不透明データバックアップストリーム内の各データブロックについて、前記クライアント・コンピューティングデバイス上の前記データブロックの復元されたバージョンに基づいて、前記データブロックの前記オリジナルヘッダ及びテールを決定するための手段と、
前記データブロックの前記オリジナルヘッダ及びテールを前記クライアント・コンピューティングデバイスから前記サーバに送信するための手段と、
前記サーバにおいて、前記サーバ上の前記不透明データバックアップストリーム内の前記データブロックの位置と前記データブロックの前記オリジナルヘッダ及びテールとの間のマッピングを作成するための手段と、
完全な復元動作を実施するための前記データバックアップアプリケーションを使用せずに、前記マッピングを使用することによって前記不透明データバックアップストリーム内のデータを復元して、前記データを含む前記データブロックの前記オリジナルヘッダ及びテールを復元するための手段と、
前記開始するための手段、前記決定するための手段、前記送信するための手段、前記作成するための手段、及び前記復元するための手段を実行するように構成された少なくとも1つの物理的プロセッサと、を備える、システム。
【請求項9】
前記作成するための手段が、前記サーバにおいて、前記サーバ上の各データブロックのハッシュを作成し、
前記決定するための手段が、前記クライアント・コンピューティングデバイスにおいて、前記仮想復元中に前記クライアント・コンピューティングデバイスによって見られる前記データブロックのハッシュを作成し、
前記送信するための手段が、前記クライアント・コンピューティングデバイスによって見られる各データブロックについて、前記サーバが前記データブロックの前記ハッシュのコピーを有するか否かを決定するために前記サーバに問い合わせ、前記サーバが前記ハッシュの前記コピーを有しない場合、前記データブロックを前記サーバに送信する、請求項8に記載のシステム。
【請求項10】
前記作成するための手段が、前記データブロックの前記ハッシュを、前記オリジナルヘッダ及びテールを除外した前記データブロックの一部分のハッシュを作成することによって作成し、
前記決定するための手段が、前記データブロックの前記ハッシュを、前記オリジナルヘッダ及びテールを除外した前記データブロックの一部分のハッシュを作成することによって作成する、請求項9に記載のシステム。
【請求項11】
前記データバックアップアプリケーションが、前記不透明データバックアップストリームからの部分的復元を実施するように構成されておらず、
前記復元するための手段が、前記データバックアップアプリケーションを使用せずに、前記不透明データバックアップストリームの一部分を除外している間に、前記不透明データバックアップストリームのサブセットを復元することによって前記データを復元する、請求項8の記載のシステム。
【請求項12】
前記復元するための手段が、前記不透明データバックアップストリームに基づいて差分バックアップを作成することによって、前記不透明データバックアップストリーム内の前記データを復元する、請求項8に記載のシステム。
【請求項13】
前記開始するための手段が、前記不透明データバックアップストリーム内の前記データを前記クライアント・コンピューティングデバイス上に格納することを回避することによって、前記仮想復元を前記クライアント・コンピューティングデバイス上で実施する、請求項8に記載のシステム。
【請求項14】
前記開始するための手段が、前記不透明データバックアップストリームの修正に応答して前記仮想復元を開始する、請求項8に記載のシステム。
【請求項15】
1つ又は2つ以上のコンピュータ可読命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が、クライアント・コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、前記クライアント・コンピューティングデバイスに、
前記クライアント・コンピューティングデバイスから、不透明データバックアップストリームの仮想復元を開始することであって、該不透明データバックアップストリームは、サーバ上でホストされ、かつ修正されたヘッダ及びテールを有するデータブロックを含み、該修正されたヘッダ及びテールは、オリジナルヘッダ及びテールを変更したものであり、前記不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析され、前記仮想復元が、前記不透明データバックアップストリームから完全に復元されたデータセットを前記クライアント・コンピューティングデバイス及び前記サーバに格納しないことによって、当該データセットが前記クライアント・コンピューティングデバイス又は前記サーバのいずれかに格納されることを回避することと、
前記不透明データバックアップストリーム内の各データブロックについて、前記クライアント・コンピューティングデバイス上の前記データブロックの復元されたバージョンに基づいて、前記データブロックの前記オリジナルヘッダ及びテールを決定することと、
前記データブロックの前記オリジナルヘッダ及びテールを前記クライアント・コンピューティングデバイスから前記サーバに送信することと、
前記サーバにおいて、前記サーバ上の前記不透明データバックアップストリーム内の前記データブロックの位置と前記データブロックの前記オリジナルヘッダ及びテールとの間のマッピングを作成することと、
完全な復元動作を実施するための前記データバックアップアプリケーションを使用せずに、前記マッピングを使用することによって前記不透明データバックアップストリーム内のデータを復元して、前記データを含む前記データブロックの前記オリジナルヘッダ及びテールを復元することと、を行わせる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
情報時代の幕開けに、アプリケーション及びデータのバックアップは、パンチカード、テープ、次いでディスクに格納された。現在では、仮想バックアップが作成され、世界中のローカルサーバ及びリモートサーバに格納されている。データ及びオペレーティングシステムのバックアップ作成の容易さにより、多くの個人及び組織が多数の冗長バックアップを作成している。最近、データ管理の傾向が変化している。コピーデータ管理は、データをより多くではなく、より少ない場所に保管すべきであることを示唆する一連の原則である。理想的には、コピーデータ管理スキーム下では、フルデータセットが、制作環境内及び単一の完全バックアップ環境内の2つのみに存在すべきである。テスト環境などのデータセットの他の使用では、データセットの全体ではなく、変更されたデータの部分のみを格納する差分又はスナップショットを使用すべきである。
【0002】
残念ながら、バックアップを作成し管理するための従来のシステムはまだ追いついていない。バックアップを維持するための多くの従来のシステムでは、データの部分的復元ではなく、完全復元のみが可能である。バックアップを作成するためのいくつかの従来のシステムは、データのスナップショット又は差分を作成するように試みている場合がある他のアプリケーションによって読み取ることができない不透明形式でバックアップデータを格納し得る。したがって、本開示は、データを不透明データバックアップストリームから復元するための、追加の改良されたシステム及び方法の必要性を識別し、それに対処する。
【発明の概要】
【0003】
以下でより詳細に説明されるように、本開示は、仮想復元を実施し、各データブロックについて、データバックアップアプリケーション及び不透明データバックアップストリーム内の格納されたデータブロックの位置によって難読化された復元されたデータブロックの部分間のマッピングを作成することによって、データを不透明データバックアップストリームから復元するための種々のシステム及び方法を説明する。
【0004】
一例では、データを不透明データバックアップストリームから復元するためのコンピュータ実装方法は、(1)クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含む、不透明データバックアップストリームの仮想復元を開始することと、(2)不透明データバックアップストリーム内の各データブロックについて、(a)クライアント上のブロックの復元されたバージョンに基づいて、ブロックのオリジナルヘッダ及びテールを決定することと、(b)ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信することと、(c)サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成することと、(3)データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを含むブロックのオリジナルヘッダ及びテールを復元することとを含み得る。
【0005】
一実施形態では、コンピュータ実装方法は、(1)サーバにおいて、サーバ上の各データブロックのハッシュを作成することと、(2)クライアントにおいて、仮想復元中にクライアントによって見られるデータブロックのハッシュを作成することと、(3)クライアントによって見られる各データブロックについて、サーバがデータブロックのハッシュのコピーを有するか否かを決定するためにサーバに問い合わせ、サーバがハッシュのコピーを有しない場合、データブロックをサーバに送信することとを更に含み得る。いくつかの例では、データブロックのハッシュを作成することは、ヘッダ及びテールを除外したデータブロックの一部分のハッシュを作成することを含み得る。
【0006】
一実施形態では、データバックアップアプリケーションは、不透明データバックアップストリームからの部分的復元を実施するように構成されていなくてもよく、データバックアップアプリケーションを使用せずにデータを復元することは、不透明データバックアップストリームの一部分を除外している間に、不透明データバックアップストリームのサブセットを復元することを含み得る。いくつかの例では、不透明データバックアップストリーム内のデータを復元することは、不透明データバックアップストリームに基づいて差分バックアップを作成することを含み得る。
【0007】
いくつかの例では、仮想復元をクライアント上で実施することは、不透明データバックアップストリーム内のデータをクライアントに格納することを回避することを含み得る。一実施形態では、仮想復元は、不透明データバックアップストリームの修正に応答して開始され得る。
【0008】
一実施形態では、上記の方法を実装するためのシステムは、(1)クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含み得る、不透明データバックアップストリームの仮想復元を開始する、メモリに格納された開始モジュールと、(2)各ブロックについて、クライアント上のブロックの復元されたバージョンに基づいて、ブロックのオリジナルヘッダ及びテールを決定する、メモリに格納された決定モジュールと、(3)ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信する、メモリに格納された送信モジュールと、(4)サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成する、メモリに格納された作成モジュールと、(5)データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを含むブロックのオリジナルヘッダ及びテールを復元する、メモリに格納された復元モジュールと、(6)開始モジュール、決定モジュール、送信モジュール、作成モジュール、及び復元モジュールを実行するように構成された少なくとも1つの物理的プロセッサとを含み得る。
【0009】
いくつかの例では、上記の方法は、非一時的コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、1つ又は2つ以上のコンピュータ実行可能命令を含み得るコンピュータ可読媒
体は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、コンピューティングデバイスに、(1)クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含む、不透明データバックアップストリームの仮想復元を開始することと、(2)クライアント上のブロックの復元されたバージョンに基づいて、各ブロックについて、ブロックのオリジナルヘッダ及びテールを決定することと、(3)ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信することと、(4)サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成することと、(5)データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを含むブロックのオリジナルヘッダ及びテールを復元することとを行わせる。
【0010】
上記で述べた実施形態のうちのいずれかからの機能は、本明細書で説明する一般原理に従って互いに組み合わせて使用されてもよい。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
【図面の簡単な説明】
【0011】
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明とともに、これらの図面は、本開示の種々の原理を実証及び説明する。
【
図1】データを不透明データバックアップストリームから復元するための例示的なシステムのブロック図である。
【
図2】データを不透明データバックアップストリームから復元するための追加の例示的なシステムのブロック図である。
【
図3】データを不透明データバックアップストリームから復元するための例示的な方法のフロー図である。
【
図4】例示的なデータブロックのブロック図である。
【
図5】データを不透明データバックアップストリームから復元するための例示的なコンピューティングシステムのブロック図である。
【
図6】本明細書に記載及び/又は例解される実施形態のうちの1つ又は2つ以上を実装することができる例示的なコンピューティングシステムのブロック図である。
【
図7】本明細書に記載及び/又は例解される実施形態のうちの1つ又は2つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。 図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書に記載される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の特許請求の範囲の範囲内にある全ての修正物、等価物、及び代替物を網羅する。
【0012】
本開示は、概して、データを不透明データバックアップストリームから復元するためのシステム及び方法を対象とする。以下でより詳細に説明されるように、不透明データバックアップストリーム内の難読化されたデータブロックとデータブロックの難読化された部分のオリジナルバージョンとの間のマッピングを格納することによって、本明細書に記載されるシステムは、不透明データバックアップストリームを作成したアプリケーション以外のアプリケーションによる不透明データバックアップストリームからのバックアップの完全又は部分的復元を可能にし得る。
【0013】
下記において、
図1、2、及び5を参照して、データを不透明データバックアップストリームから復元するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明も、
図3に関連して提供される。例示的なデータブロックの詳細な説明は、
図4に関連して提供される。加えて、本明細書に記載される実施形態のうちの1つ又は2つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明は、それぞれ、
図6及び7に関連して提供される。
【0014】
図1は、データを不透明データバックアップストリームから復元するための例示的なシステム100のブロック図である。この図に示すように、例示的なシステム100は、1つ又は2つ以上のタスクを実施するための1つ又は2つ以上のモジュール102を含んでもよい。例えであって、以下でより詳細に説明されるように、例示的なシステム100は、クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含み得る、不透明データバックアップストリームの仮想復元を開始する開始モジュール104を含み得る。例示的なシステム100は、加えて、各データブロックについて、クライアント上のブロックの復元されたバージョンに基づいて、ブロックのオリジナルヘッダ及びテールを決定する決定モジュール106を含み得る。例示的なシステム100はまた、ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信する送信モジュール108を含み得る。例示的なシステム100は、加えて、サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成する作成モジュール110を含み得る。例示的なシステム100はまた、データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを構成するブロックのオリジナルヘッダ及びテールを復元する復元モジュール112を含み得る。別個の要素として例解されるが、
図1のモジュール102のうちの1つ又は2つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
【0015】
ある特定の実施形態では、
図1のモジュール102のうちの1つ又は2つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、1つ又は2つ以上のタスクを実施させてもよい1つ又は2つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えであって、以下でより詳細に説明されるように、モジュール102のうちの1つ又は2つ以上は、
図2に示すデバイス(例えば、クライアント202、クライアント214、及び/若しくはサーバ206)、
図6のコンピューティングシステム610、並びに/又は
図7の例示的なネットワークアーキテクチャ700の部分などの1つ又は2つ以上のコンピューティングデバイス上で動作するように格納及び構成されたソフトウェアモジュールを表し得る。
図1のモジュール102のうちの1つ又は2つ以上はまた、1つ又は2つ以上のタスクを実施するように構成された1つ又は2つ以上の特殊目的のコンピュータの全て又は部分を表し得る。
【0016】
図1の例示的なシステム100は、様々な態様で実装されてもよい。例えば、例示的なシステム100の全て又は一部分は、
図2の例示的なシステム200の部分を表し得る。
図2に示すように、システム200は、ネットワーク204を介してサーバ206と通信するクライアント202及び/又はクライアント214を含み得る。一例では、クライアント202は、モジュール102のうちの1つ又は2つ以上によってプログラムされ得る。いくつかの例では、クライアント214は、モジュール102のうちの1つ又は2つ以上によってプログラムされ得る。加えて、又はあるいは、サーバ206は、モジュール102のうちの1つ又は2つ以上によってプログラムされ得る。
【0017】
一実施形態では、
図1のモジュール102のうちの1つ又は2つ以上は、クライアント202、クライアント214、及び/又はサーバ206のうちの少なくとも1つのプロセッサによって実行されるとき、クライアント202、クライアント214、及び/又はサーバ206がデータを不透明データバックアップストリームから復元することを可能にし得る。例えであって、以下でより詳細に説明されるように、開始モジュール104は、クライアント202から、サーバ206上でホストされた不透明データバックアップストリーム208であって、不透明データバックアップストリーム208を作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含み得る不透明データバックアップストリーム208の仮想復元を開始し得る。不透明データバックアップストリーム208内の各ブロックについて、決定モジュール106は、クライアント202上のブロック210の復元されたバージョンに基づいて、ブロック210のオリジナルヘッダ及びテールを決定し得る。次に、送信モジュール108は、ブロック210のオリジナルヘッダ及びテールをクライアント202からサーバ206に送信し得る。最後に、作成モジュール110は、サーバ206において、サーバ206上の不透明データバックアップストリーム208内のデータブロック210の位置とブロック210のオリジナルヘッダ及びテールとの間のマッピング212を作成し得る。しばらくして、復元モジュール112は、データバックアップアプリケーションを使用せずに、マッピング212を使用することによって不透明データバックアップストリーム208内のデータを復元して、そのデータを構成するブロックのオリジナルヘッダ及びテールを復元し得る。
【0018】
クライアント202及び/又は214は、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。クライアント202及び/又は214の例としては、限定することなく、ラップトップ、タブレット、デスクトップ、サーバ、セルラ電話、パーソナルデジタルアシスタンツ(Personal Digital Assistant、PDA)、マルチメディアプレイヤ、組込みシステム、ウェアラブルデバイス(例えば、スマートウォッチ、スマートグラスなど)、ゲーム機、これらのうちの1つ又は2つ以上の組み合わせ、
図6の例示的なコンピューティングシステム610、又は任意の他の好適なコンピューティングデバイスが挙げられる。
【0019】
サーバ206は、バックアップデータをホストすることができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。サーバ206の例としては、限定することなく、種々のデータベースサービスを提供するように、及び/又はある特定のソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられる。
【0020】
ネットワーク204は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。ネットワーク204の例としては、限定することなく、イントラネット、ワイドエリアネットワーク(Wide Area Network、WAN)、ローカルエリアネットワーク(Local Area Network、LAN)、パーソナルエリアネットワーク(Personal Area Network、PAN)、インターネット、電力線通信(Power Line Communication、PLC)、セルラネットワーク(例えば、汎欧州デジタル移動電話方式(Global System for Mobile Communication、GSM(登録商標))ネットワーク)、又は
図7の例示的なネットワークアーキテクチャ700などが挙げられる。ネットワーク204は、無線又は有線接続を使用して、通信又はデータ転送を容易にし得る。一実施形態では、ネットワーク204は、クライアント202、クライアント214、及び/又はサーバ206の間の通信を容易にし得る。
【0021】
図3は、データを不透明データバックアップストリームから復元するための例示的なコンピュータ実装方法300のフロー図である。
図3に示す工程は、任意の好適なコンピュータ実行可能なコード及び/又はコンピューティングシステムによって実施されてもよい。いくつかの実施形態では、
図3に示す工程は、
図1のシステム100、
図2のシステム200、
図6のコンピューティングシステム610、及び/又は
図7の例示的なネットワークアーキテクチャ700の部分の構成要素のうちの1つ又は2つ以上によって実施され得る。
【0022】
図3に示すように、工程302において、本明細書に記載されるシステムのうちの1つ又は2つ以上は、クライアントから、サーバ上でホストされた不透明データバックアップストリームであって、その不透明データバックアップストリームを作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含む不透明データバックアップストリームの仮想復元を開始し得る。例えば、開始モジュール104は、
図2のクライアント202の一部として、クライアント202から、サーバ206上でホストされた不透明データバックアップストリーム208であって、不透明データバックアップストリーム208を作成したデータバックアップアプリケーションによって排他的に構文解析されるように設計された修正されたヘッダ及びテールを有するデータブロックを含み得る不透明データバックアップストリーム208の仮想復元を開始し得る。
【0023】
本明細書で使用される場合、「データバックアップアプリケーション」という用語は、概して、データのバックアップコピーを作成及び/又は管理するように設計及び/又は構成された任意のアプリケーションを指す。いくつかの実施形態では、データバックアップアプリケーションは、データのバックアップを、制作環境からバックアップサーバにデータのバックアップストリームを作成することによって作成し得る。いくつかの例では、データバックアップアプリケーションは、他のデータバックアップアプリケーションによって読み取り可能でないように設計された不透明データバックアップストリームを作成することがある。データバックアップアプリケーションの例としては、ORACLE RECOVERY MANAGER及び/又はSYMANTEC NETBACKUPが挙げられ得る。
【0024】
本明細書で使用される場合、「不透明データバックアップストリーム」という用語は、概して、データが部分的又は完全に難読化されるような方法で格納される任意のデータを指す。いくつかの実施形態では、不透明データバックアップストリームは、バックアップアプリケーションによって作成され、バックアップサーバに格納されたデータのストリームであり得る。一実施形態では、不透明データバックアップストリームは、修正されたヘッダ及び/又はテールを有するデータブロックを含み得る。加えて、又はあるいは、不透明データバックアップストリームは、データブロックが制作環境に格納されるのとは異なる順序でデータブロックを格納し得る。いくつかの実施形態では、データバックアップアプリケーションは、破損したデータブロックを修理しつつ、不透明データバックアップストリームを作成し得る。一実施形態では、不透明データバックアップストリームは、ORACLE RECOVERY MANAGERによって作成されたデータバックアップストリームを含み得る。
【0025】
「データブロック」という用語は、本明細書で使用される場合、概して、データストリームの任意の所定の部分を指す。いくつかの実施形態では、データブロックは、単一のファイルを表し得る。一実施形態では、データブロックは、ヘッダ及びテールを含み得る。「ヘッダ」という用語は、本明細書で使用される場合、概して、ブロック及び/又はブロック内に含まれるデータに関する情報を含むデータブロックの先頭の部分を指す。例えば、ヘッダは、データブロックの相対アドレス及び/又はデータブロックのヘッダの残りのチェックサムを含み得る。「テール」という用語は、本明細書で使用される場合、概して、ブロック及び/又はブロック内に含まれるデータに関する情報を含むデータブロックの終端部分を指す。例えば、テールは、ブロック全体のチェックサムを含み得る。
【0026】
いくつかの実施形態では、データバックアップアプリケーションは、不透明データバックアップストリーム内のデータブロックのヘッダ及びテールを修正し得る。
図4に示すように、オリジナルデータブロック402は、制作環境内のデータブロックのオリジナルバージョン及び/又はデータブロックの完全に復元されたバージョンを表し得る。修正されたデータブロック404は、不透明データバックアップストリーム内のデータバックアップアプリケーションによって作成されたデータブロックのバージョンを表し得る。いくつかの例では、オリジナルデータブロック402は、修正されたデータブロック404とは異なるヘッダを有し得る。例えば、修正されたデータブロック404のヘッダ内の相対データブロックアドレスは、不透明データバックアップストリーム内の修正されたデータブロック404の位置のために異なる場合があり、その結果、修正されたデータブロック404のためのヘッダチェックサムも変更される。いくつかの例では、データブロック内の前の変更が、オリジナルデータブロック402とは異なるテールを有する修正されたデータブロック404をもたらす場合がある。例えば、修正されたデータブロック404のテール内のブロックチェックサムは、修正されたデータブロック404のヘッダに対する変更のために変更される場合がある。したがって、ヘッダ及びテールを含むデータブロック全体を見るアプリケーションは、修正されたデータブロック404がオリジナルデータブロック402と同じデータを表すと決定することができない場合がある。
【0027】
「仮想復元」という用語は、本明細書で使用される場合、概して、データセットを完全に復元し、完全に復元されたデータセットをコンピューティングシステムに格納することを意図しない復元動作を指す。いくつかの例では、本明細書に記載されるシステムは、復元されたデータ全体を任意のコンピューティングシステムに格納することを回避し得る。例えば、本明細書に記載されるシステムは、データブロックが検査されるとすぐに、復元されたデータブロックを破棄し得る。
【0028】
開始モジュール104は、種々のコンテキスト内で仮想復元を開始し得る。一実施形態では、開始モジュール104は、仮想復元を不透明データバックアップストリームの修正に応答して開始し得る。例えば、ストリームによってアップされた制作データバックアップが修正されたかもしれないため、不透明データバックアップストリームを修正することができる。別の実施形態では、開始モジュール104は、スケジュールされた間隔で仮想復元を開始し得る。例えば、開始モジュール104は、仮想復元を毎日、毎週、又は毎月開始し得る。
【0029】
加えて、又はあるいは、開始モジュール104は、仮想復元を別のアプリケーションからの要求に応答して開始し得る。例えば、追加のデータバックアップアプリケーションがデータの一部分を不透明データバックアップストリームから復元するように試みている場合があり、不透明データバックアップストリーム内のデータが追加のバックアップアプリケーションによって読み取り可能であることを確保するために、開始モジュール104に仮想復元を開始するように促すことができる。別の実施形態では、開始モジュール104は、不透明データバックアップストリーム及び/又は追加のデータバックアップアプリケーションを監視し得、仮想復元を、追加のデータバックアップアプリケーションが不透明データバックアップストリームに対して復元動作を実施するように試みていることの検出に応答して開始し得る。
【0030】
図3に戻ると、工程304において、本明細書に記載されるシステムのうちの1つ又は2つ以上は、各データブロックについて、クライアント上のブロックの復元されたバージョンに基づいて、ブロックのオリジナルヘッダ及びテールを決定し得る。例えば、決定モジュール106は、
図2のクライアント202の一部として、クライアント202上のブロック210の復元されたバージョンに基づいて、ブロック210のオリジナルヘッダ及びテールを決定し得る。
【0031】
決定モジュール106は、種々の態様でブロックのオリジナルヘッダ及びテールを決定し得る。例えば、決定モジュール106は、復元されたブロックを検査し、ヘッダ及びテールを識別し得る。別の実施形態では、決定モジュール106は、ブロックに対する変更を識別するために、不透明データバックアップストリーム内の修正されたブロックを復元されたブロックと比較し得る。
【0032】
いくつかの実施形態では、決定モジュール106は、各ブロックのハッシュを作成し得る。いくつかの例では、決定モジュール106は、ブロックのヘッダ及びテールを除外することによって、ブロックのハッシュを作成し得る。「ハッシュ」という用語は、本明細書で使用される場合、ファイルの任意の省略表現及び/又はファイルのコンテンツを指し得る。例えば、「ハッシュ」という用語は、1つ又は2つ以上のハッシュ関数、フィンガープリント、チェックサム、並びに/又はファイル及び/若しくはファイルコンテンツを(コリジョンがなければ)一意に識別する任意の他のタイプのファイル識別子の出力を指し得る。
【0033】
工程306において、本明細書に記載されるシステムのうちの1つ又は2つ以上は、ブロックのオリジナルヘッダ及びテールをクライアントからサーバに送信し得る。例えば、送信モジュール108は、
図2のクライアント202の一部として、ブロック210のオリジナルヘッダ及びテールをクライアント202からサーバ206に送信し得る。
【0034】
送信モジュール108は、ブロックのオリジナルヘッダ及びテールを種々のコンテキストでサーバに送信し得る。例えば、送信モジュール108は、ブロックのヘッダ及びテールが識別されるとすぐに、ブロックのヘッダ及びテールをサーバに送信し得る。
【0035】
別の実施形態では、送信モジュール106は、まずブロックのハッシュをサーバに送信し得る。この実施形態では、サーバがブロックのハッシュも有するとサーバが応答した場合、送信モジュール106は、ブロックのヘッダ及びテールをサーバに送信し得る。サーバがブロックのハッシュを有しないとサーバが応答した場合、送信モジュール106は、データブロック全体をサーバに送信し得る。いくつかの例では、データブロックが不透明データバックアップストリーム内に存在し得ず、その代わりに復元動作中にデータバックアップアプリケーションによって再構築され得るため、サーバはデータブロックのハッシュを有しない場合がある。例えば、データバックアップアプリケーションは、不透明データバックアップストリームに対してヘッダブロック及び/又はブロックゼロを格納しない場合がある。この例では、送信モジュール106はブロックゼロのハッシュをサーバに送信し得、サーバはサーバがブロックゼロのハッシュを有しないと応答し得、送信モジュール106はサーバブロックゼロを送信し得る。送信モジュール106は、サーバに、同じメッセージ又は別個のメッセージ内のブロックゼロのためのヘッダ及びテールを送信し得る。
【0036】
工程308において、本明細書に記載されるシステムのうちの1つ又は2つ以上は、サーバにおいて、サーバ上の不透明データバックアップストリーム内のデータブロックの位置とブロックのオリジナルヘッダ及びテールとの間のマッピングを作成し得る。例えば、作成モジュール110は、
図2のサーバ206の一部として、サーバ206において、サーバ206上の不透明データバックアップストリーム208内のデータブロック210の位置とブロック210のオリジナルヘッダ及びテールとの間のマッピング212を作成し得る。
【0037】
作成モジュール110は、種々の態様でマッピングを作成し得る。例えば、作成モジュール110は、不透明データストリーム内のデータブロックの位置とハッシュ内のデータのオリジナルヘッダ及びテールとの間のマッピングを格納し得る。別の実施形態では、作成モジュール110は、マッピングをデータベースに格納し得る。いくつかの実施形態では、作成モジュール110は、ブロックのオリジナルヘッダ及びテールをマッピングに格納し得る。他の実施形態では、オリジナルヘッダ及びびテールは、サーバ上の他の場所に格納され得、作成モジュール110は、オリジナルヘッダ及びテールへのポインタを格納し得る。
【0038】
いくつかの実施形態では、マッピングを作成する前に、作成モジュール110は、まず、サーバに格納された各データブロックのハッシュを作成し得る。この実施形態では、サーバは、サーバが特定のデータブロックのハッシュを有するか否かを尋ねる、クライアントからのメッセージを受信し得る。サーバがデータブロックのハッシュを有するとサーバが応答した場合、作成モジュール110は、マッピングの中に入れられるデータブロックのオリジナルヘッダ及びテールを受信し得る。サーバがデータブロックのハッシュを有しないとサーバが応答した場合、サーバは、データブロックを受信し得、作成モジュール110は、不透明データバックアップストリームに格納されていないデータブロックの位置とデータブロックのオリジナルヘッダ及びテールとの間のマッピングを作成し得る。
【0039】
いくつかの実施形態では、作成モジュール110は、ブロックのヘッダ及びテールを除外することによって、データブロックのハッシュを作成し得る。この実施形態では、修正されたブロックのサーバによって作成されたハッシュは、ヘッダ及びテール内に存在しないブロック内のデータがデータバックアップアプリケーションによって変更されない場合があるため、復元されたブロックのクライアントによって作成されたハッシュと一致するであろう。
【0040】
いくつかの実施形態では、サーバ及びクライアントは、データブロックのためのマッピングを作成する過程の間に複数回通信し得る。
図5は、マッピングを作成することによってデータを不透明データバックアップストリームから復元するための例示的なコンピューティングシステム500のブロック図である。
図5に示すように、クライアント502は、不透明データバックアップストリーム510を当初作成したバックアップアプリケーション508によって実施される仮想復元を開始し得る。不透明データバックアップストリーム510は、ストリームデータをサーバ506から要求し得るアプリケーションプログラミングインターフェース(application programming interface、API)504を有し得る。サーバ506は、データを不透明データバックアップストリーム510からバックアップアプリケーション508にAPI 504を介して送信し得る。次いで、バックアップアプリケーション508は、復元されたストリームデータを、ブロックハッシュ514をデータブロックから作成し得るクライアント502に送信し得る。クライアント502はまた、各データブロックについて、オリジナルヘッダ及びテール516を識別し得る。クライアント502は、ブロックハッシュ514を単独及び/又はグループでサーバ506に送信し得る。サーバ506は、ブロックハッシュ514内のハッシュをブロックハッシュ512内のハッシュと一致させるように試みる場合がある。次いで、サーバ506は、ブロックハッシュ514内のハッシュがブロックハッシュ512内に存在するもの及び存在しないものについて、クライアント502に応答し得る。クライアント502は、サーバ506に、サーバ506がブロックハッシュ512内で見つけることができなかった任意のブロックハッシュのためのデータブロックを送信し得る。クライアント502はまた、オリジナルヘッダ及びテール516をサーバ506に送信し得る。最後に、サーバ506は、不透明データバックアップストリーム510内の各データブロックの位置とオリジナルヘッダ及びテール516との間のマッピング518を作成し得る。単にサーバ506上にまだ存在しない完全なブロックを送信することによって、及び別様に、506上に既に存在するブロックのためのオリジナルヘッダ及びテール516のみを送信することによって、本明細書に記載されるシステムは、マッピング518の完全なセットを生成するために必要なネットワークトラフィックを大幅に低減し得る。
【0041】
いくつかの実施形態では、バックアップアプリケーション508は、ORACLE RECOVERY MANAGERカーネルを含み得、サーバ506は、ORACLE RECOVERY MANAGERサーバを含み得、及び/又はクライアント502は、ORACLE RECOVERY MANAGERクライアントを含み得る。いくつかの実施形態では、API 504は、ORACLE RECOVERY MANAGERの一部であり得る。他の実施形態では、API 504は、SYMANTEC NETBACKUPの一部であり得る。いくつかの実施形態では、バックアップアプリケーション508、クライアント502、及び/若しくはAPI 504は全て、NETAPP SNAPMANAGERインスタンスの一部であり得、並びに/又はサーバ506は、SYMANTEC NETBACKUPアプライアンスの一部であり得る。
【0042】
図3に戻ると、工程310において、本明細書に記載されるシステムのうちの1つ又は2つ以上は、データバックアップアプリケーションを使用せずに、マッピングを使用することによって不透明データバックアップストリーム内のデータを復元して、そのデータを構成するブロックのオリジナルヘッダ及びテールを復元し得る。例えば、復元モジュール112は、
図2のクライアント214の一部として、データバックアップアプリケーションを使用せずに、マッピング212を使用することによって不透明データバックアップストリーム208内のデータを復元して、そのデータを構成するブロックのオリジナルヘッダ及びテールを復元し得る。
【0043】
復元モジュール112は、不透明データバックアップストリーム内のデータを種々のコンテキストで復元し得る。例えば、復元モジュール112は、仮想復元を実施した同じクライアント上でホストされ得る。別の実施形態では、復元モジュール112は、異なるクライアント上でホストされ得る。
【0044】
いくつかの実施形態では、データバックアップアプリケーションは、不透明データバックアップストリームからの部分的復元を実施するように構成されていなくてもよく、復元モジュール112は、データバックアップアプリケーションを使用せずにデータを復元して、不透明データバックアップストリームの一部分を除外している間に、不透明データバックアップストリームのサブセットを復元し得る。例えば、復元モジュール112は、不透明データバックアップストリームに基づいて差分バックアップを作成することによって、不透明データバックアップストリーム内のデータを復元し得る。この例では、復元モジュール112は、不透明データバックアップストリーム内のデータの部分を読み取り読み得、データ自体を格納せずに、データになされた任意の変更を格納し得る。いくつかの例では、復元モジュール112は、テスト環境のための差分バックアップをこのように作成し得る。いくつかの実施形態では、復元モジュール112は、不透明データバックアップストリーム内のデータの差分バックアップ及び/又はスナップショットを、不透明データバックアップストリーム内のデータの全体よりもかなり小さいサイズのデータ量を書き込むことによって作成し得る。
【0045】
いくつかの実施形態では、復元モジュール112は、データを、不透明データバックアップストリームからの増分バックアップデータと完全バックアップ画像との組み合わせによる合成バックアップ(即ち、ロールフォワードバックアップ)を作成することによって復元し得る。いくつかの例では、不透明データバックアップストリームを作成したアプリケーションは、追加のバックアップアプリケーションとは異なるブロックサイズを使用する場合があり、したがって、追加のバックアップアプリケーションは、合成バックアップを不透明データバックアップストリーム自体から作成することができない場合がある。いくつかの実施形態では、本明細書に記載されるシステムは、工程306、308、及び310と共に上記のプロセスを使用して、合成バックアップを表すデータブロック及びハッシュのマッピングの新しいセットを作成し得る。一実施形態では、データブロック及びハッシュの新しいセットはまた、既存のブロックにマッピングし得る(即ち、増分バックアップ内のブロックの修正されたバージョンは、完全バックアップ内のブロックのオリジナルバージョンにマッピングし得る)。
【0046】
上記の方法300に関連して説明されるように、本明細書に記載されるシステム及び方法は、不透明データバックアップストリームを作成したオリジナルデータバックアップアプリケーションによって実施された完全な復元以外では別様に使用不可であろう不透明データバックアップストリーム上でのコピーデータ管理を可能にし得る。本明細書に記載されるシステム及び方法は、データブロックのオリジナルヘッダ及びテールを不透明データバックアップストリームから捕捉するために仮想復元を実施し得、次いで、ヘッダ及びテールと不透明データバックアップストリーム内のデータブロックの位置との間のマッピングを作成し得る。このマッピングを使用することによって、他のバックアップアプリケーションは、データの一部又は全てを復元することができ得る。いくつかの例では、他のバックアップアプリケーションは、データの差分を作成し、テスト環境及び他のシステムが、データの完全に新しいコピーを作成せずに、データにアクセスすることを可能にし得る。本明細書に記載されるシステム及び方法を、コピーデータ管理技術を不透明データバックアップストリームに適用するために使用することによって、管理者は、データの完全なコピーを有する環境をプロビジョニングすることによって要求されるストレージリソース又は不透明データバックアップストリーム上で完全な復元を実施するために必要なコンピューティングリソースを消費することなく、データセットを有する多くの環境をプロビジョニングすることができ得る。
【0047】
図6は、本明細書に記載及び/又は例解される実施形態のうちの1つ又は2つ以上を実装することができる例示的なコンピューティングシステム610のブロック図である。例えば、コンピューティングシステム610の全て又は一部分は、単独又は他の要素との組み合わせのいずれかで、本明細書に記載される工程のうちの1つ又は2つ以上(
図3に例示する工程のうちの1つ又は2つ以上など)を実施し得るか、及び/又は実施するための手段であり得る。コンピューティングシステム610の全て又は一部分はまた、本明細書に記載及び/又は例解される任意の他の工程、方法、又はプロセスを実施し得るか、及び/又は実施するための手段であり得る。
【0048】
コンピューティングシステム610は、コンピュータ可読命令を実行することができる任意のシングル若しくはマルチプロセッサコンピューティングデバイス又はシステムを広く表す。コンピューティングシステム610の例としては、限定することなく、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散コンピューティングシステム、ハンドヘルドデバイス、又は任意の他のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム610は、少なくとも1つのプロセッサ614、及びシステムメモリ616を含み得る。
【0049】
プロセッサ614は、データを処理すること、又は命令を解釈及び実行することができる任意のタイプ又は形式の物理的処理ユニット(例えば、ハードウェア実装中央処理ユニット)を概して表す。ある特定の実施形態では、プロセッサ614は、命令をソフトウェアアプリケーション又はモジュールから受信し得る。これらの命令は、プロセッサ614に、本明細書に記載及び/又は例解される例示的な実施形態のうちの1つ又は2つ以上の機能を実施させ得る。
【0050】
システムメモリ616は、データ及び/又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形式の揮発性又は不揮発性記憶デバイス若しくは媒体を概して表す。システムメモリ616の例としては、限定することなく、ランダムアクセスメモリ(Random Access Memory、RAM)、読み取り専用メモリ(Read Only Memory、ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、ある特定の実施形態では、コンピューティングシステム610は、揮発性メモリユニット(例えば、システムメモリ616など)、及び不揮発性記憶デバイス(例えば、以下で詳細に説明するような一次記憶デバイス632など)の両方を含み得る。一例では、
図1からのモジュール102のうちの1つ又は2つ以上は、システムメモリ616にロードされ得る。
【0051】
ある特定の実施形態では、例示的なコンピューティングシステム610はまた、プロセッサ614及びシステムメモリ616に加えて、1つ又は2つ以上の構成要素又は要素を含み得る。例えば、
図6に示すように、コンピューティングシステム610は、各々が通信インフラストラクチャ612を介して相互接続され得るメモリコントローラ618と、入力/出力(I/O)コントローラ620と、通信インターフェース622とを含み得る。通信インフラストラクチャ612は、コンピューティングデバイスの1つ又は2つ以上の構成要素間の通信を容易にすることができる任意のタイプ又は形式のインフラストラクチャを概して表す。通信インフラストラクチャ612の例としては、限定することなく、通信バス(業界標準アーキテクチャ(Industry Standard Architecture、ISA)、周辺構成要素相互接続(Peripheral Component Interconnect、PCI)、PCIエクスプレス(PCI Express、PCIe)、又は類似のバスなど)、及びネットワークが挙げられる。
【0052】
メモリコントローラ618は、メモリ若しくはデータを取り扱うことができるか、又はコンピューティングシステム610の1つ又は2つ以上の構成要素間の通信を制御することができる任意のタイプ又は形式のデバイスを概して表す。例えば、ある特定の実施形態では、メモリコントローラ618は、通信インフラストラクチャ612を介して、プロセッサ614と、システムメモリ616と、I/Oコントローラ620と間の通信を制御し得る。
【0053】
I/Oコントローラ620は、コンピューティングデバイスの入出力機能を調整及び/又は制御することができる任意のタイプ又は形式のモジュールを概して表す。例えば、ある特定の実施形態では、I/Oコントローラ620は、プロセッサ614、システムメモリ616、通信インターフェース622、ディスプレイアダプタ626、入力インターフェース630、及び記憶インターフェース634などのコンピューティングシステム610の1つ又は2つ以上の要素間のデータの転送を制御し得るか又は容易にし得る。
【0054】
通信インターフェース622は、例示的なコンピューティングシステム610と、1つ又は2つ以上の追加のデバイスとの間の通信を容易にすることができる任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。例えば、ある特定の実施形態では、通信インターフェース622は、コンピューティングシステム610と追加のコンピューティングシステムを含む私的又は公的ネットワークとの間の通信を容易にし得る。通信インターフェース622の例としては、限定することなく、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース622は、インターネットなどのネットワークへの直接的なリンクを介して、リモートサーバへの直接的な接続を提供し得る。通信インターフェース622はまた、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワークなど)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラ電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供し得る。
【0055】
ある特定の実施形態では、通信インターフェース622はまた、外部バス又は通信チャネルを介して、コンピューティングシステム610と、1つ又は2つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタを表し得る。ホストアダプタの例としては、限定することなく、スモールコンピュータシステムインターフェース(SCSI)ホストアダプタ、ユニバーサルシリアルバス(USB)ホストアダプタ、Institute of Electrical and Electronics Engineers(IEEE)1394ホストアダプタ、アドバンストテクノロジーアタッチメント(ATA)、パラレルATA(PATA)、シリアルATA(SATA)、及びエクスターナルSATA(eSATA)ホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネット(登録商標)アダプタなどが挙げられる。通信インターフェース622はまた、コンピューティングシステム610が分散又はリモートコンピューティングに関与することを可能にし得る。例えば、通信インターフェース622は、実行のために、命令をリモートデバイスから受信するか、又は命令をリモートデバイスに送信し得る。
【0056】
図6に示すように、コンピューティングシステム610はまた、ディスプレイアダプタ626を介して、通信インフラストラクチャ612に連結された少なくとも1つのディスプレイデバイス624を含み得る。ディスプレイデバイス624は、ディスプレイアダプタ626によって転送された情報を視覚的に表示することができる任意のタイプ又は形式のデバイスを概して表す。同様に、ディスプレイアダプタ626は、ディスプレイデバイス624上に表示するために、通信インフラストラクチャ612から(又は当該技術分野において既知のように、フレームバッファから)、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。
【0057】
図6に示すように、例示的なコンピューティングシステム610はまた、入力インターフェース630を介して、通信インフラストラクチャ612に連結された少なくとも1つの入力デバイス628を含み得る。入力デバイス628は、コンピュータ又は人間のいずれかによって生成された入力を、例示的なコンピューティングシステム610に提供することができる任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス628の例としては、限定することなく、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
【0058】
図6に示すように、例示的なコンピューティングシステム610はまた、記憶インターフェース634を介して、通信インフラストラクチャ612に連結された一次記憶デバイス632及びバックアップ記憶デバイス633を含み得る。記憶デバイス632及び633は、データ及び/又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。例えば、記憶デバイス632及び633は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、又はフラッシュドライブなどであり得る。記憶インターフェース634は、コンピューティングシステム610の記憶デバイス632及び633と他の構成要素との間でデータを転送するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。
【0059】
ある特定の実施形態では、記憶デバイス632及び633は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を格納するように構成された取り外し可能な記憶装置から読み取るように、及び/又は記憶装置に書き込むように構成され得る。好適な取り外し可能な記憶装置の例としては、限定することなく、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス632及び633はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム610にロードされることを可能にするための他の類似の構造又はデバイスを含み得る。例えば、記憶デバイス632及び633は、ソフトウェア、データ、他のコンピュータ可読情報を読み取り、及び書き込むように構成され得る。記憶デバイス632及び633はまた、コンピューティングシステム610の一部であり得るか、又は他のインターフェースシステムによってアクセスされる別個のデバイスであり得る。
【0060】
多くの他のデバイス又はサブシステムが、コンピューティングシステム610に接続され得る。逆に、
図6に示す構成要素及びデバイスの全てが、本明細書に記載及び/又は例解される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、
図6に示すものとは異なる態様で相互接続され得る。コンピューティングシステム610はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を採用し得る。例えば、本明細書に開示される例示的な実施形態のうちの1つ又は2つ以上は、コンピュータ可読媒体上に、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化され得る。「コンピュータ可読媒体」という用語は、本明細書で使用される場合、概して、コンピュータ可読命令を記憶又は担持することができる任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送タイプ媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク)、光記憶媒体(例えば、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、及びBLU−RAY(登録商標)ディスク)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュ媒体)などの非一時的タイプ媒体、並びに他の分散システムが挙げられる。
【0061】
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム610にロードされ得る。次いで、コンピュータ可読媒体に格納されたコンピュータプログラムの全て又は一部分は、システムメモリ616並びに/又は記憶デバイス632及び633の種々の部分の中に格納され得る。プロセッサ614によって実行されるとき、コンピューティングシステム610にロードされたコンピュータプログラムは、プロセッサ614に、本明細書に記載及び/又は例解される例示的な実施形態のうちの1つ又は2つ以上の機能を実施させ得るか、及び/又はそれらの機能を実施するための手段であり得る。加えて、又はあるいは、本明細書に記載及び/又は例解される例示的な実施形態のうちの1つ又は2つ以上は、ファームウェア及び/又はハードウェアにおいて実装され得る。例えば、コンピューティングシステム610は、本明細書に開示される例示的な実施形態のうちの1つ又は2つ以上を実装するように適合された特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)として構成され得る。
【0062】
図7は、クライアントシステム710、720、及び730、並びにサーバ740及び745がネットワーク750に連結され得る例示的なネットワークアーキテクチャ700のブロック図である。上記で詳述されたように、ネットワークアーキテクチャ700の全て又は一部分は、単独又は他の要素との組み合わせのいずれかで、本明細書に開示される工程のうちの1つ又は2つ以上(
図3に例示する工程のうちの1つ又は2つ以上など)を実施し得るか、及び/又はそれらの工程を実施するための手段であり得る。ネットワークアーキテクチャ700の全て又は一部分はまた、本開示において記載された他の工程及び特徴を実施するために使用され得るか、及び/又はそれらの工程及び特徴を実施するための手段であり得る。
【0063】
クライアントシステム710、720、及び730は、
図6の例示的なコンピューティングシステム610などの任意のタイプ又は形式のコンピューティングデバイス又はシステムを概して表す。同様に、サーバ740及び745は、種々のデータベースサービスを提供するように、及び/又はある特定のソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを概して表す。ネットワーク750は、例えば、イントラネット、WAN、LAN、PAN、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを概して表す。一例では、クライアントシステム710、720、及び/若しくは730、並びに/又はサーバ740及び/若しくは745は、
図1からのシステム100の全て又は一部分を含み得る。
【0064】
図7に示すように、1つ又は2つ以上の記憶デバイス760(1)〜(N)は、サーバ740に直接的に取設され得る。同様に、1つ又は2つ以上の記憶デバイス770(1)〜(N)は、サーバ745に直接的に取設され得る。記憶デバイス760(1)〜(N)及び記憶デバイス770(1)〜(N)は、データ及び/又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。ある特定の実施形態では、記憶デバイス760(1)〜(N)及び記憶デバイス770(1)〜(N)は、ネットワークファイルシステム(Network File System、NFS)、サーバメッセージブロック(Server Message Block、SMB)、又は共通インターネットファイルシステム(Common Internet File System、CIFS)などの種々のプロトコルを使用して、サーバ740及び745と通信するように構成されたネットワーク接続型ストレージ(Network-Attached Storage、NAS)デバイスを表し得る。
【0065】
サーバ740及び745はまた、ストレージエリアネットワーク(Storage Area Network、SAN)ファブリック780に接続され得る。SANファブリック780は、複数の記憶デバイス間の通信を容易にすることができる任意のタイプ又は形式のコンピュータネットワーク又はアーキテクチャを概して表す。SANファブリック780は、サーバ740及び745と、複数の記憶デバイス790(1)〜(N)及び/又はインテリジェント記憶アレイ795との間の通信を容易にし得る。SANファブリック780はまた、記憶デバイス790(1)〜(N)及びインテリジェント記憶アレイ795がクライアントシステム710、720、及び730にローカルに取設されたデバイスとして見えるように、ネットワーク750並びにサーバ740及び745を介して、クライアントシステム710、720、及び730と、デバイス790(1)〜(N)及び/又はアレイ795との間の通信を容易にし得る。記憶デバイス760(1)〜(N)及び記憶デバイス770(1)〜(N)と同様に、記憶デバイス790(1)〜(N)及びインテリジェント記憶アレイ795は、データ及び/又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。
【0066】
ある特定の実施形態及び
図6の例示的なコンピューティングシステム610の参照では、
図6の通信インターフェース622などの通信インターフェースを使用して、各クライアントシステム710、720、及び730と、ネットワーク750との間の接続性を提供することができる。クライアントシステム710、720、及び730は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ740又は745上の情報にアクセスすることができ得る。かかるソフトウェアは、クライアントシステム710、720、及び730が、サーバ740、サーバ745、記憶デバイス760(1)〜(N)、記憶デバイス770(1)〜(N)、記憶デバイス790(1)〜(N)、又はインテリジェント記憶アレイ795によってホストされるデータにアクセスすることを可能にし得る。
図7はデータを交換するためのネットワーク(インターネットなど)の使用を描写するが、本明細書に記載及び/又は例解される実施形態は、インターネット又は任意の特定のネットワークベース環境に限定されない。
【0067】
少なくとも1つの実施形態では、本明細書に開示される例示的な実施形態のうちの1つ又は2つ以上の全て又は一部分は、コンピュータプログラムとしてコード化され、サーバ740、サーバ745、記憶デバイス760(1)〜(N)、記憶デバイス770(1)〜(N)、記憶デバイス790(1)〜(N)、インテリジェント記憶アレイ795、又はこれらの任意の組み合わせにロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうちの1つ又は2つ以上の全て又は一部分はまた、コンピュータプログラムとしてコード化され、サーバ740に格納され、サーバ745によって動作され、ネットワーク750を通じてクライアントシステム710、720、及び730に分散され得る。
【0068】
上記で詳述したように、コンピューティングシステム610及び/又はネットワークアーキテクチャ700のうちの1つ又は2つ以上の構成要素は、単独又は他の要素との組み合わせのいずれかで、データを不透明データバックアップストリームから復元するための例示的な方法のうちの1つ又は2つ以上の方法を実施し得るか、及び/又はこれらの方法を実施するための手段であり得る。
【0069】
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書に記載及び/又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び/又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア(又はこれらの任意の組み合わせ)構成を使用して、個々に、及び/又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例示的であると見なされるべきである。
【0070】
いくつかの例では、
図1の例示的なシステム100の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表し得る。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他の遠隔インターフェースを通じて、アクセス可能であり得る。本明細書に記載される種々の機能は、遠隔デスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【0071】
種々の実施形態では、
図1の例示的なシステム100の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能のうちの1つ又は2つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム(例えば、サーバ)を構成し得る。例えば、本明細書に記載されるソフトウェアモジュールのうちの1つ又は2つ以上は、2つ又は3つ以上のクライアント(例えば、顧客)が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客(即ち、テナント)間でアプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有し得る。本明細書に記載されるモジュールのうちの1つ又は2つ以上はまた、ある顧客が別の顧客のデータ及び/又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び/又は構成情報を分割し得る。
【0072】
種々の実施形態によると、
図1の例示的なシステム100の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書に記載されるモジュール及び/又はデータは、仮想マシン内に存在し得る、及び/又はそこで実行し得る。本明細書で使用される場合、「仮想マシン」という用語は、概して、仮想マシンマネージャ(例えば、ハイパーバイザ)によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。加えて、又はあるいは、本明細書に記載されるモジュール及び/又はデータは、仮想化層内に存在し得る、及び/又はそこで実行し得る。本明細書で使用される場合、「仮想化層」という用語は、概して、オペレーティングシステム環境に重なる、及び/又はそれから抽象化される、任意のデータ層及び/又はアプリケーション層を指す。仮想化層は、仮想化層を、根本的な基本オペレーティングシステムの一部であるかのように提示する、ソフトウェア仮想化ソリューション(例えば、ファイルシステムフィルタ)によって、管理され得る。例えば、ソフトウェア仮想化ソリューションは、最初は基本ファイルシステム及び/又はレジストリ内の場所に向けられた呼び出しを、仮想化層内の場所にリダイレクトし得る。
【0073】
いくつかの例では、
図1の例示的なシステム100の全て又は一部分は、モバイルコンピューティング環境の一部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス(例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス)などを含む、広範なモバイルコンピューティングデバイスによって実装され得る。いくつかの例では、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に1つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、及び/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力、アプリケーションのインストールを制限する(例えば、承認されたアプリケーションストアのみから得る)能力などを制限する、制限されたプラットフォームを含む、1つ又は2つ以上の異なる特性を含み得る。本明細書に記載される種々の機能は、モバイルコンピューティング環境に対して提供され得る、及び/又はモバイルコンピューティング環境と相互作用し得る。
【0074】
加えて、
図1の例示的なシステム100の全て又は一部分は、情報管理のための1つ又は2つ以上のシステムの一部分を表し得る、それらの相互作用し得る、それらによって生成されるデータを消費し得る、及び/又はそれらによって消費されるデータを生成し得る。本明細書で使用される場合、「情報管理」という用語は、データの保護、組織化、及び/又は記憶を指し得る。情報管理のためのシステムの例としては、限定することなく、記憶システム、バックアップシステム、アーカイバルシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどが挙げられ得る。
【0075】
いくつかの実施形態では、
図1の例示的なシステム100の全て又は一部分は、情報セキュリティのための1つ又は2つ以上のシステムの一部分を表し得る、それらによって保護されるデータを生成し得る、及び/又はそれらと通信し得る。本明細書で使用される場合、「情報セキュリティ」という用語は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティのためのシステムの例としては、限定することなく、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、アイデンティティ認証システム、アクセス制御システム、暗号化システム、ポリシーコンプライアンスシステム、侵入検出及び防止システム、電子ディスカバリシステムなどが挙げられ得る。
【0076】
いくつかの実施例によると、
図1の例示的なシステム100の全て又は一部分は、エンドポイントセキュリティのための1つ又は2つ以上のシステムの一部分を表し得る、それらと通信し得る、及び/又はそれらから保護を受け得る。本明細書で使用される場合、「エンドポイントセキュリティ」という用語は、不法及び/又は違法な使用、アクセス、及び/又は制御からのエンドポイントシステムの保護を指し得る。エンドポイント保護のためのシステムの例としては、限定することなく、マルウェア対策システム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどが挙げられ得る。
【0077】
本明細書に記載及び/又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書に例解及び/又は記載される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書に記載及び/又は例解される種々の例示的な方法はまた、本明細書に記載若しくは例解される工程のうちの1つ又は2つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
【0078】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書に記載及び/又は例解されているが、これらの例示的な実施形態のうちの1つ又は2つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書に開示される実施形態はまた、ある特定のタスクを実施するソフトウェアモジュールを使用して、実装され得る。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態のうちの1つ又は2つ以上を実施するように、コンピューティングシステムを構成し得る。
【0079】
加えて、本明細書に記載されるモジュールのうちの1つ又は2つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を、ある形態から別の形態に変換し得る。例えば、本明細書に列挙されるモジュールのうちの1つ又は2つ以上は、変換される難読化されたデータブロックを受信し、データブロックを難読化されていないデータブロックに変換し、変換結果をサーバに出力し、変換結果を使用して、難読化されたブロックと難読化されていないデータとの間のマッピングを作成し、変換結果をサーバに格納し得る。加えて、又はあるいは、本明細書に列挙されるモジュールのうちの1つ又は2つ以上は、コンピューティングデバイス上で実行すること、コンピューティングデバイス上にデータを記憶すること、及び/又はそうでなければ、コンピューティングデバイスと相互作用することによって、物理的コンピューティングデバイスのプロセッサ、揮発性メモリ、不揮発性メモリ、及び/又は任意の他の部分を1つの形式からもう1つの形式に変換してもよい。
【0080】
先述の説明は、当業者が、本明細書に開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、包括的であること、又は開示されるいかなる正確な形態にも限定されることを意図されない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書に開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【0081】
別途記載されない限り、「〜に接続される(connected to)」及び「〜に連結される(coupled to)」という用語(及びそれらの派生語)は、本明細書及び特許請求の範囲で使用される場合、直接的及び間接的(即ち、他の要素又は構成要素を介した)接続の両方を許容するとして解釈されるものとする。加えて、「a」又は「an」という用語は、本明細書及び特許請求の範囲で使用される場合、「〜のうちの少なくとも1つ(at least one of)」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む(including)」及び「有する(having)」という用語(及びそれらの派生語)は、本明細書及び特許請求の範囲で使用される場合、「備える(comprising)」という語と同義的であり、かつ同じ意味を有する。