(57)【特許請求の範囲】
【請求項１】
コンピュータ間において第１のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第２のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得する照合部と、
該第２のアクセスにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出する不良モデル抽出部と、
前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する部分トランザクション抽出部と、
を備えることを特徴とする分析装置。
【請求項２】
コンピュータ間で送受されるメッセージを収集する収集部と、
第１のコンピュータから第２のコンピュータへ第１のアクセスがあった場合に収集された第１のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第１の処理時間帯を解析し、該第１の処理時間帯に内包される第２の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第１の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第２の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、１つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとするモデル生成部と、
前記第１のアクセスがあった場合に得られる第１のアクセス先の所在情報と第１のアクセス時刻とを含む第１のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成する対応情報生成部と、
前記第１のコンピュータから前記第２のコンピュータへ第２のアクセスがあった場合に収集された第２のメッセージと、前記トランザクションモデルとを照合し、該第２のメッセージから該トランザクションモデルに合致するトランザクションを取得する照合部と、
前記照合の結果、前記第２のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得する不一致メッセージ取得部と、
前記第２のアクセスがあった場合に得られる第２のアクセス先の所在情報と第２のアクセス時刻とを含む第２のアクセスログと前記対応情報とから、該第２のアクセスにおいて実行されたトランザクションモデルを抽出し、該第２のアクセスにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出する不良モデル抽出部と、
前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第３の処理時間帯を解析し、該第３の処理時間帯に内包される第４の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第３の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第４の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築する仮親子関係構築部と、
前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索する部分トランザクション探索部と、
前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出する残りメッセージ抽出部と、
前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する不良トランザクション確定部と、
を備えることを特徴とする分析装置。
【請求項３】
前記部分トランザクション探索部は、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションモデルに一致したメッセージのうち、該メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出し、該部分トランザクション候補の中から、該部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を前記部分トランザクションとして選択する
ことを特徴とする請求項２に記載の分析装置。
【請求項４】
前記残りメッセージ抽出部は、
前記部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する
ことを特徴とする請求項３に記載の分析装置。
【請求項５】
前記不良トランザクション確定部は、前記第１のコンピュータから前記第２のコンピュータへのアクセスの度に収集されるメッセージを用いて、収集したメッセージ毎に得られる、前記部分トランザクションと前記残りメッセージについて、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率の平均を算出し、該呼び出し確率の平均が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
ことを特徴とする請求項２に記載の分析装置。
【請求項６】
コンピュータに、
コンピュータ間において第１のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第２のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得し、
該第２のアクセスにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出し、
前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する
処理を実行させる分析プログラム。
【請求項７】
コンピュータに、
コンピュータ間で送受されるメッセージを収集し、
第１のコンピュータから第２のコンピュータへ第１のアクセスがあった場合に収集された第１のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第１の処理時間帯を解析し、該第１の処理時間帯に内包される第２の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第１の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第２の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、１つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとし、
前記第１のアクセスがあった場合に得られる第１のアクセス先の所在情報と第１のアクセス時刻とを含む第１のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成し、
前記第１のコンピュータから前記第２のコンピュータへ第２のアクセスがあった場合に収集された第２のメッセージと、前記トランザクションモデルとを照合し、該第２のメッセージから該トランザクションモデルに合致するトランザクションを取得し、
前記照合の結果、前記第２のメッセージから、前記トランザクションモデルに合致する
トランザクションを構成するメッセージ以外の不一致メッセージを取得し、
前記第２のアクセスがあった場合に得られる第２のアクセス先の所在情報と第２のアクセス時刻とを含む第２のアクセスログと前記対応情報とから、該第２のアクセスにおいて実行されたトランザクションモデルを抽出し、該第２のアクセスにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出し、
前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第３の処理時間帯を解析し、該第３の処理時間帯に内包される第４の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第３の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第４の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築し、
前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索し、
前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出し、
前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理を実行させる分析プログラム。
【請求項８】
コンピュータが実行する分析方法であって、
前記コンピュータは、
コンピュータ間において第１のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第２のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得し、
該第２のアクセスにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出し、
前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する
処理を実行する分析方法。
【請求項９】
コンピュータが実行する分析方法であって、
前記コンピュータは、
コンピュータ間で送受されるメッセージを収集し、
第１のコンピュータから第２のコンピュータへ第１のアクセスがあった場合に収集された第１のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第１の処理時間帯を解析し、該第１の処理時間帯に内包される第２の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第１の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第２の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、１つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとし、
前記第１のアクセスがあった場合に得られる第１のアクセス先の所在情報と第１のアクセス時刻とを含む第１のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成し、
前記第１のコンピュータから前記第２のコンピュータへ第２のアクセスがあった場合に収集された第２のメッセージと、前記トランザクションモデルとを照合し、該第２のメッセージから該トランザクションモデルに合致するトランザクションを取得し、
前記照合の結果、前記第２のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得し、
前記第２のアクセスがあった場合に得られる第２のアクセス先の所在情報と第２のアクセス時刻とを含む第２のアクセスログと前記対応情報とから、該第２のアクセスにおいて実行されたトランザクションモデルを抽出し、該第２のアクセスにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出し、
前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第３の処理時間帯を解析し、該第３の処理時間帯に内包される第４の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第３の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第４の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築し、
前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索し、
前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出し、
前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理を実行する分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ネットワーク上で伝達されるメッセージについての分析処理技術に関する。
【背景技術】
【０００２】
最近のＩＴ（情報通信技術）を利用したコンピュータシステムは大規模かつ複雑な構成であることが多い。例えば、オンラインバンキングの入金や振込み処理など、各種業務サービスがＷｅｂサーバ／アプリケーションサーバ／データベース（ＤＢ）サーバからなるＷｅｂ３階層システムにて提供される例が増えている。こういったシステムは、業務の効率化やセキュリティ対策などの理由から大規模で複雑な構成である。また、即時性を要求される業務サービスが多く、サービス停止やレスポンス悪化は問題である。そのため、大規模システムに対する運用状況の詳細な把握や性能問題の迅速な解決が求められる。
【０００３】
しかも、複数のアプリケーションが連携して動作する複雑なシステム（Ｗｅｂ３階層システムなど）で、性能劣化や障害の原因を突き止めるためには、サーバそれぞれの挙動だけでなくシステム全体としての性能を観測・分析することが必要である。例えば、Ｗｅｂ３階層システムにおいては、Ｗｅｂサーバへの処理要求に伴ってアプリケーションサーバへの処理要求が発生する場合がある。アプリケーションサーバ・ＤＢサーバ間についても同様である。こういったアプリケーション間における処理の呼出関係は、性能問題のシステム内への波及を調べる上で必要である。
【０００４】
そこで、複数のサーバが接続されたネットワークの運用形態をコンピュータで分析するためのシステム分析方法として次の技術がある。
まず、メッセージ観測手段が、ネットワークを介して受け渡されるメッセージを収集する。メッセージ解析手段が、収集したメッセージの内容を解析して、メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージかを判別し、判別された情報をプロトコルログとしてプロトコルログ記憶手段に格納する。モデル生成指示が入力されると、モデル生成手段は、プロトコルログ記憶手段に格納されたプロトコルログにおける処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、処理種別に対応する各処理を識別する。そして、モデル生成手段は、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づき、処理間の呼出関係に関する制約条件を満たすトランザクションモデルを生成する。それから、モデル生成手段は、生成した前記トランザクションモデルをトランザクションモデル記憶手段に格納する。分析指示が入力されると、分析手段はトランザクションモデル記憶手段に格納されたトランザクションモデルで示される呼出関係に合致するプロトコルログをプロトコルログ記憶手段から抽出する。分析手段は、抽出されたプロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−０１１６８３号公報
【特許文献２】特開２０１０−１９８３２２号公報
【特許文献３】特開平５−３２７８７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
サーバのオペレーティングシステム（ＯＳ）やミドルウェアをアップデートした場合、既存のシステムが従来通り動くかどうかを確認するための検証テストを行う必要がある。ここで、一例として、Ｗｅｂ３階層システムをテスト対象システムとして、テスト対象システムの検証テストについて以下に説明する。Ｗｅｂ３階層システムは、Ｗｅｂサーバ、アプリケーション（ＡＰ）サーバ、データベース（ＤＢ）サーバを含む。Ｗｅｂサーバ、ＡＰサーバ、及びＤＢサーバは、スイッチと接続されている。また、スイッチはパーソナルコンピュータ（クライアント）と分析装置に接続されている。
【０００７】
スイッチは、自身を通過するデータをミラーリングする機能を有している。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。分析装置は、Ｗｅｂサーバ、ＡＰサーバ、及びＤＢサーバが互いにやり取りするパケットをスイッチのミラーリング機能を用いて受信することができる。
【０００８】
例えば、クライアントからの要求に応じて、Ｗｅｂサーバ、ＡＰサーバ、及びＤＢサーバが連動してサービスを提供する場合を想定する。この場合の検証テストでは、まず、クライアントからＷｅｂサーバに対してパケット（例えば、ＨＴＴＰ（HyperText Transfer Protocol）のパケット）が送信される。このとき、ＨＴＴＰパケットと同じ内容のパケットが分析装置に入力される。
【０００９】
次に、ＷｅｂサーバからＡＰサーバへパケット（例えば、ＩＩＯＰ（Internet Inter-ORB Protocol）のパケット。以下、ＩＩＯＰパケット）が送信されると、ＩＩＯＰパケットと同じ内容のパケットが分析装置に入力される。さらに、ＡＰサーバからＤＢサーバ４へ、パケット（例えば、ＳＱＬパケット）が送信されると、ＳＱＬパケットと同じ内容のパケットが分析装置に入力される。
【００１０】
分析装置は、受信したパケットに基づいてメッセージを解析し、上記のシステム可視化技術を用いてＷｅｂ３階層システムの稼働状態を分析する。ここでは、分析装置は事前に作成したトランザクションモデルで示される呼出関係に合致するプロトコルログを、受信したパケットのログから抽出する。分析装置は、抽出されたプロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析する。これにより、クライアントからの要求に対する一連のシステム（Ｗｅｂサーバ、ＡＰサーバ、及びＤＢサーバ）の処理（トランザクション）を分析することができる。
【００１１】
しかしながら、性能テストのように、複数のトランザクションが並行して実行される場合、後段のメッセージがどのトランザクションモデルに属するか区別するのが難しい。これについて、図１を用いて説明する。
【００１２】
図１は、Ｗｅｂ３階層システムにおいて複数のトランザクションが並行して実行される場合のメッセージの呼び出し関係を説明する図である。図１では、ＨＴＴＰ−ａのメッセージで開始するトランザクションのModel 1と、ＨＴＴＰ−ｂのメッセージで開始するトランザクションのModel 2がある。
【００１３】
しかしながら、Model 1とModel 2のトランザクションが並行して実行された場合、Ｗｅｂサーバ−ＡＰサーバ間及びＡＰサーバ−ＤＢサーバ間を流れるメッセージが、どちらのモデルに属するメッセージか区別をつけるのが難しい。
【００１４】
そのため、ＯＳ）やミドルウェアをアップデート前後のテスト結果を比較するだけでは、システムに問題が発生しているかどうかを正確に検証することは難しい。また、もし問題が発生していることが分かっても、どこでその問題が発生しているかを特定することは難しい。
【００１５】
このように、テスト対象システムのＯＳやミドルウェアのアップデート後の検証テストでは、その検証結果を解析するのに手間がかかったり、また、正確な解析結果を得ることが難しい。
【００１６】
そこで、本実施形態では、ＯＳやミドルウェアのアップデート後の検証テストにおいて、問題が発生した場合の原因分析作業の効率化を図る分析技術を提供する。
【課題を解決するための手段】
【００１７】
分析装置は、照合部、不良モデル抽出部、部分トランザクション抽出部を含む。照合部は、コンピュータ間において第１のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第２のアクセスで得られたメッセージとを照合する。そして、照合部は、モデルに合致するトランザクションと、トランザクションを構成するメッセージ以外の不一致メッセージとを取得する。不良モデル抽出部は、第２のアクセスにおいて実行されたモデルから、取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出する。部分トランザクション抽出部は、不一致メッセージから、不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する。
【００１８】
分析装置は、収集部、モデル生成部、対応情報生成部、照合部、不一致メッセージ取得部、不良モデル抽出部、仮親子関係構築部、部分トランザクション探索部、残りメッセージ抽出部、不良トランザクション確定部を含む。
【００１９】
収集部は、ネットワークで接続されたコンピュータ間で送受されるメッセージを収集する。
モデル生成部は、第１のコンピュータから第２のコンピュータへ第１のアクセスがあった場合に収集された第１のメッセージを用いて、第１の処理時間帯を解析する。第１の処理時間帯は、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される。モデル生成部は、該第１の処理時間帯に内包される第２の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析する。モデル生成部は、該第１の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとする。モデル生成部は、該第２の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとする。この場合、モデル生成部は、１つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとする。
【００２０】
対応情報生成部は、前記第１のアクセスがあった場合に得られる第１のアクセス先の所在情報と第１のアクセス時刻とを含む第１のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成する。
【００２１】
照合部は、前記第１のコンピュータから前記第２のコンピュータへ第２のアクセスがあった場合に収集された第２のメッセージと、前記トランザクションモデルとを照合する。照合部は、該第２のメッセージから該トランザクションモデルに合致するトランザクションを取得する。
【００２２】
不一致メッセージ取得部は、前記照合の結果、前記第２のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得する。
【００２３】
不良モデル抽出部は、前記第２のアクセスがあった場合に得られる第２のアクセス先の所在情報と第２のアクセス時刻とを含む第２のアクセスログと前記対応情報とから、該第２のアクセスにおいて実行されたトランザクションモデルを抽出する。不良モデル抽出部は、該第２のアクセスにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出する。
【００２４】
仮親子関係構築部は、前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第３の処理時間帯を解析する。仮親子関係構築部は、該第３の処理時間帯に内包される第４の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析する。仮親子関係構築部は、該第３の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第４の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とする。仮親子関係構築部は、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築する。
【００２５】
部分トランザクション探索部は、前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合する。部分トランザクション探索部は、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索する。
【００２６】
残りメッセージ抽出部は、前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出する。
【００２７】
不良トランザクション確定部は、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出する。不良トランザクション確定部は、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する。
【発明の効果】
【００２８】
本明細書に記載の分析装置によれば、ＯＳやミドルウェアのアップデート後の検証テストにおいて、問題が発生した場合の原因分析作業の効率化を図ることができる。
【図面の簡単な説明】
【００２９】
【図１】Ｗｅｂ３階層システムにおいて複数のトランザクションが並行して実行される場合のメッセージの呼び出し関係を説明する図である。
【図２】本実施形態における分析装置の一例を示す。
【図３】本実施形態におけるネットワークの構成例を示す。
【図４】テスト対象システムの一例を示す。
【図５】本実施形態における分析装置２１の構成の一例を示す。
【図６Ａ】本実施形態で用いるデータの構造の一例を示す。
【図６Ｂ】本実施形態で用いるデータの構造の一例を示す。
【図７】本実施形態におけるテスト対象システム３１のアップデート前の全体の処理フローを示す。
【図８】テスト対象システム３１のアップデート前の各種データの一例を示す。
【図９】トランザクションモデル生成処理（Ｓ２）の詳細を示す。
【図１０】テスト対象システム３１のアップデート前のテスト実行例を示す。
【図１１】トランザクションモデルの階層関係のイメージ図である。
【図１２】本実施形態におけるテスト対象システム３１のアップデート後の全体の処理フローを示す。
【図１３】マッチング処理（Ｓ１２）の詳細フローを示す。
【図１４】マッチング処理（Ｓ１２）に関する各種データの一例を示す。
【図１５】不良モデル抽出処理（Ｓ１３）の詳細フローを示す。
【図１６】不良モデル抽出処理（Ｓ１３）に関する各種データの一例を示す。
【図１７】部分マッチング処理（Ｓ１４）の詳細フローを示す。
【図１８】図１４（C）の不一致メッセージのシーケンス図である。
【図１９】リクエスト・レスポンスの内包関係を説明するための図である。
【図２０】図１８の不一致メッセージのシーケンスについて、上記の内包関係を用いて、メッセージの親子関係候補を図式化した図である。
【図２１】Ｓ１４−１の詳細フローを示す。
【図２２】子メッセージ候補の一例を示す。
【図２３】Ｓ１４−２の詳細フローを示す。
【図２４】部分モデル探索を説明するための図である。
【図２５】Ｓ１４−２の処理に関する各種データの一例を示す。
【図２６】部分トランザクション候補の抽出・確定を説明するための図である。
【図２７】部分トランザクションと残りの不一致メッセージの親子関係候補の抽出を説明するための図である。
【図２８】Ｓ１４−３の詳細フローを示す。
【図２９】Ｓ１４−３の処理に関する各種データの一例を示す。
【図３０】呼び出し確率の算出について説明するための図である。
【図３１】Ｓ１４−４の詳細フローを示す。
【図３２】Ｓ１４−４の処理に関する各種データの一例を示す。
【図３３】呼び出し確率が最も大きい部分トランザクションとメッセージの組み合わせを選択し、不良トランザクションを確定することについて説明する図である。
【図３４】Ｓ１４−５の詳細フローを示す。
【図３５】不良トランザクションの一例を示す。
【図３６】正解トランザクション及び不良トランザクションの出力イメージを示す。
【図３７】分析装置２１のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００３０】
上記「システム可視化技術」では、収集したメッセージと、事前に作成したトランザクションモデルとマッチングすることにより、トランザクション（メッセージの集合）が抽出されて出力される。トランザクションモデルにマッチしなかったメッセージ（不一致メッセージ）は別に出力されるが、従来の「システム可視化技術」は不一致メッセージを活用していなかった。
【００３１】
本実施形態では、アップデートの差分の確認するために不一致メッセージを利用することで、機能検証テストの影響の特定を支援することができる。トランザクションモデルに変更がなければ、この不一致メッセージはＯＳやミドルウェアの変更による影響と考えることができるためである。 
【００３２】
上述の通り、性能テストのように複数のトランザクションが並行して実行される場合、後段のメッセージがどのトランザクションモデルに属するか区別がつかないため、単純に比較することができない。そこで、本実施形態では、不一致メッセージとトランザクションモデルを部分的にマッチングし、不良トランザクションを抽出する。
【００３３】
本実施形態における分析装置は、照合部、不良モデル抽出部、部分トランザクション抽出部を含む。
照合部は、コンピュータ間において第１のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第２のアクセスで得られたメッセージとを照合する。そして、照合部は、モデルに合致するトランザクションと、トランザクションを構成するメッセージ以外の不一致メッセージとを取得する。照合部５の一例として、マッチング部５５が挙げられる。
【００３４】
不良モデル抽出部は、第２のアクセスにおいて実行されたモデルから、取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出する。不良モデル抽出部７の一例として、不良モデル抽出部５６が挙げられる。
【００３５】
部分トランザクション抽出部は、不一致メッセージから、不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する。部分トランザクションの一例として、部分マッチング部５７が挙げられる。
【００３６】
本実施形態について、以下に詳述する。
図２は、本実施形態における分析装置の一例を示す。分析装置１は、収集部２、モデル生成部３、対応情報生成部４、照合部５、不一致メッセージ取得部６、不良モデル抽出部７、仮親子関係構築部８、部分トランザクション探索部９、残りメッセージ抽出部１０、不良トランザクション確定部１１を含む。
【００３７】
収集部２は、ネットワークで接続されたコンピュータ間で送受されるメッセージを収集する。収集部２の一例として、パケット取得部５１、メッセージ解析部５２が挙げられる。
【００３８】
モデル生成部３は、第１のコンピュータから第２のコンピュータへ第１のアクセスがあった場合に収集された第１のメッセージを用いて、第１の処理時間帯を解析する。第１の処理時間帯は、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される。モデル生成部３は、第１の処理時間帯に内包される第２の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析する。モデル生成部３は、第１の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとする。また、モデル生成部３は、第２の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとする。モデル生成部３は、１つのトランザクションを構成するメッセージ群を解析し、解析したメッセージ群をトランザクションモデルとする。モデル生成部３の一例として、モデル生成部５３が挙げられる。
【００３９】
対応情報生成部４は、第１のアクセスがあった場合に得られる第１のアクセス先の所在情報とアクセス時刻とを含む第１のアクセスログと、トランザクションモデルとを関係付けた対応情報を生成する。対応情報生成部４の一例として、モデル対応表生成部５４が挙げられる。
【００４０】
照合部５は、第１のコンピュータから第２のコンピュータへ第２のアクセスがあった場合に収集された第２のメッセージと、トランザクションモデルとを照合する。それから、照合部５は、第２のメッセージからトランザクションモデルに合致するトランザクションを取得する。照合部５の一例として、マッチング部５５が挙げられる。
【００４１】
不一致メッセージ取得部６は、照合の結果、第２のメッセージから、トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得する。不一致メッセージ取得部６の一例として、マッチング部５５が挙げられる。
【００４２】
不良モデル抽出部７は、第２のアクセスがあった場合に得られる第２のアクセス先の所在情報とアクセス時刻とを含む第２のアクセスログと対応情報とから、第２のアクセスにおいて実行されたトランザクションモデルを抽出する。それから、不良モデル抽出部７は、第２のアクセスにおいて実行されたトランザクションモデルから、取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出する。不良モデル抽出部７の一例として、不良モデル抽出部５６が挙げられる。
【００４３】
仮親子関係構築部８は、不一致メッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第３の処理時間帯を解析する。仮親子関係構築部８は、第３の処理時間帯に内包される第４の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析する。仮親子関係構築部８は、第３の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とする。また、仮親子関係構築部８は、第４の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とする。仮親子関係構築部８は、親メッセージ候補と子メッセージ候補とを用いて、仮の親子関係を構築する。仮親子関係構築部８の一例として、部分マッチング部５７（Ｓ１４−１）が挙げられる。
【００４４】
部分トランザクション探索部９は、仮の親子関係が構築された不一致メッセージと不良トランザクションモデルとを照合する。それから、部分トランザクション探索部９は、不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索する。部分トランザクション探索部９の一例として、部分マッチング部５７（Ｓ１４−２）が挙げられる。
【００４５】
残りメッセージ抽出部１０は、仮の親子関係が構築された不一致メッセージから、部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出する。残りメッセージ抽出部１０の一例として、部分マッチング部５７（Ｓ１４−３）が挙げられる。
【００４６】
不良トランザクション確定部１１は、残りメッセージを子メッセージ候補とする部分トランザクションの数の逆数で示される呼び出し確率を算出する。不良トランザクション確定部１１は、呼び出し確率が最も大きい部分トランザクションと残りメッセージとの組み合わせを選択し、組み合わせで示されるトランザクションを不良トランザクションとして確定する。不良トランザクション確定部１１の一例として、部分マッチング部５７（Ｓ１４−４，Ｓ１４−５）が挙げられる。
【００４７】
このように構成することにより、ＯＳやミドルウェアのアップデート後の検証テストにおいて、問題が発生した場合の原因分析作業を効率化することができる。
また、部分トランザクション探索部９は、部分トランザクションモデルに一致したメッセージのうち、メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出する。ここで、部分トランザクションモデルは、不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す。それから、部分トランザクション抽出部９は、部分トランザクション候補の中から、部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を部分トランザクションとして選択する。
【００４８】
このように構成することにより、部分トランザクション抽出部９は、部分トランザクション候補の中から、部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を部分トランザクションとして選択することができる。
【００４９】
残りメッセージ抽出部１０は、部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する。このように構成することにより、残りメッセージ抽出部１０は、残りメッセージを抽出することができる。
【００５０】
不良トランザクション確定部１１は、第１のコンピュータから第２のコンピュータへのアクセスの度に収集されるメッセージを用いて、次の処理を行う。すなわち、不良トランザクション確定部１１は、収集したメッセージ毎に得られる、部分トランザクションモデルと前記残りメッセージについて、残りメッセージを子メッセージ候補とする部分トランザクションの数の逆数で示される呼び出し確率の平均を算出する。不良トランザクション確定部１１は、呼び出し確率の平均が最も大きい部分トランザクションと残りメッセージとの組み合わせを選択し、組み合わせで示されるトランザクションを不良トランザクションとして確定する。
【００５１】
このように構成することにより、不良トランザクション確定部１１は、残りメッセージを子メッセージ候補とする部分トランザクションの数の逆数を呼び出し回数で平均した値を、呼び出し確率とすることができる。
【００５２】
図３は、本実施形態におけるネットワークの構成例を示す。分析装置２１は、ネットワーク上にあるスイッチ２５を介してパーソナルコンピュータ（クライアント）２６、Ｗｅｂサーバ２２、アプリケーション（ＡＰ）サーバ２３、データベース（ＤＢ）サーバ２４に接続されている。
【００５３】
スイッチ２５は、サーバ間のネットワークを接続するネットワークデバイスの１つである。スイッチ２５は、パケットのヘッダに含まれる宛先情報に応じて、情報処理装置間の通信経路をスイッチングし、パケットを中継することができる。パケットとは、通信モデルの１つであるＴＣＰ／ＩＰ［Transmission Control Protocol/InternetProtocol］モデルの中のインターネットレイヤでの送信単位である。
【００５４】
Ｗｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４は、クライアント２６からの要求に応じてサービスを提供する。サービスの提供は、Ｗｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４によって互いに連携して実行される。このとき、分析装置２１は、ネットワークを介してＷｅｂサーバ２２−ＡＰサーバ２３−ＤＢサーバ２４間で送受信されるメッセージを取得し、システムの運用形態を分析する。
【００５５】
図４は、テスト対象システムの一例を示す。本実施形態において、一例として、検証テストの対象となるテスト対象システム３１として、Ｗｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４を含むＷｅｂ３階層システムを用いる。
【００５６】
Ｗｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４のＮＩＣ（Network Interface Card）３５，３６，３７は、スイッチ２５のポート３５，３６，３７に接続されている。また、クライアント２６、分析装置２１のＮＩＣ４０，４１は、スイッチ２５のポート３８，３８に接続されている。
【００５７】
スイッチ２５は、自身を通過するデータをミラーリングする機能を有している。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。図４の例では、Ｗｅｂサーバ３２が接続されたポート３５、ＡＰサーバ３３が接続されたポート３６、及びＤＢサーバ３４が接続されたポート３７のミラーリング先として、分析装置２１が接続されたポート３９が指定されている。これにより、各サーバ宛のパケットは宛先となるサーバに入力されるとともに、分析装置２１にも入力される。
【００５８】
例えば、クライアント２６からの要求に応じて、Ｗｅｂサーバ２２、ＡＰサーバ２３、及びＤＢサーバ２４が連動してサービスを提供する場合を想定する。この場合の検証テストでは、まず、クライアント２６からＷｅｂサーバ２２に対してパケット（例えば、ＨＴＴＰパケット）が送信される。このとき、ＨＴＴＰパケットと同じ内容のパケットが分析装置２１に入力される。
【００５９】
次に、Ｗｅｂサーバ２２からＡＰサーバ２３へパケット（例えば、ＩＩＯＰのパケット。以下、ＩＩＯＰパケット）が送信されると、ＩＩＯＰパケットと同じ内容のパケットが分析装置２１に入力される。さらに、ＡＰサーバ２３からＤＢサーバ２４へ、パケット（例えば、ＳＱＬパケット）が送信されると、ＳＱＬパケットと同じ内容のパケットが分析装置２１に入力される。
【００６０】
分析装置２１は、受信したパケットに基づいてメッセージを解析し、上記のシステム可視化技術を用いてテスト対象システム３１の稼働状態を分析する。ここでは、分析装置２１は、テスト対象システム３１のアップデート前に作成したトランザクションモデルと、アップデート後に変更されたトランザクションとの差異を検出する。なお、Ｗｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４のうち少なくとも１つのサーバについて、ＯＳまたはミドルウェア等をアップデートすることを、システムのアップデートと称する。
【００６１】
図５は、本実施形態における分析装置２１の構成の一例を示す。分析装置２１は、ネットワークを構成するコンピュータが互いにやり取りするパケットをスイッチ２５のミラーリング機能を用いて受信し、受信したパケットに基づいてそのコンピュータの稼動状況を監視及び分析を行う。
【００６２】
分析装置２１は、パケット取得部５１、メッセージ解析部５２、モデル生成部５３、モデル対応表生成部５４、マッチング部５５、不良モデル抽出部５６、部分マッチング部５７、出力部５８、記憶部５９を含む。
【００６３】
記憶部５９は、テスト実行ログ６１、トランザクションモデル（モデル）６２、モデル対応表６３、トランザクション６４、不一致メッセージ６５、不良モデル６６、その他の作業情報等の情報を格納する。テスト実行ログ６１は、クライアント２６により実行されたテスト実行のログであり、クライアント２６より取得されたものが記憶部５９に格納されている。
【００６４】
システムのアップデート前に、テスト対象システム３１の性能テストが実行された場合、パケット取得部５１、メッセージ解析部５２、モデル生成部５３、モデル対応表生成部５４による処理を実行する。
【００６５】
パケット取得部５１は、Ｗｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４が互いにやり取りするパケットをスイッチ２５のミラーリング機能を用いて取得する。
メッセージ解析部５２は、取得した複数のパケットからメッセージを組み立て、メッセージを再構成する。
メッセージ解析部５２は、収集したメッセージの内容を解析して、次の内容を含むプロトコルログを生成し、収集したメッセージごとのプロトコルログ（不図示）を記憶部５９に格納する。そのプロトコルログには、メッセージの収集時の時刻、リクエストメッセージとレスポンスメッセージとのメッセージ対を示す識別子、リクエストメッセージで要求されている処理を実行するサーバの階層、及びリクエストメッセージで要求されている処理種別が含まれる。処理種別は、例えば、メッセージに適用されているプロトコルがＨＴＴＰであれば、処理要求で指定されたＵＲＬ（Uniform Resource Locator）によって判別できる。
【００６６】
モデル生成部５３は、プロトコルログを収集時の時刻によって時系列で並べ、各メッセージ対のリクエストメッセージの収集時の時刻からレスポンスメッセージの収集時の時刻までの時間帯をリクエスト対に対応する処理の処理時間帯とする。それから、モデル生成部５３は、階層が最上位のサーバで処理される処理種別のメッセージ対のうち、対応する処理の処理時間帯内に、階層が最上位のサーバで処理される処理種別であって他の識別子を有するメッセージが存在しないメッセージ対を検出する。
【００６７】
モデル生成部５３は、検出されたメッセージ対と、メッセージ対に対応する処理の処理時間帯内にあるメッセージで構成される各メッセージ対とを１つのトランザクションに係るメッセージ対と決定する。モデル生成部５３は、１つのトランザクションに係る各メッセージ対に基づき、一階層の処理の処理種別と、その処理から呼び出されるその一階層の下位の階層の処理の処理種別との対応関係を示す呼出関係を求める。モデル生成部５３は、１つのトランザクションに含まれるメッセージ対に対応する処理の処理時間帯の長さからそのメッセージ対の処理種別に対応する処理に要した処理時間を求める。モデル生成部５３は、求めたその呼出関係と求めた処理種別ごとのその処理時間とが定義されたトランザクションモデル６２を生成する。
【００６８】
なお、モデル生成部５３は、次のようにしてトランザクションモデル６２を生成してもよい。すなわち、モデル生成部５３は、一階層の処理を呼び出し先とし、その処理の処理時間帯を包含する処理時間帯のその一階層の上位の階層の処理を呼び出し元とする呼び出しが可能であると判断する。この場合、モデル生成部５３は、一処理を呼び出し可能な呼び出し元の各処理がその一処理の呼び出しを行う呼び出し確率を、その呼び出し元の各処理に均等に定める。モデル生成部５３は、呼び出し可能な処理間の関係ごとに定められた呼び出し確率に基づき、呼び出し元の処理の処理種別と呼び出し先の処理の処理種別との組み合わせごとの平均の呼び出し回数を計算する。モデル生成部５３は、その平均の呼び出し回数が所定値以上の処理種別の組み合わせを呼出関係として定義したトランザクションモデル６２を生成する。
【００６９】
また、モデル生成部５３は、次のようにしてトランザクションモデル６２を生成してもよい。すなわち、モデル生成部５３は、一階層の処理を呼び出し先とし、その処理の処理時間帯を包含する処理時間帯のその一階層の上位の階層の処理を呼び出し元とする呼び出しが可能であると判断する。この場合、モデル生成部５３は、呼び出しが可能な処理間の組み合わせを示す１以上の処理集合候補を生成する。モデル生成部５３は、一処理を呼び出し元とした各処理集合候補の信頼度を均等に定め、処理集合候補に含まれる処理の処理種別により処理種別の組み合わせを示す発生パターンを生成する。モデル生成部５３は、発生パターンが同じとなる処理集合候補の信頼度を平均化した値をその処理集合候補から生成された発生パターンの信頼度とする。モデル生成部５３は、直前に計算された各発生パターンの信頼度を用いて、一処理を呼び出し元として生成された各処理集合候補の信頼度を定めることで、発生パターンの信頼度の計算を繰り返し行う。モデル生成部５３は、信頼度が所定値以上の発生パターンに示される呼出関係が定義されたトランザクションモデル６２を生成する。
【００７０】
モデル対応表生成部５４は、テスト実行ログ６１と生成したトランザクションモデル６２とを、ＵＲＬ及び時刻で関係付けて、テストに対するトランザクションの出現モデルの対応表（モデル対応表６３）を生成する。モデル対応表生成部５４は、生成したモデル対応表６３を記憶部５９に格納する。
【００７１】
システムのアップデート後に、テスト対象システム３１の性能テストが実行された場合、パケット取得部５１、メッセージ解析部５２、マッチング部５５、不良モデル抽出部５６、部分マッチング部５７、出力部５８による処理を実行する。
【００７２】
マッチング部５５は、記憶部５９に格納されたトランザクションモデル６２と、システムのアップデート後に取得されたパケットから組み立てられたメッセージをマッチングする。ここでは、マッチング部５５は、トランザクションモデル６２で示される呼出関係に合致する処理種別間の呼び出しが可能な処理の組み合わせに対応するメッセージのプロトコルログ（システムのアップデート後に作成されたもの）を記憶部５９から抽出する。すなわち、マッチング部５５は、そのメッセージが、記憶部５９に格納されたトランザクションモデル６２で示される呼び出し関係に合致するメッセージであるかを判定する。マッチング部５５は、そのマッチングの結果、合致したメッセージをトランザクション６４として記憶部５９に格納する。また、マッチング部５５は、そのマッチングの結果、合致しなかったメッセージを不一致メッセージ６５として記憶部５９に格納する。
【００７３】
不良モデル抽出部５６は、システムのアップデート後に得られたテスト実行ログ６１とモデル対応表６３とから、実行されたトランザクションモデルを抽出する。不良モデル抽出部５６は、実行されたトランザクションモデルの中からトランザクション６４に存在しないトランザクションモデルを不良モデル６６として記憶部５９に格納する。
【００７４】
部分マッチング部５７は、不一致メッセージ６５と不良モデル６６とを用いて、部分マッチング処理を実行し、不良トランザクションを分析する。
出力部５８は、部分マッチングによる分析結果を、表示装置、プリンタ等に出力する。
【００７５】
なお、本実施形態では、管理対象となる要素として、「メッセージ」、「オブジェクト」、及び「トランザクション」がある。
「メッセージ」は、ＴＣＰ（Transmission Control Protocol）セッション上で複数の機器がやりとりするデータの最小単位である。例えば、ＨＴＴＰでのリクエストやそれに対するレスポンスが、メッセージに該当する。なお、メッセージが複数のセグメントに分割され、各セグメントがそれぞれパケットに格納されて伝送される。
【００７６】
「オブジェクト」は、サーバがメッセージを受信してからレスポンスを送信するまでに行う単一又は複数の処理や入力されるデータを仮想的に単一のものとしてまとめたものである。ここで言う処理とは、ＣＰＵ（Central Processing Unit）での計算、データの入出力とそれぞれに対する待ち時間などが含まれる。
「トランザクション」は、システムに対する要求によって発生するオブジェクト処理の集合である。
【００７７】
図６Ａ及び図６Ｂは、本実施形態で用いるデータの構造の一例を示す。（Ａ）は、テスト実行ログ６１のデータ構造の一例を示す。テスト実行ログ６１は、データ項目として、「日時」、「テスト名」、「ＵＲＬ」を含む。「日時」には、テストが実行された日時が設定される。「テスト名」には、性能テストの名称が設定される。「ＵＲＬ」には、ＨＴＴＰパケットにおいて処理要求で指定されたＵＲＬが設定される。
【００７８】
（Ｂ）は、トランザクションモデル６２、部分トランザクションモデル８２のデータ構造の一例を示す。以下では、トランザクションモデルを「モデル」と称し、部分トランザクションモデルを「部分モデル」と称する。モデル６２、部分モデル８２には、モデル単位で、オブジェクトの階層情報が設定される。モデル６２、部分モデル８２は、データ項目として、「モデル名」、「第１階層オブジェクト名」、「第２階層オブジェクト名」、「第３階層オブジェクト名」を含む。なお、本実施形態では、Ｗｅｂ３階層システムがテストの対象であるから、オブジェクトの階層は３階層であるが、これに限定されない。すなわち、オブジェクトの階層は、サービスを提供するサーバの階層に応じて変更される。
【００７９】
（Ｃ）は、モデル対応表のデータ構造の一例を示す。モデル対応表は、データ項目として、「テスト名」、「モデル名」を含む。「テスト名」には、性能テストの名称が設定される。「モデル名」には、トランザクションモデルの名称が設定される。
【００８０】
（Ｄ）は、トランザクション６４、部分トランザクション８３、不良トランザクション８９のデータ構造の一例を示す。トランザクション６４、部分トランザクション８３、不良トランザクション８９には、これらのトランザクションに含まれるメッセージＩＤが設定される。トランザクション６４、部分トランザクション８３、不良トランザクション８９は、データ項目として、「モデル名（メッセージＩＤ：メッセージＩＤ：・・・）」を含む。メッセージＩＤは、メッセージを識別するための識別情報である。
【００８１】
（Ｅ）は、不一致メッセージ６５、残りメッセージ８４のデータ構造の一例を示す。不一致メッセージ、残りメッセージは、データ項目として、「時刻」、「メッセージＩＤ」、「オブジェクト名」、「レスポンス時間」を含む。
【００８２】
（Ｆ）は、子メッセージ候補情報８１のデータ構造の一例を示す。子メッセージ候補８１には、各メッセージに対する子メッセージ候補が設定される。子メッセージ候補８１は、データ項目として、「メッセージＩＤ」、「子メッセージＩＤ」、・・・を含む。
【００８３】
（Ｇ）は、残りメッセージ候補情報８５のデータ構造の一例を示す。残りメッセージ候補８５は、データ項目として、「モデル名（メッセージＩＤ：・・・）」、「オブジェクト名（メッセージＩＤ）：・・・」を含む。
【００８４】
（Ｈ）は、親候補数情報８６のデータ構造の一例を示す。親候補数情報８６には、親候補数８６は、データ項目として、「オブジェクト名（メッセージＩＤ）」、「親候補数」を含む。
【００８５】
（Ｉ）は、呼び出し確率情報８７のデータ構造の一例を示す。呼び出し確率情報８７は、データ項目として、「部分モデル名（メッセージＩＤ：・・・）」、「オブジェクト名（メッセージＩＤ）」、「呼び出し確率」を含む。「部分モデル名（メッセージＩＤ：・・・）」には、部分トランザクションモデルに含まれるメッセージのメッセージＩＤが設定される。「オブジェクト名（メッセージＩＤ）」には、部分トランザクションから呼び出されるオブジェクト名が設定される。「呼び出し確率」には、部分トランザクションモデルに対するメッセージの呼び出し確率が設定される。
【００８６】
（Ｊ）は、呼び出し確率テーブル８８のデータ構造の一例を示す。呼び出し確率テーブル８８には、部分トランザクションモデルに対するメッセージの呼び出し確率が設定される。呼び出し確率テーブル８８は、データ項目として、「オブジェクト名」、「部分モデル名１の呼び出し確率」、「部分モデル名２の呼び出し確率」等を含む。
【００８７】
まずは、図７−図１２を用いて、テスト対象システム３１のアップデート前における、分析装置２１の処理について説明する。
図７は、本実施形態におけるテスト対象システム３１のアップデート前の全体の処理フローを示す。図８は、テスト対象システム３１のアップデート前の各種データの一例を示す。
【００８８】
テストは、クライアント２６を用いて、テスト対象システム３１にアクセスすることにより行われる（Ｓ１）。クライアント２６を用いたテスト対象システム３１へのアクセスは、テストツールを用いて自動で行っても良いし、テスト実行者が手動で行っても良い。テストが実行されると、クライアント２６からテスト対象システム３１へアクセス要求がされ、一連のトランザクションが開始する。すると、Ｗｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４が互いにパケットをやり取りする。分析装置２１は、このパケットを収集する。
【００８９】
次に、分析装置２１は、テスト実行時にテスト対象のＷｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４に接続されたスイッチ２５からパケットをキャプチャし、システム可視化技術を用いてテストのトランザクションモデル６２を生成する（Ｓ２）。Ｓ２の処理について、図９を用いて説明する。
【００９０】
それから、モデル対応表生成部５４は、テスト実行ログ６１のURLおよび時刻と、モデル６２のURLおよび時刻を用いて、テスト実行ログ６１とトランザクションモデル６２とを関係付けて、テストに対するモデル対応表６３を作成する（Ｓ３）。
【００９１】
図９は、トランザクションモデル生成処理（Ｓ２）の詳細を示す。パケット取得部５１は、Ｗｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４が互いにやり取りするパケットをスイッチ２５のミラーリング機能を用いて取得する（Ｓ２−１）。
【００９２】
メッセージ解析部５２は、取得した複数のパケットからメッセージを組み立て、その組み立てたメッセージから、そのメッセージの内容を解析する（Ｓ２−２）。メッセージ解析部５２は、収集したメッセージの内容を解析して、メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージか（メッセージの方向）を判別する。
【００９３】
モデル生成部５３は、呼出元のオブジェクトの処理時間帯に包含された処理時間帯を有する呼出先のオブジェクト（親子関係にあるオブジェクト）を検出する（Ｓ２−３）。Ｓ２−３の処理について、図１０で後述する。モデル生成部５３は、図８（Ｂ）に示すように、親子関係にあるオブジェクトをトランザクションモデル６２として格納する（Ｓ２−３）。
【００９４】
図１０は、テスト対象システム３１のアップデート前のテスト実行例を示すものであって、HTTP-aとHTTP-bのURLにアクセスした場合のＷｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４間の呼び出し関係を示す。縦軸は、時間を示す。右方向の矢印は、リクエストメッセージを示す。左方向の矢印は、レスポンスメッセージを示す。
【００９５】
このとき、クライアント２６は、テスト対象システム３１にアクセスしたURLとその時刻を、図８（Ａ）に示すテスト実行ログ６１として出力する。図８（Ａ）のテスト実行ログ６１は、Test1とTest2の２つのテストが実行され、それぞれHTTP-aとHTTP-bのURLにアクセスしたことを示す。クライアント２６より出力されたテスト実行ログ６１は、分析装置２１の記憶部５９に格納される。
【００９６】
図１０の場合、符号７１で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号７３で示すオブジェクトである。符号７３で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号７６で示すオブジェクトである。この場合、符号７１，７３，７６で示すオブジェクトは、親子関係があるから、それぞれ、第１階層オブジェクト、第２階層オブジェクト、第３階層オブジェクトと定義される（図８（Ｂ）のModel 1）。
【００９７】
また、符号７２で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号７４，７５で示すオブジェクトである。符号７４で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号７７，７８で示すオブジェクトである。符号７５で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号７９で示すオブジェクトである。符号７２，７４，７５，７７，７８，７９で示すオブジェクトは、親子関係がある。この場合、符号７２で示すオブジェクトは、第１階層オブジェクトで定義される。符号７４，７５で示されるオブジェクトは、第２階層オブジェクトで定義される。符号７７，７８，７９で示されるオブジェクトは、第３階層オブジェクトと定義される（図８（Ｂ）のModel 2）。
【００９８】
図１１は、トランザクションモデルの階層関係のイメージ図である。図１１は、図８（Ｂ）のトランザクションモデル（Model 1、Model 2）をイメージ化したものである。図８（Ｃ）、図１１では、Test1でModel 1が実行され、Test2でModel 2が実行されたことを示す。
以上でテスト対象システム３１のアップデート前の処理は完了となる。
【００９９】
次に、図１２−図３６を用いて、テスト対象システム３１のアップデート後における分析装置２１による処理について説明する。
図１２は、本実施形態におけるテスト対象システム３１のアップデート後の全体の処理フローを示す。クライアント２６を用いて、テスト対象システム３１に対してアップデート前と同じテストが実行され、同様にテスト実行ログ６１’が出力される（Ｓ１１）。
【０１００】
分析装置２１は、テスト対象システム３１の各サーバに接続されたスイッチ２５からパケットを収集し、メッセージ解析を行う。分析装置２１は、解析したメッセージと、テスト対象システム３１のアップデート前のトランザクションモデル６２とのマッチングを、システム可視化技術を用いて行う（Ｓ１２）。マッチングの結果、分析装置２１は、トランザクションモデル６２に合致したトランザクションをトランザクション６４として出力し、合致しなかったメッセージを不一致メッセージ６５として出力する。
【０１０１】
分析装置２１は、テスト実行ログ６１’とトランザクション６４を比較し、アップデート前のモデル対応表６３で出現しなかった不良モデル６６を抽出する（Ｓ１３）。
分析装置２１は、不一致メッセージ６５と不良モデル６６を部分マッチングすることにより、不良トランザクションを抽出する。部分マッチング処理は、不良モデル６６と不一致メッセージ６５を部分的にマッチングし、一致した部分トランザクションと残りの不一致メッセージを紐付けることにより、不良トランザクションを確定する（Ｓ１４）。
【０１０２】
以下では、Ｓ１２−Ｓ１４の各処理について詳述する。
図１３は、マッチング処理（Ｓ１２）の詳細フローを示す。図１４は、マッチング処理（Ｓ１２）に関する各種データの一例を示す。パケット取得部５１は、Ｗｅｂサーバ２２、ＡＰサーバ２３、ＤＢサーバ２４が互いにやり取りするパケットをスイッチ２５のミラーリング機能を用いて取得する（Ｓ１２−１）。
【０１０３】
メッセージ解析部５２は、取得した複数のパケットからメッセージを組み立て、その組み立てたメッセージから、そのメッセージの内容を解析する（Ｓ１２−２）。
マッチング部５５は、解析したメッセージと、トランザクションモデル６２とをマッチングし、トランザクションモデル６２に合致するトランザクションをトランザクション６４として出力する。一方、マッチング部５５は、トランザクションモデル６２を構成するメッセージとして一致しなかったメッセージを不一致メッセージ６５として出力する。
【０１０４】
例えば、解析したメッセージ群が、「HTTP-c -> IIOP-c -> SQL-e，SQL-f」及び「 HTTP-d -> IIOP-d -> SQL-g」であるとする。この場合、マッチング部５５は、解析したメッセージと、トランザクションモデル６２とをマッチングした結果、図１４（Ａ）より、解析したメッセージはトランザクションモデル（Model３、Model４）に合致する。マッチング部５５は、図１４（Ｂ）に示すように、トランザクションモデルModel３，Model４をトランザクション６４として出力する。一方、マッチング部５５は、トランザクションモデル６２を構成するメッセージとして一致しなかったメッセージを、図１４（Ｃ）に示すように不一致メッセージ６５として出力する。
【０１０５】
図１５は、不良モデル抽出処理（Ｓ１３）の詳細フローを示す。図１６は、不良モデル抽出処理（Ｓ１３）に関する各種データの一例を示す。不良モデル抽出部５６は、図１６（Ａ）に示すテスト実行ログ６１と、図１６（Ｂ）に示すモデル対応表６３を「テスト名」をキーとして関係付け、実行されたトランザクションモデル（実行モデル）を抽出する（Ｓ１３−１）。
【０１０６】
不良モデル抽出部５６は、抽出した実行モデルの中からトランザクション６４にないトランザクションモデルを不良モデル６６として抽出する（Ｓ１３−２）。本実施例では、抽出した実行モデルの中から、図１４（Ｂ）のトランザクション６４（Model３、Model４）にない、Test1のModel 1と、Test2のModel 2が不良モデル（図１６（Ｃ））となる。
【０１０７】
図１７は、部分マッチング処理（Ｓ１４）の詳細フローを示す。部分マッチング部５７は、不一致メッセージ６５の階層間の親子関係候補をリクエスト・レスポンスの内包関係から抽出する（Ｓ１４−１）。
【０１０８】
部分マッチング部５７は、親子関係候補に対し、アップデート前のトランザクションモデルと部分的に一致する部分トランザクションを探索する（Ｓ１４−２）。
部分マッチング部５７は、部分トランザクションと残りの不一致メッセージの親子関係候補を抽出する（Ｓ１４−３）。
【０１０９】
部分マッチング部５７は、全テスト期間における部分トランザクションと不一致メッセージの呼び出し確率を算出する（Ｓ１４−４）。
部分マッチング部５７は、呼び出し確率が最も大きい組み合わせを選択し、不良トランザクションを出力する（Ｓ１４−５）。
【０１１０】
以下では、Ｓ１４−１〜Ｓ１４−５の各処理について詳述する。
まずは、図１８〜図２２を用いて、Ｓ１４−１の処理について詳述する。
図１８は、図１４（Ｃ）の不一致メッセージの呼出関係のシーケンス図である。図１８において、「ＩＤ」とは、メッセージＩＤを示す。
【０１１１】
Ｓ１４−１では、部分マッチング部５７は、不一致メッセージ６５の階層間の親子関係候補をリクエスト・レスポンスの内包関係から抽出する。ここで、図１９を用いて、内包関係について説明する。
【０１１２】
図１９は、リクエスト・レスポンスの内包関係を説明するための図である。第ｉ階層のメッセージのリクエストとレスポンスの時刻の間の時間帯に、第ｉ＋１階層のメッセージのリクエストとレスポンスの時刻の間の時間帯が含まれていることを「内包」という。第ｉ階層のメッセージのリクエストとレスポンスの時刻の間の時間帯に、第ｉ＋１階層のメッセージのリクエストとレスポンスの時刻の間の時間帯が内包される場合、それらのメッセージは親子関係の候補となる。
【０１１３】
図２０は、図１８の不一致メッセージのシーケンスについて、上記の内包関係を用いて、メッセージの親子関係候補を図式化した図である。
図２１は、Ｓ１４−１の詳細フローを示す。部分マッチング部５７は、不一致メッセージ６５の各メッセージから、次の階層の時間的に内包されるメッセージ（リクエストとレスポンス）を探索する。部分マッチング部５７は、図２２に示すように、その探索されたメッセージを子メッセージ候補８１として出力する。
【０１１４】
次に、図２３〜図２５を用いて、Ｓ１４−２の処理について詳述する。Ｓ１４−２では、部分マッチング部５７は、親子関係候補から、アップデート前のトランザクションモデルと部分的に一致する部分トランザクションを探索する。
【０１１５】
図２３は、Ｓ１４−２の詳細フローを示す。図２４は、部分モデル探索を説明するための図である。図２５は、Ｓ１４−２の処理に関する各種データの一例を示す。部分マッチング部５７は、部分モデルの探索を行う（Ｓ１４−２−１）。すなわち、部分マッチング部５７は、子メッセージ候補８１と、不良モデル６６についてのトランザクションモデル６２とをマッチングし、部分的に合致したメッセージを部分モデルとして登録する。例えば、図１６（Ｃ）に示すように、不良モデル６６は、mode1 1、model 2であるから、部分マッチング部５７は、mode1 1、model 2のトランザクションモデル（図１１、図１４（Ａ））と、子メッセージ候補８１（図２０）とをマッチングする。すると、図２４に示すように、太線で覆われたメッセージ候補が合致する。部分マッチング部５７は、図２５（Ａ）に示すように、これらの合致したメッセージを部分モデル８２として記憶部５９に格納する。
【０１１６】
次に、部分マッチング部５７は、部分トランザクション候補の抽出を行う（Ｓ１４−２−２）。すなわち、部分マッチング部５７は、部分モデル８２に合致したメッセージの中で、メッセージが重複しない部分トランザクションの組み合わせを抽出する。
【０１１７】
それから、部分マッチング部５７は、部分トランザクション候補の中から部分トランザクションを確定する（Ｓ１４−２−３）。すなわち、部分マッチング部５７は、部分トランザクション候補の組み合わせの中で、メッセージ数が最も多い組み合わせを部分トランザクションとして確定する。Ｓ１４−２−２及びＳ１４−２−３については、図２６を用いて説明する。
【０１１８】
図２６は、部分トランザクション候補の抽出・確定を説明するための図である。Ｓ１４−２−１で得られた部分モデル（図２４）について、合致したメッセージの中で、メッセージが重複しない部分トランザクションの組み合わせを抽出すると、図２６の部分トランザクション候補１，２が得られる。破線で囲んで示すように、複数の組み合わせが存在するので、部分マッチング部５７は、合致するメッセージ数が最も多い組み合わせの部分トランザクション候補を選択する。図２６において、部分トランザクション候補１のマッチするメッセージ数は６であり、部分トランザクション候補２のマッチするメッセージ数は５である。したがって、部分マッチング部５７は、部分トランザクション候補１を選択し、図２５（Ｂ）に示すように、部分トランザクション８３として記憶部５９に格納する。
【０１１９】
次に、部分マッチング部５７は、残りメッセージを抽出する（Ｓ１４−２−４）。すなわち、部分マッチング部５７は、部分トランザクションに含まれないメッセージを残りメッセージ８４として記憶部５９に格納する。図２４の場合では、部分モデルとして抽出されなかった、メッセージ（ＳＱＬ−ｘ，ＳＱＬ−ｙ）が残りメッセージ８４として記憶部５９に格納される。
【０１２０】
次に、図２７〜図２９を用いて、Ｓ１４−３の処理について詳述する。Ｓ１４−３では、部分マッチング部５７は、部分トランザクションと残りの不一致メッセージの親子関係候補を抽出する。これについて、図２７を用いて説明する。
【０１２１】
図２７は、部分トランザクションと残りの不一致メッセージの親子関係候補の抽出を説明するための図である。図２７の左側に示すように、破線で囲まれた部分トランザクションモデル（Model 1-1，Model 2-1）を抽象化して示したものが図２７の右側の図である。このとき、残りメッセージＳＱＬ−ｘの親は、Model 1-1の１つである。一方、残りメッセージＳＱＬ−ｙの親は、Model 1-1，Model 2-1の２つである。したがって、Ｓ１４−３では、これらの親子関係の候補が、図２９に示すように、残りメッセージ候補８５として抽出される。
【０１２２】
図２８は、Ｓ１４−３の詳細フローを示す。図２９は、Ｓ１４−３の処理に関する各種データの一例を示す。部分マッチング部５７は、子メッセージ探の探索を行う（Ｓ１４−３−１）。すなわち、部分マッチング部５７は、部分トランザクションに対し、時間的に内包される残りメッセージを探索し、残りメッセージ候補８５として記憶部５９に格納する。
【０１２３】
次に、図３０〜図３３を用いて、Ｓ１４−４の処理について詳述する。Ｓ１４−４では、部分マッチング部５７は、全テスト期間における部分トランザクションと不一致メッセージの呼び出し確率（メッセージが部分トランザクションの子である確率）を算出する。これについて、図３０を用いて説明する。
【０１２４】
図３０は、呼び出し確率の算出について説明するための図である。呼び出し確率は、不一致メッセージから見て親となる部分トランザクション数の逆数を呼び出し回数で平均した値である。
【０１２５】
例えば、テストＡにおいて、メッセージ（ＳＱＬ−ｘ）から見て親は、部分トランザクションＭｏｄｅｌ  １−１の１つである。したがって、部分トランザクション（Model 1-1）に対するメッセージ（ＳＱＬ−ｘ）の呼び出し確率は、１．０（＝１／１）となる。
【０１２６】
また、テストＡにおいて、メッセージ（ＳＱＬ−ｙ）から見て親は、部分トランザクション（Model 1-1，Model 2-1）の２つなので、呼び出し確率は０．５（＝１／２）となる。テストＢにおいて、メッセージ（ＳＱＬ−ｙ）から見て親は、部分トランザクション（Model 2-1）の１つなので、呼び出し確率は１（＝１／１）となる。したがって、部分トランザクション（Model 1-1，Model 2-1）に対するメッセージ（ＳＱＬ−ｙ）の呼び出し確率は、呼び出し確率は０．７５（＝（０．５＋１．０）／２）となる。
【０１２７】
図３１は、Ｓ１４−４の詳細フローを示す。図３２は、Ｓ１４−４の処理に関する各種データの一例を示す。部分マッチング部５７は、残りメッセージ候補８５（図３２（Ａ））を用いて、残りメッセージに対し、親となる部分トランザクションの数をカウントし、図３２（Ｂ）に示すように親候補数８６として記憶部５９に格納する（Ｓ１４−４−１）。
【０１２８】
部分マッチング部５７は、図３２（Ｃ）に示すように、部分トランザクションと残りメッセージの組み合わせに対し、呼び出し確率（親候補数の逆数を呼び出し回数で平均した値）８７を算出する（Ｓ１４−４−２）。
【０１２９】
部分マッチング部５７は、図３２（Ｄ）に示すように、部分モデルとオブジェクトの組み合わせに対し、呼び出し確率の平均を呼び出し確率テーブル８８に出力する（Ｓ１４−４−３）。
【０１３０】
次に、図３３〜図３５を用いて、Ｓ１４−５の処理について詳述する。Ｓ１４−５では、部分マッチング部５７は、呼び出し確率が最も大きい部分トランザクションとメッセージの汲み合わせを選択し、不良トランザクションを確定する。これについて、図３３を用いて説明する。
【０１３１】
図３３は、呼び出し確率が最も大きい部分トランザクションとメッセージの組み合わせを選択し、不良トランザクションを確定することについて説明する図である。図３３において、複数の親候補を有するメッセージ（ＳＱＬ−ｙ）に着目する。部分トランザクション（Model 1-1）に対するメッセージ（ＳＱＬ−ｙ）の呼び出し確率は、０．５である。部分トランザクション（Model 2-1）に対するメッセージ（ＳＱＬ−ｙ）の呼び出し確率は、０．７５である。この場合、メッセージ（ＳＱＬ−ｙ）と、呼び出し確率の大きい部分トランザクション（Model 2-1）との組み合わせが選択される。これにより、不良トランザクションが確定する。
【０１３２】
図３４は、Ｓ１４−５の詳細フローを示す。図３５は、不良トランザクションの一例を示す。部分マッチング部５７は、部分トランザクションと残りメッセージの組み合わせが複数ある場合、残りメッセージ候補８５と呼び出し確率テーブルを用いて、呼び出し確率が大きい方の組み合わせを選択する（Ｓ１４−５−１）。
【０１３３】
部分マッチング部５７は、部分トランザクションに対して、その確定した残りメッセージを追加したものを不良トランザクション８９（図３５）として記憶部５９に記憶する（Ｓ１４−５−２）。
【０１３４】
このように、不一致メッセージと不良モデルを部分マッチングすることにより、不良トランザクションを抽出することができる。部分マッチング処理は、不良モデルと不一致メッセージを部分的にマッチングし、一致した部分トランザクションと残りの不一致メッセージを紐付けることにより、不良トランザクションを確定することができる。
【０１３５】
図３６は、正解トランザクション及び不良トランザクションの出力イメージを示す。図３６の場合、正解トランザクション（アップデート前のトランザクションモデル）と比較すると、不良トランザクション（アップデート後のトランザクション）は、ＳＱＬ−ａ、ＳＱＬ−ｂ、ＳＱＬ−ｄが無くなっていることが確認できる。一方で、不良トランザクションに、ＳＱＬ−ｘ、ＳＱＣ−ｙが新たに出現していることが確認できる。テスト実行者は、これらのＳＱＬを比較することにより、アップデートによる影響を調査することが可能である。
【０１３６】
図３７は、分析装置２１のハードウェア構成の一例を示す。分析装置２１は、ＣＰＵ（中央処理演算装置）９１、メモリ９２、通信制御部９３、通信装置９４、表示制御部９５、表示装置９６、入力インターフェース（Ｉ／Ｆ）９７、入力装置９８、記憶装置９９、読取装置１００、バス１０１を含む。
【０１３７】
バス１０９には、ＣＰＵ９１、メモリ９２、通信制御部９３、通信装置９４、表示制御部９５、入力Ｉ／Ｆ９７、入力装置９８、記憶装置９９、読取装置１００等が接続されている。ＣＰＵ９１は、分析装置２１の装置全体を制御する。メモリ９２は、ＲＯＭ（リードオンリメモリ）、ＲＡＭ（ランダムアクセスメモリ）の記憶装置である。読取装置１００は、可搬型記録媒体を読み出す装置である。通信制御部９３は、テスト対象システム３１にアクセス可能なネットワークへ接続され、当該ネットワークについての通信を制御する。通信制御部９３は、テスト対象システム３１のスイッチ２５と接続され、当該スイッチ２５との通信を制御する。
【０１３８】
表示装置９６は、表示制御部９５に接続されている。表示制御部９５は、ＣＰＵ９１からの命令に従って、画像を表示装置９６の画面に表示させる。入力装置９８は、入力Ｉ／Ｆ９７に接続にされている。
【０１３９】
記憶装置９９としては、ハードディスクドライブ、フラッシュメモリ装置、磁気ディスク装置など様々な形式の記憶装置を使用することができる。記憶装置９９には、例えば、Ｓ、本実施形態に係るプログラム等の情報が格納されている。
【０１４０】
ＣＰＵ９１は、記憶装置９９から本実施形態に係るプログラムを読み込んで、パケット取得部５１、メッセージ解析部５２、モデル生成部５３、モデル対応表生成部５４、マッチング部５５、不良モデル抽出部５６、部分マッチング部５７として機能する。
【０１４１】
また、メモリ９２または記憶装置９９には、テスト実行ログ６１、トランザクションモデル６２、モデル対応表６３、トランザクション６４、不一致メッセージ６５、不良モデル６６、その他の作業テーブル等の情報が格納されている。その他の作業情報とは、例えば、子メッセージ候補８１、部分モデル８２、部分トランザクション８３、残りメッセージ８４、残りメッセージ候補８５、親候補数８６、呼び出し確率８７、呼び出し確率テーブル８８、不良トランザクション８９を示す。
【０１４２】
本実施形態において説明した分析装置２１の動作を実現するプログラムは、プログラム提供者側から通信ネットワークを介して、例えば記憶装置９９に格納してもよい。また、後述する実施形態で説明する処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読取装置１００に設定されて、ＣＰＵ９１によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＩＣカード、ＵＳＢメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読取装置１００によって読み取られる。
【０１４３】
また、入力装置９８には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレット、タッチパネルなどを用いることが可能である。通信ネットワークは、インターネット、ＬＡＮ、ＷＡＮ、専用線、有線、無線等の通信網であってよい。
【０１４４】
本実施形態によれば、複数のサーバ間でメッセージをやり取りしてサービスを提供するシステムのいずれかのサーバのＯＳやミドルウェアがアップデートされた場合の検証テストにおいて、アップデート前後のトランザクションの差異を検出することができる。そのため、そのシステムにおいて問題が発生した場合に、問題箇所の特定が容易となり、原因分析作業の効率化を図ることができる。
【０１４５】
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０１４６】
上記実施形態に関し、更に以下の付記を開示する。
（付記１）
ネットワークで接続されたコンピュータ間で送受されるメッセージを収集する収集部と、
第１のコンピュータから第２のコンピュータへ第１のアクセスがあった場合に収集された第１のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第１の処理時間帯を解析し、該第１の処理時間帯に内包される第２の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第１の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第２の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、１つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとするモデル生成部と、
前記第１のアクセスがあった場合に得られる第１のアクセス先の所在情報と第１のアクセス時刻とを含む第１のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成する対応情報生成部と、
前記第１のコンピュータから前記第２のコンピュータへ第２のアクセスがあった場合に収集された第２のメッセージと、前記トランザクションモデルとを照合し、該第２のメッセージから該トランザクションモデルに合致するトランザクションを取得する照合部と、
前記照合の結果、前記第２のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得する不一致メッセージ取得部と、
前記第２のアクセスがあった場合に得られる第２のアクセス先の所在情報と第２のアクセス時刻とを含む第２のアクセスログと前記対応情報とから、該第２のアクセスにおいて実行されたトランザクションモデルを抽出し、該第２のアクセスにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出する不良モデル抽出部と、
前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第３の処理時間帯を解析し、該第３の処理時間帯に内包される第４の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第３の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第４の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築する仮親子関係構築部と、
前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索する部分トランザクション探索部と、
前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出する残りメッセージ抽出部と、
前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する不良トランザクション確定部と、
を備えることを特徴とする分析装置。
（付記２）
前記部分トランザクション探索部は、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションモデルに一致したメッセージのうち、該メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出し、該部分トランザクション候補の中から、該部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を前記部分トランザクションとして選択する
ことを特徴とする付記１に記載の分析装置。
（付記３）
前記残りメッセージ抽出部は、
前記部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する
ことを特徴とする付記２に記載の分析装置。
（付記４）
前記不良トランザクション確定部は、前記第１のコンピュータから前記第２のコンピュータへのアクセスの度に収集されるメッセージを用いて、収集したメッセージ毎に得られる、前記部分トランザクションと前記残りメッセージについて、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率の平均を算出し、該呼び出し確率の平均が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
ことを特徴とする付記１に記載の分析装置。
（付記５）
コンピュータに、
ネットワークで接続されたコンピュータ間で送受されるメッセージを収集し、
第１のコンピュータから第２のコンピュータへ第１のアクセスがあった場合に収集された第１のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第１の処理時間帯を解析し、該第１の処理時間帯に内包される第２の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第１の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第２の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、１つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとし、
前記第１のアクセスがあった場合に得られる第１のアクセス先の所在情報と第１のアクセス時刻とを含む第１のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成し、
前記第１のコンピュータから前記第２のコンピュータへ第２のアクセスがあった場合に収集された第２のメッセージと、前記トランザクションモデルとを照合し、該第２のメッセージから該トランザクションモデルに合致するトランザクションを取得し、
前記照合の結果、前記第２のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得し、
前記第２のアクセスがあった場合に得られる第２のアクセス先の所在情報と第２のアクセス時刻とを含む第２のアクセスログと前記対応情報とから、該第２のアクセスにおいて実行されたトランザクションモデルを抽出し、該第２のアクセスにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出し、
前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第３の処理時間帯を解析し、該第３の処理時間帯に内包される第４の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第３の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第４の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築し、
前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索し、
前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出し、
前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理を実行させる分析プログラム。
（付記６）
前記部分トランザクションの探索において、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションモデルに一致したメッセージのうち、該メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出し、該部分トランザクション候補の中から、該部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を前記部分トランザクションとして選択する
処理をコンピュータに実行させる付記５に記載の分析プログラム。
（付記７）
前記残りメッセージの抽出において、
前記部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する
処理をコンピュータに実行させる付記６に記載の分析プログラム。
（付記８）
前記不良トランザクションの確定において、前記第１のコンピュータから前記第２のコンピュータへのアクセスの度に収集されるメッセージを用いて、収集したメッセージ毎に得られる、前記部分トランザクションと前記残りメッセージについて、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率の平均を算出し、該呼び出し確率の平均が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理をコンピュータに実行させる付記５に記載の分析プログラム。
（付記９）
コンピュータが実行する分析方法であって、
前記コンピュータは、
ネットワークで接続されたコンピュータ間で送受されるメッセージを収集し、
第１のコンピュータから第２のコンピュータへ第１のアクセスがあった場合に収集された第１のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第１の処理時間帯を解析し、該第１の処理時間帯に内包される第２の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第１の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第２の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、１つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとし、
前記第１のアクセスがあった場合に得られる第１のアクセス先の所在情報と第１のアクセス時刻とを含む第１のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成し、
前記第１のコンピュータから前記第２のコンピュータへ第２のアクセスがあった場合に収集された第２のメッセージと、前記トランザクションモデルとを照合し、該第２のメッセージから該トランザクションモデルに合致するトランザクションを取得し、
前記照合の結果、前記第２のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得し、
前記第２のアクセスがあった場合に得られる第２のアクセス先の所在情報と第２のアクセス時刻とを含む第２のアクセスログと前記対応情報とから、該第２のアクセスにおいて実行されたトランザクションモデルを抽出し、該第２のアクセスにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出し、
前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第３の処理時間帯を解析し、該第３の処理時間帯に内包される第４の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第３の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第４の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築し、
前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索し、
前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出し、
前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理を実行する分析方法。
（付記１０）
前記部分トランザクションの探索において、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションモデルに一致したメッセージのうち、該メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出し、該部分トランザクション候補の中から、該部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を前記部分トランザクションとして選択する
処理をコンピュータが実行する付記９に記載の分析方法。
（付記１１）
前記残りメッセージの抽出において、
前記部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する
処理をコンピュータが実行する付記１０に記載の分析方法。
（付記１２）
前記不良トランザクションの確定において、前記第１のコンピュータから前記第２のコンピュータへのアクセスの度に収集されるメッセージを用いて、収集したメッセージ毎に得られる、前記部分トランザクションと前記残りメッセージについて、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率の平均を算出し、該呼び出し確率の平均が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理をコンピュータが実行する付記９に記載の分析方法。
（付記１３）
コンピュータ間において第１のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第２のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得する照合部と、
該第２のアクセスにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出する不良モデル抽出部と、
前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する部分トランザクション抽出部と、
を備えることを特徴とする分析装置。
（付記１４）
コンピュータに、
コンピュータ間において第１のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第２のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得し、
該第２のアクセスにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出し、
前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する
処理を実行させる分析プログラム。
（付記１５）
コンピュータが実行する分析方法であって、
前記コンピュータは、
コンピュータ間において第１のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第２のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得し、
該第２のアクセスにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出し、
前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する
処理を実行する分析方法。
【符号の説明】
【０１４７】
１      分析装置
２      収集部
３      モデル生成部
４      対応情報生成部
５      照合部
６      不一致メッセージ取得部
７      不良モデル抽出部
８      仮親子関係構築部
９      部分トランザクション探索部
１０      残りメッセージ抽出部
１１      不良トランザクション確定部
２１      分析装置
２２      Ｗｅｂサーバ
２３      ＡＰサーバ
２４      ＤＢサーバ
２５      スイッチ
２６      クライアント
５１      パケット取得部
５２      メッセージ解析部
５３      モデル生成部
５４      モデル対応表生成部
５５      マッチング部
５６      不良モデル抽出部
５７      部分マッチング部
５８      出力部
５９      記憶部
【図１】
0005733103.tif 000002
【図２】
0005733103.tif 000003
【図３】
0005733103.tif 000004
【図４】
0005733103.tif 000005
【図５】
0005733103.tif 000006
【図６Ａ】
0005733103.tif 000007
【図６Ｂ】
0005733103.tif 000008
【図７】
0005733103.tif 000009
【図８】
0005733103.tif 000010
【図９】
0005733103.tif 000011
【図１０】
0005733103.tif 000012
【図１１】
0005733103.tif 000013
【図１２】
0005733103.tif 000014
【図１３】
0005733103.tif 000015
【図１４】
0005733103.tif 000016
【図１５】
0005733103.tif 000017
【図１６】
0005733103.tif 000018
【図１７】
0005733103.tif 000019
【図１８】
0005733103.tif 000020
【図１９】
0005733103.tif 000021
【図２０】
0005733103.tif 000022
【図２１】
0005733103.tif 000023
【図２２】
0005733103.tif 000024
【図２３】
0005733103.tif 000025
【図２４】
0005733103.tif 000026
【図２５】
0005733103.tif 000027
【図２６】
0005733103.tif 000028
【図２７】
0005733103.tif 000029
【図２８】
0005733103.tif 000030
【図２９】
0005733103.tif 000031
【図３０】
0005733103.tif 000032
【図３１】
0005733103.tif 000033
【図３２】
0005733103.tif 000034
【図３３】
0005733103.tif 000035
【図３４】
0005733103.tif 000036
【図３５】
0005733103.tif 000037
【図３６】
0005733103.tif 000038
【図３７】
0005733103.tif 000039