(57)【要約】【課題】  サーバ側からクライアントに対して通信を開始し、そのクライアントからのレスポンスに対して処理を行うサーバ処理において、サーバの負荷を分散させることを可能とする。【解決手段】  自己の負荷情報を記憶する負荷情報記憶手段、及び自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段を備えた二以上のサーバ20と、全てのクライアントを記憶する全クライアントリスト記憶手段、及びサーバの負荷情報記憶手段から負荷情報を受信して、負荷情報を監視し、当該負荷情報にもとづきサーバ間の負荷が均等になるように全てのクライアントを配分してサーバごとに割り当てるクライアントの指定情報を作成し、この指定情報を対応するサーバに送信する負荷監視手段を備えた負荷分散装置10と、サーバから受信したリクエストに対し、当該サーバにレスポンスを送信する二以上のクライアント30とを有する負荷分散システム。【選択図】  図１
2006209465.tif 000002
【特許請求の範囲】
【請求項１】
サーバ側からクライアントに対して通信を開始し、クライアントからのレスポンスに対して処理を行うサーバの負荷を分散する負荷分散システムであって、
自己の負荷情報を記憶する負荷情報記憶手段、及び負荷分散装置から送信されてきた自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段を備えた二以上の前記サーバと、
前記サーバが通信する全てのクライアントを記憶する全クライアントリスト記憶手段、及び前記サーバにおける前記負荷情報記憶手段から前記負荷情報を受信して、前記負荷情報を監視するとともに、当該負荷情報にもとづいて、前記サーバ間の負荷が均等になるように前記全てのクライアントを配分してサーバごとに割り当てるクライアントの指定情報を作成し、この指定情報を対応するサーバに送信する負荷監視手段を備えた前記負荷分散装置と、
前記サーバから送信されてきたリクエストに対し、当該サーバにレスポンスを送信する二以上の前記クライアントと、を有する
ことを特徴とする負荷分散システム。
【請求項２】
前記負荷分散装置が、
前記サーバから前記クライアントへの前記リクエストを仲介して受信し、当該リクエストの送信元アドレスを前記サーバのアドレスから仮想代表サーバのアドレスに変換するとともに、前記サーバのアドレスと前記クライアントのアドレスの対応付け情報をアドレス変換テーブルに記憶させ、前記クライアントから前記サーバへの前記レスポンスを仲介して受信し、前記アドレス変換テーブルを前記クライアントのアドレスにもとづき検索して前記サーバのアドレスを取得し、前記レスポンスの送信先アドレスを前記仮想代表サーバのアドレスから前記サーバのアドレスに変換するアドレス変換手段、及び前記サーバのアドレスと前記クライアントのアドレスの対応付け情報を記憶する前記アドレス変換テーブルを備えた
ことを特徴とする請求項１記載の負荷分散システム。
【請求項３】
前記負荷分散装置に換えて、前記サーバのうちの一のサーバが、前記負荷分散装置として構成され、当該一のサーバが、前記負荷分散装置における前記全クライアントリスト記憶手段、及び前記負荷監視手段を備えた
ことを特徴とする請求項１又は２記載の負荷分散システム。
【請求項４】
サーバ側からクライアントに対して通信を開始し、クライアントからのレスポンスに対して処理を行うサーバの負荷を分散する負荷分散システムであって、
自己の負荷情報を記憶する負荷情報記憶手段、自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段、自己以外の他のサーバにおける負荷情報記憶手段から負荷情報を受信し、前記他のサーバの負荷情報と前記自己の負荷情報とを比較して、負荷の差が所定以上である場合に、これらのサーバ間の負荷が均等になるように、負荷の高いサーバにおけるクライアントリスト記憶手段から負荷の低いサーバのクライアントリスト記憶手段へ、クライアントの指定情報の一部を移動させる負荷監視手段を備えた二以上の前記サーバと、
前記サーバから送信されてきたリクエストに対して、当該サーバにレスポンスを送信する二以上の前記クライアントと、を有する
ことを特徴とする負荷分散システム。
【請求項５】
サーバ側からクライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して処理を行うサーバの負荷を二以上のサーバに分散する負荷分散装置であって、
前記サーバが通信する全てのクライアント情報を記憶する全クライアントリスト記憶手段と、
前記サーバから負荷情報を受信して、前記負荷情報を監視するとともに、当該負荷情報にもとづいて、前記サーバ間の負荷が均等になるように前記全てのクライアントを配分してサーバごとに割り当てるクライアントの指定情報を作成し、この指定情報を対応するサーバに送信する負荷監視手段と、を備えた
ことを特徴とする負荷分散装置。
【請求項６】
前記サーバから前記クライアントへのリクエストを仲介して受信し、当該リクエストの送信元アドレスを前記サーバのアドレスから仮想代表サーバのアドレスに変換するとともに、前記サーバのアドレスと前記クライアントのアドレスの対応付け情報をアドレス変換テーブルに記憶させ、前記クライアントから前記サーバへの前記レスポンスを仲介して受信し、前記アドレス変換テーブルを前記クライアントのアドレスにもとづき検索して前記サーバのアドレスを取得し、前記レスポンスの送信先アドレスを前記仮想代表サーバのアドレスから前記サーバのアドレスに変換するアドレス変換手段と、
前記サーバのアドレスと前記クライアントのアドレスの対応付け情報を記憶する前記アドレス変換テーブルと、を備えた
ことを特徴とする請求項５記載の負荷分散装置。
【請求項７】
クライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して行う処理の負荷が二以上のサーバ間で分散されるサーバであって、
自己の負荷情報を記憶する負荷情報記憶手段と、
自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段と、を備え、
負荷分散装置により前記負荷情報記憶手段から前記負荷情報を取得されて負荷情報を監視され、当該負荷情報にもとづいて、前記サーバ間の負荷が均等になるように前記クライアントを配分してサーバごとに割り当てて作成された前記クライアントの指定情報を前記負荷分散装置から受信する
ことを特徴とするサーバ。
【請求項８】
クライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して行う処理の負荷が二以上のサーバ間で分散されるサーバであって、
自己の負荷情報を記憶する負荷情報記憶手段と、
自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段と、
自己以外の他のサーバにおける負荷情報記憶手段から負荷情報を受信し、前記他のサーバの負荷情報と前記自己の負荷情報とを比較して、負荷の差が所定以上である場合に、これらのサーバ間の負荷が均等になるように、負荷の高いサーバにおけるクライアントリスト記憶手段から負荷の低いサーバのクライアントリスト記憶手段へ、クライアントの指定情報の一部を移動させる負荷監視手段と、を備えた
ことを特徴とするサーバ。
【請求項９】
サーバ側からクライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して処理を行うサーバの負荷を、負荷分散装置により二以上のサーバに分散させる負荷分散プログラムであって、
前記負荷分散装置を、
前記サーバが通信する全てのクライアント情報を記憶する全クライアントリスト記憶手段、
前記サーバから負荷情報を受信して、前記負荷情報を監視するとともに、当該負荷情報にもとづいて、前記サーバ間の負荷が均等になるように前記全てのクライアントを配分してサーバごとに割り当てるクライアントの指定情報を作成し、この指定情報を対応するサーバに送信する負荷監視手段
として機能させる負荷分散プログラム。
【請求項１０】
前記負荷分散装置を、
前記サーバから前記クライアントへのリクエストを仲介して受信し、当該リクエストの送信元アドレスを前記サーバのアドレスから仮想代表サーバのアドレスに変換するとともに、前記サーバのアドレスと前記クライアントのアドレスの対応付け情報をアドレス変換テーブルに記憶させ、前記クライアントから前記サーバへの前記レスポンスを仲介して受信し、前記アドレス変換テーブルを前記クライアントのアドレスにもとづき検索して前記サーバのアドレスを取得し、前記レスポンスの送信先アドレスを前記仮想代表サーバのアドレスから前記サーバのアドレスに変換するアドレス変換手段、
前記サーバのアドレスと前記クライアントのアドレスの対応付け情報を記憶する前記アドレス変換テーブル
として機能させる請求項９記載の負荷分散プログラム。
【請求項１１】
クライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して行う処理の負荷を、二以上のサーバに分散させる負荷分散プログラムであって、
前記サーバを、
自己の負荷情報を記憶する負荷情報記憶手段、
自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段、として機能させるとともに、
前記サーバに、負荷分散装置により前記負荷情報記憶手段から前記負荷情報を受信させて負荷情報の監視を受けさせ、当該負荷情報にもとづいて、前記サーバ間の負荷が均等になるように前記クライアントを配分してサーバごとに割り当てて作成された前記クライアントの指定情報を前記負荷分散装置から受信させる
ことを特徴とする負荷分散プログラム。
【請求項１２】
クライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して行う処理の負荷を、二以上のサーバに分散させる負荷分散プログラムであって、
前記サーバを、
自己の負荷情報を記憶する負荷情報記憶手段、
自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段、
自己以外の他のサーバにおける負荷情報記憶手段から負荷情報を受信し、前記他のサーバの負荷情報と前記自己の負荷情報とを比較して、負荷の差が所定以上である場合に、これらのサーバ間の負荷が均等になるように、負荷の高いサーバにおけるクライアントリスト記憶手段から負荷の低いサーバのクライアントリスト記憶手段へ、クライアントの指定情報の一部を移動させる負荷監視手段
として機能させる負荷分散プログラム。
【請求項１３】
サーバ側からクライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して処理を行うサーバの負荷を二以上のサーバに分散する負荷分散方法であって、
前記サーバが、自己の負荷情報を負荷情報記憶手段に記憶させ、
負荷分散装置が、前記サーバから前記負荷情報を受信して、前記負荷情報を監視するとともに、当該負荷情報にもとづいて、前記サーバ間の負荷が均等になるように前記クライアントを配分してサーバごとに割り当てるクライアントの指定情報を作成し、この指定情報を対応するサーバに送信し、
前記サーバが、前記負荷分散装置から送信されてきた当該サーバが通信すべき前記クライアントの指定情報をクライアントリスト記憶手段に記憶して、このクライアントリスト記憶手段に記憶された指定情報に係るクライアントにリクエストを送信し、
前記クライアントが、前記サーバから送信されてきたリクエストに対し、当該サーバにレスポンスを送信し、
前記サーバが、前記クライアントから送信されてきたレスポンスに対応する処理を実行して、自己の負荷情報を前記負荷分散装置に記憶させる
ことを特徴とする負荷分散方法。
【請求項１４】
前記負荷分散装置が、前記サーバから前記クライアントへの前記リクエストを仲介して受信し、当該リクエストの送信元アドレスを前記サーバのアドレスから仮想代表サーバのアドレスに変換して、当該リクエストを前記クライアントへ送信するとともに、前記サーバのアドレスと前記クライアントのアドレスの対応付け情報をアドレス変換テーブルに記憶させ、
前記クライアントが、前記サーバから送信されてきたリクエストに対し、当該サーバへのレスポンスを送信し、
前記負荷分散装置が、前記クライアントから前記サーバへの前記レスポンスを仲介して受信し、前記アドレス変換テーブルを前記クライアントのアドレスにもとづき検索して前記サーバのアドレスを取得し、前記レスポンスの送信先アドレスを前記仮想代表サーバのアドレスから前記サーバのアドレスに変換して、当該レスポンスを前記サーバへ送信する
ことを特徴とする請求項１３記載の負荷分散方法。
【請求項１５】
サーバ側からクライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して処理を行うサーバの負荷を二以上のサーバに分散する負荷分散方法であって、
前記サーバが、自己の負荷情報を負荷情報記憶手段に記憶させるとともに、自己が通信すべきクライアントの指定情報をクライアントリスト記憶手段に記憶させ、自己以外の他のサーバにおける負荷情報記憶手段から負荷情報を受信し、前記他のサーバの負荷情報と前記自己の負荷情報とを比較して、負荷の差が所定以上である場合に、これらのサーバ間の負荷が均等になるように、負荷の高いサーバにおけるクライアントリスト記憶手段から負荷の低いサーバのクライアントリスト記憶手段へ、クライアントの指定情報の一部を移動させ、前記クライアントリスト記憶手段に記憶された指定情報に係るクライアントにリクエストを送信し、
前記クライアントが、前記サーバから送信されてきたリクエストに対し、当該サーバにレスポンスを送信し、
前記サーバが、前記クライアントから送信されてきたレスポンスに対応する処理を実行して、自己の負荷情報を前記負荷分散装置に記憶させる
ことを特徴とする負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ側からクライアントに対して通信を開始し、そのクライアントからのレスポンスに対して処理を行うサーバ処理（デバイスのポーリング等）において、負荷分散装置が通信すべきクライアントのリストを管理するとともに、複数のサーバの負荷を監視し、サーバ間で負荷が均等になるように各サーバに通信すべきクライアントを指定することにより、サーバの負荷を分散させる負荷分散システム、負荷分散装置、サーバ、負荷分散プログラム、及び負荷分散方法に関する。
【背景技術】
【０００２】
従来のサーバ負荷分散システムにおいては、一般にクライアント側からサーバに対して通信を開始し、これに対するサーバの処理負荷が、複数のサーバ間で均等になるように負荷分散の処理が行われている。
図７は、このような従来のサーバ負荷分散システムの構成を示しており、例えばクライアント３００−１〜３００−ｎからのＨＴＴＰ（Hyper  Text  Transfer  Protocol）等のリクエストｄ３００１ｃ１〜ｄ３００ｎｃ１をサーバ２００ａ〜２００ｃに振り分けて、その負荷分散を行うことを想定している。
【０００３】
同図において、負荷分散装置１００の負荷監視手段１０１は、各サーバ２００ａ〜２００ｃの負荷情報ｄ２００１ａ〜ｄ２００１ｃを監視しており、クライアント３００−１〜３００−ｎから仮想代表サーバアドレス宛にリクエストｄ３００１ｃ１〜ｄ３００ｎｃ１が来ると、各サーバ２００ａ〜２００ｃの負荷が均等になるようにリクエストが分配されるように、リクエストｄ３００１ｃ１〜ｄ３００ｎｃ１の宛先アドレスをサーバ２００ａ〜２００ｃに変換してリクエストｄ３００１ｃ２〜ｄ３００ｎｃ２とし、それぞれ対応するサーバ２００ａ〜２００ｃに転送している。
また、サーバ２００ａ〜２００ｃから返されるレスポンスｄ３００１ｓ１〜ｄ３００ｎｓ１も、その送信元アドレスがサーバ２００ａ〜２００ｃから仮想代表サーバアドレスに変換されてレスポンスｄ３００１ｓ２〜ｄ３００ｎｓ２とされ、クライアントに返送される。
【０００４】
しかし、この従来のサーバ負荷分散システムは、クライアント側からリクエストが送信された場合、そのリクエストをサーバに振り分けることによって、サーバの負荷分散を実現するものであるため、本発明が前提としているようなサーバ側から通信を開始し、それに対してクライアントから返ってくるレスポンスに対して処理を行うようなサーバ処理に適用することはできなかった。
【０００５】
ここで、従来のサーバ負荷分散システムとしては、例えば特許文献１に記載のサーバ負荷分散システムや特許文献２に記載の広域負荷分散装置等を挙げることができる。
特許文献１に記載のサーバ負荷分散システムによれば、サーバロードバランサの各々がパケットの処理速度のボトルネックとなることを回避し、サーバ・クライアント間での高速通信を行うことが可能とされている。
また、特許文献２に記載の広域負荷分散装置によれば、分散対象となる全てのサーバが高負荷等になった場合に対処できないことや、ネットワークの規模が大きくなるに従い、負荷分散の対象となるサーバが増え、負荷分散装置から離れた別のネットワークに属するサーバの負荷計測の精度が低下し、負荷分散装置自身がボトルネックとなって適切な負荷分散ができなくなるおそれがある等の問題を解消して、異なるネットワークに属するサーバ間で負荷分散と故障隠蔽を適切に行うことが可能とされている。
【０００６】
【特許文献１】特開２００３−１７４４７３号公報
【特許文献２】特開２０００−１３２５２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、これらの従来技術においても、クライアント側からサーバに対して通信を開始し、これに対するサーバの処理負荷を、複数のサーバ間に分配することで負荷分散の処理が行われているため、本発明が課題としているサーバ側からクライアントに対して通信を開始し、そのクライアントからのレスポンスに対して処理を行うサーバ処理におけるサーバの負荷分散を実現可能なものではなかった。
【０００８】
本発明は、上記の事情にかんがみなされたものであり、サーバ側からクライアントに対して通信を開始し、そのクライアントからのレスポンスに対して処理を行うサーバ処理において、負荷分散装置が通信すべきクライアントのリストを管理するとともに、複数のサーバの負荷を監視し、サーバ間で負荷が均等になるように各サーバに通信すべきクライアントを指定することにより、サーバの負荷を分散させることが可能な負荷分散システム、負荷分散装置、サーバ、負荷分散プログラム、及び負荷分散方法の提供を目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の負荷分散システムは、サーバ側からクライアントに対して通信を開始し、クライアントからのレスポンスに対して処理を行うサーバの負荷を分散する負荷分散システムであって、自己の負荷情報を記憶する負荷情報記憶手段、及び負荷分散装置から送信されてきた自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段を備えた二以上のサーバと、サーバが通信する全てのクライアントを記憶する全クライアントリスト記憶手段、及びサーバにおける負荷情報記憶手段から負荷情報を受信して、負荷情報を監視するとともに、当該負荷情報にもとづいて、サーバ間の負荷が均等になるように全てのクライアントを配分してサーバごとに割り当てるクライアントの指定情報を作成し、この指定情報を対応するサーバに送信する負荷監視手段を備えた負荷分散装置と、サーバから送信されてきたリクエストに対し、当該サーバにレスポンスを送信する二以上のクライアントとを有する構成としてある。
【００１０】
負荷分散システムをこのような構成にすれば、サーバ側からクライアントに対して通信を開始して、そのクライアントからのレスポンスによってサーバが処理を行うシステムにおいても、複数のサーバ間で負荷を均等に分散することができる。
また、負荷分散装置は、サーバごとの負荷を参照して、処理すべきクライアントを各サーバに分配するので、サーバより数の多いクライアントごとの負荷を把握する必要なく負荷分散ができ、監視すべき情報量を低減させることも可能となる。
なお、「サーバ間の負荷が均等になるように」とは、最も均等に近づくように、という意味であり、全てのサーバの負荷を厳密に同等のものとすべきことを意味するものではない。
【００１１】
また、本発明の負荷分散システムは、負荷分散装置が、サーバからクライアントへのリクエストを仲介して受信し、当該リクエストの送信元アドレスをサーバのアドレスから仮想代表サーバのアドレスに変換するとともに、サーバのアドレスとクライアントのアドレスの対応付け情報をアドレス変換テーブルに記憶させ、クライアントからサーバへのレスポンスを仲介して受信し、アドレス変換テーブルをクライアントのアドレスにもとづき検索してサーバのアドレスを取得し、レスポンスの送信先アドレスを仮想代表サーバのアドレスからサーバのアドレスに変換するアドレス変換手段、及びサーバのアドレスとクライアントのアドレスの対応付け情報を記憶するアドレス変換テーブルを備えた構成としてある。
【００１２】
負荷分散システムをこのような構成にすれば、クライアントと通信するサーバの割り当てが変わっても、クライアントに届くパケットの送信元アドレスは常に仮想代表サーバのアドレスとなる。
このため、クライアントがある特定のサーバのアドレス（仮想代表サーバアドレス）からの通信にしかレスポンスを許さない場合でも適用することが可能となる。
【００１３】
また、本発明の負荷分散システムは、負荷分散装置に換えて、サーバのうちの一のサーバが、負荷分散装置として構成され、当該一のサーバが、負荷分散装置における全クライアントリスト記憶手段、及び負荷監視手段を備えた構成としてある。
【００１４】
また、本発明の負荷分散システムは、サーバ側からクライアントに対して通信を開始し、クライアントからのレスポンスに対して処理を行うサーバの負荷を分散する負荷分散システムであって、自己の負荷情報を記憶する負荷情報記憶手段、自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段、自己以外の他のサーバにおける負荷情報記憶手段から負荷情報を受信し、他のサーバの負荷情報と自己の負荷情報とを比較して、負荷の差が所定以上である場合に、これらのサーバ間の負荷が均等になるように、負荷の高いサーバにおけるクライアントリスト記憶手段から負荷の低いサーバのクライアントリスト記憶手段へ、クライアントの指定情報の一部を移動させる負荷監視手段を備えた二以上のサーバと、サーバから送信されてきたリクエストに対して、当該サーバにレスポンスを送信する二以上のクライアントとを有する構成としてある。
【００１５】
負荷分散システムをこれらのような構成にすれば、負荷分散装置を別途用意することなく、サーバ側からクライアントに対して通信を開始し、そのクライアントからのレスポンスによってサーバが処理を行うシステムにおいて、複数のサーバ間で負荷を均等に分散することが可能となる。
【００１６】
また、本発明の負荷分散装置は、サーバ側からクライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して処理を行うサーバの負荷を二以上のサーバに分散する負荷分散装置であって、サーバが通信する全てのクライアント情報を記憶する全クライアントリスト記憶手段と、サーバから負荷情報を受信して、負荷情報を監視するとともに、当該負荷情報にもとづいて、サーバ間の負荷が均等になるように全てのクライアントを配分してサーバごとに割り当てるクライアントの指定情報を作成し、この指定情報を対応するサーバに送信する負荷監視手段とを備えた構成としてある。
【００１７】
また、本発明の負荷分散装置は、サーバからクライアントへのリクエストを仲介して受信し、当該リクエストの送信元アドレスをサーバのアドレスから仮想代表サーバのアドレスに変換するとともに、サーバのアドレスとクライアントのアドレスの対応付け情報をアドレス変換テーブルに記憶させ、クライアントからサーバへのレスポンスを仲介して受信し、アドレス変換テーブルをクライアントのアドレスにもとづき検索してサーバのアドレスを取得し、レスポンスの送信先アドレスを仮想代表サーバのアドレスからサーバのアドレスに変換するアドレス変換手段と、サーバのアドレスとクライアントのアドレスの対応付け情報を記憶するアドレス変換テーブルとを備えた構成としてある。
【００１８】
また、本発明のサーバは、クライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して行う処理の負荷が二以上のサーバ間で分散されるサーバであって、自己の負荷情報を記憶する負荷情報記憶手段と、自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段とを備え、負荷分散装置により負荷情報記憶手段から負荷情報を取得されて負荷情報を監視され、当該負荷情報にもとづいて、サーバ間の負荷が均等になるようにクライアントを配分してサーバごとに割り当てて作成されたクライアントの指定情報を負荷分散装置から受信する構成としてある。
【００１９】
また、本発明のサーバは、クライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して行う処理の負荷が二以上のサーバ間で分散されるサーバであって、自己の負荷情報を記憶する負荷情報記憶手段と、自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段と、自己以外の他のサーバにおける負荷情報記憶手段から負荷情報を受信し、他のサーバの負荷情報と自己の負荷情報とを比較して、負荷の差が所定以上である場合に、これらのサーバ間の負荷が均等になるように、負荷の高いサーバにおけるクライアントリスト記憶手段から負荷の低いサーバのクライアントリスト記憶手段へ、クライアントの指定情報の一部を移動させる負荷監視手段とを備えた構成としてある。
【００２０】
また、本発明の負荷分散プログラムは、サーバ側からクライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して処理を行うサーバの負荷を、負荷分散装置により二以上のサーバに分散させる負荷分散プログラムであって、負荷分散装置を、サーバが通信する全てのクライアント情報を記憶する全クライアントリスト記憶手段、サーバから負荷情報を受信して、負荷情報を監視するとともに、当該負荷情報にもとづいて、サーバ間の負荷が均等になるように全てのクライアントを配分してサーバごとに割り当てるクライアントの指定情報を作成し、この指定情報を対応するサーバに送信する負荷監視手段として機能させる構成としてある。
【００２１】
また、本発明の負荷分散プログラムは、負荷分散装置を、サーバからクライアントへのリクエストを仲介して受信し、当該リクエストの送信元アドレスをサーバのアドレスから仮想代表サーバのアドレスに変換するとともに、サーバのアドレスとクライアントのアドレスの対応付け情報をアドレス変換テーブルに記憶させ、クライアントからサーバへのレスポンスを仲介して受信し、アドレス変換テーブルをクライアントのアドレスにもとづき検索してサーバのアドレスを取得し、レスポンスの送信先アドレスを仮想代表サーバのアドレスからサーバのアドレスに変換するアドレス変換手段、サーバのアドレスとクライアントのアドレスの対応付け情報を記憶するアドレス変換テーブルとして機能させる構成としてある。
【００２２】
また、本発明の負荷分散プログラムは、クライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して行う処理の負荷を、二以上のサーバに分散させる負荷分散プログラムであって、サーバを、自己の負荷情報を記憶する負荷情報記憶手段、自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段、として機能させるとともに、サーバに、負荷分散装置により負荷情報記憶手段から負荷情報を受信させて負荷情報の監視を受けさせ、当該負荷情報にもとづいて、サーバ間の負荷が均等になるようにクライアントを配分してサーバごとに割り当てて作成されたクライアントの指定情報を負荷分散装置から受信させる構成としてある。
【００２３】
また、本発明の負荷分散プログラムは、クライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して行う処理の負荷を、二以上のサーバに分散させる負荷分散プログラムであって、サーバを、自己の負荷情報を記憶する負荷情報記憶手段、自己が通信すべきクライアントの指定情報を記憶するクライアントリスト記憶手段、自己以外の他のサーバにおける負荷情報記憶手段から負荷情報を受信し、他のサーバの負荷情報と自己の負荷情報とを比較して、負荷の差が所定以上である場合に、これらのサーバ間の負荷が均等になるように、負荷の高いサーバにおけるクライアントリスト記憶手段から負荷の低いサーバのクライアントリスト記憶手段へ、クライアントの指定情報の一部を移動させる負荷監視手段として機能させる構成としてある。
【００２４】
また、本発明の負荷分散方法は、サーバ側からクライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して処理を行うサーバの負荷を二以上のサーバに分散する負荷分散方法であって、サーバが、自己の負荷情報を負荷情報記憶手段に記憶させ、負荷分散装置が、サーバから負荷情報を受信して、負荷情報を監視するとともに、当該負荷情報にもとづいて、サーバ間の負荷が均等になるようにクライアントを配分してサーバごとに割り当てるクライアントの指定情報を作成し、この指定情報を対応するサーバに送信し、サーバが、負荷分散装置から送信されてきた当該サーバが通信すべきクライアントの指定情報をクライアントリスト記憶手段に記憶して、このクライアントリスト記憶手段に記憶された指定情報に係るクライアントにリクエストを送信し、クライアントが、サーバから送信されてきたリクエストに対し、当該サーバにレスポンスを送信し、サーバが、クライアントから送信されてきたレスポンスに対応する処理を実行して、自己の負荷情報を負荷分散装置に記憶させる方法としてある。
【００２５】
また、本発明の負荷分散方法は、負荷分散装置が、サーバからクライアントへのリクエストを仲介して受信し、当該リクエストの送信元アドレスをサーバのアドレスから仮想代表サーバのアドレスに変換して、当該リクエストをクライアントへ送信するとともに、サーバのアドレスとクライアントのアドレスの対応付け情報をアドレス変換テーブルに記憶させ、クライアントが、サーバから送信されてきたリクエストに対し、当該サーバへのレスポンスを送信し、負荷分散装置が、クライアントからサーバへのレスポンスを仲介して受信し、アドレス変換テーブルをクライアントのアドレスにもとづき検索してサーバのアドレスを取得し、レスポンスの送信先アドレスを仮想代表サーバのアドレスからサーバのアドレスに変換して、当該レスポンスをサーバへ送信する方法としてある。
【００２６】
また、本発明の負荷分散方法は、サーバ側からクライアントに対して通信を開始し、一又は二以上のクライアントからのレスポンスに対して処理を行うサーバの負荷を二以上のサーバに分散する負荷分散方法であって、サーバが、自己の負荷情報を負荷情報記憶手段に記憶させるとともに、自己が通信すべきクライアントの指定情報をクライアントリスト記憶手段に記憶させ、自己以外の他のサーバにおける負荷情報記憶手段から負荷情報を受信し、他のサーバの負荷情報と自己の負荷情報とを比較して、負荷の差が所定以上である場合に、これらのサーバ間の負荷が均等になるように、負荷の高いサーバにおけるクライアントリスト記憶手段から負荷の低いサーバのクライアントリスト記憶手段へ、クライアントの指定情報の一部を移動させ、クライアントリスト記憶手段に記憶された指定情報に係るクライアントにリクエストを送信し、クライアントが、サーバから送信されてきたリクエストに対し、当該サーバにレスポンスを送信し、サーバが、クライアントから送信されてきたレスポンスに対応する処理を実行して、自己の負荷情報を負荷分散装置に記憶させる方法としてある。
【００２７】
負荷分散装置、サーバ、負荷分散プログラムをこれらのような構成とし、負荷分散方法をこのような方法にすれば、サーバ側からクライアントに対して通信を開始して、そのクライアントからのレスポンスによってサーバが処理を行うシステムにおいて、複数のサーバ間で負荷を均等に分散することができる。
また、クライアントがある特定のサーバのアドレスからの通信にしかレスポンスを許さない場合でも、適用することができる。
さらに、このような複数のサーバ間での負荷分散を、負荷分散装置を別途用意することなく実現することも可能となる。
【発明の効果】
【００２８】
本発明によれば、サーバ側からクライアントに対して通信を開始し、そのクライアントからのレスポンスに対して処理を行うサーバ処理において、負荷分散装置が通信すべきクライアントのリストを管理するとともに、複数のサーバの負荷を監視し、サーバ間で負荷が均等になるように各サーバに通信すべきクライアントを指定することにより、サーバの負荷を分散させることが可能となる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明に係る負荷分散システムの好ましい実施形態について、図面を参照しつつ説明する。
なお、以下の実施形態に示す本発明の負荷分散システムは、負荷分散プログラムに制御されたコンピュータにより動作するようになっている。負荷分散装置及びサーバとしてのコンピュータのＣＰＵは、負荷分散プログラムにもとづいてコンピュータの各構成要素に指令を送り、負荷分散装置及びサーバの動作に必要となる所定の処理、例えば、負荷監視処理、クライアントの分配及び指定処理、アドレス変換処理等を行わせる。このように、本発明の負荷分散システムにおける各処理，動作は、プログラムとコンピュータとが協働した具体的手段により実現できるものである。
【００３０】
プログラムは予めＲＯＭ，ＲＡＭ等の記録媒体に格納され、コンピュータに実装された記録媒体から当該コンピュータにプログラムを読み込ませて実行されるが、例えば通信回線を介してコンピュータに読み込ませることもできる。
また、プログラムを格納する記録媒体は、例えば半導体メモリ，磁気ディスク，光ディスク、その他任意のコンピュータで読取り可能な任意の記録手段により構成できる。
【００３１】
［第一実施形態］
まず、本発明の第一実施形態の構成について、図１を参照して説明する。同図は、本実施形態の負荷分散システムの構成を示すブロック図である。
図１に示すように、本実施形態の負荷分散システムは、負荷分散装置１０，サーバ２０（２０ａ，２０ｂ，２０ｃ），クライアント３０（３０−１，３０−２，３０−３，・・・，３０−ｎ）を有している。
【００３２】
負荷分散装置１０は、二以上のサーバ２０の負荷を分散させる情報処理装置であり、全クライアントリスト記憶手段１１、及び負荷監視手段１２を備えている。
全クライアントリスト記憶手段１１は、サーバ２０が通信する全てのクライアントを記憶する。すなわち、図１の例では、全クライアントリスト記憶手段１１には、クライアント３０−１〜クライアント３０−ｎの全てのクライアントの識別情報が記憶されている。
【００３３】
負荷監視手段１２は、サーバ２０における負荷情報記憶手段２１（２１ａ，２１ｂ，２１ｃ）から負荷情報を受信することで、負荷情報を監視する。この監視処理については、従来公知のものとすることができ、例えば定期的に負荷情報を受信するものなどとすることができる。
また、負荷監視手段１２は、受信した各サーバ２０からの負荷情報にもとづいて、これらの負荷が均等になるように、各サーバ２０が通信すべきクライアントの指定情報を作成する。すなわち、負荷の高いサーバについては、その処理すべきクライアントの数を減らし、負荷の低いサーバについては、その処理すべきクライアントの数を増やすことなどにより、各サーバ間の負荷が均等に近づくようにクライアントの指定情報を作成する。
【００３４】
この負荷の均等化処理については、具体的には種々の方法とすることができるが、例えば、サーバ２０ａの負荷が７０、サーバ２０ｂの負荷が３０、サーバ２０ｃの負荷が５０であった場合、負荷監視手段１２は、負荷情報の平均値である５０より負荷が高いサーバ２０ａのクライアント数を減らし、負荷情報の平均値である５０より負荷が低いサーバ２０ｂのクライアント数を増加することで行うようにすることができる。
したがって、この場合、負荷監視手段１２は、サーバ２０ａが通信を行っているクライアント３０−１又はクライアント３０−２のいずれかを、サーバ２０ｂに通信させるように、クライアントの指定情報を作成する。
【００３５】
このとき、サーバ２０ａが通信しているクライアント３０−１及びクライアント３０−２のうちのいずれをサーバ２０ｂに通信させるものとして選択するかについては、例えばランダムに行うようにすることができる。
そして、クライアント３０−２が、サーバ２０ｂに通信させるものとして選択された場合には、負荷監視手段１２は、サーバ２０ａへのクライアントの指定情報としてクライアント３０−１の指定情報を、サーバ２０ｂへのクライアントの指定情報としてクライアント３０−２及びクライアント３０−３の指定情報を、サーバ２０ｃへのクライアントの指定情報としてクライアント３０−ｎの指定情報を作成して、それぞれ対応するサーバ２０に送信する。
【００３６】
また、サーバ２０における負荷情報記憶手段２１に、クライアント３０ごとの負荷情報が記憶されている場合であって、例えば、サーバ２０ａの負荷情報としてクライアント３０−１が２０、クライアント３０−２が５０、サーバ２０ｂの負荷情報としてクライアント３０−３が３０、サーバ２０ｃの負荷情報としてクライアント３０−ｎが５０であった場合、負荷監視手段１２は、上記のサーバ２０ａが通信しているクライアント３０−１及びクライアント３０−２のうちのいずれをサーバ２０ｂに通信させるものとするかの選択にあたり、負荷の低いサーバ２０ｂの負荷情報と負荷情報の平均値と差により近い負荷をもつクライアントとして適切なクライアント３０−１を選択することが可能となる。
【００３７】
その他、負荷監視手段１２により、各サーバ２０の負荷が均等になるように、各サーバ２０が通信すべきクライアントを配分できれば、その方法はどのような方法であってもかまわない。
【００３８】
サーバ２０は、クライアント３０に対してリクエストを送信することで、通信を開始するとともに、クライアント３０からのレスポンスにもとづいて、このレスポンスの内容に対応する処理を実行する。
各サーバ２０は、図１に示すように、それぞれ負荷情報記憶手段２１（２１ａ，２１ｂ，２１ｃ）、及びクライアントリスト記憶手段２２（２２ａ，２２ｂ，２２ｃ）を備えている。
【００３９】
負荷情報記憶手段２１は、サーバ２０の負荷を定量的な情報として記憶するものであり、例えばサーバ２０におけるＣＰＵ負荷率や全メモリに対するメモリ使用割合等を負荷情報として用いることができる。
クライアントリスト記憶手段２２は、当該サーバ２０が通信すべき相手先のクライアントを記憶する。本実施形態においては、この通信相手先のクライアントは、負荷分散装置１０からクライアント指定情報ｄ２０２としてサーバ２０に送信され、クライアントリスト記憶手段２２に記憶される。
【００４０】
クライアント３０は、サーバ２０から送信されてきたリクエストに対して、レスポンスをサーバ２０に対して返却する情報処理装置である。このレスポンスの内容は、クライアント３０がサーバにより処理されるべきデータを保有しているかどうかなどによりクライアントごとに異なる場合があることを想定している。したがって、このようなサーバ２０とクライアント３０との通信が行われると、サーバ２０がどのクライアント３０と通信を行っているかにより、サーバ２０間で負荷に偏りが生じ始めることになる。
【００４１】
次に、本実施形態の負荷分散システムにおける処理手順について、図１及び図２を参照して説明する。図２は、本実施形態の負荷分散システムにおける処理手順を示す動作手順図である。
【００４２】
まず、負荷分散装置１０は、負荷監視手段１２によって、各サーバ２０の負荷情報記憶手段２１を監視し、その負荷情報ｄ２０１（ｄ２０１ａ，ｄ２０１ｂ，ｄ２０１ｃ）に基づいて、各サーバ２０の負荷が均等になるように、サーバが通信・処理すべき全てのクライアントのリストを全クライアントリスト記憶手段１１から入力して、各サーバ２０が通信・処理すべきクライアントを分配して指定する（ステップ１０）。このとき負荷監視手段１２は、クライアント指定情報ｄ２０２（ｄ２０２ａ，ｄ２０２ｂ，ｄ２０２ｃ）を作成して、それぞれ対応するサーバ２０に送信する。
なお、初期状態では各サーバ２０の負荷は均等であるため、各サーバ２０が通信・処理すべきクライアントは均等に指定される。
【００４３】
これに対して、サーバ２０は、受信したクライアント指定情報ｄ２０２を、それぞれクライアントリスト記憶手段２２に記憶させる（ステップ１１）。
そして、このクライアントリスト記憶手段２２に記憶されたクライアント指定情報ｄ２０２にもとづいて、クライアントに対してリクエストを送信することにより通信を開始する（ステップ１２）。
【００４４】
クライアント３０は、受信したリクエストに対して、レスポンスをサーバ２０に返信することにより応答する（ステップ１３）。
サーバ２０は、受信したレスポンスに応じた処理を実行する（ステップ１４）。ステップ１２〜ステップ１４の処理は、繰り返し実行することもできる。
【００４５】
これらの動作により、各サーバ２０における処理内容（クライアントが、サーバが処理すべきデータを持っているか、いないかなど）によって、各サーバ２０間で負荷に偏りが生じ始める。
これに対して、負荷分散装置１０における負荷監視手段１２は、定期的に各サーバ２０の負荷情報ｄ２０１を監視し、サーバ２０の負荷が均等になるように、各サーバ２０が通信・処理すべきクライアントの指定を変更する（ステップ１５）。
すなわち、上述したように、負荷の高いサーバが処理すべきクライアントの数は減らし、負荷の低いサーバが処理すべきクライアントの数は増やすなどを行って、新たなクライアント指定情報ｄ２０２を作成し、サーバ２０に送信する。
【００４６】
これに対して、サーバ２０は、ステップ１１〜ステップ１４と同様の動作を実行し（ステップ１６〜ステップ１９）、再び負荷分散装置１０によるサーバ２０の負荷情報ｄ２０１の監視、及びクライアントの指定変更が行われ（ステップ２０）、サーバ２０においてクライアント指定情報ｄ２０２が記憶される（ステップ２１）。そして、以降ステップ１７〜ステップ２１までの動作が繰り返し実行されることとなる。
【００４７】
以上説明したように、本実施形態の負荷分散システムによれば、サーバ側からクライアントに対して通信を開始して、そのクライアントからのレスポンスによってサーバが処理を行うシステムにおいても、複数のサーバ間で負荷を均等に分散することができる。
【００４８】
［第二実施形態］
次に、本発明の第二実施形態について、図３を参照して説明する。同図は、本実施形態の負荷分散システムの構成を示すブロック図である。
本実施形態は、クライアント３０が特定のサーバからの通信にしかレスポンスを許可しないように制限されていることを想定しており、負荷分散装置１０がサーバ２０及びクライアント３０の通信を仲介受信して、そのアドレスを変換する点で第一実施形態と異なる。その他の点については、第一実施形態と同様である。
【００４９】
図３に示すように、本実施形態の負荷分散装置１０は、第一実施形態における構成に加え、アドレス変換手段１３、及びアドレス変換テーブル１４を備えている。
本実施形態においては、クライアント３０は、ある特定のサーバのアドレス（仮想代表サーバアドレス）からの通信にしかレスポンスを許さないことを想定しいている。
このため、アドレス変換手段１３は、サーバ２０から送信されたリクエストのパケットを一旦仲介して受信し、このパケットの送信元アドレスをサーバ２０のアドレスから仮想代表サーバアドレスに変換して、クライアント３０に送信する。
【００５０】
また、このとき、クライアント３０からのレスポンスのパケットの送信先アドレス（宛先アドレス）を本来の通信相手のサーバ２０のアドレスの戻すために、どのサーバ２０からのパケットがどのクライアント３０宛だったかをアドレス変換テーブル１４に記憶させる。
すなわち、アドレス変換手段１３は、受信したパケットの送信元のサーバ２０のアドレスと、その送信先であるクライアント３０のアドレスとの対応付け情報をアドレス変換テーブル１４に記憶させる。
【００５１】
これによって、アドレス変換手段１３は、クライアント３０から送信されたレスポンスのパケットを仲介して受信すると、このパケットの送信元のクライアント３０のアドレスをキーとしてアドレス変換テーブル１４を検索して、対応するサーバ２０のアドレスを取得する。そして、レスポンスのパケットの送信先の仮想代表サーバアドレスを、取得したサーバ２０のアドレスに変換して、当該サーバ２０に送信する。
【００５２】
勿論、このときパケットごとにクライアント３０のアドレスとサーバ２０のアドレスとの対応付け情報をアドレス変換テーブル１４に記憶させ、パケットごとに当該アドレス変換テーブル１４からサーバ２０のアドレスを取得可能とすることもできる。
【００５３】
アドレス変換テーブル１４は、クライアント３０のアドレスごとにサーバ２０のアドレスを記憶する記憶手段である。また、このクライアント３０のアドレスとサーバ２０のアドレスの対応付け情報をパケットごとに保有させるようにすることも可能である。
【００５４】
次に、本実施形態の負荷分散システムにおける処理手順について、図３及び図４を参照して説明する。図４は、本実施形態の負荷分散システムにおける処理手順を示す動作手順図である。
【００５５】
まず、負荷分散装置１０が負荷監視手段１２により各サーバ２０の負荷を監視し、サーバ２０ごとの負荷が均等になるようにクライアント３０を分配して指定する動作から、サーバ２０がクライアント３０に対して通知を開始するまでの動作（ステップ３０〜ステップ３２）については、第一実施形態における動作（ステップ１０〜ステップ１２）と同様である。
【００５６】
次に、本実施形態においては、サーバ２０からクライアント３０に対して送信されたリクエストのパケットは、直接クライアント３０に送信されるのではなく、一旦負荷分散装置１０によって仲介して受信される。そして、負荷分散装置１０におけるアドレス変換手段１３によりリクエストのパケットの送信元アドレスが、サーバ２０のアドレスから仮想代表サーバアドレスに変換され（ステップ３３）、クライアント３０に対して送信される（ステップ３４）。
【００５７】
これに対して、クライアント３０の応答によりレスポンスのパケットがサーバ２０に対して送信されると（ステップ３５）、負荷分散装置１０におけるアドレス変換手段１３は、これを仲介して受信する。
そして、アドレス変換手段１３は、レスポンスのパケットの送信元のクライアント３０のアドレスにもとづきアドレス変換テーブル１４を検索して、対応するサーバ２０のアドレスを取得し、レスポンスのパケットの送信先の仮想代表サーバアドレスを、取得したサーバ２０のアドレスに変換して（ステップ３６）、このレスポンスのパケットを当該サーバ２０に送信する（ステップ３７）。
【００５８】
サーバ２０は、受信したレスポンスに応じた処理を実行する（ステップ３８）。これらのステップ３２〜ステップ３８の処理は、繰り返し実行することもできる。
次に、負荷分散装置１０により各サーバ２０の負荷が監視されて、クライアント３０の指定変更が行われ（ステップ３９）、サーバ２０においてクライアント指定情報ｄ２０２が記憶されるが（ステップ４０）、これについては第一実施形態における動作（ステップ１５，１６）と同様である。
そして、以降ステップ３２〜ステップ４０までの動作が繰り返し実行されることとなる。
【００５９】
以上説明したように、本実施形態の負荷分散システムによれば、クライアントと通信するサーバの割り当てが変わっても、クライアントに届くパケットの送信元アドレスは常に仮想代表サーバのアドレスとなる。
このため、クライアントがある特定のサーバのアドレス（仮想代表サーバアドレス）からの通信にしかレスポンスを許さない場合でも適用することが可能となる。
【００６０】
［第三実施形態］
次に、本発明の第三実施形態について、図５を参照して説明する。同図は、本実施形態の負荷分散システムの構成を示すブロック図である。
本実施形態は、第一実施形態における負荷分散装置１０の機能を、複数のサーバ２０のうちの一つのサーバ２０ａに実装した点で第一実施形態と異なる。その他の点については、第一実施形態と同様である。
【００６１】
本実施形態におけるサーバ２０ａは、図５に示すように、第一実施形態における構成に加え、全クライアントリスト記憶手段２３ａ、及び負荷監視手段２４ａを備えている。
これによって、サーバ２０ａは、第一実施形態における動作に加え、負荷分散装置としても機能するようになっている。
【００６２】
すなわち、サーバ２０ａにおける負荷監視手段２４ａは、サーバ２０ａにおける負荷情報記憶手段２１ａから負荷情報ｄ２０１（ｄ２０１ａ）を入力して監視するとともに、サーバ２０ｂ，２０ｃにおけるそれぞれの負荷情報記憶手段２１ｂ，２１ｃから負荷情報ｄ２０１（ｄ２０１ｂ，ｄ２０１ｃ）を受信して監視する。
そして、負荷監視手段２４ａは、第一実施形態の負荷分散装置１０における場合と同様に、各サーバ２０ａの負荷が均等になるように、クライアント３０を分配して指定し、サーバ２０ａにおけるクライアントリスト記憶手段２２ａに、作成したクライアント指定情報ｄ２０２ａを記憶させるとともに、サーバ２０ｂ，２０ｃにそれぞれクライアント指定情報ｄ２０２ｂ，ｄ２０２ｃを送信して、それぞれのサーバ２０におけるクライアントリスト記憶手段２２ｂ，２２ｃに記憶させる。
その他、サーバ２０側からクライアント３０に対してリクエストが送信され、クライアント３０からサーバ２０にレスポンスが返却されて、サーバ２０において対応する処理が実行される点については、第一実施形態における場合と同様である。
【００６３】
以上説明したように、本実施形態の負荷分散システムによれば、負荷分散装置を別途用意することなく、サーバ側からクライアントに対して通信を開始し、そのクライアントからのレスポンスによってサーバが処理を行うシステムにおいて、複数のサーバ間で負荷を均等に分散することが可能となる。
【００６４】
［第四実施形態］
次に、本発明の第四実施形態について、図６を参照して説明する。同図は、本実施形態の負荷分散システムの構成を示すブロック図である。
本実施形態は、第一実施形態における負荷分散装置１０の機能を分散させて、各サーバ２０に保有させた点で第一実施形態と異なる。その他の点については、第一実施形態と同様である。
【００６５】
図６に示すように、本実施形態における各サーバ２０（２０ａ，２０ｂ，２０ｃ）は、第一実施形態における構成に加え、それぞれ負荷監視手段２５（２５ａ，２５ｂ，２５ｃ）を備えている。
これによって、各サーバ２０は、第一実施形態における動作に加え、負荷分散装置としても機能するようになっている。
【００６６】
すなわち、負荷監視手段２５により、各サーバ２０は、お互いにお互いの負荷情報記憶手段２１に記憶された負荷情報を交換し合い(ｄ１ａｂ，ｄ１ｂｃ，ｄ１ｃａ)、負荷の差が一定以上ある２つのサーバがあると、負荷の高いサーバから負荷の低いサーバへ処理すべきクライアントの一部を移動させる(ｄ２ａｂ，ｄ２ｂｃ，ｄ２ｃａ)。
なお、この場合、第一実施形態の負荷分散装置１０における全クライアントリスト記憶手段１１におけるクライアントリストのようなマスターとなるクライアントのリスト情報が存在しないため、初期状態において、予め手動で各サーバ２０におけるクライアントリスト記憶手段２２にクライアントを適当に分配して設定しておく。
【００６７】
以上説明したように、本実施形態の負荷分散システムによっても、負荷分散装置を別途用意することなく、サーバ側からクライアントに対して通信を開始し、そのクライアントからのレスポンスによってサーバが処理を行うシステムにおいて、複数のサーバ間で負荷を均等に分散することが可能となる。
【００６８】
本発明は、以上の実施形態に限定されるものではなく、本発明の範囲内において、種々の変更実施が可能であることは言うまでもない。
例えば、第二実施形態と第三実施形態とを組み合わせて、図５に示すサーバ２０ａを、アドレス変換手段１３及びアドレス変換テーブル１４を備える構成として、クライアントが特定のサーバとの通信のみに対してレスポンスを許可する構成としている場合にも適用可能とするなど、上記各実施形態を種々に組み合わせたものとして構成することが可能である。
また、例えば、負荷分散装置、サーバ、クライアントのそれぞれの間をインターネットなどの通信回線により接続した構成とするなど適宜変更することが可能である。
【産業上の利用可能性】
【００６９】
本発明は、サーバ側からクライアントに対して通信を開始し、そのクライアントからのレスポンスに対してサーバが処理（例えば、デバイスのポーリング等）を行うシステムに好適に利用することが可能である。
【図面の簡単な説明】
【００７０】
【図１】本発明の第一実施形態の負荷分散システムの構成を示すブロック図である。
【図２】本発明の第一実施形態の負荷分散システムにおける処理手順を示す動作手順図である。
【図３】本発明の第二実施形態の負荷分散システムの構成を示すブロック図である。
【図４】本発明の第二実施形態の負荷分散システムにおける処理手順を示す動作手順図である。
【図５】本発明の第三実施形態の負荷分散システムの構成を示すブロック図である。
【図６】本発明の第四実施形態の負荷分散システムの構成を示すブロック図である。
【図７】従来の負荷分散システムの構成を示すブロック図である。
【符号の説明】
【００７１】
10  負荷分散装置
11  全クライアントリスト記憶手段
12  負荷監視手段
13  アドレス変換手段
14  アドレス変換テーブル
20（20a，20b，20c）  サーバ
21（21a，21b，21c）  負荷情報記憶手段
22（22a，22b，22c）  クライアントリスト記憶手段
23ａ  全クライアントリスト記憶手段
24ａ  負荷監視手段
25（25a，25b，25c）  負荷監視手段
30（30-1〜30-n）  クライアント
d201（d201a，d201b，d201c）  負荷情報
d202（d202a，d202b，d202c）  クライアント指定情報
d301s〜d303s  サーバからクライアントへのリクエスト情報
d301s1〜d30ns1  サーバからクライアントへのリクエスト情報（変換前）
d301s2〜d30ns2  サーバからクライアントへのリクエスト情報（変換後）
d301c〜d30nc  クライアントからサーバへのレスポンス情報
d301c1〜d30nc1  クライアントからサーバへのレスポンス情報（変換前）
d301c2〜d30nc2  クライアントからサーバへのレスポンス情報（変換後）
100  負荷分散装置
101  負荷監視手段
102  アドレス変換手段
103  アドレス変換テーブル
200（200a，200b，200c）  サーバ
201（201a，201b，201c）  負荷情報記憶手段
300（300-1〜300-n）  クライアント
【図１】
2006209465.tif 000003
【図２】
2006209465.tif 000004
【図３】
2006209465.tif 000005
【図４】
2006209465.tif 000006
【図５】
2006209465.tif 000007
【図６】
2006209465.tif 000008
【図７】
2006209465.tif 000009