(57)【要約】  多階層コンピューティング環境において選択された階層を監視する装置であって、装置は、コンテキストエージェント及び動的階層拡張を含み、コンテキストエージェントは、選択された階層と関連付けられ、他のコンテキストエージェントと結び付けられ、それぞれがそれぞれ階層と関連付けられ、動的階層拡張がコンテキストエージェント及び選択された階層の特定の予め定められたポイントと結び付けられ、動的階層拡張は、選択された階層を通過するリクエストトラフィックを監視し、監視されたリクエストトラフィックは、隣り合う階層からリクエストエントリーポートで受信された少なくとも一つの開始リクエストを含み、動的階層拡張は、監視されたリクエストトラフィックにおける各リクエストを確認すると共に、少なくともリクエストＩＤをコンテキストエージェントに送信し、コンテキストエージェントは、開始リクエストのリクエストコンテキストと関連する情報を、隣り合う階層と関連付けられたコンテキストエージェントから受信し、コンテキストエージェントは、開始リクエストのリクエストコンテキストと関連する情報を、受信したリクエストＩＤに基づき、開始リクエストと関連付ける。【選択図】  図２
2008502044.tif 000002
【特許請求の範囲】
【請求項１】
多階層コンピューティング環境において選択された階層を監視するための装置であって、前記装置は、
前記多階層コンピューティング環境の前記選択された階層と関連付けられるコンテキストエージェントであって、前記コンテキストエージェントは、他のコンテキストエージェントと結び付けられ、前記他のコンテキストエージェントのそれぞれは、前記コンピューティング環境のそれぞれ階層と関連付けられる、そのようなコンテキストエージェントと、
動的階層拡張（ＤＴＥ）であって、前記動的階層拡張は、前記選択された階層を通過するリクエストトラフィックを少なくとも監視するため、前記コンテキストエージェント、及び前記選択された階層の少なくともリクエストエントリーポートと結び付けられ、前記監視されたリクエストトラフィックは、前記コンピューティング環境の隣り合った階層から前記リクエストエントリーポートで受信された少なくとも一つの開始リクエストを含み、前記動的階層拡張は、リクエスト情報を前記コンテキストエージェントに提供し、前記リクエスト情報は、前記監視されたリクエストトラフィックに含まれる各リクエストを少なくとも確認する、そのような動的階層拡張と
を含み、
前記コンテキストエージェントは、前記隣り合う階層と関連付けられた他のコンテキストエージェントからコンテキスト情報を受信し、前記受信されたコンテキスト情報は、前記少なくとも一つの開始リクエストのリクエストコンテキストと関連し、
前記少なくとも一つの開始リクエストのそれぞれのために、前記コンテキストエージェントは、それぞれ、前記コンテキスト情報を前記リクエスト情報と関連付ける
ことを特徴とする装置。
【請求項２】
前記動的階層拡張は、前記選択された階層の少なくともリクエストイグジットポートとさらに結び付けられ、前記監視されたリクエストトラフィックは、前記リクエストイグジットポートで受信された少なくとも一つの終了リクエストをさらに含み、前記選択された階層は、前記少なくとも一つの終了リクエストを前記コンピューティング環境の他の隣り合う階層に提供し、
前記コンテキストエージェントは、前記少なくとも一つの終了リクエストと前記少なくとも一つの開始リクエストとの間を関連付け、前記少なくとも一つの終了リクエストのリクエストコンテキストと関連するコンテキスト情報を、前記他の隣り合う階層と関連付けられたさらなるコンテキスト情報に送信する
請求項１に記載の装置。
【請求項３】
前記動的階層拡張は、前記選択された階層の階層コントロールポートとさらに結び付けられる
請求項１に記載の装置。
【請求項４】
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを実行する処理部の優先度レベルをさらに変更する
請求項３に記載の装置。
【請求項５】
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを実行する処理部の実行タイプをさらに変更する
請求項３に記載の装置。
【請求項６】
前記コンテキストエージェントは、前記リクエストエントリーポートでのキュー上の前記少なくとも一つの開始リクエストのオーダをさらに調整する
請求項１又は３に記載の装置。
【請求項７】
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを処理する計算リソースを割り付けるために前記選択された階層をさらに指示する
請求項１又は３に記載の装置。
【請求項８】
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを処理する計算リソースを否定するために前記選択された階層をさらに指示する
請求項１又は３に記載の装置。
【請求項９】
前記コンテキスト情報は、少なくとも、リクエストＩＤ、トランザクションＩＤ、リクエストクラス、コンテキスト関連データを含む
請求項１に記載の装置。
【請求項１０】
前記コンテキスト関連データは、前記少なくとも一つの開始リクエストの前記リクエストコンテキストの全部を含む
請求項９に記載の装置。
【請求項１１】
前記コンテキスト関連データは、前記少なくとも一つの開始リクエストの前記リクエストコンテキストの一部を含む
請求項９に記載の装置。
【請求項１２】
前記コンテキスト関連データは、前記少なくとも一つの開始リクエストの前記リクエストコンテキストへの表示を含む
請求項９に記載の装置。
【請求項１３】
前記コンテキストエージェントは、
エージェント通信インターフェイスであって、前記動的階層拡張及び前記コンテキストエージェント間のメッセージを中継するエージェント通信インターフェイスと、
エージェントメッセージモジュールであって、前記少なくとも一つの終了リクエストが前記他の隣り合う階層に送信される前記さらなるコンテキストエージェントを確認し、前記エージェントメッセージモジュールは、メッセージを用いて前記動的階層拡張とさらに通信する、そのようなエージェントメッセージモジュールと、
コンテキストテーブルマネージャであって、前記選択された階層上で動作する少なくとも一つの作業単位を、前記作業単位が割り付けられる前記少なくとも一つの開始リクエストの前記リクエストコンテキストと関連付ける、といった参照テーブルを維持し、前記コンテキストテーブルは、前記少なくとも一つの開始リクエストと関連付けられた情報をさらに保存し、前記コンテキストテーブルマネージャは、前記コンテキストテーブルに保存された情報に基づく少なくとも一つの開始リクエストをさらに確認する、そのようなコンテキストテーブルマネージャと
を含む請求項２に記載の装置。
【請求項１４】
前記コンテキストエージェントは、
分類マネージャであって、前記受信されたコンテキスト情報に基づく前記少なくとも一つの開始リクエストの分類を実行し、前記分類マネージャは、前記少なくとも一つの開始リクエストをトランザクションの一部としてさらに確認する、そのような分類マネージャ
をさらに含む請求項１３に記載の装置。
【請求項１５】
前記コンテキストエージェントは、
ポリシーマネージャであって、アクティブサービスクラスポリシーと、前記少なくとも一つの開始リクエストの前記分類とに基づく前記少なくとも一つの開始リクエストにサービスクラスポリシーを与えるポリシーマネージャ
をさらに含む請求項１３に記載の装置。
【請求項１６】
前記コンテキストエージェントは、
エージェントログイベントハンドラであって、イベント記録、内部追跡、メッセージ作成、前記コンテキストエージェント内の稼動不規則の検出、を実行するエージェントログイベントハンドラ
をさらに含む請求項１３に記載の装置。
【請求項１７】
前記コンテキストエージェントは、
エージェントアドミニストレータであって、情報を記録し、履歴データをコンテキストネットワーク管理サーバ（ＣＮＭＳ）に送信し、アクティブサービスクラスポリシー及び追加データを前記ＣＮＭＳから受信するエージェントアドミニストレータ
をさらに含む請求項１３に記載の装置。
【請求項１８】
前記動的階層拡張は、
動的階層拡張デーモンであって、前記少なくとも一つの開始リクエストが引き留められないレポートされたイベントと関連付けられた非同期処理を実行する動的階層拡張デーモンと、
動的階層拡張メッセージモジュールであって、メッセージを用いて前記コンテキストエージェントと通信する動的階層拡張メッセージモジュールと、
動的階層拡張通信インターフェイスであって、前記動的階層拡張及び前記コンテキストエージェント間のメッセージを中継する動的階層拡張通信インターフェイスと
を含む請求項３に記載の装置。
【請求項１９】
前記動的階層拡張は、
動的階層拡張アドミニストレータであって、前記動的階層拡張が、前記少なくとも一つの開始リクエストがどのように処理されるべきかに関するメッセージを受信することを可能とする動的階層拡張アドミニストレータ
をさらに含む請求項１８に記載の装置。
【請求項２０】
前記動的階層拡張は、
動的階層拡張ログイベントハンドラであって、前記動的階層拡張のオペレーションに関する追跡情報と、前記動的階層拡張によって起こされた警告とを記録する動的階層拡張ログイベントハンドラ
をさらに含む請求項１８に記載の装置。
【請求項２１】
前記コンテキストエージェントは、前記選択された階層として同じホストマシーンに存在する
請求項１に記載の装置。
【請求項２２】
前記動的階層拡張は、パフォーマンス、可用性、前記選択された階層からのエラーメタリックスを収集する
請求項３に記載の装置。
【請求項２３】
多階層コンピューティング環境において選択された階層を監視するための装置であって、前記装置は、
前記選択された階層と関連付けられるコンテキストエージェントであって、前記コンテキストエージェントは、少なくとも一つの他のコンテキストエージェントと結び付けられ、前記少なくとも一つの他のコンテキストエージェントのそれぞれは、前記コンピューティング環境のそれぞれ階層と関連付けられる、そのようなコンテキストエージェントと、
動的階層拡張（ＤＴＥ）であって、前記動的階層拡張は、前記コンテキストエージェント、及び前記選択された階層の少なくともリクエストエントリーポート及びリクエストイグジットポートと結び付けられ、前記動的階層拡張は、前記選択された階層を通過するリクエストトラフィックを少なくとも監視し、前記監視されたリクエストトラフィックは、前記リクエストエントリーポートで受信された少なくとも一つの開始リクエストと、前記リクエストイグジットポートでの少なくとも一つのそれぞれ終了リクエストとを含み、前記選択された階層は、前記少なくとも一つのそれぞれ終了リクエストを隣り合う階層に提供し、前記動的階層拡張は、前記少なくとも一つの開始リクエストのリクエストコンテキストを獲得し、前記動的階層拡張は、リクエスト情報及びコンテキスト情報を前記コンテキストエージェントに提供し、前記リクエスト情報は、前記監視されたリクエストトラフィックに含まれる各リクエストを少なくとも確認し、前記コンテキスト情報は、前記少なくとも一つの開始リクエストの前記獲得されたリクエストコンテキストと関連する、そのような動的階層拡張と
を備え、
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを前記少なくとも一つの終了リクエストと関連付け、
前記コンテキストエージェントは、前記少なくとも一つのそれぞれ終了リクエストのリクエストコンテキストと関連するコンテキスト情報を、前記隣り合う階層と関連付けられた他のコンテキストエージェントに提供する
ことを特徴とする装置。
【請求項２４】
前記少なくとも一つの開始リクエストは、ユーザアプリケーションから受信したユーザリクエストである
請求項２３に記載の装置。
【請求項２５】
前記コンテキスト情報は、少なくとも、リクエストＩＤ、トランザクションＩＤ、リクエストクラス、コンテキスト関連データを含む
請求項２３に記載の装置。
【請求項２６】
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを、前記コンテキスト情報に基づくリクエストクラスに分類する
請求項２３に記載の装置。
【請求項２７】
前記コンテキストエージェントは、階層仕様サービスクラスポリシーのセットを含み、前記階層仕様サービスクラスポリシーのそれぞれは、サービスクラスを前記選択された階層のためのリクエストクラスにマッピングし、
アクティブサービスクラスポリシーは、現在実施されているサービスクラスマッピングにリクエストクラスを含み、
前記コンテキストエージェントは、サービスクラスを、前記リクエストクラスに基づく前記少なくとも一つの開始リクエストと、前記階層仕様サービスクラスポリシーのセットにおける適切なアクティブサービスクラスポリシーとに与える
請求項２６に記載の装置。
【請求項２８】
前記コンテキストエージェントは、階層仕様サービスクラスポリシーのセットを含み、前記階層仕様サービスクラスポリシーのそれぞれは、サービスクラスを前記選択された階層のためのリクエストクラスにマッピングし、
アクティブサービスクラスポリシーは、現在実施されているサービスクラスマッピングにリクエストクラスを含み、
前記コンテキストエージェントは、サービスクラスを、前記リクエストクラスによって指定されたサービスクラスよりも異なる前記少なくとも一つの開始リクエストと、前記階層仕様サービスクラスポリシーのセットにおける適切なアクティブサービスクラスポリシーとに与える
請求項２６に記載の装置。
【請求項２９】
前記サービスクラスは、前記少なくとも一つの開始リクエストに割り付けられるべき優先度を含む
請求項２７又は２８に記載の装置。
【請求項３０】
前記サービスクラスは、前記少なくとも一つの開始リクエストに割り付けられるべき中央処理装置パーセンテージを含む
請求項２７又は２８に記載の装置。
【請求項３１】
前記サービスクラスは、前記少なくとも一つの開始リクエストに割り付けられるべきメモリを含む
請求項２７又は２８に記載の装置。
【請求項３２】
前記サービスクラスは、入出力装置を前記少なくとも一つの開始リクエストに割り付け且つアクセスする優先度を含む
請求項２７又は２８に記載の装置。
【請求項３３】
前記サービスクラスポリシーは、定期的に更新される
請求項２７又は２８に記載の装置。
【請求項３４】
前記サービスクラスポリシーは、前記多階層コンピューティング環境のユーザによって定義される
請求項２７又は２８に記載の装置。
【請求項３５】
前記コンテキストエージェントは、前記与えられたサービスクラスを前記リクエストコンテキストに加える
請求項２７又は２８に記載の装置。
【請求項３６】
前記動的階層拡張は、前記選択された階層の階層コントロールポートとさらに結び付けられる
請求項２３に記載の装置。
【請求項３７】
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを実行する処理部の優先度レベルをさらに変更する
請求項３６に記載の装置。
【請求項３８】
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを実行する処理部の実行タイプをさらに変更する
請求項３６に記載の装置。
【請求項３９】
前記コンテキストエージェントは、前記リクエストエントリーポートでのキュー上の前記少なくとも一つの開始リクエストのオーダをさらに調整する
請求項２３又は３６に記載の装置。
【請求項４０】
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを処理する計算リソースを割り付けるために前記選択された階層をさらに指示する
請求項２３又は３６に記載の装置。
【請求項４１】
前記コンテキストエージェントは、前記少なくとも一つの開始リクエストを処理する計算リソースを否定するために前記選択された階層をさらに指示する
請求項２３又は３６に記載の装置。
【請求項４２】
前記動的階層拡張は、前記監視されたリクエストトラフィックに含まれる各リクエストにトランザクションＩＤを与える
請求項２３に記載の装置。
【請求項４３】
前記動的階層拡張は、前記監視されたリクエストトラフィックに含まれる各リクエストのリクエストＩＤを得る
請求項２３に記載の装置。
【請求項４４】
前記コンテキストエージェントは、
エージェント通信インターフェイスであって、前記動的階層拡張及び前記コンテキストエージェント間のメッセージを中継するエージェント通信インターフェイスと、
エージェントメッセージモジュールであって、前記少なくとも一つの終了リクエストが前記他の隣り合う階層に送信される前記他のコンテキストエージェントを確認し、前記エージェントメッセージモジュールは、メッセージを用いて前記動的階層拡張とさらに通信する、そのようなエージェントメッセージモジュールと、
コンテキストテーブルマネージャであって、前記選択された階層上で動作する少なくとも一つの作業単位を、前記作業単位が割り付けられる前記少なくとも一つの開始リクエストの前記リクエストコンテキストと関連付ける、といった参照テーブルを維持し、前記参照テーブルは、コンテキストテーブルであり、前記コンテキストテーブルは、前記少なくとも一つの開始リクエストと関連付けられた情報をさらに保存し、前記コンテキストテーブルマネージャは、前記コンテキストテーブルに保存された情報に基づく少なくとも一つの開始リクエストをさらに確認する、そのようなコンテキストテーブルマネージャと
分類マネージャであって、前記受信されたコンテキスト情報に基づく前記少なくとも一つの開始リクエストの分類を実行し、前記分類マネージャは、前記少なくとも一つの開始リクエストをトランザクションの一部としてさらに確認する、そのような分類マネージャと、
ポリシーマネージャであって、アクティブサービスクラスポリシーと、前記少なくとも一つの開始リクエストの前記分類とに基づく前記少なくとも一つの開始リクエストにサービスクラスポリシーを与えるポリシーマネージャと
を含む請求項２３に記載の装置。
【請求項４５】
前記コンテキストエージェントは、
エージェントログイベントハンドラであって、イベント記録、内部追跡、メッセージ作成、前記コンテキストエージェント内の稼動不規則の検出、を実行するエージェントログイベントハンドラ
をさらに含む請求項４４に記載の装置。
【請求項４６】
前記コンテキストエージェントは、
エージェントアドミニストレータであって、情報を記録し、履歴データをコンテキストネットワーク管理サーバ（ＣＮＭＳ）に送信し、アクティブサービスクラスポリシー及び追加データを前記ＣＮＭＳから受信するエージェントアドミニストレータ
をさらに含む請求項４４に記載の装置。
【請求項４７】
前記動的階層拡張は、
動的階層拡張デーモンであって、前記少なくとも一つの開始リクエストが引き留められないレポートされたイベントと関連付けられた非同期処理を実行する動的階層拡張デーモンと、
動的階層拡張メッセージモジュールであって、メッセージを用いて前記コンテキストエージェントと通信する動的階層拡張メッセージモジュールと、
動的階層拡張通信インターフェイスであって、前記動的階層拡張及び前記コンテキストエージェント間のメッセージを中継する動的階層拡張通信インターフェイスと
を含む請求項３６に記載の装置。
【請求項４８】
前記動的階層拡張は、
動的階層拡張アドミニストレータであって、前記動的階層拡張が、前記少なくとも一つの開始リクエストがどのように処理されるべきかに関するメッセージを受信することを可能とする動的階層拡張アドミニストレータ
をさらに含む請求項４７に記載の装置。
【請求項４９】
前記動的階層拡張は、
動的階層拡張ログイベントハンドラであって、前記動的階層拡張のオペレーションに関する追跡情報と、前記動的階層拡張によって起こされた警告とを記録する動的階層拡張ログイベントハンドラ
をさらに含む請求項４７に記載の装置。
【請求項５０】
前記コンテキストエージェントは、前記選択された階層として同じホストマシーンに存在する
請求項２３に記載の装置。
【請求項５１】
前記動的階層拡張は、パフォーマンス、可用性、前記選択された階層からのエラーメタリックスを収集する
請求項３６に記載の装置。
【請求項５２】
複数の階層を含む多階層コンピューティング環境において、前記複数の階層の少なくとも選択され且つ監視された階層と関連付けられた、アプリケーションパフォーマンス管理のためのシステムであって、システムは、
少なくとも二つの前記監視された階層のそれぞれにとって、それぞれ動的階層拡張が、前記監視された階層の少なくともリクエストエントリーポートと結び付けられ、前記動的階層拡張が、前記それぞれ監視された階層を通過するリクエストトラフィックを少なくとも監視し、前記監視されたリクエストトラフィックが、前記リクエストエントリーポートで受信された少なくとも一つの開始リクエストを含み、
前記少なくとも二つの前記監視された階層のそれぞれにとって、それぞれコンテキストエージェントが、前記それぞれ動的階層拡張と結び付けられ、前記コンテキストエージェントが、前記それぞれ階層に直接結び付けられた階層と関連付けられた他の前記コンテキストエージェントと結び付けられ、前記それぞれコンテキストエージェントが、前記それぞれ動的階層拡張からリクエスト情報を受信し、前記リクエスト情報が、前記監視されたリクエストトラフィックに含まれる各リクエストを少なくとも確認し、前記それぞれコンテキストエージェントが、前記隣り合う階層と関連付けられた他のコンテキストエージェントから、前記少なくとも一つの開始リクエストと関連するコンテキスト情報をさらに受信し、前記少なくとも一つの開始リクエストのそれぞれにとって、前記それぞれコンテキストエージェントが、前記コンテキスト情報を、それぞれ、前記リクエスト情報と関連付ける
ことを含むことを特徴とするシステム。
【請求項５３】
複数の階層を含む多階層コンピューティング環境において、前記複数の階層の少なくとも選択され且つ監視された階層と関連付けられた、アプリケーションパフォーマンス管理のためのシステムであって、システムは、
少なくとも二つの前記監視された階層のそれぞれにとって、それぞれ動的階層拡張が、前記監視された階層の少なくともリクエストエントリーポート及びリクエストイグジットポートと結び付けられ、前記動的階層拡張が、前記それぞれ監視された階層を通過するリクエストトラフィックを少なくとも監視し、前記監視されたリクエストトラフィックが、前記リクエストエントリーポートで受信された少なくとも一つの開始リクエストと、前記リクエストイグジットポートでの少なくとも一つのそれぞれ終了リクエストとを含み、
前記少なくとも二つの前記監視された階層のそれぞれにとって、それぞれコンテキストエージェントが、前記それぞれ動的階層拡張と結び付けられ、前記コンテキストエージェントが、前記それぞれ階層に直接結び付けられた階層と関連付けられた他の前記コンテキストエージェントと結び付けられ、前記それぞれコンテキストエージェントが、前記それぞれ動的階層拡張からリクエスト情報を受信し、前記リクエスト情報が、前記監視されたリクエストトラフィックに含まれる各リクエストを少なくとも確認し、前記それぞれコンテキストエージェントが、前記それぞれ動的階層拡張から、前記少なくとも一つの開始リクエストのリクエストコンテキストと関連するコンテキスト情報を受信し、前記少なくとも一つの開始リクエストのそれぞれにとって、前記それぞれコンテキストエージェントが、前記少なくとも一つの開始リクエストを前記少なくとも一つの終了リクエストと関連付け、前記それぞれコンテキストエージェントが、前記少なくとも一つのそれぞれ終了リクエストのリクエストコンテキストと関連するコンテキスト情報を、前記隣り合う階層と関連付けられた他のコンテキストエージェントに提供する
ことを含むことを特徴とするシステム。
【請求項５４】
前記コンテキストエージェントと結び付けられたコンテキストネットワーク管理サーバ（ＣＮＭＳ）であって、前記ＣＮＭＳが前記コンテキストエージェントから受信したパフォーマンスデータを少なくとも収集し且つ解析する、そのようなコンテキストネットワーク管理エージェント
をさらに含む請求項５２又は５３に記載のシステム。
【請求項５５】
前記少なくとも一つの開始リクエストは、ユーザアプリケーションから受信したユーザリクエストである
請求項５２又は５３に記載のシステム。
【請求項５６】
前記動的階層拡張は、前記それぞれ階層の少なくともリクエストイグジットポートとさらに結び付けられ、前記監視されたリクエストトラフィックは、前記リクエストイグジットポートで受信された少なくとも一つの終了リクエストをさらに含み、前記選択された階層は、前記少なくとも一つの終了リクエストを前記コンピューティング環境の他の隣り合う階層に提供し、
前記それぞれコンテキストエージェントは、前記少なくとも一つの終了リクエストを前記少なくとも一つの開始リクエストと関連付け、前記少なくとも一つの終了リクエストのリクエストコンテキストと関連するコンテキスト情報を、前記他の隣り合う階層と関連付けられたさらなるコンテキストエージェントに送信する
請求項５２に記載のシステム。
【請求項５７】
前記ＣＮＭＳと結び付けられたポリシーデータベースであって、前記ポリシーデータベースが少なくともサービスクラスポリシーを保存する、そのようなポリシーデータベースをさらに含む
請求項５４に記載のシステム。
【請求項５８】
前記ＣＮＭＳ及び前記ポリシーデータベースと結び付けられたスーパバイザワークステーションをさらに含む
請求項５７に記載のシステム。
【請求項５９】
前記ＣＮＭＳは、アクティビティープロファイリングをさらに実行し、統合トランザクション、階層、システムレベルパフォーマンスメトリックス及び統計解析を含むアクティビティープロファイルを生成する
請求項５４に記載のシステム。
【請求項６０】
複数の階層を含む多階層コンピューティング環境において、前記複数の少なくとも選択され且つ監視された階層と関連付けられた、アプリケーションパフォーマンス管理のための方法であって、方法は、
少なくとも一つの開始リクエストのリクエストコンテキストと関連するコンテキスト情報を受信し、前記コンテキスト情報が少なくともリクエストＩＤ及びトランザクションＩＤを含み、
前記監視された階層を通過するリクエストトラフィックを監視し、前記監視されたリクエストトラフィックが前記少なくとも一つの開始リクエストを少なくとも含み、
前記リクエストＩＤに基づく前記少なくとも一つの開始リクエストを確認し、
前記少なくとも一つの開始リクエストを前記トランザクションＩＤに基づくトランザクションと関連付ける
という手順を含むことを特徴とする方法。
【請求項６１】
複数の階層を含む多階層コンピューティング環境において、前記複数の少なくとも選択され且つ監視された階層と関連付けられた、アプリケーションパフォーマンス管理のための方法であって、方法は、
前記監視された階層を通過するリクエストトラフィックを監視し、前記監視されたリクエストトラフィックが少なくとも一つの開始リクエスト及び少なくとも一つのそれぞれ終了リクエストを含み、前記選択された階層が前記少なくとも一つのそれぞれ終了リクエストを隣り合う階層に提供し、
前記少なくとも一つの開始リクエストのリクエストコンテキストと関連するコンテキスト情報を決定し、
前記監視されたリクエストトラフィックに含まれる各リクエストを確認し、
前記少なくとも一つの開始リクエストを前記少なくとも一つの終了リクエストと関連付け、
前記少なくとも一つの終了リクエストのリクエストコンテキストと関連するコンテキスト情報を、前記隣り合う階層と関連付けられた他のコンテキストエージェントに送信する
という手順を含むことを特徴とする方法。
【請求項６２】
明細書に実質的に記載されあるいは何れかの図面に実質的に図示された請求項１〜５１の何れか１項に記載の装置。
【請求項６３】
明細書に実質的に記載されあるいは何れかの図面に実質的に図示された請求項５２〜５９の何れか１項に記載のシステム。
【請求項６４】
明細書に実質的に記載されあるいは何れかの図面に実質的に図示された請求項６０〜６１の何れか１項に記載のアプリケーション。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００４年６月４日に出願された米国仮出願第６０／５７６，８０５号の合衆国法典第３５巻第１１９条（ｅ）項に基づく利益を請求し、それに組み込まれる全内容が参照される。
【０００２】
本開示技術は、概して、分散コンピューティング環境（ＤＣＥ：distributed computing environment）の管理に関し、特に、多階層コンピューティング環境におけるアプリケーションパフォーマンス管理システム及びアプリケーションパフォーマンス管理方法に関する。
【背景技術】
【０００３】
情報技術（ＩＴ：Information Technology）は、異種アプリケーション構成を備えてますます複雑となる多階層プロダクション環境を用いてアプリケーションサービスを提供する責任がある。ＩＴオペレーションは、パフォーマンスと可用性において要求されるサービスレベルを満足させることに奮闘する一方、効率とリソース活用を増大するよう強要される。商社と組んだＩＴリソースの連結は、この効果を悪化させ、コンピューティングリソースに対する需要の今までの変化を満足させるためにＩＴオペレーションの将来性を引き伸ばす。パフォーマンス管理と可用性管理のための慣習的なアプローチ及びツールは、問題が存在することの確認（即ち、監視）、問題（即ち、調整）に打ち勝つための全スループットの増大、及び問題（即ち、修正）の各具体例の明確な原因を暴くための原因分析の実行、を含む循環「監視−調整−修正」サイクルの変化である。そのようなアプローチは、ＩＴ環境の迅速な変化の複雑性及び可変性をうまく対処することができない。
【０００４】
ここで、符号５０で参照され、公知である多階層コンピューティング環境の概略図である図１を参照する。コンピューティング環境５０は、第１のアプリケーションを動作させる第１のクライアント６２、第２のアプリケーションを動作させる第２のクライアント６４、第１の階層５２、第２の階層５４、第３の階層５６、第４の階層５８及び第５の階層６０を含む。第１の階層５２は、ウェブサーバである。第２の階層５４は、アプリケーションサーバ、アプリケーションサーバＡである。第３の階層５６は、他のアプリケーションサーバ、アプリケーションサーバＢである。第４の階層５８は、さらなるアプリケーションサーバ、アプリケーションサーバＣである。第５の階層６０は、データベースである。第１の階層５２は、第１のクライアント６２、第２のクライアント６４及び第２の階層５４と結び付けられる。第２の階層５４は、第３の階層５６及び第４の階層５８とさらに結び付けられる。第３の階層５６は、第４の階層５８及び第５の階層６０とさらに結び付けられる。第４の階層５８は、第５の階層６０とさらに結び付けられる。
【０００５】
「階層」は、ＩＴサービスの提供の一部である特定タイプの処理（例えば、ウェブサーバ階層上のプレゼンテーションレベル処理やデータベース階層上のデータ処理）を表す。各階層は、主として異なるホストマシーン上で動作する。
【０００６】
第１のアプリケーションは、ユーザリクエストＲ１を起こし、ユーザリクエストＲ１を第１の階層５２に送信する。ユーザリクエストＲ１は、ユーザによって起こされる全トランザクションの一部である。ユーザリクエストＲ１は、例えば、特定のアプリケーションから情報を取り出すためのウェブベースのクエリである。ユーザリクエストＲ１は、コンピューティング環境５０における異なる階層のサービスを必要とし、これらのサービスを得るために追加的なリクエストを引き起こす。リクエストを受信した階層は、リクエストを送信する階層に返信するか、異なる階層に新しいリクエストを送信する。結局、リプライは、オリジナルのユーザリクエストＲ１に応じて返信される。二つの階層が互いに直接結び付けられるならば、所定の階層は、コンピューティング環境５０における他の階層からサービスを要求し得るのみである。
【０００７】
分散コンピューティング環境の全管理は、各階層がどのようにして自身の仕事量を処理するかの認識を必要とする。例えば、一つの階層上でリソース不足が与えられると、システム管理者は、垂直（即ち、同じホストマシーン内に）及び水平（即ち、複数のホストマシーンを横断して）の両方で、階層の複製を生成することによって、この階層をスケールする。例えば、コンピューティング環境５０において、システム管理者は、追加的なアプリケーションサーバＡ２を第２の階層５４であるアプリケーションサーバＡに追加し、アプリケーションサーバＡ２がアプリケーションサーバＡの複製である。リソース過剰が階層に存在するならば、同じトークンによって、システム管理者は、リソース不足している他の階層に解放リソースを移動させる。システム管理者は、全パフォーマンスを改善し、あるいは階層上で動作するアプリケーションを最適化するための修正を指示するため、特定の階層をさらに構成する。これは、パフォーマンス管理のための階層詳細アプリケーション監視の例である。リクエストがコンピューティング環境５０における特定の階層にのみ到達することが注目される。さらには、同じリクエストは、複数の経路を用いて特定の階層に到達する。例えば、コンピューティング環境５０において、リクエストは、第３の階層５６であるアプリケーションサーバＢ又は第４の階層５８であるアプリケーションサーバＣを介して第５の階層６０であるデータベースに到達する。リクエスト経路は、全環境を横断して一貫していないので、一つの階層上でのリソース不足の解消は、複数の階層を掛け渡す全アプリケーションのパフォーマンスを必ずしも保証しない。どんな階層における処理隘路も、階層によって定まる全アプリケーション機能を遅らせる。
【０００８】
第１の階層５２は、ユーザリクエストＲ１を受信する。第１の階層５２は、ユーザリクエストＲ１を処理するために処理部Ｘ１を割り付ける。ユーザリクエストＲ１を処理する間、処理部Ｘ１において実行されるアプリケーションロジックは、第２の階層５４によって提供される追加情報や追加オペレーションなしにユーザリクエストＲ１を完全に処理することができないと決定する。しかる後、第１の階層５２は、それに続くリクエストＲ２を第２の階層５４に送信し、追加情報や追加オペレーションを要求する。第２の階層５４は、ユーザリクエストＲ２を処理するために処理部Ｘ２を割り付ける。処理部Ｘ２において実行されるアプリケーションロジックは、第４の階層５８によって提供されるさらなる追加情報や追加オペレーションをリクエストＲ２が要求すると決定する。しかる後、第２の階層５４は、それに続くリクエストＲ３を第４の階層５８に送信する。第４の階層５８は、リクエストＲ３を処理するために処理部Ｘ４を割り付ける。
【０００９】
処理部Ｘ４は、実行を完了する。第４の階層５８は、第２の階層５４の以前のリクエストＲ３に応じて、リプライＲ３'を第２の階層５４に返信する。処理部Ｘ２は、リプライＲ３'を受信し、処理を再開する。処理部Ｘ２が実行を一旦完了すると、第２の階層５４は、第１の階層５２の以前のリクエストＲ２に応じて、リプライＲ２'を第１の階層５２に返信する。処理部Ｘ１は、リプライＲ２'を受信し、処理を再開する。処理部Ｘ１が実行を一旦完了すると、第１の階層５２は、リプライＲ１'をユーザリクエストＲ１に返信し、サービスが完了する。
【００１０】
コンピューティング環境５０において、異なる階層のそれぞれは、直接結び付けられていない階層と分離される。例えば、直接結び付けられる、第２の階層５４から第４の階層５８へのリクエストＲ３は、第２の階層５４において第１の階層５２から受信した先のリクエストＲ２に関する情報を必ずしも含まず、そして、また、ユーザリクエストＲ１に関する情報を含まない。所定の階層は、トランザクションを起こしたユーザ、所定の階層で処理されたリクエストに先行したリクエスト、あるいはリクエストに先行したリクエスト特性といった、その階層で処理されるリクエストに関する特定の情報を得る方法を有さない。例えば、第２の階層５４は、第１の階層５２に送信されるユーザリクエストＲ１によってリクエストが先行されたか、あるいは第１のアプリケーション６２からユーザリクエストＲ１でトランザクションが起こされたかといった、リクエストＲ２の特徴を確認することができない。優先度レベルが特定の階層内でリクエストを処理する処理部に与えられるならば、その結果として、優先度レベルは、階層上で有効な最小限の情報のみを考慮して割り当てられる。この情報は、リクエスト特性（例えば、リクエストによって用いられる階層ログインクレデンシャル）と、おそらくはリクエストを処理する処理部についての情報（例えば、データベースセッション識別コード）とを含む。優先度レベルを区別するためのメカニズムオペレーティングが所定の階層上で局所的に有効であるが、リクエストは、概して平等優先ベース（即ち、早い者勝ち方式）で処理される。コンピューティング環境５０における他の階層が特定の階層を対応する時に責任を負い得ないので、パフォーマンス管理は、個々の階層ベースでなされなければならない。一般的に、コンピューティング環境５０といった多階層コンピューティング環境を管理する責任を負うシステム管理者は、所定の階層のためにリソース割り付けを適合させることによってパフォーマンスを改善することを試みる。
【００１１】
「オペレーティングシステムカーネルにおいて動作するインターフェイスを含む分散アプリケーションの監視システム及び監視方法」という名称のAgarwalらの米国特許第５，９５８，０１０号は、システムパフォーマンス、使用傾向、セキュリティー監査、容量計画及び免責のためのビジネストランザクションレベル管理データを発展させるために、分散コンピューティングシステムの事業ワイドオペレーションの監視システム及び監視方法に導かれる。分散コンピューティングアーキテクチャを有するシステムは、複数のワークステーション、サーバ及びネットワーク装置を含む。各ワークステーションは、ネットワークに繋がれるコンピュータシステムの代表である。各ワークステーションは、どんなサーバからもサービスを要求することができる。各ワークステーションは、ネットワークとデータを交換する通信スタックを有する。システムは、複数の監視エージェントと、データベースに接続されるコンソールモジュールとをさらに含む。各監視エージェントは、各種の事業コンポーネントについてのイベント情報を提供する外部イベントインターフェイスを有する。監視エージェントのそれぞれは、ワークステーションやサーバのそれぞれ一つと関連付けられる。
【００１２】
監視エージェントは、関連するクライアントやそのサーバ上に物理的に存在する。監視エージェントは、クライアントとネットワークとの間、及びサーバとネットワークとの間で交換されるデータを監視し、集める。各監視エージェントは、ソフトウェアモジュール、ハードウェア装置、あるいはその組み合わせであり得る。各監視エージェントは、コンソールモジュールに集められたデータの情報代表を通す。コンソールモジュールは、オペレータによって解析のためのデータベース内にこの情報を保存する。コンソールモジュール上で動作するアプリケーションプログラムは、どんな処理や事業コンポーネントのシステムパフォーマンスをも示すために、集められたデータを見ることができる。システム管理者は、事業レベル使用統計及び応答時間を発展させ、チャート及びレポートを発展させ、事業オペレーションと関連したユーザ定義統計を決定するための他の関連データ解析を実行することができる。
【００１３】
「アプリケーションエンドツーエンド応答時間評価及び分解」という名称のMaccabeeらの米国特許第６，１０８，７００号は、エンドツーエンドビジネストランザクションの可用性及びパフォーマンスを評価し且つレポートする方法及びシステムに導かれる。システムは、クライアントサーバアプリケーションアーキテクチャ上で動作する。システムは、システム管理を通じた全システム管理のみならず、三つのロジカルコンポーネント、即ち、イベント生成、トランザクション生成及びレポート生成を含む。
【００１４】
イベント生成コンポーネントは、アーキテクチャにおいて評価されるコンピュータ毎に存在する。各コンピュータは一つのエージェント、複数のセンサ及び複数のプロセッサを有する。センサは、ビジネスアプリケーションが動作し、アプリケーション動作が監視され、状態変化が検出されるプラットフォームコンポーネントと相互作用する。適切な時、各センサは、状態変化を表すイベントを生成し、イベントが起こる時及び場所で、イベントを独自に確認するために必要な特別データを生成する。イベントは、該イベントをトランザクションへの他のイベントと関連付けるためにシステムによって後に用いられるタイムスタンプ及び相関データを含む。センサは、生成されたイベントをそれらのそれぞれエージェントに転送する。エージェントは、一時的にデータを保存し、イベントに登録された関係を有する他のシステムコンポーネントにデータを分配する。プロセッサは、イベントを解析し、状態変化をさらに推論する。状態変化は、ビジネストランザクションプラットフォームコンポーネント内で起こる動作に直接的に関係付けられ、あるいは以前に生成されたイベントを結合することによって、達成された状態を表すためにセンサや他のプロセッサから引き出される。プロセッサは、生成されたイベントをそれらのそれぞれエージェントに転送する。
【００１５】
トランザクション生成コンポーネントは、一般的にネットワークにおけるコンピュータの一つに存在し、ディレクタを含む。ディレクタは、エージェントのコントロール下でエージェントからイベントを受信する。イベントは、調べられ、関係付けられ、トランザクション生成規則に基づくトランザクションに照合される。システム管理者は、生成されるべきトランザクションを決定する。
【００１６】
レポート生成コンポーネントは、マネージャを含む。マネージャは、ディレクタからトランザクションを集める。集められたトランザクションは、ビジネストランザクションの可用性及びパフォーマンスと関連する情報を得るために操作される。レポート又は連続的なグラフィック監視は、グラフィックユーザインターフェイス（ＧＵＩ：Graphical User Interface）からの特定又は定期的なリクエスト上に産出される。レポート生成は、トランザクションイベントデータを可用性情報及びパフォーマンス情報に統合するために用いられる選別及び凝結のみならず、初期選択の定義付け及びトランザクション処理を含む。
【００１７】
「分散アプリケーションパフォーマンス分解の相関パフォーマンス評価の組込み方法及び組み込みシステム」という名称のMillsらの米国特許出願第２００２／０１２９１３７号は、分散アプリケーションと関連付けられるトランザクションにおける相関パフォーマンス評価を組み込む技術に導かれる。その技術は、アプリケーションパフォーマンス分解に従って用いられる。実際のトランザクションデータそのものを変更するよりもむしろ、データは、分散コンピューティングネットワークにおけるアプリケーションコンポーネント間のトランザクションを実行するのに用いられる通信プロトコルに組み込まれる。組み込まれたデータは、タイムスタンプ及び持続時間評価データを含む。組み込まれたデータのフォーマットは、明確なキーワードプレフィックスを、コロン区切り記号及び空白によって続けられ、且つタイムスタンプ及び持続時間情報によって続けられる、タイミングソースを確認する可変サフィックスと結び付ける。
【００１８】
分散アプリケーションのその後の処理ステージは、トランザクション処理に関する決定を行うために、先のステージの処理持続時間を細かく調べるために通信プロトコルを解明することができる。評価情報は、評価情報によって表される同じ分散アプリケーション内に組み込まれるので、トランザクションの完了がトランザクションパフォーマンス特性の認識の可用性と同時に起こる。
【００１９】
可能な通信プロトコルは、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ：Hypertext Transport Protocol）である。可能な分散コンピューティングネットワークは、ワールドワイドウェブ（ＷＷＷ：World Wide Web）である。アプリケーションコンポーネントは、クライアント上で動作するクライアントアプリケーション及びアプリケーションサーバ上で動作するサーバアプリケーションである。例えば、クライアントアプリケーションは、ウェブブラウザであり、サーバアプリケーションは、ウェブサーバ上で動作する。アプリケーショントランザクションは、クライアントアプリケーションのアプリケーションサーバからのコンテンツの要求、及びアプリケーションサーバの応答である。パフォーマンス情報は、サーバアプリケーションがリクエストをサービスし且つ応答を生成するのにかかる時間における応答時間を分解するために生成されるのみならず、クライアントアプリケーション視野からの周回応答を評価するために生成される。特に、パフォーマンス評価データを運ぶためにＨＴＴＰヘッダにラインが付け加えられ、クライアントがＨＴＴＰ応答ヘッダにおけるサーバ評価持続時間を受信するのを許容する。
【発明の開示】
【課題を解決するための手段】
【００２０】
本開示技術によれば、多階層コンピューティング環境において選択された階層の監視装置が提供される。装置は、コンテキストエージェント及び動的階層拡張を含む。コンテキストエージェントは、選択された階層と関連付けられ、それぞれがそれぞれ階層と関連付けられる他のコンテキストエージェントと結び付けられる。動的階層拡張は、コンテキストエージェントと結び付けられ、選択された階層のリクエストエントリーポートといった、選択された階層の特定の予定ポイントと結び付けられる。動的階層拡張は、選択された階層を通過するリクエストトラフィックを監視し、監視されたリクエストトラフィックは、隣り合う階層からリクエストエントリーポートで受信された少なくとも開始リクエスト（entering request）を含む。動的階層拡張は、監視されたリクエストトラフィックにおける各リクエストを確認し、少なくともリクエストＩＤをコンテキストエージェントに送信する。コンテキストエージェントもまた、隣り合う階層と関連付けられたコンテキストエージェントからの開始リクエストのリクエストコンテキストと関連する情報を受信する。コンテキストエージェントは、受信されたリクエストＩＤに基づき、開始リクエストのリクエストコンテキストと関連する情報を開始リクエストと関連付ける。
【００２１】
動的階層拡張は、選択された階層のリクエストイグジットポートとさらに結び付けられ、監視されたリクエストトラフィックは、選択された階層を出て隣り合う階層に至る少なくとも一つの終了リクエスト（exiting request）を含む。動的階層拡張は、終了リクエストのリクエストコンテキストを獲得し、少なくともリクエストＩＤと、終了リクエストのリクエストコンテキストと関連する情報と、をコンテキストエージェントに送信する。コンテキストエージェントは、受信された情報及びリクエストＩＤに基づき、開始リクエストを終了リクエストと関連付ける。コンテキストエージェントは、終了リクエストが送信された隣り合う階層と関連付けられたコンテキストエージェントに対し、終了リクエストのリクエストコンテキストと関連する情報をさらに提供する。
【００２２】
本開示技術によると、複数の階層を含む多階層コンピューティング環境におけるアプリケーションパフォーマンス管理システムがさらに提供される。システムは、複数の階層の少なくとも二つの監視された階層のそれぞれにとっての動的階層拡張及びコンテキストエージェントを含む。動的階層拡張は、監視された階層の少なくともリクエストエントリーポートと結び付けられる。コンテキストエージェントは、動的階層拡張と結び付けられ、監視された階層と直接結び付けられる階層と関連付けられる他のコンテキストエージェントと結び付けられる。動的階層拡張は、選択された階層を通過するリクエストトラフィックを監視し、監視されたリクエストトラフィックは、隣り合う階層からリクエストエントリーポートで受信される少なくとも一つの開始リクエストを含む。動的階層拡張は、監視されたリクエストトラフィックにおける各リクエストを確認し、少なくともリクエストＩＤをコンテキストエージェントに送信する。コンテキストエージェントもまた、隣り合う階層と関連付けられたコンテキストエージェントからの開始リクエストのリクエストコンテキストと関連する情報を受信する。コンテキストエージェントは、受信されたリクエストＩＤに基づき、開始リクエストのリクエストコンテキストと関連する情報を開始リクエストと関連付ける。システムは、コンテキストネットワーク管理サーバをさらに含む。コンテキストネットワーク管理サーバは、コンテキストエージェントと結び付けられる。コンテキストネットワーク管理サーバは、コンテキストエージェントから受信したパフォーマンスデータを収集して解析する。
【００２３】
本開示技術によれば、複数の階層を含む多階層コンピューティング環境におけるアプリケーションパフォーマンス管理方法がさらに提供される。方法は、複数の階層の少なくとも二つの監視された階層のそれぞれにとっての、少なくとも一つの開始リクエストのリクエストコンテキストと関連する情報を受信する手順を含み、情報は、少なくともリクエストＩＤ及びトランザクションＩＤを含む。方法は、監視された階層を通過するリクエストトラフィックを監視する手順をさらに含み、監視されたリクエストトラフィックは、少なくとも開始リクエストを含む。方法は、リクエストＩＤに基づいて開始リクエストを確認し、トランザクションＩＤに基づいて開始リクエストをトランザクションと関連付ける。
【００２４】
本開示技術によれば、複数の階層を含む多階層コンピューティング環境における他のアプリケーションパフォーマンス管理方法がさらに提供される。方法は、複数の階層の少なくとも二つの監視された階層のそれぞれにとっての、監視された階層を通過するリクエストトラフィックを監視する手順を含み、監視されたリクエストトラフィックは、少なくとも開始リクエスト及び終了リクエストを含み、終了リクエストは、監視された階層から隣り合う階層に送信される。方法は、開始リクエストのリクエストコンテキストと関連する情報を決定し、監視されたリクエストトラフィックにおける各リクエストを確認する手順をさらに含む。方法は、開始リクエストを終了リクエストと関連付け、終了リクエストのリクエストコンテキストと関連する情報を隣り合う階層と関連付けられたコンテキストエージェントに送信する手順をさらに含む。
【００２５】
本開示技術は、図面と関連して以下の詳細な説明からより完全に理解され且つ評価される。
【発明を実施するための最良の形態】
【００２６】
本開示技術は、多階層コンピューティング環境におけるアプリケーションパフォーマンス管理システム及び管理方法を提供することによって、従来技術の欠点を克服する。システムは、各階層のリクエストエントリーポート及びリクエストイグジットポートを監視し、複数のコンテキストエージェントを介して、所定の階層へのあるいは所定の階層からのエントリーリクエストあるいはイグジットリクエストを検出する。各コンテキストエージェントは、多階層コンピューティング環境における階層と関連付けられ、他のコンテキストエージェントと通信することができる。コンテキストエージェントは、関連付けられた階層上のリクエストの実行と関連する情報を収集する。コンテキストエージェントは、ユーザリクエストのリクエストコンテキストを確認する。コンテキストエージェントは、ユーザリクエストをリクエストクラスに分類する。コンテキストエージェントは、関連付けられた階層を出てリクエストが送信された階層と関連付けられたそれに続くコンテキストエージェントに至るリクエスト特性を中継する。
【００２７】
コンテキストエージェントは、リクエストを、ユーザリクエスト、及び同じトランザクションにおける他の先のリクエストと関連付ける。コンテキストエージェントは、リクエストクラスと、局所的に保存されたアクティブサービスクラスポリシーとに基づいて、サービスクラスをリクエストに与える。コンテキストエージェントは、階層へのリクエストエントリーポートでのキュー上のリクエストのオーダを調整したり、リクエストを実行する処理部の優先度を変更したり、リクエストを実行する処理部の処理タイプを変更したり、リクエストを処理するための計算リソース（例えば、中央処理装置（ＣＰＵ）やメモリといったもの）を割り付けることを否定するために階層を指示したり、リクエストを保持し且つ処理部を解放したり、リクエストを終了するといった、リクエストの処理に影響を与えるために介入を実行する。コンテキストネットワーク管理サーバは、数個の階層を横断する異なるタイプのリクエストの挙動を描き、適切な横断階層サービスクラスポリシーをセットする。従って、システムは、多階層コンピューティング環境における異なる階層を横断して、トランザクションレベルでコンテキスト関連リソース管理を提供する。
【００２８】
本開示技術は、ＩＴインフラチェーンにおける全ての階層を横断する積極的なトランザクション仕事量管理の将来性を提供する。システムは、ウェブ、アプリケーション、データベース及びミドルウェアサーバといった、ＩＴインフラ階層を統合する。システムは、自動的に仕事量を描き、仕事量を分類することを助け、ユーザが適切なサービスクラスパフォーマンスポリシーを生成するのを可能とする。システムは、コンピューティング環境における階層を横断するトランザクションにこれらのポリシーを適用する。システムは、現在のＩＴインフラを利用し、ビジネス関係と一致する最適なサービスレベルで均衡のとれたサービス提供を可能とすべく、現在のＩＴインフラを向上させる。以下の用語は、実施形態の説明を通して用いられる。
【００２９】
「階層」なる用語は、ＩＴトランザクションの全サービス提供の一部である所定のサービスを提供する構成要素について言及する。サービスは、ウェブサーバ階層上のプレゼンテーションレベル処理、アプリケーションサーバ階層上のアプリケーション機能性、データベース階層上のデータ処理といったものである。各階層は、一つのホストマシーン上で作動する一以上の階層があるが、一般的に異なるホストマシーンで動作し、一つの階層は、一以上のホストマシーン上に存在する複数のコンポーネントを含む。少なくとも一つの階層が動作するホストマシーンは、「階層ホスト」として以下に言及される。階層の例は、限定はされないが、Ｊ２ＥＥ（Java 2 Platform, Enterprise Edition）アプリケーションサーバインスタンス、Ｊ２ＥＥアプリケーションサーバインスタンスのクラスタ、ＪＤＢＣ（Java Database Connectivity）／ＯＤＢＣ（Open Database Connectivity）ドライバといったデータベースサーバに対するアクセスコンポーネントを含むデータベースサーバインスタンス、クラスタデータベースといったものを含む。
【００３０】
「トランザクション」なる用語は、ビジネスアプリケーション内のビジネス処理のステージといった、ユーザによって起こされる一つの処理を表す。トランザクションの例は、オンラインオークションサービスにおけるビットの打ち込みや、金融機関での新規顧客口座の開設である。トランザクションは、階層間のリクエストのチェーンからなり、ユーザリクエストで開始する。従って、各リクエストは、独自にユーザリクエスト（即ち、トランザクションのユーザリクエスト）と関連付けられる。各トランザクションは、公知の「トランザクションＩＤ」といった固有のＩＤを介して確認される。それは、「関連するトランザクションのセット」が、相互に関連付けられるそれぞれのトランザクションに言及する（即ち、各トランザクションが一つのビジネス処理の異なるステージを表す）ことを意味する。トランザクション内のリクエストの取り扱いは、トランザクションのみならず、リクエストが属する関連トランザクションのセットをも考慮する。
【００３１】
「リクエスト」なる用語は、トランザクションの一部である所定のサービスを提供するために、一つの階層から他の階層へのシステムリクエストについて言及する。各リクエストは、公知の「リクエストＩＤ」といった、固有のＩＤを介して確認される。各リクエストは、呼び出された階層上の作業単位（ＵＯＷ：unit of work）という結果になる。リクエストの例は、限定はされないが、ウェブサーバに対して要求するハイパーテキストトランスポートプロトコル（ＨＴＴＰ：Hypertext Transport Protocol）を与えるクライアントウェブブラウザ、アプリケーションサーバを呼び出すリモートメソード呼び出し（ＲＭＩ：Remote Method Invocation）を与えるＪＡＶＡプログラム、リモートアプリケーションサーバ（ＲＭＩを介する）上のエンティティービーンを呼び出すＪ２ＥＥアプリケーションサーバセッションビーンといったものを含む。
【００３２】
「ユーザリクエスト」なる用語は、ユーザやアプリケーションの何れかによって起こされるイニシャルリクエストについて言及し、本開示技術によって監視されない階層で始まる。ユーザリクエストは、トランザクションを作るリクエストのチェーンにおける最初のリクエストである。リクエストのチェーンは、ツリーのルートノードでユーザリクエストを備えるツリー構造として表され得る。
【００３３】
「ＵＯＷ」なる用語は、階層上の適切なリクエストに割り付けられた処理部において実行するアプリケーションコード（即ち、ＵＯＷ呼び出し）について言及する。ＵＯＷは、リソース及び目的と関連付けられ、（アプリケーションコード挙動のために指示される）パラメータを有し、一つの階層内に階層レベルリソースを用いる。
【００３４】
「処理部」なる用語は、所定の階層においてＵＯＷを実行する、どんなスレッド、サブ処理、データベースセッションといったものについても言及する。リクエストは、利用可能な処理部が割り付けられるまで階層において列に並ばされ、アプリケーションコード（即ち、ＵＯＷ）は、処理部に与えられる。処理部は、順番に異なるアプリケーションコードを実行する一般的な実行ユニットである。
【００３５】
「リクエストコンテキスト」なる用語は、最初にユーザリクエストから獲得され、トランザクションのリクエストのチェーンに沿ってそれに続くリクエストに送信され、途中のどんな階層でも修正される特性のセットについて言及する。リクエストコンテキストは、本開示技術が、ユーザリクエストによって起こされる一つのトランザクションの部分としてのリクエストの結果チェーンを確認し、追跡し、優先順位を付けることを可能とする。リクエストコンテキストは、例えばリクエストを提出したユーザの特性、リクエストに支配されるアイテムの特性、リクエストが起こされた地理的位置、リクエストがなされた時間及び日付、リクエストが属する関連トランザクションのセットといったものを含む。リクエストコンテキストの所定部は、それに続く階層で修正される。例えば、最初の階層でリクエストコンテキストに追加されるユーザリクエストのサービスクラスは、それに続く階層によって（即ち、本開示技術の他の実施形態に従って）無効にされる。
【００３６】
「リクエストクラス」なる用語は、一以上の予め定められたリクエストコンテキスト特性を分けるトランザクションのカテゴリーについて言及する。例えば、「株券ポートフォリオサマリークエリ」は、「株券ポートフォリオサマリークエリ」リクエストクラスに分類され、あるいは、「株券ポートフォリオヒストリークエリ」といった、トランザクションと組むより大きな「株券ポートフォリオクエリ」リクエストクラスの一部である。各リクエストクラスは、アクティブサービスクラスポリシーに基づいて処理される。リクエストクラスがユーザリクエストに一旦与えられると、リクエストクラスは、ユーザリクエストによって起こされるトランザクションにおけるそれぞれ続きのリクエストに自動的に与えられる。
【００３７】
「サービスクラス」なる用語は、リクエストの処理にとって重要なレベルを示す各種のパラメータのランキングのセットについて言及する。パラメータは、リクエストに与えられる優先度、リクエストに割り付けられるＣＰＵパーセンテージ、リクエストに割り付けられるメモリ、リクエストに対する割り付け及びアクセスのＩ／Ｏ装置といったものを含む。サービスクラスは、適切なアクティブサービスクラスポリシーに基づいて、それぞれコンテキストエージェントによって所定の階層上で実行するリクエストに与えられる。
【００３８】
「サービスクラスポリシー」なる用語は、リクエストが処理される階層に関して、リクエストクラス内のリクエストにサービスクラスを与えるルールについて言及する。各コンテキストエージェントは、階層仕様サービスクラスポリシーのセットを含み、それぞれは、コンテキストエージェントと関連付けられた特定の階層のためのリクエストクラスにサービスクラスをマップする。「横断階層サービスクラスポリシーデータベース」は、多階層コンピューティング環境における全ての階層のためのリクエストクラスに対するサービスクラスのマッピングのセットを述べる。それは、ユーザがサービスクラスポリシーのセットを定義することを意味する。そのようなポリシーは、以下では「ユーザ定義サービスクラスポリシー」として言及される。
【００３９】
「アクティブサービスクラスポリシー」なる用語は、現在実施されているサービスクラスマッピングに対するリクエストクラスを含む。複数のサービスクラスポリシーが支持され、異なるサービスクラスポリシーが、仕事量の変化を反映するためのシステムオペレーションの異なる時間や各種のシステムイベントで予定に入れられる。
【００４０】
本開示技術の一実施形態に基づいて構成され且つ作用する、符号１００で参照されるアプリケーションパフォーマンス管理システムの概略図である図２を参照する。システム１００は、符号１３２で参照される多階層コンピューティング環境上で作動する。コンピューティング環境１３２は、第１のアプリケーションを動作させる第１のクライアント１１２、第２のアプリケーションを動作させる第２のクライアント１１４、第１の階層１０２、第２の階層１０４、第３の階層１０６、第４の階層１０８及び第５の階層１１０を含む。第１の階層１０２は、ウェブサーバである。第２の階層１０４は、アプリケーションサーバ、アプリケーションサーバＡである。第３の階層１０６は、他のアプリケーションサーバ、アプリケーションサーバＢである。第４の階層１０８は、さらなるアプリケーションサーバ、アプリケーションサーバＣである。第５の階層１１０は、データベースである。
【００４１】
第１の階層１０２は、第１のクライアント１１２、第２のクライアント１１４及び第２の階層１０４と結び付けられる。第２の階層１０４は、第３の階層１０６とさらに結び付けられる。第３の階層１０６は、第４の階層１０８及び第５の階層１１０とさらに結び付けられる。第４の階層１０８は、第５の階層１１０とさらに結び付けられる。第１のクライアント１１２上で動作する第１のアプリケーションは、ユーザリクエストＲ１を起こす。第２のクライアント１１４上で動作する第２のアプリケーションは、ユーザリクエスト１１８を起こす。
【００４２】
システム１００は、複数のコンテキストエージェント１２２，１２４，１２６，１２８，１３０及びコンテキストネットワーク管理サーバ（ＣＮＭＳ）１２０を含む。図２で示される例において、各階層と関連付けられる一つのコンテキストがある。特に、コンテキストエージェント１２２，１２４，１２６，１２８，１３０は、第１の階層１０２、第２の階層１０４、第３の階層１０６、第４の階層１０８及び第５の階層１１０のそれぞれと関連付けられる。コンテキストエージェント１２２，１２４，１２６，１２８，１３０は、ＣＮＭＳ１２０と結び付けられる。各コンテキストエージェントは、コンピューティング環境１３２における階層の結び付けに基づいて他のコンテキストエージェントとも結び付けられる。特に、コンテキストエージェント１２２は、コンテキストエージェント１２４と結び付けられ、コンテキストエージェント１２４は、コンテキストエージェント１２６とさらに結び付けられ、コンテキストエージェント１２６は、コンテキストエージェント１２８，１３０とさらに結び付けられ、コンテキストエージェント１２８は、コンテキストエージェント１３０とさらに結び付けられる。
【００４３】
第１のクライアント１１２は、第１の階層１０２からサービスを要求し、第１のクライアント１１２は、ユーザリクエストＲ１を第１の階層１０２に送信する。第１の階層１０２は、ユーザリクエストＲ１を処理するために、利用可能な処理部Ｘ１を与える。ユーザリクエストＲ１を処理する間、処理部Ｘ１において実行するアプリケーションロジックは、第２の階層１０４によって提供される追加情報やオペレーションを必要とすることなしに処理部Ｘ１がユーザリクエストＲ１の処理を完了することはできないと決定する。従って、第１の階層１０２は、新しいリクエストＲ２を第２の階層１０４に送信し、追加情報やオペレーションを要求する。第２の階層１０４は、リクエストＲ２を処理するために、利用可能な処理部Ｘ２を与える。処理部Ｘ２において実行するアプリケーションロジックは、第３の階層１０６によって提供されるさらなる情報やオペレーションを処理部Ｘ２が必要とすると決定する。従って、第２の階層１０４は、新しいリクエストＲ３を第３の階層１０６に送信する。第３の階層１０６は、リクエストＲ３を処理するために、利用可能な処理部Ｘ３を与える。それは、リクエストＲ１，Ｒ２，Ｒ３のそれぞれが、第１のクライアント１１２上で動作するアプリケーションから起こる一つのトランザクションの一部であることを意味する。
【００４４】
処理部Ｘ３は、処理を完了する。第３の階層１０６は、第２の階層１０４からの先のリクエストＲ３に応じて、リプライＲ３’を第２の階層１０４に返信する。処理部Ｘ２において実行するアプリケーションロジックは、リプライＲ３’を受信し、実行を再開する。処理部Ｘ２が処理を一旦完了すると、第２の階層１０４は、第１の階層１０２からの先のリクエストＲ２に応じてリプライＲ２’を第１の階層１０２に返信する。処理部Ｘ１において実行するアプリケーションロジックは、リプライＲ２’を受信し、実行を再開する。処理部Ｘ１が処理を一旦完了すると、第１の階層１０２は、リプライＲ１’をユーザリクエストＲ１に返信し、完了する。
【００４５】
各コンテキストエージェントは、リクエストエントリーポート及びリクエストイグジットポート（図２，３において小さい円として表される）で関連付けられた階層を監視する。コンテキストエージェントは、リクエストが関連する階層を入ったり出たりすることを検出することによって、関連する階層を通過するリクエストトラフィックを監視する。リクエストがユーザリクエスト（即ち、リクエストのチェーンにおけるイニシャルリクエスト）ならば、第１の階層のコンテキストエージェントは、ユーザリクエストのリクエストコンテキストを確認し、ユーザリクエストをリクエストクラスに分類し、アクティブサービスクラスポリシーのコンテンツに基づくユーザリクエストにサービスクラスを与える。各コンテキストエージェントは、それぞれコンテキストエージェントと関連付けられた階層のための階層仕様サービスクラスポリシーのセットを含むポリシーキャッシュ（図示しない）を有する。ＣＮＭＳ１２０は、階層仕様アクティブサービスクラスポリシーを伴って各コンテキストエージェントを定期的に更新する。リクエストがユーザリクエストでないなら、コンテキストエージェントは、リクエストと関連する追加情報（即ち、「コンテキスト情報」）と共に、リクエストが起こされる階層と関連付けられるコンテキストエージェントから、リクエストのリクエストコンテキストと関連する情報を受信する。それは、コンテキストエージェントが他のコンテキストエージェントと中継するコンテキスト情報に含まれる最小限の情報が、少なくとも、リクエストＩＤ、トランザクションＩＤ、リクエストクラス、及びリクエストと関連付けられたコンテキスト関連データであることを意味する。コンテキスト関連データは、リクエストコンテキスト自身か、他の位置に存在するリクエストコンテキストに対する表示（例えば、ポインタ）を含む。
【００４６】
コンテキストエージェントは、受信されたコンテキスト情報を、階層上で実行するリクエストと関連付ける。コンテキストエージェントは、リクエストに与えられたサービスクラスに基づき、それぞれの階層によって、リクエストの処理に影響を及ぼす。例えば、コンテキストエージェントは、階層へのリクエストエントリーポートでのキュー上のリクエストのオーダを調整したり、リクエストを実行するための階層からの計算リソースが割り付けられあるいは選択的に否定される階層を指示する。コンテキストエージェントがリクエストが関連する階層を出たことを検出したならば、コンテキストエージェントは、リクエストが送信された階層と関連付けられた他のコンテキストエージェントにコンテキスト情報を中継する。他のコンテキストエージェントは、受信したコンテキスト情報を、関連性のあるリクエストと関連付けると共に、他のコンテキストエージェントと関連付けられた階層上のリクエストを実行する処理部と関連付ける。
【００４７】
それは、コンテキストエージェントが、階層自身内（例えば、リクエストを処理する処理部）で起こるアクティビティーを広範囲に監視するというよりはむしろ、階層上のリクエストエントリーポート及びリクエストイジェクトポートを監視することを意味する。その結果として、システム１００は、所定の階層の実際のオペレーションや、ソフトウェア視野から階層において実行するユーザアプリケーションコードを干渉せず、システム１００は、階層への最小限の追加負荷を追加する。
【００４８】
コンテキストエージェントは、動的階層拡張（ＤＴＥ：dynamic tier extension、図２においては図示しない）を介して関連する階層とも結び付けられる。ＤＴＥは、コンテキストエージェントが階層上のＵＯＷの実行と関連するデータを収集することを可能とする。コンテキストエージェントは、保管目的で生データをＣＮＭＳ１２０に送信する。コンテキストエージェントは、統合された解析のためにＣＮＭＳ１２０に統計データをさらに送信する。コンテキストエージェントは、アクティビティープロフィール及び異なるタイプのリクエストクラスを処理するための新しいアクティブサービスクラスポリシーといった情報をＣＮＭＳ１２０から受信する。コンテキストエージェントは、図８で詳細に説明される。
【００４９】
特に、コンテキストエージェント１２２は、第１の階層１０２を監視し、ユーザリクエストＲ１が第１の階層１０２に入ることを検出する。コンテキストエージェント１２２は、ユーザリクエストＲ１のリクエストコンテキストを確認し、ユーザリクエストＲ１をリクエストを処理する処理部Ｘ１と関連付ける。コンテキストエージェント１２２は、ユーザリクエストＲ１を適切なリクエストクラスに分類する。コンテキストエージェント１２２は、コンテキストエージェント１２２が保存されるサービスクラスポリシーにおける適切なアクティブサービスクラスポリシーを検索することによって、第１の階層１０２におけるユーザリクエストＲ１のサービスクラスを決定し、決定されたサービスクラスをユーザリクエストＲ１に与える。コンテキストエージェント１２２は、与えられたサービスクラスをリクエストコンテキストに加える。新しいリクエストＲ２が第２の階層１０４に向かって第１の階層１０２を出るとき、コンテキストエージェント１２２は、リクエストＲ２がユーザリクエストＲ１と関連することを検出する。しかる後、コンテキストエージェント１２２は、ユーザリクエストＲ１のリクエストコンテキストと関連する情報を、リクエストＩＤ、リクエストクラス、及びリクエストＲ２と関連付けられたトランザクションＩＤと共に、コンテキストエージェント１２４に送信する。
【００５０】
図２の二つのコンテキストエージェント間で中継する情報の概略図である図３を参照する。コンテキストエージェント１２２は、コンテキストエージェント１２４にメッセージ１３４を送信する。メッセージ１３４は、リクエストＲ２のリクエストＩＤ、リクエストＲ２のトランザクションＩＤ、コンテキストエージェント１２２がリクエストＲ２を分類したリクエストクラス、リクエストＲ２のリクエストコンテキストを含む。コンテキストエージェント１２４は、メッセージ１３４を受信し、コンテキストエージェント１２４が保存されるサービスクラスポリシーのセットにおける適切なアクティブサービスクラスを検索することによって、第２の階層１０４上で実行されるリクエストＲ２のサービスクラスを決定する。コンテキストエージェント１２４は、決定されたサービスクラスをリクエストＲ２に与える。例えば、リクエストＲ２のリクエストクラスは、グループ「１５」である。コンテキストエージェント１２４は、第２の階層１０４上で実行するリクエストクラス「１５」のリクエストに対してサービスクラスをマップするアクティブサービスクラスポリシーを検索する。適切なサービスクラスポリシーは、そのようなリクエストへの優先度「５」、ＣＰＵの割り付け「９０」、メモリの割り付け「４８」、Ｉ／Ｏデバイスのアクセス優先度「２」を与える。しかる後、コンテキストエージェント１２４は、与えられたサービスクラスに基づいてリクエストＲ２の処理に影響を及ぼす。
【００５１】
システム１００は、リクエストコンテキストベース上のアプリケーションパフォーマンス管理を実行する。システム１００は、リクエストを確認し、各リクエストと関連する特性は、階層と関連付けられたコンテキストエージェントで利用可能である。これらの特性は、リクエストがトランザクションにおいて先行されたリクエストを要求するリクエストがどこで起こるか、リクエストのタイプが何であるかを含む。例えば、コンテキストエージェント１２４は、第２の階層１０４上で動作するリクエストＲ２が、第１の階層１０２によって処理され且つ第１のクライアント１１２において起こされるユーザリクエストＲ１と関連付けられる。所定の階層のコンテキストエージェントは、リクエストコンテキストと、それぞれの階層で実行される各リクエストのリクエストクラスとに気付くので、コンテキストエージェントは、サービスクラスポリシーに基づくそれぞれリクエストの適切な階層仕様サービスクラスを決定し得る。ＣＮＭＳ１２０は、いくらかの階層、それぞれ異なるリクエストクラスを横断して全管理ポリシーをセットすることができ、それに応じてコンテキストエージェントを更新することができる。
【００５２】
符号１４０で参照される、図２のシステムの二つの階層上でのサンプルリクエストライフサイクルの概略図である図４を参照する。サンプルライフサイクル１４０は、ステージを表し、リクエストは、多階層コンピューティング環境１３２（図２）においてサービスされるリクエストとして経験する。それは、（ＵＯＷが実行される同じ階層にリクエストを送信することによって）同じ階層の内部で、あるいは（リクエストを多の階層に送信することによって）外部で、追加リクエストをさらに生成する、ＵＯＷの呼び出しをリクエストが起こすことを思い出させる。従って、ユーザリクエストは、一般的にＵＯＷの一連の呼び出しを引き起こし、それぞれが異なる階層上で実行される。ＵＯＷの呼び出しは、同期（即ち、呼び出すＵＯＷを実行する処理部が、処理を再開する前に呼び出されたＵＯＷからのリプライを待つこと）あるいは非同期（即ち、呼び出すＵＯＷを実行する処理部が、呼び出されたＵＯＷからのリプライを待つことなく、呼び出すＵＯＷの処理を続けること）である。両方の場合において、呼び出された階層Ｎ＋１上のＵＯＷは、呼び出す階層Ｎによって要求されるサービスに専念される。同期処理において、階層Ｎ上の呼び出すＵＯＷが階層Ｎ＋１上の呼び出されたＵＯＷを終わりまで（即ち、階層Ｎ＋１上のＵＯＷが割り付けられるまで）待つ。他の場合において、階層Ｎ＋１上の呼び出されたＵＯＷは、階層Ｎ＋１上の呼び出されたＵＯＷが終わるまで、呼び出す階層によって複数回参照される。
【００５３】
ステージ１４２において、第１のリクエストは、コンピューティング環境１３２における階層Ｎ（即ち、どんな代表の階層）に送信される。第１のリクエストは、先の階層あるいはユーザアプリケーションのどちらにとっても、サービスを提供するために、階層Ｎ上のＵＯＷ呼び出しという結果になる。第１のリクエストは、階層Ｎ上のキューを待つ。
【００５４】
ステージ１４４において、第１のリクエストは、キュー１５８を出て、階層Ｎ上に、ＵＯＷ、ＵＯＷ−Ａが割り付けられる。ＵＯＷ割り付けは、階層Ｎにおける処理部１６２の一つから利用可能な処理部を与えることと、その処理部で動作するためのリクエストアプリケーションコードを送ることとを含む。ＵＯＷ割り付けがターゲットを一旦起こすと、階層リソースは利用可能であり、階層Ｎ上の利用可能な処理部に対するアプリケーションコードを与えることができる。サンプルライフサークル１４０において、ＵＯＷ−Ａは、階層Ｎ上で実行を開始する。
【００５５】
ステージ１４６において、ＵＯＷ−Ａは、第２のリクエストを階層Ｎ＋１に与える。しかる後、階層Ｎ＋１は、階層Ｎのこのリクエストを実行するためにＵＯＷ−Ｂを呼び出す。ステージ１４８において、階層Ｎ＋１は、階層Ｎによって送信された第２のリクエストを実行するためにＵＯＷ−Ｂを呼び出す。第２のリクエストは、階層Ｎ＋１上のキュー１６０を待つ。ステージ１５０において、第２のリクエストがキュー１６０を出て、ＵＯＷ−Ｂは、第２のリクエストに割り付けられる。ＵＯＷ−Ｂ割り付けは、ＵＯＷ呼び出しのアプリケーションコードに対する階層Ｎ＋１における処理部１６４の一つから利用可能な処理部を付与し、その処理部で動作するためのリクエストアプリケーションコードを送るという結果になる。しかる後、ＵＯＷ−Ｂは、階層Ｎ＋１上の実行を開始する。それは、ＵＯＷ−Ｂの呼び出しが同期であり、従って、ＵＯＷ−Ａを処理する処理部は、ＵＯＷ−Ｂからのリプライを待っている間、処理を続けないことを意味する。
【００５６】
ＵＯＷ−Ｂの呼び出しが非同期である場合において、ＵＯＷ−Ａを処理する処理部は、ＵＯＷ−Ａから階層Ｎ＋１に送信された第２のリクエストが受け入れられることの承認を階層Ｎ＋１から受信する。承認を受信した上で、ＵＯＷ−Ａを処理する処理部は、処理部がリプライを第１のリクエストに返信するまでに実行を再開する。階層Ｎ＋１が非同期な第２のリクエストを受け入れた後、第２のリクエストは、キュー１６０を待つ。第２のリクエストは、処理部の一つがキュー１６０から第２のリクエストを移動させるまで、第２のリクエストを処理する一以上の処理部によって読み出される。第２のリクエストを処理する各処理部は、第２のリクエストを、他のリクエストのチェーンを開始し、その結果、新しいトランザクションを開始する、新しいユーザリクエストに返す。
【００５７】
例えば、非同期なリクエストを含むトランザクションは、ｅコマースのウェブサイトにおける書籍購入を確認するユーザである。購入リクエストは、オーダが処理され且つユーザに（例えば、Ｅメールやテキストメッセージを介して）通知される画面報告をユーザに返信する。同じ購入リクエストは、最終同意リクエストをクレジットカード会社に送信する処理部、購入オーダリクエストをウェアハウスに送信する処理部、会計報告リクエストをビリングシステムに送信する処理部といったものによって、購入リクエストが後に処理されるメッセージキュー上に同時に置かれる。
【００５８】
ステージ１５２において、ＵＯＷ−Ａの先の呼び出しに応じてリプライをＵＯＷ−Ａに返信し、ＵＯＷ−Ｂの実行が完了する。第２のリクエストは、終了する。ステージ１５４において、ＵＯＷ−Ａは、ＵＯＷ−Ｂが階層Ｎ＋１によって実際にリリースされるポイントで、リプライを受信し且つ実行を再開する。しかる後、ＵＯＷ−Ａは、実行を続ける。呼び出すＵＯＷがリクエストを生成した時と呼び出すＵＯＷが呼び出されたＵＯＷからのリプライを受信する時との間の持続時間は、「潜伏時間」期間あるいは所定のＵＯＷリクエストのための応答時間として知られる。
【００５９】
ステージ１５６において、ＵＯＷ−Ａは、実行を完了し、第１のリクエストは、終了する。それは、完了前に、ＵＯＷ−Ａが他の階層のサービスを要求し、そのサービスを提供するためにさらにリクエストを呼び出すことを意味する。
【００６０】
それは、ＵＯＷ−Ｂがステージ１５０において割り付けられ、階層Ｎ＋１上の実行を開始した後、治癒できないエラーが起こる（例えば、プログラム例外）ことを意味する。本開示技術の一実施形態に基づき、階層Ｎ＋１と関連付けられたコンテキストエージェントは、階層Ｎ＋１上で起こったエラーの種類に関する情報を提供しつつ、エラーを記録し、開始されるトランザクションに対するエラーを、階層Ｎ上のＵＯＷ−Ａを呼び出したユーザリクエストと関連付ける。
【００６１】
本開示技術の他の実施形態に基づいて構成され且つ作用する、符号２００で参照されるアプリケーションパフォーマンス管理システムの概略図である図５を参照する。システム２００は、符号２４８で参照される多階層コンピューティング環境上で作動する。コンピューティング環境２４８は、クライアント２１４、第１の階層２０２、第２の階層２０４、第３の階層２０６、第４の階層２０８及び第５の階層２１０を含む。第１の階層２０２は、ウェブサーバである。第２の階層２０４は、アプリケーションサーバＡである。第３の階層２０６は、アプリケーションサーバＢである。第２の階層２０４及び第３の階層２０６は、共に一つのホストマシーン２１２上に存在する。第４の階層２０８は、他のアプリケーションサーバ、アプリケーションサーバＣである。第５の階層２１０は、データベースである。第１の階層２０２は、クライアント２１４、ホスト２１２と結び付けられる。ホスト２１２は、第４の階層２０８及び第５の階層２１０とさらに結び付けられる。第４の階層２０８は、第５の階層２１０とさらに結び付けられる。
【００６２】
システム２００は、複数の動的階層拡張２２２，２２４，２２６，２２８，２３０、複数のコンテキストエージェント２３２，２３４，２３６，２３８、複数のローカルログ２４０，２４２，２４４，２４６、コンテキストネットワーク管理サーバ（ＣＮＭＳ：context network management sever）２１６、サービルレベル目標（ＳＬＯ：service level objective）ポリシーデータベース２１８、スーパバイザワークステーション２２０を含む。各階層は、動的階層拡張（ＤＴＥ：dynamic tier extension）を含む。各階層と関連付けられたコンテキストエージェントがある。各コンテキストエージェントと関連付けられたローカルログがある。所定の階層のコンテキストエージェントは、階層内のＤＴＥ（あるいはいくつかのＤＴＥ）、コンテキストエージェントと関連付けられたローカルログ、コンピューティング環境における階層の結び付けに基づく他のコンテキストエージェントと結び付けられる。各コンテキストエージェントは、ＣＮＭＳ２１６とも結び付けられる。ＣＮＭＳ２１６は、ＳＬＯポリシーデータベース２１８と結び付けられる。スーパバイザワークステーション２２０は、ＣＮＭＳ２１６及びＳＬＯポリシーデータベース２１８と結び付けられる。スーパバイザワークステーション２２０は、ＣＮＭＳ２１６及びＳＬＯポリシーデータベース２１８と結び付けられる。
【００６３】
特に、第１の階層２０２は、ＤＴＥ２２２を含む。コンテキストエージェント２３２は、第１の階層２０２と関連付けられる。ローカルログ２４０は、コンテキストエージェント２３２と関連付けられる。第２の階層２０４は、ＤＴＥ２２４を含む。第３の階層２０６は、ＤＴＥ２２６を含む。第２の階層２０４及び第３の階層２０６は両方ホスト２１２上に存在するので、第２の階層２０４及び第３の階層２０６の両方と関連付けられる一つのコンテキストエージェント２３４があるのみである。それは、コンテキストエージェント２３４がＤＴＥ２２４及びＤＴＥ２２６のそれぞれと直接結び付けられることを意味する。ローカルログ２４２は、コンテキストエージェント２３４と関連付けられる。第４の階層２０８は、ＤＴＥ２２８を含む。コンテキストエージェント２３６は、第４の階層２０８と関連付けられる。コーカルログ２４４は、コンテキストエージェント２３６と関連付けられる。最後に、第５の階層２１０は、ＤＴＥ２３０を含む。コンテキストエージェント２３８は、第５の階層２１０と関連付けられる。ローカルログ２４６は、コンテキストエージェント２３８と関連付けられる。コンテキストエージェント２３２は、コンテキストエージェント２３４と結び付けられる。コンテキストエージェント２３４は、コンテキストエージェント２３６及びコンテキストエージェント２３８とさらに結び付けられる。コンテキストエージェント２３６は、コンテキストエージェント２３８とさらに結び付けられる。
【００６４】
動的階層拡張は、特定の予め定められたポイントで階層と結び付けられる。これらの予定ポイントは、階層のリクエストエントリーポート、階層のリクエストイグジットポート、階層内のできる限りの追加領域（例えば、階層コントロールポート）である。本開示技術によるリクエストポートは、階層によって処理される前か処理された後のリクエストを管理する階層内のモジュールである。そのようなリクエストポートは、階層の入口でリクエストキューに対するインターフェイスポイント（即ち、入口、出口、あるいはその他のどんなアクセス機構も）であり得る。リクエストは、処理部によって階層上で動作するアプリケーションコードからサービスを要求するので、それぞれリクエストポートは、アプリケーションレベルで存在し、ネットワーキングレベルでは存在しない。それは、本開示技術によるリクエストポートがネットワークレベルでない（例えば、ＴＣＰ／ＩＰやＵＤＰポートでない）ことを意味する。
【００６５】
ＤＴＥは、階層がその上で関連付けられる（即ち、階層が動作するホストマシーンの少なくとも一つの上にＤＴＥが位置する）ように、同じ階層ホスト上に位置される。ＤＴＥの責務は、リクエストコンテキストを獲得することである。ＤＴＥは、入出力するリクエストを検出するため、階層のリクエストエントリーポート及びリクエストイグジットポートを監視する。ＤＴＥは、トランザクションＩＤをユーザリクエストに与え、階層を入ったり出たりする各リクエストのリクエストＩＤを得る。ＤＴＥは、以下に記述される図７に詳細に説明される。
【００６６】
コンテキストエージェントは、所定のリクエストと、リクエストの呼び出されたＵＯＷと、リクエストとしての同じトランザクションにおけるユーザリクエストのリクエストコンテキストとの間の関係を維持する。コンテキストエージェントは、各リクエスト（即ち、コンテキスト関連データ）に与えられたリクエストコンテキストを、他の階層を処理する他のコンテキストエージェントに中継する。コンテキストエージェントは、全リクエストコンテキストあるいはリクエストコンテキストの一部を中継する。さらに、コンテキストエージェントは、リクエストコンテキスト自身か表示（例えば、ポインタ）を他の位置に存在するリクエストコンテキストに中継する。それは、コンテキストエージェントが階層としての同じホストマシーン上に必然的に存在することを必要としないが、これは、本開示技術の好ましい実施形態における場合であることを意味する。コンテキストエージェントは、以下に記述される図８に詳細に説明される。ＣＮＭＳ２１６は、パフォーマンスデータを収集し、解析する。ＳＬＯポリシーデータベース２１８は、横断階層サービスクラスポリシーを保存し、連続的に更新される。
【００６７】
図５の多階層コンピューティング環境の二つの階層の概略図である図６を参照する。それは、図６に示される第４の階層２０８及び第５の階層２１０のそれぞれがコンピューティング環境２４８におけるどんな二つの連続する階層（例えば、階層Ｎと階層Ｎ＋１）であることも意味する。
【００６８】
第４の階層２０８に入るリクエストは、キュー２６２で第４の階層２０８のリクエストエントリーポートで待つ。第４の階層２０８は、リクエストを実行するためにＵＯＷを呼び出す。リクエストは、キュー２６２を出て、第４の階層２０８は、利用可能な処理部を処理部２５２からＵＯＷに与え且つ処理部上で動作するためのリクエストアプリケーションコードを送ることによって、リクエストにＵＯＷを与える。ＵＯＷは、第４の階層２０８上で実行する。しかる後、ＵＯＷは、第５の階層２１０からサービスを要求する。新しいリクエストは、リクエストイグジットポートで第４の階層２０８を出て、キュー２６４で第５の階層２１０のリクエストエントリーポートで待つ。第５の階層２１０は、新しいリクエストを実行するためにＵＯＷを呼び出す。新しいリクエストは、キュー２６４を出て、第５の階層２１０は、利用可能な処理部を処理部２５４からＵＯＷに与え且つ処理部上で動作するための新しいリクエストのアプリケーションコードを送ることによって、ＵＯＷを新しいリクエストに与える。ＤＴＥ２２８は、リクエストがそれぞれ第４の階層２０８を入ったり出たりするのを検出するために、第４の階層２０８のリクエストエントリーポート及びリクエストイグジットポートを監視する。
【００６９】
動的階層拡張は、アプリケーションコードを変えることなく、そのライフサイクルの全体に亘ってリクエストを追跡するのに含められる。ＤＴＥは、ＤＴＥがアプリケーションコードの外部のリクエストコンテキストをインターセプトする階層環境に動的にフックする。リクエスト追跡は、リクエストを階層上のＵＯＷと関連付けると共に階層上のＵＯＷからリクエストを分離する、リクエストコンテキストを獲得する、ことを含む。ＤＴＥは、パフォーマンス、可用性、階層からのエラーメトリックスをさらに収集する。ＤＴＥは、階層のリクエストエントリーポートでのキュー上のリクエストのオーダを調整したり、リクエストを処理するための計算リソース（例えば、ＣＰＵ、メモリ、Ｉ／Ｏといったもの）を与えたり、処理部の優先度や与えられたリソースを変更するといった、階層上のリクエストの処理を動的に調整もする。これらのタスクは、以下に記述される図９，１０，１１を参照して説明される。
【００７０】
それは、帯域内及び帯域外という、コンテキストエージェント間を中継するリクエストコンテキストの二つの選択があることを意味する。帯域内のコンテキスト中継において、リクエストコンテキストは、リクエストが次の階層に向かって所定の階層を出るので、リクエスト自身に加えられる。従って、リクエスト及び子孫のリクエストが異なる階層間で処理されるので、更新されたリクエストコンテキストは、リクエスト呼び出しに加えられる。それにひきかえ、帯域外の中継は、リクエスト呼び出しに加えられるリクエストコンテキストを含まない。むしろ、コンテキストエージェントは、コンテキスト情報を直接互いに送信する。コンテキストエージェントは、リクエストコンテキストを他のコンテキストエージェントに送信する。ＤＴＥは、コンテキストエージェントからリクエストコンテキストを検索する。それは、システム２００（図５）に類似するシステムの各コンテキストエージェントが帯域外技術を用いてリクエストコンテキストを他のコンテキストエージェントに中継することを意味する。
【００７１】
図５に戻り、システム２００は、アクティビティープロファイリングを実行する。アクティビティープロファイリングは、アクティビティープロファイルの生成を含む。アクティビティープロファイルは、統合したトランザクション階層、リクエスト追跡中に得られたシステムレベルパフォーマンスメトリックス及び統計解析を含む。例えば、パフォーマンスメトリックスは、リクエスト経過時間、リクエストサービス時間、階層上の消費ＣＰＵ時間といったものを含む。アクティビティープロファイルデータは、自然に収集され、監視（即ち、ＧＵＩにおけるディスプレイ）とユーザ定義サービスクラスポリシーのユーザ作成の監視及び支持の両方に用いられる。アクティビティープロファイリングコンソール（図示しない）は、コンテキストエージェントによって集められたパフォーマンス及び可用性の塊状データを表示するＧＵＩのコンポーネントである。パフォーマンス及び可用性の塊状データは、階層、リクエストクラス、トランザクションといった各種のカテゴリーによるアクティビティープロファイルデータのサマリービューを含む。ＣＮＭＳ２１６に位置するアクティビティープロファイリングエンジン（図示しない）は、アクティビティープロファイリングを実行する。
【００７２】
各コンテキストエージェントは、各階層における実行詳細についての情報を収集するタスクを有する。ＤＴＥは、コンテキストエージェントが階層上のＵＯＷの実行と関連するデータを収集することを可能とする。しかる後、コンテキストエージェントは、収集された情報をＣＮＭＳ２１６に送信する。各ＵＯＷのために保存された情報は、開始時間、ＵＯＷが割り付けられたリクエストのリクエストＩＤ、ＵＯＷが割り付けられたリクエストのトランザクションＩＤ、ＵＯＷが割り付けられたリクエストのリクエストクラス、ユーザ詳細、開始ネットワークアドレス詳細、ＵＯＷが割り付けられたリクエストのサービスクラス、終了時間、（ＣＰＵといった）リソース消費といったものを含む。
【００７３】
コンテキストエージェントは、メモリ（図示しない）におけるＵＯＷの現在の実行に関する情報を保存する。ＵＯＷが階層上での実行を一旦終了すると、コンテキストエージェントは、コンテキストエージェントの同じ階層ホストでディスク（図示しない）に局所的に保存される、直近の履歴データストア（図示しない）に情報を移動させる。所定期間後、コンテキストエージェントは、直近の履歴データストアからサマリーデータストア（図示しない）にエントリーを移動させる。この情報は、所定期間を終えたサマリー（例えば、３０分間を終えて収集されたメトリックスの平均）として保存される。サマリーデータストアにおける情報は、シフトに保存される。シフトは、周期基準上に記録される（即ち、それらは、いくつかのシフトが蓄えられた後に再利用される）。
【００７４】
システム２００は、サービスクラスポリシーをさらに含む。リクエストが処理される階層に関し、サービスクラスをリクエストクラス内のリクエストに与えるルールについてサービスクラスポリシーが言及することが思い出される。コンテキストエージェントに位置するリアルタイムサービスクラスポリシーエンジンは、リクエストクラスといった、リクエストコンテキストにおける情報、同じリクエストコンテキストを備えるリクエストの先の実行のパフォーマンス特性と、アクティブサービスクラスポリシーに基づくリクエストとに、適切なサービスクラスを与える。さらに、サービスクラスの付与は、各リクエストクラスのためのパフォーマンスメトリックスのセットといった、追加考慮を考慮に入れる。パフォーマンスメトリックスのセットは、リクエストクラスを特徴付け、一般的なパフォーマンス挙動のためのベースラインを生成する。この処理は、全階層及びそれらと関連付けられたリクエストクラスを横断して生成されるログデータを利用する。リクエストクラスは、ＳＬＯポリシーデータベース２１８におけるツリー構造に保存される。サービスクラスポリシーエンジンは、各リクエストクラスと関連する情報を追加・更新し、それに応じてＳＬＯポリシーデータベース２１８を更新する。
【００７５】
サービスクラスは、第１階層におけるユーザリクエストが決定され、しかる後、リクエストコンテキストにおけるリクエストと共に階層から階層（コンテキストエージェントからコンテキストエージェント）に通される。アクティブサービスクラスポリシー及びサービスクラスに対するマッピングを決定するためのアクセスＣＮＭＳ２１６は必要とはしない。むしろ、各コンテキストエージェントは、最新に維持されるポリシーキャッシュ（図示しない）を有するので、適切なサービスクラスに対するマッピングは、局所的に実行される。
【００７６】
アクティビティープロファイリングエンジンは、周期的なインターバルあるいは必要及び要求のあるとき（例えば、パフォーマンスコンソール上の目下動作するリクエストを見ることをユーザが望むとき）にいつでも動作するリクエストについての情報のためのローカルコンテキストエージェントを集める。あるいは、アクティビティープロファイリングエンジンは、固定されたインターバルあるいは閾値（いくつかの記録）に到達したときに新しい記録をアクティビティープロファイリングエンジンに送信することを起こすために、各コンテキストエージェントを指示することができる。アクティビティープロファイリングエンジンは、各リクエストクラスの解析のためのベースラインとして、各リクエストのデータを収集し、計算（例えば、平均、分散といったもの）を実行し、ＳＬＯポリシーデータベース２１８における各種インターバルで結果を保存する。ＳＬＯポリシーデータベース２１８に保存された利用可能なデータに基づき、ＣＮＭＳ２１６に位置するサービスクラスポリシー生成エンジンは、新しいサービスクラスポリシーのためのリコメンデーションとして提供するルールのセットを生成する。ＣＮＭＳ２１６は、これらのリコメンデーションを用いてサービスクラスポリシーを決定する。サービスクラスポリシーは、ＳＬＯポリシーデータベース２１８に保存される。
【００７７】
それは、ＳＬＯポリシーデータベース２１８がユーザ定義サービスクラスポリシーと同様に自動的に生成されるポリシーを保存する。ユーザは、システム２００のユーザインターフェイス（図示しない）を介して、あるいはコンテキストエージェントの構造ファイルを編集することによって、サービスクラスポリシーのセット（即ち、ユーザ定義のサービスクラスポリシー）を生成する。ユーザ定義のサービスクラスポリシーの生成は、アクティビティープロファイルのユーザ解析を含み、ＣＮＭＳ２１６によって示唆されたサービスクラスポリシーの同意を得る。
【００７８】
コンテキストエージェントは、更新されたサービスクラスポリシーをＣＮＭＳ２１６から受信する。それは、自動的に生成されるかユーザ定義の新しいサービスクラスポリシーがコンテキストエージェントに対して明白であるか否かを意味する。コンテキストエージェントは、コンテキストエージェントのローカルポリシーキャッシュ内に位置する、適切な階層仕様アクティブサービスクラスポリシーに指定されたサービスクラスをリクエストに与える。
【００７９】
あるいは、コンテキストエージェントは、（例えば、サービスクラスの条件を満たすのに必要な全リソースが階層に提供されない場合、著しく多くの高優先度のリクエストが階層に入ると共に、低優先度のリクエストによってリソース欠乏となる場合といった）所定のシチュエーションにおけるアクティブサービスクラスポリシーによって指定されたよりも異なるサービスクラスをリクエストに与える。さらにまた、コンテキストエージェントは、リクエストのリクエストクラスを変更し、その後、新しいリクエストクラスのための適切な階層仕様アクティブサービスクラスポリシーによって指定されたサービスクラスをリクエストに与える。
【００８０】
システム２００は、リクエスト分類も実行する。これは、各種の基準に従うリクエストクラスに複数のリクエスト（それぞれがトランザクションＩＤ及びリクエストコンテキストによって指定される）を分類することを含む。自動的なリクエスト分類処理は、リクエストと関連付けられた一般情報（例えば、ヘッダ情報、クエリストリングといったパラメータ、ＨＴＴＰリクエストタイプの場合におけるＵＲＬ（Uniform Resource Locator）パラメータといったもの）を集める。同じリクエストクラスの他のリクエストが届くとき、このリクエストは、リクエストクラス内の他のリクエストと同様に類似する方法で処理される。リクエストクラスは、関連アクティブプロフィールにおけるリクエストクラスパフォーマンス特性に基づく各種のカテゴリーにグループ分けされる（例えば、２秒よりも長い応答時間を有するリクエストクラスのグループ）。リクエストクラスのグループ分けは、レポート目的のために用いられ、リクエストクラスパフォーマンスデータのハイレベル要約ビューを可能とする。
【００８１】
システム２００は、自動的な分類処理のために用いられる同じリクエスト情報に基づくリクエストを分類するルールをユーザが生成する、ユーザ定義分類処理もサポートする。ユーザは、システム２００のユーザインターフェイス(図示しない)を介して分類ルールを作成する。自動的なリクエスト分類処理は、H.Zhu及びT.Yang（「ダイナミックウェブコンテンツのためのクラスベースキャッシュ管理」Tech. Rep. TRCS00-13, Dept. of Computer Science, University of California, Santa Barbara, 2000）によって説明される、「クラスベースキャッシュ管理」アルゴリズムを用いる。分類処理のアウトプットは、リクエストクラス及びペアレントクラス（即ち、自動的なリクエスト分類処理において）あるいは分類ルールのセット（即ち、ユーザ定義分類処理において）を表すツリーである。分類処理の全結果は、ＳＬＯポリシーデータベース２１８に保存される。
【００８２】
システム２００は、アクティブサービスクラスポリシーにおいて定義されるように、それぞれ監視された階層上で、サービスクラスを実施するためにも動作される。ポリシー施行は、ＤＴＥ及びコンテキストエージェントの両方によって実行される。各階層においてリクエストの列を作る（即ち、リクエストが階層内で実際に処理されるオーダ）ことをコントロールすることによって、あるいは実行中にリクエストを動作する処理部の処理優先度を一時的に変更することによって、施行が実施される。
【００８３】
実施は、特定の階層アーキテクチャによる。例えば、データベース階層における実施は、適切なサービスクラスポリシーによるセッションリソース割り付けを動かすために、データベースリソース管理スキームの使用を含む。他の例は、リクエスト優先順位をサポートするためにアプリケーションサーバウェブキューを拡張する、優先順位をサポートするために事業ＪＡＶＡビーン（ＥＪＢ：Enterprise JavaBeans）を拡張する、ＪＡＶＡスレッド優先度をコントロールする、といったＪ２ＥＥアプリケーションサーバアプリケーションを用いて実施されるアプリケーションサーバにおける実施である。
【００８４】
図５のシステムの動的階層拡張の概略図である図７を参照する。それは、図５に表される、第４の階層２０８のＤＴＥ２２８がシステム２００における全ての動的階層拡張の代表であることを意味する。ＤＴＥ２２８は、一連のソフトフック、第４の階層２０８へのインターセプションポイントを含む。符号２６６，２６８で参照されるこれらのフックは、リクエスト関連情報及びパフォーマンスデータを収集するよう提供する。フックは、ＵＯＷを実行する処理部の優先度を変更することもできる。フックは、収集された情報を、専念されたメッセージキュー２７０上に置く。ソフトフッキング及びインターセプション技術は、特定の環境による。例えば、環境は、ウェブサーバ、ＪＡＶＡベースＪ２ＥＥアプリケーションサーバ、データベース、メッセージサーバといったものである。それは、インターセプションポイント２６６，２６８がオペレータによって即座に作動あるいは作動停止されることを意味する。
【００８５】
ＤＴＥ２２８は、第４の階層２０８内で動作する処理を含む。処理は、インターセプションポイントからメッセージを処理し、メッセージをコンテキストエージェント２３６に通信し、メッセージをインターセプションポイントに返信し、ＤＴＥの管理コントロール機能（例えば、スタート／ストップ追跡リクエスト、ソフトフックの導入及び除去）を実行する。ＤＴＥ２２８は、ＤＴＥデーモン２７２、ＤＴＥアドミニストレータ２７４、ＤＴＥメッセージモジュール２７６、ＤＴＥログイベントハンドラ２７８、ＤＴＥ通信インターフェイス２８０を含む。
【００８６】
ＤＴＥデーモン２７２は、階層内で作動する、人工的に作られた処理部である。ＤＴＥデーモン２７２は、リクエストが引き留められるのを必要としないレポートされたイベントと関連付けられた非同期処理を実行する。これらは、リポートするイベントに関して二種類のシナリオがある。第１のシナリオにおいて、応答が受信されるまでリクエストを引き留める必要がない。例えば、リクエストが終わることをレポートするとき、コンテキストエージェントが実際に通告される後までリクエストを遅延させる必要がない。第２のシナリオにおいて、リクエストは、処理が再開される前に所定期間保持される必要がある。例えば、リクエストのサービスクラスを得るときやリクエストの分類を実行するとき、処理は、リクエストクラス及びサービスクラスがコンテキストエージェントによって決定されるまで開始することができず、他方、処理は、正しくないサービスや正しくないリクエストクラスを用いてなされる。
【００８７】
ＤＴＥデーモン２７２は、第１のシナリオのイベントを処理し、リクエストが引き留められる必要がない。処理は、非同期でなされるので、リクエストは遅延されない。従って、リクエストは、非常に早くリリースされ、おおよそ即座である。ＤＴＥデーモン２７２は、それと関連付けられるキュー２７０を有する。リクエストが入り、関連するリクエストが出ることがインターセプションポイント２６６，２６８によって通知された後、ＤＴＥ２７２は、キュー２７０からこれら通知を取り出し、必要な追加処理をなんでも実行する。
【００８８】
ＤＴＥアドミニストレータ２７４は、ＤＴＥ２２８が、リクエストがどのように処理されるべきかと関連するメッセージを受信することを可能とする。例えば、そのようなメッセージは、リクエストの追跡停止、リクエストの追跡を継続するが優先順位付けの停止といったものを含む。ＤＴＥメッセージモジュール２７６は、メッセージを用いてコンテキストエージェント２３６と通信する。例えば、そのようなメッセージは、ＵＯＷの開始及び終了、所定のリクエストとのＵＯＷの関連付けといったものを含む。ＤＴＥログイベントハンドラ２７８は、ＤＴＥオペレーションに関する追跡情報を記録し、ＤＴＥ２２８によって起こされる警告を記録する。これら記録されたイベントは、ローカルファイル、システムメッセージコンソール、システムログといった複数の行き先に送信され得る。ＤＴＥログイベントハンドラ２７８は、シンプルネットワーク管理プロトコル（ＳＮＭＰ：Simple Network Management Protocol）といった複数の工業規格プロトコルをサポートする。ＤＴＥ通信インターフェイス２８０は、ＤＴＥ２２８及びコンテキストエージェント２３６間のインターフェイスとして提供する。ＤＴＥ通信インターフェイス２８０は、コンテキストエージェント２３６のエージェントメッセージモジュール２８６からＤＴＥ２２８に送信されるメッセージを中継する。ＤＴＥ通信インターフェイス２８０は、ＤＴＥ２２８のＤＴＥメッセージモジュール２７６からコンテキストエージェント２３６に送信されるメッセージも中継する。複数の通信プロトコルは、サポートされ、各ＤＴＥは、内部処理通信、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）といったアーキテクチャ内で利用可能な最も効果的な通信方法を用いる。
【００８９】
図５のシステムのコンテキストエージェントの概略図である図８を参照する。それは、図５に表される、第４の階層２０８のコンテキストエージェント２３６がシステム２００における全てのコンテキストエージェントの代表であることを意味する。コンテキストエージェント２３６は、ＴＣＰ／ＩＰ、内部処理通信チャンネルといった各種のメカニズムを介してＤＴＥ２２８から通知を受信する。通知は、リクエストコンテキストのキャプチャ、ＵＯＷの開始、ＵＯＷの終了、ＵＯＷのリソース消費、離れた階層上のＵＯＷの呼び出し／割り付け、離れた階層上のＵＯＷのリプライ／リリースといった階層内で起こるイベントのものである。コンテキストエージェント２３６は、エージェントログイベントハンドラ２８２、エージェント通信インターフェイス２８４、エージェントメッセージモジュール２８６、コンテキストテーブルマネージャ２８８、分類マネージャ２９０、ポリシーマネージャ２９２、エージェントアドミニストレータ２９４を含む。
【００９０】
エージェントログイベントハンドラ２８２は、内部ハウスキープの目的及びコンテキストエージェント２３６によって起こされる記録警告の両方のためにコンテキストエージェント２３６によって用いられる。エージェントログイベントハンドラ２８２は、コンテキストテーブル（以下に記述される）に入るが、コンテキストエージェント２３６内で起こる稼動不規則（即ち、問題やエラー）を検出するためといった、内部追跡及びメッセージ目的のためにも用いられる情報を記録する。これら記録されたイベントは、ローカルファイル、システムメッセージコンソール、システムログといった複数の行き先に送信され得る。エージェントログイベントハンドラ２８２は、ＳＮＭＰといった複数の工業規格プロトコルをサポートする。
【００９１】
エージェント通信インターフェイス２８４は、ＤＴＥ２２８及びコンテキストエージェント２３６間のインターフェイスとして提供する。エージェント通信インターフェイス２８４は、ＤＴＥ２２８のＤＴＥメッセージモジュール２７６からコンテキストエージェント２３６に送信されるメッセージを中継する。エージェント通信インターフェイス２８４は、コンテキストエージェント２３６のエージェントメッセージモジュール２８６からＤＴＥ２２８に送信されるメッセージも中継する。ＤＴＥ２２８及びコンテキストエージェント２３６の二つの間で早く確実な通信を確立すべく、二つを接続するいくつかのチャンネルがあり、少なくともいくつかのチャンネルは、例えば高優先度のチャンネル及び管理チャンネルのあらゆる時間での開放が維持される。異なるタイプのメッセージのため、各種のチャンネルのいくつかの接続もまたある。その結果として、エージェント通信インターフェイス２８４は、これら異なる実現性に順応するのに有効である。
【００９２】
エージェントメッセージモジュール２８６は、離れた階層と関連付けられた他のコンテキストエージェントに対し、リクエストが離れた階層に送信されたことを通知する。エージェントメッセージモジュール２８６は、メッセージを用いてＤＴＥ２２８とさらに通信する。例えば、そのようなメッセージは、ＵＯＷの開始及び終了、リクエストとのＵＯＷの関連付けといったものを含む。エージェントメッセージモジュール２８６は、エージェント通信インターフェイス２８４を介してＤＴＥ２２８と通信する。
【００９３】
コンテキストテーブルマネージャ２８８は、コンテキストエージェントのブックキーパとして機能する。コンテキストテーブルマネージャ２８８は、「コンテキストテーブル」として知られ、階層上で動作するＵＯＷをそれらのリクエストコンテキストと関連付けるのに用いられる、横断参照テーブルを維持する。リクエストコンテキストは、現在の階層からであり（即ち、ユーザリクエストの場合）、リクエスト実行チェーンからの先の階層から中継され、あるいは両方である（即ち、リクエストコンテキストが修正されるか、新しい情報がそれに加えられるかである）。コンテキストテーブルは、各リクエストと関連付けられた情報（例えば、トランザクションＩＤ、リクエストクラス、サービスクラス、リクエストの原点といったもの）を保存する。エージェントメッセージモジュール２８６は、コンテキストテーブルにアクセスし、エージェントメッセージモジュール２８６がＤＴＥ２２８から情報を受信した後に関係記録を調べる。コンテキストテーブルマネージャ２８８は、コンテキストテーブルに保存されたリクエスト及びデータと関連付けられた情報に基づくリクエストを確認する。このように、コンテキストエージェント２３６は、リクエストクラス、サービスクラス、リクエストと関連付けられた他の関連情報といった、階層に入るリクエストと関連する情報を得る。
【００９４】
分類マネージャ２９０及びポリシーマネージャ２９２は、第１の階層に入る各ユーザリクエストを処理する。最初に、ユーザリクエストは、このユーザリクエストに関してコンテキストテーブルにおける情報がないコンピューティング環境に入る。従って、ユーザリクエストは、分類を経験する必要がある。分類処理中、リクエストエントリーポートでユーザリクエストについて知られている全ての情報が集められる。例えば、ユーザリクエストがＨＴＴＰリクエストであるならば、そのような情報は、ＨＴＴＰヘッダ、クエリストリング、ＵＲＬパラメータといったものを含む。各階層において用いられる各種のプロトコルにとって、ユーザリクエストを実際に分類する一般的なプラグインがある。
【００９５】
分類処理は、技術リクエスト関連情報（例えば、ＨＴＴＰリクエスト）を、ビジネス処理（例えば、銀行口座残高の検索）と関連する形式的なリクエスト分類に移すことによって、ユーザリクエストからビジネス展望を本質的に取り出す。ユーザリクエストは、特定のリクエストクラスに置かれる。ユーザリクエストは、ビジネス処理の一部あるいは関連トランザクションのセットとして確認される。例えば、口座残高の検索は、抵当申し込みの大きな処理の一部である。情報がコンテキストエージェント２３６からＣＮＭＳ２１６に移動されるとき、ＣＮＭＳ２１６は、アクティビティープロフィールを決定することができると共に、リクエストクラスの傾向にあるリクエスト挙動を検出することができる。
【００９６】
ポリシーマネージャ２９２は、リクエストに対してサービスクラスを与える。ポリシーマネージャ２９２は、分類マネージャ２９０のアウトプットを受信し、リクエストクラス、リクエストコンテキスト、アクティブサービスクラスポリシーに基づいて、所定のリクエストのサービスクラスを決定する。例えば、ポリシーマネージャ２９２は、異なるリクエストクラスからのリクエストよりも高優先度となるサービスクラスを有する所定のリクエストクラスからの全てのリクエストをセットする。コンテキストエージェントは、アクティブサービスクラスポリシーによる適切なサービスクラスと共にリクエストコンテキストを更新することによって、サービスクラスをそれと関連付けられる階層上で処理されるリクエストに与える。
【００９７】
横断階層サービスクラスポリシーデータベースは、多階層コンピューティングにおける全ての階層のためのリクエストクラスに対するサービスクラスのマッピングのセットを含む。所定のリクエストクラスに属する各リクエストは、リクエストが処理される階層による異なるサービスクラスが与えられる。図２を参照して、ユーザリクエストＲ１は、第１の階層１０２上の低優先度でサービスクラスが与えられ、リクエストＲ２は、第２の階層１０４上の高優先度でサービスクラスが与えられ、リクエストＲ３は、第３の階層１０６上の中間優先度でサービスクラスが与えられる。横断階層サービスクラスポリシーは、ＳＬＯポリシーデータベース２１８に保存される。横断階層サービスクラスポリシーは、自動的に生成される（即ち、システム定義）か、システムのユーザによって定義される。
【００９８】
加えて、ローカル階層のスーパバイザ（例えば、データベースアドミニストレータ）は、階層の管理コントロールを有し、必要ならば、階層上のサービスクラスポリシーを無効にすることを決定する。階層スーパバイザは、階層のコンテキストエージェントによってリクエストに与えられたサービスクラスを変更する。階層スーパバイザは、階層上で動作する実質的に全ての全ビューを有する。それは、一般的に、ユーザアプリケーション自身を動作し且つグローバルピクチャーに興味を持つ人である、システムの全スーパバイザもいることを意味する。
【００９９】
それは、最初の分類及びユーザリクエストのポリシー付与の後、リクエストクラスが同じトランザクションの次のリクエストを維持し、コンテキストエージェントが階層から階層に従ってこの情報を中継することを意味する。このように、各階層で、コンテキストエージェントは、リクエストの階層仕様サービスクラスであるもの及びリクエストと関連付けられた他の情報にリクエストが属するリクエストクラスを確認する。
【０１００】
エージェントアドミニストレータ２９４は、ＣＮＭＳ２１６に対するインターフェイスである。エージェントアドミニストレータ２９４は、履歴データをＣＮＭＳ２１６にレポートする。例えば、ＵＯＷが終了したことをＤＴＥが表すとき、ＵＯＷと関連付けられた情報は、コンテキストテーブルにもはや残る必要はない。しかる後、情報は、コンテキストテーブルからエージェントアドミニストレータ２９４に送信され、情報を記録し、定期的に情報をＣＮＭＳ２１６に送信する。エージェントアドミニストレータ２９４は、新しいアクティブサービスクラスポリシー、コンテキストエージェントの新しい構造といったものもＣＮＭＳ２１６から受信する。エージェントアドミニストレータ２９４は、状態表示を得るためにリアルタイムで問い合わせもする。状態表示は、ＵＯＷが今動作しているといった、情報がコンテキストテーブル内に現在あるものを含む。
【０１０１】
本開示技術のさらなる実施形態に基づいて作用する、リクエストコンテキストの獲得及びこれに続く処理で必要とされるステージを実証するブロック図である図９を参照する。手順３１０において、リクエストコンテキストが獲得される。新しいユーザリクエストは、確認され、そのリクエストコンテキストは、ＤＴＥソフトフックによってインターセプトされる。図５を参照して、ＤＴＥ２２２は、第１の階層２０２に入ったユーザリクエストのリクエストコンテキストを獲得する。
【０１０２】
手順３１２において、獲得されたリクエストコンテキストが正規化される。ＤＴＥは、リクエストコンテキストを標準フォーマットに変換し、階層の全タイプにとって等しくなる（例えば、データベース、アプリケーションサーバといったもの）。ＤＴＥは、ユーザリクエスト及びユーザリクエストによって起こされたトランザクションにおける以後のリクエストを確認する固有のＩＤ（即ち、トランザクションＩＤ）をユーザリクエストに与える。ＤＴＥは、階層からのユーザリクエストのリクエストＩＤをさらに得る。図５を参照して、ＤＴＥ２２２は、獲得されたリクエストコンテキストを標準フォーマットに変換し、トランザクションＩＤをユーザリクエストに与え、ユーザリクエストのリクエストＩＤを得る。
【０１０３】
手順３１４において、ＤＴＥは、リクエストコンテキスト、トランザクションＩＤ、リクエストＩＤを、その階層と関連付けられたコンテキストエージェントに送信する。ＤＴＥは、新しいリクエストコンテキストが送信されたことをコンテキストエージェントに通知する。図５を参照して、ＤＴＥ２２２は、リクエストコンテキスト、トランザクションＩＤ、ユーザリクエストのリクエストＩＤをコンテキストエージェント２３２に送信する。
【０１０４】
手順３１６において、ユーザリクエストが分類される。コンテキストエージェントは、リクエストコンテキストに基づくリクエストクラスを決定する階層仕様分類スキームを適用する。図５を参照して、コンテキストエージェント２３２は、ユーザリクエストを所定のリクエストクラスに分類する。
【０１０５】
手順３１８において、適切なアクティブサービスクラスポリシーが、ローカルポリシーキャッシュに保存されたサービスクラスポリシーから検索される。コンテキストエージェントは、リクエストクラスを用いてアクティブサービスクラスポリシー、可能ならば他のリクエストコンテキストフィールドを検索する。図５を参照して、コンテキストエージェント２３２は、ユーザリクエストのリクエストクラスに基づき、第１の階層２０２にとって特有な、ユーザリクエストのための適切なアクティブサービスクラスポリシーを検索する。
【０１０６】
手順３２０において、ユーザリクエストのためのサービスクラスは、検索されたサービスクラスポリシーに基づいて決定され、リクエストに与えられる。しかる後、コンテキストエージェントは、リクエストコンテキストに与えられたサービスクラスを加える。図５を参照して、コンテキストエージェント２３２は、検索された適切なサービスクラスポリシーのサービスクラスをユーザリクエストに与え、サービスクラスをリクエストコンテキストに加える。
【０１０７】
手順３２２において、階層優先度がユーザリクエストによって呼び出されたＵＯＷのために決定される。ＵＯＷを処理する処理部のためのローカル優先度は、サービスクラスから引き出される。図５を参照して、コンテキストエージェント２３２は、ＵＯＷを実行するためのユーザリクエストに割り付けられた処理部のためのローカル優先度を、与えられたサービスクラスから引き出す。
【０１０８】
手順３２４において、コンテキストエージェントは、リクエストクラス及び優先順位情報をＤＴＥに送り返す。この情報は、処理部の優先度の変更といった、ＤＴＥ内で生じる所定のタスクに必要である。図５を参照して、コンテキストエージェント２３２は、与えられたリクエストクラス、ＵＯＷを処理する処理部のためのローカル優先度をＤＴＥ２２２に送信する。
【０１０９】
手順３２６において、リクエストコンテキスト及び関連情報（リクエストクラス及びトランザクションＩＤといったもの）は、他のコンテキストエージェント及びコンテキストエージェントの内部コンポーネントに転送され、特に、リクエストを保存してリクエストコンテキスト及びさらなる参照のための関連情報をインデックスするコンテキストテーブルに転送される。図５を参照して、コンテキストエージェント２３２は、リクエストと関連する追加情報と共にリクエストコンテキストを、コンテキストテーブルマネージャ２８８、分類マネージャ２９０、ポリシーマネージャ２９２（図８を参照）といったコンテキストエージェント２３２の内部コンポーネントのみならず、それと結び付けられる他のコンテキストエージェント（例えば、コンテキストエージェント２３４）に転送する。
【０１１０】
本開示技術のさらに他の実施形態に基づいて作用する、図５のシステムのローカル階層上のＵＯＷ割り付けの獲得及びリクエストのＵＯＷとの関連付けで必要とされるステージを実証するブロック図である図１０を参照する。ＵＯＷがその階層上のリクエストと関連付けられた処理部において実行されるアプリケーションロジックであると思い起こされる。手順３４０において、ＵＯＷ割り付けがＤＴＥによって獲得される。獲得は、ＵＯＷがはじめに階層によって呼び出されたときに起こり、入るリクエストは、階層のリクエストエントリーポートでキューに入り、一方、開始リクエストはキューに留まり、あるいはリソースが階層で利用可能となってリクエストはキューを出る。図５を参照して、ＤＴＥ２２８は、第４の階層２０８によって割り付けられたＵＯＷを獲得する。
【０１１１】
手順３４２において、ＤＴＥが、ＵＯＷ割り付けと関連付けられた開始リクエストのリクエストＩＤを決定する。リクエストＩＤは、先の階層から送信された情報に基づいて決定され、ソケットＩＤといった、ＵＯＷをリクエストにリンクする関連キーと共にリクエストコンテキストを含む。図５を参照して、ＤＴＥ２２８は、獲得されたＵＯＷ割り付けと関連付けられた開始リクエストのリクエストＩＤを、先に結び付けられた階層（例えば、第３の階層）から受信した情報に基づいて決定する。
【０１１２】
手順３４２が起こる時点でリクエストコンテキスト及び関連キーが到達しない状況がある。従って、システムは、この情報を待つか、一時的なリクエストＩＤを付与し且つ開始リクエストを後のステージでのＵＯＷ割り付けと関連付けることによって、続行するよう構成され得る。
【０１１３】
手順３４４において、ＤＴＥは、開始リクエストの決定されたリクエストＩＤのみならず、ＵＯＷのＩＤと関連する情報をコンテキストエージェントに送信する。ＵＯＷのＩＤは、ＵＯＷを実行する処理部を独自に確認する特性のセットである。ＵＯＷのＩＤは、ＵＯＷの追跡を維持するためにコンテキストエージェントによって用いられる。図５を参照して、ＤＴＥ２２８は、開始リクエストの決定されたリクエストＩＤのみならず、ＵＯＷのための関連情報（例えば、ＵＯＷをリクエストにリンクする、ソケットＩＤといった関連キー）をコンテキストエージェント２３６に送信する。
【０１１４】
手順３４６において、コンテキストエージェントは、ＵＯＷのＩＤやリクエストＩＤと関連付けられたコンテキストテーブルにおけるエントリーを検索する。図５を参照して、コンテキストエージェント２３２は、獲得されたＵＯＷ割り付けや決定されたリクエストＩＤと関連付けられたコンテキストテーブルマネージャ２８８（図８）を介してコンテキストテーブルにおけるエントリーを位置付ける。
【０１１５】
エントリーが見つかったならば、手順３４８におけるしかる後、そのエントリーは、ＵＯＷのＩＤ及び関連情報で更新される。図５を参照して、コンテキストエージェント２３２は、コンテキストテーブルマネージャ２８８（図８）を介してコンテキストテーブルにおける関連エントリーを、獲得されたＵＯＷ割り付けのＩＤ及び関連情報で更新する。
【０１１６】
エントリーが見つからないならば、手順３５０におけるしかる後、新しいエントリーがコンテキストテーブルに加えられる。新しいエントリーは、開始リクエストのリクエストＩＤ及び関連するＵＯＷ割り付けのＩＤを含む。初期のリクエストクラス及びサービスクラスは、新しい追加エントリーと関連付けられる。図５を参照して、コンテキストエージェント２３２は、開始リクエストのリクエストＩＤ及びＵＯＷ割り付けのＩＤを含むコンテキストテーブルマネージャ２８８（図８）を介してコンテキストテーブルに新しいエントリーを加え、初期のリクエストクラス及びサービスクラスを新しい追加エントリーと関連付ける。
【０１１７】
手順３５２において、コンテキストエージェントは、ＵＯＷを実行する処理部のためのローカル優先度を決定し、必要ならば、リクエスト統計を集める。図５を参照して、コンテキストエージェント２３２は、リクエストに与えられたサービスクラスからのリクエストによって呼び出されたＵＯＷを実行する処理部のためのローカル優先度を引き出す。
【０１１８】
手順３５４において、コンテキストエージェントは、開始リクエストに与えられたサービスクラスを実行する。図５を参照して、コンテキストエージェント２３２は、例えば、リクエストによって呼び出されたＵＯＷを実行する処理部の優先度レベルを変更し、処理部の実行タイプを変更し、あるいはリクエストを処理するために計算リソースを割り付けたり否定することによって、第１の階層２０２で開始リクエストの処理に影響を及ぼす。
【０１１９】
それは、コンテキストエージェントがリクエストと関連する新しい関連情報を受信するならば、コンテキストエージェントがサービスクラス、リクエストクラス、あるいはリクエストコンテキストの他のパラメータをその後に修正することを意味する。これは、階層と関連付けられたコンテキストエージェントでリクエストコンテキストが離れたコンテキストエージェントから到達する状況で起こる（例えば、図５を参照して、コンテキストエージェント２３４がリクエストについての情報をコンテキストエージェント２３２から受信する）。時間供給により、コンテキストエージェントは、リクエストと関連付けられたＵＯＷ割り付けを獲得し、しかる後、後のステージでリクエストのリクエストコンテキストを受信する。
【０１２０】
本発明のさらなる実施形態に基づいて作用する、図５のシステムのリモート階層に送信される終了リクエストの獲得及び送信されたリクエストのリクエストコンテキストとの関連付けで必要とされるステージを実証するブロック図である図１１を参照する。手順３７０において、第１の階層から第２の階層へ送信されたリクエストは、第１の階層のＤＴＥによって獲得される。図５を参照して、リクエストは、第１の階層２０２から第２の階層２０４に送信される。ＤＴＥ２２２は、第１の階層２０２上の終了リクエストを獲得する。
【０１２１】
手順３７２において、ＤＴＥは、終了リクエストのリクエストＩＤを決定する。図５を参照して、ＤＴＥ２２２は、第１の階層２０２から第２の階層２０４に送信された終了リクエストのリクエストＩＤを決定する。
【０１２２】
手順３７４において、ＤＴＥは、終了リクエストの決定されたリクエストＩＤのみならば、ＵＯＷのＩＤと関連する情報を、ローカルコンテキストエージェントへ送信する。図５を参照して、ＤＴＥ２２８は、終了リクエストの決定されたリクエストＩＤのみならば、ＵＯＷのＩＤと関連する情報を、コンテキストエージェント２３６に送信する。
【０１２３】
手順３７６において、ローカルコンテキストエージェントは、終了リクエストのリクエストＩＤやＵＯＷのＩＤと関連付けられたコンテキストテーブルにエントリーを検索する。図５を参照して、決定された終了リクエストＩＤと関連付けられあるいはＵＯＷのＩＤによってコンテキストテーブルマネージャ２８８（図８）を介してコンテキストテーブルにエントリーを位置付ける。
【０１２４】
エントリーが見つかったならば、手順３７８におけるしかる後、そのエントリーは、ＵＯＷのＩＤ及び関連情報で更新される。例えば、エントリーは、エントリーに現在ない終了リクエストのリクエストコンテキストにおける情報で更新される。図５を参照して、コンテキストエージェント２３２は、コンテキストテーブルマネージャ２８８（図８）を介してコンテキストテーブルにおける関連エントリーを、関連エントリーに先に保存されていない終了リクエストのリクエストコンテキストにおける情報で更新する。
【０１２５】
エントリーが見つからないならば、手順３８０におけるしかる後、新しいエントリーがコンテキストテーブルに加えられる。新しいエントリーは、終了リクエストのリクエストＩＤ及び関連するＵＯＷ割り付けのＩＤを含む。リクエストクラス、サービスクラス、リクエストコンテキストに保存されたリクエストの他の特性は、新しい追加エントリーに加えられる。所定の特性がリクエストコンテキストに現れないならば、初期の特性（リクエストクラス及びサービスクラス）が新しい追加エントリーと関連付けられる。図５を参照して、コンテキストエージェント２３２は、終了リクエストのリクエストＩＤ及び終了リクエストのリクエストコンテキストに保存されたリクエスト特性を含むコンテキストテーブルマネージャ２８８（図８）を介してコンテキストテーブルに新しいエントリーを加える。
【０１２６】
手順３８２において、ローカルコンテキストエージェントは、メッセージを、離れたコンテキストエージェント（即ち、終了リクエストが送信されるコンテキストエージェント）に送信する。メッセージは、トランザクションＩＤ及びリクエストクラスのみならず、終了リクエストのリクエストＩＤを含む。図５を参照して、第１の階層と関連付けられたコンテキストエージェント２３２は、メッセージを、第２の階層２０４と関連付けられたコンテキストエージェント２３５に送信する。メッセージは、トランザクションＩＤ及びそのリクエストクラスのみならず、終了リクエストのリクエストＩＤを含む。
【０１２７】
本開示技術のさらなる実施形態において、多階層ホストと関連付けられた一つのコンテキストエージェントがある。それは、ＤＴＥと通信するコンテキストエージェントが、コンテキストエージェントがどんなネットワークにも存在することを可能とすることを意味する。それは、コンテキストエージェントが階層ＩＤを取り付けることによってリクエスト及びＵＯＷの追跡を維持し、各階層のための分離したブックキーピングを提供することをさらに意味する。そのような実施形態は、例えば、セキュリティー関係や階層ホストに対するコンテキストエージェントの追加から生じるユーザの外部オーバーヘッドのために用いられる。
【０１２８】
本開示技術が特に図示され且つこれまでに記述されたものに限定されないことが当業者によって理解される。むしろ、本開示技術の範囲は、特許請求の範囲によってのみ定義される。
【図面の簡単な説明】
【０１２９】
【図１】図１は、公知の多階層コンピューティング環境の概略図である。
【図２】図２は、本開示技術の一実施形態に基づいて構成され且つ作用する、アプリケーションパフォーマンス管理システムの概略図である。
【図３】図３は、図２のシステムの二つのコンテキストエージェント間で中継する情報の概略図である。
【図４】図４は、図２のシステムの二つの階層上でのサンプルリクエストライフサイクルの概略図である。
【図５】図５は、本開示技術の他の実施形態に基づいて構成され且つ作用する、アプリケーションパフォーマンス管理システムの概略図である。
【図６】図６は、図５の多階層コンピューティング環境の二つの階層の概略図である。
【図７】図７は、図５のシステムの動的階層拡張の概略図である。
【図８】図８は、図５のシステムのコンテキストエージェントの概略図である。
【図９】図９は、本開示技術のさらなる実施形態に基づいて作用する、リクエストコンテキストの獲得及びこれに続く処理で必要とされるステージを実証するブロック図である。
【図１０】図１０は、本開示技術のさらに他の実施形態に基づいて作用する、図５のシステムのローカル階層上のＵＯＷ割り付けの獲得及びリクエストのＵＯＷとの関連付けで必要とされるステージを実証するブロック図である。
【図１１】図１１は、本発明のさらなる実施形態に基づいて作用する、図５のシステムのリモート階層に送信される終了リクエストの獲得及び送信されたリクエストのリクエストコンテキストとの関連付けで必要とされるステージを実証するブロック図である。
【図１】
2008502044.tif 000003
【図２】
2008502044.tif 000004
【図３】
2008502044.tif 000005
【図４】
2008502044.tif 000006
【図５】
2008502044.tif 000007
【図６】
2008502044.tif 000008
【図７】
2008502044.tif 000009
【図８】
2008502044.tif 000010
【図９】
2008502044.tif 000011
【図１０】
2008502044.tif 000012
【図１１】
2008502044.tif 000013
【国際調査報告】
2008502044.tif 000014
2008502044.tif 000015