(57)【要約】【課題】  ネットワーク接続周辺装置にアクセスするためのコンピュータ可読媒体、方法およびシステムを提供する。【解決手段】  ローカル周辺装置アドレスを参照する入出力要求（１５）を受け取って前記入出力要求（１５）を処理するように適応されたドライブコマンドモジュール（２０）と、前記ドライブコマンドモジュール（２０）に通信可能に結合され、前記入出力要求（１５）を、通信ネットワーク（１３０）を介して、前記入出力要求（１５）を処理するリモート周辺装置（８５）に自動的に送るように適応されたリダイレクタ（１２０）と、を具備する入出力（Ｉ／Ｏ）要求処理システム（１５０）とする。【選択図】          図１
2005302026.tif 000002
【特許請求の範囲】
【請求項１】
ローカル周辺装置アドレスを参照する入出力要求（１５）を受け取って前記入出力要求（１５）を処理するように適応されたドライブコマンドモジュール（２０）と、
前記ドライブコマンドモジュール（２０）に通信可能に結合され、前記入出力要求（１５）を、通信ネットワーク（１３０）を介して、前記入出力要求（１５）を処理するリモート周辺装置（８５）に自動的に送るように適応されたリダイレクタ（１２０）と、
を具備する入出力（Ｉ／Ｏ）要求処理システム（１５０）。
【請求項２】
前記リダイレクタ（１２０）が、前記ローカル周辺装置アドレスを前記リモート周辺装置（８５）のアドレスと相関させるように適応された請求項１に記載のシステム（１５０）。
【請求項３】
前記リダイレクタ（１２０）が、前記入出力要求（１５）のローカル周辺装置アドレスを前記リモート周辺装置（８５）と関連付けられたアドレスと置き換えるように適応された請求項１に記載のシステム（１５０）。
【請求項４】
前記ドライブコマンドモジュール（２０）が、前記ローカル周辺装置アドレスと関連付けられたバスドライバを呼び出して前記リダイレクタ（１２０）を呼び出すように適応された請求項１に記載のシステム（１５０）。
【請求項５】
前記通信ネットワーク（１３０）から前記入出力要求（１５）を受け取り、前記リモート周辺装置（８５）を介して前記入出力要求（１５）を処理するコマンドを実行するように適応されたネットワークサーバ（１２１）をさらに含む請求項１に記載のシステム（１５０）。
【請求項６】
前記入出力要求（１５）が、ローカル周辺装置アドレスを識別するフィールドを含む請求項１に記載のシステム（１５０）。
【請求項７】
前記ローカル周辺装置アドレスを前記リモート周辺装置（８５）のアドレスと相関させることと関連付けられた情報を有するリレーショナルデータベース（２５０）をさらに含む請求項１に記載のシステム（１５０）。
【請求項８】
前記リダイレクタ（１２０）が、前記通信ネットワーク（１３０）を介して前記リモート周辺装置（８５）に送るために、前記ドライブコマンドモジュール（２０）から発行されたドライブコマンドをフォーマットするように適応された請求項１に記載のシステム（１５０）。
【請求項９】
前記リダイレクタ（１２０）が、前記リモート周辺装置（８５）と関連付けられたアドレスを前記ドライブコマンドに挿入するように適応された請求項８に記載のシステム（１５０）。
【請求項１０】
前記通信ネットワーク（１３０）から前記入出力要求（１５）を受け取り、前記リモート周辺装置（８５）と関連付けられたアドレスを抽出するように適応されたネットワークサーバ（１２１）をさらに含む請求項１のシステム（１５０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク技術に関し、より詳細にはネットワーク接続周辺装置にアクセスするためのコンピュータ可読媒体、方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータシステムは、一般に、ユーザが情報を記憶し取り出すことを可能にする記憶管理ファイルシステムを含む。例えば、ファイルシステムは、一般に、ユーザが、ファイルを作成、修正、削除することを可能にし、物理的な記憶装置名を指定するのではなく記号名によって記憶ファイルを識別することを可能にし、より詳細な物理的閲覧によってではなく情報を論理的に閲覧することを可能にする。ファイルシステムは、一般に、記憶装置の記憶抽象概念を管理するデバイスドライバによって情報を管理する。デバイスドライバは、例えば、記憶装置上のファイルシステムレイアウトに基づいて、ファイルシステムメタデータ情報を使用して情報の記憶と取り出しを管理する。
【０００３】
ネットワークファイル共有は、伝送プロトコルによって物理ネットワーク媒体を介して情報を転送する方法である。伝送プロトコルは、一般に、データファイルを開き、作成し、読み出し、書き込み、閉じるような、リモート操作を可能にするネットワークファイル共有プロトコルを含む。動作において、ファイル共有サーバは、一般に、ネットワークファイル共有要求または呼び出しが、ファイル共有サーバからファイルシステムに渡されるように既存のファイルシステムの上で動作する。ファイルシステムは、一般に、同じ組の機能（すなわち、開く、読み出す、作成する、書き込むなど）を含むので、ネットワーク共有サーバは、実質的にどのファイルシステムの上でも動作することができる。したがって、動作において、ファイルシステムは、ローカル記憶装置のファイルシステムレイアウトに基づいて、ネットワーク共有サーバから受け取ったネットワークファイル共有呼び出しに応じることによって、リモートデータ管理操作を可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、様々なタイプの記憶媒体および関連装置、特にコンパクトディスク（ＣＤ）レコーダ、ディジタル汎用ディスク（ＤＶＤ）レコーダ、その他のタイプの周辺装置記録システムなどの周辺装置は、ネットワークを介したデータの読み書きに対応するのは容易ではない。例えば、ブランクＣＤおよびＤＶＤ上には、一般に、ファイルシステムレイアウトが記録されていない。動作において、ブランクＣＤおよびＤＶＤへの情報の記録は、一般に、ブランク媒体上に記憶される内容を前もって分かるように「プレマスタリング」を含む。したがって、媒体上でフォーマット操作が実行されず、ファイルシステムメタデータが媒体に記録されない。ブランクＣＤやＤＶＤなどの媒体に情報を書き込むためのソフトウェアアプリケーションは、一般に、ブランク媒体に記憶される内容のイメージをブロックごとに作成し、ディスクドライバと直接通信して媒体に内容をそのブロックの順序で書き込む命令を発行し、それによりファイルシステムは省略される。したがって、ファイルシステムが省略されるため、ネットワークファイル共有インフラストラクチャは、リモートデータ管理ができない。
【課題を解決するための手段】
【０００５】
本発明の実施形態によれば、入出力（Ｉ／Ｏ）要求処理システムが、入出力要求を処理するために、ローカル周辺装置アドレスを参照する入出力要求を受け取るように適応されたドライブコマンドモジュールを含む。システムは、また、ドライブコマンドモジュールに通信可能に結合されたリダイレクタを含む。リダイレクタは、入出力要求を処理するために通信ネットワークを介してリモート周辺装置に入出力要求を自動的に送るように適応される。
【０００６】
本発明の別の実施形態によれば、入出力（Ｉ／Ｏ）要求処理の方法は、入出力要求を処理するローカル周辺装置アドレスを参照する入出力要求を受け取ることを含む。この方法は、また、リモート周辺装置による入出力要求の処理を可能にするために入出力要求を通信ネットワークに送るように適応されたリダイレクタを自動的に呼び出すことを含む。
【０００７】
本発明の別の実施形態によれば、入出力（Ｉ／Ｏ）要求処理システムが、光学媒体にデータを記録するコマンドを受け取るように適応されたドライブコマンドモジュールを含む。システムは、また、ドライブコマンドモジュールに通信可能に結合されたリダイレクタを含む。リダイレクタは、ドライブコマンドモジュールからドライブコマンドを受け取り、リモート光学ドライブによって処理するためにコマンドを自動的にフォーマットするように適応される。
【発明を実施するための最良の形態】
【０００８】
本発明およびその目的と利点をさらに完全に理解するために、次に、添付図面と関連して行われる以下の説明を参照する。
【０００９】
本発明の好ましい実施形態とその利点は、図面のうちの図１から図４を参照することによって最もよく理解され、様々な図面の類似し対応する部分には類似の番号が使用される。
【００１０】
例えば光ディスクドライブなどの周辺装置の場合は、様々なホスト装置上で動作するクライアントアプリケーションが、ネットワーク上の周辺装置へのアクセスを共有できるようにすることが望ましい。さらに、周辺装置がローカル装置であるかのように、ネットワークを介してその周辺装置と通信する機能を有することが望ましい。
【００１１】
多くのソフトウェアアプリケーションは、コンピュータシステムの周辺装置と通信する。そのような通信を容易にするために、周辺装置のハードウェア構成要素を制御するデバイスドライバが使用される。デバイスドライバは、一般に、周辺装置の１つまたは複数のハードウェアレジスタにアクセスする役割を持ち、周辺装置によって生成されたハードウェア割り込みを処理する割り込み処理ルーチンを含むことがある。アプリケーションプログラムは、一般に、周辺装置とインタフェースをとりかつ適切なデバイスドライバ呼び出しを管理するアプリケーションプログラミングインタフェース（ＡＰＩ）と呼ばれるソフトウェアレイヤを使用することがある。例えば、小型コンピュータシステムインタフェース（ＳＣＳＩ）パススルーインタフェース（ＳＰＴＩ）ＡＰＩは、オペレーティングシステム（Ｏ／Ｓ）カーネルの低レベル部分として実現される。代替として、アドバンストＳＣＳＩ周辺インタフェース（ＡＳＰＩ）ＡＰＩは、アプリケーション実行時間中にロードされるファイルとして実現される。他のアプリケーションは、独自のデバイスドライバによって周辺装置と通信することがある。
【００１２】
クライアントアプリケーションから発行され周辺装置に向けられる入出力（Ｉ／Ｏ）要求は、最終的に、デバイスドライバが独自のデバイスドライバとしてあるいはＡＰＩとして実現されているかどうかに関係なくターゲット周辺装置に送る入出力要求をフォーマットするように適応されたデバイスドライバによって処理される。その際に、周辺装置と通信可能にインタフェースをとるＩＤＥ（ｉｎｔｅｇｒａｔｅｄ  ｄｅｖｉｃｅ  ｅｌｅｃｔｒｏｎｉｃｓ）バスドライバやＳＣＳＩバスドライバなどのバスドライバが呼び出される。入出力要求は、入出力要求内に含まれるかまたは入出力要求によって参照される１つまたは複数の周辺装置識別子または属性によって特定の周辺装置を識別する。本明細書で述べるように、入出力要求を受け取りかつターゲット周辺装置により実行される要求を処理するソフトウェアレイヤは、ドライブコマンドモジュール（ＤＣＭ）と呼ばれる。ＤＣＭは、オペレーティングシステムの一部分を構成してもよく、あるいはランタイムソフトウェアモジュールとして実現されてもよい。一般に、ＤＣＭは、入出力要求を受け取り、ターゲット周辺装置と関連したローカル周辺装置アドレスによって、適切なバスドライバを識別する。入出力要求によるローカル周辺装置アドレスの割り当ては、入出力要求内にアドレスを含めるか、例えばポインタによって入出力要求内の周辺装置アドレスを参照することによって行うことができる。ＤＣＭは、クライアントアプリケーションから発行された入出力要求を処理し、入出力要求によってターゲットにされた周辺装置で１つまたは複数のドライブコマンドを実行するように適応される。ＤＣＭから発行されたドライブコマンドは、受け取った入出力要求に対応し、入出力要求の低レベルの機械処理可能な表現である。本発明の実施形態は、クライアントアプリケーションから発行された入出力要求を、リモートに配置された周辺装置によって、クライアントアプリケーションにトランスペアレントな方式で処理することを可能にする。
【００１３】
本発明の実施形態は、クライアントアプリケーション１０から発行された入出力要求１５の遠隔処理を可能にする様々なソフトウェアとハードウェアモジュールのブロック図を示す図１を参照することによってより良く理解することができる。システム１５０は、コンピュータシステムやネットワーク接続装置１０１などのホスト装置１００を含む。クライアントアプリケーション１０は、ホスト装置１００上で動作する。説明的な実例において、システム１５０の説明は、ＳＰＴＩとして実現されたＤＣＭ２０を参照して行われる。したがって、クライアントアプリケーション１０から発行される入出力要求１５のフォーマッティングは、ＳＰＴＩプロトコルを参照して説明される。ＡＳＰＩやＷＩＮＤＯＷＳ（登録商標）３２  ＡＰＩなどのＤＣＭの別の実施形態とインタフェースをとるアプリケーションによる入出力要求の処理は、本発明の実施形態に従って類似の方法で行うことができ、現在既知または今後開発される任意のドライブコマンドモジュールのために実施されてもよい。
【００１４】
本発明の１つの実施形態によれば、アプリケーション１０は、ローカル周辺装置アドレスを含む入出力要求１５を生成し発行し、入出力要求１５をＤＣＭ２０に伝える。本明細書に示すように、ローカル周辺装置アドレスは、入出力要求１５の発信者と関連付けられた周辺装置アドレスである。説明的な実例において、入出力要求１５は、装置１００上で動作するクライアントアプリケーション１０から発行され、装置１００は、入出力要求発信者装置を含む。ＳＣＳＩバスドライバなどのバスドライバへの呼び出しは、入出力要求１５のローカル周辺装置アドレスに従ってローカルアダプタに入出力要求１５を伝えようとしてＤＣＭ２０によって行われる。説明的な実例において、装置１００は、それぞれ周辺装置アドレスＡとＢを有する２つの周辺装置８０と８１を含む。説明のため、入出力要求１５が、周辺装置が配置されていないホスト装置１００のローカル周辺装置アドレスＣを含むかまたは参照すると仮定する。周辺装置アドレスＣに周辺装置がないことは、破線によって説明的に示されている。周辺装置アドレスＣに周辺装置がないことは、例えば、装置１００内の空のホストアダプタスロットとして実現される。
【００１５】
本発明の実施形態によれば、従来のバスドライバではなく、バスドライバネットワークリダイレクタ１２０が、ＤＣＭ２０によって行われるバスドライバ呼び出しによって呼び出される。リダイレクタ１２０は、例えば、リダイレクタ１２０に、ＤＣＭ２０によって、例えばバスドライバファイル名などのバスドライバラベルを割り当てることによってバスドライバとして識別される。ＤＣＭ２０によって行われるバスドライバ呼び出しによりリダイレクタ１２０を呼び出す他の実施態様が可能である。ネットワークリダイレクタ１２０は、１００ｂａｓｅＴイーサネット（登録商標）ケーブルなどのネットワーク媒体１３０とインタフェースをとるネットワークインタフェースカード（ＮＩＣ）６５にドライブコマンドを供給する。ネットワーク媒体１３０は、周辺装置８５と通信可能に結合されたリモート装置１０１と結合される。周辺装置８５には、周辺装置アドレスＤが関連付けられている。装置１０１すなわちレシーバ装置は、入出力要求１５を受け取り処理し、対応するドライブコマンド３３を装置８５に発行する。例示的な実施形態において、ドライブコマンドネットワークサーバ１２１は、ネットワークインタフェースカード（ＮＩＣ）６６から入出力要求１５を受け取り、それにより入出力要求１５を実行する周辺装置８５を識別する。周辺装置８５による入出力要求１５の実行によって生成された任意のリターンデータまたはエラー／状況情報は、ネットワーク媒体１３０を介して送られ、アプリケーション１０に伝えられることが好ましい。したがって、本発明の実施形態は、発信者装置１００によって発行されたローカル周辺装置アドレスを有するかまたは参照する入出力要求１５をリモートに配置された装置１０１に転送することを可能にする。リモート装置１０１は、リモート装置１０１と関連付けられた周辺装置アドレスＤを有する周辺装置８５に結合されている。次に、入出力要求１５の実行または処理が、周辺装置８５によって行われる。
【００１６】
図２は、本発明の実施形態に従って実現できる装置１００のブロック図である。装置１００は、メモリ装置１１０にクライアントアプリケーション１０を記憶する。従来技術によって、クライアントアプリケーション１０は、オペレーティングシステム（Ｏ／Ｓ）１７０と、中央処理装置（ＣＰＵ）のような１つまたは複数の処理要素１１５によって実行される。オペレーティングシステム１７０は、装置１００の資源を制御し、処理要素１１５とアプリケーション１０の命令とのインタフェースをとる。
【００１７】
処理要素１１５は、１つまたは複数のバスを含むことがあるローカルインタフェース１８０を介して、装置１００内の他の要素と通信し駆動する。さらに、装置１００のユーザからのデータを入力するために、キーボードやポインタ装置などの入力装置１３０を使用することができ、ユーザにデータを出力するために、表示装置やプリンタなどの出力装置１４０を使用することができる。データ転送のためにローカルインタフェース１８０に磁気ディスクなどのディスク記憶装置１６０が接続される。イーサネットカードなどのＮＩＣ６５が、インタフェース１８０と相互接続され、ネットワーク媒体１３０に対する物理接続を提供する。
【００１８】
ドライブコマンドモジュール２０は、メモリ装置１１０または記憶装置１６０に記憶され、入出力要求１５の処理のためにアプリケーション１０によって呼び出される。リダイレクタ１２０は、ＤＣＭ２０によって呼び出され、ネットワーク媒体１３０を介して送出するように入出力要求１５をフォーマットする。例えば、リダイレクタ１２０は、入出力要求１５をリモート装置１０１にアドレス指定された１つまたは複数のイーサネットパケットにカプセル化する。ネットワークフォーマットされた入出力要求１５は、ＮＩＣ６５に供給されるイーサネットドライバなどのネットワークドライバに送られ、ネットワーク媒体１３０によってネットワーク接続されたリモート装置１０１に伝送される。
【００１９】
図３は、本発明の実施形態によって実現することができる装置１０１の簡略化したブロック図である。装置１０１は、ネットワークサーバ１２１をメモリ装置１１１に記憶する。サーバ１２１は、サーバ１２１の適切な操作を容易にするＯ／Ｓ１７１と１つまたは複数の処理要素１１６によって実行される。オペレーティングシステム１７１は、サーバ１２１が適切に動作できるように、必要に応じてサーバ１２１の命令を処理要素１１６とインタフェースをとる。処理要素１１６は、ローカルインタフェース１８１を介して装置１０１の他の要素と通信し装置１０１内の他の要素を駆動する。装置１０１は、入力装置１３１、出力装置１４１、記憶装置１６１、または他のサブシステムを含むことができる。装置１０１内に含まれるＮＩＣ６６は、ネットワーク媒体１３０との物理接続を提供する。
【００２０】
例えば、周辺構成要素相互接続（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＩＤＥインタフェース、ＳＣＳＩ、別の適切な周辺インタフェースなどのアダプタインタフェース１５５は、例えばＰＣＩバスのような１つまたは複数のバス１５１によって処理要素１１６と通信可能に結合される。アダプタインタフェース１５５は、ソケットまたは拡張スロット、および装置１０１のマザーボードなどのバックプレーン上に配置された関連回路として実現されてもよく、周辺装置８５と処理要素１１６の間の通信結合または相互接続を提供する。メモリ装置１１１または記憶装置１６１は、処理要素１１６によって実行可能な１つまたは複数のコンピュータ可読命令セットとして実現されたネットワークサーバ１２１を記憶する。さらに、ＤＣＭ２１が、メモリ装置１１１または記憶装置１６１に記憶される。
【００２１】
したがって、例えば、図１〜図３を参照すると、本発明の１つの実施形態により、周辺装置８５は、光学ドライブ２００によってアクセス可能な光学媒体２１０と関連付けられたデータを記録し、読み出し、あるいは処理する光学ドライブ２００を含む。示した実施形態において、アプリケーション１０は、通信可能に結合された光学ドライブによってデータをアクセスし、読み出し、記録し、あるいは処理するソフトウェアを含む。したがって、動作において、本発明の実施形態は、記録コマンドなどであるがそれに限定されないアプリケーション１０から発行された入出力要求１５を、光学ドライブ２００によって処理しあるいは実行することを可能にする。
【００２２】
図４を参照すると、メッセージ流れ図は、本発明の実施形態による入出力要求の処理を示す。アプリケーション１０は、ドライブコマンドモジュール２０に従ってフォーマットされた入出力要求１５を発行する。説明的な実例において、ドライブコマンドモジュール２０は、ＳＰＴＩとして実現され、実例となる入出力要求１５は、ＳＰＴＩフォーマットされたＤｅｖｉｃｅＩＯＣｏｎｔｒｏｌ関数呼び出しを含む。ＤｅｖｉｃｅＩＯＣｏｎｔｒｏｌ入出力要求は、指定されたデバイスドライバに制御コードを送るために、対応するデバイスに入出力要求によって指定された操作を実行させるＳＰＴＩフォーマットされた関数呼出しである。一般に、ＳＰＴＩフォーマット入出力要求は、入出力要求の関数引数として１つまたは複数の制御コードを含む。制御コードは、ＳＰＴＩフォーマット入出力要求の特定の要求タイプを定義する。説明的な実例において、制御コードＩＯＣＴＬ＿ＳＣＳＩ＿ＰＡＳＳ＿ＴＨＲＯＵＧＨは、入出力要求１５に含まれ、入出力要求１５をバッファ入出力要求として定義する。さらに、入出力要求１５は、特定の入出力要求を完全に定義するために、関数呼出しＤｅｖｉｃｅＩ０Ｃｏｎｔｒｏｌと共に使用されるＳＣＳＩ要求ブロック（ＳＲＢ）へのポインタを含む。一般に、ＳＲＢは、周辺装置にコマンドを発行するためのデータ構造を含む。詳細には、ＳＲＢは、入出力要求を適切に実行するための入出力要求のパラメータまたは特性を定義する値をそれぞれ含むメンバまたはフィールドを含む。入出力要求１５が導かれる特定の周辺装置は、１つまたは複数のＳＲＢメンバによって識別され、ホストアダプタ識別子、ターゲット識別子、論理ユニット番号、またはターゲットローカル周辺装置による入出力要求１５の実行を容易にするローカル周辺装置アドレスを定義する別のＳＲＢメンバのうちの１つまたは複数を含むことができる。説明のために、メモリ装置１１０に記憶されたＳＲＢ１２５は、ポインタによって参照され、周辺装置アドレスＣに入出力要求１５をアドレス指定する１つまたは複数のフィールドを含むと仮定する。
【００２３】
本発明の実施形態によれば、入出力要求１５に含まれる（あるいは参照される）ローカル周辺装置アドレスが、周辺装置が存在しない周辺装置アドレスを構成する。入出力要求１５は、ＤＣＭ２０（例えば、ＳＰＴＩ）によって受け取られ、それに対応する１つまたは複数のドライブコマンド２７がＤＣＭ２０によって生成される。ＤＣＭ２０は、入出力要求１５のローカル周辺装置アドレスＣと関連付けられたバスドライバの呼び出しを試みる。ＤＣＭ２０によって行われるバスドライバ呼び出しに応じて、リダイレクタ１２０が呼び出され、ＤＣＭ２０はドライブコマンド２７をリダイレクタ１２０に渡す。リダイレクタ１２０は、ネットワーク媒体１３０を介して送り出すためにドライブコマンド２７をフォーマットする。説明的な実例において、ドライブコマンド２７は、１つまたは複数のパケット（ＰＣＫ）にカプセル化される。ポインタによって参照されたＳＲＢ１２５は、ドライブコマンド２７によってカプセル化されることが好ましい。一般に、リダイレクタ１２０は、リモート装置１０１に送り出すためにネットワークフォーマットされたドライブコマンド２９（ＰＣＫ（ドライブコマンド、ＳＲＢ））をアドレス指定するロジックを含む。例えば、装置１０１に割り当てられたネットワークアドレスは、ネットワークフォーマットドライブコマンド２９のヘッダに挿入されることがある。さらに、ネットワークサーバ１２１に割り当てられたポートは、ネットワークフォーマットドライブコマンド２９のヘッダに挿入されることがある。一般に、ネットワークフォーマットドライブコマンド２９は、ネットワークサーバ１２１にネットワークで送り出すために条件付けされ、リダイレクタ１２０によってネットワーク媒体１３０に供給される。
【００２４】
ネットワークフォーマットドライブコマンド２９は、装置１０１によって受け取られたときにネットワークサーバ１２１に伝えられる。一般に、ネットワークサーバ１２１は、装置１０１と相互接続された周辺装置によって、ネットワークフォーマットドライブコマンド２９によって定義された入出力要求を直接実行するように適応される。例示的な実施形態において、ネットワークサーバ１２１は、入出力要求１５が最初に導かれたローカル周辺装置アドレスを定義する１つまたは複数のＳＲＢ要素またはフィールド値を除去するロジックを含む。ネットワークサーバ１２１は、ネットワークフォーマットドライブコマンド２９から周辺装置アドレスを除去しかつ周辺装置８５に割り当てられた周辺装置アドレスを挿入するロジックを含むことが好ましい。例えば、リダイレクタサーバ１２１に送られるＳＲＢ１２５に含まれる周辺装置アドレスＣを指定するホストアダプタ識別子、ターゲット識別子、および論理ユニット番号メンバが、ＳＲＢ構造からそれぞれ除去され、周辺装置８５の周辺装置アドレスＤを指定するホストアダプタ識別子、ターゲット識別子、および論理ユニット番号メンバが挿入される。しかしながら、また、リダイレクタ１２０が、ネットワークフォーマットドライブコマンド２９から周辺装置アドレスを除去し、周辺装置８５に割り当てられた周辺装置アドレスを挿入するように構成されてもよいことを理解されたい。周辺装置８５のアドレスを有する修正されたＳＲＢ１２６データ構造は、ネットワークサーバ１２１によってメモリ装置１１１に書き込まれる。説明的な実例において、ネットワークサーバ１２１は、さらに、ドライブコマンド２９に対応するドライブコマンドモジュール入出力要求３２を生成する。ＤＣＭ入出力要求３２は、入出力要求１５における関数呼び出しに対応するＤｅｖｉｃｅＩＯＣｏｎｔｒｏｌ関数呼出しと、メモリ装置１１１に書き込まれた修正ＳＲＢ１２６を参照するポインタｍｓｓｒｂ１とを含む。次に、ネットワークサーバ１２１は、生成したＤＣＭ入出力要求３２を、例えばＳＰＴＩなどのＤＣＭ２１に提出する。ＤＣＭ入出力要求３２の実行は、ＳＲＢ１２６に挿入された周辺装置アドレスによってターゲットにされた周辺装置８５と共にポインタｍｓｓｒｂ１によって参照されたＳＲＢ１２６に従って行われる。したがって、ＤＣＭ２１は入出力要求３２を処理し、それに対応するドライブコマンド３３を周辺装置８５と共に実行する。
【００２５】
ドライブコマンド３３の実行時に、リターンデータセット３４またはエラー／状況情報がリダイレクタサーバ１２１に送られてもよい。ドライブコマンド３３の実行時に周辺装置８５によってリターンデータが提供される場合、リダイレクタサーバ１２１は、リターンデータセット３４をパケットリターンデータセット３５にカプセル化し、リターンデータをネットワーク媒体１３０を介して供給することが好ましい。パケットリターンデータセット３５は、装置１００にアドレス指定され、パケットリターンデータセット３５は、例えば、リダイレクタ１２０にパケットリターンデータセット３５を送るためにリダイレクタ１２０に割り当てられたポートなどのアドレス指定データを含むことがある。リダイレクタ１２０がリセットデータセットを受け取った直後に、そのリターンデータセットはアプリケーション１０に送られる。したがって、リターンデータセット３６は、アプリケーション１０によって、入出力要求１５によってターゲットにされたローカル周辺装置アドレスにある周辺装置によってリターンデータが生成されたかのように処理される。すなわち、アプリケーション１０は、入出力要求１５を発行し、任意のリターンデータセット３６を、入出力要求が装置１００と相互接続された周辺装置上でローカルに実行されるかのように処理する。
【００２６】
以上のように、入出力要求１５は、周辺装置８５と関連付けられたリモート周辺装置アドレス（例えば、ドライブコマンド２７内のフィールド）を参照するかあるいは示すように構成されてもよい。しかしながら、また、他の状況では、周辺装置８５と関連付けられたリモートアドレスの識別を決定できることを理解されたい。例えば、図１と図２を参照して、装置１００は、リダイレクタ１２０および／またはＤＣＭ２０によってアクセス可能なリレーショナルデータベース２５０を含むことがあり、その結果、ローカル周辺装置アドレス（例えば、ローカル周辺装置アドレスＣ）を周辺装置８５のリモートアドレスと相関させることと関連した情報を取り出しあるいはアクセスすることができる。
【００２７】
説明したように、本発明の実施形態は、ネットワークで相互接続されたコンピュータや他の装置上で動作するアプリケーションが、周辺装置が存在しないローカル周辺装置アドレスに導かれる入出力要求を発行できることを可能にする。リダイレクタアプリケーションは、入出力要求に対応するドライブコマンドを受け取り、ドライブコマンドを、周辺装置が相互接続されたネットワーク接続リモート装置に送る。受け取ったドライブコマンドに対応する入出力要求が、リモート装置によって生成され、リモート装置と関連した周辺装置アドレスが、入出力要求に挿入される。次に、リモート装置により生成された入出力要求が実行され、その結果、周辺装置によって入出力要求が処理される。したがって、例えば記録可能なディジタル汎用ディスクドライブなどの高価な周辺装置は、ネットワークコンピュータや他の装置に配置されてもよい。したがって、ローカル周辺装置によって入出力要求を実行するように適応されたクライアントアプリケーションを有する任意のネットワーク接続コンピュータが、周辺装置がリモートに配置されていることを認識することなく従来の方式で入出力要求を発行することができる。
【００２８】
リダイレクタ１２０とドライブコマンドネットワークサーバ１２１は、コンピュータ可読ロジックの命令セットまたはプログラムとして実現されることが好ましい。命令セットは、様々な従来のコンピュータ可読媒体のうちの任意のコンピュータ可読媒体上に維持されることが好ましい。本出願の文脈において、「コンピュータ可読媒体」は、命令実行システム、機器または装置によって使用され、あるいは、そのような命令実行システム、機器または装置と関連するプログラムを収容し、記憶し、通信し、伝播し、あるいは伝送することが可能な任意の手段であってよい。コンピュータ可読媒体としては、例えば、現在既知または今後開発される電子的、磁気的、光学的、電気磁気的、赤外線、または半導体のシステム、機器、装置、または伝播媒体が挙げられるが、それらには限定されない。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態によるクライアントアプリケーションから出された入出力要求の処理を可能にする様々なソフトウェアおよびハードウェアモジュールの例のブロック図である。
【図２】本発明の実施形態により実現された入出力要求を出すクライアントアプリケーションを実行することができる装置のブロック図である。
【図３】本発明の実施形態により実現された入出力要求を処理する周辺装置と相互接続された装置の例のブロック図である。
【図４】本発明の実施形態による入出力要求の処理の例を示すメッセージ流れ図である。
【符号の説明】
【００３０】
１０  アプリケーション
１５  入出力要求
２０，２１  ドライブコマンドモジュール（ＤＣＭ）
２９  ネットワークフォーマットドライブコマンド
６５，６６  ネットワークインタフェースカード（ＮＩＣ）
８０，８１  周辺装置
８５  装置（リモート周辺装置）
１００  装置（ホスト装置）
１０１  装置（リモート装置）
１１５，１１６  処理要素
１２０  リダイレクタ
１２１  ネットワークサーバ
１２５  ＳＲＢ
１３０  通信ネットワーク（ネットワーク媒体）
１５０  入出力（Ｉ／Ｏ）要求処理システム
１５５  アダプタインタフェース
１６０，１６１  記憶装置
１７０，１７１  オペレーティングシステム
１８０，１８１  ローカルインタフェース
２００  光学ドライブ
２１０  光学媒体
２５０  リレーショナルデータベース
【図１】
2005302026.tif 000003
【図２】
2005302026.tif 000004
【図３】
2005302026.tif 000005
【図４】
2005302026.tif 000006