(57)【要約】【課題】運用状況に応じた適切な数の常設コネクションを確立することができるようにする。【解決手段】所定の期間を複数の時間帯に分割し、所定の期間を単位周期として繰り返したときの各周期における時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積する（ステップＳ１）。次に、蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定する（ステップＳ２）。そして、前記時間帯それぞれにおいて、時間帯に対して決定された最良常設コネクション数の常設コネクションを、サーバとの間で確立する（ステップＳ３）。【選択図】        図１
2004192233.tif 000002
【特許請求の範囲】
【請求項１】
サーバとの間で予め常設コネクションを確立させ、前記常設コネクションを使用して、クライアントからの処理要求を前記サーバに処理させるためのサーバ負荷分散プログラムにおいて、
コンピュータに、
所定の期間を複数の時間帯に分割し、前記所定の期間を単位周期として繰り返したときの各周期における前記時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積し、
蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定し、
前記時間帯それぞれにおいて、前記時間帯に対して決定された前記最良常設コネクション数の常設コネクションを、前記サーバとの間で確立する、
処理を実行させることを特徴とするサーバ負荷分散プログラム。
【請求項２】
過去の所定周期分の前記時間帯毎の前記履歴情報に関する統計的な解析を行い、解析結果に基づいて前記最良常設コネクション数を決定することを特徴とする請求項１記載のサーバ負荷分散プログラム。
【請求項３】
前記履歴情報として、前記時間帯内に必要とされた前記常設コネクションの最大数を蓄積することを特徴とする請求項１記載のサーバ負荷分散プログラム。
【請求項４】
サーバとサーバ負荷分散装置との間で予め常設コネクションを確立させ、前記常設コネクションを使用して、クライアントからの処理要求を前記サーバに処理させるためのサーバ負荷分散方法において、
所定の期間を複数の時間帯に分割し、前記所定の期間を単位周期として繰り返したときの各周期における前記時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積し、
蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定し、
前記時間帯それぞれにおいて、前記時間帯に対して決定された前記最良常設コネクション数の常設コネクションを、前記サーバと前記サーバ負荷分散装置との間で確立する、
ことを特徴とするサーバ負荷分散方法。
【請求項５】
サーバとの間で予め常設コネクションを確立させ、前記常設コネクションを使用して、クライアントからの処理要求を前記サーバに処理させるためのサーバ負荷分散装置において、
所定の期間を複数の時間帯に分割し、前記所定の期間を単位周期として繰り返したときの各周期における前記時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積する履歴蓄積手段と、
前記履歴蓄積手段で蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定する最良常設コネクション数決定手段と、
前記時間帯それぞれにおいて、前記時間帯に対して前記最良常設コネクション数決定手段において決定された前記最良常設コネクション数の常設コネクションを、前記サーバとの間で確立する常設コネクション確立手段と、
を有することを特徴とするサーバ負荷分散装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はクライアントからの処理要求を複数のサーバに分散処理させるサーバ負荷分散プログラム、サーバ負荷分散方法およびサーバ負荷分散装置に関し、特にサーバとの間に常設コネクションを確立するサーバ負荷分散プログラム、サーバ負荷分散方法およびサーバ負荷分散装置に関する。
【０００２】
【従来の技術】
インターネット等の大規模なネットワークを介してサービスを提供する場合、複数のサーバを用いてサービスが提供される。このとき、クライアントからの処理要求は、各サーバの負荷が均等になるように分散して処理されるのが望ましい。そこで、クライアントからの処理要求をサーバに振り分ける装置としてサーバ負荷分散装置がある。
【０００３】
サーバ負荷分散装置は、たとえば、インターネットと複数のサーバとの間に設置される。インターネットに接続されたクライアントからの処理要求は、一旦サーバ負荷分散装置に入力される。サーバ負荷分散装置は、各サーバの負荷の状態を監視しており、クライアントの出力した処理要求に対応する処理が可能なサーバのうち、負荷に余裕のあるサーバに対してその要求を送信する。これにより、サーバ間の負荷の均等化が図れ、多数のユーザに対して少ない遅延時間でサービスを同時に提供することができる。
【０００４】
このようなサーバ負荷分散装置におけるサーバへの処理要求の送信およびサーバからの処理結果の応答の受信は、ネットワーク上に張られたコネクション（論理的に設定された通信路）を用いて行う。通常、コネクションを用いた通信形態では、通信開始時にコネクション確立処理を行い、通信終了時にコネクションの切断処理を行う。
【０００５】
ところが、クライアントからの処理要求が必ずサーバ負荷分散装置経由でサーバに渡される構成の場合、クライアントからの処理要求に対する迅速な応答が求められる。その場合、サーバとサーバ負荷分散装置との間に予めコネクションを確立しておくことで、応答の迅速性を改善できる。
【０００６】
すなわち、事前にコネクションを確立しておけば、処理要求の送信時に、コネクションの確立処理を実行する必要が無くなる。その結果、クライアントからの処理要求をサーバへ高速に振り分けることができる。以下、予め確立するコネクションを常設コネクションと呼ぶこととする。
【０００７】
各サーバに対する常設コネクション数は、サーバ負荷分散装置内に予め定義しておく。サーバ負荷分散装置は、運用が開始されると、予め定義された数の常設コネクションを各サーバとの間で確立する。以後、システム運用中は、所定の数の常設コネクションが確立されたままとなり、処理要求の振り分け先のサーバが決定すると、そのサーバに対してすぐに（コネクション確立処理を経ずに）処理要求を送信できる。
【０００８】
このように、予め常設コネクションを設けておくことにより、クライアントからの処理要求が迅速にサーバに振り分けられる。なお、このような常設コネクションを確立する処理は、Ｗｅｂアクセラレーションの一機能として実施されている（たとえば、非特許文献１参照）。
【０００９】
【非特許文献１】
「ＩＰＣＯＭ  １００  取扱説明書」富士通株式会社  Ｐ３ＮＫ−Ｅ３３２−０２  ２００２年５月、ｐ．５２
【００１０】
【発明が解決しようとする課題】
しかし、従来は、適切な常設コネクション数の設定が困難であるという問題点があった。すなわち、実際には、システムの運用状況に応じて、適切な常設コネクション数は変動する。そのため、予想した運用状況と実際の運用状況とが大きく食い違った場合、常設コネクションの過不足が発生する。
【００１１】
常設コネクションが不足すると、クライアントからの要求を受け取った際に、振り分け先のサーバに対する常設コネクションが全て使用中となる。この場合、新規のコネクションを確立するか、もしくは、常設コネクションに空きが生じるまで待機する必要がある。そのため、常設コネクションが不足する事態が多発すると、処理要求に対する応答の迅速性が損なわれる。
【００１２】
また、常設コネクション数が多すぎると、不使用の常設コネクションが多数存続することとなり、サーバ負荷分散装置や各サーバにおけるメモリ等の資源が無駄に消費される。
【００１３】
本発明はこのような点に鑑みてなされたものであり、運用状況に応じた適切な数の常設コネクションを確立することができるサーバ負荷分散プログラム、サーバ負荷分散方法およびサーバ負荷分散装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示す様な処理をコンピュータに実行させるサーバ負荷分散プログラムが提供される。本発明に係るサーバ負荷分散プログラムは、サーバ３との間で予め常設コネクションを確立させ、常設コネクションを使用して、クライアント２からの処理要求をサーバ３に処理させるためのものである。本発明に係るサーバ負荷分散プログラムに従って、コンピュータは以下の処理を実行する。
【００１５】
まず、コンピュータは、所定の期間を複数の時間帯に分割し、所定の期間を単位周期として繰り返したときの各周期における時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積する（ステップＳ１）。次に、コンピュータは、蓄積された履歴情報に基づいて時間帯毎の最良常設コネクション数を決定する（ステップＳ２）。そして、コンピュータは、時間帯それぞれにおいて、時間帯に対して決定された最良常設コネクション数の常設コネクションを、サーバとの間で確立する（ステップＳ３）。
【００１６】
このようなサーバ負荷分散プログラムをコンピュータに実行させれば、時間帯毎に、過去の常設コネクションの使用状況に応じて算出された最良常設コネクション数の常設コネクションが確立される。
【００１７】
また、上記課題を解決するためにサーバとサーバ負荷分散装置との間で予め常設コネクションを確立させ、前記常設コネクションを使用して、クライアントからの処理要求を前記サーバに処理させるためのサーバ負荷分散方法において、所定の期間を複数の時間帯に分割し、前記所定の期間を単位周期として繰り返したときの各周期における前記時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積し、蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定し、前記時間帯それぞれにおいて、前記時間帯に対して決定された前記最良常設コネクション数の常設コネクションを、前記サーバと前記サーバ負荷分散装置との間で確立する、ことを特徴とするサーバ負荷分散方法が提供される。
【００１８】
このようなサーバ負荷分散方法によれば、時間帯毎に、過去の常設コネクションの使用状況に応じて算出された最良常設コネクション数の常設コネクションが確立される。
【００１９】
さらに、上記課題を解決するために、サーバとの間で予め常設コネクションを確立させ、前記常設コネクションを使用して、クライアントからの処理要求を前記サーバに処理させるためのサーバ負荷分散装置において、所定の期間を複数の時間帯に分割し、前記所定の期間を単位周期として繰り返したときの各周期における前記時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積する履歴蓄積手段と、前記履歴蓄積手段で蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定する最良常設コネクション数決定手段と、前記時間帯それぞれにおいて、前記時間帯に対して前記最良常設コネクション数決定手段において決定された前記最良常設コネクション数の常設コネクションを、前記サーバとの間で確立する常設コネクション確立手段と、を有することを特徴とするサーバ負荷分散装置が提供される。
【００２０】
このようなサーバ負荷分散装置によれば、履歴蓄積手段により、所定の期間が複数の時間帯に分割され、所定の期間を単位周期として繰り返したときの各周期における時間帯毎の過去の常設コネクションの使用状況を示す履歴情報が蓄積される。次に、最良常設コネクション数決定手段により、履歴蓄積手段で蓄積された履歴情報に基づいて時間帯毎の最良常設コネクション数が決定される。そして、常設コネクション確立手段により、時間帯それぞれにおいて、時間帯に対して最良常設コネクション数決定手段において決定された最良常設コネクション数の常設コネクションが、サーバとの間で確立される。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００２２】
図１は、実施の形態に適用される発明の概念図である。本発明では、サーバ負荷分散プログラムをコンピュータに実行させることで、サーバ負荷分散装置１が提供される。サーバ負荷分散装置１は、以下の処理を実行する。
【００２３】
まず、サーバ負荷分散装置１は、所定の期間を複数の時間帯に分割し、所定の期間を単位周期として繰り返したときの各周期における時間帯毎の過去の常設コネクションの使用状況を示す履歴情報１ａを蓄積する（ステップＳ１）。たとえば、１日を所定の期間とし、その期間を２４等分した１時間毎の常設コネクションの使用状況を履歴情報１ａに蓄積することができる。常設コネクションの使用状況としては、たとえば、任意の時間帯内に必要とされた常設コネクション数の最大値（必要常設コネクション数）を用いることができる。必要常設コネクション数は、たとえば、使用中の常設コネクション数と常設コネクションの空きを待っている処理要求数とを加算することで算出できる。
【００２４】
次に、サーバ負荷分散装置１は、蓄積された履歴情報１ａに基づいて時間帯毎の最良常設コネクション数を決定する（ステップＳ２）。最良常設コネクション数は、たとえば、過去の各周期での同一時間帯における必要常設コネクション数の平均値を用いることができる。
【００２５】
そして、サーバ負荷分散装置１は、各時間帯において、時間帯に対して決定された最良常設コネクション数の常設コネクションを、サーバとの間で確立する（ステップＳ３）。なお、ある時間帯に移行したときに、その時間帯の最良常設コネクション数よりも多くの常設コネクションが既に確立されている場合、余分な常設コネクションが切断される。
【００２６】
これにより、各サーバに対する常設コネクションの使用状況が履歴情報として格納され、その履歴情報に基づいて、時間帯毎の最良常設コネクション数が決定される。従って、運用状況の変化により常設コネクションの使用状況が変化すれば、その後の最良常設コネクション数も変更され、運用状況に応じて最適な数の常設コネクションが確立される。
【００２７】
すなわち、本発明では、履歴情報から時間帯ごとのネットワークの負荷状態が判別できる。そして、負荷が多くなれば、多くの常設コネクションを確立し、負荷が少なくなれば、少ない数の常設コネクションを確立することができる。このように、履歴情報から必要となる常設コネクション数を予測して、効果的な数の常設コネクションを確立することが可能となる。その結果、常に最適な数の常設コネクションを確立することで資源を効果的に使うことができ、システムの運用効率を向上させることができる。
【００２８】
しかも、常設コネクション数の計算は、サーバ負荷分散装置１において自動的に行われる。そのため、サーバ負荷分散装置１の運用管理者による常設コネクション数の設定操作が不要となり、運用管理者への作業負荷が軽減される。
【００２９】
以下に、本発明の実施の形態について具体的に説明する。
図２は、本発明の実施の形態に係るシステム構成例を示す図である。図２に示すように、サーバ負荷分散装置１００は、ネットワーク１０を介してサーバ２１０，２２０に接続されている。また、サーバ負荷分散装置１００は、ネットワーク２０を介してクライアント３１０，３２０に接続されている。
【００３０】
サーバ負荷分散装置１００は、サーバ２１０，２２０の負荷を監視し、クライアント３１０，３２０からの処理要求を負荷の少ないサーバに振り分けるコンピュータである。振り分けられた処理要求は、ネットワーク１０上に確立されている常設コネクションを利用し、該当するサーバに送信される。
【００３１】
サーバ２１０，２２０は、クライアント３１０，３２０からの処理要求に応じてデータ処理サービスを提供するコンピュータである。たとえば、アプリケーションサーバやウェブサーバである。
【００３２】
クライアント３１０，３２０は、ユーザの操作入力等に応答して、サーバ２１０，２２０に対する処理要求を出力するとともに、サーバ２１０，２２０からの応答をサーバ負荷分散装置１００経由で受信するコンピュータである。
【００３３】
図３は、本発明の実施の形態に用いるサーバ負荷分散装置のハードウェア構成例を示す図である。サーバ負荷分散装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６、および通信インタフェース１０７が接続されている。
【００３４】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００３５】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０８を介してＣＰＵ１０１に送信する。
【００３６】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、サーバ２１０，２２０との間でデータの送受信を行う。通信インタフェース１０７は、ネットワーク２０を介して、クライアント３１０，３２０との間でデータの送受信を行う。
【００３７】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、サーバ負荷分散装置１００のハードウェア構成を示したが、サーバ２１０，２２０やクライアント３１０，３２０も同様のハードウェア構成で実現することができる。なお、サーバ２１０，２２０やクライアント３１０，３２０には、通信インタフェースは少なくとも１つあればよい。
【００３８】
次に、サーバ負荷分散装置１００の内部機能について詳しく説明する。
図４は、サーバ負荷分散装置の機能を示すブロック図である。サーバ負荷分散装置１００は、通信制御部１１０、サーバ選択部１２０、常設コネクション管理部１３０、および履歴管理部１４０を有する。
【００３９】
通信制御部１１０は、ネットワーク１０やネットワーク２０を介して他の装置との間でデータ通信を行う。たとえば、通信制御部１１０は、クライアント３１０，３２０からサーバ負荷分散装置１００に送られた処理要求を受け取ったり、振り分け先のサーバへその処理要求を送信したりする。また、通信制御部１１０は、サーバ２１０，２２０から処理結果の応答を受け取ると、処理要求を出力したクライアントにその処理結果を送信する。
【００４０】
なお、通信制御部１１０は、サーバ選択部１２０に問い合わせることで、受信した処理要求の割り振り先となるサーバを知ることができる。また、通信制御部１１０は、常設コネクション管理部１３０からの通知により、処理要求の送信に用いる常設コネクションを判断することができる。
【００４１】
サーバ選択部１２０は、サーバ２１０，２２０の負荷を監視し、クライアント３１０，３２０から処理要求が送られてきたときに、その処理要求に応じた処理を実行可能なサーバのうち、負荷の少ないサーバを選択する。サーバ選択部１２０は、選択結果を通信制御部１１０に通知する。
【００４２】
常設コネクション管理部１３０は、サーバ毎の常設コネクションの確立と切断とを管理する。そのために、常設コネクション管理部１３０は、サーバ毎の常設コネクション運用状況記憶部１３１、常設コネクション選択部１３２および常設コネクション確立・切断部１３３を有している。
【００４３】
常設コネクション運用状況記憶部１３１は、サーバ毎の常設コネクションの運用状況を表す情報を記憶するための記憶機能である。常設コネクション運用状況記憶部１３１には、常設コネクション最大使用数１３１ａ、常設コネクション最大不足数１３１ｂ、確立済常設コネクション数１３１ｃ、常設コネクション使用数１３１ｄ、および常設コネクション不足数１３１ｅが格納される。これらの情報は、ネットワーク１０を介して接続されたサーバ２１０，２２０毎に設けられている。
【００４４】
常設コネクション最大使用数１３１ａは、現在の時刻を含む時間帯における常設コネクションの最大使用数である。なお、図７〜図９では、常設コネクション最大使用数１３１ａの値を「Ａ」とする。
【００４５】
常設コネクション最大不足数１３１ｂは、現在の時刻を含む時間帯における常設コネクション不足数の最大値である。なお、図７〜図９では、常設コネクション最大不足数１３１ｂの値を「Ｂ」とする。
【００４６】
確立済常設コネクション数１３１ｃは、各サーバに対して現時点で確立している常設コネクション数である。なお、図７〜図９では、確立済常設コネクション数１３１ｃの値を「Ｃ」とする。
【００４７】
常設コネクション使用数１３１ｄは、各サーバの間で現時点で使用している常設コネクションの数である。なお、図７〜図９では、常設コネクション使用数１３１ｄの値を「Ｄ」とする。
【００４８】
常設コネクション不足数１３１ｅは、各サーバに関して現在振り分けられている処理要求に対し、常設コネクションが不足している数である。なお、図７〜図９では、常設コネクション不足数１３１ｅの値を「Ｅ」とする。
【００４９】
常設コネクション選択部１３２は、処理要求に対して割り当てる常設コネクションを選択する。また、常設コネクション選択部１３２は、常設コネクションの選択によって常設コネクションの使用状況が変化すると、常設コネクション運用状況記憶部１３１内の該当する情報を更新する。
【００５０】
常設コネクション確立・切断部１３３は、所定の時間帯の切替時に、次の時間帯に設定されている最良常設コネクション数の分だけ常設コネクションが確立されるように、常設コネクションの確立もしくは切断処理を行う。また、常設コネクション確立・切断部１３３は、常設コネクションの確立または切断によって常設コネクションの使用状況が変化すると、常設コネクション運用状況記憶部１３１内の該当する情報を更新する。
【００５１】
履歴管理部１４０は、時間帯毎の過去の必要常設コネクション数が履歴情報として格納されている。また、履歴管理部１４０には、時間帯毎の最良常設コネクション数も管理している。そのために、履歴管理部１４０には、サーバ毎の常設コネクション数履歴テーブル１４１と履歴テーブル更新部１４２とが設けられている。
【００５２】
常設コネクション数履歴テーブル１４１には、所定の期間（たとえば１日）を単位周期とし、各周期を所定の時間帯（たとえば、１時間毎の時間帯）で分割したときの時間帯毎の必要常設コネクション数が、履歴情報として記録されている。履歴情報は、所定周期分（たとえば、過去１週間分）記録されている。
【００５３】
履歴テーブル更新部１４２は、時間帯の切替タイミングで、常設コネクション管理部１３０から常設コネクション運用状況記憶部１３１内の常設コネクション最大使用数１３１ａや、常設コネクション最大不足数１３１ｂを取得し、常設コネクション数履歴テーブル１４１内の情報を更新する。
【００５４】
図５は、常設コネクション数履歴テーブルのデータ構造例を示す図である。常設コネクション数履歴テーブル１４１には、時間帯（Ｔ）、必要常設コネクション数、および最良常設コネクション数の欄が設けられている。
【００５５】
時間帯（Ｔ）の欄には、所定の期間（たとえば１日）を単位周期とし、その単位周期を所定数に分割（たとえば、２４等分）したときの、分割後の時間帯が示される。図５の例では、時間帯をｎ個に分割したときのそれぞれの時間帯をＴ１，Ｔ２，・・・，Ｔｎ（ｎは自然数）と示している。
【００５６】
必要常設コネクション数の欄には、過去の該当時間帯における必要常設コネクション数が履歴情報として設定される。必要常設コネクション数は、常設コネクション最大使用数１３１ａと常設コネクション最大不足数１３１ｂとの和である。図５の例では、過去ｍ周期分（ｍは自然数）の履歴が保存されており、過去の必要常設コネクション数をＭｉ［ｊ］と表している。ｉは時間帯を示し、１以上ｎ以下の自然数である。ｊは履歴情報の順番（古い履歴情報ほど数値が大きな数値となる）を示し、１以上ｍ以下の自然数である。
【００５７】
最良常設コネクション数は、時間帯毎の過去の必要常設コネクション数に基づいて計算した最良の常設コネクション数である。ここで、最良の常設コネクション数とは、常設コネクションが不足したときの処理要求に対する応答の遅延、常設コネクションが過多となったときのサーバ負荷分散装置やサーバの無駄な資源消費等を勘案して、システムの運用効率が最良となる常設コネクション数である。たとえば、過去の必要常設コネクション数の平均値を最良常設コネクション数とすることができる。図５の例では、時間帯毎の最良常設コネクション数をＰ１，Ｐ２，・・・，Ｐｎと表している。
【００５８】
なお、所定要求に対する応答の迅速性を重視する場合には、過去の必要常設コネクション数のうちの最も大きな値を、最良常設コネクション数としてもよい。また、サーバ負荷分散装置やサーバの資源の有効利用を重視する場合には、過去の必要常設コネクション数のうちの最も小さな値を、最良常設コネクション数としてもよい。
【００５９】
以上のような構成のサーバ負荷分散装置１００において、処理要求がサーバに振り分けられると共に、適宜、最良の数の常設コネクションをサーバとの間で確立する処理が行われる。
【００６０】
図６は、サーバ負荷分散装置の処理実行タイミングを示す図である。図６では、横軸に時間進行を示している。単位周期がｎ個の時間帯Ｔ１〜Ｔｎに分割されている。各時間帯において最良常設コネクション数が算定され、各時間帯毎の最良常設コネクション数分の常設コネクションが確立される。そして、常設コネクションを用いて、処理要求に応じた処理の振り分けや応答の受信処理が行われる。
【００６１】
たとえば、時間帯ＴＸの間にクライアントからの処理要求を受信すると、サーバ負荷分散装置１００において処理要求振り分け処理（ステップＳ１０）が実行される。その後、サーバから処理要求に対する応答を受信すると、サーバ負荷分散装置１００において、応答転送処理（ステップＳ２０）が実行される。
【００６２】
また、時間帯ＴＸから時間帯ＴＸ＋１に移行する際には、サーバ負荷分散装置１００において常設コネクション確立・切断処理（ステップＳ３０）が実行される。以下、各処理の詳細をフローチャートを参照して説明する。まず、処理要求振り分け処理（図６のステップＳ１０）について説明する。
【００６３】
図７は、処理要求振り分け処理の手順を示すフローチャートである。なお、処理要求振り分け処理は、サーバ負荷分散装置１００に対してクライアントからの処理要求が入力された際に実行される。以下、図７に示す処理をステップ番号に沿って説明する。
【００６４】
［ステップＳ１１］サーバ選択部１２０が振り分け先のサーバを決定する。具体的には、サーバ負荷分散装置１００に入力された処理要求は、通信制御部１１０で受け取られる。通信制御部１１０は、処理要求の内容をサーバ選択部１２０に通知して、振り分け先の決定を依頼する。サーバ選択部１２０は、各サーバの負荷状況を監視しており、処理要求に応じた処理を実行可能なサーバのうち、負荷の少ないサーバを振り分け先に決定する。そして、サーバ選択部１２０は、決定したサーバの識別情報を通信制御部１１０に渡す。
【００６５】
［ステップＳ１２］常設コネクション選択部１３２が、未使用の常設コネクションの有無を判断する。具体的には、まず、通信制御部１１０から常設コネクション管理部１３０へ、振り分け先となるサーバの識別情報と、コネクションの選択要求を出す。すると、常設コネクション管理部１３０内の常設コネクション選択部１３２が、振り分け先のサーバの確立済常設コネクション数１３１ｃと常設コネクション使用数１３１ｄとを比較する。
【００６６】
比較の結果、確立済常設コネクション数１３１ｃの値が大きければ、未使用常設コネクションありと判断する。また、比較の結果、確立済常設コネクション数１３１ｃと常設コネクション不足数１３１ｅとが同じ値であれば、未使用常設コネクションなしと判断される。
【００６７】
未使用常設コネクションがある場合、処理がステップＳ１３に進められる。未使用常設コネクションが無い場合、処理がステップＳ１６に進められる。
［ステップＳ１３］未使用常設コネクションがある場合、常設コネクション選択部１３２は、振り分け先のサーバとの間で確立された常設コネクションのうち未使用のものを選択する。そして、常設コネクション選択部１３２は、振り分け先のサーバに関する常設コネクション使用数１３１ｄの値に１を加算する（Ｄ＝Ｄ＋１）。
【００６８】
［ステップＳ１４］常設コネクション選択部１３２は、振り分け先のサーバに関する常設コネクション最大使用数１３１ａと常設コネクション使用数１３１ｄとを比較する（Ｄ＞Ａ？）。常設コネクション使用数１３１ｄの方が大きければ処理がステップＳ１５に進められ、そうでなければ処理がステップＳ１９に進められる。
【００６９】
［ステップＳ１５］常設コネクション選択部１３２は、常設コネクション使用数１３１ｄの値を、常設コネクション最大使用数１３１ａに設定する（Ａ＝Ｄ）。その後、処理がステップＳ１９に進められる。
【００７０】
［ステップＳ１６］未使用常設コネクションがない場合、常設コネクション選択部１３２は、振り分け先のサーバとの間で確立された使用中の常設コネクションの１つを、入力された処理要求の送信用の常設コネクションとして選択する。
【００７１】
この場合、常設コネクションの多重使用となる。常設コネクションが多重使用されると、現在実行中の通信が終了するまで、後の処理要求に応じた処理が待機状態となる。そして、現在実行中の通信が終了すると、待機状態の処理要求に応じた通信が、該当する常設コネクションを用いて実行される。
【００７２】
［ステップＳ１７］常設コネクション選択部１３２は、振り分け先のサーバに関する常設コネクション不足数１３１ｅと常設コネクション最大不足数１３１ｂとを比較する（Ｅ＞Ｂ？）。常設コネクション不足数１３１ｅの方が大きければ処理がステップＳ１８に進められ、そうでなければ処理がステップＳ１９に進められる。
【００７３】
［ステップＳ１８］常設コネクション選択部１３２は、常設コネクション不足数１３１ｅの値を、常設コネクション最大不足数１３１ｂに設定する（Ｂ＝Ｅ）。
【００７４】
［ステップＳ１９］振り分け先のサーバとの間で確立された常設コネクションを用いて処理要求が送信される。
具体的には、常設コネクション選択部１３２により、ステップＳ１３またはステップＳ１６で選択された常設コネクションが通信制御部１１０に通知される。通信制御部１１０は、未使用の常設コネクションが選択された場合には、その常設コネクションを用いて処理要求を送信する。また、通信制御部１１０は、使用中の常設コネクションが選択された場合には、その常設コネクションに対して先に割り当てられた処理要求に応じた通信が終了後、今回受け付けた処理要求を、該当する常設コネクションを用いて送信する。
【００７５】
次に、応答転送処理（図６のステップＳ２０）について説明する。
図８は、応答転送処理の手順を示すフローチャートである。この処理は、処理要求を送信したサーバからその処理要求に対応する応答が返されたときに実施される。以下、図８に示す処理をステップ番号に沿って説明する。
【００７６】
［ステップＳ２１］常設コネクション選択部１３２は、応答の受信に使用された常設コネクションが多重使用中の常設コネクションか否かを判断する。
具体的には、サーバから送られた応答は、通信制御部１１０で受け取られる。通信制御部１１０は、応答の受信に使用された常設コネクションが多重使用中の常設コネクションか否かを判断する。
【００７７】
多重使用中の常設コネクションでなければ、処理がステップＳ２２に進められる。多重使用中の常設コネクションであれば、処理がステップＳ２３に進められる。
【００７８】
［ステップＳ２２］常設コネクション選択部１３２は、応答を返したサーバに関する常設コネクション使用数１３１ｄの値を１減算する（Ｄ＝Ｄ−１）。その後、処理がステップＳ２４に進められる。
【００７９】
［ステップＳ２３］常設コネクション選択部１３２は、応答を返したサーバに関する常設コネクション不足数１３１ｅの値を１減算する（Ｅ＝Ｅ−１）。
［ステップＳ２４］通信制御部１１０は、サーバからの応答を、対応する処理要求を出力したクライアントに対して送信する。
【００８０】
次に、常設コネクション確立・切断処理（図６のステップＳ３０）について説明する。
図９は、常設コネクション確立・切断処理の手順を示すフローチャートである。この処理は、時間帯が切り替わる際に実行される。以下、時間帯ＴＸから時間帯ＴＸ＋１に切り替わったときを例に採り、図９に示す処理をステップ番号に沿って説明する。
【００８１】
［ステップＳ３１］履歴テーブル更新部１４２は、時間帯ＴＸから時間帯ＴＸ＋１への切替時刻になると、時間帯ＴＸにおける最新の必要常設コネクション数を算出する。必要常設コネクション数は、常設コネクション最大使用数１３１ａと常設コネクション最大不足数１３１ｂとを加算した値である（Ｍｘ［ｙ］＝Ａ＋Ｂ）。
【００８２】
たとえば、最新の必要常設コネクション数をＭｘ［１］とする。そして、既に登録されている必要常設コネクション数のうち最先に登録されたもの（必要常設コネクション数の全履歴数が７であればＭｘ［７］に登録されていた値）を削除する。その他の必要常設コネクション数を示す履歴情報は、順番（履歴の古さ）が１ずつ繰りあがる。
【００８３】
［ステップＳ３２］履歴テーブル更新部１４２は、過去の所定期間内の時間帯ＴＸの必要常設コネクション数の平均値を算出し、最良常設コネクション数として設定する（ＰＸ＝（Ｍｘ［１］＋・・・＋Ｍｘ［ｍ］／ｍ）。
【００８４】
［ステップＳ３３］常設コネクション確立・切断部１３３は常設コネクション数履歴テーブル１４１を参照し、時間帯ＴＸ＋１の最良常設コネクション数から確立済常設コネクション数１３１ｃを減算した結果が０より大きいか否かを判断する（ＰＸ−１−Ｃ＞０）。減算結果が０より大きい場合には、処理がステップＳ３４に進められる。減算結果が０以下の場合には、処理がステップＳ３５に進められる。
【００８５】
［ステップＳ３４］常設コネクション確立・切断部１３３は、不足分の常設コネクションを新たに確立する。時間帯ＴＸ＋１の最良常設コネクション数から確立済常設コネクション数１３１ｃを減算した結果が、常設コネクションの不足分である。その後、処理がステップＳ３６に進められる。
【００８６】
［ステップＳ３５］常設コネクション確立・切断部１３３は、余剰分の未使用常設コネクションを切断する。確立済常設コネクション数１３１ｃから時間帯ＴＸ＋１の最良常設コネクション数を減算した結果の絶対値が、常設コネクションの余剰分である。
【００８７】
なお、常設コネクション確立・切断部１３３は、時間帯ＴＸ＋１の最良常設コネクション数以上の常設コネクションが使用中の場合（未使用の常設コネクション数が余剰分に満たない場合）、使用中の常設コネクションの使用が終了したとき（未使用状態に移行したとき）に、余剰分の常設コネクションの切断処理を行う。
【００８８】
［ステップＳ３６］常設コネクション確立・切断部１３３は、常設コネクション運用状況記憶部１３１内の値を、時間帯ＴＸ＋１用の値に更新（初期化）する。具体的には、常設コネクション確立・切断部１３３は、常設コネクション使用数１３１ｄの値を、常設コネクション最大使用数１３１ａに設定する（Ａ＝Ｄ）。常設コネクション確立・切断部１３３は、常設コネクション不足数１３１ｅの値を、常設コネクション最大不足数１３１ｂに設定する（Ｂ＝Ｅ）。さらに、常設コネクション確立・切断部１３３は、確立済常設コネクション数１３１ｃの値を更新する。
【００８９】
なお、図９に示す常設コネクション確立・切断処理は、サーバ毎に個別に実施される。
このように、実際の運用状況に応じて時間帯毎の最良常設コネクション数を適宜計算することで、システムの運用状況を反映させて、最良の数の常設コネクションを確立することができる。
【００９０】
ここで、１日を１時間毎の時間帯に区切り、常設コネクション数を切り替えるための所定の時間帯としたときの最良常設コネクションの設定例について説明する。なお、常設コネクション数履歴テーブル１４１には、過去１週間分の必要常設コネクション数の履歴情報が格納されているものとする。
【００９１】
図１０は、常設コネクション数履歴テーブルの登録情報の一例を示す図である。図１０の例では、１日（２４時間で１周期）が２４等分され、０時から１時、１時から２時、・・・、２３時から２４時の時間帯に分割されている。そして、各時間帯毎に、過去７周期分（１週間分）の必要常設コネクション数が設定されている。たとえば、０時から１時の時間帯では、１日前の必要常設コネクション数が「１０」、２日前の必要常設コネクション数が「９」、３日前の必要常設コネクション数が「１３」、４日前の必要常設コネクション数が「９」、５日前の必要常設コネクション数が「８」、６日前の必要常設コネクション数が「１４」、７日前の必要常設コネクション数が「７」である。
【００９２】
本実施の形態では、過去の履歴として設定された必要常設コネクション数の平均値を最良常設コネクション数とする。０時から１時の時間帯では、最良常設コネクション数は「１０」である。なお、必要常設コネクション数の平均値を計算したときの小数点以下は、四捨五入するものとする。
【００９３】
図１０に示したような値が常設コネクション数履歴テーブル１４１に設定されているとき、日付が変わり時刻が０時に達したとき、常設コネクション運用状況記憶部１３１内の情報が更新される。
【００９４】
ここで、０時時点の常設コネクション使用数が「８」の場合、情報更新直後の常設コネクション運用状況記憶部１３１における常設コネクション最大使用数１３１ａは「８」、常設コネクション最大不足数１３１ｂは「０」、確立済常設コネクション数１３１ｃは「１０」、常設コネクション使用数１３１ｄは「８」、常設コネクション不足数１３１ｅは「０」である。
【００９５】
常設コネクション運用状況記憶部１３１内の各値は、システムの運用状況（対応するサーバへの処理要求の振り分け状況）に応じて変化する。
図１１は、運用状況に応じた常設コネクション運用状況記憶部内の情報の遷移例を示す図である。図１１では、縦軸に、常設コネクション運用状況記憶部１３１の各情報の値（コネクション数）をとり、横軸に時刻を取っている。
【００９６】
常設コネクション最大使用数１３１ａの変化は、２点鎖線３１で示されている。常設コネクション最大不足数１３１ｂの変化は、１点鎖線３２で示されている。確立済常設コネクション数１３１ｃの変化は、点線３３で示されている。常設コネクション使用数１３１ｄの変化は、実線３４で示されている。常設コネクション不足数１３１ｅの変化は、破線３５で示されている。
【００９７】
図１１の例では、時刻ｔ１に、常設コネクションが１コネクションだけ不足している。また、時刻ｔ２には、常設コネクションが２コネクションだけ不足している。
【００９８】
このような状況で運用されると、時刻が１時になり時間帯が切り替わる際に、常設コネクション数履歴テーブル１４１の内容が更新される。
図１２は、更新後の常設コネクション数履歴テーブルを示す図である。図１２の例では、０時から１時の時間帯における最近の必要常設コネクション数として「１２」が設定されている。７回前の履歴情報は削除され、その他の既登録の履歴情報がそれぞれ１段古い履歴情報になっている。
【００９９】
そして、更新後の必要常設コネクション数の履歴情報に基づいて最良常設コネクション数が計算され、値が「１１」に更新されている。すなわち、今回の周期における必要常設コネクション数が平均より多かったため、最良常設コネクション数が増加している。
【０１００】
以上のように、過去の常設コネクションの利用状況を統計的に解析することで、運用状況に応じた最適な数の常設コネクションを確立することができる。
なお、上記の説明では、処理要求の送信に使用すべき未使用常設コネクションが無い場合、常設コネクションの多重使用を行っているが、非常設のコネクションを新たに確立してもよい。その場合、同時期に確立された非常設のコネクション数が、常設コネクション不足数となる。
【０１０１】
また、上記の説明では、予定した数の常設コネクションを確実に確立できるものとして説明しているが、システムの運用状況によっては、予定している数の常設コネクションを確立できない場合もある。その場合、常設コネクションの多重使用が発生しても、確立に失敗した常設コネクションの分は、常設コネクション不足数に換算しないものとする。すなわち、最良常設コネクション数分の常設コネクションが正常に確立できていれば防ぐことのできた多重使用は、常設コネクションの不足とはみなさないものとする。
【０１０２】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、サーバ負荷分散装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）などがある。
【０１０３】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０４】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０５】
（付記１）  サーバとの間で予め常設コネクションを確立させ、前記常設コネクションを使用して、クライアントからの処理要求を前記サーバに処理させるためのサーバ負荷分散プログラムにおいて、
コンピュータに、
所定の期間を複数の時間帯に分割し、前記所定の期間を単位周期として繰り返したときの各周期における前記時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積し、
蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定し、
前記時間帯それぞれにおいて、前記時間帯に対して決定された前記最良常設コネクション数の常設コネクションを、前記サーバとの間で確立する、
処理を実行させることを特徴とするサーバ負荷分散プログラム。
【０１０６】
（付記２）  過去の所定周期分の前記時間帯毎の前記履歴情報に関する統計的な解析を行い、解析結果に基づいて前記最良常設コネクション数を決定することを特徴とする付記１記載のサーバ負荷分散プログラム。
【０１０７】
（付記３）  前記履歴情報として、前記時間帯内に必要とされた前記常設コネクションの最大数を蓄積することを特徴とする付記１記載のサーバ負荷分散プログラム。
【０１０８】
（付記４）  前記時間帯内に必要とされた前記常設コネクションの最大数は、前記時間帯内の任意の時刻における前記常設コネクションの使用数と前記常設コネクションの空きを待つ前記処理要求の数との加算値のうちの最大値であることを特徴とする付記３記載のサーバ負荷分散プログラム。
【０１０９】
（付記５）  過去の所定周期分の前記常設コネクションの最大数の平均値を前記最良常設コネクション数とすることを特徴とする付記３記載のサーバ負荷分散プログラム。
【０１１０】
（付記６）  サーバとサーバ負荷分散装置との間で予め常設コネクションを確立させ、前記常設コネクションを使用して、クライアントからの処理要求を前記サーバに処理させるためのサーバ負荷分散方法において、
所定の期間を複数の時間帯に分割し、前記所定の期間を単位周期として繰り返したときの各周期における前記時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積し、
蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定し、
前記時間帯それぞれにおいて、前記時間帯に対して決定された前記最良常設コネクション数の常設コネクションを、前記サーバと前記サーバ負荷分散装置との間で確立する、
ことを特徴とするサーバ負荷分散方法。
【０１１１】
（付記７）  サーバとの間で予め常設コネクションを確立させ、前記常設コネクションを使用して、クライアントからの処理要求を前記サーバに処理させるためのサーバ負荷分散装置において、
所定の期間を複数の時間帯に分割し、前記所定の期間を単位周期として繰り返したときの各周期における前記時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積する履歴蓄積手段と、
前記履歴蓄積手段で蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定する最良常設コネクション数決定手段と、
前記時間帯それぞれにおいて、前記時間帯に対して前記最良常設コネクション数決定手段において決定された前記最良常設コネクション数の常設コネクションを、前記サーバとの間で確立する常設コネクション確立手段と、
を有することを特徴とするサーバ負荷分散装置。
【０１１２】
（付記８）  サーバとの間で予め常設コネクションを確立させ、前記常設コネクションを使用して、クライアントからの処理要求を前記サーバに処理させるためのサーバ負荷分散プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
所定の期間を複数の時間帯に分割し、前記所定の期間を単位周期として繰り返したときの各周期における前記時間帯毎の過去の常設コネクションの使用状況を示す履歴情報を蓄積し、
蓄積された前記履歴情報に基づいて前記時間帯毎の最良常設コネクション数を決定し、
前記時間帯それぞれにおいて、前記時間帯に対して決定された前記最良常設コネクション数の常設コネクションを、前記サーバとの間で確立する、
処理を実行させることを特徴とするサーバ負荷分散プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１１３】
【発明の効果】
以上説明したように本発明では、時間帯毎の過去の常設コネクションの使用状況に応じて最良常設コネクション数を決定し、決定された最良常設コネクション数の常設コネクションをサーバとの間で確立するようにした。そのため、運用状況に応じて常に最良の数の常設コネクションをサーバとの間で確立しておくことができる。
【図面の簡単な説明】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態に係るシステム構成例を示す図である。
【図３】本発明の実施の形態に用いるサーバ負荷分散装置のハードウェア構成例を示す図である。
【図４】サーバ負荷分散装置の機能を示すブロック図である。
【図５】常設コネクション数履歴テーブルのデータ構造例を示す図である。
【図６】サーバ負荷分散装置の処理実行タイミングを示す図である。
【図７】処理要求振り分け処理の手順を示すフローチャートである。
【図８】応答転送処理の手順を示すフローチャートである。
【図９】常設コネクション確立・切断処理の手順を示すフローチャートである。
【図１０】常設コネクション数履歴テーブルの登録情報の一例を示す図である。
【図１１】運用状況に応じた常設コネクション運用状況記憶部内の情報の遷移例を示す図である。
【図１２】更新後の常設コネクション数履歴テーブルを示す図である。
【符号の説明】
１  サーバ負荷分散装置
２  クライアント
３  サーバ
１０，２０  ネットワーク
１００  サーバ負荷分散装置
１１０  通信制御部
１２０  サーバ選択部
１３０  常設コネクション管理部
１４０  履歴管理部
２１０，２２０  サーバ
３１０，３２０  クライアント
【図１】
2004192233.tif 000003
【図２】
2004192233.tif 000004
【図３】
2004192233.tif 000005
【図４】
2004192233.tif 000006
【図５】
2004192233.tif 000007
【図６】
2004192233.tif 000008
【図７】
2004192233.tif 000009
【図８】
2004192233.tif 000010
【図９】
2004192233.tif 000011
【図１０】
2004192233.tif 000012
【図１１】
2004192233.tif 000013
【図１２】
2004192233.tif 000014