(57)【特許請求の範囲】
【請求項１】
複数のサーバ装置を具備する負荷分散システムにおいて、
前記各サーバ装置は、
次に接続するサーバ装置を示す接続先情報と、自己に接続されているクライアント装置数を示すカウンタ情報と、自己に接続されるクライアント装置数の上限数を示す接続上限数情報とを格納する手段と、
クライアント装置から接続要求が行なわれた際に、前記接続要求に接続上限数情報が含まれているか否かを判断する手段と、
前記接続要求に接続上限数情報が含まれていると判断された場合に、前記格納された接続上限数情報を前記接続要求に含まれる接続上限数情報に書き換える手段と、
前記カウンタ情報によって示される自己に接続されているクライアント装置数が前記接続上限数情報によって示される自己に接続されるクライアント装置数の上限数よりも小さいか否かを判断する手段と、
前記カウンタ情報によって示される自己に接続されているクライアント装置数が前記接続上限数情報によって示される自己に接続されるクライアント装置数の上限数よりも小さいと判断された場合に、前記クライアント装置からの接続要求を受け入れる手段と、
小さくないと判断された場合に、前記クライアント装置からの接続要求を拒否し、前記格納された接続上限数情報及び前記接続先情報を前記クライアント装置に返信する手段とを具備し、
前記各サーバ装置の接続先情報は、次に接続するサーバ装置が互いに異なるように定義され、
前記クライアント装置は、
前記接続要求が受け入れられない場合に、前記接続要求が出力されたサーバ装置から前記接続先情報を受信する手段と、
前記受信した接続先情報によって示されるサーバ装置に、前記受信した接続上限数情報を含む接続要求を出力する手段とを具備する
ことを特徴とする負荷分散システム。
【請求項２】
前記クライアント装置は、
ランダムに、あるいは所定の規則にしたがってサーバ装置を選択して接続要求を行なって、前記複数のサーバ装置の全てのサーバ装置に接続要求が受け入れられないことを検出する手段と、
前記受け入れられないことが検出された場合に、前記接続上限数情報によって示されるサーバ装置に接続されるクライアント装置数の上限数を増加させるように変更し、この変更された接続上限数情報を含む接続要求を前記受信した接続先情報によって示されるサーバ装置に出力する手段とをさらに具備する請求項１記載の負荷分散システム。
【請求項３】
複数のサーバ装置を具備する負荷分散システムにおける負荷分散方法において、
前記各サーバ装置は、
次に接続するサーバ装置を示す接続先情報と、自己に接続されているクライアント装置数を示すカウンタ情報と、自己に接続されるクライアント装置数の上限数を示す接続上限数情報とを格納する手段を具備し、
クライアント装置から接続要求が行なわれた際に、前記接続要求に接続上限数情報が含まれているか否かを判断し、
前記接続要求に接続上限数情報が含まれていると判断された場合に、前記格納された接続上限数情報を前記接続要求に含まれる接続上限数情報に書き換え、
前記カウンタ情報によって示される自己に接続されているクライアント装置数が前記接続上限数情報によって示される自己に接続されるクライアント装置数の上限数よりも小さいか否かを判断し、
前記カウンタ情報によって示される自己に接続されているクライアント装置数が前記接続上限数情報によって示される自己に接続されるクライアント装置数の上限数よりも小さいと判断された場合に、前記クライアント装置からの接続要求を受け入れ、
小さくないと判断された場合に、前記クライアント装置からの接続要求を拒否し、前記格納された接続上限数情報及び前記接続先情報を前記クライアント装置に返信し、
前記各サーバ装置の接続先情報は、次に接続するサーバ装置が互いに異なるように定義され、
前記クライアント装置は、
前記接続要求が受け入れられない場合に、前記接続要求が出力されたサーバ装置から前記サーバ装置に接続されるクライアント装置数の上限数を示す接続上限数情報及び次に接続するサーバ装置を示す接続先情報を受信し、
前記受信した接続先情報によって示されるサーバ装置に、前記受信した接続上限数情報を含む接続要求を出力する
ことを特徴とする負荷分散方法。
【請求項４】
前記クライアント装置は、
ランダムに、あるいは所定の規則にしたがってサーバ装置を選択して接続要求を行なって、前記複数のサーバ装置の全てのサーバ装置に接続要求が受け入れられないことを検出し、
前記受け入れられないことが検出された場合に、前記接続上限数情報によって示されるサーバ装置に接続されるクライアント装置数の上限数を増加させるように変更し、この変更された接続上限数情報を含む接続要求を前記受信した接続先情報によって示されるサーバ装置に出力することをさらに具備する請求項３記載の負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散システムに関し、特に、サーバ装置に係る負荷を低減するための負荷分散システムに関する。
【背景技術】
【０００２】
従来より、クライアント装置から複数のサーバ装置にかかる負荷を低減するために、負荷分散装置により負荷分散を行なうことが行なわれている。このような負荷分散装置では、既にあるサーバ装置に割り当てられているクライアント装置を他のサーバ装置に割り当て直すことにより、サーバ装置に係る負荷を低減している。
【０００３】
【特許文献１】特開２００４−２４６８３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のサーバ装置に係る負荷を分散するために負荷分散装置を設ける構成では、分散すべき負荷が高くなった場合に、サーバ装置のみならず、負荷分散装置それ自体にも負荷がかかってしまうことから、負荷分散処理を行なう際の性能については、負荷分散装置自体がボトルネックになってしまうという問題があった。
【０００５】
本発明は、上記実情に鑑みてなされたものであり、負荷分散システムを構成するサーバ装置に負荷分散処理機能を設けることにより、負荷分散装置を別個に設けることなく負荷分散処理を行なうことができる負荷分散システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の観点の発明によれば、複数のサーバ装置を具備する負荷分散システムにおいて、前記各サーバ装置は、次に接続するサーバ装置を示す接続先情報と、自己に接続されているクライアント装置数を示すカウンタ情報と、自己に接続されるクライアント装置数の上限数を示す接続上限数情報とを格納する手段と、クライアント装置から接続要求が行なわれた際に、前記接続要求に接続上限数情報が含まれているか否かを判断する手段と、前記接続要求に接続上限数情報が含まれていると判断された場合に、前記格納された接続上限数情報を前記接続要求に含まれる接続上限数情報に書き換える手段と、前記カウンタ情報によって示される自己に接続されているクライアント装置数が前記接続上限数情報によって示される自己に接続されるクライアント装置数の上限数よりも小さいか否かを判断する手段と、前記カウンタ情報によって示される自己に接続されているクライアント装置数が前記接続上限数情報によって示される自己に接続されるクライアント装置数の上限数よりも小さいと判断された場合に、前記クライアント装置からの接続要求を受け入れる手段と、小さくないと判断された場合に、前記クライアント装置からの接続要求を拒否し、前記格納された接続上限数情報及び前記接続先情報を前記クライアント装置に返信する手段とを具備し、前記各サーバ装置の接続先情報は、次に接続するサーバ装置が互いに異なるように定義され、前記クライアント装置は、前記接続要求が受け入れられない場合に、前記接続要求が出力されたサーバ装置から前記接続先情報を受信する手段と、前記受信した接続先情報によって示されるサーバ装置に、前記受信した接続上限数情報を含む接続要求を出力する手段とを具備することを特徴とする負荷分散システム、である。
【０００７】
本発明の第２の観点の発明によれば、第１の観点の発明において、前記クライアント装置は、ランダムに、あるいは所定の規則にしたがってサーバ装置を選択して接続要求を行なって、前記複数のサーバ装置の全てのサーバ装置に接続要求が受け入れられないことを検出する手段と、前記受け入れられないことが検出された場合に、前記接続上限数情報によって示されるサーバ装置に接続されるクライアント装置数の上限数を増加させるように変更し、この変更された接続上限数情報を含む接続要求を前記受信した接続先情報によって示されるサーバ装置に出力する手段とをさらに具備する負荷分散システム、である。
【０００８】
本発明の第３の観点の発明によれば、複数のサーバ装置を具備する負荷分散システムにおける負荷分散方法において、前記各サーバ装置は、次に接続するサーバ装置を示す接続先情報と、自己に接続されているクライアント装置数を示すカウンタ情報と、自己に接続されるクライアント装置数の上限数を示す接続上限数情報とを格納する手段を具備し、クライアント装置から接続要求が行なわれた際に、前記接続要求に接続上限数情報が含まれているか否かを判断し、前記接続要求に接続上限数情報が含まれていると判断された場合に、前記格納された接続上限数情報を前記接続要求に含まれる接続上限数情報に書き換え、前記カウンタ情報によって示される自己に接続されているクライアント装置数が前記接続上限数情報によって示される自己に接続されるクライアント装置数の上限数よりも小さいか否かを判断し、前記カウンタ情報によって示される自己に接続されているクライアント装置数が前記接続上限数情報によって示される自己に接続されるクライアント装置数の上限数よりも小さいと判断された場合に、前記クライアント装置からの接続要求を受け入れ、小さくないと判断された場合に、前記クライアント装置からの接続要求を拒否し、前記格納された接続上限数情報及び前記接続先情報を前記クライアント装置に返信し、前記各サーバ装置の接続先情報は、次に接続するサーバ装置が互いに異なるように定義され、前記クライアント装置は、前記接続要求が受け入れられない場合に、前記接続要求が出力されたサーバ装置から前記サーバ装置に接続されるクライアント装置数の上限数を示す接続上限数情報及び次に接続するサーバ装置を示す接続先情報を受信し、前記受信した接続先情報によって示されるサーバ装置に、前記受信した接続上限数情報を含む接続要求を出力することを特徴とする負荷分散方法、である。
【０００９】
本発明の第４の観点の発明によれば、第３の観点の発明において、前記クライアント装置は、ランダムに、あるいは所定の規則にしたがってサーバ装置を選択して接続要求を行なって、前記複数のサーバ装置の全てのサーバ装置に接続要求が受け入れられないことを検出し、前記受け入れられないことが検出された場合に、前記接続上限数情報によって示されるサーバ装置に接続されるクライアント装置数の上限数を増加させるように変更し、この変更された接続上限数情報を含む接続要求を前記受信した接続先情報によって示されるサーバ装置に出力することをさらに具備する負荷分散方法、である。
【発明の効果】
【００１０】
本発明によれば、負荷分散システムを構成するサーバ装置に負荷分散処理機能を設けることにより、負荷分散装置を別個に設けることなく負荷分散処理を行なうことができる負荷分散システムを提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して、本発明の実施の形態に係る負荷分散システムについて説明する。図１は、本発明の実施の形態に係る負荷分散システムを構成する複数のサーバ装置の接続関係を示す図である。
同図に示すように、本実施の形態の負荷分散システムでは、複数のサーバ装置１−１〜１−３がリング状に接続されている。各サーバ装置１−１〜１−３は、自己に接続されているクライアント装置数を示すカウンタ情報、自己に接続されるクライアント装置数の上限数を示す接続上限数情報及び次に接続するサーバ装置を示す接続先情報を具備している。
【００１２】
各サーバ装置の接続先情報は、次に接続するサーバ装置が各サーバ装置１−１〜１−３全体でリング状となるように定義されている。具体的には、接続先情報は、次に接続するサーバ装置に接続するために必要とされるネットワークアドレスなどである。
図１においては、サーバ装置１−１は接続先情報としてサーバ装置１−２のネットワークアドレスなどを有し、サーバ装置１−２は接続先情報としてサーバ装置１−３のネットワークアドレスなどを有し、サーバ装置１−３は接続先情報としてサーバ装置１−１のネットワークアドレスなどを有している。これにより、各サーバ装置の接続先情報によって、次に接続するサーバ装置が各サーバ装置１−１〜１−３全体でリング状となるように定義される。
各サーバ装置１−１〜１−３の間は、ネットワークで接続されている。このネットワークは有線ネットワーク、無線ネットワークであっても良い。
【００１３】
図２は、本発明の実施の形態に係るサーバ装置の構成を示す図である。
ここでは、サーバ装置１−１の構成について示すが、他のサーバ装置１−２、１−３についても同様の構成が採用されているものとする。
同図に示すように、本発明の実施の形態に係るサーバ装置１−１は、バス１１にＣＰＵ１２、通信部１３、メモリ１４及び記憶装置１５が接続されている。
【００１４】
ＣＰＵ１２は、記憶装置１５に記憶された負荷分散処理プログラム２1と協働して、本発明の実施の形態に係る処理全体を司るものである。
通信部１３は、外部装置（クライアント装置、サーバ装置１−２、１−３）との通信の制御を司る。
メモリ１４は、負荷分散処理プログラム２１を実行する際に必要とされるワークエリアなどとして使用される。
【００１５】
記憶装置１５は、負荷分散処理に必要とされるデータを格納するためのものであり、例えば、ハードディスクドライブ（ＨＤＤ）である。この記憶装置１５には、負荷分散処理プログラム２１、ＯＳ２２及びデータベース２３などが格納されている。
負荷分散処理プログラム２１は、ＯＳ（オペレーティングシステム）２２上で動作するアプリケーションプログラムであって、ＣＰＵ１２と協働して、本発明の実施の形態に係る負荷分散処理を実現し、図４に示すフローチャートの処理を実現するものである。
【００１６】
データベース２３は、次に接続するサーバ装置を示す接続先情報３１と、自己に接続されているクライアント装置数を示すカウンタ情報３２と、自己に接続されるクライアント装置数の上限数を示す接続上限数情報３３とを格納する。カウンタ情報３２によって示される自己に接続されているクライアント装置数の初期値は０であり、サーバ装置が接続される毎にカウンタを増加させ、自己に接続されているクライアント装置数を把握する。なお、クライアント装置の接続が解除された場合には、逆に、カウンタを減少させることになる。
【００１７】
ここでは、クライアント装置の構成については、図示しないが、クライアント装置もサーバ装置と同様に、メモリ、ＣＰＵ、通信インターフェイス、記憶装置などを備えた通常のコンピュータと同様の構成を有し、本発明の実施の形態にかかる負荷分散処理は、記憶装置に記憶された本発明の実施の形態に係る負荷分散処理を実現するプログラムをＣＰＵが実行することにより実現される。
【００１８】
次に、本発明の実施の形態に係る負荷分散システムの動作について、図３及び図４のフローチャートを参照して説明する。図３はクライアント装置の動作を示すフローチャートであり、図４はサーバ装置の動作を示すフローチャートである。
図３に示すように、接続を試みるクライアント装置は、サーバ装置１−１〜１−３のいずれかをランダムに選択し、この選択されたサーバ装置に接続要求を出力する（Ａ−１）。なお、ここでは、ランダムにサーバ装置を選択する場合について説明したが、所定の規則にしたがってサーバ装置を選択しても良く、その選択の方法は問わない。選択されたサーバ装置は、クライアント装置からの接続要求を受信すると（Ｂ−１）、当該接続要求に接続上限数情報が含まれるか否かの判断が行なわれる（Ｂ−２）。
【００１９】
接続上限数情報が含まれていると判断された場合には、自己のデータベースに格納されている接続上限数情報を受信した接続上限数情報に書き換え（Ｂ−３）、ステップＢ−４の処理に移る。一方、ステップＢ−２において、接続要求に接続上限数情報が含まれていないと判断された場合にもステップＢ−４の処理に移る。
【００２０】
ステップＢ−４においては、自己のデータベースに格納されているカウンタ情報によって示される自己に接続されているクライアント装置数が、接続上限数情報によって示される自己に接続されるクライアント装置の接続上限数よりも小さいか否かを判断する。
【００２１】
自己に接続されているクライアント装置数が接続上限数よりも小さいと判断された場合には、クライアント装置からの接続要求を受け入れる（Ｂ−５）。図５は、クライアント装置２がサーバ装置１−３に接続要求を出力して、接続が成功した場合を示す図である。
【００２２】
一方、自己に接続されているクライアント装置数が接続上限数よりも小さくないと判断された場合には、サーバ装置はクライアント装置からの接続要求を拒否し、自己のデータベースに格納されている接続上限数情報及び次に接続するサーバ装置を示す接続先情報を前記クライアント装置に返信する（Ｂ−６）。
【００２３】
図６は、クライアント装置２がサーバ装置１−３に接続要求を出力したが、サーバ装置１−３に接続されているクライアント装置の数（Ｎ個：２−１〜２−Ｎ）が接続上限数Ｎよりも小さくないために、接続要求を拒否された場合を示す図である。
一方、クライアント装置は、接続要求を出力した後（Ａ−１）、当該接続要求が受け入れられたか否かの判断を行なう（Ａ−２）。接続要求が受け入れられた場合には、選択されたサーバ装置と接続処理を行ない、接続を完了する（Ａ−３）。
【００２４】
接続要求が受け入れられない場合、サーバ装置から送信される接続上限数情報及び接続先情報を受信し（Ａ−４）、全てのサーバ装置１−１〜１−３に接続したか否かの判断が行なわれる（Ａ−５）。
全てのサーバ装置に接続したと判断された場合には、接続上限数情報によって示される自己に接続されるクライアント装置の上限数を増加させて（例えば、２倍に増加、所定数の増加など）、ステップＡ−７の処理に移る。
【００２５】
ステップＡ−５において全サーバ装置に接続試行していないと判断された場合及びステップＡ−６における処理の後、クライアント装置は、受信した接続先情報に基づいて、次の接続先のサーバ装置に接続要求を出力する（Ａ−７）。この際、ステップＡ−６において、接続上限数情報が変更されている場合には、接続要求に接続上限数情報を含めて送信する。
【００２６】
したがって、本発明の実施の形態に係る負荷分散システムによれば、特別な負荷分散装置をサーバ装置と別個に設けることなく、サーバ装置とクライアント装置との連携により、負荷分散を行なうことができる。
より具体的には、サーバ装置は、自己に接続されているクライアント装置をカウンタ情報により把握し、所定の接続上限数になった時点で、他のサーバ装置にクライアント装置の接続を割り振ることができるので、特定のサーバ装置に負荷が集中することを防止することができる。
【００２７】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００２８】
また、実施形態に記載した手法は、計算機（コンピュータ）に実行させることができるプログラム（ソフトウエア手段）として、例えば磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ等）、半導体メモリ（ＲＯＭ、ＲＡＭ、フラッシュメモリ等）等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウエア手段（実行プログラムのみならずテーブルやデータ構造も含む）を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスクや半導体メモリ等の記憶媒体を含むものである。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態に係る負荷分散システムを構成する複数のサーバ装置の接続関係を示す図である。
【図２】本発明の実施の形態に係るサーバ装置の構成を示す図である。
【図３】クライアント装置の動作を示すフローチャートである。
【図４】サーバ装置の動作を示すフローチャートである。
【図５】クライアント装置がサーバ装置に接続要求を出力して接続が成功した場合を示す図である。
【図６】クライアント装置２が接続要求を拒否された場合を示す図である。
【符号の説明】
【００３０】
１−１〜１−３…サーバ装置、２…クライアント装置、１１…バス、１２…ＣＰＵ、１３…通信部、１４…メモリ、１５…記憶装置、２１…負荷分散処理プログラム、２２…ＯＳ、２３…データベース。
【図１】
0004585552.tif 000002
【図２】
0004585552.tif 000003
【図３】
0004585552.tif 000004
【図４】
0004585552.tif 000005
【図５】
0004585552.tif 000006
【図６】
0004585552.tif 000007