(57)【要約】【課題】系列化の判定に用いる時間間隔の適切な閾値を自動で決定する。【解決手段】処理時間設定手段１ｃにより、メッセージ記憶手段１ｂ内の要求メッセージと応答メッセージとの組から各サーバで実行された処理が判断され、処理の開始時刻と終了時刻とが処理時間情報記憶手段１ｄに格納される。すると、時間間隔計算手段１ｅにより、サービス内の他の処理から呼び出されて発生した同一サーバ内の処理間の時間間隔が計算される。次に、候補閾値生成手段１ｆにより、閾値の候補を示す候補閾値が複数生成される。すると、系列生成手段１ｇにより、候補閾値ごとに、処理間の時間間隔が候補閾値以下の連続する処理が、同一系列にまとめられる。生成された系列のうち、呼び出し元となる処理が存在しない系列は、系列分割手段１ｈによって分割される。そして、閾値決定手段１ｉにより、系列数が最少となる候補閾値が、時間間隔の閾値に決定される。【選択図】図１
2010146146.tif 000002
【特許請求の範囲】
【請求項１】
サービスが多階層で処理されるトランザクションのモデル生成支援処理をコンピュータに実行させるトランザクションモデル生成支援プログラムにおいて、
前記コンピュータを、
前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する時間間隔計算手段、
処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する候補閾値生成手段、
前記候補閾値生成手段で生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する系列生成手段、
前記系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する系列分割手段、
系列数が最少となる前記候補閾値を前記閾値に決定する閾値決定手段、
として機能させることを特徴とするトランザクションモデル生成支援プログラム。
【請求項２】
前記閾値決定手段は、系列数が最少となる前記候補閾値が複数ある場合、値が大きい方の前記候補閾値を前記閾値に決定することを特徴とする請求項１記載のトランザクションモデル生成支援プログラム。
【請求項３】
前記候補閾値生成手段は、前記閾値の探索区間が予め指定されており、前記探索区間内の前記候補閾値を生成することを特徴とする請求項１記載のトランザクションモデル生成支援プログラム。
【請求項４】
前記候補閾値生成手段は、最良候補閾値が入力されると、前記最良候補閾値を中心とした所定の範囲を前記探索区間として再度前記候補閾値を生成し、
前記閾値決定手段は、所定の探索終了条件が満たされるまで、既に生成されている前記候補閾値のうち系列数が最少となる前記候補閾値を前記最良候補閾値として選択し、前記候補閾値生成手段に対して前記最良候補閾値を出力することを特徴とする請求項３記載のトランザクションモデル生成支援プログラム。
【請求項５】
前記コンピュータを、さらに、
前記サービスの各階層の処理を実行する複数のサーバ間で受け渡されるメッセージと、前記メッセージの取得時刻とが格納されたメッセージ記憶手段を参照し、要求メッセージと応答メッセージとの組から各サーバで実行された処理を判断し、前記要求メッセージの取得時刻を前記処理の開始時刻とし、前記応答メッセージの取得時刻を前記処理の終了時刻として、前記処理の開始時刻と終了時刻とを前記処理時間情報記憶手段に格納する処理時間設定手段として機能させることを特徴とする請求項１記載のトランザクションモデル生成支援プログラム。
【請求項６】
サービスが多階層で処理されるトランザクションのモデル生成支援を行うトランザクションモデル生成支援装置において、
前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する時間間隔計算手段と、
処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する候補閾値生成手段と、
前記候補閾値生成手段で生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する系列生成手段と、
前記系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する系列分割手段と、
系列数が最少となる前記候補閾値を前記閾値に決定する閾値決定手段と、
を有することを特徴とするトランザクションモデル生成支援装置。
【請求項７】
サービスが多階層で処理されるトランザクションのモデル生成支援処理をコンピュータに実行させるトランザクションモデル生成支援方法において、
前記コンピュータが、
前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算し、
処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成し、
生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成し、
生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割し、
系列数が最少となる前記候補閾値を前記閾値に決定する、
ことを特徴とするトランザクションモデル生成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はトランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法に関し、特にサービスが多階層で処理されるトランザクションのモデルを生成するトランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法に関する。
【背景技術】
【０００２】
インターネットの普及によって、インターネット経由で多数のＷｅｂページが閲覧可能となっている。インターネットによるＷｅｂページなどの情報提供サービスは、一般的に、Ｗｅｂ３階層モデルと呼ばれるシステムで提供される。Ｗｅｂ３階層モデルでは、クライアント装置からの要求を受けたＷｅｂサーバがアプリケーションソフトウェア（以下、単に「アプリケーション」という）を呼び出す。そして、Ｗｅｂサーバから呼び出されたアプリケーションが、データベース管理ソフトウェア（以下、単に「データベース」という）を呼び出す。このとき、Ｗｅｂサーバ、アプリケーション、データベースはそれぞれ別々のコンピュータで動いていることが多い。
【０００３】
このようなＷｅｂ３階層モデルにおいて、性能などの問題があったときにその原因がどこにあるのかを調査するのは容易ではない。それぞれのソフトウェアが個別のコンピュータで分散して動いていること自体も難しさの原因である。さらにそれらのソフトウェアの開発元が異なっており、ソフトウェアの処理の内部を解析して原因を追及することが現実的に不可能な点も問題をより難しくしている。
【０００４】
このような問題を解決するため、ネットワーク上を流れるメッセージを観測することでトランザクションに対してＷｅｂサーバ、アプリケーション、データベースにおける所用時間を計測するシステムが提案されている。このようなシステムでは、分析装置でネットワークを観測し、観測メッセージからイベント間の呼び出し関係のモデル（トランザクションモデル）を生成する。
【０００５】
ここでイベントとは、クライアントまたは他のサーバからの要求に応じて実行される処理単位である。イベントは、要求の出力元に応答を返して終了する。従って、ネットワークを介して要求メッセージと応答メッセージとを採取することで、個々のイベントの開始時刻と終了時刻を知ることができる。イベント間の呼び出し関係は、呼び出し元のイベントの実行時間帯の包含関係、呼び出し元のイベントを実行するコンピュータのＩＰ（Internet Protocol）アドレス、および呼び出される先のコンピュータのＩＰアドレスによって判断される。
【０００６】
トランザクションモデルを生成した後、分析装置は観測メッセージとトランザクションモデルとを照合することで、発生したトランザクションを判定する。
このように予めトランザクションモデルを生成することで、運用中のネットワーク経由で実行されたトランザクションを分類することができる。そして、分類されたトランザクションに含まれるメッセージの発生時刻に基づいて、トランザクションの処理ごとに、各サーバによる処理時間を算出することができる。
【特許文献１】特開２００６−１１６８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、トランザクションモデルを生成する場合、連続した複数個のイベントを一連の処理と考え、それらの処理を１つにまとめたトランザクションモデルを生成することができる。連続した複数個のイベントを１つにまとめれば、例えば銀行口座の入出金照会のように、データベースへのアクセスの回数が異なるだけのものを同一視することが可能となる。その結果、ネットワーク上を流れるメッセージの内容に合致するトランザクションモデルの検索処理を効率化できる。また、トランザクションの種別ごとに各サーバの処理時間を算出する際にも、単にデータアクセス回数が異なるだけの同種のトランザクションは、１つのまとまりとして解析することができる。このように連続するイベントの集合を一連の処理と把えて、それらイベントを含む系列を生成する処理を系列化と呼ぶ。系列化で生成された系列は１つのトランザクション内の処理と判断され、その系列を含むトランザクションモデルが生成される。
【０００８】
連続する複数のイベントがある場合に、それらを系列化するか否かの判断方法の１つとして、イベント間の時間間隔と所定の閾値とを比較する方法がある。この方法では、閾値以下の時間間隔で連続して発生したイベントは、１つのトランザクション内の連続する処理と判断して系列化を行う。このように閾値を使って適切に系列が生成できるのは、１つのトランザクション内の一連の処理のイベント間の時間間隔が、他のトランザクションによるアプリケーションの間の時間間隔よりも十分に短いと想定できるためである。
【０００９】
しかし、系列化を行うための時間間隔の閾値として適切な値は、自明ではない。設定された閾値が短すぎると、本来系列化して１つのトランザクションモデルに属するべき複数のトランザクションそれぞれから、個別のトランザクションモデルが生成されてしまう。また、設定された閾値が長すぎると、系列化すべきでない複数のイベントが系列化されてしまい、正しいトランザクションモデルが生成できない。そこで、実際にいくつかの値を閾値としてトランザクションモデルの生成を試行し、生成されたトランザクションモデルの適否によって、その後使用する閾値を決めることとなる。ところが、このようなトランザクションモデルの生成の試行には手間がかかる。
【００１０】
本発明はこのような点に鑑みてなされたものであり、系列化の判定に用いる時間間隔の適切な閾値を自動で決定することができるトランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、サービスが多階層で処理されるトランザクションのモデル生成支援を行うトランザクションモデル生成支援装置が提供される。トランザクションモデル生成支援装置は、時間間隔計算手段、候補閾値生成手段、系列生成手段、系列分割手段、および閾値決定手段を有する。
【００１２】
時間間隔計算手段は、サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する。候補閾値生成手段は、処理間の時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する。系列生成手段は、候補閾値生成手段で生成された候補閾値ごとに、処理間の時間間隔が候補閾値以下の連続する処理を同一系列にまとめる。系列分割手段は、系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する。閾値決定手段は、系列数が最少となる候補閾値を閾値に決定する。
【００１３】
また、上記課題を解決するために、上記のトランザクションモデル生成支援装置と同様の機能をコンピュータに実行させるトランザクションモデル生成支援プログラムが提供される。
【００１４】
さらに、上記課題を解決するために、上記のトランザクションモデル生成支援装置と同様の処理をコンピュータで実行するトランザクションモデル生成支援方法が提供される。
【発明の効果】
【００１５】
上記トランザクションモデル生成支援装置では、系列化を行うための時間間隔の適切な閾値を自動で決定できる。
【発明を実施するための最良の形態】
【００１６】
以下、本実施の形態を、図面を参照して説明する。
図１は、実施の形態の概要を示す図である。本実施の形態では、クライアント２からの要求がネットワーク６を介してサーバ３に入力される。サーバ３は、ネットワーク７を介して接続されたサーバ４と、サーバ４にさらにネットワーク８を介して接続されたサーバ５と連携して、要求された処理を実行するサービスをクライアント２に提供する。このようなサービスをＷＷＷ（World Wide Web）により行うシステムは、Ｗｅｂ３階層モデルと呼ばれる。このような多階層のサーバ３〜５で構成されるシステムで実行されるトランザクションの内容に応じて、トランザクションモデルを生成することができる。その際、同様な処理が連続して実行される場合、その処理を１まとめにする系列化が行われる。連続する処理を同一の系列にまとめるか否かは、連続する処理の時間間隔が予め設定された閾値以下か否かによって判断できる。
【００１７】
系列化のための閾値の適切な値を決定するために、本実施の形態では、図１に示す各機能が設けられている。すなわち、メッセージ観測手段１ａ、メッセージ記憶手段１ｂ、処理時間設定手段１ｃ、処理時間情報記憶手段１ｄ、時間間隔計算手段１ｅ、候補閾値生成手段１ｆ、系列生成手段１ｇ、系列分割手段１ｈ、閾値決定手段１ｉ、およびトランザクションモデル生成手段１ｊが設けられている。
【００１８】
メッセージ観測手段１ａは、サービスを提供する複数のサーバ３〜５が接続されたネットワーク６〜８から複数のサーバ３〜５間で送受信されたメッセージを取得し、取得したメッセージに取得時刻を付加してメッセージ記憶手段１ｂに格納する。
【００１９】
処理時間設定手段１ｃは、メッセージ記憶手段１ｂを参照し、要求メッセージと応答メッセージとの組から各サーバで実行された処理を判断する。その判断に基づいて、処理時間設定手段１ｃは、要求メッセージの取得時刻を処理の開始時刻とし、応答メッセージの取得時刻を処理の終了時刻とする。そして、処理時間設定手段１ｃは、処理の開始時刻と終了時刻とを処理時間情報記憶手段１ｄに格納する。
【００２０】
時間間隔計算手段１ｅは、サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段１ｄを参照し、処理間の時間間隔を計算する。時間間隔計算手段１ｅは、各処理の直前の処理との間の時間間隔を処理時間情報記憶手段１ｄに登録する。
【００２１】
候補閾値生成手段１ｆは、処理間の時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する。
系列生成手段１ｇは、候補閾値生成手段１ｆで生成された候補閾値ごとに、処理間の時間間隔が候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する。
【００２２】
系列分割手段１ｈは、系列生成手段１ｇで生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する閾値に決定する。
トランザクションモデル生成手段１ｊは、閾値決定手段１ｉで決定された閾値以下の時間間隔で実行された連続する処理を１つの系列にまとめて、トランザクションモデルを生成する。
【００２３】
ここで、トランザクションモデルを生成する場合、クライアント２に対するサーバ３〜５によるサービスの提供を開始する。そして、クライアント２から要求をサーバ３〜５に処理させる。すると、メッセージ観測手段１ａによりサーバ３〜５間で送受信されたメッセージが取得される。取得したメッセージには取得時刻が付加され、メッセージ記憶手段１ｂに格納される。
【００２４】
その後、処理時間設定手段１ｃにより、要求メッセージと応答メッセージとの組から各サーバで実行された処理が判断される。そして、処理時間設定手段１ｃにより、処理の開始時刻と終了時刻とが処理時間情報記憶手段１ｄに格納される。すると、時間間隔計算手段１ｅにより、サービス内の他の処理から呼び出されて発生した同一サーバ内の処理間の時間間隔が計算される。
【００２５】
次に、候補閾値生成手段１ｆにより、閾値の候補を示す候補閾値が複数生成される。すると、系列生成手段１ｇにより、候補閾値ごとに、処理間の時間間隔が候補閾値以下の連続する処理が、同一系列にまとめられる。この際、系列生成手段１ｇで生成された系列のうち、呼び出し元となる処理が存在しない系列は、系列分割手段１ｈによって、処理ごとの系列に分割される。
【００２６】
そして、閾値決定手段１ｉにより、系列数が最少となる候補閾値が、時間間隔の閾値に決定される。決定された閾値に基づき、トランザクションモデル生成手段１ｊにより、閾値以下の時間間隔で実行された連続する処理を１つの系列にまとめたトランザクションモデルが生成される。
【００２７】
このようにして、適切な閾値を自動で決定し、その閾値に基づいて系列化を伴うトランザクションモデルの生成処理を実行することができる。しかも、トランザクションモデル生成試行を行わずに、適切な閾値を決定することができる。トランザクションモデルを生成する場合、サーバ３とサーバ４との呼び出し関係の整合性、およびサーバ４とサーバ５との呼び出し関係との整合性を保ったトランザクションモデルが生成される。すなわち、サーバ３とサーバ４との呼び出し関係の整合性も考慮した上で、トランザクションモデルが生成される。
【００２８】
一方、図１に示した方法で、サーバ５で実行される処理の系列化のために閾値を決定するには、生成された系列の呼び出し元として選択可能な処理がサーバ４に存在するか否かを確認すればよい。すなわち、サーバ４とサーバ５との呼び出し関係を考慮すればよい。そのため、閾値決定に必要な判断要素が少なくなり、トランザクションモデルを生成して閾値を決定する場合に比べ短時間で閾値を決定することができる。
【００２９】
ところで、候補閾値を生成する場合、最初から多数の候補閾値を生成し、すべての候補閾値について系列生成処理および系列分割処理を行うこともできる。しかし、より適切な閾値を見つけ出すには、候補閾値を生成する刻み幅を短くして、各候補閾値で系列化した場合の系列数を計数することが望まれる。例えば、所定の探索区間を数ミリ秒単位で刻むことで得られた時間を、候補閾値とする。このような細かい間隔で生成された候補閾値を、想定される探索区間のすべてに対して生成すると、候補閾値の数が膨大となる。そこで、本実施の形態では、最初は広い刻み幅で候補閾値を生成し、系列数が少なくなる候補閾値周辺に探索区間を徐々に絞り込む。そして、探索区間が絞り込まれるのに従い、候補閾値生成のための時間の刻み幅も徐々に細かくする。これにより、閾値決定までに生成される候補閾値の数を削減できる。
【００３０】
以下、このような閾値の探索区間の段階的な絞り込みを行うことで、閾値決定に要する処理負荷の軽減を図る場合を例に採り、本実施の形態を詳細に説明する。なお、以下の説明では、各サーバで実行される処理単位をイベントと呼ぶこととする。
【００３１】
図２は、本実施の形態のシステム構成例を示す図である。図２に示すように、インターネット１０には複数のクライアント２１〜２３が接続されている。また、インターネット１０にはルータ３１が接続されている。図中、ルータ３１およびルータ３１より右側の各装置によって、サービス提供側のネットワークシステムが構成されている。サービス提供側のネットワークシステムは、Ｗｅｂサーバ４１、アプリケーションサーバ４２，４３、およびデータベース（ＤＢ）サーバ４４，４５による３階層構造となっている。
【００３２】
ルータ３１にはスイッチ３２を介してＷｅｂサーバ４１が接続されている。Ｗｅｂサーバ４１は、クライアント２１〜２３に対してＷＷＷ（World Wide Web）による情報提供を行う。Ｗｅｂサーバ４１には、スイッチ３３を介してアプリケーションサーバ４２，４３が接続されている。アプリケーションサーバ４２，４３は、Ｗｅｂサーバ４１からの要求に応じてデータ処理を実行する。アプリケーションサーバ４２，４３には、スイッチ３４を介してＤＢサーバ４４，４５が接続されている。ＤＢサーバ４４，４５は、アプリケーションサーバ４２，４３からの要求に応じてデータベースへのデータの入出力を行う。
【００３３】
各スイッチ３２〜３４は、ポートモニタリング機能を有している。ポートモニタリング機能とは、スイッチ３２〜３４のポートを介して送受信されるパケットのコピーを、予め指定したポートへ送出する機能である。各スイッチ３２〜３４のコピーされたパケットを送出するポートには、スイッチ３５を介してサービス処理状況分析装置１００が接続されている。
【００３４】
サービス処理状況分析装置１００は、サービス提供側のネットワーク内で送受信されるパケットの内容を解析し、複数のサーバで処理されるトランザクションを検出する。そして、サービス処理状況分析装置１００は、検出したトランザクションを実行するのに各サーバが要した時間を分析する。
【００３５】
図３は、本実施の形態に用いるサービス処理状況分析装置のハードウェア構成例を示す図である。サービス処理状況分析装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ１０６、および通信インタフェース１０７が接続されている。
【００３６】
ＲＡＭ１０２は、サービス処理状況分析装置１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３７】
ＨＤＤ１０３は、内蔵したディスクに対して磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、サービス処理状況分析装置１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３９】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４０】
光学ドライブ１０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４１】
通信インタフェース１０７は、スイッチ３５に接続されている。通信インタフェース１０７は、スイッチ３５を介して、ルータ３１、Ｗｅｂサーバ４１、アプリケーションサーバ４２，４３、およびＤＢサーバ４４，４５間で送受信されるパケットを取得（キャプチャ）する。
【００４２】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３ではサービス処理状況分析装置１００のハードウェア構成を示したが、クライアント２１〜２３、Ｗｅｂサーバ４１、アプリケーションサーバ４２，４３、ＤＢサーバ４４も同様のハードウェア構成で実現することができる。
【００４３】
図４は、サービス処理状況分析装置の機能を示すブロック図である。サービス処理状況分析装置１００は、パケットデータ収集部１１０、メッセージ解析部１２０、メッセージ記憶部１３０、系列化閾値決定部１４０、閾値記憶部１５０、モデル生成部１６０、モデル記憶部１７０、および分析部１８０を有している。
【００４４】
パケットデータ収集部１１０は、スイッチ３５を介して送受信されるパケットを取得し、取得したパケットをメッセージ解析部１２０に渡す。
メッセージ解析部１２０は、パケットデータ収集部１１０から渡されたパケットの内容を解析し、１つ以上のパケットで構成されるメッセージを検出する。そして、メッセージ解析部１２０は、検出したメッセージを示すメッセージデータをメッセージ記憶部１３０に格納する。
【００４５】
メッセージ記憶部１３０は、メッセージデータを格納するための記憶機能である。例えば、ＲＡＭ１０２の記憶領域の一部がメッセージ記憶部１３０として使用される。
系列化閾値決定部１４０は、メッセージ記憶部１３０内のメッセージを参照し、トランザクションモデルを生成するときのイベントの系列化の要否判断に用いる時間間隔の閾値を決定する。系列化閾値決定部１４０は、決定した閾値を閾値記憶部１５０に格納する。
【００４６】
閾値記憶部１５０は、系列化閾値決定部１４０で決定された系列化のための時間間隔の閾値を記憶する。例えば、ＲＡＭ１０２の記憶領域の一部が閾値記憶部１５０として使用される。
【００４７】
モデル生成部１６０は、メッセージ記憶部１３０に格納されたメッセージに基づいてトランザクションモデルを生成する。その際、モデル生成部１６０は、閾値記憶部１５０に格納された閾値以下の時間間隔で連続して実行されたイベントについては、同一トランザクション内の一連の処理と判断し、系列化する。モデル生成部１６０は、生成したトランザクションモデルをモデル記憶部１７０に格納する。
【００４８】
モデル記憶部１７０は、トランザクションに含まれるメッセージの組合せを示すトランザクションモデルを記憶する記憶機能である。例えば、ＨＤＤ１０３の記憶領域の一部がモデル記憶部１７０として使用される。なお、トランザクションモデルは、クライアントから出力される要求の種別ごとに設けられる。
【００４９】
分析部１８０は、トランザクションモデルが生成された後、メッセージ記憶部１３０に格納されたメッセージに基づいて、各トランザクションにおけるサーバとの処理時間などを分析する。そして、分析部１８０は、分析結果をグラフなどでモニタ１１に表示する。
【００５０】
このような構成のサービス処理状況分析装置１００で、次のようなシステム分析処理が実行される。
図５は、サービス処理状況分析処理の手順を示すフローチャートである。以下、図５に示す処理をステップ番号に沿って説明する。
【００５１】
［ステップＳ１１］パケットデータ収集部１１０がスイッチ３５を介して、ルータ３１、Ｗｅｂサーバ４１、アプリケーションサーバ４２，４３、およびＤＢサーバ４４，４５で相互に送受信されるパケットを収集する。
【００５２】
［ステップＳ１２］メッセージ解析部１２０は、パケットデータ収集部１１０が収集したパケットを解析し、メッセージデータを生成する。そして、メッセージ解析部１２０は、生成したメッセージデータをメッセージ記憶部１３０に格納する。
【００５３】
［ステップＳ１３］その後、モデル生成部１６０により、モデル生成指示が入力されているか否かが判断されると共に、分析部１８０により、分析指示が入力されているかが判断される。モデル生成指示や分析指示は、例えば、サービス処理状況分析装置１００の管理者によるキーボード１２などを用いた操作入力によって与えられる。モデル生成指示が入力されている場合、処理がステップＳ１４に進められる。分析指示が入力されている場合、処理がステップＳ１６に進められる。
【００５４】
［ステップＳ１４］モデル生成指示が入力されている場合、系列化閾値決定部１４０が、トランザクションモデルの系列化を行うための時間間隔の閾値を決定する。決定された閾値は、モデル生成部１６０に渡される。
【００５５】
［ステップＳ１５］モデル生成部１６０は、メッセージ記憶部１３０に格納されているメッセージを参照し、トランザクションモデルを生成する。この際、モデル生成部１６０は、系列化閾値決定部１４０で決定された閾値以下の時間間隔で連続するイベントの系列化処理を行う。モデル生成部１６０は、生成したトランザクションモデルをモデル記憶部１７０に格納する。その後、処理が終了する。
【００５６】
［ステップＳ１６］分析指示が入力されている場合、分析部１８０は、モデル記憶部１１３に格納されているトランザクションモデルとプロトコルログ記憶部１１２に格納されている情報とを参照し、実行されているトランザクションに関する情報を分析する。その後、処理が終了する。
【００５７】
このようにして、パケットの収集からトランザクションモデルの生成、またはトランザクションモデルに基づくトランザクションの分析が行われる。
図６は、メッセージ記憶部内のメッセージシーケンスを示す図である。メッセージ記憶部１３０には、キャプチャされたパケットから生成された複数のメッセージデータが時系列で格納されている。
【００５８】
メッセージデータの先頭は時刻を示すタイムスタンプである。なお、タイムスタンプは、パケットデータ収集部１１０がパケットを取得したときに取得したパケットに付与している。そして、メッセージ解析部１２０は、メッセージデータの生成元となったパケットに付与されていたタイムスタンプを、生成されたメッセージデータに付与して、メッセージ記憶部１３０に格納している。
【００５９】
メッセージデータ内のタイムスタンプの後には、セッション番号が付与される。セッション番号は、要求メッセージと応答メッセージとに同じ値が設定される。同じセッション番号の２つのメッセージデータのうち、タイムスタンプの時刻が早い方が要求メッセージを示している。また、タイムスタンプの時刻が遅い方が応答メッセージを示している。
【００６０】
メッセージデータ内のセッション番号の後には、プロトコル名が設定されている。図６の例では、プロトコル名として「ＨＴＴＰ」、「ＩＩＯＰ」、「ＲＤＢ２」といった値が設定されている。
【００６１】
メッセージデータ内のプロトコル名の後には、メッセージの内容が設定されている。
このようなメッセージデータに基づいて、イベント５１〜５９の系列化を行った上で、トランザクションモデルが生成される。系列化を行う場合、まずメッセージデータの中から、イベントの開始を示す要求メッセージが検索される。次に、要求メッセージと同じセッション番号の応答メッセージが検索される。セッション番号が共通の要求メッセージと応答メッセージとにより、１つのイベントの開始時刻と終了時刻が表される。
【００６２】
図６には、２個のＨＴＴＰのイベント５１，５２、１個のＩＩＯＰのイベント５３、６個のＤＢアクセス処理のイベント５４〜５９が示されている。ここで、ＤＢアクセス処理のイベント５４〜５９に着目する。これらのイベント５４〜５９に対し、０．０２秒（２０ｍｓ）の時間間隔を閾値として系列化処理を施す場合を考える。
【００６３】
イベント５４〜５９は、連続して実行されている。このうちイベント５４の終了時刻からイベント５５の開始時刻までの時間間隔は、０．００４秒（４ｍｓ）という短い時間間隔である。このような短い時間間隔で連続して発生したＤＢアクセスのイベント５４，５５は、同一のＩＩＯＰのイベント５３から呼び出されたものと推定できる。そこで、２個のイベント５４，５５から１つの系列６１が生成される。
【００６４】
また、連続するイベント５６〜５９の時間間隔は、最も長い部分がイベント５８とイベント５９との間である。このイベント５８，５９間の時間間隔は０．０１３秒である。従って、イベント５６〜５９から１つの系列６２が生成される。
【００６５】
一方、イベント５５とイベント５６との時間間隔は、０．０２１秒（２１ｍｓ）である。そのため、イベント５５とイベント５６とは別系列と判断される。その結果、図６の例では系列化処理により２つの系列６１，６２を生成できる。
【００６６】
このように系列化を行うことで、トランザクションモデルの一般化が可能となる。ここでいうトランザクションモデルの一般化とは、生成されたトランザクションモデルを、個々のイベントの処理内容はほぼ同じであるがイベントの発生回数が異なるトランザクションにも適用可能とすることを意味する。
【００６７】
例えば、系列６２内のイベント５７は、ＤＢからデータを取得（ＦＥＴＣＨ）する処理である。また、イベント５８は、ＤＢ内のデータをアップデート（ＵＰＤＡＴＥ）する処理である。そこで、モデル生成部１６０は、トランザクションモデルを生成する際に、系列６２内のイベント５７，５８と同様のイベントが、複数回繰り返してもよいと定義する。これにより、データアクセス回数が異なるだけの複数のトランザクションからは、１つのトランザクションモデルが生成される。その結果、無駄なトランザクションモデルの生成を抑制し、メッセージ分析時のトランザクションモデルの検索処理負荷が軽減される。また、メッセージを分析する際に、分析部１８０はデータベースへのアップデート回数が異なるだけの複数のトランザクションを同種のトランザクションとしてまとめることができ、分析結果の正確性が増す。
【００６８】
以下、図７、図８に、系列化を行わない場合と系列化を行った場合との、生成されるトランザクションモデルの違いを示す。
図７は、系列化を行わない場合に生成されるトランザクションモデルの例を示す図である。図７の左側には、メッセージ記憶部１３０に格納されているメッセージデータを解析して得られるメッセージシーケンス７０の例を示している。図中、右向きの矢印は要求メッセージを示し、左向きの矢印は応答メッセージを示す。
【００６９】
このメッセージシーケンス７０は、クライアント２１からの要求メッセージに応じてＷｅｂサーバ４１、アプリケーションサーバ４２、およびＤＢサーバ４４が処理を実行している。クライアント２１からの処理要求は２回行われている。
【００７０】
１回目の処理要求で実行されたトランザクション７１では、クライアント２１からの要求メッセージに応じてＷｅｂサーバ４１でイベント７１ａが実行されている。アプリケーションサーバ４２では、Ｗｅｂサーバ４１からの要求メッセージに応じてイベント７１ｂが実行されている。ＤＢサーバ４４では、アプリケーションサーバ４２からの２回の要求メッセージに応じて、イベント７１ｃ，７１ｄを実行されている。
【００７１】
２回目の処理要求で実行されたトランザクション７２では、クライアント２１からの要求メッセージに応じてＷｅｂサーバ４１でイベント７２ａが実行されている。アプリケーションサーバ４２では、Ｗｅｂサーバ４１からの要求メッセージに応じてイベント７２ｂが実行されている。ＤＢサーバ４４では、アプリケーションサーバ４２からの３回の要求メッセージに応じて、イベント７２ｃ，７２ｄ，７２ｅを実行されている。
【００７２】
ここでトランザクション７１とトランザクション７２とは、Ｗｅｂサーバ４１やアプリケーションサーバ４２で実行されたイベントの内容は、同様の処理であるものとする。アプリケーションサーバ４２からＤＢサーバ４４への要求メッセージの送信回数の違いは、単にアクセス対象のデータ量の違いに起因しているものとする。
【００７３】
このような場合、メッセージシーケンス７０に基づいて系列化を行わずにモデル生成処理を行うと、各トランザクション７１，７２に基づいて個別のトランザクションモデル７３，７４が生成される。
【００７４】
図８は、系列化を行った場合に生成されるトランザクションモデルの例を示す図である。図８の例は、図７と同じメッセージシーケンス７０に対して系列化を行った後、トランザクションモデルの生成処理を行った場合である。メッセージシーケンス７０内のトランザクション７１では、イベント７１ｃ，７１ｄを含む系列７１ｅが生成されている。またトランザクション７２では、イベント７２ｃ，７２ｄ，７２ｅを含む系列７２ｆが生成されている。
【００７５】
このような系列化を行った後にトランザクションモデルの生成処理を行うと、２つのトランザクション７１，７２は、同種であるものとして統合した１つのトランザクションモデル７５が生成される。例えばモデル生成部１６０は、系列７１ｅ内の処理と、系列７２ｆ内の処理とが、同様なイベントの発生回数のみが異なることを検出し、該当イベントの複数回の繰り返しを許容するトランザクションモデル７５を生成する。
【００７６】
このようなトランザクションモデル７５を生成しておけば、分析時において、ＤＢサーバ４４におけるイベントの繰り返し回数が異なるだけのトランザクションを、同種のトランザクションとして分析することができる。
【００７７】
このように、イベントの系列化を行うことで生成するトランザクションモデルの一般化が図れる。ただし、時間間隔の閾値が不適当だとトランザクションモデルの一般化を適切に行うことができない。従って、適切な時間間隔の閾値を決定することが重要となる。
【００７８】
ここで、適切な系列に望まれる性質は、以下の通りである。
［第１の性質］すべての系列に呼び出し元として選択可能なイベントが存在すること。
［第２の性質］呼び出し元として選択可能なイベントの個数が少ないこと。
［第３の性質］系列全体の個数が少ないこと。
【００７９】
なお、系列の呼び出し元として選択可能なイベントとは、その系列の実行される時間帯を包含する時間帯に実行されている呼び出し元（上位層）のサーバのイベントである。時間帯包含するとは、系列の最初のイベントが上位層のイベントの開始時刻より後に始まり、系列の最後のイベントが上位層のイベントの終了時刻より前に終わることである。このような系列は、その上位層のイベントから呼び出された可能性がある。
【００８０】
第１の性質は、系列を含むトランザクションモデルを生成するために要求される性質である。すなわち、イベントの系列化は、上位層のサーバにおける１つのイベントにおいて、下位層のサーバに繰り返し送信される要求メッセージに基づくイベントをまとめるものである。そのため、生成された系列全体に対しも呼び出し元のイベントが存在していることが求められる。しかも、系列の呼び出し元のイベントが存在しない場合、その系列を含むトランザクションモデルを生成できず、系列化をした意義が失われてしまう。従って、生成した系列に呼び出し元となるイベントが存在しなければ、その系列を、系列に含まれるイベント単位の個別の系列に解体することとなる。
【００８１】
第２の性質は、生成されるトランザクションモデルの正確性を増すために要求される性質である。系列の呼び出し元として選択可能なイベント数が多いということは、その系列を用いて生成可能なトランザクションモデルのパターンが多数存在することを意味する。すると、生成されたトランザクションモデルが不適切である（他に適切なトランザクションモデルが存在していた）可能性が増大する。そのため、系列を生成する段階で、呼び出し元として選択可能なイベント数ができるだけ少ない数に絞り込まれていることが望まれる。この第２の性質は、時間間隔の閾値をできるだけ大きくすることで対応できる。すなわち、時間間隔の閾値が大きければ、多くのイベントを１つの系列にまとめることが可能となる。多くのイベントを含む系列は開始時刻から終了時刻までの時間が長くなり、その系列の呼び出し元として選択可能なイベントも限定される。
【００８２】
第３の性質は、系列化によるトランザクションモデル生成数の削減効果を高めるために要求される性質である。系列全体の個数が多いということは、本来１つの系列にすべきイベントが個別の系列に属している可能性が高いことを意味する。このように本来１つの系列にまとめるべきイベントが異なる系列に属すると、生成されるトランザクションモデルの数も増加し、系列化を行うことによるトランザクションモデル数削減効果が減少する。トランザクションモデル数が少なくできれば、分析部１８０によるメッセージを分析する際の探索空間が減少し、処理の効率化も図れる。
【００８３】
系列化閾値決定部１４０では、このような系列を生成可能な時間間隔の閾値を決定する。
図９は、系列化閾値決定部の内部機能を示すブロック図である。系列化閾値決定部１４０は、イベント情報テーブル生成部１４１、イベント情報記憶部１４２、時間間隔算出部１４３、候補閾値生成部１４４、系列生成部１４５、系列分割部１４６、および閾値決定部１４７を有している。
【００８４】
イベント情報テーブル生成部１４１は、メッセージ記憶部１３０に格納されたメッセージデータに基づいて、イベント情報テーブルを生成する。イベント情報テーブルは、イベントごとの開始時刻と終了時刻とが登録されたデータテーブルである。イベント情報テーブル生成部１４１は、生成したイベント情報テーブルをイベント情報記憶部１４２に格納する。
【００８５】
イベント情報記憶部１４２は、イベント情報テーブルを記憶する。例えば、ＲＡＭ１０２の記憶領域の一部がイベント情報記憶部１４２として使用される。
時間間隔算出部１４３は、イベント情報記憶部１４２内のイベント情報テーブルを参照し、イベント間の時間間隔を算出する。時間間隔算出部１４３は、算出した時間間隔をイベント情報記憶部１４２内のイベント情報テーブルに登録する。
【００８６】
候補閾値生成部１４４は、系列化のための時間間隔の閾値の候補となる値（候補閾値）を生成する。候補閾値生成部１４４は、閾値決定部１４７から選択された候補閾値が示されると、その候補閾値の前後の所定の範囲を細分化した候補閾値を再度生成する。そして、候補閾値生成部１４４は、生成した候補閾値を系列生成部１４５に渡す。
【００８７】
系列生成部１４５は、イベント情報記憶部１４２内のイベント情報テーブルを参照し、候補閾値生成部１４４から受け取った候補閾値を閾値としてイベントの系列化を行い、系列を生成する。系列生成部１４５は、生成した系列をイベント情報記憶部１４２内のイベント情報テーブル１４２ａに登録する。
【００８８】
系列分割部１４６は、生成された系列のうち、呼び出し元として選択可能なイベントが存在しない系列をイベントごとの系列に分割する。具体的には、系列生成部１４５で生成された系列を、イベント情報記憶部１４２を介して取得する。そして、系列分割部１４６は、メッセージ記憶部１３０を参照し、各系列の呼び出し元として選択可能なイベントを検索する。系列分割部１４６は、呼び出し元として選択可能なイベントが存在しない系列を、その系列に含まれるイベントごとの個別の系列に分割する。系列分割部１４６は、系列を分割した場合、その結果をイベント情報記憶部１４２内のイベント情報テーブルに登録する。
【００８９】
閾値決定部１４７は、イベント情報記憶部１４２内のイベント情報テーブルを参照し、系列の数が最も少ない候補閾値を選択する。閾値決定部１４７は、所定の終了条件を満たしているか否かを判断し、終了条件を満たしたときに選択している候補閾値を、トランザクションモデル生成時における系列生成の時間間隔の閾値と決定する。終了条件を満たしていなければ、閾値決定部１４７は、選択した候補閾値を候補閾値生成部１４４に通知し、次の候補閾値の生成を要求する。終了条件は、例えば候補閾値間の間隔が、予め設定された基準値以下となることである。閾値決定部１４７は、最終的に決定した閾値をモデル生成部１６０に通知する。
【００９０】
次に、系列化閾値決定部１４０で実行される処理の手順について説明する。
図１０は、系列化閾値決定処理の手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。なお、系列化閾値決定部１４０には、予め探索区間最小値ｔ１の初期値、探索区間最大値ｔ２の初期値、区間幅の基準値Ｄ、および分割数ｎが設定されているものとする。探索区間最小値ｔ１は、適切な閾値を探索する区間の最小値を示している。探索区間最大値ｔ２は、適切な閾値を探索する区間の最大値を示している。区間幅の基準値Ｄは、適切な閾値の探索の終了条件となる区間幅を示している。基準値Ｄ未満の幅の区間が次の探索区間とされた場合、系列化閾値決定処理が終了する。
【００９１】
［ステップＳ２１］イベント情報テーブル生成部１４１は、イベント情報テーブルを生成する。そして、イベント情報テーブル生成部１４１は、生成したイベント情報テーブルをイベント情報記憶部１４２に格納する。
【００９２】
［ステップＳ２２］時間間隔算出部１４３は、連続するイベント間の時間間隔を算出する。そして、時間間隔算出部１４３は、算出した時間間隔をイベント情報記憶部１４２内のイベント情報テーブルに登録する。
【００９３】
［ステップＳ２３］候補閾値生成部１４４は、複数の候補閾値δを生成する。具体的には、候補閾値生成部１４４は、探索区間最小値ｔ１と探索区間最大値ｔ２との間の区間を分割数ｎで分割する。候補閾値生成部１４４は、分割によって生成された各区間の端点を候補閾値δとする。
【００９４】
［ステップＳ２４］系列生成部１４５は、候補閾値δごとにステップＳ２５，Ｓ２６の処理を開始する。
［ステップＳ２５］系列生成部１４５は、候補閾値δを閾値としてイベントの系列化を行う。
【００９５】
［ステップＳ２６］系列分割部１４６は、呼び出し元候補として選択可能なイベントが存在しない系列を、内包するイベントごとの系列に分割する。
［ステップＳ２７］閾値決定部１４７は、ステップＳ２３で生成された端点ごとの候補閾値δそれぞれについてステップＳ２５，Ｓ２６の処理が完了したことを確認すると、処理をステップＳ２８に進める。
【００９６】
［ステップＳ２８］閾値決定部１４７は、ステップＳ２３で生成された候補閾値δの中から、系列の個数が最少になる候補閾値δを選択する。このとき系列の個数が最少となる候補閾値δが複数あれば、複数の候補閾値δが選択される。
【００９７】
［ステップＳ２９］閾値決定部１４７は、選択した候補閾値δのうちの値が最大の候補閾値δの値を、最良候補閾値Δとする。
［ステップＳ３０］閾値決定部１４７は、探索区間最小値ｔ１と探索区間最大値ｔ２との値を更新する。具体的には、閾値決定部１４７は分割幅ｄを以下の式で求める。
ｄ＝（ｔ２−ｔ１）／ｎ    ・・・（１）
すなわち、ステップＳ２３で分割したときの分割後の区間の幅が分割幅ｄである。閾値決定部１４７は、分割幅ｄを用いて以下の式により探索区間最小値ｔ１と探索区間最大値ｔ２とを更新する。
ｔ１＝ｍａｘ（ｔ１，Δ−ｄ）    ・・・（２）
ｔ２＝ｍｉｎ（ｔ２，Δ＋ｄ）    ・・・（３）
式（２）中の「ｍａｘ」は、括弧内の変数のうち大きい方の値を採ることを意味する。また、式（３）中の「ｍｉｎ」は、括弧内の変数のうち小さい方の値を採ることを意味する。
【００９８】
この式（２）、（３）により、探索区間最小値ｔ１については、現在の探索区間最小値ｔ１と、最良候補閾値Δより分割幅ｄだけ小さい値とのうち大きい方の値が、新たな探索区間最小値ｔ１とされる。また、探索区間最大値ｔ２については、現在の探索区間最大値ｔ２と、最良候補閾値Δより分割幅ｄだけ大きい値とのうち小さい方の値が、新たな探索区間最大値ｔ２とされる。このようにして探索区間最小値ｔ１と探索区間最大値ｔ２とを更新することで、最良候補閾値Δを中心として、分割幅ｄの２倍の幅の区間が次の探索区間となる。
【００９９】
ただし、最良候補閾値Δが元の探索区間最小値ｔ１と一致する場合には、探索区間最小値ｔ１は変更しない。この場合、次の探索区間の区間幅は分割幅ｄとなる。また、最良候補閾値Δが元の探索区間最大値ｔ２と一致する場合には、探索区間最大値ｔ２は変更しない。この場合にも、次の探索区間の区間幅は分割幅ｄとなる。
【０１００】
［ステップＳ３１］閾値決定部１４７は、終了条件を判断する。具体的には、探索区間最大値ｔ２から探索区間最小値ｔ１を減算した値（探索区間幅）が、区間幅の基準値Ｄより小さければ、終了条件が満たされたと判断する。終了条件が満たされた場合、処理がステップＳ３２に進められる。終了条件が満たされていなければ、処理がステップＳ２３に進められる。
【０１０１】
［ステップＳ３２］閾値決定部１４７は、現在の最良候補閾値Δの値を時間間隔の閾値として、閾値記憶部１５０に格納する。その後、系列化閾値決定処理が終了する。
次に、系列化閾値決定処理の各ステップについて詳細に説明する。まず、イベント情報テーブル生成部１４１によるイベント情報テーブルの生成処理（図１０のステップＳ２１）について詳細に説明する。
【０１０２】
図１１は、イベント情報テーブルのデータ構造例を示す図である。イベント情報テーブル１４２ａには、イベントＩＤ、開始時刻、終了時刻、時間間隔、および候補閾値の欄が設けられている。本実施の形態では、最下層のサーバであるＤＢサーバ４４で発生したイベントついてのみ系列化処理が行われる。そこで、イベント情報テーブル生成部１４１は、ＤＢサーバ４４で発生したイベントに関してのイベント情報テーブル１４２ａを生成する。
【０１０３】
イベントＩＤの欄には、最下層のサーバ（図２の例ではＤＢサーバ４４）で発生したイベントの識別情報（イベントＩＤ）が設定される。イベント情報テーブル生成部１４１は、メッセージ記憶部１３０内のメッセージデータを参照し、セッション番号が共通の要求メッセージと応答メッセージとの組みにより、１つのイベントを認識する。
【０１０４】
なお、図６の例では省略されているが、各メッセージデータに送信元のＩＰアドレスと宛先のＩＰアドレスとを含ませることで、要求メッセージか応答メッセージかの判断が可能である。すなわち、メッセージデータの送信元がアプリケーションサーバ４２のＩＰアドレスであり、宛先がＤＢサーバ４４のＩＰアドレスであれば、そのメッセージデータは要求メッセージを示している。逆に、メッセージデータの送信元がＤＢサーバ４４のＩＰアドレスであり、宛先がアプリケーションサーバ４２のＩＰアドレスであれば、そのメッセージデータは応答メッセージを示している。
【０１０５】
イベント情報テーブル生成部１４１は、開始時刻が早いイベント情報テーブル生成部１４１から昇順でイベントＩＤを設定する。そして、イベント情報テーブル生成部１４１は、イベントＩＤが小さいイベントの情報ほど上位になるように、各イベントのイベントＩＤをイベントＩＤの欄に設定する。
【０１０６】
開始時刻の欄には、対応するイベントの開始時刻が設定される。開始時刻は、イベントの発生要因となった要求メッセージの取得時刻である。なお、図１１では、説明を簡略化するために、時刻情報のうちミリ秒単位の数値のみを示している。
【０１０７】
終了時刻の欄には、対応するイベントの終了時刻が設定される。終了時刻は、イベントの終了時に送信される応答メッセージの取得時刻である。なお、図１１では、説明を簡略化するために、時刻情報のうちミリ秒単位の数値のみを示している。
【０１０８】
時間間隔の欄には、直前のイベントの終了時刻から、対応するイベントの開始時刻までの時間差（時間間隔）が設定される。時間間隔の値は時間間隔算出部１４３によって設定される。従って、イベント情報テーブル生成部１４１がイベント情報テーブル１４２ａを生成した時点では、時間間隔の欄は空欄である。
【０１０９】
候補閾値の欄には、候補閾値生成部１４４で生成された候補閾値ごとに、その候補閾値で系列化を行ったときに各イベントが属する系列の識別暗号（系列ＩＤ）が設定される。候補閾値と系列ＩＤとは、系列生成部１４５によって設定される。従って、イベント情報テーブル生成部１４１がイベント情報テーブル１４２ａを生成した時点では、候補閾値と系列ＩＤの欄は空欄である。
【０１１０】
このようなイベント情報テーブル１４２ａに対して、時間間隔算出部１４３によって時間間隔が設定される。以下、時間間隔算出処理（図１０のステップＳ２２）について詳細に説明する。
【０１１１】
図１２は、時間間隔の算出方法を示す図である。図１２に示すように、各イベントの時間間隔は、該当イベントの開始時刻から直前のイベントの終了時刻を減算した値である。式で表すと以下のようになる。
時間間隔＝イベントの開始時刻−直前のイベントの終了時刻    ・・・（４）
時間間隔算出部１４３は、先頭のイベントを除き、イベント情報テーブル１４２ａ内の各イベントの時間間隔を計算する。そして、時間間隔算出部１４３は、イベント情報テーブル１４２ａの時間間隔の欄に算出した値を設定する。
【０１１２】
図１３は、時間間隔設定後のイベント情報テーブルを示す図である。図１３に示すように、時間間隔算出部１４３によってイベントごとの時間間隔が、イベント情報テーブル１４２ａの時間間隔の欄に設定される。
【０１１３】
次に、候補閾値生成部１４４によって、候補閾値が生成される。以下、候補閾値の生成処理（ステップＳ２３）について詳細に説明する。
図１４は、候補閾値の生成例を示す図である。図１４の例では、探索区間最小値ｔ１の初期値が０ｍｓ、探索区間最大値ｔ２の初期値が２０ｍｓであるものとする。また、分割数ｎには１０が設定されているものとする。
【０１１４】
１回目の候補閾値δの生成処理では、０ｍｓから２０ｍｓの探索区間が１０分割される。そして、分割区間の端点が候補閾値δとなる。すると０ｍｓ、２ｍｓ、４ｍｓ、・・・、２０ｍｓが、それぞれ候補閾値δとなる。その後、系列化によって候補閾値δごとの系列が生成される。そして、最も系列数が少なくなる候補閾値δが選択され、最良候補閾値Δとなる。図１４の例では、６ｍｓの候補閾値δが選択され、最良候補閾値Δに設定される。
【０１１５】
その後、分割幅ｄが計算される。探索区間最小値ｔ１が０ｍｓ、探索区間最大値ｔ２が２０ｍｓ、分割数が１０であれば、分割幅ｄは２ｍｓ（ｄ＝（２０−０）／１０）となる。すると、最良候補閾値Δが６ｍｓであれば、探索区間最小値ｔ１は４（ｔ１＝６−２）となる。また、探索区間最大値ｔ２は８（ｔ２＝６＋２）となる。
【０１１６】
すると、２回目の候補閾値δの生成処理では、４ｍｓから８ｍｓの区間が１０分割されることとなる。その結果、４ｍｓ、４．４ｍｓ、４．８ｍｓ、・・・、８ｍｓが候補閾値δとなる。このうち、４ｍｓ、６ｍｓ、８ｍｓの候補閾値δについては、既に１回目の処理で系列化が行われている。従って、２回目の系列化処理では、４ｍｓ、６ｍｓ、８ｍｓ以外の候補閾値δについて系列化を行えばよい。このように徐々に探索区間が絞り込まれると共に、候補閾値生成の区切り幅が狭くなる。
【０１１７】
候補閾値δが生成されると、候補閾値δごとに系列生成処理が行われる。以下、系列生成処理（図１０のステップＳ２５）について詳細に説明する。
図１５は、候補閾値「５ｍｓ」での系列生成例を示す図である。系列生成部１４５は、イベント情報テーブル１４２ａを参照し、各イベントの時間間隔と候補閾値の値とを比較する。イベントの時間間隔が候補閾値以下であれば、系列生成部１４５は、そのイベントを直前のイベントと同じ系列にまとめる。一方、イベントの時間間隔が候補閾値を超えていれば、系列生成部１４５は、そのイベントと直前のイベントとを別の系列とする。
【０１１８】
図１５の例では、イベントＩＤ「２」のイベントの時間間隔は「３ｍｓ」である。すると、時間間隔が候補閾値「５ｍｓ」よりも小さいため、イベントＩＤ「１」のイベントと同じ系列にイベントＩＤ「２」のイベントがまとめられる。また、イベントＩＤ「４」のイベントの時間間隔は「６ｍｓ」である。すると、時間間隔が候補閾値「５ｍｓ」より大きいため、イベントＩＤ「４」のイベントは、イベントＩＤ「３」のイベントとは別の系列となる。
【０１１９】
このようにして生成された系列それぞれに対して、系列生成部１４５は、系列ＩＤを付与する。そして、系列生成部１４５は、イベント情報テーブル１４２ａの候補閾値の欄に候補閾値の値「５ｍｓ」を設定する。さらに、系列生成部１４５は、系列の生成を行った候補閾値の下の系列ＩＤの欄に、各イベントが属する系列の系列ＩＤを設定する。
【０１２０】
さらに系列生成部１４５は、生成した系列に関する系列情報テーブル１４２ｂを生成する。系列情報テーブル１４２ｂには、系列を生成したときの候補閾値が設定されている。また、系列情報テーブル１４２ｂには、系列ＩＤ、開始時刻、および終了時刻の欄が設けられている。
【０１２１】
系列ＩＤの欄には、生成された系列の系列ＩＤが設定される。開始時刻の欄には、生成された系列の開始時刻が設定される。系列の開始時刻は、その系列に含まれるイベントＩＤが最も小さいイベント（系列内の最初のイベント）の開始時刻である。終了時刻の欄には、生成された系列の終了時刻が設定される。系列の終了時刻は、その系列に含まれるイベントＩＤが最も大きいイベント（系列内の最後のイベント）の終了時刻である。
【０１２２】
系列生成部１４５は、生成した系列情報テーブル１４２ｂをイベント情報記憶部１４２内に格納する。
図１６は、候補閾値「２ｍｓ」での系列生成例を示す図である。候補閾値「２ｍｓ」で系列を生成すると、候補閾値「５ｍｓ」よりも多数の系列が生成される。例えば、イベントＩＤ「２」のイベントの時間間隔は「３ｍｓ」である。すると、時間間隔が候補閾値「２ｍｓ」より大きいため、イベントＩＤ「２」のイベントは、イベントＩＤ「１」のイベントとは別の系列となる。
【０１２３】
系列生成部１４５は、候補閾値「２ｍｓ」で生成した系列の系列情報テーブル１４２ｃを生成し、イベント情報記憶部１４２に格納する。
系列生成処理を行った段階では、候補閾値δの値が小さいほど系列数が多くなる。系列が生成されると、系列分割部１４６によって系列分割処理（ステップＳ２６）が行われる。以下、系列分割処理について詳細に説明する。
【０１２４】
図１７は、系列分割処理の第１の例を示す図である。図１７の例では、アプリケーションサーバ４２の２つのイベントＡ，Ｂが実行される間には、ＤＢサーバ４４の４つのイベントａ，ｂ，ｃ，ｄと、ＤＢサーバ４５の４つのイベントｅ，ｆ，ｇ，ｈとが実行されているものとする。イベントの系列化は、同一のＤＢサーバで実行されたイベント同士でのみ行われる。例えば、イベントｂとイベントｅとが同一系列になることはない。
【０１２５】
このようなイベントシーケンスがあるときに、イベントｂ，ｃ間の時間間隔を候補閾値δとして系列生成処理を行ったものとする。連続するイベントａ，ｂ，ｃ，ｄの各イベント間の時間間隔は、候補閾値以下である。そこで、最終的には、イベントｅ，ｆ，ｇ，ｈが属する系列８１ｂと、イベントａ，ｂ，ｃ，ｄが属する系列８１ａとが生成される。
【０１２６】
系列分割部１４６は、生成された系列８１ａ，８１ｂについて、呼び出し元として選択可能なアプリケーションサーバ４２のイベントが少なくとも１つ存在するか否かを判断する。アプリケーションサーバ４２のイベントＡ，ＢがＤＢサーバ４４，４５のイベントをまとめた系列８１ａ，８１ｂの呼び出し元であるためには、イベントＡ，Ｂの処理時間帯内に系列８１ａ，８１ｂの時間帯が包含されることが条件となる。すると、系列８１ａ，８１ｂには、いずれも呼び出し元として選択可能なイベントが存在しないことが分かる。
【０１２７】
系列分割部１４６は、呼び出し元候補のない系列８１ａ，８１ｂを、イベントごとの個別の系列に分割する。すると系列８１ａは、４つの系列８２ａ，８２ｂ，８２ｃ，８２ｄに分割される。同様に系列８１ｂは、４つの系列８２ｅ，８２ｆ，８２ｇ，８２ｈに分割される。その結果、系列数は「８」となる。
【０１２８】
図１８は、系列分割処理の第２の例を示す図である。図１８の例では、イベントシーケンスは図１７の例と同様である。ただし、系列生成処理における候補閾値δが、イベントｅとイベントｆとの時間間隔よりも若干短い時間である。この場合、図１７の例と比べると、イベントｅとイベントｆとの時間間隔は、候補閾値δより大きくなる。また、イベントｂとイベントｃとの時間間隔も、候補閾値δより大きくなる。
【０１２９】
その結果、系列生成処理によりイベントａ，ｂが属する系列８３ａ、イベントｃ，ｄが属する系列８３ｂ、イベントｅが属する系列８３ｃ、およびイベントｆ，ｇ，ｈが属する系列８３ｄが生成される。
【０１３０】
系列分割部１４６は、生成された系列８３ａ，８３ｂ，８３ｃ，８３ｄについて、呼び出し元として選択可能なアプリケーションサーバ４２のイベントが少なくとも１つ存在するか否かを判断する。すると、系列８３ｄには呼び出し元として選択可能なイベントが存在しないことが分かる。
【０１３１】
系列分割部１４６は、呼び出し元候補のない系列８３ｄを、イベントごとの個別の系列に分割する。すると系列８３ｄは、３つの系列８４ａ，８４ｂ，８４ｃに分割される。その結果、系列数は「６」となる。
【０１３２】
図１７、図１８に示したように、系列分割処理を行うことによって、候補閾値が大きすぎた場合、呼び出し元のイベントが存在しない系列が発生する。その場合、該当する系列がイベントごとの系列に分割される。イベントごとの系列に分割することで、呼び出し元の存在しない系列に属するイベント数を最小限に抑えることができる。
【０１３３】
このように候補閾値が大きすぎると系列生成処理で生成される系列数は少なくなるが、系列分割処理を行うことで最終的な系列数は多くなる。よって、値が大きすぎる候補閾値はステップＳ２８の処理において選択されなくなる。他方、候補閾値が小さすぎると系列生成処理で生成される系列数は最初から多くなる。よって、値が小さすぎる候補閾値はステップＳ２８の処理において選択されなくなる。従って、系列化により生成される系列数が少ない候補閾値を最良候補閾値として選択し、最良候補閾値周辺の細かな探索を繰り返すことで、適切な閾値を決定できる。
【０１３４】
そして、適切な時間間隔の閾値を用いて系列化を伴うモデル生成処理を実行すれば、適切なトランザクションモデルを生成することができる。
図１９は、系列を含むトランザクションモデルの例を示す図である。モデル記憶部１７０には、生成されたトランザクションモデル９０を示すモデル情報１７１が格納されている。系列を含むモデル情報１７１には、名寄せ規則１７１ａと系列一般化規則１７１ｂとが含まれる。
【０１３５】
名寄せ規則１７１ａには、トランザクションモデル９０に定義されたメッセージの内容が示されている。図１９の例では、要求メッセージとして、クライアントからＷｅｂサーバへのＨＴＴＰリクエストメッセージ、ＷｅｂサーバからアプリケーションサーバへのＩＩＯＰ（Internet Inter-ORB Protocol）メッセージがある。また、アプリケーションサーバからＤＢサーバへの要求メッセージには、データベースの「ＯＰＥＮ」、「ＦＥＴＣＨ」、「ＣＬＯＳＥ」それぞれを要求するメッセージがある。そして、各要求メッセージに対応する応答メッセージが定義されている。
【０１３６】
系列一般化規則１７１ｂには、系列に含まれるか否かを判定するための規則が定義されている。図１９の例では以下のように定義されている。
Ｒ１ＲＳ１＾｛１，１｝−Ｒ２ＲＳ１＾｛１−３｝−Ｒ３ＲＳ１＾｛１，１｝
ここでＲ１は、データベースの「ＯＰＥＮ」処理のイベントを示す。Ｒ２は、データベースの「ＦＥＴＣＨ」処理のイベントを示す。Ｒ３は、データベースの「ＣＬＯＳＥ」処理のイベントを示す。ＲＳ１は、ＤＢサーバからの応答メッセージを示す。「−」は、イベントの区切りを示す。系列一般化規則１７１ｂ内の左側に定義されたイベントほど、先に実行される。
【０１３７】
「Ｒ１ＲＳ１＾｛１，１｝」は、「Ｒ１」と「ＲＳ１」とで示されるイベントが１以上１以下含まれることを意味する。
「Ｒ２ＲＳ１＾｛１−３｝」は、「Ｒ２」と「ＲＳ１」とで示されるイベントが１以上３以下含まれることを意味する。
【０１３８】
「Ｒ３ＲＳ１＾｛１，１｝」は、「Ｒ３」と「ＲＳ１」とで示されるイベントが１以上１以下含まれることを意味する。
以上のようにして、適切な閾値を用いて系列化を行うことで、系列の一般化を図ったトランザクションモデルを生成することができる。しかも、適切な閾値を用いたことで、無関係のイベントが誤って同一系列に含まれる事態ことを抑制できる。また、適切な閾値を用いたことで、同様のイベントから呼び出される複数のイベントを１つの系列に的確にまとめることが可能となる。その結果、生成されるトランザクションモデルの数が抑制される。トランザクションモデルの数が少なければ、サービス運用時のトランザクションを分析する際に、発生したトランザクションとトランザクションモデルとの対比処理負荷が軽減される。
【０１３９】
また、本実施の形態では、処理の時間間隔の最小値と最大値を探索区間の初期値とし、探索区間の幅が基準値以下になるまで、探索区間の段階的な絞り込みが行われる。そして、探索区間の幅が小さくなる程、小さい刻み幅で候補閾値が生成される。これにより、最適な閾値を決定するまでに生成する候補閾値数を削減することができ、閾値決定までの処理負荷が軽減される。
【０１４０】
なお、すべてのイベントに呼び出し元がある場合には、すべての系列について呼び出し元がある最大の閾値を求めればよい。しかし実際のシステムでは、呼び出し元のアプリケーションのイベントが観測されないことがある。図１７、図１８の例では、イベントｇについては、それ単独で系列を構成しても、呼び出し元のイベントが存在しない。呼び出し元が存在しないイベントが検出される原因としては、以下のような原因がある。
【０１４１】
第１の原因は、ネットワーク上のパケット落ちである。ネットワーク上のパケットが大量にあることにより、メッセージの観測が追い着かない場合がある。呼び出し元のイベントに関するパケットが欠落すると、そのイベントが検出されず、呼び出し先のイベントのみが検出されることがある。この場合、呼び出し先のイベントに対応する呼び出し元のイベントを探しても、該当するイベントを見つけ出すことができない。
【０１４２】
第２の原因は、アプリケーションサーバ４２，４３の内部処理（Ｗｅｂサーバ４１からの要求に基づかない処理）に起因して発生するイベントの存在である。アプリケーションサーバ４２，４３では、内部の管理機能によってＤＢサーバ４４，４５に要求メッセージを出力する場合がある。このような場合、イベントｇのように呼び出し元のイベントが存在しない。
【０１４３】
呼び出し元のイベントが存在しないイベント（以下、「呼び出し元欠落イベント」という）が存在するとき、なるべく多くの系列に呼び出し元があり、かつ全体の系列数が少なくなる系列を与える閾値が、適切な閾値となる。呼び出し元欠落イベントについては、系列生成処理で他のイベントとまとめられたとしても、系列分割処理によりイベントごとの個別の系列に常に分割される。その結果、候補閾値がどのような値となっても、呼び出し元欠落イベントは、そのイベント単独の系列となる。その結果、候補閾値ごとに生成される系列数の比較において、呼び出し元欠落イベントの存在が、最良候補閾値の選択に大きな影響を及ぼすことはない。
【０１４４】
従って、本実施の形態によれば、呼び出し元欠落イベントの有無に拘わらず統一的な方法で最適な閾値を求めることができる。
なお、図１７、図１８の例では、イベントａ，ｂ，ｃ，ｄがＤＢサーバ４４で実行され、イベントｅ，ｆ，ｇ，ｈがＤＢサーバ４５で実行されたものとした。このため、イベントａ，ｂ，ｃ，ｄとイベントｅ，ｆ，ｇ，ｈとが互いに同じ系列を構成しないことを容易に判別できた。しかし、実際に運用中のシステムからメッセージシーケンスを生成すると、１つのＤＢサーバ（例えばＤＢサーバ４４）内の処理であっても、イベントａとイベントｅの用に処理の時間帯が重複する複数のイベントが発生することがある。このような場合、系列生成処理において、処理時間が重複するイベント同士は同じ系列に含めないようにする。
【０１４５】
例えば、図１７に示したイベントシーケンスであれば、以下のような手順で系列が生成される。なお、候補閾値δは、イベントｂとイベントｃとの時間間隔に等しいものとする。
【０１４６】
系列生成部１４５は、開始時刻が早いイベントから順に、系列が判断する。その場合、最初にイベントｅによって１つの系列８１ｂが生成される。次のイベントａは、イベントｅとの間に処理時間の重複がある。そこで、系列生成部１４５は、イベントａが属する２つめの系列８１ａを生成する。次のイベントｂは、イベントａとの間の時間間隔が候補閾値δ以下である。そのため系列生成部１４５は、イベントｂをイベントａと同じ系列８１ａにまとめる。
【０１４７】
次のイベントｆは、イベントｂとの間に処理時間の重複がある。そこで系列生成部１４５は、イベントｆの系列化の判断対象として、イベントｂが含まれる系列８１ａを除外する。するとイベントｆの系列化の判断対象は、系列８１ｂとなる。そこで、時間間隔算出部１４３は、イベント情報記憶部１４２に設定されているイベントｆの時間間隔を、イベントｅとの間の時間間隔に更新する。イベントｅとイベントｆとの時間間隔は候補閾値δ以下である。そこで、イベントｆは、イベントｅが属する系列８１ｂにまとめられる。以後、他のイベントｃ，ｄ，ｇ，ｆについても、属する系列が判断される。その結果、図１７と同様の２つの系列８１ａ，８１ｂが生成される。
【０１４８】
このように処理時間が重複するイベント同士を同じ系列に含めないことで、システム運用中に発生する複雑なメッセージシーケンスに基づいて、的確な閾値を決定することが可能となる。
【０１４９】
また、上記実施の形態では、系列数が最少となる候補閾値が複数ある場合、値が大きい方の候補閾値が閾値に決定される。これにより、ある程度の範囲内のいずれの候補閾値でも適切な系列化が可能な場合、その範囲のうち最も大きな候補閾値が閾値に決定される。閾値が大きな値である程、系列生成処理で生成される系列（分割処理の判断対象となる系列）の数が少なくなる。系列分割処理では、呼び出し元となるイベントの検索処理が必要となるため、分割処理の判断対象となる系列が少ないほど系列分割処理における負荷が軽減される。すなわちできるだけ大きな値の閾値候補を閾値とすることで、処理の効率化を図ることができる。
【０１５０】
しかも、閾値が大きいほど、トランザクションモデル生成時に１つの系列に多くのイベントをまとめることができる。すると、系列の開始時刻から終了時刻までの時間が長くなり、呼び出し元として選択可能なイベントが限定される。その結果、系列の呼び出し元イベントの選択を誤る可能性が低下し、トランザクションモデルの正確性が増す。
【０１５１】
また、上記実施の形態では、閾値の探索区間の最大値と最小値が初期値として指定される。これにより、無駄に広い範囲を探索区間とする必要がなくなり、処理の効率化が図れる。
【０１５２】
また、上記実施の形態では、探索区間が所定の数で分割され、分割により得られた区間の端点となる時間間隔が候補閾値となる。このように、探索区間内に均等間隔で候補閾値を生成することで探索漏れの発生を防止できる。
【０１５３】
また、上記実施の形態では、所定の探索終了条件が満たされるまで、既に生成されている候補閾値のうち系列数が最少となる候補閾値が最良候補閾値として選択される。そして、最良候補閾値を中心とした所定の範囲が探索区間として再度候補閾値が生成される。このようにして、徐々に探索区間を絞り込むことで、無駄な候補閾値が生成されるのを防止できる。生成される候補閾値の数が減れば、その分、処理負荷も軽減される。
【０１５４】
また、上記実施の形態では、最良候補閾値が入力されると、直前に候補閾値を生成したときの探索区間が所定の数で除算され、除算結果が最良候補閾値に加減算した値の範囲を新たな探索区間として候補閾値が生成される。これにより、最良候補閾値を中心とした範囲を次の探索区間とすることができる。これにより、探索範囲の絞り込みを的確に行うことができる。
【０１５５】
また、上記実施の形態では、メッセージ記憶部１３０内のメッセージに基づいて、要求メッセージと応答メッセージとの組から各サーバで実行された処理が判断される。さらに、要求メッセージの取得時刻が処理の開始時刻とされ、応答メッセージの取得時刻を処理の終了時刻とされる。そして、開始時刻と終了時刻とがイベント情報記憶部１４２に格納される。これにより、ネットワーク上を伝送されたメッセージに基づいて、イベント情報テーブル１４２ａを自動生成が可能となる。
【０１５６】
また、上記実施の形態では、サービスを提供する複数のサーバが接続されたネットワークから複数のサーバ間で送受信されたメッセージが取得される。そして、取得されたメッセージに取得時刻を付加してメッセージ記憶部１３０に格納される。これにより、実際に運用されているＷｅｂ３階層システムのメッセージ観測結果に基づいて、実態に即した閾値決定が可能となる。
【０１５７】
また、上記実施の形態では、自動で決定された閾値を用いて、その閾値以下の時間間隔で実行された連続する処理を１つの系列にまとめて、トランザクションモデルが生成される。これにより、閾値の決定とトランザクションモデルの生成とを一連の処理で実行できる。すなわちトランザクションモデルを生成するときに、トランザクションモデル生成元となるメッセージデータに基づいて、系列化のための適切な閾値が決定できる。その結果、システムの運用状況に応じて適切な閾値が異なる場合であっても、その都度適切な閾値を用いてトランザクションモデルを生成できる。
【０１５８】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、サービス処理状況分析装置１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷなどがある。光磁気記録媒体には、ＭＯなどがある。
【０１５９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６０】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６１】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０１６２】
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
（付記１）  サービスが多階層で処理されるトランザクションのモデル生成支援処理をコンピュータに実行させるトランザクションモデル生成支援プログラムにおいて、
前記コンピュータを、
前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する時間間隔計算手段、
処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する候補閾値生成手段、
前記候補閾値生成手段で生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する系列生成手段、
前記系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する系列分割手段、
系列数が最少となる前記候補閾値を前記閾値に決定する閾値決定手段、
として機能させることを特徴とするトランザクションモデル生成支援プログラム。
【０１６３】
（付記２）  前記閾値決定手段は、系列数が最少となる前記候補閾値が複数ある場合、値が大きい方の前記候補閾値を前記閾値に決定することを特徴とする付記１記載のトランザクションモデル生成支援プログラム。
【０１６４】
（付記３）  前記候補閾値生成手段は、前記閾値の探索区間が予め指定されており、前記探索区間内の前記候補閾値を生成することを特徴とする付記１記載のトランザクションモデル生成支援プログラム。
【０１６５】
（付記４）  前記候補閾値生成手段は、前記探索区間を所定の数で分割し、分割により得られた区間の端点となる時間間隔を前記候補閾値とすることを特徴とする付記３記載のトランザクションモデル生成支援プログラム。
【０１６６】
（付記５）  前記候補閾値生成手段は、最良候補閾値が入力されると、前記最良候補閾値を中心とした所定の範囲を前記探索区間として再度前記候補閾値を生成し、
前記閾値決定手段は、所定の探索終了条件が満たされるまで、既に生成されている前記候補閾値のうち系列数が最少となる前記候補閾値を前記最良候補閾値として選択し、前記候補閾値生成手段に対して前記最良候補閾値を出力することを特徴とする付記３記載のトランザクションモデル生成支援プログラム。
【０１６７】
（付記６）  前記候補閾値生成手段は、前記最良候補閾値が入力されると、直前に前記候補閾値を生成したときの前記探索区間を所定の数で除算し、除算結果を前記最良候補閾値に加減算した値の範囲を新たな前記探索区間として前記候補閾値を生成することを特徴とする付記５記載のトランザクションモデル生成支援プログラム。
【０１６８】
（付記７）  前記コンピュータを、さらに、
前記サービスの各階層の処理を実行する複数のサーバ間で受け渡されるメッセージと、前記メッセージの取得時刻とが格納されたメッセージ記憶手段を参照し、要求メッセージと応答メッセージとの組から各サーバで実行された処理を判断し、前記要求メッセージの取得時刻を前記処理の開始時刻とし、前記応答メッセージの取得時刻を前記処理の終了時刻として、前記処理の開始時刻と終了時刻とを前記処理時間情報記憶手段に格納する処理時間設定手段として機能させることを特徴とする付記１記載のトランザクションモデル生成支援プログラム。
【０１６９】
（付記８）  前記コンピュータを、さらに、
前記サービスを提供する複数のサーバが接続されたネットワークから前記複数のサーバ間で送受信されたメッセージを取得し、取得したメッセージに取得時刻を付加して前記メッセージ記憶手段に格納するメッセージ観測手段をさらに有することを特徴とする付記７記載のトランザクションモデル生成支援プログラム。
【０１７０】
（付記９）  前記コンピュータを、さらに、
前記閾値決定手段で決定された前記閾値以下の時間間隔で実行された連続する処理を１つの系列にまとめて、トランザクションモデルを生成するトランザクションモデル生成手段、
として機能させることを特徴とする付記１記載のトランザクションモデル生成支援プログラム。
【０１７１】
（付記１０）  サービスが多階層で処理されるトランザクションのモデル生成支援を行うトランザクションモデル生成支援装置において、
前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する時間間隔計算手段と、
処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する候補閾値生成手段と、
前記候補閾値生成手段で生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する系列生成手段と、
前記系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する系列分割手段と、
系列数が最少となる前記候補閾値を前記閾値に決定する閾値決定手段と、
を有することを特徴とするトランザクションモデル生成支援装置。
【０１７２】
（付記１１）  サービスが多階層で処理されるトランザクションのモデル生成支援処理をコンピュータに実行させるトランザクションモデル生成支援方法において、
前記コンピュータが、
前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算し、
処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成し、
生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成し、
生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割し、
系列数が最少となる前記候補閾値を前記閾値に決定する、
ことを特徴とするトランザクションモデル生成支援方法。
【図面の簡単な説明】
【０１７３】
【図１】実施の形態の概要を示す図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本実施の形態に用いるサービス処理状況分析装置のハードウェア構成例を示す図である。
【図４】サービス処理状況分析装置の機能を示すブロック図である。
【図５】サービス処理状況分析処理の手順を示すフローチャートである。
【図６】メッセージ記憶部内のメッセージシーケンスを示す図である。
【図７】系列化を行わない場合に生成されるトランザクションモデルの例を示す図である。
【図８】系列化を行った場合に生成されるトランザクションモデルの例を示す図である。
【図９】系列化閾値決定部の内部機能を示すブロック図である。
【図１０】系列化閾値決定処理の手順を示すフローチャートである。
【図１１】イベント情報テーブルのデータ構造例を示す図である。
【図１２】時間間隔の算出方法を示す図である。
【図１３】時間間隔設定後のイベント情報テーブルを示す図である。
【図１４】候補閾値の生成例を示す図である。
【図１５】候補閾値「５ｍｓ」での系列生成例を示す図である。
【図１６】候補閾値「２ｍｓ」での系列生成例を示す図である。
【図１７】系列分割処理の第１の例を示す図である。
【図１８】系列分割処理の第２の例を示す図である。
【図１９】系列を含むトランザクションモデルの例を示す図である。
【符号の説明】
【０１７４】
１ａ  メッセージ観測手段
１ｂ  メッセージ記憶手段
１ｃ  処理時間設定手段
１ｄ  処理時間情報記憶手段
１ｅ  時間間隔計算手段
１ｆ  候補閾値生成手段
１ｇ  系列生成手段
１ｈ  系列分割手段
１ｉ  閾値決定手段
１ｊ  トランザクションモデル生成手段
２  クライアント
３〜５  サーバ
６〜８  ネットワーク
【図１】
2010146146.tif 000003
【図２】
2010146146.tif 000004
【図３】
2010146146.tif 000005
【図４】
2010146146.tif 000006
【図５】
2010146146.tif 000007
【図６】
2010146146.tif 000008
【図７】
2010146146.tif 000009
【図８】
2010146146.tif 000010
【図９】
2010146146.tif 000011
【図１０】
2010146146.tif 000012
【図１１】
2010146146.tif 000013
【図１２】
2010146146.tif 000014
【図１３】
2010146146.tif 000015
【図１４】
2010146146.tif 000016
【図１５】
2010146146.tif 000017
【図１６】
2010146146.tif 000018
【図１７】
2010146146.tif 000019
【図１８】
2010146146.tif 000020
【図１９】
2010146146.tif 000021