(57)【要約】コンピュータアプリケーションをモニタする方法及びシステムが、コンピュータアプリケーションを選択し、条件情報を入力し、コンピュータアプリケーションをモニタし、且つ選択したコンピュータアプリケーションの条件が条件情報を満足する場合に警報を発生することを包含している。該モニタリングステップはあるイベントの発生により通知メッセージを発生するコンピュータアプリケーションのバイトコード内にダイナミックウォッチャを挿入することにより達成することが可能である。通知メッセージ内に包含されるデータは、コンピュータアプリケーションと関連する選択したパラメータの値を決定するために使用することが可能であり、それは、次いで、コンピュータアプリケーションの条件を決定するために条件情報の一部としてユーザにより入力されたスレッシュホールドレベルと比較される。コンピュータアプリケーションの条件が問題が存在し且つ警報が発生されるべきであることを表わす場合に警報が発生される。
2005523518.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータアプリケーションをモニタする方法において、
コンピュータアプリケーションを選択し、
条件情報を入力し、
前記コンピュータアプリケーションをモニタし、
前記コンピュータアプリケーションの条件が所定の条件情報を満足する場合に警報を発生する、
ことを包含している方法。
【請求項２】
請求項１において、前記コンピュータアプリケーションがユーザインターフェースを介してユーザにより入力される選択情報に基づいて選択される方法。
【請求項３】
請求項２において、前記コンピュータアプリケーションがエンタプライズジャバビーン及びサーブレットのうちの１つである方法。
【請求項４】
請求項３において、前記選択するステップが、更に、
前記コンピュータアプリケーションが動作するサーバを選択し、
モニタすべき前記選択したサーバ上で稼動する複数個のコンピュータアプリケーションから少なくとも１個のコンピュータアプリケーションを選択し、
前記コンピュータアプリケーションをモニタする間の時間期間を表わすモニタリングインターバルを入力し、
前記警報を発生する前に前記コンピュータアプリケーションの条件が前記所定条件情報を満足する間のモニタリングインターバルの数を表わす待機数を入力する、
ことを包含している方法。
【請求項５】
請求項４において、前記条件情報を入力するステップが、更に、
モニタすべき前記選択したコンピュータアプリケーションにより実施される複数個の方法のうちの少なくとも１つの方法を選択する、
ことを包含している方法。
【請求項６】
請求項５において、前記条件情報を入力するステップが、更に、
モニタすべき前記選択した方法に関連する複数個のパラメータのうちの少なくとも１つのパラメータを選択する、
ことを包含しており、前記複数個のパラメータが、前記モニタリングインターバル期間中の前記方法の平均実行時間、前記モニタリングインターバル期間中の前記方法の最小実行時間、前記モニタリングインターバル期間中の前記方法の最大実行時間、前記モニタリングインターバル期間中に前記方法が喚起される回数を表わす方法喚起カウント、及び前記モニタリングインターバル期間中に方法要求を取扱うスレッドの数を表わす方法スレッドカウント、を包含している方法。
【請求項７】
請求項６において、前記条件情報を入力するステップが、更に、
前記少なくとも１つの選択したパラメータのステータスを決定するために少なくとも１個のスレッシュホールドレベルを入力する、ことを包含している方法。
【請求項８】
請求項７において、前記モニタリングステップが、更に、前記コンピュータアプリケーションをモニタするために前記コンピュータアプリケーションのバイトコード内に少なくとも１個のダイナミックウォッチャを挿入することを包含しており、前記ダイナミックウォッチャが、前記コンピュータアプリケーションにおける複数個のイベントのうちの何れか１つが検知されると、通知メッセージを発生する方法。
【請求項９】
請求項８において、前記複数個のイベントが、前記コンピュータアプリケーションのローディング、前記コンピュータアプリケーションの前記選択した方法の開始、前記コンピュータアプリケーションの前記選択した方法の終了、及びスレッドを介しての前記方法へのアクセス、を包含している方法。
【請求項１０】
請求項９において、前記ダイナミックプローブにより発生される通知メッセージが、前記コンピュータアプリケーションのタイプを表わすデータ、前記コンピュータアプリケーションを喚起したスレッドの識別を表わすスレッドＩＤ、喚起されたコンピュータアプリケーションの名前を表わす名前、前記コンピュータアプリケーションの選択した方法の開始時間及び終了時間のうちの１つを包含している時間情報、を包含している方法。
【請求項１１】
請求項１０において、前記モニタリングステップが、更に、
前記ダイナミックウォッチャにより発生される通知メッセージ内に包含されているデータを発行する、
ことを包含している方法。
【請求項１２】
請求項１１において、前記発生するステップが、更に、
前記選択したパラメータの各々に対する値を決定するために前記通知メッセージ内に包含されているデータを処理し、
前記選択したパラメータの各々の値を前記選択したパラメータの少なくとも１つのスレッシュホールドレベルと比較して前記コンピュータアプリケーションのステータスを決定し、
前記コンピュータアプリケーションのステータスが、前記警報が発生されるべきであることを表わす場合に、前記警報を発生する、
ことを包含している方法。
【請求項１３】
コンピュータアプリケーションをモニタするシステムにおいて、
ユーザがモニタすべきコンピュータアプリケーションを選択し且つ条件情報を入力することを可能とすべく適合されているインターフェース装置、
前記選択したコンピュータアプリケーションをモニタすべく適合されているモニタリング装置、
を有しており、前記モニタリング装置により実施されるモニタリングの結果に基づいて決定される前記選択したコンピュータアプリケーションの条件が所定の条件情報を満足する場合に警報を発生するシステム。
【請求項１４】
請求項１３において、前記インターフェース装置がユーザが情報を入力することを可能とするグラフィカルユーザインターフェースを有しているシステム。
【請求項１５】
請求項１４において、前記インターフェース装置が複数個のコンピュータアプリケーションが稼動するサーバを選択し且つモニタすべき前記選択したサーバ上で稼動する複数個のコンピュータアプリケーションから少なくとも１個のコンピュータアプリケーションを選択し且つ前記選択したコンピュータアプリケーションをモニタすべき間の時間期間を表わすモニタリングインターバルを入力することを可能とするシステム。
【請求項１６】
請求項１５において、前記インターフェース装置は、ユーザが、前記警報を発生する前に前記コンピュータアプリケーションの条件が前記所定の条件情報を満足する間のモニタリングインターバルの数を表わす待機数を入力することを可能とするシステム。
【請求項１７】
請求項１６において、前記条件情報が、前記モニタすべき選択したコンピュータアプリケーションにより使用される複数個の方法のうちで少なくとも１個の方法を表わす方法情報、前記モニタすべき選択した方法に関連する複数個のパラメータのうちで少なくとも１個のパラメータを表わすパラメータ情報、及び前記コンピュータアプリケーションのステータスを決定するために前記少なくとも１つの選択したパラメータに対する少なくとも１つのスレッシュホールドレベルを表わすスレッシュホールド情報を包含しているシステム。
【請求項１８】
請求項１７において、前記複数個のパラメータが、前記モニタリングインターバル期間中の前記方法の平均実行時間、前記モニタリングインターバル期間中の前記方法の最小実行時間、前記モニタリングインターバル期間中の前記方法の最大実行時間、前記モニタリングインターバル期間中に前記方法が喚起される回数を表わす方法喚起カウント、前記モニタリングインターバル期間中に方法要求を取扱うスレッドの数を表わす方法スレッドカウント、を包含しているシステム。
【請求項１９】
請求項１８において、前記モニタリング装置が、更に、
前記選択したコンピュータアプリケーションのバイトコード内に前記コンピュータアプリケーションにおける複数個のイベントの各々の発生により通知メッセージを発生するダイナミックウォッチャを挿入すべく適合されている挿入装置、
前記通知メッセージ内に包含されているデータを前記インターフェース装置に対して発行すべく適合されている発行装置、
を有しているシステム。
【請求項２０】
請求項１９において、前記複数個のイベントが、前記コンピュータアプリケーションのローディング、前記選択した方法の実行の開始、前記選択した方法の実行の終了、スレッドによる前記コンピュータアプリケーションのアクセス、を包含しているシステム。
【請求項２１】
請求項２０において、前記通知メッセージが、前記選択したコンピュータアプリケーションのタイプを表わすデータ、前記コンピュータアプリケーションを喚起したスレッドの識別を表わすスレッドＩＤ、喚起された前記選択したコンピュータアプリケーションの名前を表わす名前、前記コンピュータアプリケーションの選択した方法の開始時間及び終了時間のうちの１つを表わす時間情報、を包含しているシステム。
【請求項２２】
請求項２１において、前記発行装置が、前記少なくとも１個のダイナミックウォッチャにより発生される各通知メッセージに対応するデータを前記インターフェース装置へ送信するシステム。
【請求項２３】
請求項２２において、前記インターフェース装置が各通知メッセージに対応するデータを処理して各選択したパラメータに対する値を決定し且つ各選択したパラメータの値を選択したパラメータのスレッシュホールド値と比較して前記コンピュータアプリケーションのステータスを決定するシステム。
【請求項２４】
請求項２３において、前記インターフェース装置が、前記コンピュータアプリケーションのステータスが所定のステータスである場合に、警報を発生するシステム。
【請求項２５】
コンピュータシステムにおいて、
プロセッサ、
コンピュータアプリケーションをモニタする方法ステップを実施するために前記プロセッサにより実行可能な命令からなるプログラムを実現しており前記コンピュータシステムにより読取り可能なプログラム格納装置、
を有しており、前記方法ステップが、
前記コンピュータアプリケーションを選択し、
条件情報を入力し、
前記コンピュータアプリケーションをモニタし、
前記コンピュータアプリケーションの条件が所定の条件情報を満足する場合に警報を発生する、
ことを包含しているコンピュータシステム。
【請求項２６】
請求項２５において、前記コンピュータアプリケーションが、ユーザインターフェースを介してユーザにより入力される選択情報に基づいて選択されるコンピュータシステム。
【請求項２７】
請求項２５において、前記コンピュータアプリケーションがエンタプライズジャバビーン及びサーブレットのうちの１つであるコンピュータシステム。
【請求項２８】
請求項２７において、前記選択するステップが、更に、
前記コンピュータアプリケーションが動作するサーバを選択し、モニタすべき選択したサーバ上で稼動する複数個のコンピュータアプリケーションから少なくとも１個のコンピュータアプリケーションを選択し、
前記コンピュータアプリケーションがモニタする間の時間期間を表わすモニタリングインターバルを入力し、
前記警報を発生する前に前記コンピュータアプリケーションの条件が前記所定の条件情報を満足する期間中のモニタリングインターバルの数を表わす待機数を入力する、
ことを包含しているコンピュータシステム。
【請求項２９】
請求項２８において、前記条件情報を入力するステップが、更に、
前記モニタすべきコンピュータアプリケーションにより実施される複数個の方法のうちの少なくとも１つの方法を選択する、
ことを包含しているコンピュータシステム。
【請求項３０】
請求項２９において、前記条件情報を入力するステップが、更に、
前記モニタすべき選択した方法に関連する複数個のパラメータのうちの少なくとも１個のパラメータを選択する、
ことを包含しており、前記複数個のパラメータが、前記モニタリングインターバル期間中の前記方法の平均実行時間、前記モニタリングインターバル期間中の前記方法の最小実行時間、前記モニタリングインターバル期間中の前記方法の最大実行時間、前記モニタリングインターバル期間中に前記方法が喚起される回数を表わす方法喚起カウント、前記モニタリングインターバル期間中に方法要求を取扱うスレッド数を表わす方法スレッドカウント、を包含しているコンピュータシステム。
【請求項３１】
請求項３０において、前記条件情報を入力するステップが、更に、
前記コンピュータアプリケーションのステータスを決定するために前記少なくとも１つの選択したパラメータに対する少なくとも１つのスレッシュホールドレベルを入力する、
ことを包含しているコンピュータシステム。
【請求項３２】
請求項３１において、前記モニタリングステップが、更に、前記コンピュータアプリケーションをモニタするために前記コンピュータアプリケーションのバイトコード内に少なくとも１個のダイナミックウォッチャを挿入することを包含しており、前記ダイナミックウォッチャは、前記コンピュータアプリケーションにおける複数個のイベントのうちの何れか１つを検知すると、通知メッセージを発生するコンピュータシステム。
【請求項３３】
請求項３２において、前記複数個のイベントが、前記コンピュータアプリケーションのローディング、前記コンピュータアプリケーションの前記選択した方法の開始、前記コンピュータアプリケーションの前記選択した方法の終了、スレッドを介しての前記方法のアクセス、を包含しているコンピュータシステム。
【請求項３４】
請求項３３において、前記ダイナミックプローブにより発生される前記通知メッセージが、前記コンピュータアプリケーションのタイプを表わすデータ、前記コンピュータアプリケーションを喚起したスレッドの識別を表わすスレッドＩＤ、喚起したコンピュータアプリケーションの名前を表わす名前、前記コンピュータアプリケーションの前記選択した方法の開始時間及び終了時間のうちの１つを包含する時間情報、を包含しているコンピュータシステム。
【請求項３５】
請求項３４において、前記モニタリングステップが、更に、
前記ダイナミックウォッチャにより発生される前記通知メッセージ内に包含されているデータを発行する、
ことを包含しているコンピュータシステム。
【請求項３６】
請求項３５において、前記発生するステップが、更に、
前記通知メッセージ内に包含されているデータを処理して前記選択したパラメータの各々に対する値を決定し、
前記選択したパラメータの各々の値を前記選択したパラメータの少なくとも１個のスレッシュホールドレベルと比較して前記コンピュータアプリケーションのステータスを決定し、
前記コンピュータアプリケーションのステータスが前記警報が発生されるべきであることを表わす場合に前記警報を発生する、
ことを包含しているコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はコンピュータアプリケーションに関するものである。より詳細には、本開示はコンピュータアプリケーションの実時間でトランズアクションをモニタリングするための方法及びシステムに関するものである。
【背景技術】
【０００２】
ジャバ（商標）２プラットフォーム、エンタプライズエディション（Ｊ２ＥＥ）は多層エンタプライズアプリケーションを開発するためのスタンダードである。Ｊ２ＥＥは標準化したモジュール型コンポーネント上にエンタプライズアプリケーションの基礎としており、これらのコンポーネントに対して１組のサービスを提供し、且つ複雑なプログラミングなしで自動的にアプリケーションの挙動の多くの詳細を取扱う。
【０００３】
サーブレット（ｓｅｒｖｌｅｔ）技術は、ウエブサーバの機能性を拡張し且つ既存のビジネスシステムへアクセスするための簡単で一貫性のあるメカニズムをウエブ開発者に提供している。サーブレットは、ほとんどサーバ側で稼動するアプレット（ａｐｐｌｅｔ）として考えることが可能である−顔なしで。ジャバサーブレットは多数のウエブアプリケーションを可能なものとしている。
【０００４】
２種類のエンタプライズジャバビーン（ＥＪＢ）が存在しており、即ち「エンティティビーン（Ｅｎｔｉｔｙ  Ｂｅａｎｓ）」及び「セッションビーン（Ｓｅｓｓｉｏｎ  Ｂｅａｎｓ）」である。ジャバプログラマは、既に、オブジェクトに精通している。エンティティビーンは特別のプロパティを具備したオブジェクトである。スタンダードのジャバオブジェクトは永久的なものとすることが可能であり、即ち、該オブジェクトはそれらがプログラムで作成される場合に存在することとなる。プログラムが終了すると、そのオブジェクトは失われる場合がある。しかし、エンティティビーンはそれが削除されるまで存在することが可能である。プログラムはエンティティビーンを作成することが可能であり、次いでそのプログラムは停止させ且つ再開始させることが可能である。そのエンティティビーンは継続して存在し続ける。再開始された後に、そのプログラムは再びそのエンティティビーンを見付けることが可能であり、且つ同一のエンティティビーンを継続して使用する。エンティティビーンはネットワーク上の任意のプログラムにより使用することが可能である。
【０００５】
実際に、エンティティビーンは典型的にはデータベースである何らかの種類の永久的な格納部によってバックアップすることが可能である。エンティティビーンのメソッド即ち方法は「サーバ」マシン上で稼動することが可能である。エンティティビーンのメソッドが呼ばれると、プログラムのスレッドは実行を停止し且つ制御がサーバへ移る。そのメソッドがサーバから帰ると、ローカルスレッドが実行を再開する。エンティティビーンはプライマリキーを有することが可能である。このプライマリキーはユニークであり、即ち各エンティティビーンはそのプライマリキーにより一時的に識別される。例えば、「従業員」エンティティビーンはプライマリキーとしてソーシャルセキュリティ番号を有することが可能である。
【０００６】
セッションビーンは永久的なオブジェクトではないという点においてエンティティビーンと異なる場合がある。それらは、又、一般的に共有可能なものではないが、それらの「ハンドル」を使用することによりそれらを共有することが可能である。セッションビーンは、タスクの処理を分布させ且つ分離するために使用することが可能である。各セッションビーンは、そのクライエントの代わりにあるタスクを実施するために使用することが可能である。これらのタスクは異なるマシン上に分布させることが可能である。
【０００７】
ウエブアプリケーションインプリメンテーション及びデプロイメントに焦点を当てたエンタプライズは、ミッションクリチカルなＩＴインフラストラクチャの不可欠で且つ正常に動作する部分とさせるために調子、アベーラビリティ、アプリケーションの性能の管理問題に対処する環境を必要とする場合がある。
【０００８】
最近のサービス指向型エンタプライズはハードウエア及びソフトウエアのコンポーネントの複雑なウエブの上に構築されている。これらのエンタプライズに対して構築されたウエブアプリケーションは層構成とし、相互接続させ、且つしばしば高度に分布させることが可能である。ウエブアプリケーションの非常にアーキテクチャ的な性質は調子、アベーラビリティ、性能の管理問題に対処する問題を分離し且つ解決する上で深刻な難問を提示する場合がある。
【０００９】
ウエブアプリケーション及び基礎となるアプリケーションサーバインフラストラクチャのアベーラビリティ及び性能をモニタする場合に考慮されるファクタのうちの１つは、実時間トランズアクションモニタリング対総合的（ｓｙｎｔｈｅｔｉｃ）トランズアクションモニタリングの使用である。総合的トランズアクションモニタリングはウエブアプリケーションをプロアクティブにモニタし且つエンドユーザによる検知の前にエラー又は障害を防止することを可能とする。然しながら、総合的トランズアクションモニタリングは実時間トランズアクションの性能及びアベーラビリティの問題に対処するものではない。換言すると、総合的トランズアクションモニタリングは、与えられたアプリケーションを実行している間に、サーバの実時間条件を効果的にモニタするものではない。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従って、実時間トランズアクションモニタリングを使用してコンピュータアプリケーションをモニタする方法及びシステムを提供することが有益的である。
【課題を解決するための手段】
【００１１】
本開示の一実施例に基づくコンピュータアプリケーションをモニタする方法は、コンピュータアプリケーションを選択し、条件情報を入力し、該コンピュータアプリケーションをモニタし、且つ該コンピュータアプリケーションの条件が所定の条件情報を満足する場合に警報を発生する、ことを包含している。
【００１２】
本開示の一実施例に基づくコンピュータアプリケーションをモニタするシステムは、ユーザがモニタすべきコンピュータアプリケーションを選択し且つ条件情報を入力することを可能とすべく適合されているインターフェース装置、及び該選択したコンピュータアプリケーションをモニタすべく適合されているモニタリング装置を包含しており、該インターフェース装置は、該選択したコンピュータアプリケーションの条件が該モニタリング装置により実施されるモニタリングの結果に基づいて所定の条件情報を満足する場合に警報を発生する。
【００１３】
本開示の一実施例に基づくコンピュータシステムは、プロセッサ、及びコンピュータアプリケーションをモニタする方法ステップを実施するために該プロセッサにより実施可能な命令からなるプログラムを実現しており該コンピュータシステムにより読取り可能なプログラム格納装置を包含しており、該方法ステップは、該コンピュータアプリケーションを選択し、条件情報を入力し、該コンピュータアプリケーションをモニタし、且つ該コンピュータアプリケーションの条件が所定の条件情報を満足する場合に警報を発生する、ことを包含している。
【発明を実施するための最良の形態】
【００１４】
図面に例示した本開示の好適実施例を説明する上で、説明の便宜上特定の用語を使用する。然しながら、本開示はそのように選択した特定の用語に制限されるべきことを意図したものではなく、各特定の要素は同様の態様で動作する全ての技術的均等物を包含するものとして理解すべきである。
【００１５】
図１は本開示の方法及びシステムを実現することが可能なコンピュータシステムの一例を示している。本開示のシステム及び方法は、例えば、メインフレーム、パソコン（ＰＣ）、ハンドヘルドコンピュータ、サーバ等のコンピュータシステム上で稼動するソフトウエアアプリケーションの形態で実現することが可能である。そのソフトウエアアプリケーションは、例えば、フロッピーディスク、コンパクトディスク、ハードディスク等のコンピュータシステムにより局所的にアクセス可能な記録媒体上に格納させることが可能であり、又はコンピュータシステムから離れており且つ、例えば、ローカルエリアネットワーク又はインターネット等のネットワークへのハードワイヤード又は無線接続を介してアクセスすることが可能である。
【００１６】
本方法及びシステムを実現することが可能なコンピュータシステムの一例を図１に示してある。大略システム１００として示したコンピュータシステムは、中央処理装置（ＣＰＵ）１０２、メモリ１０４、例えばランダムアクセスメモリ（ＲＡＭ）、プリンタインターフェース１０６、ディスプレイユニット１０８、（ＬＡＮ）ローカルエリアネットワークデータ伝送制御器１１０、ＬＡＮインターフェース１１２、ネットワーク制御器１１４、内部バス１１６及び１個又はそれ以上の入力装置１１８、例えばキーボード、マウス等を包含することが可能である。図示したように、システム１００はリンク１２２を介して例えばハードディスク１２０等のデータ格納装置へ接続することが可能である。
【００１７】
本開示発明のシステム及び方法は、情報技術（ＩＴ）管理の分野に関するものである。従来のＩＴ管理はネットワーク、マシン、オペレーティングシステムをモニタするが、顧客のカスタム化したアプリケーションソフトウエアをモニタするものではない。本開示のシステム及び方法は、顧客のカスタム化したアプリケーションソフトウエアを構成するＥＪＢ及びサーブレットに対する性能モニタリングを提供することにより従来のＩＴ管理ソリューションを補足するものである。
【００１８】
本開示のシステム及び方法は、総合的な観点及び／又は実時間の観点からアプリケーションのトランズアクション上のアベーラビリティ及び性能を管理するためにアプリケーションの内部的なビューを管理ソリューションに提供するものである。本システム及び方法はカスタム化されたアプリケーションであっても実時間のモニタリングを提供するものであるから、本システム及び方法は違法なジャバビーンホーム又はリモートインターフェース、サーブレット、又はデータベース接続の性能又はアベーラビリティの問題を検知することが可能である。
【００１９】
本開示のシステム及び方法は、調子及び性能の観点から実時間及び応用特定トランズアクションのモニタリング及び管理を提供する。より特定的には、本システム及び方法は、サーブレット、ＥＪＢ、又はコネクションプールの文脈内におけるトランズアクションのモニタリングを可能とさせる。
【００２０】
本開示の一実施例に基づくコンピュータアプリケーションをモニタする方法を図２に例示してある。本方法は、モニタすべきコンピュータアプリケーションを選択し、Ｓ２０、条件情報を入力し、Ｓ２２、コンピュータアプリケーションをモニタし、Ｓ２４、その選択したコンピュータアプリケーションの条件が所定の条件情報を満足する場合に警報を発生する、Ｓ２６、ことを包含している。
【００２１】
ステップＳ２０において、モニタすべきアプリケーションがユーザにより選択される。ユーザがモニタすべきアプリケーションを知っている場合には、ユーザは例えばキーボード等の入力装置を介して単にそのアプリケーションをエンタすることが可能である。そのアプリケーションは、例えば、エンタプライズジャバビーン又はサーブレットとすることが可能である。図３は本開示の一実施例に基づく選択ステップのフローチャートを例示している。ステップＳ３０において、モニタすべきコンピュータアプリケーションを選択する。このことは、上述したようにキーボードを介して行うことが可能であり、又は以下に更に詳細に説明するユーザインターフェースを介してモニタリングのための使用可能なコンピュータアプリケーションのリストからコンピュータアプリケーションを選択することが可能である。そのコンピュータアプリケーションはエンタプライズジャバビーン又はサーブレットとすることが可能である。そのコンピュータアプリケーションがモニタされるべき時間期間を表わすモニタリングインターバルをステップＳ３２において識別することが可能である。アラートを発生する前の状態にそのアプリケーションのステータスが止まる期間中のモニタリングインターバルの数を表わす待機数をステップＳ３４において入力することが可能である。即ち、警報は、複数のモニタリングインターバルに対して所定の条件情報が満足された後においてのみ発生させることが可能であり、従って、よりしつこい問題であることを表わす。警報が発生された場合にその警報により注意すべき個人に関する識別情報をステップＳ３６においてエンタすることが可能である。即ち、ステップＳ３６において、その警報を送るべき個人が識別される。
【００２２】
ステップＳ３０乃至Ｓ３６は例えばキーボード又はマウス等の入力装置を介して情報の直接入力を介して実現することが可能であり、又はグラフィカルユーザインターフェースを使用して実現することが可能である。このような実施例においては、ユーザにとって興味のあるコンピュータアプリケーションを稼動している全てのサーバのリストをそのユーザに表示させることが可能である。そのユーザが１つのサーバを選択した後に、そのサーバ上で稼動している全てのコンピュータアプリケーションのリストがそのユーザに対して表示させることが可能である。次いで、そのユーザはモニタすべきアプリケーションの正確な名前又は位置を前もって知ることなしに所望のアプリケーションを選択することが可能である。グラフィカルユーザインターフェースもモニタリングインターバル、待機数及び警報を送る個人に関する情報をエンタするためのプロンプトを提供することが可能である。
【００２３】
条件情報を入力するステップＳ２２について更に図４を参照して説明する。ステップＳ４０において、ユーザはモニタすべき選択したコンピュータアプリケーションにより実現される特定の方法を選択することが可能である。注意すべきことであるが、コンピュータアプリケーションは幾つかの方法を包含している場合があり且つ各々がモニタされる場合がある。ステップＳ４２において、ユーザは選択した方法即ちメソッドに関連する複数個のパラメータのうちの少なくとも１つのイベント即ちパラメータを選択することが可能である。これらのパラメータは、モニタリングインターバル期間中のメソッド即ち方法に対する平均実行時間、モニタリングインターバル期間中のメソッド即ち方法に対する最大実行時間、モニタリングインターバル期間中のメソッド即ち方法に対する最小実行時間、モニタリング期間中にそのメソッド即ち方法が何回喚起されたかを表わすメソッド即ち方法喚起カウント、及びモニタリングインターバル期間中にそのメソッド即ち方法を喚起するスレッドの数を表わすメソッド即ち方法スレッドカウントを包含することが可能である。ユーザはモニタリングのために全てのパラメータ又はこれらのパラメータのうちの１つ又はそれ以上を選択することが可能である。
【００２４】
ユーザはステップＳ４４においてこれらのパラメータの各々に関してメソッド即ち方法又はアプリケーションのステータスを確立するためのスレッシュホールド値を設定することが可能である。即ち、各選択したパラメータに対して、ユーザはアプリケーションの種々の状態を表わす１つ又は複数個のスレッシュホールド値を設定することが可能である。例えば、平均実行時間パラメータの場合には、平均実行時間が所定の第一スレッシュホールド、即ち警告レベルより高くない限り、そのステータスは正常である。平均実行時間が第一スレッシュホールドとより低いレベルの第二スレッシュホールドとの間にある場合には警告ステータスが発生する。平均実行時間が第二スレッシュホールドと臨界的な値である第三スレッシュホールドとの間にある場合にはメジャーステータスが指定される。平均実行時間が第三スレッシュホールドより高い場合にはそのステータスはクリチカルであると指定される。これらのパラメータの各々は異なる第一、第二、第三スレッシュホールド値を有することが可能である。従って、平均実行時間イベントに対する第一スレッシュホールド値は最大実行時間イベントに対する第一スレッシュホールド値と異なるものとすることが可能である。
【００２５】
ステップＳ４０乃至Ｓ４４はグラフィカルユーザインターフェースを介して実現することも可能である。ユーザは選択したコンピュータアプリケーションにおいて実施される幾つかのメソッド即ち方法からなるリストからモニタすべき選択したメソッド即ち方法を選択することが可能である。ユーザは、その選択したメソッド即ち方法に関連する少なくとも１個のパラメータを選択することが可能である。次いで、ユーザはグラフィカルユーザインターフェースを介して各選択したパラメータに対して第一、第二、第三スレッシュホールドレベルを入力することが可能である。
【００２６】
コンピュータアプリケーションをモニタするステップについて更に図５を参照して説明する。ステップＳ５０において、ダイナミックウォッチャ（ｄｙｎａｍｉｃ  ｗａｔｃｈｅｒ）がコンピュータアプリケーションのバイトコード内に挿入される。このダイナミックウォッチャはアプリケーションコードを変更したりアプリケーションの性能に影響を与えるものではないが、あるイベントの発生に対してアプリケーションをモニタするのみである。ステップＳ５２において、イベントの各々が発生すると通知メッセージが発生される。好適実施例においては、このダイナミックウォッチャは、（１）アプリケーションがロードされる場合、（２）メソッド即ち方法の実行が開始する場合、（３）メソッド即ち方法の実行が終了する場合、（４）メソッド即ち方法がスレッドによりアクセスされる場合に通知メッセージを発生する。この通知メッセージは、例えばエンタプライズジャバビーン又はサーブレット等のそのアプリケーションのタイプを表わすデータ、そのアプリケーションを喚起したスレッドを表わすスレッドＩＤ、そのアプリケーションの名前、及びそのメソッド即ち方法の開始時間又は終了時間を表わす時間情報を包含することが可能である。ダイナミックウォッチャはアプリケーション自身のバイトコード内に挿入されるので、ダイナミックウォッチャにより発生される通知メッセージはコンピュータアプリケーションの機能に関する実時間情報を提供する。この実時間情報は、そのアプリケーションが稼動しているサーバの実際の条件を例示する点において有用である。
【００２７】
ステップＳ５４において、ダイナミックウォッチャにより発生される通知の中に包含されるデータをパブリッシュ即ち発行することが可能である。即ち、該データを、発生ステップＳ２６において警報を発生すべきであるか否かを決定することを評価するためにモニタ中の選択したアプリケーションの外部に送ることが可能である。
【００２８】
警報を発生するステップＳ２６について更に図６を参照して説明する。ステップＳ６０において、ダイナミックウォッチャまたは複数のウォッチャにより発生される通知メッセージ内に包含されているデータを処理して選択したパラメータに対する値を決定する。図２のステップＳ２２におけるモニタリングのために選択されている任意のパラメータを通知メッセージ内に包含されているデータを使用して決定することが可能であるが、このことは１つを超える通知メッセージからのデータを結合することを必要とする場合がある。例えば、第一通知メッセージはメソッド即ち方法の開始時間を表わす場合があり、一方別の通知メッセージはメソッド即ち方法の終了時間を表わす場合がある。これら２つの通知メッセージはメソッド即ち方法の実行時間を決定するために使用することが可能である。この実行時間が最小実行時間であるか又は最大実行時間であるかを決定するために、その実行時間をモニタリングインターバル期間中に決定されるその他の実行時間と比較すべきである。
【００２９】
ステップＳ６２において、各選択したパラメータの値をその選択したパラメータの各々と関連するスレッシュホールドレベル又は複数個のレベルと比較し、その選択したパラメータに関するアプリケーションのステータスの表示を与える。ステップＳ６４において、そのアプリケーションのステータス又は条件が条件情報を満足するか否かについての判別を行う。より詳細には、それと関連するスレッシュホールドに関連するパラメータの各々のステータスに基づいて、警報を発生することに関する判別を行う。例えば、平均実行時間がクリチカルなステータスを有している場合には、これは問題であることを表わす蓋然性があり且つ警報が発生されるべきであり、即ちＳ６４においてＹｅｓである。次いで、ステップＳ６６において警報が発生される。一方、各パラメータのステータスが正常である場合には、警報を発生する必要性はなく、ステップＳ６４においてＮｏである。この場合には、警報を発生する必要性はなく且つ本プロセスはステップＳ６０へリターンし、例えば、次のモニタリングインターバルからの通知メッセージ内に包含されているデータを処理することが可能である。ユーザは、警報が発生されるコンピュータアプリケーションのステータスを指定することが可能である。
【００３０】
本願に基づいてコンピュータアプリケーションをモニタするシステム７０について図７を参照して説明する。インターフェース装置７２はユーザがモニタすべきコンピュータアプリケーションを選択し且つ条件情報を入力することを可能とすべく適合されている。モニタリング装置７４は、コンピュータアプリケーションをモニタすべく適合されている。インターフェース装置７２は、又、コンピュータアプリケーションの条件が所定の条件情報と一致する場合に警報を発生することが可能である。
【００３１】
インターフェース装置７２は、グラフィカルユーザインターフェースとして実現することが可能であり、それはユーザが容易に選択及び条件情報を入力することを可能とする。本願の一実施例によれば、インターフェース装置７２は、所望のコンピュータアプリケーションが稼動するサーバを選択するためにユーザが選択情報を入力することを可能とする。次いで、ユーザは、モニタすべきサーバ上で稼動している複数個のコンピュータアプリケーションから少なくとも１つの特定のコンピュータアプリケーションを選択することが可能である。ユーザは、又、コンピュータアプリケーションがモニタされる時間期間を表わすモニタリングインターバルを与えることが可能であり、且つ警報を発生する前にサーバの条件が所定の条件情報を満足する期間中のモニタリング期間の数を表わす待機数を設定することが可能である。上述したように、アプリケーションの性能における何らかの問題が永続的なものか否かを確かめるために警報を発生する前に待機することが有益的な場合がある。ユーザは、又、警報が発生される場合にその警報を誰へ送るかの個人を表わす識別情報を提供することが可能である。
【００３２】
ユーザにより入力される条件情報は、モニタリングのために選択したコンピュータアプリケーションにより実現される複数のメソッド即ち方法のうちの少なくとも１つのメソッド即ち方法を選択する情報を包含することが可能である。ユーザは、又、モニタすべきメソッド即ち方法に関連する複数個のパラメータのうちの少なくとも１つを選択することが可能である。これらのパラメータは、モニタリングインターバル期間中のメソッド即ち方法に対する平均実行時間、モニタリングインターバル期間中のメソッド即ち方法に対する最大実行時間、実行時間期間中にメソッド即ち方法に対する最小実行時間、モニタリングインターバル期間中にメソッド即ち方法が喚起される回数を表わすメソッド即ち方法喚起カウント、モニタリングインターバル期間中にメソッド即ち方法の要求を取扱うスレッドの数を表わすメソッド即ち方法スレッドカウントを包含している。インターフェース装置７２は、又、コンピュータアプリケーションのステータスを決定するために選択したパラメータの各々に対する少なくとも１個のスレッシュホールドレベルをユーザが入力することを可能とする。好適実施例においては、該パラメータの各々に対して幾つかのスレッシュホールドレベルが確立される。ステータスはこれらのスレッシュホールドレベルの各々と関連することが可能である。パラメータが警告レベルと呼ばれる第一スレッシュホールドレベルより低い場合には正常ステータスを指定することが可能である。そのパラメータの値が第一スレッシュホールドレベルとマイナーレベルと呼ばれる第二スレッシュホールドとの間にある場合には警告ステータスとなる。そのパラメータの値が第二スレッシュホールドとクリチカル値と呼ばれる第三スレッシュホールドとの間にある場合にはメジャーステータスが指定される。このステータスは、そのパラメータの値が第三スレッシュホールドを超える場合にクリチカルと指定される。該パラメータの各々は異なる第一、第二、第三スレッシュホールド値を有することが可能である。従って、平均実行時間パラメータに対する第一スレッシュホールド値は最大実行時間パラメータに対する第一スレッシュホールド値と異なるものである場合がある。
【００３３】
モニタリング装置７４はアプリケーションをモニタするために使用される。このモニタリング装置について図８を参照して更に詳細に説明する。挿入装置８０が少なくとも１個のダイナミックウォッチャを選択したアプリケーションのバイトコード内に挿入する。より詳細には、この挿入装置８０は、少なくとも１個のダイナミックウォッチャを選択したメソッド即ち方法のバイトコード内に挿入することが可能である。該ダイナミックウォッチャは、コンピュータアプリケーションにおいてあるイベントが発生すると通知メッセージを発生する。より詳細には、該ダイナミックウォッチャは、（１）コンピュータアプリケーションが喚起される場合、（２）選択したメソッド即ち方法が実行を開始する場合、（３）選択したメソッド即ち方法が実行を終了する場合、（４）メソッド即ち方法がスレッドによりアクセスされる場合に通知メッセージを発生する。この通知メッセージは、例えばエンタプライズジャバビーン又はサーブレット等のそのアプリケーションのタイプを表わすデータ、そのアプリケーションを喚起したスレッドを表わすスレッドＩＤ、そのアプリケーションの名前、及びそのメソッド即ち方法の開始時間又は終了時間を表わす時間情報を包含することが可能である。
【００３４】
パブリケーション即ち発行装置８２は通知メソッド内に包含されているデータをパブリッシュ即ち発行すべく適合されている。即ち、この発行装置は通知メッセージ内に包含されているデータに対応するデータをユーザインターフェース８０へ送ることが可能である。好適実施例においては、パブリケーション即ち発行はユーザデータグラムプロトコル（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を使用して該データをインターフェース装置８０へ送ることにより達成される。より詳細には、通知メッセージ内に包含されていたデータを包含するデータグラムは少なくとも１つのダイナミックウォッチャにより発生された各通知メッセージに対して発行装置８２からインターフェース装置７２へ送ることが可能である。
【００３５】
ユーザインターフェース７２は該通知メッセージ内に包含されていたデータを処理して選択したパラメータの各々に対する値を決定することが可能である。この決定は、幾つかの通知メッセージからデータを収集することを必要とする場合がある。例えば、１つの通知メッセージは選択したメソッド即ち方法の実行の開始時に発生され、且つ別の通知メッセージはその選択したメソッド即ち方法の実行の終了時に発生される場合がある。従って、これら２つの通知メッセージに基づいて、実行時間を決定することが可能である。更に、平均実行時間を決定するために、モニタリングインターバル期間中における選択したメソッド即ち方法の全ての喚起の実行時間を平均化することが必要である。各選択したパラメータの値は、コンピュータアプリケーションのステータスを決定するために、各選択したパラメータと関連するスレッシュホールドレベル又は複数のレベルと比較することが可能である。そのステータスに基づいて、インターフェース装置７０はアラート即ち警報を発生することが可能である。この警報は、次いで、インターフェース装置を介して識別される個人へ送ることが可能である。例えば、平均実行時間の値が第三スレッシュホールドレベルより高い場合には、そのコンピュータアプリケーションのステータスはクリチカルである。このことは、コンピュータアプリケーションの実行において深刻な問題があることを表わす場合があり、且つ警報が発行される。然しながら、選択したパラメータの各々の値が各パラメータに対する第一スレッシュホールドレベルより低い場合には、そのコンピュータアプリケーションは正常に機能しており且つ警報を発生することは必要ではない。ユーザは、その下で警報が発生されるべき各パラメータに対するステータスを指定することが可能である。
【００３６】
コンピュータアプリケーションをモニタする本システムは、上述したコンピュータアプリケーションをモニタする方法を実質的に実現するものであることが理解される。
【００３７】
本願の特定の実施例において、コンピュータアプリケーションをモニタするシステムは、例えば、Ｊ２ＥＥエージェント用のユニセンター（Ｕｎｉｃｅｎｔｅｒ）管理を具備するインターフェースのアプリケーションサーバ内へのプラグインとして実現することが可能である。好適実施例においては、ユーザインターフェースが、例えばアプリケーションサーバ内にデプロイされたＥＪＢ及びサーブレットのような選択したアプリケーションの性能をユーザがモニタすることを可能とする。より詳細には、ユーザインターフェースは、ウエブロジックインサイダーエキスパートエージェント（Ｗｅｂｌｏｇｉｃ  Ｉｎｓｉｄｅｒ  Ｅｘｐｅｒｔ  Ａｇｅｎｔ）即ちエージェントを表わす単一のオブジェクトを包含するフォームを使用することが可能である。このフォームは、ウエブロジックにデプロイさせたサーブレット又はＥＪＢを示し、即ち、エキスパートエージェントがモニタしている選択したアプリケーションを示す。モニタすべきサーブレット又はＥＪＢは付加し、修正し且つ除去することが可能である。同一のエージェントによりモニタされているウエブロジックサーバ内にデプロイされているサーブレット及びＥＪＢのみを許容することが可能である。
【００３８】
図９は本開示に基づくエージェント及びサーバの一例を示している。例えばウエブロジック（Ｗｅｂｌｏｇｉｃ）、ウエブスフィア（ＷｅｂＳｐｈｅｒｅ）又はＯｒａｃｌｅ９ｉＡＳ等の管理ブロック２００がエージェント２０２へ接続して示しており、それはアプリケーションサーバ２０４内のインサイダーパブリシャ（Ｉｎｓｉｄｅｒ  Ｐｕｂｌｉｓｈｅｒ）２０６と接続している。インサイダーパブリシャ２０６はインストルメント化オブジェクト２０８と接続し、それはインストルメント化クラス２１２と接続しており、該クラス２１２はインサイダーマネージャ２１０及びクラスローダ２１４の両方に接続している。
【００３９】
インサイダー、即ちインサイダーマネージャとインサイダーパブリシャとが共に、エージェントに対するインストルメンテーションエージェントとして動作する。それはアプリケーションサーバのジャババーチャルマシン（ＪＶＭ）において稼動することが可能であり、それは全てのＥＪＢ及びサーブレットが稼動される箇所である。エージェントはユーザデータグラムプロトコル（ＵＤＰ）パブリッシュ／サブスクライブモデルを使用してインサイダーと通信を行うことが可能である。インサイダーアーキテクチャは２つの部分、即ちバイトコードインストルメンテーション及びデータをエージェントに対してパブリッシュ即ち発行するための発行インストルメンテーションに分割することが可能である。
【００４０】
クラス又はアプリケーションがＪＶＭ内にロードされると、インサイダーはそれをインターセプトしダイナミックウォッチャをこれらのクラスファイル内へ挿入することが可能である。ＥＪＢ、ＪＳＰ／サーブレット及びスタンドアローンジャバクラスがＪＶＭ内にロードされると、インサイダーはダイナミックプローブ又はウォッチャを挿入することによりバイトコードをインストルメント化することが可能である。
【００４１】
インサイダーは２つのメソッド即ち方法によりエージェントに対してデータをパブリッシュ即ち発行することが可能である。第一メソッド即ち方法はＵＤＰパブリッシュ／サブスクライブメソッド即ち方法であり、その場合には、インサイダーがアプリケーションサーバ上のＵＤＰソケットを開く。バイトコードインストルメンテーションから受取った全ての通知メッセージに対し、それはデータグラムパケットを送出すことが可能である。２番目のメソッド即ち方法はＣＡＳＭ  ＥＪＢメソッド即ち方法であり、その場合には、ＣＡＳＭ  ＥＪＢは要求応答サービスとして動作する。エージェントはこのサービスを使用してインストルメント化オブジェクト、即ちモニタしているアプリケーションのメタデータを得る。このサービスは、又、動的にデータのパブリッシュ即ち発行を開始及び停止することが可能である。
【００４２】
従って、本システム及び方法は、アドミニストレータが１つ又はそれ以上のコンピュータシステムをコンフィギャ即ち形態特定し且つ修正する効率的で且つ便利な態様を提供する。
【００４３】
本開示は、本明細書の教示に基づいてプログラムされた１個又はそれ以上の従来の汎用デジタルコンピュータ及び／又はサーバを使用して実現することが可能である。適宜のソフトウエアコーディングは、本開示の教示に基づいて熟練したプログラマにより容易に調整することが可能である。本開示は、又、応用特定集積回路を用意することにより又は従来のコンポーネントの適宜のネットワークを相互接続することにより実現することも可能である。
【００４４】
本開示の多数の付加的な修正及び変形は上の教示に鑑み可能なものである。従って、特許請求の範囲内において、本開示を本明細書に特定的に記載したもの以外で実施することが可能であることを理解すべきである。
【図面の簡単な説明】
【００４５】
【図１】本開示の方法及びシステムを実現することが可能なコンピュータシステムの一例を示した概略図。
【図２】本開示の一実施例に基づくコンピュータアプリケーションをモニタする方法を例示したフローチャート。
【図３】本開示の一実施例に基づくコンピュータアプリケーションを選択するステップを例示したフローチャート。
【図４】本開示の一実施例に基づいて条件情報を入力するステップを例示したフローチャート。
【図５】本開示の一実施例に基づいてコンピュータアプリケーションをモニタするステップを例示したフローチャート。
【図６】本開示の一実施例に基づいて警報を発生するステップを例示したフローチャート。
【図７】本開示の一実施例に基づいてコンピュータアプリケーションをモニタするシステムを例示したブロック図。
【図８】本開示の一実施例に基づくモニタリング装置を例示したブロック図。
【図９】本開示に基づくエージェント及びサーバの一例を示した概略図。
【図１】
2005523518.tif 000003
【図２】
2005523518.tif 000004
【図３】
2005523518.tif 000005
【図４】
2005523518.tif 000006
【図５】
2005523518.tif 000007
【図６】
2005523518.tif 000008
【図７】
2005523518.tif 000009
【図８】
2005523518.tif 000010
【図９】
2005523518.tif 000011
【国際調査報告】
2005523518.tif 000012
2005523518.tif 000013
2005523518.tif 000014