(57)【特許請求の範囲】
【請求項１】
少なくとも１つのストレージを含むデータをコピーするためのコンピュータ・プログラムであって、
前記少なくとも１つのストレージ内のターゲット論理アドレスのサブセットを含むターゲット・セットにコピーする前記少なくとも１つのストレージ内のソース論理アドレスのサブセットのソース・セットを示すコピー関係を提供することであり、前記ソース論理アドレスが、ソース・トラックにマッピングし、前記ターゲット論理アドレスが、ターゲット・トラックにマッピングする、前記コピー関係を提供することと、
前記コピー関係の一部として対応するターゲット論理アドレスにコピーされなかった論理アドレスの前記ソース・セット内のソース論理アドレスに対する更新を受信することと、
前記コピー関係に従って更新される前記ソース論理アドレスに対応する前記ターゲット論理アドレスを決定することと、
前記決定されたターゲット論理アドレスを含む前記ターゲット・セット内のターゲット論理アドレスのターゲット・グループを決定することであり、前記ターゲット・グループ内の前記ターゲット論理アドレスが前記ターゲット・セットにある、前記ターゲット・グループを決定することと、
前記ターゲット・グループ内の前記ターゲット論理アドレスに対応する前記ソース・セット内の前記ソース論理アドレスを決定することと、
前記決定されたソース論理アドレスを、前記決定されたターゲット・グループ内の前記ターゲット論理アドレスにコピーすることと
をコンピュータに実行させるコンピュータ・プログラム。
【請求項２】
ターゲット論理アドレスの前記ターゲット・セットを含むターゲット・ストレージ内の前記ターゲット論理アドレスが、前記決定されたターゲット・グループを含むターゲット・グループに配置される、請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記ターゲット・グループが、ターゲット・ストレージにおいて構成されるターゲット・トラックを含む、請求項１に記載のコンピュータ・プログラム。
【請求項４】
動作が、
前記ターゲット・グループの各々の１つのインジケータを含む複数のインジケータを含むコピー・マップを維持することであり、少なくとも１つのターゲット・グループを表す前記インジケータのうちの少なくとも１つが、前記コピー関係が確立されて以来、前記表された少なくとも１つのターゲット・グループ内の前記ターゲット論理アドレスが更新されていないことを示す、前記コピー・マップを維持すること
をさらに含む、請求項２に記載のコンピュータ・プログラム。
【請求項５】
更新する前記ソース論理アドレスに対応する前記ターゲット論理アドレスを前記決定すること、および前記決定されたターゲット論理アドレスを含む前記ターゲット・グループを前記決定することが、前記ソース論理アドレスに対する前記更新を受信することに応答して前記決定は実行され、
前記決定されたターゲット・グループ内の前記ターゲット論理アドレスが前記コピー関係における前記対応するソース論理アドレスで更新されたことを前記決定されたターゲット・グループの前記インジケータが示すかどうかを、前記コピー・マップから判断することであり、前記ターゲット・グループが更新されなかったことを前記決定されたターゲット・グループの前記インジケータが示すことを決定することに応答して、前記決定されたソース論理アドレスをコピーする前記動作が実行される、前記判断すること
をさらに含む、請求項４に記載のコンピュータ・プログラム。
【請求項６】
前記ソース・セットを含む前記ソース・トラックが、論理アドレスの前記ターゲット・セットを含む前記ターゲット・トラックとは異なる番号をつけられたトラックである、請求項１に記載のコンピュータ・プログラム。
【請求項７】
動作が、
前記ソース・セット内の前記決定されたソース論理アドレスが前記決定されたターゲット・グループ内の前記決定されたターゲット論理アドレスにコピーされたことの承認を受信することに応答して、前記受信された更新を前記ソース論理アドレスに書き込むこと
をさらに含む、請求項１に記載のコンピュータ・プログラム。
【請求項８】
論理アドレスが論理ブロック・アドレス（ＬＢＡ）を含み、前記ソース・トラックおよび前記ターゲット・トラックが同じボリューム、または前記少なくとも１つのストレージ内の異なるボリュームにある、請求項１に記載のコンピュータ・プログラム。
【請求項９】
少なくとも１つのストレージを含むデータをコピーするためのコンピュータ・プログラムであって、
前記少なくとも１つのストレージ内のターゲット論理アドレスのサブセットを含むターゲット・セットにコピーする前記少なくとも１つのストレージ内のソース論理アドレスのサブセットのソース・セットを示すコピー関係を提供することであり、前記ソース論理アドレスが、ソース・トラックにマッピングし、前記ターゲット論理アドレスが、ターゲット・トラックにマッピングする、前記コピー関係を提供することと、
前記ターゲット・セット内のターゲット論理アドレスに前記ソース・セット内のソース論理アドレスをコピーするためのコピー操作を開始することと、
前記コピー操作の開始に応答して更新されなかった前記ターゲット・セット内のターゲット論理アドレスを選択することと、
前記選択されたターゲット論理アドレスにコピーされるソース論理アドレスを前記ソース・セットから決定することと、
前記決定されたソース論理アドレスを、前記選択されたターゲット論理アドレスにコピーすることと
をコンピュータに実行させるコンピュータ・プログラム。
【請求項１０】
複数のインジケータを含むコピー・マップを提供することであり、前記インジケータの各々が複数の前記ターゲット論理アドレスを表し、前記ターゲット・セット内のターゲット論理アドレスを表す前記インジケータのうちの少なくとも１つが、前記コピー関係が確立されて以来、前記表されたターゲット論理アドレスが更新されていないことを示す、前記コピー・マップを提供することと、
前記表されたターゲット論理アドレスが更新されていないことを示す１つのインジケータを選択することであり、前記選択されたターゲット論理アドレスが、前記選択されたインジケータによって表される前記ターゲット論理アドレスを含む、前記１つのインジケータを選択することと、
前記選択されたインジケータを、前記コピーすることに応答して前記表されたターゲット論理アドレスが更新されたことを示すように設定することと
をさらにコンピュータに実行させる、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
各インジケータがトラックを表し、更新されなかった前記ターゲット・セット内のターゲット論理アドレスを表す前記インジケータが、前記表されたトラック内のすべての前記ターゲット論理アドレスが更新されなかった前記ターゲット・セット内のターゲット論理アドレスを含むことを示す、請求項９に記載のコンピュータ・プログラム。
【請求項１２】
少なくとも１つのストレージを含むデータをコピーするためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコンピュータ・プログラム・コードを有するコンピュータ可読記憶媒体とを含み、前記動作が、
前記少なくとも１つのストレージ内のターゲット論理アドレスのサブセットを含むターゲット・セットにコピーする前記少なくとも１つのストレージ内のソース論理アドレスのサブセットのソース・セットを示すコピー関係を提供することであり、前記ソース論理アドレスが、ソース・トラックにマッピングし、前記ターゲット論理アドレスが、ターゲット・トラックにマッピングする、前記コピー関係を提供することと、
前記コピー関係の一部として対応するターゲット論理アドレスにコピーされなかった論理アドレスの前記ソース・セット内のソース論理アドレスに対する更新を受信することと、
前記コピー関係に従って更新される前記ソース論理アドレスに対応する前記ターゲット論理アドレスを決定することと、
前記決定されたターゲット論理アドレスを含む前記ターゲット・セット内のターゲット論理アドレスのターゲット・グループを決定することであり、前記ターゲット・グループ内の前記ターゲット論理アドレスが前記ターゲット・セットにある、前記ターゲット・グループを決定することと、
前記ターゲット・グループ内の前記ターゲット論理アドレスに対応する前記ソース・セット内の前記ソース論理アドレスを決定することと、
前記決定されたソース論理アドレスを、前記決定されたターゲット・グループ内の前記ターゲット論理アドレスにコピーすることと
を含む、システム。
【請求項１３】
前記ターゲット・グループが、ターゲット・ストレージにおいて構成されるターゲット・トラックを含む、請求項１２に記載のシステム。
【請求項１４】
前記動作が、
前記ターゲット・グループの各々の１つのインジケータを含む複数のインジケータを含むコピー・マップを維持することであり、少なくとも１つのターゲット・グループを表す前記インジケータのうちの少なくとも１つが、前記コピー関係が確立されて以来、前記表された少なくとも１つのターゲット・グループ内の前記ターゲット論理アドレスが更新されていないことを示す、前記コピー・マップを維持すること
をさらに含む、請求項１３に記載のシステム。
【請求項１５】
更新する前記ソース論理アドレスに対応する前記ターゲット論理アドレスを前記決定すること、および前記決定されたターゲット論理アドレスを含む前記ターゲット・グループを前記決定することが、前記ソース論理アドレスに対する前記更新を受信することに応答して実行され、
前記決定されたターゲット・グループ内の前記ターゲット論理アドレスが前記コピー関係における前記対応するソース論理アドレスで更新されたことを前記決定されたターゲット・グループの前記インジケータが示すかどうかを、前記コピー・マップから判断することであり、前記ターゲット・グループが更新されなかったことを前記決定されたターゲット・グループの前記インジケータが示すことを決定することに応答して、前記決定されたソース論理アドレスをコピーする前記動作が実行される、前記判断すること
をさらに含む、請求項１４に記載のシステム。
【請求項１６】
前記ソース・セットを含む前記ソース・トラックが、論理アドレスの前記ターゲット・セットを含む前記ターゲット・トラックとは異なる番号をつけられたトラックである、請求項１２に記載のシステム。
【請求項１７】
少なくとも１つのストレージを含むデータをコピーするためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコンピュータ・プログラム・コードを有するコンピュータ可読記憶媒体とを含み、前記動作が、
前記少なくとも１つのストレージ内のターゲット論理アドレスのサブセットを含むターゲット・セットにコピーする前記少なくとも１つのストレージ内のソース論理アドレスのサブセットのソース・セットを示すコピー関係を提供することであり、前記ソース論理アドレスが、ソース・トラックにマッピングし、前記ターゲット論理アドレスが、ターゲット・トラックにマッピングする、前記コピー関係を提供することと、
前記ターゲット・セット内のターゲット論理アドレスに前記ソース・セット内のソース論理アドレスをコピーするためのコピー操作を開始することと、
前記コピー操作の開始に応答して更新されなかった前記ターゲット・セット内のターゲット論理アドレスを選択することと、
前記選択されたターゲット論理アドレスにコピーされるソース論理アドレスを前記ソース・セットから決定することと、
前記決定されたソース論理アドレスを、前記選択されたターゲット論理アドレスにコピーすることと
を含む、システム。
【請求項１８】
少なくとも１つのストレージを含むデータをコピーするための方法であって、
前記少なくとも１つのストレージ内のターゲット論理アドレスのサブセットを含むターゲット・セットにコピーする前記少なくとも１つのストレージ内のソース論理アドレスのサブセットのソース・セットを示すコピー関係を提供することであり、前記ソース論理アドレスが、ソース・トラックにマッピングし、前記ターゲット論理アドレスが、ターゲット・トラックにマッピングする、前記コピー関係を提供することと、
前記コピー関係の一部として対応するターゲット論理アドレスにコピーされなかった論理アドレスの前記ソース・セット内のソース論理アドレスに対する更新を受信することと、
前記コピー関係に従って更新される前記ソース論理アドレスに対応する前記ターゲット論理アドレスを決定することと、
前記決定されたターゲット論理アドレスを含む前記ターゲット・セット内のターゲット論理アドレスのターゲット・グループを決定することであり、前記ターゲット・グループ内の前記ターゲット論理アドレスが前記ターゲット・セットにある、前記ターゲット・グループを決定することと、
前記ターゲット・グループ内の前記ターゲット論理アドレスに対応する前記ソース・セット内の前記ソース論理アドレスを決定することと、
前記決定されたソース論理アドレスを、前記決定されたターゲット・グループ内の前記ターゲット論理アドレスにコピーすることと
を含む方法。
【請求項１９】
少なくとも１つのストレージを含むデータをコピーするための方法であって、
前記少なくとも１つのストレージ内のターゲット論理アドレスのサブセットを含むターゲット・セットにコピーする前記少なくとも１つのストレージ内のソース論理アドレスのサブセットのソース・セットを示すコピー関係を提供することであり、前記ソース論理アドレスが、ソース・トラックにマッピングし、前記ターゲット論理アドレスが、ターゲット・トラックにマッピングする、前記コピー関係を提供することと、
前記ターゲット・セット内のターゲット論理アドレスに前記ソース・セット内のソース論理アドレスをコピーするためのコピー操作を開始することと、
前記コピー操作の開始に応答して更新されなかった前記ターゲット・セット内のターゲット論理アドレスを選択することと、
前記選択されたターゲット論理アドレスにコピーされるソース論理アドレスを前記ソース・セットから決定することと、
前記決定されたソース論理アドレスを、前記選択されたターゲット論理アドレスにコピーすることと、を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソース論理アドレスおよびターゲット論理アドレスとして表されるポイント・イン・タイム・コピー関係における更新の管理およびデータのコピーのためのコンピュータ・プログラム、システム、および方法に関する。
【背景技術】
【０００２】
ストレージ環境において、データの冗長コピーを提供する、またはある時点においてデータを記憶するために、ボリュームが他のボリュームにコピーされ得る。スナップショットは、すべてのデータのポイント・イン・タイム（ＰｉＴ）コピーを作成する能力を意味する一般的な業界用語である。一般的に、スナップショットの作成は、すぐに行われ、スナップショットが作成された時点でデータを維持するために、データは、変更されたときのみコピーされ、これは、コピー・オン・ライトと呼ばれる。さらに、バックグラウンド・コピー操作は、ソース・データの冗長コピーを提供するために、バックグラウンドでソース・データをターゲット・サイトにコピーするように指定され得る。スナップショットまたはＰｉＴコピーは、たとえばＩＢＭ  ＦｌａｓｈＣｏｐｙ（Ｒ）などのＰｉＴコピー技法を使用して作成され得る（ＦｌａｓｈＣｏｐｙは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ，  Ｃｏｒｐ．すなわち「ＩＢＭ」の登録商標である）。
【０００３】
ソース・データとターゲット・データとの間のＰｉＴコピー関係を確立するために、ＩＢＭ  ｚ／ＯＳ（Ｒ）オペレーティング・システムで利用可能なＩＢＭ  Ｄａｔａ  Ｆａｃｉｌｉｔｙ  Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｕｂｓｙｓｔｅｍ（ＤＦＳＭＳ）は、ユーザがターゲット・ボリュームにコピーするソース・ボリュームを指定することができるＦｌａｓｈＣｏｐｙ確立（ＦＣＥＳＴＡＢＬ）コマンドを提供する。更新されるソース・ボリューム内のデータをコピーするだけである、またはターゲット・ボリュームに対するソース・ボリュームのバックグラウンド・コピーを実行することを、ユーザは指定することができる（ｚ／ＯＳは、米国および他の国におけるＩＢＭの登録商標である）。
【０００４】
ＦＣＥＳＴＡＢＬコマンドによって、ユーザは、ソース・ボリュームおよびターゲット・ボリュームのすべて未満である隣接するトラックを含むＰｉＴコピーのための範囲のリストを指定することもできる。ＦＣＥＳＴＡＢＬコマンドで指定される範囲は、シリンダおよびヘッド番号で指定され得る、ソースおよびターゲット・デバイス上の第１および最後のトラックを示す。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＰｉＴコピー関係を確立し、関係が確立された後、ＰｉＴコピー関係を管理するための改良された技法が当技術分野において必要である。
【課題を解決するための手段】
【０００６】
ソース論理アドレスおよびターゲット論理アドレスとして表されるポイント・イン・タイム・コピー関係における更新の管理およびデータのコピーのためのコンピュータ・プログラム製品、システム、および方法が提供される。コピー関係は、少なくとも１つのストレージ内のターゲット論理アドレスのサブセットを含むターゲット・セットにコピーする少なくとも１つのストレージ内のソース論理アドレスのサブセットのソース・セットを示す。ソース論理アドレスは、ソース・トラックにマッピングし、この場合、ターゲット論理アドレスは、ターゲット・トラックにマッピングする。コピー関係の一部として対応するターゲット論理アドレスにコピーされなかった論理アドレスのソース・セット内のソース論理アドレスに対する更新が受信される。コピー関係に従って更新されるソース論理アドレスに対応するターゲット論理アドレスの決定が行われる。決定されたターゲット論理アドレスを含むターゲット・セット内のターゲット論理アドレスのターゲット・グループの決定が行われ、この場合、ターゲット・グループ内のターゲット論理アドレスは、ターゲット・セット内にある。ターゲット・グループ内のターゲット論理アドレスに対応するソース・セット内のソース論理アドレスの決定が行われる。決定されたソース論理アドレスは、決定されたターゲット・グループ内のターゲット論理アドレスにコピーされる。
【０００７】
さらなる実施形態では、ターゲット・セット内のターゲット論理アドレスにソース・セット内のソース論理アドレスをコピーするためのコピー操作が開始される。コピー操作の開始に応答して更新されなかったターゲット・セット内のターゲット論理アドレスが選択される。選択されたターゲット論理アドレスにコピーされるソース論理アドレスのソース・セットからの決定が行われる。決定されたソース論理アドレスは、選択されたターゲット論理アドレスにコピーされる。
【図面の簡単な説明】
【０００８】
【図１】コンピューティング環境の一実施形態を示す図である。
【図２】ＰｉＴコピー関係を確立するためのＰｉＴコピー確立コマンドの一実施形態を示す図である。
【図３】ソース／ターゲット関係情報の一実施形態を示す図である。
【図４】ＰｉＴコピー関係のコピー・マップの一実施形態を示す図である。
【図５】ＰｉＴコピー関係を確立するための動作の一実施形態を示す図である。
【図６】ＰｉＴコピー関係を確立するための動作の一実施形態を示す図である。
【図７】ＰｉＴコピー関係におけるソース論理アドレスに対する更新を処理するための動作の一実施形態を示す図である。
【図８】ＰｉＴコピー関係についてのバックグラウンド・コピー操作を実行するための動作の一実施形態を示す図である。
【発明を実施するための形態】
【０００９】
記載された実施形態は、ソースおよびターゲット論理アドレスの範囲を指定するＰｉＴコピー関係におけるソース論理アドレスについての更新およびバックグラウンド・コピー操作を管理するための技法を提供する。記載された実施形態は、ソース論理アドレスおよびターゲット論理アドレスのマッピングを使用して、ＰｉＴコピー関係におけるソース論理アドレスを更新するとき、ターゲット・トラックにコピーするためにソース論理アドレスを決定する。記載された実施形態は、ＰｉＴコピー関係におけるターゲット論理アドレスを有する指定されたターゲット・トラックにソース論理アドレスをコピーするためのバックグラウンド・コピー操作中に、ＰｉＴコピー関係におけるソース論理アドレスをターゲット論理アドレスにコピーするための技法をさらに提供する。記載された実施形態は、ソースおよびターゲット・データが論理アドレスとして表されるとき、ならびにソースおよびターゲット論理アドレスの異なる範囲が指定されるとき、ＰｉＴコピー関係におけるソース論理アドレスについての更新およびバックグラウンド・コピー操作を管理することができる。
【００１０】
図１は、１つまたは複数の論理的ボリューム６ａを有する結合されたソース・ストレージ４ａから１つまたは複数のボリューム６ｂを有する結合されたターゲット・ストレージ４ｂにデータをコピーするためにコントローラ２を有するコンピューティング環境の一実施形態を示す。コントローラ２は、プロセッサ８およびメモリ１０を含む。ホスト（図示せず）は、第１のストレージ４ａおよび第２のストレージ４ｂ内のトラックにアクセスするように、第１のコントローラ６ａに読取りおよび書込み要求を向け得る。ポイント・イン・タイム（「ＰｉＴ」）コピー関係１６における第１のストレージ４ａ内のトラックへのホストの書込みは、結果として、第２のストレージ４ｂへのそのトラックの複製になり得る。さらなる態様では、ターゲット・ストレージ４ｂは、ターゲット・コントローラに結合され得、したがって、コントローラ２は、ターゲット・ストレージ４ｂへのコピーを管理するために、ターゲット・コントローラにコピーされるＰｉＴデータを伝達することになる。コントローラ２は、ネットワーク１１を介してストレージ４ａ、４ｂと通信することができる。
【００１１】
メモリ１０は、１つまたは複数のＰｉＴコピー関係１４で指定されるように、ソース・ストレージ４ａからターゲット・ストレージ４ｂにデータをコピーするためのコピー・マネージャ１２を含む。コピー関係１４は、ターゲット・ボリューム６ｂ内のターゲット・論理アドレスにコピーするソース・ボリューム６ａ内のソース論理アドレスを識別することができる。あるいは、ＰｉＴコピー関係１４におけるソースとターゲットの両方の論理アドレスは、ストレージ４ａ、４ｂのうちの一方の同じボリュームにあってもよい。コピー関係１４におけるコピーするデータは、整合性セッションまたは整合性グループの一部であり得、したがって、データは、すべての依存するデータにわたる整合性を維持する方法でコピーされ、依存する書込みの順序は、ある時点でデータを整合させるように保存される。
【００１２】
ＰｉＴコピー関係１４は、コピー操作に関与するソースおよびターゲットのトラックに関する情報を両方とも提供するソース関係情報２０およびターゲット関係情報２２を含む。この情報は、Ｉ／Ｏ要求がＰｉＴコピー操作に関与するトラックに対するものかどうかを判断するために、ソースおよびターゲット・ボリュームに対するＩ／Ｏ要求を管理するために使用される。ＰｉＴコピー関係１４は、ソース・セット内のソース論理アドレスがコピーされる必要があるターゲット・ボリューム６ｂ内のトラックを示すコピー・マップ２４をさらに含む。
【００１３】
コピー・マネージャ１２は、たとえばＩＢＭ  ＦｌａｓｈＣｏｐｙ（Ｒ）スナップショットなどのＰｉＴプログラム、および他のＰｉＴプログラムを実施して、同じまたは異なるボリューム内の指定されたソース論理アドレスとターゲット論理アドレスとの間のＰｉＴコピー操作を実行することができる（ＦｌａｓｈＣｏｐｙは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ，  Ｃｏｒｐ．または「ＩＢＭ」の登録商標である）。ＰｉＴコピー操作は、ソース・ボリューム６ａ内の論理アドレスのサブセットを含むソース論理アドレスのソース・セットと、ターゲット・ボリューム６ｂ内の論理アドレスのサブセットを含むターゲット論理アドレスのターゲット・セットとの間であり得る。論理アドレスは、ボリューム６ａ、６ｂにおける隣接するトラックにマッピングする論理ブロック・アドレス（ＬＢＡ）を含み得る。
【００１４】
コピー・マネージャ１２は、メモリ１０にロードされ、プロセッサ８によって実行されるプログラム・コードとして図１に示される。あるいは、コピー・マネージャ１２の機能の一部もしくは全部は、たとえば特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）など、コントローラ６ａ、６ｂにおけるハードウェア・デバイスで実施され得る。コントローラ２は、オペレーティング・システムおよびアプリケーション・プログラムなど、図示されていない他のプログラムを含むことができる。
【００１５】
メモリ１０は、１つまたは複数の揮発性または不揮発性の記憶装置、たとえばダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、または不揮発メモリ、たとえば、バッテリ・バックアップ・ランダム・アクセス・メモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、固体記憶装置（ＳＳＤ）などを含み得る。
【００１６】
ストレージ４ａ、４ｂは、たとえば相互接続された記憶装置など、当技術分野で知られている１つまたは複数の記憶装置をそれぞれ含み、記憶装置は、ハード・ディスク・ドライブ、たとえばＥＥＰＲＯＭ（電気的消去可能プログラマブル読取り専用メモリ）、フラッシュ・メモリ、フラッシュ・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）ドライブ、ストレージ・クラス・メモリ（ＳＣＭ）などの固体電子機器からなる固体記憶装置（ＳＳＤ）、磁気記憶ディスク、光ディスク、テープなどを含み得る。ストレージ４ａおよび４ｂは、トラックの刻み幅がストレージ４ａ、４ｂのランクを含む複数の記憶装置にわたって書き込まれるＲｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ（ＲＡＩＤ）構成でトラックを記憶することができる。
【００１７】
ネットワーク１１は、たとえばローカル・エリア・ネットワーク（ＬＡＮ）、ストレージ・エリア・ネットワーク（ＳＡＮ）、広域ネットワーク（ＷＡＮ）、ピア・ツー・ピア・ネットワーク、ワイヤレス・ネットワークなどのネットワークを含み得る。
【００１８】
図２は、コピー・マネージャ１２にＰｉＴコピー関係１４を生成させるために、コントローラ２内で、または取り付けられたホストからサブミットされるＰｉＴコピー確立コマンド５０の一実施形態を示す。ＰｉＴコピー確立コマンド５０は、ＰｉＴコピー確立コマンドを指定するコマンド・フィールド５２と、コピーされる第１のソース論理アドレス５４と、コピーされる最後のソース論理アドレス５６と、第１のソース論理アドレス５４がコピーされる第１のターゲット論理アドレス５８と、最後のソース論理アドレス５６がコピーされる最後のターゲット論理６０と、たとえばソース論理アドレスをターゲット論理アドレスにコピーするためのバックグラウンド操作が実行されるかどうかを示し、コピーされた後、ソース論理アドレスが持続的なままであるかどうかを示すバックグラウンド・コピー・パラメータなど他のパラメータ６２とを含む。コマンド５０は、さらに、確立されるＰｉＴコピー関係１４におけるソース論理アドレスを含むソース・ボリューム６ａおよびターゲット論理アドレスを含むターゲット・ボリューム６ｂを示す。コピー操作が実行されている、たとえばソース６ａおよびターゲット６ｂのボリューム、または単一のボリューム６ａ、６ｂなど、追加の情報がさらに示され得る。ソースおよびターゲット論理アドレスは、論理的ボリューム以外のデータ記憶装置に記憶され得る。第１  ５４および最後５６のソース論理アドレスの範囲から、コピーする論理アドレスの数が決定され得る。
【００１９】
ＰｉＴコピー確立コマンド５０を処理するとき、コピー・マネージャ１４は、図３および図４に示されるように、ＰｉＴコピー関係１４についてのデータ構造および情報を生成する。
【００２０】
図３は、ソース２０およびターゲット２２の関係情報に含まれるフィールド７０を示し、フィールド７０は、情報についてのＰｉＴコピーを識別するＰｉＴコピー識別子（ＩＤ）７２と、コピーする第１のソース論理アドレス５４を含む第１のソース論理アドレス７４と、第１のソース論理アドレス７４がコピーされる第１のターゲット論理アドレス７６と、たとえばフィールド５８などにおけるコピーする論理アドレスの数７８に関係する長さと、たとえばフィールド６０に含まれる他のパラメータ８０とを含む。あるいは、コピーする論理アドレスの数７８は、たとえばコピーするターゲット・トラックの数または範囲など、他の記憶単位で表され得る。ソースおよびターゲット関係情報７０は、さらに、関係１４のソース論理アドレスを含むソース・ボリューム６ａおよびターゲット論理アドレスを含むターゲット・ボリューム６ｂを示すことになる。ソースおよびターゲット関係情報７０は、ＰｉＴコピー関係１４がアクティブである間、それぞれ、ソース６ａおよびターゲット６ｂのボリュームへのアクセスを管理するために使用され得る。
【００２１】
図４は、コピー・マップ２４の一実施形態を示し、コピー・マップは、論理アドレスのターゲット・セットを含む、ターゲット・ボリューム６ｂ内の各トラックまたはターゲット位置のセルを含むビットマップを含み得る。ソース論理アドレスを受信するターゲット論理アドレスのターゲット・セットを含むターゲット・トラックのセルは、たとえば「１」など、コピーを示すように設定される。ＰｉＴコピー関係の一部ではない、すなわちターゲット・セットを含むターゲット・トラックを除く、ターゲット・ボリューム６ｂ内のトラックを表すセルは、たとえば「０」など、それらがコピーされないことを示すための値を有し得る。他の値および設定は、確立されるＰｉＴコピー関係の一部として、コピーするトラック、およびコピーされないトラックを示すために使用され得る。したがって、コピーすることを示すために設定された各セルは、コピー操作に関与する複数のターゲット論理アドレスを表す。
【００２２】
コピー・マップ２４におけるセル、またはインジケータは、コピー関係のトラック１４に関与するターゲット論理アドレスを含む、ターゲット論理アドレスのターゲット・グループを各々表し得る。コピー・マップ２４におけるインジケータ、またはセルによって表されるターゲット・グループは、トラック以外の論理アドレスのグループ化を各々表し得る。さらなる態様では、コピー・マップ２４は、コピーする論理アドレスのソース・セットを有するソース・ボリューム６ａ内のトラックを示し得る。
【００２３】
図３、図４、図５および図６は、ＰｉＴコピー確立コマンドに含まれる情報、ソースおよびターゲット関係情報、ならびにコピー・マップの一実施形態を提供する。これらのデータ構造およびコマンドに含まれるものとして記載されているこの情報は、限定的であると見なされず、追加のおよび変更された情報が異なる実施形態に含まれ得る。さらに、図３、図４、図５および図６に記載されている情報は、追加のコマンドおよびデータ構造に分けられ得る。
【００２４】
図５および図６は、ＦｌａｓｈＣｏｐｙ確立コマンド、たとえばＦＣＥＳＴＡＢＬなど、ＰｉＴコピー関係１４を確立するためのＰｉＴコピー確立コマンド５０を処理するために、コピー・マネージャ１２によって実行される動作の一実施形態を示す。図５に関して、コピー・マネージャ１２は、（ブロック１００で）第１のソース論理アドレス５４および最後のソース論理アドレス５６ならびに第１のターゲット論理アドレス５８および最後のターゲット論理アドレス６０を示すＰｉＴコピー確立コマンド５０を受信する。コピー・マネージャ１２は、（ブロック１０２で）第１のソース論理アドレス５４を含む第１のソース・トラック、およびデータがコピーされる第１のターゲット論理アドレス５６を含む第１のターゲット・トラックを決定する。コピー・マネージャ１２は、ボリューム・マップを使用して、ストレージ４ａ、４ｂ内のトラックに対する論理アドレスのマッピングを決定することになる。コピー・マネージャ１２は、（ブロック１０４で）コピーする論理アドレスのソース・セットに対する入力／出力（Ｉ／Ｏ）操作を休止する（quiesce）。次いで、コピー・マネージャ１２は、（ブロック１０６で）第１のソース・トラック７４、第１のターゲット・トラック７６、およびコピーする論理ブロック・アドレスに関連した長さ７８を示すソース関係情報２０を生成する。コピー・マネージャ１２は、さらに、（ブロック１０８で）更新される論理アドレスのターゲット・セットに対するＩ／Ｏ操作を休止する。コピー・マネージャ１２は、（ブロック１１０で）第１のソース論理アドレス７４、第１のターゲット論理アドレス７６、およびコピーする論理アドレスの数７８を示すターゲット関係情報２４を生成する。ブロック１０４および１０８の休止操作で、コピー・マネージャ１２は、コピーする論理アドレスの決定されたソース・セットおよびターゲット・セットのみに対するＩ／Ｏ、または論理アドレスのソースおよびターゲット・セットを含むトラックに対するＩ／Ｏを休止し得る。あるいは、Ｉ／Ｏの休止は、ボリューム６ａ、６ｂ全体に対することができる。
【００２５】
コピー・マネージャ１２は、（ブロック１１２で）トラックなど、複数の論理ブロック・アドレスを各インジケータが表す、たとえばセルなどのインジケータを含むコピー・マップ２４を生成する。コピー・マネージャ１２は、（ブロック１１４で）ターゲット論理アドレスのターゲット・セットを含むトラックを表すコピー・マップ２４におけるインジケータを含むコピー・インジケータを決定する。図６に関して、コピー・マネージャ１２は、（ブロック１２０で）ターゲット・セットを含むトラックの範囲における第１のターゲット・トラックまたは最後のターゲット・トラックの一部のみが、ターゲット・セット内のターゲット論理アドレスを含むかどうかを判断する。そうでない場合、これは、コピーするソース論理アドレスが、論理アドレスのターゲット・セットを含む各トラックを並べ、満たすことを意味し、コピー・マネージャ１２は、（ブロック１２２で）すべてのコピー・インジケータを、コピー・インジケータによって表されるターゲット・トラックにマッピングするソース論理アドレスがコピーされる必要があることを示すように設定する。
【００２６】
（ブロック１２０の「はい」分岐から）第１または最後のターゲット・トラックの一部のみが、ターゲット・トラック内の論理アドレスを含んでいる場合、コピー・マネージャ１２は、ＰｉＴコピー関係１４を確立する一部として、ターゲット・セット論理アドレスを部分的のみ含むターゲット・トラックのデータをコピーする。コピー・マップ２４は、確立コマンドの一部として更新された第１または最後のターゲット・トラックをコピーすることを示さない。このように、コピー・マップ２４は、ＰｉＴデータを部分的に含むターゲット・トラックがコピーされる必要があることを示さないので、ターゲット・セット内の論理アドレスを含まないターゲット・トラックの一部への書込みは、ＰｉＴ関係の一部としてコピーされない。（ブロック１２６で）第１のターゲット・トラックの一部のみが、ターゲット・セット内の論理アドレスを含んでいる場合、コピー・マネージャ１２は、（ブロック１２８で）第１のターゲット・トラックに対してマッピングするソース論理アドレスを第１のターゲット・トラックにコピーする。（ブロック１３０で）最後のターゲット・トラックの一部のみが、ターゲット・セット内の論理アドレスを含んでいる場合、または（ブロック１２６の「いいえ」分岐から）第１のターゲット・トラックが、部分的に限らずターゲット・セットの論理アドレスを記憶する場合、コピー・マネージャ１２は、（ブロック１３２で）最後のターゲット・トラックに対してマッピングするソース・セット内のソース論理アドレスを最後のターゲット・トラックにコピーする。
【００２７】
（ブロック１３２、またはブロック１３０の「いいえ」分岐から）第１または最後あるいはその両方のターゲット・トラックの論理アドレスをコピーした後、コピー・マネージャ１２は、（ブロック１３４で）コピー・インジケータを、更新される第１のターゲット・トラックまたは最後のターゲット・トラックあるいはその両方を除いて、たとえば１など、コピー・インジケータによって表されるターゲット・トラックのソース論理アドレスがコピーされる必要があることを示すように設定する。ブロック１２８または１３２あるいはその両方で更新される第１または最後あるいはその両方のターゲット・トラックのコピー・インジケータは、ソース・トラックがコピーされる必要があることを示すように設定されない。たとえばコピー・マップ２４など、（ブロック１２２または１３０から）ＰｉＴ関係情報およびデータ構造を生成した後、および（ブロック１３４から）部分的に満たされた第１または最後あるいはその両方のターゲット・トラックにマッピングする、ソース・セット内のソース論理アドレスをコピーした後、（ブロック１３８で）ＰｉＴコピー確立コマンド５０を開始したアプリケーションまたはユーザに全部が戻される。
【００２８】
コピー・マップ２４が論理アドレスのソース・セットを有するソース・トラックを示す代替の実施形態では、ソース論理アドレスのソース・セットが、論理アドレスのソース・セットの一部を含む第１のソース・トラックまたは最後のソース・トラックあるいはその両方の一部のみにマッピングする場合、ＰｉＴ論理アドレスで部分的のみ満たされた第１のソース・トラックまたは最後のソース・トラックあるいはその両方は、ＰｉＴ確立関係操作の一部として、対応するターゲット・トラックのうちの少なくとも１つにコピーされる。そのような場合、コピー・マップ２４は、第１または最後あるいはその両方のソース・トラックがコピーされる必要があることを示さない。さらに、この代替の実施形態では、第１のソース・トラックまたは最後のソース・トラックあるいはその両方を対応するターゲット・トラックにコピーすることに応答して、仮想コピー確立コマンドへの全部の戻りが行われる。
【００２９】
ＰｉＴコピー関係１４が確立された後、ホスト（図示せず）は、確立されたＰｉＴコピー関係１４のうちの１つにおけるデータを含むソース・ボリューム６ａ内のソース論理アドレスについてのコントローラ２への書込みをサブミットすることができる。ターゲット・ボリューム６ｂにコピーされなかったＰｉＴコピー関係１４におけるソース論理アドレスへのデータの書込みは、ＰｉＴ関係を維持するように、それらが更新される前に、コピー関係１４におけるソース論理アドレスのデータをターゲット・ストレージ４ｂにコピーするために、コピー・オン・ライト操作を実行するようコピー・マネージャ１２をトリガする。
【００３０】
いくつかの記載された実施形態では、コピー関係１４におけるソース論理アドレスへの書込みを受信すると、コピー・マネージャ１２は、更新するソース論理アドレスを含む、たとえばターゲット・トラックなど、同じくコピー関係１４におけるターゲット論理アドレスのターゲット・グループを決定する。コピー・マネージャ１２は、ターゲット・グループ内のターゲット論理アドレスに対応するソース論理アドレスを決定し、決定されたソース論理アドレスを決定されたターゲット・グループにコピーする。このようにして、関係情報７０におけるソースおよびターゲット論理アドレスのマッピングは、ターゲット・ストレージ４ｂにコピーされる必要があるコピー関係１４におけるソース論理アドレスを決定するために使用される。いくつかの記載された実施形態において、ソース・セット内のソース論理アドレスは、デステージ・グループ内のソース論理アドレスによって更新される論理アドレスのターゲット・セットを含むターゲット・トラックとは異なる番号をつけられたトラックであり得るソース・トラックにあるので、このタイプのマッピングが実行される。
【００３１】
図７は、ソース・ボリューム６ａ内のソース論理アドレスに対する更新を処理するためにコピー・マネージャ１２によって実行される動作の一実施形態を示す。書込み要求が複数のソース論理アドレスに向けられる場合、図７の動作は、書込みでソース論理アドレスごとに実行され得る。（ブロック２００で）更新を受信すると、コピー・マネージャ１２は、更新するソース論理アドレスが、１つのＰｉＴコピー関係１４において、第１のソース論理アドレス７４および数論理アドレス７８（図３）によって定義されるように、ソース論理アドレスの範囲内にあるかどうかを判断する（ブロック２０２で）ために、ソース関係情報２０を検討する。そうでない場合、コピー・マネージャ１２は、（ブロック２０４で）更新をソース・ボリューム６ａにコピーする。（ブロック２０２で）更新するソース論理アドレスが１つのＰｉＴコピー関係１４にある場合、コピー・マネージャ１２は、（ブロック２０６で）更新されているソース論理アドレスによって更新されるターゲット・セット内のターゲット論理アドレスを含むターゲット・トラックを決定する。これは、第１のソース論理アドレス７４、第２のターゲット論理アドレス７６、およびコピーする数論理アドレス７８によって定義されるように、ソース論理アドレスおよびターゲット論理アドレスの範囲から更新するソース論理アドレスに対応するターゲット論理アドレスを決定することによって、ターゲット関係情報２２から決定され得る。
【００３２】
コピー・マネージャ１２は、次いで（ブロック２０８で）、検討されるＰｉＴコピー関係１４のコピー・マップ２４が、決定されたターゲット、たとえば、ターゲット・グループなどのトラックが更新されたことを示すかどうか、すなわち、決定されたターゲット・トラックまたはターゲット・グループのビットまたはインジケータが、ターゲット・トラックが更新されたことを示すかどうかを決定する。インジケータは、トラックが更新される必要があることをそれが示していない場合、またはトラックがカレントであることを示す値をそれが有する場合、トラックが更新されたことを示し得る。（ブロック２０８の「はい」分岐から）更新するソース論理アドレスがコピーされることになっている決定されたターゲット・トラックが更新された場合、ソース論理アドレスについてのＰｉＴデータは、決定されたターゲット・トラック（ターゲット・グループ）にすでにコピーされており、制御は、更新をソース・ボリューム６ａ内のソース論理アドレスに書き込むために、ブロック２０４に進む。
【００３３】
（ブロック２０８で）決定されたターゲット・トラックが更新されなかったことをコピー・マップ２４が示す場合、コピー・マネージャ１２は、（ブロック２１０で）更新するターゲット論理アドレスを有する決定されたターゲット・トラック内のターゲット論理アドレスを決定する。コピー・マネージャ１２は、（ブロック２１２で）少なくとも１つのターゲット・トラック内のターゲット論理アドレスにコピーされるソース・セット内のソース論理アドレスを決定する。決定されたソース論理アドレスは、次いで（ブロック２１４で）、ターゲット・トラックまたはターゲット・グループ内の決定されたターゲット論理アドレスにコピーされる。更新されたターゲット・トラックのためのコピー・マップ２４における少なくとも１つのコピー・インジケータは、（ブロック２１６で）少なくとも１つのターゲット・トラックが更新されたことを示すように設定される。ターゲット・トラックが更新された後、制御は、更新をソース論理アドレスに適用するためにブロック２０４に進む。
【００３４】
図７の記載された実施形態で、一緒にデステージされるソース論理アドレスを含むソース・トラックを決定することによって、ソース論理アドレスに対する更新が処理される。次いで、一緒にデステージされるソース論理アドレスを有するターゲット・トラックが決定され、次いで、ソース論理アドレスは、更新されたソース・トラックのコピー・オン・ライトの実行の一部として、コピー関係における対応するターゲット論理アドレスにコピーされる。
【００３５】
ひとたびソース論理アドレスの少なくとも１つのターゲット・トラックへのコピーが確認されると、更新するソース論理アドレスを有するソース・トラックは、ソース・トラックにデステージされ、その結果、ポイント・イン・タイム・データは、デステージされ、より新しいデータで上書きされない。
【００３６】
図８は、確立コマンド５０がバックグラウンド・コピー操作６２を示す場合、バックグラウンド・コピー操作の一部として、コピー関係におけるターゲット論理アドレスにソース論理アドレスをコピーするために、コピー・マネージャ１２によって実行される動作の一実施形態を示す。バックグラウンド・コピー操作は、ソース論理アドレスの冗長なコピーを提供するために、ＰｉＴコピー関係１４におけるすべてのソース論理アドレスをターゲット・ボリューム６ｂにコピーするために実行される。（ブロック２５０で）バックグラウンド・コピー操作を開始すると、コピー・マネージャ１２は、（ブロック２５２で）たとえば、更新されなかったトラックなどのターゲット論理アドレスを表すコピー・マップ２４における１つのインジケータ、たとえばビットを選択する。コピー・マネージャ１２は、ターゲット・ボリューム６ｂ内の連続したターゲット・トラックを更新するために、最後の選択されたビットにコピー・マップ２４において隣接するコピー・マップ２４のビットを選択することができる。コピー・マネージャ１２は、（ブロック２５４で）選択されたターゲット論理アドレスにコピーされるソース論理アドレスをソース・セットから決定する。これは、選択されたターゲット論理アドレスに対応するソース範囲内のソース論理アドレスを決定することによって、ソース関係情報２０で定義されたソースおよびターゲットの論理アドレス範囲からのソース関係情報２０から決定され得る。
【００３７】
決定されたソース論理アドレスは、（ブロック２５６で）選択されたターゲット・トラックにコピーされ、次いで、コピー・マップ２４における選択されたインジケータは、（ブロック２５８で）ターゲット・トラックが更新されたことを示すように設定される。
【００３８】
記載された実施形態は、ＰｉＴコピー確立操作が、それぞれ指定されたソースおよびターゲット論理ブロック・アドレスを有するソースおよびターゲット・トラックにマッピングするソースおよびターゲット論理アドレスを指定することができるようにするための技法を提供する。記載された実施形態では、ソース論理アドレスを含むソース・トラックの第１または最後あるいはその両方は、コピーするソース論理アドレスの一部のみを有し得、ターゲット論理アドレスを含むターゲット・トラックの第１および最後は、ターゲット論理アドレスの一部のみを有し得る。このような場合、第１または最後あるいはその両方のターゲット・トラックの一部のみに対してマッピングするソース論理アドレスは、確立操作中、第１または最後あるいはその両方のターゲット・トラックにコピーされる。さらに、ソース・トラックで更新される必要があるターゲット・トラックを示すコピー・マップは、確立操作中にソース論理アドレスがコピーされる第１または最後あるいはその両方のターゲット・トラックについて、データがコピーされる必要があることを示さない。
【００３９】
記載された実施形態は、ＰｉＴコピー関係におけるソース論理アドレスに対する更新を扱うための技法をさらに提供する。ソース・トラックは、更新されたソース論理アドレスを含む、たとえばトラックなど、デステージ・グループにおいてデステージされるので、記載された実施形態は、デステージされるソース・トラック内のソース論理アドレスによって更新されるＰｉＴコピー関係におけるターゲット論理アドレスを有するターゲット・トラックを決定する。次いで、ソース論理アドレスは、ＰｉＴコピー関係における決定された少なくとも１つのターゲット・トラック内の対応するターゲット論理アドレスにコピーされる。
【００４０】
記載された実施形態は、ターゲット・トラックを表すコピー・インジケータを決定し、ＰｉＴコピー関係におけるターゲット・トラック内のターゲット論理アドレスにマッピングするソース論理アドレスを決定し、次いで、決定されたソース論理アドレスをターゲット・トラックにコピーすることによって、ＰｉＴコピー関係におけるソース論理アドレスのバックグラウンド・コピー操作を実行するための技法をさらに提供する。記載された実施形態は、ソースおよびターゲット・データが論理アドレスとして表されるとき、ならびにソースおよびターゲット論理アドレスの異なる範囲が指定されるとき、ＰｉＴコピー関係におけるソース論理アドレスについての更新およびバックグラウンド・コピー操作を管理することができる。
【００４１】
記載された動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生成する標準のプログラミングまたはエンジニアリング技法あるいはその両方を使用して、方法、装置、またはコンピュータ・プログラム製品として実装され得る。したがって、実施形態の態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態（ファームウェア、常駐のソフトウェア、マイクロ・コードなどを含む）、または本明細書においてすべて一般に「回路」、「モジュール」または「システム」と呼ばれ得る、ソフトウェアおよびハードウェアの態様を結合する実施形態の形をとり得る。さらに、実施形態の態様は、コンピュータ可読プログラム・コードが組み込まれる１つまたは複数のコンピュータ可読媒体で具現化されるコンピュータ・プログラム製品の形をとり得る。
【００４２】
１つまたは複数のコンピュータ可読媒体の任意の組合せが使用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体でもよい。コンピュータ可読記憶媒体は、たとえば、それだけには限定されないが、電子、磁気、光学、電磁気、赤外線、もしくは半導体のシステム、装置、もしくはデバイス、または前述のうちの任意の適した組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例（包括的でないリスト）は、１つまたは複数のワイヤを含む電気接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、光記憶デバイス、磁気記憶デバイス、または前述の任意の適した組合せを含む。本文書の文脈で、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスが使用するための、またはそれに関連したプログラムを含むまたは記憶することができる任意の有形の媒体であり得る。
【００４３】
コンピュータ可読信号媒体は、たとえば、ベースバンドにおいて、または搬送波の一部として、そこに組み込まれるコンピュータ可読プログラム・コードを有する伝搬されたデータ信号を含み得る。そのような伝搬された信号は、それだけには限定されないが、電磁気、光学、またはそれらの任意の適した組合せを含む様々な形のうちの任意の形をとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でない、命令実行システム、装置、またはデバイスが使用するための、またはそれに関連したプログラムを伝達、伝搬、またはトランスポートすることができる任意のコンピュータ可読媒体とすることができる。
【００４４】
コンピュータ可読媒体に組み込まれるプログラム・コードは、それだけには限定されないが、ワイヤレス、有線、光ファイバ・ケーブル、ＲＦなどを含む任意の適切な媒体または前述の任意の適した組合せを使用して送信され得る。
【００４５】
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、およびたとえば「Ｃ」プログラミング言語または類似のプログラミング言語など従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれ得る。プログラム・コードは、完全にユーザのコンピュータにおいて、部分的にユーザのコンピュータにおいて、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータにおいて、および部分的にリモート・コンピュータにおいて、または完全にリモート・コンピュータもしくはサーバにおいて実行され得る。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してリモート・コンピュータがユーザのコンピュータに接続され得る、または（たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対する接続が行われ得る。
【００４６】
本発明の態様は、本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方に関して上で記載されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せがコンピュータ・プログラム命令によって実施され得ることを理解されよう。コンピュータまたは他のプログラム可能データ処理のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックで指定されている機能／行為を実施するための手段を作成するように、これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを生成するものであってよい。
【００４７】
コンピュータ可読媒体に記憶された命令により、フローチャートまたはブロック図あるいはその両方のブロックで指定されている機能／行為を実施する命令を含む製品を生成するように、これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶され、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに、特定の方法で機能するように指示するものであってよい。
【００４８】
また、コンピュータまたは他のプログラム可能装置上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで指定されている機能／行為を実施するためのプロセスを提供するように、コンピュータ実施プロセスを生成するために、コンピュータ・プログラム命令は、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにおいて一連の操作ステップを実行させるものであってよい。
【００４９】
「一実施形態」、「実施形態」、「複数の実施形態」、「本実施形態」、「複数の実施形態」、「１つまたは複数の実施形態」、「いくつかの実施形態」、および「１つの実施形態」という用語は、特に明記されない限り、「本発明の１つまたは複数の（しかしすべてではない）実施形態」を意味する。
【００５０】
「含む」、「備える」、「有する」、およびその変形の用語は、特に明記されない限り、「それには限定されないが、含む」ことを意味する。
【００５１】
列挙された項目のリストは、特に明記されない限り、項目のうちの任意のものまたは全部が相互に排他的であることを意味しない。
【００５２】
「ａ」、「ａｎ」および「ｔｈｅ」という用語は、特に明記されない限り、「１つまたは複数」を意味する。
【００５３】
互いに通信しているデバイスは、特に明記されない限り、互いに連続通信である必要はない。さらに、互いに通信しているデバイスは、直接、または１つまたは複数の仲介物を介して間接的に通信することができる。
【００５４】
互いに通信しているいくつかの構成要素を有する一実施形態の説明は、すべてのそのような構成要素が必要とされることを意味しない。これに反して、様々な任意の構成要素は、本発明の多種多様な可能な実施形態を示すために記載されている。
【００５５】
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどが順番で記載され得るが、そのようなプロセス、方法、およびアルゴリズムは、別の順序で動作するように構成され得る。言い換えると、記載され得るステップの任意のシーケンスまたは順序は、ステップがその順序で実行されるという要件を必ずしも示すとは限らない。本明細書に記載されているプロセスのステップは、実際的な任意の順序で実行され得る。さらに、いくつかのステップは、同時に実行され得る。
【００５６】
単一のデバイスまたは物品が本明細書に記載されているとき、複数のデバイス／物品（それらが協働するかどうかにかかわらず）が単一のデバイス／物品の代わりに使用され得ることは容易に明らかである。同様に、複数のデバイスまたは物品（それらが協働するかどうかにかかわらず）が本明細書に記載されている場合、単一デバイス／物品が複数のデバイスもしくは物品の代わりに使用され得ること、または異なる数のデバイス／物品が示された数のデバイスまたはプログラムの代わりに使用され得ることは容易に明らかである。代わりに、デバイスの機能または特徴あるいはその両方が、そのような機能／特徴を有するものとして明確に記載されていない１つまたは複数の他のデバイスによって実施されてもよい。したがって、本発明の他の実施形態は、デバイス自体を含む必要はない。
【００５７】
図の示された動作は、ある順序で行われるいくつかのイベントを示す。代替の実施形態では、いくつかの動作は、異なる順序で実行され、変更され、または取り除かれ得る。さらに、ステップは、上述した論理に追加され、依然として記載された実施形態に従い得る。さらに、本明細書に記載されている動作は、順次に行われ得、またはいくつかの動作は、並行して処理され得る。さらに、動作は、単一の処理ユニットによって、または分散された処理ユニットによって実行され得る。
【００５８】
本発明の様々な実施形態の上記の説明は、図および説明の目的で示されている。それは網羅的であるものではなく、または本発明を開示される正確な形に限定するものではない。上記説明の観点から多くの変更および変形が可能である。
【図１】
0006341918.tif 000002
【図２】
0006341918.tif 000003
【図３】
0006341918.tif 000004
【図４】
0006341918.tif 000005
【図５】
0006341918.tif 000006
【図６】
0006341918.tif 000007
【図７】
0006341918.tif 000008
【図８】
0006341918.tif 000009