JP5338346B2 - 処理時間定義生成プログラム、処理時間定義生成方法及び情報処理装置 - Google Patents
処理時間定義生成プログラム、処理時間定義生成方法及び情報処理装置 Download PDFInfo
- Publication number
- JP5338346B2 JP5338346B2 JP2009021270A JP2009021270A JP5338346B2 JP 5338346 B2 JP5338346 B2 JP 5338346B2 JP 2009021270 A JP2009021270 A JP 2009021270A JP 2009021270 A JP2009021270 A JP 2009021270A JP 5338346 B2 JP5338346 B2 JP 5338346B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- processing time
- input
- processing
- definition
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Description
本発明は、コンピュータシステムにおける処理時間を定義する処理時間定義生成プログラム、処理時間定義生成方法及び処理時間定義生成機能を有する情報処理装置に関する。
コンピュータシステムの1つに、複数のサーバが相互に通信することにより、クライアントからの要求を処理するシステムがある。このようなシステムの代表として、例えば、Eコマースサービスシステムがある。このようなコンピュータシステムにおいて、コンピュータシステムの性能を解析することが求められる。
なお、例えば、ネットワークからメッセージを収集して解析し、トランザクションモデルを生成し、トランザクションの処理状態を分析するシステム分析プログラムが提案されている。
複数のコンピュータを含むコンピュータシステムの性能を解析するためには、種々のパラメータが考えられる。このようなパラメータの1つとして、各コンピュータにおける処理時間を採用することが考えられる。一方、コンピュータシステムには種々の処理が存在する。従って、各コンピュータにおける処理時間を算出する場合、コンピュータシステムにおける処理を考慮した上で、各コンピュータにおける処理時間を算出する必要がある。
本発明は、コンピュータシステムにおけるコンピュータの処理時間を定義する処理時間定義生成プログラムを提供することを目的とする。
開示される処理時間定義生成プログラムは、定義情報入力画面を表示するステップと、定義情報入力画面への入力を受け付けるステップと、処理時間定義を生成するステップとを含む。定義情報入力画面を表示するステップは、複数のコンピュータにおける複数のメッセージの送受信の階層を第1の座標値に対応させ、複数のメッセージの出現の順を第2の座標値に対応させた定義情報入力画面において、メッセージの各々が、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ矢印であって、複数のメッセージの出現の順に対応する位置に存在する矢印で表示された定義情報入力画面を表示する。定義情報入力画面への入力を受け付けるステップは、制約条件の下で、定義情報入力画面への入力を受け付ける。制約条件は、以下のようである。即ち、メッセージを表す矢印の始点及び終点を指定する入力のみを許容し、メッセージ処理経路の始点として最初のメッセージを送信した階層を指定する入力のみを許容し、メッセージ処理経路の終点としてメッセージ処理経路の始点とされた階層を指定する入力のみを許容し、メッセージ処理経路として、新たに指定する始点又は終点の時刻が先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容する。処理時間定義を生成するステップは、受け付けられた入力に基づいてメッセージ処理経路を定め、このメッセージ処理経路に従って複数のコンピュータの各々における処理時間を定義する。
開示される処理時間定義生成プログラムによれば、コンピュータシステムのサーバ間におけるメッセージの送受信に種々の形態が存在する場合であっても、各コンピュータにおける処理時間を容易に定義することができる。また、処理時間の算出において、処理時間が重ならないようにして、並列処理の場合等について処理時間を定義することができる。
図16及び図17は、複数の処理サーバが相互に通信することによりクライアントマシンからの要求を処理するシステムにおける、トランザクションの一例を示す図である。
例えば、コンピュータシステムが、図16に示すように、4個のサーバの間において相互に通信することにより、クライアントからの要求を処理する場合がある。本発明者は、このような場合において、このコンピュータシステムの性能を解析するために、4個のサーバの各々における処理時間と、4個のサーバの間における通信時間(図16において通信オーバヘッドと表示)とを算出することを検討した。
なお、以下において、クライアントが処理の要求を送信してから応答を得るまでに要した時間を、全レスポンス時間と言う。全レスポンス時間における各サーバの処理時間の占める割合を、処理時間の内訳と言う。処理時間と通信時間の合計とを合わせて、単に処理時間と言う。
本発明者の検討によれば、処理時間の算出においては、サーバ間におけるメッセージの送受信の形態を考慮する必要がある。
例えば、サーバ間におけるメッセージの送受信が図16に示すように行われる場合、サーバの各々における処理時間は比較的容易に定義することができる。例えば、サーバAにおける処理時間は、クライアントから要求を受信してからサーバBに要求を送信するまでに要した時間と、サーバBから応答を受信してからクライアントに応答を送信するまでに要した時間との同系である。サーバB〜Dについても、同様に処理時間を定めることができる。
しかし、実際には、サーバ間におけるメッセージの送受信には、図17(A)〜図17(D)に示すように、種々の形態が存在する。
図17(A)は、メッセージの送受信が同期して行われる例である。図17(A)において、サーバAがサーバBに対して時刻t1にメッセージS1を送信し、その後、サーバBがサーバAに対して時刻t2にメッセージR1を送信する。このように、同期とは、2個のサーバ間において、送信されたメッセージの数と受信されたメッセージの数とが一致し、かつ、送信と受信とが交互に行われる場合である。同期においては、例えば、送信されたメッセージS1と受信されたメッセージR1との対応が明確である。従って、サーバBにおける処理時間Δt1は、時刻t2から時刻t1を引くことにより、容易に求めることができる。
なお、図17(A)において、サーバAがクライアントであり、サーバBがサーバAであっても良い。これは、図17(B)〜図17(D)においても同様である。
図17(B)は、メッセージの送受信が非同期に行われる例である。図17(B)において、サーバAがサーバBに対して時刻t3にメッセージS2を送信し、その後、サーバBが、サーバAに対して、時刻t4にメッセージR2を、時刻t5にメッセージR3を送信する。このように、非同期とは、2個のサーバ間において、送信されたメッセージの数と受信されたメッセージの数とが一致しない場合、又は、両者が一致しても送信と受信とが交互に行われない場合である。非同期においては、例えば、送信されたメッセージS2と受信されたメッセージR2及びR3との対応が明確でない。従って、サーバBにおける処理時間は、時刻t4から時刻t3を引いたΔt2であるのか、又は、時刻t5から時刻t3を引いたΔt3であるのかを定義する必要が生じる。
なお、時間Δt2又は時間Δt3のいずれをサーバBにおける処理時間とするかは、サーバBにおける処理の内容に基づいて定義される。この定義は、解析を行うユーザが定めるべきものである。
図17(C)は、メッセージの送受信がシーケンシャルに行われる例である。図17(C)において、他のサーバから時刻t6にメッセージS3を受信したサーバAが、メッセージS3の受信に基づいて、サーバBに対して時刻t7にメッセージS4を送信し、その後、サーバBがサーバAに対して時刻t8にメッセージR4を送信する。このように、シーケンシャルとは、2個のサーバ間において、メッセージを受信した一方のサーバが、受信したメッセージに基づいて第1の要求のメッセージを他方のサーバに送信した後、第2の要求のメッセージを他方のサーバに送信する前に、他方のサーバからメッセージを受信する場合である。シーケンシャルにおいては、送信されたメッセージS4と受信されたメッセージR4との対応が明確である。従って、サーバBにおける処理時間Δt4は、時刻t8から時刻t7を引くことにより、容易に求めることができる。
図17(D)は、メッセージの送受信が並列に行われる例である。図17(D)において、他のサーバから時刻t9にメッセージS5を受信したサーバAが、メッセージS5の受信に基づいて、サーバBに対して、時刻t10にメッセージS6を、時刻t11にメッセージS7を送信し、その後、サーバBが、サーバAに対して、時刻t12にメッセージR5を、時刻t12にメッセージR6を送信する。このように、並列とは、2個のサーバ間において、あるメッセージを受信した一方のサーバが、受信したメッセージに基づいて第1の要求のメッセージを他方のサーバに送信した後、他方のサーバからメッセージを受信する前に、第2の要求のメッセージを他方のサーバに送信する場合である。並列においては、例えば、送信されたメッセージS6と受信されたメッセージR5及びR6との対応が明確でない。従って、サーバBにおける処理時間は、時刻t12から時刻t10を引いたΔt5であるのか、又は、時刻t13から時刻t10を引いたΔt6であるのかを定義する必要が生じる。
なお、時間Δt5又は時間Δt6のいずれをサーバBにおける処理時間とするかは、サーバBにおける処理の内容に基づいて定義される。この定義は、解析を行うユーザが定めるべきものである。
このように、サーバ間におけるメッセージの送受信には種々の形態が存在する。図17(B)及び図17(D)の場合には、処理時間の定義が困難であり、処理時間を一律に算出することはできない。また、実際には、図17(A)〜図17(D)の場合が混在するので、より一層処理時間の定義が困難であり、処理時間を一律に算出することはできない。従って、例えば、処理時間算出プログラムにより、処理時間を一律に算出することはできない。
また、処理時間の算出において、図16に示すように、各サーバにおける処理時間として定義した時間の和が、クライアントからみた総処理時間(全レスポンス時間)と一致する必要がある。前述したように、各サーバにおける処理時間の定義は、解析を行うユーザにより定められる。従って、処理時間が重ならないように、各々の処理時間を定義することが必要である。以上に加えて、各々の処理時間が正しく定義されているかの検証を省略できるようにすることが望ましい。
図1及び図2は、本発明の一実施態様である処理時間算出システムの構成を示す図である。
処理時間算出システムは、対象システム1と、トランザクション抽出装置2と、トランザクション抽出結果ファイル3と、処理時間算出装置4とを備える。
トランザクション抽出装置2は、図1に示すように、処理時間の算出対象となる対象システム1から、対象システムで実行されるトランザクションを抽出することにより、トランザクション抽出結果ファイル3を得る。処理時間算出装置4は、入力されたトランザクション抽出結果ファイル3を解析して、出力としての処理時間算出結果5を得る。
対象システム1は、処理時間の算出対象である複数のコンピュータを含むコンピュータシステムである。対象システム1は、クライアントマシン(以下、クライアント)であるコンピュータと、複数のサーバマシン(以下、サーバ)であるコンピュータとがネットワークにより接続されたコンピュータシステムである。
図1に示す対象システム1は、複数の処理サーバが相互に通信することによりクライアントからの要求を処理する。対象システム1のネットワークは、例えば、当該ネットワークに接続されたネットワークスイッチを備える。ネットワークスイッチは、クライアントとサーバとの間で通信されるメッセージをミラーリングし(コピーし)、ミラーリングしたメッセージをトランザクション抽出装置2に出力する。
トランザクション抽出装置2は、対象システム1において送受信されたメッセージをコピーし、コピーしたメッセージから対象システム1におけるトランザクションを抽出して、トランザクション抽出結果ファイル3を出力する。トランザクション抽出結果ファイル3は、1又は複数のトランザクション抽出結果を含む。各トランザクション抽出結果は、例えば、送信元アドレス、送信先アドレス、メッセージタイプ、送信時刻、受信時刻を含む。トランザクション抽出結果ファイル3は、図1の例では、トランザクション抽出装置2又は処理時間算出装置4が備える記憶装置に格納される。
処理時間算出装置4は、対象システム1の各サーバにおける処理時間とサーバ間における通信時間とを算出する。具体的には、処理時間算出装置4は、トランザクション抽出結果ファイル3から1個のトランザクション抽出結果を読み出し、読みだしたトランザクション抽出結果についての処理時間を算出して、処理時間算出結果5として出力する。
処理時間算出結果5は、トランザクション抽出結果に含まれるトランザクションについての各々のサーバ等における処理時間を示す。処理時間算出結果5は、例えば、ファイル出力、画面表示又は印刷出力される。トランザクション抽出結果の定義については、図3を参照して後述する。処理時間については後述する。
処理時間算出装置4は、図2に示すように、モデルトポロジ識別部41と、モデルトポロジレジストリ42と、処理時間定義処理部43と、処理時間算出部44と、入出力装置45とを備える。
モデルトポロジ識別部41は、トランザクション抽出結果から、トポロジ情報を抽出する抽出手段である。トランザクション抽出結果は、図4(A)を参照して後述するように、トランザクション抽出結果に現れる複数のメッセージの各々について、送信元アドレス、送信先アドレス、メッセージタイプ、送信時刻、受信時刻を含む情報である。トポロジ情報は、図4(B)を参照して後述するように、トランザクション抽出結果に現れる複数のメッセージの各々について、送信元アドレス、送信先アドレス、メッセージタイプ、送信順SendOrder、受信順RecvOrderを含む情報である。従って、トポロジ情報は、現実の送受信の時刻ではなく、送受信の順番により定められる情報である。送受信の順番については後述する。
具体的には、モデルトポロジ識別部41は、新たなトランザクション抽出結果ファイル3が処理時間算出装置4に入力されると、これから1個のトランザクション抽出結果を読み出す。モデルトポロジ識別部41は、読み出したトランザクション抽出結果に対応するトポロジ情報を抽出し、モデルトポロジレジストリ42に登録する。この時点では、トポロジ情報について、サーバ等にどのように処理時間を割当てるかは定義されていない(処理時間が未定義である)。従って、モデルトポロジレジストリ42には、処理時間が未定義のトポロジ情報が存在する可能性がある。処理時間が未定義のトポロジ情報は、未定義のモデルトポロジである。例えば、図2において、処理時間が未定義のトポロジ情報として、トポロジ情報「MODEL1、トポロジ1−2、未定義」が存在する。
一方、後述するように、モデルトポロジレジストリ42には、処理時間が定義されたトポロジ情報が存在する。処理時間が定義されたトポロジ情報は、処理時間が定義されたプログラム(処理時間定義とも言う)であり、モデルトポロジである。例えば、図2において、処理時間が定義されたトポロジ情報として、トポロジ情報「MODEL1、トポロジ1−1、処理時間定義1」及び「MODEL3、トポロジ3−1、処理時間定義3」が存在する。
図3(A)は、トランザクション抽出結果の一例を示す。トランザクション抽出結果は、クライアントとサーバの間で取り交わされるメッセージや、複数のサーバの間で取り交わされるメッセージを時系列的に表したものである。トランザクション抽出結果ファイル3は、少なくとも1個のトランザクション抽出結果を含む。トランザクション抽出結果は、1又は複数のトランザクション毎に生成される。
model1は、トランザクション抽出結果ファイル3に格納されたトランザクション抽出結果のひとつである。model1は、更に、2個のトランザクション、即ち、trans1とtrans2を含む。即ち、model1には、2個のトランザクションの抽出結果が反映されている。model1に表記されたクライアント、サーバA及びサーバBは、対象システム1内のネットワークに接続されたクライアント及びサーバである。
trans1は、1つのトランザクションの抽出結果であり、時刻t1は、クライアントからサーバAへの要求メッセージの送信時間を示す。また、時刻t2は、サーバAからクライアントへの応答メッセージのクライアントによる受信時間を示す。
trans2は、他の1つのトランザクションの抽出結果であり、時刻t3は、クライアントからサーバAへの要求メッセージの送信時間を示す。また、時刻t4は、サーバAからクライアントへの応答メッセージのクライアントによる受信時間を示す。
モデルトポロジレジストリ42は、トランザクション抽出結果についてのトポロジ情報を、モデルトポロジとして登録する。この登録の時点では、モデルトポロジにおける処理時間は定義されておらず、モデルトポロジは処理時間定義を持っていない。モデルトポロジレジストリ42には、複数のモデルトポロジが登録される。処理時間が未定義のモデルトポロジは、例えば、モデル名、トポロジ名、トポロジ情報を含む。処理時間が定義されたモデルトポロジは、例えば、モデル名、トポロジ名、トポロジ情報に加えて、処理時間定義を含む。処理時間が未定義のトポロジ情報は、処理時間が未定義である即ち処理時間定義を持たないモデルトポロジである。
モデル名は、例えばMODEL1のようなトポロジモデルのモデル名であり、一意に定まる。トポロジ名は、例えばトポロジ1−1のようなトポロジ情報の名前であり、一意に定まる。処理時間定義は、処理時間を算出するプログラムであり、例えば処理時間定義1のような名前を持つ。
処理時間定義処理部43は、モデルトポロジレジストリ42に登録された処理時間が未定義のトポロジ情報について、定義情報入力画面に入力された定義情報に基づいて、処理時間を定義する。これにより、処理時間定義処理部43は、処理時間定義を備えるモデルトポロジを生成して、モデルトポロジレジストリ42に登録する。実際には、処理時間定義処理部43は、処理時間が未定義のモデルトポロジに、生成した処理時間定義を付加することにより、処理時間が定義されたモデルトポロジとする。
処理時間定義処理部43は、モデルトポロジ識別部41により抽出されたトポロジ情報に基づいて、定義情報入力画面を表示する表示手段である。定義情報入力画面は、後述するように、処理時間を定義するための定義情報を入力するための画面である。定義情報とは、処理時間をいずれのサーバ即ちコンピュータに割り当てるかを定める処理時間定義情報であり、ユーザにより入力され定義される。
具体的には、処理時間定義処理部43は、モデルトポロジレジストリ42を監視して、モデルトポロジレジストリ42の登録されたトポロジ情報の中で、定義されていない(未定義の)トポロジ情報を検出する。処理時間定義処理部43によるモデルトポロジレジストリ監視処理は、所定の時間間隔で周期的に行われる。ユーザは、未定義のトポロジ情報が存在する場合、当該未定義のトポロジ情報について、処理時間の定義を行う。処理時間定義処理部43は、定義された処理時間の定義を、当該未定義のトポロジ情報に反映させる。これにより、当該トポロジ情報の処理時間が定義される。換言すれば、モデルトポロジが生成される。
定義情報入力画面の表示のため、及び、定義情報入力画面へ定義情報を入力するため、処理時間定義処理部43は入出力装置45を備える。入出力装置45は、例えば、出力装置として表示画面を備える表示装置を備え、入力装置としてマウスのようなポインティングデバイスを備える。定義情報入力画面は、入出力装置45の表示画面上に表示される。マウスは、表示された定義情報入力画面における位置をポインティングすることにより、位置情報を入力する。
処理時間算出部44は、モデルトポロジレジストリ42に登録された処理時間が定義されたモデルトポロジを用いて、トランザクション抽出結果についての処理時間を算出する算出手段である。処理時間は、複数のサーバの各々における処理時間と、複数のサーバ間における通信時間とを含む。具体的には、処理時間算出部44は、処理時間定義に基づいて、通信時間、サーバ処理時間等の処理時間を算出する。処理時間算出部44は、処理時間を算出した結果を、処理時間算出結果5として、入出力装置45等に表示する。
図3(B)は、処理時間算出結果5の一例を示す。処理時間算出結果5は、1個のトランザクションについて、そのトランザクションの処理を実行した複数のサーバA〜Dの各々における処理時間と、複数のサーバA〜D間における通信時間とを示す。処理時間算出結果5は、例えば、入出力装置45の画面上に表示され、又は、入出力装置45から印刷出力される。
処理時間算出結果5は、図3(B)に示すように、例えば、棒グラフにより、クライアントが処理の要求を送信してから応答を得るまでに要した全レスポンス時間における処理時間の内訳を示す。処理時間の内訳は、全レスポンス時間における各サーバの処理時間の占める割合である。処理時間は、処理時間と通信時間とを含む。換言すれば、処理時間は、複数のサーバA〜Dの各々における処理時間と、複数のサーバA〜D間における通信時間(図3(B)において通信オーバヘッドと表示)とを含む。全レスポンス時間は、処理時間と通信時間との合計に一致する。
これにより、ユーザは、このコンピュータシステムの性能を解析するために、4個のサーバの各々における処理時間と、4個のサーバの間における通信時間とを知ることができる。例えば、図3(B)においては、サーバCにおける処理時間の割合が最も高いので、ユーザは、サーバCにおける処理の改良を優先的に検討することができる。
以下、モデルトポロジ識別部41が実行するトポロジ情報抽出処理について、図4〜図14を参照して説明する。
モデルトポロジ識別部41は、図4(A)に示す入力データ(トランザクション抽出結果)から、図4(B)に示す出力データを抽出する。図4(A)に示す入力データは、トランザクション抽出結果ファイル3の一例である。図4(B)の出力データは、モデルトポロジレジストリ42に格納されるトポロジ情報の一例である。
図4(A)は、トランザクション抽出結果ファイル3に格納された、図3(A)のトランザクション抽出結果であるmodel1のtrans1を表したデータであり、モデルトポロジ識別部41の入力データとして使用される(以下、入力データという)。トランザクション抽出結果ファイル3の入力データは、各トランザクション抽出結果におけるトランザクション毎に抽出される。1個の入力データは、当該トランザクションに含まれる複数のメッセージの各々について、送信元アドレス、送信先アドレス、メッセージタイプ、送信時刻、受信時刻を格納する。送信元アドレスは、当該メッセージの送信元を示す。送信先アドレスは、当該メッセージの送信先を示す。メッセージタイプは、当該メッセージの送信プロトコルの種類を示す。送信時刻は、当該メッセージが送信された時刻を示す。受信時刻は、当該メッセージが受信された時刻を示す。
例えば、図4(A)における番号1のメッセージは、送信元クライアントから送信先サーバAに送信されたものであり、そのメッセージタイプはHTTP(Hyper Text Transfer Protocol)1である。また、その送信時刻は「10:00」であり、受信時刻は「10:00」である。
図4(B)は、図3(A)のトランザクション抽出結果であるmodel1のtrans1に対応した、モデルトポロジ識別部41の出力であり(以下、出力データという)、モデルトポロジレジストリ42に格納されるトポロジ情報である。出力データは、当該トポロジ情報に含まれる複数のメッセージの各々について、送信元アドレス、送信先アドレス、メッセージタイプ、送信順SendOrder、受信順RecvOrderを格納する。
SendOrderは、当該トポロジ情報の全メッセージの送受信において当該メッセージの送信時刻が出現する順番を示す。RecvOrderは、当該トポロジ情報の全メッセージの送受信において当該メッセージの受信時刻が出現する順番を示す。換言すれば、SendOrder又はRecvOrderは、図4の例において、送信時刻と受信時刻とを通算した場合における、送信時刻又は受信時刻の出現する順序である。
図4(B)の例では、番号1のメッセージは、最初に出現する同一の時刻「10:00」に送信及び受信されているので、SendOrder及びRecvOrderは「0」となる。番号3のメッセージは、3番目に出現する時刻「10:03」に送信されているので、SendOrderは「2」となり、4番目に出現する時刻「10:04」に受信されているので、RecvOrderは「3」となる。
従って、図4(B)の出力データは、図4(A)の入力データにおいて、各メッセージの発信時刻及び着信時刻をその出現する順にソートした結果である。ここで、メッセージの出現順は、変更されない。一方、図6を参照して後述するように、各メッセージの発信時刻及び着信時刻は、その出現する順にソートされる。これにより、入力データは、発信時刻及び受信時刻に依存しないトポロジ情報である出力データに変換される。
この出力データ即ちトポロジ情報を用いることにより、メッセージの現実の送受信の時刻ではなく、メッセージの送受信の順番に基づいて、モデルトポロジを生成することができる。換言すれば、メッセージの現実の送受信の時刻が異なっていても、メッセージタイプ及び送受信の順番が同一であれば、同一のモデルトポロジとして、その数を抑えることができる。
図5は、モデルトポロジ識別部41が実行するトポロジ情報抽出の処理フローを示す。図6は、トランザクション抽出結果ファイル3からのトポロジ情報抽出の過程を示す。
モデルトポロジ識別部41は、トランザクション抽出結果ファイル3からトランザクションに含まれている送信時刻、受信時刻のリストを生成する(ステップS11)。ステップS11の処理により、図6の部分#1に示すように、例えば、図4(A)に示す入力データの中から送信時刻と受信時刻のデータである“10:00,10:00,10:01,10:01,10:03,10:04,10:10,10:12,10:15,10:15,10:17,10:17”が抽出される。
次に、モデルトポロジ識別部41は、生成したリストを時刻順にソートし、同じ時刻があった場合、1つの同時刻のデータを残し、他の同時刻データを取り除く(ステップS12)。ステップS12の処理により、図6の部分#2に示すように、抽出した時刻データを時刻の早い順にソートし、ソートした後に、重複した時刻を除く。即ち、“10:00,10:01,10:03,10:04,10:10,10:12,10:15,10:17”の時刻データが得られる。
次に、モデルトポロジ識別部41は、ステップS12で生成したリストの中から、時刻の早いものから順に、時刻の出現の順を表す番号を割当てる(ステップS13)。ステップS13の処理により、図6の部分#3に示すように、ステップS12で得られた時刻データに、時刻の早い順に、先頭から0〜7の番号が付与される。例えば、最初の時刻「10:00」に番号「0番」が付与される(即ち、“10:00→0”とされる)。他の時刻データについても、同様である。
次に、モデルトポロジ識別部41は、トランザクションにおける各メッセージの送信時刻、受信時刻をステップS13で割り当てた番号に置き換えることにより、それぞれ、SendOrder、RecvOrderを算出して(ステップS14)、トポロジ情報抽出処理を終了する。ステップS14の処理により、当該トランザクションに含まれる複数のメッセージの各々について、SendOrder及びRecvOrderが得られる。以上により、モデルトポロジ識別部41の出力として、図4(B)に示す出力データが生成される。
次に、処理時間定義処理部43は、実行する処理時間定義処理について、図7〜図13を参照して説明する。
例えば、図7に示すように、モデルトポロジレジストリ42Aが、「MODEL1、トポロジ1−1、処理時間定義1」「MODEL1、トポロジ1−2、未定義」「MODEL3、トポロジ3−1、処理時間定義3」の3つのトポロジ情報を格納している。即ち、モデルトポロジレジストリ42Aには、処理時間が未定義のトポロジ情報「MODEL1、トポロジ1−2」が存在する。
処理時間定義処理部43は、前述したように、モデルトポロジレジストリ42を監視して、処理時間が未定義のトポロジ情報「MODEL1、トポロジ1−2」を検出する。そこで、処理時間定義処理部43は、モデルトポロジレジストリ42Aから処理時間が未定義のトポロジ情報「MODEL1、トポロジ1−2」を読出して、読み出したトポロジ情報を入力出力装置45に表示する。これを見たユーザは、表示されたトポロジ情報について、処理時間の定義に必要な情報を、当該表示画面から入力する。処理時間定義処理部43は、この入力された処理時間の定義に必要な情報に基づいて、読み出したトポロジ情報について、処理時間の定義を行う。処理時間の定義については、後述する。
この後、処理時間定義処理部43は、モデルトポロジレジストリ42Bに、処理時間を定義したトポロジ情報「MODEL1、トポロジ1−2」を登録する。この時、モデルトポロジレジストリに登録されるトポロジ情報のモデル名は、処理時間が定義済みであることを示すように、「MODEL1、トポロジ1−2、処理時間定義2」とされる。
図8は、処理時間定義処理部43が表示する、定義情報の入力のための定義情報入力画面の一例を示す図である。
図8の定義情報入力画面は、トランザクションから抽出されたトポロジ情報を視覚化したものである。なお、図8〜図10のトランザクションは、図4(B)のトランザクションとは異なるものである。
処理時間定義処理部43は、定義情報入力画面を表示する。定義情報入力画面は、複数のコンピュータにおける複数のメッセージの送受信の階層をX座標(第1の座標)の値に対応させ、複数のメッセージの出現の順をY座標(第2の座標)の値に対応させた画面である。また、処理時間定義処理部43は、定義情報入力画面において、メッセージの各々を、矢印で表示する。この矢印は、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ。また、この矢印は、複数のメッセージの出現の順に対応する位置に存在する。
具体的には、処理時間定義処理部43は、処理時間が未定義のトポロジ情報「MODEL1、トポロジ1−2」をモデルトポロジレジストリ42Aから読出して、図8に示すように、読出したトポロジ情報「MODEL1、トポロジ1−2」を入出力装置45に表示する。即ち、処理時間定義処理部43は、読出したトポロジ情報「MODEL1、トポロジ1−2」を視覚化したダイアグラム(定義情報入力画面)を表示する。
定義情報入力画面において、複数のメッセージが、その出現の順番に表示される。1個のメッセージが1個の矢印で表される。矢印の出現順はメッセージの出現順に対応する。矢印の方向がメッセージの送信された方向を表す。
定義情報入力画面において、縦軸即ちY軸は、メッセージの送信時刻Send又はメッセージの受信時刻Recvが出現する順を示す番号を表す。具体的には、定義情報入力画面の縦軸は、図4(B)におけるSendOrderの欄に示す番号及びRecvOrderの欄に示す番号を表す。従って、図4(B)に示すSendOrderの欄に示す番号及びRecvOrderの欄に示す番号が、定義情報入力画面におけるY座標の値である。
定義情報入力画面において、横軸即ちX軸は、メッセージの送信元SRC又は送信先DSTであるクライアント又はサーバに割当てられた番号を表す。従って、クライアント又はサーバに割当てられた番号が、定義情報入力画面におけるX座標の値である。この横軸の番号は、送信元SRC及び送信先DSTであるサーバ又はクライアント毎に、当該サーバ又はクライアントが当該トポロジ情報において最初にメッセージを送信又は受信した順に、割当てられる。
換言すれば、この横軸の番号は、当該トポロジ情報におけるメッセージの送受信を行うサーバ又はクライアントの階層を表す。ここで、この階層は、各サーバ又はクライアントに処理時間を分配する際における、処理時間の分配の単位である。換言すれば、この階層は、コンピュータシステムの物理的な階層と一致する必要はなく、メッセージの送受信における階層であって良い。従って、例えば、この階層は、コンピュータシステムにおけるサービスレイヤーであって良い。又は、複数のサーバ又はコンピュータがメッセージの送受信を繰り返すことにより処理を実行するコンピュータシステムにおける、各サーバ又はコンピュータの階層であって良い。
なお、ファイアウォールFWは、1個の階層としなくても良い。また、図8の例において、例えば、「階層0」は、クライアントであっても、サーバA〜Bであっても良い。従って、コンピュータシステムにおいてメッセージを送受信する2以上の階層が存在すれば、モデルトポロジを生成することができる。また、1個の階層が、更に、相互にメッセージの送受信を行う複数のコンピュータを含んでいても良い。この場合、複数のコンピュータが異なるIPアドレス又はサーバ名を持つ場合でも、複数のコンピュータは、1個の階層とされる。
図8の定義情報入力画面においては、縦軸の番号即ちY座標は「0」から開始される。これは、横軸の番号即ちX座標についても、同様である。Y座標即ちメッセージの送信時刻又は受信時刻が出現する順を示す番号、及び、X座標即ちメッセージの送信元又は送信先に割当てられた番号は、モデルトポロジ識別部41により、トランザクション抽出結果毎に、割当てられる。この割当て処理は、例えば、モデルトポロジ識別部41がトランザクション抽出結果ファイル3から1個のトランザクション抽出結果を読み出す都度に実行される。
最初のメッセージは、送信元であるクライアントから、送信先であるサーバAに送信される。ここで、送信時刻及び受信時刻が同一である場合、SendOrder及びRecvOrderは「0」となるので、最初のメッセージの送信時刻1S及び受信時刻1EのY座標は、共に「0」とされる。一方、クライアントにおける最初のメッセージの送信時刻1SのX座標は「0」とされ、サーバAにおける受信時刻1EのX座標は「1」とされる。
メッセージを示す矢印の始点を「S」と表し、矢印の終点を「E」と表す。例えば、最初のメッセージを示す矢印の始点を「1S」と表し、その矢印の終点を「1E」と表す。また、図示の便宜のため、記号「1S」は当該メッセージが送信された時刻をも表し、記号「1E」は当該メッセージが受信された時刻をも表すものとする。ここで、記号「1S」等が表す時刻は、他の時刻との関連で定まる相対値であって、特定の時刻を表すものではなく、他の時刻と同時刻であるか又は遅い時刻であるかを表す。
メッセージの始点及び終点には、各々、定義情報入力画面におけるX座標及びY座標が付与される。定義情報入力画面におけるX座標は、前述したように、メッセージの送信元又は送信先に割当てられた番号である。定義情報入力画面におけるY座標は、メッセージの送信時刻又は受信時刻が出現する順を示す番号である。例えば、最初のメッセージの始点の座標は1S(0,0)と表され、終点の座標は1E(1,0)と表される。他のメッセージについても、同様にして、始点及び終点の座標が定められる。
次に、処理時間定義処理部43は、所定の制約条件の下で、定義情報入力画面への入力を受け付ける。制約条件については後述する。
図8の定義情報入力画面を見たユーザは、入出力装置45から、図9に示すように、メッセージ処理経路を入力する。この入力は、ユーザが処理時間をどのように定義するかに応じて定まる。具体的には、ユーザは、図9に示すように、定義情報入力画面に表示された複数のメッセージの始点又は終点を、マウスによりクリックする。これにより、ユーザは、メッセージ処理経路において、どの部分をどのサーバの処理時間として割当てるかを定義する。換言すれば、ユーザは、メッセージの始点又は終点を選択することにより、定義情報を入力する。具体的な入力の例については、図9を参照して後述する。
この入力において、処理時間定義処理部43は、入出力装置45から以下の入力のみを許容する。換言すれば、処理時間定義処理部43は、以下の入力の制約条件A〜Dの下で、定義情報入力画面への定義情報の入力を受け付ける。これにより、処理時間定義処理部43は、許容される入力以外の入力に基づく処理時間を定義する処理を実行せず、又は、許容される入力以外の入力を無視又は廃棄する。
制約条件A〜Dは、以下のとおりである。
制約条件A:処理時間定義処理部43は、メッセージを表す矢印の始点及び終点を指定する(クリックする)入力のみを許容する。
制約条件B:処理時間定義処理部43は、メッセージ処理経路の始点として、トポロジ情報に最初に現れるメッセージを送信した階層を指定する入力のみを許容する。
制約条件C:処理時間定義処理部43は、メッセージ処理経路の終点として、メッセージ処理経路の始点とされた階層を指定する入力のみを許容する。
制約条件D:処理時間定義処理部43は、メッセージ処理経路として、新たに指定する始点又は終点の時刻が、先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容する。
制約条件A:処理時間定義処理部43は、メッセージを表す矢印の始点及び終点を指定する(クリックする)入力のみを許容する。
制約条件B:処理時間定義処理部43は、メッセージ処理経路の始点として、トポロジ情報に最初に現れるメッセージを送信した階層を指定する入力のみを許容する。
制約条件C:処理時間定義処理部43は、メッセージ処理経路の終点として、メッセージ処理経路の始点とされた階層を指定する入力のみを許容する。
制約条件D:処理時間定義処理部43は、メッセージ処理経路として、新たに指定する始点又は終点の時刻が、先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容する。
ここで、階層とは、コンピュータシステムにおけるメッセージの送受信の階層であって、コンピュータシステムの物理的な階層構造とは異なる。換言すれば、階層は、処理対象である即ち処理時間が未定義のトポロジ情報において、メッセージの送受信の順に定まるコンピュータの階層である。例えば、最初に送受信されたメッセージを送信したコンピュータの属する階層が、最初の階層とされ、以下、出現順に階層が定まる。
図8の例では、メッセージ処理経路の始点として、最初のメッセージを送信したクライアントであるコンピュータを指定する入力のみを許容する。また、メッセージ処理経路の終点として、クライアントであるコンピュータを指定する入力のみを許容する。従って、制約条件B及びCにおいて、階層はクライアントとされる。
以上の結果として、第1に、処理時間定義処理部43は、メッセージ処理経路を、定義情報入力画面において、制約条件A〜Dの下で受け付けられた入力即ち点を結ぶことにより得られる連続した線分とする。第2に、処理時間定義処理部43は、制約条件B及びCから、メッセージ処理経路の始点とされた階層即ちコンピュータを、メッセージ処理経路の終点とする。第3に、処理時間定義処理部43は、指定された終点のY座標と始点のY座標との間を、各サーバにおける処理時間とする。第4に、処理時間定義処理部43は、2個のサーバ間を結ぶ、斜め下方向に指定された経路を、サーバ間における通信時間とする。
以上の制約条件の下での入力により、ユーザは、処理性能の解析の目的に応じて、処理時間を自由に定義することができる。
図9は、定義情報入力画面への定義情報の入力の一例を示す図である。
例えば、処理時間が未定義のトポロジ情報「MODEL1、トポロジ1−2」が、図8に示すようなトランザクション即ちメッセージの集合であるとする。図9の例では、対象システム1が、クライアントと、サーバAと、ファイアーウォール(FW)と、サーバBと、サーバCを備えるものとする。そして、対象システム1において、図9に示す順でメッセージの送受信が行われたものとする。
なお、図8〜図10の例においては、トポロジ情報に現れる各メッセージのメッセージタイプについての説明は省略している。これについては後述する。
次に、処理時間定義処理部43は、受け付けられた入力に基づいて、メッセージ処理経路を定める。メッセージ処理経路は、コンピュータシステムにおいて、メッセージが処理される経路を一意に定める。換言すれば、メッセージ処理経路は、定義情報入力画面において一筆書きすることができる。そして、処理時間定義処理部43は、メッセージ処理経路に従って、複数のコンピュータの各々における前記処理時間を定義する処理時間定義を生成する。
図8のようなトランザクションについて、以下のようにして処理時間の定義情報が入力され、処理時間が定義される。
例えば、ユーザが、図9に黒丸で示すように、定義情報入力画面上の各点を、マウスを用いてクリックする。具体的には、ユーザが、1S、1E、2S、3E、4S、4E,8S、8E、10S、11E、12S、12Eの順に、各点をクリックする。これにより、クライアントからサーバA及びサーバBを経由してサーバCへ到達し、サーバCからサーバB及びサーバAを経由してクライアントに戻る、1個の経路が選択される。
例えば、図9において、ユーザにより、始点10Sと終点11Eとが選択される。これにより、処理時間を定義するメッセージ即ち定義情報の一部として、サーバBからサーバAへの返信においては、始点が10Sで終点が10Eのメッセージと、始点が11Sで終点が11Eのメッセージとが選択される。換言すれば、これらのメッセージは、定義情報と言う観点からの意味を持つ。従って、処理時間を定義するメッセージとして、サーバBからサーバAへの返信においては、始点が5Sで終点が5Eのメッセージと、始点が6Sで終点が6Eのメッセージとは選択されない。換言すれば、これらのメッセージは、定義情報と言う観点からは、意味を持たない。
なお、処理時間を定義するメッセージとして、サーバBからサーバAへの返信において、始点が5Sで終点が5Eのメッセージと、始点が6Sで終点が6Eのメッセージとが選択された場合、図9の処理時間の定義情報に基づくモデルトポロジとは別のモデルトポロジとされる。従って、処理時間の定義情報を変更することにより、同一のトポロジ情報について異なるモデルトポロジを生成することができる。
また、図9において、ユーザにより、始点12Sと終点12Eとが選択される。これにより、処理時間を定義するメッセージとして、サーバAからクライアントへの返信においては、始点が12Sで終点が12Eのメッセージが選択される。従って、処理時間を定義するメッセージとして、サーバAからクライアントへの返信においては、始点が7Sで終点が7Eのメッセージは選択されない。
なお、処理時間を定義するメッセージとして、サーバAからクライアントへの返信において、始点が7Sで終点が7Eのメッセージが選択された場合、図9の処理時間の定義情報に基づくモデルトポロジとは別のモデルトポロジとされる。
また、図9において、ユーザにより、始点8Sと終点8Eとが選択される。これにより、処理時間を定義するメッセージとして、サーバCからサーバBへの返信においては、始点が8Sで終点が8Eのメッセージが選択される。従って、処理時間を定義するメッセージとして、サーバCからサーバBへの返信においては、始点が9Sで終点が9Eのメッセージは選択されない。
なお、処理時間を定義するメッセージとして、サーバCからサーバBへの返信において、始点が9Sで終点が9Eのメッセージが選択された場合、図9の処理時間の定義情報に基づくモデルトポロジとは別のモデルトポロジとされる。
一方、前述したように、ユーザにより、図9に点線の斜めの線分で示すように、始点10Sと終点11Eとが選択される。これにより、以下のことが定義される。即ち、サーバAとサーバBとの間においては、始点2SのY座標と終点3EのY座標とが異なり、始点10SのY座標と終点11EのY座標とが異なる。換言すれば、サーバAとサーバBとの間においては、メッセージの送信時刻と受信時刻とが異なる。従って、サーバAとサーバBとの間においては、送信時刻と受信時刻との差分、即ち、処理時間を定義する場合における通信時間が存在する。換言すれば、送信時刻と受信時刻との差分は、定義情報と言う観点からの意味を持つ。
なお、図4(A)及び図4(B)に示すように、メッセージには複数のメッセージタイプが存在する。従って、実際には、処理時間を定義してモデルトポロジを生成する場合には、メッセージタイプも考慮される。
例えば、図8〜図10のトポロジ情報(第1のトポロジ情報)において、始点が2Sで終点が2Eのメッセージ及び始点が3Sで終点が3Eのメッセージのメッセージタイプが、「IIOP1」であるとする。一方、始点が2Sで終点が2Eのメッセージ及び始点が3Sで終点が3Eのメッセージのメッセージタイプが「IIOP2」であり、他は全く同一のトポロジ情報(第2のトポロジ情報)が存在するとする。即ち、第2のトポロジ情報の定義情報入力画面は、前記メッセージのメッセージタイプを除いて、図8に示される第1のトポロジ情報の定義情報入力画面と同一である。
この場合において、第2のトポロジ情報について、第1のトポロジ情報と同一の定義情報を入力したとする。しかし、たとえ定義情報が同一でも、異なるモデルトポロジが生成される。換言すれば、第2のトポロジ情報についてのモデルトポロジは、図9の処理時間の定義情報に基づく第1のトポロジ情報についてのモデルトポロジとは別のモデルトポロジとされる。これは、定義情報が同一でも、1個のメッセージのメッセージタイプが異なるので、トポロジ情報それ自体が異なるからである。
図10は、処理時間が定義されたトポロジ情報即ちモデルトポロジの一例を示す図である。図10は、図8の定義情報入力画面に、図9の定義情報が入力された場合における、モデルトポロジを示す。
図9において、始点10Sと終点11Eとが選択される。これにより、処理時間を定義するメッセージ即ち定義情報の一部として、サーバBからサーバAへの返信においては、始点が10Sで終点が10Eのメッセージと、始点が11Sで終点が11Eのメッセージとが選択される。換言すれば、これらのメッセージは、定義情報と言う観点からの意味を持つ。従って、図10に点線で示すように、処理時間を定義するメッセージとして、サーバBからサーバAへの返信においては、始点が5Sで終点が5Eのメッセージと、始点が6Sで終点が6Eのメッセージとは選択されない。換言すれば、これらのメッセージは、定義情報と言う観点からは、意味を持たない。
同様に、処理時間を定義するメッセージとして、サーバAからクライアントへの返信においては、始点が12Sで終点が12Eのメッセージが選択される。従って、図10に点線で示すように、処理時間を定義するメッセージとして、サーバAからクライアントへの返信においては、始点が7Sで終点が7Eのメッセージは選択されない。
以上から、サーバAにおける処理時間は、2S−1E+12S−11Eとして定義される。即ち、座標1Eに対応する時刻から座標2Sに対応する時刻までの時間と、座標11Eに対応する時刻から座標12Sに対応する時刻までの時間との和が、サーバAの処理時間である。
同様に、処理時間を定義するメッセージとして、サーバCからサーバBへの返信においては、始点が8Sで終点が8Eのメッセージが選択される。従って、図10に点線で示すように、処理時間を定義するメッセージとして、サーバCからサーバBへの返信においては、始点が9Sで終点が9Eのメッセージは選択されない。
以上とサーバAへの返信における処理時間の定義と併せて、サーバBにおける処理時間は、4S−3E+10S−8Eとして定義される。また、以上から、サーバCにおける処理時間は、8S−4Eとして定義される。
一方、サーバAとサーバBとの間においては、始点2SのY座標と終点3EのY座標とが異なり、始点10SのY座標と終点11EのY座標とが異なる。換言すれば、サーバAとサーバBとの間においては、メッセージの送信時刻と受信時刻とが異なる。従って、サーバAとサーバBとの間においては、送信時刻と受信時刻との差分、即ち、処理時間を定義する場合における通信時間が存在する。換言すれば、送信時刻と受信時刻との差分は、定義情報と言う観点からの意味を持つ。
以上から、このコントローラシステムにおける通信時間は、3E−2S+11E−10Sとして定義される。
なお、実際には、各点は、特定の時刻を示すものではなく、各点における時刻の相対値を抽象的に示すに過ぎないので、直接、各サーバにおける処理時間を算出することはできない。
図11は、定義情報入力画面への定義情報の入力処理フローを示す図である。
処理時間定義処理部43は、モデルトポロジレジストリ42Aに処理時間が未定義のトポロジ情報が存在する場合、モデルトポロジレジストリ42Aから処理時間が未定義のトポロジ情報を読み出す。
この後、処理時間定義処理部43は、読み出したトポロジ情報に含まれる送信元(図11においてSRC(Source)と表記)、送信先(図11においてDST(Destination)と表記)に現れるサーバ(コンピュータ名)及びクライアントに対して、数字をインクリメントしながら、その出現の順番に、番号を振る(ステップS21)。
次に、処理時間定義処理部43は、トポロジ情報に始点と終点が設定されていないメッセージが存在するか否かを判断する(ステップS22)。トポロジ情報に、始点と終点が設定されていないメッセージが存在しない場合(ステップS22のNo)、処理を終了する。
一方、トポロジ情報に、始点と終点とが設定されていないメッセージが存在する場合(ステップS22のYes)、処理時間定義処理部43は、始点と終点が設定されていない1個のメッセージを選択する(ステップS23)。
次に、処理時間定義処理部43は、メッセージの始点及び終点を以下のように設定する(ステップS24)。メッセージの始点について、定義情報入力画面におけるX座標が送信元SRCのサーバ即ちコンピュータの番号とされ、定義情報入力画面におけるY座標がSendOrderとされる。メッセージの終点について、X座標が送信先DSTのサーバ即ちコンピュータの番号とされ、Y座標がRecvOrderとされる(ステップS24)。この後、ステップS22〜S24の処理を繰り返す。
これにより、トポロジ情報に含まれる全てのメッセージについて、定義情報入力画面における始点と終点とが設定される。例えば、図8に示すように、最初のメッセージについて、始点1S(0,0)及び終点1E(1,0)が定められる。
図12は、トポロジ情報の処理時間定義の処理フローを示す図である。
処理時間算出装置4が、予め定められた所定の時間が経過するのを待ち(ステップS31)、モデルトポロジレジストリ42に処理時間が未定義のトポロジ情報即ち新たに追加されたトポロジ情報があるか否かを判断する(ステップS32)。モデルトポロジレジストリ42に処理時間が未定義のトポロジ情報がない場合(ステップS32のNo)、処理時間算出装置4が、ステップS31の処理を繰り返す。
処理時間が未定義のトポロジ情報がモデルトポロジレジストリにある場合(ステップS32のYes)、処理時間算出装置4が、処理時間定義を実行するGUI(Graphical User Interface)である処理時間定義処理部43を起動する(ステップS33)。
処理時間定義処理部43は、変数lastX及び変数lastYに、各々、クライアントから最初に送信されたメッセージSENDのX座標及びY座標をセットし(ステップS34)、マウスがクリックされるまで待つ(ステップS35)。変数lastXは、前回マウスがクリックされた時のX座標の値を表す変数である。変数lastYは、前回マウスがクリックされた時のY座標の値を表す変数である。ステップS34においては、未だマウスがクリックされていない。そこで、変数lastXの初期値として最初のメッセージSENDのX座標がセットされ、変数lastYの初期値として最初のメッセージSENDのY座標がセットされる。マウスがクリックされた場合の座標については、図13の説明において後述する。
このように、図12の例では、メッセージ処理経路の始点が、強制的にクライアントに定められる。これにより、未定義のトポロジ情報についての定義情報の入力において、制約条件Bを満たすように、入力を制限することができる。換言すれば、メッセージ処理経路の始点として、トポロジ情報に最初に現れるメッセージを送信したクライアントを指定する入力のみを許容することができる。
なお、メッセージ処理経路の始点を、クライアントではなく、サーバとして、このサーバから最初に送信されたメッセージから処理時間を定義する場合には、ステップS34を省略するようにしても良い。この場合、以下のステップS36において、マウスのクリックにより、最初に送信されたメッセージの始点が入力されると、この始点のX座標及びY座標が、各々、変数lastX及び変数lastYにセットされる。
この後、ユーザによるマウスのクリックに応じて、処理時間定義処理部43は、クリック入力の処理を行う(ステップS36)。このクリック入力は、その入力の都度、制約条件A及びDを満たす必要がある。このためのクリック入力の処理については、図13を参照して後述する。
この後、処理時間定義処理部43は、現在の(lastX、lastY)がクライアントへの最後のメッセージRECEVの座標であるか否かを判断する(ステップS37)。このために、処理時間定義処理部43は、例えば、現在の(lastX、lastY)と、ステップS34において変数lastX及び変数lastYにセットされた座標とを比較する。処理時間定義処理部43は、ステップS37を実行するために、ステップS34において変数lastX及び変数lastYにセットされた座標を、例えばステップS38を終了するまで保持する。
(lastX、lastY)がクライアントへの最後のメッセージRECEVの座標でない場合(ステップS37のNo)、処理時間定義処理部43は、ステップS35〜S37の処理を繰り返す。これにより、未定義のトポロジ情報についての定義情報の入力において、制約条件Cを満たすように、入力を制限することができる。換言すれば、メッセージ処理経路の終点として、メッセージ処理経路の始点とされたクライアントを指定する入力のみを許容するようにすることができる。
(lastX、lastY)がクライアントへの最後のメッセージのRECEVの座標である場合(ステップS37のYes)、処理時間定義処理部43は、処理時間定義をモデルトポロジレジストリ42に登録し(ステップS38)、ステップS32〜S37の処理を繰り返す。
実際には、ステップS38において、処理時間定義処理部43は、クライアント及びサーバにおける処理時間を例えば2S−1E+12S−11Eのように定義することにより、処理時間定義を生成する。そして、処理時間定義処理部43は、処理時間が未定義のモデルトポロジに、生成した処理時間定義を付加する。これにより、処理時間が定義されたモデルトポロジが生成される。
なお、処理時間が定義されたモデルトポロジ即ち処理時間定義は、処理時間算出部44から呼び出され、メッセージの送信及び受信時刻を与えられると、処理時間の定義に従って、処理時間を算出するプログラムであると考えて良い。
図13は、ステップS36において実行されるマウスのクリック処理フローを示す図である。
処理時間定義処理部43は、変数X、変数Yに現在のマウスの座標即ちマウスによりクリックされた座標をセットする(ステップS41)。変数Xは定義情報入力画面におけるマウスによりクリックされた点のX座標であり、変数Yは定義情報入力画面におけるマウスによりクリックされた点のY座標である。
次に、処理時間定義処理部43は、変数X及び変数Yの値がメッセージを表す矢印の始点及び終点であるか否かを判断する(ステップS42)。変数X及び変数Yの値がメッセージを表す矢印の始点及び終点でない場合(ステップS42のNo)、変数X及び変数Yの値は、制約条件Aを満たさないので、クリックされた点即ち座標は入力として許容されない。換言すれば、クリックされた点はメッセージを表す矢印の始点又は終点を指定していないので、この入力は許容されない。この場合、処理時間定義処理部43は、何もしないか、又は、Warning(警告)表示を行い(ステップS43)、元の処理である図12のステップS35へ戻る(ステップS44)。この場合の警告は、例えば、新たに指定された始点又は終点が、メッセージを表す矢印の始点又は終点を指定していないことを示す。
変数X及び変数Yの値がメッセージを表す矢印の始点及び終点である場合(ステップS42のYes)、処理時間定義処理部43は、“Y<lastY”であるか、即ち、変数Yの値が変数lastYの値より小さいか否かを判断する(ステップS45)。
変数Yの値が変数lastYの値より小さい場合(ステップS45のYes)、変数Yの値は、制約条件Dを満たさないので、クリックされた点は入力として許容されない。換言すれば、メッセージ処理経路として、新たに指定された始点又は終点の時刻が、先に指定した始点又は終点と同一か又は大きくないので、この入力は許容されない。この場合、処理時間定義処理部43は、何もしないか、又は、Warning(警告)表示を行い(ステップS46)、元の処理である図12のステップS35へ戻る(ステップS44)。この場合の警告は、例えば、新たに指定された始点又は終点の時刻が、先に指定した始点又は終点よりも先行する時刻であることを示す。また、この場合、変数lastX及びlastYの値は更新されない。
Yの値がlastYの値より小さくない場合(ステップS45のNo)、即ち、Yの値がlastYの値以上である場合、変数Yの値は、制約条件Dを満たすので、クリックされた点は入力として許容される。この場合、処理時間定義処理部43は、更に、“Y=lastY”であるか、即ち、Yの値とlastYの値が等しいか否かを判断する(ステップS47)。
Yの値がlastYの値と等しい場合(ステップS47のYes)、クリックされた点のY座標は変化していない。この場合、処理時間定義処理部43は、更に、“X=lastX”であるか、即ち、Xの値とlastXの値が等しいか否かを判断する(ステップS48)。Xの値がlastXの値と等しい場合(ステップS48のYes)、処理時間定義処理部43は、ステップS46及びS44の処理を実行する。この場合、X座標及びY座標の双方が変化していないので、処理時間定義処理部43は、何もしない。
Xの値がlastXの値と等しくない場合(ステップS48のNo)、X座標の値が変化しているので、処理時間定義処理部43は、“lastX←X”と設定する(ステップS49)。換言すれば、値Xが新たなlastXの値として設定される。この後、処理時間定義処理部43は、元の処理であるステップS35へ戻る(ステップS44)。この場合、Y座標が変化していないので、処理時間定義処理部43は、クライアント又はサーバの処理時間を定義しない。
ステップS47において、Yの値がlastYの値と等しくない場合(ステップS47のNo)、処理時間定義処理部43は、更に、“X=lastX”であるか、即ち、Xの値とlastXの値が等しいか否かを判断する(ステップS410)。
Xの値がlastXの値と等しい場合(ステップS410のYes)、X座標の値が変化することなく、Y座標の値が変化している。従って、同一のサーバにおいて2個の点が指定されたことになる。この場合、処理時間定義処理部43は、X、lastY、Yに基づいて、サーバ処理時間を定義する(ステップS411)。具体的には、処理時間定義処理部43は、この時点におけるX、lastY、Yを用いて、当該処理時間を割当てるべきサーバを求める。例えば、処理時間定義処理部43は、座標の組(X,lastY)及び(X,Y)を生成して、これらとメッセージの始点及び終点の座標とを比較し、一致した支店及び終点を有するサーバに当該処理時間を割当てる。
この後、処理時間定義処理部43は、“lastX←X,lastY←Y”と設定する(ステップX413)。即ち、値Xが新たなlastXの値として設定され、かつ、値Yが新たなlastYの値として設定される。この後、元の処理であるステップS35へ戻る(ステップS44)。
Xの値がlastXの値と等しくない場合(ステップS410のNo)、X座標及びY座標の値が共に変化している。従って、異なるサーバにおいて時刻の異なる2個の点が指定されたことになる。この場合、処理時間定義処理部43は、lastX、X、lastY、Yに基づいて、通信時間を定義する(ステップS412)。具体的には、処理時間定義処理部43は、この時点におけるlastX、X、lastY、Yを用いて、当該通信時間を求める。例えば、処理時間定義処理部43は、座標の組(lastX,lastY)及び(X,Y)を生成して、これらとメッセージの始点及び終点の座標とを比較し、一致した始点及び終点を有する2個のサーバの間における通信時間とする。
この後、処理時間定義処理部43は、“lastX←X,lastY←Y”と設定する(ステップS413)。即ち、変数Xの値が変数lastXの新たな値として設定され、かつ、変数Yの値が変数lastYの新たな値として設定される。この後、処理時間定義処理部43は、元の処理であるステップS35へ戻る(ステップS44)。
次に、処理時間算出部44が実行する処理時間算出処理について、図14〜図15を参照して説明する。
処理時間算出部44は、図2に示すように、トランザクション抽出結果ファイル3から1個のトランザクション抽出結果を読出して、読出したトランザクション抽出結果を、モデルトポロジレジストリ42に格納された処理時間が定義されたモデルトポロジの各々と比較する。
この比較の結果、読出したトランザクション抽出結果が、例えば、図14に示すトポロジ情報を持つモデルトポロジと一致したとする。ここで、一致とは、読出したトランザクション抽出結果におけるメッセージのメッセージタイプ、送受信されるサーバ、送受信される順番が、モデルトポロジの処理時間定義と全て一致することを言う。換言すれば、読出したトランザクション抽出結果から処理時間定義を生成した場合、当該生成されるであろう処理時間定義は、モデルトポロジの処理時間定義と同一となる。
なお、「No」はトポロジ情報の出現順(Send出現順序)の番号を示し、小さい番号(1から始まる整数)ほど、Sendの出現順が早いことを示す。“SRC→DST”において、SRCがメッセージの発信元を示し、DSTがメッセージの受信先を示す。“MESSAGETYPE”は、メッセージタイプを示す。また、図14のトランザクション抽出結果は、図8〜図10に対応するトランザクションについてのモデルである。従って、図15は図10に対応する。
図14に示すトランザクション抽出結果については、既に、処理時間の定義が実行されている。従って、当該定義に基づいて、処理時間を算出することができる。即ち、図15に示すように、対象システム1のサーバA、サーバB、サーバCにおける処理時間が算出される。
例えば、処理時間算出部44は、一致したモデルトポロジにおける処理時間定義を、モデルトポロジレジストリ42から読み出し、これに読出したトランザクション抽出結果における実際のメッセージの送信及び受信時刻を与え、当該処理時間定義を実行する。これにより、実行結果として、当該処理時間定義は、各サーバにおける処理時間及び通信時間を出力する。
1 対象システム
2 トランザクション抽出装置
3 トランザクション抽出結果ファイル
4 処理時間算出装置
5 処理時間算出結果
41 モデルトポロジ識別部
42 モデルトポロジレジストリ
43 処理時間定義処理部
44 処理時間算出部
45 入出力装置
2 トランザクション抽出装置
3 トランザクション抽出結果ファイル
4 処理時間算出装置
5 処理時間算出結果
41 モデルトポロジ識別部
42 モデルトポロジレジストリ
43 処理時間定義処理部
44 処理時間算出部
45 入出力装置
Claims (5)
- 処理時間の算出対象である複数のコンピュータを含むコンピュータシステムにおける処理時間を定義する処理時間定義生成プログラムであって、
前記処理時間定義生成プログラムは、コンピュータに、
前記複数のコンピュータにおける複数のメッセージの送受信の階層を第1の座標値に対応させ、前記複数のメッセージの出現の順を第2の座標値に対応させた定義情報入力画面において、前記メッセージの各々が、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ矢印であって、前記複数のメッセージの出現の順に対応する位置に存在する矢印で表示された定義情報入力画面を表示するステップと、
前記メッセージを表す矢印の始点及び終点を指定する入力のみを許容し、メッセージ処理経路の始点として最初のメッセージを送信した階層を指定する入力のみを許容し、前記メッセージ処理経路の終点として前記メッセージ処理経路の始点とされた階層を指定する入力のみを許容し、前記メッセージ処理経路として、新たに指定する始点又は終点の時刻が先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容するという制約条件の下で、前記定義情報入力画面への入力を受け付けるステップと、
前記受け付けられた入力に基づいて前記メッセージ処理経路を定め、前記メッセージ処理経路に従って前記複数のコンピュータの各々における前記処理時間を定義する処理時間定義を生成するステップとを含む
ことを特徴とする処理時間定義生成プログラム。 - 前記メッセージ処理経路の始点として、最初のメッセージを送信したクライアントであるコンピュータを指定する入力のみを許容し、前記メッセージ処理経路の終点として、前記クライアントであるコンピュータを指定する入力のみを許容する
ことを特徴とする請求項1記載の処理時間定義生成プログラム。 - 前記メッセージ処理経路は、前記定義情報入力画面において、前記受け付けられた入力を結ぶことにより得られる連続した線分である
ことを特徴とする請求項1記載の処理時間定義生成プログラム。 - 処理時間の算出対象である複数のコンピュータを含むコンピュータシステムにおける処理時間を定義する処理時間定義生成方法であって、
コンピュータに、
前記複数のコンピュータにおける複数のメッセージの送受信の階層を第1の座標値に対応させ、前記複数のメッセージの出現の順を第2の座標値に対応させた定義情報入力画面において、前記メッセージの各々が、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ矢印であって、前記複数のメッセージの出現の順に対応する位置に存在する矢印で表示された定義情報入力画面を表示するステップと、
前記メッセージを表す矢印の始点及び終点を指定する入力のみを許容し、メッセージ処理経路の始点として最初のメッセージを送信した階層を指定する入力のみを許容し、前記メッセージ処理経路の終点として前記メッセージ処理経路の始点とされた階層を指定する入力のみを許容し、前記メッセージ処理経路として、新たに指定する始点又は終点の時刻が先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容するという制約条件の下で、前記定義情報入力画面への入力を受け付けるステップと、
前記受け付けられた入力に基づいて前記メッセージ処理経路を定め、前記メッセージ処理経路に従って前記複数のコンピュータの各々における前記処理時間を定義する処理時間定義を生成するステップとを実行させる
ことを特徴とする処理時間定義生成方法。 - 処理時間の算出対象である複数のコンピュータを含むコンピュータシステムにおける処理時間を定義する処理時間定義生成機能を有する情報処理装置であって、
前記複数のコンピュータにおける複数のメッセージの送受信の階層を第1の座標値に対応させ、前記複数のメッセージの出現の順を第2の座標値に対応させた定義情報入力画面において、前記メッセージの各々が、当該メッセージが送受信されるコンピュータの間を結びその送受信の方向に対応する方向を持つ矢印であって、前記複数のメッセージの出現の順に対応する位置に存在する矢印で表示された定義情報入力画面を表示する表示処理部と、
前記メッセージを表す矢印の始点及び終点を指定する入力のみを許容し、メッセージ処理経路の始点として最初のメッセージを送信した階層を指定する入力のみを許容し、前記メッセージ処理経路の終点として前記メッセージ処理経路の始点とされた階層を指定する入力のみを許容し、前記メッセージ処理経路として、新たに指定する始点又は終点の時刻が先に指定した始点又は終点と同一か又は大きくなるような入力のみを許容するという制約条件の下で、前記定義情報入力画面への入力を受け付ける入力処理部と、
前記受け付けられた入力に基づいて前記メッセージ処理経路を定め、前記メッセージ処理経路に従って前記複数のコンピュータの各々における前記処理時間を定義する処理時間定義を生成する生成処理部とを備える
ことを特徴とする処理時間定義生成機能を有する情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009021270A JP5338346B2 (ja) | 2009-02-02 | 2009-02-02 | 処理時間定義生成プログラム、処理時間定義生成方法及び情報処理装置 |
US12/633,496 US8341215B2 (en) | 2009-02-02 | 2009-12-08 | Processing-time-definition creating program, processing-time-definition creating method, and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009021270A JP5338346B2 (ja) | 2009-02-02 | 2009-02-02 | 処理時間定義生成プログラム、処理時間定義生成方法及び情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010176609A JP2010176609A (ja) | 2010-08-12 |
JP5338346B2 true JP5338346B2 (ja) | 2013-11-13 |
Family
ID=42398586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009021270A Expired - Fee Related JP5338346B2 (ja) | 2009-02-02 | 2009-02-02 | 処理時間定義生成プログラム、処理時間定義生成方法及び情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8341215B2 (ja) |
JP (1) | JP5338346B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5794181B2 (ja) * | 2012-03-15 | 2015-10-14 | 富士通株式会社 | プログラム、分析方法、情報処理装置 |
WO2014174681A1 (ja) * | 2013-04-26 | 2014-10-30 | 株式会社日立製作所 | 特定装置、特定方法、および特定プログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4914568A (en) * | 1986-10-24 | 1990-04-03 | National Instruments, Inc. | Graphical system for modelling a process and associated method |
US5610828A (en) * | 1986-04-14 | 1997-03-11 | National Instruments Corporation | Graphical system for modelling a process and associated method |
US5434777A (en) * | 1992-05-27 | 1995-07-18 | Apple Computer, Inc. | Method and apparatus for processing natural language |
JPH0689167A (ja) * | 1992-09-07 | 1994-03-29 | Toshiba Corp | プロトコル設計装置 |
JP2003296146A (ja) * | 2002-03-29 | 2003-10-17 | Toshiba Corp | メッセージ依存関係表示装置、メッセージ依存関係表示方法、プログラム及び記録媒体 |
JP4610240B2 (ja) * | 2004-06-24 | 2011-01-12 | 富士通株式会社 | 分析プログラム、分析方法及び分析装置 |
JP2007060087A (ja) | 2005-08-23 | 2007-03-08 | Victor Co Of Japan Ltd | 無線通信システム及び無線通信方法 |
-
2009
- 2009-02-02 JP JP2009021270A patent/JP5338346B2/ja not_active Expired - Fee Related
- 2009-12-08 US US12/633,496 patent/US8341215B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010176609A (ja) | 2010-08-12 |
US20100198912A1 (en) | 2010-08-05 |
US8341215B2 (en) | 2012-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6879367B2 (ja) | 攻撃状況可視化装置、攻撃状況可視化方法及びプログラム | |
CN104283723B (zh) | 网络访问日志处理方法及装置 | |
CN102306171A (zh) | 一种用于提供网络访问建议和网络搜索建议的方法与设备 | |
US20120054824A1 (en) | Access control policy template generating device, system, method and program | |
CN108228887A (zh) | 用于生成信息的方法和装置 | |
US20140089466A1 (en) | Method for providing data to a user | |
JP2018205897A (ja) | デバイス管理の自動化のための装置、サーバ、プログラム及び方法 | |
CN104424244A (zh) | 一种获取搜索结果的方法、装置与设备 | |
CN103581273B (zh) | 一种分布式系统执行业务的方法、装置及系统 | |
JP5338346B2 (ja) | 処理時間定義生成プログラム、処理時間定義生成方法及び情報処理装置 | |
CN102937973B (zh) | 一种生成用于信息呈现的呈现配置信息的方法和设备 | |
CN107798049A (zh) | 数据显示方法、数据处理控制方法和数据处理系统 | |
CN117201862B (zh) | 一种基于多屏幕协同的实时互动方法及相关装置 | |
KR101595024B1 (ko) | 사용자 기반 데이터 분석 시스템 | |
US10924365B2 (en) | Method and system for generating directed graphs | |
JP2009277023A (ja) | データ紐付けプログラム,情報処理装置およびデータ紐付け方法 | |
KR102520990B1 (ko) | 모바일 메신저에서의 웹링크 제공 단말, 웹링크 제공 방법 및 웹링크 제공 서버 | |
CN105450516A (zh) | 链接路由方法、电子系统及其电子设备和服务器 | |
JP2014154142A (ja) | 検索の結果のプレビューを生成するシステム、方法及びプログラム | |
US20160036766A1 (en) | Method and system for synchronizing program masks | |
JP5084760B2 (ja) | シナリオ開発支援装置、およびシナリオ開発支援方法 | |
JP4743081B2 (ja) | 情報可視化システム、情報可視化方法および情報可視化プログラム | |
KR20200128236A (ko) | 머신 러닝 기반의 자동 위젯 적용 장치 및 방법 | |
CN102446207B (zh) | 一种用于获取显示信息并呈现的方法、装置、设备和系统 | |
JP2010191750A (ja) | 意見表示装置、意見表示方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111006 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130626 |
|
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: 20130709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130722 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |