JP4093483B2 - 解析システム、解析方法、解析プログラム、及び記録媒体 - Google Patents

解析システム、解析方法、解析プログラム、及び記録媒体 Download PDF

Info

Publication number
JP4093483B2
JP4093483B2 JP2003432337A JP2003432337A JP4093483B2 JP 4093483 B2 JP4093483 B2 JP 4093483B2 JP 2003432337 A JP2003432337 A JP 2003432337A JP 2003432337 A JP2003432337 A JP 2003432337A JP 4093483 B2 JP4093483 B2 JP 4093483B2
Authority
JP
Japan
Prior art keywords
transaction
service
call
server
child
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
JP2003432337A
Other languages
English (en)
Other versions
JP2005190277A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2003432337A priority Critical patent/JP4093483B2/ja
Priority to US11/019,879 priority patent/US7493361B2/en
Publication of JP2005190277A publication Critical patent/JP2005190277A/ja
Application granted granted Critical
Publication of JP4093483B2 publication Critical patent/JP4093483B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、解析システム、解析方法、解析プログラム、及び記録媒体に関する。特に、本発明は、コンピュータシステムの動作を解析する解析システム、解析方法、解析プログラム、及び記録媒体に関する。
近年、インターネット等のネットワークの普及に伴い、ワールド・ワイド・ウェブ(WWW)システムが広く用いられるようになってきている。かつて、WWWシステムにおけるウェブサイトは、ウェブページの表示又は閲覧者との簡単なコミュニケーションのみを行っていたので、ウェブサーバのみによって構成されていることが多かった。しかしながら、近年、ウェブサイトが企業等の基幹業務に用いられる機会が増えており、ウェブサーバ、データベースサーバ、又はアプリケーションサーバ等の様々なサーバがネットワークに接続されて協調してウェブサイトとして機能するようになってきている。
このように、ウェブサイトの構成が複雑になると、ウェブサイトの運営に何らかの不具合が発生した場合に、障害の発生したサーバを特定するのが困難になる。また、障害が発生した場合であってもウェブサイトの運営を継続する目的で、サーバを冗長に設けておく場合もあり、この場合には障害の解析が一層困難になる。一例として、ネットワーク内には、複数のDNS(Domain Name System)サーバが設けられている場合がある。例えば、サーバは、プライマリDNSサーバに問い合わせることができない場合に、セカンダリDNSサーバに問い合わせることにより、所望のIPアドレスを取得することができる。このような場合には、プライマリDNSサーバに発生した障害が見過ごされてしまう場合がある。
従来、ネットワーク内の障害の検出・解析の手法として、ネットワークを流れるパケットを監視し、又は、ルータ等のネットワーク機器から通信に関する情報を取得することにより、ネットワーク機器間の通信を解析する技術が用いられている(非特許文献1、非特許文献2参照。)。この技術によると、OSI階層モデルにおける物理層、データリンク層、又はネットワーク層における通信の状態を解析できる。しかしながら、これらの技術によると、アプリケーション層における処理の状況を検出できないので、各サーバプログラムが提供するサービスが相互に依存する関係を解析することは困難である。
例えば、一般的に、障害が発生していない場合であっても、ネットワークを流れるパケットの量は、例えば周期的に増減する。サーバプログラム等に障害が発生した場合には、ネットワークを流れるパケットの量は変化するが、この周期的な増減と区別するのは困難である。また、ネットワークには様々な目的で多量のパケットが流れており、障害により変化したパケットの量が僅かな場合には、障害の発生を検出できない場合もある。例えば、上記のDNSサーバが、多数のサーバプログラムから問い合わせを受けている場合には、特定のサーバプログラムからの問い合わせのみに発生した障害を検出するのは困難である。
これに対して、従来、アプリケーション層における処理の状況を検出・解析する技術が提案されている。例えば、ネットワークで各サーバが互いに接続される接続トポロジーと、各サーバで動作するサーバプログラムの設定ファイルとに基づいて、各サーバプログラムの障害が影響を与え得る他のサーバプログラムを検出する技術が用いられる(特許文献1参照。)。また、J2EE(Java 2 Enterprise Edition)(Javaは登録商標)により構築されたシステムにおいて、各サーバプログラムが他のサーバプログラムに与える影響を解析する技術が用いられている(非特許文献3参照。)。また、複数のサーバプログラムが互いにサービスを呼び出したログを蓄積して、サービスの呼び出し同士が相互に依存する関係を解析する技術が用いられている(非特許文献4参照。)。
特開平11−259331号公報 Network Node Manager.[online]、[平成15年12月22日検索]インターネット<URL:http://www.jpn.hp.com/openview/lineup/network/nnm/> Systemwalker Network Topology Manager [online]、[平成15年12月22日検索]インターネット<URL:http://systemwalker.fujitsu.com/jp/net topology/function/> J2EE パフォーマンス診断ツール。[online]、[平成15年12月22日検索]インターネット<URL:http://www.grapecity.com/japan/support/database/P2_203.htm> "Discovering Dynamic Dependencies in Enterprise Environments for Problem Determination,"Manish Gupta et al, 14th IFIP/IEEE Workshop on Distributed Systems: Operations and Management
しかしながら、特許文献1の技術は、複数のサーバプログラムが互いに与え得る影響を静的に解析するのみであり、ネットワークで実際に行われる通信に関する情報を動的に解析することは困難である。更に、この技術は、サーバプログラムの詳細な実装方法が非公開な場合には、サーバプログラムの設定ファイルの内容が不明なので、依存関係を適切に解析できない。また、非特許文献3の技術は、J2EEにより構築されたシステムに対してのみ適用可能であり、一般のネットワークに適用するのは困難である。また、非特許文献4の技術は、サービスを呼び出す処理であるトランザクション同士が依存する関係を解析できるが、各サービスが他の各サービスから呼び出される頻度を求めることができない。
そこで本発明は、上記の課題を解決することのできる解析システム、解析方法、解析プログラム、及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
上記課題を解決するために、本発明の第1の形態においては、互いにサービスを提供する複数のサーバプログラムの各々が、ネットワークにより互いに接続されたサーバ装置の各々で動作しているコンピュータシステムにおいて、サーバプログラム間の依存関係を解析する解析システムであって、複数のサーバプログラムの各々が他の何れかのサーバプログラムから呼び出されて行ったサービスの処理であるトランザクションを、当該サービスに対応付けて検出するトランザクション検出部と、トランザクション検出部により検出された各トランザクションについて、当該トランザクションにおいて呼び出される他のトランザクションである子トランザクションの候補を検出する子トランザクション候補検出部と、各トランザクションに対応付けて検出したサービスと、当該トランザクションの子トランザクションの候補に対応付けて検出したサービスとに基づいて、各サーバプログラムが他のサーバプログラムの各々を呼び出してサービスを行わせる頻度を推定したサービス呼出頻度を算出して出力する呼出頻度算出部とを備え、トランザクション検出部は、コンピュータシステム内でトランザクションの呼び出しに用いられる通信用パケットをネットワークから検出してトランザクションを検出し、検出したトランザクションの各々に対応付けて、検出した当該通信用パケットの発信元IPアドレス及び宛先IPアドレスを、当該トランザクションの呼出元及び呼出先の前記サービスに対応するサーバ装置の識別情報として検出し、子トランザクション候補検出部は、トランザクション検出部により検出された各トランザクションについて、当該トランザクションの呼出先のサービスに対応するサーバ装置の識別情報を呼出元のサービスに対応するサーバ装置の識別情報とする他の各々のトランザクションを、子トランザクションの候補として検出する解析システム、解析方法、解析プログラム、及び解析プログラムを記録した記録媒体を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。

本発明によれば、ネットワーク上の各サービスが相互に依存する関係を検出・解析することができる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、コンピュータシステム10のブロック図を示す。コンピュータシステム10は、ルータ45と、ネットワーク20により互いに接続され各々がサーバ装置の一例である、解析システム30と、ディスパッチャ50と、ウェブサーバ60と、ウェブサーバ70と、データベースサーバ80とを備える。ディスパッチャ50は、ウェブページの表示等の要求をクライアント装置40から受けて、ウェブサーバ60及びウェブサーバ70の何れかに送る。ウェブサーバ60は、ディスパッチャ50から受けた要求に応じてウェブページの表示等の処理を行うHTTPサーバプログラム62と、表示するべき情報を生成するアプリケーションサーバプログラム64とを有する。同様に、ウェブサーバ70は、HTTPサーバプログラム72と、アプリケーションサーバプログラム74とを有する。例えば、ウェブサーバ60又はウェブサーバ70は、クライアント装置40から入力を受けたデータをデータベースサーバ80に格納してもよいし、データベースサーバ80から取得したデータをクライアント装置40に返信して表示してもよい。
解析システム30は、コンピュータシステム10における各サーバ上で動作する各サーバプログラムが互いに他のサーバプログラムを呼び出す頻度を解析すると共に、サーバプログラムの障害を検出することを目的とする。
図2は、サーバプログラムが他のサーバプログラムを呼び出す処理の概念図を示す。本図において、丸印はトランザクションを示す。各トランザクションを、丸印内の数を用いて、第1トランザクションから第10トランザクションと呼ぶ。また、丸印に付された符号は、サービスの種類を示す。例えば、符号A、符号B、及び符号Cの各々は、それぞれ、HTTPサービス、アプリケーションサービス、及びデータベースサービスの何れかに該当する。
ここで、サービスとは、サーバプログラムが他のサーバプログラムのために必要なデータ等を生成する処理をいう。そこで、以降の説明において、サービスを、サービスの呼出元のサーバのIPアドレス、サービスの呼出先のサーバのIPアドレス、及びサービスの種類の組として取り扱う。また、トランザクションとは、サーバプログラムが他のサーバプログラムから実際に呼び出されて行ったサービスの処理をいい、一例としては、所定のサービスを要求するTCPのトランザクションである。以降の説明において、トランザクションを、そのトランザクションの開始時刻、そのトランザクションの終了時刻、及びそのトランザクションにより処理されるサービスの組として取り扱う。
また、トランザクションを相互に結ぶ矢印は、矢印の先に位置するトランザクションが、矢印の元に位置するトランザクションにおいて呼び出された子トランザクションである旨を示している。例えば、第2トランザクションは、サービスAを処理し、サービスAの処理中にサービスCを第5トランザクションとして呼び出し、サービスAの処理中にサービスBを第6トランザクションとして呼び出す。また、呼び出しとは、例えば、サービスを処理させて処理結果を返送させる指示をいい、具体的には、HTTP(Hyper Text Transfer Protocol)のリクエスト、DNSにおけるIPアドレス等の問い合わせ、又はデータベースサービスへのクエリ等である。
更に、本図は、矢印の元に位置するトランザクションの処理が、矢印の先に位置するトランザクションの処理結果に依存することを示していると見ることもできる。即ち、あるトランザクションが他のトランザクションを呼び出すとは、あるトランザクションが他のトランザクションの処理結果を取得しなければそのトランザクションを完了できないことであってもよい。
また、あるトランザクションを呼び出す他のトランザクションを、そのトランザクションの親トランザクションと呼ぶ。例えば、第2トランザクションは、第5及び第6トランザクションの親トランザクションである。同様にあるサービスを処理するトランザクションを呼び出した他のサービスを、そのサービスの親サービスと呼ぶ。また、第2から第4トランザクションは、コンピュータシステム10内の何れのサービスからも呼び出しを受けずに開始されるが、解析を容易にするために、第1トランザクションを、第2から第4トランザクションを呼び出す仮想的な親トランザクションとする。即ち、第1トランザクションは、何らサービスを処理しない仮想的なトランザクションである。
本図においては、各トランザクションの処理において呼び出される他のトランザクションと、これらのトランザクションにより処理されるサービスとが正確に解析されている。しかしながら、全てのトランザクションの処理内容を具体的に解析することなく、各トランザクションの処理において他の何れのトランザクションが呼び出されたかを検出するのは困難である。以降の実施例において、解析システム30が、各サーバプログラムが他のサーバプログラムの各々を呼び出してサービスを行わせる頻度を推定したサービス呼出頻度を算出する処理を説明する。
図3は、解析システム30のブロック図を示す。解析システム30は、トランザクション検出部300と、子トランザクション候補検出部310と、トランザクション呼出確率算出部320と、サービス呼出確率値算出部330と、呼出頻度算出部340とを有する。トランザクション検出部300は、コンピュータシステム10内でトランザクションの呼び出しに用いられる通信用パケットをネットワーク20から検出することにより、各トランザクションをそのトランザクションにより処理されるサービスに対応付けて検出する。例えば、トランザクション検出部300は、検出した当該通信用パケットの宛先ポート番号により識別されるサービスを、当該トランザクションに対応付けられたサービスとして検出する。
また、通信用パケット検出の具体的処理としては、トランザクション検出部300は、ネットワーク20を流れる通信用パケットを直接検出してもよいし、各サーバが受信した通信用パケットの内容をそのサーバにおいてログとして記録させておき、そのログを収集してもよい。この際、トランザクション検出部300は、予め定められた期間内に受信した通信用パケットを定期的に検出してもよいし、コンピュータシステム10の全体でなく予め定められた範囲内のみから通信用パケットを受信してもよい。
子トランザクション候補検出部310は、トランザクション検出部300により検出された各トランザクションについて、そのトランザクションの子トランザクションの候補を検出する。具体的には、子トランザクション候補検出部310は、各トランザクションについて、そのトランザクションの呼出先のサーバ装置を呼出元とし、かつそのトランザクションの開始時刻より後に開始しかつ終了時刻に先立って終了した他のトランザクションを、そのトランザクションの子トランザクションの候補として検出する。そして、子トランザクション候補検出部310は、各トランザクションについての子トランザクションの候補の検出結果を呼出頻度算出部340に送る。
また、トランザクション検出部300が、第1のトランザクションと、当該第1のトランザクションより後に開始しかつ先に終了する第2のトランザクションと、第1のトランザクション及び第2のトランザクションの何れよりも後に開始しかつ何れよりも先に終了する第3のトランザクションとを検出した場合には、子トランザクション候補検出部310は、第3のトランザクションを、第2のトランザクションの子トランザクションの候補として検出し、第1のトランザクションの子トランザクションの候補から除外する。そして、子トランザクション候補検出部310は、この除外の処理を行った場合における、各トランザクションについての子トランザクションの候補の検出結果を、トランザクション呼出確率算出部320に送る。
図4は、各トランザクションについて子トランザクション候補検出部310が検出した子トランザクションの候補をDAG(Directed Acyclic Graph)として示す。図2と異なり、実際の子トランザクションを正確に検出することはできないが、子トランザクション候補検出部310が検出した子トランザクションの候補は、図2に示す子トランザクションを含んでいる。
続いて、トランザクション呼出確率算出部320は、各サーバプログラムが他のサーバプログラムの各々から呼び出される確率の候補値であるサービス呼出確率値と、子トランザクション候補検出部310により検出された子トランザクションとに基づいて、各トランザクションが複数のサーバプログラムの各々から呼び出された確率であるトランザクション呼出確率値を算出する。このサービス呼出確率値は、トランザクション呼出確率値を初めて算出する場合には予め定められおり、トランザクション呼出確率値を2回目以降に算出する場合には後述のサービス呼出確率値算出部330により算出される。
そして、サービス呼出確率値算出部330は、同一のサービスを処理する各トランザクションについてのトランザクション呼出確率値に基づいて、他のサービス呼出確率値を算出する。続いて、呼出頻度算出部340は、サービス呼出確率値算出部330により算出されたサービス呼出確率値を取得し、取得したサービス呼出確率値に基づいて更にトランザクション呼出確率算出部320により他のトランザクション呼出確率値を算出させる処理を繰り返す。
そして、呼出頻度算出部340は、繰り返しの前で算出されたサービス呼出確率値及び繰り返しの後で算出されたサービス呼出確率値の差が予め定められた範囲内に収束した場合に、収束した当該サービス呼出確率値に基づいて、サービス呼出頻度を算出して出力する。更に、呼出頻度算出部340は、算出したサービス呼出頻度と、子トランザクション候補検出部310から受け取った子トランザクションの候補の検出結果とに基づいて、予め定められた起点サービスが呼び出された結果他のサービスが連鎖的に順次呼び出された場合におけるサービス呼出頻度を算出して出力する。
図5は、解析システム30がサーバプログラム間の依存関係を解析する処理の動作フローを示す。トランザクション検出部300は、トランザクション検出部300は、コンピュータシステム10内でトランザクションの呼び出しに用いられる通信用パケットをネットワーク20から検出することにより、トランザクションを検出する(S500)。この際、トランザクション検出部300は、検出した当該通信用パケットの宛先ポート番号により識別されるサービスを、当該トランザクションに対応付けられたサービスとして検出する。また、トランザクション検出部300は、当該トランザクションの呼出元及び呼出先のサーバ装置の識別情報として、検出した当該通信用パケットの発信元IPアドレス及び宛先IPアドレスを検出する。更に、トランザクション検出部300は、トランザクションの各々に対応付けて、そのトランザクションの開始時刻及び終了時刻を検出する。
子トランザクション候補検出部310は、トランザクション検出部300により検出された各トランザクションについて、そのトランザクションの子トランザクションの候補を検出する(S510)。具体的には、子トランザクション候補検出部310は、各トランザクションについて、そのトランザクションの呼出先のサーバ装置を呼出元とし、かつそのトランザクションの開始時刻より後に開始しかつ終了時刻に先立って終了した他のトランザクションを、そのトランザクションの子トランザクションの候補として検出する。
この処理において、トランザクション検出部300が、第1のトランザクションと、当該第1のトランザクションより後に開始しかつ先に終了する第2のトランザクションと、第1のトランザクション及び第2のトランザクションの何れよりも後に開始しかつ何れよりも先に終了する第3のトランザクションとを検出した場合には、子トランザクション候補検出部310は、第3のトランザクションを、第2のトランザクションの子トランザクションの候補として検出する。そして、子トランザクション候補検出部310は、第3のトランザクションを、第1のトランザクションの子トランザクションの候補から除外する。これにより、処理時間が他より長いトランザクションが他の全てのトランザクションの親トランザクションと推定され推定結果が現実的でなくなることを防止することができる。
続いて、トランザクション呼出確率算出部320、サービス呼出確率値算出部330、及び呼出頻度算出部340により、図4に示す子トランザクションの候補に基づいて、サービス呼出頻度を最尤推定する。具体的には、サービス呼出頻度ρ(sp|sc)が以下の式(1)に示す確率モデルに従うと仮定し、この確率モデルを推定する。この式において、Pr(A|B)は、条件Bが成立する場合における条件Aが成立する条件付確率を示し、Sは、コンピュータシステム10において呼び出されたサービスの集合を示す。
Figure 0004093483
以降、処理の詳細を説明する。まず、トランザクション呼出確率算出部320は、サービス呼出確率値と、子トランザクション候補検出部310により検出された各トランザクションについての子トランザクションとに基づいて、各トランザクションが複数のサーバプログラムの各々から呼び出された確率であるトランザクション呼出確率値を算出する(S520)。ここで、サービス呼出確率値は、予め定められた初期値に設定されている。例えば、ρ(・|・)=1/|S|に設定されている。トランザクション呼出確率算出部320がトランザクション呼出確率を算出する処理は、サービス呼出候補値を用いて、以下の式(2)で表される。
但し、トランザクション呼出確率の一例として、トランザクションtの親トランザクションのサービスがspである確率を、η(sp|t)と表す。また、p(t)は、トランザクションtの親トランザクションの候補を示し、P(t)は、トランザクションtの親トランザクションの候補の集合を示す。また、serv(t)は、トランザクションtにより処理されるサービスを示す。そして、Serv(P(t))は、P(t)のサービスを重複無く列挙した集合を示す。
Figure 0004093483
そして、サービス呼出確率値算出部330は、同一のサービスを処理する各トランザクションについてのトランザクション呼出確率値に基づいて、初期値とは異なる他のサービス呼出確率値を算出する(S530)。この処理は、以下の式(3)で表される。ここで、トランザクション検出部300により検出されたトランザクションのうち、あるサービスsを処理するトランザクションの数を、#(s)と表す。
Figure 0004093483
そして、呼出頻度算出部340は、繰り返しの前で算出されたサービス呼出確率値及び繰り返しの後で算出されたサービス呼出確率値を比較する(S540)。即ち、呼出頻度算出部340は、S520の処理に先立って予め定まっていたサービス呼出確率値と、S530の処理により算出されたサービス呼出確率値とを比較する。これらのサービス呼出確率値の差が予め定められた範囲内に収束していない場合に(S540:NO)、呼出頻度算出部340は、S520に処理を戻して、サービス呼出確率値に基づいて更にトランザクション呼出確率算出部320により他のトランザクション呼出確率値を算出させる処理を繰り返す。
一方、これらのサービス呼出確率値の差が予め定められた範囲内に収束した場合に(S540:YES)、呼出頻度算出部340は、収束したサービス呼出確率値に基づいて、サービス呼出頻度を算出して出力する(S550)。更に、呼出頻度算出部340は、サービス呼出頻度に基づく情報を視覚化して出力する(S560)。
図6は、解析システム30がサービス呼出頻度に基づいて出力する情報の一例を示す。図6(a)は、図1に対応しており、各サーバプログラムが他のサーバプログラムを呼び出して行わせるサービスを示している。例えば、ディスパッチャ50上で動作するサーバプログラムがウェブサーバ60上で動作するHTTPサーバプログラム62を呼び出して行わせるサービスを、サービス3と呼ぶ。
図6(b)は、呼出頻度算出部340が出力するサービス呼出頻度を示す。例えば、呼出頻度算出部340は、サービス7が、サービス1、サービス3、及びサービス4の各々から呼び出されるサービス呼出頻度として、14.36、78.73、及び114.89を出力する。例えば、データベースサーバ80で動作するサーバプログラムは、HTTPサーバプログラム72から呼び出されたアプリケーションサーバプログラム64から頻繁に呼び出されると推定される。また、データベースサーバ80で動作するサーバプログラムは、ディスパッチャ50から呼び出されたHTTPサーバプログラム62から頻繁に呼び出されると推定される。即ちこの場合、データベースサーバ80は、ウェブサーバ70よりもウェブサーバ60から頻繁に呼び出されていることが分かる。
また、呼出頻度算出部340は、サービス4がサービス2から呼び出されるサービス呼出頻度として7.82を算出し、サービス5がサービス3から呼び出されるサービス呼出頻度として5.65を算出する。これにより、アプリケーションサーバプログラム64及びアプリケーションサーバプログラム74は、それぞれHTTPサーバプログラム72及びアプリケーションサーバプログラム64から頻繁に呼び出されることが分かる。
呼出頻度算出部340は、本図に示すサービス呼出頻度を、例えば定期的に算出して記録する。そして、呼出頻度算出部340は、算出したサービス呼出頻度の何れかが、予め定められた基準値と比較して予め定められた差分値以上相違している場合に、当該サービス呼出頻度が基準値と相違している旨を更に出力する。この基準値は、過去の正常動作していた場合におけるサービス呼出頻度であってもよい。また、これに代えて、呼出頻度算出部340は、あるサーバプログラムが他のサーバプログラムの何れかから呼び出される頻度が、所定の基準頻度と相違した場合に、その旨を出力してもよい。更に、呼出頻度算出部340は、あるサーバプログラムが1回呼び出される毎に他のサーバプログラムの各々を呼び出す頻度が、所定の基準頻度と相違した場合に、その旨を出力してもよい。
また、出力例としては、呼出頻度算出部340は、図6(a)に示すように、各サーバプログラムが他のサーバプログラムを呼び出して行わせるサービスを矢印として利用者に表示し、サービス呼出頻度が基準値と相違したサービスを示す矢印のみを点滅して表示してもよい。また、呼出頻度算出部340は、サービス呼出頻度が基準値と相違した旨の警報を表示してもよいし、その旨の音声を出力してもよい。
図7は、解析システム30がサービス呼出頻度に基づいて出力する情報の他の例を示す。図7(a)は、コンピュータシステム10における全てのサービスについてのサービス呼出頻度を示す。本図の矩形領域は、サーバプログラムを示す。そして、矩形領域内の数値は、サーバプログラムが、他の各々のサーバプログラムから1回呼び出される毎に、更に他のサーバプログラムを呼び出す回数の推定値を示す。この推定値は、以下の式(4)により求められる。ここで、式(4)における#(sp, sc)は、サービス呼出頻度の一例であり、あるサービスspの処理においてサービスscが呼び出された回数である(式(5))。
Figure 0004093483
Figure 0004093483
一例として、呼出頻度算出部340は、サーバプログラム700がコンピュータシステム10外のクライアントプログラム710から1回呼び出される毎に、サーバプログラム730を呼び出す回数として、0.5回を算出して出力する。一方、呼出頻度算出部340は、サーバプログラム700がクライアントプログラム720から1回呼び出される毎に、アプリケーションサーバプログラム740を呼び出す回数として、0.6回を算出して出力する。
また、本図の矢印は、各サーバプログラムが他のサーバプログラムを呼び出す呼出関係を示す。また、矢印に付した数値は、サービス呼出頻度を示す。例えば、呼出頻度算出部340は、サーバプログラム700がクライアントプログラム710から呼び出されるサービス呼出頻度が20回である旨を出力する。一方、呼出頻度算出部340は、サーバプログラム700がクライアントプログラム720から呼び出されるサービス呼出頻度が10回である旨を出力する。
このように、呼出頻度算出部340は、サービス呼出頻度又はこれに基づく情報を、各サービスの呼出関係に対応付けて視覚化することができる。
なお、本図において、呼出頻度算出部340は、コンピュータシステム10の外部における複数のサーバプログラムを代表して、2つのサーバプログラム(ClientA及びClientB)として表示している。これに代えて、呼出頻度算出部340は、コンピュータシステム10の外部における全てのサーバプログラムを代表して1つのサーバプログラムとして表示してもよい。この場合、トランザクション検出部300は、コンピュータシステム10内の各サーバプログラムが外部の何れのサーバプログラムから呼び出されてトランザクションを行った場合であっても、当該トランザクションの呼出元の識別情報として同一の識別情報を検出しておけばよい。
図7(b)は、コンピュータシステム10において起点サービスが呼び出された場合におけるサービス呼出頻度を示す。具体的には、呼出頻度算出部340は、クライアントプログラム710のサーバプログラム700に対する呼出を示す矢印(点線で示す)を、利用者から選択された場合に、その呼出により他のサーバプログラムが連鎖的に順次呼び出された場合におけるサービス呼出頻度を算出して表示する。サービス呼出頻度を算出するこの処理の詳細を説明する。
まず、説明の前提として、以下のパラメータを定義する。起点サービスs0が呼び出された場合においてサービスsが呼び出された回数を、以下の式(6)で表す。また、起点サービスs0が呼び出された場合における、サービスspの処理においてサービスscが呼び出された回数を、式(7)で表す。更に、起点サービスs0が呼び出された場合において、サービスspが呼び出される毎にサービスscが呼び出される回数を、式(8)で表す。
Figure 0004093483
Figure 0004093483
Figure 0004093483
呼出頻度算出部340は、これらのパラメータを算出するべく以下の処理を行う。まず、呼出頻度算出部340は、起点サービスs0が1回呼び出された場合において、その呼出の結果他のトランザクションが連鎖的に順次呼び出された場合における、各トランザクションtの呼出頻度を、式(9)により算出する。但し、トランザクションt自体のサービスが起点サービスs0である場合の式(9)の値を1とする。ここで、呼出頻度算出部340は、まず、親トランザクションについての当該呼出頻度を算出し、続いて子トランザクションについての当該呼出頻度を順次算出する。具体的には、呼出頻度算出部340は、各トランザクションのついての子トランザクションの候補を示すDAG構造のデータを予めトポロジカルソート(位相配列)しておき、その配列順序に従って当該呼出頻度を順次算出してもよい。
Figure 0004093483
この処理において、各トランザクションのついての子トランザクションの候補とは、当該トランザクションの呼出先のサーバ装置を呼出元とし、かつ当該トランザクションの開始時刻より後に開始しかつ終了時刻に先立って終了した他のトランザクションである。従って、第1のトランザクションと、当該第1のトランザクションより後に開始しかつ先に終了する第2のトランザクションと、第1のトランザクション及び第2のトランザクションの何れよりも後に開始しかつ何れよりも先に終了する第3のトランザクションとが検出された場合は、第2のトランザクション及び第3のトランザクションの双方が、第1のトランザクションの子トランザクションである。
これに代えて、呼出頻度算出部340は、当該第3のトランザクションを、当該第2のトランザクションの子トランザクションの候補として扱い、当該第3のトランザクションを、当該第1のトランザクションの子トランザクションの候補から除外して扱ってもよい。
そして、呼出頻度算出部340は、起点サービスs0が1回呼び出された場合において、その呼出から派生した呼出により親サービスspからトランザクションtが呼び出される呼出頻度を、以下の式(10)により算出する。ここで、η(sp|t)は、サービス呼出確率値と共に収束したトランザクション呼出確率値を示す。
Figure 0004093483
以上で算出したパラメータに基づいて、呼出頻度算出部340は、起点サービスs0が呼び出された場合におけるサービスsが呼び出される頻度を、式(11)により算出する。また、呼出頻度算出部340は、起点サービスs0が呼び出された場合における、サービスspの処理においてサービスscが呼び出される呼出頻度を、式(12)により算出する。
Figure 0004093483
Figure 0004093483
このように、呼出頻度算出部340は、トランザクション呼出確率値及び子トランザクションの候補に基づいて、あるサービスが呼び出された結果他のサービスが連鎖的に順次呼び出された場合におけるサービス呼出頻度を算出することができる。この際、式(9)及び式(10)に示すように、呼出頻度算出部340は、各トランザクションについてのトランザクション呼出確率値を必要とする。従って、呼出頻度算出部340は、サーバプログラムの各々において当該サーバプログラムについてのトランザクション呼出確率値を算出させた場合であっても、算出させた当該トランザクション呼出確率値を収集する必要がある。このため、ネットワークトラフィックの増大を招くおそれがある。
一方、以下の方法によれば、呼出頻度算出部340は、ネットワークトラフィックを増大させることなく、あるサービスが呼び出された結果他のサービスが連鎖的に順次呼び出された場合におけるサービス呼出頻度を算出することができる。この方法について説明する。まず、説明の便宜上、式(4)により算出された回数の推定値を行列として式(13)に表す。
Figure 0004093483
また、各サービスが呼び出される回数を示す大きさ|S|のベクトルをvとする。そして、あるサービスが1回呼び出された状態が初期状態であるので、起点サービスをsiとすれば、初期状態におけるvは、i番目の要素のみが1で他の要素が0であることを示す式(14)により表される。
Figure 0004093483
以上の前提の下、この起点サービスsiが1回呼び出された場合に順次各々のサービスが呼び出される回数の極限値は、以下の式(15)で表される。そして、式(15)は、式(16)のように変形できる。
Figure 0004093483
Figure 0004093483
呼出頻度算出部340は、式(16)を計算することにより、起点サービスsiが1回呼び出された場合に順次各々のサービスが呼び出される回数の推定値を算出することができる。続いて、呼出頻度算出部340は、算出したこの推定値と、siが実際に呼び出された回数とに基づいて、式(17)により、起点サービスsi のみが呼び出される場合においてsjが実際に呼び出されるサービス呼出頻度を算出できる。但し、式(18)は、v*のi成分を示す。
Figure 0004093483
Figure 0004093483
同様に、起点サービスsiが1回呼び出された場合においてsjからskが呼び出されるサービス呼出頻度は、式(19)と表せる。従って、呼出頻度算出部340は、起点サービスsi のみが呼び出される場合においてsjからskが実際に呼び出されるサービス呼出頻度を、式(20)により算出できる。
Figure 0004093483
Figure 0004093483
図8は、解析システム30として機能するコンピュータのハードウェア構成の一例を示す。解析システム30は、ホストコントローラ882により相互に接続されるCPU800、RAM820、グラフィックコントローラ875、及び表示装置880を有するCPU周辺部と、入出力コントローラ884によりホストコントローラ882に接続される通信インターフェイス830、ハードディスクドライブ840、及びCD−ROMドライブ860を有する入出力部と、入出力コントローラ884に接続されるBIOS810、フレキシブルディスクドライブ850、及び入出力チップ870を有するレガシー入出力部とを備える。
ホストコントローラ882は、RAM820と、高い転送レートでRAM820をアクセスするCPU800及びグラフィックコントローラ875とを接続する。CPU800は、BIOS810及びRAM820に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ875は、CPU800等がRAM820内に設けたフレームバッファ上に生成する画像データを取得し、表示装置880上に表示させる。これに代えて、グラフィックコントローラ875は、CPU800等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
入出力コントローラ884は、ホストコントローラ882と、比較的高速な入出力装置である通信インターフェイス830、ハードディスクドライブ840、及びCD−ROMドライブ860を接続する。通信インターフェイス830は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ840は、解析システム30が使用するプログラム及びデータを格納する。CD−ROMドライブ860は、CD−ROM895からプログラム又はデータを読み取り、RAM820を介して入出力チップ870に提供する。
また、入出力コントローラ884には、BIOS810と、フレキシブルディスクドライブ850や入出力チップ870等の比較的低速な入出力装置とが接続される。BIOS810は、解析システム30の起動時にCPU800が実行するブートプログラムや、解析システム30のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ850は、フレキシブルディスク890からプログラム又はデータを読み取り、RAM820を介して入出力チップ870に提供する。入出力チップ870は、フレキシブルディスク890や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
解析システム30に提供されるプログラムは、フレキシブルディスク890、CD−ROM895、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ870及び/又は入出力コントローラ884を介して、記録媒体から読み出され解析システム30にインストールされて実行される。
解析システム30にインストールされて実行されるプログラムは、トランザクション検出モジュールと、子トランザクション候補検出モジュールと、トランザクション呼出確率算出モジュールと、サービス呼出頻度候補算出モジュールと、呼出頻度算出モジュールとを含む。各モジュールが解析システム30又はアクセス認可装置120に働きかけて行わせる動作は、図1から図5において説明した解析システム30における、対応する部材の動作と同一であるから、説明を省略する。
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク890、CD−ROM895の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを解析システム30に提供してもよい。
以上、本実施例に示すように、解析システム30は、コンピュータシステム10における各サーバ上で動作する各サーバプログラムが互いに他のサーバプログラムを呼び出す頻度を解析する。これにより、コンピュータシステム10におけるネットワークの構成が変更されたこと、又は、コンピュータシステム10内で動作するサーバプログラムの設定が変更されたこと等を適切に検出し、ネットワーク管理者の負担を軽減することができる。
また、解析システム30は、コンピュータシステム10内の通信におけるネットワーク層やデータリンク層の通信障害のみならず、アプリケーション層の通信障害を適切に検出することができる。これにより、解析システム30は、例えば、コンピュータシステム10内のサーバプログラムに障害が発生した場合には、その障害により減少する通信用パケットの流量が僅かな場合であっても、コンピュータシステム10内のサーバプログラムに発生した障害を適切に検出することができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
以上に示す実施例によると、以下の各項目に示す解析システム、解析方法、解析プログラム、及び記録媒体が実現される。
(項目1) 各々が互いにサービスを提供する複数のサーバプログラムが動作しているコンピュータシステムにおいて、サーバプログラム間の依存関係を解析する解析システムであって、前記複数のサーバプログラムの各々が他の何れかのサーバプログラムから呼び出されて行ったサービスの処理であるトランザクションを、当該サービスに対応付けて検出するトランザクション検出部と、前記トランザクション検出部により検出された各トランザクションについて、当該トランザクションにおいて呼び出される他のトランザクションである子トランザクションの候補を検出する子トランザクション候補検出部と、各トランザクションに対応付けて検出したサービスと、当該トランザクションの子トランザクションの候補に対応付けて検出したサービスとに基づいて、各サーバプログラムが他のサーバプログラムの各々を呼び出してサービスを行わせる頻度を推定したサービス呼出頻度を算出して出力する呼出頻度算出部とを備える解析システム。
(項目2) 前記複数のサーバプログラムの各々は、前記コンピュータシステムが有する複数のサーバ装置の何れかで動作し、前記トランザクション検出部は、前記トランザクションの各々に対応付けて、当該トランザクションの呼出元及び呼出先のサーバ装置の識別情報を更に検出し、前記子トランザクション候補検出部は、前記トランザクション検出部により検出された各トランザクションについて、当該トランザクションの呼出先のサーバ装置を呼出元とする他の各々のトランザクションを、前記子トランザクションの候補として検出する項目1記載の解析システム。
(項目3) 前記トランザクション検出部は、各サーバプログラムが前記コンピュータシステムの外部の何れかのサーバプログラムから呼び出されてトランザクションを行った場合に、当該トランザクションの呼出元の識別情報として同一の識別情報を検出する項目2記載の解析システム。
(項目4) 前記複数のサーバ装置はネットワークにより接続されており、前記トランザクション検出部は、前記コンピュータシステム内で前記トランザクションの呼び出しに用いられる通信用パケットを前記ネットワークから検出し、検出した当該通信用パケットの発信元IPアドレス及び宛先IPアドレスを、当該トランザクションの呼出元及び呼出先のサーバ装置の識別情報として検出し、当該通信用パケットの宛先ポート番号により識別されるサービスを、当該トランザクションにより行われるサービスとして検出する項目2記載の解析システム。
(項目5) 前記トランザクション検出部は、前記トランザクションの各々に対応付けて、更に、当該トランザクションの開始時刻及び終了時刻を検出し、前記子トランザクション候補検出部は、前記トランザクション検出部により検出された各トランザクションについて、当該トランザクションの開始時刻より後に開始しかつ終了時刻に先立って終了した他のトランザクションを、前記子トランザクションの候補として検出する項目1記載の解析システム。
(項目6) 前記トランザクション検出部により、第1のトランザクションと、当該第1のトランザクションより後に開始しかつ先に終了する第2のトランザクションと、当該第1のトランザクション及び第2のトランザクションの何れよりも後に開始しかつ何れよりも先に終了する第3のトランザクションとが検出された場合に、前記子トランザクション候補検出部は、前記第3のトランザクションを、前記第2のトランザクションの子トランザクションの候補として検出し、前記第1のトランザクションの子トランザクションの候補から除外する項目5記載の解析システム。
(項目7) サービスプログラム毎に、当該サービスプログラムが他のサービスプログラムの各々から呼び出される確率の候補値であるサービス呼出確率値が予め定められており、前記サービス呼出確率値に基づいて、各トランザクションが複数のサーバプログラムの各々から呼び出された確率であるトランザクション呼出確率値を算出するトランザクション呼出確率値算出部と、同一のサービスを行う各トランザクションについての前記トランザクション呼出確率値に基づいて、他のサービス呼出確率値を算出するサービス呼出確率値算出部とを更に備え、前記呼出頻度算出部は、前記サービス呼出確率値算出部により算出された前記サービス呼出確率値に基づいて更に前記トランザクション呼出確率値算出部により前記トランザクション呼出確率値を算出させる処理を繰り返し、繰り返しの前で算出されたサービス呼出確率値及び繰り返しの後で算出されたサービス呼出確率値の差が予め定められた範囲内に収束した場合に、収束した当該サービス呼出確率値に基づいて、前記サービス呼出頻度を算出して出力する項目1記載の解析システム。
(項目8) 前記呼出頻度算出部は、更に、各トランザクションについてのトランザクション呼出確率値に基づいて、所定のトランザクションが呼び出された結果他のトランザクションが連鎖的に順次呼び出された場合における、各トランザクションの呼出頻度を算出し、算出したトランザクションの呼出頻度に基づいて、予め定めた起点サービスが呼び出された結果他のサービスが連鎖的に順次呼び出された場合におけるサービス呼出頻度を算出して出力する項目7記載の解析システム。
(項目9) 前記呼出頻度算出部は、更に、算出した前記サービス呼出頻度に基づいて、予め定められた起点サービスが呼び出された結果他のサービスが連鎖的に順次呼び出された場合におけるサービス呼出頻度を算出して出力する項目7記載の解析システム。
(項目10) 前記呼出頻度算出部は、前記サービス呼出頻度を定期的に算出し、算出したサービス呼出頻度が、予め定められた基準値と比較して予め定められた差分値以上相違している場合に、当該サービス呼出頻度が基準値と相違している旨を更に出力する項目1記載の解析システム。
(項目11) 各々が互いにサービスを提供する複数のサーバプログラムが動作しているコンピュータシステムにおいて、サーバプログラム間の依存関係を解析する解析方法であって、前記複数のサーバプログラムの各々が他の何れかのサーバプログラムから呼び出されて行ったサービスの処理であるトランザクションを、当該サービスに対応付けて検出するトランザクション検出段階と、前記トランザクション検出段階において検出された各トランザクションについて、当該トランザクションにおいて呼び出される他のトランザクションである子トランザクションの候補を検出する子トランザクション候補検出段階と、各トランザクションに対応付けて検出したサービスと、当該トランザクションの子トランザクションの候補に対応付けて検出したサービスとに基づいて、各サーバプログラムが他のサーバプログラムの各々を呼び出してサービスを行わせる頻度を推定したサービス呼出頻度を算出して出力する呼出頻度算出段階とを備える解析方法。
(項目12) 各々が互いにサービスを提供する複数のサーバプログラムが動作しているコンピュータシステムにおいて、サーバプログラム間の依存関係をコンピュータにより解析する解析プログラムであって、前記コンピュータを、前記複数のサーバプログラムの各々が他の何れかのサーバプログラムから呼び出されて行ったサービスの処理であるトランザクションを、当該サービスに対応付けて検出するトランザクション検出部と、前記トランザクション検出部により検出された各トランザクションについて、当該トランザクションにおいて呼び出される他のトランザクションである子トランザクションの候補を検出する子トランザクション候補検出部と、各トランザクションに対応付けて検出したサービスと、当該トランザクションの子トランザクションの候補に対応付けて検出したサービスとに基づいて、各サーバプログラムが他のサーバプログラムの各々を呼び出してサービスを行わせる頻度を推定したサービス呼出頻度を算出して出力する呼出頻度算出部として機能させる解析プログラム。
(項目13) 項目12記載の解析プログラムを記録した記録媒体。
図1は、コンピュータシステム10のブロック図を示す。 図2は、サーバプログラムが他のサーバプログラムを呼び出す処理の概念図を示す。 図3は、解析システム30のブロック図を示す。 図4は、各トランザクションについて子トランザクション候補検出部310が検出した子トランザクションの候補をDAG(Directed Acyclic Graph)として示す。 図5は、解析システム30がサーバプログラム間の依存関係を解析する処理の動作フローを示す。 図6は、解析システム30が出力するサービス呼出頻度の一例を示す。 図7は、解析システム30が出力するサービス呼出頻度の他の例を示す。 図8は、解析システム30として機能するコンピュータのハードウェア構成の一例を示す。
符号の説明
10 コンピュータシステム
20 ネットワーク
30 解析システム
40 クライアント装置
45 ルータ
50 ディスパッチャ
60 ウェブサーバ
62 HTTPサーバプログラム
64 アプリケーションサーバプログラム
70 ウェブサーバ
72 HTTPサーバプログラム
74 アプリケーションサーバプログラム
80 データベースサーバ
300 トランザクション検出部
310 子トランザクション候補検出部
320 トランザクション呼出確率算出部
330 サービス呼出確率値算出部
340 呼出頻度算出部
700 サーバプログラム
710 クライアントプログラム
720 クライアントプログラム
730 サーバプログラム

Claims (12)

  1. 互いにサービスを提供する複数のサーバプログラムの各々が、ネットワークにより互いに接続されたサーバ装置の各々で動作しているコンピュータシステムにおいて、サーバプログラム間の依存関係を解析する解析システムであって、
    前記複数のサーバプログラムの各々が他の何れかのサーバプログラムから呼び出されて行ったサービスの処理であるトランザクションを、当該サービスに対応付けて検出するトランザクション検出部と、
    前記トランザクション検出部により検出された各トランザクションについて、当該トランザクションにおいて呼び出される他のトランザクションである子トランザクションの候補を検出する子トランザクション候補検出部と、
    各トランザクションに対応付けて検出したサービスと、当該トランザクションの子トランザクションの候補に対応付けて検出したサービスとに基づいて、各サーバプログラムが他のサーバプログラムの各々を呼び出してサービスを行わせる頻度を推定したサービス呼出頻度を算出して出力する呼出頻度算出部と
    を備え、
    前記トランザクション検出部は、前記コンピュータシステム内で前記トランザクションの呼び出しに用いられる通信用パケットを前記ネットワークから検出して前記トランザクションを検出し、検出した前記トランザクションの各々に対応付けて、検出した当該通信用パケットの発信元IPアドレス及び宛先IPアドレスを、当該トランザクションの呼出元及び呼出先の前記サービスに対応するサーバ装置の識別情報として検出し、
    前記子トランザクション候補検出部は、前記トランザクション検出部により検出された各トランザクションについて、当該トランザクションの呼出先の前記サービスに対応するサーバ装置の識別情報を呼出元の前記サービスに対応するサーバ装置の識別情報とする他の各々のトランザクションを、前記子トランザクションの候補として検出する
    解析システム。
  2. 前記トランザクション検出部は、各サーバプログラムが前記コンピュータシステムの外部の何れかのサーバプログラムから呼び出されてトランザクションを行った場合に、当該トランザクションの呼出元の識別情報として同一の識別情報を検出する
    請求項記載の解析システム。
  3. 前記トランザクション検出部は、通信用パケットの宛先ポート番号により識別されるサービスを、当該トランザクションにより行われるサービスとして検出する
    請求項2記載の解析システム。
  4. 前記トランザクション検出部は、前記トランザクションの各々に対応付けて、更に、当該トランザクションの開始時刻及び終了時刻を検出し、
    前記子トランザクション候補検出部は、前記トランザクション検出部により検出された各トランザクションについて、当該トランザクションの開始時刻より後に開始しかつ終了時刻に先立って終了した他のトランザクションを、前記子トランザクションの候補として検出する
    請求項1記載の解析システム。
  5. 前記トランザクション検出部により、第1のトランザクションと、当該第1のトランザクションより後に開始しかつ先に終了する第2のトランザクションと、当該第1のトランザクション及び第2のトランザクションの何れよりも後に開始しかつ何れよりも先に終了する第3のトランザクションとが検出された場合に、前記子トランザクション候補検出部は、前記第3のトランザクションを、前記第2のトランザクションの子トランザクションの候補として検出し、前記第1のトランザクションの子トランザクションの候補から除外する
    請求項記載の解析システム。
  6. サービスプログラム毎に、当該サービスプログラムが他のサービスプログラムの各々から呼び出される確率の候補値であるサービス呼出確率値が予め定められており、
    前記サービス呼出確率値に基づいて、各トランザクションが複数のサーバプログラムの各々から呼び出された確率であるトランザクション呼出確率値を算出するトランザクション呼出確率値算出部と、
    同一のサービスを行う各トランザクションについての前記トランザクション呼出確率値に基づいて、他のサービス呼出確率値を算出するサービス呼出確率値算出部と
    を更に備え、
    前記呼出頻度算出部は、前記サービス呼出確率値算出部により算出された前記サービス呼出確率値に基づいて更に前記トランザクション呼出確率値算出部により前記トランザクション呼出確率値を算出させる処理を繰り返し、繰り返しの前で算出されたサービス呼出確率値及び繰り返しの後で算出されたサービス呼出確率値の差が予め定められた範囲内に収束した場合に、収束した当該サービス呼出確率値に基づいて、前記サービス呼出頻度を算出して出力する
    請求項1記載の解析システム。
  7. 前記呼出頻度算出部は、更に、各トランザクションについてのトランザクション呼出確率値に基づいて、所定のトランザクションが呼び出された結果他のトランザクションが連鎖的に順次呼び出された場合における、各トランザクションの呼出頻度を算出し、算出したトランザクションの呼出頻度に基づいて、予め定めた起点サービスが呼び出された結果他のサービスが連鎖的に順次呼び出された場合におけるサービス呼出頻度を算出して出力する
    請求項記載の解析システム。
  8. 前記呼出頻度算出部は、更に、算出した前記サービス呼出頻度に基づいて、予め定められた起点サービスが呼び出された結果他のサービスが連鎖的に順次呼び出された場合におけるサービス呼出頻度を算出して出力する
    請求項記載の解析システム。
  9. 前記呼出頻度算出部は、前記サービス呼出頻度を定期的に算出し、算出したサービス呼出頻度が、予め定められた基準値と比較して予め定められた差分値以上相違している場合に、当該サービス呼出頻度が基準値と相違している旨を更に出力する
    請求項1記載の解析システム。
  10. 互いにサービスを提供する複数のサーバプログラムの各々が、ネットワークにより互いに接続されたサーバ装置の各々で動作しているコンピュータシステムにおいて、サーバプログラム間の依存関係を解析する解析方法であって、
    前記複数のサーバプログラムの各々が他の何れかのサーバプログラムから呼び出されて行ったサービスの処理であるトランザクションを、当該サービスに対応付けて検出するトランザクション検出段階と、
    前記トランザクション検出段階において検出された各トランザクションについて、当該トランザクションにおいて呼び出される他のトランザクションである子トランザクションの候補を検出する子トランザクション候補検出段階と、
    各トランザクションに対応付けて検出したサービスと、当該トランザクションの子トランザクションの候補に対応付けて検出したサービスとに基づいて、各サーバプログラムが他のサーバプログラムの各々を呼び出してサービスを行わせる頻度を推定したサービス呼出頻度を算出して出力する呼出頻度算出段階と
    を備え、
    前記トランザクション検出段階において、前記コンピュータシステム内で前記トランザクションの呼び出しに用いられる通信用パケットを前記ネットワークから検出して前記トランザクションを検出し、検出した前記トランザクションの各々に対応付けて、検出した当該通信用パケットの発信元IPアドレス及び宛先IPアドレスを、当該トランザクションの呼出元及び呼出先の前記サービスに対応するサーバ装置の識別情報として検出し、
    前記子トランザクション候補検出段階において、前記トランザクション検出段階において検出された各トランザクションについて、当該トランザクションの呼出先の前記サービスに対応するサーバ装置の識別情報を呼出元の前記サービスに対応するサーバ装置の識別情報とする他の各々のトランザクションを、前記子トランザクションの候補として検出する
    解析方法。
  11. 互いにサービスを提供する複数のサーバプログラムの各々が、ネットワークにより互いに接続されたサーバ装置の各々で動作しているコンピュータシステムにおいて、サーバプログラム間の依存関係をコンピュータにより解析する解析プログラムであって、
    前記コンピュータを、
    前記複数のサーバプログラムの各々が他の何れかのサーバプログラムから呼び出されて行ったサービスの処理であるトランザクションを、当該サービスに対応付けて検出するトランザクション検出部と、
    前記トランザクション検出部により検出された各トランザクションについて、当該トランザクションにおいて呼び出される他のトランザクションである子トランザクションの候補を検出する子トランザクション候補検出部と、
    各トランザクションに対応付けて検出したサービスと、当該トランザクションの子トランザクションの候補に対応付けて検出したサービスとに基づいて、各サーバプログラムが他のサーバプログラムの各々を呼び出してサービスを行わせる頻度を推定したサービス呼出頻度を算出して出力する呼出頻度算出部と
    して機能させ、
    前記トランザクション検出部は、前記コンピュータシステム内で前記トランザクションの呼び出しに用いられる通信用パケットを前記ネットワークから検出して前記トランザクションを検出し、検出した前記トランザクションの各々に対応付けて、検出した当該通信用パケットの発信元IPアドレス及び宛先IPアドレスを、当該トランザクションの呼出元及び呼出先の前記サービスに対応するサーバ装置の識別情報として検出し、
    前記子トランザクション候補検出部は、前記トランザクション検出部により検出された各トランザクションについて、当該トランザクションの呼出先の前記サービスに対応するサーバ装置の識別情報を呼出元の前記サービスに対応するサーバ装置の識別情報とする他の各々のトランザクションを、前記子トランザクションの候補として検出する
    解析プログラム。
  12. 請求項11記載の解析プログラムを記録した記録媒体。
JP2003432337A 2003-12-26 2003-12-26 解析システム、解析方法、解析プログラム、及び記録媒体 Expired - Fee Related JP4093483B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003432337A JP4093483B2 (ja) 2003-12-26 2003-12-26 解析システム、解析方法、解析プログラム、及び記録媒体
US11/019,879 US7493361B2 (en) 2003-12-26 2004-12-22 Computer operation analysis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003432337A JP4093483B2 (ja) 2003-12-26 2003-12-26 解析システム、解析方法、解析プログラム、及び記録媒体

Publications (2)

Publication Number Publication Date
JP2005190277A JP2005190277A (ja) 2005-07-14
JP4093483B2 true JP4093483B2 (ja) 2008-06-04

Family

ID=34790067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003432337A Expired - Fee Related JP4093483B2 (ja) 2003-12-26 2003-12-26 解析システム、解析方法、解析プログラム、及び記録媒体

Country Status (2)

Country Link
US (1) US7493361B2 (ja)
JP (1) JP4093483B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4549231B2 (ja) * 2005-05-17 2010-09-22 富士通株式会社 サービス処理状況分析プログラム、サービス処理状況分析方法、およびサービス処理状況分析装置
JP2007207059A (ja) * 2006-02-03 2007-08-16 Nec System Technologies Ltd 検出システム、データ処理装置、検出方法およびプログラム
JP4716259B2 (ja) 2006-03-29 2011-07-06 日本電気株式会社 サイジング支援システム、方法、及びプログラム
JP4135956B2 (ja) 2006-05-16 2008-08-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数の情報処理装置を有する情報処理システムの性能を解析する技術
JP4927448B2 (ja) * 2006-06-09 2012-05-09 株式会社日立製作所 時系列パターン生成システム及び時系列パターン生成方法
JP4659907B2 (ja) * 2007-07-19 2011-03-30 富士通株式会社 通信メッセージ分類プログラム、通信メッセージ分類方法および通信メッセージ分類装置
WO2009044589A1 (ja) 2007-10-03 2009-04-09 Nec Corporation 階層型負荷推定システム、方法およびプログラム
FR2925187B1 (fr) * 2007-12-14 2011-04-08 Commissariat Energie Atomique Systeme comportant une pluralite d'unites de traitement permettant d'executer des taches en parallele,en mixant le mode d'execution de type controle et le mode d'execution de type flot de donnees
JP2010066931A (ja) * 2008-09-09 2010-03-25 Fujitsu Ltd 負荷分散機能を有した情報処理装置
JP5482243B2 (ja) * 2010-01-29 2014-05-07 富士通株式会社 系列生成プログラム、系列生成方法、および系列生成装置
US8510601B1 (en) * 2010-09-27 2013-08-13 Amazon Technologies, Inc. Generating service call patterns for systems under test
JP2013069223A (ja) * 2011-09-26 2013-04-18 Fujitsu Ltd 生成プログラム、生成方法及び生成装置
JP5705172B2 (ja) * 2012-06-25 2015-04-22 株式会社日立製作所 アクセスログ解析装置及びアクセスログ解析方法
JP5892006B2 (ja) * 2012-09-03 2016-03-23 富士通株式会社 分析プログラム、分析方法及び分析装置
JP6269004B2 (ja) * 2013-12-09 2018-01-31 富士通株式会社 監視支援プログラム、監視支援方法および監視支援装置
CN106612196B (zh) * 2015-10-23 2019-02-01 华为技术有限公司 获取资源的方法及装置
CN106656536B (zh) * 2015-11-03 2020-02-18 阿里巴巴集团控股有限公司 一种用于处理服务调用信息的方法与设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233397A (ja) 1992-02-21 1993-09-10 Toshiba Corp 適用プログラム実行管理方法
US5870760A (en) * 1996-12-19 1999-02-09 Oracle Corporation Dequeuing using queue batch numbers
US6286046B1 (en) * 1997-12-22 2001-09-04 International Business Machines Corporation Method of recording and measuring e-business sessions on the world wide web
US6247023B1 (en) * 1998-07-21 2001-06-12 Internationl Business Machines Corp. Method for providing database recovery across multiple nodes
US7290056B1 (en) * 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US20020198985A1 (en) * 2001-05-09 2002-12-26 Noam Fraenkel Post-deployment monitoring and analysis of server performance
US7310777B2 (en) * 2002-10-18 2007-12-18 Computer Associates Think, Inc. User interface for viewing performance information about transactions
US7539974B2 (en) 2003-10-24 2009-05-26 Microsoft Corporation Scalable synchronous and asynchronous processing of monitoring rules

Also Published As

Publication number Publication date
US20050166081A1 (en) 2005-07-28
JP2005190277A (ja) 2005-07-14
US7493361B2 (en) 2009-02-17

Similar Documents

Publication Publication Date Title
JP4093483B2 (ja) 解析システム、解析方法、解析プログラム、及び記録媒体
US9146787B2 (en) Analytics for application programming interfaces
JP5152186B2 (ja) コンピュータシステム、管理装置、及びコンピュータシステム管理方法
US8326971B2 (en) Method for using dynamically scheduled synthetic transactions to monitor performance and availability of E-business systems
US9167028B1 (en) Monitoring distributed web application transactions
Cohen et al. Capturing, indexing, clustering, and retrieving system history
US7401141B2 (en) Method and system for monitoring performance of distributed applications
US8510430B2 (en) Intelligent performance monitoring based on resource threshold
US8335838B2 (en) Web page load time prediction and simulation
US20070106692A1 (en) System and method for recording and replaying a session with a web server without recreating the actual session
US7996822B2 (en) User/process runtime system trace
US8589537B2 (en) Methods and computer program products for aggregating network application performance metrics by process pool
US20090204949A1 (en) System, method and program product for dynamically adjusting trace buffer capacity based on execution history
WO2007144265A2 (en) Tracking discrete elements of distributed transactions
US20070086350A1 (en) Method, system, and computer program product for providing failure detection with minimal bandwidth usage
US9727394B2 (en) Establishing causality order of computer trace records
WO2016178661A1 (en) Determining idle testing periods
JP4504346B2 (ja) トラブル要因検出プログラム、トラブル要因検出方法およびトラブル要因検出装置
US8732323B2 (en) Recording medium storing transaction model generation support program, transaction model generation support computer, and transaction model generation support method
JP7487769B2 (ja) 異常アクセス予測システム、異常アクセス予測方法および異常アクセス予測プログラム
US7653742B1 (en) Defining and detecting network application business activities
US7558770B2 (en) Method and system to detect application non-conformance
US8930369B2 (en) Information processing apparatus, message classifying method and non-transitory medium for associating series of transactions
WO2024000444A1 (en) Network traffic measurement and control system
Lorenz et al. On Web Quality of Service: Approaches to Measurement of End–to–End Response Time

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071030

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071226

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080131

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080229

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

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees