(57)【特許請求の範囲】
【請求項１】
ウェブサーバと、ウェブページを表示するウェブブラウザと、前記ウェブページのコンテンツを収集・保存するコンテンツ保存・再現サーバと、それらを相互に結合するネットワークから構成されるシステムにおけるウェブ操作記録・再現方法であって、
前記ウェブサーバは、生成したウェブページを前記ウェブブラウザに送信する際に、操作ログ取得機能とブラウザ情報取得機能を前記ウェブページに挿入して送信し、前記コンテンツを前記コンテンツ保存・再現サーバに送信し、
前記ウェブブラウザは、受信した前記ウェブページ中の、前記ブラウザ情報取得機能を実行して、前記ウェブブラウザに関する情報を取得して記録し、前記操作ログ取得機能を実行して、前記ウェブページ上での操作ログと前記ウェブページに含まれるアプリコードを実行した結果のアプリログを生成して記録し、前記ウェブブラウザに関する情報、前記操作ログ、及び前記アプリログをユーザログとして前記コンテンツ保存・再現サーバに送信し、
前記コンテンツ保存・再現サーバは、収集した前記コンテンツと前記ユーザログを変換して、再現装置のウェブブラウザ上で操作を再現するための再現用コンテンツと再現用ユーザログを生成する、
ことを特徴とするウェブ操作記録・再現方法。
【請求項２】
請求項１に記載のウェブ操作記録・再現方法であって、
前記コンテンツ保存・再現サーバは、前記操作ログの記録時に前記ウェブブラウザに関する情報を記録し、前記ウェブブラウザに関する情報に基づいて、記録時と同等のレンダリングとアプリコードの実行が可能な環境を用意し、当該環境でレンダリングとアプリコードの実行を行った結果を利用し、前記再現用コンテンツと前記再現用ユーザログを生成する、
ことを特徴とするウェブ操作記録・再現方法。
【請求項３】
請求項２に記載のウェブ操作記録・再現方法であって、
前記コンテンツ保存・再現サーバは、前記再現用コンテンツに、前記レンダリングの結果から生成した画像データを含み、前記画像データを利用してウェブ操作の再現を行う、
を特徴とするウェブ操作記録・再現方法。
【請求項４】
請求項３に記載のウェブ操作記録・再現方法であって、
前記コンテンツ保存・再現サーバは、前記レンダリングの結果の変化を抽出し、前記レンダリングの結果に変化があった場合に、前記レンダリングの結果から前記画像データを生成して前記再現用コンテンツに含む、
ことを特徴とするウェブ操作記録・再現方法。
【請求項５】
請求項１に記載のウェブ操作記録・再現方法であって、
前記コンテンツ保存・再現サーバは、前記コンテンツと前記ユーザログから操作の再現時に前記ウェブサーバの状態に影響を与えるアプリコードを抽出し、抽出したアプリコードを削除、無効化、もしくは影響を与えないアプリコードに変換して前記再現用コンテンツとし、変換後のアプリコードを利用してウェブ操作の再現を行う、
ことを特徴とするウェブ操作記録・再現方法。
【請求項６】
請求項５に記載のウェブ操作記録・再現方法であって、
前記操作ログの記録時に、前記ウェブサーバの状態に影響を与えるアプリコードの実行状態を前記アプリログに記録する、
ことを特徴とするウェブ操作記録・再現方法。
【請求項７】
請求項１に記載のウェブ操作記録・再現方法であって、
前記コンテンツ保存・再現サーバは、前記コンテンツと前記ユーザログから操作の再現時に前記ウェブサーバの状態に影響を与える操作ログを抽出し、抽出した操作ログを削除、無効化、もしくは影響を与えない操作ログに変換して前記再現用ユーザログとし、変換後の操作ログを利用してウェブ操作の再現を行う、
ことを特徴とするウェブ操作記録・再現方法。
【請求項８】
請求項７に記載のウェブ操作記録・再現方法であって、
前記操作ログの記録時に、前記ウェブサーバの状態に影響を与える操作の実行結果を前記アプリログに記録する、
ことを特徴とするウェブ操作記録・再現方法。
【請求項９】
請求項１に記載のウェブ操作記録・再現方法であって、
前記コンテンツ保存・再現サーバは、
前記操作ログの記録時に記録した前記ウェブブラウザに関する情報と、前記外部再現装置のウェブブラウザに関する情報と、前記ウェブブラウザと前記外部再現装置のウェブブラウザの組み合わせに対応したコンテンツとユーザログの変換表を備え、前記変換表を用いて前記コンテンツと前記ユーザログを変換して、ウェブ操作の再現を行う、
ことを特徴とするウェブ操作記録・再現方法。
【請求項１０】
請求項１に記載のウェブ操作記録・再現方法であって、
前記コンテンツ保存・再現サーバは、前記コンテンツと前記ユーザログを前記再現用コンテンツと前記再現用ユーザログへ変換したことにより、操作の再現時のウェブブラウザ上の表示内容に操作の記録時の表示内容と差が出る、もしくは差が出る可能性のある部分を表示して、ウェブ操作の再現を行う、
ことを特徴とするウェブ操作記録・再現方法。
【請求項１１】
ウェブサーバが生成し、ウェブブラウザが表示するウェブページを再現するウェブ操作再現装置であって、
処理部と記憶部とを備え、
前記記憶部は、前記ウェブブラウザに表示された前記ウェブページのコンテンツと、前記ウェブブラウザから収集した、前記ウェブブラウザがブラウザ情報取得機能を実行して取得・記録した前記ウェブブラウザに関する情報、前記ウェブブラウザが操作ログ取得機能を実行して取得・記録した、前記ウェブページ上の操作ログ、及び前記ウェブページに含まれるアプリコードを実行した結果のアプリログとからなるユーザログとを記憶し、
前記処理部は、前記記憶部に記憶された前記コンテンツと前記ユーザログを変換して、外部再現装置のウェブブラウザ上で操作を再現するための再現用コンテンツと再現用ユーザログを生成する、
ことを特徴とするウェブ操作再現装置。
【請求項１２】
請求項１１に記載のウェブ操作再現装置であって、
前記処理部は、前記操作ログの記録時の前記ウェブブラウザに関する情報に基づいて、記録時と同等のレンダリングとアプリコードの実行が可能な環境を用意し、当該環境でレンダリングとアプリコードの実行を行った結果を利用し、前記再現用コンテンツと前記再現用ユーザログを生成する、
ことを特徴とするウェブ操作再現装置。
【請求項１３】
請求項１２に記載のウェブ操作再現装置であって、
前記処理部は、前記再現用コンテンツに前記レンダリングの結果から生成した画像データを含ませ、前記画像データを利用してウェブ操作の再現を行う、
を特徴とするウェブ操作再現装置。
【請求項１４】
請求項１３に記載のウェブ操作再現装置であって、
前記処理部は、前記レンダリング結果の変化を抽出し、前記レンダリングの結果に変化があった場合に、前記レンダリングの結果から前記画像データを生成して前記再現用コンテンツに含む、
ことを特徴とするウェブ操作再現装置。
【請求項１５】
請求項１１に記載のウェブ操作再現装置であって、
前記処理部は、前記コンテンツと前記ユーザログから操作の再現時に前記ウェブサーバの状態に影響を与えるアプリコードを抽出し、抽出したアプリコードを削除、無効化、もしくは影響を与えないアプリコードに変換して前記再現用コンテンツとし、変換後のアプリコードを利用してウェブ操作の再現を行う、
ことを特徴とするウェブ操作再現装置。
【請求項１６】
請求項１５に記載のウェブ操作再現装置であって、
前記ウェブサーバの状態に影響を与えるアプリコードの実行状態は、前記操作ログの記録時に、前記アプリログに記録される、
ことを特徴とするウェブ操作再現装置。
【請求項１７】
請求項１１に記載のウェブ操作再現装置であって、
前記処理部は、前記コンテンツと前記ユーザログから操作の再現時に前記ウェブサーバの状態に影響を与える操作ログを抽出し、抽出した操作ログを削除、無効化、もしくは影響を与えない操作ログに変換して前記再現用ユーザログとし、変換後の操作ログを利用してウェブ操作の再現を行う、
ことを特徴とするウェブ操作再現装置。
【請求項１８】
請求項１７に記載のウェブ操作再現装置であって、
前記ウェブサーバの状態に影響を与える操作の実行結果は、前記操作ログの記録時に前記アプリログに記録される、
ことを特徴とするウェブ操作再現装置。
【請求項１９】
請求項１１に記載のウェブ操作再現装置であって、
前記記憶部は、
前記操作ログの記録時に記録した前記ウェブブラウザに関する情報と、前記外部再現装置のウェブブラウザに関する情報と、前記ウェブブラウザと前記外部再現装置のウェブブラウザの組み合わせに対応したコンテンツとユーザログの変換表を記憶し、
前記処理部は、前記変換表を用いて前記コンテンツと前記ユーザログを変換して、ウェブ操作の再現を行う、
ことを特徴とするウェブ操作再現装置。
【請求項２０】
請求項１１に記載のウェブ操作再現装置であって、
前記処理部は、前記コンテンツと前記ユーザログを前記再現用コンテンツと前記再現用ユーザログへ変換したことにより、操作の再現時のウェブブラウザ上の表示内容に操作の記録時の表示内容と差が出る、もしくは差が出る可能性のある部分を表示して、ウェブ操作の再現を行う、
ことを特徴とするウェブ操作再現装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブブラウザ上でウェブアプリケーションの操作を記録し、別のウェブブラウザ上で記録されたウェブ操作を再現する技術に関するものである。
【背景技術】
【０００２】
近年、様々な機器上でのサービス提供の形態として、ウェブブラウザを利用したウェブサービスが多くなっている。ウェブサービスは、基本的なドキュメント構成などの標準化が進んでおり、様々な機器上で共通のサービスを提供可能であり、さらに近年ではスクリプト言語の利用などにより、表現力が向上したことで、利用範囲が広がっている。これに伴って、利用者層も広がっており、ウェブサービスの利用シーンが多様化している。
【０００３】
このような背景から、ウェブアプリケーションに対するユーザサポートや、保守・改善に求められる機能や対象が広がっている。一方で、ウェブサービスの提供者は、利用シーンの多様化により、効率的なユーザサポートや保守・改善の実現が困難になっている。
【０００４】
これに対して、ウェブブラウザ上での操作状況を可視化して、ユーザサポートや保守・改善に利用する方法が考えられてきた。最も単純な方法としては、ウェブサーバで記録可能な、利用者からのウェブページのリクエストを記録したアクセスログを利用した方法で、リクエストの多いウェブページの特定や、利用者毎のウェブページ単位での行動の把握を行うことができる。しかし、このような単純な方法では、利用者が使っている機器やウェブブラウザ、ウィンドウサイズや入力デバイスの設定などの動作環境によって大きく変わるウェブページ内での操作性までは把握することができない。そのため、実際のユーザサポートでは、電話やメール、チャットなど別の方法で利用者の状況把握を行ったり、場合によっては利用者のクライアント装置に画面を共有するツールをインストールしてもらい、画面を共有して状況を把握する方法などが採られている。しかし、これらの方法は、利用者に説明やインストール作業などの負担をかけるため、改善が求められている。
【０００５】
以上から、導入や利用が容易で、多様な利用シーンにおける利用者の状況を正確に把握する技術が必要であり、従来、特許文献１〜特許文献５に示す対応技術が提案されてきた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−４９２９４号公報
【特許文献２】特開平１１−３５３２６１号公報
【特許文献３】特開２００１−３３７８８７号公報
【特許文献４】特開２００３−３６２２３号公報
【特許文献５】特開２００１−６０１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、ウェブページにスクリプトを挿入してウェブページのスナップショットを取得し、検索可能にする方法を開示しているが、この方法ではスナップショット毎にしか利用者の状況が把握できないため、利用者の状況を詳細に把握しようとすると、利用者が操作を行う度にスナップショットを記録する必要がある。また、クライアント装置上でウェブページのスナップショットを取得するため、ウェブサーバ装置側にスナップショットを送信する際に大量の通信が発生したり、クライアント装置に大量のデータを保存する領域を用意したりする必要がある。特に、スクリプト言語などを利用してウェブブラウザ上でウェブページのコンテンツが動的に変化するような場合には、コンテンツが変化する毎にウェブページのスナップショットを取得すると、スナップショットの数が大量になるという問題がある。
【０００８】
また、特許文献２では、ウェブサーバが、クライアントやブラウザの種類などの利用者の環境に応じて、その環境で表示が可能なウェブページに変換をしてからウェブページを返信する方法が開示されているが、この方法では、利用者の状況把握を行う際に利用するブラウザと利用者のブラウザが異なる場合に、その差異を吸収することができない。
【０００９】
また、特許文献３では、携帯電話のウェブブラウザ向けにウェブページを変換してから送信する方法について開示されている。しかし、この方法では利用者の操作やクライアントの状態に応じてウェブページの変換が行われるわけではないので、ウェブページ上での操作の再現を正確にできるわけではない。
【００１０】
また、特許文献４では、ウェブページなどのマークアップ文書に含まれているスクリプトを表示するブラウザに応じて事前に実行して結果を送ることで対応していないスクリプトを表示する方法が開示されている。しかし、この方法では利用者の操作やクライアントの状態に応じてスクリプトの実行結果が異なるような場合に、スクリプトを正確に実行することができない問題がある。
【００１１】
さらに、特許文献５では、ウェブブラウザ上でフォームを操作することによってアクセス可能な動的なコンテンツに対するアクセス履歴を操作イベントと操作対象のオブジェクトのプロパティを組にして保存し、実際に操作イベントを実行して動的な変化を起こさせて利用者の状況を再現する方法が開示されている。しかし、このような方法では再現ができない時間依存のコンテンツや，振込み処理など実際には実行してはいけない操作に対応できない問題がある。
【００１２】
本発明の目的は、以上説明した問題点を踏まえ、クライアントのウェブブラウザ上で行われた操作を記録し、それを別のウェブブラウザ上で精度良く再現することが可能なウェブ操作記録・再現方法および装置を提供することにある。
【００１３】
更に、本発明の目的は、導入や利用が容易で、利用者に負担をかけず、利用者の状況把握が可能な精度の操作状況の再現を安全に実現するウェブ操作の記録・再現方法および装置を提供することにある。
【課題を解決するための手段】
【００１４】
上記の目的を達成するため、本発明においては、ウェブサーバと、ウェブページを表示するウェブブラウザと、ウェブページのコンテンツを収集・保存するコンテンツ保存・再現サーバと、それらを相互に結合するネットワークから構成されるシステムにおけるウェブ操作記録・再現方法であって、ウェブサーバは、生成したウェブページをウェブブラウザに送信する際に、操作ログ取得機能とブラウザ情報取得機能をウェブページに挿入して送信し、ウェブページのコンテンツをコンテンツ保存・再現サーバに送信し、ウェブブラウザは、受信したウェブページ中のブラウザ情報取得機能を実行して、ウェブブラウザに関する情報を取得して記録し、操作ログ取得機能を実行して、ウェブページ上での操作ログとウェブページに含まれるアプリコードを実行した結果のアプリケーションログ（アプリログ）を生成し、記録し、コンテンツ保存・再現サーバにウェブブラウザに関する情報、操作ログ、及びアプリログをユーザログとして送信し、コンテンツ保存・再現サーバは、収集したコンテンツとユーザログを変換して、外部再現装置のウェブブラウザ上で操作を再現するための再現用コンテンツと再現用ユーザログを生成するウェブ操作記録・再現方法、及びそのシステムを提供する。
【００１５】
また、上記の目的を達成するため、本発明においては、ウェブサーバが生成し、ウェブブラウザが表示するウェブページを再現するウェブ操作再現装置であって、処理部と記憶部とを備え、記憶部は、ウェブブラウザに表示されたウェブページのコンテンツと、ウェブブラウザから収集した、ウェブブラウザがブラウザ情報取得機能を実行して取得・記録したウェブブラウザに関する情報、ウェブブラウザが操作ログ取得機能を実行して取得・記録した、ウェブページ上の操作ログ。及びウェブページに含まれるアプリコードを実行した結果のアプリログからなるユーザログとを記憶し、処理部は、記憶部に記憶されたコンテンツとユーザログを変換して、外部再現装置のウェブブラウザ上で操作を再現するための再現用コンテンツと再現用ユーザログを生成するウェブ操作再現装置を提供する。
【発明の効果】
【００１６】
本発明により、多様な利用環境でのウェブ操作の再現を精度良く、安全に実現することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施例に係る、ウェブアプリケーションを実行するシステム構成図である。
【図２】第１の実施例に係る、ウェブ操作の記録・再現処理フローの図である。
【図３Ａ】第１の実施例に係る、コンテンツ保存・再現サーバ装置の要部機能を示す図である。
【図３Ｂ】第１の実施例に係る、コンテンツ保存・再現サーバ装置における副作用除去モジュールを説明するための図である。
【図３Ｃ】第１の実施例に係る、コンテンツ保存・再現サーバ装置における利用環境反映機能モジュールを説明するための図である。
【図４】第１の実施例に係る、コンテンツ保存・再現サーバ装置におけるコンテンツとユーザログの変換の処理フローの例を示す図である。
【図５】第１の実施例に係る、操作記録・再現の処理フロー図である。
【図６】第２の実施例に係る、コンテンツ・ユーザログ変換の処理フロー図である。
【図７Ａ】第３の実施例に係る、操作の再現時に問題が発生する例を説明するための図である。
【図７Ｂ】第３の実施例に係る、操作の再現時に問題が発生する例を説明するための図である。
【図８】第３の実施例に係る、コンテンツ・ユーザログ変換の処理フロー図である。
【図９Ａ】第４の実施例に係る、操作の再現時に問題が発生する例を説明するための図である。
【図９Ｂ】第４の実施例に係る、操作の再現時に問題が発生する例を説明するための図である。
【図１０】第５の実施例に係る、コンテンツ・ユーザログ変換の処理フロー図である。
【図１１】第５の実施例に係る、ウェブ操作の再現の例を示す図である。
【図１２】第５の実施例に係る、コンテンツ・ユーザログ変換の処理フロー図である。
【図１３】第６の実施例に係る、コンテンツ・ユーザログ変換の処理フロー図である。
【図１４】第６の実施例に係る、コンテンツ・ユーザログ変換の処理フロー図である。
【図１５】第７の実施例に係る、ウェブ操作の再現の例を示す図である。
【発明を実施するための形態】
【００１８】
本発明のウェブブラウザ上でのウェブ操作記録・再現方法および装置では、ウェブアプリケーションが動作するウェブサーバにおいて、ウェブページに、ウェブブラウザ上での操作をクライアント上で操作ログとして記録し、外部からの要求の有無を判定して、要求に応じて記録した操作ログを送信する機能を挿入する。その際に、ウェブサーバは、コンテンツ保存・再現サーバに、ウェブアプリケーションが生成したウェブページをコンテンツとして、またウェブページに対して固有の値を付与して識別子として保存する。コンテンツ保存・再現サーバは、必要に応じてクライアントから操作ログやウェブページに含まれるスクリプトコードの実行によるクライアントの変化を記録したアプリログ、ウェブブラウザの種類などのユーザログを収集して、該当するウェブページのコンテンツと合わせて外部再生装置上でウェブ操作を再現するための再現用ウェブページおよび再現用ユーザログを生成する。
【００１９】
その際に、コンテンツ保存・再現サーバで利用者の環境に対応した再現環境上で元のコンテンツとユーザログから操作の再現を行い、その際に外部再生装置上での再現時に問題となる部分を特定し、安全な再現を実現するために、元のコンテンツに含まれるドキュメントやアプリコードを改変したり、削除したりする。また同時に、外部再生装置とクライアントのウェブブラウザの違いを吸収したり、操作の再現によってウェブブラウザの動作が停止したり、ウェブサーバに不正なデータを送信したりせずに、利用者の操作の状況を極力正確に再現するために、元のユーザログに含まれる操作ログやアプリログに対しても改変したり、削除したりする。これらの変換後のコンテンツやユーザログを利用して、外部再生装置で操作の再現を行う。
【００２０】
以下、本発明の種々の実施例を図面に従い順次説明する。以下の実施例において、クライアントをクライアント装置、ウェブサーバをウェブサーバ装置、コンテンツ保存・再現サーバをコンテンツ保存・再現サーバ装置と呼ぶ場合がある。
【実施例１】
【００２１】
第１の実施例に係る、ウェブブラウザ上でのウェブ操作の再生方法、及びそのシステムを、図１から図５を使って説明する。
【００２２】
図１は、本実施例が対象とするウェブアプリケーションを実行するシステムのハードウェア構成と、ソフトウェア構成の例を示すシステム構成図である。
ハードウェアは、クライアント装置１０１、ウェブサーバ装置１２１、コンテンツ保存・再現サーバ装置１４１、外部再現装置１８１と、これらの装置を接続するネットワーク１６１から構成される。なお、各装置のハードウェアは同一のハードウェアで実現されても、複数台で構成されてもよい。コンテンツ保存・再現サーバ装置１４１は、外部再現装置１８１で再現される再現用データを生成する機能を備えているが、それ自身が外部再現装置１８１として機能するよう構成することもできる。
【００２３】
クライアント装置１０１、ウェブサーバ装置１２１、コンテンツ保存・再現装置１４１、外部再生装置１８１は、すべて処理部であるプロセッサ１０３、１２３、１４３、１８４、記憶部であるメモリ１０８、１２６、１４８、１８５、入出力部１０２、１２５、１４７、１８３、ネットワークインタフェース１０７、１２２、１４２、１８２を持つコンピュータであり、相互に接続されている。クライアント装置１０１、ウェブサーバ装置１２１、コンテンツ保存・再現装置１４１は、さらに記憶部としてローカルディスク１０５、１２４、１４４をもつ。ただし、一部の装置ではこれらの構成要素の一部が欠けてもよい。
【００２４】
クライアント装置１０１のメモリ１０８には、ウェブブラウザプログラム１０９、スクリプトエンジンプログラム１１０が格納されている。これらのプログラムは、処理部であるプロセッサ１０３に読み込まれて実行される。
ウェブブラウザプログラム１０９は、ウェブページをリクエストしたり、リクエストしたウェブページのレスポンスを受信し、解釈して表示画面を生成する機能などを持つ。スクリプトエンジンプログラム１１０は、ウェブページのレスポンスに含まれるスクリプトコードを解釈してスクリプトコードに書かれている処理をプロセッサ１０３で実行する機能を持つ。
【００２５】
入出力部１０２には、キーボードやマウス、モニタなどが接続され、プログラムの実行や停止の指示を行ったり、プログラムの実行結果をモニタに表示するのに利用される。プロセッサ１０３は、メモリ１０８からプログラムを読み込んで処理を実行する。ネットワークインタフェース１０７は、クライアント装置１０１の外部の装置との間で、ネットワーク１６１を介してウェブサーバ装置とのリクエスト、レスポンスの送受信や、操作ログの送受信を行う。
【００２６】
ウェブサーバ装置１２１のメモリ１２６には、ウェブサーバプログラム１２７、機能挿入プログラム１２８、識別子送信プログラム１２９、コンテンツ送信プログラム１３０が格納されている。これらのプログラムは、お互いに包含関係にあってもよく、例えば、識別子送信プログラム１２９がウェブサーバプログラム１２７に含まれていてもよい。ウェブサーバプログラム１２７には、ウェブアプリコード１３１が含まれる、もしくは併設される。機能挿入プログラム１２８には、操作ログ取得コード１３２とコンテンツ改変コード１３３、ブラウザ情報取得コード１３４が含まれる。これらのプログラムは、プロセッサ１２３に読み込まれて実行される。
【００２７】
ウェブサーバプログラム１２７は、クライアント装置１０１などの外部の装置からのリクエストに応じてウェブページのレスポンスを生成して返信する機能を持つ。機能挿入プログラム１２８はウェブページのレスポンスに対して、レスポンスに含まれるコンテンツの追加や修正を行う機能を持つ。
【００２８】
識別子送信プログラムは、ウェブサーバプログラム１２７で生成したウェブページに関連する識別子を生成もしくは取得して、外部の装置に送信する機能を持つ。ウェブページに関連する識別子としては、ウェブページのリクエスト毎にユニークな値をもつＩＤや、ウェブページのリクエスト元を特定できるようなＩＤなどが挙げられる。
【００２９】
コンテンツ送信プログラム１３０は、ウェブサーバプログラム１２７で生成したウェブページのコンテンツを外部の装置に送信する機能を持つ。ウェブサーバプログラム１２７も、ウェブページのコンテンツをリクエスト元のクライアント装置に送信する機能を持つが、コンテンツ送信プログラム１３０では、コンテンツ保存・再現サーバ装置１４１や、外部再生装置１８１などのウェブページのリクエスト元以外の外部の装置にもコンテンツを送信でき、その際にそのウェブページに関連した識別子と関連付けて送信を行う。
【００３０】
入出力部１２５、プロセッサ１２３、ネットワークインタフェース１２２は、クライアント装置１０１にある同名の装置と同じ機能を持つ。ローカルディスク１２４には、ウェブページの全体や一部などが保管されている。
【００３１】
コンテンツ保存・再現サーバ装置１４１のメモリ１４８には、コンテンツ保存サーバプログラム１４９、ログ受信サーバプログラム１５０、操作再現プログラム１５１が格納されている。これらのプログラムは、プロセッサ１４３に読み込まれて実行される。
【００３２】
コンテンツ保存サーバプログラム１４９は、クライアント装置１０１やウェブサーバ装置１２１などから送信されたウェブページやウェブページのリクエスト元などを特定する識別子などのコンテンツを受信し、それらをローカルディスク１４４のコンテンツ保存領域１４５に格納したり、コンテンツ保存領域１４５やメモリ１４７上にあるそれらのデータを読み出して、ログ受信サーバプログラム１５０に送信したりする。
【００３３】
ログ受信サーバプログラム１５０は、コンテンツ保存サーバプログラム１４９と連携して、一覧表示をしたり、特定の識別子や操作ログなどを選択させて、外部の装置に送信したりする。さらに、外部の装置に、特定の識別子に関連する操作ログを送信させたりする。例えば、クライアント装置１０１からウェブブラウザ上での利用者の操作や、ウェブページに含まれるアプリケーションの実行結果、ブラウザに関する情報などのユーザログを送信させ、ユーザログを受信する。そして、これらのログをローカルディスク１４４上のユーザログ保存領域１４６に保存し、必要に応じてこれを読み出す。
【００３４】
操作再現プログラム１５１は、コンテンツ保存サーバプログラム１４９、ログ受信サーバプログラム１５０と連携して、メモリ１４８上や、ローカルディスク１４４上にある、コンテンツやユーザログを変換して、外部再現装置１８１で利用者の操作状況の再現を可能とする。操作再現プログラム１５１には、副作用除去フィルタコード１５２、利用環境反映フィルタコード１５３、操作再現コード１５４が含まれる。
【００３５】
副作用除去フィルタコード１５２は、外部再現装置１８１で操作の再現を行う際に、ウェブサーバ装置１２１などの他の装置に対してその装置の状態を不必要に変更したり、操作の再現が停止したりするような操作の再現による副作用が生じないようにコンテンツやユーザログを変換する機能を提供する。言い換えるなら、変換とは、コンテンツやユーザログなどのデータを副作用が生じないデータ、副作用除去されたデータに変更することを意味する。また、副作用除去とは、コンテンツやユーザログなどのデータを、ウェブサーバ装置などの他の装置に対して、状態変更をさせる動作を除外したデータに変更することを意味する。そして、この変換によって得られる副作用除去されたデータであるコンテンツやユーザログが、再現用コンテンツや再現用ユーザログとなる。
【００３６】
利用環境反映フィルタコード１５３は、外部再現装置１８１で操作の再現を行う際に、利用者のウェブブラウザ環境と、外部再現装置１８１で操作の再現を行うウェブブラウザ環境の違いを考慮して、コンテンツやユーザログを変換して操作の再現性を向上したり、操作の再現が停止したりしないようにする。
【００３７】
操作再現コード１５４は、外部再生装置１８１からの要求に応じて、副作用除去フィルタコード１５２や利用環境反映フィルタコード１５３による変換後のコンテンツや変換後のユーザログを利用して、外部再生装置１８１上のウェブブラウザで、ウェブページ上での操作の再現を行わせる機能を提供する。
入出力部１４７、プロセッサ１４３、ネットワークインタフェース１４２は、ウェブサーバ装置１２１にある同名の装置と同じ機能を持つ。
【００３８】
外部再生装置１８１のメモリ１８５には、ウェブブラウザプログラム１８６が格納されている。ウェブブラウザプログラム１８６は、プロセッサ１８４に読み込まれて実行される。ウェブブラウザプログラム１８６は、クライアント装置１０１のウェブブラウザプログラム１０９、スクリプトエンジンプログラム１１０と同様に、ウェブページの表示を行う。ただし、コンテンツ保存・再現サーバ装置１４１の操作再現プログラム１５１と連携して、コンテンツやユーザログに応じた、ウェブページ上での操作の再生や一時停止などを行う。
入出力部１８３、プロセッサ１８４、ネットワークインタフェース１８２は、ウェブサーバ装置１２１にある同名の装置と同じ機能を持つ。
【００３９】
以上説明した本実施例のシステム構成における、ウェブ操作の記録・再現処理フローを図２〜図５により説明する。
図１で説明したように、クライアント装置１０１、ウェブサーバ装置１２１、ログ連携サーバ装置１４１がネットワーク１６１で接続されたシステムで、クライアント装置１０１からウェブページのリクエストを送信し、ウェブサーバ装置１２１がリクエストされたウェブページのレスポンスを生成して返信し、クライアント装置１０１でウェブページの表示や、スクリプトコードの実行が行われ、コンテンツ保存・再現サーバ装置１４１には、ウェブページそのものとウェブページに関連する識別子などのコンテンツや、ウェブページ上での操作ログ、ウェブページに含まれるアプリケーションの実行結果、ブラウザに関する情報などのユーザログが蓄積される。
【００４０】
また、コンテンツ保存・再現サーバ装置１４１と、クライアント装置１０１の間で、操作ログなどのユーザログの送受信や、ログ操作の制御を実現するための問い合わせと制御内容を伝達するコマンドのやり取りも行われる。外部再生装置１８１は、コンテンツ保存・再現サーバ装置１４１で変換されたコンテンツやユーザログを受信して、ウェブページ上での操作の再現を行う。
【００４１】
以下、一連の処理を順に説明する。なお、図２以降の図においては、プログラムがプロセッサ上で実行されている状態をモジュールと呼び、例えば、ウェブブラウザプログラムがプロセッサ上で実行されている場合、ウェブブラウザモジュールと呼ぶ。
【００４２】
図２に図示したように、最初に、クライアント装置１０１のウェブブラウザモジュール２３１がウェブページのリクエストを、ネットワーク１６１を経由して、ウェブサーバ装置１２１に送信する。リクエスト２０１には、少なくともウェブページの存在する場所を指定するＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒｓ）が含まれる。ウェブサーバ装置１２１では、ウェブサーバモジュール２２１がリクエストを受信し、ウェブアプリコード１３１に従った処理を行うウェブアプリケーション２２２が要求されたウェブページのレスポンス２０２を生成する。
【００４３】
レスポンス２０２は、ウェブサーバ装置１２１に含まれる機能挿入モジュール２２３を経由してクライアント装置１０１のウェブブラウザモジュール２３１に送信される。機能挿入モジュール２２３の操作ログ取得機能モジュール２２４は、クライアント装置１０１に含まれるスクリプトエンジンモジュール２３２上で実行されるスクリプトコード２０６の形態で、ウェブブラウザモジュール２１１上での操作ログを取得する機能をレスポンス２０２に挿入する。なお、この操作ログ取得機能モジュールについては、例えば本発明者による、特開２００９−１０４２６７号公報「ウェブアプリケーションの処理記録方法および処理記録装置」等を参照されたい。
【００４４】
機能挿入モジュール２２３のコンテンツ改変機能モジュール２２５は、レスポンス２０２に含まれるコンテンツの一部を変更する機能を持ち、レスポンスに関連する識別子をコンテンツに挿入したりする。ブラウザ情報取得機能モジュール２２６は、クライアント装置１０１に含まれるスクリプトエンジンモジュール２１２上で実行されるスクリプトコード２０６の形態で、ウェブブラウザモジュール２１１に関する情報、例えばウェブブラウザの種類やバージョン情報などを取得し、記録する機能をレスポンス２０２に挿入する。
【００４５】
ウェブサーバ装置１２１では、さらに識別子送信モジュール２２７がウェブページのレスポンス２０２に関連した識別子２０５を生成もしくは取得してコンテンツ保存・再現サーバ装置１４１に送信する。また、コンテンツ送信モジュール２２８が、レスポンス２０２に含まれるウェブページのコンテンツ２０４をコンテンツ保存・再現サーバ装置１４１に送信する。これらの動作は、順次行っても、同時並行的に行ってもよい。
【００４６】
クライアント装置１０１では、ウェブブラウザモジュール２３１でレスポンス２０３に含まれるコンテンツが表示され、操作に応じて次のリクエストを送信したり、コンテンツに含まれるスクリプトコード２０６をスクリプトエンジンモジュール２３２で実行したりする。前記の操作ログ取得機能モジュール２２４で挿入されたスクリプトコードもスクリプトエンジンモジュール２３２で実行され、ウェブブラウザモジュール２３１上での操作ログや、ウェブページに含まれるアプリケーションの実行結果であるアプリケーションログ（アプリログ）を生成する。生成された操作ログやアプリログは、クライアント装置１０１のメモリ１０８上やローカルディスク１０５上に識別子と共に保存される。
【００４７】
また、ブラウザ情報取得モジュール２２６も操作ログ取得機能モジュール２２４と同様に、スクリプトエンジンモジュール２３２で実行され、ウェブブラウザモジュール２３１に関する情報をブラウザ情報として、ライアント装置１０１のメモリ１０８上やローカルディスク１０５上に識別子と共に保存される。以下では、操作ログ取得機能モジュール２２４とブラウザ情報取得モジュール２２６によって生成された操作ログ、アプリログ、ブラウザ情報をまとめてユーザログと呼ぶ。
【００４８】
操作ログ取得機能モジュール２２４には、ウェブブラウザモジュール２３１を介して、コンテンツ保存・再現サーバ装置１４１に対して、ユーザログの送信要求や、ユーザログの操作要求の有無を問い合わせる機能が含まれる。この問い合わせに対して、コマンド２０９が返された場合、コマンド２０９に応じて、メモリ１０８上やローカルディスク１０５上に保存されているユーザログをコンテンツ保存・再現サーバ装置１４１に送信したり、ユーザログを削除したりする。コマンド２０９には、これらのユーザログ送信やユーザログ削除以外の処理も含まれる。
【００４９】
コンテンツ保存・再現サーバ装置１４１では、コンテンツ保存サーバモジュール２４２が、ウェブサーバ装置１２１からコンテンツ２０４と識別子２０５を受信し、コンテンツ保存領域１４５に保存する。また、ログ受信サーバモジュール２４１が、コンテンツ保存サーバモジュールと連携して、保存されている識別子２０５の一覧データを外部再生装置１８１などに表示して、選択された識別子に関連するウェブページのユーザログをクライアント装置１０１から送信させるコマンドを生成し、クライアント装置１０１からのログ問合せ２０８に対して、ログ送信のコマンド２０９を送信して、ユーザログ２１０をクライアント装置１０１から受信し、ユーザログ保存領域１４６に保存する。前記の通り、コマンド２０９には、ログ送信以外の処理を実行させるものも含まれる。操作再現モジュール２４６は、外部再生装置１８１に対して、コンテンツ保存・再現サーバ装置１４１が変換したコンテンツやユーザログを利用して、ウェブ操作の再現をさせる機能を提供する。
【００５０】
外部再生装置１８１では、ウェブブラウザモジュール２５１が、コンテンツ保存・再現サーバ装置１４１と通信を行い、コンテンツ保存・再現サーバ装置１４１に保存されている識別子の一覧を表示して、入出力部１８３からの入力により、特定の識別子を選択して、コンテンツ保存・再現サーバ装置１４１に通知したり、コンテンツ保存・再現サーバ装置１４１の操作再現モジュール２４６を介して、ウェブページ上の操作状態を表示したり、その表示状態を入出力部１８３からの指示に応じて変更したりする。図２では、外部再生装置１８１とコンテンツ保存・再現サーバ装置１４１が直接接続されているが、ネットワーク１６１を介して接続されていてもよく、また、コンテンツやユーザログなどをウェブサーバ装置１２１などの他の装置から受信してもよい。
【００５１】
次に実施例１におけるウェブ操作の記録・再現方法の処理フローを図３〜図５を使って説明する。図３Ａ、３Ｂ、３Ｃは、コンテンツとユーザログの変換の処理フローを示した図で、図４は変換の処理の例を示した図である。
図３Ａでは、コンテンツ保存・再現サーバ装置１４１の操作再現モジュール２５３に含まれる、副作用除去機能モジュール２５４と利用環境反映機能モジュール２５５を抜き出し、図３Ｂ、３Ｃにそれぞれ各機能モジュールの機能を模式的に示した。図３Ａに記載されていない部分は、図２のウェブ操作の記録・再現処理フロー図に記載の通りである。
【００５２】
まず、副作用除去機能モジュール２５４と利用環境反映機能モジュール２５５は、いずれもコンテンツ３０１とユーザログ３０４を変換して、再現用コンテンツ３１０、３１３と再現用ユーザログ３１８、３２２を生成する機能をもつ。コンテンツ３０１には、ＨＴＭＬ文書などのドキュメント３０２とＪａｖａ（登録商標）Ｓｃｒｉｐｔコードなどのアプリコード３０３が含まれる。ユーザログ３０４には、ウェブブラウザ上での利用者の操作を記録した操作ログ３０５、ウェブページに含まれるアプリコードの実行結果を記録したアプリログ３０６、利用者のウェブブラウザに関する情報であるブラウザ情報３０７が含まれる。なお、図３には記載していないが、外部再現装置１８１のウェブブラウザモジュール２５１に関する情報もコンテンツ保存・再現サーバ装置１４１が保持している。
【００５３】
図３Ｂに示すように、副作用除去機能モジュール２５４は、まずコンテンツ３０１とユーザログ３０４から、外部再現装置１８１でウェブ操作を再現する際に発生する副作用の判定を行い、その後に副作用の無害化処理３０９を行い、再現用コンテンツ３１０と再現用ユーザログ３１４を生成する。副作用とは、ウェブ操作の再現時に本来発生してはいけない動作が起こることを意味し、例えば、ウェブページ上でのマウスクリック操作の再現時に、操作を再現するウェブブラウザから、ウェブサーバ装置１４１にデータの書き換えを行うリクエストが送信されるような動作が挙げられる。副作用の他の例としては、外部再現装置１８１のウェブブラウザ上で、ウェブ操作の再現を実行中に、コンテンツに含まれるアプリコードが動作し、利用者の操作時と異なる値(例えば日時)がウェブページ上に表示されたり、ウェブブラウザの動作が停止するなどの動作が挙げられる。
【００５４】
副作用の判定は、単純にアプリコード３０３に副作用を起こすコードがあるという事実から判定を行うこともできるが、その場合実際には動作しないコードまで副作用を起こすと判定されたり、条件によって副作用を起こす場合などに対する判定が困難である。そこで、ドキュメント３０２やユーザログ３０４なども利用して、動作するアプリコードであるか、その際に副作用を起こしたか、利用者の操作によって副作用が発生したかなど、副作用の判定をすることで、判定の精度を向上し、再現の精度を向上したり、再現時の副作用の発生可能性を低下させたりすることができる。ここでは、アプリコード３０３を例に、副作用の判定方法について述べたが、ドキュメント３０２や操作ログ３０５、アプリログ３０６などについても同様に、それぞれのコンテンツやユーザログを組み合わせて副作用判定を行う。
【００５５】
次に、図３Ｂの無害化処理３０９は、副作用判定３０８によってウェブ操作の再現時に副作用が発生すると判定されたコンテンツもしくはユーザログに対して、該当部分を削除したり、副作用が発生しないコンテンツやユーザログに変更をしたりする変換を行う。例えば、ウェブページ上の特定のボタンをクリックした場合に、特定のアプリコードが動作し、その結果ウェブサーバ装置１４１の状態を変更する通信が発生する場合に、無害化処理３０９の方法としては、特定のボタンをドキュメントから削除する、もしくは特定のボタンのクリック操作を記録した操作ログを削除する、もしくは再現時に実際にはクリック操作をせずに、クリック操作がされた事実を表示するだけの操作ログに変更する、もしくは該当する特定のアプリコードを削除する、もしくは該当する特定のアプリコードをウェブサーバ装置１４１の状態を変更する通信が発生しないアプリコードに変更するなどの方法がある。これらは一例であり、ドキュメントの変更・削除、アプリコードの変更・削除、操作の変更・削除などの方法を選択し、組み合わせて無害化処理３０９は行われる。
【００５６】
次に、図３Ｃにより、利用環境反映処理３１７について説明する。利用環境反映処理３１７は、まずコンテンツ３０１とユーザログ３０４から、外部再現装置１８１でウェブ操作を再現する際に、利用者のウェブ操作の環境と、外部再現装置１８１でのウェブ操作の再現環境の違いにより、再現の精度が低下しないように、コンテンツ３０１とユーザログ３０４を変換して、再現用コンテンツ３１８と再現用ユーザログ３２２を生成する。利用環境反映処理３１７での変換は、利用環境反映処理３１７で行い、例えば、ウェブブラウザの違いにより表示されるドキュメントに含まれるオブジェクトの大きさが異なる場合に、ドキュメント変更により、オブジェクトの大きさが利用者のウェブブラウザと再現時のウェブブラウザで同等になるようにする。その他の例としては、利用者のウェブブラウザと同等のレンダリングを実行してその結果を画像に変換し、これをドキュメントの背景として設定する方法や、ウェブブラウザ毎にアプリケーションの記述が異なる部分を変更したりする方法や、ウェブブラウザ毎にウェブ操作により発生するイベント種が異なる部分を変更したりする方法がある。
【００５７】
利用環境反映機能モジュール２５５が生成する再現用コンテンツ３１８には、生成画像３２１が含まれる。なお、これらは一例であり、ドキュメントの変更、アプリコードの変更、操作の変更、画像の生成などの方法を選択し、組み合わせて利用環境反映処理３１７は行われる。
【００５８】
図４は、図３Ａで説明したコンテンツ保存・再現サーバ装置１４１における、コンテンツとユーザログの変換の処理フローの一例を示している。この例では、利用者のウェブブラウザと外部再現装置１８１の再現環境のウェブブラウザが大きく異なるケースを想定して、コンテンツ３０１とユーザログ３０４の変換をコンテンツ保存・再現サーバ装置１４１で行う場合の処理内容について説明する。まず、本実施例では、利用環境反映機能モジュール２５４に、ユーザログ３０４のブラウザ情報３０７から利用者の環境と同じウェブページのレンダリングを行うウェブブラウザを用意し、このウェブブラウザ上でコンテンツ３０１のレンダリングをユーザ操作の実行前までを行う。
【００５９】
次に画像変換フィルタ４０４において、レンダリング結果を例えばビットマップ画像化する。その後、ドキュメント変更フィルタ４０６において、コンテンツ３０１に含まれるドキュメント３０２の背景を、画像変換フィルタ４０４で生成したビットマップ画像に変更する。これらと並行して、副作用除去機能モジュール２５４で、ウェブページのレンダリング後に、コンテンツ３０１に含まれるアプリコード３０３と、ユーザログ３０４に含まれるアプリログ３０６を削除する。
【００６０】
以上の変換結果を、再現用コンテンツ３１８、再現用ユーザログ３２２として生成し、これを利用して外部再現装置１８１でウェブ操作の再現を行う。以上により、利用者のウェブブラウザと、再現環境のウェブブラウザが大きく異なる場合においても、精度が高く、副作用を生じないウェブ操作の再現が実現できる。
【００６１】
次に、図５を用いて、図４までに説明したコンテンツ３０１とユーザログ３０４の変換を含む、ウェブ操作の記録・再現の処理フローについてまとめて説明する。まずクライアント装置のウェブブラウザモジュールがウェブアプリケーションへのリクエストをウェブサーバ装置に送信する（ステップ５０３）。ウェブサーバ装置は、ウェブサーバモジュールがクライアント装置からリクエストを受信してウェブアプリケーションのレスポンスを生成する（ステップ５２３）
。そして、機能挿入モジュールが操作ログ取得機能とブラウザ情報取得機能と、レスポンス生成毎にユニークな値である識別子をレスポンスに挿入する（ステップ５２４）。識別子は、レスポンス毎にユニークな値であり、そのレスポンスのウェブページのコンテンツや、そのウェブページ上で行われた操作の操作ログ、その操作ログに関連付けられた文書構造などを特定するのに利用される。次にレスポンスをクライアント装置に送信する（ステップ５２５）。続いて、コンテンツ送信モジュールと識別子送信モジュールがコンテンツ保存・再現サーバ装置にレスポンスと識別子を含むコンテンツを送信する（ステップ５２７）。
【００６２】
ステップ５２３〜５２７に関しては、図５に示した順序に限らず、同時並行的に実行しても良い。ウェブサーバ装置は、クライアント装置からのリクエストが終了したり、ウェブサーバ装置が終了されると処理を終了する（ステップ５２８、５２９）。
【００６３】
続いて、クライアント装置がウェブサーバ装置からレスポンスを受信する（ステップ５０４）。クライアント装置におけるステップ５０３、５０４の一連の処理は、クライアント装置におけるウェブページの表示を行う処理のフローであり、以下ではまとめてステップ５０２と呼ぶ。
【００６４】
コンテンツ保存・再現サーバ装置は、ウェブサーバ装置から識別子が送信されてきたかを判定し（ステップ５４３）、送信があった場合には、識別子とコンテンツを受信して保存する（ステップ５４４）。続いて、コンテンツ保存・再現サーバ装置では、外部再現装置からの操作再現要求の有無を確認し（ステップ５４５）、操作再現要求があった場合には、再現対象の識別子と共にクライアント装置にログ送信を要求する（ステップ５４６）。操作再現要求が無かった場合には、ステップ５４３に戻る。続いて、クライアント装置から操作再現対象の操作ログ、ブラウザ情報、アプリログなどのユーザログを受信する（ステップ５４７）。以下では、これらのステップ５４３〜５４７のウェブサーバ装置との通信処理をまとめてステップ５４２と呼ぶ。
【００６５】
ステップ５４２に続く処理は、操作再現モジュール２４３で実行され、様々な処理が含まれるが、ここでは一つの例を例示説明する。
【００６６】
コンテンツ保存・再現サーバ装置１４１では、クライアント装置１０１から受信したブラウザ情報からクライアント装置上でのウェブページのレンダリングとアプリコードの実行と同等のレンダリング、アプリコードの実行が可能な環境を選択、用意して、ユーザ操作前の状態までウェブページのレンダリング、アプリコードの実行を行う（ステップ５４９）。続いて、レンダリング結果を画像に変換し（ステップ５５０）、さらにウェブページのドキュメントを変換してステップ５５０で生成した画像をウェブページの背景画像として設定する（ステップ５５２）。また、ステップ５５０、５５２と並行して、ウェブページに含まれるアプリコードと、ユーザログに含まれる該当するアプリログを削除する（ステップ５５１）。以下では、ステップ５４９〜５５２までの処理をまとめてステップ５４８と呼ぶ。
【００６７】
ステップ５４８により、外部再現装置でウェブ操作を再現する際に、クライアント装置のウェブページの操作環境と、外部再現装置のウェブページの再現環境の違いによらずに、精度の高いウェブ操作の再現ができ、さらに、ウェブ操作の再現時にウェブサーバ装置の状態を変更するような通信を発生させるなどの副作用を抑止することができるコンテンツとユーザログに変換ができる。最後に変換後の再現用コンテンツと再現用ユーザログを外部再現装置に送信する（ステップ５５３）。操作の再現の終了を判定し（ステップ５５４）、終了でなければステップ５４３に戻り、それ以外は終了する（ステップ５５５）。
【００６８】
なお、図５では外部再現装置を省略したが、コンテンツ保存・再現サーバ装置の処理フローに記載の通り、外部再現装置は操作の再現要求をコンテンツ保存・再現サーバ装置に送信し、コンテンツ保存・再現サーバ装置で生成した再現用コンテンツと再現用ユーザログを受信して操作の再現を行う。
【００６９】
ウェブページの表示が完了したクライアント装置１０１では、ブラウザ情報取得機能がウェブブラウザに関する情報をブラウザ情報としてユーザログ保存領域に保存する（ステップ５０６）。次に操作ログ取得機能がウェブブラウザ上での操作時に操作ログを生成しユーザログ保存領域に保存する（ステップ５０７）ここで、ウェブページの文書構造やウェブページに含まれるアプリコードの実行により状態に変化が生じたかを判定し（ステップ５０８）、変化がある場合には、操作ログと関連づけて変換をアプリログとしてユーザログ保存領域に保存する（ステップ５０９）。変化がない場合には、ステップ５０９はスキップする。その後、コンテンツ保存・再現サーバ装置に、ログ送信要求の有無を問い合わせる（ステップ５１０）。
【００７０】
この際、クライアント装置や、表示しているウェブページが特定できる識別子をログ連携サーバ装置に送信する。送信要求があった場合には、コンテンツ保存・再現サーバ装置へ操作ログ、ブラウザ情報、アプリログなどのユーザログを送信する（ステップ５１１）。送信要求がなかった場合には、ステップ５１１はスキップされる。その後、ページ遷移の有無を確認し（ステップ５１２）、ページ遷移があればステップ５０３に戻り、なければ、操作が終了もしくはクライアント装置が終了かを判定し（ステップ５１３）、終了でなければステップ５０７に戻り、それ以外は処理を終了する（ステップ５１４）。
【実施例２】
【００７１】
続いて第２の実施例を、図６を用いて説明する。ここでは実施例１との差分についてのみ示し、実施例１で説明した部分については省略する。
図６は、コンテンツとユーザログの変換に関する第２の実施例を示した処理フロー図である。コンテンツ保存・再現サーバ装置１４１以外の処理は省略しているが、図５に示した処理フローと同じである。
【００７２】
実施例１との違いは、実施例１では、ウェブページのレンダリング結果を、ユーザ操作前の初期状態のみ画像に変換してドキュメントの背景としていたため、ユーザ操作により、レンダリング結果に変化が起こる場合に、その変化を再現することができなかったが、実施例２では、ユーザ操作によるレンダリング結果の変化に対しても精度良く再現することが可能となる。
【００７３】
図６のステップ５４２でサーバ装置からのコンテンツと、クライアント装置からのユーザログがそろった状態で、クライアント装置から受信したブラウザ情報からクライアント装置上でのウェブページのレンダリングとアプリコードの実行と同等のレンダリング、アプリコードの実行が可能な環境を選択、用意して、ユーザ操作前の状態までウェブページのレンダリング、アプリコードの実行を行う（ステップ５４９）。
【００７４】
続いて、レンダリング結果の画像変換がまだ行われていない、もしくはレンダリング結果に変化があるかを判定し（ステップ６０３）、該当する場合には、レンダリング結果を画像に変換し（ステップ６０４）、さらにウェブページのドキュメントを変換してステップ６０４で生成した画像をウェブページの背景画像として設定する（ステップ６０６）。また、ステップ６０４、６０６と並行して、レンダリング結果に変化を起こした操作の操作ログをレンダリング結果への変化を起こさない操作に変換する（ステップ６０５）。
【００７５】
ステップ６０５の例としては、ウェブページ上のボタンに対するクリック操作によって、ウェブページ上に表示されている文字列に変化が生じる場合に、該当するクリックの操作ログを、ウェブ操作の再現時には実際にクリック操作をせず、クリック操作があったことをウェブページ上に表示するだけとする操作ログに変換する方法が挙げられる。
【００７６】
なお、ステップ６０３による判定で、レンダリング結果の画像変換がまだ行われていない、つまり初回の処理である場合にはステップ６０５はスキップして良い。続いて操作ログがあるかを判定し（ステップ６０７）、ある場合にはステップ６０３に戻り、ない場合にはウェブページに含まれるアプリコードと、ユーザログに含まれる該当するアプリログを削除する（ステップ６０８）。最後に変換後の再現用コンテンツと再現用ユーザログを外部再現装置に送信する（ステップ６０９）。操作の再現の終了を判定し（ステップ６１０）、終了でなければステップ５４２に戻り、それ以外は終了する（ステップ６１１）。
【００７７】
以上説明した実施例３の処理フローにより、ユーザ操作によるレンダリング結果の変化に対しても精度良く再現することが可能になる。
【実施例３】
【００７８】
第３の実施例を、図７Ａ、図７Ｂ、図８を用いて説明する。ここでは実施例１、２との差分についてのみ示し、実施例１、２で説明した部分については省略する。
図７Ａ、図７Ｂは、操作の再現時に問題が発生する例を示した図である。図８は、図７Ａ、図７Ｂに示した問題を解決する、コンテンツとユーザログの変換に関する実施例３の処理フロー図である。コンテンツ保存・再現サーバ装置以外の処理は省略しているが、図５に示した処理フローと同じである。
【００７９】
図７Ａに示すように、ウェブブラウザ７０１上に表示されているウェブドキュメント７０２に、実行ボタン７０３が含まれ、実行ボタン７０３がクリックされた状態を模式的に示している。ここでは、表示されているウェブページに、この実行ボタンのクリック操作により、ウェブサーバ装置に対して通信が発生し、ウェブサーバの状態を更新する機能を含むアプリコードが含まれている。
【００８０】
そのため、図７Ｂに模式的に示すように、実行ボタンのクリック操作により、クライアント装置１０１のウェブブラウザからウェブサーバ装置１２１に対して通信が発生し、その結果、ウェブサーバ装置１２１では受信した通信により、例えばウェブサーバ装置１２１に含まれるデータベースなどのウェブサーバ装置１２１に保存されている状態に対して更新が行われる。このようなウェブ操作の再現を行う場合に、実行ボタン７０３のクリック操作をそのまま実行してしまうと、ウェブ操作の再現時にもウェブサーバ装置の状態が更新され、その後、別のクライアント装置１０１からウェブサーバ装置に対してウェブページのリクエストがなされた場合に、前記のウェブサーバ装置の状態の更新により、別のクライアント装置１０１に対するレスポンスが本来のウェブサーバ装置の状態とは異なる状態で生成されて影響が発生してしまう。
【００８１】
本実施例では、図８に示した、上記の問題を解決するコンテンツとユーザログの変換に関する別の処理フローを実行する。実施例１、２との違いは、実施例１、２では、ウェブページに含まれるアプリコードを削除していたが、図７Ａ、図７Ｂに示したような問題を発生しないアプリコードまで削除してしまうことで、ウェブ操作の再現の精度が低下することがある。そこで実施例３では、問題を発生するアプリコードを選択的に削除することで、精度良く再現する方法を示す。
【００８２】
ステップ５４２でサーバ装置からのコンテンツと、クライアント装置からのユーザログがそろった状態で、クライアント装置から受信したブラウザ情報からクライアント装置上でのウェブページのレンダリングとアプリコードの実行と同等のレンダリング、アプリコードの実行が可能な環境を選択、用意して、ユーザ操作前の状態までウェブページのレンダリング、アプリコードの実行を行う（ステップ５４９）。続いて、レンダリング結果の画像変換がまだ行われていない、もしくはレンダリング結果に変化があるかを判定し（ステップ６０３）、該当する場合には、レンダリング結果を画像に変換し（ステップ６０４）、さらにウェブページのドキュメントを変換してステップ６０４で生成した画像をウェブページの背景画像として設定する（ステップ６０６）。また、ステップ６０４、６０６と並行して、レンダリング結果に変化を起こした操作の操作ログをレンダリング結果への変化を起こさない操作に変換する（ステップ６０５）。これらのステップ６０３〜６０６は実施例２と同じである。
【００８３】
ステップ６０３〜６０６と並行して、操作ログとアプリログから、再現対象となる操作によって、サーバ状態の更新を起こす通信が発生しているかを判定し（ステップ８０３）、通信が発生する場合には、該当するアプリコードと、アプリログを削除する（ステップ８０４）。続いて操作ログやアプリログがあるかを判定し（ステップ８０５）、ある場合にはステップ６０３とステップ８０３に戻り、ない場合には変換後の再現用コンテンツと再現用ユーザログを外部再現装置に送信する（ステップ８０６）。操作の再現の終了を判定し（ステップ８０７）、終了でなければステップ５４２に戻り、それ以外は終了する（ステップ８０８）。
【００８４】
以上、実施例３の処理フローにより、ウェブページに含まれるアプリコードが動作する場合においても、ウェブ操作を精度良く再現することが可能になる。
【実施例４】
【００８５】
第４の実施例を、図９、図１０を用いて説明する。ここでは実施例１、２、３との差分についてのみ示し、実施例１、２、３で説明した部分については省略する。
図９Ａ、図９Ｂは、操作の再現時に問題が発生する例を示した図である。図１０は、図９Ａ、図９Ｂに示した問題を解決する、コンテンツとユーザログの変換に関する実施例４の処理フロー図である。コンテンツ保存・再現サーバ装置１４１以外の処理は省略しているが、図５に示した処理フローと同じである。
【００８６】
図９Ａでは、ウェブブラウザ９０１上に表示されているウェブドキュメント９０２に、実行ボタン９０３と、テキスト情報９０４が含まれ、実行ボタン９０３がクリックされて、テキスト情報９０４が更新された状態を模式的に示している。ここでは、表示されているウェブページに、この実行ボタンのクリック操作により、ウェブサーバ装置に対して通信が発生し、ウェブサーバの状態を更新し、さらにウェブサーバからのレスポンスによりテキスト情報を更新する機能を含むアプリコードが含まれている。
【００８７】
そのため、図９Ｂに示すように、実行ボタンのクリック操作により、クライアント装置１０１のウェブブラウザからウェブサーバ装置１２１に対して通信が発生し、その結果、ウェブサーバ装置１２１では受信した通信により、例えばウェブサーバ装置に含まれるデータベースなどのウェブサーバ装置に保存されている状態に対して更新が行われる。さらに、ウェブサーバ装置の状態の変化に応じてクライアント装置に対してレスポンスが生成され、そのレスポンスによってクライアント装置上に表示されているテキスト情報が更新される。
【００８８】
このようなウェブ操作の再現を行う場合に、実行ボタンのクリック操作をそのまま実行してしまうと、実施例３で説明したように、ウェブ操作の再現時にもウェブサーバ装置の状態が更新され、その後、別のクライアント装置１０１からウェブサーバ装置１２１に対してウェブページのリクエストがなされた場合に、前記のウェブサーバ装置の状態の更新により、別のクライアント装置１０１に対するレスポンスが本来のウェブサーバ装置の状態とは異なる状態で生成されて影響が発生してしまう。一方、ウェブサーバ装置の状態を更新しなかったり、通信を発生させなかったりした場合には、テキスト情報の更新が正しく行われない問題が発生してしまう。
【００８９】
そこで本実施例においては、図１０に示した、問題を解決するコンテンツとユーザログの変換に関する別の処理フローにより解決する。実施例１、２、３との違いは、実施例１、２、３では、問題が発生するウェブページに含まれるアプリコードを削除していたが、図９に示したような問題では、アプリコードを削除するだけではウェブ操作の再現の精度が低下することがある。そこで実施例４では、問題を発生するアプリコードを変更して、アプリコードの変更と、その後のレンダリングの実行によりウェブ操作を精度良く再現する方法を示す。
【００９０】
ステップ５４２でサーバ装置１２１からのコンテンツと、クライアント装置１０１からのユーザログがそろった状態で、クライアント装置から受信したブラウザ情報からクライアント装置上でのウェブページのレンダリングとアプリコードの実行と同等のレンダリング、アプリコードの実行が可能な環境を選択、用意して、ユーザ操作前の状態までウェブページのレンダリング、アプリコードの実行を行う（ステップ５４９）。
【００９１】
続いて、レンダリング結果の画像変換がまだ行われていない、もしくはレンダリング結果に変化があるかを判定し（ステップ６０３）、該当する場合には、レンダリング結果を画像に変換し（ステップ６０４）、さらにウェブページのドキュメントを変換してステップ６０４で生成した画像をウェブページの背景画像として設定する（ステップ６０６）。また、ステップ６０４、６０６と並行して、レンダリング結果に変化を起こした操作の操作ログをレンダリング結果への変化を起こさない操作に変換する（ステップ６０５）。これらのステップ６０３〜６０６は実施例２と同じである。
【００９２】
ステップ６０３〜６０６と並行して、操作ログとアプリログから、再現対象となる操作によって、サーバ状態の更新を起こす通信が発生しているかを判定し（ステップ８０３）、通信が発生する場合には、該当するアプリコードを変更してレンダリングを行う（ステップ１００３）。アプリコードの変更の例としては、通信を発生させその通信に対するレスポンスを受信するアプリコードを、通信を発生させずレスポンスの受信結果をアプリログから取得して、実際の通信をせずにレスポンスを受信した状態にするアプリコードに変更する方法が挙げられる。
【００９３】
これにより、図９Ａのテキスト情報９０４の更新が正しく行われる。そして、レンダリング結果を画像変換するために、ステップ６０４、６０５に進む。以上の処理に続いて、操作ログやアプリログがあるかを判定し（ステップ８０５）、ある場合にはステップ６０３とステップ８０３に戻り、ない場合には変換後の再現用コンテンツと再現用ユーザログを外部再現装置に送信する（ステップ１００４）。操作の再現の終了を判定し（ステップ１００５）、終了でなければステップ５４２に戻り、それ以外は終了する（ステップ１００６）。
【００９４】
以上の実施例４の処理フローにより、ウェブページに含まれるアプリコードが動作し、ウェブページのレンダリング結果が変化する場合においても、ウェブ操作を精度良く再現することが可能になる。
【実施例５】
【００９５】
第５の実施例を、図１１、図１２を用いて説明する。ここでは実施例１、２、３、４との差分についてのみ示し、実施例１、２、３、４で説明した部分については省略する。
図１１は、操作の再現時に問題が発生する例を示した図である。図１２は、図１１に示した問題を解決する、コンテンツとユーザログの変換に関する別の実施例の処理フロー図である。コンテンツ保存・再現サーバ装置以外の処理は省略しているが、図５に示した処理フローと同じである。
【００９６】
図１１では、ウェブブラウザ１１０１、１１１１上に表示されているウェブドキュメント１１０２、１１１２に、実行ボタン１１０３、１１１３と、テキスト情報１１０４、１１１４が含まれ、実行ボタン１１０３、１１１３がクリックされて、テキスト情報１１０４、１１１４が更新された状態を模式的に示している。図１１の上部ウェブブラウザ１１０１は、コンテンツとユーザログの変換前、図１１の下部ウェブブラウザ１１１１は、コンテンツとユーザログの変換後の状態を示している。操作の再現状態については、変換前、変換後でほぼ同じであるが、１箇所実行ボタン１１０３、１１１３の操作の再現のみが異なっている。
【００９７】
変換前では、実行ボタン１１０３を実際にクリック操作し、その結果、アプリコードが実行され、ウェブサーバの状態を更新する通信が発生する。そして、テキスト情報１１０４は、ウェブサーバの状態が更新されたことにより、表示内容が更新されている。一方、変換後は、ウェブサーバ状態を更新する通信の発生により、例えばウェブサーバ装置に含まれるデータベースなどのウェブサーバ装置に保存されている状態に対して更新が行われ、別のクライアント装置１０１からウェブサーバ装置１２１に対してウェブページのリクエストがなされた場合に、前記のウェブサーバ装置の状態の更新により、別のクライアント装置１０１に対するレスポンスが本来のウェブサーバ装置の状態とは異なる状態で生成されて影響が発生してしまう問題の発生を抑止するために、実際のクリック操作は行わず、図１１に示すように、クリックした事実の表示のみ行う。
【００９８】
しかし、実際のクリック操作を行わないと、クリック操作によって実行されるアプリコードが実行されないため、テキスト情報１１１４が更新されない問題が起こる。この問題に対し、本実施例では、操作ログとアプリログを使って、テキスト情報１１１４の更新を行うことで、ウェブ操作を精度良く再現する。
【００９９】
図１２に示した、問題を解決するコンテンツとユーザログの変換に関する実施例５の処理フローについて説明する。実施例１、２、３、４との違いは、実施例１、２、３、４では、問題が発生するウェブページに含まれるアプリコードの削除や変更をしていたが、アプリコードの削除や変更をせずに、ウェブ操作の再現を行う点である。
ステップ５４２でサーバ装置からのコンテンツと、クライアント装置からのユーザログがそろった状態で、クライアント装置から受信したブラウザ情報からクライアント装置上でのウェブページのレンダリングとアプリコードの実行と同等のレンダリング、アプリコードの実行が可能な環境を選択、用意して、ユーザ操作前の状態までウェブページのレンダリング、アプリコードの実行を行う（ステップ５４９）。その後、次の操作やアプリログがあるかを判定し（ステップ１２０３）、ある場合には、該当する操作によりサーバ状態の更新を起こす通信が発生するかを判定する（ステップ１２０４）。通信が発生する場合には、該当する操作を、通信を発生させない操作に変換し、アプリログから再現時に該当操作によりドキュメントに生じた変化を再現する機能をドキュメントに追加する（ステップ１２０５）。
【０１００】
具体的な例としては、操作によって実行されるアプリコードに通信を発生させる機能が含まれている、もしくは操作と関連付けられたアプリログに通信の発生、言い換えるならウェブサーバの状態に影響を与えるアプリコードの実行状態がアプリログとして記録されている場合に、当該アプリログに記録されているアプリコードに該当する操作を、実際に実行はせずにウェブブラウザ上に操作の事実のみを表示する操作に変更し、その操作に伴って変更されるウェブページの表示内容をアプリログから取得してドキュメントの変更を行う方法が挙げられる。ウェブ操作の再現対象となる操作やアプリログがなければ、変換後の再現用コンテンツと再現用ユーザログを外部再現装置に送信する（ステップ１２０６）。操作の再現の終了を判定し（ステップ１２０７）、終了でなければステップ５４２に戻り、それ以外は終了する（ステップ１２０８）。
【０１０１】
以上の実施例５の処理フローにより、操作によりアプリコードが動作し、ウェブページのレンダリング結果が変化する場合においても、アプリコードの削除や変更をせずにウェブ操作を精度良く再現することが可能になる。
【実施例６】
【０１０２】
第６の実施例を、図１３、図１４を用いて説明する。ここでは実施例１、２、３、４、５との差分についてのみ示し、実施例１、２、３、４、５で説明した部分については省略する。
図１３は、クライアント装置１０１と外部再現装置１８１のウェブブラウザが異なる場合に、コンテンツやユーザログの変換によりウェブ操作を精度良く再現する方法について模式的に示した図である。図１４は、図１３に示した、コンテンツとユーザログの変換に関する別の実施例の処理フロー図である。コンテンツ保存・再現サーバ装置以外の処理は省略しているが、図５に示した処理フローと同じである。
【０１０３】
図１３に示した実施例６の方法は、クライアント装置１０１上で利用者が操作を行うウェブブラウザＡ１３０１と、外部再現装置１８１上でウェブ操作の再現を行うウェブブラウザＢ１３０３が異なる場合に、コンテンツ保存・再現サーバ装置１４１にて、ブラウザ間の違いを吸収するために、コンテンツやユーザログの変換方法を記述したブラウザ間変換表１３０２を用意し、ブラウザ間変換表１３０２でコンテンツやユーザログの変換を行ってウェブ操作の再現を行うことで、精度の良いウェブ操作の再現を行う方法である。
【０１０４】
具体的には、ウェブブラウザＡ上での操作イベントＸがウェブブラウザＢでは操作イベントＹに相当する場合、ブラウザ間変換表１３０２では、この対応関係が表形式で記述されている。アプリログについても、データの保存先のストレージ名がウェブブラウザＡではストレージＳ，ウェブブラウザＢではストレージＴの場合に、その対応関係をブラウザ間変換表１３０２に記述する。図１３では、操作ログとアプリログについてのみ示したが、ドキュメントやアプリコードなど、コンテンツやユーザログに含まれるものすべてがブラウザ間変換表１３０２に記述する対象となる。
【０１０５】
図１４を用いて、図１３に示した実施例６の処理フローについて説明する。実施例１、２、３、４、５との違いは、実施例１、２、３、４、５では、クライアント装置１０１のブラウザ情報から、同等のレンダリング、アプリ実行可能な環境をコンテンツ保存・再現サーバ装置に用意してレンダリングを行うことで、操作を精度良く再現していたが、実施例６では、このようなレンダリング、アプリ実行の環境を用意せずに、ウェブ操作の再現を行う点である。
【０１０６】
図１４のステップ５４２でサーバ装置からのコンテンツと、クライアント装置からのユーザログがそろった状態で、クライアント装置のブラウザ情報と、外部再現装置のブラウザ情報から、外部再現装置でクライアント装置と同等の操作の再現を実現するようにブラウザ間変換表を用いてコンテンツやユーザログを変換する（ステップ１４０３）。その後、操作によってサーバ状態の更新を起こす通信が発生するかを判定し（ステップ１４０４）、通信が発生する場合には、該当するアプリコードとアプリログを削除し（ステップ１４０５）通信が発生しない場合には、ステップ１４０５をスキップする。これを次の操作やアプリログがある間継続し（ステップ１４０６）、その後に変換後の再現用コンテンツと再現用ユーザログを外部再現装置に送信する（ステップ１４０７）。操作の再現の終了を判定し（ステップ１４０８）、終了でなければステップ５４２に戻り、それ以外は終了する（ステップ１４０９）。
【０１０７】
以上の処理フローにより、クライアント装置のウェブブラウザと同等のレンダリング、アプリ実行環境を用意せずに、コンテンツやユーザログを変換してウェブ操作を精度良く再現することが可能になる。
【実施例７】
【０１０８】
続いて、第７の実施例を、図１５を用いて説明する。
図１５は、ウェブブラウザ１５０１上に、実行ボタン１５０３やテキスト情報１５０４などのオブジェクトが含まれるウェブドキュメント１５０２が表示されている状態を模式的に示した図である。実施例１〜６に示したように、ウェブ操作の再現時に、副作用を抑止すると、完全な操作の再現ができず、ウェブページの表示内容に、操作の記録時と異なる部分が生じてしまうことがある。例えば、アプリコードの削除によって、記録時にはアプリコードの実行によって表示内容が更新されたものの、再現時にはアプリコードが実行されずに表示内容が更新されないような場合がある。そこで、ウェブブラウザ１５０１上に、操作の記録時と再現時で表示内容に差が出ている部分、もしくは差が出ている可能性がある部分を表示する。これにより、ウェブ操作の再現状況の正しい解釈を実現できる。
【０１０９】
以上、本発明の第１〜第７の実施例１〜７を説明した。本発明はこれらの実施例に限定されるものではなく、これらの組み合わせ等、様々な変形例が含まれる。ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１１０】
また、実際例１〜７はそれぞれ一例を示したに過ぎず、例えば、操作の再現をしつつ、操作の記録を行う場合なども本発明の実施例の組み合わせにて実現される。また、コンテンツ、ユーザログに含まれる可能性のある情報としては、ウェブブラウザ上で記録可能なすべての情報が対象となる。また、すべての装置が１台ずつの場合のみ説明したが、それぞれ複数台であったり、複数の装置が少ない台数にまとまっている場合も含まれる。
【０１１１】
また、実施例の各構成要素、機能、処理部、処理手段等は、それらの一部又は全部を、例えばハードウェアで実現してもよい。また、上記の各構成、機能等を実現するプログラム、テーブル、ファイル等の情報は、図示したメモリや、ローカルディスク以外に、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体におくことができるし、必要に応じてネットワーク等を介してダウンロード、インストロールすることも可能であることは言うまでもない。
【符号の説明】
【０１１２】
１０１：クライアント装置
１０２、１２５、１４７、１８３：入出力部
１０３、１２３、１４３、１８４：プロセッサ
１０５、１２４、１４４：ローカルディスク
１０７、１２２、１４２、１８２：ネットワークインタフェース
１０８、１２６、１４８、１８５：メモリ
１０９、１８６：ウェブブラウザプログラム
１１０：スクリプトエンジンプログラム
１２１：ウェブサーバ装置
１２７：ウェブサーバプログラム
１２８：機能挿入プログラム
１２９：識別子送信プログラム
１４１：コンテンツ保存・再現サーバ装置
１４５：コンテンツ保存領域
１４６：ユーザログ保存領域
１４９：コンテンツ保存サーバプログラム
１５０：ログ受信サーバプログラム
１５１：操作再現プログラム
１６１：ネットワーク
１８１：外部再現装置
１８６：表示プログラム
７０１、９０１、１１０１、１５０１：ウェブブラウザ・ウィンドウ。
【図１】
0005476326.tif 000002
【図２】
0005476326.tif 000003
【図３Ａ】
0005476326.tif 000004
【図３Ｂ】
0005476326.tif 000005
【図３Ｃ】
0005476326.tif 000006
【図４】
0005476326.tif 000007
【図５】
0005476326.tif 000008
【図６】
0005476326.tif 000009
【図７Ａ】
0005476326.tif 000010
【図７Ｂ】
0005476326.tif 000011
【図８】
0005476326.tif 000012
【図９Ａ】
0005476326.tif 000013
【図９Ｂ】
0005476326.tif 000014
【図１０】
0005476326.tif 000015
【図１１】
0005476326.tif 000016
【図１２】
0005476326.tif 000017
【図１３】
0005476326.tif 000018
【図１４】
0005476326.tif 000019
【図１５】
0005476326.tif 000020