(57)【要約】【課題】  接続キープ・アライブの自律的な調整のための装置と方法を提供する。【解決手段】  サーバ・コンピュータ・システムは、現在の動作状態をモニタして、現在の動作状態に対してキープ・アライブを最適化するためにキープ・アライブ仕様を動的に調整するキープ・アライブ・オートノミック調整機構を含む。キープ・アライブ・オートノミック調整機構は、クライアントの総数、及び、１クライアント当りの要求の平均数をモニタする。接続をどれほど長く開いたままにするかを判断するキープ・アライブ仕様の値は、モニタされた現在の動作状態に従って、キープ・アライブ・オートノミック調整機構により動的及び自律的に調整することができる。キープ・アライブ・オートノミック調整機構はまた、キープ・アライブを自律的に有効化及び無効化する機能を含むことができる。【選択図】      図３
2008532117.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合するメモリと、
前記メモリ内に常駐し、前記少なくとも１つのプロセッサによって実行されるサーバ・アプリケーションであって、
定められたキープ・アライブ仕様によってクライアントへの接続を開いたままにするキープ・アライブ機構と、
前記サーバ・アプリケーションに関する現在の動作状態をモニタして、前記現在の動作状態に従って前記キープ・アライブ仕様を自動的に調整するキープ・アライブ調整機構と
を含むサーバ・アプリケーションと
を備える装置。
【請求項２】
前記キープ・アライブ調整機構は、前記キープ・アライブ機構を有効化及び無効化する、請求項１に記載の装置。
【請求項３】
前記キープ・アライブ調整機構は、前記現在の動作状態が第１の所定の閾値より低いクライアントの数、及び、第２の所定の閾値より低い１クライアント当りの要求の平均数を示すとき、前記キープ・アライブ機構を無効化する、請求項２に記載の装置。
【請求項４】
前記キープ・アライブ調整機構は、前記現在の動作状態が第１の所定の閾値を超えるクライアントの数を示すとき、前記キープ・アライブ機構を有効化する、請求項２に記載の装置。
【請求項５】
前記キープ・アライブ調整機構は、前記現在の動作状態が第２の所定の閾値を超える１クライアント当りの要求の数を示すとき、前記キープ・アライブ機構を有効化する、請求項２に記載の装置。
【請求項６】
前記現在の動作状態は、クライアントの数及び１クライアント当りの接続の平均数を含む、請求項１に記載の装置。
【請求項７】
接続キープ・アライブを管理するサーバ・アプリケーションに関するコンピュータに実装された方法であって、
（Ａ）定められたキープ・アライブ仕様によってクライアントへの接続を開いたままにするキープ・アライブ機構を有効化するステップと、
（Ｂ）前記サーバ・アプリケーションに関する現在の動作状態をモニタするステップと、
（Ｃ）ステップ（Ｂ）においてモニタされた前記現在の動作状態に従ってキープ・アライブ仕様を自動的に調整するステップと
を含む方法。
【請求項８】
前記キープ・アライブ機構を自動的に有効化及び無効化するステップをさらに含む、請求項７に記載の方法。
【請求項９】
前記現在の動作状態が第１の所定の閾値より低いクライアントの数、及び第２の所定の閾値より低い１クライアント当りの要求の平均数を示すとき、前記キープ・アライブ機構を無効化するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
前記現在の動作状態が第１の所定の閾値を超えるクライアントの数を示すとき、前記キープ・アライブ機構を有効化するステップをさらに含む、請求項８に記載の方法。
【請求項１１】
前記現在の動作状態が第２の所定の閾値を超える１クライアント当りの要求の数を示すとき、前記キープ・アライブ機構を有効化するステップをさらに含む、請求項８に記載の方法。
【請求項１２】
前記現在の動作状態は、クライアントの数及び１クライアント当りの接続の平均数を含む、請求項７に記載の方法。
【請求項１３】
（Ａ）サーバ・アプリケーションであって、定めされたキープ・アライブ仕様によってクライアントへの接続を開いたままにするキープ・アライブ機構と、前記サーバ・アプリケーションに関する現在の動作状態をモニタし、前記現在の動作状態に従って前記キープ・アライブ仕様を自動的に調整するキープ・アライブ調整機構とを含む、サーバ・アプリケーションと、
（Ｂ）前記サーバ・アプリケーションを保持するコンピュータ可読信号保持媒体と
を含むプログラム製品。
【請求項１４】
前記コンピュータ可読信号保持媒体は記録可能媒体を含む、請求項１３に記載のプログラム製品。
【請求項１５】
前記コンピュータ可読信号保持媒体は伝送媒体を含む、請求項１３に記載のプログラム製品。
【請求項１６】
前記キープ・アライブ調整機構は、前記キープ・アライブ機構を有効化及び無効化する、請求項１３に記載のプログラム製品。
【請求項１７】
前記キープライブ調整機構は、前記現在の動作状態が第１の所定の閾値より低いクライアントの数、及び第２の所定の閾値より低い１クライアント当りの要求の平均数を示すとき、前記キープ・アライブ機構を無効化する、請求項１６に記載のプログラム製品。
【請求項１８】
前記キープ・アライブ調整機構は、前記現在の動作状態が第１の所定の閾値を超えるクライアントの数を示すとき、前記キープ・アライブ機構を有効化する、請求項１６に記載のプログラム製品。
【請求項１９】
前記キープ・アライブ調整機構は、前記現在の動作状態が第２の所定の閾値を超える１クライアント当りの要求の平均数を示すとき、前記キープ・アライブ機構を有効化する、請求項１６に記載のプログラム製品。
【請求項２０】
前記現在の動作状態は、クライアントの数及び１クライアント当りの接続の数を含む、請求項１３に記載のプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ・システムに関し、より具体的には、コンピュータ・システム間で通信するための接続に関する。
【背景技術】
【０００２】
今日、多くのコンピュータ・システムは、高度にネットワーク化されて種々の異なるコンピューティング・サービスを提供する。例えば、クライアント・コンピュータ・システムは、サーバ・コンピュータ・システムに接続して、サーバ・コンピュータ・システムによってホストされる特定のサービスを要求することができる。ユーザがウェブ・ページを要求するためにウェブ・ブラウザを使用する場合には、ユーザのコンピュータ・システムは、典型的には、ウェブ・ページに対する要求を送信し、この要求がそのウェブ・ページをホストするウェブ・サーバに、要求されたウェブ・ページをユーザのウェブ・ブラウザに配信させる。
【０００３】
ハイパーテキスト転送プロトコル（ＨＴＴＰ）は、コンピュータ・システム間のデータの伝送を可能にするために開発された。元のＨＴＴＰバージョン１．０仕様においては、クライアント・コンピュータ・システムは、転送されるべき各々のオブジェクト又はコンポーネントに対して、サーバ・コンピュータ・システムとの、ソケットとして既知の、接続を確立しなければならない。例えば、３つのコンポーネントだけをもつ初期のウェブ・ページでは、この３つのコンポーネントの各々を転送するための異なる接続を開くオーバーヘッドはそれほど重要ではなかった。しかしながら、今日のウェブ・ページは多数の異なるコンポーネントを有することが多い。ウェブ・ページ上の各々のコンポーネントに対する接続の開始及び終了のオーバーヘッドは、ウェブ・サーバ・コンピュータ・システムのリソースに関する重要なドレーンとなる。
【０００４】
この問題を緩和するために、ＨＴＴＰキープ・アライブの概念が開発され、ＨＴＴＰバージョン１．１仕様に取り入れられた。クライアント（ウェブ・ブラウザのような）は、サーバにウェブ・ページ要求と共にクライアントがキープ・アライブをサポートすることを通知することができる。それに応答して、サーバは、クライアントに接続がキープ・アライブされることを伝えることができ、その結果多数のコンポーネントを同じ接続を介して転送することができる。例えば、接続を開いたままにすることによって、その接続がキープ・アライブされるとき、ウェブ・ページ上の多数のイメージを同じ接続上で転送することができる。キープ・アライブ仕様は、時間単位で又は接続を横切って転送されるオブジェクトの数で、接続に対するタイムアウト時間を指定することができる。一旦、仕様が満たされると、接続はサーバによって閉じられる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＨＴＴＰキープ・アライブの一般的な概念は、多くの環境においてウェブ・サーバ・コンピュータ・システム上のオーバーヘッドを削減する上で非常に有用である。しかしながら、キープ・アライブの有用性は、サーバが実行している作業の量及び型、並びに、キープ・アライブ仕様に大きく依存する。キープ・アライブの有効化は、典型的には、ウェブ・サーバ上で、グローバル・レベルで行われるが、これはそれらが手動でオンにされるか、又は手動でオフにされるかを意味する。幾つかの場合においては、キープ・アライブは、実際には、サーバのパフォーマンスを低下させる可能性がある。接続キープ・アライブの設定を動的に有効化、無効化及び調整するための方法がなければ、コンピュータ産業は、接続キープ・アライブを用いるウェブ・サーバにおける最適化に至らないパフォーマンスを引き続いて経験することになる。
【課題を解決するための手段】
【０００６】
好ましい実施形態によると、サーバ・コンピュータ・システムは、現在の動作状態をモニタし、現在の動作状態に対してキープ・アライブを最適化するためにキープ・アライブ仕様を動的に調整するキープ・アライブ調整機構を含む。キープ・アライブ調整機構は、クライアントの総数、及び１クライアント当りの要求の平均数をモニタする。キープ・アライブ仕様を動的に調整することが可能な非常に異なる動作環境を表す４つの異なる場合があるが、それらは、少数のクライアント及び１クライアント当り少数の要求、多数のクライアント及び１クライアント当り少数の要求、少数のクライアント及び１クライアント当り多数の要求、並びに、多数のクライアント及び１クライアント当り多数の要求である。サーバが、少数のクライアント及び１クライアント当り少数の要求を有するときは、キープ・アライブ調整機構は、キープ・アライブを無効化するか、又はキープ・アライブ仕様をある所定の値に設定することができる。サーバが、多数のクライアント及び１クライアント当り少数の要求を有するときには、キープ・アライブ調整機構はキープ・アライブ仕様を最小値に設定する。サーバが、少数のクライアントと、しかし１クライアント当り多数の要求とを有するときは、キープ・アライブ調整機構はキープ・アライブ仕様を最大値に設定する。サーバが、多数のクライアント及び１クライアント当り多数の要求を有するときには、キープ・アライブ調整機構はキープ・アライブ仕様を中間の値に設定する。キープ・アライブ調整機構はまた、キープ・アライブを自動的に有効化及び無効化する機能を含むことができる。この様にしてサーバのパフォーマンスは、現在の動作状態に従って、キープ・アライブを使用することの効果を最適にするように、調整することができる。
【発明を実施するための最良の形態】
【０００７】
本発明の好ましい実施形態が、これから以下の図面を参照して実施例のみの目的で詳細に説明されることになる。
【０００８】
接続キープ・アライブは当技術分野において既知である。図２を参照すると、１つの見本のシステム２００が既知のキープ・アライブ機構を説明するために示される。ウェブ・ブラウザ・アプリケーション２１０が、インターネット２２０のようなネットワークを介して、ウェブ・サーバ・アプリケーション２３０に接続する。ウェブ・サーバ・アプリケーション２３０は、キープ・アライブ仕様２３４に従って、多数のオブジェクトに対する１つ又は複数の接続をキープ・アライブにするように機能するキープ・アライブ機構２３２を含む。ウェブ・ブラウザ・アプリケーション２１０がキープ・アライブをサポートする場合には、ウェブ・ブラウザ・アプリケーション２１０からウェブ・サーバ・アプリケーション２３０への要求はそのことを指示することになる。それに応答して、ウェブ・サーバ・アプリケーション２３０は、接続をキープ・アライブにして、１つの接続を通して多数のオブジェクトを伝送する選択肢を有する。ウェブ・サーバ・アプリケーション２３０が多数のオブジェクトに対して接続をキープ・アライブにすると決定する場合には、キープ・アライブ機構２３２は、その接続をモニタし、指定されたキープ・アライブ仕様２３４に従って接続を閉じる。キープ・アライブ仕様２３４の１つの簡単な例は時間である。従って、キープ・アライブ仕様２３４が５０ミリ秒（ｍｓ）と指定される場合には、キープ・アライブ機構２３２は５０ｍｓ間、接続をキープ・アライブにし、その後接続を終了する。好適なキープ・アライブ仕様２３４の別の例は、転送するオブジェクトの数である。従って、キープ・アライブ仕様２３４が２０個のオブジェクトに指定される場合には、キープ・アライブ機構２３２は２０個のオブジェクトが転送されるまで接続をキープ・アライブにし、その後接続を終了する。多数のオブジェクトを含む現在のウェブ・ページでは、接続をキープ・アライブにすることでシステムのパフォーマンスを劇的に改善することができる。しかしながら、キープ・アライブの存在はまた、幾つかの環境においてはシステムのパフォーマンスを低下させる可能性がある。
【０００９】
キープ・アライブの使用がシステムのパフォーマンスに有害であり得ることの１つの具体的な事例が、ＩＢＭ社によるＷｅｂＳｐｈｅｒｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｅｒ（ＷＡＳ）バージョン５．１で見ることができる。ＷＡＳ  ｖ５．１においては、ＨＴＴＰ接続を保持するソケットとサーバのランタイム内のスレッドとの間には１対１の相関がある。サーバが過度に長くキープ・アライブ状態を保持するように構成され、その接続への要求が十分に散発的である場合には、大部分のスレッドはそれらの開いた接続への新規の要求を待つアイドル状態にあり、他の要求が接続の取得を待っているという状況に容易に達する可能性がある。この状況は、スケジューリング実行、及びリソース競合開始が収穫逓減を示す以前には、非常に低い上限値を有するランタイムに対するスレッドの追加によってのみ改善することができる。
【００１０】
好ましい実施形態は、モニタされた動作状態に従って自律的にキープ・アライブ仕様を調整する接続キープ・アライブ・オートノミック調整機構を提供することによって、当技術分野における問題に対処する。接続キープ・アライブ調整機構は、ユーザの介入なしにキープ・アライブ仕様を自動的に調整する機能により「オートノミック」である。モニタされた状態に従ってキープ・アライブのパフォーマンスを自律的に調整することによって、好ましい実施形態はキープ・アライブを最高のパフォーマンスに調整することを可能にする。キープ・アライブ・オートノミック調整機構はまた、キープ・アライブを動的に有効化及び無効化することができる。
【００１１】
図１を参照すると、コンピュータ・システム１００は本発明の好ましい実施形態による装置の１つの好適な実装である。コンピュータ・システム１００は、ウェブ・サーバとして働くＩＢＭ  ｅＳｅｒｖｅｒ  ｉＳｅｒｉｅｓのコンピュータ・システムである。しかしながら、当業者は、本発明の実施形態の機構及び装置は、コンピュータ・システムが複雑なマルチユーザのコンピューティング装置、単一ユーザのワークステーション、又は、組み込まれた制御システムであるかどうかには依らず、任意のコンピュータ・システムにも等しく適用できることを理解することになる。図１に示されるように、コンピュータ・システム１００は、プロセッサ１１０、メインメモリ１２０、大容量ストレージ・インターフェース１３０、ディスプレイ・インターフェース１４０、及びネットワーク・インターフェース１５０を含む。これらのシステム・コンポーネントは、システム・バス１６０を使用して相互接続される。大容量ストレージ・インターフェース１３０は、直接アクセス記憶装置１５５のような、大容量記憶装置をコンピュータ・システム１００に接続するために使用される。直接アクセス記憶装置１５５の１つの具体的の型は、読み取り可能及び書き込み可能ＣＤ  ＲＷドライブであり、これはＣＤ  ＲＷ１９５へデータをストアし、且つそこからデータを読み取ることができる。
【００１２】
好ましい実施形態によるメインメモリ１２０は、データ１２１、オペレーティング・システム１２２、及びウェブ・サーバ・アプリケーション１２３を含む。データ１２１は、コンピュータ・システム１００内の任意のプログラムへの入力又はそれからの出力として働く任意のデータを表す。オペレーティング・システム１２２は、ＯＳ／４００として当業界では既知のマルチタスク・オペレーティング・システムであるが、当業者は、他の型のオペレーティング・システムも代替的に使用可能であることを認識することになる。ウェブ・サーバ・アプリケーション１２３は、ウェブ・サーバ・アプリケーション１２３が責任をもつクライアントからの要求に応える。ウェブ・サーバ・アプリケーション１２３は、好ましい実施形態のサーバ・アプリケーションの１つの好適な実施例として図１に示される。ウェブ・サーバ・アプリケーション１２３は、キープ・アライブ・オートノミック調整機構１２４及びキープ・アライブ機構１２６を含む。キープ・アライブ・オートノミック調整機構１２４は、コンピュータ・システム１００に関する現在の動作状態を検出する使用モニタ１２５を含む。使用モニタ１２５は、ウェブ・サーバ・アプリケーション１２３にアクセス中のクライアントの数、及び規定された時間にわたる１クライアント当りの要求の平均数を検出することが好ましい。キープ・アライブ・オートノミック調整機構１２４は使用モニタ１２５を使用して現在の動作状態を検出し、それに応答して、キープ・アライブ仕様１２７を調整することができる。１つの具体的な実施形態においては、キープ・アライブ・オートノミック調整機構１２４はまた、現在の動作状態に基づいて自律的にキープ・アライブを有効化及び無効化することができる。
【００１３】
キープ・アライブ機構１２６は、キープ・アライブ仕様１２７に従って接続を開いたままにする。図２を参照して上述したように、既知のキープ・アライブ仕様は、時間及び要求数を含む。好ましい実施形態のキープ・アライブ仕様１２７は、キープ・アライブ機構に対する継続時間及び／又はパフォーマンスを指定する、現在既知の又は将来開発される、任意の及び全ての方法に明白に拡張できる。例えば、１つの好適なキープ・アライブ仕様１２７は、接続を開いたままにするために維持されなければならない時間当りのビットの平均数を指定することができる。キープ・アライブ機構１２６に対する１つの好適な実装は、図２に示される従来技術のキープ・アライブ機構２３２であることに注意されたい。この特定の実装においては、キープ・アライブ仕様１２７は、図２に示される従来技術のキープ・アライブ仕様２３４と同じである。しかしながら、代替的にキープ・アライブ機構１２６及びキープ・アライブ仕様１２７は、それぞれ従来技術のキープ・アライブ機構２３２及びキープ・アライブ仕様２３４と比較して、異なる又は付加的な機能を有することができることに注目されたい。さらに、図１は、キープ・アライブ・オートノミック調整機構１２４を、接続をキープ・アライブにするキープ・アライブ機構１２６から分離しているように示す。しかしながら、当業者は、キープ・アライブ・オートノミック調整機構１２４及びキープ・アライブ機構１２６の機能を同じコンピュータ・プログラムに実装できることを認識することになる。
【００１４】
コンピュータ・システム１００は、コンピュータ・システム１００のプログラムが、メインメモリ１２０及びＤＡＳＤ装置１５５のような多数のより小さなストレージ・エンティティにアクセスする代わりに、あたかも単一の大容量のストレージ・エンティティだけにアクセスするかのように振舞うことを可能にする周知の仮想アドレス指定機構を利用する。それゆえに、データ１２１、オペレーティング・システム１２２、及びウェブ・サーバ・アプリケーション１２３がメインメモリ１２０に常駐するように図示されているが、当業者はこれらの項目が、必ずしも全てが同時にメインメモリ１２０に完全に含まれる必要はないことを認識することになる。「メモリ」という用語は、本明細書においては、コンピュータ・システム１００の仮想メモリ全体を総称して呼ぶために使用され、コンピュータ・システム１００に結合した他のコンピュータ・システムの仮想メモリを含み得ることに留意されたい。
【００１５】
プロセッサ１１０は、１つ又は複数のマイクロプロセッサ及び／又は集積回路から構成することができる。プロセッサ１１０はメインメモリ１２０にストアされたプログラム命令を実行する。メインメモリ１２０はプロセッサ１１０がアクセスできるプログラム及びデータをストアする。コンピュータ・システム１００が開始するときは、初めにプロセッサ１１０がオペレーティング・システム１２２を構成するプログラム命令を実行する。オペレーティング・システム１２２は、コンピュータ・システム１００のリソースを管理する高度なプログラムである。これらのリソースの幾つかは、プロセッサ１１０、メインメモリ１２０、大容量ストレージ・インターフェース１３０、ディスプレイ・インターフェース１４０、ネットワーク・インターフェース１５０及びシステム・バス１６０である。
【００１６】
コンピュータ・システム１００は単一のプロセッサ及び単一のシステム・バスのみを含むように図示されているが、当業者は、本発明の実施形態が多数のプロセッサ及び／又は多数のバスを有するコンピュータ・システムを使用して実施できることを理解することになる。さらに、好ましい実施形態で使用される各々のインターフェースは、プロセッサ１１０から数値計算処理の負担を軽減するために使用される別個の完全にプログラムされたマイクロプロセッサを含む。しかしながら、当業者は、本発明の実施形態は、類似の機能を実行するために単にＩ／Ｏアダプタを使用するコンピュータ・システムに対して等しく適用できることを理解することになる。
【００１７】
ディスプレイ・インターフェース１４０は、１つ又は複数のディスプレイ１６５をコンピュータ・システム１００に直接接続するために使用される。これらのディスプレイ１６５は、非インテリジェント（即ち、ダム）な端末又は完全にプログラム可能なワークステーションとすることができるが、システム管理者及びユーザが、コンピュータ・システム１００と通信することを可能にするために使用される。しかしながら、ディスプレイ・インターフェース１４０は１つ又は複数のディスプレイ１６５との通信をサポートするために準備されているが、ユーザ及び他のプロセスとの全ての必要な交信はネットワーク・インターフェース１５０を介して行われ得るので、コンピュータ・システム１００は必ずしもディスプレイ１６５を必要としないことに留意されたい。
【００１８】
ネットワーク・インターフェース１５０は、他のコンピュータ・システム及び／又はワークステーション（例えば、図１中の１７５）をネットワーク１７０にわたってコンピュータ・システム１００に接続するために使用される。本発明の実施形態は、ネットワーク接続１７０が現在のアナログ及び／又はデジタル技術を使用して、又は何か将来のネットワーキング機構を介して形成されるかには関係なく、コンピュータ・システム１００が、どのように他のコンピュータ・システム及び／又はワークステーションに接続可能であっても、等しく適用可能である。さらに、多くの異なるネットワーク・プロトコルを、ネットワークを実装するために使用することができる。これらのプロトコルは、コンピュータがネットワーク１７０にわたって通信するのを可能にする特化されたコンピュータ・プログラムである。ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネット・プロトコル）は好適なネットワーク・プロトコルの一例である。
【００１９】
ここで、本発明の実施形態は完全に機能するコンピュータ・システムの文脈において説明され、また引き続き説明されることに注意することが重要であるが、当業者は、それらは種々の形態のプログラム製品として配布することができること、及び、実際に配布を実施するのに使用される特定の型のコンピュータ可読信号保持媒体には関係なく、等しくアプローチできることを理解することになる。好適なコンピュータ可読信号保持媒体の例は、フロッピー（登録商標）・ディスク及びＣＤ  ＲＷ（例えば図１の１９５）のような書き込み可能型媒体、並びに、デジタル及びアナログ通信リンクのような伝送型媒体を含む。
【００２０】
ここで図３を参照すると、好ましい実施形態によるシステム３００は、図２に示される従来技術のシステム２００との簡単な比較を可能にするように図１のソフトウェア要素の間の関係を示す。ウェブ・ブラウザ・アプリケーション２１０は、インターネット２２０のようなネットワークを介して、好ましい実施形態のウェブ・サーバ・アプリケーション１２３に接続する。キープ・アライブ・オートノミック調整機構１２４は使用モニタ１２５を使用してウェブ・サーバ・アプリケーション１２３に関する現在の動作状態を判断し、次に、キープ・アライブ仕様１２７を、現在の動作状態に最適に適応するように、動的に設定する。第１の実施形態においては、キープ・アライブは手動で有効化され、キープ・アライブ・オートノミック調整機構１２４は、使用モニタ１２５によって検出された現在の動作状態に従って、キープ・アライブ仕様を動的に調整する。第２の実施形態においては、キープ・アライブ・オートノミック調整機構１２４は、キープ・アライブ仕様１２７を自律的に調整することに加えて、キープ・アライブ機構１２６を自律的に有効化及び無効化することができる。このようにして、キープ・アライブは、現在の動作状態がそれを正当化する場合には無効化することができる。好ましい実施形態のキープ・アライブ・オートノミック調整機構１２４の機能は、図４−図７に例示される特定の実施例によって示される。
【００２１】
好ましい実施形態の装置及び方法は、変化中の動作状態に従ってキープ・アライブ設定を調整する方法を提供する。これは、キープ・アライブをグローバルに有効化又は無効化し、有効化されたときには、サーバの現在の動作状態には無関係に、単一のキープ・アライブ仕様を使用する従来技術を超えた重要な進歩である。
【００２２】
幾つかの実施例が、システムのパフォーマンスを最大にするためにキープ・アライブ設定を動的に調整する機能に対する必要性を説明する。
【００２３】
図４を参照すると、表４００は好ましい実施形態におけるキープ・アライブのオートノミック調整に影響を及ぼし得る異なる動作状態を表す。図４に示されるこの第１の特定の実施形態に関して、キープ・アライブは手動でグローバルにウェブ・サーバ上で有効化されていると仮定する。第１に、図４の行４１０における、少数のクライアント及び１クライアント当り少数の要求の場合を考える。この場合には、サーバ上の負荷は非常に軽いので、キープ・アライブを有効化することによってもたらされるいずれのパフォーマンス向上も最小となる。結果として、キープ・アライブ仕様は低い値に設定される。図４の行４２０における、多数のクライアント及び１クライアント当り少数の要求の場合は、典型的な小売のウェブサイトの例証となり、そこでは多数のクライアントが同時に接続できるが、ウェブ・ページを読んでブラウズするのに必要な時間のために、１クライアント当りの要求の数は相対的に低い。この場合、キープ・アライブ・オートノミック調整機構１２４は、キープ・アライブ仕様１２７が最小化されるべきであると認識し、接続当りの要求の数がその接続を開いたままにすることを正当化するのに十分でないときには、接続（及び対応するスレッド）は、あまり長い間キープ・アライブにはされない。結果として、図４におけるキープ・アライブ仕様は、行４２０に示されるように低い値に設定される。
【００２４】
図４の行４３０における、少数のクライアント及び１クライアント当り多数の要求の場合は、少数のクライアントが各々多数の要求を行うことが多い、企業間（Ｂ２Ｂ）環境の例証となる。この場合、キープ・アライブの有用性が最も高くなるが、それは、キープ・アライブ時間が長くなればなるほど、単一の接続上で転送できるオブジェクトの数が多くなるからである。結果として、図４の行４３０に示されるように、キープ・アライブ仕様は相対的に高い値に設定される。
【００２５】
多数のクライアント及び多数の要求の場合は、非常に混雑しているウェブ・サーバの状況を例示する。例えば、これはＢ２Ｂチャネルにサージがあるときに起る可能性がある。この場合には、オートノミック調整は最適のパフォーマンスを達成するためにさらに重要となる。この場合には、キープ・アライブ仕様は中程度とする。この値は動作状態が変化すると自律的に変化することになる。
【００２６】
ここで、キープ・アライブ・オートノミック調整機構が、必要に応じてキープ・アライブを動的及び自律的に有効化及び無効化することを可能にする第２の特定の実施形態を考える。これは図５の表５００に示される。図５の行５１０における、少数のクライアント及び１クライアント当り少数の要求の場合には、サーバ上の負荷は非常に軽いので、キープ・アライブを有効化することによってもたらされるいずれのパフォーマンス向上も最小となる。結果として、キープ・アライブ・オートノミック調整機構１２４は、図５の行５１０に示されるように、キープ・アライブを無効化することができる。キープ・アライブ機構が無効化される場合には、キープ・アライブ仕様はサーバ・アプリケーションのパフォーマンスに効果を及ぼさない。
【００２７】
一旦、クライアントの数が第１の閾値を超えるか、又は１クライアント当りの要求の数が第２の閾値を超えると、図５の行５２０、５３０及び５４０に示されるように、キープ・アライブ・オートノミック調整機構がキープ・アライブ機構を有効化する。行５２０、５３０及び５４０における仕様は、それぞれ、図４における４２０、４３０及び４４０に類似した値に設定することができることに留意されたい。
【００２８】
ここで、簡単な実施例が好ましい実施形態のサーバ・アプリケーションの的確さと能力を例示する。図６を参照すると、表６００は図１及び図３の使用モニタ１２５によってモニタできる動作状態を例示する。例示のために、１００の第１の閾値は、それ未満では少数のクライアントと判断され、且つ、それに等しいか又はそれ以上では多数のクライアントと判断される値に選択されていると仮定する。さらに、例示のために、第２の閾値である５は、それ未満では１クライアント当り少数の要求と判断され、且つ、それに等しいか又はそれ以上では１クライアント当り多数の要求と判断されるように選択されていると仮定する。さらに、４つの異なる計測値が取得され、その各々は図４及び図５に示される４つの場合のうちの１つを表すと仮定する。図６の行６１０に示される計測値１においては、５つのクライアント及び１クライアント当り平均１つの要求がある。これは、上述の第１及び第２の閾値に従って、少数のクライアント及び少数の要求に対応する。図６の行６２０に示される計測値２においては、１０、０００のクライアント及び１クライアント当り１つの要求がある。これは、多数のクライアント及び少数の要求に対応する。図６の行６３０に示される計測値３においては、２、０００のクライアント及び１クライアント当り１０の要求がある。これは、多数のクライアント及び多数の要求に対応する。図６の行６４０に示される計測値４においては、１０のクラインと１クライアント当り１、５００の要求がある。これは少数のクライアント及び多数の要求に対応する。
【００２９】
図７は、図６に示される計測値が、キープ・アライブ仕様を自律的に調整するためにどのように使用できるかを例示する。例示のために、キープ・アライブ仕様は時間として指定されていると仮定する。キープ・アライブが手動でグローバルに有効化及び無効化される本明細書の第１の特定の実施形態の場合においては、キープ・アライブが手動でグローバルに有効化されていると仮定する。これは、キープ・アライブ・オートノミック調整機構がキープ・アライブを無効化しないが、単にキープ・アライブ仕様の値を調整することを意味する。これは図４に例示される。計測値１を取得した後、キープ・アライブ・オートノミック調整機構は、計測された（又はモニタされた）パフォーマンスは、少数のクラインと及び少数の要求に対応すると判断する。結果として、図７に示されるように、キープ・アライブ仕様の値はその最小値の１０ｍｓに設定される。代替的に、図５に表される第２の特定の実施形態においては、キープ・アライブ・オートノミック調整機構は、計測１の後で、キープ・アライブ仕様をある中間の低い値に設定する代わりにキープ・アライブを無効化する。計測２の後では、キープ・アライブ・オートノミック調整機構は、計測されたパフォーマンスは多数のクライアント及び少数の要求に対応すると判断し、図７に示されるように、キープ・アライブ仕様をその最小値の１０ｍｓに設定する。計測３の後では、キープ・アライブ・オートノミック調整機構は、計測されたパフォーマンスは多数のクライアント及び多数の要求に対応すると判断し、図７に示されるように、キープ・アライブ仕様を中間の値に設定する。計測４の後では、キープ・アライブ・オートノミック調整機構は、計測されたパフォーマンスは少数のクライアント及び１クライアント当り多数の要求に対応すると判断し、図７に示されるように、キープ・アライブ仕様を高い値に設定する。図５に例示される第２の特定の実施形態においては、キープ・アライブ・オートノミック調整機構はまた、計測２、３及び４の各々の後でキープ・アライブを有効化する。
【００３０】
図６及び図７に示される実施例は、好ましい実施形態を説明するために非常に単純化されている。多数又は少数のクライアント若しくは１クライアント当りの要求を判断するための２つの固定閾値の仮定には、相対的な負荷を示す、スライドする又は相対的な閾値を用いることができる。さらに、図７は、キープ・アライブ仕様の調整が、スライドするスケールに沿って非常に細かい粒度を有することができることを示す。これは、サーバ・アプリケーションのパフォーマンスを最適化するためにキープ・アライブ仕様を微調整することを可能にする。図７の下部に示されるスケールは、キープ・アライブ仕様が、多数のクライアント及び少数の要求を表す低いレベルから、多数のクライアント及び多数の要求を表す中間のレベル、少数のクライアント及び多数の要求を表す高いレベルまで、どのように調整できるかを示す。図７の下部のスケールは、少数のクライアント及び少数の要求を明示的には含まないが、これはキープ・アライブがパフォーマンスに最小の影響を与える、軽く負荷されたサーバの場合である。この理由のために、キープ・アライブ仕様はある所定の値（第１の実施形態）に設定することができ、又は全く無効化することができる（第２の実施形態）。
【００３１】
使用モニタ１２５によってモニタされる動作状態は、クライアントの数及び１クライアント当りの要求の平均数を含むことが好ましいことに注意されたい。この情報は、ＨＴＴＰサービス自体のパフォーマンス・メトリックから入手可能である。例えば、使用モニタ１２５は、ある定められた時間内の同時の要求の最大数、及び、１クライアント当りの１秒当りの要求の平均数（即ち、平均的なクライアントが要求を送信する速度）を判断することができる。これらのパラメータは、計算を最適にすると同時に平均のウィンドウ・サイズの形態で学習アルゴリズムに平滑化因子を導入するために、指数移動平均を用いて追跡することができる。平滑化因子の値は、不十分に調整されたキープ・アライブに関するパフォーマンスの影響の重大度に関連して設定することができる。重大度が高いとき、例えば、キープ・アライブの設定が、ランタイム内の全てのスレッドを少数の非アクティブなクライアントに利用されるようにする場合に、クライアントがサービスを拒否される可能性があるような重大度が高い場合には、平滑化因子は、要求プロファイルの変化に対する反応が迅速になるように設定される。これは、例えば、移動平均に対して小さなウィンドウ・サイズを作ることによって行うことができる。不十分に調整されたキープ・アライブに関する影響があまり重大ではない場合には、より大きなウィンドウ・サイズを使用して、システム内部のスラッシングを避けるためによりゆっくり変化するキープ・アライブ仕様を与えることができる。好ましい実施形態は、現在の動作状態によってコンピュータ・システムのパフォーマンスを調整するキープ・アライブ仕様を自律的及び動的に調整する方法を提供する。接続キープ・アライブの動的な調整は、好ましい実施形態のサーバ・コンピュータ・システムがそのキープ・アライブ設定を最適化して、現在の動作状態に対して調整される可能な最良のパフォーマンスを達成することを可能にする。
【００３２】
当業者は、多くの変形物が可能であることを認識するであろう。従って、本発明の実施形態が詳しく示され説明されたが、形態及び詳細におけるこれら及び他の変更を施すことができることが当業者によって理解されることになる。例えば、本明細書において説明された好ましい実施形態では、単一のキープ・アライブ仕様が仮定されているが、代替的に、多数のキープ・アライブ仕様を定めることができ、これら多数のキープ・アライブ仕様のいずれか又は全ては、現在の動作状態によって自動的に調整することができる。
【図面の簡単な説明】
【００３３】
【図１】好ましい実施形態による装置のブロック図である。
【図２】インターネットを介するソフトウェア・コンポーネント間の交信を示す従来型システムのブロック図である。
【図３】好ましい実施形態による、接続キープ・アライブを動的に調整するシステムのブロック図である。
【図４】好ましい実施形態による、接続キープ・アライブを動的に調整する第１の特定の方法を示す表である。
【図５】好ましい実施形態による、接続キープ・アライブを動的に有効化、無効化及び調整するための第２の特定の方法を示す表である。
【図６】図１及び図３における使用モニタ１２５による４つの計測値であって、図７に示される値に設定されるキープ・アライブの継続時間をもたらす計測値を示す表である。
【図７】好ましい実施形態による、キープ・アライブ継続時間の動的な設定を図示する図である。
【符号の説明】
【００３４】
１００：コンピュータ・システム
１１０：プロセッサ
１２０：メインメモリ
１２１：データ
１２２：オペレーティング・システム
１２３，２３０：ウェブ・サーバ・アプリケーション
１２４：キープ・アライブ・オートノミック調整機構
１２５：使用モニタ
１２６，２３２：キープ・アライブ機構
１２７、２３４：キープ・アライブ仕様
１３０：大容量ストレージＩ／Ｆ
１４０：ディスプレイＩ／Ｆ
１５０：ネットワークＩ／Ｆ
１５５：直接アクセス記憶装置
１６０：システム・バス
１６５：ディスプレイ
１７０：ネットワーク
１７５：他のコンピュータ・システム又はワークステーション
１９５：ＣＤ  ＲＷ
２００、３００：システム
２１０：ウェブ・ブラウザ・アプリケーション
２２０：インターネット
４００、５００、６００：表
【図１】
2008532117.tif 000003
【図２】
2008532117.tif 000004
【図３】
2008532117.tif 000005
【図４】
2008532117.tif 000006
【図５】
2008532117.tif 000007
【図６】
2008532117.tif 000008
【図７】
2008532117.tif 000009
【国際調査報告】
2008532117.tif 000010
2008532117.tif 000011