(57)【特許請求の範囲】
【請求項１】
予め固有のアドレスの他に複数のサーバのいずれか一つに割り当てられる代表アドレスを保持し、該代表アドレスを宛先アドレスとしたクライアントからネットワーク経由でアクセスされるサーバであって、
アクセス元のクライアントとネットワーク上の各サーバ間のトラフィック状況を検出する手段と、
該手段により検出されたトラフィック状況に基づき前記クライアントがアクセスするのに適切なサーバを選択する手段と、
該手段で選択された前記適切なサーバに前記代表アドレスおよび該代表アドレスの引き継ぎを指示する指示パケットを送信すると共に、自サーバで保持する代表アドレスを無効化する手段と、
他のサーバから送信された前記代表アドレスと前記指示パケットを前記適切なサーバとして受信し、該代表アドレスを保持して有効化し、前記代表アドレスを宛先アドレスとしたクライアントからのアクセスを引き継ぐ手段と
を有することを特徴とするサーバ。
【請求項２】
クライアントの接続先サーバを、ネットワークのトラフィック状況に応じて動的に変更する通信制御方法であって、
複数のサーバのいずれか一つに予め定められた代表アドレスを割り当て、該代表アドレスを宛先アドレスとした前記クライアントからのアクセス要求があれば、前記代表アドレスを割り当てた第１のサーバに接続するステップと、
前記第１のサーバの処理として、
アクセス元のクライアントとネットワーク上の各サーバ間のトラフィック状況を検出するステップと、
該ステップで検出したトラフィック状況に基づき自サーバよりも前記クライアントがアクセスするのに適切なサーバを選択するステップと、
該ステップで選択した前記適切なサーバに前記代表アドレスおよび該代表アドレスの引き継ぎを指示する指示パケットを送信すると共に、自サーバで保持する代表アドレスを無効化するステップとを有し、
前記適切なサーバの処理として、
前記第１のサーバから受信した前記指示パケットに基づき、該指示パケットと共に受信した代表アドレスを保持して有効化し、前記代表アドレスを宛先アドレスとするクライアントからのアクセスを引き継ぐステップを有することを特徴とする通信制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のサーバコンピュータ（以下、単にサーバという）とクライアントコンピュータ（以下、単位クライアントという）が接続されたコンピュータネットワークのトラフィック制御技術に係り、特に、ネットワークの空き帯域の状況に基づいてクライアントが通信するサーバを動的に切り替えることにより、トラフィックのネットワーク全体での分散化を図るようにした通信システムに関する。
【０００２】
【従来の技術】
従来、サーバとクライアントが接続されたコンピュータネットワークシステムにおいて、負荷の分散や障害対策のためにサーバを複数設けることが一般的に行われている。その場合、クライアントからのサービス要求が特定のサーバに集中し、クライアントへの応答性能が悪化することがある。そのため、従来から、様々なトラフィック制御やサーバの負荷分散に関する技術が提案されている。その例として、次のような文献が挙げられる。
【０００３】
特開平９−３１９６８９号公報には、サーバに障害が起こると、ネームサーバより事前にクライアントに配布しておいた選択候補サーバリストから次のサーバを選択することが開示されている。これは、クライアントにサーバ選択のための特別な処理を持たせる必要があるため、その分コストが高くなる。また、これはサーバの負荷のみを問題としており、経由するネットワークの負荷については全く考慮されていない。さらに、予め代替のサーバを固定的に準備しておく必要があり、その分コストが高くなる。
【０００４】
特開平７−１５４３９９号公報には、ネットワークにおける送受信可能なバッファサイズを制御するウィンドウによりネットワークへのデータ流入量を制御するフィードバック技術が開示されている。このフィードバック技術によると、輻輳は回避できるが、サーバとクライアントの物理的、論理的位置は固定であり、ネットワーク全体として資源を効率よく使っているとはいえない。
特開平７−３１９８３５号公報に記載されたものは、サーバの持つファイルのアクセス頻度に応じてファイルを分散させることによってサーバの負荷分散を図る技術に関するものである。これは、ネットワークの負荷分散については考慮していない。
特開平９−２４４９７９号公報に記載されたものは、サーバのアクセス頻度をサービス資源の再配置の契機としたものであり、ネットワークの負荷や輻輳状態を契機とすることについては全く考慮されていない。また、この場合、サービス資源の再配置によってクライアントがアクセス先（宛先アドレス）を意識して変更しなくてはならない。
【０００５】
特開平１０−０２３０７４号公報に記載されたものは、サーバに障害が発生した場合にサーバを切り替えるようにしたもので、ネットワークの負荷が高まったことを契機にサーバを切り替えることについては全く考慮されていない。また、サーバを切り替えるときにどのサーバを選ぶか、また切り替え先のサーバに必要なデータやアプリケーションが存在していない場合には切り替えられない。さらに、現用系のサーバがダウンすることを前提として予備系のサーバが稼動するため、現用系サーバの固有アドレスを予備系サーバが引き継いでしまうため、現用系サーバは、切り替え後には用いることができない。すなわち、サーバ切り替え後に固有アドレスでのサービスを行ったり、保守や管理のための通信ができなくなるという問題がある。
【０００６】
【発明が解決しようとする課題】
上述したように、従来のトラフィック制御に関する技術は、サーバとクライアントの位置が固定されていて、その間のトラフィックをどのように迂回させるか、またはネットワーク内やエンドシステムの通信トラフィックの流量をどのように制御するかというものである。これは、予め、迂回路を用意する必要があるためコストの問題が生じたり、流量制限によるクライアントのレスポンス特性が悪化するという問題がある。
【０００７】
また、従来のサーバ切り替え技術は、サーバの障害に対するバックアップを目的としたものであるため、バックアップサーバも事前の設定が必要な固定サーバであり、その準備のためのコストが高くなるという問題がある。さらに、ネットワークの負荷分散を検出してサーバを動的に切り替える手段もなかった。
従来のサーバの切り替え技術においては、クライアントに事前に設定を要するものが多く、インターネットのような全世界規模で流通しているＷＷＷ（ＷorldＷide Ｗeb：ワールド・ワイド・ウェブ）サーバに対して、クライアントの設定やソフトウェアの変更なしに、ネットワークのトラフィックの状況によって、動的にサーバを切り替える確立した技術はなかった。
【０００８】
トラフィックの集中する経路を迂回せずに、サーバを動的にネットワーク上で移動させることにより、ネットワークの使用率の低い部分を有効に使うようにすれば、ネットワーク全体としてトラフィックを平均化することができ、結果的に、クライアントの平均応答特性を改善することができる。例えば、インターネットで用いられるＷＷＷなどのサーバとクライアント間の通信システムにおいて、中継ネットワークの混雑を解消し、ネットワーク全体でみて利用されていない回線やサーバを有効に使うことで、クライアントの得る通信サービスの速度や品質を向上することができると考えられる。
【０００９】
しかし、トラフィックがネットワーク内で平均的に分散するように、クライアントの通信するサーバを適切な位置にある別のサーバに切り替えるための情報をどのように把握するかという課題がある。
また、クライアントに対するサービスを連続して提供するために、クライアントからみて動的にサーバを切り替え、さらに切り替えることをクライアントに意識させない、つまりクライアントには何の設定変更や制御機能を追加することなしに切り替えることが必要がある。
本発明の目的は、これらの課題を解決し、トラフィックの集中する経路を迂回することなしに、またクライアントには何の設定変更や制御機能の追加することなしに、トラフィック発生の源であるサーバを動的にネットワーク上で移動させることができ、ネットワークの使用率の低い部分を有効に使うことが可能な通信システムを提供することである。
【００１０】
【課題を解決するための手段】
本発明は、上記目的を達成するために、具体的に次の如き手段を有する。
（１）ネットワークで接続された複数のサーバとクライアントに対してそれぞれを識別して通信するための固有のアドレスを持たせる。さらに、それらの複数のサーバのうちいずれか１つに固有アドレスとは異なる代表アドレスを割り当てる。クライアントはサーバからのサービスを受けるときは、この代表アドレスを指定する。サーバとクライアント間では、その通信経路上のトラフィックの状態を検出する手段により、状態が常に監視されており、通信速度やレスポンスタイムなどが一定の閾値を越えると、ネットワーク上の別のサーバに代表アドレスを動的に割り当て直す手段により、代表アドレスを引き継ぐ。サーバとクライアント間にルータなどの中継装置がある場合は、代表アドレスを引き継いだサーバが新しくダイナミック・ルーティングの手法を用いることにより、ネットワーク上の中継装置の経路情報が書き換えられ、代表アドレスを持つサーバが動的に移設されたかの如くになる。これにより、クライアントには一切設定変更やソフトウェアの変更なしに、通信相手のサーバが動的に切り替わるので、トラフィックの分散が行われ、クライアントが受けるサービスの通信速度やレスポンスタイムを改善することができる。
【００１１】
（２）上記のサーバに代表アドレスを動的に割り当て直す手段の一つを以下に示す。まず、切り替え元サーバが切り替え先サーバ（バックアップサーバ）に対して、切り替え指示のパケットを送信することで代表アドレスの引き継ぎを行う。この切り替え指示パケットには、引き継ぐ代表アドレスを含んでいてもよいし、あるいは予めバックアップサーバに設定し無効化しておいた代表アドレスを有効化する指示を含んでいてもよい。切り替え元サーバは、予め設定しておいた複数のバックアップサーバの識別情報（固有アドレス）のリストと各種の属性情報と、上記の通信経路上のトラフィックの状態を検出する手段から得た情報に基づいて、その中で適切なサーバを選んで切り替指示パケットを出すことで、動的に代表アドレスの割当てをバックアップサーバに引き継がせることができる。
（３）上記の切り替え指示パケットを送信する装置は、上記のトラフィック検出手段を持ち、最適なトラフィック分散を行う判断機能を持った中継装置やネットワーク管理装置が行ってもよい。
【００１２】
（４）上記のサーバの代表アドレスを動的に割り当て直す手段の一つとして、サーバとクライアントの経路上に中継装置がある場合、その中継装置で対応する方法がある。サーバの識別に使うアドレスとして、クライアントと中継装置の間の通信はサーバの代表アドレスを用い、中継装置とサーバの間の通信はサーバの固有アドレスを用いるように、パケットのアドレスを変換する機能を中継装置に持たせる。中継装置には、サーバの固有アドレスと代表アドレスの対応付けテーブル（アドレス変換テーブルと呼ぶ）を持ち、これを参照することでパケットの変換を行う。サーバの代表アドレスを動的に割り当て直すには、この変換テーブルの固有アドレスと代表アドレスの対応関係を書き換えることで実現する。ネットワークの構成によって、このパケットのアドレス変換機能をいくつか、または全ての中継装置に持たせる。サーバの動的切り替えは、このアドレス変換テーブルの動的書き換えによって実現できる。このアドレス変換テーブルの書き換えは、トラフィックの状態を検出する手段を持った中継装置やネットワーク管理システムから、書き換え指示情報を上記アドレス変換テーブルを持ったルータに送ることで実現する。
【００１３】
（５）上記のサーバが代表アドレスを動的に割り当て直すときに、引き継ぐサーバ（バックアップサーバと呼ぶ）にクライアントに提供するデータを転送することで、バックアップサーバに必要な環境をそろえることができる。
（６）上記のサーバが、代表アドレスを動的に割り当て直すときに、引き継ぐサーバにアプリケーションプログラムを転送することで、バックアップサーバに必要な環境をそろえることができる。
（７）上記の各サーバとクライアント間のネットワークのトラフィックの状況を検出する手段として、レスポンスタイム測定用の折り返しパケットを使う方法がある。サーバは常時、クライアントの一部または全体に対してこのレスポンスタイム測定を一定間隔で実施する。バックアップ候補となるサーバは、これらのクライアントに対して常にレスポンスタイムを測定しておくか、現用サーバからの指示によって特定クライアントまでのレスポンスタイム測定を必要な時に実施する。
【００１４】
（８）上記の各サーバとクライアント間のネットワークのトラフィックの状況を検出する別の手段として、各経路上にトラフィック計測手段を置くことにより検出する方法がある。サーバとクライアント間の経路上にある中継装置に、全てのトラフィックを監視し、統計をとる機能を持たせることで、サーバとクライアントとの間の総トラフィック量、その他の通信トラフィック量、空き帯域の量などを測定し、その情報を上記の現用サーバに渡し、サーバ切り替え判断の情報とする。
（９）上記の各サーバとクライアント間のネットワークのトラフィックの状況を検出するさらに別の手段として、通信パケットがネットワーク上で輻輳によって廃棄されたことにより発せられるメッセージを用いる方法がある。中継装置は、輻輳により送信不能、もしくは受信不能な量のトラフィックが発生すると、パケットの流量制限を行ったり、廃棄を行い送信元にメッセージを送信する。これらのメッセージの内容と発生数などの情報をもとに、通信状態の劣化を判断する。
【００１５】
【発明の実施の形態】
（１）＜実施形態１＞
以下、本発明の通信システムにおいて、クライアントに最も通信速度の速いサーバからサービスを提供するようサーバの切り替えを行なう実施例を説明する。
図１は、本実施例の簡単な構成を示す図である。
同図において、１０１は現用サーバ、１０２はバックアップ用サーバ、１０３は現用サーバ１０１のあるネットワーク、１０４はバックアップサーバ１０２のあるネットワークである。１０５は最初に現用サーバ１０１と通信しているクライアント、１０６はクライアント１０５のあるネットワーク、１０７はネットワーク１０３とネットワーク１０６を接続する回線、１０８はネットワーク１０４とネットワーク１０６を接続する回線である。
【００１６】
図１に示すように、本発明による通信システムでは、現用サーバ１０１とバックアップサーバ１０２の存在するネットワークは異なり、その経路も異なる。また、回線１０７は回線１０８より通信帯域が広いものとする。１０９は回線１０７に接続されたネットワーク１０３のルータ、１１０は回線１０８に接続されたネットワーク１０４のルータ、１１１は回線１０７と１０８に接続されたネットワーク１０６のルータである。１１２は、ネットワーク１０３，１０４および１０６を管理するネットワーク管理装置である。
【００１７】
図１において、現用サーバ１０１の固有アドレスとしてＡ１、バックアップ用サーバ１０２の固有アドレスとしてＡ２が設定され、現用サーバ１０１にはさらに代表アドレスとしてＶ１が設定されているものとする。
【００１８】
図２は、本発明におけるサーバの一構成例である。
同図において、２０１はこのサーバの切り替え機能とサーバ機能を実行する制御部、２０２はサーバとクライアントとの間のトラフィックの状態を監視するトラフィック監視部、２０３はトラフィック監視部２０２で得たトラフィック情報と後述するメモリ２０７内にあるバックアップサーバ情報２１０に基づいてバックアップサーバをどれにするかを判断して選択する代替サーバ選択部、２０４は代替サーバ選択部２０３からの指示を受けて、バックアップサーバに対して代表アドレスを引き継ぐことを指示し、自己の持つ代表アドレスを無効化する処理を行うサーバ切り替え処理部、２０５はサーバのサービス機能を実行するアプリケーションプログラム処理部、２０６はサーバが外部と通信するための入出力部である。
【００１９】
また、２０７は各種制御情報を保持する高速のメモリ、２０８はこのサーバに割当てられた固有アドレスのメモリ内の保持部、２０９は、複数のサーバのうち、このサーバだけに割当てられた代表アドレスのメモリ内の保持部、２１０はバックアップサーバに関する各種情報であるバックアップサーバ情報のメモリ内の保持部、２１１はアプリケーションプログラムに関わる情報やトラフィック情報などのデータを保持する外部記憶装置、２１２は、上述した制御部２０１，メモリ２０７，入出力部２０６，外部記憶装置２１１を相互に接続する内部バスである。
図２に示したサーバの構成例では、サーバの切り替えに必要な要素を中心に記述しているので、サーバがクライアントに提供する各種機能要素については、省略している。
【００２０】
図３は、本発明におけるルータの一構成例である。
同図において、３０１は本発明によるルータの機能を実行する制御部、３０２はパケットの経路選択および転送処理を行うルーティング処理部、３０３は各種情報を保持するメモリ、３０４はネットワークの経路情報をメモリ内に貯えたルーティングテーブル、３０５〜３０８は、このルータのパケット送受信を行う入出力部、３０９は制御部３０１とメモリ３０３および各入出力部３０５〜３０８を相互に接続する内部バスである。
図３に示した構成例では、サーバの切り替えに必要な要素を中心に記述しているので、ルータ本来の機能であるルーティング処理機構の詳細は省略してある。
【００２１】
図４は、本発明におけるルータの別の構成例である。
同図において、４０１は本発明によるルータの機能を実行する制御部、４０２はサーバとクライアント間でのトラフィックの状況を監視するトラフィック監視部、４０３はトラフィック監視部４０２から得た情報と後述するメモリ４０７内にあるバックアップサーバ情報４０９に基づいてバックアップサーバをどれにするかを判断して選択する代替サーバ選択部、４０４は代替サーバ選択部からの指示により、サーバ切り替えを関連する各サーバに指示するサーバ切り替え処理部、４０５はパケットの経路選択および転送処理を行うルーティング処理部、４０６はサーバの固有アドレスと代表アドレスの変換処理を行うアドレス変換処理部である。
【００２２】
また、４０７は各種情報を高速に記憶できるメモリ、４０８はサーバの固有アドレスと代表アドレスとの対応関係を記述したアドレス変換テーブル、４０９はバックアップサーバに関する各種情報を保持するバックアップサーバ情報のメモリ内の保持部、４１０はネットワークの経路情報を持つルーティングテーブル、４１１はサーバとクライアント間のトラフィック統計データのメモリ内の保持部、４１２〜４１５は、このルータのパケット送受信を行う入出力部、４１６は制御部４０１とメモリ４０７および各入出力部４１２〜４１５を相互に接続する内部バスである。
図４の構成例では、サーバの切り替えに必要な要素を中心に記述しているので、ルータ本来の機能であるルーティング処理機構の詳細は省略してある。
【００２３】
図５は、本発明で用いられる一般的なクライアントの構成例である。本発明では、クライアントに対して何ら変更を加えるものではないため、この図においては特に発明に関わる要素はないが、以降の説明上必要なので、簡単に記述する。同図において、５０１はクライアントの動作を制御する機能を持つ制御部、５０２はクライアント上で動作するクライアント用アプリケーションプログラム処理部、５０３はクライアントが外部と通信するときにパケットを送受信する入出力部、５０４はクライアントの動作に必要な情報を高速に記憶するメモリ、５０５はこのクライアントに割当てられた固有アドレスのメモリ内の保持部、５０６はクライアントが通信するサーバの代表アドレスのメモリ内の保持部、５０７はメモリ５０４に比べて各種情報を、より長期的，より大量に保存するための大容量の外部記憶装置、５０８は、制御部５０１，メモリ５０４，入出力部５０３および外部記憶装置５０７を相互に接続する内部バスである。
本クライアントの構成例では、サーバの切り替え動作に関連する部分のみを記述しており、その他の処理に関わる部分については記述を省略してある。
【００２４】
図９は、ルータのアドレス変換テーブル４０８（図４参照）の内容例である。同図において、９０１はサーバの固有アドレスフィールドであり、９０２は各サーバが代表アドレスの割当てを持っているかどうかを示すとともに、もし代表アドレスの割当てを持っている場合にはそのアドレス値を示す代表アドレスフィールドである。
【００２５】
次に、本実施例の動作をフローチャートを用いて詳細に説明する。
図７は現用のサーバの動作を示すフローチャートであり、図８はバックアップサーバの動作を示すフローチャートである。
図１において説明したように、現用サーバ１０１，バックアップサーバ１０２およびクライアント１０５は、それぞれを識別して通信するための固有のアドレスＡ１，Ａ２，およびＡ３を持っている。さらに、サーバ１０１は、その固有アドレスとは異なる代表アドレスＶ１を割り当ててある。クライアント１０５は、サーバからのサービスを受けるときは、この代表アドレスＶ１を指定して通信を行う。
【００２６】
図１の通信システムにおいて、クライアント１０５は現用サーバ１０１と通信しているものとする。このとき、現用サーバ１０１が複数のクライアントからアクセスを受けたり、その他のトラフィックで回線１０７の空き帯域が少なくなっているものとする。
現用サーバ１０１は、定期的にクライアント１０５に対してレスポンスタイム測定のための折り返しパケットをトラフィック監視部２０２より送信する（トラフィック情報収集：ステップ７０１）。ＴＣＰ／ＩＰ（Ｔransmission ＣontrolＰrotocol／Ｉnternet Ｐrotocol）のＩＣＭＰ（Ｉnternet Ｃontrol ＭessageＰrotocol）エコープロトコルなどがその折り返しパケットの典型例である。また、現用サーバ１０１がクライアント１０５に対して、どれだけの量のトラフィックを発生させているかも統計を取る。これにより、現用サーバ１０１は、回線上のトラフィックの状態を常に把握することができる。また、バックアップ用サーバ１０２も同様の手法でクライアント１０５に対して定期的にレスポンスタイムを測定している。
【００２７】
現用サーバ１０１では、クライアント１０５に対するレスポンスタイム測定結果が予め決めておいた閾値を一定回数超えると（ステップ７０２：Ｙ）、代替サーバ選択部２０３に通知し、ここで代替サーバの選択処理を行う（ステップ７０３）。なお、測定結果が閾値を一定回数超えたことを契機にサーバの交代要否を判断するようにしたのは、レスポンスタイムが瞬間的に悪化して閾値を超えることがあっても、超える回数が少ない場合は平均的にならせばトラフィックの負荷に問題がないことがあるためである。
【００２８】
現用サーバ１０１の代替サーバ選択部２０３は、バックアップサーバ情報２１０と上記のレスポンスタイム測定値に基づいて、クライアント１０５にサービスを提供できる別のサーバで、クライアント１０５とその別のサーバ間でトラフィックが低く、現用サーバ１０１のトラフィックを処理できるかどうかを判断する（ステップ７０３）。バックアップサーバ情報２０１には、事前に設定可能な各種情報が含まれている。例えば、各サーバごとの、サーバの固有アドレス、サーバのＯＳ（Ｏperating Ｓystem：オペレーティングシステム）、持っているアプリケーションプログラム、ネットワークインタフェース、クライアントからそのサーバまでの回線の総帯域幅、その回線の料金、サーバマシンの性能、サーバの所有者などである。
【００２９】
代替サーバ選択部２０３では、代替サーバ候補１０２からクライアント１０５に対してどのくらいのレスポンスタイムを保証できるかを問い合わせる。代替サーバ候補１０２は、このクライアントに対して常にレスポンスタイムを折り返しパケットで測定しておくか、現用サーバ１０１からの問い合せによって特定クライアントまでのレスポンスタイム測定を実施するか、もしくは事前の知識としてバックアップ用サーバとして十分なトラフィック処理能力があることを前提に性能を測定しないかいずれかによって、保証できるレスポンスタイムを現用サーバ１０１に連絡する。
【００３０】
これらの情報を総合的に判断し、現用サーバ１０１は、サーバの切り替え先であるバックアップ用サーバ１０２を決定し、サーバ切り替え処理部２０４に対して、切り替え処理実行を依頼する。
サーバ切り替え処理部２０４は、代替サーバの固有アドレスをバックアップサーバ情報２１０から得て、代表アドレスＶ１を引き継ぐ指示パケットを送信する（ステップ７０５）。
【００３１】
バックアップ用サーバ１０２では、現用サーバ１０１から送信された上記パケットにより代表アドレスＶ１を得て（ステップ８０１）、この代表アドレスＶ１での通信も可能にするよう動的に設定の変更を行う（ステップ８０２）。バックアップ用サーバ１０２では、代表アドレスＶ１の引き継ぎが完了すると現用サーバ１０１に対して完了通知を送信する（ステップ８０３）。
【００３２】
現用サーバ１０１ではこれを受信し（ステップ７０６）、代表アドレスＶ１による通信を終了する。また、現用サーバ１０１では、自己のアドレスとして使っていた代表アドレスＶ１が消滅したことをダイナミックルーティングプロトコルにより、ルータ１０９に伝え、ルータ１０９では代表アドレスＶ１に対する経路が消滅したことをルータ１１１およびルータ１１０に伝える（ステップ７０７）。一方、バックアップ用サーバ１０２では、上記の現用サーバ１０１の代表アドレスＶ１消滅処理、経路消滅処理を行うのに十分な時間が経過したのち、自己のアドレスとして代表アドレスＶ１をダイナミックルーティングプロトコルにより、ルータ１１０に伝え、さらにルータ１１０はその経路情報をルータ１１１および１０９に伝える（ステップ８０４）。以上により、現用サーバがサーバ１０１からサーバ１０２に切り替えられる。このようにして、現用サーバをサーバ１０１からサーバ１０２への切り替えは、クライアントの設定変更なしに動的に実現することができ、またトラフィックが分散されるので、クライアントが受けるサービスの通信速度やレスポンスタイムを改善することができる。
【００３３】
サーバの切り替えを行うときのレスポンスタイム測定は、１つまたはいくつかの代表クライアントに対して行うことも、全てのクライアントに対して行うことでもよい。しかし、後者の場合、クライアントの数が多いと、測定負荷がサーバと回線の両方を圧迫するため、現実的でない場合もある。
【００３４】
次に、上記の各サーバとクライアント間のネットワークのトラフィックの状況を検出するさらに別の手段として、通信パケットがネットワーク上で輻輳によって廃棄されたことにより発せられるメッセージを用いる方法について以下に説明する。
一般に、ネットワークの輻輳が起こり、送信可能、もしくは受信可能な量のトラフィックが発生すると、中継装置がパケットの流量制限を行ったり、廃棄を行ったりするシステムがある。例えば、ＴＣＰ／ＩＰのＩＣＭＰのソースクエンチと呼ばれる送信元に対するパケット流量制限、ＴＣＰのウィンドウサイズの制限、ＩＣＭＰエラーメッセージでのパケット廃棄通知などがある。これらの通知情報は、ネットワークの負荷が高まった場合や輻輳が発生した場合に中継装置や相手システムから送信される。これらの情報を契機に、通信状態の劣化を判断し、これをもとに、バックアップ用サーバを新たな現用のサーバに切り替えることができる。ただし、この切り替えは、事前に定義しておいてもよいし、上記のようにバックアップ用サーバとクライアント間のトラフィックを測定して決めてもよい。
【００３５】
上記の現用サーバの切り替えをするかどうかの判断には、上記に示した情報以外にも幾つかの情報が必要な場合がある。
一つ目は、各サーバからクライアントまでの空き帯域情報と現用サーバがクライアントに対して処理する単位時間当たりの総トラフィック量である。これは、サーバを切り替えることで、トラフィックがバックアップ用サーバに向けられ、事前に測定したレスポンスタイムよりかなり劣る値となり、切り替え前のほうが優る可能性があるため、切り替後のトラフィックを事前に計算する必要があるためである。
【００３６】
２つ目は、クライアントの平均レスポンスタイムと各クライアントに対するレスポンスタイムの分散、最悪のレスポンスタイムなどである。いくら切り替えにより、各クライアントに対する平均レスポンスタイムが改善されるとしても、一部に極端に劣るレスポンスタイムのクライアントが発生する場合は切り替えないほうがよい場合もある。
その他、切り替えの判断にはネットワークの料金、切り替先のサーバの持ち主、切り替先のサーバの性能など各種属性情報を必要とする場合もある。
【００３７】
上記の動作例で示したバックアップサーバへの代表アドレスの引き継ぎの方法以外に、予めサーバ切り替えに備えて代表アドレスＶ１を格納しておき、通常はその代表アドレスを無効化しておき、現用サーバからサーバ代替の切り替え指示パケットを受信したときに、その代表アドレスＶ１を有効化する方法もある。
サーバ１０１は、サーバの代表アドレスＶ１をサーバ１０２に引き継ぐ際、クライアントへのサービスを提供するために必要なデータを送信することもできる。これは、バックアップサーバ情報２１０に記述された属性情報に照らし合わせて知る方法と、毎回バックアップ可能かどうかその属性を現用サーバ１０１がバックアップ候補となるサーバに問い合わせることでも実現可能である。サーバ１０１が代表アドレスを動的に割り当て直すときに、引き継ぐサーバ１０２にクライアントに提供するデータも同時に渡すことにより、事前にサービス情報などを含めた各種データをバックアップ用サーバを用意する必要がなくなり、ディスクの容量を減らせるだけではなく、動的に切り替えられるサーバの候補を増加させることができる。
【００３８】
サーバ１０１は、サーバの代表アドレスＶ１を新たに現用サーバになるサーバ１０２に引き継ぐ際、クライアントへのサービスを提供するために必要なアプリケーションプログラムを送信することも可能である。これは、バックアップサーバ情報２１０に記述された属性情報に照らし合わせて知る方法でも、毎回バックアップ可能かどうかその属性を現用サーバ１０１がバックアップ候補となるサーバに問い合わせる方法でも実現可能である。アプリケーションプログラムも代表アドレスを引き継ぐサーバに同時に渡すことにより、事前にアプリケーションプログラムを含めてバックアップサーバを用意する必要がなくなり、ディスクの容量を減らせるだけではなく、動的に切り替えられるサーバの候補を増加させることができる。この場合、転送するアプリケーションプログラムとしては、実行可能なオブジェクトコード形式のファイルのみならず、ＪＡＶＡ（ジャバ）のアプレットようなコンピュータのＯＳに依存しない実行可能な形式をとることも可能である。
【００３９】
（２）＜実施形態２＞
次に、本発明における別の実施例を、図面を用いて詳細に説明する。
図６は、本発明において、中継装置でのアドレス変換によって動的に代表アドレスの引き継ぎを行う機能を持ったルータの構成例である。
本実施例でも、図７および図８のフローチャートに従った代表アドレスの切り替えの方法が可能である。しかし、本実施例では、前述の実施形態１の場合と異なり、図７は、現用サーバに対してアドレス変換を行っているルータの動作を示すフローチャートであり、図８は、バックアップ用サーバに対してアドレス変換を行っているルータの動作を示すフローチャートである。
【００４０】
図６に示した通信システムの場合、代表アドレスＶ１は、当初、ルータ１０９の回線１０７側に割当てられている。サーバ１０１とクライアント１０５の間の通信は、クライアント１０５とルータ１０９の間ではサーバ１０１の識別に代表アドレスＶ１を用い、ルータ１０９とサーバ１０１の間ではサーバ１０１の識別にサーバの固有アドレスＡ１を用いて通信しているものとする。ルータ１０９の内部は図４のようになっている。そして、アドレス変換処理部４０６がメモリ４０７内のアドレス変換テーブル４０８を参照し、ルータ１０９の回線１０７側の代表アドレスＶ１とサーバ１０１側の固有アドレスＡ１間で変換するようにしている。従って、サーバ１０１とクライアント１０５間の全てのパケットはアドレス部分が変換される。
【００４１】
図６に示した通信システムにおいて、当初、クライアント１０５はサーバ１０１と通信しているものとする。このとき、サーバ１０１が複数のクライアントからアクセスを受けたり、その他のトラフィックで回線１０７の空き帯域が少なくなっているものとする。
【００４２】
ルータ１０９は、トラフィック監視部４０２が回線１０７の全てのトラフィック情報を収集し、統計をとっている（ステップ７０１）。このトラフィック統計情報から、回線１０７のトラフィック量が予め決めておいた閾値を一定時間超えたか否かを判断し（ステップ７０２）、トラフィック量が該閾値を一定時間超えた場合（ステップ７０２：Ｙ）、それを契機にその旨を代替サーバ選択部４０３に通知し、代替サーバ選択部４０３はその通知に基づいて代替サーバを選択する（ステップ７０３）。このように、トラフィック量の測定結果が一定時間閾値を超えたことを契機に、サーバの交代要否を判断するようにしたのは、トラフィックが瞬間的に悪化し閾値を超えた場合であっても平均的にならせばトラフィック量が少ない場合があるためである。
【００４３】
ルータ１０９の代替サーバ選択部３０３は、バックアップサーバ情報３０９と上記のトラフィック統計情報に基づいて、クライアントにサービスを提供できる別のサーバで、クライアントとその別のサーバ間でトラフィックが低く、現用サーバである１０１のトラフィックを処理できるようなサーバが存在するか否かを判断する（ステップ７０４）。バックアップサーバ情報３０９には、事前に設定可能な各種情報を含んでいる。例えば、サーバの固有アドレス、サーバに最寄りのアドレス変換機能を有したルータの固有アドレスを含む各種情報、サーバのＯＳ、持っているアプリケーションプログラム、ネットワークインタフェース、クライアントからそのサーバまでの回線の総帯域幅、その回線の料金、サーバマシンの性能、サーバの所有者などである。代替サーバ選択部４０３では、代替サーバ候補からクライアント１０５に対してどのくらいのレスポンスタイムを保証できるかを問い合わせて必要な情報を取得し、取得した情報などを総合的に判断し、ルータ１０９は、サーバの切り替え先であるバックアップ用サーバ１０２を決定し、サーバ切り替え処理部３０４に対して、切り替え処理実行を依頼する。
【００４４】
サーバ切り替え処理部３０４では、切り替え処理実行の依頼を受けた場合、バックアップ用サーバ１０２の固有アドレスとその最寄りのルータ１１０の固有アドレスをバックアップサーバ情報３０９から取得して、代表アドレスＶ１を引き継ぐ代表アドレス切り替え指示パケットを、前記取得したルータ１１０の固有アドレス宛てに送信する（ステップ７０５）。
【００４５】
ルータ１１０では、この代表アドレス切り替え指示パケットを受信したら（ステップ８０１）、サーバの固有アドレスと代表アドレスの組をアドレス変換テーブル３０８に登録して代表アドレス切り替え処理を行うとともに（ステップ８０２）、代表アドレスＶ１の引き継ぎが完了した旨の通知（代表アドレス引き継ぎ完了パケット）をルータ１０９に返す（ステップ８０３）。
【００４６】
ルータ１０９では、この完了通知を受けて（ステップ７０６）、代表アドレスＶ１を持つサーバがネットワーク１０３から消滅しそのルートが消滅したことを、ネットワークに接続された全てのルータ（図６の例では１１１、１１０）にダイナミックルーティングプロトコルを用いて通知する（ステップ７０７）。
その後、ルータ１１０は、代表アドレスＶ１がネットワーク１０３から消滅されたことの通知を受けたことを契機として、新たにネットワーク１０４の中に代表アドレスＶ１を持つシステムが発生したこととそのルート情報を接続ネットワーク全体のルータ（図６の例では１１１、１０９）に通知する（ステップ８０４）。
このようにして、ルータ１０９と１１０にあるアドレス変換テーブルを動的に変更することによってサーバの移動を実現し、クライアント１０５はサーバ１０１からサーバ１０２への切り替えを設定変更なしに実現することができる。
【００４７】
次に、上記の各サーバとクライアント間のネットワークのトラフィックの状況を検出す手段について補足説明する。
一般に大規模な通信システムでは、サーバとクライアントの間にいくつものネットワークを中継装置で構成した形態をとるものがある。このとき、サーバとクライアント間の経路上にある中継装置では、全てのトラフィックを監視、取得できる環境にある。この中継装置にトラフィックの統計をとる機能を持たせることで、サーバとクライアント間の総トラフィック量、その他のトラフィック量、空き帯域の量などを測定することができる。ここで得たトラフィック情報を上記の現用サーバに渡し、サーバ切り替え判断の情報とすることができる。上記の実施例では、ルータにトラフィック測定手段を実装した例を示しているが、これをトラフィック測定専用の装置、例えばＲＭＯＮ（アールモン、Ｒemote Ｍonitoring Ｍanagement Ｉnformation Ｂase）というＴＣＰ／ＩＰのトラフィック計測用の管理情報収集装置を用いることも可能である。また、このトラフィック情報収集装置からトラフィック情報をネットワーク管理装置１１２に収集し、このネットワーク管理装置で上記のようなサーバ切り替え指示の一連の処理を実行するようにしてもよい。
【００４８】
しかしながら、いくつものネットワークを経由した通信の場合、その経路上の全てのネットワークに関して上記のトラフィック情報を収集しないと正確な判断はできない。このため、経路上の全ての中継装置から上記トラフィック情報をサーバが収集する。また、サーバがいちいち全ての中継装置の持つトラフィック情報を収集しなくても、その代理としてネットワーク管理装置が収集し、サーバに渡してもよい。また、ネットワーク管理装置は、そのトラフィック情報を直接にはサーバに渡さず、自ら情報を解析し、適切なトラフィック分散となるようなサーバの切り替指示をサーバに直接送信するようにしてもよい。
【００４９】
また、ネットワークの負荷状態を知る手段の別の手段として、輻輳関連のメッセージを用いることもできる。輻輳関連のメッセージとしては、例えば、ＴＣＰ／ＩＰのＩＣＭＰのソースクエンチと呼ばれる送信元に対するパケット流量制限指示、ＴＣＰのウィンドウサイズによるパケット送受信量の制限、ＩＣＭＰエラーメッセージでのパケット廃棄通知が送信元に返されることなどがある。これらはネットワークの負荷が高まった場合や輻輳が発生した場合に中継装置や相手システムから送信される。これらの情報により、通信状態の劣化を判断することができる。特に、パケットの廃棄通知メッセージは、パケットが廃棄されるたびに送信されるもので、経路上のルータでその統計をとり、一定回数超えたところでサーバの切り替え契機と判断するなどの手法がとれる。また、この判断をサーバが行うようにしてもよい。
【００５０】
上記のサーバ、ルータにおける代替サーバの選択の判断には、以下のような考慮をすることも有効である。
１つは、各サーバとクライアント間のネットワーク経路上の単位時間当たりの平均トラフィックまたは平均レスポンスタイムをサーバの切り替えの判断基準とすることである。これは、瞬間的なトラフィック特性の悪化ではなく、慢性的な悪化の判断に近づく。また、複数のクライアントが存在するとき、サーバの切り替えによってクライアント全体としての通信速度の平均が改善されるように、いくつかの代表クライアントのレスポンスタイムやトラフィック量を測定して、クライアント全体として平均通信性能が向上することを図ることも重要である。これは、クライアントに対するレスポンスタイムの測定ではなく、回線の終端であるルータでのパケット折り返しによるレスポンスタイムの測定も有効である。また、サーバを切り替えることによって使用する回線が変わるとき、その料金が一定以上高くなる場合にはサーバを切り替えないことや、サーバの所有者が異なり、バックアップすることにより課金される場合は、切り替えの閾値を上げるなどの工夫も有効となる。
【００５１】
また、トラフィックの測定には、通信パケットの各フィールドの属性情報である送信元アドレス、宛先アドレス、送信元アプリケーション識別子、宛先アプリケーション識別子および優先度を含むパラメタ毎にトラフィック統計を取得し、これらの属性毎のデータの流れ（フローと呼ぶ）に予め重要度指標を割当て、サーバの切り替えを行うときに変更先のネットワークのフローの重要度に応じて切り替えを行うかどうかを決定することも、特定の通信を優先さなくてはならない環境で、有効となる。
【００５２】
本実施例では、ルータ１０９と１１０の間でアドレス変換テーブルの変更を行うことで、代表アドレスの動的引き継ぎを実現しているが、ルータ１１１にそれらの機能を持たせることでも実現可能である。その場合は、ルータ１０９と１１０の間で代表アドレス切り替え指示パケットやその代表アドレス引き継ぎ完了通知パケットを送受信する不要であり、全てルータ１１１の内部でそれらに相当する機能が実現することが可能である。また、この場合には、ダイナミックルーティングを用いて経路情報をネットワーク全体に通知する必要もなくなり、切り替え時間も短くできるというメリットがある。
【００５３】
図９は、アドレス変換テーブル４０８の例である。「サーバの固有アドレス」フィールド９０１には各サーバの固有アドレスを登録し、「代表アドレス」フィールド９０２には、そのサーバが代表アドレスの割当てを受けていればその値を、割当てを受けていなければその旨（なし）を登録しておく。図９の例は、固有アドレスＡ１を持つサーバが代表アドレスＶ１を割り当てられ、固有アドレスＡ２〜Ａ５を持つサーバは代表アドレスが割り当てられていない例を示している。
【００５４】
上記実施例は、次の如き効果が得られる。
（１）クライアントとサーバ間のネットワークのトラフィックが上昇し、クライアントが十分な通信速度を得られないとき、空き回線容量に余裕があるネットワークにあるサーバに現用サーバを切り替えることで、ネットワークのトラフィックの分散および平均化を、動的に、しかもクライアントには何の設定変更や制御機能の追加することなしに行うことが可能になる。
（２）ルータにアドレス変換機能を設け、代表アドレスと固有アドレスの対応関係を動的に変更することで、サーバとクライアントにサーバ切り替えの機能や設定の変更をすることなしに、サーバを切り替えることができる。
（３）サーバが障害により通信できなくなった場合にも、ルータのアドレス変換機能により、サーバの切り替えが起こり、クライアントはサービスを継続して受けることができる。
【００５５】
【発明の効果】
本発明によれば、トラフィックの集中する経路を迂回することなしに、またクライアントには何の設定変更や制御機能の追加することなしに、トラフィック発生の源であるサーバを動的にネットワーク上で移動させることができ、ネットワークの使用率の低い部分を有効に使うことが可能になる。
【図面の簡単な説明】
【図１】実施形態１の通信システムの構成例である。
【図２】実施形態１の通信システムにおけるサーバの構成例である。
【図３】実施形態１の通信システムにおけるルータの構成例である。
【図４】実施形態２の通信システムにおけるルータの構成例である。
【図５】実施形態１の通信システムにおけるクライアントの構成例である。
【図６】実施形態２の通信システムにおけるサーバの構成例である。
【図７】実施形態１および２の動作例を説明するためのフローチャートである。
【図８】実施形態１および２の動作例を説明するためのフローチャートである。
【図９】実施形態２の通信システムにおけるアドレス変換テーブルの例である。
【符号の説明】
１０１，１０２：サーバ、１０３，１０４，１０６：ネットワーク、１０５：クライアント、１０７，１０８：回線、１０９，１１０，１１１：ルータ、１１２：ネットワーク管理装置、２０１は、：制御部、２０２：トラフィック監視部、２０３：代替サーバ選択部、２０４：サーバ切り替え処理部、２０５：アプリケーションプログラム処理部、２０６：入出力部、２０７：メモリ、２０８：固有アドレス、２０９：代表アドレス、２１０：バックアップサーバ情報、２１１：外部記憶装置、２１２：内部バス、３０１：制御部、３０２：ルーティング処理部、３０３：メモリ、３０４：ルーティングテーブル、３０５〜３０８：入出力部、３０９：内部バス、４０１：制御部、４０２：トラフィック監視部、４０３：代替サーバ選択部、４０４：サーバ切り替え処理部、４０５：ルーティング処理部、４０６：アドレス変換処理部、４０７：メモリ、４０８：アドレス変換テーブル、４０９：バックアップサーバ情報、４１０は：ルーティングテーブル、４１１：トラフィック統計データ、４１２〜４１５：入出力部、４１６：内部バス、５０１：制御部、５０２：アプリケーションプログラム処理部、５０３：入出力部、５０４：メモリ、５０５：固有アドレス、５０６：代表アドレス、５０７：外部記憶装置、５０８：内部バス、８０１：固有アドレスフィールド、８０２：代表アドレスフィールド。
【図１】
0003786328.tif 000002
【図２】
0003786328.tif 000003
【図３】
0003786328.tif 000004
【図４】
0003786328.tif 000005
【図５】
0003786328.tif 000006
【図６】
0003786328.tif 000007
【図７】
0003786328.tif 000008
【図８】
0003786328.tif 000009
【図９】
0003786328.tif 000010