(57)【要約】【課題】分散環境にあるエンタープライズ・コンピュータ・システムでの問題判別のための方法、システムおよびコンピュータ・プログラムを提供する。【解決手段】この方法では、エンタープライズ・アプリケーションに関する情報が得られ、ユーザに高レベル情報が提示され、同時に、より詳細な情報の要求を促す１つまたは複数のプロンプトがユーザに提供される。アプリケーションに関するより詳細な情報を求めるユーザからの要求に応答して、より詳細な情報がユーザに提供される。個々のスレッドに関する情報を含めて、アプリケーションに関する複数のレベルのより詳細な情報が入手できる。また、この方法は、ユーザにアカウントを設けるための管理者からの指示を受け取るステップと、１つまたは複数のサーバをそのアカウントと関連付けるステップと、対応するユーザに関連付けられたサーバだけへのアクセスを可能にするステップも含む。この方法では、ストリングおよび要求を求めるサーチを実行することができ、識別されたストリングおよび要求を様々な基準でソートすることもできる。
2006509266.tif 000002
【特許請求の範囲】
【請求項１】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の方法であって、
前記エンタープライズ・アプリケーションに関する情報を得るステップと、
前記得られた情報から選択された複数の情報項目を含む高レベル情報をユーザからアクセス可能な形式で提示するステップと、
前記情報項目の１つまたは複数に関連するより詳細な情報の要求を促す１つまたは複数のプロンプトを提供するステップと、
前記プロンプトの１つに応答して、前記情報項目の１つまたは複数に関するより詳細な情報を求めるユーザからの要求を受け取るステップと、
前記要求に応答して前記ユーザに前記要求されたより詳細な情報を提供するステップを含む方法。
【請求項２】
前記高レベル情報を提示するステップが、複数のサーバ上でのアプリケーション性能に関する情報を提示することを含む請求項１に記載の方法。
【請求項３】
前記アプリケーション性能情報が、複数の最近の期間にわたる完了要求数に関する情報を含む請求項２に記載の方法。
【請求項４】
前記より詳細な情報を提供するステップが、複数のサーバのそれぞれの１つのアプリケーションによる使用に関する情報を同時に表示するステップを含む請求項１に記載の方法。
【請求項５】
前記提供された情報が、前記選択されたアプリケーションによる各サーバのＣＰＵの使用を含む請求項４に記載の方法。
【請求項６】
さらに詳細な情報を提供するステップをさらに含み、前記さらに詳細な情報は前記サーバの少なくとも１つに関するスレッドごとの情報を含む請求項４に記載の方法。
【請求項７】
前記スレッドごとの情報が、各スレッドによるリソースの使用に関する情報を含む請求項６に記載の方法。
【請求項８】
１つまたは複数の基準を有するフィルタを提供し、前記スレッドのうちの前記基準を満たすものだけを選択的に表示するステップをさらに含む請求項６に記載の方法。
【請求項９】
前記基準が少なくとも１つの要求の種類を含む請求項８に記載の方法。
【請求項１０】
選択されたスレッドに関するさらに詳細な情報を提供するステップをさらに含む請求項４に記載の方法。
【請求項１１】
前記選択されたスレッドに関するさらに詳細な情報が、前記選択されたスレッドによって処理されている要求のメソッド・トレースに関しての実行履歴を含む請求項１０に記載の方法。
【請求項１２】
メソッド呼び出しのリストを提供するステップをさらに含む請求項４に記載の方法。
【請求項１３】
複数のサーバ上にある分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の方法であって、
ユーザのアカウントを設けるための管理者からの指示を受け取るステップと、
１台または複数のサーバを前記アカウントと関連付けるステップと、
前記対応するユーザに前記関連付けられたサーバだけへのアクセスを可能にするステップと
を含む方法。
【請求項１４】
管理者からの指示に応答して第１のサーバ・グループが設けられ、対応するユーザが前記第１のサーバ・グループ中のサーバにアクセスすることのできる請求項１３に記載の方法。
【請求項１５】
管理者からの指示に応答して第２のサーバ・グループが設けられ、前記第２のサーバ・グループが前記第１のサーバ・グループ中の選択されたサーバを含む請求項１４に記載の方法。
【請求項１６】
前記対応するユーザが、第１のサーバに関する第１の権限、および第２のサーバに関する第２の権限を有する請求項１３に記載の方法。
【請求項１７】
前記第１の権限が情報を閲覧する権限からなる請求項１６に記載の方法。
【請求項１８】
前記第２の権限が情報を閲覧し、選択されたコマンドを実行する権限からなる請求項１７に記載の方法。
【請求項１９】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別および解決の方法であって、
前記環境で実行中のスレッドを識別するステップと、
ユーザに前記スレッドのソフト・キルを実行するオプションを提供するステップと、
ソフト・キルを実行するコマンドに応答して、前記スレッドが取り消されるように例外をスローさせるコードを前記スレッドに付加するステップと
を含む方法。
【請求項２０】
コマンドがプローブ／パブリッシュ・エンジンに送られる請求項１９に記載の方法。
【請求項２１】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の方法であって、
ユーザにアプリケーション・サーバおよびサーチ問い合わせを選択するよう促すステップと、
前記サーチ問い合わせに応答して、Ｗｅｂ要求でのすべてのアクティブＵＲＬストリングおよびリモート・エンタープライズＪａｖａ（Ｒ）Ｂｅａｎ要求でのアクティブ・クラス名の間をサーチするステップと、
識別されたストリングおよび要求を表示するステップと
を含む方法。
【請求項２２】
サーチ問い合わせがテキスト・ストリングを含む請求項２１に記載の方法。
【請求項２３】
サーチ問い合わせが、閾値より大きい経過時間を有するすべてのトランザクションを含む請求項２１に記載の方法。
【請求項２４】
サーチ問い合わせが、選択された時間内に開始されたトランザクションを含む請求項２１に記載の方法。
【請求項２５】
サーチ問い合わせが、閾値を超える数のＳＱＬを発行しているトランザクションを含む請求項２１に記載の方法。
【請求項２６】
サーチ問い合わせが、閾値を超える数のメソッドを発行しているすべてのトランザクションを含む請求項２１に記載の方法。
【請求項２７】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の方法であって、
ユーザに、監視されないアプリケーションのクラス名の除外リストを入力するよう促すステップと、
ユーザに、監視されるクラス名の除外指定変更リストを入力するよう促すステップと、
前記除外リスト中のクラス名の一部を定義する前記除外指定変更リストを受け取ると、前記除外リストで識別され、前記除外指定変更リストで識別されないクラス以外のすべてのクラスを監視するステップと
を含む方法。
【請求項２８】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の方法であって、
サーバ上で実行中のアプリケーションのアクティビティ・ベースの可用度を監視するステップと、
前記アクティビティ・ベースの可用度に基づいて、前記サーバが使用可能であるかそれとも使用不能であるかの指示をユーザに表示するステップと
を含む方法。
【請求項２９】
アクティビティ・ベースの可用度を監視するステップが、前記アプリケーションに起因し得る中央処理装置使用量の変化を監視することを含む請求項２８に記載の方法。
【請求項３０】
アクティビティ・ベースの可用度を監視するステップが、前記アプリケーションに起因し得るスループット量の変化を監視することを含む請求項２８に記載の方法。
【請求項３１】
アクティビティ・ベースの可用度を監視するステップが、前記アプリケーションに起因し得るメモリ使用量の変化を監視することを含む請求項２８に記載の方法。
【請求項３２】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのシステムであって、
前記エンタープライズ・アプリケーションに関する情報を得る手段と、
前記得られた情報から選択された複数の情報項目を含む高レベル情報をユーザからアクセス可能な形式で提示する手段と、
前記情報項目の１つまたは複数に関連するより詳細な情報の要求を促す１つまたは複数のプロンプトを前記ユーザに提供する手段と、
前記プロンプトの１つに応答して、前記情報項目の１つまたは複数に関するより詳細な情報を求めるユーザからの要求を受け取る手段と、
前記要求に応答して前記ユーザに前記要求されたより詳細な情報を提供する手段と
を含むシステム。
【請求項３３】
前記高レベル情報を提示する手段が、複数のサーバ上でのアプリケーション性能に関する情報を提示する手段を含む請求項３２に記載のシステム。
【請求項３４】
前記アプリケーション性能情報が、複数の最近の期間にわたる完了要求数に関する情報を含む請求項３３に記載のシステム。
【請求項３５】
前記より詳細な情報を提供する手段が、複数のサーバのそれぞれの１つのアプリケーションによる使用に関する情報を同時に表示する手段を含む請求項３２に記載のシステム。
【請求項３６】
前記提供された情報が、前記選択されたアプリケーションによる各サーバのＣＰＵの使用を含む請求項３５に記載のシステム。
【請求項３７】
さらに詳細な情報を提供する手段をさらに含み、前記さらに詳細な情報が前記サーバの少なくとも１つに関するスレッドごとの情報を含む請求項３２に記載のシステム。
【請求項３８】
前記スレッドごとの情報が、各スレッドによるリソースの使用に関する情報を含む請求項３７に記載のシステム。
【請求項３９】
１つまたは複数の基準を有するフィルタを提供し、前記スレッドのうちの前記基準を満たすものだけを選択的に表示する手段をさらに含む請求項３７に記載のシステム。
【請求項４０】
前記基準が少なくとも１つの要求の種類を含む請求項３９に記載のシステム。
【請求項４１】
選択されたスレッドに関するさらに詳細な情報を提示する手段をさらに含む請求項３７に記載のシステム。
【請求項４２】
前記選択されたスレッドに関するさらに詳細な情報が、前記選択されたスレッドによって処理されている要求のメソッド・トレースに関しての実行履歴を含む請求項４１に記載のシステム。
【請求項４３】
メソッド呼び出しのリストを提供するステップをさらに含む請求項４２に記載のシステム。
【請求項４４】
複数のサーバ上にある分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのシステムであって、
ユーザのアカウントを設けるための管理者からの指示を受け取る手段と、
１台または複数のサーバを前記アカウントと関連付ける手段と、
前記対応するユーザに、前記関連付けられたサーバだけへのアクセスを可能にする手段と
を含むシステム。
【請求項４５】
管理者からの指示に応答して第１のサーバ・グループが設けられ、対応するユーザが前記第１のサーバ・グループ中のサーバにアクセスすることのできる請求項４４に記載のシステム。
【請求項４６】
管理者からの指示に応答して第２のサーバ・グループが設けられ、前記第２のサーバ・グループが前記第１のサーバ・グループ中の選択されたサーバを含む請求項４５に記載のシステム。
【請求項４７】
前記対応するユーザが第１のサーバに関する第１の権限、および第２のサーバに関する第２の権限を有する請求項４４に記載のシステム。
【請求項４８】
前記第１の権限が、情報を閲覧する権限からなる請求項４７に記載のシステム。
【請求項４９】
前記第２の権限が、情報を閲覧し、選択されたコマンドを実行する権限からなる請求項４８に記載のシステム。
【請求項５０】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別および解決のシステムであって、
前記環境で実行中のスレッドを識別し、ユーザに前記スレッドのソフト・キルを実行するオプションを提供し、
ソフト・キルを実行するコマンドに応答して、前記スレッドが取り消されるように例外をスローさせるコードを前記スレッドに付加する手段を含むシステム。
【請求項５１】
前記コマンドがプローブ／パブリッシュ・エンジンに送られる請求項５０に記載のシステム。
【請求項５２】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのシステムであって、
ユーザに、アプリケーション・サーバおよびサーチ問い合わせを選択するよう促す手段と、
前記サーチ問い合わせに応答して、Ｗｅｂ要求でのすべてのアクティブＵＲＬストリングおよびリモート・エンタープライズＪａｖａ（Ｒ）Ｂｅａｎ要求でのアクティブ・クラス名の間をサーチする手段と、
識別されたストリングおよび要求を表示する手段と
を含むシステム。
【請求項５３】
サーチ問い合わせがテキスト・ストリングを含む請求項５２に記載のシステム。
【請求項５４】
サーチ問い合わせが、閾値より大きい経過時間を有するすべてのトランザクションを含む請求項５２に記載のシステム。
【請求項５５】
サーチ問い合わせが、選択された時間内に開始されたトランザクションを含む請求項５２に記載のシステム。
【請求項５６】
サーチ問い合わせが、閾値を超える数のＳＱＬを発行しているトランザクションを含む請求項５２に記載のシステム。
【請求項５７】
サーチ問い合わせが、閾値を超える数のメソッドを発行しているすべてのトランザクションを含む請求項５２に記載のシステム。
【請求項５８】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのシステムであって、
ユーザに、監視されないアプリケーションのクラス名の除外リストを入力するよう促し、前記ユーザに、監視されるクラス名の除外指定変更リストを入力するよう促す手段と、
前記除外リスト中のクラス名の一部を定義する前記除外指定変更リストを受け取ると、前記除外リストで識別され、前記除外指定変更リストで識別されないクラス以外のすべてのクラスを監視する手段と
を含むシステム。
【請求項５９】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのシステムであって、
サーバ上で実行中のアプリケーションのアクティビティ・ベースの可用度を監視する手段と、
前記アクティビティ・ベースの可用度に基づいて、前記サーバが使用可能であるかそれとも使用不能であるかの指示をユーザに表示する手段と
を含むシステム。
【請求項６０】
前記アクティビティ・ベースの可用度を監視する手段が、前記アプリケーションに起因し得る中央処理装置使用量の変化を監視する手段を含む請求項５９に記載のシステム。
【請求項６１】
前記アクティビティ・ベースの可用度を監視する手段が、前記アプリケーションに起因し得るスループット量の変化を監視する手段を含む請求項５９に記載のシステム。
【請求項６２】
アクティビティ・ベースの可用度を監視する手段が、前記アプリケーションに起因し得るメモリ使用量の変化を監視する手段を含む請求項５９に記載のシステム。
【請求項６３】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのコンピュータ・プログラムであって、媒体上に記憶された命令からなり、前記命令は、
プロセッサ上で実行されると前記プロセッサに、前記得られた情報から選択された複数の情報項目を含む高レベル情報をユーザからアクセス可能な形式で提示するステップと、
前記ユーザに、前記情報項目の１つまたは複数に関連するより詳細な情報の要求を促す１つまたは複数のプロンプトを提供するステップと、
前記プロンプトの１つに応答して、前記情報項目の１つまたは複数に関するより詳細な情報を求めるユーザからの要求を受け取るステップと、
前記要求に応答して前記ユーザに前記要求されたより詳細な情報を提供するステップと
を実行させるコンピュータ・プログラム。
【請求項６４】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのコンピュータ・プログラムであって、媒体上に記憶された命令からなり、前記命令は、
プロセッサ上で実行されると前記プロセッサに、ユーザのアカウントを設けるための管理者からの指示を受け取るステップと、
１台または複数のサーバを前記アカウントと関連付けるステップと、前記対応するユーザに、前記関連付けられたサーバだけへのアクセスを可能にするステップと
を実行させるコンピュータ・プログラム。
【請求項６５】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別および解決のためのコンピュータ・プログラムであって、媒体上に記憶された命令からなり、前記命令は、
プロセッサ上で実行されると前記プロセッサに、前記環境で実行中のスレッドを識別するステップと、
ユーザに前記スレッドのソフト・キルを実行するオプションを提供するステップと、
ソフト・キルを実行するコマンドに応答して、前記スレッドが取り消されるように例外をスローさせるコードを前記スレッドに付加するステップと
を実行させるコンピュータ・プログラム。
【請求項６６】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのコンピュータ・プログラムであって、媒体上に記憶された命令からなり、前記命令は、
プロセッサ上で実行されると前記プロセッサに、ユーザにアプリケーション・サーバおよびサーチ問い合わせを選択するよう促すステップと、
前記サーチ問い合わせに応答して、Ｗｅｂ要求でのすべてのアクティブＵＲＬストリングおよびリモート・エンタープライズＪａｖａ（Ｒ）Ｂｅａｎ要求でのアクティブ・クラス名の間をサーチするステップと、
識別されたストリングおよび要求を表示するステップと
を実行させるコンピュータ・プログラム。
【請求項６７】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのコンピュータ・プログラムであって、媒体上に記憶された命令からなり、前記命令は、
プロセッサ上で実行されると前記プロセッサに、ユーザに、監視されないアプリケーションのクラス名の除外リストを入力するよう促すステップと、
ユーザに、監視されるクラス名の除外指定変更リストを入力するよう促すステップと、
前記除外リスト中のクラス名の一部を定義する前記除外指定変更リストを受け取ると、前記除外リストで識別され、前記除外指定変更リストで識別されないクラス以外のすべてのクラスを監視するステップと
を実行させるコンピュータ・プログラム。
【請求項６８】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のためのコンピュータ・プログラムであって、媒体上に記憶された命令からなり、前記命令は、プロセッサ上で実行されると前記プロセッサに、サーバ上で実行中のアプリケーションのアクティビティ・ベースの可用度を監視するステップと、前記アクティビティ・ベースの可用度に基づいて前記サーバが使用可能であるかそれとも使用不能であるかの指示をユーザに表示するステップと
を実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ソフトウェアに関し、詳細には、分散エンタープライズ・アプリケーションに関する。
【背景技術】
【０００２】
最近まで企業は、ＵＮＩＸ（Ｒ）やＷｉｎｄｏｗｓ（Ｒ）ＮＴなどのオペレーティング・システムに基づく中間層プラットフォームは脆弱すぎて企業の主幹業務アプリケーションをホスティングすることができないと考えていた。サン・マイクロシステムズ社によるＪａｖａ（Ｒ）の導入、インターネットを用いた取引の普及と共に、状況は変化した。企業は、今では、サン・マイクロシステムズのＪａｖａ（Ｒ）２エンタープライズ・エディション（Ｊ２ＥＥ）に基づく技術を使用し、中間層プラットフォーム上で重要な業務アプリケーションを構築している。そうしたアプリケーションは、一般に、多数のＣＰＵを備えるサーバ・ファームを有する分散計算処理環境で実行される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
多くの企業がインターネットを使用して顧客と取引を行うため、重要な業務アプリケーションは、現在、ブラウザを介してエンドユーザに示される。これらのオンライン・アプリケーションに伴うどんなダウン時間や問題も、膨大な直接および間接の機会費用を生じる。ある分析家によれば、Ｗｅｂサイトは８秒以内に応答する必要があり、そうでないとユーザはそのサイトを去って競争相手のＷｅｂサイトに行ってしまうという。ある推定によれば、ダウン時間またはサイトの応答が遅いことが原因で、毎年米国だけで約４３億５千万米ドルのオンライン売上げが失われている。
【０００４】
ネットワーク、データベース、記憶装置、およびプラットフォームの性能を監視するために夥しい数のシステム管理ツールが用意されており、それらは併せて主幹業務アプリケーションのインフラストラクチャを構成する。これらのツールは、必ず必要でありそのしかるべき役割を有する。しかし、アプリケーションがそれらのリソースのすべてを接続するのであり、顧客に直接影響を与えるのはアプリケーションの性能である。アプリケーションは、ネットワーク・トラフィック、データベース使用量、およびプラットフォーム作業負荷を決定する。その結果、大部分のインターネットＷｅｂサイトの停止はアプリケーション関連であり、既存のシステム管理ツールは、アプリケーションがどのように振舞っているかの洞察を与えるには不十分である。現在の市販のアプリケーション管理システムは、主に、アプリケーションではなく、アプリケーション・サーバ機能に集中している。
【０００５】
多くのアプリケーションは、Ｗｅｂ上で１日２４時間顧客に直接公開されるので、厳密な可用性および性能要件が課される。現在、データ・センタは、通常、問題のあるアプリケーション・サーバをリサイクルすることによってサーバ問題を解決する。残念ながら、エラーはほとんどの場合再発するため、リサイクルは、通常、一時的な解決にすぎない。より良い解決を識別できないのは、中間層プラットフォーム上で欠陥のあるシステムおよびアプリケーションを保守し、そのトラブルシューティングを行うための生産クラスの非侵入的ツールがないためである。
【０００６】
別のアプリケーション管理の課題は、生産作業負荷にサービスを提供することによって生じる問題によるものである。企業のＩＴ組織では、開発活動と生産サービス活動の間で労力を明確に分けるのが標準的である。しかし、データ・センタ業務とシステム開発活動の間には大きな切断が存在する。管理者がアプリケーション・サーバ内部で実行中の作業負荷を視覚化できるようにする非侵略的ツールがない。生産サービス・スタッフから開発スタッフに渡されるＪ２ＥＥコンテキストなしの診断は、低レベルすぎて開発者にどんな問題解決の手がかりも提供しない。
【０００７】
どんなアプリケーション・レベルのトレースも、本質的に、高いオーバーヘッドを伴い、このため、大容量システムには許容されない。診断のためには、サーブレット、ＪＳＰ、エンタープライズＪａｖａ（Ｒ）Ｂｅａｎ、オブジェクト、メソッド、ＳＱＬ、セッションおよびコンテキストを含めて、多種多様なコンポーネントが監視される必要がある。分散されたサーバが断続的問題の主要な原因である。
【０００８】
現在のアプリケーション管理製品は、複数の、分散されたアプリケーションをリアルタイム方式で処理するのに最適とはいい難い機能しか提供しない。アプリケーションは統合されつつあるが、大部分の現行のシステム管理製品は、依然として、別個のコンポーネントを調べるものである。この手法は、アプリケーションのトラブルシューティングを困難にし、根本原因分析をほとんど不可能にする。
【０００９】
要約すると、Ｊ２ＥＥアプリケーション・サーバ・ファームでは様々な問題が発生する可能性があり、それらは電子業務アプリケーションの性能を妨げる。これらの問題で最も一般的なものは、ループ、低速処理、停止状況、失速状況、例外発生、断続的問題、デッドロック、タイムアウト、ＡＰＩ関連問題、およびメモリ・リークである。既存の環境およびトラブルシューティング・モニタは、分散環境でのアプリケーション・サーバには使用できない。
【課題を解決するための手段】
【００１０】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の一方法は、エンタープライズ・アプリケーションに関する情報を得るステップと、得られた情報から選択された、情報の項目を含む高レベル情報をユーザに提示するステップと、より詳細な情報の要求を促す１つまたは複数のプロンプトをユーザに提供するステップと、プロンプトの１つに応答して、より詳細な情報を求めるユーザからの要求を受け取るステップと、要求に応答してユーザにより詳細な情報を提供するステップとを含む。
【００１１】
複数のサーバ上にある分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の一方法は、ユーザのアカウントを設けるための管理者からの指示を受け取るステップと、１台または複数のサーバをそのアカウントと関連付けるステップと、対応するユーザに関連付けられたサーバだけへのアクセスを可能にするステップとを含む。
【００１２】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別および解決の一方法は、分散環境で実行中のスレッドを識別するステップと、ユーザにそのスレッドのソフト・キル実行の選択を促すステップと、ソフト・キルを実行するコマンドに応答して、要求が取り消されるように例外をスローさせるコードを付加するステップとを含む。
【００１３】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の一方法は、ユーザにアプリケーション・サーバおよびサーチ・ストリングを選択するよう促すこと、そのサーチ・ストリングの出現を求めてＷｅｂ要求でのすべてのアクティブＵＲＬストリングおよびリモート・エンタープライズＪａｖａ（Ｒ）Ｂｅａｎ要求でのアクティブ・クラス名の間をサーチすること、および識別されたストリングおよび要求を表示することを含む。
【００１４】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の一方法は、ユーザに、監視されないアプリケーションのクラス名の除外リストを入力するよう促すこと、ユーザに、監視されるクラス名の除外指定変更リストを入力するよう促すこと、および要求された情報を受け取ると、除外リストで識別され、除外指定変更リストで識別されないクラス以外のすべてのクラスを監視することを含む。
【００１５】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別の一方法は、分散環境にあるサーバ上で実行中のアプリケーションのアクティビティ・ベースの可用度を監視するステップと、アクティビティ・ベースの可用度に基づいてサーバが使用可能であるかそれとも使用不能であるかの指示をユーザに表示するステップとを含む。この方法は、監視されるアプリケーションに起因し得る差分ＣＰＵ使用量、差分スループット量、および差分メモリ使用量のうちの１つまたは複数を監視することを含み得る。それらの値のいずれかが閾値を下回る場合には、そのサーバは、ハードウェアの可用度にかかわらず、使用不能であるとみなされる。
【００１６】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判定のための一システムは、エンタープライズ・アプリケーションに関する情報を得、ユーザに高レベル情報を提示し、より詳細な情報の要求を促す１つまたは複数のプロンプトをユーザに提供し、プロンプトの１つに応答して、より詳細な情報を求めるユーザからの要求を受け取り、要求に応答してより詳細な情報を提供するように構成されたコンピュータ・ハードウェアを含む。
【００１７】
複数のサーバ上にある分散環境で実行中のエンタープライズ・アプリケーションでの問題判定のための一システムは、ユーザのアカウントを設けるための管理者からの指示を受け取り、１台または複数のサーバをそのアカウントと関連付け、対応するユーザに関連付けられたサーバだけへのアクセスを可能にするように構成されたコンピュータ・ハードウェアを含む。
【００１８】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判定および解決のための一システムは、分散環境で実行中のスレッドを識別し、ユーザにそのスレッドのソフト・キル実行の選択を促し、ソフト・キルを実行するコマンドに応答して、要求が取り消されるように例外をスローさせるコードを付加するように構成されたコンピュータ・ハードウェアを含む。
【００１９】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判定のための一システムは、アプリケーション・サーバおよびサーチ・ストリングの選択を受け取り、そのサーチ・ストリングの出現を求めてＷｅｂ要求でのすべてのアクティブＵＲＬストリングおよびリモート・エンタープライズＪａｖａ（Ｒ）Ｂｅａｎ要求でのアクティブ・クラス名の間をサーチし、識別されたストリングおよび要求を表示するように構成されたコンピュータ・ハードウェアを含む。
【００２０】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判定のための一システムは、ユーザに、監視されないアプリケーションのクラス名の除外リストを入力するよう促し、ユーザに、監視されるクラス名の除外指定変更リストを入力するよう促し、要求された情報を受け取ると、除外リストで識別され、除外指定変更リストで識別されないクラス以外のすべてのクラスを監視するように構成されたコンピュータ・ハードウェアを含む。
【００２１】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判定のための一システムは、分散環境にあるサーバ上で実行中のアプリケーションのアクティビティ・ベースの可用度を監視し、アクティビティ・ベースの可用度に基づいてサーバが使用可能であるかそれとも使用不能であるかの指示をユーザに表示するように構成されたコンピュータ・ハードウェアを含む。このコンピュータ・ハードウェアは、監視されるアプリケーションに起因し得る差分ＣＰＵ使用量、差分スループット、および差分メモリ使用量のうちの１つまたは複数を監視するように構成することができる。それらの値のいずれかが閾値を下回る場合には、そのサーバは、ハードウェアの可用度にかかわらず、使用不能であるとみなされる。
【００２２】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判定のための一コンピュータ・プログラムは媒体上に記憶された命令からなり、それらの命令は、プロセッサで実行されるとそのプロセッサに、得られた情報から選択された情報項目を含む高レベル情報をユーザからアクセス可能な形式で提示するステップと、情報項目のうちの１つまたは複数に関連するより詳細な情報を要求するように促す１つまたは複数のプロンプトをユーザに提供するステップと、前記プロンプトの１つに応答して、前記情報項目のうちの１つまたは複数に関するより詳細な情報を求めるユーザからの要求を受け取るステップと、要求に応答してユーザに要求されたより詳細な情報を提供するステップとを実行させる。
【００２３】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のための一コンピュータ・プログラムは媒体上に記憶された命令からなり、それらの命令は、プロセッサで実行されるとそのプロセッサに、ユーザのアカウントを設けるための管理者からの指示を受け取るステップと、１台または複数のサーバをそのアカウントと関連付けるステップと、対応するユーザに関連付けられたサーバだけへのアクセスを可能にするステップとを実行させる。
【００２４】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別および解決のための一コンピュータ・プログラムは媒体上に記憶された命令からなり、それらの命令は、プロセッサで実行されるとそのプロセッサに、その環境で実行中のスレッドを識別するステップと、ユーザにそのスレッドのソフト・キルを実行する選択を提供するステップと、ソフト・キルを実行するコマンドに応答して、スレッドが取り消されるように例外をスローさせるコードをそのスレッドに付加するステップとを実行させる。
【００２５】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のための一コンピュータ・プログラムは媒体上に記憶された命令からなり、それらの命令は、プロセッサで実行されるとそのプロセッサに、ユーザにアプリケーション・サーバおよびサーチ問い合わせを選択するよう促すステップと、サーチ問い合わせに応答して、Ｗｅｂ要求でのすべてのアクティブＵＲＬストリングおよびリモート・エンタープライズＪａｖａ（Ｒ）Ｂｅａｎ要求でのアクティブ・クラス名の間をサーチするステップと、識別されたストリングおよび要求を表示するステップを実行させる。
【００２６】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のための一コンピュータ・プログラムは媒体上に記憶された命令からなり、それらの命令は、プロセッサで実行されるとそのプロセッサに、ユーザに、監視されないアプリケーションのクラス名の除外リストを入力するよう促すステップと、ユーザに、監視されるクラス名の除外指定変更リストを入力するよう促すステップと、除外リスト中のクラス名の一部を定義する除外指定変更リストを受け取ると、除外リストで識別され、除外指定変更リストで識別されないクラス以外のすべてのクラスを監視するステップを実行させる。
【００２７】
分散環境で実行中のエンタープライズ・アプリケーションでの問題判別のための一コンピュータ・プログラムは媒体上に記憶された命令からなり、それらの命令は、プロセッサで実行されるとそのプロセッサに、サーバ上で実行中のアプリケーションのアクティビティ・ベースの可用度を監視するステップと、アクティビティ・ベースの可用度に基づいてサーバが使用可能であるかそれとも使用不能であるかの指示をユーザに表示するステップを実行させる。
【発明を実施するための最良の形態】
【００２８】
本発明の方法およびシステムでは、ユーザにサーバおよびシステムの動作に関する情報を与える方法が提供される。この方法は、具体的には、Ｊａｖａ（Ｒ）プログラミング・システムに基づくシステムを実行中のエンタープライズ・サーバに適合される。また、この方法は、具体的には、複数のサーバ上で複数のクライアント／サーバ・アプリケーションを実行中のシステム上で使用するようにも適合される。
【００２９】
本発明の方法では、ユーザとは、通常、問題のユーザ・レポートを調査するよう依頼される情報技術部門の担当者である。このプロセスを問題判別として説明する。クライアントからサーバが使用できない、クライアント要求の処理が遅い、クライアントによる要求提出後の応答がないなどを含めて、多種多様な問題が発生し得る。この方法の最初のステップでは、ユーザがログインすると、ユーザに情報を与えるユーザ・インターフェイスが提示される。最初のユーザ要求に応答して、ユーザに高レベルの情報が提示される。この情報の最高レベルは、アプリケーション・サーバ・グループ・レベルとも呼ばれる。というのは、アプリケーション・サーバのグループに関する情報が提供されるからである。本発明のコンピュータ・システムは、ユーザへの提示のためにこの高レベル情報を選択している。この情報は、多数の情報項目を含むものであると理解され得る。提供される情報は、ユーザが閲覧する権限を有する選択されたアプリケーションを実行中のサーバの、リアルタイムでの、あるいは、直近の過去、例えば直前１分間、直前５分間、直前１時間などでの性能に関する情報を含む。ユーザには、提供され得る詳細な情報に関する１つまたは複数のオプションが与えられる。具体的には、それらのオプション、あるいはプロンプトは、提示された情報項目のうちの１つまたは複数に関するより詳細な情報を得るためのものである。ユーザは、より詳細な情報の表示のためにそれらの項目の１つまたは複数を選択する。このユーザ要求の受領に応答して、その１つまたは複数の提示項目に関してより詳細なレベルで情報が提供される。ユーザは、例えば、ハイパーリンクをマウスでクリックすることによってこれを実現することができる。例えば、サーバ名など、情報項目の一機能がハイパーリンクされ得る。より詳細なレベルでの情報を要求する他の多くの方式も提供され得る。より詳細な情報を求めるオプションの提示は、ユーザに詳細なレベルを得るドリルダウンを可能にするものであると理解され得る。
【００３０】
情報は、ハードウェアやオペレーティング・システム機能に関してではなく、アプリケーションに関して提供される。最高レベルで提供される情報には、クライアントに直接影響を与える情報が含まれる。例えば、クライアントには要求またはトランザクションの処理が見える。最高レベルで提供される情報には、好ましくは、最近の短期間に処理されたトランザクション数に関する情報を含む。この情報は、アプリケーション・サーバごとにアプリケーション・サーバ上に置くこともでき、アプリケーション・サーバ・グループごととすることもできる。ユーザの参照のために、それほど新しくない期間での同じ情報を提供して、ユーザが処理されたトランザクションまたは要求の数での傾向を閲覧できるようにすることもできる。他の利用可能情報には、要求またはトランザクションを処理する時間についての平均値などの統計情報が含まれる。この情報は、１台のサーバに影響を与えている問題を分離するために、サーバごとに提供することができる。アプリケーションに特有の情報を提供することによって、ユーザは、比較的迅速に判断を行って、問題がそのアプリケーションでのものかどうか、およびアプリケーション中のどこに問題が存在するかを判定することができる。次いで、ユーザは、本発明の方法に含まれない、既存のツールを使用して問題を解決することができる。あるいは、特定の種類の問題を解決するツールを、本発明の方法を実装するコンピュータ・プログラムおよびシステムに組み込むことも可能である。
【００３１】
アプリケーション情報の表示
次に、本発明の方法を、提供情報の一連のレベルの例を引いて説明する。レベル数、各レベルで与えられる情報、表示の種類などの設計上の特徴は、本発明の方法の範囲内で変動し得るものであることが理解されるであろう。この例では、最高のレベルとは、アプリケーション・サーバ・グループのレベルまたはアプリケーション概要ページである。以下で、図１〜４を参照して例示的なプロセスの流れについて説明する。ブロック１００で示すように、ユーザが最初にログインする。ユーザがログインすると、この方法は、ブロック１０５に示すように、アプリケーション・サーバ・グループまたはアプリケーション概要ページを表示させる。図８に例示的アプリケーション概要ページ５００を示す。アプリケーション・サーバ・グループ・レベルでは、以下の情報がユーザに提供され得る。５０５のボックスに示すように、各サーバが使用可能であるかそれとも使用不能であるかが示される。システムによって使用される使用可能または使用不能の定義は、サーバ上で実行中のアプリケーションの可用度を意味する。可用度または非可用度は、アプリケーションによって処理された要求を監視することによって評価される。可用度または非可用度は、好ましくは、ハードウェアの可用度または非可用度によって、あるいはソフトウェアにダミー要求を送信することによっては評価されない。見やすいように、この用法は図表により提供され得る。総サーバに対する使用可能サーバの割合は、ボックス５１０に示すように、パーセンテージで示され得る。同じ表示には、５１５に示すように、各サーバ・グループ上のアプリケーションのスループットに関する情報が提供される。好ましくは、最近の１期間または複数の期間にわたる完了要求数に関する情報が提供される。好ましい実施形態では、５２０に示すように、選択された数の最近の時間間隔にわたる完了要求数に関する情報が提供される。好ましい実施形態では、ボックス５１５に示すように、最新の１２の５分間隔など、いくつかの最近の期間にわたる完了要求数が提供される。各間隔における完了要求数は、見やすいように図表で提示され得る。最高レベル、またはアプリケーション・サーバ・グループの表示は、完了要求の総数も提供し得る。この概要を見ることによって、ユーザは有用な情報を得る。例えば、サーバが完了要求を提供するのが遅くなり、またはそれを停止した場合には、これが直ちに示される。例えば、ユーザによる多数の要求のために完了要求の量が次第に増加している場合には、それを直ちに見ることができる。スループット情報のグラフ表示は、ユーザに傾向が一目でわかるようにする。
【００３２】
最高レベルの表示、またはアプリケーション概要ページからは、ユーザに、表示されたアプリケーションに関するより詳細な情報の表示を活動化する少なくとも１つの手段が提示される。図８の５２５に示すように、ハイパーリンクされたテキストが提供され得る。本発明の方法では、ユーザ入力が受け取られる。要求が、判断ブロック１２０で示すように、単一のアプリケーションに関するより詳細な情報を求める要求の性質を持つものである場合には、選択されたアプリケーションに関する追加情報が提供される。要求が別の種類のものである場合には、要求された機能が実行される。最高レベルがアプリケーション・グループ・レベルである例では、次のより詳細な表示レベルは、ブロック１２５で示すように、アプリケーション・サーバ・グループ・レベルまたはサーバ可用度詳細ページと呼ばれる。アプリケーション・サーバ・グループ・レベルまたはサーバ可用度詳細ページの一例を図９の６００で示す。アプリケーション・サーバ・グループ・レベルでは、図９に記載のサーバ６０５、６１０のように、サーバごとに、１つの選択されたアプリケーションに関する情報が提供される。アプリケーション・グループ・レベルの表示からは、表示された各アプリケーションに関連付けられた少なくとも１つの選択がある。この選択は、図９に示すように、そのアプリケーションを実行中の各サーバまたはＪａｖａ（Ｒ）仮想マシン（ＪＶＭ）に関する追加詳細を提供する表示とすることができる。選択された情報は、各サーバに関して表示される。この情報はサーバを識別し、ＣＰＵ使用量とメモリ使用量の少なくとも１つを指示する情報を含むはずである。一例では、この情報はサーバ名を含み、以下のうちの１つまたは複数を含み得る。それらは、サーバのＩＰアドレス、サーバの開始時間、サーバの累積実行可能時間、増分ＪＶＭＣＰＵ使用量、サーバの合計ＣＰＵ、ＪＶＭＣＰＵ時間（累積）、ＪＶＭＣＰＵ使用量、ＪＶＭメモリ使用量、前回のリフレッシュからのＪＶＭメモリ増分、完了要求の総数、および完了要求の増分数である。この情報は、図表で、数値で、あるいはその両方で表示することができる。アプリケーション・サーバ・グループ・レベル情報を調べれば、問題の原因が直ちにユーザに示され得る。例えば、１台のサーバによる非常に大きなＣＰＵ使用量は、ユーザがその１台のサーバの動作をさらに調べる必要があることを示すものである。いくつかのサーバによる完了要求数が低いことは、それらの個々のサーバを調べる必要があることを示すものである。すべてのサーバがこのレベルで非常に類似した情報を持つ場合には、ユーザは、問題の原因をそのシステムの別の場所で探すべきであることを知るであろう。
【００３３】
アプリケーション・グループ・サーバ・レベルからの次の詳細レベルはアプリケーション・サーバ・レベルである。アプリケーション・サーバ・レベルの表示は、アプリケーション・アクティビティ表示と呼ぶことができる。可用性管理表示、またはアプリケーション・グループ・サーバ・ビューからは、好ましくは、表示された各サーバに関連付けられたアプリケーション・サーバ・レベルに移動するのに使用可能な選択がある。この方法では、ブロック１３０で示すように、ユーザ入力が受け取られる。ユーザ入力が、判断ブロック１３５で示すように、選択されたサーバに関連する追加情報を求める要求の性質を持つものである場合には、ブロック１４０で示すように、アプリケーション・サーバ・レベル情報が表示される。ユーザ情報が、選択されたサーバに関連する追加情報を求める要求でない場合には、要求された機能が実行される。アプリケーション・サーバ・レベルは、例えば、図１０の画面７００で示すように、個々の時点においてそのサーバによって実行中のスレッドのそれぞれに関する情報を提供する。これは、各行７０５が単一のスレッドに関する情報を提供する、スレッドごとの情報の表示である。その時点は最近のものであり、そのシステムから利用可能な最新の情報とすることができる。スレッドに関して表示される情報には、列７１０のクライアント要求などの少なくともスレッド識別情報、およびスレッドの実行速度とスレッドによるシステム・リソースの使用に関連する情報が含まれる。実行速度に関連する情報には、クライアント要求の時間、列７１５に示す滞留時間、列７２０に示す累積ＣＰＵ時間、および列７２５に示す遊休時間が含まれ得る。この実行速度に関連する情報を調べることによって、ユーザは、１つまたは複数のスレッドが実行されていないことを直ちに調べることができる。システム・リソースの使用に関連する情報は累積ＣＰＵ時間を含み得る。システム・リソースの使用に関する情報は、ループしており、または他の何らかの理由で他のスレッドがシステム・リソースにアクセスするのを妨げているスレッドを識別するのに役立ち得る。列７３０に示すスレッドによって実行中の現在のメソッドに関する情報、列７３５に示すクライアント要求開始時間、および列７４０に示すスレッド状況も提供され得る。
【００３４】
表示用に選択されるスレッド数を制限するためにフィルタが提供され得る。フィルタは、スレッドの属性に関する一定の基準を有する。図２の判断ブロック１４５およびブロック１５０に示すように、フィルタが活動化された場合には、フィルタの基準を満たすスレッドだけが表示される。フィルタは、１つまたは複数の選択された種類の処理速度カテゴリまたはシステム・リソースの使用カテゴリでの閾値基準を満たすスレッドだけに表示を限定することができる。例えば、一定の閾値を上回る滞留時間を有するスレッドだけが選択されるようにフィルタが構成され得る。滞留時間の長いスレッドは、クライアントによって応答が遅くなるとみなされる可能性が高い。別の例をあげると、閾値量を超えるＣＰＵ時間を累積しているスレッドだけが表示され得る。この情報は、ユーザが、ループしており、あるいは他のスレッドの処理を妨げている可能性のあるスレッドを識別できるようにする。例をあげると、７５０に示すように、使用可能なフィルタのドロップ・ダウン・メニューが提供され、ユーザが、７５５に示すラジオ・ボタンを使用してフィルタの適用を要求することが考えられる。
【００３５】
与えられる情報は、要求の名称、スレッドの種類、クラス名など、要求の種類の性質を持つものとすることもできる。この要求の性質情報の表示は、ユーザが、他の要求とは区別して処理される要求のクラスを識別できるようにする。例えば、金融サービス会社は、クライアントに、アカウント情報を閲覧させ、そのＷｅｂサイトを介した取引を開始させることができる。取引を完了するのに極端に長時間を要するが、アカウント情報の閲覧を求める要求はすぐに処理される場合には、要求の性質情報はこの不均衡を指示する。表示されるスレッド情報には、スレッドによって現在実行中のメソッドに関する情報も含まれ得る。この現在のメソッドの情報は、ユーザに、完了するのに極端に長時間を要しているメソッドを識別させることができる。
【００３６】
アプリケーション・アクティビティ表示から、ユーザは、個々のスレッドに関するより詳細な情報を閲覧するように選択することができる。ブロック１５５で示すようにユーザからの入力が受け取られ、ブロック１６０で関連する判断ブロックが示される。要求が１つのスレッドに関する情報を求めるものでない場合には、要求された機能が実行される。図３を参照すると、ブロック１６５で示すように、選択されたスレッドに関するアプリケーション・スレッド・ビューが提供される。一例では、この情報は、アプリケーション・スレッド・ビュー、または要求詳細ページと呼ばれ、それを図１１の８００で示す。追加の詳細情報には、前述の要素の１つまたは複数、ならびに適当なＳＱＬ命令文が含まれ得る。好ましくは、セッション・オブジェクト、要求オブジェクトおよびスタック・トレースを含む追加情報がこのページから要求され得る。
【００３７】
判別後に問題に対処するためのツールが提供され得る。例えば、問題判別の結果として、ループしている特定のスレッドが識別され得る。表示８００などの詳細の表示は、１つまたは複数のツールまたは操作を活動化する１つまたは複数のボタンまたはリンクを含み得る。それらのツールまたは操作は、他の表示された情報とは別に提供され得る。一例では、ユーザに、スレッド上で実行され得るいくつかの操作が提供される。それらの操作には、８０５で使用可能なドロップ・ダウン・メニューで示すスレッドの優先度の変更、８１０で使用可能なドロップ・ダウン・メニューで示すスレッド状況の変更、ソフト・キルまたはハード・キルによるスレッドの強制終了、あるいはメソッド・トレースなどの追加情報の取得が含まれ得る。ソフト・キルは、８１５で示すようなラジオ・ボタンによって使用し得る。ハード・キルは、８２０に示すようなラジオ・ボタンによって使用し得る。メソッド・トレースを求める要求は、メニュー８２５で示すようないくつかのメニュー項目の１つとして提供され得る。スレッドのソフト・キルは、そのスレッドが取り消されるように例外をスローさせるコードを付加することによって実行され得る。これは、（後述する）プローブ／パブリッシュ・エンジン中のＪＶＭＰＩインターフェイスを介してリアルタイムで実行され得る。ソフト・キルは、ハード・キルより望ましい。というのは、スレッドのハード・キルはＪＶＭの再始動を必要とすることになり得るからである。一例では、図３のブロック１８０で示すように、操作が要求されたかどうか判定するためにユーザ入力が評価され得る。操作が要求された場合には、プロセスの流れは、任意選択で、ユーザ入力に様々な操作を求める要求があるかどうか引き続きチェックすることができる。プロセスの流れは、ブロック１８５で示すように、スレッド優先度の変更を求める要求の有無をチェックし、変更が要求されている場合には、ブロック１９０で示すように、スレッド優先度を変更することができる。プロセスの流れは、スレッド状況の変更を求める要求の有無をチェックし、そうした要求が識別された場合には、ブロック１９１および１９２で示すように、その要求を実行することができる。図４を参照すると、プロセスの流れは、ブロック１９４で示すように、ソフト・キルを求める要求の有無をチェックすることができる。ソフト・キルを求める要求が検出された場合には、ブロック１９５に記載する、前述のコードが付加される。ハード・キルを求める要求が受け取られた場合には、ブロック１９６および１９７で示すように、ハード・キルが実行される。
【００３８】
さらなる詳細項目がスタック・トレースであり、それを図１２の表示９００で示す。スタック・トレースは、スタック・トレースが出力したメソッドで開始する、９０５に示すメソッド呼び出しのリストを表示する。この例では、メソッド呼び出しは「後入れ先出し」の順序である。したがって、９１０に示すメソッドなど、最後に実行されたメソッドがスタック・トレースの先頭に表示される。
【００３９】
前述のように、さらなる詳細レベルがメソッド・トレースの表示であり、その一例を図１３に表示１０００で示す。ユーザは、メニュー８２５から選択を行うなど、要求詳細ページから入力を提出することによってメソッド・トレースの表示を得ることができる。メソッド・トレースは全実行履歴を表示し（その一例を、スレッドによって処理中の要求のメソッド・トレースに関して１００５に示す）、好ましくは、ＳＱＬ命令文も含む。メソッド・トレース表示は、ユーザが、例えば、個々のスレッドがループしているかどうか識別するのに役立ち得る。
【００４０】
図１４の表示１１００で示すように、現在の要求オブジェクトおよびセッション・オブジェクトに関する情報は、要求詳細ページからの要求によって得ることができる。現在の要求に関する情報には、１１０５に示す要求のＵＲＬ、１１１０に示す要求オブジェクトの属性が含まれ得る。セッション・オブジェクト情報には、１１１５に示すセッション識別、１１２０に示すセッション作成時間、および、ある場合には、１１２５に示すセッション属性が含まれ得る。
【００４１】
サーチ
前述の例では、各表示は、個々のサーバ・グループ、サーバ、またはスレッドに関する１つの詳細レベルの選択を提供する。好ましい実施形態では、複数の詳細レベルを使用することができる。例えば、任意のレベルにおいて、ユーザにサーチを実行するオプションが提供され得る。以下で、サーチに関連するプロセスの流れを図５との関連で説明する。ブロック２０１に示すように、アプリケーション要求サーチ・ページを求めるユーザ要求が受け取られる。このオプションを選択した後で、ブロック２０５で示すように、アプリケーション要求サーチ・ページが表示される。アプリケーション要求サーチ・ページの一例を、図１５の表示１２００で示す。アプリケーション要求サーチ・ページは、ユーザに、サーチのために１２０５に示す使用可能なドロップ・ダウン・メニューなどでグループを、１２１０などでサーバを選択し、ウィンドウ１２１５などにテキスト・ストリングの形で探索語を入力するよう促す。流れ図の２１０に示すように、ユーザからサーバ指定および探索語が受け取られる。ブロック２１５に示すように、テキスト・ストリングの形の探索語を求めて、Ｗｅｂ要求でのすべてのアクティブＵＲＬストリングおよびリモート・エンタープライズＪａｖａ（Ｒ）Ｂｅａｎ要求でのアクティブ・クラス名がサーチされる。結果ページは、流れ図のブロック２２０に示すように、すべての識別されたＵＲＬストリングまたはアクティブ・エンタープライズＪａｖａ（Ｒ）Ｂｅａｎ要求を表示する。サーチ結果ページの一例を図１６の表示１３００で示し、その結果を１３０５に示す。表示される情報には、列１３０５で示す結果のサーバ名、列１３１０で示すクライアント要求名、列１３１５で示す開始日時、列１３２０で示すスレッドの識別、列１３２５で示す合計リソース時間が含まれ得る。ユーザには、これらのサーチ結果をソートできることが提示される。ソート基準には、好ましくは、開始時間および合計滞留時間が含まれる。図１６の表示では、ユーザは、列見出しのいくつかを選択することによって、様々な基準で結果をソートさせることができる。したがって、結果は、サーバ名、クライアント要求、開始日時、合計リソース時間でソートされ得る。特に、開始時間および合計滞留時間でのソートにより、ユーザは、失速し、ループし、あるいはそれ以外の問題のあるＵＲＬおよび要求を直ちに調べることができる。ブロック２２５で示すように、ユーザからサーチ基準が受け取られる。それに応答して、ブロック２３０で示すように、ストリングまたは要求が受け取った基準でソートして表示される。ドロップ・ダウン・メニューまたはその他の希望探索語のリストも提供され得る。このサーチ・オプションは、ユーザが、サーチされるクライアント要求の種類に対応する個々のスレッドに付随する情報の表示に直接進むことを可能にする。このサーチ・オプションは、どの表示画面でも提示され得る。
【００４２】
いくつかのサーチ・オプションが提供され得る。サーチ戦略は、好ましくは、挙動でトランザクションを識別することができる。例えば、サーチは、５分間、１０分間、１５分間など、選択された期間より長い間システム中に存在しているシステム中のすべてのトランザクションを対象とし得る。あるいは、一定の時間内に開始されたすべてのトランザクション、閾値数（１０，０００など）を超えるＳＱＬを発行しており、まだ終了していないすべてのトランザクション、および閾値数（１０，０００など）を超えるメソッドを発行しており、まだ終了していないすべてのトランザクションを求めるサーチを実行することもできる。ユーザの個々のシステムおよびアプリケーションでの経験に基づき、ユーザが、システム中の閾値時間の長さおよび閾値トランザクション数を含むパラメータを選択することができることが理解されるであろう。
【００４３】
本発明の方法は、好ましくは、アプリケーション・サーバ・システム・リソース・アナライザを提供する。このアナライザは、様々なサーバの動作を比較するようにも選択され得る。ユーザには、前述のドリルダウンの記述中のすべてのまたは任意の箇所においてシステム・リソース・アナライザを選択するオプションが提示され得る。Ｗｅｂｓｐｈｅｒｅ  ＰＭＩインターフェイスなど既存のツールを使用して情報が提供され得る。サーバ・システム・リソース・アナライザの第１のページは、システム・リソース・ポータルと呼ばれる。システム・リソース・ポータルは、異なるサーバなど、異なるリソースの数に関する情報を提供する。好ましくは、各リソースに関して与えられる情報は、最大値のパーセンテージとして示され、図表で表示され得る。所与のリソースの使用が最大値の一定の定義閾値内にある場合には異なる色を使用するなどの技法が用いられ得る。表示され得る情報には、プール、メモリ使用量、ＣＰＵ使用量、アプリケーション・アクティビティ、詳細なリソース情報リンクが含まれる。図１７の表示１４００に一例を示す。この例示的表示では、ＣＰＵ使用量が１４０５に、メモリ使用量が１４１０に、トランザクション障害率が１４１５に示されている。詳細リンクはメニュー１４２０に与えられている。エンタープライズＪａｖａ（Ｒ）Ｂｅａｎについては、ユーザは、メニュー１４２０を使用してエンタープライズＪａｖａ（Ｒ）Ｂｅａｎのリストを選択することができる。そのリストから、ユーザは、いくつかのエンタープライズＪａｖａ（Ｒ）Ｂｅａｎのうちの１つを選択することができる。その選択に応答して、図１８の表示１５００に示す情報を含めて、選択されたエンタープライズＪａｖａ（Ｒ）Ｂｅａｎのメソッドに関する大量の情報の表示が行われ得る。１５０５でのエンタープライズＪａｖａ（Ｒ）Ｂｅａｎの識別以外に、１５１０に様々なメソッド情報が示されている。作成されたメソッド数、削除された数、活動化された数、不活動化された数、インスタンス化され、破棄された数、ロードされ、格納された数、同時アクティブ・メソッドの数、同時ライブ・メソッドの数、メソッド呼び出しの数、その他の情報などの数量情報が示され得る。また、平均作成時間や平均除去時間などの統計情報も示され得る。データベース接続プールについて、ユーザは、メニュー１４２０からデータベース接続プールに関する追加情報を選択することができる。それに応答して、図１９の表示１６００で示すようなデータベース接続プール概要ページが表示される。行１６０５に示す各接続プールごとに、列１６１０に示す同時待機者、列１６１５に示す平均待ち時間、列１６２０に示す障害、列１６２５に示す使用パーセンテージなどの情報が示され得る。データベース接続プール概要ページから、個々のデータベース接続プール名１６３０を選択するなどによって、データベース接続プールに関するさらなる詳細レベルが選択され得る。このさらなる詳細レベルは、図２０の表示１７００などのデータベース接続プール詳細ページで表示される。表示１７００は、１７０５の個々のデータベース接続プールの識別以外に、詳細なスタップショットのタイムスタンプ、作成された接続数���破棄された接続数、戻された接続数、割り振られた接続数、プール・サイズ、ＰＲＥＰ命令文キャッシュからの廃棄数などの情報、ならびに１７１０に一般的に示す、データベース接続プール概要ページからの情報を含み得る。
【００４４】
サーブレットおよびセッション・マネージャについては、メニュー１４２０からサーブレットおよびセッション・マネージャ概要データ・ページが選択され得る。そうしたページの一例を図２１の表示１８００で示す。このページは、１８１０に一般的に示すように、作成されたセッション数、無効化されたセッション数、終了したセッション数、セッション存続時間、アクティブ・セッション数、ライブ・セッション数を識別する。スレッド・プールについては、メニュー１４２０からスレッド・プール概要ページが選択され得る。スレッド・プール概要ページの一例を図２２の１９００で示す。スレッド・プール概要ページは、スレッド・プールのリストを、行１９０５に示すように、好ましくは、詳細スナップショットのタイムスタンプ、スレッド作成数、スレッド破棄数、アクティブ・スレッド数、プール・サイズ、および最大使用リソースのパーセントと共に示すことができる。
【００４５】
トランザクション・マネージャ詳細ページは、メニュー１４２０から選択することができ、図２３の表示２０００で示すように、スナップショットのタイムスタンプ、および、２０１０に一般に、開始されたグローバル・トランザクションのそれぞれの数、関与するグローバル・トランザクション、開始されたローカル・トランザクション、アクティブなグローバル・トランザクション、アクティブなローカル・トランザクション、グローバル・トランザクション存続時間、グローバル完了前存続時間、グローバル準備時間、グローバル・コミット時間、ローカル完了前時間、ローカル・コミット時間、最適化数、コミットされたグローバル・トランザクション、コミットされたローカル・トランザクション、ロールバックされたグローバル・トランザクション、ロールバックされたローカル・トランザクション、時間切れのグローバル・トランザクション、および時間切れのローカル・トランザクションを含み得る。
【００４６】
メニュー１４２０からＷｅｂアプリケーション概要ページが選択され得る。Ｗｅｂアプリケーション概要ページは、その一例を図２４の表示２１００で示すが、列２１０５に名前で識別され、例えば、それぞれ、列２１１０および２１１５に、それぞれの合計要求および同時要求を有するサーブレットのリストを示すことができる。それぞれの合計要求および同時要求を有する、ＪＳＰのリストも表示され得る。Ｗｅｂアプリケーション概要ページからサーブレットまたはＪＳＰの名前をクリックすることによって、Ｗｅｂアプリケーション詳細ページが選択され得る。Ｗｅｂアプリケーション詳細ページを図２５に表示２２００で示す。これは、選択されたサーブレットまたはＪＳＰについて、タイムスタンプ、および２２１０で一般に、合計要求、同時要求、応答時間、およびエラー数を示す。前述の種類の情報の即時の表示は、ユーザが、１つのアプリケーションで識別され、別のアプリケーションでは識別されない問題の原因を識別する際に役立ち得る。
【００４７】
本発明の方法が、各レベルで使用可能な個々の情報、情報の表示方式、各レベルでユーザが使用可能なドリルダウン・パスの変形形態を用いても実行され得ることが理解されるであろう。レベルの数も本発明の範囲内で変動され得る。この方法は、ユーザまたは管理者によるレベル数、各レベルで表示される情報の種類、および表示方式のカスタマイズを提供することができる。
【００４８】
ユーザの権限
本発明の方法およびシステムは、各ユーザが定義された機能およびアプリケーションの状況にアクセスできるようにする。システム管理者は、各個別ユーザごとにアカウントを作成するオプションを有する。各ユーザを、１つまたは複数のアプリケーション・サーバ・グループに割り当てることができ、それらのグループがユーザのアカウントに関連付けられる。各ユーザには、システム管理者によってそのユーザのアカウントに選択されたアプリケーション・サーバ・グループだけに付随する情報を閲覧する権限が与えられる。各ユーザは、そのシステムにアクセスするのに必要とされるパスワードを持つことができる。好ましい実施形態では、ＵＮＩＸ（Ｒ）などのオペレーティング・システムがパスワード検証を実施する。サーバのサーバ・グループへの割り当ても、ユーザのサーバ・グループへの割り当てと同様に、システム管理者の制御下に置かれる。メンバ構成がオーバーラップする異なるサーバ・グループも作成され得る。ユーザも同様に、様々なサーバおよびサーバ・グループ上で閲覧しコマンドを実行する様々な権限を持つことができる。
【００４９】
アクセスについての例として、図６に簡略化したシステムを示す。システム３００はサーバ１から１０と指定された１０台のサーバ３０５を備える。各サーバ３０５は、サーバ・グループ３１０、３１２、３１４のうちの少なくとも１つに指定される。第１のサーバ・グループ３１０はサーバ１〜５を含み得る。第２のサーバ・グループ３１２はサーバ１、２、６、７を含む。第３のサーバ・グループ３１４は、サーバ８、９、１０を含む。したがって、サーバは、メンバ構成がオーバーラップしてもしなくてもよい。管理者３２０は、すべてのサーバ・グループに対するすべての権限、および許可システム３２２を変更する権限を有するものとして示されている。ユーザ３２５は、情報を閲覧し、コマンドを実行する様々な権限を有し、あるいはまったく権限を持たないものとして図示されている。１人のユーザは、第１のグループに関する第１の権限、および第２のグループに関する第２の権限を有する。第１の権限には、情報を閲覧する権限だけが含まれ得るが、コマンドを実行する権限は含まれない。第２の権限には、情報を閲覧する権限および選択されたコマンドまたはすべての利用可能なコマンドを実行する権限が含まれ得る。サーバ・グループはオーバーラップしてもしなくてもよいことが理解されるであろう。２セットを超える権限も提供され得る。
【００５０】
データ・コレクタの構成
本発明の方法では、表示される情報はアプリケーションの監視によって収集される。監視されるアプリケーションは、本発明の一方法では、動的に調整され得る。どんな監視も、あるサーバまたはグループの機能の実行からシステム・リソースを転用するものであることが理解されるであろう。したがって、監視のためのアプリケーションを選択できることは、例えば、問題のあるアプリケーションの監視だけのためにシステム・リソースが維持され得ることを意味する。その選択は、好ましくは、サーバ・レベルまたはグループ・レベルのどちらかで実行され得る。図２６を参照すると、未構成のデータ・コレクタ構成ページ２３００が示されている。未構成のデータ・コレクタが２３１０に記載されている。このページを使用してデータ・コレクタの構成が登録される。このページから、例えばボタン２３１５によって、デフォルトのデータ・コレクタ構成を選択することができ、あるいはカスタム構成のために２３２０のデータ・コレクタの名前を選択することができる。カスタム構成が収集された場合には、図２７の表示２４００で示すように、データ・コレクタ構成ページが表示される。ボックス２４０５に表示するクラス名フィルタ・リスト（除外）は、それらのクラスが除外指定変更リストに記載されない限り監視されることのないクラスのリストである。ボックス２４１０に表示するクラス名フィルタ・リスト（除外指定変更）は、監視される除外リスト中のクラスの一部の入力のために設けられる。除外リストに含まれないすべてのクラスは監視される。除外リスト中のクラスの一部だけが監視される。この技法は、リソースが不必要に監視に割り振られないように、ユーザがフィルタリングのために必要最小限の数のクラス名を選択することができるようにする。例えば、除外リストは、クラス「ｊａｖａ（Ｒ）．＊」を含むことができ、除外指定変更リストは、「ｊａｖａ（Ｒ）．ｕｔｉｌ．＊」を含むことができる（「＊」は任意の拡張子を示す）。図７の例示的なプロセスの流れでは、ユーザはブロック４０５でクラスを入力するよう促される。ブロック４１０に示すように、ユーザから識別された１つまたは複数のクラスが受け取られる。
【００５１】
例示的システム・アーキテクチャ
本発明の問題判別システムは、以下で述べるアーキテクチャを持ち得る。このアーキテクチャは、各アプリケーション・サーバ上で動作するエージェントの性質を持ち得るものであり、専用サーバ上の残りのコンポーネントには、中央制御を提供するカーネル、プローブ・エンジンからデータを受け取るパブリッシュ・サーバ、キャッシュからデータベースにデータを移動するアーカイブ・エージェント、データベース、すべてのエンド・ユーザ・アプリケーションを提供する視覚化エンジン、および（Ｗｅｂｓｐｈｅｒｅなどの）アプリケーション・サーバから一定のアプリケーション・サーバ特有のデータを収集するアプリケーション・サーバ・エージェントが含まれる。例示的アーキテクチャを図２８に示す。２５１０に示すようなアプリケーション・サーバ・エージェントはアプリケーション・サーバ上にインストールされる。プローブ／パブリッシュ・エンジン２５１１は、アプリケーション・サーバ・エージェント２５１０の主要コンポーネントである。残りのコンポーネントは、専用サーバ２５２０上にインストールされ得る。カーネル２５３０は中央制御を提供する。パブリッシュ・サーバ２５４０は、アプリケーション・サーバ・エージェント２５１０からデータを受け取り、アーカイブ・エージェント２５５０にデータを移動する。アーカイブ・エージェント２５５０はデータベース２５６０にデータを移動する。視覚化エンジン２５７０は、すべてのエンド・ユーザ・アプリケーションを証明し、履歴情報についてデータベースとやりとりし、スナップショット情報を要求し、受け取るためにアプリケーション・サーバ・エージェントと直接やりとりする。
【００５２】
一実施形態では、前述の方法でユーザに提供されるデータの供給元を、プローブ／パブリッシュ・エンジンとすることができる。プローブ／パブリッシュ・エンジンは、特定のスレッドに付随するすべての情報を得る。好ましい実施形態では、プローブ・エージェントに標準Ｊａｖａ（Ｒ）プロファイリング・インターフェイス（ＪＶＭＰＩ）が用いられ得る。
【００５３】
図２９を参照すると、プローブ／パブリッシュ・エンジン２５１１が、それがやりとりするＪａｖａ（Ｒ）仮想マシン２６１０、ならびにアプリケーション・サーバ２６１５との関連で示されている。プローブ／パブリッシュ・エンジン２５１１は、好ましくは、５つのコンポーネント、すなわちプローブ・コントローラ２５１２、コマンド・エージェント２５１３、イベント・エージェント２５１４、イベント・ハンドラ２５１５、およびパブリッシュ・エンジン２５１６を備える。プローブ・コントローラ２５１２は、その他のコンポーネントのライフ・サイクルを制御するコントローラ・スレッドである。イベント・エージェント２５１４は、当該のＪＶＭＰＩイベントのためのイベント・ハンドラを登録する。そうしたイベントが発生すると、それらのハンドラが呼び出される。それらのハンドラは、関連情報を収集し、それをイベント待ち行列に付加する。次いで、パブリッシュ・エンジン２５１６が、イベント待ち行列からそのデータを得、それをパブリッシュ・サーバ２５４０に送る。それらのエージェントは、ＪＤＫ（Ｊａｖａ（Ｒ）Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）１．２．２以上で提供される標準Ｊａｖａ（Ｒ）プロファイリング・インターフェイスを使用して構築され得る。
【００５４】
この実施形態では、ＪＶＭＰＩライブラリがＪＶＭと共にロードされ、ＪＶＭ、プローブ・コントローラ、イベント・エージェント、およびコマンド・エージェントとやりとりする。ＪＮＩ関数を使用してすべてのイベントベースのデータ、日時スタンプ、壁時計およびＣＰＵクロックが取り込まれ得る。ＪＶＭＰＩライブラリによって登録されるイベントを以下の表１に示す。
【００５５】
【表１】
2006509266.tif 000003
【００５６】
ＪＶＭＰＩライブラリから得られた情報は、イベント待ち行列と呼ばれる待ち行列に格納され、イベント・エージェントは、その待ち行列からレコードを取り出し、それらをパケットにし、パブリッシュ・エンジンを介してパブリッシュ・サーバに送る。イベント・エンジンによって待ち行列から収集されるデータを以下の表２に示す。
【００５７】
【表２】
2006509266.tif 000004
【００５８】
コマンド・エージェントは、カーネルに登録されたＲＭＩサービスである。コマンド・エージェントは、視覚化エンジンおよびその他の外部コンポーネントからコマンドを受け取り、ＪＶＭＰＩまたはＪＮＩ呼び出しを使用してそれらを満足させる。コマンドの例示的リスト、およびそれらのコマンドがＪＶＭＰＩに提供されるか、それともＪＮＩに提供されるかを以下の表３に示す。
【００５９】
【表３】
2006509266.tif 000005
【００６０】
プローブ・コントローラも、好ましくは、カーネル２５３０に登録されたＲＭＩサービスであり、他のプローブ・コンポーネントを開始および停止し、そのプローブの構成を取得する。プローブの新しい構成は、カーネル２５３０からプローブ・コントローラに送られる。プローブ・コントローラは、新しい構成を受け取ると、プローブを開始すべきかそれとも停止すべきか、あるいはフィルタを変更すべきかどうか判定する。プローブ／パブリッシュ・エンジンの論理図を図３０で示す。この論理図によれば、２７０２で示すように、ＪＶＭがロードされると、２７０４で示すように、スレッド開始、スレッド終了およびＪＶＭの初期設定完了を識別するイベントがカーネルに登録される。２７０６で示すように、ＪＶＭの初期設定が完了すると、２７０８で示すように、システム属性が設定され、プローブを開始するためのスレッドが作成される。次いでスレッドは、２７１０で示すように、メソッド入力およびクラス・ロード・イベントを有効にし、２７１２で示すように、アプリケーション・サーバが開始するまで待機する。メソッド入力は、２７１４で、ＪＶＭでのプロセスの流れを開始し、２７１６でアプリケーション・サーバが開始されているかどうかチェックする。アプリケーション・サーバが開始されている場合には、プロセスの流れがＩｎｉｔＰｒｏｂｅスレッドに渡され、それが２７１８でメソッド入力およびクラス・ロード・イベントを無効にし、２７２０でプローブ・コントローラ・スレッドを作成する。プローブ・コントローラ・スレッドは、２７２２で、カーネルからプローブ構成を捜し出す。プローブ構成が見つからなかった場合には、２７２４および２７２６で示すように、流れが終了する。構成が見つかった場合には、プロセスの流れは、２７２８のその構成でプローブが有効にされているかどうかの判定に進む。有効にされていない場合、プロセスの流れは終了する。また、プロセスの流れは、２７３０で示すように、カーネルからのＲＭＩ呼び出しの形で、新しい構成を開始することもできる。プローブが有効にされている場合には、プロセスの流れは、２７３２に示すように、イベント・エージェントおよびコマンド・エージェントを開始し、クラス・ロード・イベントおよびメソッド入力２イベントを有効にする。コマンド・エージェントは、２７３４および２７３６で示すように、視覚化エンジンからのコマンドを待つ。メソッド入力イベントの有効化は、２７５０で示すように、ＪＶＭでのプロセスの流れを開始させる。２７５０で示すように、ＣＰＵクロック、壁時計、メソッド識別、スレッド識別、またはＵＲＬおよびＳＱＬあるいはそれらの組み合わせなどのデータが得られ、イベント待ち行列２７６０に渡される。クラス・ロード・イベントは、２７５４で示すように、ＪＶＭでのプロセスの流れを開始する。２７５６に示すように、クラス名、メソッド名およびシグニチャを取得する関数が開始され、この情報がクラス・ハッシュ表２７６２に渡される。イベント・エージェントは、２７８０で示すように、イベント待ち行列２７６０からレコードを取り出す。イベント・エージェントは、２７８２に示すように、パブリッシュ頻度に応じて待機する。
【００６１】
視覚化エンジン２７５０は、本発明の方法およびシステムで使用されるフロントエンド・ユーザ・インターフェイス・コンポーネントを提供する。視覚化エンジン２７５０の実装には標準Ｊ２ＥＥ技術が使用され得る。視覚化エンジン２７５０のフロントエンド枠組みは、セッション管理やセキュリティなどのハウスキーピングを扱う。視覚化エンジン２７５０は、好ましくは、フロントエンド・アプリケーションおよび業務論理コンポーネントの開発につながる環境を提供するために、可能な限り多数の共通タスクを扱う。視覚化エンジン２７５０は、それがユーザ要求に応答してアクセスするデータベースの上に位置する。そのアーキテクチャを図３１に示す。これは、ブラウザ２８１０を使用し、Ａｐａｃｈｅ  ＷｅｂサーバとすることのできるＷｅｂサーバ２８１５、および、ＩＢＭのＷｅｂｓｐｈｅｒｅなどの、データベースとＷｅｂサーバの間のインターフェイスを提供するアプリケーション・サーバ２８２０とやりとりする、ブラウザベースのものとして示されている。サーブレットを使用して要求を処理し、アプリケーション・フローを管理することができる。また、サーブレットは、フォーム・データ入力の検証を行い、データを含むＪａｖａ（Ｒ）ＢｅａｎオブジェクトをＪＳＰページに送ることによってフロントエンド挙動を制御するのにも用いられ得る。ＪＳＰページは大部分のフロントエンド表示論理を扱うことができる。エンタープライズＪａｖａ（Ｒ）Ｂｅａｎを使用して業務論理が実装され得る。一般に、ステートレス・セッションＢｅａｎが使用される。
【００６２】
サーブレットは、前述のようなフォーム入力データの検証、およびアプリケーション論理フローに使用され得る。すべてのサーブレット・アプリケーションが拡張する必要のある基本サーブレットが提供され得る。この基本サーブレットは、グローバル変数をセットアップし、認証および許可を扱い、必要に応じてログインおよびアクセス拒否ページへの宛先変更を行う。リソース・バンドル、ログ・メッセージおよび監査証跡メッセージ・ファイルが提供される。ＪＳＰはブラウザで表示されるＷｅｂページを表現するためのＨＴＭＬコードを生成する。サーブレットは、Ｊａｖａ（Ｒ）Ｂｅａｎオブジェクトを使用して所望のデータをＪＳＰに渡す。
【００６３】
ステートレス・セッションＢｅａｎの最上位層はＡＰＩを構成する。最上位層の下には、データベースからのデータへのアクセスを扱う、エンタープライズＪａｖａ（Ｒ）ＢｅａｎまたはＪａｖａ（Ｒ）クラスの層が存在し得る。データベースからのデータは、ＤＢＡｃｃｅｓｓデータ・アクセス枠組みの一部であるデータベース・アクセス層を介して得ることができる。
【００６４】
アプリケーション・アクティビティ表示機能は、前述のように、データへのリアルタイム・アクセスを提供し、視覚化エンジンと対応するパブリッシュ・サーバおよびプローブの間の直接通信を伴う。この直接通信のために、パブリッシュ・サーバ・インターフェイスおよびコマンド・エージェント・インターフェイスが提供される。これらのインターフェイスへのスタブはカーネルによって維持され、ルックアップ・エージェント・ヘルパー・クライアントを使用して視覚化エンジンがカーネルからルックアップを行うことにより取り出される。プローブが実行中の各サーバは、そのプローブの一意の識別を持つ。プローブ識別が得られると、カーネルからコマンド・エージェントのインターフェイス・スタブが得られる。次いで、プローブによって使用されたパブリッシュ・サーバの識別がプローブから得られる。パブリッシュ・サーバの対応するインターフェイス・スタブがカーネルから得られる。次いで、アクティブ要求および関連するデータのリストを、選択されたパブリッシュ・サーバから直接得ることができる。追加の要求データはプローブから直接得ることができる。スレッド変更、スレッドの停止、優先度変更などのコマンドは、コマンド・エージェント・インターフェイスを介してプローブに直接送られる。視覚化エンジンと、プローブのコマンドおよびパブリッシュ・サーバの間の通信はリアルタイムであり同期的である。
【００６５】
視覚化エンジンは、前述のセキュリティ機能を含む。Ｊ２ＥＥ仕様のセキュリティ機能は前述のセキュリティ機能を提供するのに十分ではないため、独自のＡＰＩが開発された。セキュリティ機能は、認証および許可機能からなる。認証は、第三者認証システムをラップする独自のＪａｖａ（Ｒ）ＡＰＩによって実施される。認証は、ユーザまたはグループごとのアクセス制御リストを維持することによって実施される。ユーザは特定のグループと関連付けられ、それらのグループ中のサーバ用のデータだけにアクセスすることができる。サーバは、それぞれ、１つまたは複数のグループに関連付けられる。
【００６６】
次に、カーネルについて詳細に説明する。カーネルは、様々なサービスがネットワーク上で相互に発見し合えるようにし、サービスが動的に、活発に対話する方法を提供する。サービスがオンラインまたはオフラインの状態にされるときには、ユーザ介入は不要である。カーネルに結合するサービスは、その他のサービスのいずれかがオンラインまたはオフラインになるときに動的に適応することができる。サービスの消費者は、そのサービスの実装の事前知識を必要としない。図３２を参照すると、カーネルの２つのインスタンス、２５３０、２５３０’が示されている。このカーネルのアーキテクチャは、コア２５３１、リース管理機能２５３２、ＲＦＳサーバ２５３３、コードベース・サーバ２５３４、登録データベース２５３５、可用度サーバ２５３６、および構成サーバ２５３７を特徴として持つ。カーネルの２つのインスタンスは、好ましくは、可用度を高めるために別々のサーバ上で実行される。
【００６７】
カーネル・コア２５３１は、サービスからのすべての結合、更新、離脱およびルックアップ要求を処理する。それらのサービスは、プローブ・エージェント、可用度サーバ２５３６、および構成サーバ２５３７である。結合要求では、サービスは、プロキシ・オブジェクトおよびそれに関連するサービス属性をカーネルに渡す。カーネルは、プロキシ・オブジェクトおよびサービス属性を登録データベースに格納することによって要求を満たす。クライアントは、タスクを遂行するために特定の種類のサービスを必要とするときには、カーネルにサーチ・テンプレートを渡し、ルックアップ要求を発行することによってそのサービスを捜す。サーチ・テンプレートに基づいて、カーネルはクライアントに、対応するプロキシ・オブジェクトを返す。各サービスは、定期的にカーネルに更新要求を発行することによってそのリースを更新する必要がある。カーネルが必要なときに更新要求を受け取らなかった場合には、カーネルは、登録データベースからサービスのプロキシ・オブジェクトおよびサービス属性を削除する。この更新要件は、使用不能のサービスに要求が送られることを防ぐ。プローブ／パブリッシュ・サーバは、好ましくは、リースが更新されるときに、完了した要求およびＣＰＵ利用の量など、アプリケーションおよびシステムの情報を１つにまとめる。したがって、リースの概念はサーバの可用度および高レベル統計情報を報告するように働く。サービスはカーネルに離脱要求を発行することもできる。
【００６８】
リース管理機能コンポーネント２５３２は、登録データベース中のレコードを追跡する。いずれかの登録が失効し、あるいは離脱要求が受け取られた場合には、リース管理機能２５３２は、対応するレコードを削除させて、カーネルがどのクライアントにも対応するプロキシ・オブジェクトを渡さないようにする。ＲＦＳ（スタブを求める要求）サーバ２５３３は、接続のためのポート上でリッスンする。接続が識別されると、カーネルの直列化スタブ・オブジェクトが、カーネルとのインターフェイスに使用するためにそのサービスまたはクライアントに送出される。コードベース２５３４は、ＨＴＴＰサーバと類似のものであるが、サービスのクライアントにそれがカーネルから得るプロキシ・オブジェクトのクラス定義をダウンロードさせる機能を提供する。登録データベース２５３５は、プロキシ・オブジェクトおよび関連サービス属性のためのメモリ内記憶を提供する。サーバ可用度および統計情報は、登録データベース２５３５中に在る。
【００６９】
可用度サーバ２５３６は、サーバの可用度および統計データを視覚化エンジン２５７０に提供するのを容易にするために、スナップショットを取り込み、登録データベース２５３５の履歴を記憶する。
【００７０】
構成サーバ２５３７は、すべてのコンポーネントの構成データを記憶するための集中された場所である。構成データはＸＭＬ形式であり、データベースに保持される。ユーザは、視覚化エンジンを介して構成を変更することができる。これが実行されるときには、構成サーバ２５３７はカーネルから、旧構成に適合されているプロキシ・オブジェクトのリストを取り出す。構成サーバ２５３７は、プロキシ・オブジェクトを利用して新しい構成を同報送信する。これは、視覚化エンジンでユーザ・コマンドに応答してプローブの構成を更新するのに役立つ。
【００７１】
ＪｏｉｎＭａｎａｇｅｒと呼ばれるヘルパー・ユーティリティは、カーネルのスタブ・オブジェクトを要求し、カーネルをプロキシ・オブジェクトおよびそのサービス属性と結合する。スタブ・オブジェクトが使用不能である場合には、このユーティリティは、それに成功するまで再試行し続ける。このユーティリティは、リースの維持および更新も行う。クライアントがルックアップ・マネージャ・ユーティリティを使用して特定のサービスを捜すこともできる。
【００７２】
パブリッシュ・サーバ２５４０は、様々なパブリッシュ・エンジンから受け取ったデータを管理する。単一のインストールで複数のパブリッシュ・サーバが提供され得る。パブリッシュ・サーバは、視覚化エンジンのための問い合わせ機能を提供する。パブリッシュ・サーバは、性能管理インターフェイス・データの増分検索も管理する。パブリッシュ・サーバ・アーキテクチャを図３３に示す。
【００７３】
パブリッシュ・サーバ２５４０は、マルチスレッド・プロセスとして実装され得る。各スレッドは、特定のパブリッシュ・エンジンに接続され、そこからデータを受け取る。これは、始動、シャットダウンおよびカーネルへの通信を扱う追加スレッドも含み得る。
【００７４】
図３３を参照すると、パブリッシュ・サーバ２５４０は、３００２に示すように、カーネルに結合するスレッドを作成し、その契約を規則的に更新する。パブリッシュ・サーバ２５４０は、３００４に示すように、ソケット接続を受け入れるスレッドも作成する。判断ブロック３００６で示すように、次のステップは、対応するパブリッシュ・エンジンから問い合わせが受け取られたかどうかによって異なる。問い合わせではなくデータが受け取られた場合には、３００８に示すように、永続的ソケット接続が確立される。データは要求とも関連付けられる。次いで、３０１０に示すように、パブリッシュ・エンジンを介してプローブからデータが得られる。３０１２および３０１４に示すように、サーバ再始動信号が受け取られた場合には、パブリッシュ・サーバは、続行する前に、再始動されたサーバに累積されたデータをリセットする。３０１６および３０１８に示すように、データが新しいプローブからのものである場合には、サーバのＰＭＩ情報が、例えば５分ごとなど、定期的に取り出されるようにサーバが登録される。次いで、プロセスの流れは、３０２０に示すように、プローブから受け取ったメソッド・レベル・レコードの処理に進む。３０２２に示すように、終了が要求され、またはレコード数が過剰である場合には、３０２４に示すように、アクティブ要求リストからプローブが削除される。次いで、プロセスの流れは、３０２６からつながるラベルで示すように、戻ってプローブからの次のデータを受け入れる。
【００７５】
データが問い合わせであると判定された場合には、属性を使用して適当な情報の種類が判定され得る。３０３０、３０３２、３０３４に示すように、問い合わせは様々な情報を要求し得る。次いで、その結果が直列化され、パブリッシュ・エンジンに戻される。また、パブリッシュ・サーバは、３０３６で示すように、そのクライアントによって出された、状況を求めるなどの一定の管理要求を受け取り、３０３８で示すように、そのサービスを停止する。これらのタスクは、管理者によって呼び出され得る。問い合わせに応答した情報が提供されると、３０４０に示すように接続が閉じられ、パブリッシュ・サーバは再度ソケット接続の受け入れが可能になる。
【００７６】
前述のアーキテクチャは、本発明の方法の諸ステップを実行する手段を備える一システムを表すことが理解されるであろう。視覚化エンジンは、ユーザに情報を提示する手段、ユーザを促す手段、およびユーザから要求を受け取る手段を含む。プローブ・エンジンは、分散アプリケーションに関する情報を得る手段、および分散アプリケーションのフィルタリングされた監視を実行する手段を含む。パブリッシュ・エンジン、アーカイブ、データベースおよびカーネルの機能は、視覚化エンジンおよびプローブ・エンジンと協働してこの方法の諸ステップを実行する一手段を提供することが理解されるであろう。
【００７７】
総括および結論
本発明の問題判別システムは、監視されるサーバ、および本発明の残りのソフトウェアのための別のサーバ上への一定のプローブ・ソフトウェアのインストールによってインストールされ得る。この構成は、本発明のシステムの比較的簡単なインストールを可能にする。
【００７８】
本発明は、方法およびそれらの方法を実施する装置の形で実施され得る。また、本発明は、フロッピー（Ｒ）・ディスケット、ＣＤ−ＲＯＭ、ハード・ドライブ、または他の任意の機械可読記憶媒体など、有形の媒体に実施されたプログラム・コードの形でも実施され得るものであり、そのプログラム・コードが、コンピュータなどの機械にロードされ、それによって実行されると、その機械は本発明を実施する装置になる。また、本発明は、例えば、記憶媒体に記憶され、機械にロードされまたはそれによって実行され、あるいはその両方が行われる、それとも電気配線またはケーブルを介して、光ファイバを介して、あるいは電磁放射を介してなど何らかの伝送媒体を介して伝送されるプログラム・コードの形でも実施され得るものであり、そのプログラム・コードがコンピュータなどの機械にロードされ、それによって実行されると、その機械は本発明を実施する装置になる。汎用プロセッサ上に実装されると、そのプログラム・コード・セグメントは、プロセッサと相まって、特定の論理回路と同様に動作する固有のデバイスを提供する。
【００７９】
以上、Ｊａｖａ（Ｒ）技術、具体的には、Ｊ２ＥＥ技術を使用したエンタープライズ・アプリケーションに関して、例示的実施形態を説明したが、本発明の方法は、他の技術でも実装され得る。例えば、本発明の方法は、他のプラットフォームに依存しない技術でも実装され得る。また、本発明の方法は、分散エンタープライズ・アプリケーションに適用可能な他の技術でも実装され得る。
【００８０】
以上、例示的実施形態について詳細に説明したが、本発明はそれだけに限られるものではない。むしろ、本発明は、その他の変形形態および実施形態を含むものとして広義に解釈すべきものである。
【図面の簡単な説明】
【００８１】
【図１】本発明による例示的なプロセスの流れを示すプロセス流れ図である。
【図２】本発明による例示的なプロセスの流れを示すプロセス流れ図である。
【図３】本発明による例示的なプロセスの流れを示すプロセス流れ図である。
【図４】本発明による例示的なプロセスの流れを示すプロセス流れ図である。
【図５】本発明による例示的なプロセスの流れを示すプロセス流れ図である。
【図６】本発明の一特徴を表す概略図である。
【図７】本発明による例示的なプロセスの流れを示すプロセス流れ図である。
【図８】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図９】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１０】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１１】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１２】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１３】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１４】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１５】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１６】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１７】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１８】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図１９】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図２０】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図２１】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図２２】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図２３】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図２４】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図２５】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図２６】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図２７】本発明によるユーザ・インターフェイスでの例示的画面を示す図である。
【図２８】本発明のシステムの例示的アーキテクチャを表す概略図である。
【図２９】本発明によるシステムの例示的アーキテクチャを示す概略図である。
【図３０】本発明のシステムのコンポーネントの例示的アーキテクチャを示す流れ図である。
【図３１】本発明によるシステムのコンポーネントの例示的アーキテクチャを示す概略図である。
【図３２】本発明によるシステムのコンポーネントの例示的アーキテクチャを示す概略図である。
【図３３】本発明のシステムのコンポーネントの例示的アーキテクチャを示す流れ図である。
【図１】
2006509266.tif 000006
【図２】
2006509266.tif 000007
【図３】
2006509266.tif 000008
【図４】
2006509266.tif 000009
【図５】
2006509266.tif 000010
【図６】
2006509266.tif 000011
【図７】
2006509266.tif 000012
【図８】
2006509266.tif 000013
【図９】
2006509266.tif 000014
【図１０】
2006509266.tif 000015
【図１１】
2006509266.tif 000016
【図１２】
2006509266.tif 000017
【図１３】
2006509266.tif 000018
【図１４】
2006509266.tif 000019
【図１５】
2006509266.tif 000020
【図１６】
2006509266.tif 000021
【図１７】
2006509266.tif 000022
【図１８】
2006509266.tif 000023
【図１９】
2006509266.tif 000024
【図２０】
2006509266.tif 000025
【図２１】
2006509266.tif 000026
【図２２】
2006509266.tif 000027
【図２３】
2006509266.tif 000028
【図２４】
2006509266.tif 000029
【図２５】
2006509266.tif 000030
【図２６】
2006509266.tif 000031
【図２７】
2006509266.tif 000032
【図２９】
2006509266.tif 000033
【図３０】
2006509266.tif 000034
【図３１】
2006509266.tif 000035
【図３２】
2006509266.tif 000036
【図３３】
2006509266.tif 000037
【国際調査報告】
2006509266.tif 000038