(57)【特許請求の範囲】
【請求項１】
少なくとも１つの計算装置と、
前記少なくとも１つの計算装置内で実行可能なタイムアウト管理アプリケーションと、を備え、前記タイムアウト管理アプリケーションが、
各待ち時間が複数のサービスのうちの１つに対応する、複数の待ち時間を監視する論理と、
前記待ち時間に少なくとも一部基づき、使用されているサービス容量の量を計算する論理と、
前記使用されているサービス容量の量が、予め定義された範囲外であるかどうかを判定する論理と、
前記使用されているサービス容量の量が、予め定義された範囲外であると判定された場合に、前記サービスのうちの１つを選択する論理と、
選択された前記サービスのうちの１つと関連付けられたタイムアウトを設定する論理と、
を備える、システム。
【請求項２】
前記タイムアウト管理アプリケーションが、前記待ち時間に少なくとも一部基づき、時間間隔に対する集計待ち時間を計算する論理を更に備え、
前記タイムアウトを設定する前記論理が、前記集計待ち時間に少なくとも一部基づいて前記タイムアウトを設定する、請求項１に記載のシステム。
【請求項３】
前記タイムアウトを設定する前記論理が、前記使用されているサービス容量の量に少なくとも一部基づいて前記タイムアウトを設定する、請求項１に記載のシステム。
【請求項４】
前記タイムアウトを設定する前記論理が、全体のサービス容量に対する前記使用されているサービス容量の量が閾値を下回ることに応じて前記タイムアウトを増加させる、請求項１に記載のシステム。
【請求項５】
前記タイムアウトを設定する前記論理が、全体のサービス容量に対する前記使用されているサービス容量の量が閾値を超えることに応じて前記タイムアウトを減少させる、請求項１に記載のシステム。
【請求項６】
前記サービスのうちの１つを選択する前記論理が、選択されたサービスによって使用される、使用されているシステム資源のサブセットの量に少なくとも一部基づき前記サービスのうちの１つを選択する、請求項１に記載のシステム。
【請求項７】
前記サービスのうちの１つを選択する前記論理が、サービス優先順位リストに少なくとも一部基づき前記サービスのうちの１つを選択する、請求項１に記載のシステム。
【請求項８】
前記複数の待ち時間を監視する前記論理が、前記サービスからログデータを得る論理を更に備える、請求項１に記載のシステム。
【請求項９】
前記タイムアウト管理アプリケーションが、
選択された前記サービスのうちの１つが、関連付けられた少なくとも１つの子サービスを有するかどうかを判定する論理と、
前記少なくとも１つの子サービスを有すると判定された場合に、前記少なくとも１つの子サービスのタイムアウトを合計する論理と、
前記少なくとも１つの子サービスの前記タイムアウトの前記合計が、親サービスである選択された前記サービスのうちの１つについて設定された前記タイムアウトを超える場合には、前記少なくとも１つの子サービスのうちの１つを選択する論理と、
選択された前記少なくとも１つの子サービスのうちの１つと関連付けられたタイムアウトを再設定する論理と、
を更に備える、請求項１〜８のいずれか一項に記載のシステム。
【請求項１０】
前記少なくとも１つの子サービスのうちの１つを選択する論理が、前記少なくとも１つの子サービスの待ち時間、サービス階層、サービス優先順位リスト、サービス依存関係、及び最小又は最大タイムアウト閾値のうちの少なくとも１つに基づいて、前記少なくとも１つの子サービスのうちの１つを選択する、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の出願は、出願番号１３／６２２，０９４を有する２０１２年９月１８日に出願された「Ａｄａｐｔｉｖｅ  Ｓｅｒｖｉｃｅ  Ｔｉｍｅｏｕｔｓ」という名称の米国特許出願に対する優先権およびこの利益を主張するものであり、該出願は、その全体が参照することにより本明細書に組み込まれる。
【背景技術】
【０００２】
タイムアウトは、高待ち時間サービス呼出の処理におけるシステム資源の過剰の使用を防止することができる。具体的には、タイムアウトの処理に際し、タイムアウトがもはやシステム資源を消費することはない。
【図面の簡単な説明】
【０００３】
本開示の多くの態様は、以下の図面を参照してより良く理解することができる。この図面内の構成要素は、本開示の原理を明瞭に図解することにむしろ強調が置かれており、必ずしも一定の比率の縮尺ではない。更に、この図面において、同様の参照番号は、いくつかの図にわたって対応する部分を指定する。
【０００４】
【図１】本開示の種々の実施形態に従うネットワーク化された環境の図面である。
【図２】本開示の種々の実施形態に従って、図１のネットワーク化された計算環境で実行されるタイムアウト管理アプリケーションの一部として実装される機能性の１つの例を図解する流れ図である。
【図３】本開示の種々の実施形態に従って、図１のネットワーク化された環境内の計算環境で実行されるタイムアウト管理アプリケーションの一部として実装されるサービス依存関係機能性の１つの例を図解する流れ図である。
【図４】本開示の種々の実施形態に従って、図１のネットワーク化された環境内で使用されている計算環境の１つの例説明図を提供する基本ブロック図である。
【発明を実施するための形態】
【０００５】
サービス指向型アーキテクチャは、高待ち時間サービスへの呼出をするときに、システム資源の過剰の使用を防止するためにタイムアウトを実行する。これは、高待ち時間サービスが、そのシステム資源と競合する他のサービスを犠牲にしてその呼出を解決するために、システム資源を独占または乱用することを防止できる。タイムアウトは、しばしば、事前設定値であり、実行されるサービス及び実行されるサービスで呼び出されるサービスに関して定義される。これは、タイムアウト値を種々のシステム状態に適合させることを妨げる。例えば、全体的システム使用が低い期間中に、サービス用のタイムアウトは、増加できることになる。これは、このサービスがより多くの時間でシステム資源にアクセスしてその呼出を解決することを可能にする。これは、また、他のサービスに影響を与えずにサービス呼出の失敗数を低減する。別の例として、高いシステム資源使用の期間中に、高待ち時間サービス用のタイムアウトは、減少されることもある。これは、そのサービスに対しより多くの失敗となることになるが、他のサービスがそのサービス呼出完了することを可能にするだろう。
【０００６】
種々の実施形態に従って、タイムアウト管理アプリケーションは、サービスのタイムアウトを再定義して、これらを実装する環境の状態に適合させることを可能にする。タイムアウトは、サービス待ち時間と使用中のシステム資源の量に基づき、増加または減少できる。タイムアウト管理アプリケーションは、また、タイムアウト値の修正時にサービス依存性を考慮できる。例えば、親サービスは、複数の子サービスを呼出し、親サービスと子サービスの両方は、自身のタイムアウトを有する。子サービスタイムアウトまたは親サービスタイムアウトを修正して、互いに対して、予め定義された判定基準にタイムアウトを確実に合致させ得る。これら依存性は、また、どのサービスを修正してシステム使用の量に適合させるか、ということに影響を与えられる。タイムアウト管理アプリケーションは、独立のサービスを修正するために優先的な選択を実施して、影響するサービスの数を最小限にすることもある。別の例では、タイムアウト管理アプリケーションは、多くの他のサービスが依存するサービスのタイムアウトを修正して、そのサービスの利用可能機会が最大となることを確実にすることもある。
【０００７】
更に、タイムアウト管理アプリケーションの適応可能な能力は、サービスに関連する種々の階層または優先順位を考慮に入れ、高い優先順位または階層のサービスが、最大化される可用性を確実に有するようにする。以下考察で、本システムおよびその構成要素の一般的な記述が提供され、続いて、それらの動作を考察する。
【０００８】
図１に関連して、ネットワーク化された環境１００は、種々の実施形態に従って示される。ネットワーク化された環境１００は、計算環境１０１、およびネットワーク１０７を経て互いにデータ通信中のクライアント１０４を含む。ネットワーク１０７は、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、有線ネットワーク、無線ネットワーク、または他の適切なネットワークなど、あるいは２つ以上のこのようなネットワークの任意の組合せを含む。
【０００９】
計算環境１０１は、例えば、サーバコンピュータまたは計算性能を供給する任意の他のシステムで構成することもある。代替方法として、計算環境１０１は、例えば、１つ以上のサーバ・バンク若しくはコンピュータ・バンク、又は他の配置を使用する複数の計算装置を使用することもある。このような計算装置は、単一設置内に配置されるか、または多くの異なる地理位置に配信される。例えば、計算環境１０１は、クラウド計算リソース、グリッド計算リソース、および／または任意の他の分散した計算配置で互いに構成する複数の計算装置を含むこともある。ある場合には、計算環境１０１は、割り当てられた処理能力、ネットワーク、ストレージ、または他の計算関連資源が時間とともに変化し得る弾性計算リソースに対応することもある。
【００１０】
種々のアプリケーションおよび／または他の機能性は、種々の実施形態に従って計算環境１０１内で実行され得る。また、種々のデータが、計算環境１０１にアクセス可能なデータ記憶１１１に記憶される。データ記憶１１１は、複数のデータ記憶１１１を表してもよいことが理解されるであろう。データ記憶１１１に記憶されるデータは、例えば、種々のアプリケーションおよび／または以下で記述される機能的実体の動作と関連付けられることもある。
【００１１】
計算環境１０１で実行される構成要素は、例えば、タイムアウト管理アプリケーション１１４、複数のサービス１１７、およびここでは詳細に述べない、他のアプリケーション、サービス、過程、システム、エンジン、または機能性を含む。タイムアウト管理アプリケーション１１４を実行して、計算環境１０１の状態に基づき、実行されるサービス１１７のそれぞれの対に応じたタイムアウト１２１を修正する。
【００１２】
サービス１１７は、呼出に応答して、あるアクションを実行またはあるデータを返す機能性で構成される。サービス１１７は、ネットワークページを供給し、データをデータ記憶から読み取り、またはデータをデータ記憶に記憶し、データ変換を実行し、他のアプリケーションと交信し、ネットワークトラフィックを管理する、機能性、またはいくつかの他の機能性で構成する。サービス１１７は、表現状態遷移（ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  ｓｔａｔｅ  ｔｒａｎｓｆｅｒ、ＲＥＳＴｆｕｌ）アーキテクチャ、またはいくつかの他のアーキテクチャ内で具体化される。サービス１１７は、サービス１１７への呼出を完了するために１つ以上の子サービス１１７の実行を必要とすることもある。サービス１１７を実行し、呼び出して、応答１２３を発生し、または他の目的のために、クライアント１０４から送信される要求１２２の取り扱を促進することもある。
【００１３】
計算環境１０１内で実行される各サービス１１７は、少なくとも１つのタイムアウト１２１と関連付けられる。呼び出されたサービス１１７は、多くのタイムアウト１２１を有することもあり、そのタイムアウト１２１の各々は、呼び出されたサービス１１７を呼出す異なるサービス１１７に対応する。タイムアウト１２１は、サービス１１７への呼出を完了する時間の最大閾値を定義する。サービス１１７がタイムアウト１２１内に呼出の完了に失敗すると、サービス１１７は、呼出の発信源にエラーを返す。
【００１４】
各サービス１１７は、また、対応するサービス１１７の１つへの呼出の完了に要する時間を表す待ち時間（レイテンシ、ｌａｔｅｎｃｙ）に対応する。待ち時間は、システム資源の合計能力に対する、計算環境１０１内で使用されているシステム資源の量により影響されることもある。例えば、計算環境１０１は、多くのサービス１１７の呼出を取り扱い時に、または呼び出されたサービス１１７が計算的に高価な時に、使用されているシステム資源の高い量を有し、いくつかのサービス１１７で待ち時間を増加する結果になることもある。
【００１５】
データ記憶１１１に記憶されるデータは、例えば、データ具体化サービス階層１２４、サービス優先順位リスト１２７、依存関係モデル１３１、および潜在的に他のデータを含む。サービス階層１２４は、実行されるサービス１１７を１つ以上のグループにグループ化することを表す。グループ化は、相互に排他的であるか、またはサービス１１７が複数のグループに属することを可能にしてもよい。グループは、それら自身がいくつかの階層に順位付けまたは順序付けされることもある。グループ化は、また、優先順位などの含まれるサービス１１７のいくつかの定性評価に基づくこともある。
【００１６】
サービス優先順位リスト１２７は、可用性（利用可能性）の優先順位に基づいて、実行されるサービス１１７の順位付けを具体化する。サービス優先順位リスト１２７は、実行されるサービス１１７またはそのサブセットの全体で構成することもある。複数のサービス優先順位リスト１２７が、１つ以上の予め定義された状況の関数として検索用に記憶されてもよい。
【００１７】
依存関係モデル１３１は、実行されるサービス１１７との間の関係と依存性を具体化する。依存関係モデル１３１の構造は、ツリー、いくつかの他の周期性の有向グラフ、または別のデータ構造を具体化することもある。サービス１１７を表す依存関係モデル１３１内のノードは、実行中に他のサービス１１７を呼び出すサービス１１７の関数として親ノードまたは子ノードに関連付けられることもある。依存関係モデル１３１は、完全に接続されるグラフを具体化、または独立のノードを可能にすることもある。
【００１８】
クライアント１０４は、ネットワーク１０７に接続される複数のクライアント装置を表す。クライアント１０４は、例えば、計算機システムなどのプロセッサー−ベースのシステムで構成することもある。このような計算機システムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、携帯電話、スマートフォン、家庭用双方向通信端末、音楽再生器、ウエブパッド、タブレット計算機システム、ゲーム操作卓、電子書籍読取器、またはこのような性能を持つ他の装置の形態で、具体化されることもある。
【００１９】
クライアント１０４は、クライアントアプリケーション１４２および／または他のアプリケーションなどの、種々のアプリケーションを実行するように構成されることもある。クライアントアプリケーション１４２は、例えば、計算環境１０１および／または他のサーバで扱われるネットワーク内容にアクセスするクライアント１０４内で、実行されることもある。クライアントアプリケーション１４２は、例えば、ブラウザ、モバイルアプリケーション、などに対応する。クライアント１０４は、例えば、ブラウザ、モバイルアプリケーション、電子メールアプリケーション、ソーシャル通信網アプリケーション、および／または他のアプリケーションなどの、クライアントアプリケーション１４２の範囲を超えて、アプリケーションを実行するように構成されることもある。
【００２０】
クライアント１０４は、要求１２２を計算環境１０１に交信して、応答１２３を得ることもある。これら要求１２２は、計算環境１０１により提供されるネットワークページの要求、データの要求、計算環境１０１で実行されるある機能またはアプリケーションの要求、または他形式の要求で構成する。この要求は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ファイル転送プロトコル（ＦＴＰ）、シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、別のプロトコル、またはいくつかの他の方法で交信されることもある。要求１２２の交信は、クライアントアプリケーション１４２により促進される。例えば、ネットワークページ用の要求１２２は、ブラウザクライアントアプリケーション１４２により促進される。他のクライアントアプリケーション１４２も、また、計算環境１０１への要求１２２の通信を促進するために実行されることもある。
【００２１】
次に、ネットワーク化された環境１００の種々の構成要素の動作の一般的な記述が、提供される。はじめに、計算環境１０１は、クライアント１０４から交信される要求１２２の取り扱いおよび応答１２３の生成を促進するために１つ以上のサービス１１７を実行する。タイムアウト管理アプリケーション１１４は、実行されるサービス１１７の各々に応じた待ち時間情報を得る。いくつかの実施形態で、待ち時間データは、監視過程から得られることもある。例えば、サービス１１７は、監視過程にアクセス可能なログに待ち時間データを報告し、監視過程は、次に、タイムアウト管理アプリケーション１１４への通信用にデータを集計する（ａｇｇｒｅｇａｔｅ）こともある。サービス１１７は、予め定義された間隔で、またはいくつかのイベントに応答して、ログに待ち時間データを交信することもある。待ち時間データは、このログへの通信の時間の最新待ち時間、またはある期間で集計される待ち時間データで構成することもある。この待ち時間データは、また、別の方法でログに交信されることもある。
【００２２】
別の実施形態では、待ち時間データは、サービス１１７の問合せ機能性により得られる。例えば、サービス１１７は、待ち時間データを保持する機能性およびサービス１１７への特定の呼出に応答して、その待ち時間データを返す機能性を備えることもある。待ち時間データは、また、サービス１１７を呼び出した実体からのデータの関数として待ち時間を決定して得られることもある。また、他の方法を使用して、タイムアウト管理アプリケーション１１４により、待ち時間データを得ることもある。
【００２３】
タイムアウト管理アプリケーション１１４は、次に、計算環境１０１の合計能力に対する、計算環境１０１で使用されているシステム資源の量を決定する。システム資源の量は、他のデータ、情報とログと共に、得た待ち時間データの関数として決定される。次に、タイムアウト管理アプリケーション１１４は、使用したシステム資源の量と関連するイベントに応答して、選択するサービスのタイムアウト１２１を調整する。
【００２４】
いくつかの実施形態では、タイムアウト管理アプリケーション１１４は、計算環境１０１で使用されているシステム資源の量が、既定の閾値または予め定義された範囲の最小値以下に落ちた場合に、サービス１１７のタイムアウト１２１を調整してもよい。これら実施形態では、このような状況は、サービス１１７がそのタイムアウトの増加を許容するのに利用可能な処理能力を計算環境１０１が有することを示すことになる。
【００２５】
他の実施形態では、タイムアウト管理アプリケーション１１４は、その計算環境１０１で使用されているシステム資源の量が既定の閾値を超えるか、または予め定義された範囲の最大値を超える場合に、サービス１１７のタイムアウト１２１を調整することもある。これら実施形態では、このような状況は、実行されるサービス１１７が、そのタイムアウト１２１を超える待ち時間を体験することになるような容量に計算環境１０１が在るか、このような容量に近づいていることを示すことになり、ユーザ障害を増加させる結果になる。選択されたサービス１１７のタイムアウト１２１を減少すると、その選択されたサービス１１７の障害を増加することになるが、他のサービス１１７が、計算環境１０１の利用可能なシステム資源の利益を得ることを可能にする。
【００２６】
タイムアウト管理アプリケーション１１４は、また、システム信頼性に応じてサービス１１７のタイムアウト１２１を調整することもある。例えば、タイムアウト管理アプリケーション１１４は、成功裏に実行するサービス１１７呼出の数、および／または他のデータに基づき、システム信頼性の量を決定することもある。タイムアウト１２１の修正は、システム信頼性が既定の信頼性閾値を下回る範囲の場合に、起動（トリガ）されることもある。他のイベントもまた、タイムアウト管理アプリケーション１１４によりタイムアウト１２１の修正を起動することもある。
【００２７】
タイムアウト管理アプリケーション１１４によるタイムアウト１２１の修正を起動するイベントが発生すると、タイムアウト管理アプリケーション１１４は、そのタイムアウト１２１が修正されるであろうサービス１１７を選択しなければならない。いくつかの実施形態では、この選択は、実行されるサービス１１７と関連するサービス階層１２４に応じて実行される。非限定例として、サービス１１７は、誤り無しに呼出を完了するサービス１１７の優先順位に応じて、高優先順位、中優先順位及び低優先順位サービス階層１２４などの、複数の階層に組織化されることもある。タイムアウト管理アプリケーション１１４が、利用可能なサービス容量（ｓｅｒｖｉｃｅ  ｃａｐａｃｉｔｙ）が高いことに起因してサービス１１７のタイムアウト１２１を修正する場合、タイムアウト管理アプリケーション１１４は、高優先順位サービス１１７の可用性を最大化するために、高優先順位サービス階層１２４に属するサービス１１７を選択することもある。タイムアウト管理アプリケーション１１４が、利用可能なサービス容量が低いことに起因してサービス１１７のタイムアウト１２１を修正する場合には、タイムアウト管理アプリケーション１１４は、高優先順位サービス１１７への影響を最小限にするために、低優先順位サービス階層１２４または中優先順位サービス階層１２４に属するサービス１１７を選択することもある。サービス階層１２４は、同様に、タイムアウト１２１の修正にサービス１１７を選択する他の方法で使用されることもある。
【００２８】
タイムアウト管理アプリケーション１１４は、また、サービス優先順位リスト１２７に少なくとも一部基づき、タイムアウト１２１の修正のためのサービス１１７を選択することもある。サービス優先順位リスト１２７は、実行されるサービス１１７の順位付けまたは順序付けされたリストを含み、サービス１１７のこの選択が、サービス優先順位リスト１２７上のその配置に基づくこともある。タイムアウト管理アプリケーション１１４は、単一のサービス優先順位リスト１２７または複数のサービス優先順位リスト１２７を参照することもある。例えば、複数のイベントがサービス１１７のタイムアウト１２１の修正を起動する実施形態では、タイムアウト管理アプリケーション１１４は、このイベントに応じて複数のサービス優先順位リスト１２７の１つ以上に問い合わせすることもある。サービス優先順位リスト１２７は、また、タイムアウト１２１の修正用にサービス１１７を選択する他の方法で使用されることもある。
【００２９】
タイムアウト管理アプリケーション１１４は、依存関係モデル１３１に少なくとも一部基づきタイムアウト１２１の修正のためのサービス１１７を選択することもある。例えば、依存関係モデル１３１が独立のサービス１１７から成る実施形態では、タイムアウト管理アプリケーション１１４は、他の実行されるサービス１１７への影響を最小限にするために、独立のサービス１１７のタイムアウト１２１を優先的に修正することもある。タイムアウト１２１を増加する別の実施形態では、タイムアウト管理アプリケーション１１４は、より多くのサービス１１７の可用性を最大化するために、複数サービス１１７による依存先であるサービス１１７のタイムアウト１２１を優先的に修正することもある。
【００３０】
タイムアウト管理アプリケーション１１４が、依存関係モデル１３１に少なくとも一部基づきタイムアウト１２１の修正のためのサービス１１７を選択する実施形態では、タイムアウト管理アプリケーション１１４は、タイムアウト１２１の修正のための更なるサービス１１７を再帰的に選択することもある。例えば、子サービス１１７がそのタイムアウト１２１を増加させるなら、タイムアウト管理アプリケーション１１４は、親サービス１１７のタイムアウト１２１を再帰的に増加することもある。別の例として、親サービス１１７がそのタイムアウト１２１を減少させるなら、タイムアウト管理アプリケーション１１４は、子サービス１１７のタイムアウト１２１を再帰的に減少することもある。
【００３１】
タイムアウト管理アプリケーション１１４は、また、待ち時間またはサービス１１７の実行と関連する使用されている資源量に基づき、タイムアウト１２１の修正のためのサービス１１７を選択することもある。例えば、高待ち時間サービス１１７は、そのタイムアウトを増加させて、サービス１１７呼出障害の可能性を減少することもある。別の例として、高待ち時間サービス１１７は、そのタイムアウトを減少させて、その呼出の障害を増加することもあるが、また、他のサービス１１７用にサービス容量のより大きな量を空ける。サービス１１７の実行と関連する待ち時間または使用されている資源量は、同様に、他の方法で使用されることもある。
【００３２】
タイムアウト１２１の修正用にサービス１１７を選択する方法の以前に考察した例は、非限定例であり、タイムアウト１２１の修正のためのサービス１１７を選択する他の方法も、また、使用されることもある。更に、他の方法及び、任意の以前に考察した方法は、単独または互いに相まって使用されることもある。例えば、サービス１１７は、サービス優先順位リスト１２７に従って、各サービス階層１２４範囲内に順位付けされるサービス階層１２４に組織化されることもある。他の方法の組合せも、使用されることもある。
【００３３】
サービス１１７がタイムアウト１２１の修正のために選択されると、タイムアウト管理アプリケーション１１４は、サービス１１７に新しいタイムアウト１２１を割当てる。新しいタイムアウト１２１は、修正されるべきタイムアウト１２１の関数であることもある。例えば、新しいタイムアウト１２１は、元のタイムアウト１２１の割合（パーセンテージ）を含むこともある。新しいタイムアウト１２１は、また、既定の間隔で増分または減分させた元のタイムアウト１２１と妥協することもある。サービス階層１２４を使用する実施形態では、新しいタイムアウト１２１は、サービス１１７が属するサービス階層１２４に基づくこともある。例えば、高優先順位サービス階層１２４のサービス１１７は、元のタイムアウト１２１より５秒長い新しいタイムアウト１２１を割当てられることもあり、一方、中間サービス階層１２４のサービス１１７は、元のタイムアウト１２１より３秒長い新しいタイムアウト１２１を割当てられることもある。サービス階層１２４は、また、新しいタイムアウト１２１を割当てる別の方法で使用されることもある。
【００３４】
サービス１１７が依存関係モデル１３１の使用に関連する実施形態では、新しいタイムアウト１２１は、親サービスまたは子サービス１１７に対応するタイムアウトの関数であることもある。非限定例として、新しいタイムアウト１２１は、複数の子サービス１１７のタイムアウトの加算より大きいある量から成ることもある。別の例として、新しいタイムアウト１２１は、親サービス１１７に関連するタイムアウト１２１未満のある量から成ることもある。他の関数を使用して、親タイムアウトと子タイムアウトを互いに対して設定することもある。
【００３５】
更に、新しいタイムアウト１２１の値は、最大または最小の受容可能なタイムアウト１２１の関数であることもある。例えば、タイムアウト１２１は、ある最小閾値を下回って設定されないかもしれない。選択されたサービス１１７のタイムアウト１２１が、既にその最小閾値にあるなら、タイムアウト管理アプリケーション１１４は、異なるサービス１１７を選択することもある。最小タイムアウト１２１閾値と最大タイムアウト１２１閾値は、すべてのサービス１１７に適用される単一の閾値から成ってもよいし、または関連するサービス１１７に応じて変化する閾値から成ってもよい。他の方法を使用して、依存関係モデル１３１に少なくとも一部基づき、新しいタイムアウト１２１を決定することもある。
【００３６】
タイムアウト管理アプリケーション１１４が、新しいタイムアウト１２１を選択されたサービス１１７に割当てた後、タイムアウト管理アプリケーション１１４は、実行されるサービス１１７の待ち時間データを監視し続ける。これまで、タイムアウト１２１の修正のために単一のサービス１１７を選択するという状況でタイムアウト管理アプリケーション１１４の操作を論じたが、タイムアウト管理アプリケーション１１４は、また、いくつかの実施形態のイベントに応答してタイムアウト１２１の修正のために複数サービス１１７を選択することもある。
【００３７】
タイムアウト管理アプリケーション１１４は、サービス１１７を反復選択することもあり、使用されているシステム資源の量が予め定義された範囲内にあるまでなど、または別の方法により、計算環境１０１の状態に応じてそのタイムアウト１２１を修正することもある。
【００３８】
次の図２は、種々の実施形態に従って、タイムアウト管理アプリケーション１１４（図１）の一部の動作の１つの例を提供する流れ図を示す。図２の流れ図は、ここで記述するように、タイムアウト管理アプリケーション１１４の一部の動作を実装することに使用される多くの異なる形式の機能的配置の単なる例を提供すると理解されたい。代替として、図２の流れ図は、１つ以上の実施形態に従って、計算環境１０１（図１）で実装される方法のステップの例を表現すると見做されることもある。
【００３９】
図２は、使用されているサービス容量の量が予め定義された許容範囲外にある間に、実行されるサービス１１７（図１）のタイムアウト１２１（図１）を再設定するタイムアウト管理アプリケーション１１４の例の実施形態を示す。サービス１１７は、反復的に選択され、そのタイムアウト１２１は、使用されているサービス容量が予め定義された範囲内になるまで修正される。
【００４０】
箱２０１から始めて、タイムアウト管理アプリケーション１１４は、計算環境１０１内で実行される少なくとも１つのサービス１１７と関連付けられた待ち時間データを得る。いくつかの実施形態では、実行されるサービス１１７は、その待ち時間と関連付けられたデータにより、ログ・ファイルを更新する。このデータは、このログ・ファイルが更新されるインスタンスでの待ち時間、予め定義された時限にわたる待ち時間の集計関数または他のデータで構成することもある。他の実施形態では、タイムアウト管理アプリケーション１１４は、待ち時間データを返す実行サービス１１７の機能性に直接問い合わせることもある。他の方法も使用して、待ち時間データを得ることもある。
【００４１】
次に、箱２０４で、タイムアウト管理アプリケーション１１４は、計算環境１０１の使用されているサービス容量の量を計算する。使用されているサービス容量の量は、計算環境１０１の全体、または指定されたサブ構成要素あるいは１組のサブ構成要素に対応することもある。使用されているサービス容量の量は、理解できるように、待ち時間データ、別の監視またはプロファイリングサービスから得られる他のデータ、又は他のデータの関数として計算されることもある。
【００４２】
箱２０７で、タイムアウト管理アプリケーション１１４は、使用されているサービス容量の量が、予め定義された範囲外かを判定する。この予め定義された範囲は、利用可能なサービス容量の合計または他のデータの関数、または事前設定の独立の値であることもある。使用されているサービス容量の量が、この予め定義された範囲内である場合には、過程を終了し、計算環境１０１が受容可能な能力で動作し、サービス１１７のタイムアウト１２１を調整する必要がないことを示す。
【００４３】
使用されているサービス容量の量が予め定義された範囲の外なら、この過程は、タイムアウト管理アプリケーション１１４が、タイムアウト１２１再設定用のサービス１１７を選択する箱２１１に移動する。いくつかの実施形態では、サービス１１７は、少なくとも１つのサービス階層１２４（図１）と関連付けられる。このような実施形態では、この選択は、サービス階層１２４に応じて実行される。例えば、使用されているサービス容量の量が、予め定義された範囲の最小値の下なら、タイムアウト管理アプリケーション１１４は、高優先順位サービス階層１２４でサービス１１７を選択して、より多くのサービス容量をこれに割当てるために、そのタイムアウト１２１を増加させることもある。別の例として、使用されているサービス容量の量が、予め定義された範囲の最大値を超えるなら、タイムアウト管理アプリケーション１１４は、サービス１１７を低優先順位サービス階層１２４で選択して、より低い優先順位サービス１１７で使用されている能力を低減するために、そのタイムアウト１２１を減少させることもある。サービス階層１２４は、また、サービス１１７を選択する他の方法で使用される。
【００４４】
少なくとも１つのサービス優先順位リスト１２７のサービス１１７を順位付けする実施形態で、タイムアウト管理アプリケーション１１４による選択は、サービス優先順位リスト１２７に応じて実行されることもある。例えば、使用されているサービス容量の量が予め定義された範囲の最大値を超えるなら、タイムアウト管理アプリケーション１１４は、修正用にサービス優先順位リスト１２７でより低い順位のサービス１１７を選択して、より高い優先順位サービス１１７への影響を最小限にすることもある。使用されているサービス容量の量が、予め定義された範囲の最小値の下なら、タイムアウト管理アプリケーション１１４は、サービス優先順位リスト１２７でより高い順位のサービス１１７を選択して、これら高優先順位サービス１１７の信頼性を維持することもある。サービス優先順位リスト１２７は、別の方法のタイムアウト１２１修正のためのサービス１１７の選択で使用されることもある。
【００４５】
サービス１１７が依存関係モデル１３１（図１）と関連付けられる実施形態では、選択は、依存関係モデルの関数であることもある。例えば、使用されているサービス容量の量が、予め定義された閾値の最小値の下なら、タイムアウト管理アプリケーション１１４は、依存サービス１１７の信頼性を改善するために、他のサービス１１７から依存されているサービス１１７を選択することもある。別の例として、使用されているサービス容量の量が、予め定義された閾値の最大値を超えるなら、タイムアウト管理アプリケーション１１４は、他のサービスと独立しているサービス１１７を選択してそのタイムアウト１２１を低減させ、他のサービス１１７への影響を最小限にすることもある。依存関係モデル１３１は、同様に、他の方法でタイムアウト１２１修正のためのサービス１１７を選択することに使用されることもある。
【００４６】
サービス１１７の選択は、待ち時間データに基づくこともある。例えば、高待ち時間サービス１１７によるサービス容量の過度の使用を防止するために、高待ち時間サービス１１７が選択されて、そのタイムアウト１２１を低減させることもある。サービス１１７のこの選択は、また、最大または最小タイムアウト１２１閾値に基づくこともある。例えば、タイムアウト管理アプリケーション１１４は、サービス１１７のタイムアウト１２１が、最小タイムアウト１２１閾値に既に等しい場合、そのタイムアウト１２１を低減させるようにそのサービス１１７を選択することはないだろう。また、他のデータ、機能性と方法を使用して、サービス１１７を選択することもある。
【００４７】
サービス１１７を選択後、選択されたサービス１１７のタイムアウト１２１は、箱２１４内で再設定される。新しいタイムアウト１２１値は、使用されているサービス容量の量の関数であることもある。例えば、使用されているサービス容量の量が、予め定義された閾値の最大値を超える場合には、新しいタイムアウト１２１値は、元のタイムアウト１２１値未満であることもある。サービス１１７が依存関係モデル１３１と関連付けられる実施形態では、新しいタイムアウト１２１値は、関連するサービス１１７のタイムアウト１２１値の関数であることもある。例えば、選択されたサービス１１７が、そのタイムアウト１２１を減少されている場合、新しいタイムアウト１２１値は、選択されたサービス１１７が依存する複数のサービス１１７のタイムアウト１２１の合計または他の関数を下回って設定されないこともある。別の例として、サービス１１７のタイムアウト１２１の再設定は、また、選択されたサービス１１７が依存する複数のサービスのためにタイムアウト１２１の反復的な再設定を必要とすることもある。他の方法も、また、新しいタイムアウト１２１値を決定するために、タイムアウト管理アプリケーション１１４により使用されることもある。
【００４８】
選択されたサービス１１７のタイムアウト１２１を再設定すると、この過程は、使用されているサービス容量の量が予め定義された範囲内になるまで、サービス１１７を選択するステップ及びそのタイムアウト１２１を再設定するステップを繰り返す。
【００４９】
次の図３を参照すると、種々の実施形態に従う、箱２１４（図２）のタイムアウト管理アプリケーション１１４（図１）の依存関係モデル１３１（図１）を使用する、反復タイムアウト１２１（図１）再設定の１つの例を提供する流れ図が示されている。図３の流れ図は、ここで記述するように、タイムアウト管理アプリケーション１１４の一部の動作の実装に使用され得る多くの異なる形式の機能的配置の単なる例を提供すると理解されたい。代替として、図３の流れ図は、１つ以上の実施形態に従って、計算環境１０１（図１）で実装される方法のステップの例を表現すると見做されることもある。
【００５０】
図３は、依存関係モデル１３１を実装するタイムアウト管理アプリケーション１１４の１つの実施形態を記述する。そのタイムアウト１２１を修正された選択されたサービス１１７（図１）は、これが依存する複数の子サービス１１７と関連付けられることもある。子サービス１１７のタイムアウト１２１は、親サービス１１７のタイムアウト１２１未満であるように合計すべきである。子サービス１１７のタイムアウト管理アプリケーション１１４は、依存関係モデル１３１を再帰的に横断して、子サービス１１７タイムアウト１２１の合計が、確実にその親サービス１１７のタイムアウト１２１未満であるようにタイムアウト１２１を修正する。
【００５１】
箱３０１から始めて、親サービス１１７が箱２１１（図２）でより低い値にタイムアウト１２１を再設定された後に、タイムアウト管理アプリケーション１１４は、依存関係モデル１３１を使用して選択された親サービス１１７の子サービス１１７を得る。子サービス１１７を得ることは、ツリー横断アルゴリズム、幅優先探索または深さ優先探索、などのグラフ探索アルゴリズム、あるいは別の方法を通して達成されることもある。
【００５２】
箱３０４で、選択されたサービス１１７が、子サービス１１７を持たないなら、過程を終了する。そうでなければ、箱３０７で、タイムアウト管理アプリケーション１１４は、得られた子サービス１１７のタイムアウト１２１を合計する。選択されたサービス１１７に関して、子サービス１１７タイムアウト１２１の合計が、選択されたサービス１１７のタイムアウト１２１未満なら、この過程を終了する。そうでなければ、子サービス１１７のタイムアウト１２１の合計が、選択されたサービス１１７のタイムアウト１２１を超える場合には、少なくとも１つの子サービス１１７のタイムアウト１２１は、再設定されなければならない。
【００５３】
箱３１１で、少なくとも１つの子サービス１１７は、タイムアウト１２１再設定のために選択される。いくつかの実施形態では、子サービス１１７の全体が、選択されることもある。他の実施形態では、子サービス１１７のサブセットが選択されることもある。この選択は、箱２１１（図２）に関連して記述されるいくつかの方法または別の方法により、子サービス１１７（図１）に関連付けられた待ち時間データ、サービス階層１２４（図１）、サービス優先順位リスト１２７（図１）、依存関係モデル１３１、最小または最大タイムアウト閾値、あるいは他のデータに応じて行われる。
【００５４】
箱３１４で、子サービス１１７を選択すると、その対応するタイムアウト１２１は、箱２１４で記述されるようにまたは別の方法で、再設定される。子サービス１１７を再設定後に、この過程は、再設定される子サービス１１７の各々に対して繰り返される。元の選択されたサービス１１７を含む、及び元の選択されたサービス１１７から由来する、すべてのサービス１１７が、その子サービス１１７のタイムアウト１２１の合計より大きいタイムアウト１２１を持つか、または子サービス１１７を持たなくなるまで、この過程は続く。
【００５５】
図４を参照すると、本開示の実施形態に従う計算環境１０１の基本ブロック図が示されている。計算環境１０１は、１つ以上の計算装置４０１を含む。各計算装置４０１は、例えば、プロセッサー４０２および記憶装置４０４を持つ少なくとも１つのプロセッサー回路を含み、これら両者は、ローカルインターフェイス４０７に結合される。この目的で、各計算装置４０１は、例えば、少なくとも１つのサーバコンピュータまたはこのような装置で構成することもある。ローカルインターフェイス４０７は、理解される様に、例えば、番地／制御バスまたは他のバス構造を付随したデータバスで構成することもある。
【００５６】
記憶装置４０４に記憶されるのは、プロセッサー４０２で実行可能なデータと複数の構成要素の両方である。具体的には、記憶装置４０４に記憶され、プロセッサー４０２で実行可能なものは、タイムアウト管理アプリケーション１１４（図１）、対応するタイムアウト１２１（図１）を持つ１つ以上のサービス１１７（図１）、および潜在的他のアプリケーションである。また、記憶装置４０４に記憶されるものは、サービス階層１２４（図１）で構成するデータ記憶１１１（図１）、サービス優先順位リスト１２７（図１）または依存関係モデル１３１（図１）、および他のデータであることもあり。更に、基本ソフトウェアは、記憶装置４０４に記憶され、プロセッサー４０２実行可能なこともある。
【００５７】
理解される様に、記憶装置４０４に記憶され、プロセッサー４０２で実行可能な他のアプリケーションであることもあることを理解されたい。ここで考察する任意の構成要素をソフトウェア形式で実装すると、いくつかのプログラミング言語の１つ、例えば、Ｃ、Ｃ＋＋、Ｃ＃、オブジェクティブＣ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、ＰＨＰ、ＶｉｓｕａｌＢａｓｉｃ（登録商標）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ、Ｆｌａｓｈ（登録商標）、または他のプログラミング言語などが使用される。
【００５８】
いくつかのソフトウェア構成要素は、記憶装置４０４に記憶され、プロセッサー４０２により実行できる。この点で、用語「実行可能な」は、プロセッサー４０２で最終的に稼動可能な形式のプログラムファイルを意味する。実行可能プログラムの例は、例えば、記憶装置４０４の即時呼び出し部分にロード可能で、プロセッサー４０２で稼動可能な形式で機械コードに変換可能なコンパイルされたプログラム、記憶装置４０４の即時呼び出し部分にロード可能で、プロセッサー４０２で実行されるなオブジェクトコードなどの適切な形式で表せるソースコード、または別の実行可能プログラムで解釈され、記憶装置４０４の即時呼び出し部分に命令を発生させてプロセッサー４０２等で実行されるソースコードであることもある。実行可能プログラムは、例えば、揮発性メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、ハードドライブ、半導体ドライブ、ＵＳＢフラッシュドライブ、メモリカード、コンパクトディスク（ＣＤ）またはデジタル多目的ディスク（ＤＶＤ）などの光ディスク、フロッピーディスク、磁気テープ、あるいは他の記憶装置構成要素を含めて、記憶装置４０４の任意の部分または構成要素に記憶されることもある。
【００５９】
記憶装置４０４は、両揮発性と不揮発性メモリおよびデータ格納構成要素を含めて、ここで定義される。揮発性構成要素は、電力の損失でデータ値を保持しないものらである。不揮発性構成要素は、電力の損失でデータを保持するものらである。こうして、記憶装置４０４は、、例えば、揮発性メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、ハードディスク、半導体ドライブ、ＵＳＢフラッシュドライブ、メモリカード読取り装置を経てアクセスされるメモリカード、関連フロッピーディスクドライブを経てアクセスされるフロッピーディスク、光ディスクドライブを経てアクセスされる光ディスク、適切なテープドライブを経てアクセスされる磁気テープ、および／または他の記憶装置構成要素、または任意の２つ以上のこれら記憶装置構成要素の組合せで構成することもある。更に、ＲＡＭは、例えば、静的ランダムアクセス記憶装置（ＳＲＡＭ）、動的揮発性メモリ（ＤＲＡＭ）、または磁気揮発性メモリ（ＭＲＡＭ）と他のこのような装置で構成することもある。ＲＯＭは、例えば、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、または他のこのような記憶装置で構成することもある。
【００６０】
また、プロセッサー４０２は、複数のプロセッサー４０２および／または複数のプロセッサーコアを表し、記憶装置４０４は、並列処理回路内でそれぞれ動作する複数の記憶素子４０４を表すこともある。このような場合に、ローカルインターフェイス４０７は、任意の２つの複数のプロセッサー４０２との間、任意のプロセッサー４０２との間または任意の記憶素子４０４、または任意の２つの記憶素子４０４などとの間の通信を促進する適切なネットワークであることもある。ローカルインターフェイス４０７は、例えば、負荷平衡の実行を含めて、通信を調整するように設計される追加システムで構成することもある。プロセッサー４０２は、電気的な構造またはいくつかの他の利用可能な構造でなることもある。
【００６１】
タイムアウト管理アプリケーション１１４、およびここで記述される他の種々のシステムは、前述の汎用ハードウェアで実行されるソフトウェアまたはコード内で具体化されることもあるが、代替のそれらも、また専用のハードウェアまたはソフトウェア／汎用ハードウェアと専用のハードウェアの組合せ内で具体化される。専用のハードウェア内で具体化されるなら、それぞれは、いくつかの方法の１つまたはこの組合せを使用する回路または状態マシンとして実装される。これら方法は、これに限定されないが、１つ以上のデータ信号のアプリケーション上に種々の論理関数を実装する論理ゲートを持つ離散形論理回路、適切な論理ゲートを持つ特定用途向けＩＣ（ＡＳＩＣ）、フィールドプログラム可能なゲートアレイ（ＦＰＧＡ）、または他の構成要素等を含むこともある。このような方法は、一般的に当業者によく知られ、故に、ここで詳述しない。
【００６２】
図２、３の流れ図は、タイムアウト管理アプリケーション１１４の一部の実行の機能性と動作を表示する。ソフトウェア内に具体化されると、各ブロックは、特定の論理機能を実装するプログラム命令で構成するコードのモジュール、区分、または部分を表すこともある。このプログラム命令は、計算機システムまたは他のシステム内のプロセッサー４０２などの適切な実行システムで認識可能な数値命令で構成するプログラミング言語、または機械コードで書き込まれる人間の−読取り可能命令文で構成するソースコード形式で具体化されることもある。この機械コードは、ソースコード等から変換されることもある。ハードウェア内に具体化されると、各ブロックは、特定の論理機能を実装する回路またはいくつかの相互接続回路を表すこともある。
【００６３】
図２、３の流れ図は、実行の特定の順序を表示するが、実行の順序は表現される順序と異なること理解されている。例えば、２つ以上のブロックの実行の順序は、表示される順序に比べて、スクランブル化されることもある。また、図２、３で連続して示す２つ以上のブロックは、同時にまたは部分的同時発生で実行されることもある。更に、いくつかの実施形態では、図２、３に示す１つ以上のブロックは、飛越または省略されることもある。更に、かなり多数の計数、状態変数、警告手旗信号、または通報は、拡張ユーティリティ、課金、性能測定、または故障修理補助等を供給するために、ここで記述される論理流れに付加されることもある。すべてのこのような変形形態は、本開示の範囲内であると理解されている。
【００６４】
また、ここで記述される任意の論理またはアプリケーションは、ソフトウェアまたはコードで構成するタイムアウト管理アプリケーション１１４を含めて、例えば、計算機システムまたは他のシステム内のプロセッサー４０２などの命令実行システムと共に使用またはこれに関連して、任意の非一時的なコンピュータ読取り可能媒体内で具体化できる。この意味で、この論理は、例えば、コンピュータ読取り可能媒体から読み出し転送され、命令実行システムで実行可能な命令と通知書を含む命令文で構成することもある。本開示との関連で、「コンピュータ読取り可能媒体」は、命令実行システムと共に使用またはこれに関連して、ここで記述される論理またはアプリケーションの記憶、または維持を含む任意の媒体であり得る。
【００６５】
本開示の種々の実施形態は、続く付記に鑑みて記述できる。
【００６６】
１．少なくとも１つの計算装置内で実行可能なプログラムを具体化する非一時的なコンピュータ読取り可能媒体は、以下で構成する。
【００６７】
各サービスが複数のタイムアウトと関連し、複数の階層の１つと関連し、各タイムアウトが１対のサービスに対応し、少なくとも１つのサービスがサブセット子サービスの１つと関連する親サービスの１つである、複数のサービスから待ち時間データを得るコードと、
【００６８】
この時間間隔中に得られる待ち時間データに少なくとも一部基づき、時間間隔に対して集計待ち時間（ａｇｇｒｅｇａｔｅ  ｌａｔｅｎｃｙ）を計算するコードと、
【００６９】
この集計待ち時間に少なくとも一部基づき、使用されているサービス容量の量を計算するコードと、
【００７０】
この階層、サービス依存関係、集計待ち時間、または優先順位リストに少なくとも一部基づき、サービスの１つを選択するコードと、
【００７１】
使用されているサービス容量の量が第１の予め定義された閾値を超えるのに応じて、選択されたサービスの１つに対応するタイムアウトの１つを減少するコードと、
【００７２】
第２に記載の予め定義された閾値を下回る範囲内で使用されているサービス容量の量に応じて、選択されたサービスの１つに対応するタイムアウトの１つを増加するコード。
【００７３】
２．サービスの１つを選択するコードが、更に信頼性閾値に少なくとも一部基づく、付記１に記載の非一時的なコンピュータ読取り可能媒体。
【００７４】
３．選択されたサービスの１つが子サービスの１つであり、更に、選択されたサービスの１つと関連するサービスの親の１つに応じたこのタイムアウトの１つに少なくとも一部基づき、サービスの１つの選択に応じてこのタイムアウトの１つを再設定するコードを備える、付記１に記載の非一時的なコンピュータ読取り可能媒体。
【００７５】
４．システムは、以下を備える。
【００７６】
少なくとも１つの計算装置と、
【００７７】
少なくとも１つの計算装置内で実行可能なタイムアウト管理アプリケーションと、を備え、このタイムアウト管理アプリケーションが以下を備える。
【００７８】
各待ち時間が複数のサービスの１つに対応する、複数の待ち時間を監視する論理と、
【００７９】
この待ち時間に少なくとも一部基づき、１対のサービスと関連するタイムアウトを設定する論理と、
【００８０】
５．このタイムアウト管理が、更に、この待ち時間に少なくとも一部基づき、時間間隔に対して集計待ち時間を計算する論理を備え、このタイムアウトが、更にこの集計待ち時間に少なくとも一部基づく、付記４に記載のシステム。
【００８１】
６．このタイムアウトが更に、使用されているサービス容量の量に少なくとも一部基づく、付記４に記載のシステム。
【００８２】
７．このタイムアウトを設定する論理が、全体のサービス容量に対する使用されているサービス容量の量が閾値を下回ることに応じてこのタイムアウトを増加する、付記６に記載のシステム。
【００８３】
８．このタイムアウトを設定する論理が、全体のサービス容量に対する使用されているサービス容量の量が閾値を超えることに応じてこのタイムアウトを減少する、付記６に記載のシステム。
【００８４】
９．タイムアウト管理が更に、この選択されたサービスで使用されているシステム資源の量のサブセットに少なくとも一部基づき、サービスの１つを選択する論理を備える、付記６に記載のシステム。
【００８５】
１０．タイムアウト管理が更に、サービス優先順位リストに少なくとも一部基づきこのサービスの１つ選択する論理で構成し、このタイムアウトがこの選択されたサービスの１つと関連する、付記４に記載のシステム。
【００８６】
１１．タイムアウト管理が更に、信頼性閾値に少なくとも一部基づきこのサービスの１つを選択する論理を備える、付記４に記載のシステム。
【００８７】
１２．複数の待ち時間を監視する論理が更に、複数サービスからログデータを得る論理を備える、付記４に記載のシステム。
【００８８】
１３．方法は、以下のステップで構成する。
【００８９】
計算装置内で、複数のサービスから待ち時間データを得、各サービスが複数のタイムアウトを持ち、各タイムアウトがこのサービスの別のの１つと関連付けられ、
【００９０】
この計算装置内で、この待ち時間データに少なくとも一部基づきこのサービスの１つを選択し、
【００９１】
この計算装置内で、この選択されたサービスの１つに応じてこのタイムアウトの１つを再設定し、
【００９２】
１４．このサービスの少なくとも１つが、このサービスのサブセットに依存する、付記１３に記載の方法。
【００９３】
１５．この選択されたサービスの１つが、このサービスのサブセットの１つであり、このタイムアウトの１つの再設定が、この選択されたサービスの１つに依存するサービスの１つに応じて、このタイムアウトの１つに少なくとも一部基づく、付記１４に記載の方法。
【００９４】
１６．サービスの１つを選択することが更に、依存関係の度合に少なくとも一部基づく、付記１４に記載の方法。
【００９５】
１７．このサービスの１つを選択することが更に、優先順位リストに少なくとも一部基づく、付記１３に記載の方法。
【００９６】
１８．このサービスの各々が、複数の階層の１つと関連し、このサービスの１つを選択することが更に、この階層に基づく、付記１３に記載の方法。
【００９７】
１９．更に、待ち時間データに少なくとも一部基づき使用されているサービス容量の量をこの計算装置内で決定し、サービスの１つを選択するステップおよびタイムアウトの１つを再設定することが、予め定義された範囲の外にある使用されているサービス容量の量に対応して、実行される、付記１３に記載の方法。
【００９８】
２０．更に、この使用されているサービス容量の量が、この予め定義された範囲内になるまで、このサービスの１つを選択し、このタイムアウトの１つを再設定するステップを反復する、付記１９に記載の方法。
【００９９】
このコンピュータ読取り可能媒体は、例えば、磁気、光、または半導体媒体などの、多くの物理的媒体の１つで構成できる。適切なコンピュータ読取り可能媒体の更に特定の例は、これに限定されないが、磁気テープ、磁気フロッピーディスク、磁気ハードドライブ、メモリカード、半導体ドライブ、ＵＳＢフラッシュドライブ、または光ディスクを含むことになる。また、このコンピュータ読取り可能媒体は、例えば、静的ランダムアクセス記憶装置（ＳＲＡＭ）と動的揮発性メモリ（ＤＲＡＭ）、または磁気揮発性メモリ（ＭＲＡＭ）を含めて、揮発性メモリ（ＲＡＭ）であることもある。更に、このコンピュータ読取り可能媒体は、読み出し専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、または他形式の記憶装置装置であることもある。
【０１００】
本開示の前述の実施形態は、本開示の原理の明瞭な理解のために記載した単なる可能な実装の例であることが強調されるべきである。多くの変形および修正が、本開示の精神および原理から実質的に逸脱することなく、前述の実施形態に対してなされ得る。すべてのこのような修正形態および変形形態はここに、本開示の範囲内に含められ、以下の特許請求の範囲によって保護されることが意図される。
【図１】
0005934445.tif 000002
【図２】
0005934445.tif 000003
【図３】
0005934445.tif 000004
【図４】
0005934445.tif 000005