(57)【要約】【課題】分散環境中でアプリケーションの性能を監視するための方法およびシステムを提供すること。【解決手段】コンピュータ・システムおよびアプリケーションの性能管理のための方法は、監視するための情報を選択するよう求めるプロンプトをユーザに出すこと、サーバ上で走るアプリケーションの性能を監視すること、データを表示すること、およびユーザに性能調整を入力するよう求めるプロンプトを出すことを含む。ユーザにサーバもしくはサーバ・グループ、資源、および通知のための閾値もしくは条件を選択するよう求めるプロンプトを出し、それに応答して、システムは、パラメータの値もしくは品質をその閾値もしくは条件と比較し、そのパラメータが閾値もしくは条件に達した場合はユーザに通知する。方法は、ユーザに性能情報を提供するステップと、ユーザからより特有な性能情報を求める要求を受け取るステップと、より詳細な性能情報を提供するステップとを含む。本発明による方法は、ユーザから権限サーバとしてサーバの識別を、比較サーバとして他のサーバの識別を受け取るステップと、選択したサーバ間で１つまたは複数のＣＰＵデータ、サーバ・データ、およびＪａｖａ（Ｒ）データの形の実行時環境データを比較するステップと、差をユーザに表示するステップとを含む。本発明の方法は、ユーザから権限サーバとしてサーバの識別を、また比較サーバとして他のサーバの識別を受け取るステップと、マッチング・ファイル名および異なるファイル名のリストを提供するステップとを含む。方法はさらに、ユーザからファイルの選択を受け取るステップと、ファイルの比較を行うステップと、結果をユーザに提供するステップとを含む。本発明の方法は、各ユーザに役割を割り当てるステップと、アクセス制御リストによって、機能へのアクセスと各ユーザの役割の間をマップするステップとを含み、それにより、機能へのアクセスが、割り当てられたユーザの役割に応じて制限されるようになる。
2005531070.tif 000002
【特許請求の範囲】
【請求項１】
分散コンピューティング環境中で複数のサーバ上で走るアプリケーションの性能を監視する方法であって、
ユーザから監視のための選択された情報を受け取るステップと、前記選択された情報に従ってアプリケーションの性能を監視するステップと、前記選択された情報に従って監視された性能情報をユーザが利用できるようにするステップとを含む方法。
【請求項２】
監視すべき情報の範囲を識別するよう求めるプロンプトが前記ユーザに出され、アプリケーション・サーバの性能が前記選択された範囲に従って監視される、請求項１に記載の方法。
【請求項３】
前記範囲が、第１の監視レベルを含み、前記選択された情報が、要求レベル・データおよびサーバ・レベル・データを含む、請求項２に記載の方法。
【請求項４】
さらに、前記範囲が、第２の監視レベルを含み、前記選択された情報が、ＡＰＩレベル・データを含む、請求項３に記載の方法。
【請求項５】
さらに、前記範囲が、第３の監視レベルを含み、前記選択された情報が、メソッド・レベル・データを含む、請求項４に記載の方法。
【請求項６】
前記ユーザに情報監視のためのスケジュールを識別するよう求めるプロンプトが出され、アプリケーション・サーバの性能が前記識別されたスケジュールに従って監視される、請求項１に記載の方法。
【請求項７】
分散コンピューティング環境中で複数のサーバ上で走るアプリケーションの性能を監視する方法であって、
ユーザにサーバもしくはサーバ・グループ、資源、および通知のための閾値もしくは条件を選択するよう求めるプロンプトを出すステップと、パラメータの値もしくは品質を前記閾値もしくは条件と比較するステップと、前記パラメータが前記閾値もしくは条件に達した場合、前記パラメータに関係する情報を記録するステップとを含む方法。
【請求項８】
ユーザに通知するための基準と前記パラメータを比較し、前記基準が満たされた場合ユーザに通知するステップをさらに含む、請求項７に記載の方法。
【請求項９】
前記閾値もしくは条件が、資源の値である、請求項７に記載の方法。
【請求項１０】
前記資源が、メソッドのプロパティである、請求項９に記載の方法。
【請求項１１】
前記資源が、ＣＰＵ時間である、請求項１０に記載の方法。
【請求項１２】
前記閾値もしくは条件がヒット数である、請求項７に記載の方法。
【請求項１３】
前記資源が要求であり、前記条件が、前記要求に含まれるストリングである、請求項１２に記載の方法。
【請求項１４】
前記資源が、アプリケーション・サーバの性能に関するものであり、前記条件が、ＣＰＵ時間のパーセンテージである、請求項７に記載の方法。
【請求項１５】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視する方法であって、ユーザに性能情報を提供するステップと、前記ユーザからより特有の性能情報を求める要求を受け取るステップと、より詳細な性能情報を提供するステップとを含む方法。
【請求項１６】
要求分析、メソッド分析、ＳＱＬ分析、サーバ可用性分析、およびアプリケーション・サーバ分析の選択を前記ユーザに提供するステップと、前記ユーザから選択を受け取るステップとをさらに含む、請求項１５に記載の方法。
【請求項１７】
前記受け取った選択に従ってトレンド分析を提供するステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記トレンド分析の一部分に対して分解レポートを求める要求を受け取り、分解レポートを提供するステップをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記分解レポートの一部分に対する詳細レポートを求める要求を受け取り、詳細レポートを提供するステップをさらに含む、請求項１８に記載の方法。
【請求項２０】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視する方法であって、ユーザから権限サーバとしてサーバの識別を、比較サーバとして他のサーバの識別を受け取るステップと、実行時環境データを比較するステップと、比較を表示するステップとを含む方法。
【請求項２１】
前記実行時環境データが、前記選択されたサーバ間の、１つまたは複数のＣＰＵデータ、サーバ・データ、およびＪａｖａ（Ｒ）データの形式である、請求項２０に記載の方法。
【請求項２２】
前記ＣＰＵデータが、１つまたは複数のＣＰＵ速度、オンラインのＣＰＵ数、オフラインのＣＰＵ数、メモリ、オペレーティング・システムのバージョン、および物理ディスク・スペースを含む、請求項２１に記載の方法。
【請求項２３】
前記サーバ・データが、１つまたは複数のアプリケーション・サーバ、開始ディレクトリ、待ち受けポート、ＳＳＬ待ち受けポート、登録されたサーブレットの数、登録されたＥＪＢの数、ＪＤＢＣ接続プールの数、ＥＡＲの数を含む、請求項２１に記載の方法。
【請求項２４】
前記Ｊａｖａ（Ｒ）データが、１つまたは複数のＪＤＫバージョン、インストール・ディレクトリ、Ｊａｖａ（Ｒ）ポリシー、オペレーティング・システムの情報、クラス・パス、およびライブラリ・パスを含む、請求項２１に記載の方法。
【請求項２５】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視する方法であって、権限サーバとしてサーバの識別を、比較サーバとして他のサーバの識別をユーザから受け取るステップと、マッチング・ファイル名のリストおよび異なるファイル名のリストを提供するステップとを含む方法。
【請求項２６】
ファイル・サイズを比較するステップをさらに含む、請求項２５に記載の方法。
【請求項２７】
ファイルのタイム・スタンプを比較するステップをさらに含む、請求項２５に記載の方法。
【請求項２８】
前記ユーザからファイルの選択を受け取るステップと、前記ファイルの比較を行うステップと、結果を前記ユーザに提供するステップとをさらに含む、請求項２５に記載の方法。
【請求項２９】
さらに、前記ファイルの比較を行う前記ステップが、ＭＤ５チェックサム計算を介して前記ファイルの比較を行うステップを含む、請求項２８に記載の方法。
【請求項３０】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視する方法であって、役割を各ユーザに割り当てるステップと、機能へのアクセスと各ユーザの役割の間をアクセス制御リストによってマップするステップとを含み、それによって、機能へのアクセスが前記ユーザの前記割り当てられた役割に応じて制限される方法。
【請求項３１】
前記割り当てられた役割の１つが、前記機能のそれぞれに対する読取り／書込みのアクセス権を有する管理者である、請求項３０に記載の方法。
【請求項３２】
前記割り当てられた役割の１つが、前記機能のそれぞれへの表示アクセス権だけを有するユーザである、請求項３０に記載の方法。
【請求項３３】
要求ストリングを受け取るステップと、前記受け取ったストリングを識別可能な要求ストリングと縮小可能な要求ストリングにマップするステップとを含む、要求を処理するための方法。
【請求項３４】
前記受け取った要求ストリングが、ＪＳＰ、サーブレット、およびリモートＥＪＢコールのうちの１つの形式である、請求項３３に記載の方法。
【請求項３５】
ユーザに、受け取った要求ストリングを識別可能な要求ストリングと縮小可能な要求ストリングにマップするためのルールを作成するよう求めるプロンプトを出すステップと、プロンプトを出す前記ステップに応答してルールを受け取るステップと、前記受け取ったルールを適用するステップとをさらに含む、請求項３３に記載の方法。
【請求項３６】
分散環境中でアプリケーションの性能を監視する方法であって、少なくとも１つのアプリケーションが走るシステム中で監視および管理のための様々な構成要素を有する管理アプリケーションを提供するステップと、前記構成要素のコンフィギュレーションおよび前記構成要素間の関係に関する情報を監視し、実時間でユーザに提供するステップとを含む方法。
【請求項３７】
分散コンピューティング環境中で複数のサーバ上で走るアプリケーションの性能を監視するためのシステムであって、ユーザから受け取った選択された情報に従ってアプリケーションの性能を監視する手段と、前記選択された情報に従って監視された性能情報を前記ユーザが利用できるようにする手段とを含むシステム。
【請求項３８】
ユーザに監視すべき情報の範囲を識別するよう求めるプロンプトを出す手段と、前記選択された範囲に従ってアプリケーション・サーバの性能を監視する手段とをさらに含む、請求項３７に記載のシステム。
【請求項３９】
前記範囲が、第１の監視レベルを含み、前記選択された情報が、要求レベル・データおよびサーバ・レベル・データを含む、請求項３８に記載のシステム。
【請求項４０】
さらに、前記範囲が第２の監視レベルを含み、前記選択された情報がＡＰＩレベル・データを含む、請求項３９に記載のシステム。
【請求項４１】
さらに、前記範囲が、第３の監視レベルを含み、前記選択された情報が、メソッド・レベル・データを含む、請求項４０に記載のシステム。
【請求項４２】
ユーザから受け取った識別されたスケジュールに従ってアプリケーション・サーバの性能を監視する手段をさらに含む、請求項３７に記載のシステム。
【請求項４３】
分散コンピューティング環境中で複数のサーバ上で走るアプリケーションの性能を監視するためのシステムであって、ユーザにサーバもしくはサーバ・グループ、資源、および通知のための閾値もしくは条件を選択するよう求めるプロンプトを出す手段と、前記選択されたサーバもしくはサーバ・グループ上のパラメータの値もしくは品質を前記選択された閾値もしくは条件と比較する手段と、前記選択されたパラメータが前記閾値もしくは条件に達した場合、前記選択されたパラメータに関係する情報を記録する手段とを含むシステム。
【請求項４４】
ユーザに通知するための基準と前記パラメータを比較する手段と、前記基準が満たされた場合ユーザに通知する手段とをさらに含む、請求項４３に記載のシステム。
【請求項４５】
前記閾値または条件が資源の値である、請求項４３に記載のシステム。
【請求項４６】
前記資源が、メソッドのプロパティである、請求項４５に記載のシステム。
【請求項４７】
前記資源がＣＰＵ時間である、請求項４６に記載のシステム。
【請求項４８】
前記閾値または条件がヒット数である、請求項４３に記載のシステム。
【請求項４９】
前記資源が要求であり、前記条件が、前記要求に含まれるストリングである、請求項４８に記載のシステム。
【請求項５０】
前記資源が、アプリケーション・サーバの性能に関するものであり、前記条件が、ＣＰＵ時間のパーセンテージである、請求項４３に記載のシステム。
【請求項５１】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視するためのシステムであって、ユーザに性能情報を提供する手段と、詳細な性能情報を求めるユーザ要求に応答して、より詳細な性能情報を提供する手段とを含むシステム。
【請求項５２】
要求分析、メソッド分析、ＳＱＬ分析、サーバ可用性分析、およびアプリケーション・サーバ分析の選択を前記ユーザに提供する手段と、前記ユーザから選択を受け取る手段とをさらに含む、請求項５１に記載のシステム。
【請求項５３】
前記受け取った選択に従ってトレンド分析を提供する手段をさらに含む、請求項５２に記載のシステム。
【請求項５４】
前記トレンド分析の一部分に対する分解レポートを求める要求を受け取る手段と、分解レポートを提供する手段とをさらに含む、請求項５３に記載のシステム。
【請求項５５】
前記分解レポートの一部分に対する詳細レポートを求める要求を受け取る手段と、詳細レポートを提供する手段とをさらに含む、請求項５３に記載のシステム。
【請求項５６】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視するためのシステムであって、ユーザから権限サーバとしてサーバの識別を、比較サーバとして他のサーバの識別を受け取る手段と、実行時環境データを比較する手段と、比較を表示する手段とを含むシステム。
【請求項５７】
前記実行時環境データが、前記選択されたサーバ間の、１つまたは複数のＣＰＵデータ、サーバ・データ、およびＪａｖａ（Ｒ）データの形式である、請求項５６に記載のシステム。
【請求項５８】
前記ＣＰＵデータが、１つまたは複数のＣＰＵ速度、オンラインのＣＰＵ数、オフラインのＣＰＵ数、メモリ、オペレーティング・システムのバージョン、および物理ディスク・スペースを含む、請求項５７に記載のシステム。
【請求項５９】
前記サーバ・データが、１つまたは複数のアプリケーション・サーバ、開始ディレクトリ、待ち受けポート、ＳＳＬ待ち受けポート、登録されたサーブレットの数、登録されたＥＪＢの数、ＪＤＢＣ接続プールの数、およびＥＡＲの数を含む、請求項５７に記載のシステム。
【請求項６０】
前記Ｊａｖａ（Ｒ）データが、１つまたは複数のＪＤＫバージョン、インストール・ディレクトリ、Ｊａｖａ（Ｒ）ポリシー、オペレーティング・システムの情報、クラス・パス、およびライブラリ・パスを含む、請求項５７に記載のシステム。
【請求項６１】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視するためのシステムであって、ユーザから権限サーバとして第１のサーバの識別を、比較サーバとして第２のサーバの識別を受け取ったことに応答して、前記権限サーバおよび比較サーバ中でマッチング・ファイル名のリストおよび異なるファイル名リストを提供する手段を含むシステム。
【請求項６２】
ファイル・サイズを比較する手段をさらに含む、請求項６１に記載のシステム。
【請求項６３】
ファイルのタイム・スタンプを比較する手段をさらに含む、請求項６１に記載のシステム。
【請求項６４】
ユーザによって選択されたファイルの比較を行い、結果をユーザに提供する手段とをさらに含む、請求項６１に記載のシステム。
【請求項６５】
比較を行う前記手段が、ＭＤ５チェックサム計算を介して前記ファイルの比較を行う手段を含む、請求項６４に記載のシステム。
【請求項６６】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視するためのシステムであって、役割を各ユーザに割り当てる手段と、機能へのアクセスと各ユーザの役割の間をアクセス制御リストによってマップする手段とを含み、それによって、機能へのアクセスが前記ユーザの前記割り当てられた役割に応じて制限されるシステム。
【請求項６７】
前記割り当てられた役割の１つが、前記機能のそれぞれに対する読取り／書込みのアクセス権を有する管理者である、請求項６６に記載のシステム。
【請求項６８】
前記割り当てられた役割の１つが、前記機能のそれぞれへの表示アクセス権だけを有するユーザである、請求項６６に記載のシステム。
【請求項６９】
要求ストリングを受け取る手段と、前記受け取った要求ストリングを識別可能な要求ストリングと縮小可能な要求ストリングにマップする手段とを含む、要求を処理するためのシステム。
【請求項７０】
前記受け取った要求ストリングが、ＪＳＰ、サーブレット、およびリモートＥＪＢコールのうちの１つの形式である、請求項６９に記載のシステム。
【請求項７１】
ユーザに、受け取った要求ストリングを識別可能な要求ストリングと縮小可能な要求ストリングにマップするためのルールを作成するよう求めるプロンプトを出す手段と、受け取った要求ストリングを識別可能な要求ストリングと縮小可能な要求ストリングにマップするためのルールを作成するよう求めるプロンプトをユーザに出したことに応答して受け取ったルールを適用する手段とをさらに含む、請求項６９に記載のシステム。
【請求項７２】
分散環境中でアプリケーションの性能を監視するためのシステムであって、少なくとも１つのアプリケーションが走るシステム中で監視および管理のための様々な構成要素を有する管理アプリケーションを提供する手段と、前記構成要素のコンフィギュレーションおよび前記構成要素間の関係に関する情報を監視し、実時間でユーザに提供する手段とを含むシステム。
【請求項７３】
分散コンピューティング環境中で複数のサーバ上で走るアプリケーションの性能を監視するためのコンピュータ・プログラムであって、前記プログラムが、媒体上に記憶された命令からなり、前記命令がプロセッサ上で実行されたとき、前記プロセッサにより、ユーザから監視のための選択された情報を受け取るステップと、前記選択された情報に従ってアプリケーションの性能を監視するステップと、前記選択された情報に従って監視した情報をユーザが利用できるようにするステップとが実行されるコンピュータ・プログラム。
【請求項７４】
分散コンピューティング環境中で複数のサーバ上で走るアプリケーションの性能を監視するためのコンピュータ・プログラムであって、前記プログラムが、媒体上に記憶された命令からなり、前記命令がプロセッサ上で実行されたとき、前記プロセッサにより、ユーザにサーバもしくはサーバ・グループ、資源、および通知のための閾値もしくは条件を選択するよう求めるプロンプトを出すステップと、パラメータの値もしくは品質を閾値もしくは条件と比較するステップと、前記パラメータが前記閾値もしくは条件に達した場合、前記パラメータに関係する情報を記録するステップとが実行されるコンピュータ・プログラム。
【請求項７５】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視するためのコンピュータ・プログラムであって、前記プログラムが、媒体上に記憶された命令からなり、前記命令がプロセッサ上で実行されたとき、前記プロセッサにより、ユーザに性能情報を提供するステップと、前記ユーザからより特有の性能情報を求める要求を受け取るステップと、より詳細な性能情報を提供するステップとが実行されるコンピュータ・プログラム。
【請求項７６】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視するためのコンピュータ・プログラムであって、前記プログラムが、媒体上に記憶された命令からなり、前記命令がプロセッサ上で実行されたとき、前記プロセッサにより、ユーザから権限サーバとして第１サーバの識別を、比較サーバとして第２のサーバの識別を受け取るステップと、前記権限サーバと比較サーバからの実行時環境データを比較するステップと、比較を表示するステップとが実行されるコンピュータ・プログラム。
【請求項７７】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視するためのコンピュータ・プログラムであって、前記プログラムが、媒体上に記憶された命令からなり、前記命令がプロセッサ上で実行されたとき、前記プロセッサにより、権限サーバとして第１のサーバの識別を、比較サーバとして第２のサーバの識別をユーザから受け取るステップと、前記権限および比較サーバ上のマッチング・ファイル名のリストおよび異なるファイル名のリストを提供するステップとが実行されるコンピュータ・プログラム。
【請求項７８】
分散型コンピュータ・システム中で複数のサーバ上で走るアプリケーションの性能を監視するためのコンピュータ・プログラムであって、前記プログラムが、媒体上に記憶された命令からなり、前記命令がプロセッサ上で実行されたとき、前記プロセッサにより、役割を各ユーザに割り当てるステップと、機能へのアクセスと各ユーザの役割の間をアクセス制御リストによってマップするステップとが実行され、それによって、機能へのアクセスが前記ユーザの前記割り当てられた役割に応じて制限されるコンピュータ・プログラム。
【請求項７９】
要求を処理するためのコンピュータ・プログラムであって、前記プログラムが、媒体上に記憶された命令からなり、前記命令がプロセッサ上で実行されたとき、前記プロセッサにより、要求ストリングを受け取るステップと、前記受け取った要求ストリングを識別可能な要求ストリングと縮小可能な要求ストリングにマップするステップとが実行されるコンピュータ・プログラム。
【請求項８０】
分散環境中でアプリケーションの性能を監視するためのコンピュータ・プログラムであって、少なくとも１つのアプリケーションが走るシステム中で監視および管理のための様々な構成要素を有する管理アプリケーションを提供するステップと、前記構成要素のコンフィギュレーションおよび前記構成要素間の関係に関する情報を監視し、実時間でユーザに提供するステップとを含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ソフトウェアに関し、詳細には、分散コンピューティングに関する。
【背景技術】
【０００２】
ビジネスに不可欠のアプリケーションは、現在、Sun Microsystems（サン・マイクロシステムズ）のＪ２ＥＥ（Java(R) 2 Enterprise Edition）技術を用いて分散型サーバ上で運用（host）されている。このようなアプリケーションには、ブラウザ・クライアントを走らせているカスタマーに主要なビジネス・オペレーションを直接提供するサーバが含まれる。このようなシステムの、データベース、プラットフォーム、およびハードウェアを含めた様々な構成要素の性能を監視するためには、様々なツールおよび技法を利用することができる。しかし、カスタマーが影響を受ける性能は、このような基礎となる構成要素の性能ではなく、そのアプリケーションの性能である。本発明者は、アプリケーション性能に関する情報を提供するために従来技術における主要な障害を識別した。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来技術の製品ではアプリケーション性能を測定することができないという結果として、ハードウェアおよびソフトウェアを選択する決定が間違った情報に基づいて行われることもあり得る。例えば、あるアプリケーションの応答が遅い場合、管理者に利用可能な１つの選択肢は、そのアプリケーションが走る追加のサーバを購入またはリースすることである。このような購入は経費がかかり、また新しいハードウェアの設置には情報技術要員が必要であり、他の仕事から回す必要がある。応答が遅いアプリケーションへの他の対応は、様々なハードウェアのコンフィギュレーション変更を含む。しかし、アプリケーションの性能を改善するためには、様々なハードウェア／ソフトウェア・コンフィギュレーションの様々な数多くの組合せを試行することが必要になる可能性がある。
【課題を解決するための手段】
【０００４】
分散コンピューティング環境におけるサーバ上で走るアプリケーションの性能を監視するための本発明による方法は、監視するための情報を選択するよう求めるプロンプトをユーザに出すステップと、その選択された情報に従ってアプリケーションの性能を監視するステップと、監視された性能情報をユーザが利用できるようにするステップとを含む。
【０００５】
本発明による方法は、サーバもしくはサーバ・グループ、資源、および通知のための閾値もしくは条件を選択するよう求めるプロンプトをユーザに出すステップと、パラメータの値もしくは品質を閾値もしくは条件と比較するステップと、パラメータが閾値もしくは条件に達した場合はユーザに通知するステップとを含む。
【０００６】
本発明による方法は、分散コンピューティング環境におけるサーバ上で走るアプリケーションに関する性能情報をユーザに提供するステップと、ユーザからより特有の性能情報を求める要求を受け取るステップと、その要求に応答してより詳細な性能情報を提供するステップとを含む。
【０００７】
本発明による方法は、ユーザから権限（authoritative）サーバとしてサーバの識別を、比較（comparison）サーバとして他のサーバの識別を受け取るステップと、選択されたサーバ間で、１つまたは複数のＣＰＵデータ、サーバ・データ、およびＪａｖａ（Ｒ）データの形式の実行時環境データを比較するステップと、差をユーザに表示するステップとを含む。
【０００８】
本発明の方法は、ユーザから権限サーバとしてサーバの識別を、比較サーバとして他のサーバの識別を受け取るステップと、マッチング・ファイル名のリストおよび異なるファイル名のリストを提供するステップとを含む。本方法はさらに、ユーザからファイルの選択を受け取るステップと、ファイルの比較を行うステップと、結果をユーザに提供するステップとを含むことができる。
【０００９】
本発明の方法は、要求ストリングを受け取るステップと、受け取った要求ストリングを識別可能な要求ストリングと縮小可能な要求ストリングにマップするステップとを含む。受け取った要求ストリングは、ＪＳＰ、サーブレット、およびリモートＥＪＢコールの形式とすることができる。本発明の方法は、受け取った要求ストリングを識別可能な要求ストリングと縮小可能な要求ストリングにマッピングするためのルールを作成するよう求めるプロンプトをユーザに出すことができる。
【００１０】
本発明の方法は、少なくとも１つのアプリケーションが走るシステム中で、監視および管理のために様々な構成要素を有する管理アプリケーションを提供するステップと、その構成要素のコンフィギュレーションおよび構成要素間の関係に関する情報を監視し、実時間でユーザに提供するステップとを含む。
【００１１】
本発明の方法は、役割を各ユーザに割り当てるステップと、機能へのアクセスと各ユーザの役割の間をアクセス制御リストによってマップするステップとを含み、それによって、機能へのアクセスが各ユーザの割り当てられた役割に応じて制限されるようになる。
【００１２】
分散コンピューティング環境におけるサーバ上で走るアプリケーションの性能を監視するための本発明によるシステムは、監視のための情報を選択するよう求めるプロンプトをユーザに出すためのコンピュータ・ハードウェア／ソフトウェアと、ユーザから受け取った選択された情報に従ってアプリケーションの性能を監視するためのコンピュータ・ハードウェア／ソフトウェアと、監視された性能情報をユーザが利用できるようにするためのコンピュータ・ハードウェア／ソフトウェアとを含む。
【００１３】
本発明によるシステムは、サーバもしくはサーバ・グループ、資源、および通知のための閾値もしくは条件を選択するよう求めるプロンプトをユーザに出すためのコンピュータ・ハードウェア／ソフトウェアと、パラメータの値もしくは品質を閾値もしくは条件と比較するためのコンピュータ・ハードウェア／ソフトウェアと、パラメータが閾値もしくは条件に達した場合はユーザに通知を行うコンピュータ・ハードウェア／ソフトウェアとを含む。
【００１４】
本発明によるシステムは、分散コンピューティング環境におけるサーバ上で走るアプリケーションに関する性能情報をユーザに提供するためのコンピュータ・ハードウェア／ソフトウェアと、ユーザからより特有の性能情報を求める要求を受け取るためのコンピュータ・ハードウェア／ソフトウェアと、その要求に応答してより詳細な性能情報を提供するコンピュータ・ハードウェア／ソフトウェアとを含む。
【００１５】
本発明によるシステムは、ユーザから権限サーバとして第１のサーバの識別を、比較サーバとして第２のサーバの識別を受け取るためのコンピュータ・ハードウェア／ソフトウェアと、選択されたサーバ間で、１つまたは複数のＣＰＵデータ、サーバ・データ、およびＪａｖａ（Ｒ）データの形式の権限サーバおよび比較サーバからの実行時環境データを比較するためのコンピュータ・ハードウェア／ソフトウェアと、選択されたサーバ間のこのようなデータの差をユーザに表示するためのコンピュータ・ハードウェア／ソフトウェアとを含む。
【００１６】
本発明によるシステムは、ユーザから権限サーバとして第１のサーバの識別を、比較サーバとして第２のサーバの識別を受け取るためのコンピュータ・ハードウェア／ソフトウェアと、マッチング・ファイル名のリストおよび異なるファイル名のリストを提供するためのコンピュータ・ハードウェア／ソフトウェアとを含む。本システムはさらに、ユーザから権限サーバおよび比較サーバ上のファイルの選択を受け取るためのコンピュータ・ハードウェア／ソフトウェアと、ファイルの比較を実施し、結果をユーザに提供するためのコンピュータ・ハードウェア／ソフトウェアを含むことができる。
【００１７】
本発明のシステムは、要求ストリングを受け取るためのコンピュータ・ハードウェア／ソフトウェアと、受け取った要求ストリングを識別可能な要求ストリングと縮小可能な要求ストリングにマッピングするためのルールを作成するよう求めるプロンプトをユーザに出すためのコンピュータ・ハードウェア／ソフトウェアとを含む。受け取った要求ストリングは、ＪＳＰ、サーブレット、およびリモートＥＪＢコールの形式とすることができる。本発明のシステムは、受け取った要求を識別可能な要求ストリングおよび縮小可能な要求ストリングにマッピングするためのルールを作成するよう求めるプロンプトをユーザに出すためのコンピュータ・ハードウェア／ソフトウェアを含むことができる。
【００１８】
本発明のシステムは、少なくとも１つのアプリケーションが走るシステム中で、監視および管理のために様々な構成要素を有する管理アプリケーションを提供するためのコンピュータ・ハードウェア／ソフトウェアと、その構成要素のコンフィギュレーションおよび構成要素間の関係に関する情報を実時間で監視しユーザに提供するためのコンピュータ・ハードウェア／ソフトウェアとを含む。
【００１９】
本発明のシステムは、役割を各ユーザに割り当てるためのコンピュータ・ハードウェア／ソフトウェアと、機能へのアクセスと各ユーザの役割の間をアクセス制御リストによってマップするためのコンピュータ・ハードウェア／ソフトウェアとを含み、それにより、割り当てられた各ユーザの役割に応じて機能へのアクセスが制限されるようになる。
【００２０】
分散コンピューティング環境におけるサーバ上で走るアプリケーションの性能を監視するための本発明によるコンピュータ・プログラムは、媒体上に記憶された命令からなり、その命令がプロセッサ上で実行されたとき、プロセッサにより、ユーザに監視するための情報を選択するよう求めるプロンプトを出すステップと、選択された情報に従ってアプリケーションの性能を監視するステップと、監視された性能情報をユーザが利用できるようにするステップとが実行される。
【００２１】
本発明によるコンピュータ・プログラムは、媒体上に記憶された命令からなり、その命令がプロセッサ上で実行されたとき、プロセッサにより、ユーザにサーバもしくはサーバ・グループ、資源、および通知のための閾値もしくは条件を選択するよう求めるプロンプトを出すステップと、サーバもしくはサーバ・グループ上の資源のパラメータの検出された値もしくは品質を閾値もしくは条件と比較するステップと、パラメータが閾値もしくは条件に達した場合にはユーザへの通知を行うステップとが実行される。
【００２２】
本発明によるコンピュータ・プログラムは、媒体上に記憶された命令からなり、その命令がプロセッサ上で実行されたとき、プロセッサにより、分散コンピューティング環境におけるサーバ上で走るアプリケーションに関する性能情報をユーザに提供するステップと、ユーザからより特有の性能情報を求める要求を受け取るステップと、その要求に応答してより詳細な性能情報を提供するステップとが実行される。
【００２３】
本発明によるコンピュータ・プログラムは、媒体上に記憶された命令からなり、その命令がプロセッサ上で実行されたとき、プロセッサにより、ユーザから権限サーバとして第１のサーバの識別を、また比較サーバとして第２のサーバの識別を受け取るステップと、選択されたサーバ間で、１つまたは複数のＣＰＵデータ、サーバ・データ、およびＪａｖａ（Ｒ）データの形式の実行時環境データを比較するステップと、差をユーザに表示するステップとが実行される。
【００２４】
本発明によるコンピュータ・プログラムは、媒体上に記憶された命令からなり、その命令が、プロセッサ上で実行されたとき、プロセッサにより、ユーザから権限サーバとして第１のサーバの識別を、比較サーバとして第２のサーバの識別を受け取るステップと、第１と第２のサーバの間のマッチング・ファイル名および異なるファイル名のリストを提供するステップとが実行される。本プログラムはさらに命令を含むことができ、その命令がプロセッサ上で実行されたとき、プロセッサにより、ユーザから第１と第２のサーバ上で見出されたファイルの選択を受け取るステップと、ファイルの比較を行うステップと、結果をユーザに提供するステップとが実行される。
【００２５】
本発明のコンピュータ・プログラムは、媒体上に記憶された命令からなり、その命令がプロセッサ上で実行されたとき、プロセッサにより、要求ストリングを受け取るステップと、受け取った要求ストリングを識別可能な要求ストリングおよび縮小可能な要求ストリングにマップするステップとが実行される。受け取った要求ストリングは、ＪＳＰ、サーブレット、およびリモートＥＪＢコールの形式とすることができる。
【００２６】
本発明によるコンピュータ・プログラムは、媒体上に記憶された命令からなり、その命令がプロセッサ上で実行されたとき、プロセッサにより、少なくとも１つのアプリケーションが走っているシステム中で、監視および管理のために様々な構成要素を有する管理アプリケーションを提供するステップと、その構成要素のコンフィギュレーションおよび構成要素間の関係に関する情報を監視し実時間でユーザに提供するステップとが実行される。
【００２７】
本発明によるコンピュータ・プログラムは、媒体上に記憶された命令からなり、その命令がプロセッサ上で実行されたとき、プロセッサにより、役割を各ユーザに割り当てるステップと、機能へのアクセスと各ユーザの役割の間をアクセス制御リストによってマップするステップとが実行され、それによって、機能へのアクセスが、割り当てられた各ユーザの役割に応じて制限されるようになる。
【発明を実施するための最良の形態】
【００２８】
本発明は、コンピュータ・システムのいくつかの側面の性能に関する情報を監視し提供するためのプロセスと、これらの目的を達成するためのコンピュータ・プログラムおよびシステムとを含む。これらの目的を達成するための、また本発明のシステムで使用するためのコンピュータ・プログラムに関して本方法およびシステムを説明するものとする。本発明のコンピュータ・プログラムは、アプリケーション・サーバ上で走るアプリケーションに対して特に有益である。本発明のコンピュータ・プログラムは、ユーザに様々な情報および選択肢を提供するユーザ・インターフェースを含む。アプリケーション・サーバにインストールされたプローブは、アプリケーションおよびサーバの動作に関する情報を取得し、分析およびユーザへの報告のために他のプログラム・エレメントにその情報を提供する。
【００２９】
監視レベルおよびスケジュール
本発明による方法、システム、およびコンピュータ・プログラムでは、サーバ上で走るアプリケーションの動作に関する詳細の選択されたレベルを提供する機能を提供する。図１の１０５で示すように、監視のために必要な情報を識別するよう求めるプロンプトがユーザに出される。ユーザに、監視の詳細レベルに関する少なくとも２つの選択肢を提供することが好ましい。監視の詳細レベルという用語は、アプリケーションを走らせることについて得られた情報の量および性質のことを指す。監視の詳細レベルは、得られたデータ量または情報量を指すこともできる。詳細レベルはまた、得られた情報の性質を指すこともできる。例えば、サーバの可用性情報などいくつかのタイプの情報は、比較的上位の詳細レベルである。メソッド・トレース（method trace）情報などの他のタイプの情報は、比較的下位の詳細レベルである。
【００３０】
ユーザに監視レベルを選択するよう求めるプロンプトを出すことができる。ユーザは、監視するための特定の機能を選択することができる。あるいは、事前選択された監視レベルを提供してもよい。各事前選択された監視レベルは、監視されレポートされる特定の情報と関連付けられている。図１のブロック１１０で示すように、ユーザから監視レベルまたは特定の特徴の選択を受け取ると、本発明のプログラムは、図示のようにアプリケーションの性能を監視し、監視された性能情報をユーザが利用できるようにする。図１に示す一実施例では、３つの監視レベルを提供することができる。判断ブロック１１５で示すように、ユーザからの要求を受け取ると、システムは監視レベルを決定する。最も上位の、したがって最も少ない情報が提供されるレベル１で、情報は本質的に要求レベル・データおよびサーバ・レベル・データである。例えば、ブロック１２０で示すように、関連する情報は、可用性管理、システム資源／分散プラットフォーム、および基本的な要求データとすることができる。可用性管理は、特定のサーバ上で特定のアプリケーションが走っているかどうかに関する情報を含む。システム資源とは、利用可能なメモリ量や利用可能な接続数などの情報を示す。基本的な要求データとは、行われた要求数、完了した要求数などを示す。
【００３１】
同じ実施例で、ユーザに監視レベル２の選択を提供することができる。ブロック１２５で示すように、監視レベル２の選択は、通常、追加の情報を含め監視レベル１によって提供される情報のすべてを含む。追加の情報は、ＳＱＬデータや、ＪＭＳデータ、ＥＪＢコール・データなどのＡＰＩレベル・データとすることができる。このようなデータには、特定のＣＰＵのスループットに関するデータを含めることができる。要求のソフト・キャンセルをユーザが行える機能も提供することができる。メソッド・データまたはＳＱＬデータは提供されない。追加のデータを提供するために、対応するＪＶＭ上でＪＶＭＰＩがイネーブルにされる。このレベルは、問題判別を対象とし、多量のトランザクションを有し時々不安定になるサーバのために使用される。トランザクションの複雑さは変化することがある。ＪＶＭＰＩは対応するＪＶＭ上でイネーブルであるので、下記のレベル３などのより詳細な監視レベルに動的に変更する選択肢をユーザに提供することができる。
【００３２】
同じ実施例で、ユーザに監視レベル３の選択を提供することができる。レベル３の監視は、レベル２に関して提供される情報にメソッド・レベル・データを加えたものを提供する。ブロック１３０で示すように、例えばメソッドおよびＳＱＬレベル・データを含めた、進んだ問題判別およびレポートを含むことができる。ＪＶＭＰＩは、対応するＪＶＭ上でイネーブルである。ＪＶＭＰＩ機能コールが可能であり、メソッド・エントリ／エグジット・イベントが選択される。通常、このレベルは、診断、詳細な作業負荷の特徴付け、プロファイリング用に選択されたサーバのために用いられる。上記のように、このレベルはＪＶＭＰＩをイネーブルにする必要があるので、このレベルと、上記で例示のレベル２などＪＶＭＰＩがイネーブルである他レベルとの間を動的に変更することが可能である。上記のすべての場合、ブロック１３５で示すように、監視された情報がユーザに提示される。
【００３３】
好ましい実施形態では、ブロック１４０で示すように、ユーザに監視のためのスケジュールを決定するよう求めるプロンプトが出される。ブロック１４５で示すように、ユーザからスケジュールを受け取り、ブロック１５０で示すように、スケジュールに従って監視が進められる。スケジュールは、少なくとも開始時間、好ましくはカレンダの日付および時刻、監視レベル、およびサーバまたはサーバ・グループを定義する。本発明のプログラムによると、ユーザが、監視レベルではなく監視のための個々のデータ項目を選択することもできる。監視レベルを変更する時間によってスケジュールを定義することができ、それはまたカレンダの日付と時刻で表すことができる。各月、各週、または日ごとになど適切な基準で循環させるスケジュールを選択することもできる。好ましい実施形態では、スケジュールは、それぞれが開始の日付／時刻および監視レベルの組合せであるスケジュール・レコードのグループから構成される。本発明のプログラムによると、最初のスケジュール・レコードで監視を開始し、現在の時刻が他のスケジュール・レコードの開始時刻／日付であるとき、監視を変更することができる。このプロセスは、連続するスケジュール・レコードを通して継続される。スケジュール中に監視が何も指定されていない場合に使用するデフォルト監視レベルを提供することができる。プログラムはユーザが変更可能なデフォルトを備えることができる。１つまたは複数のサーバもしくはサーバ・グループに完了したスケジュールを適用するよう求めるプロンプトがユーザに出される。ユーザに既存のスケジュールを複製する選択肢を提供し、次いでそのスケジュールの適用先であるサーバおよびサーバ・グループを求めるプロンプトを出すことができる。スケジュールのフィールドを修正する選択肢をユーザに提供することができる。サーバまたはサーバ・グループを除去することによりスケジュールが修正された場合、ユーザにそのサーバまたはサーバ・グループに他のスケジュールを適用するよう求めるプロンプトが出されることが好ましい。プログラムは、ユーザが所与のサーバからすべてのスケジュールを除去しないように構成することができる。あるいは、所与のサーバまたはサーバ・グループからすべてのスケジュールを除去すると、影響を受けるサーバまたはサーバ・グループの監視は、デフォルトの監視レベルに戻るようにすることもできる。ユーザにスケジュールの削除の選択肢を提供することができ、その削除されたスケジュールに対応した時間およびサーバもしくはサーバ・グループのために、デフォルト・レベルで監視を行うこともできる。
【００３４】
監視すべき項目が事前選択され、プログラムされた監視レベルが使用された場合は、本発明のシステムは、適切な許可を有するユーザが監視すべき項目を手動で変更できるようにすることができる。このような手動の変更は、一時的にだけ利用可能であることが好ましく、特定のサーバまたはサーバ・グループに限定することができる。
【００３５】
サーバが再起動する場合、システムは階層的検索パスをたどって適正な監視レベルを決定する。スケジューラとコンタクトすることが可能な場合、まず一時的な指定変更（override）を、次にスケジュールされた監視レベルを要求し、次いでシステム全体の監視レベルを使用する。スケジューラにコンタクトできない際は、デフォルトの監視レベルが使用される。
【００３６】
監視トラップおよびアラート
本発明による方法、システム、およびコンピュータ・プログラムでは、サーバの監視が行われている間、ユーザにアラートが提供される。アラートは、選択されたサーバまたはサーバ・グループ上の監視されている資源のパラメータが、選択されたマッチング条件またはその条件に対する閾値に達したときに提供される。ユーザに通知またはアラートを提供できるソフトウェアを本明細書ではソフトウェア・トラップと呼ぶ。ユーザは、本発明によるプログラム中のメニューからソフトウェア・トラップを作成または修正する選択肢を選択することができる。新しいソフトウェア・トラップを作成するためにいくつかの選択を行うようユーザに求めるプロンプトが出される。その選択は、そのトラップが適用されるサーバまたはサーバ・グループ、測定すべき資源、およびその条件を含む。図２の実施例で示すように、最初のステップで、ブロック２０５で示すようにサーバまたはサーバ・グループを選択するよう求めるプロンプトをユーザに出すことができる。ブロック２１０で示すように、その選択が受け取られる。
【００３７】
必要な情報は、トラップのタイプにより変化し、ブロック２１５で示すように、ユーザにトラップのタイプを求めるプロンプトが出される。
【００３８】
判断ブロック２２０およびブロック２２５で示すように、第１種のトラップでは、資源と、閾値の形式の条件とが選択されなければならない。資源には、実現値（occurrence）、ＣＰＵ時間、常駐時間、待ち時間、およびＳＱＬ常駐時間を含めることができる。閾値は、資源の特定のタイプに依存するはずである。資源を選択すると、２３０のように、システムは閾値を選択するための単位をユーザに提供することができる。トラップは、任意の要求、特有の要求名、または特有のメソッド名に適用することができる。次いでブロック２３５で示すように、トラップは次に進んで選択された資源を監視する。ブロック２３６およびブロック２３７で示すように、閾値が満たされた場合、システムはアラート条件がトリガされているかどうか評価する。トリガされていない場合、ブロック２３８で示すように、そのイベントは記録される。アラート条件が満たされている場合は、２３９のように、アラートがユーザに伝えられ記録される。
【００３９】
ブロック２４０と２４２で示すように、ソフトウェア・トラップの第２種では、いくつかのヒット（hit）を有する資源および条件が選択されなければならない。２４２のように、この種のソフトウェア・トラップを設定するために、資源および条件を指定するよう求めるプロンプトがユーザに出される。その資源は、例えばＨＴＴＰ要求パラメータ、またはＳＱＬステートメントであり得る。ＨＴＴＰまたはＳＱＬ要求に関しては、条件はＨＴＴＰ／ＳＱＬ要求中に含まれる指定されたストリングである。その条件はまた、ストリングに適用される論理式の形式であることができる。２４４で、ユーザが要求された資源および条件を提供すると、図３の２４６のように、ソフトウェア・トラップが監視を実施する。要求またはステートメントが条件を満たしていると識別されたとき、図３のブロック２４８、２５０，２５２で示すようにヒット・カウンタが増分される。十分なヒットがカウントされた場合、アラート条件に到達し、２５４のように、アラートが伝えられ記録される。
【００４０】
第３種のトラップは、アプリケーション・サーバの資源消費の条件に適用される。ユーザは、アプリケーション・サーバまたはグループを選択する必要がある。図３のブロック２６０、２６２、２６４で示すように、資源および閾値のために、資源および閾値を指定するよう求めるプロンプトがユーザに出される。資源には、アプリケーション・サーバの可用性、データベース接続プール、およびＪＶＭランタイム・メモリに関する情報を含めることができる。サーバの可用性は、簡単に肯定または否定で測定される。データベース接続プールに関しては、以下を含むいくつかの異なる閾値を設定することができる。すなわち、接続の数に割り当てられた接続数、接続を待っているスレッドの平均数、クライアントが接続許可を待つ平均時間、タイムアウトの接続プール数、および使用中のプールの平均パーセントを含む。ＪＶＭランタイム・メモリについては、資源は、ＪＶＭの実行時における空きメモリ量、およびＪＶＭの実行時に使用されているメモリ量とすることができる。ユーザに、その数を提供しその数が最大であるか最小であるかを示すよう求めるプロンプトが出される。ユーザに適切な単位、例えば空きメモリおよび使用されているメモリに対してメガバイトを提供することができる。ユーザにはまた、アラート・メッセージの作成前に条件が満たされる回数を選択するよう求めるプロンプトが出される。２６６で示すように、資源は監視され、アラート条件が満たされた場合、２６８、２７０で示すようにアラートが送られ記録される。
【００４１】
トラップによって識別されたデータが、どんな環境の下でオペレータに通知されるかを決定するアラート条件を次に説明することとする。オペレーションにおいて、ソフトウェア・トラップ中で設定された閾値条件が満たされたとき、ユーザが設定した条件に応じて、アラートが送られ、またはカウンタが増分される。カウンタが増分された場合、その新しいカウントが閾値に対してチェックされる。アラート・アクションは、いくつかの形を取ることができる。アラートは、トラップ条件、問題の監視される資源、問題の値、および日付／時刻スタンプを含めて、監査のために記録することが好ましい。問題の要求、メソッド、またはスレッドのローカル・ダンプを表示装置にアクセスできるように作成することができる。スタック・トレースおよびメソッド・トレースも提供することができる。１人または複数の個人にＥメール、またはＳＮＭＰアラートなどの他のメッセージなどによって通知することができる。例えば閾値が３回出現して初めてＥメールを送るようにするなど、アラートのエスカレーションを含むことができる。複数の条件に対して行われる複数のアクションの他の実施例は容易に想定できよう。ヒットの閾値数が検出されたとき、カウンタはゼロにリセットされる。論理条件が指定されている場合、境界が満たされるごとに条件が再評価される。メソッドが指定されている場合は、メソッドが検出された後に再評価される。
【００４２】
トラップ／アラート・ログは、日付／時刻スタンプによるエントリの識別、およびアラートから得られる他の情報を維持する。ユーザは、ログおよびカウンタを見るために走っている間のトラップを監視することができる。トラップをアクティブ状態と非アクティブ状態の間で切り替える機能をユーザに提供することができる。
【００４３】
アプリケーションの性能分析
本発明の方法、システム、およびコンピュータ・プログラムでは、プログラムは、性能分析を取得する機能を提供する。情報は比較的上位レベルで提供され、ユーザはより詳細な情報を要求し受け取る選択肢を有する。情報は、レポートと呼ばれるフォーマットで提供される。図４の３０５で示すように、一般に、レポートのタイプを選択するよう求めるプロンプトがユーザに出され、３１０で示すように、上位レベルのレポート、またはトレンド・レポートがユーザに提示される。ユーザは、様々なより詳細のレポートをトレンド・レポートから選択する選択肢が提供される。ユーザは、続いてさらに詳細なレポートを得るための選択肢が与えられる。ユーザは、レポート中の性能データと前の時間期間におけるベースライン・データとを比較する選択肢を有する。レポートには、サーバ可用性、サーバ資源、ビジネス性能、アプリケーション性能、およびアプリケーションの観点からのデータベース性能などの情報が含まれる。
【００４４】
データは、特有のアプリケーション・サーバ（例えば、WebSphereにおけるＰＭＩ）によって提供されるＡＰＩ（applicationprogrammer interface）およびサービスと、データ・コレクタが動作しているユーザ・アプリケーションとから得られる。得られたデータは、データの作業セットとなる。レポートの選択されたタイプであるトレンド・レポートを得ることができる。レポートは、サーバ・グループのレベルで記憶される。まず、ＡＰＩ／サーバおよびユーザ・アプリケーションなどからデータが得られる。ユーザは、取り込むべきアプリケーション・データ量を決定することができる。この量は、記憶されるべきトータル要求サンプルのうちのパーセンテージとして表現することができる。ユーザに、要求サンプルを取得するためのアプリケーション・サーバを選択するよう求めるプロンプトが出される。ユーザがシステムにデータのスナップ・ショットを取るよう望んでいる、分などの時間期間で表した頻度を選択するよう求めるプロンプトをユーザに出すことができる。
【００４５】
冗長なデータを用いることは制限すべきである。サンプリング比は、どれだけのデータを性能履歴データベース中に記録すべきか決定するように定義される。ユーザにサンプリング比を設定するよう求めるプロンプトが出され、それにより、データベースに記憶するのに必要なデータ量を制限するようにする。表１は、メトリック、各メトリックの説明、およびそのデータを得る資源を示す。
【００４６】
【表１】
2005531070.tif 000003
【００４７】
トレンドを示すレポート・タイプ、および単一のデータ・ポイント上における分解された／分解レポート・タイプを含めた様々なタイプのレポートを提供することができる。
【００４８】
図４に示す一実施形態では、３０５で示すように、作業セットのためのある種のデータを提供するよう求めるプロンプトがユーザに出され、次いで、３１０で示すようにこれらのデータが提供される。これらのデータには、アプリケーション・サーバまたはグループ、分析タイプ、データ期間、データ間隔、集約期間、すなわちデータがグループ化される方式、データ・ポイントを選択するためのフィルタリング基準、また要求分析やメソッド分析、ＳＱＬ分析、サーバ可用性分析、アプリケーション・サーバ分析などの分析のタイプ、およびベースラインが含まれる。次いで、３１５で示すように、ユーザは分析のタイプを選択することができる。
【００４９】
３２０で示すように、要求分析が選択された場合、ユーザにメトリックを選択するよう求めるプロンプトが出される。３２１で示すように、メトリックの例は、スループット、応答時間、およびＣＰＵ時間である。３２２で示すように、その選択に応答して、時間間隔およびアプリケーション・サーバを示すラベルを有するトレンド分析が提供される。レポートがサーバ・グループに適用される場合は、ユーザは、要求トレンド・レポートを要求タイプもしくは要求名、あるいはサーバ名によってブレークダウンすることができる。３２３で示すように、前述のブレークダウンは、分解と呼ぶことができる。ユーザは、その分解の任意の１部分をさらにブレークダウンすることができる。あるいは、トレンド・レポートから、ユーザは任意の１つのデータ・ポイントに対する詳細を得ることもできる。３２４で示すように、このさらなるブレークダウンは、詳細レポートとよぶことができる。その詳細レポートはさらに、３２５で示すように、詳細レポートの１つのレコードに関する追跡レポートにブレークダウンすることができる。その追跡レポートは、選択されたメトリックと同様に、メソッドのエントリ／エグジット情報を提供する。したがって、ユーザは、さらなる詳細レベルにドリルダウンできることが理解できよう。
【００５０】
３３０のように、メソッド分析が選択された場合、３３１で示すように、スループット、応答時間およびＣＰＵ時間のうちの１つであることができるメトリックを選択するよう求めるプロンプトがユーザに出される。ユーザに、特有な要求名、要求タイプ、またはメソッド名などの項目にレポートを限定する選択肢が提供される。ユーザからの選択を受け取った後、本発明のシステムは、３３２で示すようにトレンド分析を有するレポートを生成する。トレンド・レポートから、ユーザは要求名または要求タイプによってトレンド分析のブレークダウンを選択することができる。３３３で示すように、結果のレポートは、メソッド分析についての分解レポートと呼ばれる。サーバが適用可能であり、レポートがサーバ・グループをカバーする場合は、ユーザはサーバによってトレンド分析レポートを分解することができる。ユーザは、メソッド分析のために分解レポートの任意の部分を選択して詳細へのブレークダウンを行い、その個々のレコードを見ることができ、あるいはユーザは、トレンド・レポート中の単一ポイントをレコードへとブレークダウンすることを選択できる。３３４で示すように、結果のレポートは詳細レポートと呼ばれる。
【００５１】
３４０のように、ユーザがＳＱＬ分析レポートを選択した場合、３４１のように、スループットおよび応答時間のメトリックのうちの１つを選択するよう求めるプロンプトがユーザに出される。ユーザは、特有の要求名もしくは要求タイプ、メソッド名、テーブル名、またはＳＱＬコールを選択することができる。それに応答して、３４２のように、システムはトレンド分析を提供する。３４３のように、トレンド分析は、要求名、要求タイプ、メソッド名、またはテーブル名あるいはそれらの組合せによってブレークダウンして分解レポートを提供することができる。レポートは、全体のパーセンテージとしてのサンプル数を含むことができる。ユーザは、分解レポートの任意の一部分をブレークダウンして個々のレコードによる詳細を得ることができ、あるいは、単一のデータ・ポイントによってトレンド・レポートをブレークダウンして個々のレコードを得ることができる。３４４のように、個々のレコードを有するレポートは詳細レポートとして知られている。
【００５２】
３５０のように、ユーザがサーバ可用性分析レポートを選択した場合、３５１のように、トレンド分析が提供される。メトリックは、どれも選択されない。可用性のためのトレンド・レポートでは、システムは一連の時間間隔にわたるそのグループの稼働時間のパーセントをプロットすることができる。３５２のように、ユーザは、あるグループのトレンド・レポートをアプリケーション・サーバによってブレークダウンすることができる。
【００５３】
３６０のように、アプリケーション・サーバ分析レポートを選択することができる。以下のメトリックのうちの１つを提供するように求めるプロンプトがユーザに出される。すなわち、３６１のように、プール・サイズ、現在のウェイタ、平均待ち時間、障害、プールの使用パーセンテージ、物理接続、ＪＶＭ空きメモリ、および使用中のＪＶＭメモリである。３６２のように、トレンド分析レポートが提供される。
【００５４】
レポートは、適切な任意の方法で提供することができる。トレンド・レポートは、データ・ポイントごとに、すべてのデータのタブラチュア式（tablature）に表した折れ線グラフとすることができる。過去の選択された時間の同じデータを示した、比較のベースライン表示を提供することができる。例えば、ベースライン・データは、以前の日における同時刻の同データを示すことができる。分解レポートについては、タイプごとに、すべてのデータをタブラチュア式に表した棒グラフまたは円グラフが提供される。ユーザが、分解レポートの一部分を選択して詳細レポートにドリルダウンできることが好ましい。比較のためにベースライン・レポートを詳細レポート中で提供することができる。
【００５５】
ソフトウェアの一貫性検査
本発明の方法、システム、およびプログラムでは、様々なサーバ上のアプリケーションの動作比較を行うことができる。このような比較は、様々なサーバ中で起こり得るコンフィギュレーション問題を識別するのに価値がある。
【００５６】
このような比較の一実施例は、ｎウェイｄｉｆｆと呼ばれる。各サーバについて、本発明のプログラムは、どのようにシステムがセットアップされインストールされているかに関する実行時環境データを取得する。これらの環境は、システム、Ｊａｖａ（Ｒ）、およびアプリケーション・サーバでよい。システムに関しては、その環境情報には、ＣＰＵ速度、オンラインのＣＰＵ数、オフラインのＣＰＵ数、メモリ、オペレーティング・システムのバージョン、および物理ディスク・スペースを含めることができる。他の情報を含むこともできる。Ｊａｖａ（Ｒ）に関しては、情報には、ＪＤＫバージョン、インストール・ディレクトリ、Ｊａｖａ（Ｒ）ポリシー、オペレーティング・システム情報、クラス・パス、およびライブラリ・パスを含めることができる。アプリケーション・サーバに関しては、情報には、アプリケーション・サーバ、スタートアップ・ディレクトリ、待ち受けポート、ＳＳＬ待ち受けポート、登録されたサーブレット数、登録されたＥＪＢ数、登録されたＪＤＢＣ接続プール数、およびＥＡＲ数を含めることができる。図５の４０５で示すように、プログラムは、権限サーバとしてのサーバを選択するよう求めるプロンプトをユーザに出し、４１０で示すように、選択を受け取り、次いで、４１５で示すように、比較のためのサーバを選択するよう求めるプロンプトをユーザに出すことができる。４２０で示すように、ユーザが比較のためのサーバを選択した後、４２５で示すように、次いで、システムは比較結果を取得し表示する。比較結果は、上記の実行時環境情報を含むことができる。比較結果は、異なるデータだけを含むこともできるし、グラフで表すこともできる。４３０、４３５で示すように、システムは、ユーザが、表示された結果からアプリケーション・サーバごとに関係する情報のすべてを表示する詳細画面にドリルダウンできることが好ましい。
【００５７】
他のタイプの比較では、マッチング・ファイル名を有するバイナリ・ファイルの比較を実施することができる。図６の５０５で示すように、トップ・レベルの分析で、権限サーバとしてグループから１つのサーバを選択するよう求めるプロンプトがユーザに出される。５１０で示すように、ユーザは選択を行い、次いで、５１５で示すように、比較サーバとして１つまたは複数のサーバを選択するよう求めるプロンプトがユーザに出される。５２０で、比較サーバの選択を受け取ると、５２５で、ファイルのソースを選択するよう求めるプロンプトがユーザに出される。ユーザは、ＥＡＲフォルダ・リスト、または権限サーバのマスタ・ファイル・リストを形成すると考えられるＣＬＡＳＳＰＡＴＨから選択する。５３０のように、ユーザは選択を行う。５３５のように、マスタ・ファイル・リストを構成するためにファイル・タイプの１つを選択するよう求めるプロンプトがユーザに出される。５４０で、ファイル・タイプが受け取られる。それに応じて、システムは、選択されたソースおよび権限サーバのファイル・タイプからマスタ・ファイル・リストの作成を開始する。次いで、５４５で示されるように、比較サーバ中のマスタ・ファイル・リスト中でリストされたファイルを検索する。５５０で、比較ごとに結果が表示される。結果は、見つけられたファイルと見つけられないファイルに分けることができる。見つけられたカテゴリに関しては、そのリストは、マッチしたファイル、すなわちマッチしたファイル名、サイズ、ファイル・システムのタイム・スタンプを有するすべてのファイルと、類似フォルダ、すなわち、タイム・スタンプではなくマッチしたファイル名およびサイズを有するファイルと、非類似フォルダ、すなわちマッチしたファイル名だけを有するファイルとを含む。見つからないファイルについては、ファイルは、権限サーバにあるが比較サーバにないファイルと、比較サーバにあるが権限サーバにはないすべてのファイルとに分けられる。これらのファイル・リストは表示される。この表示によって、ユーザは権限サーバと比較サーバ中のファイルを容易に比較することができる。
【００５８】
この表示から、システムは、ユーザがファイルについての追加の情報を得るためにドリルダウンできるようにする。５５５で示すように、詳細な比較のために、ユーザは１つの比較サーバを選択し、権限サーバから１つのファイルを選択することができる。システムは、ファイルについての比較を実施し、「同じ」または「異なる」という結果を得る。この比較には、ＭＤ５アルゴリズムなどのチェックサム計算を使用することができる。一実施形態では、ＪＡＲファイルの場合、比較が実行できる前に、さらなるレベルを必要とする。まず、アーカイブ・ファイルが抽出され、次いで、名前のマッチングが実施される。次いで比較を実行することができる。５６０で示すように、この比較の結果、サーバ間でファイルの名前とファイルのコンテンツが共に比較される。バージョンの違いおよびコード破壊などの問題は、容易に識別することができる。
【００５９】
要求の再書込み
本発明の方法、システム、およびプログラムでは、いくつかの要求を再書込み、またはマップするための方法、システム、およびプログラムを提供することができる。具体的には、本発明のシステムで、３つの異なるタイプの要求が受け取られる。それは、ＪＳＰ、サーブレット、およびリモートＥＪＢコールである。これらの要求は通常、ストリング形式であり、ウェブ・サーバまたは他のアプリケーション・サーバなどの他のアプリケーションから受け取る。本発明のシステムでは、このような要求は２つの異なる目的のために実施される。その要求は、識別の目的で使用することができる。要求はまた、ビジネス要求またはアプリケーションを表すために使用することができる。一般に、要求ストリングの暗黙の２重の意味は問題にならない。しかし、この２重の意味が競合する状態がある。例えば、ポータル・サイトで、ＵＲＬ形式の要求ストリングは、通常全く同じに見え、したがって、エンド・ユーザにとって記憶するのに便利である。しかし、要求またはセッション・オブジェクトなどの基礎となるデータ・オブジェクトを使用するポータル・エンジンにより、それらは異なるタイプの要求であると見なされる。問題判別中に、オペレータまたは管理者は、同じストリングで表された異なる機能を求める要求を見て混乱することになり、ストリング間では解決しない。一方、単一のアプリケーションは、複数の異なる要求ストリングを含むことができ、それがうまく実行された後は、結果の性能データが１つのアプリケーション名またはラベルに対して分析されることになる。ここでの問題はやはり、１群の要求ストリングが互いに関連していることを認識するためのシステムに関するグループ・メカニズムが欠けていることである。
【００６０】
前述の問題を克服するために、Ｊａｖａ（Ｒ）ベースの論理形式とすることができるモジュールを、要求をマップするために提供することができる。図７に示すように、要求６００などの各要求は、２つの別々のストリング、すなわち、識別可能な要求ストリング６０５、および縮小可能な要求ストリング６１０にマップされる。これらの別々のストリングは、識別のために使用される。これらのストリングは、識別ＵＲＬまたはラベル・ストリングとすることができる。マッピングまたは再書込みオペレーションは、問題判別および性能管理機能が共にそのオペレーションを利用するときに行われることが好ましい。例えば、性能管理機能は、縮小可能な要求ストリング上の要求によって分解を実施するはずである。問題判別で用いられるアクティブ要求検索は識別可能な要求ストリング上で行われる。
【００６１】
セキュリティ
セキュリティは、各ユーザをユーザの役割に割り当てるようにすることによって維持されることが好ましい。各ユーザの役割は、本発明のソフトウェアの特定の機能にマップされる。アクセス制御リストは、製品機能とそれに関連付けられたユーザの役割の間のマッピングを提供することができる。管理者は、ユーザの役割を追加し、その役割を機能にマップすることができる。図８の概略図を参照すると、管理者７００は、すべての機能およびコンフィギュレーションに対して読取りおよび書込みのアクセス権を有し、またログ・ファイルへのアクセス権を有している。例えば、ソフトウェア・トラップの作成、修正、活動化、非活動化、削除、および監視レベルの変更は管理者用だけとすることができる。オペレータ７０５は、大部分の機能への表示アクセス権を有し、ある種の機能コンフィギュレーションへのアクセス権を有している。ユーザ７１０は、機能およびレポートへの表示アクセス権を有しているが、任意の機能コンフィギュレーションへのアクセス権は有していない。
【００６２】
アーキテクチャ
本発明のシステムは、以下に述べるアーキテクチャを有することができる。そのアーキテクチャは、本質的に各アプリケーション・サーバ上で動作するエージェント、および専用サーバ上における残りの構成要素であって、中央制御を行うカーネル、プローブ・エンジンからデータを受け取るためのパブリッシュ・サーバ、キャッシュからデータベースにデータを移動させるアーカイブ・エージェント、データベース、すべてのエンド・ユーザ・アプリケーションを提供する視覚化エンジン、および（WebSphereなどの）アプリケーション・サーバからある種のアプリケーション・サーバ特有のデータを収集するためのアプリケーション・サーバ・エージェントを含むことができる。例示のアーキテクチャを図９に示す。２５１０で示すようなアプリケーション・サーバ・エージェントは、アプリケーション・サーバ上にインストールされる。プローブ／パブリッシュ・エンジン２５１１は、アプリケーション・サーバ・エージェント２５１０の主要な構成要素である。残りの構成要素は、専用サーバ２５２０上にインストールすることができる。カーネル２５３０は、中央制御を提供する。パブリッシュ・サーバ２５４０は、アプリケーション・サーバ・エージェント２５１０からデータを受け取り、データをアーカイブ・エージェント２５５０に移す。アーカイブ・エージェント２５５０は、データをデータベース２５６０に移す。視覚化エンジン２５７０は、すべてのエンド・ユーザ・アプリケーションを提供し、履歴情報のためにデータベースと通信し、また情報のスナップ・ショット情報を要求し受け取るために、直接アプリケーション・サーバ・エージェント２５１０と通信する。
【００６３】
一実施形態では、上記の方法でユーザに提供されるデータのソースは、プローブ／パブリッシュ・エンジンとすることができる。プローブ／パブリッシュ・エンジンは、特有のスレッドに関連するすべての情報を取得する。好ましい実施形態では、標準のＪＶＭＰＩ（Java (R) profiling interface）をプローブ・エンジンのために使用することができる。
【００６４】
図１０を参照すると、プローブ／パブリッシュ・エンジン２５１１が、通信先のＪａｖａ（Ｒ）仮想マシン２６１０ならびにアプリケーション・サーバ２６１５に関連して示されている。プローブ／パブリッシュ・エンジン２５１１は、５つの構成要素、すなわち、プローブ・コントローラ２５１２、コマンド・エージェント２５１３、イベント・エージェント２５１４、イベント・ハンドラ２５１５、およびパブリッシュ・エンジン２５１６を有することが好ましい。プローブ・コントローラ２５１２は、他の構成要素のライフ・サイクルを制御するコントローラ・スレッドである。イベント・エージェント２５１４は、当該のＪＶＭＰＩイベントのためにイベント・ハンドラを登録する。かかるイベントが生じた場合、ハンドラが呼び出される。ハンドラは、関連する情報を収集し、それをイベント・キューに加える。次いで、パブリッシュ・エンジン２５１６がそのイベント・キューからデータを取得し、それをパブリッシュ・サーバ２５４０に送る。そのエージェントは、ＪＤＫ（Java (R) Development Kit）１．２．２以上を用いて提供される標準のＪａｖａ（Ｒ）プロファイリング・インターフェース（Java(R) profiling interface）を用いて構築することができる。
【００６５】
この実施形態では、ＪＶＭＰＩライブラリは、ＪＶＭがロードされ、ＪＶＭ、プローブ・コントローラ、イベント・エージェント、およびコマンド・エージェントと通信する。ＪＮＩ機能は、すべてのイベント・ベースのデータおよび日付／時刻スタンプ、ウォール・クロックおよびＣＰＵクロックを取り込むために使用することができる。ＪＶＭＰＩライブラリ、イベント・エージェント、コマンド・エージェント、パブリッシュ・エンジン、およびプローブ・コントローラによって登録されたイベントを表２で示す。
【００６６】
【表２】
2005531070.tif 000004
【００６７】
ＪＶＭＰＩライブラリから得られた情報は、イベント・キューとよばれるキューに記憶され、イベント・エージェントがキューからレコードを取り出し、それをパケットに包み、パブリッシュ・エンジンを介してそれをパブリッシュ・サーバに送る。イベント・エンジンによってキューから収集されるデータを表３に示す。
【００６８】
【表３】
2005531070.tif 000005
【００６９】
コマンド・エージェントは、カーネルに登録されたＲＭＩサービスである。コマンド・エージェントは、視覚化エンジンおよび他の外部構成要素からコマンドを受け取り、ＪＶＭＰＩまたはＪＮＩコールを用いてその要求を満たす。コマンドの例示のリストおよびそのコマンドがＪＶＭＰＩまたはＪＮＩに提供されているかどうかを表４に示す。
【００７０】
【表４】
2005531070.tif 000006
【００７１】
プローブ・コントローラはまた、カーネル２５３０に登録されたＲＭＩサービスであることが好ましく、他のプローブ構成要素を開始、停止させ、プローブのコンフィギュレーションを得る。プローブの新しいコンフィギュレーションは、カーネル２５３０からプローブ・コントローラに送られる。プローブ・コントローラは、プローブを開始すべきか停止すべきか、あるいは新しいコンフィギュレーションを受け取ったときフィルタを変更すべきかどうかを判定する。図１１にプローブ／パブリッシュ・エンジンのための論理図を提供する。この論理図によれば、２７０２で示すように、ＪＶＭがロードされたとき、２７０４で示すように、スレッドの開始、終了およびＪＶＭの初期化の完了を識別するイベントがＪＶＭＰＩを介してカーネルに登録される。２７０６で示すように、ＪＶＭの初期化が完了すると、２７０８で示すように、システム・プロパティが設定され、開始プローブのためのスレッドが作成される。次いで、２７１０で示すように、スレッドは、メソッド・エントリおよびクラス・ロード・イベントをイネーブルにし、２７１２で示すように、アプリケーション・サーバが開始するまで待つ。２７１４で、メソッド・エントリはＪＶＭ中のプロセス・フローを開始し、２７１６で、アプリケーション・サーバが開始したかどうかを調べる。開始していた場合、プロセス・フローは、ＩｎｉｔＰｒｏｂｅスレッドに渡され、２７１８で、それはメソッド・エントリおよびクラス・ロード・イベントをディセーブルにし、２７２０で、プローブ・コントローラ・スレッドを作成する。２７２２で、プローブ・コントローラ・スレッドは、カーネルからプローブ・コンフィギュレーションを求める。プローブ・コンフィギュレーションが見つからない場合、２７２４と２７２６で示すように、フローは終了する。コンフィギュレーションが見つかった場合、プロセス・フローは次に進み、２７２８で、プローブがコンフィギュレーション中でイネーブルになっているかどうか判定する。イネーブルでなければ、プロセス・フローは終了する。２７３０で示すように、プロセス・フローはまた、カーネルからのＲＭＩコールの形で新しいコンフィギュレーションを開始することもできる。プローブがイネーブルであった場合は、２７３２で示すように、プロセス・フローは次に進んでイベント・エージェントとコマンド・エージェントを開始し、クラス・ロード・イベントおよびメソッド・エントリ・イベントをイネーブルにする。２７３４と２７３６で示すように、コマンド・エージェントは、視覚化エンジンからのコマンドを待つ。２７５０で示すように、メソッド・エントリ・イベントをイネーブルにすることにより、ＪＶＭ中のプロセス・フローが開始する。２７５２で示すように、ＣＰＵクロック、ウォール・クロック、メソッド識別、スレッド識別、またはＵＲＬ／ＳＱＬあるいはそれらの組合せなどのデータが得られ、イベント・キュー２７６０に渡す。クラス・ロード・イベントは２７５４で示すようにＪＶＭのプロセス・フローを開始する。２７５６で示すように、クラス名、メソッド名、およびシグネチャを得る機能が開始され、この情報はクラス・ハッシュ・テーブル２７６２に渡される。２７８０で示すように、イベント・エージェントは、イベント・キュー２７６０からレコードを取り出す。そのイベント・エージェントは、２７８２で示すように、パブリッシュの頻度に応じて待つ。
【００７２】
視覚化エンジン２５７０は、本発明の方法およびシステムで使用されるフロントエンド・ユーザ・インターフェース構成要素を提供する。標準のＪ２ＥＥ技術を視覚化エンジン２５７０の実装に使用することができる。視覚化エンジン２５７０のフロントエンド・フレームワークは、セッション管理やセキュリティなどのハウスキーピングを処理する。視覚化エンジン２５７０は、フロントエンド・アプリケーションおよびビジネス・ロジック構成要素の開発に役立つ環境を提供するために、できるだけ多くの共通タスクを処理することが好ましい。視覚化エンジン２５５０は、データベースの上部に存在し、ユーザの要求に応じてそれにアクセスする。アーキテクチャは、図１２に示されており、ブラウザ・ベースであって、ブラウザ２８１０を使用し、Ａｐａｃｈｅウェブ・サーバとすることができるウェブ・サーバ２８１５、およびＩＢＭのＷｅｂＳｐｈｅｒｅなどのアプリケーション・サーバ２８２０と通信し、データベースとウェブ・サーバ間をインターフェースするものとして示されている。サーブレットは、要求を処理し、アプリケーション・フローを管理するために使用することができる。サーブレットはまた、フォーム・データ・エントリの妥当性検査を実施し、データを含むＪａｖａ（Ｒ）ＢｅａｎオブジェクトをＪＳＰページに送ることによってフロントエンドの挙動を制御するために使用することができる。ＪＳＰページは、大部分のフロントエンドのプレゼンテーション・ロジックを処理することができる。ビジネス・ロジックは、ＥＪＢを用いて実施することができる。一般に、ステートレス・セッションＢｅａｎｓが用いられる。
【００７３】
サーブレットは、上記のようにフォーム・エントリ・データ、およびアプリケーション・ロジック・フローに使用することができる。ベース・サーブレットは、すべてのサーブレット・アプリケーションをそれから拡張すべく提供することができる。ベース・サ−ブレットは、広域変数をセットアップし、認証および許可を処理し、必要に応じてログイン・ページおよびアクセス拒否ページへの転送を実施する。資源バンドル、ログ・メッセージ、および監査記録メッセージ・ファイルが提供される。ＪＳＰは、ウェブ・ページがブラウザ中に表示されるようにするＨＴＭＬコードを生成する。サーブレットは、Ｊａｖａ（Ｒ）Ｂｅａｎオブジェクトを用いて所望のデータをＪＳＰに渡す。
【００７４】
ステートレス・セッションＢｅａｎｓのトップ・レイヤは、ＡＰＩを作成する。トップ・レイヤの下には、データベースのデータへのアクセスを処理するＥＪＢまたはＪａｖａ（Ｒ）クラスがあり得る。データベースのデータは、ＤＢＡｃｃｅｓｓデータ・アクセス・フレームワークの一部であるデータベース・アクセス・レイヤを介して得ることができる。
【００７５】
アプリケーション・アクティビティの表示機能は、上記のように実時間でのデータへのアクセスを提供し、視覚化エンジンと、対応するパブリッシュ・サーバおよびプローブとの間の直接通信を行う。パブリッシュ・サーバ・インターフェースおよびコマンド・エージェント・インターフェースがこの直接通信のために提供される。これらのインターフェースへのスタブは、カーネルで維持され、ルックアップ・エージェント・ヘルパ・クライアントを用いてカーネルから検索を実施することにより、視覚化エンジンによって取り出される。プローブが走っている各サーバは、プローブに対して一義的な識別を有する。プローブの識別が得られると、コマンド・エージェントのインターフェース・スタブがカーネルから得られる。次いで、プローブで使用されるパブリッシュ・サーバの識別がプローブから得られる。パブリッシュ・サーバの対応するインターフェース・スタブは、カーネルから得られる。次いで、アクティブ要求および関連するデータのリストが、選択されたパブリッシュ・サーバから直接得られる。追加の要求データは、直接プローブから得ることができる。視覚化エンジンと、コマンド・エージェントと、プローブのパブリッシュ・サーバとの間の通信は、実時間でありかつ同期している。
【００７６】
視覚化エンジンは、前に論じたセキュリティ機能を含む。Ｊ２ＥＥ仕様のセキュリティ機能が、上記のセキュリティ機能を提供するのに十分ではなかったため、メーカ独自のＡＰＩが開発された。セキュリティ機能は、認証および許可からなる。認証は、第３者の認証システムを含むメーカ独自のＪａｖａ（Ｒ）ＡＰＩを介して実施される。許可は、ユーザまたはグループがアクセス制御リストを維持することによって実施される。ユーザは、特有のグループに関連付けられ、そのグループ中のサーバのデータにだけアクセスすることができる。サーバは、１つまたは複数のグループにそれぞれ関連付けられる。
【００７７】
次に、カーネルを詳細に説明する。カーネルは、様々なサービスがネットワーク上で互いに発見できるようにし、サービスが動的でロバストに対話する方法を提供する。サービスがオンラインまたはオフラインで行われるときは、ユーザの介入を必要としない。カーネルに参加する（join）サービスは、オンラインまたはオフラインで他の任意のサービスが行われているときに動的に適合することができる。サービスの消費者は、そのサービスの実施に関する事前の知識を必要としない、図１３を参照すると、カーネルの２つのインスタンス、２５３０、２５３０’が示されている。カーネルのアーキテクチャは、コア２５３１、リース・アドミニストレータ２５３２、ＲＦＳサーバ２５３３、コードベース・サーバ２５３４、登録データベース２５３５、可用性サーバ２５３６、およびコンフィギュレーション・サーバ２５３７を特徴とする。カーネルの２つのインスタンスは、可用性を強化するために別々のサーバ上で走ることが好ましい。
【００７８】
カーネル・コア２５３１は、サービスからのすべての参加、更新、脱退（leave）、およびルックアップ要求を処理する。このサービスとは、プローブ・エージェント、可用性サーバ２５３６、およびコンフィギュレーション・サーバ２５３７のことである。参加要求に関しては、サービスは、カーネルにプロキシ・オブジェクトおよびその関連するサービス属性を渡す。カーネルは、登録データベースにそのプロキシ・オブジェクトおよびサービス属性を記憶することにより要求を実行する。クライアントが、タスクを実施するためにある種のサービスが必要なときは、クライアントは、カーネルに検索テンプレートを送り、ルックアップ要求を発行することによってそのサービスを探す。検索テンプレートに基づいて、カーネルは、対応するプロキシ・オブジェクトをクライアントに戻す。各サービスは、カーネルに定期的に更新要求を発行することによりそのリースを更新する必要がある。カーネルが、必要なときに更新要求を受け取っていない場合、カーネルは、登録データベースからサービスのプロキシ・オブジェクトおよびサービス属性を除去する。この更新要件は、利用できないサービスに要求が送られることを回避する。プローブ／パブリッシュ・サーバは、リースが更新されたとき、アプリケーションと、完了した要求のボリュームやＣＰＵ使用効率などのシステム情報とをバンドル（bundle）することが好ましい。このようにすると、リースの概念によりサーバの可用性および上位レベルの統計情報をレポートすることができる。サービスはまた、カーネルに脱退要求を発行する。
【００７９】
リース・アドミニストレータ構成要素２５３２は、登録されたデータベース中の記録を追跡する。期限切れになった登録がある場合、または脱退要求を受け取った場合、そのリース・アドミニストレータ２５３２は、対応するレコードを除去し、したがって、カーネルは対応するプロキシ・オブジェクトをどのクライアントにも渡さなくなる。ＲＦＳ（request for stub）サーバ２５３３は、接続用ポート上で待機する（listen）。接続が識別されたとき、カーネルとのインターフェースに使用するために、シリアル化されたカーネルのスタブ・オブジェクトがサービスまたはクライアントに送り出される。コードベース・サーバ２５３４は、ＨＴＴＰサーバに類似のものであるが、サービスのクライアントがカーネルから得たプロキシ・オブジェクトのクラス定義をダウンロードできるようにする機能を提供する。登録データベース２５３５は、プロキシ・オブジェクトおよび関連するサービス属性のためのメモリ内ストレージを提供する。サーバの可用性および統計情報は、この登録データベース２５３５中に常駐する。
【００８０】
可用性サーバ２５３６は、サーバの可用性および統計データを視覚化エンジン２５７０に提供するために登録データベース２５３５の履歴のスナップ・ショットを取り、記憶する。
【００８１】
コンフィギュレーション・サーバ２５３７は、すべての構成要素のコンフィギュレーション・データを集中させた場所である。コンフィギュレーション・データは、ＸＭＬ形式であり、データベースに保存される。ユーザは、視覚化エンジンを介してコンフィギュレーションを変更することができる。それが行われると、コンフィギュレーション・サーバ２５３７は、カーネルから古いコンフィギュレーションに適合しているプロキシ・オブジェクトのリストを取り出す。コンフィギュレーション・サーバ２５３７は、プロキシ・オブジェクトを利用して、新しいコンフィギュレーションをブロード・キャストする。それは、視覚化エンジンでのユーザ・コマンドに応答してプローブのコンフィギュレーションを更新するように働く。
【００８２】
ＪｏｉｎＭａｎａｇｅｒと呼ばれるヘルパー・ユーティリティは、カーネルのスタブ・オブジェクトを要求し、カーネルを、プロキシ・オブジェクトならびにそのサービス属性と結合する。スタブ・オブジェクトが利用できない場合、ユーティティは成功するまで再試行を続ける。このユーティリティはまた、リースを維持し更新する。特有のサービスをルックアップするために、クライアントはルックアップ・マネジャ・ユーティリティを使用することができる。
【００８３】
パブリッシュ・サーバ２５４０は、様々なパブリッシュ・エンジンから受け取ったデータを管理する。複数のパブリッシュ・サーバを単一のインストール中で提供することができる。パブリッシュ・サーバは、視覚化エンジンに照会機能を提供する。パブリッシュ・サーバはまた、データに関連する性能管理およびデータに関連するシステム資源のインクリメンタルな取得を管理する。パブリッシュ・サーバのアーキテクチャを図１４で示す。
【００８４】
パブリッシュ・サーバ２５４０は、マルチスレッド・プロセスとして実装することができる。各スレッドは、個々のパブリッシュ・エンジンに接続され、そこからデータを受け取る。それはまた、開始、遮断、およびカーネルへの通信を処理する追加のスレッドを含むことができる。
【００８５】
図１４を参照すると、パブリッシュ・サーバ２５４０は、カーネルに参加するスレッドを作成し、３００２で示すように、規則的にそのコントラクト（contract）を更新する。パブリッシュ・サーバ２５４０はまた、３００４で示すように、ソケット接続を受け入れるためのスレッドを作成する。判断ブロック３００６で示すように、次のステップは、照会を対応するパブリッシュ・エンジンから受け取ったかどうかに依存する。３００８で示すように、照会ではなくデータを受け取った場合、永続的なソケット接続が確立される。そのデータはまた、要求に関連付けられる。次いで、３０１０で示すように、データは、パブリッシュ・エンジンを介してプローブから取得される。３０１２と３０１４で示すように、サーバの再起動信号を受け取った場合、先に進む前にパブリッシュ・サーバが、再起動されたサーバのために蓄積されたデータをリセットする。３０１６と３０１８で示すように、データが新しいプローブからのものである場合、サーバは、データに関連するサーバの性能管理、およびデータに関連するシステム資源を５分ごとになど定期的に取得するように登録される。次いで３０２０で示すように、プロセス・フローは、プローブから受け取ったメソッド・レベル・レコードやクラス・ロード・レコード、ＧＣレコードなどのレコードの処理に進む。３０２２で示すように、要求が完了した場合、あるいは要求に対するアクティビティがある時間量の間なかった場合、３０２４で示すように、アクティブ要求リストからその要求は除去される。次いで、プロセス・フローは戻って、３０２６から導かれるラベリングによって示されるように、プローブからさらにデータを受け入れる。
【００８６】
データが照会であると判定された場合、情報の適切なタイプを決定するためにプロパティが用いられる。３０３０、３０３２、および３０３４で示すように、照会は様々な情報を問い合わせることができる。次いで、結果はシリアル化され、パブリッシュ・エンジンに送り返される。３０３６で示されるように、パブリッシュ・サーバはまた、状況など、クライアントによって行われるいくつかの管理要求を受け取り、３０３８で示すように、サービスを停止する。これらのタスクは、アドミニストレータによって呼び出される。３０４０で示されるように、照会に応答した情報が提供されたとき、接続はクローズされ、パブリッシュ・サーバは、ソケット接続を受け入れることが再び可能になる。
【００８７】
前述のアーキテクチャは、本発明の方法の諸ステップを実行するための手段を有する一システムを表していることが理解されよう。視覚化エンジンは、情報をユーザに提示する手段と、ユーザにプロンプトを出す手段と、ユーザからの要求を受け取る手段とを備える。プローブ・エンジンは、分散アプリケーションに関する情報を取得する手段と、その分散アプリケーションのフィルタリングされた監視を実行する手段とを備える。パブリッシュ・エンジン、アーカイブ、データベース、およびカーネルの機能は、視覚化エンジンおよびプローブ・エンジンと協同して本方法の諸ステップを実行するための一手段を提供することが理解されよう。
【００８８】
自己診断
本発明の方法、システム、およびコンピュータ・プログラムでは、アーキテクチャ内部の構成要素の分析を行うための、またその分析結果をオペレータにレポートするための方法およびシステムを提供することができる。一実施例では、カーネル、データ・コレクタ構成要素、パブリッシュ・サーバ、およびアーカイブ・エージェントのビュー（view）を提供することができる。
【００８９】
カーネル・ビューは、本発明のソフトウェア・システムのカーネル構成要素のすべての実行インスタンスを示す。インスタンスごとに、カーネル実行時環境の詳細およびそれぞれの構成要素の概観が提供される。カーネル実行時環境の詳細における例示の値には、プラットフォーム、ＩＰアドレス、様々なポート数、コードベースのライブラリ・パス、コントラクトの更新間隔、開始時間、セキュリティ・ポリシーが常駐しているファイル、ドライバ名、およびその対応するデータベースのＵＲＬが含まれる。構成要素の概観は、サーバ名、構成要素の識別、プラットフォーム、ＩＰアドレス、待ち受けポート数、最初の参加時間、および最後のコントラクトの更新時間を含むことができる。構成要素の概観セクションにおける各構成要素の識別には、対応するビューを提供するリンクを含めることができる。例えば、ユーザが構成要素の識別Ｘ上のリンクをクリックし、そのサービス名がデータ・コレクタ・コントローラであった場合、ユーザにはデータ・コレクタ構成要素のビューが提供される。
【００９０】
データ・コレクタ構成要素のビューは、起動され走っているデータ・コレクタ・コントローラのすべてに関するデータを表示する。このビューは３つのセクションとすることができる。すなわち、データ・コレクタ・コントローラ実行時環境の詳細、データ・コレクタ実行時環境の詳細、およびパブリッシュ・サーバの関係である。最初の２つのセクションは、コンフィギュレーションおよびデータ・コレクタ・コントローラが走っている環境を提供する。パブリッシュ・サーバの関係セクションは、データ・コレクタが接続されている先のパブリッシュ・サーバの識別を表示する。データ・コレクタ・コントローラの実行時環境の詳細については、その識別は、構成要素ＩＤ、アドミニストレータ・サーバの識別、アプリケーション・サーバの識別、プラットフォームの識別、ＩＰアドレス、ポート番号、開始時間、カーネルのコードベース・ファイル・ロケーション、接続されたカーネル、コンフィギュレーション・プロファイル、カーネルが構成されているかどうか、およびセキュリティ・ポリシー・ファイルを含む。データ・コレクタ実行時環境の詳細に関しては、その情報は、構成要素の識別番号、ポート番号、およびその構成要素がイネーブルであるかどうかである。
【００９１】
パブリッシュ・サーバ・ビューは、起動され走っているパブリッシュ・サーバ構成要素のインスタンスすべてに関する情報を提供する。各インスタンスについては、４つのセクションとすることができる。すなわち、パブリッシュ・サーバ実行時環境の詳細、データ・コレクタの関係、ＰＭＩエージェントの関係、およびアーカイブ・エージェントの関係である。
【００９２】
アーカイブ・エージェントのビューは、起動され走っているアーカイブ・エージェントのすべてを示し、アーカイブ・エージェントの各インスタンスに関しては、２つの情報セクションとすることができる。すなわち、アーカイブ・エージェント実行時環境の詳細、およびパブリッシュ・サーバの関係である。アーカイブ・エージェント実行時環境の詳細は、アーカイブ・エージェントのコンフィギュレーションおよび環境を一覧にする。パブリッシュ・サーバの関係の情報は、アーカイブ・エージェントが働いているパブリッシュ・サーバを識別する。
【００９３】
以上により、本発明のシステムの実時間の監視が提供され、したがって、性能が監視され問題が判別されることが理解されよう。
【００９４】
本発明のシステムは、監視すべきサーバ上にある種のプローブ・ソフトウェアを配置し、本発明の残りのソフトウェアのために別個のサーバを配置することによって導入することができる。このコンフィギュレーションによると、本発明のシステムが比較的確実に導入される。
【００９５】
本発明は、これらの諸方法を実施するための方法および装置の形で実施することができる。本発明はまた、フロッピー（Ｒ）・ディスケットやＣＤ−ＲＯＭ、ハード・ドライブ、または他の任意のマシン可読ストレージ媒体など有形の媒体中で実施されるプログラム・コードの形で実施することができ、そのプログラム・コードが、コンピュータなどのマシンにロードされ実行されたとき、そのマシンは本発明を実施するための装置となる。本発明はまた、例えばストレージ媒体に記憶され、マシンにロードまたは実行あるいはその両方が行われる、あるいは電気的なワイヤリングもしくはケーブリングや光ファイバ、電磁放射を介するなど何らかの伝送媒体を介して伝送されるプログラム・コードの形で実施することができ、そのプログラム・コードがコンピュータなどのマシンにロードされ実行されたとき、マシンは本発明を実施するための装置となる。汎用プロセッサ上に実装されたときは、プログラム・コード・セグメントはプロセッサと組み合わせて、特有の論理回路に類似した動作をする独特のデバイスを提供する。
【００９６】
例示の実施形態を、Ｊａｖａ（Ｒ）技術、具体的にはＪ２ＥＥ技術を用いて企業アプリケーションに関して説明してきたが、本発明の方法は、他の技術で実施することができる。例えば、本発明の方法は、プラットフォームに依存しない他の技術で実施することができる。本発明の方法はまた、分散型企業アプリケーションに適用可能な他の技術でも実施することができる。
【００９７】
本発明を好ましい実施形態に関して説明してきたが、本発明をその好ましい実施形態に限定されるものであると見なすべきではない。
【図面の簡単な説明】
【００９８】
【図１】本発明による方法を示す流れ図である。
【図２】本発明による方法を示す流れ図である。
【図３】本発明による方法を示す流れ図である。
【図４】本発明による方法の概略図である。
【図５】本発明による方法を示す流れ図である。
【図６】本発明による方法を示す流れ図である。
【図７】本発明の特徴を示す概略図である。
【図８】本発明の特徴を示す概略図である。
【図９】例示的アーキテクチャを示す概略図である。
【図１０】例示的アーキテクチャの特徴を示す概略図である。
【図１１】例示的アーキテクチャを示す図である。
【図１２】例示的アーキテクチャの特徴を示す概略図である。
【図１３】例示的アーキテクチャの特徴を示す概略図である。
【図１４】例示的アーキテクチャを示す流れ図である。
【図１】
2005531070.tif 000007
【図２】
2005531070.tif 000008
【図３】
2005531070.tif 000009
【図４】
2005531070.tif 000010
【図５】
2005531070.tif 000011
【図６】
2005531070.tif 000012
【図７】
2005531070.tif 000013
【図８】
2005531070.tif 000014
【図９】
2005531070.tif 000015
【図１０】
2005531070.tif 000016
【図１１】
2005531070.tif 000017
【図１２】
2005531070.tif 000018
【図１３】
2005531070.tif 000019
【図１４】
2005531070.tif 000020
【国際調査報告】
2005531070.tif 000021
2005531070.tif 000022