JP2013045179A - 分析装置、分析方法、及び分析方法 - Google Patents

分析装置、分析方法、及び分析方法 Download PDF

Info

Publication number
JP2013045179A
JP2013045179A JP2011180901A JP2011180901A JP2013045179A JP 2013045179 A JP2013045179 A JP 2013045179A JP 2011180901 A JP2011180901 A JP 2011180901A JP 2011180901 A JP2011180901 A JP 2011180901A JP 2013045179 A JP2013045179 A JP 2013045179A
Authority
JP
Japan
Prior art keywords
message
transaction
model
partial
time zone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011180901A
Other languages
English (en)
Other versions
JP5733103B2 (ja
Inventor
Ken Yokoyama
乾 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011180901A priority Critical patent/JP5733103B2/ja
Publication of JP2013045179A publication Critical patent/JP2013045179A/ja
Application granted granted Critical
Publication of JP5733103B2 publication Critical patent/JP5733103B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】OSやミドルウェアのアップデート後の検証テストにおいて、問題が発生した場合の原因分析作業の効率化を図る分析技術を提供する。
【解決手段】システム可視化技術を用いて、クライアントから対象システムへアクセスした場合に収集されたメッセージを用いて、トランザクションモデルを生成しておき、システムのアップデート後にクライアントから対象システムへアクセスした場合に収集されたメッセージとトランザクションモデルとのマッチングをし、マッチングの結果、トランザクションモデルに合致したトランザクションを出力し、合致しなかったメッセージを不一致メッセージとして出力し、テスト実行ログとトランザクションを比較し、アップデート前のモデル対応表で出現しなかった不良モデルを抽出し、不一致メッセージと不良モデルを部分マッチングすることにより、不良トランザクションを抽出することで、上記課題の解決を図る。
【選択図】図1

Description

本明細書は、ネットワーク上で伝達されるメッセージについての分析処理技術に関する。
最近のIT(情報通信技術)を利用したコンピュータシステムは大規模かつ複雑な構成であることが多い。例えば、オンラインバンキングの入金や振込み処理など、各種業務サービスがWebサーバ/アプリケーションサーバ/データベース(DB)サーバからなるWeb3階層システムにて提供される例が増えている。こういったシステムは、業務の効率化やセキュリティ対策などの理由から大規模で複雑な構成である。また、即時性を要求される業務サービスが多く、サービス停止やレスポンス悪化は問題である。そのため、大規模システムに対する運用状況の詳細な把握や性能問題の迅速な解決が求められる。
しかも、複数のアプリケーションが連携して動作する複雑なシステム(Web3階層システムなど)で、性能劣化や障害の原因を突き止めるためには、サーバそれぞれの挙動だけでなくシステム全体としての性能を観測・分析することが必要である。例えば、Web3階層システムにおいては、Webサーバへの処理要求に伴ってアプリケーションサーバへの処理要求が発生する場合がある。アプリケーションサーバ・DBサーバ間についても同様である。こういったアプリケーション間における処理の呼出関係は、性能問題のシステム内への波及を調べる上で必要である。
そこで、複数のサーバが接続されたネットワークの運用形態をコンピュータで分析するためのシステム分析方法として次の技術がある。
まず、メッセージ観測手段が、ネットワークを介して受け渡されるメッセージを収集する。メッセージ解析手段が、収集したメッセージの内容を解析して、メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージかを判別し、判別された情報をプロトコルログとしてプロトコルログ記憶手段に格納する。モデル生成指示が入力されると、モデル生成手段は、プロトコルログ記憶手段に格納されたプロトコルログにおける処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、処理種別に対応する各処理を識別する。そして、モデル生成手段は、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づき、処理間の呼出関係に関する制約条件を満たすトランザクションモデルを生成する。それから、モデル生成手段は、生成した前記トランザクションモデルをトランザクションモデル記憶手段に格納する。分析指示が入力されると、分析手段はトランザクションモデル記憶手段に格納されたトランザクションモデルで示される呼出関係に合致するプロトコルログをプロトコルログ記憶手段から抽出する。分析手段は、抽出されたプロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析する。
特開2006−011683号公報 特開2010−198322号公報 特開平5−327878号公報
サーバのオペレーティングシステム(OS)やミドルウェアをアップデートした場合、既存のシステムが従来通り動くかどうかを確認するための検証テストを行う必要がある。ここで、一例として、Web3階層システムをテスト対象システムとして、テスト対象システムの検証テストについて以下に説明する。Web3階層システムは、Webサーバ、アプリケーション(AP)サーバ、データベース(DB)サーバを含む。Webサーバ、APサーバ、及びDBサーバは、スイッチと接続されている。また、スイッチはパーソナルコンピュータ(クライアント)と分析装置に接続されている。
スイッチは、自身を通過するデータをミラーリングする機能を有している。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。分析装置は、Webサーバ、APサーバ、及びDBサーバが互いにやり取りするパケットをスイッチのミラーリング機能を用いて受信することができる。
例えば、クライアントからの要求に応じて、Webサーバ、APサーバ、及びDBサーバが連動してサービスを提供する場合を想定する。この場合の検証テストでは、まず、クライアントからWebサーバに対してパケット(例えば、HTTP(HyperText Transfer Protocol)のパケット)が送信される。このとき、HTTPパケットと同じ内容のパケットが分析装置に入力される。
次に、WebサーバからAPサーバへパケット(例えば、IIOP(Internet Inter-ORB Protocol)のパケット。以下、IIOPパケット)が送信されると、IIOPパケットと同じ内容のパケットが分析装置に入力される。さらに、APサーバからDBサーバ4へ、パケット(例えば、SQLパケット)が送信されると、SQLパケットと同じ内容のパケットが分析装置に入力される。
分析装置は、受信したパケットに基づいてメッセージを解析し、上記のシステム可視化技術を用いてWeb3階層システムの稼働状態を分析する。ここでは、分析装置は事前に作成したトランザクションモデルで示される呼出関係に合致するプロトコルログを、受信したパケットのログから抽出する。分析装置は、抽出されたプロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析する。これにより、クライアントからの要求に対する一連のシステム(Webサーバ、APサーバ、及びDBサーバ)の処理(トランザクション)を分析することができる。
しかしながら、性能テストのように、複数のトランザクションが並行して実行される場合、後段のメッセージがどのトランザクションモデルに属するか区別するのが難しい。これについて、図1を用いて説明する。
図1は、Web3階層システムにおいて複数のトランザクションが並行して実行される場合のメッセージの呼び出し関係を説明する図である。図1では、HTTP−aのメッセージで開始するトランザクションのModel 1と、HTTP−bのメッセージで開始するトランザクションのModel 2がある。
しかしながら、Model 1とModel 2のトランザクションが並行して実行された場合、Webサーバ−APサーバ間及びAPサーバ−DBサーバ間を流れるメッセージが、どちらのモデルに属するメッセージか区別をつけるのが難しい。
そのため、OS)やミドルウェアをアップデート前後のテスト結果を比較するだけでは、システムに問題が発生しているかどうかを正確に検証することは難しい。また、もし問題が発生していることが分かっても、どこでその問題が発生しているかを特定することは難しい。
このように、テスト対象システムのOSやミドルウェアのアップデート後の検証テストでは、その検証結果を解析するのに手間がかかったり、また、正確な解析結果を得ることが難しい。
そこで、本実施形態では、OSやミドルウェアのアップデート後の検証テストにおいて、問題が発生した場合の原因分析作業の効率化を図る分析技術を提供する。
分析装置は、照合部、不良モデル抽出部、部分トランザクション抽出部を含む。照合部は、コンピュータ間において第1のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第2のアクセスで得られたメッセージとを照合する。そして、照合部は、モデルに合致するトランザクションと、トランザクションを構成するメッセージ以外の不一致メッセージとを取得する。不良モデル抽出部は、第2のアクセルにおいて実行されたモデルから、取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出する。部分トランザクション抽出部は、不一致メッセージから、不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する。
分析装置は、収集部、モデル生成部、対応情報生成部、照合部、不一致メッセージ取得部、不良モデル抽出部、仮親子関係構築部、部分トランザクション探索部、残りメッセージ抽出部、不良トランザクション確定部を含む。
収集部は、ネットワークで接続されたコンピュータ間で送受されるメッセージを収集する。
モデル生成部は、第1のコンピュータから第2のコンピュータへ第1のアクセスがあった場合に収集された第1のメッセージを用いて、第1の処理時間帯を解析する。第1の処理時間帯は、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される。モデル生成部は、該第1の処理時間帯に内包される第2の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析する。モデル生成部は、該第1の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとする。モデル生成部は、該第2の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとする。この場合、モデル生成部は、1つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとする。
対応情報生成部は、前記第1のアクセスがあった場合に得られる第1のアクセス先の所在情報と第1のアクセス時刻とを含む第1のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成する。
照合部は、前記第1のコンピュータから前記第2のコンピュータへ第2のアクセスがあった場合に収集された第2のメッセージと、前記トランザクションモデルとを照合する。照合部は、該第2のメッセージから該トランザクションモデルに合致するトランザクションを取得する。
不一致メッセージ取得部は、前記照合の結果、前記第2のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得する。
不良モデル抽出部は、前記第2のアクセスがあった場合に得られる第2のアクセス先の所在情報と第2のアクセス時刻とを含む第2のアクセスログと前記対応情報とから、該第2のアクセルにおいて実行されたトランザクションモデルを抽出する。不良モデル抽出部は、該第2のアクセルにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出する。
仮親子関係構築部は、前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第3の処理時間帯を解析する。仮親子関係構築部は、該第3の処理時間帯に内包される第4の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析する。仮親子関係構築部は、該第3の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第4の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とする。仮親子関係構築部は、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築する。
部分トランザクション探索部は、前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合する。部分トランザクション探索部は、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索する。
残りメッセージ抽出部は、前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出する。
不良トランザクション確定部は、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出する。不良トランザクション確定部は、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する。
本明細書に記載の分析装置によれば、OSやミドルウェアのアップデート後の検証テストにおいて、問題が発生した場合の原因分析作業の効率化を図ることができる。
Web3階層システムにおいて複数のトランザクションが並行して実行される場合のメッセージの呼び出し関係を説明する図である。 本実施形態における分析装置の一例を示す。 本実施形態におけるネットワークの構成例を示す。 テスト対象システムの一例を示す。 本実施形態における分析装置21の構成の一例を示す。 本実施形態で用いるデータの構造の一例を示す。 本実施形態で用いるデータの構造の一例を示す。 本実施形態におけるテスト対象システム31のアップデート前の全体の処理フローを示す。 テスト対象システム31のアップデート前の各種データの一例を示す。 トランザクションモデル生成処理(S2)の詳細を示す。 テスト対象システム31のアップデート前のテスト実行例を示す。 トランザクションモデルの階層関係のイメージ図である。 本実施形態におけるテスト対象システム31のアップデート後の全体の処理フローを示す。 マッチング処理(S12)の詳細フローを示す。 マッチング処理(S12)に関する各種データの一例を示す。 不良モデル抽出処理(S13)の詳細フローを示す。 不良モデル抽出処理(S13)に関する各種データの一例を示す。 部分マッチング処理(S14)の詳細フローを示す。 図14(C)の不一致メッセージのシーケンス図である。 リクエスト・レスポンスの内包関係を説明するための図である。 図18の不一致メッセージのシーケンスについて、上記の内包関係を用いて、メッセージの親子関係候補を図式化した図である。 S14−1の詳細フローを示す。 子メッセージ候補の一例を示す。 S14−2の詳細フローを示す。 部分モデル探索を説明するための図である。 S14−2の処理に関する各種データの一例を示す。 部分トランザクション候補の抽出・確定を説明するための図である。 部分トランザクションと残りの不一致メッセージの親子関係候補の抽出を説明するための図である。 S14−3の詳細フローを示す。 S14−3の処理に関する各種データの一例を示す。 呼び出し確率の算出について説明するための図である。 S14−4の詳細フローを示す。 S14−4の処理に関する各種データの一例を示す。 呼び出し確率が最も大きい部分トランザクションとメッセージの組み合わせを選択し、不良トランザクションを確定することについて説明する図である。 S14−5の詳細フローを示す。 不良トランザクションの一例を示す。 正解トランザクション及び不良トランザクションの出力イメージを示す。 分析装置21のハードウェア構成の一例を示す。
上記「システム可視化技術」では、収集したメッセージと、事前に作成したトランザクションモデルとマッチングすることにより、トランザクション(メッセージの集合)が抽出されて出力される。トランザクションモデルにマッチしなかったメッセージ(不一致メッセージ)は別に出力されるが、従来の「システム可視化技術」は不一致メッセージを活用していなかった。
本実施形態では、アップデートの差分の確認するために不一致メッセージを利用することで、機能検証テストの影響の特定を支援することができる。トランザクションモデルに変更がなければ、この不一致メッセージはOSやミドルウェアの変更による影響と考えることができるためである。
上述の通り、性能テストのように複数のトランザクションが並行して実行される場合、後段のメッセージがどのトランザクションモデルに属するか区別がつかないため、単純に比較することができない。そこで、本実施形態では、不一致メッセージとトランザクションモデルを部分的にマッチングし、不良トランザクションを抽出する。
本実施形態における分析装置は、照合部、不良モデル抽出部、部分トランザクション抽出部を含む。
照合部は、コンピュータ間において第1のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第2のアクセスで得られたメッセージとを照合する。そして、照合部は、モデルに合致するトランザクションと、トランザクションを構成するメッセージ以外の不一致メッセージとを取得する。照合部5の一例として、マッチング部55が挙げられる。
不良モデル抽出部は、第2のアクセルにおいて実行されたモデルから、取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出する。不良モデル抽出部7の一例として、不良モデル抽出部56が挙げられる。
部分トランザクション抽出部は、不一致メッセージから、不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する。部分トランザクションの一例として、部分マッチング部57が挙げられる。
本実施形態について、以下に詳述する。
図2は、本実施形態における分析装置の一例を示す。分析装置1は、収集部2、モデル生成部3、対応情報生成部4、照合部5、不一致メッセージ取得部6、不良モデル抽出部7、仮親子関係構築部8、部分トランザクション探索部9、残りメッセージ抽出部10、不良トランザクション確定部11を含む。
収集部2は、ネットワークで接続されたコンピュータ間で送受されるメッセージを収集する。収集部2の一例として、パケット取得部51、メッセージ解析部52が挙げられる。
モデル生成部3は、第1のコンピュータから第2のコンピュータへ第1のアクセスがあった場合に収集された第1のメッセージを用いて、第1の処理時間帯を解析する。第1の処理時間帯は、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される。モデル生成部3は、第1の処理時間帯に内包される第2の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析する。モデル生成部3は、第1の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとする。また、モデル生成部3は、第2の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとする。モデル生成部3は、1つのトランザクションを構成するメッセージ群を解析し、解析したメッセージ群をトランザクションモデルとする。モデル生成部3の一例として、モデル生成部53が挙げられる。
対応情報生成部4は、第1のアクセスがあった場合に得られる第1のアクセス先の所在情報とアクセス時刻とを含む第1のアクセスログと、トランザクションモデルとを関係付けた対応情報を生成する。対応情報生成部4の一例として、モデル対応表生成部54が挙げられる。
照合部5は、第1のコンピュータから第2のコンピュータへ第2のアクセスがあった場合に収集された第2のメッセージと、トランザクションモデルとを照合する。それから、照合部5は、第2のメッセージからトランザクションモデルに合致するトランザクションを取得する。照合部5の一例として、マッチング部55が挙げられる。
不一致メッセージ取得部6は、照合の結果、第2のメッセージから、トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得する。不一致メッセージ取得部6の一例として、マッチング部55が挙げられる。
不良モデル抽出部7は、第2のアクセスがあった場合に得られる第2のアクセス先の所在情報とアクセス時刻とを含む第2のアクセスログと対応情報とから、第2のアクセルにおいて実行されたトランザクションモデルを抽出する。それから、不良モデル抽出部7は、第2のアクセルにおいて実行されたトランザクションモデルから、取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出する。不良モデル抽出部7の一例として、不良モデル抽出部56が挙げられる。
仮親子関係構築部8は、不一致メッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第3の処理時間帯を解析する。仮親子関係構築部8は、第3の処理時間帯に内包される第4の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析する。仮親子関係構築部8は、第3の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とする。また、仮親子関係構築部8は、第4の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とする。仮親子関係構築部8は、親メッセージ候補と子メッセージ候補とを用いて、仮の親子関係を構築する。仮親子関係構築部8の一例として、部分マッチング部57(S14−1)が挙げられる。
部分トランザクション探索部9は、仮の親子関係が構築された不一致メッセージと不良トランザクションモデルとを照合する。それから、部分トランザクション探索部9は、不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索する。部分トランザクション探索部9の一例として、部分マッチング部57(S14−2)が挙げられる。
残りメッセージ抽出部10は、仮の親子関係が構築された不一致メッセージから、部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出する。残りメッセージ抽出部10の一例として、部分マッチング部57(S14−3)が挙げられる。
不良トランザクション確定部11は、残りメッセージを子メッセージ候補とする部分トランザクションの数の逆数で示される呼び出し確率を算出する。不良トランザクション確定部11は、呼び出し確率が最も大きい部分トランザクションと残りメッセージとの組み合わせを選択し、組み合わせで示されるトランザクションを不良トランザクションとして確定する。不良トランザクション確定部11の一例として、部分マッチング部57(S14−4,S14−5)が挙げられる。
このように構成することにより、OSやミドルウェアのアップデート後の検証テストにおいて、問題が発生した場合の原因分析作業を効率化することができる。
また、部分トランザクション探索部9は、部分トランザクションモデルに一致したメッセージのうち、メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出する。ここで、部分トランザクションモデルは、不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す。それから、部分トランザクション抽出部9は、部分トランザクション候補の中から、部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を部分トランザクションとして選択する。
このように構成することにより、部分トランザクション抽出部9は、部分トランザクション候補の中から、部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を部分トランザクションとして選択することができる。
残りメッセージ抽出部10は、部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する。このように構成することにより、残りメッセージ抽出部10は、残りメッセージを抽出することができる。
不良トランザクション確定部11は、第1のコンピュータから第2のコンピュータへのアクセスの度に収集されるメッセージを用いて、次の処理を行う。すなわち、不良トランザクション確定部11は、収集したメッセージ毎に得られる、部分トランザクションモデルと前記残りメッセージについて、残りメッセージを子メッセージ候補とする部分トランザクションの数の逆数で示される呼び出し確率の平均を算出する。不良トランザクション確定部11は、呼び出し確率の平均が最も大きい部分トランザクションと残りメッセージとの組み合わせを選択し、組み合わせで示されるトランザクションを不良トランザクションとして確定する。
このように構成することにより、不良トランザクション確定部11は、残りメッセージを子メッセージ候補とする部分トランザクションの数の逆数を呼び出し回数で平均した値を、呼び出し確率とすることができる。
図3は、本実施形態におけるネットワークの構成例を示す。分析装置21は、ネットワーク上にあるスイッチ25を介してパーソナルコンピュータ(クライアント)26、Webサーバ22、アプリケーション(AP)サーバ23、データベース(DB)サーバ24に接続されている。
スイッチ25は、サーバ間のネットワークを接続するネットワークデバイスの1つである。スイッチ25は、パケットのヘッダに含まれる宛先情報に応じて、情報処理装置間の通信経路をスイッチングし、パケットを中継することができる。パケットとは、通信モデルの1つであるTCP/IP[Transmission Control Protocol/InternetProtocol]モデルの中のインターネットレイヤでの送信単位である。
Webサーバ22、APサーバ23、DBサーバ24は、クライアント26からの要求に応じてサービスを提供する。サービスの提供は、Webサーバ22、APサーバ23、DBサーバ24によって互いに連携して実行される。このとき、分析装置21は、ネットワークを介してWebサーバ22−APサーバ23−DBサーバ24間で送受信されるメッセージを取得し、システムの運用形態を分析する。
図4は、テスト対象システムの一例を示す。本実施形態において、一例として、検証テストの対象となるテスト対象システム31として、Webサーバ22、APサーバ23、DBサーバ24を含むWeb3階層システムを用いる。
Webサーバ22、APサーバ23、DBサーバ24のNIC(Network Interface Card)35,36,37は、スイッチ25のポート35,36,37に接続されている。また、クライアント26、分析装置21のNIC40,41は、スイッチ25のポート38,38に接続されている。
スイッチ25は、自身を通過するデータをミラーリングする機能を有している。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。図4の例では、Webサーバ32が接続されたポート35、APサーバ33が接続されたポート36、及びDBサーバ34が接続されたポート37のミラーリング先として、分析装置21が接続されたポート39が指定されている。これにより、各サーバ宛のパケットは宛先となるサーバに入力されるとともに、分析装置21にも入力される。
例えば、クライアント26からの要求に応じて、Webサーバ22、APサーバ23、及びDBサーバ24が連動してサービスを提供する場合を想定する。この場合の検証テストでは、まず、クライアント26からWebサーバ22に対してパケット(例えば、HTTPパケット)が送信される。このとき、HTTPパケットと同じ内容のパケットが分析装置21に入力される。
次に、Webサーバ22からAPサーバ23へパケット(例えば、IIOPのパケット。以下、IIOPパケット)が送信されると、IIOPパケットと同じ内容のパケットが分析装置21に入力される。さらに、APサーバ23からDBサーバ24へ、パケット(例えば、SQLパケット)が送信されると、SQLパケットと同じ内容のパケットが分析装置21に入力される。
分析装置21は、受信したパケットに基づいてメッセージを解析し、上記のシステム可視化技術を用いてテスト対象システム31の稼働状態を分析する。ここでは、分析装置21は、テスト対象システム31のアップデート前に作成したトランザクションモデルと、アップデート後に変更されたトランザクションとの差異を検出する。なお、Webサーバ22、APサーバ23、DBサーバ24のうち少なくとも1つのサーバについて、OSまたはミドルウェア等をアップデートすることを、システムのアップデートと称する。
図5は、本実施形態における分析装置21の構成の一例を示す。分析装置21は、ネットワークを構成するコンピュータが互いにやり取りするパケットをスイッチ25のミラーリング機能を用いて受信し、受信したパケットに基づいてそのコンピュータの稼動状況を監視及び分析を行う。
分析装置21は、パケット取得部51、メッセージ解析部52、モデル生成部53、モデル対応表生成部54、マッチング部55、不良モデル抽出部56、部分マッチング部57、出力部58、記憶部59を含む。
記憶部59は、テスト実行ログ61、トランザクションモデル(モデル)62、モデル対応表63、トランザクション64、不一致メッセージ65、不良モデル66、その他の作業情報等の情報を格納する。テスト実行ログ61は、クライアント26により実行されたテスト実行のログであり、クライアント26より取得されたものが記憶部59に格納されている。
システムのアップデート前に、テスト対象システム31の性能テストが実行された場合、パケット取得部51、メッセージ解析部52、モデル生成部53、モデル対応表生成部54による処理を実行する。
パケット取得部51は、Webサーバ22、APサーバ23、DBサーバ24が互いにやり取りするパケットをスイッチ25のミラーリング機能を用いて取得する。
メッセージ解析部52は、取得した複数のパケットからメッセージを組み立て、メッセージを再構成する。
メッセージ解析部52は、収集したメッセージの内容を解析して、次の内容を含むプロトコルログを生成し、収集したメッセージごとのプロトコルログ(不図示)を記憶部59に格納する。そのプロトコルログには、メッセージの収集時の時刻、リクエストメッセージとレスポンスメッセージとのメッセージ対を示す識別子、リクエストメッセージで要求されている処理を実行するサーバの階層、及びリクエストメッセージで要求されている処理種別が含まれる。処理種別は、例えば、メッセージに適用されているプロトコルがHTTPであれば、処理要求で指定されたURL(Uniform Resource Locator)によって判別できる。
モデル生成部53は、プロトコルログを収集時の時刻によって時系列で並べ、各メッセージ対のリクエストメッセージの収集時の時刻からレスポンスメッセージの収集時の時刻までの時間帯をリクエスト対に対応する処理の処理時間帯とする。それから、モデル生成部53は、階層が最上位のサーバで処理される処理種別のメッセージ対のうち、対応する処理の処理時間帯内に、階層が最上位のサーバで処理される処理種別であって他の識別子を有するメッセージが存在しないメッセージ対を検出する。
モデル生成部53は、検出されたメッセージ対と、メッセージ対に対応する処理の処理時間帯内にあるメッセージで構成される各メッセージ対とを1つのトランザクションに係るメッセージ対と決定する。モデル生成部53は、1つのトランザクションに係る各メッセージ対に基づき、一階層の処理の処理種別と、その処理から呼び出されるその一階層の下位の階層の処理の処理種別との対応関係を示す呼出関係を求める。モデル生成部53は、1つのトランザクションに含まれるメッセージ対に対応する処理の処理時間帯の長さからそのメッセージ対の処理種別に対応する処理に要した処理時間を求める。モデル生成部53は、求めたその呼出関係と求めた処理種別ごとのその処理時間とが定義されたトランザクションモデル62を生成する。
なお、モデル生成部53は、次のようにしてトランザクションモデル62を生成してもよい。すなわち、モデル生成部53は、一階層の処理を呼び出し先とし、その処理の処理時間帯を包含する処理時間帯のその一階層の上位の階層の処理を呼び出し元とする呼び出しが可能であると判断する。この場合、モデル生成部53は、一処理を呼び出し可能な呼び出し元の各処理がその一処理の呼び出しを行う呼び出し確率を、その呼び出し元の各処理に均等に定める。モデル生成部53は、呼び出し可能な処理間の関係ごとに定められた呼び出し確率に基づき、呼び出し元の処理の処理種別と呼び出し先の処理の処理種別との組み合わせごとの平均の呼び出し回数を計算する。モデル生成部53は、その平均の呼び出し回数が所定値以上の処理種別の組み合わせを呼出関係として定義したトランザクションモデル62を生成する。
また、モデル生成部53は、次のようにしてトランザクションモデル62を生成してもよい。すなわち、モデル生成部53は、一階層の処理を呼び出し先とし、その処理の処理時間帯を包含する処理時間帯のその一階層の上位の階層の処理を呼び出し元とする呼び出しが可能であると判断する。この場合、モデル生成部53は、呼び出しが可能な処理間の組み合わせを示す1以上の処理集合候補を生成する。モデル生成部53は、一処理を呼び出し元とした各処理集合候補の信頼度を均等に定め、処理集合候補に含まれる処理の処理種別により処理種別の組み合わせを示す発生パターンを生成する。モデル生成部53は、発生パターンが同じとなる処理集合候補の信頼度を平均化した値をその処理集合候補から生成された発生パターンの信頼度とする。モデル生成部53は、直前に計算された各発生パターンの信頼度を用いて、一処理を呼び出し元として生成された各処理集合候補の信頼度を定めることで、発生パターンの信頼度の計算を繰り返し行う。モデル生成部53は、信頼度が所定値以上の発生パターンに示される呼出関係が定義されたトランザクションモデル62を生成する。
モデル対応表生成部54は、テスト実行ログ61と生成したトランザクションモデル62とを、URL及び時刻で関係付けて、テストに対するトランザクションの出現モデルの対応表(モデル対応表63)を生成する。モデル対応表生成部54は、生成したモデル対応表63を記憶部59に格納する。
システムのアップデート後に、テスト対象システム31の性能テストが実行された場合、パケット取得部51、メッセージ解析部52、マッチング部55、不良モデル抽出部56、部分マッチング部57、出力部58による処理を実行する。
マッチング部55は、記憶部59に格納されたトランザクションモデル62と、システムのアップデート後に取得されたパケットから組み立てられたメッセージをマッチングする。ここでは、マッチング部55は、トランザクションモデル62で示される呼出関係に合致する処理種別間の呼び出しが可能な処理の組み合わせに対応するメッセージのプロトコルログ(システムのアップデート後に作成されたもの)を記憶部59から抽出する。すなわち、マッチング部55は、そのメッセージが、記憶部59に格納されたトランザクションモデル62で示される呼び出し関係に合致するメッセージであるかを判定する。マッチング部55は、そのマッチングの結果、合致したメッセージをトランザクション64として記憶部59に格納する。また、マッチング部55は、そのマッチングの結果、合致しなかったメッセージを不一致メッセージ65として記憶部59に格納する。
不良モデル抽出部56は、システムのアップデート後に得られたテスト実行ログ61とモデル対応表63とから、実行されたトランザクションモデルを抽出する。不良モデル抽出部56は、実行されたトランザクションモデルの中からトランザクション64に存在しないトランザクションモデルを不良モデル66として記憶部59に格納する。
部分マッチング部57は、不一致メッセージ65と不良モデル66とを用いて、部分マッチング処理を実行し、不良トランザクションを分析する。
出力部58は、部分マッチングによる分析結果を、表示装置、プリンタ等に出力する。
なお、本実施形態では、管理対象となる要素として、「メッセージ」、「オブジェクト」、及び「トランザクション」がある。
「メッセージ」は、TCP(Transmission Control Protocol)セッション上で複数の機器がやりとりするデータの最小単位である。例えば、HTTPでのリクエストやそれに対するレスポンスが、メッセージに該当する。なお、メッセージが複数のセグメントに分割され、各セグメントがそれぞれパケットに格納されて伝送される。
「オブジェクト」は、サーバがメッセージを受信してからレスポンスを送信するまでに行う単一又は複数の処理や入力されるデータを仮想的に単一のものとしてまとめたものである。ここで言う処理とは、CPU(Central Processing Unit)での計算、データの入出力とそれぞれに対する待ち時間などが含まれる。
「トランザクション」は、システムに対する要求によって発生するオブジェクト処理の集合である。
図6A及び図6Bは、本実施形態で用いるデータの構造の一例を示す。(A)は、テスト実行ログ61のデータ構造の一例を示す。テスト実行ログ61は、データ項目として、「日時」、「テスト名」、「URL」を含む。「日時」には、テストが実行された日時が設定される。「テスト名」には、性能テストの名称が設定される。「URL」には、HTTPパケットにおいて処理要求で指定されたURLが設定される。
(B)は、トランザクションモデル62、部分トランザクションモデル82のデータ構造の一例を示す。以下では、トランザクションモデルを「モデル」と称し、部分トランザクションモデルを「部分モデル」と称する。モデル62、部分モデル82には、モデル単位で、オブジェクトの階層情報が設定される。モデル62、部分モデル82は、データ項目として、「モデル名」、「第1階層オブジェクト名」、「第2階層オブジェクト名」、「第3階層オブジェクト名」を含む。なお、本実施形態では、Web3階層システムがテストの対象であるから、オブジェクトの階層は3階層であるが、これに限定されない。すなわち、オブジェクトの階層は、サービスを提供するサーバの階層に応じて変更される。
(C)は、モデル対応表のデータ構造の一例を示す。モデル対応表は、データ項目として、「テスト名」、「モデル名」を含む。「テスト名」には、性能テストの名称が設定される。「モデル名」には、トランザクションモデルの名称が設定される。
(D)は、トランザクション64、部分トランザクション83、不良トランザクション89のデータ構造の一例を示す。トランザクション64、部分トランザクション83、不良トランザクション89には、これらのトランザクションに含まれるメッセージIDが設定される。トランザクション64、部分トランザクション83、不良トランザクション89は、データ項目として、「モデル名(メッセージID:メッセージID:・・・)」を含む。メッセージIDは、メッセージを識別するための識別情報である。
(E)は、不一致メッセージ65、残りメッセージ84のデータ構造の一例を示す。不一致メッセージ、残りメッセージは、データ項目として、「時刻」、「メッセージID」、「オブジェクト名」、「レスポンス時間」を含む。
(F)は、子メッセージ候補情報81のデータ構造の一例を示す。子メッセージ候補81には、各メッセージに対する子メッセージ候補が設定される。子メッセージ候補81は、データ項目として、「メッセージID」、「子メッセージID」、・・・を含む。
(G)は、残りメッセージ候補情報85のデータ構造の一例を示す。残りメッセージ候補85は、データ項目として、「モデル名(メッセージID:・・・)」、「オブジェクト名(メッセージID):・・・」を含む。
(H)は、親候補数情報86のデータ構造の一例を示す。親候補数情報86には、親候補数86は、データ項目として、「オブジェクト名(メッセージID)」、「親候補数」を含む。
(I)は、呼び出し確率情報87のデータ構造の一例を示す。呼び出し確率情報87は、データ項目として、「部分モデル名(メッセージID:・・・)」、「オブジェクト名(メッセージID)」、「呼び出し確率」を含む。「部分モデル名(メッセージID:・・・)」には、部分トランザクションモデルに含まれるメッセージのメッセージIDが設定される。「オブジェクト名(メッセージID)」には、部分トランザクションから呼び出されるオブジェクト名が設定される。「呼び出し確率」には、部分トランザクションモデルに対するメッセージの呼び出し確率が設定される。
(J)は、呼び出し確率テーブル88のデータ構造の一例を示す。呼び出し確率テーブル88には、部分トランザクションモデルに対するメッセージの呼び出し確率が設定される。呼び出し確率テーブル88は、データ項目として、「オブジェクト名」、「部分モデル名1の呼び出し確率」、「部分モデル名2の呼び出し確率」等を含む。
まずは、図7−図12を用いて、テスト対象システム31のアップデート前における、分析装置21の処理について説明する。
図7は、本実施形態におけるテスト対象システム31のアップデート前の全体の処理フローを示す。図8は、テスト対象システム31のアップデート前の各種データの一例を示す。
テストは、クライアント26を用いて、テスト対象システム31にアクセスすることにより行われる(S1)。クライアント26を用いたテスト対象システム31へのアクセスは、テストツールを用いて自動で行っても良いし、テスト実行者が手動で行っても良い。テストが実行されると、クライアント26からテスト対象システム31へアクセス要求がされ、一連のトランザクションが開始する。すると、Webサーバ22、APサーバ23、DBサーバ24が互いにパケットをやり取りする。分析装置21は、このパケットを収集する。
次に、分析装置21は、テスト実行時にテスト対象のWebサーバ22、APサーバ23、DBサーバ24に接続されたスイッチ25からパケットをキャプチャし、システム可視化技術を用いてテストのトランザクションモデル62を生成する(S2)。S2の処理について、図9を用いて説明する。
それから、モデル対応表生成部54は、テスト実行ログ61のURLおよび時刻と、モデル62のURLおよび時刻を用いて、テスト実行ログ61とトランザクションモデル62とを関係付けて、テストに対するモデル対応表63を作成する(S3)。
図9は、トランザクションモデル生成処理(S2)の詳細を示す。パケット取得部51は、Webサーバ22、APサーバ23、DBサーバ24が互いにやり取りするパケットをスイッチ25のミラーリング機能を用いて取得する(S2−1)。
メッセージ解析部52は、取得した複数のパケットからメッセージを組み立て、その組み立てたメッセージから、そのメッセージの内容を解析する(S2−2)。メッセージ解析部52は、収集したメッセージの内容を解析して、メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージか(メッセージの方向)を判別する。
モデル生成部53は、呼出元のオブジェクトの処理時間帯に包含された処理時間帯を有する呼出先のオブジェクト(親子関係にあるオブジェクト)を検出する(S2−3)。S2−3の処理について、図10で後述する。モデル生成部53は、図8(B)に示すように、親子関係にあるオブジェクトをトランザクションモデル62として格納する(S2−3)。
図10は、テスト対象システム31のアップデート前のテスト実行例を示すものであって、HTTP-aとHTTP-bのURLにアクセスした場合のWebサーバ22、APサーバ23、DBサーバ24間の呼び出し関係を示す。縦軸は、時間を示す。右方向の矢印は、リクエストメッセージを示す。左方向の矢印は、レスポンスメッセージを示す。
このとき、クライアント26は、テスト対象システム31にアクセスしたURLとその時刻を、図8(A)に示すテスト実行ログ61として出力する。図8(A)のテスト実行ログ61は、Test1とTest2の2つのテストが実行され、それぞれHTTP-aとHTTP-bのURLにアクセスしたことを示す。クライアント26より出力されたテスト実行ログ61は、分析装置21の記憶部59に格納される。
図10の場合、符号71で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号73で示すオブジェクトである。符号73で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号76で示すオブジェクトである。この場合、符号71,73,76で示すオブジェクトは、親子関係があるから、それぞれ、第1階層オブジェクト、第2階層オブジェクト、第3階層オブジェクトと定義される(図8(B)のModel 1)。
また、符号72で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号74,75で示すオブジェクトである。符号74で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号77,78で示すオブジェクトである。符号75で示すオブジェクトの処理時間帯に包含されたオブジェクトは、符号79で示すオブジェクトである。符号72,74,75,77,78,79で示すオブジェクトは、親子関係がある。この場合、符号72で示すオブジェクトは、第1階層オブジェクトで定義される。符号74,75で示されるオブジェクトは、第2階層オブジェクトで定義される。符号77,78,79で示されるオブジェクトは、第3階層オブジェクトと定義される(図8(B)のModel 2)。
図11は、トランザクションモデルの階層関係のイメージ図である。図11は、図8(B)のトランザクションモデル(Model 1、Model 2)をイメージ化したものである。図8(C)、図11では、Test1でModel 1が実行され、Test2でModel 2が実行されたことを示す。
以上でテスト対象システム31のアップデート前の処理は完了となる。
次に、図12−図36を用いて、テスト対象システム31のアップデート後における分析装置21による処理について説明する。
図12は、本実施形態におけるテスト対象システム31のアップデート後の全体の処理フローを示す。クライアント26を用いて、テスト対象システム31に対してアップデート前と同じテストが実行され、同様にテスト実行ログ61’が出力される(S11)。
分析装置21は、テスト対象システム31の各サーバに接続されたスイッチ25からパケットを収集し、メッセージ解析を行う。分析装置21は、解析したメッセージと、テスト対象システム31のアップデート前のトランザクションモデル62とのマッチングを、システム可視化技術を用いて行う(S12)。マッチングの結果、分析装置21は、トランザクションモデル62に合致したトランザクションをトランザクション64として出力し、合致しなかったメッセージを不一致メッセージ65として出力する。
分析装置21は、テスト実行ログ61’とトランザクション64を比較し、アップデート前のモデル対応表63で出現しなかった不良モデル66を抽出する(S13)。
分析装置21は、不一致メッセージ65と不良モデル66を部分マッチングすることにより、不良トランザクションを抽出する。部分マッチング処理は、不良モデル66と不一致メッセージ65を部分的にマッチングし、一致した部分トランザクションと残りの不一致メッセージを紐付けることにより、不良トランザクションを確定する(S14)。
以下では、S12−S14の各処理について詳述する。
図13は、マッチング処理(S12)の詳細フローを示す。図14は、マッチング処理(S12)に関する各種データの一例を示す。パケット取得部51は、Webサーバ22、APサーバ23、DBサーバ24が互いにやり取りするパケットをスイッチ25のミラーリング機能を用いて取得する(S12−1)。
メッセージ解析部52は、取得した複数のパケットからメッセージを組み立て、その組み立てたメッセージから、そのメッセージの内容を解析する(S12−2)。
マッチング部55は、解析したメッセージと、トランザクションモデル62とをマッチングし、トランザクションモデル62に合致するトランザクションをトランザクション64として出力する。一方、マッチング部55は、トランザクションモデル62を構成するメッセージとして一致しなかったメッセージを不一致メッセージ65として出力する。
例えば、解析したメッセージ群が、「HTTP-c -> IIOP-c -> SQL-e,SQL-f」及び「 HTTP-d -> IIOP-d -> SQL-g」であるとする。この場合、マッチング部55は、解析したメッセージと、トランザクションモデル62とをマッチングした結果、図14(A)より、解析したメッセージはトランザクションモデル(Model3、Model4)に合致する。マッチング部55は、図14(B)に示すように、トランザクションモデルModel3,Model4をトランザクション64として出力する。一方、マッチング部55は、トランザクションモデル62を構成するメッセージとして一致しなかったメッセージを、図14(C)に示すように不一致メッセージ65として出力する。
図15は、不良モデル抽出処理(S13)の詳細フローを示す。図16は、不良モデル抽出処理(S13)に関する各種データの一例を示す。不良モデル抽出部56は、図16(A)に示すテスト実行ログ61と、図16(B)に示すモデル対応表63を「テスト名」をキーとして関係付け、実行されたトランザクションモデル(実行モデル)を抽出する(S13−1)。
不良モデル抽出部56は、抽出した実行モデルの中からトランザクション64にないトランザクションモデルを不良モデル66として抽出する(S13−2)。本実施例では、抽出した実行モデルの中から、図14(B)のトランザクション64(Model3、Model4)にない、Test1のModel 1と、Test2のModel 2が不良モデル(図16(C))となる。
図17は、部分マッチング処理(S14)の詳細フローを示す。部分マッチング部57は、不一致メッセージ65の階層間の親子関係候補をリクエスト・レスポンスの内包関係から抽出する(S14−1)。
部分マッチング部57は、親子関係候補に対し、アップデート前のトランザクションモデルと部分的に一致する部分トランザクションを探索する(S14−2)。
部分マッチング部57は、部分トランザクションと残りの不一致メッセージの親子関係候補を抽出する(S14−3)。
部分マッチング部57は、全テスト期間における部分トランザクションと不一致メッセージの呼び出し確率を算出する(S14−4)。
部分マッチング部57は、呼び出し確率が最も大きい組み合わせを選択し、不良トランザクションを出力する(S14−5)。
以下では、S14−1〜S14−5の各処理について詳述する。
まずは、図18〜図22を用いて、S14−1の処理について詳述する。
図18は、図14(C)の不一致メッセージの呼出関係のシーケンス図である。図18において、「ID」とは、メッセージIDを示す。
S14−1では、部分マッチング部57は、不一致メッセージ65の階層間の親子関係候補をリクエスト・レスポンスの内包関係から抽出する。ここで、図19を用いて、内包関係について説明する。
図19は、リクエスト・レスポンスの内包関係を説明するための図である。第i階層のメッセージのリクエストとレスポンスの時刻の間の時間帯に、第i+1階層のメッセージのリクエストとレスポンスの時刻の間の時間帯が含まれていることを「内包」という。第i階層のメッセージのリクエストとレスポンスの時刻の間の時間帯に、第i+1階層のメッセージのリクエストとレスポンスの時刻の間の時間帯が内包される場合、それらのメッセージは親子関係の候補となる。
図20は、図18の不一致メッセージのシーケンスについて、上記の内包関係を用いて、メッセージの親子関係候補を図式化した図である。
図21は、S14−1の詳細フローを示す。部分マッチング部57は、不一致メッセージ65の各メッセージから、次の階層の時間的に内包されるメッセージ(リクエストとレスポンス)を探索する。部分マッチング部57は、図22に示すように、その探索されたメッセージを子メッセージ候補81として出力する。
次に、図23〜図25を用いて、S14−2の処理について詳述する。S14−2では、部分マッチング部57は、親子関係候補から、アップデート前のトランザクションモデルと部分的に一致する部分トランザクションを探索する。
図23は、S14−2の詳細フローを示す。図24は、部分モデル探索を説明するための図である。図25は、S14−2の処理に関する各種データの一例を示す。部分マッチング部57は、部分モデルの探索を行う(S14−2−1)。すなわち、部分マッチング部57は、子メッセージ候補81と、不良モデル66についてのトランザクションモデル62とをマッチングし、部分的に合致したメッセージを部分モデルとして登録する。例えば、図16(C)に示すように、不良モデル66は、mode1 1、model 2であるから、部分マッチング部57は、mode1 1、model 2のトランザクションモデル(図11、図14(A))と、子メッセージ候補81(図20)とをマッチングする。すると、図24に示すように、太線で覆われたメッセージ候補が合致する。部分マッチング部57は、図25(A)に示すように、これらの合致したメッセージを部分モデル82として記憶部59に格納する。
次に、部分マッチング部57は、部分トランザクション候補の抽出を行う(S14−2−2)。すなわち、部分マッチング部57は、部分モデル82に合致したメッセージの中で、メッセージが重複しない部分トランザクションの組み合わせを抽出する。
それから、部分マッチング部57は、部分トランザクション候補の中から部分トランザクションを確定する(S14−2−3)。すなわち、部分マッチング部57は、部分トランザクション候補の組み合わせの中で、メッセージ数が最も多い組み合わせを部分トランザクションとして確定する。S14−2−2及びS14−2−3については、図26を用いて説明する。
図26は、部分トランザクション候補の抽出・確定を説明するための図である。S14−2−1で得られた部分モデル(図24)について、合致したメッセージの中で、メッセージが重複しない部分トランザクションの組み合わせを抽出すると、図26の部分トランザクション候補1,2が得られる。破線で囲んで示すように、複数の組み合わせが存在するので、部分マッチング部57は、合致するメッセージ数が最も多い組み合わせの部分トランザクション候補を選択する。図26において、部分トランザクション候補1のマッチするメッセージ数は6であり、部分トランザクション候補2のマッチするメッセージ数は5である。したがって、部分マッチング部57は、部分トランザクション候補1を選択し、図25(B)に示すように、部分トランザクション83として記憶部59に格納する。
次に、部分マッチング部57は、残りメッセージを抽出する(S14−2−4)。すなわち、部分マッチング部57は、部分トランザクションに含まれないメッセージを残りメッセージ84として記憶部59に格納する。図24の場合では、部分モデルとして抽出されなかった、メッセージ(SQL−x,SQL−y)が残りメッセージ84として記憶部59に格納される。
次に、図27〜図29を用いて、S14−3の処理について詳述する。S14−3では、部分マッチング部57は、部分トランザクションと残りの不一致メッセージの親子関係候補を抽出する。これについて、図27を用いて説明する。
図27は、部分トランザクションと残りの不一致メッセージの親子関係候補の抽出を説明するための図である。図27の左側に示すように、破線で囲まれた部分トランザクションモデル(Model 1-1,Model 2-1)を抽象化して示したものが図27の右側の図である。このとき、残りメッセージSQL−xの親は、Model 1-1の1つである。一方、残りメッセージSQL−yの親は、Model 1-1,Model 2-1の2つである。したがって、S14−3では、これらの親子関係の候補が、図29に示すように、残りメッセージ候補85として抽出される。
図28は、S14−3の詳細フローを示す。図29は、S14−3の処理に関する各種データの一例を示す。部分マッチング部57は、子メッセージ探の探索を行う(S14−3−1)。すなわち、部分マッチング部57は、部分トランザクションに対し、時間的に内包される残りメッセージを探索し、残りメッセージ候補85として記憶部59に格納する。
次に、図30〜図33を用いて、S14−4の処理について詳述する。S14−4では、部分マッチング部57は、全テスト期間における部分トランザクションと不一致メッセージの呼び出し確率(メッセージが部分トランザクションの子である確率)を算出する。これについて、図30を用いて説明する。
図30は、呼び出し確率の算出について説明するための図である。呼び出し確率は、不一致メッセージから見て親となる部分トランザクション数の逆数を呼び出し回数で平均した値である。
例えば、テストAにおいて、メッセージ(SQL−x)から見て親は、部分トランザクションModel 1−1の1つである。したがって、部分トランザクション(Model 1-1)に対するメッセージ(SQL−x)の呼び出し確率は、1.0(=1/1)となる。
また、テストAにおいて、メッセージ(SQL−y)から見て親は、部分トランザクション(Model 1-1,Model 2-1)の2つなので、呼び出し確率は0.5(=1/2)となる。テストBにおいて、メッセージ(SQL−y)から見て親は、部分トランザクション(Model 2-1)の1つなので、呼び出し確率は1(=1/1)となる。したがって、部分トランザクション(Model 1-1,Model 2-1)に対するメッセージ(SQL−y)の呼び出し確率は、呼び出し確率は0.75(=(0.5+1.0)/2)となる。
図31は、S14−4の詳細フローを示す。図32は、S14−4の処理に関する各種データの一例を示す。部分マッチング部57は、残りメッセージ候補85(図32(A))を用いて、残りメッセージに対し、親となる部分トランザクションの数をカウントし、図32(B)に示すように親候補数86として記憶部59に格納する(S14−4−1)。
部分マッチング部57は、図32(C)に示すように、部分トランザクションと残りメッセージの組み合わせに対し、呼び出し確率(親候補数の逆数を呼び出し回数で平均した値)87を算出する(S14−4−2)。
部分マッチング部57は、図32(D)に示すように、部分モデルとオブジェクトの組み合わせに対し、呼び出し確率の平均を呼び出し確率テーブル88に出力する(S14−4−3)。
次に、図33〜図35を用いて、S14−5の処理について詳述する。S14−5では、部分マッチング部57は、呼び出し確率が最も大きい部分トランザクションとメッセージの汲み合わせを選択し、不良トランザクションを確定する。これについて、図33を用いて説明する。
図33は、呼び出し確率が最も大きい部分トランザクションとメッセージの組み合わせを選択し、不良トランザクションを確定することについて説明する図である。図33において、複数の親候補を有するメッセージ(SQL−y)に着目する。部分トランザクション(Model 1-1)に対するメッセージ(SQL−y)の呼び出し確率は、0.5である。部分トランザクション(Model 2-1)に対するメッセージ(SQL−y)の呼び出し確率は、0.75である。この場合、メッセージ(SQL−y)と、呼び出し確率の大きい部分トランザクション(Model 2-1)との組み合わせが選択される。これにより、不良トランザクションが確定する。
図34は、S14−5の詳細フローを示す。図35は、不良トランザクションの一例を示す。部分マッチング部57は、部分トランザクションと残りメッセージの組み合わせが複数ある場合、残りメッセージ候補85と呼び出し確率テーブルを用いて、呼び出し確率が大きい方の組み合わせを選択する(S14−5−1)。
部分マッチング部57は、部分トランザクションに対して、その確定した残りメッセージを追加したものを不良トランザクション89(図35)として記憶部59に記憶する(S14−5−2)。
このように、不一致メッセージと不良モデルを部分マッチングすることにより、不良トランザクションを抽出することができる。部分マッチング処理は、不良モデルと不一致メッセージを部分的にマッチングし、一致した部分トランザクションと残りの不一致メッセージを紐付けることにより、不良トランザクションを確定することができる。
図36は、正解トランザクション及び不良トランザクションの出力イメージを示す。図36の場合、正解トランザクション(アップデート前のトランザクションモデル)と比較すると、不良トランザクション(アップデート後のトランザクション)は、SQL−a、SQL−b、SQL−dが無くなっていることが確認できる。一方で、不良トランザクションに、SQL−x、SQC−yが新たに出現していることが確認できる。テスト実行者は、これらのSQLを比較することにより、アップデートによる影響を調査することが可能である。
図37は、分析装置21のハードウェア構成の一例を示す。分析装置21は、CPU(中央処理演算装置)91、メモリ92、通信制御部93、通信装置94、表示制御部95、表示装置96、入力インターフェース(I/F)97、入力装置98、記憶装置99、読取装置100、バス101を含む。
バス109には、CPU91、メモリ92、通信制御部93、通信装置94、表示制御部95、入力I/F97、入力装置98、記憶装置99、読取装置100等が接続されている。CPU91は、分析装置21の装置全体を制御する。メモリ92は、ROM(リードオンリメモリ)、RAM(ランダムアクセスメモリ)の記憶装置である。読取装置100は、可搬型記録媒体を読み出す装置である。通信制御部93は、テスト対象システム31にアクセス可能なネットワークへ接続され、当該ネットワークについての通信を制御する。通信制御部93は、テスト対象システム31のスイッチ25と接続され、当該スイッチ25との通信を制御する。
表示装置96は、表示制御部95に接続されている。表示制御部95は、CPU91からの命令に従って、画像を表示装置96の画面に表示させる。入力装置98は、入力I/F97に接続にされている。
記憶装置99としては、ハードディスクドライブ、フラッシュメモリ装置、磁気ディスク装置など様々な形式の記憶装置を使用することができる。記憶装置99には、例えば、S、本実施形態に係るプログラム等の情報が格納されている。
CPU91は、記憶装置99から本実施形態に係るプログラムを読み込んで、パケット取得部51、メッセージ解析部52、モデル生成部53、モデル対応表生成部54、マッチング部55、不良モデル抽出部56、部分マッチング部57として機能する。
また、メモリ92または記憶装置99には、テスト実行ログ61、トランザクションモデル62、モデル対応表63、トランザクション64、不一致メッセージ65、不良モデル66、その他の作業テーブル等の情報が格納されている。その他の作業情報とは、例えば、子メッセージ候補81、部分モデル82、部分トランザクション83、残りメッセージ84、残りメッセージ候補85、親候補数86、呼び出し確率87、呼び出し確率テーブル88、不良トランザクション89を示す。
本実施形態において説明した分析装置21の動作を実現するプログラムは、プログラム提供者側から通信ネットワークを介して、例えば記憶装置99に格納してもよい。また、後述する実施形態で説明する処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読取装置100に設定されて、CPU91によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読取装置100によって読み取られる。
また、入力装置98には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレット、タッチパネルなどを用いることが可能である。通信ネットワークは、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
本実施形態によれば、複数のサーバ間でメッセージをやり取りしてサービスを提供するシステムのいずれかのサーバのOSやミドルウェアがアップデートされた場合の検証テストにおいて、アップデート前後のトランザクションの差異を検出することができる。そのため、そのシステムにおいて問題が発生した場合に、問題箇所の特定が容易となり、原因分析作業の効率化を図ることができる。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
ネットワークで接続されたコンピュータ間で送受されるメッセージを収集する収集部と、
第1のコンピュータから第2のコンピュータへ第1のアクセスがあった場合に収集された第1のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第1の処理時間帯を解析し、該第1の処理時間帯に内包される第2の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第1の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第2の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、1つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとするモデル生成部と、
前記第1のアクセスがあった場合に得られる第1のアクセス先の所在情報と第1のアクセス時刻とを含む第1のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成する対応情報生成部と、
前記第1のコンピュータから前記第2のコンピュータへ第2のアクセスがあった場合に収集された第2のメッセージと、前記トランザクションモデルとを照合し、該第2のメッセージから該トランザクションモデルに合致するトランザクションを取得する照合部と、
前記照合の結果、前記第2のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得する不一致メッセージ取得部と、
前記第2のアクセスがあった場合に得られる第2のアクセス先の所在情報と第2のアクセス時刻とを含む第2のアクセスログと前記対応情報とから、該第2のアクセルにおいて実行されたトランザクションモデルを抽出し、該第2のアクセルにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出する不良モデル抽出部と、
前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第3の処理時間帯を解析し、該第3の処理時間帯に内包される第4の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第3の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第4の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築する仮親子関係構築部と、
前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索する部分トランザクション探索部と、
前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出する残りメッセージ抽出部と、
前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する不良トランザクション確定部と、
を備えることを特徴とする分析装置。
(付記2)
前記部分トランザクション探索部は、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションモデルに一致したメッセージのうち、該メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出し、該部分トランザクション候補の中から、該部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を前記部分トランザクションとして選択する
ことを特徴とする付記1に記載の分析装置。
(付記3)
前記残りメッセージ抽出部は、
前記部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する
ことを特徴とする付記2に記載の分析装置。
(付記4)
前記不良トランザクション確定部は、前記第1のコンピュータから前記第2のコンピュータへのアクセスの度に収集されるメッセージを用いて、収集したメッセージ毎に得られる、前記部分トランザクションモデルと前記残りメッセージについて、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率の平均を算出し、該呼び出し確率の平均が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
ことを特徴とする付記1に記載の分析装置。
(付記5)
コンピュータに、
ネットワークで接続されたコンピュータ間で送受されるメッセージを収集し、
第1のコンピュータから第2のコンピュータへ第1のアクセスがあった場合に収集された第1のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第1の処理時間帯を解析し、該第1の処理時間帯に内包される第2の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第1の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第2の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、1つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとし、
前記第1のアクセスがあった場合に得られる第1のアクセス先の所在情報と第1のアクセス時刻とを含む第1のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成し、
前記第1のコンピュータから前記第2のコンピュータへ第2のアクセスがあった場合に収集された第2のメッセージと、前記トランザクションモデルとを照合し、該第2のメッセージから該トランザクションモデルに合致するトランザクションを取得し、
前記照合の結果、前記第2のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得し、
前記第2のアクセスがあった場合に得られる第2のアクセス先の所在情報と第2のアクセス時刻とを含む第2のアクセスログと前記対応情報とから、該第2のアクセルにおいて実行されたトランザクションモデルを抽出し、該第2のアクセルにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出し、
前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第3の処理時間帯を解析し、該第3の処理時間帯に内包される第4の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第3の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第4の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築し、
前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索し、
前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出し、
前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理を実行させる分析プログラム。
(付記6)
前記部分トランザクションの探索において、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションモデルに一致したメッセージのうち、該メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出し、該部分トランザクション候補の中から、該部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を前記部分トランザクションとして選択する
処理をコンピュータに実行させる付記5に記載の分析プログラム。
(付記7)
前記残りメッセージの抽出において、
前記部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する
処理をコンピュータに実行させる付記6に記載の分析プログラム。
(付記8)
前記不良トランザクションの確定において、前記第1のコンピュータから前記第2のコンピュータへのアクセスの度に収集されるメッセージを用いて、収集したメッセージ毎に得られる、前記部分トランザクションモデルと前記残りメッセージについて、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率の平均を算出し、該呼び出し確率の平均が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理をコンピュータに実行させる付記5に記載の分析プログラム。
(付記9)
コンピュータが実行する分析方法であって、
前記コンピュータは、
ネットワークで接続されたコンピュータ間で送受されるメッセージを収集し、
第1のコンピュータから第2のコンピュータへ第1のアクセスがあった場合に収集された第1のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第1の処理時間帯を解析し、該第1の処理時間帯に内包される第2の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第1の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第2の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、1つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとし、
前記第1のアクセスがあった場合に得られる第1のアクセス先の所在情報と第1のアクセス時刻とを含む第1のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成し、
前記第1のコンピュータから前記第2のコンピュータへ第2のアクセスがあった場合に収集された第2のメッセージと、前記トランザクションモデルとを照合し、該第2のメッセージから該トランザクションモデルに合致するトランザクションを取得し、
前記照合の結果、前記第2のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得し、
前記第2のアクセスがあった場合に得られる第2のアクセス先の所在情報と第2のアクセス時刻とを含む第2のアクセスログと前記対応情報とから、該第2のアクセルにおいて実行されたトランザクションモデルを抽出し、該第2のアクセルにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出し、
前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第3の処理時間帯を解析し、該第3の処理時間帯に内包される第4の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第3の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第4の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築し、
前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索し、
前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出し、
前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理を実行する分析方法。
(付記10)
前記部分トランザクションの探索において、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションモデルに一致したメッセージのうち、該メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出し、該部分トランザクション候補の中から、該部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を前記部分トランザクションとして選択する
処理をコンピュータが実行する付記9に記載の分析方法。
(付記11)
前記残りメッセージの抽出において、
前記部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する
処理をコンピュータが実行する付記10に記載の分析方法。
(付記12)
前記不良トランザクションの確定において、前記第1のコンピュータから前記第2のコンピュータへのアクセスの度に収集されるメッセージを用いて、収集したメッセージ毎に得られる、前記部分トランザクションモデルと前記残りメッセージについて、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率の平均を算出し、該呼び出し確率の平均が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
処理をコンピュータが実行する付記9に記載の分析方法。
(付記13)
コンピュータ間において第1のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第2のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得する照合部と、
該第2のアクセルにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出する不良モデル抽出部と、
前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する部分トランザクション抽出部と、
を備えることを特徴とする分析装置。
(付記14)
コンピュータに、
コンピュータ間において第1のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第2のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得し、
該第2のアクセルにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出し、
前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する
処理を実行させる分析プログラム。
(付記15)
コンピュータが実行する分析方法であって、
前記コンピュータは、
コンピュータ間において第1のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第2のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得し、
該第2のアクセルにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出し、
前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する
処理を実行する分析方法。
1 分析装置
2 収集部
3 モデル生成部
4 対応情報生成部
5 照合部
6 不一致メッセージ取得部
7 不良モデル抽出部
8 仮親子関係構築部
9 部分トランザクション探索部
10 残りメッセージ抽出部
11 不良トランザクション確定部
21 分析装置
22 Webサーバ
23 APサーバ
24 DBサーバ
25 スイッチ
26 クライアント
51 パケット取得部
52 メッセージ解析部
53 モデル生成部
54 モデル対応表生成部
55 マッチング部
56 不良モデル抽出部
57 部分マッチング部
58 出力部
59 記憶部

Claims (9)

  1. コンピュータ間において第1のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第2のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得する照合部と、
    該第2のアクセルにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出する不良モデル抽出部と、
    前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する部分トランザクション抽出部と、
    を備えることを特徴とする分析装置。
  2. コンピュータ間で送受されるメッセージを収集する収集部と、
    第1のコンピュータから第2のコンピュータへ第1のアクセスがあった場合に収集された第1のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第1の処理時間帯を解析し、該第1の処理時間帯に内包される第2の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第1の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第2の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、1つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとするモデル生成部と、
    前記第1のアクセスがあった場合に得られる第1のアクセス先の所在情報と第1のアクセス時刻とを含む第1のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成する対応情報生成部と、
    前記第1のコンピュータから前記第2のコンピュータへ第2のアクセスがあった場合に収集された第2のメッセージと、前記トランザクションモデルとを照合し、該第2のメッセージから該トランザクションモデルに合致するトランザクションを取得する照合部と、
    前記照合の結果、前記第2のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得する不一致メッセージ取得部と、
    前記第2のアクセスがあった場合に得られる第2のアクセス先の所在情報と第2のアクセス時刻とを含む第2のアクセスログと前記対応情報とから、該第2のアクセルにおいて実行されたトランザクションモデルを抽出し、該第2のアクセルにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出する不良モデル抽出部と、
    前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第3の処理時間帯を解析し、該第3の処理時間帯に内包される第4の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第3の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第4の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築する仮親子関係構築部と、
    前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索する部分トランザクション探索部と、
    前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出する残りメッセージ抽出部と、
    前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する不良トランザクション確定部と、
    を備えることを特徴とする分析装置。
  3. 前記部分トランザクション探索部は、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションモデルに一致したメッセージのうち、該メッセージが重複しない部分トランザクションの組み合わせを部分トランザクション候補として抽出し、該部分トランザクション候補の中から、該部分トランザクション候補に含まれるメッセージ数の総和が最も多くなる部分トランザクション候補を前記部分トランザクションとして選択する
    ことを特徴とする請求項2に記載の分析装置。
  4. 前記残りメッセージ抽出部は、
    前記部分トランザクションの処理時間帯に内包される処理時間帯を有する残りメッセージを抽出する
    ことを特徴とする請求項3に記載の分析装置。
  5. 前記不良トランザクション確定部は、前記第1のコンピュータから前記第2のコンピュータへのアクセスの度に収集されるメッセージを用いて、収集したメッセージ毎に得られる、前記部分トランザクションモデルと前記残りメッセージについて、前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率の平均を算出し、該呼び出し確率の平均が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
    ことを特徴とする請求項2に記載の分析装置。
  6. コンピュータに、
    コンピュータ間において第1のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第2のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得し、
    該第2のアクセルにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出し、
    前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する
    処理を実行させる分析プログラム。
  7. コンピュータに、
    コンピュータ間で送受されるメッセージを収集し、
    第1のコンピュータから第2のコンピュータへ第1のアクセスがあった場合に収集された第1のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第1の処理時間帯を解析し、該第1の処理時間帯に内包される第2の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第1の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第2の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、1つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとし、
    前記第1のアクセスがあった場合に得られる第1のアクセス先の所在情報と第1のアクセス時刻とを含む第1のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成し、
    前記第1のコンピュータから前記第2のコンピュータへ第2のアクセスがあった場合に収集された第2のメッセージと、前記トランザクションモデルとを照合し、該第2のメッセージから該トランザクションモデルに合致するトランザクションを取得し、
    前記照合の結果、前記第2のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得し、
    前記第2のアクセスがあった場合に得られる第2のアクセス先の所在情報と第2のアクセス時刻とを含む第2のアクセスログと前記対応情報とから、該第2のアクセルにおいて実行されたトランザクションモデルを抽出し、該第2のアクセルにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出し、
    前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第3の処理時間帯を解析し、該第3の処理時間帯に内包される第4の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第3の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第4の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築し、
    前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索し、
    前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出し、
    前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
    処理を実行させる分析プログラム。
  8. コンピュータが実行する分析方法であって、
    前記コンピュータは、
    コンピュータ間において第1のアクセスで得られたメッセージを用いて生成したトランザクションのモデルと、第2のアクセスで得られたメッセージとを照合して、該モデルに合致するトランザクションと、該トランザクションを構成するメッセージ以外の不一致メッセージとを取得し、
    該第2のアクセルにおいて実行された前記モデルから、前記取得したトランザクションと一致するモデル以外のモデルを示す不良モデルを抽出し、
    前記不一致メッセージから、前記不良モデルと部分的に一致するメッセージにより構成される部分トランザクションを抽出する
    処理を実行する分析方法。
  9. コンピュータが実行する分析方法であって、
    前記コンピュータは、
    コンピュータ間で送受されるメッセージを収集し、
    第1のコンピュータから第2のコンピュータへ第1のアクセスがあった場合に収集された第1のメッセージを用いて、通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージとの収集時刻との差で示される第1の処理時間帯を解析し、該第1の処理時間帯に内包される第2の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第1の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し元メッセージとし、該第2の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを呼び出し先メッセージとして、1つのトランザクションを構成するメッセージ群を解析し、該解析したメッセージ群をトランザクションモデルとし、
    前記第1のアクセスがあった場合に得られる第1のアクセス先の所在情報と第1のアクセス時刻とを含む第1のアクセスログと、前記トランザクションモデルとを関係付けた対応情報を生成し、
    前記第1のコンピュータから前記第2のコンピュータへ第2のアクセスがあった場合に収集された第2のメッセージと、前記トランザクションモデルとを照合し、該第2のメッセージから該トランザクションモデルに合致するトランザクションを取得し、
    前記照合の結果、前記第2のメッセージから、前記トランザクションモデルに合致するトランザクションを構成するメッセージ以外の不一致メッセージを取得し、
    前記第2のアクセスがあった場合に得られる第2のアクセス先の所在情報と第2のアクセス時刻とを含む第2のアクセスログと前記対応情報とから、該第2のアクセルにおいて実行されたトランザクションモデルを抽出し、該第2のアクセルにおいて実行されたトランザクションモデルから、前記取得したトランザクションと一致するトランザクションモデル以外のトランザクションモデルを示す不良トランザクションモデルを抽出し、
    前記不一致メッセージを用いて、前記通信プロトコル毎の対となるリクエストメッセージとレスポンスメッセージの収集時刻との差で示される第3の処理時間帯を解析し、該第3の処理時間帯に内包される第4の処理時間帯を有する対となるリクエストメッセージとレスポンスメッセージを解析し、該第3の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを親メッセージ候補とし、該第4の処理時間帯に対応するリクエストメッセージとレスポンスメッセージを子メッセージ候補とし、該親メッセージ候補と該子メッセージ候補とを用いて、仮の親子関係を構築し、
    前記仮の親子関係が構築された不一致メッセージと前記不良トランザクションモデルとを照合し、前記不良トランザクションモデルと部分的に一致するメッセージにより構成されるトランザクションを示す部分トランザクションを探索し、
    前記仮の親子関係が構築された不一致メッセージから、前記部分トランザクションを構成するメッセージ以外の不一致メッセージを示す残りメッセージを抽出し、
    前記残りメッセージを子メッセージ候補とする前記部分トランザクションの数の逆数で示される呼び出し確率を算出し、該呼び出し確率が最も大きい前記部分トランザクションと前記残りメッセージとの組み合わせを選択し、該組み合わせで示されるトランザクションを不良トランザクションとして確定する
    処理を実行する分析方法。
JP2011180901A 2011-08-22 2011-08-22 分析装置、分析方法、及び分析方法 Expired - Fee Related JP5733103B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011180901A JP5733103B2 (ja) 2011-08-22 2011-08-22 分析装置、分析方法、及び分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011180901A JP5733103B2 (ja) 2011-08-22 2011-08-22 分析装置、分析方法、及び分析方法

Publications (2)

Publication Number Publication Date
JP2013045179A true JP2013045179A (ja) 2013-03-04
JP5733103B2 JP5733103B2 (ja) 2015-06-10

Family

ID=48009064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011180901A Expired - Fee Related JP5733103B2 (ja) 2011-08-22 2011-08-22 分析装置、分析方法、及び分析方法

Country Status (1)

Country Link
JP (1) JP5733103B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003248597A (ja) * 2002-02-25 2003-09-05 Nec Corp リグレッションテスト方法及びリグレッションテスト装置
JP2006011683A (ja) * 2004-06-24 2006-01-12 Fujitsu Ltd システム分析プログラム、システム分析方法及びシステム分析装置
JP2008217235A (ja) * 2007-03-01 2008-09-18 Fujitsu Ltd システム監視プログラム、システム監視方法およびシステム監視装置
JP2009244948A (ja) * 2008-03-28 2009-10-22 Fujitsu Ltd サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法
JP2010049324A (ja) * 2008-08-19 2010-03-04 Fujitsu Ltd システム分析プログラム、システム分析装置、システム分析方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003248597A (ja) * 2002-02-25 2003-09-05 Nec Corp リグレッションテスト方法及びリグレッションテスト装置
JP2006011683A (ja) * 2004-06-24 2006-01-12 Fujitsu Ltd システム分析プログラム、システム分析方法及びシステム分析装置
JP2008217235A (ja) * 2007-03-01 2008-09-18 Fujitsu Ltd システム監視プログラム、システム監視方法およびシステム監視装置
JP2009244948A (ja) * 2008-03-28 2009-10-22 Fujitsu Ltd サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法
JP2010049324A (ja) * 2008-08-19 2010-03-04 Fujitsu Ltd システム分析プログラム、システム分析装置、システム分析方法

Also Published As

Publication number Publication date
JP5733103B2 (ja) 2015-06-10

Similar Documents

Publication Publication Date Title
Zheng et al. Xblock-eth: Extracting and exploring blockchain data from ethereum
US20220156249A1 (en) Correlating different types of data of a distributed ledger system
CN110928772B (zh) 一种测试方法及装置
US10769228B2 (en) Systems and methods for web analytics testing and web development
US10489283B2 (en) Software defect reporting
EP2871574B1 (en) Analytics for application programming interfaces
US8656006B2 (en) Integrating traffic monitoring data and application runtime data
US8402131B2 (en) Hierarchy for characterizing interactions with an application
US9483387B1 (en) Tree comparison functionality for services
US7890808B2 (en) Testing software applications based on multiple data sources
US11507562B1 (en) Associating data from different nodes of a distributed ledger system
US8751184B2 (en) Transaction based workload modeling for effective performance test strategies
CN107124289B (zh) 网络日志时间对齐方法、装置及主机
US11106562B2 (en) System and method for detecting anomalies based on feature signature of task workflows
US20100017486A1 (en) System analyzing program, system analyzing apparatus, and system analyzing method
CN113360376A (zh) 埋点测试方法和装置
JP2016192185A (ja) なりすまし検出システムおよびなりすまし検出方法
US10241957B2 (en) Workload patterns for realistic load recreation in performance testing
US11704219B1 (en) Performance monitoring of distributed ledger nodes
JP2018133044A (ja) WebAPI実行フロー生成装置およびWebAPI実行フロー生成方法
US7653742B1 (en) Defining and detecting network application business activities
JP5733103B2 (ja) 分析装置、分析方法、及び分析方法
JP6070338B2 (ja) 多階層システムに含まれる処理システムの分類装置及び多階層システムに含まれる処理システムの分類プログラム並びに多階層システムに含まれる処理システムの分類方法
Raffety et al. Multi-source log clustering in distributed systems
CN111800409A (zh) 接口攻击检测方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150302

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150330

R150 Certificate of patent or registration of utility model

Ref document number: 5733103

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees