(57)【特許請求の範囲】
【請求項１】
ネットワークバックアップシステムから情報を復元するクライアントシステムであって、
命令を格納し、命令を実行するようにそれぞれ構成された、メモリー及びプロセッサーを具備し、前記命令は、
復元されるべきデータ項目について、前記データ項目の現在のバージョンと前記データ項目のターゲットバージョンとの間で異なる前記データ項目の１つ以上の部分を、前記クライアントシステムにおいて計算される前記データ項目の前記現在のバージョンと前記データ項目の前記ターゲットバージョンとの間の第１の差分と、前記クライアントシステムから遠隔にあるバックアップ位置において計算される前記データ項目の現在のバージョンと前記データ項目のターゲットバージョンとの間の第２の差分との両方に基づいて識別するように構成される差分コンポーネントと、
前記１つ以上の識別された部分が格納される複数のネットワーク位置を決定し、前記決定されたネットワーク位置のうちの１つを選択するように構成される位置決定コンポーネントであって、前記複数のネットワーク位置はクラウドサービスプロバイダーに関連付けられる少なくとも１つの位置を含む、位置決定コンポーネントと、
前記選択された位置から前記１つ以上の識別された部分を取り出し、前記取り出された１つ以上の識別された部分によって前記データ項目の前記現在のバージョンを前記データ項目の前記ターゲットバージョンへと復元するように構成される復元コンポーネントと
で構成されるシステム。
【請求項２】
前記差分コンポーネントは、前記データ項目の前記現在のバージョンの部分に関連付けられるそれぞれの部分のシグネチャーを前記データ項目の前記ターゲットバージョンの対応する部分に関連付けられるそれぞれの部分のシグネチャーと比較することによって、少なくとも部分的に、前記１つ以上の部分を識別するようにさらに構成される請求項１に記載のシステム。
【請求項３】
前記位置決定コンポーネントは、所定のネットワーク位置にあるインデックスから前記複数のネットワーク位置を調べるように構成されるインデックスルックアップコンポーネントを含む請求項１に記載のシステム。
【請求項４】
前記インデックスは、前記データ項目の前記１つ以上の部分のリスト及び前記１つ以上の部分の各々についての少なくとも１つの位置に対するポインターを含む請求項３に記載のシステム。
【請求項５】
前記複数のネットワーク位置は、
広域ネットワークを介して前記クライアントシステムに接続されるリモートデバイスの位置と、
ローカルエリアネットワークを介して前記クライアントシステムに接続され、前記データ項目の前記１つ以上の部分を格納するように構成される、ローカルピアデバイスの位置、並びに
ローカルエリアネットワークを介して前記クライアントシステムに接続され、前記データ項目の前記１つ以上の部分及び前記１つ以上の部分のリストと前記１つ以上の部分の各々についての少なくとも１つに対するポインターとを含むインデックスを格納するように構成される、ローカルスーパーピアデバイスの位置
のうちの少なくとも１つと
を含む請求項１に記載のシステム。
【請求項６】
前記位置決定コンポーネントは、前記リモートデバイスの位置よりも前記ローカルピアデバイス又はスーパーピアデバイスの位置を優先させることに少なくとも部分的に基づいて、前記決定されるネットワーク位置のうちの１つを選択するようにさらに構成される請求項５に記載のシステム。
【請求項７】
前記位置決定コンポーネントは、それぞれのネットワーク位置からの前記識別された部分の取り出しのために、ネットワークローディング、ネットワーク位置アップタイム、前記クライアントシステムに対するそれぞれのネットワーク位置の近さ、及び予想される帯域幅消費に少なくとも部分的に基づいて、前記決定されるネットワーク位置のうちの１つを選択するように構成される、ネットワーク分析コンポーネントを含む請求項１に記載のシステム。
【請求項８】
前記複数のネットワーク位置の各々におけるデバイスは、前記データ項目及び前記データ項目に対する１つ以上の付加的な更新を格納するように構成される請求項１に記載のシステム。
【請求項９】
前記復元コンポーネントは、前記取り出された部分を、前記データ項目の前記現在のバージョンの１つ以上の部分とマージすることにより、前記データ項目の前記ターゲットバージョンを復元するようにさらに構成される請求項１に記載のシステム。
【請求項１０】
前記復元コンポーネントは、前記データ項目の前記現在のバージョンの１つ以上の部分を前記データ項目の前記ターゲットバージョンの対応する部分で置き換えることにより、少なくとも部分的に、前記取り出された部分を、前記データ項目の前記現在のバージョンの１つ以上の部分とマージするようにさらに構成される請求項９に記載のシステム。
【請求項１１】
前記復元されるべきデータ項目はシステムイメージである請求項１に記載のシステム。
【請求項１２】
１つ以上のファイルの差分復元を実行する方法であって、
コンピューティングデバイスの少なくとも１つのメモリー上に格納されたファイルのローカルに利用可能なバージョンを識別するステップと、
前記ファイルのローカルに利用可能なバージョンが復元されるべき、前記ファイルのターゲットバージョンを識別するステップと、
前記コンピューティングデバイスが、前記ファイルのローカルに利用可能なバージョンの対応するセグメントとは異なる、前記ファイルのターゲットバージョンのそれぞれのセグメントを、少なくとも前記コンピューティングデバイスと前記コンピューティングデバイスから遠隔にあるバックアップサーバーコンピューティングデバイスの両方によって実行される計算に基づいて、識別するステップと、
各々の識別されたセグメントについて、
前記識別されたセグメントを取り出すことができる複数のネットワークデータストアを決定するステップであって、前記複数のネットワークデータストアはクラウドサービスプロバイダーの少なくとも１つのネットワークデータストアを含む、決定するステップ、
前記複数の決定されたネットワークデータストアから１つのネットワークデータストアを選択するステップ、及び
前記コンピューティングデバイスが、前記選択されたネットワークデータストアから前記識別されたセグメントを得るステップ
を含む、各々の識別されたセグメントを得るステップと、
前記コンピューティングデバイスが、前記ファイルの現在のバージョン及び前記識別された得られたセグメントから、前記ファイルのターゲットバージョンを復元するステップと
を含む方法。
【請求項１３】
前記それぞれのセグメントを識別するステップは、
前記ファイルのターゲットバージョンのセグメントに関連付けられるシグネチャーを、前記ファイルの前記ローカルに利用可能なバージョンの対応するセグメントに関連付けられるシグネチャーと比較するステップを含む請求項１２に記載の方法。
【請求項１４】
前記各々の識別されたセグメントを得るステップは、
第１のネットワークデータストアから第１の識別されたセグメントを得るステップと、
前記第１のネットワークデータストアとは異なる第２のネットワークデータストアから第２の識別されたセグメントを得るステップと
を含む請求項１２に記載の方法。
【請求項１５】
前記ネットワークデータストアは、
広域ネットワークを介して前記コンピューティングデバイスに接続される、前記クラウドサービスプロバイダーのクラウドベースのネットワークデータストアと、
ローカルエリアネットワークを介して前記コンピューティングデバイスに接続され、バックアップセグメントを格納するように構成される、ローカルピアネットワークデータストアと、
ローカルエリアネットワークを介して前記コンピューティングデバイスに接続され、前記バックアップセグメントと前記バックアップセグメントのリスト及び前記バックアップセグメントを取り出すことができるネットワークデータストアに対するポインターを含むインデックスとを格納するように構成される、ローカルスーパーピアネットワークデータストアと
を含む請求項１２に記載の方法。
【請求項１６】
前記１つのネットワークデータストアを選択するステップは、
前記ローカルピアネットワークデータストア及び前記ローカルスーパーピアネットワークデータストアに対して第１の優先順位を適用するステップと、
前記クラウドベースのネットワークデータストアに対して第２の優先順位を適用するステップであって、前記第１の優先順位が前記第２の優先順位に対する優先権を示す、ステップと
を含む請求項１５に記載の方法。
【請求項１７】
前記１つのネットワークデータストアを選択するステップは、前記クラウドベースのネットワークデータストアからの前記識別されたセグメントの取り出しに関連付けられる、前記コンピューティングデバイスと前記ネットワークデータストアとの間のネットワークローディング、ネットワークデータストアの利用可能性、及び予想される帯域幅消費のうちの少なくとも１つに少なくとも部分的に基づいて、前記１つのネットワークデータストアを選択するステップを含む請求項１５に記載の方法。
【請求項１８】
前記復元するステップは、前記ファイルのターゲットバージョンの前記得られたセグメントを、前記ファイルのローカルに利用可能なバージョンのセグメントとマージするステップを含む請求項１２に記載の方法。
【請求項１９】
前記ファイルはシステムイメージの一部又はシステムイメージである請求項１２に記載の方法。
【請求項２０】
ハイブリッドピアツーピア／クラウドベースのバックアップシステムから情報を復元する装置であって、
ファイルのローカルに利用可能なバージョンのブロックと、前記ファイルのターゲットバージョンの対応するブロックとの間の、シグネチャーベースの比較を行い、前記シグネチャーベースの比較及びリモートバックアップ位置において計算された別のシグネチャーベースの比較の両方に基づいて、前記ファイルのローカルに利用可能なバージョンのいかなるブロックとも等しく対応しない前記ファイルのターゲットバージョンの少なくとも１つのブロックを識別する手段と、
前記ファイルのターゲットバージョンの前記少なくとも１つのブロックが取り出しに利用可能な複数のネットワークデバイスを決定し、前記決定された複数のネットワークデバイスのうちの１つを前記ファイルのターゲットバージョンのうちの前記少なくとも１つのブロックのソースとして選択する手段であって、前記複数のネットワークデバイスはクラウドサービスプロバイダーの少なくとも１つのデバイスを含む、手段と、
前記決定された複数のネットワークデバイスのうちの前記選択された１つから前記ファイルのターゲットバージョンの前記少なくとも１つのブロックを得て、前記ファイルのターゲットバージョンのうちの前記少なくとも１つのブロックを、前記ファイルの前記ローカルに利用可能なバージョンの１つ以上のブロックとマージして、前記ファイルの前記ターゲットバージョンを復元する手段と
を具備する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピア及びクラウドからの差分ファイル及びシステムの復元に関する。
【背景技術】
【０００２】
[0001]計算装置がより普及して一般の人々の間で広く使用されるようになるにつれて、そのような装置によって生成され利用されるデータの量は急速に増加してきている。例えば、コンピューティング技術及びデータストレージ技術における最近の進歩は、最も制限のあるフォームファクターの装置でさえ、文書の編集、メディア処理などのデータの不足した様々なアプリケーションのために大量の情報を格納し処理することを可能にした。さらに、通信技術の最近の進歩によって、計算装置は、高速でデータを通信することができることができる。これらの進歩は、他の技術の中でも、例えば、ネットワーク上の複数の位置における計算装置を使用して行うことができる分散コンピューティングサービスの実施につながった。また、そのような進歩はネットワークベースのバックアップなどのサービスの実施を可能にしてきており、それは、計算装置のユーザーがネットワーク上の離れた位置における計算装置に関連付けられるデータの１つ以上のバックアップコピーを維持することを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0002]既存のシステム及び／又はデータバックアップソリューションによって、ユーザーは、元のソースから離れた位置及び／又は媒体にバックアップ情報を格納することができる。したがって、例えば、計算装置からのデータは、ハードドライブから、テープドライブ、外部のハードドライブなどの外部の媒体にバックアップすることができる。しかし、ネットワークベースのバックアップ及び／又はバックアップデータを格納するために物理的に離れた位置を提供するために利用することができる他のソリューションの実施においては、ユーザーのマシンとリモートストレージ位置との間でのユーザーデータの送信及び復元に関連付けられるコストと複雑さは、バックアップシステムの有用性を大幅に制限し得る。例えば、バックアップデータが遠隔ネットワーク位置において格納される場合、ファイル及び／又はシステムイメージの元のコピーのそれぞれのバージョンに関連したデータはリモートストレージに送信することができ、それぞれのバージョンは、後に復元のために検索する（取り出す）ことができる。しかし、かなり大きな量のデータは、一般に、そのような例においてはネットワークを介して送信され、それによって、多くの帯域幅を消費する。前述のことを考慮すると、改善された効率を備えたネットワークベースのバックアップ技術を実施することが望ましい。
【課題を解決するための手段】
【０００４】
[0003]以下は、特許請求された主題のいくつかの態様についての基本的な理解を提供するために、特許請求された主題の単純化された概要を示す。この概要は特許請求された主題の広範囲にわたる概観ではない。特許請求された主題の重要な要素又は重大な要素を識別するようには意図されず、特許請求された主題の範囲を表現するようにも意図されない。その唯一の目的は、特許請求された主題についてのいくつかの概念を、後に示されるより詳細な説明に対する前置きとして、単純化された形式で示すことである。
【０００５】
[0004]ネットワークベースのバックアップシステムのための非常に効率的な復元技術を容易にするシステム及び方法論が本明細書において提供される。差分ベースの分析は、復元すべき項目（アイテム）の特定のバージョンの所与の復元について、１つ以上のリモートバックアップ位置と１つのバックアップクライアントとの間で、新たな完全な差分が、ネットワークを介してデータを送信する前に計算されるように、利用することができる。差分は、例えば、バックアップクライアントに配置された復元されるべき項目の現在のバージョンに対応するシグネチャー（署名、signatures）と、リモートバックアップ位置に配置された所望のバージョンとを比較することによって、バックアップクライアント及びリモートバックアップ位置の両方において計算することができる。計算された差分に基づいて、項目の現在のバージョンとその所望のバージョンとの間で固有の（特有の、独自の）ものであると決定されたブロックのみについて送信を行うことができ、それによって、復元の待ち時間のほか、消費されるネットワーク帯域幅を低減する。一旦得られたならば、リモートバックアップ位置から得られた固有のブロックは、完全に復元されたバージョンを得るために、バックアップクライアントに既に配置された項目の現在のバージョンに存在する固有でないブロックとマージすることができる。
【０００６】
[0005]１つの態様によれば、ハイブリッドアーキテクチャーを使用することができ、復元を行うために必要とされるシグネチャー及び／又はデータは、ネットワーク又はインターネットワーク（例えば、「クラウド」）内のグローバルな位置からのほか、バックアップクライアントが配置されるマシンに関連付けられる１つ以上のピアマシン（peer machines）からのバックアップクライアントにとって利用可能とすることができる。従って、バックアップクライアントは、クラウド又は近くのピアのいずれかからの復元を実行するために必要ないくらかの又はすべての情報を得ることができ、したがって、さらに待ち時間及び帯域幅の消費を低減する。１つの例において、バックアップ情報の格納及び／又は検索のために利用されるべき位置の選択は、ネットワーク位置の利用可能性、関連するロード、ネットワークトポロジーなどのファクターに基づく、インテリジェントで自動化された方法で選択することができる。
【０００７】
[0006]以下の記載及び添付の図面は、特許請求された主題についてのある実例となる態様を詳細に述べる。しかし、これらの態様は、特許請求された主題の原理が使用される様々な方法のうちのほんのいくつかを示すものであり、特許請求された主題は、すべてのそのような態様及びそれらの均等物を含むように意図される。図面とともに考慮すると、特許請求された主題の他の利点及び卓越した特徴が、特許請求された主題についての以下の詳細な説明から明らかとなる。
【図面の簡単な説明】
【０００８】
【図１】[0007]様々な態様に従ってバックアップ情報からの差分復元を行うシステムの高レベルのブロック図である。
【図２】[0008]様々な態様に従ってバックアップ情報を生成するシステムのブロック図である。
【図３】[0009]様々な態様に従ってバックアップ情報に対応するシグネチャーを生成するシステムのブロック図である。
【図４】[0010]様々な態様に従ってシグネチャーベースの差分を行うシステムのブロック図である。
【図５】[0011]様々な態様に従ってハイブリッドクラウドベース及びピアツーピアのバックアップ記憶装置を実施するシステムのブロック図である。
【図６】[0012]様々な態様に従ってハイブリッドクラウドベース及びピアツーピアのバックアップアーキテクチャーで差分復元を行うシステムのブロック図である。
【図７】[0013]本明細書に記載された様々な態様に関して利用することができる例示的なネットワークの実施例を示す。
【図８】[0014]差分ファイルの復元を行う方法のフローチャートである。
【図９】[0015]ファイルのシグネチャーベースの差分を行う方法のフローチャートである。
【図１０】[0016]ハイブリッド・ピアツーピア／クラウドベースのシステムからファイルセグメントを得る方法のフローチャートである。
【図１１】[0017]本明細書に記載された様々な態様が機能することができるコンピューターシステムのブロック図である。
【図１２】[0018]例示的なネットワーク化されたコンピューター環境の概略的なブロック図を示す。
【発明を実施するための形態】
【０００９】
[0019]ここで、特許請求された主題は図面に関して記載され、全体にわたって、同様の要素を指すために同様の参照数字が使用される。以下の記載においては、説明の目的のために、多数の特定の詳細が、特許請求された主題についての完全な理解を提供するために述べられる。しかし、特許請求された主題がこれらの特定の詳細なしに実施され得ることは明白であろう。他の例では、周知の構造及び装置が、特許請求された主題について記述することを容易にするために、ブロック図の形式で示される。
【００１０】
[0020]本出願において使用されるとき、「コンポーネント」、「モジュール」、「システム」、「インターフェース」、「スキーマ」、「アルゴリズム」などの用語は、一般に、コンピューター関連のエンティティー、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれか、を指すように意図される。例えば、コンポーネントは、プロセッサー上で実行するプロセス、プロセッサー、オブジェクト、実行ファイル、実行のスレッド、プログラム、及び／又はコンピューターであってもよいが、これらに限定されない。例として、制御装置上で実行するアプリケーションと制御装置の両方がコンポーネントであってもよい。１つ以上のコンポーネントがプロセス及び／又は実行のスレッド内に存在してもよく、コンポーネントは、１つのコンピューターに局在化され及び／又は２つ以上のコンピューター間に分散されてもよい。
【００１１】
[0021]更に、特許請求された主題は、開示された主題を実施するコンピューターを制御するソフトウェア、ファームウェア、ハードウェア又はそれらの任意の組み合わせを生成する標準的なプログラミング及び／又はエンジニアリング技術を使用して、方法、装置又は製品として実施されてもよい。本明細書において使用されるとき、「製品」という用語は、任意のコンピューター読み取り可能な装置、キャリア又は媒体からアクセス可能なコンピュータープログラムを包含するように意図される。例えば、コンピューター読み取り可能な媒体は、磁気記憶装置（例えば、ハードディスク、フロッピーディスク、磁気ストリップ．．．）、光ディスク（例えば、コンパクトディスク（ＣＤ）、デジタル・バーサタイル・ディスク（ＤＶＤ）．．．）、スマートカード及びフラッシュメモリー装置（例えば、カード、スティック、キードライブ．．．）を含んでいてもよいが、これらに限定されない。また、電子メールを送受信したりインターネット又はローカルエリアネットワーク（ＬＡＮ）などのネットワークにアクセスしたりする際に使用されるものなどの、コンピューター読み取り可能な電子データを運ぶために、搬送波を使用することができることが認識されるべきである。もちろん、当業者であれば、特許請求された主題の範囲又は趣旨から逸脱することなく、この構成に対して多くの修正がなされてもよいことを認識するであろう。
【００１２】
[0022]さらに、本明細書において、「例示的」という語は、例えば、例又は実例として役立つことを意味するように使用される。「例示的」なものとして本明細書に記載されたいかなる態様又は設計も、他の態様又は設計に対して好ましいものであるとか有利であるとは、必ずしも解釈すべきでない。より正確に言えば、例示的という語の使用は、具体的な方法で概念を示すように意図される。本出願の中で使用されるとき、「又は」という語は、排他的な「又は」ではなく、包括的な「又は」を意味するように意図される。すなわち、他の方法で指定されないか又は文脈から明らかでない限り、「ＸはＡ又はＢを使用する」とは、自然な包括的な置換のうちの任意のものを意味するように意図される。すなわち、ＸがＡを使用するか、ＸがＢを使用するか、又はＸがＡとＢの両方を使用する場合、「ＸはＡ又はＢを使用する」ということは、前述の例のうちのいずれにおいても満たされる。さらに、「１つの」という冠詞は、本出願及び添付の特許請求の範囲において使用されるとき、他の方法で指定されないか又は単数形を示すことが文脈から明らかでない限り、一般に、「１つ以上」を意味するように解釈されるべきである。
【００１３】
[0023]ここで図面を参照すると、図１は、本明細書に記載された様々な態様に従ってバックアップ情報からの差分復元を行うシステム１００のブロック図を示す。１つの例において、システム１００は、システム１００を実施し及び／又はそうでなければシステム１００に関連付けられるクライアントマシン上に存在する現在のバージョンからの、ファイル、システムイメージ及び／又は他のデータを、バックアップシステム上に存在する所望のバージョンへ復元するために利用することができる。
【００１４】
[0024]１つの態様によれば、システム１００は、クライアントマシンが関連付けられるネットワーク又はインターネットワーク上の１つ以上のリモートストレージ位置におけるクライアントマシンからのバックアップ情報を格納する、ネットワークベース又はオンラインのバックアップソリューション（例えば、以下にさらに詳細に記載されるような、クラウドバックアップシステム）に関して利用することができる。従来のオンラインバックアップソリューションは、リモートストレージ位置における様々な時点でのバックアップクライアントから得られたファイルの組を維持することにより動作する。続いて、要求に従ってストレージ位置から１つ以上のファイルを検索することにより、復元が行われる。しかし、このようにしてオンラインバックアップシステムからの情報を復元することが、オンラインバックアップ記憶装置から完全なファイルを検索することに関連した、過度の量の時間及び／又は帯域幅を消費し得ることが認識され得る。さらに、例えば、所与のファイル中のデータのほんの小さな部分がクライアントにおいて格納された現在のバージョンと遠隔の位置における所望のバージョンとの間で変わった場合でさえ、そのようなシステムが一般に復元動作のために完全なファイルを検索することが認識され得る。例えば、そのようなシステムは、ある場合において、クライアントにおけるファイルの現在のバージョンと検索されるべきバージョンが、名前及び／又はメタデータにおいてのみ異なる場合でさえ、完全なファイルを検索するように構成される。
【００１５】
[0025]他の従来のオンラインバックアップソリューションは、例えば、情報の複数の完全なバージョンを格納するのではなく、情報の元のバージョンを格納し、続いて当該元のバージョンに対する変化を反映する付加的な（incremental）更新を格納することによって、付加的なリモートストレージを提供することができる。しかし、付加的な更新は、従来、累積的な方法でそのようなシステムにおいて格納されて検索され、その結果、複数の以前のバージョンにわたってファイル又は他の情報を押し戻すことを望むバックアップクライアントは、情報が押し戻されるべき各々の以前のバージョンに対応する付加的な更新を検索することを要求される。ある場合には、バージョンにわたる変化の量が大きくなることがあり、これは、現在のバージョンと所望のバージョンとの間の正味の変化が比較的小さくても、大量の情報がネットワークを介して通信されること、並びに帯域幅の消費及び／又は時間について結果として生じる大きな要求に帰着する。
【００１６】
[0026]従って、遠隔に格納されたバックアップ情報からの復元に関連して増大した効率及びより小さな時間及び帯域幅の消費を提供するために、システム１００は、情報の差分復元（differential restoration）を容易にすることができる。より具体的には、ユーザーが１つ以上のファイルの以前のバージョンを復元することを望む場合、差分コンポーネント（differential component）１１０は、所望のバージョンとユーザーマシンによって現在格納されている現在のバージョンとの間の差分を行うために利用することができる。１つの態様によれば、ファイル及びすべての関連するバックアップの寿命にわたって使用される付加的な差分更新処理を覆す（reversing）代わりに、差分コンポーネント１１０は、その代わりに、いかなる付加的なプロセスの取消し（reversal）も要求することなく、所望のバージョンと現在のバージョンとの間に存在する固有のセグメント又はブロックのみを決定するために、シグネチャー及び／又は他の指標の組を利用することができる。
【００１７】
[0027]別の態様によれば、現在のファイルのバージョンと所望のバージョンとの間の固有のブロックのリストを識別する際、ブロック位置（配置、location）コンポーネント１２０は、関連するネットワーク上の固有のブロックのそれぞれの位置を識別するために利用することができる。したがって、所与のファイルの所望のバージョンからその現在のバージョンに変化したと決定されるファイルのブロック又はセグメントのみを識別し、見つけ、及び／又は検索することにより、システム１００によって行われる復元プロセスが、従来のオンラインバックアップソリューションに対して、低減された待ち時間及び帯域幅要件並びに増加した性能を提供することができることが認識され得る。
【００１８】
[0028]１つの例において、ブロック位置コンポーネント１２０は、現在のファイルのバージョンと所望のファイルのバージョンとの間で異なると決定されるそれぞれのブロックを取り出すために関連するネットワーク上の位置に関連する、地図、インデックス（指標）及び／又は他のメタデータを利用することができる。別の例において、ブロック位置コンポーネント１２０は、それぞれのブロックを得るために最小の抵抗のパスを発見するべく、インテリジェントな及び／又は自動化された方法で、ブロックを探す（locate）ことができる。したがって、例えば、ブロック位置コンポーネント１２０は、ファイルセグメント又はブロックを得るために最も効率的な方法を決定するべく、ネットワーク利用可能性、ローディング（loading）などのファクターを利用することができる。特定の例として、ブロック位置コンポーネント１２０は、所与のブロックがインターネット上のクラウドストレージ位置と及びローカルネットワークに関連付けられる１つ以上のピアマシンとの両方に配置されることを決定することができる。そのような例において、ブロック位置コンポーネント１２０は、より高速な検索及び反対の（converse）ネットワーク帯域幅を容易にするべく、最も近い利用可能なピアからのブロックの検索を容易にして、ピアが利用可能でない場合にのみクラウドに戻るようにすることができる。ピアツーピア及び／又はクラウドベースのストレージアーキテクチャーのために利用することができる実施の例は、さらに詳細に以下に提供される。
【００１９】
[0029]ブロック位置コンポーネント１２０が所与のファイルに対応するそれぞれの固有のブロックの位置を識別した後、復元コンポーネント１３０は、ブロック位置コンポーネント１２０により与えられた位置から識別されたブロックを取り、取り出されたブロックに基づいてファイルの所望のバージョンを復元するために利用することができる。１つの例において、復元コンポーネント１３０がそれぞれの識別されたブロックを取り出す位置は、ブロック位置コンポーネント１２０によって設定することができる。代替的に、ブロック位置コンポーネント１２０は、１つ以上の所与のブロックが配置された位置のリストを提供することができ、これに基づいて、復元コンポーネント１３０は、利用可能性、ローディング、帯域幅の考察、及び／又は他の適切なファクターに基づいて自動的な方法で、ブロックを取り出すべき位置を選択することができる。例えば、ブロック位置コンポーネント１２０は、復元コンポーネント１３０に、所与のブロックが配置される１つ以上のピアのほか、インターネット上のクラウドストレージシステム上の対応する位置を提供することができ、復元コンポーネント１３０は、帯域幅と対話し待ち時間を低減するために実行可能な場合にピアマシンを利用することに重点を置いてブロックを取り出すことができる。
【００２０】
[0030]ファイルの所望のバージョンに対応する識別されたブロックが復元コンポーネント１３０によって取り出された後、復元コンポーネント１３０は、取り出されたブロックを、ファイルの現在のバージョン中に既にローカルに存在する固有でないブロックとマージさせることにより、ファイルの所望のバージョンを再作成することができる。ファイルの所望のバージョンの再作成は、例えば、所望のバージョンに対する現在のバージョンの変化が、ファイルの現在のバージョンと所望のバージョンとの間の差に対応する得られたブロックを使用して押し戻される、逆の差分アルゴリズム（reverse difference algorithm）を使用して行うことができる。しかし、ファイル復元は、現在のファイルのバージョンを所望のファイルのバージョンに関連した固有のファイルセグメントとマージするための任意の適切なアルゴリズムを使用して、復元コンポーネント１３０によって行うことができることが認識されるべきである。さらに、ブロック又はファイルセグメントの構築、識別及び／又は使用は任意の適切な方法でシステム１００によってを行うことができ、その他の方法で明示的に述べられない限り、本願に添付された特許請求の範囲は、ファイルのセグメント化又は復元についてのいかなる特定の例にも限定されるようには意図されないことが認識されるべきである。
【００２１】
[0031]ここで図２を見ると、様々な態様によりバックアップ情報を生成するシステム２００が示される。図２が示すように、システム２００はバックアップコンポーネント２１０を含んでいてもよく、それは、バックアップクライアントマシンに関連付けられる、ファイル、システムのスナップショット及び／又は他の情報のバックアップコピーを生成し、その記憶を容易にすることができる。１つの例において、バックアップコンポーネント２１０は、バックアップされるべきクライアント情報が配置されるマシン上に存在し及び／又は当該マシンから動作することができる。加えて又は代替的に、バックアップコンポーネント２１０は、（例えば、リモートで実行されるコンポーネントのような）異種の計算装置上に存在することができる。１つの例において、バックアップコンポーネント２１０は、１つ以上のイベント（例えば、ファイルの修正）が引き起こされる際、及び／又は任意の他の適切な活性化（起動、activating）基準に基づいて、一定間隔で、ファイル及び／又は他の情報の組をバックアップするために利用することができる。
【００２２】
[0032]１つの態様によれば、ファイルのバックアップは、システム２００を実施するのに必要な帯域幅及び／又はストレージ空間の量を減らすために、バックアップコンポーネント２１０によって付加的な方法で行うことができる。これは、例えば、最初に、セグメンテーションコンポーネント２１２を使用して、バックアップされるべきファイルをそれぞれのファイルセグメント（例えば、ブロック、塊（chunks）など）へ分割することにより、達成することができる。１つの例において、ファイルのセグメンテーション又は塊にすること（chunking）は、それぞれのファイルセグメントの非複製化（非重複化、de-duplication）を容易にする方法でセグメンテーションコンポーネント２１２によって行うことができる。例えば、図３のシステム３００によって示された特定の限定的でない例において、セグメンテーションコンポーネント３１０は、ファイルの第１のバージョン（例えば、バージョンＡ３０２）を、Ａ１からＡ４として図３に示される、一様な及び／又は一様でないブロックへと分割することができる。続いて、ファイルに対する（例えば、バージョンＢ３０４への）修正を検出すると、セグメンテーションコンポーネント３１０は、バージョンＡ３０２からバージョンＢ３０４へ状態において異なる、ファイル中の任意のブロックが容易に識別可能であるように、バージョンＡ３０２のセグメンテーションと一致する方法で、ファイルを再分割することができる。例えば、図３に示されるように、バージョンＢ３０４は、ＢｌとしてバージョンＢ３０４に示される１つのブロックを含み、それはバージョンＡ３０２からバージョンＢ３０４に変化した。
【００２３】
[0033]ファイルの更新されたバージョンにおいて固有のブロックが検出されると、セグメンテーションコンポーネント３１０（及び、同様に、システム２００のセグメンテーションコンポーネント２１２）は、ファイルに対応する新たな及び／又は変更されたブロックのほか、ファイルのそれぞれのバージョン間の変化に関連する他の情報の付加的な記憶を容易にすることができる。システム３００がさらに示すように、本明細書において一般に付加的な更新又はデルタ更新（delta update）と呼ばれるこれらの更新はまた、新たなファイルブロックの追加（例えば、バージョンＣ３０６におけるブロックＣｌの追加）に関連する情報の記憶、ファイルブロックの除去（例えば、バージョンＤ３０８におけるブロックＡ４の削除）、及び／又は他の適切なファイル動作及び／又は修正を容易にするために行うことができる。
【００２４】
[0034]図２のシステム２００に戻ると、ファイルに対応するブロック又はセグメントが生成されると、それぞれのファイル及び／又はファイル更新に対応する様々なブロックは、セグメント分配（distribution）コンポーネント２１４に提供することができる。セグメント分配コンポーネント２１４は、次に、１つ以上のネットワークストレージ位置における１つ以上のセグメントストア２２０中にブロックを分配することができる。セグメントストア２２０は、例えば、ローカルネットワーク中のピアマシン、クラウドストレージサービス及び／もしくは別の適切なインターネットベースのストレージ位置、並びに／又は任意の他のストレージサイトに関連付けることができる。ネットワークストレージ位置中で情報を分配する技術はさらに詳細に以下に記載される。
【００２５】
[0035]１つの態様によれば、シグネチャー（署名）生成コンポーネント２１６は、１つ以上のファイル及び／又はセグメンテーションコンポーネント２１２によってセグメント化されるようなそれらのバージョンに対応するシグネチャー情報を生成するために、バックアップコンポーネント２１０によってさらに使用することができる。例えば、図３の図３００によって示されるように、シグネチャー生成コンポーネント３２０は、特定のファイルのそれぞれのバージョン３０２−３０８に対応するそれぞれのシグネチャー３２２−３２８を生成するために利用することができる。加えて又は代替的に、シグネチャー生成コンポーネント２１６によって生成されたシグネチャーは、単一のブロック、ブロックのグループ（例えば、ファイル及び／又はファイルに対する付加的な更新におけるブロック）、ファイル全体及び／又はファイルのバージョン全体、及び／又は他の適切な集団（グルーピング）に対応してもよい。特定の限定的でない例として、それぞれのブロックは、均等なサイズ（例えば、４キロバイト（ｋｂ））に再構成することができ、それぞれのシグネチャーは、所定の均一な数のブロック（例えば、１２）を表すように構成することができる。しかし、任意の適切なブロックサイズ及び／又はシグネチャー構造を利用することができることが認識されるべきである。
【００２６】
[0036]１つの例において、シグネチャー生成コンポーネント２１６によって作成されたシグネチャーは、ファイルの所与のバージョンに存在するブロック又はセグメントを識別するために利用することができる。さらに、セグメンテーションコンポーネント２１２は、ファイルのそれぞれのバージョンについて生成されたシグネチャーがそれぞれのバージョンにわたる変化を示すように、ファイルのそれぞれのバージョンにわたってセグメンテーションを一貫して行うように構成することができる。従って、図４のシステム４００によって示されるように、ファイルの現在のバージョンと所望のバージョンとの間の固有のブロックの組を識別することができる。
【００２７】
[0037]図４が示すように、差分コンポーネント４２０は、それに関連付けられる復元されるべきファイルの現在のバージョンに対応するシグネチャー４２４を有してもよく、及び／又はそうでなければ、復元されるべきファイルの現在のバージョンに対応するシグネチャー４２４を得るように構成することができる。ファイルを所与の以前のバージョンへと復元することが望まれることを決定すると、シグネチャーソース４１０は、所望のバージョンに関連した対応するシグネチャーを提供することができる。両方のバージョンに関連したシグネチャーに基づいて、その後、コンパレーターコンポーネント４２２は、所望のバージョンと現在のバージョンとの間で固有であるブロックの同一性を得るために、それぞれのシグネチャーを比較することができる。したがって、１つの例において、所与のファイルの復元の成功について要求されるそれぞれの固有のブロックの同一性を決定するために、コンパレーターコンポーネント４２０がシグネチャーベースの差分を行うことができることが、認識され得る。別の例において、シグネチャーソース４１０は、差分コンポーネント４２０を関連付けることができる装置及び／又は別の適切な装置（例えば、クラウドサービスプロバイダー、ピア又はスーパーピア（super-peer）など）に関連付けることができる。限定的でない例として、シグネチャーソース４１０は、関連するシステム及びそれらの対応するシグネチャーにおける情報のそれぞれのバージョンを追跡する、バージョンリストインデックス（version listing index）として実施することができる。１つの例において、そのようなインデックスは、関連するシステムにおけるピア、スーパーピア、又はクラウドストレージなどの、複数のネットワーク位置にわたって分配することができる。しかし、そのような実施例は利用することができる実施の一例にすぎず、その他の方法で明示的に述べられない限り、ここに添付された特許請求の範囲は、そのような実施例に限定されるようには意図されないことが認識されるべきである。
【００２８】
[0038]ここで図５を見ると、様々な態様によるハイブリッドクラウドベース及びピアツーピアのバックアップ記憶装置を実施するシステム５００のブロック図が示される。図５が示すように、システム５００はセグメンテーションコンポーネント５１０を含んでいてもよく、それは、上述のように、ファイルに対応するファイルセグメントもしくはブロック及び／又はそれらのそれぞれのバージョンを生成することができる。１つの例において、セグメンテーションコンポーネント５１０によって生成されたブロックは、セグメント分配コンポーネント５２０に提供することができ、それは、１つ以上の関連するストレージ位置にそれぞれのブロックを提供することができる。
【００２９】
[0039]１つの態様によれば、ハイブリッドピアツーピア（Ｐ２Ｐ）及びクラウドベースのアーキテクチャーはシステム５００によって利用することができ、その結果、セグメント分配コンポーネント５２０は、ピア５３２及び／又はスーパーピア５３４などの１つ以上の信頼されたピアにおけるほか、１つ以上のクラウドストレージ位置５３６において利用できる、復元動作及び／又はそれに関連するシグネチャーを行うために利用される、データの断片（pieces of data）を作ることができる。システム５００においてさらに示されるように、ピア５３２、スーパーピア５３４、及び／又はクラウドストレージ５３６は、互いの間でファイルセグメント、シグネチャー及び／又は他の情報を通信するためにさらに動作可能であってもよい。加えて、セグメンテーションコンポーネント５１０、セグメント分配コンポーネント５２０及び／又はシステム５００の任意の他のコンポーネントは、さらに、１つ以上のピア５３２、スーパーピア５３４、又はクラウドストレージ５３６に関連したエンティティーに関連付けることができることが認識され得る。ピア５３２、スーパーピア５３４及びクラウドストレージ５３６を利用することができる技術に関するさらなる詳細のほか、ハイブリッドアーキテクチャー内のそのようなエンティティーの機能に関するさらなる詳細が、以下に提供される。
【００３０】
[0040]別の態様によれば、セグメント分配コンポーネント５２０は、インデックス（indexing）コンポーネント５２２を含んでもよく及び／又はそうでなければインデックスコンポーネント５２２に関連付けることができ、それは、セグメンテーションコンポーネント５１０によって生成されたブロックと当該ブロックが分配された対応する位置との間のそれぞれのマッピング関係をリストするインデックスを保持することができる。１つの例において、このインデックスは、その中に表されたブロックとともに、ピア５３２、スーパーピア５３４、又はクラウドストレージ位置５３６に分配することができる。１つ以上の位置に全インデックスを分配することができ、又は、インデックスはそれ自体を複数の位置の間でセグメント化して分配することができることが認識され得る。
【００３１】
[0041]追加の態様によれば、セグメント分配コンポーネント５２０は、オプションとしてネットワークアナライザーコンポーネント５２４をさらに含んでもよく、それは、それぞれのブロック、インデックス、インデックスセグメントなどを分配するために、１つ以上の位置を決定するべくシステム５００に関連付けられるコンピューティングネットワークを分析することができる。１つの例において、ネットワークアナライザーコンポーネント５２４は、分配されるべき情報の１つ以上の宛先を、ネットワークローディング、ストレージ位置の利用可能性などに基づいて（例えば、装置の活動レベル、電源が入れられた状態又は電源が切られた状態、それぞれの位置における利用可能なストレージ空間など）、選択することができる。これは、例えば、様々なデータの利用可能性を最適な場所（locality）と釣り合いをとるために行うことができる。
【００３２】
[0042]システム５００がさらに示すように、機械学習及び推論（ＭＬＲ）コンポーネント５２６は、それぞれの情報について記憶位置のインテリジェントで自動化された選択を容易にするために、ネットワークアナライザーコンポーネント５２４によってさらに使用することができる。１つの例において、ＭＬＲコンポーネント５２６は、任意の適切な人工知能（ＡＩ）、機械学習、及び／又は当技術において一般に知られた他のアルゴリズムを利用することができる。本明細書において使用されるとき、「知能」という用語は、例えば、推論、システムに関する既存の情報に基づくシステムの現在又は将来の状態に関する結論を推論するか又は引き出すための能力を指す。人工知能は、人間の介在なしに、特定のコンテキスト又はアクションを識別するか又はシステムの特定の状態の確率分布を生成するために使用することができる。人工知能は、システム上の利用可能なデータ（情報）の組に対して高度な数学的なアルゴリズム（例えば、決定木、ニューラルネットワーク、回帰分析、クラスター分析、遺伝的アルゴリズム及び強化された学習）を適用することに依存する。例えば、多数の方法論のうちの１つ以上は、データから学習し、次に、例えば、隠れマルコフモデル（ＨＭＭ）及び関連する原型の依存性モデルなど、そのように構築されたモデル、例えば、ベイジアンモデルのスコア又は近似を使用して構造探索によって作成される、ベイジアンネットワークなどのより一般的な確率的グラフィカルモデル、サポートベクトルマシン（ＳＶＭ）などの線形分類器、「ニューラルネットワーク」方法論と呼ばれる方法などの非線形分類器、ファジー論理方法論、及び本明細書に記載された様々な自動化された態様の実施に関連付けられる（データ融合を実行する）他の手法から、推論を引き出すのに使用することができる。
【００３３】
[0043]図６を参照すると、様々な態様に従うハイブリッドクラウドベース及びピアツーピアのバックアップアーキテクチャーにおいて差分復元を行うシステム６００が示される。システム６００が示すように、ハイブリッドＰ２Ｐ／クラウドバックアップアーキテクチャーを利用することができ、１つ以上の計算装置に対応するバックアップデータは、１つ以上のピアマシン６１０もしくは６４０及び／又は１つ以上のスーパーピアマシン６５０のほか、１つ以上のクラウドストレージ位置６６０の間で分配される。
【００３４】
[0044]１つの例において、ピアマシン６４０はそれぞれのブロックストアを含んでもよく、それは、１つ以上のファイル又はそれぞれのファイルに対するデルタ更新に対応するブロックの組を受け取って保持するために利用することができる。ファイル及び／又はそれに対する更新は、例えば、復元ピア（restoring peer）６１０（例えば、セグメンテーションコンポーネント５１０によって作成され、セグメント分配コンポーネント５２０によって分配される）に関連付けられてもよい。さらに、システム６００には示されないが、復元ピア６１０は、復元ピア６１０においてローカルに存在するファイル及び／又はファイルのデルタ更新に対応する１つ以上のブロックをローカルに格納するために、さらに又は代替的に、ブロックストアを含んでいてもよい。
【００３５】
[0045]別の例において、システム６００における１つ以上のスーパーピア６５０は、さらに、ブロックストア６５２のほかファイル−ブロックインデックス（file-block index）６５４を含んでもよく、それは、システム６００内に格納されたファイルブロック及びそれらのそれぞれの位置（例えば、インデックスコンポーネント５２２によって作成される）のマスターリストを提供することができる。ファイル−ブロックインデックス６５４はシステム６００中のスーパーピア６５０において配置されるように示されるが、さらに又は代替的に、ファイル−ブロックインデックス６５４のうちのいくらか又はすべてが１つ以上のピア６１０及び／又は６４０のほかクラウドストレージ６６０において配置されてもよいことが認識されるべきである。
【００３６】
[0046]１つの態様によれば、復元ピア６１０において存在する情報のバージョンから以前のバージョンへの復元が望まれることを識別すると、シグネチャーベースの差分が、復元ピア６１０に存在するバージョンと所望のバージョンとの間で行われて、上述の様々な態様に従って、バージョン間で一致しない１つ以上のブロックの同一性を決定することができる。シグネチャーの比較に続いて、ブロック位置コンポーネント６２０は、ファイル−ブロックインデックス６５４及び／又は復元ピア６１０に配置されるような復元されるべき情報のバージョンと所望のバージョンとの間で固有であると決定されるブロックのそれぞれの位置を指す、任意の他の適切なソースから、メタデータを得るために、インデックスルックアップコンポーネント６２２を利用することができる。
【００３７】
[0047]インデックスルックアップコンポーネント６２２によって得られた位置に基づいて、ブロック位置コンポーネント６２０及び／又は復元コンポーネント６３０は、ブロックストア６４２もしくは６５２、ブロックストレージ６６２、及び／又はシステム６００内の任意の他の適切な記憶位置内のそれらの対応する位置から、固有のブロックを取り出すことができる。一旦得られると、その後、ブロックは、所望のバージョンを再作成するために、復元されるべき情報の現在のバージョンに既に存在する固有でないブロックとマージすることができる。したがって、１つの例において、現在のファイルのバージョンと復元されるべきファイルのバージョンとの間のシグネチャーベースの差分を行うことにより、復元は、付加的な更新と無関係に、バージョン間で異なるビット又はブロックだけを取り出すことにより、行うことができる。１つの例において、（例えば、ブロックが復元ピア６１０における１つ以上の他のファイルの一部であることのため）１つ以上のブロックが復元ピア６１０において既にローカルに存在することを（例えば、インデックスルックアップコンポーネント６２２によって、又はその他の方法で）決定することができる。そのような場合において、決定されたローカルのブロックは、システム６００において１つ以上の他の位置からブロックを取り出す代わりに利用することができる。
【００３８】
[0048]したがって、クラウドストレージ６６０において示される特定の例として、オリジナルバージョン及び後のバージョンＹ及びＺとして言及される、ファイルのそれぞれのバージョンは、連続するバージョン（例えば、オリジナル及びＹ、Ｙ及びＺなど）の間の付加的な更新とともに格納することができる。続いて、ユーザーがバージョンＺからファイルの元のバージョンを復元することを望む場合、シグネチャーベースの差分は、元のバージョンとバージョンＹとの間及びバージョンＹとバージョンＺとの間の付加的な更新の完全な反転も、そのような更新の全体のダウンロードも要求することなく、元のバージョンとバージョンＺとの間で固有であるブロックのみを取り出すために利用することができる。
【００３９】
[0049]別の例において、システム６００のハイブリッドＰ２Ｐ／クラウドバックアップアーキテクチャーを、復元ピア６１０において１つ以上のファイルを復元するのに必要な待ち時間及び／又は帯域幅を最小化するために開発することができる。例えば、ブロック位置コンポーネント６２０はネットワーク分析コンポーネント６２４を利用することができ、それは、システム６００を解析して、システム６００を通じた最小の抵抗のパスからそれぞれのファイルセグメントを取り出すことを容易にすることができる。したがって、例えば、所与のブロックがピア６４０又はスーパーピア６５０のほかクラウドストレージ６６０におけるブロックストア６４２又は６５２に存在する場合、最も近いネットワークノードからブロックを最初に取り出すことに優先順位を与えることができる。その結果、ピア６４０又はスーパーピア６５０は、クラウドストレージ６６０と通信することに関連した待ち時間及び帯域幅の使用を最小化するためにクラウドストレージ６６０に対して優先させることができる。
【００４０】
[0050]加えて又は代替的に、ネットワーク分析コンポーネント６２４は、システム６００におけるれぞれのノードの利用可能性、相対的なネットワークローディング、及び／又はそれぞれのブロックを得るためのノードのインテリジェントな選択を容易にするための他のファクターを分析することができる。従って、復元ピア６１０は、最初にピアマシン６４０又はスーパーピア６５０からブロックの組を得ることを試みて、要求されるブロックを備えたピア６４０及び／又は６５０が利用可能でない場合のみ、クラウドストレージ６６０に頼るように構成することができる。別の例において、ＭＬＲコンポーネント６２６は、ブロックを得るためのネットワークノードを選択する処理の自動化を容易にするために利用することができる。
【００４１】
[0051]代替例において、ネットワーク分析コンポーネント６２４が復元ピア６１０に関連付けられるようなシステム６００に示されるが、復元ピア６１０がファイル−ブロックインデックス６５４にアクセスするスーパーピア６５０及び／又は別のエンティティーが、ファイル−ブロックインデックス６５４によって示されるそれぞれのブロックについての複数の位置の中からそれぞれのブロックについて最適な位置を選択するために、同様のネットワーク分析を利用することができることが理解され得る。一旦選択されると、そのような位置は、続いて、復元ピア６１０に提供することができる。
【００４２】
[0052]１つの態様によれば、１つ以上のファイルを所望のバージョンに復元するのに必要な固有のブロックを得ると、復元ピア６１０における復元コンポーネント６３０は、得られた固有のブロックを、ファイルの現在のバージョンに既にローカルに存在する固有でないブロックとマージさせるために利用することができ、それによって、ファイルを所望のバージョンへ復元する。特定の制限的でない例として、逆の差分アルゴリズム（reverse difference algorithm）を復元コンポーネント６３０によって利用することができ、現在のバージョンと所望のバージョンとの間の１つ以上の注目される差分は、所望のバージョンへ戻すために現在のバージョンから差し引かれる。そのような減算は、それぞれのファイルのバージョンに対応するシグネチャーもしくはハッシュ及び／又はそれぞれのファイルのバージョンに関連する任意の他の適切な情報に基づいてもよい。しかし、そのようなアルゴリズムが、利用することができる復元技術の例に過ぎず、そのようなアルゴリズムに加えて又はその代わりに、任意の他の復元アルゴリズムを使用することができることが認識されるべきである。
【００４３】
[0053]次に図７を参照すると、本明細書に記載された様々な態様に関して利用することができる例示的なネットワークの実施例を示す図７００が提供される。図７００が示すように、ネットワークの実施例は、ハイブリッドピアツーピア及びクラウドベースの構造を利用することができ、クラウドサービスプロバイダー７１０は、１つ以上のスーパーピア７２０及び１つ以上のピア７３０−７４０とインタラクトする。
【００４４】
[0054]１つの態様によれば、クラウドサービスプロバイダー７１０は、スーパーピア７２０及び／又はピア７３０−７４０に関連付けられるネットワーク／インターネットワーク（例えば、インターネット）上の所与の位置から１つ以上のコンピューターサービスを遠隔に実施するために利用することができる。クラウドサービスプロバイダー７１０は、１つの位置に由来してもよく、又は、代替的に、クラウドサービスプロバイダー７１０は、分散されたインターネットベースのサービスプロバイダーとして実施することができる。１つの例において、クラウドサービスプロバイダー７１０は、クラウドサービスプロバイダー７１０に関連付けられる１つ以上のピア７２０−７４０対してバックアップ機能を提供するために利用することができる。従って、クラウドサービスプロバイダー７１０は、バックアップサービス７１２を実施し、及び／又は関連付けられるデータ記憶装置７１４を提供することができる。
【００４５】
[0055]１つの例において、データストレージ７１４は、スーパーピア７２０におけるバックアップクライアント７２２及び／又はそれぞれのピア７３０もしくは７４０におけるバックアップクライアント７３２もしくは７４２とインタラクトして、それぞれのピアエンティティー７２０−７４０に存在するデータの中央記憶位置として役立つことができる。このように、クラウドサービスプロバイダー７１０は、データストレージ７１４を介して、ピア７２０−７４０に配置されたデータのオンラインの「貸金庫（safe-deposit box）」として有効に役立つことができる。ファイル（例えば、ドキュメント、写真、音声、動画など）、システム情報などの任意の適切な種類の情報についてバックアップを行うことができることが認識され得る。加えて又は代替的に、分散ネットワーク記憶装置を実施することができ、その結果、スーパーピア７２０又はピア７３０−７４０もまた、関連するローカルネットワーク上の１つ以上のマシンに関連付けられるバックアップデータのためにそれぞれのデータストレージ７２４、７３４及び／又は７４４を含むように構成される。別の例で、非複製化（de-duplication）、付加的な記憶及び／又は他の適切な技術などの技術は、クラウドベースのバックアップサービスの実施のために図７００によって表されたネットワーク中の１つ以上の対応するエンティティーにおけるデータストレージ７１４、７２４、７３４及び／又は７４７によって要求されるストレージ空間の量を減らすために利用することができる。
【００４６】
[0056]別の態様によれば、クラウドサービスプロバイダー７１０は、１つ以上のピアマシン７２０、７３０及び／又は７４０とインタラクトすることができる。図７００に示されるように、１つ以上のピア７２０はスーパーピアとして指定することができ、クラウドサービスプロバイダー７１０と関連するローカルネットワークにおける１つ以上の他のピア７３０−７４０との間の連絡（リエゾン、liaison）として役立つことができる。図７に示されないが、任意の適切なピア７３０及び／又は７４０のほか、指定されたスーパーピア７２０は、適切であると考えられるようなクラウドサービスプロバイダー７１０と直接的にインタラクトすることができることが認識されるべきである。したがって、クラウドサービスプロバイダー７１０、スーパーピア７２０、及び／又はピア７３０もしくは７４０が、図７００によって示されたそれぞれのエンティティー間でファイル又は他の情報を同期させるために任意の適切な時において互いに通信することができることが認識され得る。
【００４７】
[0057]１つの例において、スーパーピア７２０は、本明細書に記載されたようにしてスーパーピアとして動作する能力を有すると決定された、コンテンツ分配ネットワーク（ＣＤＮ）、企業サーバー、ホームサーバー及び／又は他の適切な計算装置などの、ピア７２０−７４０と関連付けられるネットワーク上の中央のエンティティーであってもよい。標準的なピア機能に加えて、スーパーピア７２０は、ローカルネットワーク中のピア７２０−７４０間でデータを収集し、分配し、及び／又はデータにインデックスを付けることに責任をもつことができる。例えば、スーパーピア７２０はストレージインデックス（storage index）７２６を保持することができ、それは、ピア７２０−７４０に対応するそれぞれのファイル及び／又はファイルセグメントのほかそれらのファイル又はセグメントを見つけることができるネットワーク及び／又はクラウドデータストレージ７１４におけるそれぞれの位置に対するポインターの同一性を含んでもよい。さらに又は代替的に、スーパーピア７２０は、例えば、クラウドアップロードコンポーネント７２８を介して指定されたオフピーク時においてクラウドサービスプロバイダー７１０へそれぞれのデータをアップロードすることによって、他のピア７３０−７４０とクラウドサービスプロバイダー７１０との間のゲートウェイとして動作することができる。別の例において、スーパーピア７２０は、「ホット（hot）」又は「コールド（cold）」データのキャッシュとして役立ち得るものであり、その結果、復元される可能性が最もありそうなデータは、復元又は発信（originating）ピアにより近くに配置されるコピーを有し、時間とともに、より多くのコピーが、分散システムの「よりコールドな」部分（例えば、クラウドサービスプロバイダー７１０におけるデータストレージ７１４）に分配される。
【００４８】
[0058]図８−１０に移ると、本明細書において提示される様々な特徴に従って実施され得る方法論が、それぞれの一連の動作によって示される。いくつかの動作は異なる順序で生じてもよいし、又は本明細書において示され記載された他の動作と同時に生じてもよいので、本願において特許請求される方法論が動作の順序によって限定されないことが認識されるべきである。例えば、当業者であれば、状態図においてなど、一連の相互に関連する状態又はイベントとして、方法論を代替的に表し得ることを理解し認識するであろう。さらに、本願において特許請求されるような方法論を実施するためには、すべての示された動作が要求されなくてもよい。
【００４９】
[0059]図８を参照すると、差分ファイルの復元を行う方法８００が示される。８０２において、１つ以上のファイルのローカルに利用可能なバージョン及び１つ以上のファイルが復元されるべきである所望のバージョンが、識別される。８０４において、ローカルに利用可能なバージョンと所望のバージョンとによって異なる、８０２で識別された１つ以上のファイルのブロックが識別される。８０４における識別は、ローカルに利用可能なバージョンと所望のバージョンとの間の差分を行うことにより（例えば、差分コンポーネント１１０を使用して）、少なくとも部分的に行われる。８０６において、８０４で識別されたブロックは、１つ以上のデータストア（例えば、ピア５３２、スーパーピア５３４、及び／又はクラウドストレージ５３６）から（例えば、ブロック位置コンポーネント１２０及び／又は復元コンポーネント１３０によって）得られる。８０８において、８０２で識別された１つ以上のファイルの所望のバージョンは、１つ以上のファイルのローカルに利用可能なバージョン中の１つ以上のブロックに、８０６で得られたブロックをマージすることにより、少なくとも部分的に復元される。
【００５０】
[0060]ここで図９を参照すると、ファイルのシグネチャーベースの差分を行う方法９００のフローチャートが提供される。９０２において、ファイルの現在のバージョン中のそれぞれのブロックに対応する１つ以上のシグネチャー（例えば、シグネチャー４２４）が識別される。９０４において、９０２で識別されたファイルが復元されるべき所望のバージョン中のそれぞれのブロックに対応する１つ以上のシグネチャーが（例えば、シグネチャーソース４１０から）受け取られる。９０６において、ファイルの現在のバージョンとファイルの所望のバージョンとの間で固有である１つ以上のブロックが、（例えば、コンパレーターコンポーネント４２２によって）９０２及び９０４で識別されたシグネチャーを比較することにより識別される。９０８において、９０６で識別された固有のブロックは、１つ以上の関連するブロックストアから得られる。
【００５１】
[0061]図１０は、ハイブリッドピアツーピア／クラウドベースのシステムからファイルセグメントを得る方法１０００を示す。１００２において、ネットワーク上のピア（例えば、ピア６１０もしくは６４０及び／又はスーパーピア６５０）及び／又はクラウドストレージ位置（例えば、クラウドストレージ６６０）の組から得られるべきファイルセグメントの組が識別される。１００４において、それぞれのファイルセグメントを得るためのネットワーク上の１つ以上の位置が、（例えば、ブロック位置コンポーネント６２０によって）（例えば、ネットワーク分析コンポーネント６２４によって決定されるような）ネットワークローディング、位置利用可能性、ネットワーク待ち時間及び／又は帯域幅使用に応じて選択される。１００６において、ファイルセグメントは１００４で選択された位置から得られる。
【００５２】
[0062]本明細書に記載された様々な態様に対する追加のコンテキストを提供するために、図１１及び以下の説明は、特許請求された主題の様々な態様を実施することができる適切なコンピューター環境１１００の簡潔で一般的な説明を提供するように意図される。さらに、上記の特徴は１つ以上のコンピューター上で実行し得るコンピューター実行可能命令の一般的なコンテキストにおいて記載されたが、当業者であれば、他のプログラムモジュールと結合して、及び／又はハードウェアとソフトウェアの組み合わせとして、上記特徴を実施することができることを認識するであろう。
【００５３】
[0063]一般に、プログラムモジュールは、特定のタスク又は特定の抽象データ型を実行する、ルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者であれば、１つ以上の関連する装置に動作可能に結合され得る、単一のプロセッサーもしくはマルチプロセッサーコンピューター・システム、ミニコンピューター、メインフレームコンピューターのほか、パーソナルコンピューター、携帯型の計算装置、マイクロプロセッサーベースもしくはプログラム可能な家電などを含む、他のコンピューターシステム構成によって、特許請求された主題を実施することができることを認識するであろう。
【００５４】
[0064]図示された態様はまた、通信ネットワークを介してリンクされる遠隔処理装置によってあるタスクが行われる分散コンピューティング環境で実施されてもよい。分散コンピューティング環境において、プログラムモジュールはローカルのメモリー記憶装置と遠隔のメモリー記憶装置の両方に配置することができる。
【００５５】
[0065]コンピューターは、通常、様々なコンピューター読み取り可能な媒体を含む。コンピューター読み取り可能な媒体は、コンピューターによってアクセスすることができる任意の利用可能な媒体であってもよく、揮発性及び不揮発性の媒体、取り外し可能な及び取り外し不能な媒体の両方を含む。限定ではなく例として、コンピューター読み取り可能な媒体はコンピューター記憶媒体及び通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータなどの情報の格納のための任意の方法又は技術において実施される、揮発性及び不揮発性、取り外し可能な及び取り外し不能な媒体を含んでもよい。コンピューター記憶媒体は、所望の情報を格納するために使用することができ、コンピューターによってアクセスすることができる、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリーもしくは他のメモリー技術、ＣＤ−ＲＯＭ、デジタル・バーサタイル・ディスク（ＤＶＤ）もしくは他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、又は任意の他の媒体含むが、これらに限定されない。
【００５６】
[0066]通信媒体は、通常、搬送波又は他の移送機構などの変調されたデータ信号に、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータを具体化し、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、情報を信号中に符号化するような方法で設定又は変化されたその特徴の組のうち１つ以上の特徴を有する信号を意味する。限定でない例として、通信媒体は、有線ネットワーク又は直接的な有線接続などの有線の媒体、及び音響、ＲＦ、赤外線及び他の無線媒体などの無線媒体を含む。上記のもののうちの任意のものの組み合わせは、コンピューター読み取り可能な媒体の範囲内に含まれるべきである。
【００５７】
[0067]再び図１１を参照すると、本明細書に記載された様々な態様を実施する例示的な環境１１００は、演算処理装置１１０４、システムメモリー１１０６及びシステムバス１１０８を含むコンピューター１１０２を含む。システムバス１１０８は、システムメモリー１１０６を含むがこれに限定されないシステムコンポーネントを、演算処理装置１１０４へ結合する。演算処理装置１１０４は、様々な市販のプロセッサーのうちの任意のものであり得る。デュアルマイクロプロセッサー及び他のマルチプロセッサー構成もまた演算処理装置１１０４として使用されてもよい。
【００５８】
[0068]システムバス１１０８は、様々な市販のバスアーキテクチャーのうちの任意のものを使用して、（メモリーコントローラーの有無に関わらず）メモリーバス、周辺バス及びローカルバスへさらに相互接続し得る、いくつかの種類のバス構造のいずれかであってもよい。システムメモリー１１０６は、読み取り専用メモリー（ＲＯＭ）１１１０及びランダムアクセスメモリー（ＲＡＭ）１１１２を含む。基本入出力システム（ＢＩＯＳ）は、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの不揮発性メモリー１１１０に格納され、ＢＩＯＳは、起動中などにコンピューター１１０２内の要素間で情報を転送するのを支援する基本ルーチンを含む。ＲＡＭ１１１２はまた、データをキャッシュに入れるための固体ＲＡＭなどの高速ＲＡＭを含んでもよい。
【００５９】
[0069]コンピューター１１０２はさらに内蔵ハードディスクドライブ（ＨＤＤ）１１１４（例えば、ＥＩＤＥ、ＳＡＴＡ）を含み、内蔵ハードディスクドライブ１１１４はまた、適切なシャーシ（図示せず）、磁気フロッピーディスクドライブ（ＦＤＤ）１１１６（例えば、取り外し可能なディスク１１１８から読み書きする）及び光ディスクドライブ１１２０（例えば、ＣＤ−ＲＯＭディスク１１２２を読み、又はＤＶＤなどの他の大容量の光学媒体から読み書きする）における外部使用のために構成されてもよい。ハードディスクドライブ１１１４、磁気ディスクドライブ１１１６及び光ディスクドライブ１１２０は、それぞれ、ハードディスクドライブインターフェース１１２４、磁気ディスクドライブインターフェース１１２６及び光ドライブインターフェース１１２８によってシステムバス１１０８に接続することができる。外付け型ドライブの実施ためのインターフェース１１２４は、ユニバーサル・シリアル・バス（ＵＳＢ）及びＩＥＥＥ−１３９４インターフェース技術の少なくとも１つ又は両方を含む。他の外付け型ドライブ接続技術は開示される主題の意図した中にある。
【００６０】
[0070]ドライブ及びそれらの関連するコンピューター読み取り可能な媒体は、データ、データ構造、コンピューター実行可能命令などの不揮発性の記憶装置を提供する。コンピューター１１０２については、ドライブ及び媒体は、適切なデジタル形式での任意のデータの記憶を提供する。上記のコンピューター読み取り可能な媒体についての記載は、ＨＤＤ、取り外し可能な磁気ディスク、及びＣＤ又はＤＶＤなどの取り外し可能な光学媒体を指すが、当業者によれば、ジップドライブ、磁気カセット、フラッシュメモリーカード、カートリッジなどなどのコンピューターによって読み取り可能な他の種類の媒体もまた例示的な動作環境において使用することができ、さらに、任意のそのような媒体は、本明細書に記載の方法を行うためのコンピューター実行可能命令を含んでもよいことが理解されるべきである。
【００６１】
[0071]オペレーティングシステム１１３０、１つ以上のアプリケーションプログラム１１３２、他のプログラムモジュール１１３４及びプログラムデータ１１３６を含む多くのプログラムモジュールは、ドライブ及びＲＡＭ１１１２に格納することができる。オペレーティングシステム、アプリケーション、モジュール及び／又はデータのすべて又は一部はまた、ＲＡＭ１１１２にキャッシュすることができる。様々な市販のオペレーティングシステム又はオペレーティングシステムの組み合わせによって、特許請求された主題を実施することができることが認識される。
【００６２】
[0072]ユーザーは、例えば、キーボード１１３８、マウス１１４０などのポインティングデバイスなどの１つ以上の有線／無線入力装置を介して、コンピューター１１０２へコマンド及び情報を入力することができる。他の入力装置（図示せず）は、マイクロホン、ＩＲリモートコントロール、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーンなどを含んでもよい。これら及び他の入力装置はシステムバス１１０８に結合される入力装置インターフェース１１４２を介して演算処理装置１１０４にしばしば接続されるが、パラレルポート、シリアルポート、ＩＥＥＥ−１３９４ポート、ゲームポート、ＵＳＢポート、ＩＲインターフェースなどの他のインターフェースを介して接続することができる。
【００６３】
[0073]モニター１１４４又は他の種類の表示装置もまた、ビデオアダプター１１４６などのインターフェースを介してシステムバス１１０８に接続される。モニター１１４４に加えて、コンピューターは、通常、スピーカー、プリンターなどの他の周辺の出力装置（図示せず）を含む。
【００６４】
[0074]コンピューター１１０２は、リモートコンピューター１１４８などの１つ以上のリモートコンピューターへの有線／無線の通信を介した論理接続を使用して、ネットワーク化された環境において動作してもよい。リモートコンピューター１１４８は、ワークステーション、サーバーコンピューター、ルーター、パーソナルコンピューター、ポータブルコンピューター、マイクロプロセッサーベースの娯楽装置、ピア装置又は他の共通ネットワークノードであってもよく、簡潔さの目的のためにメモリー／ストレージ１１５０のみが示されているが、通常、コンピューター１１０２に関連して記載される要素の多く又はすべてを含む。示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）１１５２及び／又は例えば広域ネットワーク（ＷＡＮ）１１５４などのより大きなネットワークへの有線／無線接続を含む。そのようなＬＡＮ及びＷＡＮネットワーキング環境は、オフィス及び会社においてありふれたものであり、イントラネットなどの企業規模のコンピューターネットワークを容易にし、それらのすべては例えばインターネットなどのグローバル通信ネットワークに接続してもよい。
【００６５】
[0075]ＬＡＮネットワーキング環境の中で使用される場合、コンピューター１１０２は、有線及び／又は無線の通信ネットワークインターフェース又はアダプター１１５６を介してローカルネットワーク１１５２に接続される。アダプター１１５６は、ＬＡＮ１１５２への有線又は無線通信を容易にしてもよく、それはまた、無線アダプター１１５６との通信のための、その上に配置されたワイヤレスアクセスポイントを含んでもよい。
【００６６】
[0076]ＷＡＮネットワーキング環境の中で使用される場合、コンピューター１１０２はモデム１１５８を含んでもよいし、ＷＡＮ１１５４の上の通信サーバーに接続されるか、又はインターネット経由でなど、ＷＡＮ１１５４を介して通信を確立するための他の手段を有する。モデム１１５８は、内蔵型又は外付け型の有線又は無線装置であってもよく、シリアルポート・インターフェース１１４２を介してシステムバス１１０８に接続される。ネットワーク化された環境では、コンピューター１１０２又はその一部に関連して示されるプログラムモジュールは、遠隔メモリー／記憶装置１１５０に格納することができる。示されたネットワーク接続が例示的なものであり、コンピューター間で通信リンクを確立する他の手段を使用できることが認識される。
【００６７】
[0077]コンピューター１１０２は、例えば、プリンター、スキャナー、デスクトップ及び／もしくはポータブルコンピューター、ポータブルデータアシスタント、通信衛星、無線で検出できるタグと関連付けられる装置又は位置（例えば、キオスク、ニューススタンド、洗面所）、並びに電話などの、無線通信において動作可能に配置される任意の無線装置又はエンティティと通信するように動作可能である。これは、少なくともＷｉ−Ｆｉ及びＢｌｕｅｔｏｏｔｈ（商標）の無線技術を含む。したがって、通信は、少なくとも２つの装置間の従来のネットワーク又は単にアドホック通信と同様に、所定の構造であってもよい。
【００６８】
[0078]Ｗｉ−Ｆｉ、すなわちワイヤレス・フィデリティーは、基地局の範囲内のいかなる場所でも装置がデータを送受信することを可能にする携帯電話の中で使用されるものに似た無線技術である。Ｗｉ−Ｆｉネットワークは、安全で、信頼でき、高速な無線接続を提供するためにＩＥＥＥ−８０２．１１（ａ、ｂ、ｇなど）無線技術を使用する。Ｗｉ−Ｆｉネットワークは、コンピューターを、互いに、インターネットに、及び（ＩＥＥＥ−８０２．３又はイーサネット（商標）を使用する）有線ネットワークに接続するために使用することができる。Ｗｉ−Ｆｉネットワークは、例えば、無認可の２．４及び５ＧＨｚの無線帯域で、１３Ｍｂｐｓ（８０２．１１ａ）又は５４Ｍｂｐｓ（８０２．１１ｂ）のデータレートで動作し、又は、両方の帯域（デュアルバンド）を含む製品によって動作する。したがって、Ｗｉ−Ｆｉ無線技術を使用するネットワークは、１０ＢａｓｅＴの有線イーサネットネットワークに似た現実世界の性能を提供することができる。
【００６９】
[0079]ここで図１２を参照すると、開示されたアーキテクチャーを実行するように動作可能な例示的なコンピューター編集システムの概略ブロック図が示される。システム１２００は１つ以上のクライアント１２０２を含む。クライアント１２０２は、ハードウェア及び／又はソフトウェア（例えば、スレッド、プロセス、計算装置）であってもよい。１つの例において、クライアント１２０２は、本明細書に記載された１つ以上の特徴を使用することにより、クッキー及び／又は関連する文脈情報を収容することができる。
【００７０】
[0080]システム１２００はまた、１つ以上のサーバー１２０４を含む。サーバー１２０４はまた、ハードウェア及び／又はソフトウェア（例えば、スレッド、プロセス、計算装置）であってもよい。１つの例において、サーバー１２０４は、本明細書に記載された１つ以上の特徴の使用により変換を行うためにスレッドを収容することができる。クライアント１２０２とサーバー１２０４との間の可能な１つの通信は、２つ以上のコンピュータープロセス間で送信されるように構成されたデータパケットの形とすることができる。例えば、データパケットはクッキー及び／又は関連する文脈情報を含んでもよい。システム１２００は、クライアント１２０２とサーバー１２０４との間の通信を容易にするために使用することができる通信フレームワーク１２０６（例えば、インターネットなどのグローバル通信ネットワーク）を含む。
【００７１】
[0081]通信は、（光ファイバを含む）有線及び／又は無線技術によって容易にすることができる。クライアント１２０２は、クライアント１２０２にとってローカルな情報（例えば、クッキー及び／又は関連する文脈情報）を格納するために使用することができる１つ以上のクライアントデータストア１２０８に動作可能に接続される。同様に、サーバー１２０４は、サーバー１２０４にとってローカルな情報を格納するために使用することができる１つ以上のサーバーデータストア１２１０に動作可能に接続される。
【００７２】
[0082]上述されたものは、特許請求された主題の例を含む。当然のことながら、特許請求された主題について記述する目的のためのコンポーネント又は方法論のすべての考えられる組み合わせについて記載することはできないが、当業者であれば、多くのさらなる組み合わせ及び置換が可能であることを認識できる。従って、詳細な説明は、添付の特許請求の範囲の趣旨及び範囲内にあるすべてのそのような変更、修正及び変化を包含するように意図される。
【００７３】
[0083]特に上述のコンポーネント、装置、回路、システムなどによって実行される様々な機能に関して、そのようなコンポーネントについて記述するために使用される用語（「手段」への言及を含む）は、その他の方法で示されない限り、本明細書において示された例示的な態様における機能を実行する開示された構造と構造的に等価でなくても、記載されたコンポーネント（例えば、機能的な均等物）の指定された機能を実行する任意のコンポーネントに対応するよう意図される。この点において、記載された態様は、システムのほか、様々な方法の動作及び／又はイベントを行うためのコンピューター実行可能な命令を有するコンピューター読み取り可能な媒体を含むこともまた認識される。
【００７４】
[0084]さらに、特定の特徴がいくつかの実施例のうちのほんの１つに関して開示されてきたが、そのような特徴は、任意の所与の又は特定のアプリケーションについて所望され有利であるような、他の実施例のうちの１つ以上の他の特徴と組み合わせられてもよい。さらに、「含む」、「含み」という語及びそれらの変形が詳細な説明又は請求項のいずれかにおいて使用される程度において、これらの語は、「具備する」という語と同様にして包括的であるように意図される。
【図１】
0005559867.tif 000002
【図２】
0005559867.tif 000003
【図３】
0005559867.tif 000004
【図４】
0005559867.tif 000005
【図５】
0005559867.tif 000006
【図６】
0005559867.tif 000007
【図７】
0005559867.tif 000008
【図８】
0005559867.tif 000009
【図９】
0005559867.tif 000010
【図１０】
0005559867.tif 000011
【図１１】
0005559867.tif 000012
【図１２】
0005559867.tif 000013