JP5440164B2 - Analysis program and control program - Google Patents

Analysis program and control program Download PDF

Info

Publication number
JP5440164B2
JP5440164B2 JP2009298735A JP2009298735A JP5440164B2 JP 5440164 B2 JP5440164 B2 JP 5440164B2 JP 2009298735 A JP2009298735 A JP 2009298735A JP 2009298735 A JP2009298735 A JP 2009298735A JP 5440164 B2 JP5440164 B2 JP 5440164B2
Authority
JP
Japan
Prior art keywords
message
processing
transaction
call
model
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.)
Expired - Fee Related
Application number
JP2009298735A
Other languages
Japanese (ja)
Other versions
JP2010152899A (en
Inventor
リリアン 原田
伸弘 湯上
健一 小林
浩 大塚
乾 横山
理一郎 武
和己 久保田
勇次 堀田
直輝 赤星
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 JP2009298735A priority Critical patent/JP5440164B2/en
Publication of JP2010152899A publication Critical patent/JP2010152899A/en
Application granted granted Critical
Publication of JP5440164B2 publication Critical patent/JP5440164B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はトランザクションを分析するための分析プログラム、分析方法及び分析装置に関する。 The invention analysis program for analyzing the transaction relates min析方method及beauty analysis device.

最近のIT(情報通信技術)を利用したコンピュータシステムは大規模かつ複雑な構成であることが多い。例えば、オンラインバンキングの入金や振込み処理など、各種業務サービスがWebサーバ/アプリケーションサーバ/データベース(DB)サーバからなるWeb3階層システムにて提供される例が増えている。こういったシステムは、業務の効率化やセキュリティ対策などの理由から大規模で複雑な構成である。また、即時性を要求される業務サービスが多く、サービス停止やレスポンス悪化は大きな問題である。そのため、大規模システムに対する運用状況の詳細な把握や性能問題の迅速な解決が必須である。   Computer systems using recent IT (information and communication technology) often have large-scale and complicated configurations. For example, an increasing number of business services such as online banking payment and transfer processing are provided by a Web three-tier system including a Web server / application server / database (DB) server. Such a system has a large-scale and complicated configuration for reasons such as operational efficiency and security measures. In addition, there are many business services that require immediacy, and service suspension and response deterioration are major problems. Therefore, it is essential to grasp the operational status for large-scale systems in detail and to quickly solve performance problems.

しかも、複数のアプリケーションが連携して動作する複雑なシステム(Web3階層システムなど)で、性能劣化や障害の原因を突き止めるためには、サーバそれぞれの挙動だけでなくシステム全体としての性能を観測・分析することが必要である。例えば、Web3階層システムにおいては、Webサーバへの処理要求に伴ってアプリケーションサーバへの処理要求が発生する場合がある。アプリケーションサーバ・DBサーバ間についても同様である。こういったアプリケーション間における処理の呼出関係は、性能問題のシステム内への波及を調べる上で必須である。   In addition, in a complex system (such as a Web three-tier system) in which multiple applications work together, in order to determine the cause of performance degradation and failure, not only the behavior of each server but also the performance of the entire system is observed and analyzed. It is necessary to. For example, in a Web three-tier system, a processing request to an application server may occur with a processing request to a Web server. The same applies to the application server / DB server. Such a call relationship of processing between applications is indispensable for investigating the spread of performance problems into the system.

そこで、ユーザのリクエストからレスポンスまでの各アプリケーションの処理を追跡する機能が望まれている。このような追跡が可能となれば、システムに存在する問題の分析が容易となる。   Therefore, a function for tracking the processing of each application from a user request to a response is desired. If such tracking becomes possible, it becomes easy to analyze problems existing in the system.

サーバ間の処理の受け渡しを追跡する技術としては、例えば、各サーバにエージェントを実装し、そのエージェントに個々のサーバの運用状況を解析及びレポートさせる技術がある(例えば、非特許文献1参照)。   As a technique for tracking the delivery of processing between servers, for example, there is a technique in which an agent is installed in each server, and the agent analyzes and reports the operation status of each server (see, for example, Non-Patent Document 1).

エージェントによって運用状態を把握し、その結果をレポートする技術は実用化されている(例えば、非特許文献2,3参照)。   A technique for grasping an operation state by an agent and reporting the result has been put into practical use (for example, see Non-Patent Documents 2 and 3).

「Technical Standard Application Response Measurement(ARM) Issue4.0-C Binding」THE OPEN GROUP、2003年10月、Figure 2"Technical Standard Application Response Measurement (ARM) Issue 4.0-C Binding", THE OPEN GROUP, October 2003, Figure 2 「IBM Tivoli Monitoring for Transaction Performance helps maximize performance of your applications.」,"IBM Corporation Software Group",2003年9月"IBM Tivoli Monitoring for Transaction Performance helps maximize performance of your applications.", "IBM Corporation Software Group", September 2003 「IBM Tivoli Monitoring for Transaction Performance, Version 5.2」,"IBM Corporation Software Group"、2003年9月"IBM Tivoli Monitoring for Transaction Performance, Version 5.2", "IBM Corporation Software Group", September 2003

しかし、従来の技術では、アプリケーション単位の詳細な情報を取得する場合には、各サーバに対してエージェント等の何らかのアプリケーションを組み込んで対応する必要がある。そのため、既存システムの性能分析が困難である。特に最近のシステムでは、アプリケーション毎に異なる企業によって作成されている。従って、全てのアプリケーションについて、エージェントとの間の情報の受け渡しを行うように改良することは困難である。   However, in the conventional technology, when acquiring detailed information for each application, it is necessary to incorporate some application such as an agent into each server. Therefore, it is difficult to analyze the performance of existing systems. In particular, recent systems are created by different companies for each application. Therefore, it is difficult to improve all applications so as to exchange information with agents.

本発明はこのような点に鑑みてなされたものであり、システムのサービス提供機能に手を加えずにトランザクションを分析できる分析プログラム、分析方法及び分析装置を提供することを目的とする。 The present invention has been made in view of these points, analysis program that can analyze transactions without touching the service providing function of the system, aims to provide a partial析方method及beauty analysis device And

本発明では上記課題を解決するために、複数のサーバが配置されるシステムにおいて実行されるトランザクションを分析するための分析プログラムにおいて、コンピュータに、前記複数のサーバ間を繋ぐネットワークを介して受け渡されるメッセージを収集する手順、収集した前記メッセージの内容を解析して、リクエストメッセージとレスポンスメッセージとのメッセージ対に関する情報を記憶手段に格納する格納手順、前記記憶手段から前記情報を読み出し、呼出関係を求め、求めた該呼出関係を有するトランザクションモデルを生成するモデル生成手順、を実行させるための分析プログラムが提供される。 In the present invention, in order to solve the above-mentioned problem, in an analysis program for analyzing a transaction executed in a system in which a plurality of servers are arranged, the analysis program is delivered to a computer via a network connecting the plurality of servers. A procedure for collecting messages, a storage procedure for analyzing the contents of the collected messages and storing information about a message pair of a request message and a response message in a storage means, and reading the information from the storage means to obtain a call relationship An analysis program for executing a model generation procedure for generating a transaction model having the obtained calling relationship is provided.

また、上記課題を解決するために、複数のサーバが配置されるシステムにおいて実行されるトランザクションを分析するための分析装置において、前記複数のサーバ間を繋ぐネットワークを介して受け渡されるメッセージを収集する手段、収集した前記メッセージの内容を解析して、リクエストメッセージとレスポンスメッセージとのメッセージ対に関する情報を記憶手段に格納する格納手段、モデル生成指示が入力されると、前記記憶手段から前記情報を読み出し、呼出関係を求め、求めた該呼出関係を有するトランザクションモデルを生成するモデル生成手段、を有する分析装置が提供される。 In addition, in order to solve the above-described problem, an analyzer for analyzing transactions executed in a system in which a plurality of servers are arranged collects messages passed through a network connecting the plurality of servers. Means for analyzing the contents of the collected messages, storing means for storing information on a message pair of a request message and a response message in the storage means, and reading the information from the storage means when a model generation instruction is input There is provided an analyzer having model generation means for determining a call relationship and generating a transaction model having the determined call relationship .

さらに、上記課題を解決するために、複数のサーバが配置されるシステムにおいて実行されるトランザクションを分析するための分析方法において、コンピュータが、前記複数のサーバ間を繋ぐネットワークを介して受け渡されるメッセージを収集し、収集した前記メッセージの内容を解析して、リクエストメッセージとレスポンスメッセージとのメッセージ対に関する情報を記憶手段に格納し、モデル生成指示が入力されると、前記記憶手段から前記情報を読み出し、呼出関係を求め、求めた該呼出関係を有するトランザクションモデルを生成する、分析方法が提供される。 Further, in order to solve the above problem, in an analysis method for analyzing a transaction executed in a system in which a plurality of servers are arranged, a message passed by a computer via a network connecting the plurality of servers And analyzing the contents of the collected message, storing information about the message pair of the request message and the response message in the storage means, and reading the information from the storage means when a model generation instruction is input An analysis method for obtaining a call relationship and generating a transaction model having the found call relationship is provided.

本発明では、メッセージ集合からトランザクションモデル成が可能となる。 In the present invention, it is possible to generate a transaction model from message set.

実施の形態に適用される発明の概念図である。It is a conceptual diagram of the invention applied to embodiment. 第1の実施の形態に係るシステム構成を示す図である。It is a figure which shows the system configuration | structure which concerns on 1st Embodiment. システム分析装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of a system analyzer. システム分析装置の機能ブロックを示す図である。It is a figure which shows the functional block of a system analyzer. システム分析処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of a system analysis process. メッセージ観測状況を示す概念図である。It is a conceptual diagram which shows a message observation condition. パケットデータ記憶部のデータ構造例を示す図である。It is a figure which shows the example of a data structure of a packet data storage part. パケットに含まれる情報を示す図である。It is a figure which shows the information contained in a packet. IPヘッダの詳細を示す図である。It is a figure which shows the detail of an IP header. TCPヘッダの詳細を示す図である。It is a figure which shows the detail of a TCP header. メッセージ解析部の機能を示すブロック図である。It is a block diagram which shows the function of a message analysis part. 再構成したセッションの例である。It is an example of a reconfigured session. メッセージ再構成例を示す第1の図である。It is a 1st figure which shows the example of a message reconstruction. リクエストへのレスポンスメッセージの対応付けの例を示す図である。It is a figure which shows the example of matching of the response message to a request. オブジェクト名の割り当て例を示す図である。It is a figure which shows the example of assignment of an object name. 1つのトランザクションを構成する各メッセージのオブジェクト名の割り当てとメッセージ解析結果を示す図である。It is a figure which shows assignment of the object name of each message which comprises one transaction, and a message analysis result. プロトコルログの例を示す図である。It is a figure which shows the example of a protocol log. プロトコルログ記憶部に格納されたプロトコルログの例を示す図である。It is a figure which shows the example of the protocol log stored in the protocol log memory | storage part. トランザクションモデル生成処理を示すフローチャートである。It is a flowchart which shows a transaction model production | generation process. 選択されるモデル生成用メッセージを示す図である。It is a figure which shows the message for model generation selected. 「残高確認」トランザクションのモデル生成例を示す図である。It is a figure which shows the model generation example of a "balance confirmation" transaction. 「入金」トランザクションのモデル生成例を示す図である。It is a figure which shows the example of model generation of a "deposit" transaction. 分析処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of an analysis process. 分析部へ入力されるメッセージの例を示す図である。It is a figure which shows the example of the message input into an analysis part. メッセージ分析例を示す第1の図である。It is a 1st figure which shows the example of a message analysis. メッセージ分析例を示す第2の図である。It is a 2nd figure which shows the example of a message analysis. メッセージ分析例を示す第3の図である。It is a 3rd figure which shows the example of a message analysis. メッセージ分析例を示す第4の図である。It is a 4th figure which shows the example of a message analysis. メッセージ分析例を示す第5の図である。It is a 5th figure which shows the example of a message analysis. メッセージ分析例を示す第6の図である。It is a 6th figure which shows the example of a message analysis. メッセージ分析例を示す第7の図である。It is a 7th figure which shows the example of a message analysis. メッセージ分析例を示す第8の図である。It is an 8th figure which shows the example of a message analysis. メッセージ分析例を示す第9の図である。It is a 9th figure which shows the example of a message analysis. メッセージ分析例を示す第10の図である。It is a 10th figure which shows the example of a message analysis. サーバの平均処理時間の表示例を示す図である。It is a figure which shows the example of a display of the average processing time of a server. トランザクション別処理時間及び内訳の表示例を示す図である。It is a figure which shows the example of a display of the processing time according to transaction, and a breakdown. 処理時間ヒストグラムの表示例を示す図である。It is a figure which shows the example of a display of a processing time histogram. 複数の情報を同時に表示した場合の画面例を示す図である。It is a figure which shows the example of a screen at the time of displaying a some information simultaneously. 表示対象要素間の連携の様子を示す図である。It is a figure which shows the mode of the cooperation between display object elements. 分析部へ入力されるメッセージの例を示す図である。It is a figure which shows the example of the message input into an analysis part. モデル生成部に入力されたメッセージから認識される処理を示す図である。It is a figure which shows the process recognized from the message input into the model production | generation part. 制約を満たす処理間の呼出関係を示す図である。It is a figure which shows the calling relationship between the processes which satisfy | fill restrictions. 呼出回数行列の例を示す図である。It is a figure which shows the example of a call frequency matrix. 呼び出し候補の確率を求めた結果を示す図である。It is a figure which shows the result of having calculated | required the probability of a call candidate. 更新後の呼出回数行列を示す図である。It is a figure which shows the number-of-calls matrix after an update. 2回目の処理で呼び出し候補の確率を求めた結果を示す図である。It is a figure which shows the result of having calculated | required the probability of a call candidate by the process of the 2nd time. 2回目の更新後の呼出回数行列を示す図である。It is a figure which shows the number-of-calls matrix after the 2nd update. 最終的に得られた呼出回数行列及び生成されるトランザクションモデルを示す図である。It is a figure which shows the call frequency matrix finally obtained, and the transaction model produced | generated. 第2の実施の形態におけるトランザクションモデル生成手順を示すフローチャートである。It is a flowchart which shows the transaction model production | generation procedure in 2nd Embodiment. 処理種別Aからの呼出パターンとその確率を示す第1の図である。It is a 1st figure which shows the calling pattern from the process classification A, and its probability. 処理種別Bからの呼出パターンとその確率を示す第1の図である。It is a 1st figure which shows the calling pattern from the process classification B, and its probability. 処理種別Aからの呼出パターンとその確率を示す第2の図である。It is a 2nd figure which shows the calling pattern from the process classification A, and its probability. 処理種別Bからの呼出パターンとその確率を示す第2の図である。It is a 2nd figure which shows the calling pattern from the process classification B, and its probability. モデル生成結果を示す図である。It is a figure which shows a model production | generation result. 第3の実施の形態におけるトランザクションモデル生成手順を示すフローチャートである。It is a flowchart which shows the transaction model production | generation procedure in 3rd Embodiment.

以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
First, the outline of the invention applied to the embodiment will be described, and then the specific contents of the embodiment will be described.

図1は、実施の形態に適用される発明の概念図である。システム分析装置1は、ネットワーク2を介してクライアント3a,3b,・・・やサーバ4a,4b,・・・に接続されている。サーバ4a,4b,・・・は、クライアント3a,3b,・・・からの要求に応じてサービスを提供する。サービスの提供は、複数のサーバ4a,4b,・・・によって互いに連携して実行される。このときシステム分析装置1は、ネットワーク2を介して送受信されるメッセージ5を取得し、ネットワーク2の運用形態を分析する。分析を行うために、システム分析装置1は、図1に示す各機能を有している。   FIG. 1 is a conceptual diagram of the invention applied to the embodiment. The system analysis device 1 is connected to clients 3a, 3b,... And servers 4a, 4b,. The servers 4a, 4b,... Provide services in response to requests from the clients 3a, 3b,. Service provision is performed in cooperation with each other by a plurality of servers 4a, 4b,. At this time, the system analysis apparatus 1 acquires the message 5 transmitted / received via the network 2 and analyzes the operation mode of the network 2. In order to perform analysis, the system analysis apparatus 1 has the functions shown in FIG.

メッセージ観測手段1aは、ネットワーク2を介して受け渡されるメッセージ5を収集する。収集したメッセージ5は、メッセージ解析手段1bに渡される。
メッセージ解析手段1bは、収集したメッセージの内容を解析して、メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージか(メッセージの方向)を判別する。処理種別は、例えば、メッセージに適用されているプロトコルがHTTP(HyperText Transfer Protocol)であれば、処理要求で指定されたURL(Uniform Resource Locator)によって判別できる。そして、メッセージ解析手段1bは、判別された情報をプロトコルログとしてプロトコルログ記憶手段1cに格納する。
The message observing means 1a collects the messages 5 delivered via the network 2. The collected message 5 is transferred to the message analysis unit 1b.
The message analysis unit 1b analyzes the contents of the collected message to determine the processing type requested by the message and whether it is a request message or a response message (message direction). For example, if the protocol applied to the message is HTTP (HyperText Transfer Protocol), the processing type can be determined by a URL (Uniform Resource Locator) specified in the processing request. Then, the message analysis unit 1b stores the determined information in the protocol log storage unit 1c as a protocol log.

モデル生成手段1dは、モデル生成指示が入力されると、プロトコルログ記憶手段1cに格納されたプロトコルログにおける処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、処理種別に対応する各処理を認識する。そして、モデル生成手段1dは、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づき、処理間の呼出関係に関する制約条件を満たすトランザクションモデルを生成する。モデル生成手段1dは、生成したトランザクションモデルをトランザクションモデル記憶手段1eに格納する。   When the model generation instruction is input, the model generation unit 1d performs each process corresponding to the process type based on the correspondence between the request message and the response message for each process type in the protocol log stored in the protocol log storage unit 1c. recognize. Then, the model generation unit 1d generates a transaction model that satisfies the constraint condition regarding the call relationship between processes based on the message set selected according to the selection criterion based on the probability of the call relationship between processes. The model generation unit 1d stores the generated transaction model in the transaction model storage unit 1e.

なお、選択基準としては、例えば、処理時間帯が他のトランザクションと重複しない非多重トランザクションの時間帯内のメッセージの集合を選択することが定められる。また、制約条件は、例えば、呼出元の処理時間帯は呼出先の処理時間帯を包含するという条件である。   As a selection criterion, for example, it is determined to select a set of messages in a non-multiple transaction time zone whose processing time zone does not overlap with other transactions. The constraint condition is, for example, a condition that the processing time zone of the call source includes the processing time zone of the call destination.

分析手段1fは、分析指示が入力されると、トランザクションモデル記憶手段1eに格納されたトランザクションモデルで示される呼出関係に合致するプロトコルログをプロトコルログ記憶手段1cから抽出し、抽出されたプロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析する。例えば、トランザクション内での各サーバでの処理時間が分析される。   When the analysis instruction is input, the analysis unit 1f extracts from the protocol log storage unit 1c a protocol log that matches the call relationship indicated by the transaction model stored in the transaction model storage unit 1e. Analyze the processing state of the transaction consisting of the indicated message. For example, the processing time at each server in the transaction is analyzed.

出力手段1gは、分析手段1fによる分析結果を、グラフ等の視覚的に認識しやすい統計情報としてモニタ等に出力する。
このようなシステム分析装置1であれば、メッセージ観測手段1aにより、ネットワーク2を介して受け渡されるメッセージ5が収集される。すると、メッセージ解析手段1bにより、収集したメッセージの内容が解析され、メッセージの発生時刻、メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージかが判別され、判別された情報がプロトコルログとしてプロトコルログ記憶手段1cに格納される。
The output unit 1g outputs the analysis result by the analysis unit 1f to a monitor or the like as statistical information that is easily visually recognized, such as a graph.
In the case of such a system analyzing apparatus 1, the message 5 passed through the network 2 is collected by the message observation unit 1a. Then, the content of the collected message is analyzed by the message analysis unit 1b, and the time of occurrence of the message, the processing type requested by the message, and whether it is a request message or a response message are determined, and the determined information is used as a protocol log. It is stored in the protocol log storage means 1c.

このとき、モデル生成指示が入力されると、モデル生成手段1dにより、プロトコルログ記憶手段に格納されたプロトコルログにおける処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、処理種別に対応する各処理が認識される。そして、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づき、制約条件を満たすトランザクションモデルが生成される。そして、生成されたトランザクションモデルがトランザクションモデル記憶手段1eに格納される。   At this time, when a model generation instruction is input, each model corresponding to the processing type is determined by the model generation unit 1d according to the correspondence between the request message and the response message for each processing type in the protocol log stored in the protocol log storage unit. Processing is recognized. Then, a transaction model that satisfies the constraint condition is generated based on the message set selected according to the selection criterion based on the probability of the call relationship between the processes. The generated transaction model is stored in the transaction model storage unit 1e.

また、分析指示が入力されると、分析手段1fにより、トランザクションモデル記憶手段1eに格納されたトランザクションモデルで示される呼出関係に合致するプロトコルログがプロトコルログ記憶手段1cから抽出され、抽出されたプロトコルログに示されるメッセージで構成されるトランザクションの処理状態が分析される。分析結果は、出力手段1gによって出力され、ユーザに対して提示される。   When an analysis instruction is input, a protocol log that matches the calling relationship indicated by the transaction model stored in the transaction model storage unit 1e is extracted from the protocol log storage unit 1c by the analysis unit 1f, and the extracted protocol is extracted. The processing state of the transaction consisting of the message shown in the log is analyzed. The analysis result is output by the output unit 1g and presented to the user.

このように、ネットワーク2を介して受け渡されるメッセージ5から、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合からトランザクションモデルを生成するようにした。すなわち、処理間の呼出関係として生起確率が高い関係を選択し、その関係によって成立するトランザクションをモデル化している。このようにして生成したトランザクションモデルと合致するメッセージをプロトコルログから検出することで、サーバ4a,4bに対して機能追加を行わずに、共通のトランザクションを構成するメッセージ集合を特定し、処理状態の解析が可能となる。   As described above, a transaction model is generated from a message set selected according to a selection criterion based on the probability of a call relationship between processes from the message 5 delivered via the network 2. That is, a relationship having a high probability of occurrence is selected as a call relationship between processes, and a transaction established by the relationship is modeled. By detecting a message that matches the transaction model generated in this way from the protocol log, it is possible to identify a set of messages that constitute a common transaction without adding a function to the servers 4a and 4b. Analysis is possible.

以下、本発明の実施の形態について詳細に説明する。
[第1の実施の形態]
第1の実施の形態では、インターネットバンキングの業務サービスを提供するWeb3階層システムにおいて、「残高確認」と「入金」との2つのサービスを提供する場合の例である。
Hereinafter, embodiments of the present invention will be described in detail.
[First Embodiment]
The first embodiment is an example in the case where two services of “balance check” and “payment” are provided in a Web three-tier system that provides Internet banking business services.

なお、第1の実施の形態では、管理対象となる要素として「セッション」、「メッセージ」、「オブジェクト」、及び「トランザクション」がある。
「セッション」は、送受信側のIP(Internet Protocol)アドレスとポート番号によって定まる通信路上で送受信されるデータの集合である。
In the first embodiment, there are “session”, “message”, “object”, and “transaction” as elements to be managed.
A “session” is a set of data transmitted and received on a communication path determined by an IP (Internet Protocol) address and a port number on the transmission / reception side.

「メッセージ」は、TCP(Transmission Control Protocol)セッション上で複数の機器がやりとりするデータの最小単位である。例えば、HTTPでのリクエストやそれに対するレスポンスが、メッセージに該当する。   The “message” is a minimum unit of data exchanged by a plurality of devices on a TCP (Transmission Control Protocol) session. For example, an HTTP request or a response to the request corresponds to the message.

「オブジェクト」は、サーバがメッセージを受信してからレスポンスを送信するまでに行う単一又は複数の処理や入力されるデータを仮想的に単一のものとしてまとめたものである。ここで言う処理とは、CPU(Central Processing Unit)での計算、データの入出力とそれぞれに対する待ち時間などが含まれる。   The “object” is a virtual collection of single or plural processes performed from when the server receives a message to when a response is transmitted and input data. The processing referred to here includes calculation in a CPU (Central Processing Unit), input / output of data, waiting time for each, and the like.

「トランザクション」は、システムに対する要求によって発生するオブジェクト処理の集合である。
図2は、第1の実施の形態に係るシステム構成を示す図である。図2の例では、スイッチ10を介して、クライアント21,22,23、Webサーバ31、アプリケーションサーバ32、データベース(DB)サーバ33、及びシステム分析装置100が接続されている。Webサーバ31、アプリケーションサーバ32、及びDBサーバ33は、クライアント21,22,23からの要求に応じて、サービスを提供する。
A “transaction” is a set of object processes generated by a request to the system.
FIG. 2 is a diagram illustrating a system configuration according to the first embodiment. In the example of FIG. 2, clients 21, 22, 23, Web server 31, application server 32, database (DB) server 33, and system analysis apparatus 100 are connected via the switch 10. The Web server 31, application server 32, and DB server 33 provide services in response to requests from the clients 21, 22, and 23.

サービスを提供する為のトランザクションにおいて、Webサーバ31、アプリケーションサーバ32、及びDBサーバ33間で、スイッチ10を介してメッセージの送受信が行われる場合がある。このスイッチ10を介して送受信されるメッセージをシステム分析装置100が監視することで、システムの動作状態の分析を行うことができる。   In a transaction for providing a service, a message may be transmitted and received between the Web server 31, the application server 32, and the DB server 33 via the switch 10. The system analysis apparatus 100 monitors messages sent and received via the switch 10 to analyze the system operating state.

図3は、システム分析装置のハードウェア構成例を示す図である。システム分析装置100は、CPU101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。   FIG. 3 is a diagram illustrating a hardware configuration example of the system analysis apparatus. The entire system analyzer 100 is controlled by the CPU 101. A random access memory (RAM) 102, a hard disk drive (HDD) 103, a graphic processing device 104, an input interface 105, and a communication interface 106 are connected to the CPU 101 via a bus 107.

RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。   The RAM 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the CPU 101. The RAM 102 stores various data necessary for processing by the CPU 101. The HDD 103 stores an OS and application programs.

グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。   A monitor 11 is connected to the graphic processing device 104. The graphic processing device 104 displays an image on the screen of the monitor 11 in accordance with a command from the CPU 101. A keyboard 12 and a mouse 13 are connected to the input interface 105. The input interface 105 transmits a signal transmitted from the keyboard 12 or the mouse 13 to the CPU 101 via the bus 107.

通信インタフェース106は、スイッチ10に接続されている。通信インタフェース106は、スイッチ10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、システム分析装置100のハードウェア構成例を示したが、クライアント21,22,23、Webサーバ31、アプリケーションサーバ32、及びDBサーバ33も同様のハードウェア構成で実現することができる。
The communication interface 106 is connected to the switch 10. The communication interface 106 transmits / receives data to / from another computer via the switch 10.
With the hardware configuration as described above, the processing functions of the present embodiment can be realized. FIG. 3 shows an example of the hardware configuration of the system analysis apparatus 100, but the clients 21, 22, 23, the Web server 31, the application server 32, and the DB server 33 are also realized with the same hardware configuration. Can do.

図4は、システム分析装置の機能ブロックを示す図である。システム分析装置100は、パケットデータ記憶部111、プロトコルログ記憶部112、モデル記憶部113、分析結果記憶部114、メッセージ観測部120、メッセージ解析部130、モデル生成部140、分析部150、及び出力部160を有している。   FIG. 4 is a diagram illustrating functional blocks of the system analysis apparatus. The system analysis apparatus 100 includes a packet data storage unit 111, a protocol log storage unit 112, a model storage unit 113, an analysis result storage unit 114, a message observation unit 120, a message analysis unit 130, a model generation unit 140, an analysis unit 150, and an output Part 160.

パケットデータ記憶部111は、スイッチ10を介して送受信されたメッセージを構成するパケット記憶するための記憶装置である。プロトコルログ記憶部112は、パケットを解析することにより取得したメッセージの情報を記憶するための記憶装置である。モデル記憶部113は、トランザクションを完了するまでに送受信されるメッセージのリスト(トランザクションモデル)を記憶する記憶装置である。分析結果記憶部114は、メッセージの分析結果を記憶する記憶装置である。   The packet data storage unit 111 is a storage device for storing packets constituting messages transmitted / received via the switch 10. The protocol log storage unit 112 is a storage device for storing message information acquired by analyzing a packet. The model storage unit 113 is a storage device that stores a list (transaction model) of messages that are transmitted and received until a transaction is completed. The analysis result storage unit 114 is a storage device that stores message analysis results.

メッセージ観測部120は、スイッチ10を介して送受信されるメッセージを観測し、そのメッセージを構成するパケットをパケットデータ記憶部111に格納する。
メッセージ解析部130は、パケットデータ記憶部111に格納されたパケットの内容を解析し、解析結果をプロトコルログ記憶部112に格納する。
The message observation unit 120 observes a message transmitted / received via the switch 10 and stores a packet constituting the message in the packet data storage unit 111.
The message analysis unit 130 analyzes the contents of the packet stored in the packet data storage unit 111 and stores the analysis result in the protocol log storage unit 112.

モデル生成部140は、プロトコルログ記憶部112に格納された情報に基づいてトランザクションモデルを生成し、モデル記憶部113に格納する。
分析部150は、プロトコルログ記憶部112に格納された情報と、モデル記憶部113に格納されたトランザクションモデルとを比較して、各トランザクションの処理時間等の統計情報を分析する。そして、分析部150は、分析結果を分析結果記憶部114に格納する。
The model generation unit 140 generates a transaction model based on the information stored in the protocol log storage unit 112 and stores it in the model storage unit 113.
The analysis unit 150 compares the information stored in the protocol log storage unit 112 with the transaction model stored in the model storage unit 113, and analyzes statistical information such as the processing time of each transaction. Then, the analysis unit 150 stores the analysis result in the analysis result storage unit 114.

出力部160は、分析結果記憶部114に格納されている分析結果を、グラフ等でモニタ11等に出力する。
このような構成のシステム分析装置100で、次のようなシステム分析処理が実行される。
The output unit 160 outputs the analysis result stored in the analysis result storage unit 114 to the monitor 11 or the like as a graph or the like.
The system analysis apparatus 100 configured as described above executes the following system analysis processing.

図5は、システム分析処理の手順を示すフローチャートである。以下、図5に示す処理をステップ番号に沿って説明する。
[ステップS11]メッセージ観測部120は、スイッチ10を流れるメッセージを観測し、パケットデータ記憶部111に格納する。
FIG. 5 is a flowchart showing a procedure of system analysis processing. Hereinafter, the process illustrated in FIG. 5 will be described in order of step number.
[Step S11] The message observation unit 120 observes the message flowing through the switch 10 and stores it in the packet data storage unit 111.

[ステップS12]メッセージ解析部130は、パケットデータ記憶部111に格納されたメッセージを解析する。
[ステップS13]その後、モデル生成部140により、モデル生成指示が入力されているか否かが判断されるとともに、分析部150により、分析指示が入力されているかが判断される。モデル生成指示や分析指示は、例えば、システム分析装置100の管理者によるキーボード12等を用いた操作入力によって与えられる。モデル生成指示が入力されている場合、処理がステップS14に進められる。分析指示が入力されている場合、処理がステップS15に進められる。
[Step S12] The message analysis unit 130 analyzes the message stored in the packet data storage unit 111.
[Step S13] Thereafter, the model generation unit 140 determines whether or not a model generation instruction is input, and the analysis unit 150 determines whether or not an analysis instruction is input. The model generation instruction and the analysis instruction are given by, for example, an operation input using the keyboard 12 or the like by the administrator of the system analysis apparatus 100. If a model generation instruction has been input, the process proceeds to step S14. If an analysis instruction has been input, the process proceeds to step S15.

[ステップS14]モデル生成指示が入力されている場合、モデル生成部140は、プロトコルログ記憶部112に格納されている情報を参照し、トランザクションモデルを生成する。そして、モデル生成部140は、生成したトランザクションモデルをモデル記憶部113に格納する。その後、処理が終了する。   [Step S14] When a model generation instruction is input, the model generation unit 140 refers to the information stored in the protocol log storage unit 112 and generates a transaction model. Then, the model generation unit 140 stores the generated transaction model in the model storage unit 113. Thereafter, the process ends.

[ステップS15]分析指示が入力されている場合、分析部150は、モデル記憶部113に格納されているトランザクションモデルとプロトコルログ記憶部112に格納されている情報とを参照し、実行されているトランザクションに関する情報を分析する。そして、分析部150は、分析結果を分析結果記憶部114に格納する。   [Step S15] When an analysis instruction is input, the analysis unit 150 is executed with reference to the transaction model stored in the model storage unit 113 and the information stored in the protocol log storage unit 112. Analyze information about transactions. Then, the analysis unit 150 stores the analysis result in the analysis result storage unit 114.

[ステップS16]出力部160は、分析結果記憶部114に格納された分析結果に基づいて、統計情報等をモニタ11に出力する。その後、処理が終了する。
このような手順でシステム分析が行われる。以下、図5に示す各ステップの処理を、詳細に説明する。
[Step S16] The output unit 160 outputs statistical information and the like to the monitor 11 based on the analysis result stored in the analysis result storage unit 114. Thereafter, the process ends.
System analysis is performed in such a procedure. Hereinafter, the process of each step shown in FIG. 5 will be described in detail.

まず、メッセージ観測処理について説明する。
図6は、メッセージ観測状況を示す概念図である。この例では、Webサーバ31、アプリケーションサーバ32、DBサーバ33が監視対象となっている。各サーバは、スイッチ10の個別のポート11,12,13に接続されている。また、システム管理装置100は、スイッチ10のポート14に接続されている。
First, message observation processing will be described.
FIG. 6 is a conceptual diagram showing a message observation situation. In this example, the Web server 31, application server 32, and DB server 33 are monitored. Each server is connected to an individual port 11, 12, 13 of the switch 10. Further, the system management apparatus 100 is connected to the port 14 of the switch 10.

スイッチ10は、自身を通過するデータをミラーリングする機能を有している。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。   The switch 10 has a function of mirroring data passing through the switch 10. Mirroring is a function for outputting the same data as data output to a certain port from other ports.

図6の例では、Webサーバ31が接続されたポート11、アプリケーションサーバ32が接続されたポート12、及びDBサーバ33が接続されたポート13のミラーリング先として、システム分析装置100が接続されたポート14が指定されている。これにより、各サーバ宛のパケットは宛先となるサーバに入力されるとともに、システム分析装置100にも入力される。   In the example of FIG. 6, the port to which the system analysis apparatus 100 is connected as a mirroring destination of the port 11 to which the Web server 31 is connected, the port 12 to which the application server 32 is connected, and the port 13 to which the DB server 33 is connected. 14 is designated. Thereby, the packet addressed to each server is input to the destination server and also input to the system analysis apparatus 100.

例えば、クライアント21からの要求に応じて、Webサーバ31、アプリケーションサーバ32、及びDBサーバ33が連動してサービスを提供する場合を想定する。この場合、まず、クライアント21からWebサーバ31に対してパケット41(例えば、HTTPのパケット)が送信される。このとき、パケット41と同じ内容のパケット51がシステム分析装置100に入力される。次に、Webサーバ31からアプリケーションサーバ32へパケット42(例えば、IIOP(Internet Inter-ORB Protocol)のパケット)が送信されると、パケット42と同じ内容のパケット52がシステム分析装置100に入力される。さらに、アプリケーションサーバ32からDBサーバ33へ、パケット43(例えば、DBアクセスのパケット)が送信されると、パケット43と同じ内容のパケット53がシステム分析装置100に入力される。   For example, it is assumed that the Web server 31, the application server 32, and the DB server 33 provide services in response to a request from the client 21. In this case, first, a packet 41 (for example, an HTTP packet) is transmitted from the client 21 to the Web server 31. At this time, a packet 51 having the same contents as the packet 41 is input to the system analysis apparatus 100. Next, when a packet 42 (for example, an IIOP (Internet Inter-ORB Protocol) packet) is transmitted from the Web server 31 to the application server 32, a packet 52 having the same contents as the packet 42 is input to the system analysis apparatus 100. . Further, when a packet 43 (for example, a DB access packet) is transmitted from the application server 32 to the DB server 33, a packet 53 having the same contents as the packet 43 is input to the system analysis apparatus 100.

システム分析装置100に入力されたパケット51,52,53は、スイッチ10に直接接続されたメッセージ観測部120で取得され、パケットデータ記憶部111に格納される。具体的には、メッセージ観測部120は、スイッチ10から送られたパケット51,52,53をキャプチャし、受信時刻とともにパケットデータ記憶部111に格納する。   Packets 51, 52, 53 input to the system analysis apparatus 100 are acquired by the message observation unit 120 directly connected to the switch 10 and stored in the packet data storage unit 111. Specifically, the message observation unit 120 captures the packets 51, 52, and 53 sent from the switch 10, and stores them in the packet data storage unit 111 together with the reception time.

なお、メッセージ観測部120は、キャプチャしたパケット51,52,53を蓄積せずに、観測と同時にメッセージ解析部130に送ってもよい。また、メッセージ観測部120は、メッセージ観測手段において必要なパケットのみをキャプチャすることもできる。さらに、スイッチ10において必要なデータのみを選択してミラーリングすることもできる。   Note that the message observation unit 120 may send the captured packets 51, 52, and 53 to the message analysis unit 130 at the same time as observation without accumulating the captured packets 51, 52, and 53. Further, the message observation unit 120 can also capture only necessary packets in the message observation means. Furthermore, only necessary data can be selected and mirrored in the switch 10.

図7は、パケットデータ記憶部のデータ構造例を示す図である。パケットデータ記憶部111には、複数のパケット551〜558が格納されている。また、パケットデータ記憶部111には、各パケットデータ551〜558の受信時刻を示す時刻情報61〜68が格納されている。   FIG. 7 is a diagram illustrating an example of the data structure of the packet data storage unit. The packet data storage unit 111 stores a plurality of packets 551 to 558. The packet data storage unit 111 stores time information 61 to 68 indicating reception times of the packet data 551 to 558.

図8は、パケットに含まれる情報を示す図である。時刻情報61とともに格納されているパケット551は、イーサネットヘッダ(Etherヘッダ)(イーサネット:登録商標)551a、IPヘッダ551b、TCPヘッダ551c、及びTCPデータ551dで構成される。   FIG. 8 is a diagram illustrating information included in a packet. The packet 551 stored together with the time information 61 includes an Ethernet header (Ethernet header) (Ethernet: registered trademark) 551a, an IP header 551b, a TCP header 551c, and TCP data 551d.

図9は、IPヘッダの詳細を示す図である。IPヘッダ551bは、バージョン情報(version)、ヘッダ長、サービスタイプ(Type of Service)、データ長、識別子(ID)、フラグ(Flag)、フラグメントオフセット(Fragment Offset)、生存時間(Time Of Live)、プロトコル(Protocol)、ヘッダチェックサム(Header Checksum)、送信側IPアドレス、受信側IPアドレス、オプション(Option)、及びパディング(Padding)で構成されている。   FIG. 9 is a diagram showing details of the IP header. The IP header 551b includes version information (version), header length, service type (Type of Service), data length, identifier (ID), flag (Flag), fragment offset (Fragment Offset), lifetime (Time Of Live), The protocol (Protocol), header checksum (Header Checksum), transmission side IP address, reception side IP address, option (Option), and padding (Padding).

図10は、TCPヘッダの詳細を示す図である。TCPヘッダ551cは、送信側ポート、受信側ポート、送信用シーケンス番号(Sequence Number)、応答確認番号(Acknowledge Number)、ヘッダ長、リザーブ(Reserved)、フラグ、ウィンドウ(Window)、チェックサム(Checksum)、緊急ポインタ(Urgent Pointer)、及びオプション(Option)で構成される。フラグは、さらに、URG(Urgent Flag)、ACK(Acknowledgement Flag)、PSH(Push Flag)、RST(Reset Flag)、SYN(Synchronize Flag)、FIN(Fin Flag)で構成される。   FIG. 10 is a diagram showing details of the TCP header. The TCP header 551c includes a transmission side port, a reception side port, a transmission sequence number (Sequence Number), a response acknowledgment number (Acknowledge Number), a header length, a reserved (Reserved), a flag, a window (Window), and a checksum (Checksum). , An urgent pointer (Urgent Pointer), and an option (Option). The flag is further composed of URG (Urgent Flag), ACK (Acknowledgement Flag), PSH (Push Flag), RST (Reset Flag), SYN (Synchronize Flag), and FIN (Fin Flag).

メッセージ観測部120で取得したパケットは、メッセージ解析部130で解析される。
図11は、メッセージ解析部の機能を示すブロック図である。メッセージ解析部130は、TCP/UDP(User Datagram Protocol)セッション再構成部131、メッセージ再構成部132、オブジェクト名割り当て部133、及びログ出力部134を有している。
The packet acquired by the message observation unit 120 is analyzed by the message analysis unit 130.
FIG. 11 is a block diagram illustrating functions of the message analysis unit. The message analysis unit 130 includes a TCP / UDP (User Datagram Protocol) session reconfiguration unit 131, a message reconfiguration unit 132, an object name assignment unit 133, and a log output unit 134.

TCP/UDPセッション再構成部131は、パケット551〜558を、そのパケット551〜558が属するセッション71〜73毎に振り分ける。メッセージ再構成部132は、セッション71〜73に振り分けられたパケット551〜558の中から所定のデータを抽出し、メッセージ対81〜83を再構成する。オブジェクト名割り当て部133は、メッセージ対81〜83に対応するオブジェクト名を決定する。ログ出力部134は、処理結果をプロトコルログ記憶部112に出力する。   The TCP / UDP session reconfiguration unit 131 distributes the packets 551 to 558 to the sessions 71 to 73 to which the packets 551 to 558 belong. The message reconstructing unit 132 extracts predetermined data from the packets 551 to 558 distributed to the sessions 71 to 73, and reconstructs the message pairs 81 to 83. The object name assigning unit 133 determines object names corresponding to the message pairs 81 to 83. The log output unit 134 outputs the processing result to the protocol log storage unit 112.

メッセージ観測部120からメッセージ解析部130にパケット551〜558が入力されると、TCP/UDPセッション再構成部131、メッセージ再構成部132、オブジェクト名割り当て部133、ログ出力部134の順番で、処理が実行される。なお、メッセージ観測部120から渡されるパケット551〜558は、パケットデータ記憶部111に予め格納されたパケットが渡される場合と、メッセージ観測部120によって観測されたパケットが転送される場合とがある。   When the packets 551 to 558 are input from the message observation unit 120 to the message analysis unit 130, the processing is performed in the order of the TCP / UDP session reconfiguration unit 131, the message reconfiguration unit 132, the object name allocation unit 133, and the log output unit 134. Is executed. Note that the packets 551 to 558 delivered from the message observation unit 120 may be a packet stored in advance in the packet data storage unit 111 or a packet observed by the message observation unit 120 may be transferred.

以下、メッセージ解析部130内の各要素が実行する処理を、詳細に説明する。
メッセージ解析部130に渡されたパケット551〜558は、まず、TCP/UDPセッション再構成部131に入力される。TCP/UDPセッション再構成部131は、入力されたパケット551〜558のセッション別の振り分けを行う。
Hereinafter, processing executed by each element in the message analysis unit 130 will be described in detail.
The packets 551 to 558 passed to the message analysis unit 130 are first input to the TCP / UDP session reconfiguration unit 131. The TCP / UDP session reconfiguration unit 131 distributes the input packets 551 to 558 by session.

具体的には、TCP/UDPセッション再構成部131は、まずパケット551のIPヘッダ551bから、送受信側IPアドレス(図9参照)を取得する。次に、TCP/UDPセッション再構成部131は、TCPヘッダ551cから送信側ポート番号と受信側ポート番号とを取得する(図10参照)。そして、TCP/UDPセッション再構成部131は、取得した4つの値の組をセッションの識別子とする。このとき、識別子に一意な番号を割り当てることもできる。   Specifically, the TCP / UDP session reconfiguration unit 131 first acquires the transmission / reception side IP address (see FIG. 9) from the IP header 551b of the packet 551. Next, the TCP / UDP session reconfiguration unit 131 acquires the transmission side port number and the reception side port number from the TCP header 551c (see FIG. 10). Then, the TCP / UDP session reconfiguration unit 131 uses the acquired set of four values as a session identifier. At this time, a unique number can be assigned to the identifier.

TCP/UDPセッション再構成部131は、各パケット551〜558の識別子を生成し、同じ識別子を持つパケットを、同じセッションで送られたパケットであるとして振り分ける。   The TCP / UDP session reconfiguration unit 131 generates identifiers for the packets 551 to 558, and sorts packets having the same identifier as packets sent in the same session.

次に、TCP/UDPセッション再構成部131は、TCPの場合、TCPヘッダ551cに含まれるフラグを読み取って、開始・確立・切断などのセッション状態を取得する(図10参照)。例えば、SYN「1」のパケットの検出によってセッションの開始を認識し、そのパケットに対するACK「1」の応答によってセッションの確立を認識し、セッション確立状態でデータ伝送とそれに対するACK「1」の応答が繰り返し行われ、最後にFIN「1」パケットの検出によってセッションの切断を認識する。   Next, in the case of TCP, the TCP / UDP session reconfiguration unit 131 reads a flag included in the TCP header 551c and acquires a session state such as start / establish / disconnect (see FIG. 10). For example, the start of a session is recognized by detecting a packet of SYN “1”, the establishment of the session is recognized by a response of ACK “1” to the packet, and data transmission and a response of ACK “1” to the data transmission in the session establishment state Is repeatedly performed, and finally the disconnection of the session is recognized by detecting the FIN “1” packet.

また、TCP/UDPセッション再構成部131は、IPヘッダ551b・TCPヘッダ551cに含まれるデータ長とヘッダ長を取得して、データ長から各ヘッダ長を引くことでデータ部の長さ(データサイズ)を取得する。   Also, the TCP / UDP session reconfiguration unit 131 acquires the data length and header length included in the IP header 551b / TCP header 551c, and subtracts each header length from the data length to obtain the length of the data portion (data size ) To get.

さらに、TCP/UDPセッション再構成部131に対して、事前に各サーバのIPアドレスを与えておくことで、IPアドレスの組から各パケットの送信方向を決定することもできる。   Furthermore, by giving the IP address of each server to the TCP / UDP session reconfiguration unit 131 in advance, the transmission direction of each packet can be determined from the set of IP addresses.

また、TCP/UDPセッション再構成部131は、例えば、パケットのIPヘッダから、サーバアドレスが送信アドレスにあれば送信側ポート番号を、サーバアドレスが宛て先アドレスにあれば受信側ポート番号を読み取る。そして、TCP/UDPセッション再構成部131は、そのポート番号を識別子とすることでどのサービスに関するセッションであるかを調べることができる。例えば、サーバ側のポートが80番である場合、Webサーバとの通信(HTTP)であると判定する。   Also, the TCP / UDP session reconfiguration unit 131 reads, for example, the transmission side port number if the server address is in the transmission address and the reception side port number if the server address is in the destination address, from the IP header of the packet. Then, the TCP / UDP session reconfiguration unit 131 can check which service the session is for by using the port number as an identifier. For example, when the port on the server side is No. 80, it is determined that the communication is with the Web server (HTTP).

図12は、再構成したセッションの例である。TCP/UDPセッション再構成部131によって、パケット551〜558からTCPのセッション71〜73が再構成される。図12では、縦軸が時間軸を表している(図中、上から下に時間が進行する)。   FIG. 12 is an example of a reconfigured session. The TCP / UDP session reconfiguration unit 131 reconfigures TCP sessions 71 to 73 from the packets 551 to 558. In FIG. 12, the vertical axis represents the time axis (time progresses from top to bottom in the figure).

各軸の上の数字が、各機器のIPアドレスを表している。IPアドレスの組によってパケットが振り分けられている。図12では、各パケットから取得したフラグもしくはデータサイズとともに時系列のシーケンスで表示されている。   The number on each axis represents the IP address of each device. Packets are distributed according to a set of IP addresses. In FIG. 12, the flag or data size acquired from each packet is displayed in a time-series sequence.

このように、セッション71〜73毎に振り分けられたパケットがメッセージ再構成部132に渡される。
メッセージ再構成部132は、セッション71〜73毎に振り分けられパケットのデータ部からメッセージを再構成する。メッセージ再構成部132では、まず同一のセッション71〜73で送受信されるパケットの集まりからデータ部分を抜き出して並べる。そして、メッセージ再構成部132は、並べられたデータ部分の列を、プロトコルのフォーマットに従ってメッセージのサイズを取得してメッセージを分割する。このとき、メッセージが複数に分割送信されていた場合には、複数のデータ部分を連結してひとつのメッセージを切り出してよい。もしくは、連結された複数のメッセージが送信されていた場合には、単一のデータ部から複数のメッセージを切り出してよい。また、各メッセージにはセッション上で一意な番号を割り振ってよい。
In this way, the packet distributed for each of the sessions 71 to 73 is transferred to the message reconstructing unit 132.
The message reconstruction unit 132 reconstructs a message from the data portion of the packet distributed for each of the sessions 71 to 73. In the message reconstruction unit 132, first, a data portion is extracted from a collection of packets transmitted and received in the same session 71 to 73 and arranged. Then, the message reconstructing unit 132 divides the message by acquiring the size of the message in the aligned data portion according to the protocol format. At this time, if the message is divided and transmitted in a plurality, a plurality of data portions may be connected to cut out one message. Alternatively, when a plurality of concatenated messages are transmitted, a plurality of messages may be cut out from a single data part. Each message may be assigned a unique number on the session.

図13は、メッセージ再構成例を示す第1の図である。図13は、送信側IPアドレスが10.25.21.10、受信側IPアドレスが10.25.214.105、送信側ポート番号が3449、受信側ポート番号が80である識別子を持つセッション71上のメッセージを解析する例である。 FIG. 13 is a first diagram illustrating an example of message reconstruction. FIG. 13 shows that the transmission side IP address is 10.25.21 4 . 10 is an example of analyzing a message on the session 71 having an identifier with a receiving side IP address of 10.25.214.105, a transmitting side port number of 3449, and a receiving side port number of 80.

メッセージ再構成部132は、パケット554の属するセッションの受信側ポート番号が80番であることから、パケット554のデータ部をHTTPによるクライアント21からWebサーバ31へのリクエストであると判定し、HTTPメッセージとして切り分ける。   Since the receiving port number of the session to which the packet 554 belongs is 80, the message reconstruction unit 132 determines that the data part of the packet 554 is a request from the client 21 to the Web server 31 using HTTP, and the HTTP message Carve as

HTTPの場合、メッセージ再構成部132は、データから特定のオクテットの組み合わせ(0x0D0A0D0A=\r\n\r\n)を検索し、その位置までをヘッダ部(HTTPヘッダ)とする。次に、データ部(HTTPデータ)が存在する場合には、ヘッダ部に含まれるContent-Lengthフィールドからデータ部の長さを取得し、メッセージを切り出すとともに、メッセージを構成する最初のパケット554の受信時刻「00.00.00:100」をそのメッセージの受信時刻とする。そして、メッセージ再構成部132は、メッセージ種別や要求されたURL、応答結果データを取得する。   In the case of HTTP, the message reconstruction unit 132 searches for a specific combination of octets (0x0D0A0D0A = \ r \ n \ r \ n) from the data, and sets the header part (HTTP header) up to that position. Next, when the data part (HTTP data) exists, the length of the data part is acquired from the Content-Length field included in the header part, the message is cut out, and the first packet 554 constituting the message is received. The time “00.00.00: 100” is set as the reception time of the message. Then, the message reconstruction unit 132 acquires the message type, the requested URL, and response result data.

例えばHTTPメッセージから取得する情報としては、ヘッダ長・データ長・メッセージ種別・URL・個別のパラメータなどがある。また、例えばIIOPメッセージから取得する情報としては、ヘッダ長・データ長・メッセージ種別・メソッド名・個別のパラメータなどがある。さらに、例えばDBメッセージから取得する情報としては、ヘッダ長・データ長・メッセージ種別・SQL(Structured Query Language)文・SQL文のパラメータなどがある。   For example, information acquired from an HTTP message includes a header length, a data length, a message type, a URL, and individual parameters. For example, information acquired from an IIOP message includes a header length, a data length, a message type, a method name, and individual parameters. Further, for example, information acquired from a DB message includes a header length, a data length, a message type, a SQL (Structured Query Language) statement, a SQL statement parameter, and the like.

図13の例では、HTTPリクエストメッセージのヘッダの先頭がPOSTであり、その直後が/corba/servlet/Balanceであることからメッセージ種別はPOST、オブジェクトを表すURLは/corba/servlet/Balanceであることが分かる。また、Content-Lengthフィールドの値が29であることからデータ部の長さは29バイトあることが分かる。したがって、メッセージ再構成部132は、ヘッダ終端から29バイトまでをメッセージとして切り出す。   In the example of FIG. 13, the header of the HTTP request message starts with POST, and immediately after is / corba / servlet / Balance, the message type is POST, and the URL representing the object is / corba / servlet / Balance. I understand. Further, since the value of the Content-Length field is 29, it can be seen that the length of the data part is 29 bytes. Therefore, the message reconstruction unit 132 cuts out 29 bytes from the end of the header as a message.

また、メッセージ再構成部132では、実行主体に対するリクエストメッセージとその返答であるレスポンスメッセージを対応付け、応答までにかかった時間を算出する。例えばHTTPの場合、リクエストメッセージを、同一のセッション上で直後に現れるレスポンスメッセージと対応付ける。また、レスポンスメッセージの受信時刻からリクエストメッセージの受信時刻を差し引き、このメッセージ対の応答時間とする。また、このとき、対応付けたメッセージ対に一意な番号を割り当ててもよい。   Further, the message reconstructing unit 132 associates the request message with respect to the execution subject with the response message as a response, and calculates the time taken for the response. For example, in the case of HTTP, a request message is associated with a response message that appears immediately after the same session. Further, the response time of the message pair is obtained by subtracting the reception time of the request message from the reception time of the response message. At this time, a unique number may be assigned to the associated message pair.

図14は、リクエストへのレスポンスメッセージの対応付けの例を示す図である。図14の例では、HTTPレスポンスメッセージとHTTPリクエストメッセージとを対応付ける場合を示している。   FIG. 14 is a diagram illustrating an example of associating a response message with a request. The example of FIG. 14 shows a case where an HTTP response message is associated with an HTTP request message.

図13のパケット554から取得したメッセージと、図14のパケット556から取得したメッセージは、送信側IPアドレス10.25.214.105、受信側IPアドレス10.25.21.10、送信側ポート番号80、受信側ポート番号3449のセッション上でやりとりされたメッセージであることから、図14のパケット556から取得したメッセージは、図13のパケット554から取得したメッセージと同一セッション上で連続して送信されたメッセージであると判定する。また、2つのメッセージの送信方向が反対であることから、これら2つのメッセージを対応付けて、メッセージ対が生成される。メッセージ再構成部132は、メッセージ対の応答時間を算出し、これら二つのメッセージに共通の識別番号1を割り当てる。 The message acquired from the packet 554 in FIG. 13 and the message acquired from the packet 556 in FIG. 14 include a transmission side IP address 10.25.214.105, a reception side IP address 10.25.21 4 . 10. Since the message is exchanged on the session of the transmission side port number 80 and the reception side port number 3449, the message acquired from the packet 556 in FIG. 14 is the same as the message acquired from the packet 554 in FIG. It is determined that the messages are continuously transmitted. Since the transmission directions of the two messages are opposite, a message pair is generated by associating these two messages. The message reconstruction unit 132 calculates the response time of the message pair and assigns a common identification number 1 to these two messages.

このようにして、メッセージ対がオブジェクト名割り当て部133に渡される。そして、オブジェクト名割り当て部133では、メッセージ対に対応するオブジェクト名が決定される。   In this way, the message pair is passed to the object name assignment unit 133. Then, the object name assigning unit 133 determines an object name corresponding to the message pair.

なお、オブジェクト名は、以降の装置で分析したい内容に応じて変更してよい。また、異なるメッセージに対して同じオブジェクト名を割り当ててもよく、単一のメッセージに対して複数のオブジェクト名を割り当ててもよい。また、取得できる全ての情報を仮のオブジェクト名として割り当てておき、以降の装置においてオブジェクト名を再び決定してもよい。   Note that the object name may be changed according to the content to be analyzed by the subsequent apparatus. Further, the same object name may be assigned to different messages, or a plurality of object names may be assigned to a single message. Alternatively, all pieces of information that can be acquired may be assigned as temporary object names, and the object names may be determined again in subsequent devices.

例えばHTTPメッセージ対にオブジェクト名としてURLを割り当てる。これは、実行する処理とメッセージを関連付けるための情報がURL中に含まれることによる。
また、例えばIIOPメッセージ対にオブジェクト名としてメソッド名を割り当てる。これは、IIOPのメソッド名がサーバ上における単一の処理を表すためである。
For example, a URL is assigned as an object name to an HTTP message pair. This is because information for associating a process to be executed with a message is included in the URL.
Also, for example, a method name is assigned as an object name to an IIOP message pair. This is because the IIOP method name represents a single process on the server.

また、例えばDBメッセージ対にオブジェクト名としてSelect・Insert・Update・FetchなどのSQLオペレータ種別とデータベーステーブル名の組を割り当てる。これは、データベース操作による書き込みの有無や、操作する対象となるデータベーステーブルのサイズなどによって異なる処理の量や時間を区別するためである。   Further, for example, a pair of a SQL operator type such as Select, Insert, Update, and Fetch and a database table name is assigned to a DB message pair as an object name. This is for distinguishing the amount and time of different processing depending on the presence / absence of writing by database operation and the size of the database table to be operated.

図15は、オブジェクト名の割り当てとメッセージの解析結果を示す図である。この例ではHTTPの図14で対応付けたメッセージ対81に対してオブジェクト名81cを割り当てている。このオブジェクト名81cは、リクエストメッセージで指定されたURLである。メッセージ81aは図13のパケット554から再構成したHTTPリクエストメッセージであり、メッセージ81bは図14のパケット556から再構成したHTTPレスポンスメッセージであり、メッセージ対81はこれらのメッセージを対応付けたものである。   FIG. 15 is a diagram illustrating object name assignment and message analysis results. In this example, an object name 81c is assigned to the message pair 81 associated in FIG. 14 of HTTP. The object name 81c is a URL specified by the request message. The message 81a is an HTTP request message reconstructed from the packet 554 in FIG. 13, the message 81b is an HTTP response message reconstructed from the packet 556 in FIG. 14, and the message pair 81 associates these messages. .

図16は、1つのトランザクションを構成する各メッセージのオブジェクト名の割り当てとメッセージ解析結果を示す図である。この例では、HTTPプロトコルのメッセージと同様に、IIOPやDBなど他のプロトコルについてもメッセージを再構成し、オブジェクト名を割り当てている。   FIG. 16 is a diagram illustrating assignment of object names and message analysis results of each message constituting one transaction. In this example, similar to HTTP protocol messages, messages are reconfigured for other protocols such as IIOP and DB, and object names are assigned.

したがって、図13、図14、図15で対応付けたHTTPのメッセージ81a,81b(HTTPのセッション上での識別番号1)、IIOPのセッション上で識別番号1を持つリクエストのメッセージ82a(オブジェクト名:Mbalance)と対応するレスポンスのメッセージ82b、及びDBのセッション上で識別番号1を持つリクエストのメッセージ83a(オブジェクト名:Fetch Account)と対応するレスポンスのメッセージ83bが再構成されている。これらのメッセージが、抽出したオブジェクト名とともにシーケンス図として表示されている。   Therefore, the HTTP messages 81a and 81b (identification number 1 on the HTTP session) and the request message 82a (object name: object name: having the identification number 1 on the IIOP session) associated with each other in FIGS. Mbalance) and a response message 82b corresponding to the request having the identification number 1 on the DB session (object name: Fetch Account) are reconfigured. These messages are displayed as a sequence diagram together with the extracted object names.

メッセージ81aのオブジェクト名は、/corba/servlet/Balanceである。メッセージ82aのオブジェクト名は、Mbalanceである。メッセージ83aのオブジェクト名は、Fetch Accountである。   The object name of the message 81a is / corba / servlet / Balance. The object name of the message 82a is Mbalance. The object name of the message 83a is Fetch Account.

このような、オブジェクト名が割り当てられたメッセージ対81〜83が、ログ出力部134に入力される(図11参照)。すると、ログ出力部134は、TCP/UDPセッション再構成部131と、メッセージ再構成部132と、オブジェクト名割り当て部133で得られた情報を、プロトコルログとして出力する。このとき、出力されるプロトコルログはテキスト形式であってもよく、バイナリ形式であってもよい。   Such message pairs 81 to 83 to which object names are assigned are input to the log output unit 134 (see FIG. 11). Then, the log output unit 134 outputs information obtained by the TCP / UDP session reconfiguration unit 131, the message reconfiguration unit 132, and the object name allocation unit 133 as a protocol log. At this time, the output protocol log may be in a text format or a binary format.

図17は、プロトコルログの例を示す図である。この例では、テキスト形式で出力したプロトコルログ112a〜112fが示されている。
プロトコルログ112a〜112fには、メッセージ毎に、時刻(メッセージの受信時刻)、識別番号、プロトコル(プロトコルの名称)、方向(リクエストかレスポンスか)、及びオブジェクト/応答時間(リクエストについてはオブジェクト名、レスポンスに対しては応答時間)が設定されている。
FIG. 17 is a diagram illustrating an example of a protocol log. In this example, protocol logs 112a to 112f output in a text format are shown.
The protocol logs 112a to 112f include, for each message, time (message reception time), identification number, protocol (protocol name), direction (request or response), and object / response time (object name for request, Response time is set for the response.

例えば、HTTPのセッションの場合、リクエストのメッセージを示すプロトコルログ112aには、受信時刻「00.00.00.100」、識別番号「1」、オブジェクト名「/corba/servlet/Balance」が設定されている。そして、レスポンスのメッセージを示すプロトコルログ112fには、受信時刻「00.00.00.290」、識別番号「1」、応答時間「0.190(秒)」が設定されている。   For example, in the case of an HTTP session, the reception time “00.00.00.100”, the identification number “1”, and the object name “/ corba / servlet / Balance” are set in the protocol log 112a indicating the request message. ing. In the protocol log 112f indicating the response message, the reception time “00.00.00.290”, the identification number “1”, and the response time “0.190 (second)” are set.

このような、クライアント21,22,23に対してサービスが提供される毎に、図17に示すようなプロトコルログ112a〜112fが、メッセージ解析部130によってプロトコルログ記憶部112内に逐次蓄積される。その結果、プロトコルログ記憶部112内には、複数のトランザクションに関係するプロトコルログが混在して格納される。   Each time such a service is provided to the clients 21, 22, and 23, protocol logs 112 a to 112 f as shown in FIG. 17 are sequentially accumulated in the protocol log storage unit 112 by the message analysis unit 130. . As a result, the protocol log storage unit 112 stores a plurality of protocol logs related to a plurality of transactions.

図18は、プロトコルログ記憶部に格納されたプロトコルログの例を示す図である。プロトコルログ記憶部112には、異なるトランザクションに関連するメッセージのプロトコルログが時系列に格納されている。図18には、インターネットバンキングサービスでの「残高確認」トランザクションと「入金」トランザクション処理時に発生するメッセージに基づくプロトコルログが示されている。   FIG. 18 is a diagram illustrating an example of a protocol log stored in the protocol log storage unit. The protocol log storage unit 112 stores protocol logs of messages related to different transactions in time series. FIG. 18 shows a protocol log based on messages generated during processing of a “balance check” transaction and a “deposit” transaction in the Internet banking service.

プロトコルログ記憶部112に格納されたプロトコルログは、モデル生成指示が入力されている場合、モデル生成部140に入力される。すると、モデル生成部140によって、トランザクションモデルが生成される。   The protocol log stored in the protocol log storage unit 112 is input to the model generation unit 140 when a model generation instruction is input. Then, the model generation unit 140 generates a transaction model.

モデル生成部140は、プロトコルログ記憶部112に格納されたプロトコルログに基づいて、トランザクションモデルを獲得する。なお、図18に示したようなプロトコルログは、HTTPプロトコル、IIOPプロトコル、そしてDBプロトコルのメッセージが複雑に混ざり合っている。なお、各プロトコルのリクエストとそれに対応するレスポンスのメッセージは、メッセージ再構成部132によって生成された同じ識別番号を持つ。   The model generation unit 140 acquires a transaction model based on the protocol log stored in the protocol log storage unit 112. Note that the protocol log as shown in FIG. 18 is a complex mixture of HTTP protocol, IIOP protocol, and DB protocol messages. Note that each protocol request and the corresponding response message have the same identification number generated by the message reconstruction unit 132.

そこで、第1の実施の形態では、モデル生成部140は、処理間の呼出関係の確からしさに基づく選択基準として、次のような基準を採用する。すなわち、各トランザクションが他のトランザクション(クライアントのリクエストからレスポンスまで)とオーバラップすることのない部分(すなわち非多重(多重度1)の部分)のみを抜き出して、モデルを獲得する。非多重のトランザクションであれば、そのトランザクションが実行されている時間帯内の各処理間には、呼出関係が確実に存在する(確からしさが高い)。   Therefore, in the first embodiment, the model generation unit 140 employs the following criteria as selection criteria based on the likelihood of the call relationship between processes. That is, a model is obtained by extracting only a portion (that is, a portion of non-multiplex (multiplicity 1)) where each transaction does not overlap with other transactions (from a client request to a response). In the case of a non-multiplex transaction, there is a call relationship between the processes in the time zone in which the transaction is being executed (the probability is high).

そこで、モデル生成部140は、まず、同じ識別番号を持つHTTPプロトコルのリクエスト・レスポンスのペア群を検出する。次に、モデル生成部140は、HTTPプロトコルのメッセージペアの間に、他の識別番号を持つHTTPのメッセージが存在するかどうかをチェックする。存在しない場合、モデル生成部140は、HTTPプロトコルのリクエスト・レスポンスのペア、及びその間の全てのリクエストを選択する。つまり、横断関係にないトランザクションが抽出される。   Accordingly, the model generation unit 140 first detects a request / response pair group of the HTTP protocol having the same identification number. Next, the model generation unit 140 checks whether there is an HTTP message having another identification number between the HTTP protocol message pairs. If not, the model generation unit 140 selects a request / response pair of the HTTP protocol and all requests in between. That is, transactions that are not in a cross relationship are extracted.

詳細には、以下のような処理が行われる。
図19は、トランザクションモデル生成処理を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
Specifically, the following processing is performed.
FIG. 19 is a flowchart showing the transaction model generation process. In the following, the process illustrated in FIG. 19 will be described in order of step number.

[ステップS21]モデル生成部140は、パラメータの初期化を行う。具体的には、多重度=0、重複フラグ=0とする。
[ステップS22]モデル生成部140は、プロトコルログ記憶部112からメッセージを読み込む。
[Step S21] The model generation unit 140 initializes parameters. Specifically, multiplicity = 0 and duplication flag = 0.
[Step S22] The model generation unit 140 reads a message from the protocol log storage unit 112.

[ステップS23]モデル生成部140は、メッセージがあるか否かを判断する。メッセージがあれば、処理がステップS24に進められる。メッセージがなければ処理が終了する。   [Step S23] The model generation unit 140 determines whether there is a message. If there is a message, the process proceeds to step S24. If there is no message, the process ends.

[ステップS24]モデル生成部140は、読み込んだメッセージのプロトコルがHTTPか否かを判断する。HTTPであれば処理がステップS25に進められる。HTTPでなければ、処理がステップS22に進められる。   [Step S24] The model generation unit 140 determines whether the protocol of the read message is HTTP. If it is HTTP, the process proceeds to step S25. If not HTTP, the process proceeds to step S22.

[ステップS25]モデル生成部140は、メッセージの方向(リクエストかレスポンスか)を判断する。リクエストのメッセージであれば、処理がステップS26に進められる。レスポンスのメッセージであれば、処理がステップS30に進められる。   [Step S25] The model generation unit 140 determines the message direction (request or response). If it is a request message, the process proceeds to step S26. If it is a response message, the process proceeds to step S30.

[ステップS26]モデル生成部140は、多重度=0か否かを判断する。多重度が0であれば、処理がステップS27に進められる。多重度が0でなければ、処理がステップS29に進められる。   [Step S26] The model generation unit 140 determines whether multiplicity = 0. If the multiplicity is 0, the process proceeds to step S27. If the multiplicity is not 0, the process proceeds to step S29.

[ステップS27]モデル生成部140は、多重度をインクリメント(1加算)する。
[ステップS28]モデル生成部140は、開始位置を保存する。具体的には、処理したメッセージの位置を特定する情報(例えば、該当するプロトコルログを示すポインタ等)を格納する。その後、処理がステップS22に進められる。
[Step S27] The model generation unit 140 increments (adds 1) the multiplicity.
[Step S28] The model generation unit 140 stores the start position. Specifically, information for specifying the position of the processed message (for example, a pointer indicating the corresponding protocol log) is stored. Thereafter, the process proceeds to step S22.

[ステップS29]モデル生成部140は、多重度をインクリメント(1加算)し、さらに重複フラグの値を1に設定する。その後、処理がステップS22に進められる。
[ステップS30]ステップS25でレスポンスのメッセージであると判断されると、モデル生成部140は、多重度=1か否かを判断する。多重度が1であれば、処理がステップS31に進められる。多重度が1以外であれば、処理がステップS22に進められる。
[Step S29] The model generation unit 140 increments the multiplicity (adds 1) and sets the value of the duplication flag to 1. Thereafter, the process proceeds to step S22.
[Step S30] If it is determined in step S25 that the message is a response message, the model generation unit 140 determines whether multiplicity = 1. If the multiplicity is 1, the process proceeds to step S31. If the multiplicity is other than 1, the process proceeds to step S22.

[ステップS31]モデル生成部140は、重複フラグ=0か否かを判断する。重複フラグが0であれば、処理がステップS32に進められる。重複フラグが1であれば、処理がステップS33に進められる。   [Step S31] The model generation unit 140 determines whether the duplication flag = 0. If the duplication flag is 0, the process proceeds to step S32. If the duplication flag is 1, the process proceeds to step S33.

[ステップS32]モデル生成部140は、開始位置から現在位置のメッセージをモデル生成用メッセージとして選択する。その後、処理がステップS34に進められる。
[ステップS33]モデル生成部140は、重複フラグの値を0に設定する。
[Step S32] The model generation unit 140 selects a message from the start position to the current position as a model generation message. Thereafter, the process proceeds to step S34.
[Step S33] The model generation unit 140 sets the value of the duplication flag to 0.

[ステップS34]モデル生成部140は、多重度をデクリメント(1減算)する。その後、処理がステップS22に進められる。
このようにして、他のトランザクションと重複しないトランザクションを構成するメッセージを特定し、モデル生成用メッセージとして選択することができる。
[Step S34] The model generation unit 140 decrements (subtracts 1) the multiplicity. Thereafter, the process proceeds to step S22.
In this way, a message constituting a transaction that does not overlap with other transactions can be identified and selected as a model generation message.

図20は、選択されるモデル生成用メッセージを示す図である。図20には、図18に示すようなプロトコルログからモデル生成に抽出されるメッセージの集合が示されている。   FIG. 20 is a diagram showing a model generation message to be selected. FIG. 20 shows a set of messages extracted from the protocol log as shown in FIG. 18 for model generation.

例えば、図20のプロトコルログからHTTPのリクエスト・レスポンスのペアを探すと、識別番号=1のHTTPのリクエスト・レスポンスのペア91、識別番号=2のHTTPのリクエスト・レスポンスのペア92、識別番号=3のHTTPのリクエスト・レスポンスのペア93、そして識別番号=4のHTTPのリクエスト・レスポンスのペア94がまず検出される。しかし、識別番号=2のHTTPプロトコルのリクエスト・レスポンスのペア92の間に、識別番号=3のHTTPリクエストメッセージが存在する。そのため、4つのHTTPのリクエスト・レスポンスのペア91〜94のうち、最終的には識別番号=1と識別番号=4のペアのみが抽出される。すなわち、識別番号=1と識別番号=4のHTTPのリクエスト・レスポンスのペア91,94の間のメッセージがモデル生成に用いられることになる。   For example, when an HTTP request / response pair is searched from the protocol log of FIG. 20, an HTTP request / response pair 91 with identification number = 1, an HTTP request / response pair 92 with identification number = 2, and an identification number = First, an HTTP request / response pair 93 of 3 and an HTTP request / response pair 94 of identification number = 4 are detected. However, an HTTP request message with an identification number = 3 exists between the HTTP protocol request / response pair 92 with the identification number = 2. Therefore, only the pair of identification number = 1 and identification number = 4 is finally extracted from the four HTTP request / response pairs 91-94. That is, a message between HTTP request / response pairs 91 and 94 with identification number = 1 and identification number = 4 is used for model generation.

図21は、「残高確認」トランザクションのモデル生成例を示す図である。図21には、図20における識別番号=1のHTTPのリクエスト・レスポンスのペア91の間のメッセージ集合201から生成される「残高確認」トランザクションモデル203が示されている。   FIG. 21 is a diagram illustrating a model generation example of the “balance confirmation” transaction. FIG. 21 shows a “balance confirmation” transaction model 203 generated from the message set 201 between the HTTP request / response pair 91 of identification number = 1 in FIG.

モデル生成部140では、上位(利用者側の)の処理が下位の処理を呼び出すが、逆はないという制約を用いる。この制約は、階層的な構成のシステムでは一般的な制約である。具体的には、クライアント21からWebサーバ31の処理が呼び出され、Webサーバ31からアプリケーションサーバ32の処理が呼び出され、そこからDBサーバ33の処理が呼び出される。   The model generation unit 140 uses a restriction that upper processing (on the user side) calls lower processing, but not the other way around. This restriction is a general restriction in a system having a hierarchical configuration. Specifically, the processing of the Web server 31 is called from the client 21, the processing of the application server 32 is called from the Web server 31, and the processing of the DB server 33 is called from there.

モデル生成部140は、メッセージ集合201を規定の制約に沿って解析し、処理シーケンス202を作成する。具体的には、モデル生成部140は、メッセージ集合201内の各メッセージの内容を、時系列に沿って解析する。メッセージ集合201内の各メッセージの内容は、以下の通りである。   The model generation unit 140 analyzes the message set 201 in accordance with specified restrictions, and creates a processing sequence 202. Specifically, the model generation unit 140 analyzes the contents of each message in the message set 201 along a time series. The contents of each message in the message set 201 are as follows.

まず、識別番号=1のHTTPプロトコルのリクエストメッセージは、クライアント21からWebサーバ31への処理要求を示す。この場合、/corba/servlet/Balanceのオブジェクト処理が請求される。次に、識別番号=1のIIOPプロトコルのリクエストメッセージはWebサーバ31からアプリケーションサーバ32へのMbalanceメソッドの処理を要求する。さらに、識別番号=1のDBプロトコルのリクエストメッセージは、アプリケーションサーバ32からDBサーバ33へFetch Accountという操作処理を要求する。その後、DBサーバ33、アプリケーションサーバ32、Webサーバ31から、それぞれDB、IIOP、HTTPプロトコルのレスポンスのメッセージが送信される。この内容に沿った処理シーケンス202が生成される。   First, an HTTP protocol request message with identification number = 1 indicates a processing request from the client 21 to the Web server 31. In this case, the object processing of / corba / servlet / Balance is charged. Next, the IIOP protocol request message with the identification number = 1 requests processing of the Mbalance method from the Web server 31 to the application server 32. Further, the DB protocol request message with the identification number = 1 requests an operation process called Fetch Account from the application server 32 to the DB server 33. Thereafter, DB, IIOP, and HTTP protocol response messages are transmitted from the DB server 33, the application server 32, and the Web server 31, respectively. A processing sequence 202 corresponding to this content is generated.

処理シーケンス202には、各セッションでの応答時間が含まれる。セッションの時間は、レスポンスメッセージに示されている。図21の例では、DBサーバ33、アプリケーションサーバ32、Webサーバ31のリクエストからレスポンスまでの応答時間がそれぞれ10msec、90msec、190msecである。   The processing sequence 202 includes a response time in each session. The session time is indicated in the response message. In the example of FIG. 21, the response times from the request to the response of the DB server 33, the application server 32, and the Web server 31 are 10 msec, 90 msec, and 190 msec, respectively.

また、「残高確認」の処理シーケンス202では、Webサーバ31で/corba/servlet/Balanceのオブジェクトが処理され、アプリケーションサーバ32でMbalanceオブジェクトが処理され、DBサーバ33でFetch Accountオブジェクトが処理されている。そこで、モデル生成部140は、各サーバにおけるオブジェクトの処理時間を算出する。   In the “balance check” processing sequence 202, the / corba / servlet / Balance object is processed by the Web server 31, the Mbalance object is processed by the application server 32, and the Fetch Account object is processed by the DB server 33. . Therefore, the model generation unit 140 calculates the processing time of the object in each server.

DBサーバ33の処理時間は、DBリクエストからレスポンスまでのDBの応答時間の10msecである。アプリケーションサーバ32の処理時間は、IIOPリクエストからレスポンスの応答時間の90msecからDBサーバ33の応答時間を除いた80msec(=90−10)である。そしてWebサーバ31の処理時間は、HTTPリクエストからレスポンスの応答時間190msecからアプリケーションサーバの応答時間を除いた100msec(=190−90)である。   The processing time of the DB server 33 is 10 msec of the DB response time from the DB request to the response. The processing time of the application server 32 is 80 msec (= 90-10) obtained by subtracting the response time of the DB server 33 from 90 msec of the response time of the response from the IIOP request. The processing time of the Web server 31 is 100 msec (= 190−90) obtained by subtracting the response time of the application server from the response time 190 msec of the response from the HTTP request.

そして、モデル生成部140は、オブジェクトの処理の呼出関係及び各オブジェクトの処理時間を定義したトランザクションモデル203を生成する。
図22は、「入金」トランザクションのモデル生成例を示す図である。図22には、図20における識別番号=4のHTTPのリクエスト・レスポンスのペア94の間のメッセージ集合211から生成される「入金」トランザクションモデル213が示されている。
Then, the model generation unit 140 generates a transaction model 203 that defines the object processing call relationship and the processing time of each object.
FIG. 22 is a diagram illustrating a model generation example of the “deposit” transaction. FIG. 22 shows a “deposit” transaction model 213 generated from the message set 211 between the HTTP request / response pair 94 of identification number = 4 in FIG.

図21の処理と同様に、モデル生成部140は、メッセージ集合211を所定の制約に沿って解析し、処理シーケンス212を作成する。メッセージ集合211内の各メッセージの内容は、以下の通りである。   Similar to the processing in FIG. 21, the model generation unit 140 analyzes the message set 211 according to a predetermined constraint, and creates a processing sequence 212. The contents of each message in the message set 211 are as follows.

まず、識別番号=4のHTTPプロトコルのリクエストメッセージは、クライアント21からWebサーバ31への処理を要求する。この場合、URLは/corba/servlet/Depositである。次に、識別番号=4のIIOPプロトコルのリクエストメッセージはWebサーバ31からアプリケーションサーバ32へのMdepositメソッドの処理を要求する。次に、識別番号=5のDBプロトコルのリクエストメッセージはアプリケーションサーバ32からDBサーバ33へのFetch Accountという操作処理を要求する。このDBリクエストに対応する識別番号=5のDBレスポンスの応答メッセージから分かるように、Fetch Accountの処理はDBサーバ33で10msecかかった。   First, an HTTP protocol request message with identification number = 4 requests processing from the client 21 to the Web server 31. In this case, the URL is / corba / servlet / Deposit. Next, the IIOP protocol request message with identification number = 4 requests processing of the Mdeposit method from the Web server 31 to the application server 32. Next, the DB protocol request message with the identification number = 5 requests an operation process called Fetch Account from the application server 32 to the DB server 33. As can be seen from the response message of the DB response with identification number = 5 corresponding to this DB request, the Fetch Account processing took 10 msec by the DB server 33.

その後に、さらに識別番号=6のDBプロトコルのリクエストメッセージとしてアプリケーションサーバ32からDBサーバ33へのUpdate Accountという操作処理が要求される。その後、識別番号=6のDBプロトコルのレスポンス、識別番号=4のIIOPプロトコルのレスポンス、そして識別番号=4のHTTPプロトコルのレスポンスメッセージがDBサーバ33、アプリケーションサーバ32、Webサーバ31から送信される。   Thereafter, an operation process called Update Account from the application server 32 to the DB server 33 is further requested as a DB protocol request message of identification number = 6. Thereafter, a DB protocol response with identification number = 6, an IIOP protocol response with identification number = 4, and an HTTP protocol response message with identification number = 4 are transmitted from the DB server 33, application server 32, and web server 31.

このようなメッセージの流れからトランザクションモデル213が生成され、モデル記憶部113に格納される。また、レスポンスメッセージから、リクエストからレスポンスまでのそれぞれの応答時間が20msec、120msec、240msecであったと分かる。この応答時間も、トランザクションモデル213に設定される。   A transaction model 213 is generated from such a message flow and stored in the model storage unit 113. It can also be seen from the response message that the response times from the request to the response were 20 msec, 120 msec, and 240 msec. This response time is also set in the transaction model 213.

「入金」のトランザクションモデル213では、Webサーバ31で/corba/servlet/Depositのオブジェクトが処理され、アプリケーションサーバ32でMdepositオブジェクトが処理され、DBサーバ33でFetch AccountとUpdate Accountオブジェクトが処理されている。そこで、モデル生成部140は、各サーバにおけるオブジェクトの処理時間情報を算出する。それぞれの処理時間は、DBサーバ33では10msecと20msec、アプリケーションサーバ32では90msec(=120−(10+20))、そしてWebサーバ31では120msec(=240−120)である。   In the “deposit” transaction model 213, the / corba / servlet / Deposit object is processed by the Web server 31, the Mdeposit object is processed by the application server 32, and the Fetch Account and Update Account objects are processed by the DB server 33. . Accordingly, the model generation unit 140 calculates object processing time information in each server. The respective processing times are 10 msec and 20 msec for the DB server 33, 90 msec (= 120− (10 + 20)) for the application server 32, and 120 msec (= 240−120) for the Web server 31.

そして、モデル生成部140は、オブジェクトの処理の呼出関係及び各サーバにおけるオブジェクトの処理時間を定義したトランザクションモデル213を生成する。
なお、メッセージ解析部130から、再度「残高確認」や「入金」トランザクション処理時のメッセージがモデル生成部140に入力され、これらが多重度1である場合があり得る。この場合、それらのメッセージを無視してもよい。また、同様にモデル生成を行い、すでに生成されている同じ種類のトランザクションの各サーバの処理時間に反映(例えば、平均時間などを利用して)することもできる。
Then, the model generation unit 140 generates a transaction model 213 that defines the object processing call relationship and the object processing time in each server.
Note that there may be a case where a message at the time of “balance confirmation” or “payment” transaction processing is input again from the message analysis unit 130 to the model generation unit 140, and these are multiplicity 1. In this case, those messages may be ignored. Similarly, a model can be generated and reflected in the processing time of each server for the same type of transaction that has already been generated (for example, using an average time).

また、分析部150で実行される既存のトランザクションモデルとメッセージのマッチング法を用いて、多重度1のモデルを基に、多重度1以上のトランザクションのメッセージ集合を抽出し、それぞれの多重度でのアプリケーション処理時間を求めてモデルを生成することもできる。   In addition, by using the matching method between the existing transaction model executed by the analysis unit 150 and the message, a message set of transactions having a multiplicity of 1 or more is extracted based on the multiplicity of 1 model. A model can also be generated by obtaining the application processing time.

次に、分析部150で実行される処理を詳細に説明する。分析部150は、プロトコルログ記憶部112に格納されたプロトコルログを、モデル記憶部113に格納されるトランザクションモデルと比較することで、各トランザクションを構成するメッセージを識別する。そして、分析部150は、トランザクション毎のメッセージの処理時間によって、システムの状態を分析する。具体的には、以下の処理が行われる。   Next, processing executed by the analysis unit 150 will be described in detail. The analysis unit 150 compares the protocol log stored in the protocol log storage unit 112 with the transaction model stored in the model storage unit 113 to identify the messages constituting each transaction. Then, the analysis unit 150 analyzes the state of the system based on the message processing time for each transaction. Specifically, the following processing is performed.

図23は、分析処理の手順を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS51]分析部150は、プロトコルログ記憶部112から未処理のプロトコルログを読み込む。
FIG. 23 is a flowchart showing the procedure of the analysis process. In the following, the process illustrated in FIG. 23 will be described in order of step number.
[Step S51] The analysis unit 150 reads an unprocessed protocol log from the protocol log storage unit 112.

[ステップS52]分析部150は、未処理のプロトコルログがあるか否かを判断する。未処理のプロトコルログがある場合、処理がステップS53に進められる。未処理のプロトコルログが無い場合、処理が終了する。   [Step S52] The analysis unit 150 determines whether there is an unprocessed protocol log. If there is an unprocessed protocol log, the process proceeds to step S53. If there is no unprocessed protocol log, the process ends.

[ステップS53]分析部150は、読み込んだプロトコルログに示されるメッセージのプロトコルを判断する。プロトコルがHTTPであれば、処理がステップS54に進められる。プロトコルがIIOPであれば、処理がステップS59に進められる。プロトコルがDBであれば、処理がステップS62に進められる。   [Step S53] The analysis unit 150 determines the protocol of the message indicated in the read protocol log. If the protocol is HTTP, the process proceeds to step S54. If the protocol is IIOP, the process proceeds to step S59. If the protocol is DB, the process proceeds to step S62.

[ステップS54]プロトコルがHTTPの場合、分析部150は、メッセージの方向(リクエストかレスポンスか)を判断する。リクエストのメッセージの場合、処理がステップS55に進められる。レスポンスのメッセージの場合、処理がステップS57に進められる。   [Step S54] When the protocol is HTTP, the analysis unit 150 determines the message direction (request or response). In the case of a request message, the process proceeds to step S55. In the case of a response message, the process proceeds to step S57.

[ステップS55]リクエストのメッセージの場合、分析部150は、メッセージのオブジェクト(URL)に対応するトランザクションモデルをモデル記憶部113から検出する。そして、HTTPリクエストによって発生した該当トランザクションの内容を認識する。   [Step S <b> 55] In the case of a request message, the analysis unit 150 detects a transaction model corresponding to the object (URL) of the message from the model storage unit 113. Then, the contents of the corresponding transaction generated by the HTTP request are recognized.

[ステップS56]分析部150は、処理中テーブルに新しいトランザクション及びHTTP識別番号を登録する。その後、処理がステップS51に進められる。
[ステップS57]レスポンスのメッセージの場合、分析部150は、識別番号を用いて、処理中テーブルから対応トランザクション及びHTTPを検索し、Webサーバ31における処理時間を計算する。算出された処理時間は、処理中テーブル内の対応トランザクションに関連付けて登録される。
[Step S56] The analysis unit 150 registers a new transaction and an HTTP identification number in the processing table. Thereafter, the process proceeds to step S51.
[Step S57] In the case of a response message, the analysis unit 150 searches for the corresponding transaction and HTTP from the processing table using the identification number, and calculates the processing time in the Web server 31. The calculated processing time is registered in association with the corresponding transaction in the processing table.

[ステップS58]分析部150は、終了トランザクション情報を出力部160に出力し、処理中テーブルから削除する。その後、処理がステップS51に進められる。
[ステップS59]プロトコルがIIOPの場合、分析部150は、メッセージの方向(リクエストかレスポンスか)を判断する。リクエストのメッセージの場合、処理がステップS60に進められる。レスポンスのメッセージの場合、処理がステップS61に進められる。
[Step S58] The analysis unit 150 outputs the end transaction information to the output unit 160 and deletes it from the processing table. Thereafter, the process proceeds to step S51.
[Step S59] When the protocol is IIOP, the analysis unit 150 determines the direction of the message (request or response). In the case of a request message, the process proceeds to step S60. In the case of a response message, the process proceeds to step S61.

[ステップS60]リクエストのメッセージの場合、分析部150は、メッセージのオブジェクト(メソッド)を用いて、処置中テーブルから対応トランザクションを検索し、IIOP識別番号を登録する。その後、処理がステップS51に進められる。   [Step S60] In the case of a request message, the analysis unit 150 uses the message object (method) to retrieve the corresponding transaction from the in-treatment table, and registers the IIOP identification number. Thereafter, the process proceeds to step S51.

[ステップS61]レスポンスのメッセージの場合、分析部150は、識別番号を用いて処理中テーブルから対応トランザクションを検索し、アプリケーションサーバ32における処理時間を計算する。算出された処理時間は、処理中テーブル内の対応トランザクションに関連付けて登録される。その後、処理がステップS51に進められる。   [Step S61] In the case of a response message, the analysis unit 150 searches the corresponding transaction from the processing table using the identification number, and calculates the processing time in the application server 32. The calculated processing time is registered in association with the corresponding transaction in the processing table. Thereafter, the process proceeds to step S51.

[ステップS62]プロトコルがDBの場合、分析部150は、メッセージの方向(リクエストかレスポンスか)を判断する。リクエストのメッセージの場合、処理がステップS63に進められる。レスポンスのメッセージの場合、処理がステップS64に進められる。   [Step S62] If the protocol is DB, the analysis unit 150 determines the message direction (request or response). In the case of a request message, the process proceeds to step S63. In the case of a response message, the process proceeds to step S64.

[ステップS63]リクエストのメッセージの場合、分析部150は、メッセージのオブジェクト(コマンド+テーブル名)を用いて、処置中テーブルから対応トランザクションを検索し、DB識別番号を登録する。その後、処理がステップS51に進められる。   [Step S63] In the case of a request message, the analysis unit 150 uses the message object (command + table name) to search for the corresponding transaction from the in-treatment table, and registers the DB identification number. Thereafter, the process proceeds to step S51.

[ステップS64]レスポンスのメッセージの場合、分析部150は、識別番号を用いて処理中テーブルから対応トランザクションを検索し、DBサーバ33における処理時間を計算する。算出された処理時間は、処理中テーブル内の対応トランザクションに関連付けて登録される。その後、処理がステップS51に進められる。   [Step S64] In the case of a response message, the analysis unit 150 searches the corresponding transaction from the processing table using the identification number, and calculates the processing time in the DB server 33. The calculated processing time is registered in association with the corresponding transaction in the processing table. Thereafter, the process proceeds to step S51.

このような処理を行うことで、トランザクションの種別毎に、各サーバにおける処理時間等を記録することができる。
図24は、分析部へ入力されるメッセージの例を示す図である。ユーザからの操作入力等により分析指示が出された後、メッセージ解析装置から出力されプロトコルログ記憶部112に格納されたプロトコルログ221〜242が、順次分析部150に入力される。
By performing such processing, the processing time in each server can be recorded for each type of transaction.
FIG. 24 is a diagram illustrating an example of a message input to the analysis unit. After an analysis instruction is issued by a user operation input or the like, the protocol logs 221 to 242 output from the message analysis apparatus and stored in the protocol log storage unit 112 are sequentially input to the analysis unit 150.

分析部150ではこれらのプロトコルログ221〜242をモデル生成部140で得られた「残高確認」と「入金」のトランザクションモデル(図21、図22に示す)とマッチングする。そして、分析部150は、トランザクションモデルに合致するトランザクションを抽出する。以下、図25〜図34を参照して、図24に示すプロトコルログ221〜242の分析例を説明する。なお、図25〜図34には、プロトコルログ221〜242を先頭から順に分析することで確認できるトランザクションの状態遷移が示されている。図25〜図34では、発生が確認されたトランザクションのうち、処理が開始されたオブジェクトを実線の楕円で示し、処理が開始されていないオブジェクトを破線の楕円で示している。   The analysis unit 150 matches these protocol logs 221 to 242 with the “balance confirmation” and “payment” transaction models (shown in FIGS. 21 and 22) obtained by the model generation unit 140. Then, the analysis unit 150 extracts a transaction that matches the transaction model. Hereinafter, an analysis example of the protocol logs 221 to 242 illustrated in FIG. 24 will be described with reference to FIGS. 25 to 34 show transaction state transitions that can be confirmed by analyzing the protocol logs 221 to 242 in order from the top. In FIG. 25 to FIG. 34, among the transactions whose occurrence has been confirmed, objects whose processing has been started are indicated by solid ellipses, and objects whose processing has not been started are indicated by dashed ellipses.

図25は、メッセージ分析例を示す第1の図である。まず、最初のプロトコルログ221で示されるメッセージは、識別番号=100のHTTPプロトコルであり、クライアント21からWebサーバ31への/corba/servlet/Balanceオブジェクト処理のリクエストメッセージである。このメッセージは第1の状態(ST1)で示すように、図21に示すトランザクションモデル203(「残高確認」トランザクション)のWebサーバ31処理への呼び出しと合致する。これは、Webサーバ31での処理開始を意味する。   FIG. 25 is a first diagram illustrating an example of message analysis. First, the message indicated by the first protocol log 221 is an HTTP protocol with an identification number = 100, and is a request message for / corba / servlet / Balance object processing from the client 21 to the Web server 31. As shown in the first state (ST1), this message matches the call to the Web server 31 processing of the transaction model 203 (“balance confirmation” transaction) shown in FIG. This means the start of processing in the Web server 31.

次のプロトコルログ222で示されるメッセージは、識別番号=200のIIOPプロトコルの、アプリケーションサーバ32へのMbalanceオブジェクト処理のリクエストメッセージである。このメッセージは第2の状態(ST2)で示すように、「残高確認」のトランザクションモデル203のアプリケーションサーバ32処理への呼び出しと合致する。これは、アプリケーションサーバ32での処理開始を意味する。   The message shown in the next protocol log 222 is a request message for processing the Mbalance object to the application server 32 in the IIOP protocol with the identification number = 200. As shown in the second state (ST2), this message coincides with a call to the application server 32 process of the transaction model 203 of “balance confirmation”. This means the start of processing in the application server 32.

次のプロトコルログ223で示される識別番号=101のHTTPリクエストメッセージは、Webサーバ31への/corba/servlet/Depositオブジェクトの処理請求である。このメッセージは第3の状態(ST3)で示すように、図22に示す「入金」のトランザクションモデル213のWebサーバ31処理への呼び出しと合致する。これは、Webサーバ31での処理開始を意味する。   The HTTP request message with the identification number = 101 shown in the next protocol log 223 is a request for processing of the / corba / servlet / Deposit object to the Web server 31. As shown in the third state (ST3), this message matches the call to the Web server 31 process of the “deposit” transaction model 213 shown in FIG. This means the start of processing in the Web server 31.

次のプロトコルログ224で示される識別番号=500のDBプロトコルのリクエストメッセージは、アプリケーションサーバ32からDBサーバ33へFetch Accountというコマンドの処理要求である。このメッセージは第4の状態(ST4)で示すように、「残高確認」トランザクションモデル203のDBサーバ33処理への呼び出しと合致する。これは、DBサーバ33での処理開始を意味する。   The DB protocol request message with identification number = 500 shown in the next protocol log 224 is a processing request for a command called Fetch Account from the application server 32 to the DB server 33. This message matches the call to the DB server 33 process of the “balance check” transaction model 203 as shown in the fourth state (ST4). This means the start of processing in the DB server 33.

図26は、メッセージ分析例を示す第2の図である。次のプロトコルログ225で示される識別番号=201のIIOPのリクエストメッセージは、アプリケーションサーバ32へのMdepositの処理要求である。このメッセージは第5の状態(ST5)で示すように、「入金」トランザクションモデル213のアプリケーションサーバ32処理への呼び出しと合致する。これは、アプリケーションサーバ32での処理開始を意味する。   FIG. 26 is a second diagram illustrating an example of message analysis. The IIOP request message with identification number = 201 indicated in the next protocol log 225 is an Mdeposit processing request to the application server 32. This message matches the call to the application server 32 process of the “deposit” transaction model 213, as shown in the fifth state (ST5). This means the start of processing in the application server 32.

次のプロトコルログ226で示される識別番号=102のHTTPリクエストメッセージは、Webサーバ31への/corba/servlet/Depositオブジェクトの処理請求である。このメッセージは第6の状態(ST6)で示すように、「入金」トランザクションモデル213のWebサーバ31処理への呼び出しと合致する。これは、新たなWebサーバ31での処理開始を意味する。   The HTTP request message with identification number = 102 shown in the next protocol log 226 is a request for processing of the / corba / servlet / Deposit object to the Web server 31. As shown in the sixth state (ST6), this message matches the call to the Web server 31 process of the “deposit” transaction model 213. This means the start of processing in the new Web server 31.

図27は、メッセージ分析例を示す第3の図である。次のプロトコルログ227で示される識別番号=500のDBプロトコルのレスポンスメッセージは、DBサーバ33からアプリケーションサーバ32への応答メッセージである。このメッセージは第7の状態(ST7)で示すように、「残高確認」トランザクションのDBサーバ33での処理に20msec要したことを意味する。図21の「残高確認」トランザクションモデル203では、DBサーバ33でのFetch Accountコマンドの処理時間は10msecとなっている。そのため、モデルとの差は10msecである。   FIG. 27 is a third diagram illustrating an example of message analysis. The DB protocol response message of identification number = 500 shown in the next protocol log 227 is a response message from the DB server 33 to the application server 32. As shown in the seventh state (ST7), this message means that it takes 20 msec to process the “balance check” transaction in the DB server 33. In the “balance check” transaction model 203 of FIG. 21, the processing time of the Fetch Account command in the DB server 33 is 10 msec. Therefore, the difference from the model is 10 msec.

次のプロトコルログ228で示される識別番号=501のDBプロトコルのリクエストメッセージは、アプリケーションサーバ32からDBサーバ33へFetch Accountというコマンドの処理要求である。このメッセージは第8の状態(ST8)で示すように、「入金」トランザクションモデル213のDBサーバ33の処理への呼び出しと合致する。これは、DBサーバ33での処理開始を意味する。   The DB protocol request message with the identification number = 501 indicated in the next protocol log 228 is a processing request for a command called Fetch Account from the application server 32 to the DB server 33. As shown in the eighth state (ST8), this message matches the call to the process of the DB server 33 of the “deposit” transaction model 213. This means the start of processing in the DB server 33.

図28は、メッセージ分析例を示す第4の図である。次のプロトコルログ229で示される識別番号=501のDBプロトコルのレスポンスメッセージは、DBサーバ33からアプリケーションサーバ32への応答メッセージである。このメッセージは第9の状態(ST9)で示すように、「入金」トランザクションのDBサーバ33での処理に20msec要したことを意味する。図22の「入金」トランザクションモデル213でのDBサーバ33のFetch Accountコマンドの処理時間は10msecとなっているため、モデルとの差は10msecである。   FIG. 28 is a fourth diagram illustrating an example of message analysis. The DB protocol response message of identification number = 501 shown in the next protocol log 229 is a response message from the DB server 33 to the application server 32. As shown in the ninth state (ST9), this message means that it takes 20 msec to process the “deposit” transaction in the DB server 33. Since the processing time of the Fetch Account command of the DB server 33 in the “deposit” transaction model 213 in FIG. 22 is 10 msec, the difference from the model is 10 msec.

次のプロトコルログ230で示される識別番号=502のDBプロトコルのリクエストメッセージは、アプリケーションサーバ32からDBサーバ33へUpdate Accountというコマンドの処理要求である。このメッセージは第10の状態で示すように、「入金」トランザクションモデル213のDBサーバ33の処理への呼び出しと合致する。これは、DBサーバ33での処理開始を意味する。   The DB protocol request message of identification number = 502 shown in the next protocol log 230 is a processing request for a command called Update Account from the application server 32 to the DB server 33. As shown in the tenth state, this message matches the call to the processing of the DB server 33 of the “deposit” transaction model 213. This means the start of processing in the DB server 33.

図29は、メッセージ分析例を示す第5の図である。次のプロトコルログ231で示される識別番号=202のIIOPのリクエストメッセージは、アプリケーションサーバ32へのMdepositの処理要求である。このメッセージは第11の状態(ST11)で示すように、「入金」トランザクションモデル213のアプリケーションサーバ32処理への呼び出しと合致する。これは、アプリケーションサーバ32での処理開始を意味する。   FIG. 29 is a fifth diagram illustrating an example of message analysis. The IIOP request message with identification number = 202 shown in the next protocol log 231 is an Mdeposit processing request to the application server 32. This message matches the call to the application server 32 process of the “deposit” transaction model 213 as shown in the eleventh state (ST11). This means the start of processing in the application server 32.

次のプロトコルログ232で示される識別番号=200のIIOPプロトコルのレスポンスは、アプリケーションサーバ32からWebサーバ31への応答メッセージである。このメッセージは第12の状態(ST12)で示すように、「残高確認」トランザクションのアプリケーションサーバ32での処理終了を意味する。レスポンスメッセージにあるように、IIOPリクエストからレスポンスまでの応答時間は100msecであるが、アプリケーションサーバ32での実際の処理時間を考える場合、その間のDBサーバ33での処理(20msec)を除いた80msecになる。この値は、図21の「残高確認」トランザクションモデル203でのアプリケーションサーバ32の処理時間と同じである。   The IIOP protocol response with identification number = 200 shown in the next protocol log 232 is a response message from the application server 32 to the Web server 31. As shown in the twelfth state (ST12), this message means the end of processing in the application server 32 of the “balance check” transaction. As shown in the response message, the response time from the IIOP request to the response is 100 msec. However, when the actual processing time in the application server 32 is considered, it is 80 msec excluding the processing (20 msec) in the DB server 33 during that time. Become. This value is the same as the processing time of the application server 32 in the “balance check” transaction model 203 of FIG.

図30は、メッセージ分析例を示す第6の図である。次のプロトコルログ233で示される識別番号=502のDBプロトコルのレスポンスメッセージは、DBサーバ33からアプリケーションサーバ32への応答メッセージである。このメッセージは第13の状態(ST13)で示すように、「入金」トランザクションのDBサーバ33での処理が50msecかかって終了したことを意味する。図22の「入金」トランザクションモデル213では、DBサーバ33でのUpdate Accountコマンドの処理時間は20msecとなっているため、モデルとの差は30msecである。   FIG. 30 is a sixth diagram illustrating an example of message analysis. The DB protocol response message of identification number = 502 shown in the next protocol log 233 is a response message from the DB server 33 to the application server 32. As shown in the thirteenth state (ST13), this message means that the processing of the “deposit” transaction in the DB server 33 has been completed in 50 msec. In the “deposit” transaction model 213 in FIG. 22, the processing time of the Update Account command in the DB server 33 is 20 msec, so the difference from the model is 30 msec.

次のプロトコルログ234で示される識別番号=503のDBプロトコルのリクエストメッセージは、アプリケーションサーバ32からDBサーバ33へFetch Accountというコマンドの処理要求である。このメッセージは第14の状態(ST14)で示すように、「入金」トランザクションモデル213のDBサーバ33での処理への呼び出しと合致する。これは、DBサーバ33での処理開始を意味する。   The DB protocol request message with identification number = 503 shown in the next protocol log 234 is a processing request for a command called Fetch Account from the application server 32 to the DB server 33. As shown in the 14th state (ST14), this message matches the call to the process in the DB server 33 of the “deposit” transaction model 213. This means the start of processing in the DB server 33.

図31は、メッセージ分析例を示す第7の図である。次のプロトコルログ235で示される識別番号=100のHTTPプロトコルのレスポンスメッセージは、Webサーバ31からクライアントへの応答メッセージである。このメッセージは第15の状態(ST15)で示すように、「残高確認」トランザクションのWebサーバ31での処理終了を意味する。レスポンスメッセージにあるように、リクエストからレスポンスまでの応答時間は190msecであるが、Webサーバ31での実際の処理時間を考える場合、その間のアプリケーションサーバ32の応答処理(100msec)を除いた90msecになる。図21の「残高確認」トランザクションモデル203では、Webサーバ31での処理時間は100msecとなっているため、モデルより10msec早く終了していることになる。この時点で、1つの「残高確認」トランザクションのすべての処理が終了し、出力部160に出力される。   FIG. 31 is a seventh diagram illustrating an example of message analysis. The HTTP protocol response message of identification number = 100 shown in the next protocol log 235 is a response message from the Web server 31 to the client. As shown in the fifteenth state (ST15), this message means the end of the processing in the Web server 31 of the “balance check” transaction. As shown in the response message, the response time from the request to the response is 190 msec, but when considering the actual processing time in the Web server 31, it is 90 msec excluding the response processing (100 msec) of the application server 32 during that time. . In the “balance check” transaction model 203 in FIG. 21, the processing time in the Web server 31 is 100 msec, and therefore, the process ends 10 msec earlier than the model. At this point, all the processes of one “balance check” transaction are completed and output to the output unit 160.

次のプロトコルログ236で示される識別番号=503のDBプロトコルのレスポンスメッセージは、DBサーバ33からアプリケーションサーバ32への応答メッセージである。このメッセージは第16の状態(ST16)で示すように、「入金」トランザクションのDBサーバ33での処理が20msecかかって終了したことを意味する。図22の「入金」トランザクションモデル213では、DBサーバ33でのFetch Accountコマンドの処理時間は10msecとなっているため、モデルとの差は10msecである。   The DB protocol response message of identification number = 503 shown in the next protocol log 236 is a response message from the DB server 33 to the application server 32. This message means that the processing in the DB server 33 of the “deposit” transaction has been completed in 20 msec as shown in the 16th state (ST16). In the “deposit” transaction model 213 in FIG. 22, the processing time of the Fetch Account command in the DB server 33 is 10 msec, so the difference from the model is 10 msec.

図32は、メッセージ分析例を示す第8の図である。次のプロトコルログ237で示される識別番号=504のDBプロトコルのリクエストメッセージは、アプリケーションサーバ32からDBサーバ33へUpdate Accountというコマンドの処理要求である。このメッセージは第17の状態(ST17)で示すように、「入金」トランザクションモデル213のDBサーバ33処理への呼び出しと合致する。これは、DBサーバ33での処理開始を意味する。   FIG. 32 is an eighth diagram illustrating an example of message analysis. The DB protocol request message with identification number = 504 shown in the next protocol log 237 is a processing request for a command called Update Account from the application server 32 to the DB server 33. This message matches the call to the DB server 33 process of the “deposit” transaction model 213 as shown in the seventeenth state (ST17). This means the start of processing in the DB server 33.

次のプロトコルログ238で示される識別番号=201のIIOPプロトコルのレスポンスは、アプリケーションサーバ32からWebサーバ31への応答メッセージである。このメッセージは第18の状態(ST18)で示すように、「入金」トランザクションのアプリケーションサーバ32での処理終了を意味する。レスポンスメッセージにあるように、リクエストからレスポンスまでの応答時間は180msecであるが、アプリケーションサーバ32での実際の処理時間を考える場合、その間のDBサーバ33での2つのコマンドの処理時間(70msec=20msec+50msec)を除いた110msecになる。図22の「入金」トランザクションモデル213では、アプリケーションサーバ32での処理時間は90msecとなっているため、モデルとの差は20msecである。   The response of the IIOP protocol with identification number = 201 shown in the next protocol log 238 is a response message from the application server 32 to the Web server 31. As shown in the 18th state (ST18), this message means the end of processing in the application server 32 of the “deposit” transaction. As shown in the response message, the response time from the request to the response is 180 msec. However, when the actual processing time in the application server 32 is considered, the processing time (70 msec = 20 msec + 50 msec) of the two commands in the DB server 33 during that time. 110 msec excluding). In the “deposit” transaction model 213 in FIG. 22, the processing time in the application server 32 is 90 msec, and therefore the difference from the model is 20 msec.

図33は、メッセージ分析例を示す第9の図である。次のプロトコルログ239で示される識別番号=101のHTTPプロトコルのレスポンスメッセージは、Webサーバ31からクライアントへの応答メッセージである。このメッセージは第19の状態(ST19)で示すように、「入金」トランザクションのWebサーバ31での処理終了を意味する。レスポンスメッセージにあるように、リクエストからレスポンスまでの応答時間は310msecであるが、Webサーバ31での実際の処理時間を考える場合、その間のアプリケーションサーバ32の応答時間(180msec)を除いた130msecになる。図22の「入金」トランザクションモデル213では、Webサーバ31での処理時間は120msecとなっているため、モデルとの差は10msecである。この時点で、1つの「入金」トランザクションのすべての処理が終了し、出力部160に出力される。   FIG. 33 is a ninth diagram illustrating an example of message analysis. The HTTP protocol response message of identification number = 101 shown in the next protocol log 239 is a response message from the Web server 31 to the client. As shown in the 19th state (ST19), this message means the end of processing in the Web server 31 of the “deposit” transaction. As shown in the response message, the response time from the request to the response is 310 msec. However, when the actual processing time in the Web server 31 is considered, it is 130 msec excluding the response time (180 msec) of the application server 32 during that time. . In the “deposit” transaction model 213 in FIG. 22, the processing time in the Web server 31 is 120 msec, so the difference from the model is 10 msec. At this point, all processing of one “deposit” transaction is completed and output to the output unit 160.

次のプロトコルログ240で示される識別番号=504のDBプロトコルのレスポンスメッセージは、DBサーバ33からアプリケーションサーバ32への応答メッセージである。このメッセージは第20の状態(ST20)で示すように、「入金」トランザクションのDBサーバ33処理が230msecかかって終了したことを意味する。図22の「入金」トランザクションモデル213では、DBサーバ33でのUpdate Accountコマンドの処理時間は20msecとなっているため、モデルとの差は210msecであり、大きく増加していることで、DBサーバ33でなんらかの問題が起きていることが分かる。   The DB protocol response message of identification number = 504 shown in the next protocol log 240 is a response message from the DB server 33 to the application server 32. This message means that the DB server 33 process of the “deposit” transaction is completed in 230 msec, as shown in the twentieth state (ST20). In the “deposit” transaction model 213 in FIG. 22, the processing time of the Update Account command in the DB server 33 is 20 msec. Therefore, the difference from the model is 210 msec, and the DB server 33 is greatly increased. And you can see that something is wrong.

図34は、メッセージ分析例を示す第10の図である。次のプロトコルログ241で示される識別番号=202のIIOPプロトコルのレスポンスは、アプリケーションサーバ32からWebサーバ31への応答メッセージである。このメッセージは第21の状態(ST21)で示すように、「入金」トランザクションのアプリケーションサーバ32での処理終了を意味する。レスポンスメッセージにあるように、リクエストからレスポンスまでの応答時間は350msecであるが、アプリケーションサーバ32での実際の処理時間を考える場合、その間のDBサーバ33での2つのコマンドの処理時間(250msec=20msec+230msec)を除いた100msecになる。図22の「入金」トランザクションモデル213では、アプリケーションサーバ32での処理時間は90msecとなっている。そのため、モデルとの差は10msecである。   FIG. 34 is a tenth diagram illustrating an example of message analysis. The response of the IIOP protocol with identification number = 202 shown in the next protocol log 241 is a response message from the application server 32 to the Web server 31. As shown in the 21st state (ST21), this message means the end of processing in the application server 32 of the “deposit” transaction. As shown in the response message, the response time from the request to the response is 350 msec. However, when the actual processing time in the application server 32 is considered, the processing time of the two commands in the DB server 33 in the meantime (250 msec = 20 msec + 230 msec) ) Is 100 msec. In the “deposit” transaction model 213 of FIG. 22, the processing time in the application server 32 is 90 msec. Therefore, the difference from the model is 10 msec.

ここで注意したいのは、アプリケーションサーバ32での応答時間が350msecであるにもかかわらず、実際のアプリケーションサーバ32での処理時間はわずか100msecに過ぎず、モデルとほぼ一致していることで、アプリケーションサーバ32自身には性能問題がないということが分かる。   Note that although the response time at the application server 32 is 350 msec, the actual processing time at the application server 32 is only 100 msec, which is almost the same as the model. It can be seen that the server 32 itself has no performance problem.

次のプロトコルログ242で示される識別番号=102のHTTPプロトコルのレスポンスメッセージは、Webサーバ31からクライアントへの応答メッセージである。このメッセージは第22の状態(ST22)で示すように、「入金」トランザクションのWebサーバ31での処理終了を意味する。レスポンスメッセージにあるように、リクエストからレスポンスまでの応答時間は470msecであるが、Webサーバ31での実際の処理時間を考える場合、その間のアプリケーションサーバ32の応答時間(350msec)を除いた120msecになる。この時点で、最後の「入金」トランザクションのすべての処理が終了し、出力部160に出力される。   The HTTP protocol response message with identification number = 102 shown in the next protocol log 242 is a response message from the Web server 31 to the client. As shown in the 22nd state (ST22), this message means the end of processing of the “deposit” transaction in the Web server 31. As shown in the response message, the response time from the request to the response is 470 msec. However, when the actual processing time in the Web server 31 is considered, the response time of the application server 32 (350 msec) during that time is 120 msec. . At this point, all processing of the final “deposit” transaction is completed and output to the output unit 160.

図22の「入金」トランザクションモデル213では、Webサーバ31での処理時間は120msecとなっているため、モデルと一致する。アプリケーションサーバ32と同様に、Webサーバ31での応答時間が470msecであるにもかかわらず、実際のWebサーバ31での処理時間はモデルと一致していることで、Webサーバ31自身には性能問題がないということが分かる。以上のような分析結果は、分析結果記憶部114に格納される。   In the “deposit” transaction model 213 in FIG. 22, the processing time in the Web server 31 is 120 msec, which matches the model. Similar to the application server 32, although the response time at the Web server 31 is 470 msec, the actual processing time at the Web server 31 matches the model. You can see that there is no. The analysis results as described above are stored in the analysis result storage unit 114.

次に、出力部160で行われる処理を詳細に説明する。
出力部160は、分析部150から分析結果記憶部114に格納されたトランザクションの情報をさまざまな形でモニタ11に出力する。以下、出力部160によるトランザクション情報の出力例を示す。
Next, processing performed by the output unit 160 will be described in detail.
The output unit 160 outputs the transaction information stored in the analysis result storage unit 114 from the analysis unit 150 to the monitor 11 in various forms. Hereinafter, an output example of transaction information by the output unit 160 will be shown.

図35は、サーバの平均処理時間の表示例を示す図である。図35で示すように、出力部160は、サーバごとの平均処理時間を求めて、モニタ11に平均処理時間を示す画面301を表示する。なお、各サーバの処理時間を示すグラフには、トランザクションモデルにおける処理時間を示す線が表示されている。なお、出力部160は、モデルとの処理時間との差が非常に大きい場合には、それらの処理をリストアップして、モニタ11に表示することもできる。   FIG. 35 is a diagram illustrating a display example of the average processing time of the server. As illustrated in FIG. 35, the output unit 160 obtains an average processing time for each server and displays a screen 301 indicating the average processing time on the monitor 11. A line indicating the processing time in the transaction model is displayed on the graph indicating the processing time of each server. In addition, when the difference with the processing time with a model is very large, the output part 160 can also list those processes and can display them on the monitor 11.

図36は、トランザクション別処理時間及び内訳の表示例を示す図である。この画面302では、ある期間のトランザクションがすべて集計され、サーバごとの処理時間が表示されている。   FIG. 36 is a diagram showing a display example of transaction processing time and breakdown. On this screen 302, all transactions for a certain period are totaled and the processing time for each server is displayed.

図37は、処理時間ヒストグラムの表示例を示す図である。この画面303では、トランザクション処理時間、及び各サーバでの処理時間に関するヒストグラム(処理時間毎の発生頻度)が表示されている。   FIG. 37 is a diagram illustrating a display example of a processing time histogram. In this screen 303, a transaction processing time and a histogram (occurrence frequency for each processing time) regarding the processing time in each server are displayed.

また、ヒストグラム等の各種情報を画面に同時に表示することで、処理遅延原因の解析を容易にすることができる。
図38は、複数の情報を同時に表示した場合の画面例を示す図である。この画面310には、トランザクション処理時間のヒストグラム表示部311、トランザクションの多重度表示部312、トランザクションの時間推移表示部313(Webサーバ31、アプリケーションサーバ32、DBサーバ33での内訳)とトランザクションメッセージのシーケンス表示部314が表示されている。出力部160は、各表示対象要素の表示内容を、互いに連携させて表示する。
Further, by displaying various information such as a histogram on the screen at the same time, it is possible to easily analyze the cause of the processing delay.
FIG. 38 is a diagram illustrating a screen example when a plurality of pieces of information are displayed simultaneously. This screen 310 includes a transaction processing time histogram display section 311, a transaction multiplicity display section 312, a transaction time transition display section 313 (a breakdown by the Web server 31, application server 32, and DB server 33) and transaction message information. A sequence display unit 314 is displayed. The output unit 160 displays the display contents of each display target element in cooperation with each other.

図39は、表示対象要素間の連携の様子を示す図である。図39に示すように、ヒストグラム表示部311には、処理遅延判別用の閾値を示すバー311aが表示されている。このバー311aは、ユーザからの操作入力に応じて左右に移動させることができる。バー311aが表示されている位置の処理時間の値が閾値となる。閾値以上に処理時間を要したトランザクションが、注目処理と判断される。   FIG. 39 is a diagram illustrating a state of cooperation between display target elements. As shown in FIG. 39, the histogram display unit 311 displays a bar 311a indicating a threshold for determining processing delay. The bar 311a can be moved left and right in accordance with an operation input from the user. The processing time value at the position where the bar 311a is displayed serves as a threshold value. Transactions that require processing time beyond the threshold are determined as attention processes.

図39の例では、300msecの位置にバー311aが表示されている。したがって、300msec以上要したトランザクションが、注目処理となる。
多重度表示部312では、ヒストグラム表示部311上で注目処理と分類されたトランザクションの処理時間帯が、強調表示される。また、多重度表示部312の横には、スクロールバー312aが設けられている。スクロールバー312aで示された時間帯のトランザクションの詳細が、時間推移表示部313に表示される。
In the example of FIG. 39, a bar 311a is displayed at a position of 300 msec. Therefore, a transaction that requires 300 msec or more is the attention process.
In the multiplicity display unit 312, the processing time zone of the transaction classified as the target process on the histogram display unit 311 is highlighted. In addition, a scroll bar 312 a is provided beside the multiplicity display unit 312. Details of the transaction in the time zone indicated by the scroll bar 312a are displayed on the time transition display unit 313.

時間推移表示部313には、プロトコル間のメッセージの受け渡しが、サーバ間のシーケンスで示される。時間推移表示部313の横には、スクロールバー313aが設けられている。スクロールバー313aで示された時間帯のメッセージの内容が、シーケンス表示部314に表示される。シーケンス表示部314では、注目処理に関するメッセージが強調表示される。   In the time transition display section 313, message passing between protocols is shown in a sequence between servers. A scroll bar 313 a is provided beside the time transition display unit 313. The content of the message in the time period indicated by the scroll bar 313a is displayed on the sequence display unit 314. In the sequence display unit 314, a message related to the attention process is highlighted.

このように、ユーザがヒストグラム表示部311から所定の時間以上かかるトランザクションを選択すれば、そのようなトランザクションがどこで起きるかをトランザクションの多重度表示部312、トランザクションの時間推移表示部313、そしてメッセージのシーケンス表示部314で確認できる。   As described above, if the user selects a transaction that takes a predetermined time or more from the histogram display unit 311, the multiplicity display unit 312 of the transaction, the time transition display unit 313 of the transaction, and the message This can be confirmed on the sequence display unit 314.

以上説明したように、第1の実施の形態では、トランザクションモデルを生成し、スイッチ10を介して送受信されたメッセージからトランザクションモデルに沿って進行するメッセージの受け渡しを検出するようにした。これにより、任意のトランザクションを構成するメッセージの集合を特定し、そのトランザクションの解析が可能となる。   As described above, in the first embodiment, a transaction model is generated, and a message passing along the transaction model is detected from messages transmitted and received via the switch 10. As a result, it is possible to identify a set of messages constituting an arbitrary transaction and analyze the transaction.

すなわち、システム分析装置100において、ネットワークからキャプチャしたTCPパケットのデータ部を解析することで、サーバで実行されるアプリケーション間での通信を再構成する。そして、システム分析装置100は、再構成されたプロトコルログから、処理間の呼出関係が確実に存在するメッセージ集合を選択し、ユーザのリクエストに対する一連の処理の結びつきであるトランザクションが抽出できる。そして、ユーザのリクエストからレスポンスまでの各アプリケーションの処理を追跡することにより、性能問題やボトルネックを迅速に把握することが可能となる。   That is, the system analysis apparatus 100 reconfigures communication between applications executed on the server by analyzing the data portion of the TCP packet captured from the network. Then, the system analysis apparatus 100 can select from the reconfigured protocol log a message set in which a call relationship between processes exists reliably, and can extract a transaction that is a series of processes associated with a user request. By tracking the processing of each application from the user request to the response, it becomes possible to quickly grasp performance problems and bottlenecks.

しかも、第1の実施の形態は、外部観測によってトランザクションを抽出している。そのため、既存システムへの機能追加を行う必要がなく、サーバ内のアプリケーションへの改変等を行わずに済む。   Moreover, in the first embodiment, transactions are extracted by external observation. Therefore, it is not necessary to add a function to the existing system, and it is not necessary to modify the application in the server.

[第2の実施の形態]
第2の実施の形態は、処理時間帯が他のトランザクションと重なるようなトランザクションであっても、そのトランザクションを構成するメッセージを抽出し、トランザクションモデルを生成できるようにしたものである。
[Second Embodiment]
In the second embodiment, even if a transaction has a processing time zone that overlaps with other transactions, messages constituting the transaction are extracted and a transaction model can be generated.

すなわち、第1の実施の形態では、各処理が他の処理(リクエストからレスポンスまで)とオーバラップすることない(すなわち多重度1である)部分のみを抜き出して、トランザクションモデルを獲得していた。この処理は、例えば対象システムの運用を一時停止し、モデル獲得のためにのみ動作させることが可能な場合には有効である。   That is, in the first embodiment, a transaction model is acquired by extracting only a part where each process does not overlap with another process (from request to response) (that is, multiplicity is 1). This process is effective, for example, when the operation of the target system is temporarily stopped and can be operated only for model acquisition.

ところが、24時間サービスを行っているため運用停止ができず、かつほとんどの場合に複数の処理を同時並行的に処理しているシステムの場合、第1の実施の形態を適用するのは困難となる。また、処理の多重度が低くシステムへの負荷が軽い場合と、多重度が高く負荷も重い場合とで挙動が異なる場合には、多重度1の場合からだけトランザクションモデルを生成したのでは不十分である。そのため、対象システムによっては多重度が高い部分も利用してトランザクションモデルを生成することも必要になる。以下でその動作例を示す。   However, in the case of a system in which the operation cannot be stopped because the service is performed for 24 hours and a plurality of processes are processed in parallel in most cases, it is difficult to apply the first embodiment. Become. Also, if the behavior differs between a low multiplicity of processing and a light load on the system, and a high multiplicity and heavy load, it is not sufficient to generate a transaction model only from multiplicity 1 It is. Therefore, depending on the target system, it is also necessary to generate a transaction model using a portion with a high degree of multiplicity. An example of the operation is shown below.

なお、第2の実施の形態におけるシステム分析装置の機能ブロックは、図4に示した第1の実施の形態と同様である。そこで、図4に示した各要素を用いて、第2の実施の形態の処理を説明する。また、第1の実施の形態と第2の形態とは、モデル生成部140の処理のみが相違し、他の要素の処理は同じである。さらに、説明を簡単にするため、アプリケーションサーバ32とDBサーバ33とで完結するトランザクションの例を用いて、第2の実施の形態を説明する。すなわち、IIOPのメッセージとDBのメッセージとの関係から、トランザクションモデルとして生成する。   The functional blocks of the system analysis apparatus in the second embodiment are the same as those in the first embodiment shown in FIG. Therefore, the processing of the second embodiment will be described using each element shown in FIG. Further, the first embodiment and the second embodiment are different only in the processing of the model generation unit 140, and the processing of other elements is the same. Furthermore, for the sake of simplicity, the second embodiment will be described using an example of a transaction completed between the application server 32 and the DB server 33. That is, the transaction model is generated from the relationship between the IIOP message and the DB message.

図40は、分析部へ入力されるメッセージの例を示す図である。プロトコルログ記憶部112に格納されたプロトコルログ401〜420が、モデル生成部140に入力される。   FIG. 40 is a diagram illustrating an example of a message input to the analysis unit. Protocol logs 401 to 420 stored in the protocol log storage unit 112 are input to the model generation unit 140.

モデル生成部140は、所定の制約条件に従って、プロトコルログに示されるメッセージを解析する。
図41は、モデル生成部に入力されたメッセージから認識される処理を示す図である。すなわち、モデル生成部140は、図40のプロトコルログ401〜420で示されるメッセージから各処理の開始と終了を抽出し、その処理期間を時系列に並べる。その結果が、図41に示されている。
The model generation unit 140 analyzes the message indicated in the protocol log according to a predetermined constraint condition.
FIG. 41 is a diagram illustrating processing recognized from a message input to the model generation unit. That is, the model generation unit 140 extracts the start and end of each process from the messages indicated by the protocol logs 401 to 420 in FIG. 40, and arranges the process periods in time series. The result is shown in FIG.

処理P1は、プロトコルログ401,410で示される識別番号=1のIIOPのメッセージから認識される処理である。処理P2は、プロトコルログ403,413で示される識別番号=2のIIOPのメッセージから認識される処理である。処理P3は、プロトコルログ407,419で示される識別番号=3のIIOPのメッセージから認識される処理である。処理P4は、プロトコルログ411,420で示される識別番号=4のIIOPのメッセージから認識される処理である。   The process P1 is a process recognized from the IIOP message with the identification number = 1 shown in the protocol logs 401 and 410. The process P2 is a process recognized from the IIOP message with the identification number = 2 shown in the protocol logs 403 and 413. The process P3 is a process recognized from the IIOP message with the identification number = 3 indicated in the protocol logs 407 and 419. The process P4 is a process recognized from the IIOP message with the identification number = 4 indicated by the protocol logs 411 and 420.

処理P5は、プロトコルログ402,405で示される識別番号=1のDBのメッセージから認識される処理である。処理P6は、プロトコルログ404,406で示される識別番号=2のDBのメッセージから認識される処理である。処理P7は、プロトコルログ409,412で示される識別番号=4のDBのメッセージから認識される処理である。処理P8は、プロトコルログ408,414で示される識別番号=3のDBのメッセージから認識される処理である。処理P9は、プロトコルログ415,417で示される識別番号=5のDBのメッセージから認識される処理である。処理P10は、プロトコルログ416,418で示される識別番号=6のDBのメッセージから認識される処理である。   The process P5 is a process recognized from the DB message of identification number = 1 shown in the protocol logs 402 and 405. The process P6 is a process recognized from the DB message with the identification number = 2 shown in the protocol logs 404 and 406. The process P7 is a process recognized from the DB message of identification number = 4 indicated by the protocol logs 409 and 412. The process P8 is a process recognized from the DB message of identification number = 3 indicated by the protocol logs 408 and 414. The process P9 is a process recognized from the DB message of identification number = 5 indicated by the protocol logs 415 and 417. The process P10 is a process recognized from the DB message of identification number = 6 indicated by the protocol logs 416 and 418.

なお、この例ではIIOPで2種類、DBで2種類の処理が現れるが、以下では記述を簡単にするために以下のように略すこととする。
IIOPによるMbalance:種別A
IIOPによるMdeposit:種別B
DBによるFetch->Account:種別a
DBによるUpdate->Account:種別b
また、モデル中の各処理種別毎の処理時間の求め方は第1の実施の形態と同じなので、ここではモデル中の処理種別間の呼出関係のみに着目し、処理時間に関する説明は省くものとする。
In this example, two types of processing appear in IIOP and two types of processing appear in DB. However, in the following, in order to simplify the description, they are abbreviated as follows.
IIOP Mbalance: Type A
IIOP Mdeposit: Type B
Fetch-> Account by DB: Type a
Update-> Account by DB: Type b
In addition, since the method for obtaining the processing time for each processing type in the model is the same as that in the first embodiment, only the call relationship between the processing types in the model is noted here, and the explanation regarding the processing time is omitted. To do.

第2の実施の形態における制約条件は、以下の通りである。
第1の制約:ある処理から呼び出された処理の開始時刻は、呼び出し元の処理開始時刻以降で、且つ終了時刻は呼び出し元の処理終了時刻以前である。
The constraint conditions in the second embodiment are as follows.
First restriction: The start time of a process called from a certain process is after the call start process start time, and the end time is before the call end process end time.

第2の制約:IIOPの処理は、直接システム外部(例えば、クライアント21)から呼び出される。
第3の制約:DBの処理は、必ずIIOPから呼び出される。
Second restriction: IIOP processing is directly called from outside the system (for example, the client 21).
Third restriction: DB processing is always called from IIOP.

第1の制約は、呼出関係に関する基本的な制約で処理Xが処理Yを呼び出した場合には、YはXより後に開始されXより前に終了しなければならないことを要求している。なお、場合によってはXの開始(終了)とYの開始(終了)時刻の差の上限値や下限値を与える場合もある。多くのシステムではこのような制約が成立しており、これを利用することで呼出関係の候補を減らすことができる。   The first constraint requires that if process X calls process Y with basic constraints on call relationships, Y must start after X and end before X. In some cases, an upper limit value or a lower limit value of the difference between the start (end) of X and the start (end) time of Y may be given. In many systems, such a restriction is established, and by using this restriction, the number of call relation candidates can be reduced.

第2の制約は、階層的な構成のシステムでは一般的な制約で、上位(利用者側の)の処理が下位の処理を呼び出すが、逆はないことを表す。この場合には、監視対象のシステムの外部からIIOPの処理が呼び出され、そこからDBの処理が呼び出されることを表している。これ以外の呼び出し、例えばIIOPの処理が他のIIOPの処理を呼び出したり、DBの処理がIIOPの処理を呼び出したりすることはない。   The second constraint is a general constraint in a hierarchical configuration system, and indicates that a higher-level process (on the user side) calls a lower-level process, but not the other way around. In this case, the IIOP process is called from outside the monitored system, and the DB process is called from there. Other calls, for example, IIOP processing does not call other IIOP processing, and DB processing does not call IIOP processing.

このほかにも、例えばあるIIOPの処理はDBの処理を最低1回呼び出す、というような処理種別やそのグループ間の呼出回数やその順序に関する制約等、監視をする側が持つシステムに関する知識を制約として入力する。   In addition to this, for example, a certain IIOP process calls a DB process at least once, such as the processing type, the number of calls between the groups and the restrictions on the order, etc. input.

図42は、制約を満たす処理間の呼出関係を示す図である。第1〜第3の制約を使うと、ある処理から呼び出し可能な他の処理が限定される。すなわち、どのIIOP処理からどのDB処理が呼び出され得るかが示されている(これ以外の呼び出しは制約を満足しない)。   FIG. 42 is a diagram illustrating a call relationship between processes that satisfy a constraint. When the first to third constraints are used, other processes that can be called from a certain process are limited. That is, it is indicated which DB process can be called from which IIOP process (other calls do not satisfy the constraints).

例えばDBによる処理P5を呼び出し得るのは、第1の制約から処理期間が処理P5のそれを含む処理でなければならず、この例ではIIOPによる処理P1のみである。一方処理P7の呼び出し元については、第1の制約を満足する処理は、処理P2,P3,P8の3個ある。このうち処理P8はDBの処理であり、第2の制約および第3の制約から同じDBの処理である処理P7を呼び出すことはありえないことが分かる。よって、処理P8を呼び出している候補は処理P2と処理P3の2つになる。   For example, the process P5 by DB can be called from the first constraint because the process period includes that of the process P5. In this example, only the process P1 by IIOP can be called. On the other hand, for the caller of process P7, there are three processes P2, P3, and P8 that satisfy the first constraint. Of these, the process P8 is a DB process, and it is understood that the process P7, which is the same DB process, cannot be called from the second constraint and the third constraint. Therefore, there are two candidates for calling the process P8, the process P2 and the process P3.

次に、これらの呼出関係の候補から、処理種別毎に、他の種別の呼出回数を計算する。以下では処理種別iから処理種別jの呼出回数をM(i,j)と記述し、Mを呼出回数行列と呼ぶ。   Next, the number of calls of other types is calculated for each processing type from these call relationship candidates. Hereinafter, the number of calls from process type i to process type j is described as M (i, j), and M is referred to as a call number matrix.

まず初めに、モデル生成部140は、呼出回数行列を初期化する。初期化は、呼出関係の制約を満足する要素を1、それ以外を0とする。
図43は、呼出回数行列の例を示す図である。この例では、4種類の処理があるため、呼出回数行列は16の要素をもつが、IIOPからDBへの呼び出しだけが制約で許されるので1、それ以外の12個は0となる。これは、制約上許される呼び出しは、他の情報がない限り、同じだけの頻度(確率)で起こるとみなすことを意味する。
First, the model generation unit 140 initializes a call count matrix. In the initialization, elements that satisfy the call-related restrictions are set to 1, and other elements are set to 0.
FIG. 43 is a diagram illustrating an example of a call frequency matrix. In this example, because there are four types of processing, the call count matrix has 16 elements, but only calls from IIOP to DB are allowed by the constraint, so 1 is set, and the other 12 are 0. This means that calls that are allowed by constraints are considered to occur with the same frequency (probability) unless there is other information.

次に呼出回数行列を使って、図42中の呼び出し候補の確率を計算する。例えば、処理P5の呼び出し元の可能性は処理P1しかないので、処理P1から処理P5への呼び出しの確率は1である。   Next, the probability of the call candidate in FIG. 42 is calculated using the call frequency matrix. For example, since the possibility of the caller of process P5 is only process P1, the probability of calling from process P1 to process P5 is 1.

一方処理P6(種別a)への呼び出しは、処理P1(種別A)からの呼び出しと処理P2(種別B)からの呼び出しの2つの可能性が考えられる。そのような場合には、呼び出し元(の候補)の処理種別から呼び出し先(この場合は処理P6)の種別への呼出回数行列要素の値に比例した確率を割り当てる。この場合は、処理P1が属する種別Aの処理からの、処理P6が属する種別aの処理への回数は1回(図43参照)、処理P2が属する種別Bからの呼出回数も1回であるので、それぞれの呼び出し候補の確率は共に1/2となる。   On the other hand, there are two possibilities for the call to the process P6 (type a): the call from the process P1 (type A) and the call from the process P2 (type B). In such a case, a probability proportional to the value of the number-of-calls matrix element from the process type of the caller (candidate) to the type of the callee (process P6 in this case) is assigned. In this case, the number of times from the type A process to which the process P1 belongs to the type a process to which the process P6 belongs is one (see FIG. 43), and the number of calls from the type B to which the process P2 belongs is also one. Therefore, the probability of each call candidate is ½.

以下、モデル生成部140は、同様に各呼び出し候補の確率を求める。
図44は、呼び出し候補の確率を求めた結果を示す図である。図43に示す呼出回数行列では、制約を満足する呼出関係を示す各要素の値は、全て1である。そのため、複数の呼び出し可能性を持つ場合、それぞれの呼び出し可能性は等しくなる(確率が1/2)。
Hereinafter, the model generation unit 140 similarly obtains the probability of each call candidate.
FIG. 44 is a diagram illustrating a result of obtaining the probability of a call candidate. In the number-of-calls matrix shown in FIG. 43, the values of the elements indicating the call relationship that satisfies the constraints are all 1. Therefore, when there are a plurality of call possibilities, the call possibilities are equal (probability is 1/2).

次に、モデル生成部140は、上記の確率を使って、呼出回数行列の値を更新する。すなわち、処理種別XからYへの呼出回数は、図43中の呼び出し候補のなかで、XからYへの呼び出し候補の確率の和を、処理種別Xの発生回数で割ったものとして計算できる。   Next, the model generation unit 140 updates the value of the call count matrix using the above probability. That is, the number of calls from process type X to Y can be calculated as the sum of the probability of call candidates from X to Y divided by the number of occurrences of process type X among the call candidates in FIG.

例えば種別Aから種別aへの呼び出し候補は、処理P1から処理P5、処理P1から処理P6、処理P4から処理P10の3個あり、その確率はそれぞれ、1、1/2、1/2である。このことと、種別Aの処理が、処理P1および処理P4の2個であることから、呼出回数行列の要素M(A,a)の値は、
(1+1/2+1/2)/2=1
となる。同様に、モデル生成部140は、他の行列要素も計算する。
For example, there are three call candidates from type A to type a: process P1 to process P5, process P1 to process P6, and process P4 to process P10, and the probabilities are 1, 1/2, and 1/2, respectively. . Since this and the processing of type A are two, processing P1 and processing P4, the value of the element M (A, a) of the call count matrix is
(1 + 1/2 + 1/2) / 2 = 1
It becomes. Similarly, the model generation unit 140 calculates other matrix elements.

図45は、更新後の呼出回数行列を示す図である。ただし呼び出し行列のうち、制約上ゆるされない要素の値は常に0であるので、制約上許される要素、すなわちIIOPの処理種別からDBの処理種別への呼び出しに対応する要素のみを示す。   FIG. 45 is a diagram showing a call frequency matrix after update. However, since the values of elements that are not allowed to be restricted in the call matrix are always 0, only elements that are allowed by the restriction, that is, elements corresponding to calls from the IIOP processing type to the DB processing type are shown.

以上の、呼出回数行列を使った呼び出し候補の確率計算と、それに基づく呼出回数行列の更新を、所定の終了条件を満足するまで繰り返す。所定の終了条件とは、例えば、更新回数が予め設定された回数に達することである。また、別の終了条件としては、更新前後の行列要素の変化量が、予め設定された上限値以下となることである。   The above-described call candidate probability calculation using the call number matrix and the update of the call number matrix based on the call candidate matrix are repeated until a predetermined termination condition is satisfied. The predetermined end condition is, for example, that the number of updates reaches a preset number. Another end condition is that the change amount of the matrix element before and after the update is equal to or less than a preset upper limit value.

本実施の形態では、終了条件が、更新回数2回であるものとする。すなわち、モデル生成部140は、図44に示した状態からもう一度呼出回数のカウントと行列要素の計算を行う。2回目以降の処理においても、各呼び出し候補の確率計算の方法は1回目の処理と同じである。ただし、確率計算のもとになる呼出回数行列は図45で示す内容であり、上で求めた図43とは異なるので、計算される確率も異なる。   In the present embodiment, it is assumed that the end condition is two times of update. That is, the model generation unit 140 performs the call count and matrix element calculation again from the state shown in FIG. In the second and subsequent processes, the probability calculation method for each call candidate is the same as the first process. However, the number-of-calls matrix on which the probability calculation is based is the content shown in FIG. 45 and is different from FIG. 43 obtained above, so the calculated probability is also different.

例えば、処理P9(種別b)に対する呼び出し候補は、処理P3(種別B)からの呼び出しと処理P4(種別A)からの2つがある。図45に示す呼出回数行列では、種別Bから種別bへの呼出回数は3/4回、種別Aから種別bへの呼び出しは1/4回である。これに比例するように確率を割り振ると、処理P3から処理P9への呼び出しの確率は3/4、処理P4から処理P9への呼び出しの確率は1/4となる(処理P9は処理P3か処理P4のいずれか一方から呼び出されるので、2つの確率の和は1になることに注意)。   For example, there are two call candidates for the process P9 (type b): a call from the process P3 (type B) and a process P4 (type A). In the number-of-calls matrix shown in FIG. 45, the number of calls from type B to type b is 3/4, and the number of calls from type A to type b is 1/4. If the probability is assigned in proportion to this, the probability of the call from the process P3 to the process P9 is 3/4, and the probability of the call from the process P4 to the process P9 is 1/4 (the process P9 is the process P3 or the process P9). Note that the sum of the two probabilities is 1 because it is called from either P4).

以下、モデル生成部140は、同様に各呼び出し候補の確率を求める。
図46は、2回目の処理で呼び出し候補の確率を求めた結果を示す図である。このように、複数の呼び出し可能性を持つ場合には、呼出回数の予測値を重みとして確率が計算される。このような呼び出し候補の確率に基づいて、呼出回数行列が更新される。
Hereinafter, the model generation unit 140 similarly obtains the probability of each call candidate.
FIG. 46 is a diagram illustrating a result of obtaining the probability of a call candidate in the second process. In this way, when there is a plurality of call possibilities, the probability is calculated using the predicted value of the number of calls as a weight. Based on the probability of such call candidates, the call frequency matrix is updated.

図47は、2回目の更新後の呼出回数行列を示す図である。呼出回数の計算方法は、1回目と同じである。これで呼出回数行列の更新は2回行われたので、確率計算/更新処理が終了して次のステップに進む。   FIG. 47 is a diagram illustrating a call frequency matrix after the second update. The calculation method of the number of calls is the same as the first time. Since the number-of-calls matrix has been updated twice, the probability calculation / update process ends and the process proceeds to the next step.

次に、呼出回数行列の要素のなかで整数以外の部分を四捨五入などにより整数にまるめる。図47では種別Aから種別bへの呼出回数が1/8回なのでこれを0とし、種別Bから種別bへの呼出回数は7/8なので、これを1回とする。これら以外は値が整数なので変更されない。   Next, round the non-integer part of the elements of the call count matrix to an integer by rounding off. In FIG. 47, since the number of calls from type A to type b is 1/8, this is set to 0. Since the number of calls from type B to type b is 7/8, this is set to one. Other than these, the value is an integer and is not changed.

図48は、最終的に得られた呼出回数行列及び生成されるトランザクションモデルを示す図である。モデル生成部140は、図48に示すように整数化された呼出回数行列から、処理種別間の呼出関係を表すトランザクションモデルを獲得する。すなわち、呼出回数行列から、IIOP処理種別Aは、DBの処理種別aを1回呼び出し、IIOPの種別BはDBの処理種別aと処理種別bとをそれぞれ1回ずつ呼び出すことが分かる。   FIG. 48 is a diagram showing a call frequency matrix finally obtained and a generated transaction model. As shown in FIG. 48, the model generation unit 140 obtains a transaction model representing a call relationship between processing types from an integer number of call times matrix. That is, it can be seen from the call count matrix that IIOP process type A calls DB process type a once, and IIOP type B calls DB process type a and process type b once.

すなわち、呼出回数行列で1と設定されている呼出関係が、生起確率の高い関係である。そこで、モデル生成部140は、呼出回数行列で1が設定されている呼出関係から認識されるトランザクションモデル431,432を生成し、モデル記憶部113に格納する。   That is, the call relationship set to 1 in the call frequency matrix is a relationship having a high occurrence probability. Therefore, the model generation unit 140 generates transaction models 431 and 432 recognized from the call relationship in which 1 is set in the call count matrix, and stores the transaction models 431 and 432 in the model storage unit 113.

以上の処理手順を整理すると以下のようになる。
図49は、第2の実施の形態におけるトランザクションモデル生成手順を示すフローチャートである。以下、図49に示す処理をステップ番号に沿って説明する。
The above processing procedure is organized as follows.
FIG. 49 is a flowchart illustrating a transaction model generation procedure according to the second embodiment. In the following, the process illustrated in FIG. 49 will be described in order of step number.

[ステップS71]モデル生成部140は、プロトコルログから各処理の開始と終了のペアを抽出する。
[ステップS72]モデル生成部140は、呼出回数行列を初期化する。この際、制約を満足しない呼出関係は、0に初期化される。
[Step S71] The model generation unit 140 extracts a start / end pair of each process from the protocol log.
[Step S72] The model generation unit 140 initializes a call count matrix. At this time, the calling relationship that does not satisfy the constraint is initialized to zero.

[ステップS73]モデル生成部140は、処理間の呼出関係で、制約を満足するものを呼出関係の候補として抽出する。
[ステップS74]モデル生成部140は、終了条件を満足したか否かを判断する。終了条件を満足した場合、処理がステップS77に進められる。終了条件を満足していない場合、処理がステップS75に進められる。
[Step S <b> 73] The model generation unit 140 extracts a call relationship between processes that satisfies a constraint as a call relationship candidate.
[Step S74] The model generation unit 140 determines whether an end condition is satisfied. If the end condition is satisfied, the process proceeds to step S77. If the end condition is not satisfied, the process proceeds to step S75.

[ステップS75]モデル生成部140は、呼出関係候補それぞれの生起確率を、呼出回数行列の値に比例するように計算する。
[ステップS76]モデル生成部140は、各呼出関係候補の確率を呼び出し元と呼び出し先との処理種別毎に平均をとり、呼出回数行列を更新する。その後、処理がステップS74に進められる。
[Step S75] The model generation unit 140 calculates the occurrence probability of each call relationship candidate so as to be proportional to the value of the call frequency matrix.
[Step S76] The model generation unit 140 averages the probability of each call relationship candidate for each processing type of the caller and callee, and updates the call count matrix. Thereafter, the process proceeds to step S74.

[ステップS77]終了条件を満足した場合、モデル生成部140は、呼出回数行列を整数で近似する。
[ステップS78]モデル生成部140は、呼出回数行列のゼロ以外の成分を処理種別毎の呼出回数とするトランザクションモデルを出力する。
[Step S77] When the termination condition is satisfied, the model generation unit 140 approximates the call count matrix with an integer.
[Step S78] The model generation unit 140 outputs a transaction model in which a non-zero component of the call count matrix is set to the number of calls for each processing type.

以上のように、第2の実施の形態では、呼出先となる処理に対し呼び出し可能な処理が複数ある場合、各処理からの呼び出し確率を均等に定め、呼び出し元となる処理から他の処理の呼び出し確率を、処理の種別毎に統合して、処理間の呼出関係の可能性を算出するようにした。これにより、複数のトランザクションが同時に処理されている場合であっても、モデルを生成することができる。しかも、比較的少ない計算量でモデルを生成できる。   As described above, in the second embodiment, when there are a plurality of processes that can be called with respect to the process to be called, the call probability from each process is uniformly determined, and the process from the call source to the other processes are determined. The call probabilities are integrated for each type of process, and the possibility of a call relationship between processes is calculated. Thereby, a model can be generated even when a plurality of transactions are processed simultaneously. In addition, a model can be generated with a relatively small amount of calculation.

[第3の実施の形態]
上記第2の実施の形態に示す方法では、処理種別間の呼出回数の平均を使っている。そのため、例えば確率1/2で2回呼び出している状況と確率1で1回呼び出している状況を区別できず、結果として正しいトランザクションモデルを学習できない場合もあり得る。このような状況は、例えば、ある処理種別からの呼出パターンが複数ある場合に発生し得る。これを解決するためには、呼出関係の候補として個々の処理種別間の関係を求めるのではなく、ある処理種別が呼び出す全ての処理の集合や集合内の順序を対象に確率を求めればよい。以下では、この考え方に基づくモデル生成方法を第3の実施の形態として説明する。
[Third Embodiment]
In the method shown in the second embodiment, the average number of calls between processing types is used. For this reason, for example, it is not possible to distinguish between a situation where a call is made twice with a probability of 1/2 and a situation where a call is made once with a probability of 1, and as a result, a correct transaction model may not be learned. Such a situation can occur, for example, when there are a plurality of call patterns from a certain processing type. In order to solve this, instead of obtaining a relationship between individual processing types as a call relationship candidate, a probability may be obtained for a set of all the processes called by a certain processing type and the order in the set. Hereinafter, a model generation method based on this concept will be described as a third embodiment.

なお、第3の実施の形態におけるシステム分析装置の機能ブロックは、図4に示した第1の実施の形態と同様である。そこで、図4に示した各要素を用いて、第3の実施の形態の処理を説明する。また、第1の実施の形態と第3の形態とは、モデル生成部140の処理のみが相違し、他の要素の処理は同じである。   The functional blocks of the system analyzer in the third embodiment are the same as those in the first embodiment shown in FIG. Therefore, the processing of the third embodiment will be described using each element shown in FIG. Further, the first embodiment and the third embodiment are different only in the processing of the model generation unit 140, and the processing of other elements is the same.

モデル生成部140の入力は、同じく図40のメッセージ列および制約であるとする。
モデル生成部140は、まず初めに、第2の実施の形態と同様に各処理間で可能な呼出関係を求める。結果は図42に示す通りである。
Similarly, it is assumed that the input of the model generation unit 140 is the message string and the constraint in FIG.
First, the model generation unit 140 obtains a call relationship that can be performed between the processes as in the second embodiment. The results are as shown in FIG.

次に、図42に示した可能な呼出関係を元に、各処理が呼び出している処理の集合とそのなかでの順序の候補を求める。例えば、処理P1が呼び出している処理の順序付きの集合の候補(以下処理集合候補と呼ぶ)は次のように求める。   Next, based on the possible call relationships shown in FIG. 42, a set of processes that each process is calling and a candidate for the order in the set are obtained. For example, a candidate for an ordered set of processes called by the process P1 (hereinafter referred to as a process set candidate) is obtained as follows.

図42に示す呼出関係を解析すると、集合Uに含まれる(すなわち処理P1から呼び出されている)可能性があるのは、処理P5と処理P6の2つの処理である。このうち処理P5は、他に呼び出し元の候補はないので、かならず集合U含まれる。一方処理P6は、処理P2から呼び出されている可能性があるので、集合Uに含まれる可能性と含まれない可能性の両方が考えられる。処理P5と処理P6では処理P5のほうが早く開始しているので、集合Uの候補は次の2つである。
U11:{処理P5}
U12:{処理P5,処理P6}
なお、集合及び処理集合候補の記述では、呼び出されるのが早い処理から順に左から記述するものとする。この段階では、この2つの候補のどちらが信頼できるかに関する判断材料が全くないため、信頼度は両者同じ、すなわち、1/2とする。
When the call relationship shown in FIG. 42 is analyzed, two processes, process P5 and process P6, may be included in the set U (that is, called from process P1). Among these, the process P5 includes the set U because there is no other caller candidate. On the other hand, since the process P6 may be called from the process P2, both the possibility of being included in the set U and the possibility of not being included are considered. Since the process P5 starts earlier in the process P5 and the process P6, there are the following two candidates for the set U.
U11: {Process P5}
U12: {Process P5, Process P6}
In the description of the sets and processing set candidates, it is assumed that the processing is called from the left in order from the earliest processing. At this stage, since there is no judgment material regarding which of these two candidates is reliable, the reliability is the same, that is, 1/2.

次に、処理集合候補U11,U12を処理種別による記述に変換し、処理P1から呼び出される処理のパターン、すなわち呼び出される処理種別の順序付き集合の候補を生成する。処理P5および処理P6の処理種別はどちらもaであるので、以下のようになる。
U11:パターン{a}
U12:パターン{a,a}
後者の処理集合候補U12は、処理P1が同じ処理種別の処理を2回連続して呼び出している可能性を表している。
Next, the processing set candidates U11 and U12 are converted into descriptions based on the processing types, and a pattern of processing called from the processing P1, that is, an ordered set candidate of the calling processing types is generated. Since the processing types of the processing P5 and the processing P6 are both a, the processing is as follows.
U11: Pattern {a}
U12: Pattern {a, a}
The latter process set candidate U12 represents the possibility that the process P1 calls the process of the same process type twice consecutively.

次に、パターンの信頼度を、そのパターンの元になった処理集合の信頼度から計算する。この場合は処理集合候補U11、処理集合候補U12から異なるパターンが生成されているので、各パターンの信頼度は処理集合候補U11および処理集合候補U12の信頼度をそのまま用いる。すなわち1/2とする。   Next, the reliability of the pattern is calculated from the reliability of the processing set that is the basis of the pattern. In this case, since different patterns are generated from the processing set candidate U11 and the processing set candidate U12, the reliability of the processing set candidate U11 and the processing set candidate U12 is used as it is. That is, 1/2.

以上から、処理P1が呼び出しているパターンの候補とその信頼度は次のようになる。
パターン{a}:信頼度1/2
パターン{a,a}:信頼度1/2
2番目のパターンは種別aの処理が2回呼び出されるパターンを示している。モデル生成部140は、他の処理についても、その処理が呼び出している処理種別のパターンの候補と信頼度を同様にして求める。
From the above, the pattern candidates called by the process P1 and their reliability are as follows.
Pattern {a}: reliability 1/2
Pattern {a, a}: reliability 1/2
The second pattern shows a pattern in which the type a process is called twice. For other processes, the model generation unit 140 similarly obtains pattern type candidates and reliability that are called by the processes.

処理P2から呼び出される可能性があるのは処理P6と処理P7の2つであり、この両者とも他の処理から呼び出されている可能性があるので、処理P2から呼び出されている処理集合候補は次の4通りである。処理P1の場合と同様、この段階ではこれら全ての信頼度が同じ、すなわち1/4であるとする。
U21:{}
U22:{処理P6}
U23:{処理P7}
U24:{処理P6,処理P7}
処理P6および7の種別はそれぞれaとbであるから、処理P2が呼び出している処理種別のパターンの候補とその信頼度は次のようになる。
パターン{}:信頼度1/4
パターン{a}:信頼度1/4
パターン{b}:信頼度1/4
パターン{a,b}:信頼度1/4
最後のパターンは、aとbがこの順序で、すなわち最初に種別aの処理が呼び出され、その後にbの処理が呼び出されるパターンを表している。なお、順序を考慮せず、呼び出される処理種別毎の回数をパターンとすることもできる。
There are two processes P6 and P7 that can be called from the process P2, and both of these may be called from other processes, so the process set candidates called from the process P2 are The following four types. As in the case of the process P1, it is assumed that all these reliability levels are the same, that is, 1/4 at this stage.
U21: {}
U22: {Process P6}
U23: {Process P7}
U24: {Process P6, Process P7}
Since the types of the processes P6 and P7 are a and b, the process type pattern candidates called by the process P2 and their reliability are as follows.
Pattern {}: Reliability 1/4
Pattern {a}: reliability 1/4
Pattern {b}: reliability 1/4
Pattern {a, b}: reliability 1/4
The last pattern represents a pattern in which a and b are called in this order, that is, the process of type a is first called and then the process of b is called. Note that the number of processing types to be called can be used as a pattern without considering the order.

処理P3に関しては注意が必要である。処理P3からかならず呼び出されているのは処理P8、処理P3から呼び出されている可能性はあるが、他の処理から呼び出されている可能性もある処理が、処理P7、処理P9、処理P10の3個であるから、処理P3が呼び出している処理集合候補は、
{処理P8}
{処理P8,処理P7}
{処理P8,処理P9}
{処理P8,処理P10}
{処理P8,処理P7,処理P9}
{処理P8,処理P7,処理P10}
{処理P8,処理P9,処理P10}
{処理P8,処理P7,処理P9,処理P10}
の8個で、それぞれの信頼度は1/8となる。ここからパターンとその信頼度が計算される。
Care must be taken regarding the process P3. The process P3 is always called from the process P8 and the process P3, but the process P7, the process P9, and the process P10 may be called from other processes. Since there are three, the process set candidate that the process P3 is calling is
{Process P8}
{Process P8, Process P7}
{Process P8, Process P9}
{Process P8, Process P10}
{Process P8, Process P7, Process P9}
{Process P8, Process P7, Process P10}
{Process P8, Process P9, Process P10}
{Process P8, Process P7, Process P9, Process P10}
The reliability of each is 1/8. From here, the pattern and its reliability are calculated.

ところが、処理P7と処理P9が共に種別bの処理であることから、{処理P8,処理P7}と{処理P8,処理P9}からは同一のパターン{a,b}が生成される。同様に{処理P8,処理P7,処理P10}と{処理P8,処理P9,処理P10}からはパターン{a,b,a}が生成される。このような場合には、これらのパターンの信頼度は、対応する処理集合候補の信頼度の和をとることで計算する。よって結果は次のようになる。
パターン{a}:信頼度1/8
パターン{a,b}:信頼度1/4
パターン{a,a}:信頼度1/8
パターン{a,b,b}:信頼度1/8
パターン{a,b,a}:信頼度1/4
パターン{a,b,b,a}:信頼度1/8
処理P4についてもパターンとその信頼度を求めると次のようになる。
パターン{}:信頼度1/4
パターン{b}:信頼度1/4
パターン{a}:信頼度1/4
パターン{b,a}:信頼度1/4
次に、上で求めた各処理から呼び出される処理種別のパターンとその信頼度を、呼び出し元の処理種別毎に平均をとることで、処理種別毎に、それから呼び出されるパターンとその確率を計算する。
However, since both the process P7 and the process P9 are processes of type b, the same pattern {a, b} is generated from {process P8, process P7} and {process P8, process P9}. Similarly, a pattern {a, b, a} is generated from {Process P8, Process P7, Process P10} and {Process P8, Process P9, Process P10}. In such a case, the reliability of these patterns is calculated by taking the sum of the reliability of the corresponding processing set candidates. Therefore, the result is as follows.
Pattern {a}: reliability 1/8
Pattern {a, b}: reliability 1/4
Pattern {a, a}: reliability 1/8
Pattern {a, b, b}: reliability 1/8
Pattern {a, b, a}: Reliability 1/4
Pattern {a, b, b, a}: reliability 1/8
As for the process P4, the pattern and its reliability are as follows.
Pattern {}: Reliability 1/4
Pattern {b}: reliability 1/4
Pattern {a}: reliability 1/4
Pattern {b, a}: reliability 1/4
Next, by calculating the average of the process type pattern called from each process obtained above and its reliability for each process type of the caller, the pattern to be called and its probability are calculated for each process type. .

まず、処理種別Aに属するのは処理P1と処理P4であるから、これらの処理から呼び出されているパターン候補の信頼度の平均を計算する。例えばパターン{a}は、処理P1では信頼度1/2、処理P4では信頼度1/4であるので、処理種別Aからこのパターンが呼び出される確率は、その平均、すなわち3/8となる。一方パターン{a,a}は、処理P1では信頼度1/2であるが、処理P4ではパターン候補中に存在しない、すなわち信頼度0であるので、確率は1/4になる。   First, since process P1 and process P4 belong to process type A, the average reliability of pattern candidates called from these processes is calculated. For example, since the pattern {a} has a reliability of 1/2 in the process P1 and a reliability of 1/4 in the process P4, the probability that this pattern is called from the process type A is the average, that is, 3/8. On the other hand, the pattern {a, a} has a reliability of 1/2 in the process P1, but does not exist in the pattern candidate in the process P4, that is, the reliability is 0, so the probability is 1/4.

図50は、処理種別Aからの呼出パターンとその確率を示す第1の図である。図50に示すように、パターンA1{}の確率は、(0+1/4)/2=1/8である。パターンA2{b}の確率は(0+1/4)/2=1/8である。パターンA3{a}の確率は、(1/2+1/4)/2=3/8である。パターンA4{a,a}の確率は、(1/2+0)/2=1/4である。パターンA5{b,a}の確率は(0+1/4)/2=1/8である。   FIG. 50 is a first diagram showing a calling pattern from processing type A and its probability. As shown in FIG. 50, the probability of the pattern A1 {} is (0 + 1/4) / 2 = 1/8. The probability of the pattern A2 {b} is (0 + 1/4) / 2 = 1/8. The probability of the pattern A3 {a} is (1/2 + 1/4) / 2 = 3/8. The probability of the pattern A4 {a, a} is (1/2 + 0) / 2 = 1/4. The probability of the pattern A5 {b, a} is (0 + 1/4) / 2 = 1/8.

同様に処理種別Bに属する処理、すなわち処理P2および処理P3の平均をとると、処理種別Bから呼び出されるパターンとその確率を以下のように計算される。
図51は、処理種別Bからの呼出パターンとその確率を示す第1の図である。図51に示すように、パターンB1{}の確率は、(1/4+0)/2=1/8である。パターンB2{a}の確率は、(1/4+1/8)/2=3/16である。パターンB3{b}の確率は、(1/4+0)/2=1/8である。パターンB4{a,b}の確率は、(1/4+1/4)/2=1/4である。パターンB5{a,a}の確率は、(0+1/8)/2=1/16である。パターンB6{a,b,b}の確率は、(0+1/8)/2=1/16である。パターンB7{a,b,a}の確率は、(0+1/4)/2=1/8である。パターンB8{a,b,b,a}の確率は、(0+1/8)/2=1/16である。
Similarly, taking the average of the processes belonging to process type B, that is, processes P2 and P3, the pattern called from process type B and its probability are calculated as follows.
FIG. 51 is a first diagram showing a calling pattern from processing type B and its probability. As shown in FIG. 51, the probability of the pattern B1 {} is (1/4 + 0) / 2 = 1/8. The probability of the pattern B2 {a} is (1/4 + 1/8) / 2 = 3/16. The probability of the pattern B3 {b} is (1/4 + 0) / 2 = 1/8. The probability of the pattern B4 {a, b} is (1/4 + 1/4) / 2 = 1/4. The probability of the pattern B5 {a, a} is (0 + 1/8) / 2 = 1/16. The probability of the pattern B6 {a, b, b} is (0 + 1/8) / 2 = 1/16. The probability of the pattern B7 {a, b, a} is (0 + 1/4) / 2 = 1/8. The probability of the pattern B8 {a, b, b, a} is (0 + 1/8) / 2 = 1/16.

次にこれの処理種別毎の呼び出されるパターンとその確率を使って、もう一度各処理から呼び出される処理の集合の候補(処理集合候補)とその信頼度を計算しなおす。
まず、処理P1について考える。
処理P1で可能な呼び出し処理集合候補が
U11:{処理P5}
U12:{処理P5,処理P6}
であるのは同じである。ただし前回はどちらがよりもっともらしいかを判断する材料がなかったため信頼度を同じにしたが、今回は判断材料として図50および図51に示した処理種別毎の呼出パターンの信頼度を使うことができる。
Next, using the pattern to be called for each process type and its probability, the process set candidate (process set candidate) called from each process and its reliability are recalculated.
First, consider the process P1.
A possible call processing set candidate in process P1 is U11: {process P5}
U12: {Process P5, Process P6}
Is the same. However, the reliability was the same because there was no material for determining which is more likely last time, but this time, the reliability of the calling pattern for each processing type shown in FIGS. 50 and 51 can be used as the determination material. .

ただし、処理集合候補U11と処理集合候補U12の信頼度は、処理P1からの呼出パターンの確率だけではなく、このどちらかを選択するかによって呼び出し候補が影響される他の処理も考慮する必要がある。   However, the reliability of the processing set candidate U11 and the processing set candidate U12 needs to consider not only the probability of the call pattern from the process P1, but also other processes that affect the call candidate depending on which one is selected. is there.

処理集合候補U11と処理集合候補U12の差は処理P6が処理P1からよびだされているかどうかである。処理P6は処理P1または処理P2から呼び出されているから、例えば処理集合候補U11を選択するということは、単に処理P1から処理P6が呼び出されないことだけの選択ではなく、処理P2から処理P6が呼び出されている、という選択でもある。よって処理集合候補U11の信頼度を計算する際には、それによって処理P2からの呼び出しの選択がどれだけ制限されるかを考慮する必要がある。   The difference between the processing set candidate U11 and the processing set candidate U12 is whether or not the process P6 is called from the process P1. Since the process P6 is called from the process P1 or the process P2, for example, selecting the process set candidate U11 is not simply a selection that the process P6 is not called from the process P1, but the process P6 is changed from the process P2 to the process P6. It is also a choice that it is called. Therefore, when calculating the reliability of the processing set candidate U11, it is necessary to consider how much the selection of the call from the processing P2 is restricted thereby.

処理集合候補U11となる場合、処理P1(種別A)からの呼出パターンはA3であり、このパターンの確率は3/8である。一方、処理集合候補U12の場合はパターンA4であるから確率は1/4である。ただし処理集合候補U11および処理集合候補U12の信頼度はこれらの確率をそのまま使うのではなく、それによって他の処理からの呼出パターンがどのように制限されるかを考慮する。   In the case of the processing set candidate U11, the calling pattern from the processing P1 (type A) is A3, and the probability of this pattern is 3/8. On the other hand, in the case of the processing set candidate U12, since the pattern is A4, the probability is 1/4. However, the reliability of the processing set candidate U11 and the processing set candidate U12 does not use these probabilities as they are, but considers how call patterns from other processes are limited thereby.

すなわち、例えば処理P1からの呼び出しが処理集合候補U11の場合、処理P6は処理P1から呼ばれないことになる。そのため、他の候補、すなわち処理P2からかならず呼ばれることになる。よって処理P2から呼び出される処理の集合は{処理P6}または{処理P6,処理P7}でなければならない。   That is, for example, when the call from the process P1 is the process set candidate U11, the process P6 is not called from the process P1. Therefore, it is always called from another candidate, that is, the process P2. Therefore, the set of processes called from the process P2 must be {process P6} or {process P6, process P7}.

処理P6および処理P7の種別はaおよびbであるから、処理種別のパターンでいうとB2またはB4であり、確率はそれぞれ3/16および1/4である。よって処理集合候補U11の信頼度は、処理P2側の確率はこれらの確率の和、すなわち7/16と見積もることができる。これを使って、処理集合候補U11の信頼度は、処理P1側で処理集合候補U11が呼び出される確率3/8と処理P2側の制限からくる確率7/16の積、すなわち21/128とする。   Since the types of the processing P6 and the processing P7 are a and b, the processing type pattern is B2 or B4, and the probabilities are 3/16 and 1/4, respectively. Therefore, as for the reliability of the processing set candidate U11, the probability on the processing P2 side can be estimated as the sum of these probabilities, that is, 7/16. Using this, the reliability of the processing set candidate U11 is the product of the probability 3/8 that the processing set candidate U11 is called on the process P1 side and the probability 7/16 resulting from the restriction on the process P2 side, that is, 21/128. .

一方、処理集合候補U12の場合には、処理P6は処理P1から呼び出されているので、処理P2側の呼び出される処理の集合の候補は{}または{処理P7}のいずれか、処理種別のパターンではB1またはB3である。これらの確率は共に1/8であるので、処理集合候補U12の信頼度は1/4×(1/8+1/8)=1/16=8/128となる。   On the other hand, in the case of the process set candidate U12, the process P6 is called from the process P1, so the process set candidate to be called on the process P2 side is either {} or {process P7}. Then, it is B1 or B3. Since these probabilities are both 1/8, the reliability of the processing set candidate U12 is 1/4 × (1/8 + 1/8) = 1/16 = 8/128.

処理集合候補U11および処理集合候補U12のいずれかはかならず正しいので、両者の信頼度の和が1になるように正規化を行い、最終的に処理集合候補U11および処理集合候補U12の信頼度を
U11:{処理P5}信頼度21/29
U12:{処理P5,処理P6} 信頼度8/29
とする。すなわち処理集合候補U11のほうがもっともらしいと判断される。
Since either one of the processing set candidate U11 or the processing set candidate U12 is correct, normalization is performed so that the sum of the reliability of both becomes 1, and finally the reliability of the processing set candidate U11 and the processing set candidate U12 is determined. U11: {Process P5} reliability 21/29
U12: {Process P5, Process P6} Reliability 8/29
And That is, it is determined that the processing set candidate U11 is more likely.

次にこれを上と同様に処理種別のパターンとその信頼度に変換する。
パターン{a}:信頼度21/29
パターン{a,a}:信頼度8/29
処理P2、処理P3、処理P4についても処理P1の場合と全く同様にして可能な呼び出し処理集合の候補の信頼度を計算し、そこから呼び出し種別のパターン毎の信頼度を計算する。以下にその結果を示す。
Next, this is converted into a processing type pattern and its reliability in the same manner as above.
Pattern {a}: reliability 21/29
Pattern {a, a}: reliability 8/29
For process P2, process P3, and process P4, the reliability of possible call processing set candidates is calculated in the same manner as in process P1, and the reliability for each pattern of the call type is calculated therefrom. The results are shown below.

処理P2については、以下の通りである。
パターン{}:信頼度4/33
パターン{a}:信頼度9/33
パターン{b}:信頼度5/33
パターン{a,b}:信頼度15/33
処理P3については、以下の通りである。
パターン{a}:信頼度18/101
パターン{a,b}:信頼度46/101
パターン{a,a}:信頼度6/101
パターン{a,b,b}:信頼度15/101
パターン{a,b,a}:信頼度11/101
パターン{a,b,b,a}:信頼度5/101
処理P4については、以下の通りである。
パターン{}:信頼度3/28
パターン{b}:信頼度3/28
パターン{a}:信頼度15/28
パターン{b,a}:信頼度7/28
次に、前と同様にこれらの呼び出し元の処理毎の呼出パターンの信頼度から、処理種別毎の呼出パターンとその確率を、呼び出し元の処理種別毎に平均をとることで求める。
The process P2 is as follows.
Pattern {}: Reliability 4/33
Pattern {a}: reliability 9/33
Pattern {b}: reliability 5/33
Pattern {a, b}: reliability 15/33
The process P3 is as follows.
Pattern {a}: reliability 18/101
Pattern {a, b}: reliability 46/101
Pattern {a, a}: reliability 6/101
Pattern {a, b, b}: reliability 15/101
Pattern {a, b, a}: reliability 11/101
Pattern {a, b, b, a}: reliability 5/101
The process P4 is as follows.
Pattern {}: Reliability 3/28
Pattern {b}: reliability 3/28
Pattern {a}: reliability 15/28
Pattern {b, a}: reliability 7/28
Next, the call pattern for each processing type and its probability are obtained by averaging the call patterns for each processing type from the reliability of the calling pattern for each processing of the calling source as before.

図52は、処理種別Aからの呼出パターンとその確率を示す第2の図である。図52に示すように、パターンA1:{}の確率は87/1624=0.054である。パターンA2:{b}の確率87/1624=0.054である。パターンA3:{a}の確率は1023/1624=0.630である。パターンA4:{a,a}の確率は224/1624=0.138である。パターンA5:{b,a}の確率は203/1624=0.125である。   FIG. 52 is a second diagram showing a calling pattern from processing type A and its probability. As shown in FIG. 52, the probability of the pattern A1: {} is 87/1624 = 0.054. Pattern A2: the probability of {b} is 87/1624 = 0.054. Pattern A3: The probability of {a} is 1023/1624 = 0.630. Pattern A4: The probability of {a, a} is 224/1624 = 0.138. Pattern A5: The probability of {b, a} is 203/1624 = 0.125.

同様に処理種別Bに属する処理、すなわち処理P2および処理P3の平均をとると、処理種別Bから呼び出されるパターンとその確率を以下のように計算される。
図53は、処理種別Bからの呼出パターンとその確率を示す第2の図である。図53に示すように、パターンB1:{}の確率は404/6666=0.061である。パターンB2:{a}の確率は1503/6666=0.225である。パターンB3:{b}の確率は505/6666=0.076である。パターンB4:{a,b}の確率は3033/6666=0.455である。パターンB5:{a,a}の確率は198/6666=0.030である。パターンB6:{a,b,b}の確率は495/6666=0.074である。パターンB7:{a,b,a}の確率は363/6666=0.054である。パターンB8:{a,b,b,a}の確率は165/6666=0.025である。
Similarly, taking the average of the processes belonging to process type B, that is, processes P2 and P3, the pattern called from process type B and its probability are calculated as follows.
FIG. 53 is a second diagram showing a calling pattern from processing type B and its probability. As shown in FIG. 53, the probability of the pattern B1: {} is 404/6666 = 0.061. Pattern B2: The probability of {a} is 1503/6666 = 0.225. Pattern B3: The probability of {b} is 505/6666 = 0.076. Pattern B4: The probability of {a, b} is 3033/6666 = 0.455. Pattern B5: The probability of {a, a} is 198/6666 = 0.030. Pattern B6: The probability of {a, b, b} is 495/6666 = 0.074. Pattern B7: The probability of {a, b, a} is 363/6666 = 0.054. Pattern B8: The probability of {a, b, b, a} is 165/6666 = 0.025.

この処理毎の呼び出す処理の集合とその信頼度の計算およびそれから処理種別毎の呼出パターンやその確率の計算を適当な終了条件が満足するまで行う。終了条件は、第2の実施の形態と同様、繰り返し回数や、パターン毎の確率の変化量の上限等で行う。   A set of calling processes for each process and a calculation of the reliability thereof, and a call pattern for each processing type and a calculation of the probability thereof are performed until an appropriate end condition is satisfied. As in the second embodiment, the end condition is determined by the number of repetitions, the upper limit of the amount of change in probability for each pattern, or the like.

図52、図53に示した状態で終了条件が満足されると、モデル生成部140は、図52および図53の呼出パターンとその確率から、モデルを生成する。このとき、あまり確率の小さいモデルは信頼性にかける。そのため、呼び出し元の処理種別毎に、可能なパターンの中から確率の高い順に、選択数の上限および確率の下限を使ってモデルとして採用するパターンを選択する。   When the termination condition is satisfied in the state shown in FIGS. 52 and 53, the model generation unit 140 generates a model from the calling patterns and the probabilities thereof shown in FIGS. At this time, a model with a small probability is subjected to reliability. Therefore, for each processing type of the caller, a pattern to be adopted as a model is selected using the upper limit of the number of selections and the lower limit of the probability in descending order of probability from the possible patterns.

例えば選択数の上限を2、確率の下限を0.1とすると、呼出元の処理種別Aに対してはパターンA3とパターンA4が、処理種別Bに対してはパターンB4とB2がモデルとして選択される。最終的なモデルは、選択されたパターンのみを使って確率の和が1となるように正規化しなおして生成される。   For example, if the upper limit of the selection number is 2 and the lower limit of the probability is 0.1, the pattern A3 and the pattern A4 are selected as the model for the call source process type A, and the patterns B4 and B2 are selected as the models for the process type B Is done. The final model is generated by re-normalizing so that the sum of probabilities becomes 1 using only the selected pattern.

図54は、モデル生成結果を示す図である。IIOPの種別Aに対しては、2つのトランザクションモデル441,442が生成されている。トランザクションモデル441の確率は、0.82(=0.630/(0.630+0.138))であり、トランザクションモデル442の確率は、0.18(=0.138/(0.630+0.138))である。   FIG. 54 is a diagram showing a model generation result. For IIOP type A, two transaction models 441 and 442 are generated. The probability of the transaction model 441 is 0.82 (= 0.630 / (0.630 + 0.138)), and the probability of the transaction model 442 is 0.18 (= 0.138 / (0.630 + 0.138). ).

IIOPの種別Bに対しては、2つのトランザクションモデル443,444が生成されている。トランザクションモデル443の確率は、0.80(=0.574/(0.574+0.142))であり、トランザクションモデル444の確率は、0.20(=0.142/(0.574+0.142))である。   For IIOP type B, two transaction models 443 and 444 are generated. The probability of the transaction model 443 is 0.80 (= 0.574 / (0.574 + 0.142)), and the probability of the transaction model 444 is 0.20 (= 0.142 / (0.574 + 0.142). ).

以上の処理手順を整理すると以下のようになる。
図55は、第3の実施の形態におけるトランザクションモデル生成手順を示すフローチャートである。以下、図55に示す処理をステップ番号に沿って説明する。
The above processing procedure is organized as follows.
FIG. 55 is a flowchart illustrating a transaction model generation procedure according to the third embodiment. In the following, the process illustrated in FIG. 55 will be described in order of step number.

[ステップS81]モデル生成部140は、プロトコルログから各処理の開始と終了のペアを抽出する。
[ステップS82]モデル生成部140は、処理間の呼出関係で、制約を満足するものを呼出関係の候補として抽出する。
[Step S81] The model generation unit 140 extracts a start and end pair of each process from the protocol log.
[Step S82] The model generation unit 140 extracts a call relationship between processes that satisfies a constraint as a call relationship candidate.

[ステップS83]モデル生成部140は、処理毎に、それを呼び出し元とする呼出関係の候補から、呼び出されている処理の集合(呼出先処理集合)の候補を生成する。
[ステップS84]モデル生成部140は、呼出先処理集合の生起確率を初期化する(呼出元の処理毎に均等に確率を割り当てる)。
[Step S <b> 83] For each process, the model generation unit 140 generates a set of called processes (call destination process set) from the call relationship candidates that use the process as a caller.
[Step S84] The model generation unit 140 initializes the occurrence probability of the callee process set (allocates the probability evenly for each caller process).

[ステップS85]モデル生成部140は、呼出先処理集合とその確率から、処理種別による呼出パターンとその確率を計算する。
[ステップS86]モデル生成部140は、終了条件を満足したか否かを判断する。終了条件を満足した場合、処理がステップS88に進められる。終了条件を満足していない場合、処理がステップS87に進められる。
[Step S85] The model generation unit 140 calculates a calling pattern and its probability depending on the processing type from the calling destination processing set and its probability.
[Step S86] The model generation unit 140 determines whether an end condition is satisfied. If the end condition is satisfied, the process proceeds to step S88. If the end condition is not satisfied, the process proceeds to step S87.

[ステップS87]モデル生成部140は、呼出先処理集合の候補それぞれの生起確率を、処理種別毎の呼出パターンとその確率から再計算する。その後、処理がステップS85に進められる。   [Step S87] The model generation unit 140 recalculates the occurrence probability of each candidate of the callee processing set from the call pattern and the probability for each processing type. Thereafter, the process proceeds to step S85.

[ステップS88]終了条件を満足した場合、モデル生成部140は、処理種別毎の呼出パターンのうち、所定の条件を満たしたもの(例えば、所定の値より確率の高いもの)をトランザクションモデルとして選択する。   [Step S88] When the termination condition is satisfied, the model generation unit 140 selects, as a transaction model, a pattern satisfying a predetermined condition (for example, having a higher probability than a predetermined value) among the calling patterns for each processing type. To do.

[ステップS89]モデル生成部140は、呼出元の種別毎に、選択されたモデルの確率を正規化する。その後、処理が終了する。
このように第3の実施の形態では、処理種別毎に、呼び出し可能な処理の組み合わせを示す1以上の発生パターンを生成し、発生パターン毎に生起確率を計算する。そして、生起確率が上位の発生パターンを所定の個数選択し、選択された発生パターンに基づいて、トランザクションモデルを生成するようにした。これにより、ある呼出元の処理種別について可能な処理パターンが複数ある場合でも、そのモデルを正しく生成することができる。
[Step S89] The model generation unit 140 normalizes the probability of the selected model for each caller type. Thereafter, the process ends.
Thus, in the third embodiment, one or more occurrence patterns indicating combinations of processes that can be called are generated for each process type, and the occurrence probability is calculated for each occurrence pattern. Then, a predetermined number of occurrence patterns having higher occurrence probabilities are selected, and a transaction model is generated based on the selected occurrence pattern. Thereby, even when there are a plurality of possible processing patterns for a processing type of a certain caller, the model can be generated correctly.

なお、この方法では、多重度が高い場合、処理量が非常に増大する。そこで、以下のような方法で、処理量の軽減を図ることもできる。
第3の実施の形態では処理種別毎に呼び出すパターンとその確率を何度か更新していくことでトランザクションモデルを生成している。そして、最終的に得られたパターンから可能性の低いパターンを除去している。このとき、パターンとその確率の更新の際に、その都度可能性の低いパターンを除去することも可能である。一度除去した呼出パターンは、以後のモデル生成処理中に可能性として考慮する必要がないため、モデル生成の早期に除去することで、モデル生成に要する時間を短縮することができる。
In this method, when the multiplicity is high, the amount of processing increases greatly. Therefore, the amount of processing can be reduced by the following method.
In the third embodiment, a transaction model is generated by updating a pattern to be called for each processing type and its probability several times. And the pattern with low possibility is removed from the pattern finally obtained. At this time, when updating the pattern and its probability, it is also possible to remove a pattern that is less likely each time. Since the call pattern once removed does not need to be considered as a possibility during the subsequent model generation process, the time required for model generation can be shortened by removing it early in model generation.

例えば、図50および図51が生成された段階で、すなわち最初に可能なパターンとその確率が生成された段階で、確率が閾値以下となるパターンを削除する。閾値が0.1である場合、図50に示された処理種別Aからの呼出パターンの確率は1/8以上であるので削除されない。一方図51に示された処理種別Bからの場合には、パターンB5、パターンB6、パターンB8の3パターンの確率が1/16で閾値以下となるので、消去することができる。消去されたパターンは、実際の処理からこれらのパターンで処理が呼び出されることはないことを示す。   For example, at the stage where FIGS. 50 and 51 are generated, that is, at the stage where the first possible pattern and its probability are generated, the pattern whose probability is equal to or less than the threshold is deleted. When the threshold is 0.1, the probability of the call pattern from the processing type A shown in FIG. 50 is 1/8 or higher and is not deleted. On the other hand, in the case of the processing type B shown in FIG. 51, the probability of the three patterns of pattern B5, pattern B6, and pattern B8 is 1/16, which is equal to or less than the threshold value, and can be deleted. The erased pattern indicates that the process is not called by these patterns from the actual process.

これにより、以後再び可能なパターンの確率を求める際に、消去されたパターンは考慮する必要がないことを意味する。例えば種別Bの処理P3からの呼び出される処理の集合は上の例でも記したように
{処理P8}
{処理P8,処理P7}
{処理P8,処理P9}
{処理P8,処理P10}
{処理P8,処理P7,処理P9}
{処理P8,処理P7,処理P10}
{処理P8,処理P9,処理P10}
{処理P8,処理P7,処理P9,処理P10}
である。処理P8と処理P10の種別がa、処理P7と処理P9の種別がbであることから、これらのうち{処理P8,処理P10}がパターンB5、{処理P8,処理P7,処理P9}がパターンB6、{処理P8,処理P7,処理P9,処理P10}がパターンB8に属する。すなわち、これらの呼び出しは起こり得ない。よって以後の処理でこれらの呼び出しの発生を考慮する必要がなくなる。起こり得ないパターンを判断対象から除外することで、以降の処理量を軽減することができる。
This means that it is not necessary to consider the erased pattern when determining the probability of a possible pattern again. For example, as described in the above example, the set of processes called from the type B process P3 is {process P8}.
{Process P8, Process P7}
{Process P8, Process P9}
{Process P8, Process P10}
{Process P8, Process P7, Process P9}
{Process P8, Process P7, Process P10}
{Process P8, Process P9, Process P10}
{Process P8, Process P7, Process P9, Process P10}
It is. Since the type of process P8 and process P10 is a and the type of process P7 and process P9 is b, {process P8, process P10} is pattern B5, and {process P8, process P7, process P9} is a pattern. B6, {Process P8, Process P7, Process P9, Process P10} belongs to pattern B8. That is, these calls cannot occur. Therefore, it is not necessary to consider the occurrence of these calls in subsequent processing. By excluding patterns that cannot occur from the determination targets, the subsequent processing amount can be reduced.

[その他の応用例]
上記各実施の形態では、スイッチ10のミラーポートからメッセージを構成するパケットを収集しているが、各サーバ31,32,33において、メッセージのダンプデータを記録しておき、そのメッセージ観測部120が各サーバ31,32,33からダンプデータを収集してもよい。
[Other application examples]
In each of the above embodiments, the packets constituting the message are collected from the mirror port of the switch 10, but the dump data of the message is recorded in each server 31, 32, 33, and the message observation unit 120 Dump data may be collected from each server 31, 32, 33.

また、分析部150によって分析された内容に応じて、トランザクションモデルを更新することもできる。例えば、任意の種別のトランザクション内の各サーバでの処理時間が分析部150で求められると、種別毎の処理時間の平均を求め、対応するトランザクションモデルの処理時間とすることができる。   Also, the transaction model can be updated according to the content analyzed by the analysis unit 150. For example, when the processing time in each server in an arbitrary type of transaction is obtained by the analysis unit 150, the average of the processing time for each type can be obtained and used as the processing time of the corresponding transaction model.

なお、上記の処理機能は、コンピュータによって実現することができる。その場合、システム分析装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。   The above processing functions can be realized by a computer. In that case, a program describing the processing contents of the functions that the system analysis apparatus should have is provided. By executing the program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium. Examples of the computer-readable recording medium include a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory. Examples of the magnetic recording device include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape. Examples of the optical disc include a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only Memory), and a CD-R (Recordable) / RW (ReWritable). Magneto-optical recording media include MO (Magneto-Optical disk).

プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。   When distributing the program, for example, a portable recording medium such as a DVD or a CD-ROM in which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.

プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。   The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. In addition, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.

(付記1) 複数のサーバが接続されたネットワークの運用形態をコンピュータで分析するためのシステム分析プログラムにおいて、
前記コンピュータに、
メッセージ観測手段が、前記ネットワークを介して受け渡されるメッセージを収集し、
メッセージ解析手段が、収集した前記メッセージの内容を解析して、前記メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージかを判別し、判別された情報をプロトコルログとしてプロトコルログ記憶手段に格納し、
モデル生成指示が入力されると、モデル生成手段が、前記プロトコルログ記憶手段に格納された前記プロトコルログにおける前記処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、処理種別に対応する各処理を識別し、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づき、処理間の呼出関係に関する制約条件を満たすトランザクションモデルを生成し、生成した前記トランザクションモデルをトランザクションモデル記憶手段に格納し、
分析指示が入力されると、分析手段が、前記トランザクションモデル記憶手段に格納された前記トランザクションモデルで示される呼出関係に合致する前記プロトコルログを前記プロトコルログ記憶手段から抽出し、抽出された前記プロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析する、
処理を実行させることを特徴とするシステム分析プログラム。
(Supplementary note 1) In a system analysis program for analyzing a network operation form in which a plurality of servers are connected by a computer,
In the computer,
Message observing means collects messages passed through the network,
The message analysis unit analyzes the contents of the collected message to determine the processing type requested by the message and whether it is a request message or a response message. The determined information is stored in the protocol log storage unit as a protocol log. Store and
When a model generation instruction is input, the model generation unit causes each process corresponding to the process type to be determined according to the correspondence between the request message and the response message for each process type in the protocol log stored in the protocol log storage unit. And generating a transaction model that satisfies the constraint on the call relationship between processes based on the message set selected according to the selection criteria based on the probability of the call relationship between processes, and storing the generated transaction model in the transaction model storage Stored in the means,
When an analysis instruction is input, the analysis means extracts from the protocol log storage means the protocol log that matches the call relationship indicated by the transaction model stored in the transaction model storage means, and the extracted protocol Analyze the transaction processing state consisting of the messages shown in the log,
A system analysis program characterized by causing processing to be executed.

(付記2) 前記メッセージ観測手段は、前記ネットワーク内に設けられたスイッチのミラーポートを介して、前記メッセージの収集を行うことを特徴とする付記1記載のシステム分析プログラム。   (Additional remark 2) The said message observation means collects the said message via the mirror port of the switch provided in the said network, The system analysis program of Additional remark 1 characterized by the above-mentioned.

(付記3) 前記メッセージ観測手段は、前記サーバに保持されたメッセージのダンプデータから前記メッセージを収集することを特徴とする付記1記載のシステム分析プログラム。   (Additional remark 3) The said message observation means collects the said message from the dump data of the message hold | maintained at the said server, The system analysis program of Additional remark 1 characterized by the above-mentioned.

(付記4) 前記モデル生成手段は、前記制約条件として、呼出元の処理時間帯は呼出先の処理時間帯を包含するという条件が定義されていることを特徴とする付記1記載のシステム分析プログラム。   (Supplementary Note 4) The system analysis program according to Supplementary Note 1, wherein the model generation means defines, as the constraint condition, a condition that a processing time zone of a call source includes a processing time zone of a call destination .

(付記5) 前記モデル生成手段は、制約条件として、サーバ間の呼び出し方向が定義されていることを特徴とする付記1記載のシステム分析プログラム。
(付記6) 前記モデル生成手段は、同一トランザクション内の各処理種別のリクエストメッセージからレスポンスメッセージまでの時間に基づいて、各プロトコルに対応する処理の前記サーバでの所要時間を計算し、前記トランザクションモデルに設定することを特徴とする付記1記載のシステム分析プログラム。
(Supplementary note 5) The system analysis program according to supplementary note 1, wherein the model generation means defines a calling direction between servers as a constraint condition.
(Additional remark 6) The said model production | generation means calculates the time required in the said server of the process corresponding to each protocol based on the time from the request message of each process type in the same transaction to a response message, The said transaction model The system analysis program according to appendix 1, which is set to

(付記7) 前記モデル生成手段は、クライアントから最初に呼び出されるリクエストメッセージと、当該リクエストメッセージに対応するレスポンスメッセージとから、各トランザクションの処理時間帯を判定し、他のトランザクションとの間で処理時間帯が重複しない非多重トランザクションを検出し、検出された前記非多重トランザクションの処理時間帯内に発生した前記プロトコルログに基づいて前記トランザクションモデルを生成することを特徴とする付記1記載のシステム分析プログラム。   (Additional remark 7) The said model production | generation means determines the processing time zone of each transaction from the request message first called from a client, and the response message corresponding to the said request message, and processing time between other transactions The system analysis program according to claim 1, wherein a non-multiple transaction having no overlapping band is detected, and the transaction model is generated based on the protocol log generated within a processing time zone of the detected non-multiple transaction. .

(付記8) 前記モデル生成手段は、呼出先となる処理に対し呼び出し可能な処理が複数ある場合、各処理からの呼び出し確率を均等に定め、呼び出し元となる処理から他の処理の呼び出し確率を、処理の種別毎に統合し、処理間の呼出関係の可能性を算出することを特徴とする付記1記載のシステム分析プログラム。   (Supplementary Note 8) When there are a plurality of processes that can be called for the process to be called, the model generation means uniformly determines the call probability from each process, and determines the call probability of another process from the call source process. The system analysis program according to appendix 1, wherein the system analysis program is integrated for each type of processing and the possibility of a call relationship between the processing is calculated.

(付記9) 前記モデル生成手段は、処理種別毎に、呼び出し可能な処理の組み合わせを示す1以上の発生パターンを生成し、前記発生パターン毎に生起確率を計算し、前記生起確率が上位の前記発生パターンの所定の個数選択し、選択された前記発生パターンに基づいて、前記トランザクションモデルを生成することを特徴とする付記1記載のシステム分析プログラム。   (Additional remark 9) The said model production | generation means produces | generates one or more generation | occurrence | production patterns which show the combination of the process which can be called for every process classification, calculates the occurrence probability for every said generation pattern, and the said occurrence probability is high-order. The system analysis program according to appendix 1, wherein a predetermined number of generation patterns are selected, and the transaction model is generated based on the selected generation patterns.

(付記10) 複数のサーバが接続されたネットワークの運用形態をコンピュータで分析するためのシステム分析方法において、
メッセージ観測手段が、前記ネットワークを介して受け渡されるメッセージを収集し、
メッセージ解析手段が、収集した前記メッセージの内容を解析して、前記メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージかを判別し、判別された情報をプロトコルログとしてプロトコルログ記憶手段に格納し、
モデル生成指示が入力されると、モデル生成手段が、前記プロトコルログ記憶手段に格納された前記プロトコルログにおける前記処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、処理種別に対応する各処理を識別し、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づき、処理間の呼出関係に関する制約条件を満たすトランザクションモデルを生成し、生成した前記トランザクションモデルをトランザクションモデル記憶手段に格納し、
分析指示が入力されると、分析手段が、前記トランザクションモデル記憶手段に格納された前記トランザクションモデルで示される呼出関係に合致する前記プロトコルログを前記プロトコルログ記憶手段から抽出し、抽出された前記プロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析する、
ことを特徴とするシステム分析方法。
(Supplementary Note 10) In a system analysis method for analyzing a network operation mode in which a plurality of servers are connected by a computer,
Message observing means collects messages passed through the network,
The message analysis unit analyzes the contents of the collected message to determine the processing type requested by the message and whether it is a request message or a response message. The determined information is stored in the protocol log storage unit as a protocol log. Store and
When a model generation instruction is input, the model generation unit causes each process corresponding to the process type to be determined according to the correspondence between the request message and the response message for each process type in the protocol log stored in the protocol log storage unit. And generating a transaction model that satisfies the constraint on the call relationship between processes based on the message set selected according to the selection criteria based on the probability of the call relationship between processes, and storing the generated transaction model in the transaction model storage Stored in the means,
When an analysis instruction is input, the analysis means extracts from the protocol log storage means the protocol log that matches the call relationship indicated by the transaction model stored in the transaction model storage means, and the extracted protocol Analyze the transaction processing state consisting of the messages shown in the log,
A system analysis method characterized by the above.

(付記11) 複数のサーバが接続されたネットワークの運用形態を分析するためのシステム分析装置において、
前記ネットワークを介して受け渡されるメッセージを収集するメッセージ観測手段と、
収集した前記メッセージの内容を解析して、前記メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージかを判別し、判別された情報をプロトコルログとしてプロトコルログ記憶手段に格納するメッセージ解析手段と、
モデル生成指示が入力されると、前記プロトコルログ記憶手段に格納された前記プロトコルログにおける前記処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、処理種別に対応する各処理を識別し、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づき、処理間の呼出関係に関する制約条件を満たすトランザクションモデルを生成し、生成した前記トランザクションモデルをトランザクションモデル記憶手段に格納するモデル生成手段と、
分析指示が入力されると、前記トランザクションモデル記憶手段に格納された前記トランザクションモデルで示される呼出関係に合致する前記プロトコルログを前記プロトコルログ記憶手段から抽出し、抽出された前記プロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析する分析手段と、
を有することを特徴とするシステム分析装置。
(Supplementary Note 11) In a system analysis apparatus for analyzing an operation mode of a network in which a plurality of servers are connected,
Message observing means for collecting messages passed through the network;
Message analysis means for analyzing the content of the collected message to determine the processing type requested by the message and whether it is a request message or a response message, and storing the determined information in the protocol log storage means as a protocol log When,
When a model generation instruction is input, each process corresponding to the process type is identified by the correspondence between the request message and the response message for each process type in the protocol log stored in the protocol log storage unit, A model for generating a transaction model that satisfies a constraint condition regarding a call relationship between processes based on a message set selected according to a selection criterion based on a probability of a call relationship between them, and storing the generated transaction model in a transaction model storage unit Generating means;
When an analysis instruction is input, the protocol log that matches the call relationship indicated by the transaction model stored in the transaction model storage means is extracted from the protocol log storage means, and is indicated in the extracted protocol log An analysis means for analyzing a processing state of a transaction composed of messages;
A system analysis apparatus comprising:

(付記12) 複数のサーバが接続されたネットワークの運用形態をコンピュータで分析するためのシステム分析プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
メッセージ観測手段が、前記ネットワークを介して受け渡されるメッセージを収集し、
メッセージ解析手段が、収集した前記メッセージの内容を解析して、前記メッセージで要求されている処理種別、及びリクエストメッセージかレスポンスメッセージかを判別し、判別された情報をプロトコルログとしてプロトコルログ記憶手段に格納し、
モデル生成指示が入力されると、モデル生成手段が、前記プロトコルログ記憶手段に格納された前記プロトコルログにおける前記処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、処理種別に対応する各処理を識別し、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づき、処理間の呼出関係に関する制約条件を満たすトランザクションモデルを生成し、生成した前記トランザクションモデルをトランザクションモデル記憶手段に格納し、
分析指示が入力されると、分析手段が、前記トランザクションモデル記憶手段に格納された前記トランザクションモデルで示される呼出関係に合致する前記プロトコルログを前記プロトコルログ記憶手段から抽出し、抽出された前記プロトコルログに示されるメッセージで構成されるトランザクションの処理状態を分析する、
処理を実行させることを特徴とするシステム分析プログラムを記録したコンピュータ読み取り可能な記録媒体。
(Supplementary Note 12) In a computer-readable recording medium in which a system analysis program for analyzing a network operation form to which a plurality of servers are connected is analyzed by a computer,
In the computer,
Message observing means collects messages passed through the network,
The message analysis unit analyzes the contents of the collected message to determine the processing type requested by the message and whether it is a request message or a response message. The determined information is stored in the protocol log storage unit as a protocol log. Store and
When a model generation instruction is input, the model generation unit causes each process corresponding to the process type to be determined according to the correspondence between the request message and the response message for each process type in the protocol log stored in the protocol log storage unit. And generating a transaction model that satisfies the constraint on the call relationship between processes based on the message set selected according to the selection criteria based on the probability of the call relationship between processes, and storing the generated transaction model in the transaction model storage Stored in the means,
When an analysis instruction is input, the analysis means extracts from the protocol log storage means the protocol log that matches the call relationship indicated by the transaction model stored in the transaction model storage means, and the extracted protocol Analyze the transaction processing state consisting of the messages shown in the log,
A computer-readable recording medium having recorded thereon a system analysis program characterized in that processing is executed.

1 システム分析装置
1a メッセージ観測手段
1b メッセージ解析手段
1c プロトコルログ記憶手段
1d モデル生成手段
1e トランザクションモデル記憶手段
1f 分析手段
1g 出力手段
2 ネットワーク
3a,3b,・・・ クライアント
4a,4b,・・・ サーバ
5 メッセージ
DESCRIPTION OF SYMBOLS 1 System analyzer 1a Message observation means 1b Message analysis means 1c Protocol log storage means 1d Model generation means 1e Transaction model storage means 1f Analysis means 1g Output means 2 Network 3a, 3b, ... Client 4a, 4b, ... Server 5 messages

Claims (8)

複数のサーバ間でのトランザクションを分析するための分析プログラムであって、
コンピュータに、
前記複数のサーバ間にて送受信されるメッセージを収集する手順、
収集した前記メッセージの内容を解析して求めた、リクエストメッセージとレスポンスメッセージとのメッセージ対に関する情報を参照して、呼出関係を求め、求めた該呼出関係に関する制約条件を満たすトランザクションモデルを生成するモデル生成手順、
前記トランザクションモデルで示される呼出関係に合致する前記情報に示されるメッセージ対で構成されるトランザクションを分析する分析手順、
を実行させ、
前記複数のサーバは階層的に配置され、
前記モデル生成手順は、
収集した前記メッセージの内容を解析して、該メッセージの収集時の時刻と、リクエストメッセージとレスポンスメッセージとのメッセージ対を示す識別子との組を複数有する前記情報を求め、
階層が上位のサーバで処理されるメッセージ対の間に、階層が上位のサーバで処理され他の識別子を有するメッセージ対が存在するか否かを、前記時刻から判断し、
存在しない場合、該メッセージ対の間にあるメッセージ対も一つのトランザクションに係るメッセージ対と決定して呼出関係を求め、リクエストメッセージの該時刻とレスポンスメッセージの該時間から処理に要した処理時間を求め、求めた該呼出関係と求めた該処理時間とを有するトランザクションモデルを生成し、
前記分析手順は、前記トランザクションモデルで示される呼出関係に合致する前記情報に示されるメッセージ対で構成されるトランザクションの処理時間を分析する、
ことを特徴とする分析プログラム。
An analysis program for analyzing transactions between multiple servers,
On the computer,
A procedure for collecting messages transmitted and received between the plurality of servers;
A model for obtaining a call relationship by referring to information on a message pair of a request message and a response message obtained by analyzing the contents of the collected message, and generating a transaction model that satisfies a constraint condition on the obtained call relationship Generation procedure,
An analysis procedure for analyzing a transaction composed of the message pair indicated in the information that matches the call relationship indicated in the transaction model;
And execute
The plurality of servers are arranged in a hierarchy,
The model generation procedure includes:
Analyzing the contents of the collected message to obtain the information having a plurality of pairs of the time when the message was collected and an identifier indicating a message pair of a request message and a response message,
It is determined from the time whether or not there is a message pair processed by a higher-level server and having another identifier between message pairs processed by a higher-level server,
If it does not exist, the message pair between the message pair is also determined as a message pair related to one transaction and the call relationship is obtained, and the processing time required for processing is obtained from the time of the request message and the time of the response message. A transaction model having the obtained calling relationship and the obtained processing time,
The analysis procedure analyzes a processing time of a transaction composed of a message pair indicated in the information that matches the call relationship indicated in the transaction model.
An analysis program characterized by that .
複数のサーバ間でのトランザクションを分析するための分析プログラムであって、  An analysis program for analyzing transactions between multiple servers,
コンピュータに、  On the computer,
前記複数のサーバ間にて送受信されるメッセージを収集する手順、  A procedure for collecting messages transmitted and received between the plurality of servers;
収集した前記メッセージの内容を解析して求めた、リクエストメッセージとレスポンスメッセージとのメッセージ対に関する情報を参照して、呼出関係を求め、求めた該呼出関係に関する制約条件を満たすトランザクションモデルを生成するモデル生成手順、  A model for obtaining a call relationship by referring to information on a message pair of a request message and a response message obtained by analyzing the contents of the collected message, and generating a transaction model that satisfies a constraint condition on the obtained call relationship Generation procedure,
を実行させ、  And execute
前記モデル生成手順は、  The model generation procedure includes:
収集した前記メッセージの内容を解析して、該メッセージの収集時の時刻と、リクエストメッセージとレスポンスメッセージとのメッセージ対を示す識別子と、該メッセージで要求されている処理種別との組を複数有する前記情報を求め、  Analyzing the content of the collected message, and having a plurality of sets of the collection time of the message, an identifier indicating a message pair of a request message and a response message, and a processing type requested by the message Seeking information,
階層が上位のサーバで処理される処理種別のメッセージ対の間に、階層が上位のサーバで処理される処理種別であって他の識別子を有するメッセージ対が存在するか否かを、前記時刻から判断し、  Whether or not there is a message pair having another identifier that is a processing type processed by a higher-level server among the processing type message pairs processed by a higher-level server from the above time. Judgment
存在しない場合、該メッセージ対の間にあるメッセージ対も一つのトランザクションに係るメッセージ対と決定して呼出関係を求め、リクエストメッセージの該時刻とレスポンスメッセージの該時間から該処理種別に対応する処理に要した処理時間を求め、求めた該呼出関係と求めた該処理時間とを有するトランザクションモデルを生成する、  If the message pair does not exist, the message pair between the message pair is also determined as a message pair related to one transaction to obtain a calling relationship, and the processing corresponding to the processing type is performed from the time of the request message and the time of the response message. Obtaining a required processing time, and generating a transaction model having the obtained calling relationship and the obtained processing time.
ことを特徴とする分析プログラム。  An analysis program characterized by that.
前記モデル生成手順は、呼出先となる処理に対し呼び出し可能な処理が複数ある場合、各処理からの呼び出し確率を均等に定め、呼び出し元となる処理から他の処理の呼び出し確率を、処理種別毎に統合し、処理間の呼出関係の可能性を算出する、When there are a plurality of processes that can be called with respect to the process that is the call destination, the model generation procedure determines the call probability from each process equally, and determines the call probability of the other process from the call source process for each process type. To calculate the possibility of a call relationship between processes,
請求項2記載の分析プログラム。  The analysis program according to claim 2.
前記モデル生成手順は、処理種別毎に、呼び出し可能な処理の組み合わせを示す1以上の発生パターンを生成し、該発生パターン毎に生起確率を計算し、該生起確率が上位の該発生パターンを所定の個数選択し、選択された該発生パターンに基づいて、前記トランザクションモデルを生成する、The model generation procedure generates at least one occurrence pattern indicating a combination of processes that can be called for each process type, calculates an occurrence probability for each occurrence pattern, and sets the occurrence pattern having a higher occurrence probability to a predetermined value. Generating the transaction model based on the selected occurrence pattern.
請求項2または3記載の分析プログラム。  The analysis program according to claim 2 or 3.
複数のサーバを有するシステムにおいて実行されるトランザクションを分析する分析装置を制御する制御プログラムであって、A control program for controlling an analyzer that analyzes a transaction executed in a system having a plurality of servers,
前記分析装置に、  In the analyzer,
前記複数のサーバ間にて送受信されるメッセージの内容に基づいて、リクエストメッセージとレスポンスメッセージとのメッセージ対に関する情報を記憶手段に格納する格納手順、  A storage procedure for storing information on a message pair of a request message and a response message in a storage unit based on the content of a message transmitted and received between the plurality of servers.
前記情報に基づいて求めた呼出関係を有するトランザクションモデルを生成するモデル生成手順、  A model generation procedure for generating a transaction model having a call relationship determined based on the information;
前記トランザクションモデルで示される呼出関係に合致する前記情報を前記記憶手段から抽出し、抽出した前記情報が示すメッセージ対で構成されるトランザクションを分析する分析手順、  An analysis procedure for extracting the information that matches the call relationship indicated by the transaction model from the storage means, and analyzing a transaction including a message pair indicated by the extracted information;
を実行させ、  And execute
前記複数のサーバは階層的に配置され、  The plurality of servers are arranged in a hierarchy,
前記格納手順は、前記メッセージの内容に基づいて、該メッセージの収集時の時刻と、リクエストメッセージとレスポンスメッセージとのメッセージ対を示す識別子との組を複数有する前記情報を、前記記憶手段に格納し、  The storing procedure stores, in the storage unit, the information having a plurality of pairs of a time when the message is collected and an identifier indicating a message pair of a request message and a response message based on the content of the message. ,
前記モデル生成手順は、前記情報を参照して、階層が上位のサーバで処理されるメッセージ対の間に、階層が上位のサーバで処理され他の識別子を有するメッセージ対が存在するか否かを前記時刻から判定し、存在しない場合、該メッセージ対の間にあるメッセージ対も一つのトランザクションに係るメッセージ対と決定して呼出関係を求め、リクエストメッセージの該時刻とレスポンスメッセージの該時刻とから処理に要した処理時間を求め、求めた該呼出関係と求めた該処理時間とを有するトランザクションモデルを生成し、  The model generation procedure refers to the information to determine whether there is a message pair processed by a higher-level server and having another identifier between message pairs processed by a higher-level server. If it is determined from the time and does not exist, a message pair between the message pairs is also determined as a message pair related to one transaction, and a call relationship is obtained, and processing is performed from the time of the request message and the time of the response message. Generating a transaction model having the call relationship obtained and the obtained processing time;
前記分析手順は、前記トランザクションモデルで示される呼出関係に合致する前記情報を前記記憶手段から抽出し、抽出した前記情報が示すメッセージ対で構成されるトランザクションの処理時間を分析する、  The analysis procedure extracts the information that matches the call relationship indicated by the transaction model from the storage means, and analyzes the processing time of a transaction composed of message pairs indicated by the extracted information.
ことを特徴とする制御プログラム。  A control program characterized by that.
前記格納手順は、収集した前記メッセージの内容を解析して、該メッセージの収集時の時刻と、リクエストメッセージとレスポンスメッセージとのメッセージ対を示す識別子と、該メッセージで要求されている処理種別との組を複数有する前記情報を、前記記憶手段に格納し、The storage procedure analyzes the contents of the collected message, and includes the time when the message is collected, an identifier indicating a message pair of a request message and a response message, and a processing type requested by the message. Storing the information having a plurality of sets in the storage means;
前記モデル生成手順は、前記情報を参照して、階層が上位のサーバで処理される処理種別のメッセージ対の間に、階層が上位のサーバで処理される処理種別であって他の識別子を有するメッセージ対が存在するか否かを、前記時刻から判断し、存在しない場合、該メッセージ対の間にあるメッセージ対も一つのトランザクションに係るメッセージ対と決定して呼出関係を求め、リクエストメッセージの該時刻とレスポンスメッセージの該時間から該処理種別に対応する処理に要した処理時間を求め、求めた該呼出関係と求めた該処理時間とを有するトランザクションモデルを生成する、  The model generation procedure refers to the information, and has a processing type processed by a higher-level server and another identifier between processing type message pairs processed by a higher-level server. It is determined from the time whether or not a message pair exists. If the message pair does not exist, a message pair between the message pairs is also determined as a message pair related to one transaction to obtain a calling relationship, and the request message Obtaining a processing time required for the processing corresponding to the processing type from the time of the time and the response message, and generating a transaction model having the obtained calling relationship and the obtained processing time.
ことを特徴とする請求項5記載の制御プログラム。  The control program according to claim 5.
前記モデル生成手順は、呼出先となる処理に対し呼び出し可能な処理が複数ある場合、各処理からの呼び出し確率を均等に定め、呼び出し元となる処理から他の処理の呼び出し確率を、処理種別毎に統合し、処理間の呼出関係の可能性を算出する、When there are a plurality of processes that can be called with respect to the process that is the call destination, the model generation procedure determines the call probability from each process equally, and determines the call probability of the other process from the call source process for each process type. To calculate the possibility of a call relationship between processes,
ことを特徴とする請求項5または6記載の制御プログラム。  7. The control program according to claim 5 or 6, wherein:
前記モデル生成手順は、処理種別毎に、呼び出し可能な処理の組み合わせを示す1以上の発生パターンを生成し、該発生パターン毎に生起確率を計算し、該生起確率が上位の該発生パターンを所定の個数選択し、選択された該発生パターンに基づいて、前記トランザクションモデルを生成する、The model generation procedure generates at least one occurrence pattern indicating a combination of processes that can be called for each process type, calculates an occurrence probability for each occurrence pattern, and sets the occurrence pattern having a higher occurrence probability to a predetermined value. Generating the transaction model based on the selected occurrence pattern.
ことを特徴とする請求項5乃至7のいずれかに記載の制御プログラム。  The control program according to claim 5, wherein
JP2009298735A 2009-12-28 2009-12-28 Analysis program and control program Expired - Fee Related JP5440164B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009298735A JP5440164B2 (en) 2009-12-28 2009-12-28 Analysis program and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009298735A JP5440164B2 (en) 2009-12-28 2009-12-28 Analysis program and control program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004185909A Division JP4610240B2 (en) 2004-06-24 2004-06-24 Analysis program, analysis method, and analysis apparatus

Publications (2)

Publication Number Publication Date
JP2010152899A JP2010152899A (en) 2010-07-08
JP5440164B2 true JP5440164B2 (en) 2014-03-12

Family

ID=42571843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009298735A Expired - Fee Related JP5440164B2 (en) 2009-12-28 2009-12-28 Analysis program and control program

Country Status (1)

Country Link
JP (1) JP5440164B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490055B2 (en) * 2010-09-17 2013-07-16 Ca, Inc. Generating dependency maps from dependency data
JP5655687B2 (en) * 2011-04-18 2015-01-21 富士通株式会社 Analysis processing apparatus, analysis processing program, and analysis processing method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2967892B2 (en) * 1993-01-06 1999-10-25 日本電信電話株式会社 Communication protocol information matching device
JP2002342127A (en) * 2001-05-21 2002-11-29 Toshiba Corp Program, system and method for outputting web log
JP2003157185A (en) * 2001-11-19 2003-05-30 Nec Corp Method and device for computer operation analysis and display, and computer program

Also Published As

Publication number Publication date
JP2010152899A (en) 2010-07-08

Similar Documents

Publication Publication Date Title
JP4610240B2 (en) Analysis program, analysis method, and analysis apparatus
US11636116B2 (en) User interface for customizing data streams
US9565076B2 (en) Distributed network traffic data collection and storage
US20180309637A1 (en) Systems and methods for networked microservice modeling and visualization
US10360196B2 (en) Grouping and managing event streams generated from captured network data
US10523521B2 (en) Managing ephemeral event streams generated from captured network data
US11615082B1 (en) Using a data store and message queue to ingest data for a data intake and query system
US11281643B2 (en) Generating event streams including aggregated values from monitored network data
JP5035068B2 (en) Service processing status analysis program, service processing status analysis device, and service processing status analysis method
US20030055883A1 (en) Synthetic transaction monitor
US11449371B1 (en) Indexing data at a data intake and query system based on a node capacity threshold
US11755531B1 (en) System and method for storage of data utilizing a persistent queue
WO2002079909A2 (en) Synthetic transaction monitor
WO2020087082A1 (en) Trace and span sampling and analysis for instrumented software
WO2002091296A2 (en) Method and apparatus for measurement, analysis, and optimization of content delivery
CN107800565A (en) Method for inspecting, device, system, computer equipment and storage medium
WO2022164925A1 (en) A user defined data stream for routing data
JP5440164B2 (en) Analysis program and control program
KR102423039B1 (en) Real-time packet data storing method and apparatus for mass network monitoring
JP5012999B2 (en) Maintenance work support program, maintenance work support method, and maintenance work support apparatus
KR102423038B1 (en) Real-time packet data collection method and apparatus for mass network monitoring
KR101345095B1 (en) Method and system for bgp routing data processing based on cluster
KR100621996B1 (en) Method and system of analyzing internet service traffic
US11947988B1 (en) Load balancer bypass for direct ingestion of data into a data intake and query system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131007

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20131015

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: 20131119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131202

R150 Certificate of patent or registration of utility model

Ref document number: 5440164

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees