以下、本発明の実施の形態について図面を参照しつつ説明する。
実施の形態1.
本実施の形態においては、画面生成装置の一例として、Webサーバにアクセスするクライアントにおける画面を再現する画面再現装置について説明する。
まず、本実施の形態に係るWebシステムの構成について説明する。
図1は、本実施の形態に係るWebシステムの構成の一例を示すブロック図である。このWebシステムは、クライアント1、Webサーバ2、ネットワークスイッチ3、画面再現装置4、操作ログ記憶部5、エラーログ記憶部6を備える。クライアント1とWebサーバ2は、ネットワークスイッチ3を介して接続されている。また、画面再現装置4は、ネットワークスイッチ3のミラーポートに接続されている。また、操作ログ記憶部5とエラーログ記憶部6は、Webサーバ2と画面再現装置4に接続されている。
クライアント1は、ユーザの操作に従ってWebサーバ2にアクセスし、Webサーバ2から受信したWeb画面を表示するとともに、ユーザによるWeb画面上の操作をWebサーバ2へ送信する。また、Webサーバ2は、クライアント1における操作の履歴を操作ログとして操作ログ記憶部5に保存し、クライアント1との通信において発生したエラーの履歴をエラーログとしてエラーログ記憶部6に保存する。また、ネットワークスイッチ3は、クライアント1とWebサーバ2の間の通信をキャプチャし、ミラーポートから画面再現装置4に送信する。
次に、画面再現装置4の構成について説明する。
図2は、本実施の形態に係る画面再現装置の構成の一例を示すブロック図である。この画面再現装置4は、HTTP(HyperText Transfer Protocol)メッセージ観測部111、HTTP解析部112、通信データ記憶部113、通信データ抽出部121、画面データ生成部122、画面部品ファイル記憶部123、画面データ記憶部124、画面付加情報記憶部132、画面制御部133、画面表示部134を備える。
次に、操作ログ記憶部5における操作ログとエラーログ記憶部6におけるエラーログについて説明する。
操作ログとエラーログは、従来と同様にして、Webサーバ2により生成される。図3は、本実施の形態に係る操作ログの一例を示す表である。操作ログは、操作毎のレコードを持つ。また、操作ログは、レコード毎の項目として、リクエストタイムスタンプ、顧客ID、発信元IPアドレス、操作を持つ。図4は、本実施の形態に係るエラーログの一例を示す表である。エラーログは、エラー毎のレコードを持つ。また、エラーログは、レコード毎の項目として、リクエストタイムスタンプ、顧客ID、発信元IPアドレス、操作、エラーメッセージを持つ。
次に、ネットワークスイッチ3によりキャプチャされるHTTPメッセージについて説明する。
まず、クライアント1からWebサーバ2へ送信されるリクエスト(HTTPリクエストメッセージ)のデータ構造について説明する。図5は、HTTPリクエストメッセージのデータ構造の一例を示す表である。図の左側の列に示すように、リクエストのデータ構造は、メッセージヘッダ、空行、メッセージボディで構成される。メッセージヘッダは、リクエストライン、リクエストヘッダ、一般ヘッダ、エンティティヘッダで構成される。更に、図の右側の2列は、リクエストのデータ構造の内容の具体例として、GETメソッドのサンプルとPOSTメソッドのサンプルを示す。
まず、Webサーバ2からクライアント1へ送信されるレスポンス(HTTPレスポンスメッセージ)のデータ構造について説明する。図6は、HTTPレスポンスメッセージのデータ構造の一例を示す表である。図の左側の列に示すように、レスポンスのデータ構造は、リクエストと同様、メッセージヘッダ、空行、メッセージボディで構成される。メッセージヘッダは、ステータスライン、レスポンスヘッダ、一般ヘッダ、エンティティヘッダで構成される。更に、図の右側の2列は、レスポンスのデータ構造の内容の具体例として、HTML(HyperText Markup Language)ファイル取得時のサンプルと画像ファイル取得時のサンプルを示す。
図7は、HTTPメッセージの一例を示すシーケンス図である。一連のHTTPメッセージにおいて、リクエストとレスポンスが交互に現れる。また、あるリクエストとその直後のレスポンスとは、ペアになっている。また、あるレスポンス中のフォームに対してクライアント1で入力された応答入力は、その直後のリクエストの引数になる。従って、あるレスポンス中のフォームとその直後のリクエスト中の応答入力とは、ペアになっている。画像再現装置4は、これらのペアを用いてHTTPメッセージ間の対応付けを行う。
次に、HTTPメッセージ観測部111とHTTP解析部112による通信データ取得処理について説明する。
図8は、本実施の形態に係る通信データ取得処理の動作の一例を示すフローチャートである。ここで、HTTPメッセージに付与される識別IDは、“(親番号)−(子番号)”の形式で表される。まず、HTTPメッセージ観測部111は、親番号を初期化し(親番号=0)(S111)、ネットワークスイッチ3がキャプチャしたメッセージからHTTPメッセージを抽出し、HTTP解析部112に送る(S112)。次に、HTTP解析部112は、受け取ったHTTPメッセージに対してHTTPプロトコル解析処理を行い(S113)、その結果を通信データとして通信データ記憶部113に格納する(S114)。次に、HTTPメッセージ観測部111は、全てのメッセージの観測を終了したか否かの判断を行い(S115)、終了していなければ(S115,N)、処理S112へ戻り、終了していれば(S115,Y)、このフローを終了する。
次に、通信データ取得処理中のHTTPプロトコル解析処理について説明する。
図9は、本実施の形態に係るHTTPプロトコル解析処理の動作の一例を示すフローチャートである。まず、HTTP解析部112は、HTTPメッセージ観測部111から受け取ったHTTPメッセージを解析し(S122)、与えられたHTTPメッセージが新しい接続(新しいセッション、新しい画面)であるか否かの判断を行う(S123)。新しい接続でない場合(S123,N)、処理S125に移行する。一方、新しい接続である場合(S123,Y)、HTTP解析部112は、親番号に1を加え、子番号を初期化する(子番号を1にする)(S124)。次に、HTTP解析部112は、与えられたHTTPメッセージがリクエストであるか否かの判断を行う(S125)。リクエストでない場合(S125,N)、処理S131に移行する。一方、リクエストである場合(S125,Y)、HTTP解析部112は、子番号に1を加える(S126)。
次に、HTTP解析部112は、与えられたHTTPメッセージがレスポンスであるか否かの判断を行う(S131)。レスポンスでない場合(S131,N)、親番号と子番号からなる識別IDを通信データ記憶部113に登録し(S132)、このフローを終了する。一方、レスポンスである場合(S131,Y)、HTTP解析部112は、送信元IPアドレスおよびポート番号、発信先IPアドレスおよびポート番号の全てが対応する(リクエストとレスポンスのペアとなる、直前の)リクエストの識別IDをレスポンスの識別IDとして通信データ記憶部113に登録し(S133)、このフローを終了する。
次に、通信データ記憶部113のデータ構造について説明する。
図10は、本実施の形態に係る通信データ記憶部113の内容の一例を示す表である。通信データ記憶部113には、通信データとして、HTTPメッセージのメッセージボディである通信データファイルと通信データファイルをテーブルの形式で管理する通信データテーブルとが格納される。通信データテーブルは、HTTPメッセージ毎のレコードを持つ。また、通信データテーブルは、レコード毎の項目として、タイムスタンプ、発信元IP(Internet Protocol)アドレス:接続ポート、送信先IPアドレス:接続ポート、識別ID、種別、HTTPメッセージヘッダ、ボディを持つ。
識別IDは、上述したHTTPプロトコル解析処理により付与されたものである。識別IDの親番号は、1つの画面の接続内で同一になり、識別IDの子番号は、リクエストとレスポンスのペアで同一になる。種別は、リクエストとレスポンスのいずれかを示す。ボディは、そのHTTPメッセージのメッセージボディである通信データファイルのファイル名である。通信データファイルは、HTMLフォーム、HTTPメッセージの引数(HTMLフォームの応答入力)、画像データなどである。
上述した通信データ取得処理によれば、クライアント1とWebサーバ2の間のHTTPメッセージを解析し、通信データテーブルを生成することにより、エラーログとの対応付けが容易になるとともに、HTTPメッセージ間におけるリクエストとレスポンスのペアやフォームと応答入力のペアの関係の抽出が容易になる。
次に、通信データ抽出部121による通信データ抽出処理について説明する。
図11は、本実施の形態に係る通信データ抽出処理の動作の一例を示すフローチャートである。まず、通信データ抽出部121は、エラーログ記憶部6に基づいて抽出条件を指定し(S141)、通信データ記憶部113からHTTPメッセージの読み込みを行う(S142)。ここで、抽出条件は、例えば、エラーログの中から画面再現装置4のユーザにより指定されたエラーに対応するHTTPメッセージと、そのHTTPメッセージに関連するHTTPメッセージ(そのHTTPメッセージの前後の所定の範囲に含まれるHTTPメッセージ)である。エラーに対応するHTTPメッセージは、例えば、エラーログにおけるリクエストタイムスタンプや発信元IPアドレスが一致するHTTPメッセージである。
ここでは、エラーログに基づいて抽出条件を指定したが、操作ログに基づいて抽出条件を指定しても良い。
次に、通信データ抽出部121は、通信データ記憶部113における全てのHTTPメッセージの読み込みを完了したか否かの判断を行い(S143)、完了した場合(S143,Y)、このフローを終了し、完了していない場合(S143,N)、読み込んだHTTPメッセージが抽出条件に適合したか否かの判断を行う(S144)。抽出条件に適合しない場合(S144,N)、処理S142へ戻って次の通信データの読み込みを行う。一方、抽出条件に適合した場合(S144,Y)、通信データ抽出部121は、読み込んだHTTPメッセージを画面データ生成部122に送り、画面データ生成部122は画面データ生成処理を行い(S145)、処理S142へ戻って次の通信データの読み込みを行う。
次に、通信データ抽出処理中の画面データ生成部122による画面データ生成処理について説明する。
図12は、本実施の形態に係る画面データ生成処理の動作の一例を示すフローチャートである。まず、画面データ生成部122は、通信データ抽出部121から受け取ったHTTPメッセージがレスポンスであるか否かの判断を行う(S151)。
処理S151において、レスポンスである場合(S151,Y)、画面データ生成部122は、そのレスポンスがHTMLであるか画像であるかの判断を行う(S152)。HTMLである場合(S152,HTML)、画面データ生成部122は、HTMLを解析してHTMLフォームを抽出し(S153)、HTMLフォームを画面部品ファイルとして画面部品ファイル記憶部123に書き込み(S154)、このフローを終了する。画像である場合(S152,画像)、画面データ生成部122は、画像ファイルを画像部品ファイルとして画面部品ファイル記憶部123に書き込み(S155)、このフローを終了する。
処理S151において、レスポンスでない場合(S151,N)、画面データ生成部122は、通信データ抽出部121から受け取ったHTTPメッセージがリクエストであるか否かの判断を行う(S161)。
処理S161において、リクエストである場合(S161,Y)、画面データ生成部122は、そのリクエストがGETであるかPOSTであるかの判断を行う(S162)。リクエストがGETである場合(S162,GET)、リクエストヘッダから引数(応答入力)を読み込み(S163)、処理S165へ移行する。一方、リクエストがPOSTである場合(S162,POST)、メッセージボディから引数(応答入力)を読み込み(S164)、処理S165へ移行する。
次に、画面データ生成部122は、対応する(リクエストの直前のレスポンスから抽出された)画面部品ファイル記憶部123からHTMLフォームを読み込み(S165)、このHTMLフォームに応答入力を埋め込む応答入力埋め込み処理を行い(S166)、その結果として得られたHTMLフォームを画面データファイルとして画面データ記憶部124に登録し(S167)、このフローを終了する。
処理S161において、リクエストでない場合(S161,N)、このフローを終了する。
次に、画面データ生成処理中の応答入力埋め込み処理について説明する。
図13は、本実施の形態に係る応答入力埋め込み処理の動作の一例を示すフローチャートである。まず、画面データ生成部122は、画面部品ファイル記憶部123からHTMLフォームから1行読み込み(S171)、該当する行に<form>タグがあるか否かの判断を行う(S172)。
<form>タグがない場合(S172,N)、処理S181へ移行する。
一方、<form>タグがある場合(S172,Y)、画面データ生成部122は、該当する行に<input>タグがあるか否かの判断を行う(S173)。<input>タグがあり、その種類がtextである場合(S173,text)、画面データ生成部122は、value属性に引数の値を設定し(S174)、処理S181へ移行する。また、<input>タグがあり、その種類がradio checkboxである場合(S173,radio checkbox)、画面データ生成部122は、引数の値と等しい値の行にchecked=“checked”という記述を追加し(S175)、処理S181へ移行する。また、<input>タグがあり、その種類がselectである場合(S173,select)、画面データ生成部122は、引数の値と等しいoption要素にselected=“selected”という記述を追加し(S176)、処理S181へ移行する。
また、<input>タグがない場合(S173,NO)、画面データ生成部122は、<textarea>タグがあるか否かの判断を行い(S177)、<textarea>タグがない場合(S177,N)、処理S181へ移行し、<textarea>タグがある場合(S177,Y)、画面データ生成部122は、<textarea>タグの中に引数の値を設定し(S178)、処理S181へ移行する。
処理S181において、画面データ生成部122は、HTMLフォームの全ての行の読み込みが完了したか否かの判断を行い(S181)、完了した場合(S181,Y)、このフローを終了し、完了しない場合(S181,N)、処理S171へ戻り、次の行の読み込みを行う。
次に、上述した応答入力埋め込み処理により生成されたHTMLフォームの具体例について説明する。
図14は、本実施の形態に係る応答入力埋め込み処理の動作の具体例を示す図である。この図は、HTMLフォーム“furikomi001”、通信データテーブルにおけるリクエスト3−1のレコード、通信データファイルにおけるリクエスト3−1の引数、通信データテーブルにおけるレスポンス2−1のレコード、振込み元指定画面の関係を示す。
この図において、HTMLフォーム“furikomi001”は、応答入力埋め込み処理の結果を示す。リクエスト3−1は、“furikomi001”への応答入力を引数に持つリクエストを示す。リクエスト3−1の引数は、“furikomi001”への応答入力を示す。レスポンス2−1は、“furikomi001”を返したレスポンスであり、リクエスト3−1の直前のレスポンスを示す。振込み元指定画面は、HTMLフォーム“furikomi001”に応答入力を埋め込んだ結果により表示される画面を示す。
HTMLフォーム“furikomi001”には、上述した応答入力埋め込み処理により、2つの<input>タグ内にそれぞれの応答入力を表す“value=001”と“value=00001”が埋め込まれる。
上述した画面データ生成処理によれば、Webサーバ2側に保存されたエラーログとキャプチャした通信データとに基づいて、HTMLフォームに応答が入力された状態のHTMLフォームを生成することができる。
次に、画面データ記憶部123のデータ構造について説明する。
図15は、本実施の形態に係る画面データ記憶部の内容の一例を示す表である。画面データ記憶部123には、画面データテーブルと画面データファイルとが格納される。画面データテーブルは、画面データ毎のレコードを持つ。また、画面データテーブルは、レコード毎の項目として、顧客ID、レスポンスタイムスタンプ、画面データファイル名である。画面データファイル名は、応答入力埋め込み処理により生成されたHTMLフォームにリンクする。図の下部に参考として、それぞれの画面データファイルにより表示される画面を示す。
処理S167において、画面データ生成部122は、操作ログ記憶部5から対応する操作の顧客IDを取得し、通信データ記憶部113から対応するレスポンスのタイムスタンプを取得し、画面データファイル名とともに画面データテーブルに登録する。
次に、画面表示部134により表示されるGUI(Graphical User Interface)について説明する。
図16は、本実施の形態に係るGUIの一例を示す図である。GUIは、タイムスタンプ表示部151、画面データ表示部152、最初画面移動ボタン153、後退ボタン154、前進ボタン155、最後画面移動ボタン156、画面スライダ157、エラーログ表示部158、入力支援メッセージ表示部159を備える。
タイムスタンプ表示部151は、画面データHTTPメッセージのタイムスタンプを表示する。画面データ表示部152は、画面制御部133から送られた画面データを表示する。画面付加情報表示部158は、画面制御部133から送られた画面付加情報を表示する。最初画面移動ボタン153、後退ボタン154、前進ボタン155、最後画面移動ボタン156、画面スライダ157は、画面再現装置4のユーザによる操作を受け付け、操作を画面制御部133に送る。
次に、画面制御部133による画面制御処理について説明する。
図17は、本実施の形態に係る画面制御処理の動作の一例を示すフローチャートである。まず、画面制御部133は、画面再現装置4のユーザにより、操作画面においてボタンが押下されたか否かの判断を行う(S211)。前進ボタンが押下された場合(S211,前進ボタン)、画面制御部133は、画面を1つ進め(S212)、処理S231へ移行する。また、後退ボタンが押下された場合(S211,後退ボタン)、画面制御部133は、画面を1つ戻し(S213)、処理S231へ移行する。また、最初画面移動ボタンが押下された場合(S211,最初画面移動ボタン)、画面制御部133は、最初の画面に移動させ(S214)、処理S231へ移行する。また、最後画面移動ボタンが押下された場合(S211,最後画面移動ボタン)、画面制御部133は、最初の画面に移動させ(S215)、処理S231へ移行する。
また、ボタンが押下されていない場合(S211,NO)、画面制御部133は、画面再現装置4のユーザにより、操作画面においてスライダが操作されたか否かの判断を行う(S221)。スライダが左に操作された場合(S221,左)、画面制御部133は、スライダ位置に相当する画面に戻し(S222)、処理S231へ移行する。また、スライダが右に操作された場合(S221,右)、画面制御部133は、スライダ位置に相当する画面に進め(S223)、処理S231へ移行する。
処理S231において、画面制御部133は、移動した画面に対応する画面データファイルを画面データ記憶部124から読み出すとともに、画面データファイルで用いられる画面部品ファイルを画面データ記憶部124から読み出し(S231)、画面データファイルと画面部品ファイルを画面表示部134に表示させ(S232)、エラーログ記憶部6におけるエラーログや画面付加情報記憶部132における画面付加情報を読み出し(S233)、エラーログや画面付加情報を画面表示部134に表示させ(S234)、処理S211に戻り、次の操作についての判断を行う。
また、スライダが操作されていない場合(S221,NO)、画面制御部133は、画面再現装置4のユーザにより、操作画面において操作が終了されたか否かの判断を行う(S241)。操作が終了されていない場合(S241,N)、処理S211に戻り、次の操作についての判断を行う。一方、操作が終了された場合(S241,Y)、このフローを終了する。
図18は、本実施の形態に係る画面表示部に表示される画面の具体例を示す図である。上述した画面制御処理により、画面データ表示部152に表示される画面は、図15の画面データテーブルで管理されている4つの画面データのいずれかに基づく画面であり、前進ボタン155や後退ボタン154などの操作に従って、4つの画面の間を移動する。
次に、予め画面付加情報記憶部132に格納される画面付加情報のデータ構造について説明する。
図19は、本実施の形態に係る画面付加情報のデータ構造の一例を示すブロック図である。画面付加情報は、操作−HTMLフォーム対応付けテーブル161、エラー内容−応答入力引数対応付けテーブル162、応答入力支援メッセージテーブル163からなる。
図20は、本実施の形態に係る操作−HTMLフォーム対応付けテーブルの内容の一例を示す表である。操作−HTMLフォーム対応付けテーブル161は、操作ログにおける操作とHTMLフォームなどの対応付けを示すテーブルであり、操作毎に、操作名、HTMLフォーム名、フォームを要求したリクエスト、応答入力のリクエストの項目を持つ。画面制御部133は、このテーブルを参照することにより、画面データ(HTMLフォーム名、引数名)に対応する操作を取得することができる。
図21は、本実施の形態に係るエラー内容−応答入力対応付けテーブルの内容の一例を示す表である。エラー内容−応答入力引数対応付けテーブル162は、エラー内容と応答入力などの対応付けを示すテーブルであり、エラー内容毎に、エラーメッセージ、HTMLフォーム名、引数名の項目を持つ。画面制御部133は、このテーブルを参照することにより、画面データ(HTMLフォーム名、引数名)に対応するエラー内容を取得することができる。
図22は、本実施の形態に係る応答入力支援メッセージテーブルの内容の一例を示す表である。応答入力支援メッセージテーブル163は、クライアント1のユーザに対して適切な応答入力を支援するためのメッセージである入力支援メッセージ(入力内容に関する情報)を格納しておくものであり、HTMLフォーム名、引数名、入力支援メッセージの項目を持つ。画面制御部133は、このテーブルを参照することにより、画面データ(HTMLフォーム名、引数名)に対応する入力支援メッセージを取得することができる。
上述した画面制御処理によれば、画面再現装置4のユーザは、クライアント1において表示された画面の順番を元に、容易に画面を切り替えることができる。更に、画面データに対応するエラーログや画面付加情報を表示することにより、エラーの内容や入力支援の内容を表示することができる。
次に、クライアント1のユーザの操作によるトラブルが発生した場合の画面再現装置4によるクライアント1の画面の再現について、2つの具体例を用いて説明する。
第1の具体例は、振込先指定画面において6桁で入力すべき振込先の口座番号を、クライアント1のユーザが1桁で入力していた場合である。
図23は、本実施の形態に係る第1の具体例の表示に用いられる情報の一例を示す図である。この図は、エラーログ記憶部6におけるエラーログ、画面付加情報記憶部132におけるエラー内容−応答入力対応付けテーブルと入力支援メッセージテーブルを示す。図中の太い下線で示した部分が関連する情報である。
図24は、本実施の形態に係る第1の具体例におけるGUIの表示の一例を示す図である。画面制御部133は、画面再現装置4のユーザの操作に従って、エラーログに対応する画面に応答入力を埋め込んだ状態の画面データを画面データ表示部152に表示させ、タイムスタンプをタイムスタンプ表示部151に表示させる。更に、画面制御部133は、エラー内容−応答入力対応付けテーブルから、表示した画面データのHTMLフォーム名と引数名に対応するエラー内容を読み出し、エラーログ表示部158に表示させる。更に、画面制御部133は、入力支援メッセージテーブルから、表示した画面データのHTMLフォーム名と引数名に対応する入力支援メッセージを読み出し、入力支援メッセージ表示部159に表示させる。
第2の具体例は、パスワード再発行の確認のための電話番号の入力において、クライアント1のユーザが入力した電話番号の形式が誤っていた場合である。
図25は、本実施の形態に係る第2の具体例における画面データの一例を示す図である。クライアント1において、まず、1番目の画面であるログイン画面が表示される。ここで、クライアント1のユーザがパスワードを忘れた場合の操作を行うと、2番目の画面である氏名電話番号確認画面が表示される。ここで、クライアント1のユーザが誤った形式の電話番号を入力すると、3番目の画面であるエラー画面が表示される。
図26は、本実施の形態に係る第2の具体例におけるGUIの表示の一例を示す図である。画面制御部133は、画面再現装置4のユーザの操作に従って、氏名電話番号確認画面のフォームに応答入力を埋め込んだ状態の画面データを画面データ表示部152に表示させる。更に、画面制御部133は、エラー内容−応答入力対応付けテーブルから、表示した画面データのHTMLフォーム名と引数名に対応するエラー内容を読み出し、エラーログ表示部158に表示させる。更に、画面制御部133は、入力支援メッセージテーブルから、表示した画面データのHTMLフォーム名と引数名に対応する入力支援メッセージを読み出し、入力支援メッセージ表示部159に表示させる。
例えば、コールセンターの担当者が画面再現装置4を用いることにより、エラーが発生したクライアント1の画面を再現できるとともに、前後の画面への移り変わりを自由に操作できることから、クライアント1からのユーザの問い合わせの内容を正確に把握することができる。更に、再現した画面とともに画面に応じた付加情報を表示することにより、コールセンターの担当者はクライアント1からのユーザの問い合わせに対して適切な処置を行うことができる。
実施の形態2.
ここで、株取引アプリケーションにおけるクライアントのユーザの操作の例について説明する。図27は、クライアントに表示された株購入画面の第1状態を示す図である。図28は、クライアントに表示された株購入画面の第2状態を示す図である。図29は、クライアントに表示された株購入画面の第3状態を示す図である。図30は、クライアントに表示された株購入画面の第4状態を示す図である。図31は、クライアントに表示された取引確定画面の第1状態を示す図である。図32は、クライアントに表示された株購入画面の第5状態を示す図である。
株購入画面は、株価を表示するための株価表示欄、更新ボタン、購入株数を入力するための購入株数入力欄、クリアボタン、取引実行ボタン、戻るボタンを表示する。まず、クライアントにおいて、ログイン認証が行われ、購入する株の銘柄が指定され、株購入画面の第1状態が表示されたとする。株購入画面の第1状態において、ユーザにより更新ボタンが押下されたとすると、株購入画面は第1状態から第2状態へ遷移する。株購入画面の第2状態は、クライアントがWebサーバから現在の株価を取得することにより、株購入画面の第1状態における株価表示欄の株価が更新されたものである。次に、株購入画面の第2状態において、ユーザにより更新ボタンが押下されたとすると、株購入画面は第2状態から第3状態へ遷移する。株購入画面の第3状態は、クライアントがWebサーバから現在の株価を取得することにより、株購入画面の第2状態における株価表示欄の株価が更新されたものである。
次に、株購入画面の第3状態において、ユーザにより購入株数入力欄に購入株数が入力されたとすると、株購入画面は第3状態から第4状態へ遷移する。株購入画面の第4状態は、株購入画面の第3状態における購入株数入力欄に購入株数が入力されたものである。次に、株購入画面の第4状態において、ユーザにより取引実行ボタンが押下されたとすると、株購入画面の第4状態は取引確定画面の第1状態へ遷移する。
取引確定画面の第1状態は、株購入画面の第4状態における株価と購入株数を表示すると共に、OKボタンとキャンセルボタンを表示する。次に、取引確定画面の第1状態において、ユーザによりキャンセルボタンが押下されたとすると、取引確定画面の第1状態は株購入画面の第5状態へ遷移する。株購入画面の第5状態は、株購入画面の第4状態と同一である。次に、ユーザが操作上の疑問によりコールセンタへ電話したとする。
しかしながら、上述した操作の例に対して、コールセンタが実施の形態1に係る画面再現装置を有する場合、オペレータ(コールセンターの担当者)は、画面再現装置4により再現された画面を切り替えながら画面遷移を辿る必要があった。
また、実施の形態1に係る画面再現装置は、再現された複数の画面を一覧にした一覧画面を表示しても良い。図33は、実施の形態1に係る画面再現装置による一覧画面の一例を示す図である。この一覧画面は、上述した株購入画面の第1状態、第2状態、第3状態、第4状態、取引確定画面の第1状態、株購入画面の第5状態が順番に並べて表示したものである。しかしながら、上述した操作の例に対して、一覧画面を表示する場合、オペレータは、細かい操作の内容を確認しにくく、特にどのボタンが押下されて次画面に遷移したかは把握しにくい。
本実施の形態においては、クライアントにおける画面遷移の状況を、オペレータがより簡単に把握することができる画面再現装置について説明する。
まず、本実施の形態に係る画面再現装置の構成について説明する。
図34は、本実施の形態に係る画面再現装置の構成の一例を示すブロック図である。この図において、図2と同一符号は図2に示された対象と同一又は相当物を示しており、ここでの説明を省略する。この図は、図2と比較すると、画面再現装置4の代わりに画面再現装置7を備える。また、画面再現装置7は、画面再現装置4と比較すると、新たに再現対象データ集約部311、遷移番号付加部312、再現画像作成部313、再現画像表示部314、再現データ記憶部315、画面画像雛形DB(Database)321、ボタン上書き情報DB322、データ上書き情報DB323を備え、通信データ抽出部121、画面データ生成部122、画面部品ファイル記憶部123、画面データ記憶部124、画面付加情報記憶部132、画面制御部133、画面表示部134を必要としない。
再現データ記憶部315は、再現対象レコード抽出テーブル、再現対象集約テーブル、データ遷移管理テーブルA、データ遷移管理テーブルB、上書き再現画面画像データを格納する。
次に、本実施の形態に係る画面再現装置の動作について説明する。
本実施の形態に係る画面再現装置は、実施の形態1と同様、HTTPメッセージ観測部111とHTTP解析部112による通信データ取得処理を行った後、次の画面再現処理を行う。
図35は、本実施の形態に係る画面再現処理の動作の一例を示すフローチャートである。まず、再現対象データ集約部311は、通信データ記憶部113に格納された情報から再現の対象となるデータを集約する再現対象データ集約処理を行う(S311)。次に、遷移番号付加部312は、再現の対象となるデータに画面遷移に関する番号を付加する遷移番号付加処理を行う(S312)。次に、再現画像作成部313は、再現画像を作成する再現画像作成処理を行う(S313)。次に、再現画像表示部314は、作成された再現画像を表示する再現画像表示処理を行い(S314)、このフローは終了する。以下、説明を簡単にするため、画面再現装置が対象とする画面において、1画面が1フォームに対応し、フォームが画像なしの単純なHTMLである場合について説明する。
次に、再現対象データ集約処理について説明する。
図36は、本実施の形態に係る再現対象データ集約処理の動作の一例を示すフローチャートである。まず、再現対象データ集約部311は、再現対象を指定する情報を取得する(S321)。再現対象とは、再現対象となる操作を行った顧客である再現対象顧客、及び再現対象となる操作を行った時間帯である再現対象時間帯である。本実施の形態において、再現対象顧客を指定する情報は、IPアドレス及び接続ポートのペアである。ここで、再現対象データ集約部311は、オペレータによる入力からこれらの情報を取得する。オペレータは、これらの情報をエラーログ記憶部6や通信データ記憶部113に格納された情報から取得することができる。
次に、再現対象データ集約部311は、通信データ記憶部113に格納された通信データテーブルにおいて、タイムスタンプが再現対象時間帯内であり、且つ指定されたIPアドレス及び接続ポートのペアを持つレコードを、タイムスタンプ順に抽出し、再現データ記憶部315の再現対象レコード抽出テーブルに格納する(S322)。ここで、指定されたIPアドレス及び接続ポートのペアを持つレコードとは、そのペアを“発信元IPアドレス:接続ポート”、あるいは“送信先IPアドレス:接続ポート”に持つレコードである。図37は、本実施の形態に係る再現対象レコード抽出テーブルの内容の一例を示す表である。この再現対象レコード抽出テーブルは、通信データテーブルにおける項目のうち、タイムスタンプ、種別、HTTPメッセージヘッダ、ボディを格納する。
次に、再現対象データ集約部311は、再現対象レコード抽出テーブルにおけるresponseレコードの番号を表す変数nを1に初期化する(S323)。次に、再現対象データ集約部311は、再現対象レコード抽出テーブルからn番目のresponseレコードを読み取り(S324)、responseレコードの解析を行うresponse解析処理を行う(S325)。
次に、再現対象データ集約部311は、再現対象レコード抽出テーブルにおける次のレコードがrequestレコードであるか否かの判断を行い、requestレコードでない場合(S331,N)、処理S334へ移行し、requestレコードである場合(S331,Y)、次のレコードであるrequestレコードを読み取り(S332)、requestレコードの解析を行うrequestレコード解析処理を行い(S333)、処理S334へ移行する。次に、再現対象データ集約部311は、nを1増加させ(S334)、再現対象レコード抽出テーブルの最終のresponseレコードまで読み取ったか否かの判断を行い、最終のresponseレコードまで読み取っていない場合(S335,N)、処理S324へ戻り、最終のresponseレコードまで読み取った場合(S335,Y)、このフローは終了する。
responseレコード解析処理及びrequestレコード解析処理により、再現データ記憶部315の再現対象集約テーブルにおける一部の項目が設定される。図38は、本実施の形態に係る再現対象集約テーブルの内容の一例を示す表である。この再現対象集約テーブルは、項目として、タイムスタンプ、画面ID、画面遷移順、ボタンID、押下順、時間差、データID(response)、データ(response)、データID(request)、データ(request)を有する。なお、本実施の形態においては、1つのrequestに含まれるデータが1つ、1つのresponseに含まれるデータが1つである場合としたが、1つのrequest及び1つのresponseに複数のデータが含まれる場合であっても本発明を適用することができる。
次に、responseレコード解析処理について説明する。
図39は、本実施の形態に係るresponseレコード解析処理の動作の一例を示すフローチャートである。まず、再現対象データ集約部311は、読み取ったresponseレコードのボディ部を解析する(S341)。次に、再現対象データ集約部311は、ボディ部の解析結果から、フォーム(画面)の種類を特定し、再現対象集約テーブルにおける画面IDに設定する(S342)。次に、再現対象データ集約部311は、responseレコードに、値の設定された引数データがあるか否かの判断を行う(S343)。値の設定された引数データがない場合(S343,N)、このフローは終了する。値の設定された引数データがある場合(S343,Y)、再現対象データ集約部311は、引数データの種類を特定し、再現対象集約テーブルにおけるデータID(response)に設定し(S344)、引数データの値を抽出し、再現対象集約テーブルにおけるデータ(response)に設定し(S345)、このフローは終了する。
次に、requestレコード解析処理について説明する。
図40は、本実施の形態に係るrequestレコード解析処理の動作の一例を示すフローチャートである。まず、再現対象データ集約部311は、読み取ったrequestレコードのタイムスタンプを、再現対象集約テーブルの“タイムスタンプ”に設定する(S352)。
次に、再現対象データ集約部311は、nが1より大きいか否かの判断を行い、nが1より大きくない場合(S353,N)、処理S355へ移行し、nが1より大きい場合(S353,Y)、requestレコードのタイムスタンプと再現対象集約テーブルの前レコードのタイムスタンプとの差を算出し、符号付きの値として再現対象集約テーブルの時間差に設定する(S354)。次に、再現対象データ集約部311は、読み取ったrequestレコードのボディ部を解析し(S355)、解析結果から、クリックされたボタン(リンク等のクリックの操作も含む)の種類を特定し、再現対象集約テーブルのボタンIDに設定する(S356)。
次に、再現対象データ集約部311は、requestレコードに値の設定された引数データがあるか否かの判断を行う(S357)。値の設定された引数データがない場合(S357,N)、このフローは終了する。値の設定された引数データがある場合(S357,Y)、再現対象データ集約部311は、引数データの種類を特定し、再現対象集約テーブルのデータID(request)に設定し(S358)、引数データの値を抽出し、再現対象集約テーブルのデータ(request)に設定し(S359)、このフローは終了する。
上述した再現対象集約処理によれば、対象として指定されたユーザによる一連の操作を抽出することができる。
次に、遷移番号付加処理について説明する。
図41は、本実施の形態に係る遷移番号付加処理の動作の一例を示すフローチャートである。まず、遷移番号付加部312は、画面遷移順の情報を再現対象集約テーブルに設定する画面遷移順付加処理を行い(S361)、押下ボタン順の情報を再現対象集約テーブルに設定する押下ボタン順付加処理を行い(S362)、データ遷移の情報を再現対象集約テーブルに設定するデータ遷移付加処理を行い(S363)、このフローは終了する。
次に、画面遷移順付加処理について説明する。
図42は、本実施の形態に係る画面遷移順付加処理の動作の一例を示すフローチャートである。まず、遷移番号付加部312は、再現対象集約テーブルにおけるレコードの番号を示す変数nを1に初期化し(S371)、再現対象集約テーブルの第1レコードの画面遷移順に1を設定する(S372)。次に、遷移番号付加部312は、再現対象集約テーブルに複数のレコードが存在するか否かの判断を行い、存在しない場合(S373,N)、このフローは終了し、存在する場合(S373,Y)、次の処理へ移行する。
次に、遷移番号付加部312は、nを1増加させ(S374)、再現対象集約テーブルの第nレコードを読み込む(S375)。次に、遷移番号付加部312は、画面IDが第(n−1)レコードと同一であるか否かの判断を行う(S376)。同一である場合(S376,Y)、遷移番号付加部312は、再現対象集約テーブルの第nレコードの画面遷移順に、第(n−1)レコードの画面遷移順と同じ値を設定し(S377)、同一でない場合(S376,N)、再現対象集約テーブルの第nレコードの画面遷移順に、第(n−1)レコードの画面遷移順の値+1を設定し(S378)、処理S379へ移行する。次に、遷移番号付加部312は、再現対象集約テーブルの最終レコードを処理したか否かの判断を行い、最終レコードを処理していない場合(S379,N)、処理S374へ戻り、最終レコードを処理した場合(S379,Y)、このフローは終了する。
次に、押下ボタン順付加処理について説明する。
図43は、本実施の形態に係る押下ボタン順付加処理の動作の一例を示すフローチャートである。まず、遷移番号付加部312は、再現対象集約テーブルにおけるレコードの番号を示す変数nを1に初期化し(S381)、再現対象集約テーブルの第nレコードを読み込む(S382)。次に、遷移番号付加部312は、読み込んだレコードにボタンIDが設定されているか否かの判断を行い、
設定されていない場合(S383,N)、このフローは終了する。設定されている場合(S383,Y)、遷移番号付加部312は、第nレコードの押下順にnを設定し(S384)、nを1増加させる(S385)。次に、遷移番号付加部312は、再現対象集約テーブルの最終レコードを処理したか否かの判断を行い、最終レコードを処理していない場合(S386,N)、処理S382へ戻り、最終レコードを処理した場合(S386,Y)、このフローは終了する。
なお、本実施の形態においては、ボタン押下を契機として画面遷移が行われる場合について説明したが、他の契機により画面遷移が行われる場合であっても本発明を適用することができる。
次に、データ遷移付加処理について説明する。
図44は、本実施の形態に係るデータ遷移付加処理の動作の一例を示すフローチャートである。まず、遷移番号付加部312は、再現対象集約テーブルにおける全てレコードを順(タイムスタンプの昇順)に読み込み、データID(response)、データ(response)、データID(request)、データ(request)、押下順を読み取る(S391)。次に、遷移番号付加部312は、再現対象集約テーブル内に存在するデータID(response)の値毎のデータ遷移管理テーブルAを作成し、再現データ記憶部315に格納する(S392)。
図45は、本実施の形態に係るデータ遷移管理テーブルAの内容の一例を示す図である。上述したようにデータID(response)の値毎のresponseデータ遷移管理テーブルAが作成される。ここでは、データID(response)が2種類の値(購入株価、確定株価)を持つため、2個のデータ遷移管理テーブルAが作成される。それぞれのデータ遷移管理テーブルAは、データ値と押下順の項目を持つ。データ遷移管理テーブルAにおけるデータ値は、再現対象集約テーブルにおけるデータ(response)に対応し、押下順は、再現対象集約テーブルにおける押下順に対応する。
次に、遷移番号付加部312は、データ遷移管理テーブルAにおける各レコードのデータ値として、再現対象集約テーブルにおいて対応するレコードのデータ(response)の値を設定し、データ遷移管理テーブルAにおける各レコードの押下順として、再現対象集約テーブルにおける前レコードの押下順の値を設定する(S393)。
次に、遷移番号付加部312は、各データ遷移管理テーブルAにおいて、直前のレコードのデータ値と重複するデータ値を持つレコードを取得し、その押下順を直前のレコードの押下順に追加し、取得したレコードを削除する(S394)。
次に、遷移番号付加部312は、再現対象集約テーブル内に存在したデータID(request)の値毎にデータ遷移テーブルBを作成し、再現データ記憶部315に格納する(S395)。
図46は、本実施の形態に係るデータ遷移管理テーブルBの内容の一例を示す図である。ここでは、データID(request)が2種類の値(購入株数、確定株数)を持つため、2個のデータ遷移管理テーブルBが作成される。それぞれのデータ遷移管理テーブルBは、データ値の項目を持つ。データ遷移管理テーブルBにおけるデータ値は、再現対象集約テーブルにおけるデータ(request)に対応する。
次に、遷移番号付加部312は、データ遷移管理テーブルBにおける各レコードのデータ値として、再現対象集約テーブルにおいて対応するレコードのデータ(request)の値を設定する(S396)。
次に、遷移番号付加部312は、各データ遷移管理テーブルBにおいて、直前のレコードのデータ値と重複するデータ値を持つレコードを削除し(S397)、このフローは終了する。
上述した遷移番号付加処理によれば、対象とする一連の操作において遷移した画面の順序及び操作の順序を抽出することができる。
なお、本実施の形態においては、データ(response)が変化するため、データID(response)の値毎のデータ遷移管理テーブルAにデータ値と押下順を設定したが、データ(request)が変化する場合、データID(request)の値毎のデータ遷移管理テーブルBにデータ値と押下順を設定しても良い。
次に、再現画像作成処理について説明する。
再現画像作成処理に用いる情報である画面画像雛形DB321、ボタン上書き情報DB322、データ上書き情報DB323は、予め作成され、記憶装置に格納される。
図47は、本実施の形態に係る画面画像雛形DBの内容の一例を示す表である。画面画像雛形DB321は、項目として、画面IDと画像データ所在を有する。画面画像雛形DB321における画面IDは、再現対象集約テーブルにおける画面IDに対応し、画像データ所在は、画面画像雛形データのパスを示す。画面画像雛形データは、画面IDに対応するHTMLフォームが所定の画面サイズで表示された場合の画面の画像であり、値の無い状態で予め作成され、画像データ所在に保存される。
図48は、本実施の形態に係るボタン上書き情報DBの内容の一例を示す表である。ボタン上書き情報DB322は、項目として、ボタンID、画面ID、上書き座標、上書き画像を有する。ボタン上書き情報DB322におけるボタンIDは、再現対象集約テーブルにおけるボタンIDに対応し、画面IDは、再現対象集約テーブルにおける画面IDに対応する。上書き座標は、画面IDに対応するHTMLフォームが所定の画像サイズで表示された場合のボタンの位置を示す座標(X,Y)である。上書き画像は、ボタンの位置を強調するための画像である。
図49は、本実施の形態に係るデータ上書き情報DBの内容の一例を示す表である。データ上書き情報DB323は、項目として、データID、画面ID、上書き座標、シフト座標を有する。データ上書き情報DB323におけるデータIDは、再現対象集約テーブルにおけるデータID(response)またはデータID(request)に対応し、画面IDは、再現対象集約テーブルにおける画面IDに対応する。上書き座標は、画面IDに対応するHTMLフォームが所定の画像サイズで表示された場合のデータの位置を示す座標(X,Y)である。シフト座標は、上書きするデータの位置をシフトさせるための座標の単位(X,Y)である。
なお、再現画像作成部313は、再現画像作成処理の前に、予め設定された画面サイズに基づいて、画面IDに対応するHTMLフォームを表示された画像を作成して画面画像雛形データを作成しても良い。また、再現画像作成部313は、予め設定された画面サイズに基づいて、上書き座標を算出しても良い。また、再現画像作成部313は、予め設定された画面サイズに基づいて、上書き座標及びシフト座標を算出しても良い。
図50は、本実施の形態に係る再現画像作成処理の動作の一例を示すフローチャートである。まず、再現画像作成部313は、再現対象集約テーブルを全て読み込む(S411)。次に、再現画像作成部313は、画面画像雛形DB321に基づいて、再現対象集約テーブルの各画面IDに対応する画面画像雛形データを取得し、各画面IDに対応する上書き再現画面画像データとして再現データ記憶部315に格納する(S412)。ここで、再現画像作成部313は、まず画面画像雛形DB321において画面IDに対応する画像データ所在を取得し、取得した画像データ所在から画面画像雛形データを取得する。
次に、再現画像作成部313は、再現対象集約テーブルにおけるボタンIDの全てを取得し、ボタン上書き情報DB322に基づいて、上書き再現画面画像データへ画像を上書きするボタン上書き処理を行う(S413)。ここで、再現画像作成部313は、ボタンIDをキーにしてボタン上書き情報DB322を参照することにより上書き座標と上書き画面を取得し、上書き再現画面画像データ上の上書き座標の位置に上書き画像を上書きする。
次に、再現画像作成部313は、再現対象集約テーブルの押下順の値が設定されている全てのレコードにおいて、ボタンID、画面ID、押下順、時間差を読み取り、ボタンIDをキーにしてボタン上書き情報DB322を参照することにより上書き座標を取得し、押下順の値及び時間差の値を画像として、上書き再現画面画像データ上の上書き座標の位置の近傍に上書きするデータ上書き処理を行い(S414)、このフローは終了する。
次に、データ上書き処理について説明する。
図51は、本実施の形態に係るデータ上書き処理の動作の一例を示すフローチャートである。まず、再現画像作成部313は、データ遷移管理テーブルAのレコードの番号を示す変数nを0に初期化する(S421)。次に、再現画像作成部313は、データ遷移管理テーブルAの(n+1)番目のレコードを読み込む(S422)。次に、再現画像作成部313は、データ遷移管理テーブルAとデータ上書き情報DB323に基づいてデータ座標を算出し、データ遷移管理テーブルAの押下順とデータ値を、対応する上書き再現画面画像データ上のデータ座標に上書きする(S423)。データ座標は、上書き再現画面画像データ上に配置される押下順とデータ値の座標である。ここで、再現画像作成部313は、データ遷移管理テーブルAのデータID、画面IDをキーにして、データ上書き情報DB323の上書き座標、シフト座標を取得し、(上書き座標)+(シフト座標)*nをデータ座標とする。
次に、再現画像作成部313は、nを1増加させ(S424)、データ遷移管理テーブルAの最終レコードまで処理したか否かの判断を行い、最終レコードまで処理していない場合(S425,N)、処理S422へ戻り、最終レコードまで処理した場合(S425,Y)、次の処理へ移行する。次に、再現画像作成部313は、全てのデータ遷移管理テーブルAについて処理したか否かの判断を行い、全てのデータ遷移管理テーブルAについて処理していない場合(S426,N)、処理S421へ戻って次のデータ遷移管理テーブルAについての処理を行い、全てのデータ遷移管理テーブルAについて処理した場合(S426,Y)、次の処理へ移行する。
次に、再現画像作成部313は、データ遷移管理テーブルBのレコードの番号を示す変数nを0に初期化する(S431)。次に、再現画像作成部313は、データ遷移管理テーブルBの(n+1)番目のレコードを読み込む(S432)。次に、再現画像作成部313は、データ遷移管理テーブルBとデータ上書き情報DB323に基づいてデータ座標を算出し、データ遷移管理テーブルBの押下順とデータ値を、対応する上書き再現画面画像データ上のデータ座標に上書きする(S433)。ここで、再現画像作成部313は、データ遷移管理テーブルBのデータID、画面IDをキーにして、データ上書き情報DB323の上書き座標、シフト座標を取得し、(上書き座標)+(シフト座標)*nをデータ座標とする。
次に、再現画像作成部313は、nを1増加させ(S434)、データ遷移管理テーブルBの最終レコードまで処理したか否かの判断を行い、最終レコードまで処理していない場合(S435,N)、処理S432へ戻り、最終レコードまで処理した場合(S435,Y)、次の処理へ移行する。次に、再現画像作成部313は、全てのデータ遷移管理テーブルBについて処理したか否かの判断を行い、全てのデータ遷移管理テーブルBについて処理していない場合(S436,N)、処理S431へ戻って次のデータ遷移管理テーブルBについての処理を行い、全てのデータ遷移管理テーブルBについて処理した場合(S436,Y)、このフローは終了する。
上述した再現画像生成処理によれば、対象とする一連の画面に対して、各画面における操作の内容及び順序、表示の内容及び順序を付加した画面を生成することができる。また、ボタンなどのクリックの操作であれば、フォームの画像にクリックされた位置を強調する画像、操作の順序、前の操作との時間差等を付加し、値の入力や表示を伴う操作であれば、フォームの画像の値の位置付近に値と操作の順序、前の操作との時間差等を付加することにより、オペレータは一連の操作を容易に把握することができる。
次に、再現画像表示処理について説明する。
図52は、本実施の形態に係る再現画像表示処理の動作の一例を示すフローチャートである。まず、再現画像表示部314は、再現対象集約テーブルから、各上書き再現画面画像データの画面IDに対応する画面遷移順を取得し、各上書き再現画面画像データの属性とする(S441)。次に、各上書き再現画面画像データとその属性を合わせて再現画面として表示し(S442)、このフローは終了する。
次に、再現画像表示処理により表示された再現画面の例について説明する。
図53は、本実施の形態に係る再現画面の一例を示す図である。この再現画面は、2つの上書き再現画面画像データを横に並べて表示する。2つの上書き再現画面画像データのうち、左側に表示される第1の上書き再現画面画像データは、画面画像雛形DB321に格納された第1の画面画像雛形データを元に作成され、第2の上書き再現画面画像データは、画面画像雛形DB321に格納された第2の画面画像雛形データを元に作成される。図54は、本実施の形態に係る第1の画面画像雛形データの一例を示す図である。図55は、本実施の形態に係る第2の画面画像雛形データの一例を示す図である。第1の画面画像雛形データの画面IDは、“株購入”であり、第2の画面画像雛形データの画面IDは、“取引確定”である。これらの画面画像雛形データは、上書きする前の上書き再現画面画像データである。
また、ボタン上書き処理により、第1の上書き再現画面画像データには、操作されたボタン(“更新”、“取引実行”)を指す上書き画像が上書き座標に上書きされ、第2の上書き再現画面画像データには、操作されたボタン(“CANCEL”)を指す上書き画像が上書き座標に上書きされる。
また、データ上書き処理により第1の上書き再現画面画像データには、入力または表示されたデータ(“購入株価”、“購入株数”)の値を示す画像がデータ座標に上書きされ、第2の上書き再現画面画像データには操作されたデータ(“確定株価”、“確定株数”)の値がデータ座標に上書きされる。更に、データ上書き処理により第1の上書き再現画面画像データ及び第2の上書き再現画面画像データには、ボタン押下の時間差、ボタンの押下順(1、2、3)の値がデータ座標に上書きされる。
この例においては、2つの上書き再現画面画像データを表示するとしたが、見易い画面サイズとなるように画面画像雛形データを作成し、その画面サイズに基づいて再現画面に表示する上書き再現画面画像データの数を決定しても良い。あるいは、再現画面に表示する上書き再現画面画像データの数に基づいて画面サイズを決定し、その画面サイズに合わせて、画面画像雛形DB321、ボタン上書き情報DB322、データ上書き情報DB323を作成しても良い。
上述した再現画像表示処理によれば、再現画像生成処理により生成された一連の画面と、各画面の順序を表示することができる。また、複数の上書き画面画像データを表示することにより、オペレータは画面遷移を伴う操作を容易に把握することができる。
また、本実施の形態に係る画面生成装置は、情報処理装置に容易に適用することができ、情報処理装置の性能をより高めることができる。ここで、情報処理装置には、例えばサーバ、コールセンター端末、管理者端末等が含まれ得る。
更に、画面生成装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、画面生成プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、画面生成装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ROMやRAM等のコンピュータに内部実装される内部記憶装置、CD−ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
なお、取得ステップは、実施の形態における通信データ取得処理と通信データ抽出処理に対応する。生成ステップは、実施の形態における画面データ生成処理、再現対象データ集約処理、遷移番号付加処理、再現画像作成処理に対応する。第1表示ステップは、実施の形態における画面制御処理に対応する。第2表示ステップは、実施の形態における再現画面表示処理に対応する。また、取得部は、実施の形態におけるHTTPメッセージ観測部111、HTTP解析部112、通信データ抽出部121に対応する。生成部は、実施の形態における画面データ生成部122、再現対象データ集約部311、遷移番号付加部312、再現画像作成部313に対応する。
また、第1データは、実施の形態におけるHTMLフォームに対応する。また、第1画面は、実施の形態におけるWeb画面に対応する。第2データは、実施の形態における応答入力、引数データ、ボタンの種類に対応する。第2画面は、実施の形態における上書き再現画面画像データに対応する。第3データは、実施の形態における応答入力埋め込み処理により生成されたHTMLフォーム、上書き再現画面画像データに対応する。第4データは、実施の形態における画像データに対応する。操作は、実施の形態におけるボタンのクリックや値の入力に対応する。操作順序は、実施の形態における押下順、データ遷移管理テーブルA、データ遷移管理テーブルBに対応する。画面順序は、実施の形態における画面遷移順に対応する。画面順序は、実施の形態における画面遷移順に対応する。操作位置を強調する図形は、実施の形態における上書き画像に対応する。操作位置は、実施の形態における上書き座標に対応する。操作位置の近傍は、実施の形態におけるデータ座標に対応する。
(付記1) サーバとの通信に基づいてクライアントに表示された画面の生成を該クライアントと異なるコンピュータに実行させる画面生成プログラムであって、
前記サーバから前記クライアントに送信されたデータであってユーザによる操作を受け付ける第1画面を前記クライアントに表示させるためのデータである第1データと、前記クライアントから前記サーバに送信されたデータであって前記クライアントに表示された第1画面で受け付けられた操作を示すデータである第2データとを取得する取得ステップと、
前記取得ステップにより取得された第1データ及び第2データに基づいて、第2データに基づく情報である操作情報を、第1画面に付加してなる第2画面を表示させるための第3データを生成する生成ステップと
をコンピュータに実行させる画面生成プログラム。
(付記2) 付記1に記載の画面生成プログラムにおいて、
前記取得ステップは更に、前記サーバから前記クライアントに送信されたデータであって前記クライアントに画面を表示させるための第4データを取得することを特徴とする画面生成プログラム。
(付記3) 付記1または付記2に記載の画面生成プログラムにおいて、
前記取得ステップは、前記サーバと前記クライアントの間の通信がキャプチャされたデータであるキャプチャデータから、第1データと第2データを取得することを特徴とする画面生成プログラム。
(付記4) 付記3に記載の画面生成プログラムにおいて、
前記取得ステップは、前記クライアントから前記サーバへのメッセージであるリクエストメッセージと前記サーバから前記クライアントへのメッセージであるレスポンスメッセージとを前記キャプチャデータから抽出し、抽出したレスポンスメッセージから第1データを取得し、該レスポンスメッセージの直後のリクエストメッセージから第2データを取得することを特徴とする画面生成プログラム。
(付記5) 付記4に記載の画面生成プログラムにおいて、
前記取得ステップは、前記サーバのエラーログにおけるエラー内容を取得し、前記メッセージの中から該エラー内容に対応するメッセージを抽出し、前記メッセージに関連するメッセージを抽出し、該メッセージから第1データと第2データを取得することを特徴とする画面生成プログラム。
(付記6) 付記4または付記5に記載の画面生成プログラムにおいて、
第1データは、フォームであり、第2データは、リクエストメッセージの引数であることを特徴とする画面生成プログラム。
(付記7) 付記6に記載の画面生成プログラムにおいて、
前記生成ステップは、前記フォームに前記引数の値の記述を追加したものを第3データとすることを特徴とする画面生成プログラム。
(付記8) 付記1乃至付記7のいずれかに記載の画面生成プログラムにおいて、
更に、画面を表示させるためのデータであって第3データを含む複数の画面データの中から、ユーザインタフェースからの指示に基づいて画面データの選択を行い、該選択された画面データに基づく画面の表示を行う第1表示ステップをコンピュータに実行させることを特徴とする画面生成プログラム。
(付記9) 付記8に記載の画面生成プログラムにおいて、
前記第1表示ステップは、前記選択された画面データに基づく画面に加えて、前記サーバのエラーログにおけるエラー内容のうち第2データに対応するエラー内容を表示することを特徴とする画面生成プログラム。
(付記10) 付記8または付記9に記載の画面生成プログラムにおいて、
前記第1表示ステップは、前記選択された画面データに基づく画面に加えて、予め記憶された第2データに関する情報のうち前記入力内容に対応する情報を表示することを特徴とする画面生成プログラム。
(付記11) 付記1乃至付記7のいずれかに記載の画面生成プログラムにおいて、
前記操作情報は、前記操作の順序である操作順序を含むことを特徴とする画面生成プログラム。
(付記12) 付記11に記載の画面生成プログラムにおいて、
前記生成ステップは、第1画面において操作が行われた位置である操作位置を第2データに基づいて取得し、第1画面の前記操作位置に基づく位置に前記操作情報を付加した画面を第2画面とすることを特徴とする画面生成プログラム。
(付記13) 付記11または付記12に記載の画面生成プログラムにおいて、
前記生成ステップは、複数の第1画面が前記クライアントに表示された順序である画面順序を複数の第1データに基づいて取得すると共に、複数の第1画面に対応する第3データを生成し、
更に、複数の第3データと前記画面順序を示す情報とを対応付けて表示する第2表示ステップをコンピュータに実行させることを特徴とする画面生成プログラム。
(付記14) 付記11乃至付記13のいずれかに記載の画面生成プログラムにおいて、
第2データが前記操作位置のクリックを示す場合、前記操作情報は前記操作位置を強調する図形を含み、前記生成ステップは、第1画面の前記操作位置の近傍に前記操作情報を付加した画面を第2画面とすることを特徴とする画面生成プログラム。
(付記15) 付記11乃至付記14のいずれかに記載の画面生成プログラムにおいて、
第2データが前記操作位置への値の入力または表示を示す場合、前記操作情報は該値を含み、前記生成ステップは、第1画面の前記操作位置の近傍に前記操作情報を付加した画面を第2画面とすることを特徴とする画面生成プログラム。
(付記16) 付記11乃至付記15のいずれかに記載の画面生成プログラムにおいて、
前記生成ステップは更に、第2データに基づいて前記操作の時刻を取得し、前記操作の時刻に関する情報を前記操作情報に含めることを特徴とする画面生成プログラム。
(付記17) 付記16に記載の画面生成プログラムにおいて、
前記操作の時刻に関する情報は、対象とする操作と該操作の直前の操作との時間差であることを特徴とする画面生成プログラム。
(付記18) 付記11乃至付記17のいずれかに記載の画面生成プログラムにおいて、
前記生成ステップは、所定の画面サイズの第1画面の画像を取得すると共に、前記第1データ及び前記所定の画面サイズに基づく前記操作位置を取得し、前記第1画面の画像と前記操作情報と前記操作位置とに基づいて第2画面の画像を生成し、該画像を第3データとすることを特徴とする画面生成プログラム。
(付記19) サーバとの通信に基づいてクライアントに表示された画面の生成を行う画面生成装置であって、
前記サーバから前記クライアントに送信されたデータであってユーザによる操作を受け付ける第1画面を前記クライアントに表示させるためのデータである第1データと、前記クライアントから前記サーバに送信されたデータであって前記クライアントに表示された第1画面で受け付けられた操作を示すデータである第2データとを取得する取得部と、
前記取得部により取得された第1データ及び第2データに基づいて、第2データに基づく情報である操作情報を、第1画面に付加してなる第2画面を表示させるための第3データを生成する生成部と
を備える画面生成装置。
(付記20) サーバとの通信に基づいてクライアントに表示された画面の生成を該クライアントと異なる情報処理装置で実行する画面生成方法であって、
前記サーバから前記クライアントに送信されたデータであってユーザによる操作を受け付ける第1画面を前記クライアントに表示させるためのデータである第1データと、前記クライアントから前記サーバに送信されたデータであって前記クライアントに表示された第1画面で受け付けられた操作を示すデータである第2データとを取得する取得ステップと、
前記取得ステップにより取得された第1データ及び第2データに基づいて、第2データに基づく情報である操作情報を、第1画面に付加してなる第2画面を表示させるための第3データを生成する生成ステップと
を実行する画面生成方法。
1 クライアント、2 Webサーバ、3 ネットワークスイッチ、4,7 画面再現装置、5 操作ログ記憶部、6 エラーログ記憶部、111 HTTPメッセージ観測部、112 HTTP解析部、113 通信データ記憶部、121 通信データ抽出部、122 画面データ生成部、123 画面部品ファイル記憶部、124 画面データ記憶部、132 画面付加情報記憶部、133 画面制御部、134 画面表示部、151 タイムスタンプ表示部、152 画面データ表示部、153 最初画面移動ボタン、154 後退ボタン、155 前進ボタン、156 最後画面移動ボタン、157 画面スライダ、158 エラーログ表示部、159 入力支援メッセージ表示部、161 操作−HTMLフォーム対応付けテーブル、162 エラー内容−応答入力引数対応付けテーブル、163 応答入力支援メッセージテーブル、311 再現対象データ集約部、312 遷移番号付加部、313 再現画像作成部、314 再現画像表示部、315 再現データ記憶部、321 画面画像雛形DB、322 ボタン上書き情報DB、323 データ上書き情報DB。