(57)【特許請求の範囲】
【請求項１】
第１のネットワーク通信プロトコルおよび第２のネットワーク通信プロトコルによってコンピュータ・システムが通信するための方法であって、
コンピュータ・システムのネットワーク・アダプタの第１の物理ポートの第１の仮想ローカル・エリア・ネットワーク（「ＶＬＡＮ」）デバイスによって第１の通信を実行することを含め、第１のネットワーク通信プロトコルによってネットワークへの、および前記ネットワークからの前記第１の通信を実行するステップであって、前記ネットワーク・アダプタが、さらに、前記第１のポートの第２のＶＬＡＮデバイスを含み、第２の物理ポートの第１のＶＬＡＮデバイスおよび第２のＶＬＡＮデバイスを含み、前記第２のＶＬＡＮデバイスが、第２のネットワーク通信プロトコルによるネットワーク通信のために論理的にボンディングされた仮想デバイスとしてプログラミングされる、前記第１の通信を実行するステップと、
前記第２の物理ポートの前記第２のＶＬＡＮデバイスによって前記第２の物理ポートで第２の通信を実行することを含め、前記第２のネットワーク通信プロトコルによって前記ネットワークへの、および前記ネットワークからの前記第２の通信を実行するステップであって、前記第２の通信が、前記第１の通信と同時である、前記第２の通信を実行するステップとを含む、方法。
【請求項２】
前記第１のネットワーク通信プロトコルが、リモート・ダイレクト・メモリ・アクセス（「ＲＤＭＡ」）プロトコルを含み、前記第２のネットワーク通信プロトコルが、伝送制御プロトコル（「ＴＣＰ」）プロトコルを含む、請求項１に記載の方法。
【請求項３】
前記第１の通信を実行するステップが、
前記第１のＶＬＡＮデバイスを介して前記第１の物理ポートと前記第２の物理ポートとの両方でＲＤＭＡプロトコル通信を同時に実行するステップを含み、前記第２の通信を実行するステップが、
前記第２の物理ポートの前記第２のＶＬＡＮデバイスによって前記第２の物理ポートでＴＣＰプロトコル通信を実行するステップを含む、請求項２に記載の方法。
【請求項４】
前記ボンディングされた仮想デバイスが、アクティブ−アクティブ通信モードのために構成され、その結果、前記第２の通信を実行するステップが、
前記論理的にボンディングされた仮想デバイスを介して前記第１の物理ポートと前記第２の物理ポートとの両方で前記第２の通信を実行するステップであって、両方の前記第２のＶＬＡＮデバイスが同時に通信する、前記実行するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記ボンディングされた仮想デバイスが、アクティブ−バックアップ通信モードのために構成され、その結果、前記第２の通信を実行するステップが、
前記論理的にボンディングされた仮想デバイスを介して前記第２の物理ポートで前記第２のネットワーク通信プロトコルによって前記第２の通信を実行するステップであって、
前記第２のＶＬＡＮデバイスのうちの１つのみが一度に通信し、前記第２のＶＬＡＮデバイスのうちの通信している方の前記第２のＶＬＡＮデバイス、または前記通信している方の前記第２のＶＬＡＮデバイスの関連する物理ポートが故障するとき、前記第２のＶＬＡＮデバイスのうちのもう一方の前記第２のＶＬＡＮデバイスが、前記通信を引き継ぐ、前記実行するステップをさらに含む、請求項１に記載の方法。
【請求項６】
コンピュータ・システムでネットワーク通信を提供するための方法であって、
ネットワーク・アダプタの第１の物理ポートおよび第２の物理ポートのそれぞれで第１の仮想ローカル・エリア・ネットワーク（「ＶＬＡＮ」）デバイスおよび第２のＶＬＡＮデバイスを構成し、
前記第２のＶＬＡＮデバイスを論理的にボンディングされた仮想デバイスとして構成することを含め、前記コンピュータ・システムの前記ネットワーク・アダプタを構成するステップを含む、方法。
【請求項７】
前記第１のＶＬＡＮデバイスを介して第１のネットワーク通信プロトコルによってネットワーク通信を実行するように前記コンピュータ・システムの第１のアプリケーションをプログラミングするステップと、
前記第２のＶＬＡＮデバイスを介して第２のネットワーク通信プロトコルによってネットワーク通信を実行するように前記コンピュータ・システムのアプリケーションをプログラミングするステップとを含み、前記第１のＶＬＡＮデバイスのうちの少なくとも１つが、前記第１のネットワーク通信プロトコルによってネットワーク通信を提供し、同時に、前記論理的にボンディングされた仮想デバイスが、前記第２のネットワーク通信プロトコルによってネットワーク通信を提供
する、請求項６に記載の方法。
【請求項８】
前記第１のネットワーク通信プロトコルが、リモート・ダイレクト・メモリ・アクセス（「ＲＤＭＡ」）プロトコルを含み、前記第２のネットワーク通信プロトコルが、伝送制御プロトコル（「ＴＣＰ」）プロトコルを含む、請求項７に記載の方法。
【請求項９】
前記第１のネットワーク通信プロトコルによって前記第１のＶＬＡＮデバイスのうちの少なくとも１つで前記ネットワーク通信を実行し、前記第２のネットワーク通信プロトコルによって前記論理的にボンディングされた仮想デバイスで前記ネットワーク通信を実行することが、
前記第１のＶＬＡＮデバイスによって前記第１の物理ポートと前記第２の物理ポートとの両方でＲＤＭＡプロトコル通信を同時に実行することと、
前記第２の物理ポートの前記第２のＶＬＡＮデバイスによって前記第２の物理ポートでＴＣＰプロトコル通信を実行することとを含む、請求項７に記載の方法。
【請求項１０】
前記第２のＶＬＡＮデバイスを介して前記第２のネットワーク通信プロトコルによってネットワーク通信を実行するように前記コンピュータ・システムの前記アプリケーションをプログラミングするステップが、
前記第２のネットワーク通信プロトコルに関する第２の命令モジュールによって通信を実行するように前記第１のアプリケーションまたは第２のアプリケーションをプログラミングするステップを含み、前記第２の命令モジュールが、アクティブ−アクティブ・モードを提供し、前記第２のＶＬＡＮデバイスで前記第２のネットワーク通信プロトコルによって前記ネットワーク通信を実行することが、
前記論理的にボンディングされた仮想デバイスにより前記第１の物理ポートと前記第２の物理ポートとの両方で前記第２のネットワーク通信プロトコルによって前記ネットワーク通信を実行することであって、両方の前記第２のＶＬＡＮデバイスが同時に通信する、前記実行することをさらに含む、請求項７に記載の方法。
【請求項１１】
前記第２のＶＬＡＮデバイスを介して前記第２のネットワーク通信プロトコルによってネットワーク通信を実行するように前記コンピュータ・システムの前記第１のアプリケーションまたは第２のアプリケーションをプログラミングするステップが、
前記第２のネットワーク通信プロトコルに関する第２の命令モジュールによって通信を実行するように前記第１のアプリケーションまたは前記第２のアプリケーションをプログラミングするステップを含み、前記第２の命令モジュールが、アクティブ−バックアップ・モードを提供し、前記第２のＶＬＡＮデバイスで前記第２のネットワーク通信プロトコルによって前記ネットワーク通信を実行することが、
前記論理的にボンディングされた仮想デバイスによって前記第１の物理ポートおよび前記第２の物理ポートのうちの１つで前記第２のネットワーク通信プロトコルによって前記ネットワーク通信を実行することであって、前記第２のＶＬＡＮデバイスのうちの１つのみが一度に通信し、前記第２のＶＬＡＮデバイスのうちの通信している方の前記第２のＶＬＡＮデバイス、または前記通信している方の前記第２のＶＬＡＮデバイスの関連する物理ポートが故障するとき、前記第２のＶＬＡＮデバイスのうちのもう一方の前記第２のＶＬＡＮデバイスが、前記通信を引き継ぐ、前記実行することをさらに含む、請求項７に記載の方法。
【請求項１２】
それぞれの第１のネットワーク・アドレスおよび第２のネットワーク・アドレスで前記第１のＶＬＡＮデバイスを構成するステップと、
第３のネットワーク・アドレスで前記ボンディングされた仮想デバイスを構成するステップとを含む、請求項６に記載の方法。
【請求項１３】
コンピュータに、請求項１−１２に記載の方法の各ステップを実行させるためのコンピュータ・プログラム。
【請求項１４】
ネットワーク・アダプタの第１の物理ポートおよび第２の物理ポートのそれぞれで構成された第１の仮想ローカル・エリア・ネットワーク（「ＶＬＡＮ」）デバイスおよび第２のＶＬＡＮデバイスを有し、論理的にボンディングされた仮想デバイスとして構成された前記第２のＶＬＡＮデバイスを有するネットワーク・アダプタを含む、コンピュータ・システム。
【請求項１５】
コンピュータ可読ストレージ媒体に記憶され、前記第１のＶＬＡＮデバイスを介して第１のネットワーク通信プロトコルによってネットワーク通信を実行するようにプログラミングされた第１のアプリケーションと、
コンピュータ可読ストレージ媒体に記憶され、前記第２のＶＬＡＮデバイスを介して第２のネットワーク通信プロトコルによってネットワーク通信を実行するようにプログラミングされたアプリケーションとを含み、前記第１のＶＬＡＮデバイスのうちの少なくとも１つが、前記第１のネットワーク通信プロトコルによるネットワーク通信を提供し、同時に、前記論理的にボンディングされた仮想デバイスが、前記第２のネットワーク通信プロトコルによるネットワーク通信を提供する、請求項１４に記載のコンピュータ・システム。
【請求項１６】
前記第１のネットワーク通信プロトコルが、リモート・ダイレクト・メモリ・アクセス（「ＲＤＭＡ」）プロトコルを含み、前記第２のネットワーク通信プロトコルが、伝送制御プロトコル（「ＴＣＰ」）プロトコルを含む、請求項１５に記載のコンピュータ・システム。
【請求項１７】
前記第１のネットワーク通信プロトコルによって前記第１のＶＬＡＮデバイスのうちの少なくとも１つで前記ネットワーク通信を実行し、前記第２のネットワーク通信プロトコルによって前記論理的にボンディングされた仮想デバイスで前記ネットワーク通信を実行することが、
前記第１のＶＬＡＮデバイスによって前記第１の物理ポートと前記第２の物理ポートとの両方でＲＤＭＡプロトコル通信を同時に実行することと、
前記第２の物理ポートの前記第２のＶＬＡＮデバイスによって前記第２の物理ポートでＴＣＰプロトコル通信を実行することとを含む、請求項１５に記載のコンピュータ・システム。
【請求項１８】
前記第１のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第１の命令モジュールと、
前記第２のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第２の命令モジュールとを含み、前記第１のアプリケーションまたは第２のアプリケーションが、前記第２のネットワーク通信プロトコルに関する前記第２の命令モジュールによって通信を実行するようにプログラミングされ、前記第２の命令モジュールが、前記ボンディングされた仮想デバイスのためにアクティブ−アクティブ・モードを提供するようにプログラミングされ、前記論理的にボンディングされた仮想デバイスで前記第２のネットワーク通信プロトコルによって前記ネットワーク通信を実行することが、
前記論理的にボンディングされた仮想デバイスにより前記第１の物理ポートと前記第２の物理ポートとの両方で前記第２のネットワーク通信プロトコルによって前記ネットワーク通信を実行することであって、両方の前記第２のＶＬＡＮデバイスが同時に通信する、前記実行することをさらに含む、請求項１５に記載のコンピュータ・システム。
【請求項１９】
前記第１のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第１の命令モジュールと、
前記第２のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第２の命令モジュールとを含み、前記第１のアプリケーションまたは第２のアプリケーションが、前記第２のネットワーク通信プロトコルに関する前記第２の命令モジュールによって通信を実行するようにプログラミングされ、前記第２の命令モジュールが、前記ボンディングされた仮想デバイスのためにアクティブ−バックアップ・モードを提供するようにプログラミングされ、前記論理的にボンディングされた仮想デバイスで前記第２のネットワーク通信プロトコルによって前記ネットワーク通信を実行することが、
前記論理的にボンディングされた仮想デバイスによって前記第１の物理ポートおよび前記第２の物理ポートのうちの１つで前記第２のネットワーク通信プロトコルによって前記ネットワーク通信を実行することであって、前記第２のＶＬＡＮデバイスのうちの１つのみが一度に通信し、前記第２のＶＬＡＮデバイスのうちの通信している方の前記第２のＶＬＡＮデバイス、または前記通信している方の前記第２のＶＬＡＮデバイスの関連する物理ポートが故障するとき、前記第２のＶＬＡＮデバイスのうちのもう一方の前記第２のＶ
ＬＡＮデバイスが、前記通信を引き継ぐ、前記実行することをさらに含む、請求項１５に記載のコンピュータ・システム。
【請求項２０】
前記第１のＶＬＡＮデバイスが、それぞれの第１のネットワーク・アドレスおよび第２のネットワーク・アドレスで構成され、前記ボンディングされた仮想デバイスが、第３のネットワーク・アドレスで構成される、請求項１５に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
現在のオペレーティング・システムにおいては、概して、ＴＣＰ／ＩＰによるコンピュータ・システムへのデータ転送が、システムのＯＳカーネルのネットワーク・スタック内での処理を必要とし、この処理は、言うまでもなく、システムのＣＰＵの関与を必要とする。
【背景技術】
【０００２】
その結果、現在の高速なイーサネット（Ｒ）技術での比較的高速な転送は、特に、ストレージ・サーバなどの大きなトラフィックを処理するサーバに関して、ＣＰＵへの負荷を増大させる傾向がある。この理由およびその他の理由で、ネットワーク業界およびそのインターネット技術タスク・フォース（Internet Engineering Task Force）は、ＩｎｆｉｎｉＢａｎｄおよびｉＷＡＲＰを含むリモート・ダイレクト・メモリ・アドレス指定（remote direct memory addressing）（「ＲＤＭＡ」）のための代替的なＯＳＩトランスポート・レイヤの特徴を定義した。
【０００３】
これまでは、ＴＣＰ、ＲＤＭＡ、ファイバ・チャネルなどのさまざまな種類の通信ファブリックが、それぞれ、独自の専用のデバイスおよびスイッチを持っていた。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一実施形態の一形態によって、ネットワーク通信のためのコンピュータ・プログラム製品が提供される。その他の形態では、システム、およびコンピュータで実装される方法が提供される。
【課題を解決するための手段】
【０００５】
１つの実装においては、コンピュータ・システムが、ネットワーク・アダプタの第１の物理ポートおよび第２の物理ポートのそれぞれで構成された第１の仮想ローカル・エリア・ネットワーク（「ＶＬＡＮ」）デバイスおよび第２のＶＬＡＮデバイスを有し、論理的にボンディングされた仮想デバイスとして構成された第２のＶＬＡＮデバイスを有するネットワーク・アダプタを含む。
【０００６】
別の態様において、コンピュータ・システムは、コンピュータ可読ストレージ媒体に記憶され、第１のＶＬＡＮデバイスを介して第１のネットワーク通信プロトコルによってネットワーク通信を実行するようにプログラミングされた第１のアプリケーションを含む。
【０００７】
別の態様において、コンピュータ・システムは、コンピュータ可読ストレージ媒体に記憶され、第２のＶＬＡＮデバイスおよび論理的にボンディングされた仮想デバイスを介して第２のネットワーク通信プロトコルによってネットワーク通信を実行するようにプログラミングされたアプリケーションを含み、第１のＶＬＡＮデバイスのうちの少なくとも１つが、第１のネットワーク通信プロトコルによるネットワーク通信を提供し、同時に、論理的にボンディングされた仮想デバイスが、第２のネットワーク通信プロトコルによるネットワーク通信を提供する。
【０００８】
別の態様において、第１のネットワーク通信プロトコルは、リモート・ダイレクト・メモリ・アクセス（remote direct memory access）（「ＲＤＭＡ」）プロトコルを含み、第２のネットワーク通信プロトコルは、伝送制御プロトコル（「ＴＣＰ」）プロトコルを含む。
【０００９】
別の態様において、第１のネットワーク通信プロトコルによって第１のＶＬＡＮデバイスのうちの少なくとも１つでネットワーク通信を実行し、第２のネットワーク通信プロトコルによって論理的にボンディングされた仮想デバイスでネットワーク通信を実行することは、第１のＶＬＡＮデバイスによって第１の物理ポートと第２の物理ポートとの両方でＲＤＭＡプロトコル通信を同時に実行することと、論理的にボンディングされた仮想デバイス、および第２のＶＬＡＮデバイスのうちの第２の物理ポートの第２のＶＬＡＮデバイスによって第２の物理ポートでＴＣＰプロトコル通信を実行することとを含む。
【００１０】
別の態様において、コンピュータ・システムは、第１のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第１の命令モジュールと、第２のネットワーク通信プロトコルを実行するための、コンピュータ可読媒体に記憶された命令を有する第２の命令モジュールとを含む。第１のアプリケーションまたは第２のアプリケーションは、第２のネットワーク通信プロトコルに関する第２の命令モジュールによって通信を実行するようにプログラミングされ、第２の命令モジュールは、ボンディングされた仮想デバイスのためにアクティブ−アクティブ・モードを提供するようにプログラミングされる。
【００１１】
別の態様において、論理的にボンディングされた仮想デバイスで第２のネットワーク通信プロトコルによってネットワーク通信を実行することは、論理的にボンディングされた仮想デバイスにより第１の物理ポートと第２の物理ポートとの両方で第２のネットワーク通信プロトコルによってネットワーク通信を実行することであって、両方の第２のＶＬＡＮデバイスが同時に通信する、実行することをさらに含む。
【００１２】
別の態様において、第２の命令モジュールは、ボンディングされた仮想デバイスのためにアクティブ−バックアップ・モードを提供するようにプログラミングされ、論理的にボンディングされた仮想デバイスで第２のネットワーク通信プロトコルによってネットワーク通信を実行することは、論理的にボンディングされた仮想デバイスによって第１の物理ポートおよび第２の物理ポートのうちの１つで第２のネットワーク通信プロトコルによってネットワーク通信を実行することであって、第２のＶＬＡＮデバイスのうちの１つのみが一度に通信し、第２のＶＬＡＮデバイスのうちの通信している方の第２のＶＬＡＮデバイス、または通信している方の第２のＶＬＡＮデバイスの関連する物理ポートが故障するとき、第２のＶＬＡＮデバイスのうちのもう一方の第２のＶＬＡＮデバイスが、通信を引き継ぐ、実行することをさらに含む。
【００１３】
別の態様において、第１のＶＬＡＮデバイスは、それぞれの第１のネットワーク・アドレスおよび第２のネットワーク・アドレスで構成され、ボンディングされた仮想デバイスは、第３のネットワーク・アドレスで構成される。
【００１４】
本発明に特有と考えられる新規性のある特徴は、添付の請求項に記載されている。しかし、本発明自体、ならびに本発明の好ましい使用の形態、さらなる目的、および利点は、添付の図面と併せて読まれるときに、１つまたは複数の例示的な実施形態の以下の詳細な説明を参照することによって最も深く理解されるであろう。
【図面の簡単な説明】
【００１５】
【図１】本発明の１つまたは複数の実施形態による分散型データ処理システムを示す例示的なブロック図である。
【図２】本発明の１つまたは複数の実施形態によるサーバ装置の例示的なブロック図である。
【図３】本発明の１つまたは複数の実施形態によるクライアント装置の例示的なブロック図である。
【図４】本発明の１つまたは複数の実施形態によるプロセス、構造、およびコンピュータ・プログラム製品の概要を示す例示的なブロック図である。
【図５】本発明の１つまたは複数の実施形態による構成の態様のより詳細な図を示す別の例示的なブロック図である。
【図６】本発明の１つまたは複数の実施形態による例示的なプロセスの態様を示す流れ図である。
【発明を実施するための形態】
【００１６】
概して、ラック式サーバで実行される高性能クラスタは、複数のアダプタのための複数の利用可能なＩ／Ｏ拡張スロットを有する。しかし、ブレード・サーバまたはＩＢＭ  ＰｕｒｅＦｌｅｘ  ＩＴＥなどの比較的小型のフォーム・ファクタのより強力なサーバは、より限られた数のＩ／Ｏ拡張スロットを有する傾向がある。（ＰｕｒｅＦｌｅｘは、ＩＢＭの商標である）  場合によっては、２つのＩ／Ｏ拡張スロットのみが、３つ以上のプロトコルをサポートするために利用可能である。この理由と、さらにはコンバージド・ネットワーク（converged network）の登場とにより、複数のプロトコルが、Ｉ／Ｏデバイスおよびスイッチの単一の組によって処理されることがある。
【００１７】
今日、最もよく使われているプロトコルは、イーサネット（Ｒ）であり、イーサネット（Ｒ）では、ＴＣＰが既にネイティブで動作する。ＲＤＭＡは、ＲＤＭＡオーバ・コンバージド・エンハンスト・イーサネット（Ｒ）（ＲｏＣＥＥ：RDMA over Converged Enhanced Ethernet）モードで動作することができ、ファイバ・チャネルは、ファイバ・チャネル・オーバ・イーサネット（Ｒ）（Fibre Channel over Ethernet）で動作することができる。これらのファブリックのそれぞれは、異なる可能性がある独自の特性および能力を有する。
【００１８】
２つのＩ／Ｏアダプタによって３つの異なるプロトコルを実行するためには、どのプロトコルが組み合わされるのかについての選択がなされなければならない。例えば、ファイバ・チャネルが第１のアダプタのために選択され、イーサネット（Ｒ）が第２のアダプタのために選択される場合、第２のアダプタによってＲＤＭＡオーバ・イーサネット（Ｒ）（RDMA over Ethernet）を実行することが可能である。しかし、同じアダプタでのＲＤＭＡおよびＴＣＰトラフィックのこの統合は、有用であるが、制限もある。
【００１９】
コンピュータ・システム４００の単一のネットワークＩ／Ｏアダプタ４１０が、本発明の１つまたは複数の実施形態にしたがって、図４で高レベルの観点で示される。アダプタ４１０は、スイッチｓｗ＿ｅｔｈ０およびｓｗ＿ｅｔｈ１に接続される２つのイーサネット（Ｒ）・ポートｐｏｒｔ＿ｅｔｈ０およびｐｏｒｔ＿ｅｔｈ１に関する構成４１４を有する。つまり、スイッチｓｗ＿ｅｔｈ０およびｓｗ＿ｅｔｈ１が、構成４１４を介してそれらのポートｐｏｒｔ＿ｅｔｈ０およびｐｏｒｔ＿ｅｔｈ１にネットワーク４２０を接続し、ポートｐｏｒｔ＿ｅｔｈ０およびｐｏｒｔ＿ｅｔｈ１は、バス（図示せず）を介してＣＰＵ４４０などの１つまたは複数の中央演算処理装置への経路を提供する。共通のファブリックは、イーサネット（Ｒ）であり、ＴＣＰおよびＲＤＭＡトラフィックが単一のアダプタ４１０で集約される。ポートｅｔｈ０は、ネットワーク４２０を介したリモート・デバイス４５０などのリモート・デバイスへの、およびリモート・デバイスからの分離されたＴＣＰ通信のための初期の通常の動作のモードを提供し、一方、ポートｐｏｒｔ＿ｅｔｈ１は、分離されたＲＤＭＡ通信のための初期の通常の動作のモード、すなわち、ＲＤＭＡオーバ・コンバージド・エンハンスト・イーサネット（Ｒ）（ＲｏＣＥＥ）を提供する。（代替的な実施形態においては、ＴＣＰトラフィックが、常に、ポートｅｔｈ０とｅｔｈ１との両方で実行される。しかし、これは、ｅｔｈ０がＴＣＰで最高速度で動作し得るが、ｅｔｈ１はＴＣＰとＲＤＭＡとの両方のトラフィックを有するので、偏った性能をもたらす可能性がある。）
【００２０】
本発明の実施形態において、構成４１４は、１つまたは複数のプロセッサと、メモリと、１つまたは複数のプロセッサに、概して１つまたは複数のバスを含む通信のための相互接続回路を介して本明細書において説明されるようにトラフィックを導かせるための命令とを含む。実施形態において、構成４１４は、これらの機能の一部またはすべてを実行するための１つまたは複数の特定用途向け集積回路を含む可能性がある。
【００２１】
システム４００は、ＣＰＵ４４０と、命令のカーネル４３２を含むオペレーティング・システム４３６の命令をロードされたメモリ４３０とを含む。カーネル４３２は、ＣＰＵ４４０に標準的なＴＣＰおよびボンディング機能をそれぞれ実行させるように構成され、動作可能な命令のＴＣＰモジュール４３３およびボンディング・モジュール４３５を含む。メモリ４３０は、データベースまたはその他のアプリケーションなどのアプリケーション４３８の命令もロードされる。例えば、アプリケーション４３８は、クラスタ動作に好適な分散型エンタープライズ・データベース・アプリケーション、例えば、ＩＢＭの商標であるｄＢ２である可能性がある。
【００２２】
実施形態においては、アプリケーション４３８は、ＲＤＭＡ式の通信とＴＣＰ式の通信との両方を同時に使用し、ＣＰＵ４４０に標準的なＲＤＭＡ機能を実行させるように構成され、動作可能な命令を有するＲＤＭＡモジュール４３９を含む。その他の実施形態においては、単一のアプリケーション４３８の別々のインスタンス、またはそうでなければ異なる種類の別々のアプリケーションが、それぞれ、単一のネットワーク通信プロトコルを使用する可能性がある。いずれにせよ、システムは、２つの異なるネットワーク通信プロトコル、すなわち、例示的な場合ではＲＤＭＡおよびＴＣＰを用いる同時通信のために構成される。
【００２３】
メモリ４３０は、ネットワーク・アダプタ４１０に関する通信構成パラメータを記憶するための、ＲＤＭＡモジュール４３９およびＴＣＰモジュール４３３を含むネットワーク通信モジュールに関連する不揮発性メモリ４３４を含む。モジュール４３９は、アプリケーション４３８に含まれる命令の組として示されており、一方、モジュール４３３および４３５は、オペレーティング・システム４３６の命令のカーネル４３２の命令に含まれる命令の組として示される。しかし、異なる実施形態においては、命令が互いに異なるように関連付けられるが、実質的に同じ機能をやはり提供し得ることを理解されたい。同様に、構成４１４およびメモリ４３４の位置は、代替的な実施形態においては変わり得る。
【００２４】
通信プロトコル、ＶＬＡＮおよびボンディング・デバイス、ならびにＩＰアドレス構成などに関する本明細書において説明される初期化、構成、またはプログラミングは、ポート／スイッチに関連するネットワーク・アダプタの構成４１４の不揮発性メモリ、ならびにネットワーク通信モジュールおよびアプリケーションに関連するメモリ４３４に構成パラメータを記憶することを含む。初期化は、ネットワーク管理者が（ローカルまたはリモートで）ポートｅｔｈ０およびｅｔｈ１との通信を開始することによって実行される可能性があり、通信を開始することは、ＯＳ４３６のユーザ・インターフェースを介して、またはネットワーク管理アプリケーションを介して手動で行われる可能性があり、例えば、ポートｅｔｈ０およびｅｔｈ１は、ポートに関する構成４１４のメモリ、ならびにモジュール４３３および４３９に関するメモリ４３４に構成データを確立するためにネットワーク４２０を介してリモートのアプリケーションから信号を受信する。
【００２５】
理想的な環境においては、同じファブリックを通るすべてのプロトコルは、同様の共有された特質を有する。しかし、ＴＣＰが、損失のあるプロトコルであり、イーサ・チャネル・ボンディングをサポートする一方、ＲＤＭＡは、損失のない通信を必要とし、ボンディングをサポートしない。これに対処するために、本発明の実施形態によれば、図５に示されるように、ポートｅｔｈ０およびｅｔｈ１は、仮想デバイスを含むように初期化され、ｅｔｈ０は、仮想ローカル・エリア・ネットワーク・デバイスＶＬＡＮ７１０（ｅｔｈ０．７１０として示される）および４０３３（ｅｔｈ０．４０３３として示される）を生成するように構成され、同様に、ｅｔｈ１も、仮想ローカル・エリア・ネットワーク・デバイスＶＬＡＮ７１０（ｅｔｈ１．７１０として示される）および４０３３（ｅｔｈ１．４０３３として示される）を生成するように構成される。
【００２６】
示された場合では、ＩＰアドレス１７２．２３．７．１０１が、その後、ＲＤＭＡトラフィックのためにＶＬＡＮデバイスｅｔｈ１．４０３３に対して初期化され、したがって、リモート・デバイス４５０は、１７２．２３．７．１０１のＩＰアドレスおよびｅｔｈ１．４０３３ＶＬＡＮタグ・デバイスを用いてポートｐｏｒｔ＿ｅｔｈ１を介してＲＤＭＡトラフィックを送受信し得る。（代替的に、示された場合では、リモート・デバイス４５０は、ＶＬＡＮ  ｉｄ４０３３でパケットをタグ付けし、それらのパケットをネットワーク４２０で送信する可能性があり、コンピュータ・システム４００は、それらのパケットをｅｔｈ１．４０３３ＶＬＡＮデバイスで受信する。）  ＴＣＰに関して、示されるように、２つの定義されたＶＬＡＮ７１０でポートｐｏｒｔ＿ｅｔｈ０とｐｏｒｔ＿ｅｔｈ１との両方に渡るボンドが初期化され、つまり、ｂｏｎｄ０−＞［ｅｔｈ０．７１０，ｅｔｈ１．７１０］である。示された場合では、ＩＰアドレス１０．２１．１．１０１が、ＴＣＰトラフィックのためにｂｏｎｄ０に対して初期化され、したがって、リモート・デバイス４５０は、１０．２１．１．１０１のＩＰアドレスおよびｅｔｈ０．７１０ＶＬＡＮタグまたはｅｔｈ１．７１０ＶＬＡＮタグを用いてポートｐｏｒｔ＿ｅｔｈ０またはｐｏｒｔ＿ｅｔｈ１を介してＴＣＰトラフィックを送受信し得る。
【００２７】
ＶＬＡＮデバイスｅｔｈ０．７１０およびｅｔｈ１．７１０がそれぞれのポートｐｏｒｔ＿ｅｔｈ０およびｐｏｒｔ＿ｅｔｈ１で生成され、次いで、ＶＬＡＮデバイスｅｔｈ０．７１０およびｅｔｈ１．７１０がボンディングされる（ｂｏｎｄ０）上述の構成は、ポートをボンディングし、それから、ボンド・デバイス（bond device）でＶＬＡＮデバイスを生成することとは異なることを理解されたい。２つのポートが直接ボンディングされ、そのことが、ＴＣＰの負荷分散およびフェイルオーバに関する利点をもたらす場合、現在知られているＲＤＭＡ技術によれば、どちらのポートも、ＲＤＭＡプロトコル通信のために使用され得ない。したがって、直接ボンディングは、さらなるネットワーク・アダプタがＲＤＭＡ通信に対応することを必要とする結果となる傾向がある。図５の示された実施形態のように、ポートｐｏｒｔ＿ｅｔｈ０およびｐｏｒｔ＿ｅｔｈ１でＶＬＡＮデバイスｅｔｈ０．７１０およびｅｔｈ１．７１０を生成し、ポートの代わりにＶＬＡＮデバイスをボンディングすることによって、これは、ＲＤＭＡプロトコル通信のためにポートｐｏｒｔ＿ｅｔｈ０およびｐｏｒｔ＿ｅｔｈ１を使用することを可能にし、さらに、ＴＣＰ通信のためにそれぞれのポートのボンディングされたＶＬＡＮデバイスｅｔｈ０．７１０およびｅｔｈ１．７１０を使用することを可能にする。
【００２８】
つまり、本発明の１つまたは複数の実施形態によれば、ＲＤＭＡ命令モジュール４３９は、ＴＣＰ通信のために論理的にボンディングされた物理ポートでＲＤＭＡネットワーク通信プロトコルによって通信するための命令を提供しない。結果として、そのような実施形態に関しては、ネットワーク・アダプタ４１０は、直接論理的にボンディングされる物理ポートでＲＤＭＡネットワーク通信プロトコルによって通信することができない。しかし、ネットワーク・アダプタのＶＬＡＮデバイスｅｔｈ０．７１０およびｅｔｈ１．７１０が仮想デバイスｂｏｎｄ０として論理的にボンディングされるので、これは、ＲＤＭＡおよびＴＣＰネットワーク通信プロトコルによる同時通信を可能にする。
【００２９】
さらに詳しく説明すると、物理ポートｐｏｒｔ＿ｅｔｈ０およびｐｏｒｔ＿ｅｔｈ１自体はｂｏｎｄ０を含む経路でアクセス可能であるが、ポートは、ポートとボンドとの間に置かれたＶＬＡＮデバイスｅｔｈ０．７１０およびｅｔｈ１．７１０によってボンドから分離されているので、依然としてＲＤＭＡトラフィックを有する可能性がある。オペレーティング・システム４３６は、ＶＬＡＮ仮想デバイスを別々のものと見る。実施形態において、図５のＲＤＭＡトラフィックは、ＶＬＡＮデバイスｅｔｈ０．７１０およびＶＬＡＮデバイスｅｔｈ１．７１０で定義されたＴＣＰボンドの一部ではない別々の仮想デバイス（ＶＬＡＮデバイスｅｔｈ１．４０３３）を通っている。
【００３０】
各ポートｐｏｒｔ＿ｅｔｈ０およびｐｏｒｔ＿ｅｔｈ１は、上述のように、別々の物理的スイッチｓｗ＿ｅｔｈ０およびｅｔｈ１に接続される。最低限、リモート・デバイス４５０などの接続するホストは、その接続するホストがＲＤＭＡによって通信するポートに関連する１つのスイッチ、例えば、上述され、図５に示された例示的な場合ではｐｏｒｔ＿ｅｔｈ１およびｓｗ＿ｅｔｈ１にのみ接続するように構成される必要がある。したがって、上述のようにＶＬＡＮデバイスｅｔｈ１．４０３３に関してアダプタ４１０で初期化された少なくともＲＤＭＡのＩＰアドレス１７２．２３．７．１０１が、接続するホスト・リモート・デバイス４５０の構成メモリ４５２で初期化される。しかし、接続するホスト・リモート・デバイス４５０が（ＶＬＡＮデバイスｅｔｈ０．４０３３およびｅｔｈ１．４０３３を介して）ｐｏｒｔ＿ｅｔｈ０とｐｏｒｔ＿ｅｔｈ１との両方に接続するように構成される、本発明の実施形態に関するＲＤＭＡフェイルオーバの特徴またはそうでなければ２ＲＤＭＡポート通信モードで有利に動作することが、より理想的である可能性がある。どちらの場合も、ＩＰアドレス１７２．２３．６．１０１が、ＲＤＭＡに関して、ＶＬＡＮデバイスｅｔｈ０．４０３３、および接続するホスト・リモート・デバイス４５０の構成メモリ４５２に対して直接さらに初期化され、したがって、識別子４０３３のＶＬＡＮタグを有するＲＤＭＡトラフィックもｐｏｒｔ＿ｅｔｈ０を通る可能性がある。２ポート通信モードに関しては、ＲＤＭＡ  ＶＬＡＮ  ｅｔｈ０．４０３３とｅｔｈ１．４０３３との両方が、ＲＤＭＡモジュール４３９によってアクティブであるように構成される。フェイルオーバ・モードに関しては、モジュール４３９は、ＶＬＡＮデバイスｅｔｈ１．４０３３をアクティブであるように構成し、ＶＬＡＮデバイスｅｔｈ０．４０３３をフェイルオーバのバックアップであるように構成する。
【００３１】
要約すると、中断のないフェイルオーバのために、ｓｗ＿ｅｔｈ０またはｐｏｒｔ＿ｅｔｈ０が故障した場合に、依然として動作しているｓｗ＿ｅｔｈ１およびｐｏｒｔ＿ｅｔｈ１を介してホストがシステム４００に到達し続けることができ、同様に、ｓｗ＿ｅｔｈ１またはｐｏｒｔ＿ｅｔｈ１が故障した場合に、依然として動作しているｓｗ＿ｅｔｈ０およびｐｏｒｔ＿ｅｔｈ０を介してホストがシステム４００に到達し続けることができるように、ＲＤＭＡトラフィックかＴＣＰトラフィックかのどちらかをシステム４００に送信する（例えば、図４のデバイス４５０のような）リモート・ホストが、ｐｏｒｔ＿ｅｔｈ０に関する物理的スイッチｓｗ＿ｅｔｈ０とｐｏｒｔ＿ｅｔｈ１に関する物理的スイッチｓｗ＿ｅｔｈ１との両方に接続するように構成される。
【００３２】
さらにフェイルオーバに関して、ＴＣＰフェイルオーバとＲＤＭＡフェイルオーバとの両方が、本発明の１つまたは複数の実施形態によって容易にされる。アクティブ−バックアップ・ボンディングは、ＴＣＰ通信に対しては、ＴＣＰトラフィックとＲＤＭＡトラフィックとの両方を一貫して早く流れ続けさせるための方法として提供される可能性があり、つまり、両方のＶＬＡＮデバイスがＴＣＰトラフィックを同時に許可するアクティブ−アクティブ・ボンディングではない可能性がある。アクティブ−バックアップ・ボンディングによるＴＣＰフェイルオーバに関しては、ＴＣＰモジュール４３３がｐｏｒｔ＿ｅｔｈ０またはｓｗ＿ｅｔｈ０の故障を検出すると、それに応じて、モジュール４３５が、トラフィックが途切れることなく継続するようにＴＣＰのｂｏｎｄ０のトラフィックをｐｏｒｔ＿ｅｔｈ１に自動的に切り替え、これは、標準的なボンディング・モジュールのサポートされる特徴である。同様に、ｐｏｒｔ＿ｅｔｈ０およびｓｗ＿ｅｔｈ０が再び利用可能であることを検出することに応じて、モジュール４３３は、ＴＣＰトラフィックを再び自動的に切り替えてｐｏｒｔ＿ｅｔｈ０に戻す。ＲＤＭＡフェイルオーバに関しては、本発明の１つまたは複数の実施形態によれば、アプリケーション４３８が、ＲＤＭＡモジュール４３９をやはり提供され、モジュール４３９は、ＣＰＵ４４０に自動フェイルオーバ機能を実行されるように動作可能な命令で構成される。（通常のカーネルは、ＲＤＭＡに関してこの種のフェイルオーバを自動的に処理することができない。）  ＲＤＭＡモジュール４３９がｅｔｈ１ポートまたはスイッチの故障を検出することに応じて、モジュール４３９は、ＲＤＭＡトラフィックをｐｏｒｔ＿ｅｔｈ１からｐｏｒｔ＿ｅｔｈ０に自動的に切り替える。同様に、ＲＤＭＡモジュール４３９は、ｅｔｈ１のリンクが再確立されることを検出するとき、自動的に、ＲＤＭＡ接続を再構成し、ｐｏｒｔ＿ｅｔｈ１でのＲＤＭＡ動作を再開する。
【００３３】
ＴＣＰおよびＲＤＭＡが両方とも同じポートで同時に実行される場合、ＴＣＰとＲＤＭＡとの両方に関して性能が低下する可能性があることを理解されたい。ＴＣＰアクティブ−バックアップ・モードに関して上で説明されたように、ＶＬＡＮデバイスを使用し、分離されたＴＣＰおよびＲＤＭＡトラフィックが別々のポートを流れるようにシステム４００を構成することによって、概して、性能は、ＴＣＰとＲＤＭＡとの両方を同じポートで同時に実行する（すなわち、アクティブ−アクティブ・モード）のと比較して高められる。アクティブ−バックアップ・モードのこの専用ポート構成は、本発明の実施形態によれば、ＴＣＰの割り振られたＶＬＡＮデバイスｅｔｈ０．７１０およびｅｔｈ１．７１０のボンディングによってＴＣＰがポートｐｏｒｔ＿ｅｔｈ０またはｐｏｒｔ＿ｅｔｈ１のどちらか一方で実行され得るので、そのような分離に通常つきまとう故障モードのリスクの欠点なしに、本明細書において説明されるように実現される。このボンディング構成の別の利点は、ＲＤＭＡトラフィックが特定の状況で少なくなる傾向がある場合に、構成が、２つのそれぞれのポートのボンディングされたＴＣＰの割り振られたＶＬＡＮデバイスでアクティブ−アクティブ・モードで実行されるようにＴＣＰを構成することを許し、それによって、２倍の帯域幅およびスループットを実現するが、ＴＣＰおよびＲＤＭＡプロトコルのそれぞれのためのネットワーク・アダプタを持つことがないことである。
【００３４】
ここで図６を参照すると、本発明の１つまたは複数の実施形態にしたがって実行されるプロセスを示す流れ図が、示されている。
【００３５】
一態様において、プロセスは、ネットワーク・アダプタのそれぞれの第１および第２の物理ポートで第１および第２の仮想ローカル・エリア・ネットワーク（「ＶＬＡＮ」）デバイスを構成すること（６０４）を含む。これは、管理者がコンピュータ・システムのオペレーティング・システムまたは何らかのその他のアプリケーションの管理者インターフェースを使用することによって行われ得る。それは、アプリケーション・プログラミング・インターフェース（「ＡＰＩ」）を用いて構成プログラムによって自動的に行われ得る。管理者は、オペレーティング・システムまたは別々のネットワーク通信アプリケーションの命令によって提供される機能に、管理者インターフェースを介して直接か、または構成プログラムおよびＡＰＩを介して間接的にかのどちらかでアクセスして、ポートを指し示す（つまり、ポートに関連する仮想ＬＡＮデバイスに関するアドレスとして働く）ＶＬＡＮタグを有するデータ構造を生成し、システムの不揮発性メモリに記憶する。データ構造を生成し、物理ポートに関連する物理メモリに記憶するこのプロセスは、「初期化」、「構成」、「プログラミング」などと呼ばれる可能性がある。
【００３６】
別の態様において、プロセスは、第２のＶＬＡＮデバイスを、論理的にボンディングされた仮想デバイスとして構成すること（６０８）を含む。別の態様において、ボンディング・モジュールは、ボンディングされた仮想デバイスにアクティブ−アクティブまたはそうでなければアクティブ−バックアップ通信モードを提供するようにプログラミングされる（６１０）。これは、ボンディング命令モジュールの命令によって提供される機能によって、今し方説明された方法のうちの１つで行われる可能性があり、例えば、２つのＶＬＡＮタグを指し示すボンド・タグを有するデータ構造が生成され、システムの不揮発性メモリに記憶される。ボンディング機能は、オペレーティング・システムの一部として含まれる命令モジュールによって提供される可能性があり、または別々にインストールされた命令モジュールである可能性がある。
【００３７】
別の態様において、プロセスは、それぞれの第１のおよび第２のネットワーク・アドレスで第１のＶＬＡＮデバイスを構成し、第３のネットワーク・アドレスで、ボンディングされた仮想デバイスを構成し（６１２）、その結果、ＶＬＡＮデバイスおよびボンディングされた仮想デバイスに関連する記憶されたデータ構造をもたらすことを含み、これは、本明細書において上で説明されたようにして行われ得る。
【００３８】
別の態様において、プロセスは、第１のＶＬＡＮデバイスを介して第１のネットワーク通信プロトコルによってネットワーク通信を実行するようにコンピュータ・システムの第１のアプリケーションをプログラミングし、第２のＶＬＡＮデバイスおよび論理的にボンディングされた仮想デバイスを介して第２のネットワーク通信プロトコルによってネットワーク通信を実行するようにコンピュータ・システムの第１または第２のアプリケーションをプログラミングすること（６１６）（これは第１のアプリケーションと第２のアプリケーションとの両方をプログラミングすることを含む可能性がある）を含む。第１のネットワーク通信プロトコルは、例えば、リモート・ダイレクト・メモリ・アクセス（「ＲＤＭＡ」）プロトコルである可能性があり、第２のネットワーク通信プロトコルは、例えば、伝送制御プロトコル（「ＴＣＰ」）プロトコルである可能性がある。
【００３９】
１つまたは複数のアプリケーションは、例えば、DB2 PureScale、Websphere、IBM Infosphere BigInsights、IBM Infosphere Streams、IBM Infosphere DataWarehouse、IBM PureData Systems（これらのすべてはＩＢＭの商標である）などのデータベース・アプリケーションを含む可能性があり、または他者のアプリケーションを含む可能性がある。このプログラミングすることは、１つまたは複数のアプリケーションの命令によって提供される機能によって、上で説明された方法のうちの１つで行われる可能性があり、例えば、各アプリケーションがネットワークで通信するために使用する通信プロトコルモジュールにアプリケーションを関連付け（つまり、アプリケーションを向け）、さらに各アプリケーションを通信のために使用すべき１つまたは複数のＩＰアドレスに向けるデータ構造が生成され、システムの不揮発性メモリに記憶される。よって、第１のアプリケーションは、第１のネットワーク通信プロトコルに関する第１の命令モジュールを実行することによって第１の通信を行うようにプログラミングされ、第１のアプリケーションまたは第２のアプリケーションは、第２のネットワーク通信プロトコルに関する第２の命令モジュールを実行することによって第２の通信を行うようにプログラミングされる。したがって、第１のＶＬＡＮデバイスのうちの少なくとも１つが、第１のネットワーク通信プロトコルによるネットワーク通信を提供し、同時に、論理的にボンディングされた仮想デバイスが、第２のネットワーク通信プロトコルによるネットワーク通信を提供する。
【００４０】
諸態様において、プロセスは、コンピュータ・システムのネットワーク・アダプタの第１の物理ポートの第１のＶＬＡＮデバイスによって第１の通信を実行することを含め、第１のネットワーク通信プロトコルによってネットワークへの、およびネットワークからの第１の通信を実際に実行すること（６２０）と、第２のネットワーク通信プロトコルによってネットワークへの、およびネットワークからの第２の通信を実際に実行すること（６２４）とを含む。第２の通信は、論理的にボンディングされた仮想デバイス、および第２の物理ポートの第２のＶＬＡＮデバイスを介して第２の物理ポートで行われ、第１の通信と同時である。
【００４１】
第１の通信を実行すること（６２０）は、第１のネットワーク通信プロトコルに関する命令モジュールの命令を実行することを含み得ることを理解されたい。１つまたは複数の実施形態によれば、第１のネットワーク通信命令モジュールは、第１のネットワーク通信プロトコルによって論理的にボンディングされた物理ポートで通信するための命令を提供せず、したがって、ネットワーク・アダプタは、論理的にボンディングされた物理ポートで第１のネットワーク通信プロトコルによって通信することができない。それでもやはり、ネットワーク・アダプタのＶＬＡＮデバイスが仮想デバイスとして論理的にボンディングされる本明細書において説明される構成は、実行すること（６２０および６２４）をそれらのそれぞれの第１のおよび第２のネットワーク通信プロトコルによって同時に可能にする。
【００４２】
システムがアクティブ−アクティブ・ボンディングを提供するようにプログラミングされたか、またはアクティブ−バックアップ・ボンディングを提供するようにプログラミングされたかに応じて、本明細書において説明されたように、第２の通信は、両方の第２のＶＬＡＮデバイスが同時に通信するように、論理的にボンディングされた仮想デバイスを介して第１の物理ポートと第２の物理ポートとの両方で実行される（６３０）（アクティブ−アクティブ・モード）か、またはそうでなければ、第２のＶＬＡＮデバイスのうちの１つまたはその関連する物理ポートとの通信が失敗するときに第２のＶＬＡＮデバイスのうちの他方が通信を引き継ぐように、一度に第２のＶＬＡＮデバイスのうちの１つだけで実行される（６３４）（アクティブ−バックアップ・モード）。
【００４３】
ここで図１を参照すると、本発明が実装され得るネットワーク・データ処理システム１００の図式的表現が、示されている。ネットワーク・データ処理システム１００は、ネットワーク・データ処理システム１００内で一緒に接続されるさまざまなデバイスおよびコンピュータの間の通信リンクを提供するために使用される媒体であるネットワーク１０２を含む。ネットワーク１０２は、有線、無線通信リンク、または光ファイバ・ケーブルなどの接続を含み得る。
【００４４】
示された例においては、サーバ１０４が、ストレージ・ユニット１０６とともにネットワーク１０２に接続される。加えて、クライアント１０８、１１０、および１１２が、ネットワーク１０２に接続される。これらのクライアント１０８、１１０、および１１２は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータである可能性がある。示された例においては、サーバ１０４が、ブート・ファイル、オペレーティング・システム・イメージ、およびプログラムなどのデータをクライアント１０８、１１０、および１１２に提供する。クライアント１０８、１１０、および１１２は、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、図示されていないさらなるサーバ、クライアント、およびその他のデバイスを含み得る。示された例において、ネットワーク・データ処理システム１００は、インターネットであり、ネットワーク１０２は、プロトコルのＴＣＰ／ＩＰスイートを用いて互いに通信するネットワークおよびゲートウェイの全世界的な集合を表す。
【００４５】
図２を参照すると、図１のサーバ１０４などのサーバとして実装され得るデータ処理システムのブロック図が、本発明の一実施形態にしたがって示されている。データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２および２０４を含む対称型マルチプロセッサ（ＳＭＰ）システムである可能性がある。あるいは、単一プロセッサ・システムが使用される可能性がある。さらにシステム・バス２０６に接続されているのは、ローカル・メモリ２０９へのインターフェースを提供するメモリ・コントローラ／キャッシュ２０８である。Ｉ／Ｏバス・ブリッジ２１０が、システム・バス２０６に接続され、Ｉ／Ｏバス２１２へのインターフェースを提供する。メモリ・コントローラ／キャッシュ２０８およびＩ／Ｏバス・ブリッジ２１０は、示されるように統合される可能性がある。
【００４６】
Ｉ／Ｏバス２１２に接続された周辺装置相互接続（ＰＣＩ：peripheralcomponent interconnect）バス・ブリッジ２１４は、ＰＣＩローカル・バス２１６へのインターフェースを提供する。いくつかのモデムが、ＰＣＩローカル・バス２１６に接続される可能性がある。典型的なＰＣＩバスの実装は、４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートする。図１のネットワーク・コンピュータ１０８、１１０、および１１２への通信リンクは、アドイン・ボードを通じてＰＣＩローカル・バス２１６に接続されたモデム２１８およびネットワーク・アダプタ２２０を通じて提供され得る。さらなるＰＣＩバス・ブリッジ２２２および２２４は、さらなるモデムまたはネットワーク・アダプタがサポートされ得るさらなるＰＣＩローカル・バス２２６および２２８のためのインターフェースを提供する。このようにして、データ処理システム２００は、複数のネットワーク・コンピュータへの接続を可能にする。メモリ・マップト・グラフィックス・アダプタ２３０およびハード・ディスク２３２も、示されるように、直接的かまたは間接的かのどちらかでＩ／Ｏバス２１２に接続され得る。
【００４７】
当業者は、図２に示されたハードウェアが変わり得ることを理解するであろう。例えば、光ディスク・ドライブなどのその他の周辺機器も、示されたハードウェアに加えて、または示されたハードウェアの代わりに使用される可能性がある。示された例は、本発明に関してアーキテクチャの限定を示唆するように意図されていない。
【００４８】
図２に示されたデータ処理システムは、例えば、Advanced InteractiveExecutive（AIX）オペレーティング・システムまたはＬＩＮＵＸオペレーティング・システムを実行する、Ｎｅｗ  Ｙｏｒｋ、ＡｒｍｏｎｋのＩＢＭの製品であるIBM e-Server pSeriesシステムである可能性がある。
【００４９】
サーバ１０４は、本発明の実施形態の態様に関するユーザ・インタラクションを可能にするために、ユーザによってアクセス可能な好適なウェブサイトまたはその他のインターネットに基づくグラフィカル・ユーザ・インターフェースを提供し得る。１つの実施形態においては、Netscapeウェブ・サーバ、IBM Websphere Internetツール・スイート、IBM DB2 for Linux, Unix（Ｒ） and Windows（Ｒ）（「IBM DB2 for LUW」とも呼ばれる）プラットフォームおよびSybaseデータベース・プラットフォームが、Sun Solarisオペレーティング・システム・プラットフォームと連携して使用される。加えて、ＪＢＤＣドライバ、ＩＢＭコネクション・プーリング、およびＩＢＭ  ＭＱシリーズの接続メソッドなどのコンポーネントが、いくつかのソースへのデータ・アクセスを提供するために使用され得る。用語ウェブページは、本明細書において使用されるとき、ユーザとインタラクションするために使用される可能性があるドキュメントおよびプログラムの種類を限定するように意図されていない。例えば、典型的なウェブサイトは、標準的なＨＴＭＬドキュメントに加えて、さまざまな形態、Ｊａｖａアプレット（Ｒ）、ＪａｖａＳｃｒｉｐｔ（Ｒ）、アクティブ・サーバ・ページ（ＡＳＰ）、Ｊａｖａサーバ・ページ（ＪＳＰ）（Ｒ）、共通ゲートウェイ・インターフェース・スクリプト（ＣＧＩ）、拡張可能マークアップ言語（ＸＭＬ）、ダイナミックＨＴＭＬ、カスケーディング・スタイル・シート（ＣＳＳ）、ヘルパー・プログラム、プラグインなどを含む可能性がある。
【００５０】
ここで図３を参照すると、本発明の一実施形態の態様が実装され得るデータ処理システムを示すブロック図が、示されている。データ処理システム３００は、クライアント・コンピュータの一例である。データ処理システム３００は、周辺装置相互接続（ＰＣＩ）ローカル・バス・アーキテクチャを採用する。示された例はＰＣＩバスを採用するが、アセラレーテッド・グラフィックス・ポート（ＡＧＰ）および業界標準アーキテクチャ（ＩＳＡ）などのその他のバス・アーキテクチャが、使用される可能性がある。プロセッサ３０２および主メモリ３０４は、ＰＣＩブリッジ３０８によってＰＣＩローカル・バス３０６に接続される。ＰＣＩブリッジ３０８は、プロセッサ３０２のための統合されたメモリ・コントローラおよびキャッシュ・メモリを含む可能性もある。ＰＣＩローカル・バス３０６へのさらなる接続が、直接的なコンポーネントの相互接続またはアドイン・ボードを通じて行われる可能性がある。示された例においては、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ３１０、小型コンピュータ・システム・インターフェース（ＳＣＳＩ）ホスト・バス・アダプタ３１２、および拡張バス・インターフェース３１４が、直接的なコンポーネントの接続によってＰＣＩローカル・バス３０６に接続される。対照的に、オーディオ・アダプタ３１６、グラフィックス・アダプタ３１８、およびオーディオ／ビデオ・アダプタ３１９は、拡張スロットに挿入されたアドイン・ボードによってＰＣＩローカル・バス３０６に接続される。
【００５１】
拡張バス・インターフェース３１４は、キーボードおよびマウス・アダプタ３２０、モデム３２２、および追加のメモリ３２４に接続を提供する。ＳＣＳＩホスト・バス・アダプタ３１２は、ハード・ディスク・ドライブ３２６、テープ・ドライブ３２８、およびＣＤ−ＲＯＭドライブ３３０に接続を提供する。典型的なＰＣＩローカル・バスの実装は、３つまたは４つのＰＣＩ拡張スロットまたはアドイン・コネクタをサポートする。
【００５２】
オペレーティング・システムが、プロセッサ３０２で実行され、図３のデータ処理システム３００内のさまざまなコンポーネントを調整し、制御するために使用される。オペレーティング・システムは、マイクロソフトから入手可能なWindows XP（Ｒ）などの市販のオペレーティング・システムである可能性がある。Ｊａｖａ（Ｒ）などのオブジェクト指向プログラミング・システムが、オペレーティング・システムと連携して動作し、データ処理システム３００で実行されるＪａｖａ（Ｒ）プログラムまたはその他のプログラムからオペレーティング・システムへの呼び出しを行う可能性がある。「Ｊａｖａ（Ｒ）」は、サン・マイクロシステムズの商標である。オペレーティング・システム、オブジェクト指向オペレーティング・システム、およびプログラムに関する命令は、ハード・ディスク・ドライブ３２６などのストレージ・デバイスに置かれ、プロセッサ３０２による実行のために主メモリ３０４にロードされ得る。
【００５３】
当業者は、図３のハードウェアが実装に応じて変わり得ることを理解するであろう。フラッシュＲＯＭ（もしくは等価な不揮発性メモリ）または光ディスク・ドライブなどのその他の内部ハードウェアまたは周辺機器が、図３に示されたハードウェアに加えて、またはそれらのハードウェアの代わりに使用される可能性がある。また、本発明のプロセスは、マルチプロセッサ・データ処理システムに適用され得る。
【００５４】
別の例として、データ処理システム３００は、何らかの種類のネットワーク通信インターフェースを含むか否かにかかわらず、何らかの種類のネットワーク通信インターフェースに頼ることなくブート可能であるように構成されたスタンドアロン・システムである可能性がある。さらなる例として、データ処理システム３００は、オペレーティング・システムのファイルまたはユーザによって生成されたデータあるいはその両方を記憶するための不揮発性メモリを提供するためにＲＯＭまたはフラッシュＲＯＭあるいはその両方を用いて構成される携帯情報端末（ＰＤＡ）デバイスである可能性がある。
【００５５】
図３の示された例および上述の例は、アーキテクチャの制限を示唆するように意図されていない。例えば、データ処理システム３００は、ＰＤＡだけでなくノートブック・コンピュータまたはハンド・ヘルド・コンピュータである可能性もある。さらに、データ処理システム３００は、キオスクまたはウェブ・アプライアンスである可能性もある。さらに、本発明は、コンピュータ・システムによって使用される任意のデータ・ストレージ媒体（すなわち、フロッピー（Ｒ）・ディスク、コンパクト・ディスク、ハード・ディスク、テープ、ＲＯＭ、ＲＡＭなど）に存在する可能性がある。（用語「コンピュータ」、「システム」、「コンピュータ・システム」、および「データ処理システム」は、本明細書においては交換可能なように使用される。）
【００５６】
当業者に理解されるように、本発明の態様は、システム、方法、またはプログラム製品として具現化され得る。したがって、本発明の態様は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはすべてが概して本明細書において「回路」、「モジュール」、もしくは「システム」と呼ばれることがあるソフトウェアの態様とハードウェアの態様とを組み合わせる実施形態の形態をとる可能性がある。さらに、本発明の態様は、コンピュータ可読プログラム・コードを具現化する１つまたは複数のコンピュータ可読ストレージ媒体で具現化されたプログラム製品の形態をとる可能性がある。（しかし、１つまたは複数のコンピュータ可読媒体の任意の組み合わせが、利用される可能性がある。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体である可能性がある。）
【００５７】
コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体システム、装置、もしくはデバイス、またはこれらの任意の好適な組み合わせである可能性があるがこれらに限定されない。コンピュータ可読ストレージ媒体のより詳細な例（非網羅的なリスト）は、以下、すなわち、１つもしくは複数の配線を有する電気的な接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の好適な組み合わせを含む。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを含むまたは記憶することができる任意の有形の媒体である可能性がある。コンピュータ可読信号媒体上に具現化されるプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはこれらの任意の好適な組み合わせを含むがこれらに限定されない任意の適切な媒体を用いて送信される可能性がある。
【００５８】
コンピュータ可読信号媒体は、例えば、ベースバンドで、または搬送波の一部としてコンピュータ可読プログラム・コードを具現化する伝播されるデータ信号を含み得る。そのような伝播される信号は、電磁的、光学的、またはこれらの任意の好適な組み合わせを含むがこれらに限定されないさまざまな形態のうちの任意の形態をとり得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを伝達、伝播、または搬送することができる任意のコンピュータ可読媒体である可能性がある。
【００５９】
図面の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびプログラム製品のあり得る実装のアーキテクチャ、機能、および動作を示す。これに関連して、流れ図またはブロック図の各ブロックは、（１つまたは複数の）規定された論理的な機能を実装するための１つまたは複数の実行可能なプログラム命令を含むモジュール、セグメント、またはコードの一部を表す可能性がある。一部の代替的な実装においては、ブロックで示された機能が、図面に示された順序とは異なる順序で行われる可能性があることにも留意されたい。例えば、連続で示された２つのブロックが、実際には実質的に同時に実行される可能性があり、またはそれらのブロックが、関連する機能に応じて逆順に実行されることもあり得る。
【００６０】
例えば、さまざまな種類のプロセッサによる実行のためにソフトウェアで実装されたモジュールは、例えば、オブジェクト、プロシージャ、または関数として編成され得るコンピュータ命令の１つまたは複数の物理的または論理的なブロックを含む可能性がある。それでもやはり、特定されたモジュールの実行ファイルは、物理的にまとめて配置される必要はないが、論理的に一緒に結びつけられるときにモジュールを構成し、モジュールの上述の目的を達成する、異なる場所に記憶された異なる命令を含み得る。さらに言えば、実行可能なコードのモジュールは、単一の命令または多数の命令である可能性があり、いくつかの異なるコード・セグメントに、異なるプログラムの間に、およびいくつかのメモリ・デバイスに渡って分散される可能性さえある。同様に、動作データが、本明細書において特定され、モジュール内に示される可能性があり、任意の好適な形態で具現化され、任意の好適な種類のデータ構造内に編成される可能性がある。動作データは、単一のデータ・セットとして集められる可能性があり、または異なるストレージ・デバイスを含む異なる場所に分散される可能性があり、少なくとも部分的に、単にシステムまたはネットワーク上の電子的な信号として存在する可能性がある。
【００６１】
コンピュータまたはその他のプログラミング可能なデータ処理装置のプロセッサによって実行される命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックで規定された機能／動作を実施するための手段をもたらすように、これらのプログラム命令は、汎用コンピュータ、専用コンピュータ、またはその他のプログラミング可能なデータ処理装置のプロセッサに与えられてマシンを作り出す可能性がある。
【００６２】
ブロック図または流れ図あるいはその両方の各ブロックと、ブロック図または流れ図あるいはその両方のブロックの組み合わせとは、規定された機能もしくは動作を実行する専用のハードウェアに基づくシステム、または専用のハードウェアとコンピュータ命令との組み合わせによって実装され得ることにも留意されたい。例えば、モジュールは、カスタムＶＬＳＩ回路またはゲート・アレイ、論理チップ、トランジスタ、またはその他のディスクリート部品などの既製の半導体を含むハードウェア回路として実装される可能性がある。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイスなどのプログラミング可能なハードウェア・デバイスで実装される可能性もある。
【００６３】
本発明の態様の動作を実行するためのコンピュータ・プログラム・コード、すなわち命令は、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語と、「Ｃ」プログラミング言語または同様のプログラミング言語などの通常の手続き型プログラミング言語とを含む１つまたは複数のプログラミング言語の任意の組み合わせで記述され得る。プログラム・コードは、すべてユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的にかつ遠隔のコンピュータ上で部分的に、またはすべて遠隔のコンピュータもしくはサーバ上で実行され得る。最後の筋書きでは、遠隔のコンピュータが、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続され得るか、または外部コンピュータへの接続が（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）行われ得る。
【００６４】
コンピュータ可読媒体に記憶された命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックで規定された機能／動作を実施する命令を含む製品をもたらすように、これらのプログラム命令は、コンピュータ可読ストレージ媒体に記憶され、コンピュータ、その他のプログラミング可能なデータ処理装置、またはその他のデバイスを特定の方法で機能させるように指示する可能性もある。
【００６５】
コンピュータまたはその他のプログラミング可能な装置で実行される命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックで規定された機能／動作を実施するためのプロセスを提供するように、コンピュータで実施されるプロセスを生成するために、プログラム命令は、コンピュータ、その他のプログラミング可能なデータ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラミング可能な装置、またはその他のデバイスで一連の動作のステップが実行されるようにする可能性もある。
【００６６】
１つまたは複数のデータベースが、さまざまな実装に関するデータを記憶し、そのデータへのアクセスを提供するためにホストに含まれる可能性がある。当業者は、セキュリティ上の理由で、本発明の任意のデータベース、システム、またはコンポーネントが、単一の場所または複数の場所のデータベースまたはコンポーネントの任意の組み合わせを含む可能性があり、各データベースまたはシステムが、ファイアウォール、アクセス・コード、符号化、復号などのさまざまな好適なセキュリティの特徴のいずれかを含むことも理解するであろう。データベースは、リレーショナル、階層型、オブジェクト指向などの任意の種類のデータベースである可能性がある。データベースを実装するために使用され得るよくあるデータベース製品は、ＩＢＭ（ＮＹ、Ｗｈｉｔｅ  Ｐｌａｉｎｓ）によるＤＢ２、オラクル（ＣＡ、Ｒｅｄｗｏｏｄ  Ｓｈｏｒｅｓ）から入手可能なデータベース製品のいずれか、マイクロソフト（Ｗａｓｈｉｎｇｔｏｎ、Ｒｅｄｍｏｎｄ）によるＭｉｃｒｏｓｏｆｔ  Ａｃｃｅｓｓ、または任意のその他のデータベース製品を含む。データベースは、データ・テーブルまたはルックアップ・テーブルを含む任意の好適な方法で編成される可能性がある。
【００６７】
特定のデータの関連付けは、当技術分野で知られており、実施される任意のデータ関連付け技術によって実現され得る。例えば、関連付けは、手動かまたは自動かのどちらかで実現される可能性がある。自動関連付け技術は、例えば、データベースの検索、データベースの合併、ＧＲＥＰ、ＡＧＲＥＰ、ＳＱＬなどを含む可能性がある。関連付けのステップは、例えば、製造業者および小売業者のデータ・テーブルのそれぞれのキー・フィールドを用いて、データベースの合併機能によって実現される可能性がある。キー・フィールドは、キー・フィールドによって定義されるオブジェクトの高レベルのクラスにしたがってデータベースを分割する。例えば、特定のクラスが、第１のデータ・テーブルと第２のデータ・テーブルとの両方でキー・フィールドとして指定される可能性があり、そのとき、２つのデータ・テーブルは、キー・フィールドのクラス・データに基づいて合併され得る。この実施形態においては、合併されるデータ・テーブルのそれぞれのキー・フィールドに対応するデータは、同じであることが好ましい。しかし、キー・フィールドに似ているが同一ではないデータを有するデータ・テーブルも、例えば、ＡＧＲＥＰを使用することによって合併され得る。
【００６８】
本明細書全体を通じて、「１つの実施形態（one embodiment）」、「一実施形態（an embodiment）」、または同様の言い回しについての表現は、その実施形態に関連して説明された特定の特徴、構造、または特質が本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書全体を通じて、語句「１つの実施形態において（in one embodiment）」、「一実施形態において（in anembodiment）」、および同様の言い回しの記載は、すべて同じ実施形態に言及する可能性があるが、必ずそうとは限らない。さらに、本発明の説明された機能、構造、または特質は、１つまたは複数の実施形態において任意の好適な方法で組み合わされる可能性がある。それに対応して、たとえ特徴が特定の組み合わせで働くと最初に主張されているとしても、主張された組み合わせの１つまたは複数の特徴は、場合によってはその組み合わせから削除される可能性があり、主張された組み合わせは、部分的組み合わせ、または部分的組み合わせの変形を対象とする可能性がある。
【００６９】
本明細書の説明においては、本発明の実施形態を完全に理解させるために、プログラミング、ソフトウェア・モジュール、ユーザの選択、ネットワーク・トランザクション、データベース・クエリ、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップなどの例などの多くの特定の詳細が、与えられている。しかし、当業者は、本発明が特定の詳細のうちの１つまたは複数なしに、またはその他の方法、コンポーネント、素材などと共に実施され得ることを認識するであろう。その他の場合、よく知られている構造、素材、または動作は、本発明の態様を曖昧にすることを避けるために詳細に示されないかまたは説明されない。
【００７０】
利益、利点、および問題に対する解決策が、特定の実施形態に関連して上で説明された。しかし、利益、利点、問題に対する解決策、および任意の利益、利点、または問題に対する解決策をもたらすかもしくはよりはっきりさせる可能性のある（１つもしくは複数の）任意の要素は、請求項のいずれかまたはすべての重要な、必要とされる、または必須の特徴または要素であると解釈されるべきでない。
【００７１】
本開示を読んだ当業者は、変形および変更が本発明の範囲を逸脱することなく実施形態に対してなされ得ることを認識するであろう。本明細書において示され、説明された特定の実装は、本発明および本発明の最良の形態を例示しており、そうではなく本発明の範囲を限定するようには全く意図されていないことを理解されたい。その他の変更形態は、添付の特許請求の範囲内にある。
【００７２】
本明細書は多くの詳細を含むが、これらは、本発明の範囲、または特許請求され得るものの範囲に対する限定と解釈されるべきではなく、むしろ、本発明の特定の実装に特有の特徴の説明と解釈されるべきである。本明細書の見出しは、本発明、本発明の実施形態、または見出しの下で開示されたその他の事柄を限定するように意図されていない。
【００７３】
本明細書において使用されるとき、用語「含む（comprises）」、「含んでいる（comprising）」、またはこれらの任意のその他の変形は、要素のリストを含むプロセス、方法、製品、または装置がそれらの要素を含むだけでなく、明示的に挙げられていないか、またはそのようなプロセス、方法、製品、または装置に固有でないその他の要素を含む可能性もあるように、非排他的包含を含むように意図される。さらに、本明細書において説明された要素は、必須または重要であると明示的に説明されていない限り、本発明の実施のための必要とされない。
【００７４】
本明細書で使用された用語は、特定の実施形態を説明することのみを目的としており、本発明を限定するように意図されていない。本明細書において使用されるとき、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈がそうでないことをはっきりと示さない限り複数形も含むように意図される。用語「含む（comprises）」または「含んでいる（comprising）」あるいはその両方は、本明細書において使用されるとき、言及された特徴、完全体（integer）、ステップ、動作、要素、またはコンポーネントあるいはこれらすべての存在を指定するが、１つまたは複数のその他の特徴、完全体、ステップ、動作、要素、コンポーネント、またはこれらのグループあるいはその両方の存在または追加を除外しないことがさらに理解されるであろう。
【００７５】
請求項のすべてのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、素材、動作、および等価なものは、明確に特許請求されたその他の特許請求された要素と組み合わせて機能を実行するための任意の構造、素材、または動作を含むように意図される。
【００７６】
本発明の説明が、例示および説明を目的として示されたが、網羅的であるように、または開示された形態の本発明に限定されるように意図されていない。多くの変更および改変が、本発明の範囲および精神から逸脱することなく当業者に明らかになる。実施形態は、本発明の原理および実際の応用を最もよく説明し、考えられる特定の用途に適するさまざまな変更を加えたさまざまな実施形態に関して当業者が本発明を理解することを可能にするために選択され、説明された。
【００７７】
サービス品質の要件が、本発明の１つまたは複数の実施形態によって、スイッチでＶＬＡＮのレベルで対処され得ることが、以上の内容からやはり理解されるに違いない。つまり、コンバージド・エンハンスト・イーサネット（Ｒ）（ＣＥＥ）対応のスイッチを用いて、ＲＤＭＡトラフィックが、無損失モードで実行されるように特定のＶＬＡＮでタグ付けされる可能性があり、ＶＬＡＮが、適切な量の帯域幅を割り振られる可能性がある。ＣＥＥがないとしても、ポートにおける全体休止（global pause）（つまり、フロー制御）を可能にすることが、混雑しているときにＴＣＰとＲＤＭＡとの両方が無損失モードで実行されることを強制する。しかし、本明細書において示された実施形態は、トラフィックのそれらの対応するＶＬＡＮデバイスへの分離を可能にする。結果として、アクセス制御リストおよびＶＭＡＰが、トラフィックの種類のそれぞれに関するサービス品質の要件を満たすために使用され得る。
【００７８】
要約すると、ＴＣＰに関するイーサ・チャネル・ボンディングが、ＲＤＭＡがこの特徴を利用することができないことに影響を与えることなく可能にされるので、本発明の実施形態において、ＴＣＰトラフィックの高い可用性が、単一のマルチ・ポート・アダプタのみを用いて実現され得る。ＴＣＰトラフィックは、一方のポートが落ちる場合にもう一方のポートがその代わりに引き継ぐかまたは動作し続けることができるように、両方のポートを利用し得る。異なるプロトコルおよびＩ／Ｏ拡張スロットの限られた可用性にもかかわらず、堅牢で完全なネットワークが実現される。
【図１】
0006270860.tif 000002
【図２】
0006270860.tif 000003
【図３】
0006270860.tif 000004
【図４】
0006270860.tif 000005
【図５】
0006270860.tif 000006
【図６】
0006270860.tif 000007