説明

TAT測定装置、TAT測定方法およびTAT測定プログラム

【課題】アクセス処理にかかる負荷を有効に分散してTATを正確に測定することを可能とするTAT測定装置などを提供する。
【解決手段】本発明に係るTAT測定装置10は、複数個のリクエスト生成手段110〜130とこれらを制御する制御部200とを備え、制御部が、リクエスト生成手段が実行すべき操作内容と、操作内容の段階ごとに対応するクッキー情報である応答パラメータとを記録しているレスポンス情報テーブル293と、複数のリクエスト生成手段の中で空いているものを検索する空き検索部230と、空いているリクエスト生成手段に段階ごとの操作内容と応答パラメータとを割り当てて実行させる実行指示部240と、リクエスト生成手段が発生させたウェブサーバへのアクセスを仲介し、アクセスからこれに対するレスポンスが返信されるまでの時間を測定するプロキシサーバ部260とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はウェブサービスのレスポンスの監視に関し、特に該サービスのTAT(Turnaround Time、レスポンス応答時間)の計測に関する。
【背景技術】
【0002】
ウェブサーバによって提供されるウェブサービスは、24時間休み無く、かつユーザに対してストレスを与えることなく動作し続ける必要がある。そのため、障害の発生のみならず、たとえば特定の処理にアクセスが集中することなどによるパフォーマンスの低下も、すぐに発見されなければならない。
【0003】
そのため、たとえば日本電気株式会社のWebSAM(登録商標)アプリケーション・ナビゲーターなどのように、エンドユーザのウェブサービスでの画面遷移を想定した擬似アクセス(以後、本明細書では単にアクセスという)をウェブサービスに対して行い、これによってTATを測定する製品がある。
【0004】
このTATの測定では、たとえば「ネットショップでの買い物」で、ログイン→商品選定→確認→確定などといった一連の画面遷移を「シナリオ」として定義し、ウェブブラウザを介してユーザがウェブサーバに対して行うであろう操作をアクセス処理として行い、それに対するTATを測定する。
【0005】
ウェブサービスのTATの測定に関連して、次のような技術文献がある。特許文献1には、パスワードの入力が必要なウェブサービスについても、応答時間を測定することを可能とする測定システムが記載されている。特許文献2には、複数の計算機にジョブを割り当てるスケジューリングが記載されている。
【0006】
特許文献3には、ウェブサービスで実行される「シナリオ」を分割して実行することが記載されている。特許文献4には、ウェブサービスで実際にユーザが体験する応答時間を測定するという応答時間測定モニタが記載されている。非特許文献1には、ウェブサービスのTATを測定する製品の具体的な一例が記載されている(「プローブオプション」欄の「Webシナリオ稼動監視」の項目を参照されたい)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002915475号公報
【特許文献2】特開2005−031771号公報
【特許文献3】特開2008−250953号公報
【特許文献4】特開平11−110312号公報
【非特許文献】
【0008】
【非特許文献1】日本電気株式会社、「WebSAM Application Navigator−特長・機能」、[online][平成21年7月24日検索]、インターネット<URL:http://www.nec.co.jp/middle/WebSAM/products/appnavi/kinou.html>
【発明の概要】
【発明が解決しようとする課題】
【0009】
このようなTATの測定で、1台の測定装置が複数のシナリオを実行すると、複数のアクセス処理が同時に実行されるタイミングが発生しうる。複数の処理が同時に実行されることによって、この装置自体に処理のオーバーヘッドが発生して応答レスポンスが遅延し、正確なTATの測定が困難となることがある。
【0010】
スケジュールの最適化によって、1台の測定装置で複数のアクセス処理が同時に実行されることを防止することも考えられる。しかしながら、それだと計測対象となるシナリオが場合によって数百〜数千単位になることもあるので、このような場合にはスケジュールの最適化自体が困難となる。
【0011】
さらに、複数の測定装置を用意して、複数のシナリオを各々の装置に割り振って同時に実行可能なようにすることも考えられる。しかしながら、上記のシナリオで示される動作は、本来はユーザが操作する1つの端末で行われるものである。そのため、特にIDやパスワードなどをクッキーに記憶する必要があるウェブサービスについては、シナリオをステップごとに分割して各々を別々の測定装置に実行させるようにすることは不可能であるので、複数の測定装置を用意してもアクセス処理にかかる負荷を有効に分散することはできない。
【0012】
特許文献1〜4および非特許文献1には、単一のシナリオからTATを測定する技術、特にパスワードなどの入力を必要とするウェブサービスに対してTATを測定する技術は記載されているが、このような複数のシナリオが同時に実行されることによって発生する問題を解決しうる構成は記載されていない。特に、複数のシナリオをステップごとに分割してTATを測定することを可能とする構成は記載されていない。
【0013】
本発明の目的は、アクセス処理にかかる負荷を有効に分散してTATを正確に測定することを可能とするTAT測定装置、TAT測定方法およびTAT測定プログラムを提供することにある。
【課題を解決するための手段】
【0014】
上記目的を達成するため、本発明に係るTAT測定装置は、ユーザによる操作に対するウェブサーバのTAT(Turnaround Time)を測定するTAT測定装置であって、複数のユーザによる操作を擬似的に発生させる複数個のリクエスト生成手段と、複数のリクエスト生成手段の動作を制御する制御手段とを備え、制御手段が、リクエスト生成手段が実行すべき操作内容と操作内容の段階ごとに対応するクッキー情報である応答パラメータとを記録しているレスポンス情報テーブルと、複数のリクエスト生成手段の中で空いているものを検索する空き検索部と、空いているリクエスト生成手段に段階ごとの操作内容と応答パラメータとを割り当てて実行させる実行指示部と、リクエスト生成手段が発生させたウェブサーバへのアクセスを仲介し、アクセスからこれに対するレスポンスが返信されるまでの時間を測定してこれをTATとするプロキシサーバ部とを備えたことを特徴とする。
【0015】
上記目的を達成するため、本発明に係るTAT測定方法は、複数のユーザによる操作を擬似的に発生させる複数個のリクエスト生成手段を備え、実行すべき操作内容と、操作内容の段階ごとに対応するクッキー情報である応答パラメータとをあらかじめ記憶しているTAT(Turnaround Time)測定装置にあって、ユーザによる操作に対するウェブサーバのTATを測定するTAT測定方法であって、複数のリクエスト生成手段の中で空いているものを検索し、空いているリクエスト生成手段に段階ごとの操作内容と応答パラメータとを割り当てて実行させ、リクエスト生成手段が発生させたウェブサーバへのアクセスを仲介し、アクセスからこれに対するレスポンスが返信されるまでの時間を測定してこれをTATとすることを特徴とする。
【0016】
上記目的を達成するため、本発明に係るTAT測定プログラムは、複数のユーザによる操作を擬似的に発生させる複数個のリクエスト生成手段を備え、実行すべき操作内容と、操作内容の段階ごとに対応するクッキー情報である応答パラメータとをあらかじめ記憶しているTAT(Turnaround Time)測定装置にあって、TAT測定装置が備えているコンピュータに、複数のリクエスト生成手段の中で空いているものを検索する手順と、空いているリクエスト生成手段に段階ごとの操作内容と応答パラメータとを割り当てて実行させる手順と、リクエスト生成手段が発生させたウェブサーバへのアクセスを仲介する手順と、アクセスからこれに対するレスポンスが返信されるまでの時間を測定してこれをTATとする手順とを実行させることを特徴とする。
【発明の効果】
【0017】
本発明は上述したように、ステップごとに必要な応答パラメータを記憶したレスポンス情報DBを備えるように構成したので、複数のリクエスト生成手段にステップごとの処理を割り振って実行させることが可能である。これによって、多数のシナリオをステップごとに分割して正確なTATを計測することが可能であるという、優れた特徴を持つTAT測定装置、TAT測定方法およびTAT測定プログラムを提供することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態に係る応答監視装置全体の構成を示す説明図である。
【図2】図1で示したリクエスト生成手段および制御手段の、ソフトウェアとしてのより詳しい構成を示す説明図である。
【図3】図2で示した監視DBに含まれるシナリオ属性テーブルおよびリクエスト生成手段属性テーブルの記憶内容について示す説明図である。
【図4】図2で示した監視DBに含まれるレスポンス情報テーブルおよび測定結果テーブルの記憶内容について示す説明図である。
【図5】図1〜2で示した応答監視装置で定義されるシナリオの内容の一例を示す説明図である。
【図6】図1〜2で示した制御手段がリクエスト生成手段に動作内容を示すシナリオを割り振る動作で、そのステップが初期ステップである場合の動作について示すフローチャートである。
【図7】図6のステップS408で実行待ちのステップの内容を受け取ったリクエスト生成手段およびTAT監視部が実行する動作で、そのステップが初期ステップである場合の動作について示すフローチャートである。
【図8】図7の動作に続いて、実行待ちの中間ステップの内容がシナリオ実行指示部240からに渡された場合にリクエスト生成手段およびTAT監視部が実行する動作について示すフローチャートである。
【図9】図8のステップS602として示されたリクエスト生成手段の空きの検索と中間ステップの実行指示の動作について示すフローチャートである。
【図10】図7〜8の動作に続いて、実行待ちの最終ステップの内容がシナリオ実行指示部から渡された場合にリクエスト生成手段およびTAT監視部が実行する動作について示すフローチャートである。
【図11】ここまでで説明した応答監視装置で実際に、制御手段が複数のリクエスト生成手段の各々に複数のシナリオをステップ単位で動作を割り振る動作の一例を示す説明図である。
【発明を実施するための形態】
【0019】
(第1の実施形態)
以下、本発明の実施形態の構成について添付図1〜2に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るTAT測定装置(応答監視装置10)は、ユーザによる操作に対するウェブサーバのTAT(Turnaround Time)を測定する装置である。この装置は、複数のユーザによる操作を擬似的に発生させる複数個のリクエスト生成手段110〜130と、複数のリクエスト生成手段の動作を制御する制御手段200とを備える。この制御手段が、リクエスト生成手段が実行すべき操作内容と、操作内容の段階ごとに対応するクッキー情報である応答パラメータとを記録しているレスポンス情報テーブル293と、複数のリクエスト生成手段の中で空いているものを検索する空き検索部230と、空いているリクエスト生成手段に段階ごとの操作内容と応答パラメータとを割り当てて実行させる実行指示部(シナリオ実行指示部240)と、リクエスト生成手段が発生させたウェブサーバへのアクセスを仲介し、アクセスからこれに対するレスポンスが返信されるまでの時間を測定してこれをTATとするプロキシサーバ部(TAT監視部260)とを備えている。
【0020】
このプロキシサーバ部は、リクエスト生成手段からウェブサーバへのアクセスの発生時刻と、これに対するウェブサーバからリクエスト生成手段へのレスポンスの発生時刻とを記録し、これらの時刻からTATを取得するTAT算出機能263を備えている。また実行指示部は、リクエスト生成手段に対して段階ごとの操作内容を実行させる直前に、当該段階の1つ前の段階の操作結果に対するウェブサーバからのレスポンスの確認をそのリクエスト生成手段に実行させる機能を備える。
【0021】
制御手段はさらに、複数のリクエスト生成手段の中に空いているものが無い場合に、段階ごとの操作内容を予め用意されたシナリオ実行キュー251に一時的に記憶させると共に、複数のリクエスト生成手段の中に空きが生じ次第段階ごとの操作内容をその空いたリクエスト生成手段に実行させるシナリオ待機部250を備えている。そして制御手段は、ユーザによるウェブサーバに対する操作を記録して、段階ごとの操作内容として記憶するシナリオレコーダ部210も備えている。
【0022】
制御手段はまた、複数のリクエスト生成手段の各々のIPアドレスと、複数のリクエスト生成手段の各々が使用中であるか否かを示す使用状況とを記憶したリクエスト生成手段属性テーブル292も備えている。そして実行指示部は、段階ごとの操作内容をリクエスト生成手段に割り当てる際に、その段階ごとの操作内容を割り当てたリクエスト生成手段をプロキシサーバ部に通知する機能を備えている。
【0023】
そしてリクエスト生成手段110は、実行指示部からの段階ごとの操作内容の実行指示を受信するシナリオ実行指示受信部111と、段階ごとの操作内容に基づくリクエストをウェブサーバに送信するリクエスト送信部112と、リクエストに対するウェブサーバからのレスポンスを受信するレスポンス受信部113と、レスポンスを画面表示する応答画面表示部114と、レスポンスが正当な応答であるか否かを判断してその判断結果をレスポンス情報テーブルに記録させるレスポンス情報送信部115とを備えている。
【0024】
この構成を備えることにより、TAT測定装置は、多数のシナリオをステップごとに分割して正確なTATを計測することが可能となる。
以下、これをより詳細に説明する。
【0025】
図1は、本発明の実施形態に係る応答監視装置10全体の構成を示す説明図である。応答監視装置10は通常のコンピュータ装置で構成され、インターネット20を介して、監視対象となるウェブサービスを提供するウェブサーバ30および31に接続する。
【0026】
ただし、応答監視装置10は1台のコンピュータ装置であっても複数台のコンピュータ装置であってもよい。本実施形態では、応答監視装置10が1台のコンピュータ装置である例を示す。また、監視対象となるウェブサーバ30および31は、図1では2台のみを表記しているが、いくつあっても構わない。以後、特に必要のある場合を除いては、それらを総称してウェブサーバ30という。
【0027】
応答監視装置10は、コンピュータプログラムを実行する主体となるプロセッサ11と、コンピュータプログラムおよびデータを記憶する記憶手段12と、データの入出力を行う入出力手段13と、インターネット20を介して他のコンピュータ装置とのデータ通信を行う通信手段14とを備える。
【0028】
プロセッサ11では、第1〜第3のリクエスト生成手段110、120、130、および制御手段200が、コンピュータプログラムとして実行される。本実施形態では3つのリクエスト生成手段が実行されるという例を示しているが、実際にはリクエスト生成手段は2つ以上いくつ動作していてもよい。制御手段200は、それら第1〜第3のリクエスト生成手段110〜130を制御して動作させる。また記憶手段12には、後述の各テーブルを含む監視DB(データベース)290と、後述のシナリオ実行キュー251とが記憶される。
【0029】
図2は、図1で示した第1〜第3のリクエスト生成手段110〜130および制御手段200の、ソフトウェアとしてのより詳しい構成を示す説明図である。図2中の矢印は、各部の間での情報の流れを観念的に示す。
【0030】
リクエスト生成手段110は、シナリオ実行指示受信部111、リクエスト送信部112、レスポンス受信部113、応答画面表示部114、レスポンス情報送信部115といった各機能手段を備える。同様に、リクエスト生成手段120および130も、リクエスト生成手段110と同一の各機能部を備え、同じように制御手段200からの制御を受けて動作する。リクエスト生成手段120および130の構成は、リクエスト生成手段110の構成と同一であるので、図2では細かい記載を省略している。
【0031】
リクエスト生成手段120はシナリオ実行指示受信部121…を備え、リクエスト生成手段130はシナリオ実行指示受信部131…を備えるというように、リクエスト生成手段120が備える各部は参照番号の百の位と十の位を「12」とし、リクエスト生成手段130が備える各部は参照番号の百の位と十の位を「13」とする。
【0032】
シナリオ実行指示受信部111(121、131)は、後述する制御手段200のシナリオ実行指示部240から動作内容について指示を受ける。リクエスト送信部112(122、132)は、指示された動作内容通りの疑似アクセスをウェブサーバ30に対して発生させる。レスポンス受信部113(123、133)は、この疑似アクセスに対するウェブサーバ30からのレスポンスを受信する。
【0033】
応答画面表示部114(124、134)はウェブブラウザであり、ウェブサーバ30から受信したレスポンスをこのウェブブラウザの画面として表示する。レスポンス情報送信部115(125、135)は、そのウェブブラウザに表示された画面のレスポンスがエラーの発生していない正しい画面であるか否かを確認して、その確認結果を後述する制御手段200のDB制御部220に送信して記録させる。
【0034】
制御手段200は、シナリオレコーダ部210、DB制御部220、空き検索部230、シナリオ実行指示部240、シナリオ待機部250、TAT監視部260、レスポンス情報監視部270、実行タイマー部280といった各機能部を備える。
【0035】
シナリオレコーダ部210は、ユーザから入出力手段13を介して入力されたウェブサイトに対する操作内容を記録し、DB制御部220に後述するシナリオとして記憶させる。DB制御部220は、記憶手段12に記憶された監視DB290に含まれるシナリオ属性テーブル291、リクエスト生成手段属性テーブル292、レスポンス情報テーブル293、測定結果テーブル294といった各テーブルの記憶内容の参照および更新を行う。
【0036】
空き検索部230は、第1〜第3のリクエスト生成手段110〜130の中で空いているものを検索する。シナリオ実行指示部240は、シナリオの中で実行すべきステップの動作を、空き検索部230で検索された空きのリクエスト生成手段に実行させる。シナリオ待機部250は、第1〜第3のリクエスト生成手段110〜130に空きがなく、実行待ちになったステップの動作を、記憶手段12内のシナリオ実行キュー251にキュー(先入れ先出し)方式で記憶し、第1〜第3のリクエスト生成手段110〜130に空きができ次第実行させられるようにする。
【0037】
TAT監視部260はプロキシサーバとしての機能を備え、第1〜第3のリクエスト生成手段110〜130からウェブサーバ30への疑似アクセスを仲介すると共にこのアクセスの発生時刻を取得するアクセス仲介機能部262と、この疑似アクセスに対するウェブサーバ30から第1〜第3のリクエスト生成手段110〜130へのレスポンスを仲介すると共にこのレスポンスの発生時刻を取得するレスポンス仲介機能部261と、アクセス仲介機能部262とレスポンス仲介機能部261が取得した時刻からTATを算出するTAT算出機能部263とを備える。算出されたTATは、DB制御部220を介してレスポンス情報テーブル293に記録される。
【0038】
レスポンス情報監視部270は、記録されたTATに対して分析を行い、このTATを分析結果と共に入出力手段13に出力する。ここでいう分析とは、たとえばTATが特定の閾値以上である、あるいはレスポンス画面にエラーが発生したなどのような場合を検出して、管理者に警報を発するなどのようなことである。実行タイマー部280は、たとえば1分に1度などのような実行間隔をカウントし、後述の処理を実行させる。
【0039】
図3〜4は、図2で示した監視DB290に含まれるシナリオ属性テーブル291、リクエスト生成手段属性テーブル292、レスポンス情報テーブル293、測定結果テーブル294の記憶内容について示す説明図である。図3に示すシナリオ属性テーブル291には、シナリオ名291a、実行間隔291b、次回実行開始時間291c、ステップ名291dといった各内容が記憶される。やはり図3に示すリクエスト生成手段属性テーブル292には、リクエスト生成手段名292a、リクエスト生成手段のIPアドレス292b、現在の使用状況292cといった各内容が記憶される。
【0040】
ここで実行間隔291bは、後述するようにユーザの入力に基づいてシナリオレコーダ部210がDB制御部220を介して記憶する記録内容である。これに対して次回実行開始時間291cは、時間の経過と共にDB制御部220が減算していく記録内容であり、これが「0」になると、これに対応するシナリオの実行が開始される。
【0041】
図4に示すレスポンス情報テーブル293には、シナリオ名291a、ステップ名291d、遷移前URL(Uniform Resource Locator)293a、応答パラメータ293b、および遷移後URL293cといった各内容が記憶される。シナリオ名291aおよびステップ名291dは、シナリオ属性テーブル291にある同名のデータと対応する。遷移前URL293aおよび応答パラメータ293bは、第1〜第3のリクエスト生成手段110〜130が制御手段200を経てウェブサーバ30に接続して処理を行わせる際に必要なデータである。その処理が完了すれば、遷移後URL293cの画面に移動する。言い換えれば、処理完了後に遷移後URL293cの画面に移動していれば、その処理は成功したということになる。
【0042】
やはり図4に示す測定結果テーブル294には、シナリオ名291a、ステップ名291d、および測定結果294aといった各内容が記憶される。シナリオ名291aおよびステップ名291dは、シナリオ属性テーブル291にある同名のデータと対応する。また測定結果294aは、計測を行った日時294bと、その日時に計測されたTAT294cとの組が単数または複数個で構成される。
【0043】
図5は、図1〜2で示した応答監視装置10で定義されるシナリオの内容の一例を示す説明図である。たとえばユーザが「あるネットショップでの買い物」をするという場面を想定すると、まずウェブサーバ30にアクセスしてログイン画面301を開いたユーザは、ここでIDおよびパスワードを入力して「送信」ボタンを押す。すると、表示画面は商品選定画面302に進む。
【0044】
続いてユーザは、商品選定画面302で商品番号を選択して「この商品を選択」ボタンを押す。すると、表示画面は確認画面303に進む。続いてユーザは、確認画面303で購入点数を入力して「確認」ボタンを押す。すると、表示画面は確定画面304に進む。最後にユーザは、確定画面304で送付先住所を入力して「確定」ボタンを押す。以上で商品の購入が確定し、一連の動作が完了して完了画面305が表示される。ここまでの過程でユーザが入力した内容は、ウェブブラウザのCookieに記憶される。
【0045】
ユーザはあらかじめこの操作を応答監視装置10の端末上で行い、シナリオレコーダ部210はユーザが行った動作を記録する。より具体的には、ユーザが入力したID、パスワード、商品番号、購入点数、送付先住所などについての入力内容、「送信」「確認」などユーザが操作したボタンなどの入力要素名、各画面のURL、そして操作の過程でウェブブラウザのCookieに記憶される内容などである。
【0046】
シナリオレコーダ部210はDB制御部220を介して、シナリオ属性テーブル291およびレスポンス情報テーブル293に記憶する。シナリオ名291aは、たとえば「ネットショップ○○での買い物」などのようにユーザが任意に定義することができる。ステップ名291dは、たとえば各操作ステップごとに与えられる連番である。
【0047】
図3〜図5に示された例では、シナリオ名を「A」とし、ログイン画面301から商品選定画面302への遷移をステップ名「A1」、商品選定画面302から確認画面303への遷移をステップ名「A2」、確認画面303から確定画面304への遷移をステップ名「A3」、確定画面304から完了画面305への遷移をステップ名「A4」と定義する。また、各々のシナリオで最初に実行されるステップのことを先頭ステップといい、最後に実行されるステップのことを最終ステップ、先頭ステップにも最終ステップにも該当しないステップのことを中間ステップという。シナリオ名「A」の先頭ステップは「A1」、最終ステップ「A4」は、中間ステップは「A2」および「A3」である。
【0048】
各画面のURLはレスポンス情報テーブル293の遷移前URL293a、入力されたIDおよびパスワード、およびCookieの内容などはレスポンス情報テーブル293の応答パラメータ293bとして記憶される。そして、ユーザは上記のシナリオおよび各ステップとして定義したこれらの処理を行わせようとする時間を入力すると、シナリオレコーダ部210はDB制御部220を介してシナリオ属性テーブル291の実行間隔291bとして記憶する。
【0049】
図6は、図1〜2で示した制御手段200が第1〜第3のリクエスト生成手段110〜130に動作内容を示すシナリオを割り振る動作で、そのステップが初期ステップである場合の動作について示すフローチャートである。シナリオ属性テーブル291およびレスポンス情報テーブル293には、前述したシナリオ属性とリクエスト生成手段属性とがシナリオレコーダ部210によってあらかじめ記憶されている。
【0050】
まず実行タイマー部280が実行間隔をカウントし(ステップS401)、実行間隔が来ればDB制御部220が次回実行開始時間291cを更新する(ステップS402)。ステップS402では、時間の経過と共に次回実行開始時間291cを減算する。
【0051】
そしてDB制御部220は、シナリオ属性テーブル291に記憶された各々のシナリオについて次回実行開始時間291cが0となったシナリオがあるか否かについて判断する(ステップS403)。まずここでは前述の「シナリオA」の先頭ステップである「ステップA1」が実行対象となるものとする。
【0052】
次回実行開始時間291cが0となったシナリオがあれば、これはすぐに動作を開始されるべきシナリオであるので、その先頭ステップについて、空き検索部230がリクエスト生成手段属性テーブル292の使用状況292cを参照して、現在使用されていない(空きの)リクエスト生成手段110〜130が存在するか否かについて判断する(ステップS404)。ここで第1〜第3のリクエスト生成手段110〜130のうち、第1のリクエスト生成手段110が空いているものとする。
【0053】
空きがあれば、DB制御部220は、リクエスト生成手段属性テーブル292の第1のリクエスト生成手段110の現在の使用状況292cを「使用中」とする(ステップS405)。これと同時に、DB制御部220は、ステップA1の内容を読み出してシナリオ実行指示部240に渡す(ステップS408)。そしてDB制御部220は、該シナリオについて次回実行開始時間291cを更新する(ステップS409)。
【0054】
ステップS404で、第1〜第3のリクエスト生成手段110〜130に空きが存在しなければ、シナリオ待機部250は実行しようとしていたステップA1の内容をシナリオ実行キュー251に記憶させる(ステップS406)。ここで記憶されたステップA1の内容は、第1〜第3のリクエスト生成手段110〜130のいずれかに空きができ次第(ステップS407)、ステップS405に進んですぐに実行される。
【0055】
ステップS408で、実行待ちのステップA1の内容がシナリオ実行指示部240に送られるのと同時に、リクエスト生成手段110がステップA1を実行するとの情報が、シナリオ実行指示部240からTAT監視部260に送信される(ステップS410)。
【0056】
ステップS406〜407に処理が進んでシナリオ実行キュー251に記憶されていたジョブは、第1〜第3のリクエスト生成手段110〜130のいずれかに空きができるのを待って実行されるから、実行間隔291bとして設定されていた時刻から多少遅れて該ジョブが実行されることとなる。たとえばその「空きができるのを待って」いる間に、実行間隔291bの設定時間が経過していた場合、同一のシナリオが重複して実行されることになる。そのような事態を回避するという意味で、ステップS409では、時間の経過と共に減算されていた次回実行開始時間291cを実行間隔291bの値に戻している。言い換えれば、次回実行開始時間291cを実行間隔291bの設定値に「リセット」しているのである。
【0057】
図7は、図6のステップS408で実行待ちのステップの内容を受け取ったリクエスト生成手段110およびTAT監視部260が実行する動作で、そのステップが初期ステップである場合の動作について示すフローチャートである。ここでは、実行待ちのステップA1の内容がシナリオ実行指示部240から第1のリクエスト生成手段110に渡され、実行されるものとする。
【0058】
ステップA1の内容を受け取ったシナリオ実行指示受信部111は、まずウェブブラウザである応答画面表示部114を起動して(ステップS501)、シナリオにある通りの遷移前URL293a(ここではログイン画面301)を開く。
【0059】
そしてシナリオ実行指示受信部111は、リクエスト送信部112に遷移前URL293aと応答パラメータ293bとを渡して、ログインリクエストを送信させる(ステップS502)。このリクエストは、プロキシサーバであるTAT監視部260を経由して、ウェブサーバ30に送信される。
【0060】
TAT監視部260のアクセス仲介機能部262がこのリクエストを受け取ると(ステップS503)、TAT算出機能部263がTATのカウントを開始し(ステップS504)、アクセス仲介機能部262がこのリクエストをウェブサーバ30に転送する(ステップS505)。ここまででリクエスト生成手段110の処理は一度終了するので、TAT監視部260はDB制御部220を介して、リクエスト生成手段110の使用状況292cを「未使用」とする(ステップS506)。
【0061】
ウェブサーバ30は、アクセス仲介機能部262が転送したリクエストに対応する処理(トランザクション)を実行開始する(ステップS507)。
【0062】
図8は、図7の動作に続いて、実行待ちの中間ステップ(ここではステップA2)の内容がシナリオ実行指示部240からに渡された場合に第1〜第3のリクエスト生成手段110〜130およびTAT監視部260が実行する動作について示すフローチャートである。前述のように、ステップA1のリクエストは、既に第1のリクエスト生成手段110が送信済である。ウェブサーバ30は、ステップA1に対する処理を完了して、これに対するレスポンスをリクエスト生成手段110に返却しようとする(ステップS601)。
【0063】
この結果は、プロキシサーバであるTAT監視部260のレスポンス仲介機能部261を経由して、リクエスト生成手段110〜130のうちのいずれかに返却される。ここで、ステップA1のリクエストを送信したリクエスト生成手段110とは異なるリクエスト生成手段120が空いていたものとする。
【0064】
TAT監視部260のレスポンス仲介機能部261がこのリクエストを受け取ると、TAT算出機能部263がTATのカウントを停止し(ステップS602)、空き検索部230が空きのリクエスト生成手段110〜130が存在するか否かについて判断する(ステップS603)。図9は、図8のステップS602として示された第1〜第3のリクエスト生成手段110〜130の空きの検索と中間ステップ(ここではステップA2)の実行指示の動作について示すフローチャートである。この動作の内容は、図6のステップS404〜S410の動作と同一であるので、それらの各ステップの参照番号を+50して示す。ただし、図6のステップS409に相当する、該シナリオについて次回実行開始時間291cを更新するという動作はない。
【0065】
ここで、このステップS603(図8)の動作に続いて、レスポンス仲介機能部261がこのリクエストをリクエスト生成手段120に転送する(ステップS604)。図7のステップS504で開始され、図8のステップS602で停止された時刻のカウントが、ステップA1にかかるTATである。
【0066】
図6のステップS410で、リクエスト生成手段110がこのステップA1についてのリクエストを送信するという情報が既に送信されているので、TAT算出機能部263はこのことを既に把握済である。また、TAT算出機能部263はリクエスト生成手段属性テーブル292のIPアドレス292bを参照して、IPアドレス292bに該当するリクエストがリクエスト生成手段110によるものであることも把握している。さらに図9のステップS460の動作によって、そのレスポンスはリクエスト生成手段120に返すべきものであることも把握している。
【0067】
TAT算出機能部263がステップA1にかかるTATをカウントできたら、この時刻をDB制御部220に送信する(ステップS605)。レスポンス受信部123は、ステップS604でレスポンス仲介機能部261から転送されてきたレスポンスを受信し、応答画面表示部124に表示させる(ステップS606)。そして、この画面表示されたレスポンスが、エラー画面などでない正しいレスポンスであるか否かを、レスポンス情報送信部125が確認して、その結果をDB制御部220に送信する(ステップS608)。ここで、表示されているURLがステップA1の遷移後URL293cと一致するか否かを判断材料にすることもできるが、判断材料はこれに限定されない。
【0068】
これに続いてリクエスト生成手段120は、制御部200から実行指示を受けたステップA2にかかるリクエストの送信に係る動作を行う(ステップS608〜613)。その内容は、図7のステップS502〜507で説明した内容と同一であり、ただ実行する主体がリクエスト生成手段110からリクエスト生成手段120に変わるだけである。これに続くステップA3についても、これと同様の動作が行われる。
【0069】
本実施形態では、このようにして前ステップのレスポンス画面の確認と、今ステップのリクエスト送信とをワンセットで行う。たとえば、「今ステップ」がステップA2なら、「前ステップ」はステップA1である。このようにすれば、たとえば1つのリクエスト生成手段が送信した複数のシナリオに係るレスポンスが同時に返信されたとしても、同じリクエスト生成手段にそれらの同時に返信されたレスポンス確認処理が割り振られることはないので、それによって処理が滞ることもない。
【0070】
図10は、図7〜8の動作に続いて、実行待ちの最終ステップ(ここではステップA4)の内容がシナリオ実行指示部240から渡された場合に第1〜第3のリクエスト生成手段110〜130およびTAT監視部260が実行する動作について示すフローチャートである。空きのリクエスト生成手段110〜130が存在するか否かについて判断するというステップS603に相当する動作が存在しないことを除いて、動作の内容は図8のステップS601〜607と同一であるので、それらの各ステップの参照番号を+100したステップS701〜707として示す。ただしそれらの各ステップの終了後のステップS708で、レスポンス情報送信部115(125,135)はDB制御部220を介して、リクエスト生成手段110の使用状況292cを「未使用」とする(ステップS708)。
【0071】
DB制御部220は、送信されたTATの計測結果およびレスポンスの確認結果を測定結果テーブル294の測定結果294aとして記録する。そして、測定されたTATの値とエラーの有無については、レスポンス情報監視部270が常時監視と分析を行っている。測定されたTATに異常があれば、すぐに警報を入出力手段13に出力する。それ以外の場合も、管理者は操作によっていつでも測定結果と判定結果とを入出力手段13に出力させることができる。このTATの監視と分析には、任意の公知の手法を用いることができる。たとえば測定されたTATとあらかじめ与えられた閾値とを比較し、測定されたTATが閾値以上となれば異常と判断するようにしてもよい。
【0072】
図11は、ここまでで説明した応答監視装置10で実際に、制御手段200が複数のリクエスト生成手段110および120の各々に複数のシナリオをステップ単位で動作を割り振る動作の一例を示す説明図である。図11の縦方向は時間の経過を示す。
【0073】
ここでは、シナリオAおよびBという2通りのシナリオがあり、シナリオAは図5で説明したステップA1、ステップA2、ステップA3…という一連の各ステップ、シナリオBはこれと同様のステップB1、ステップB2…という一連の各ステップが順番に実行される。また、シナリオAはウェブサーバ30、シナリオBはこれとは別のウェブサーバ31に接続して動作を行う。
【0074】
図面の錯綜を回避するため、図8ではリクエスト生成手段はリクエスト生成手段110および120という2つ、シナリオおよびステップはステップA1〜A3、およびステップB1〜B2しか記載しないが、実際にはこれよりも多数のリクエスト生成手段に、これよりも多数のシナリオおよびステップを割り振るようにできる。
【0075】
まず、制御手段200がステップA1の実行をリクエスト生成手段110に割り振って実行指示を送信する(ステップS800、図6のステップS408)。リクエスト生成手段110はこの割り振られた内容に基づき、ウェブサーバ30に対してアクセスしてリクエストを送信し、ログイン画面301から商品選定画面302に進む動作を行う(ステップS801、図7のステップS501〜502)。その際、入力が必要であるIDおよびパスワードは、応答パラメータ293bとしてレスポンス情報テーブル293に記憶されている内容を使用する。
【0076】
ステップS801のウェブサーバ30へのアクセスはプロキシサーバである制御手段200を経由するので、これを受けた制御手段200はここでTATのカウントを開始する(図7のステップS504)。ここで制御手段200は、ステップS801のステップA1のリクエストを送信し終えて使用状況292cが「未使用」となったリクエスト生成手段110に、今度はステップB1の実行を指示する(ステップS802)。
【0077】
これを受けたリクエスト生成手段110は、ウェブサーバ31に対してアクセスしてステップB1のリクエストを送信する(ステップS803)。ここで、ステップS802とステップS803の間に、ステップA1に対するレスポンスがウェブサーバ30から帰ってきたが、リクエスト生成手段110はステップB1に係る処理で使用中である。
【0078】
そこで制御手段200は、図9の処理でリクエスト生成手段の空きを検索して、空いていたリクエスト生成手段120にステップA1に対するレスポンスとステップA2へのリクエストの実行を指示することとして、ステップA1に係るTATのカウントを停止してからこのレスポンスをリクエスト生成手段120に転送する(ステップS810、図8のステップS603〜604)。
【0079】
ここで、TAT算出機能部263はステップS801とステップS810の間の時刻を、ステップA1にかかるTATとして取得し、測定結果テーブル294に記録する。制御手段200からレスポンスが転送されてきたリクエスト生成手段120は、このレスポンス画面が正常であるか否かを確認した結果を制御手段200に返す(ステップS811、図8のステップS606〜607)。
【0080】
制御手段200は、ステップA1のリクエストを送信したリクエスト生成手段110と異なるリクエスト生成手段120に、ステップA1のレスポンス(即ち商品選定画面302)の確認と、これに続くステップA2、即ち商品選定画面302から確認画面303に進むリクエストを送信する動作とを実行させることができる。これは商品選定画面302から確認画面303に進むのに必要な応答パラメータ293bが、レスポンス情報テーブル293に記憶されているからである。
【0081】
ステップA1のレスポンスを確認したリクエスト生成手段120は、これに続いてステップA2のリクエストの送信、即ちウェブサーバ30に対してアクセスしてリクエストを送信するよう制御手段200から指示を受け、商品選定画面302から確認画面303に進む動作を行う(ステップS812〜813)。ステップS813のウェブサーバ30へのアクセスはプロキシサーバである制御手段200を経由するので、これを受けた制御手段200はここでステップA2にかかるTATのカウントを開始する。
【0082】
ここで、ステップS803でウェブサーバ31に送信されたステップB1のリクエストに対するレスポンスがプロキシサーバである制御手段200に戻ってきた(ステップS814)。このレスポンスの確認は、リクエスト生成手段110および120のどちらが行ってもよいが、ここではリクエスト生成手段120が行うものとし、TATのカウントを停止してからこのレスポンスをリクエスト生成手段120に転送する(ステップS815)。
【0083】
ステップB1のレスポンスを確認したリクエスト生成手段120は、これに続いてステップB2のリクエストの送信、即ちウェブサーバ31に対してアクセスしてリクエストを送信するよう制御手段200から指示を受け、その動作を行う(ステップS816〜817)。
【0084】
ここで、ステップS813でウェブサーバ30に送信されたステップA2のリクエストに対するレスポンスがプロキシサーバである制御手段200に戻ってきた(ステップS804)。このレスポンスの確認は、リクエスト生成手段110および120のどちらが行ってもよいが、ここではリクエスト生成手段110が行うものとし、TATのカウントを停止してからこのレスポンスをリクエスト生成手段110に転送する。リクエスト生成手段110は、このレスポンスを確認してその結果を制御手段200に返す(ステップS805)。
【0085】
応答監視装置10では、以上の動作をステップA2に続く各ステップ、ステップB1に続く各ステップ、さらにシナリオAおよびシナリオB以外のシナリオについても行っていく。その際、必ず前ステップのレスポンス画面の確認と、今ステップのリクエスト送信とをワンセットで行う。そしてリクエスト生成手段110および120以外のリクエスト生成手段に対しても、これと同じように各シナリオの各ステップ単位で動作を割り振って実行させていく。
【0086】
プロキシサーバであるTAT監視部260では、RFC1631(1994年5月)で定義された公知技術であるIPマスカレードにより、組織内でのみ通用するIPアドレス(ローカルアドレス)と、インターネット上のIPアドレス(グローバルアドレス)を透過的に相互変換する。このため、ステップA2の動作をステップA1の動作とは異なるリクエスト生成手段が実行したとしても、またリクエストを送信とそれに対するレスポンスの確認を異なるリクエスト生成手段が実行したとしても、ウェブサーバ30にはそのことはわからず、同一のプロキシサーバ(TAT監視部260)に対して一連の処理を継続しているとしかウェブサーバ30は認識しない。従って、応答パラメータ293bに間違いさえなければ、ウェブサーバ30は問題なく処理を継続することができる。
【0087】
そして、リクエスト生成手段属性テーブル292には第1〜第3のリクエスト生成手段110〜130の各々のIPアドレス292が記録されているので、TAT監視部260はどのリクエスト生成手段がどのステップを実行しているかを把握できさえすれば(図6のステップS410)、正確なTATを測定することができる。もちろん、リクエストを送信したリクエスト生成手段と、それに対するレスポンスを確認したリクエスト生成手段とが異なっていても、TATの測定には特に影響はない。
【0088】
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係るTAT測定方法は、複数のユーザによる操作を擬似的に発生させる複数個のリクエスト生成手段を備え、実行すべき操作内容と、操作内容の段階ごとに対応するクッキー情報である応答パラメータとをあらかじめ記憶しているTAT(Turnaround Time)測定装置にあって、ユーザによる操作に対するウェブサーバのTATを測定するTAT測定方法である。このTAT測定方法は、複数のリクエスト生成手段の中で空いているものを検索し(図6:ステップS404)、空いているリクエスト生成手段に段階ごとの操作内容と応答パラメータとを割り当てて実行させ(図6:ステップS408)、リクエスト生成手段が発生させたウェブサーバへのアクセスを仲介し(図7:ステップS503〜505)、アクセスからこれに対するレスポンスが返信されるまでの時間を測定してこれをTATとする(図8:ステップS603)。
【0089】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるエージェントマシンに実行させるようにしてもよい。
この構成および動作により、本実施形態は以下のような効果を奏する。
【0090】
本実施形態では、1つのリクエスト生成手段には2つ以上のステップの動作が同時に割り振られることはないので、複数のアクセス処理が同時に実行されることによる処理のオーバーヘッドが発生することはない。従って、各々のリクエスト生成手段に対して、ステップ単位で効率的に動作を割り振ることができ、使用率を高めることができる。
【0091】
このリクエスト生成手段にステップの動作を割り振るという動作は、人手を介さず行われるので、人手による煩雑で難解な監視シナリオ実行順序のスケジュール設計は不要である。さらに、監視条件の変更や、監視対象サービスの追加・削除などに対しても、人手を介さず柔軟に対応することができる。
【0092】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【0093】
本発明は、ウェブサーバの運用管理、特にトラブルの発生の予防およびパフォーマンスの低下の抑制に利用することができる。
【符号の説明】
【0094】
10 応答監視装置
11 プロセッサ
12 記憶手段
13 入出力手段
14 通信手段
20 インターネット
30、31 ウェブサーバ
110、120、130 リクエスト生成手段
111、121、131 シナリオ実行指示受信部
112、122、132 リクエスト送信部
113、123、133 レスポンス受信部
114、124、134 応答画面表示部
115、125、135 レスポンス情報送信部
200 制御手段
210 シナリオレコーダ部
220 DB制御部
230 空き検索部
240 シナリオ実行指示部
250 シナリオ待機部
251 シナリオ実行キュー
260 TAT監視部
261 レスポンス仲介機能部
262 アクセス仲介機能部
263 TAT算出機能部
270 レスポンス情報監視部
280 実行タイマー部
290 監視DB
291 シナリオ属性テーブル
292 リクエスト生成手段属性テーブル
293 レスポンス情報テーブル
294 測定結果テーブル

【特許請求の範囲】
【請求項1】
ユーザによる操作に対するウェブサーバのTAT(Turnaround Time)を測定するTAT測定装置であって、
複数の前記ユーザによる操作を擬似的に発生させる複数個のリクエスト生成手段と、前記複数のリクエスト生成手段の動作を制御する制御手段とを備え、
前記制御手段が、
前記リクエスト生成手段が実行すべき操作内容と前記操作内容の段階ごとに対応するクッキー情報である応答パラメータとを記録しているレスポンス情報テーブルと、
前記複数のリクエスト生成手段の中で空いているものを検索する空き検索部と、
前記空いているリクエスト生成手段に前記段階ごとの操作内容と前記応答パラメータとを割り当てて実行させる実行指示部と、
前記リクエスト生成手段が発生させた前記ウェブサーバへのアクセスを仲介し、前記アクセスからこれに対するレスポンスが返信されるまでの時間を測定してこれを前記TATとするプロキシサーバ部と
を備えたことを特徴とするTAT測定装置。
【請求項2】
前記プロキシサーバ部が、前記リクエスト生成手段から前記ウェブサーバへのアクセスの発生時刻と、これに対する前記ウェブサーバから前記リクエスト生成手段へのレスポンスの発生時刻とを記録すると共に、これらの時刻から前記TATを取得するTAT算出機能を備えたことを特徴とする、請求項1に記載のTAT測定装置。
【請求項3】
前記実行指示部が、前記リクエスト生成手段に対して前記段階ごとの操作内容を実行させる直前に、当該段階の1つ前の段階の操作結果に対する前記ウェブサーバからのレスポンスの確認を該リクエスト生成手段に実行させる機能を備えたことを特徴とする、請求項1に記載のTAT測定装置。
【請求項4】
前記制御手段が、前記複数のリクエスト生成手段の中に空いているものが無い場合に、前記段階ごとの操作内容を予め用意されたシナリオ実行キューに一時的に記憶させると共に、前記複数のリクエスト生成手段の中に空きが生じ次第前記段階ごとの操作内容をその空いたリクエスト生成手段に実行させるシナリオ待機部を備えたことを特徴とする、請求項1に記載のTAT測定装置。
【請求項5】
前記制御手段が、ユーザによる前記ウェブサーバに対する操作を記録して、前記段階ごとの操作内容として記憶するシナリオレコーダ部を備えたことを特徴とする、請求項1に記載のTAT測定装置。
【請求項6】
前記制御手段が、前記複数のリクエスト生成手段の各々のIPアドレスと、前記複数のリクエスト生成手段の各々が使用中であるか否かを示す使用状況とを記憶したリクエスト生成手段属性テーブルを備えたことを特徴とする、請求項1に記載のTAT測定装置。
【請求項7】
前記実行指示部が、前記段階ごとの操作内容を前記リクエスト生成手段に割り当てる際に、その段階ごとの操作内容を割り当てたリクエスト生成手段を前記プロキシサーバ部に通知する機能を備えたことを特徴とする、請求項1に記載のTAT測定装置。
【請求項8】
前記リクエスト生成手段が、
前記実行指示部からの前記段階ごとの操作内容の実行指示を受信するシナリオ実行指示受信部と、
前記段階ごとの操作内容に基づくリクエストを前記ウェブサーバに送信するリクエスト送信部と、
前記リクエストに対する前記ウェブサーバからのレスポンスを受信するレスポンス受信部と、
前記レスポンスを画面表示する応答画面表示部と、
前記レスポンスが正当な応答であるか否かを判断してその判断結果を前記レスポンス情報テーブルに記録させるレスポンス情報送信部とを備えたことを特徴とする、請求項1に記載のTAT測定装置。
【請求項9】
複数の前記ユーザによる操作を擬似的に発生させる複数個のリクエスト生成手段を備え、実行すべき操作内容と、前記操作内容の段階ごとに対応するクッキー情報である応答パラメータとをあらかじめ記憶しているTAT(Turnaround Time)測定装置にあって、前記ユーザによる操作に対するウェブサーバのTATを測定するTAT測定方法であって、
前記複数のリクエスト生成手段の中で空いているものを検索し、
前記空いているリクエスト生成手段に前記段階ごとの操作内容と前記応答パラメータとを割り当てて実行させ、
前記リクエスト生成手段が発生させた前記ウェブサーバへのアクセスを仲介し、
前記アクセスからこれに対するレスポンスが返信されるまでの時間を測定してこれを前記TATとする
ことを特徴とするTAT測定方法。
【請求項10】
複数の前記ユーザによる操作を擬似的に発生させる複数個のリクエスト生成手段を備え、実行すべき操作内容と、前記操作内容の段階ごとに対応するクッキー情報である応答パラメータとをあらかじめ記憶しているTAT(Turnaround Time)測定装置にあって、前記TAT測定装置が備えているコンピュータに、
前記複数のリクエスト生成手段の中で空いているものを検索する手順と、
前記空いているリクエスト生成手段に前記段階ごとの操作内容と前記応答パラメータとを割り当てて実行させる手順と、
前記リクエスト生成手段が発生させた前記ウェブサーバへのアクセスを仲介する手順と、
前記アクセスからこれに対するレスポンスが返信されるまでの時間を測定してこれを前記TATとする手順と
を実行させることを特徴とするTAT測定プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate