JP5909140B2 - Jvmおよびクロスjvm呼び出しスタックの可視化 - Google Patents

Jvmおよびクロスjvm呼び出しスタックの可視化 Download PDF

Info

Publication number
JP5909140B2
JP5909140B2 JP2012087292A JP2012087292A JP5909140B2 JP 5909140 B2 JP5909140 B2 JP 5909140B2 JP 2012087292 A JP2012087292 A JP 2012087292A JP 2012087292 A JP2012087292 A JP 2012087292A JP 5909140 B2 JP5909140 B2 JP 5909140B2
Authority
JP
Japan
Prior art keywords
application
subsystem
node
representing
dependency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012087292A
Other languages
English (en)
Other versions
JP2012221502A (ja
Inventor
バサク,インドラニル
ジラル,イーハン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CA Inc
Original Assignee
CA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CA Inc filed Critical CA Inc
Publication of JP2012221502A publication Critical patent/JP2012221502A/ja
Application granted granted Critical
Publication of JP5909140B2 publication Critical patent/JP5909140B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、コンピューティング環境におけるソフトウェアを監視する技術に関する。
背景
インターネットの存在が増長するにつれて、イントラネット、エクストラネットなどの他のコンピュータネットワークと同様に、電子商取引、教育、他の分野において多くの新しいアプリケーションをもたらした。組織は、ビジネスやその他目的を行うのにそのようなアプリケーションへの依存を深めており、期待通りの成果を確実に得るために相当の資源を投入している。このような状況のもと、様々なアプリケーションの管理技術が開発されている。
1つのアプローチとして、アプリケーションで呼び出される個々のソフトウェアコンポーネントに関するアプリケーションの実行データを集めることにより、アプリケーションの基礎構造を監視することが挙げられる。このアプローチでは、監視されるシステムに元来、存在するエージェントを用いることができる。例えば、ソフトウェアによる計測を用いることによって、呼び出される個々のコンポーネントを特定するためや、個々のコンポーネントの実行時間のような実行データを得るために、スレッドまたはプロセスがトレースされ得る。コンピュータプログラムが実行するステップの詳細なレコード、またはトレースを得ることをトレーシングという。トレースのタイプの1つにスタックトレースがある。トレースはデバッグにおける補助の役目を果たし得る。
しかし、問題の診断は依然として難しく時間がかかっている。例えば、トランザクションまたはアプリケーションに障害が生じている場合、プロバイダは起きつつある故障とその原因を正確に知りたい。改善された診断技術が必要とされている。
本発明はコンピューティングシステムのアプリケーションまたは他のサブシステムを介してフローを可視化することによってコンピュータシステムにおけるパフォーマンス問題を診断する方法を提供する。
一実施形態において、少なくとも第1のアプリケーションのフローを可視化するための方法を実行するように少なくとも1つのプロセッサをプログラミングするための、コンピュータで読み取り可能なソフトウェアを有している有体の一時的でないコンピュータで読み取り可能な記憶装置が具現化されて提供される。実行される方法は、第1のアプリケーションに関するデータにアクセスするためにデータストアにアクセスすることを有する。ここで、データは、第1のアプリケーションの複数のインスタンスを表すものであり、第1のアプリケーションにインストールされた計測を用いて第1のアプリケーションに関連付けられたエージェントから取得される。実行される方法は、ユーザインタフェース上に依存グラフを表示することをさらに含む。依存グラフは、(a)第1のアプリケーションの複数のインスタンスを表す第1のノード、(b)第1のアプリケーションが依存する1つのサブシステムを表す第2のノード、および、(c)第1のアプリケーションの1つのサブシステムへの依存を表す少なくとも1つの辺、を図形によって表す。
別の実施形態では、それぞれのアプリケーションのフローを可視化するための方法を実行するように少なくとも1つのプロセッサをプログラミングするために、コンピュータで読み取り可能なソフトウェアを有している有体の一時的でないコンピュータで読み取り可能な記憶装置が具現化されて提供される。実行される方法は、それぞれのアプリケーションに関連付けられたそれぞれのエージェントから取得されるデータにアクセスするためにデータストアにアクセスすることを含む。ここで、データは、それぞれのアプリケーションの複数のインスタンスを表すものであり、それぞれのエージェントは、それぞれのアプリケーションにインストールされた計測を用いてデータを提供する。実行される方法は、ユーザインタフェース上に依存グラフを表示することをさらに含む。依存グラフは、(a)1つのアプリケーションの複数のインスタンスを表す第1のノード、(b)別のアプリケーションの複数のインスタンスを表す第2のノード、および(c)別のアプリケーションに対する1つのアプリケーションの依存を表す少なくとも1つの辺、を図形によって表す。
別の実施形態では、それぞれのアプリケーションのフローを可視化するための方法を実行するように少なくとも1つのプロセッサをプログラミングするために、コンピュータで読み取り可能なソフトウェアを有している有体の一時的でないコンピュータで読み取り可能な記憶装置が具現化されて提供される。実行される方法は、それぞれのアプリケーションに関連付けられたそれぞれのエージェントから取得されるデータにアクセスするためにデータストアにアクセスすることを含む。ここで、データは、複数のアプリケーションのそれぞれにおける複数のインスタンスを表し、それぞれのエージェントは、それぞれのアプリケーションにインストールされた計測を用いてデータを提供する。実行される方法は、ユーザインタフェース上に依存グラフを表示することをさらに含む。依存グラフは、(a)第1のアプリケーションが呼び出される第1の業務トランザクションを表す第1の識別子、(b)第1のアプリケーションの複数のインスタンスを表すノード、(c)第1の業務トランザクションに関連して第1のアプリケーションが依存する1つのサブシステムを表すノード、および(d)第1の業務トランザクションに関連して第1のアプリケーションの1つのサブシステムへの依存を表す少なくとも1つの辺、を図示的に示す。
方法に対応して、実行時に、本明細書で提供される方法を実行する命令がエンコードされた記憶媒体を含むシステムおよびコンピュータもしくはプロセッサで読み取り可能な記憶装置が提供される。
管理されたアプリケーションを含むシステムを示す。 トランザクショントレースを開始するためのプロセス[処理]の一実施形態を説明するフローチャートである。 トランザクショントレースを終了するためのプロセス[処理]の一実施形態を説明するフローチャートである。 図1のネットワークのコンピューティングデバイスを示す。 図1のアプリケーションサーバ106を含むトランザクショントレースの第1の例を示す。 図1のアプリケーションサーバ106を含むトランザクショントレースの第2の例を示す。 図1のアプリケーションサーバ110を含むトランザクショントレースの第1の例を示す。 図4Aから図4Cのトランザクショントレースに基づくアプリケーションの配置図を示す。 図4Aから図4Cのトランザクショントレースに基づく依存性のダイグラフにおけるパスを示す。 図4Aのトランザクショントレースに基づく単一のJVMトランザクションの呼び出しスタックを示す。 図4Fの呼び出しスタックのための依存性のダイグラフの枝刈り前を示す。 図4Fの呼び出しスタックのための依存性のダイグラフの枝刈り後を示す。 図4Bおよび図4Cのトランザクショントレースに基づくクロスJVMトランザクションの呼び出しスタックを示す。 図4Iの呼び出しスタックのための依存性のダイグラフの枝刈り前を示す。 図4Iの呼び出しスタックのための依存性のダイグラフの枝刈り後を示す。 図4Hおよび図4Kの枝刈りされた依存性のダイグラフに基づく、アプリケーションAの細部を記した依存性のグラフを示す。 図4Hおよび図4Kの枝刈りされた依存性のダイグラフに基づく、アプリケーションAおよびアプリケーションBの細部を記した依存性のグラフを示す。 図4Hおよび図4Kの枝刈りされた依存性のダイグラフに基づく、業務サービスの概要表示を提供するユーザインタフェースを示す。 業務トランザクションBTA1が選択された後の図6Aのユーザインタフェースを示す。 業務トランザクションBTA2が選択された後の図6Aのユーザインタフェースを示す。 業務トランザクションBTB1が選択された後の図6Aのユーザインタフェースを示す。 アプリケーションAがフロントエンドの表示において選択される場合の、図4Hおよび図4Kの枝刈りされた依存ダイグラフに基づく概要表示を提供するユーザインタフェースを示す。 図7A1のユーザインタフェースに適用される経時変化処理を示す。 図7A1のユーザインタフェースに適用される経時変化処理の別の例を示す。 図7A1のユーザインタフェースに適用される経時変化処理のさらなる例を示す。 詳細表示における図7Aのユーザインタフェースを示す。 アプリケーションBがフロントエンドの表示において選択される場合の、図4Kの枝刈りされた依存性のダイグラフに基づく概要表示を提供するユーザインタフェースを示す。 詳細表示における図7Cのユーザインタフェースを示す。 図7Aまたは図7Bのユーザインタフェースに基づくアプリケーションAのための正常性メトリックを提供するユーザインタフェースを示す。 1以上のアプリケーションの操作を示す際に用いられる階層を示す。 取引の業務サービスがユーザによって選択された場合の、図8Aの階層と一致するユーザインタフェースのさらなる例を示す。 発注の業務トランザクションがユーザによって選択された場合の、図8Bのユーザインタフェースを示す。 オプション取引の業務トランザクションがユーザによって選択された場合の、図8Bのユーザインタフェースを示す。 ユーザインタフェースを提供する方法を示す。
本発明は、コンピュータシステムの、アプリケーションまたは他のサブシステムのフローを可視化することによってコンピュータシステムにおける問題を診断するための方法を提供する。
ツールは、アプリケーションのそれぞれのエージェントを用いてアプリケーションのメトリックを収集することにより、アプリケーションのパフォーマンスを監視するために提供される。収集されるメトリックのデータは、監視されるすべてのアプリケーション(同じアプリケーションの複数のインスタンスを含む)のエージェントを中心とした表示を提供する。さらに、このツールは、アプリケーションまたは業務プロセスとその論理的基盤のコンポーネントと間の依存関係を示す、グラフィカルな依存性のグラフもしくはアプリケーショングラフを提供することによって、業務中心の関係で関与することを業務ユーザにとってより簡単にさせる。
図1は、複数の異なるコンピューティングデバイスがマネージャにデータを提供するネットワーク100を示す。コンピューティングデバイス106、110および114の例は、アプリケーションサーバまたは必要な機能を実現するためのコードを実行するプロセッサを有するコンピューティングデバイスの他の種類を含む。コンピューティングデバイスは、互いに離れて位置することができ、または同じ場所に位置することもできる。この例では、コンピューティングデバイス106、110および114は、ローカルのマネージャコンピュータ120と通信する。マネージャコンピュータ120は、代わりにコンピューティングデバイス106、110および114から離れることが可能で、そのような場合の通信はネットワーククラウド104を介して行われる。
例えば、ウェブベースの電子商取引アプリケーションなどの企業のアプリケーションを実行している会社は、負荷分散のために1つの場所で複数のアプリケーションサーバを使用する。例えば、ユーザのウェブブラウザ102からのようなユーザからのリクエストは、インターネットのようなネットワーククラウド104を介して受信され、任意のコンピューティングデバイス106、110および114に送られる。ウェブブラウザ102は、図示していないインターネットサービスプロバイダを介してネットワーククラウド104に、通常、アクセスする。コンピューティングデバイス106、110および114上で実行するエージェントソフトウェアは、エージェントA1(108)、エージェントA2(112)およびエージェントA3(116)によってそれぞれ表され、ある可能なアプローチとして、それぞれのコンピューティングデバイス106、110および114上で実行されている、アプリケーション、ミドルウェアまたはその他のソフトウェアから、情報を収集する。そのような情報は、計測を用いることによって得ることができ、その一例はバイトコードの計測である。しかしながら、集められたデータは他の方法でも得ることができる。エージェントは、監視するコンピューティングデバイスに元来存在してデータの取得ポイントを提供する。エージェントは、マネージャ120と通信してデータをまとめ最適化する。一実装では、アプリケーションAのインスタンスがコンピューティングデバイス106において、アプリケーションBのインスタンスがコンピューティングデバイス110において実行する。
マネージャ120は、エージェントから受信したデータに基づく情報を表示するため、例えばモニタなどのユーザインタフェース122と通信するワークステーションのような分離したコンピューティングデバイス上に提供され得る。マネージャは、またエージェントから受信したデータを格納するためデータベース118にアクセスする。提示された例では、コンピューティングデバイスは、ネットワーククラウド104にアクセスすることなく、マネージャ120と通信する。例えば、通信は、ローカルエリアネットワークを介して行われる。他の設計では、マネージャ120は、ネットワーククラウド104を介して複数のコンピューティングデバイスのエージェントからデータを受信する。例えば、大きな組織は、セントラルネットワークオペレーションセンタを運用する。そこでは、1以上のマネージャが、地理的に異なる場所に分散している複数のエージェントからデータを取得する。説明すると、ウェブベースの電子商取引企業では、顧客の注文を受ける地理的に異なる場所にあるサーバからエージェントのデータを取得することがある。支払いを処理するサーバ、倉庫で在庫を調べたり、受注を受けたりするサーバなどである。マネージャ120およびユーザインタフェースディスプレィ122は、企業の本社の場所で提供され得る。必ずしも、ウェブベースまたは小売、もしくはその他の販売に関する必要はなく、他のアプリケーションにおいて同様にシステムを管理するためにエージェントとマネージャを利用する。例えば、銀行では、小切手の処理やクレジットの口座用にアプリケーションを使用することがある。また、上述した複数コンピュータのデバイスアレンジに加えて、1以上のエージェントによって単一のコンピュータデバイスが同様に監視されることがある。
監視を実行するソフトウェアを計測するのに、様々なアプローチが知られている。例えば、最初に述べたように、トレーシングはソフトウェアの実行を追跡するために用いることができる。トレーシングの例が、”Transaction Tracer”と題する米国特許出願公開番号2004/0078691(2004年4月22日公開)に記載されている。その内容は参照により本明細書に組み込まれる。その中で述べられているアプローチにおいては、監視すべきアプリケーションのオブジェクトコードまたはバイトコードが計測され、例えばプローブにより変更される。アプリケーションのジョブまたは他のロジックを変更することなくアプリケーションについての特定の情報をプローブが測定する。一旦、プローブがアプリケーションのバイトコードにインストールされると、管理されたアプリケーションと称される。エージェントソフトウェアは、プローブからの情報を受信し、その情報を、例えばマネージャ120において、別のプロセスに伝達することがある。また、情報が異常状況を示すか否かを判定するなど、情報をローカルで処理する。エージェントは、このようにプローブから受信した情報を収集し要約する。指示ファイルによって定義されるように、プローブは、情報を収集する。例えば、プローブからの情報は、トランザクションまたは他の実行フローの開始や停止の回数、またはトランザクション/実行フロー内の個々のコンポーネントの開始や停止の回数を示す場合がある。この情報は、それが範囲内にあるかどうかを判定するために予め決められた基準と比較される。もし情報が範囲内にない場合には、エージェントは適切なトラブルシューティングが実行できるようにこの事実をマネージャに報告する。エージェント108、112および116は、それぞれが関連付けられているローカルコンピューティングデバイス106、110および114上でソフトウェアが実行中であることを通常認識している。
プローブは、CORBAメソッドタイマ、リモートメソッドインボケーション(RMI)メソッドタイマ、スレッドカウンタ、ネットワークバンド幅、JDBC更新およびクエリタイマ、サーブレットタイマ、Java(登録商標)サーバページズ(JSP)タイマ、システムログ、ファイルシステム入出力バンド幅メータ、使用可能および使用済メモリ、ならびにEBJ(エンタープライズJava(登録商標)ビーンズ)タイマを含むメトリックの標準セットを報告する。メトリックは、特定のアプリケーションのアクティビティの計測値である。
エージェントは、アプリケーションによってアクセスされるリソースを識別するトランザクションに関する情報を報告する。1つのアプローチでは、トランザクションについて報告する場合における「呼び出された」という語はリソースを指す。このリソースは、消費者が親のコンポーネントであるところのリソース(またはサブリソース)である。例えば、トランザクションで呼び出される最初のコンポーネントがサーブレットAであると仮定する。消費者のサーブレットA(下記参照)の下には、EJBと称されるサブリソースがある。消費者とリソースは、ツリーのような形でエージェントよって報告される。トランザクションのデータは、またツリーに従って格納される。例えば、もしサーブレット(例えばサーブレットA)が、ネットワークのソケット(例えば、ソケットC)の消費者であり、かつEJB(例えば、EJB B)の消費者でもあるとすれば、次にはJDBC(例えば、JDBC D)の消費者であり、ツリーは以下のように見える。
Servlet A(サーブレットA)
Data for Servlet A(サーブレットAのデータ)
Called EJB B(呼び出されたEJB B)
Data for EJB B(EJB Bのデータ)
Called JDBC D(呼び出されたJDBC D)
Data for JDBC D(JDBC Dのデータ)
Called Socket C(呼び出されたソケットC)
Data for Socket C(ソケットCのデータ)
一実施形態では、上記ツリーは、ブレイムスタックと称されるスタックにエージェントによって格納される。トランザクションが開始すると、トランザクションはスタックへプッシュされる。トランザクションが完了すると、トランザクションはスタックからポップされる。一実施形態では、スタック上の各トランザクションは、次に続く情報、トランザクションの型、トランザクションのためにシステムで使用される名称、パラメータのハッシュマップまたは辞書、トランザクションがスタックへプッシュされたときのタイムスタンプおよびサブエレメント、が格納されている。サブエレメントは、注目すべきトランザクション内から開始されている他のコンポーネント(例えば、メソッド、プロセス、プロシージャ、関数、スレッド、命令セットなど)のためのブレイムスタックのエントリである。上記の例のようにツリーを使用すると、サーブレットAのためのブレイムスタックのエントリは2つのサブエレメントを有する。第1サブエレメントは、EJB Bへのエントリで、第2サブエレメントは、ソケットスペースCへのエントリである。サブエレメントは特定のトランザクションのためのエントリの一部であるにもかかわらず、サブエレメントはまた独自のブレイムスタックのエントリを有する。上記のツリーに示されるように、EJB BはサーブレットAのサブエレメントであり、また独自のエントリを有する。トランザクションに対する一番上(最初)のエントリ(例えばサーブレットA)は、ルートコンポーネントと称される。スタック上の各エントリはオブジェクトである。
図2Aは、トランザクショントレースを開始するための処理の一実施形態を説明するフローチャートである。ステップは適切な(複数の)エージェントにより実行される。ステップ130ではトランザクションを開始する。一実施形態では、プロセス[処理]は、メソッド(例えば、"loadTracer"メソッドの呼び出し)の開始によってトリガ(起動)される。ステップ132において、エージェントは所望のパラメータ情報を取得する。一実施形態では、ユーザは、構成ファイルまたはUIを介して、どのパラメータ情報を取得するかを設定することができる。取得されたパラメータは、ブレイムスタックへプッシュされるオブジェクトの一部であり、ハッシュマップまたは辞書に格納される。他の実施形態では、パラメータの識別は、予め設定されている。格納されるパラメータには様々なものがある。一実施形態では、使用されるパラメータの実際の一覧表は、監視されるアプリケーションに依存している。以下の表は、取得され得るいくつかのパラメータの例を示す。
Figure 0005909140
パラメータは、クエリ、クッキー、POST、URLおよびセッションの型の名称/値の組を含む。
ステップ134では、システムは現在の時刻を示すタイムスタンプを取得する。ステップ136ではスタックエントリが作成される。ステップ138において、スタックエントリはブレイムスタックへプッシュされる。一実施形態では、タイムスタンプがステップ138の一部として付加される。トランザクションが開始されるときにプロセス[処理]が実行される。同様のプロセス[処理]が、トランザクションのサブコンポーネントが開始するときに実行される(例えば、EJB BはサーブレットAのサブコンポーネントである−上述したツリーを参照のこと)。
図2Bは、トランザクショントレースを終了するためのプロセス[処理]の一実施形態を説明するフローチャートである。トランザクションが終了するときにエージェントによりプロセス[処理]が実行される。ステップ140において、プロセス[処理]がトランザクション(例えばメソッド)の終了(例えば、"finishTrace"メソッドの呼び出し)によってトリガされる。ステップ142では、システムは現在の時刻を取得する。ステップ144では、スタックエントリが削除される。ステップ146において、トランザクションの実行時間は、ステップ142からのタイムスタンプをスタックエントリに格納されているタイムスタンプと比較することによって算出される。ステップ148では、トレースのためのフィルタが適用される。例えば、フィルタには1秒の閾値期間が入る。したがって、ステップ148は、ステップ146から算出された時間幅が1秒よりも大きいか否かを決定することを含む。閾値を超えない場合(ステップ150)、トランザクションのデータは破棄される。一実施形態では、スタックエントリの全体が破棄される。別の実施形態では、パラメータとタイムスタンプだけが破棄される。他の実施形態では、データの様々なサブセットが破棄される。いくつかの実施形態では、閾値の時間幅を超えていない場合には、エージェントにより、データは図1のシステム内の他のコンポーネントに送信されない。時間幅が閾値を超える場合(ステップ150)、ステップ160においてエージェントがコンポーネントデータを組み立てる。コンポーネントデータは、報告されるトランザクションに関するデータである。一実施形態では、コンポーネントデータは、トランザクションの名称、トランザクションの型、トランザクションの開始時刻、トランザクションの時間幅、パラメータのハッシュマップまたは辞書、およびサブエレメント(エレメントの帰納的なリスト)のすべてを含む。その他の情報もまたコンポーネントデータの一部である。ステップ162において、エージェントは、マネージャ120にTCP/IPプロトコルによりコンポーネントデータを送信することによってコンポーネントデータを報告する。
図2Bは、トランザクションが終了すると何が起こるかを表している。しかしながら、サブコンポーネントが終了すると、実行されるステップは、タイムスタンプを取得すること、サブコンポーネントのためのスタックエントリを削除することおよび完了したサブエレメントを以前のスタックエントリに加えることを含む。一実施形態では、フィルタおよび判断ロジックは、特定のサブコンポーネントというよりも、トランザクションの開始および終了に適用される。
一実施形態では、トランザクショントレーサがオフになっている場合、システムは依然としてブレイムスタックを使用するが、しかし、パラメータは格納されことなく、コンポーネントデータは作成されないことに注意されたい。いくつかの実施形態では、トレーシング技術をオフにすることによってシステムはトレーシングを開始しない。トレーシングは上述したように、ユーザが要求した後にだけ開始する。
図3は、図1のネットワークのコンピューティングデバイスを示す。コンピューティングデバイス300は、例えば図1に関連して説明したように、ウェブブラウザ、アプリケーションサーバ、マネージャおよび/またはユーザインタフェースで使用されるシステムを簡略化して表したものである。コンピューティングデバイス300は、ハードディスクまたはポータブルメディアのような記憶装置310、他のコンピューティングデバイスと通信するためのネットワークインタフェース320、ソフトウェアの命令を実行するためのプロセッサ330、例えば、記憶装置310からロードされた後にソフトウェアの命令を格納するためのRAMのような作業メモリ340、および1以上のビデオモニタのようなユーザインタフェースディスプレィ350を含むものである。ユーザインタフェースは1以上のモニタを提供する。記憶装置310は、本明細書で説明した機能を提供するための方法を実行するのにプロセッサ330をプログラミングするために具現化されているプロセッサ読み取り可能なコードを有する、プロセッサまたはコンピュータで読み取り可能な有体であり一時的でない記憶装置と考えることができる。ユーザインタフェースディスプレィ350は、1以上のエージェントから受信したデータに基づいて、人間のオペレータに情報を提供する。ユーザインタフェースディスプレィ350は、グラフィカルまたは表形式のような既知の任意の表示方式を使用する。画面上の表示に加えて、プリンタからのハードコピーなどの出力も提供する。
記憶装置310がアプリケーションサーバ、マネージャおよび/またはユーザインタフェースのようなコンピューティングデバイス300の一部である場合、データベース118は記憶装置310に含まれる。記憶装置310は、1以上のエージェントから受信したデータを格納し、本明細書で説明したようにユーザインタフェースを提供するためにデータを取得するためにアクセスされる、1以上の記憶装置を表し得る。記憶装置310は、データストアを表す。
また、本明細書で説明した機能は、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアの両方の組み合わせを使用して実装されてもよい。ソフトウェアについては、1以上のプロセッサをプログラミングするために具現化されているプロセッサで読み取り可能なコードを有する、プロセッサで読み取り可能な1以上の一時的でない有体の記憶装置が使用される。プロセッサ読み取り可能な一時的でない有体の記憶装置は、揮発性および不揮発性メディア、リムーバブルおよび非リムーバブルメディアなどのコンピュータで読み取り可能な媒体を含む。例えば、コンピュータにより読み取り可能な一時的でない有体の媒体には、コンピュータにより読み取り可能な命令、データ構造やプログラムモジュールまたは他のデータなどの情報を記憶するために、任意の方法や技術で実装された、揮発性、不揮発性、リムーバブルや非リムーバブルメディアが含まれ得る。コンピュータにより読み取り可能な一時的でない有体の媒体の例としては、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、ディジタルバーサタイルディスク(DVD)、または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、他の磁気記憶装置、または所望の情報を格納したり、コンピュータによってアクセスしたりすることに用いられる他の媒体などがある。他の実施形態においては、一部またはすべてのソフトウェアは、カスタムIC、ゲートアレイ、FPGA、PLDや特殊用途向けプロセッサなど、専用のハードウェアに置き換えることができる。一実施形態では、1以上の実施形態を実装するソフトウェア(記憶装置に格納されている)は、1以上のプロセッサをプログラムするために用いられる。1以上のプロセッサは、コンピュータにより読み取り可能な有体の媒体/記憶装置、周辺機器および/または通信インタフェースと通信することができる。
図4Aは、図1のアプリケーションサーバ106を含むトランザクショントレースの第1の例を示す。スレッドまたはプロセスのトランザクショントレースは、呼び出される各コンポーネントおよびコンポーネント間の呼び出し関係を識別するために取得される。この例では、トランザクショントレースは、業務トランザクションBTA1(図4Eを参照されたい)の一部であると考えられる。1つのアプローチでは、トランザクショントレースは、呼び出されている第1のアプリケーションのサーブレットA1のような少なくとも第1の予め選択されたコンポーネントに基づいて第1の業務トランザクション(BTA1)によって呼び出されると考えられるアプリケーションである。
トランザクショントレースにおいて、水平方向は時間を表し、垂直方向は呼び出しスタックの深さや位置を表す。また、呼び出しスタックと称されるトランザクショントレースは、1以上のプログラム、プロセスまたはスレッドの実行中に、呼び出されるかまたは起動される計測されたコンポーネントを特定する。計測されたコンポーネントのトレースデータは、アプリケーションを理解したりデバッグしたりするために依存データとともに使用される。特に、異なるスレッドが異なるトランザクショントレースに分離されるよう、分離したトランザクショントレースが各エージェントに提供される。
ユーザインタフェース上に提供される、および/または、データストア内に格納されるグラフィカルな表現において、外部頂点360は、トランザクショントレースの第1のコンポーネントまたはルートコンポーネントである。サーブレットA1 362、プレーンオールドJava(登録商標)オブジェクト(POJO)A1 364、Java(登録商標)データベースコネクティビティ(JDBC)ドライバ呼び出し366およびソケット呼び出し368は、トランザクショントレースの連続した下位の層にある。POJOは、エンタープライズJava(登録商標)ビーンズ(EJB)などの特殊なオブジェクトではないJava(登録商標)オブジェクトである。外部頂点360は、アプリケーションAの外部からアプリケーションA内にサーブレットA1を呼び出す任意のコンポーネントである。
図4Bは、図1のアプリケーションサーバ106を含むトランザクショントレースの第2の例を示す。外部頂点370(外部頂点360とは異なる)は、トランザクショントレースのルートコンポーネントである。サーブレットA2 372、ウェブサービスクライアント374およびソケット呼び出し376は、トランザクショントレースの連続した下位の層にある。外部頂点370は、アプリケーションAの外部からアプリケーションA内にサーブレットA2を呼び出す任意のコンポーネントである。
図4Cは、図1のアプリケーションサーバ110を含むトランザクショントレースの第1の例を示す。外部頂点380(外部頂点360および370とは異なる)は、トランザクショントレースのルートコンポーネントである。サーブレットB1 382、JDBCドライバ呼び出し384およびソケット呼び出し386は、トランザクショントレースの連続した下位の層にある。外部頂点380は、アプリケーションBの外部からアプリケーションB内にサーブレットB1を呼び出す任意のコンポーネントである。
図4Aから図4Cのトランザクショントレースは、図4Dから図7Eの詳解に基づいて提供される。
図4Dは、図4Aから図4Cのトランザクショントレースに基づくアプリケーションの配置図を示す。この例では、アプリケーションAはアプリケーションサーバ106に展開され、アプリケーションBはアプリケーションサーバ110に展開される。アプリケーションAのJava(登録商標)仮想マシン(JVM)400は、サーブレットA1 402、サーブレットA2 404およびPOJOA1 406を実行し、エージェントA 408は実行を監視する。アプリケーションサーバ110において、アプリケーションBのJava(登録商標)仮想マシン(JVM)420は、ウェブサービスとして見えるようにされているサーブレットB1 412を実行し、その間エージェントB 414がその実行を監視する。
依存性のグラフは、この例に基づいて提供される(図5Aから図7Dを参照されたい)。依存グラフは、アプリケーションまたは業務トランザクションの、様々なソフトウェアコンポーネント間の依存関係(マップ)を有向グラフ(ダイグラフ)として表示する。ソフトウェアコンポーネントは、サーブレット、EJB、データベース、メッセージキュー(MQ)等々である。
具体的には、グラフG=(V,E)は、頂点の集合V(ノードとも呼ばれる)および辺の集合Eを含む。各辺は、頂点の順序付けられた組を表す。有向グラフ内の辺は、順序付けられたペアである。即ち、辺が接続する2つの頂点は順序付けられている。有向グラフの辺は、1つの頂点(ソース)から別の頂点(ターゲット)までを指し示す矢印として描かれる。したがって、矢印の頭部はターゲットの頂点にあり、矢印の尾部はソースの頂点にある。さらに、v1からvkへの単純なパスは、辺(v1,v2)、(v2,v3)...(vk−1,vk)によって接続される頂点v1、v2...vkのシーケンスである。アプリケーションが有向グラフで表されている場合、業務トランザクションはそのグラフを介した単純なパスと考えられる。グラフGのサブグラフSは、その頂点と辺がグラフGの頂点と辺のサブセットであるグラフである。サブグラフS1は、それがグラフGの辺のサブセットで構成されている場合、[グラフ]Gのサブグラフを誘導する呼び出された辺である。業務サービスは、そのグラフの辺が誘導するサブグラフと考えられる。依存グラフの論理的表示は、エージェント全体に亘る様々なコンポーネント間のすべて物理的な依存の結合である。潜在的に、アプリケーションの依存グラフは、複数の業務トランザクションを示す。
図4Eは、図4Aから図4Cのトランザクショントレースに基づく依存ダイグラフにおけるパスを示す。アプリケーションAにおいて、サーブレットA1 402はPOJOA1 406を呼び出し、POJOA1 406は次にデータベースX 401を呼び出す。サーブレットA2 404は、サーブレットB1がデータベースY 431を呼び出すのに応答して、ネットワーククラウド104を介してアプリケーションBのサーブレットB1 412へのウェブサービス呼び出し403を行う。業務トランザクションBTA1は、サーブレットA1からPOJOA1へ、そしてデータベースXへの実行フロー(一連の呼び出されたコンポーネント/サブシステム)として定義され、業務トランザクションBTA2はサーブレットA2からウェブサービスへそしてサーブレットB1へのフローとして定義される。また、トランザクションBTA2は、アプリケーションBに関する業務トランザクションBTB1を生成する。BTB1は、サーブレットB1からデータベースYへのフローとして定義される。
一般的に、エージェントは、アプリケーション/ウェブサーバを通過するあらゆるトランザクションのコンポーネントを追跡することができる。トランザクションに関与するソフトウェアコンポーネント(例えばクラスメソッドの組のような)は、それらが呼び出される順序で呼び出しスタックの内部でプッシュされる。制御フローがコンポーネントに戻る場合、コンポーネントは呼び出しスタックからポップされる。しかしながら、トランザクションの呼び出しスタックは、ユーザよって関心のあるまたは関心のない複数のコンポーネントを含む。不必要に複雑な依存グラフを防ぐため、エージェントは、単に関心のあるノード間の依存を収集するだけである。呼び出しスタックにおいて最初に関心を引くエレメントであるコンポーネント、またはそれ自身のJVM(Java(登録商標)仮想マシン)呼び出しの外部呼び出しを行うコンポーネントは、依存グラフのためのものであると考えられる。
呼び出しスタックにおいてプッシュされた最初のコンポーネントは、必ずしも関心を引くコンポーネントであるわけではない。呼び出しスタックにおいて最初に関心を引くコンポーネントは、フロントエンドとしてマークされる。JVMの外部呼び出しは、通常、ソケットを含む。トランザクション内の最後のコンポーネントとして現れるソケットは、ユーザとって必ずしも関心を引くものではない。ソケット呼び出し以前に任意のコンポーネントを関心のあるコンポーネントとしてマークするためのメカニズムを提供する。ソケット呼び出し以前で、ソケット呼び出しに最も近い関心を引くコンポーネントがバックエンドとしてマークされる。基準値の構成における、例えば、サーブレット、EJB、JDBC/データベース、等々のいくつかの事前に定義された関心を引くコンポーネントの種類を提供することができる。ユーザは、トレーサの拡張機能によって関心を引く種類を拡張することができる。
さらに、依存グラフにおいて、ソースとターゲットの頂点から構成される辺、および開始辺は、外部頂点とフロントエンドのコンポーネントとの間にある。開始頂点は、通常、クラウドまたは外部のコンポーネントのいずれかによって表される。
図4Fは、図4Aのトランザクショントレースに基づく単一のJVMトランザクションの呼び出しスタックを示す。BTA1は、単一のJVMトランザクションの例で、呼び出しアプリケーションのJVM内に限定されるものである。BTA1は、アプリケーションAのJVM内に制限されている。一つの可能な実装において、外部頂点405は、入ってくるHTTPリクエストによって提供されるが、HTTPリクエストは、サーブレットA1 402を呼び出し、サーブレットA1 402は次にPOJOA1 406を呼び出す。POJOA1は、次にデータベースXを呼び出す。データベースへの呼び出しは、データベースコネクティビティをJava(登録商標)アプリケーションに提供するソフトウェアコンポーネントであるJDBCドライバ408を介して送られる。JDBCドライバ408から実際の物理的なデータベース、即ちデータベースXへのプロセス間の通信フローは、ソケット410を介して通過する。
BTA1 422のための呼び出しスタックは、サーブレットA1のスタックエレメント420、POJOA1のスタックエレメント416、JDBCドライバのスタックエレメント414およびソケットのスタックエレメント412を含む。これらのスタックエレメントに基づいて、エレメント間の辺は、依存グラフの作成における使用のために定義される。これらは、サーブレットA1がPOJOA1に依存していることを示す辺472、POJOA1がJDBCドライバに依存していることを示す辺471、およびJDBCドライバがソケット呼び出しに依存していることを示す辺470を含む。
図4Gおよび図4Hは、図4Fの呼び出しスタックのための依存ダイグラフの枝刈り前および枝刈り後を、それぞれ示す。前述したように、いくつかのコンポーネントは、関心を引くとは考えられないため、依存グラフを準備する前に枝刈りされる。例えば、POJOA1には関心がないと仮定すると、サーブレットA1とPOJOA1間の辺472は、破棄される。代わりに、辺473は、サーブレットA1とJDBCドライバ間で延長される。同様に、JDBCドライバとソケット間の辺470は、JDBCドライバがバックエンドとしてマークされるため、重要なものとして扱われないと仮定する。この例では、図4Gの呼び出しシーケンスは、図4Hの呼び出しシーケンスを取得するために、POJOA1 406およびソケット410を除去することによって枝刈りされる。
図4Iは、図4Bおよび図4Cのトランザクショントレースに基づくクロスJVMトランザクションの呼び出しスタックを示す。クロスJVMトランザクションは、複数のJVMおよびトランザクションの呼び出しスタックを含む。BTA2は、クロスJVM業務トランザクションの例である。1つの可能な実装では、外部頂点440は、入ってくるHTTPリクエストによって提供されるが、HTTPリクエストは、サーブレットA2 402を呼び出し、サーブレットA2 402は次にウェブサービスクライアント442を呼び出す。即ち、サーブレットA2からサーブレットB1 412へのウェブサービス呼び出しは、プロセス間のソケット444を介して送られる。この呼び出しは、クロスJVM呼び出し490である。BTA2 452のための呼び出しスタックは、サーブレットA2のスタックエレメント450、ウェブサービスクライアントのスタックエレメント448およびソケットのスタックエレメント446を含む。これらのスタックエレメントに基づいて、エレメント間の辺は、依存グラフの作成における使用のために定義される。これらは、サーブレットA2がウェブサービスクライアントに依存していることを示す辺481、およびウェブサービスクライアントがソケット呼び出しに依存していることを示す辺480を含む。
BTB1については、外部頂点460は、アプリケーションAから入ってくる呼び出しを表す。これは、サーブレットB 412を呼び出し、サーブレットB1 412は、次にJDBCドライバ462を呼び出す。JDBCドライバ462は、ソケット464を介してデータベースYへの呼び出しを行う。BTB1 491のための呼び出しスタックは、サーブレットB1のスタックエレメント470、JDBCドライバのスタックエレメント468およびソケットのスタックエレメント466を含む。これらのスタックエレメントに基づいて、エレメント間の辺は、依存グラフの作成における使用のために定義される。これらは、サーブレットB1がJDBCドライバに依存していることを示す辺483、およびJDBCドライバがソケット呼び出しに依存していることを示す辺482を含む。サーブレットB1からデータベースYへのデータベース呼び出しは、単一のJVM業務トランザクションBTB1の一部だけではなく、クロスJVM業務トランザクションBTA2の一部でもあることに注意されたい。したがって、与えられたコンポーネント/サブシステムは、1以上の業務トランザクションの一部である。
一例において、業務トランザクションBTA2およびBTB1の両方のソケットに対する辺は、それらのソケットの前におけるバックエンドマーカの出現により重要であるとは考えられない。このケースでは、辺480および482は、辺481および483を残して枝刈りする。
図4Jおよび図4Kは、図4Iの呼び出しスタックのための依存ダイグラフの枝刈り前および枝刈り後を、それぞれ示す。上記の例では、図4Jの呼び出しシーケンスは、ソケット444および464を削除することによって枝刈りされる。外部頂点460は、ウェブサービスクライアント442によって実質的に置き換えられるため、同様に枝刈りされる。
図5Aは、図4Hおよび図4Kの枝刈りされた依存ダイグラフに基づく、アプリケーションAの細部を記した依存グラフを示す。業務トランザクションBTA1およびBTA2は、アプリケーションAの依存グラフの一部である。BTA1およびBTA2は、アプリケーションAの1つの依存グラフまたはマップを形成するために結合される。BTA1で呼び出されたJDBCドライバは、呼び出しの物理的データベース、即ちデータベースXの名称によってラベル付けされている。サーブレットA1 402およびサーブレットA2 404は、別のインスタンスにおけるアプリケーションAのためのフロントエンドであるため、アプリケーションAと名付けられた頂点またはノード502の内部で共にグループ化される。
アプリケーションの、詳細な依存グラフの表示は、すべての呼び出されたバックエンドとのすべてのその関係/辺を示し、例えば、アプリケーションBのノード504によって示されるような他のアプリケーションとの任意のクロスJVM関係などを含んでいる。サーブレットA1 402とデータベースX 401の間の辺525、サーブレットA2 404とウェブサービスクライアント442の間の辺523、ウェブサービスクライアント442とアプリケーションB 504の間の辺524、などの辺もまた表示される。アプリケーションAに焦点が当てられているため、1つのオプションにおいては、サーブレットB1およびデータベースYのための頂点ならびにサーブレットB1とデータベースYの間の辺は、デフォルトとして示されない。必要に応じて、これらの項目は、例えば、図5Bに示されるように、ユーザコマンドに基づいて表示される。共通の一般化された外部頂点500は、アプリケーションAおよびアプリケーションBのために示され、サーブレットA1に対する辺520、サーブレットA2 404に対する辺521、およびアプリケーションB 504に対する辺522を表す。
図5Bは、図4Hおよび図4Kの枝刈りされた依存ダイグラフに基づく、アプリケーションAおよびアプリケーションBの細部を記した依存グラフを示す。このオプションにおいて、サーブレットB1ならびにデータベースYのための頂点またはノード412および431は、サーブレットB1 412とデータベースY 431の間の出ていく辺526とともに、それぞれ示される。診断のもとでの1以上の業務トランザクションに関するそれ以上の詳細を表示するため、ユーザはこのオプションを選択し得る。この例では、アプリケーションBが呼び出され、業務トランザクションBTB1の一部である。サーブレットB1は、アプリケーションBの唯一のフロントエンドであり、アプリケーションBと名付けられたノード504内に表示される。一般的に、ユーザは、依存グラフ内のアプリケーションの概要表示または詳細表示を選択することができる。
図6Aは、図4Hおよび図4Kの枝刈りされた依存ダイグラフに基づく、業務サービスの概要表示を提供するユーザインタフェース(UI)を示す。UI600は、ユーザが拡張するまたは折り畳む、および、選択する、ことができる、ラベル付きのノードと一緒にツリー領域602を含む。ツリーは、業務サービスの表示を提供するために選択されるノード、ここでは業務サービス1の例示のサブノードが提供されている、および、フロントエンドの表示を提供するために提供されるノードを含む。業務サービス1は、太字、下線、イタリック体の文字列で示されるように、ユーザによって選択され、依存グラフ601の現在の表示はこの選択に基づいている。ボタン604は、依存グラフ601の概要表示を提供するために選択され、一方、ボタン606は、これに代えて詳細表示を提供するために選択される。
業務サービスは、株式取引のウェブサイトのために株式の取引を実行する、書籍購入のウェブサイトのために書籍を購入する、または企業の福利厚生制度のために福利厚生に登録する、など一般的な共有された目的を達成するため、協働する複数の業務トランザクションを含む。この例では、BTA1およびBTA2は、同じ業務サービス(業務サービス1)の一部である業務トランザクションである。業務サービスの概要は、BTA1およびBTA2に含まれるすべての頂点および辺の結合を提供する依存グラフによって定義される。また、付加されたプレースホルダのノード608および612は、BTA1およびBT2をそれぞれ表現するために提供される。この表示では、辺およびノードに特別な強調表示はされていない。
依存グラフは、第1および第2レベルのトリアージャと連動することができる。トリアージャの役割は、アプリケーション/トランザクションを監視すること、および、もし何らかの問題が特定のアプリケーション/トランザクションによって発生した場合に適切な業務およびITオーナに通知することを含む。これらの目的のためには、アプリケーションのコンポーネントを特定することなくアプリケーションを識別できれば十分である。アプリケーションの詳細表示は、アプリケーションおよび関心を引くソフトウェアコンポーネントの数の増加に伴って複雑になることから、アプリケーションの依存グラフの概要表示は、下位レベルの詳細をユーザから隠すことによって複雑さを軽減することができるので、有用である。
概要表示において、アプリケーションのすべてのフロントエンドのコンポーネントは、アプリケーションのノードにおいて非表示である。アプリケーションからそのバックエンドのコンポーネントへ出ていく辺は、クロスJVMの辺に加えて表示される。さらに、アプリケーションのノードは、アプリケーションのメトリックによって修飾され、辺(例えば、アプリケーションとそのバックエンドの間、およびアプリケーションとクロスJVMアプリケーションの間)は、バックエンドの関係メトリックによって修飾される。アプリケーションのノードと特定のバックエンドの型(例えば、ウェブサービスおよびEJBバックエンド)との間の辺は、依存グラフの概要表示の複雑さを軽減するため、共にグループ化される。ユーザは、アプリケーションの正常性とそのバックエンドとのその関係を監視するために、これらのノードおよび辺についての警告を作成することを許容されている。警告が性能メトリックに設定されている場合、頂点または辺のための警告アイコンが表示される。警告アイコンは、アプリケーションの性能指標であり、ユーザがアプリケーションおよびそのバックエンドの正常性を監視したり、診断したりするのに役立つ。1つのアプローチでは、警告アイコンは、いくつかの状態、即ち、正常(緑)、注意(黄色)または危険(赤)のいずれか1つを表示する色分けされた円である。わかり易くすると、ここでは、暗色の円は危険または異常の状態を示し、白丸は通常の状態を示す。
例えば、アプリケーションBのノード504は、アプリケーションBのメトリックについて正常な状態を示す警告アイコン613を有する。アプリケーションAのノード502は、アプリケーションAのメトリックについて危険な状態を示す警告アイコン611を有する。その結果、BTA1のノード608およびBTA2のノード612も、また警告アイコン608および609を有し、これらの業務トランザクションについて、全体として危険な状態にあることを示す。警告アイコン611は、例えば平均応答時間など、アプリケーションAの複数のインスタンスに亘って集約メトリックに基づいて設定される。同様に、警告アイコン613は、アプリケーションBの複数のインスタンスに亘っての集約的なメトリックに基づいて設定される。
メトリックもまた、ノード内またはノードに隣接して表示される。例として、図8Cおよび図8Dを参照されたい。
図6Bから図6Dに関連して説明したように、ユーザは、業務トランザクションの1つを選択することができ、これによって、選択された業務トランザクションに特有の情報を提供するよう依存グラフを変更させることができる。この選択は、ノード608および612の1つの上にまたは領域602のツリーを介して、置かれたマウスのようなポインティングデバイスを使用することなどにより行われる。
依存グラフ601は、(a)第1のアプリケーション(例えばアプリケーションA)の複数のインスタンスを表す第1のノード(例えばノード502)、(b)第1のアプリケーションが依存する(例えば、それぞれ、アプリケーションB、データベースXまたはデータベースY)1つのサブシステムを表す第2のノード(例えばノード504、401または431)、および、(c)第1のアプリケーションの1つのサブシステムへの依存を表す少なくとも1つの辺/矢印を、グラフィカルに(図形を使って)表す。例えば、辺523および525は、アプリケーションAのアプリケーションBへの依存を表し、辺525は、アプリケーションAのデータベースXへの依存を表し、辺523、524および526は、アプリケーションBのデータベースYへの依存を表す。1つのサブシステムは、1つのサブシステムが別のサブシステムを呼び出すような場合には直接的に、または1つのサブシステムが別のサブシステムを呼び出す中間のサブシステムを呼び出す(または中間のサブシステムが別のサブシステム等々を呼び出す別の中間のサブシステムを呼び出す)ような場合には間接的に、別のサブシステムに依存している。一般的に、対象のサブシステムは、呼び出されたリソースの実行フローまたはシーケンスにおける任意の下流のサブシステムに依存していると言える。
第1のノードは、異なる複数のフロントエンドのコンポーネントを有する第1のアプリケーションの異なる複数のインスタンスを表し得る。例えば、アプリケーションAの1つのインスタンスは、フロントエンドのコンポーネントのサーブレットA1を有し、アプリケーションAの別のインスタンスは、フロントエンドのコンポーネントのサーブレットA2を有する(図4Eを参照されたい)。
第1のノードは、異なる複数の業務トランザクション内で呼び出された第1のアプリケーションの異なる複数のインスタンスを表し得る。例えば、アプリケーションAの1つのインスタンスは、BTA1(しかしBTA2ではない)で呼び出され、アプリケーションAの別のインスタンスは、BTA2(しかしBTA1ではない)で呼び出される(図4Eを参照されたい)。
第1のノードは、異なる複数の外部コンポーネントによって呼び出される第1のアプリケーションの異なる複数のインスタンスを表し得る。例えば、アプリケーションAの1つのインスタンスは、外部頂点360によって呼び出され(図4A)、アプリケーションAの別のインスタンスは、外部頂点370によって呼び出される(図4B)。
第1のノードは、1つのサブシステムに依存する第1のアプリケーションの1つのインスタンスと、その1つのサブシステムに依存しないそれぞれのアプリケーションのうちの1つの別のインスタンスを表し得る。例えば、アプリケーションAの1つのインスタンスは、データベースXに依存し、アプリケーションAの別のインスタンスは、例えば、エラーまたはネットワーク障害または可用性のためにデータベースXにアクセスしない。
依存グラフは、また、(d)別のサブシステムを表す第3のノード、および、(e)第1のアプリケーションの別のサブシステムへの依存を表す少なくとも1つの辺を、グラフィカルに表す。例えば、アプリケーションAを第1のアプリケーションとし、そのノード502を第1のノードとし、アプリケーションBをアプリケーションAが依存する1つのサブシステムとし、そのノード504を第2のノードとし、データベースXをアプリケーションAが依存する別のサブシステムとし、そのノード401を第3のノードとして、仮定する。辺525は、アプリケーションAのデータベースX 401への依存を表す。アプリケーションAの1つのインスタンスは、データベースXへは依存しないが、アプリケーションBには依存することが可能であり、アプリケーションAの別のインスタンスは、アプリケーションBには依存しないが、データベースXには依存することが可能である。
さらに、依存グラフは、(a)複数の個別のアプリケーションのうちの1つのアプリケーション(例えばアプリケーションA)の複数のインスタンスまたはデプロイメントを示す第1のノード(例えばノード502)、(b)複数のアプリケーションのうちの別のアプリケーション(例えばアプリケーションB)の複数のインスタンスを表す第2のノード(例えばノード504)、および(c)上記の1つのアプリケーションの、上記の別のアプリケーションへの依存を表す少なくとも1つの辺(例えば523、524)を、グラフィカルに表す。
複数のアプリケーションの1つの少なくとも1つのインスタンスは、ウェブサービス(例えば、ウェブサービスクライアント442)を介して複数のアプリケーションの別の1つのアプリケーションの少なくとも1つのインスタンスを呼び出すことができ、依存グラフは、そのウェブサービスをグラフィカルに表す。
複数のアプリケーションのうちの1つの少なくとも1つのインスタンスは、クロスJVM呼び出しを介して複数のアプリケーションの別の1つの少なくとも1つのインスタンスを呼び出すことができる(例えば、アプリケーションAからアプリケーションBへの呼び出しはクロスJVM呼び出しである−図4Iを参照されたい)。
第1のノードは、複数のアプリケーション(例えばアプリケーションB)の別の1つを呼び出す複数のアプリケーション(例えばアプリケーションA)の1つの、少なくとも1つのインスタンスを表し、複数のアプリケーションの別の1つを呼び出さない複数のアプリケーションの1つの、別のインスタンスを表す。例えば、前述のように、エラーまたはネットワークの可用性のため、1つのサブシステムは別のサブシステムを異なる時間に呼び出したり呼び出さなかったりする。
依存グラフ601は、与えられた期間で呼び出されるすべてのパスおよびサブシステムの表示を提供するために、BTA1およびBTA2の複数のインスタンスを有利に集約する。
図6Bは、業務トランザクションBTA1が選択された後の図6Aのユーザインタフェースを示す。BTA1のノードがツリーの領域602において強調表示されることに注意されたい。業務トランザクションの概要表示は、アプリケーションの概要表示に関してトランザクションのフローを表示する。フロントエンドから呼び出されたすべてのノードは、たとえそれらが業務トランザクションの一部ではないとしても、表示に含まれる。しかしながら、1つのアプローチにおいて、業務トランザクションの一部であるノードおよび辺だけが強調表示される。これは、ノード608、502および401ならびにそれらの間にある辺672および525を含む。アプリケーションに入ってくる辺が業務トランザクションの一部ではない場合、その入ってくる辺は含まれない。ここで、UI610において、業務トランザクションBTA1の概要表示が依存グラフ603によって提供される。アプリケーションA 502とウェブサービス442の間の辺523、およびウェブサービス442とアプリケーションB 504の間の辺524は、BTA1の一部ではないにもかかわらず、それらは依然として表示されるが、強調表示はされない。BTA1の一部である辺(627および525)は、それらがBTA1の一部であるために強調表示される。1つのアプローチでは、アプリケーションBはBTA1の一部ではないため、アプリケーションB 504とデータベースX 431の間の辺は表示されない。
強調表示は、異なる色、より太いノードの枠やより太い辺(ここで行われているように)などの様々な可視化技術を用いて実現される。
依存グラフ603は、BTA1のために与えられた期間で呼び出されるすべてのパスおよびサブシステムの表示を提供するために、BTA1の複数のインスタンスを有利に集約する。
選択された業務トランザクションに特有の依存グラフにおいて、選択された業務トランザクションと同様に、特有の警告アイコンおよびメトリックが提供される。例えば、アプリケーションAのための、メトリックまたは警告アイコンは、BTA1に関連して呼び出されるアプリケーションAのインスタンスに関して集約されるが、BTA2のような別の業務トランザクションに接続して呼び出されるアプリケーションAのインスタンスに関することはない。
依存グラフは、(a)第1のアプリケーション(例えばアプリケーションA)が呼び出される第1の業務トランザクション(BTA1)を表す第1の識別子(例えばノード608のBTA1)、(b)第1のアプリケーションの複数のインスタンスを表すノード(例えば502)、(c)第1の業務トランザクションに関連して第1のアプリケーションが依存する1つのサブシステム(例えばデータベースX)を表すノード(例えば401)、および(d)第1の業務トランザクションに関連して第1のアプリケーションの1つのサブシステムへの依存を表す少なくとも1つの辺(例えば525)を、グラフィカルに表す。アプリケーションAのインスタンスおよびデータベースXは、それらが実行フロー内で呼び出されている、より多くの業務トランザクションのコンポーネントの1つに基づいてBTA1に関連付けられている実行フロー内で呼び出されるため、BTA1に接続される(図8Aも参照されたい)。
第1の識別子は、少なくとも1つの辺(例えば627)によって、第1のアプリケーションの複数のインスタンスを表すノード(例えば502)に接続されているノード(例えば608)によってグラフィカルに表される。
第1のアプリケーションは、また第2の業務トランザクション内でも呼び出される(例えばBTA2−図6Cを参照されたい)。このケースでは、依存グラフは、(e)第2の業務トランザクションを表す第2の識別子(例えばノード612のBTA2)、(f)第2の業務トランザクションに関連して第1のアプリケーションが依存する別のサブシステムを表すノード(例えばアプリケーションB)、および(g)第2の業務トランザクションに関連して第1のアプリケーションの別のサブシステムへの依存を表す少なくとも1つの他の辺(例えば、523、524)を、グラフィカルに表す。
図6Bに示すように、第1の業務トランザクション(例えばノード608)のユーザの選択に応答して、依存グラフは、第2の識別子に対して、そして、おそらく他の業務トランザクションの識別子に対して第1の識別子を視覚的に区別し、別のサブシステムを表すノードに対して上記の1つのサブシステムを表すノードを視覚的に区別し、少なくとも別の1つ辺に対して上記の少なくとも1つの辺を視覚的に区別する。
第1のアプリケーションは、呼び出されている第1のアプリケーションの、少なくとも1つの第1の予め選択されたコンポーネント(例えばサーブレットA1−図4Eを参照されたい)に基づいて第1の業務トランザクションによって呼び出され、そして第1のアプリケーションは、呼び出されている第1のアプリケーションの第2の予め選択されたコンポーネント(例えばサーブレットA2−図4Eを参照されたい)に基づいて第2の業務トランザクションによって同様に呼び出される。
図6Cは、業務トランザクションBTA2が選択された後の図6Aのユーザインタフェースを示す。BTA2のノードは、ツリーの領域602において強調表示されていることに注意されたい。UI620の依存グラフ605において、BTA2の概要表示は、BTA2のノード612、アプリケーションAのノード502、ウェブサービスクライアントのノード442、アプリケーションBのノード504およびデータベースYのノード431、ならびにそれらの間の辺(辺527、523、524および526)を強調表示する。強調表示された辺は、アプリケーションB 504とデータベースY 431の間の辺526を含むが、BTA1の概要表示には含まれていない(図6B)。アプリケーションA 502とデータベースX 401間の辺525は、それはBTA2のトランザクションフローには関与しないため、強調表示されない。これは、トリアージャが関連するコンポーネントについて迅速にトラブルシューティングに注力することを許容する。
依存グラフ605は、BTA2のために与えられた期間で呼び出されるすべてのパスおよびサブシステムの表示を提供するために、BTA2の複数のインスタンスを有利に集約する。
図6Dは、業務トランザクションBTB1が選択された後の図6Aのユーザインタフェースを示す。BTB1のノードは、ツリーの領域602において強調表示されていることに注意されたい。UI630の依存グラフ607において、BTB1の概要表示は、BTB1のノード614、アプリケーションBのノード504およびデータベースYのノード431、ならびにそれらの間の辺を強調表示する。
依存グラフ607は、BTB1のために与えられた期間で呼び出されるすべてのパスおよびサブシステムの表示を提供するために、BTB1の複数のインスタンスを有利に集約する。
図7A1は、図4Hおよび図4Kの枝刈りされた依存ダイグラフに基づく概要表示を提供するユーザインタフェースを示す。ここでは、アプリケーションAがフロントエンドの表示において選択されている。この選択は、アプリケーションAのノード502をクリックすることによって、またはツリーの領域602を介して行われ、アプリケーションAのノードの強調表示によってこの選択が示される。UI700において、依存グラフ701は、業務トランザクションの定義に関係なく、ノードが依存するすべてのノードおよびこれらのノード間の辺を識別することによって、アプリケーションAのためのフロントエンドの表示を提供する。UI700の付加された領域702は、ツリーの領域602内で選択されたノードのための情報を提供する。例えば、付加された情報は、アプリケーションAのコンポーネントおよびそれらが呼び出すコンポーネントを含む。具体的には、アプリケーションAは、データベースXを呼び出すサーブレットA1、およびウェブサービスクライアントを呼び出すサーブレットA2を含む。各コンポーネントの名称は、コンポーネントに特有の付加的な情報を取得するためにユーザによって選択されるハイパーリンクである。
図7A2は、図7A1のユーザインタフェースに適用される経時変化処理を示す。経時変化処理は、依存グラフのいずれにも適用し得るものであり、最近呼び出されていないという理由によって関連性が低いとされたコンポーネントを削除する。これによってユーザは、生きているトランザクションの診断に重点的に取り組むことができる。頂点および辺の経時変化は、最後に呼び出された辺の経過時間に基づく。経過時間は、現在の時刻からの、または別の参照時刻からの経過した時間である。ある辺の経過時間が第1の閾値の経過時間よりも古い場合、その辺は、経過時間が第1の閾値の経過時間を超えない基準ケースと比較して、異なる視覚的外観である経時変化した外観を有するように描画(レンダリング)される。その入ったり出たりするすべての辺が経時変化した外観を有する場合、頂点は経時変化した外観によって示される。さらに、経時時間が、第1の閾値の経時時間よりも長い第2の閾値の経時時間を超える場合、その頂点および辺は、依存グラフから完全に削除される。これらの閾値の経時時間は、ユーザによって設定可能である。UI704の依存グラフ711において、点線はデータベースX 401を示し、アプリケーションA 502からデータベースX 401への辺525は経時変化した外観を示す。したがって、データベースXのノード401および辺525は、第1の閾値の経時時間よりも古い。この例では、(アプリケーションA、データベースXの)辺は、その最後に報告された日付が削除時間枠内に収まるため、表示中に依然として含まれる。つまり、辺の経時時間は、第1の閾値の経時時間よりも大きいが、第2の閾値の経時時間には至っていない。
1つの状況として、アプリケーションAを第1のアプリケーション(第1のノード502によって表される)として、およびデータベースXをアプリケーションAが依存する1つのサブシステム(第2のノード401によって表される)として仮定する。第1のアプリケーション(アプリケーションA)が1つのサブシステム(データベースX)を呼び出したときからの経過時間が閾値(第1の閾値の経時時間)を超えた場合、依存グラフは、第2のノード(401)の経時変化をグラフィカルに表す。また、第1のアプリケーションが1つのサブシステムを呼び出したときからの経過時間が閾値(第2の閾値の経時時間)を超えた場合、依存グラフは更新され、第2のノードが削除される。
図7A3は、図7A1のユーザインタフェースに適用される経時変化処理の別の例を示す。UI706は依存グラフ708を提供する。別の状況では、アプリケーションAを第1のアプリケーション(第1のノード502によって表される)として、アプリケーションBをアプリケーションAが依存する1つのサブシステム(第2のノード504によって表される)として、およびデータベースYをアプリケーションBが依存する別のサブシステム(第3のノード431によって表される)として仮定する。依存グラフは、(d)別のサブシステムを表す第3のノード(431)、および(e)1つのサブシステムの、もう1つのサブシステムへの依存を表す少なくとも別の辺(526)を、グラフィカルに表す。第1のアプリケーションが1つのサブシステムを呼び出したときからの経過時間が関連付けられた閾値(第1の閾値の経時時間)を超える場合、および、1つのサブシステムが別のサブシステムを呼び出したときからの経過時間が関連付けられた閾値(第1の閾値の経時時間)を超える場合、依存グラフは、第2のノードの経時変化をグラフィカルに表す。この経時変化は、アプリケーションBのノード504の点線の枠によって示される。
別のアプローチにおいて、第1のアプリケーションが1つのサブシステムを呼び出したときからの経過時間が関連付けられた閾値(第2の閾値の経時時間)を超える場合、および、その1つのサブシステムが別のサブシステムを呼び出したときからの経過時間が関連付けられた閾値(第2の閾値の経時時間)を超える場合、依存グラフは更新され、第2のノードが削除される。これは図7A4によって示される。図7A4は、図7A1のユーザインタフェースに適用される経時変化処理のさらなる例を示す。UI710は依存グラフ712を提供する。1つのアプローチにおいて、ノードが経時変化によって削除される場合、下流のノードおよび辺もすべて削除される。さらに、ノードへのウェブサービス呼び出しが削除される。
図7Bは、詳細表示における図7Aのユーザインタフェースを示す。UI710において、詳細表示のためのボタン606が選択されると、依存グラフ703が各アプリケーションで呼び出されるコンポーネントを特定する。1つのアプローチにおいて、アプリケーションのノードの詳細表示は、アプリケーションに関与する業務トランザクションのためのフロントエンドのコンポーネントを表示する。具体的には、アプリケーションAのノード502内に、サーブレットA1 402およびサーブレットA2 404のノードが表示され、そしてアプリケーションBのノード504内に、サーブレットB1のノード412が表示される。辺は、またアプリケーションのノードにではなく、特定のコンポーネントに接続されるように変更される。
依存グラフは、ユーザの選択に基づいて、概要表示または詳細表示のいずれか一方を選択的に提供される。その概要表示においては、第1のノード(例えばノード502)は、複数のアプリケーションのうちの1つのアプリケーション(例えばアプリケーションA)の複数のインスタンスの呼び出されたコンポーネントを特定することなく、複数のアプリケーションのその1つのアプリケーションの複数のインスタンスを表す。その詳細表示においては、第1のノードは、複数のアプリケーションの1つアプリケーションの複数のインスタンスの呼び出されたコンポーネント(例えばサーブレットA1、サーブレットS2)を特定するとともに複数のアプリケーションのうちのその1つのアプリケーションの複数のインスタンスを示す。
図7Cは、図4Kの枝刈りされた依存ダイグラフに基づく概要表示を提供するユーザインタフェースを示す。ここでは、アプリケーションBがフロントエンドの表示において選択されている。UI720において、依存グラフ705は、アプリケーションBのノード504、データベースYのノード431および辺526を示す。アプリケーションBの上流でありアプリケーションBを呼び出すノードは、表示されない。この表示により、ユーザは特定のアプリケーションおよびそれが呼び出すサブシステムに重点的に取り組むことができる。付加的な領域702は、更新され、アプリケーションBにおけるサーブレットB1に関する情報を提供する。
図7Dは、詳細表示における図7Cのユーザインタフェースを示す。UI730において、詳細表示のためのボタン606が選択されると、依存グラフ707が各アプリケーションで呼び出されるコンポーネントを特定する。具体的には、アプリケーションBのノード504内にサーブレットB1 412が表示される。辺526もまた変更され、アプリケーションのノード504にではなく、サーブレットB1に接続される。
図7Eは、図7Aまたは図7Bのユーザインタフェースに基づくアプリケーションAのための正常性メトリックを提供するユーザインタフェースを示す。特定のアプリケーションなどの、フロントエンドのサブシステムのための正常性または性能メトリックは、ツリーの領域602を介してアクセスされ、拡張される。この例では、アプリケーションAの下のノード、正常性が選択されている。正常性メトリックは、平均応答時間、間隔ごとの応答、同時呼び出し、間隔ごとのエラーおよびストールカウントなどの情報を提供する、グラフ、テーブルまたは他の視覚的表現を含み得る。
応答時間は、時間間隔におけるアプリケーションAの複数のインスタンスの複数の呼び出しに関する平均である。残りのメトリックは、時間間隔について同様に集約される。
図8Aは、1以上のアプリケーションの操作を示す際に用いられる階層を示す。証券取引を含む業務サービスに関する特定の例が提示されている。複数の異なるレベルの階層が必要な組織構造に基づいて定義され得る。例えば、階層は、人間が理解し易い用語を含み、その用語は、クライアントの、監視されるアプリケーションとの相互関係の理解を容易にするものである。階層は、相互関係が営利目的の業務の領域にあるか否か、例えば、電子商取引のトランザクションか、教育組織または政府組織のためにあるかなど、アプリケーションとの相互関係の類型を包含する。さらに、1以上の階層は、各ノードが記述名を持つ1以上の階層の複数の異なるレベルにおけるノードを含む。階層は、人間のオペレータにいっそう理解され易い仕方でアプリケーションを実行するやり方についての情報を、体系化する方法を提供する抽象的な構成であると考えられる。
階層の最上位レベルは、「ドメイン」と名付けられたドメインレベル800である。階層の次のレベルは、業務サービスレベル802である。業務サービスの例は、ウェブサイトを用いた株式やその他の金融商品を扱う取引に関連する。このように「取引」は、階層の業務サービスレベルにおけるノードの名称である。取引業務サービスの特定のインスタンスは、例えば、特定のユーザが取引を実行すると発生する。他の業務サービスの例には、書籍販売のウェブサイトのための「書籍購入」、および福利厚生制度における従業員登録のための「福利厚生に登録」などがある。
階層の次のレベルは、業務トランザクションレベルである。前述したように、業務トランザクションは、ウェブサイトにログインしてアイテムを発注するなどのように、クライアントの観点からタスクを表す。業務サービスは、複数の業務トランザクションで構成され得る。例えば、取引に対しては、業務トランザクションは、ログイン804(例えば、ウェブサイトにログイン)、残高806(例えば、口座の残高を取得する)、取引概要808(例えば、最近の売買活動の報告を取得する)、発注810(例えば、オプション以外の株または債権のような証券を売買するために発注する)、およびオプション取引812(リサーチおよび/またはオプション取引を行う)を含む。ユーザがアカウントにログインしようとすると、ログインの特定のインスタンスが発生する。
さらに業務トランザクションは、1以上の業務トランザクションコンポーネントに関連付けられる。業務トランザクションコンポーネントは、サーブレットまたはEJBのなどのアプリケーションのコンポーネントの任意の型である。1つのアプローチでは、アプリケーションのコンポーネントの1つは、業務トランザクションのためのトランザクションコンポーネントを識別する、業務トランザクションコンポーネントとして設定される。業務トランザクションコンポーネントが識別するトランザクションに関連付けられている個々のトランザクション。トランザクションは、クライアントに対応するレスポンスを提供するために、クライアントからのリクエストに応答して呼び出されるソフトウェアコンポーネントのシーケンスを表す。例えば、業務トランザクションコンポーネントは、エージェントによって報告されたコンポーネントデータがルールのセットに一致する時期を判定することによって特定される。この定義は、例えば、特定のURLのホスト名称、URLのパラメータ、HTTPポストのパラメータ、クッキーおよび/またはセッションマネージャのパラメータなどを含む。加えて、またはその代わりに、定義は、特定のURLのホスト名称で開始するトランザクションを必要とする。エージェントまたはマネージャは、例えば、業務トランザクションコンポーネントが業務トランザクション内に存在している時期を判定するために、コンポーネントデータとルールのセットを比較する。業務トランザクションコンポーネントが検出される場合、関係付けられた業務トランザクションは特定の型のものである。例えば、業務トランザクションコンポーネント805、807、809、811または813が検出される場合、関係付けられた業務トランザクションは、それぞれログイン804、残高806、取引概要808、発注810またはオプション取引812である。
ウェブページに関連付けられているトランザクションのために、業務トランザクションコンポーネントは、画像(例えば、.gifファイル)、カスケーディングスタイルシート(例えば、.cssファイル)、Java(登録商標)スクリプトコードコンポーネント(例えば、.jsファイル)等々のウェブページにおいて使用される下位レベルのコンポーネントに関連して呼び出される。サーブレットに関係付けられているトランザクションのために、業務トランザクションコンポーネントは、セカンダリフレーム内にロードされているJava(登録商標)サーバページズ(JSP)に接続して呼び出される。
通常、業務トランザクションの各インスタンスは、1以上のアプリケーションまたは他のサブシステムのシーケンスのコードの実行に関与する。サブシステムは、互いに依存し、例えば、直列または分岐した連鎖で互いに呼び出す。異なる業務トランザクションが共通のサブシステムを使用することもある。サブシステムは、特定のタスクを実行する1以上のソフトウェアコンポーネントを含む。
サブシステムの例には、破線のボックスによって表される計測されたサブシステムがあり、これは、通常、フロントエンドのサブシステムである。同様に、点線のボックスによって表される未計測のサブシステムがあり、これは、通常、バックエンドのサブシステムである。あるフロントエンドのサブシステムは、ウェブサービスの呼び出しなどを介して別のフロントエンドのサブシステムを呼び出す。また、フロントエンドのサブシステムは、バックエンドのサブシステムを呼び出す。性能メトリックの全範囲は、計測されたサブシステムから取得される。限定された情報は、計測されたサブシステムからメソッドに呼び出されて使用されるメソッドから、未計測のサブシステムに着目して得られる。未計測のデータベースの場合、例えば、JDBCドライバ(呼び出しフロントエンドと同じJava(登録商標)バーチャルマシン(JVM)に位置する)は、データベースの応答性についての見解を与えるメトリックを提供する。未計測のメインフレームの場合、通常、メインフレームの特定のポートにメインフレームを呼び出すメソッドが存在し、その呼び出しにどのくらい時間がかかるか、またはそれがストールするか否かもしくはエラーを報告するか否かを評価できる。
多くの場合、未計測のサブシステムは、メインフレーム、データベース、または他の未計測のコンピューティングデバイスなどのバックエンドのサブシステムである。これらは不明のコンポーネント/宛先である。計測されたサブシステムは、取引サービス820、注文エンジン826、認証エンジン828、報告サービス824、認証サービス822および報告エンジン830を含む。未計測のサブシステムは、注文レコードSQL832、報告レコードSQL838、ポート番号6543を経由してアクセスされるシステムのcaDBホスト834、ポート番号3456を経由してアクセスされるシステムのcaSAPホスト821および顧客レコードSQL836を含む。その名称にSQLを含むサブシステムは、ストラクチャードクエリランゲージ(SQL)のデータベースである。「?」は、サブシステム834および821が不明であることを示す。
コンポーネント指向のプログラミングモデルは、プログラマに、コンポーネントに関係する構成要素からアプリケーションや他のプログラムを構築させるのに役に立つ。
各コンポーネントは、ソフトウェアの全体的機能に適合するよう特定の機能を実行する。さらに、コンポーネントは、コンポーネントのシーケンスがプログラム内で呼び出されるように、他のコンポーネントを呼び出し、同様に、再帰呼び出しでは自分自身を呼び出す。コンポーネント指向のプログラミングモデルの一例は、J2EEであるが、Java(登録商標)サーバページズ、エンタープライズJava(登録商標)ビーンズ(EJB)、サーブレットおよびJava(登録商標)データベースコネクティビティ(JDBC)のコンポーネントといったコンポーネントを用いることができる。JDBCは、クライントがいかにデータベースにアクセスするかを定義するJava(登録商標)プログラミング言語のためのアプリケーションプログラミングインタフェース(API)である。それは、データベース内のデータを照会や更新する方法を提供する。しかしながら、.NETのような他のコンポーネント指向のプログラミングモデルを使用することもできる。また、プログラミングモデルは、オブジェクト指向である必要はない。
1つの可能な実装では、コンポーネントは、クラスメソッド(CM)の組である。例えば、サーブレットはJava(登録商標)クラスの1つの例である。リクエストを受信し、対応するレスポンスを生成するのはオブジェクトである。クラスメソッドの組は、class.methodの表記により表される。クラスメソッドの組のフォーマットの例は、ServletA1.EnterOrderである。

図8Bは、取引の業務サービスがユーザによって選択された場合の、図8Aの階層と一致するユーザインタフェースのさらなる例を示す。UI840は、ユーザが業務トランザクションまたはフロントエンドに基づいた表示を選択できるようにするためにツリーが提供された領域842を含む。取引の業務サービスが選択されている。取引は、前述したように、残高、ログイン、発注、オプション取引および取引概要、の業務トランザクションを含む。
この選択に対応して、多く(1以上)の関連付けられた業務トランザクション、業務トランザクションのサブシステム、および、サブシステム間の依存を示す辺が、依存グラフ801に表示される。左側の楕円形の頂点804、806、808、810および812は、業務トランザクションを特定する。辺は、業務トランザクションのためにどのサブシステムが最初に呼び出されるか、および、続いて呼び出されるサブシステムはどれかを示す。ある場合には、共通のサブシステムが別々の業務トランザクションのインスタンスのために呼び出される。与えられた業務トランザクションのインスタンスに呼び出されたコンポーネントは、コンポーネントが同じサブシステムにあったとしても、一意の識別子を用いて別途追跡することができる。また、コンポーネントまたはアプリケーションとは分離したインスタンスは、別々の業務トランザクションのインスタンスにおいて(単一の)サブシステムで呼び出される可能性もある。これらの独立したインスタンスは、再度、別々に追跡することができる。
また、同じ業務トランザクションから分離した複数のインスタンスは、同じサブシステムを呼び出す必要はないことに注意されたい。例えば、エラーまたはネットワークの障害または可用性が原因で、エラーが生じなかった場合に呼び出される特定のサブシステムを業務トランザクションのインスタンスが呼び出すことはない。また、時刻や使用可能なリソースに起因して、同じ業務トランザクションの分離したインスタンスは、別々のサブシステムを呼び出し得る。様々なバリエーションが可能である。
ノードの枠は、ノードが強調表示されているか否かを示すために使用されており、強調表示の一種になる場合もある。強調表示は、あるノードまたは辺を、他のノードまたは辺からそれぞれ視覚的に区別する方法である。異なる色が使用されることもある。あるアプローチでは、実線が強調を示す一方で、点線または破線の枠は強調を示さない。ノードの強調表示は、領域842におけるユーザの選択、およびUIにおけるノードそのもののユーザの選択、に反応する。様々な強調表示、色分けおよび他の視覚的な効果が、ユーザに情報を伝達するために提供される。サブシステムのいくつかのノードは、(a)フロントエンドまたは集約されたフロントエンド(例えば、同じアプリケーションコンテキストを共有するすべてのサーブレット)を示す2つの重複する画面のような記号、(b)データベースを表す円筒形の記号、または(c)サブシステムの種類を識別するためにソケット呼び出しの宛先である不明の(未計測の)サブシステムを表す記号を、含む。
他の種類の表記には、メトリックと警告がある。警告は、業務トランザクション(関連付けられたコンポーネントデータに基づくもの)のため、フロントエンドの全体的なパフォーマンス(「正常性」)のため、およびフロントエンドによって未計測のバックエンドまたは別のフロントエンドにされるバックエンドの呼び出しのため、に使用可能である。別のフロントエンドに行われる呼び出しは、グラフ上に現われるように、ウェブサービスまたはEJBクライアントを介して行われる。前述のように、これらの警告は、ユーザによって作成および設定される。したがって、ある与えられた業務トランザクション、フロントエンドもしくはバックエンドの呼び出しは、業務トランザクションのために明示された警告を有する、または有しない。
フロントエンドのサブシステムは、ソケットを介してアプリケーションサーバからの呼び出しを行う。これらの呼び出しは、ウェブサービスの呼び出し、JDBCドライバの呼び出しまたはその他の呼び出しである。ウェブサービスは、通常、アプリケーションプログラミングインタフェース(API)またはハイパーテキストトランスファープロトコル(HTTP)を介してアクセスされたウェブAPIであり、リクエストされたサービスをホスティングするリモートシステムにおいて実行される。これらの呼び出し、およびJDBCドライバの呼び出しのようなその他の呼び出しは、呼び出しを検出して呼び出しに関するメトリックを取得するため、依然としてアプリケーションサーバにあるが、しかしアプリケーションサーバから呼び出すことから、バックエンドコールと称される。これらのバックエンド呼び出しの宛先は、他のフロントエンド(ウェブサービスやいくつかのEJB呼び出しの場合)または未計測のバックエンドのコンポーネントのいずれかである。これらの未計測のコンポーネントのほとんどは、少なくとも部分的にはバックエンド呼び出しから識別される。例えば、JDBCドライバの呼び出しは、その宛先データベースの名称でラベルが付されており、デフォルトのソケット呼び出しは、宛先ホストおよびポートでラベル付けされている。他の場合では、ユーザはカスタム呼び出しを定義しその宛先でラベル付けをする。これらのすべての場合で、UIは、データベースまたはコンポーネントの他の適切な型を示すアイコンで適切にラベル付けされたバックエンドの宛先を表すボックスを提供する。
例えば、ソケットを介して呼び出しがあり、その呼び出しは計測されており、56ミリ秒かかることがわかるが、その宛先(どのサブシステムをそれが呼び出したか)は不明である場合、バックエンドのノードと並んで「不明のコンポーネント」のアイコンを示し、システムのホスト名称とポートによってラベル付けされた、UIにおける時間メトリックを表示し得る。バックエンド821、832、834、836および838は、計測されることなく、そのため宛先によって報告された情報がない宛先を表すため、実質的にグラフ内のダミーのノードである。1つのフロントエンドから別のフロントエンドへの呼び出しのために、十分な計測が可能である。その呼び出しは、例えばウェブサービスまたはEJBクライアントを介して行われる。単一のフロントエンドから発しているすべてのウェブサービスの呼び出しは、集約され、単一の「ウェブサービス」のバックエンド呼び出しとして表されている。このように、他の種類の呼び出しとは異なり、ウェブサービスの呼び出しは、2以上の宛先を有する。この場合、バックエンド呼び出しは、グラフ内の二股分岐または枝分岐の矢印として現れる。ウェブサービス844および846(「W」で表される)は、同じくウェブサービスの呼び出しであるが、単一の宛先を有するもので、認証サービス822と認証エンジン828との間の呼び出しの対比として、2つのそのような二股分岐のウェブサービスの呼び出しを示す。
例えば、取引サービスのノード820は、複数のマシンにまたがって実行する取引サービスのサブシステムの複数のインスタンスの概要を表す。ウェブサービス844は、取引サービス820のサブシステムが実行する1以上のコンピューティングデバイス/マシンに関連付けられており、ウェブサービス846は、報告サービス824のサブシステムが実行する1以上のコンピューティングデバイス/マシンに関連付けられている。ウェブサービス844および846のメトリックまたは警告のアイコンは、1つのコンピューティングデバイスから次のコンピューティングデバイスへ行われるメソッド呼び出しの性能または正常性を表す。
1つのアプローチでは、警告は、応答時間などの時間メトリックに関連している。警告は、性能メトリックのどんな種類に基づいても設定可能である。例えば、計測は多くの種類の性能メトリックを生成することができ、それらには、コンポーネントの平均実行時間または応答時間、毎秒または間隔ごとの呼び出し率、呼び出し回数、開始したが終了していない間隔ごとの呼び出しの回数を示す同時実行のメトリック、および呼び出しを開始した間隔ごとのメソッド呼び出しの回数が特定の閾値を超えた呼び出し回数を示すストール状態のメトリックが含まれる。さらに、データは、ガーベジコレクションのヒープサイズ、ファイルやソケットのアクティビティを示すバンド幅メトリック、スレッドの数、システムログ、例外処理、メモリリークおよびコンポーネントの相互作用を特定する。これらはアプリケーションの実行時に取得され、エージェントによって報告されるコンポーネントデータの例である。警告は、どんな種類のアイテムにも提供可能である。
さらに、警告は、業務トランザクションコンポーネントための1以上の性能メトリックに基づいて設定可能である。例えば、警告は、特定の時間幅を超えたサブシステムのコンポーネントの平均応答時間を表す。
警告およびメトリックアイコンに基づいて、ユーザは、UIに示された、業務トランザクション、サブシステムおよび呼び出し、に関するさらなる情報を取得するために様々な手段を得ることができる。1つのアプローチでは、ユーザは、警告およびメトリックアイコンの存在によって案内され、関連付けられた、業務トランザクション、サブシステムおよび呼び出しに関するさらなる情報を、例えば問題を診断するために取得しようとする。
特定の業務トランザクションおよびそのサブシステムについて、UIは、発注810、およびオプション取引812の両方が、フロントエンドのアプリケーション/サブシステム、即ち取引サービス820を呼び出すことを示している。ある設定例では、例えば、株や債権の売買をするため、発注される注文を決めることにより、ユーザは発注810を開始する。すべての、ユーザ入力ならびにユーザに与えられる情報もしくは指示が、ウェブページまたは他のUIを介して提供される。または、プットオプションやコールオプションのようなオプションに関係する取引を決めることによって、ユーザはオプション取引812を開始する。いずれの場合も取引サービスが使用される。取引サービスは、例えば、注文/取引を処理するために付加的な情報を取得するシステムcaSAPホスト821を呼び出す。システムcaSAPホスト821は、計測されていないことからそれについてはあまり知られておらず、そのノードは単なるプレースホルダである。取引サービスのインスタンスにより呼び出されるコンピューティングデバイス821のポートが知られており(例えば、ポート3456)、この情報がノード821を修飾するために使用される。システムcaSAPホスト821は、別のホストまたはリソース(図示せず)を呼び出し得るが、これは図示されていない。
コンピュータネットワークでは、ポートは、通信のエンドポイントとして貢献するアプリケーション固有またはプロセス固有のソフトウェアの構成である。例えば、トランスミッションコントロールプロトコル(TCP)およびユーザデータグラムプロトコル(UDP)のようなインターネットプロトコルスイートのトランスポート層のプロトコルによって使用される。特定のポートは、一般にポート番号として知られている番号、関連付けられたIPアドレス、および通信に使用されるプロトコルによって特定される。TCPおよびUDPは、パケットのヘッダ内の送信元と宛先のポート番号を特定する。プロセスは、バインディングとして知られるプロセスで、ネットワークを介してデータを送受信するため、その入出力チャンネルのファイル記述子(ソケット)をポート番号およびIPアドレスと関連付ける。オペレーティングシステムのネットワーキングソフトウェアは、すべてのアプリケーションのポートからネットワークへの出ていくデータを送信するとともにパケットのIPアドレスとポート番号を一致させることによって到着するネットワークパケットをプロセスに転送する、タスクを有する。
プロセスは、ソケットを用いて転送プロトコルのポートとの関連付けを作成する。ソケットは、転送のエンドポイントとして使用されるソフトウェア構造である。プロセスのためにオペレーティングシステムによって作成され、ポート番号とIPアドレスの組み合わせで構成されたソケットのアドレスに結び付けられている。ソケットは、一度に一方向に(半二重)または同時に双方向に(全二重)データを送受信するために設定される。
取引サービス820は、注文/取引をリクエストするために、1以上のウェブサービス(ウェブサービスのノード844に集約されている)を使用する。ウェブサービス844は、例えばユーザの認証情報を検証するために、(a)注文/取引を処理する注文エンジンサブシステム826、および/または、(b)注文/取引を認証する認証エンジンサブシステム828、を順々に呼び出す。グラフは、ほぼ同じ時間にまたは異なる時間(例えば、注文レコードSQLデータベースへの呼び出しが行われた後)に、同じ業務トランザクションの一部または異なる業務トランザクションの一部(結局、取引サービスに関連付けられた2つの業務トランザクションが存在する)等として、これらの他サブシステムの両方を取引サービスが呼び出すことを必ずしも示すわけではない。他サブシステムは、同じ業務トランザクションの一部として呼び出されることも可能であるが、それは異なるインスタンス間である。グラフは、特定された期間のあるポイントで、取引サービスがウェブサービス844を用いてこれらのフロントエンドの両方を呼び出したことを伝えている。
注文エンジンサブシステム826は、ウェブサービス844からの1以上の呼び出しを処理するために2つのバックエンド、即ちSQLを用いて注文レコードを格納する注文レコードSQLデータベース832およびシステムcaDBホスト834を呼び出す。システムcaDBホスト834は、注文/取引を処理する付加的な情報を取得するために用いられる。認証エンジンサブシステム828は、例えば、ユーザ/顧客が注文/取引を行うことについて認証されていることを確認するため、顧客レコードを格納する顧客レコードSQLデータベース836を呼び出す。
ログイン804の業務トランザクションは、フロントエンドのサブシステム、即ち認証サービス822を含む。設定例では、ログインは、認証サービスサブシステム822を呼び出し、認証サービスサブシステム822が次に認証エンジンサブシステム828を呼び出す。認証エンジンサブシステム828は、認証サービスサブシステム822と同等のサーバまたは異なるサーバである。認証エンジンサブシステム828は、ユーザのログインがパスワードと一致することを確認するための顧客レコードにアクセスするために顧客レコードSQLデータベース836を呼び出す。制御フローは、ログイン業務トランザクションのインスタンスが終了するポイントである認証サービスシステム822に戻る。
残高806および取引概要808の両方が、共通のフロントエンドのサブシステム、即ち報告サービス824を呼び出す。設定例では、ユーザは、例えば、特定のアカウントでの資金量を知るために口座残高を取得するリクエストを行うことによって、残高を開始する。また、ユーザは、例えば注文/残高、送金などの最近のトランザクションの報告(例えばステートメント)を取得するためにリクエストを行うことによって取引概要808を開始する。いずれの場合も、報告サービス824はウェブサービス846を呼び出すことによって報告のリクエストを処理し、同様に、ウェブサービス846は認証エンジンサブシステム828を呼び出して、認証エンジンサブシステム828は、ユーザ/顧客が報告を取得することを承認されていることを確認するために顧客レコードにアクセスするため、顧客レコードSQLデータベース836を呼び出す。
一実施形態では、制御フローは報告サービス824に戻り、報告サービスはウェブサービス846を介して報告エンジンサブシステム830への別の呼び出しをして、報告エンジンサブシステム330は報告を提供するために使用されるレコードを取得するため、報告レコードSQLデータベース838を呼び出すことによって報告のリクエストを遂行する。ウェブサービス846へのこの呼び出しには、必要とされる報告の種類、アカウントの識別子、関連する時間フレームなどを特定する情報を含む。
図8Cは、図8Bのユーザインタフェースを示す。ここでは、発注の業務トランザクションがユーザによって選択された場合を示している。UI850において、依存グラフ803は、発注の1以上のインスタンスに関連付けられているノードおよび辺を強調表示している。強調表示されたノードは、810、820、821、844、826および832で、強調表示された辺は、これらのノードの間の矢印である。例示の時間メトリックもまた、例えば対応するノード上またはノード内に表示される。つまり、UIとそのノードおよび辺は、メトリックによって修飾される。ここで、例示の集約応答時間は、取引サービス820に対しては1200ミリ秒で、および例示の集約応答時間は、取引サービス820からバックエンド821への辺853によって表される呼び出しに対しては200ミリ秒である。また、警告アイコン851および852は、それぞれノード810および820に関連付けられている。警告アイコン855は辺853に関連付けられている。これらのメトリックは、発注のような業務トランザクションの単一のインスタンスのために存在し、またより一般的には、例えば、特定の時間間隔に関するなど業務トランザクションの複数のインスタンスについての平均である。
辺853は、このように少なくとも1つの:集約メトリック「200ミリ秒」および集約メトリックに基づく警告855により修飾されており、そしてノード820は、少なくとも1つの集約メトリック「1200ミリ秒」および集約メトリックに基づく警告852によって修飾された第1のノードである。
ノードおよび辺が強調表示されることにより、サブシステムが複数の業務トランザクションに関連付けられているとしても、ユーザは、与えられた業務トランザクションに関連付けられているサブシステムを迅速に識別することができる。さらに、メトリックおよび警告の使用によって、ユーザは、業務トランザクション内の与えられたサブシステムに問題があることを迅速に確認でき、そのサブシステムに関する診断に重点的に取り組むことができる。また、警告の重大度はユーザに指針を示す。UI上で提供されているメトリックは、特定の時間間隔で管理されたアプリケーションからデータに基づいている。
図8Dは、図8Bのユーザインタフェースを示す。ここでは、オプション取引の業務トランザクションがユーザによって選択された場合を示している。UI860において、依存グラフ807は、オプション取引の1以上のインスタンスに関連付けられたノードおよび辺を強調表示している。強調表示されたノードは、812、820、844、826、834、828および836であり、強調表示された辺は、これらのノードの間にある矢印である。例示の集約応答時間は1000ミリ秒であることが取引サービス820に対して示されている。また、警告アイコン854および852は、それぞれノード812および820に関連付けられている。これらのメトリックは、発注の単一のインスタンスのために存在し、あるいは、また、より一般的には、例えば、特定の時間間隔を超えた場合など、発注の複数のインスタンスについての平均である。
ノードまたは辺に対しての警告およびメトリックは、選択された業務トランザクションに特有のものであることに注意されたい。
依存グラフを提供するために用いられるデータは、選択された期間のために存在する。1つのアプローチにおいて、ユーザが「現在」ボタン852を選択すると、依存グラフを提供するために用いられるデータが時間の経過に応じて常に更新され、依存グラフ自体が基礎となるデータの変化に応じて更新される。例えば、データは、最後の15分(またはいくつかの他のデフォルトまたはユーザが設定した期間)のローリングウィンドウを表すために選択される。別のアプローチにおいて、ユーザが「過去」ボタン880を選択すると、依存グラフを提供するために用いられるデータは、過去の所定の期間のデータに固定され、時間が経過してもそのデータは更新されない。さらに、過去の期間は、時・分・秒をHH:MM:SS形式で表すタイムバー882上のスライダーツール884をドラッグすることによりユーザによって簡単に設定可能である。スライダーツールの現在の設定では、13:35:00からほぼ13:42:00までの期間が包含される。例えば、ユーザは、全体のスライダーツールをドラッグするために、またはより広い期間を含めるためスライダーツールの右および/または左の辺を延長するために、マウスを使用する。スライダーツールは、例えば、スライダーツールが水平に配置された場合にはその幅によって、スライダーツールが垂直に配置された場合にはその高さによって、過去の期間を識別する。
図9は、ユーザインタフェースを提供する方法を示す。前述のように、管理されたアプリケーションを実行すると、関連するコンポーネントデータは、アプリケーションの計測から取得される。この情報は、エージェントによってセントラルマネージャに報告される。マネージャにおけるデータは、記憶装置310(図3)のようなデータベース118(図1)に提供される。データは、本明細書で説明された機能を達成するために異なる方法でデータを問い合わせアクセスさせる、様々なデータフィールドを含む。
ステップ900において、データは、図8Dに関連して説明したように、現在の期間または過去の期間に設定された分析のもとで、指定された時間間隔でアクセスされる。データは、例えば、データストアから、1回、または繰り返しアクセスされる。ステップ902は、期間内で呼び出されたサブシステムおよびそれらの依存関係を識別する。業務トランザクションへのサブシステムの関連付けは、発生しているトランザクションについての情報を返す報告をする特別のマップトレーサを使用して実現する。トランザクションが業務トランザクションコンポーネントに一致する場合、そのトランザクションは、業務トランザクションコンポーネントの名称でラベルが付けられ、そのトランザクション内で呼び出されるすべての下位レベルのコンポーネントが業務トランザクションコンポーネント(つまりその業務トランザクション)に関連付けられる。これらの下位レベルのコンポーネントは、後に特定のルールに基づいて「サブシステム」に集約される。グラフとツリーに現れる、フロントエンドおよびバックエンドの呼び出しは、そのコンポーネントがトレースされたトランザクションの一部としてヒットされる場合にセグメントに関連付けられて現される特定のメトリックパス(識別子)に関連付けられている。そのため、選択された業務トランザクションコンポーネントまたはフロントエンドの識別子をスレッドの最初のセグメントとして探すことによって、トランザクションを識別する。一旦、サブシステムの識別子がトランザクショントレースで発見されると、そのサブシステムの「内部」に存在することがわかる。トランザクション内でその時点から行われたすべての呼び出しは、次の認識されるサブシステム(フロントエンドまたはバックエンド呼び出し)が呼び出されるまで、同じサブシステム(グラフ内で集約するものにおけるレベルが与えられる)の必要な部分である。
ステップ904は、平均応答時間、同時呼び出し、間隔ごとのエラー、間隔ごとの応答およびストールカウントなどの性能メトリックを算出する。メトリックは、それぞれの、業務トランザクション、トランザクションおよびコンポーネント対して算出される。ステップ906は、例えば、性能メトリックをそれぞれの警告の閾値と比較するなどして、警告レベルを決定する。ステップ908は、ユーザインタフェースを分析対象の時間間隔についての関連する情報で表示すること、または更新することを含む。ステップ908はまた、ユーザコマンドに基づいてユーザインタフェースを更新することを含む。
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、本発明の範囲を限定するものではない。上記した技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記した実施形態は、本発明の原理をベストに説明するために選定されたものであり、その実用に際しては、本発明が最適にその有用性を発揮するように、その特定用途に適するように当業者が様々に変形し得る。発明の範囲は、ここに添付した特許請求の範囲によって定められることを意図している。

Claims (22)

  1. コンピュータに実装される方法であって第1のアプリケーションのフローを可視化する方法であり:
    第1のアプリケーション(502)に関するデータにアクセスするためにデータストア(118、310)にアクセスすること;そのデータは、第1のアプリケーションの複数のインスタンスを表すものであり、第1のアプリケーションにインストールされた計測を用いて第1のアプリケーションに関連付けられたエージェント(108、112、116)から取得される;
    ユーザインタフェース上に依存グラフを表示すること;前記依存グラフは、ユーザの選択に基づいて、概要表示(604)と詳細表示(606)のいずれか一方を提供するものであり、
    概要表示では、前記依存グラフは、(a)前記第1のアプリケーションの呼び出されたコンポーネントを特定することなく前記第1のアプリケーションの複数のインスタンスを表す第1のノード(502、820)を図形を使って表し、(b)前記第1のアプリケーションが依存する1つのサブシステムを表す第2のノード(401、504、821、826、828、832、834、836)を図形を使って表し、(c)前記第1のアプリケーションの前記1つのサブシステムへの依存を表す辺(523、524、853)を図形を使って表し(d)前記第1のアプリケーションが依存する別のサブシステムを表す第3のノード(401、431)を図形を使って表し、(e)前記第1のアプリケーションの前記別のサブシステムへの依存を表す1つの辺(525、526)を図形を使って表し、
    詳細表示では、前記依存グラフは、(f)第1のノードについて前記第1のアプリケーションの第1の呼び出されたコンポーネント(402、404)と前記第1のアプリケーションの第2の呼び出されたコンポーネント(402、404)を図形を使って表し、(g)第2のノードについて前記1つのサブシステムの呼び出されたコンポーネント(412)を図形を使って表し、(h)前記第1の呼び出されたコンポーネントの前記別のサブシステムへの依存を表す辺を図形を使って表し、(i)前記第2の呼び出されたコンポーネントの前記1つのサブシステムの前記呼び出されたコンポーネントへの依存を表す別の辺を図形を使って表す;
    を有する。
  2. コンピュータに実装される請求項1の方法であり:
    第1のアプリケーションの前記1つのサブシステムへの依存は、第1のアプリケーションが呼び出される第1の業務トランザクション(BTA1、804、806、808、810、812)に関連しており;
    前記依存グラフは、第1の業務トランザクションを表す第1の識別子(BTA1)を図形を使って表し;第1の識別子は、辺(627)によって前記第1のノード(502)に接続されるノード(608)によって図形を使って表される。
  3. コンピュータに実装される請求項2の方法であり;
    第1のアプリケーションは、第2の業務トランザクション(BTA2、804、806、808、810、812)内で呼び出され;
    依存グラフは、(d)第2の業務トランザクションを表す第2の識別子(BTA2)、(e)第2の業務トランザクションに関連して第1のアプリケーションが依存する別のサブシステムを表すノード(431、442、504)、および、(f)第2の業務トランザクションに関連して第1のアプリケーションの前記別のサブシステムへの依存を表す別の辺(523、524、526)、を図形を使って表す。
  4. コンピュータに実装される請求項3の方法であり:
    ユーザによる第1の業務トランザクションの選択に応答して、前記依存グラフは、第1の識別子を第2の識別子から、前記1つのサブシステムを表すノードを前記別のサブシステムを表すノードから、および、前記第1のアプリケーションの前記別のサブシステムへの依存を表す前記1つの辺を前記別の辺から、視覚的に区別する。
  5. コンピュータに実装される請求項4の方法であり:
    第1のアプリケーションは、呼び出されている第1のアプリケーション(502)の、第1の予め選択されたコンポーネント(サーブレットA1)に基づいて第1の業務トランザクションによって呼び出され;
    第1のアプリケーションは、呼び出されている第1のアプリケーションの、第2の予め選択されたコンポーネント(サーブレットA1)に基づいて第2の業務トランザクションによって呼び出される。
  6. コンピュータに実装される請求項1から5のいずれか一項の方法であり:
    第1のノードは、異なる複数のフロントエンドコンポーネント(402、404、412)を有する第1のアプリケーションの異なる複数のインスタンスを表す。
  7. コンピュータに実装される請求項1から6のいずれか一項の方法であり:
    第1のノードは、異なる複数の業務トランザクション(804、806、808、810、812)内で呼び出された第1のアプリケーションの異なる複数のインスタンスを表す。
  8. コンピュータに実装される請求項1から7のいずれか一項の方法であり:
    第1のノードは、異なる複数の外部コンポーネント(360、370)によって呼び出された第1のアプリケーションの異なる複数のインスタンスを表す。
  9. コンピュータに実装される請求項1から8のいずれか一項の方法であり:
    第1のノードは、前記1つのサブシステムに依存する第1のアプリケーションの1つのインスタンス、および、前記1つのサブシステムに依存しない別のアプリケーションの所定のインスタンスを表す。
  10. コンピュータに実装される請求項1から9のいずれか一項の方法であり:
    第1のノードは、前記1つのサブシステムに依存するが前記別のサブシステムには依存しない第1のアプリケーションの1つのインスタンス、および、前記別のサブシステムに依存するが前記1つのサブシステムには依存しない第1のアプリケーションの別のインスタンスを表す。
  11. コンピュータに実装される請求項1から10のいずれか一項の方法であり:
    第1のアプリケーションが前記1つのサブシステムを呼び出したときからの経過時間が閾値を超えた場合、依存グラフは、第2のノードの経時変化を図形を使って表すか、あるいは、第2のノードを削除するように更新される。
  12. コンピュータに実装される請求項1から11のいずれか一項の方法であり:
    前記第1のアプリケーションの前記別のサブシステムへの依存を表す第1のノードの前記1つの辺(853)は、集約メトリック、および、集約メトリックに基づく警告の少なくとも1つにより修飾される。
  13. コンピュータに実装される請求項1から12のいずれか一項の方法であり:
    第1のアプリケーションが前記1つのサブシステムを呼び出したときからの経過時間が関連付けられた閾値を超える場合、および、前記1つのサブシステムが前記別のサブシステムを呼び出したときからの経過時間が関連付けられた閾値を超える場合、依存グラフは、第2のノードの経時変化を図形を使って表すか、あるいは、第2のノードを削除するように更新される。
  14. コンピュータに実装される請求項1から13のいずれか一項の方法であり:
    前記データは、スライダーツール(884)を介したユーザの選択に応答して、過去の期間に対して選択される。
  15. コンピュータに実装される請求項1から14のいずれか一項の方法であり:
    前記1つのサブシステムは、第1のアプリケーションが依存する別のアプリケーションの複数のインスタンスを有する。
  16. コンピュータに実装される請求項15の方法であり:
    第1のアプリケーションの1つのインスタンスは、ウェブサービス(844、846)を介して前記別のアプリケーションの1つのインスタンスを呼び出し、依存グラフは、ウェブサービスを図形を使って表す。
  17. コンピュータに実装される請求項15または16の方法であり:
    第1のアプリケーションの1つのインスタンスは、前記別のアプリケーションの1つのインスタンスをクロスJVM呼び出し(490)を介して呼び出す。
  18. コンピュータに実装される請求項15から17のいずれか一項の方法であり:
    第1のノードは、前記別のアプリケーションを呼び出す第1のアプリケーションの1つのインスタンス、および、前記別のアプリケーションを呼び出さない第1のアプリケーションの別のインスタンスを表す。
  19. アプリケーションのフローを可視化するシステムであり:
    コンピュータで読み取り可能なコードを記憶する記憶装置(310、340);
    前記記憶装置と通信するプロセッサ(230);
    を有しており、前記プロセッサは、コンピュータで読み取り可能なコードであって以下の処理を行うためのコードを実行する:
    第1のアプリケーション(502)に関するデータにアクセスするためにデータストア(118、310)にアクセスすること;そのデータは、第1のアプリケーションの複数のインスタンスを表すものであり、第1のアプリケーションにインストールされた計測を用いて第1のアプリケーションに関連付けられたエージェント(108、112、116)から取得される;
    ユーザインタフェース上に依存グラフを表示すること;前記依存グラフは、ユーザの選択に基づいて、概要表示(604)と詳細表示(606)のいずれか一方を提供するものであり、
    概要表示では、前記依存グラフは、(a)前記第1のアプリケーションの呼び出されたコンポーネントを特定することなく前記第1のアプリケーションの複数のインスタンスを表す第1のノード(502、820を図形を使って表し)、(b)前記第1のアプリケーションが依存する1つのサブシステムを表す第2のノード(401、504、821、826、828、832、834、836)を図形を使って表し、(c)前記第1のアプリケーションの1つのサブシステムへの依存を表す1つの辺(523、524、853)を図形を使って表し(d)前記第1のアプリケーションが依存する別のサブシステムを表す第3のノード(401、431)を図形を使って表し、(e)前記第1のアプリケーションの前記別のサブシステムへの依存を表す1つの辺(525、526)を図形を使って表し、
    詳細表示では、前記依存グラフは、(f)第1のノードについて前記第1のアプリケーションの第1の呼び出されたコンポーネント(402、304)と前記第1のアプリケーションの第2の呼び出されたコンポーネント(402、404)を図形を使って表し、(g)第2のノードについて前記1つのサブシステムの呼び出されたコンポーネント(412)を図形を使って表し、(h)前記第1の呼び出されたコンポーネントの前記別のサブシステムへの依存を表す辺を図形を使って表し、(i)前記第2の呼び出されたコンポーネントの前記1つのサブシステムの前記呼び出されたコンポーネントへの依存を表す別の辺を図形を使って表す。
  20. 請求項19のシステムであり:
    第1アプリケーションの前記1つのサブシステムへの依存は、第1のアプリケーションが呼び出される第1の業務トランザクション(BTA1、804、806、808、810、812)に関連しており;
    前記依存グラフは、第1の業務トランザクションを表す第1の識別子(BTA1)を図形を使って表す;第1の識別子は、辺(627)によって第1のノード(502)に接続するノード(608)によって図形的に表される;
    第1のアプリケーションは、第2の業務トランザクション(BTA2、804、806、808、810、812)内で呼び出され;
    前記プロセッサは、コンピュータで読み取り可能なコードであって依存グラフに以下を図形を使って表す処理を行うコードを実行する:
    (d)第2の業務トランザクションを表す第2の識別子(BTA2)、(e)第2の業務トランザクションに関連して第1のアプリケーションが依存する別のサブシステムを表すノード(431、442、504)、および、(f)第2の業務トランザクションに関連して第1のアプリケーションの別のサブシステムへの依存を表す別の辺(523、524、526)。
  21. 請求項20のシステムであり:
    ユーザによる第1の業務トランザクションの選択に応答して、前記プロセッサは、コンピュータで読み取り可能なコードであって、依存グラフに、第1の識別子を第2の識別子から、前記1つのサブシステムを表すノードを前記別のサブシステムを表す前記第3のノードから、視覚的に区別させるためのコードを実行する。
  22. 請求項20または21のシステムであり:
    ユーザによる第1の業務トランザクションの選択に応答して、前記プロセッサは、コンピュータで読み取り可能なコードであって、前記依存グラフに、前記別のサブシステムへの前記第1のアプリケーションの依存を表す前記1つの辺を前記別の辺から視覚的に区別させるためのコードを実行する。
JP2012087292A 2011-04-08 2012-04-06 Jvmおよびクロスjvm呼び出しスタックの可視化 Active JP5909140B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/082,741 US8782614B2 (en) 2011-04-08 2011-04-08 Visualization of JVM and cross-JVM call stacks
US13/082741 2011-04-08

Publications (2)

Publication Number Publication Date
JP2012221502A JP2012221502A (ja) 2012-11-12
JP5909140B2 true JP5909140B2 (ja) 2016-04-26

Family

ID=46000836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012087292A Active JP5909140B2 (ja) 2011-04-08 2012-04-06 Jvmおよびクロスjvm呼び出しスタックの可視化

Country Status (4)

Country Link
US (1) US8782614B2 (ja)
EP (1) EP2508997A1 (ja)
JP (1) JP5909140B2 (ja)
KR (1) KR101828506B1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202185B2 (en) * 2011-04-08 2015-12-01 Ca, Inc. Transaction model with structural and behavioral description of complex transactions
US8782614B2 (en) 2011-04-08 2014-07-15 Ca, Inc. Visualization of JVM and cross-JVM call stacks
US8806430B1 (en) 2011-06-08 2014-08-12 The Mathworks, Inc. Renaming instances of an entity in a coding environment
US20130081001A1 (en) * 2011-09-23 2013-03-28 Microsoft Corporation Immediate delay tracker tool
US9335885B1 (en) 2011-10-01 2016-05-10 BioFortis, Inc. Generating user interface for viewing data records
US9436588B2 (en) 2012-09-28 2016-09-06 Identify Software Ltd. (IL) Efficient method data recording
US9471211B2 (en) * 2013-03-18 2016-10-18 International Business Machines Corporation Chaining applications
US10289277B2 (en) * 2013-06-20 2019-05-14 Level 3 Communications, Llc Systems and methods for information technology portfolio knowledge and management
US11310165B1 (en) * 2013-11-11 2022-04-19 Amazon Technologies, Inc. Scalable production test service
US20150244600A1 (en) * 2014-02-26 2015-08-27 Microsoft Corporation Structured logging schema of usage data
WO2015140842A1 (ja) * 2014-03-20 2015-09-24 日本電気株式会社 システムを監視する情報処理装置及び監視方法
WO2015140841A1 (ja) * 2014-03-20 2015-09-24 日本電気株式会社 異常を検知する情報処理装置及び異常検知方法
CN105224536A (zh) * 2014-05-29 2016-01-06 国际商业机器公司 划分数据库的方法和装置
US9880918B2 (en) * 2014-06-16 2018-01-30 Amazon Technologies, Inc. Mobile and remote runtime integration
US9250895B2 (en) 2014-06-24 2016-02-02 International Business Machines Corporation Establishing subsystem boundaries based on call flow graph topology
CA2956078C (en) 2014-07-24 2021-12-07 Ab Initio Technology Llc Data lineage summarization
JP6258159B2 (ja) * 2014-08-26 2018-01-10 株式会社東芝 プログラム情報生成システム、方法、及びプログラム
US10353701B2 (en) 2014-09-29 2019-07-16 Sap Se Code analysis for cloud-based integrated development environments
US10075352B2 (en) * 2014-12-09 2018-09-11 Ca, Inc. Monitoring user terminal applications using performance statistics for combinations of different reported characteristic dimensions and values
WO2016130615A1 (en) * 2015-02-11 2016-08-18 Ab Initio Technology Llc Filtering data lineage diagrams
AU2016219432A1 (en) * 2015-02-11 2017-08-24 Ab Initio Technology Llc Filtering data lineage diagrams
WO2016161178A1 (en) * 2015-03-31 2016-10-06 Galaxe. Solutions, Inc. System and method for automated cross-application dependency mapping
US9448833B1 (en) 2015-04-14 2016-09-20 International Business Machines Corporation Profiling multiple virtual machines in a distributed system
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10031815B2 (en) 2015-06-29 2018-07-24 Ca, Inc. Tracking health status in software components
JP6623731B2 (ja) * 2015-12-07 2019-12-25 日本電気株式会社 情報処理装置、情報処理方法、及び、プログラム
WO2017142535A1 (en) * 2016-02-18 2017-08-24 Entit Software Llc Visualizations of computer program transactions
US10261886B2 (en) 2016-11-09 2019-04-16 Entit Software Llc Function call visualization
US10437704B2 (en) * 2016-11-22 2019-10-08 Ca, Inc. Identifying back-end components based on stack traces
US10073767B2 (en) 2017-01-18 2018-09-11 Pivotal Software, Inc. Trace Management
US10776966B2 (en) * 2017-04-28 2020-09-15 Oracle International Corporation Graph processing system that allows flexible manipulation of edges and their properties during graph mutation
US10379825B2 (en) 2017-05-22 2019-08-13 Ab Initio Technology Llc Automated dependency analyzer for heterogeneously programmed data processing system
CN109710396B (zh) 2017-10-26 2023-08-22 华为技术有限公司 一种信息采集及内存释放的方法及装置
US10528403B2 (en) * 2017-10-30 2020-01-07 MuleSoft, Inc. Adaptive event aggregation
US10664378B2 (en) 2018-06-21 2020-05-26 International Business Machines Corporation Visualizing a user-centric stack frame graph
CN109634561B (zh) * 2018-10-16 2022-03-04 创新先进技术有限公司 一种在线可视化编程方法及装置
EP3951601A4 (en) * 2019-04-01 2022-04-13 Fujitsu Limited INFORMATION PROCESSING DEVICE AND API USAGE HISTORY DISPLAY PROGRAM
US11455150B2 (en) 2019-12-02 2022-09-27 AppLand Inc. Accelerating application modernization
US20210365354A1 (en) * 2020-05-22 2021-11-25 AppLand Inc. Accelerating application interrogation and interaction mapping
US11563628B1 (en) 2021-08-23 2023-01-24 Oracle International Corporation Failure detection in cloud-computing systems

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485616A (en) 1993-10-12 1996-01-16 International Business Machines Corporation Using program call graphs to determine the maximum fixed point solution of interprocedural bidirectional data flow problems in a compiler
US5592600A (en) 1994-09-27 1997-01-07 International Business Machines Corporation Animated display showing execution of object-oriented programs
US6186677B1 (en) 1996-08-27 2001-02-13 Compuware Corporation Byte code instrumentation
JPH1124901A (ja) 1997-06-27 1999-01-29 Internatl Business Mach Corp <Ibm> プログラム情報の解析・表示方法およびシステム
US6282701B1 (en) 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
US6338159B1 (en) 1997-12-12 2002-01-08 International Business Machines Corporation System and method for providing trace information
US6260187B1 (en) 1998-08-20 2001-07-10 Wily Technology, Inc. System for modifying object oriented code
US6584501B1 (en) 1999-02-03 2003-06-24 Compuware Corporation Method to display information representing network traffic on a computer display monitor
JP2000322171A (ja) * 1999-03-11 2000-11-24 Fujitsu Ltd マルチエージェントシステムにおけるエージェント間メッセージ可視化装置
WO2001024002A2 (en) 1999-09-29 2001-04-05 Anna Petrovskaya System to coordinate the execution of a plurality of separate computer systems to effectuate a process
AU2001261258A1 (en) 2000-05-05 2001-11-20 Aprisma Management Technologies, Inc. Help desk systems and methods for use with communications networks
US7003781B1 (en) 2000-05-05 2006-02-21 Bristol Technology Inc. Method and apparatus for correlation of events in a distributed multi-system computing environment
AU2001279151A1 (en) 2000-08-04 2002-03-04 Xtremesoft, Inc. System and method for analysing a transactional monitoring system
US6857120B1 (en) 2000-11-01 2005-02-15 International Business Machines Corporation Method for characterizing program execution by periodic call stack inspection
US7065566B2 (en) 2001-03-30 2006-06-20 Tonic Software, Inc. System and method for business systems transactions and infrastructure management
JP2002342127A (ja) * 2001-05-21 2002-11-29 Toshiba Corp Webログ出力プログラム及びWebログ出力システム並びにWebログ出力方法
US8473922B2 (en) 2001-09-19 2013-06-25 Hewlett-Packard Development Company, L.P. Runtime monitoring in component-based systems
US6996806B2 (en) 2001-09-21 2006-02-07 International Business Machines Corporation Graphical view of program structure during debugging session
US7216160B2 (en) 2001-10-31 2007-05-08 Sun Microsystems, Inc. Server-based application monitoring through collection of application component and environmental statistics
US7290048B1 (en) 2002-03-29 2007-10-30 Hyperformix, Inc. Method of semi-automatic data collection, data analysis, and model generation for the performance analysis of enterprise applications
US20040039728A1 (en) 2002-08-23 2004-02-26 Diring Software Method and system for monitoring distributed systems
US7558847B2 (en) 2002-09-13 2009-07-07 Intelliden, Inc. System and method for mapping between and controlling different device abstractions
US8060436B2 (en) 2002-09-16 2011-11-15 Hewlett-Packard Development Company, L.P. Software application domain and storage domain risk analysis process and method
US6792460B2 (en) 2002-10-02 2004-09-14 Mercury Interactive Corporation System and methods for monitoring application server performance
US7310777B2 (en) 2002-10-18 2007-12-18 Computer Associates Think, Inc. User interface for viewing performance information about transactions
US7870431B2 (en) 2002-10-18 2011-01-11 Computer Associates Think, Inc. Transaction tracer
US7231379B2 (en) 2002-11-19 2007-06-12 Noema, Inc. Navigation in a hierarchical structured transaction processing system
US7607169B1 (en) 2002-12-02 2009-10-20 Arcsight, Inc. User interface for network security console
US7590715B1 (en) 2003-03-03 2009-09-15 Emc Corporation Method and system for automatic classification of applications and services by packet inspection
AU2003901503A0 (en) * 2003-03-28 2003-04-17 Data Imaging Pty Ltd An imaging process for financial data
US7505953B2 (en) 2003-07-11 2009-03-17 Computer Associates Think, Inc. Performance monitoring of method calls and database statements in an application server
US7310780B2 (en) 2003-08-14 2007-12-18 International Business Machines Corporation Methods, systems and computer program products for visually tethering related graphical objects
JP2005141663A (ja) * 2003-11-10 2005-06-02 Hitachi Ltd イベントログ解析支援装置、イベントログ表示方法
US7668953B1 (en) 2003-11-13 2010-02-23 Cisco Technology, Inc. Rule-based network management approaches
US7191364B2 (en) 2003-11-14 2007-03-13 Microsoft Corporation Automatic root cause analysis and diagnostics engine
US7590614B2 (en) 2003-12-11 2009-09-15 Sap Ag Method, apparatus, and computer program product for implementing techniques for visualizing data dependencies
US7987453B2 (en) 2004-03-18 2011-07-26 International Business Machines Corporation Method and apparatus for determining computer program flows autonomically using hardware assisted thread stack tracking and cataloged symbolic data
US8352423B2 (en) 2004-05-07 2013-01-08 Inceptia Llc Apparatus and method for providing streaming data
US20060036726A1 (en) 2004-07-12 2006-02-16 Vieo, Inc. User interface for a distributed computing environment and method of using the same
US7203624B2 (en) 2004-11-23 2007-04-10 Dba Infopower, Inc. Real-time database performance and availability change root cause analysis method and system
JP2006157313A (ja) * 2004-11-26 2006-06-15 Nec Corp 経路作成システム、経路作成装置及び経路作成プログラム
US7509632B2 (en) 2005-03-24 2009-03-24 International Business Machines Corporation Method and apparatus for analyzing call history data derived from execution of a computer program
US7743128B2 (en) 2005-04-20 2010-06-22 Netqos, Inc. Method and system for visualizing network performance characteristics
US7350107B2 (en) 2005-04-29 2008-03-25 Microsoft Corporation Method and apparatus for performing network diagnostics
US8694621B2 (en) 2005-08-19 2014-04-08 Riverbed Technology, Inc. Capture, analysis, and visualization of concurrent system and network behavior of an application
US7904892B2 (en) 2006-01-06 2011-03-08 Northrop Grumman Corporation Systems and methods for identifying and displaying dependencies
US8656006B2 (en) 2006-05-11 2014-02-18 Ca, Inc. Integrating traffic monitoring data and application runtime data
US8578017B2 (en) 2006-05-11 2013-11-05 Ca, Inc. Automatic correlation of service level agreement and operating level agreement
JP2007316771A (ja) * 2006-05-23 2007-12-06 E & D:Kk 監視装置、監視方法、および、監視用プログラム。
JP4780413B2 (ja) * 2007-01-12 2011-09-28 横河電機株式会社 不正アクセス情報収集システム
US8683490B2 (en) * 2007-02-15 2014-03-25 Microsoft Corporation Computer system events interface
US7937618B2 (en) * 2007-04-26 2011-05-03 International Business Machines Corporation Distributed, fault-tolerant and highly available computing system
US9519571B2 (en) 2007-07-13 2016-12-13 International Business Machines Corporation Method for analyzing transaction traces to enable process testing
US8208381B2 (en) 2007-07-27 2012-06-26 Eg Innovations Pte. Ltd. Root-cause approach to problem diagnosis in data networks
US20090094074A1 (en) 2007-10-04 2009-04-09 Nikovski Daniel N Method for Constructing Business Process Models from Task Execution Traces
US20090112667A1 (en) 2007-10-31 2009-04-30 Ken Blackwell Automated Business Process Model Discovery
US8250479B2 (en) * 2007-11-15 2012-08-21 International Business Machines Corporation Message flow interactions for display in a user interface
US8464270B2 (en) 2007-11-29 2013-06-11 Red Hat, Inc. Dependency management with atomic decay
US20090177509A1 (en) 2008-01-09 2009-07-09 Joshua David Business Service Management Dashboard
US8499284B2 (en) 2008-09-11 2013-07-30 Microsoft Corporation Visualizing relationships among components using grouping information
US7681182B1 (en) 2008-11-06 2010-03-16 International Business Machines Corporation Including function call graphs (FCG) generated from trace analysis data within a searchable problem determination knowledge base
JP2010117757A (ja) * 2008-11-11 2010-05-27 Nomura Research Institute Ltd 性能監視システムおよび性能監視方法
US8027981B2 (en) 2008-12-10 2011-09-27 International Business Machines Corporation System, method and program product for classifying data elements into different levels of a business hierarchy
US8868722B2 (en) * 2008-12-17 2014-10-21 Microsoft Corporation Monitoring activity on a computer
US8135739B2 (en) 2008-12-29 2012-03-13 Microsoft Corporation Online relevance engine
US8589196B2 (en) 2009-04-22 2013-11-19 Bank Of America Corporation Knowledge management system
US8327377B2 (en) * 2009-04-30 2012-12-04 Ca, Inc. Detecting, logging and tracking component dependencies in web service transactions
US20110154004A1 (en) * 2009-12-23 2011-06-23 genForma Corp Installing and Configuring Software and/or Hardware Components Using Metadata Representations of Component Interdependencies
US8490055B2 (en) * 2010-09-17 2013-07-16 Ca, Inc. Generating dependency maps from dependency data
US8782614B2 (en) 2011-04-08 2014-07-15 Ca, Inc. Visualization of JVM and cross-JVM call stacks
US9202185B2 (en) 2011-04-08 2015-12-01 Ca, Inc. Transaction model with structural and behavioral description of complex transactions
US8516301B2 (en) 2011-04-08 2013-08-20 Ca, Inc. Visualizing transaction traces as flows through a map of logical subsystems
US8438427B2 (en) 2011-04-08 2013-05-07 Ca, Inc. Visualizing relationships between a transaction trace graph and a map of logical subsystems
US8688729B2 (en) 2011-08-16 2014-04-01 Ca, Inc. Efficiently collecting transaction-separated metrics in a distributed enviroment

Also Published As

Publication number Publication date
KR20120115170A (ko) 2012-10-17
JP2012221502A (ja) 2012-11-12
US20120260236A1 (en) 2012-10-11
US8782614B2 (en) 2014-07-15
KR101828506B1 (ko) 2018-03-29
EP2508997A1 (en) 2012-10-10

Similar Documents

Publication Publication Date Title
JP5909140B2 (ja) Jvmおよびクロスjvm呼び出しスタックの可視化
JP5909139B2 (ja) トランザクショントレースグラフと論理的サブシステムのマップとの関係の可視化
JP5909138B2 (ja) 論理的なサブシステムのマップを介してのフローによるトランザクショントレースの可視化
US20160378615A1 (en) Tracking Health Status In Software Components
JP2012221499A (ja) 複雑なトランザクションの構造的および動作的な記述を有するトランザクションモデル
US10373094B2 (en) Automated model based root cause analysis
US10637745B2 (en) Algorithms for root cause analysis
JP5886712B2 (ja) 分散環境におけるトランザクション別に区別されたメトリックの効率的収集
JP5431430B2 (ja) 依存データからの依存マップの生成
US20160103750A1 (en) Application programming interface monitoring tool notification and escalation method and system
US10402052B2 (en) Guided exploration of root cause analysis
US10706108B2 (en) Field name recommendation
US20170285923A1 (en) Multi-perspective application components dependencies
US10644971B2 (en) Graph search in structured query language style query
US8924537B2 (en) Business processes tracking
Gorman Troubleshoot Solutions by Using Metrics and Log Data

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20120920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160325

R150 Certificate of patent or registration of utility model

Ref document number: 5909140

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250