(57)【要約】【課題】コンピュータの処理時間を定義する処理時間定義生成プログラムを提供する。【解決手段】定義情報入力画面を表示するステップは、メッセージの送受信の階層を第１の座標値に対応させ、メッセージの出現の順を第２の座標値に対応させた定義情報入力画面において、メッセージの各々が矢印で表示された定義情報入力画面を表示する。定義情報入力画面への入力を受け付けるステップは、制約条件の下で、定義情報入力画面への入力を受け付ける。制約条件は、メッセージを表す矢印の始点及び終点を指定する入力のみを許容し、メッセージ処理経路の始点及び終点を制約し、指定する始点又は終点の時刻を制約する。処理時間定義を生成するステップは、受け付けられた入力に基づいて、複数のコンピュータの各々における処理時間を定義する。【選択図】図２
2010176609.tif 000002
【特許請求の範囲】
【請求項１】
処理時間の算出対象である複数のコンピュータを含むコンピュータシステムにおける処理時間を定義する処理時間定義生成プログラムであって、
前記処理時間定義生成プログラムは、コンピュータに、
前記複数のコンピュータにおける複数のメッセージの送受信の階層を第１の座標値に対応させ、前記複数のメッセージの出現の順を第２の座標値に対応させた定義情報入力画面において、前記メッセージの各々が、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ矢印であって、前記複数のメッセージの出現の順に対応する位置に存在する矢印で表示された定義情報入力画面を表示するステップと、
前記メッセージを表す矢印の始点及び終点を指定する入力のみを許容し、メッセージ処理経路の始点として最初のメッセージを送信した階層を指定する入力のみを許容し、前記メッセージ処理経路の終点として前記メッセージ処理経路の始点とされた階層を指定する入力のみを許容し、前記メッセージ処理経路として、新たに指定する始点又は終点の時刻が先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容するという制約条件の下で、前記定義情報入力画面への入力を受け付けるステップと、
前記受け付けられた入力に基づいて前記メッセージ処理経路を定め、前記メッセージ処理経路に従って前記複数のコンピュータの各々における前記処理時間を定義する処理時間定義を生成するステップとを含む
ことを特徴とする処理時間定義生成プログラム。
【請求項２】
前記メッセージ処理経路の始点として、最初のメッセージを送信したクライアントであるコンピュータを指定する入力のみを許容し、前記メッセージ処理経路の終点として、前記クライアントであるコンピュータを指定する入力のみを許容する
ことを特徴とする請求項１記載の処理時間定義生成プログラム。
【請求項３】
前記メッセージ処理経路は、前記定義情報入力画面において、前記受け付けられた入力を結ぶことにより得られる連続した線分である
ことを特徴とする請求項１記載の処理時間定義生成プログラム。
【請求項４】
処理時間の算出対象である複数のコンピュータを含むコンピュータシステムにおける処理時間を定義する処理時間定義生成方法であって、
コンピュータに、
前記複数のコンピュータにおける複数のメッセージの送受信の階層を第１の座標値に対応させ、前記複数のメッセージの出現の順を第２の座標値に対応させた定義情報入力画面において、前記メッセージの各々が、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ矢印であって、前記複数のメッセージの出現の順に対応する位置に存在する矢印で表示された定義情報入力画面を表示するステップと、
前記メッセージを表す矢印の始点及び終点を指定する入力のみを許容し、メッセージ処理経路の始点として最初のメッセージを送信した階層を指定する入力のみを許容し、前記メッセージ処理経路の終点として前記メッセージ処理経路の始点とされた階層を指定する入力のみを許容し、前記メッセージ処理経路として、新たに指定する始点又は終点の時刻が先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容するという制約条件の下で、前記定義情報入力画面への入力を受け付けるステップと、
前記受け付けられた入力に基づいて前記メッセージ処理経路を定め、前記メッセージ処理経路に従って前記複数のコンピュータの各々における前記処理時間を定義する処理時間定義を生成するステップとを実行させる
ことを特徴とする処理時間定義生成方法。
【請求項５】
処理時間の算出対象である複数のコンピュータを含むコンピュータシステムにおける処理時間を定義する処理時間定義生成機能を有する情報処理装置であって、
前記複数のコンピュータにおける複数のメッセージの送受信の階層を第１の座標値に対応させ、前記複数のメッセージの出現の順を第２の座標値に対応させた定義情報入力画面において、前記メッセージの各々が、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ矢印であって、前記複数のメッセージの出現の順に対応する位置に存在する矢印で表示された定義情報入力画面を表示する表示処理部と、
前記メッセージを表す矢印の始点及び終点を指定する入力のみを許容し、メッセージ処理経路の始点として最初のメッセージを送信した階層を指定する入力のみを許容し、前記メッセージ処理経路の終点として前記メッセージ処理経路の始点とされた階層を指定する入力のみを許容し、前記メッセージ処理経路として、新たに指定する始点又は終点の時刻が先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容するという制約条件の下で、前記定義情報入力画面への入力を受け付ける入力処理部と、
前記受け付けられた入力に基づいて前記メッセージ処理経路を定め、前記メッセージ処理経路に従って前記複数のコンピュータの各々における前記処理時間を定義する処理時間定義を生成する生成処理部とを備える
ことを特徴とする処理時間定義生成機能を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおける処理時間を定義する処理時間定義生成プログラム、処理時間定義生成方法及び処理時間定義生成機能を有する情報処理装置に関する。
【背景技術】
【０００２】
コンピュータシステムの１つに、複数のサーバが相互に通信することにより、クライアントからの要求を処理するシステムがある。このようなシステムの代表として、例えば、Ｅコマースサービスシステムがある。このようなコンピュータシステムにおいて、コンピュータシステムの性能を解析することが求められる。
【０００３】
なお、例えば、ネットワークからメッセージを収集して解析し、トランザクションモデルを生成し、トランザクションの処理状態を分析するシステム分析プログラムが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１１６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のコンピュータを含むコンピュータシステムの性能を解析するためには、種々のパラメータが考えられる。このようなパラメータの１つとして、各コンピュータにおける処理時間を採用することが考えられる。一方、コンピュータシステムには種々の処理が存在する。従って、各コンピュータにおける処理時間を算出する場合、コンピュータシステムにおける処理を考慮した上で、各コンピュータにおける処理時間を算出する必要がある。
【０００６】
本発明は、コンピュータシステムにおけるコンピュータの処理時間を定義する処理時間定義生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
開示される処理時間定義生成プログラムは、定義情報入力画面を表示するステップと、定義情報入力画面への入力を受け付けるステップと、処理時間定義を生成するステップとを含む。定義情報入力画面を表示するステップは、複数のコンピュータにおける複数のメッセージの送受信の階層を第１の座標値に対応させ、複数のメッセージの出現の順を第２の座標値に対応させた定義情報入力画面において、メッセージの各々が、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ矢印であって、複数のメッセージの出現の順に対応する位置に存在する矢印で表示された定義情報入力画面を表示する。定義情報入力画面への入力を受け付けるステップは、制約条件の下で、定義情報入力画面への入力を受け付ける。制約条件は、以下のようである。即ち、メッセージを表す矢印の始点及び終点を指定する入力のみを許容し、メッセージ処理経路の始点として最初のメッセージを送信した階層を指定する入力のみを許容し、メッセージ処理経路の終点としてメッセージ処理経路の始点とされた階層を指定する入力のみを許容し、メッセージ処理経路として、新たに指定する始点又は終点の時刻が先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容する。処理時間定義を生成するステップは、受け付けられた入力に基づいてメッセージ処理経路を定め、このメッセージ処理経路に従って複数のコンピュータの各々における処理時間を定義する。
【発明の効果】
【０００８】
開示される処理時間定義生成プログラムによれば、コンピュータシステムのサーバ間におけるメッセージの送受信に種々の形態が存在する場合であっても、各コンピュータにおける処理時間を容易に定義することができる。また、処理時間の算出において、処理時間が重ならないようにして、並列処理の場合等について処理時間を定義することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施態様による処理時間算出装置の構成を示す図である。
【図２】本発明の一実施態様による処理時間算出装置の構成を示す図である。
【図３】トランザクション抽出結果の一例及び処理時間の一例を示す図である。
【図４】トランザクション抽出結果の一例及びトポロジ情報抽出結果の一例を示す図である。
【図５】処理時間算出装置のトポロジ情報抽出の処理フローを示す図である。
【図６】トランザクション抽出結果からトポロジ情報抽出した動作を示す図である。
【図７】モデルリポジトリ更新の動作を示す図である。
【図８】定義情報の入力のための定義情報入力画面の一例を示す図である。
【図９】定義情報入力画面への定義情報の入力の一例を示す図である。
【図１０】処理時間が定義されたモデルトポロジの一例を示す図である。
【図１１】定義情報入力画面への定義情報の入力処理フローを示す図である。
【図１２】モデルトポロジレジストリの処理時間定義の処理フローを示す図である。
【図１３】マウスのクリック処理フローを示す図である。
【図１４】トポロジ情報のリストを示す図である。
【図１５】トランザクションの処理時間の情報を示す図である。
【図１６】本発明の背景の説明図である。
【図１７】本発明の背景の説明図である。
【発明を実施するための形態】
【００１０】
図１６及び図１７は、複数の処理サーバが相互に通信することによりクライアントマシンからの要求を処理するシステムにおける、トランザクションの一例を示す図である。
【００１１】
例えば、コンピュータシステムが、図１６に示すように、４個のサーバの間において相互に通信することにより、クライアントからの要求を処理する場合がある。本発明者は、このような場合において、このコンピュータシステムの性能を解析するために、４個のサーバの各々における処理時間と、４個のサーバの間における通信時間（図１６において通信オーバヘッドと表示）とを算出することを検討した。
【００１２】
なお、以下において、クライアントが処理の要求を送信してから応答を得るまでに要した時間を、全レスポンス時間と言う。全レスポンス時間における各サーバの処理時間の占める割合を、処理時間の内訳と言う。処理時間と通信時間の合計とを合わせて、単に処理時間と言う。
【００１３】
本発明者の検討によれば、処理時間の算出においては、サーバ間におけるメッセージの送受信の形態を考慮する必要がある。
【００１４】
例えば、サーバ間におけるメッセージの送受信が図１６に示すように行われる場合、サーバの各々における処理時間は比較的容易に定義することができる。例えば、サーバＡにおける処理時間は、クライアントから要求を受信してからサーバＢに要求を送信するまでに要した時間と、サーバＢから応答を受信してからクライアントに応答を送信するまでに要した時間との同系である。サーバＢ〜Ｄについても、同様に処理時間を定めることができる。
【００１５】
しかし、実際には、サーバ間におけるメッセージの送受信には、図１７（Ａ）〜図１７（Ｄ）に示すように、種々の形態が存在する。
【００１６】
図１７（Ａ）は、メッセージの送受信が同期して行われる例である。図１７（Ａ）において、サーバＡがサーバＢに対して時刻ｔ１にメッセージＳ１を送信し、その後、サーバＢがサーバＡに対して時刻ｔ２にメッセージＲ１を送信する。このように、同期とは、２個のサーバ間において、送信されたメッセージの数と受信されたメッセージの数とが一致し、かつ、送信と受信とが交互に行われる場合である。同期においては、例えば、送信されたメッセージＳ１と受信されたメッセージＲ１との対応が明確である。従って、サーバＢにおける処理時間Δｔ１は、時刻ｔ２から時刻ｔ１を引くことにより、容易に求めることができる。
【００１７】
なお、図１７（Ａ）において、サーバＡがクライアントであり、サーバＢがサーバＡであっても良い。これは、図１７（Ｂ）〜図１７（Ｄ）においても同様である。
【００１８】
図１７（Ｂ）は、メッセージの送受信が非同期に行われる例である。図１７（Ｂ）において、サーバＡがサーバＢに対して時刻ｔ３にメッセージＳ２を送信し、その後、サーバＢが、サーバＡに対して、時刻ｔ４にメッセージＲ２を、時刻ｔ５にメッセージＲ３を送信する。このように、非同期とは、２個のサーバ間において、送信されたメッセージの数と受信されたメッセージの数とが一致しない場合、又は、両者が一致しても送信と受信とが交互に行われない場合である。非同期においては、例えば、送信されたメッセージＳ２と受信されたメッセージＲ２及びＲ３との対応が明確でない。従って、サーバＢにおける処理時間は、時刻ｔ４から時刻ｔ３を引いたΔｔ２であるのか、又は、時刻ｔ５から時刻ｔ３を引いたΔｔ３であるのかを定義する必要が生じる。
【００１９】
なお、時間Δｔ２又は時間Δｔ３のいずれをサーバＢにおける処理時間とするかは、サーバＢにおける処理の内容に基づいて定義される。この定義は、解析を行うユーザが定めるべきものである。
【００２０】
図１７（Ｃ）は、メッセージの送受信がシーケンシャルに行われる例である。図１７（Ｃ）において、他のサーバから時刻ｔ６にメッセージＳ３を受信したサーバＡが、メッセージＳ３の受信に基づいて、サーバＢに対して時刻ｔ７にメッセージＳ４を送信し、その後、サーバＢがサーバＡに対して時刻ｔ８にメッセージＲ４を送信する。このように、シーケンシャルとは、２個のサーバ間において、メッセージを受信した一方のサーバが、受信したメッセージに基づいて第１の要求のメッセージを他方のサーバに送信した後、第２の要求のメッセージを他方のサーバに送信する前に、他方のサーバからメッセージを受信する場合である。シーケンシャルにおいては、送信されたメッセージＳ４と受信されたメッセージＲ４との対応が明確である。従って、サーバＢにおける処理時間Δｔ４は、時刻ｔ８から時刻ｔ７を引くことにより、容易に求めることができる。
【００２１】
図１７（Ｄ）は、メッセージの送受信が並列に行われる例である。図１７（Ｄ）において、他のサーバから時刻ｔ９にメッセージＳ５を受信したサーバＡが、メッセージＳ５の受信に基づいて、サーバＢに対して、時刻ｔ１０にメッセージＳ６を、時刻ｔ１１にメッセージＳ７を送信し、その後、サーバＢが、サーバＡに対して、時刻ｔ１２にメッセージＲ５を、時刻ｔ１２にメッセージＲ６を送信する。このように、並列とは、２個のサーバ間において、あるメッセージを受信した一方のサーバが、受信したメッセージに基づいて第１の要求のメッセージを他方のサーバに送信した後、他方のサーバからメッセージを受信する前に、第２の要求のメッセージを他方のサーバに送信する場合である。並列においては、例えば、送信されたメッセージＳ６と受信されたメッセージＲ５及びＲ６との対応が明確でない。従って、サーバＢにおける処理時間は、時刻ｔ１２から時刻ｔ１０を引いたΔｔ５であるのか、又は、時刻ｔ１３から時刻ｔ１０を引いたΔｔ６であるのかを定義する必要が生じる。
【００２２】
なお、時間Δｔ５又は時間Δｔ６のいずれをサーバＢにおける処理時間とするかは、サーバＢにおける処理の内容に基づいて定義される。この定義は、解析を行うユーザが定めるべきものである。
【００２３】
このように、サーバ間におけるメッセージの送受信には種々の形態が存在する。図１７（Ｂ）及び図１７（Ｄ）の場合には、処理時間の定義が困難であり、処理時間を一律に算出することはできない。また、実際には、図１７（Ａ）〜図１７（Ｄ）の場合が混在するので、より一層処理時間の定義が困難であり、処理時間を一律に算出することはできない。従って、例えば、処理時間算出プログラムにより、処理時間を一律に算出することはできない。
【００２４】
また、処理時間の算出において、図１６に示すように、各サーバにおける処理時間として定義した時間の和が、クライアントからみた総処理時間（全レスポンス時間）と一致する必要がある。前述したように、各サーバにおける処理時間の定義は、解析を行うユーザにより定められる。従って、処理時間が重ならないように、各々の処理時間を定義することが必要である。以上に加えて、各々の処理時間が正しく定義されているかの検証を省略できるようにすることが望ましい。
【００２５】
図１及び図２は、本発明の一実施態様である処理時間算出システムの構成を示す図である。
【００２６】
処理時間算出システムは、対象システム１と、トランザクション抽出装置２と、トランザクション抽出結果ファイル３と、処理時間算出装置４とを備える。
【００２７】
トランザクション抽出装置２は、図１に示すように、処理時間の算出対象となる対象システム１から、対象システムで実行されるトランザクションを抽出することにより、トランザクション抽出結果ファイル３を得る。処理時間算出装置４は、入力されたトランザクション抽出結果ファイル３を解析して、出力としての処理時間算出結果５を得る。
【００２８】
対象システム１は、処理時間の算出対象である複数のコンピュータを含むコンピュータシステムである。対象システム１は、クライアントマシン（以下、クライアント）であるコンピュータと、複数のサーバマシン（以下、サーバ）であるコンピュータとがネットワークにより接続されたコンピュータシステムである。
【００２９】
図１に示す対象システム１は、複数の処理サーバが相互に通信することによりクライアントからの要求を処理する。対象システム１のネットワークは、例えば、当該ネットワークに接続されたネットワークスイッチを備える。ネットワークスイッチは、クライアントとサーバとの間で通信されるメッセージをミラーリングし（コピーし）、ミラーリングしたメッセージをトランザクション抽出装置２に出力する。
【００３０】
トランザクション抽出装置２は、対象システム１において送受信されたメッセージをコピーし、コピーしたメッセージから対象システム１におけるトランザクションを抽出して、トランザクション抽出結果ファイル３を出力する。トランザクション抽出結果ファイル３は、１又は複数のトランザクション抽出結果を含む。各トランザクション抽出結果は、例えば、送信元アドレス、送信先アドレス、メッセージタイプ、送信時刻、受信時刻を含む。トランザクション抽出結果ファイル３は、図１の例では、トランザクション抽出装置２又は処理時間算出装置４が備える記憶装置に格納される。
【００３１】
処理時間算出装置４は、対象システム１の各サーバにおける処理時間とサーバ間における通信時間とを算出する。具体的には、処理時間算出装置４は、トランザクション抽出結果ファイル３から１個のトランザクション抽出結果を読み出し、読みだしたトランザクション抽出結果についての処理時間を算出して、処理時間算出結果５として出力する。
【００３２】
処理時間算出結果５は、トランザクション抽出結果に含まれるトランザクションについての各々のサーバ等における処理時間を示す。処理時間算出結果５は、例えば、ファイル出力、画面表示又は印刷出力される。トランザクション抽出結果の定義については、図３を参照して後述する。処理時間については後述する。
【００３３】
処理時間算出装置４は、図２に示すように、モデルトポロジ識別部４１と、モデルトポロジレジストリ４２と、処理時間定義処理部４３と、処理時間算出部４４と、入出力装置４５とを備える。
【００３４】
モデルトポロジ識別部４１は、トランザクション抽出結果から、トポロジ情報を抽出する抽出手段である。トランザクション抽出結果は、図４（Ａ）を参照して後述するように、トランザクション抽出結果に現れる複数のメッセージの各々について、送信元アドレス、送信先アドレス、メッセージタイプ、送信時刻、受信時刻を含む情報である。トポロジ情報は、図４（Ｂ）を参照して後述するように、トランザクション抽出結果に現れる複数のメッセージの各々について、送信元アドレス、送信先アドレス、メッセージタイプ、送信順ＳｅｎｄＯｒｄｅｒ、受信順ＲｅｃｖＯｒｄｅｒを含む情報である。従って、トポロジ情報は、現実の送受信の時刻ではなく、送受信の順番により定められる情報である。送受信の順番については後述する。
【００３５】
具体的には、モデルトポロジ識別部４１は、新たなトランザクション抽出結果ファイル３が処理時間算出装置４に入力されると、これから１個のトランザクション抽出結果を読み出す。モデルトポロジ識別部４１は、読み出したトランザクション抽出結果に対応するトポロジ情報を抽出し、モデルトポロジレジストリ４２に登録する。この時点では、トポロジ情報について、サーバ等にどのように処理時間を割当てるかは定義されていない（処理時間が未定義である）。従って、モデルトポロジレジストリ４２には、処理時間が未定義のトポロジ情報が存在する可能性がある。処理時間が未定義のトポロジ情報は、未定義のモデルトポロジである。例えば、図２において、処理時間が未定義のトポロジ情報として、トポロジ情報「ＭＯＤＥＬ１、トポロジ１−２、未定義」が存在する。
【００３６】
一方、後述するように、モデルトポロジレジストリ４２には、処理時間が定義されたトポロジ情報が存在する。処理時間が定義されたトポロジ情報は、処理時間が定義されたプログラム（処理時間定義とも言う）であり、モデルトポロジである。例えば、図２において、処理時間が定義されたトポロジ情報として、トポロジ情報「ＭＯＤＥＬ１、トポロジ１−１、処理時間定義１」及び「ＭＯＤＥＬ３、トポロジ３−１、処理時間定義３」が存在する。
【００３７】
図３（Ａ）は、トランザクション抽出結果の一例を示す。トランザクション抽出結果は、クライアントとサーバの間で取り交わされるメッセージや、複数のサーバの間で取り交わされるメッセージを時系列的に表したものである。トランザクション抽出結果ファイル３は、少なくとも１個のトランザクション抽出結果を含む。トランザクション抽出結果は、１又は複数のトランザクション毎に生成される。
【００３８】
ｍｏｄｅｌ１は、トランザクション抽出結果ファイル３に格納されたトランザクション抽出結果のひとつである。ｍｏｄｅｌ１は、更に、２個のトランザクション、即ち、ｔｒａｎｓ１とｔｒａｎｓ２を含む。即ち、ｍｏｄｅｌ１には、２個のトランザクションの抽出結果が反映されている。ｍｏｄｅｌ１に表記されたクライアント、サーバＡ及びサーバＢは、対象システム１内のネットワークに接続されたクライアント及びサーバである。
【００３９】
ｔｒａｎｓ１は、１つのトランザクションの抽出結果であり、時刻ｔ１は、クライアントからサーバＡへの要求メッセージの送信時間を示す。また、時刻ｔ２は、サーバＡからクライアントへの応答メッセージのクライアントによる受信時間を示す。
【００４０】
ｔｒａｎｓ２は、他の１つのトランザクションの抽出結果であり、時刻ｔ３は、クライアントからサーバＡへの要求メッセージの送信時間を示す。また、時刻ｔ４は、サーバＡからクライアントへの応答メッセージのクライアントによる受信時間を示す。
【００４１】
モデルトポロジレジストリ４２は、トランザクション抽出結果についてのトポロジ情報を、モデルトポロジとして登録する。この登録の時点では、モデルトポロジにおける処理時間は定義されておらず、モデルトポロジは処理時間定義を持っていない。モデルトポロジレジストリ４２には、複数のモデルトポロジが登録される。処理時間が未定義のモデルトポロジは、例えば、モデル名、トポロジ名、トポロジ情報を含む。処理時間が定義されたモデルトポロジは、例えば、モデル名、トポロジ名、トポロジ情報に加えて、処理時間定義を含む。処理時間が未定義のトポロジ情報は、処理時間が未定義である即ち処理時間定義を持たないモデルトポロジである。
【００４２】
モデル名は、例えばＭＯＤＥＬ１のようなトポロジモデルのモデル名であり、一意に定まる。トポロジ名は、例えばトポロジ１−１のようなトポロジ情報の名前であり、一意に定まる。処理時間定義は、処理時間を算出するプログラムであり、例えば処理時間定義１のような名前を持つ。
【００４３】
処理時間定義処理部４３は、モデルトポロジレジストリ４２に登録された処理時間が未定義のトポロジ情報について、定義情報入力画面に入力された定義情報に基づいて、処理時間を定義する。これにより、処理時間定義処理部４３は、処理時間定義を備えるモデルトポロジを生成して、モデルトポロジレジストリ４２に登録する。実際には、処理時間定義処理部４３は、処理時間が未定義のモデルトポロジに、生成した処理時間定義を付加することにより、処理時間が定義されたモデルトポロジとする。
【００４４】
処理時間定義処理部４３は、モデルトポロジ識別部４１により抽出されたトポロジ情報に基づいて、定義情報入力画面を表示する表示手段である。定義情報入力画面は、後述するように、処理時間を定義するための定義情報を入力するための画面である。定義情報とは、処理時間をいずれのサーバ即ちコンピュータに割り当てるかを定める処理時間定義情報であり、ユーザにより入力され定義される。
【００４５】
具体的には、処理時間定義処理部４３は、モデルトポロジレジストリ４２を監視して、モデルトポロジレジストリ４２の登録されたトポロジ情報の中で、定義されていない（未定義の）トポロジ情報を検出する。処理時間定義処理部４３によるモデルトポロジレジストリ監視処理は、所定の時間間隔で周期的に行われる。ユーザは、未定義のトポロジ情報が存在する場合、当該未定義のトポロジ情報について、処理時間の定義を行う。処理時間定義処理部４３は、定義された処理時間の定義を、当該未定義のトポロジ情報に反映させる。これにより、当該トポロジ情報の処理時間が定義される。換言すれば、モデルトポロジが生成される。
【００４６】
定義情報入力画面の表示のため、及び、定義情報入力画面へ定義情報を入力するため、処理時間定義処理部４３は入出力装置４５を備える。入出力装置４５は、例えば、出力装置として表示画面を備える表示装置を備え、入力装置としてマウスのようなポインティングデバイスを備える。定義情報入力画面は、入出力装置４５の表示画面上に表示される。マウスは、表示された定義情報入力画面における位置をポインティングすることにより、位置情報を入力する。
【００４７】
処理時間算出部４４は、モデルトポロジレジストリ４２に登録された処理時間が定義されたモデルトポロジを用いて、トランザクション抽出結果についての処理時間を算出する算出手段である。処理時間は、複数のサーバの各々における処理時間と、複数のサーバ間における通信時間とを含む。具体的には、処理時間算出部４４は、処理時間定義に基づいて、通信時間、サーバ処理時間等の処理時間を算出する。処理時間算出部４４は、処理時間を算出した結果を、処理時間算出結果５として、入出力装置４５等に表示する。
【００４８】
図３（Ｂ）は、処理時間算出結果５の一例を示す。処理時間算出結果５は、１個のトランザクションについて、そのトランザクションの処理を実行した複数のサーバＡ〜Ｄの各々における処理時間と、複数のサーバＡ〜Ｄ間における通信時間とを示す。処理時間算出結果５は、例えば、入出力装置４５の画面上に表示され、又は、入出力装置４５から印刷出力される。
【００４９】
処理時間算出結果５は、図３（Ｂ）に示すように、例えば、棒グラフにより、クライアントが処理の要求を送信してから応答を得るまでに要した全レスポンス時間における処理時間の内訳を示す。処理時間の内訳は、全レスポンス時間における各サーバの処理時間の占める割合である。処理時間は、処理時間と通信時間とを含む。換言すれば、処理時間は、複数のサーバＡ〜Ｄの各々における処理時間と、複数のサーバＡ〜Ｄ間における通信時間（図３（Ｂ）において通信オーバヘッドと表示）とを含む。全レスポンス時間は、処理時間と通信時間との合計に一致する。
【００５０】
これにより、ユーザは、このコンピュータシステムの性能を解析するために、４個のサーバの各々における処理時間と、４個のサーバの間における通信時間とを知ることができる。例えば、図３（Ｂ）においては、サーバＣにおける処理時間の割合が最も高いので、ユーザは、サーバＣにおける処理の改良を優先的に検討することができる。
【００５１】
以下、モデルトポロジ識別部４１が実行するトポロジ情報抽出処理について、図４〜図１４を参照して説明する。
【００５２】
モデルトポロジ識別部４１は、図４（Ａ）に示す入力データ（トランザクション抽出結果）から、図４（Ｂ）に示す出力データを抽出する。図４（Ａ）に示す入力データは、トランザクション抽出結果ファイル３の一例である。図４（Ｂ）の出力データは、モデルトポロジレジストリ４２に格納されるトポロジ情報の一例である。
【００５３】
図４（Ａ）は、トランザクション抽出結果ファイル３に格納された、図３（Ａ）のトランザクション抽出結果であるｍｏｄｅｌ１のｔｒａｎｓ１を表したデータであり、モデルトポロジ識別部４１の入力データとして使用される（以下、入力データという）。トランザクション抽出結果ファイル３の入力データは、各トランザクション抽出結果におけるトランザクション毎に抽出される。１個の入力データは、当該トランザクションに含まれる複数のメッセージの各々について、送信元アドレス、送信先アドレス、メッセージタイプ、送信時刻、受信時刻を格納する。送信元アドレスは、当該メッセージの送信元を示す。送信先アドレスは、当該メッセージの送信先を示す。メッセージタイプは、当該メッセージの送信プロトコルの種類を示す。送信時刻は、当該メッセージが送信された時刻を示す。受信時刻は、当該メッセージが受信された時刻を示す。
【００５４】
例えば、図４（Ａ）における番号１のメッセージは、送信元クライアントから送信先サーバＡに送信されたものであり、そのメッセージタイプはＨＴＴＰ（Hyper Text Transfer Protocol）１である。また、その送信時刻は「１０：００」であり、受信時刻は「１０：００」である。
【００５５】
図４（Ｂ）は、図３（Ａ）のトランザクション抽出結果であるｍｏｄｅｌ１のｔｒａｎｓ１に対応した、モデルトポロジ識別部４１の出力であり（以下、出力データという）、モデルトポロジレジストリ４２に格納されるトポロジ情報である。出力データは、当該トポロジ情報に含まれる複数のメッセージの各々について、送信元アドレス、送信先アドレス、メッセージタイプ、送信順ＳｅｎｄＯｒｄｅｒ、受信順ＲｅｃｖＯｒｄｅｒを格納する。
【００５６】
ＳｅｎｄＯｒｄｅｒは、当該トポロジ情報の全メッセージの送受信において当該メッセージの送信時刻が出現する順番を示す。ＲｅｃｖＯｒｄｅｒは、当該トポロジ情報の全メッセージの送受信において当該メッセージの受信時刻が出現する順番を示す。換言すれば、ＳｅｎｄＯｒｄｅｒ又はＲｅｃｖＯｒｄｅｒは、図４の例において、送信時刻と受信時刻とを通算した場合における、送信時刻又は受信時刻の出現する順序である。
【００５７】
図４（Ｂ）の例では、番号１のメッセージは、最初に出現する同一の時刻「１０：００」に送信及び受信されているので、ＳｅｎｄＯｒｄｅｒ及びＲｅｃｖＯｒｄｅｒは「０」となる。番号３のメッセージは、３番目に出現する時刻「１０：０３」に送信されているので、ＳｅｎｄＯｒｄｅｒは「２」となり、４番目に出現する時刻「１０：０４」に受信されているので、ＲｅｃｖＯｒｄｅｒは「３」となる。
【００５８】
従って、図４（Ｂ）の出力データは、図４（Ａ）の入力データにおいて、各メッセージの発信時刻及び着信時刻をその出現する順にソートした結果である。ここで、メッセージの出現順は、変更されない。一方、図６を参照して後述するように、各メッセージの発信時刻及び着信時刻は、その出現する順にソートされる。これにより、入力データは、発信時刻及び受信時刻に依存しないトポロジ情報である出力データに変換される。
【００５９】
この出力データ即ちトポロジ情報を用いることにより、メッセージの現実の送受信の時刻ではなく、メッセージの送受信の順番に基づいて、モデルトポロジを生成することができる。換言すれば、メッセージの現実の送受信の時刻が異なっていても、メッセージタイプ及び送受信の順番が同一であれば、同一のモデルトポロジとして、その数を抑えることができる。
【００６０】
図５は、モデルトポロジ識別部４１が実行するトポロジ情報抽出の処理フローを示す。図６は、トランザクション抽出結果ファイル３からのトポロジ情報抽出の過程を示す。
【００６１】
モデルトポロジ識別部４１は、トランザクション抽出結果ファイル３からトランザクションに含まれている送信時刻、受信時刻のリストを生成する（ステップＳ１１）。ステップＳ１１の処理により、図６の部分＃１に示すように、例えば、図４（Ａ）に示す入力データの中から送信時刻と受信時刻のデータである“10:00,10:00,10:01,10:01,10:03,10:04,10:10,10:12,10:15,10:15,10:17,10:17”が抽出される。
【００６２】
次に、モデルトポロジ識別部４１は、生成したリストを時刻順にソートし、同じ時刻があった場合、１つの同時刻のデータを残し、他の同時刻データを取り除く（ステップＳ１２）。ステップＳ１２の処理により、図６の部分＃２に示すように、抽出した時刻データを時刻の早い順にソートし、ソートした後に、重複した時刻を除く。即ち、“10:00,10:01,10:03,10:04,10:10,10:12,10:15,10:17”の時刻データが得られる。
【００６３】
次に、モデルトポロジ識別部４１は、ステップＳ１２で生成したリストの中から、時刻の早いものから順に、時刻の出現の順を表す番号を割当てる（ステップＳ１３）。ステップＳ１３の処理により、図６の部分＃３に示すように、ステップＳ１２で得られた時刻データに、時刻の早い順に、先頭から０〜７の番号が付与される。例えば、最初の時刻「10:00」に番号「0番」が付与される（即ち、“10:00→0”とされる）。他の時刻データについても、同様である。
【００６４】
次に、モデルトポロジ識別部４１は、トランザクションにおける各メッセージの送信時刻、受信時刻をステップＳ１３で割り当てた番号に置き換えることにより、それぞれ、ＳｅｎｄＯｒｄｅｒ、ＲｅｃｖＯｒｄｅｒを算出して（ステップＳ１４）、トポロジ情報抽出処理を終了する。ステップＳ１４の処理により、当該トランザクションに含まれる複数のメッセージの各々について、ＳｅｎｄＯｒｄｅｒ及びＲｅｃｖＯｒｄｅｒが得られる。以上により、モデルトポロジ識別部４１の出力として、図４（Ｂ）に示す出力データが生成される。
【００６５】
次に、処理時間定義処理部４３は、実行する処理時間定義処理について、図７〜図１３を参照して説明する。
【００６６】
例えば、図７に示すように、モデルトポロジレジストリ４２Ａが、「ＭＯＤＥＬ１、トポロジ１−１、処理時間定義１」「ＭＯＤＥＬ１、トポロジ１−２、未定義」「ＭＯＤＥＬ３、トポロジ３−１、処理時間定義３」の３つのトポロジ情報を格納している。即ち、モデルトポロジレジストリ４２Ａには、処理時間が未定義のトポロジ情報「ＭＯＤＥＬ１、トポロジ１−２」が存在する。
【００６７】
処理時間定義処理部４３は、前述したように、モデルトポロジレジストリ４２を監視して、処理時間が未定義のトポロジ情報「ＭＯＤＥＬ１、トポロジ１−２」を検出する。そこで、処理時間定義処理部４３は、モデルトポロジレジストリ４２Ａから処理時間が未定義のトポロジ情報「ＭＯＤＥＬ１、トポロジ１−２」を読出して、読み出したトポロジ情報を入力出力装置４５に表示する。これを見たユーザは、表示されたトポロジ情報について、処理時間の定義に必要な情報を、当該表示画面から入力する。処理時間定義処理部４３は、この入力された処理時間の定義に必要な情報に基づいて、読み出したトポロジ情報について、処理時間の定義を行う。処理時間の定義については、後述する。
【００６８】
この後、処理時間定義処理部４３は、モデルトポロジレジストリ４２Ｂに、処理時間を定義したトポロジ情報「ＭＯＤＥＬ１、トポロジ１−２」を登録する。この時、モデルトポロジレジストリに登録されるトポロジ情報のモデル名は、処理時間が定義済みであることを示すように、「ＭＯＤＥＬ１、トポロジ１−２、処理時間定義２」とされる。
【００６９】
図８は、処理時間定義処理部４３が表示する、定義情報の入力のための定義情報入力画面の一例を示す図である。
【００７０】
図８の定義情報入力画面は、トランザクションから抽出されたトポロジ情報を視覚化したものである。なお、図８〜図１０のトランザクションは、図４（Ｂ）のトランザクションとは異なるものである。
【００７１】
処理時間定義処理部４３は、定義情報入力画面を表示する。定義情報入力画面は、複数のコンピュータにおける複数のメッセージの送受信の階層をＸ座標（第１の座標）の値に対応させ、複数のメッセージの出現の順をＹ座標（第２の座標）の値に対応させた画面である。また、処理時間定義処理部４３は、定義情報入力画面において、メッセージの各々を、矢印で表示する。この矢印は、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ。また、この矢印は、複数のメッセージの出現の順に対応する位置に存在する。
【００７２】
具体的には、処理時間定義処理部４３は、処理時間が未定義のトポロジ情報「ＭＯＤＥＬ１、トポロジ１−２」をモデルトポロジレジストリ４２Ａから読出して、図８に示すように、読出したトポロジ情報「ＭＯＤＥＬ１、トポロジ１−２」を入出力装置４５に表示する。即ち、処理時間定義処理部４３は、読出したトポロジ情報「ＭＯＤＥＬ１、トポロジ１−２」を視覚化したダイアグラム（定義情報入力画面）を表示する。
【００７３】
定義情報入力画面において、複数のメッセージが、その出現の順番に表示される。１個のメッセージが１個の矢印で表される。矢印の出現順はメッセージの出現順に対応する。矢印の方向がメッセージの送信された方向を表す。
【００７４】
定義情報入力画面において、縦軸即ちＹ軸は、メッセージの送信時刻Ｓｅｎｄ又はメッセージの受信時刻Ｒｅｃｖが出現する順を示す番号を表す。具体的には、定義情報入力画面の縦軸は、図４（Ｂ）におけるＳｅｎｄＯｒｄｅｒの欄に示す番号及びＲｅｃｖＯｒｄｅｒの欄に示す番号を表す。従って、図４（Ｂ）に示すＳｅｎｄＯｒｄｅｒの欄に示す番号及びＲｅｃｖＯｒｄｅｒの欄に示す番号が、定義情報入力画面におけるＹ座標の値である。
【００７５】
定義情報入力画面において、横軸即ちＸ軸は、メッセージの送信元ＳＲＣ又は送信先ＤＳＴであるクライアント又はサーバに割当てられた番号を表す。従って、クライアント又はサーバに割当てられた番号が、定義情報入力画面におけるＸ座標の値である。この横軸の番号は、送信元ＳＲＣ及び送信先ＤＳＴであるサーバ又はクライアント毎に、当該サーバ又はクライアントが当該トポロジ情報において最初にメッセージを送信又は受信した順に、割当てられる。
【００７６】
換言すれば、この横軸の番号は、当該トポロジ情報におけるメッセージの送受信を行うサーバ又はクライアントの階層を表す。ここで、この階層は、各サーバ又はクライアントに処理時間を分配する際における、処理時間の分配の単位である。換言すれば、この階層は、コンピュータシステムの物理的な階層と一致する必要はなく、メッセージの送受信における階層であって良い。従って、例えば、この階層は、コンピュータシステムにおけるサービスレイヤーであって良い。又は、複数のサーバ又はコンピュータがメッセージの送受信を繰り返すことにより処理を実行するコンピュータシステムにおける、各サーバ又はコンピュータの階層であって良い。
【００７７】
なお、ファイアウォールＦＷは、１個の階層としなくても良い。また、図８の例において、例えば、「階層０」は、クライアントであっても、サーバＡ〜Ｂであっても良い。従って、コンピュータシステムにおいてメッセージを送受信する２以上の階層が存在すれば、モデルトポロジを生成することができる。また、１個の階層が、更に、相互にメッセージの送受信を行う複数のコンピュータを含んでいても良い。この場合、複数のコンピュータが異なるＩＰアドレス又はサーバ名を持つ場合でも、複数のコンピュータは、１個の階層とされる。
【００７８】
図８の定義情報入力画面においては、縦軸の番号即ちＹ座標は「０」から開始される。これは、横軸の番号即ちＸ座標についても、同様である。Ｙ座標即ちメッセージの送信時刻又は受信時刻が出現する順を示す番号、及び、Ｘ座標即ちメッセージの送信元又は送信先に割当てられた番号は、モデルトポロジ識別部４１により、トランザクション抽出結果毎に、割当てられる。この割当て処理は、例えば、モデルトポロジ識別部４１がトランザクション抽出結果ファイル３から１個のトランザクション抽出結果を読み出す都度に実行される。
【００７９】
最初のメッセージは、送信元であるクライアントから、送信先であるサーバＡに送信される。ここで、送信時刻及び受信時刻が同一である場合、ＳｅｎｄＯｒｄｅｒ及びＲｅｃｖＯｒｄｅｒは「０」となるので、最初のメッセージの送信時刻１Ｓ及び受信時刻１ＥのＹ座標は、共に「０」とされる。一方、クライアントにおける最初のメッセージの送信時刻１ＳのＸ座標は「０」とされ、サーバＡにおける受信時刻１ＥのＸ座標は「１」とされる。
【００８０】
メッセージを示す矢印の始点を「Ｓ」と表し、矢印の終点を「Ｅ」と表す。例えば、最初のメッセージを示す矢印の始点を「１Ｓ」と表し、その矢印の終点を「１Ｅ」と表す。また、図示の便宜のため、記号「１Ｓ」は当該メッセージが送信された時刻をも表し、記号「１Ｅ」は当該メッセージが受信された時刻をも表すものとする。ここで、記号「１Ｓ」等が表す時刻は、他の時刻との関連で定まる相対値であって、特定の時刻を表すものではなく、他の時刻と同時刻であるか又は遅い時刻であるかを表す。
【００８１】
メッセージの始点及び終点には、各々、定義情報入力画面におけるＸ座標及びＹ座標が付与される。定義情報入力画面におけるＸ座標は、前述したように、メッセージの送信元又は送信先に割当てられた番号である。定義情報入力画面におけるＹ座標は、メッセージの送信時刻又は受信時刻が出現する順を示す番号である。例えば、最初のメッセージの始点の座標は１Ｓ（０，０）と表され、終点の座標は１Ｅ（１，０）と表される。他のメッセージについても、同様にして、始点及び終点の座標が定められる。
【００８２】
次に、処理時間定義処理部４３は、所定の制約条件の下で、定義情報入力画面への入力を受け付ける。制約条件については後述する。
【００８３】
図８の定義情報入力画面を見たユーザは、入出力装置４５から、図９に示すように、メッセージ処理経路を入力する。この入力は、ユーザが処理時間をどのように定義するかに応じて定まる。具体的には、ユーザは、図９に示すように、定義情報入力画面に表示された複数のメッセージの始点又は終点を、マウスによりクリックする。これにより、ユーザは、メッセージ処理経路において、どの部分をどのサーバの処理時間として割当てるかを定義する。換言すれば、ユーザは、メッセージの始点又は終点を選択することにより、定義情報を入力する。具体的な入力の例については、図９を参照して後述する。
【００８４】
この入力において、処理時間定義処理部４３は、入出力装置４５から以下の入力のみを許容する。換言すれば、処理時間定義処理部４３は、以下の入力の制約条件Ａ〜Ｄの下で、定義情報入力画面への定義情報の入力を受け付ける。これにより、処理時間定義処理部４３は、許容される入力以外の入力に基づく処理時間を定義する処理を実行せず、又は、許容される入力以外の入力を無視又は廃棄する。
【００８５】
制約条件Ａ〜Ｄは、以下のとおりである。
制約条件Ａ：処理時間定義処理部４３は、メッセージを表す矢印の始点及び終点を指定する（クリックする）入力のみを許容する。
制約条件Ｂ：処理時間定義処理部４３は、メッセージ処理経路の始点として、トポロジ情報に最初に現れるメッセージを送信した階層を指定する入力のみを許容する。
制約条件Ｃ：処理時間定義処理部４３は、メッセージ処理経路の終点として、メッセージ処理経路の始点とされた階層を指定する入力のみを許容する。
制約条件Ｄ：処理時間定義処理部４３は、メッセージ処理経路として、新たに指定する始点又は終点の時刻が、先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容する。
【００８６】
ここで、階層とは、コンピュータシステムにおけるメッセージの送受信の階層であって、コンピュータシステムの物理的な階層構造とは異なる。換言すれば、階層は、処理対象である即ち処理時間が未定義のトポロジ情報において、メッセージの送受信の順に定まるコンピュータの階層である。例えば、最初に送受信されたメッセージを送信したコンピュータの属する階層が、最初の階層とされ、以下、出現順に階層が定まる。
【００８７】
図８の例では、メッセージ処理経路の始点として、最初のメッセージを送信したクライアントであるコンピュータを指定する入力のみを許容する。また、メッセージ処理経路の終点として、クライアントであるコンピュータを指定する入力のみを許容する。従って、制約条件Ｂ及びＣにおいて、階層はクライアントとされる。
【００８８】
以上の結果として、第１に、処理時間定義処理部４３は、メッセージ処理経路を、定義情報入力画面において、制約条件Ａ〜Ｄの下で受け付けられた入力即ち点を結ぶことにより得られる連続した線分とする。第２に、処理時間定義処理部４３は、制約条件Ｂ及びＣから、メッセージ処理経路の始点とされた階層即ちコンピュータを、メッセージ処理経路の終点とする。第３に、処理時間定義処理部４３は、指定された終点のＹ座標と始点のＹ座標との間を、各サーバにおける処理時間とする。第４に、処理時間定義処理部４３は、２個のサーバ間を結ぶ、斜め下方向に指定された経路を、サーバ間における通信時間とする。
【００８９】
以上の制約条件の下での入力により、ユーザは、処理性能の解析の目的に応じて、処理時間を自由に定義することができる。
【００９０】
図９は、定義情報入力画面への定義情報の入力の一例を示す図である。
【００９１】
例えば、処理時間が未定義のトポロジ情報「ＭＯＤＥＬ１、トポロジ１−２」が、図８に示すようなトランザクション即ちメッセージの集合であるとする。図９の例では、対象システム１が、クライアントと、サーバＡと、ファイアーウォール（ＦＷ）と、サーバＢと、サーバＣを備えるものとする。そして、対象システム１において、図９に示す順でメッセージの送受信が行われたものとする。
【００９２】
なお、図８〜図１０の例においては、トポロジ情報に現れる各メッセージのメッセージタイプについての説明は省略している。これについては後述する。
【００９３】
次に、処理時間定義処理部４３は、受け付けられた入力に基づいて、メッセージ処理経路を定める。メッセージ処理経路は、コンピュータシステムにおいて、メッセージが処理される経路を一意に定める。換言すれば、メッセージ処理経路は、定義情報入力画面において一筆書きすることができる。そして、処理時間定義処理部４３は、メッセージ処理経路に従って、複数のコンピュータの各々における前記処理時間を定義する処理時間定義を生成する。
【００９４】
図８のようなトランザクションについて、以下のようにして処理時間の定義情報が入力され、処理時間が定義される。
【００９５】
例えば、ユーザが、図９に黒丸で示すように、定義情報入力画面上の各点を、マウスを用いてクリックする。具体的には、ユーザが、１Ｓ、１Ｅ、２Ｓ、３Ｅ、４Ｓ、４Ｅ，８Ｓ、８Ｅ、１０Ｓ、１１Ｅ、１２Ｓ、１２Ｅの順に、各点をクリックする。これにより、クライアントからサーバＡ及びサーバＢを経由してサーバＣへ到達し、サーバＣからサーバＢ及びサーバＡを経由してクライアントに戻る、１個の経路が選択される。
【００９６】
例えば、図９において、ユーザにより、始点１０Ｓと終点１１Ｅとが選択される。これにより、処理時間を定義するメッセージ即ち定義情報の一部として、サーバＢからサーバＡへの返信においては、始点が１０Ｓで終点が１０Ｅのメッセージと、始点が１１Ｓで終点が１１Ｅのメッセージとが選択される。換言すれば、これらのメッセージは、定義情報と言う観点からの意味を持つ。従って、処理時間を定義するメッセージとして、サーバＢからサーバＡへの返信においては、始点が５Ｓで終点が５Ｅのメッセージと、始点が６Ｓで終点が６Ｅのメッセージとは選択されない。換言すれば、これらのメッセージは、定義情報と言う観点からは、意味を持たない。
【００９７】
なお、処理時間を定義するメッセージとして、サーバＢからサーバＡへの返信において、始点が５Ｓで終点が５Ｅのメッセージと、始点が６Ｓで終点が６Ｅのメッセージとが選択された場合、図９の処理時間の定義情報に基づくモデルトポロジとは別のモデルトポロジとされる。従って、処理時間の定義情報を変更することにより、同一のトポロジ情報について異なるモデルトポロジを生成することができる。
【００９８】
また、図９において、ユーザにより、始点１２Ｓと終点１２Ｅとが選択される。これにより、処理時間を定義するメッセージとして、サーバＡからクライアントへの返信においては、始点が１２Ｓで終点が１２Ｅのメッセージが選択される。従って、処理時間を定義するメッセージとして、サーバＡからクライアントへの返信においては、始点が７Ｓで終点が７Ｅのメッセージは選択されない。
【００９９】
なお、処理時間を定義するメッセージとして、サーバＡからクライアントへの返信において、始点が７Ｓで終点が７Ｅのメッセージが選択された場合、図９の処理時間の定義情報に基づくモデルトポロジとは別のモデルトポロジとされる。
【０１００】
また、図９において、ユーザにより、始点８Ｓと終点８Ｅとが選択される。これにより、処理時間を定義するメッセージとして、サーバＣからサーバＢへの返信においては、始点が８Ｓで終点が８Ｅのメッセージが選択される。従って、処理時間を定義するメッセージとして、サーバＣからサーバＢへの返信においては、始点が９Ｓで終点が９Ｅのメッセージは選択されない。
【０１０１】
なお、処理時間を定義するメッセージとして、サーバＣからサーバＢへの返信において、始点が９Ｓで終点が９Ｅのメッセージが選択された場合、図９の処理時間の定義情報に基づくモデルトポロジとは別のモデルトポロジとされる。
【０１０２】
一方、前述したように、ユーザにより、図９に点線の斜めの線分で示すように、始点１０Ｓと終点１１Ｅとが選択される。これにより、以下のことが定義される。即ち、サーバＡとサーバＢとの間においては、始点２ＳのＹ座標と終点３ＥのＹ座標とが異なり、始点１０ＳのＹ座標と終点１１ＥのＹ座標とが異なる。換言すれば、サーバＡとサーバＢとの間においては、メッセージの送信時刻と受信時刻とが異なる。従って、サーバＡとサーバＢとの間においては、送信時刻と受信時刻との差分、即ち、処理時間を定義する場合における通信時間が存在する。換言すれば、送信時刻と受信時刻との差分は、定義情報と言う観点からの意味を持つ。
【０１０３】
なお、図４（Ａ）及び図４（Ｂ）に示すように、メッセージには複数のメッセージタイプが存在する。従って、実際には、処理時間を定義してモデルトポロジを生成する場合には、メッセージタイプも考慮される。
【０１０４】
例えば、図８〜図１０のトポロジ情報（第１のトポロジ情報）において、始点が２Ｓで終点が２Ｅのメッセージ及び始点が３Ｓで終点が３Ｅのメッセージのメッセージタイプが、「ＩＩＯＰ１」であるとする。一方、始点が２Ｓで終点が２Ｅのメッセージ及び始点が３Ｓで終点が３Ｅのメッセージのメッセージタイプが「ＩＩＯＰ２」であり、他は全く同一のトポロジ情報（第２のトポロジ情報）が存在するとする。即ち、第２のトポロジ情報の定義情報入力画面は、前記メッセージのメッセージタイプを除いて、図８に示される第１のトポロジ情報の定義情報入力画面と同一である。
【０１０５】
この場合において、第２のトポロジ情報について、第１のトポロジ情報と同一の定義情報を入力したとする。しかし、たとえ定義情報が同一でも、異なるモデルトポロジが生成される。換言すれば、第２のトポロジ情報についてのモデルトポロジは、図９の処理時間の定義情報に基づく第１のトポロジ情報についてのモデルトポロジとは別のモデルトポロジとされる。これは、定義情報が同一でも、１個のメッセージのメッセージタイプが異なるので、トポロジ情報それ自体が異なるからである。
【０１０６】
図１０は、処理時間が定義されたトポロジ情報即ちモデルトポロジの一例を示す図である。図１０は、図８の定義情報入力画面に、図９の定義情報が入力された場合における、モデルトポロジを示す。
【０１０７】
図９において、始点１０Ｓと終点１１Ｅとが選択される。これにより、処理時間を定義するメッセージ即ち定義情報の一部として、サーバＢからサーバＡへの返信においては、始点が１０Ｓで終点が１０Ｅのメッセージと、始点が１１Ｓで終点が１１Ｅのメッセージとが選択される。換言すれば、これらのメッセージは、定義情報と言う観点からの意味を持つ。従って、図１０に点線で示すように、処理時間を定義するメッセージとして、サーバＢからサーバＡへの返信においては、始点が５Ｓで終点が５Ｅのメッセージと、始点が６Ｓで終点が６Ｅのメッセージとは選択されない。換言すれば、これらのメッセージは、定義情報と言う観点からは、意味を持たない。
【０１０８】
同様に、処理時間を定義するメッセージとして、サーバＡからクライアントへの返信においては、始点が１２Ｓで終点が１２Ｅのメッセージが選択される。従って、図１０に点線で示すように、処理時間を定義するメッセージとして、サーバＡからクライアントへの返信においては、始点が７Ｓで終点が７Ｅのメッセージは選択されない。
【０１０９】
以上から、サーバＡにおける処理時間は、２Ｓ−１Ｅ＋１２Ｓ−１１Ｅとして定義される。即ち、座標１Ｅに対応する時刻から座標２Ｓに対応する時刻までの時間と、座標１１Ｅに対応する時刻から座標１２Ｓに対応する時刻までの時間との和が、サーバＡの処理時間である。
【０１１０】
同様に、処理時間を定義するメッセージとして、サーバＣからサーバＢへの返信においては、始点が８Ｓで終点が８Ｅのメッセージが選択される。従って、図１０に点線で示すように、処理時間を定義するメッセージとして、サーバＣからサーバＢへの返信においては、始点が９Ｓで終点が９Ｅのメッセージは選択されない。
【０１１１】
以上とサーバＡへの返信における処理時間の定義と併せて、サーバＢにおける処理時間は、４Ｓ−３Ｅ＋１０Ｓ−８Ｅとして定義される。また、以上から、サーバＣにおける処理時間は、８Ｓ−４Ｅとして定義される。
【０１１２】
一方、サーバＡとサーバＢとの間においては、始点２ＳのＹ座標と終点３ＥのＹ座標とが異なり、始点１０ＳのＹ座標と終点１１ＥのＹ座標とが異なる。換言すれば、サーバＡとサーバＢとの間においては、メッセージの送信時刻と受信時刻とが異なる。従って、サーバＡとサーバＢとの間においては、送信時刻と受信時刻との差分、即ち、処理時間を定義する場合における通信時間が存在する。換言すれば、送信時刻と受信時刻との差分は、定義情報と言う観点からの意味を持つ。
【０１１３】
以上から、このコントローラシステムにおける通信時間は、３Ｅ−２Ｓ＋１１Ｅ−１０Ｓとして定義される。
【０１１４】
なお、実際には、各点は、特定の時刻を示すものではなく、各点における時刻の相対値を抽象的に示すに過ぎないので、直接、各サーバにおける処理時間を算出することはできない。
【０１１５】
図１１は、定義情報入力画面への定義情報の入力処理フローを示す図である。
【０１１６】
処理時間定義処理部４３は、モデルトポロジレジストリ４２Ａに処理時間が未定義のトポロジ情報が存在する場合、モデルトポロジレジストリ４２Ａから処理時間が未定義のトポロジ情報を読み出す。
【０１１７】
この後、処理時間定義処理部４３は、読み出したトポロジ情報に含まれる送信元（図１１においてＳＲＣ（Source）と表記）、送信先（図１１においてＤＳＴ（Destination）と表記）に現れるサーバ（コンピュータ名）及びクライアントに対して、数字をインクリメントしながら、その出現の順番に、番号を振る（ステップＳ２１）。
【０１１８】
次に、処理時間定義処理部４３は、トポロジ情報に始点と終点が設定されていないメッセージが存在するか否かを判断する（ステップＳ２２）。トポロジ情報に、始点と終点が設定されていないメッセージが存在しない場合（ステップＳ２２のＮｏ）、処理を終了する。
【０１１９】
一方、トポロジ情報に、始点と終点とが設定されていないメッセージが存在する場合（ステップＳ２２のＹｅｓ）、処理時間定義処理部４３は、始点と終点が設定されていない１個のメッセージを選択する（ステップＳ２３）。
【０１２０】
次に、処理時間定義処理部４３は、メッセージの始点及び終点を以下のように設定する（ステップＳ２４）。メッセージの始点について、定義情報入力画面におけるＸ座標が送信元ＳＲＣのサーバ即ちコンピュータの番号とされ、定義情報入力画面におけるＹ座標がＳｅｎｄＯｒｄｅｒとされる。メッセージの終点について、Ｘ座標が送信先ＤＳＴのサーバ即ちコンピュータの番号とされ、Ｙ座標がＲｅｃｖＯｒｄｅｒとされる（ステップＳ２４）。この後、ステップＳ２２〜Ｓ２４の処理を繰り返す。
【０１２１】
これにより、トポロジ情報に含まれる全てのメッセージについて、定義情報入力画面における始点と終点とが設定される。例えば、図８に示すように、最初のメッセージについて、始点１Ｓ（０，０）及び終点１Ｅ（１，０）が定められる。
【０１２２】
図１２は、トポロジ情報の処理時間定義の処理フローを示す図である。
【０１２３】
処理時間算出装置４が、予め定められた所定の時間が経過するのを待ち（ステップＳ３１）、モデルトポロジレジストリ４２に処理時間が未定義のトポロジ情報即ち新たに追加されたトポロジ情報があるか否かを判断する（ステップＳ３２）。モデルトポロジレジストリ４２に処理時間が未定義のトポロジ情報がない場合（ステップＳ３２のＮｏ）、処理時間算出装置４が、ステップＳ３１の処理を繰り返す。
【０１２４】
処理時間が未定義のトポロジ情報がモデルトポロジレジストリにある場合（ステップＳ３２のＹｅｓ）、処理時間算出装置４が、処理時間定義を実行するＧＵＩ（Graphical User Interface）である処理時間定義処理部４３を起動する（ステップＳ３３）。
【０１２５】
処理時間定義処理部４３は、変数ｌａｓｔＸ及び変数ｌａｓｔＹに、各々、クライアントから最初に送信されたメッセージＳＥＮＤのＸ座標及びＹ座標をセットし（ステップＳ３４）、マウスがクリックされるまで待つ（ステップＳ３５）。変数ｌａｓｔＸは、前回マウスがクリックされた時のＸ座標の値を表す変数である。変数ｌａｓｔＹは、前回マウスがクリックされた時のＹ座標の値を表す変数である。ステップＳ３４においては、未だマウスがクリックされていない。そこで、変数ｌａｓｔＸの初期値として最初のメッセージＳＥＮＤのＸ座標がセットされ、変数ｌａｓｔＹの初期値として最初のメッセージＳＥＮＤのＹ座標がセットされる。マウスがクリックされた場合の座標については、図１３の説明において後述する。
【０１２６】
このように、図１２の例では、メッセージ処理経路の始点が、強制的にクライアントに定められる。これにより、未定義のトポロジ情報についての定義情報の入力において、制約条件Ｂを満たすように、入力を制限することができる。換言すれば、メッセージ処理経路の始点として、トポロジ情報に最初に現れるメッセージを送信したクライアントを指定する入力のみを許容することができる。
【０１２７】
なお、メッセージ処理経路の始点を、クライアントではなく、サーバとして、このサーバから最初に送信されたメッセージから処理時間を定義する場合には、ステップＳ３４を省略するようにしても良い。この場合、以下のステップＳ３６において、マウスのクリックにより、最初に送信されたメッセージの始点が入力されると、この始点のＸ座標及びＹ座標が、各々、変数ｌａｓｔＸ及び変数ｌａｓｔＹにセットされる。
【０１２８】
この後、ユーザによるマウスのクリックに応じて、処理時間定義処理部４３は、クリック入力の処理を行う（ステップＳ３６）。このクリック入力は、その入力の都度、制約条件Ａ及びＤを満たす必要がある。このためのクリック入力の処理については、図１３を参照して後述する。
【０１２９】
この後、処理時間定義処理部４３は、現在の（ｌａｓｔＸ、ｌａｓｔＹ）がクライアントへの最後のメッセージＲＥＣＥＶの座標であるか否かを判断する（ステップＳ３７）。このために、処理時間定義処理部４３は、例えば、現在の（ｌａｓｔＸ、ｌａｓｔＹ）と、ステップＳ３４において変数ｌａｓｔＸ及び変数ｌａｓｔＹにセットされた座標とを比較する。処理時間定義処理部４３は、ステップＳ３７を実行するために、ステップＳ３４において変数ｌａｓｔＸ及び変数ｌａｓｔＹにセットされた座標を、例えばステップＳ３８を終了するまで保持する。
【０１３０】
（ｌａｓｔＸ、ｌａｓｔＹ）がクライアントへの最後のメッセージＲＥＣＥＶの座標でない場合（ステップＳ３７のＮｏ）、処理時間定義処理部４３は、ステップＳ３５〜Ｓ３７の処理を繰り返す。これにより、未定義のトポロジ情報についての定義情報の入力において、制約条件Ｃを満たすように、入力を制限することができる。換言すれば、メッセージ処理経路の終点として、メッセージ処理経路の始点とされたクライアントを指定する入力のみを許容するようにすることができる。
【０１３１】
（ｌａｓｔＸ、ｌａｓｔＹ）がクライアントへの最後のメッセージのＲＥＣＥＶの座標である場合（ステップＳ３７のＹｅｓ）、処理時間定義処理部４３は、処理時間定義をモデルトポロジレジストリ４２に登録し（ステップＳ３８）、ステップＳ３２〜Ｓ３７の処理を繰り返す。
【０１３２】
実際には、ステップＳ３８において、処理時間定義処理部４３は、クライアント及びサーバにおける処理時間を例えば２Ｓ−１Ｅ＋１２Ｓ−１１Ｅのように定義することにより、処理時間定義を生成する。そして、処理時間定義処理部４３は、処理時間が未定義のモデルトポロジに、生成した処理時間定義を付加する。これにより、処理時間が定義されたモデルトポロジが生成される。
【０１３３】
なお、処理時間が定義されたモデルトポロジ即ち処理時間定義は、処理時間算出部４４から呼び出され、メッセージの送信及び受信時刻を与えられると、処理時間の定義に従って、処理時間を算出するプログラムであると考えて良い。
【０１３４】
図１３は、ステップＳ３６において実行されるマウスのクリック処理フローを示す図である。
【０１３５】
処理時間定義処理部４３は、変数Ｘ、変数Ｙに現在のマウスの座標即ちマウスによりクリックされた座標をセットする（ステップＳ４１）。変数Ｘは定義情報入力画面におけるマウスによりクリックされた点のＸ座標であり、変数Ｙは定義情報入力画面におけるマウスによりクリックされた点のＹ座標である。
【０１３６】
次に、処理時間定義処理部４３は、変数Ｘ及び変数Ｙの値がメッセージを表す矢印の始点及び終点であるか否かを判断する（ステップＳ４２）。変数Ｘ及び変数Ｙの値がメッセージを表す矢印の始点及び終点でない場合（ステップＳ４２のＮｏ）、変数Ｘ及び変数Ｙの値は、制約条件Ａを満たさないので、クリックされた点即ち座標は入力として許容されない。換言すれば、クリックされた点はメッセージを表す矢印の始点又は終点を指定していないので、この入力は許容されない。この場合、処理時間定義処理部４３は、何もしないか、又は、Ｗａｒｎｉｎｇ（警告）表示を行い（ステップＳ４３）、元の処理である図１２のステップＳ３５へ戻る（ステップＳ４４）。この場合の警告は、例えば、新たに指定された始点又は終点が、メッセージを表す矢印の始点又は終点を指定していないことを示す。
【０１３７】
変数Ｘ及び変数Ｙの値がメッセージを表す矢印の始点及び終点である場合（ステップＳ４２のＹｅｓ）、処理時間定義処理部４３は、“Ｙ＜ｌａｓｔＹ”であるか、即ち、変数Ｙの値が変数ｌａｓｔＹの値より小さいか否かを判断する（ステップＳ４５）。
【０１３８】
変数Ｙの値が変数ｌａｓｔＹの値より小さい場合（ステップＳ４５のＹｅｓ）、変数Ｙの値は、制約条件Ｄを満たさないので、クリックされた点は入力として許容されない。換言すれば、メッセージ処理経路として、新たに指定された始点又は終点の時刻が、先に指定した始点又は終点と同一か又は大きくないので、この入力は許容されない。この場合、処理時間定義処理部４３は、何もしないか、又は、Ｗａｒｎｉｎｇ（警告）表示を行い（ステップＳ４６）、元の処理である図１２のステップＳ３５へ戻る（ステップＳ４４）。この場合の警告は、例えば、新たに指定された始点又は終点の時刻が、先に指定した始点又は終点よりも先行する時刻であることを示す。また、この場合、変数ｌａｓｔＸ及びｌａｓｔＹの値は更新されない。
【０１３９】
Ｙの値がｌａｓｔＹの値より小さくない場合（ステップＳ４５のＮｏ）、即ち、Ｙの値がｌａｓｔＹの値以上である場合、変数Ｙの値は、制約条件Ｄを満たすので、クリックされた点は入力として許容される。この場合、処理時間定義処理部４３は、更に、“Ｙ＝ｌａｓｔＹ”であるか、即ち、Ｙの値とｌａｓｔＹの値が等しいか否かを判断する（ステップＳ４７）。
【０１４０】
Ｙの値がｌａｓｔＹの値と等しい場合（ステップＳ４７のＹｅｓ）、クリックされた点のＹ座標は変化していない。この場合、処理時間定義処理部４３は、更に、“Ｘ＝ｌａｓｔＸ”であるか、即ち、Ｘの値とｌａｓｔＸの値が等しいか否かを判断する（ステップＳ４８）。Ｘの値がｌａｓｔＸの値と等しい場合（ステップＳ４８のＹｅｓ）、処理時間定義処理部４３は、ステップＳ４６及びＳ４４の処理を実行する。この場合、Ｘ座標及びＹ座標の双方が変化していないので、処理時間定義処理部４３は、何もしない。
【０１４１】
Ｘの値がｌａｓｔＸの値と等しくない場合（ステップＳ４８のＮｏ）、Ｘ座標の値が変化しているので、処理時間定義処理部４３は、“ｌａｓｔＸ←Ｘ”と設定する（ステップＳ４９）。換言すれば、値Ｘが新たなｌａｓｔＸの値として設定される。この後、処理時間定義処理部４３は、元の処理であるステップＳ３５へ戻る（ステップＳ４４）。この場合、Ｙ座標が変化していないので、処理時間定義処理部４３は、クライアント又はサーバの処理時間を定義しない。
【０１４２】
ステップＳ４７において、Ｙの値がｌａｓｔＹの値と等しくない場合（ステップＳ４７のＮｏ）、処理時間定義処理部４３は、更に、“Ｘ＝ｌａｓｔＸ”であるか、即ち、Ｘの値とｌａｓｔＸの値が等しいか否かを判断する（ステップＳ４１０）。
【０１４３】
Ｘの値がｌａｓｔＸの値と等しい場合（ステップＳ４１０のＹｅｓ）、Ｘ座標の値が変化することなく、Ｙ座標の値が変化している。従って、同一のサーバにおいて２個の点が指定されたことになる。この場合、処理時間定義処理部４３は、Ｘ、ｌａｓｔＹ、Ｙに基づいて、サーバ処理時間を定義する（ステップＳ４１１）。具体的には、処理時間定義処理部４３は、この時点におけるＸ、ｌａｓｔＹ、Ｙを用いて、当該処理時間を割当てるべきサーバを求める。例えば、処理時間定義処理部４３は、座標の組（Ｘ，ｌａｓｔＹ）及び（Ｘ，Ｙ）を生成して、これらとメッセージの始点及び終点の座標とを比較し、一致した支店及び終点を有するサーバに当該処理時間を割当てる。
【０１４４】
この後、処理時間定義処理部４３は、“ｌａｓｔＸ←Ｘ，ｌａｓｔＹ←Ｙ”と設定する（ステップＸ４１３）。即ち、値Ｘが新たなｌａｓｔＸの値として設定され、かつ、値Ｙが新たなｌａｓｔＹの値として設定される。この後、元の処理であるステップＳ３５へ戻る（ステップＳ４４）。
【０１４５】
Ｘの値がｌａｓｔＸの値と等しくない場合（ステップＳ４１０のＮｏ）、Ｘ座標及びＹ座標の値が共に変化している。従って、異なるサーバにおいて時刻の異なる２個の点が指定されたことになる。この場合、処理時間定義処理部４３は、ｌａｓｔＸ、Ｘ、ｌａｓｔＹ、Ｙに基づいて、通信時間を定義する（ステップＳ４１２）。具体的には、処理時間定義処理部４３は、この時点におけるｌａｓｔＸ、Ｘ、ｌａｓｔＹ、Ｙを用いて、当該通信時間を求める。例えば、処理時間定義処理部４３は、座標の組（ｌａｓｔＸ，ｌａｓｔＹ）及び（Ｘ，Ｙ）を生成して、これらとメッセージの始点及び終点の座標とを比較し、一致した始点及び終点を有する２個のサーバの間における通信時間とする。
【０１４６】
この後、処理時間定義処理部４３は、“ｌａｓｔＸ←Ｘ，ｌａｓｔＹ←Ｙ”と設定する（ステップＳ４１３）。即ち、変数Ｘの値が変数ｌａｓｔＸの新たな値として設定され、かつ、変数Ｙの値が変数ｌａｓｔＹの新たな値として設定される。この後、処理時間定義処理部４３は、元の処理であるステップＳ３５へ戻る（ステップＳ４４）。
【０１４７】
次に、処理時間算出部４４が実行する処理時間算出処理について、図１４〜図１５を参照して説明する。
【０１４８】
処理時間算出部４４は、図２に示すように、トランザクション抽出結果ファイル３から１個のトランザクション抽出結果を読出して、読出したトランザクション抽出結果を、モデルトポロジレジストリ４２に格納された処理時間が定義されたモデルトポロジの各々と比較する。
【０１４９】
この比較の結果、読出したトランザクション抽出結果が、例えば、図１４に示すトポロジ情報を持つモデルトポロジと一致したとする。ここで、一致とは、読出したトランザクション抽出結果におけるメッセージのメッセージタイプ、送受信されるサーバ、送受信される順番が、モデルトポロジの処理時間定義と全て一致することを言う。換言すれば、読出したトランザクション抽出結果から処理時間定義を生成した場合、当該生成されるであろう処理時間定義は、モデルトポロジの処理時間定義と同一となる。
【０１５０】
なお、「Ｎｏ」はトポロジ情報の出現順（Ｓｅｎｄ出現順序）の番号を示し、小さい番号（１から始まる整数）ほど、Ｓｅｎｄの出現順が早いことを示す。“ＳＲＣ→ＤＳＴ”において、ＳＲＣがメッセージの発信元を示し、ＤＳＴがメッセージの受信先を示す。“ＭＥＳＳＡＧＥＴＹＰＥ”は、メッセージタイプを示す。また、図１４のトランザクション抽出結果は、図８〜図１０に対応するトランザクションについてのモデルである。従って、図１５は図１０に対応する。
【０１５１】
図１４に示すトランザクション抽出結果については、既に、処理時間の定義が実行されている。従って、当該定義に基づいて、処理時間を算出することができる。即ち、図１５に示すように、対象システム１のサーバＡ、サーバＢ、サーバＣにおける処理時間が算出される。
【０１５２】
例えば、処理時間算出部４４は、一致したモデルトポロジにおける処理時間定義を、モデルトポロジレジストリ４２から読み出し、これに読出したトランザクション抽出結果における実際のメッセージの送信及び受信時刻を与え、当該処理時間定義を実行する。これにより、実行結果として、当該処理時間定義は、各サーバにおける処理時間及び通信時間を出力する。
【符号の説明】
【０１５３】
１      対象システム
２      トランザクション抽出装置
３      トランザクション抽出結果ファイル
４      処理時間算出装置
５      処理時間算出結果
４１    モデルトポロジ識別部
４２    モデルトポロジレジストリ
４３    処理時間定義処理部
４４    処理時間算出部
４５    入出力装置
【図１】
2010176609.tif 000003
【図２】
2010176609.tif 000004
【図３】
2010176609.tif 000005
【図４】
2010176609.tif 000006
【図５】
2010176609.tif 000007
【図６】
2010176609.tif 000008
【図７】
2010176609.tif 000009
【図８】
2010176609.tif 000010
【図９】
2010176609.tif 000011
【図１０】
2010176609.tif 000012
【図１１】
2010176609.tif 000013
【図１２】
2010176609.tif 000014
【図１３】
2010176609.tif 000015
【図１４】
2010176609.tif 000016
【図１５】
2010176609.tif 000017
【図１６】
2010176609.tif 000018
【図１７】
2010176609.tif 000019