(57)【特許請求の範囲】
【請求項１】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
クライアント・ノードから前記レプリケーション元サーバへのレプリケーション要求に応じて、前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション要求のレプリケーション基準を満たしている、前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバから前記レプリケーション先リストを受信することと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション元リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだなく、前記レプリケーション元ストレージに記憶されている、オブジェクトに関するデータを前記レプリケーション先サーバに送信して、該データを前記レプリケーション先ストレージに記憶させること、
前記各オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを含むエントリを、前記レプリケーション先サーバのレプリケーション・データベースに追加させること、および
前記各オブジェクトに関するエントリを前記レプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む動作を前記レプリケーション元サーバに実行させる、コンピュータ・プログラム。
【請求項２】
前記各オブジェクトに関するエントリが、前記レプリケーション元サーバにおける前記オブジェクトの識別子および前記レプリケーション先サーバにおける前記オブジェクトの識別子を含む、請求項１に記載のコンピュータ・プログラム。
【請求項３】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
レプリケーション要求のレプリケーション基準を満たしている、前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション基準を満たしている、前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、  
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストの各オブジェクトに関するメタデータを前記レプリケーション元サーバから受信することと、
前記メタデータを含むエントリを、前記レプリケーション先サーバのレプリケーション・データベースに追加することと
を含む動作を前記レプリケーション先サーバに実行させる、コンピュータ・プログラム。
【請求項４】
前記レプリケーション先サーバのレプリケーション・データベース内の各オブジェクトに関する前記エントリが、前記レプリケーション元サーバにおける前記オブジェクトの識別子および前記レプリケーション先サーバにおける前記オブジェクトの識別子を含む、請求項３に記載のコンピュータ・プログラム。
【請求項５】
複数のレプリケーション元サーバが、前記レプリケーション先サーバに複製される、請求項３に記載のコンピュータ・プログラム。
【請求項６】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
クライアント・ノードから前記レプリケーション元サーバへのレプリケーション要求に応じて、前記レプリケーション先サーバに複製すべき前記レプリケーション元ストレージのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション要求のレプリケーション基準を満たしている、前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバから前記レプリケーション先リストを受信することと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション元リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記各オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、前記レプリケーション先サーバのレプリケーション・データベース内の前記各オブジェクトに関するエントリに含めさせること、および
前記各オブジェクトに関するエントリを前記レプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、前記コンピュータ・プログラムと
を含む、システム。
【請求項７】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
レプリケーション要求のレプリケーション基準を満たしている、レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション基準を満たしている、前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストの各オブジェクトに関するメタデータを前記レプリケーション元サーバから受信することと、
前記メタデータを含むエントリを、前記レプリケーション先サーバのレプリケーション・データベースに追加することと
を含む、前記コンピュータ・プログラムと
を含む、システム。
【請求項８】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
クライアント・ノードから前記レプリケーション元サーバへのレプリケーション要求に応じて、前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション要求のレプリケーション基準を満たしている、前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバから前記レプリケーション先リストを受信することと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション元リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだなく、前記レプリケーション元ストレージに記憶されている、オブジェクトに関するデータを前記レプリケーション先サーバに送信して、該データを前記レプリケーション先ストレージに記憶させること、
前記各オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを含むエントリを、前記レプリケーション先サーバのレプリケーション・データベースに追加させること、および
前記各オブジェクトに関するエントリを前記レプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、方法。
【請求項９】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
レプリケーション要求のレプリケーション基準を満たしている、前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション基準を満たしている、前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストの各オブジェクトに関するメタデータを前記レプリケーション元サーバから受信することと、
前記メタデータを含むエントリを、前記レプリケーション先サーバのレプリケーション・データベースに追加することとを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レプリケーション元サーバからレプリケーション先サーバにデータ・オブジ
ェクトを複製するためのコンピュータ・プログラム製品、システム、および方法に関する
。
【背景技術】
【０００２】
データがバックアップされている主レプリケーション元サーバがダウンする場合に、ク
ライアントがレプリケーション・サイトからそれらのクライアントのデータを復旧するこ
とができるように、複数のノードに属するデータを１つのサーバから別のサーバに複製す
るために、データ・レプリケーションが使用される。Ｔｉｖｏｌｉ（Ｒ）Ｓｔｏｒａｇｅ
Ｍａｎａｇｅｒ（ＴＳＭ）などのストレージ管理サーバは、１つまたは複数のストレー
ジ・プールにデータ・オブジェクトを記憶し、記憶されたオブジェクトについてのメタデ
ータを追跡するためにデータベースを使用する。（Ｔｉｖｏｌｉは、世界的にＩＢＭの商
標である）。ストレージ管理サーバは、災害復旧を目的として遠隔の場所にデータ・オブ
ジェクトを複製する可能性がある。遠隔の場所にデータを転送するために使用される方法
の一部は、データのコピーを含むテープをレプリケーション元のサイトから災害復旧用の
サイトに物理的に運ぶこと、データを電子的に送信すること（ＴＳＭのエクスポート／イ
ンポート）、またはレプリケーション元のサイトのディスク・ストレージのハードウェア
のレプリケーションを用いてデータのミラーを作成することを含む。利用可能なレプリケ
ーション・ハードウェア・デバイスは、重複排除ハードウェアを使用してブロック・レベ
ルのレプリケーションを行う仮想テープ・ライブラリ（ＶＴＬ）製品を含む。
【０００３】
データの重複排除は、冗長なデータを取り除いてストレージの利用を改善するためのデ
ータ圧縮技術である。重複排除は、チャンクまたはエクステントとしても知られる一意の
データ単位の１つのコピーだけが記憶されるので、必要とされるストレージ容量を削減す
る。ストレージ管理サーバおよび仮想テープ・ライブラリ（ＶＴＬ）などのディスクに基
づくストレージ・システムは、冗長なデータ・チャンクを検出し、そのようなチャンクの
冗長な記憶を避けることによって重複を少なくするための重複排除技術を実装する可能性
がある。
【０００４】
重複排除システムは、ファイルを一連のチャンクまたはエクステントに分割することに
よって動作する。重複排除システムは、チャンクのいずれかが既に記憶されているかどう
かを決定し、続けて、それらの冗長でないチャンクだけを記憶する。冗長性は、ファイル
内の記憶されているチャンク、またはシステムに既に記憶されたチャンクを用いて調べら
れる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
１つのサーバから別のサーバにオブジェクトを複製するための改善された技術に対する
ニーズが、当技術分野に存在する。
【課題を解決するための手段】
【０００６】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプ
リケーション先サーバによって管理されるレプリケーション先ストレージにデータ・オブ
ジェクトを複製するためのコンピュータ・プログラム製品、システム、および方法が、提
供される。レプリケーション先サーバに複製すべきレプリケーション元サーバのオブジェ
クトのレプリケーション元リストが、構築される。レプリケーション先サーバのオブジェ
クトのレプリケーション先リストを得るために記レプリケーション先サーバが、問い合わ
せされる。レプリケーション先サーバに転送すべき、レプリケーション先リストに含まれ
ていない、レプリケーション元リストに載っているオブジェクトを示すレプリケーション
・リストが、構築される。レプリケーション・リストの各オブジェクトに関して、レプリ
ケーション先ストレージにまだないオブジェクトに関するデータが、レプリケーション先
サーバに送信され、オブジェクトに関するメタデータが、レプリケーション先サーバに、
メタデータをレプリケーション先サーバのレプリケーション・データベース内のオブジェ
クトに関するエントリに含めさせるためにレプリケーション先サーバに送信される。オブ
ジェクトに関するエントリが、レプリケーション元サーバのレプリケーション・データベ
ースに追加される。
【０００７】
さらなる実施形態においては、レプリケーション先サーバのオブジェクトのレプリケー
ション先リストの問い合わせが、レプリケーション元サーバから受信される。レプリケー
ション先サーバのオブジェクトのレプリケーション先リストが、レプリケーション元サー
バに送信される。レプリケーション先ストレージに記憶すべきオブジェクトに関するデー
タが、レプリケーション元サーバから受信される。複製すべきオブジェクトに関して受信
されたデータに関するメタデータが、レプリケーション元サーバから受信される。オブジ
ェクトに関して受信されたメタデータを含め、データが受信される各オブジェクトに関し
て、レプリケーション先サーバのレプリケーション・データベースにエントリが追加され
る。
【図面の簡単な説明】
【０００８】
【図１】実施形態が実装され得るコンピューティング環境を示す図である。
【図２】オブジェクト情報の実施形態を示す図である。
【図３】レプリケーション元およびレプリケーション先レプリケーション・データベース・エントリの実施形態を示す図である。
【図４】チャンク記憶情報エントリの実施形態を示す図である。
【図５】チャンク・インデックス・エントリの実施形態を示す図である。
【図６】レプリケーション要求を処理するための動作の実施形態を示す図である。
【図７】レプリケーション要求を処理するための動作の実施形態を示す図である。
【図８】レプリケーション要求を処理するための動作の実施形態を示す図である。
【図９】重複排除を使用してオブジェクトを複製するための動作の実施形態を示す図である。
【図１０】ネットワーク・コンピューティングの実施形態でのノードの実装を示す図である。
【図１１】クラウド・コンピューティング環境の実施形態を示す図である。
【図１２】クラウド・コンピューティング環境の抽象化モデルのレイヤの実施形態を示す図である。
【発明を実施するための形態】
【０００９】
説明される実施形態は、レプリケーション先サーバで既に利用可能なデータの送信を避
けることによって送信帯域幅をより最適に利用するようにしてレプリケーション元サーバ
からレプリケーション先サーバにデータ・オブジェクトを複製する。さらに、レプリケー
ション元サーバが、レプリケーション先サーバで既に利用可能なデータまたはチャンクを
有するオブジェクトに関するメタデータを送信して、レプリケーション先サーバに、レプ
リケーション先サーバに既にあるオブジェクトに関してレプリケーション・データベース
にエントリを追加させ、データおよびメタデータの一貫性を保証させる。説明される実施
形態は、オブジェクト・レベルで複製すべきオブジェクトの選択およびフィルタリングを
許可するためのレプリケーション基準をユーザが与えることを可能にする。さらなる実施
形態は、レプリケーション先サーバに既に記憶されている、複製されるオブジェクトのチ
ャンクを送り出すことを避けるために重複排除も採用する。
【００１０】
図１は、レプリケーション元ストレージ８ａのオブジェクトに関するデータをレプリケ
ーション先ストレージ８ｂに複製するためのレプリケーション元レプリケーション・マネ
ージャ６ａおよびレプリケーション先レプリケーション・マネージャ６ｂをそれぞれ含む
レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂを有するコンピュー
ティング環境２の実施形態を示す。サーバ４ａ、４ｂのデバイスのどちらかが、レプリケ
ーション元およびレプリケーション先サーバとして機能する可能性がある。レプリケーシ
ョンは、クライアント・ノードによって所有されているオブジェクトを複製するために、
レプリケーション元サーバ４ａに接続されたクライアント・ノードのために実行される可
能性がある。レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂは、そ
れぞれオブジェクト情報１０ａおよび１０ｂで定義されたデータ・オブジェクトを保有す
る。チャンク１２ａ、１２ｂと呼ばれる別々のデータの単位の形態である可能性があるデ
ータ・オブジェクトに関するデータが、レプリケーション元ストレージ８ａおよびレプリ
ケーション先ストレージ８ｂにそれぞれ保有されている。各サーバ４ａ、４ｂは、オブジ
ェクト情報１０ａ、１０ｂで定義されたデータ・オブジェクトのチャンクが置かれている
ストレージ８ａ、８ｂ内の位置を示すチャンク記憶情報１４ａ、１４ｂを保有する。オブ
ジェクト情報１０ａ、１０ｂは、各オブジェクトに割り振られたデータのチャンク１２ａ
、１２ｂの順序付きリストから成る、それぞれの定義されたデータ・オブジェクトに関す
るメタデータまたはエントリを含む。
【００１１】
レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂは、クライアント
・ノードのためにレプリケーション先サーバ４ｂに複製されるレプリケーション元サーバ
４ａのデータ・オブジェクトに関する情報を有するレプリケーション元レプリケーション
・データベース１６ａおよびレプリケーション先レプリケーション・データベース１６ｂ
をそれぞれ保有する。さらに、レプリケーション元サーバ４ａは、所有するクライアント
・ノード、クライアント・ノードのファイルスペース、およびデータ・タイプなどのレプ
リケーション基準を満たす、複製すべきレプリケーション元サーバ４ａ上のオブジェクト
を有するレプリケーション元リスト３０と、レプリケーション基準を満たすレプリケーシ
ョン先サーバ４ｂ上のオブジェクトを有するレプリケーション先リスト３２と、オブジェ
クトを一意に特定するための一意の識別子または属性を含む、レプリケーション先サーバ
４ｂ内のオブジェクトのレプリケーション先インベントリ３４と、レプリケーション先サ
ーバ４ｂに複製すべき、レプリケーション元リスト３０に載っていてレプリケーション先
リスト３２に載っていないファイルのレプリケーション・リスト３６とを保有し、使用す
る。レプリケーション先インベントリ３４を構築するために使用される基準は、レプリケ
ーション基準よりも広いか、またはレプリケーション基準と同じである可能性がある。
【００１２】
重複排除コンポーネント２４は、レプリケーション元サーバ４ａまたはレプリケーショ
ン先サーバ４ｂがオブジェクト・データを送信するときに、受信するサーバ４ａ、４ｂに
既に存在する重複するチャンクが再送信されないことを保証するために、レプリケーショ
ン元サーバ４ａおよびレプリケーション先サーバ４ｂに重複排除サービスを提供する。重
複排除コンポーネント２４は、重複排除動作を実行するための重複排除マネージャ２６と
、オブジェクトに割り振られたチャンク１２ａ、１２ｂに関する情報を提供する重複排除
インデックスなどのチャンク・インデックス２８とを含む。重複排除マネージャ２６は、
データ・オブジェクトがレプリケーション元サーバ４ａとレプリケーション先サーバ４ｂ
との間で転送されるときに、それぞれのチャンクの１つのコピーだけがレプリケーション
元ストレージ８ａおよびレプリケーション先ストレージ８ｂに保有されることを保証する
が、ただし、１つのストレージ８ａ、８ｂ内の１つのチャンクは、そのストレージを管理
するサーバ４ａ、４ｂのために定義された複数のデータ・オブジェクトに含まれる可能性
がある。重複排除マネージャ２６は、レプリケーション元サーバ４ａおよびレプリケーシ
ョン先サーバ４ｂ内のオブジェクトへのチャンクの割り振りに関する情報を有するオブジ
ェクト情報１０ｃも保有する可能性がある。
【００１３】
重複排除を実行するために、データ・オブジェクトの新しいまたは未変更のチャンクを
持つと、レプリケーション元レプリケーション・マネージャ６ａまたはその他のコンポー
ネントが、チャンク記憶情報１４ａ、１４ｂなどのチャンクに関するハッシュをデータベ
ースから取得する可能性がある。代替的な実施形態においては、レプリケーション元レプ
リケーション・マネージャ６ａが、ハッシュを計算する可能性がある。レプリケーション
元レプリケーション・マネージャ６ａは、チャンク・インデックス２８が一致するハッシ
ュを有するかどうかを決定するために、チャンクのアクセスされたハッシュを重複排除マ
ネージャ２６に伝達する。チャンク・インデックス２８が一致するハッシュを持たない場
合、重複排除マネージャ２６は、チャンクが新規であることをレプリケーション元レプリ
ケーション・マネージャ６ａに知らせ、レプリケーション元レプリケーション・マネージ
ャ６ａは、データ・オブジェクトの新しいまたは変更されたチャンクの完全なコピーを、
レプリケーション先ストレージ８ｂに記憶するためにレプリケーション先サーバ４ｂに送
信する。そうではなく、チャンク・インデックス２８がハッシュの一致するコピーを有す
る場合、レプリケーション元レプリケーション・マネージャ６ａは、チャンクの完全なコ
ピーを転送する必要がない。その代わりに、レプリケーション元レプリケーション・マネ
ージャ６ａは、チャンクのダイジェストおよびオブジェクト内でのそのチャンクの位置を
転送する可能性がある。代替的に、レプリケーション元レプリケーション・マネージャ６
ａは、チャンクをレプリケーション先サーバ４ｂに送信する必要があるかどうかを決定す
るために重複排除コンポーネント２４とインタラクションする可能性がある。
【００１４】
レプリケーション元側の重複排除の実施形態においては、レプリケーション元レプリケ
ーション・マネージャ６ａが、チャンクがレプリケーション先サーバ４ｂに送信される必
要があるかどうかを決定するために重複排除マネージャ２６と通信し、その結果、レプリ
ケーション先ストレージ８ｂにあることがチャンク・インデックス２８でまだ示されてい
ない新しいチャンクだけがレプリケーション先サーバ４ｂに送信される。レプリケーショ
ン先側の重複排除の実施形態においては、レプリケーション元サーバ４ａが、レプリケー
ション先サーバ４ｂに複製すべきデータ・オブジェクトのすべてのチャンクを送信し、レ
プリケーション先レプリケーション・マネージャ６ｂが、重複排除コンポーネント２４に
、どのチャンクがレプリケーション先ストレージ８ｂに記憶される必要がある新しいチャ
ンクであるかを決定するように要求する。
【００１５】
レプリケーション元サーバ４ａ、レプリケーション先サーバ４ｂ、および重複排除コン
ポーネント２４は、ローカル・エリア・ネットワーク（ＬＡＮ）、ストレージ・エリア・
ネットワーク（ＳＡＮ）、広域ネットワーク（ＷＡＮ）などのネットワークを介して通信
する別々のコンピュータ・デバイスで実装される可能性がある。さらなる実施形態におい
ては、レプリケーション元サーバ４ａ、レプリケーション先サーバ４ｂ、または重複排除
コンポーネント２４、あるいはそれらすべては、１つまたは２つのコンピュータ・システ
ム上に実装される可能性がある。レプリケーション元サーバ４ａ、レプリケーション先サ
ーバ４ｂ、または重複排除コンポーネント２４、あるいはそれらすべてが同じシステム内
にある場合、それらは、バスまたはメモリを介して通信する可能性がある。
【００１６】
レプリケーション元ストレージ８ａおよびレプリケーション先ストレージ８ｂは、相互
に接続された（例えば、ＤＡＳＤ、ＲＡＩＤ、ＪＢＯＤなどとして構成された）ハード・
ディスク・ドライブ、ソリッド・ステート・ストレージ・デバイス（例えば、ＥＥＰＲＯ
Ｍ（電気的消去可能プログラマブル読み出し専用メモリ）、フラッシュ・メモリ、フラッ
シュ・ディスク、ストレージ・クラス・メモリ（ＳＣＭ：storage-class memory））、電
子的なメモリ、磁気テープ媒体、テープ・カートリッジなどの当技術分野で知られている
１つまたは複数のストレージ・デバイスで構成され得る。
【００１７】
レプリケーション元レプリケーション・マネージャ６ａ、レプリケーション先レプリケ
ーション・マネージャ６ｂ、および重複排除マネージャ２６は、プロセッサによって実行
されるメモリ内のソフトウェア・プログラムを含む可能性がある。代替的な実施形態にお
いては、レプリケーション元レプリケーション・マネージャ６ａ、レプリケーション先レ
プリケーション・マネージャ６ｂ、および重複排除マネージャ２６の一部またはすべてが
、専用の集積回路、例えば、特定用途向け集積回路（ＡＳＩＣ）、拡張カードなどのハー
ドウェア・コンポーネントで実装される可能性がある。
【００１８】
レプリケーション元レプリケーション・マネージャ６ａ、レプリケーション先レプリケ
ーション・マネージャ６ｂ、および重複排除マネージャ２６は別々のコンポーネントとし
て示されているが、代替的な実装においては、レプリケーション元レプリケーション・マ
ネージャ６ａ、レプリケーション先レプリケーション・マネージャ６ｂ、および重複排除
マネージャ２６によって実行される機能は、単一のコンピュータ・システムの単一のプロ
グラム・コンポーネントで、または３つ以上のコンピュータ・デバイスの３つ以上のプロ
グラム・コンポーネントで実装される可能性がある。例えば、重複排除コンポーネント２
４は、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂ、またはレプ
リケーション元レプリケーション・マネージャ６ａもしくはレプリケーション先レプリケ
ーション・マネージャ６ｂのコンポーネントの一部で分けて実装される可能性がある。重
複排除コンポーネント２４が各サーバ４ａ、４ｂで分けて実装される実施形態において、
各サーバ４ａ、４ｂは、そのサーバ独自の重複排除コンポーネント２４を有し、オブジェ
クト情報１０ｃおよびチャンク・インデックス２８を保有する可能性がある。
【００１９】
レプリケーション元レプリケーション・マネージャ６ａおよびレプリケーション先レプ
リケーション・マネージャ６ｂは、復元動作の一部としてオブジェクトを復旧するために
クライアント・ノードによって使用され得る。
【００２０】
図２は、オブジェクト情報１０ａ、１０ｂ、１０ｃに保有される１つのオブジェクトに
関するオブジェクト情報５０の実施形態を示す。１つのオブジェクトに関するオブジェク
ト情報５０は、オブジェクトの識別子（ＩＤ）５２と、オブジェクト５２に割り振られた
データの１つまたは複数のチャンク５４ａ、５４ｂ．．．．５４ｎに関する識別情報とを
含む。オブジェクト情報５０は、データ・オブジェクト内でチャンクが現れる順序１．．
．．ｎを示す、チャンク（Ｃ１．．．．Ｃｎ）に対する参照の順序付きリストを保有する
可能性がある。各チャンク（Ｃｉ）に関して、オブジェクト情報５４ｉが、チャンクのダ
イジェスト（ｄｉ）およびチャンクの長さ（ｌｉ）を保有する。このように、オブジェク
ト情報５０は、ダイジェストおよび長さなどの、データ・オブジェクトに含まれるチャン
クに対する参照を提供するが、実際のデータは提供しない。ダイジェスト（ｄ）は、チャ
ンクを処理してチャンクに関する一意の値を生成することによって計算され得る。例えば
、一実施形態において、ダイジェストは、データ・オブジェクトの各チャンクの暗号学的
ハッシュを計算するＭＤ５（メッセージ・ダイジェスト・アルゴリズム５）またはＳＨＡ
−１（セキュア・ハッシュ・アルゴリズム１）などの暗号学的ダイジェスト（cryptograp
hic digest）を含む可能性がある。
【００２１】
図３は、レプリケーション元サーバ４ａからレプリケーション先サーバ４ｂに複製され
る各オブジェクトに関するレプリケーション元レプリケーション・データベース１６ａお
よびレプリケーション先レプリケーション・データベース１６ｂ内のエントリ６０の実施
形態を示す。エントリ６０は、オブジェクト識別子（ＩＤ）６２と、署名、ハッシュ値、
または一意のネーミング規約などの、オブジェクトの一意の識別子を提供するオブジェク
ト一意属性６４と、オブジェクト６２を保有するサーバ４ａ、４ｂの識別子を含むサーバ
識別子（ＩＤ）６６と、レプリケーション関係にある他方のサーバ４ａ、４ｂを特定する
レプリケーション・サーバＩＤ６８（例えば、レプリケーション元レプリケーション・デ
ータベース１６ａ内のエントリ６０は、レプリケーション・サーバＩＤ６８にレプリケー
ション先サーバ４ｂの識別子を有し、レプリケーション先レプリケーション・データベー
ス１６ｂ内のエントリ６０は、レプリケーション・サーバＩＤ６８にレプリケーション元
サーバ４ａの識別子を有する）と、レプリケーション・サーバ６８内のオブジェクトに割
り振られた識別子を特定する複製済みオブジェクトＩＤ７０と、オブジェクト６０を所有
するクライアント・ノードのレプリケーション元サーバ４ａの識別子を与えるサーバ・ノ
ード識別子（ＩＤ）７２と、オブジェクト６０を含むファイルスペースを特定するファイ
ルスペースＩＤのレプリケーション元サーバ４ａの識別子７４と、レプリケーション先サ
ーバ４ｂ、すなわちレプリケーション・サーバが、オブジェクト６０を所有するクライア
ント・ノードに割り振る識別子を含むレプリケーション・サーバ・ノードＩＤ７６と、レ
プリケーション先サーバ４ｂ（レプリケーション・サーバ）が、オブジェクト６０を含む
ファイルスペースに割り振る識別子を含むレプリケーション・サーバ・ファイルスペース
ＩＤ７８と、オブジェクト６０のデータ・タイプを特定するデータ・タイプＩＤ８０とを
含む。
【００２２】
したがって、特定の実施形態においては、各サーバ４ａ、４ｂが、ノード７２および７
６ならびにファイルスペース７４および７８にそのサーバ独自のＩＤをそれぞれ割り振る
。
【００２３】
図４は、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂが管理す
るそれぞれのストレージ８ａ、８ｂに保有される各チャンク１２ａ、１２ｂに関するそれ
らのサーバのそれぞれのチャンク記憶情報１４ａ、１４ｂにそれらのサーバが保有するチ
ャンク記憶情報エントリ８１の実施形態を示す。チャンク記憶情報エントリ８１は、チャ
ンクＩＤ８２と、チャンクがストレージ８ａ、８ｂ内のどこに記憶されているかを特定す
る論理または物理アドレスなどの、特定されるチャンク８２のストレージ８ａ、８ｂ内の
記憶位置８４と、チャンクを参照する、レプリケーション元サーバ４ａまたはレプリケー
ション先サーバ４ｂのオブジェクトの数を示す参照数８６とを含む。いずれのオブジェク
トでも参照されていない参照を解除（dereference）されたチャンク１２ａ、１２ｂは、
参照数８６が０であり、ストレージ８ａ、８ｂでスペースが必要な場合に削除の対象にな
る可能性がある。
【００２４】
図５は、ストレージ８ａ、８ｂに記憶された各チャンク１２ａ、１２ｂに関するチャン
ク・インデックス２８に重複排除マネージャ２６によって保有される重複排除インデック
ス・エントリ９０の実施形態である。インデックス・エントリ９０は、ストレージ８ａ、
８ｂ内のチャンクのチャンク識別子（ＩＤ）９２と、チャンクＩＤ９２によって示される
チャンクから計算されたハッシュ値９４と、チャンクの長さ９６とを含む。チャンク１２
ａのコピーをレプリケーション先サーバ４ｂに送信すべきかどうかを決定するとき、レプ
リケーション元レプリケーション・マネージャ６ａは、チャンクのハッシュおよび長さを
重複排除コンポーネント２４に提供することができ、重複排除マネージャ２６は、チャン
ク・インデックス２８内の１つのエントリ９０が、レプリケーション元レプリケーション
・マネージャ６ａによって送信されるチャンク１２ａに関するそれらの値に一致するハッ
シュ値９４および長さ９６を有するかどうかを決定して、レプリケーション元レプリケー
ション・マネージャ６ａがチャンク１２ａを送信する必要があるのか、またはチャンク１
２ａの識別子、例えば、ダイジェストおよび長さだけを送信する必要があるのかを決定す
ることができる。さらに、チャンク・インデックス・エントリ９０は、ストレージ８ａ、
８ｂ内のチャンク１２ａ、１２ｂを管理するための追加の情報を含む可能性がある。
【００２５】
このように、本明細書においてチャンクと呼ばれるデータ・オブジェクトの下位要素は
、それらの下位要素が含まれるオブジェクトとは別に記憶される。チャンク１２ａ、１２
ｂは、トラックのエクステント、データのブロック、またはオブジェクトに割り振られ得
るデータの任意のその他の定義可能な下位単位を含む可能性がある。これらのチャンク１
２ａ、１２ｂは、固定のまたは可変の長さを有する可能性がある。オブジェクトは、ファ
イル、オブジェクト、データベースなどのデータ単位の任意のグループ分けを含み得る。
【００２６】
図６は、レプリケーション元サーバ４ａのオブジェクトをレプリケーション先サーバ４
ｂに複製するためにレプリケーション元レプリケーション・マネージャ６ａおよびレプリ
ケーション先レプリケーション・マネージャ６ｂによって実行される動作の実施形態を示
す。制御は、レプリケーション元レプリケーション・マネージャ６ａが、オブジェクトを
所有するクライアント・ノード、オブジェクトを含むクライアント・ノード内のファイル
スペース、およびオブジェクトのデータ・タイプなどの１つまたは複数の基準に基づいて
オブジェクトを複製するレプリケーション要求を（ブロック１００において）受信するこ
とから始まる。要求に応答して、レプリケーション元レプリケーション・マネージャ６ａ
は、レプリケーション先サーバ４ｂがレプリケーションをサポートするかどうかを決定す
るために、レプリケーション先サーバ４ｂの構成を（ブロック１０２において）確認する
。（ブロック１０４において）レプリケーション先サーバ４ｂが確認されなかった場合、
レプリケーション動作は（ブロック１０６において）失敗する。そうではなく、レプリケ
ーション先サーバ４ｂがレプリケーションに対応している場合、これがサーバ４ａ、４ｂ
の間で起こった初めてのレプリケーションである場合、サーバ４ａ、４ｂが一意の識別子
を（ブロック１０８において）交換する。サーバ４ａ、４ｂは、レプリケーション・デー
タベース１６ａ、１６ｂ内にレプリケーションのために利用可能なサーバのサーバ一意識
別子を保有することができる。
【００２７】
管理者は、レプリケーション先サーバ４ｂに既にインポートされたオブジェクトが複製
されていることを反映するためにレプリケーション元レプリケーション・データベース１
６ａおよびレプリケーション先レプリケーション・データベース１６ｂを更新するために
レプリケーション元サーバ４ａとレプリケーション先サーバ４ｂとの間で同期が実行され
ることを要求することができ、したがって、レプリケーション先サーバ４ｂに既にあるそ
れらのオブジェクトに関して冗長なレプリケーションは実行されない。（ブロック１０９
において）同期が必要とされる場合、制御は、同期するためにブロック１１０に進み、そ
うではなく、同期が要求されないかまたは必要とされない場合、制御は、レプリケーショ
ンを実行するために（ブロック１３０において）図７に進む。
【００２８】
（ブロック１０９において）同期が必要とされる場合、レプリケーション元レプリケー
ション・マネージャ６ａが、第１の基準（例えば、複製するクライアント・ノード）を満
たすレプリケーション先サーバ４ｂのファイルのレプリケーション先インベントリ３４を
レプリケーション先サーバ４ｂに（ブロック１１０において）問い合わせる。問い合わせ
を（ブロック１１２において）受信すると、レプリケーション先レプリケーション・マネ
ージャ６ｂは、第１の基準を満たすレプリケーション先サーバ４ｂのオブジェクトのイン
ベントリ３４をレプリケーション元サーバ４ａに（ブロック１１４において）送信する。
ファイルのレプリケーション先インベントリ３４を（ブロック１１６において）受信した
ことに応答して、レプリケーション元レプリケーション・マネージャ６ａは、レプリケー
ション先サーバ４ｂからのレプリケーション先インベントリ３４に挙げられたオブジェク
トに一致するレプリケーション元サーバ４ａのオブジェクトを（ブロック１１８において
）決定する。署名、一意のファイル名、ハッシュ値などの、レプリケーション元サーバ４
ａおよびレプリケーション先サーバ４ｂのオブジェクトの一意属性６４（図３）が、レプ
リケーション先サーバ４ｂがレプリケーション元サーバ４ａのオブジェクトに一致するオ
ブジェクトを有するかどうかを決定するために比較される可能性がある。
【００２９】
レプリケーション元レプリケーション・マネージャ６ａは、インベントリ３４に挙げら
れたオブジェクトに一致する決定されたオブジェクトに関するメタデータをレプリケーシ
ョン先サーバ４ｂに（ブロック１２０において）送信する。レプリケーション元レプリケ
ーション・マネージャ６ａは、レプリケーション元レプリケーション・マネージャ６ａが
用意している情報を含め、決定されたオブジェクトに関して、レプリケーション元レプリ
ケーション・データベース１６ａにエントリ６０（図３）を（ブロック１２２において）
追加する。
【００３０】
メタデータを（ブロック１２４において）受信することに応答して、レプリケーション
先レプリケーション・マネージャ６ｂは、インベントリ３４に挙げられたオブジェクトに
一致するオブジェクトに関して、メタデータが受信される各オブジェクトについて、レプ
リケーション先レプリケーション・データベース１６ｂにエントリ６０を（ブロック１２
６において）追加する。このように、レプリケーション先サーバ４ｂが既に有するオブジ
ェクトは、レプリケーションの一部として転送される必要がなく、同期は、それらのオブ
ジェクトが複製済みであると見なすようにレプリケーション先レプリケーション・データ
ベース１６ｂを更新する。レプリケーション先レプリケーション・マネージャ６ｂは、追
加されたオブジェクトのオブジェクトＩＤを、レプリケーション元レプリケーション・デ
ータベース１６ａ内のオブジェクトに関するエントリ６０の複製済みオブジェクトＩＤ７
０に含めるためにレプリケーション元レプリケーション・マネージャ６ａに（ブロック１
２８において）返す。レプリケーション先レプリケーション・マネージャ６ｂは、レプリ
ケーション・サーバ・ノードＩＤ７６およびレプリケーション・サーバ・ファイルスペー
スＩＤ７８も、レプリケーション元レプリケーション・データベース１６ａ内のオブジェ
クトに関するエントリに含めるためにレプリケーション元レプリケーション・マネージャ
６ａに返す可能性がある。
【００３１】
レプリケーション元サーバ４ａとレプリケーション先サーバ４ｂとの両方に既にある特
定の基準を満たすすべてのオブジェクトに関するエントリを含めるようにレプリケーショ
ン元レプリケーション・データベース１６ａおよびレプリケーション先レプリケーション
・データベース１６ｂを同期するためにエントリを追加する動作を実行した後、制御は、
レプリケーションを開始するために図７のブロック１５０に（ブロック１３０において）
進む。図６の同期動作は、顧客がレプリケーション・データベース１６ａ、１６ｂを同期
して、レプリケーション元サーバ４ａ上に一致するオブジェクトを有するレプリケーショ
ン先サーバ４ｂ上に存在するオブジェクトを、それらのオブジェクトが既に複製されたか
のように見せることを可能にする。
【００３２】
図７および８は、レプリケーション動作を実行するためにレプリケーション元レプリケ
ーション・マネージャ６ａおよびレプリケーション先レプリケーション・マネージャ６ｂ
によって実行される動作の実施形態を示す。レプリケーションを（ブロック１５０におい
て）開始すると、レプリケーション元レプリケーション・マネージャ６ａが、レプリケー
ション基準（例えば、クライアント・ノード、ファイルスペース、データ・タイプ）を満
たす、レプリケーション先サーバ４ｂに複製すべきレプリケーション元サーバ４ａのオブ
ジェクトのレプリケーション元リスト３０を（ブロック１５２において）構築し、複製す
べきファイルを決定するために使用されるレプリケーション基準は、レプリケーション先
サーバ４ｂのレプリケーション先インベントリ３４を決定するために使用される基準（例
えば、クライアント・ノードだけ）よりも広い可能性がある。レプリケーション元レプリ
ケーション・マネージャ６ａは、第２の基準を満たすレプリケーション先サーバ４ｂのオ
ブジェクトのレプリケーション先リスト３２を得るためにレプリケーション先サーバ４ｂ
に（ブロック１５４において）問い合わせを行う。問い合わせに応答して、レプリケーシ
ョン先レプリケーション・マネージャ６ｂは、レプリケーション基準を満たすレプリケー
ション先サーバ４ｂのオブジェクトのレプリケーション先リスト３２をレプリケーション
元サーバ４ａに（ブロック１５８において）送信する。レプリケーション先リスト３２を
受信すると、レプリケーション元レプリケーション・マネージャ６ａは、レプリケーショ
ン先サーバ４ｂに転送すべき、レプリケーション先リスト３２に含まれていない、レプリ
ケーション元リスト３０に載っているオブジェクトを示すレプリケーション・リスト３６
を（ブロック１６０において）構築する。
【００３３】
レプリケーション元リスト３０の各オブジェクトに関して、レプリケーション元レプリ
ケーション・マネージャ６ａは、オブジェクトをレプリケーション先サーバ４ｂに複製す
るためにブロック１６４から１７２までの動作を（ブロック１６２から１７４までにおい
て）実行する。ブロック１６２から１７４までのループは、レプリケーション元リスト３
０のすべてのオブジェクトを処理した後に終了し、ブロック１８４に進む可能性があり、
または何らかのその他の条件が発生すると終了する可能性がある。（ブロック１６４にお
いて）オブジェクトがレプリケーション・リスト３６に載っている場合、レプリケーショ
ン元レプリケーション・マネージャ６ａは、オブジェクトに関するデータをレプリケーシ
ョン先レプリケーション・マネージャ６ｂに送信する。一実施形態において、レプリケー
ション元レプリケーション・マネージャ６ａは、レプリケーション先ストレージ８ｂにま
だ存在しないオブジェクトに関するデータまたはチャンク１２ａだけを送信する可能性が
ある。代替的に、レプリケーション元レプリケーション・マネージャ６ａは、レプリケー
ション先ストレージ８ｂが複製されるオブジェクトのチャンクに一致するチャンク１２ｂ
を有するかどうかにかかわらずオブジェクト全体を送信する可能性がある。（ブロック１
６８から）複製すべきオブジェクトに関するデータを送信した後、またはオブジェクトが
レプリケーション・リスト３６に載っておらず、レプリケーション先サーバ４ｂがオブジ
ェクトを既に有することを示す場合、レプリケーション元レプリケーション・マネージャ
６ａは、エントリ６０（図３）の情報などの、オブジェクトに関するメタデータをレプリ
ケーション先サーバ４ｂに（ブロック１７０において）送信する。レプリケーション元レ
プリケーション・マネージャ６ａは、図３に示されたフィールドの情報を含め、オブジェ
クトに関して、レプリケーション元レプリケーション・データベース１６ａにエントリ６
０を（ブロック１７２において）追加する。
【００３４】
メタデータおよび（レプリケーション・リスト３６のオブジェクトに関してブロック１６８において任意のデータが送信される場合）データを（ブロック１７６において）受信すると、レプリケーション先レプリケーション・マネージャ６ｂは、オブジェクトに関するすべての受信されたデータをレプリケーション先ストレージ８ｂに（ブロック１７８において）記憶し（データは、レプリケーション先ストレージ８ｂがオブジェクトに関するチャンク１２ｂを既に有する場合、受信されない可能性がある）、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂのＩＤ６２、７０、７２、７４、７６、および７８ならびにエントリ６０（図３）のその他の情報を含め、メタデータが受信されるオブジェクトに関して、レプリケーション先レプリケーション・データベース１６ｂにエントリ６０を（ブロック１８０において）追加する。さらに、レプリケーション先レプリケーション・マネージャ６ｂは、レプリケーション先サーバ４ｂにおいて追加されたオブジェクトの複製済みオブジェクトＩＤ７０、レプリケーション・サーバ・ノードＩＤ７６、およびレプリケーション・サーバ・ファイルスペースＩＤ７８を、レプリケーション元レプリケーション・データベース１６ａ内のオブジェクトに関するエントリに含めるためにレプリケーション元サーバ４ａに（ブロック１８２において）返す可能性がある。
【００３５】
複製すべきすべてのオブジェクトに関してレプリケーション元レプリケーション・デー
タベース１６ａおよびレプリケーション先レプリケーション・データベース１６ｂにエン
トリを追加した後、制御は、図８のブロック１８６に（ブロック１８４において）進み、
レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション先リスト３
２に載っているがレプリケーション元リスト３０には載っていない削除すべきオブジェク
ト、またはレプリケーションされるレプリケーション元サーバ４ａのオブジェクトの一部
ではないレプリケーション先サーバ４ｂのオブジェクトを（ブロック１８６において）決
定する。レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション先
サーバ４ｂと（ブロック１８８において）通信して、レプリケーション先サーバ４ｂに、
削除すべき決定されたオブジェクトをレプリケーション先サーバ４ｂから削除させる。通
信に応答して、レプリケーション先レプリケーション・マネージャ６ｂは、削除すべきオ
ブジェクトに関するエントリをレプリケーション先レプリケーション・データベース１６
ｂから（ブロック１９０において）削除する。いかなるその他のオブジェクトによっても
参照されていない削除されたオブジェクトのすべてのチャンク１２ｂが、（ブロック１９
４において）参照を解除される。オブジェクトを削除するとき、オブジェクトのチャンク
１２ｂに関するエントリ８２（図４）内の参照数８６が減らされ、参照数が０であるすべ
てのチャンク８２は、参照を解除されており、どこかの時点で削除の対象になるものとし
て示される。
【００３６】
図９は、重複排除を使用してオブジェクトを複製するためにレプリケーション元レプリ
ケーション・マネージャ６ａおよびレプリケーション先レプリケーション・マネージャ６
ｂによって実行される動作の実施形態を示す。図９の動作は、レプリケーション元レプリ
ケーション・マネージャ６ａが図７のブロック１６８においてオブジェクトに関するデー
タをレプリケーション先サーバ４ｂに送信するときに実行される。オブジェクトを送信す
ると、レプリケーション元レプリケーション・マネージャ６ａは、重複排除マネージャ２
６を呼び出して、送信すべきオブジェクトのチャンクを（ブロック２０２において）決定
し、次に、（ブロック２０４において）重複排除を使用して、レプリケーション先ストレ
ージ８ｂに記憶されていないオブジェクトの１組のチャンク１２ａを決定する。重複排除
マネージャ２６は、チャンク・インデックス２８を使用してこの決定を行うことができる
。重複排除マネージャ２６またはレプリケーション元レプリケーション・マネージャ６ａ
は、チャンクの決定された組を、レプリケーション先ストレージ８ｂに記憶するためにレ
プリケーション先サーバ４ｂに（ブロック２０６において）送信し、レプリケーション先
ストレージ８ｂに既にあるオブジェクトのチャンク１２ａのダイジェスト（ｄｉ）および
長さ（ｌｉ）などのチャンク識別子のリストを送信する。データ・オブジェクトに関する
チャンクを（ブロック２０８において）受信すると、レプリケーション先レプリケーショ
ン・マネージャ６ｂは、受信されたチャンクをレプリケーション先ストレージ８ｂに（ブ
ロック２１０において）記憶する。レプリケーション先レプリケーション・マネージャ６
ｂは、レプリケーション先ストレージに既に記憶されている、識別情報、例えば、ダイジ
ェスト（ｄｉ）および長さ（ｌｉ）が提供されるオブジェクトのチャンクへのリンクと、
レプリケーション先ストレージ８ｂに追加されたチャンクへのリンクとをレプリケーショ
ン先レプリケーション・データベース１６ｂ内のオブジェクトに関するエントリ６０で（
ブロック２１２において）示す。
【００３７】
記載された実施形態において、レプリケーション元レプリケーション・マネージャ６ａ
が、レプリケーション先サーバ４ｂに送信されるデータを暗号化する可能性があり、その
データはレプリケーション先サーバ４ｂにおいて復号される。さらに、オブジェクト・レ
ベルのレプリケーションは、管理者／ユーザが、どのデータ・オブジェクトが複製される
べきかを指定し、レプリケーション先サーバ４ｂおよびストレージ８ｂにまだ記憶されて
いない複製すべきオブジェクトのチャンクだけの増分レプリケーション（incremental re
plication）を行うことを可能にする。
【００３８】
特定の実施形態においては、ハードウェアおよびオペレーティング・システムの独立を
可能にするために、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂ
で別々のハードウェアおよびオペレーティング・システムが提供される。さらに、レプリ
ケーション元サーバ４ａおよびレプリケーション先サーバ４ｂは、異種のハードウェアお
よびオペレーティング・システムで実装される可能性がある。
【００３９】
特定の実施形態においては、レプリケーション先サーバ４ｂは、レプリケーション元サ
ーバ４ａ対して遠隔の場所でホット・スタンバイを提供する可能性がある。レプリケーシ
ョン元サーバ４ａが故障する場合、バックアップおよび復元などのクライアントの動作は
、レプリケーションのために既に運転中であるレプリケーション先サーバ４ｂにリダイレ
クトされる可能性がある。
【００４０】
さらなる実施形態においては、（例えば、遠隔の事業所にある）複数のレプリケーショ
ン元サーバ４ａが、（例えば、中央データセンターにある）単一のレプリケーション先サ
ーバ４ｂに複製される可能性がある。
【００４１】
さらなる実施形態は、レプリケーション先サーバ４ｂ上のオブジェクトの不完全なグル
ープが、グループが完全になるまでクライアント・ノードに見えないように、オブジェク
トの異なる組の論理的なグループ分けを提供する可能性がある。部分的なグループは、オ
ブジェクトの再送信を防止するためにレプリケーション先サーバ４ｂに保有される。例え
ば、論理的なグループを形成するオブジェクトは、レプリケーション中にレプリケーショ
ン先サーバ４ｂに送信される可能性がある。特定の状況では、グループのオブジェクトの
一部が、エラーが原因で、またはプロセスがキャンセルされたことが原因で送信されない
可能性がある。この場合、複製されたオブジェクトが、レプリケーション先サーバに残り
、レプリケーション先サーバが、すべてのオブジェクトを持たないグループに、不完全で
あるものとして印を付ける。これらの不完全なグループは、復元中、クライアント・ノー
ドが利用できるようにされない。その後、レプリケーションが欠けているファイルを転送
した後、グループは、完全であるものとして印を付けられ、クライアント・ノードが利用
できるようにされる。
【００４２】
記載された実施形態を用いると、レプリケーション元とレプリケーション先との間のレ
プリケーションが、レプリケーション先サーバ４ｂに既にあるオブジェクトの検査をオブ
ジェクト・レベルで行い、次に、オブジェクトを送信するときに重複排除を行って、レプ
リケーション先サーバ４ｂで既に利用可能なデータ・オブジェクトに関するチャンクを送
信することを防止することによって、レプリケーション先サーバに送信されるオブジェク
トに関する送信されるデータの量を最小化しようとする。さらに、記載された実施形態を
用いると、レプリケーション元レプリケーション・マネージャ６ａが、レプリケーション
先サーバ４ｂに既に記憶されている複製すべきオブジェクトに関するメタデータをレプリ
ケーション先レプリケーション・マネージャ６ｂに送信して、レプリケーション先レプリ
ケーション・マネージャ６ｂに、レプリケーション先サーバ４ｂに既にある複製すべきオ
ブジェクトに関してレプリケーション先レプリケーション・データベース１６ｂにエント
リを追加させる。
クラウド・コンピューティングの実施形態
【００４３】
図１のコンピューティング環境は、最小限の管理労力またはサービスのプロバイダとの
インタラクションで迅速にプロビジョニングおよび解放され得る構成可能なコンピューテ
ィング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ
、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの利便
性の良いオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のクラ
ウド・コンピューティング・モデルの一部である可能性がある。クラウド・コンピューテ
ィングの実装が、図１０〜１１に関連して説明される。このクラウド・モデルは、少なく
とも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つの配置モデ
ル（deployment model）を含む可能性がある。
【００４４】
特徴は、以下の通りである。
【００４５】
オンデマンド・セルフサービス：クラウドの消費者は、サービスのプロバイダと人がイ
ンタラクションする必要なしに自動的に、必要に応じて、サーバの時間およびネットワー
ク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることがで
きる。
【００４６】
幅広いネットワーク・アクセス：能力が、ネットワークを介して利用可能であり、異種
のシン・ソース（thin source）またはシック・ソース（thick source）プラットフォー
ム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメ
カニズムを通じてアクセスされる。
【００４７】
リソース・プーリング：異なる物理リソースおよび仮想リソースが需要に応じて動的に
割り振りおよび再割り振りされるようにして、マルチテナント・モデルを使用して複数の
消費者にサービスを提供するために、プロバイダのコンピューティング・リソースがプー
ルされる。概して、消費者は提供されるリソースの正確な場所を制御できないか、または
正確な場所を知らないが、より高い抽象度で場所（例えば、国、州、またはデータセンタ
ー）を指定することができる可能性があるという点で、場所に依存しないという感覚があ
る。
【００４８】
迅速な柔軟性：能力は、即座にスケール・アウトするために迅速かつ柔軟に、場合によ
っては自動的にプロビジョニングされる可能性があり、即座にスケール・インするために
迅速に解放される可能性がある。消費者に対して、プロビジョニングに利用できる能力は
、多くの場合、無制限であるように見え、いつでも任意の量が購入され得る。
【００４９】
測定されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ
、処理、帯域幅、および有効なユーザ・アカウント）に適した何らかの抽象度で計測能力
（metering capability）を利用することによってリソースの使用を自動的に制御し、最
適化する。リソースの使用が、監視され、制御され、報告される可能性があり、利用され
るサービスのプロバイダと消費者との両方に透明性をもたらす。
【００５０】
サービス・モデルは、以下の通りである。
【００５１】
サービスとしてのソフトウェア（ＳａａＳ：Software as a Service）：消費者に提供
される能力は、クラウド・インフラストラクチャで実行されるプロバイダのアプリケーシ
ョンを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・ソース
・インターフェースを通じてさまざまなソース・デバイスからアクセス可能である（例え
ば、ウェブに基づく電子メール）。消費者は、限られたユーザに固有のアプリケーション
の構成の設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・
システム、ストレージ、または個々のアプリケーションの能力さえも含む基礎となるクラ
ウド・インフラストラクチャを管理または制御しない。
【００５２】
サービスとしてのプラットフォーム（ＰａａＳ：Platform as aService）：消費者に提
供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを
使用して作成された消費者によって作られたまたは獲得されたアプリケーションをクラウ
ド・インフラストラクチャに配置することである。消費者は、ネットワーク、サーバ、オ
ペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラスト
ラクチャを管理または制御しないが、配置されたアプリケーションと、場合によっては、
アプリケーションをホストする環境の構成とを制御することができる。
【００５３】
サービスとしてのインフラストラクチャ（ＩａａＳ：Infrastructure asa Service）：
消費者に提供される能力は、オペレーティング・システムおよびアプリケーションを含む
可能性がある任意のソフトウェアを消費者が配置し、実行することができる処理、ストレ
ージ、ネットワーク、およびその他の基礎的なコンピューティング・リソースをプロビジ
ョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャを管理
または制御しないが、オペレーティング・システム、ストレージ、配置されたアプリケー
ションを制御することができ、選ばれたネットワーキング・コンポーネント（例えば、ホ
ストのファイアウォール）を場合によっては制限付きで制御することができる。
【００５４】
配置モデルは、以下の通りである。
【００５５】
プライベート・クラウド：クラウド・インフラストラクチャが、１つの組織のためにの
み運用される。クラウド・インフラストラクチャは、その組織または第三者によって管理
される可能性があり、オンプレミスまたはオフプレミスで存在する可能性がある。
【００５６】
コミュニティ・クラウド：クラウド・インフラストラクチャが、複数の組織によって共
有され、共通の問題（例えば、目的、セキュリティの要件、ポリシー、およびコンプライ
アンスの考え方）を有する特定の共同体をサポートする。クラウド・インフラストラクチ
ャは、それらの組織または第三者によって管理される可能性があり、オンプレミスまたは
オフプレミスで存在する可能性がある。
【００５７】
パブリック・クラウド：クラウド・インフラストラクチャが、公衆または大きな産業の
グループが利用できるようにされ、クラウド・サービスを販売する組織によって所有され
る。
【００５８】
ハイブリッド・クラウド：クラウド・インフラストラクチャが、一意のエンティティの
ままであるが、データおよびアプリケーションの可搬性を与える標準化されたまたは独自
仕様の技術（例えば、クラウド間の負荷分散のためのクラウド・バースティング（cloud 
bursting））によって１つに結びつけられる２つ以上の（プライベート、コミュニティ、
またはパブリック）クラウドから成る。
【００５９】
クラウド・コンピューティング環境はサービス指向であり、ステートレスであること、
低結合、モジュール性、および意味的相互運用性（semantic interoperability）に焦点
をおいている。クラウド・コンピューティングの中心にあるのは、相互接続されたノード
のネットワークを含むインフラストラクチャである。
【００６０】
図１０は、レプリケーション元サーバ４ａ、レプリケーション先サーバ４ｂ、および重
複排除コンポーネント２４の実装を含み得るクラウド・コンピューティング・ノード３０
０の実施形態を示し、それらのコンポーネントは、ノード３００のうちの１つまたは複数
で実装され得る。クラウド・コンピューティング・ノード３００は、好適なクラウド・コ
ンピューティング・ノードの一例に過ぎず、本明細書に記載の本発明の実施形態の使用ま
たは機能の範囲に関していかなる限定を示唆することも意図されていない。とにかく、ク
ラウド・コンピューティング・ノード３００は、本明細書において上で説明された機能の
いずれかを与えられ得るか、または本明細書において上で説明された機能のいずれかを実
行し得るか、あるいはその両方である。
【００６１】
クラウド・コンピューティング・ノード３００には、多数のその他の多目的または専用
コンピューティング・システム環境または構成で動作可能なコンピュータ・システム／サ
ーバ３０２が存在する。コンピュータ・システム／サーバ３０２で使用するのに好適であ
る可能性があるよく知られているコンピューティング・システム、環境、または構成、あ
るいはそれらすべての例には、パーソナル・コンピュータ・システム、サーバ・コンピュ
ータ・システム、シン・ソース、シック・ソース、ハンドヘルドまたはラップトップ・デ
バイス、マルチプロセッサ・システム、マイクロプロセッサに基づくシステム、セット・
トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュ
ータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまた
はデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれるが
これらに限定されない。
【００６２】
コンピュータ・システム／サーバ３０２は、コンピュータ・システムによって実行され
るプログラム・モジュールなどのコンピュータ・システムが実行可能な命令の幅広い文脈
で説明される可能性がある。概して、プログラム・モジュールは、特定のタスクを実行す
るか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コン
ポーネント、ロジック、データ構造などを含む可能性がある。コンピュータ・システム／
サーバ３０２は、通信ネットワークを介して接続された遠隔の処理デバイスによってタス
クが実行される分散型クラウド・コンピューティング環境で実施される可能性がある。分
散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ
・ストレージ・デバイスを含むローカルのコンピュータ・システムのストレージ媒体と遠
隔のコンピュータ・システムのストレージ媒体との両方に配置される可能性がある。
【００６３】
図１０に示されるように、クラウド・コンピューティング・ノード３００のコンピュー
タ・システム／サーバ３０２は、多目的コンピューティング・デバイスの形態で示されて
いる。コンピュータ・システム／サーバ３０２のコンポーネントは、１つまたは複数のプ
ロセッサまたは処理ユニット３０４と、システム・メモリ３０６と、システム・メモリ３
０６を含むさまざまなシステム・コンポーネントをプロセッサ３０４に結合するバス３０
８とを含む可能性があるがこれらに限定されない。
【００６４】
バス３０８は、さまざまなバス・アーキテクチャのいずれかを使用したメモリ・バスま
たはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、
およびプロセッサまたはローカル・バスを含む数種のバス構造のいずれかのうちの１つま
たは複数を表す。限定ではなく例として、そのようなアーキテクチャは、業界標準アーキ
テクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張Ｉ
ＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカル・バス、および
周辺装置相互接続（ＰＣＩ）バスを含む。
【００６５】
通常、コンピュータ・システム／サーバ３０２は、さまざまなコンピュータ・システム
可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ３０２によってア
クセス可能である任意の利用可能な媒体である可能性があり、揮発性の媒体と不揮発性の
媒体との両方、取り外し可能な媒体および取り外し不可能な媒体を含む。
【００６６】
システム・メモリ３０６は、ランダム・アクセス・メモリ（ＲＡＭ）３１０またはキャ
ッシュ・メモリ３１２あるいはその両方などの揮発性メモリの形態のコンピュータ・シス
テムが読み取り可能な媒体を含み得る。コンピュータ・システム／サーバ３０２は、その
他の取り外し可能／取り外し不可能な揮発性／不揮発性のコンピュータ・システムのスト
レージ媒体をさらに含み得る。単なる例として、ストレージ・システム３１３は、（図示
されておらず、通常「ハード・ドライブ」と呼ばれる）取り外し不可能な不揮発性の磁気
媒体からの読み出しと、その磁気媒体への書き込みとのために提供される可能性がある。
図示されていないが、取り外し可能な不揮発性の磁気ディスク（例えば、「フロッピー（
Ｒ）・ディスク」）からの読み出しと、その磁気ディスクへの書き込みとのための磁気デ
ィスク・ドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはその他の光媒体などの取り外
し可能な不揮発性の光ディスクからの読み出し、またはその光ディスクへの書き込みのた
めの光ディスク・ドライブが、提供される可能性がある。そのような場合、それぞれが、
１つまたは複数のデータ媒体のインターフェースによってバス３０８に接続される可能性
がある。以下でさらに示され、説明されるように、システム・メモリ３０６は、本発明の
実施形態の機能を実行するように構成されるプログラム・モジュールの組（例えば、少な
くとも１つ）を有する少なくとも１つのプログラム製品を含み得る。
【００６７】
限定ではなく例として、オペレーティング・システム、１つまたは複数のアプリケーシ
ョン・プログラム、その他のプログラム・モジュール、およびプログラム・データのみな
らず、プログラム・モジュール３１６の組（少なくとも１つ）を有するプログラム／ユー
ティリティ３１４も、システム・メモリ３０６に記憶される可能性がある。オペレーティ
ング・システム、１つもしくは複数のアプリケーション・プログラム、その他のプログラ
ム・モジュール、およびプログラム・データのそれぞれ、またはこれらの何らかの組み合
わせは、ネットワーキング環境の実装を含む可能性がある。概して、プログラム・モジュ
ール３１６は、本明細書に記載の本発明の実施形態の機能または方法あるいはその両方を
実行する。
【００６８】
また、コンピュータ・システム／サーバ３０２は、キーボード、ポインティング・デバ
イス、ディスプレイ３２０などの１つもしくは複数の外部デバイス３１８、ユーザがコン
ピュータ・システム／サーバ３０２とインタラクションすることを可能にする１つもしく
は複数のデバイス、またはコンピュータ・システム／サーバ３０２が１つもしくは複数の
その他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例
えば、ネットワーク・カード、モデムなど）、あるいはそれらすべてと通信することがで
きる。そのような通信は、入力／出力（Ｉ／Ｏ）インターフェース３２２を介して行われ
得る。そしてさらに、コンピュータ・システム／サーバ３０２は、ネットワーク・アダプ
タ３２４を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、通常の広域ネットワー
ク（ＷＡＮ）、または公衆ネットワーク（例えば、インターネット）、あるいはそれらす
べてなどの１つまたは複数のネットワークと通信することができる。示されるように、ネ
ットワーク・アダプタ３２４は、バス３０８を介してコンピュータ・システム／サーバ３
０２のその他のコンポーネントと通信する。示されていないが、その他のハードウェア・
コンポーネントまたはソフトウェア・コンポーネントあるいはその両方が、コンピュータ
・システム／サーバ３０２と併せて使用され得ることを理解されたい。例には、マイクロ
コード、デバイス・ドライバ、冗長な処理ユニット、外部ディスク・ドライブ・アレイ、
ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システ
ムなどが含まれるが、これらに限定されない。
【００６９】
ここで図１１を参照すると、例示的なクラウド・コンピューティング環境３５０が示さ
れている。示されるように、クラウド・コンピューティング環境３５０は、例えば、携帯
情報端末（ＰＤＡ）またはセルラ電話３５４Ａ、デスクトップ・コンピュータ３５４Ｂ、
ラップトップ・コンピュータ３５４Ｃ、または自動車のコンピュータ・システム３５４Ｎ
、あるいはそれらすべてなどのクラウドの消費者によって使用されるローカルのコンピュ
ーティング・デバイスが通信することができる１つまたは複数のクラウド・コンピューテ
ィング・ノード３００を含む。ノード３００は、互いに通信することができる。それらの
ノード３００は、本明細書において上で説明されたプライベート、コミュニティ、パブリ
ック、もしくはハイブリッド・クラウド、またはこれらの組み合わせなどの１つまたは複
数のネットワークで物理的または仮想的にグループ化される可能性がある（図示せず）。
これは、クラウド・コンピューティング環境３５０が、インフラストラクチャ、プラット
フォーム、またはソフトウェア、あるいはそれらすべてを、クラウドの消費者がローカル
のコンピューティング・デバイスにリソースを保有する必要がないサービスとして提供す
ることを可能にする。図１１に示されるコンピューティング・デバイス３５４Ａ〜Ｎの種
類は、例示的であるようにのみ意図されており、コンピューティング・ノード３００およ
びクラウド・コンピューティング環境３５０は、（例えば、ウェブ・ブラウザを使用して
）任意の種類のネットワークまたはネットワークのアドレス指定可能な接続あるいはその
両方を介して任意の種類のコンピュータ化されたデバイスと通信する可能性があることが
理解される。
【００７０】
さらに、図１１は、単一のクラウドを示す。しかし、特定のクラウドの実施形態は、顧
客／生産データを有するクラウドに加えて、別個の「バックアップ」または「データ保護
」クラウドを含む配置モデルを提供する可能性がある。あらゆる主となるクラウド・モデ
ル（プライベート、コミュニティ、ハイブリッドなど）をデータ保護クラウドから分離す
るために別個の異なる追加のクラウドをデータ保護クラウドとして提供することは、単一
障害点を防止し、別個のバックアップ・クラウドで顧客データのより高度な保護を提供す
る。
【００７１】
ここで図１２を参照すると、クラウド・コンピューティング環境３５０（図１１）によ
って提供される１組の機能抽象化レイヤが示される。図１２に示されるコンポーネント、
レイヤ、および機能は例示的であるようにのみ意図されており、本発明の実施形態はそれ
らに限定されないことを前もって理解されたい。示されるように、以下のレイヤおよび対
応する機能が提供される。
【００７２】
ハードウェアおよびソフトウェア・レイヤ３６０は、ハードウェアおよびソフトウェア
・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム、一
例においてはＩＢＭ（Ｒ）ｚＳｅｒｉｅｓ（Ｒ）システム、ＲＩＳＣ（縮小命令セット・
コンピュータ）アーキテクチャに基づくサーバ、一例においてはＩＢＭ  ｐＳｅｒｉｅｓ
（Ｒ）システム、ＩＢＭ  ｘＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ  ＢｌａｄｅＣｅｎｔ
ｅｒ（Ｒ）システム、ストレージ・デバイス、ネットワークおよびネットワーキング・コ
ンポーネントが含まれる。ソフトウェア・コンポーネントの例には、ネットワーク・アプ
リケーション・サーバ・ソフトウェア、一例においてはＩＢＭ  ＷｅｂＳｐｈｅｒｅ（Ｒ
）アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、一例
においてはＩＢＭ  ＤＢ２（Ｒ）データベース・ソフトウェアが含まれる。（ＩＢＭ、ｚ
Ｓｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐ
ｈｅｒｅ、およびＤＢ２は、世界的に多くの管轄機関に登録されたＩＢＭの商標である）
。
【００７３】
仮想化レイヤ３６２は、仮想エンティティの以下の例、すなわち、仮想サーバと、仮想
ストレージと、仮想プライベート・ネットワークを含む仮想ネットワークと、仮想アプリ
ケーションおよびオペレーティング・システムと、仮想ソース（virtual source）とが提
供され得る抽象化レイヤを提供する。
【００７４】
一例において、管理レイヤ３６４は、以下で説明される機能を提供し得る。リソース・
プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利
用されるコンピューティング・リソースおよびその他のリソースの動的な調達を行う。計
測および課金は、リソースがクラウド・コンピューティング環境内で利用されるときのコ
ストの追跡、およびこれらのリソースの消費に関する請求書またはインボイスの送付を行
う。一例において、これらのリソースは、アプリケーション・ソフトウェアのライセンス
を含む可能性がある。セキュリティは、クラウドの消費者およびタスクの識別確認と、デ
ータおよびその他のリソースの保護とを行う。ユーザ・ポータルは、消費者およびシステ
ム管理者がクラウド・コンピューティング環境にアクセスできるようにする。サービス・
レベル管理は、必要とされるサービス・レベルが満たされるようにクラウド・コンピュー
ティング・リソースの割り当ておよび管理を行う。サービス品質保証契約（ＳＬＡ）計画
および履行（Service Level Agreement (SLA) planning and fulfillment）は、ＳＬＡに
より将来必要とされることが予測されるクラウド・コンピューティング・リソースの事前
手配および調達を行う。
【００７５】
作業負荷レイヤ（workloads layer）３６６は、クラウド・コンピューティング環境が
利用され得る機能の例を与える。このレイヤから提供される可能性がある作業負荷および
機能の例には、地図およびナビゲーションと、ソフトウェア開発およびライフサイクル管
理と、仮想教室の教育の配信と、データ分析処理と、トランザクション処理と、上で図１
〜９に関連して説明されたようなレプリケーション・サービスとが含まれる。
【００７６】
説明された動作は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任
意の組み合わせを生産するための標準的なプログラミング技術またはエンジニアリング技
術あるいはその両方を使用して、方法、装置、またはコンピュータ・プログラム製品とし
て実装され得る。したがって、本発明の態様は、すべてハードウェアの実施形態、すべて
ソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含
む）、またはすべてが概して本明細書において「回路」、「モジュール」、もしくは「シ
ステム」と呼ばれることがあるソフトウェアの態様とハードウェアの態様とを組み合わせ
る実施形態の形態をとる可能性がある。さらに、実施形態の態様は、コンピュータ可読プ
ログラム・コードを具現化する１つまたは複数のコンピュータ可読媒体で具現化されたコ
ンピュータ・プログラム製品の形態をとる可能性がある。
【００７７】
１つまたは複数のコンピュータ可読媒体の任意の組み合わせが、利用される可能性があ
る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレ
ージ媒体である可能性がある。コンピュータ可読ストレージ媒体は、例えば、電子、磁気
、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはこれら
の任意の好適な組み合わせである可能性があるが、これらに限定されない。コンピュータ
可読ストレージ媒体のより詳細な例（非網羅的なリスト）には、以下、すなわち、１つも
しくは複数の配線を有する電気的な接続、ポータブル・コンピュータ・ディスケット、ハ
ード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ
）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモ
リ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯ
Ｍ）、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の好適
な組み合わせが含まれる。本明細書の文脈において、コンピュータ可読ストレージ媒体は
、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置
、もしくはデバイスに関連して使用するためのプログラムを含むまたは記憶することがで
きる任意の有形の媒体である可能性がある。
【００７８】
コンピュータ可読信号媒体は、例えば、ベースバンドで、または搬送波の一部としてコ
ンピュータ可読プログラム・コードを具現化する伝播されるデータ信号を含み得る。その
ような伝播される信号は、電磁的、光学的、またはこれらの任意の好適な組み合わせを含
むがこれらに限定されないさまざまな形態のうちの任意の形態をとり得る。コンピュータ
可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、
もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連し
て使用するためのプログラムを伝達、伝播、または搬送することができる任意のコンピュ
ータ可読媒体である可能性がある。
【００７９】
コンピュータ可読媒体上に具現化されるプログラム・コードは、無線、有線、光ファイ
バ・ケーブル、ＲＦなど、またはこれらの任意の好適な組み合わせを含むがこれらに限定
されない任意の適切な媒体を用いて送信される可能性がある。
【００８０】
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ
（Ｒ）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語と、「
Ｃ」プログラミング言語または同様のプログラミング言語などの通常の手続き型プログラ
ミング言語とを含む１つまたは複数のプログラミング言語の任意の組み合わせで記述され
得る。プログラム・コードは、すべてユーザのコンピュータ上で、スタンドアロンのソフ
トウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ
上で部分的にかつ遠隔のコンピュータ上で部分的に、またはすべて遠隔のコンピュータも
しくはサーバ上で実行され得る。最後の場合では、遠隔のコンピュータが、ローカル・エ
リア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意の種類の
ネットワークを介してユーザのコンピュータに接続され得るか、または外部コンピュータ
への接続が（例えば、インターネット・サービス・プロバイダを使用してインターネット
を介して）行われ得る。
【００８１】
本発明の態様が、本発明の実施形態による方法、装置（システム）、およびコンピュー
タ・プログラム製品の流れ図または構成図あるいはその両方を参照して上で説明されてい
る。流れ図または構成図あるいはその両方の各ブロック、および流れ図または構成図ある
いはその両方のブロックの組み合わせは、コンピュータ・プログラム命令によって実装さ
れ得ることが理解されるであろう。これらのコンピュータ・プログラム命令は、コンピュ
ータまたはその他のプログラム可能なデータ処理装置のプロセッサによって実行される命
令が、流れ図または構成図あるいはその両方の１つのブロックまたは複数のブロックで規
定された機能／動作を実施するための手段をもたらすように、多目的コンピュータ、専用
コンピュータ、または機械を生産するためのその他のプログラム可能なデータ処理装置の
プロセッサに与えられる可能性がある。
【００８２】
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶された命令が
、流れ図または構成図あるいはその両方の１つのブロックまたは複数のブロックで規定さ
れた機能／動作を実施する命令を含む製品をもたらすように、コンピュータ、その他のプ
ログラム可能なデータ処理装置、またはその他のデバイスを特定の方法で機能させること
ができるコンピュータ可読媒体に記憶される可能性もある。
【００８３】
コンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能な装置
で実行される命令が、流れ図または構成図あるいはその両方の１つのブロックまたは複数
のブロックで規定された機能／動作を実施するためのプロセスを提供するように、コンピ
ュータで実施されるプロセスを生成するために一連の操作のステップがコンピュータ、そ
の他のプログラム可能な装置、またはその他のデバイスで実行されるようにするために、
コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスにロ
ードされる可能性もある。
【００８４】
用語「実施形態（an embodiment）」、「実施形態（embodiment）」、「実施形態（emb
odiments）」、「実施形態（the embodiment）」、「実施形態（the embodiments）」、
「１つのまたは複数の実施形態（one or more embodiments）」、「一部の実施形態（som
eembodiment）」、および「１つの実施形態（one embodiment）」は、そうでないことが
はっきりと記載されていない限り「（１つまたは複数の）本発明の１つまたは複数の（た
だしすべてではない）実施形態」を意味する。
【００８５】
用語「含む（including）」、「含む（comprising）」、「有する（having）」、およ
びこれらの変化形は、そうでないことがはっきりと記載されていない限り「〜を含むが〜
に限定されない」を意味する。
【００８６】
項目の列挙されたリストは、そうでないことがはっきりと記載されていない限り、項目
のいずれかまたはすべてが互いに排他的であることを示唆しない。
【００８７】
用語「ａ」、「ａｎ」、および「ｔｈｅ」は、そうでないことがはっきりと記載されて
いない限り「１つまたは複数の」を意味する。
【００８８】
互いに通信するデバイスは、そうでないことがはっきりと記載されていない限り、互い
に連続的に通信するとは限らない。加えて、互いに通信するデバイスは、直接的に、また
は１つもしくは複数の媒介物を通じて間接的に通信する可能性がある。
【００８９】
互いに通信するいくつかのコンポーネントを用いる実施形態の説明は、すべてのそのよ
うなコンポーネントが必須であることを示唆しない。反対に、さまざまな任意のコンポー
ネントが、本発明の多種多様なあり得る実施形態を示すために記載されている。
【００９０】
さらに、プロセスのステップ、方法のステップ、アルゴリズムなどが順番に記載されて
いる可能性があるが、そのようなプロセス、方法、およびアルゴリズムは、代替的な順序
で機能するように構成される可能性がある。換言すれば、記載されている可能性があるス
テップの任意の順番または順序は、必ずしも、ステップがその順序で実行されることが必
要であることを示さない。本明細書に記載のプロセスのステップは、実用的な任意の順序
で実行され得る。さらに、一部のステップは、同時に実行され得る。
【００９１】
単一のデバイスまたは製品が本明細書に記載されているとき、２つ以上のデバイス／製
品が（それらのデバイス／製品が連携するか否かにかかわらず）単一のデバイス／製品の
代わりに使用され得ることはすぐに分かるであろう。同様に、２つ以上のデバイスまたは
製品が（それらのデバイスまたは製品が連携するか否かにかかわらず）本明細書に記載さ
れている場合、単一のデバイス／製品が２つ以上のデバイスもしくは製品の代わりに使用
される可能性があり、または異なる数のデバイス／製品が示された数のデバイスもしくは
プログラムの代わりに使用される可能性があることはすぐに分かるであろう。デバイスの
機能または特徴あるいはその両方は、代替的に、そのような機能／特徴を有すると明確に
説明されていない１つまたは複数のその他のデバイスによって具現化される可能性がある
。したがって、本発明のその他の実施形態は、そのデバイスそのものを必ずしも含まない
。
【００９２】
図６、７、８、および９の示された動作は、特定の順序で起こる特定のイベントを示す
。代替的な実施形態においては、特定の動作が、異なる順序で実行されるか、修正される
か、または削除される可能性がある。さらに、ステップが、上で説明されたロジックに追
加され、説明された実施形態にそれまで通り準拠する可能性がある。さらに、本明細書に
記載の動作は、順番に行われる可能性があり、または特定の動作が、並列に処理される可
能性がある。その上さらに、動作は、単一の処理ユニットまたは分散された処理ユニット
によって実行される可能性がある。
【００９３】
本発明のさまざまな実施形態の上述の説明は、例示および説明を目的として示された。
本発明のさまざまな実施形態の上述の説明は、網羅的であるように、または本発明を開示
された厳密な形態に限定するように意図されていない。上述の教示に照らして、多くの修
正または変更があり得る。本発明の範囲は、この詳細な説明によってではなく、本明細書
に添付された特許請求の範囲によって限定されることが意図される。上述の詳細、例、お
よびデータは、本発明の構成の製造および使用の完全な説明を与える。本発明の多くの実
施形態が本発明の精神および範囲を逸脱することなく作成され得るので、本発明は、添付
された特許請求の範囲に存する。
【図１】
0005972327.tif 000002
【図２】
0005972327.tif 000003
【図３】
0005972327.tif 000004
【図４】
0005972327.tif 000005
【図５】
0005972327.tif 000006
【図６】
0005972327.tif 000007
【図７】
0005972327.tif 000008
【図８】
0005972327.tif 000009
【図９】
0005972327.tif 000010
【図１０】
0005972327.tif 000011
【図１１】
0005972327.tif 000012
【図１２】
0005972327.tif 000013