(57)【要約】【課題】クライアントからの要求量の多寡に応じてサーバ台数を増減するＣｏＤ（Ｃａｐａｃｉｔｙ  ｏｎ  Ｄｅｍａｎｄ）システムにおいて、要求量の突発増に伴うシステムの過負荷、ひいてはそれに伴う応答時間の悪化、要求の破棄、システムの不安定化などを回避すること。【解決手段】クライアント１００とＣｏＤシステム１０２との間に中継制御装置１０３を設け、受け付けた処理要求をいったん蓄積するとともに、現在の処理能力を超える要求がＣｏＤシステム１０２に流入しないよう制御する。すなわちＣｏＤシステム１０２がサーバ増設中であるときは、増設完了まで、現在のサーバ台数で処理しきれない分の要求を中継制御装置１０３内に滞留させる。なお、増設完了時には、その時点での要求量およびその時点までに滞留された要求量を所定時間内に処理できるだけのサーバ１０２ｂが確保される。【選択図】        図１
2005250548.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからの処理要求の量に応じてサーバを動的に増設する情報処理システムへ前記処理要求を中継するための中継制御方法において、
前記情報処理システムが前記サーバを増設中であるか否かを判定する判定工程と、
前記判定工程で前記情報処理システムが前記サーバを増設中でないと判定された場合に、前記クライアントから受信した処理要求を前記情報処理システムへ中継する第１の中継工程と、
前記判定工程で前記情報処理システムが前記サーバを増設中であると判定された場合に、前記クライアントから受信した処理要求のうち前記増設前のサーバ台数で処理可能な量の処理要求だけを前記情報処理システムへ中継する第２の中継工程と、
を含むことを特徴とする中継制御方法。
【請求項２】
さらに、前記クライアントからの処理要求の量を予測する要求量予測工程と、
前記要求量予測工程で予測された処理要求の量から未来の特定の時点において必要な前記サーバの台数を算出する台数算出工程と、
前記台数算出工程で算出された台数を前記情報処理システムに通知する台数通知工程と、
を含むことを特徴とする前記請求項１に記載の中継制御方法。
【請求項３】
前記台数算出工程で算出される前記サーバの台数は、前記特定の時点において前記クライアントから受信する処理要求を所定時間内に処理するのに必要なサーバ台数と、前記特定の時点までに前記クライアントから受信されかつ前記情報処理システムに中継されていない処理要求を所定時間内に処理するのに必要なサーバ台数との和であることを特徴とする前記請求項２に記載の中継制御方法。
【請求項４】
前記所定時間は前記クライアント上のアプリケーションのタイムアウト時間を超えないことを特徴とする前記請求項３に記載の中継制御方法。
【請求項５】
クライアントからの処理要求の量に応じてサーバを動的に増設する情報処理システムへ前記処理要求を中継するための中継制御プログラムにおいて、
前記情報処理システムが前記サーバを増設中であるか否かを判定する判定工程と、
前記判定工程で前記情報処理システムが前記サーバを増設中でないと判定された場合に、前記クライアントから受信した処理要求を前記情報処理システムへ中継する第１の中継工程と、
前記判定工程で前記情報処理システムが前記サーバを増設中であると判定された場合に、前記クライアントから受信した処理要求のうち前記増設前のサーバ台数で処理可能な量の処理要求だけを前記情報処理システムへ中継する第２の中継工程と、
をコンピュータに実行させることを特徴とする中継制御プログラム。
【請求項６】
さらに、前記クライアントからの処理要求の量を予測する要求量予測工程と、
前記要求量予測工程で予測された処理要求の量から未来の特定の時点において必要な前記サーバの台数を算出する台数算出工程と、
前記台数算出工程で算出された台数を前記情報処理システムに通知する台数通知工程と、
をコンピュータに実行させることを特徴とする前記請求項５に記載の中継制御プログラム。
【請求項７】
前記台数算出工程で算出される前記サーバの台数は、前記特定の時点において前記クライアントから受信する処理要求を所定時間内に処理するのに必要なサーバ台数と、前記特定の時点までに前記クライアントから受信されかつ前記情報処理システムに中継されていない処理要求を所定時間内に処理するのに必要なサーバ台数との和であることを特徴とする前記請求項６に記載の中継制御プログラム。
【請求項８】
クライアントからの処理要求の量に応じてサーバを動的に増設する情報処理システムへ前記処理要求を中継するための中継制御装置において、
前記情報処理システムが前記サーバを増設中であるか否かを判定する判定手段と、
前記判定手段により前記情報処理システムが前記サーバを増設中でないと判定された場合に、前記クライアントから受信した処理要求を前記情報処理システムへ中継する第１の中継手段と、
前記判定手段により前記情報処理システムが前記サーバを増設中であると判定された場合に、前記クライアントから受信した処理要求のうち前記増設前のサーバ台数で処理可能な量の処理要求だけを前記情報処理システムへ中継する第２の中継手段と、
を備えることを特徴とする中継制御装置。
【請求項９】
さらに、前記クライアントからの処理要求の量を予測する要求量予測手段と、
前記要求量予測手段により予測された処理要求の量から未来の特定の時点において必要な前記サーバの台数を算出する台数算出手段と、
前記台数算出手段により算出された台数を前記情報処理システムに通知する台数通知手段と、
を備えることを特徴とする前記請求項８に記載の中継制御装置。
【請求項１０】
前記台数算出手段により算出される前記サーバの台数は、前記特定の時点において前記クライアントから受信する処理要求を所定時間内に処理するのに必要なサーバ台数と、前記特定の時点までに前記クライアントから受信されかつ前記情報処理システムに中継されていない処理要求を所定時間内に処理するのに必要なサーバ台数との和であることを特徴とする前記請求項９に記載の中継制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、クライアントからの処理要求をサーバへ中継する中継制御方法、中継制御プログラム、および中継制御装置に関する。
【背景技術】
【０００２】
近年、インターネット上のクライアント・サーバシステムにおいて、クライアントからの要求量に応じてサーバの台数を変化させるＣｏＤ（Ｃａｐａｃｉｔｙ  ｏｎ  Ｄｅｍａｎｄ）技術が普及しつつある。
【０００３】
この技術はインターネットを利用した各種サービスの増加と、定型業務のアウトソーシングビジネスの増加によって現実的になった。すなわち、前者はクライアントからサーバに対する要求量の変動が激しい（時に数桁にも達する）という性質を持つが、個々のサービス提供者が全要求を確実に処理できるだけの固定設備を用意するのは不可能に近い。一方、ＩＤＣ（Ｉｎｔｅｒｎｅｔ  Ｄａｔａ  Ｃｅｎｔｅｒ）を擁するような大規模なアウトソーシングビジネス提供者には、こうしたサービスを提供する顧客が多数集約されつつある。
【０００４】
そこでＣｏＤでは図８に示すように、クライアント・サーバシステムにおいて顧客ごとにサーバ群を用意するが、その一部または全部は必要に応じて共有サーバプールから貸し出されるようになっている。すなわち、ある顧客ｎのサービスに対するクライアント８００からの需要が多いときは、中継ネットワーク８０１を介してＣｏＤシステム８０２のＣｏＤシステム管理装置８０２ａは共有サーバプール内のサーバ８０２ｂを必要なだけ当該顧客に割り当て、需要が少ないときは返却させる。これにより、設備の有効活用や固定費用の削減をはかりつつ、サービスを安定的に供給することができる。
【０００５】
もっとも、このサーバの増設にはＯＳやアプリケーションの配備などに有限の時間が必要なため、その時間内（サーバ増設完了前）に多大なサービス要求が到来すると系が過負荷になり、応答時間が増大してサービスレベルが低下する、要求が破棄されビジネス機会の損失に繋がる、破棄された要求の再送が行われさらに負荷が増大するなどの問題があった。ＣｏＤでは平時のサーバ台数を抑えがちなため、要求量の突発増に弱く、こうした現象は従来の固定設備運用時に比べて起こりやすい。
【０００６】
この問題に関し、たとえば下記特許文献１に記載の従来技術では、要求の振り分けをサーバの負荷に応じて行うことで、サーバの利用偏りによる過負荷、ひいては受け付けた要求に対する応答時間の悪化を回避している。また、下記特許文献２に記載の従来技術では、要求をその優先度に応じて取捨選択することでサーバの過負荷を避けるとともに、選択された要求の応答時間の悪化を避けている。
【０００７】
【特許文献１】特開平７−６４８９２号公報
【特許文献２】特開２００３−２８３５５６号公報
【０００８】
なお、従来の一般的なＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ＲＦＣ１９４５、２６１６）プロキシは、クライアントからの要求をＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）レベルで終端するので、少なくともＴＣＰレベルでのタイムアウトによる要求の破棄は避けられる。上記のほか、サーバ増設のためのシステム自体を高速化して増設時間を短縮することや、増設必要量を予測してサーバを先行配備することで、少なくとも見た目の増設時間を短縮することなどが考えられている。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら上記特許文献１に記載の従来技術では、クライアントからの需要が多かったりサーバの増設時間が長かったりして、処理しきれない要求が長時間滞留（キューイング）された場合の考慮がない。そのため、ＨＴＴＰサービスなどのアプリケーションレベルでのタイムアウト発生により、要求が破棄されることは避けられない。このタイムアウト時間はアプリケーションやユーザに依存するが、たとえばＷＷＷページの閲覧要求は「８秒ルール」と言って、８秒程度で処理できないとキャンセルされてしまうことが知られている（タイムアウト時間は８秒と言える）。増設にたとえ６秒しかかからなかったとしても、その６秒間に滞留された要求の処理にさらに２秒以上要する場合は、やはりキャンセルされてしまう。
【００１０】
一方、上記特許文献２に記載の従来技術ではそもそも要求を滞留せず取捨選択するため、選択された一部の要求が処理されるだけで、残りは破棄されてしまう。また、従来のＨＴＴＰプロキシはアプリケーションレベルのタイムアウトまでは考慮していないため、要求が長時間滞留された場合は上記特許文献１に記載の従来技術と同様、破棄の発生を避けられない。サーバの増設時間を短縮しても、やはり増設中の要求量の変化には対応できず、また増設必要量を予測して先行配備を行っても、予測できない突発的な要求量の増大にはそもそも対応できないので、いずれにせよ破棄が発生しうる。
【００１１】
上記従来技術を組み合わせてもやはり要求の破棄は起こりうるし、いずれにせよ上記各技術では考慮されていない、アプリケーションレベルのタイムアウト発生による破棄は避けることができない。このように従来のＣｏＤ技術では、突発的な要求量の増大があった場合に要求の破棄や応答時間の悪化を避けることができないという問題点があった。
【００１２】
この発明は、上述した従来技術による問題点を解消するため、クライアントからの需要の増大に伴う処理要求の破棄および応答時間の悪化を防止することが可能な中継制御方法、中継制御プログラム、および中継制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、この発明にかかる中継制御方法、中継制御プログラム、および中継制御装置は、クライアントから受信した処理要求をＣｏＤシステム内のサーバへ中継するにあたって、当該システムがサーバを増設中でなければそのまま中継するが、増設中であれば受信した処理要求のうち、現在のサーバ台数で処理可能な量の要求だけを中継する（それを超える要求は滞留する）ことを特徴とする。
【００１４】
この発明によれば、ＣｏＤシステムがサーバの増設を終えるまでは、現状のシステムの処理能力を超える要求はその手前の中継制御装置に留め置かれるので、大量の要求が殺到することによるシステムの過負荷を回避することができる。
【００１５】
また、この発明にかかる中継制御方法、中継制御プログラム、および中継制御装置は、クライアントからの処理要求の量を予測して、この予測量から未来の特定の時点において必要なサーバの台数を算出するとともに、当該台数をＣｏＤシステムに通知することを特徴とする。
【００１６】
この発明によれば、ＣｏＤシステムは実際に要求量が処理能力を超える前にサーバの増設を開始できるので、要求が処理されないまま留め置かれる時間を短縮することができる。
【００１７】
また、この発明にかかる中継制御方法、中継制御プログラム、および中継制御装置は、未来の特定の時点、具体的にはサーバ増設完了時にクライアントから受信する（であろう）処理要求を所定時間内に処理するのに必要なサーバ台数と、当該時点までに受信はされていたもののＣｏＤシステムへは中継されていない処理要求（滞留分の処理要求）を所定時間内に処理するのに必要なサーバ台数との和を、当該時点において必要なサーバ台数とすることを特徴とする。
【００１８】
この発明によれば、サーバ増設の完了時に受信した処理要求はもちろん、増設開始から完了までの間に中継制御装置に留め置かれた滞留分の処理要求も、増設後のサーバにより所定時間内に処理される。
【００１９】
また、この発明にかかる中継制御方法は、上記所定時間がクライアント上のアプリケーションのタイムアウト時間を超えないことを特徴とする。
【００２０】
この発明によれば、サーバ増設前、増設中、あるいは増設後のいつ到来した処理要求であっても、ＨＴＴＰなどのアプリケーションのタイムアウトによって破棄されることはない（どの要求も少なくともタイムアウト前に処理されることが保証される）。
【発明の効果】
【００２１】
本発明にかかる中継制御方法、中継制御プログラム、および中継制御装置によれば、クライアントからの需要の増大に伴う処理要求の破棄および応答時間の悪化を防止することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明にかかる処理要求の中継制御方法、中継制御プログラム、および中継制御装置の好適な実施の形態を詳細に説明する。
【００２３】
図１は、この発明の実施の形態にかかる中継制御装置を含む、クライアント・サーバシステムの全体構成を示す説明図である。図中、クライアント１００はインターネットなどの中継ネットワーク１０１と、本発明にかかる中継制御装置１０３とを介して、ＣｏＤシステム１０２内のサーバ１０２ｂと通信する。なお、ここではサーバ１０２ｂはＷＷＷサーバであり、クライアント１００からのＨＴＴＰ要求に対してＨＴＴＰ返答を返すものとする。
【００２４】
また、ＣｏＤシステム管理装置１０２ａは後述のように、中継制御装置１０３（の台数計算部３０４）に指示して個々の顧客に必要なサーバ台数を計算させるとともに、当該台数が現在のサーバ台数を上回ったとき（増設が必要になったとき）は、共有サーバプール内のサーバ１０２ｂを必要台数だけ、当該顧客のサーバ群に追加する。この増設処理は具体的には、追加するサーバ１０２ｂへのＯＳの配備、サービスプログラムなどのアプリケーションの配備、ＩＰアドレスなどの各種設定、ロードバランサへの振り分け対象サーバの追加やＶＬＡＮ設定などのネットワーク機器の設定などからなる。
【００２５】
また、中継制御装置１０３はクライアント１００側から受け付けた要求のうち、現在のサーバ台数で処理しきれない分は積極的に装置内に滞留させる（ＣｏＤシステム１０２側へ中継しない）ことで、サーバ１０２ｂの過負荷を回避するための装置である。一般に、過負荷状態に陥るとサーバ１０２ｂの処理性能は急激に悪化するため、ＣｏＤシステム管理装置１０２ａによるサーバ増設が完了するまでは、現在のサーバ台数で処理できる以上の要求を敢えて中継制御装置１０３に滞留させる。これにより、過負荷に伴う応答時間の増大、要求の破棄、システムの不安定化といった問題を回避することができる。
【００２６】
図２は、この発明の実施の形態にかかる中継制御装置１０３のハードウエア構成を示す説明図である。図中、ＣＰＵ２０１は装置全体の制御を司る。ＲＯＭ２０２はブートプログラムなどを記憶している。ＲＡＭ２０３はＣＰＵ２０１のワークエリアとして使用される。
【００２７】
ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御にしたがって書き込まれたデータを記憶する。ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御にしたがって書き込まれたデータを記憶する。なお、ＦＤ２０７は着脱可能な記録媒体の一例であり、ＦＤ２０７の代わりにＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。
【００２８】
ディスプレイ２０８は、カーソル、ウィンドウ、アイコンなどをはじめ、文書や画像などの各種データを表示する。ネットワークＩ／Ｆ２０９はＬＡＮ／ＷＡＮなどのネットワークに接続され、当該ネットワークと装置内部とのデータの送受信を司る。キーボード２１０は、文字、数字、各種指示などの入力のための複数のキーを備え、押下されたキーに対応するデータを装置内部へ入力する。マウス２１１は本体下部のボールの回転量と回転方向、および本体上部の各ボタンのＯＮ／ＯＦＦを随時装置内部へ入力する。また、バス２００は上記各部を接続する。
【００２９】
次に、図３はこの発明の実施の形態にかかる中継制御装置１０３の構成を機能的に示す説明図である。図示するように中継制御装置１０３は、要求プール部３００、滞留制御部３０１、要求中継部３０２、要求計測部３０３および台数計算部３０４を備えている。また、台数計算部３０４はさらに予測台数計算部３０４ａおよび滞留分処理台数計算部３０４ｂを備えている。
【００３０】
まず、要求プール部３００はクライアント１００から、中継ネットワーク１０１を介してサーバ１０２ｂに対する要求を受信するとともに、受信した要求を一時的にプールする機能部である。
【００３１】
また、滞留制御部３０１は「滞留フラグ」を保持するとともに、当該フラグのＯＮ／ＯＦＦをＣｏＤシステム１０２からの指示に応じて切り替える機能部である。ＣｏＤシステム管理装置１０２ａは、サーバ増設の開始時に滞留指示を、終了時に放出指示を、それぞれ送信してくるので、滞留制御部３０１は図４に示すように、滞留指示を受信した場合は滞留フラグをＯＮに（ステップＳ４０１：Ｙｅｓ、ステップＳ４０２）、放出指示を受信した場合は滞留フラグをＯＦＦに（ステップＳ４０１：Ｎｏ、ステップＳ４０３：Ｙｅｓ、ステップＳ４０４）、それぞれ設定する。したがって滞留フラグは、ＣｏＤシステム１０２がサーバ増設処理に入っている間だけＯＮになる。なお、受信したのが滞留指示でも放出指示でもなかった場合は滞留制御部３０１は何もしない（ステップＳ４０１：Ｎｏ、ステップＳ４０３：Ｎｏ）。
【００３２】
図３の説明に戻り、次に要求中継部３０２は、要求プール部３００内の要求（もしあれば）を現在のサーバ台数で処理可能な量だけＣｏＤシステム１０２に中継（転送）する機能部である。
【００３３】
すなわち図５に示すように、要求プール部３００内に蓄積された要求があれば（ステップＳ５０１：Ｙｅｓ）、要求中継部３０２はその中から一つを取り出し、滞留制御部３０１内の滞留フラグのＯＮ／ＯＦＦを調べる。そして、滞留フラグ＝ＯＦＦであれば（ステップＳ５０２：Ｎｏ）、単に上記要求をＣｏＤシステム１０２側に転送する（ステップＳ５０７）。なお、このとき転送量を監視するためのカウンタに、実際に転送した要求量を加算する。
【００３４】
一方、滞留フラグ＝ＯＮである場合（ステップＳ５０２：Ｙｅｓ）、すなわちＣｏＤシステム１０２がサーバ増設処理の最中であるときは、現在のサーバ台数で処理可能な量の要求だけを転送し、それ以上の要求は要求プール部３００に留め置くようにする。
【００３５】
これを実現するため、上記カウンタの前回クリア時刻をｔｒに保持し、ｔｒから所定時間（ここでは１秒）が経過するごとに、上記カウンタのクリアとｔｒのセット（更新）を行う（ステップＳ５０３：Ｙｅｓ、ステップＳ５０４）。そして、要求プール部３００から取り出した要求は（１／処理可能量）秒だけ待った後に、その時点でカウンタの転送量が処理可能量以上となっていないことを条件に、ＣｏＤシステム１０２側へ転送される（ステップＳ５０５、ステップＳ５０６：Ｎｏ、ステップＳ５０７）。一方、転送量が処理可能量に達したときは（ステップＳ５０６：Ｙｅｓ）、何もせずステップＳ５０１に戻る。
【００３６】
なお、この後増設処理が終了すると、滞留フラグはＯＦＦになるとともに処理可能量はより大きなものとなり、要求プール部３００内の滞留量は漸減する。
【００３７】
図３の説明に戻り、次に要求計測部３０３は、本装置が中継ネットワーク１０１を介してクライアント１００から受信した、サーバ１０２ｂに対する要求の頻度（単位時間あたりの要求量）を計測する機能部である。ここで計測された頻度は、後述する台数計算部３０４によるサーバ台数の算出に用いられる。
【００３８】
次に、台数計算部３０４はＣｏＤシステム１０２からの指示に応じて、クライアント１００からの要求を所定時間内に処理するために必要なサーバ台数を算出する機能部である。
【００３９】
図６は、台数計算部３０４が上記台数を算出するのに用いる各パラメータの意味を示す説明図である。図中、アプリケーションのタイムアウト時間ｔｏ、配備開始時刻ｔｄｓ、滞留開始時刻ｔｐ、配備終了時刻ｔｄｆ、配備開始時サーバ台数ｓｄ１、サーバ処理量ｐは既知である（なお、以下では説明の便宜上ｔｄｓ＝ｔｐであるものとする）。また配備遅延時間ｔｄｄ、滞留分処理保証時間ｔｓｌａ、滞留分処理終了時刻ｔｐｆは、いずれも上記の既知の値から単純に計算して得られ、ｔｄｄ＝ｔｄｆ−ｔｐ、ｔｓｌａ＝ｔｏ−ｔｄｄ、ｔｐｆ＝ｔｄｆ＋ｔｓｌａである。
【００４０】
台数計算部３０４は以下で説明するように、配備開始時刻ｔｄｓの時点で配備終了時サーバ台数ｓｄ２（配備終了時刻ｔｄｆにおけるサーバ台数）を算出するが、そのためにはまず、配備終了時刻ｔｄｆにおける要求量が予測できていなければならない（増設完了時における要求量が分からなければどれだけサーバを増設すればよいのか分からない）。そこで本実施例では、配備開始後の任意の時刻ｔにおける要求量ｒ（ｔ）を、ｒ（ｔ）＝ａｔ＋ｂと線形近似して求める。ここで回帰係数ａおよびｂは、要求計測部３０３で計測された過去の要求頻度から、ｔｄｓにおける値を最小二乗法で算出する。
【００４１】
上述のように本装置は、ＣｏＤシステム１０２がサーバ１０２ｂの配備を終えるまで、現在の処理可能量を超える要求を滞留させるので、配備終了時刻ｔｄｆにおいて必要なサーバ台数は、ｔｄｆでの要求量を系の目標応答時間ｔｓｌｏ内に処理するのに必要なサーバ台数Ａと、ｔｄｆまでに滞留された要求を滞留分処理保証時間ｔｓｌａ内に処理するのに必要なサーバ台数Ｂとを合算したものとなる（すなわちｓｄ２＝Ａ＋Ｂ）。そして、台数計算部３０４内の予測台数計算部３０４ａが上記Ａを、滞留分処理台数計算部３０４ｂが上記Ｂを、それぞれ算出する機能部である。
【００４２】
まず、予測台数計算部３０４ａによるサーバ台数Ａの算出方法を説明する。系を待ち行列Ｍ／Ｍ／ｃ（要求はポアソン到着、指数分布のサービス時間、サーバ台数はｃ）と仮定し、到着率λ、サービス時間ｔｓ、利用率ρ＝λ・ｔｓとおくと、平均系内滞在時間Ｅ［Ｗ］は待ち行列Ｍ／Ｍ／ｃモデルの式より
【数１】
2005250548.tif 000003
によって求められる。そして、目標応答時間ｔｓｌｏ（この大きさは任意であるが、最大でもアプリケーションのタイムアウト時間ｔｏを超えないものとする）を達成するのに必要なサーバ台数Ａは、上式のλに予測される要求量ｒ（ｔ）を代入したとき、Ｅ［Ｗ］≦ｔｓｌｏを満足する最小の整数ｃである。
【００４３】
次に、滞留分処理台数計算部３０４ｂによるサーバ台数Ｂの算出方法を説明する。サーバ増設中に要求プール部３００に蓄積される要求量Ｑ（ｔ）は、増設中に到来した要求の総数∫ｒ（ｔ’）ｄｔ’（ｔｐ≦ｔ＜ｔｄｆ）から、従前のｓｄ１台で処理しきれた数（ｔｄｆ−ｔｐ）・ｐ・ｓｄ１を引いた数に等しいので、
【数２】
2005250548.tif 000004
【００４４】
これを滞留分処理保証時間ｔｓｌａ（＝タイムアウト時間ｔｏ−配備遅延時間ｔｄｄ）以内に処理するのに必要なサーバ数Ｂは、
【数３】
2005250548.tif 000005
を満足する最小の整数である。
【００４５】
次に、図７は台数計算部３０４によるサーバ台数の計算処理の手順を示す説明図である。ＣｏＤシステム管理装置１０２ａからサーバ台数の計算指示を受信すると（ステップＳ７０１：Ｙｅｓ。なお、この指示は定期的になされるものとする）、台数計算部３０４はまず配備終了時刻ｔｄｆにおける要求量を予測するため、要求計測部３０３により計測された過去の要求頻度から上述の回帰係数ａおよびｂを求める（ステップＳ７０２）。
【００４６】
次に台数計算部３０４は、その予測台数計算部３０４ａにより、上記ａ・ｂで特定される要求量ｒ（ｔ）を目標応答時間ｔｓｌｏ内で処理するのに必要なサーバ台数Ａを算出する（ステップＳ７０３）。また、これとともにその滞留分処理台数計算部３０４ｂにより、サーバ増設完了までに滞留された要求をタイムアウト前に処理するのに必要なサーバ台数Ｂを算出する（ステップＳ７０４）。そして、Ａ＋Ｂを配備終了時刻ｔｄｆにおけるサーバ台数ｓｄ２として、ＣｏＤシステム管理装置１０２ａに通知する（ステップＳ７０５）。
【００４７】
過去の要求頻度から予測される将来の要求量が、現在のサーバ台数ｓｄ１による処理量（＝ｓｄ１＊ｐ）以下である場合は、ステップＳ７０３で算出されるＡ≦ｓｄ１となる。また、この場合はそもそも要求が滞留しないので、ステップＳ７０４で算出されるＢ＝０となる。したがって、ステップＳ７０５で通知されるｓｄ２≦ｓｄ１となるので、ＣｏＤシステム管理装置１０２ａは増設処理を行わない（サーバ台数を減らすことはある）。
【００４８】
一方、予測される要求量が現在のサーバ台数ｓｄ１による処理量を超えた場合は、Ａ＞ｓｄ１、Ｂ＞０によりｓｄ２＞ｓｄ１となるので、ＣｏＤシステム管理装置１０２ａは差分すなわち（ｓｄ２−ｓｄ１）台のサーバ１０２ｂの増設処理に入る。そしてこの処理に入る時点で、中継制御装置１０３の滞留制御部３０１に滞留指示を出し、これを受けた滞留制御部３０１により滞留フラグがＯＮになるので、以後ＣｏＤシステム１０２への要求の中継は抑制され、現在の処理能力の範囲内で処理が続行される。
【００４９】
以上説明した実施の形態によれば、従来のＣｏＤシステム１０２で増設が間に合わない場合に発生していたサーバ１０２ｂの過負荷、ひいては過負荷に伴うサービスレベルの低下や、要求の破棄、系の不安定化などを、要求の積極的な滞留により回避することができる。しかも、増設後に到来する要求を目標応答時間内に処理することのほか、増設中に滞留する要求を最大でもアプリケーションのタイムアウト時間内に処理できるように、増設するサーバ台数を割り増しするので、要求の破棄を完全に防止できるとともに、応答時間の悪化にも歯止めをかけることができる。そしてこれにより、サービスの提供者はビジネス機会の損失を回避することができ、サービスの利用者は高品質で安定したサービスの供給を受けることができる。
【００５０】
なお、上述した実施の形態では台数計算部３０４を中継制御装置１０３内に設けたが、たとえばＣｏＤシステム管理装置１０２ａや、ＣｏＤシステム１０２を構成する他の機器上に設けるようにしてもよい。また、上述した台数計算部３０４では将来の要求量を、最小二乗法による線形予測で割り出したが、これ以外の別の予測手法を採用してもよい。さらに、サーバ台数をＭ／Ｍ／ｃモデルで計算しているが、シミュレーションを用いるなど別の計算手法を採用してもよい。
【００５１】
また、上述した実施の形態の要求中継部３０２は、ＣｏＤシステム１０２側へ出力する要求の量を監視するだけで順序は特に制御しないが（クライアント１００から受信した順に順次出力するのみ）、たとえば各要求に優先順位を付与し、優先度の高いものから順に転送するようにしてもよい。これにより、滞留が発生していても重要な要求は優先的に処理されることになる。
【００５２】
また、上述した実施の形態ではサーバ１０２ｂはＷＷＷサーバであるものとしたが、提供するサービスはＨＴＴＰに限らず、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ＲＦＣ９５９）、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ＲＦＣ８２１）、ＰＯＰ（Ｐｏｓｔ  Ｏｆｆｉｃｅ  Ｐｒｏｔｏｃｏｌ：ＲＦＣ１９３９）、Ｗｅｂサービスなどでもよい。また、クライアント１００からの要求は中継制御装置１０３を経由する必要があるが、サーバ１０２ｂからの応答は必ずしも中継制御装置１０３を通る必要はない（中継制御装置１０３を通さないことで、中継制御装置１０３がボトルネックとなることを回避できる）。
【００５３】
なお、本実施の形態で説明した中継制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク２０５、フレキシブルディスク２０７、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００５４】
（付記１）クライアントからの処理要求の量に応じてサーバを動的に増設する情報処理システムへ前記処理要求を中継するための中継制御方法において、
前記情報処理システムが前記サーバを増設中であるか否かを判定する判定工程と、
前記判定工程で前記情報処理システムが前記サーバを増設中でないと判定された場合に、前記クライアントから受信した処理要求を前記情報処理システムへ中継する第１の中継工程と、
前記判定工程で前記情報処理システムが前記サーバを増設中であると判定された場合に、前記クライアントから受信した処理要求のうち前記増設前のサーバ台数で処理可能な量の処理要求だけを前記情報処理システムへ中継する第２の中継工程と、
を含むことを特徴とする中継制御方法。
【００５５】
（付記２）さらに、前記クライアントからの処理要求の量を予測する要求量予測工程と、
前記要求量予測工程で予測された処理要求の量から未来の特定の時点において必要な前記サーバの台数を算出する台数算出工程と、
前記台数算出工程で算出された台数を前記情報処理システムに通知する台数通知工程と、
を含むことを特徴とする前記付記１に記載の中継制御方法。
【００５６】
（付記３）前記台数算出工程で算出される前記サーバの台数は、前記特定の時点において前記クライアントから受信する処理要求を所定時間内に処理するのに必要なサーバ台数と、前記特定の時点までに前記クライアントから受信されかつ前記情報処理システムに中継されていない処理要求を所定時間内に処理するのに必要なサーバ台数との和であることを特徴とする前記付記２に記載の中継制御方法。
【００５７】
（付記４）前記所定時間は前記クライアント上のアプリケーションのタイムアウト時間を超えないことを特徴とする前記付記３に記載の中継制御方法。
【００５８】
（付記５）クライアントからの処理要求の量に応じてサーバを動的に増設する情報処理システムへ前記処理要求を中継するための中継制御プログラムにおいて、
前記情報処理システムが前記サーバを増設中であるか否かを判定する判定工程と、
前記判定工程で前記情報処理システムが前記サーバを増設中でないと判定された場合に、前記クライアントから受信した処理要求を前記情報処理システムへ中継する第１の中継工程と、
前記判定工程で前記情報処理システムが前記サーバを増設中であると判定された場合に、前記クライアントから受信した処理要求のうち前記増設前のサーバ台数で処理可能な量の処理要求だけを前記情報処理システムへ中継する第２の中継工程と、
をコンピュータに実行させることを特徴とする中継制御プログラム。
【００５９】
（付記６）さらに、前記クライアントからの処理要求の量を予測する要求量予測工程と、
前記要求量予測工程で予測された処理要求の量から未来の特定の時点において必要な前記サーバの台数を算出する台数算出工程と、
前記台数算出工程で算出された台数を前記情報処理システムに通知する台数通知工程と、
をコンピュータに実行させることを特徴とする前記付記５に記載の中継制御プログラム。
【００６０】
（付記７）前記台数算出工程で算出される前記サーバの台数は、前記特定の時点において前記クライアントから受信する処理要求を所定時間内に処理するのに必要なサーバ台数と、前記特定の時点までに前記クライアントから受信されかつ前記情報処理システムに中継されていない処理要求を所定時間内に処理するのに必要なサーバ台数との和であることを特徴とする前記付記６に記載の中継制御プログラム。
【００６１】
（付記８）前記所定時間は前記クライアント上のアプリケーションのタイムアウト時間を超えないことを特徴とする前記付記７に記載の中継制御プログラム。
【００６２】
（付記９）クライアントからの処理要求の量に応じてサーバを動的に増設する情報処理システムへ前記処理要求を中継するための中継制御装置において、
前記情報処理システムが前記サーバを増設中であるか否かを判定する判定手段と、
前記判定手段により前記情報処理システムが前記サーバを増設中でないと判定された場合に、前記クライアントから受信した処理要求を前記情報処理システムへ中継する第１の中継手段と、
前記判定手段により前記情報処理システムが前記サーバを増設中であると判定された場合に、前記クライアントから受信した処理要求のうち前記増設前のサーバ台数で処理可能な量の処理要求だけを前記情報処理システムへ中継する第２の中継手段と、
を備えることを特徴とする中継制御装置。
【００６３】
（付記１０）さらに、前記クライアントからの処理要求の量を予測する要求量予測手段と、
前記要求量予測手段により予測された処理要求の量から未来の特定の時点において必要な前記サーバの台数を算出する台数算出手段と、
前記台数算出手段により算出された台数を前記情報処理システムに通知する台数通知手段と、
を備えることを特徴とする前記付記９に記載の中継制御装置。
【００６４】
（付記１１）前記台数算出手段により算出される前記サーバの台数は、前記特定の時点において前記クライアントから受信する処理要求を所定時間内に処理するのに必要なサーバ台数と、前記特定の時点までに前記クライアントから受信されかつ前記情報処理システムに中継されていない処理要求を所定時間内に処理するのに必要なサーバ台数との和であることを特徴とする前記付記１０に記載の中継制御装置。
【００６５】
（付記１２）前記所定時間は前記クライアント上のアプリケーションのタイムアウト時間を超えないことを特徴とする前記付記１１に記載の中継制御装置。
【産業上の利用可能性】
【００６６】
以上のように、本発明にかかる中継制御方法、中継制御プログラム、および中継制御装置は、ＣｏＤシステムへ処理要求を中継する用途に有用であり、特に要求量の変動が急激であるために、サーバの増設が間に合わずシステムが過負荷になりやすい場合に適している。
【図面の簡単な説明】
【００６７】
【図１】この発明の実施の形態にかかる中継制御装置を含む、クライアント・サーバシステムの全体構成を示す説明図である。
【図２】この発明の実施の形態にかかる中継制御装置１０３のハードウエア構成を示す説明図である。
【図３】この発明の実施の形態にかかる中継制御装置１０３の構成を機能的に示す説明図である。
【図４】滞留制御部３０１による滞留フラグのＯＮ／ＯＦＦの切替処理の手順を示すフローチャートである。
【図５】要求中継部３０２による処理要求の中継処理の手順を示すフローチャートである。
【図６】台数計算部３０４がサーバ台数を算出するのに用いる各パラメータの意味を示す説明図である。
【図７】台数計算部３０４によるサーバ台数の計算処理の手順を示す説明図である。
【図８】ＣｏＤシステムの概略を示す説明図である。
【符号の説明】
【００６８】
１００  クライアント
１０１  中継ネットワーク
１０２ａ  ＣｏＤシステム管理装置
１０２ｂ  サーバ
１０３  中継制御装置
２００  バス
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  ＨＤＤ
２０５  ＨＤ
２０６  ＦＤＤ
２０７  ＦＤ
２０８  ディスプレイ
２０９  ネットワークＩ／Ｆ
２１０  キーボード
２１１  マウス
３００  要求プール部
３０１  滞留制御部
３０２  要求中継部
３０３  要求計測部
３０４  台数計算部
３０４ａ  予測台数計算部
３０４ｂ  滞留分処理台数計算部
【図１】
2005250548.tif 000006
【図２】
2005250548.tif 000007
【図３】
2005250548.tif 000008
【図４】
2005250548.tif 000009
【図５】
2005250548.tif 000010
【図６】
2005250548.tif 000011
【図７】
2005250548.tif 000012
【図８】
2005250548.tif 000013