(57)【特許請求の範囲】
【請求項１】
コンピュータに実装される方法であってアプリケーションを介してフローを可視化する方法であり、その方法は：
アプリケーションに関連付けられたエージェント（１０８、１１２、１１６）から取得されるデータにアクセスするためにデータストア（１１８）にアクセスすること；エージェントはアプリケーションにインストールされた計測を用いてデータを提供する；
ユーザインタフェース（１２２、５００、５２０、５２５、５３０、５４０、５５０、５５５、５５６、５６０、５７０、５８０、５９０、６００、６１０、６２０、６３０、６４０、６５０、６６０、６７０、６８０）上にトリアージマップ領域（５０２）を表示すること；トリアージマップ領域は、アプリケーションのサブシステムおよびサブシステム間の依存関係を図表を用いて示し、サブシステムは、サブシステムの名称を有するノード（３２０、３２１、３２２、３２４、３２６、３２８、３３０、３３６）として示され、依存関係は、ノードを接続する矢印（５１３）によって示される；
アクセスされたデータに基づいて、ユーザインタフェースの補助領域（５６２）を表示すること；補助領域はトランザクションのインスタンスに関連付けられた情報を提供する；
サブシステムのノードの１つをユーザが選択することに応答して、ユーザインタフェースにおいて、サブシステムの１つのためのコンテキストメニュー（５３２）を表示すること；コンテキストメニューは、サブシステムの１つを呼び出す将来のある期間におけるトランザクションのインスタンスを検索するオプションを含む、；および
検索されたトランザクションのインスタンスに関連付けられた情報を提供するためにユーザインタフェースを更新すること；
を有する。
【請求項２】
コンピュータに実装される請求項１の方法は：
補助領域を介して、トランザクションのインスタンスのユーザの選択を受けること；および
ユーザの選択に応答して、トランザクションのインスタンスによって呼び出された複数のサブシステムの１つのサブシステムのノードをトランザクションのインスタンスによって呼び出されない複数の別のサブシステムのノードから視覚的に区別すること、
をさらに有する。
【請求項３】
コンピュータに実装される請求項２の方法は：
トランザクションのインスタンスのユーザの選択に応答して、トランザクションのインスタンスのトランザクショントレース（４０１）を表示すること；トランザクショントレースはトランザクションのインスタンスの呼び出されたコンポーネント、および呼び出されたコンポーネント間の呼び出し関係を特定するグラフである；
をさらに有する。
【請求項４】
コンピュータに実装される請求項１から３のいずれか一項の方法は：
サブシステムのノードを正味の時間幅で修飾すること；正味の各時間幅は、待機時間を除いた合計時間幅に基づく；
をさらに有する。
【請求項５】
コンピュータに実装される請求項１から４のいずれか一項の方法であって実行されるその方法は：
未計測のバックエンドがサブシステムの１つによって呼び出されるものであり：
未計測のバックエンドへのバックエンド呼び出しの時間を除いた合計時間幅に基づいて、サブシステムの１つにおいて消費される時間によって、サブシステムの１つのノードを修飾することをさらに有する。
【請求項６】
コンピュータに実装される請求項１から５のいずれか一項の方法は：
矢印の１つをサブシステム相互通信の時間を表す時間幅で修飾することをさらに有する。
【請求項７】
コンピュータに実装される請求項１から６のいずれか一項の方法であり：
警告アイコンがサブシステムの１つの関連したメトリックに基づいて警告レベルを示す場合、トリアージマップ領域は、サブシステムの１つを警告アイコンで修飾する。
【請求項８】
コンピュータに実装される請求項１から７のいずれか一項の方法であり：
警告アイコンが矢印によって表されるメソッド呼び出しの関連したメトリックに基づいて警告レベルを示す場合、トリアージマップ領域は、矢印の１つを警告アイコンによって修飾する。
【請求項９】
コンピュータに実装される請求項１から８のいずれか一項の方法であり：
サブシステムは未計測のサブシステム（１１８）を呼び出す計測されたサブシステムを有し、
矢印の１つは、計測されたサブシステムのノードを未計測のサブシステム（３２１、３３２、３３４、３３６、３３８）のノードに接続し；および
トリアージマップ領域は、未計測のサブシステムの呼び出しの中で計測されたサブシステムによって使用される時間幅を示すための矢印の１つを修飾する。
【請求項１０】
コンピュータに実装される請求項１から９のいずれか一項の方法は：
トリアージマップ領域を介して、ユーザの選択であって、複数のサブシステムの１つに含まれる複数のノードの１つの選択を受けること；および
ユーザの選択に応答して、補助領域を介して、複数のサブシステムの１つのトランザクションのインスタンスに関連付けられた詳細を表示すること；
を含み、詳細を表示することにおいて：
詳細は、複数のサブシステムの１つのトランザクションのインスタンスによって呼び出されるコンポーネント（ＣＭ１、ＣＭ２、ＣＭ４ａ、ＣＭ４ｂ、ＣＭ５、ＣＭ７、ＣＭ８、ＣＭ９、ＣＭ１０）を有し；
複数のサブシステムの１つにおいて呼び出される呼び出しコンポーネントは別のサブシステムを呼び出し；
トリアージマップ領域において、矢印の１つは、複数のサブシステムの１つに含まれる複数のノードの１つと別のサブシステムのノードとを接続し；および
ユーザの選択であって矢印の１つの選択に応答して、詳細は、呼び出しコンポーネントの特定を有する。
【請求項１１】
コンピュータに実装される請求項１から１０のいずれか一項の方法であり：
サブシステムの１つで呼び出された呼び出しコンポーネントは、別のサブシステムを呼び出し；
トリアージマップ領域において、複数の矢印の一つは、複数のサブシステムの１つのノードの１つを別のサブシステムのノードに接続するものであり；
その方法は、さらに：
複数の矢印の１つのユーザの選択に応答して、複数のサブシステムの１つに含まれる複数のノードの１つのユーザの選択なしに、補助領域において、複数のサブシステムの１つの、他のコンポーネントの特定を表示することなく、呼び出しコンポーネントの特定を表示すること；および
複数の矢印の１つのユーザの選択に応答して、複数のサブシステムの１つに含まれる複数のノードの１つのユーザの選択によって、補助領域において、呼び出しコンポーネントの特定およびサブステムの１つの他のコンポーネントの特定を表示すること、
をさらに有する。
【請求項１２】
コンピュータに実装される請求項１から１１のいずれか一項の方法は：
トリアージマップ領域において、業務トランザクションの名称を有するノード（３０４、３０６、３０８、３１０および３１２）、および業務トランザクション内で呼び出される複数のサブシステムを表示すること；
ユーザインタフェースにおいて、ユーザが業務トランザクションの名称を有するノード上にポインティングデバイスを向ける場合、業務トランザクションの名称を有するノード（３０４）のためのホバーボックス（５２２）を表示すること；ホバーボックスは業務トランザクションのための性能メトリックを特定する；
をさらに有する。
【請求項１３】
コンピュータに実装される請求項１から１２のいずれか一項の方法は：
トリアージマップ領域において、業務トランザクションの名称を有するノード（３０４、３０６、３０８、３１０および３１２）および業務トランザクション内で呼び出される複数のサブシステムを表示すること；および
ユーザインタフェースにおいて、ユーザが業務トランザクションの名称を有するノード（３０４）にポインティングデバイスを向けることに応答して、業務トランザクションのためのコンテキストメニュー（５３２）を表示すること；コンテキストメニューは、トリアージマップ領域の業務トランザクションの複数のサブシステムのノードをトリアージマップ領域の１つの他の業務トランザクションのサブシステムのノードから視覚的に区別することによって業務トランザクションのマップを表示するオプションを有する；
をさらに有する。
【請求項１４】
コンピュータに実装される請求項１３の方法であり：
コンテキストメニューは、補助領域において、業務トランザクションのためのロケーションを表示するオプションを有する；ロケーションは、エージェント（エージェントＡ、エージェントＢ）、ホスト（ホストＡ、ホストＢ）および関連した性能メトリック（Ｒ／Ｔ）を特定する。
【請求項１５】
コンピュータに実装される請求項１３または１４の方法であり：
コンテキストメニュー（５３２）は、業務トランザクションに関連付けられた正常性メトリックを表示するオプションを有する。
【請求項１６】
コンピュータに実装される請求項１３から１５のいずれか一項の方法であり：
コンテキストメニュー（５３２）は、フィルタ基準に合致する将来の特定の期間における業務トランザクションのトランザクションインスタンスを検索するためのオプションを有する；オプションは、ユーザがフィルタ基準を入力することを許容するウィンドウ（５６４）を表示する；
フィルタ基準に合致する検索されたトランザクションのインスタンスに関連付けられた情報を提供するために、補助領域を更新すること；および
ユーザがフィルタ基準を再入力することを要求せずに、フィルタ基準に合致する別の将来の期間で業務トランザクションのトランザクションインスタンスをさらに検索するためにユーザコマンド（さらに検索）を受けること；
を有する。
【請求項１７】
アプリケーションを介してフローを追跡するためのシステムであり：
コンピュータで読み取り可能なコードを記憶する記憶装置（２１０、２４０）；および
前記記憶装置に通信するプロセッサ（２３０）を有しており、
前記プロセッサは、以下の処理を記したコンピュータ読み取り可能なコードを実行する：
アプリケーションに関連付けられたエージェント（１０８、１１２、１１６）から取得されるデータにアクセスするためにデータストア（１１８）にアクセスすること；エージェントは、アプリケーションにインストールされた計測を使用してデータを提供する；
ユーザインタフェース（１２２、５００、５２０、５２５、５３０、５４０、５５０、５５５、５５６、５６０、５７０、５８０、５９０、６００、６１０、６２０、６３０、６４０、６５０、６６０、６７０、６８０）上にトリアージマップ領域（５０２）を表示すること；トリアージマップ領域は、アプリケーションのサブシステムおよびサブシステム間の依存関係を図表を用いて示し、サブシステムは、サブシステムの名称を有するノード（３２０、３２１、３２２、３２４、３２６、３２８、３３０、３３６）として示され、そして依存関係はノードを接続する矢印により表示される；および
アクセスされたデータに基づき、ユーザインタフェースの補助領域を表示すること；補助領域（５６２）はトランザクションのインスタンスに関連付けられた情報を提供する；
トリアージマップ領域において、第１の業務トランザクションの名称を有する第１の業務トランザクションのノード（３０４、３０６、３０８、３１０および３１２）、および第２の業務トランザクションの名称を有する第２の業務トランザクションのノードを表示すること；サブシステムの１つが第１および第２の業務トランザクションによって呼び出され、サブシステムのノードの１つによって示される；および
サブシステムのノードの１つをユーザが選択することに応答して、ユーザインタフェースにおいて、サブシステムの１つのためのコンテキストメニュー（５３２）を表示すること；コンテキストメニューは、サブシステムの１つを呼び出す将来の所定の期間におけるトランザクションのインスタンスを検索するオプションを含み、コンテキストメニューのオプションは第１の業務トランザクションの一部としてサブシステムの１つを呼び出す将来の所定の期間におけるトランザクションのインスタンスを検索する。
【請求項１８】
請求項１７のシステムであり、プロセッサが以下の処理を記したコンピュータで読み取り可能なコードを実行する：
トランザクションのインスタンスによって呼び出された複数のサブシステムの１つのサブシステムのノードをトランザクションのインスタンスによって呼び出されない複数のサブシステムの別のサブシステムのノードから視覚的に区別すること。
【請求項１９】
請求項１７または１８のシステムであり、
ユーザが第１の業務トランザクションのノードを選択するが、第２の業務トランザクションのノードは選択しない場合、コンテキストメニューのオプションは、第２の業務トランザクションの一部ではなく、第１の業務トランザクションの一部としてサブシステムの１つを呼び出す将来のある期間におけるトランザクションのインスタンスを検索し；および
ユーザが第１および第２の業務トランザクションのノードを選択する場合、コンテキストメニューのオプションは、第１の業務トランザクションのインスタンスの一部としてサブシステムの１つを呼び出す将来の期間におけるトランザクションのインスタンスおよび第２の業務トランザクションの一部としてサブシステムの１つを呼び出す将来のある期間におけるトランザクションのインスタンスを検索する。
【請求項２０】
コンピュータに実装される方法であってアプリケーションを介してフローを可視化する方法であり、その方法は：
アプリケーションに関連付けられたエージェント（１０８、１１２、１１６）から取得されるデータにアクセスするためにデータストア（１１８）にアクセスすること；エージェントはアプリケーションにインストールされた計測を用いてデータを提供する；
ユーザインタフェース（１２２、５００、５２０、５２５、５３０、５４０、５５０、５５５、５５６、５６０、５７０、５８０、５９０、６００、６１０、６２０、６３０、６４０、６５０、６６０、６７０、６８０）上にトリアージマップ領域（５０２）を表示すること；トリアージマップ領域は、アプリケーションのサブシステムおよびサブシステム間の依存関係を図表を用いて示し、サブシステムは、サブシステムの名称を有するノード（３２０、３２１、３２２、３２４、３２６、３２８、３３０、３３６）として示され、依存関係は、ノードを接続する矢印（５１３）によって示される；
アクセスされたデータに基づいて、ユーザインタフェースの補助領域（５６２）を表示すること；補助領域はトランザクションのインスタンスに関連付けられた情報を提供する；
トリアージマップ領域において、業務トランザクションの名称を有するノード（３０４、３０６、３０８、３１０および３１２）および業務トランザクション内で呼び出される複数のサブシステムを表示すること；および
ユーザインタフェースにおいて、ユーザが業務トランザクションの名称を有するノード（３０４）にポインティングデバイスを向けることに応答して、業務トランザクションのためのコンテキストメニュー（５３２）を表示すること；コンテキストメニューは、トリアージマップ領域の業務トランザクションの複数のサブシステムのノードをトリアージマップ領域の１つの他の業務トランザクションのサブシステムのノードから視覚的に区別することによって業務トランザクションのマップを表示するオプションを有する；コンテキストメニューは、さらに、補助領域において、業務トランザクションのためのロケーションを表示するオプションを有する；ロケーションは、エージェント（エージェントＡ、エージェントＢ）、ホスト（ホストＡ、ホストＢ）および関連した性能メトリック（Ｒ／Ｔ）を特定する；
を有する。
【請求項２１】
コンピュータに実装される請求項２０の方法であり：
コンテキストメニュー（５３２）は、業務トランザクションに関連付けられた正常性メトリックを表示するオプションを有する。
【請求項２２】
コンピュータに実装される請求項２０または２１の方法であり：
コンテキストメニュー（５３２）は、フィルタ基準に合致する将来の特定の期間における業務トランザクションのトランザクションインスタンスを検索するためのオプションを有する；オプションは、ユーザがフィルタ基準を入力することを許容するウィンドウ（５６４）を表示する；
フィルタ基準に合致する検索されたトランザクションのインスタンスに関連付けられた情報を提供するために、補助領域を更新すること；および
ユーザがフィルタ基準を再入力することを要求せずに、フィルタ基準に合致する別の将来の期間で業務トランザクションのトランザクションインスタンスをさらに検索するためにユーザコマンド（さらに検索）を受けること；
を有する。
【請求項２３】
コンピュータに実装される方法であってアプリケーションを介してフローを可視化する方法であり、その方法は：
アプリケーションに関連付けられたエージェント（１０８、１１２、１１６）から取得されるデータにアクセスするためにデータストア（１１８）にアクセスすること；エージェントはアプリケーションにインストールされた計測を用いてデータを提供する；
ユーザインタフェース（１２２、５００、５２０、５２５、５３０、５４０、５５０、５５５、５５６、５６０、５７０、５８０、５９０、６００、６１０、６２０、６３０、６４０、６５０、６６０、６７０、６８０）上にトリアージマップ領域（５０２）を表示すること；トリアージマップ領域は、アプリケーションのサブシステムおよびサブシステム間の依存関係を図表を用いて示し、サブシステムは、サブシステムの名称を有するノード（３２０、３２１、３２２、３２４、３２６、３２８、３３０、３３６）として示され、依存関係は、ノードを接続する矢印（５１３）によって示される；
アクセスされたデータに基づいて、ユーザインタフェースの補助領域（５６２）を表示すること；補助領域はトランザクションのインスタンスに関連付けられた情報を提供する；
トリアージマップ領域において、業務トランザクションの名称を有するノード（３０４、３０６、３０８、３１０および３１２）および業務トランザクション内で呼び出される複数のサブシステムを表示すること；
ユーザインタフェースにおいて、ユーザが業務トランザクションの名称を有するノード（３０４）にポインティングデバイスを向けることに応答して、業務トランザクションのためのコンテキストメニュー（５３２）を表示すること；コンテキストメニューは、トリアージマップ領域の業務トランザクションの複数のサブシステムのノードをトリアージマップ領域の１つの他の業務トランザクションのサブシステムのノードから視覚的に区別することによって業務トランザクションのマップを表示するオプションを有する；コンテキストメニュー（５３２）は、さらに、フィルタ基準に合致する将来の特定の期間における業務トランザクションのトランザクションインスタンスを検索するためのオプションを有する；オプションは、ユーザがフィルタ基準を入力することを許容するウィンドウ（５６４）を表示する；
フィルタ基準に合致する検索されたトランザクションのインスタンスに関連付けられた情報を提供するために、補助領域を更新すること；および
ユーザがフィルタ基準を再入力することを要求せずに、フィルタ基準に合致する別の将来の期間で業務トランザクションのトランザクションインスタンスをさらに検索するためにユーザコマンド（さらに検索）を受けること；
を有する。
【請求項２４】
コンピュータに実装される方法であってアプリケーションを介してフローを可視化する方法であり、その方法は：
アプリケーションに関連付けられたエージェント（１０８、１１２、１１６）から取得されるデータにアクセスするためにデータストア（１１８）にアクセスすること；エージェントはアプリケーションにインストールされた計測を用いてデータを提供する；
ユーザインタフェース（１２２、５００、５２０、５２５、５３０、５４０、５５０、５５５、５５６、５６０、５７０、５８０、５９０、６００、６１０、６２０、６３０、６４０、６５０、６６０、６７０、６８０）上にトリアージマップ領域（５０２）を表示すること；トリアージマップ領域は、アプリケーションのサブシステムおよびサブシステム間の依存関係を図表を用いて示し、サブシステムは、サブシステムの名称を有するノード（３２０、３２１、３２２、３２４、３２６、３２８、３３０、３３６）として示され、依存関係は、ノードを接続する矢印（５１３）によって示される；
アクセスされたデータに基づいて、ユーザインタフェースの補助領域（５６２）を表示すること；補助領域はトランザクションのインスタンスに関連付けられた情報を提供する；
トリアージマップ領域において、第１の業務トランザクションの名称を有する第１の業務トランザクションのノード（３０４、３０６、３０８、３１０および３１２）、および第２の業務トランザクションの名称を有する第２の業務トランザクションのノードを表示すること；サブシステムの１つが第１および第２の業務トランザクションによって呼び出され、サブシステムのノードの１つによって示される；
サブシステムのノードの１つをユーザが選択することに応答して、ユーザインタフェースにおいて、サブシステムの１つのためのコンテキストメニュー（５３２）を表示すること；コンテキストメニューは、サブシステムの１つを呼び出す将来のある期間におけるトランザクションのインスタンスを検索するオプションを含み、コンテキストメニューのオプションは、第１の業務トランザクションの一部としてサブシステムの１つを呼び出す将来の所定の期間におけるトランザクションのインスタンスを検索する；および
検索されたトランザクションのインスタンスに関連付けられた情報を提供するためにユーザインタフェースを更新すること；
を含み、更新することは、
ユーザが第１の業務トランザクションのノードを選択するが、第２の業務トランザクションのノードは選択しない場合、コンテキストメニューのオプションは、第２の業務トランザクションの一部ではなく、第１の業務トランザクションの一部としてサブシステムの１つを呼び出す将来のある期間におけるトランザクションのインスタンスを検索し；
ユーザが第１および第２の業務トランザクションのノードを選択する場合、コンテキストメニューのオプションは、第１の業務トランザクションのインスタンスの一部としてサブシステムの１つを呼び出す将来の所定の期間におけるトランザクションのインスタンスおよび第２の業務トランザクションの一部としてサブシステムの１つを呼び出す将来の所定の期間におけるトランザクションのインスタンスを検索する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティング環境におけるソフトウェアを監視する技術に関する。
【背景技術】
【０００２】
インターネットの存在が増長するにつれて、イントラネット、エクストラネットなどの他のコンピュータネットワークと同様に、電子商取引、教育、他の分野において多くの新しいアプリケーションをもたらした。組織は、ビジネスやその他目的を行うのにそのようなアプリケーションへの依存を深めており、期待通りの成果を確実に得るために相当の資源を投入している。このような状況のもと、様々なアプリケーションの管理技術が開発されている。
【０００３】
１つのアプローチとして、アプリケーションで呼び出される個々のソフトウェアコンポーネントに関するアプリケーションの実行データを集めることにより、アプリケーションの基礎構造を監視することが挙げられる。このアプローチでは、監視されるシステムに元来、存在するエージェントを用いることができる。例えば、ソフトウェアによる計測を用いることによって、呼び出される個々のコンポーネントを特定するためや、個々のコンポーネントの実行時間のような実行データを得るために、スレッドまたはプロセスがトレースされ得る。コンピュータプログラムが実行するステップの詳細なレコード、またはトレースを得ることをトレーシングという。トレースのタイプの１つにスタックトレースがある。トレースはデバッグにおける補助の役目を果たし得る。
【０００４】
しかし、問題の診断は依然として厄介な問題である。例えば、トランザクションまたはアプリケーションに障害が生じている場合、プロバイダは起きつつある故障とその原因を正確に知りたい。改善された診断技術が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、コンピュータシステムのサブシステムを介してフローを可視化することによってコンピュータシステムにおける問題を診断するための方法を提供する。
【課題を解決するための手段】
【０００６】
一実施形態では、１以上のアプリケーションを介してフローを可視化するための方法を実行するため少なくとも１つのプロセッサをプログラミングするために、コンピュータで読み取り可能なソフトウェアを有している一時的でないコンピュータで読み取り可能な有体の記憶装置が具現化されて提供される。実行される方法は、以下を有する。（ａ）１以上のアプリケーションに関連付けられた１以上のエージェントであって１以上のアプリケーションにインストールされた計測を用いてそのデータを提供するエージェントから取得されるデータにアクセスするためにデータストアにアクセスすること。（ｂ）ユーザインタフェース上にトリアージマップ領域を表示すること。ここで、トリアージマップ領域には、１以上のアプリケーションのサブシステムおよびサブシステム間の依存関係が図を用いて示され、そこではサブシステムがノードによって示され、依存関係がノードを接続する矢印によって示される。（ｃ）アクセスされたデータに基づいて、ユーザインタフェースの補助領域を表示すること；補助領域は少なくとも１つのトランザクションのインスタンスに関連付けられた情報を提供すること。
【０００７】
別の実施形態では、１以上のアプリケーションを介してフローを可視化するためのコンピュータに実装される方法が提供される。その方法は、コンピュータに実装される次のステップを含む。（ａ）１以上のアプリケーションに関連付けられた１以上のエージェントであって１以上のアプリケーションにインストールされた計測を用いてデータを提供するエージェントから取得されるデータにアクセスするためにデータストアにアクセスすること。（ｂ）ユーザインタフェース上にトリアージマップの領域を表示すること。ここで、トリアージマップの領域には、１以上のアプリケーションのサブシステムおよびサブシステム間の依存関係が図表を用いて示され、サブシステムがノードによって示され、依存関係がノードを接続する矢印によって示され、そしてトリアージマップの領域が業務トランザクションおよび業務トランザクション内で呼び出される複数のサブシステムを識別する。（ｃ）アクセスされたデータに基づいて、ユーザインタフェースの補助領域を表示すること。
【０００８】
別の実施形態では、１以上のアプリケーションを介してフローを可視化するための方法を実行するように少なくとも１つのプロセッサをプログラミングするためのコンピュータで読み取り可能なソフトウェアを有している一時的でないコンピュータで読み取り可能な有体の記憶装置が具現化されて提供される。この実行される方法は、次を有する。（ａ）１以上のアプリケーションに関連付けられた１以上のエージェントであって１以上のアプリケーションにインストールされた計測を用いてデータを提供するエージェントから取得されるデータにアクセスするためにデータストアにアクセスすること。（ｂ）ユーザインタフェース上にトリアージマップの領域を表示すること。ここで、トリアージマップの領域が１以上のアプリケーションのサブシステムおよびサブシステム間の依存関係を図表を用いて示し、サブシステムがサブシステムの名称を有するノードとして示され、そして依存関係がノードを接続する矢印によって示される。（ｃ）サブシステムの１つは少なくとも第１および第２の業務トランザクションによって呼び出され、サブシステムのノードの１つによって示される。（ｄ）トリアージマップの領域は、第１の業務トランザクションの名称を有する第１の業務トランザクションのノード、および第２の業務トランザクションの名称を有する第２の業務トランザクションのノードを表示する。（ｅ）サブシステムのノードの１つをユーザが選択することに応答して、ユーザインタフェースがサブシステムの１つのためのコンテキストメニューを表示する。ここで、コンテキストメニューは、第１の業務トランザクションの少なくとも一部としてサブシステムの１つを呼び出す将来のある期間におけるトランザクションのインスタンスを検索するオプションを含む。（ｆ）検索されたトランザクションのインスタンスに関連付けられた情報を提供するためにユーザインタフェースを更新すること。
【０００９】
方法に対応して、実行時に、本明細書で提供される方法を実行する命令がエンコードされた記憶媒体を含むシステムおよびコンピュータもしくはプロセッサで読み取り可能な記憶装置が提供される。
【図面の簡単な説明】
【００１０】
【図１】管理されたアプリケーションを含むシステムを示す。
【図２Ａ】トランザクショントレースを開始するためのプロセス［処理］の一実施形態を説明するフローチャートである。
【図２Ｂ】トランザクショントレースを終了するためのプロセス［処理］の一実施形態を説明するフローチャートである。
【図２Ｃ】図１のネットワークのコンピューティングデバイスを示す。
【図３】１以上のアプリケーションの動作を説明する際に使用する階層を示す。
【図４Ａ】トランザクション内で呼び出されるコンポーネントのシーケンスの例における依存関係を示す。
【図４Ｂ１】図４Ａのコンポーネントの１つの可能なシーケンスに基づいて、トランザクション内で呼び出されたコンポーネントのシーケンスのためのトランザクショントレースの例を示す。
【図４Ｂ２】図４Ｂ１のトランザクショントレースの例における待機期間を示す。
【図４Ｂ３】従属する計測されたサブシステムのシーケンスのための、合計時間幅、正味の時間幅、待機時間およびサブシステム相互の通信時間を決定する方法を示す。
【図５Ａ】業務サービスがユーザによって選択された場合におけるサブシステムのユーザインタフェース（ＵＩ）および業務トランザクションを示す。
【図５Ｂ１】ログイン業務トランザクション３０４のためのメトリックを示すホバーボックスを付加した図５Ａのユーザインタフェースを示す。
【図５Ｂ２】認証サービスサブシステム３２２のためのメトリックを示すホバーボックスを付加した図５Ａのユーザインタフェースを示す。
【図５Ｃ】ログイン業務トランザクション３０４のためのオプションを示すコンテキストメニュー５３２を付加した図５Ａのユーザインタフェースを示す。
【図５Ｄ】図５Ｃのユーザインタフェースのコンテキストメニュー５３２から起動されるログイン業務トランザクションのマップのユーザインタフェースを示す。
【図５Ｅ１】図５Ｃのユーザインタフェースのコンテキストメニュー５３２から起動されるログイン業務トランザクションに一致するトランザクションを検索するユーザインタフェースを示す。
【図５Ｅ２】選択された業務トランザクションのコンテキストにおける認証サービスサブシステムに一致するトランザクションを検索するユーザインタフェースを示す。
【図５Ｅ３】複数の業務トランザクションのコンテキストにおける認証サービスサブシステムに一致するトランザクションを検索するユーザインタフェースを示す。
【図５Ｆ】ログインのすべてよりも少ないサブシステムが選択された業務トランザクションのインスタンスによって呼び出される、ユーザインタフェースを示す。
【図５Ｇ】図５Ｃのユーザインタフェースのコンテキストメニュー５３２から起動されるログインのための場所を有するユーザインタフェースを示す。
【図５Ｈ】図５Ｃのユーザインタフェースのコンテキストメニュー５３２から起動されるログイン業務トランザクションの正常性メトリックのユーザインタフェースを示す。
【図５Ｉ】ノード３２２と補助領域５６２から「詳細」のタブをユーザが選択した後の図５Ｇのユーザインタフェースを示す。
【図５Ｊ】ノード３２８と補助領域５６２から「詳細」のタブをユーザが選択した後の図５Ｇのユーザインタフェースを示す。
【図５Ｋ】図５Ｅ１のユーザインタフェースから起動される選択されたトランザクションのインスタンスのためのトランザクショントレースを示す。
【図５Ｌ】ユーザがサブシステムのノードを選択する場合の図５Ｋのユーザインタフェースを示す。
【図５Ｍ１】ユーザがトランザクショントレースを選択する場合の図５Ｋのユーザインタフェースを示す。
【図５Ｍ２】ユーザがトランザクショントレースのコンポーネントを選択する場合の図５Ｋのユーザインタフェースを示す。
【図５Ｎ】サブシステムのノード３２２がタイムマーカの位置に基づいて強調表示されている場合の、再生モードにおける図５Ｋのユーザインタフェースを示す。
【図５Ｏ】パス５１３が強調表示されている場合の図５Ｎのユーザインタフェースを示す。
【図５Ｐ】サブシステムのノード３２８が強調表示されている場合の、再生モードにおける図５Ｋのユーザインタフェースを示す。
【図５Ｑ】パス６１３が強調表示されている場合の、再生モードにおける図５Ｋのユーザインタフェースを示す。
【図５Ｒ】ＳＱＬ文を付加した図５Ｑのトランザクショントレース６５１を示す。
【図５Ｓ】ユーザが矢印６１３を選択し、その結果、図５Ｍ１の補助領域５６２におけるグラフ部分ＣＭ８（６４７）、ＣＭ９（６４８）およびＣＭ１０（６４９）が視覚的に区別される、ユーザインタフェース６８０の例を示す。
【図６】ユーザインタフェースを提供するための方法を示す。
【発明を実施するための形態】
【００１１】
本発明は、本発明は、コンピュータシステムのサブシステムを介してフローを可視化することによってコンピュータシステムにおける問題を診断する方法を提供する。
【００１２】
業務トランザクションまたはアプリケーションに障害が生じている場合、プロバイダは起きつつある故障とその原因を正確に知りたい。業務トランザクションは、ウェブサイトにログインしてアイテムを発注するなどのように、クライアントの観点からタスクを表すことが可能である。時には問題は一般的であり、トランザクションは毎回障害を起こし、そして時にはそれがより限定的である。例えば、一定のユーザがそれを試みるときにだけに、またはアイテムの一定の種類が要求されたときにだけにトランザクションが障害を起こすことがある。問題が一般的であるかまたは限定的であるかを決定することは困難で、問題の発生源を区分けすることはさらに難しい。
【００１３】
別の診断ツールが一般的および限定的なケースのために提供される。例えば、トリアージマップは、トランザクションを集約するように、および関連付けられた論理的なサブシステムが相互作用し得るすべての可能な方法を表示するように、一般的なケースに対処するために使用される。またそれは、各サブシステムの全体的な正常性を表示する。トランザクショントレースのツールは最も具体的なケースを扱うために使用される。個々のトランザクションがシステムを通過し、指定時刻に作動する低レベルのメソッド呼び出しのシーケンスとしてそれらを表示するときに、トランザクションツールは、個々のトランザクションを記録する。問題は２つのツール間に大きな隔たりがあることである。トリアージマップが大まか過ぎて粗い粒度であれば、トランザクショントレーサは具体的過ぎて粒状になる。トリアージマップで始めたユーザは、一般的な傾向がなく何の故障も発見することなく、トランザクショントレースを引っ張ることを開始してパターンを識別するためにそれらを拾い読みしなければならない。サブシステムレベルに戻って問題をマッピングすることは、ソフトウェアと根底にある基盤との両方に精通していることを必要とする。
【００１４】
したがって、論理的なサブシステムを介して時刻を決められた一連のステップとして個々のトランザクションを表示するためには、２つの視覚化を組み合わせることが本当に必要となる。１つの可能な解決策は、関連付けられている有向グラフ上の個々のトランザクショントレース（または関連したトレースの集合）を、ユーザが「重ね合わせる」ことを許容する。それゆえ、問題が特定の業務トランザクションで報告される場合には、ユーザは業務トランザクションのためのトリアージマップを最初に見ることができる。関係付けられたサブシステムの全体的な正常性が平常に現れる場合、ユーザは、問題が一般的なものではないと認識することができる。その後、ユーザは、業務トランザクションのためのトランザクショントレースを要求する。トランザクショントレーサが記録をし、業務トランザクションのパラメータ（例えば、特定のＵＲＬおよびＰＯＳＴのパラメータ）と一致する最新のトランザクションの一覧表を返して、指定された期間を超えると、ユーザは「マッピング」するために１以上を選択する。パターンが出現するかどうか、例えば、ある特定のホストから生じたデータベース呼び出しが遅延の原因であるか否かを見る場合、ユーザはすべての最長のトランザクションを１つずつ（または同時に）マッピングすることを選択する。
【００１５】
マッピングされたトランザクションは、各ノード上および関連のある各辺の横に記載されている時間幅で、現在のマップの強調表示部分として現れる。辺は、サブシステム間の遷移を表し、矢印で表される。つまり、トランザクション内でアクティブになっているそれらのサブシステムは、あるサブシステムから次のサブシステムの呼び出しを表す辺に従ってマップ内で強調表示される。サブシステム間の呼び出しの長さは、辺の横に現される一方で、サブシステム内で費やされた合計時間はノード上に現される。マップ内の最長の合計時間幅を有するコンポーネントは、時計記号などの特殊なアイコンでマークされている。複数の重ね合わせられたトランザクションの場合では、平均時間幅が表示されることに注意されたい。個々の時間幅は、ツールチップのホバー［ホバーボックス］で提供される。
【００１６】
さらに、マップ下部のタブ付きの表示枠のような補助領域は、付加的なオプションや情報を提供する。最初のタブは返されたトランザクションの一覧表（トランザクション一覧表）を含むので、ユーザはどのアイテムが選択された（およびマップ上に重ね合わせられた）か、を見て変更できる。「さらに検索」ボタンは、ユーザが同じパラメータを使用してより多くのトランザクションを記録することを許容する。２番目のタブ（詳細）は、マップ内で現在選択されている項目に関する情報を提供する。例えば、フロントエンドのノードが選択されている場合、そのフロントエンドに対応する重ね合わされたトランザクションのすべてのコンポーネントが、それらのエージェントの識別子およびそれらの時間幅と一緒にクラスおよびメソッドによって一覧表にされる。ユーザは、これらのノードからインベスティゲータエージェントツリーにおける応答するメトリックパスに移動する。
【００１７】
最終的に、マップに表示されるトランザクションに対して、タブは、巻き戻し、再生、停止、一時停止および早送りなどのＶＴＲ型の制御がその上に現れて、トランザクショントレーサ内に現れるようにトランザクションの「トレース表示」を表示する。ユーザがトレース内の個々のコンポーネントを選択すると、コンポーネントを呼び出す対応するサブシステムがマップ内で選択される。またユーザはトランザクション全体を「再生」を選択することもある。再生中に、トレース内の各コンポーネントは、順番に選択され、マップ内の対応するサブシステムも同様に選択される。関連した時間幅が選択された項目と一緒にマップに表示される。再び、ユーザは、トレース表示内のコンポーネントからインベスティゲータエージェントツリーにおける対応するメトリックパスに移動する。
【００１８】
これと同じ機能がトランザクショントレースを提供する既存のインタフェース全般において使用可能である。トレースがトリアージマップにおいて利用できるアプリケーションまたは業務トランザクションの１つと一致した場合、オプションは、「このトランザクションをマッピングする」ために提供される。これによって、上述したように、対応する重ね合わせに適切なマップが提示される。
【００１９】
さらに、この特徴はトランザクショントレースから計測を動的に付加するためのオプションを含むように拡張される。一時的な計測は、ユーザによって付加され、より詳細な情報のために遅いトランザクションを調査する。それはまた、現在の計測が特定の業務トランザクションの性能を追跡調査するために適正または最適であるか否かを評価するために使用され得る。適正または最適でない場合、一時的に付加された計測を恒久的にすることが可能である。次のレベルに進むと、この機能は、ユーザがそれらの業務サービスを監視するためにそれらのシステムを設定するためのシンプルな方法を提供する。
【００２０】
さらに後述するように、様々な種類のデザインの画面またはユーザインタフェースが提供される。
【００２１】
ユーザインタフェースを介して、ユーザは、サブシステムとトリアージマップのトランザクションとの間、およびサブシステムとトランザクションのインスタンスデータとの間、の関係を容易に知ることができる。
【００２２】
図１は、複数の異なるコンピューティングデバイスがマネージャにデータを提供するネットワーク１００を示す。コンピューティングデバイス１０６、１１０および１１４の例は、アプリケーションサーバまたは必要な機能を実現するためのコードを実行するプロセッサを有するコンピューティングデバイスの他の種類を含む。コンピューティングデバイスは、互いに離れて位置することができ、または同じ場所に位置することもできる。この例では、コンピューティングデバイス１０６、１１０および１１４は、ローカルのマネージャコンピュータ１２０と通信する。マネージャコンピュータ１２０は、代わりにコンピューティングデバイス１０６、１１０および１１４から離れることが可能で、そのような場合の通信はネットワーククラウド１０４を介して行われる。
【００２３】
例えば、ウェブベースの電子商取引アプリケーションなどの企業のアプリケーションを実行している会社は、負荷分散のために１つの場所で複数のアプリケーションサーバを使用する。例えば、ユーザのウェブブラウザ１０２からのようなユーザからのリクエストは、インターネットのようなネットワーククラウド１０４を介して受信され、任意のコンピューティングデバイス１０６、１１０および１１４に送られる。ウェブブラウザ１０２は、図示していないインターネットサービスプロバイダを介してネットワーククラウド１０４に、通常、アクセスする。コンピューティングデバイス１０６、１１０および１１４上で実行するエージェントソフトウェアは、エージェントＡ１（１０８）、エージェントＡ２（１１２）およびエージェントＡ３（１１６）によってそれぞれ表され、ある可能なアプローチとして、それぞれのコンピューティングデバイス１０６、１１０および１１４上で実行されている、アプリケーション、ミドルウェアまたはその他のソフトウェアから、情報を収集する。例えば、そのような情報は、計測を用いることによって得ることができ、その一例はバイトコードの計測である。しかしながら、集められたデータは他の方法でも得ることができる。エージェントは、監視するコンピューティングデバイスに元来存在してデータの取得ポイントを提供する。エージェントは、マネージャ１２０と通信してデータをまとめ最適化する。
【００２４】
マネージャ１２０は、エージェントから受信したデータに基づく情報を表示するため、例えばモニタなどのユーザインタフェース１２２と通信するワークステーションのような分離したコンピューティングデバイス上に提供され得る。マネージャは、またエージェントから受信したデータを格納するためデータベース１１８にアクセスする。提示された例では、コンピューティングデバイスは、ネットワーククラウド１０４にアクセスすることなく、マネージャ１２０と通信する。例えば、通信は、ローカルエリアネットワークを介して行われる。他の設計では、マネージャ１２０は、ネットワーククラウド１０４を介して複数のコンピューティングデバイスのエージェントからデータを受信する。例えば、大きな組織は、セントラルネットワークオペレーションセンタを運用する。そこでは、１以上のマネージャが、地理的に異なる場所に分散している複数のエージェントからデータを取得する。説明すると、ウェブベースの電子商取引企業では、顧客の注文を受ける地理的に異なる場所にあるサーバからエージェントのデータを取得することがある。支払いを処理するサーバ、倉庫で在庫を調べたり、受注を受けたりするサーバなどである。マネージャ１２０およびユーザインタフェースディスプレィ１２２は、企業の本社の場所で提供され得る。必ずしも、ウェブベースまたは小売、もしくはその他の販売に関する必要はなく、他のアプリケーションにおいて同様にシステムを管理するためにエージェントとマネージャを利用する。例えば、銀行では、小切手の処理やクレジットの口座用にアプリケーションを使用することがある。また、上述した複数コンピュータのデバイスアレンジに加えて、１以上のエージェントによって単一のコンピュータデバイスが同様に監視されることがある。
【００２５】
監視を実行するソフトウェアを計測するのに、様々なアプローチが知られている。例えば、最初に述べたように、トレーシングはソフトウェアの実行を追跡するために用いることができる。トレーシングの例が、”Transaction Tracer”と題する米国特許出願公開番号２００４／００７８６９１（２００４年４月２２日公開）に記載されている。その内容は参照により本明細書に組み込まれる。その中で述べられているアプローチにおいては、監視すべきアプリケーションのオブジェクトコードまたはバイトコードが計測され、例えばプローブにより変更される。アプリケーションのジョブまたは他のロジックを変更することなくアプリケーションについての特定の情報をプローブが測定する。一旦、プローブがアプリケーションのバイトコードにインストールされると、管理されたアプリケーションと称される。エージェントソフトウェアは、プローブからの情報を受信し、その情報を、例えばマネージャ１２０において、別のプロセスに伝達することがある。また、情報が異常状況を示すか否かを判定するなど、情報をローカルで処理する。エージェントは、このようにプローブから受信した情報を収集し要約する。指示ファイルによって定義されるように、プローブは、情報を収集する。例えば、プローブからの情報は、トランザクションまたは他の実行フローの開始や停止の回数、またはトランザクション／実行フロー内の個々のコンポーネントの開始や停止の回数を示す場合がある。この情報は、それが範囲内にあるかどうかを判定するために予め決められた基準と比較される。もし情報が範囲内にない場合には、エージェントは適切なトラブルシューティングが実行できるようにこの事実をマネージャに報告する。エージェント１０８、１１２および１１６は、それぞれが関連付けられているローカルコンピューティングデバイス１０６、１１０および１１４上でソフトウェアが実行中であることを通常認識している。
【００２６】
プローブは、ＣＯＲＢＡメソッドタイマ、リモートメソッドインボケーション（ＲＭＩ）メソッドタイマ、スレッドカウンタ、ネットワークバンド幅、ＪＤＢＣ更新およびクエリタイマ、サーブレットタイマ、Java（登録商標）サーバページズ（ＪＳＰ）タイマ、システムログ、ファイルシステム入出力バンド幅メータ、使用可能および使用済メモリ、ならびにＥＢＪ（エンタープライズJava（登録商標）ビーンズ）タイマを含むメトリックの標準セットを報告する。メトリックは、特定のアプリケーションのアクティビティの計測値である。
【００２７】
エージェントは、アプリケーションによってアクセスされるリソースを識別するトランザクションに関する情報を報告する。１つのアプローチでは、トランザクションについて報告する場合における「呼び出された」という語はリソースを指す。このリソースは、消費者が親のコンポーネントであるところのリソース（またはサブリソース）である。例えば、トランザクションで呼び出される最初のコンポーネントがサーブレットＡであると仮定する。消費者のサーブレットＡ（下記参照）の下には、ＥＪＢと称されるサブリソースがある。消費者とリソースは、ツリーのような形でエージェントよって報告される。トランザクションのデータは、またツリーに従って格納される。例えば、もしサーブレット（例えばサーブレットＡ）が、ネットワークのソケット（例えば、ソケットＣ）の消費者であり、かつＥＪＢ（例えば、ＥＪＢ  Ｂ）の消費者でもあるとすれば、次にはＪＤＢＣ（例えば、ＪＤＢＣ  Ｄ）の消費者であり、ツリーは以下のように見える。
【００２８】
Servlet A（サーブレットＡ）
【００２９】
Data for Servlet A（サーブレットＡのデータ）
【００３０】
Called EJB B（呼び出されたＥＪＢ  Ｂ）
【００３１】
Data for EJB B（ＥＪＢ  Ｂのデータ）
【００３２】
Called JDBC D（呼び出されたＪＤＢＣ  Ｄ）
【００３３】
Data for JDBC D（ＪＤＢＣ  Ｄのデータ）
【００３４】
Called Socket C（呼び出されたソケットＣ）
【００３５】
Data for Socket C（ソケットＣのデータ）
【００３６】
一実施形態では、上記ツリーは、ブレイムスタックと称されるスタックにエージェントによって格納される。トランザクションが開始すると、トランザクションはスタックへプッシュされる。トランザクションが完了すると、トランザクションはスタックからポップされる。一実施形態では、スタック上の各トランザクションは、次に続く情報、トランザクションの型、トランザクションのためにシステムで使用される名称、パラメータのハッシュマップ、トランザクションがスタックへプッシュされたときのタイムスタンプおよびサブエレメント、が格納されている。サブエレメントは、注目すべきトランザクション内から開始されている他のコンポーネント（例えば、メソッド、プロセス、プロシージャ、関数、スレッド、命令セットなど）のためのブレイムスタックのエントリである。上記の例のようにツリーを使用すると、サーブレットＡのためのブレイムスタックのエントリは２つのサブエレメントを有する。第１サブエレメントは、ＥＪＢ  Ｂへのエントリで、第２サブエレメントは、ソケットスペースＣへのエントリである。サブエレメントは特定のトランザクションのためのエントリの一部であるにもかかわらず、サブエレメントはまた独自のブレイムスタックのエントリを有する。上記のツリーに示されるように、ＥＪＢ  ＢはサーブレットＡのサブエレメントであり、また独自のエントリを有する。トランザクションに対する一番上（最初）のエントリ（例えばサーブレットＡ）は、ルートコンポーネントと称される。スタック上の各エントリはオブジェクトである。
【００３７】
図２Ａは、トランザクショントレースを開始するための処理の一実施形態を説明するフローチャートである。ステップは適切な（複数の）エージェントにより実行される。ステップ１３０ではトランザクションを開始する。一実施形態では、プロセス［処理］は、メソッド（例えば、“loadTracer”メソッドの呼び出し）の開始によってトリガ（起動）される。ステップ１３２において、エージェントは所望のパラメータ情報を取得する。一実施形態では、ユーザは、構成ファイルまたはＵＩを介して、どのパラメータ情報を取得するかを設定することができる。取得されたパラメータは、ブレイムスタックへプッシュされるオブジェクトの一部であり、ハッシュマップに格納される。他の実施形態では、パラメータの識別は、予め設定されている。格納されるパラメータには様々なものがある。一実施形態では、使用されるパラメータの実際の一覧表は、監視されるアプリケーションに依存している。以下の表は、取得され得るいくつかのパラメータの例を示す。
【００３８】
【表１】
0005909138.tif 000002
【００３９】
パラメータは、クエリ、クッキー、ＰＯＳＴ、ＵＲＬおよびセッションの型の名称／値の組を含む。
【００４０】
ステップ１３４では、システムは現在の時刻を示すタイムスタンプを取得する。ステップ１３６ではスタックエントリが作成される。ステップ１３８において、スタックエントリはブレイムスタックへプッシュされる。一実施形態では、タイムスタンプがステップ１３８の一部として付加される。トランザクションが開始されるときにプロセス［処理］が実行される。同様のプロセス［処理］が、トランザクションのサブコンポーネントが開始するときに実行される（例えば、ＥＪＢ  ＢはサーブレットＡのサブコンポーネントである−上述したツリーを参照のこと）。
【００４１】
図２Ｂは、トランザクショントレースを終了するためのプロセス［処理］の一実施形態を説明するフローチャートである。トランザクションが終了するときにエージェントによりプロセス［処理］が実行される。ステップ１４０において、プロセス［処理］がトランザクション（例えばメソッド）の終了（例えば、“finishTrace”メソッドの呼び出し）によってトリガされる。ステップ１４２では、システムは現在の時刻を取得する。ステップ１４４では、スタックエントリが削除される。ステップ１４６において、トランザクションの実行時間は、ステップ１４２からのタイムスタンプをスタックエントリに格納されているタイムスタンプと比較することによって算出される。ステップ１４８では、トレースのためのフィルタが適用される。例えば、フィルタは１秒の閾値期間を含む。したがって、ステップ１４８は、ステップ１４６から算出された時間幅が１秒よりも大きいか否かを決定することを含む。閾値を超えない場合（ステップ１５０）、トランザクションのデータは破棄される。一実施形態では、スタックエントリの全体が破棄される。別の実施形態では、パラメータとタイムスタンプだけが破棄される。他の実施形態では、データの様々なサブセットが破棄される。いくつかの実施形態では、閾値の時間幅を超えていない場合には、エージェントにより、データは図１のシステム内の他のコンポーネントに送信されない。時間幅が閾値を超える場合（ステップ１５０）、ステップ１６０においてエージェントがコンポーネントデータを組み立てる。コンポーネントデータは、報告されるトランザクションに関するデータである。一実施形態では、コンポーネントデータは、トランザクションの名称、トランザクションの型、トランザクションの開始時刻、トランザクションの時間幅、パラメータのハッシュマップ、およびサブエレメント（エレメントの帰納的なリスト）のすべてを含む。その他の情報もまたコンポーネントデータの一部である。ステップ１６２において、エージェントは、マネージャ１２０にＴＣＰ／ＩＰプロトコルによりコンポーネントデータを送信することによってコンポーネントデータを報告する。
【００４２】
図２Ｂは、トランザクションが終了すると何が起こるかを表している。しかしながら、サブコンポーネントが終了すると、実行されるステップは、タイムスタンプを取得すること、サブコンポーネントのためのスタックエントリを削除することおよび完了したサブエレメントを以前のスタックエントリに加えることを含む。一実施形態では、フィルタおよび判断ロジックは、特定のサブコンポーネントというよりも、トランザクションの開始および終了に適用される。
【００４３】
一実施形態では、トランザクショントレーサがオフになっている場合、システムは依然としてブレイムスタックを使用するが、しかし、パラメータは格納されことなく、コンポーネントデータは作成されないことに注意されたい。いくつかの実施形態では、トレーシング技術をオフにすることによってシステムはトレーシングを開始しない。トレーシングは上述したように、ユーザが要求した後にだけ開始する。
【００４４】
図２Ｃは、図１のネットワークのコンピューティングデバイスを示す。コンピューティングデバイス２００は、図１に関連して説明したように、ウェブブラウザ、アプリケーションサーバ、マネージャおよび／またはユーザインタフェースで使用されるシステムを簡略化して表したものである。コンピューティングデバイス２００は、ハードディスクまたはポータブルメディアのような記憶装置２１０、他のコンピューティングデバイスと通信するためのネットワークインタフェース２２０、ソフトウェアの命令を実行するためのプロセッサ２３０、例えば、記憶装置２１０からロードされた後にソフトウェアの命令を格納するためのＲＡＭのような作業メモリ２４０、および１以上のビデオモニタのようなユーザインタフェースディスプレィ２５０を含むものである。ユーザインタフェースは１以上のモニタを提供する。記憶装置２１０は、本明細書で説明した機能を提供するための方法を実行するのにプロセッサ２３０をプログラミングするために具現化されているプロセッサ読み取り可能なコードを有する、プロセッサまたはコンピュータで読み取り可能な有体であり一時的でない記憶装置と考えることができる。ユーザインタフェースディスプレィ２５０は、１以上のエージェントから受信したデータに基づいて、人間のオペレータに情報を提供する。ユーザインタフェースディスプレィ２５０は、グラフィカルまたは表形式のような既知の任意の表示方式を使用する。画面上の表示に加えて、プリンタからのハードコピーなどの出力も提供する。
【００４５】
記憶装置２１０がアプリケーションサーバ、マネージャおよび／またはユーザインタフェースのようなコンピューティングデバイス２００の一部である場合、データベース１１８は記憶装置２１０に含まれる。記憶装置２１０は、１以上のエージェントから受信したデータを格納し、本明細書で説明したようにユーザインタフェースを提供するためにデータを取得するためにアクセスされる、１以上の記憶装置を表し得る。記憶装置２１０は、データストアを表し得る。
【００４６】
また、本明細書で説明した機能は、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアの両方の組み合わせを使用して実装されてもよい。ソフトウェアについては、１以上のプロセッサをプログラミングするために具現化されているプロセッサで読み取り可能なコードを有する、プロセッサで読み取り可能な１以上の一時的でない有体の記憶装置が使用される。プロセッサ読み取り可能な一時的でない有体の記憶装置は、揮発性および不揮発性メディア、リムーバブルおよび非リムーバブルメディアなどのコンピュータで読み取り可能な媒体を含む。例えば、コンピュータにより読み取り可能な一時的でない有体の媒体には、コンピュータにより読み取り可能な命令、データ構造やプログラムモジュールまたは他のデータなどの情報を記憶するために、任意の方法や技術で実装された、揮発性、不揮発性、リムーバブルや非リムーバブルメディアが含まれ得る。コンピュータにより読み取り可能な一時的でない有体の媒体の例としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、ディジタルバーサタイルディスク（ＤＶＤ）、または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、他の磁気記憶装置、または所望の情報を格納したり、コンピュータによってアクセスしたりすることに用いられる他の媒体などがある。他の実施形態においては、一部またはすべてのソフトウェアは、カスタムＩＣ、ゲートアレイ、ＦＰＧＡ、ＰＬＤや特殊用途向けプロセッサなど、専用のハードウェアに置き換えることができる。一実施形態では、１以上の実施形態を実装するソフトウェア（記憶装置に格納されている）は、１以上のプロセッサをプログラムするために用いられる。１以上のプロセッサは、コンピュータにより読み取り可能な有体の媒体／記憶装置、周辺機器および／または通信インタフェースと通信することができる。
【００４７】
図３は、１以上のアプリケーションの操作を示す際に用いられる階層を示す。複数の異なるレベルの階層が必要な組織構造に基づいて定義され得る。例えば、階層は、人間が理解し易い用語を含み、その用語は、クライアントの、監視されるアプリケーションとの相互関係の理解を容易にするものである。階層は、例えば、電子商取引のトランザクション、教育組織または政府組織などの営利目的の業務の領域にある、アプリケーションとの相互関係の類型を包含する。さらに、１以上の階層は、各ノードが記述名を持つ１以上の階層の複数の異なるレベルにおけるノードを含む。階層は、人間のオペレータにいっそう理解され易い仕方でアプリケーションを実行するやり方についての情報を、体系化する方法を提供する抽象的な構成であると考えられる。
【００４８】
階層の最上位レベルは、「ドメイン」と名付けられたドメインレベル３００である。階層の次のレベルは、業務サービスレベル３０２である。業務サービスの例は、ウェブサイトを用いた株式やその他の金融商品を扱う取引に関連する。このように「取引」は、階層の業務サービスレベルにおけるノードの名称である。取引業務サービスの特定のインスタンスは、例えば、特定のユーザが取引を実行すると発生する。他の業務サービスの例には、書籍販売のウェブサイトのための「書籍購入」、および福利厚生制度における従業員登録のための「福利厚生に登録」などがある。
【００４９】
階層の次のレベルは、業務トランザクションレベルである。前述したように、業務トランザクションは、ウェブサイトにログインしてアイテムを発注するなどのように、クライアントの観点からタスクを表す。業務サービスは、複数の業務トランザクションで構成され得る。例えば、取引に対しては、業務トランザクションは、ログイン３０４（例えば、ウェブサイトにログイン）、残高３０６（例えば、口座の残高を取得する）、取引概要３０８（例えば、最近の売買活動の報告を取得する）、発注３１０（例えば、オプション以外の株または債権のような証券を売買するために発注する）、およびオプション取引３１２（リサーチおよび／またはオプション取引を行う）を含む。ユーザがアカウントにログインしようとすると、ログインの特定のインスタンスが発生する。
【００５０】
さらに業務トランザクションは、１以上の業務トランザクションコンポーネントに関連付けられる。１つのアプローチでは、業務トランザクションは、唯一の識別コンポーネントを有する。業務トランザクションコンポーネントは、サーブレットまたはＥＪＢのように、サーバによって認識可能かつ測定可能なアプリケーションのコンポーネントの型である。１つのアプローチでは、アプリケーションのコンポーネントの１つは、業務トランザクションのためのトランザクションコンポーネントを識別する、業務トランザクションコンポーネントとして設定される。業務トランザクションコンポーネントは、業務トランザクションのためのトランザクションを識別するトランザクションのためにトランザクションコンポーネントを識別する。トランザクションは、クライアントに対応するレスポンスを提供するために、クライアントからのリクエストに応答して呼び出されるソフトウェアコンポーネントのシーケンスを表す。例えば、業務トランザクションコンポーネントは、エージェントによって報告されたコンポーネントデータが一セットのルールに一致する時期を判定することによって識別される。この定義は、例えば、特定のＵＲＬのホスト名称、ＵＲＬのパラメータ、ＨＴＴＰポストのパラメータ、クッキーおよび／またはセッションマネージャのパラメータなどを含む。加えて、またはその代わりに、定義は、特定のＵＲＬのホスト名称で開始するトランザクションを要求する場合もある。エージェントまたはマネージャは、例えば、業務トランザクションコンポーネントが業務トランザクション内に存在している時期を判定するために、コンポーネントデータと一セットのルールを比較する。業務トランザクションコンポーネントが検出される場合、関係付けられた業務トランザクションは特定の型のものである。例えば、業務トランザクションコンポーネント３０５、３０７、３０９、３１１または３１３が検出される場合、関係付けられた業務トランザクションは、それぞれログイン３０４、残高３０６、取引概要３０８、発注３１０またはオプション取引３１２である。
【００５１】
例えば、サーブレットに関係付けられているトランザクションのために、業務トランザクションコンポーネントは、セカンダリフレーム内にロードされているJava（登録商標）サーバページズ（ＪＳＰ）に接続して呼び出される。
【００５２】
加えて、１以上のアプリケーションは、複数の異なるサブシステム、例えば、特定のタスクを実行するソフトウェアコンポーネントを含む。通常、業務トランザクションの各インスタンスは、１以上のサブシステムのシーケンスのコードの実行に関与する。サブシステムは、互いに依存し、例えば、直列または分岐した連鎖で互いに呼び出す。異なる業務トランザクションが共通のサブシステムを使用することもある。
【００５３】
サブシステムの例には、破線のボックスによって表される計測されたサブシステムがあり、これは、通常、フロントエンドのサブシステムである。同様に、点線のボックスによって表される未計測のサブシステムがあり、これは、通常、バックエンドのサブシステムである。本明細書で使用されるように、フロントエンドのサブシステムは、通常、計測され、バックエンドのサブシステムは、通常、計測されない。さらに、あるフロントエンドのサブシステムは、ウェブサービスの呼び出しなどを介して別のフロントエンドのサブシステムを呼び出す。また、フロントエンドのサブシステムは、バックエンドのサブシステムを呼び出す。性能メトリックの全範囲は、計測されたサブシステムから取得される。限定された情報は、計測されたサブシステムからメソッドに呼び出されて使用されるメソッドから、未計測のサブシステムに着目して得られる。未計測のデータベースの場合、例えば、ＪＤＢＣドライバ（呼び出しフロントエンドと同じJava（登録商標）バーチャルマシン（ＪＶＭ）に位置する）は、データベースの応答性についての見解を与えるメトリックを提供する。未計測のメインフレームの場合、通常、メインフレームの特定のポートにメインフレームを呼び出すメソッドが存在し、その呼び出しにどのくらい時間がかかるか、またはそれがストールするか否かもしくはエラーを報告するか否かを評価できる。
【００５４】
多くの場合、未計測のサブシステムは、メインフレーム、データベース、または他の未計測のコンピューティングデバイスなどのバックエンドのサブシステムである。これらは不明のコンポーネント／宛先である。計測されたサブシステムは、取引サービス３２０、注文エンジン３２６、認証エンジン３２８、報告サービス３２４、認証サービス３２２および報告エンジン３３０を含む。未計測のサブシステムは、注文レコードＳＱＬ３２２、報告レコードＳＱＬ３３８、ポート番号６５４３を経由してアクセスされるシステムのｃａＤＢホスト３３４、ポート番号３４５６を経由してアクセスされるシステムのｃａＳＡＰホスト３２１および顧客レコードＳＱＬ３３６を含む。その名称にＳＱＬを含むサブシステムは、ストラクチャードクエリランゲージ（ＳＱＬ）のデータベースである。「？」は、サブシステム３３４および３２１が不明であることを示す。
【００５５】
図４Ａは、業務トランザクション内で呼び出されるコンポーネントのシーケンスの例における依存関係を示す。コンポーネント指向のプログラミングモデルは、プログラマに、コンポーネントに関係する構成要素からアプリケーションや他のプログラムを構築させるのに役に立つ。各コンポーネントは、ソフトウェアの全体的機能に適合するよう特定の機能を実行する。さらに、コンポーネントは、コンポーネントのシーケンスがプログラム内で呼び出されるように、他のコンポーネントを呼び出し、同様に、再帰呼び出しでは自分自身を呼び出す。コンポーネント指向のプログラミングモデルの一例は、Ｊ２ＥＥであるが、Java（登録商標）サーバページズ、エンタープライズJava（登録商標）ビーンズ（ＥＪＢ）、サーブレットおよびJava（登録商標）データベースコネクティビティ（ＪＤＢＣ）のコンポーネントといったコンポーネントを用いることができる。ＪＤＢＣは、クライントがいかにデータベースにアクセスするかを定義するJava（登録商標）プログラミング言語のためのアプリケーションプログラミングインタフェース（ＡＰＩ）である。それは、データベース内のデータを照会や更新する方法を提供する。しかしながら、.NETのような他のコンポーネント指向のプログラミングモデルを使用することもできる。また、プログラミングモデルは、オブジェクト指向である必要はない。
【００５６】
この例では、前述のログイン業務トランザクションの詳細を提供する。１つの可能な実装では、ログインの各コンポーネントは、クラスメソッド（ＣＭ）の組である。例えば、サーブレットはJava（登録商標）クラスである。リクエストを受信し、対応するレスポンスを生成するのはオブジェクトである。クラスメソッドの組は、class.methodの表記により表される。ログインは、ログイン名やパスワードなどのユーザのログイン認証情報を取得する１番目のクラスメソッドの組ＣＭ１を含む。ＣＭ１の書式の例は、ServletA1.ObtainLoginCredentialsである。
【００５７】
例として、ＣＭ１は、ログインの業務トランザクションコンポーネントである。したがって、エージェントは、ＣＭ１が呼び出されたことを検出するたびに、現在のトランザクションは、ログインの一部でありそのコンポーネントデータはログインと関連付けられると結論する。
【００５８】
２番目のクラスメソッドの組ＣＭ２（例えばServletA2.CheckLoginCredentials）は、ログイン認証情報の書式を調べる。
【００５９】
ログイン認証情報が適式でない場合、ＣＭ２は、ユーザに正しい入力をするように促すエラーメッセージを表示する、３番目のクラスメソッドの組ＣＭ３（例えば、ServletA3.DisplayErrorMessage）を呼び出す。ログイン認証情報が適式である場合、ＣＭ２は、ＣＭ４ａ（例えば、ServletA4.ValidateLoginCredentials）を呼び出す。ＣＭ４ａは、ＣＭ７（例えば、ServletB1.ReceiveLoginCredentials）を呼び出し、その際にログイン認証情報をＣＭ７に渡す。
【００６０】
ＣＭ７はユーザのログイン認証情報が顧客レコードと一致するか否かを判定するデータベースにアクセスするＣＭ８（例えば、ＪＤＢＣドライバの呼び出し／CheckCredentialRecordsのＳＱＬ文）を呼び出す。一致することをＣＭ８がＣＭ７に返答した場合、ＣＭ７はユーザのアカウントが有効であるか否かを判定するためにデータベースにアクセスするＣＭ９を呼び出す（例えば、ＪＤＢＣドライバの呼び出し／CheckAccountStandingのＳＱＬ文）。アカウントが有効であることを示すレスポンスをＣＭ９がＣＭ７に提供した場合、ＣＭ７は、ユーザがログインしていることを示すようにデータを更新するためにＣＭ１０（例えば、ＪＤＢＣドライバの呼び出し／UpdateLoginRecordsのＳＱＬ文）を呼び出し、ＣＭ１０はＣＭ７にlogin status=trueを返す。ＣＭ８において認証情報が一致しない場合、またはＣＭ９においてアカウントが有効ではない場合、デフォルトのlogin status=falseが残るように、ＣＭ７はlogin status=falseを設定し、ＣＭ１０が呼び出されることはない。
【００６１】
例示の実装では、ＣＭ８からＣＭ１０は、データベース内にテーブルエントリを作成したりエントリにデータを付加したりするなどのように、１以上のＳＱＬ文を呼び出すＪＤＢＣドライバの呼び出しを含む。また、必要に応じて、各ＳＱＬ文はＪＤＢＣドライバの呼び出しによって呼び出される分離したコンポーネントとして特定される。図５Ｒを参照されたい。
【００６２】
ＣＭ７はＣＭ４ａにリプライを返し、ＣＭ４ａはlogin status=true または login status=falseのいずれかでＣＭ２にリプライを返す。login status=trueであれば、ＣＭ２はＣＭ４ｂを呼び出し、ＣＭ４ｂはアクセスが許可されたことをユーザに示すメッセージを表示するＣＭ５（例えば、ServletA5.DisplayMessageAccessGranted）を呼び出す。またlogin status=falseであれば、ＣＭ２はＣＭ４ｂを呼び出し、ＣＭ４ｂはアクセスが拒否されたことをユーザに示すメッセージを表示するＣＭ６（例えば、ServletA6.DisplayMessageAccessDenied）を呼び出す。
【００６３】
分離したコンポーネントＣＭ４ａおよびＣＭ４ｂは、ＣＭ４ａによるＣＭ７への呼び出しや、ＣＭ４ｂによるＣＭ５またはＣＭ６への呼び出し、といった別々の計測を可能にするために使用されることに注意されたい。あるいは１つのコンポーネント、ＣＭ４がＣＭ４ａおよびＣＭ４ｂの機能を扱う。この１つのコンポーネントは、同じアプリケーションサーバ内の別のメソッド（ＣＭ５またはＣＭ６）と、ウェブサービスコール（ＣＭ７）の両方を呼び出す。
【００６４】
説明のように、ＣＭ１からＣＭ６は認証サービスサブシステム内で実行され、一方、ＣＭ７からＣＭ１０は認証エンジンサブシステム内で実行される。ログインは、このようにこれらのサブシステムの両方で実行し、または呼び出す。
【００６５】
コンポーネントは、非同期、マルチスレッドまたはマルチプロセスのモードで実行を開始する別のコンポーネントを呼び出した後、実行を継続できることに注意されたい。または、この呼び出されたコンポーネントが同期モード、シングルスレッドまたはシングルプロセスのモードで実行を終了するまで、コンポーネントを一時的に休止できる。休止しているコンポーネントは、待機期間にあると考えられ、一方、実行されているコンポーネントはアクティブで、実行モードであると考えられる。コンポーネントは、トランザクションの間中、２回以上呼び出されることが可能である。
【００６６】
図４Ｂ１は、図４Ａのコンポーネントの１つの可能なシーケンスに基づいて、トランザクション内で呼び出されたコンポーネントのシーケンスのためのトランザクショントレースの例を示す。水平方向は時間を表し、垂直方向は呼び出しスタックの深さや位置を表す。また、呼び出しスタックと称されるトランザクショントレースは、１以上のプログラム、プロセスまたはスレッドの実行中に、呼び出されるかまたは起動される計測されたコンポーネントを識別する。計測されたコンポーネントのトレースデータは、アプリケーションを理解したりデバッグしたりするために従属データとともに使用される。トランザクショントレースは、トレースまたはトランザクションの全部もしくは一部とすることができ、それぞれのエージェントを有する１以上のコンピューティングデバイスに及ぶ。
【００６７】
特に、分離したトランザクショントレースは、別々のスレッドが別々のトランザクショントレースに分離されるように各エージェントに対し提供される。さらに、各トランザクショントレースは、分離して水平に拡張した領域、または図の「スイムレーン」で表される。この図では、認証サービスサブシステムのためのエージェントのトランザクショントレース４０１が一番上の水平に拡張する領域にあり、認証エンジンサブシステムのためのエージェントのトランザクショントレース４０３が一番下の水平に拡張する領域にある。２つのトランザクショントレースは、関係のあるタイミングの一層の理解を可能にするため、一緒に表される。別々のエージェントの時計が十分に同期すると知られている場合には、別々のトランザクショントレースの関連性のあるタイミングについて正確な結論が得られる。矢印４００および４０２は、個々に、トランザクショントレース４０１および４０３に対するそれぞれの呼び出しスタックの深さを表す。
【００６８】
ユーザインタフェースディスプレイ上で提供されるグラフ表示において、コンポーネントＣＭ１は、トランザクショントレース４０１の第１またはルートのコンポーネントである。トランザクショントレースは、第２層でＣＭ２、第３層でＣＭ４ａおよびＣＭ４ｂならびに第４層でＣＭ５を含む。トランザクショントレース４０３において、ＣＭ７は第１レベルにあり、ＣＭ８、ＣＭ９およびＣＭ１０は第２レベルにある。オプションとして、トランザクショントレース４０３は、さらに詳細を示すこともできる。例えば、後述のように、図５Ｒに示されるように、ＣＭ８、ＣＭ９ およびＣＭ１０が各ＪＤＢＣドライバの呼び出しである場合、トランザクショントレース４０３は、子のＳＱＬ文６９１、６９２および６９３をそれぞれ示すように変更可能である。
【００６９】
時間のスケールは０−ｔ１３に延びており、例えば１３００ミリ秒（ｍｓ．）を表す。トランザクショントレースは、コンポーネントが実行する時間間隔、およびコンポーネント間の呼び出し関係を示す。例えば、ＣＭ１がｔ０からｔ１３で実行し、ＣＭ２がｔ１からｔ１２．５で実行し、ＣＭ４ａがｔ２からｔ１０（およそ）で実行し、ＣＭ４ｂがｔ１０（およそ）からｔ１２で実行し、およびＣＭ５がｔ１１からｔ１１．５で実行する。さらに、ＣＭ１はＣＭ２を呼び出し、ＣＭ２はＣＭ４ａおよびＣＭ４ｂを呼び出し、ならびにＣＭ４ｂはＣＭ５を呼び出す。
【００７０】
図４Ｂ２は、図４Ｂ１のトランザクショントレースの例における待機期間を示す。同期のトランザクションは、例えばＣＭ１のような１つのコンポーネントが、例えばＣＭ２のような別のコンポーネントの呼び出し、および継続／再開の実行の前に応答するＣＭ２のための待機を含む。呼び出しメソッドによって要求される時間が呼び出しメソッドのための「待機時間」であると仮定する。非同期のトランザクションもまたトレースすることが可能であり、図４Ｂ１に類似したトランザクショントレースの表示に示すことができる。待機時間プラス正味の時間幅が実行または応答時間の合計時間幅に等しくなるように、待機時間外のコンポーネントにより消費される時間は、実行または応答時間の正味の時間幅であると考えられる。コンポーネントの合計時間幅は、コンポーネントによって直接呼び出されるすべてのメソッドに対する時間幅を合計し、コンポーネントに対する合計記録時間幅からの合計を減算することによって算出される。
【００７１】
グラフ中の水平の各棒ついて、無地の部分は呼び出されたコンポーネントからの応答を待たないことを示し、斜線模様のある棒はコンポーネントが呼び出されたコンポーネントからの応答を待つことを示す。たとえコンポーネントの計測がコンポーネントの実行中または待機中であるかを明示的に示さないとしても、同期の場合には、先のコンポーネントはそれらが呼び出したメソッドが実行している間は待機するものと推測できる。コンポーネントによって消費される時間内に、その一部は、ネットワークまたはＣＰＵの遅延などによって遅れて、応答するために呼び出されたコンポーネントを実行や待機するのに費やされる。
【００７２】
この例では、ＣＭ１は、ログイン業務トランザクションのインスタンスの開始時のｔ０において実行を始め、ｔ１においてＣＭ２を呼び出す。ＣＭ２は、ｔ１において実行を始め、ｔ２においてＣＭ４ａを呼び出す。ＣＭ４ａはｔ２において実行を始める。この例では、ＣＭ７は、異なるエージェントに関連付けられて異なるサブシステム上にあることから、トランザクショントレース４０１は、ＣＭ４ａがｔ３においてＣＭ７を呼び出したことを特定しない。また、例えば、ネットワーク通過時間、処理遅延、またはその他の要因によって、ＣＭ４ａがＣＭ７を呼び出すこととＣＭ７の実行を開始することとの間に遅れが生じることがある。しかしながら、トランザクショントレース４０３は、ＣＭ７がｔ３．５において実行を開始し、ＣＭ４ａによって、例えばクロスプロセスの呼び出しにおいて呼び出されたことを示す。つまり、ＣＭ７は、ＣＭ４ａの呼び出しの結果として実行を開始する。ＣＭ７はｔ４においてＣＭ８を呼び出し、ＣＭ８はｔ４からｔ５で実行する。ＣＭ７はｔ６においてＣＭ９を呼び出し、ＣＭ９はｔ６からｔ７で実行する。ＣＭ７はｔ８においてＣＭ１０を呼び出し、ＣＭ１０はｔ８からｔ９で実行する。ｔ９において制御フローはＣＭ７に戻り、ｔ９．５においてＣＭ７は実行を停止する。制御フローは、上記の要因によってｔ１０までＣＭ４ａに戻らない。ｔ１０において制御フローは、ＣＭ４ａに短時間戻って、ｔ１０の直後にＣＭ２がＣＭ４ｂを呼び出すときにＣＭ２に短時間戻る。トランザクショントレース４０１では、ＣＭ４ｂはｔ１１においてＣＭ５を呼び出し、ＣＭ５はｔ１１からｔ１１．５で実行する。ｔ１１．５において制御フローはＣＭ４ｂに戻り、ｔ１２において、制御フローはＣＭ２に戻る。そしてｔ１２．５において制御フローはＣＭ１に戻る。
【００７３】
ＣＭ８、ＣＭ９およびＣＭ１０はそれぞれデータベース（顧客レコードＳＱＬ)を呼び出す。しかし、データベースは未計測であることから、データベースによって消費される時間の量は、トランザクショントレース４０３のＣＭ８、ＣＭ９またはＣＭ１０の合計実行時間から区別されない。
【００７４】
この例では、ＣＭ１ついては、合計時間幅はｔ１３−ｔ０＝１３００ミリ秒で、待機時間はｔ１２．５−ｔ１＝１１５０ミリ秒、そして、正味の時間幅は１３００−１１５０＝１５０ミリ秒である。ＣＭ２については、合計時間幅は１１５０ミリ秒で、待機時間はｔ１２−ｔ２＝１０００ミリ秒、そして、正味の時間幅は１１５０−１０００＝１５０ミリ秒である。ＣＭ４ａについては、合計時間幅はｔ１０−ｔ２＝８００ミリ秒で、待機時間はｔ１０−ｔ３＝７００ミリ秒、そして、正味の時間幅は８００−７００＝１００ミリ秒である。ＣＭ４ｂについては、合計時間幅はｔ１２−ｔ１０＝２００ミリ秒、待機時間はｔ１１．５−ｔ１１＝５０ミリ秒、そして、正味の時間幅は２００−５０＝１５０ミリ秒である。ＣＭ５については、合計時間幅はｔ１１．５−ｔ１１＝５０ミリ秒で、待機時間は０ミリ秒、そして、正味の時間幅は５０−０＝５０ミリ秒である。
【００７５】
同様に、トランザクショントレース４０３では、ＣＭ７については、合計時間幅はｔ９．５−ｔ３．５＝６００ミリ秒で、バックエンドの呼び出し時間はｔ５−ｔ４＋ｔ７−ｔ６＋ｔ９−ｔ８＝１００＋１００＋１００＝３００ミリ秒、そして、認証エンジンサブシステムで費やされる時間は６００−３００＝３００ミリ秒である。この費やされた時間は正味の時間幅に類似している。ＣＭ８については、合計時間幅はｔ５−ｔ４＝１００ミリ秒で、待機時間は０ミリ秒であると仮定して、正味の時間幅は１００ミリ秒となる。ＣＭ９については、合計時間幅はｔ７−ｔ６＝１００ミリ秒で、待機時間は０ミリ秒であると仮定して、そして正味の時間幅は１００ミリ秒になる。ＣＭ１０については、合計時間幅はｔ９−ｔ８＝１００ミリ秒で、待機時間は０ミリ秒であると仮定して、そして正味の時間幅は１００ミリ秒である。
【００７６】
認証エンジンサブシステムのルートコンポーネント、ＣＭ７の合計時間幅に基づく、認証エンジンサブシステムの合計時間は６００ミリ秒である。サブシステム（例えば、最下位レベルのコンポーネント、ＣＭ８、ＣＭ９およびＣＭ１０のｔ４、ｔ６、ｔ８におけるそれぞれの呼び出し）の外側で呼び出しが行われる時間に基づき、呼び出しに対応する応答が受信された時間（例えば、それぞれｔ５、ｔ７およびｔ９）に基づく、認証エンジンサブシステムのバックエンドの呼び出し時間は、１００＋１００＋１００＝３００ミリ秒である。そして、認証エンジンサブシステムで費やされる時間は、バックエンドの呼び出し時間を除いた合計時間幅、つまり６００−３００＝３００ミリ秒である。バックエンドの呼び出し時間は、呼び出された１以上の計測または未計測のサブシステムに割り当てられる。この例では、１つの未計測のサブシステムが呼び出され（顧客レコードＳＱＬ）、３００ミリ秒がそれによるものと考えられる。
【００７７】
認証エンジンサブシステムは、全体として機能的に、１つの実装においては認識される「待機時間」が存在しない。ＣＭ８、ＣＭ９およびＣＭ１０は、「バックエンド呼び出し」時間に対応している。トレースの３つのコンポーネントが、１以上のバックエンドへの呼び出しを表すが、呼び出しを実行する際に費やされた時間と、応答するためのバックエンドの待機に費やされた時間とを区別することができない。認証エンジンの「フロントエンド」で費やされた時間と「バックエンド呼び出し」で費やされた時間との区別をすることができるように、認証エンジンに対する合計時間からバックエンドの時間を減算する。この場合、すべてのバックエンドの呼び出しは、同じバックエンドに向かうので、単一の値、即ち顧客レコードＳＱＬの呼び出しで費やされる合計時間に集約することができる。他の場合には、分離したバックエンドの呼び出し時間は、複数のバックエンドにそれぞれ集約可能である。
【００７８】
同様に、認証サービスサブシステムの合計時間幅は、ルートコンポーネントＣＭ１の合計時間幅から１３００ミリ秒と決定することができる。サブシステムの外側で最下位レベルのコンポーネントの呼び出し（例えば、最下位レベルのコンポーネントＣＭ４ａによる、ｔ３におけるＣＭ７の呼び出し）が行われる時間と、呼び出しに対応するレスポンスが受信された時間（例えばｔ１０）と、に基づく認証サービスサブステムの待機時間は７００ミリ秒である。そして、認証サービスサブシステムの正味の時間幅は、待機時間を除いた合計時間幅、つまり１３００−７００＝６００ミリ秒である。
【００７９】
さらに、認証サービスサブシステムの７００ミリ秒の待機時間は、認証サービスサブシステムが呼び出す１以上のサブシステムによるものであると考えられる。認証エンジンサブシステムは、認証サービスサブシステムによって呼び出される唯一のサブシステムであることから、７００ミリ秒は認証エンジンサブシステムによるものであると考える。しかしながら、認証エンジンサブシステムの合計時間幅は、６００ミリ秒しかないと判定された。したがって、７００−６００＝１００ミリ秒が、認証サービスサブシステムから認証エンジンサブシステムへのリクエストを伝達し、認証エンジンサブシステムから認証サービスサブシステムへの対応するリプライを伝達するのに消費される時間によるものであると考えることができる。サブシステム間のリクエストやリプライを伝達することには、ネットワーク遅延およびＣＰＵ遅延に加えて、ウェブサービスなどのサービスにアクセスすることを含むことに注意されたい。
【００８０】
このように、合計時間幅、サブシステムで費やされた正味の時間幅または時間、待機時間、バックエンドの呼び出し時間（または未計測のサブシステムへの他の呼び出し）、およびサブシステム相互通信の時間を判定するために、最後に呼び出されたサブシステムから最初に呼び出されたトランザクションのサブシステムまで過去に遡って作業をする。バックエンドの呼び出し時間を表すという点では、いつ、どのようにして正味の時間幅に対する全時間幅を使用するかという問題がある。より高い粒度が提供され得ることから正味の時間幅が好ましいが、呼び出しが未計測のバックエンドに行われる場合には全時間幅しかない。正味の時間幅が利用できるルールを設定したが、時間が未計測のバックエンドのものを含む場合、グループ分けした大括弧または類似のもので示すことができる。手順の例を次に説明する。
【００８１】
図４Ｂ３は、従属する計測されたサブシステムのシーケンスのための、合計時間幅、正味の時間幅、待機時間、およびサブシステム相互の通信時間を決定する方法を示す。計測されたサブシステムのシーケンスは直列であることから、シーケンス内には唯一の分岐または連鎖があるので、１つのサブシステムが１番目の次のサブシステムを呼び出し、１番目の次のシステムが２番目の次のサブシステム、等々を呼び出す。また、シーケンスは、例えば、１つのサブシステムが１番目の次のサブシステムおよび２番目の次のサブシステムを呼び出すときのように、１以上の並列分岐を有する。例えば、図５Ａにおいて後述するように、計測されたサブシステムの直列シーケンスは、認証サービスが認証エンジンを呼び出すログインのために提供される。さらに、計測されたサブシステムの複数分岐シーケンスは発注に提供され、そこでは、取引サービスが、別々の分岐において注文エンジンおよび認証エンジンの両方を呼び出す。さらに、従属するサブシステムのシーケンスの段階が定義される。例えば、ログインについては、認証サービスは第１段階で、認証エンジンは第２（および最終）段階である。発注については、取引サービスは第１段階で、注文エンジンおよび認証エンジンは共に第２（および最終）段階である。
【００８２】
これらの概念の表示では、図４Ｂ３のステップ４２２は、トレースがサブシステムによって呼び出されたコンポーネントから得られている計測されたサブシステムを選択することを含む。例えば、図４Ｂ２では、認証サービスサブシステムとそのトレース４０１を選択する。ステップ４２４は、サブシステムのルートコンポーネントの時間幅からサブシステムの合計時間幅Ｔ１を決定する。例えば、トレース４０１におけるＣＭ１に基づいてＴ１＝１３００ミリ秒になる。ステップ４２６は、サブシステムから計測または未計測の宛先サブシステムに向かう呼び出し（例えば、クロスプロセス呼び出し）に対応するトレースにおけるすべてのコンポーネントを識別する。例えば、トレース４０１においてはＣＭ４ａを識別する。サブシステムの外部の全ての呼び出しの合計時間幅Ｔ２を得るために、ステップ４２８は、識別されたコンポーネントの時間を合計する。ここで、Ｔｃ１＝７００ミリ秒を有するＣＭ４ａのような特定されたコンポーネントが唯一存在し、Ｔ２＝Ｔｃ１＝７００ミリ秒になる。ステップ４３０は、フロントエンド時間とも称される、サブシステムの正味の時間幅Ｔ３を得るため、サブシステムの合計時間幅Ｔ１からサブシステムの外部のすべての呼び出しの合計時間幅Ｔ２を減算する。トレース４０１については、Ｔ３＝Ｔ１−Ｔ２＝１３００−７００＝７００＝６００ミリ秒になる。
【００８３】
ステップ４３２は、識別されたコンポーネントをコンポーネントの宛先サブシステム別によってグループ分けして、各グループ分の時間（例えば、ステップ４２８のＴｃ１、Ｔｃ２．．．のような時間）を合計する。これらの合計は、宛先サブシステムへの呼び出しに対する全時間幅ＴＦである。トレース４０１については、例えば、認証エンジンサブシステムのような宛先サブシステムが１つしかないので、グループは１つしか存在しない。認証エンジンサブシステムの時間の合計は、ＴＦ＝７００ミリ秒である。判断ステップ４３４が、分析するための次のサブシステムが存在するか否かを判定する。分析するための次のサブシステムがある場合は、ステップ４２２から４３２は、次のサブシステムのために繰り返される。例えば、分析するための次のサブシステムは、ステップ４２６で識別される宛先サブシステムを含む。プロセスは、サブシステムのシーケンスの最前段で開始し、１以上の直列パスで呼び出されたサブシステムに連続して入っていく。例えば、認証エンジンサブシステムは、認証サービスサブシステムの宛先サブシステムである。
【００８４】
したがって、図４Ｂ２の認証エンジンサブシステムとそのトレース４０３は、ステップ４２２で選択されている。ステップ４２４は、サブシステムのルートコンポーネントＣＭ７の時間幅からサブシステムの合計時間幅Ｔ１＝６００ミリ秒を決定する。ステップ４２６は、この場合、未計測のバックエンドの顧客レコードＳＱＬに対して、サブシステムからの呼び出しに対応するＣＭ８、ＣＭ９およびＣＭ１０を識別する。サブシステムの外部のすべての呼び出しの合計時間幅Ｔ２を得るため、ステップ４２８は、識別されたコンポーネントの時間を合計する。ここで、ＣＭ８についてはＴｃ１＝１００ミリ秒で、ＣＭ９についてはＴｃ２＝１００ミリ秒およびＣＭ１０についてはＴｃ３＝１００ミリ秒で、そしてＴ２＝３００秒である。ステップ４３０は、トレース４０３について、Ｔ３＝Ｔ１−Ｔ２＝６００−３００＝３００ミリ秒を提供する。
【００８５】
ステップ４３２は、識別されたコンポーネントをコンポーネントの宛先サブシステム別にグループ分けし、各グループ分の時間（ＴＦ＝Ｔｃ１＋Ｔｃ２＋Ｔｃ３＝３００ミリ秒）を合計する。判断ステップ４３４は、分析するための次のサブシステムが存在するか否かを判定する。判断ステップ４３４で、分析するための次のサブシステムがない場合には、プロセスは、計測され、各エージェントと関連付けられた宛先サブシステムへの各呼び出しを再度行う。具体的には、ステップ４３６は、計測された宛先サブシステムを選択する。図４Ｂ２の例では、認証エンジンサブシステムが再度行われている。ステップ４３８は、宛先サブシステムへの呼び出しのための正味の時間幅ＴＮ＝１００を得るために、宛先サブシステムへの呼び出しの全時間幅ＴＦ＝７００ミリ秒から合計時間幅（Ｔ１＝６００ミリ秒）を減算する。
【００８６】
図５Ａは、取引の業務サービスがユーザによって選択された場合におけるサブシステムのユーザインタフェース（ＵＩ）および業務トランザクションを示す。ＵＩ５００は、サブシステムの相互の依存関係、例えば相互の呼び出し順序など、を、サブシステムを示すノード及びノードを接続する矢印を用いた図表で表したマップを提供する。そのようなマップは、アプリケーションの依存関係マップ、またはトリアージマップとも称される。さらに、マップは、どのサブシステムが特定の業務トランザクションに関連付けられているかを示す。業務トランザクションは、１以上のコンピューティングデバイスで１以上のサブシステムに関連付けられたコンポーネントを呼び出す。どのサブシステムが潜在的に互いに呼び出すかを判定するために、１以上の管理されたアプリケーションの分析に基づいてマップが作成される。この分析は、管理されたアプリケーションの特定の時間間隔においてコンポーネントデータが得られる前に行われる。マップは、１以上の業務トランザクションのサブシステムを含む。
【００８７】
ユーザインタフェースの領域５０４は、ユーザがマップタブ５０６またはブラウズタブ５０８を選択することを許容する。現在、マップタブ５０６は選択されている。タブは、使用可能な業務サービスの表示を提供するために開放されるノード、および使用可能なフロントエンドの表示を提供するために開放されるノードを含むノードのツリーを提供する。業務サービスによるノードは、取引と称される業務サービスのノードを含み、取引は、前述したように、業務トランザクションを構成するためのノード、即ち、残高、ログイン、オプション取引、発注、取引概要を含む。取引はユーザによって選択され、現在の表示はこの選択に基づくものである。この選択は、領域５０４のツリーにおける「取引」に下線を引くことにより示される。
【００８８】
この選択に応答して、多く（１以上）の関連付けられた業務トランザクション、業務トランザクションのサブシステムおよびサブシステム間の依存関係を示す矢印が、トリアージマップの領域に示されるようにユーザインタフェースのメインエリア５０２に表示される。左側の楕円形のノード３０４、３０６、３０８、３１０および３１２は、それぞれ業務トランザクションの名称を含んで表す。辺とも称される矢印は、業務トランザクションのためにどのサブシステムが最初に呼び出されるか、および、続いて呼び出されるサブシステムはどれかを示す。ある場合には、共通のサブシステムが別々の業務トランザクションのインスタンスのために呼び出される。例えば、認証サービスはオプション取引やログイン業務トランザクションによって呼び出される。
【００８９】
与えられた業務トランザクションのインスタンスに呼び出されたコンポーネントは、コンポーネントが同じサブシステムにあったとしても、一意の識別子を用いて個別に追跡することができる。また、コンポーネントの分離したインスタンスは、別々の業務トランザクションのインスタンスにおいて（単一の）サブシステムで呼び出される可能性もある。これらの分離したインスタンスは、再度、別々に追跡することができる。
【００９０】
また、同じ業務トランザクションの分離した複数のインスタンスは、同じサブシステムを呼び出す必要はないことに注意されたい。例えば、業務トランザクションのインスタンスは、エラーまたはネットワークの障害によっては、エラーが生じなかった場合に呼び出される特定のサブシステムを呼び出すことはない。また、時刻や使用可能なリソースに起因して、同じ業務トランザクションの分離した複数のインスタンスは、別々のサブシステムを呼び出す。これらの簡略化された例には示されていないが、様々なバリエーションが可能である。
【００９１】
ノードの枠は、ノードが強調表示されているか否かを示すために使用されており、強調表示の一種になる場合もある。強調表示は、あるノードを他のノードから視覚的に区別する方法である。異なる色が使用されることもある。あるアプローチでは、実線が強調を示す一方で、点線または破線の枠は強調を示さない。二重の枠も同様に使用される。あるアプローチでは、実線の外側の枠は、ノードがユーザによって選択されたことを示し、破線の外側の枠は、ユーザによる他のコマンドに基づいてノードが視覚的に区別されていることを示す。ノードの強調表示は、領域５０４におけるユーザの選択、およびＵＩにおけるノードそのもののユーザの選択、に反応する。様々な強調表示、色分けおよび他の視覚的な効果が、ユーザに情報を伝達するために提供される。サブシステムのいくつかのノードは、（ａ）フロントエンドまたは集約されたフロントエンド（例えば、同じアプリケーションコンテキストを共有するすべてのサーブレット）を示す２つの重複する画面のような記号、（ｂ）データベースを表す円筒形の記号、または（ｃ）サブシステムの種類を識別するためにソケット呼び出しの宛先である不明の（未計測の）サブシステムを表す記号を、含む。
【００９２】
他の種類の表記には、メトリックと警告がある。警告は、業務トランザクション（関連付けられたコンポーネントデータに基づくもの）のため、フロントエンドの全体的なパフォーマンス（「正常性」）のため、およびフロントエンドによって未計測のバックエンドまたは別のフロントエンドにされるバックエンドの呼び出しのため、に使用可能である。別のフロントエンドに行われる呼び出しは、マップ上に現われるように、ウェブサービスまたはＥＪＢクライアントを介して行われる。これらの警告は、ユーザによって作成および設定される。したがって、ある与えられた業務トランザクション、フロントエンドもしくはバックエンドの呼び出しは、業務トランザクションのために明示された警告を有する、または有しない。警告が明示される場合、いくつかの状態、即ち、正常（緑色）、注意（黄色）、危険（赤色）、データなし（灰色）、計画的な停止時間（黒色および灰色）が現れる。警告が明示されない場合、業務トランザクションまたはフロントエンド内にはアイコンは現れることなく、小さな「メトリックアイコン」が、メトリックデータはここで使用可能であることを示すために、バックエンドの呼び出しの終点で現れる。
【００９３】
１つのサブシステムから別のサブシステムの呼び出しを表す矢印の終わりに現れる円は、呼び出しのために使用可能な最新のデータが存在するが警告は明示されてはいないことを示している。バックエンドの呼び出しのために警告が明示されている場合には、警告アイコンが重ね合わせられて実質的にメトリックアイコンを置き換える。すべての円／警告のアイコンの欠如は、マップはロードされているので、呼び出しのための見えるメトリックが存在しないことを意味する。メソッド呼び出しのための警告アイコンは、メソッド呼び出しの合計時間幅に基づいて設定される。円は、呼び出されたサブシステムの隣に、矢印の先端に配置される。わかり易くすると、この例では、全体が暗色に着色に着色された円は危険の警告状態を示し、白丸は正常の警告状態を示し、そして半分が暗色に着色された円はメトリックが使用可能で警告が明示されていないことを示す。領域５０４は、どの警告レベルが関連付けられた階層レベルのために表示されるかを示すために、業務サービスおよび業務トランザクションの名称の隣に警告表記を提供している。業務トランザクションのための領域５０４において、円表記がノード３０４、３０６、３０８、３１０および３１２のための円表記と一致している。対象のサブシステムの関連付けられたすべての宛先サブシステムと同様に、対象のサブシステムの警告レベルは、サブシステムの正常性メトリックに基づいて、最高の警告レベルを表す。また、業務サービスの警告レベルが任意の業務トランザクションの最高の警告レベルとして設定される。
【００９４】
フロントエンドのサブシステムは、ソケットを介してアプリケーションサーバからの呼び出しを行う。これらの呼び出しは、ウェブサービスの呼び出し、ＪＤＢＣドライバの呼び出しまたはその他の呼び出しである。ウェブサービスは、通常、アプリケーションプログラミングインタフェース（ＡＰＩ）またはハイパーテキストトランスファープロトコル（ＨＴＴＰ）を介してアクセスされたウェブＡＰＩであり、リクエストされたサービスをホスティングするリモートシステムにおいて実行される。これらの呼び出し、およびＪＤＢＣドライバの呼び出しのようなその他の呼び出しは、呼び出しを検出して呼び出しに関するメトリックを取得するため、依然としてアプリケーションサーバにあるが、しかしアプリケーションサーバから呼び出すことから、バックエンドコールと称される。したがって、図５Ａにあるように全体のマップは、検出されたフロントエンドおよびフロントエンドがバックエンドに対して行う呼び出しを示す。これらのバックエンド呼び出しの宛先は、他のフロントエンド（ウェブサービスやいくつかのＥＪＢ呼び出しの場合）または未計測のバックエンドのコンポーネントのいずれかである。これらの未計測のコンポーネントのほとんどは、少なくとも部分的にはバックエンド呼び出しから識別される。例えば、ＪＤＢＣドライバの呼び出しは、その宛先データベースの名称でラベルが付されており、デフォルトのソケット呼び出しは、宛先ホストおよびポートでラベル付けされている。他の場合では、ユーザはカスタム呼び出しを定義しその宛先でラベル付けをする。これらのすべての場合で、ＵＩは、データベースまたはコンポーネントの他の適切な型を示すアイコンで適切にラベル付けされたバックエンドの宛先を表すボックスを提供する。
【００９５】
例えば、ソケットを介して呼び出しがあり、その呼び出しは計測されていて５６ミリ秒かかることが判明しているが、その宛先（どのサブシステムをそれが呼び出したか）が不明である場合、バックエンドのノードと並んで「不明のコンポーネント」のアイコンを示し、システムのホスト名称とポートによってラベル付けされた、ＵＩにおける時間メトリックを表示し得る。バックエンド３２１、３３２、３３４、３３６および３３８は、計測されることなく、そのため宛先によって報告された情報がない宛先を表すため、実質的にマップ内のダミーのノードである。これらのノードに隣接した円のアイコンは、フロントエンドからの呼び出しを表す矢印の端で、バックエンド呼び出しのメトリックおよびそれに関連付けられた警告のプレースホルダとして機能する。
【００９６】
１つのフロントエンドから別のフロントへの呼び出しには、十分な計測が可能である。呼び出しは、例えば、ウェブサービスまたはＥＪＢクライアントを介して行われる。単一のフロントエンドから発しているすべてのウェブサービスの呼び出しは、集約され、単一の「ウェブサービス」のバックエンド呼び出しとして表されている。このように、他の種類の呼び出しとは異なり、ウェブサービスの呼び出しは、２以上の宛先を有し得る。この場合、バックエンド呼び出しは、マップ内の二股分岐または枝分岐の矢印として現される。１セットのデータだけがこの呼び出しに関連付けられており、１つのアプローチでは、マップにおいて、円に「Ｗ」のアイコンが宛先ボックスの横ではなく二股分岐の基部に現れる。図５Ａにおいて、ウェブサービス５１０および５１２は、同じくウェブサービスの呼び出しであるが単一の宛先を有するもので、認証サービス３２２と認証エンジン３２８と間の呼び出しの対比として、２つのそのような二股分岐のウェブサービスの呼び出しを示す。具体的には、ウェブサービスのアイコン５１０は、二股分岐の基部にあり、宛先ノード３２６および３２８の横にはないため、ウェブサービス５１０への呼び出しに関連付けられたデータの１つのセットが存在する。呼び出しのためには宛先は１つしか存在しないことから、ウェブサービスのアイコン５１５は、宛先ノード３２８の横にあるかまたは隣接してある。必要に応じて、ウェブサービスのアイコン５１５は、矢印５１３がノード３２２とウェブサービスのアイコン５１５との間で依然として延長するようにノード３２２と３２８の間に存在する。しかし、追加の矢印（図示せず）がウェブサービスのアイコン５１５とノード３２８の間で延長する。ウェブサービスのノード５１２は、二股分岐の基部にあり、宛先ノード３２８および３３０の横にはないため、ウェブサービス５１２への呼び出しに関連付けられたデータの１つのセットが存在する。
【００９７】
例えば、取引サービス３２０のノードは、複数のマシンにわたって実行する取引サービスのサブシステムの複数のインスタンスの概要を表すことを想起されたい。ウェブサービス５１０は、取引サービス３２０のサブシステムが実行する１以上のコンピューティングデバイス／マシンに関連付けられており、ウェブサービス５１２は、報告サービス３２４のサブシステムが実行する１以上のコンピューティングデバイス／マシンに関連付けられている。ウェブサービス５１０および５１２のメトリックまたは警告のアイコンは、１つのコンピューティングデバイスから次のコンピューティングデバイスへ行われるメソッド呼び出しの性能または正常性を表す。
【００９８】
１つのアプローチでは、警告は、応答時間などの時間メトリックに関連している。警告は、正常状態が第１レベルＬ１未満の応答時間に対して示されるように設定可能で、注意状態がＬ１から第２レベルＬ２の間の応答時間に対して示され、危険状態がＬ２よりも大きい応答時間に対して示される。警告は、性能メトリックのどんな種類に基づいても設定可能である。例えば、計測は多くの種類の性能メトリックを生成することができ、それらには、コンポーネントの平均実行時間または応答時間、毎秒または間隔ごとの呼び出し率、呼び出し回数、開始したが終了していない間隔ごとの呼び出しの回数を示す同時実行のメトリック、および呼び出しを開始した間隔ごとのメソッド呼び出しの回数が特定の閾値を超えた呼び出し回数を示すストール状態のメトリックが含まれる。これらは、アプリケーション実行時間において取得され、エージェントによって報告された、コンポーネントデータの例である。警告は、どんな種類のアイテムにも提供可能である。
【００９９】
また、サブシステムをサポートするコンピューティングマシン上で使用されるリソースに対して、計測は、例えば、ガーベジコレクションのヒープサイズ、ファイルやソケットのアクティビティを示すバンド幅メトリック、スレッドの数、システムログ、例外処理、メモリリークおよびコンポーネントの相互作用を特定するようなデータを生成する。警告は、またどんな種類のアイテムにも提供可能である。
【０１００】
さらに、警告は、特定のパラメータを有するＵＲＬのような業務トランザクションコンポーネントための１以上の性能メトリックに基づいて設定可能である。例えば、警告は、特定の時間を超えた業務トランザクションコンポーネントの平均応答時間を表す。
【０１０１】
後述するように、警告およびメトリックアイコンに基づいて、ユーザは、ＵＩに示された、業務トランザクション、サブシステムおよび呼び出し、に関するさらなる情報を取得するために様々な手段を得ることができる。１つのアプローチでは、ユーザは、警告およびメトリックアイコンの存在によって案内され、関連付けられた、業務トランザクション、サブシステムおよび呼び出しに関するさらなる情報を、例えば問題を診断するために取得しようとする。また、後述するように、他の種類の情報が、診断を支援するためにＵＩに表示される。一般的に、本明細書で提供される様々なＵＩが１以上のウィンドウで提供され、情報にアクセスするための、ポップアップウィンドウ、マウスオーバーもしくはホバーボックス、ツールチップならびに右クリックのような既知のＵＩの技術をＵＩが使用する。
【０１０２】
特定の業務トランザクションおよびそのサブシステムについて、ＵＩは、発注３１０、およびオプション取引３１２の両方が、フロントエンドのサブシステム、即ち取引サービス３２０を呼び出すことを示している。ある設定例では、例えば、株や債権の売買をするため、発注される注文を決めることにより、ユーザは発注３１０を開始する。すべての、ユーザ入力ならびにユーザに与えられる情報もしくは指示が、ウェブページまたは他のＵＩを介して提供される。または、プットオプションやコールオプションのようなオプションに関係する取引を決めることによって、ユーザはオプション取引３１２を開始する。いずれの場合も取引サービスが使用される。取引サービスは、例えば、注文／取引を処理するために付加的な情報を取得するシステムｃａＳＡＰホスト３２１を呼び出す。システムｃａＳＡＰホスト３２１は、計測されていないことからそれについてはあまり知られておらず、そのノードは単なるプレースホルダである。取引サービスのインスタンスにより呼び出されるコンピューティングデバイス３２１のポートが知られており（例えば、ポート３４５６）、この情報がノード３２１を修飾するために使用される。システムｃａＳＡＰホスト３２１は、別のホストまたはリソース（図示せず）を呼び出し得るが、これは図示されていない。
【０１０３】
コンピュータネットワークでは、ポートは、通信のエンドポイントとして貢献するアプリケーション固有またはプロセス固有のソフトウェアの構成である。例えば、トランスミッションコントロールプロトコル（ＴＣＰ）およびユーザデータグラムプロトコル（ＵＤＰ）のようなインターネットプロトコルスイートのトランスポート層のプロトコルによって使用される。特定のポートは、一般にポート番号として知られている番号、関連付けられたＩＰアドレス、および通信に使用されるプロトコルによって識別される。ＴＣＰおよびＵＤＰは、パケットのヘッダ内の送信元と宛先のポート番号を特定する。プロセスは、バインディングとして知られるプロセスで、ネットワークを介してデータを送受信するため、その入出力チャンネルのファイル記述子（ソケット）をポート番号およびＩＰアドレスと関連付ける。オペレーティングシステムのネットワーキングソフトウェアは、すべてのアプリケーションのポートからネットワークへの出て行くデータを送信するとともにパケットのＩＰアドレスとポート番号を一致させることによって到着するネットワークパケットをプロセスに転送する、タスクを有する。
【０１０４】
プロセスは、ソケットを用いて転送プロトコルのポートとの関連付けを作成する。ソケットは、転送のエンドポイントとして使用されるソフトウェア構造である。プロセスのためにオペレーティングシステムによって作成され、ポート番号とＩＰアドレスの組み合わせで構成されたソケットのアドレスに結び付けられている。ソケットは、一度に一方向に（半二重）または同時に双方向に（全二重）データを送受信するために設定される。
【０１０５】
取引サービス３２０は、注文／取引をリクエストするために、１以上のウェブサービス（ウェブサービスのノード５１０に集約されている）を使用する。ウェブサービス５１０は、ユーザの資格情報を検証するために、（ａ）注文／取引を処理する注文エンジンサブシステム３２６、および／または、（ｂ）注文／取引を認証する認証エンジンサブシステム３２８、を順々に呼び出す。マップは、ほぼ同じ時間にまたは異なる時間（例えば、注文レコードＳＱＬデータベースへの呼び出しが行われた後）に、同じ業務トランザクションの一部または異なる業務トランザクションの一部（結局、取引サービスに関連付けられた２つの業務トランザクションが存在する）等として、これらの他サブシステムの両方を取引サービスが呼び出すことを必ずしも示すわけではない。他サブシステムは、同じ業務トランザクションの一部として呼び出されることも可能であるが、それは異なるインスタンス間である。マップは、特定された期間のあるポイントで、取引サービスがウェブサービス５１０を用いてこれらのフロントエンドの両方を呼び出したことを伝えている。
【０１０６】
ウェブサービス５１０からの１以上の呼び出しを処理するために、注文エンジンサブシステム３２６は、２つのバックエンド、即ちＳＱＬ文を使用して注文レコードを格納する注文レコードＳＱＬデータベース３３２とシステムｃａＤＢホスト３３４を呼び出す。システムｃａＤＢホスト３３４は、例えば、ＪＤＢＣドライバの一部としてマークされていない管理ハンドシェイクまたはその他のタスクのために使用される。認証エンジンサブシステム３２８は、例えば、ユーザ／顧客が注文／取引を行うことについて認証されていることを確認するため、顧客レコードを格納する顧客レコードＳＱＬデータベース３３６を呼び出す。
【０１０７】
ログイン３０４の業務トランザクションは、フロントエンドのサブシステム、即ち認証サービス３２２を含む。設定例では、前述したように、ログインは、認証サービスサブシステム３２２においてコンポーネントＣＭ１からＣＭ４ａを呼び出し、認証エンジンサブシステム３２８においてＣＭ７からＣＭ１０を呼び出す。
【０１０８】
矢印５１３によって示されるように、認証サービスサブシステム３２２よりも同じサーバまたは異なるサーバになる認証エンジンサブシステム３２８において、ＣＭ４ａはＣＭ７を呼び出す。ＣＭ７はＣＭ８を呼び出し、ＣＭ８は、ユーザのログインがパスワードと一致することを確認するための顧客レコードにアクセスするために顧客レコードＳＱＬデータベース３３６を呼び出す。これが成功すると仮定すれば、制御フローはＣＭ７に戻り、ＣＭ７がＣＭ９を呼び出す。ＣＭ９は、アカウントを維持するため、例えば、ユーザが料金を支払ったり最低限度の取引を行ったりするなどして、ユーザのアカウントが有効であることを確認するために顧客レコードに再びアクセスして、顧客レコードＳＱＬデータベース３３６（または別のデータベース）を呼び出す。これが成功すると仮定すれば、制御フローはＣＭ７に戻り、ＣＭ７はＣＭ１０を呼び出す。ＣＭ１０は、ユーザが現在ログインしていることを示すため、レコードを更新するために顧客レコードに再びアクセスして顧客レコードＳＱＬデータベース３３６（または別のデータベース）を呼び出し、login status=trueをＣＭ７に返す。制御フローは、次にＣＭ２に戻り、ＣＭ２はＣＭ４ｂを呼び出してＣＭ４ｂがＣＭ５を順々に呼び出す。制御フローは、次にＣＭ４ｂに戻り、その次にＣＭ２に戻って最後にログイン業務トランザクションのインスタンスが終了するポイントであるＣＭ１に戻る。
【０１０９】
残高３０６および取引概要３０８の両方が、共通のフロントエンドのサブシステム、即ち報告サービス３２４を呼び出す。設定例では、ユーザは、例えば、特定のアカウントでの資金量を知るために口座残高を取得するリクエストを行うことによって、残高を開始する。また、ユーザは、例えば注文／残高、送金などの最近のトランザクションの報告（例えばステートメント）を取得するためにリクエストを行うことによって取引概要３０８を開始する。いずれの場合も、報告サービス３２４はウェブサービス５１２を呼び出すことによって報告のリクエストを処理し、同様に、ウェブサービス５１２は認証エンジンサブシステム３２８を呼び出して、認証エンジンサブシステム３２８は、ユーザ／顧客が報告を取得することを承認されていることを確認するために顧客レコードにアクセスするため、顧客レコードＳＱＬデータベース３３６を呼び出す。
【０１１０】
一実施形態では、制御フローは報告サービス３２４に戻り、報告サービス３２４はウェブサービス５１２を介して報告エンジンサブシステム３３０への別の呼び出しをして、報告エンジンサブシステム３３０は報告を提供するために使用されるレコードを取得するため、報告レコードＳＱＬデータベース３３８を呼び出すことによって報告のリクエストを遂行する。ウェブサービス５１２へのこの呼び出しには、必要とされる報告の種類、アカウントの識別子、関連する時間フレームなどを特定する情報を含む。
【０１１１】
図４Ｂ１から図４Ｂ３に関連して説明したように計算された時間メトリックは、対応するノードの上に表されるようにＵＩ５０５に表示される。つまり、ＵＩおよびそのノードと矢印は、メトリックによって修飾されている。合計時間幅、正味の時間幅および／または待機時間が表示される。ここで、ログインの合計時間幅（１３００ミリ秒またはミリ秒）がログインのノード３０４の上に、６００ミリ秒の正味の時間幅が認証サービスのノード３２２の上に、認証エンジン３２８への呼び出しのためサブシステム相互の通信時間（１００ミリ秒）が矢印５１３の上に表示され、時間幅３００ミリ秒が認証エンジンのノード３２８の上に表示され、顧客レコードＳＱＬに割り当てられる３００ミリ秒の待機時間が矢印６１３の上に表示される。ノードと矢印はこのようにメトリックで修飾されている。これらのメトリックは、ログインのような業務トランザクションの単一のインスタンスに対するものであるか、またはより一般的には、特定の時間間隔に亘る業務トランザクションの複数のインスタンスの平均である。
【０１１２】
ログインのノード３０４に対して表示されている危険レベルの警告は、例えば１０００ミリ秒のような閾値レベルを超える１３００ミリ秒の時間に基づくものである。認証サービスのノード３２２に対して表示されている危険レベルの警告は、例えば３００ミリ秒のような閾値レベルを超える６００ミリ秒の時間に基づくものである。矢印５１３に対して表示されている危険レベルの警告は、例えば５０ミリ秒のような閾値レベルを超える１００ミリ秒の時間に基づくものである。認証エンジンのノード３２８に対して表示される正常レベルの警告は、例えば５００ミリ秒のような閾値レベルを超えない３００ミリ秒の時間に基づくものである。矢印６１３の先端（例えば、バックエンド呼び出しの終点）の半分が暗色に着色された円が、関連したメトリックが使用可能であって警告が定義されていないことを示している。
【０１１３】
一般的に、ＵＩ５１０には、様々な業務トランザクション、サブシステムおよび呼び出しに対する時間メトリックが付加される。時間メトリックは、ログイン業務トランザクション３０４に対して単純に示されているにすぎないが、実際には、すべての業務トランザクションに対して同時に表示可能である。複数の時間メトリックが異なる業務トランザクション（例として、発注３１０およびオプション取引３１２によって呼び出される取引サービス３２０）によって呼び出されるサブシステムと関連付けられている場合、各時間メトリックは、色分けまたは他の可視化技術によって業務トランザクションの１つに関連付けられる。例えば、発注と関係付けられた時間メトリックは、取引サービスのノード３２０の上にある一色で表示され、一方、オプション取引に関連付けられた別の時間メトリックは、取引サービスのノード３２０の上に別の色で表示される。
【０１１４】
時計のアイコン５１１は、ログイン業務トランザクションのすべてサブシステムの間において、最長の正味の時間幅（または合計時間幅、または待機時間）を有するサブシステムに提供される。２つの正味の時間幅が許容範囲内で同じの場合、高いレベルのサブシステムがアイコンを受け、アイコンは両方のサブシステムで表示される。またはアイコンは表示される必要はない。
【０１１５】
このようにして、ユーザは、与えられたサブシステムに問題があることを迅速に確認でき、そのサブシステムに関する診断に重点的に取り組むことができる。問題のある複数のサブシステムもまた特定される。また、警告の重大度はユーザに指針を与える。例えば、通常レベルの警告が認証エンジンサブシステムに表示され、危険レベルの警告が認証サービスサブシステムに表示される場合、ユーザは、最初に認証サービスサブシステムを調査するように導かれる。様々な技術が提供され、それによってユーザはサブシステムとそれが呼び出すコンポーネントに関する付加的な詳細を取得可能となる。
【０１１６】
ＵＩ上で提供されているメトリックは、特定の時間間隔で、管理されたアプリケーションからのデータに基づいている。１つのアプローチでは、ＵＩは、最初はメトリックなしで表示され、例えば、ユーザに規定されたフィルタ基準と一致するトランザクションを見つけることによってメトリックを取得するためのコマンドをユーザが入力する。ユーザは、手動で基準を規定でき、または１以上の基準のデフォルトセットが使用される。そして、ＵＩには、基準と一致するトランザクションによるメトリックが付加される。別のアプローチでは、ＵＩは、フィルタ基準のデフォルトセットに基づいてキャプチャされたメトリックを最初に表示する。
【０１１７】
図５Ｂ１は、ログイン業務トランザクション３０４のためのメトリックを示すホバーボックスを付加した図５Ａのユーザインタフェースを示す。ＵＩ５２０において、ユーザは、関連した性能メトリックを表示するため、業務トランザクション、サブシステムもしくはウェブサービスの呼び出しのノードの上または矢印の上にカーソル（角度のある矢印で表される）を指すように、例えばマウスのようなポインティングデバイスを使用する。一般的に、ユーザは、後述するように、ＵＩの補助領域に関連情報を表示させるため、選択を入力するためにノードを指してクリックする。エレメントを指すと、通常、上に重なるツールチップが出現し、エレメントをクリックすると（例えば選択すると）、通常、ＵＩの別の部分に関連した情報を表示する。ノードは、例えば、業務トランザクションの全体または業務トランザクションのサブシステムに関連付けられている。特定の性能メトリックおよびその形式は設定することができる。ここで、カーソルがログインのノードをしばらく指したままでいると、ホバーボックス５２２が出現する。そして、ユーザは、選択された業務トランザクションと関連付けられたメトリックを表示するためにコマンドを提供する。
【０１１８】
ホバーボックスは、警告レベルおよび関連した時間間隔の性能メトリックと同様に、業務トランザクション（ログイン）の名称を特定する。警告レベルは危険な状態を示す。次に、１３００ミリ秒の平均応答時間（合計時間幅）が表示される。この設定では、一例として、ログインの応答時間は、ログインの４つのインスタンスの平均である。「カウント」は、分析対象の時間間隔である最新の時間間隔でのログインのインスタンスまたは呼び出しの回数を示す。ここで、カウント＝４は、４つの呼び出しを示す。「最小」は、最小応答時間、例えば１１００ミリ秒を示し、「最大」は、最大応答時間、例えば１５００ミリ秒を示す。「間隔ごとのエラー数」は、最新の時間間隔におけるログインでのエラーの数を特定する。「間隔ごとの応答数」は、４つの応答のようにログインに関連付けられた応答の数を特定する。「ストールカウント」は、ゼロストールのように最新の時間間隔におけるログインでのストール数を特定する。ホバーボックスは、選択された業務トランザクションを報告する、すべてのコンピューティングデバイス／エージェントに亘る概要性能データを提供する。
【０１１９】
図５Ｂ２は、認証サービスサブシステム３２２のためのメトリックを示すホバーボックスを付加した図５Ａのユーザインタフェースを示す。ＵＩ５２５において、例えば、ノード３０４を経由した業務トランザクションのためにホバーボックスを提供することに加え、メトリックを有するホバーボックスがログインの任意のサブシステムのために同様に提供される。例えば、認証サービスサブシステム３２２のためのホバーボックス５２３は、サブシステムに特有のメトリック、例えば、警告レベル、平均応答時間、同時呼び出しの回数、間隔ごとのエラー、間隔ごとの応答およびストールカウントを示す。
【０１２０】
したがって、与えられたサブシステムに対して、ユーザは、関連付けられた性能メトリックの表示を起動する。これは、サブシステムを通過するすべてのトランザクションに亘るもので、そのため一般的な正常性または全体のパフォーマンスを表す。
【０１２１】
さらなる例として、ウェブサービス３４２ためのホバーボックスが、取引サービス３２０によって行われた呼び出しに特有の類似したメトリック、例えば、警告レベル、平均応答時間、間隔ごとのエラー、ストールカウントを示す。
【０１２２】
また、ユーザは、エージェントおよびエージェントごとのデータを報告する一覧表の表示を起動させる。エージェントごとのデータとともに、依存関係マップは、例えば、特定の業務トランザクションを報告するすべてのコンピューティングデバイス／エージェントに亘る全体の正常性データのような概要性能データを表示する。現在値がホバーボックスで表示されて、時間的傾向も、例えば、下方のタブに、トランザクションの一覧表、詳細およびトレース表示のラベルが付けられ、補助領域において使用可能である。最終的に、同じ種類の概要データもまた、ホバーボックスのスナップショットと時間的傾向の両者に対して特定されたサブシステム（フロントエンドとそれらのバックエンドの呼び出し）のためにも使用可能である。
【０１２３】
ツールチップのデータ（および図５Ｈに示されるデータチャート）は、すべてのエージェントにおいて関連したすべてのトランザクションに亘って要約されるので、「一般的な正常性」または「全体的な性能」に対応する。寄与エージェントおよびバイエージェントの性能メトリックを一覧表にする場合（図５Ｇにあるように）、表にされたエージェント（例えば、特定のＪＶＭで実行される）によって報告された関連したすべてのトランザクションに亘って要約する。これをサブシステムの単一の「ロケーション」と称し、場所の正常性メトリックについて説明する。
【０１２４】
図５Ｃは、ログインためのオプションを示すコンテキストメニュー５３２を付加した図５Ａのユーザインタフェースを示す。一般的に、ノード３０４のような業務トランザクションのノードは、ポインティングデバイスを介して入力されるコマンドのようなノードに関連付けられたユーザコマンドを提供するために使用される。ユーザは、ノードに特有のオプションの一覧表をＵＩ５３０に表示させるため、ノードを指してマウスを右クリックする。そして、１つの可能なアプローチとして、カーソルでオプションを指定して左クリックすることによってオプションが選択される。
【０１２５】
例えば、コンテキストメニュー５３２は、ログイン３０４に関する付加的な情報を取得するため、ユーザが４つのオプションから選択することを許容する。第１のオプションは、図５Ｄのインタフェースとなるログインのマップを表示することである。第２のオプションは、図５Ｅ１のインタフェースとなる一致するトランザクションを検索することである。第３のオプションは、図５Ｇのインタフェースとなるログインのためのロケーション（例えば、寄与エージェントおよびそれらと関連付けられた正常性メトリックのデータ）を検索することである。第４のオプションは、図５Ｈのインタフェースとなるログインのための正常性メトリックを表示することである。例えば、正常性メトリック、性能メトリックのセットは、ログインの全体的な正常性を示す。
【０１２６】
図５Ｄは、図５ＣのＵＩのコンテキストメニュー５３２から起動されるログイン業務トランザクションのマップのユーザインタフェースを示す。「ログインのマップを表示する」が選択される場合、領域５０４のツリーは、ログインが選択されたことを示すために自動的に更新され（例えば下線により）、ＵＩ５４０は、この選択された業務トランザクションについての詳細を提供する。あるいは、ユーザは、コンテキストメニュー５３２を使用する代わりに、ツリーにおいて、対応するノードを選択することによって領域５０４からログインを選択することができる。また、ユーザは、矢印のカーソル（図示された）を使用することによってログインのノード３０４でダブルクリックする。ノード３０４でシングルクリックすることにより、ノードを選択して、補助表示領域または下部の表示枠５６２（後述）を出現させることができる。
【０１２７】
ここで、ユーザの選択によりＵＩは、ログイン３０４を表すノード３０４ならびに関連したサブシステムのノード３２２、３２８および３３６を太実線枠で強調表示する。また、ノードの枠を変更することで強調表示することは１つのオプションで、色の使用や影および／または他の視覚的効果も可能である。ログインに関連付けられた矢印もまた、例えば、線幅を増やすなど他の可視化技術によって強調表示される。この強調表示によって、ユーザは、サブシステム間の依存関係の呼び出しと同様に、ユーザが選択した業務トランザクションに関与するサブシステムを容易に識別して集中することができる。ユーザが選択した業務トランザクションに関与していないサブシステムのノードは、強調表示されることなく、例えば、破線や点線の枠により重視されない。強調表示は、１つのノードまたは矢印を別のノードまたは矢印から視覚的に区別する１つの方法である。
【０１２８】
図５Ｅ１は、図５ＣのＵＩのコンテキストメニュー５３２から起動されるログイン業務トランザクションに一致するトランザクションを検索するユーザインタフェースを示す。ＵＩ５５０において、ウィンドウ５６４が表示され、例えばログインのような現在選択されている業務トランザクションのために一致するトランザクションのインスタンスをユーザが検索することを許容する。ウィンドウは、トランザクションのマッピングモードにおいて、将来のある期間にアプリケーションの計測からデータを取得するのに使用される１以上のフィルタ基準でユーザがコマンド入力することを許容する。例えば、ログインが異常に長いログイン時間を要する場合のようなクライアントのコンピューティングデバイスのユーザがアプリケーションにログインの問題を抱えている状況を考える。ユーザは、ヘルプセンターの担当者に電話して問題を説明する。ヘルプセンターの担当者は、トランザクションからのメトリックの新しい記録を開始する一方、問題が起きた同じ手順をユーザに繰り返すように指示するなどして問題を診断する措置をとる。これは、ヘルプセンターの担当者が、問題がそのユーザにいつも起きるといった特定のユーザに固有のものであるか、またはログインを試みるすべてまたは大半で起きるといった一般的なものであるか、を判断するのに役立つ。問題がユーザに固有のものである場合、追加の一致するトランザクションがそのユーザに対してだけ設置される。ウィンドウ５６４は、フィルタ基準としてクライアントのコンピューティングデバイスのユーザを識別するフィールド（ユーザＩＤ）を含む。問題が一般的であるかまたは限定的であるかを決定することは、問題の発生源を区分けするのに有用である。
【０１２９】
ヘルプセンターの担当者は、例えば、次の数秒または数分のようなその後の監視期間におけるデータの記録を構成することによって追加のデータを取得することができる。ヘルプセンターの担当者は、ミリ秒またはそれ以上の特定の時間である、トランザクションに対する閾値の時間幅を入力する。これは、閾値を超えたその後のログイン業務トランザクション（例えばＣＭ１を呼び出すトランザクション）について、コンポーネントデータだけがＵＩを介してキャプチャされて表示されることを意味する。場合によっては、１つのアプローチでは、業務トランザクションは、最初のスレッドがキャプチャされて表示されるケースでは、複数のスレッドを含む。構成に応じて、すべてのスレッドをキャプチャし得るが、通常、最初のスレッドの最初のコンポーネントによってトレースを一覧表にしたり／ラベルを付けしたりする。
【０１３０】
さらに、ヘルプセンターの担当者は、（ａ）特定の秒数、および（ｂ）一致するトランザクション（例えば、一致するインスタンスまたはトレース）の特定の数が検出された後よりも早い時期の後に終了する期間を設定する。例として、ヘルプセンターの担当者は、１０００ミリ秒の閾値に設定し、１８０秒（３分）後、または一致するトランザクションが１０になった後、のいずれか早く到来する方で停止する。ヘルプセンターの担当者は、その監視期間を開始するために「ＯＫ」ボタンを選択するか、または新しい監視期間を開始することなくウィンドウを閉じるために「閉じる」ボタンを選択する。
【０１３１】
ウィンドウ５６４は、エージェントもしくはホスト識別子、または他の要因によってフィルタリングするのと同様に、最小値および最大値のトランザクションの時間幅を含む任意のフィルタ基準を設定するために使用される。
【０１３２】
一致するトランザクションについての情報は、補助領域５６２に示されている。補助領域５６２は、合計時間幅、または各トランザクションのインスタンスの、報告エージェント識別子の、エージェントが実行するホストの識別子の、およびトランザクションの開始時刻のタイムスタンプの、その他の時間メトリックを一覧表にするテーブルを提供する。時刻は、時間、分および秒で載せられている。秒の小数点以下の桁も提供されている。補助領域５６２は、トランザクションのインスタンスに関連付けられた性能メトリックの任意の型を提供する。
【０１３３】
例えば、１５秒ごとに収集するメトリックは、このトランザクショントレースのデータと異なる。トランザクショントレースは、一致するトランザクションを記録すること、および呼び出しシーケンスと各呼び出しの合計時間幅（とシーケンスの合計時間幅）を識別することに関与する。また、特定のトランザクションがエラーを報告したか否かについての情報を取得する。
【０１３４】
補助領域５６２は、例えば、ウィンドウまたはＵＩ５５０の他の部分として、または分離したディスプレィ画面に表示される。補助領域がトリアージマップの領域５０２と同時に表示されると有用である。補助領域はＵＩの任意の部分に現れる。
【０１３５】
ユーザは、補助領域５６２のテーブルエントリをソートするために、列の見出しをクリックする。別のアプローチでは、補助領域５６２は、１つの軸が時間を表し、１以上の他の軸が他のテーブルの見出し、例えば、時間幅、トランザクションＩＤ、エージェントＩＤおよびホストＩＤを表す、２以上の軸に基づいて結果を表す。棒グラフ、円グラフなどのその他の視覚的な表示も可能である。最長の時間幅のトランザクションが、例えば診断などのために迅速に識別される。
【０１３６】
ここでは、４つのトランザクションが設置されており、２つはホストＡにおけるエージェントＡからで、また２つはホストＢにおけるエージェントＢからである。エージェントＡにおけるトランザクションの応答時間（合計時間幅）は、平均１１５０ミリ秒の、１１００ミリ秒と１２００ミリ秒である。エージェントＢにおけるトランザクションの応答時間（合計時間幅）は、平均１４５０ミリ秒の、１５００ミリ秒と１４００ミリ秒である。４つのトランザクションの平均応答時間は、従って１３００ミリ秒である。ユーザは、補助領域５６２に現在表示されている同じ型のトランザクションのインスタンスをもっと取得するため、「さらに検索」ボタンを選択することができる。１つのアプローチでは、この検索は、ユーザが基準を再入力することを要求されないように、ウィンドウ５６４によって設定された同じフィルタ基準を自動的に使用する。つまり、「さらに検索」コマンドは、以前と同じ基準を使用してトランザクショントレースのセッションを繰り返す。または、ユーザは新しい基準で再び検索可能である。いずれの場合も補助領域５６２は、以前の結果の代わりにまたは加えて、新しい結果で更新する。
【０１３７】
補助領域５６２は、付加的な一致するトランザクションが識別されると、リアルタイムで更新される。さらに、領域５６６は、完了以前に検索の進行状況をユーザに知らせる。ここで、ユーザは、時間幅における１０００ミリ秒を超える４つのトランザクションが今のところトレースされ／割り当てられ、検索における残り時間は５３秒であることを知らされる。領域５６６のボタンは、ユーザが現在の検索を停止または再開することを許容する。付加的なトランザクションが割り当てられているので、補助領域５６２の相対的な大きさは、あるポイントまで拡張される。すべての結果を同時に表示するには画面上に十分なスペースがない場合、スクロール機構は、ユーザが付加的なトランザクションを見ることを許容する。あるアプローチでは、結果は、テーブルのエントリや行として表示される。「クリア」ボタンは、一覧表から古いトランザクションのインスタンスのすべて、つまり以前の記録のセッションからのすべてのトレースをユーザが削除することを許容する。エントリの隣のチェックボックスを選択し、次に「削除」ボタンを選択することにより、個々のエントリはユーザによって削除される。
【０１３８】
記録のセッションが終了し、補助領域５６２において選択されたトランザクションがない場合、ログインのノードの近くに配置されたタイミングデータは、メトリックの現在のセットを反映するために更新される。例えば、ログインの平均時間幅（１３００ミリ秒）が表示される。関連付けられたサブシステムのノード３２２、３２８および３３６の平均合計時間幅およびサブシステム相互の通信時間もまた表示される。ユーザが、補助領域５６２における１以上のトランザクションをチェックボックスで選択し、その後で「マップで表示」ボタンを選択する場合には、トリアージマップの領域５０２が対応するメトリックで更新される。例えば、最初の２つのエントリが選択される場合、１１５０ミリ秒の時間幅が、ログインのノード３０４に提供され、応答するメトリックが他のノードに任意に提供される。
【０１３９】
いくつかのトランザクションに対しては、すべてよりも少ない業務トランザクションが呼び出されることが可能であることに注意されたい。ユーザが「マップで表示」に続いて補助領域５６２からそのトランザクションのインスタンスを選択する場合、これは、トリアージマップの領域５０２の他のサブシステムではなく、呼び出されたサブシステムだけを強調表示することによって反映される。例えば、図５Ｆに示すように、トランザクションのインスタンスの１つは、認証エンジンまたは顧客レコードＳＱＬではなく、認証サービスを呼び出す。その場合、ノード３０４および３２２は強調表示されるが、ノード３２８および３３６、または矢印５１３および６１３は強調表示されない。
【０１４０】
図５Ｅ２は、選択された業務トランザクションのコンテキストにおける認証サービスサブシステムに一致するトランザクションを検索するユーザインタフェースを示す。業務トランザクションに関係付けられているトランザクショントレースを検索することに代わるものとして、選択された業務トランザクションのコンテキストにおける、ユーザが選択した１以上のサブシステムに関連付けられたトランザクションのトレースを検索することが可能である。この例では、ユーザがＵＩ５５５における認証サービスサブシステムのために領域５０４のフロントエンドの表示を選択する。フロントエンドの表示は、フロントエンドサブシステムから発しているすべてのトランザクションを表す。この選択により、選択されたサブシステムに関係付けられていない領域５０２におけるノードは削除される。必要に応じて、関係付けられた業務トランザクション３０４および３１２のノードは残る。さらに、認証サービスサブシステムに従属する１以上の付加的なサブシステムが表示される。例えば、別の不明のコンポーネント（ソケット）３２３が示される。認証サービスは、取引業務サービスの一部であると定義されるどんな業務トランザクションも含まないバックアップシステムを時々呼び出す。この場合、そのバックアップシステムは、フロントエンド表示に現れるが、取引業務サービスのマップには現れない。
【０１４１】
ここで、ユーザは、コンテキストメニュー（図５Ｃにおけるコンテキストメニュー５３２のような）を呼び出すためにアイコンを指すことによってアイコン３２２を選択し、一致するトランザクションを検索するために「一致するトランザクションを検索する」を選択し、その結果、ウィンドウ５６５が表示される。この例では、ログイン業務トランザクションでのみ認証サービスを呼び出す、一致するトランザクションであると考えられるログイン業務トランザクションが選択されている。閾値は、サブシステムの合計時間幅と比較して実行される。閾値は、再びこの例では、１０００ミリ秒と設定されている。このように、フロントエンドに関係なく特定の業務トランザクションのためのトランザクションを検索する以前の例と同様に、フロントエンドと業務トランザクションのためにフィルタと合致するトランザクションのインスタンスを検索する。換言すると、最初のサブシステムが認証サービスである、ログインのすべての業務トランザクションを探す。この場合、ログインのインスタンスに戻るが、認証サービスを使用した認証を必要とする他の業務トランザクションからのスタンドアロンのスレッドには戻らない。例えば、認証サービスも呼び出すオプション取引のトランザクションに戻らない。補助領域５６２は、３つのトランザクションが今のところ一致し、それらは応答時間１１５０ミリ秒、１２５０ミリ秒および１５５０ミリ秒のエージェントＡならびにエージェントＢからのものであることを示している。
【０１４２】
上記の例では、３以上の業務トランザクションがサブシステムを呼び出す場合に拡張可能である。例えば、ユーザは、第３ではなく、第１および第２の業務トランザクションをフィルタ基準として選択する。
【０１４３】
図５Ｅ３は、複数の業務トランザクションのコンテキストにおける認証サービスサブシステムに一致するトランザクションを検索するユーザインタフェースを示す。図５Ｅ２とは対象的に、ユーザインタフェース５５６は、すべての関連付けられた業務トランザクションに亘って認証サービスのための一致するトランザクションをユーザが設定することを許容する。ここで、ログインやオプション取引のためのアイコンが選択されることなく、認証サービスのアイコン３２２が選択される場合、ウィンドウ５６７は、フィルタ基準が特定の業務トランザクションを特定しないということを示す。必要に応じて、例えば、図５Ｅ１のような業務トランザクションの表示から、ユーザは、業務トランザクションから独立し選択されたサブシステムに一致するトランザクションをリクエストすることができる（業務サービスがツリー内から選択された場合、これはデフォルトになる）。その後、図５Ｅ３にあるように、トレースを実行する前にユーザをそのサブシステムのためにフロントエンド表示にジャンプさせる。
【０１４４】
図５Ｆは、ログインのすべてよりも少ないサブシステムが選択された業務トランザクションのインスタンスによって呼び出される、ユーザインタフェース５６０を示す。時間幅のようなメトリックは、呼び出されていないサブシステムには提供されない。業務トランザクションの特定のインスタンスが、集約された業務トランザクションにおいて呼び出されるサブシステムのサブセットだけを呼び出す状況が、例えば、発生したエラーによって起こされる、またはフローに影響を与えた時間幅のいくつかのパラメータによって生じる。また、エラーの状況においては、補助領域５６２におけるトランザクションの一覧表は、例えば、異なるフォントや色を使用してエラーを含んだトランザクションを識別する。フローに影響を与える業務トランザクションのパラメータの例が表示されており、例えば、ユーザＩＤに不正な文字があるとＵＩは認証エンジンが呼び出される前にエラーを返す。
【０１４５】
図５Ｇは、図５ＣのＵＩのコンテキストメニュー５３２から起動されるログインのロケーションを有するユーザインタフェース５７０を示す。ＵＩは、ログインのインスタンスが呼び出されたロケーション、つまりエージェントおよびコンピューティングデバイス（コンピューティングマシン）が特定の期間内にログインの１以上のインスタンスを報告したロケーションを表示する。この選択に応答して、コンテキストメニュー５３２の中で、「ログインのロケーションを示す」を選択することによって、補助領域５６２が提供される。コンテキストメニュー５３２は、ユーザが補助領域５６２にリンクすることを許容する。ロケーションは、ソフトウェアの計測からメトリックを取得する関連付けられたエージェントと同様に、ログインのソフトウェアが実行するホストコンピューティングデバイスを一覧表にすることによって識別される。現在の時間間隔のためのメトリック、例えば、応答時間（Ｒ／Ｔ）（合計時間幅）、ログインの同時呼び出しの回数、エラーの回数、応答回数およびストールの回数など、もまた提供される。エージェントおよびホストのロケーションには、メトリックにインデックスが付けられている。
【０１４６】
この例では、２つのエージェント／コンピューティングデバイスは、それぞれログインの２つのインスタンスを報告し、ログインするためのロケーションを報告する。具体的には、ホストＡにおけるエージェントＡは２つのログイントランザクションのインスタンスを検出し、平均応答時間または時間幅は１１５０ミリ秒（例えば、１１００ミリ秒のあるインスタンスと１２００ミリ秒の別のインスタンスとの平均）である。ホストＢにおけるエージェントＢは２つの他のログイントランザクションのインスタンスを検出し、平均応答時間または時間幅は１４５０ミリ秒（例えば、１４００ミリ秒のあるインスタンスと１５００ミリ秒の別のインスタンスとの平均）である。必要に応じて、補助領域５６２は、各エージェント／ホストのインスタンスを集約する代わりに、ログインの各インスタンスに対するエントリを表示する。ホストは、テキスト名称またはインターネットプロトコル（ＩＰ）アドレスや他のネットワークアドレスによって識別される。これら両方のホストは、ログイントランザクションのトリガ要求を記録したコンピューティングデバイスを表し、したがって両方が認証サービスに関連付けられている。しかし、これらの番号は、業務トランザクションを定義する特定の業務トランザクションコンポーネントのためのメトリック、即ち認証サービスのフロントエンドのために測定された合計のアクティビティのサブセットを表す。
【０１４７】
ログインを実装するためのソフトウェアは、１つだけのコンピューティングデバイスにインストールされることが可能である。または、ログインを実装するためのソフトウェアは、複数のコンピューティングデバイスにインストールされるが、そのうちの１つだけが、情報が報告される特定の期間内にログインを呼び出す。この情報は、補助領域５６２において明らかにされる。報告されたメトリックは、１つの実装において、ＵＩを提供するセントラルマネージャについてのエージェントによって提供される。
【０１４８】
図５Ｈは、図５ＣのＵＩのコンテキストメニュー５３２から起動されるログインの正常性メトリックのユーザインタフェース５８０を示す。領域５０４では、ツリーは、正常性メトリックが使用可能であるコンポーネントを識別するために拡張されている。ここで業務トランザクションおよび他のサブシステムに示されるメトリックのグラフは、すべてのエージェント上のすべてのトランザクションのインスタンスにわたって要約されている。１つのアプローチでは、ツリーは、各業務トランザクションのための単一の子のノードを有する。そのようなそれぞれの子のノードは、１つの実装において、計測によって実際に測定される唯一のコンポーネントである関連付けられた業務トランザクションコンポーネント（ＢＴＣ）のために名前を付けられる。ツリーのＢＴＣを選択するとグラフが表示される。
【０１４９】
正常性メトリックは、平均応答時間、間隔ごとの応答、同時呼び出し、間隔ごとのエラーおよびストールカウントなどのメトリックを提供する、グラフ、テーブルまたは他の視覚的表現も含む。ＵＩ５５０は、例えば、ＵＩ５３０上で新しいウィンドウやポップアップウィンドウとして、または分離したディスプレィ画面で、起動される。
【０１５０】
ツリーのノードは、各オプションを表示するために拡張され、またはオプションを非表示にするために折り畳まれる。「業務サービスによるもの」および「フロントエンドによるもの」は、マップのツリーの異なる部分（異なるサブツリー）で、アプリケーションを介してトランザクションをグループ分けしたりマッピングしたりするのに使用される異なるオブジェクト（業務トランザクションおよびフロントエンド）を表している。つまり、トランザクションは、特定の業務トランザクションに一致するものとして分類されるか、またはサブシステムのフロントエンド（または両方）のように特定のサブシステムを有するものとして分類される。業務トランザクションとその従属物（例えば、業務トランザクションに一致するトランザクションによって呼び出されるすべてのサブシステム）、またはフロントエンドとその従属物（例えば、そのフロントエンドから発しているトランザクションによって呼び出されるすべてのサブシステム）をマッピングする。
【０１５１】
ツリー領域５０４の「業務サービスによるもの」または「フロントエンドによるもの」を選択すると、第１のケースにおいては特定の業務サービスまたは業務トランザクションを検索する検索ユーティリティを提供し、また第２のケースにおいてはフロントエンドまたはバックエンドの呼び出しを提供する。ツリーで業務サービスまたは業務トランザクションを選択することは、アプリケーショントリアージマップの「業務表示」、つまり業務サービスのすべての業務トランザクションのマップが表示される（業務トランザクションが選択されている場合にはそれらのいずれかが強調表示される）。ツリーにおいてフロントエンドを選択することは、アプリケーショントリアージマップの「フロントエンド表示」、つまりそのフロントエンドのマップとその従属物を表示する。業務トランザクションのまたはフロントエンドのレベルの下位のものをどれか選択することは、選択された項目またはその子のノードについてのメトリックの情報を生成する。
【０１５２】
性能メトリックは、業務トランザクション（実際には、業務トランザクションコンポーネント）のために、またはフロントエンドの全体的な正常性やその様々なバックエンドの呼び出しのために、収集される。ツリーにおける業務サービスのノードは、関連付けられた業務トランザクションをグループ分けするためのフォルダ（それらをすべてまとめてマッピングする）で、業務トランザクションのノードは、業務トランザクションのマップを示し、フロントエンドのノードは、フロントエンドのマップを示し、そして他のすべてのノードは関連するパフォーマンスデータを示す。
【０１５３】
したがって、ツリー領域５０４におけるエレメント「業務サービスによるもの」は、例えば、ユーザが業務サービスおよび業務トランザクションの階層的な配置の観点からデータを見ることを許容する。
【０１５４】
ツリー領域５０４におけるエレメント「フロントエンドによるもの」は、ユーザがフロントエンドサブシステムの観点からデータを見ることを許容する。これは、「業務サービスによるもの」という表示のように同じデータを調べるための異なった方法である。例えば、ツリーのノードは、前述したものとは違ったサブシステムを含む。報告サービスのノードは、正常性メトリックにアクセス可能であることを示すために拡張されている。このノードは、平均応答時間、同時呼び出し、間隔ごとのエラー、間隔ごとの応答時間およびストールカウントなどのサブノードを提供するために拡張される。「バックエンド呼び出し」のノードは、ウェブサービスとその性能メトリックのためのサブノードを示すために拡張されている。前述したように、円が警告レベル（正常レベルための白および危険レベルのための暗色）を区別する。これは、ユーザが問題を迅速に診断することを許容している。
【０１５５】
特に、警告は、親のノードが子のノードのいずれかの最悪ケースの警告状態を示すようにツリーにおいて「バブルアップ」する。そのため、報告サービスのウェブサービスのバックエンド呼び出しは危険レベルの警告を有し、その上の「バックエンド呼び出し」のノードも危険レベルの警告を有し、そして報告サービスのノード自身もそのようになる。（「正常性」のノードはフロントエンドそのものの正常性を表し、その一方で、その上のノードは、項目のフルセット、つまりそのアプリケーションのフロントエンドおよびバックエンド呼び出し、を表す。）実際の警告の閾値は、フロントエンドの「正常性」、バックエンド呼び出し、および業務トランザクションコンポーネント、に関連付けられている個々のメトリックに対して規定されている。残りは、これらに基づく概要の警告である（最悪のケース、「バブルアップ」の警告）。
【０１５６】
図５Ｉは、ノード３２２と補助領域５６２から「詳細」タブをユーザが選択した後の図５Ｇのユーザインタフェースを示す。ＵＩ５９０で選択されたサブシステム３２２（認証サービス）に関する詳細が提供されている。ユーザがサブシステム（例えば二重の実線の枠）を選択する場合、業務トランザクションのパス（例えば単一の実線の枠）を示すためにサブシステムが強調表示されたときとは対照的に、異なる種類の強調表示が使用されることに注意されたい。
【０１５７】
例えば、領域５６２は、ログインの一部としてサブシステムで呼び出されるコンポーネントの各インスタンスを特定する。単純な例では、各コンポーネントの唯一のインスタンスが示される。実際には、各コンポーネントの複数のインスタンスが示される。例としては、ＣＭ１、ＣＭ２、ＣＭ４ａ、ＣＭ４ｂおよびＣＭ５の応答時間（合計時間幅）は、それぞれ、１３００ミリ秒、１１５０ミリ秒、８００ミリ秒、２００ミリ秒および５０ミリ秒である。ＣＭはクラスのメソッドの組であることを想起されたい。さらに、ホストＡのエージェントＡは、各コンポーネントに関連付けられており、各コンポーネントの実行開始時間が明示されている。正味の時間幅もまた付加的にまたは選択的に提供される。詳細タブが、今、アクティブで選択されているので、それがトリアージマップにおいて、認証サービスのノード３２２と関連付けられているトランザクショントレースからのメソッド呼び出しを一覧表示にする。
【０１５８】
必要に応じて、対象のサブシステムのノードだけがユーザにより選択された場合、従属的なサブシステムを呼び出す対象のサブシステムのコンポーネントは、補助領域５６２において提供されない。例えば、サブシステムのノード３２２だけが選択される場合、ＣＭ１、ＣＭ２、ＣＭ４ａおよびＣＭ５は、補助領域５６２で一覧表にされるが、ＣＭ４ａはサブシステム３２８おいてＣＭ７を呼び出すため、ＣＭ４ａは表に載らない。このアプローチにおいて、従属的なサブシステム（例えばＣＭ４ａ）への呼び出しコンポーネントは、ユーザが矢印５１３だけを選択する場合、補助領域内でそれ自体によって一覧表にされる。ユーザが、ノード３２２を選択する場合も、付加的なコンポーネントＣＭ１、ＣＭ２、ＣＭ４ａおよびＣＭ５は一覧表にされる。これは、ユーザが粒度の大きいトリアージマップを調査することを許容する。
【０１５９】
サブシステムによって呼び出されて他のサブシステムを呼び出すコンポーネント（呼び出しコンポーネント）も、サブシステムによって呼び出され、他のサブシステムを呼び出さないコンポーネントと視覚的に（例えば、色、フォント、アイコン、注釈などで）補助表示領域５６２において識別される。例えば、呼び出しコンポーネントＣＭ４ａは、図５Ｍにおいてイタリック体によって識別される。
【０１６０】
ユーザは、任意のタブから閉じるボタンを選択し、「トランザクションマッピングモード」を終了させ、マップをその標準的な外観および動作に戻す。
【０１６１】
別のオプションでは、１以上の「トランザクション一覧表」、「詳細」および「トレース表示」のタブのもとでの情報が、タブ付きの表示を使用する代わりに、ユーザインタフェースで同時に提供される。
【０１６２】
図５Jは、補助領域５６２からノード３２８および「詳細」のタブをユーザが選択した後の図５Ｇのユーザインタフェースを示す。ＵＩ６００において、選択されたサブシステム３２８（認証エンジン）に関する付加的な詳細が提供されている。既に述べたように、サブシステムのノードがユーザによって選択されているときには異なる種類の強調表示（二重の実線）が使用されている。補助領域５６２は、選択されたサブシステムでログインの一部として呼び出されたコンポーネントの各インスタンスを特定する。単純な例では、各コンポーネントの一つのインスタンスが示される。実際には、各コンポーネントの複数のインスタンスが示される。例としては、ＣＭ７の応答時間は、６００ミリ秒で、ＣＭ８、ＣＭ９およびＣＭ１０のそれぞれの応答時間は１００ミリ秒である。ホストＢのエージェントＢは、各コンポーネントに関連付けられており、各コンポーネントの実行開始時間が明示されている。
【０１６３】
必要に応じて、上述したように、対象のサブシステムのノードだけがユーザにより選択された場合には、従属するサブシステムを呼び出す対象のサブシステムのコンポーネントは、補助領域５６２に提供されない。例えば、サブシステムのノード３２８だけが選択される場合、ＣＭ７は、補助領域５６２で表に載るが、ＣＭ８、ＣＭ９およびＣＭ１０はサブシステム３３６を呼び出すため、ＣＭ８、ＣＭ９およびＣＭ１０は一覧表にされない。このアプローチにおいて、従属するサブシステムへの呼び出しコンポーネント（例えば、ＣＭ８、ＣＭ９およびＣＭ１０）は、ユーザが矢印６１３および／またはノード３３６だけを選択する場合、補助領域内でそれら自体によって一覧表にされる。そしてまた、ユーザがノード３２８も選択する場合には付加的なコンポーネントＣＭ７が一覧表に載る。
【０１６４】
サブシステムによって呼び出されて他のサブシステムを呼び出すコンポーネント（呼び出しコンポーネント）も、サブシステムによって呼び出され、他のサブシステムを呼び出さないコンポーネントと視覚的に（例えば、色、フォント、アイコン、注釈などで）補助表示領域５６２において区別される。例えば、呼び出しコンポーネントは、図５Ｊにおいてイタリック体によって区別される。
【０１６５】
図５Ｋは、図５Ｅ１のユーザインタフェースから起動される選択されたトランザクションのインスタンスのためのトランザクショントレースを示す。例えば、ユーザは、図５Ｅ１の補助領域５６２の「トランザクション一覧表」のタブからトランザクションのインスタンスの１つを選択し、次に「トレース表示」のタブを選択する。トレース表示は、選択されたトランザクションのインスタンスのための１以上のトランザクショントレースを提供する。図４Ｂ１および図４Ｂ２のトランザクショントレースは詳細が既に述べられており、図５Ｅ１におけるトランザクションの代表的なものであるので、この例では、図４Ｂ１および図４Ｂ２のトランザクショントレースが繰り返されている。
【０１６６】
ＵＩ６１０の補助領域５６２において、トランザクショントレース６４１は、認証サービスに関連付けられたエージェントからのコンポーネントデータに基づいて提供され、トランザクショントレース６５１は、認証エンジンに関連付けられたエージェントからのコンポーネントデータに基づいて提供される。トランザクショントレース６４１は、ＣＭ１、ＣＭ２、ＣＭ４ａ、ＣＭ４ｂおよびＣＭ５をそれぞれ表すために、グラフ部分６４２、６４３、６３９、６４４および６４５を含む。トランザクショントレース６５１は、ＣＭ７、ＣＭ８、ＣＭ９およびＣＭ１０をそれぞれ表すために、グラフ部分６４６、６４７、６４８および６４９をそれぞれ含む。
【０１６７】
ユーザは、１以上の画面の同じＵＩにおいて、トリアージマップの領域５０２とトランザクショントレースを同時に見ることができ、そのうえ両者の相互関係を調査する。ユーザは、トランザクショントレースを全体として（例えば、ポインティングデバイスを使用して）選択可能であるか、またはトリアージマップの領域５０２において１以上の対応するノードを視覚的に区別できるようにそのグラフ領域６３９および６４２から６４９を選択可能である。
【０１６８】
ユーザが１番目のトランザクショントレース６４１を選択する場合、ノード３２２は、ノード３２８および他のノードと視覚的に区別される。そして、ユーザが２番目のトランザクショントレース６５１を選択する場合、ノード３２８は、ノード３２２および他のノードから視覚的に区別される。別の可能なアプローチでは、ユーザが１番目のトランザクショントレース６４１を選択する場合、ノード３２２およびすべての従属するノード（３２８、３３６）ならびに関連付けられた矢印（５１３、６１３）は、他のノードおよび矢印から視覚的に区別される。そして、ユーザが２番目のトランザクショントレース６５１を選択する場合、ノード３２８およびすべての従属的な頂点（３３６）ならびに関連付けられた矢印（６１３）は、他のノードおよび矢印から視覚的に区別される。
【０１６９】
図５Ｌは、ユーザがサブシステムのノードを選択した場合の図５Ｋのユーザインタフェースを示す。ここで、ＵＩ６２０において、カーソルの位置および二重の実線の枠で示されるように、ユーザがノード３２２を選択する。この選択の結果、対応するトランザクショントレース６４１は強調表示され、あるいは、そうでなければ補助領域５６２においてより太い実線でトランザクショントレース６５１から視覚的に区別される。よって、ユーザは、サブシステムに関連付けられた補助領域５６２における複数のトレースの中からトランザクショントレースを迅速に識別できる。代わりに、ユーザがノード３２８を選択することで、対応するトランザクショントレース６５１が強調表示され、またはトランザクショントレース６４１から視覚的に区別される。
【０１７０】
必要に応じて、ユーザがノード３２２だけを選択する場合、トランザクショントレース６４１において別のサブシステムを呼びださないコンポーネント（例えば、ＣＭ１、ＣＭ２、ＣＭ４ｂおよびＣＭ５であり、ＣＭ４ａではない）だけが視覚的に区別される。ユーザが矢印５１３だけを選択する場合には、トランザクショントレース６４１において別のサブシステムを呼び出すコンポーネント（例えばＣＭ４ａ）だけが視覚的に区別される。ノード３２２と矢印５１３の両方をユーザが選択する場合にすべてのコンポーネントが視覚的に区別される。同様に、ユーザがノード３２８だけを選択する場合、そのときはトランザクショントレース６５１におけるＣＭ７だけが視覚的に区別される。ユーザが矢印６１３および／またはノード３３６を選択する場合、トレース６５１におけるＣＭ８、ＣＭ９およびＣＭ１０（しかしＣＭ７ではない）だけが視覚的に区別される。
【０１７１】
図５Ｍ１は、ユーザがトランザクショントレースを選択する場合の図５Ｋのユーザインタフェースを示す。ここで、ＵＩ６３０において、カーソルの位置で示されるように、ユーザがトランザクショントレース６４１を選択すると（つまり、ユーザは対応するグラフの部分を選択する）、太線で示されるように、トランザクショントレース６４１はトランザクショントランザクショントレース６５１から視覚的に区別される。この結果、対応するサブシステムのノード３２２がより太い破線で強調表示され、したがってノード３２８から視覚的に区別される。よって、ユーザは、選択されたトランザクショントレースに関連付けられたトリアージマップの領域５０２内の複数のサブシステムの中からサブシステムを迅速に識別する。代わりに、ユーザがトランザクショントレース６５１を選択することで、トランザクショントレース６４１から視覚的に区別される。この結果的、対応するサブシステムのノード３２８が強調表示され、したがってノード３２２から視覚的に区別される。
【０１７２】
別の例では、ユーザは、サブシステムとバックエンドの間の呼び出し関係を示す矢印（例えば、サブシステム３２８とバックエンド３３６の間の矢印６１３）を選択する。それに応答して、補助領域５６２におけるトレースの１以上のグラフ部分は、例えば、図５Ｍ１の補助領域５６２におけるグラフ部分ＣＭ８（６４７）、ＣＭ９（６４８）およびＣＭ１０（６４９）のように、または後述する図５Ｒの補助領域５６２におけるグラフ部分６９１から６９３のように、視覚的に区別される。これらのグラフ部分は、バックエンド３３６を呼び出すためにサブシステム３２８において呼び出されるコンポーネントを表す。サブシステム３２８および／またはバックエンド３３６もまたこのユーザの選択に基づいて強調表示される。または、ユーザは、バックエンド（例えばバックエンド３３６）を示すノードを選択し、それに応答して、補助領域５６２においてトレースの１以上のグラフ部分が視覚的に区別される。これらのグラフ部分は、バックエンド３３６を呼び出すためにサブシステム３２８において呼び出されるコンポーネントを表す。サブシステム３２８および／または矢印６１３もまたこのユーザの選択に基づいて強調表示される。詳細は図５Ｓを参照されたい。
【０１７３】
図５Ｍ２は、ユーザがトランザクショントレースのコンポーネントを選択する場合の図５Ｋのユーザインタフェースを示す。ユーザインタフェース６３１、即ち補助領域５６２において、ユーザは、単一のコンポーネントＣＭ２を選択し、それに応答して、関連付けられたサブシステムのノード３２２が視覚的に区別される。またユーザは、トレースの複数のコンポーネントを選択するが、トレースのすべてのコンポーネントよりも少なく、これに応答して、関連付けられたサブシステムのノード、またはノードが視覚的に区別される。これによりユーザは、より大きな粒度でシステムを理解することができる。
【０１７４】
図５Ｎは、再生モードにおける図５Ｋのユーザインタフェースを示す。この表示では、サブシステムのノード３２２がタイムマーカの位置に基づいて強調表示される。この場合には、丸の付いた太い垂直線のようなタイムマーカ６５７をドラッグすることができ、ユーザによって所望のタイムポイントにセットされる。丸は、例えば、タイムマーカが重なったトレースの最下位レベルにおけるトランザクショントレースとタイムマーカの交点６５８示す。このアクションは、交点でのトランザクショントレースのコンポーネントを選択する。
【０１７５】
タイムマーカは、ユーザによって、例えばそれをドラッグすることにより手動で、または再生モードにおいて自動的に、移動させることができる。再生モードでは、補助領域５６２は、ＶＴＲ型の再生制御ボタンの領域６５６を含み、それには、始めに飛ぶ（ｊｓ）、後退（ｓｂ）、再生／一時停止（ｐｐ）、停止（ｓｐ）、前進（ｓｆ）および終わりに飛ぶ（ｊｅ）のボタンを含む。後退や前進のボタンを使用する代わりに、ユーザは、再生が一時停止している間に、次（ｎｘ）または前のエレメント（ｐｅ）をクリックすることもできる。「再生する」が、現在選択されているセグメントの最初（または何も選択されていない場合の最初のセグメント）からいつも開始する前提では、代替手段は、「後退、再生／停止、前進」である。停止は、このように一時停止と同じで、ユーザは、巻き戻しするために最初のエレメントをクリックするか、または前方に飛ぶために後のエレメントをクリックする。
【０１７６】
これらの制御を作動させることによって、タイムマーカと交点が移動し、マップの対応する部分が強調表示される。１つのアプローチにおいて、業務トランザクションの各連続したノードは、交点６５８の現在の位置に基づいて強調表示され、一方、以前に強調表示されたノードは強調表示されたままで残る。別のアプローチでは、タイムマーカの現在の位置に関係付けられたノードだけが強調表示される。業務トランザクション（ログイン）を識別するノード３０４は、必要に応じて、再生を通して強調表示されたまま残る。
【０１７７】
例えば、「再生」を選択することによって、タイムマーカはｔ０で開始し、一定速度で時間を増加させ、または次第に時間を増加させて、左から右に徐々に移動する。ユーザは、再生速度を調整する能力を有する。さらに、ユーザは、小さなセグメントの中を大きく可視化するようにトランザクショントレースのタイムスケールを調整することができる。再生速度は、典型的には、データが記録される実際の速度よりも遅い。
【０１７８】
１つのオプションにおいて、「前にスキップ」または「後ろにスキップ」のボタンが、例えば、階段のような離散的な増加分だけ再生を進めることを許容することにより、トリアージマップの強調表示されたノードにおける変化を通してユーザの作業が迅速に進むように、強調表示されたノードおよび／またはノード間の矢印に変化を生じさせる。例えば、ユーザが「前にスキップ」のボタンをクリックするごとに、タイムマーカ６５７はノードの強調表示に変化を生じさせる次のタイムポイントに飛ぶ。このケースでは、タイムマーカは、各増加分のためのユーザのコマンドに対して各増加分、スキップする。同様に、ユーザが「後ろにスキップ」のボタンをクリックするごとに、タイムマーカ６５７はノードの強調表示に変化を生じさせる以前のタイムポイントに飛ぶ。別のオプションでは、「前にスキップ」のボタンは、ユーザにより一度選択されたトグルボタンで、これに応答して、各増加分に対するコマンドを再選択することをユーザに要求することなく、同じ離散的な増加分だけ再生を進める。タイムマーカは、このようにサブシステムのノードおよび／または矢印の強調表示に変化を生じさせないタイムポイントでは停止することなく、サブシステムのノードおよび／または矢印の強調表示に変化を生じさせる、選択されたタイムポイントにおいて停止するため増加分を移動する。これらの選択されたタイムポイントは、例えば、グラフ内の各遷移に基づいてグラフを所定の間隔で分割すること、各間隔に関連付けられた１以上のサブシステムおよび／または矢印を識別すること、および、同じ１以上のサブシステムまたは／および矢印に関連付けられた隣接する間隔を組み合わせることによって、特定される。残りのタイムポイントは、強調表示の変化が発生するタイムポイントである。ボタンを二度クリックすると、ボタンはその通常の上がった状態に戻り、通常のセグメントごとの更新を再開させて再生を始める。
【０１７９】
強調表示されたノードおよび／または矢印、強調表示されたサブシステムのノードおよび／または矢印に変化を生じさせる離散的な増加分、および応答時間の例は、ｔ０（ノード３２２）、ｔ２（矢印５１３）、ｔ３．５（ノード３２８）、ｔ４（矢印６１３）、ｔ５（ノード３２８）、ｔ６（矢印６１３）、ｔ７（ノード３２８）、ｔ８（矢印６１３）、ｔ９（ノード３２８）、ｔ９．５（矢印５１３）、ｔ１０（ノード３２２）であり、場合によっては、エンドポイントとしてのｔ１３（ノード３２２）である。
【０１８０】
別のオプションでは、タイムマーカは、トレースを均一に横断移動するのではなく、トランザクショントレースにおいてコンポーネントからコンポーネントにスキップをする。それぞれのスキップは、トリアージマップに変化を生じさせる場合もあれば、生じさせない場合もある。しかし、それは別々のコンポーネントがトレースのどこにあり、いくつのコンポーネントが同じサブシステムに関連付けられているかを、ユーザが理解するのに役立つ。また、マップは、例えば、サブシステムの合計時間ではなく、現在選択されているコンポーネントの時間幅を表示するために更新される。例えば、後述するように、図５Ｑにおいて、ｔｄは、コンポーネントＣＭ８のための時間である。コンポーネント−コンポーネント間でスキップをするための離散的な増加分、強調表示されているサブシステムのノードおよび／または矢印、および、応答時間は、先の例と同じで、ｔ１（ノード３２２）、ｔ１１（ノード３２２）、ｔ１１．５（ノード３２２）、ｔ１２（ノード３２２）およびｔ１２．５（ノード３２２）を付加している。
【０１８１】
スキップのアプローチでは、タイムマーカは、それぞれの離散的時間の増加分の左端、中央または右端に位置する。
【０１８２】
図５Ｏは、パス５１３がＵＩ６５０において強調表示されている場合の図５Ｎのユーザインタフェースを示す。この時間においては、ｔ２からｔ３でＣＭ４はｔ２よりも早くＣＭ７へその呼び出しを行い、ＣＭ７はｔ３まで実行を開始せず、そのためパス５１３を介した通信が行われる。その結果、パス５１３が強調表示される。
【０１８３】
図５Ｐは、サブシステムのノード３２８がＵＩ６６０において強調表示されている場合の、再生モードにおける図５Ｎのユーザインタフェースを示す。この時間においては、ｔ３からｔ４でＣＭ７が実行されているが、バックエンド３３６への呼び出しはまだ行われておらず、そのためパス６１３が強調表示されていない。
【０１８４】
図５Ｑは、パス６１３がＵＩ６７０において強調表示されている場合の、再生モードにおける図５Ｎのユーザインタフェースを示す。この時間においては、ｔ４からｔ５でＣＭ８はバックエンド３３６への呼び出しを行い、そのためパス６１３（矢印および円のアイコン）が強調表示されている。１つのアプローチでは、ノード３２８はデータベース３３６からの応答を待っているため、ノード３２８は強調表示されない。１つのアプローチでは、ノード３３６は計測がないためトランザクショントレースでは見ることができないダミーのノードであることから、ノード３３６は強調表示されない。代わりに、矢印６１３およびノード３３６は、互いに強調表示される（またはされない）ために結合される。バックエンドへの呼び出しは、例えば、ウェブサービスの呼び出しまたはＪＤＢＣドライバの呼び出しは、１以上の子のＳＱＬ文を組み合わせて表すことを想起されたい。したがって、ＣＭ８、ＣＭ９およびＣＭ１０は、トランザクショントレースにおける深さの分離したレベル（あるレベルにおけるＪＤＢＣドライバ呼び出および次の低レベルにおけるＳＱＬ文）で現れる１以上の子のＳＱＬ文を組み合わせにおけるＪＤＢＣドライバの呼び出しをそれぞれ表す。簡略かのため、これらは、トランザクショントレース６４１および６４２において１つのレベルで結合される。
【０１８５】
図５Ｒは、ＳＱＬ文を付加した図５Ｑのトランザクショントレース６５１を示す。前述したように、１つの可能な実装では、ＣＭ８、ＣＭ９およびＣＭ１０はそれぞれＪＤＢＣドライバの呼び出しであるが、一方、子のＳＱＬ文６９１、６９２および６９３もまたそれぞれ表示されている。
【０１８６】
図５Ｓは、ユーザが矢印６１３を選択し、その結果、図５Ｍ１の補助領域５６２におけるグラフ部分ＣＭ８（６４７）、ＣＭ９（６４８）およびＣＭ１０（６４９）が視覚的に区別される、ユーザインタフェース６８０の例を示す。矢印のカーソルおよびその結果のより太い矢印６１３は、ユーザの選択を示す。図５Ｒの補助領域で、付加的にまたは選択的に、グラフ部分６９１から６９３は視覚的に区別される。
【０１８７】
図６は、ユーザインタフェースを提供するための方法を示す。前述のように、管理されたアプリケーションを実行すると、関連するコンポーネントデータは、アプリケーションの計測から取得される。この情報は、エージェントによってセントラルマネージャに報告される。マネージャにおけるデータは、記憶装置２１０（図２Ｃ）のようなデータベース１１８（図１）に提供される。データは、様々なデータフィールドを含むことができ、そのデータフィールドは、本明細書で説明した機能を達成するために、複数の異なる方法でデータを問い合わせアクセスさせるようにすることができる。
【０１８８】
ステップ６９４において、データは、例えば１５分といったデフォルトの値、またはユーザによって指定されるように設定された分析のもとで、指定された時間間隔でアクセスされる。１つのアプローチにおいて、このステップは、前述したように「さらに検索」コマンドを含む。データは、例えば、データストアからアクセスされる。大量なトランザクショントレースのデータを収集して格納することは、処理時間および記憶容量の点でコストがかかるが、過去のデータ（過去の数日または数ヶ月）も使用される。また、より高い周波数に設定したサンプリングにより、進行中のトランザクショントレースのサンプリングに頼ることも可能である。
【０１８９】
通常、３つの分離した処理経路が続く。第１の処理経路では、応答時間および時間幅のような性能メトリックがステップ６９８でのトランザクショントレース／呼び出しから計算される。ステップ６９９は、例えば、性能メトリックを個々の閾値と比較することによって警告レベルを決定する。警告は、サブシステムの全体的な性能メトリックに基づいて計算される。トランザクショントレースの時間幅に対する閾値については、トランザクショントレースで測定された対応する時間幅を閾値に適用することによって、サブシステムの「平均応答時間」の警告のための閾値を再利用できる。これらの閾値は、単一のトランザクションの使用に対しては過度に反応し、多くの黄色や赤の警告といった結果を招き得る。１つのアプローチにおいて、性能メトリックおよび警告は、直接依存しているわけではなく、トリアージマップの構造から独立して計算される。性能メトリックは、業務トランザクションコンポーネントのパフォーマンス、即ちフロントエンドおよびバックエンド呼び出しを全体として記述する。つまり、特定の時間間隔に亘る、通常は１５秒ごとに観察されたトランザクションである。このデータは現在および過去のモードで、トリアージマップで使用される。
【０１９０】
性能メトリックは、平均応答時間、同時呼び出し、間隔ごとのエラー、間隔ごとの応答およびストールカウントを含む。さらに、特定のトランザクションのインスタンスに対して、トランザクショントレーサは、各業務トランザクション、例えば、図４Ｂ１および関連した考察に基づくようなトランザクションおよびコンポーネントに対する実行時間および呼び出し時間幅を算出する。
【０１９１】
第２の処理経路において、２つの異なるデータのセット、即ちトリアージマップの構造を特定するためのデータと、そのマップ構造に特定のトランザクションのトレースをマッピングするためのデータ、が提供される。これらは、トリアージマップ上にトランザクショントレースの情報の重ね合わせを提供するために使用される。これらのデータのセットを提供するために、ステップ６９５において、期間内に呼び出された業務トランザクションとフロントエンドサブシステムとを特定する。トリアージマップのデータは、すべてのトランザクションに亘って提供される。トリアージマップを構築するために使用されるデータは、キャプチャされ、継続的に（データのサンプリングとともに）格納される。各マップは−デフォルトで−例えばリアルタイムで更新しつつ過去３日間のデータを表す。構成設定は、このデフォルトの時間ウィンドウを変更することができ、ユーザも過去の時間範囲を指定することができる。どちらのケースでも、マップを構築するための情報はデータストアから取得される。
【０１９２】
業務トランザクションへのサブシステムの関連付けは、発生しているトランザクションについての情報を返す報告をする特別のマップトレーサを使用して実現する。トランザクションが業務トランザクションコンポーネントに一致する場合、そのトランザクションは、業務トランザクションコンポーネントの名称でラベルが付けられ、そのトランザクション内で呼び出されるすべての下位レベルのコンポーネントが業務トランザクションコンポーネント（つまりその業務トランザクション）に関連付けられる。これらの下位レベルのコンポーネントは、後に特定のルールに基づいて「サブシステム」に集約される。
【０１９３】
業務トランザクションは、選択された業務トランザクションコンポーネントまたはフロントエンドの識別子をスレッドの最初のセグメントとして探すことによって特定される。一旦、サブシステムの識別子がトランザクショントレースで発見されると、サブシステムは呼び出されたと結論付けられる。トランザクション内でその時点から行われたすべての呼び出しは、次の認識されるサブシステムが呼び出されるまで（フロントエンドまたはバックエンド呼び出し）、同じサブシステムの必要な部分となる。
【０１９４】
また、個々のトランザクショントレース内で、マップとツリーに現れる、フロントエンドおよびバックエンドの呼び出しは、そのコンポーネントがトレースされたトランザクションの一部としてヒットされる場合にセグメントに関連付けられている特定のメトリックパス（識別子）に関連付けられる。
【０１９５】
第３の処理経路では、ステップ７００は、トリアージマップ上のサブシステムのための付加的なデータのセットにおける正常性メトリックを算出する。図５Ｈを参照されたい。これらのメトリックは、トランザクショントレースから取得される応答時間などの性能メトリックと対照的である。
【０１９６】
ステップ６９６は、ユーザコマンドを受信することを含む。ユーザコマンドは、本明細書で説明されるように、ツリー領域５０４、メインエリア５０２および補助領域５６２のようなユーザインタフェースの様々な部分における選択および／またはエントリを含む。ステップ６９７は、例えば、モデルを使って、ユーザインタフェースを分析対象の時間間隔についての関連する情報で更新するような表示をすることを含む。
【０１９７】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、本発明の範囲を限定するものではない。上記した技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記した実施形態は、本発明の原理をベストに説明するために選定されたものであり、その実用に際しては、本発明が最適にその有用性を発揮するように、その特定用途に適するように当業者が様々に変形し得る。発明の範囲は、ここに添付した特許請求の範囲によって定められることを意図している。
【図１】
0005909138.tif 000003
【図２Ａ】
0005909138.tif 000004
【図２Ｂ】
0005909138.tif 000005
【図２Ｃ】
0005909138.tif 000006
【図３】
0005909138.tif 000007
【図４Ａ】
0005909138.tif 000008
【図４Ｂ１】
0005909138.tif 000009
【図４Ｂ２】
0005909138.tif 000010
【図４Ｂ３】
0005909138.tif 000011
【図５Ａ】
0005909138.tif 000012
【図５Ｂ１】
0005909138.tif 000013
【図５Ｂ２】
0005909138.tif 000014
【図５Ｃ】
0005909138.tif 000015
【図５Ｄ】
0005909138.tif 000016
【図５Ｅ１】
0005909138.tif 000017
【図５Ｅ２】
0005909138.tif 000018
【図５Ｅ３】
0005909138.tif 000019
【図５Ｆ】
0005909138.tif 000020
【図５Ｇ】
0005909138.tif 000021
【図５Ｈ】
0005909138.tif 000022
【図５Ｉ】
0005909138.tif 000023
【図５Ｊ】
0005909138.tif 000024
【図５Ｋ】
0005909138.tif 000025
【図５Ｌ】
0005909138.tif 000026
【図５Ｍ１】
0005909138.tif 000027
【図５Ｍ２】
0005909138.tif 000028
【図５Ｎ】
0005909138.tif 000029
【図５Ｏ】
0005909138.tif 000030
【図５Ｐ】
0005909138.tif 000031
【図５Ｑ】
0005909138.tif 000032
【図５Ｒ】
0005909138.tif 000033
【図５Ｓ】
0005909138.tif 000034
【図６】
0005909138.tif 000035