(57)【要約】【課題】  サーバ異常による影響を抑える。【解決手段】  複数のサーバのいずれかにユーザ端末からの処理要求を転送する負荷分散方法であって、複数のサーバに含まれる第１のサーバに異常が発生したことを検出した場合、処理要求の転送先が第１のサーバに設定されているユーザ端末からの処理要求の新たな転送先として第１のサーバ以外の第２のサーバを複数のサーバから選択するステップと、処理要求の転送先が第１のサーバに設定されているユーザ端末からの処理要求を所定のルールに基づき決定された転送ルートを介して第２のサーバに転送するための設定データを生成し、コネクション管理データ格納部に格納するステップとを含む。これにより、異常が発生した第１のサーバに対応付けられていたユーザ端末からの処理要求は、他の正常な第２のサーバに転送されるようになる。【選択図】図１
2005322107.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバのいずれかにユーザ端末からの処理要求を転送する負荷分散装置であって、
前記複数のサーバに含まれる第１のサーバに異常が発生したことを検出した場合、処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求の新たな転送先として前記第１のサーバ以外の第２のサーバを前記複数のサーバから選択する手段と、
前記処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求を所定のルールに基づき決定された転送ルートを介して前記第２のサーバに転送するための設定データを生成し、コネクション管理データ格納部に格納する手段と、
を有する負荷分散装置。
【請求項２】
前記転送ルートが、前記第２のサーバへの新規なコネクションであることを特徴とする請求項１記載の負荷分散装置。
【請求項３】
前記転送ルートが、前記第２のサーバへの既存且つ使用中のコネクションであることを特徴とする請求項１記載の負荷分散装置。
【請求項４】
前記複数のサーバの負荷状況を判定する手段をさらに有し、
前記所定のルールが、
前記第２のサーバの負荷が所定の基準より高いと判定された場合には、前記第２のサーバへの既存且つ使用中の第１のコネクションを、前記転送ルートとして決定し、
前記第２のサーバの負荷が前記所定の基準より低く、且つ前記第２のサーバへの既存且つ未使用の第２のコネクションが存在すると判定された場合には、前記第２のコネクションを、前記転送ルートとして決定し、
前記第２のサーバの負荷が前記所定の基準より低く、且つ前記第２のサーバへの既存のコネクションには使用中のコネクションのみが存在すると判定された場合には、前記第２のサーバへの新規なコネクションを、前記転送ルートとして決定する
ルールであることを特徴とする請求項１記載の負荷分散装置。
【請求項５】
複数のサーバのいずれかにユーザ端末からの処理要求を転送するための負荷分散プログラムであって、
前記複数のサーバに含まれる第１のサーバに異常が発生したことを検出した場合、処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求の新たな転送先として前記第１のサーバ以外の第２のサーバを前記複数のサーバから選択するステップと、
前記処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求を所定のルールに基づき決定された転送ルートを介して前記第２のサーバに転送するための設定データを生成し、コネクション管理データ格納部に格納するステップと、
をプロセッサに実行させるための負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散処理技術に関するものである。
【背景技術】
【０００２】
一般的に、サーバ負荷分散装置（以下、負荷分散装置と略す）を利用したシステムでは、パーソナル・コンピュータや携帯電話機等のユーザ端末からのコネクションを負荷分散装置で終端し、サーバの負荷状況等に基づき適切なサーバを選択して処理を割り当てることにより、サーバの負荷を分散する。その際、負荷分散装置は、ユーザ端末側のコネクションとサーバ側のコネクションとを個別に対応付け、データを保持している。負荷分散装置は、ユーザ端末からリクエスト・データを受信すると、送信元のユーザ端末に対応付けられているサーバに、受信したリクエスト・データを転送する。一方、負荷分散装置は、サーバからレスポンス・データを受信すると、送信元のサーバに対応付けられているユーザ端末に、受信したレスポンス・データを転送する。
【０００３】
また、負荷分散装置は、サーバの状態を監視しているので、ユーザ端末とのコネクション確立時点においてサーバの異常を検知していれば、当該サーバを負荷分散対象から除外する。一方、既にユーザ端末とのコネクションが確立している状態においてサーバに異常が発生した場合、当該サーバに対応付けられているユーザ端末側のコネクションを切断する。そのため、異常が発生したサーバに対応付けられていたユーザ端末では通信異常が発生することになり、例えば一連の処理が途中まで進んでいたとしても、初めからやり直す必要が生じる。
【０００４】
例えば、特開平７−２４０７５６号公報は、特定の通信経路に異常が発生した場合においても、代替経路を用いることによりコネクションを継続可能とする技術を開示している。すなわち、システムＡとシステムＢとの間で経路ａによりコネクションが確立されている場合、システムＡは、経路ａに異常が発生したことを検出すると、経路ｂを介してシステムＢに経路変更要求を送信する。システムＢは、経路ｂを使用することが可能であれば、経路ｂを介してシステムＡに経路変更応答を返信する。システムＡは、経路変更要求の送信経路と経路変更応答の受信経路が同じであれば、経路ｂを介してシステムＢに経路変更確認を送信する。このようにして、経路ｂによりコネクションが継続される。
【特許文献１】特開平７−２４０７５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、負荷分散装置を用いたシステムにおいては、ユーザ端末とサーバとは、互いに相手側のアドレスを認識することなく通信するため、上で述べた従来技術を負荷分散装置を用いたシステムにそのまま適用するのは困難である。また、負荷分散装置を用いたシステムにおいて、ユーザ端末とサーバとの間の個々のコネクションについて代替経路を設定しておくのも適切ではない。
【０００６】
従って、本発明の目的は、サーバ異常による影響を抑えるための負荷分散装置に関連する技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る負荷分散方法は、複数のサーバのいずれかにユーザ端末からの処理要求を転送する負荷分散方法であって、複数のサーバに含まれる第１のサーバに異常が発生したことを検出した場合、処理要求の転送先が第１のサーバに設定されているユーザ端末からの処理要求の新たな転送先として第１のサーバ以外の第２のサーバを複数のサーバから選択するステップと、処理要求の転送先が第１のサーバに設定されているユーザ端末からの処理要求を所定のルールに基づき決定された転送ルートを介して第２のサーバに転送するための設定データを生成し、コネクション管理データ格納部に格納するステップとを含む。
【０００８】
これにより、異常が発生した第１のサーバに対応付けられていたユーザ端末からの処理要求は、他の正常な第２のサーバに転送されるようになる。例えば、第１のサーバと第２のサーバとの間で処理状態に関する情報を共有していれば、一連の処理の途中でサーバが切り替わったとしても、継続して処理を進めていくことができる。すなわち、サーバ異常による影響を抑えることができるようになる。
【０００９】
また、上記転送ルートが、第２のサーバへの新規なコネクションであってもよい。すなわち、負荷分散装置から第２のサーバへの新規なコネクションを確立し、ユーザ端末からの処理要求を第２のサーバへ転送するようにしてもよい。  
【００１０】
また、上記転送ルートが、第２のサーバへの既存且つ使用中のコネクションであってもよい。すなわち、負荷分散装置から第２のサーバへの既存且つ使用中のコネクションを利用し、ユーザ端末からの処理要求を第２のサーバへ転送するようにしてもよい。なお、負荷分散装置から第２のサーバへの既存且つ未使用のコネクションを利用し、ユーザ端末からの処理要求を第２のサーバへ転送するようにしてもよい。  
【００１１】
また、本発明に係る負荷分散方法が、複数のサーバの負荷状況を判定するステップをさらに含み、上記所定のルールが、第２のサーバの負荷が所定の基準より高いと判定された場合には、第２のサーバへの既存且つ使用中の第１のコネクションを、転送ルートとして決定し、第２のサーバの負荷が所定の基準より低く、且つ第２のサーバへの既存且つ未使用の第２のコネクションが存在すると判定された場合には、第２のコネクションを、転送ルートとして決定し、第２のサーバの負荷が所定の基準より低く、且つ第２のサーバへの既存のコネクションには使用中のコネクションのみが存在すると判定された場合には、第２のサーバへの新規なコネクションを、転送ルートとして決定するルールであってもよい。
【００１２】
これにより、コネクション再設定方法が適切に選択される。すなわち、第２のサーバの負荷が所定の基準より高い場合には、利用するコネクションの数を増やすのは適切ではないため、既存且つ使用中のコネクションを利用する。また、第２のサーバの負荷が所定の基準より低い場合には、第２のサーバへの既存且つ未使用のコネクションが存在すればそのような空きコネクションを利用し、そのような空きコネクションがなければ、新規のコネクションを利用する。このようにすることにより、サーバ資源を適切に使用することができる。
【００１３】
なお、本発明に係る方法をプロセッサに実行させるためのプログラムを作成することも可能であって、このようなプロセッサを含む装置と当該プログラムとにより負荷分散装置が構成される。また当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークを介してデジタル信号として配信される場合もある。なお、処理途中のデータについては、メモリ等の記憶装置に一時保管される。
【発明の効果】
【００１４】
本発明によれば、サーバ異常による影響を抑えることができるようになる。
【発明を実施するための最良の形態】
【００１５】
本発明の一実施の形態に係るシステム構成を図１に示す。例えばインターネットであるネットワーク１には、負荷分散装置１００と、例えばウェブ（Ｗｅｂ）ブラウザ機能を備えたパーソナル・コンピュータであるユーザ端末３、ユーザ端末７、ユーザ端末９及びユーザ端末１１とが、無線又は有線により接続されている。なお、ユーザ端末の台数はここで示した４台に限られない。また、ユーザ端末が、Ｗｅｂブラウザ機能を備えた携帯情報端末や携帯電話機等、パーソナル・コンピュータ以外の機器である場合もある。
【００１６】
負荷分散装置１００は、ネットワーク１に接続されている一方で、サーバ・センタ内のＬＡＮ（Local Area Network）５０にも無線又は有線により接続されている。ＬＡＮ５０には、負荷分散装置１００の他に、Ｗｅｂサーバ５１、Ｗｅｂサーバ５３、Ｗｅｂサーバ５５及びデータベース（ＤＢ）サーバ５７が無線又は有線により接続されている。なお、Ｗｅｂサーバの台数はここで示した３台に限られない。また、ＤＢサーバ５７には、トランザクション管理ＤＢ５９が接続されている。トランザクション管理ＤＢ５９には、各Ｗｅｂサーバが行った処理に関するデータが格納され、各Ｗｅｂサーバが参照することができるようになっている。
【００１７】
負荷分散装置１００には、サーバ監視部１１０とコネクション管理部１２０と中継処理部１３０とサーバ状態格納部１４０と再設定方法格納部１５０とコネクション管理テーブル１６０とが含まれている。サーバ監視部１１０は、所定の間隔又は任意のタイミングでＷｅｂサーバ５１、Ｗｅｂサーバ５３及びＷｅｂサーバ５５の状態チェックを行い、チェック結果をサーバ状態格納部１４０に格納する。なお、状態チェックには、正常か異常かのチェックの他に、各Ｗｅｂサーバの負荷状況のチェックも含まれる。また、サーバ監視部１１０は、いずれかのＷｅｂサーバの異常を検出した場合、異常が検出されたＷｅｂサーバに関するデータ（例えばＩＰアドレス）をコネクション管理部１２０に出力する。
【００１８】
コネクション管理部１２０は、サーバ状態格納部１４０と再設定方法格納部１５０とコネクション管理テーブル１６０とを参照してユーザ端末とＷｅｂサーバとを対応付けるための処理を行い、コネクション管理テーブル１６０にデータを登録する。再設定方法格納部１５０には、サーバ異常を検出した後の処理におけるコネクション再設定方法が予め決まっている場合には、そのコネクション再設定方法が登録されている。再設定方法格納部１５０にデータが登録されていない場合には、コネクション管理部１２０がコネクション再設定方法を選択する。本実施の形態においてコネクション再設定方法は例えば３種類の方法から選択される。コネクション再設定方法の各々についての説明は以下で詳述する。また、コネクション管理部１２０は、ユーザ端末からの処理要求データを受信すると、必要に応じてコネクション管理テーブル１６０にデータを登録し、中継処理部１３０に処理の開始を指示するデータを出力する。
【００１９】
中継処理部１３０は、コネクション管理テーブル１６０を参照してデータの中継処理を行う。すなわち、ユーザ端末（ユーザ端末３、ユーザ端末７、ユーザ端末９及びユーザ端末１１のいずれか）からの処理要求データを、コネクション管理テーブル１６０に格納されているデータに従って特定されるＷｅｂサーバ（Ｗｅｂサーバ５１、Ｗｅｂサーバ５３及びＷｅｂサーバ５５のいずれか）に転送する。また、Ｗｅｂサーバ（Ｗｅｂサーバ５１、Ｗｅｂサーバ５３及びＷｅｂサーバ５５のいずれか）からの応答データを、コネクション管理テーブル１６０に格納されているデータに従って特定されるユーザ端末（ユーザ端末３、ユーザ端末７、ユーザ端末９及びユーザ端末１１のいずれか）に転送する。
【００２０】
なお、１台のＷｅｂサーバに複数台のユーザ端末が対応付けられている場合には、ＦＩＦＯ（First In First Out）の方式に従い、ユーザ端末から処理要求を受信した順番でＷｅｂサーバからの応答データをユーザ端末に返信する。ＨＴＴＰ（HyperText Transfer Protocol）では処理の順序が保証されているため、このようにすると正しく中継処理を行うことができる。例えば、ユーザ端末３及びユーザ端末７がＷｅｂサーバ５１に対応付けられている場合、中継処理部１３０は、始めにユーザ端末３から、次にユーザ端末７からという順番で処理要求を受信すると、始めにユーザ端末３からの処理要求をＷｅｂサーバ５１に転送し、次にユーザ端末７からの処理要求をＷｅｂサーバ５１に転送する。このようにすると、Ｗｅｂサーバ５１からは、始めにユーザ端末３の処理要求に対応する応答データが送信され、次にユーザ端末７の処理要求に対応する応答データが送信される。従って、中継処理部１３０は、先に受信する応答データをユーザ端末３に転送し、次に受信する応答データをユーザ端末７に転送すれば、適切な転送処理を行うことができる。なお、順番を保持しておくための管理テーブル等を用いる場合もある。また、転送するデータの内容（例えばヘッダのデータ）から転送先のユーザ端末を特定することもある。
【００２１】
図２Ａに、第１のコネクション概念図を示す。なお、図１と同様の構成要素については同一の符号を付してある。図２Ａは、負荷分散装置１００からＷｅｂサーバ５１へのコネクション５１１にユーザ端末３からのコネクションが対応付けられ、コネクション５１２にユーザ端末７からのコネクションが対応付けられている様子を示している。同様に、負荷分散装置１００からＷｅｂサーバ５３へのコネクション５３１にユーザ端末９からのコネクションが対応付けられ、負荷分散装置１００からＷｅｂサーバ５５へのコネクション５５１にユーザ端末１１からのコネクションが対応付けられている様子を示している。
【００２２】
このような状態の場合、コネクション管理テーブル１６０には、例えば図３Ａに示すようなデータが格納されている。図３Ａの例には、ユーザ端末ＩＰアドレスの列３００とユーザ端末ポート番号の列３０２と負荷分散装置第１アドレスの列３０４と負荷分散装置第１ポート番号の列３０６と負荷分散装置第２アドレスの列３０８と負荷分散装置第２ポート番号の列３１０とサーバＩＰアドレスの列３１２とサーバ・ポート番号の列３１４とが含まれている。なお、負荷分散装置第１アドレス及び負荷分散装置第１ポート番号とは、負荷分散装置１００においてユーザ端末に公開しているＩＰアドレス及びポート番号である。また、負荷分散装置第２アドレス及び負荷分散装置第２ポート番号とは、負荷分散装置１００においてＷｅｂサーバに公開しているＩＰアドレス及びポート番号である。図３Ａの例では、負荷分散装置第２アドレスの列３０８の各行には異なるＩＰアドレスが登録されているが、コネクションの識別はポート番号（負荷分散装置第２ポート番号の列３１０の値）によって可能であるため、負荷分散装置第２アドレスの列３０８の各行に同一のＩＰアドレスが登録されている場合もある。また、共通で用いられるＩＰアドレスについてはコネクション管理テーブル１６０には登録せず、別途管理するような場合もある。
【００２３】
負荷分散装置１００は、複数のＷｅｂサーバがあたかも１つであるようにユーザ端末に見せるため、「Ｘｓ」というＩＰアドレスを有している。各ユーザ端末は、この「Ｘｓ」という１つのＩＰアドレス宛てに例えば処理要求を送信する。負荷分散装置１００のコネクション管理部１２０は、例えばＷｅｂサーバの負荷状況に応じて適切なＷｅｂサーバを選択し、ユーザ端末側のコネクションとＷｅｂサーバ側のコネクションとを対応付けて、図３Ａに示したようなデータを登録する。すなわち、各ユーザ端末は「Ｘｓ」という１つの宛先ＩＰアドレスを用いて通信を行うが、実際には、ユーザ端末３及びユーザ端末７から要求された処理はＷｅｂサーバ５１が行い、ユーザ端末９から要求された処理はＷｅｂサーバ５３が行い、ユーザ端末１１から要求された処理はＷｅｂサーバ５５が行うというように、負荷分散がなされている（図２Ａ）。なお、負荷分散におけるＷｅｂサーバの選択方法には、ラウンドロビンや静的な重み付け、最小コネクション数、最小クライアント数、最小データ通信量、最小応答時間、最小ＣＰＵ負荷率、最小メモリ使用率、最小ディスク負荷率等、様々な方法があるが、いずれの方法を用いてもよい。また、このようにして負荷分散を行うこと自体は従来技術であるため、詳細な説明は省略する。
【００２４】
また、負荷分散装置１００のユーザ端末側の通信ポートには「Ｘｐ」というポート番号が設定されている。インターネットを介した通信において、実際のデータの送受信はＩＰアドレスとポートとを組み合わせたソケット単位で行われる。すなわち、負荷分散装置１００は、いずれのユーザ端末との通信においても共通のＩＰアドレス及びポートを使用するようになっている。
【００２５】
図２Ｂに、第２のコネクション概念図を示す。図２Ｂには、例えば図２Ａに示したようなコネクション状態においてＷｅｂサーバ５１に異常が検出され、サーバ側のコネクションが設定し直された場合のコネクション概念図が示されている。なお、図２Ａと同様の構成要素については同一の符号を付してある。
【００２６】
図２Ｂは、負荷分散装置１００からＷｅｂサーバ５３への新規なコネクション５３２にユーザ端末３からのコネクションが対応付けられ、負荷分散装置１００からＷｅｂサーバ５５への新規なコネクション５５２にユーザ端末７からのコネクションが対応付けられている様子を示している。なお、図２Ａに示されていたコネクション５１１及びコネクション５１２のデータは、Ｗｅｂサーバ５１に異常が発生したことにより消失している。このように、異常が検出されたＷｅｂサーバ５１に対応付けられていたユーザ端末３及びユーザ端末７からのコネクションを、他のＷｅｂサーバへのコネクションに対応付けることにより、サーバ異常による影響をユーザ端末に及ぼさないようにすることができる。
【００２７】
なお、従来技術ではこのような対応付け処理がなされないため、異常が検出されたＷｅｂサーバ５１に対応付けられていたユーザ端末３及びユーザ端末７は、例えば一連の処理を継続することができなくなる。すなわち、コネクション管理テーブル１６０に格納されているデータが図３Ｂに示したように更新されてしまうため、ユーザ端末３及びユーザ端末７は、新規のユーザ端末として取り扱われることになる。なお、図３Ｂでは、図３Ａの１行目及び２行目、すなわち、ユーザ端末３及びユーザ端末７に関するレコードが削除されてしまっている。
【００２８】
一方、図２Ｂに示したような状態の場合、コネクション管理テーブル１６０には、例えば図３Ｃに示すようなデータが格納されている。すなわち、太枠部分が図３Ａから自動的に更新されており、ユーザ端末３及びユーザ端末７に関するレコードは削除されていない。更新内容としては、負荷分散装置第２アドレスの列３０８と負荷分散装置第２ポート番号の列３１０とに新しい値が登録されており、サーバＩＰアドレスの列３１２とサーバ・ポート番号の列３１４とには、１行目にはＷｅｂサーバ５３のＩＰアドレス及びポート番号が、２行目にはＷｅｂサーバ５５のＩＰアドレス及びポート番号が登録されている。負荷分散装置第２アドレスの列３０８と負荷分散装置第２ポート番号の列３１０とに新しい値が登録されているということは、図２Ｂにおいて新規のコネクション５３２及び５５２が確立されたことを意味している。
【００２９】
図２Ｃに、第３のコネクション概念図を示す。図２Ｃには、例えば図２Ａに示したようなコネクション状態においてＷｅｂサーバ５１に異常が検出され、サーバ側のコネクションが設定し直された場合のコネクション概念図が示されている。なお、図２Ａと同様の構成要素については同一の符号を付してある。
【００３０】
図２Ｃは、負荷分散装置１００からＷｅｂサーバ５３への既存のコネクション５３１にユーザ端末３からのコネクションが対応付けられ、負荷分散装置１００からＷｅｂサーバ５５への既存のコネクション５５１にユーザ端末７からのコネクションが対応付けられている様子を示している。なお、図２Ａに示されていたコネクション５１１及びコネクション５１２のデータは、Ｗｅｂサーバ５１に異常が発生したことにより消失している。このように、異常が検出されたＷｅｂサーバ５１に対応付けられていたユーザ端末３及びユーザ端末７からのコネクションを、他のＷｅｂサーバへの既存且つ使用中のコネクションに対応付けることにより、サーバ異常による影響をユーザ端末に及ぼさないようにすることができる。
【００３１】
図２Ｃに示したような状態の場合、コネクション管理テーブル１６０には、例えば図３Ｄに示すようなデータが格納されている。すなわち、太枠部分が図３Ａから自動的に更新されており、ユーザ端末３及びユーザ端末７に関するレコードは削除されていない。更新内容としては、３行目と同じデータが１行目に、４行目と同じデータが２行目に登録されている。３行目のレコードはユーザ端末９に関するレコードであり、ユーザ端末３に関する１行目のレコードに３行目と同じデータが登録されるということは、ユーザ端末９に対応付けられていたコネクションと同じコネクションに、ユーザ端末３が対応付けられたことを表している。同様に、２行目の更新内容は、ユーザ端末１１に対応付けられていたコネクションと同じコネクションに、ユーザ端末７が対応付けられたことを表している。
【００３２】
図２Ｄに、第４のコネクション概念図を示す。なお、図２Ａと同様の構成要素については同一の符号を付してある。図２Ｄは、負荷分散装置１００からＷｅｂサーバ５１へのコネクション５１１にユーザ端末３からのコネクションが対応付けられ、コネクション５１２にユーザ端末７からのコネクションが対応付けられている様子を示している。同様に、負荷分散装置１００からＷｅｂサーバ５３へのコネクション５３１にユーザ端末９からのコネクションが対応付けられ、負荷分散装置１００からＷｅｂサーバ５５へのコネクション５５１にユーザ端末１１からのコネクションが対応付けられている様子を示している。また、Ｗｅｂサーバ５３への未使用のコネクション５３３及び５３４と、Ｗｅｂサーバ５５への未使用のコネクション５５３及び５５４とが既に確立されている様子を示している。
【００３３】
このような状態の場合、コネクション管理テーブル１６０には、例えば図３Ｅに示すようなデータが格納されている。５行目から８行目のレコードは、例えば順にコネクション５３３、コネクション５５３、コネクション５３４及びコネクション５５４に対応するデータである。
【００３４】
図２Ｅに、第５のコネクション概念図を示す。図２Ｅには、例えば図２Ｄに示したようなコネクション状態においてＷｅｂサーバ５１に異常が検出され、サーバ側のコネクションが設定し直された場合のコネクション概念図が示されている。なお、図２Ｄと同様の構成要素については同一の符号を付してある。
【００３５】
図２Ｅは、負荷分散装置１００からＷｅｂサーバ５３への既存且つ未使用であったコネクション５３３にユーザ端末３からのコネクションが対応付けられ、負荷分散装置１００からＷｅｂサーバ５５への既存且つ未使用であったコネクション５５３にユーザ端末７からのコネクションが対応付けられている様子を示している。なお、図２Ｄに示されていたコネクション５１１及びコネクション５１２のデータは、Ｗｅｂサーバ５１に異常が発生したことにより消失している。このように、異常が検出されたＷｅｂサーバ５１に対応付けられていたユーザ端末３及びユーザ端末７からのコネクションを、他のＷｅｂサーバへの既存且つ未使用であったコネクションに対応付けることにより、サーバ異常による影響をユーザ端末に及ぼさないようにすることができる。
【００３６】
図２Ｅに示したような状態の場合、コネクション管理テーブル１６０には、例えば図３Ｆに示すようなデータが格納されている。すなわち、太枠部分が図３Ｅから自動的に更新されており、ユーザ端末３及びユーザ端末７に関するレコードは削除されていない。更新内容としては、図３Ｅの５行目のデータが、図３Ｆの１行目に、図３Ｅの６行目のデータが、図３Ｆの５行目に移動している。なお、このようなコネクション管理テーブル１６０の更新処理においては、異常が検出されたＷｅｂサーバに対応付けられていたユーザ端末に関するレコードを一旦削除してから登録し直すようにしてもよい。
【００３７】
以上示したように、本実施の形態においては、Ｗｅｂサーバの異常が検出された場合に、図２Ｂ、図２Ｃ及び図２Ｅに示した例えば３種類の再設定状態のうちのいずれか１つの状態を実現することにより、サーバ異常による影響をユーザ端末に及ぼさないようにする。なお、本実施の形態におけるコネクション再設定方法とは、図２Ｂ、図２Ｃ及び図２Ｅに示した３種類のコネクション再設定状態を生じさせる３つの方法を意味する。すなわち、図２Ｂに示した状態におけるコネクション再設定方法は新規コネクションを利用する方法であり、図２Ｃに示した状態におけるコネクション再設定方法は既存且つ使用中コネクションを利用する方法であり、図２Ｅに示した状態におけるコネクション再設定方法は既存且つ未使用コネクションを利用する方法である。
【００３８】
図４乃至図６を用いて、図１に示した負荷分散装置１００の処理について説明する。ここでは、主にコネクション再設定方法の選択、すなわち、図２Ｂ、図２Ｃ及び図２Ｅに示した３種類の再設定状態のうちどの状態になるようにコネクションを設定し直すかということを決定するための処理について示す。
【００３９】
まず、負荷分散装置１００のサーバ監視部１１０は、所定の間隔又は任意のタイミングでＷｅｂサーバ５１、Ｗｅｂサーバ５３及びＷｅｂサーバ５５の状態チェックを行い、チェック結果をサーバ状態格納部１４０に格納する（図４：ステップＳ１）。サーバ状態のチェックとしては、ｐｉｎｇ応答の確認やコネクション確立の確認、アプリケーション動作の確認等が挙げられるが、これらのうち少なくともいずれかの確認を行う。なお、状態チェックには、正常か異常かのチェックの他に、各Ｗｅｂサーバの負荷状況のチェックも含まれ、同様にサーバ状態格納部１４０に格納する。
【００４０】
そして、サーバ監視部１１０は、いずれかのＷｅｂサーバの異常が検出されたかどうか判定する（ステップＳ３）。Ｗｅｂサーバの異常が検出されなかったと判定された場合（ステップＳ３：Ｎｏルート）、ステップＳ１の処理に戻る。一方、Ｗｅｂサーバの異常が検出されたと判定された場合（ステップＳ３：Ｙｅｓルート）、負荷分散装置１００のコネクション管理部１２０は、コネクション管理テーブル１６０を参照し、異常が検出されたＷｅｂサーバに対応付けられたユーザ端末のコネクションが存在するか確認する（ステップＳ５）。そして、該当するコネクションが存在するか判定する（ステップＳ７）。例えば、コネクション管理テーブル１６０に図３Ａに示したようなデータが登録されており、Ｗｅｂサーバ５１に異常が検出された場合には、ユーザ端末３及びユーザ端末７からのコネクションが、該当するコネクションである。
【００４１】
該当するコネクションが存在しないと判定された場合（ステップＳ７：Ｎｏルート）、ステップＳ１の処理に戻る。一方、該当するコネクションが存在すると判定された場合（ステップＳ７：Ｙｅｓルート）、コネクション管理部１２０は、サーバ状態格納部１４０を参照して、異常が検出されなかった残りのＷｅｂサーバの負荷状況を確認し、一時記憶領域等に格納する（ステップＳ９）。また、コネクション管理部１２０は、コネクションを確立すべきユーザ端末を１件特定する（ステップＳ１１）。例えばまずユーザ端末３が特定される。そして、コネクション管理部１２０は、特定したユーザ端末に対応付けるＷｅｂサーバを１件特定する（ステップＳ１３）。なお、Ｗｅｂサーバについては、所定の負荷分散方法によって特定する。例えばＷｅｂサーバ５３が特定される。
【００４２】
次に、コネクション管理部１２０は、再設定方法格納部１５０を参照して、指定済みのコネクション再設定方法を用いるか判定する（ステップＳ１５）。本実施の形態においては、再設定方法格納部１５０にコネクション再設定方法（３種類のうちいずれか）が登録されていれば、当該コネクション再設定方法を指定済みのコネクション再設定方法として用いる。なお、再設定方法格納部１５０には、システム管理者等によってコネクション再設定方法が登録される。指定済みのコネクション再設定方法を用いると判定された場合（ステップＳ１５：Ｙｅｓルート）、端子Ａを介して図５の処理に移行する。一方、指定済みのコネクション再設定方法を用いないと判定された場合（ステップＳ１５：Ｎｏルート）、端子Ｂを介して図６の処理に移行する。例えば、再設定方法格納部１５０にいずれのコネクション再設定方法も登録されていない場合には、指定済みのコネクション再設定方法を用いないと判定される。
【００４３】
図５に、端子Ａを介して移行した後の処理を示す。まず、コネクション管理部１２０は、指定済みのコネクション再設定方法が「新規コネクションを利用する方法」であったか判定する（図５：ステップＳ２１）。「新規コネクションを利用する方法」であったと判定された場合（ステップＳ２１：Ｙｅｓルート）、コネクション管理部１２０は、新規コネクションを確立し、コネクション管理テーブル１６０を更新する（ステップＳ２３）。例えば、図２Ｂに示したコネクション５３２のような新規コネクションを確立し、図３Ｃの１行目に示したようにコネクション管理テーブル１６０を更新する。そして後に述べるステップＳ３５の処理に移行する。一方、指定済みのコネクション再設定方法が「新規コネクションを利用する方法」ではないと判定された場合（ステップＳ２１：Ｎｏルート）、コネクション管理部１２０は、指定済みのコネクション再設定方法が「既存且つ未使用コネクションを利用する方法」であったか判定する（ステップＳ２５）。「既存且つ未使用コネクションを利用する方法」であったと判定された場合（ステップＳ２５：Ｙｅｓルート）、コネクション管理部１２０は、コネクション管理テーブル１６０を参照し、既存且つ未使用のコネクションが存在するか判定する（ステップＳ２７）。図３Ｅに示したようなデータがコネクション管理テーブル１６０に格納されている場合には、例えばＷｅｂサーバ５３に関する５行目及び７行目のデータに基づき、既存且つ未使用のコネクションが存在すると判定される。
【００４４】
既存且つ未使用のコネクションが存在しないと判定された場合（ステップＳ２７：Ｎｏルート）、上で述べたステップＳ２３の処理に移行する。一方、既存且つ未使用のコネクションが存在すると判定された場合（ステップＳ２７：Ｙｅｓルート）、コネクション管理部１２０は、既存且つ未使用のコネクションを、特定されているユーザ端末に割り当て、コネクション管理テーブル１６０を更新する（ステップＳ２９）。例えば、図２Ｅに示したように、既存且つ未使用であったコネクション５３３にユーザ端末３を割り当て、図３Ｆの１行目に示したようにコネクション管理テーブル１６０を更新する。そして後に述べるステップＳ３５の処理に移行する。
【００４５】
一方、指定済みのコネクション再設定方法が「既存且つ未使用コネクションを利用する方法」ではないと判定された場合（ステップＳ２５：Ｎｏルート）、コネクション管理部１２０は、コネクション管理テーブル１６０を参照し、既存且つ使用中のコネクションが存在するか判定する（ステップＳ３１）。図３Ａに示したようなデータがコネクション管理テーブル１６０に格納されている場合には、例えばＷｅｂサーバ５３に関する３行目のデータに基づき、既存且つ使用中のコネクションが存在すると判定される。
【００４６】
既存且つ使用中のコネクションが存在しないと判定された場合（ステップＳ３１：Ｎｏルート）、端子Ｃを介してステップＳ１３（図４）の処理に移行する。一方、既存且つ使用中のコネクションが存在すると判定された場合（ステップＳ３１：Ｙｅｓルート）、コネクション管理部１２０は、既存且つ使用中のコネクションを、特定されているユーザ端末に割り当て、コネクション管理テーブル１６０を更新する（ステップＳ３３）。例えば、図２Ｃに示したように、既存且つ使用中であったコネクション５３１にユーザ端末３を割り当て、図３Ｄの１行目に示したようにコネクション管理テーブル１６０を更新する。
【００４７】
そして、コネクション管理部１２０は、コネクションの再設定を行う対象となる全てのユーザ端末について処理を行ったか判定する（ステップＳ３５）。全ての対象ユーザ端末についての処理を行ったと判定されなかった場合（ステップＳ３５：Ｎｏルート）、端子Ｄを介してステップＳ１１（図４）の処理に移行する。一方、全ての対象ユーザ端末についての処理を行ったと判定された場合（ステップＳ３５：Ｙｅｓルート）、処理を終了する。
【００４８】
指定済みのコネクション再設定方法に従う場合、このようにしてコネクションの再設定が行われる。
【００４９】
図６に、端子Ｂを介して移行した後の処理を示す。まず、コネクション管理部１２０は、サーバ状態格納部１４０を参照し、特定されているＷｅｂサーバの負荷が所定の基準より高いか判定する（図６：ステップＳ４１）。Ｗｅｂサーバが高負荷であると判定された場合（ステップＳ４１：Ｙｅｓルート）、コネクション管理部１２０は、コネクション管理テーブル１６０を参照し、既存且つ使用中のコネクションが存在するか判定する（ステップＳ４３）。既存且つ使用中のコネクションが存在しないと判定された場合（ステップＳ４３：Ｎｏルート）、端子Ｃを介してステップＳ１３（図４）の処理に移行する。一方、既存且つ使用中のコネクションが存在すると判定された場合（ステップＳ４３：Ｙｅｓルート）、コネクション管理部１２０は、既存且つ使用中のコネクションを、特定されているユーザ端末に割り当て、コネクション管理テーブル１６０を更新する（ステップＳ４５）。例えば、図２Ｃに示したように、既存且つ使用中であったコネクション５３１にユーザ端末３を割り当て、図３Ｄの１行目に示したようにコネクション管理テーブル１６０を更新する。そして後に述べるステップＳ５３の処理に移行する。
【００５０】
一方、Ｗｅｂサーバが高負荷ではないと判定された場合（ステップＳ４１：Ｎｏルート）、コネクション管理部１２０は、コネクション管理テーブル１６０を参照し、既存且つ未使用のコネクションが存在するか判定する（ステップＳ４７）。既存且つ未使用のコネクションが存在すると判定された場合（ステップＳ４７：Ｙｅｓルート）、コネクション管理部１２０は、既存且つ未使用のコネクションを、特定されているユーザ端末に割り当て、コネクション管理テーブル１６０を更新する（ステップＳ４９）。例えば、図２Ｅに示したように、既存且つ未使用であったコネクション５３３にユーザ端末３を割り当て、図３Ｆの１行目に示したようにコネクション管理テーブル１６０を更新する。そして後に述べるステップＳ５３の処理に移行する。
【００５１】
一方、既存且つ未使用のコネクションが存在しないと判定された場合（ステップＳ４７：Ｎｏルート）、コネクション管理部１２０は、新規コネクションを確立し、コネクション管理テーブル１６０を更新する（ステップＳ５１）。例えば、図２Ｂに示したコネクション５３２のような新規コネクションを確立し、図３Ｃの１行目に示したようにコネクション管理テーブル１６０を更新する。
【００５２】
そして、コネクション管理部１２０は、コネクションの再設定を行う対象となる全てのユーザ端末について処理を行ったか判定する（ステップＳ５３）。全ての対象ユーザ端末についての処理を行ったと判定されなかった場合（ステップＳ５３：Ｎｏルート）、端子Ｄを介してステップＳ１１（図４）の処理に移行する。一方、全ての対象ユーザ端末についての処理を行ったと判定された場合（ステップＳ５３：Ｙｅｓルート）、処理を終了する。
【００５３】
コネクション再設定方法が指定されていない場合には、このように、Ｗｅｂサーバの負荷状況に応じてコネクションの再設定が行われる。すなわち、Ｗｅｂサーバの負荷が所定の基準よりも高い場合には、コネクション数を増やさないような設定を行い、Ｗｅｂサーバの負荷が所定の基準よりも低い場合には、レスポンスが良くなるような設定を行う。これにより、サーバ異常による影響をユーザ端末に及ぼさないようにするためのコネクションの再設定が適切になされる。
【００５４】
以上本発明の一実施の形態について説明したが、本発明はこれに限定されるものではない。例えば、図３Ａ乃至図３Ｆに示したテーブル構成は一例であって、同様のデータを格納するためであれば別の構成を採用するようにしてもよいし、必要に応じて項目を追加又は削除してもよい。また、図１に示した負荷分散装置の機能ブロック構成は一例であって、実際のプログラム・モジュール構成とは異なる場合がある。また、図２Ａ乃至図２Ｅに示したコネクション概念図も一例であって、同様の内容を別の態様で表す場合もある。さらに、図４乃至図６に示した処理フローも一例であって、同様の処理結果が得られる範囲において処理の順序を入れ替えてもよいし、必要に応じてステップを追加又は削除してもよい。
【００５５】
（付記１）
複数のサーバのいずれかにユーザ端末からの処理要求を転送する負荷分散装置であって、
前記複数のサーバに含まれる第１のサーバに異常が発生したことを検出した場合、処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求の新たな転送先として前記第１のサーバ以外の第２のサーバを前記複数のサーバから選択する手段と、
前記処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求を所定のルールに基づき決定された転送ルートを介して前記第２のサーバに転送するための設定データを生成し、コネクション管理データ格納部に格納する手段と、
を有する負荷分散装置。
【００５６】
（付記２）
前記転送ルートが、前記第２のサーバへの新規なコネクションであることを特徴とする付記１記載の負荷分散装置。
【００５７】
（付記３）
前記転送ルートが、前記第２のサーバへの既存且つ使用中のコネクションであることを特徴とする付記１記載の負荷分散装置。
【００５８】
（付記４）
前記転送ルートが、前記第２のサーバへの既存且つ未使用のコネクションであることを特徴とする付記１記載の負荷分散装置。
【００５９】
（付記５）
前記複数のサーバの負荷状況を判定する手段をさらに有し、
前記所定のルールが、
前記第２のサーバの負荷が所定の基準より高いと判定された場合には、前記第２のサーバへの既存且つ使用中のコネクションを、前記転送ルートとして決定し、
前記第２のサーバの負荷が前記所定の基準より低いと判定された場合には、前記第２のサーバへの既存且つ未使用のコネクションを、前記転送ルートとして決定する
ルールであることを特徴とする付記１記載の負荷分散装置。
【００６０】
（付記６）
前記複数のサーバの負荷状況を判定する手段をさらに有し、
前記所定のルールが、
前記第２のサーバの負荷が所定の基準より高いと判定された場合には、前記第２のサーバへの既存且つ使用中のコネクションを、前記転送ルートとして決定し、
前記第２のサーバの負荷が前記所定の基準より低いと判定された場合には、前記第２のサーバへの新規なコネクションを、前記転送ルートとして決定する
ルールであることを特徴とする付記１記載の負荷分散装置。
【００６１】
（付記７）
前記所定のルールが、
前記第２のサーバへの既存且つ未使用のコネクションが存在すると判定された場合には、当該コネクションを、前記転送ルートとして決定し、
前記第２のサーバへの既存のコネクションには使用中のコネクションのみが存在すると判定された場合には、前記第２のサーバへの新規なコネクションを、前記転送ルートとして決定する
ルールであることを特徴とする付記１記載の負荷分散装置。
【００６２】
（付記８）
前記複数のサーバの負荷状況を判定する手段をさらに有し、
前記所定のルールが、
前記第２のサーバの負荷が所定の基準より高いと判定された場合には、前記第２のサーバへの既存且つ使用中の第１のコネクションを、前記転送ルートとして決定し、
前記第２のサーバの負荷が前記所定の基準より低く、且つ前記第２のサーバへの既存且つ未使用の第２のコネクションが存在すると判定された場合には、前記第２のコネクションを、前記転送ルートとして決定し、
前記第２のサーバの負荷が前記所定の基準より低く、且つ前記第２のサーバへの既存のコネクションには使用中のコネクションのみが存在すると判定された場合には、前記第２のサーバへの新規なコネクションを、前記転送ルートとして決定する
ルールであることを特徴とする付記１記載の負荷分散装置。
【００６３】
（付記９）
前記設定データには、転送先のサーバのアドレス及び通信ポートを示すデータが含まれていることを特徴とする
付記１記載の負荷分散装置。
【００６４】
（付記１０）
前記コネクション管理データ格納部には、処理要求元のユーザ端末のアドレス及び通信ポートと、転送先のサーバのアドレス及び通信ポートとの対応付けを示すデータが格納されており、
前記コネクション管理データ格納部に格納されているデータに基づき、ユーザ端末からの処理要求を前記複数のサーバのいずれかに転送する転送手段をさらに有し、
前記転送手段において、前記特定のユーザ端末からの一連の処理要求のうち、前記第１のサーバに異常が発生したことを検出する前における処理要求を、前記コネクション管理データ格納部に格納された前記第１のサーバのアドレス及び通信ポートに基づき前記第１のサーバへ転送し、前記第１のサーバに異常が発生したことを検出した後における処理要求を、前記コネクション管理データ格納部に格納された前記第２のサーバのアドレス及び通信ポートに基づき前記第２のサーバに転送することを特徴とする
付記１記載の負荷分散装置。
【００６５】
（付記１１）
複数のサーバのいずれかにユーザ端末からの処理要求を転送するための負荷分散プログラムであって、
前記複数のサーバに含まれる第１のサーバに異常が発生したことを検出した場合、処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求の新たな転送先として前記第１のサーバ以外の第２のサーバを前記複数のサーバから選択するステップと、
前記処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求を所定のルールに基づき決定された転送ルートを介して前記第２のサーバに転送するための設定データを生成し、コネクション管理データ格納部に格納するステップと、
をプロセッサに実行させるための負荷分散プログラム。
【００６６】
（付記１２）
前記転送ルートが、前記第２のサーバへの新規なコネクションであることを特徴とする付記１１記載の負荷分散プログラム。
【００６７】
（付記１３）
前記転送ルートが、前記第２のサーバへの既存且つ使用中のコネクションであることを特徴とする付記１１記載の負荷分散プログラム。
【００６８】
（付記１４）
前記転送ルートが、前記第２のサーバへの既存且つ未使用のコネクションであることを特徴とする付記１１記載の負荷分散プログラム。
【００６９】
（付記１５）
前記複数のサーバの負荷状況を判定するステップをさらに有し、
前記所定のルールが、
前記第２のサーバの負荷が所定の基準より高いと判定された場合には、前記第２のサーバへの既存且つ使用中の第１のコネクションを、前記転送ルートとして決定し、
前記第２のサーバの負荷が前記所定の基準より低く、且つ前記第２のサーバへの既存且つ未使用の第２のコネクションが存在すると判定された場合には、前記第２のコネクションを、前記転送ルートとして決定し、
前記第２のサーバの負荷が前記所定の基準より低く、且つ前記第２のサーバへの既存のコネクションには使用中のコネクションのみが存在すると判定された場合には、前記第２のサーバへの新規なコネクションを、前記転送ルートとして決定する
ルールであることを特徴とする付記１１記載の負荷分散プログラム。
【００７０】
（付記１６）
複数のサーバのいずれかにユーザ端末からの処理要求を転送するための負荷分散方法であって、
前記複数のサーバに含まれる第１のサーバに異常が発生したことを検出した場合、処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求の新たな転送先として前記第１のサーバ以外の第２のサーバを前記複数のサーバから選択するステップと、
前記処理要求の転送先が前記第１のサーバに設定されているユーザ端末からの処理要求を所定のルールに基づき決定された転送ルートを介して前記第２のサーバに転送するための設定データを生成し、コネクション管理データ格納部に格納するステップと、
を含みプロセッサにより実行される負荷分散方法。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施の形態におけるシステム構成図である。
【図２Ａ】第１のコネクション概念図である。
【図２Ｂ】第２のコネクション概念図である。
【図２Ｃ】第３のコネクション概念図である。
【図２Ｄ】第４のコネクション概念図である。
【図２Ｅ】第５のコネクション概念図である。
【図３Ａ】コネクション管理テーブルの構成及び格納されるデータの一例を示す第１の図である。
【図３Ｂ】コネクション管理テーブルの構成及び格納されるデータの一例を示す第２の図である。
【図３Ｃ】コネクション管理テーブルの構成及び格納されるデータの一例を示す第３の図である。
【図３Ｄ】コネクション管理テーブルの構成及び格納されるデータの一例を示す第４の図である。
【図３Ｅ】コネクション管理テーブルの構成及び格納されるデータの一例を示す第５の図である。
【図３Ｆ】コネクション管理テーブルの構成及び格納されるデータの一例を示す第６の図である。
【図４】本発明の一実施の形態における処理フローを示す第１の図である。
【図５】本発明の一実施の形態における処理フローを示す第２の図である。
【図６】本発明の一実施の形態における処理フローを示す第３の図である。
【符号の説明】
【００７２】
１  ネットワーク    ３，７，９，１１  ユーザ端末
５０  ＬＡＮ  ５１，５３，５５  Ｗｅｂサーバ
５７  ＤＢサーバ    ５９  トランザクション管理ＤＢ
１００  負荷分散装置    １１０  サーバ監視部
１２０  コネクション管理部    １３０  中継処理部
１４０  サーバ状態格納部      １５０  再設定方法格納部
１６０  コネクション管理テーブル
【図１】
2005322107.tif 000003
【図２Ａ】
2005322107.tif 000004
【図２Ｂ】
2005322107.tif 000005
【図２Ｃ】
2005322107.tif 000006
【図２Ｄ】
2005322107.tif 000007
【図２Ｅ】
2005322107.tif 000008
【図３Ａ】
2005322107.tif 000009
【図３Ｂ】
2005322107.tif 000010
【図３Ｃ】
2005322107.tif 000011
【図３Ｄ】
2005322107.tif 000012
【図３Ｅ】
2005322107.tif 000013
【図３Ｆ】
2005322107.tif 000014
【図４】
2005322107.tif 000015
【図５】
2005322107.tif 000016
【図６】
2005322107.tif 000017