(57)【特許請求の範囲】
【請求項１】
コンピュータ・ネットワークに接続されたサーバであって、
前記サーバで実行される１つ以上のアクティブなサーバ・アプリケーションと、
前記サーバ・アプリケーションの負荷を測定する測定手段と、
前記サーバ・アプリケーションの現在測定された第１の負荷と、前記サーバ・アプリケーションの所定時間前に測定された第２の負荷とに基づいて、前記サーバで実行されるサーバ・アプリケーションを追加してアクティブにする追加手段と
を含み、
前記追加手段は、前記第２の負荷に対する前記第１の負荷と前記第２の負荷との差分の比が、現在の容量レベルに対する前記第１の負荷の比に応じて変動する閾値を超えたときに、前記サーバ・アプリケーションを追加してアクティブにする
サーバ。
【請求項２】
前記測定されたサーバ・アプリケーションの負荷に応じて、前記追加されたサーバ・アプリケーションをデアクティブまたはアクティブにする負荷バランス手段
を含む請求項１に記載のサーバ。
【請求項３】
前記測定されたサーバ・アプリケーションの負荷に応じて、前記サーバ・アプリケーションを終了させて取り除く取り除き手段
を含む請求項１に記載のサーバ。
【請求項４】
サーバ内部に多数のサーバ・アプリケーションを適合させる方法であって、
前記サーバにより、
１つ以上のアクティブなサーバ・アプリケーションを実行するステップと、
前記１つ以上のアクティブなサーバ・アプリケーションの負荷を測定するステップと、
前記サーバ・アプリケーションの現在測定された第１の負荷と、前記サーバ・アプリケーションの所定時間前に測定された第２の負荷とに基づいて、前記サーバで実行されるサーバ・アプリケーションを追加してアクティブにするステップと
を含み、
前記追加するステップは、前記第２の負荷に対する前記第１の負荷と前記第２の負荷との差分の比が、現在の容量レベルに対する前記第１の負荷の比に応じて変動する閾値を超えたときに、前記サーバ・アプリケーションを追加する
方法。
【請求項５】
前記サーバ・アプリケーションの負荷を測定するステップは、ＣＰＵ利用率の測定、セッション利用率のパーセンテージの測定、および需要の変化率の測定から選択されるグループのうちの１つ以上を測定する
請求項４に記載の方法。
【請求項６】
前記アクティブにするステップは、
前記サーバにより、前記サーバ・アプリケーションの追加のために、オペレーティング・システムをロードするステップと、オペレーティング・システムをコンフィギュレートするステップ
を含む
請求項４に記載の方法。
【請求項７】
前記サーバにより、前記測定されたサーバ・アプリケーションの負荷に応じて、前記サーバ・アプリケーションを終了させて取り除くステップ
を含む請求項４に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンピュータ・ネットワーク一般に関連し、より具体的にはコンピュータ・ネットワーク上での自動適合に関連する。
【０００２】
【従来の技術】
図１は、クライアント１１０およびサーバ１３０を接続しているコンピュータ・ネットワーク１０５を示している。コンピュータ・ネットワーク１０５は、例えばインターネットなどの公衆ネットワーク（public network）であってもよいし、またはＬＡＮ、ＭＡＮ、ＷＡＮなどの私設ネットワークであってもよい。クライアント１１０は、例えばパーソナル・コンピュータ、携帯型インターネット端末、インターネット接続可能なテレビ端末、またはインターネット接続可能な携帯電話などのコンピュータである。サーバ１３０は、例えばインターネット上でウェブサイトのホストとして機能する。サーバ１３０は、いくつかのコンピュータ（この数をＭとする）で冗長的に準備されたサーバ・アプリケーション１１５を含む。参照番号１１５−１から１１５−Ｍまでの各サーバ・アプリケーションは、ステートレスで（stateless;すなわち動作がサーバ・アプリケーション１１５−１から１１５−Ｍまでの履歴的な状態に依存しない）同一である。負荷バランサー１２０は、コンピュータ・ネットワーク１０５とサーバ・アプリケーション（１１５−１から１１５−Ｍ）との間を連結する。負荷バランサー１２０は、客観的なやり方でサーバ・アプリケーション１１５への接続を経路設定する。クライアント１１０が（参照番号１１５−１から１１５−Ｍまでのサーバ・アプリケーションの冗長インスタンス（redundant instance）のうちの特定の１つを差別することなしに、全体に）サーバ・アプリケーション１１５に接続を要求するとき、負荷バランサー１２０は、その要求を受信し、最低の負荷のサーバ・アプリケーション１１５にその要求を送信する。図示するように、サーバ・アプリケーションは、別個の集中データベース１２５に選択的に接続する。代替的に、各サーバ・アプリケーション１１５は、データベース１２５自身の複製を含む場合がある。負荷バランサー１２０およびデータベース１２５は、サーバ・アプリケーション１１５と共にコンピュータ・ネットワーク１０５上でクライアント１１０に対して１個のエンティティ（サーバ１３０）として見える。
【０００３】
【発明が解決しようとする課題】
図１に示すサーバ１３０は、需要におけるサージ（surge;急増）に対処する設備が整っていない。このサージは、無数の理由によって生じる。例えば、コンピュータ・ネットワーク１０５が（インターネットのように）非常に動的である場合、ウェブサイト・サーバの利用パターンは、極めて変わりやすく、急激な変化を受ける。しばしばウェブサイトに対する需要は、その人気が急激に増加するにつれて急増する。サージの到来と期間は、予測するのが困難である。サージが発生するとき、全ユーザに対して提供されるサービスのレベルが大幅に低下し、ウェブサイトのユーザの間に回線の切断（disconnect）が生じる。このサージに起因するサービスの低下は、ユーザが遅い応答を許容するのを拒否するか、接続要求が否定されるので、ウェブサイトの最初の人気をうち消し、最初の人気を単なる一時的なものとする。サージが広告における投資またはその他の幸運に起因する場合、サービスの低下は、投資または幸運から生じる何らかの期待される利益を制限することがある。
【０００４】
図１の機構では、サージを処理するために２つのアプローチが存在する。第１のアプローチは、サーバ・アプリケーション１１５の過剰供給（over-provision）である。すなわち、十分な数のサーバ・アプリケーション１１５が、ピーク需要を処理するために設けられる。このアプローチの欠点は、将来のサージを処理するのに必要なサーバ・アプリケーション１１５の数を正確に予測することが困難なことにある。このアプローチのもう１つの欠点は、サーバ・アプリケーション１１５のいくつかが大多数の時間にアイドル（空き）になっていることである。このため、過剰供給は効果的に計画することが困難であり、効果的に計画された場合ですら極端に非効率である。
【０００５】
第２のアプローチは、サージに対する手動対応である。このアプローチによると、サーバ容量を超過する需要に対して人間のオペレータが注意をはらい、追加のサーバ・アプリケーション１１５を手動で購入する。このアプローチは、いくつかの観点で深刻な制約を受ける。第１に、需要のサージと新しいサーバ・アプリケーションとの間にかなりのタイムラグが存在する。第２に、一旦新しいサーバ・アプリケーションが購入されると、割当てを維持し、低い需要の期間にアイドルさせることになる。したがって、手動対応は、サージを処理するのに遅く、非効率である。
【０００６】
【課題を解決するための手段】
第１の観点では、本発明は、コンピュータ・ネットワークに接続されるサーバである。このサーバは、１つまたは複数のアクティブなサーバ・アプリケーション、負荷検出器、イナクティブ（inactive；非アクティブ）である追加サーバ・アプリケーション、およびアロケータを含む。負荷検出器（負荷バランサーの一部であってよい）は、１つまたは複数のサーバ・アプリケーションおよびコンピュータ・ネットワークに接続される。アロケータは、負荷状態に応答して追加サーバ・アプリケーションをアクティブにする。
【０００７】
別の観点では、本発明は、論理サーバ内部のサーバ・アプリケーションの数を適合させる方法である。この方法は、サーバ上の負荷を測定し、負荷がしきい値を超過したときを検出し、それに応答して、サーバ上の追加サーバ・アプリケーションをアクティブにする。選択的に、この方法は、負荷がデアクティブしきい値以下であるときを検出し、それに応答して追加サーバ・アプリケーションを作動しないようにする。
【０００８】
さらに別の観点では、本発明は、複数のコンピュータ、１つまたは複数のサーバへの１つまたは複数のコネクション、およびモジュールを含む。コンピュータのそれぞれは、サーバ・アプリケーションをホストすることができる。モジュールは、コンピュータおよびコネクションに接続される。モジュールは、サーバの１つから追加サーバ・アプリケーションに対する要求を受け取る。その様な要求は、例えばサーバがサージを経験しているときに生成される。要求に応答して、モジュールは、要求しているサーバをサポートするよう１つまたは複数のコンピュータでサーバ・アプリケーションをアクティブにする。
【０００９】
既知の先行技術と比較して、本発明の実施形態は、下記のいくつかまたは全てを含む利点を実現することができる。
【００１０】
（１）人間の介在がほとんど無いかまたは全く無しに、サーバ需要におけるサージを自動的に受け入れる。
【００１１】
（２）サージに起因するサービスの低下期間を最小化して、サーバ需要におけるサージをすばやく受け入れる。
【００１２】
（３）サーバのリソースを割当て、有効に使用することができる。言い換えると、無駄な過剰容量が最小化されるか、または除かれる。
【００１３】
本分野の当業者は、以下の図面を参照して以下の詳細な好ましい実施形態の記述を読むことにより、本発明の様々な利益および利点を理解するであろう。
【００１４】
【発明の実施の形態】
図２は、本発明の１つの実施形態に従ってクライアント１１０およびサーバ２３０を接続するコンピュータ・ネットワーク１０５を示す。図１のサーバ１３０と同様のサーバ２３０は、負荷バランサー１２０および複数のサーバ・アプリケーション（１１５−１から１１５−Ｍ）を含む。しかしながら、サーバ１３０と異なり、サーバ２３０は、システム・アロケータ２０５および追加サーバ・アプリケーション１１５−Ｎを付加的に含む。初期状態では、サーバ・アプリケーション１１５は、図示するようにＭ個のシステムによって冗長的に提供される。追加サーバ・アプリケーション１１５−Ｎは、最初オフラインであり、この使用に利用されない。好ましくは追加サーバ・アプリケーション１１５−Ｎが走るコンピュータは、電源が入っているが、関連するソフトウェアをロードされていない。初期状態では、追加サーバ・アプリケーション１１５−Ｎが走るコンピュータは、ロードされなくてもよく、追加サーバ・アプリケーション１１５−Ｎがオンラインになるときに割り込まれる他のソフトウェアを実行してよい。追加サーバ・アプリケーション１１５−Ｎは、サーバ２３０（またはその他のサーバ２３０）の所有者ではなくて、好ましくはコンピュータ・ベンダによって所有される。初期状態中、追加サーバ・アプリケーション１１５−Ｎがオフラインであるとき、サーバ２３０の所有者は、追加サーバ・アプリケーション１１５−Ｎに対して課金されない。１つの課金技術によると、サーバ２３０の所有者は、下に示すように追加サーバ・アプリケーション１１５−Ｎがオンラインになってオンラインを維持するときだけ、追加サーバ・アプリケーション１１５−Ｎの使用料を支払う。別の課金技術によると、サービス需要の減少に起因してオフライン状態に戻ってサーバ２３０のための割り込み可能ソフトウェア・アプリケーションが走っていたとしても、サーバ２３０の所有者は、サーバ・アプリケーション１１５−Ｎがサーバ２３０の所有者のために使用中である全時間に対して支払いを行う。追加サーバ・アプリケーション１１５−Ｎは、その他のサーバ２３０から離れて配置され、専用コネクション（例えばデータ線、モデム電話回線）によってか、またはコンピュータ・ネットワーク１０５若しくは別のネットワークを通じて該その他のサーバ２３０に接続される。例えば、追加サーバ・アプリケーション１１５―Ｎは、コンピュータ・ベンダの構内に配置される場合がある。
【００１５】
システム・アロケータ２０５は、負荷検出器かまたは負荷バランサー１２０内の負荷測定ユニットに接続される。システム・アロケータ２０５は、負荷検出器によって測定される負荷を監視し、負荷が超過したときに追加サーバ・アプリケーション１１５−Ｎをアクティブにする信号を発する。システム・アロケータは、好ましくは負荷が低下したときに追加サーバ・アプリケーション１１５−Ｎを作動させないようにもする（デアクティブにする；deactivate）。
【００１６】
図３は、システム・アロケータ２０５の詳細なブロック図である。システム・アロケータ２０５は、アクティブしきい値比較器３１０、デアクティブしきい値比較器３２０、選択リモート通信機３３０、および制御モジュール３４０を含む。負荷バランサー１２０における負荷検出器からの負荷データは、アクティブしきい値比較器３１０とデアクティブしきい値比較器３２０の両方に入力される。負荷がアクティブしきい値以上の場合、アクティブしきい値比較器３１０は、アクティブ信号をアサートする。負荷がデアクティブしきい値以下の場合、デアクティブしきい値比較器３２０は、デアクティブ信号をアサートする。アクティブ信号およびデアクティブ信号の両方は、ローカル追加サーバ・アプリケーション１１５−Ｎおよび／またはリモート追加サーバ・アプリケーション１１５−Ｎに接続される。リモート追加サーバ・アプリケーション１１５−Ｎへのコネクションは、リモート通信器３３０（これは、例えばモデム、シリアルバス・インターフェース、またはネットワーク・インターフェースであり、コンピュータ・ネットワーク１０５の可能性もある）を介する。制御モジュール３４０は、アクティブおよびデアクティブ信号並びに追加サーバ・アプリケーションからの通知を受信する。制御モジュール３４０（これは、好ましくはマイクロ・プロセッサかまたはマイクロ・コントローラである）は、一般にシステム・アロケータ２０５の機能を制御する。例えば、制御モジュール３４０は、下に示すように（図示しないコネクションによって）アクティブしきい値およびデアクティブしきい値を設定することができる。本分野の当業者は、まさに説明するようにシステム・アロケータ２０５のコンポーネントのいくつかまたは全てが負荷バランサー１２０に組み合わされて、結果として機能拡張された負荷バランサーとなっていることを理解するであろう。
【００１７】
アクティブおよびデアクティブしきい値は、以下で説明する３つの技術を含む様々な態様で設定される。第１の技術によれば、各サーバ・アプリケーションは、受け入れ可能なサービスを提供する間に１秒あたりにいくつの数のコネクション（Ｃ）を処理することができるかを知られている。負荷検出器は、秒を単位とする期間（Ｐ）にわたって受信された１秒あたりの平均コネクション数（Ｒ）をアクティブおよびデアクティブしきい値比較器（３１０、３２０）に周期的に送信する。アクティブしきい値比較器３１０は、下記の表のいずれかの行の状態が真であるときにアクティブ信号をアサートする。ここで、Ｒは、負荷検出器からの現在の１秒あたりのコネクション数の測定値であり、Ｃは、各サーバ・アプリケーションが処理することができる１秒あたり最大コネクション数である。Ｍは、現在オンラインのサーバ・アプリケーションの数であり、ｒは、過去のある時間（例えば１０分前）から測定された１秒あたりのコネクション数である。
【００１８】
【表１】
0005137281.tif 000002
【００１９】
第１の列は、正規化された現在の容量レベルを表している。第３の列は、サービスに対して需要が変化する率を表している。しきい値（例えば０．２５、０．５、０．６７、０．３３）は、実施により変化してもよい。
【００２０】
デアクティブしきい値比較器３２０は、好ましくは以前の１０分間（これは、この文書全体において実例となる期間として述べられる）に対してＲ／（Ｃ＊Ｍ）＜０．８０ＡＮＤ（Ｒ−ｒ）／ｒ≦０であるときに、現在アクティブなサーバ・アプリケーションの１％に対してデアクティブ信号をアサートする。
【００２１】
第２の技術によると、システム・アロケータ２０５は、全オンライン・サーバ・アプリケーションが１０分間に９０％以上のＣＰＵ使用率のときにアクティブ信号をアサートし、全オンライン・サーバ・アプリケーションが１０分間に８０％未満のＣＰＵ使用率のときにデアクティブ信号をアサートする。ここで、使用したような８０％および９０％のパーセンテージは、説明のための値である。しきい値は、実施により変えることができる。
【００２２】
第３の技術によれば、各サーバ・アプリケーションは、処理することができるユーザセッションまたはログインの数を知られている。システム・アロケータ２０５は、全オンライン・サーバ・アプリケーションが１０分間にセッション容量の９０％以上であるときにアクティブ信号をアサートし、全オンライン・サーバ・アプリケーションが１０分間にセッション容量の８０％未満であるときにデアクティブ信号をアサートする。
【００２３】
図４は、本発明に従う方法４００のフローチャートである。方法４００は、サーバで負荷データを測定する（４０５）。方法４００は、アクティブしきい値と負荷とを比較する（４１０）。負荷がアクティブしきい値未満であれば、方法４００は、測定ステップ４０５に戻り、何のアクションも取らない。負荷がアクティブしきい値を超過していれば、そのとき、方法４００は、負荷をサービスするのを助けるために追加サーバ・アプリケーションを要求する（４１５）。次に方法４００は、必要なソフトウェアをインストールする（４２０）。インストール・ステップ４２０は、オペレーティング・システムおよび／または他の予め必要なソフトウェアをインストールし、サーバ・アプリケーションをインストールしてコンフィギュレートするサブステップも含む。サーバ・アプリケーションが準備され作動可能なときに、方法４００は、サーバの準備ができたことを通知する。この時に、負荷が１つまたは複数のサーバ・アプリケーションによってサービスされ、それによりサーバ・アプリケーションあたりの負荷が低減される。方法４００は、負荷データを測定し（４３０）、デアクティブしきい値と比較（４３５）し続ける。負荷がデアクティブしきい値未満のときにサーバ・アプリケーションが終了され（４４０）、取り除かれる（４４５）。予め必要なソフトウェアの全てまたはいくつかも同様に取り除かれる（４４５）。方法４００は、それから可能な繰り返しのために測定ステップ４０５に戻る。
【００２４】
図５は、本発明の実施形態に従うスタンバイ・ウェアハウス５１０を図示する。スタンバイ・ウェアハウス５１０は、コンピュータ５２０−１から５２０−Ｋまでの多くの（この数をＫとする）コンピュータを含む。コンピュータ５２０のそれぞれは、多くのおそらく異なるサーバ５３０のうちのいずれかのためにサーバ・アプリケーションをホストする準備を整えている。通信および制御モジュール５４０は、サーバ５３０から追加サーバ・アプリケーションの要求を受信し、これらの要求を利用可能なコンピュータ５２０にマッチングする。通信および制御モジュール５４０は、好ましくはどのサーバ５３０がどのコンピュータ５２０を使用しているかをログし、かつ請求に基づく使用のために利用の長さをログする。使用例のように、コンピュータ５２０−１は、サーバ５３０−Ｘがサージを経験するときにサーバ・アプリケーションＸと共にロードされることができる。サーバＸのサージが収まったときに、追加サーバ・アプリケーションＸは、コンピュータ５２０−１上でデアクティブにされる。その結果、コンピュータ５２０−１は、他のサーバ５３０上でのサージを処理するのを助けるために利用することができる。サーバ５３０Ｘがサージを経験する次の時に、通信および制御モジュール５４０は、異なるコンピュータ５２０（利用可能で有れば５２０−２とする）を提供することによって、追加サーバ・アプリケーションの要求に応えることができる。したがって、スタンバイ・ウェアハウス５１０は、多数の可能性のあるサーバのためにサージを効率的に処理することができ、それらが最も必要とされるときにいつでもコンピューティング・リソースを提供することができる。
【００２５】
ここに記述し説明してきたものは、その変形と共に本発明の好ましい実施形態である。ここで使用された用語、記述、図は、説明を通じて述べられたが、それらに制限されることを意味してはいない。具体的には、単一の追加サーバ・アプリケーション１１５−Ｎしか述べなかったけれども、本発明の原理は、直列または並列のいずれでもオンラインで任意の数の追加サーバ・アプリケーションを持ってくることができる。本分野の当業者は、この発明の精神および範囲内で多くの他の変形が可能であることを理解するであろう。これらの変形は、請求の範囲およびそれらと同等のものによって定められることを意図されている。請求の範囲においての全ての用語は、特に示されない限り幅広い妥当な意味を表している。
【００２６】
例として、本発明は以下の実施形態も含む。
【００２７】
（１）コンピュータ・ネットワーク１０５に接続されたサーバ２３０であって、
１つまたは複数のアクティブなサーバ・アプリケーション１１５と、
前記１つまたは複数のサーバ・アプリケーション１１５および前記コンピュータ・ネットワーク１０５に接続された負荷検出器と、
イナクティブである追加サーバ・アプリケーション１１５と、
前記負荷検出器および前記追加サーバ・アプリケーションに接続されたアロケータ２０５と、を含み、該アロケータ２０５が負荷状態に応答して該追加サーバ・アプリケーションをアクティブにする前記サーバ２３０。
【００２８】
（２）前記負荷検出器に接続された負荷バランサー１２０を含む（１）に記載のサーバ２３０。
【００２９】
（３）各サーバ・アプリケーション１１５が別個のコンピュータ上で走る（１）に記載のサーバ２３０。
【００３０】
（４）前記追加サーバ・アプリケーション１１５が電源ＯＮの状態である（１）に記載のサーバ２３０。
【００３１】
（５）前記アロケータ２０５が負荷しきい値コンパレータ３１０を含む（１）に記載のサーバ２３０。
【００３２】
（６）サーバ２３０内部に多数のサーバ・アプリケーション１１５を適合させる方法４００であって、
サーバ２３０上の負荷を測定するステップ４０５と、
負荷がアクティブしきい値を超過するときを検出するステップ４１０と、を含み、
前記検出ステップ４１０に応答して前記サーバ２３０上で追加サーバ・アプリケーション１１５をアクティブにする方法。
【００３３】
（７）前記負荷測定ステップ４０５は、ＣＰＵ利用率の測定、セッション利用率のパーセンテージの測定、および需要の変化率の測定から選択されるグループのうちの１つまたは複数を含む（６）に記載の方法。
【００３４】
（８）前記アクティブにするステップ４２０は、前記追加サーバ・アプリケーション１１５上でオペレーティング・システムをロードするステップと、オペレーティング・システムをコンフィギュレートするステップと、を含む（６）に記載の方法。
【００３５】
（９）前記点火するステップは、前記追加サーバ・アプリケーション１１５を要求するためにコンピュータ・ベンダに電気的にコンタクトするステップを含む（６）に記載の方法。
【００３６】
（１０）負荷がデアクティブしきい値未満であるときを検出するステップと、前記最小検出ステップ４３５に応答して、前記追加サーバ・アプリケーション１１５をデアクティブ４４０にするステップと、を含む（６）に記載の方法。
【図面の簡単な説明】
【図１】クライアントおよび従来技術のサーバを接続するコンピュータ・ネットワーク。
【図２】本発明の１つの実施形態に従うクライアントおよびサーバを接続するコンピュータ・ネットワーク。
【図３】図２のアロケータのブロック図。
【図４】本発明に従う方法のフローチャート。
【図５】本発明の実施形態に従うスタンバイ・サーバのウェアハウスのブロック図。
【符号の説明】
１０５      コンピュータ・ネットワーク
１１０      クライアント
１１５      サーバ・アプリケーション
１２０      負荷バランサー
２０５      システム・アロケータ
【図１】
0005137281.tif 000003
【図２】
0005137281.tif 000004
【図３】
0005137281.tif 000005
【図４】
0005137281.tif 000006
【図５】
0005137281.tif 000007