特許第6608913号(P6608913)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
特許6608913テープ・カートリッジ・データを複製するための方法、コンピュータ・プログラム、およびコンピュータ・システム
<>
  • 特許6608913-テープ・カートリッジ・データを複製するための方法、コンピュータ・プログラム、およびコンピュータ・システム 図000002
  • 特許6608913-テープ・カートリッジ・データを複製するための方法、コンピュータ・プログラム、およびコンピュータ・システム 図000003
  • 特許6608913-テープ・カートリッジ・データを複製するための方法、コンピュータ・プログラム、およびコンピュータ・システム 図000004
  • 特許6608913-テープ・カートリッジ・データを複製するための方法、コンピュータ・プログラム、およびコンピュータ・システム 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6608913
(24)【登録日】2019年11月1日
(45)【発行日】2019年11月20日
(54)【発明の名称】テープ・カートリッジ・データを複製するための方法、コンピュータ・プログラム、およびコンピュータ・システム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20191111BHJP
【FI】
   G06F3/06 304H
   G06F3/06 303C
   G06F3/06 301X
【請求項の数】8
【全頁数】17
(21)【出願番号】特願2017-513113(P2017-513113)
(86)(22)【出願日】2015年9月15日
(65)【公表番号】特表2017-528831(P2017-528831A)
(43)【公表日】2017年9月28日
(86)【国際出願番号】IB2015057071
(87)【国際公開番号】WO2016042465
(87)【国際公開日】20160324
【審査請求日】2018年5月11日
(31)【優先権主張番号】14/489,697
(32)【優先日】2014年9月18日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】フライターグ、バーンド
(72)【発明者】
【氏名】クリック、フランク
【審査官】 田名網 忠雄
(56)【参考文献】
【文献】 米国特許出願公開第2013/0271865(US,A1)
【文献】 特開2007−287152(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06−3/08
G06F 13/10−13/14
G11B 5/86
(57)【特許請求の範囲】
【請求項1】
テープ・カートリッジに記憶されたデータを複製するための方法であって、
複製すべき第1のテープ・カートリッジを第1のテープ・ドライブによって特定するステップであって、前記第1のテープ・カートリッジが前記第1のテープ・ドライブにロードされている、前記ステップと、
第2のテープ・カートリッジへ複製するために前記第1のテープ・カートリッジに記憶されているデータを前記第1のテープ・ドライブによって特定するステップであって、前記第2のテープ・カートリッジが第2のテープ・ドライブにロードされている、前記ステップと、
前記第1のテープ・カートリッジに記憶されている前記特定されたデータを、前記第1のテープ・ドライブのイニシエータ・ポートから前記第2のテープ・ドライブのターゲット・ポートへ前記第1のテープ・ドライブによって送信するステップと
前記第1のテープ・カートリッジのメモリ内のビットの値を、前記第1のテープ・カートリッジに記憶されているデータを複製すべきか否か示すように設定するステップと
を含み、
複製すべき第1のテープ・カートリッジを第1のテープ・ドライブによって特定するステップが
少なくとも部分的には前記第1のテープ・カートリッジのメモリ内の前記ビットの値に基づいて、前記複製すべき第1のテープ・カートリッジを前記第1のテープ・ドライブによって特定するステップを含む、
方法。
【請求項2】
前記第1のテープ・ドライブのターゲット・ポートを、前記第1のテープ・ドライブの前記イニシエータ・ポートとして働くように構成するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のテープ・ドライブのイニシエータ・ポートを、前記特定されたデータを送信した後に前記第1のテープ・ドライブのターゲット・ポートとして働くように構成するステップをさらに含む、請求項1に記載の方法。
【請求項4】
第2のテープ・カートリッジへ複製するために前記第1のテープ・カートリッジに記憶されているデータを前記第1のテープ・ドライブによって特定するステップが、
前記第1のテープ・カートリッジ内のメモリを読み出して第1のマーカおよび第2のマーカを特定するステップを含み、
前記第1のマーカが、前記第2のテープ・カートリッジに複製するために前記第1のテープ・カートリッジに記憶されているデータの先頭ストレージ・アドレスを定め、前記第2のマーカが、前記第2のテープ・カートリッジに複製するために前記第1のテープ・カートリッジに記憶されているデータの末尾ストレージ・アドレスを定める、請求項1に記載の方法。
【請求項5】
前記第2のテープ・カートリッジを前記第2のテープ・ドライブにロードするよう求めるリクエストを前記第1のテープ・ドライブによって前記第2のテープ・ドライブに送るステップをさらに含み、
前記第1のテープ・カートリッジに対応し、さらに前記第2のテープ・カートリッジに関連付けられるバーコードを読み取ることによって前記第1のテープ・ドライブによって前記第2のテープ・カートリッジが選択される、請求項1に記載の方法。
【請求項6】
テープ・カートリッジに記憶されたデータを複製するためのコンピュータ・プログラムであって、
複製すべき第1のテープ・カートリッジを特定することであって、前記第1のテープ・カートリッジが第1のテープ・ドライブにロードされている、前記特定することを行うプログラム命令と、
第2のテープ・カートリッジへ複製するために、前記第1のテープ・カートリッジに記憶されているデータを特定することであって、前記第2のテープ・カートリッジが第2のテープ・ドライブにロードされている、前記特定することを行うプログラム命令と、
前記第1のテープ・カートリッジに記憶されている前記特定されたデータを、前記第1のテープ・ドライブのイニシエータ・ポートから前記第2のテープ・ドライブのターゲット・ポートへ送信するプログラム命令と
前記第1のテープ・カートリッジのメモリ内のビットの値を、前記第1のテープ・カートリッジに記憶されているデータを複製すべきか否か示すように設定するプログラム命令と
を第1のテープ・ドライブに実行させ、
複製すべき第1のテープ・カートリッジを特定する前記プログラム命令が、
少なくとも部分的には前記第1のテープ・カートリッジのメモリ内の前記ビットの値に基づいて前記複製すべき第1のテープ・カートリッジを特定するプログラム命令を含む、
コンピュータ・プログラム。
【請求項7】
前記第1のテープ・ドライブのターゲット・ポートを、前記第1のテープ・ドライブの前記イニシエータ・ポートとして働くように構成するプログラム命令をさらに含む、請求項に記載のコンピュータ・プログラム。
【請求項8】
テープ・カートリッジに記憶されたデータを複製するためのコンピュータ・システムであって、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読ストレージ媒体と、
前記1つまたは複数のコンピュータ・プロセッサのうちの少なくとも1つによって実行されるために前記コンピュータ可読ストレージ媒体に記憶されたプログラム命令とを含み、前記プログラム命令が、
複製すべき第1のテープ・カートリッジを特定することであって、前記第1のテープ・カートリッジが第1のテープ・ドライブにロードされている、前記特定することを行うプログラム命令と、
第2のテープ・カートリッジへ複製するために、前記第1のテープ・カートリッジに記憶されているデータを特定することであって、前記第2のテープ・カートリッジが第2のテープ・ドライブにロードされている、前記特定することを行うプログラム命令と、
前記第1のテープ・カートリッジに記憶されている前記特定されたデータを、前記第1のテープ・ドライブのイニシエータ・ポートから前記第2のテープ・ドライブのターゲット・ポートへ送信するプログラム命令と
前記第1のテープ・カートリッジのメモリ内のビットの値を、前記第1のテープ・カートリッジに記憶されているデータを複製すべきか否か示すように設定するプログラム命令と
を含
複製すべき第1のテープ・カートリッジを特定する前記プログラム命令が、
少なくとも部分的には前記第1のテープ・カートリッジのメモリ内の前記ビットの値に基づいて前記複製すべき第1のテープ・カートリッジを特定するプログラム命令を含む、
コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般にデータ複製に関し、より詳細には磁気テープ・カートリッジの複製に関する。
【背景技術】
【0002】
磁気テープ・データ・ストレージ・システムは、デジタル情報を磁気テープに記憶する。磁気テープは通常、カートリッジおよびカセットに収納されている。データの書き込みおよび読み出しにはテープ・ドライブが使用される。オートローダおよびテープ・ライブラリによって、カートリッジの取り扱いを自動化することができる。
【0003】
磁気テープの文脈では、カセットという用語は通常、1本の磁気テープと2つのリールを保持する筐体を指す。カートリッジという用語はそれよりも汎用的であるが、多くの場合、プラスチック製筐体内の1つのテープ・リールを意味する。
【0004】
テープ・ドライブ(すなわち、駆動機構またはデッキ)は、精密制御されるモータを使用して、一方のリールから他方のリールへテープを巻き、そのときに読み出し/書き込みヘッドを通過させる。別のタイプのテープ・カートリッジは、特殊なリールに巻き付けられたテープの連続ループを有し、このリールでは、テープがリールの中央から引き出され、次に縁部に巻き付けられることが可能である。このタイプは、テープ・ドライブの内部に巻き取りリールがないという点でカセットに類似する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
【課題を解決するための手段】
【0006】
本発明の実施形態は、1つまたは複数のコンピューティング・デバイスのテープ・カートリッジに記憶されたデータを複製するための方法、コンピュータ・プログラム製品、およびシステムを開示する。一実施形態では、複製すべき第1のテープ・カートリッジを1つまたは複数のコンピュータ・プロセッサが特定する。第1のテープ・カートリッジは第1のテープ・ドライブにロードされている。第2のテープ・カートリッジへ複製するために、第1のテープ・カートリッジに記憶されているデータが特定される。第2のテープ・カートリッジは第2のテープ・ドライブにロードされている。特定されたデータが、第1のテープ・ドライブのイニシエータ・ポートから第2のテープ・ドライブのターゲット・ポートへ送信される。
【図面の簡単な説明】
【0007】
図1】本発明の一実施形態による分散データ処理環境を示す機能ブロック図である。
図2】本発明の一実施形態によって、図1の分散データ処理環境内のあるテープ・ドライブから別のテープ・ドライブへのデータ複製のためにカートリッジを準備するための操作ステップを示すフローチャートである。
図3】本発明の一実施形態によって、図1の分散データ処理環境内のテープ・ドライブで、あるテープ・ドライブから別のテープ・ドライブへデータを複製するための操作ステップを示すフローチャートである。
図4】本発明の一実施形態による図1のコンピューティング・システムの構成要素のブロック図である。
【発明を実施するための形態】
【0008】
現在のバックアップ環境では、長期的で費用効果の高いデータ・ストレージとして、通常、テープ・ストレージが使用される。ディザスタ・リカバリ(disaster recovery)戦略の一部として、企業がデータを複数の場所、多くの場合は異なる国々に記憶することが必要なことがある。データ・ストレージが危険にさらされた場合には、ホスト・アプリケーションが自動的に代わりのストレージ場所に切り替わることがある。データを別のシステムへ自動的に転送するためのデータの複製またはミラーリングを可能にするために、通常、ディスク・ストレージおよび仮想ストレージ・システム(例えば、仮想テープ・ライブラリ)が使用される。
【0009】
本発明の実施形態は、あるテープ・カートリッジから別のテープ・カートリッジへ、中間ホストの必要なくデータを複製するためのシステムおよび方法を提供する。複製中のホストの必要をなくすことは、ネットワーク・トラフィックが高いときにデータ転送のボトルネックを回避するために役立ち得る。さらに、本発明の実施形態は、複製されるデータの量に関して柔軟性を高める。これは、それ以外の方法ではテープ・カートリッジの全データを複製するために浪費される可能性のある無駄な時間およびリソースをなくすために役立つ。
【0010】
本発明の実施形態の実装は様々な形をとってもよく、下記に、例示的実装の詳細について図を参照しながら説明する。
【0011】
図1は、本発明の一実施形態による、全体的に100と指示される分散データ処理環境を示す機能ブロック図である。図1は、一実装の単なる説明であり、様々な実施形態が実装され得る環境に関していかなる限定も含意しない。図示された環境には、当業者によって、特許請求の範囲に記載されるとおりの本発明の範囲を逸脱することなく多くの変更が加えられ得る。
【0012】
分散データ処理環境100は、ホスト・コンピュータ102、ホスト・コンピュータ106、テープ・ドライブ104a、テープ・ドライブ104bを含み、そのすべてがネットワーク110を介して相互接続されている。ネットワーク110は、例えば、遠隔通信ネットワーク、ローカル・エリア・ネットワーク(LAN)、インターネットなどの広域ネットワーク(WAN)、またはそれら3つの組合せであることができ、有線、無線、または光ファイバ接続とすることができる。ネットワーク110は、音声、データ、および動画の情報を含むマルチメディア信号を含めたデータ、音声、または動画、あるいはそれらの組合せの信号を受信および送信することのできる、1つまたは複数の有線または無線あるいその両方のネットワークを含んでもよい。
【0013】
ホスト・コンピュータ102および106は、管理サーバ、ウェブ・サーバ、または、データを受信および送信することのできる他の任意の電子デバイスもしくはコンピューティング・システムであってもよい。他の実施形態では、ホスト・コンピュータ102および106は、クラウド・コンピューティング環境でのように、複数のコンピュータをサーバ・システムとして利用するサーバ・コンピューティング・システムを表してもよい。別の実施形態では、ホスト・コンピュータ102および106は、ネットワーク110を介してテープ・ドライブ104aおよびテープ・ドライブ104bと通信することのできる、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、携帯情報端末(PDA)、スマートフォン、または任意のプログラム可能電子デバイスであってもよい。別の実施形態では、ホスト・コンピュータ102は、継ぎ目のないリソースの単一のプールとして働く、クラスタ化されたコンピュータおよび構成要素を利用するコンピューティング・システムを表す。一定の実施形態では、クライアントコンピュータ102および106は、ネットワーク110を通してアクセスされたときに継ぎ目のないリソースの単一プールとして働く、クラスタ化されたコンピュータおよび構成要素を利用するコンピューティング・システムを表す。例えば、そのような実施形態はデータセンタ、クラウド・コンピューティング、ストレージ・エリア・ネットワーク(SAN)、およびネットワーク接続型ストレージ(NAS)の適用例で使用され得る。
【0014】
テープ・ドライブ104aおよびテープ・ドライブ104bは、磁気テープのデータを読み出しおよび書き込みできるデータ・ストレージ・デバイスである。いくつかの実施形態では、磁気テープは取り外し可能なカートリッジ内に保存される。磁気テープ・ドライブは、電源コネクタ・ピン、磁気テープ・ライブラリへの接続を可能にするインタフェース、および、ネットワークへの別々のアドレスをもつ2つの別々の接続を含んでもよい。テープ・ドライブは、そのドライブがデータを書き込むことのできる磁気テープまたは磁気テープを収容したカートリッジ(例えばカートリッジ122a)のためのソケットもまた含む。いくつかの実施形態では、テープ・ドライブ104aおよび104bは、自動化されたシステムが新しいカートリッジの取り出しまたは挿入を行うことのできる、ライブラリの一部であってもよい。テープ・ドライブ104aおよび104bは、ネットワーク110を介してホスト・コンピュータ102および106と通信することができる。図示される環境では、テープ・ドライブ104aおよび104bは、それぞれの、複製プログラム120aおよび120b、カートリッジ122aおよび122b、ネットワーク・ポート124aおよび124b、ならびにデータベース128aおよび128bを含む。
【0015】
この例示的実施形態では、複製プログラム120aおよび120は、それぞれのカートリッジ122aおよび122b内に置かれたそれぞれのメモリ・チップ126aおよび126bをプログラムして、カートリッジ122aからカートリッジ122bへの、およびその逆の、ネットワーク110を介したデータ複製を可能にする。図示される分散データ処理環境100では、複製プログラム120aおよび複製プログラム120bは、それぞれテープ・ドライブ104aおよびテープ・ドライブ104bに常駐する。別の実施形態では、複製プログラム120aまたは複製プログラム120bあるいはその両方は、それぞれのホスト・コンピュータ102および106に置かれてもよい。さらに別の実施形態では、複製プログラム120aおよび複製プログラム120bは、テープ・ドライブ104aおよび104bにネットワーク110を介して接続されているテープ・ライブラリ(図示せず)内に置かれてもよい。複製プログラム120aおよび複製プログラム120bについて、図2および図3に関してさらに詳細に説明する。
【0016】
カートリッジ122aおよび122bは、データを記憶するために使用される磁気テープを格納するデバイスである。様々な実施形態で、カートリッジ122aおよび122bは、プラスチック製筐体内に、1つの磁気テープ・リール、2つの磁気テープ・リール、または当技術分野で知られる他の異形を含んでもよい。カートリッジ122aおよび122bは、それぞれのテープ・ドライブ104aおよび104bに手動で、または自動的に(例えば、自動化されたテープ・ライブラリでロボットによって)挿入することができ、その後データが、カートリッジ内の磁気テープに書き込まれてもよいし、または、カートリッジ内の磁気テープから読み出されてもよい。カートリッジ122aおよび122bは、それぞれ、メモリ・チップ126aおよび126bを含む。この例示的実施形態では、カートリッジ122aおよび122bは、リニア・テープオープン(LTO)カートリッジで実装される。一般に、任意の適切なタイプのテープ・カートリッジが使用されてもよい。
【0017】
メモリ・チップ126aおよび126bは、カートリッジ122aおよび122bを特定する情報ならびにテープ使用情報を記憶するために使用される。例えば、カートリッジ122aおよび122bがリニア・テープオープン(LTO)カートリッジであれば、メモリ・チップ126aおよび126bは様々なデータのアドレスおよびバイト範囲を含む1つまたは複数のテーブルを含んでもよく、それらのデータは、ファイル名、カートリッジ・バーコード、テープ・ディレクトリ・ページ、アプリケーション特定のページ、および、カートリッジ122aおよび122bのそれぞれに置かれたデータのための使用されていないメモリ位置などである。この実施形態では、メモリ・チップ126aおよび126bは、それぞれテープ・ドライブ104aおよび104bと通信する無線周波数識別(RDID)チップである。
【0018】
ネットワーク・ポート124aおよび124bは、テープ・ドライブ104aおよび104bからホスト・コンピュータ102および106へのネットワーク110を介したデータの転送を可能にする。ネットワーク・ポート124aおよび124bはまた、ターゲット・モードからイニシエータ・モードに切り替わり、テープ・ドライブ104aと104bの間のネットワーク110を介した直接通信を有効化することができる。様々な実施形態で、ネットワーク・ポート124aおよび124bのそれぞれは、それぞれテープ・ドライブ104aおよび104bとの間でのデータ転送のために2つ以上のポートを備える。例えば、ネットワーク・ポート124aおよび124bはそれぞれ、2つ以上のスモール・コンピュータ・システム・インタフェース(SCSI)/ファイバ・チャネル・ポート、2つ以上の伝送制御プロトコル(TCP)/インターネット・プロトコル(IP)のネットワーク・ポート、または、SCSI/ファイバ・チャネル・ポートおよびTCP/IPポートの組合せ、を備えることができる。ネットワーク・ポート124aおよび124bがそれぞれ2つ以上のSCSI/ファイバ・チャネル・ポートを備える場合は、1つのポートがターゲット・ポートとして(すなわち、ホスト・コンピュータ102またはホスト・コンピュータ106あるいはその両方からコマンドを受け取るように)構成されたままで、別のポートがイニシエータ・ポートとして(すなわち、テープ・ドライブ104aまたはテープ・ドライブ104bへコマンドを送信するように)構成されてもよい。単一のSCSI/ファイバ・チャネル・ポートおよび1つまたは複数のTCP/IPポートを使用するときは、SCSI/ファイバ・チャネル・ポートがターゲット・ポートとして構成されたままで、TCP/IPポートがイニシエータ・ポートとして構成されてもよい。
【0019】
この実施形態では、データベース128aおよび128bは、テープ・ドライブ104aおよび104bが直前にデータの書き込みまたは読み出しあるいはその両方を行ったカートリッジを記述的に示すバーコードおよび/または他のマーカを含む。データベース128aおよび128bはそれぞれ、テープ・ドライブ104aおよび104bによってアクセスおよび利用され得るデータを記憶することのできる任意のタイプのストレージ・デバイスおよびアーキテクチャで実装することができ、それらのデバイスは、リレーショナル・データベース、オブジェクト指向データベース、もしくはテーブルを有するデータベース・サーバ、ハードディスク・ドライブ、またはフラッシュ・メモリなどである。その他の実施形態では、データベース128aおよび128bはそれぞれ、テープ・ドライブ104aおよび104bのそれぞれの中の複数のストレージ・デバイスを表すことができる。
【0020】
説明の目的で、本発明の実施形態を実装したときに存在し得る他のコンピュータ・システムおよび要素が図1には示されていないことが理解されるべきである。例えば、図1には2つのホスト・コンピュータ102および106ならびに2つのテープ・ドライブ104aおよび104bが示されているが、分散データ処理環境100は、追加のホスト・コンピュータまたは追加のテープ・ドライブあるいはその両方を含むこともでき、それらのドライブの間でデータが複製される。
【0021】
図2は、本発明の一実施形態によって、あるテープ・ドライブから別のテープ・ドライブへのデータ複製のためにカートリッジを準備するための操作ステップを示す、フローチャートである。説明の目的で、テープ・ドライブ104aからテープ・ドライブ104bへデータを複製するために複製プログラム120aがカートリッジ122aを準備することに関して図2を論じるが、図2の操作ステップが複製プログラム120bによって、テープ・ドライブ104bからテープ・ドライブ104aへ、または分散データ処理環境100内の任意の他のタイプのデバイス間で、あるいはその両方でデータを複製するために行われてもよいことが理解されるべきである。
【0022】
一実施形態では、カートリッジ122aがテープ・ドライブ104aに挿入されると複製プログラム120aが開始される。別の実施形態では、ホスト・コンピュータ102のユーザに手動入力が促されると複製プログラム120aが開始される。さらに別の実施形態では、ホスト・コンピュータ102に置かれたバックアップ・プログラムによって要求されると複製プログラム120aが開始される。さらに別の実施形態では、テープ・ドライブ104aに置かれたデータベース128aに記憶された所定の時刻に複製プログラム120aが開始される。
【0023】
ステップ202で、複製プログラム120aがメモリ・チップ126aを読み出して、カートリッジ122aにすでに記憶されているデータに関する情報にアクセスし、この情報によってテープ・ドライブ104aはデータを正しい位置に書き込むことができる。この実施形態では、複製プログラム120aは取得した情報をデータベース128aに記憶する。メモリ・チップ126aに置かれたそのような情報の例には、ファイル名のリスト、各ファイルのサイズ、カートリッジ122aの各ファイルのアドレス(例えば、カートリッジ122aのバイト100で始まりバイト200で終わる)、未使用の空間の位置、カートリッジ122aのバーコード、カートリッジ122aの名前、または、当技術分野で知られたカートリッジ122aの他の記述的基準が含まれてもよい。別の実施形態では、ホスト・コンピュータ102などのホスト・コンピュータがメモリ・チップ126aを読み出してもよい。
【0024】
ステップ204で、複製プログラム120aが、カートリッジ・ステータスを「複製する」に変更するように求めるリクエストを受け取る。この実施形態では、複製プログラム120aはカートリッジ122aのステータスを「複製する」に変更するように求めるリクエストをホスト・コンピュータ102から受け取る。例えば、ホスト・コンピュータ102が、カートリッジ122aに書き込まれるデータをテープ・ドライブ104aに送るとき、カートリッジ122aに書き込まれるデータは、カートリッジ・ステータスを「複製する」に変更するように求めるリクエストもまた含んでもよい。別の実施形態では、ホスト・コンピュータ102は事前設定されたスケジュールを有することができ、そのスケジュールに従って、ホスト・コンピュータ102が、複製プログラム120aにカートリッジ122aを複製用に設定するように求めるリクエストを送る。さらに別の実施形態では、ホスト・コンピュータ102のユーザが、複製プログラム120aにカートリッジ122aを複製用に設定するように求めるリクエストの送信を始めてもよい。さらに別の実施形態では、ホスト・コンピュータ102に置かれたバックアップ・プログラムが、複製プログラム120aにカートリッジ122aを複製用に設定するように求めるリクエストの送信を始めてもよい。
【0025】
ステップ206で、複製プログラム120aが複製位置情報を受け取り、その複製位置情報をメモリ・チップ126aに記憶する。この実施形態では、複製プログラム120aがテープ・ドライブ104bおよびカートリッジ122bの複製位置情報をホスト・コンピュータ102から受け取る。別の実施形態では、カートリッジ122aは、外部RFIDチップ・リーダを介してテープ・ドライブ104bおよびカートリッジ122bの複製位置情報を受け取ることができる。
【0026】
ステップ208で、複製プログラム120aが、カートリッジ122aのカートリッジ・ステータスを「複製する」に更新する。この実施形態では、複製プログラム120aは、メモリ・チップ126a内の指定の複製ビットを「0」値の代わりに「1」値に設定することによって、カートリッジ122aのカートリッジ・ステータスを「複製する」に更新する。この実施形態では、複製プログラム120aは、カートリッジ122aを複製用に設定することを求めるリクエストをホスト・コンピュータ102から受け取ったことに応答して、カートリッジ122aのカートリッジ・ステータスを更新する。別の実施形態では、テープ・ドライブ104aに新しいカートリッジ(例えば、それまでにデータが記憶されていないカートリッジ)が挿入されたとき、または新しいカートリッジへの初回の書き込みのときに、すべての新しいカートリッジがデフォルトで複製されるように設定するように、複製プログラム120aが構成され得る。カートリッジ122aが複製されるように設定することに加えて、複製プログラム120aは、複製が行われる時刻またはスケジュールあるいはその両方もまた設定することができる。例えば、複製プログラム120aは、カートリッジ122aを「複製する」に設定し、午前1:00などの複製が行われる時刻を含ませるか、または、2週間に1回、午後2:00に複製が行われるスケジュールを含ませることができる。別の実施形態では、複製プログラム120aは、カートリッジ122aを「複製する」に設定したときに複製を始めるように構成することができる。
【0027】
図3は、本発明の一実施形態によって、あるテープ・ドライブから別のテープ・ドライブへデータを複製するための操作ステップを示すフローチャートである。ここでも、説明の目的で、カートリッジ122aからテープ・ドライブ104b内のカートリッジ122bへデータを複製するために複製プログラム120aがテープ・ドライブ104a上で動作することに関して図3を論じるが、図3の操作ステップが複製プログラム120bによって、テープ・ドライブ104bからテープ・ドライブ104aへ、または分散データ処理環境100内の任意の他のタイプのデバイス間で、あるいはその両方でデータを複製するために行われてもよいことが理解されるべきである。
【0028】
一実施形態では、図3の操作ステップは、ホスト・コンピュータ102のユーザまたはバックアップ・プログラムによって始めてもよい。別の実施形態では、複製プログラム120aに、複製を始める時刻が予め設定されていてもよい。さらに別の実施形態では、複製プログラム120aは、カートリッジ122aに新しいデータが書き込まれるたびにカートリッジ122aの複製を始めてもよい。
【0029】
ステップ302で、複製プログラム120aは、カートリッジ122aが「複製する」に設定されているか判断する。この実施形態では、複製プログラム120aはメモリ・チップ126aにアクセスして、複製ビットの値が「0」(すなわち、複製しない)または「1」(すなわち、複製する)のどちらに設定されているか判断する。ステップ302で複製プログラム120aが、カートリッジ122aが「複製する」に設定されていない(すなわち、複製ビット値が「0」)と判断した場合は、図3の操作ステップは終了する。
【0030】
ステップ302で複製プログラム120aが、カートリッジ122aが「複製する」に設定されている(すなわち、複製ビット値が「1」)と判断した場合は、ステップ304で、必要なら、複製プログラム120aがカートリッジ122aの複製ステータスを「no(未複製)」に設定する。この実施形態では、カートリッジ122aの複製ステータスは、メモリ・チップ126a内の指定された複製ステータス・ビットを使用してカートリッジ122aのデータが正常に複製されたか否かを示す。したがって、複製プログラム120aは、後続のステップで複製プロセス中にエラーがある場合にカートリッジ122aが「no」という適切な複製ステータスを有するように、データを複製する前にカートリッジ122aの複製ステータスを「no」に設定する。この実施形態では、カートリッジ122aが以前に複製されたデータを含む場合には、複製プログラム120aはカートリッジ122aの複製ステータスを「yes(複製済み)」(すなわち、複製ステータスのビット値が「1」)から「no」(すなわち、複製ステータスのビット値が「0」)に変更してもよく、カートリッジ122aが新しいカートリッジである場合は、複製プログラム120aはカートリッジ122aの初期複製ステータスを「no」(すなわち、複製ステータスのビット値が「0」)に設定してもよく、カートリッジ122aが以前に複製されたデータを含まず、複製ステータスが「no」(すなわち、複製ステータスのビット値が「0」)である場合は、複製プログラム120aはカートリッジ122aの複製ステータスを変更する必要はない。
【0031】
ステップ306で、複製プログラム120aはテープ・ドライブ104aを複製用に準備する。この実施形態では、ネットワーク・ポート124aは2つのSCSI/ファイバ・ネットワーク・ポートを備える。複製プログラム120aはSCSI/ファイバ・ネットワーク・ポートの一方をターゲット・モードからイニシエータ・モードに変更し、そのモードではテープ・ドライブ104aが、ホスト・コンピュータ102またはホスト・コンピュータ106などの中間ホストなしでテープ・ドライブ104bに直接接続することができる。他方のSCSI/ファイバ・ネットワーク・ポートはターゲット・モードを維持し、ホスト・コンピュータ102などのホスト・システムからコマンドの受信を続ける。
【0032】
複製プログラム120aはまた、カートリッジ122bがテープ・ドライブ104bにロードされているか確認する。この実施形態では、複製プログラム120aは、テープ・ドライブ104bに問い合わせて、テープ・ドライブ104bのステータス、およびロードされているカートリッジがあれば、そのカートリッジのステータスを判断する。カートリッジ122bがすでにテープ・ドライブ104bにロードされている(すなわち、バーコード、ファームウェア、カートリッジ・タグなどで特定されたとおりに書き込み先カートリッジがロードされている)場合は、テープ・ドライブ104bは、さらにマウント操作を追加する必要はない。カートリッジ122bがテープ・ドライブ104bにロードされていない場合は、複製プログラム120aはテープ・ドライブ104bまたは適切なテープ・ライブラリあるいはその両方に、カートリッジ122bをロードしてマウントするように求めるリクエストを送る。別の実施形態では、複製プログラム120aは、複製を続行する前に、ユーザにカートリッジを挿入するように促すための通知をホスト・コンピュータ106に送ってもよい。
【0033】
一実施形態では、カートリッジ122bは、カートリッジ122bに関連付けられるカートリッジ122aに対応するバーコードを読み取ることによって選択される。例えば、それより前の時点でカートリッジ122aがカートリッジ122bにすでにデータを書き込んでいた場合は、複製プログラム120aは、カートリッジ122bの対応するデータをすべて保持するためにカートリッジ122bをテープ・ドライブ104bにロードするように求めるリクエストを送ることができる。バーコード情報は、例えば、データベース128aまたはデータベース128bあるいはその両方に記憶することができる。複製プログラム120aはまた、カートリッジのデータがホストによって記憶されたのか、既存のカートリッジのバックアップなのかを示すようにカートリッジのステータスを設定することもできる。
【0034】
一実施形態では、複製プログラム120aはメモリ・チップ126aにフラグまたはマーカをセットして、新しく書き込まれたデータ、またはホスト・コンピュータ102などのホスト・コンピュータによってバックアップ用に選択されているデータの位置を指示または規定する。一例では、複製プログラム120aはバックアップされる特定のファイルのために、ファイルの先頭アドレスおよび末尾アドレス(例えば、バイト300から420)にマーカなどのフラグをセットしてもよい。別の実施形態では、テープ・ドライブ104aによるカートリッジ122aへのデータ書き込みの間、ホスト・コンピュータ102がメモリ・チップ126aにフラグまたはマーカをセットしてもよい。一実施形態では、フラグがセットされた後に、複製プログラム120aが次のステップに進む。
【0035】
ステップ308で、複製プログラム120aはカートリッジ122aからカートリッジ122bにネットワーク110を介してデータを送信する。この実施形態では、複製プログラム120aはカートリッジ122aのメモリ・チップ126aのフラグを見つけ、フラグとフラグの間に置かれたデータを、カートリッジ122bに記憶するためにテープ・ドライブ104bに送る。別の実施形態では、複製プログラム120aが、カートリッジ122aに置かれたデータの一部または全部をテープ・ドライブ104bに送信し、複製プログラム120bがそのデータを受け取って、フラグ付けされているデータのみをカートリッジ122bに書き込む。さらに別の実施形態では、複製プログラム120aはカートリッジ122aからすべてのデータを、カートリッジ122b、テープ・ドライブ104bにロードされている複数のカートリッジ、または図示されていないテープ・ドライブを使用する他のカートリッジに書き込まれるように送信してもよい。
【0036】
一実施形態では、複製プログラム120aは複製のステータスを表示する。例えば、複製プログラム120aは「複製中」または「複製完了」のステータスを、ホスト・コンピュータ102、ホスト・コンピュータ106、テープ・ドライブ104aおよび104b、またはテープ・ライブラリ、あるいはそれらの組合せに表示してもよい。ステータスはユーザに対する通知メッセージとして表示されてもよいし、または記録されてもよいし、あるいはその両方でもよい。
【0037】
ステップ310で、複製プログラム120aは、送信されたデータがテープ・ドライブ104bによって受け取られて、カートリッジ122bに正常に複製されたか判断する。この実施形態では、複製プログラム120aが複製プログラム120bに、データが受け取られてカートリッジ122bに書き込まれているか判断するように問い合わせ、次に複製プログラム120bがそれを複製プログラム120aに報告する。
【0038】
ステップ310で複製プログラム120aが、送信されたデータがテープ・ドライブ104bに受け取られてカートリッジ122bに正常に複製されなかったと判断した場合には、ステップ314で、複製プログラム120aが複製エラーを提示する。この実施形態では、複製プログラム120aは複製エラーをステータスとして提示し、このステータスがホスト・コンピュータ102および106、テープ・ドライブ104aおよび104b、またはテープ・ライブラリ、あるいはそれらの組合せに表示され得る。送信されたデータのカートリッジ122bへの複製が失敗する原因は、例えば、ネットワーク110を介したテープ・ドライブ104aとテープ・ドライブ104bの間のデータの転送が中断すること(例えば、接続の故障またはカートリッジ122aの機械的故障あるいはその両方)、または、カートリッジ122bにデータを書き込む際に発生するエラー(例えば、カートリッジ122bの空きスペースの不足、カートリッジ122bに壊れたデータがある、またはカートリッジ122bの機械的故障、あるいはそれらの組合せ)、あるいはその両方である。複製プログラム120aによって提示される複製エラーは、エラーの現象ならびに解決策(例えば、他のテープ・カートリッジをロードする)を含んでもよい。
【0039】
ステップ310で複製プログラム120aが、送信されたデータがテープ・ドライブ104bに受け取られてカートリッジ122bに正常に複製されたと判断した場合には、ステップ312で、複製プログラム120aはカートリッジ122aおよび122bのステータスを「複製済み」に設定する。この実施形態では、複製プログラム120aはメモリ・チップ126aおよび126bのにステータスを設定する。これにより、複製プログラム120aが将来、ステータスを検索して、カートリッジ122aが複製済みであるか、および、カートリッジ122bが複製されたデータを含んでいるか判断することができる。ステータスはまた、データベース128aおよび128bに記憶することもできる。ステータスはさらに、カートリッジ122aおよび122bのバーコード、および複製済みのファイルのアドレスに関連付けることができる。
【0040】
したがって、図3の操作ステップを行うことによって、第1のテープ・ドライブにロードされている第1のカートリッジに記憶されているデータが、全体的または部分的に、第2のテープ・ドライブにロードされている第2のカートリッジへ、ネットワークを介して、直接(すなわち、ホストなしで)複製され得る。この実施形態では、テープ・ドライブ104aに置かれた複製プログラム120aが、ホスト・コンピュータ102に置かれたバックアップ・プログラムから、カートリッジへデータ(例えば、アプリケーション・データのバックアップ)を書き込むように促すプロンプトを受け取ってもよい。複製プログラム120aは、新しいデータがカートリッジ122aに書き込まれた後に、カートリッジのメモリおよびステータスを更新してもよい。複製プログラム120aは次に、カートリッジ122a上の新しい情報を複製するか判断し、テープ・ドライブ104aおよび104bを複製のために準備し、ホスト・コンピュータ102またはホスト・コンピュータ106を使用せずにネットワーク110を介してカートリッジ122aからカートリッジ122bへ新しいデータを送信してもよい。最後に、複製プログラム120aは、カートリッジ122aのステータスを、それが複製済みであることを示すように設定し、カートリッジ122bのステータスを、データが別のカートリッジから複製されたことを示すように設定してもよい。
【0041】
図4は、本発明の例示的一実施形態によるコンピュータ400の構成要素のブロック図であり、ホスト・コンピュータ102、ホスト・コンピュータ106、テープ・ドライブ104aおよびテープ・ドライブ104bを表す。図4は一実装の単なる説明であり、異なる実施形態が実装され得る環境に関する限定を何ら暗示しない。図示される環境に、多くの変更が施されてもよい。
【0042】
コンピュータ400は通信ファブリック(communications fabric)402を含み、これが、コンピュータ・プロセッサ404、メモリ406、持続性ストレージ408、通信ユニット410、および入出力(I/O)インタフェース412の間に通信を提供する。通信ファブリック402は、プロセッサ(マイクロプロセッサ、通信プロセッサ、およびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイス、およびシステム内の他のあらゆるハードウェア構成要素の間でデータまたは制御情報あるいはその両方を受け渡すために設計された任意のアーキテクチャで実装することができる。例えば、通信ファブリック402は1つまたは複数のバスで実装されてもよい。
【0043】
メモリ406および持続性ストレージ408は、コンピュータ可読ストレージ媒体である。この実施形態では、メモリ406はランダム・アクセス・メモリ(RAM)414およびキャッシュ・メモリ416を含む。一般に、メモリ406は、任意の適切な揮発性または不揮発性コンピュータ可読ストレージ媒体を含むことができる。ソフトウェアおよびデータ422は、メモリ406のうち1つまたは複数のメモリを介したプロセッサ404によるアクセスまたは実行あるいはその両方のために、持続性ストレージ408に記憶される。テープ・ドライブ104aおよび104bに関して、ソフトウェアおよびデータ422は、複製プログラム120a、複製プログラム120b、データベース128aおよびデータベース128bのそれぞれを表す。
【0044】
この実施形態では、持続性ストレージ408は磁気ハードディスク・ドライブを含む。代替として、または磁気ハードディスク・ドライブに加えて、持続性ストレージ408はプログラム命令もしくはデジタル情報を記憶することのできる、固体ハード・ドライブ、半導体ストレージ・デバイス、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、フラッシュ・メモリ、または、他の任意のコンピュータ可読ストレージ媒体を含むことができる。
【0045】
また、持続性ストレージ408によって使用される媒体は、取り外し可能であってもよい。例えば、取り外し可能ハード・ドライブが持続性ストレージ408に使用されてもよい。他の例には、やはり持続性ストレージ408の一部である別のコンピュータ可読ストレージ媒体への転送のためにドライブに挿入される、光ディスクおよび磁気ディスク、サム・ドライブ(thumb drive)、およびスマートカードが含まれる。
【0046】
通信ユニット410は、これらの例において、他のデータ処理システムまたはデバイスとの通信に備える。これらの例では、通信ユニット410は1つまたは複数のネットワーク・インタフェース・カードを含む。通信ユニット410は、物理通信リンクおよび無線通信リンクのどちらかまたは両方を使用して通信を提供してもよい。ソフトウェアおよびデータ422は通信ユニット410を通して持続性ストレージ408にダウンロードしてもよい。
【0047】
I/Oインタフェース412は、コンピュータ400に接続されていることのある他のデバイスを使用したデータの入力および出力を可能にする。例えば、I/Oインタフェース412は、キーボード、キーパッド、タッチ・スクリーン、または何らかの他の適切な入力デバイス、あるいはそれらの組合せなどの外部デバイス418への接続を提供してもよい。外部デバイス418はまた、例えば、サム・ドライブ、携帯型光ディスクまたは磁気ディスク、およびメモリ・カードなどの携帯型コンピュータ可読ストレージ媒体を含むことができる。ソフトウェアおよびデータ422は、そのような携帯型コンピュータ可読ストレージ媒体に記憶することができ、I/Oインタフェース412を介して持続性ストレージ408にロードすることができる。I/Oインタフェース412はまた、ディスプレイ420に接続されている。
【0048】
ディスプレイ420はユーザに対してデータを表示する機構を提供し、例えば、コンピュータ・モニタであってもよい。
【0049】
本明細書に記載されるプログラムは、本発明の特定の実施形態での実装先の適用例に基づいて特定される。ただし、本明細書での特定のプログラム命名法は単に便宜上のものであり、よって、本発明は、そのような命名法によって特定または暗示あるいはその両方が行われる何らかの特定の適用例のみで使用されるように限定されるべきではない。
【0050】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を行わせるためのコンピュータ可読プログラム命令を有する1つまたは複数のコンピュータ可読ストレージ媒体を含んでもよい。
【0051】
コンピュータ可読ストレージ媒体は、命令実行デバイスに使用されるための命令を保持および記憶することのできる有形デバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電気磁気ストレージ・デバイス、半導体ストレージ・デバイス、またはそれらの任意の適切な組合せであってもよいが、それに限定されない。より具体的なコンピュータ可読ストレージ媒体の例には、携帯式コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、携帯式コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録された溝内の突起構造などの機械的に符号化されたデバイス、およびそれらの任意の適切な組合せが含まれるが、これですべて網羅されているわけではない。コンピュータ可読ストレージ媒体は、本明細書で使用されるとき、それ自体が、無線波もしくはその他の自由に伝播する電磁波、導波管もしくはその他の送信媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通って送信される電気信号などの一時的信号であるとは見なされない。
【0052】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワークもしくは無線ネットワークあるいはそれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線送信ケーブル、光送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを備えてもよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
【0053】
本発明の操作を行うためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存の命令、マイクロコード、ファームウェア命令、状態設定データ、または、1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードもしくはオブジェクト・コードのいずれかであってもよく、これらの言語は、Smalltalk(R)、C++などのオブジェクト指向言語、およびプログラミング言語Cもしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む。コンピュータ可読プログラム命令は、独立型ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されてもよいし、一部がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で実行されてもよいし、または全体がリモート・コンピュータもしくはサーバ上で実行されてもよい。後者の場合、ユーザのコンピュータにローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してリモート・コンピュータが接続されていてもよいし、外部コンピュータへの接続が作られてもよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを経由する)。いくつかの実施形態では、本発明の態様を実施するために、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナル化してもよい。
【0054】
本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら、本発明の態様について本明細書で説明する。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方の複数ブロックの組合せがコンピュータ可読プログラム命令によって実装され得ることが可能なことが理解される。
【0055】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実装するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または、その他のプログラム可能なデータ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作の態様を実装する命令を含んだ製造品を備えるように、コンピュータ可読ストレージ媒体に記憶され、コンピュータ、プログラム可能なデータ処理装置、またはその他のデバイス、あるいはそれらの組合せに特定の様式で機能するように指示することのできるものであってもよい。
【0056】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能な装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実装するように、コンピュータ実装プロセスを作るために、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行させるものであってもよい。
【0057】
図の中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考え得る実装のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の中の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表してもよい。いくつかの代替実装では、ブロックに記載される機能は、図に示される以外の順序で行われてもよい。例えば、関与する機能に応じて、連続して示される2つのブロックが実際にはほぼ同時に実行されてもよいし、または、時にはブロックが逆の順序で実行されてもよい。また、注目すべき点として、ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびに、ブロック図またはフローチャート図あるいはその両方の複数ブロックの組合せが、指定された機能を行う専用ハードウェアに基づくシステムによって実装され得るし、または、専用ハードウェアとコンピュータ命令の組合せの役割を行うか遂行することもできる。
【0058】
本発明の様々な実施形態を、説明の目的で記述してきたが、包括的であることも、開示された実施形態に限定されることも意図されない。当業者には、本発明の範囲および趣旨から逸脱することなく、多くの変更および変形が明らかになる。本明細書で使用する用語は、実施形態の原理、実用的な適用例もしくは市場に見られる技術の技術的改善を最適に説明するように、または、本明細書に開示される実施形態を当業者以外の者が理解できるように選択された。
図1
図2
図3
図4