JP5035068B2 - サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法 - Google Patents

サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法 Download PDF

Info

Publication number
JP5035068B2
JP5035068B2 JP2008087607A JP2008087607A JP5035068B2 JP 5035068 B2 JP5035068 B2 JP 5035068B2 JP 2008087607 A JP2008087607 A JP 2008087607A JP 2008087607 A JP2008087607 A JP 2008087607A JP 5035068 B2 JP5035068 B2 JP 5035068B2
Authority
JP
Japan
Prior art keywords
message
partial
transaction
transaction information
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
JP2008087607A
Other languages
English (en)
Other versions
JP2009244948A (ja
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 JP2008087607A priority Critical patent/JP5035068B2/ja
Priority to US12/403,135 priority patent/US20090248803A1/en
Priority to GB0904363.9A priority patent/GB2463952B/en
Publication of JP2009244948A publication Critical patent/JP2009244948A/ja
Application granted granted Critical
Publication of JP5035068B2 publication Critical patent/JP5035068B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明はネットワークシステムのサービス処理状況を分析するためのサービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法に関し、特にネットワーク上で受け渡されるメッセージの観測結果に基づいてサービス処理状況を分析するサービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法に関する。
WebサービスをはじめとするIT(information technology)システムは、24時間365日の安定稼働が欠かせない。Webビジネスの成長にともない、システムが止まらないことは言うまでもなく、サービスの品質が問われるようになってきている。そのため、エンドユーザが体験しているサービスの品質(可用性(availability)やレスポンス)を、エンドユーザの視点から常に監視することが重要である。そこで、システムの動作状況を把握する業務サービス管理ツールが提供されている。
業務サービス管理ツールには、システムの運用状況を監視するための様々な技術が適用されている。例えば、システム可視化技術と呼ぶ技術がある。システム可視化技術は、ネットワークを流れる電文(メッセージ)をキャプチャし、業務毎に各サーバ間でどのようなメッセージが流れているか分析、モデル化し、監視する技術である(例えば、特許文献1、特許文献2参照)。この技術を用いることで、複数台のサーバが連携して動作する処理に関しても、端末装置からのリクエストに応答して各サーバでどれだけの時間処理を行ったのかを計測することができる。
特開2006−11683号公報 特開2006−323471号公報
ところで、ITシステムが過負荷になると、サーバのレスポンスが遅くなる。その場合、ユーザは待ちきれずにリクエストを中断することがある。例えば、Webサービスへのリクエストであれば、ユーザはブラウザの「中止ボタン」を押して読み込みを中断することができる。Webサービスへのリクエストが中断されると、ユーザの中断はTCP ResetメッセージとしてWebサーバに通知される。Webサーバでは、既に実行が開始されている処理はそのまま継続するが、処理が終了してもクライアントへレスポンスは送信しない。
システムの運用中にユーザ操作による中断処理が多発していれば、そのシステムでは、ユーザが許容できるレスポンス待ち時間までにレスポンスを返すことができていないことになる。従って、システム運用管理の観点から、ユーザの中止ボタン押下状況を的確に把握することは極めて重要である。
しかし、従来の技術では、中断された処理を分析することができなかった。前述の可視化によるシステムの監視(上記特許文献1、特許文献2)においても、完成したトランザクションが解析対象であるため、中断した部分的なトランザクションを検出できない。
一例として、Webサーバ、アプリケーションサーバ、およびデータベースサーバが連携して処理を実行するトランザクションを想定する。この例では、Webサーバはクライアントからのリクエストに応じて処理を実行し、アプリケーションサーバはWebサーバからのリクエストに応じて処理を実行し、データベースサーバはアプリケーションサーバからのリクエストに応じて処理を実行するものとする。このようなトランザクションにおいて、アプリケーションサーバで遅延が発生していたため、ユーザが応答を待ちきれず、クライアントからの指示で処理が中断されることがある。この場合、Webサーバからクライアントへの応答メッセージが存在しないため、キャプチャしたメッセージを組み合わせても完成したトランザクションとならない。完成したトランザクションを構成しないメッセージは解析の対象とならないため、処理の遅延を生じさせた原因を把握できなかった。
本発明はこのような点に鑑みてなされたものであり、中断した部分的なトランザクションを検出できるサービス処理状況分析プログラムを提供することを目的とする。
上記課題を解決するために、複数のサーバが接続されたネットワークシステムのサービス処理状況分析するサービス処理状況分析装置が提供される。サービス処理状況分析装置は、メッセージ観測手段、中断検出手段、部分モデル生成手段、部分トランザクション情報生成手段、および中断トランザクション情報生成手段を有する。
メッセージ観測手段は、ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納する。中断検出手段は、メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する。部分モデル生成手段は、トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、中断検出手段で検出された中断処理リクエストメッセージと同じ内容のメッセージで開始されるトランザクションモデルを検索し、検出したトランザクションモデルから中断処理リクエストメッセージと中断メッセージとに対応するメッセージを除いた部分モデルを生成する。部分トランザクション情報生成手段は、メッセージ記憶手段内の中断処理リクエストメッセージより後に受け渡されたメッセージの中から、部分モデル生成手段で生成された部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する。中断トランザクション情報生成手段は、部分トランザクション情報生成手段で生成された部分トランザクション情報と、少なくとも中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した中断トランザクション情報を中断トランザクション情報記憶手段に格納する。
このようなサービス処理状況分析装置によれば、ネットワークを介して受け渡されるメッセージがメッセージ観測手段で収集され、メッセージ記憶手段に格納される。その後、中断検出手段により、メッセージ記憶手段に格納されたメッセージの情報から、中断処理リクエストメッセージが検出される。次に、部分モデル生成手段により、モデル記憶手段が参照され、中断処理リクエストメッセージと同じ内容のメッセージで開始されるトランザクションモデルから部分モデルが生成される。さらに、部分トランザクション情報生成手段により、部分モデルと同様のメッセージの配列を構成する複数のメッセージにより部分トランザクション情報が生成される。そして、中断トランザクション情報生成手段により、部分トランザクション情報と、少なくとも中断処理リクエストメッセージとが結合され中断トランザクション情報が生成され、中断トランザクション情報が中断トランザクション情報記憶手段に格納される。
また、上記サービス処理状況分析装置と同様の機能をコンピュータに実行させるサービス処理状況分析プログラムが提供される。さらに、上記サービス処理状況分析装置で行われる処理をコンピュータで行うサービス処理状況分析方法が提供される。
上記サービス処理状況分析装置では、ネットワーク上で受け渡されるメッセージに基づいて、中断されたトランザクションを構成するメッセージの配列である中断トランザクション情報を生成することができる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、実施の形態の概要を示す図である。サービス処理状況分析装置1は、ネットワーク3a,3b,3cを介して接続されたクライアント2aや複数のサーバ2b,2c,2d間で受け渡されるメッセージに基づいて、サービスの処理状況を分析する装置である。このサービス処理状況分析装置1は、中断されたトランザクションにおける処理状況を分析するために、モデル記憶手段1a、メッセージ観測手段1b、メッセージ記憶手段1c、中断検出手段1d、部分モデル生成手段1e、部分トランザクション情報生成手段1f、中断トランザクション情報生成手段1g、および中断トランザクション情報記憶手段1hを有している。
モデル記憶手段1aは、トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶する。なお、トランザクションモデルは、予めモデル記憶手段1aに格納されている。
メッセージ観測手段1bは、ネットワーク3a,3b,3cを介して受け渡されるメッセージを収集する。そして、メッセージ観測手段1bは、収集したメッセージの情報をメッセージ記憶手段1cに格納する。メッセージ記憶手段1cは、複数のメッセージを記憶する。
中断検出手段1dは、メッセージ記憶手段1cに格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索する。そして、中断検出手段1dは、中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する。
部分モデル生成手段1eは、モデル記憶手段1aを参照し、中断検出手段1dで検出された中断処理リクエストメッセージと同じ内容のメッセージで開始されるトランザクションモデルを検索する。そして、部分モデル生成手段1eは、検出したトランザクションモデルから中断処理リクエストメッセージと中断メッセージとに対応するメッセージを除いた部分モデルを生成する。
部分トランザクション情報生成手段1fは、メッセージ記憶手段1c内の中断処理リクエストメッセージより後に受け渡されたメッセージの中から、部分モデル生成手段1eで生成された部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出する。そして、部分トランザクション情報生成手段1fは、抽出した複数のメッセージにより部分トランザクション情報を生成する。
中断トランザクション情報生成手段1gは、部分トランザクション情報生成手段1fで生成された部分トランザクション情報と、少なくとも中断処理リクエストメッセージとを結合して中断トランザクション情報を生成する。そして、中断トランザクション情報生成手段1gは、生成した中断トランザクション情報を中断トランザクション情報記憶手段1hに格納する。中断トランザクション情報記憶手段1hは、中断トランザクション情報を記憶する。
このようなサービス処理状況分析装置1によれば、ネットワークを介して受け渡されるメッセージがメッセージ観測手段1bで収集され、メッセージ記憶手段1cに格納される。その後、中断検出手段1dにより、メッセージ記憶手段1cに格納されたメッセージの情報から、中断処理リクエストメッセージが検出される。次に、部分モデル生成手段1eにより、モデル記憶手段1aが参照され、中断処理リクエストメッセージと同じ内容のメッセージで開始されるトランザクションモデルから部分モデルが生成される。さらに、部分トランザクション情報生成手段1fにより、部分モデルと同様のメッセージの配列を構成する複数のメッセージにより部分トランザクション情報が生成される。そして、中断トランザクション情報生成手段1gにより、部分トランザクション情報と、少なくとも中断処理リクエストメッセージとが結合され中断トランザクション情報が生成され、中断トランザクション情報が中断トランザクション情報記憶手段1hに格納される。
このように、中断処理リクエストメッセージを検出した場合、トランザクションモデルの部分モデルを作成し、メッセージ記憶手段1cから部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出するようにした。これにより、処理が完了していない中断トランザクション情報のメッセージ配列を抽出することができる。
次に、本実施の形態の詳細を説明する。
図2は、本実施の形態のシステム構成例を示す図である。図2に示すように、インターネット10には複数のクライアント21〜23が接続されている。また、インターネット10にはルータ31が接続されている。図中、ルータ31およびルータ31より右側の各装置によって、サービス提供側のネットワークシステムが構成されている。サービス提供側のネットワークシステムは、Webサーバ41、アプリケーションサーバ42,43、およびデータベース(DB)サーバ44による3階層構造となっている。
ルータ31にはスイッチ32を介してWebサーバ41が接続されている。Webサーバ41は、クライアント21〜23に対してWWW(World Wide Web )による情報提供を行う。Webサーバ41には、スイッチ33を介してアプリケーションサーバ42,43が接続されている。アプリケーションサーバ42,43は、Webサーバ41からのリクエストに応じてデータ処理を実行する。アプリケーションサーバ42,43には、スイッチ34を介してDBサーバ44が接続されている。DBサーバ44は、アプリケーションサーバ42,43からのリクエストに応じてデータベースへのデータの入出力を行う。
各スイッチ32〜34は、ポートモニタリング機能を有している。ポートモニタリング機能とは、スイッチ32〜34のポートを介して送受信されるパケットのコピーを、予め指定したポートへ送出する機能である。各スイッチ32〜34のコピーされたパケットを送出するポートには、スイッチ35を介してサービス処理状況分析装置100が接続されている。
サービス処理状況分析装置100は、サービス提供側のネットワーク内で送受信されるパケットの内容を解析し、複数のサーバで処理されるトランザクションを検出する。そして、サービス処理状況分析装置100は、検出したトランザクションを実行するのに各サーバが要した時間を分析する。なお、本実施の形態のサービス処理状況分析装置100は、完了したトランザクションに限らず、途中で中断したトランザクションについても検出することができる。
図3は、本実施の形態に用いるサービス処理状況分析装置のハードウェア構成例を示す図である。サービス処理状況分析装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102は、サービス処理状況分析装置100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103は、サービス処理状況分析装置100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置がある。
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
通信インタフェース106は、スイッチ35に接続されている。通信インタフェース106は、スイッチ35を介して、ネットワーク上で送受信されるパケットを取得(キャプチャ)する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3ではサービス処理状況分析装置100のハードウェア構成を示したが、クライアント21〜23、Webサーバ41、アプリケーションサーバ42,43、DBサーバ44も同様のハードウェア構成で実現することができる。
図4は、サービス処理状況分析装置の機能を示すブロック図である。サービス処理状況分析装置100は、モデル記憶部110、パケットデータ収集部121、メッセージ情報取得部123、メッセージバッファ124、中断検出部131、部分マッチング部132、中断トランザクション情報記憶部133、全体マッチング部141、完了トランザクション情報記憶部142、および分析部151を有している。
モデル記憶部110は、トランザクションを構成するメッセージの組合せを示すトランザクションモデルを記憶する記憶機能である。例えば、HDD103の記憶領域の一部がモデル記憶部110として使用される。なお、トランザクションモデルは、クライアントから出力されるリクエストの種別ごとに設けられる。
パケットデータ収集部121は、スイッチ35を介して送受信されるパケットを取得し、取得したパケットをメッセージ情報取得部123に渡す。
メッセージ情報取得部123は、パケットデータ収集部121から渡されたパケットの内容を解析し、1つ以上のパケットで構成されるメッセージを検出する。そして、メッセージ情報取得部123は、検出したメッセージを示すメッセージデータをメッセージバッファ124に格納する。
メッセージバッファ124は、メッセージデータを格納するための記憶機能である。例えば、RAM102の記憶領域の一部がメッセージバッファ124として使用される。
中断検出部131は、メッセージバッファ124に格納されたメッセージを検索し、中断を指示するメッセージ(中断メッセージ)を見つけ出す。中断メッセージを見つけ出した場合、中断検出部131は、その中断メッセージによって中断された処理のリクエストメッセージのメッセージデータを部分マッチング部132に通知する。
部分マッチング部132は、中断された処理のリクエストメッセージに基づいて、中断したトランザクションの部分マッチングを行う。具体的には、部分マッチング部132は、中断された処理のリクエストメッセージと同じ内容(例えば、処理を実行するプログラムのURL(Uniform Resource Locator)が同一)のメッセージから開始されるトランザクションモデルをモデル記憶部110から抽出する。次に、部分マッチング部132は、抽出したトランザクションモデルから、クライアントとの間で受け渡されるメッセージに関する情報を除外した残りの部分を、部分モデルとする。
なお、部分マッチング部132は、中断された処理のリクエストメッセージと同じ内容のメッセージから開始されるトランザクションモデルが複数検出された場合、全体マッチング部141に対して全体マッチングを依頼する。全体マッチングでは、中断されずに完了したトランザクションとトランザクションモデルとのマッチングが行われる。そして、部分マッチング部132は、全体マッチングにおいて完了したトランザクションを構成するメッセージは、部分マッチングの対象外とする。これにより、中断されたトランザクションのメッセージが部分マッチングの対象として残され、複数検出されたトランザクションモデルの1つと部分一致するメッセージ配列(部分トランザクション)が作成可能となる。
次に、部分マッチング部132は、メッセージバッファ124のメッセージから、部分モデルに沿ったメッセージ配列を抽出する。そして、部分マッチング部132は、部分トランザクションに対して、中断された処理のリクエストメッセージと中断メッセージとを結合して、トランザクションが中断されたときの処理を示す中断トランザクション情報とする。部分マッチング部132は、中断トランザクション情報を中断トランザクション情報記憶部133に格納する。
中断トランザクション情報記憶部133は、中断トランザクション情報を記憶する記憶機能である。例えば、RAM102の記憶領域の一部が中断トランザクション情報記憶部133として使用される。
全体マッチング部141は、メッセージバッファ124に格納されているメッセージと、モデル記憶部110に格納されているトランザクションモデルとを比較し、トランザクションモデルと同一構成となるメッセージの組合せを検出する。そして、全体マッチング部141は、検出したメッセージの組合せを完了トランザクション情報として、完了トランザクション情報記憶部142に格納する。
完了トランザクション情報記憶部142は、完了トランザクション情報を記憶する記憶機能である。例えば、RAM102の記憶領域の一部が、完了トランザクション情報142として使用される。
分析部151は、中断トランザクション情報記憶部133と完了トランザクション情報記憶部142とから各トランザクションのサーバごとの処理時間などを分析する。分析部151は、分析結果をグラフなどでモニタ11に表示する。
このような機能により、サービス処理状況分析装置100は、メッセージバッファ124の中から、トランザクションモデルの全体に合致するメッセージの組合せに加えて、トランザクションモデルと部分的に合致するメッセージの組合せを検出し、分析することができる。なお、図1に示した各要素と図4の要素との対応関係は以下の通りである。
図1のモデル記憶手段1aは、図4のモデル記憶部110に相当する。図1に示したメッセージ観測手段1bの機能は、図4のパケットデータ収集部121とメッセージ情報取得部123で実現される。図1のメッセージ記憶手段1cは、図4のメッセージバッファ124に相当する。図1の部分モデル生成手段1e、部分トランザクション情報生成手段1f、および中断トランザクション情報生成手段1gは、部分マッチング部132に含まれる機能である。図1の中断トランザクション情報記憶手段1hは、図4の中断トランザクション情報記憶部133に相当する。
図4に示した機能によって中断トランザクション情報を生成するために、トランザクションモデルが予めモデル記憶部110に格納される。
図5は、モデル記憶部のデータ構造例を示す図である。モデル記憶部110には、複数のトランザクションモデル111,112,113,・・・が記憶されている。各トランザクションモデル111,112,113,・・・には、トランザクションの処理を実行する際にネットワークで送受信される複数のメッセージ情報が含まれている。なお、メッセージ情報は、処理を要求するリクエストメッセージと、そのリクエストメッセージに対する応答を示すレスポンスメッセージとに関する情報である。
メッセージ情報は、リクエストメッセージの送信時刻、レスポンスメッセージの送信時刻、およびメッセージ内容(ダブルクォーテーションで囲まれた部分)で構成されている。
リクエストメッセージの送信時刻とレスポンスメッセージの送信時刻とには、トランザクションモデルの作成元となったトランザクションにおけるメッセージの送信時刻が設定される。すなわち、トランザクションモデルを作成する際には、実際にネットワークシステムでトランザクションを処理させ、そのトランザクションに応じて発生したメッセージを観測することで、トランザクションモデルが作成される。簡易的には、ネットワークシステムの試験段階で1つのトランザクションを処理させ、そのとき発生したメッセージを観測することで、1トランザクションを構成するメッセージの組合せが確定できる。なお、システム運用中のメッセージを観測してトランザクションモデルを作成する技術の例としては、特許文献1(特開2006−11683号公報)や特許文献2(特開2006−323471号公報)がある。
メッセージ内容の部分には、メッセージ種別を示すメッセージ種別IDと、リクエストメッセージの内容とが含まれている。メッセージ種別IDは、メッセージの呼び出し元が分かるようなデータ構造となっている。すなわち、トランザクションが複数のサーバで実行される場合、あるサーバから他のサーバに対してリクエストメッセージにより処理が依頼される。このようなサーバ間の処理の依頼関係の階層構造がメッセージ種別IDに示されている。
図5の例では、クライアントからのリクエストメッセージに応じた処理を第1の階層とする。第1の階層の処理を実行する過程で他のサーバに処理を依頼するためのリクエストメッセージに応じた処理を第2の階層とする。第2の階層の処理を実行する過程で他のサーバに対して出力されるリクエストメッセージに応じた処理を第3の階層とする。
第1の階層の処理を依頼するリクエストメッセージに関するメッセージ種別IDには、第1の階層の処理を識別可能な数値が設定される。第2の階層の処理を依頼するリクエストメッセージに関するメッセージ種別IDには、呼び出し元の処理に対応するメッセージ種別IDと、呼び出し元の処理から出力されるリクエストメッセージ間で識別可能な数値との組みが設定される。第3の階層の処理を依頼するリクエストメッセージに関するメッセージ種別IDには、呼び出し元の処理に対応するメッセージ種別IDと、呼び出し元の処理から出力されるリクエストメッセージ間で識別可能な数値との組みが設定される。
リクエストメッセージの内容には、プロトコル名と処理内容とが含まれている。プロトコル名には、HTTP(HyperText Transfer Protocol)、IIOP(Internet Inter-ORB Protocol)、SQL(Structured Query Language)といったメッセージのプロトコル名が設定される。処理内容には、リクエストメッセージを受け取ったサーバに依頼する処理の内容(例えば、処理を実行するプログラムの識別情報、処理に必要なパラメータなど)が設定される。
例えば、トランザクションモデル111には、3つのメッセージ情報が含まれている。1行目のメッセージ情報は、「t1,t2,"0;HTTP;GET /main.jsp"」である。「t1」により、時刻t1にリクエストメッセージが送信されたことがわかる。「t2」により、時刻t2にレスポンスメッセージが送信されたことが分かる。"0;HTTP;GET /main.jsp"の先頭の「0」がメッセージ種別IDである。このメッセージ種別IDには依頼元の処理を示す値が含まれていないため、クライアントからの処理依頼であることがわかる。すなわち第1の階層の処理を依頼するリクエストメッセージであることが分かる。「HTTP」との記載より、HTTPに従ったメッセージであることが分かる。「GET /main.jsp」が処理内容を示している。
2行目のメッセージ情報は、「t3,t4,"0-0:IIOP; method1"」である。「t3」により、時刻t3にリクエストメッセージが送信されたことがわかる。「t4」により、時刻t4にレスポンスメッセージが送信されたことが分かる。"0-0:IIOP; method1"の先頭の「0−0」がメッセージ種別IDである。このメッセージ種別IDには依頼元の処理を示す値「0」(左側の値)が含まれているため、メッセージ種別ID「0」に応じた処理の過程で出力されたリクエストメッセージであることがわかる。すなわち第2の階層の処理を依頼するリクエストメッセージであることが分かる。「IIOP」との記載より、IIOPに従ったメッセージであることが分かる。「method1」が処理内容を示している。
3行目のメッセージ情報は、「t5,t6,"0-0-0;SQL;Select uid from tbl"」である。「t5」により、時刻t5にリクエストメッセージが送信されたことがわかる。「t6」により、時刻t6にレスポンスメッセージが送信されたことが分かる。"0-0-0;SQL;Select uid from tbl"の先頭の「0−0−0」がメッセージ種別IDである。このメッセージ種別IDには依頼元の処理を示す値「0−0」(左側と中央の値)が含まれているため、メッセージ種別ID「0−0」に応じた処理の過程で出力されたリクエストメッセージであることがわかる。すなわち第3の階層の処理を依頼するリクエストメッセージであることが分かる。「SQL」との記載より、RDBを操作するプロトコル(SQL)に従ったメッセージであることが分かる。「Select uid from tbl」が処理内容を示している。
なお、各時刻t1,t2,t3,t4,t5,t6は、「t1<t3<t5<t6<t4<t2」という関係にある。トランザクションモデル111と取得したメッセージとをマッチングする場合、メッセージの送信時間の前後関係がトランザクションモデル111と一致していることが必要となる。
このようなトランザクションモデル111,112,113,・・・によって、クライアントからのリクエストメッセージに応じたサーバ間の連係動作が定義される。
図6は、トランザクションモデルに定義された連係動作を示すシーケンス図である。図6は、図5のトランザクションモデル111に定義された連係動作を示している。このシーケンス図には、クライアント51、Webサーバ52、アプリケーションサーバ53、およびDBサーバ54の連携動作が示されている。なお、クライアント51、Webサーバ52、アプリケーションサーバ53、およびDBサーバ54は特定の装置を示しているのではなく、該当する処理機能を備えた任意の装置を示している。
トランザクションモデル111では、クライアント51からWebサーバ52に対して、時刻t1にHTTPのリクエストメッセージが送信される。次に、Webサーバ52からアプリケーションサーバ53に対して、時刻t3にIIOPのリクエストメッセージが送信される。次に、アプリケーションサーバ53からDB54に対して、時刻t5にSQLのリクエストメッセージが送信される。
DBサーバ54で処理が終了すると、DBサーバ54からアプリケーションサーバ53に対して、時刻t6にSQLのレスポンスメッセージが送信される。その後、アプリケーションサーバ53で処理が終了すると、アプリケーションサーバ53からWebサーバ52に対して、時刻t4にIIOPのレスポンスメッセージが送信される。最後に、Webサーバ52で処理が終了すると、Webサーバ52からクライアント51に対して、時刻t2にHTTPのレスポンスメッセージが送信される。
このようなトランザクションモデル111,112,113,・・・をモデル記憶部110に予め格納し、ネットワークシステムの運用が開始される。そして、運用中にトランザクションが中断されると、中断されたトランザクションが、どのトランザクションモデルに該当するのかが判別される。
図7は、中断トランザクション判別処理の手順を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。
[ステップS11]パケットデータ収集部121は、ネットワークのパケットを収集する。すなわち、トランザクションが発生すると、各サーバに対してメッセージの入出力が行われる。メッセージは、パケット単位に分割されネットワークで伝送される。そのパケットが、パケットデータ収集部121で収集される。なお、パケットデータ収集部121は、パケットを取得した場合、取得時刻(タイムスタンプ)を取得したパケットに付与する。タイムスタンプが付与されたパケットは、メッセージ情報取得部123に渡される。
[ステップS12]メッセージ情報取得部123は、メッセージを解析し、メッセージをメッセージバッファ124に登録する。具体的には、メッセージ情報取得部123はパケットデータバッファを有しており、パケットデータバッファに取得したパケットを格納する。なお、パケットデータバッファは、RAM102内の記憶領域の一部に設けられる。
メッセージ情報取得部123は、取得したパケットからセッションを再構成する。以下、パケットがIPパケットであるものとして、再構成手順を説明する。
メッセージ情報取得部123は、まず、複数のパケットを、そのパケットが属するセッション毎に振り分ける。具体的には、メッセージ情報取得部123は、パケットのIPヘッダから、送受信側IPアドレスを取得する。次に、メッセージ情報取得部123は、パケットのTCPヘッダから送信側ポート番号と受信側ポート番号とを取得する。そして、メッセージ情報取得部123は、取得した4つの値の組をセッションの識別子とする。このとき、識別子に一意な番号を割り当てることもできる。そして、メッセージ情報取得部123は、各パケットの識別子を生成し、同じ識別子を持つパケットを、同じセッションで送られたパケットであるとして振り分ける。
次に、メッセージ情報取得部123は、セッションに振り分けられたパケットの中から所定のデータを抽出し、メッセージのペア(リクエストメッセージとレスポンスメッセージとの対)を再構成する。具体的には、メッセージ情報取得部123は、パケットのTCPヘッダに含まれるフラグを読み取って、開始・確立・切断などのセッション状態を取得する。例えば、メッセージ情報取得部123は、SYN(Synchronize Flag)「1」のパケットの検出によってセッションの開始を認識し、そのパケットに対するACK(Acknowledgement Flag)「1」の応答によってセッションの確立を認識し、セッション確立状態でデータ伝送とそれに対するACK「1」の応答が繰り返し行われ、最後にFIN(Fin Flag)「1」パケットの検出によってセッションの切断を認識する。
さらに、メッセージ情報取得部123に対して、事前に各サーバのIPアドレスを与えておくことで、IPアドレスの組から各パケットの送信方向を決定することもできる。
また、メッセージ情報取得部123は、例えば、パケットのIPヘッダから、サーバアドレスが送信アドレスにあれば送信側ポート番号を、サーバアドレスが宛て先アドレスにあれば受信側ポート番号を読み取る。そして、メッセージ情報取得部123は、そのポート番号を識別子とすることでどのサービスに関するセッションであるかを調べることができる。例えば、メッセージ情報取得部123は、サーバ側のポートが80番である場合、Webサーバとの通信(HTTP)であると判定する。
このようにして、セッションが再構成される。セッションが再構成されると、次にメッセージ情報取得部123は、セッション毎に振り分けられパケットのデータ部からメッセージを再構成する。具体的には、メッセージ情報取得部123は、まず同一のセッションで送受信されるパケットの集まりからデータ部分を抜き出して並べる。そして、メッセージ情報取得部123は、並べられたデータ部分の列を、プロトコルのフォーマットに従ったメッセージサイズで分割し、メッセージを再構成する。メッセージ情報取得部123は、メッセージが複数に分割送信されていた場合には、複数のデータ部分を連結してひとつのメッセージを作り出す。また、メッセージ情報取得部123は、連結された複数のメッセージが送信されていた場合には、単一のデータ部から複数のメッセージを切り出す。
このようにして、メッセージを再構成することができる。メッセージ情報取得部123は、再構成したメッセージをメッセージバッファ124に時系列に格納する。メッセージバッファ124内にメッセージが時系列で格納されることで、メッセージバッファ124内にメッセージシーケンスが作成される。メッセージシーケンスに含まれるメッセージのうち、同一セッション内での送信方向が逆向きのメッセージの組が、メッセージペアとして認識される。同一セッション内のメッセージであることは、送信側と受信側とのメッセージのIPアドレスおよびポート番号の同一性で判別される。この際、メッセージ情報取得部123は、メッセージペアのレスポンスメッセージに対して、処理時間を設定する。処理時間は、リクエストメッセージとレスポンスメッセージとのタイムスタンプに示された時間の差である。
[ステップS13]中断検出部131は、トランザクションの中断を検出する。この処理の詳細は後述する。
[ステップS14]部分マッチング部131は、前回の部分マッチングの実行から一定時間(予め設定された部分マッチング周期)が経過したか、あるいはメッセージバッファ124に格納されたメッセージが予め設定されたメッセージ許容量を超えたか否かを判断する。いずれかの条件に該当した場合、処理がステップS15に進められる。いずれの条件にも該当していなければ処理がステップS11に進められ、パケットの収集が継続される。
[ステップS15]部分マッチング部131は、部分マッチングを実行する。この処理の詳細は後述する。
ここで、トランザクションが中断した場合を想定し、そのとき生成されるメッセージシーケンスを具体的に説明する。
図8は、中断されたトランザクションのシーケンス図である。この例では、クライアント21からWebサーバ41にHTTPのリクエストメッセージ71が送信されている。Webサーバ41は、受信したHTTPのリクエストメッセージ71に応じた処理の過程において、アプリケーションサーバ42にIIOPのリクエストメッセージ72を送信している。アプリケーションサーバ42は、受信したIIOPのリクエストメッセージ72に応じた処理の過程において、DBサーバ44に対してSQLのリクエストメッセージ73を送信している。
DBサーバ44は、アプリケーションサーバ42からのリクエストメッセージ73に応じた処理を実行し、レスポンスメッセージ74をアプリケーションサーバ42に送信している。アプリケーションサーバ42は、Webサーバ41からのリクエストメッセージ72に応じた処理が完了し、Webサーバ41にレスポンスメッセージ75を送信している。
ところが、クライアント21を使用しているユーザは、Webサーバ41からのレスポンスを待たずに中断の操作入力を行っている。その結果、クライアント21からWebサーバ41に中断リクエスト76が送信されている。
このような一連のトランザクション処理が実行されると、このトランザクションを構成する各メッセージが時系列でメッセージバッファ124に格納される。なお、クライアント21のIPアドレスは「10.25.100.1」、Webサーバ41のIPアドレスは「10.25.100.2」、アプリケーションサーバ42のIPアドレスは「10.25.100.3」、DBサーバ44のIPアドレスは「10.25.100.4」であるものとする。
図9は、メッセージバッファ内のメッセージシーケンスを示す図である。メッセージバッファ124には、メッセージシーケンス124aが格納されている。メッセージシーケンス124aには、複数のメッセージデータが時系列で格納されている。
メッセージデータの先頭はUNIX(登録商標)形式の時刻(1970年1月1日からの経過時間)を示すタイムスタンプである。メッセージが、セッションを確立するためのコネクション接続または中断要求であれば、メッセージデータ内のタイムスタンプの後にセッション番号が付与される。
各メッセージデータには、タイムスタンプに続けて、プロトコル名、およびメッセージの内容が設定されている。
図9に示したメッセージシーケンス124aでは、装置間の通信を開始する場合、最初にTCPのコネクションが張られている。例えば、メッセージシーケンス124aの最初のメッセージは、クライアント21からのリクエストにより、クライアント21とWebサーバ41との間にコネクションを接続したことを示している。メッセージシーケンス124aの2つめのメッセージは、クライアント21からWebサーバ41に対して送信されたリクエストメッセージである。
図9の例では、メッセージシーケンス124aの2つめのリクエストメッセージに応じた処理が完了する前に、該当するセッションに対してクライアント21から中断リクエスト(TCP Reset)が出されている(6番目のメッセージ)。これは、クライアント21上でなんらかのキャンセル処理が実施されたことを意味する。なお、HTTP以外のプロトコルでも、TCP/IP通信であるならばすべてTCP上のReset信号とセッションから中断の有無を判定できる。つまり、セッション上でリクエストの後にレスポンスの代わりにResetが観測されたら、そのリクエストがキャンセルされたものとなる(同期通信であるため、リクエストに対してレスポンスがペアとなるため)。このようにメッセージシーケンス124aの2つめのリクエストメッセージに応じた処理は、その処理が完了する前に中断リクエストが出されている。そのため、このリクエストメッセージに対応するレスポンスメッセージが存在しない。
中断検出部131は、このようなメッセージシーケンス124aを参照して、トランザクションの中断の有無を検出する。
図10は、中断検出処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS21]中断検出部131は、メッセージバッファ内の未処理のメッセージを1つ読み込む。
[ステップS22]中断検出部131は、読み込んだメッセージがリクエストメッセージか否かを判断する。内容に「Request」と記載されているメッセージがリクエストメッセージである。リクエストメッセージであれば、処理がステップS23に進められる。リクエストメッセージでなければ、処理がステップS24に進められる。
[ステップS23]中断検出部131は、リクエストメッセージを保持する。具体的には、中断検出部131は、RAM102内の所定の記憶領域にリクエストメッセージのメッセージデータを書き込む。その後、処理がステップS21に進められる。
[ステップS24]中断検出部131は、読み込んだメッセージがレスポンスメッセージか否かを判断する。レスポンスメッセージであれば、処理がステップS25に進められる。レスポンスメッセージでなければ、処理がステップS26に進められる。
[ステップS25]中断検出部131は、レスポンスメッセージに対応するリクエストメッセージの保持を解除(RAM102内から削除)する。その後、処理がステップS21に進められる。
[ステップS26]中断検出部131は、メッセージがTCPリセットか否かを判断する。TCPリセットであれば、処理がステップS27に進められる。TCPリセットでなければ、処理がステップS21に進められる。
[ステップS27]中断検出部131は、TCPリセットのメッセージのセッション番号と一緒に保持していたメッセージIDで示されるリクエストメッセージの応じたトランザクションが中断したと判定する。中断検出部131は、中断したトランザクションの処理を要求するリクエストメッセージのメッセージIDを、部分マッチング部132に渡す。
[ステップS28]中断検出部131は、中断したトランザクションの処理を要求するリクエストメッセージをメッセージバッファ124から特定し、そのリクエストメッセージに中断を示すフラグを設定する。
[ステップS29]中断検出部131は、中断したトランザクションの処理を要求するリクエストメッセージの保持を解除(RAM102内から削除)する。
[ステップS30]中断検出部131は、メッセージバッファ124からすべてのメッセージを読み込んだか否かを判断する。すべてのメッセージを読み込んだ場合、処理が終了する。読み込んでいないメッセージがある場合、処理がステップS21に進められる。
中断検出処理が行われることで、メッセージバッファ124内のメッセージシーケンス124aでは、中断された処理のリクエストメッセージに対して中断フラグが設定される。
図11は、中断フラグが設定されたメッセージシーケンスを示す図である。メッセージシーケンス124aの2番目のメッセージは、最後に「中断」という記載(中断フラグ)が追加されている。
中断が検出されると、部分マッチング部132により部分マッチングが行われる。部分マッチングは、中断したトランザクションとトランザクションモデルの一部構造(部分モデル)とのマッチング(一致・不一致の判定)を行うものである。
図12は、部分モデルを示す図である。部分マッチングでは、トランザクションモデル111の全体ではなく、トランザクションモデル111内のクライアント51とWebサーバ52との間のメッセージペアを除いたメッセージを部分モデル111aとする。そして、部分マッチング部132は、中断したトランザクションと合致する部分モデル111aを有するトランザクションモデル111を、モデル記憶部110から検索する。
図13は、部分マッチングの概要を示す図である。部分マッチング部132は、まず、中断されたURLを把握する。中断されたURLは、メッセージバッファ124aを参照し、中断されたリクエストメッセージ71の内容を解析することで把握できる(ステップS41)。
次に、部分マッチング部132は、中断されたURLがリクエストメッセージ71のURLとして設定されているトランザクションモデル111を、モデル記憶部110から検索する(ステップS42)。モデル記憶部110は、検索でヒットしたトランザクションモデル111のうち、最初のメッセージ情報を除く他のメッセージ情報の集合を部分モデル111aと認識する。
次に、部分マッチング部132は、メッセージバッファ124を参照し、中断されたリクエストメッセージ71の送信時刻(タイムスタンプ)より後に送信されたメッセージから、部分モデル111aに合致するメッセージの集合(部分トランザクション情報61)を抽出する(ステップS43)。部分モデル111aと部分トランザクション情報61とが合致するためには、リクエストメッセージによる処理の呼び出し関係が一致すること、リクエストメッセージで依頼される処理の内容が一致すること、およびリクエストメッセージが出される順番が一致することが必要である。
例えば、部分モデル111aの1つめのメッセージ情報では、HTTPのリクエストメッセージで呼び出された処理により、IIOPのリクエストメッセージによる呼び出しが行われている。すなわち、”GET /main.jsp”の処理から”method1”の処理が呼ばれる。
そこで、部分マッチング部132は、中断された処理を実行するWebサーバ41から、下位の処理を呼び出すためのリクエストメッセージ72を検索する。なお、この下位の処理を呼び出すためのリクエストメッセージ73は、リクエストメッセージ71以後であり、且つ中断リクエスト76以前に送信されている必要がある。部分マッチング部132は、該当するリクエストメッセージ72を検出する。そして、部分マッチング部132は、リクエストメッセージ72に対するレスポンスメッセージ75を検索する。部分マッチング部132は、リクエストメッセージ72とレスポンスメッセージ75とのペアが、部分モデル111aの1つめのメッセージ情報に合致すると判断する。
部分モデル111aの2つめのメッセージ情報では、IIOPのリクエストメッセージで呼び出された処理により、SQLのリクエストメッセージによる呼び出しが行われている。すなわち、”method1”の処理から”Select uid from tbl”の処理が呼ばれる。
そこで、部分マッチング部132は、IIOPのリクエストメッセージ72に応じた処理を実行するWebサーバ41から、下位の処理を呼び出すためのリクエストメッセージ73を検索する。なお、この下位の処理を呼び出すためのリクエストメッセージ73は、リクエストメッセージ72以後であり、且つレスポンスメッセージ75以前に送信されている必要がある。部分マッチング部132は、該当するリクエストメッセージ73を検出する。そして、部分マッチング部132は、リクエストメッセージ73に対するレスポンスメッセージ74を検索する。部分マッチング部132は、リクエストメッセージ73とレスポンスメッセージ74とのペアが、部分モデル111aの2つめのメッセージ情報に合致すると判断する。
このようにして、部分マッチング部132は、部分モデル111aに合致する部分トランザクション情報61を検出できる。
以下、部分マッチング処理の手順を詳細に説明する。
図14は、部分マッチング処理の手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS51]部分マッチング部132は、中断メッセージのメッセージデータを取得する。具体的には、部分マッチング部132は、中断検出部131から、中断した処理のリクエストメッセージを示すメッセージデータを受け取る。このとき、中断検出部131で中断した処理が複数検出されていれば、部分マッチング部132は、複数のメッセージデータを受け取る。
[ステップS52]部分マッチング部132は、中断した処理の開始時刻から中断時刻までの間に、同一のURLを指定したリクエストメッセージがあるか否かを判断する。
すなわち、Webサーバ41において、同一URLを指定した複数の処理が並行して実行されているときに、一方の処理が中断される場合がある。その場合、Webサーバ41で並行して実行されている複数の処理それぞれから、アプリケーションサーバ42,43に対して派生した処理を依頼するリクエストメッセージが出される。そのため、派生した処理のリクエストメッセージと、Webサーバ41における複数の処理(少なくとも1つの処理は中断されている)との対応関係を判断する必要が生じる。そこで、該当するメッセージがあれば、処理がステップS56に進められる。該当するメッセージがなければ、処理がステップS53に進められる。
[ステップS53]部分マッチング部132は、メッセージシーケンス124a内のメッセージの中から、中断した処理から派生した処理を呼び出すリクエストメッセージを検索する。なお、派生した処理を呼び出すリクエストメッセージは、中断した処理の開始時刻(リクエストメッセージの送信時刻)から中断時刻(中断メッセージの送信時刻)の間に送信されている必要がある。
[ステップS54]部分マッチング部132は、ステップS53で検出したリクエストメッセージから開始される部分トランザクション情報を作成する。具体的には、部分マッチング部132は、呼び出し元の処理期間帯は、呼び出し先の処理期間帯を包含するという制約条件を満たす処理を関連付ける。そして、部分マッチング部132は、関連付けた処理間のリクエストメッセージとレスポンスメッセージとを時系列に並べて、部分トランザクション情報とする。
なお、呼び出し先の処理が、複数の呼び出し元の処理に対して制約条件を満たす場合がある。例えば、Webサーバ41で同時期に実行されている処理が2つある場合、両方の処理の処理時間帯内にWebサーバ41からアプリケーションサーバ42に対してリクエストメッセージが出され、両方の呼び出し元の処理の処理時間帯内にレスポンスメッセージが返される場合である。この場合、制約条件だけでは、呼び出し先の処理(アプリケーションサーバ42の処理)を、読み出し元の2つの処理(Webサーバ41の処理)のどちらに関連付けるべきか決定できない。このような場合、部分マッチング部132は、モデル記憶部110に格納されたトランザクションモデルの部分モデルに合わせて関連付ける。
また、このとき参照されるトランザクションモデルは、中断した処理のリクエストメッセージとURLが同一のリクエストメッセージで開始されるトランザクションモデルである。参照されるトランザクションモデルから、クライアントからのリクエストメッセージとクライアントへのレスポンスメッセージとを除外した部分が部分モデルである。すなわち、部分マッチング部132は、中断された処理のリクエストメッセージと同じ内容(URLが同じ)のメッセージから開始されるトランザクションモデルをモデル記憶部110から検索する。部分マッチング部132は、検出したトランザクションモデルにおける最初のメッセージ情報(クライアントとの間で受け渡されるメッセージの情報)を除いた部分を、部分モデルとする。さらに、部分マッチング部132は、作成された部分モデルと同じ呼び出し関係となり、かつ制約条件を満たすメッセージを、メッセージシーケンス124a内から抽出する。そして、部分マッチング部132は、抽出したメッセージを時系列に並べて、部分トランザクション情報とする。
このようにして、トランザクションモデルに部分一致する部分トランザクション情報が構築される。
[ステップS55]部分マッチング部132は、中断された処理のリクエストメッセージ、中断メッセージ、およびステップS54で構築した部分トランザクション情報を結合して、中断トランザクション情報とする。その後、処理が終了する。
[ステップS56]部分マッチング部132は、中断した処理に対応するトランザクションモデルが一意に決定できるか否かを判断する。具体的には、部分マッチング部132は、中断した処理のリクエストメッセージに示されるURLに基づいて、モデル記憶部110からトランザクションモデルを検索する。検索の結果、トランザクションモデルが1つだけヒットした場合、トランザクションモデルが一意に決定される。複数のトランザクションモデルがヒットした場合、トランザクションモデルは一意に決定しない。トランザクションモデルが一意に決定できる場合、処理がステップS58に進められる。トランザクションモデルが一意に決定できない場合、処理がステップS57に進められる。
[ステップS57]部分マッチング部132は、メッセージシーケンス124aに対して全体マッチング処理を行い、トランザクションモデルに合致したトランザクションに含まれるメッセージを除いた残りメッセージを部分マッチングの対象とする。すなわち、中断せずに完了したトランザクションであれば、モデル記憶部110に格納されているトランザクションモデルのいずれかと一致する。そこで、部分マッチング部132は、メッセージシーケンス124aに含まれるメッセージを用いて、トランザクションモデルと一致するトランザクションを生成する。そして、部分マッチング部132は、トランザクションモデルと一致するトランザクションに含まれるメッセージは、部分マッチングの対象外とする。例えば、部分マッチング132は、メッセージバッファ124内の部分マッチングの対象外とするメッセージに対して、処理対象外であることを示すフラグを設定する。
このように、全体マッチングによってトランザクションモデルと全体的に一致したトランザクションに含まれるメッセージを部分マッチングの対象外とすることで、中断した処理から派生する部分トランザクション情報を正しく作成することができる。その結果、中断した処理のリクエストメッセージで示されるURLに対応するトランザクションモデルが複数合ったとしても、適切なトランザクションモデルを選択できる。
[ステップS58]部分マッチング部132は、中断されたリクエストメッセージを時間順にソートする。
[ステップS59]部分マッチング部132は、メッセージシーケンス124a内の処理対象とされたメッセージの中から、中断した処理から派生した処理を呼び出すリクエストメッセージを検索する。このとき、中断した処理それぞれに対応するリクエストメッセージがヒットする。
[ステップS60]部分マッチング部132は、ステップS59で検出したメッセージから開始される部分トランザクション情報を構築する。部分トランザクション情報の構築はステップS54と同様に行われ、部分モデルに一致する部分トランザクション情報が構築される。このとき、ステップS59で検出された複数のリクエストメッセージそれぞれから開始される複数の部分トランザクション情報が構築される。そして、部分マッチング部132は、部分トランザクション情報を開始時間順にソートする。
[ステップS61]部分マッチング部132は、ステップS58でソートしたリクエストメッセージとステップS60でソートした部分トランザクション情報とを、それぞれ上位から順番に関連付ける。そして、部分マッチング部132は、関連付けたリクエストメッセージと部分トランザクション情報とを結合する。
[ステップS62]部分マッチング部132は、ステップS61で生成された処理を、中断トランザクション情報とする。その後、処理が終了する。
このようにして、部分マッチングが行われる。以下、部分マッチングの例を具体的に説明する。
まず、中断した処理のリクエストメッセージに示されるURLに基づいて、トランザクションモデルが一意に決定される場合の例を示す。
図15は、トランザクションモデルが一意に決定する場合の部分マッチング状況を示す図である。メッセージシーケンス124aには、中断検出部131によって、中断した処理のリクエストメッセージに対して、「中断」の記述が追加されている。部分マッチング部132は、中断された処理のリクエストメッセージのURLを抽出し、そのURLでモデル記憶部110を検索する。この例では、トランザクションモデル111のみがヒットしたものとする。
部分マッチング部132は、ヒットしたトランザクションモデル111から1番目のメッセージ情報を除いた部分を、部分モデル111aと認識する。そこで、部分マッチング部132は、トランザクションモデル111の2番目のメッセージ情報に対応するメッセージペアをメッセージシーケンス124aから捜し出す。すると、メッセージシーケンス124aの4番目のメッセージデータ(1123656334.847365 (2-1) IIOP Request Message : method1)と9番目のメッセージデータ(1123656335.857695 (2-1) IIOP Reply Message : 1.010330(sec))とのメッセージペアが該当することがわかる。
ところで、全体マッチングを行う場合、制約条件によって、呼び出し元の処理時間帯内に、呼び出し先の処理時間帯が包含されていることが必要である。しかし、部分マッチングにおいて、クライアントからのリクエストに応じた処理は中断されている。そのため、中断した処理の処理時間帯は、呼び出し先の処理時間帯を包含しているとは限らない。従って、部分マッチングでは、中断された処理に関しては、処理時間帯(処理の開始から中断まで)内に、他の処理を呼び出すためのリクエストメッセージが送信されていることが、制約条件となる。すなわち、呼び出し先からのレスポンスメッセージの送信時間は、中断後であってもよい。このように、部分マッチングでは、制約条件が緩和される。
部分マッチング132は、見つけ出した4番目のメッセージデータが制約条件を満たすことを認識すると、トランザクションモデル111の3番目のメッセージ情報に対応するメッセージペアをメッセージシーケンス124aから捜し出す。すると、7番目のメッセージデータ(1123656335.848510 (3-1) SQL Request SELECT utd from tbl)と8番目のメッセージデータ(1123656335.849510 (3-1) SQL Reply : 0.001000(sec))とのメッセージペアが該当することが分かる。
ここで、トランザクションモデル111の2番目のメッセージ情報に対応する処理は、中断されずに完了している。従って、完了した処理から呼び出される他の処理は、全体マッチングの場合と同様の制約条件が課される。すなわち、呼び出し元の処理時間帯内に、呼び出し先の処理時間帯が包含されていることが必要である。図15の例では、見つけ出した7番目のメッセージデータと8番目のメッセージデータとのメッセージペアで示される処理時間は、呼び出し元である4番目のメッセージデータと9番目のメッセージデータとのメッセージペアで示される処理時間に包含される。従って、制約条件が満たされている。
これにより、部分マッチング部132は、トランザクションモデル111に部分一致する中断トランザクション情報133aを構成することができる。すなわち、部分マッチング部132は、中断メッセージ、中断した処理のリクエストメッセージ、および中断した処理から派生して部分モデル111aに合致するリクエストメッセージペアを時系列にならべ、中断トランザクション情報133aとする。中断トランザクション情報133aは、中断トランザクション情報記憶部133に格納される。
次に、中断した処理のリクエストメッセージに示されるURLからトランザクションモデルが一意に決定できない場合の例について説明する。
図16は、トランザクションモデルが一意に決定できない場合の部分マッチング状況を示す図である。図16の例では、メッセージシーケンス124bの中断した処理のリクエストメッセージに示されるURLに基づいてトランザクションモデルを検索した場合に、2つのトランザクションモデル111,112が検出されている。そこで、部分マッチングを行う前に、全体マッチングが行われる。なお、全体マッチングでは、すべての呼び出し関係において、呼び出し元の処理時間帯内に、呼び出し先の処理時間帯が包含されていることが必要である。すると、メッセージシーケンス124bから、トランザクションモデル112に対応するトランザクションが検出される。
そこで、メッセージシーケンス124bのうち、検出されたトランザクションに含まれる各メッセージを除外した部分シーケンス124cを部分マッチングの対象とする。
図17は、全体マッチング後の部分シーケンスによる部分マッチング状況を示す図である。この例では、2つのトランザクションモデル111,112がマッチングの対象となる。そこで、各トランザクションモデル111,112から先頭のマッチング情報を除外した部分モデル111a,112aが作成される。そして、部分マッチング部132は、各部分モデル111a,112aと部分シーケンス124cとの部分マッチングを行う。
すると、図15で説明した部分マッチングと同様に、部分モデル111aと一致する部分トランザクション情報が検出される。一方、部分シーケンス124c内には、モデル112aと一致する部分とトランザクションを見つけ出すことはできない。これにより、トランザクションモデル111に対応するトランザクションが中断したことが分かる。そこで、部分マッチング部132は、中断された処理のリクエストメッセージと中断メッセージとに、部分モデル111aに対応する部分トランザクション情報を結合し、中断トランザクション情報133bとする。
次に、複数の中断処理が重複して発生した場合の例について説明する。
図18は、中断処理が重複して発生した場合の部分マッチング状況を示す図である。メッセージシーケンス124dには、2つの中断処理が含まれている。しかも、中断処理は、リクエストメッセージに示されるURLが同一であり、処理時間帯に重複がある。この場合にも、先にトランザクションモデルとの全体マッチングを行う。しかし、全体マッチングでは、完了したトランザクションしか検出できないため、2つの中断処理は処理対象として残される。
図18の例では、中断した処理のリクエストメッセージは、2番目のメッセージ(1123656334.841127 (1-1) HTTP Request POST /main.jsp, 中断)と4番目のメッセージ(1123656334.845627 (4) HTTP Request POST /main.jsp, 中断)である。これらのメッセージに示されるURLは、共に「HTTP Request POST /main.jsp」である。部分マッチング部132は、このURLでモデル記憶部110を検索する。すると、2つのトランザクションモデル111,112が検出される。
部分マッチング部132は、トランザクションモデル111,112それぞれの部分モデル111a,112aに一致する部分トランザクション情報を、メッセージシーケンス124dから探し出す。図18の例では、部分モデル111a,112aそれぞれに一致する部分トランザクション情報が検出されている。
このとき、中断した処理の2つのリクエストメッセージと、検出された2つの部分トランザクション情報との対応関係を一意に決定することは難しい。そこで、部分マッチング部132では、同様の処理(URLが同一)のリクエストメッセージであれば、サーバに入力された順番に処理が開始され、他の処理の呼び出しも、処理の開始順に沿って行われるものと推定する。すなわち、部分マッチング部132は、中断した処理のリクエストメッセージをタイムスタンプで時系列に並べる。同様に、部分マッチングにより検出された2つの部分トランザクション情報を、最初のリクエストメッセージのタイムスタンプで時系列に並べる。次に、部分マッチング部132は、中断した処理のリクエストメッセージの配列と部分トランザクション情報との配列とのそれぞれの上位から順番に1つずつ選択する。さらに、部分マッチング部132は、選択したリクエストメッセージ、そのリクエストメッセージに対応する中断メッセージ、および選択した部分トランザクション情報を結合する。なお、結合の際には、各メッセージが時系列に並べられる。そして、部分マッチング部132は、結合したメッセージの配列を中断トランザクション情報133c,133dとする。中断トランザクション情報133c,133dは、中断トランザクション情報記憶部133に格納される。
このようにして、中断トランザクション情報を検出することができる。また、全体マッチング部141が全体マッチングを行うことで、完了トランザクションの情報が完了トランザクション情報記憶部142に格納される。そして、分析部151によって、処理状況が分析される。
図19は、トランザクションの分析例を示す図である。この例では、所定の期間内での単位時間当たりの完了トランザクション数81、処理時間82、および中断トランザクション数83をグラフで示している。グラフの横軸は、実時間を示している。縦軸の左側のメモリは、処理時間を示している。縦軸の右側のメモリは、トランザクション数を示している。
このように、中断トランザクションが検出できることで、トランザクション総数に占める中断トランザクションの割合などを簡単に算出できる。また、どのトランザクションモデルに合致するトランザクションが中断されたのかが分かるため、トランザクションモデルに合致するトランザクションにおけるサーバごとの処理時間を計算する際に、中断トランザクションの処理時間を反映させることができる。すなわち、従来の全体マッチングのみを行う可視化技術では、ユーザが中止ボタンを押した処理について、どこで遅延が発生したかを把握することができなかった。本実施の形態により、中止ボタンが押された処理の遅延箇所を的確に判断できる。これにより、システムの状況を把握し、それに適切に対応することが可能となり、障害や遅延の時間を減少させ、顧客満足度の低下を防ぐことが可能となる。
例えば、図8に示したような中断トランザクションにおいて、アプリケーションサーバ42における「IIOP method1」に応じた処理が、通常よりも長い時間かかったために、ユーザがレスポンスを待ちきれずに処理を中断させたものとする。この場合、従来のように完了トランザクションのみを検出したのでは、「IIOP method1」の処理に長時間を要したという事例があることを検出できない。本実施の形態であれば、中断トランザクションを検出すれば、「IIOP method1」の処理に応じた処理に長時間を要した事例として、図8に示す中断トランザクションを検出できる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、サービス処理状況分析装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 複数のサーバが接続されたネットワークシステムのサービス処理状況分析をコンピュータに実行させるサービス処理状況分析プログラムであって、
前記コンピュータを、
ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納するメッセージ観測手段、
前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する中断検出手段、
トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、前記中断検出手段で検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成する部分モデル生成手段、
前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する部分トランザクション情報生成手段、
前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する中断トランザクション情報生成手段、
として機能させるサービス処理状況分析プログラム。
(付記2) 前記部分トランザクション情報生成手段は、前記中断処理リクエストメッセージの受け渡し時刻から前記中断メッセージの受け渡し時刻までの時間帯に受け渡されたリクエストメッセージを最初のメッセージとして前記部分トランザクション情報を生成することを特徴とする付記1記載のサービス処理状況分析プログラム。
(付記3) 前記部分モデル生成手段は、前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルが複数検出された場合、検出された複数の前記トランザクションモデルそれぞれの前記部分モデルを生成し、
前記部分トランザクション情報生成手段は、前記部分モデルが複数生成された場合、生成された複数の前記部分モデルのいずれかに適合する前記部分トランザクション情報を生成することを特徴とする付記1記載のサービス処理状況分析プログラム。
(付記4) 前記中断トランザクション情報生成手段は、中断した処理の時間帯が重複する複数の前記中断処理リクエストメッセージが検出され、複数の前記部分トランザクション情報が生成された場合、複数の前記中断処理トランザクションメッセージを受け渡し時刻に基づいて時系列に並べ、複数の前記部分トランザクション情報を最初のメッセージの受け渡し時刻に基づいて時系列に並べ、前記中断処理トランザクションメッセージと前記部分トランザクション情報とを時系列上の順番に沿って1つずつ結合していき、複数の前記中断トランザクション情報を生成することを特徴とする付記1記載のサービス処理状況分析プログラム。
(付記5) 前記コンピュータを、さらに、
前記モデル記憶手段に記憶されている前記トランザクションモデルと同様のメッセージの配列を構成する複数のメッセージを前記メッセージ記憶手段から抽出し、抽出したメッセージにより完了トランザクションを生成し、前記完了トランザクションを完了トランザクション情報記憶手段に格納する完了トランザクション情報生成手段として機能させることを特徴とする付記1記載のサービス処理状況分析プログラム。
(付記6) 前記部分トランザクション情報生成手段は、前記メッセージ記憶手段に格納されたメッセージのうち、前記完了トランザクション情報生成手段により生成された前記完了トランザクションに含まれていないメッセージによって前記部分トランザクション情報を生成することを特徴とする付記5記載の処理状況分析プログラム。
(付記7) 前記コンピュータを、さらに、
前記中断トランザクション情報記憶手段に記憶された前記中断トランザクション情報に基づいて、単位時間ごとの前記中断トランザクション数を集計し、集計結果を表示する分析手段として機能させることを特徴とする付記1記載の処理状況分析プログラム。
(付記8) 前記コンピュータを、さらに、
前記モデル記憶手段に記憶されている前記トランザクションモデルと同様のメッセージの配列を構成する複数のメッセージを前記メッセージ記憶手段から抽出し、抽出したメッセージにより完了トランザクションを生成し、前記完了トランザクションを完了トランザクション情報記憶手段に格納する完了トランザクション情報生成手段として機能させ、
前記分析手段は、前記中断トランザクション情報記憶手段に記憶された前記中断トランザクション情報に基づいて、単位時間ごとの前記中断トランザクション数を集計し、前記完了トランザクション情報記憶手段に記憶された前記完了トランザクションに基づいて、単位時間ごとの完了トランザクション数を集計し、前記中断トランザクション数と前記完了トランザクション数とを比較画像を表示する付記7記載の処理状況分析プログラム。
(付記9) 前記中断トランザクション情報生成手段は、前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報、前記中断処理リクエストメッセージ、および前記中断リクエストを結合して前記中断トランザクション情報を生成することを特徴とする付記1記載のサービス処理状況分析プログラム。
(付記10) 複数のサーバが接続されたネットワークシステムのサービス処理状況分析するサービス処理状況分析装置であって、
ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納するメッセージ観測手段と、
前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する中断検出手段と、
トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、前記中断検出手段で検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成する部分モデル生成手段と、
前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する部分トランザクション情報生成手段と、
前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する中断トランザクション情報生成手段と、
を有するサービス処理状況分析装置。
(付記11) 複数のサーバが接続されたネットワークシステムのサービス処理状況分析をコンピュータで実行するサービス処理状況分析方法であって、
前記コンピュータが、
ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納し、
前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出し、
トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成し、
前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成し、
生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する、
ことを特徴とするサービス処理状況分析方法。
実施の形態の概要を示す図である。 本実施の形態のシステム構成例を示す図である。 本実施の形態に用いるサービス処理状況分析装置のハードウェア構成例を示す図である。 サービス処理状況分析装置の機能を示すブロック図である。 モデル記憶部のデータ構造例を示す図である。 トランザクションモデルに定義された連係動作を示すシーケンス図である。 中断トランザクション判別処理の手順を示すフローチャートである。 中断されたトランザクションのシーケンス図である。 メッセージバッファ内のメッセージシーケンスを示す図である。 中断検出処理の手順を示すフローチャートである。 中断フラグが設定されたメッセージシーケンスを示す図である。 部分モデルを示す図である。 部分マッチングの概要を示す図である。 部分マッチング処理の手順を示すフローチャートである。 トランザクションモデルが一意に決定する場合の部分マッチング状況を示す図である。 トランザクションモデルが一意に決定できない場合の部分マッチング状況を示す図である。 全体マッチング後の部分シーケンスによる部分マッチング状況を示す図である。 中断処理が重複して発生した場合の部分マッチング状況を示す図である。 トランザクションの分析例を示す図である。
符号の説明
1 サービス処理状況分析装置
1a モデル記憶手段
1b メッセージ観測手段
1c メッセージ記憶手段
1d 中断検出手段
1e 部分モデル生成手段
1f 部分トランザクション情報生成手段
1g 中断トランザクション情報生成手段
1h 中断トランザクション情報記憶手段
2a クライアント
2b,2c,2d サーバ
3a,3b,3c ネットワーク

Claims (7)

  1. 複数のサーバが接続されたネットワークシステムのサービス処理状況分析をコンピュータに実行させるサービス処理状況分析プログラムであって、
    前記コンピュータを、
    ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納するメッセージ観測手段、
    前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する中断検出手段、
    トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、前記中断検出手段で検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成する部分モデル生成手段、
    前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する部分トランザクション情報生成手段、
    前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する中断トランザクション情報生成手段、
    として機能させるサービス処理状況分析プログラム。
  2. 前記部分トランザクション情報生成手段は、前記中断処理リクエストメッセージの受け渡し時刻から前記中断メッセージの受け渡し時刻までの時間帯に受け渡されたリクエストメッセージを最初のメッセージとして前記部分トランザクション情報を生成することを特徴とする請求項1記載のサービス処理状況分析プログラム。
  3. 前記部分モデル生成手段は、前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルが複数検出された場合、検出された複数の前記トランザクションモデルそれぞれの前記部分モデルを生成し、
    前記部分トランザクション情報生成手段は、前記部分モデルが複数生成された場合、生成された複数の前記部分モデルのいずれかに適合する前記部分トランザクション情報を生成することを特徴とする請求項1記載のサービス処理状況分析プログラム。
  4. 前記中断トランザクション情報生成手段は、中断した処理の時間帯が重複する複数の前記中断処理リクエストメッセージが検出され、複数の前記部分トランザクション情報が生成された場合、複数の前記中断処理リクエストメッセージを受け渡し時刻に基づいて時系列に並べ、複数の前記部分トランザクション情報を最初のメッセージの受け渡し時刻に基づいて時系列に並べ、前記中断処理リクエストメッセージと前記部分トランザクション情報とを時系列上の順番に沿って1つずつ結合していき、複数の前記中断トランザクション情報を生成することを特徴とする請求項1記載のサービス処理状況分析プログラム。
  5. 前記コンピュータを、さらに、
    前記モデル記憶手段に記憶されている前記トランザクションモデルと同様のメッセージの配列を構成する複数のメッセージを前記メッセージ記憶手段から抽出し、抽出したメッセージにより完了トランザクションを生成し、前記完了トランザクションを完了トランザクション情報記憶手段に格納する完了トランザクション情報生成手段として機能させることを特徴とする請求項1記載のサービス処理状況分析プログラム。
  6. 複数のサーバが接続されたネットワークシステムのサービス処理状況分析するサービス処理状況分析装置であって、
    ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納するメッセージ観測手段と、
    前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出する中断検出手段と、
    トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、前記中断検出手段で検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成する部分モデル生成手段と、
    前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、前記部分モデル生成手段で生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成する部分トランザクション情報生成手段と、
    前記部分トランザクション情報生成手段で生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する中断トランザクション情報生成手段と、
    を有するサービス処理状況分析装置。
  7. 複数のサーバが接続されたネットワークシステムのサービス処理状況分析をコンピュータで実行するサービス処理状況分析方法であって、
    前記コンピュータが、
    ネットワークを介して受け渡されるメッセージを収集し、収集したメッセージの情報をメッセージ記憶手段に格納し、
    前記メッセージ記憶手段に格納されたメッセージの情報から、処理の中断を要求する中断メッセージを検索し、前記中断メッセージで中断された処理のリクエストメッセージを中断処理リクエストメッセージとして検出し、
    トランザクションを実行する複数の処理において受け渡されるメッセージの配列を示すトランザクションモデルを記憶するモデル記憶手段を参照し、検出された前記中断処理リクエストメッセージと同じ内容のメッセージで開始される前記トランザクションモデルを検索し、検出した前記トランザクションモデルから前記中断処理リクエストメッセージと前記中断メッセージとに対応するメッセージを除いた部分モデルを生成し、
    前記メッセージ記憶手段内の前記中断処理リクエストメッセージより後に受け渡されたメッセージの中から、生成された前記部分モデルと同様のメッセージの配列を構成する複数のメッセージを抽出し、抽出した複数のメッセージにより部分トランザクション情報を生成し、
    生成された前記部分トランザクション情報と、少なくとも前記中断処理リクエストメッセージとを結合して中断トランザクション情報を生成し、生成した前記中断トランザクション情報を中断トランザクション情報記憶手段に格納する、
    ことを特徴とするサービス処理状況分析方法。
JP2008087607A 2008-03-28 2008-03-28 サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法 Expired - Fee Related JP5035068B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008087607A JP5035068B2 (ja) 2008-03-28 2008-03-28 サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法
US12/403,135 US20090248803A1 (en) 2008-03-28 2009-03-12 Apparatus and method of analyzing service processing status
GB0904363.9A GB2463952B (en) 2008-03-28 2009-03-13 Apparatus and method of analyzing service processing status

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008087607A JP5035068B2 (ja) 2008-03-28 2008-03-28 サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法

Publications (2)

Publication Number Publication Date
JP2009244948A JP2009244948A (ja) 2009-10-22
JP5035068B2 true JP5035068B2 (ja) 2012-09-26

Family

ID=40637306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008087607A Expired - Fee Related JP5035068B2 (ja) 2008-03-28 2008-03-28 サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法

Country Status (3)

Country Link
US (1) US20090248803A1 (ja)
JP (1) JP5035068B2 (ja)
GB (1) GB2463952B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5287703B2 (ja) * 2009-12-25 2013-09-11 富士通株式会社 メッセージ判別プログラム、メッセージ判別装置及びメッセージ判別方法
US8645814B2 (en) * 2010-01-08 2014-02-04 Yahoo! Inc. System and method for displaying status of electronic messages
JP5482243B2 (ja) * 2010-01-29 2014-05-07 富士通株式会社 系列生成プログラム、系列生成方法、および系列生成装置
JP5733103B2 (ja) * 2011-08-22 2015-06-10 富士通株式会社 分析装置、分析方法、及び分析方法
US20170019253A1 (en) * 2011-12-12 2017-01-19 International Business Machines Corporation Decrypting segmented data in a distributed computing system
JP5942675B2 (ja) * 2012-07-31 2016-06-29 富士通株式会社 トランザクションデータ採取方法、トランザクションデータ採取プログラム、および情報処理装置
WO2016099482A1 (en) * 2014-12-17 2016-06-23 Hewlett Packard Enterprise Development Lp Evaluating performance of applications utilizing user emotional state penalties
US9929955B2 (en) * 2014-12-17 2018-03-27 International Business Machines Corporation Local session loopback protocol
US10613919B1 (en) 2019-10-28 2020-04-07 Capital One Services, Llc System and method for data error notification in interconnected data production systems
CN112994916B (zh) * 2019-12-17 2024-05-24 中兴通讯股份有限公司 业务状态分析方法、服务器及存储介质
CN111596830B (zh) * 2020-05-15 2023-09-05 腾讯科技(深圳)有限公司 消息提醒方法及装置
CN113095840A (zh) * 2021-04-30 2021-07-09 中国银行股份有限公司 一种分布式交易暂挂续作的方法、装置及设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237568A (en) * 1990-01-30 1993-08-17 Johnson Service Company Network control system with improved priority protocol
US5224095A (en) * 1990-01-30 1993-06-29 Johnson Service Company Network control system and method
US5243595A (en) * 1990-01-30 1993-09-07 Johnson Service Company Combined connectionless and connection-oriented network control system
JPH098804A (ja) * 1995-06-16 1997-01-10 Fujitsu Ltd 端末管理方法及び管理端末装置及び通信端末装置
US6068661A (en) * 1997-10-01 2000-05-30 Micron Electronics, Inc. Method of emulating synchronous communication
JP4114315B2 (ja) * 2000-11-14 2008-07-09 富士ゼロックス株式会社 画像処理装置
US20020099851A1 (en) * 2001-01-22 2002-07-25 Shah Hemal V. Decoupling TCP/IP processing in system area networks
US7392282B2 (en) * 2001-03-14 2008-06-24 International Business Machines Corporation Method for ensuring client access to messages from a server
US6816455B2 (en) * 2001-05-09 2004-11-09 Telecom Italia S.P.A. Dynamic packet filter utilizing session tracking
JP2002351702A (ja) * 2001-05-25 2002-12-06 Nec Soft Ltd オンライン利用の端末稼働統計データ作成方法及び装置
US6981264B1 (en) * 2002-01-17 2005-12-27 Unisys Corporation Method for handling multiple program exceptions across heterogeneous systems
JP4610240B2 (ja) * 2004-06-24 2011-01-12 富士通株式会社 分析プログラム、分析方法及び分析装置
JP4627669B2 (ja) * 2005-03-16 2011-02-09 アラクサラネットワークス株式会社 パケット転送装置およびその転送制御方式
US8214844B2 (en) * 2005-04-29 2012-07-03 Hewlett-Packard Development Company, L.P. Systems and methods for adjusting service queue capacity
JP4549231B2 (ja) * 2005-05-17 2010-09-22 富士通株式会社 サービス処理状況分析プログラム、サービス処理状況分析方法、およびサービス処理状況分析装置
JP4570527B2 (ja) * 2005-07-20 2010-10-27 富士通株式会社 システム性能監視プログラム及びシステム性能監視方法
DE102005046253A1 (de) * 2005-09-27 2007-04-05 Nec Europe Ltd. Verfahren zum Steuern und Überwachen der Qualität eines Dienstes
US8145746B1 (en) * 2007-02-09 2012-03-27 Juniper Networks, Inc. Using the TCP window size for identifying packets and debugging
JP5045636B2 (ja) * 2008-10-08 2012-10-10 コニカミノルタビジネステクノロジーズ株式会社 管理システム及び管理方法並びに制御プログラム
WO2011102312A1 (ja) * 2010-02-16 2011-08-25 日本電気株式会社 パケット転送装置、通信システム、処理規則の更新方法およびプログラム
KR20120025176A (ko) * 2010-09-07 2012-03-15 삼성전자주식회사 모바일 단말기의 데이터 사용량을 제어하는 방법 및 장치
US8396842B2 (en) * 2011-03-21 2013-03-12 International Business Machines Corporation Externalized data validation engine
US20130007369A1 (en) * 2011-06-29 2013-01-03 International Business Machines Corporation Transparent Cache for Mobile Users
US20130024523A1 (en) * 2011-07-22 2013-01-24 Telefonaktiebolaget L M Ericsson (Publ) System and method for flow termination of a tcp session
US8813074B2 (en) * 2011-08-05 2014-08-19 Vmware, Inc. Detecting and correcting network interruptions using network address translation
US8937880B2 (en) * 2012-05-09 2015-01-20 Telefonaktiebolaget L M Ericsson (Publ) System and method for managing state transitions in a wireless communications network

Also Published As

Publication number Publication date
JP2009244948A (ja) 2009-10-22
GB0904363D0 (en) 2009-04-29
GB2463952B (en) 2012-07-18
US20090248803A1 (en) 2009-10-01
GB2463952A (en) 2010-04-07

Similar Documents

Publication Publication Date Title
JP5035068B2 (ja) サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法
US7873594B2 (en) System analysis program, system analysis method, and system analysis apparatus
US7805510B2 (en) Hierarchy for characterizing interactions with an application
EP3616064A1 (en) Systems and methods for networked microservice modeling and visualization
US9582550B2 (en) Information processing apparatus and method for determining time correction values
KR100804671B1 (ko) 응답 지연 제거를 위한 로컬 단말기 검색 시스템 및 방법
JP5298717B2 (ja) 特徴抽出方法及び装置
US20220141188A1 (en) Network Security Selective Anomaly Alerting
JP2007166453A (ja) パケットデータ解析プログラム、パケットデータ解析装置、パケットデータ解析方法
US11792157B1 (en) Detection of DNS beaconing through time-to-live and transmission analyses
US11604789B1 (en) Bi-directional query updates in a user interface
US8775484B2 (en) Data management apparatus and method
US7991827B1 (en) Network analysis system and method utilizing collected metadata
US8230002B2 (en) Method and system for automatic setup in web-based applications
JP4734454B2 (ja) システム分析プログラム、システム分析方法およびシステム分析装置
US11949547B2 (en) Enhanced simple network management protocol (SNMP) connector
US11915044B2 (en) Distributed task assignment in a cluster computing system
US20200296189A1 (en) Packet analysis apparatus, packet analysis method, and storage medium
JP2010097285A (ja) システム分析支援プログラム、システム分析支援装置、およびシステム分析支援方法
JP5440164B2 (ja) 分析プログラム、及び制御プログラム
JP5686001B2 (ja) 情報処理装置、メッセージ切分け方法およびメッセージ切分けプログラム
CN107330089B (zh) 跨网络结构化数据收集系统
US11675771B1 (en) Identity resolution
JP2006092358A (ja) トレースデータの採取方法、採取プログラム、およびその採取装置
JP2005157727A (ja) ログ処理方法及びその処理プログラム並びに実施システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120523

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120618

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees