(57)【要約】【課題】Ｗｅｂページに対するＷｅｂブラウザのユーザ操作やバックグラウンド通信処理内容を記録・再現する。【解決手段】バックグラウンド通信処理を提供するオブジェクトを修正し記録／再現する機能を具備させることによりバックグラウンド通信内容を記録／再現する機能を提供する。基本機能として再現処理が提供されていないマウスカーソル移動操作処理は画像等を使用した擬似的なマウスカーソルをＷｅｂページ上に表示することで再現処理を提供する。同じく基本機能として再現処理が提供されていないキーボード操作処理は対象となるＷｅｂページを解析しキーボードイベントに対し設定されているイベントハンドラを検出し、記録したキーボードイベントと同等の情報をもつオブジェクトを生成し、当該生成したオブジェクトをキーボードイベントの代わりの引数として前記検出したイベントハンドラに渡して実行するスクリプトを生成する機能により再現処理を提供する。【選択図】図１
2008117093.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂブラウザに対するユーザの操作を記録するユーザ操作記録方法であって、
前記Ｗｅｂブラウザは、
ユーザの操作により当該Ｗｅｂブラウザで発生したイベントの情報を記録し、記録したイベントの情報を、当該Ｗｅｂブラウザが読み込むスクリプトのバックグラウンド通信機能を用いて、Ｗｅｂサーバに送信し、
前記Ｗｅｂサーバは、
前記Ｗｅｂブラウザから受信した前記イベントの情報を記録する
ことを特徴とするユーザ操作記録方法。
【請求項２】
請求項１に記載のユーザ操作記録方法であって、
前記Ｗｅｂブラウザが読み込むスクリプトにおいて、バックグラウンド通信処理を提供するオブジェクトを修正することにより、通信内容を記録し、記録した通信内容の情報をスクリプトのバックグラウンド通信機能を用いてＷｅｂサーバに送信する
ことを特徴とするユーザ操作記録方法。
【請求項３】
請求項１に記載のユーザ操作記録方法であって、
前記Ｗｅｂブラウザが読み込むスクリプトにより、テキスト入力フォームに対するキーボード操作によりイベントが発生した際にイベントの情報の他にテキスト入力フォームに対し入力されている文字列をイベント情報とともに記録し、記録した通信内容の情報をスクリプトのバックグラウンド通信機能を用いてＷｅｂサーバに送信する
ことを特徴とするユーザ操作記録方法。
【請求項４】
Ｗｅｂサーバが提供するユーザ操作再現方法であって、
前記Ｗｅｂサーバは、
Ｗｅｂページに対するユーザのＷｅｂブラウザによる操作の記録と、前記Ｗｅｂページに基づき前記操作の記録に記録されている前記Ｗｅｂページに対するユーザのＷｅｂブラウザによる操作を再現するスクリプトを生成し、生成した前記スクリプトをＷｅｂブラウザに送信し、
前記Ｗｅｂブラウザは、前記スクリプトを受信し、受信した前記スクリプトを実行することにより、前記Ｗｅｂページに対するユーザのＷｅｂブラウザによる操作を再現する
ことを特徴とするユーザ操作再現方法。
【請求項５】
請求項４に記載のユーザ操作再現方法であって、
前記Ｗｅｂサーバが生成しＷｅｂブラウザが読み込むスクリプトにより、
キーボード操作を再現する際に操作対象の要素に対応するイベントハンドラを、前記Ｗｅｂページを解析して取得し、
前記キーボード操作に対応するイベントオブジェクトと同等の情報を持つオブジェクトを生成し、
生成した前記オブジェクトを、取得した前記イベントハンドラに渡すことによりキーボード操作によるイベント処理を再現する
ことを特徴とするユーザ操作再現方法。
【請求項６】
請求項４に記載のユーザ操作再現方法であって、
前記Ｗｅｂサーバが生成しＷｅｂブラウザが読み込むスクリプトにおいて、
マウスカーソルの移動操作を再現する際に、擬似的なマウスカーソルを前記Ｗｅｂブラウザ上に表示する
ことを特徴とするユーザ操作再現方法。
【請求項７】
請求項４に記載のユーザ操作再現方法であって、
前記Ｗｅｂサーバが生成しＷｅｂブラウザが読み込むスクリプトにおいて、
テキスト入力フォームに対するキーボード操作を再現する際に、前記キーボード操作の記録に記載されている前記テキスト入力フォームに入力されている文字列を、前記テキスト入力フォームの入力文字列として設定する
ことを特徴とするユーザ操作再現方法。
【請求項８】
請求項４に記載のユーザ操作再現方法であって、
前記Ｗｅｂサーバが生成しＷｅｂブラウザが読み込むスクリプトにおいて、
バックグラウンド通信処理を再現する際に、バックグラウンド通信処理用オブジェクトを修正し、前記操作の記録に記載されているバックグラウンド通信処理内容を通信処理結果として処理させる
ことを特徴とするユーザ操作再現方法。
【請求項９】
Ｗｅｂブラウザに対するユーザの操作を記録するユーザ操作記録システムであって、
前記Ｗｅｂブラウザは、
ユーザの操作により当該Ｗｅｂブラウザで発生したイベントの情報を記録し、記録したイベントの情報を、当該Ｗｅｂブラウザが読み込むスクリプトのバックグラウンド通信機能を用いて、Ｗｅｂサーバに送信し、
前記Ｗｅｂサーバは、
前記Ｗｅｂブラウザから受信した前記イベントの情報を記録する
ことを特徴とするユーザ操作記録システム。
【請求項１０】
ＷｅｂブラウザとＷｅｂサーバとを備え、当該Ｗｅｂブラウザに対するユーザの操作を再現するユーザ操作再現システムであって、
前記Ｗｅｂサーバは、
Ｗｅｂページに対するユーザのＷｅｂブラウザによる操作の記録と、Ｗｅｂページに基づき前記操作の記録に記録されている前記Ｗｅｂページに対するユーザのＷｅｂブラウザによる操作を再現するスクリプトを生成し、生成した前記スクリプトをＷｅｂブラウザに送信し、
前記Ｗｅｂブラウザは、前記スクリプトを受信し、受信した前記スクリプトを実行することにより、前記Ｗｅｂページに対するユーザのＷｅｂブラウザによる操作を再現する
ことを特徴とするユーザ操作再現システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂアプリケーションが提供するＷｅｂページに対するＷｅｂブラウザを用いた利用者ユーザの操作を、記録、再現することを可能とするＷｅｂアプリケーション管理技術に関する。
【背景技術】
【０００２】
インターネットなどのネットワークにおいて、Ｗｅｂをユーザインタフェースとして利用したアプリケーションのサービスが行われている。Ｗｅｂを利用することによってアプリケーション毎に専用のクライアントプログラムを用意する必要がなく、Ｗｅｂブラウザさえあれば、Ｗｅｂを利用したあらゆるアプリケーションを利用することができる。
【０００３】
Ｗｅｂアプリケーション利用が拡大し、Ｗｅｂ上のアプリケーションの使い方の説明や、利用者ユーザのＷｅｂアプリケーションの操作行動の確認、Ｗｅｂアプリケーション開発時の動作テストなどの目的のため、Ｗｅｂ上の利用者ユーザの操作を記録／再生を行う技術・製品が開発されている。しかしながらこれらの技術は既存のＷｅｂページに手を加える必要があったり、利用者ユーザのシステム環境に操作の記録／再生を行うためのソフトウェアのインストールが必要であったりする。
【０００４】
この問題に対処すべく、特許文献１には、Ｗｅｂブラウザに対する操作を記録／再生する、利用者ユーザのシステム環境にＷｅｂブラウザ以外の特殊なソフトウェアをインストールする必要のないシステムが開示されている。このシステムではＷｅｂ上の操作により発生するイベントを記録／再現する、ＪａｖａアプレットおよびＪａｖａＳｃｒｉｐｔを用いたプログラムを対象となるＷｅｂページのソースに挿入することで、Ｗｅｂブラウザに対するユーザの操作を記録／再現する機能を実現している。この方法によれば、ユーザのシステム環境に特殊なソフトウェアのインストールの必要なしに既存のＷｅｂページに手を加えることなく、Ｗｅｂブラウザに対するユーザの操作を記録／再現する機能を提供することができる。
【０００５】
【特許文献１】特開２０００−７６２６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の技術では、Ｊａｖａアプレットを用いているために最初に記録／再現するプログラムを起動する際に処理時間がかかる。
【０００７】
また、特許文献１には、記録したイベントの再現方法について詳細に記載されていない。例えば通常ＪａｖａＳｃｒｉｐｔでは実現不可能なマウスカーソルの移動操作や、キーボード操作の再現処理などについては、実現方法が不明である。
【０００８】
また、ＪａｖａＳｃｒｉｐｔによるバックグラウンド通信機能（ＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクトによるＨＴＴＰ通信機能）に対する記録／再現処理についても記載されておらず、ユーザの操作により発生したバックグラウンド通信を利用した処理動作の再現はできない。
【０００９】
本発明はこれらの課題に鑑みてなおされたものであり、その目的は、利用者ユーザのシステム環境に特殊なソフトウェアのインストールの必要なしに、ＪａｖａＳｃｒｉｐｔが再現処理をサポートしていないイベントに関連した操作及びバックグラウンド通信処理についても再現することを可能とするユーザ操作記録／再現処理装置を提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決すべく本発明では、Ｗｅｂブラウザが読み込むスクリプトのバックグラウンド通信機能を用いる。また、Ｗｅｂブラウザによる操作を再現するスクリプトを生成し、生成したスクリプトによりＷｅｂブラウザでユーザの操作を再現する。
【００１１】
例えば、本発明のＷｅｂブラウザに対するユーザの操作を記録するユーザ操作記録方法では、前記Ｗｅｂブラウザは、ユーザの操作により当該Ｗｅｂブラウザで発生したイベントの情報を記録し、記録したイベントの情報を、当該Ｗｅｂブラウザが読み込むスクリプトのバックグラウンド通信機能を用いて、Ｗｅｂサーバに送信する。前記Ｗｅｂサーバは、前記Ｗｅｂブラウザから受信した前記イベントの情報を記録する。
【００１２】
また、Ｗｅｂサーバが提供するユーザ操作再現方法では、前記Ｗｅｂサーバは、Ｗｅｂページに対するユーザのＷｅｂブラウザによる操作の記録と、前記Ｗｅｂページに基づき前記操作の記録に記録されている前記Ｗｅｂページに対するユーザのＷｅｂブラウザによる操作を再現するスクリプトを生成し、生成した前記スクリプトをＷｅｂブラウザに送信する。前記Ｗｅｂブラウザは、前記スクリプトを受信し、受信した前記スクリプトを実行することにより、前記Ｗｅｂページに対するユーザのＷｅｂブラウザによる操作を再現する。
【００１３】
本発明のユーザ操作記録・再現方法では、例えば、ＪａｖａＳｃｒｉｐｔのバックグラウンド通信機能（ＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクトの機能）を活用したＪａｖａＳｃｒｉｐｔのみを用いてブラウザ上のユーザの操作を記録・再現する機能をもつＷｅｂページを提供することができる。ＪａｖａＳｃｒｉｐｔが直接サポートしていないマウスカーソルの移動操作の再現処理については画像などを用いた擬似的なマウスカーソルをＷｅｂページ上に表示することによる再現機能を提供することができる。同じくＪａｖａＳｃｒｉｐｔが直接サポートしていないキーボード操作の再現処理については、対象となるＷｅｂページを解析しキーボードイベントに対し設定されているイベントハンドラを検出し、記録したキーボードイベントと同等の情報をもつオブジェクトを生成し、当該生成したオブジェクトをキーボードイベントの代わりの引数として前記検出したイベントハンドラに渡して実行するスクリプトを生成する機能により再現処理を提供することができる。また、バックグラウンド通信に対する記録処理についてはバックグラウンド通信処理機能を提供するオブジェクト（ＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクト）を修正し、通信内容を記録する機能を追加し、バックグラウンド通信処理もユーザ操作の記録と同様に記録処理を行う機能を提供する。バックグラウンド通信に対する再現処理についてもバックグラウンド通信処理機能を提供するオブジェクト（ＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクト）を修正し、サーバとの通信処理を行う代わりに記録された通信内容を直接再現し、通信が行われたのと同様に処理を実行させる処理実行するスクリプトを生成する機能により再現処理を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら、本発明の一実施形態について説明する。
【００１５】
図１は、本発明の一実施形態が適用されたネットワークシステムの概略構成図である
本実施形態のネットワークシステムには、ネットワークに接続された複数の情報処理装置１０、２０が含まれている。これらの情報処理装置の中には、（１）クライアントであるＷｅｂブラウザからの要求に応じて提供されるＷｅｂページに対し、ユーザの操作情報を記録する処理を追加したり、記録されたユーザの操作を再現する処理を追加したりする情報処理装置（以下、「ユーザ操作記録・再現処理装置」又は「サーバ」という）１０と、（２）Ｗｅｂブラウザがインストールされた１台以上の情報処理装置（以下、「Ｗｅｂブラウザ」という）２０とが含まれている。
【００１６】
なお、Ｗｅｂブラウザ２０はユーザの数だけ存在しうるが、図１では説明のため１つだけ示している。
【００１７】
これら各情報処理装置１０，２０はそれぞれの機能を実現するためのプログラムの実行に必要な通常のハードウェア構成（ＣＰＵ，メモリ、プログラムがインストールされたハードディスク等）及び、マウス、キーボードなどの入力装置、ディスプレイ装置を備えている。以下に説明する各要素および機能は、ＣＰＵが所定のプログラムを実行することにより実現される。
【００１８】
Ｗｅｂブラウザ２０は、その機能部として、ブラウザ基本処理部２０１を備えている。ブラウザ基本処理部２０１は、ユーザ操作記録・再現処理装置１０から受信したＷｅｂページに基づいてディスプレイ装置にＷｅｂページを表示する処理や、スクリプトに基づいてユーザ操作の記録・再現処理を行う。
【００１９】
ユーザ操作記録・再現処理装置１０は、その機能部として、サーバ基本処理部１０１と、操作ログ記録部１０２と、操作再現処理スクリプト生成部１０３とを備えている。
【００２０】
サーバ基本処理部１０２は、Ｗｅｂブラウザ２０からのユーザ操作記録処理機能をもつＷｅｂページの取得要求に応じて、当該ユーザ操作記録処理機能をもつＷｅｂページを送信する。そのため、サーバ基本処理部１０１は、提供する一つ以上のＷｅｂページ１０１１と、操作ログ取得送信処理スクリプト１０１２を保持し、これらを要求するＷｅｂブラウザ２０に送信する機能をもつ。
【００２１】
操作ログ記録部１０２は、操作ログ取得送信処理機能を具備したＷｅｂページをロード・表示したＷｅｂブラウザ２０から送信される操作ログ記録情報を受信し、当該操作ログ記録情報を操作ログ情報１０４に記録する。
【００２２】
操作再現処理スクリプト生成機能１０３は、操作ログ情報１０４から特定の操作ログを読み取り、当該操作ログに対応するＷｅｂページに対して当該操作ログに記録されている操作を再現する処理を行うスクリプトを生成する。
【００２３】
このような機能構成により、ユーザ操作記録・再現処理装置１０は、ユーザ操作記録機能と、ユーザ操作再現機能を備えることになる。
【００２４】
前者のユーザ操作記録機能は、Ｗｅｂブラウザ２０に提供するＷｅｂページに対し、ユーザ操作を記録し、ユーザ操作記録・再現処理装置１０に当該ユーザ操作情報を送信させ、操作ログ１０４に記録する、ユーザ操作情報記録送信機能を具備したＷｅｂページ１０１１Ａを提供する機能である。
【００２５】
後者のユーザ操作再現機能は、操作ログ１０４に記録された特定のユーザ操作情報を読み取り、当該ユーザ操作情報に対応するＷｅｂページに対して当該操作ログ１０４に記録されている操作を再現する処理を行うスクリプトを生成する。また、当該ユーザ操作情報に対応するＷｅｂページ１０１１Ｂと、生成した操作を再現する処理を行う当該スクリプトとを、Ｗｅｂブラウザ２０に提供する。
【００２６】
まず、ユーザ操作記録機能について説明する。
【００２７】
図２は、ユーザ操作記録・再現処理装置１０によるユーザ操作記録機能を実行する際の情報の流れを示したものである。ユーザ操作記録・再現処理装置１０のユーザ操作記録機能により提供される、ユーザ操作記録機能を具備したＷｅｂページ１０１１Ａは、操作ログ取得送信処理スクリプト１０１２を含むか若しくは参照するように記述されている。なお、Ｗｅｂページ１０１１Ａのソースに対し、操作ログ取得送信処理スクリプト１０１２を含むか参照するための記述は、Ｗｅｂページ１０１１Ａを作成する管理者ユーザが記述する。
【００２８】
図３は、Ｗｅｂページ１０１１Ａの一例である。かかる例では、操作ログ取得送信処理スクリプト１０１２は、その名称が”ｏｐｅｒａｔｉｏｎ−ｌｏｇｇｅｒ．ｊｓ”であり、参照形式により記載されている。
【００２９】
ユーザ操作記録・再現処理装置１０のサーバ基本処理部１０１は、Ｗｅｂブラウザ２０からユーザ操作記録処理機能をもつＷｅｂページの取得要求を受信すると、対象となるＷｅｂページ１０１１Ａおよび操作ログ取得送信処理スクリプト１０１２を、当該Ｗｅｂブラウザ２０に送信する。
【００３０】
Ｗｅｂブラウザ２０のブラウザ基本処理部２０１は、Ｗｅｂページ１０１１Ａおよび操作ログ取得送信処理スクリプト１０１２を受信すると、操作ログ取得送信処理スクリプト１０１２を実行し、Ｗｅｂブラウザ２０に対するユーザの操作を記録する。そして、記録したユーザ操作情報を、ユーザ操作記録・再現処理装置１０に送信する。
【００３１】
ユーザ操作記録・再現処理装置１０の操作ログ記録部１０２は、当該ユーザ操作情報を受信すると、操作ログ１０４に当該受信したユーザ操作情報を記録する。
【００３２】
図４は、ユーザ操作記録処理の流れを示すフロー図である。
【００３３】
Ｗｅｂブラウザ２０のブラウザ基本処理部２０１は、対象となるＷｅｂページ１０１１Ａを読み込むと、そのソースに記載されている参照先の操作ログ取得送信処理スクリプト１０１２を読み込み、当該スクリプトの実行を開始する。このとき、操作ログ取得送信処理スクリプト１０１２による操作ログ取得送信処理の実行に先立ち、以下のような初期処理を行う（Ｓ１０１）。
【００３４】
まず、ブラウザ基本処理部２０１は、操作ログ取得送信処理スクリプト１０１２に従って、ＪａｖａＳｃｒｉｐｔによるバックグラウンド通信を実現するためのオブジェクトＸＭＬＨｔｔｐＲｅｑｕｅｓｔを修正し、バックグラウンド通信の通信内容も操作ログとして取得・送信するようにする。
【００３５】
図５は、このようなバックグランド通信の通信内容を操作ログとして取得・送信するようにＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクトを修正する処理を記述したＪａｖａＳｃｒｉｐｔの一例である。ただし説明のため左端に行番号を付加している。
【００３６】
ＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクトでは、ｏｐｅｎメソッドにより接続先サーバと接続時メソッドを指定され、ｓｅｎｄメソッドにより当該接続先サーバにＨＴＴＰリクエストが送信される。そして、接続先サーバからＨＴＴＰレスポンスを受信するとｏｎｌｏａｄ属性に設定されたメソッドが実行される。
【００３７】
そこで、ブラウザ基本処理部２０１は、ｓｅｎｄメソッドを修正し、リクエスト情報をユーザ操作情報して記録するように上書き定義する（図５の９〜１７行目）。また、ｏｎｌｏａｄ属性に対し当該接続先サーバから受信した情報についてもユーザ操作情報として記録する（図５の１２行目のｓｅｎｄ＿ｘｈｒ＿ｌｏｇ関数はＵＲＬ、リクエスト情報、レスポンス情報をユーザ操作記録・再現処理装置１０に送信する処理を行うものとする）ようにメソッドを設定する。こうして、バックグラウンド通信の内容を記録する機能を実現する。
【００３８】
さらに、ブラウザ基本処理部２０１は、Ｗｅｂブラウザ２０に対するユーザ操作により発生するイベントの情報を記録するように、イベントを処理するイベントハンドラを定義する。
【００３９】
ＪａｖａＳｃｒｉｐｔでは、イベントの種類およびイベントが発生する要素ごとにイベントハンドラを定義することができる。
【００４０】
そこで、ブラウザ基本処理部２０１は、イベントの種類として、記録する対象のイベントすべてを指定する。また、イベントが発生する要素として、ブラウザで表示しているＷｅｂページ全体を指定する。そして、発生したイベントの情報を示す文字列を生成し、生成した文字列をユーザ操作記録情報としてユーザ操作記録・再現処理装置１０に送信する処理を、イベントハンドラとして設定する。当該イベントハンドラには、後述するＳ１０２〜１０３を処理するメソッドを実装したものが設定される。
【００４１】
最後に、ブラウザ基本処理部２０１は、記録したユーザ操作情報をＷｅｂブラウザ２０のメモリ上に一定量保存しておくための操作ログバッファを初期化する。ＪａｖａＳｃｒｉｐｔにより実装する場合の一例としては、Ａｒｒａｙオブジェクト操作ログバッファとして利用する方法が挙げられる。
【００４２】
初期化処理が完了すると、ブラウザ基本処理部２０１は、Ｗｅｂブラウザ２０に対するユーザの操作によるイベント発生を待機する（Ｓ１０２）。
【００４３】
ブラウザ２０に対し、ユーザが操作を行い、その操作に関連したイベントが発生すると、ブラウザ基本処理部２０１は、Ｓ１０１の初期化処理により設定されたイベントハンドラを実行し、発生したイベントに応じて、イベント情報を文字列化する（Ｓ１０３）。
【００４４】
図６は、イベント情報を文字列化したものを記録した一例を示している。ただし説明のために左端に行番号を付加している。
【００４５】
例えば１行目の文字列は、日本時間で２００６年７月１３日１７時４６分２０秒に、ｈｔｔｐ：／／ｌｏｇ．ｓａｍｐｌｅ．ｃｏｍ／のＵＲＬで示されるページで発生した、”ｍｏｕｓｅｐａｎｅｌ”のＩＤのついたタグ要素をターゲットとしてマウスカーソルが要素上に位置したことを示すイベントを文字列化したものである。また、補足情報としてイベント発生時のマウスカーソルがページ内の相対座標で（５０，１３０）に位置していたことを示している。
【００４６】
２行目の文字列は、”ｋｅｙｐａｎｅｌ”のＩＤのついたタグ要素をターゲットとしてキーボードのキーが押し下げられたことを示すイベントを文字列化したものである。補足情報として押し下げられたキーのコードが６５であったことを示している。
３行目の文字列は、マウスカーソルが移動したことを示すイベントを文字列化したものである。補足情報として移動を検知した際のマウスカーソルの位置が相対座標で（６０，１４０）にあったことを示している。
【００４７】
４〜７行目の文字列は、”ｉｎｐｕｃｈａｔ”のＩＤのついたテキスト入力可能なフォームタグ要素をターゲットとしてキーボードのキーが押し下げられたことを示すイベントを文字列化したものである。２行目の場合と異なり、テキスト入力可能なフォームタグの場合、補足情報として押し下げられたキーのコードのほかにフォーム内の入力文字列も記録している。８行目の文字列は、バックグラウンド通信処理が発生したことを示すイベントを文字列化したものである。補足情報としてＨＴＴＰ通信時のＵＲＬが”ｈｔｔｐ：／／ｌｏｇ．ｓａｍｐｌｅ．ｃｏｍ／ａｊａｘ”，メソッドが”ＧＥＴ”、リクエストデータがなく、レスポンスデータが”送信結果サンプル”であったことを示している。
【００４８】
図６の一例で示したように、ブラウザ基本処理部２０１は、発生したイベント情報を文字列化する際、イベント情報として発生した時刻、発生したページのＵＲＬ、発生したイベントの種類、発生したイベントのターゲットとなる要素、発生したイベントに対応した補足情報を示すよう処理する。
【００４９】
ブラウザ基本処理部２０１は、補足情報として、上記の例のように、マウスカーソル操作に関するイベントの場合には、マウスカーソルの位置情報を、キーボード操作に関するイベントの場合は操作されたキーの情報や、対象となるフォーム（ＩＮＰＵＴタグ要素やＴＥＸＴＡＲＥＡタグ要素）に入力されている文字列情報を記録する。
【００５０】
ブラウザ基本処理部２０１は、バックグラウンド通信が発生した場合には、補足情報として、接続先ＵＲＬ、ＨＴＴＰ通信メソッド、リクエスト情報、レスポンス情報を記録する。
【００５１】
なお、キーボード操作に関するイベントの補足情報としては、通常は操作されたキーの情報さえあれば、対象となるフォームに入力されている文字列情報を記録する必要はない。しかしながら、Ｗｅｂブラウザ２０を実行しているオペレーティングシステム上で提供される日本語入力用プログラム等のユーザの利用言語に応じた入力プログラムを介してＷｅｂブラウザ２０に対して文字列入力操作を行っている場合は操作されたキーの情報が正しく取得されないことがある。そこで、ブラウザ基本処理部２０１は、図６の一例で示したように、対象となるフォームに入力されている文字列情報について記録する。こうすることで、ユーザが実際に入力した文字列を正確に記録することができる。
【００５２】
次に、ブラウザ基本処理部２０１は、Ｓ１０３で生成された操作ログ文字列を操作ログバッファに追加する（Ｓ１０４）。
【００５３】
そして、ブラウザ基本処理部２０１は、発生したイベントが「画面遷移」や「ウインドウを閉じる」を示すイベントであるか否かを判定し（Ｓ１０５）、そうである場合（Ｓ１０５でＹ）、後述する操作ログの送信処理（Ｓ１０７）に処理を移行する。なお、「画面遷移」のイベントとは、例えば、リンクジャンプや、送信ボタンや、戻る・進むボタンや、リロード（再読み込み、更新）などを示すイベントである。
【００５４】
一方、発生したイベントが「画面遷移」や「ウインドウを閉じる」を示すイベントでない場合（Ｓ１０５でＮ）、ブラウザ基本処理部２０１は、追加した操作ログバッファのサイズが所定の送信サイズか否か確認する（Ｓ１０６）。なお、送信サイズは任意の大きさでよく、小さく設定すれば頻繁にユーザ操作記録・再現処理装置１０に少量サイズの操作ログ文字列を送信することとなり、大きく設定すれば大量サイズの操作ログ文字列を、送信間隔をあけてユーザ操作記録・再現処理装置１０に送信することとなる。実装するネットワークの付加状況を考慮するなどして操作ログバッファのサイズは、適宜変更することができる。
【００５５】
前記操作ログバッファのサイズが送信サイズ未満である場合（Ｓ１０６でＮ）、ブラウザ基本処理部２０１は、Ｓ１０２の処理に戻る。
【００５６】
一方、操作ログバッファのサイズが所定の送信サイズに到達している場合（Ｓ１０６でＹ）、ブラウザ基本処理部２０１は、ログ情報の送信処理（Ｓ１０７）に移行する。
【００５７】
Ｓ１０７では、ブラウザ基本処理部２０１は、操作ログバッファに蓄積されている全操作ログ文字列を、ユーザ操作記録・再現処理装置１０に送信する。その後、バッファを初期化し、Ｓ１０２の処理に戻る。
【００５８】
以上、ユーザ操作記録処理について説明した。
【００５９】
次に、ユーザ操作再現機能について説明する。
【００６０】
図７は、かかるユーザ操作再現機能を説明するための図である。
【００６１】
ユーザ操作記録・再現処理装置１０のユーザ操作再機能により提供される、ユーザ操作再現機能を具備したＷｅｂページ１０１１Ｂは、操作再現処理スクリプト生成部１０３により生成される操作再現処理スクリプト１０３１を含むか、もしくは参照するように記述されている。なお、Ｗｅｂページ１０１１Ｂのソースに対し、操作ログ取得送信処理スクリプト１０３１を含むか参照するための記述は、Ｗｅｂページ１０１１Ｂを作成する管理者ユーザにより記述される。
【００６２】
ユーザ操作記録・再現処理装置１０の操作再現処理スクリプト生成部１０３は、あらかじめ、操作ログ１０４のうち再現対象の操作ログを抽出し、当該抽出した操作ログを再現する操作再現処理スクリプト１０３１を生成する。
【００６３】
操作再現処理スクリプト１０３１の生成処理は、ユーザ操作記録・再現処理装置１０の管理者ユーザにより、操作ログ１０４に記録されている情報から対象となる操作ログが指定されることにより、実行される。
【００６４】
なお、操作ログ１０４に記録する情報として、操作者のユーザＩＤや、セッションＩＤが同時に記録されるようにすることで、対象Ｗｅｂページの操作者を特定することが容易になる。通常、ユーザＩＤやセッションＩＤは、対象となるＷｅｂページを提供するＷｅｂアプリケーションが管理する場合がほとんどであり、ユーザＩＤやセッションＩＤを操作ログ１０４に記録する場合は、Ｗｅｂアプリケーションから情報を得る必要がある。ユーザＩＤやセッションＩＤは、一般にＷｅｂブラウザ２０のクッキー機能を利用したものがほとんどであるが、その実装方法は様々である。ここでは具体的な連携方法については省略する。
【００６５】
サーバ基本処理部１０１は、Ｗｅｂブラウザ２０からユーザ操作再現処理機能をもつＷｅｂページの取得要求を受信すると、対象となるＷｅｂページ１０１１Ｂおよび操作再現処理スクリプト１０３１を当該Ｗｅｂブラウザ２０に送信する。
【００６６】
Ｗｅｂブラウザ２０のブラウザ基本処理部２０１は、Ｗｅｂページ１０１１Ｂおよび操作再現処理スクリプト１０３１を受信すると、操作再現処理スクリプト１０３１を実行し、操作ログ１０４に蓄積されている特定のユーザ操作を再現する処理を実行する。
【００６７】
以下、図８のフローに従い、ユーザ操作記録・再現処理装置１０のユーザ操作再現機能により提供されるユーザ操作再現機能を、対象となるＷｅｂページ１０１１Ｂに具備させるための操作再現処理スクリプト１０３１を生成する処理手順を説明する。
【００６８】
操作再現処理スクリプト１０３１には、初期化処理の後に、操作ログ１０４に蓄積されているユーザ操作情報のうち特定のものを再現する処理が記述される。
【００６９】
図９は初期化処理を行うＪａｖａＳｃｒｉｐｔの一例である。ただし説明のため左端に行番号が付加されている。
【００７０】
操作再現処理スクリプト生成部１０３は、バックグラウンド通信処理の再現処理のためのＸＭＬＨｔｔｐＲｅｑｕｅｓｔの修正処理と、擬似マウスカーソルの表示処理とが初期化処理として実行されるように、操作再現処理スクリプト１０３１に記述する（Ｓ２０１）。
【００７１】
まず、操作再現処理スクリプト生成部１０３は、ＪａｖａＳｃｒｉｐｔにおけるバックグラウンド通信処理機能を提供するＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクトを修正し（図９の０〜２２行目）、サーバとの通信処理は行わせず、操作ログ１０４に記録された通信情報を再現するように上書き設定する。具体的にはｓｅｎｄメソッドを上書きし、ＨＴＴＰ通信処理を行わせず、サーバからのレスポンス情報として操作ログ１０４に記録された情報を設定し、ｏｎｌｏａｄ属性に設定されたメソッドを実行させるようにする（図９の１１〜２０行目）。この修正処理により操作ログ１０３に記録されたバックグラウンド通信処理を再現することができるようになる。
【００７２】
また、操作再現処理スクリプト生成部１０３は、擬似的にマウスカーソルを表現する要素（マウスカーソルを模した画像を利用する場合は当該画像を示すＩＭＧタグ、単純な正方形や文字列（例えば”＋”の文字）を利用する場合は当該要素を示すＤＩＶタグなどのタグを利用する）をＷｅｂブラウザ２０で表示しているＷｅｂページ１０１１Ｂ上に表示するための記述処理を行う。
【００７３】
図９の初期化処理の一例では、２３〜３３行目で文字列”＋”を、マウスカーソルを模したものとしてＷｅｂブラウザ２０上に表示する処理を記述している。多くのＷｅｂブラウザが具備するＪａｖａＳｃｒｉｐｔの実行環境ではマウスカーソルの移動イベントを再現する機能を仕様として備えているものの、実際にユーザが利用しているマウスカーソルを移動させる機能は実現されていないため、このような擬似的なマウスカーソルをマウスカーソルの移動操作の再現に利用する。
【００７４】
次に、操作ログ１０４のうち管理者ユーザにより特定されたものを読み込む（図８のＳ２０２）。このとき、操作ログ１０４に蓄積されている管理者ユーザが特定した全てのユーザ操作情報の読み込みが完了している場合、本フロー（操作再現処理スクリプトの生成処理）を終了する。一方、まだ読み込み済みでないユーザ操作情報を読み込めた場合、その操作情報に記述されているイベントの種類を判定し（Ｓ２０３）、イベントの種類に応じた再現処理スクリプトを生成する。
【００７５】
図１０は、イベントの再現処理を記述したスクリプトの一例である。以下イベントの種類ごとに再現処理スクリプトの生成方法を詳細に説明する。
【００７６】
ＪａｖａＳｃｒｉｐｔの機能により、その再現が可能なイベントの場合、以下のように再現処理スクリプトを生成する（図８のＳ２０４〜Ｓ２０６）。なお、ＪａｖａＳｃｒｉｐｔの機能によりその再現が可能なイベントには、ｍｏｕｓｅｏｖｅｒイベント・ｍｏｕｓｅｏｕｔイベントなどがある。
【００７７】
まず、操作再現処理スクリプト生成部１０３は、当該イベントの操作対象要素オブジェクトとして、イベントのターゲットを取得する処理を記述する（Ｓ２０４）。イベントのターゲットを取得するには、ＪａｖａＳｃｒｉｐｔが基本機能として提供するＤｏｃｕｍｅｎｔオブジェクトのｇｅｔＥｌｅｍｅｎｔＢｙＩｄメソッドやｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅメソッドを利用する。ｇｅｔＥｌｅｍｅｎｔＢｙＩｄメソッドは、ＩＤを指定し、指定されたＩＤと一致する値をＩＤ属性の値として保持するタグ要素を一つ取得する。ｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅメソッドは、タグ名を指定し、指定されたタグ名と一致するタグすべてを取得する。ユーザ操作情報にターゲット要素の情報としてＩＤが記載されている場合は、ｇｅｔＥｌｅｍｅｎｔＢｙＩｄメソッドを利用してターゲット要素を取得する。ＩＤが記載されておらず（ＩＤ属性を保持しない）、タグ名と何番目に現れているタグかを示す番号（以下タグ番号）のみが記載されている場合は、ｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅメソッドを用い、タグ名が一致するタグすべてを取得したのち、当該タグ名が一致するタグのうちタグ番号目のタグをターゲット要素として取得する。
【００７８】
次に、操作再現処理スクリプト生成部１０３は、ＪａｖａＳｃｒｉｐｔが基本機能として提供しているイベントの生成機能を利用してイベントを生成する処理を記述する（Ｓ２０５）。
【００７９】
ＤｏｃｕｍｅｎｔオブジェクトにｃｒｅａｔｅＥｖｅｎｔメソッドというイベント生成機能が用意されている。また、これを利用して生成されるＥｖｅｎｔオブジェクトにｉｎｉｔＭｏｕｓｅＥｖｅｎｔメソッドやｉｎｉｔＵＩＥｖｅｎｔメソッド等のイベント情報の設定機能が用意されている。これらのメソッドを利用することでイベントを生成することができる。
【００８０】
次に、Ｓ２０４で記述する操作対象オブジェクトの取得処理により取得されるターゲット要素に対し、Ｓ２０４〜Ｓ２１１で記述する操作イベントオブジェクトの生成処理により生成されるイベントを発生させる処理を記述する（Ｓ２０６）。前記イベントを引数として、前記ターゲット要素のｄｉｓｐａｔｃｈＥｖｅｎｔメソッド呼び出すことでイベントを発生させることができる。
【００８１】
図１０の１〜４行目には、ＩＤとして”ｍｏｕｓｅｐａｎｅｌ”を持つタグ要素上にマウスカーソルが移動したことを示すイベントを再現する処理が記述されている。ｃｒｅａｔｅＥｖｅｎｔメソッドによりマウスイベントを生成し（図１０の１行目）、マウスカーソルがタグ要素上に配置されたことを示すイベント”ｍｏｕｓｅｏｖｅｒ”として初期化し（図１０の２行目）、”ｍｏｕｓｅｐａｎｅｌ”のＩＤをもつタグ要素を取得し（図１０の３行目）、取得したタグ要素に対し生成したマウスイベントをｄｉｓｐａｔｃｈＥｖｅｎｔメソッドで割付処理をすることで、マウスイベントの再現処理を実現している。
【００８２】
次に、生成不可能のイベントの場合（図８のＳ２０７〜Ｓ２０８）について説明する。
【００８３】
キーボード操作に関するイベントの場合、多くのＷｅｂブラウザが持つＪａｖａＳｃｒｉｐｔの実行環境はその基本機能として再現する機能を持っていない。そこで、操作再現処理スクリプト生成部１０３は、キーボード操作に関するイベントと同様の情報を持つオブジェクト（以下、代替キーボードイベントオブジェクト）をイベントオブジェクトの代わりに生成し（Ｓ２０７）、生成した代替キーボードイベントオブジェクトを引数として、対応するイベントハンドラを呼び出す処理を記述する（Ｓ２０８）。
【００８４】
代替キーボードイベントオブジェクト生成処理については、ユーザ操作情報に記録されているイベントのタイプとキーコード情報を、それぞれ”ｔｙｐｅ”属性および”ｋｅｙＣｏｄｅ”属性の値として保持するオブジェクトを生成する処理の記述により実現する。前記対応するイベントハンドラの呼び出し処理は、ユーザ操作情報に記録されているイベントターゲット要素に設定されているイベントハンドラを、元となるＷｅｂページを解析して取得し、当該取得したイベントハンドラのメソッドをステップ６０４−２０において記述される処理で生成される代替キーボードイベントオブジェクトを引数として呼び出す記述により実現する。
【００８５】
イベントハンドラの取得は、以下の解析処理により行う。まずＪａｖａＳｃｒｉｐｔにおけるキーボードイベントはターゲット要素から上位階層のタグ要素に向かって順々に処理され、ターゲット要素から最上位のタグ要素の間でイベントハンドラが設定されていれば、それらをすべて実行する仕組みになっている。従って、ユーザ操作情報に記録されているターゲット要素から最上位のタグ要素を順にたどり、それらのタグ要素に設定されているキーボードイベントハンドラとして設定されているスクリプトをすべて取得すればよい。
【００８６】
図１０の５〜１１行目には、ＩＤとして”ｋｅｙｐａｎｅｌ”のを持つタグ要素上で”ａ”キーが押し下げられたことを示すイベントを再現する処理が記述されている。”ｋｅｙｐａｎｅｌ”のＩＤをもつタグ要素を取得し（図１０の５行目。ここでは”ｋｅｙｐａｎｅｌ”のタグ要素上にのみイベントハンドラが設定されていることが解析されたものとしている）、そのタグ要素がもつイベントハンドラを取得し（図１０の６行目）、キーイベントと同様のオブジェクトを生成し（図１０の８行目）、取得したイベントハンドラを呼び出す（図１０の１１行目）ことで、キーイベントの再現処理を実現している。
【００８７】
次に、マウスカーソルの移動に関するイベントの場合（図８のＳ２０９）について説明する。
【００８８】
かかる場合、操作再現処理スクリプト生成部１０３は、初期化処理Ｓ２０１で生成した擬似マウスカーソル要素を移動させる処理を記述する。
【００８９】
要素の位置移動は、ＪａｖａＳｃｒｉｐｔにより対象となる要素のＣＳＳスタイルシートの属性値を変化させることにより実現することができる。具体的には、ｐｏｓｉｔｉｏｎ属性の値を”ａｂｓｏｌｕｔｅ”に設定した上でｔｏｐ属性（Ｗｅｂブラウザ画面の上端からの位置）の値とｌｅｆｔ属性（Ｗｅｂブラウザ画面の左端からの位置）の値を設定する。図１０の１２〜１６行目にマウスカーソルの移動イベントを再現する処理が記述されている。擬似マウスカーソルを表すタグ要素を取得し（図１０の１２行目）（図９の再現処理の初期化処理スクリプトの一例の２６行目で擬似マウスカーソルを表すタグ用のＩＤを”＿ｍｏｕｓｅ＿ｃｕｒｏｓｏｒ”としているため、その値をＩＤにもつタグ要素を取得している。）、位置を（３００ｐｘ、４００ｐｘ）の位置に設定する（図１０の１３〜１６行目）ことでマウスカーソルの移動イベントの再現処理を実現している。
【００９０】
次に、ＴＹＰＥ属性の値が”ＴＥＸＴ”であるＩＮＰＵＴタグや、ＴＥＸＴＡＲＥＡタグ（以下前記二つを指してテキスト入力フォームと呼ぶ）に対するキーボード操作に関するイベントの場合（図８のＳ２１０）について説明する。
【００９１】
かかる場合、操作再現処理スクリプト生成部１０３は、当該イベントに対するユーザ操作情報に記述されている入力済み文字列値を、対象となるテキスト入力フォームに設定する処理を記述する。Ｓ２０４で示した操作対象オブジェクトの取得処理と同様の処理を記述し、取得した操作対象オブジェクトのｖａｌｕｅ属性の値を前記ユーザ操作情報に記述されている入力済み文字列値に設定する処理を記述する。
【００９２】
図１０の１７，１８行目には、テキスト入力フォームへの入力操作の再現処理が記述されている。入力対象のタグ要素を取得し（図１０の１７行目）、そのタグ要素の値を”テストです”とする（図１０の１８行目）（”テストです”という文字列が日本語入力プログラムを介して入力された操作ログが記録されていたものとする）ことで、テキスト入力フォームへの入力操作を再現している。
【００９３】
次に、バックグラウンド通信処理に関するイベントの場合（図８のＳ２１１）について説明する。
【００９４】
かかる場合、操作再現処理スクリプト生成部１０３は、Ｓ２０１で記述される初期化処理によって修正されたサーバとの通信を実際には行わず、サーバからのレスポンス情報を設定したのちにｏｎｌｏａｄ属性に設定されたメソッドを実行するＸＭＬＨｔｔｐＲｅｑｕｅｓｔのｓｅｎｄメソッドを呼び出す処理を記述する。サーバからのレスポンス情報の設定処理の記述には操作ログ１０４の該当ユーザ操作情報に記録されているサーバからのレスポンス情報を利用する。修正するｓｅｎｄメソッドの処理記述において、”ｔｈｉｓ．ｒｅｓｐｏｎｓｅＴｅｘｔ＝’（記録されているレスポンス情報）’；”と記述することでレスポンス情報を設定することができる。
【００９５】
図１０の１９，２０行目にバックグラウンド通信の再現処理が記述されている。前記初期化処理において操作ログ情報１０４にもとづき再現処理を行うように修正したＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクトを生成し（図１０の１９行目）、ｓｅｎｄメソッドの呼び出し処理を行うことでバックグラウンド通信処理の再現処理を実現している。図９の再現処理の初期化処理スクリプトの一例の１１〜２０行目で示したＸＭＬＨｔｔｐＲｅｑｕｅｓｔオブジェクトの修正により、実際にはバックグラウンド通信は行わず、操作ログ情報１０４に記録されたバックグラウンド通信の結果のレスポンス情報を反映した処理がなされる。
【００９６】
操作再現処理スクリプト生成部１０３は、Ｓ２０６、Ｓ２０８，Ｓ２０９、Ｓ２１０、Ｓ２１１の処理の後、Ｓ２０２に戻って処理を続ける。
【００９７】
以上、操作再現処理スクリプト１０３１の生成処理について説明した。
【００９８】
上述したように、こうして生成された操作再現処理スクリプト１０３１により、Ｗｅｂブラウザ２０では、ユーザの操作の再現が表示される。
【００９９】
以上、本発明の一実施形態について説明した。
【０１００】
本実施の形態によれば、ユーザ操作記録・再現処理装置１０の管理者ユーザは、利用者ユーザにその機能の利用を意識させることなく、利用者ユーザが対象となるＷｅｂページをＷｅｂブラウザ２０での操作をユーザ操作記録・再現処理装置１０に記録することできる。
【０１０１】
また、ユーザ操作記録・再現処理装置１０に記録した利用者ユーザの操作情報を元に、利用者ユーザの操作を再現Ｗｅｂブラウザ上で再現することができる。
【０１０２】
すなわち、上記実施形態によれば、利用者ユーザのシステム環境に特殊なソフトウェアのインストールの必要なしに、ＪａｖａＳｃｒｉｐｔが再現処理をサポートしていないイベントに関連した操作についても再現することを可能とするユーザ操作記録／再現処理装置を提供することができる。また、バックグラウンド通信処理についても記録／再現処理を提供し、再現処理時には通信対象のサーバとは通信せず、記録されている通信内容をそのまま再現する機能を提供することができる。
【０１０３】
本実施形態が提供するこれらの機能により、利用者ユーザに意識させることなくＷｅｂブラウザの操作を詳細なレベルまで記録することができ、管理者ユーザは当該記録された利用者ユーザの操作を詳細なレベルまで再現することができる。このような機能を利用することで管理者ユーザや開発者は対象となるＷｅｂページにおける利用者の行動を把握することができ、当該Ｗｅｂページの使い勝手向上をはかる改善開発のための情報源として活用することができる。
【０１０４】
本発明は、上記実施形態に限定されない。上記実施形態は、様々な変形が可能である。
【０１０５】
上記実施の形態では、操作ログ取得送信処理スクリプト１０１２をＷｅｂサーバ基本機能１０１上に配置する構成をとったが、ＪａｖａＳｃｒｉｐｔはＷｅｂブラウザから接続可能なサーバであればどこに配置されているものであっても実行することが可能なため、ユーザ操作記録・再現処理装置１０とは異なる情報処理装置で実現されるＷｅｂサーバ上に配置されていてもよい。
【０１０６】
また、上記実施の形態では、ユーザ操作記録・再現処理装置１０を実現する情報処理装置内にＷｅｂサーバ基本機能１０１も同時に具備する構成をとったが、Ｗｅｂサーバ基本機能１０１は独立した情報処理装置に配置する形態をとってもよい。ただしこの構成の場合は、ユーザ操作記録・再現処理装置１０とＷｅｂサーバ基本機能１０１とにＷｅｂブラウザ２０から同じＵＲＬドメインでアクセスできるように配置する必要がある。多くのＷｅｂブラウザの実装において、ＪａｖａＳｃｒｉｐｔのバックグラウンド通信機能は、参照しているＷｅｂページのＵＲＬと同じドメインに対してのみ許可された機能となっているためである。
【０１０７】
さらに別の構成として、図１１に示すシステム構成例のように、サーバ基本処理部１０１を備えた独立したＷｅｂサーバ１０ｘを配置する。そして、ユーザ操作記録・再現処理装置１０は、その他の主要機能部を備え、プロキシサーバとして、Ｗｅｂブラウザ２０とＷｅｂサーバ１０ｘとの間に配置する。
【０１０８】
また、図１の構成の場合において、本実施の形態では対象となるＷｅｂページ１０１１Ａに対し、操作ログ取得送信スクリプト１０１２を参照する記述を管理者ユーザが追記するように説明したが、操作ログ取得送信スクリプト１０１２を参照する記述を対象となるＷｅｂページに後から挿入処理する処理をユーザ操作記録・再現処理装置１０で行ってもよい。
【０１０９】
図１１のシステム構成例では、ユーザ操作記録・再現処理装置１０に、操作ログ取得送信処理スクリプト付加処理部３０１を新たに具備している。操作ログ取得送信処理スクリプト付加処理部３０１は、Ｗｅｂブラウザ２０から要求されるＷｅｂページを、対応するＷｅｂサーバ基本処理部１０１から取得したのちに、操作ログ取得送信処理スクリプト１０１２の記述を当該取得したＷｅｂページに挿入する処理を行い、Ｗｅｂブラウザ２０に送信する機能を持つ。
【０１１０】
このような構成をとることで、管理者ユーザが操作ログ取得送信スクリプト１０１２を参照する記述を対象となるＷｅｂページに記載せずとも、自動的に操作ログ取得送信スクリプト１０１２を参照する記述を挿入することでき、より多くのＷｅｂページに容易にユーザ操作情報の記録処理を具備することができる。ただし、この構成の場合も、ユーザ操作記録・再現処理装置１０とＷｅｂサーバ基本機能は同じＵＲＬドメインでＷｅｂブラウザ２０からアクセスできるように配置する必要がある。
【０１１１】
また本実施の形態では、あらかじめユーザ操作記録・再現処理装置１０の管理者ユーザが操作ログ１０４を特定し、操作再現処理スクリプト１０３１を操作再現処理スクリプト生成機能１０３に生成させる方法を述べた。しかし、これに限らず、Ｗｅｂブラウザ２０からのリクエスト情報を元に操作ログ１０４を特定し、操作再現処理スクリプト１０３１を操作再現処理スクリプト生成部１０３に生成させる処理方法をとることもできる。例えば、ユーザ操作記録・際限処理装置１０に対し、あらかじめ操作再現処理スクリプト１０３１を生成しておく代わりに、Ｗｅｂブラウザ２０からのリクエストを受信した際に、リクエスト情報に含まれる操作ログ１０４を特定する情報（ユーザＩＤやセッションＩＤ、操作再現開始・終了時刻など）を元に再現処理対象のユーザ操作情報を抽出する。そして、図８に記載の操作ログ再現処理スクリプトの生成処理フローに従い、操作ログ再現処理スクリプト１０３１を生成する。さらに、対象となるＷｅｂページに当該生成した操作ログ再現処理スクリプトを参照する記述を挿入し、Ｗｅｂブラウザ２０に送信する。このような処理を行う機能を具備することで、上記方法を実現することができる。
【０１１２】
上記のような構成・方法をとることで、管理者ユーザがあらかじめ操作ログ再現処理スクリプト１０３１を生成しておく必要なく、ユーザ操作再現処理機能の利用者ユーザが直接操作ログ１０４に記録されているユーザ操作情報を特定してユーザ操作再現処理機能を利用することができる。
【０１１３】
以上、本発明の一実施形態およびその変形例について説明した。
【０１１４】
企業内の業務システムはそのほとんどがＷｅｂアプリケーションとして実現されるようになった。また、ＪａｖａＳｃｒｉｐｔのバックグラウンド通信機能を活用した、画面遷移を伴わない使い勝手のよいＷｅｂアプリケーションが増加している。そのような使い勝手のよいＷｅｂアプリケーションの増加に伴い、Ｗｅｂアプリケーションに対する使い勝手のよさがより強く求められるようなっている。
【０１１５】
このような状況においては、Ｗｅｂアプリケーションの開発者は、利用者ユーザのニーズにより的確にこたえる使い勝手を提供するよう随時Ｗｅｂアプリケーションを改善するよう求められる。
【０１１６】
本発明は利用者ユーザに意識させることなく、利用者ユーザのＷｅｂブラウザにおける操作情報を記録することができる環境を提供する。本発明により収集される利用者ユーザの操作情報を解析したり、本発明によるユーザ操作の再現処理を利用したりすることで、対象となるＷｅｂアプリケーションが利用者にどのように利用されているかを知ることができ、その情報をＷｅｂアプリケーションの使い勝手の改善に活用することができる。
【図面の簡単な説明】
【０１１７】
【図１】一実施形態の概略高製図。
【図２】ユーザ操作記録処理の情報の流れを示した図。
【図３】操作ログ取得送信処理スクリプトを参照するＷｅｂページの一例を示す図。
【図４】操作ログ取得送信処理スクリプトによるユーザ操作記録処理手順を示すフロー図。
【図５】バックグラウンド通信処理を操作ログとして記録するよう修正するスクリプトの一例を示す図。
【図６】操作ログ取得送信処理スクリプトにより記録された操作ログ情報の一例を示した図。
【図７】ユーザ操作再現処理の情報の流れを示した図。
【図８】操作再現処理スクリプトの生成処理手順を示したフロー図。
【図９】操作再現処理の初期化処理を行うスクリプトの一例を示す図。
【図１０】操作再現処理のイベント再現処理を行うスクリプトの一例を示す図。
【図１１】変形例にかかる概略構成図。
【符号の説明】
【０１１８】
１０：ユーザ操作記録・再現処理装置
１０１：サーバ基本処理部
１０２：操作ログ記録部
１０３：操作再現処理スクリプト生成部
１０４：操作ログ情報
２０：Ｗｅｂブラウザ
２０１：ブラウザ基本処理部
１０ｘ：Ｗｅｂサーバ
３０１：操作ログ取得送信処理スクリプト付加部
【図１】
2008117093.tif 000003
【図２】
2008117093.tif 000004
【図３】
2008117093.tif 000005
【図４】
2008117093.tif 000006
【図５】
2008117093.tif 000007
【図６】
2008117093.tif 000008
【図７】
2008117093.tif 000009
【図８】
2008117093.tif 000010
【図９】
2008117093.tif 000011
【図１０】
2008117093.tif 000012
【図１１】
2008117093.tif 000013