(57)【特許請求の範囲】
【請求項１】
複数のサーバが接続されたネットワークシステムのサービス処理状況分析をコンピュータに実行させるサービス処理状況分析プログラムであって、
前記コンピュータを、
ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納するメッセージ観測手段、
前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する中断検出手段、
トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、前記中断検出手段で検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成する部分モデル生成手段、
前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する部分トランザクション情報生成手段、
前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する中断トランザクション情報生成手段、
として機能させるサービス処理状況分析プログラム。
【請求項２】
前記部分トランザクション情報生成手段は、前記中断処理リクエストメッセージの受け渡し時刻から前記中断メッセージの受け渡し時刻までの時間帯に受け渡されたリクエストメッセージを最初のメッセージとして前記部分トランザクション情報を生成することを特徴とする請求項１記載のサービス処理状況分析プログラム。
【請求項３】
前記部分モデル生成手段は、前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルが複数検出された場合、検出された複数の前記トランザクションモデルそれぞれの前記部分モデルを生成し、
前記部分トランザクション情報生成手段は、前記部分モデルが複数生成された場合、生成された複数の前記部分モデルのいずれかに適合する前記部分トランザクション情報を生成することを特徴とする請求項１記載のサービス処理状況分析プログラム。
【請求項４】
前記中断トランザクション情報生成手段は、中断した処理の時間帯が重複する複数の前記中断処理リクエストメッセージが検出され、複数の前記部分トランザクション情報が生成された場合、複数の前記中断処理リクエストメッセージを受け渡し時刻に基づいて時系列に並べ、複数の前記部分トランザクション情報を最初のメッセージの受け渡し時刻に基づいて時系列に並べ、前記中断処理リクエストメッセージと前記部分トランザクション情報とを時系列上の順番に沿って１つずつ結合していき、複数の前記中断トランザクション情報を生成することを特徴とする請求項１記載のサービス処理状況分析プログラム。
【請求項５】
前記コンピュータを、さらに、
前記モデル記憶手段に記憶されている前記トランザクションモデルと同様のメッセージの配列を構成する複数のメッセージを前記メッセージ記憶手段から抽出し、抽出したメッセージにより完了トランザクションを生成し、前記完了トランザクションを完了トランザクション情報記憶手段に格納する完了トランザクション情報生成手段として機能させることを特徴とする請求項１記載のサービス処理状況分析プログラム。
【請求項６】
複数のサーバが接続されたネットワークシステムのサービス処理状況分析するサービス処理状況分析装置であって、
ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納するメッセージ観測手段と、
前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する中断検出手段と、
トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、前記中断検出手段で検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成する部分モデル生成手段と、
前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する部分トランザクション情報生成手段と、
前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する中断トランザクション情報生成手段と、
を有するサービス処理状況分析装置。
【請求項７】
複数のサーバが接続されたネットワークシステムのサービス処理状況分析をコンピュータで実行するサービス処理状況分析方法であって、
前記コンピュータが、
ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納し、
前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出し、
トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成し、
前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成し、
生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する、
ことを特徴とするサービス処理状況分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークシステムのサービス処理状況を分析するためのサービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法に関し、特にネットワーク上で受け渡されるメッセージの観測結果に基づいてサービス処理状況を分析するサービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法に関する。
【背景技術】
【０００２】
ＷｅｂサービスをはじめとするＩＴ（information technology）システムは、２４時間３６５日の安定稼働が欠かせない。Ｗｅｂビジネスの成長にともない、システムが止まらないことは言うまでもなく、サービスの品質が問われるようになってきている。そのため、エンドユーザが体験しているサービスの品質（可用性（availability）やレスポンス）を、エンドユーザの視点から常に監視することが重要である。そこで、システムの動作状況を把握する業務サービス管理ツールが提供されている。
【０００３】
業務サービス管理ツールには、システムの運用状況を監視するための様々な技術が適用されている。例えば、システム可視化技術と呼ぶ技術がある。システム可視化技術は、ネットワークを流れる電文（メッセージ）をキャプチャし、業務毎に各サーバ間でどのようなメッセージが流れているか分析、モデル化し、監視する技術である（例えば、特許文献１、特許文献２参照）。この技術を用いることで、複数台のサーバが連携して動作する処理に関しても、端末装置からのリクエストに応答して各サーバでどれだけの時間処理を行ったのかを計測することができる。
【特許文献１】特開２００６−１１６８３号公報
【特許文献２】特開２００６−３２３４７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ＩＴシステムが過負荷になると、サーバのレスポンスが遅くなる。その場合、ユーザは待ちきれずにリクエストを中断することがある。例えば、Ｗｅｂサービスへのリクエストであれば、ユーザはブラウザの「中止ボタン」を押して読み込みを中断することができる。Ｗｅｂサービスへのリクエストが中断されると、ユーザの中断はTCP ResetメッセージとしてＷｅｂサーバに通知される。Ｗｅｂサーバでは、既に実行が開始されている処理はそのまま継続するが、処理が終了してもクライアントへレスポンスは送信しない。
【０００５】
システムの運用中にユーザ操作による中断処理が多発していれば、そのシステムでは、ユーザが許容できるレスポンス待ち時間までにレスポンスを返すことができていないことになる。従って、システム運用管理の観点から、ユーザの中止ボタン押下状況を的確に把握することは極めて重要である。
【０００６】
しかし、従来の技術では、中断された処理を分析することができなかった。前述の可視化によるシステムの監視（上記特許文献１、特許文献２）においても、完成したトランザクションが解析対象であるため、中断した部分的なトランザクションを検出できない。
【０００７】
一例として、Ｗｅｂサーバ、アプリケーションサーバ、およびデータベースサーバが連携して処理を実行するトランザクションを想定する。この例では、Ｗｅｂサーバはクライアントからのリクエストに応じて処理を実行し、アプリケーションサーバはＷｅｂサーバからのリクエストに応じて処理を実行し、データベースサーバはアプリケーションサーバからのリクエストに応じて処理を実行するものとする。このようなトランザクションにおいて、アプリケーションサーバで遅延が発生していたため、ユーザが応答を待ちきれず、クライアントからの指示で処理が中断されることがある。この場合、Ｗｅｂサーバからクライアントへの応答メッセージが存在しないため、キャプチャしたメッセージを組み合わせても完成したトランザクションとならない。完成したトランザクションを構成しないメッセージは解析の対象とならないため、処理の遅延を生じさせた原因を把握できなかった。
【０００８】
本発明はこのような点に鑑みてなされたものであり、中断した部分的なトランザクションを検出できるサービス処理状況分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、複数のサーバが接続されたネットワークシステムのサービス処理状況分析するサービス処理状況分析装置が提供される。サービス処理状況分析装置は、メッセージ観測手段、中断検出手段、部分モデル生成手段、部分トランザクション情報生成手段、および中断トランザクション情報生成手段を有する。
【００１０】
メッセージ観測手段は、ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納する。中断検出手段は、メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する。部分モデル生成手段は、トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、中断検出手段で検出された中断処理リクエストメッセージと同じ内容のメッセージで開始されるトランザクションモデルを検索し、検出したトランザクションモデルから中断処理リクエストメッセージと中断メッセージとに対応するメッセージを除いた部分モデルを生成する。部分トランザクション情報生成手段は、メッセージ記憶手段内の中断処理リクエストメッセージより後に受け渡されたメッセージの中から、部分モデル生成手段で生成された部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する。中断トランザクション情報生成手段は、部分トランザクション情報生成手段で生成された部分トランザクション情報と、少なくとも中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した中断トランザクション情報を中断トランザクション情報記憶手段に格納する。
【００１１】
このようなサービス処理状況分析装置によれば、ネットワークを介して受け渡されるメッセージがメッセージ観測手段で収集され、メッセージ記憶手段に格納される。その後、中断検出手段により、メッセージ記憶手段に格納されたメッセージの情報から、中断処理リクエストメッセージが検出される。次に、部分モデル生成手段により、モデル記憶手段が参照され、中断処理リクエストメッセージと同じ内容のメッセージで開始されるトランザクションモデルから部分モデルが生成される。さらに、部分トランザクション情報生成手段により、部分モデルと同様のメッセージの配列を構成する複数のメッセージにより部分トランザクション情報が生成される。そして、中断トランザクション情報生成手段により、部分トランザクション情報と、少なくとも中断処理リクエストメッセージとが結合され中断トランザクション情報が生成され、中断トランザクション情報が中断トランザクション情報記憶手段に格納される。
【００１２】
また、上記サービス処理状況分析装置と同様の機能をコンピュータに実行させるサービス処理状況分析プログラムが提供される。さらに、上記サービス処理状況分析装置で行われる処理をコンピュータで行うサービス処理状況分析方法が提供される。
【発明の効果】
【００１３】
上記サービス処理状況分析装置では、ネットワーク上で受け渡されるメッセージに基づいて、中断されたトランザクションを構成するメッセージの配列である中断トランザクション情報を生成することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、実施の形態の概要を示す図である。サービス処理状況分析装置１は、ネットワーク３ａ，３ｂ，３ｃを介して接続されたクライアント２ａや複数のサーバ２ｂ，２ｃ，２ｄ間で受け渡されるメッセージに基づいて、サービスの処理状況を分析する装置である。このサービス処理状況分析装置１は、中断されたトランザクションにおける処理状況を分析するために、モデル記憶手段１ａ、メッセージ観測手段１ｂ、メッセージ記憶手段１ｃ、中断検出手段１ｄ、部分モデル生成手段１ｅ、部分トランザクション情報生成手段１ｆ、中断トランザクション情報生成手段１ｇ、および中断トランザクション情報記憶手段１ｈを有している。
【００１５】
モデル記憶手段１ａは、トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶する。なお、トランザクションモデルは、予めモデル記憶手段１ａに格納されている。
【００１６】
メッセージ観測手段１ｂは、ネットワーク３ａ，３ｂ，３ｃを介して受け渡されるメッセージを収集する。そして、メッセージ観測手段１ｂは、収集したメッセージの情報をメッセージ記憶手段１ｃに格納する。メッセージ記憶手段１ｃは、複数のメッセージを記憶する。
【００１７】
中断検出手段１ｄは、メッセージ記憶手段１ｃに格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索する。そして、中断検出手段１ｄは、中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する。
【００１８】
部分モデル生成手段１ｅは、モデル記憶手段１ａを参照し、中断検出手段１ｄで検出された中断処理リクエストメッセージと同じ内容のメッセージで開始されるトランザクションモデルを検索する。そして、部分モデル生成手段１ｅは、検出したトランザクションモデルから中断処理リクエストメッセージと中断メッセージとに対応するメッセージを除いた部分モデルを生成する。
【００１９】
部分トランザクション情報生成手段１ｆは、メッセージ記憶手段１ｃ内の中断処理リクエストメッセージより後に受け渡されたメッセージの中から、部分モデル生成手段１ｅで生成された部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出する。そして、部分トランザクション情報生成手段１ｆは、抽出した複数のメッセージにより部分トランザクション情報を生成する。
【００２０】
中断トランザクション情報生成手段１ｇは、部分トランザクション情報生成手段１ｆで生成された部分トランザクション情報と、少なくとも中断処理リクエストメッセージとを結合して中断トランザクション情報を生成する。そして、中断トランザクション情報生成手段１ｇは、生成した中断トランザクション情報を中断トランザクション情報記憶手段１ｈに格納する。中断トランザクション情報記憶手段１ｈは、中断トランザクション情報を記憶する。
【００２１】
このようなサービス処理状況分析装置１によれば、ネットワークを介して受け渡されるメッセージがメッセージ観測手段１ｂで収集され、メッセージ記憶手段１ｃに格納される。その後、中断検出手段１ｄにより、メッセージ記憶手段１ｃに格納されたメッセージの情報から、中断処理リクエストメッセージが検出される。次に、部分モデル生成手段１ｅにより、モデル記憶手段１ａが参照され、中断処理リクエストメッセージと同じ内容のメッセージで開始されるトランザクションモデルから部分モデルが生成される。さらに、部分トランザクション情報生成手段１ｆにより、部分モデルと同様のメッセージの配列を構成する複数のメッセージにより部分トランザクション情報が生成される。そして、中断トランザクション情報生成手段１ｇにより、部分トランザクション情報と、少なくとも中断処理リクエストメッセージとが結合され中断トランザクション情報が生成され、中断トランザクション情報が中断トランザクション情報記憶手段１ｈに格納される。
【００２２】
このように、中断処理リクエストメッセージを検出した場合、トランザクションモデルの部分モデルを作成し、メッセージ記憶手段１ｃから部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出するようにした。これにより、処理が完了していない中断トランザクション情報のメッセージ配列を抽出することができる。
【００２３】
次に、本実施の形態の詳細を説明する。
図２は、本実施の形態のシステム構成例を示す図である。図２に示すように、インターネット１０には複数のクライアント２１〜２３が接続されている。また、インターネット１０にはルータ３１が接続されている。図中、ルータ３１およびルータ３１より右側の各装置によって、サービス提供側のネットワークシステムが構成されている。サービス提供側のネットワークシステムは、Ｗｅｂサーバ４１、アプリケーションサーバ４２，４３、およびデータベース（ＤＢ）サーバ４４による３階層構造となっている。
【００２４】
ルータ３１にはスイッチ３２を介してＷｅｂサーバ４１が接続されている。Ｗｅｂサーバ４１は、クライアント２１〜２３に対してＷＷＷ（World Wide Web ）による情報提供を行う。Ｗｅｂサーバ４１には、スイッチ３３を介してアプリケーションサーバ４２，４３が接続されている。アプリケーションサーバ４２，４３は、Ｗｅｂサーバ４１からのリクエストに応じてデータ処理を実行する。アプリケーションサーバ４２，４３には、スイッチ３４を介してＤＢサーバ４４が接続されている。ＤＢサーバ４４は、アプリケーションサーバ４２，４３からのリクエストに応じてデータベースへのデータの入出力を行う。
【００２５】
各スイッチ３２〜３４は、ポートモニタリング機能を有している。ポートモニタリング機能とは、スイッチ３２〜３４のポートを介して送受信されるパケットのコピーを、予め指定したポートへ送出する機能である。各スイッチ３２〜３４のコピーされたパケットを送出するポートには、スイッチ３５を介してサービス処理状況分析装置１００が接続されている。
【００２６】
サービス処理状況分析装置１００は、サービス提供側のネットワーク内で送受信されるパケットの内容を解析し、複数のサーバで処理されるトランザクションを検出する。そして、サービス処理状況分析装置１００は、検出したトランザクションを実行するのに各サーバが要した時間を分析する。なお、本実施の形態のサービス処理状況分析装置１００は、完了したトランザクションに限らず、途中で中断したトランザクションについても検出することができる。
【００２７】
図３は、本実施の形態に用いるサービス処理状況分析装置のハードウェア構成例を示す図である。サービス処理状況分析装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００２８】
ＲＡＭ１０２は、サービス処理状況分析装置１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３は、サービス処理状況分析装置１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００２９】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置がある。
【００３０】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３１】
通信インタフェース１０６は、スイッチ３５に接続されている。通信インタフェース１０６は、スイッチ３５を介して、ネットワーク上で送受信されるパケットを取得（キャプチャ）する。
【００３２】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３ではサービス処理状況分析装置１００のハードウェア構成を示したが、クライアント２１〜２３、Ｗｅｂサーバ４１、アプリケーションサーバ４２，４３、ＤＢサーバ４４も同様のハードウェア構成で実現することができる。
【００３３】
図４は、サービス処理状況分析装置の機能を示すブロック図である。サービス処理状況分析装置１００は、モデル記憶部１１０、パケットデータ収集部１２１、メッセージ情報取得部１２３、メッセージバッファ１２４、中断検出部１３１、部分マッチング部１３２、中断トランザクション情報記憶部１３３、全体マッチング部１４１、完了トランザクション情報記憶部１４２、および分析部１５１を有している。
【００３４】
モデル記憶部１１０は、トランザクションを構成するメッセージの組合せを示すトランザクションモデルを記憶する記憶機能である。例えば、ＨＤＤ１０３の記憶領域の一部がモデル記憶部１１０として使用される。なお、トランザクションモデルは、クライアントから出力されるリクエストの種別ごとに設けられる。
【００３５】
パケットデータ収集部１２１は、スイッチ３５を介して送受信されるパケットを取得し、取得したパケットをメッセージ情報取得部１２３に渡す。
メッセージ情報取得部１２３は、パケットデータ収集部１２１から渡されたパケットの内容を解析し、１つ以上のパケットで構成されるメッセージを検出する。そして、メッセージ情報取得部１２３は、検出したメッセージを示すメッセージデータをメッセージバッファ１２４に格納する。
【００３６】
メッセージバッファ１２４は、メッセージデータを格納するための記憶機能である。例えば、ＲＡＭ１０２の記憶領域の一部がメッセージバッファ１２４として使用される。
中断検出部１３１は、メッセージバッファ１２４に格納されたメッセージを検索し、中断を指示するメッセージ（中断メッセージ）を見つけ出す。中断メッセージを見つけ出した場合、中断検出部１３１は、その中断メッセージによって中断された処理のリクエストメッセージのメッセージデータを部分マッチング部１３２に通知する。
【００３７】
部分マッチング部１３２は、中断された処理のリクエストメッセージに基づいて、中断したトランザクションの部分マッチングを行う。具体的には、部分マッチング部１３２は、中断された処理のリクエストメッセージと同じ内容（例えば、処理を実行するプログラムのＵＲＬ（Uniform Resource Locator）が同一）のメッセージから開始されるトランザクションモデルをモデル記憶部１１０から抽出する。次に、部分マッチング部１３２は、抽出したトランザクションモデルから、クライアントとの間で受け渡されるメッセージに関する情報を除外した残りの部分を、部分モデルとする。
【００３８】
なお、部分マッチング部１３２は、中断された処理のリクエストメッセージと同じ内容のメッセージから開始されるトランザクションモデルが複数検出された場合、全体マッチング部１４１に対して全体マッチングを依頼する。全体マッチングでは、中断されずに完了したトランザクションとトランザクションモデルとのマッチングが行われる。そして、部分マッチング部１３２は、全体マッチングにおいて完了したトランザクションを構成するメッセージは、部分マッチングの対象外とする。これにより、中断されたトランザクションのメッセージが部分マッチングの対象として残され、複数検出されたトランザクションモデルの１つと部分一致するメッセージ配列（部分トランザクション）が作成可能となる。
【００３９】
次に、部分マッチング部１３２は、メッセージバッファ１２４のメッセージから、部分モデルに沿ったメッセージ配列を抽出する。そして、部分マッチング部１３２は、部分トランザクションに対して、中断された処理のリクエストメッセージと中断メッセージとを結合して、トランザクションが中断されたときの処理を示す中断トランザクション情報とする。部分マッチング部１３２は、中断トランザクション情報を中断トランザクション情報記憶部１３３に格納する。
【００４０】
中断トランザクション情報記憶部１３３は、中断トランザクション情報を記憶する記憶機能である。例えば、ＲＡＭ１０２の記憶領域の一部が中断トランザクション情報記憶部１３３として使用される。
【００４１】
全体マッチング部１４１は、メッセージバッファ１２４に格納されているメッセージと、モデル記憶部１１０に格納されているトランザクションモデルとを比較し、トランザクションモデルと同一構成となるメッセージの組合せを検出する。そして、全体マッチング部１４１は、検出したメッセージの組合せを完了トランザクション情報として、完了トランザクション情報記憶部１４２に格納する。
【００４２】
完了トランザクション情報記憶部１４２は、完了トランザクション情報を記憶する記憶機能である。例えば、ＲＡＭ１０２の記憶領域の一部が、完了トランザクション情報１４２として使用される。
【００４３】
分析部１５１は、中断トランザクション情報記憶部１３３と完了トランザクション情報記憶部１４２とから各トランザクションのサーバごとの処理時間などを分析する。分析部１５１は、分析結果をグラフなどでモニタ１１に表示する。
【００４４】
このような機能により、サービス処理状況分析装置１００は、メッセージバッファ１２４の中から、トランザクションモデルの全体に合致するメッセージの組合せに加えて、トランザクションモデルと部分的に合致するメッセージの組合せを検出し、分析することができる。なお、図１に示した各要素と図４の要素との対応関係は以下の通りである。
【００４５】
図１のモデル記憶手段１ａは、図４のモデル記憶部１１０に相当する。図１に示したメッセージ観測手段１ｂの機能は、図４のパケットデータ収集部１２１とメッセージ情報取得部１２３で実現される。図１のメッセージ記憶手段１ｃは、図４のメッセージバッファ１２４に相当する。図１の部分モデル生成手段１ｅ、部分トランザクション情報生成手段１ｆ、および中断トランザクション情報生成手段１ｇは、部分マッチング部１３２に含まれる機能である。図１の中断トランザクション情報記憶手段１ｈは、図４の中断トランザクション情報記憶部１３３に相当する。
【００４６】
図４に示した機能によって中断トランザクション情報を生成するために、トランザクションモデルが予めモデル記憶部１１０に格納される。
図５は、モデル記憶部のデータ構造例を示す図である。モデル記憶部１１０には、複数のトランザクションモデル１１１，１１２，１１３，・・・が記憶されている。各トランザクションモデル１１１，１１２，１１３，・・・には、トランザクションの処理を実行する際にネットワークで送受信される複数のメッセージ情報が含まれている。なお、メッセージ情報は、処理を要求するリクエストメッセージと、そのリクエストメッセージに対する応答を示すレスポンスメッセージとに関する情報である。
【００４７】
メッセージ情報は、リクエストメッセージの送信時刻、レスポンスメッセージの送信時刻、およびメッセージ内容（ダブルクォーテーションで囲まれた部分）で構成されている。
【００４８】
リクエストメッセージの送信時刻とレスポンスメッセージの送信時刻とには、トランザクションモデルの作成元となったトランザクションにおけるメッセージの送信時刻が設定される。すなわち、トランザクションモデルを作成する際には、実際にネットワークシステムでトランザクションを処理させ、そのトランザクションに応じて発生したメッセージを観測することで、トランザクションモデルが作成される。簡易的には、ネットワークシステムの試験段階で１つのトランザクションを処理させ、そのとき発生したメッセージを観測することで、１トランザクションを構成するメッセージの組合せが確定できる。なお、システム運用中のメッセージを観測してトランザクションモデルを作成する技術の例としては、特許文献１（特開２００６−１１６８３号公報）や特許文献２（特開２００６−３２３４７１号公報）がある。
【００４９】
メッセージ内容の部分には、メッセージ種別を示すメッセージ種別ＩＤと、リクエストメッセージの内容とが含まれている。メッセージ種別ＩＤは、メッセージの呼び出し元が分かるようなデータ構造となっている。すなわち、トランザクションが複数のサーバで実行される場合、あるサーバから他のサーバに対してリクエストメッセージにより処理が依頼される。このようなサーバ間の処理の依頼関係の階層構造がメッセージ種別ＩＤに示されている。
【００５０】
図５の例では、クライアントからのリクエストメッセージに応じた処理を第１の階層とする。第１の階層の処理を実行する過程で他のサーバに処理を依頼するためのリクエストメッセージに応じた処理を第２の階層とする。第２の階層の処理を実行する過程で他のサーバに対して出力されるリクエストメッセージに応じた処理を第３の階層とする。
【００５１】
第１の階層の処理を依頼するリクエストメッセージに関するメッセージ種別ＩＤには、第１の階層の処理を識別可能な数値が設定される。第２の階層の処理を依頼するリクエストメッセージに関するメッセージ種別ＩＤには、呼び出し元の処理に対応するメッセージ種別ＩＤと、呼び出し元の処理から出力されるリクエストメッセージ間で識別可能な数値との組みが設定される。第３の階層の処理を依頼するリクエストメッセージに関するメッセージ種別ＩＤには、呼び出し元の処理に対応するメッセージ種別ＩＤと、呼び出し元の処理から出力されるリクエストメッセージ間で識別可能な数値との組みが設定される。
【００５２】
リクエストメッセージの内容には、プロトコル名と処理内容とが含まれている。プロトコル名には、ＨＴＴＰ（HyperText Transfer Protocol）、ＩＩＯＰ（Internet Inter-ORB Protocol）、ＳＱＬ（Structured Query Language）といったメッセージのプロトコル名が設定される。処理内容には、リクエストメッセージを受け取ったサーバに依頼する処理の内容（例えば、処理を実行するプログラムの識別情報、処理に必要なパラメータなど）が設定される。
【００５３】
例えば、トランザクションモデル１１１には、３つのメッセージ情報が含まれている。１行目のメッセージ情報は、「t1,t2,"0;HTTP;GET /main.jsp"」である。「ｔ１」により、時刻ｔ１にリクエストメッセージが送信されたことがわかる。「ｔ２」により、時刻ｔ２にレスポンスメッセージが送信されたことが分かる。"0;HTTP;GET /main.jsp"の先頭の「０」がメッセージ種別ＩＤである。このメッセージ種別ＩＤには依頼元の処理を示す値が含まれていないため、クライアントからの処理依頼であることがわかる。すなわち第１の階層の処理を依頼するリクエストメッセージであることが分かる。「ＨＴＴＰ」との記載より、ＨＴＴＰに従ったメッセージであることが分かる。「GET /main.jsp」が処理内容を示している。
【００５４】
２行目のメッセージ情報は、「t3,t4,"0-0:IIOP; method1"」である。「ｔ３」により、時刻ｔ３にリクエストメッセージが送信されたことがわかる。「ｔ４」により、時刻ｔ４にレスポンスメッセージが送信されたことが分かる。"0-0:IIOP; method1"の先頭の「０−０」がメッセージ種別ＩＤである。このメッセージ種別ＩＤには依頼元の処理を示す値「０」（左側の値）が含まれているため、メッセージ種別ＩＤ「０」に応じた処理の過程で出力されたリクエストメッセージであることがわかる。すなわち第２の階層の処理を依頼するリクエストメッセージであることが分かる。「ＩＩＯＰ」との記載より、ＩＩＯＰに従ったメッセージであることが分かる。「method1」が処理内容を示している。
【００５５】
３行目のメッセージ情報は、「t5,t6,"0-0-0;SQL;Select uid from tbl"」である。「ｔ５」により、時刻ｔ５にリクエストメッセージが送信されたことがわかる。「ｔ６」により、時刻ｔ６にレスポンスメッセージが送信されたことが分かる。"0-0-0;SQL;Select uid from tbl"の先頭の「０−０−０」がメッセージ種別ＩＤである。このメッセージ種別ＩＤには依頼元の処理を示す値「０−０」（左側と中央の値）が含まれているため、メッセージ種別ＩＤ「０−０」に応じた処理の過程で出力されたリクエストメッセージであることがわかる。すなわち第３の階層の処理を依頼するリクエストメッセージであることが分かる。「ＳＱＬ」との記載より、ＲＤＢを操作するプロトコル（ＳＱＬ）に従ったメッセージであることが分かる。「Select uid from tbl」が処理内容を示している。
【００５６】
なお、各時刻ｔ１，ｔ２，ｔ３，ｔ４，ｔ５，ｔ６は、「ｔ１＜ｔ３＜ｔ５＜ｔ６＜ｔ４＜ｔ２」という関係にある。トランザクションモデル１１１と取得したメッセージとをマッチングする場合、メッセージの送信時間の前後関係がトランザクションモデル１１１と一致していることが必要となる。
【００５７】
このようなトランザクションモデル１１１，１１２，１１３，・・・によって、クライアントからのリクエストメッセージに応じたサーバ間の連係動作が定義される。
図６は、トランザクションモデルに定義された連係動作を示すシーケンス図である。図６は、図５のトランザクションモデル１１１に定義された連係動作を示している。このシーケンス図には、クライアント５１、Ｗｅｂサーバ５２、アプリケーションサーバ５３、およびＤＢサーバ５４の連携動作が示されている。なお、クライアント５１、Ｗｅｂサーバ５２、アプリケーションサーバ５３、およびＤＢサーバ５４は特定の装置を示しているのではなく、該当する処理機能を備えた任意の装置を示している。
【００５８】
トランザクションモデル１１１では、クライアント５１からＷｅｂサーバ５２に対して、時刻ｔ１にＨＴＴＰのリクエストメッセージが送信される。次に、Ｗｅｂサーバ５２からアプリケーションサーバ５３に対して、時刻ｔ３にＩＩＯＰのリクエストメッセージが送信される。次に、アプリケーションサーバ５３からＤＢ５４に対して、時刻ｔ５にＳＱＬのリクエストメッセージが送信される。
【００５９】
ＤＢサーバ５４で処理が終了すると、ＤＢサーバ５４からアプリケーションサーバ５３に対して、時刻ｔ６にＳＱＬのレスポンスメッセージが送信される。その後、アプリケーションサーバ５３で処理が終了すると、アプリケーションサーバ５３からＷｅｂサーバ５２に対して、時刻ｔ４にＩＩＯＰのレスポンスメッセージが送信される。最後に、Ｗｅｂサーバ５２で処理が終了すると、Ｗｅｂサーバ５２からクライアント５１に対して、時刻ｔ２にＨＴＴＰのレスポンスメッセージが送信される。
【００６０】
このようなトランザクションモデル１１１，１１２，１１３，・・・をモデル記憶部１１０に予め格納し、ネットワークシステムの運用が開始される。そして、運用中にトランザクションが中断されると、中断されたトランザクションが、どのトランザクションモデルに該当するのかが判別される。
【００６１】
図７は、中断トランザクション判別処理の手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］パケットデータ収集部１２１は、ネットワークのパケットを収集する。すなわち、トランザクションが発生すると、各サーバに対してメッセージの入出力が行われる。メッセージは、パケット単位に分割されネットワークで伝送される。そのパケットが、パケットデータ収集部１２１で収集される。なお、パケットデータ収集部１２１は、パケットを取得した場合、取得時刻（タイムスタンプ）を取得したパケットに付与する。タイムスタンプが付与されたパケットは、メッセージ情報取得部１２３に渡される。
【００６２】
［ステップＳ１２］メッセージ情報取得部１２３は、メッセージを解析し、メッセージをメッセージバッファ１２４に登録する。具体的には、メッセージ情報取得部１２３はパケットデータバッファを有しており、パケットデータバッファに取得したパケットを格納する。なお、パケットデータバッファは、ＲＡＭ１０２内の記憶領域の一部に設けられる。
【００６３】
メッセージ情報取得部１２３は、取得したパケットからセッションを再構成する。以下、パケットがＩＰパケットであるものとして、再構成手順を説明する。
メッセージ情報取得部１２３は、まず、複数のパケットを、そのパケットが属するセッション毎に振り分ける。具体的には、メッセージ情報取得部１２３は、パケットのＩＰヘッダから、送受信側ＩＰアドレスを取得する。次に、メッセージ情報取得部１２３は、パケットのＴＣＰヘッダから送信側ポート番号と受信側ポート番号とを取得する。そして、メッセージ情報取得部１２３は、取得した４つの値の組をセッションの識別子とする。このとき、識別子に一意な番号を割り当てることもできる。そして、メッセージ情報取得部１２３は、各パケットの識別子を生成し、同じ識別子を持つパケットを、同じセッションで送られたパケットであるとして振り分ける。
【００６４】
次に、メッセージ情報取得部１２３は、セッションに振り分けられたパケットの中から所定のデータを抽出し、メッセージのペア（リクエストメッセージとレスポンスメッセージとの対）を再構成する。具体的には、メッセージ情報取得部１２３は、パケットのＴＣＰヘッダに含まれるフラグを読み取って、開始・確立・切断などのセッション状態を取得する。例えば、メッセージ情報取得部１２３は、ＳＹＮ（Synchronize Flag)「１」のパケットの検出によってセッションの開始を認識し、そのパケットに対するＡＣＫ（Acknowledgement Flag）「１」の応答によってセッションの確立を認識し、セッション確立状態でデータ伝送とそれに対するＡＣＫ「１」の応答が繰り返し行われ、最後にＦＩＮ（Fin Flag）「１」パケットの検出によってセッションの切断を認識する。
【００６５】
さらに、メッセージ情報取得部１２３に対して、事前に各サーバのＩＰアドレスを与えておくことで、ＩＰアドレスの組から各パケットの送信方向を決定することもできる。
また、メッセージ情報取得部１２３は、例えば、パケットのＩＰヘッダから、サーバアドレスが送信アドレスにあれば送信側ポート番号を、サーバアドレスが宛て先アドレスにあれば受信側ポート番号を読み取る。そして、メッセージ情報取得部１２３は、そのポート番号を識別子とすることでどのサービスに関するセッションであるかを調べることができる。例えば、メッセージ情報取得部１２３は、サーバ側のポートが８０番である場合、Ｗｅｂサーバとの通信（ＨＴＴＰ）であると判定する。
【００６６】
このようにして、セッションが再構成される。セッションが再構成されると、次にメッセージ情報取得部１２３は、セッション毎に振り分けられパケットのデータ部からメッセージを再構成する。具体的には、メッセージ情報取得部１２３は、まず同一のセッションで送受信されるパケットの集まりからデータ部分を抜き出して並べる。そして、メッセージ情報取得部１２３は、並べられたデータ部分の列を、プロトコルのフォーマットに従ったメッセージサイズで分割し、メッセージを再構成する。メッセージ情報取得部１２３は、メッセージが複数に分割送信されていた場合には、複数のデータ部分を連結してひとつのメッセージを作り出す。また、メッセージ情報取得部１２３は、連結された複数のメッセージが送信されていた場合には、単一のデータ部から複数のメッセージを切り出す。
【００６７】
このようにして、メッセージを再構成することができる。メッセージ情報取得部１２３は、再構成したメッセージをメッセージバッファ１２４に時系列に格納する。メッセージバッファ１２４内にメッセージが時系列で格納されることで、メッセージバッファ１２４内にメッセージシーケンスが作成される。メッセージシーケンスに含まれるメッセージのうち、同一セッション内での送信方向が逆向きのメッセージの組が、メッセージペアとして認識される。同一セッション内のメッセージであることは、送信側と受信側とのメッセージのＩＰアドレスおよびポート番号の同一性で判別される。この際、メッセージ情報取得部１２３は、メッセージペアのレスポンスメッセージに対して、処理時間を設定する。処理時間は、リクエストメッセージとレスポンスメッセージとのタイムスタンプに示された時間の差である。
【００６８】
［ステップＳ１３］中断検出部１３１は、トランザクションの中断を検出する。この処理の詳細は後述する。
［ステップＳ１４］部分マッチング部１３１は、前回の部分マッチングの実行から一定時間（予め設定された部分マッチング周期）が経過したか、あるいはメッセージバッファ１２４に格納されたメッセージが予め設定されたメッセージ許容量を超えたか否かを判断する。いずれかの条件に該当した場合、処理がステップＳ１５に進められる。いずれの条件にも該当していなければ処理がステップＳ１１に進められ、パケットの収集が継続される。
【００６９】
［ステップＳ１５］部分マッチング部１３１は、部分マッチングを実行する。この処理の詳細は後述する。
ここで、トランザクションが中断した場合を想定し、そのとき生成されるメッセージシーケンスを具体的に説明する。
【００７０】
図８は、中断されたトランザクションのシーケンス図である。この例では、クライアント２１からＷｅｂサーバ４１にＨＴＴＰのリクエストメッセージ７１が送信されている。Ｗｅｂサーバ４１は、受信したＨＴＴＰのリクエストメッセージ７１に応じた処理の過程において、アプリケーションサーバ４２にＩＩＯＰのリクエストメッセージ７２を送信している。アプリケーションサーバ４２は、受信したＩＩＯＰのリクエストメッセージ７２に応じた処理の過程において、ＤＢサーバ４４に対してＳＱＬのリクエストメッセージ７３を送信している。
【００７１】
ＤＢサーバ４４は、アプリケーションサーバ４２からのリクエストメッセージ７３に応じた処理を実行し、レスポンスメッセージ７４をアプリケーションサーバ４２に送信している。アプリケーションサーバ４２は、Ｗｅｂサーバ４１からのリクエストメッセージ７２に応じた処理が完了し、Ｗｅｂサーバ４１にレスポンスメッセージ７５を送信している。
【００７２】
ところが、クライアント２１を使用しているユーザは、Ｗｅｂサーバ４１からのレスポンスを待たずに中断の操作入力を行っている。その結果、クライアント２１からＷｅｂサーバ４１に中断リクエスト７６が送信されている。
【００７３】
このような一連のトランザクション処理が実行されると、このトランザクションを構成する各メッセージが時系列でメッセージバッファ１２４に格納される。なお、クライアント２１のＩＰアドレスは「10.25.100.1」、Ｗｅｂサーバ４１のＩＰアドレスは「10.25.100.2」、アプリケーションサーバ４２のＩＰアドレスは「10.25.100.3」、ＤＢサーバ４４のＩＰアドレスは「10.25.100.4」であるものとする。
【００７４】
図９は、メッセージバッファ内のメッセージシーケンスを示す図である。メッセージバッファ１２４には、メッセージシーケンス１２４ａが格納されている。メッセージシーケンス１２４ａには、複数のメッセージデータが時系列で格納されている。
【００７５】
メッセージデータの先頭はＵＮＩＸ（登録商標）形式の時刻（１９７０年１月１日からの経過時間）を示すタイムスタンプである。メッセージが、セッションを確立するためのコネクション接続または中断要求であれば、メッセージデータ内のタイムスタンプの後にセッション番号が付与される。
【００７６】
各メッセージデータには、タイムスタンプに続けて、プロトコル名、およびメッセージの内容が設定されている。
図９に示したメッセージシーケンス１２４ａでは、装置間の通信を開始する場合、最初にＴＣＰのコネクションが張られている。例えば、メッセージシーケンス１２４ａの最初のメッセージは、クライアント２１からのリクエストにより、クライアント２１とＷｅｂサーバ４１との間にコネクションを接続したことを示している。メッセージシーケンス１２４ａの２つめのメッセージは、クライアント２１からＷｅｂサーバ４１に対して送信されたリクエストメッセージである。
【００７７】
図９の例では、メッセージシーケンス１２４ａの２つめのリクエストメッセージに応じた処理が完了する前に、該当するセッションに対してクライアント２１から中断リクエスト（TCP Reset）が出されている（６番目のメッセージ）。これは、クライアント２１上でなんらかのキャンセル処理が実施されたことを意味する。なお、ＨＴＴＰ以外のプロトコルでも、ＴＣＰ／ＩＰ通信であるならばすべてＴＣＰ上のReset信号とセッションから中断の有無を判定できる。つまり、セッション上でリクエストの後にレスポンスの代わりにResetが観測されたら、そのリクエストがキャンセルされたものとなる（同期通信であるため、リクエストに対してレスポンスがペアとなるため）。このようにメッセージシーケンス１２４ａの２つめのリクエストメッセージに応じた処理は、その処理が完了する前に中断リクエストが出されている。そのため、このリクエストメッセージに対応するレスポンスメッセージが存在しない。
【００７８】
中断検出部１３１は、このようなメッセージシーケンス１２４ａを参照して、トランザクションの中断の有無を検出する。
図１０は、中断検出処理の手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
【００７９】
［ステップＳ２１］中断検出部１３１は、メッセージバッファ内の未処理のメッセージを１つ読み込む。
［ステップＳ２２］中断検出部１３１は、読み込んだメッセージがリクエストメッセージか否かを判断する。内容に「Request」と記載されているメッセージがリクエストメッセージである。リクエストメッセージであれば、処理がステップＳ２３に進められる。リクエストメッセージでなければ、処理がステップＳ２４に進められる。
【００８０】
［ステップＳ２３］中断検出部１３１は、リクエストメッセージを保持する。具体的には、中断検出部１３１は、ＲＡＭ１０２内の所定の記憶領域にリクエストメッセージのメッセージデータを書き込む。その後、処理がステップＳ２１に進められる。
【００８１】
［ステップＳ２４］中断検出部１３１は、読み込んだメッセージがレスポンスメッセージか否かを判断する。レスポンスメッセージであれば、処理がステップＳ２５に進められる。レスポンスメッセージでなければ、処理がステップＳ２６に進められる。
【００８２】
［ステップＳ２５］中断検出部１３１は、レスポンスメッセージに対応するリクエストメッセージの保持を解除（ＲＡＭ１０２内から削除）する。その後、処理がステップＳ２１に進められる。
【００８３】
［ステップＳ２６］中断検出部１３１は、メッセージがＴＣＰリセットか否かを判断する。ＴＣＰリセットであれば、処理がステップＳ２７に進められる。ＴＣＰリセットでなければ、処理がステップＳ２１に進められる。
【００８４】
［ステップＳ２７］中断検出部１３１は、ＴＣＰリセットのメッセージのセッション番号と一緒に保持していたメッセージＩＤで示されるリクエストメッセージの応じたトランザクションが中断したと判定する。中断検出部１３１は、中断したトランザクションの処理を要求するリクエストメッセージのメッセージＩＤを、部分マッチング部１３２に渡す。
【００８５】
［ステップＳ２８］中断検出部１３１は、中断したトランザクションの処理を要求するリクエストメッセージをメッセージバッファ１２４から特定し、そのリクエストメッセージに中断を示すフラグを設定する。
【００８６】
［ステップＳ２９］中断検出部１３１は、中断したトランザクションの処理を要求するリクエストメッセージの保持を解除（ＲＡＭ１０２内から削除）する。
［ステップＳ３０］中断検出部１３１は、メッセージバッファ１２４からすべてのメッセージを読み込んだか否かを判断する。すべてのメッセージを読み込んだ場合、処理が終了する。読み込んでいないメッセージがある場合、処理がステップＳ２１に進められる。
【００８７】
中断検出処理が行われることで、メッセージバッファ１２４内のメッセージシーケンス１２４ａでは、中断された処理のリクエストメッセージに対して中断フラグが設定される。
【００８８】
図１１は、中断フラグが設定されたメッセージシーケンスを示す図である。メッセージシーケンス１２４ａの２番目のメッセージは、最後に「中断」という記載（中断フラグ）が追加されている。
【００８９】
中断が検出されると、部分マッチング部１３２により部分マッチングが行われる。部分マッチングは、中断したトランザクションとトランザクションモデルの一部構造（部分モデル）とのマッチング（一致・不一致の判定）を行うものである。
【００９０】
図１２は、部分モデルを示す図である。部分マッチングでは、トランザクションモデル１１１の全体ではなく、トランザクションモデル１１１内のクライアント５１とＷｅｂサーバ５２との間のメッセージペアを除いたメッセージを部分モデル１１１ａとする。そして、部分マッチング部１３２は、中断したトランザクションと合致する部分モデル１１１ａを有するトランザクションモデル１１１を、モデル記憶部１１０から検索する。
【００９１】
図１３は、部分マッチングの概要を示す図である。部分マッチング部１３２は、まず、中断されたＵＲＬを把握する。中断されたＵＲＬは、メッセージバッファ１２４ａを参照し、中断されたリクエストメッセージ７１の内容を解析することで把握できる（ステップＳ４１）。
【００９２】
次に、部分マッチング部１３２は、中断されたＵＲＬがリクエストメッセージ７１のＵＲＬとして設定されているトランザクションモデル１１１を、モデル記憶部１１０から検索する（ステップＳ４２）。モデル記憶部１１０は、検索でヒットしたトランザクションモデル１１１のうち、最初のメッセージ情報を除く他のメッセージ情報の集合を部分モデル１１１ａと認識する。
【００９３】
次に、部分マッチング部１３２は、メッセージバッファ１２４を参照し、中断されたリクエストメッセージ７１の送信時刻（タイムスタンプ）より後に送信されたメッセージから、部分モデル１１１ａに合致するメッセージの集合（部分トランザクション情報６１）を抽出する（ステップＳ４３）。部分モデル１１１ａと部分トランザクション情報６１とが合致するためには、リクエストメッセージによる処理の呼び出し関係が一致すること、リクエストメッセージで依頼される処理の内容が一致すること、およびリクエストメッセージが出される順番が一致することが必要である。
【００９４】
例えば、部分モデル１１１ａの１つめのメッセージ情報では、ＨＴＴＰのリクエストメッセージで呼び出された処理により、ＩＩＯＰのリクエストメッセージによる呼び出しが行われている。すなわち、”GET /main.jsp”の処理から”method1”の処理が呼ばれる。
【００９５】
そこで、部分マッチング部１３２は、中断された処理を実行するＷｅｂサーバ４１から、下位の処理を呼び出すためのリクエストメッセージ７２を検索する。なお、この下位の処理を呼び出すためのリクエストメッセージ７３は、リクエストメッセージ７１以後であり、且つ中断リクエスト７６以前に送信されている必要がある。部分マッチング部１３２は、該当するリクエストメッセージ７２を検出する。そして、部分マッチング部１３２は、リクエストメッセージ７２に対するレスポンスメッセージ７５を検索する。部分マッチング部１３２は、リクエストメッセージ７２とレスポンスメッセージ７５とのペアが、部分モデル１１１ａの１つめのメッセージ情報に合致すると判断する。
【００９６】
部分モデル１１１ａの２つめのメッセージ情報では、ＩＩＯＰのリクエストメッセージで呼び出された処理により、ＳＱＬのリクエストメッセージによる呼び出しが行われている。すなわち、”method1”の処理から”Select uid from tbl”の処理が呼ばれる。
【００９７】
そこで、部分マッチング部１３２は、ＩＩＯＰのリクエストメッセージ７２に応じた処理を実行するＷｅｂサーバ４１から、下位の処理を呼び出すためのリクエストメッセージ７３を検索する。なお、この下位の処理を呼び出すためのリクエストメッセージ７３は、リクエストメッセージ７２以後であり、且つレスポンスメッセージ７５以前に送信されている必要がある。部分マッチング部１３２は、該当するリクエストメッセージ７３を検出する。そして、部分マッチング部１３２は、リクエストメッセージ７３に対するレスポンスメッセージ７４を検索する。部分マッチング部１３２は、リクエストメッセージ７３とレスポンスメッセージ７４とのペアが、部分モデル１１１ａの２つめのメッセージ情報に合致すると判断する。
【００９８】
このようにして、部分マッチング部１３２は、部分モデル１１１ａに合致する部分トランザクション情報６１を検出できる。
以下、部分マッチング処理の手順を詳細に説明する。
【００９９】
図１４は、部分マッチング処理の手順を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］部分マッチング部１３２は、中断メッセージのメッセージデータを取得する。具体的には、部分マッチング部１３２は、中断検出部１３１から、中断した処理のリクエストメッセージを示すメッセージデータを受け取る。このとき、中断検出部１３１で中断した処理が複数検出されていれば、部分マッチング部１３２は、複数のメッセージデータを受け取る。
【０１００】
［ステップＳ５２］部分マッチング部１３２は、中断した処理の開始時刻から中断時刻までの間に、同一のＵＲＬを指定したリクエストメッセージがあるか否かを判断する。
すなわち、Ｗｅｂサーバ４１において、同一ＵＲＬを指定した複数の処理が並行して実行されているときに、一方の処理が中断される場合がある。その場合、Ｗｅｂサーバ４１で並行して実行されている複数の処理それぞれから、アプリケーションサーバ４２，４３に対して派生した処理を依頼するリクエストメッセージが出される。そのため、派生した処理のリクエストメッセージと、Ｗｅｂサーバ４１における複数の処理（少なくとも１つの処理は中断されている）との対応関係を判断する必要が生じる。そこで、該当するメッセージがあれば、処理がステップＳ５６に進められる。該当するメッセージがなければ、処理がステップＳ５３に進められる。
【０１０１】
［ステップＳ５３］部分マッチング部１３２は、メッセージシーケンス１２４ａ内のメッセージの中から、中断した処理から派生した処理を呼び出すリクエストメッセージを検索する。なお、派生した処理を呼び出すリクエストメッセージは、中断した処理の開始時刻（リクエストメッセージの送信時刻）から中断時刻（中断メッセージの送信時刻）の間に送信されている必要がある。
【０１０２】
［ステップＳ５４］部分マッチング部１３２は、ステップＳ５３で検出したリクエストメッセージから開始される部分トランザクション情報を作成する。具体的には、部分マッチング部１３２は、呼び出し元の処理期間帯は、呼び出し先の処理期間帯を包含するという制約条件を満たす処理を関連付ける。そして、部分マッチング部１３２は、関連付けた処理間のリクエストメッセージとレスポンスメッセージとを時系列に並べて、部分トランザクション情報とする。
【０１０３】
なお、呼び出し先の処理が、複数の呼び出し元の処理に対して制約条件を満たす場合がある。例えば、Ｗｅｂサーバ４１で同時期に実行されている処理が２つある場合、両方の処理の処理時間帯内にＷｅｂサーバ４１からアプリケーションサーバ４２に対してリクエストメッセージが出され、両方の呼び出し元の処理の処理時間帯内にレスポンスメッセージが返される場合である。この場合、制約条件だけでは、呼び出し先の処理（アプリケーションサーバ４２の処理）を、読み出し元の２つの処理（Ｗｅｂサーバ４１の処理）のどちらに関連付けるべきか決定できない。このような場合、部分マッチング部１３２は、モデル記憶部１１０に格納されたトランザクションモデルの部分モデルに合わせて関連付ける。
【０１０４】
また、このとき参照されるトランザクションモデルは、中断した処理のリクエストメッセージとＵＲＬが同一のリクエストメッセージで開始されるトランザクションモデルである。参照されるトランザクションモデルから、クライアントからのリクエストメッセージとクライアントへのレスポンスメッセージとを除外した部分が部分モデルである。すなわち、部分マッチング部１３２は、中断された処理のリクエストメッセージと同じ内容（ＵＲＬが同じ）のメッセージから開始されるトランザクションモデルをモデル記憶部１１０から検索する。部分マッチング部１３２は、検出したトランザクションモデルにおける最初のメッセージ情報（クライアントとの間で受け渡されるメッセージの情報）を除いた部分を、部分モデルとする。さらに、部分マッチング部１３２は、作成された部分モデルと同じ呼び出し関係となり、かつ制約条件を満たすメッセージを、メッセージシーケンス１２４ａ内から抽出する。そして、部分マッチング部１３２は、抽出したメッセージを時系列に並べて、部分トランザクション情報とする。
【０１０５】
このようにして、トランザクションモデルに部分一致する部分トランザクション情報が構築される。
［ステップＳ５５］部分マッチング部１３２は、中断された処理のリクエストメッセージ、中断メッセージ、およびステップＳ５４で構築した部分トランザクション情報を結合して、中断トランザクション情報とする。その後、処理が終了する。
【０１０６】
［ステップＳ５６］部分マッチング部１３２は、中断した処理に対応するトランザクションモデルが一意に決定できるか否かを判断する。具体的には、部分マッチング部１３２は、中断した処理のリクエストメッセージに示されるＵＲＬに基づいて、モデル記憶部１１０からトランザクションモデルを検索する。検索の結果、トランザクションモデルが１つだけヒットした場合、トランザクションモデルが一意に決定される。複数のトランザクションモデルがヒットした場合、トランザクションモデルは一意に決定しない。トランザクションモデルが一意に決定できる場合、処理がステップＳ５８に進められる。トランザクションモデルが一意に決定できない場合、処理がステップＳ５７に進められる。
【０１０７】
［ステップＳ５７］部分マッチング部１３２は、メッセージシーケンス１２４ａに対して全体マッチング処理を行い、トランザクションモデルに合致したトランザクションに含まれるメッセージを除いた残りメッセージを部分マッチングの対象とする。すなわち、中断せずに完了したトランザクションであれば、モデル記憶部１１０に格納されているトランザクションモデルのいずれかと一致する。そこで、部分マッチング部１３２は、メッセージシーケンス１２４ａに含まれるメッセージを用いて、トランザクションモデルと一致するトランザクションを生成する。そして、部分マッチング部１３２は、トランザクションモデルと一致するトランザクションに含まれるメッセージは、部分マッチングの対象外とする。例えば、部分マッチング１３２は、メッセージバッファ１２４内の部分マッチングの対象外とするメッセージに対して、処理対象外であることを示すフラグを設定する。
【０１０８】
このように、全体マッチングによってトランザクションモデルと全体的に一致したトランザクションに含まれるメッセージを部分マッチングの対象外とすることで、中断した処理から派生する部分トランザクション情報を正しく作成することができる。その結果、中断した処理のリクエストメッセージで示されるＵＲＬに対応するトランザクションモデルが複数合ったとしても、適切なトランザクションモデルを選択できる。
【０１０９】
［ステップＳ５８］部分マッチング部１３２は、中断されたリクエストメッセージを時間順にソートする。
［ステップＳ５９］部分マッチング部１３２は、メッセージシーケンス１２４ａ内の処理対象とされたメッセージの中から、中断した処理から派生した処理を呼び出すリクエストメッセージを検索する。このとき、中断した処理それぞれに対応するリクエストメッセージがヒットする。
【０１１０】
［ステップＳ６０］部分マッチング部１３２は、ステップＳ５９で検出したメッセージから開始される部分トランザクション情報を構築する。部分トランザクション情報の構築はステップＳ５４と同様に行われ、部分モデルに一致する部分トランザクション情報が構築される。このとき、ステップＳ５９で検出された複数のリクエストメッセージそれぞれから開始される複数の部分トランザクション情報が構築される。そして、部分マッチング部１３２は、部分トランザクション情報を開始時間順にソートする。
【０１１１】
［ステップＳ６１］部分マッチング部１３２は、ステップＳ５８でソートしたリクエストメッセージとステップＳ６０でソートした部分トランザクション情報とを、それぞれ上位から順番に関連付ける。そして、部分マッチング部１３２は、関連付けたリクエストメッセージと部分トランザクション情報とを結合する。
【０１１２】
［ステップＳ６２］部分マッチング部１３２は、ステップＳ６１で生成された処理を、中断トランザクション情報とする。その後、処理が終了する。
このようにして、部分マッチングが行われる。以下、部分マッチングの例を具体的に説明する。
【０１１３】
まず、中断した処理のリクエストメッセージに示されるＵＲＬに基づいて、トランザクションモデルが一意に決定される場合の例を示す。
図１５は、トランザクションモデルが一意に決定する場合の部分マッチング状況を示す図である。メッセージシーケンス１２４ａには、中断検出部１３１によって、中断した処理のリクエストメッセージに対して、「中断」の記述が追加されている。部分マッチング部１３２は、中断された処理のリクエストメッセージのＵＲＬを抽出し、そのＵＲＬでモデル記憶部１１０を検索する。この例では、トランザクションモデル１１１のみがヒットしたものとする。
【０１１４】
部分マッチング部１３２は、ヒットしたトランザクションモデル１１１から１番目のメッセージ情報を除いた部分を、部分モデル１１１ａと認識する。そこで、部分マッチング部１３２は、トランザクションモデル１１１の２番目のメッセージ情報に対応するメッセージペアをメッセージシーケンス１２４ａから捜し出す。すると、メッセージシーケンス１２４ａの４番目のメッセージデータ（1123656334.847365 (2-1) IIOP Request Message  : method1）と９番目のメッセージデータ（1123656335.857695 (2-1) IIOP Reply Message    : 1.010330(sec)）とのメッセージペアが該当することがわかる。
【０１１５】
ところで、全体マッチングを行う場合、制約条件によって、呼び出し元の処理時間帯内に、呼び出し先の処理時間帯が包含されていることが必要である。しかし、部分マッチングにおいて、クライアントからのリクエストに応じた処理は中断されている。そのため、中断した処理の処理時間帯は、呼び出し先の処理時間帯を包含しているとは限らない。従って、部分マッチングでは、中断された処理に関しては、処理時間帯（処理の開始から中断まで）内に、他の処理を呼び出すためのリクエストメッセージが送信されていることが、制約条件となる。すなわち、呼び出し先からのレスポンスメッセージの送信時間は、中断後であってもよい。このように、部分マッチングでは、制約条件が緩和される。
【０１１６】
部分マッチング１３２は、見つけ出した４番目のメッセージデータが制約条件を満たすことを認識すると、トランザクションモデル１１１の３番目のメッセージ情報に対応するメッセージペアをメッセージシーケンス１２４ａから捜し出す。すると、７番目のメッセージデータ（1123656335.848510 (3-1) SQL Request SELECT utd from tbl）と８番目のメッセージデータ（1123656335.849510 (3-1) SQL Reply : 0.001000(sec)）とのメッセージペアが該当することが分かる。
【０１１７】
ここで、トランザクションモデル１１１の２番目のメッセージ情報に対応する処理は、中断されずに完了している。従って、完了した処理から呼び出される他の処理は、全体マッチングの場合と同様の制約条件が課される。すなわち、呼び出し元の処理時間帯内に、呼び出し先の処理時間帯が包含されていることが必要である。図１５の例では、見つけ出した７番目のメッセージデータと８番目のメッセージデータとのメッセージペアで示される処理時間は、呼び出し元である４番目のメッセージデータと９番目のメッセージデータとのメッセージペアで示される処理時間に包含される。従って、制約条件が満たされている。
【０１１８】
これにより、部分マッチング部１３２は、トランザクションモデル１１１に部分一致する中断トランザクション情報１３３ａを構成することができる。すなわち、部分マッチング部１３２は、中断メッセージ、中断した処理のリクエストメッセージ、および中断した処理から派生して部分モデル１１１ａに合致するリクエストメッセージペアを時系列にならべ、中断トランザクション情報１３３ａとする。中断トランザクション情報１３３ａは、中断トランザクション情報記憶部１３３に格納される。
【０１１９】
次に、中断した処理のリクエストメッセージに示されるＵＲＬからトランザクションモデルが一意に決定できない場合の例について説明する。
図１６は、トランザクションモデルが一意に決定できない場合の部分マッチング状況を示す図である。図１６の例では、メッセージシーケンス１２４ｂの中断した処理のリクエストメッセージに示されるＵＲＬに基づいてトランザクションモデルを検索した場合に、２つのトランザクションモデル１１１，１１２が検出されている。そこで、部分マッチングを行う前に、全体マッチングが行われる。なお、全体マッチングでは、すべての呼び出し関係において、呼び出し元の処理時間帯内に、呼び出し先の処理時間帯が包含されていることが必要である。すると、メッセージシーケンス１２４ｂから、トランザクションモデル１１２に対応するトランザクションが検出される。
【０１２０】
そこで、メッセージシーケンス１２４ｂのうち、検出されたトランザクションに含まれる各メッセージを除外した部分シーケンス１２４ｃを部分マッチングの対象とする。
図１７は、全体マッチング後の部分シーケンスによる部分マッチング状況を示す図である。この例では、２つのトランザクションモデル１１１，１１２がマッチングの対象となる。そこで、各トランザクションモデル１１１，１１２から先頭のマッチング情報を除外した部分モデル１１１ａ，１１２ａが作成される。そして、部分マッチング部１３２は、各部分モデル１１１ａ，１１２ａと部分シーケンス１２４ｃとの部分マッチングを行う。
【０１２１】
すると、図１５で説明した部分マッチングと同様に、部分モデル１１１ａと一致する部分トランザクション情報が検出される。一方、部分シーケンス１２４ｃ内には、モデル１１２ａと一致する部分とトランザクションを見つけ出すことはできない。これにより、トランザクションモデル１１１に対応するトランザクションが中断したことが分かる。そこで、部分マッチング部１３２は、中断された処理のリクエストメッセージと中断メッセージとに、部分モデル１１１ａに対応する部分トランザクション情報を結合し、中断トランザクション情報１３３ｂとする。
【０１２２】
次に、複数の中断処理が重複して発生した場合の例について説明する。
図１８は、中断処理が重複して発生した場合の部分マッチング状況を示す図である。メッセージシーケンス１２４ｄには、２つの中断処理が含まれている。しかも、中断処理は、リクエストメッセージに示されるＵＲＬが同一であり、処理時間帯に重複がある。この場合にも、先にトランザクションモデルとの全体マッチングを行う。しかし、全体マッチングでは、完了したトランザクションしか検出できないため、２つの中断処理は処理対象として残される。
【０１２３】
図１８の例では、中断した処理のリクエストメッセージは、２番目のメッセージ（1123656334.841127 (1-1) HTTP Request POST /main.jsp, 中断）と４番目のメッセージ（1123656334.845627 (4) HTTP Request POST /main.jsp, 中断）である。これらのメッセージに示されるＵＲＬは、共に「HTTP Request POST /main.jsp」である。部分マッチング部１３２は、このＵＲＬでモデル記憶部１１０を検索する。すると、２つのトランザクションモデル１１１，１１２が検出される。
【０１２４】
部分マッチング部１３２は、トランザクションモデル１１１，１１２それぞれの部分モデル１１１ａ，１１２ａに一致する部分トランザクション情報を、メッセージシーケンス１２４ｄから探し出す。図１８の例では、部分モデル１１１ａ，１１２ａそれぞれに一致する部分トランザクション情報が検出されている。
【０１２５】
このとき、中断した処理の２つのリクエストメッセージと、検出された２つの部分トランザクション情報との対応関係を一意に決定することは難しい。そこで、部分マッチング部１３２では、同様の処理（ＵＲＬが同一）のリクエストメッセージであれば、サーバに入力された順番に処理が開始され、他の処理の呼び出しも、処理の開始順に沿って行われるものと推定する。すなわち、部分マッチング部１３２は、中断した処理のリクエストメッセージをタイムスタンプで時系列に並べる。同様に、部分マッチングにより検出された２つの部分トランザクション情報を、最初のリクエストメッセージのタイムスタンプで時系列に並べる。次に、部分マッチング部１３２は、中断した処理のリクエストメッセージの配列と部分トランザクション情報との配列とのそれぞれの上位から順番に１つずつ選択する。さらに、部分マッチング部１３２は、選択したリクエストメッセージ、そのリクエストメッセージに対応する中断メッセージ、および選択した部分トランザクション情報を結合する。なお、結合の際には、各メッセージが時系列に並べられる。そして、部分マッチング部１３２は、結合したメッセージの配列を中断トランザクション情報１３３ｃ，１３３ｄとする。中断トランザクション情報１３３ｃ，１３３ｄは、中断トランザクション情報記憶部１３３に格納される。
【０１２６】
このようにして、中断トランザクション情報を検出することができる。また、全体マッチング部１４１が全体マッチングを行うことで、完了トランザクションの情報が完了トランザクション情報記憶部１４２に格納される。そして、分析部１５１によって、処理状況が分析される。
【０１２７】
図１９は、トランザクションの分析例を示す図である。この例では、所定の期間内での単位時間当たりの完了トランザクション数８１、処理時間８２、および中断トランザクション数８３をグラフで示している。グラフの横軸は、実時間を示している。縦軸の左側のメモリは、処理時間を示している。縦軸の右側のメモリは、トランザクション数を示している。
【０１２８】
このように、中断トランザクションが検出できることで、トランザクション総数に占める中断トランザクションの割合などを簡単に算出できる。また、どのトランザクションモデルに合致するトランザクションが中断されたのかが分かるため、トランザクションモデルに合致するトランザクションにおけるサーバごとの処理時間を計算する際に、中断トランザクションの処理時間を反映させることができる。すなわち、従来の全体マッチングのみを行う可視化技術では、ユーザが中止ボタンを押した処理について、どこで遅延が発生したかを把握することができなかった。本実施の形態により、中止ボタンが押された処理の遅延箇所を的確に判断できる。これにより、システムの状況を把握し、それに適切に対応することが可能となり、障害や遅延の時間を減少させ、顧客満足度の低下を防ぐことが可能となる。
【０１２９】
例えば、図８に示したような中断トランザクションにおいて、アプリケーションサーバ４２における「IIOP method1」に応じた処理が、通常よりも長い時間かかったために、ユーザがレスポンスを待ちきれずに処理を中断させたものとする。この場合、従来のように完了トランザクションのみを検出したのでは、「IIOP method1」の処理に長時間を要したという事例があることを検出できない。本実施の形態であれば、中断トランザクションを検出すれば、「IIOP method1」の処理に応じた処理に長時間を要した事例として、図８に示す中断トランザクションを検出できる。
【０１３０】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、サービス処理状況分析装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１３１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３３】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１３４】
（付記１）  複数のサーバが接続されたネットワークシステムのサービス処理状況分析をコンピュータに実行させるサービス処理状況分析プログラムであって、
前記コンピュータを、
ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納するメッセージ観測手段、
前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する中断検出手段、
トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、前記中断検出手段で検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成する部分モデル生成手段、
前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する部分トランザクション情報生成手段、
前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する中断トランザクション情報生成手段、
として機能させるサービス処理状況分析プログラム。
【０１３５】
（付記２）  前記部分トランザクション情報生成手段は、前記中断処理リクエストメッセージの受け渡し時刻から前記中断メッセージの受け渡し時刻までの時間帯に受け渡されたリクエストメッセージを最初のメッセージとして前記部分トランザクション情報を生成することを特徴とする付記１記載のサービス処理状況分析プログラム。
【０１３６】
（付記３）  前記部分モデル生成手段は、前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルが複数検出された場合、検出された複数の前記トランザクションモデルそれぞれの前記部分モデルを生成し、
前記部分トランザクション情報生成手段は、前記部分モデルが複数生成された場合、生成された複数の前記部分モデルのいずれかに適合する前記部分トランザクション情報を生成することを特徴とする付記１記載のサービス処理状況分析プログラム。
【０１３７】
（付記４）  前記中断トランザクション情報生成手段は、中断した処理の時間帯が重複する複数の前記中断処理リクエストメッセージが検出され、複数の前記部分トランザクション情報が生成された場合、複数の前記中断処理トランザクションメッセージを受け渡し時刻に基づいて時系列に並べ、複数の前記部分トランザクション情報を最初のメッセージの受け渡し時刻に基づいて時系列に並べ、前記中断処理トランザクションメッセージと前記部分トランザクション情報とを時系列上の順番に沿って１つずつ結合していき、複数の前記中断トランザクション情報を生成することを特徴とする付記１記載のサービス処理状況分析プログラム。
【０１３８】
（付記５）  前記コンピュータを、さらに、
前記モデル記憶手段に記憶されている前記トランザクションモデルと同様のメッセージの配列を構成する複数のメッセージを前記メッセージ記憶手段から抽出し、抽出したメッセージにより完了トランザクションを生成し、前記完了トランザクションを完了トランザクション情報記憶手段に格納する完了トランザクション情報生成手段として機能させることを特徴とする付記１記載のサービス処理状況分析プログラム。
【０１３９】
（付記６）  前記部分トランザクション情報生成手段は、前記メッセージ記憶手段に格納されたメッセージのうち、前記完了トランザクション情報生成手段により生成された前記完了トランザクションに含まれていないメッセージによって前記部分トランザクション情報を生成することを特徴とする付記５記載の処理状況分析プログラム。
【０１４０】
（付記７）  前記コンピュータを、さらに、
前記中断トランザクション情報記憶手段に記憶された前記中断トランザクション情報に基づいて、単位時間ごとの前記中断トランザクション数を集計し、集計結果を表示する分析手段として機能させることを特徴とする付記１記載の処理状況分析プログラム。
【０１４１】
（付記８）  前記コンピュータを、さらに、
前記モデル記憶手段に記憶されている前記トランザクションモデルと同様のメッセージの配列を構成する複数のメッセージを前記メッセージ記憶手段から抽出し、抽出したメッセージにより完了トランザクションを生成し、前記完了トランザクションを完了トランザクション情報記憶手段に格納する完了トランザクション情報生成手段として機能させ、
前記分析手段は、前記中断トランザクション情報記憶手段に記憶された前記中断トランザクション情報に基づいて、単位時間ごとの前記中断トランザクション数を集計し、前記完了トランザクション情報記憶手段に記憶された前記完了トランザクションに基づいて、単位時間ごとの完了トランザクション数を集計し、前記中断トランザクション数と前記完了トランザクション数とを比較画像を表示する付記７記載の処理状況分析プログラム。
【０１４２】
（付記９）  前記中断トランザクション情報生成手段は、前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報、前記中断処理リクエストメッセージ、および前記中断リクエストを結合して前記中断トランザクション情報を生成することを特徴とする付記１記載のサービス処理状況分析プログラム。
【０１４３】
（付記１０）  複数のサーバが接続されたネットワークシステムのサービス処理状況分析するサービス処理状況分析装置であって、
ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納するメッセージ観測手段と、
前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する中断検出手段と、
トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、前記中断検出手段で検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成する部分モデル生成手段と、
前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する部分トランザクション情報生成手段と、
前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する中断トランザクション情報生成手段と、
を有するサービス処理状況分析装置。
【０１４４】
（付記１１）  複数のサーバが接続されたネットワークシステムのサービス処理状況分析をコンピュータで実行するサービス処理状況分析方法であって、
前記コンピュータが、
ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納し、
前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出し、
トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成し、
前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成し、
生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する、
ことを特徴とするサービス処理状況分析方法。
【図面の簡単な説明】
【０１４５】
【図１】実施の形態の概要を示す図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本実施の形態に用いるサービス処理状況分析装置のハードウェア構成例を示す図である。
【図４】サービス処理状況分析装置の機能を示すブロック図である。
【図５】モデル記憶部のデータ構造例を示す図である。
【図６】トランザクションモデルに定義された連係動作を示すシーケンス図である。
【図７】中断トランザクション判別処理の手順を示すフローチャートである。
【図８】中断されたトランザクションのシーケンス図である。
【図９】メッセージバッファ内のメッセージシーケンスを示す図である。
【図１０】中断検出処理の手順を示すフローチャートである。
【図１１】中断フラグが設定されたメッセージシーケンスを示す図である。
【図１２】部分モデルを示す図である。
【図１３】部分マッチングの概要を示す図である。
【図１４】部分マッチング処理の手順を示すフローチャートである。
【図１５】トランザクションモデルが一意に決定する場合の部分マッチング状況を示す図である。
【図１６】トランザクションモデルが一意に決定できない場合の部分マッチング状況を示す図である。
【図１７】全体マッチング後の部分シーケンスによる部分マッチング状況を示す図である。
【図１８】中断処理が重複して発生した場合の部分マッチング状況を示す図である。
【図１９】トランザクションの分析例を示す図である。
【符号の説明】
【０１４６】
１  サービス処理状況分析装置
１ａ  モデル記憶手段
１ｂ  メッセージ観測手段
１ｃ  メッセージ記憶手段
１ｄ  中断検出手段
１ｅ  部分モデル生成手段
１ｆ  部分トランザクション情報生成手段
１ｇ  中断トランザクション情報生成手段
１ｈ  中断トランザクション情報記憶手段
２ａ  クライアント
２ｂ，２ｃ，２ｄ  サーバ
３ａ，３ｂ，３ｃ  ネットワーク
【図１】
0005035068.tif 000002
【図２】
0005035068.tif 000003
【図３】
0005035068.tif 000004
【図４】
0005035068.tif 000005
【図５】
0005035068.tif 000006
【図６】
0005035068.tif 000007
【図７】
0005035068.tif 000008
【図８】
0005035068.tif 000009
【図９】
0005035068.tif 000010
【図１０】
0005035068.tif 000011
【図１１】
0005035068.tif 000012
【図１２】
0005035068.tif 000013
【図１３】
0005035068.tif 000014
【図１４】
0005035068.tif 000015
【図１５】
0005035068.tif 000016
【図１６】
0005035068.tif 000017
【図１７】
0005035068.tif 000018
【図１８】
0005035068.tif 000019
【図１９】
0005035068.tif 000020