JP2012038142A - ウェブアプリケーションの操作記録方法およびシステム - Google Patents
ウェブアプリケーションの操作記録方法およびシステム Download PDFInfo
- Publication number
- JP2012038142A JP2012038142A JP2010178550A JP2010178550A JP2012038142A JP 2012038142 A JP2012038142 A JP 2012038142A JP 2010178550 A JP2010178550 A JP 2010178550A JP 2010178550 A JP2010178550 A JP 2010178550A JP 2012038142 A JP2012038142 A JP 2012038142A
- Authority
- JP
- Japan
- Prior art keywords
- web application
- acquisition
- log
- information
- web
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/875—Monitoring of systems including the internet
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】アプリケーションレイヤの情報を基に、操作ログの取得レベルの制御を行うことで、効率的なログ収集を可能とする。
【解決手段】ウェブサーバ120は、操作ログ取得機能スクリプト223と、ログ取得制御定義テーブル130とプロパティ取得定義テーブル131の情報を埋め込んだレスポンス225を生成し、クライアント装置100に送信する。クライアント装置100では、ウェブブラウザモジュール200から、これらの情報をスクリプトエンジンモジュール201に転送する。操作ログ取得機能モジュール223は、転送された情報に基づき、情報取得イベントハンドラ262を設定し、ウェブブラウザ上のユーザ操作に基づき順次操作ログを取得し、ログサーバ装置140に送信する。ログサーバモジュール240は操作ログ記録テーブル148に蓄積し、ログ分析モジュール241が分析を行う。
【選択図】図2
【解決手段】ウェブサーバ120は、操作ログ取得機能スクリプト223と、ログ取得制御定義テーブル130とプロパティ取得定義テーブル131の情報を埋め込んだレスポンス225を生成し、クライアント装置100に送信する。クライアント装置100では、ウェブブラウザモジュール200から、これらの情報をスクリプトエンジンモジュール201に転送する。操作ログ取得機能モジュール223は、転送された情報に基づき、情報取得イベントハンドラ262を設定し、ウェブブラウザ上のユーザ操作に基づき順次操作ログを取得し、ログサーバ装置140に送信する。ログサーバモジュール240は操作ログ記録テーブル148に蓄積し、ログ分析モジュール241が分析を行う。
【選択図】図2
Description
本発明は、ウェブブラウザの動作するクライアント装置と、ウェブアプリケーションが動作するサーバ装置からなるコンピュータシステムに関し、特にウェブアプリケーションを利用するユーザのウェブブラウザ上での操作を、ユーザの属性に応じて記録する技術に関する。
ブロードバンドの普及により様々なサービスがウェブシステムを用いて提供されるようになってきている。ウェブシステムの構築は、ハードウェアの低価格化やウェブサーバシステムやサービス構築のためのパッケージ製品により、あらゆる企業で提供が可能となってきている。ウェブアプリケーションは、従来の静的な画面の提供だけではなく、Dynamic HTML(Hyper Text Markup Language)技術や、Ajax(Asynchronous JavaScript + Extensible Markup Language(XML))技術などを利用して、動的な画面を提供し、使い勝手を向上させることで差別化する流れも進んでいる。
一方、オンラインサービスならではの弊害も出てきている。対面にてサービスを提供している場合、顧客の反応に応じて、応対の仕方を変えることが可能である。しかしながら、オンラインサービスの場合、顧客の顔を直接見ることが困難なため、顧客の反応を把握することが困難である。そのため顧客の反応に応じたきめ細かいサービスの提供が困難となっている。
これに対し、ウェブブラウザ上でのユーザのマウスやキーボード操作などを記録することで、サービスの利用状況を把握する技術が開示されている(特許文献3)。特許文献3の技術は、ユーザのウェブブラウザ上でのマウスやキーボード操作を記録し、サーバに送信するスクリプトプログラムを、ウェブアプリケーションのレスポンスに挿入する。ここで、レスポンスとはウェブアプリケーションの画面生成のためのデータであり、HTML言語などで記述されている。挿入されたスクリプトプログラムは、ウェブブラウザのスクリプト実行エンジンで解釈・実行され、ユーザのブラウザ上での操作を捕捉し、操作ログとして記録する。操作ログを収集、分析することで、ユーザがウェブページのどこをクリックしたか、ウェブページをどこまでを読んだかなど、を把握することが可能となり、オンラインサービスに対する顧客の反応を調査することが可能となる。
その他に関連技術として、ウェブアプリケーションの画面、すなわち、HTMLから情報を取得する技術が幾つか開示されている。HTMLなどタグ付けされた言語で記述されたドキュメントの場所を表現する方法として非特許文献2に示すXPath(XML Path Language)が広く用いられている。XPathを用いて場所を表現し、XPathの実行エンジンを用いてウェブアプリケーションの画面から情報を取得する方法は広く用いられている。また、HTMLのテーブルやリスト構造に着目して、情報抽出ルールを定義し、情報を抽出する方法が特許文献1に開示されている。
更に、ウェブサーバからのレスポンス中に、クライアント装置内の処理を記録するためのスクリプトコードを挿入しておき、クライアント装置の処理の記録を保存する技術が特許文献2に開示されている。
上記で開示したサービスの利用状況を把握する技術は、SaaS(Software as a Service)の形態や、既存アプリケーションにアドオンの形で提供されることが多い。
更に、ウェブサーバからのレスポンス中に、クライアント装置内の処理を記録するためのスクリプトコードを挿入しておき、クライアント装置の処理の記録を保存する技術が特許文献2に開示されている。
上記で開示したサービスの利用状況を把握する技術は、SaaS(Software as a Service)の形態や、既存アプリケーションにアドオンの形で提供されることが多い。
XML Path Language (XPath) 2.0, W3C Recommendation 23 January 2007 http://www.w3.org/TR/xpath20/ Abstract 及び 1章 (Introduction)
オンラインビジネスにおいて、他社差別化を図るためには、オンラインサービスの利用状況を的確に分析する必要がある。例えば、特定条件のユーザについて詳細な操作ログを取得して分析したいというニーズがある。例えば、ショッピングカートに商品を入れているユーザについてマウス動線も含めて詳細分析したい、というケースである。これは、ユーザが興味を持っている部分にマウスカーソルを重ねるという仮説に基づいて分析をする場合に有効である。
このようなニーズに対して、特許文献3に代表されるウェブシステムの利用状況可視化技術では、ボタンやリンクのクリック、フォームへのキーボード入力などの記録に関しては、操作ログ量が問題となることはないが、マウスの細かい動きもとるとなると、操作ログ量が膨大となり、全てのユーザの操作ログを収集することは困難である。
従って、特定条件のユーザのみ操作ログを詳細に取得するなど制御を行う必要がある。しかしながら、従来技術では、HTMLのアプリケーションレベルでのセマンティクスを理解するわけではなく、ショッピングカートに商品を入れているユーザなど、アプリケーションレベルの情報を認識することは出来ず、前記情報を基に操作ログ取得の有無や詳細度を制御することは困難である。
上記に対して、非特許文献1や特許文献1を利用して、ウェブアプリケーションの画面からユーザのプロファイル情報を取得し、特定条件の判断に利用することが考えられる。しかしながら、DynamicHTML技術やAjax技術を利用したウェブアプリケーションなど、ページ内の情報が動的に変化するウェブアプリケーションからプロファイル情報を抽出することは困難である。なぜならば、上記の従来技術は、プロファイル情報の場所を指定することはできるが、どのようなタイミングで取得するかを直接指定することは出来ないためである。そのため、動的にページの書き換えを行っている場合、プロファイル情報の取得は出来ず、それに基づいた操作ログ取得の制御も出来ない。
本発明の目的は、上述した課題を考慮し、ウェブアプリケーションの操作ログを記録する方法において、ウェブアプリケーションの画面からユーザのプロファイル情報を取得し、この情報を基に操作ログの取得範囲を制御することを可能とするウェブアプリケーションの操作記録方法およびシステムを提供することにある。
また、本発明の他の目的は、特に、動的にページの書き換えを行っているウェブアプリケーションにおいても操作ログの取得範囲の制御を可能とし、これにより、ウェブアプリケーションレイヤの情報を基に、操作ログの取得レベルの制御を行い、ウェブアプリケーションの改善のための情報を効率的に収集、分析することを可能とする操作記録方法およびシステムを提供することにある。
すなわち、上記の目的を達成するため、本発明においては、処理部を備えた計算機によりウェブページ上の操作ログを記録するウェブアプリケーションの操作記録方法であって、ウェブページ上から情報を取得するプロパティ取得定義ルールと、取得した情報を基に操作ログの記録範囲を制御するログ取得制御定義ルールを備え、処理部は、プロパティ取得定義ルールを基にウェブページの情報取得イベントハンドラを設定する手順と、情報取得イベントハンドラがウェブページ上から情報を取得する手順と、取得した情報と、ログ取得制御定義ルールに基づいて、ウェブページ上の操作ログの記録範囲を制御する手順と、操作ログを記録する手順とを実行するウェブアプリケーションの操作記録方法を提供する。
また、上記の目的を達成するため、本発明においては、記憶部と処理部とを備えたクライアント装置で、ウェブページ上の操作ログを記録するウェブアプリケーションの操作記録システムであって、記憶部に、ウェブページ上から情報を取得するプロパティ取得定義ルールと、取得した情報を基に操作ログの記録範囲を制御するログ取得制御定義ルールを記憶し、処理部は、プロパティ取得定義ルールを基にウェブページの情報取得イベントハンドラを設定し、情報取得イベントハンドラがウェブページ上から情報を取得し、取得した情報と、ログ取得制御定義ルールに基づいて、ウェブページ上の操作ログの記録範囲を制御するウェブアプリケーションの操作記録システムを提供する。
本発明によれば、ページが動的に変化するウェブアプリケーションに関し、アプリケーションレイヤの情報を基に、操作ログの取得レベルの制御を行うことを可能とし、ウェブアプリケーションの改善のための情報を効率的に収集、分析することが可能となる。
以下、本発明の種々の実施例について図面を参照して説明する。なお、本明細書において、計算機システムの処理部であるプロセッサで実行される各プログラムを「モジュール」や「部」と表現することがあるので留意されたい。
以下、図1Aから図10を参照して第1の実施例について説明する。
<システム構成>
図1Aは、実施例1の計算機システムの構成例を示す図である。図1Bは、本実施例のクライアント装置100の構成例を示す図である。図1Cは、本実施例のウェブサーバ装置120の構成例を示す図である。図1Dは、本実施例のログサーバ装置140の構成例を示す図である。
図1Aは、実施例1の計算機システムの構成例を示す図である。図1Bは、本実施例のクライアント装置100の構成例を示す図である。図1Cは、本実施例のウェブサーバ装置120の構成例を示す図である。図1Dは、本実施例のログサーバ装置140の構成例を示す図である。
図1Aに示す計算機システムは、一台以上(図1Aでは二台)のクライアント装置100、一台以上(図1Aでは一台)のウェブサーバ装置120、及び、一台以上(図1Aでは一台)のログサーバ装置140を備える。クライアント装置100、ウェブサーバ装置120及びログサーバ装置140はネットワーク180を介して相互に接続されている。なお、ウェブサーバ装置120とログサーバ装置140とは、物理的に同一の装置に実装されてもよい。そのため、本明細書においては、以下に説明する、それぞれの装置、更にはクライアント装置のプロセッサ、メモリを総称して処理部、記憶部と呼ぶ場合がある。
図1Bに示すクライアント装置100は、ウェブサーバ装置120が提供するウェブアプリケーションを利用する計算機である。このクライアント装置100は、入出力装置101、処理部を構成するプロセッサ102、ネットワークインターフェイス103、及び、記憶部を構成するメモリ104を備える。
入出力装置101は、ユーザインターフェイスを提供する例えば、キーボード、マウス等の入力装置、例えば、表示装置などの出力装置である。プロセッサ102は、メモリ104に記憶されたウェブブラウザプログラム105、スクリプトエンジンプログラム106、及び、図示が省略されたオペレーティングシステム(Operation System:OS)などを実行する。ネットワークインターフェイス103は、クライアント装置100がネットワーク180を介してデータを通信するための通信インターフェイスである。メモリ104は、プロセッサ102によって実行されるプログラム、及びこれらのプログラムによって使用されるデータを格納する。なお、クライアント装置100はさらに図示を省略した、記憶部を構成する外部記憶装置などを備えてもよい。
図1Cに示すウェブサーバ装置120は、クライアント装置100にアプリケーションのサービスを提供する計算機である。ウェブサーバ装置120は、ネットワークインターフェイス121、プロセッサ122、入出力装置123、ローカルディスク124、及び、メモリ125を備える。
ネットワークインターフェイス121は、ウェブサーバ装置120がネットワーク180を介してデータを通信するための通信インターフェイスである。プロセッサ122は、メモリ125に記憶されたウェブサーバプログラム126、ウェブアプリケーションプログラム127、及び、機能挿入プログラム128を実行する。各プログラムの動作の詳細については後述する。
ローカルディスク124は、磁気ディスク装置、不揮発性半導体メモリなどによって構成される記憶装置であり、ウェブアプリケーションプログラム127の、操作ログ取得範囲を制御するログ取得制御定義テーブル130、及びユーザの属性情報を取得するプロパティ取得定義テーブル131を格納する。ローカルディスク124は、ウェブサーバ装置120に内蔵されていても、ウェブサーバ装置120の外部に設けられる外部記憶装置であってもよい。各テーブルの構成の詳細については後述する。
入出力装置123は、ユーザインターフェイスを提供する例えば、キーボード、マウス等の入力装置、及び例えば、表示装置などの出力装置である。なお、ウェブサーバ装置120が入出力装置123を備えなくてもよい。この場合、ウェブサーバ装置120は、クライアント装置100や図示が省略されたコンソール端末によって操作される。メモリ125は、プロセッサ122によって実行されるプログラム、及びこれらのプログラムによって使用されるデータを格納する。
図1Dに示すログサーバ装置140は、クライアント装置100のウェブブラウザ上で動作するウェブアプリケーションのユーザの操作ログを収集し、分析する。ログサーバ装置140は、ネットワークインターフェイス141、プロセッサ142、入出力装置143、ローカルディスク144、及び、メモリ145を備える。
ネットワークインターフェイス141は、ログサーバ装置140がネットワーク180を介してデータを通信するための通信インターフェイスである。プロセッサ142は、メモリ145に記憶されたログサーバプログラム146、及び、ログ分析プログラム147を実行する。ローカルディスク144は、磁気ディスク装置、不揮発性半導体メモリなどによって構成される記憶装置であり、操作ログ記録テーブル148を格納する。ローカルディスク144は、ログサーバ装置140に内蔵されていても、ログサーバ装置140の外部に設けられる外部記憶装置であってもよい。各々のプログラムの動作及び各テーブルの構成の詳細については後述する。
入出力装置143は、ユーザインターフェイスを提供する、例えば、キーボード、マウス等の入力装置、及び例えば、表示装置などの出力装置である。なお、ログ分析サーバ装置140が入出力装置143を備えなくてもよい。この場合、ログ分析サーバ装置140は、クライアント装置100や図示が省略されたコンソール端末によって操作される。メモリ145は、プロセッサ142によって実行されるプログラム、及びこれらのプログラムによって使用されるデータを格納する。
<ログ取得制御定義テーブル、プロパティ取得定義テーブル>
図1E及び図1Fは、本実施例のログ取得制御定義テーブル130、及び、プロパティ取得定義テーブル131の一例を示す図である。
図1E及び図1Fは、本実施例のログ取得制御定義テーブル130、及び、プロパティ取得定義テーブル131の一例を示す図である。
図1Eに示すログ取得制御定義テーブル130は、操作ログ取得コード129が取得するユーザ操作の範囲を制御する情報を管理する。ログ取得制御定義テーブル130には、ユーザ属性の条件を定義する条件式160と、この条件に一致したユーザの操作ログ取得範囲を定義する取得範囲161とが、対応付けられて管理される。
図1Fに示すプロパティ取得定義テーブル131は、ユーザの属性をウェブアプリケーションが生成する画面から取得するための定義情報を管理する。プロパティ取得定義テーブル131には、取得した属性をログ取得制御定義テーブル130中の条件式160中に記述するための識別子となるプロパティ名170、属性を取得するページのURLを示す取得元URL171、属性がページ内のどこに含まれているかを示す、すなわちウェブページ上の任意の箇所を指定する取得式172、及び、取得契機を定義する情報として、変化対象オブジェクトの情報である変化対象173、指定した箇所を取得するタイミングである取得タイミング174とが、対応付けられて管理される。本実施例では取得式としてXPath表現を用いているが、ページ内の任意の場所を定義できれば、どのような取得式でも良い。例えば、正規表現を用いることが出来る。
<計算機システムの動作の概要>
図2は、本実施例の計算機システムの動作の概要を示す図である。なお、以下の説明では、各々の装置100、120、140においてプログラムがメモリにロードされてプロセッサによって実行されている状態を「モジュール」と表現する。
図2は、本実施例の計算機システムの動作の概要を示す図である。なお、以下の説明では、各々の装置100、120、140においてプログラムがメモリにロードされてプロセッサによって実行されている状態を「モジュール」と表現する。
まず、ウェブブラウザモジュール200は、ウェブブラウザに対するユーザの操作を受け付けると、ウェブサーバモジュール220に対してユーザの操作に応じたリクエスト203を送信する。リクエスト203は、HTTP(Hyper Text Transfer Protocol)プロトコルやHTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)プロトコルに従って送信される。なお、リクエスト203のプロトコルはHTTPプロトコルやHTTPSプロトコルは一例であり、それらに限定されない。
ウェブサーバモジュール220は、リクエスト203を受信すると、受信したリクエスト203に対応するウェブアプリケーション221に処理を要求する。ウェブアプリケーション221は、リクエスト203に応じた処理を実行してレスポンス224を生成し、生成されたレスポンス224を機能挿入モジュール222に転送する。機能挿入モジュール222は、転送されたレスポンス224に操作ログ取得機能モジュール223、とログ取得制御定義テーブル130、とプロパティ取得定義テーブル131をローカルディスク124から取り出し(250〜252)、その内容を埋め込んだレスポンス225を生成し、生成されたレスポンス225をウェブブラウザモジュール200に送信する。ここで、操作ログ取得機能モジュール223を埋め込む処理は、J2EE(Java 2 Enterprise Edition:Javaは登録商標)のServletFilter機能、IIS(Internet Information Services)のISAPI(Internet Server Application Programming Interface)Filter機能など、ウェブサーバ装置120が備えるレスポンスのフィルタリング機能を利用して実現される。なお、本実施例では、機能挿入モジュール222により動的に操作ログ取得機能モジュール223を埋め込んでいるが、機能挿入モジュール222を利用せずにウェブアプリケーション221に操作ログ取得機能モジュール223を予め埋め込んでおいてもよい。
また、クライアント装置とウェブサーバ装置の間のHTTP通信を仲介するプロキシサーバ装置を用いて、操作ログ取得機能モジュール223を埋め込んでも良い。プロキシサーバ装置は、クライアント装置側に設置するフォワードプロキシ、サーバ装置側に設置するリバースプロキシの何れの方式でも構成することができる。
ウェブブラウザモジュール200は、機能挿入モジュール222からレスポンス225を受信すると、受信したレスポンス225中のHTML(Hyper Text Markup Language)データを解釈して、ウェブブラウザ上に表示する。また、レスポンス225に埋め込まれた操作ログ取得機能モジュール223をスクリプトエンジンモジュール201に転送する(202)。その後、操作ログ取得機能モジュール223は、操作ログ記録イベントハンドラ261や属性情報取得イベントハンドラ262の初期化を実行した後、クライアント装置100のウェブブラウザ上のユーザ操作を操作ログとして順次取得していく。ここで、操作ログ記録イベントハンドラ261は、ウェブブラウザ上でのユーザ操作を、捕捉し記録するイベントハンドラ関数である。また属性情報取得イベントハンドラ262は、ウェブアプリケーションのレスポンス情報からユーザの属性情報を取得するためのイベントハンドラ関数である。詳細については後述する。
操作ログ取得機能モジュール223は、ウェブブラウザ上でページ遷移が発生した場合等に、操作ログ取得機能モジュール223が記録した操作ログ205を、ログサーバ装置140のログサーバモジュール240に送信する。なお、このページ遷移はネットワークを介した通信を伴うもの及び伴わないものを含む。後者の通信を伴わないケースは、DOM(Document Object Model)やJavaScript(登録商標)技術などを用いてウェブブラウザ側でページを書き換える場合である。ページ遷移のタイミングでの操作ログ送信は、一例であり、一定時間毎、一定操作ログ量毎など他のタイミングで送信しても良い。
ログサーバモジュール240は、操作ログ取得機能モジュール223から操作ログ205を受信後、受信した操作ログ205を操作ログ記録テーブル148に順次格納する(243)。
ログ分析モジュール241は、操作ログ記録テーブル148に格納されたデータに基づき、ユーザ操作を分析、可視化データを生成する。ログ分析モジュール241の処理は、管理者ユーザからの指示や、任意のタイミングでのバッチ処理などによって実行する。
<ログサーバ装置140のモジュール構成例>
図3は、本実施例のログ分析サーバ装置140のモジュール構成例を示す図である。また、図3には、操作ログ記録テーブル148に保存される操作ログ301、302、303と、その操作ログの一例300を示している。操作ログ記録テーブル148には、操作ログ301、302、303が保存されている。なお、操作ログ301、302、303を区別する必要がない場合、これらを総称して操作ログ300と表現することとする。操作ログ300は、図2に示す操作ログ205に対応する。
図3は、本実施例のログ分析サーバ装置140のモジュール構成例を示す図である。また、図3には、操作ログ記録テーブル148に保存される操作ログ301、302、303と、その操作ログの一例300を示している。操作ログ記録テーブル148には、操作ログ301、302、303が保存されている。なお、操作ログ301、302、303を区別する必要がない場合、これらを総称して操作ログ300と表現することとする。操作ログ300は、図2に示す操作ログ205に対応する。
操作ログ300は、操作ログを記録したページの識別子であるページID、このページIDで特定されるページ上でユーザの操作がなされた時刻である操作時刻、ユーザの操作の対象であるオブジェクト名などの操作対象、ユーザの操作の内容であるマウス、クリック、入力などの操作内容、ユーザの操作の結果である選択値、入力値などの操作結果によって構成される。このように、操作ログ記録テーブル148には複数の操作ログ300が保存される。なお、前記ページ上でのユーザ操作は、ページ内の操作状況を分析できればよく、必ずしも全ての項目を記録しておく必要はない。例えば、クリック回数のみに着目した場合、操作内容としてクリックを記録しておくのみでも良い。
ログ分析モジュール241は、ユーザ操作分析部320、可視化データ生成部321によって構成される。ユーザ操作分析部320は、各ページに対するウェブブラウザ上の、マウスの移動、マウスのクリックや、Formへの入力などのユーザの操作を分析する。可視化データ生成部321は、ユーザ操作分析部320による分析の結果の可視化データを生成、出力する。ここで出力とは、テーブル形式で出力したり、ウェブアプリケーションの画面にオーバーレイ表示形式で表示したりするためのデータを生成することである。
<システム動作例>
図4Aは、本実施例の計算機システムにおけるクライアント装置100の動作の一例を示すフローチャートである。図4Bは、本実施例の計算機システムにおけるウェブサーバ装置120の動作の一例を示すフローチャートである。図4Cは、本実施例の計算機システムにおけるログサーバ装置140の動作の一例を示すフローチャートである。
図4Aは、本実施例の計算機システムにおけるクライアント装置100の動作の一例を示すフローチャートである。図4Bは、本実施例の計算機システムにおけるウェブサーバ装置120の動作の一例を示すフローチャートである。図4Cは、本実施例の計算機システムにおけるログサーバ装置140の動作の一例を示すフローチャートである。
はじめに、図4Aにおいて、ウェブブラウザモジュール200は、ウェブページのページ表示リクエストをウェブサーバ装置120に送信する(S421)。ウェブサーバモジュール220は、クライアント装置100からページ表示リクエストを受信すると(S441)、ページ表示リクエストに対応するウェブアプリケーション221を呼び出す(S442)。次に、ウェブアプリケーション221は、ステップS441で受信したページ表示リクエストに応じた処理を実行してレスポンスを生成し、生成したレスポンスを機能挿入モジュール222に転送する(S443)。
その後、機能挿入モジュール222は、転送されたレスポンスに操作ログ取得機能モジュール223、ログ取得制御定義テーブルの情報、プロパティ取得定義テーブルの情報を挿入する(S444)。ここで、挿入するプロパティ取得定義テーブルの情報は、クライアント装置100からのページ表示リクエストに含まれるリクエストURLが、取得元URL171に一致するレコードのみ挿入する。
なお、ステップS444の処理は、上述したJ2EEのServletFilterなどウェブサーバ装置120が備えるレスポンスのフィルタリング機能を利用することで実現することができる。ステップ443からステップ445の処理は、ウェブサーバ装置120が備えるレスポンスのフィルタリング機能を利用する場合の他、プロキシ装置を利用してレスポンスに挿入しても良い。
ウェブブラウザモジュール200は、ウェブサーバ装置120からレスポンスを受信すると(S422)、スクリプトエンジンモジュール201を呼び出し、操作ログ取得機能モジュール223を初期化する(S423)。また、ステップS423の初期化処理では、ウェブブラウザモジュール200上でのユーザの操作のイベントを監視する操作ログ記録イベントハンドラ261を設定する。操作ログ取得機能モジュール223の初期化処理(S423)の詳細は後述する。
続いて、操作ログ取得機能モジュール223は、ウェブブラウザモジュール200上でのユーザの操作を操作ログとして取得し、操作ログをウェブブラウザモジュール200上で一次記録する配列に追加する(S424)。ステップS424の処理は、ページ遷移のイベントが発生するまで繰り返される(S425)。
ページ遷移のイベントが発生した場合には(S425でYES)、操作ログ取得機能モジュール223は、ページID、操作ログ300をログサーバ装置140に送信する(S426)。以上のステップS421からS426のクライアント装置100による処理は、クライアント装置100上で動作するウェブアプリケーションが終了するまで続けられる(S427)。
なお、本実施例では、ページ単位で操作ログをまとめて、まとめられたログをログサーバ装置140に送信しているが、ログを取得する毎に送信したり、別の単位で操作ログをまとめて送信したりしてもよい。
ログサーバ装置140のログサーバモジュール240は、クライアント装置100から操作ログを受信し、受信した操作ログを操作ログ記録テーブル148に保存する(S401)。ログサーバ装置140は、動作を終了するまで処理が続けられる(S402)。
<操作ログ取得機能モジュールの初期化の例>
図5は、本実施例の計算機システムにおける操作ログ取得機能モジュール223の初期化処理(S423)の一例を示すフローチャートである。初期化処理では、受信したプロパティ取得定義情報を参照し、属性情報取得のためのイベントハンドラを設定する。取得タイミングがloadの場合は、body要素のonloadイベントに、属性情報取得イベントハンドラ関数であるGetInfo関数を呼び出すよう設定する。また、XmlHttpRequestを用いた動的書き換えを示すXHRhandlerの場合は、XmlHttpRequest(以下、XHRと略す)オブジェクトの受信コールバック関数終了後に、属性情報取得イベントハンドラ関数であるGetInfo関数を呼び出すよう設定する。すなわち、ウェブページのトップフレームに対するリクエストとは異なるリクエストに対する受信ハンドラ処理完了後に、情報取得イベントハンドラを呼び出すよう書き換える。
図5は、本実施例の計算機システムにおける操作ログ取得機能モジュール223の初期化処理(S423)の一例を示すフローチャートである。初期化処理では、受信したプロパティ取得定義情報を参照し、属性情報取得のためのイベントハンドラを設定する。取得タイミングがloadの場合は、body要素のonloadイベントに、属性情報取得イベントハンドラ関数であるGetInfo関数を呼び出すよう設定する。また、XmlHttpRequestを用いた動的書き換えを示すXHRhandlerの場合は、XmlHttpRequest(以下、XHRと略す)オブジェクトの受信コールバック関数終了後に、属性情報取得イベントハンドラ関数であるGetInfo関数を呼び出すよう設定する。すなわち、ウェブページのトップフレームに対するリクエストとは異なるリクエストに対する受信ハンドラ処理完了後に、情報取得イベントハンドラを呼び出すよう書き換える。
以下、図5を参照しながら初期化処理を説明する。はじめに受け取ったプロパティ取得定義テーブルからレコードを順次取得し(S501、S502)、ステップS503からステップS505の処理を行う。プロパティ取得定義の取得タイミング(S503)がloadの場合、body要素のonloadに、属性情報取得イベントハンドラGetInfo関数を設定する(S504)。一方、プロパティ取得定義の取得タイミング(S503)が、XHRhandlerの場合、XHRの受信完了後に実行される処理の終了後に、属性情報取得イベントハンドラGetInfo関数の処理を実施するために、XHRコールバックリスト配列に、本レコードを追加する(S505)。
全てのプロパティ取得定義テーブルの処理が完了後(S502のNO)、ステップS506からステップS508の処理を実行する。XHRコールバックリスト配列にレコードが格納されている場合(S506でYES)、XHRオブジェクトをMyXHRオブジェクトでオーバライドする(S507)。オーバライドする関数は、図6Aで説明するopen関数、図6Bで説明するsend関数である。最後に、操作ログ記録イベントハンドラを設定する(S508)。本処理では、ログ取得制御定義に従って操作ログ記録イベントハンドラを設定するが、詳細については、図7を用いて後述する。
上記処理例では、動的書き換えの一例として、XHRによる非同期通信の例を示したが、他に非同期通信のテクニックとして、JSONP(JavaScript Object Notation with Padding)や隠しフレームが使われている。JSONPの場合、S504において、JSONPで使用するscriptタグのonloadまたはonreadystatechangeイベントに、属性情報取得イベントハンドラ関数GetInfoを設定する。一方、隠しフレームの場合、隠しフレームで使用するframe要素のonloadイベントに、属性情報取得イベントハンドラ関数GetInfoを設定する。iframeによる非同期通信を行っている場合は、iframe要素のonloadイベントに、属性情報取得イベントハンドラ関数GetInfoを設定する。
また、上記非同期通信以外の動的書き換えの例として、メインとなるブラウザのウインドウから入力用補助ウインドウを別途開き、補助ウインドウでの入力確定値を、メインウインドウに反映させるテクニックも頻繁に利用されている。この場合は、補助ウインドウの入力確定となる操作に対するイベントハンドラの処理終了後に属性情報取得イベントハンドラ関数GetInfoを呼び出すよう設定する。すなわち、ウェブアプリケーションのメインウインドウに対するイベントハンドラとは異なる、別のウインドウでの処理完了後に、情報取得イベントハンドラを呼び出すよう書き換えることとなる。
<XHRオーバライドの例>
図6Aは、本実施例の計算機システムにおける操作ログ取得機能モジュールのMyXHR#open関数の処理の一例を示すフローチャートである。open関数では引数として渡されてきたURLを確認し、プロパティ取得定義を参照し、属性情報取得対象のURLである場合、そのURLを一時記録しておき、後述のsend関数の呼出し時、属性情報取得イベントハンドラ関数であるGetInfo関数を設定できるよう準備する。
図6Aは、本実施例の計算機システムにおける操作ログ取得機能モジュールのMyXHR#open関数の処理の一例を示すフローチャートである。open関数では引数として渡されてきたURLを確認し、プロパティ取得定義を参照し、属性情報取得対象のURLである場合、そのURLを一時記録しておき、後述のsend関数の呼出し時、属性情報取得イベントハンドラ関数であるGetInfo関数を設定できるよう準備する。
以下、図6Aを参照しながらopen処理を説明する。はじめにXHRコールバックリスト配列からレコードを順次取得し(S601、S602)、ステップS603からステップS604の処理を行う。レコード中の変化対象がopenの引数URLと一致するか確認し(S603)、一致する場合、MyXHRオブジェクトにhandleList配列を追加し、本レコードを前記配列にpushする(S604)。MyXHRオブジェクトにhandleList配列が存在している場合には、レコードのpushのみを行う。全てのレコードへの処理完了後、オリジナルオブジェクトであるXHRオブジェクトのopen関数を呼び出す(S605)。
図6Bは、本実施例の計算機システムにおける操作ログ取得機能モジュールのMyXHR#send関数の処理の一例を示すフローチャートである。send関数では、前記open関数で設定したhandleListを参照し、属性情報取得イベントハンドラGetInfo関数の設定を行う。本処理では、ウェブアプリケーションが設定したXHRのコールバック関数を、MyXHRオブジェクトのonreadystatechangeプロパティから取得し(S621)、前記ウェブアプリケーションのコールバック関数による受信完了処理終了後に、属性情報取得イベントハンドラGetInfo関数を呼び出すよう、onreadystatechangeプロパティを再定義する(S622)。最後に、オリジナルオブジェクトであるXHRオブジェクトのsend関数を呼び出す(S623)。
図6Cは、本実施例の計算機システムにおける操作ログ取得機能モジュールの属性情報取得イベントハンドラ262のであるGetInfo関数の処理の一例を示すフローチャートである。本処理では、プロパティ取得定義の情報を格納したhandleList配列を参照し、画面からプロパティ情報を取得するための取得式を適用し、プロパティ情報を取得し、クライアントストレージ領域に格納する。以下、図6Cを参照しながらGetInfo関数の処理を説明する。本処理では、handleList配列からレコードを順次取得し、ステップS643からステップS646の処理を行う。はじめに、レコードからプロパティ名を取得し、変数propnameに代入する(S643)。ついで、レコードから取得式を取得し、変数extractexpに代入する(S644)。ついで、取得式extractexpを評価し、画面中から情報を取得し、変数infoに代入する(S645)。ここで、取得式の評価は、ウェブブラウザプログラム105が内蔵するXPathの実行エンジンなど、XPathを評価できるモジュールであれば、どのような実装でもよい。
ついで、クライアントストレージ領域に、変数名propname、変数値infoとして格納する(S646)。ここで、クライアントストレージ領域とは、ウェブブラウザプログラム105上で動作するスクリプトプログラムからアクセスできるクライアント装置100上の記憶領域である。クライアントストレージ領域は、スクリプト言語の変数やHTTP Cookie、Microsoft社のInternext Explore(TM)のUserData領域、HTML5のローカルストレージ機能など、スクリプト言語からアクセスできる領域であればどのような技術を用いてもよい。また、サーバと通信し、サーバ側に保存しても良い。なお、サーバ側に保存する場合には、プライバシに配慮し、暗号化などを施すことが望ましい。また、属性情報は、ユーザの固有データそのものを記録するのではなく、セグメント分けによる分類など、抽象化した情報を持つようにしても良い。抽象化することで、よりプライバシに配慮した形で、ユーザのプロファイル情報を記録することが可能となる。
図8にクライアントストレージに格納されたプロパティ情報の例を示す。図8に示す通り、プロパティ名801とプロパティ値802の組として、ユーザのプロパティ情報を格納される。本例ではnitemが2(803)、pointが8210(804)というプロパティが格納されている。
<操作ログ記録イベントハンドラ設定の処理例>
図7は、本実施例の計算機システムにおける操作ログ取得機能モジュールの操作ログ記録イベントハンドラ261の設定処理(S508)の一例を示すフローチャートである。本処理では、ログ取得制御定義とクライアントストレージに格納されるプロパティ情報を参照し、ログ記録イベントハンドラを設定する。以下、図7を参照しながら操作ログ記録イベントハンドラ設定処理を説明する。本処理では、ログ取得制御定義から定義レコードを順次取得し、ステップS703からステップS707の処理を行う。はじめに、レコードから条件式、取得レベルを取得し、それぞれ、変数cond、配列evlistに代入する(S703)。condの値がDEFAULTの場合、evlist配列中のイベント種別について、それぞれ、イベントハンドラを設定する。図1Eの場合、form、click、scrollに関する操作ログを取得するイベントハンドラを設定する。condがDEFAULTではない場合、cond式中に現れるプロパティをクライアントストレージから取得する(S705)。次いで、cond式を評価する(S706)。評価の結果trueの場合、ステップS707にて、イベントハンドラを設定する。図1Eのレコード162がtrueとなった場合、mouse、form、click、scrollに関する操作ログを取得するイベントハンドラを設定する。評価の結果falseの場合、ステップS701に戻り、次のレコードを評価する。
図7は、本実施例の計算機システムにおける操作ログ取得機能モジュールの操作ログ記録イベントハンドラ261の設定処理(S508)の一例を示すフローチャートである。本処理では、ログ取得制御定義とクライアントストレージに格納されるプロパティ情報を参照し、ログ記録イベントハンドラを設定する。以下、図7を参照しながら操作ログ記録イベントハンドラ設定処理を説明する。本処理では、ログ取得制御定義から定義レコードを順次取得し、ステップS703からステップS707の処理を行う。はじめに、レコードから条件式、取得レベルを取得し、それぞれ、変数cond、配列evlistに代入する(S703)。condの値がDEFAULTの場合、evlist配列中のイベント種別について、それぞれ、イベントハンドラを設定する。図1Eの場合、form、click、scrollに関する操作ログを取得するイベントハンドラを設定する。condがDEFAULTではない場合、cond式中に現れるプロパティをクライアントストレージから取得する(S705)。次いで、cond式を評価する(S706)。評価の結果trueの場合、ステップS707にて、イベントハンドラを設定する。図1Eのレコード162がtrueとなった場合、mouse、form、click、scrollに関する操作ログを取得するイベントハンドラを設定する。評価の結果falseの場合、ステップS701に戻り、次のレコードを評価する。
図9は、本実施例の計算機システムにおけるウェブアプリケーションの画面の一例を示す図である。また、図10は、図9に示す画面の一例を生成するHTTP通信の一例を示す図である。本画面例において、901で示した“日立太郎”がindex.jspのレスポンス(1001)に含まれる情報、902、903、904でそれぞれ示した“8210”、“2”、“4960”がuinfo.jspのレスポンス(1003)に含まれる情報で、これは、index.jspからXHRを用いて、動的に取得され、画面を書き換えることで実現しているものとする(図10の1002、1003、1004)。
このようなアプリケーションにおいて、図1Eの条件式162では、ポイント残高が5000以上、カートに格納されている商品点数が1以上の場合、マウスの動きを含めて詳細に記録する定義例を表している(162)。また、図1Fでは、ユーザ名をname(175)、ポイント残高をpoint(176)、カートに格納されているアイテム数をnitem(177)、ユーザの所在地をarea(178)として抽出する定義である。図9に示すユーザの場合、条件式162に該当するので、マウスの動きも含めて詳細に操作ログを記録する。本例では、購買に結びつきそうなユーザを、ポイント残高が5000ポイント以上で、ショッピングカートに商品を格納していると仮定し、この条件にマッチするユーザの操作ログを詳細に収集、分析する例を示している。本発明により、ユーザの属性に応じて、操作ログの取得レベルを制御可能となり、効率的なログの収集が可能となる。
<プロパティ取得定義の設定例>
ウェブアプリケーションが生成する画面からユーザ属性を取得するための定義情報となるプロパティ取得定義テーブル131の設定方法について説明する。XHRやJSONPなど非同期通信が混在すると、取得タイミングを設定するのは困難である。そこでプロパティ取得定義の設定支援の方法について図11、図12を用いて説明する。
ウェブアプリケーションが生成する画面からユーザ属性を取得するための定義情報となるプロパティ取得定義テーブル131の設定方法について説明する。XHRやJSONPなど非同期通信が混在すると、取得タイミングを設定するのは困難である。そこでプロパティ取得定義の設定支援の方法について図11、図12を用いて説明する。
設定支援方法のおおまかな流れは以下の通りである。設定を行う管理者ユーザは、ウェブアプリケーションを通常通り操作する。ウェブサーバ装置120は、通常通り、HTTPリクエストを受け付ける。ウェブサーバ装置120は、操作ログ取得機能モジュール223をレスポンスに挿入後(S444)、ウェブアプリケーションのレスポンス内容を、新たに設けたコンテンツデータベースに保存する。本機能は機能挿入モジュール222にプロパティ取得定義機能を設けることで実現する。コンテンツデータベースは、ウェブサーバ装置120からアクセス可能であれば、内蔵していても、別の装置で稼動していても良い。
操作ログ取得機能モジュール223は、管理者ユーザからプロファイル情報とするウェブページ内の箇所の選択を受け付け、ウェブサーバ装置120に受け付けた箇所を送信する機能を新たに設ける。管理者ユーザが、ウェブアプリケーションの画面から、プロファイル情報とする箇所を選択すると、機能挿入モジュール222内のプロパティ取得定義機能は、コンテンツデータベースを参照し、該当する箇所がどのコンテンツの情報を基に生成されたかを検索する。どのコンテンツに含まれているか、の情報を基に取得タイミングを推定し、プロパティ取得定義テーブル131に定義情報を追加する。
図11に検索処理を示す。まず初めに、画面中の取得箇所と、プロパティ名をウェブブラウザモジュール200から受け付ける。ここで、プロパティ名は一次変数propnameに格納する(S1100)。ついで、取得箇所のXPathを生成し、一次変数xpathに格納する(S1101)。ついで、コンテンツデータベースから当該ページおよび、当該ページに含まれるコンテンツを取得する(S1102)。図12にコンテンツデータベースの構成について示す。コンテンツデータベースは、コンテンツのURL(1201)、コンテンツの内容(1202)および、コンテンツが他のコンテンツをインラインコンテンツとして含む場合、インラインコンテンツ(1203)を含む。
ついで、当該ページに取得箇所が含まれているかを検索する(S1103)。当該ページに含まれている場合は、単純に当該ページの表示完了後に情報を取得するよう、プロパティ取得定義131にレコードを追加する。一次変数srcpageに当該ページのURLを、一次変数timingに“load”をそれぞれ代入する(S1104)。最後に、プロパティ取得定義テーブル131に、プロパティ名=propname、取得元URL=当該ページのURL、取得式=xpath、取得契機(変化対象)=srcpage、取得契機(取得タイミング)=timingとしてレコードを追加する(S1105)。
当該ページに含まれていない場合は、当該ページが含むインラインコンテンツについて、コンテンツ中に指定部分が含まれているかを検索し、その結果を一次変数srcpageに格納(S1106)する。
ついで、srcpageが当該ページから、どのように呼び出されているかを検出し、取得タイミングを推定する。srcpageが当該ページ中のscriptタグのsrc属性に存在する場合(S1107)、JSOPによる非同期通信と判断し、一次変数timingに“scriptload”を格納する(S1108)。srcpageが当該ページ中のframeタグもしくはiframeタグのsrc属性に存在する場合(S1109)、隠しフレームによる非同期通信と判断し、一次変数timingに“frameload”を格納する(S1110)。上記の何れでも無い場合、XHRによる非同期通信と判断し、一次変数timingに“XHRHandler”を格納する(S1111)。最後にステップS1105にて、プロパティ取得定義テーブル131にレコードを追加する。
以上説明したように、本実施例におけるプロパティ取得定義ルールの設定方法は、ウェブアプリケーションのレスポンスを格納するコンテンツデータベースを備え、ウェブアプリケーションのレスポンスをこのコンテンツデータベースに記録する手順と、レスポンスを表示したウェブブラウザ上でプロパティ取得場所を指定する手順と、指定箇所がどのレスポンスに含まれているかを前記コンテンツデータベースから検索する手順を含んでいる。
また、このウェブアプリケーションのレスポンスをコンテンツデータベースに記録する手順は、トップフレームと、トップフレームの表示の延長で呼び出される関連ページを組として記録する手順を更に含み、指定箇所がどのレスポンスに含まれているかをコンテンツデータベースから検索する手順は、関連ページから指定箇所を検索し、トップページから前記検索にヒットした関連ページの呼び出し方法にて、プロパティ取得ルールを決定する手順を含んでいる。
更に、この呼び出し方法の決定は、scriptタグ、frameタグもしくはiframeタグの何れかのsrc属性を参照することで決定する手順、
を含んでいる。
を含んでいる。
続いて、第2の実施例として、複数のウェブページから属性情報を取得して利用するシステムについて説明する。複数のウェブページから属性情報を取得し、ユーザのプロファイル情報を構築することで、より高度な制御が可能となる。複数ページに跨った属性情報の一例を図13に示す。ここで、HTTP通信1000〜1003は、図9および図10に示したアプリケーションの一例と同じ通信を示している。また、HTTP通信1300、1301は、ユーザがindex.jsp表示後、会員情報を表示するmember.jspを表示していることを示す。
1003の応答に対する属性情報取得の処理完了後のユーザプロファイル情報は、図8で示した構成となっている。ついで、member.jspを表示すると、図1Fで示したプロパティ取得定義ルール178が起動し、ユーザの所在地情報を取得する。結果、図14に示すように、複数ページに跨ったプロファイル情報を取得することこができる。複数のページに跨ってプロファイル情報を保持するために、プロファイル情報は、ページに跨っても変数のスコープが維持されるHTTP CookieやUserData領域、HTML5のローカルストレージ機能などに保持する。なお、ログインし直したケースなど、アプリケーションのセッションを跨ったケースにおいても、ユーザを特定し、上記クライアントストレージ領域を活用することで、プロファイル情報の構築が可能である。上記により、より多くのユーザの属性に応じて、操作ログの取得レベルを制御可能となり、効率的なログの収集が可能となる。なお、プロファイル情報は、前記実施例1と同様にサーバ側に保存することも可能である。その場合、プライバシに配慮し、暗号化などを施すことが望ましい。また、属性情報は、ユーザの固有データそのものを記録するのではなく、セグメント分けによる分類など、抽象化した情報を持つようにしても良い。抽象化することで、よりプライバシに配慮した形で、ユーザのプロファイル情報を記録することが可能となる。
以上詳述した本発明は、ウェブアプリケーションレイヤの情報を基に、操作ログの取得レベルの制御を行うことを可能とし、ウェブアプリケーションの改善のための情報を効率的に収集、分析することを可能とする。
100…クライアント装置
120…ウェブサーバ装置
130…ログ取得制御定義テーブル
131…プロパティ取得定義テーブル
140…ログサーバ装置
200…ウェブブラウザモジュール
201…スクリプトエンジンモジュール
220…ウェブサーバモジュール
221…ウェブアプリケーション
222…機能挿入モジュール
223…操作ログ取得機能モジュール
240…ログサーバモジュール
241…ログ分析モジュール。
120…ウェブサーバ装置
130…ログ取得制御定義テーブル
131…プロパティ取得定義テーブル
140…ログサーバ装置
200…ウェブブラウザモジュール
201…スクリプトエンジンモジュール
220…ウェブサーバモジュール
221…ウェブアプリケーション
222…機能挿入モジュール
223…操作ログ取得機能モジュール
240…ログサーバモジュール
241…ログ分析モジュール。
Claims (17)
- 処理部を備えた計算機によりウェブページ上の操作ログを記録するウェブアプリケーションの操作記録方法であって、
ウェブページ上から情報を取得するプロパティ取得定義ルールと、取得した前記情報を基に操作ログの記録範囲を制御するログ取得制御定義ルールを備え、
前記処理部は、
前記プロパティ取得定義ルールを基に情報取得イベントハンドラを設定する手順と、
前記情報取得イベントハンドラがウェブページ上から情報を取得する手順と、
ウェブページ上から取得した前記情報と、前記ログ取得制御定義ルールに基づいて、ウェブページ上の操作ログの記録範囲を制御する手順と、
前記操作ログを記録する手順と、を実行する、
ことを特徴とするウェブアプリケーションの操作記録方法。 - 請求項1記載のウェブアプリケーションの操作記録方法であって、
前記情報取得イベントハンドラを設定する手順は、
前記ウェブページのトップフレームに対するリクエストとは異なるリクエストに対する受信ハンドラ処理完了後に、前記情報取得イベントハンドラを呼び出すよう書き換える手順である、
ことを特徴とするウェブアプリケーションの操作記録方法。 - 請求項2記載のウェブアプリケーションの操作記録方法であって、
前記トップフレームに対するリクエストとは異なるリクエストとは、XmlHttpRequest(XHR)の受信ハンドラ関数である、
こと特徴とするウェブアプリケーションの操作記録方法。 - 請求項1記載のウェブアプリケーションの操作記録方法であって、
前記ログ取得制御定義ルールは、ウェブページ上から取得した前記情報を基にした条件式を少なくとも含む、
ことを特徴とするウェブアプリケーションの操作記録方法。 - 請求項1記載のウェブアプリケーションの操作記録方法であって、
前記プロパティ取得定義ルールは、
ウェブページ上の任意の箇所を指定する取得場所定義と、指定した前記箇所を取得するタイミングと、前記タイミングで検知する変化対象オブジェクトの情報を少なくとも含む、
こと特徴とするウェブアプリケーションの操作記録方法。 - 請求項1記載のウェブアプリケーションの操作記録方法であって、
前記プロパティ取得定義ルールの設定のため、
ウェブアプリケーションのレスポンスを格納するコンテンツデータベースを備え、
前記ウェブアプリケーションのレスポンスを前記コンテンツデータベースに記録する記録手順と、
前記レスポンスを表示したウェブブラウザ上でプロパティ取得場所を指定する手順と、
前記指定箇所がどのレスポンスに含まれているかを前記コンテンツデータベースから検索する検索手順、を実行する、
ことを特徴とするウェブアプリケーションの操作記録方法。 - 請求項6記載のウェブアプリケーションの操作ログ記録方法であって、
前記記録手順は、トップフレームと、トップフレームの表示の延長で呼び出される関連ページを組として記録する手順を更に含み、
前記検索手順は、関連ページから指定箇所を検索し、トップページから前記検索にヒットした関連ページの呼び出し方法にて、前記プロパティ取得定義ルールを決定する決定手順、を含む、
ことを特徴とするウェブアプリケーションの操作記録方法。 - 請求項7記載のウェブアプリケーションの操作記録方法であって、
前記決定手順は、scriptタグ、frameタグもしくはiframeタグの何れかのsrc属性を参照することで決定する手順を含む、
ことを特徴とするウェブアプリケーションの操作記録方法。 - 請求項1記載のウェブアプリケーションの操作記録方法であって、
前記計算機は、前記プロパティ取得定義ルールと前記ログ取得制御定義ルールを、ウェブアプリケーションが動作するサーバ装置に対するリクエストのレスポンスとしてネットワーク経由で受信する、
ことを特徴とするウェブアプリケーションの操作記録方法。 - 請求項1記載のウェブアプリケーションの操作記録方法であって、
前記計算機は、記録した前記操作ログを、分析するサーバ装置にネットワーク経由で送信する、
ことを特徴するウェブアプリケーションの操作記録方法。 - 記憶部と処理部とを備えたクライアント装置により、ウェブページ上の操作ログを記録するウェブアプリケーションの操作記録システムであって、
前記記憶部は、
ウェブページ上から情報を取得するプロパティ取得定義ルールと、前記取得した情報を基に操作ログの記録範囲を制御するログ取得制御定義ルールを記憶し、
前記処理部は、
前記プロパティ取得定義ルールを基にウェブページの情報取得イベントハンドラを設定し、
前記情報取得イベントハンドラがウェブページ上から情報を取得し、
取得した前記情報と、前記ログ取得制御定義ルールに基づいて、ウェブページ上の操作ログの記録範囲を制御する、
ことを特徴とするウェブアプリケーションの操作記録システム。 - 請求項11記載のウェブアプリケーションの操作記録システムであって、
前記処理部は、
前記情報取得イベントハンドラを設定する際、ウェブページのトップフレームに対するリクエストとは異なるリクエストに対する受信ハンドラ処理完了後に、前記情報取得イベントハンドラを呼び出すよう書き換える、
ことを特徴とするウェブアプリケーションの操作記録システム。 - 請求項12記載のウェブアプリケーションの操作記録システムであって、
前記処理部は、
前記トップフレームに対するリクエストとは異なるリクエストであるXHRの受信ハンドラ関数を、受信ハンドラ処理完了後に、前記情報取得イベントハンドラを呼び出すよう書き換える、
こと特徴とするウェブアプリケーションの操作記録システム。 - 請求項11記載のウェブアプリケーションの操作記録システムであって、
前記ログ取得制御定義ルールは、ウェブページ上から取得した前記情報を基にした条件式を少なくとも含む、
ことを特徴とするウェブアプリケーションの操作記録システム。 - 請求項11記載のウェブアプリケーションの操作記録システムであって、
前記プロパティ取得定義ルールは、
ウェブページ上の任意の箇所を指定する取得場所定義と、検知する変化対象オブジェクトと、指定した前記箇所を取得するタイミングの情報を少なくとも含む、
こと特徴とするウェブアプリケーションの操作記録システム。 - 請求項11記載のウェブアプリケーションの操作記録システムであって、
前記クライアント装置は、
前記記憶部に記憶する、前記プロパティ取得定義ルールと前記ログ取得制御定義ルールを、ウェブアプリケーションが動作するサーバ装置に対するリクエストのレスポンスとしてネットワーク経由で受信する、
ことを特徴とするウェブアプリケーションの操作記録システム。 - 請求項11記載のウェブアプリケーションの操作記録システムであって、
前記クライアント装置は、
記録した前記操作ログを、分析するサーバ装置にネットワーク経由で送信する、
ことを特徴するウェブアプリケーションの操作記録システム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010178550A JP5325177B2 (ja) | 2010-08-09 | 2010-08-09 | ウェブアプリケーションの操作記録方法およびシステム |
PCT/JP2010/064934 WO2012020512A1 (ja) | 2010-08-09 | 2010-09-01 | ウェブアプリケーションの操作記録方法およびシステム |
US13/811,880 US8966502B2 (en) | 2010-08-09 | 2010-09-01 | Method and system for recording operations in a web application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010178550A JP5325177B2 (ja) | 2010-08-09 | 2010-08-09 | ウェブアプリケーションの操作記録方法およびシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012038142A true JP2012038142A (ja) | 2012-02-23 |
JP5325177B2 JP5325177B2 (ja) | 2013-10-23 |
Family
ID=45567490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010178550A Expired - Fee Related JP5325177B2 (ja) | 2010-08-09 | 2010-08-09 | ウェブアプリケーションの操作記録方法およびシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8966502B2 (ja) |
JP (1) | JP5325177B2 (ja) |
WO (1) | WO2012020512A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014229059A (ja) * | 2013-05-22 | 2014-12-08 | 日本電信電話株式会社 | 端末操作履歴収集システム及び端末操作履歴収集方法 |
JP2018190008A (ja) * | 2017-04-28 | 2018-11-29 | 株式会社プレイド | サーバ装置、情報処理方法、およびプログラム |
JP2021089756A (ja) * | 2021-02-10 | 2021-06-10 | 株式会社プレイド | サーバ装置、情報処理方法、およびプログラム |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2884321C (en) * | 2013-08-15 | 2015-06-30 | Immun.io Inc. | Method and system for protecting web applications against web attacks |
CN103942134B (zh) * | 2014-04-04 | 2017-04-26 | 福建星网视易信息系统有限公司 | 查看嵌入式设备日志的方法及系统 |
US10467000B2 (en) * | 2015-03-18 | 2019-11-05 | International Business Machines Corporation | Extending the usage of integrated portals for a better user experience |
WO2016209199A1 (en) * | 2015-06-22 | 2016-12-29 | Hewlett Packard Enterprise Development Lp | Control of application log content |
CN106407099B (zh) * | 2015-07-28 | 2019-10-22 | 阿里巴巴集团控股有限公司 | 一种测试方法和客户端 |
US9569795B1 (en) * | 2016-02-25 | 2017-02-14 | Perfect Price, Inc. | Computer-implemented method of capturing transaction data associated with an online purchase |
US10466867B2 (en) * | 2016-04-27 | 2019-11-05 | Coda Project, Inc. | Formulas |
CN107797908A (zh) * | 2017-11-07 | 2018-03-13 | 南威软件股份有限公司 | 一种网站用户的行为数据采集方法 |
CN108287708B (zh) * | 2017-12-22 | 2021-06-25 | 深圳市云智融科技有限公司 | 一种数据处理方法、装置、服务器及计算机可读存储介质 |
CN110046051B (zh) * | 2018-01-17 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 控制方法、装置、客户端及电子设备 |
CN109635015B (zh) * | 2018-09-30 | 2023-07-18 | 创新先进技术有限公司 | 属性数据使用对象的确定方法、装置和服务器 |
US10764386B1 (en) * | 2019-02-15 | 2020-09-01 | Citrix Systems, Inc. | Activity detection in web applications |
US10911517B2 (en) * | 2019-02-17 | 2021-02-02 | Cisco Technology, Inc. | Determining end times for single page applications |
CN112052135A (zh) * | 2020-07-30 | 2020-12-08 | 许继集团有限公司 | 基于c/s架构的客户端程序用户操作记录与异常上报方法 |
US11042465B1 (en) * | 2020-09-02 | 2021-06-22 | Coupang Corp. | Systems and methods for analyzing application loading times |
US20220365861A1 (en) * | 2021-05-13 | 2022-11-17 | The Fin Exploration Company | Automated actions based on ranked work events |
CN113238742B (zh) * | 2021-06-17 | 2024-04-12 | 南方电网科学研究院有限责任公司 | 一种直流控保页面程序修改回放方法、装置、终端及介质 |
CN113657076B (zh) * | 2021-08-17 | 2023-08-22 | 中国平安财产保险股份有限公司 | 页面操作记录表的生成方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001060179A (ja) * | 1999-08-20 | 2001-03-06 | Fuji Xerox Co Ltd | 履歴記録装置及び履歴再生装置 |
JP2007317130A (ja) * | 2006-05-29 | 2007-12-06 | Nippon Telegr & Teleph Corp <Ntt> | 情報処理装置及びプログラム |
JP2009128936A (ja) * | 2007-11-19 | 2009-06-11 | Nippon Telegr & Teleph Corp <Ntt> | 履歴保存方法及び装置及びプログラム |
JP2009289077A (ja) * | 2008-05-29 | 2009-12-10 | Nippon Telegr & Teleph Corp <Ntt> | 操作履歴送信方法、操作履歴送信装置、及び記録媒体 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004062446A (ja) | 2002-07-26 | 2004-02-26 | Ibm Japan Ltd | 情報収集システム、アプリケーションサーバ、情報収集方法、およびプログラム |
US20080046562A1 (en) | 2006-08-21 | 2008-02-21 | Crazy Egg, Inc. | Visual web page analytics |
JP2008117093A (ja) * | 2006-11-02 | 2008-05-22 | Hitachi Ltd | ユーザ操作記録・再現方法及び装置 |
JP4906672B2 (ja) | 2007-10-22 | 2012-03-28 | 株式会社日立製作所 | ウェブアプリケーションの処理記録方法および処理記録装置 |
US8639743B1 (en) * | 2007-12-05 | 2014-01-28 | Appcelerator, Inc. | System and method for on-the-fly rewriting of JavaScript |
US8433733B2 (en) * | 2010-01-13 | 2013-04-30 | Vmware, Inc. | Web application record-replay system and method |
JP5467888B2 (ja) | 2010-02-12 | 2014-04-09 | 株式会社日立製作所 | ウェブアプリケーションのユーザビリティ評価方法、分析サーバ、及び、そのプログラム |
JP5408623B2 (ja) | 2010-02-17 | 2014-02-05 | 株式会社日立製作所 | 検索式提供方法、プログラム、及び、検索式提供システム |
JP5531362B2 (ja) | 2010-06-11 | 2014-06-25 | 株式会社日立製作所 | Webページ供給システム、Webページ供給方法、及び制御プログラム |
US9571591B2 (en) * | 2011-12-28 | 2017-02-14 | Dynatrace Llc | Method and system for tracing end-to-end transaction which accounts for content update requests |
-
2010
- 2010-08-09 JP JP2010178550A patent/JP5325177B2/ja not_active Expired - Fee Related
- 2010-09-01 WO PCT/JP2010/064934 patent/WO2012020512A1/ja active Application Filing
- 2010-09-01 US US13/811,880 patent/US8966502B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001060179A (ja) * | 1999-08-20 | 2001-03-06 | Fuji Xerox Co Ltd | 履歴記録装置及び履歴再生装置 |
JP2007317130A (ja) * | 2006-05-29 | 2007-12-06 | Nippon Telegr & Teleph Corp <Ntt> | 情報処理装置及びプログラム |
JP2009128936A (ja) * | 2007-11-19 | 2009-06-11 | Nippon Telegr & Teleph Corp <Ntt> | 履歴保存方法及び装置及びプログラム |
JP2009289077A (ja) * | 2008-05-29 | 2009-12-10 | Nippon Telegr & Teleph Corp <Ntt> | 操作履歴送信方法、操作履歴送信装置、及び記録媒体 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014229059A (ja) * | 2013-05-22 | 2014-12-08 | 日本電信電話株式会社 | 端末操作履歴収集システム及び端末操作履歴収集方法 |
JP2018190008A (ja) * | 2017-04-28 | 2018-11-29 | 株式会社プレイド | サーバ装置、情報処理方法、およびプログラム |
JP2021089756A (ja) * | 2021-02-10 | 2021-06-10 | 株式会社プレイド | サーバ装置、情報処理方法、およびプログラム |
JP7080456B2 (ja) | 2021-02-10 | 2022-06-06 | 株式会社プレイド | サーバ装置、情報処理方法、およびプログラム |
JP2022109300A (ja) * | 2021-02-10 | 2022-07-27 | 株式会社プレイド | サーバ装置、情報処理方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2012020512A1 (ja) | 2012-02-16 |
JP5325177B2 (ja) | 2013-10-23 |
US20130125143A1 (en) | 2013-05-16 |
US8966502B2 (en) | 2015-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5325177B2 (ja) | ウェブアプリケーションの操作記録方法およびシステム | |
US10613916B2 (en) | Enabling a web application to call at least one native function of a mobile device | |
AU2012370492B2 (en) | Graphical overlay related to data mining and analytics | |
JP5086183B2 (ja) | 機能強化されたウィジェットコンポジションプラットフォーム | |
JP4215411B2 (ja) | 組み込み別名情報に基づく別名の自動生成 | |
US20110035435A1 (en) | Method and system for converting desktop application to web application | |
US10257303B2 (en) | Proxy-computer-based provision of alternative graphical user interfaces | |
US20100169802A1 (en) | Methods and Systems for Storing, Processing and Managing User Click-Stream Data | |
US20120272178A1 (en) | Method and device for providing easy access in a user agent to data resources related to client-side web applications | |
JP5467888B2 (ja) | ウェブアプリケーションのユーザビリティ評価方法、分析サーバ、及び、そのプログラム | |
US8087033B2 (en) | Task-based tool for speeding and customizing interactions with web documents | |
JP2006065395A (ja) | ハイパーリンク生成装置、ハイパーリンク生成方法及びハイパーリンク生成プログラム | |
JP5560180B2 (ja) | 稼働ログ収集方法および装置 | |
JP2006260522A (ja) | 情報処理装置、情報管理装置、情報管理システム、情報処理方法、情報管理方法、情報処理プログラム、情報管理プログラム及び記録媒体 | |
KR101282975B1 (ko) | 문서 요소를 분리 구조화하여 표준화한 후 웹페이지를 재구성하는 웹화면 크롭 서버 장치 | |
JP5393242B2 (ja) | データ提供方法および中間サーバ装置 | |
KR20080029238A (ko) | 음성 인식을 통한 컨텐츠 정보 서비스 제공 장치 및 그방법 | |
US10298657B2 (en) | Information processing apparatus, web server, and non-transitory computer readable storage medium | |
WO2016084262A1 (ja) | 情報処理装置、方法、およびプログラム | |
JPWO2013190607A1 (ja) | 画面情報収集計算機、画面情報収集方法及び計算機読み取り可能な記憶媒体 | |
JP5835447B2 (ja) | 情報処理装置、情報処理システム、制御方法、およびプログラム | |
KR20210041269A (ko) | 지능형 크롤링 시스템 및 지능형 크롤링 방법 | |
JP2000010796A (ja) | 情報処理装置上のアプリケ―ションの利用デ―タ取得方法、その情報処理装置及び記録媒体 | |
KR101673937B1 (ko) | 바로 가기 객체의 생성 및 사용을 위한 장치, 시스템 및 방법 | |
JP2008117339A (ja) | Webアプリケーションの任意の機能に対するショートカットを定義する方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130108 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130625 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130719 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |