(57)【要約】【課題】最も効率的な利用可能なリソースの組を使用する接続を提供するため、ネットワーク接続が複数の利用可能なサーバおよび／またはクライアント間でマイグレートできるようにする、データ処理ネットワークおよびシステムを提供すること。【解決手段】ネットワーク接続がＴＣＰによって確立される一実施形態では、各接続は、接続を完全に定義する４要素から成る組、すなわちソースＩＰアドレス、ソース・ポート番号、宛先ＩＰアドレス、および宛先ポート番号を含む。本発明は、接続を定義する４要素の１つまたは複数を変更することによって、より効率的に機能するＮＩＣまたはシステムに接続をマイグレートするように構成される。
2005524162.tif 000002
【特許請求の範囲】
【請求項１】
メモリ（２０４）に接続された少なくとも１つのプロセッサ（２０１）を含むデータ処理システム（１００）であって、
前記接続の少なくとも１つのパフォーマンス特性を監視するためのコンピュータ手段（５０５）と、
ネットワーク接続を提供するのに利用可能なリソースの目録を維持するためのコンピュータ手段（５０３）と、
前記監視されたパフォーマンス特性が前記ネットワーク接続に問題があることを示しているとの判定に応答して、前記接続を定義する少なくとも１つのリソースを前記利用可能なリソースの目録から選択されたリソースに変更することによって、前記接続を変更するためのコンピュータ手段（５０１）と
を含むデータ処理システム。
【請求項２】
前記監視されたパフォーマンス特性が、前記接続の基本的な機能性を含む、請求項１に記載のデータ処理システム。
【請求項３】
基本的な機能性が、パケット・タイムアウト・イベントの数を検出することによって監視される、請求項２に記載のデータ処理システム。
【請求項４】
前記監視されたパフォーマンス特性が、前記接続の応答時間を示す、請求項１に記載のデータ処理システム。
【請求項５】
リソースを変更するための前記コンピュータ手段（５０１）が、前記接続を定義するサーバ側ソケットのインターネット・プロトコル（ＩＰ）アドレスを変更するためのコンピュータ手段を含む、請求項１に記載のデータ処理システム。
【請求項６】
前記接続を確立する前にクライアントおよびサーバを、マイグレーションをサポートするものとして識別するためのコンピュータ手段をさらに含む、請求項１に記載のデータ処理システム。
【請求項７】
リソースを変更するための前記コンピュータ手段（５０１）が、前記接続を定義するクライアント側ソケットのＩＰアドレスを変更するためのコンピュータ手段を含む、請求項１に記載のデータ処理システム。
【請求項８】
データ処理ネットワーク内でクライアント（１０２）とサーバ（１１０）の間のネットワーク接続を管理する方法であって、
前記接続の少なくとも１つのパフォーマンス特性を監視するステップと、
ネットワーク接続を提供するのに利用可能なリソースの目録を維持するステップと、
前記監視されたパフォーマンス特性が前記ネットワーク接続に問題があることを示しているとの判定に応答して、前記接続を定義する少なくとも１つのリソースを前記利用可能なリソースの目録から選択されたリソースに変更することによって、前記接続を変更するステップと
を含む方法。
【請求項９】
前記監視されたパフォーマンス特性が、前記接続の基本的な機能性を含む、請求項８に記載の方法。
【請求項１０】
前記監視されたパフォーマンス特性が、前記接続の応答時間を示す、請求項８に記載の方法。
【請求項１１】
リソースを変更するステップが、前記接続を定義するサーバ側ソケットのインターネット・プロトコル（ＩＰ）アドレスを変更するステップを含む、請求項８に記載の方法。
【請求項１２】
前記接続を確立する前にクライアント（１０２）およびサーバ（１１０）をマイグレーションをサポートするものとして識別するステップをさらに含む、請求項８に記載の方法。
【請求項１３】
リソースを変更するステップが、前記接続を定義するクライアント（１０２）側ソケットのＩＰアドレスを変更するステップを含む、請求項８に記載の方法。
【請求項１４】
請求項８ないし１３のいずれか一項に記載の方法の各ステップを実行するコード手段を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、データ処理ネットワークの分野に関し、より詳細には、負荷の変化、誤動作、またはその他のネットワーク特性に応答して、確立されたネットワーク接続がそのソースまたはデスティネーション（宛先）を動的にマイグレート（移動）できるようにするネットワークおよび方法に関する。
【背景技術】
【０００２】
従来のデータ処理ネットワークでは、クライアント・システムとサーバ・システムは、一般にネットワーク・インタフェース・カード（ＮＩＣ）と呼ばれる専用アダプタを介してネットワークに接続される。従来、ネットワークにおけるクライアント−サーバ・ペア間のネットワーク接続は、それぞれの装置のＮＩＣに完全に結び付けられる。接続のハードウェア要素が機能しなかったり、帯域幅の制限を受けたりする場合、接続特性を変更するために現時点で接続をより効率よく処理できる別のハードウェアに当該接続を「移動」させる機会は与えられない。代りに、既存の接続を終了させ、潜在的に大きなネットワーク・オーバヘッドを犠牲にして、新しい接続を確立しなければならない。オーバヘッドの負の影響は、潜在的に多数のクライアントに最高レベルの応答性を提供することを主要な目的とする高可用性サーバ環境において大きな問題となる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、ネットワーク負荷またはハードウェア障害などの要因に応答して、ネットワーク接続がその構成を動的に定義し、変更できるようにする、ネットワーク方法およびシステムを実施できることが望ましい。
【課題を解決するための手段】
【０００４】
上で明らかにされた問題は、最も効率的に利用可能なリソースの組を使用する接続を提供するため、ネットワーク接続が複数の利用可能なサーバおよび／またはクライアントの間をマイグレートできるようにする、データ処理ネットワークおよびシステムによって大部分は対処される。一般に、サーバおよびクライアントは、接続が確立されるときに、この接続マイグレーション機能をそれぞれがサポートすることを知らせる。オペレーティング・システムまたはアプリケーション・プログラムは、基本的な機能性およびパフォーマンスを含む特性について既存の接続を監視する。既存の接続が障害を起こしていることや、パフォーマンスが悪いことが見つかり、その接続に関係するクライアントおよびサーバが接続マイグレーションをサポートする場合、ソフトウェアは、より効率的な代替接続が存在するかどうかを判定する。そのような接続が発見された場合、接続を定義するパラメータが変更されて、好ましいハードウェアへの接続のマイグレーションが達成される。ネットワーク接続がＴＣＰ（伝送制御プロトコル）によって確立される一実施形態では、各接続は、接続を完全に定義する４要素から成る組、すなわちソースＩＰアドレス、ソース・ポート番号、宛先ＩＰアドレス、および宛先ポート番号を含む。本発明は、接続を定義する４要素の１つまたは複数を変更することによって、より効率的に機能するＮＩＣまたはシステムに接続をマイグレートするように構成される。
【発明を実施するための最良の形態】
【０００５】
次に図面を参照すると、図１は、本発明の一実施形態を実施するのに適したデータ処理ネットワーク１００の選択された要素を含むブロック図である。ネットワーク・アーキテクチャ分野の当業者であれば、この具体的な実施が多くの可能な構成のうちの１つに過ぎないことを理解されよう。この具体的な実施形態を示したのは、少なくとも一つにはその一般性のためであり、またそれが増加を続ける多数のネットワーク具現化の代表例となっているためである。図示の実施形態では、ネットワーク１００は、ワイド・エリア・ネットワーク１０４に接続されたクライアント・システム（クライアント）１０２を含む。クライアント１０２は一般に、クライアント装置で実行される従来のウェブ・ブラウザなどのクライアント・アプリケーション・プログラムを含む。
【０００６】
クライアント装置には、デスクトップまたはラップトップのパーソナル・コンピュータ、ネットワーク・コンピュータまたはワークステーション、あるいは携帯情報端末（ＰＤＡ）またはインターネット電話などのその他のネットワークを意識した装置、を含めることができる。簡単に図２を参照すると、模範的なクライアント１０２における選択されたハードウェア要素を含むブロック図が示されている。クライアント１０２は一般に、システム・バス２０２を介してシステム・メモリ２０４と相互接続される、１つまたは複数の汎用マイクロプロセッサ（ＣＰＵ）２０１ａ〜２０１ｎ（総称的または集合的にＣＰＵ２０１）を含む。ブリッジ装置２０６は、システム・バス２０２とＩ／Ｏバス２０８を相互接続する。Ｉ／Ｏバスは一般に、例えば、ＰＣＩスペシャル・インタレスト・グループ（ＳＩＧ）（www.pcisig.org）が策定したＰＣＩ（周辺コンポーネント相互接続）ローカル・バス仕様など、業界標準バス仕様に準拠する。１つまたは複数の周辺またはＩ／Ｏ装置は一般に、Ｉ／Ｏバス２０８に接続される。図示の実施形態には、Ｉ／Ｏバス２０８に接続されたネットワーク・インタフェース・カード（ＮＩＣ）１０５と汎用Ｉ／Ｏアダプタ２１０が示されている。ＮＩＣ１０５は、クライアント２０１のリソースをネットワーク媒体に接続する。一般的な実施では、ＮＩＣ１０５は、クライアント１０２をイーサネット（Ｒ）・ネットワークなどのローカル・エリア・ネットワークに接続する。図１に戻ると、クライアント１０２は、介在するワイド・エリア・ネットワーク（ＷＡＮ）１０４を介してサーバ・ネットワーク１０１にリモートに接続されるものとして示されている。別のクライアント（図１に図示せず）をサーバ・ネットワークにローカルに接続することもできる。
【０００７】
ワイド・エリア・ネットワーク１０４は一般に、ゲートウェイ、ルータ、ハブなどの様々なネットワーク装置と、１つまたは複数のローカル・エリア・ネットワーク（ＬＡＮ）とを含み、両者は、銅線、同軸ケーブル、光ファイバ・ケーブル、および無線媒体を可能性として含む様々な媒体を用いて相互接続される。ワイド・エリア・ネットワーク１０４は、インターネットの部分に相当するか、またはこれを含む場合がある。
【０００８】
図示の実施形態では、サーバ・ネットワークまたはサーバ・クラスタ１０１は、ＷＡＮ１０４に接続されたゲートウェイ１０６を介してクライアント１０２に接続される。サーバ・クラスタ１０１は一般に、１つまたは複数のサーバ１１０（図では４つ）を含むＬＡＮとして実施される。各サーバ１１０は、図２に示すクライアント・システムと実質的に同じ設計上の特徴をもつ（すなわち、共有システム・メモリに接続された１つまたは複数のマイクロプロセッサを有し、サーバをローカル・ネットワークに接続するＮＩＣを含むＩ／Ｏアダプタを有する）。各サーバ１１０は、標準的なイーサネット（Ｒ）またはトークン・リング構成などをとる共有媒体を介して互いにネットワーク接続される。サーバ・クラスタ１０１の各サーバ１１０は一般に、磁気ハードディスクなどの永続的（不揮発性）ストレージ媒体にアクセスする。さらに、どのサーバ１１０もそれ自体の内部ディスクおよびディスク・ドライブ機構を含むことができる。普及が進んでいる構成においては、永続的ストレージ装置は、ネットワーク接続された装置または装置の組として提供される。ネットワーク・ストレージ装置は、図１では参照番号によって識別され、１つまたは複数のネットワーク接続ストレージ（ＮＡＳ）装置、ストレージ・エリア・ネットワーク（ＳＡＮ）、またはそれらの組み合わせとして実施することができる。
【０００９】
ソフトウェアの側から見ると、クライアント１０２とサーバ１１０は、一般に１つまたは複数のアプリケーション・プログラム３０４、オペレーティング・システム３０２、およびネットワーク・プロトコル３０１を含む、図３に示すソフトウェア・コンポーネントを使用する。アプリケーション・プログラム３０４には、データベース・アプリケーション、ウェブ・ブラウザ、グラフィック・デザイン・アプリケーション、スプレッドシート、ワード・プロセッサ、その他が含まれる場合がある。オペレーティング・システム３０２は、システムのリソースを管理するソフトウェア・コンポーネント群を指す一般用語である。ネットワーク・プロトコル３０１は、装置上で実行されるアプリケーションがネットワークを介して情報通信を行えるように構成された１組のソフトウェア・コンポーネントである。ネットワーク・プロトコル３０１は、図３にはオペレーティング・システム３０２とは別個のものとして示されているが、プロトコル・コンポーネントがオペレーティング・システムのコンポーネントを含むこともできる。
【００１０】
アプリケーション・プログラムおよびオペレーティング・システム・ルーチンは、それらが実行されたときにプロセスを開始する。サーバ装置１１０などのサーバ装置で実行されるプロセスは一般に、クライアント上で実行されているリクエストを行ったプロセスに一連の１つまたは複数のネットワーク・パケットとしてデータを送信する。各パケットは、リクエストされたデータの一部を含むペイロード（荷重）と、使用中のネットワーク・プロトコルに応じた１つまたは複数のヘッダ・フィールドを含む。ＷＡＮ１０４がインターネットに相当する実施形態では、例えば、サーバ１１０とクライアント１０２の間で送信されるパケットは一般に、インターネット・エンジニアリング・タスク・フォース（www.ietf.org）のＲＦＣ７９３およびＲＦＣ７９１で仕様が定められたＴＣＰ／ＩＰ（伝送制御プロトコル／インターネット・プロトコル）に準拠する。
【００１１】
ＴＣＰ対応の装置またはシステムが処理できる個々のプロセスを識別するため、ＴＣＰは、クライアント−サーバ接続毎に固有のアドレスを提供する。これらの固有のアドレスは、ＩＰアドレスとポート識別子を含む。ＩＰアドレスは、特定のＮＩＣなど、ネットワーク上の物理ロケーションまたは宛先を特定する。ポート識別子は、複数のプロセスが同一のハードウェア・リソース（すなわち、同一の物理リソース）を共有している場合があるので必要となる。ＩＰアドレスとポートの組み合わせは「ソケット」と呼ばれ、ネットワーク全域で固有となる。接続は、一般にクライアント側ソケットに相当する１つのソケットとサーバ側ソケットに相当するソケットとから成る１対のソケットによって完全に特定される。
【００１２】
次に図４を参照すると、クライアント−サーバ接続を概念的に説明する図が示されている。図示の接続は、サーバ１１０で実行されるプロセス１０９ａとクライアント１０２で実行されるプロセス１０９ｂとの間のＴＣＰ準拠の接続を表す。接続は、１対のソケットによって定義される。サーバ１１０の側から見ると、ソース・ソケットは、ＮＩＣ１０５のＩＰアドレスとプロセス１０９ａに関連付けられたポート番号との組み合わせによって決定され、宛先ソケットは、ＮＩＣ１０７のＩＰアドレスとクライアント１０２上のプロセス１０９ｂに関連付けられたポート番号との組み合わせによって決定される。クライアント１０２の側から見ると、ソース・ソケットと宛先ソケットが逆になり、ＮＩＣ１０７とプロセス１０９ｂがソース・ソケットを定義し、ＮＩＣ１０５とプロセス１０９ａが宛先ソケットを定義する。従来のデータ処理ネットワークでは、接続定義は静的である。接続の両側におけるソース・ソケットと宛先ソケットは不変である。本発明は、既存の接続定義を変更したほうが有利な場合に、クライアントとサーバが協力してこれを変更できるようにすることによって、上記の制約に対処する。接続マイグレーション機能は好ましくは、ネットワーク・プロトコルの機能を拡張することによって達成される。この実施形態では、接続の双方の当事者は、共に接続マイグレーションをサポートすることを事前に合意しなければならない。当事者のどちらかが拡張をサポートしない場合、この機能はもう一方の当事者によって無効にされる。
【００１３】
本発明の各部分は、コンピュータ可読媒体に保存される一連のコンピュータ実行可能命令から構成されるソフトウェアで実施することができる。命令が実行されているとき、命令は一般に、クライアントまたはサーバの（一般にＤＲＡＭで構成される）システム・メモリあるいは（一般にＳＲＡＭで構成される）内部または外部キャッシュ・メモリなどの揮発性ストレージ媒体に格納される。それ以外のときは、ソフトウェアは、ハードディスク、フロッピ・ディスケット、ＣＤ  ＲＯＭ、ＤＶＤ、フラッシュ・メモリ・カードまたは他の電気的消去可能媒体、磁気テープ、その他、といった不揮発性媒体に保存することができる。さらに、ソフトウェアの各部分は、ネットワークの様々な要素に分散させることができる。例えば、ソフトウェアのある部分はクライアント・システムに存在し、別の部分はサーバ・システムに存在することがある。
【００１４】
次に図５を参照すると、本発明の一実施形態に従って選択されたソフトウェア要素が示されている。図示の実施形態では、サーバ１１０は、マイグレーション・モジュール５０１、リソース・モニタ５０３、および接続モニタ５０５を含む。これらの要素は、サーバのオペレーティング・システムおよびネットワーク・プロトコル・モジュールと共存する。接続モニタ５０５は、サーバ１１０が参加している１つまたは複数のネットワーク接続のパフォーマンスを監視する役割を担う。接続モニタ５０５は、スタンドアロンのアプリケーション・プログラムとして実施することができ、あるいはオペレーティング・システムまたはネットワーク・プロトコル・ユーティリティとして提供することもできる。一般に接続モニタ５０５は、サーバの動作中ネットワーク接続の１つまたは複数のパフォーマンス特性を計測するように構成される。監視されるパフォーマンス特性には、接続の基本的な機能性、および接続スループットが含まれ得る。基本的な機能性は、タイムアウト・イベントの数または頻度を監視することによって決定することができる。タイムアウト・イベントとは、送信されたが所定の時間内に肯定応答が返信されないパケットのことである。接続スループットは、例えば、あるパケットを送出してからそのパケットに対する肯定応答を受信するまでに経過した時間を監視することによって監視することができる。この情報と各パケットのサイズについての情報から、その接続の「速度」の推定値を導き出せるように、接続モニタ５０５は構成される。
【００１５】
マイグレーション・モジュール５０１は、接続モニタ５０５と情報交換を行って、特定の接続をマイグレーションの候補とするかどうかを決定するように構成される。本発明の一実施形態では、接続モニタ５０５は、接続の監視されるパフォーマンス特性が基準または閾値条件に適合しなくなるたびに、マイグレーション・モジュールに情報を伝える。接続モニタ５０５は、例えば、ある監視接続の基本的な機能性が不良であると判定された場合に、マイグレーション・モジュール５０１にその接続について報告するように構成される。どのような場合に監視接続をマイグレーションの候補として報告するかについて定めたパフォーマンス基準には、１組の事前に決定された基準を含めることができる。あるいは、パフォーマンス基準は、接続の最近の動作記録に基づいて動的に決定することもできる。
【００１６】
接続モニタ５０５からの、モニターされた接続が何らかのパフォーマンス基準を下回った旨の報告に応答して、マイグレーション・モジュール５０１は最初に、その接続のもう一方の当事者が接続マイグレーションをサポートするかどうかを判定する。接続マイグレーションをサポートするクライアントまたはサーバにおいて接続が確立されたとき、クライアントまたはサーバは、もう一方の当事者が接続マイグレーションをサポートするかどうかを判定するため、もう一方の当事者に問い合わせを行う。その接続の双方の当事者が接続マイグレーションをサポートする場合、双方の当事者は、その接続に適切にタグを付ける。一方の当事者は、接続を確立するときに、専用のパケットを送信することによって、または専用のヘッダ・フィールドをもたせることによって、もう一方の当事者が接続マイグレーションをサポートするかどうかの判定を試みることができる。当事者のどちらかがマイグレーション機能をサポートしない場合、マイグレーション機能はもう一方の当事者によって無効にされる。
【００１７】
接続の双方の当事者がマイグレーション機能をサポートすると仮定すると、マイグレーション・モジュール５０１は、接続モニタ５０５からの指示に応答して、既存接続をマイグレートしようと試みるように構成される。図５に示す実施形態では、マイグレーション・モジュール５０１は、接続を提供するのに代替接続が利用可能であるかどうかを判定するため、リソース・モニタ５０３に情報を求める。リソース・モニタ５０３は一般に、ネットワーク接続を提供するのに利用可能なリソースの目録を維持するように構成される。図６を参照すると分かるが、各サーバ１１０および各クライアント１０２は、複数のネットワーク・インタフェース・カードを有することができる。サーバ１１０は、例えば、各スロットがネットワーク・インタフェース・カードをサポートできる１６０ものホットプラグ可能ＰＣＩスロットを有した、ＩＢＭコーポレーションのｐＳｅｒｉｅｓ６９０サーバを用いて実施することができる。同様に、高可用性クライアント・システムも複数のネットワーク・アダプタを有することができる。サーバまたはクライアントが複数のネットワーク・アダプタを含む場合、特定のネットワーク接続を提供するための代替リソースとして、付加的なアダプタを利用可能とすることができる。マイグレーション・モジュール５０１は、接続をマイグレートしようと試みるとき、リソース・モニタ５０３に利用可能リソースの一覧の提供を求める。
【００１８】
本発明の一実施形態では、リソース・モニタ５０３は、マイグレーション・モジュール５０１がリクエストを発行するたびに、単にすべての利用可能リソースの一覧を提供できるに過ぎない。別の実施形態では、リソース・モニタ５０３は、利用可能リソースを選択的に示すことができ、または、例えば、どのクライアントかなど様々な要因に依存する優先順位を付けて示すことができる。この実施形態では、異なるクライアントに異なるレベルのサービスを提供するため、利用可能リソースに優先順位を付けることが企図されている。サービス・プロバイダは、異なるクラスのクライアントに異なるクラスのサービスを提供しようとすることができる。リソース・モニタ５０３は、低いクラスのサービスに加入するクライアントにとって利用できないリソースを、最高のクラスのサービスに加入するクライアントが利用できるようにすることができる。あるクライアントがどのリソースを利用できるかを決定するのに、その他の優先順位付け基準を使用することもできる。
【００１９】
図５に示すクライアント１０２は、サーバ１１０について示されたコンポーネントと実質的に類似のソフトウェア・コンポーネントを含むものとして示されている。したがって、各クライアント１０２は、マイグレーション・モジュール、接続モニタ、およびリソース・モニタを含むことができる。このようにして、接続パフォーマンスを接続の両側で監視することができ、接続の両側でその接続の他のリソースへのマイグレーションを開始することができる。
【００２０】
接続マイグレーションが接続のどちらかの当事者によって開始されたとき、マイグレーション・モジュール５０１は、新規パケットの送信を中断することによってマイグレーションを開始する。すべての未決パケット（すなわち、送出されたが、肯定応答が返信されていないパケット）が肯定応答を返されたか、またはタイムアウトになったとき、マイグレーション・モジュール５０１は、接続当事者の一方または双方のソケット定義を変更することができる。ソケット定義が変更された後、接続を定義する４要素から成る組が、クライアント側およびサーバ側でしかるべく変更される。したがって、ある接続マイグレーションにおいて、クライアント１０２のソケット定義を変更し、サーバ１１０のソケットはもとのままとした場合、変更されたクライアント側のソケット定義を反映するようにソースＩＰアドレス／ポート番号の組み合わせを変更することによって、クライアント側の４要素から成る組が変更される。サーバ１１０も、宛先ＩＰアドレス／ポート番号の組み合わせを変更することによって、接続の４要素から成る組を変更する。
【００２１】
次に図６を再び参照すると、本発明によって企図される接続マイグレーションを概念的に説明する図が示されている。この図では、１組のネットワーク接続６０１ａ〜６０１ｃが、１組のクライアント１０２ａ〜１０２ｍと１組のサーバ１１０ａ〜１１０ｎの間を接続する。各クライアント１０２は、１つまたは複数のネットワーク接続を提供するのに利用可能な少なくとも１つのＮＩＣ１０７を有し、各サーバ１１０は、少なくとも１つのＮＩＣ１０５を有する。図６には、３タイプの接続マイグレーションが示されている。サーバ内マイグレーションを表す接続６０１ａは、サーバ１１０ａの第１のＮＩＣ１０５に接続される接続として実線で示されている。ここで、実線は元のネットワーク接続を表す。接続マイグレーションの後、接続６０１ａは、点線で示すように、クライアント１０２ａとサーバ１１０ａの第２のＮＩＣとの間の接続となる。接続６０１ｂは、サーバ間マイグレーションを表し、クライアント１０２ｂとサーバ１１０ａとの間の元の接続は、サーバ１０２ｂと第２のサーバ１１０ｎとの間の第２の接続（破線で示す）に移動される。このサーバ間マイグレーションは、例えば、サーバ・クラスタ１０１が複数のサーバ１１０を含み、サーバがすべて共通スイッチ１０８に接続される、図１に示すようなサーバ・クラスタ環境で実施することができる。この環境では、マイグレーション・モジュール５０１および接続モニタ５０５は、各サーバ１１０に分散させることができ、リソース・モニタ５０３は、クラスタ全体で利用可能なリソースを集中モニターできるスイッチ１０８にインストールすることができる。接続６０１ｃは、クライアント内マイグレーションを示し、クライアント１０２ｍの第１のＮＩＣ１０７によって初期定義された接続は、クライアントの第２のＮＩＣに移動される。本発明は、サーバ内、サーバ間、およびクライアント内マイグレーションを可能にすることによって、システムの柔軟性を最大化する。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態を実施するのに適したデータ処理ネットワークの選択された要素を含むブロック図である。
【図２】図１のデータ処理ネットワークで使用するのに適したデータ処理ネットワークの選択されたハードウェア要素のブロック図である。
【図３】図２のデータ処理ネットワークの選択された要素のブロック図である。
【図４】ネットワーク接続を概念的に説明した図である。
【図５】本発明の接続マイグレーション機能を強調している、図４のネットワーク接続の選択された要素のブロック図である。
【図６】本発明によって企図される様々な接続マイグレーション例の概念図である。
【図１】
2005524162.tif 000003
【図２】
2005524162.tif 000004
【図３】
2005524162.tif 000005
【図４】
2005524162.tif 000006
【図５】
2005524162.tif 000007
【図６】
2005524162.tif 000008
【手続補正書】
【提出日】平成16年2月23日(2004.2.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
メモリ（２０４）に接続された少なくとも１つのプロセッサ（２０１）を含むデータ処理システム（１００）であって、
ネットワーク接続の少なくとも１つのパフォーマンス特性を監視するためのコンピュータ手段（５０５）と、
ネットワーク接続を提供するのに利用可能なリソースの目録を維持するためのコンピュータ手段（５０３）と、
前記監視されたパフォーマンス特性が前記ネットワーク接続に問題があることを示しているとの判定に応答して、前記接続を定義するソケットのインターネット・プロトコル（ＩＰ）アドレスを変更することで、前記接続を定義する少なくとも１つのリソースを前記利用可能なリソースの目録から選択されたリソースに変更することによって、前記接続を変更するためのコンピュータ手段（５０１）と
を含むデータ処理システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
前記監視されたパフォーマンス特性が、クライアント（１０２）とサーバ（１１０）の間の接続の存在を含む、請求項１に記載のデータ処理システム。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３
【補正方法】変更
【補正の内容】
【請求項３】
前記接続の存在が、パケット・タイムアウト・イベントの数を検出することによって監視される、請求項２に記載のデータ処理システム。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項５
【補正方法】変更
【補正の内容】
【請求項５】
前記接続を定義する前記ソケットが、サーバ（１１０）側のソケットである、請求項１に記載のデータ処理システム。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項６
【補正方法】変更
【補正の内容】
【請求項６】
前記接続を確立する前にクライアント（１０２）およびサーバ（１１０）を、前記接続のマイグレーションをサポートするものとして識別するコンピュータ手段をさらに含む、請求項１に記載のデータ処理システム。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
前記接続を定義する前記ソケットが、クライアント（１０２）側のソケットである、請求項１に記載のデータ処理システム。
【手続補正７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
データ処理ネットワーク内でクライアント（１０２）とサーバ（１１０）の間のネットワーク接続を管理する方法であって、
前記接続の少なくとも１つのパフォーマンス特性を監視するステップと、
ネットワーク接続を提供するのに利用可能なリソースの目録を維持するステップと、
前記監視されたパフォーマンス特性が前記ネットワーク接続に問題があることを示しているとの判定に応答して、前記接続を定義するソケットのインターネット・プロトコル（ＩＰ）アドレスを変更することで、前記接続を定義する少なくとも１つのリソースを前記利用可能なリソースの目録から選択されたリソースに変更することによって、前記接続を変更するステップと
を含む方法。
【手続補正８】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
前記監視されたパフォーマンス特性が、クライアント（１０２）とサーバ（１１０）の間の接続の存在を含む、請求項８に記載の方法。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１１
【補正方法】変更
【補正の内容】
【請求項１１】
前記接続を定義する前記ソケットが、サーバ（１１０）側のソケットである、請求項８に記載の方法。
【手続補正１０】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１２
【補正方法】変更
【補正の内容】
【請求項１２】
前記接続を確立する前にクライアント（１０２）およびサーバ（１１０）を、前記接続のマイグレーションをサポートするものとして識別するステップをさらに含む、請求項８に記載の方法。
【手続補正１１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１３
【補正方法】変更
【補正の内容】
【請求項１３】
前記接続を定義する前記ソケットが、クライアント（１０２）側のソケットである、請求項８に記載の方法。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】明細書
【技術分野】
【０００１】
本発明は一般に、データ処理ネットワークの分野に関し、より詳細には、負荷の変化、誤動作、またはその他のネットワーク特性に応答して、確立されたネットワーク接続がそのソースまたは宛先（宛先）を動的にマイグレート（移動）できるようにするネットワークおよび方法に関する。
【背景技術】
【０００２】
従来のデータ処理ネットワークでは、クライアント・システムとサーバ・システムは、一般にネットワーク・インタフェース・カード（ＮＩＣ）と呼ばれる専用アダプタを介してネットワークに接続される。従来、ネットワークにおけるクライアント−サーバ・ペア間のネットワーク接続は、それぞれの装置のＮＩＣに完全に結び付けられる。接続のハードウェア要素が機能しなかったり、帯域幅の制限を受けたりする場合、接続特性を変更するために現時点で接続をより効率よく処理できる別のハードウェアに当該接続を「移動」させる機会は与えられない。代りに、既存の接続を終了させ、潜在的に大きなネットワーク・オーバヘッドを犠牲にして、新しい接続を確立しなければならない。オーバヘッドの負の影響は、潜在的に多数のクライアントに最高レベルの応答性を提供することを主要な目的とする高可用性サーバ環境において大きな問題となる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、ネットワーク負荷またはハードウェア障害などの要因に応答して、ネットワーク接続がその構成を動的に定義し、変更できるようにする、ネットワーク方法およびシステムを実施できることが望ましい。
【０００４】
ファン．Ｊ（Huang. J）他、「無停止型イーサネット（Ｒ）に対するオープン・ソリューション：設計、プロトタイピング、評価（Anopen solution to fault-tolerant Ethernet（Ｒ）: design, prototyping and evaluation）」、パフォーマンス、コンピューティング、および通信会議（Performance,Computing and Communications Conference）、１９９９年、ＩＥＥＥインターナショナル（IEEE International）、４６１〜４６８ページには、２つのネットワーク接続の各々で「活動中」メッセージを送出することによってネットワーク接続障害を検出する障害検出を組み込んだ、無停止型イーサネット（Ｒ）・アーキテクチャで使用されるノードが開示されている。ノードが２つのネットワーク接続の第１の接続では「活動中」メッセージを検出したが、２つのネットワーク接続の第２の接続では所定の時間内にこれを検出しなかった場合、ノードは、障害がネットワーク接続の第２の接続で発生しており、すべてのトラフィックをネットワーク接続の第１の接続を介して転送することを知らせる。転送は、ネットワーク接続の第１の接続だけを使用するようＮＩＣスイッチに指令することによって達成される。
【非特許文献】ファン．Ｊ（Huang. J）他、「無停止型イーサネット（Ｒ）に対するオープン・ソリューション：設計、プロトタイピング、評価（Anopen solution to fault-tolerant Ethernet（Ｒ）: design, prototyping and evaluation）」、パフォーマンス、コンピューティング、および通信会議（Performance,Computing and Communications Conference）、１９９９年、ＩＥＥＥインターナショナル（IEEE International）、４６１〜４６８ページ
【課題を解決するための手段】
【０００５】
上で明らかにされた問題は、最も効率的に利用可能なリソースの組を使用する接続を提供するため、ネットワーク接続が複数の利用可能なサーバおよび／またはクライアントの間をマイグレートできるようにする、データ処理ネットワークおよびシステムによって大部分は対処される。一般に、サーバおよびクライアントは、接続が確立されるときに、この接続マイグレーション機能をそれぞれがサポートすることを知らせる。オペレーティング・システムまたはアプリケーション・プログラムは、基本的な機能性およびパフォーマンスを含む特性について既存の接続を監視する。既存の接続が障害を起こしていることや、パフォーマンスが悪いことが見つかり、その接続に関係するクライアントおよびサーバが接続マイグレーションをサポートする場合、ソフトウェアは、より効率的な代替接続が存在するかどうかを判定する。そのような接続が発見された場合、接続を定義するパラメータが変更されて、好ましいハードウェアへの接続のマイグレーションが達成される。ネットワーク接続がＴＣＰ（伝送制御プロトコル）によって確立される一実施形態では、各接続は、接続を完全に定義する４要素から成る組、すなわちソースＩＰアドレス、ソース・ポート番号、宛先ＩＰアドレス、および宛先ポート番号を含む。本発明は、接続を定義する４要素の１つまたは複数を変更することによって、より効率的に機能するＮＩＣまたはシステムに接続をマイグレートするように構成される。
【発明を実施するための最良の形態】
【０００６】
次に図面を参照すると、図１は、本発明の一実施形態を実施するのに適したデータ処理ネットワーク１００の選択された要素を含むブロック図である。ネットワーク・アーキテクチャ分野の当業者であれば、この具体的な実施が多くの可能な構成のうちの１つに過ぎないことを理解されよう。この具体的な実施形態を示したのは、少なくとも一つにはその一般性のためであり、またそれが増加を続ける多数のネットワークの具現化の代表例となっているためである。図示の実施形態では、ネットワーク１００は、ワイド・エリア・ネットワーク１０４に接続されたクライアント・システム（クライアント）１０２を含む。クライアント１０２は一般に、クライアント装置で実行される従来のウェブ・ブラウザなどのクライアント・アプリケーション・プログラムを含む。
【０００７】
クライアント装置には、デスクトップまたはラップトップのパーソナル・コンピュータ、ネットワーク・コンピュータまたはワークステーション、あるいは携帯情報端末（ＰＤＡ）またはインターネット電話などのその他のネットワークを意識した装置、を含めることができる。簡単に図２を参照すると、模範的なクライアント１０２における選択されたハードウェア要素を含むブロック図が示されている。クライアント１０２は一般に、システム・バス２０２を介してシステム・メモリ２０４と相互接続される、１つまたは複数の汎用マイクロプロセッサ（ＣＰＵ）２０１ａ〜２０１ｎ（総称的または集合的にＣＰＵ２０１）を含む。ブリッジ装置２０６は、システム・バス２０２とＩ／Ｏバス２０８を相互接続する。Ｉ／Ｏバスは一般に、例えば、ＰＣＩスペシャル・インタレスト・グループ（ＳＩＧ）（www.pcisig.org）が策定したＰＣＩ（周辺コンポーネント相互接続）ローカル・バス仕様など、業界標準バス仕様に準拠する。１つまたは複数の周辺またはＩ／Ｏ装置は一般に、Ｉ／Ｏバス２０８に接続される。図示の実施形態には、Ｉ／Ｏバス２０８に接続されたネットワーク・インタフェース・カード（ＮＩＣ）１０５と汎用Ｉ／Ｏアダプタ２１０が示されている。ＮＩＣ１０５は、クライアント２０１のリソースをネットワーク媒体に接続する。一般的な実施では、ＮＩＣ１０５は、クライアント１０２をイーサネット（Ｒ）・ネットワークなどのローカル・エリア・ネットワークに接続する。図１に戻ると、クライアント１０２は、介在するワイド・エリア・ネットワーク（ＷＡＮ）１０４を介してサーバ・ネットワーク１０１にリモートに接続されるものとして示されている。別のクライアント（図１に図示せず）をサーバ・ネットワークにローカルに接続することもできる。
【０００８】
ワイド・エリア・ネットワーク１０４は一般に、ゲートウェイ、ルータ、ハブなどの様々なネットワーク装置と、１つまたは複数のローカル・エリア・ネットワーク（ＬＡＮ）とを含み、両者は、銅線、同軸ケーブル、光ファイバ・ケーブル、および無線媒体を可能性として含む様々な媒体を用いて相互接続される。ワイド・エリア・ネットワーク１０４は、インターネットの部分に相当するか、またはこれを含む場合がある。
【０００９】
図示の実施形態では、サーバ・ネットワークまたはサーバ・クラスタ１０１は、ＷＡＮ１０４に接続されたゲートウェイ１０６を介してクライアント１０２に接続される。サーバ・クラスタ１０１は一般に、１つまたは複数のサーバ１１０（図では４つ）を含むＬＡＮとして実施される。各サーバ１１０は、図２に示すクライアント・システムと実質的に同じ設計上の特徴をもつ（すなわち、共有システム・メモリに接続された１つまたは複数のマイクロプロセッサを有し、サーバをローカル・ネットワークに接続するＮＩＣを含むＩ／Ｏアダプタを有する）。各サーバ１１０は、標準的なイーサネット（Ｒ）またはトークン・リング構成などをとる共有媒体を介して互いにネットワーク接続される。サーバ・クラスタ１０１の各サーバ１１０は一般に、磁気ハードディスクなどの永続的（不揮発性）ストレージ媒体にアクセスする。さらに、どのサーバ１１０もそれ自体の内部ディスクおよびディスク・ドライブ機構を含むことができる。普及が進んでいる構成においては、永続的ストレージ装置は、ネットワーク接続された装置または装置の組として提供される。ネットワーク・ストレージ装置は、図１では参照番号１１４によって識別され、１つまたは複数のネットワーク接続ストレージ（ＮＡＳ）装置、ストレージ・エリア・ネットワーク（ＳＡＮ）、またはそれらの組み合わせとして実施することができる。
【００１０】
ソフトウェアの側から見ると、クライアント１０２とサーバ１１０は、一般に１つまたは複数のアプリケーション・プログラム３０４、オペレーティング・システム３０２、およびネットワーク・プロトコル３０１を含む、図３に示すソフトウェア・コンポーネントを使用する。アプリケーション・プログラム３０４には、データベース・アプリケーション、ウェブ・ブラウザ、グラフィック・デザイン・アプリケーション、スプレッドシート、ワード・プロセッサ、その他が含まれる場合がある。オペレーティング・システム３０２は、システムのリソースを管理するソフトウェア・コンポーネント群を指す一般用語である。ネットワーク・プロトコル３０１は、装置上で実行されるアプリケーションがネットワークを介して情報通信を行えるように構成された１組のソフトウェア・コンポーネントである。ネットワーク・プロトコル３０１は、図３にはオペレーティング・システム３０２とは別個のものとして示されているが、プロトコル・コンポーネントがオペレーティング・システムのコンポーネントを含むこともできる。
【００１１】
アプリケーション・プログラムおよびオペレーティング・システム・ルーチンは、それらが実行されたときにプロセスを開始する。サーバ装置１１０などのサーバ装置で実行されるプロセスは一般に、クライアント上で実行されているリクエストを行ったプロセスに一連の１つまたは複数のネットワーク・パケットとしてデータを送信する。各パケットは、リクエストされたデータの一部を含むペイロード（荷重）と、使用中のネットワーク・プロトコルに応じた１つまたは複数のヘッダ・フィールドを含む。ＷＡＮ１０４がインターネットに相当する実施形態では、例えば、サーバ１１０とクライアント１０２の間で送信されるパケットは一般に、インターネット・エンジニアリング・タスク・フォース（www.ietf.org）のＲＦＣ７９３およびＲＦＣ７９１で仕様が定められたＴＣＰ／ＩＰ（伝送制御プロトコル／インターネット・プロトコル）に準拠する。
【００１２】
ＴＣＰ対応の装置またはシステムが処理できる個々のプロセスを識別するため、ＴＣＰは、クライアント−サーバ接続毎に固有のアドレスを提供する。これらの固有のアドレスは、ＩＰアドレスとポート識別子を含む。ＩＰアドレスは、特定のＮＩＣなど、ネットワーク上の物理ロケーションまたは宛先を特定する。ポート識別子は、複数のプロセスが同一のハードウェア・リソース（すなわち、同一の物理リソース）を共有している場合があるので必要となる。ＩＰアドレスとポートの組み合わせは「ソケット」と呼ばれ、ネットワーク全域で固有となる。接続は、一般にクライアント側ソケットに相当する１つのソケットとサーバ側ソケットに相当するソケットとから成る１対のソケットによって完全に特定される。
【００１３】
次に図４を参照すると、クライアント−サーバ接続を概念的に説明する図が示されている。図示の接続は、サーバ１１０で実行されるプロセス１０９ａとクライアント１０２で実行されるプロセス１０９ｂとの間のＴＣＰ準拠の接続を表す。接続は、１対のソケットによって定義される。サーバ１１０の側から見ると、ソース・ソケットは、ＮＩＣ１０５のＩＰアドレスとプロセス１０９ａに関連付けられたポート番号との組み合わせによって決定され、宛先ソケットは、ＮＩＣ１０７のＩＰアドレスとクライアント１０２上のプロセス１０９ｂに関連付けられたポート番号との組み合わせによって決定される。クライアント１０２の側から見ると、ソース・ソケットと宛先ソケットが逆になり、ＮＩＣ１０７とプロセス１０９ｂがソース・ソケットを定義し、ＮＩＣ１０５とプロセス１０９ａが宛先ソケットを定義する。従来のデータ処理ネットワークでは、接続定義は静的である。接続の両側におけるソース・ソケットと宛先ソケットは不変である。本発明は、既存の接続定義を変更したほうが有利な場合に、クライアントとサーバが協力してこれを変更できるようにすることによって、上記の制約に対処する。接続マイグレーション機能は好ましくは、ネットワーク・プロトコルの機能を拡張することによって達成される。この実施形態では、接続の双方の当事者は、共に接続マイグレーションをサポートすることを事前に合意しなければならない。当事者のどちらかが拡張をサポートしない場合、この機能はもう一方の当事者によって無効にされる。
【００１４】
本発明の各部分は、コンピュータ可読媒体に保存される一連のコンピュータ実行可能命令から構成されるソフトウェアで実施することができる。命令が実行されているとき、命令は一般に、クライアントまたはサーバの（一般にＤＲＡＭで構成される）システム・メモリあるいは（一般にＳＲＡＭで構成される）内部または外部キャッシュ・メモリなどの揮発性ストレージ媒体に格納される。それ以外のときは、ソフトウェアは、ハードディスク、フロッピ・ディスケット、ＣＤ  ＲＯＭ、ＤＶＤ、フラッシュ・メモリ・カードまたはその他の電気的消去可能媒体、磁気テープ、その他、といった不揮発性媒体に保存することができる。さらに、ソフトウェアの各部分は、ネットワークの様々な要素に分散させることができる。例えば、ソフトウェアのある部分はクライアント・システムに存在し、別の部分はサーバ・システムに存在することがある。
【００１５】
次に図５を参照すると、本発明の一実施形態に従って選択されたソフトウェア要素が示されている。図示の実施形態では、サーバ１１０は、マイグレーション・モジュール５０１、リソース・モニタ５０３、および接続モニタ５０５を含む。これらの要素は、サーバのオペレーティング・システムおよびネットワーク・プロトコル・モジュールと共存する。接続モニタ５０５は、サーバ１１０が参加している１つまたは複数のネットワーク接続のパフォーマンスを監視する役割を担う。接続モニタ５０５は、スタンドアロンのアプリケーション・プログラムとして実施することができ、あるいはオペレーティング・システムまたはネットワーク・プロトコル・ユーティリティとして提供することもできる。一般に接続モニタ５０５は、サーバの動作中ネットワーク接続の１つまたは複数のパフォーマンス特性を計測するように構成される。監視されるパフォーマンス特性には、接続の基本的な機能性、および接続スループットが含まれ得る。基本的な機能性は、タイムアウト・イベントの数または頻度を監視することによって決定することができる。タイムアウト・イベントとは、送信されたが所定の時間内に肯定応答が返信されないパケットのことである。接続スループットは、例えば、あるパケットを送出してからそのパケットに対する肯定応答を受信するまでに経過した時間を監視することによって監視することができる。この情報と各パケットのサイズについての情報から、その接続の「速度」の推定値を導き出せるように、接続モニタ５０５は構成される。
【００１６】
マイグレーション・モジュール５０１は、接続モニタ５０５と情報交換を行って、特定の接続をマイグレーションの候補とするかどうかを決定するように構成される。本発明の一実施形態では、接続モニタ５０５は、接続の監視されるパフォーマンス特性が基準または閾値条件に適合しなくなるたびに、マイグレーション・モジュールに情報を伝える。接続モニタ５０５は、例えば、ある監視接続の基本的な機能性が不良であると判定された場合に、マイグレーション・モジュール５０１にその接続について報告するように構成される。どのような場合に監視接続をマイグレーションの候補として報告するかについて定めたパフォーマンス基準には、１組の事前に決定された基準を含めることができる。あるいは、パフォーマンス基準は、接続の最近の動作記録に基づいて動的に決定することもできる。
【００１７】
接続モニタ５０５からの、モニターされた接続が何らかのパフォーマンス基準を下回った旨の報告に応答して、マイグレーション・モジュール５０１は最初に、その接続のもう一方の当事者が接続マイグレーションをサポートするかどうかを判定する。接続マイグレーションをサポートするクライアントまたはサーバにおいて接続が確立されたとき、クライアントまたはサーバは、もう一方の当事者が接続マイグレーションをサポートするかどうかを判定するため、もう一方の当事者に問い合わせを行う。その接続の双方の当事者が接続マイグレーションをサポートする場合、双方の当事者は、その接続に適切にタグを付ける。一方の当事者は、接続を確立するときに、専用のパケットを送信することによって、または専用のヘッダ・フィールドをもたせることによって、もう一方の当事者が接続マイグレーションをサポートするかどうかの判定を試みることができる。当事者のどちらかがマイグレーション機能をサポートしない場合、マイグレーション機能はもう一方の当事者によって無効にされる。
【００１８】
接続の双方の当事者がマイグレーション機能をサポートすると仮定すると、マイグレーション・モジュール５０１は、接続モニタ５０５からの指示に応答して、既存接続をマイグレートしようと試みるように構成される。図５に示す実施形態では、マイグレーション・モジュール５０１は、接続を提供するのに代替接続が利用可能であるかどうかを判定するため、リソース・モニタ５０３に情報を求める。リソース・モニタ５０３は一般に、ネットワーク接続を提供するのに利用可能なリソースの目録を維持するように構成される。図６を参照すると分かるが、各サーバ１１０および各クライアント１０２は、複数のネットワーク・インタフェース・カードを有することができる。サーバ１１０は、例えば、各スロットがネットワーク・インタフェース・カードをサポートできる１６０ものホットプラグ可能ＰＣＩスロットを有した、ＩＢＭコーポレーションのｐＳｅｒｉｅｓ６９０サーバを用いて実施することができる。同様に、高可用性クライアント・システムも複数のネットワーク・アダプタを有することができる。サーバまたはクライアントが複数のネットワーク・アダプタを含む場合、特定のネットワーク接続を提供するための代替リソースとして、付加的なアダプタを利用可能とすることができる。マイグレーション・モジュール５０１は、接続をマイグレートしようと試みるとき、リソース・モニタ５０３に利用可能リソースの一覧の提供を求める。
【００１９】
本発明の一実施形態では、リソース・モニタ５０３は、マイグレーション・モジュール５０１がリクエストを発行するたびに、単にすべての利用可能リソースの一覧を提供できるに過ぎない。別の実施形態では、リソース・モニタ５０３は、利用可能リソースを選択的に示すことができ、または、例えば、どのクライアントかなど様々な要因に依存する優先順位を付けて示すことができる。この実施形態では、異なるクライアントに異なるレベルのサービスを提供するため、利用可能リソースに優先順位を付けることが企図されている。サービス・プロバイダは、異なるクラスのクライアントに異なるクラスのサービスを提供しようとすることができる。リソース・モニタ５０３は、低いクラスのサービスに加入するクライアントにとって利用できないリソースを、最高のクラスのサービスに加入するクライアントが利用できるようにすることができる。あるクライアントがどのリソースを利用できるかを決定するのに、その他の優先順位付け基準を使用することもできる。
【００２０】
図５に示すクライアント１０２は、サーバ１１０について示されたコンポーネントと実質的に類似のソフトウェア・コンポーネントを含むものとして示されている。したがって、各クライアント１０２は、マイグレーション・モジュール、接続モニタ、およびリソース・モニタを含むことができる。このようにして、接続パフォーマンスを接続の両側で監視することができ、接続の両側でその接続の他のリソースへのマイグレーションを開始することができる。
【００２１】
接続マイグレーションが接続のどちらかの当事者によって開始されたとき、マイグレーション・モジュール５０１は、新規パケットの送信を中断することによってマイグレーションを開始する。すべての未決パケット（すなわち、送出されたが、肯定応答が返信されていないパケット）が肯定応答を返されたか、またはタイムアウトになったとき、マイグレーション・モジュール５０１は、接続当事者の一方または双方のソケット定義を変更することができる。ソケット定義が変更された後、接続を定義する４要素から成る組が、クライアント側およびサーバ側でしかるべく変更される。したがって、ある接続マイグレーションにおいて、クライアント１０２のソケット定義を変更し、サーバ１１０のソケットはもとのままとした場合、変更されたクライアント側のソケット定義を反映するようにソースＩＰアドレス／ポート番号の組み合わせを変更することによって、クライアント側の４要素から成る組が変更される。サーバ１１０も、宛先ＩＰアドレス／ポート番号の組み合わせを変更することによって、接続の４要素から成る組を変更する。
【００２２】
次に図６を再び参照すると、本発明によって企図される接続マイグレーションを概念的に説明する図が示されている。この図では、１組のネットワーク接続６０１ａ〜６０１ｃが、１組のクライアント１０２ａ〜１０２ｍと１組のサーバ１１０ａ〜１１０ｎの間を接続する。各クライアント１０２は、１つまたは複数のネットワーク接続を提供するのに利用可能な少なくとも１つのＮＩＣ１０７を有し、各サーバ１１０は、少なくとも１つのＮＩＣ１０５を有する。図６には、３タイプの接続マイグレーションが示されている。サーバ内マイグレーションを表す接続６０１ａは、サーバ１１０ａの第１のＮＩＣ１０５に接続される接続として実線で示されている。ここで、実線は元のネットワーク接続を表す。接続マイグレーションの後、接続６０１ａは、点線で示すように、クライアント１０２ａとサーバ１１０ａの第２のＮＩＣとの間の接続となる。接続６０１ｂは、サーバ間マイグレーションを表し、クライアント１０２ｂとサーバ１１０ａとの間の元の接続は、サーバ１０２ｂと第２のサーバ１１０ｎとの間の第２の接続（破線で示す）に移動される。このサーバ間マイグレーションは、例えば、サーバ・クラスタ１０１が複数のサーバ１１０を含み、サーバがすべて共通スイッチ１０８に接続される、図１に示すようなサーバ・クラスタ環境で実施することができる。この環境では、マイグレーション・モジュール５０１および接続モニタ５０５は、各サーバ１１０に分散させることができ、リソース・モニタ５０３は、クラスタ全体で利用可能なリソースを集中モニターできるスイッチ１０８にインストールすることができる。接続６０１ｃは、クライアント内マイグレーションを示し、クライアント１０２ｍの第１のＮＩＣ１０７によって初期定義された接続は、クライアントの第２のＮＩＣに移動される。本発明は、サーバ内、サーバ間、およびクライアント内マイグレーションを可能にすることによって、システムの柔軟性を最大化する。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態を実施するのに適したデータ処理ネットワークの選択された要素を含むブロック図である。
【図２】図１のデータ処理ネットワークで使用するのに適したデータ処理ネットワークの選択されたハードウェア要素のブロック図である。
【図３】図２のデータ処理ネットワークの選択された要素のブロック図である。
【図４】ネットワーク接続を概念的に説明した図である。
【図５】本発明の接続マイグレーション機能を強調している、図４のネットワーク接続の選択された要素のブロック図である。
【図６】本発明によって企図される様々な接続マイグレーション例の概念図である。
【国際調査報告】
2005524162.tif 000009
2005524162.tif 000010
2005524162.tif 000011