(57)【特許請求の範囲】
【請求項１】
テープ・カートリッジに記憶されたデータを複製するための方法であって、
複製すべき第１のテープ・カートリッジを第１のテープ・ドライブによって特定するステップであって、前記第１のテープ・カートリッジが前記第１のテープ・ドライブにロードされている、前記ステップと、
第２のテープ・カートリッジへ複製するために前記第１のテープ・カートリッジに記憶されているデータを前記第１のテープ・ドライブによって特定するステップであって、前記第２のテープ・カートリッジが第２のテープ・ドライブにロードされている、前記ステップと、
前記第１のテープ・カートリッジに記憶されている前記特定されたデータを、前記第１のテープ・ドライブのイニシエータ・ポートから前記第２のテープ・ドライブのターゲット・ポートへ前記第１のテープ・ドライブによって送信するステップと、
前記第１のテープ・カートリッジのメモリ内のビットの値を、前記第１のテープ・カートリッジに記憶されているデータを複製すべきか否か示すように設定するステップと
を含み、
複製すべき第１のテープ・カートリッジを第１のテープ・ドライブによって特定するステップが、
少なくとも部分的には前記第１のテープ・カートリッジのメモリ内の前記ビットの値に基づいて、前記複製すべき第１のテープ・カートリッジを前記第１のテープ・ドライブによって特定するステップを含む、
方法。
【請求項２】
前記第１のテープ・ドライブのターゲット・ポートを、前記第１のテープ・ドライブの前記イニシエータ・ポートとして働くように構成するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記第１のテープ・ドライブのイニシエータ・ポートを、前記特定されたデータを送信した後に前記第１のテープ・ドライブのターゲット・ポートとして働くように構成するステップをさらに含む、請求項１に記載の方法。
【請求項４】
第２のテープ・カートリッジへ複製するために前記第１のテープ・カートリッジに記憶されているデータを前記第１のテープ・ドライブによって特定するステップが、
前記第１のテープ・カートリッジ内のメモリを読み出して第１のマーカおよび第２のマーカを特定するステップを含み、
前記第１のマーカが、前記第２のテープ・カートリッジに複製するために前記第１のテープ・カートリッジに記憶されているデータの先頭ストレージ・アドレスを定め、前記第２のマーカが、前記第２のテープ・カートリッジに複製するために前記第１のテープ・カートリッジに記憶されているデータの末尾ストレージ・アドレスを定める、請求項１に記載の方法。
【請求項５】
前記第２のテープ・カートリッジを前記第２のテープ・ドライブにロードするよう求めるリクエストを前記第１のテープ・ドライブによって前記第２のテープ・ドライブに送るステップをさらに含み、
前記第１のテープ・カートリッジに対応し、さらに前記第２のテープ・カートリッジに関連付けられるバーコードを読み取ることによって前記第１のテープ・ドライブによって前記第２のテープ・カートリッジが選択される、請求項１に記載の方法。
【請求項６】
テープ・カートリッジに記憶されたデータを複製するためのコンピュータ・プログラムであって、
複製すべき第１のテープ・カートリッジを特定することであって、前記第１のテープ・カートリッジが第１のテープ・ドライブにロードされている、前記特定することを行うプログラム命令と、
第２のテープ・カートリッジへ複製するために、前記第１のテープ・カートリッジに記憶されているデータを特定することであって、前記第２のテープ・カートリッジが第２のテープ・ドライブにロードされている、前記特定することを行うプログラム命令と、
前記第１のテープ・カートリッジに記憶されている前記特定されたデータを、前記第１のテープ・ドライブのイニシエータ・ポートから前記第２のテープ・ドライブのターゲット・ポートへ送信するプログラム命令と、
前記第１のテープ・カートリッジのメモリ内のビットの値を、前記第１のテープ・カートリッジに記憶されているデータを複製すべきか否か示すように設定するプログラム命令と
を第１のテープ・ドライブに実行させ、
複製すべき第１のテープ・カートリッジを特定する前記プログラム命令が、
少なくとも部分的には前記第１のテープ・カートリッジのメモリ内の前記ビットの値に基づいて前記複製すべき第１のテープ・カートリッジを特定するプログラム命令を含む、
コンピュータ・プログラム。
【請求項７】
前記第１のテープ・ドライブのターゲット・ポートを、前記第１のテープ・ドライブの前記イニシエータ・ポートとして働くように構成するプログラム命令をさらに含む、請求項６に記載のコンピュータ・プログラム。
【請求項８】
テープ・カートリッジに記憶されたデータを複製するためのコンピュータ・システムであって、
１つまたは複数のコンピュータ・プロセッサと、
１つまたは複数のコンピュータ可読ストレージ媒体と、
前記１つまたは複数のコンピュータ・プロセッサのうちの少なくとも１つによって実行されるために前記コンピュータ可読ストレージ媒体に記憶されたプログラム命令とを含み、前記プログラム命令が、
複製すべき第１のテープ・カートリッジを特定することであって、前記第１のテープ・カートリッジが第１のテープ・ドライブにロードされている、前記特定することを行うプログラム命令と、
第２のテープ・カートリッジへ複製するために、前記第１のテープ・カートリッジに記憶されているデータを特定することであって、前記第２のテープ・カートリッジが第２のテープ・ドライブにロードされている、前記特定することを行うプログラム命令と、
前記第１のテープ・カートリッジに記憶されている前記特定されたデータを、前記第１のテープ・ドライブのイニシエータ・ポートから前記第２のテープ・ドライブのターゲット・ポートへ送信するプログラム命令と、
前記第１のテープ・カートリッジのメモリ内のビットの値を、前記第１のテープ・カートリッジに記憶されているデータを複製すべきか否か示すように設定するプログラム命令と
を含み、
複製すべき第１のテープ・カートリッジを特定する前記プログラム命令が、
少なくとも部分的には前記第１のテープ・カートリッジのメモリ内の前記ビットの値に基づいて前記複製すべき第１のテープ・カートリッジを特定するプログラム命令を含む、
コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータ複製に関し、より詳細には磁気テープ・カートリッジの複製に関する。
【背景技術】
【０００２】
磁気テープ・データ・ストレージ・システムは、デジタル情報を磁気テープに記憶する。磁気テープは通常、カートリッジおよびカセットに収納されている。データの書き込みおよび読み出しにはテープ・ドライブが使用される。オートローダおよびテープ・ライブラリによって、カートリッジの取り扱いを自動化することができる。
【０００３】
磁気テープの文脈では、カセットという用語は通常、１本の磁気テープと２つのリールを保持する筐体を指す。カートリッジという用語はそれよりも汎用的であるが、多くの場合、プラスチック製筐体内の１つのテープ・リールを意味する。
【０００４】
テープ・ドライブ（すなわち、駆動機構またはデッキ）は、精密制御されるモータを使用して、一方のリールから他方のリールへテープを巻き、そのときに読み出し／書き込みヘッドを通過させる。別のタイプのテープ・カートリッジは、特殊なリールに巻き付けられたテープの連続ループを有し、このリールでは、テープがリールの中央から引き出され、次に縁部に巻き付けられることが可能である。このタイプは、テープ・ドライブの内部に巻き取りリールがないという点でカセットに類似する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
【課題を解決するための手段】
【０００６】
本発明の実施形態は、１つまたは複数のコンピューティング・デバイスのテープ・カートリッジに記憶されたデータを複製するための方法、コンピュータ・プログラム製品、およびシステムを開示する。一実施形態では、複製すべき第１のテープ・カートリッジを１つまたは複数のコンピュータ・プロセッサが特定する。第１のテープ・カートリッジは第１のテープ・ドライブにロードされている。第２のテープ・カートリッジへ複製するために、第１のテープ・カートリッジに記憶されているデータが特定される。第２のテープ・カートリッジは第２のテープ・ドライブにロードされている。特定されたデータが、第１のテープ・ドライブのイニシエータ・ポートから第２のテープ・ドライブのターゲット・ポートへ送信される。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態による分散データ処理環境を示す機能ブロック図である。
【図２】本発明の一実施形態によって、図１の分散データ処理環境内のあるテープ・ドライブから別のテープ・ドライブへのデータ複製のためにカートリッジを準備するための操作ステップを示すフローチャートである。
【図３】本発明の一実施形態によって、図１の分散データ処理環境内のテープ・ドライブで、あるテープ・ドライブから別のテープ・ドライブへデータを複製するための操作ステップを示すフローチャートである。
【図４】本発明の一実施形態による図１のコンピューティング・システムの構成要素のブロック図である。
【発明を実施するための形態】
【０００８】
現在のバックアップ環境では、長期的で費用効果の高いデータ・ストレージとして、通常、テープ・ストレージが使用される。ディザスタ・リカバリ(disaster recovery)戦略の一部として、企業がデータを複数の場所、多くの場合は異なる国々に記憶することが必要なことがある。データ・ストレージが危険にさらされた場合には、ホスト・アプリケーションが自動的に代わりのストレージ場所に切り替わることがある。データを別のシステムへ自動的に転送するためのデータの複製またはミラーリングを可能にするために、通常、ディスク・ストレージおよび仮想ストレージ・システム（例えば、仮想テープ・ライブラリ）が使用される。
【０００９】
本発明の実施形態は、あるテープ・カートリッジから別のテープ・カートリッジへ、中間ホストの必要なくデータを複製するためのシステムおよび方法を提供する。複製中のホストの必要をなくすことは、ネットワーク・トラフィックが高いときにデータ転送のボトルネックを回避するために役立ち得る。さらに、本発明の実施形態は、複製されるデータの量に関して柔軟性を高める。これは、それ以外の方法ではテープ・カートリッジの全データを複製するために浪費される可能性のある無駄な時間およびリソースをなくすために役立つ。
【００１０】
本発明の実施形態の実装は様々な形をとってもよく、下記に、例示的実装の詳細について図を参照しながら説明する。
【００１１】
図１は、本発明の一実施形態による、全体的に１００と指示される分散データ処理環境を示す機能ブロック図である。図１は、一実装の単なる説明であり、様々な実施形態が実装され得る環境に関していかなる限定も含意しない。図示された環境には、当業者によって、特許請求の範囲に記載されるとおりの本発明の範囲を逸脱することなく多くの変更が加えられ得る。
【００１２】
分散データ処理環境１００は、ホスト・コンピュータ１０２、ホスト・コンピュータ１０６、テープ・ドライブ１０４ａ、テープ・ドライブ１０４ｂを含み、そのすべてがネットワーク１１０を介して相互接続されている。ネットワーク１１０は、例えば、遠隔通信ネットワーク、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネットなどの広域ネットワーク（ＷＡＮ）、またはそれら３つの組合せであることができ、有線、無線、または光ファイバ接続とすることができる。ネットワーク１１０は、音声、データ、および動画の情報を含むマルチメディア信号を含めたデータ、音声、または動画、あるいはそれらの組合せの信号を受信および送信することのできる、１つまたは複数の有線または無線あるいその両方のネットワークを含んでもよい。
【００１３】
ホスト・コンピュータ１０２および１０６は、管理サーバ、ウェブ・サーバ、または、データを受信および送信することのできる他の任意の電子デバイスもしくはコンピューティング・システムであってもよい。他の実施形態では、ホスト・コンピュータ１０２および１０６は、クラウド・コンピューティング環境でのように、複数のコンピュータをサーバ・システムとして利用するサーバ・コンピューティング・システムを表してもよい。別の実施形態では、ホスト・コンピュータ１０２および１０６は、ネットワーク１１０を介してテープ・ドライブ１０４ａおよびテープ・ドライブ１０４ｂと通信することのできる、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ（ＰＣ）、デスクトップ・コンピュータ、携帯情報端末（ＰＤＡ）、スマートフォン、または任意のプログラム可能電子デバイスであってもよい。別の実施形態では、ホスト・コンピュータ１０２は、継ぎ目のないリソースの単一のプールとして働く、クラスタ化されたコンピュータおよび構成要素を利用するコンピューティング・システムを表す。一定の実施形態では、クライアントコンピュータ１０２および１０６は、ネットワーク１１０を通してアクセスされたときに継ぎ目のないリソースの単一プールとして働く、クラスタ化されたコンピュータおよび構成要素を利用するコンピューティング・システムを表す。例えば、そのような実施形態はデータセンタ、クラウド・コンピューティング、ストレージ・エリア・ネットワーク（ＳＡＮ）、およびネットワーク接続型ストレージ（ＮＡＳ）の適用例で使用され得る。
【００１４】
テープ・ドライブ１０４ａおよびテープ・ドライブ１０４ｂは、磁気テープのデータを読み出しおよび書き込みできるデータ・ストレージ・デバイスである。いくつかの実施形態では、磁気テープは取り外し可能なカートリッジ内に保存される。磁気テープ・ドライブは、電源コネクタ・ピン、磁気テープ・ライブラリへの接続を可能にするインタフェース、および、ネットワークへの別々のアドレスをもつ２つの別々の接続を含んでもよい。テープ・ドライブは、そのドライブがデータを書き込むことのできる磁気テープまたは磁気テープを収容したカートリッジ（例えばカートリッジ１２２ａ）のためのソケットもまた含む。いくつかの実施形態では、テープ・ドライブ１０４ａおよび１０４ｂは、自動化されたシステムが新しいカートリッジの取り出しまたは挿入を行うことのできる、ライブラリの一部であってもよい。テープ・ドライブ１０４ａおよび１０４ｂは、ネットワーク１１０を介してホスト・コンピュータ１０２および１０６と通信することができる。図示される環境では、テープ・ドライブ１０４ａおよび１０４ｂは、それぞれの、複製プログラム１２０ａおよび１２０ｂ、カートリッジ１２２ａおよび１２２ｂ、ネットワーク・ポート１２４ａおよび１２４ｂ、ならびにデータベース１２８ａおよび１２８ｂを含む。
【００１５】
この例示的実施形態では、複製プログラム１２０ａおよび１２０は、それぞれのカートリッジ１２２ａおよび１２２ｂ内に置かれたそれぞれのメモリ・チップ１２６ａおよび１２６ｂをプログラムして、カートリッジ１２２ａからカートリッジ１２２ｂへの、およびその逆の、ネットワーク１１０を介したデータ複製を可能にする。図示される分散データ処理環境１００では、複製プログラム１２０ａおよび複製プログラム１２０ｂは、それぞれテープ・ドライブ１０４ａおよびテープ・ドライブ１０４ｂに常駐する。別の実施形態では、複製プログラム１２０ａまたは複製プログラム１２０ｂあるいはその両方は、それぞれのホスト・コンピュータ１０２および１０６に置かれてもよい。さらに別の実施形態では、複製プログラム１２０ａおよび複製プログラム１２０ｂは、テープ・ドライブ１０４ａおよび１０４ｂにネットワーク１１０を介して接続されているテープ・ライブラリ（図示せず）内に置かれてもよい。複製プログラム１２０ａおよび複製プログラム１２０ｂについて、図２および図３に関してさらに詳細に説明する。
【００１６】
カートリッジ１２２ａおよび１２２ｂは、データを記憶するために使用される磁気テープを格納するデバイスである。様々な実施形態で、カートリッジ１２２ａおよび１２２ｂは、プラスチック製筐体内に、１つの磁気テープ・リール、２つの磁気テープ・リール、または当技術分野で知られる他の異形を含んでもよい。カートリッジ１２２ａおよび１２２ｂは、それぞれのテープ・ドライブ１０４ａおよび１０４ｂに手動で、または自動的に（例えば、自動化されたテープ・ライブラリでロボットによって）挿入することができ、その後データが、カートリッジ内の磁気テープに書き込まれてもよいし、または、カートリッジ内の磁気テープから読み出されてもよい。カートリッジ１２２ａおよび１２２ｂは、それぞれ、メモリ・チップ１２６ａおよび１２６ｂを含む。この例示的実施形態では、カートリッジ１２２ａおよび１２２ｂは、リニア・テープオープン（ＬＴＯ）カートリッジで実装される。一般に、任意の適切なタイプのテープ・カートリッジが使用されてもよい。
【００１７】
メモリ・チップ１２６ａおよび１２６ｂは、カートリッジ１２２ａおよび１２２ｂを特定する情報ならびにテープ使用情報を記憶するために使用される。例えば、カートリッジ１２２ａおよび１２２ｂがリニア・テープオープン（ＬＴＯ）カートリッジであれば、メモリ・チップ１２６ａおよび１２６ｂは様々なデータのアドレスおよびバイト範囲を含む１つまたは複数のテーブルを含んでもよく、それらのデータは、ファイル名、カートリッジ・バーコード、テープ・ディレクトリ・ページ、アプリケーション特定のページ、および、カートリッジ１２２ａおよび１２２ｂのそれぞれに置かれたデータのための使用されていないメモリ位置などである。この実施形態では、メモリ・チップ１２６ａおよび１２６ｂは、それぞれテープ・ドライブ１０４ａおよび１０４ｂと通信する無線周波数識別（ＲＤＩＤ）チップである。
【００１８】
ネットワーク・ポート１２４ａおよび１２４ｂは、テープ・ドライブ１０４ａおよび１０４ｂからホスト・コンピュータ１０２および１０６へのネットワーク１１０を介したデータの転送を可能にする。ネットワーク・ポート１２４ａおよび１２４ｂはまた、ターゲット・モードからイニシエータ・モードに切り替わり、テープ・ドライブ１０４ａと１０４ｂの間のネットワーク１１０を介した直接通信を有効化することができる。様々な実施形態で、ネットワーク・ポート１２４ａおよび１２４ｂのそれぞれは、それぞれテープ・ドライブ１０４ａおよび１０４ｂとの間でのデータ転送のために２つ以上のポートを備える。例えば、ネットワーク・ポート１２４ａおよび１２４ｂはそれぞれ、２つ以上のスモール・コンピュータ・システム・インタフェース（ＳＣＳＩ）／ファイバ・チャネル・ポート、２つ以上の伝送制御プロトコル（ＴＣＰ）／インターネット・プロトコル（ＩＰ）のネットワーク・ポート、または、ＳＣＳＩ／ファイバ・チャネル・ポートおよびＴＣＰ／ＩＰポートの組合せ、を備えることができる。ネットワーク・ポート１２４ａおよび１２４ｂがそれぞれ２つ以上のＳＣＳＩ／ファイバ・チャネル・ポートを備える場合は、１つのポートがターゲット・ポートとして（すなわち、ホスト・コンピュータ１０２またはホスト・コンピュータ１０６あるいはその両方からコマンドを受け取るように）構成されたままで、別のポートがイニシエータ・ポートとして（すなわち、テープ・ドライブ１０４ａまたはテープ・ドライブ１０４ｂへコマンドを送信するように）構成されてもよい。単一のＳＣＳＩ／ファイバ・チャネル・ポートおよび１つまたは複数のＴＣＰ／ＩＰポートを使用するときは、ＳＣＳＩ／ファイバ・チャネル・ポートがターゲット・ポートとして構成されたままで、ＴＣＰ／ＩＰポートがイニシエータ・ポートとして構成されてもよい。
【００１９】
この実施形態では、データベース１２８ａおよび１２８ｂは、テープ・ドライブ１０４ａおよび１０４ｂが直前にデータの書き込みまたは読み出しあるいはその両方を行ったカートリッジを記述的に示すバーコードおよび／または他のマーカを含む。データベース１２８ａおよび１２８ｂはそれぞれ、テープ・ドライブ１０４ａおよび１０４ｂによってアクセスおよび利用され得るデータを記憶することのできる任意のタイプのストレージ・デバイスおよびアーキテクチャで実装することができ、それらのデバイスは、リレーショナル・データベース、オブジェクト指向データベース、もしくはテーブルを有するデータベース・サーバ、ハードディスク・ドライブ、またはフラッシュ・メモリなどである。その他の実施形態では、データベース１２８ａおよび１２８ｂはそれぞれ、テープ・ドライブ１０４ａおよび１０４ｂのそれぞれの中の複数のストレージ・デバイスを表すことができる。
【００２０】
説明の目的で、本発明の実施形態を実装したときに存在し得る他のコンピュータ・システムおよび要素が図１には示されていないことが理解されるべきである。例えば、図１には２つのホスト・コンピュータ１０２および１０６ならびに２つのテープ・ドライブ１０４ａおよび１０４ｂが示されているが、分散データ処理環境１００は、追加のホスト・コンピュータまたは追加のテープ・ドライブあるいはその両方を含むこともでき、それらのドライブの間でデータが複製される。
【００２１】
図２は、本発明の一実施形態によって、あるテープ・ドライブから別のテープ・ドライブへのデータ複製のためにカートリッジを準備するための操作ステップを示す、フローチャートである。説明の目的で、テープ・ドライブ１０４ａからテープ・ドライブ１０４ｂへデータを複製するために複製プログラム１２０ａがカートリッジ１２２ａを準備することに関して図２を論じるが、図２の操作ステップが複製プログラム１２０ｂによって、テープ・ドライブ１０４ｂからテープ・ドライブ１０４ａへ、または分散データ処理環境１００内の任意の他のタイプのデバイス間で、あるいはその両方でデータを複製するために行われてもよいことが理解されるべきである。
【００２２】
一実施形態では、カートリッジ１２２ａがテープ・ドライブ１０４ａに挿入されると複製プログラム１２０ａが開始される。別の実施形態では、ホスト・コンピュータ１０２のユーザに手動入力が促されると複製プログラム１２０ａが開始される。さらに別の実施形態では、ホスト・コンピュータ１０２に置かれたバックアップ・プログラムによって要求されると複製プログラム１２０ａが開始される。さらに別の実施形態では、テープ・ドライブ１０４ａに置かれたデータベース１２８ａに記憶された所定の時刻に複製プログラム１２０ａが開始される。
【００２３】
ステップ２０２で、複製プログラム１２０ａがメモリ・チップ１２６ａを読み出して、カートリッジ１２２ａにすでに記憶されているデータに関する情報にアクセスし、この情報によってテープ・ドライブ１０４ａはデータを正しい位置に書き込むことができる。この実施形態では、複製プログラム１２０ａは取得した情報をデータベース１２８ａに記憶する。メモリ・チップ１２６ａに置かれたそのような情報の例には、ファイル名のリスト、各ファイルのサイズ、カートリッジ１２２ａの各ファイルのアドレス（例えば、カートリッジ１２２ａのバイト１００で始まりバイト２００で終わる）、未使用の空間の位置、カートリッジ１２２ａのバーコード、カートリッジ１２２ａの名前、または、当技術分野で知られたカートリッジ１２２ａの他の記述的基準が含まれてもよい。別の実施形態では、ホスト・コンピュータ１０２などのホスト・コンピュータがメモリ・チップ１２６ａを読み出してもよい。
【００２４】
ステップ２０４で、複製プログラム１２０ａが、カートリッジ・ステータスを「複製する」に変更するように求めるリクエストを受け取る。この実施形態では、複製プログラム１２０ａはカートリッジ１２２ａのステータスを「複製する」に変更するように求めるリクエストをホスト・コンピュータ１０２から受け取る。例えば、ホスト・コンピュータ１０２が、カートリッジ１２２ａに書き込まれるデータをテープ・ドライブ１０４ａに送るとき、カートリッジ１２２ａに書き込まれるデータは、カートリッジ・ステータスを「複製する」に変更するように求めるリクエストもまた含んでもよい。別の実施形態では、ホスト・コンピュータ１０２は事前設定されたスケジュールを有することができ、そのスケジュールに従って、ホスト・コンピュータ１０２が、複製プログラム１２０ａにカートリッジ１２２ａを複製用に設定するように求めるリクエストを送る。さらに別の実施形態では、ホスト・コンピュータ１０２のユーザが、複製プログラム１２０ａにカートリッジ１２２ａを複製用に設定するように求めるリクエストの送信を始めてもよい。さらに別の実施形態では、ホスト・コンピュータ１０２に置かれたバックアップ・プログラムが、複製プログラム１２０ａにカートリッジ１２２ａを複製用に設定するように求めるリクエストの送信を始めてもよい。
【００２５】
ステップ２０６で、複製プログラム１２０ａが複製位置情報を受け取り、その複製位置情報をメモリ・チップ１２６ａに記憶する。この実施形態では、複製プログラム１２０ａがテープ・ドライブ１０４ｂおよびカートリッジ１２２ｂの複製位置情報をホスト・コンピュータ１０２から受け取る。別の実施形態では、カートリッジ１２２ａは、外部ＲＦＩＤチップ・リーダを介してテープ・ドライブ１０４ｂおよびカートリッジ１２２ｂの複製位置情報を受け取ることができる。
【００２６】
ステップ２０８で、複製プログラム１２０ａが、カートリッジ１２２ａのカートリッジ・ステータスを「複製する」に更新する。この実施形態では、複製プログラム１２０ａは、メモリ・チップ１２６ａ内の指定の複製ビットを「０」値の代わりに「１」値に設定することによって、カートリッジ１２２ａのカートリッジ・ステータスを「複製する」に更新する。この実施形態では、複製プログラム１２０ａは、カートリッジ１２２ａを複製用に設定することを求めるリクエストをホスト・コンピュータ１０２から受け取ったことに応答して、カートリッジ１２２ａのカートリッジ・ステータスを更新する。別の実施形態では、テープ・ドライブ１０４ａに新しいカートリッジ（例えば、それまでにデータが記憶されていないカートリッジ）が挿入されたとき、または新しいカートリッジへの初回の書き込みのときに、すべての新しいカートリッジがデフォルトで複製されるように設定するように、複製プログラム１２０ａが構成され得る。カートリッジ１２２ａが複製されるように設定することに加えて、複製プログラム１２０ａは、複製が行われる時刻またはスケジュールあるいはその両方もまた設定することができる。例えば、複製プログラム１２０ａは、カートリッジ１２２ａを「複製する」に設定し、午前１：００などの複製が行われる時刻を含ませるか、または、２週間に１回、午後２：００に複製が行われるスケジュールを含ませることができる。別の実施形態では、複製プログラム１２０ａは、カートリッジ１２２ａを「複製する」に設定したときに複製を始めるように構成することができる。
【００２７】
図３は、本発明の一実施形態によって、あるテープ・ドライブから別のテープ・ドライブへデータを複製するための操作ステップを示すフローチャートである。ここでも、説明の目的で、カートリッジ１２２ａからテープ・ドライブ１０４ｂ内のカートリッジ１２２ｂへデータを複製するために複製プログラム１２０ａがテープ・ドライブ１０４ａ上で動作することに関して図３を論じるが、図３の操作ステップが複製プログラム１２０ｂによって、テープ・ドライブ１０４ｂからテープ・ドライブ１０４ａへ、または分散データ処理環境１００内の任意の他のタイプのデバイス間で、あるいはその両方でデータを複製するために行われてもよいことが理解されるべきである。
【００２８】
一実施形態では、図３の操作ステップは、ホスト・コンピュータ１０２のユーザまたはバックアップ・プログラムによって始めてもよい。別の実施形態では、複製プログラム１２０ａに、複製を始める時刻が予め設定されていてもよい。さらに別の実施形態では、複製プログラム１２０ａは、カートリッジ１２２ａに新しいデータが書き込まれるたびにカートリッジ１２２ａの複製を始めてもよい。
【００２９】
ステップ３０２で、複製プログラム１２０ａは、カートリッジ１２２ａが「複製する」に設定されているか判断する。この実施形態では、複製プログラム１２０ａはメモリ・チップ１２６ａにアクセスして、複製ビットの値が「０」（すなわち、複製しない）または「１」（すなわち、複製する）のどちらに設定されているか判断する。ステップ３０２で複製プログラム１２０ａが、カートリッジ１２２ａが「複製する」に設定されていない（すなわち、複製ビット値が「０」）と判断した場合は、図３の操作ステップは終了する。
【００３０】
ステップ３０２で複製プログラム１２０ａが、カートリッジ１２２ａが「複製する」に設定されている（すなわち、複製ビット値が「１」）と判断した場合は、ステップ３０４で、必要なら、複製プログラム１２０ａがカートリッジ１２２ａの複製ステータスを「ｎｏ（未複製）」に設定する。この実施形態では、カートリッジ１２２ａの複製ステータスは、メモリ・チップ１２６ａ内の指定された複製ステータス・ビットを使用してカートリッジ１２２ａのデータが正常に複製されたか否かを示す。したがって、複製プログラム１２０ａは、後続のステップで複製プロセス中にエラーがある場合にカートリッジ１２２ａが「ｎｏ」という適切な複製ステータスを有するように、データを複製する前にカートリッジ１２２ａの複製ステータスを「ｎｏ」に設定する。この実施形態では、カートリッジ１２２ａが以前に複製されたデータを含む場合には、複製プログラム１２０ａはカートリッジ１２２ａの複製ステータスを「ｙｅｓ（複製済み）」（すなわち、複製ステータスのビット値が「１」）から「ｎｏ」（すなわち、複製ステータスのビット値が「０」）に変更してもよく、カートリッジ１２２ａが新しいカートリッジである場合は、複製プログラム１２０ａはカートリッジ１２２ａの初期複製ステータスを「ｎｏ」（すなわち、複製ステータスのビット値が「０」）に設定してもよく、カートリッジ１２２ａが以前に複製されたデータを含まず、複製ステータスが「ｎｏ」（すなわち、複製ステータスのビット値が「０」）である場合は、複製プログラム１２０ａはカートリッジ１２２ａの複製ステータスを変更する必要はない。
【００３１】
ステップ３０６で、複製プログラム１２０ａはテープ・ドライブ１０４ａを複製用に準備する。この実施形態では、ネットワーク・ポート１２４ａは２つのＳＣＳＩ／ファイバ・ネットワーク・ポートを備える。複製プログラム１２０ａはＳＣＳＩ／ファイバ・ネットワーク・ポートの一方をターゲット・モードからイニシエータ・モードに変更し、そのモードではテープ・ドライブ１０４ａが、ホスト・コンピュータ１０２またはホスト・コンピュータ１０６などの中間ホストなしでテープ・ドライブ１０４ｂに直接接続することができる。他方のＳＣＳＩ／ファイバ・ネットワーク・ポートはターゲット・モードを維持し、ホスト・コンピュータ１０２などのホスト・システムからコマンドの受信を続ける。
【００３２】
複製プログラム１２０ａはまた、カートリッジ１２２ｂがテープ・ドライブ１０４ｂにロードされているか確認する。この実施形態では、複製プログラム１２０ａは、テープ・ドライブ１０４ｂに問い合わせて、テープ・ドライブ１０４ｂのステータス、およびロードされているカートリッジがあれば、そのカートリッジのステータスを判断する。カートリッジ１２２ｂがすでにテープ・ドライブ１０４ｂにロードされている（すなわち、バーコード、ファームウェア、カートリッジ・タグなどで特定されたとおりに書き込み先カートリッジがロードされている）場合は、テープ・ドライブ１０４ｂは、さらにマウント操作を追加する必要はない。カートリッジ１２２ｂがテープ・ドライブ１０４ｂにロードされていない場合は、複製プログラム１２０ａはテープ・ドライブ１０４ｂまたは適切なテープ・ライブラリあるいはその両方に、カートリッジ１２２ｂをロードしてマウントするように求めるリクエストを送る。別の実施形態では、複製プログラム１２０ａは、複製を続行する前に、ユーザにカートリッジを挿入するように促すための通知をホスト・コンピュータ１０６に送ってもよい。
【００３３】
一実施形態では、カートリッジ１２２ｂは、カートリッジ１２２ｂに関連付けられるカートリッジ１２２ａに対応するバーコードを読み取ることによって選択される。例えば、それより前の時点でカートリッジ１２２ａがカートリッジ１２２ｂにすでにデータを書き込んでいた場合は、複製プログラム１２０ａは、カートリッジ１２２ｂの対応するデータをすべて保持するためにカートリッジ１２２ｂをテープ・ドライブ１０４ｂにロードするように求めるリクエストを送ることができる。バーコード情報は、例えば、データベース１２８ａまたはデータベース１２８ｂあるいはその両方に記憶することができる。複製プログラム１２０ａはまた、カートリッジのデータがホストによって記憶されたのか、既存のカートリッジのバックアップなのかを示すようにカートリッジのステータスを設定することもできる。
【００３４】
一実施形態では、複製プログラム１２０ａはメモリ・チップ１２６ａにフラグまたはマーカをセットして、新しく書き込まれたデータ、またはホスト・コンピュータ１０２などのホスト・コンピュータによってバックアップ用に選択されているデータの位置を指示または規定する。一例では、複製プログラム１２０ａはバックアップされる特定のファイルのために、ファイルの先頭アドレスおよび末尾アドレス（例えば、バイト３００から４２０）にマーカなどのフラグをセットしてもよい。別の実施形態では、テープ・ドライブ１０４ａによるカートリッジ１２２ａへのデータ書き込みの間、ホスト・コンピュータ１０２がメモリ・チップ１２６ａにフラグまたはマーカをセットしてもよい。一実施形態では、フラグがセットされた後に、複製プログラム１２０ａが次のステップに進む。
【００３５】
ステップ３０８で、複製プログラム１２０ａはカートリッジ１２２ａからカートリッジ１２２ｂにネットワーク１１０を介してデータを送信する。この実施形態では、複製プログラム１２０ａはカートリッジ１２２ａのメモリ・チップ１２６ａのフラグを見つけ、フラグとフラグの間に置かれたデータを、カートリッジ１２２ｂに記憶するためにテープ・ドライブ１０４ｂに送る。別の実施形態では、複製プログラム１２０ａが、カートリッジ１２２ａに置かれたデータの一部または全部をテープ・ドライブ１０４ｂに送信し、複製プログラム１２０ｂがそのデータを受け取って、フラグ付けされているデータのみをカートリッジ１２２ｂに書き込む。さらに別の実施形態では、複製プログラム１２０ａはカートリッジ１２２ａからすべてのデータを、カートリッジ１２２ｂ、テープ・ドライブ１０４ｂにロードされている複数のカートリッジ、または図示されていないテープ・ドライブを使用する他のカートリッジに書き込まれるように送信してもよい。
【００３６】
一実施形態では、複製プログラム１２０ａは複製のステータスを表示する。例えば、複製プログラム１２０ａは「複製中」または「複製完了」のステータスを、ホスト・コンピュータ１０２、ホスト・コンピュータ１０６、テープ・ドライブ１０４ａおよび１０４ｂ、またはテープ・ライブラリ、あるいはそれらの組合せに表示してもよい。ステータスはユーザに対する通知メッセージとして表示されてもよいし、または記録されてもよいし、あるいはその両方でもよい。
【００３７】
ステップ３１０で、複製プログラム１２０ａは、送信されたデータがテープ・ドライブ１０４ｂによって受け取られて、カートリッジ１２２ｂに正常に複製されたか判断する。この実施形態では、複製プログラム１２０ａが複製プログラム１２０ｂに、データが受け取られてカートリッジ１２２ｂに書き込まれているか判断するように問い合わせ、次に複製プログラム１２０ｂがそれを複製プログラム１２０ａに報告する。
【００３８】
ステップ３１０で複製プログラム１２０ａが、送信されたデータがテープ・ドライブ１０４ｂに受け取られてカートリッジ１２２ｂに正常に複製されなかったと判断した場合には、ステップ３１４で、複製プログラム１２０ａが複製エラーを提示する。この実施形態では、複製プログラム１２０ａは複製エラーをステータスとして提示し、このステータスがホスト・コンピュータ１０２および１０６、テープ・ドライブ１０４ａおよび１０４ｂ、またはテープ・ライブラリ、あるいはそれらの組合せに表示され得る。送信されたデータのカートリッジ１２２ｂへの複製が失敗する原因は、例えば、ネットワーク１１０を介したテープ・ドライブ１０４ａとテープ・ドライブ１０４ｂの間のデータの転送が中断すること（例えば、接続の故障またはカートリッジ１２２ａの機械的故障あるいはその両方）、または、カートリッジ１２２ｂにデータを書き込む際に発生するエラー（例えば、カートリッジ１２２ｂの空きスペースの不足、カートリッジ１２２ｂに壊れたデータがある、またはカートリッジ１２２ｂの機械的故障、あるいはそれらの組合せ）、あるいはその両方である。複製プログラム１２０ａによって提示される複製エラーは、エラーの現象ならびに解決策（例えば、他のテープ・カートリッジをロードする）を含んでもよい。
【００３９】
ステップ３１０で複製プログラム１２０ａが、送信されたデータがテープ・ドライブ１０４ｂに受け取られてカートリッジ１２２ｂに正常に複製されたと判断した場合には、ステップ３１２で、複製プログラム１２０ａはカートリッジ１２２ａおよび１２２ｂのステータスを「複製済み」に設定する。この実施形態では、複製プログラム１２０ａはメモリ・チップ１２６ａおよび１２６ｂのにステータスを設定する。これにより、複製プログラム１２０ａが将来、ステータスを検索して、カートリッジ１２２ａが複製済みであるか、および、カートリッジ１２２ｂが複製されたデータを含んでいるか判断することができる。ステータスはまた、データベース１２８ａおよび１２８ｂに記憶することもできる。ステータスはさらに、カートリッジ１２２ａおよび１２２ｂのバーコード、および複製済みのファイルのアドレスに関連付けることができる。
【００４０】
したがって、図３の操作ステップを行うことによって、第１のテープ・ドライブにロードされている第１のカートリッジに記憶されているデータが、全体的または部分的に、第２のテープ・ドライブにロードされている第２のカートリッジへ、ネットワークを介して、直接（すなわち、ホストなしで）複製され得る。この実施形態では、テープ・ドライブ１０４ａに置かれた複製プログラム１２０ａが、ホスト・コンピュータ１０２に置かれたバックアップ・プログラムから、カートリッジへデータ（例えば、アプリケーション・データのバックアップ）を書き込むように促すプロンプトを受け取ってもよい。複製プログラム１２０ａは、新しいデータがカートリッジ１２２ａに書き込まれた後に、カートリッジのメモリおよびステータスを更新してもよい。複製プログラム１２０ａは次に、カートリッジ１２２ａ上の新しい情報を複製するか判断し、テープ・ドライブ１０４ａおよび１０４ｂを複製のために準備し、ホスト・コンピュータ１０２またはホスト・コンピュータ１０６を使用せずにネットワーク１１０を介してカートリッジ１２２ａからカートリッジ１２２ｂへ新しいデータを送信してもよい。最後に、複製プログラム１２０ａは、カートリッジ１２２ａのステータスを、それが複製済みであることを示すように設定し、カートリッジ１２２ｂのステータスを、データが別のカートリッジから複製されたことを示すように設定してもよい。
【００４１】
図４は、本発明の例示的一実施形態によるコンピュータ４００の構成要素のブロック図であり、ホスト・コンピュータ１０２、ホスト・コンピュータ１０６、テープ・ドライブ１０４ａおよびテープ・ドライブ１０４ｂを表す。図４は一実装の単なる説明であり、異なる実施形態が実装され得る環境に関する限定を何ら暗示しない。図示される環境に、多くの変更が施されてもよい。
【００４２】
コンピュータ４００は通信ファブリック(communications fabric)４０２を含み、これが、コンピュータ・プロセッサ４０４、メモリ４０６、持続性ストレージ４０８、通信ユニット４１０、および入出力（Ｉ／Ｏ）インタフェース４１２の間に通信を提供する。通信ファブリック４０２は、プロセッサ（マイクロプロセッサ、通信プロセッサ、およびネットワーク・プロセッサなど）、システム・メモリ、周辺デバイス、およびシステム内の他のあらゆるハードウェア構成要素の間でデータまたは制御情報あるいはその両方を受け渡すために設計された任意のアーキテクチャで実装することができる。例えば、通信ファブリック４０２は１つまたは複数のバスで実装されてもよい。
【００４３】
メモリ４０６および持続性ストレージ４０８は、コンピュータ可読ストレージ媒体である。この実施形態では、メモリ４０６はランダム・アクセス・メモリ（ＲＡＭ）４１４およびキャッシュ・メモリ４１６を含む。一般に、メモリ４０６は、任意の適切な揮発性または不揮発性コンピュータ可読ストレージ媒体を含むことができる。ソフトウェアおよびデータ４２２は、メモリ４０６のうち１つまたは複数のメモリを介したプロセッサ４０４によるアクセスまたは実行あるいはその両方のために、持続性ストレージ４０８に記憶される。テープ・ドライブ１０４ａおよび１０４ｂに関して、ソフトウェアおよびデータ４２２は、複製プログラム１２０ａ、複製プログラム１２０ｂ、データベース１２８ａおよびデータベース１２８ｂのそれぞれを表す。
【００４４】
この実施形態では、持続性ストレージ４０８は磁気ハードディスク・ドライブを含む。代替として、または磁気ハードディスク・ドライブに加えて、持続性ストレージ４０８はプログラム命令もしくはデジタル情報を記憶することのできる、固体ハード・ドライブ、半導体ストレージ・デバイス、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、フラッシュ・メモリ、または、他の任意のコンピュータ可読ストレージ媒体を含むことができる。
【００４５】
また、持続性ストレージ４０８によって使用される媒体は、取り外し可能であってもよい。例えば、取り外し可能ハード・ドライブが持続性ストレージ４０８に使用されてもよい。他の例には、やはり持続性ストレージ４０８の一部である別のコンピュータ可読ストレージ媒体への転送のためにドライブに挿入される、光ディスクおよび磁気ディスク、サム・ドライブ(thumb drive)、およびスマートカードが含まれる。
【００４６】
通信ユニット４１０は、これらの例において、他のデータ処理システムまたはデバイスとの通信に備える。これらの例では、通信ユニット４１０は１つまたは複数のネットワーク・インタフェース・カードを含む。通信ユニット４１０は、物理通信リンクおよび無線通信リンクのどちらかまたは両方を使用して通信を提供してもよい。ソフトウェアおよびデータ４２２は通信ユニット４１０を通して持続性ストレージ４０８にダウンロードしてもよい。
【００４７】
Ｉ／Ｏインタフェース４１２は、コンピュータ４００に接続されていることのある他のデバイスを使用したデータの入力および出力を可能にする。例えば、Ｉ／Ｏインタフェース４１２は、キーボード、キーパッド、タッチ・スクリーン、または何らかの他の適切な入力デバイス、あるいはそれらの組合せなどの外部デバイス４１８への接続を提供してもよい。外部デバイス４１８はまた、例えば、サム・ドライブ、携帯型光ディスクまたは磁気ディスク、およびメモリ・カードなどの携帯型コンピュータ可読ストレージ媒体を含むことができる。ソフトウェアおよびデータ４２２は、そのような携帯型コンピュータ可読ストレージ媒体に記憶することができ、Ｉ／Ｏインタフェース４１２を介して持続性ストレージ４０８にロードすることができる。Ｉ／Ｏインタフェース４１２はまた、ディスプレイ４２０に接続されている。
【００４８】
ディスプレイ４２０はユーザに対してデータを表示する機構を提供し、例えば、コンピュータ・モニタであってもよい。
【００４９】
本明細書に記載されるプログラムは、本発明の特定の実施形態での実装先の適用例に基づいて特定される。ただし、本明細書での特定のプログラム命名法は単に便宜上のものであり、よって、本発明は、そのような命名法によって特定または暗示あるいはその両方が行われる何らかの特定の適用例のみで使用されるように限定されるべきではない。
【００５０】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を行わせるためのコンピュータ可読プログラム命令を有する１つまたは複数のコンピュータ可読ストレージ媒体を含んでもよい。
【００５１】
コンピュータ可読ストレージ媒体は、命令実行デバイスに使用されるための命令を保持および記憶することのできる有形デバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電気磁気ストレージ・デバイス、半導体ストレージ・デバイス、またはそれらの任意の適切な組合せであってもよいが、それに限定されない。より具体的なコンピュータ可読ストレージ媒体の例には、携帯式コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、携帯式コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録された溝内の突起構造などの機械的に符号化されたデバイス、およびそれらの任意の適切な組合せが含まれるが、これですべて網羅されているわけではない。コンピュータ可読ストレージ媒体は、本明細書で使用されるとき、それ自体が、無線波もしくはその他の自由に伝播する電磁波、導波管もしくはその他の送信媒体を通って伝播する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、またはワイヤを通って送信される電気信号などの一時的信号であるとは見なされない。
【００５２】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング／処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワークもしくは無線ネットワークあるいはそれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線送信ケーブル、光送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを備えてもよい。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
【００５３】
本発明の操作を行うためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存の命令、マイクロコード、ファームウェア命令、状態設定データ、または、１つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードもしくはオブジェクト・コードのいずれかであってもよく、これらの言語は、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向言語、およびプログラミング言語Ｃもしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む。コンピュータ可読プログラム命令は、独立型ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されてもよいし、一部がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で実行されてもよいし、または全体がリモート・コンピュータもしくはサーバ上で実行されてもよい。後者の場合、ユーザのコンピュータにローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通してリモート・コンピュータが接続されていてもよいし、外部コンピュータへの接続が作られてもよい（例えば、インターネット・サービス・プロバイダを使用してインターネットを経由する）。いくつかの実施形態では、本発明の態様を実施するために、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナル化してもよい。
【００５４】
本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら、本発明の態様について本明細書で説明する。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方の複数ブロックの組合せがコンピュータ可読プログラム命令によって実装され得ることが可能なことが理解される。
【００５５】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定される機能／動作を実装するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または、その他のプログラム可能なデータ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定される機能／動作の態様を実装する命令を含んだ製造品を備えるように、コンピュータ可読ストレージ媒体に記憶され、コンピュータ、プログラム可能なデータ処理装置、またはその他のデバイス、あるいはそれらの組合せに特定の様式で機能するように指示することのできるものであってもよい。
【００５６】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定された機能／動作を実装するように、コンピュータ実装プロセスを作るために、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行させるものであってもよい。
【００５７】
図の中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考え得る実装のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の中の各ブロックは、指定された論理機能を実装するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表してもよい。いくつかの代替実装では、ブロックに記載される機能は、図に示される以外の順序で行われてもよい。例えば、関与する機能に応じて、連続して示される２つのブロックが実際にはほぼ同時に実行されてもよいし、または、時にはブロックが逆の順序で実行されてもよい。また、注目すべき点として、ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびに、ブロック図またはフローチャート図あるいはその両方の複数ブロックの組合せが、指定された機能を行う専用ハードウェアに基づくシステムによって実装され得るし、または、専用ハードウェアとコンピュータ命令の組合せの役割を行うか遂行することもできる。
【００５８】
本発明の様々な実施形態を、説明の目的で記述してきたが、包括的であることも、開示された実施形態に限定されることも意図されない。当業者には、本発明の範囲および趣旨から逸脱することなく、多くの変更および変形が明らかになる。本明細書で使用する用語は、実施形態の原理、実用的な適用例もしくは市場に見られる技術の技術的改善を最適に説明するように、または、本明細書に開示される実施形態を当業者以外の者が理解できるように選択された。
【図１】
0006608913.tif 000002
【図２】
0006608913.tif 000003
【図３】
0006608913.tif 000004
【図４】
0006608913.tif 000005