(57)【特許請求の範囲】
【請求項１】
ウェブブラウザが行う操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を記憶した記憶部と、
前記記憶部に記憶された通信履歴に基づいて、セッション管理に用いられる情報が存在する前記レスポンスデータと対応付けられた通信履歴を抽出する第１の抽出部と、
前記記憶部に記憶された通信履歴に基づいて、前記リクエストデータに含まれる情報であって前記ウェブブラウザ側で出力される画面の遷移を管理するために用いられる情報を辿って得られる一連の通信履歴を抽出する第２の抽出部と、
前記第１の抽出部によって抽出された通信履歴および前記第２の抽出部によって抽出された通信履歴の和集合を用いて、前記操作を再現する再現部と
を有することを特徴とする中継装置。
【請求項２】
前記第２の抽出部によって抽出された通信履歴から、画面内に小画面を構成する際に用いられる情報が存在する前記レスポンスデータと対応付けられた通信履歴を削除し、削除した通信履歴を除いた通信履歴を抽出する第３の抽出部をさらに有し、
前記再現部は、
前記第１の抽出部によって抽出された通信履歴および前記第３の抽出部によって抽出された通信履歴の和集合を用いて、前記操作を再現する
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
コンピュータに、
ウェブブラウザが行う操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を記憶した記憶部に記憶された通信履歴に基づいて、セッション管理に用いられる情報が存在する前記レスポンスデータと対応付けられた通信履歴を抽出し、
前記記憶部に記憶された通信履歴に基づいて、前記リクエストデータに含まれる情報であって前記ウェブブラウザ側で出力される画面の遷移を管理するために用いられる情報を辿って得られる一連の通信履歴を抽出し、
２つの前記抽出する処理によって抽出された通信履歴の和集合を用いて、前記操作を再現する
処理を実行させる中継プログラム。
【請求項４】
コンピュータが
ウェブブラウザが行う操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を記憶した記憶部に記憶された通信履歴に基づいて、セッション管理に用いられる情報が存在する前記レスポンスデータと対応付けられた通信履歴を抽出し、
前記記憶部に記憶された通信履歴に基づいて、前記リクエストデータに含まれる情報であって前記ウェブブラウザ側で出力される画面の遷移を管理するために用いられる情報を辿って得られる一連の通信履歴を抽出し、
２つの前記抽出する処理によって抽出された通信履歴の和集合を用いて、前記操作を再現する
各処理を実行することを特徴とする中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置などに関する。
【背景技術】
【０００２】
コンピュータシステムにおいて、ユーザの操作などの動作履歴をもとに、システムの動作を再現する技術が開示されている。
【０００３】
ウェブシステムにおいても、ユーザの操作を再現する技術がある。ウェブシステムでは、ウェブサーバが、ウェブブラウザでの操作のもと、当該ウェブブラウザとの間でＨＴＴＰ（Hyper  Text  Transfer  Protocol）でデータのやりとりをして、該当するサービスを提供する。この際、ウェブサーバとウェブブラウザとの間に、データを中継する中継サーバが設置される場合がある。
【０００４】
かかる中継サーバは、ウェブサーバとウェブブラウザとの間の通信メッセージを通信履歴として記録し、記録した通信履歴を用いて通信を再現する。これによって、ユーザが、ウェブサーバへの操作を再現したい場合に、ウェブブラウザでのウェブサーバへの操作を再び行う代わりに、中継サーバが通信履歴を用いて通信を再現することで自動的に該当するサービスへの操作を再現できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−８４８３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、通信履歴をもとに操作を再現する際、再現に時間がかかるという問題がある。すなわち、ある検索条件の入力に対する検索結果がウェブサーバから戻されることだけを再現したい場合がある。かかる場合に、中継サーバは、単に通信履歴を用いて通信を再現すると、再現をしたい部分以外を再現する。例えば、検索条件を検索画面に含まれるフレームから入力する場合、中継サーバは、当該検索条件が入力されるフレームだけを再現すればよいが、単に通信履歴を用いて再現すると、再現したいフレーム以外の検索画面自体も再現することになる。つまり、中継サーバは不要な通信まで再現するので、再現に時間がかかってしまう。
【０００７】
開示の技術は、操作を再現する際、再現を高速に行うことを可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
１つの側面では、中継装置は、ウェブブラウザが行う操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を記憶した記憶部と、前記記憶部に記憶された通信履歴に基づいて、セッション管理に用いられる情報が存在する前記レスポンスデータと対応付けられた通信履歴を抽出する第１の抽出部と、前記記憶部に記憶された通信履歴に基づいて、前記リクエストデータに含まれる情報であって前記ウェブブラウザ側で出力される画面の遷移を管理するために用いられる情報を辿って得られる一連の通信履歴を抽出する第２の抽出部と、前記第１の抽出部によって抽出された通信履歴および前記第２の抽出部によって抽出された通信履歴の和集合を用いて、前記操作を再現する再現部とを有する。
【発明の効果】
【０００９】
本願の開示する中継装置の一つの態様によれば、操作を再現する際、再現を高速に行うことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るウェブ中継システムの構成を示す機能ブロック図である。
【図２】図２は、実施例１に係る中継装置の構成を示す機能ブロック図である。
【図３】図３は、通信記録テーブルのデータ構造の一例を示す図である。
【図４】図４は、実施例１に係る認証状態抽出処理の手順を示すフローチャートである。
【図５】図５は、実施例１に係る画面遷移抽出処理の手順を示すフローチャートである。
【図６】図６は、実施例１に係る再現抽出処理の手順を示すフローチャートである。
【図７】図７は、通信記録の具体例を示す図である。
【図８】図８は、ウェブブラウザに表示される画面遷移の具体例を示す図である。
【図９】図９は、認証状態抽出処理の具体例を示す図である。
【図１０】図１０は、画面遷移抽出処理の具体例を示す図である。
【図１１】図１１は、再現抽出処理の具体例を示す図である。
【図１２】図１２は、通信再現処理の具体例を示す図である。
【図１３】図１３は、実施例２に係る中継装置の構成を示す機能ブロック図である。
【図１４Ａ】図１４Ａは、ログイン画面の親画面のＨＴＭＬを示す図である。
【図１４Ｂ】図１４Ｂは、各小画面に対応させたＨＴＭＬを示す図である。
【図１４Ｃ】図１４Ｃは、小画面で構成された画面例を示す図である。
【図１５】図１５は、実施例２に係る小画面抽出処理の手順を示すフローチャートである。
【図１６】図１６は、通信記録の具体例を示す図である。
【図１７】図１７は、ウェブブラウザに表示される画面遷移の具体例を示す図である。
【図１８】図１８は、画面遷移抽出処理により抽出された通信記録の具体例を示す図である。
【図１９】図１９は、小画面抽出処理の具体例を示す図である。
【図２０】図２０は、再現抽出処理の具体例を示す図である。
【図２１】図２１は、通信再現処理の具体例を示す図である。
【図２２】図２２は、中継プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する中継装置、中継プログラムおよび中継方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
［実施例１に係るウェブ中継システムの構成］
図１は、本実施例１に係るウェブ中継システム９の構成を示す機能ブロック図である。図１に示すように、ウェブ中継システム９は、中継装置１と、ウェブブラウザ２と、ウェブサーバ３とを有する。中継装置１は、ウェブブラウザ２とウェブサーバ３との間の通信を中継する。ウェブブラウザ２は、ウェブサービスを利用する、パーソナルコンピュータなどのユーザ端末である。ウェブサーバ３は、ウェブサービスを実施する。なお、ウェブ中継システム９では、ウェブサーバ３を中継装置１およびウェブブラウザ２と同一のネットワーク上に適用した場合であっても良いし、ウェブサーバ３を外部装置として異なるネットワーク上に適用した場合であっても良い。
【００１３】
［実施例１に係る中継装置の構成］
図２は、本実施例１に係る中継装置の構成を示す機能ブロック図である。図２に示すように、中継装置１は、制御部１０および記憶部１１を有する。
【００１４】
制御部１０は、プロキシ部１２と、通信抽出部１３と、通信再現部１４とを有する。プロキシ部１２は、ウェブブラウザ２が行う一連の操作に関わる、ウェブブラウザ２およびウェブサーバ３間の通信データを通信履歴として記録する。さらに、プロキシ部１２は、リクエスト記録部１２１と、リクエスト送信部１２２と、レスポンス送信部１２３と、レスポンス記録部１２４とを有する。通信抽出部１３は、記録した通信履歴から再現に用いられる通信データを抽出し、抽出した通信データを記録する。さらに、通信抽出部１３は、認証状態抽出部１３１と、画面遷移抽出部１３２と、再現抽出部１３３とを有する。通信再現部１４は、再現に用いられる通信データを用いて操作を再現する。なお、制御部１０は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの集積回路またはＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの電子回路である。
【００１５】
記憶部１１は、通信記録テーブル１１１を有する。通信記録テーブル１１１は、通信履歴を記憶し、最終的に再現に用いられる通信履歴を記憶する。なお、記憶部１１は、例えば、ＲＡＭ（Random Access Memory）、フラッシュメモリ（flash memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００１６】
リクエスト記録部１２１は、ウェブブラウザ２から送信されたリクエストデータを順次通信記録テーブル１１１に記録する。リクエスト送信部１２２は、ウェブブラウザ２から送信されたリクエストデータをウェブサーバに送信する。
【００１７】
レスポンス記録部１２４は、ウェブサーバ２から送信されたリクエストデータに対応するレスポンスデータを順次通信記録テーブル１１１に記録する。レスポンス送信部１２３は、ウェブサーバ２から送信されたリクエストデータに対応するレスポンスデータをウェブブラウザ２に送信する。
【００１８】
ここで、通信記録テーブル１１１のデータ構造について、図３を参照しながら説明する。図３は、通信記録テーブル１１１のデータ構造の一例を示す図である。図３に示すように、通信記録テーブル１１１は、識別番号１１１ａ毎に、リクエストデータ１１１ｂおよびレスポンスデータ１１１ｃを対応付けて記憶する。リクエストデータ１１１ｂは、ウェブブラウザ２から送信されたリクエストに関するデータを示す。レスポンスデータ１１１ｃは、リクエストに対するレスポンスに関わるデータを示す。識別番号１１１ａは、リクエストデータ１１１ｂとレスポンスデータ１１１ｃとを対応付けた１組の通信履歴を識別する番号を示す。識別番号１１１ａは受信した時間順に割り当てられる。
【００１９】
一例として、識別番号１１１ａが「１」である場合、リクエストデータ１１１ｂとしてログイン画面を取得するリクエストデータ「GET  /login  HTTP/1.0  Host:sample.com」が記憶されている。レスポンスデータ１１１ｃとしてログイン画面を表示するレスポンスデータ「HTTP  1.0  200  OK  ・・・＜html＞ログイン画面・・・＜/html＞」が記憶されている。
【００２０】
図２に戻って、認証状態抽出部１３１は、通信記録テーブル１１１に記憶された通信履歴に基づいて、セッション管理に用いられる情報が存在するレスポンスデータ１１１ｃと対応付けられた通信履歴を、操作を再現する通信として抽出する。セッション管理に用いられる情報とは、例えば、Ｓｅｔ−Ｃｏｏｋｉｅヘッダに設定されたセッションｉｄ（identification）を指す。
【００２１】
ここで、セッションｉｄを用いた通信について説明する。セッションｉｄは、ウェブブラウザ２の操作（例えばログインやログアウト）により認証状態が変わったときにウェブサーバ３によって設定される。ウェブサーバ３によってＳｅｔ−Ｃｏｏｋｉｅヘッダに設定されたセッションｉｄがウェブブラウザ２へ送信されると、ウェブブラウザ２は、送信されたセッションｉｄを用いてセッション管理を行う。例えば、ウェブブラウザ２は、送信されたセッションｉｄをＣｏｏｋｉｅヘッダに付加したリクエストデータをウェブサーバ３へ送信する。これにより、ウェブサーバ３側では、送信されたセッションｉｄを用いて認証情報を確認できる。また、ウェブブラウザ２は、セッションｉｄを用いて認証が確認されたログイン画面後の画面にアクセスできる。このため、操作の再現を行うには、セッションｉｄを知り得るＣｏｏｋｉｅヘッダが設定された通信が最低限必要な通信と判断される。仮にＳｅｔ−Ｃｏｏｋｉｅヘッダが設定された通信を省くと、セッションｉｄを知り得ないので、再現結果が変わってしまう。すなわち、操作を省いて再現すると結果が変わってしまう通信が最低限必要な通信と判断される。そこで、認証状態抽出部１３１は、通信記録テーブル１１１に記憶された通信履歴に基づいて、Ｓｅｔ−Ｃｏｏｋｉｅヘッダに設定されたセッションｉｄが存在するレスポンスデータ１１１ｃと対応付けられた通信履歴を、操作を再現する通信として抽出する。
【００２２】
画面遷移抽出部１３２は、通信記録テーブル１１１に記憶された通信履歴に基づいて、ウェブブラウザ２側で表示される画面の遷移を管理するために用いられる情報を辿って得られる一連の通信履歴を抽出する。例えば、ＨＴＭＬ文の中に埋め込まれた画像のＵＲＬは、省いて再現しても結果に影響がないＵＲＬである。そこで、画面遷移抽出部１３２は、当該ＵＲＬを含む通信履歴を省き、省いて再現すると結果に影響がある通信履歴を、操作を再現する通信として抽出する。ここで、画面の遷移を管理するために用いられる情報とは、遷移する前の画面のＵＲＬを示すレファラー（Ｒｅｆｅｒｅｒ）を指し、リクエストデータ１１１ｂに設定される情報である。
【００２３】
具体的には、画面遷移抽出部１３２は、再現したい最後の画面に到達するまでの画面遷移を辿って得られる通信履歴を抽出する。画面遷移を辿る方法は、ウェブブラウザ２がリクエストデータのＲｅｆｅｒｅｒヘッダにＲｅｆｅｒｅｒを追加することを利用する。これを利用して、画面遷移抽出部１３２は、再現したい最後の画面にアクセスした通信履歴からＲｅｆｅｒｅｒヘッダのＵＲＬを参照し、その前にアクセスした画面の通信を特定していくことで、一連の画面遷移を辿る。一例として、画面遷移抽出部１３２は、リクエストデータに設定されたＲｅｆｅｒｅｒを参照し、該リクエストデータ以前のリクエストデータのうち、リクエスト先のＵＲＬが参照したＲｅｆｅｒｅｒと等値であるリクエストデータを選択する。そして、画面遷移抽出部１３２は、選択したリクエストデータに対応付けられた通信履歴を抽出する。
【００２４】
再現抽出部１３３は、認証状態抽出部１３１によって抽出された通信履歴および画面遷移抽出部１３２によって抽出された通信履歴を、操作を再現する通信として順序を保持したまま抽出する。例えば、再現抽出部１３３は、認証状態抽出部１３１によって抽出された通信履歴と画面遷移抽出部１３２によって抽出された通信履歴の和集合をとる。そして、再現抽出部１３３は、通信記録テーブル１１１に記憶された通信履歴のうち和集合以外の通信履歴を不要な通信として削除し、再現に不要な通信を省いた通信履歴を抽出する。
【００２５】
通信再現部１４は、通信記録テーブル１１１に記憶された通信履歴を用いて、操作を再現する。例えば、通信再現部１４は、再現抽出部１３３によって不要な通信が削除された通信記録テーブル１１１から通信履歴を読み出し、読み出した通信履歴を用いて、操作を再現する。
【００２６】
［認証状態抽出処理の手順］
次に、認証状態抽出部１３１による認証状態抽出処理の手順について、図４を参照して説明する。図４は、実施例１に係る認証状態抽出処理の手順を示すフローチャートである。なお、ウェブブラウザ２が行った一連の操作について、通信記録テーブル１１１に通信履歴が記録されているものとする。
【００２７】
まず、認証状態抽出部１３１は、通信記録テーブル１１１から通信履歴の配列Ｒ［ｎ］を取得する（ステップＳ１１）。ここでは、ｎは再現を所望する画面までの通信履歴の個数を指す。そして、認証状態抽出部１３１は、出力用の通信履歴の集合Ｓを用意する（ステップＳ１２）。
【００２８】
続いて、認証状態抽出部１３１は、配列の添え字を示すインデックスｉに初期値０を設定する（ステップＳ１３）。そして、認証状態抽出部１３１は、変数ｒに通信履歴の配列Ｒ［ｉ］を設定する（ステップＳ１４）。
【００２９】
そして、認証状態抽出部１３１は、変数ｒに設定された通信履歴のレスポンスデータにＳｅｔ−Ｃｏｏｋｉｅヘッダがあるか否かを判定する（ステップＳ１５）。Ｓｅｔ−Ｃｏｏｋｉｅヘッダがあると判定した場合（ステップＳ１５；Ｙｅｓ）、認証状態抽出部１３１は、操作を再現する通信として、集合Ｓに変数ｒを追加する（ステップＳ１６）。すなわち、Ｓｅｔ−Ｃｏｏｋｉｅヘッダがレスポンスデータにある場合には、ウェブブラウザ２の操作により認証状態が変わったことを意味する。したがって、認証状態抽出部１３１は、Ｓｅｔ−Ｃｏｏｋｉｅヘッダがある通信を、操作を再現する通信として抽出する。
【００３０】
一方、Ｓｅｔ−Ｃｏｏｋｉｅヘッダがないと判定した場合（ステップＳ１５；Ｎｏ）、認証状態抽出部１３１は、ステップＳ１７に移行する。そして、認証状態抽出部１３１は、インデックスｉに１を加算する（ステップＳ１７）。
【００３１】
続いて、認証状態抽出部１３１は、インデックスｉがｎ−１より大きいか否かを判定する（ステップＳ１８）。インデックスｉがｎ−１より大きくないと判定した場合（ステップＳ１８；Ｎｏ）、認証状態抽出部１３１は、次の通信履歴を判定すべく、ステップＳ１４に移行する。一方、インデックスｉがｎ−１より大きいと判定した場合（ステップＳ１８；Ｙｅｓ）、認証状態抽出部１３１は、集合Ｓを再現抽出部１３３に出力する（ステップＳ１９）。そして、認証状態抽出部１３１は、処理を終了する。
【００３２】
［画面遷移抽出処理の手順］
次に、画面遷移抽出部１３２による画面遷移抽出処理の手順について、図５を参照して説明する。図５は、実施例１に係る画面遷移抽出処理の手順を示すフローチャートである。なお、ウェブブラウザ２が行った一連の操作について、通信記録テーブル１１１に通信履歴が記録されているものとする。
【００３３】
まず、画面遷移抽出部１３２は、通信記録テーブル１１１から通信履歴の配列Ｒ［ｎ］を取得する（ステップＳ２１）。ここでは、ｎは再現を所望する画面までの通信履歴の個数を指す。そして、画面遷移抽出部１３２は、出力用の通信履歴の集合Ｔを用意する（ステップＳ２２）。
【００３４】
続いて、画面遷移抽出部１３２は、最後にアクセスした通信履歴の配列Ｒ［ｎ］を変数ｔに設定する（ステップＳ２３）。そして、画面遷移抽出部１３２は、配列の添え字を示すインデックスｉに最後から１つ前の通信履歴の添え字ｎ−１を設定する（ステップＳ２４）。そして、画面遷移抽出部１３２は、変数ｒに通信履歴の配列Ｒ［ｉ］を設定する（ステップＳ２５）。
【００３５】
そして、画面遷移抽出部１３２は、変数ｔのＲｅｆｅｒｅｒヘッダの値と変数ｒのリクエスト先のＵＲＬが等値であるか否かを判定する（ステップＳ２６）。変数ｔのＲｅｆｅｒｅｒヘッダの値と変数ｒのリクエスト先のＵＲＬが等値であると判定した場合（ステップＳ２６；Ｙｅｓ）、画面遷移抽出部１３２は、集合Ｔに変数ｒを追加する（ステップＳ２７）。すなわち、変数ｔのＲｅｆｅｒｅｒヘッダの値と変数ｒのリクエスト先のＵＲＬが等値である場合には、変数ｒの通信によって表示された画面から変数ｔの通信によって表示された画面に遷移したことを意味する。したがって、画面遷移抽出部１３２は、変数ｒの通信を、操作を再現する通信履歴として抽出する。
【００３６】
そして、画面遷移抽出部１３２は、変数ｔを変数ｒに更新する（ステップＳ２８）。すなわち、画面遷移抽出部１３２は、さらに、変数ｒの通信履歴から画面遷移を辿るべく、最後にアクセスした通信履歴を指す変数ｔを変数ｒに更新する。
【００３７】
一方、変数ｔのＲｅｆｅｒｅｒヘッダの値と変数ｒのリクエスト先のＵＲＬが等値でないと判定した場合（ステップＳ２６；Ｎｏ）、画面遷移抽出部１３２は、ステップＳ２９に移行する。そして、画面遷移抽出部１３２は、インデックスｉから１を減算する（ステップＳ２９）。
【００３８】
続いて、画面遷移抽出部１３２は、インデックスｉが０より小さいか否かを判定する（ステップＳ３０）。インデックスｉが０より小さくないと判定した場合（ステップＳ３０；Ｎｏ）、画面遷移抽出部１３２は、次の通信履歴を判定すべく、ステップＳ２５に移行する。一方、インデックスｉが０より小さいと判定した場合（ステップＳ３０；Ｙｅｓ）、画面遷移抽出部１３２は、集合Ｔを再現抽出部１３３に出力する（ステップＳ３１）。そして、画面遷移抽出部１３２は、処理を終了する。
【００３９】
［再現抽出処理の手順］
次に、再現抽出部１３３による再現抽出処理の手順について、図６を参照して説明する。図６は、実施例１に係る再現抽出処理の手順を示すフローチャートである。なお、ウェブブラウザ２が行った一連の操作について、通信記録テーブル１１１に通信履歴が記録されているものとする。
【００４０】
再現抽出部１３３は、認証状態抽出部１３１により抽出された通信の集合Ｓと画面遷移抽出部１３２により抽出された通信の集合Ｔを取得する。さらに、再現抽出部１３３は、通信記録テーブル１１１から通信履歴の配列Ｒ［ｎ］を取得する（ステップＳ４１）。ここでは、ｎは再現を所望する画面までの通信履歴の個数を指す。
【００４１】
そして、再現抽出部１３３は、配列の添え字を示すインデックスｉに初期値０を設定する（ステップＳ４２）。そして、再現抽出部１３３は、変数ｒに通信履歴の配列Ｒ［ｉ］を設定する（ステップＳ４３）。
【００４２】
続いて、再現抽出部１３３は、変数ｒに設定された通信履歴が集合Ｓと集合Ｔの和集合に含まれるか否かを判定する（ステップＳ４４）。通信履歴が集合Ｓと集合Ｔの和集合に含まれないと判定した場合（ステップＳ４４；Ｎｏ）、再現抽出部１３３は、変数ｒの通信履歴を配列Ｒから削除する（ステップＳ４５）。すなわち、再現抽出部１３３は、通信履歴テーブル１１１に記憶された通信履歴のうち、集合Ｓと集合Ｔの和集合に含まれない通信履歴を再現に不要な通信履歴とする。
【００４３】
一方、通信履歴が集合Ｓと集合Ｔの和集合に含まれると判定した場合（ステップＳ４４；Ｙｅｓ）、再現抽出部１３３は、インデックスｉを加算すべく、ステップＳ４６に移行する。そして、再現抽出部１３３は、インデックスｉに１を加算する（ステップＳ４６）。
【００４４】
続いて、再現抽出部１３３は、インデックスｉがｎ−１より大きいか否かを判定する（ステップＳ４７）。インデックスｉがｎ−１より大きくないと判定した場合（ステップＳ４７；Ｎｏ）、再現抽出部１３３は、次の通信履歴を判定すべく、ステップＳ４３に移行する。一方、インデックスｉがｎ−１より大きいと判定した場合（ステップＳ４７；Ｙｅｓ）、再現抽出部１３３は、通信履歴Ｒを通信記録テーブル１１１に反映する（ステップＳ４８）。そして、再現抽出部１３３は、処理を終了する。
【００４５】
［通信記録の具体例］
次に、通信記録の具体例を、図７を参照して説明する。図７は、通信記録の具体例を示す図である。図７に示すように、通信記録は、識別番号毎にリクエストデータとレスポンスデータとを対応付けて記憶されている。識別番号が大きい程、通信記録の時間が新しいことを意味する。
【００４６】
［画面遷移の具体例］
次に、図７で示した各通信履歴に対応した各画面の遷移について、図８を参照して説明する。図８は、ウェブブラウザ２に表示される画面遷移の具体例を示す図である。図８に示すように、ウェブブラウザ２は、ウェブサーバ３との間で識別番号１に対応付けられる通信を行った後、ログイン画面Ａ１を表示する。次に、ウェブブラウザ２は、ウェブサーバ３との間で識別番号２に対応付けられる通信を行った後、ログイン画面Ａ１上に「logo.gif」の画像ａ１を表示する。さらに、ウェブブラウザ２は、ウェブサーバ３との間で識別番号２に対応付けられる通信を行った後、ログイン画面Ａ１上に「info.html」の画面ａ２を表示する。次に、利用者がログイン画面Ａ１上の「ｌｏｇｉｎ」を押下し、ウェブブラウザ２が、ウェブサーバ３との間で識別番号４に対応付けられる通信を行った後、ログイン後のトップページ画面Ａ２を表示する。次に、ウェブブラウザ２は、ウェブサーバ３との間で識別番号５に対応付けられる通信を行った後、ログイン後のトップページ画面Ａ２上に「logo2.gif」の画像ａ３を表示する。さらに、利用者が「設定」を押下し、ウェブブラウザ２が、ウェブサーバ３との間で識別番号６に対応付けられる通信を行った後、設定情報ページＡ３を表示する。
【００４７】
［認証状態抽出処理の具体例］
次に、図７で示した各通信履歴を用いた認証状態抽出処理について、図９を参照して説明する。図９は、認証状態抽出処理の具体例を示す図である。図９に示すように、識別番号４および識別番号６のレスポンスデータにＳｅｔ−Ｃｏｏｋｉｅヘッダが設定されている。
【００４８】
認証状態抽出部１３１は、識別番号１から順に、識別番号に対応付けられたレスポンスデータにＳｅｔ−Ｃｏｏｋｉｅヘッダがあるか否かを判定する。ここでは、認証状態抽出部１３１は、識別番号４に対応付けられたレスポンスデータにＳｅｔ−Ｃｏｏｋｉｅヘッダｂ１があると判定する。そして、認証状態抽出部１３１は、識別番号４に対応する通信履歴を抽出する。すなわち、識別番号４では、ウェブブラウザ２の「ログイン」の操作により認証状態が変わったので、認証状態抽出部１３１は、操作を再現する通信として識別番号４に対応する通信履歴を抽出する。さらに、認証状態抽出部１３１は、識別番号６に対応付けられたレスポンスデータにＳｅｔ−Ｃｏｏｋｉｅヘッダｂ２があると判定する。そして、認証状態抽出部１３１は、識別番号６に対応する通信履歴を抽出する。すなわち、識別番号６では、ウェブブラウザ２の「設定」の押下により認証状態が変わったので、認証状態抽出部１３１は、操作を再現する通信として識別番号６に対応する通信履歴を抽出する。
【００４９】
このようにして、認証状態抽出部１３１は、セッション管理に用いられるセッションｉｄが設定された通信を、操作を再現する通信として抽出する。ここでは、認証状態抽出部１３１は、識別番号４、６の通信履歴を、操作を再現する通信として抽出する。
【００５０】
［画面遷移抽出処理の具体例］
次に、図７で示した各通信履歴を用いた画面遷移抽出処理について、図１０を参照して説明する。図１０は、画面遷移抽出処理の具体例を示す図である。図１０に示すように、画面遷移抽出部１３２は、最後の通信履歴に設定されたＲｅｆｅｒｅｒを参照し、最後の通信履歴から通信履歴を遡って、リクエスト先のＵＲＬが、参照したＲｅｆｅｒｅｒの値と等値である通信履歴を抽出する。ここでは、識別番号６の通信履歴が、最後の通信履歴であり、識別番号６のリクエストデータに設定されたＲｅｆｅｒｅｒは、「ｈｔｔｐ：//ｓａｍｐｌｅ．ｃｏｍ／ｔｏｐ」ｃ１である。
【００５１】
すると、画面遷移抽出部１３２は、識別番号６のリクエストデータに設定されたＲｅｆｅｒｅｒを参照し、リクエスト先のＵＲＬが参照したＲｅｆｅｒｅｒの値と等値である通信履歴として識別番号４の通信履歴を抽出する。識別番号４のリクエスト先のＵＲＬは、ドメインを示す「ｓａｍｐｌｅ．ｃｏｍ」ｃ３とパスを示す「／ｔｏｐ」ｃ２とから「ｓａｍｐｌｅ．ｃｏｍ／ｔｏｐ」であるので、識別番号６のリクエストデータに設定されたＲｅｆｅｒｅｒと等値である。したがって、画面遷移抽出部１３２は、識別番号４の通信履歴を、操作を再現する通信として抽出する。なお、識別番号５のリクエスト先のＵＲＬは、「ｓａｍｐｌｅ．ｃｏｍ／ｌｏｇｏ２．ｇｉｆ」であるので、識別番号６のリクエストデータに設定されたＲｅｆｅｒｅｒと等値でないので、操作を再現する通信として不要な通信であり抽出しない。
【００５２】
さらに、画面遷移抽出部１３２は、識別番号４の通信履歴に設定されたＲｅｆｅｒｅｒを参照し、識別番号４の通信履歴から通信履歴を遡って、リクエスト先のＵＲＬが参照したＲｅｆｅｒｅｒの値と等値である通信履歴を抽出する。ここでは、識別番号４のリクエストデータに設定されたＲｅｆｅｒｅｒは、「ｈｔｔｐ：//ｓａｍｐｌｅ．ｃｏｍ／ｌｏｇｉｎ」ｃ４である。
【００５３】
すると、画面遷移抽出部１３２は、識別番号４のリクエストデータに設定されたＲｅｆｅｒｅｒを参照し、リクエスト先のＵＲＬが参照したＲｅｆｅｒｅｒの値と等値である通信履歴として識別番号１の通信履歴を抽出する。識別番号１のリクエスト先のＵＲＬは、ドメインを示す「ｓａｍｐｌｅ．ｃｏｍ」ｃ６とパスを示す「／ｌｏｇｉｎ」ｃ５とから「ｓａｍｐｌｅ．ｃｏｍ／ｌｏｇｉｎ」であるので、識別番号４のリクエストデータに設定されたＲｅｆｅｒｅｒと等値である。したがって、画面遷移抽出部１３２は、識別番号１の通信履歴を、操作を再現する通信として抽出する。なお、識別番号２、３のリクエスト先のＵＲＬは、識別番号６のリクエストデータに設定されたＲｅｆｅｒｅｒと等値でないので、操作を再現する通信として不要な通信であり抽出しない。
【００５４】
このようにして、画面遷移抽出部１３２は、最後の通信履歴のＲｅｆｅｒｅｒから前の通信履歴を辿って得られる一連の通信を、操作を再現する通信として抽出する。ここでは、画面遷移抽出部１３２は、識別番号１、４、６の通信履歴を、操作を再現する通信として抽出する。
【００５５】
［再現抽出処理の具体例］
次に、図７で示した各通信履歴を用いた再現抽出処理について、図１１を参照して説明する。図１１は、再現抽出処理の具体例を示す図である。
【００５６】
再現抽出部１３３は、認証状態抽出部１３１によって抽出された通信履歴と画面遷移抽出部１３２によって抽出された通信履歴の和集合をとる。ここでは、認証状態抽出部１３１によって抽出された通信履歴が、識別番号４、６の各通信履歴である。画面遷移抽出部１３２によって抽出された通信履歴が、識別番号１、４、６の各通信履歴である。したがって、再現抽出部１３３は、識別番号１、４、６の各通信履歴を、通信履歴の和集合とする。そして、再現抽出部１３３は、通信記録テーブル１１１に記憶された通信履歴のうち和集合以外の通信履歴を削除し、再現に不要な通信を省いた通信履歴を抽出する。ここでは、再現抽出部１３３は、識別番号２、３、５の通信履歴を削除し、再現に不要な通信を省いた識別番号１、４、６の各通信履歴を抽出する。
【００５７】
このようにして、再現抽出部１３３は、認証状態抽出部１３１によって抽出された通信履歴と画面遷移抽出部１３２によって抽出された通信履歴の和集合を、操作を再現する通信として抽出する。ここでは、再現抽出部１３３は、識別番号１、４、６の通信履歴を、操作を再現する通信として抽出する。
【００５８】
［通信再現処理の具体例］
次に、図１１で抽出された各通信履歴を用いた通信再現処理について、図１２を参照して説明する。図１２は、通信再現処理の具体例を示す図である。なお、通信再現処理は、通信履歴を用いて操作を再現する際、最後の通信履歴に対応するレスポンス以外レスポンスをウェブブラウザ２に戻さない。したがって、実際に、ウェブブラウザ２が、最後から１つ前の通信履歴までのレスポンスを用いて画面を表示することはない。しかしながら、図１２では、説明の便宜上、仮にウェブブラウザ２にレスポンスを戻すとした場合に、ウェブブラウザ２側で表示する画面を利用して、通信再現処理を説明するものとする。
【００５９】
通信再現部１４は、再現抽出部１３３によって不要な通信が削除された通信記録テーブル１１１から通信履歴を読み出し、読み出した通信履歴を用いて、操作を再現する。具体的には、通信再現部１４は、識別番号１に対応付けられる通信履歴を用いて通信を再現する。ここで、仮にウェブブラウザ２にレスポンスが戻った場合、ウェブブラウザ２は、ログイン画面Ａ１を表示することになる。次に、通信再現部１４は、識別番号４に対応付けられる通信履歴を用いて通信を再現する。ここで、仮にウェブブラウザ２にレスポンスが戻った場合、ウェブブラウザ２は、ログイン後のトップページＡ２を表示することになる。つまり、「logo.gif」の画像が表示される、識別番号２に対応付けられる通信および「info.html」の画面が表示される、識別番号３に対応付けられる通信が排除されているが、これらの通信が省かれても、再現結果が変わらず、ログイン後のトップページＡ２が表示される。さらに、通信再現部１４は、識別番号６に対応付けられる最後の通信履歴を用いて通信を再現する。ここで、ウェブブラウザ２にレスポンスが戻ると、ウェブブラウザ２は、設定情報ページＡ３を表示する。つまり、「logo2.gif」の画像が表示される、識別番号５に対応付けられる通信が排除されているが、この通信が省かれても、再現結果が変わらず、設定情報ページＡ３が表示される。
【００６０】
このようにして、通信再現部１４は、通信履歴を用いて操作を再現する際に、操作を省くと再現結果が変わってしまう通信を再現する。言い換えると、通信再現部１４は、操作を省いて再現すると再現結果が変わってしまう通信以外は再現しないようにする。これにより、通信再現部１４は、通信履歴を全て使用して再現する場合と比較して、高速に再現することが可能となる。
【００６１】
［実施例１の効果］
上記実施例１によれば、認証状態抽出部１３１は、通信記録テーブル１１１に記憶された通信履歴に基づいて、セッション管理に用いられるＳｅｔ−Ｃｏｏｋｉｅヘッダが存在するレスポンスデータと対応付けられた通信履歴を抽出する。また、画面遷移抽出部１３２は、通信記録テーブル１１１に記憶された通信履歴に基づいて、リクエストデータに含まれる情報であってウェブブラウザ２側で表示される画面の遷移を管理するために用いられるＲｅｆｅｒｅｒヘッダを辿って得られる一連の通信履歴を抽出する。そして、通信再現部１４は、認証状態抽出部１３１によって抽出された通信履歴および画面遷移抽出部１３２によって抽出された通信履歴の和集合を用いて、操作を再現する。かかる構成によれば、中継装置１は、操作を省いて再現すると再現結果に影響がある通信履歴、すなわち、レスポンスデータにＳｅｔ−Ｃｏｏｋｉｅヘッダが存在する通信履歴を抽出する。また、中継装置１は、ＨＴＭＬ文の中に再現結果に影響がないＵＲＬを含む通信履歴を省くように、リクエストデータのＲｅｆｅｒｅｒヘッダを辿って得られる一連の通信履歴を抽出する。これにより、中継装置１は、操作を再現する際、操作を省いても再現結果に影響がない通信履歴を省くので、高速に再現処理を行うことができる。
【実施例２】
【００６２】
ところで、実施例１に係る中継装置１では、再現結果に影響がない通信履歴として、例えばＨＴＭＬ文の中に埋め込まれた画像のＵＲＬを含む通信履歴を、操作を省く通信として排除するようにした。しかしながら、中継装置１は、これに限定されず、再現結果に影響がない通信履歴として、さらに、小画面の構成を記述するだけの親画面の通信履歴を、操作を省く通信として排除するようにしても良い。そこで、実施例２では、再現結果に影響がない通信履歴として、小画面の構成を記述するだけの親画面の通信履歴を、操作を省く通信として排除する中継装置１Ａについて説明する。
【００６３】
［実施例２に係る中継装置の構成］
図１３は、実施例２に係る中継装置の構成を示す機能ブロック図である。なお、図２に示す中継装置１と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例１と実施例２とが異なるところは、通信抽出部１３に小画面抽出部２０１を追加した点にある。また、実施例１と実施例２とが異なるところは、再現抽出部１３３を再現抽出部１３３Ａに変更した点にある。
【００６４】
小画面抽出部２０１は、画面遷移抽出部１３２によって抽出された通信履歴から、フレーム（小画面）の構成を記述するだけの画面（親画面）の通信履歴を削除する。すなわち、小画面の構成を記述するだけの親画面のＨＴＭＬは、小画面を配置することを宣言しているにすぎないので、親画面の通信を不要とする。ここで、図１４Ａ〜図１４Ｃを参照して、小画面の構成を記述するだけの親画面の通信が不要であることを説明する。
【００６５】
図１４Ａは、ログイン画面の親画面のＨＴＭＬを示す図である。図１４Ｂは、各小画面に対応させたＨＴＭＬを示す図である。図１４Ｃは、小画面で構成された画面例を示す図である。図１４Ａに示すように、ログイン画面の親画面のＨＴＭＬには、小画面を構成する「ｆｒａｍｅｓｅｔ」タグが設定されている。そして、「ｆｒａｍｅｓｅｔ」タグ内に、小画面として、タイトル画面を示す「／ｔｉｔｌｅ.ｈｔｍｌ」、リンク画面を示す「／ｌｉｎｋ．ｈｔｍｌ」およびログイン画面を示す「／ｌｏｇｉｎ」が設定されている。すなわち、図１４Ａで示すＨＴＭＬは、親画面がタイトル画面とリンク画面とログイン画面とで配置されることを宣言している。そして、図１４Ｂに示す各小画面に対応させたＨＴＭＬにより、図１４Ｃに示す各小画面の内容で構成された画面が表示される。そうすると、図１４Ａで示す親画面のＨＴＭＬは、小画面の構成を記述するだけのＨＴＭＬとなるため、親画面の通信を省略しても画面遷移には影響しない。そこで、通信履歴のレスポンスＨＴＭＬに「ｆｒａｍｅｓｅｔ」タグがあり、「ｆｒａｍｅ  ｓｒｃ」の値が次のリクエスト先を指している場合、この「ｆｒａｍｅｓｅｔ」タグがある通信を親画面と判断し、不要な通信として排除する。
【００６６】
再現抽出部１３３Ａは、認証状態抽出部１３１によって抽出された通信履歴および小画面抽出部２０１によって抽出された通信履歴を、再現に必要な通信として順序を保持したまま抽出する。例えば、再現抽出部１３３Ａは、認証状態抽出部１３１によって抽出された通信履歴と小画面抽出部２０１によって抽出された通信履歴の和集合をとる。そして、再現抽出部１３３Ａは、通信記録テーブル１１１に記憶された通信履歴のうち和集合以外の通信履歴を不要な通信として削除し、再現に不要な通信を省いた通信履歴を抽出する。
【００６７】
［小画面抽出処理の手順］
次に、小画面抽出部２０１による小画面抽出処理の手順について、図１５を参照して説明する。図１５は、実施例２に係る小画面抽出処理の手順を示すフローチャートである。なお、ウェブブラウザ２が行った一連の操作について、通信記録テーブル１１１に通信履歴が記録されているものとする。また、画面遷移抽出部１３２によって該当する通信履歴が抽出されたものとする。
【００６８】
まず、小画面抽出部２０１は、画面遷移抽出部１３２によって抽出された通信の集合Ｔを画面遷移抽出部１３２から取得する（ステップＳ５１）。ここでは、通信の集合Ｔに属する通信履歴は、ｎ個あるものとする。小画面抽出部２０１は、配列の添え字を示すインデックスｉに集合Ｔの最後の通信履歴を指すｎ−１を設定する（ステップＳ５２）。
【００６９】
続いて、小画面抽出部２０１は、変数ｓに通信履歴の配列Ｔ［ｉ］を設定する（ステップＳ５３）。そして、小画面抽出部２０１は、変数ｓのレスポンスデータがＨＴＭＬ文書であり、「ｆｒａｍｅｓｅｔ」タグが含まれるか否かを判定する（ステップＳ５４）。なお、小画面抽出部２０１は、レスポンスデータがＨＴＭＬ文書であるか否かを、レスポンスデータに「Ｃｏｎｔｅｎｔ＿Ｔｙｐｅ：ｔｅｘｔ／ｈｔｍｌ」が設定されているか否かで判定する。
【００７０】
レスポンスデータがＨＴＭＬ文書であり、「ｆｒａｍｅｓｅｔ」タグが含まれると判定した場合（ステップＳ５４；Ｙｅｓ）、小画面抽出部２０１は、レスポンスデータの「ｆｒａｍｅｓｅｔ」タグで囲まれた各ｆｒａｍｅタグのｓｒｃ属性のＵＲＬ値を集合Ｆに格納する（ステップＳ５５）。そして、小画面抽出部２０１は、インデックスｍに集合Ｔの最後の通信履歴を指すｎ−１を設定する（ステップＳ５６）。
【００７１】
続いて、小画面抽出部２０１は、変数ｔに通信履歴の配列Ｔ［ｍ］を設定する（ステップＳ５７）。そして、小画面抽出部２０１は、変数ｔのリクエスト先のＵＲＬが集合Ｆに含まれ、且つ変数ｔのＲｅｆｅｒｅｒヘッダの値が変数ｓのリクエスト先のＵＲＬと等値であるか否かを判定する（ステップＳ５８）。リクエスト先のＵＲＬが集合Ｆに含まれ、且つ変数ｔのＲｅｆｅｒｅｒヘッダの値が変数ｓのリクエスト先のＵＲＬと等値であると判定した場合（ステップＳ５８；Ｙｅｓ）、小画面抽出部２０１は、集合Ｔから変数ｓの通信履歴を削除する（ステップＳ５９）。すなわち、小画面抽出部２０１は、変数ｓで表される通信を変数ｔで表される通信の親画面であると判断し、不要な通信として排除する。そして、小画面抽出部２０１は、インデックスｉを減算すべく、ステップＳ６２に移行する。
【００７２】
一方、リクエスト先のＵＲＬが集合Ｆに含まれない、または変数ｔのＲｅｆｅｒｅｒヘッダの値が変数ｓのリクエスト先のＵＲＬと等値でないと判定した場合（ステップＳ５８；Ｎｏ）、小画面抽出部２０１は、インデックスｍから１を減算する（ステップＳ６０）。そして、小画面抽出部２０１は、インデックスｍが０より小さいか否かを判定する（ステップＳ６１）。インデックスｍが０以上と判定した場合（ステップＳ６１；Ｎｏ）、小画面抽出部２０１は、次の通信履歴を選択すべく、ステップＳ５７に移行する。
【００７３】
インデックスｍが０より小さいと判定した場合（ステップＳ６１；Ｙｅｓ）、小画面抽出部２０１は、インデックスｉから１を減算する（ステップＳ６２）。そして、小画面抽出部２０１は、インデックスｉが０より小さいか否かを判定する（ステップＳ６３）。インデックスｉが０以上であると判定した場合（ステップＳ６３；Ｎｏ）、小画面抽出部２０１は、次の「ｆｒａｍｅｓｅｔ」タグを探索すべく、ステップＳ５３に移行する。
【００７４】
一方、インデックスｉが０より小さいと判定した場合（ステップＳ６３；Ｙｅｓ）、小画面抽出部２０１は、集合Ｔを再現抽出部１３３Ａに出力する（ステップＳ６４）。そして、小画面抽出部２０１は、処理を終了する。
【００７５】
［通信記録の具体例］
次に、通信記録の具体例を、図１６を参照して説明する。図１６は、通信記録の具体例を示す図である。図１６に示すように、通信記録は、識別番号毎にリクエストデータとレスポンスデータとを対応付けて記憶されている。識別番号が大きい程、通信記録の時間が新しいことを意味する。
【００７６】
［画面遷移の具体例］
次に、図１６で示した各通信履歴に対応した各画面の遷移について、図１７を参照して説明する。図１７は、ウェブブラウザ２に表示される画面遷移の具体例を示す図である。図１７に示すように、ウェブブラウザ２は、ウェブサーバ３との間で識別番号１に対応付けられる通信を行った後、親画面Ｂ１を表示する。次に、ウェブブラウザ２は、ウェブサーバ３との間で識別番号２に対応付けられる通信を行った後、親画面Ｂ１上にタイトル画面ｄ１を表示する。次に、ウェブブラウザ２は、ウェブサーバ３との間で識別番号３に対応付けられる通信を行った後、親画面Ｂ１上にリンク画面ｄ２を表示する。次に、ウェブブラウザ２は、ウェブサーバ３との間で識別番号４に対応付けられる通信を行った後、親画面Ｂ１上にログイン画面ｄ３を表示する。次に、ウェブブラウザ２は、ウェブサーバ３との間で識別番号５に対応付けられる通信を行った後、ログイン画面ｄ３上に「ｌｏｇｏ．ｇｉｆ」の画像ｄ４を表示する。次に、ウェブブラウザ２は、ウェブサーバ３との間で識別番号６に対応付けられる通信を行った後、ログイン画面ｄ３上に「ｉｎｆｏ．ｈｔｍｌ」の画面ｄ５を表示する。
【００７７】
さらに、利用者がログイン画面ｄ３上の「ｌｏｇｉｎ」を押下し、ウェブブラウザ２が、ウェブサーバ３との間で識別番号７に対応付けられる通信を行った後、ログイン後の親画面Ｂ２を表示する。次に、ウェブブラウザ２は、ウェブサーバ３との間で識別番号８に対応付けられる通信を行った後、ログイン後の親画面Ｂ２上にタイトル画面ｄ６を表示する。次に、ウェブブラウザ２は、ウェブサーバ３との間で識別番号９に対応付けられる通信を行った後、ログイン後の親画面Ｂ２上にリンク画面ｄ７を表示する。さらに、ウェブブラウザ２は、ウェブサーバ３との間で識別番号１０に対応付けられる通信を行った後、ログイン後の親画面Ｂ２上にログイン後メニュー画面ｄ８を表示する。
【００７８】
［画面遷移抽出処理により抽出された通信記録の具体例］
次に、図１６で示した各通信履歴を用いた画面遷移抽出処理について、図１８を参照して説明する。図１８は、画面遷移抽出処理の具体例を示す図である。図１８に示すように、画面遷移抽出部１３２は、最後の通信履歴に設定されたＲｅｆｅｒｅｒを参照し、最後の通信履歴から通信履歴を遡って、リクエスト先のＵＲＬが、参照したＲｅｆｅｒｅｒの値と等値である通信履歴を抽出する。ここでは、画面遷移抽出部１３２は、識別番号１０の最後の通信履歴から通信履歴を遡って、リクエスト先のＵＲＬが、識別番号１０における参照したＲｅｆｅｒｅｒの値と等値である識別番号７の通信履歴を抽出する。また、画面遷移抽出部１３２は、識別番号７の通信履歴から通信履歴を遡って、リクエスト先のＵＲＬが、識別番号７における参照したＲｅｆｅｒｅｒの値と等値である識別番号４の通信履歴を抽出する。さらに、画面遷移抽出部１３２は、識別番号４の通信履歴から通信履歴を遡って、リクエスト先のＵＲＬが、識別番号４における参照したＲｅｆｅｒｅｒの値と等値である識別番号１の通信履歴を抽出する。
【００７９】
［小画面抽出処理の具体例］
次に、図１８で示した各通信履歴を用いた小画面抽出処理について、図１９を参照して説明する。図１９は、小画面抽出処理の具体例を示す図である。なお、図１９で示す各通信履歴は、図１８で示した各通信履歴を詳細に表したものである。図１９に示すように、小画面抽出部２０１は、通信履歴のレスポンスデータの中で、「ｆｒａｍｅｓｅｔ」タグを含んでいるものを、最後の通信履歴（識別番号１０）から通信履歴を遡って探索する。そして、小画面抽出部２０１は、「ｆｒａｍｅｓｅｔ」タグを含んでいるレスポンスデータからｆｒａｍｅタグ内のｓｒｃ属性のＵＲＬ値を抽出する。ここでは、小画面抽出部２０１は、識別番号７のレスポンスデータに「ｆｒａｍｅｓｅｔ」タグＥ１、Ｅ２を含んでいると判定する。そして、小画面抽出部２０１は、ｆｒａｍｅタグ内のｓｒｃ属性のＵＲＬ値である「／ｔｉｔｌｅ．ｈｔｍｌ」ｅ１、「／ｌｉｎｋ．ｈｔｍｌ」ｅ２、「／ｍｅｎｕ．ｈｔｍｌ」ｅ３を抽出する。
【００８０】
さらに、小画面抽出部２０１は、識別番号７と異なる通信履歴を探し、探した通信履歴のリクエスト先ＵＲＬがｓｒｃ属性のいずれかの値と同じであるか否かを判定する。加えて、小画面抽出部２０１は、探した通信履歴のＲｅｆｅｒｅｒヘッダの値がｓｒｃ属性のあった通信履歴のリクエスト先ＵＲＬと等値であるか否かを判定する。ここでは、識別番号１０のリクエスト先ＵＲＬが「／ｍｅｎｕ．ｈｔｍｌ」ｆ１であり、小画面抽出部２０１は、当該リクエスト先ＵＲＬがｓｒｃ属性の「／ｍｅｎｕ．ｈｔｍｌ」ｅ３と同じであると判定する。また、識別番号１０のＲｅｆｅｒｅｒヘッダの値が「ｈｔｔｐ：//ｓａｍｐｌｅ．ｃｏｍ／」ｒ１であり、ｓｒｃ属性のあった通信履歴のリクエスト先ＵＲＬが「ｓａｍｐｌｅ．ｃｏｍ」ｇ１である。このため、小画面抽出部２０１は、ｒ１が示す値とｇ１が示す値とは等値であると判定する。そこで、小画面抽出部２０１は、識別番号７に対応する画面を、メニュー画面を含む小画面の構成を記述するだけの親画面であると判断し、親画面の通信履歴（識別番号７）を削除する。一方、小画面抽出部２０１は、識別番号１０の通信履歴を、操作を再現する通信履歴として抽出する。
【００８１】
引き続き、小画面抽出部２０１は、通信履歴のレスポンスデータの中で、「ｆｒａｍｅｓｅｔ」タグを含んでいるものを、通信履歴を遡って探索する。そして、小画面抽出部２０１は、「ｆｒａｍｅｓｅｔ」タグを含んでいるレスポンスデータからｆｒａｍｅタグ内のｓｒｃ属性のＵＲＬ値を抽出する。ここでは、小画面抽出部２０１は、識別番号１のレスポンスデータに「ｆｒａｍｅｓｅｔ」タグＥ３、Ｅ４を含んでいると判定する。そして、小画面抽出部２０１は、ｆｒａｍｅタグ内のｓｒｃ属性のＵＲＬ値である「／ｔｉｔｌｅ．ｈｔｍｌ」ｅ４、「／ｌｉｎｋ．ｈｔｍｌ」ｅ５、「／ｌｏｇｉｎ」ｅ６を抽出する。
【００８２】
さらに、小画面抽出部２０１は、識別番号１と異なる通信履歴を探し、探した通信履歴のリクエスト先ＵＲＬがｓｒｃ属性のいずれかの値と同じであるか否かを判定する。加えて、小画面抽出部２０１は、探した通信履歴のＲｅｆｅｒｅｒヘッダの値がｓｒｃ属性のあった通信履歴のリクエスト先ＵＲＬと等値であるか否かを判定する。ここでは、識別番号４のリクエスト先ＵＲＬが「／ｌｏｇｉｎ」ｆ２であり、小画面抽出部２０１は、当該リクエスト先ＵＲＬがｓｒｃ属性の「／ｌｏｇｉｎ」ｅ６と同じであると判定する。また、識別番号４のＲｅｆｅｒｅｒヘッダの値が「ｈｔｔｐ：//ｓａｍｐｌｅ．ｃｏｍ／ｐａｒｅｎｔ」ｒ２である。ｓｒｃ属性のあった通信履歴のリクエスト先ＵＲＬがドメインを示す「ｓａｍｐｌｅ．ｃｏｍ」ｇ３とパスを示す「／ｐａｒｅｎｔ」ｇ２とから「ｓａｍｐｌｅ．ｃｏｍ／ｐａｒｅｎｔ」である。このため、小画面抽出部２０１は、識別番号４のＲｅｆｅｒｅｒヘッダの値とｓｒｃ属性のあった通信履歴のリクエスト先ＵＲＬとは等値であると判定する。そこで、小画面抽出部２０１は、識別番号１を、ログイン画面を含む小画面の構成を記述するだけの親画面であると判断し、親画面の通信履歴（識別番号１）を削除する。一方、小画面抽出部２０１は、識別番号４の通信履歴を、操作を再現する通信履歴として抽出する。
【００８３】
このようにして、小画面抽出部２０１は、小画面の構成を記述するだけの親画面の通信を排除し、小画面自体の通信を、操作を再現する通信として抽出する。ここでは、小画面抽出部２０１は、識別番号４、１０の通信履歴を、操作を再現する通信として抽出する。
【００８４】
［再現抽出処理の具体例］
次に、図１６で示した各通信履歴を用いた再現抽出処理について、図２０を参照して説明する。図２０は、再現抽出処理の具体例を示す図である。
【００８５】
再現抽出部１３３Ａは、認証状態抽出部１３１によって抽出された通信履歴と小画面抽出部２０１によって抽出された通信履歴の和集合をとる。ここでは、認証状態抽出部１３１によって抽出された通信履歴が、識別番号４、１０の各通信履歴であるとする。また、小画面抽出部２０１によって抽出された通信履歴も、識別番号４、１０の各通信履歴である。したがって、再現抽出部１３３Ａは、通信履歴の和集合として識別番号４、１０をとる。そして、再現抽出部１３３Ａは、通信記録テーブル１１１に記憶された通信履歴のうち和集合以外の通信履歴を削除し、再現に不要な通信を省いた通信履歴を抽出する。ここでは、再現抽出部１３３Ａは、識別番号１〜３、５〜９の通信履歴を削除し、再現に不要な通信を省いた識別番号４、１０の通信履歴を抽出する。
【００８６】
このようにして、再現抽出部１３３Ａは、認証状態抽出部１３１によって抽出された通信履歴と小画面抽出部２０１によって抽出された通信履歴の和集合を、操作を再現する通信として抽出する。ここでは、再現抽出部１３３Ａは、識別番号４、１０の通信履歴を、操作を再現する通信として抽出する。
【００８７】
［通信再現処理の具体例］
次に、図２０で抽出された各通信履歴を用いた通信再現処理について、図２１を参照して説明する。図２１は、通信再現処理の具体例を示す図である。なお、通信再現処理は、通信履歴を用いて操作を再現する際、最後の通信履歴に対応するレスポンス以外レスポンスをウェブブラウザ２に戻さない。したがって、実際に、ウェブブラウザ２が、最後から１つ前の通信履歴までのレスポンスを用いて画面を表示することはない。しかしながら、図２１では、説明の便宜上、仮にウェブブラウザ２にレスポンスを戻すとした場合に、ウェブブラウザ２側で表示する画面を利用して、通信再現処理を説明するものとする。
【００８８】
通信再現部１４は、再現抽出部１３３によって不要な通信が削除された通信記録テーブル１１１から通信履歴を読み出し、読み出した通信履歴を用いて、操作を再現する。具体的には、通信再現部１４は、識別番号４に対応付けられる通信履歴を用いて通信を再現する。ここで、仮にウェブブラウザ２にレスポンスが戻った場合、ウェブブラウザ２は、ログイン画面ｄ３を表示することになる。つまり、親画面Ｂ１が表示される、識別番号１に対応付けられる通信が排除されているが、この通信が省かれても、再現結果が変わらず、ログイン画面ｄ３が表示される。次に、通信再現部１４は、識別番号１０に対応付けられる最後の通信履歴を用いて通信を再現する。ここで、ウェブブラウザ２にレスポンスが戻ると、ウェブブラウザ２は、ログイン後メニュー画面ｄ８を表示する。つまり、親画面Ｂ２が表示される、識別番号７に対応付けられる通信が排除されているが、この通信が省かれても、再現結果が変わらず、ログイン後メニュー画面ｄ８が表示される。
【００８９】
このようにして、通信再現部１４は、通信履歴を用いて操作を再現する際に、操作を省いても再現結果が変わらない通信として、さらに、親画面の通信を省いた通信を再現する。これにより、通信再現部１４は、通信履歴を全て使用して再現する場合と比較して、高速に再現することが可能となる。
【００９０】
［実施例２の効果］
上記実施例２によれば、認証状態抽出部１３１は、通信記録テーブル１１１に記憶された通信履歴に基づいて、セッション管理に用いられるＳｅｔ−Ｃｏｏｋｉｅヘッダが存在するレスポンスデータと対応付けられた通信履歴を抽出する。また、画面遷移抽出部１３２は、通信記録テーブル１１１に記憶された通信履歴に基づいて、リクエストデータに含まれる情報であってウェブブラウザ２側で表示される画面の遷移を管理するために用いられるＲｅｆｅｒｅｒヘッダを辿って得られる一連の通信履歴を抽出する。さらに、小画面抽出部２０１は、画面遷移抽出部１３２によって抽出された通信履歴から、画面内に小画面を構成する際に用いられる「ｆｒａｍｅｓｅｔ」が存在するレスポンスデータと対応付けられた通信履歴を削除し、削除した通信履歴を除いた通信履歴を抽出する。通信再現部１４は、認証状態抽出部１３１によって抽出された通信履歴および小画面抽出部２０１によって抽出された通信履歴の和集合を用いて、操作を再現する。かかる構成によれば、中継装置１Ａは、画面内に小画面を構成する際に用いられる「ｆｒａｍｅｓｅｔ」が存在するレスポンスデータと対応付けられた通信履歴を削除する。これにより、中継装置１Ａは、操作を再現する際、操作を省いても再現結果に影響がない通信履歴として、小画面の構成を記述するだけの親画面の通信履歴を省くので、高速に再現処理を行うことができる。
【００９１】
なお、認証状態抽出部１３１は、通信記録テーブル１１１に記憶された通信履歴に基づいて、セッション管理に用いられる情報が存在するレスポンスデータ１１１ｃと対応付けられた通信履歴を、操作を再現する通信として抽出する。実施例では、セッション管理に用いられる情報を、Ｓｅｔ−Ｃｏｏｋｉｅヘッダに設定されたセッションｉｄとして説明した。しかしながら、セッション管理に用いられる情報は、これに限定されず、認証状態が変わったときに設定される情報であれば良い。
【００９２】
また、画面遷移抽出部１３２は、通信記録テーブル１１１に記憶された通信履歴に基づいて、ウェブブラウザ２側で表示される画面の遷移を管理するために用いられる情報を辿って得られる一連の通信履歴を抽出する。実施例では、画面の遷移を管理するために用いられる情報を、Ｒｅｆｅｒｅｒヘッダに設定されたＵＲＬとして説明した。しかしながら画面の遷移を管理するために用いられる情報は、これに限定されず、遷移する前の画面のアドレスを示す情報であれば良い。
【００９３】
また、小画面抽出部２０１は、画面遷移抽出部１３２によって抽出された通信履歴から、小画面の構成を記述するだけの親画面の通信履歴を削除する。実施例では、小画面の構成を記述するだけの親画面の通信履歴を、少なくとも「ｆｒａｍｅｓｅｔ」タグを含む通信履歴として説明した。しかしながら、小画面の構成を記述するだけの親画面の通信履歴は、これに限定されず、小画面の構成を記述するだけの情報であれば良い。
【００９４】
また、中継装置１は、ウェブブラウザ２と同一のネットワーク上に適用した場合を説明した。しかしながら、中継装置１は、ウェブブラウザ２と異なるネットワーク上に適用しても良い。この場合に、ウェブブラウザ２と中継装置１との間にプロキシサーバを設置することもある。このプロキシサーバと中継装置１とを一体化することも可能である。
【００９５】
［プログラムなど］
なお、中継装置１は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記したプロキシ部１２、通信抽出部１３および通信再現部１４などの各機能を搭載することによって実現することができる。
【００９６】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、画面遷移抽出部１３２と小画面抽出部２０１とを１個の部として統合しても良い。一方、通信記録テーブル１１１を、プロキシ部１２によって通信を記録する通信記録テーブルと、再現する通信を記録する再現記録テーブルとに分散しても良い。かかる場合、再現抽出部１３３Ａは、通信記録テーブル１１１に記憶された通信履歴のうち和集合以外の通信履歴を不要な通信とし、再現に不要な通信を省いた通信履歴を再現記録テーブルに記録すれば良い。そして、通信再現部１４は、再現記録テーブルから通信履歴を読み出し、読み出した通信履歴を用いて、操作を再現すれば良い。
【００９７】
また、通信記録テーブル１１１などの記憶部を中継装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【００９８】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図２２を用いて、図２に示した中継装置１の制御部１０と同様の機能を有する中継プログラムを実行するコンピュータの一例を説明する。
【００９９】
図２２は、中継プログラムを実行するコンピュータを示す図である。図２２に示すように、コンピュータ１０００は、ＲＡＭ（Random  Access  Memory）１０１０と、ネットワークインタフェース装置１０２０と、ＨＤＤ１０３０と、ＣＰＵ（Central  Processing  Unit）１０４０、媒体読取装置１０５０およびバス１０６０とを有する。ＲＡＭ１０１０、ネットワークインタフェース装置１０２０、ＨＤＤ１０３０、ＣＰＵ１０４０、媒体読取装置１０５０は、バス１０６０によって接続されている。
【０１００】
そして、ＨＤＤ１０３０には、図２に示した制御部１０と同様の機能を有する中継プログラム１０３１が記憶される。また、ＨＤＤ１０３０には、図２に示した通信記録テーブル１１１に対応する中継処理関連情報１０３２が記憶される。
【０１０１】
そして、ＣＰＵ１０４０が中継プログラム１０３１をＨＤＤ１０３０から読み出してＲＡＭ１０１０に展開することにより、中継プログラム１０３１は、中継プロセス１０１１として機能するようになる。そして、中継プロセス１０１１は、中継処理関連情報１０３２から読み出した情報などを適宜ＲＡＭ１０１０上の自身に割り当てられた領域に展開し、この展開したデータなどに基づいて各種データ処理を実行する。
【０１０２】
媒体読取装置１０５０は、中継プログラム１０３１がＨＤＤ１０３０に格納されていない場合であっても中継プログラム１０３１を記憶する媒体などから中継プログラム１０３１を読み取る。媒体読取装置１０５０には、例えばＣＤ−ＲＯＭや光ディスク装置がある。また、ネットワークインタフェース装置１０２０は、外部装置とネットワーク経由で接続する装置であり、有線、無線がある。
【０１０３】
なお、上記の中継プログラム１０３１は、必ずしもＨＤＤ１０３０に格納されている必要はなく、ＣＤ−ＲＯＭなどの媒体読取装置１０５０に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）などを介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）などにこのプログラムを記憶させておいても良い。この場合には、コンピュータ１０００がネットワークインタフェース装置１０２０を介してこれらからプログラムを読み出して実行する。
【０１０４】
以上の実施例１〜２を含む実施形態に関し、さらに以下の付記を開示する。
【０１０５】
（付記１）ウェブブラウザが行う操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を記憶した記憶部と、
前記記憶部に記憶された通信履歴に基づいて、セッション管理に用いられる情報が存在する前記レスポンスデータと対応付けられた通信履歴を抽出する第１の抽出部と、
前記記憶部に記憶された通信履歴に基づいて、前記リクエストデータに含まれる情報であって前記ウェブブラウザ側で出力される画面の遷移を管理するために用いられる情報を辿って得られる一連の通信履歴を抽出する第２の抽出部と、
前記第１の抽出部によって抽出された通信履歴および前記第２の抽出部によって抽出された通信履歴の和集合を用いて、前記操作を再現する再現部と
を有することを特徴とする中継装置。
【０１０６】
（付記２）前記第１の抽出部は、クッキーが設定される前記レスポンスデータに対応付けられた通信記録を抽出することを特徴とする付記１に記載の中継装置。
【０１０７】
（付記３）前記第２の抽出部は、前記操作におけるリクエストデータに設定された遷移元画面のアドレスを示すリファラーを参照し、該リクエストデータ以前のリクエストデータのうち、リクエストを要求するアドレスが該参照したリファラーが示すアドレスと同じであるリクエストデータを選択し、選択したリクエストデータの通信記録を抽出することを特徴とする付記１に記載の中継装置。
【０１０８】
（付記４）前記第２の抽出部によって抽出された通信履歴から、画面内に小画面を構成する際に用いられる情報が存在する前記レスポンスデータと対応付けられた通信履歴を削除し、削除した通信履歴を除いた通信履歴を抽出する第３の抽出部をさらに有し、
前記再現部は、
前記第１の抽出部によって抽出された通信履歴および前記第３の抽出部によって抽出された通信履歴の和集合を用いて、前記操作を再現する
ことを特徴とする付記１から付記３のいずれか１つに記載の中継装置。
【０１０９】
（付記５）コンピュータに、
ウェブブラウザが行う操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を記憶した記憶部に記憶された通信履歴に基づいて、セッション管理に用いられる情報が存在する前記レスポンスデータと対応付けられた通信履歴を抽出し、
前記記憶部に記憶された通信履歴に基づいて、前記リクエストデータに含まれる情報であって前記ウェブブラウザ側で出力される画面の遷移を管理するために用いられる情報を辿って得られる一連の通信履歴を抽出し、
２つの前記抽出する処理によって抽出された通信履歴の和集合を用いて、前記操作を再現する
処理を実行させる中継プログラム。
【０１１０】
（付記６）コンピュータが
ウェブブラウザが行う操作について、前記ウェブブラウザからウェブサーバに送信されたリクエストデータと前記ウェブサーバから受信したレスポンスデータとを対応付けた通信履歴を記憶した記憶部に記憶された通信履歴に基づいて、セッション管理に用いられる情報が存在する前記レスポンスデータと対応付けられた通信履歴を抽出し、
前記記憶部に記憶された通信履歴に基づいて、前記リクエストデータに含まれる情報であって前記ウェブブラウザ側で出力される画面の遷移を管理するために用いられる情報を辿って得られる一連の通信履歴を抽出し、
２つの前記抽出する処理によって抽出された通信履歴の和集合を用いて、前記操作を再現する
各処理を実行することを特徴とする中継方法。
【符号の説明】
【０１１１】
１、１Ａ  中継装置
２  ウェブブラウザ
３  ウェブサーバ
９  ウェブ中継システム
１０  制御部
１１  記憶部
１２  プロキシ部
１３  通信抽出部
１４  通信再現部
１１１  通信記録テーブル
１２１  リクエスト記録部
１２２  リクエスト送信部
１２３  レスポンス送信部
１２４  レスポンス記録部
１３１  認証状態抽出部
１３２  画面遷移抽出部
１３３、１３３Ａ  再現抽出部
【図１】
0005737166.tif 000002
【図２】
0005737166.tif 000003
【図３】
0005737166.tif 000004
【図４】
0005737166.tif 000005
【図５】
0005737166.tif 000006
【図６】
0005737166.tif 000007
【図７】
0005737166.tif 000008
【図８】
0005737166.tif 000009
【図９】
0005737166.tif 000010
【図１０】
0005737166.tif 000011
【図１１】
0005737166.tif 000012
【図１２】
0005737166.tif 000013
【図１３】
0005737166.tif 000014
【図１４Ａ】
0005737166.tif 000015
【図１４Ｂ】
0005737166.tif 000016
【図１４Ｃ】
0005737166.tif 000017
【図１５】
0005737166.tif 000018
【図１６】
0005737166.tif 000019
【図１７】
0005737166.tif 000020
【図１８】
0005737166.tif 000021
【図１９】
0005737166.tif 000022
【図２０】
0005737166.tif 000023
【図２１】
0005737166.tif 000024
【図２２】
0005737166.tif 000025