(57)【要約】【課題】トランザクション・パイプラインの各段階でトランザクションを完了するのに必要とされる経過時間などといった、トランザクション・パイプライン中のトランザクション完了についてのメトリック・データを取り込むことによって、トランザクション・パイプラインを分解する方法、システム、機器、およびコンピュータ・プログラムを提供すること。【解決手段】１組のエージェントが、資源を求めるトランザクション要求に応答する１組のサーバの間にある。２つ以上のサーバは、トランザクション・パイプラインにほぼ論理的にグループ化することができ、このパイプラインにおいて、上流サーバで直前のトランザクションを完了するように上流サーバが下流サーバへの後続トランザクションを開始する場合は、上流サーバが下流サーバに先行する。各エージェントは、トランザクション・パイプラインにおいてサーバに関連づけられる。エージェントは、エージェントによって開始されるトランザクションについてのメトリック・データを集め、こうしたデータは、各エージェントが関連づけられるサーバに対して下流のサーバに向けられる。
2005530260.tif 000002
【特許請求の範囲】
【請求項１】
分散データ処理システムを監視する方法であって、
前記分散データ処理システム全体に渡って１組のエージェントを提供するステップと、
前記１組のエージェント中の各エージェントを、前記分散データ処理システム内の１組のサーバ中のサーバと関連づけるステップであって、前記１組のサーバ中の各サーバが、前記１組のサーバ中の後続サーバに後続トランザクションを要求した後、要求されたトランザクションを完了するステップと、
トランザクションを開始し、前記トランザクションについての完了情報を取得するように、前記１組のエージェント中の各エージェントを構成するステップであって、前記エージェントが関連づけられる前記サーバによって後続トランザクションが要求される前記後続サーバ、に対して前記トランザクションが向けられる、ステップと
を含む方法。
【請求項２】
前記完了情報が、前記トランザクションを完了するのに必要とされる経過時間に関連するデータを含む、請求項１に記載の方法。
【請求項３】
前記完了情報が、資源の可用性、資源の消費、または時間遅延に関する、前記トランザクションに関連するデータを含む、請求項１または２のいずれか一項に記載の方法。
【請求項４】
前記１組のサーバ中のサーバに関連づけられていないエージェントである一次エージェントを、前記分散データ処理システムにおいて提供するステップと、
前記一次エージェントを前記１組のエージェントに含めるステップと、
トランザクションを開始し、トランザクションについての完了情報を取得するように、前記一次エージェントを構成するステップであって、前記トランザクションが前記１組のサーバ中のサーバに向けられるステップ
をさらに含む、請求項１ないし３のいずれか一項に記載の方法。
【請求項５】
前記１組のサーバ中の各サーバに対する論理的順序を確立するステップと、
順序づけられた１組のサーバ中の、論理的に第１のサーバに対して、前記一次エージェントによるトランザクションを開始するステップと
をさらに含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
前記１組のエージェント中の第１のエージェントから、前記１組のサーバ中の第１のサーバに対して第１のトランザクションを開始するステップと、
前記第１のエージェントの所で、前記第１のトランザクションについての完了情報を取得するステップと
をさらに含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項７】
前記１組のエージェント中の第２のエージェントから前記第１のサーバに対して第２のトランザクションを開始するステップと、
前記第２のエージェントの所で、前記第２のトランザクションについての完了情報を取得するステップと
をさらに含む、請求項６に記載の方法。
【請求項８】
前記１組のエージェントに共通識別子を割り当てるステップと、
前記１組のエージェント中の各エージェントに、構成情報中の前記共通識別子を分散させるステップと
をさらに含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項９】
エージェントの所でスクリプトを実行して、１つまたは複数のサーバへの１つまたは複数のトランザクションを開始するステップ、
をさらに含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項１０】
前記１組のエージェント中のエージェントに対する構成情報が、エージェントがサーバへのトランザクションをいつ開始するべきかを示した時間的情報を含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項１１】
指定されたサーバにおいて、前記１組のエージェント中の各エージェントから完了情報を直接収集するステップ、
をさらに含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項１２】
前記一次エージェントによって完了情報の収集を開始するステップ、
をさらに含む、請求項１１に記載の方法。
【請求項１３】
複数のエージェントからの完了情報を相互に関連づけるステップ、
をさらに含む、請求項１ないし１２のいずれか一項に記載の方法。
【請求項１４】
複数のエージェントからの完了情報を統計的に分析するステップ、
をさらに含む、請求項１ないし１３のいずれか一項に記載の方法。
【請求項１５】
請求項１ないし１４のいずれか一項に記載の方法を実施するのに適合した手段を備える、データ処理システム。
【請求項１６】
プログラミング・コード命令を備えるコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されるとき、請求項１ないし１４のいずれか一項に記載の方法のステップを実行するためのプログラミング・コード命令を備える、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、改良型のデータ処理システムに関し、詳細には、情報処理のための方法および機器に関する。より詳細には、本発明は、ネットワーク環境におけるクライアント・アプリケーションとサーバ・アプリケーションの間の通信セッションの性能についての情報の記録および分析全般に関する。
【背景技術】
【０００２】
電子商取引が成熟するのに伴い、企業は、ワールド・ワイド・ウェブでの存在感を強めることから、ｅコマースの運用を維持し改善することに方針転換している。ほとんどのｅコマース企業は、他の電子事業サービス、すなわちｅビジネスと効果的に競うために、本格的な外見とともに高いサービス品質を提供する必要がある。現在、ウェブ・サイトの機能をテストし、性能測定データまたはメトリクス（測定基準）を集めることによって、ウェブ・サイトの特性を監視する様々な製品およびサービスが市販されている。
【０００３】
ｅビジネスに対する顧客満足の重要な要素は、ｅコマースのトランザクションに関わっている間に顧客によって経験される応答時間である。ユーザが、ウェブ・サイトを介して製品を購入するなどのｅコマースのトランザクションを比較的遅いと感じた場合、ユーザはそのウェブ・サイトに不満をもつ可能性があり、それ以降の買い物は別のウェブ・サイトを介して行う可能性がある。ほとんどのｅビジネスでは、確実に顧客が適切な応答時間を受けているようにすることを望み、ｅビジネス運用のための性能メトリクスは、ユーザによって経験され得る応答時間および他のサービス品質特性を判定するために集められなければならない。サーバの負荷率および帯域幅の使用など、資源指向のメトリクスは、ｅコマース導入の動作性能を判定するための重要なメトリクスであるが、こうしたメトリクスは、ユーザがｅコマースの導入に伴って直接観察するいわゆるエンド・ツー・エンドの応答時間についての情報を必ずしも提供しない。したがって、一般ユーザがｅコマースの導入を介して要求し得るトランザクションをシミュレートすることによってエンド・ツー・エンドの応答時間を測定するための様々な方法が開発されている。
【０００４】
一般ユーザのｅコマース・トランザクションのための平均的なエンド・ツー・エンドの応答時間を明らかにすることにより、応答時間を改善する必要があるかどうかに関しての指針を提供することができるが、このような情報は通常、サービス品質を向上するためにｅコマースの導入を修正させるべき様式を決定するには不十分である。多くのウェブ・サイトが、比較的単純なサーバ構成によってサポートされているが、多くのｅコマース運用は複雑になっている。ユーザの視点からは、ウェブ・サイトでの簡単な購入は、単一のトランザクションのように思われる場合がある。オペレータの視点からは、ｅコマースの導入に伴うユーザの対話セッションは、異なる多くのアプリケーションを介した１組の多くの動作を含む。言い換えると、一度のユーザ対話は、トランザクション・パイプラインとも呼ばれる１組のトランザクションを含む場合がある。ｅコマース企業のオペレータは、十分に実施されていないユーザ対話を改善するために、トランザクション・パイプラインに沿った各トランザクションについての情報を必要とする。
【特許文献１】米国特許第６，１０８，７００号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、ｅビジネスの導入において多くのトランザクションそれぞれについての情報を集めることができるように、トランザクション・パイプラインの動作を別個のトランザクションに分解する方法およびシステムを提供することが有利な場合もある。
【課題を解決するための手段】
【０００６】
トランザクション・パイプラインの各段階でトランザクションを完了するのに必要とされる経過時間など、トランザクション・パイプライン中のトランザクションの完了についてのメトリック・データを取り込むことによって、トランザクション・パイプラインを分解する方法、システム、機器、およびコンピュータ・プログラムを提示する。１組のエージェントが、資源を求めるトランザクション要求に応答する１組のサーバの間にある。２つ以上のサーバを、トランザクション・パイプラインにほぼ論理的にグループ化することができ、このパイプラインにおいて、上流サーバにおける直前のトランザクションを完了するように上流サーバが下流サーバへの後続トランザクションを開始する場合は、上流サーバが下流サーバに先行する。各エージェントは、トランザクション・パイプラインにおいてサーバに関連づけられる。エージェントは、エージェントによって開始されるトランザクションについてのメトリック・データを集め、こうしたデータは、各エージェントが関連づけられるサーバに対して下流のサーバに向けられる。
【０００７】
本発明の特徴と考えられる新規な特徴を、添付の特許請求の範囲に記す。本発明自体、さらにその目的および利点は、以下の詳細な説明を参照し、添付の図面を併せ読むことによって、最もよく理解されよう。
【発明を実施するための最良の形態】
【０００８】
概して、本発明を含み、または本発明に関連し得る装置は、非常に様々なデータ処理技術を含む。したがって、本発明をより詳細に説明する前に、背景として、分散データ処理システムにおけるハードウェア構成要素およびソフトウェア構成要素の一般的な編成を説明する。
【０００９】
ここで図面を参照すると、図１は、本発明の一部分をそれぞれが実施することができるデータ処理システムからなる一般的なネットワークを示す。分散データ処理システム１００は、ネットワーク１０１を含み、このネットワークは、分散データ処理システム１００内部で互いに接続された様々な装置とコンピュータとの間の通信リンクを提供するのに使うことができる媒体である。ネットワーク１０１は、ワイアまたは光ファイバ・ケーブルなどの永続的な接続も、電話または無線通信を介して行われる一時的な接続も含むことができる。図示した例では、サーバ１０２およびサーバ１０３が、記憶ユニット１０４とともに、ネットワーク１０１に接続される。さらに、クライアント１０５〜１０７も、ネットワーク１０１に接続される。クライアント１０５〜１０７およびサーバ１０２〜１０３は、例えばメインフレーム、パーソナル・コンピュータ、携帯情報端末（ＰＤＡ）など、様々な計算装置で表すことができる。分散データ処理システム１００は、図示していない追加のサーバ、クライアント、ルータ、他の装置、およびピア・ツー・ピアのアーキテクチャを含むことができる。
【００１０】
図示した例では、分散データ処理システム１００は、ネットワーク１０１を有するインターネットを含むことができ、ネットワーク１０１は、ＬＤＡＰ（軽量ディレクトリ・アクセス・プロトコル）、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネット・プロトコル）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、ＷＡＰ（無線アプリケーション・プロトコル）など、様々なプロトコルを使用して互いに通信するネットワークおよびゲートウェイの集合体を表す。当然ながら、分散データ処理システム１００は、例えばイントラネット、ＬＡＮ（ローカル・エリア・ネットワーク）、またはＷＡＮ（ワイド・エリア・ネットワーク）など、いくつかの他のタイプのネットワークを含むこともできる。例えば、サーバ１０２は、クライアント１０９と、無線通信リンクを組み込むネットワーク１１０とを直接サポートする。ネットワーク対応電話１１１は、無線リンク１１２を介してネットワーク１１０に接続され、ＰＤＡ１１３は、無線リンク１１４を介してネットワーク１１０に接続される。電話１１１およびＰＤＡ１１３は、ブルートゥース（商標）無線技術などの適切な技術を用いて、無線リンク１１５を介して互いの間でデータを直接転送して、いわゆるパーソナル・エリア・ネットワーク（ＰＡＮ）またはパーソナル・アドホック・ネットワークを作成することもできる。同様にして、ＰＤＡ１１３は、無線通信リンク１１６を介してＰＤＡ１０７にデータを転送することができる。
【００１１】
本発明は、様々なハードウェア・プラットフォーム上で実装することができる。図１は、異種計算機環境の例を意図したものであり、本発明のアーキテクチャ上の限定を意図したものではない。
【００１２】
ここで図２を参照すると、この図は、本発明を実装することができる、図１に示したようなデータ処理システムの一般的なコンピュータ・アーキテクチャを示す。データ処理システム１２０は、内部システム・バス１２３に接続された１つまたは複数のＣＰＵ（中央処理装置）１２２を含み、このシステム・バスは、ＲＡＭ（ランダム・アクセス・メモリ）１２４、読出し専用メモリ１２６、および入出力アダプタ１２８を相互接続する。この入出力アダプタは、様々なＩ／Ｏ装置、例えばプリンタ１３０、ディスク・ユニット１３２、または、音声出力システムなどといった図示していない他の装置などをサポートする。システム・バス１２３は、通信リンク１３６へのアクセスを可能にする通信アダプタ１３４も接続する。ユーザ・インターフェース・アダプタ１４８は、キーボード１４０およびマウス１４２などといった様々なユーザ装置、またはタッチ・スクリーン、スタイラス、マイクロホンなどといった、図示していない他の装置を接続する。ディスプレイ・アダプタ１４４は、表示装置１４６にシステム・バス１２３を接続する。
【００１３】
図２のハードウェアは、システムの実装形態に応じて変わり得ることが当業者には理解されよう。例えば、このシステムは、インテル（Ｒ）ペンティアム（Ｒ）ベースのプロセッサおよびデジタル信号プロセッサ（ＤＳＰ）など、１つまたは複数のプロセッサと、１つまたは複数のタイプの揮発性および不揮発性メモリを有することができる。図２に示したハードウェアに加えてまたはその代わりに、他の周辺装置を使うこともできる。言い換えると、ウェブ対応またはネットワーク対応電話、および十分な機能をもつデスクトップ・ワークステーションに、同様の構成要素またはアーキテクチャがあることを当業者は期待しない場合もある。図示した例は、本発明に関するアーキテクチャ上の限定を暗示することを意図したものではない。
【００１４】
様々なハードウェア・プラットフォーム上で実装できるだけでなく、本発明は、様々なソフトウェア環境において実装することができる。各データ処理システムにおけるプログラム実行を制御するのに、一般的なオペレーティング・システムを使うことができる。例えば、ある装置は、Ｕｎｉｘ（Ｒ）オペレーティング・システムを実行することができ、別の装置は、単純なＪａｖａ（Ｒ）ランタイム環境を含む。代表的なコンピュータ・プラットフォームにはブラウザを含めることができ、そのブラウザとは、画像ファイル、文書処理ファイル、ＸＭＬ（拡張マークアップ言語）、ＨＴＭＬ（ハイパーテキスト・マークアップ言語）、ＨＤＭＬ（携帯端末用マークアップ言語）、ＷＭＬ（無線マークアップ言語）、ならびに他の様々な形式およびタイプのファイルなどといった、様々な形式のハイパーテキスト文書にアクセスするための既知のソフトウェア・アプリケーションである。したがって、図１に示す分散データ処理システムは、様々なピア・ツー・ピアのサブネットおよびピア・ツー・ピアのサービスを完全にサポートできることを意図していることに留意されたい。
【００１５】
本発明は、上述したように、様々なハードウェアおよびソフトウェア・プラットフォーム上で実装することができる。しかし、より具体的には、本発明は、ユーザ対話のためのエンド・ツー・エンドの応答時間を取得する一般的な従来技術の解決法より細分化された情報を得るために、トランザクション・パイプライン、例えば、ｅビジネスの導入におけるサーバ・アプリケーションの連鎖を分解する技術を対象とする。本発明の技術により、処理のボトルネックおよび潜在的な障害を特定するための試みにおいて、トランザクション・パイプラインにおける各セッション、即ち「ホップ」の、統計的行動を分析することが可能になる。言い換えると、集められた情報は、速度低下やその他の問題の判定および特定するに際して、可能な改善策の決定と併せて、指針として作用すべきである。本発明の技術を、残りの図面に関連してより詳しく説明する。
【００１６】
ここで図３を参照すると、ブロック図は、本発明の実施形態による、セントラル・サーバと協同して動作する、トランザクション・パイプラインに沿った準自律型または自律型エージェントの基盤を備えるデータ処理システムからなるネットワークを示す。ユーザの視点から見ると、トランザクションは、ユーザが要求した単一の動作を完了することができる。技術的な視点から見ると、トランザクションは、エンティティの間の１組の通信プロトコル処置とみなすことができる。
【００１７】
トランザクション・パイプラインは、１つまたは複数のトランザクションからなる、ほぼ順序づけられた組を含む。トランザクションはそれぞれ、パイプラインの段階を表すとみなすことができる。トランザクション・パイプライン中の各段階で、ある特定のユーザ対話または要求に対して、１つまたは複数のトランザクションの試みおよび／または完了が行われる。例えば、ユーザがサーバにウェブ・ページを要求する時、このユーザの要求は、元の要求を満たすために完了されなければならない１つまたは複数のトランザクションからなる組を始動することができる元のトランザクションを表している。元のサーバは、元の要求を満たすのに必要とされる資源をすべて制御できるわけではないので、元のサーバは、別のトランザクションを表す別のサーバと交信することが必要な場合があり、また、二次サーバは、さらに別のトランザクションであるデータベース・エンジンにサーチの問合せを提示することが必要な場合がある。さらに、おそらく他のトランザクションと並行して、第１のサーバは、ユーザに提供されているサービスの料金を収集する必要がある場合があり、したがって、第１のサーバは、金融機関のサーバと交信することができ、そうすることによって、別のトランザクションを開始する。多数のトランザクションの完了を必要とするために、単一のユーザ要求がただちに展開し得ることが理解できよう。
【００１８】
「トランザクション・パイプライン」という用語は、ユーザの要求に必要な１組のトランザクションを記述するのに使うことができ、このトランザクションの組は、一連の線形トランザクションに従う必要はないが、１つまたは複数のトランザクション・パイプラインまたはストリームに分岐して、多数のトランザクションからなるトランザクション・ウェブを構成することができる。時には、トランザクション・ストリームは、厳密には直列でなく並列に動作することができる。トランザクション・パイプラインとは、トランザクションの流れがほぼ線形である、トランザクション・ウェブの特殊な場合とみなすことができ、トランザクション・ウェブとは、トランザクションの流れを多数のトランザクション・ストリームに分岐することができる、より一般的な場合とみなすことができる。「トランザクション・パイプライン」という用語は、以下で、一般的な用語として使用する。「トランザクション・ウェブ」という用語は、以下で、トランザクション・パイプラインとトランザクション・ウェブを区別する必要がある場合のみ使用する。
【００１９】
トランザクション・パイプラインまたはトランザクション・ウェブを含むトランザクションは、ほぼ順序づけることができる。上述したように、各トランザクション・パイプライン段階は、他のトランザクション・パイプライン段階から追加トランザクションを続けて開始することができる。したがって、元のトランザクションから生じるトランザクションへの順序または流れがある。そうした追加トランザクションを求める、元のユーザ要求からトランザクション・パイプラインの最終段階へのサーバ要求の流れは、トランザクション・パイプライン段階を「下流」方向に移動する、というように記述することができる。そうした要求への応答は、トランザクション・パイプライン段階を「上流」方向に移動する、というように記述することができる。トランザクション・ウェブが、一連の線形トランザクション、すなわちトランザクション・パイプラインのみを含む場合、トランザクション・パイプラインの各段階は、最大１つの隣接下流段階を有する。トランザクション・パイプラインが、多数のトランザクション・ストリームからなるウェブに展開する場合、トランザクション・パイプラインの段階の少なくとも一部は、隣接する複数の下流段階を有する。
【００２０】
上述したように、本発明は、トランザクション・パイプラインを分解する技術を対象とする。「分解する」という用語は、トランザクション・パイプラインにおける段階についての可用性および／または性能メトリクスを取得する動作を指し、本発明では、トランザクション・パイプライン全体に渡るトランザクションについて情報が集められる。エンドユーザの応答メトリクスのみを集める従来技術とは対照的に、本発明では、トランザクション・パイプライン全体に渡るトランザクション段階に関連づけられた資源の可用性、資源の消費、経過時間、時間遅延、または他のメトリクスを表したより細分化された測定値中の情報を取得する。
【００２１】
ここで図３を参照すると、図１のクライアント１０２に類似したクライアント装置２００が、ブラウザ・アプリケーション２０２などの一般的なエンドユーザ・アプリケーションをサポートする。エンドユーザは、クライアント２００と対話して、トランザクション・インターフェース２０８を介してシステム２０６によってサポートされるトランザクション・アプリケーション２０４などといった、ネットワーク・ベースの資源にアクセスすることができる。トランザクション・アプリケーション２０４は、ウェブ・ページ・サーバ、検索エンジン、ディレクトリ、または他の何らかのタイプのネットワーク・アクセス可能な資源を表している。トランザクション・インターフェース２０８は、通信プロトコル（例えばＴＣＰ／ＩＰやＨＴＴＰ）、データベース・エンジン言語サポート（例えばＳＱＬ）、または他のあらゆるインターフェース要件などといった、トランザクションを管理するのに必要とされるいかなるサポートをも提供する。図３に示すデータ処理システムの間の通信は、直接通信リンクを介しても、図１のネットワーク１０１などのネットワークを介してもよい。トランザクション・アプリケーション２０４によって提供される資源にアクセスするために、クライアント２００は、トランザクション・インターフェース２０８を介してトランザクション・アプリケーション２０４にトランザクション要求を送信し、ほとんどの場合、クライアント２００は、トランザクション・インターフェース２０８を介してトランザクション・アプリケーション２０４からトランザクション応答を続けて受信する。
【００２２】
システム２０６と同様のやり方で、システム２１０は、トランザクション・インターフェース２１４を介してトランザクション・アプリケーション２１２をサポートする。システム２０６とは対照的に、システム２１０は、ＴＰＤインターフェース２１８を介してトランザクション・パイプライン分解（ＴＰＤ）エージェント２１６もサポートする。ＴＰＤインターフェース２１８は、通信プロトコル（例えばＴＣＰ／ＩＰやＨＴＴＰ）、データベース・エンジン言語サポート（例えばＳＱＬ）、または他のあらゆるインターフェース要件などといった、ＴＰＤ動作を管理するのに必要とされるいかなるサポートをも提供する。ＴＰＤインターフェース２１８は、トランザクション・インターフェース２１４を含む資源の多くまたはすべてを含むことができることに留意されたい。例えば、こうしたインターフェースはそれぞれ、システム２１０上で実行されるオペレーティング・システム内の機能を含むことができ、オペレーティング・システムは、システム２１０上で実行中の処理のための通信機能などを提供することができる。さらに、分散処理環境では、資源のサポートは、その資源を使用している処理と必ずしも同じ場所に配置されず、例えば、リモート・プロシージャ・コールまたは類似の技術が、処理のための資源を取得するのに使用できることに留意されたい。
【００２３】
上述したように、本発明では、トランザクション・パイプライン全体に渡るトランザクション段階に関連づけられた情報を、エージェントを用いて取得する。一般に、エージェントとは、別のエンティティに代わって情報を集めまたはタスクを実施するソフトウェア・プログラムまたはそれに類似するエンティティのことである。本発明において、ＴＰＤエージェント２１６などのＴＰＤエージェントは、アプリケーションに代わって、トランザクション・パイプライン中の段階についてのメトリック・データを集めることに責任がある。ＴＰＤエージェントは、トランザクション・パイプライン全体に配置および／または分散される。好ましい実施形態では、監視することが望まれるトランザクション・パイプライン中に、各段階またはトランザクションに関連づけられた１つのＴＰＤエージェントが存在する。他の実施形態では、監視することが望まれるトランザクション・パイプライン中に、各トランザクションに関連づけられた少なくとも１つのＴＰＤエージェントが存在し得る。図３は、トランザクション・パイプラインに沿って展開された多数のＴＰＤエージェントを示す。例えば、システム２２０は、トランザクション・インターフェース２２４を介してトランザクション・アプリケーション２２２をサポートし、同時に、システム２２０は、ＴＰＤインターフェース２２８を介してＴＰＤエージェント２２６もサポートする。
【００２４】
本発明のＴＰＤエージェントは、ＴＰＤエージェントが展開されたときにそれと関連づけられたサーバおよび／またはアプリケーションによって経験される応答についての情報を集める。別の言い方をすると、本発明のＴＰＤエージェントは、それが展開されるトランザクション・パイプライン段階によって経験される応答についての情報を集める。本発明のＴＰＤエージェントの動作は、さらに別の言い方で説明することもできる。すなわち、ＴＰＤエージェントは、トランザクション・パイプラインの、隣接する少なくとも１つの下流段階からの応答に関連づけられたメトリック・データを集める。
【００２５】
システム・アナリストは、各トランザクション・パイプライン段階でメトリック・データを集めることを望む場合もある。その場合、ＴＰＤエージェントは、各トランザクション・パイプライン段階に関連づけられる。好ましい実施形態では、トランザクション・パイプライン段階に関連づけられたＴＰＤエージェントは、トランザクション・パイプライン段階を含むアプリケーションおよび／またはサーバが実行される同じシステムまたは装置上で実行される。好ましい実施形態では、ほとんどのＴＰＤエージェントが、トランザクション・パイプライン中の、対象となっているシステムまたはアプリケーションと同じ場所に配置されるが、トランザクション・パイプラインの第１の段階および最終段階は、特殊な場合を表すことに留意されたい。最終段階の場合の例を、図３に、システム２３２のトランザクション・インターフェース２３４を介してシステム２３２上のトランザクション・アプリケーション２３０へのトランザクションを開始するＴＰＤエージェント２２８で示すが、システム２３２は、ＴＰＤエージェントを含まない。「サーバ」という用語は、資源へのアクセスを提供する物理的なハードウェア装置も、資源へのアクセスを提供するソフトウェア・アプリケーションも指すことができ、非常に様々なハードウェア・エンティティまたはソフトウェア・エンティティあるいはそうしたエンティティの部分を含むことができることにも留意されたい。
【００２６】
システム２３２がＴＰＤエージェントを含まないことに関しては、様々な理由があり得る。１つの理由は、トランザクション・アプリケーション２３０が、ある特定のトランザクション・パイプラインまたはトランザクション・ストリーム中の最終トランザクション段階であると知られていることであろう。言い換えると、トランザクション・アプリケーション２３０は、追加の下流トランザクションを開始しないことが知られており、したがって、トランザクション・アプリケーション２３０が下流トランザクションからのどの応答も経験しないことが知られているので、ＴＰＤエージェントが展開されていない。別の理由は、システム・アナリストが、システム２２０より下流の追加トランザクション段階（図３には示していない）は必然的でも重要でもないと決定しているので、システム・アナリストが、システム２３２に対してＴＰＤエージェントの展開を要求していないからであろう。したがって、システム２３２よりさらに下流のトランザクションからのメトリック・データは、対象とならない。
【００２７】
第１段階の場合の例を、図３に、システム２４４上でそのＴＰＤインターフェース２４２を介して動作する一次ＴＰＤエージェント２４０で示す。システム２４４上のＴＰＤエージェントは、トランザクション・パイプライン中の第１のトランザクションを総合的に扱うので、「一次」ＴＰＤエージェントと呼ばれる。このようにして、ＴＰＤエージェントによって収集されるメトリック・データは、例えばクライアント装置２００を介して実際のユーザが経験するであろうエンド・ツー・エンドの応答時間とほぼ同じものであるべきなので、一次ＴＰＤエージェントは、仮想ユーザを表していると解釈することができる。トランザクション・パイプラインの性能の十分な統計的描写を、トランザクション・パイプライン全体に渡って他のＴＰＤエージェントによって集められるメトリック・データから生成することができるとシステム・アナリストが判定した場合、一次ＴＰＤエージェントは必ずしも必要とされないことに留意されたい。ただし、上述したように、一次ＴＰＤエージェントによって収集されるメトリック・データは、実際のユーザ経験に類似しているべきであり、したがって、一次ＴＰＤエージェントが本発明のほとんどの実装形態において展開される可能性が高い。一次ＴＰＤエージェントは、図３に示すような専用システムを必要としないことにも留意されたい。例えば、一次ＴＰＤエージェントは、ＴＰＤセントラル・サーバ２５０上でも、クライアント装置２５２上でも展開することもできる。
【００２８】
ＴＰＤセントラル・サーバ２５０は、必要な場合は、様々なバックエンド・サービス２５４と協同して、メトリック・データの収集ならびにＴＰＤエージェントの構成および制御をサポートする。例えば、本発明の譲受人であるインターナショナル・ビジネス・マシーンズから入手可能なＴｉｖｏｌｉ（商標）管理環境といった様々な分散基盤を、本発明をサポートするのに使うことができよう。ＴＰＤエージェントから収集されるメトリック・データは、ＴＰＤメトリック・データベース２５６に格納することができる。構成パラメータ２５８、スクリプト２６０、スケジュール２６２、または他の情報は、ＴＰＤエージェント構成データベース２６４に格納することができる。図１に示したように、こうしたデータベースおよび他のサービスは、ネットワーク全体に配置することもできる。
【００２９】
クライアント装置２５２は、ＴＰＤ制御アプリケーション２７０をサポートし、アプリケーション２７０は、スタンド・アロンのアプリケーションであっても、ウェブ・ブラウザ・タイプのプラットフォームを介してプラグイン、ＡｃｔｉｖｅＸ制御、ウェブ・ページ、または他の類似技術を使用するウェブ・ベースのアプリケーションであってもよい。ある特定のトランザクション・パイプラインの性能の監視を望むシステム・アナリストは、ＴＰＤエージェントの構成データベース２６４中の情報とともにＴＰＤ制御アプリケーション２７０を用いて、ある特定のトランザクション・パイプラインに対して１組のＴＰＤエージェントを構成し監視することができる。ＴＰＤエージェントが構成状況において動作する方式は、後でより詳しく説明する。
【００３０】
クライアント装置２５２は、ＴＰＤメトリック・データ分析アプリケーション２７２もサポートし、アプリケーション２７２は、スタンド・アロンのアプリケーションでも、ウェブ・ブラウザ・タイプのプラットフォーム上のアプリケーションでもよい。ＴＰＤエージェントが、ＴＰＤメトリック・データベース２５６に格納するために、ある特定のトランザクション・パイプラインについてのメトリック・データを提出した後、システム・アナリストは、ＴＰＤメトリック・データ分析アプリケーション２７２を用いてそのメトリック・データを調べて、トランザクション・パイプライン中の処理のボトルネックまたは他のタイプの非効率部分もしくは問題を見つけることができる。分散型システムがＴＰＤメトリック・データを収集する方式は、後でより詳しく説明する。
【００３１】
ここで図４を参照すると、フローチャートは、トランザクション・パイプライン用のＴＰＤメトリック・データを収集できるようにするために、ある特定のトランザクション・パイプラインがトランザクション・パイプラインの分解（ＴＰＤ）エージェントを有して構成されるための処理を示す。図３に関連して上述したように、ある特定のトランザクション・パイプラインの性能の監視を望むシステム・アナリストまたは同種のユーザは、ＴＰＤ制御アプリケーション２７０を用いて、ある特定のトランザクション・パイプラインに対して１組のＴＰＤエージェントを構成し監視することができる。本発明における構成処理の例を、図４に示す。
【００３２】
処理では始めに、トランザクション・パイプラインにグループ化され、あるいはパイプラインに互いに論理的に関連づけられる、１つまたは複数のトランザクション・サーバをユーザが選択する（ステップ３０２）。トランザクション・パイプライン識別子（ＩＤ）は、新しく作成されたトランザクション・パイプラインに関連づけることができ（ステップ３０４）、トランザクション・パイプラインＩＤは、所与のトランザクション・パイプラインに関連づけられた様々な動作のために用いることができる。あるいは、データベースや別のシステム・ソフトウェア・アプリケーション、例えばサーバを管理するｅコマースのソフトウェア・パッケージなど、他のソースから１組のトランザクション・サーバを取得することもできる。
【００３３】
各サーバは、トランザクション・パイプライン中の各サーバごとにトランザクション・サーバの組を介してループすることによって、以下のやり方で個別に処理される。組の中の次のサーバ識別が、処理されるトランザクション・パイプラインにおける現在のサーバとして選択される（ステップ３０６）。現在のサーバ用のリソース・タイプが決定され（ステップ３０８）、可能な様々な機構を介して、例えば、スクリプトを生成し、ユーザからの入力を介してスクリプトを構築し、またはＴＰＤエージェントの構成データベース２６４などのデータベースからスクリプトを取り出すことによって、リソース・タイプに適したＴＰＤエージェントのスクリプトが取得される（ステップ３１０）。スクリプトに適したスクリプト・パラメータが生成または取得され（ステップ３１２）、それとともに、適切なスクリプト実行スケジュールが生成または取得される（ステップ３１４）。
【００３４】
ネットワーク内で展開されていない場合、トランザクション・サーバに関連づけられる（および／またはそれと同じ場所に置かれる）ＴＰＤエージェントは、開始され、分散され、あるいはＴＰＤエージェントの動作の枠組みに適したやり方で展開される（ステップ３１６）。ＴＰＤエージェントは、電子的な分散を介して、コンピュータ・プログラムからの手作業でのインストールを介して、または他の何らかの方法を介して提供することができる。次いで、構成コマンドが、新しく展開されたＴＰＤエージェントに送信される（ステップ３１８）。スクリプト、スクリプト・パラメータ、およびスクリプト・スケジュールの準備および／または分配の順序および内容は、基底の技術の枠組みとともに変わり得ることに留意されたい。例えば、本発明の一実施形態では、ＴＰＤエージェントの動作行動は、必要な制御データ／構造を取得および／または生成する集中型アプリケーションを介して構成され、別の実施形態では、必要な制御データ／構造は、システム・アナリストまたは同種のユーザが、ＴＰＤエージェントと直接通信することを可能にすることによって取得され、そうすることによって、各ＴＰＤエージェントがその適切な初期構成の確保に責任をもつようになる。さらに別の実施形態では、ＴＰＤエージェントは、セントラル・サーバにログインし、構成情報および／または最新情報を照会することができる。
【００３５】
次いで、別のトランザクション・サーバが、構成中のトランザクション・パイプラインにおいて未構成のままであるかどうかについて、判定が行われる（ステップ３２０）。未構成のサーバがある場合、処理はステップ３０６に逆分岐して、別のトランザクション・サーバを構成する。未構成のサーバがない場合、構成処理は完了する。
【００３６】
ここで図５を参照すると、フローチャートは、ある特定のトランザクション・パイプライン用に、ＴＰＤメトリック・データを主として収集するための処理を示す。本発明のトランザクション・パイプラインの分解技術を用いて、ある特定のトランザクション・パイプラインを分析する構成処理の一部として、ＴＰＤメトリック・データを主として収集するスケジュールまたは時間的なメカニズムを、システム・アナリストまたは同種のユーザが要求し、あるいは決定することができる。ＴＰＤメトリック・データが、所定のスケジュールまたは機構に従って収集されるかどうかに関わらず、ＴＰＤメトリック・データは、図５に示す処理に関連して説明するように、ＴＰＤメトリック・データの分析が起こり得るように収集される必要がある。
【００３７】
データ収集処理では始めに、ＴＰＤメトリック・データ収集コマンドが、所与のトランザクション・パイプラインに沿ってセントラル・サーバからＴＰＤエージェントに送信される（ステップ４０２）。セントラル・サーバは、図４に関連して上述したように、トランザクション・パイプライン用の構成処理中に決定された、所与のトランザクション・パイプラインに対する１組のＴＰＤエージェントの識別およびアドレス可能度についての情報を有する。セントラル・サーバは、ＴＰＤメトリック・データ収集コマンドに応答してＴＰＤメトリック・データを受信する（ステップ４０４）。特定のトランザクション・パイプライン中の様々なＴＰＤエージェントからのＴＰＤメトリック・データは、トランザクション・パイプラインの構成中に各ＴＰＤエージェントに予め提供された共通トランザクション・パイプライン識別子を用いて相互に関連づけることができる（ステップ４０６）。相互に関連づけられたＴＰＤメトリック・データは次いで、後で分析するために格納することができ（ステップ４０８）、データ収集処理は完了する。本発明において代替的なデータ収集シーケンスを使用することもできることに留意されたい。こうしたシーケンスの１つを、図９および図１０に関連して後で説明する。
【００３８】
ここで図６を参照すると、フローチャートは、ある特定のトランザクション・パイプライン用に、ＴＰＤメトリック・データを主として分析するための処理を示す。図３に関連して上述したように、システム・アナリストまたは同種のユーザは、ある特定のトランザクション・パイプラインについてのメトリック・データをＴＰＤエージェントが集めた後、トランザクション・パイプラインにおける処理のボトルネックまたは他のタイプの非効率部分や問題を見つけるために、図６に示す処理に関連して説明するように、ＴＰＤメトリック・データ分析アプリケーションを利用することができる。
【００３９】
処理では始めに、データ分析アプリケーションでユーザの分析要求を受信する（ステップ５０２）。好ましくは、ある特定のトランザクション・パイプラインに関連するデータを相互に関連づけるために前処理されている、ＴＰＤエージェントから集められたＴＰＤメトリック・データが取り出される（ステップ５０４）。ＴＰＤメトリック・データは次いで、様々な統計的指示のために分析され（ステップ５０６）、次いで、統計的分析は、ユーザに提示され（ステップ５０８）、そうすることによって、後処理活動を終了する。
【００４０】
ここで図７を参照すると、フローチャートは、ある特定のトランザクション・パイプラインの特定の段階用のＴＰＤエージェントが、ＴＰＤセントラル・サーバからコマンドを受信し処理するための処理を示す。図３に関連して上述したように、ＴＰＤエージェントは、ＴＰＤインターフェースを介して動作サポートを伝達し受信する。これについて、図７に示す処理に関連して説明する。図示していないが、ＴＰＤエージェントは、何らかの形のイベント・ループを介してデータおよびコマンドを受信し処理すると仮定することができる。
【００４１】
処理では始めに、ＴＰＤエージェントが、ＴＰＤセントラル・サーバからコマンドを受信し（ステップ６０２）、次いで、どのタイプのコマンドまたは指示が受信されたかを判定する。受信したコマンドが構成コマンドである場合（ステップ６０４）、構成コマンドは、解析されて（ステップ６０６）、１つまたは複数のスクリプト、スクリプト・パラメータ、およびスクリプト実行スケジュールを抽出し格納する（ステップ６０８）。構成コマンドが受信されるとき、受信したスクリプト実行スケジュールに従ってソフトウェア・イベント・タイマの設定などの追加処理を実施することができ（ステップ６１０）、そうすることによって、この特定のコマンドの処理を完了する。
【００４２】
構成コマンドがステップ６０４で受信されていない場合、ＴＰＤエージェントがデータ収集コマンドを受信しているかどうかの判定が行われる（ステップ６１２）。受信している場合、データ収集コマンドは、必要であり得るどのパラメータに対しても解析される（ステップ６１４）。例えば、ＴＰＤエージェントは、複数のトランザクション・パイプラインに対するＴＰＤメトリック・データの収集をサポートして動作することができる。その場合、ＴＰＤエージェントは、異なる下流トランザクションからのサーバによって経験されるトランザクション応答についての情報を集めようと試みる。言い換えると、ＴＰＤエージェントに関連づけられるサーバは、複数の識別可能トランザクション・パイプラインに論理的に関連づけることができる。したがって、ＴＰＤエージェントは、多数のトランザクション・パイプライン用に多数の動作を実施するように構成することもできる。データ収集コマンドが受信されると、ＴＰＤエージェントは、エージェントがコンパイルしたＴＰＤメトリック・データのどの組がデータ収集コマンドに応答して戻されるべきか決定する必要があり、この目的のために、データ収集コマンドからトランザクション・パイプラインＩＤを取り出すことも可能である。トランザクション・パイプラインＩＤの判定に応答して、ＴＰＤエージェントは、トランザクション・パイプラインＩＤに関連づけられたＴＰＤメトリック・データを取り出し（ステップ６１６）、このＴＰＤメトリック・データをＴＰＤセントラル・サーバに送信し（ステップ６１８）、そうすることによって、データ収集コマンドの処理を完了する。
【００４３】
データ収集コマンドがステップ６１２で受信されていない場合、他の何らかのタイプのＴＰＤコマンドまたは指示が受信されているかどうかの判定が行われ（ステップ６２０）、受信されている場合、適切な処理が実施される（ステップ６２２）。例えば、ＴＰＤエージェントは、トランザクション・パイプラインの監視を中央の位置、例えばＴＰＤ構成アプリケーションからシャットダウンできるようにするために、エージェント自体を終了させるコマンドを受信することができる。
【００４４】
上述したように、ＴＰＤエージェントは、複数のトランザクション・パイプラインに対するＴＰＤメトリック・データの収集をサポートして動作することができる。言い換えると、ＴＰＤエージェントは、ＴＰＤエージェントの異なる多数の組に論理的にグループ化することができ、ＴＰＤエージェントの異なる各組は、異なるトランザクション・パイプラインを監視する。その場合、ＴＰＤエージェントは、異なるトランザクション・パイプラインにそれぞれが関連づけられるトランザクション・パイプライン識別子を用いてスクリプトを管理する。したがって、所与のどのときでも、多数のＴＰＤエージェントは、多数のトランザクション・パイプラインを分解するための動作をサポートする多数のスクリプトおよびトランザクション・パイプライン識別子を有する、ネットワーク内の一次ＴＰＤエージェントとして構成することができることに留意されたい。一実施形態では、ＴＰＤエージェントは、第１のトランザクション・パイプラインに関連して非一次ＴＰＤエージェントとして構成される場合があり、第２のトランザクション・パイプラインに関連して一次ＴＰＤエージェントとして構成される場合もある。その場合、ある特定のトランザクション・パイプライン用のＴＰＤエージェントに送信される構成情報は、ＴＰＤエージェントが、その特定のトランザクション・パイプラインに関連して一次ＴＰＤエージェントとして作用するべきかどうかを示す。
【００４５】
ここで図８を参照すると、フローチャートは、ある特定のトランザクション・パイプラインの特定の段階用のＴＰＤエージェントがＴＰＤメトリック・データを集め格納するための処理を示す。図３に関連して上述したように、ＴＰＤエージェントは、トランザクション・パイプライン中で、関連づけられたサーバによって経験される応答を示すメトリック・データを集めようと試みる。ＴＰＤエージェントは、ＴＰＤエージェントによって与えられたタイムスケジュール通りに実行されるスクリプトの使用といった様々な機構を介して構成することができる。図７に関連して上述したように、ＴＰＤエージェントは、構成コマンド中にその実行スケジュールを有するスクリプトを受信することができ、それに応答して、ＴＰＤエージェントは、タイマ満了イベントを生成するソフトウェア・タイマをセットすることができ、そうすることによって、ＴＰＤエージェントは、ＴＰＤメトリック・データを集める特定の動作がいつ実行されるべきか決定することができる。図８に示す処理は、そうした処置の一部を示す。
【００４６】
処理では始めに、タイマ、すなわち関連づけられたスクリプト実行スケジュールに従ってＴＰＤエージェントが予めセットしたタイマ、が満了したかどうか判定する（ステップ７０２）。タイマが満了していない場合、ＴＰＤエージェント用の実行スレッドは、ループしてタイマの満了を調べ続けることができる。あるいは、基底システムによってサポートされる場合、実行スレッドは、ある特定の期間スリープすることができ、スリープ・モードからの覚醒は、所望の期間が満了したことを信号通知する。
【００４７】
いずれの場合でも、所望の待機期間が経過した後、ＴＰＤエージェントは、例えばトランザクション・パイプライン識別子を介して、どのトランザクション・パイプラインがタイマに関連づけられているか判定する（ステップ７０４）。というのは、ＴＰＤエージェントは、多数のトランザクション・パイプラインに関連する動作をサポートすることができるからである。ＴＰＤエージェントは、トランザクション・パイプライン識別子を用いて適切なスクリプトを取り出し（ステップ７０６）、スクリプト・パラメータに従ってそのスクリプトを実行する（ステップ７０８）。ＴＰＤメトリック・データはスクリプトの実行を介して生成され（ステップ７１０）、生成されたＴＰＤメトリック・データはＴＰＤエージェントによって格納され（ステップ７１２）、そうすることによって、処理を完了する。
【００４８】
ここで図９を参照すると、フローチャートは、ＴＰＤエージェントが、図８、具体的にはステップ７１０で言及したＴＰＤメトリック・データを取得するための処理をさらに詳細に示す。処理では始めに、スクリプトが実行を始めた現在のシステム時間の値を示すタイムスタンプを取得し記憶する（ステップ８０２）。スクリプトは翻訳され、その結果様々な動作が開始され、具体的には、ＴＰＤエージェントによって観察されているトランザクション・パイプライン中の下流サーバに送信される何らかのタイプのトランザクションの開始を引き起こす（ステップ８０４）。このようにして、ＴＰＤエージェントは下流サーバへのクライアントとして作用する。ある程度後の時点で応答が期待されるので、ＴＰＤエージェントはトランザクション応答を待機する（ステップ８０６）。時間切れタイマまたはスリープ中の実行スレッドの使用を含む様々な待機機構を利用することができる。
【００４９】
エラーが起こらないと仮定すると、応答が受信され、現在のシステム時間値を示す現在のタイムスタンプが取得される（ステップ８０８）。現在のシステム時間値と記憶されているタイムスタンプの間の差が計算され記憶される（ステップ８１０）。次いで、ＴＰＤメトリック・データ・レコードが生成され（ステップ８１２）、計算された時間差がＴＰＤメトリック・データ・レコードに格納されて、ＴＰＤエージェントによってトランザクションへの応答を受信するのに必要とされた時間量を示す。そうすることが適切な場合、応答メッセージ自体からのデータや、ＴＰＤエージェントが実行されているシステムから集められたデータといった、他のデータをＴＰＤメトリック・データ・レコードに格納することもできる。
【００５０】
ここで図１０を参照すると、ブロック図は、ＴＰＤメトリック・データが、セントラル・サーバに転送されるのに先立って、ＴＰＤエージェントから一次ＴＰＤエージェントに湧き上がる際のデータ収集処理を示す。上述したように、様々なデータ収集技術を利用することができる。一実施形態では、ＴＰＤエージェントは、所定のスケジュールおよび／または構成パラメータに従って、セントラル・サーバにＴＰＤメトリック・データを提出することもできる。別の実施形態では、各ＴＰＤエージェントはデータ収集コマンドを受信するのを待ち、データ収集コマンドを受信すると、ＴＰＤエージェントは、データ収集コマンドを送信したエンティティへの応答として、ＴＰＤメトリック・データを戻す。ある場合には、データ収集コマンドは、セントラル・サーバから受信される場合がある。別の場合には、データ収集コマンドは、図１０に示すように一次ＴＰＤエージェントにおいて発生される場合がある。
【００５１】
ＴＰＤエージェント９０２は、トランザクション・パイプライン中の他のＴＰＤエージェント９０４〜９０６に対して、「一次」ＴＰＤエージェントとして作用する。適切であると判定されると、一次ＴＰＤエージェントは、ＴＰＤエージェント９０４にデータ収集コマンド９０８を発する。それに応答して、ＴＰＤエージェント９０４は、その下流ＴＰＤエージェントにデータ収集コマンドを転送する。エラーがないと仮定すると、ある特定のトランザクション・パイプラインに対する１組のＴＰＤエージェント中の最後のＴＰＤエージェントを表すＴＰＤエージェント９０６が最終的にデータ収集コマンドを受信する。それに応答して、ＴＰＤエージェント９０６は、要求されたトランザクション・パイプラインに対するそのＴＰＤメトリック・データを、データ収集コマンドを送信した上流ＴＰＤエージェントに送信する。ある特定のＴＰＤエージェントの障害が、ＴＰＤメトリック・データを集める能力を完全に損なうことがないようにするために、ＴＰＤエージェントは、ＴＰＤメトリック・データが戻るのを無期限に待たないようにウォッチドッグ・タイマをセットすることもできる。
【００５２】
ＴＰＤエージェント９０４は最終的に、その下流ＴＰＤエージェントからＴＰＤメトリック・データを受信し、エージェント９０４のＴＰＤメトリック・データを付加し、データ収集コマンドを発したＴＰＤエージェント、すなわちＴＰＤエージェント９０２に、ＴＰＤメトリック・データ応答９１０としてＴＰＤメトリック・データを送信する。ＴＰＤエージェント９０２は、エージェント９０２のＴＰＤメトリック・データを付加した後、蓄積されたＴＰＤメトリック・データをセントラル・サーバ９１２に送信し、サーバ９１２は、分析機能をサポートしてこのデータを格納する。
【００５３】
セントラル・サーバにＴＰＤメトリック・データを直接送信する他の方法とは対照的に、図１０は、ＴＰＤメトリック・データがトランザクション・パイプラインの最終段階からトランザクション・パイプラインの第１段階に「湧き上がる」方法を示しているが、この方法は、様々な理由により有利な場合がある。例えば、トランザクション・パイプラインに沿ったＴＰＤエージェントは、一次ＴＰＤエージェントでも、おそらく各ＴＰＤエージェントでも、任意選択的に、下流ＴＰＤエージェントから受信されるＴＰＤメトリック・データ、およびＴＰＤエージェントの所で格納されるＴＰＤメトリック・データに対して、何らかのタイプのデータ相関／分析を実施することができる。このようにして、ＴＰＤの枠組みは、ＴＰＤメトリック・データを相関させ／分析する際の負担全体が、１つのエンティティ、例えばセントラル・サーバにかからないように、何らかの分散処理を遂行することができる。
【００５４】
ここで図１１を参照すると、ブロック図は、本発明の実施形態による、トランザクション・パイプラインに沿った１組のＴＰＤエージェントを用いてＴＰＤメトリック・データが集められる例を示す。図１１は、商業的環境、具体的にはその情報基盤にあるそのトランザクション・パイプラインの１つを分解したいと望む銀行、において本発明が使用されるシナリオを示す。
【００５５】
ＴＰＤエージェント１００２（この場合、一次ＴＰＤエージェント）が計算装置１００４上で展開されており、計算装置１００４は、サーバ１００６をテストするために特に選択されている装置である。というのは、計算装置１００４は、サーバ１００６から物理的に遠く離れて（テキサス対カリフォルニア）配置されているからである。したがって、計算装置１００４は、平均的な顧客によって、長距離を超えて銀行のシステムにアクセスするのに使われる一般的なクライアント・マシンを正確に表すことができる。スクリプト１００８は、観察されているトランザクション・パイプライン中の他の所で使われていた同一の識別子と相互に関連づけることができるＴＰＤパイプライン識別子を用いて、ＴＰＤエージェント１００２上に構成されている。この例では、スクリプト１００８は、カリフォルニアにある銀行のコンピュータ・システムにアクセスしログインする３つのタスクまたはステップを含む。第１のステップでは、オンラインでの顧客による銀行取引用の、銀行のホームページにブラウザを向ける。第２のステップでは、ユーザ名およびパスワードを使ってオンライン顧客銀行取引システムにログインする。第３のステップでは、オンライン顧客銀行取引システムからログアウトし、そうすることによって利用明細を提示する。スクリプト１００８は１５分おきに繰り返されるように構成されている。
【００５６】
ＴＰＤエージェント用に、より複雑なスクリプトを構成することもできることに留意されたい。例えば、スクリプトは、直前のスクリプト動作に応答してＴＰＤエージェントによって受信され得る特定のデータの値に基づく、条件付きの処置を含むこともできる。したがって、ＴＰＤエージェントによって開始されるトランザクションの数は必ずしも所定の数に限定されない。
【００５７】
ＴＰＤエージェント１０１０は、オンライン銀行取引サービスを求める、銀行の顧客の要求を受信する計算装置上で展開されており、計算装置は、この例ではウェブ・アプリケーション・サーバ１００６である。ＴＰＤエージェント１０１０は、スクリプト１００８と同じトランザクション・パイプライン識別子を含むスクリプト１０１２を有して構成されている。この共通トランザクション・パイプライン識別子により、各エージェントからの情報が、同じトランザクション・パイプラインから発せられたものとして相互に関連づけらることが可能になる。スクリプト１０１２は、口座情報を求めるデータベース照会をスクリプト１００８中で構成されているのと同じユーザ名およびパスワードを用いて生成する、ただ１つのステップを含む。スクリプト１０１２は３分おきに繰り返されるように構成されている。
【００５８】
銀行の計算システムにおけるセントラル・サーバ１０１４は、ＴＰＤエージェント１００２および１０１０を作成または展開するために、そしてこうしたＴＰＤエージェントを、それぞれの対応するスクリプトを有して構成するために用いられ、これらは以下の様式で用いられる。ＴＰＤエージェント１０１０は、３分おきにスクリプト１０１２を実行し、スクリプト１０１２は、与えられたユーザ名およびパスワードを用いてデータベース１０１６へのデータベース接続を作成し、次いで、利用明細１０２０を取り出すＳＱＬステートメント１０１８を発行する。利用明細１０２０は、一般的なオンライン銀行取引の顧客に表示するためにウェブ・ページ応答用にフォーマットされた同じ利用明細データを含む。ＴＰＤエージェント１０１０は、データベース要求を満たすのに必要とされる時間の長さを監視する。ＴＰＤエージェント１０１０は、データベース１０１６の監視に適した他のＴＰＤメトリック情報をコンパイルすることもできる。ＴＰＤエージェント１０１０は、任意選択的に、コンパイルされるＴＰＤメトリック・データに対して何らかの統計的分析を実施することもできる。
【００５９】
ＴＰＤエージェント１００２は、１５分おきにスクリプト１００８を実行し、スクリプト１００８は、ホームページ要求を生成し、オンライン銀行取引サービスにログインし、次いでログアウトする。それに応答して、利用明細ウェブ・ページが受信される。入力データ・ストリーム１０２２および出力データ・ストリーム１０２４を図１１に示す。ＴＰＤエージェント１００２は、要求を満たすのに必要とされる時間の長さを個別にまたはまとめて監視し、ＴＰＤエージェント１００２は、要求に関連した他の適切なＴＰＤメトリック・データを集めることができる。ＴＰＤエージェント１００２は、任意選択的に、編集されるＴＰＤメトリック・データに対して何らかの統計的分析を実施することもできる。
【００６０】
図１１に示す例において、一次ＴＰＤエージェントは、ＴＰＤメトリック・データ収集処理を開始し、データを収集し、そのデータを、図１０に関連して上で説明したのと同様のやり方でセントラル・サーバに送信することに責任がある。図１１の例において、一次ＴＰＤエージェントは、トランザクション・パイプライン用のスクリプトをそれぞれ実行した後、ある特定のトランザクション・パイプラインに対してＴＰＤメトリック・データ収集処理を開始する。一次ＴＰＤエージェント１００２は、その制御インターフェース（図示せず）を介してＴＰＤエージェント１０１０にＴＰＤメトリック・データ収集要求１０２６を送信する。ＴＰＤエージェント１０１０は、ＴＰＤメトリック・データ収集要求が転送されるべき下流ＴＰＤエージェントがあるかどうか判定する。ＴＰＤエージェント１０１０は、このような下流ＴＰＤエージェントがないと判定するので、一次ＴＰＤエージェント１００２にＴＰＤメトリック・データ応答１０２８を戻す。応答を受信した後、一次ＴＰＤエージェント１００２は、受信したＴＰＤメトリック・データにそのＴＰＤメトリック・データを組み込み、次いで、メッセージ１０３０としてこのＴＰＤメトリック・データをセントラル・サーバ１０１４に送信することができる。この例では、ＴＰＤメトリック・データは、直前の１５分間に対するＴＰＤエージェント１００２からのただ１組のＴＰＤメトリック・データと、直前の１５分間に対するＴＰＤエージェント１０１０からの５組のＴＰＤメトリック・データとを含む。
【００６１】
ここで図１２を参照すると、ブロック図は、ネットワークにおけるトランザクション・パイプラインを表す、順序づけられた１組のトランザクションに沿った、ある特定のネットワーク・トポロジにおける１組のノードを示す。図１２は、トランザクション・パイプラインにおける非効率部分またはボトルネックを判定するために１組のＴＰＤエージェントから取得されるＴＰＤメトリック・データを使うことができる方法、を説明する単純なネットワークを提供する。ノード１１０１〜１１０８は、受信された要求に応答してトランザクションが完了されるネットワーク内のノードを表す。図１２に示す例において、トランザクションの流れが厳密には線形でないので、このトランザクション・パイプラインは、より適切にはトランザクション・ウェブと呼ぶことができる。図には示さないが、ＴＰＤエージェントは各ノードで構成されると仮定することができる。
【００６２】
元のトランザクション要求１１１０を完了するには、ある期間に渡る多数のトランザクションの完了が必要とされる。トランザクションは、この例では、以下のようにトランザクション・ウェブ中を流れる。ノード１１０２は、トランザクション１１１０を受信し、ノード１１０３へのトランザクション１１１１を開始し、ノード１１０３は次いで、ノード１１０４へのトランザクション１１１２を開始する。ノード１１０４はトランザクション１１１３を開始し、トランザクション１１１３が完了した後、ノード１１０４はトランザクション１１１４を開始し、トランザクション１１１４が完了した結果トランザクション１１１１が完了する。ノード１１０２は次いでトランザクション１１１５を開始し、そうすることによってノード１１０６にトランザクション１１１６を開始させ、トランザクション１１１６が完了した結果トランザクション１１１５が完了する。ノード１１０２は次いでトランザクション１１１７を開始し、そうすることによってノード１１０７にトランザクション１１１８を開始させ、トランザクション１１１８が完了した結果トランザクション１１１７が完了する。
【００６３】
ＴＰＤメトリック・データは、平均的なトランザクション完了時間の基準（または類似のメトリクス）をまとめることができるように、ある程度の期間に渡って収集されると仮定する。多数のＴＰＤエージェントからの履歴ＴＰＤメトリック・データにおける統計的変化を長期間に渡って監視することにより、トランザクションの非効率部分またはボトルネックを突き止めることができる。本発明を用いると、ＴＰＤメトリック・データをトランザクション・パイプラインまたはトランザクション・ウェブの各段階で収集することができるので、問題を引き起こしている特定の段階を識別することができる。
【００６４】
図１２に示す例では、トランザクション１１１０〜１１１８に対する１組の平均完了時間が格納され、次いで比較に使われる。完了時間がその履歴平均から外れると、システム・アナリストは、その変化を警告されることも可能である。各トランザクション・パイプライン段階でメトリック・データを集めることができるので、どのノードが問題を引き起こしているか判定する際、トランザクションの間の依存を考慮することが可能になる。ノード１１０８での処理上のボトルネックによってトランザクション１１１１〜１１１４、１１１７、および１１１８のための完了時間が長くなるが、ノード１１０５での処理上のボトルネックの場合、トランザクション１１１１〜１１１３のための完了時間のみが長くなる。図３に関連して述べた分析アプリケーションでは、こうした統計的変化は、アイコンや色分けされたインディケータといった様々な技術を用いて図表で表示することができよう。
【００６５】
上で行った詳細な説明を鑑みると、本発明の利点が明らかであろう。トランザクション・パイプラインについての情報を集めるいくつかの解決法が従来技術において提案されてきた。ある手法では、元の要求に対して起こる処理を追跡するために、トランザクション・パイプラインに沿った資源の使用を伴うマーカを含む何らかの形のトレース・ヘッダを使うことを提案している。この手法は、元の要求のためのデータ・パケットがトランザクション・パイプラインに沿って流れるとき、あるアプリケーション・プロトコルから別のアプリケーション・プロトコルにマーカをマッピングしまたはコピーすることができる、アプリケーション層を必要とするので、実装するのが困難な場合がある。例えば、識別マーカを含むカスタム・ヘッダをＨＴＴＰ要求に追加し、そのＨＴＴＰ要求を受信するウェブ・サーバが次いでカスタム・ヘッダを認識してもよい。しかし、ウェブ・サーバがバックエンド・データベースへの要求を行う場合、カスタム・ヘッダからの識別マーカはデータベース要求を伴うことになり、以下も同様となる。次いで、バックエンド・データベースが何らかの形の資源を使用する場合、この資源への要求も識別マーカを伴うべきである。このタイプの追跡能力の提供は他のどのトランザクション・パイプライン関与物においても多大な装備を必要とする。
【００６６】
別の解決法が、本特許出願と譲受人が共通であり参照によって本明細書に組み込まれている米国特許第６，１０８，７００号に開示されている。この参照特許は、トランザクション・パイプラインの各段階で、またはトランザクション・パイプラインの段階の間の分岐点で、起こり得るイベントを定義する方法を教示し、こうしたイベントについての情報は、追跡され、次いで他のイベントに互いに関連づけられ、そうすることによって、元の要求のために使われた資源を決定することができる。トランザクション・パイプライン全体において単一の要求に対する資源消費を追跡する能力は、特定の状況ではいくつかの利点を有するが、追跡を行うための装備に対する多大な労力は、生成される情報の重要性および非常に詳細なトレース情報の必要性と比較して検討する必要がある。
【００６７】
従来技術とは対照的に、本発明では、トランザクション・パイプラインに渡る内部装備なしでよい。元の要求によって実際に消費される資源の使用を追跡するのではなく、本発明では、トランザクション・パイプライン中の各トランザクション段階で一組の統計的な情報を取り込む。統計的情報は、トランザクション・パイプラインのある特定の部分のある特定の期間に対する動作行動を記述する。トランザクション・パイプラインの各段階におけるエージェントは、トランザクション・パイプラインの所与の段階に適した性能メトリクスを自律的に取得し、メトリック情報は定期的に報告される。トランザクション・パイプラインにおける各段階からメトリック・データを収集することによって、トランザクション・パイプラインの性能の細かい分析を実施することができ、細かい分析によって示される乏しい性能特性を示していたトランザクション・パイプライン中のどの段階でも、資源を増大することによってユーザのエンド・ツー・エンドの応答時間を改善することができる。
【００６８】
本発明を、完全に機能するデータ処理システムの状況で説明したことに留意されたい。本発明の処理の一部は、配布の実行に実際に使用される信号伝達媒体の特定のタイプに関わらず、命令の形または同様の手段でコンピュータ可読媒体および他の様々な形で配布できることが、当業者には理解されよう。コンピュータ可読媒体の例には、ＥＥＰＲＯＭ、ＲＯＭ、テープ、紙、フロッピー・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、およびＣＤ−ＲＯＭといった媒体と、デジタルおよびアナログ通信リンクといった伝送タイプの媒体とがある。
【００６９】
例示および説明の目的で本発明の説明を行ったが、この説明は、網羅的なものではなく、開示した実施形態に限定されることを意図したものではない。多くの変更形態および変形形態が当業者には明らかであろう。本明細書の実施形態は、本発明の原理およびその実際の適用例を最もよく説明するために、また、企図される他の使用に適するであろう様々な修正を伴う様々な実施形態を実装するために他の当業者が本発明を理解できるように、選択されたものである。
【図面の簡単な説明】
【００７０】
【図１】本発明を実装することができる一般的な分散データ処理システムを示す図である。
【図２】本発明を実装することができるデータ処理システムにおいて使用することができる一般的なコンピュータ・アーキテクチャを示す図である。
【図３】セントラル・サーバと協同して動作する、トランザクション・パイプラインに沿った準自律型または自律型エージェントの基盤を備えるデータ処理システムからなるネットワークを示すブロック図である。
【図４】トランザクション・パイプライン用のＴＰＤメトリック・データを収集できるようにするために、ある特定のトランザクション・パイプラインがトランザクション・パイプラインの分解（ＴＰＤ）エージェントを有して構成されるための、処理を示すフローチャートである。
【図５】ある特定のトランザクション・パイプライン用に、ＴＰＤメトリック・データを主として収集するための、処理を示すフローチャートである。
【図６】ある特定のトランザクション・パイプライン用に、ＴＰＤメトリック・データを主として分析するための、処理を示すフローチャートである。
【図７】ある特定のトランザクション・パイプラインの特定の段階用のＴＰＤエージェントが、ＴＰＤセントラル・サーバからコマンドを受信し処理するための、処理を示すフローチャートである。
【図８】ある特定のトランザクション・パイプラインの特定の段階用のＴＰＤエージェントがＴＰＤメトリック・データを集め格納するための処理を示すフローチャートである。
【図９】ＴＰＤエージェントが図８で言及したＴＰＤメトリック・データを取得するための処理をさらに詳細に示すフローチャートである。
【図１０】ＴＰＤメトリック・データが、セントラル・サーバに転送されるのに先立ってＴＰＤエージェントから一次ＴＰＤエージェントに湧き上がる際の、データ収集処理を示すブロック図である。
【図１１】本発明の実施形態による、トランザクション・パイプラインに沿った１組のＴＰＤエージェントを用いてＴＰＤメトリック・データが集められる例を示すブロック図である。
【図１２】ネットワークにおけるトランザクション・パイプラインを表す、順序づけられた１組のトランザクションに沿った、ある特定のネットワーク・トポロジにおける１組のノードを示すブロック図である。
【図１】
2005530260.tif 000003
【図２】
2005530260.tif 000004
【図３】
2005530260.tif 000005
【図４】
2005530260.tif 000006
【図５】
2005530260.tif 000007
【図６】
2005530260.tif 000008
【図７】
2005530260.tif 000009
【図８】
2005530260.tif 000010
【図９】
2005530260.tif 000011
【図１０】
2005530260.tif 000012
【図１１】
2005530260.tif 000013
【図１２】
2005530260.tif 000014
【国際調査報告】
2005530260.tif 000015
2005530260.tif 000016
2005530260.tif 000017