(57)【特許請求の範囲】
【請求項１】
ウェブブラウザに出力されたページから行う一連の操作毎に、前記ウェブブラウザからウェブサーバに送信されたリクエストデータであってページを示す情報を含むリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を複数記憶する記憶部と、
前記記憶部に記憶された通信履歴のリクエストデータに含まれる情報であって当該リクエストデータを送信した元のページを示す情報を参照して、リクエストデータの送信によって前記ウェブブラウザに出力されるページの遷移関係を示す情報を生成する生成部と、
前記生成部によって生成された遷移関係に分岐点がある場合に、前記分岐点につながる当該遷移関係の末端となるページのリクエストデータに対応するレスポンスデータと最終のリクエストデータに対応するレスポンスデータとに基づいて、前記一連の操作を再現する再現部と
を有することを特徴とする中継装置。
【請求項２】
前記生成部は、前記リクエストデータに含まれる当該リクエストデータを送信した元のページを示すリファラ情報を参照して、当該リファラ情報と前記リクエストデータより前のリクエストデータに示されたページを示す情報とが一致するリクエストデータを取得し、取得したリクエストデータから当該リファラ情報を含むリクエストデータに接続させることで、前記遷移関係を示す情報を生成する
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
操作によってアクセスされるページを識別する情報と当該ページが表示される画面位置を示す属性情報とを対応付けて記憶する属性記憶部と、
前記属性記憶部にデータが存在する場合、前記生成部によって生成された遷移関係の分岐点となるページのリクエストデータに対応するレスポンスデータを検索し、検索したレスポンスデータに含まれたページの画面構成の中から、前記属性記憶部によって記憶された属性情報と一致する属性値を持つ、ページを識別する情報を取得し、該取得した情報が示すページのリクエストデータから当該属性情報に対応付けられた情報が示すページのリクエストデータに接続することで、前記遷移関係を修正する修正部と
をさらに有することを特徴とする請求項１又は請求項２に記載の中継装置。
【請求項４】
前記修正部は、さらに、前記属性記憶部に記憶された属性情報を判定し、当該属性情報が親画面を示す属性である場合、直前の分岐点となるページのリクエストデータから当該属性情報に対応付けられた情報が示すページのリクエストデータに接続し、当該属性情報が全体画面を示す属性である場合、前記遷移関係のルートから辿って最初の分岐点となるページのリクエストデータから当該属性情報に対応付けられた情報が示すページのリクエストデータに接続することで、前記遷移関係を修正する
ことを特徴とする請求項３に記載の中継装置。
【請求項５】
前記遷移関係を示す情報は、ツリー構造である
ことを特徴とする請求項１に記載の中継装置。
【請求項６】
前記ページを識別する情報は、ＵＲＬである
ことを特徴とする請求項３に記載の中継装置。
【請求項７】
コンピュータに、
ウェブブラウザに出力されたページから行う一連の操作毎に、前記ウェブブラウザからウェブサーバに送信されたリクエストデータであってページを示す情報を含むリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を複数記憶する記憶部に記憶された通信履歴のリクエストデータに含まれる情報であって当該リクエストデータを送信した元のページを示す情報を参照して、リクエストデータの送信によって前記ウェブブラウザに出力されるページの遷移関係を示す情報を生成し、
前記生成した処理によって生成された遷移関係に分岐点がある場合に、前記分岐点につながる当該遷移関係の末端となるページのリクエストデータに対応するレスポンスデータと最終のリクエストデータに対応するレスポンスデータとに基づいて、前記一連の操作を再現する
処理を実行させる情報再現プログラム。
【請求項８】
コンピュータが、
ウェブブラウザに出力されたページから行う一連の操作毎に、前記ウェブブラウザからウェブサーバに送信されたリクエストデータであってページを示す情報を含むリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を複数記憶する記憶部に記憶された通信履歴のリクエストデータに含まれる情報であって当該リクエストデータを送信した元のページを示す情報を参照して、リクエストデータの送信によって前記ウェブブラウザに出力されるページの遷移関係を示す情報を生成し、
前記生成した処理によって生成された遷移関係に分岐点がある場合に、前記分岐点につながる当該遷移関係の末端となるページのリクエストデータに対応するレスポンスデータと最終のリクエストデータに対応するレスポンスデータとに基づいて、前記一連の操作を再現する
ことを実行することを特徴とする情報再現方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置などに関する。
【背景技術】
【０００２】
近年、ウェブサービスを業務において利用する際、ユーザの操作効率を向上させる技術が求められている。
【０００３】
例えば、ユーザの操作効率を向上させる１つの技術として、ウェブサービスを受けるためのウェブブラウザを実行するユーザ端末とウェブサーバとの中継装置が、ウェブブラウザとウェブサーバとの通信メッセージを通信ログとして記憶する。そして、中継装置は、通信ログのうちリクエストに含まれるパラメータ名及び値が直前のレスポンスに含まれているか否かを判定する。そして、中継装置は、直前のレスポンスに含まれていれば、この直前のレスポンスからリクエストに利用するパラメータ名及び値として取り出し、リクエストを再現するためのリクエスト定義を行う。一方、中継装置は、直前のレスポンスに含まれていなければ、リクエストに含まれているパラメータ名及び値をそのまま設定するリクエスト定義を行う。そして、中継装置は、ウェブブラウザから再現開始要求を取得すると、リクエスト定義に基づき一連のリクエストをウェブサーバに順次送信し、一連のリクエストのうち最後のリクエストに対するレスポンスをウェブブラウザに返信する。この結果、中継装置は、ユーザを介さないで、一連のリクエストを順次生成し、ウェブサーバに送信するので、ユーザの操作効率を向上させる。
【０００４】
また、ユーザの操作効率を向上させる別の技術として、ウェブブラウザとウェブサーバとの中継装置が、一連の通信メッセージを記録したメッセージ履歴に基づき、所定の情報を再現するためのメッセージの遷移関係を解析する。そして、中継装置は、得られたメッセージの遷移関係に基づいて、所定の情報が再現されるまでに必要なメッセージを生成し、生成したメッセージを順次送付して目的の情報を再現する。この結果、中継装置は、所定の情報を再現するまでのユーザの操作効率を向上させる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１９００３３号公報
【特許文献２】特開２０１０−５５４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、操作対象のウェブページがフレームを用いていた場合、フレームを含むウェブページを正確に再現できないという問題がある。
【０００７】
例えば、従来の１つの技術では、中継装置は、通信ログから作成されたリクエスト定義に基づき、一連のリクエストのうち最後のリクエストに対するレスポンスをウェブブラウザに返信することで、ユーザの操作を再現する。しかしながら、中継装置は、最後の通信メッセージに対応するフレームを再現するだけであるので、通信ログのリクエストの中にフレームを呼び出すタグが含まれている場合、当該タグによって呼び出された他のフレームを再現できない。
【０００８】
また、従来の別の技術では、中継装置は、メッセージの遷移関係に基づいて、所定の情報が再現されるまでに必要なメッセージを生成し、生成したメッセージを順次送付することで、目的の情報を再現する。しかしながら、中継装置は、目的の情報を再現するだけであるので、通信ログのリクエストの中にフレームを呼び出すタグが含まれている場合、当該タグによって呼び出された他のフレームを再現できない。
【０００９】
開示の技術は、操作対象のウェブページがフレームを用いていた場合、フレームを含む画面を正確に再現することを目的とする。
【課題を解決するための手段】
【００１０】
１つの側面では、中継装置は、ウェブブラウザに出力されたページから行う一連の操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を複数記憶する記憶部と、前記記憶部に記憶された通信履歴のリクエストデータに含まれる情報であって当該リクエストデータを送信した元のページを示す情報を参照して、リクエストデータの送信によって前記ウェブブラウザに出力されるページの遷移関係を生成する生成部と、前記生成部によって生成された遷移関係の分岐点となるページのリクエストデータと当該遷移関係の末端となるページのリクエストデータとに基づいて、前記一連の操作を再現する再現部とを有する。
【発明の効果】
【００１１】
本願の開示する中継装置の一つの態様によれば、操作対象のウェブページがフレームを用いていた場合、フレームを含む画面を正確に再現できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係るウェブ中継システムの構成を示す機能ブロック図である。
【図２】図２は、実施例１に係る通信記録テーブルのデータ構造の一例を示す図である。
【図３】図３は、実施例１に係る遷移関係テーブルに記憶されるノードの情報の一例を示す図である。
【図４Ａ】図４Ａは、実施例１に係る遷移関係生成処理を説明するための図（１）である。
【図４Ｂ】図４Ｂは、実施例１に係る遷移関係生成処理を説明するための図（２）である。
【図５】図５は、実施例１に係る再現処理を説明するための図である。
【図６】図６は、実施例１に係る遷移関係生成処理の手順を示すフローチャートである。
【図７】図７は、実施例１に係る再現処理の手順を示すフローチャートである。
【図８Ａ】図８Ａは、ツリー構造が実際の画面構成と異なる場合を説明する図（１）である。
【図８Ｂ】図８Ｂは、ツリー構造が実際の画面構成と異なる場合を説明する図（２）である。
【図９】図９は、実施例２に係るウェブ中継システムの構成を示す機能ブロック図である。
【図１０】図１０は、実施例２に係るターゲット属性テーブルのデータ構造の一例を示す図である。
【図１１】図１１は、実施例２に係る遷移関係修正処理を説明するための図である。
【図１２】図１２は、実施例２に係る遷移関係修正処理の手順を示すフローチャートである。
【図１３Ａ】図１３Ａは、ツリー構造が実際の画面構成と異なる別の場合を説明する図（１）である。
【図１３Ｂ】図１３Ｂは、ツリー構造が実際の画面構成と異なる別の場合を説明する図（２）である。
【図１４】図１４は、実施例３に係るウェブ中継システムの構成を示す機能ブロック図である。
【図１５】図１５は、実施例３に係る遷移関係修正処理を説明するための図である。
【図１６】図１６は、実施例３に係る遷移関係修正処理の手順を示すフローチャートである。
【図１７】図１７は、実施例４に係るウェブ中継システムの構成を示す機能ブロック図である。
【図１８】図１８は、実施例４に係るフレームＵＲＬテーブルのデータ構造の一例を示す図である。
【図１９】図１９は、実施例４に係る遷移関係接合処理を説明するための図である。
【図２０】図２０は、情報再現プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する中継装置、情報再現プログラム及び情報再現方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、ウェブブラウザとウェブサーバとの間の通信を中継する中継装置に適用した場合を示す。しかし、本実施例によりこの発明が限定されるものではなく、本発明は、中継装置以外であってもウェブサーバに送信するリクエストデータを処理する情報処理装置にも適用可能である。
【実施例１】
【００１４】
［実施例１に係るウェブ中継システムの構成］
図１は、本実施例１に係るウェブ中継システム９の構成を示す機能ブロック図である。図１に示すように、ウェブ中継システム９は、中継装置１と、ウェブブラウザ２と、ウェブサーバ３とを有する。中継装置１は、ウェブブラウザ２とウェブサーバ３との間の通信を中継する。ウェブブラウザ２は、ウェブサービスを利用する、パーソナルコンピュータなどのユーザ端末である。ウェブサーバ３は、ウェブサービスを実施する。なお、ウェブ中継システム９では、ウェブサーバ３を中継装置１及びウェブブラウザ２と同一のネットワーク上に適用した場合であっても良いし、ウェブサーバ３を外部装置として異なるネットワーク上に適用した場合であっても良い。
【００１５】
中継装置１は、制御部１０及び記憶部２０を有する。制御部１０は、リクエスト記録部１１と、リクエスト送信部１２と、レスポンス送信部１３と、レスポンス記録部１４と、汎用処理部１５と、通信記録解析部１６と、再現部１７とを有する。通信記録解析部１６は、通信記録を解析する。さらに、通信記録解析部１６は、遷移関係生成部１６ａを有する。また、制御部２０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路又はＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路に対応する。なお、遷移関係生成部１６ａは、生成部の一例として挙げられる。また、再現部１７は、再現部の一例として挙げられる。
【００１６】
記憶部２０は、通信記録テーブル２１及び遷移関係テーブル２２を有する。記憶部２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（flash  memory）などの半導体メモリ素子、又は、ハードディスク、光ディスクなどの記憶装置に対応する。なお、通信記録テーブル２１は、記憶部の一例として挙げられる。
【００１７】
リクエスト記録部１１は、所定の業務の一連の操作毎にウェブブラウザ２から送信されたリクエストデータを順次通信記録テーブル２１に記録する。ここで、所定の業務とは、例えば、在庫検索に関する業務であったり、出張旅費の精算に関する業務であったりするが、ウェブブラウザ２に一連の操作画面を順次遷移させる業務であれば良い。リクエスト送信部１２は、ウェブブラウザ２から送信されたリクエストデータをウェブサーバ３に送信する。
【００１８】
レスポンス記録部１４は、ウェブサーバ３から送信された、リクエストデータに対応するレスポンスデータを順次通信記録テーブル２１に記録する。レスポンス送信部１３は、ウェブサーバ３から送信された、リクエストデータに対応するレスポンスデータをウェブブラウザ２に送信する。このとき、レスポンス送信部１３は、送信対象のレスポンスデータに対するリクエストデータが中継装置１を経由するように、当該レスポンスデータに該当するスクリプトを埋め込む。これにより、ウェブブラウザ２側の環境に対して特殊なソフトウェアが組み込まれなくても、レスポンス記録部１４は、ウェブブラウザ２からのリクエストデータを記録することができるようになる。
【００１９】
ここで、通信記録テーブル２１のデータ構造について、図２の上段及び図２の下段を参照しながら説明する。図２は、通信記録テーブル２１のデータ構造の一例を示す図である。図２の下段に示すように、通信記録テーブル２１は、識別番号２１ａ、処理識別子２１ｂ、ユーザ識別子２１ｃ、及びＵＲＬ２１ｄ毎に、リクエストデータ２１ｅとレスポンスデータ２１ｆとリファラ２１ｇとを対応付けて記憶する。処理識別子２１ｂは、業務に対応する処理識別子を示す。ユーザ識別子２１ｃは、操作するユーザの識別子を示す。ＵＲＬ２１ｄは、ウェブサーバ３で実行すべき処理のＵＲＬ（Uniform  Resource  Locator）を示す。リクエストデータ２１ｅは、ユーザ識別子２１ｃのユーザからＵＲＬ２１ｄに対してリクエストする際のリクエストのデータを示す。レスポンスデータ２１ｆは、リクエストに対するレスポンスのデータを示す。リファラ２１ｇは、ページの遷移を管理するために用いられる情報であって遷移する前のページのＵＲＬを示し、ヘッダ情報の１つとしてリクエストデータ２１ｅに設定される。なお、ＵＲＬ２１ｄは、処理が実行された後のページに対応するので、以降、「ページ」と同じ意味で扱うものとする。
【００２０】
通信記録テーブル２１の一例として、図２の上段のような操作の流れにおいて、操作に関わる通信記録が記録された場合について説明する。図２の上段の例では、リクエスト１（ｒｅｑ１）からリクエスト８（ｒｅｑ８）までのリクエストデータが操作順に並んでいる。ｒｅｑ１について、ＵＲＬ（ページと同義）は「Ａ」である。次のリクエストであるｒｅｑ２について、ＵＲＬは「Ｘ」であり、リクエストデータには、リファラ（Ｒｅｆｅｒｅｒ）が「Ａ」を指している。次のリクエストであるｒｅｑ３について、ＵＲＬは「Ｙ」であり、リクエストデータには、Ｒｅｆｅｒｅｒが「Ｘ」を指している。次のリクエストであるｒｅｑ４について、ＵＲＬは「Ｒ１」であり、リクエストデータには、Ｒｅｆｅｒｅｒが「Ｘ」を指している。次のリクエストであるｒｅｑ５について、ＵＲＬは「Ｂ」であり、リクエストデータには、Ｒｅｆｅｒｅｒが「Ｘ」を指している。次のリクエストであるｒｅｑ６について、ＵＲＬは「Ｃ」であり、リクエストデータには、Ｒｅｆｅｒｅｒが「Ｙ」を指している。次のリクエストであるｒｅｑ７について、ＵＲＬは「Ｚ」であり、リクエストデータには、Ｒｅｆｅｒｅｒが設定されていない。そして、次のリクエストであるｒｅｑ８について、ＵＲＬは「Ｒ２」であり、リクエストデータには、Ｒｅｆｅｒｅｒが「Ｚ」を指している。
【００２１】
かかる場合に、識別番号２１ａが「２」である場合、処理識別子２１ｂとして「Ｆ４」、ユーザ識別子２１ｃとして「ＵＳＥＲ１」、ＵＲＬ２１ｄとして「Ｘ」を記憶している。さらに、リクエストデータ２１ｅとして「ＵＳＥＲＩＤ＝ｘｘｘ＆ＰＡＳＳ＝ｙｙｙ」、レスポンスデータ２１ｆとして「＜ｈｔｍｌ＞・・・＜／ｈｔｍｌ＞」、リファラ２１ｇとして「Ａ」を記憶している。
【００２２】
図１に戻って、汎用処理部１５は、通信記録テーブル２１のリクエストデータを、同一の業務において一連の処理が汎用化できるように変換する。一例として、汎用処理部１５は、認証で用いられるユーザＩＤやパスワードのように、ユーザに問い合わせるリクエストパラメータをパラメータ化する。例えば、同一の業務において同じ操作のリクエストデータが通信記録テーブル２１に少なくとも２ユーザ分記憶されているとする。汎用処理部１５は、通信記録テーブル２１に記憶された同一操作のリクエストデータを比較し、リクエストデータに含まれるリクエストパラメータについて、差分を取得する。そして、汎用処理部１５は、差分があるリクエストパラメータの値が直前のレスポンスデータに含まれるか否かを判定する。そして、汎用処理部１５は、差分があるリクエストパラメータの値が直前のレスポンスデータに含まれていないと判定する場合には、ユーザに問い合わせるパラメータであるとして、当該リクエストパラメータを抽出する。そして、汎用処理部１５は、抽出したリクエストパラメータの値を例えば変数に置き換えたリクエストデータに変換する。一方、汎用処理部１５は、差分があるリクエストパラメータの値が直前のレスポンスデータに含まれていると判定する場合には、当該リクエストパラメータの値がウェブサーバ３によって作成されたものであると判定する。そして、汎用処理部１５は、リクエストパラメータの値を例えばＸＰａｔｈで表したリクエストデータに変換する。そして、汎用処理部１５は、通信記録テーブル２１の該当するリクエストデータを、変換したリクエストデータに置き換える。
【００２３】
一例として、図２の下段に示すように、識別番号２１ａが「２」である場合のリクエストデータ２１ｅには、ユーザ識別子２１ｃが「ＵＳＥＲ１」であるユーザのユーザＩＤ及びパスワードが記憶されている。かかる場合に、汎用処理部１５は、リクエストパラメータ「ＵＳＥＲ」、「ＰＡＳＳ」を抽出し、抽出したリクエストパラメータの値を例えば変数を意味する「％％」に置き換えたリクエストデータ「ＵＳＥＲＩＤ＝％％＆ＰＡＳＳ＝％％」に変換する。
【００２４】
なお、汎用処理部１５による処理は、上記した方法に限定されず、リクエストパラメータを汎用化する方法であればいかなる方法であっても良い。また、以降では、通信記録テーブル２１のリクエストデータは汎用化されているものする。
【００２５】
遷移関係生成部１６ａは、リファラを参照してリクエストデータの列を解析し、リクエストデータのＵＲＬに対応するページの遷移関係を表すツリー構造を、リクエストデータ間で生成する。例えば、遷移関係生成部１６ａは、通信記録テーブル２１に記憶された通信記録を用いて、リクエストデータのリファラと当該リクエストデータより前のリクエストデータのＵＲＬとが一致するか否かを判定する。そして、遷移関係生成部１６ａは、一致すると判定した場合、リファラと一致するＵＲＬを持つリクエストデータから当該リファラを持つリクエストデータに接続することで、ツリー構造を生成する。すなわち、遷移関係生成部１６ａは、各ノードをリクエストデータとしてツリー構造を生成する。そして、遷移関係生成部１６ａは、生成したツリー構造を遷移関係テーブル２２に記録する。なお、生成されたツリー構造の分岐点は、ページの遷移が分かれるので、画面を分割するフレーム（ページ）の呼び出しに関するリクエストデータとなる。
【００２６】
ここで、遷移関係テーブル２２に記憶されるノードの情報の例について、図３を参照して説明する。図３は、実施例１に係る遷移関係テーブルに記憶されるノードの情報の一例を示す図である。
【００２７】
図３に示すように、遷移関係テーブル２２は、ノードの情報として、ノード毎に識別番号、ノード種別及び子ノードリストを対応付けて記憶する。識別番号は、ノードの識別番号を示し、通信記録テーブル２１のリクエストデータ２１ｅに対応付けられた識別番号２１ａに対応する。ノード種別は、ノードがルート、中間、葉のいずれかであるかを示す情報である。子ノードリストは、識別番号で示されるノードの子ノードへのリンクポインタのリストであり、子ノードの識別番号が設定される。図３の例では、識別番号が「１」のノードである場合、ノード種別として「ルートノード」、子ノードリストとして「２」、「３」を記憶している。
【００２８】
また、遷移関係生成部１６ａが実行する、遷移関係生成処理について、図４Ａ及び図４Ｂを参照して、具体的に説明する。図４Ａ及び図４Ｂは、実施例１に係る遷移関係生成処理を説明するための図である。図４Ａに示すように、操作に応じてウェブブラウザ２の画面に表示されるページが遷移する様子が表されている。加えて、操作に応じてウェブブラウザ２からウェブサーバ３に送信されるリクエストデータの遷移が表されている。リクエストデータ１（ｒｅｑ１）を送信することで画面にページＡが表示される。ページＡ内のリンクをクリックすることに応じて、リクエストデータ２（ｒｅｑ２）を送信することで画面にページＢが表示される。ｒｅｑ２のリファラには、ページＡが設定される。続いて、リクエストデータ３（ｒｅｑ３）を送信することで画面の下側にページＣが表示される。ｒｅｑ３のリファラには、ページＢが設定される。リクエストデータ４（ｒｅｑ４）を送信することで画面の上側にページＤが表示される。ｒｅｑ４のリファラには、ページＢが設定される。さらに、ページＣ内のリンクをクリックすることに応じて、リクエストデータ５（ｒｅｑ５）を送信することで画面の下側にページＥが表示される。ｒｅｑ５のリファラには、ページＣが設定される。
【００２９】
図４Ａのようなページの遷移の下で、遷移関係生成部１６ａは、遷移関係生成処理を実行する。図４Ｂに示すように、遷移関係生成部１６ａは、リクエストのリファラとリクエストより前のリクエストのＵＲＬとが一致するか否かを判定し、一致すれば、リファラと一致するＵＲＬを持つリクエストデータからリファラを持つリクエストデータに接続する。ここでは、ｒｅｑ２について、ｒｅｑ２のリファラがＡであり、ｒｅｑ２のリファラがｒｅｑ２より前のｒｅｑ１のＵＲＬ（ページＡ）と一致するので、遷移関係生成部１６ａはｒｅｑ１からｒｅｑ２に接続する。また、ｒｅｑ３について、ｒｅｑ３のリファラがＢであり、ｒｅｑ３のリファラがｒｅｑ３より前のｒｅｑ２のＵＲＬ（ページＢ）と一致するので、遷移関係生成部１６ａはｒｅｑ２からｒｅｑ３に接続する。さらに、ｒｅｑ４について、ｒｅｑ４のリファラがＢであり、ｒｅｑ４のリファラがｒｅｑ４より前のｒｅｑ２のＵＲＬ（ページＢ）と一致するので、遷移関係生成部１６ａはｒｅｑ２からｒｅｑ４に接続する。同様に、ｒｅｑ５についても、遷移関係生成部１６ａはｒｅｑ３からｒｅｑ５に接続する。このように、遷移関係生成部１６ａは、遷移関係生成処理を実行することで、リクエストデータをノードとするツリー構造を生成する。
【００３０】
図１に戻って、再現部１７は、リクエストデータのツリー構造の分岐点となるページのリクエストデータと当該ツリー構造の末端となるページのリクエストデータとに基づいて、一連の操作を再現する。ここで、再現される際に最終画面として必要なものは、フレーム（ページ）の呼び出しとそのフレームに表示されているコンテンツの情報である。そこで、再現部１７は、ツリー構造の中の、フレームの呼び出しをする分岐点のノードと、最終のコンテンツが表される末端のノードとに基づいて、最終画面を再現する。
【００３１】
例えば、再現部１７は、通信記録テーブル２１に記憶された通信記録に基づいて、識別番号２１ａの昇順にリクエストデータをウェブサーバ３に対して送信し、リクエストデータに対応するレスポンスデータを受信し、受信したレスポンスデータを保持する。そして、再現部１７は、遷移関係生成部１６ａによって生成されたリクエストデータのツリー構造の中に分岐があるか否かを判定する。そして、再現部１７は、分岐があると判定した場合、ツリー構造の末端のノードから親ノードを辿り、分岐が発生するノードのレスポンスデータを、保持したレスポンスデータの中から取得する。また、再現部１７は、分岐が発生するノードにつながる、ツリー構造の末端のノードのレスポンスデータを、保持したレスポンスデータの中から取得する。そして、再現部１７は、分岐が発生するノードのレスポンスデータに基づいて、末端のノードのレスポンスデータを埋め込み、レスポンスデータとして一時的に保持する。そして、再現部１７は、ツリー構造の中に分岐がないと判定した場合、最終のノードに対応するレスポンスデータと一時的に保持したレスポンスデータを合わせたレスポンスデータをウェブブラウザ２に送信する。
【００３２】
再現部１７が実行する、再現処理について、図５を参照して、具体的に説明する。図５は、実施例１に係る再現処理を説明するための図である。図５に示すように、リクエストデータのツリー構造が表されている。かかるツリー構造では、リクエストデータ２（ｒｅｑ２）が分岐点のノードであり、対応するレスポンスデータがフレーム（ページ）の呼び出しをする。また、リクエストデータ４（ｒｅｑ４）及びリクエストデータ５（ｒｅｑ５）がそれぞれ末端のノードであり、それぞれ対応するレスポンスデータにコンテンツが表される。そこで、再現部１７は、分岐が発生するｒｅｑ２のレスポンスデータに基づいて、末端のｒｅｑ５及びｒｅｑ４のそれぞれのレスポンスデータを埋め込み、レスポンスデータとして一時的に保持する。そして、再現部１７は、最終のｒｅｑが持つレスポンスデータと一時的に保持したレスポンスデータを合わせたレスポンスデータをウェブブラウザ２に送信する。これにより、再現部１７は、画面上のフレーム（ページ）が分割される場合であっても、すなわちフレーム呼び出しがあった場合であっても、フレーム（ページ）を含む最終画面を正確に再現できる。
【００３３】
［遷移関係生成処理の手順］
次に、遷移関係生成処理の手順について、図６を参照して説明する。図６は、実施例１に係る遷移関係生成処理の手順を示すフローチャートである。なお、通信記録解析部１６は、通信記録の解析要求を受け取ったものとする。
【００３４】
通信記録の解析要求を受け取った通信記録解析部１６は、遷移関係生成処理を実行する遷移関係生成部１６ａを呼び出す。すると、遷移関係生成部１６ａは、通信記録テーブル２１に記憶された通信記録を記録順に並べ替える（ステップＳ１１）。すなわち、遷移関係生成部１６ａは、識別番号２１ａが昇順となるように、通信記録を並べ替える。
【００３５】
そして、遷移関係生成部１６ａは、先頭ノードの通信記録を読み出す（ステップＳ１２）。続いて、遷移関係生成部１６ａは、次ノードの通信記録を読み出す（ステップＳ１３）。
【００３６】
そして、遷移関係生成部１６ａは、次ノードが読み出せたか否かを判定する（ステップＳ１４）。次ノードが読み出せたと判定した場合（ステップＳ１４；Ｙｅｓ）、遷移関係生成部１６ａは、読み出した次ノードのリファラ情報と直前のノードのＵＲＬが一致するか否かを判定する（ステップＳ１５）。
【００３７】
読み出した次ノードのリファラ情報と直前のノードのＵＲＬが一致すると判定した場合（ステップＳ１５；Ｙｅｓ）、遷移関係生成部１６ａは、直前のノードから次ノードに接続する（ステップＳ１６）。そして、遷移関係生成部１６ａは、さらに次ノードの通信記録を読み出すべく、ステップＳ１３に移行する。
【００３８】
一方、読み出した次ノードのリファラ情報と直前のノードのＵＲＬが一致しないと判定した場合（ステップＳ１５；Ｎｏ）、遷移関係生成部１６ａは、リファラ情報と一致するＵＲＬを持つノードまで、親ノードの方向に遡る。そして、遷移関係生成部１６ａは、遡った先のノードから次ノードに接続する（ステップＳ１７）。そして、遷移関係生成部１６ａは、さらに次ノードの通信記録を読み出すべく、ステップＳ１３に移行する。
【００３９】
ステップＳ１４では、次ノードが読み出せなかったと判定した場合（ステップＳ１４；Ｎｏ）、遷移関係生成部１６ａは、遷移関係生成処理を終了する。
【００４０】
［再現処理の手順］
次に、再現処理の手順について、図７を参照して説明する。図７は、実施例１に係る再現処理の手順を示すフローチャートである。
【００４１】
まず、再現部１７は、所定業務の再現指示があったか否かを判定する（ステップＳ２１）。所定業務の再現指示がなかったと判定した場合（ステップＳ２１；Ｎｏ）、再現部１７は、所定業務の再現指示があるまで待つ。一方、所定業務の再現指示があったと判定した場合（ステップＳ２１；Ｙｅｓ）、再現部１７は、再現指示があった所定業務のリクエストデータが存在するか否かを、通信記録テーブル２１の通信記録に基づいて判定する（ステップＳ２２）。
【００４２】
所定業務のリクエストデータが存在すると判定した場合（ステップＳ２２；Ｙｅｓ）、再現部１７は、当該リクエストデータをウェブサーバ３へ送信する（ステップＳ２３）。そして、再現部１７は、ウェブサーバ３からレスポンスデータを受信し（ステップＳ２４）、受信したレスポンスデータを保持する。そして、再現部１７は、次のリクエストデータの処理をすべく、ステップＳ２２に移行する。
【００４３】
所定業務のリクエストデータが存在しないと判定した場合（ステップＳ２２；Ｎｏ）、再現部１７は、遷移関係テーブル２２に基づいて、ツリー構造中に分岐があるか否かを判定する（ステップＳ２５）。ツリー構造中に分岐があると判定した場合（ステップＳ２５；Ｙｅｓ）、再現部１７は、ツリー構造の末端のノードから親ノードの方向に遡り、分岐が発生するノードのレスポンスデータを、保持したレスポンスデータの中から取得する（ステップＳ２６）。そして、再現部１７は、取得した分岐ノードのレスポンスデータを解析する（ステップＳ２７）。
【００４４】
続いて、再現部１７は、分岐につながる、ツリー構造の末端のノードのレスポンスデータを、保持したレスポンスデータの中から集める（ステップＳ２８）。そして、再現部１７は、分岐ノードの解析結果に基づいて、集めたレスポンスデータを埋め込み、レスポンスデータとして一時的に保持する（ステップＳ２９）。そして、再現部１７は、分岐ノード以降のノードをツリー構造から削除し（ステップＳ３０）、他の分岐の処理を行うべく、ステップＳ２５に移行する。
【００４５】
一方、ツリー構造中に分岐がないと判定した場合（ステップＳ２５；Ｎｏ）、再現部１７は、最終のノードに対応するレスポンス結果をウェブブラウザ２に返す（ステップＳ３１）。すなわち、再現部１７は、最終のノードに対応するレスポンスデータと一時的に保持したレスポンスデータとを合わせたレスポンスデータをウェブブラウザ２に送信する。そして、再現部１７は、再現処理を終了する。
【００４６】
［実施例１の効果］
上記実施例１によれば、通信記録テーブル２１は、ウェブブラウザ２に出力されたページから行う一連の操作について、ウェブブラウザ２からウェブサーバ３に送信されたリクエストデータとウェブサーバ３から受信したレスポンスデータとを対応付けた通信履歴を複数記憶する。そして、遷移関係生成部１６ａが通信履歴のリクエストデータに含まれるリファラを参照して、リクエストデータの送信によってウェブブラウザ２に出力されるページの遷移関係を、ツリー構造を用いて生成する。そして、再現部１７は、生成したツリー構造の分岐点となるページのリクエストデータと分岐点につながる末端のページのリクエストデータとに基づいて、一連の操作を再現する。かかる構成によれば、再現部１７は、操作の再現に分岐点となるページのリクエストデータと分岐点につながる末端のページのリクエストデータを用いることにより、操作の最終画面に表されるページをすべて再現できるので、ページを複数含む画面を再現できる。
【００４７】
また、上記実施例１によれば、遷移関係生成部１６ａは、リクエストデータに含まれるリファラ情報を参照して、当該リファラ情報と当該リクエストデータより前のリクエストデータに示されたページを示すＵＲＬとが一致するリクエストデータを取得する。そして、遷移関係生成部１６ａは、取得したリクエストデータから当該リファラ情報を含むリクエストデータに接続させることで、ツリー構造を生成する。かかる構成によれば、遷移関係生成部１６ａは、ツリー構造の生成にリファラを用いることにより、ページの遷移関係を生成できるので、ツリー構造によって操作の最終画面に表されるページを確実に再現できる。
【実施例２】
【００４８】
ところで、実施例１では、中継装置１が、通信履歴のリクエストデータに含まれるリファラを参照して、リクエストデータをノードとしたツリー構造を生成し、生成したツリー構造に基づいて一連の操作を再現する場合を説明した。しかしながら、リファラを参照して生成されたツリー構造では、実際の画面構成と異なる場合がある。例えば、ツリー構造が実際の画面構成と異なる場合を、図８Ａ及び図８Ｂを参照して説明する。図８Ａ及び図８Ｂは、ツリー構造が実際の画面構成と異なる場合を説明する図である。
【００４９】
図８Ａに示すように、操作に応じてウェブブラウザ２の画面に表示されるページが遷移する様子が表されている。加えて、操作に応じてウェブブラウザ２からウェブサーバ３に送信されるリクエストデータの遷移が表されている。リクエストデータ１（ｒｅｑ１）を送信することで画面にページＡが表示される。ページＡ内のリンクをクリックすることに応じて、リクエストデータ２（ｒｅｑ２）を送信することで画面にページＢが表示される。ｒｅｑ２のリファラには、ページＡが設定される。続いて、リクエストデータ３（ｒｅｑ３）を送信することで画面の左側にページＣが表示される。ｒｅｑ３のリファラには、ページＢが設定される。リクエストデータ４（ｒｅｑ４）を送信することで画面の右上側にページＤが表示される。ｒｅｑ４のリファラには、ページＢが設定される。リクエストデータ５（ｒｅｑ５）を送信することで画面の右下側にページＥが表示される。ｒｅｑ５のリファラには、ページＢが設定される。さらに、ページＣ内のリンクをクリックすることに応じて、リクエストデータ６（ｒｅｑ６）を送信することで画面の右下側にページＦが表示される。ｒｅｑ６のリファラには、ページＣが設定される。さらに、ページＦ内のリンクをクリックすることに応じて、リクエストデータ７（ｒｅｑ７）を送信することで画面の右下側にページＧが表示される。ｒｅｑ７のリファラには、ページＦが設定される。さらに、ページＧ内のリンクをクリックすることに応じて、リクエストデータ８（ｒｅｑ８）を送信することで画面の右下側にページＨが表示される。ｒｅｑ８のリファラには、ページＧが設定される。
【００５０】
図８Ａに示すようなページの遷移の下で、遷移関係生成部１６ａは、リクエストデータのリファラを参照して、リクエストデータをノードとしたツリー構造を生成する。ここでは、図８Ｂに示すように、リクエストデータのツリー構造が生成される。ところが、生成されたリクエストデータのツリー構造には、画面構成と異なる遷移がある。具体的には、ｒｅｑ６は、ページＣ内のリンクをクリックすることに応じたリクエストであるので、リファラにはページＣが設定されている。ところが、ページＣ内のリンクをクリックすることに応じてリクエスト６を送信することで、ページＦがページＥと同じ画面右下に表示される。したがって、本来ｒｅｑ６は、破線で示したように、ページＥを表示させたｒｅｑ５からの遷移先となるところ、実線で示したようにページＣを表示させたｒｅｑ３からの遷移先となってしまう。すなわち、ｒｅｑ６は、画面構成と異なる遷移先に接続されている。
【００５１】
そこで、実施例２では、ツリー構造が実際の画面構成と異なる場合に、当該ツリー構造を修正する中継装置について説明する。
【００５２】
［実施例２に係るウェブ中継システムの構成］
図９は、実施例２に係るウェブ中継システムの構成を示す機能ブロック図である。なお、図１に示すウェブ中継システム９と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例１と実施例２とが異なるところは、中継装置１Ａの制御部１０にスクリプト追加部３１と遷移関係修正部１６ｂとを追加した点にある。また、実施例１と実施例２とが異なるところは、中継装置１Ａの制御部１０のリクエスト記録部１１をリクエスト記録部３２に変更した点にある。さらに、実施例１と実施例２とが異なるところは、記憶部２０にターゲット属性テーブル４１を追加した点にある。
【００５３】
スクリプト追加部３１は、ウェブサーバ３から送信されたレスポンスデータに、ターゲット属性を取得するスクリプトを追加する。ここで、ターゲット（ｔａｒｇｅｔ）属性とは、ページに画像などの位置を指すリンクが設定されている場合に、クリックされたリンクのリンク先のターゲットすなわちページが表示される画面の位置を指した属性である。スクリプト追加部３１は、ターゲット属性を取得するスクリプトを追加することで、追加するスクリプトにより次のリクエスト送信時に設定されるターゲット属性をリクエスト記録部３２に記録させる。
【００５４】
リクエスト記録部３２は、所定の業務の一連の操作毎にウェブブラウザ２から送信されたリクエストデータを順次通信記録テーブル２１に記録する。また、リクエスト記録部３２は、リクエストデータとは別に、ウェブブラウザ２から送信されたターゲット属性を取得し、取得したターゲット属性を後述するターゲット属性テーブル４１に記録する。
【００５５】
ここで、ターゲット属性テーブル４１のデータ構造について、図１０を参照しながら説明する。図１０は、実施例２に係るターゲット属性テーブルのデータ構造の一例を示す図である。図１０に示すように、ターゲット属性テーブル４１は、Ｎｏ４１ａとＵＲＬ４１ｂとターゲット属性４１ｃとを対応付けて記憶する。Ｎｏ４１ａは、ターゲット属性の情報を識別する識別番号を示す。ＵＲＬ４１ｂは、ページに対応するＵＲＬを示す。ターゲット属性４１ｃは、ＵＲＬ４１ｂに対応するページのターゲット属性を示す。ターゲット属性４１ｃには、例えば画面の右下を示す「Ｌｏｗｅｒ＿ｒｉｇｈｔ」や画面の左上を示す「Ｕｐｐｅｒ＿ｌｅｆｔ」などがある。なお、ターゲット属性４１ｃには、アンダーバー（＿）で始まる特別な属性、例えば「＿ｂｌａｎｋ」、「＿ｔｏｐ」、「＿ｐａｒｅｎｔ」、「＿ｓｅｌｆ」もあるが、これらについては、後述する。
【００５６】
ターゲット属性テーブル４１の一例として、Ｎｏ４１ａが「１」である場合、ＵＲＬ４１ｂとして「Ｆ」、ターゲット属性４１ｃとして「Ｌｏｗｅｒ＿ｒｉｇｈｔ」を記憶している。この一例は、図８Ａを参照すると、リクエストデータ５（ｒｅｑ５）によってページＥが表示された後、ページＣに設定されたリンクがクリックされた場合の情報である。すなわち、レスポンスデータのページＣに追加されたスクリプトが、ページ「Ｆ」のターゲット属性が「Ｌｏｗｅｒ＿ｒｉｇｈｔ」と記述してあるリンクがクリックされたと中継装置１Ａに送信する。そして、リクエスト記録部３２が、送信されたターゲット属性の情報を取得し、取得した情報をターゲット属性テーブル４１に記録する。
【００５７】
図９に戻って、遷移関係修正部１６ｂは、ターゲット属性テーブル４１にデータが存在する場合、遷移関係生成部１６ａによって生成されたツリー構造の分岐点となるページ（ＵＲＬ）のリクエストデータに対応するレスポンスデータを検索する。該当するレスポンスデータは、通信記録テーブル２１から検索される。そして、遷移関係修正部１６ｂは、検索したレスポンスデータに含まれたページの画面構成の中から、ターゲット属性テーブル４１によって記憶されたターゲット属性と一致する属性値を持つＵＲＬを取得する。そして、遷移関係修正部１６ｂは、取得したＵＲＬのリクエストデータから、当該ターゲット属性に対応付けられたＵＲＬのリクエストデータに接続することで、ツリー構造を修正する。ここでいうページの画面構成とは、例えば、フレーム（ページ）の呼び出しを示すタグ（「ｆｒａｍｅｓｅｔ」と「／ｆｒａｍｅｓｅｔ」との間のタグ）を意味する。
【００５８】
ここで、遷移関係修正部１６ｂが実行する、遷移関係修正処理について、図１１を参照して、具体的に説明する。図１１は、実施例２に係る遷移関係修正処理を説明するための図である。ここでは、図８Ａで示したページの遷移及びリクエストデータの遷移を用いて説明する。
【００５９】
図１１の上段に示すように、図８Ａで示したリクエストデータの遷移の下、遷移関係生成部１６ａは、リクエストデータのリファラを参照して、リクエストデータをノードとしたツリー構造を生成する。
【００６０】
遷移関係修正部１６ｂは、遷移関係生成部１６ａによって生成されたツリー構造の分岐点となるページ（ＵＲＬ）のリクエストデータに対応するレスポンスデータを通信記録テーブル２１から検索する。ここでは、ツリー構造の分岐点となるページはＢであるので、遷移関係修正部１６ｂは、ページＢのリクエストデータ（ｒｅｑ２）に対応するレスポンスデータを検索する。
【００６１】
そして、遷移関係修正部１６ｂは、検索したレスポンスデータに含まれたページの画面構成の中から、ターゲット属性テーブル４１によって記憶されたターゲット属性と一致する属性値を持つＵＲＬを取得する。ここでは、ページＢのレスポンスデータには、フレームの呼び出しを示すタグとして「ｆｒａｍｅ  ｓｒｃ＝“Ｅ”  ｎａｍｅ＝“Ｌｏｗｅｒ＿ｒｉｇｈｔ”」が記述されている。そして、ターゲット属性テーブル４１には、ＵＲＬ４１ｂとして「Ｆ」、ターゲット属性４１ｃとして「Ｌｏｗｅｒ＿ｒｉｇｈｔ」が記憶されている。そこで、遷移関係修正部１６ｂは、ページＢのレスポンスデータのフレーム呼び出しから、ターゲット属性テーブル４１に記憶されているターゲット属性「Ｌｏｗｅｒ＿ｒｉｇｈｔ」と一致する値を「ｎａｍｅ」の属性値に持つフレームを取得する。すると、遷移関係修正部１６ｂは、「ｆｒａｍｅ  ｓｒｃ」に指定されているＵＲＬ「Ｅ」を取得する。
【００６２】
図１１の下段に示すように、遷移関係修正部１６ｂは、取得したＵＲＬのリクエストデータから、ターゲット属性に対応付けられたＵＲＬのリクエストデータに接続することで、ツリー構造を修正する。ここでは、遷移関係修正部１６ｂは、ＵＲＬ「Ｅ」のリクエストデータ（ｒｅｑ５）から、ターゲット属性「Ｌｏｗｅｒ＿ｒｉｇｈｔ」に対応付けられたＵＲＬ「Ｆ」のリクエストデータ（ｒｅｑ６）に接続することで、ツリー構造を修正する。
【００６３】
これにより、ページＣ内のリンクをクリックすることに応じてリクエストデータ６を送信することで、ページＦがページＥと同じ画面右下に表示されるような場合であっても、ページＦのリクエストデータ６はページＥのリクエストデータ５からの遷移先となる。つまり、リクエストデータ６は、画面構成と同じ遷移先に接続される。
【００６４】
［遷移関係修正処理の手順］
次に、遷移関係修正処理の手順について、図１２を参照して説明する。図１２は、実施例２に係る遷移関係修正処理の手順を示すフローチャートである。なお、遷移関係生成部１６ａが、既に、通信記録テーブル２１に記憶された通信記録からリクエストデータをノードとしたツリー構造を生成したものとする。
【００６５】
遷移関係修正部１６ｂは、遷移関係生成部１６ａから、生成されたリクエストデータのツリー構造を受け取り、受け取ったツリー構造の先頭ノードを選択する（ステップＳ４１）。そして、遷移関係修正部１６ｂは、選択した先頭ノードから２つ以上の子ノードを持つノードまで移動する（ステップＳ４２）。
【００６６】
ここで、遷移関係修正部１６ｂは、２つ以上の子ノードを持つノードがあるか否かを判定する（ステップＳ４３）。２つ以上の子ノードを持つノードがあると判定した場合（ステップＳ４３；Ｙｅｓ）、遷移関係修正部１６ｂは、通信記録テーブル２１に記憶された通信記録から、移動先のノードのレスポンスデータを検索する（ステップＳ４４）。
【００６７】
そして、遷移関係修正部１６ｂは、ターゲット属性テーブル４１にデータがあるか否かを判定する（ステップＳ４５）。ターゲット属性テーブル４１にデータがないと判定した場合（ステップＳ４５；Ｎｏ）、遷移関係修正部１６ｂは、次の分岐ノードに移動すべく、ステップＳ４２に移行する。
【００６８】
一方、ターゲット属性テーブル４１にデータがあると判定した場合（ステップＳ４５；Ｙｅｓ）、遷移関係修正部１６ｂは、次の処理を行う。すなわち、遷移関係修正部１６ｂは、ターゲット属性テーブル４１に指定されているＵＲＬを持つノードを、レスポンスデータから確認できたＵＲＬを持つノードに接続する（ステップＳ４６）。例えば、遷移関係修正部１６ｂは、レスポンスデータに含まれたページの画面構成に、ターゲット属性テーブル４１のターゲット属性と一致する属性値がある場合、当該画面構成から、ターゲット属性と一致した属性値を持つＵＲＬを取得する。そして、遷移関係修正部１６ｂは、ターゲット属性テーブル４１に記憶されたターゲット属性に対応付けられたＵＲＬを持つノードを、取得したＵＲＬを持つノードに接続する。そして、遷移関係修正部１６ｂは、次の分岐ノードに移動すべく、ステップＳ４２に移行する。
【００６９】
ステップＳ４３では、２つ以上の子ノードを持つノードがないと判定した場合（ステップＳ４３；Ｎｏ）、遷移関係修正部１６ｂは、遷移関係修正処理を終了する。
【００７０】
［実施例２の効果］
上記実施例２によれば、ターゲット属性テーブル４１は、リンク先のページのＵＲＬと当該ページが表示される画面位置を示すターゲット属性とを対応付けて記憶する。そして、遷移関係修正部１６ｂは、ツリー構造の分岐点となるページのリクエストデータに対応するレスポンスデータを検索する。そして、遷移関係修正部１６ｂは、検索したレスポンスデータに含まれたページの画面構成の中から、ターゲット属性テーブル４１に記憶されたターゲット属性と一致する属性値を持つＵＲＬを取得する。そして、遷移関係修正部１６ｂは、取得したＵＲＬが示すページのリクエストデータから当該ターゲット属性に対応付けられたＵＲＬが示すページのリクエストデータに接続することで、ツリー構造を修正する。かかる構成によれば、遷移関係修正部１６ｂは、リファラを用いて得られたツリー構造が実際の画面構成と異なる場合であっても、ツリー構造を容易に修正できる。この結果、遷移関係修正部１６ｂは、操作の最終画面としてページを複数含む画面であっても、画面構成に準じた操作の最終画面を正確に再現できる。
【実施例３】
【００７１】
ところで、実施例１では、中継装置１が、通信履歴のリクエストデータに含まれるリファラを参照して、リクエストデータをノードとしたツリー構造を生成し、生成したツリー構造に基づいて一連の操作を再現する場合を説明した。また、実施例２では、リファラを参照して生成されたツリー構造では、実際の画面構成と異なる場合があるので、当該ツリー構造を修正する中継装置１Ａについて説明した。しかしながら、当該ツリー構造を修正しても、ツリー構造が実際の画面構成と異なる場合がある。例えば、ツリー構造が実際の画面構成と異なる別の場合を、図１３Ａ及び図１３Ｂを参照して説明する。図１３Ａ及び図１３Ｂは、ツリー構造が実際の画面構成と異なる別の場合を説明する図である。
【００７２】
図１３Ａに示すように、操作に応じてウェブブラウザ２の画面に表示されるページが遷移する様子が表されている。加えて、操作に応じてウェブブラウザ２からウェブサーバ３に送信されるリクエストデータの遷移が表されている。リクエストデータ１（ｒｅｑ１）を送信することで画面にページＡが表示される。ページＡ内のリンクをクリックすることに応じて、リクエストデータ２（ｒｅｑ２）を送信することで画面にページＢが表示される。ｒｅｑ２のリファラには、ページＡが設定される。続いて、リクエストデータ３（ｒｅｑ３）を送信することで画面の左側にページＣが表示される。ｒｅｑ３のリファラには、ページＢが設定される。リクエストデータ４（ｒｅｑ４）を送信することで画面の右側にページＤが表示される。ｒｅｑ４のリファラには、ページＢが設定される。リクエストデータ５（ｒｅｑ５）を送信することで画面の右上側にページＥが表示される。ｒｅｑ５のリファラには、ページＤが設定される。続いて、リクエストデータ６（ｒｅｑ６）を送信することで画面の左下側にページＦが表示される。ｒｅｑ６のリファラには、ページＤが設定される。さらに、ページＦ内のリンクをクリックすることに応じて、リクエストデータ７（ｒｅｑ７）を送信することで画面の右側にページＧが表示される。ｒｅｑ７のリファラには、ページＦが設定される。さらに、ページＧ内のリンクをクリックすることに応じて、リクエストデータ８（ｒｅｑ８）を送信することで画面の右側にページＨが表示される。ｒｅｑ８のリファラには、ページＧが設定される。
【００７３】
図１３Ａのようなページの遷移の下で、遷移関係生成部１６ａは、リクエストのリファラを参照して、リクエストデータをノードとしたツリー構造を生成する。ここでは、図１３Ｂのように、リクエストデータのツリー構造が生成される。ところが、生成されたリクエストデータのツリー構造には、画面構成と異なる遷移がある。具体的には、ｒｅｑ５は、遷移する前のページがＤであるので、リファラにはページＤが設定されている。また、ｒｅｑ６は、遷移する前のページがＤであるので、リファラにはページＤが設定されている。そして、ｒｅｑ７は、ページＦ内のリンクをクリックすることに応じたリクエストデータであるので、リファラにはページＦが設定されている。ところが、ページＦ内のリンクをクリックすることに応じてリクエストデータ７を送信することで、ページＧがページＥ及びページＦの親フレーム（ページＤ）と同じ画面位置に表示される。したがって、本来ｒｅｑ７は、破線で示したように、ページＤを表示させたｒｅｑ４からの遷移先となるところ、実線で示したようにページＦを表示させたｒｅｑ６からの遷移先となってしまう。また、ページＧは，ページＥとページＦの親フレームの位置に表示されているので、ページＥを表示させたｒｅｑ５及びページＦを表示させたｒｅｑ６は、不要なリクエストデータである。すなわち、ｒｅｑ５、ｒｅｑ６及びｒｅｑ７は、画面構成と異なる遷移となっている。
【００７４】
そこで、実施例３では、ツリー構造が実際の画面構成と異なる場合に、当該ツリー構造を修正する中継装置について説明する。
【００７５】
［実施例３に係るウェブ中継システムの構成］
図１４は、実施例３に係るウェブ中継システムの構成を示す機能ブロック図である。なお、図１及び図９に示すウェブ中継システム９、９Ａと同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例２と実施例３とが異なるところは、中継装置１Ａの制御部１０の遷移関係修正部１６ｂを遷移関係修正部１６ｃに変更した点にある。
【００７６】
遷移関係修正部１６ｃは、ターゲット属性テーブル４１にデータが存在する場合、ターゲット属性テーブル４１に記憶されたターゲット属性がアンダーバー（＿）で始まる特別な属性であるか否かを判定する。そして、遷移関係修正部１６ｃは、ターゲット属性がアンダーバー（＿）で始まる特別な属性である場合には、特別な属性に合わせた処理を実行する。ここで、ターゲット属性に指定可能なアンダーバー（＿）で始まる特別な属性について説明する。かかる特別な属性には、「＿ｂｌａｎｋ」、「＿ｔｏｐ」、「＿ｐａｒｅｎｔ」、「＿ｓｅｌｆ」がある。「＿ｂｌａｎｋ」は、リンク先のターゲットを新しいウィンドウに表示することを意味する。「＿ｔｏｐ」は、フレームを解消してリンク先のターゲットを画面全体に表示することを意味する。「＿ｐａｒｅｎｔ」は、リンク先のターゲットをリンク元の親フレームに表示することを意味する。「＿ｓｅｌｆ」は、リンク先のターゲットをリンク元のフレームに表示することを意味する。
【００７７】
そこで、遷移関係修正部１６ｃは、ターゲット属性が「＿ｂｌａｎｋ」又は「＿ｔｏｐ」である場合には、ターゲット属性に対応付けられたＵＲＬのリクエストデータを、最初の分岐を持つリクエストデータに接続する。リンク先のフレームが画面全体となるからである。そして、遷移関係修正部１６ｃは、最初の分岐を持つリクエストデータとターゲット属性に対応付けられたＵＲＬのリクエストデータとの間のリクエストデータをツリー構造から削除する。
【００７８】
また、遷移関係修正部１６ｃは、ターゲット属性が「＿ｐａｒｅｎｔ」である場合には、ターゲット属性に対応付けられたＵＲＬのリクエストデータを、直前の分岐を持つリクエストデータに接続する。リンク先のフレームがリンク元の親フレームとなるからである。そして、遷移関係修正部１６ｃは、直前の分岐を持つリクエストデータとターゲット属性に対応付けられたＵＲＬのリクエストデータとの間のリクエストデータをツリー構造から削除する。
【００７９】
また、遷移関係修正部１６ｃは、ターゲット属性が「＿ｓｅｌｆ」である場合には、ツリー構造の修正を何も行わない。リンク先のフレームがリンク元のフレームと変化がないからである。
【００８０】
なお、遷移関係修正部１６ｃは、ターゲット属性が特別な属性でない場合には、レスポンスデータに含まれたページの画面構成の中から、当該ターゲット属性と一致する属性値を持つＵＲＬを取得する。そして、遷移関係修正部１６ｃは、取得したＵＲＬのリクエストデータから、当該ターゲット属性に対応付けられたＵＲＬのリクエストデータに接続する。すなわち、ターゲット属性が特別な属性でない場合は、実施例２で説明した処理となる。
【００８１】
ここで、遷移関係修正部１６ｃが実行する、遷移関係修正処理について、図１５を参照して、具体的に説明する。図１５は、実施例３に係る遷移関係修正処理を説明するための図である。ここでは、図１３Ａで示したページの遷移及びリクエストデータの遷移を用いて説明する。また、ターゲット属性テーブル４１には、ＵＲＬ４１ｂとして「Ｇ」、ターゲット属性４１ｃとして「＿ｐａｒｅｎｔ」が記憶されている。
【００８２】
図１５の上段に示すように、図１３Ａで示したリクエストデータの遷移の下、遷移関係生成部１６ａは、リクエストデータのリファラを参照して、リクエストデータをノードとするツリー構造を生成する。
【００８３】
遷移関係修正部１６ｃは、ターゲット属性テーブル４１にデータが存在するので、ターゲット属性テーブル４１に記憶されたターゲット属性がアンダーバー（＿）で始まる特別な属性であるか否かを判定する。ここでは、遷移関係修正部１６ｃは、ターゲット属性テーブル４１に記憶されたターゲット属性は「＿ｐａｒｅｎｔ」であるので、特別な属性であると判定する。
【００８４】
そこで、遷移関係修正部１６ｃは、ターゲット属性が「＿ｐａｒｅｎｔ」であるので、ターゲット属性に対応付けられたＵＲＬのリクエストデータを、直前の分岐を持つリクエストデータに接続する。そして、遷移関係修正部１６ｃは、直前の分岐を持つリクエストデータとターゲット属性に対応付けられたＵＲＬのリクエストデータとの間のリクエストデータをツリー構造から削除する。ここでは、図１５の下段に示すように、遷移関係修正部１６ｃは、ターゲット属性に対応付けられたＵＲＬ「Ｇ」のリクエストデータ（ｒｅｑ７）を、直前の分岐を持つリクエストデータ（ｒｅｑ４）に接続する。そして、遷移関係修正部１６ｃは、直前の分岐を持つリクエストデータ（ｒｅｑ４）とターゲット属性に対応付けられたＵＲＬ「Ｇ」のリクエストデータ（ｒｅｑ７）との間のリクエストデータをツリー構造から削除する。図１５の上段の例では、遷移関係修正部１６ｃは、ｒｅｑ５とｒｅｑ６とをツリー構造から削除する。
【００８５】
これにより、ページＦ内のリンクをクリックすることに応じてリクエストデータ７を送信することで、ページＧがページＦの親フレーム（ページＤ）と同じ画面位置に表示されても、ページＧのリクエストデータ７はページＤのリクエストデータ４からの遷移先となる。つまり、リクエスト７は、画面構成と同じ遷移となる。
【００８６】
［遷移関係修正処理の手順］
次に、遷移関係修正処理の手順について、図１６を参照して説明する。図１６は、実施例３に係る遷移関係修正処理の手順を示すフローチャートである。なお、遷移関係生成部１６ａが、既に、通信記録テーブル２１に記憶された通信記録からリクエストデータをノードとしたツリー構造を生成したものとする。
【００８７】
遷移関係修正部１６ｃは、遷移関係生成部１６ａから、生成されたリクエストデータのツリー構造を受け取り、受け取ったツリー構造の先頭ノードを選択する（ステップＳ５１）。そして、遷移関係修正部１６ｃは、選択した先頭ノードから２つ以上の子ノードを持つノードまで移動する（ステップＳ５２）。
【００８８】
ここで、遷移関係修正部１６ｃは、２つ以上の子ノードを持つノードがあるか否かを判定する（ステップＳ５３）。２つ以上の子ノードを持つノードがあると判定した場合（ステップＳ５３；Ｙｅｓ）、遷移関係修正部１６ｃは、通信記録テーブル２１に記憶された通信記録から、移動先のノードのレスポンスデータを検索する（ステップＳ５４）。
【００８９】
そして、遷移関係修正部１６ｃは、ターゲット属性テーブル４１にデータがあるか否かを判定する（ステップＳ５５）。ターゲット属性テーブル４１にデータがないと判定した場合（ステップＳ５５；Ｎｏ）、遷移関係修正部１６ｃは、次の分岐ノードに移動すべく、ステップＳ５２に移行する。
【００９０】
一方、ターゲット属性テーブル４１にデータがある場合（ステップＳ５５；Ｙｅｓ）、遷移関係修正部１６ｃは、ターゲット属性テーブル４１に記憶されたターゲット属性が「＿ｂｌａｎｋ」又は「＿ｔｏｐ」であるか否かを判定する。（ステップＳ５６）。ターゲット属性が「＿ｂｌａｎｋ」又は「＿ｔｏｐ」である場合（ステップＳ５６；Ｙｅｓ）、遷移関係修正部１６ｃは、ターゲット属性に対応付けられたＵＲＬのノードを、ルートノードから辿って、最初の分岐を持つノードに接続する。リンク先のフレームが画面全体となるからである。そして、遷移関係修正部１６ｃは、分岐ノードからターゲット属性が指定されたノードまでを削除する（ステップＳ５７）。そして、遷移関係修正部１６ｃは、ステップＳ５２に移行する。
【００９１】
ターゲット属性が「＿ｂｌａｎｋ」又は「＿ｔｏｐ」でない場合（ステップＳ５６；Ｎｏ）、遷移関係修正部１６ｃは、ターゲット属性が「＿ｐａｒｅｎｔ」であるか否かを判定する（ステップＳ５８）。ターゲット属性が「＿ｐａｒｅｎｔ」である場合（ステップＳ５８；Ｙｅｓ）、遷移関係修正部１６ｃは、ターゲット属性に対応付けられたＵＲＬのノードを、直前の分岐を持つノードに接続する。そして、遷移関係修正部１６ｃは、分岐ノードからターゲット属性が指定されたノードまでを削除する（ステップＳ５９）。そして、遷移関係修正部１６ｃは、ステップＳ５２に移行する。
【００９２】
ターゲット属性が「＿ｐａｒｅｎｔ」でない場合（ステップＳ５８；Ｎｏ）、遷移関係修正部１６ｃは、ターゲット属性が「＿ｓｅｌｆ」であるか否かを判定する（ステップＳ６０）。ターゲット属性が「＿ｓｅｌｆ」である場合（ステップＳ６０；Ｙｅｓ）、遷移関係修正部１６ｃは、何も処理をしないで、ステップＳ５２に移行する。
【００９３】
一方、ターゲット属性が「＿ｓｅｌｆ」でない場合（ステップＳ６０；Ｎｏ）、遷移関係修正部１６ｃは、ターゲット属性テーブル４１に指定されているＵＲＬを持つノードを、レスポンスデータから確認できたＵＲＬを持つノードに接続する（ステップＳ６１）。なお、処理の具体的な内容は実施例２に示したとおりであるので、詳細な説明は省略する。そして、遷移関係修正部１６ｃは、ステップＳ５２に移行する。
【００９４】
［実施例３の効果］
上記実施例によれば、遷移関係修正部１６ｃは、ターゲット属性テーブル４１に記憶されたターゲット属性を判定する。そして、遷移関係修正部１６ｃは、ターゲット属性が親画面を示す属性である場合、直前の分岐点となるページのリクエストデータから当該ターゲット属性に対応付けられたＵＲＬが示すページのリクエストデータに接続する。そして、遷移関係修正部１６ｃは、ターゲット属性が全体画面を示す属性である場合、ツリー構造のルートから辿って最初の分岐点となるページのリクエストデータから当該ターゲット属性に対応付けられたＵＲＬが示すページのリクエストデータに接続する。かかる構成によれば、遷移関係修正部１６ｃは、リファラを用いて得られたツリー構造が実際の画面構成と異なる場合であっても、ツリー構造を容易に修正できる。この結果、遷移関係修正部１６ｃは、操作の最終画面としてページを複数含む画面であっても、画面構成に準じた操作の最終画面を正確に再現できる。
【実施例４】
【００９５】
ところで、実施例１から実施例３では、中継装置１が、通信履歴のリクエストデータに含まれるリファラを参照して、リクエストデータをノードとしたツリー構造を生成し、生成したツリー構造に基づいて一連の操作を再現する場合を説明した。しかしながら、通信履歴のリクエストデータにリファラがない場合がある。例えば、メタタグのリフレッシュによる画面更新リクエストの場合や、ＪａｖａＳｃｒｉｐｔ（登録商標）の「ｌｏｃａｔｉｏｎ．ｈｒｅｆ」による画面更新の場合である。
【００９６】
そこで、実施例４では、通信履歴のリクエストデータにリファラがない場合であっても、リファラがないリクエストデータをツリー構造に接合する中継装置１Ｃについて説明する。
【００９７】
［実施例４に係るウェブ中継システムの構成］
図１７は、実施例４に係るウェブ中継システムの構成を示す機能ブロック図である。なお、図１４に示すウェブ中継システム９Ｂと同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例３と実施例４とが異なるところは、中継装置１Ｃの制御部１０のスクリプト追加部３１をスクリプト追加部６１に変更した点にある。実施例３と実施例４とが異なるところは、中継装置１Ｃの制御部１０に遷移関係接合部６２を追加した点にある。また、実施例３と実施例４とが異なるところは、記憶部２０にフレームＵＲＬテーブル５１を追加した点にある。
【００９８】
スクリプト追加部６１は、ウェブサーバ３から送信されたレスポンスデータに、ターゲット属性を取得するスクリプトを追加する。なお、ターゲット属性の説明は、前述したので省略する。また、スクリプト追加部６１は、ウェブサーバ３から送信されたレスポンスデータに、元のＵＲＬ（ページ）を取得するスクリプトを追加する。スクリプト追加部６１は、元のＵＲＬを取得するスクリプトを追加することで、追加するスクリプトにより次のリクエスト送信時に設定される元のＵＲＬをリクエスト記録部３２に記録させる。
【００９９】
リクエスト記録部３２は、所定の業務の一連の操作毎にウェブブラウザ２から送信されたリクエストデータを順次通信記録テーブル２１に記録する。また、リクエスト記録部３２は、リクエストデータとは別に、ウェブブラウザ２から送信されたターゲット属性を取得し、取得したターゲット属性をターゲット属性テーブル４１に記録する。さらに、リクエスト記録部３２は、リクエストデータやターゲット属性情報とは別に、ウェブブラウザ２から送信された元のＵＲＬの情報を取得し、取得した元のＵＲＬの情報を後述するフレームＵＲＬテーブル５１に記録する。フレームＵＲＬテーブル５１は、リクエストデータのロード前後のフレーム（ページ）に対応するＵＲＬを記憶する。
【０１００】
ここで、フレームＵＲＬテーブル５１のデータ構造について、図１８を参照しながら説明する。図１８は、実施例４に係るターゲット属性テーブルのデータ構造の一例を示す図である。図１８に示すように、フレームＵＲＬテーブル５１は、Ｎｏ５１ａと元ＵＲＬ５１ｂとロード後ＵＲＬ５１ｃとを対応付けて記憶する。Ｎｏ５１ａは、リクエストデータにおけるロード前後のＵＲＬの情報を識別する識別番号を示す。元ＵＲＬ５１ｂは、ロード前の元のＵＲＬ（ページ）を示す。ロード後ＵＲＬ５１ｃは、ロード後のＵＲＬ（ページ）を示す。
【０１０１】
フレームＵＲＬテーブル５１の一例として、Ｎｏ５１ａが「１」である場合、元ＵＲＬ５１ｂとして「Ｃ」、ロード後ＵＲＬ５１ｃとして「Ｚ」を記憶している。また、Ｎｏ５１ａが「２」である場合、元ＵＲＬ５１ｂとして「Ｙ」、ロード後ＵＲＬ５１ｃとして「Ｒ２」を記憶している。
【０１０２】
図１７に戻って、遷移関係接合部６２は、通信記録テーブル２１のリクエストデータにリファラが含まれていない場合、フレームＵＲＬテーブル５１から、ロード後のＵＲＬ（５１ｂ）がリクエストデータのＵＲＬと一致するレコードを読み出す。そして、遷移関係接合部６２は、読み出したレコードの元のＵＲＬ（５１ｂ）を抽出する。そして、遷移関係接合部６２は、遷移関係生成部１６ａによって生成された、リクエストデータのツリー構造について、リファラが含まれていないリクエストデータを、抽出した元のＵＲＬのリクエストデータに接合する。なお、遷移関係接合部６２が実行されるタイミングは、例えば通信記録を解析する際、遷移関係生成部１６ａによってリクエストデータをノードとするツリー構造が生成された後である。
【０１０３】
ここで、遷移関係接合部６２が実行する、遷移関係接合処理について、図１９を参照して、具体的に説明する。図１９は、実施例４に係る遷移関係接合処理を説明するための図である。なお、通信記録テーブル２１のリクエストデータ７（ｒｅｑ７）が、ＵＲＬを「Ｚ」とするデータであって、リファラを含まないデータであるとする。
【０１０４】
図１９の上段に示すように、遷移関係生成部１６ａは、通信記録テーブル２１に記憶された通信記録のリクエストデータに含まれるリファラを参照して、リクエストデータをノードとしたツリー構造を生成する。ここでは、リクエストデータ１（ｒｅｑ１）からリクエストデータ６（ｒｅｑ６）までのリクエストデータのツリー構造が生成されている。また、リクエストデータ７（ｒｅｑ７）は、リファラを含まないので、リクエストデータ８（ｒｅｑ８）との間で新たなツリー構造が生成されている。
【０１０５】
このようなツリー構造の下、図１９の下段に示すように、遷移関係接合部６２は、通信記録テーブル２１のｒｅｑ７にリファラが含まれていないので、フレームＵＲＬテーブル５１を用いて、リファラが含まれていないｒｅｑ７をツリー構造に接合する。ここでは、フレームＵＲＬテーブル５１には、Ｎｏ５１ａとして「１」、元ＵＲＬ５１ｂとして「Ｃ」、ロード後ＵＲＬ５１ｃとして「Ｚ」が記憶されている。遷移関係接合部６２は、フレームＵＲＬテーブル５１から、ロード後ＵＲＬ５１ｂがｒｅｑ７のＵＲＬ「Ｚ」と一致するレコードを読み出す。そして、遷移関係接合部６２は、読み出したレコードの元ＵＲＬ５１ｂの情報「Ｃ」を抽出する。そして、遷移関係接合部６２は、生成されているツリー構造について、リファラが含まれていないｒｅｑ７を、抽出した元ＵＲＬ５１ｂの情報「Ｃ」を持つリクエストデータ（ｒｅｑ６）に接合する。
【０１０６】
［実施例４の効果］
上記実施例４によれば、遷移関係接合部６２は、リクエストデータにリファラがない場合、フレームＵＲＬテーブル５１を用いて、ツリー構造における当該リクエストデータの遷移直前のリクエストデータからリファラがないリクエストデータに接合する。これにより、遷移関係接合部６２は、リクエストデータにリファラが含まれていない場合であっても、リファラが含まれていないリクエストデータを容易にツリー構造に接合できる。この結果、中継装置１Ｃは、操作の最終画面としてページを複数含む画面であっても、画面構成に準じた操作の最終画面をさらに正確に再現できる。
【０１０７】
また、上記実施例４によれば、遷移関係接合部６２は、リクエストデータにリファラを含まない場合、フレームＵＲＬテーブル５１を用いて、リファラを含まないリクエストデータをツリー構造に接合するとして説明した。しかしながら、遷移関係接合部６２は、これに限定されず、リクエストデータにリファラを含まない場合、通信記録テーブル２１に記憶された通信履歴を用いて、リファラを含まないリクエストデータをツリー構造に接合しても良い。かかる場合、遷移関係接合部６２は、通信記録テーブル２１に記憶された通信履歴から、リファラを含まないリクエストデータの直前のリクエストデータのＵＲＬを抽出する。そして、遷移関係接合部６２は、遷移関係生成部１６ａによって生成された、リクエストデータのツリー構造について、リファラを含まないリクエストデータを、抽出したＵＲＬのリクエストデータに接合する。これにより、遷移関係接合部６２は、リクエストデータにリファラが含まれていない場合であっても、リファラが含まれていないリクエストデータを容易にツリー構造に接合できる。この結果、中継装置１Ｃは、操作の最終画面としてページを複数含む画面であっても、画面構成に準じた操作の最終画面をさらに正確に再現できる。
【０１０８】
［プログラムなど］
なお、実施例１〜４では、通信記録テーブル２１は、ＵＲＬ２１ｄおよびリファラ２１ｇを独立の項目として定義するものとして説明した。しかしながら、ＵＲＬ２１ｄおよびリファラ２１ｇは、リクエストデータ２１ｅに含まれる情報であるので、通信記録テーブル２１は、ＵＲＬ２１ｄおよびリファラ２１ｇを独立の項目として定義しないで、省略しても良い。
【０１０９】
また、中継装置１、１Ａ、１Ｂ、１Ｃは、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した通信記録解析部１６及び再現部１７などの各機能を搭載することによって実現することができる。
【０１１０】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、汎用処理部１５と通信記録解析部１６とを１個の部として統合しても良い。一方、遷移関係修正部１６ｃを、ターゲット属性が特別な属性である場合に遷移関係を修正する修正部とターゲット属性が特別な属性でない場合に遷移関係を修正する修正部とに分散しても良い。また、通信記録テーブル２１や遷移関係テーブル２２などの記憶部を中継装置１、１Ａ、１Ｂ、１Ｃの外部装置としてネットワーク経由で接続するようにしても良い。
【０１１１】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図２０を用いて、図１に示した中継装置１の制御部１０と同様の機能を有する情報再現プログラムを実行するコンピュータの一例を説明する。
【０１１２】
図２０は、情報再現プログラムを実行するコンピュータの一例を示す図である。図２０に示すように、コンピュータ１０００は、ＲＡＭ（Random  Access  Memory）１０１０と、ネットワークインタフェース装置１０２０と、ＨＤＤ１０３０と、ＣＰＵ（Central  Processing  Unit）１０４０、媒体読取装置１０５０及びバス１０６０とを有する。ＲＡＭ１０１０、ネットワークインタフェース装置１０２０、ＨＤＤ１０３０、ＣＰＵ１０４０、媒体読取装置１０５０は、バス１０６０によって接続されている。
【０１１３】
そして、ＨＤＤ１０３０には、図１に示した制御部１０と同様の機能を有する情報再現プログラム１０３１が記憶される。また、ＨＤＤ１０３０には、図１に示した通信記録テーブル２１及び遷移関係テーブル２２に対応する情報再現処理関連情報１０３２が記憶される。
【０１１４】
そして、ＣＰＵ１０４０が情報再現プログラム１０３１をＨＤＤ１０３０から読み出してＲＡＭ１０１０に展開することにより、情報再現プログラム１０３１は、情報再現プロセス１０１１として機能するようになる。そして、情報再現プロセス１０１１は、情報再現処理関連情報１０３２から読み出した情報などを適宜ＲＡＭ１０１０上の自身に割り当てられた領域に展開し、この展開したデータなどに基づいて各種データ処理を実行する。
【０１１５】
媒体読取装置１０５０は、情報再現プログラム１０３１がＨＤＤ１０３０に格納されていない場合であっても情報再現プログラム１０３１を記憶する媒体などから情報再現プログラム１０３１を読み取る。媒体読取装置１０５０には、例えばＣＤ−ＲＯＭや光ディスク装置がある。また、ネットワークインタフェース装置１０２０は、外部装置とネットワーク経由で接続する装置であり、有線、無線がある。
【０１１６】
なお、上記の情報再現プログラム１０３１は、必ずしもＨＤＤ１０３０に格納されている必要はなく、ＣＤ−ＲＯＭなどの媒体読取装置１０５０に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）などを介してコンピュータ１０００に接続される他のコンピュータ（又はサーバ）などにこのプログラムを記憶させておいても良い。この場合には、コンピュータ１０００がネットワークインタフェース装置１０２０を介してこれらからプログラムを読み出して実行する。
【０１１７】
以上の実施例１〜４を含む実施形態に関し、さらに以下の付記を開示する。
【０１１８】
（付記１）ウェブブラウザに出力されたページから行う一連の操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を複数記憶する記憶部と、
前記記憶部に記憶された通信履歴のリクエストデータに含まれる情報であって当該リクエストデータを送信した元のページを示す情報を参照して、リクエストデータの送信によって前記ウェブブラウザに出力されるページの遷移関係を生成する生成部と、
前記生成部によって生成された遷移関係の分岐点となるページのリクエストデータと当該遷移関係の末端となるページのリクエストデータとに基づいて、前記一連の操作を再現する再現部と
を有することを特徴とする中継装置。
【０１１９】
（付記２）前記生成部は、前記リクエストデータに含まれるリファラ情報を参照して、当該リファラ情報と前記リクエストデータより前のリクエストデータに示されたページを示す情報とが一致するリクエストデータを取得し、取得したリクエストデータから当該リファラ情報を含むリクエストデータに接続させることで、前記遷移関係を生成する
ことを特徴とする付記１に記載の中継装置。
【０１２０】
（付記３）操作によってアクセスされるページを示す情報と当該ページが表示される画面位置を示す属性情報とを対応付けて記憶する属性記憶部と、
前記属性記憶部にデータが存在する場合、前記生成部によって生成された遷移関係の分岐点となるページのリクエストデータに対応するレスポンスデータを検索し、検索したレスポンスデータに含まれたページの画面構成の中から、前記属性記憶部によって記憶された属性情報と一致する属性値を持つ、ページを示す情報を取得し、該取得した情報が示すページのリクエストデータから当該属性情報に対応付けられた情報が示すページのリクエストデータに接続することで、前記遷移関係を修正する修正部と
をさらに有することを特徴とする付記１又は付記２に記載の中継装置。
【０１２１】
（付記４）前記修正部は、さらに、前記属性記憶部に記憶された属性情報を判定し、当該属性情報が親画面を示す属性である場合、直前の分岐点となるページのリクエストデータから当該属性情報に対応付けられた情報が示すページのリクエストデータに接続し、当該属性情報が全体画面を示す属性である場合、前記遷移関係のルートから辿って最初の分岐点となるページのリクエストデータから当該属性情報に対応付けられた情報が示すページのリクエストデータに接続することで、前記遷移関係を修正する
ことを特徴とする付記３に記載の中継装置。
【０１２２】
（付記５）前記生成部は、さらに、前記リクエストデータにリファラ情報が含まれていない場合、前記記憶部に記憶された通信履歴を用いて、当該リクエストデータの直前のリクエストデータからリファラ情報が含まれていないリクエストデータに接続する
ことを特徴とする付記２に記載の中継装置。
【０１２３】
（付記６）コンピュータに、
ウェブブラウザに出力されたページから行う一連の操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を複数記憶する記憶部に記憶された通信履歴のリクエストデータに含まれる情報であって当該リクエストデータを送信した元のページを示す情報を参照して、リクエストデータの送信によって前記ウェブブラウザに出力されるページの遷移関係を生成し、
前記生成した処理によって生成された遷移関係の分岐点となるページのリクエストデータと当該遷移関係の末端となるページのリクエストデータとに基づいて、前記一連の操作を再現する
処理を実行させる情報再現プログラム。
【０１２４】
（付記７）コンピュータが、
ウェブブラウザに出力されたページから行う一連の操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を複数記憶する記憶部に記憶された通信履歴のリクエストデータに含まれる情報であって当該リクエストデータを送信した元のページを示す情報を参照して、リクエストデータの送信によって前記ウェブブラウザに出力されるページの遷移関係を生成し、
前記生成した処理によって生成された遷移関係の分岐点となるページのリクエストデータと当該遷移関係の末端となるページのリクエストデータとに基づいて、前記一連の操作を再現する
ことを実行することを特徴とする情報再現方法。
【符号の説明】
【０１２５】
１、１Ａ、１Ｂ、１Ｃ  中継装置
２  ウェブブラウザ
３  ウェブサーバ
９、９Ａ、９Ｂ、９Ｃ  ウェブ中継システム
１０  制御部
１１  リクエスト記録部
１２  リクエスト送信部
１３  レスポンス送信部
１４  レスポンス記録部
１５  汎用処理部
１６  通信記録解析部
１６ａ  遷移関係生成部
１６ｂ、１６ｃ  遷移関係修正部
１７  再現部
２０  記憶部
２１  通信記録テーブル
２２  遷移関係テーブル
３１、６１  スクリプト追加部
４１  ターゲット属性テーブル
５１  フレームＵＲＬテーブル
６２  遷移関係接合部
【図１】
0005948955.tif 000002
【図２】
0005948955.tif 000003
【図３】
0005948955.tif 000004
【図４Ａ】
0005948955.tif 000005
【図４Ｂ】
0005948955.tif 000006
【図５】
0005948955.tif 000007
【図６】
0005948955.tif 000008
【図７】
0005948955.tif 000009
【図８Ａ】
0005948955.tif 000010
【図８Ｂ】
0005948955.tif 000011
【図９】
0005948955.tif 000012
【図１０】
0005948955.tif 000013
【図１１】
0005948955.tif 000014
【図１２】
0005948955.tif 000015
【図１３Ａ】
0005948955.tif 000016
【図１３Ｂ】
0005948955.tif 000017
【図１４】
0005948955.tif 000018
【図１５】
0005948955.tif 000019
【図１６】
0005948955.tif 000020
【図１７】
0005948955.tif 000021
【図１８】
0005948955.tif 000022
【図１９】
0005948955.tif 000023
【図２０】
0005948955.tif 000024