(57)【要約】【課題】セキュリティに配慮した協調型ウェブアプリについての操作再現を行う。【解決手段】中継装置１は、端末２Ａからウェブサーバ３に送信されたリクエストデータと当該ウェブサーバから受信したレスポンスデータとを記録する通信記録テーブル３１と、通信先の端末２Ａが切り替えられてから処理されるリクエストデータに関する情報である切替情報を記録する権限切替記録テーブル３２と、権限切替記録テーブル３２に記録された切替情報に基づいて、通信先の端末２Ａを切り替え、通信記録テーブル３１に記録されたリクエストデータ及びレスポンスデータを再現する権限切替再現部２１とを有する。【選択図】図１
2014106911.tif 000002
【特許請求の範囲】
【請求項１】
中継装置がクライアント端末とウェブアプリケーションを実行するウェブサーバとの間の通信を中継する中継方法であって、
前記クライアント端末から前記ウェブサーバに送信されたリクエストデータと当該ウェブサーバから受信したレスポンスデータとを記憶装置に記録し、
通信先のクライアント端末が切り替えられてから処理されるリクエストデータに関する情報である切替情報を前記記憶装置に記録し、
前記記憶装置に記録された切替情報に基づいて、通信先のクライアント端末を切り替え、前記記憶装置に記録されたリクエストデータ及びレスポンスデータを再現する
ことを特徴とする中継方法。
【請求項２】
前記切替情報を記録する処理は、識別情報を備えるリクエストデータについて、通信先のクライアント端末が切り替えられてから処理されるリクエストデータの切替開始の識別情報及び切替終了の識別情報を前記切替情報として前記記憶装置に記録し、
前記再現する処理は、前記クライアント端末から再現要求を受け取ると、再現されるリクエストデータの識別情報が前記切替情報に記録された切替開始の識別情報と一致するか否かを判定し、当該リクエストデータの識別情報が前記切替情報に記録された切替開始の識別情報と一致すると判定した場合、前記クライアント端末に通信先を切り替えさせ、切り替えられた通信先からの当該通信先に関する情報に応じて当該リクエストデータを再現する
ことを特徴とする請求項１に記載の中継方法。
【請求項３】
前記再現する処理は、当該リクエストデータの識別情報が前記切替情報に記録された切替開始の識別情報と一致すると判定した場合、前記クライアント端末に対してトークンを発行し、発行したトークンを用いて前記クライアント端末に通信先を切り替えさせ、切り替えられた通信先からの当該通信先に関する情報に応じて当該リクエストデータを再現する
ことを特徴とする請求項２に記載の中継方法。
【請求項４】
前記切替情報を記録する処理は、前記リクエストデータとレスポンスデータとを記録する処理の際、レスポンスデータを受信すると、前記切替情報を参照し、切替開始の識別情報が記録されているか否かを判定し、切替開始の識別情報が記録されていないと判定した場合、通信先の切り替えを要するリクエストデータの場合に通信先の切り替えの変更があることをクライアント端末に通知させるためのスクリプトデータを、受信したレスポンスデータに挿入したうえで前記クライアント端末に送信し、前記クライアント端末からの通知に応じて前記切替情報を更新する
ことを特徴とする請求項１に記載の中継方法。
【請求項５】
クライアント端末とウェブアプリケーションを実行するウェブサーバとの間の通信を中継する中継装置であって、
前記クライアント端末から前記ウェブサーバに送信されたリクエストデータと当該ウェブサーバから受信したレスポンスデータとを記録する第１の記憶部と、
通信先のクライアント端末が切り替えられてから処理されるリクエストデータに関する情報である切替情報を記録する第２の記憶部と、
前記第２の記憶部に記録された切替情報に基づいて、通信先のクライアント端末を切り替え、前記第１の記憶部に記録されたリクエストデータ及びレスポンスデータを再現する再現部と、
を有することを特徴とする中継装置。
【請求項６】
コンピュータに、
クライアント端末からウェブアプリケーションを実行するウェブサーバに送信されたリクエストデータと当該ウェブサーバから受信したレスポンスデータとを記憶装置に記録し、
通信先のクライアント端末が切り替えられてから処理されるリクエストデータに関する情報である切替情報を前記記憶装置に記録し、
前記記憶装置に記録された切替情報に基づいて、通信先のクライアント端末を切り替え、前記記憶装置に記録されたリクエストデータ及びレスポンスデータを再現する
処理を実行させることを特徴とする中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継方法等に関する。
【背景技術】
【０００２】
近年、ウェブサービスを業務において利用する際、ユーザの操作効率を向上させる技術が求められている。
【０００３】
例えば、ユーザの操作効率を向上させる技術として、ユーザの端末を示すブラウザとウェブサーバとの間の通信を中継する中継装置の技術がある。かかる中継装置は、ウェブサーバに送信されたリクエストデータとウェブサーバから受信したレスポンスデータと処理識別情報とを対応付けて記憶装置に記憶する。そして、中継装置は、記憶装置を参照し、同じ処理識別情報を持つ２つのリクエストデータに含まれるパラメータの内、２つのリクエストデータでの値が異なり、且つ、直前のレスポンスデータには含まれないパラメータを抽出し、入力可能なように汎用化する。そして、中継装置は、再現の際、汎用化されたパラメータに対する値の入力を受け付け、入力を受け付けた値を抽出したパラメータの値に設定したリクエストデータをウェブサーバに送信する。この結果、中継装置は、可能な限りユーザを介さないで、一連のリクエストを順次生成し、ウェブサーバに送信するので、ユーザの操作効率を向上させる（例えば、特許文献１）。汎用化されたパラメータには、例えば、ユーザＩＤ（identification）やパスワード等の認証情報が含まれる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−０７４００１号公報
【特許文献２】特開２００４−２８７９２９号公報
【特許文献３】特開２００８−１１７０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、複数のユーザによって協調して利用されるウェブアプリケーション（以降、協調型ウェブアプリという）がある。かかる協調型ウェブアプリでは、ユーザによって操作に制限がかかる処理が行える。例えば、会議室の予約では、部屋を予約したユーザによってのみ予約取消操作に制限がかかる処理が行えるとか、事務処理では、管理職によってのみ起票承認操作に制限がかかる処理が行えるとかである。したがって、協調型ウェブアプリにおける操作を再現する際、再現に関わる複数ユーザの認証情報が必要となる場合がある。
【０００６】
このような協調型ウェブアプリでは、操作の再現の際、同じユーザ端末から複数ユーザの認証情報を中継装置に送る場合、セキュリティが担保されないという問題がある。例えば、再現を行うユーザＡのユーザ端末から再現を行う際、ユーザＡのユーザ端末に対して再現に関わるユーザＢの認証情報を渡したままになるので、ユーザＡはユーザＢがいない時でも許可なくユーザＢの認証情報を利用して再現することができてしまう。この結果、セキュリティが担保されないことになる。
【０００７】
１つの側面では、セキュリティに配慮した協調型ウェブアプリについての操作再現を行うことを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示する中継方法は、中継装置がクライアント端末とウェブアプリケーションを実行するウェブサーバとの間の通信を中継する中継方法であって、前記クライアント端末から前記ウェブサーバに送信されたリクエストデータと当該ウェブサーバから受信したレスポンスデータとを記憶装置に記録し、通信先のクライアントが切り替えられてから処理されるリクエストデータに関する情報である切替情報を前記記憶装置に記録し、前記記憶装置に記録された切替情報に基づいて、通信先のクライアント端末を切り替え、前記記憶装置に記録されたリクエストデータ及びレスポンスデータを再現する。
【発明の効果】
【０００９】
本願の開示する中継方法の１つの態様によれば、セキュリティに配慮した協調型ウェブアプリについての操作再現を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係るウェブ中継装置の構成を示す機能ブロック図である。
【図２】図２は、通信記録テーブルのデータ構造の一例を示す図である。
【図３】図３は、権限切替記録テーブルのデータ構造の一例を示す図である。
【図４】図４は、権限切替開始通知及び認証通知に関わるスクリプトの一例を示す図である。
【図５】図５は、権限切替終了通知に関わるスクリプトの一例を示す図である。
【図６】図６は、汎用処理テーブルのデータ構造の一例を示す図である。
【図７】図７は、通信記録処理の具体例を説明する図である。
【図８Ａ】図８Ａは、通信記録テーブルと権限切替記録テーブルの遷移を説明する図（１）である。
【図８Ｂ】図８Ｂは、通信記録テーブルと権限切替記録テーブルの遷移を説明する図（２）である。
【図８Ｃ】図８Ｃは、通信記録テーブルと権限切替記録テーブルの遷移を説明する図（３）である。
【図８Ｄ】図８Ｄは、通信記録テーブルと権限切替記録テーブルの遷移を説明する図（４）である。
【図９】図９は、再現処理の具体例を説明する図である。
【図１０】図１０は、再現要求画面の一例を示す図である。
【図１１】図１１は、権限切替の認証情報を取得する方法を説明する図である。
【図１２】図１２は、代理実行入力支援画面の一例を示す図である。
【図１３】図１３は、スクリプト挿入部による処理のフローチャートを示す図である。
【図１４】図１４は、権限切替記録部による処理のフローチャートを示す図である。
【図１５】図１５は、権限切替記録呼出部による処理のフローチャートを示す図である。
【図１６】図１６は、トークン発行部による処理のフローチャートを示す図である。
【図１７】図１７は、権限切替再現部による処理のフローチャートを示す図である。
【図１８】図１８は、中継プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する中継方法、中継装置及び中継プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
［ウェブ中継システムの構成］
図１は、実施例に係る中継装置の構成を示す機能ブロック図である。図１に示すように、ウェブ中継システム９は、中継装置１と、端末２Ａ，２Ｂと、ウェブサーバ３とを有する。中継装置１は、端末２Ａ，２Ｂとウェブサーバ３との間の通信を中継する。端末２Ａ，２Ｂは、ウェブサービスを利用する、パーソナルコンピュータ等のクライアント端末である。ウェブサーバ３は、ウェブサービスを実行するウェブアプリケーション４１を配備する。ここでは、ウェブアプリケーション４１とは、複数のユーザが協調して利用するウェブアプリケーションであり、例えば会議室予約に関するアプリケーションを指す。このような複数のユーザが協調して利用するウェブアプリケーション４１を、ここでは「協調型ウェブアプリ」というものとする。なお、ウェブ中継システム９では、ウェブサーバ３を中継装置１及び端末２Ａ，２Ｂと同一のネットワーク上に適用した場合であっても良いし、ウェブサーバ３を外部装置として異なるネットワーク上に適用した場合であっても良い。
【００１３】
ここで、協調型ウェブアプリについて説明する。協調側ウェブアプリでは、複数のユーザが協調して利用するので、ユーザによって操作にアクセス制限が設けられる。例えば、会議室予約に関する協調型ウェブアプリでは、会議室を予約したユーザのみが予約取消しの操作を行えるので、別のユーザが既に予約された会議室を緊急で利用したくても自らが予約取消しの操作をすることができない。そこで、実施例に係る中継装置１は、別のユーザが既に予約された会議室を緊急で利用したい場合に、このユーザの端末から当該会議室を予約したユーザの端末に処理を切り替えさせて認証情報を取得することを可能とする。以降では、会議室予約に関する協調側ウェブアプリを例として説明する。
【００１４】
中継装置１は、通信先の端末２Ａからの通信を記録する通信記録処理と、記録した通信を再現する再現処理を備える。中継装置１は、通信記録処理では、通信先の端末２Ａからウェブサーバ３に送信されたリクエストデータとウェブサーバ３から受信したレスポンスデータとを後述する通信記録テーブル３１に記録する。これとともに、中継装置１は、リクエストデータについて、通信先の権限の切替等が必要なタイミングを権限切替情報として後述する権限切替記録テーブル３２に記録する。また、中継装置１は、再現処理では、権限切替記録テーブル３２に記録された権限切替情報に基づいて、権限の切替が必要なタイミングで、通信先の端末２Ａに通信先を切り替えさせる。そして、中継装置１は、切り替えられた通信先から当該通信先の認証情報を受け取る。認証情報は、例えばユーザＩＤ及びパスワードである。そして、中継装置１は、認証情報を用いて認証した後、切り替わった権限で通信記録テーブル３１に記録されたリクエストデータを再現する。
【００１５】
中継装置１は、制御部１０と、端末通信部１１と、外部サービス通信部１２とを有する。また、中継装置１は、通信記録テーブル３１と、権限切替記録テーブル３２と、汎用処理テーブル３３と、トークン管理テーブル３４とを有する。
【００１６】
端末通信部１１は、端末との通信インタフェースである。外部サービス通信部１２は、外部サービス、例えば、ウェブサーバ３に配備されたウェブアプリケーション４１との通信インタフェースである。
【００１７】
制御部１０は、通信記録部１３と、スクリプト挿入部１４と、権限切替記録部１５と、汎用化部１６とを有する。また、制御部１０は、通信記録呼出部１７と、記録再現部１８と、権限切替記録呼出部１９と、トークン発行部２０と、権限切替再現部２１と、トークン破棄部２２とを有する。また、制御部１０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路である。
【００１８】
通信記録部１３は、協調型ウェブアプリの一連の操作毎に端末２Ａからウェブサーバ３に送信されたリクエストデータを順次通信記録テーブル３１に記録する。そして、通信記録部１３は、端末２Ａから送信されたリクエストデータをウェブサーバ３に送信する。また、通信記録部１３は、ウェブサーバ３から送信された、レスポンスデータをリクエストデータに対応付けて順次通信記録テーブル３１に記録する。そして、通信記録部１３は、ウェブサーバ３から送信されたレスポンスデータに、スクリプトが挿入されたレスポンスデータを端末２Ａに送信する。レスポンスデータへのスクリプトの挿入は、後述するスクリプト挿入部１４によって行われる。
【００１９】
ここで、通信記録テーブル３１のデータ構造について、図２を参照しながら説明する。図２は、通信記録テーブルのデータ構造の一例を示す図である。図２に示すように、通信記録テーブル３１は、通信記録として、記録番号３１ａ、リクエストデータ３１ｂ及びレスポンスデータ３１ｃを対応付けて記憶する。記録番号３１ａは、対応付けられたリクエストデータ３１ｂ及びレスポンスデータ３１ｃが記録された順に付与された番号であり、昇順に付与される。リクエストデータ３１ｂは、端末２Ａからウェブサーバ３にリクエストされたデータである。レスポンスデータ３１ｃは、ウェブサーバ３からレスポンスされたデータであり、リクエストデータ３１ｂに対応する。一例として、記録番号３１ａが「２」である場合、リクエストデータ３１ｂとして「GET  login.cgi?uid=user1&pass=user1  HTTP/1.0」、レスポンスデータ３１ｃとして「HTTP/1.0  200  OK  <html>会議室一覧」と記憶している。
【００２０】
図１に戻って、スクリプト挿入部１４は、レスポンスデータを受信すると、権限切替情報を記録する権限切替記録テーブル３２を参照し、権限切替中であるか否かを判定し、判定結果に応じたスクリプトをレスポンスデータに挿入する。ここで、権限切替記録テーブル３２のデータ構造について、図３を参照しながら説明する。図３は、権限切替記録テーブルのデータ構造の一例を示す図である。
【００２１】
図３に示すように、権限切替記録テーブル３２は、権限切替情報として、権限切替番号３２ａ、認証３２ｂ、権限切替開始３２ｃ及び権限切替終了３２ｄを対応付けて記憶する。権限切替番号３２ａは、権限切替がある一連の操作に対する識別番号を示し、一例として昇順に付与される。認証３２ｂは、認証する際のリクエストデータであることを示す記録番号を記憶する。権限切替開始３２ｃは、権限が切り替えられてから処理されるリクエストデータの開始の記録番号を示す。権限切替終了３２ｄは、権限が切り替えられてから処理されるリクエストデータの終了の記録番号を示す。一例として、権限切替番号３２ａが「１」である場合、認証３２ｂとして「２」、権限切替開始３２ｃとして「３」、権限切替終了３２ｄとして「３」と記憶している。
【００２２】
図１に戻って、例えば、スクリプト挿入部１４は、レスポンスデータを受信すると、権限切替記録テーブル３２に記録された権限切替情報から最新の権限切替番号３２ａを持つ権限切替情報を取得する。そして、スクリプト挿入部１４は、取得ができない場合、取得ができても取得された権限切替情報の権限切替終了３２ｄに記録番号が設定されている場合、権限切替中でないと判断する。また、スクリプト挿入部１４は、取得ができても取得された権限切替情報の認証３２ｂに記録番号が設定され、且つ権限切替開始３２ｃ及び権限切替終了３２ｄに記録番号が設定されていない場合、権限切替中でないと判断する。一方、スクリプト挿入部１４は、取得された権限切替情報について、権限切替開始３２ｃに記録番号が設定され、且つ権限切替終了３２ｄに記録番号が設定されていない場合、権限切替中であると判断する。そして、スクリプト挿入部１４は、権限切替中でない場合に、権限の切替開始のタイミングであることを端末２Ａに通知させるためのスクリプト（権限切替開始通知に関わるスクリプト）をレスポンスデータに挿入する。スクリプト挿入部１４は、権限切替中でない場合に、認証のタイミングであることを端末２Ａに通知させるためのスクリプト（認証通知に関わるスクリプト）をレスポンスデータに挿入する。また、スクリプト挿入部１４は、権限切替中である場合に、権限の切替終了のタイミングであることを端末２Ａに通知させるためのスクリプト（権限切替終了通知に関わるスクリプト）をレスポンスデータに挿入する。
【００２３】
ここで、権限切替開始通知及び認証通知に関わるスクリプト、権限切替終了通知に関わるスクリプトの一例を、図４及び図５を参照して説明する。図４は、権限切替開始通知及び認証通知に関わるスクリプトの一例を示す図である。図５は、権限切替終了通知に関わるスクリプトの一例を示す図である。
【００２４】
図４には、権限切替開始通知及び認証通知に関わるスクリプトが示されている。権限切替開始通知に関わるスクリプトの部分は、符号ｆ１で示される。ここでは、キーコードが「１１９」であるＦ８キーが押下されると、認証のタイミングであることを通知するコマンドが発行されることが示されている。すなわち、Ｆ８キーが押下されると、端末２Ａが認証のタイミングであることを中継装置１に通知する。また、権限切替開始通知に関わるスクリプトの部分は、符号ｆ２で示される。ここでは、キーコードが「１２０」であるＦ９キーが押下されると、権限の切替開始のタイミングであることを通知するコマンドが発行されることが示されている。すなわち、Ｆ９キーが押下されると、端末２Ａが権限の切替開始のタイミングであることを中継装置１に通知する。なお、符号ｆ３に示されるように、Ｆ８キーの押下が認証通知であること、Ｆ９キーの押下が権限切替開始通知であることをユーザに知らせるためのアラートをあげても良い。ここでは、ダイアログ画面が表示される。
【００２５】
図５には、権限切替終了通知に関わるスクリプトが示されている。権限切替終了通知に関わるスクリプトの部分は、符号ｆ４で示される。ここでは、キーコードが「１１９」であるＦ８キーが押下されると、権限の切替終了のタイミングであることを通知するコマンドが発行されることが示されている。すなわち、Ｆ８キーが押下されると、端末２Ａが権限の切替終了のタイミングであることを中継装置１に通知する。なお、符号ｆ５に示されるように、Ｆ８キーの押下が権限切替終了通知であることをユーザに知らせるためのアラートをあげても良い。ここでは、ダイアログ画面が表示される。
【００２６】
権限切替記録部１５は、端末２Ａのスクリプトから送信された通知に応じて、権限切替情報を更新する。例えば、権限切替記録部１５は、端末２Ａから通知内容を取得する。また、権限切替記録部１５は、通知内容が「認証通知」である場合、新規の権限切替情報を追加し、権限切替番号３２ａを最新の番号に設定する。そして、権限切替記録部１５は、通信記録テーブル３１に記録された通信記録情報のうち最新の記録番号の次番号を認証番号として認証３２ｂに設定する。すなわち、権限切替記録部１５は、通知内容が「認証通知」である場合、次の操作（リクエストデータ）が認証であると判断する。また、権限切替記録部１５は、通知内容が「権限切替開始」である場合、通信記録情報のうち最新の記録番号の次番号を権限切替開始番号として権限切替開始３２ｃに設定する。すなわち、権限切替記録部１５は、通知内容が「権限切替開始」である場合、次の操作（リクエストデータ）が他の権限で行われる最初の操作であると判断する。また、権限切替記録部１５は、通知内容が「権限切替終了」である場合、通信記録情報のうち最新の記録番号を権限切替終了番号として権限切替終了３２ｄに設定する。すなわち、権限切替記録部１５は、通知内容が「権限切替終了」である場合、最新の操作（リクエストデータ）が他の権限で行われる最後の操作であると判断する。
【００２７】
汎用化部１６は、協調型ウェブアプリの一連の操作を汎用化するようにリクエストデータを生成する。例えば、あらかじめ通信記録部１３によって、協調型ウェブアプリの一連の操作の操作記録が複数回通信記録テーブル３１に記録されていることとする。汎用化部１６は、通信記録テーブル３１に記録された通信記録を参照し、同じ操作の２つのリクエストデータに含まれるパラメータの内、２つのリクエストデータでの値が異なり、且つ、直前のレスポンスデータには含まれないパラメータを抽出する。そして、汎用化部１６は、抽出したパラメータの値を例えば変数に置き換えたリクエストデータを、汎用化したリクエストデータとして生成する。そして、汎用化部１６は、生成したリクエストデータを汎用処理テーブル３３に記録する。
【００２８】
ここで、汎用処理テーブル３３のデータ構造について、図６を参照して説明する。図６は、汎用処理テーブルのデータ構造の一例を示す図である。図６に示すように、汎用処理テーブル３３は、通信番号３３ａ及びリクエストデータ３３ｂを対応付けて記憶する。通信番号３３ａは、リクエストデータ３３ｂが記録された順に付与された番号であり、通信記録テーブル３１の記録番号３１ａに対応する。リクエストデータ３３ｂは、汎用化された汎用処理であるリクエストデータであり、通信記録テーブル３１のリクエストデータ３１ｂに対応する。なお、リクエストデータ３３ｂ内の「ｕｉｄ」、「ｐａｓｓ」は、それぞれユーザＩＤ、パスワードを示すパラメータである。リクエストデータ内の「ｒｉｄ」、「ｒｅａｓｏｎ」は、それぞれ部屋番号、目的を示すパラメータである。
【００２９】
例えば、通信番号３３ａが「２」の場合、リクエストデータ３３ｂには、ユーザＩＤ及びパスワードが含まれる。すなわち、リクエストデータ３３ｂは、パラメータ「ｕｉｄ」の値が変数「％％」に置き換わり、パラメータ「ｐａｓｓ」の値が変数「％％」に置き換わる処理となっている。また、通信番号３３ａが「３」の場合、リクエストデータ３３ｂには、部屋番号が含まれる。すなわち、リクエストデータ３３ｂは、パラメータ「ｒｉｄ」の値が変数「％％」に置き換わる処理となっている。また、通信番号３３ａが「４」の場合、リクエストデータ３３ｂには、部屋番号及び目的が含まれる。すなわち、リクエストデータ３３ｂは、パラメータ「ｒｉｄ」の値が変数「％％」に置き換わり、パラメータ「ｒｅａｓｏｎ」の値が変数「％％」に置き換わる処理となっている。
【００３０】
通信記録呼出部１７は、端末２Ａから再現要求を受け取ると、再現要求に対応するリクエストデータを順番に汎用処理テーブル３３から呼び出す。ここでいうリクエストデータは、汎用化されたリクエストデータを示す。また、ここでいう再現要求には、汎用化により値が変数とされたパラメータの具体的な値が含まれる。通信記録呼出部１７は、呼び出したリクエストデータのパラメータの変数とされた箇所に具体的な値を埋め込み、再現されるリクエストデータを生成する。なお、再現要求は、例えば、端末２Ａにあらかじめインストールされた再現要求画面から実行されても良い。
【００３１】
記録再現部１８は、権限切替が開始されるまで、通信記録呼出部１７によって生成された、再現されるリクエストデータをウェブサーバ３に送信する。なお、権限切替が開始されたかどうかは、後述する権限切替記録呼出部１９によって判定される。
【００３２】
権限切替記録呼出部１９は、該当する権限切替情報を権限切替記録テーブル３２から呼び出す。そして、権限切替記録呼出部１９は、権限切替情報を参照し、再現されるリクエストデータが権限切替を開始したタイミングであるか否かを判定する。例えば、権限切替記録呼出部１９は、再現されるリクエストデータの通信番号３３ａが権限切替記録テーブル３２に記録された権限切替開始３２ｃの番号と一致するか否かを判定する。ここで、権限切替記録呼出部１９は、一致すると判定した場合、権限切替が開始したタイミングであると判定する。一方、権限切替記録呼出部１９は、一致しないと判定した場合、権限切替が開始したタイミングでないと判定する。
【００３３】
トークン発行部２０は、権限切替を開始したタイミングである場合に、トークンを発行し、発行したトークンを端末２Ａに対して通知する。これにより、トークン発行部２０は、発行したトークンを用いて端末２Ａに通信先を切り替えさせる。例えば、トークン発行部２０は、権限切替記録呼出部１９によって再現されるリクエストデータが権限切替を開始したタイミングであると判定した場合に、システム内で一意となる識別子を持つトークンを発行する。トークン発行部２０は、発行したトークンの識別子を権限切替情報の権限切替番号３２ａが示す番号と対応付けてトークン管理テーブル３４に記録する。トークンの識別子は、文字列であっても、数字であっても、画像であっても良く、システム内で一意となれば良い。そして、トークン発行部２０は、通信先の端末２Ａに対して、トークンを通知する。
【００３４】
権限切替再現部２１は、トークン及び認証情報を用いて、権限切替に関わる通信記録を再現する。例えば、権限切替再現部２１は、切り替えられた通信先からトークン及び権限切替に関わる認証情報を受け取ると、受け取ったトークンの識別子がトークン管理テーブル３４に記録されているか否かを判定する。認証情報には、切り替えられた通信先のユーザＩＤ及びパスワードが含まれる。そして、権限切替再現部２１は、受け取ったトークンの識別子がトークン管理テーブル３４に記録されていれば、受け取った認証情報を、認証に関わるリクエストデータに埋め込み、再現されるリクエストデータを生成する。ここでいう認証に関わるリクエストデータは、権限切替情報の認証３２ｂが示す番号に該当する汎用化されたリクエストデータを示す。そして、記録再現部１８は、再現されるリクエストデータを、すなわち認証に関わるリクエストデータをウェブサーバ３に送信する。これにより、切り替えられた通信先に権限が切り替えられる。
【００３５】
また、権限切替再現部２１は、権限切替が開始されてから終了されるまでの通信記録を再現する。例えば、記録再現部１８は、権限切替情報の権限切替開始３２ｃが示す番号から権限切替終了３２ｄが示す番号までの再現されるリクエストデータをウェブサーバ３に送信する。
【００３６】
トークン破棄部２２は、権限切替の終了時に、トークンを破棄する。例えば、トークン破棄部２２は、再現されるリクエストデータの通信番号が権限切替情報の権限切替終了３２ｄが示す番号である場合に、トークン管理テーブル３４に記録されているトークンの情報を削除する。
【００３７】
［通信記録処理の具体例］
次に、通信記録処理の具体例を、図７、図８Ａ〜図８Ｄを参照して説明する。図７は、通信記録処理の具体例を説明する図である。図８Ａ〜図８Ｄは、通信記録テーブルと権限切替記録テーブルの遷移を説明する図である。なお、図７に示すように、リクエスト及びレスポンスの括弧内の数字は、通信番号を示す。また、スクリプト（ａ）は、権限切替開始通知及び認証通知に関わるスクリプト（図４参照）を示し、スクリプト（ｂ）は、権限切替終了通知に関わるスクリプト（図５参照）を示す。また、通信記録テーブル３１及び権限切替記録テーブル３２には、まだデータが記録されていないものとする。
【００３８】
端末２Ａから通信番号（記録番号）が「１」であるリクエストデータ（１）が送信される（Ｓ１１）。
【００３９】
中継装置１では、通信記録部１３は、リクエストデータ（１）及びレスポンスデータ（１）を通信記録テーブル３１に記録する（Ｓ１２）。ここでは、リクエストデータ（１）は、「GET  /index.cgi  HTTP/1.0」であり、レスポンスデータ（１）は、「HTTP/1.0  200  OK  <html>ログイン」であるとする。図８Ａの上段が、通信記録テーブル３１の通信記録の内容である。
【００４０】
そして、スクリプト挿入部１４は、権限切替記録テーブル３２を参照して、権限切替中であるか否かを判定する。ここでは、スクリプト挿入部１４は、権限切替記録テーブル３２にデータが記録されていないので、権限切替中でないと判定する。そして、スクリプト挿入部１４は、認証のタイミングであることを端末２Ａに通知させる認証通知及び権限の切替開始のタイミングであることを端末２Ａに通知させる権限切替開始通知に関わるスクリプト（ａ）をレスポンスデータ（１）に挿入する（Ｓ１３）。そして、通信記録部１３は、スクリプトが挿入されたレスポンスデータ（１）を端末２Ａへ送信する（Ｓ１４）。
【００４１】
端末２Ａでは、レスポンスデータ（１）に応じて、認証を促すログイン画面が表示される。そして、Ｆ８キーが押下されると（Ｓ１５）、端末２Ａは中継装置１に認証のタイミングであることを通知する。なお、Ｆ８キーが押下されたときのリクエストは、例えば、図４の符号ｆ１で示すように、「GET  /delegate.cgi?action=auth」である。
【００４２】
中継装置１では、権限切替記録部１５は、通知内容が「認証通知」であるので、次のリクエストデータが認証であると判断する。そして、権限切替記録部１５は、新規の権限切替情報を生成し、権限切替番号３２ａに「１」を設定するとともに、認証３２ｂに最新の記録番号の次番号「２」を記録する（Ｓ１６）。図８Ａの下段が、権限切替記録テーブル３２の権限切替情報の内容である。
【００４３】
端末２Ａでは、ログイン画面から通信番号（記録番号）が「２」であるリクエストデータ（２）が送信される（Ｓ１７）。リクエストデータ（２）は、入力されたユーザＩＤ及びパスワードでの認証を促すリクエストである。
【００４４】
中継装置１では、通信記録部１３は、リクエストデータ（２）及びレスポンスデータ（２）を通信記録テーブル３１に記録する（Ｓ１８）。ここでは、リクエストデータ（２）は、「GET  login.cgi?uid=user1&pass=user1  HTTP/1.0」であり、レスポンスデータ（２）は、「HTTP/1.0  200  OK  <html>会議室一覧」であるとする。図８Ｂの上段が、通信記録テーブル３１の通信記録の内容である。
【００４５】
そして、スクリプト挿入部１４は、権限切替記録テーブル３２を参照して、権限切替中であるか否かを判定する。ここでは、スクリプト挿入部１４は、権限切替記録テーブル３２の認証３２ｂに記録番号が設定され、且つ権限切替開始３２ｃ及び権限切替終了３２ｃに記録番号が設定されていないので、権限切替中でないと判定する。そして、スクリプト挿入部１４は、認証のタイミングであることを端末２Ａに通知させる認証通知または権限の切替開始のタイミングであることを端末２Ａに通知させる権限切替開始通知に関わるスクリプト（ａ）をレスポンスデータ（２）に挿入する（Ｓ１９）。そして、通信記録部１３は、スクリプトが挿入されたレスポンスデータ（２）を端末２Ａへ送信する（Ｓ２０）。
【００４６】
端末２Ａでは、レスポンスデータ（２）に応じて、会議室一覧画面が表示される。そして、Ｆ９キーが押下されると（Ｓ２１）、端末２Ａは中継装置１に権限の切替開始のタイミングであることを通知する。なお、Ｆ９キーが押下されたときのリクエストは、例えば、図４の符号ｆ２で示すように、「GET  /delegate.cgi?action=start」である。
【００４７】
中継装置１では、権限切替記録部１５は、通知内容が「権限切替開始」であるので、次のリクエストデータが他の権限で行われる操作であると判断する。そして、権限切替記録部１５は、権限切替情報の権限切替開始３２ｃに最新の記録番号の次番号「３」を記録する（Ｓ２２Ａ）。図８Ｂの下段が、権限切替記録テーブル３２の権限切替情報の内容である。
【００４８】
端末２Ａでは、会議室一覧画面で取消キーが押下されると、通信番号（記録番号）が「３」であるリクエストデータ（３）が送信される（Ｓ２２）。リクエストデータ（３）は、部屋番号「１０１」の予約を取り消すリクエストである。
【００４９】
中継装置１では、通信記録部１３は、リクエストデータ（３）及びレスポンスデータ（３）を通信記録テーブル３１に記録する（Ｓ２３）。ここでは、リクエストデータ（３）は、「GET  cancel.cgi?rid=101  HTTP/1.0」であり、レスポンスデータ（３）は、「HTTP/1.0  200  OK  <html>成功」であるとする。図８Ｃの上段が、通信記録テーブル３１の通信記録の内容である。
【００５０】
そして、スクリプト挿入部１４は、権限切替記録テーブル３２を参照して、権限切替中であるか否かを判定する。ここでは、スクリプト挿入部１４は、権限切替記録テーブル３２の権限切替開始３２ｃに記録番号が設定され、且つ権限切替終了３２ｄに記録番号が設定されていないので、権限切替中であると判定する。そして、スクリプト挿入部１４は、権限の切替終了のタイミングであることを端末２Ａに通知させる権限切替終了通知を含むスクリプト（ｂ）をレスポンスデータ（３）のＨＴＭＬ内に挿入する（Ｓ２４）。そして、通信記録部１３は、スクリプトが挿入されたレスポンスデータ（３）を端末２Ａへ送信する（Ｓ２５）。
【００５１】
端末２Ａでは、レスポンスデータ（３）に応じて、会議室一覧画面がそのまま表示される。そして、Ｆ８キーが押下されると（Ｓ２６）、端末２Ａは中継装置１に権限の切替終了のタイミングであることを通知する。なお、Ｆ８キーが押下されたときのリクエストは、例えば、図５の符号ｆ４で示すように、「GET  /delegate＿end.cgi」である。
【００５２】
中継装置１では、権限切替記録部１５は、通知内容が「権限切替終了」であるので、最新のリクエストデータ（３）が他の権限で行われる最後の操作であると判断する。そして、権限切替記録部１５は、権限切替情報の権限切替終了３２ｄに最新の記録番号「３」を記録する（Ｓ２７）。図８Ｃの下段が、権限切替記録テーブル３２の権限切替情報の内容である。
【００５３】
その後、端末２Ａでは、会議室一覧画面で予約キーが押下されると、通信番号（記録番号）が「４」であるリクエストデータ（４）が送信される（Ｓ２８）。リクエストデータ（４）は、部屋番号「１０１」を予約するリクエストである。このリクエストでは、目的として「重要会議」が設定されている。
【００５４】
中継装置１では、通信記録部１３は、リクエストデータ（４）及びレスポンスデータ（４）を通信記録テーブル３１に記録する（Ｓ２９）。ここでは、リクエストデータ（４）は、「GET  reserve.cgi?rid=101&reason=”重要会議”  HTTP/1.0」であり、レスポンスデータ（４）は、「HTTP/1.0  200  OK  <html>成功」であるとする。図８Ｄが、通信記録テーブル３１の通信記録の内容である。
【００５５】
そして、スクリプト挿入部１４は、権限切替記録テーブル３２を参照して、権限切替中であるか否かを判定する。ここでは、スクリプト挿入部１４は、権限切替記録テーブル３２の権限切替終了３２ｄに記録番号が設定されているので、権限切替中でないと判定する。そして、スクリプト挿入部１４は、認証のタイミングであることを端末２Ａに通知させる認証通知及び権限の切替開始のタイミングであることを端末２Ａに通知させる権限切替開始通知に関わるスクリプト（ａ）をレスポンスデータ（４）に挿入する（Ｓ３０）。そして、通信記録部１３は、スクリプトが挿入されたレスポンスデータ（４）を端末２Ａへ送信する（Ｓ３１）。
【００５６】
このようにして、会議室予約に関する協調型ウェブアプリの通信記録処理が行われ、通信記録テーブル３１及び権限切替記録テーブル３２が生成される。
【００５７】
［再現処理の具体例］
次に、再現処理の具体例を、図９を参照して説明する。図９は、再現処理の具体例を説明する図である。なお、この具体例では、「端末２Ａのユーザ１が既にユーザ２によって予約されている部屋番号１０１を、重要会議を目的として予約する」ことを再現する。
【００５８】
図９に示すように、通信記録処理によって記録された通信記録及び権限切替情報が表されている。図９の上段が、通信記録テーブル３１の通信記録の内容である。図９の下段が、権限切替記録テーブル３２の権限切替情報の内容である。
【００５９】
汎用化部１６は、通信記録テーブル３１に記録された通信記録を参照し、一連の操作、ここでは記録番号１から４までの操作を汎用化する。この結果、図６で示される汎用処理テーブル３３が生成されたとする。
【００６０】
そして、通信記録呼出部１７は、端末２Ａから再現要求を受け取ると、再現要求に対応するリクエストデータを汎用処理テーブル３３から呼び出す。そして、通信記録呼出部１７は、呼び出したリクエストデータのパラメータの変数とされた箇所に具体的な値を埋め込み、再現されるリクエストデータを生成する。ここでは、ユーザＩＤを指すパラメータ「ｕｉｄ」、パスワードを指すパラメータ「ｐａｓｓ」、部屋番号を指すパラメータ「ｒｉｄ」、理由を指すパラメータ［ｒｅａｓｏｎ］が変数である。そして、再現要求がされたときのリクエストは、例えば、「start.cgi?uid=XXX&pass=XXX&rid=XXX&reason=XXX  HTTP/1.0」であるとする。ユーザ１のユーザＩＤが「ｕｓｅｒ１」、パスワードが「ｕｓｅｒ１」、部屋番号が「１０１」、目的が「重要会議」であるとする。すると、再現要求の具体的なリクエストは、例えば、以下のようになる。
「start.cgi?uid=user1&pass=user1&rid=101&reason=重要会議  HTTP/1.0」
【００６１】
なお、再現要求は、端末２Ａにあらかじめインストールされた再現実行画面から実行されても良い。図１０は、再現要求画面の一例を示す図である。図１０に示すように、タイトルとして、「ＩＤ」、「パスワード」、「部屋番号」、「目的」が表されている。「ＩＤ」は、パラメータのユーザＩＤに相当する。「パスワード」は、パラメータのパスワードに相当する。「部屋番号」は、パラメータの部屋番号に相当する。「目的」は、パラメータの目的に相当する。そして、ｔ０部分が各パラメータに対する具体的な内容を入力する領域となる。そして、実行ボタンが押下されることで、再現要求がされる。
【００６２】
また、端末２Ａから再現要求がされると、権限切替記録呼出部１９は、再現しようとしているリクエストデータの通信番号が権限切替記録テーブル３２に記録された権限切替開始３２ｃの番号と一致するか否かを判定する。ここでは、権限切替開始３２ｃの番号が「３」である。
【００６３】
通信番号１、２について、権限切替記録呼出部１９は、再現しようとしているリクエストデータの通信番号が権限切替開始３２ｃの番号と一致しないと判定する。すなわち、権限切替記録呼出部１９は、再現しようとしているリクエストデータが権限切替を開始したタイミングでないと判断する。そこで、記録再現部１８が、通信番号１、２について、順番に、再現されるリクエストデータをウェブサーバ３に送信する。
【００６４】
通信番号３について、権限切替記録呼出部１９は、再現しようとしているリクエストデータの通信番号が権限切替開始３２ｃの番号と一致していると判定する。すなわち、権限切替記録呼出部１９は、再現しようとしているリクエストデータが権限切替を開始したタイミングであると判断する。そこで、トークン発行部２０は、トークンを発行し、発行したトークンを端末２Ａに対して通知し、通信先を切り替えさせる。ここでは、発行されたトークンの識別子は「ａｂｃｄｅ」であるとする。
【００６５】
そして、権限切替再現部２１は、切り替えられた端末２Ｂからトークン及び認証情報を含むリクエストを受け取る。トークン及び認証情報を含むリクエストの具体例は、後述する。
【００６６】
そして、権限切替再現部２１は、受け取ったトークンが「ａｂｃｄｅ」であるとすると、トークン発行部２０によって発行されたトークンと一致しているので、受け取った認証情報を、認証に関わるリクエストデータに埋め込む。そして、権限切替再現部２１は、再現されるリクエストデータを生成する。ここでは、認証に関わるリクエストデータは、権限切替記録テーブル３２に記録された認証３２ｂの番号「２」に該当する汎用化されたリクエストデータである。再現されるリクエストデータは、「GET  login.cgi?uid=user2  pass=user2  HTTP/1.0」となる。そして、権限切替再現部２１は、再現されるリクエストデータをウェブサーバ３に送信する。これにより、ユーザ２に権限が切り替えられる。
【００６７】
そして、権限切替再現部２１は、権限切替が開始されてから終了されるまでの通信記録を再現する。ここでは、権限切替再現部２１は、権限切替記録テーブル３２に記録された権限記録情報に基づいて、権限切替開始３２ｃの番号「３」から権限切替終了３２ｄの番号「３」までの、再現されるリクエストデータをウェブサーバ３に送信する。再現されるリクエストデータは、「GET  cancel.cgi?rid=101  HTTP/1.0」である。これにより、権限切替再現部２１は、ユーザ２に切り替わった権限で部屋番号「１０１」をキャンセルすることができる。
【００６８】
その後、権限切替再現部２１は、権限を元のユーザ１に戻す。再現されるリクエストデータは、「GET  login.cgi?uid=user1  pass=user1  HTTP/1.0」となる。そして、権限切替再現部２１は、再現されるリクエストデータをウェブサーバ３に送信する。これにより、ユーザ１に権限が元に戻される。
【００６９】
そして、通信番号４について、権限切替記録呼出部１９が、再現しようとしているリクエストデータの通信番号４が権限切替開始３２ｃの番号「３」と一致しないので、再現しようとしているリクエストデータが権限切替を開始したタイミングでないと判断する。そこで、記録再現部１８が、通信番号４について、再現されるリクエストデータをウェブサーバ３に送信する。これにより、端末２Ａのユーザ１は、部屋番号１０１を予約することができる。
【００７０】
ここで、権限切替の認証情報を取得する方法を、図１１を参照して説明する。図１１は、権限切替の認証情報を取得する方法を説明する図である。なお、図１１では、端末Ａが中継装置１に対してＨＴＴＰ（HyperText  Transfer  Protocol）を用いて再現要求を送信する。
【００７１】
図１１に示すように、中継装置１のトークン発行部２０は、トークン（識別子：「ａｂｃｄｅ」）を、ＨＴＴＰと異なる方式を用いて端末Ａに対して送信する。例えば、トークン発行部２０は、ＭＭＳ（Multimedia  Messaging  Service）を用いて端末Ａに対して送信することができる。
【００７２】
トークンを受け取った端末Ａのアプリは、代理実行を依頼したい相手の端末（端末Ｂ）に対して、受け取ったトークンを含む代理実行を依頼する旨の情報を通知する。ここでは、例えば、端末のアプリは、近距離通信を可能とするＮＦＣ（Near  Field  Communication）を用いて代理実行を依頼したい相手の端末（端末Ｂ）に対して、情報を通知することができる。
【００７３】
トークンを含む代理実行を依頼する旨の情報を受け取った端末Ｂのアプリは、認証情報を生成する。そして、端末Ｂのアプリは、トークン及び認証情報を含むリクエストを中継装置１に対して送信する。例えば、トークン及び認証情報を含むリクエストは、「delegate.cgi?uid=XXX&pass=XXX&tokun=xxx」である。ユーザ２のユーザＩＤが「ｕｓｅｒ２」、パスワードが「ｕｓｅｒ２」であるとすると、具体的なリクエストは、例えば、以下のようになる。
「delegate.cgi?uid=user2&pass=user2&tokun=abcde」
【００７４】
トークン及び認証情報を含むリクエストを受け取った権限切替再現部２１は、受け取ったトークンがトークン発行部２０によって発行されたトークンと一致していれば、受け取った認証情報を用いて権限を切り替える。
【００７５】
これにより、中継装置１は、特定の部屋番号が既にユーザ２によって予約されていても、予約したユーザ２の端末からユーザ２によってユーザ２の権限に切り替えさせることができる。したがって、中継装置１は、協調型ウェブアプリの場合であっても、セキュリティを担保しつつ、操作を再現することが可能となる。
【００７６】
なお、中継装置１のトークン発行部２０は、トークンを、端末Ａに対して送信するようにしたが、これに限定されない。例えば、トークン発行部２０は、トークンの情報を含んだ代理実行入力支援画面を送信するようにしても良い。図１２は、代理実行入力支援画面の一例を示す図である。図１２に示すように、タイトルとして、「ｕｉｄ」、「ｐａｓｓ」が表されている。「ｕｉｄ」は、ユーザＩＤに相当する。「ｐａｓｓ」は、パスワードに相当する。「ｔｏｋｅｎ」は、トークンの情報に相当し、トークンの識別子「ａｂｃｄｅ」が表示されている。そして、ｔ１部分が各パラメータに対する具体的な内容を入力する領域となる。そして、端末Ｂでは、送信ボタンが押下されると、トークン及び認証情報を含むリクエストが中継装置１に対して送信される。
【００７７】
［スクリプト挿入部による処理手順］
次に、スクリプト挿入部１４による処理手順を、図１３を参照して説明する。図１３は、スクリプト挿入部による処理のフローチャートを示す図である。なお、通信記録処理の際、スクリプト挿入部１４は、リクエストデータに対応するレスポンスデータを受信したものとする。
【００７８】
スクリプト挿入部１４は、権限切替記録テーブル３２に記録された権限切替情報から最新の権限切替番号３２ａを持つ権限切替情報を取得する（ステップＳ１０１）。そして、スクリプト挿入部１４は、取得した権限切替情報を参照し、権限切替中であるか否かを判定する（ステップＳ１０２）。例えば、スクリプト挿入部１４は、取得した最新の権限切替情報の認証３２ｂ、権限切替開始３２ｃまたは権限切替終了３２ｄに記録番号が設定されているか否かを判定する。
【００７９】
権限切替中でないと判定した場合（ステップＳ１０２；Ｎｏ）、スクリプト挿入部１４は、権限切替開始通知及び認証通知に関わるスクリプトをレスポンスデータに挿入する（ステップＳ１０３）。権限切替中でない場合とは、例えば、権限切替終了３２ｄに記録番号が設定されている場合、認証３２ｂに記録番号が設定され、且つ権限切替開始３２ｃおよび権限切替終了３２ｄに記録番号が設定されていない場合、行数が０であった場合である。
【００８０】
一方、権限切替中であると判定した場合（ステップＳ１０２；Ｙｅｓ）、スクリプト挿入部１４は、権限切替終了通知に関わるスクリプトをレスポンスデータに挿入する（ステップＳ１０４）。権限切替中である場合とは、例えば、権限切替開始３２ｃに記録番号が設定され、且つ権限切替終了３２ｄに記録番号が設定されていない場合である。
【００８１】
このようにして、スクリプト挿入部１４は、受信したレスポンスデータに、所定のタイミングであることを端末２Ａに通知させるためのスクリプトを挿入する。
【００８２】
［権限切替記録部による処理手順］
次に、権限切替記録部１５による処理手順を、図１４を参照して説明する。図１４は、権限切替記録部による処理のフローチャートを示す図である。なお、端末２Ａのスクリプトから所定の通知内容が送信されたものとする。
【００８３】
権限切替記録部１５は、端末２Ａから通知内容を取得する（ステップＳ１１１）。そして、権限切替記録部１５は、通信記録テーブル３１に記録された通信記録情報から最新の記録番号を取得する（ステップＳ１１２）。ここでは、最新の記録番号をｍとする。
【００８４】
続いて、権限切替記録部１５は、取得した通知内容が「認証通知」であるか否かを判定する（ステップＳ１１３）。通知内容が「認証通知」であると判定した場合（ステップＳ１１３；Ｙｅｓ）、権限切替記録部１５は、新規の権限切替情報を追加して、最新の権限切替番号を設定する（ステップＳ１１４）。そして、権限切替記録部１５は、ｍ＋１の番号を認証番号として認証３２ｂに設定する（ステップＳ１１５）。すなわち、権限切替記録部１５は、次の操作（リクエストデータ）が認証であると判断する。
【００８５】
一方、通知内容が「認証通知」でないと判定した場合（ステップＳ１１３；Ｎｏ）、権限切替記録部１５は、通知内容が「権限切替開始」であるか否かを判定する（ステップＳ１１６）。通知内容が「権限切替開始」であると判定した場合（ステップＳ１１６；Ｙｅｓ）、権限切替記録部１５は、ｍ＋１の番号を権限切替開始番号として権限切替開始３２ｃに設定する（ステップＳ１１７）。すなわち、権限切替記録部１５は、次の操作（リクエストデータ）が他の権限で行われる最初の操作であると判断する。
【００８６】
一方、通知内容が「権限切替開始」でないと判定した場合（ステップＳ１１６；Ｎｏ）、権限切替記録部１５は、通知内容が「権限切替終了」であるか否かを判定する（ステップＳ１１８）。通知内容が「権限切替終了」であると判定した場合（ステップＳ１１８；Ｙｅｓ）、権限切替記録部１５は、ｍの番号を権限切替終了番号として権限切替終了３２ｄに設定する（ステップＳ１１９）。すなわち、権限切替記録部１５は、最新の操作（リクエストデータ）が他の権限で行われる最後の操作であると判断する。
【００８７】
一方、通知内容が「権限切替終了」でないと判定した場合（ステップＳ１１８；Ｎｏ）、権限切替記録部１５は、送信元の端末２Ａにエラーを返す（ステップＳ１２０）。
【００８８】
このようにして、権限切替記録部１５は、端末２Ａからの通知内容に応じて、権限切替記録テーブル３２に記録される権限切替情報を生成する。
【００８９】
［権限切替記録呼出部による処理手順］
次に、権限切替記録呼出部１９による処理手順を、図１５を参照して説明する。図１５は、権限切替記録呼出部による処理のフローチャートを示す図である。なお、再現処理では、汎用処理テーブル３３に記録された通信番号の順に、再現されるリクエストデータが再現される。
【００９０】
権限切替記録呼出部１９は、再現しようとしているリクエストデータの通信番号３３ａを取得する（ステップＳ１３１）。そして、権限切替記録呼出部１９は、取得した通信番号３３ａが権限切替記録テーブル３２に記録された権限切替情報の権限開始番号３２ｃと一致するかを確認する（ステップＳ１３２）。そして、権限切替記録呼出部１９は、確認した結果、番号が一致しているか否かを判定する（ステップＳ１３３）。
【００９１】
番号が一致していると判定した場合（ステップＳ１３３；Ｙｅｓ）、権限切替記録呼出部１９は、トークン発行部２０に権限切替情報の権限切替番号３２ａを通知するとともに、トークンの発行を依頼する（ステップＳ１３４）。一方、番号が一致していないと判定した場合（ステップＳ１３３；Ｎｏ）、権限切替記録呼出部１９は、処理を終了する。
【００９２】
［トークン発行部による処理手順］
次に、トークン発行部２０による処理手順を、図１６を参照して説明する。図１６は、トークン発行部による処理のフローチャートを示す図である。なお、権限切替記録呼出部１９が、権限切替番号３２ａを通知するとともに、トークンの発行を依頼したものとする。
【００９３】
トークン発行部２０は、権限切替記録呼出部１９から権限切替番号を受け取る（ステップＳ１４１）。そして、トークン発行部２０は、システム内で一意となるトークンの文字列を発行する（ステップＳ１４２）。そして、トークン発行部２０は、トークン管理テーブル３４に、トークン文字列と権限切替番号３２ａを対応付けて記録する（ステップＳ１４３）。
【００９４】
そして、トークン発行部２０は、端末２Ａに、発行したトークンを通知する（ステップＳ１４４）。
【００９５】
［権限切替再現部による処理手順］
次に、権限切替再現部２１による処理手順を、図１７を参照して説明する。図１７は、権限切替再現部による処理のフローチャートを示す図である。なお、切り替えられた端末２Ｂからトークン及び認証情報を含むリクエストが送信されたものとする。認証情報には、切り替えられた通信先のユーザＩＤ及びパスワードが設定されている。
【００９６】
権限切替再現部２１は、切り替えられた端末２Ｂからトークンと認証情報を含むリクエストを受け取る（ステップＳ１５１）。そして、権限切替再現部２１は、トークン管理テーブル３４から該当するトークン文字列があるかを探索する（ステップＳ１５２）。権限切替再現部２１は、探索の結果、該当するトークン文字列があるか否かを判定する（ステップＳ１５３）。
【００９７】
該当するトークン文字列がないと判定した場合（ステップＳ１５３；Ｎｏ）、権限切替再現部２１は、トークンを含むリクエストの送信元である端末２Ｂにエラーを返す(ステップＳ１５８)。
【００９８】
一方、該当するトークン文字列があると判定した場合（ステップＳ１５３；Ｙｅｓ）、権限切替再現部２１は、トークン管理テーブル３４からトークン文字列と対応付けられた権限切替番号を取得する。そして、権限切替再現部２１は、取得した権限切替番号に対応する権限切替情報を権限切替記録テーブル３２から取得する（ステップＳ１５４）。
【００９９】
続いて、権限切替再現部２１は、認証情報を用いて、権限切替情報の認証番号に該当する通信を再現する（ステップＳ１５５）。例えば、権限切替再現部２１は、汎用処理テーブル３３から、権限切替情報の認証３２ｂが示す番号に該当する汎用化されたリクエストデータ３３ｂを取得する。そして、権限切替再現部２１は、取得したリクエストデータに認証情報を埋め込み、再現されるリクエストデータを生成する。そして、権限切替再現部２１は、生成したリクエストデータをウェブサーバ３に送信する。
【０１００】
続いて、権限切替再現部２１は、権限切替情報の権限切替開始番号から権限切替終了番号までの通信を再現する（ステップＳ１５６）。例えば、権限切替再現部２１は、権限切替情報の権限切替開始３２ｃが示す番号から権限切替情報の権限切替終了３２ｄが示す番号までのそれぞれの再現されるリクエストデータを順番にウェブサーバ３に送信する。再現されるリクエストデータは、各番号に該当する汎用化されたリクエストデータ３３ｂに具体的な内容が埋め込まれたリクエストデータであり、例えば通信記録呼出部１７によって行われる。
【０１０１】
そして、権限切替再現部２１は、トークン破棄部２２にトークンの破棄を依頼する（ステップＳ１５７）。例えば、権限切替再現部２１は、トークン管理テーブル３４から該当するトークン文字列に対応する情報を削除する。
【０１０２】
［実施例の効果］
上記実施例によれば、中継装置１は、端末２Ａからウェブサーバ３に送信されたリクエストデータと当該ウェブサーバ３から受信したレスポンスデータとを通信記録テーブル３１に記録する。そして、中継装置１は、通信先の端末が切り替えられてから処理されるリクエストデータに関する情報である切替情報を権限切替記録テーブル３２に記録する。そして、中継装置１は、権限切替記録テーブル３２に記録された切替情報に基づいて、通信先の端末を切り替え、通信記録テーブル３１に記録されたリクエストデータ及びレスポンスデータを再現する。かかる構成によれば、中継装置１は、あらかじめ記録された切替情報に基づいて、通信先の端末を切り替えるようにしたので、同じ端末２Ａから複数人の認証情報を送らなくても、協調型ウェブアプリに係る操作を再現できる。例えば、ユーザＡの端末２Ａに対して再現に関わるユーザＢが自身の認証情報を渡してしまった場合に、ユーザＡが、ユーザＢのいない時でも許可なくユーザＢの認証情報を利用することを防止できる。この結果、中継装置１は、協調型ウェブアプリに係る操作であっても、セキュリティを担保しつつ、再現することができる。
【０１０３】
また、上記実施例によれば、中継装置１は、識別番号を備えるリクエストデータについて、通信先の端末２Ａが切り替えられてから処理されるリクエストデータの切替開始の識別番号及び切替終了の識別番号を切替情報として権限切替記録テーブル３２に記録する。そして、中継装置１は、端末２Ａから再現要求を受け取ると、再現されるリクエストデータの識別番号が切替情報に記録された切替開始の識別番号と一致するか否かを判定する。そして、中継装置１は、一致すると判定した場合、端末２Ａに通信先を切り替えさせ、切り替えられた通信先からの切り替えに関わる認証情報に応じて当該リクエストデータを再現する。かかる構成によれば、中継装置１は、端末２Ａに通信先を切り替えさせ、切り替えられた通信先からの当該通信先に関する認証情報を取得できるので、認証情報に応じて権限を切り替えることができ、切り替えた権限でリクエストデータを再現できる。したがって、中継装置１は、同じ端末２Ａから複数人の認証情報を送らなくても、協調型ウェブアプリに係る操作を再現できる。
【０１０４】
また、上記実施例によれば、中継装置１は、リクエストデータの識別番号が切替情報に記録された切替開始の識別番号と一致すると判定した場合、端末２Ａに対してトークンを発行する。そして、中継装置１は、発行したトークンを用いて端末２Ａに通信先を切り替えさせ、切り替えられた通信先からの切り替えに関わる認証情報に応じて当該リクエストデータを再現する。かかる構成によれば、中継装置１は、トークンを用いることで、端末２Ａから別の端末へ通信先を切り替えさせ、切り替え先の認証情報を取得できるので、同じ端末２Ａから複数人の認証情報を送らなくても、協調型ウェブアプリに係る操作を容易に再現できる。
【０１０５】
また、上記実施例によれば、中継装置１は、通信記録処理の際、レスポンスデータを受信すると、切替情報を参照し、切替開始の識別番号が記録されているか否かを判定する。そして、中継装置１は、切替開始の識別番号が記録されていないと判定した場合、通信先の切り替えを要するリクエストデータの場合に通信先の切り替えの変更があることを端末２Ａに通知させるためのスクリプトデータを、受信したレスポンスデータに挿入する。そして、中継装置１は、スクリプトデータを挿入したレスポンスデータを端末２Ａに送信し、端末２Ａからの通知に応じて切替情報を更新する。かかる構成によれば、中継装置１は、通信記録処理の際、通信先の切り替えの変更があるタイミングを切替情報に設定するので、通信記録を再現する際、切替情報を用いて通信先の切り替えの変更をすることが可能となる。
【０１０６】
［プログラム等］
なお、中継装置１は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した制御部１０等の各機能を搭載することによって実現することができる。
【０１０７】
また、中継装置１は、通信記録処理と再現処理とを有するとして説明した。しかしながら、通信記録処理と再現処理とは、同じ中継装置でなくとも良く、別々の中継装置に有するとしても良い。かかる場合、通信記録テーブル３１、権限切替記録テーブル３２および汎用処理テーブル３３が、それぞれの中継装置から共有できるようにすれば良い。
【０１０８】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、通信記録部１３とスクリプト挿入部１４とを１個の部として統合しても良いし、権限切替再現部２１とトークン破棄部２２とを１個の部として統合しても良い。一方、権限切替再現部２１を、権限切替の通信を再現する処理部と、権限切替が開始されてから終了されるまでの通信を再現する処理部とに分散しても良い。また、通信記録テーブル３１、権限切替記録テーブル３２及び汎用処理テーブル３３を中継装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１０９】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図１８を用いて、図１に示した中継装置１の制御部１０と同様の機能を有する中継プログラムを実行するコンピュータの一例を説明する。
【０１１０】
図１８は、中継プログラムを実行するコンピュータを示す図である。図１８に示すように、コンピュータ１０００は、ＲＡＭ（Random  Access  Memory）１０１０と、ネットワークインタフェース装置１０２０と、ＨＤＤ１０３０と、ＣＰＵ（Central  Processing  Unit）１０４０、媒体読取装置１０５０及びバス１０６０とを有する。ＲＡＭ１０１０、ネットワークインタフェース装置１０２０、ＨＤＤ１０３０、ＣＰＵ１０４０、媒体読取装置１０５０は、バス１０６０によって接続されている。
【０１１１】
そして、ＨＤＤ１０３０には、図１に示した制御部１０と同様の機能を有する中継プログラム１０３１が記憶される。また、ＨＤＤ１０３０には、図１に示した通信記録テーブル３１、権限切替記録テーブル３２、汎用処理テーブル３３及びトークン管理テーブル３４に対応する中継処理関連情報１０３２が記憶される。
【０１１２】
そして、ＣＰＵ１０４０が中継プログラム１０３１をＨＤＤ１０３０から読み出してＲＡＭ１０１０に展開することにより、中継プログラム１０３１は、中継プロセス１０１１として機能するようになる。そして、中継プロセス１０１１は、中継処理関連情報１０３２から読み出した情報等を適宜ＲＡＭ１０１０上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
【０１１３】
媒体読取装置１０５０は、中継プログラム１０３０がＨＤＤ１０３０に格納されていない場合であっても中継プログラム１０３０を記憶する媒体等から中継プログラム１０３１を読み取る。媒体読取装置１０５０には、例えばＣＤ−ＲＯＭや光ディスク装置がある。また、ネットワークインタフェース装置１０２０は、外部装置とネットワーク経由で接続する装置であり、有線、無線がある。
【０１１４】
なお、上記の中継プログラム１０３１は、必ずしもＨＤＤ１０３０に格納されている必要はなく、ＣＤ−ＲＯＭ等の媒体読取装置１０５０に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等を介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）等にこのプログラムを記憶させておいても良い。この場合には、コンピュータ１０００がネットワークインタフェース装置１０２０を介してこれらからプログラムを読み出して実行する。
【符号の説明】
【０１１５】
１  中継装置
１０  制御部
１１  端末通信部
１２  外部サービス通信部
１３  通信記録部
１４  スクリプト挿入部
１５  権限切替記録部
１６  汎用化部
１７  通信記録呼出部
１８  記録再現部
１９  権限切替記録呼出部
２０  トークン発行部
２１  権限切替再現部
２２  トークン破棄部
３１  通信記録テーブル
３２  権限切替記録テーブル
３３  汎用処理テーブル
３４  トークン管理テーブル
２Ａ、２Ｂ  端末
３  ウェブサーバ
４１  ウェブアプリケーション
９  ウェブ中継システム
【図１】
2014106911.tif 000003
【図２】
2014106911.tif 000004
【図３】
2014106911.tif 000005
【図４】
2014106911.tif 000006
【図５】
2014106911.tif 000007
【図６】
2014106911.tif 000008
【図７】
2014106911.tif 000009
【図８Ａ】
2014106911.tif 000010
【図８Ｂ】
2014106911.tif 000011
【図８Ｃ】
2014106911.tif 000012
【図８Ｄ】
2014106911.tif 000013
【図９】
2014106911.tif 000014
【図１０】
2014106911.tif 000015
【図１１】
2014106911.tif 000016
【図１２】
2014106911.tif 000017
【図１３】
2014106911.tif 000018
【図１４】
2014106911.tif 000019
【図１５】
2014106911.tif 000020
【図１６】
2014106911.tif 000021
【図１７】
2014106911.tif 000022
【図１８】
2014106911.tif 000023