JPWO2013128645A1 - ユーザ操作検出システムおよびユーザ操作検出方法 - Google Patents

ユーザ操作検出システムおよびユーザ操作検出方法 Download PDF

Info

Publication number
JPWO2013128645A1
JPWO2013128645A1 JP2014501940A JP2014501940A JPWO2013128645A1 JP WO2013128645 A1 JPWO2013128645 A1 JP WO2013128645A1 JP 2014501940 A JP2014501940 A JP 2014501940A JP 2014501940 A JP2014501940 A JP 2014501940A JP WO2013128645 A1 JPWO2013128645 A1 JP WO2013128645A1
Authority
JP
Japan
Prior art keywords
character string
unit
web application
user operation
data
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
Application number
JP2014501940A
Other languages
English (en)
Other versions
JP5764255B2 (ja
Inventor
洋 中越
洋 中越
克雄 中島
克雄 中島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2013128645A1 publication Critical patent/JPWO2013128645A1/ja
Application granted granted Critical
Publication of JP5764255B2 publication Critical patent/JP5764255B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

ウェブアプリケーションに対するユーザの操作を検出して記録すること。本システムは、アプリケーション画面から、ユーザが文字列を入力するための文字列入力要素と、ウェブアプリケーションに対して所定の動作の実行を指示するための実行指示要素とをそれぞれ抽出する。本システムは、文字列入力要素および実行指示要素の、ウェブアプリケーションにおける役割を推定する。本システムは、文字列入力要素と実行指示要素とを関連付け、文字列入力要素に入力される入力文字列を抽出する。本システムは、ひな形データと入力文字列とに基づいて、ユーザ操作を記録したユーザ操作記録データを生成する。

Description

本発明は、ユーザ操作検出システムおよびユーザ操作検出方法に関する。
近年、企業が管理するパーソナルコンピュータ(PC)またはスマートフォンなどの、クライアント端末におけるユーザ操作を監視する製品が着目されている。
ユーザ操作を監視する製品は、デバイスおよびファイルの単なるアクセスログを監視者に提供するだけでなく、「ユーザが或る日時に或るファイルをどのように処理した」等のように、コンテキストを含めたログを提供する。特許文献1によると、ログの取得範囲は、ブラウザ、メーラ、ファイラなどの各種デスクトップアプリケーションのほかに、プリンタなどのデバイスにも及ぶ。
特許文献1に記載の技術では、クライアント端末上のファイルI/O(Input/Output)および通信I/Oを監視するだけでなく、クライアント端末上で作動するアプリケーションプログラムの画面も監視する。特許文献1記載の技術は、ユーザ操作により入手されるファイルに識別子をあらかじめ付与する。特許文献1記載の技術は、ユーザ操作によりファイルが出力されようとする際に、そのファイルに付与された識別子を検証することで、出力が許可されるか否か判定する。
一方、クラウドサービスまたはRIA(Rich Internet Application)などのWeb系技術の進歩により、アプリケーションは、デスクトップアプリケーションとして提供されるだけでなく、クライアント側とサーバ側との間でデータ通信することで具現化されるWebアプリケーションとしても提供され始めている。
ユーザは、クライアント端末に搭載されるWeb(WWW)ブラウザなどのWebアプリケーション表示ソフトウェアを用いて、Webアプリケーションを提供するサーバにアクセスする。アプリケーション構築に必要なデータをブラウザとサーバとが通信することで、ユーザは、Webアプリケーションを利用することができる。
ブラウザは、サーバから得たデータから画面を描写する。ユーザは、その画面に対して所定の操作を行う。ブラウザは、そのユーザ操作などにより発生したイベントを契機に、サーバにリクエストを送信する。サーバからのレスポンスを得ると、ブラウザは、そのレスポンスデータを用いて画面を再描画する。
具体的に説明すると、ブラウザとサーバとは、HTTP(Hyper Text Transfer Protocol)を通信プロトコルとして、HTML(Hyper Text Markup Language)、CSS(Cascading Style Sheet)、JavaScript(登録商標)などの、リソースファイルを通信する。ブラウザは、これらリソースファイルを用いて、アプリケーション画面を描画する。
HTMLは、画面および文書の構成を記述するファイルである。CSSは、画面全体およびHTMLに記載される各種部品の見栄えを記述するファイルである。Javascriptは、HTMLに記載される各種部品の動作を規定するファイルである。
HTMLは標準規格であり、テキスト形式でアプリケーション構造を表現するための言語である。HTMLの例を図22に示す。HTMLでは、タグなどの区切り文字を用いて、文書を構成する。
区切り文字によって区別される語彙は、要素、属性、テキストなどである。図22においては、htmlおよびtitleなどのタグにより囲まれた語彙が要素であり、hrefが属性名であり、”http://〜”が属性値、”リンク1”などがテキストである。なお、図22は、HTMLの基本となる構造を示しているにすぎず、例えばスタイルの記述およびJavaScriptコードなどを省略している。
ブラウザは、テキスト形式で表現されるHTMLを、コンピュータが解析可能なフォーマットであるバイナリ形式に変換する必要がある。HTMLは、当該文書に含まれる要素およびテキストなどが入れ子構造となるよう設計される。つまり、HTMLでは、或る要素およびテキストは必ず一つの親要素を持つ。この特性を利用して、HTML文書は、n進木の木構造データとして取り扱うことができる。
具体的には、頂点となる要素をルートノードとし、そのルートノードに続く要素、属性またはテキストを、ルートノードの子ノード、もしくはその子ノードの子ノードとして、連結する。一般に、このHTMLから変換された木構造データをDOMツリーと呼ぶ。図23は、図22のHTMLを木構造データ化した一例である。図23では、属性およびテキストを1ノードとしているが、これに限定しない。
つまり、図22のHTMLにおいて、a要素を構成するノードは、その内部に属性名であるhrefおよび属性値”http://〜”を持つノードとして構成することもできる。HTMLを解析するHTML文書処理装置を利用するアプリケーションに提供すべきAPI(Application
Programming Interface)が定義されている一方、当該HTML文書処理装置のHTML内部の表現方法が定義されていないためである。
特許文献2記載の技術では、Webアプリケーションを構成するHTMLの各要素のプロパティを特定して、他のフォーマットに変換できる。特許文献2では、対象XML(eXtensible Markup Language)文書のスキーマをオントロジーモデルに変換する。特許文献2の技術では、他のXML文書の要素と対象XML文書の要素との対応関係を、変換されたオントロジーモデルを利用して抽出し、要素間の対応関係を示す変換ルールが記載されたXSLT(XSL Transformations)を自動生成する。なお、スキーマとは、XML文書内の要素がどの要素や属性を持つことができるかといった、対象XML文書が準拠する規格情報を格納しているファイルである。
特許文献3記載の技術では、Webアプリケーションの画面から、ユーザが入力した文字列を取得できる。特許文献3では、宛先票などの画像データから文字列を抽出し、抽出した文字列の特徴を解析することで、郵便番号および住所氏名などを特定する。特許文献3では、対象文字列に数字が含まれていれば郵便番号であると推定し、対象文字列に住所データベースに含まれる部分文字列が含まれていれば住所であると推定し、対象文字列に氏名データベースに含まれる部分文字列が含まれていれば氏名であると推定する。
特開2011-186861号公報 特開2003-233528号公報 特開平5-217015号公報
特許文献1記載の技術では、Webアプリケーションが動作するブラウザのファイル入出力情報、及び、そのファイル入出力が発生したWebアプリケーションのURI(Uniform Resource Identifier)の情報しか監視していない。従って、特許文献1の技術では、Webアプリケーション上のユーザ操作を、「ユーザが或る日時にWebアプリケーション上で何をどう処理した」という精度で記録することができない。
具体的に、Webメールアプリケーションを例に説明する。特許文献1記載の技術では、ユーザがWebメールアプリケーションにおいて、メールにファイルを添付するという操作を実行した際に、「Webメールアプリケーションのドメインにファイルをアップロードした」というログが生成されるだけである。しかし、真に取得すべきは、「ユーザAが何時何分に宛先Bに〜メールを送信という内容とともにファイルを送信した」という精度のログである。
特許文献1記載の技術では、Webアプリケーション上のユーザ操作を把握していないため、所望の精度のログを取得することができない。より正確には、特許文献1記載の技術では、Webアプリケーションを構成する各要素に対して、ユーザがどういう意図を持って何を入力したか、ということを全く把握できない。
特許文献2記載の技術を、Webアプリケーション上のユーザ操作ログの取得のために使用できた場合は、特定の要素に指定される特定の属性から、その要素の続柄を導出して、操作ログフォーマットに変換できるかもしれない。
しかしながら、現状の多くのWebアプリケーションを構成するHTMLは、対象の続柄を導出するための属性を含んでいない要素で構成されている。つまり、メタデータと属性とが定義されており、その定義に従ったHTMLで構成されるWebアプリケーションであれば、特許文献2記載の技術により、Webアプリケーション上のユーザ操作ログを取得できる可能性がある。しかし、現在利用されている多くのWebアプリケーションに対して、特許文献2記載の技術は有効ではない。
特許文献3記載の技術を、Webアプリケーション上のユーザ操作ログを取得するために使用することは難しい。第一に、特許文献3記載の技術では、ユーザのアプリケーション操作が完了したかを判断できないため、どのタイミングで文字列を取得すれば良いか全く判断できない。従って、特許文献3記載の技術では、ユーザ操作ログの解析に適した文字列を取得することができない。
第二に、特許文献3記載の技術では、住所データベースおよび氏名データベースを用意し、かつ、それらデータベースを随時更新する必要がある。従って、特許文献3記載の技術は、膨大なストレージ容量を必要とし、データベース更新の手間もかかり、コストが増大する。
第三に、特許文献3記載の技術は、ユーザが入力するかもしれない入力枠群をWebアプリケーション画面内から抽出して、その入力枠の集合内の文字列を解析する必要があるため、処理負荷が高い。従って、多数のユーザについてユーザ操作ログを監視する場合は、処理速度が遅くなり、使い勝手も悪くなる。
本発明は、上述の課題を考慮してなされたものであり、ウェブアプリケーションに対するクライアント端末を用いたユーザ操作を、比較的簡易な構成で取得することができるようにしたユーザ操作検出システムおよびユーザ操作検出方法を提供することにある。
本発明に係るユーザ操作検出システムは、サーバ上で稼働するウェブアプリケーションに対するクライアント端末を用いたユーザ操作を検出するためのユーザ操作検出システムであって、ウェブアプリケーションが提供するアプリケーション画面から、ユーザが文字列を入力するための文字列入力要素と、ウェブアプリケーションに対して所定の動作の実行を指示するための実行指示要素とをそれぞれ抽出する第1要素抽出部と、抽出された文字列入力要素および実行指示要素の、ウェブアプリケーションにおける役割を推定する役割推定部と、文字列入力要素と実行指示要素とを関連付ける要素関連付け部と、実行指示要素に関連付けられた文字列入力要素に入力される入力文字列を抽出する文字列抽出部と、ウェブアプリケーションの種類に応じて用意されるひな形データであって、ウェブアプリケーションに対するユーザ操作を記録するためのひな形データを記憶するひな形記憶部と、文字列抽出部により抽出された入力文字列に対応するひな形データをひな形記憶部から取得し、取得したひな形データと入力文字列とに基づいて、ユーザ操作を記録したユーザ操作記録データを生成するユーザ操作記録データ生成部と、を備える。
アプリケーション画面は、複数の要素を木構造に配置した木構造データから形成されており、要素関連付け部は、木構造データにおける構造上の関係に基づいて、文字列入力要素と実行指示要素とを関連付けることができる。
実施例に係るシステムの構成例を示すブロック図である。 Webアプリケーションを解析する処理を示すフローチャートである。 監視対象のボタン要素を検出し、そのホタン要素にテキストボックス要素を関連づける処理を示すフローチャートである。 イベントを受信した場合の処理を示すフローチャートである。 意味データベースの構成例を示す図である。 テキストボックスとその意味、及び関連するボタンの組を示す図である。 ユーザ操作のログを生成するフォーマットテンプレートの構成例を示す。 第2実施例に係るシステムの構成例を示すブロック図である。 Webアプリケーションを解析する処理を示すフローチャートである。 対象要素とその周囲に存在するテキストとの関係を解析する処理を示すフローチャートである。 ボタン要素のイベントを付加する処理を示すフローチャートである。 第3実施例に係るシステムの構成例を示すブロック図である。 Webアプリケーションから出力される解析対象データの例を示す。 Webアプリケーションの通信解析を示すフローチャートである。 第4実施例に係るシステムの構成例を示すブロック図である。 Webアプリケーションの通信解析を示すフローチャートである。 第5実施例に係るシステムの構成例を示すブロック図である。 Webアプリケーションの通信解析を示すフローチャートである。 Webアプリケーションの画面例を示す。 Webアプリケーションの第一のHTML構成を例示する図である。 Webアプリケーションの第二のHTML構成を例示する図である。 HTML文書を例示する図である。 DOMツリーを例示する図である。
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
なお、本明細書では、実施形態において使用される情報を、「aaa表」という表現で説明しているが、これに限らず、例えば、「aaaリスト」、「aaaデータベース」、「aaaキュー」等の他の表現を用いてもよい。本実施形態で用いられる情報が、データ構造に依存しないことを示すために、「aaa情報」と呼ぶこともある。
本実施形態で使用される情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることがあるが、これらは互いに置換が可能である。
さらに、本実施形態の処理動作の説明では、「コンピュータプログラム」または「モジュール」を動作主体(主語)として説明することがある。プログラムまたはモジュールは、マイクロプロセッサによって実行される。プログラムまたはモジュールは、定められた処理を、メモリ及び通信ポート(通信制御装置)を用いながら実行する。従って、プロセッサを動作主体(主語)として読み替えても良い。
プログラムまたはモジュールを主語として開示された処理は、管理サーバ等の計算機等が行う処理として読み替えてもよい。さらに、コンピュータプログラムの一部または全ては、専用ハードウェアによって実現されてもよい。コンピュータプログラムは、プログラム配布サーバまたは記憶メディアによって計算機にインストールされてもよい。
本実施例では、図20に示すHTMLにより構成されているWebアプリケーション(図19)を想定する。図20には、HTMLにおいて一般的なフォームが記述されている。本実施例が対象とするWebアプリケーションは、一つのform要素内に複数の入力枠が存在し、さらに、フォームを送信させるための実行要素を含む。本実施例では、一つのform要素内に、ユーザが操作可能な全ての入力枠が存在する。それら入力枠は、本システムによる取得対象の要素である。
具体的に説明する。本実施例の対象とするWebアプリケーションは、type属性として”text”を持つinput要素またはtextarea要素がform要素の入れ子として存在する、入力枠を備える。その入力枠は、ユーザにより操作可能である。さらに、本実施例の対象とするWebアプリケーションは、type属性として”submit”を持つinput要素として存在する、フォーム送信実行ボタンを備える。但し、上記の説明は、本発明の理解を容易にするためのものであり、本発明の範囲を上記の例に限定するものではない。
図1は、Webアプリケーションに対するユーザ操作を検出して解析するためのシステムを示す構成図である。
まず最初に、本システムが適用される計算機システムは、サーバ1と、クライアント端末10とが通信ネットワークで接続されている。サーバ1は、例えば、電子メールソフトウェア、文章管理ソフトウェア、掲示板、チャットソフトウェア、電子会議ソフトウェアなどのようなWebアプリケーション1Aを備える。
クライアント端末10は、例えば、ユーザの使用するパーソナルコンピュータ、タブレット型端末、携帯電話、携帯情報端末などのように、Webアプリケーション1Aを利用可能なコンピュータ端末である。
クライアント端末10は、コンピュータプログラムなどを記憶するメモリ11と、メモリ11の記憶するコンピュータプログラムを実行するマイクロプロセッサ(CPU)12と、サーバ1との通信を行うための通信インターフェース13とを含む。
マイクロプロセッサ12は、メモリ11に記憶された所定のコンピュータプログラム(ウェブブラウザ)を読み込んで実行する。さらに、マイクロプロセッサ12は、ウェブブラウザに実装された各種ソフトウェア部品なども実行する。
なお、サーバ1およびクライアント端末10、メモリ11、マイクロプロセッサ12、通信インターフェース13は、他の実施例では図示を省略する。通信インターフェース13の機能は、後述するデータ通信制御部310として示される。
本実施例のユーザ操作検出システムは、それぞれ後述するように、Webアプリケーション基盤100と、操作ログ受信部101とを備える。
Webアプリケーション基盤100は、例えば、ブラウザのように構成される。なお、図1のWebアプリケーション基盤100は、本発明の理解および実施に必要な範囲で記載されている。図1では、画面を描画するレンダリングエンジン、JavaScriptコードをパースし実行する仮想マシン、HTMLを木構造に展開してDOMツリーを生成するパーサなどは、省略されている。
操作ログ受信部101は、後述する操作ログ生成部129により生成される、ユーザの操作ログを操作ログ生成部129から受信する。本実施例では、操作ログ受信部101の実装方法を限定しない。操作ログ受信部101は、例えば、Webアプリケーション基盤100と同一端末にて動作するソフトウェアとして構成してもよいし、他の端末にて動作するソフトウェアとして構成してもよいし、さらには、ハードウェア装置として構成してもよい。例えば、操作ログ受信部101は、ユーザを管理する管理者の使用するコンピュータ端末に設けてもよいし、ユーザ操作を管理するための管理サーバに設けてもよい。
本実施例に示すシステムがクライアント端末監視システムなどの一部である場合、操作ログ受信部101は、受信したユーザ操作ログをクライアント端末の管理者に送信する手続きをとるだろう。
Webアプリケーション基盤100は、例えば、イベント発生部110と、Webアプリケーション解析部111とを備える。
イベント発生部110は、様々なイベントを発生させ、Webアプリケーション解析部111にイベント情報を通知する。たいていのWebアプリケーション基盤100は、機能を追加することができる。そのような機能追加は、例えば、拡張機能、アドオン、アドイン、エクステンションなどの名前で呼ばれる。以降、機能追加を拡張機能と記載する。
Webアプリケーション解析部111を拡張機能としてブラウザなどに実装すると、イベント発生部110は、様々なタイミングで発生するイベントを、Webアプリケーション解析部111に通知する。様々なタイミングとは、例えば、Webアプリケーションのリソースの読み込みを開始する際、Webアプリケーションの全リソースを読み込み完了した際、Webアプリケーションでのレンダリングが完了してユーザがアプリケーション画面上でマウスまたはキーボードなどを操作した際、などである。なお、マウス操作によるイベントの発生タイミングには、例えば、マウスボタンが押された際、マウスボタンが押された状態から離された際などのように詳細に分割されている。
Webアプリケーション解析部111は、例えば、イベント取得部120、要素抽出部121、要素解析部122、属性要素意味推定部123、意味DB124、ボタン要素イベント付加部125、テキスト要素バッファ部126、一時メモリ127、テキスト抽出部128、操作ログ生成部129、ログテンプレート130を含んで構成される。なお、本実施例では、Webアプリケーション解析部111を拡張機能として実装するが、これは説明を容易にするためであり、本発明の実装方法を限定するものでない。
図2〜図4を参照して、Webアプリケーション解析部111の有する内部機能をそれぞれ説明する。
図2は、Webアプリケーションを解析する処理を示すフローチャートである。図2において、イベント取得部120は、イベント発生部110から通知されるイベント情報を受信し、イベント種別を判定する(T101)。イベント取得部120は、受信すべきイベントかどうかを判定する(T102)。受信すべきイベントではない場合(T102:NO)、本処理は終了する。
本実施例におけるイベント取得部120は、Webアプリケーションを構成する全リソースの読み込みが完了したときに発生するイベント(このイベントの発生は第1タイミングの例である)と、指定する要素がマウスもしくはキーボードにより選択されたときに発生するイベント(このイベントの発生は第2タイミングの例である)のみを取得するものとする。但し、この限定は説明を容易にするためであり、本発明の範囲を限定するものではない。
以下、イベント取得部120が、Webアプリケーションを構成する全リソースの読み込みが完了したときに発生するイベントを受信した場合の動作を説明する。
要素抽出部121は、WebアプリケーションのDOMツリーを読み込む(T103)。Webアプリケーション解析部111を拡張機能として実装する場合、このDOMツリーにアクセスすることができる。
続いて、要素抽出部121は、ループ処理用一時変数であるiを初期化して(T103)、DOMツリーの全要素を探索する。要素抽出部121は、要素解析部122に、DOMツリー内の要素を一つずつ渡しながら(T105)、ループ変数iをインクリメントする(T118)。このループ処理は、要素抽出部121が全要素を要素解析部122に渡すまで(T105:YES)、繰り返される。このループ処理の終了後、図3で後述する処理Bへ進む(T119)。
要素解析部122は、要素抽出部121により提供される要素の、要素名と属性とを解析する(T106)。要素解析部122は、要素抽出部121と共に「第1要素抽出部」の例を構成する。
具体的には、要素解析部122は、ユーザがテキストを入力するためのテキストボックスを構成する要素と、ユーザがクリック操作もしくはキーボードのEnter入力などで選択できるボタン要素とを抽出し(T106)、それら抽出要素を属性要素意味推定部123に渡す(T107)。
「文字列入力要素」の例であるテキストボックス要素は、例えば、要素名がinputであってtype属性がtextである要素、または、textarea要素などで指定される。「実行指示要素」の例であるボタン要素は、要素名がinputであってtype属性がsubmit、reset、もしくはbuttonである要素、または要素名がbuttonである要素などで指定される。
なお、本実施例における要素解析部122は、type属性が”reset”であるinput要素を属性要素意味推定部123に渡さない。type属性が”reset”であるボタン要素は、Webアプリケーションに入力されたデータがWebアプリケーションを提供するサーバに送信されることを中断するためのボタンだからである。本実施例では、Webアプリケーションを提供するサーバに送信されるデータを監視するものであるため、要素解析部122は、type属性が”reset”であるボタン要素を属性要素意味推定部123に渡さない。
なお、対象要素として、テキストボックス要素およびボタン要素の例を述べたが、これは説明を容易にするためであり、他の要素を解析対象としてもよい。
要素解析部122は、解析結果を要素抽出部121に戻す。この解析結果は、対象要素がテキストボックス要素かボタン要素であれば真を、そうでなければ偽となる。要素抽出部121は、要素解析部122での解析結果を受け、その結果が偽であれば、次の要素に処理を遷移する(T107:NO)。
要素解析部122は、対象要素がテキストボックス要素またはボタン要素のいずれかである場合(T107:YES)、その要素を属性要素意味推定部123に渡す。
「役割推定部」または「第1役割推定部」の例である属性要素意味推定部123は、要素解析部122から受け取った要素の属性に基づいて、その要素の意味(役割)を推定する(T108)。具体例に、属性要素意味推定部123は、意味データベース124に格納されるキーワードと意味との組を参照し、属性に指定されている属性値と一致するキーワードを見つけ、その結果、属性に指定されている属性値に対応する意味とその確信度とを得る(T108)。参照する属性としては、id、name、class、valueなど、一般に用いられる属性を例に挙げることができる。
図5に示す意味データベース(DB)124を説明する。意味DB124は、「役割データベース」の例である。図5によると、あるテキストボックス要素のid属性の属性値が”to”であれば、そのテキストボックス要素の意味は”宛先”であり、その確信度は”1”である。
あるボタン要素のvalue属性の属性値が”quxsend”であれば、そのボタン要素の意味は”送信実行ボタン”であり、その確信度は”0.5”である。なお、図5では、2行目に例示される”/.+to.+/”などのように、正規表現書式で記載している。これは、説明を容易にするためであり、意味DB124の実装方法、特に、キーワードの表現方法を限定するものではない。
図5では、キーワードそのものが”意味”とほぼ同義である場合のみ、その確信度を1としている。本実施例では、汎用的な属性を利用して意味を推定しており、意味推定の確率を向上させるために、このような値付けとした。なお、意味DB124の確信度は、上記の”1”または”0.5”のいずれかの値に決定する必要はなく、それら以外の他の値に設定してもよい。また、確信度を管理者が手動で修正したり、または自動的に確信度を調整したりする構成でもよい。
なお、意味DB124では、監視対象に関連する文字列のみを、キーとして用意すればよい。つまり、監視対象のWebアプリケーションにおいて、監視を希望するテキストボックス要素またはボタン要素に関連する文字列のみをキーとして、意味DB124に登録しておけばよい。従って、従来技術で述べたような広範囲にわたって住所および氏名を格納するDBに比べて、意味DB124のサイズを小さくすることができる。
属性要素意味推定部123は、取得した意味の確信度が所定値α(0以上1以下)以上であれば、意味が確定したものと判定し、テキスト要素バッファ部126もしくはボタン要素イベント付加部125に、対象要素を渡す(T109)。属性要素意味推定部123は、対象要素がテキストボックス要素であればテキスト要素バッファ部126に(T110)、対象要素がボタン要素であればボタン要素イベント付加部125に、それぞれ渡す(T112)。
テキスト要素バッファ部126は、属性要素意味推定部123より渡された要素がテキストボックス要素であるか確認して(T110:YES)、そのテキストボックス要素を、属性要素意味推定部123により導出された意味と組にして、一時メモリ127に登録する(T111)。
「要素意味関連付け部」の例であるボタン要素イベント付加部125は、属性要素意味推定部123より渡された要素がボタン要素であることを確認して(T112:YES)、そのボタン要素をバッファする(T113)。
図3を参照して、ボタン要素イベント付加部125の動作を説明する。ボタン要素イベント付加部125は、処理を開始すると(T120)、まず最初に、ループ変数iを初期化する(T121)。
続いて、ボタン要素イベント付加部125は、図2のステップT113にてバッファされた全てのボタン要素に対して、ループ内部処理を実行する(T122)。ループ処理では、変数iをインクリメントし(T125)、全てのバッファされたボタン要素に関してループが完了した場合(T122:YES)、本処理を終了する(T127)。
ボタン要素イベント付加部125のループ内部処理を説明する。ボタン要素イベント付加部125は、対象ボタン要素の構造的な関連度を導出する(T123)。ステップT123にて導出した関連度が所定の定量値W以上であれば(T124:YES)、ボタン要素イベント付加部125は、そのボタン要素に対する、マウスまたはキーボードによるイベントを取得するよう登録する(T125)。
さらに、ボタン要素イベント付加部125は、ステップT125で登録したボタン要素との関連性を持つテキストボックス要素の集合に対し、当該ボタン要素を関連付ける(T126)。
ボタン要素の構造的な関連度とは、ステップT111にてバッファされたテキストボックス要素の集合との関連性を示す。本実施例の対象とするWebアプリケーションの場合、ステップT111にてバッファされたテキストボックス要素の集合と同一のform要素に属しているかで、ボタン要素の関連度が導出される。
一例として、次のように関連度を導出することができる。図21において、宛先のメールアドレス、件名もしくは本文を入力するための、テキストボックス要素の集合と、「検索」ボタンとを比較する。「検索」ボタンは、上記のテキストボックス要素の集合とは別のform要素に属すため、その関連度は”0”であると設定できる。
一方、「送信」ボタンは、上記のテキストボックス要素の集合と同一のform要素に属すため、その関連度を”1”に設定できる。ここで、W=1とすると、「送信」ボタンを構成するボタン要素が、上記のテキストボックス要素に入力されたデータを送信するためのトリガである。
ゆえに、ボタン要素イベント付加部125は、所定値W以上の関連度を有するボタン要素をイベント登録し(T125)、そのボタン要素と関連するテキストボックス要素の集合に、当該ボタン要素を関連付ける(T126)。
ステップT126でのテキストボックス要素とボタン要素を関連付ける方法、およびその関連付けの保存方法は、特に限定しない。図20のWebアプリケーションにおいて、前述の処理により、一時メモリ127に保存される要素の視覚的一例を、図6に示す。
続けて、図4を用いて、イベント取得部120が、指定する要素がマウスもしくはキーボードにより選択されたときのイベントを、受信した際の動作を説明する。指定する要素がマウスもしくはキーボードにより選択されたときのイベントとは、前述のステップT125にて登録したボタン要素が選択されたときに発生するイベントである。つまり、登録したボタン要素がマウスによりクリックされた場合、もしくは登録したボタン要素がキーボードにて選択された状態でEnterキーが押された場合、のいずれかの場合に発生するイベントを意味する。
「文字列抽出部」の例であるテキスト抽出部128は、ステップT111にて登録されたテキストボックス要素の集合において、イベントの発生したボタン要素との関連性がある全てのテキストボックス要素からテキストを抽出する(T130〜T135)。
イベントの発生したボタン要素のことを、発生したイベントの対象となるボタン要素、つまり、発生イベント対象ボタン要素と呼ぶことがある。発生イベント対象ボタン要素は、例えば、所定のイベント(マウス等による操作時に発生するイベント)が発生したかを監視される監視対象であるボタン要素である。従って、監視対象ボタン要素と呼ぶこともできる。
テキスト抽出部128は、発生イベント対象ボタン要素に関連するテキストボックス要素の有無を確認する(T131)。発生イベント対象ボタン要素に関連するテキストボックス要素が無い場合(T131:NO)、本処理は終了する(T140)。
発生イベント対象ボタン要素に関連するテキストボックス要素がある場合(T131:YES)、テキスト抽出部128は、ループ変数iを初期化し(T132)、関連するテキストボックス要素の全てから、ユーザが入力した文字列を抽出する(T134)。テキスト抽出部128は、各テキストボックス要素から文字列を抽出する際に、必要に応じて、ループ変数iをインクリメントする(T135)。
「ユーザ操作記録データ生成部」の例である操作ログ生成部129は、「ひな形記憶部」の例であるログテンプレート130から、文字列に対応するテンプレートを用いて、ユーザ操作のログを生成する(T136,T137)。ログテンプレートは、どのような表現手段でも良いが、一例を図7に示す。図7によると、メールに関する操作ログの場合、宛先、件名、本文を入力できる空白文字列(<div name=”意味”></div>)と、それらをつなぐ文字列とで構成される。
操作ログ生成部129は、一時メモリ127に保持された各項目の「意味DB124における対応する意味」項(図6)と、空白文字列のname属性に指定される値(図7)とを照合することにより、発生イベント対象ボタン要素との関連性があるテキストボックス要素と、ログテンプレート130の各空白文字列とを接続することができる。
操作ログ生成部129による操作ログ生成の例を説明する。まず、操作ログ生成部129は、発生イベント対象ボタン要素との関連性を有するテキストボックス要素集合がどのテンプレートに最もマッチするかを判定する必要がある(T136)。
マッチング判定方法の例を説明する。各テンプレートの空白文字列が埋まらなかった数をNfとする。各テンプレートに対して余った発生イベント対象ボタン要素との関連性があるテキストボックス要素の数をNrとする。操作ログ生成部129は、Nf+Nrの合計値が最も少ないテンプレートを採用する。Nf+Nrの合計値は「適合度」の例である。
テキスト抽出部128は、前述までの処理(T131〜T135)にて、宛先としての文字列(メールアドレスなど)と、件名としての文字列と、本文としての文字列とを取得している。この場合、メールテンプレートに関しては、Nf=0、Nr=0であるため、Nf+Nr=0となる。同様に、メッセージテンプレートに関しては、Nf=0、Nr=2であるため、Nf+Nr=2となる。さらに、ドキュメント管理のテンプレートに関しては、Nf=1、Nr=2であるため、Nf+Nr=3となる。
この結果、バッファされた文字列に対してメールテンプレートが最もマッチすることがわかる。そこで、操作ログ生成部129は、メールテンプレートの空白文字列にそれぞれ対応する、発生イベント対象ボタン要素との関連性があるテキストボックス要素のテキストを挿入して、操作ログを生成する(T137)。最終的に、操作ログ生成部129は、生成した操作ログを操作ログ受信部101に送信して(T138)、本処理を終了する(T139)。
ログテンプレートとのマッチング結果を操作ログに添付しても良い。例えば、Nf+Nrの合計値を、操作ログに含めてもよいし、もしくは操作ログと一緒に送信してもよい。
Webアプリケーションを構成する全リソースの読み込みが完了したときに生じるイベントをイベント取得部120が受信した際の動作と、指定する要素がマウスもしくはキーボードにより選択されたときに生じるイベントをイベント取得部120が受信した際の動作を容易に説明するために、本実施例では、各イベント受信後に、操作ログ取得に必要な処理を行った。
上記の方法に代えて、次のような方法を用いても良い。即ち、Webアプリケーションを構成する全リソースの読み込みが完了したときに発生するイベントをイベント取得部120が受信した場合に、そのWebアプリケーションを構成するリソースを全てバッファしておく。そして、指定する要素がマウスもしくはキーボードにより選択されたときに発生するイベントをイベント取得部120が受信した場合に、操作ログの生成に必要なテキストを取得する。
この方法によれば、上述した操作ログ取得処理をイベント受信時とは別のタイミングで実施することができる。この方法は、例えば、非力なCPUしか持たないクライアント端末において、Webアプリケーション上のユーザ操作ログを取得する場合に有効である。
本実施例では説明を容易にするために、Webアプリケーション基盤100にて提供される拡張機能として、Webアプリケーション解析部111を実装する例を示した。これに代えて、例えば、クライアントとサーバとの間の通信路上に監視装置を配置し、その監視装置においてWebアプリケーション上のユーザ操作ログを監視する構成でもよい。つまり、その監視装置は、Webアプリケーション基盤100と同等のWebアプリケーション構成能力を備えており、クライアントとサーバとの間で送受信されるリクエストデータとレスポンスデータを全て監視する。これにより、監視装置は、本実施例と同等の監視性能を持つことができる。
以上詳細に述べた本実施例によれば、汎用的な属性を持つ要素から当該要素の利用目的もしくは意味を獲得し、抽出したテキストボックス要素集合と別途抽出したボタン要素との関連性を導出する。そして、本実施例では、複数の要素及びそれらの意味からWebアプリケーションの主目的を推測し、ユーザがテキストボックス要素に入力した文字列を適切なタイミングで取得でき、最終的に、Webアプリケーション上のユーザの操作のログを取得することができる。
第2実施例を説明する。以下、第1実施例との相違を中心に説明する。本実施例では、図21のHTMLにより構成されているWebアプリケーション(図19)を想定する。図21は、図20に示すようにform要素によりフォーム送信を実行するのでない。図21では、宛先または件名を入力するための入力枠は、テキストボックス要素であるinputまたはtextareaで構成されている。しかし、本文を入力するための入力枠は、div要素で構成されている。
事実、一部のWebアプリケーションは、テキストボックス要素であるinputまたはtextarea要素では実現できない高度な処理を実現するために、div要素などを使用する。例えばリッチテキスト表現で本文を表現するような場合に、div要素およびインナーHTMLによりテキストボックスを実現する。なお、div要素とは、div要素で囲んだ範囲のデータをひとかたまりのものとして取り扱うためのHTML要素である。インナーHTMLは、特定のHTML要素の内容を一括して書き換える場合に使用される。
図21では詳細な記述を省略しているが、本文を入力するための入力枠を構成するdiv要素へのクリックを検知すると、種々の処理がJavaScriptコードにより実現される。種々の処理としては、例えば、過去に入力された文字列とクリックされた位置とを検出し、点滅カーソルを表示する処理がある。他の例として、キーアップイベントを監視し、キーアップイベント発生時に対象キーの文字を入力し、さらに、その文字が日本語などへの変換が必要な文字である場合は、IME(Input Method Editor)の出力である、漢字などの文字列の入力を検知し、その文字列をdiv要素に挿入する。
図21では、テキストボックス要素と同様に、フォーム送信ボタンは、フォーム送信をsubmitするinput要素で構成されていない。ボタンに見えるスタイルを適用することで、div要素によって独自にフォーム送信ボタンを設計している。スタイルシートは「デザインデータ」の例である。
一部のWebアプリケーションは、ボタンを自由にデザインするために、このような構成を採用している。図21では詳細な記述を省略しているが、ボタン要素であるdiv要素がクリックされると、idが”to”、”subject”、”main”である、宛先、件名、本文を構成する各要素に入力された文字列をそれぞれ取得して、フォームデータを形成する。そして、JavaScriptにおける非同期通信ライブラリXMLHttpRequestを利用して、フォーム送信を実行する。
このような独自ボタンを配置する別の例として、図20の構成を挙げる。図20に示すように、テキストボックス要素をform要素内に配置し、送信実行ボタンである要素を隠し要素として配置する。その代わりに、疑似送信実行ボタンを、div要素または汎用ボタン要素(<button
type=”button”></button>)により作成する。疑似送信実行ボタンがクリックされた時に、隠された本物の送信実行ボタンがクリックされるよう、JavaScriptコードにて制御する。
なお、図21の例及び図20の例は、本実施例の説明を容易にするためであり、本発明の範囲を限定するものでない。
本実施例のWebアプリケーションは、フォームを構成するために、標準規格に準拠したform要素を利用しない。Webアプリケーションの自由度を高めるためである。本実施例のWebアプリケーションは、ユーザの入力を可能とする、もしくはユーザに入力可能と思わせる入力対象要素を備える。さらに、本実施例のWebアプリケーションは、そのWebアプリケーションの提供サーバに対し、入力対象要素に入力された文字列を送信するよう、ユーザが要求するためのボタン、もしくはユーザにボタンと思わせる要素を有する。
図8は、本実施例に係るWebアプリケーション解析システムを示す構成図である。Webアプリケーション基盤200は、イベント発生部110と、Webアプリケーション解析部211とを備える。
Webアプリケーション基盤200とWebアプリケーション基盤100とを比較すると、Webアプリケーション解析部111がWebアプリケーション解析部211に変更されている点が異なる。
本実施例におけるWebアプリケーション解析部211は、イベント取得部120、要素抽出部121、要素解析部122、属性要素意味推定部123、意味DB124、テキスト要素バッファ部126、一時メモリ127、テキスト抽出部128、操作ログ生成部129、ログテンプレート130を備える。さらに、本実施例のWebアプリケーション解析部211は、スタイル解析部131、隣接テキスト抽出部132、関連度導出部133、関連テキスト要素意味推定部134、要素意味推定部135、ボタン要素イベント付加部125に代わるボタン要素イベント付加部136を、備える。
以下、図8のWebアプリケーション解析部211内の各部位の説明を、図9〜図11を用いて行う。
図9は、Webアプリケーション解析処理のフローチャートである。ステップT100〜T107の処理を完了し、ステップT107の結果が偽であれば(T107:NO)、スタイル解析部131は、スタイルを用いた要素の判定を行う(T200)。
対象要素がテキストボックス要素であると判定するための基準例を説明する。スタイルシートにおいて、対象要素のcursorプロパティが”text”であること、background-colorプロパティが他のテキストボックス要素と同じ値が指定されていること、などの条件を満たすことを、テキストボックス要素であると判定するための基準として用いてもよい。さらに、上記2つの条件のうちいずれか1つを満足している場合に対象要素がテキストボックス要素であると判定してもよいし、もしくは、上記2つの条件の全てを満足している場合に対象要素がテキストボックス要素であると判定してもよい。
対象要素がボタン要素であると判定するための基準例を説明する。スタイルシートにおいて、対象要素のcursorプロパティが”auto”、”default”、”pointer”のいずれかであること、div要素またはspan要素のように汎用として利用される汎用要素が1の深さに、つまり直接にテキストノードタイプの要素を持っていること、文字列間にないアンカーを付けることができるa要素が1の深さにテキストノードタイプの要素を持っていること、ボタンに見えるスタイルを指定していること、などの条件を挙げることができる。ボタンに見えるスタイルを指定するとは、具体的に、対象要素のbackground-colorプロパティに対して、borderプロパティに濃い色を用いていること、などである。これらの条件のうち、いずれか1つの条件を満たした場合に、対象要素がボタン要素であると判定してもよいし、いずれか複数の条件を満たした場合もしくは全ての条件を満たした場合に、対象要素がボタン要素であると判定してもよい。
スタイル解析部131は、要素抽出部121と共に「第2要素抽出部」の例を構成することができる。スタイル解析部131は、前述の判定結果が真であれば(T201:YES)、対象要素を属性要素意味推定部123に渡し(T108へ)、判定結果が偽であれば(T201:NO)、要素抽出部121に結果を返す(T118へ)。
属性要素意味推定部123は、ステップT108を実施し、ステップT108にて導出された確信度を要素意味推定部135に渡す。以降、属性要素意味推定部123により導出された確信度を、推定確率Paと表記する。この推定確率Paは、対象要素毎に導出されるため、そのインデックスを併記する。従って、ある対象要素nについて属性要素意味推定部123により導出された推定確率を、Panと表記する。
隣接テキストによる意味解析を行うために、属性要素意味推定部123は、隣接テキスト抽出部132に対象要素を渡し(T202)、推定確率を合計する(T203)。隣接テキストによる意味解析等は、図10にて後述する。
対象要素の意味が確定していれば(T204:YES)、ステップT110以降を実施し、意味が確定していなければ(T204:NO)、対象要素に関する意味推定処理は終了する。
図10を用いて、隣接テキスト抽出部132、関連度導出部133、関連テキスト要素意味推定部134、要素意味推定部135の動作、つまり図9のステップT202の動作の詳細を説明する。隣接テキスト抽出部132、関連度導出部133、関連テキスト要素意味推定部134、は、「第2役割推定部」の例を構成する。要素意味推定部135は、例えば、「第1役割推定部の推定結果と第2役割推定部の推定結果とに基づいて、推定対象の要素の役割を最終的に決定する役割最終決定部」と表現してもよい。
隣接テキスト抽出部132は、属性要素意味推定部123から対象要素を渡されると(T210)、ループ変数であるiを初期化し(T211)、対象要素から距離S以内に存在する近傍テキスト(隣接テキストとも呼ぶ)を探索する(T212)。
距離Sは、例えば、DOMツリーにおける1ノード間の移動を基本単位としている。2ノード離れている場合、距離Sは”2”となる。これに代えて、対象要素の近傍のHTMLのみをレンダリングし、画像X-Y座標上の1ピクセルを基本単位として、距離Sを定義してもよい。3ピクセル離れている場合、距離Sは”3”となる。いずれの方法で距離Sを定義してもよい。
隣接テキスト抽出部132は、探索対象ノードがテキストノードであれば(T213:YES)、そのテキストノードをバッファリングする(T214)。ステップT212,T213,T214の操作を、距離S内のノード集合に関して繰り返す(T215)。距離S内に存在するテキストの探索が完了すると(T212:YES)、次のステップに進むために、ステップT214でバッファしたテキストノード配列を、関連度導出部133に渡す。距離S内に存在するテキストノードは「所定の関連要素」の例である。
関連度導出部133は、ループ変数であるiを初期化し(T215)、ステップT214にてバッファしたテキストノード配列の全要素に関して、関連度をそれぞれ導出する(T216)。
対象要素と隣接テキストノード間の関連度は、例えば、両者の距離(T217)に基づいて、もしくは両者の位置関係(T218)に基づいて、もしくは両者の構造関係(T219)に基づいて、導出される。
対象要素と隣接テキストノード間の距離、位置関係、構造関係という複数指標に基づく導出方法の例は後述するが、それらの方法に限定しない。また、複数指標からそれぞれ算出される関連度同士の優劣も特に問わない。さらに、どの指標から先に関連度を計算するかの、計算準位も特に問わない。
対象要素と隣接テキストノードとの間の距離を導出する例を説明する。前述のように、DOMツリーにおける1ノード間移動を基本単位として距離を算出してもよいし、対象要素と隣接テキストノードの近傍のみレンダリングして画像を取得し、その画像のX-Y座標上の1ピクセルを基本単位として距離を算出してもよい。
図21において、宛先を入力する要素”<input
type=”text” id=”to” size=”100”>”を対象要素とする場合、ノード間移動を1単位とする方法を距離算出方法とするなら、”To:”の距離は4となり、”CCを追加”の距離は6となり、”BCCを追加”の距離は6となる。
図21の下側に示す”件名:”は、効率的なノード移動であれば、その距離は5となるため、非効率な距離計測が望ましい。具体的に説明する。宛先を入力する要素”<input type=”text” id=”to” size=”100”> ”から”件名:”にノード間を移動する場合、線形に探索すると、”CCを追加”および”BCCを追加”を格納する要素集合”<tr><td></td><td><span id=”cc”>CCを追加</span></td><td><span id=”bcc”>BCCを追加</span></td></tr>”を経由する。
その移動距離も考慮に入れると、宛先を入力する要素”<input type=”text” id=”to” size=”100”>”から”件名:”までの距離は、19となる。”To:”、”CCを追加”、”BCCを追加”までの距離も変化するが、それらは”件名:”までの距離と比較して小さな距離である。
対象要素と隣接テキストノードとの間の位置関係を導出する例を説明する。Webアプリケーションの利用する言語に応じて、対象要素と隣接テキストノードの位置関係の持つ意味は異なる。
例えば、日本語または英語のように、左から右に、上から下に文章が記載される言語の場合、対象要素の上もしくは左に位置するテキストノードの方が、対象要素の他の位置(例えば右)に存在するテキストノードよりも、関連性があると判定できる。場合によっては、対象要素の下に配置されたテキストノードも、対象要素と強い関連性を有する。
他の判断指標として、複数のテキストノードが並列に配置されている場合は、それらのテキストノードと対象要素との関連性を低く評価する方法もある。
図21において、宛先を入力する要素” <input type=”text” id=”to” size=”100”> ”を対象要素とする場合に、テキストノードの位置に基づいて関連性を算出する方法を説明する。この場合、対象要素の左に位置する”To:”の関連性は”2”と、対象要素の下に位置する”CCを追加”及び”BCCを追加”の関連性はそれぞれ”1”と設定される。さらに、並列する複数テキストノードの関連性を下げるという方法によれば、
”CCを追加”及び”BCCを追加”の関連性は下げられて”0”となる。従って、最終的には、”To:”の関連性は”2”、”CCを追加”及び”BCCを追加”の関連性はそれぞれ”0”と、設定される。
対象要素と隣接テキストノードの間の構造関係に基づいて、関連性を導出する例を説明する。構造関係に基づいて関連性を求める方法としては、例えば、label要素を用いたラベリングに基づいて関連性を導出する方法、兄弟ノードかどうかで関連性を導出する方法、もしくは、テーブルの同行に格納されているかどうかで関連性を導出する方法などが挙げられる。つまり、対象要素と隣接テキストノードとの間の構造関係とは、Webアプリケーション画面の構造上の関係であると言うこともできる。
図21において、宛先を入力する要素”<input
type=”text” id=”to” size=”100”>”を対象要素とする場合、label要素によりひも付けられている”To:”の関連度は、”1”に設定できる。この場合、兄弟ノードは無く、どのテキストノードも関連性をもたない。さらに、”To:”は、テーブル構造において同列に格納されるため、最終的に関連度を2とできる。
なお、兄弟ノードの定義は、1要素を単位としても良く、部分要素集合を単位としても良い。具体的に、<div><div><div>A</div></div></div><div><div><div>B</div></div></div>という部分構造化文書において、<div><div><div>A</div></div></div>、及び<div><div><div>B</div></div></div>のそれぞれを1つのまとまりとすると、両者は兄弟ノード関係にある。
最終的に導出した、距離関係に基づく関連性、位置関係に基づく関連性、構造関係に基づく関連性を正規化して、全ての関連度を統合する(T220)。正規化の方法、統合の方法は特に規定しない。一例として、下記の式1に示すように、a,b,cの係数により各関連度の重みを調整し、全関連度を加算することで統合する方法が挙げられる。なお、式1において、Cは隣接テキストノードの最終関連度、a,b,cは係数、Dは距離の逆数、Pは位置関係による関連度、Sは構造関係による関連度を示す。
C = aD + bP + cS・・・(式1)
関連度導出部133は、ステップT217からT220までの処理を、ステップT214にてバッファした配列に格納される全てのテキストノードに対して実施する。
全てのテキストノードについてステップT217〜T220の処理を完了した場合(T216:YES)、関連度導出部133は、ステップT214にてバッファしたテキストノード配列に格納されている全てのテキストノードのうち最も高い関連度Cを持つ隣接テキストノードを導出し、その隣接テキストノード及び対象要素を、関連テキスト要素意味推定部134に渡す(T222)。関連テキスト要素意味推定部134は、隣接テキスト要素に基づいて対象要素の意味を推定する機能である。
関連テキスト要素意味推定部134は、ステップT222で導出した最も関連度の高い隣接テキストノードに基づいて、対象要素の意味を解析する(T223)。この意味解析処理は、上述したステップT108と同様に、関連度導出部133から渡された隣接テキストノードの文字列から意味を推定する。
具体例に説明する。関連テキスト要素意味推定部134は、意味データベース(DB)124に格納されるキーと意味の組を参照し、隣接テキストノードの文字列に対応するキーを見つけ、その意味に対応する確信度を取得する(T223)。
関連テキスト要素意味推定部134は、ステップT223で取得した確信度を、要素意味推定部135に渡す。ここで、関連テキスト要素意味推定部134により導出された確信度を推定確率Pbと表記する。このPbは、対象要素毎に導出されるため、そのインデックスを併記する。即ち、ある対象要素nについて関連テキスト要素意味推定部134により導出された推定確率を、Pbnと表記する。
要素意味推定部135は、属性要素意味推定部123より渡される推定確率Panと関連テキスト要素意味推定部134より渡される推定確率Pbnとから、その対象要素の最終的な推定確率Pnを導出する。推定確率Pnの算出方法は特に問わない。一例として、下記の式2に示すように、係数βによる重み付けにより算出する方法がある。
Pn =βPan + (1-β)Pbn (0<=β<=1)・・・(式2)
要素意味推定部135は、導出した推定確率Pnがα(0以上1以下)以上であれば、テキスト要素バッファ部126もしくはボタン要素イベント付加部136のいずれかに、対象要素を渡す(図9のT203、T204)。要素意味推定部135は、対象要素がテキストボックス要素であればテキスト要素バッファ部126に(T110)、対象要素がボタン要素であればボタン要素イベント付加部136に、渡す(T112)。
続けて、図11を用いて、ボタン要素イベント付加部136の動作を説明する。ボタン要素イベント付加部136は、図3で述べたステップT120〜T123を実施し、ステップT123で導出する関連度が所定値W以上であれば(T230:YES)、ステップT125を実施する。
実施例1では、ステップT123において、同一form内のボタンに対して構造的関連性があると判定する、関連度導出方法を例示した。しかし、本実施例は、formの一要素としてのsubmitボタン(<input type=”submit”>)を有していない。さらに一般的に、type属性として”submit”または”button”を持つ、input要素もしくはbutton要素で構成されていないボタンが使用されている場合、関連度が”0”となる。そこで、本実施例では、上記問題に対応すべく、ステップT231〜T238を用意している。
ボタン要素イベント付加部136は、関連度が所定値W未満であると判定した場合(T230:NO)、テキスト要素バッファ部126により一時メモリ127に保存されるテキストボックス要素集合から、ステップT133〜T136で説明した方法を用いて、Webアプリケーションの種別を判定する(T231)。
ボタン要素イベント付加部136は、ステップT113にてバッファされているボタン要素集合に関する全ての文字列を取得する(T232)。ボタン要素イベント付加部136は、ループ変数iを初期化し(T233)、ステップT113でバッファされているボタン要素集合全てに対して、Webアプリケーション関連度を導出する(T235)。
バッファされている各ボタン要素に対してWebアプリケーション関連度を導出する方法は特に限定しない。一例として、ステップT109で述べたと同等に、ステップT232で取得した文字列をキーに意味DB124を参照し、その文字列に対応する”意味”および”確信度”を取得し、その確信度をWebアプリケーション関連度として用いることができる。
図5に示す意味DB124を例に挙げて説明する。ボタン要素から得た文字列が”send”であれば、Webアプリケーション関連度は”1”となる。ボタン要素から得た文字列が”quxsend”であれば、Webアプリケーション関連度は”0.5”となる。ボタン要素から得た文字列に対応するキーが、意味DB124に存在しない場合、Webアプリケーション関連度は”0”となる。
ボタン要素イベント付加部136は、ステップT235を、ステップT113にてバッファされているボタン要素集合の全てに対して実施するために、ループ変数iをインクリメントし(T236)、ステップT234に戻る。
ステップT113にてバッファされているボタン要素集合全てに関して、Webアプリケーション関連度を導出した場合(T234:YES)、ボタン要素イベント付加部136は、最も高いWebアプリケーション関連度を有するボタン要素を、確定ボタン要素の候補とする。ボタン要素イベント付加部136は、確定ボタン要素候補の確信度が所定値γ(0≦γ≦1)以上であれば、その候補を確定ボタン要素とする(T237)。
ボタン要素イベント付加部136は、確定ボタン要素が決定していれば(T238:YES)、ステップT125を実施する。確定ボタン要素が決まっていない場合(T238:NO)、ステップT125に移る。
なお、操作ログの出力方法は、実施例1と同様である。操作ログ生成の際に、式2に示す係数βの推奨値を、ユーザに提案してもよい。例えば係数βを0と設定している場合において、その結果、推定確率Pan=1、Pbn=0.2等になった場合は、係数βの値を上げるべきである。
このように構成される本実施例も実施例1と同様の効果を奏する。さらに、本実施例では、汎用的な属性を持つ要素(div要素など)の利用目的もしくは意味を推定することができる。
本実施例では、低負荷に、スキーマまたはDTD(Document Type Definition)などの意味推定に利用できるメタデータを持たない要素で構成されたHTMLで記載されたWebアプリケーションについても、ユーザ操作ログを取得することができる。
本実施例では、標準規格に定められているテキストボックス要素およびボタン要素を利用せず、スタイルシートなどのデザインを工夫することでユーザにテキストボックスおよびボタンを認識させるWebアプリケーションに対応できる。本実施例では、このような表現の自由度の高いWebアプリケーションに対応しており、テキストボックスまたはボタンとしてユーザに見せかける要素から、その目的もしくは意味を推定できる。そして、抽出したテキストボックス要素集合と抽出したボタン要素との関連性を検出できる。
さらに、本実施例では、ユーザにボタンと認識させる要素と、テキストボックス要素集合との関連性を導出し、複数の要素及びその意味からWebアプリケーションの主目的を推測できる。そして、本実施例では、ユーザがテキストボックス要素に入力した文字列を適切なタイミングで取得でき、最終的に、Webアプリケーション上のユーザの操作のログを取得することができる。
図12〜図14を参照して、第3実施例を説明する。Webアプリケーションとしては、例えば、Web上でメールを作成し送受信するためのWebメールアプリケーション、Web上でドキュメントを作成し保存等するためのWebドキュメント作成アプリケーションなどがある。
それらのWebアプリケーションの中には、ユーザが入力した文字列を自動的にWebアプリケーション提供サーバに送信してバックアップするアプリケーションがある。例えば、その種のWebアプリケーションは、ユーザが文字列を入力したタイミングで、もしくは定期的に、ユーザの入力した文字列を取得して、サーバに送信する。そこで本実施例では、ユーザの入力した文字列を自動的にサーバに送信するWebアプリケーションについての操作ログを取得する。
実施例1では、ユーザが送信実行ボタンを選択したタイミングで、ユーザの入力した文字列をWebアプリケーション提供サーバに送信する場合を例に挙げて説明したが、本実施例では、送信実行ボタンの操作とは別に、所定タイミングで自動的に、ユーザが入力した文字列をWebアプリケーション提供サーバに送信する場合を想定する。
図12は、本実施例に係るWebアプリケーション解析システムの構成図である。Webアプリケーション基盤300は、データ通信制御部310と、Webアプリケーション通信解析部311とを備える。
データ通信制御部310は、Webアプリケーション基盤300における通信制御を担当するモジュールである。データ通信制御部310は、Webアプリケーションのリソース読み込み、Webアプリケーション実行時の、リクエスト処理およびレスポンス受信などを制御する。
Webアプリケーション通信解析部311は、Webアプリケーションの通信を監視する。Webアプリケーション通信解析部311の通信監視方法、つまり、Webアプリケーション通信解析部311の実装箇所は特に問わない。Webアプリケーション通信解析部311の通信監視方法の例を以下に挙げる。しかし、本発明は、それらの例に限定されない。
第一の通信監視方法として、図12に示すように、Webアプリケーション基盤300と同一のメモリ空間内に侵入する方法がある。一般に、グローバルフックと呼ばれる方法などを用いて、フック対象のアプリケーションが利用するAPIをフックする。これにより、侵入モジュールに制御を遷移させることができる。
図12の例では、Webアプリケーション基盤300内にWebアプリケーション通信解析部311を侵入させ、データ通信制御部310が利用する通信ライブラリAPIをWebアプリケーション通信解析部311が用意する疑似APIに変更する。これにより、Webアプリケーション通信解析部311は、データ通信制御部310が通信しようとするデータを観測することができる。本実施例では、この方法を採用している。
第二の通信監視方法として、通信ライブラリが利用するAPIをフックする方法が挙げられる。但し、通信ライブラリが、例えばTCP/IPなどのように、HTTPよりも下位の通信を制御するライブラリの場合、HTTPS(Hypertext Transfer
Protocol over Secure Socket Layer)を用いた通信を観測することは難しい。HTTPSとは、SSL(Secure Socket Layer)を利用した通信であり、Webアプリケーション基盤300がHTTPSを用いて通信すると、その通信内容を観測するのは難しい。
一般に、HTTPSなどのHTTPレイヤで暗号化されたデータを、それ以下のレイヤで観測する場合を説明する。この場合、WebアプリケーションとWebアプリケーション提供サーバとの間の暗号通信路を、Webアプリケーション通信解析モジュール(Webアプリケーション通信解析部311)の前後で分割する。即ち、Webアプリケーションとサーバとの間の暗号通信路を、WebアプリケーションとWebアプリケーション通信解析モジュールとの間と、Webアプリケーション通信解析モジュールとWebアプリケーション提供サーバとの間とに、分割する。
そして、例えば、HTTPSにより暗号化されたデータをWebアプリケーションがWebアプリケーション提供サーバに送信する場合に、Webアプリケーション通信解析モジュールは、WebアプリケーションとWebアプリケーション通信解析モジュールとの間の通信路用の暗号鍵を用いて暗号化データを復号し、平文データを獲得する。
さらに、何かしらの解析に必要な処理を実施して、Webアプリケーション通信解析モジュールとWebアプリケーション提供サーバとの間の通信路用の暗号鍵を用いて、平文データを暗号化する必要がある。
第三の通信監視方法として、Webアプリケーション通信監視モジュールをプロキシソフトウェアとして実装する方法がある。この方法は、第二の方法と同様に、SSLへの対応を行う必要がある。
第四の方法として、Webアプリケーション通信監視モジュールを、物理的プロキシサーバまたは物理的ゲートウェイとして実装する方法がある。この方法も、第二の方法および第三の方法と同様に、SSLへの対応が必要である。
Webアプリケーション通信解析部311は、データ取得部320、マルチパート抽出部321、ヘッダ解析部322、属性要素意味推定部123、意味DB124、テキストバッファ部323、一時メモリ127、操作ログ生成部129、ログテンプレート130を備えて構成されている。
図14を参照して、Webアプリケーション通信解析部311の動作を説明する。図13に、解析対象データの例を示す。図13は、説明を容易にするために用意されたものであり、本実施例の解析対象データは図13に示すものに限定されない。
データ通信制御部310は、Webアプリケーション基盤300の上位モジュールなどから、マルチパートデータを受信する(S100)。その後、データ通信制御部310は、さらに下位のライブラリを呼ぶなどして、Webアプリケーション通信解析部311の疑似APIを呼び出す(S101)。その結果、データ取得部320は、データ通信制御部310が通信しようとするデータを受信できる。なお、本実施例のマルチパートデータとは、複数パートから構成されるデータであり、各パートのデータの集合体である。例えば、Webアプリケーションが電子メールアプリケーションの場合、宛先パート、件名パート、本文パートなどのように複数パートのデータを含むマルチパートデータを、そのWebアプリケーションを提供するためのサーバに送信する。
マルチパート抽出部321は、マルチパートデータをパート毎に分割し、各パートのデータを抽出する(S102)。
ヘッダ解析部322は、ステップS102にて抽出された複数パートの中から1つのパートを処理対象パートとして選択し、処理対象パートからヘッダ情報を取得し、さらに、そのヘッダ情報から属性値を取得する(S103)。図13の場合、ヘッダ解析部322は、nameヘッダの値、具体的には”to”および”cc”などの値を取得する。
属性要素意味推定部123は、図2のステップT108,T109で述べたと同様の処理を行う(S104)。
テキストバッファ部323は、処理対象パート内のボディデータを抽出し、T111と同様の処理を行う(S105)。
Webアプリケーション通信解析部311は、ステップS102からS105までの処理を、全てのパートデータに関して繰り返し実施する。
操作ログ生成部129は、図4のステップT136〜T138で述べた処理と同様の処理を行い、操作ログを生成し(S106)、生成した操作ログを操作ログ受信部101に送信する(S107)。
Webアプリケーション通信解析部311は、疑似APIの対象である本物のAPIを呼び出し、最終的に、制御をデータ通信制御部310に返す(S108)。
このように構成される本実施例も、Webアプリケーションに対するユーザ操作を監視して、操作ログを取得し保存することができる。さらに、本実施例では、WebアプリケーションとWebアプリケーション提供サーバとの通信を監視するため、Webアプリケーションからサーバに向けて送信するデータから、Webアプリケーション上のユーザ操作のログを取得することができる。従って、ユーザの入力した文字列(データ)をWebアプリケーションが自動的に取得してサーバに送信する場合でも、操作ログを取得できる。
図15および図16を参照して第4実施例を説明する。本実施例も、前記実施例3と同様に、ユーザが入力した文字列を自動的にWebアプリケーション提供サーバに送信するケースを想定する。
図15は、本実施例に係るWebアプリケーション解析システムの構成例を示す。以下のブロック図では、ブロックの名称を省略し、符号のみを示す場合がある。
Webアプリケーション基盤400は、イベント発生部110と、Webアプリケーション解析部411と、データ通信制御部310と、Webアプリケーション通信解析部412とを備える。
本実施例におけるWebアプリケーション解析部411は、実施例2で述べたWebアプリケーション解析部211に類似する構成と、実施例3で述べたWebアプリケーション通信解析部311に類似する構成とを備える。
即ち、Webアプリケーション解析部411は、イベント取得部120、要素抽出部121、要素解析部122、属性要素意味推定部123、意味DB124、テキスト要素バッファ部126、一時メモリ127、テキスト抽出部128、スタイル解析部131、隣接テキスト抽出部132、関連度導出部133、関連テキスト要素意味推定部134、要素意味推定部135、ボタン要素イベント付加部136を備える。それら機能ブロックの動作も、図9〜図11で述べた動作と同様である。
なお、本実施例のWebアプリケーション解析部411は、実施例2のWebアプリケーション解析部211に類似する構成に代えて、実施例1のWebアプリケーション解析部111と類似の構成(イベント取得部120〜一時メモリ127までを持つ構成)を備えてもよい。つまり、本実施例は、実施例2と実施例3の結合として記載することもできるし、実施例1と実施例3の結合として記載することもできる。
Webアプリケーション通信解析部412は、「通信取得部」の例であるデータ取得部320、マルチパート抽出部321、パートテキスト抽出部420、データ照合部421、操作ログ生成部129、ログテンプレート130を備える。データ取得部320は「通信取得部」の例である。パートテキスト抽出部420は、マルチパート抽出部321と共に「通信文字列抽出部」の例を構成する。
Webアプリケーション通信解析部412の通信監視方法、つまり、Webアプリケーション通信解析部412の実装箇所は、特に問わない。本実施例では、実施例3と同様、説明を容易にするために、Webアプリケーション基盤400と同一のメモリ空間内に侵入する方法を用いる。これ以外の実装箇所に、Webアプリケーション通信解析部412を設けてもよい。
図16を参照して、本実施例におけるWebアプリケーション通信解析部412の動作を説明する。解析対象データの例として図13を用いる。図13は、説明を容易にするために用意されており、本実施例の解析対象データは、図13の例に限定されない。
Webアプリケーション通信解析部412は、図14で述べたステップS100〜S102を実施する。その後、データ取得部320は、データを取得したことをイベント情報として、テキスト抽出部128に通知する。
テキスト抽出部128は、データ取得部320から通知されるイベント情報を契機に、一時メモリ127に格納されている全てのテキストボックス要素から、ユーザが入力したデータを抽出する。
一方、パートテキスト抽出部420は、各パートのボディテキストを抽出する(S105)。図13の例では、name=”to”のパートからは、”example@example.com”のテキストを抽出する。
データ照合部421は、ステップS105にて抽出されたテキストと、テキスト抽出部128により抽出されたユーザ入力テキストとを比較照合する(S110)。ステップS110での照合の結果、パートから抽出されたデータとユーザ入力テキストとが一致する場合、ステップS105にて抽出されたテキストがどのテキストボックスに入力されたデータかを判別することができる。その結果、ステップS105にて抽出されたテキストの意味を推定することができる。
なお、照合するデータは、パート内の全てのテキストでもよいし、一部のテキストでもよい。また、テキストの照合方法は既知の方法を用いればよい。本実施例ではテキスト照合方法を特に問わない。
ステップS102、S105、S110を全てのパートについて繰り返すことで、データ通信制御部310により通信されるデータに含まれているテキストと、そのテキストの意味とを判定できる。
判定されたテキストとその意味との組で構成されるデータを使って、操作ログ生成部129は、操作ログを生成し(S106)、この操作ログを操作ログ受信部101に送信する(S107)。最後に、制御はデータ通信制御部310に返される(S108)。
このように構成される本実施例も、Webアプリケーションに対するユーザ操作のログを取得することができる。本実施例は、実施例2および実施例3で述べた効果を奏する。または、上述の通り、本実施例は、Webアプリケーション解析部411として実施例1のWebアプリケーション解析部111に類似する構成を用いることで、実施例1および実施例3で述べた効果を奏する。
図17および図18を参照して第5実施例を説明する。本実施例では、ユーザデータが複数のデータに分割されて送信される場合を想定する。
具体的には、図19に示すWebアプリケーションにおいて、ユーザが電子メールにファイルを添付するための操作を行うと、ユーザが電子メールの送信を実行するボタンを選択するよりも前に、添付ファイルがWebアプリケーション提供サーバに送信される。本実施例は、このようなケースに対応する。
つまり、一部のデータがユーザによる送信実行の選択とは別のタイミングに送信され、他のデータがユーザによる送信実行選択のタイミングで送信される場合である。この場合、ユーザは一連の動作(Webアプリケーション上で、添付ファイル付きのメールを送信するという動作)を実行している。従って、出力すべきユーザ操作ログは1つにまとまっているべきである。添付ファイルの選択に関するログと、添付ファイル付き電子メールの送信に関するログとに分かれるべきではない。
図17は、本実施例に係るWebアプリケーション解析システムの構成例を示す。Webアプリケーション基盤500は、イベント発生部110と、Webアプリケーション解析部511と、データ通信制御部310と、Webアプリケーション通信解析部512とを備えて構成される。
本実施例におけるWebアプリケーション解析部511は、イベント取得部120、要素抽出部121、要素解析部122、属性要素意味推定部123、意味DB124、テキスト要素バッファ部126、一時メモリ127、テキスト抽出部128、操作ログ生成部129、ログテンプレート130、スタイル解析部131、隣接テキスト抽出部132、関連度導出部133、関連テキスト要素意味推定部134、要素意味推定部135、ボタン要素イベント付加部136とを有する。それら機能ブロック120〜136の動作内容は、図9〜図11で述べた通りである。
本実施例のWebアプリケーション解析部511は、実施例2で述べたWebアプリケーション解析部211と同様の構成を備えている。これに代えて、Webアプリケーション解析部511を、実施例1で述べたWebアプリケーション解析部111と類似構成(イベント取得部120〜一時メモリ127までの構成)を有するように構成してもよい。
Webアプリケーション通信解析部512は、データ取得部320、マルチパート抽出部321、パートテキスト解析部520、送信データバッファ部521で構成される。Webアプリケーション通信解析部512の通信監視方法、つまり、Webアプリケーション通信解析部512の実装箇所は、特に問わない。本実施例では、実施例3と同様に、説明を容易にするために、Webアプリケーション基盤500と同一のメモリ空間内に侵入する方法を用いるが、この実装箇所に限定されない。パートテキスト解析部520は、マルチパート抽出部321と共に「ファイルデータ抽出部」の例を構成する。
図18を用いて、本実施例におけるWebアプリケーション解析部511と、Webアプリケーション通信解析部512の動作を説明する。なお、解析対象データの例として、図13を用いる。なお、図13は、説明を容易にするために用意されるものであり、本実施例の解析対象データを限定するものではない。
Webアプリケーション解析部511は、イベント発生部110からのイベントを受信し、図9〜図11に示す処理を実施する(S130)。
データ通信制御部310は、上位からマルチパートデータを受信し(S100)、下位のAPIを呼ぶ。それにより、Webアプリケーション通信解析部512に制御が遷移する(S101)。
Webアプリケーション通信解析部512は、マルチパートデータから各パートのデータを抽出する(S102)。続いて、パートテキスト解析部520は、各パートのヘッダを解析し、そのパートのコンテンツがファイルであれば、そのファイルに関する情報を送信データバッファ部521に保持させる(S120)。
パートテキスト解析部520が送信データバッファ部521に送付する「ファイルに関する情報」の内容は、特に問わない。ファイルに関する情報には、例えば、ファイルそのもの、ファイルのハッシュ値、ファイル名などを含めてもよい。また、パートテキスト解析部520によるパートヘッダの解析内容および解析方法は、特に問わない。パートテキスト解析部520は、例えば、解析対象のパートのヘッダに”filename”属性が付与されているか、などを解析する。
Webアプリケーション解析部511は、イベント発生部110からのイベントを受けて、図4で述べたステップT130〜T136を実施する(S131)。
続けて、操作ログ生成部129は、テキスト抽出部128から得られるユーザ入力文字列情報と、送信データバッファ部521から得られるファイル情報とに基づいて操作ログを生成する(S106)。操作ログ生成部129は、操作ログを操作ログ受信部101に送信する(S107)。
操作ログ生成部129に入力されるデータがテキスト抽出部128から得られるユーザ入力文字列情報だけの場合、つまり、送信データバッファ部521にファイル情報が格納されていない場合、実施例1や実施例2と同様に処理すれば良い。
操作ログ生成部129に入力されるデータが送信データバッファ部521から得られるファイル情報だけの場合、つまり、Webアプリケーションが単なるファイルアップローダのような種類のアプリケーションである場合、「ファイルをアップロードした」などの操作ログが取得されることになる。
なお、Webアプリケーションがファイルアップローダのようなアプリケーションである場合、イベント取得部120が獲得するイベントは、Webアプリケーションにおける現在のセッションもしくはページが終了したタイミング、もしくは終了しようとしているタイミングで、通知されるイベントである。
このように構成される本実施例も、Webアプリケーションに対するユーザ操作のログを取得することができる。さらに、本実施例では、電子メールにファイルを添付して送信する等のように、ユーザのWebアプリケーションに対する一連の操作の中で、ユーザの入力するデータが複数に分割され場合でも、一つの操作ログを取得できる。つまり、本実施例では、分割されたデータごとにそれぞれ操作ログを作成するのではなく、一連の動作について一つの操作ログを作成する。従って、システム管理者は、Webアプリケーションに対するユーザ操作を監視しやすくなり、使い勝手が向上する。
なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、実施例1と実施例3を結合させた構成、実施例1と実施例5を結合させた構成、実施例4と実施例5を結合させた構成、実施例1と実施例3と実施例5を結合させた構成も、本発明の範囲に含まれる。
さらに、本発明は、例えば、以下のようにコンピュータプログラムの発明として表現することもできる。
「表現1.
コンピュータを、サーバ上で稼働するウェブアプリケーションに対するユーザ操作を検出するためのユーザ操作検出システムとして機能させるためのコンピュータプログラムであって、
前記コンピュータに、
前記ウェブアプリケーションが提供するアプリケーション画面から、ユーザが文字列を入力するための文字列入力要素と、前記ウェブアプリケーションに対して所定の動作の実行を指示するための実行指示要素とをそれぞれ抽出する第1要素抽出部と、
抽出された前記文字列入力要素および前記実行指示要素の、前記ウェブアプリケーションにおける役割を推定する役割推定部と、
前記文字列入力要素と前記実行指示要素とを関連付ける要素関連付け部と、
前記実行指示要素に関連付けられた前記文字列入力要素に入力される入力文字列を抽出する文字列抽出部と、
ウェブアプリケーションの種類に応じて用意されるひな形データであって、前記ウェブアプリケーションに対するユーザ操作を記録するためのひな形データを記憶するひな形記憶部と、
前記文字列抽出部により抽出された前記入力文字列に対応するひな形データを前記ひな形記憶部から取得し、取得した前記ひな形データと前記入力文字列とに基づいて、ユーザ操作を記録したユーザ操作記録データを生成するユーザ操作記録データ生成部と、
をそれぞれ実現させるコンピュータプログラム。
表現2.
前記アプリケーション画面は、複数の要素を木構造に配置した木構造データから形成されており、
前記要素関連付け部は、前記木構造データにおける構造上の関係に基づいて、前記文字列入力要素と前記実行指示要素とを関連付ける、
表現1に記載のコンピュータプログラム。
表現3.
前記役割推定部は、推定対象の要素の属性値に基づいて前記推定対象の要素の役割を推定する第1役割推定部を含んでおり、
前記第1役割推定部は、
前記文字列入力要素の属性値に基づいて前記文字列入力要素の役割を推定し、
前記実行指示要素の属性値に基づいて前記実行指示要素の役割を推定する、
表現1または2のいずれかに記載のコンピュータプログラム。
表現4.
前記第1役割推定部は、キーワードと役割と確信度とを対応づけて管理する役割データベースを使用することができ、
前記第1役割推定部は、
前記文字列入力要素の前記属性値に含まれるキーワードと同一のキーワードに対応づけられている役割および確信度を前記役割データベースから取得することで、前記文字列入力要素の役割を推定し、
前記実行指示要素の前記属性値に含まれるキーワードと同一のキーワードに対応づけられている役割および確信度を前記役割データベースから取得することで、前記実行指示要素の役割を推定する、
表現3に記載のコンピュータプログラム。
表現5.
前記ユーザ操作記録データ生成部は、前記入力文字列と前記ひな形記憶部に記憶されている各ひな形データとの適合する度合いを示す適合度を算出し、最も適合度の高いひな形データを前記入力文字列に対応するひな形データであるとして選択する、
表現1〜4のいずれか1項に記載のコンピュータプログラム。
表現6.
前記ユーザ操作記録データ生成部は、選択された前記ひな形データと前記入力文字列との適合度を、前記ユーザ操作記録データに関連付けて出力する、
表現5に記載のコンピュータプログラム。
表現7.
予め設定される第1タイミングが到来すると、前記第1要素抽出部と前記役割推定部および前記要素関連付け部は作動し、
予め設定される第2タイミングが到来すると、前記文字列抽出部および前記ユーザ操作記録データ生成部が作動する、
表現1〜6のいずれか1項に記載のコンピュータプログラム。
表現8.
前記木構造データには、前記木構造データを構成する前記複数の要素のデザインを規定するデザインデータが関連付けられており、
前記デザインデータに基づいて、前記文字列入力要素と前記実行指示要素とをそれぞれ抽出する第2要素抽出部をさらに備えており、
前記役割推定部は、推定対象の要素に関連する所定の関連要素に基づいて前記推定対象の要素の役割を推定する第2役割推定部を、さらに含んでおり、
前記第2役割推定部は、
前記第2要素抽出部により抽出される前記文字列入力要素と前記実行指示要素とを、推定対象の要素として扱い、
前記デザインデータに基づいて、前記木構造データから前記推定対象の要素に関連する前記所定の関連要素を全て取得し、
取得された前記所定の関連要素のそれぞれについて、前記推定対象の要素との関連の度合いを示す所定の関連度を取得し、
前記所定の関連度に基づいて、前記所定の関連要素の中から一つを選択し、
選択された前記所定の関連要素の属性値に基づいて、前記推定対象の前記文字列入力要素および前記実行指示要素の役割をそれぞれ推定する、
表現1〜7のいずれか1項に記載のコンピュータプログラム。
表現9.
前記所定の関連要素は、前記推定対象の要素から所定の距離内に存在するテキスト要素である、
表現8に記載のコンピュータプログラム。
表現10.
前記所定の関連度は、距離に基づく関連度、位置関係に基づく関連度、構造関係に基づく関連度のうち、いずれか少なくとも一つである、
表現8または9のいずれか1項に記載のコンピュータプログラム。
表現11.
前記第1役割推定部による第1推定結果と前記第2役割推定部による第2推定結果とに基づいて、前記推定対象の要素の役割が決定される、
表現8〜10のいずれか1項に記載のコンピュータプログラム。
表現12.
前記クライアント端末と前記サーバとの通信内容を取得する通信取得部と、
前記通信内容から文字列を抽出する通信文字列抽出部と、
をさらに備え、
前記ユーザ操作記録データ生成部は、
前記文字列抽出部により抽出された前記入力文字列と、前記通信文字列抽出部により抽出された通信文字列とを照合することで、前記通信文字列と前記文字列入力要素との対応関係を特定し、
前記入力文字列に対応する前記ひな形データと前記通信文字列とに基づいて、前記ユーザ操作記録データを生成する、
表現1〜11のいずれか1項に記載のコンピュータプログラム。
表現13.
前記クライアント端末から前記サーバへの通信内容を取得する通信取得部と、
前記通信内容からファイルデータを抽出するファイルデータ抽出部と、
さらに備え、
前記ユーザ操作記録データ生成部は、抽出された前記ファイルデータに関する情報を含めて、前記ユーザ操作記録データを生成する、
表現1〜12のいずれか1項に記載のコンピュータプログラム。」
さらに、本発明は以下のように表現してもよい。
「表現1
木構造データを構成できる構造化文書を入力し、前記木構造データから、ユーザが文字列を入力可能な要素と、ユーザが選択可能なボタン要素を要素名と属性により抽出する要素名要素抽出手段と、
木構造データを構成できる構造化文書を入力し、入力された前記木構造データから、ユーザが文字列を入力可能な要素と、ユーザが選択可能なボタン要素を、当該要素のスタイルもしくはデザインに着目し抽出するスタイル要素抽出手段と、
抽出された要素の全ての属性から得られる属性値から、当該要素の利用目的もしくは意味を導出する属性要素意味推定手段と、
前記属性要素意味推定手段から導出される前記属性推定意味Panと、前記関連テキスト要素意味推定手段から導出される前記隣接テキスト推定意味Pbnから要素推定意味Pnを、
Pn = βPan + (1-β)Pbn (0<=β<=1)の式にて導出する要素意味推定手段と、
抽出された要素に隣接するテキストから、当該要素の利用目的もしくは意味を導出する関連テキスト要素意味推定手段と、
抽出されたユーザが文字列を入力可能な要素の集合と、ユーザが選択可能なボタン要素を関連付ける要素関連付け手段と、
Webアプリケーション毎に用意される、穴埋め可能な定型文書もしくは、テキスト要素の挿入が可能な構造化文書を提供し、穴埋め可能な定型文書の場合は穴、テキスト要素の挿入が可能な構造化文書の場合はテキスト要素に対応すべき意味データが属性として添付されている変換データ提供手段と、
抽出されたユーザが文字列を入力可能な要素の集合から得られるそれぞれの意味データ集合と変換データ提供手段にて提供される穴埋め可能な定型文書もしくは、テキスト要素の挿入が可能な構造化文書の意味データ集合を照合し、適合度の高い穴埋め可能な定型文書もしくは、テキスト要素の挿入が可能な構造化文書を選択する変換文書提供手段と、
ユーザが入力した文字列を抽出し、文書変換手段により得られる適合度の高い穴埋め可能な定型文書もしくは、テキスト要素の挿入が可能な構造化文書に対して、穴埋め可能な定型文書の場合は穴、テキスト要素の挿入が可能な構造化文書の場合はテキスト要素に、意味データが適合し対応する、抽出したユーザが入力した文字列を割り当て、文書を変換する文書変換手段と、
を具備することを特徴とするユーザ操作検出システム。
表現2.
表現1のユーザ検知システムにおいて、
前記入力木構造データから、ユーザが文字列を入力可能な要素と、ユーザが選択可能なボタン要素を、
当該要素の要素名、もしくは当該要素の要素名と当該要素の属性の組、もしくは当該要素のスタイルに記述される項目において、文字列入力を促すデザイン、ボタンを促すデザインが指定されるスタイル情報を使って、抽出する
ユーザ操作検出システム。」
100 Webアプリケーション基盤
101 操作ログ受信部
110 イベント発生部
111 Webアプリケーション解析部
120 イベント取得部
121 要素抽出部
122 要素解析部
123 属性要素意味推定部
124 意味DB
125 ボタン要素イベント付加部
126 テキスト要素バッファ部
127 一時メモリ
128 テキスト抽出部
129 操作ログ生成部
130 ログテンプレート
131 スタイル解析部
132 隣接テキスト抽出部
133 関連度導出部
134 関連テキスト要素意味推定部
135 要素意味推定部
136 ボタン要素イベント付加部
200 Webアプリケーション基盤
211 Webアプリケーション解析部
300 Webアプリケーション基盤
310 データ通信制御部
311 Webアプリケーション通信解析部
320 データ受信部
321 マルチパート抽出部
322 ヘッダ解析部
323 テキストバッファ部
400 Webアプリケーション基盤
411 Webアプリケーション解析部
412 Webアプリケーション通信解析部
420 パートテキスト抽出部
421 データ照合部
500 Webアプリケーション基盤
511 Webアプリケーション解析部
512 Webアプリケーション通信解析部
520 パートテキスト解析部
521 送信データバッファ部

Claims (15)

  1. サーバ上で稼働するウェブアプリケーションに対するクライアント端末を用いたユーザ操作を検出するためのユーザ操作検出システムであって、
    前記ウェブアプリケーションが提供するアプリケーション画面から、ユーザが文字列を入力するための文字列入力要素と、前記ウェブアプリケーションに対して所定の動作の実行を指示するための実行指示要素とをそれぞれ抽出する第1要素抽出部と、
    抽出された前記文字列入力要素および前記実行指示要素の、前記ウェブアプリケーションにおける役割を推定する役割推定部と、
    前記文字列入力要素と前記実行指示要素とを関連付ける要素関連付け部と、
    前記実行指示要素に関連付けられた前記文字列入力要素に入力される入力文字列を抽出する文字列抽出部と、
    ウェブアプリケーションの種類に応じて用意されるひな形データであって、前記ウェブアプリケーションに対するユーザ操作を記録するためのひな形データを記憶するひな形記憶部と、
    前記文字列抽出部により抽出された前記入力文字列に対応するひな形データを前記ひな形記憶部から取得し、取得した前記ひな形データと前記入力文字列とに基づいて、ユーザ操作を記録したユーザ操作記録データを生成するユーザ操作記録データ生成部と、
    を備えるユーザ操作検出システム。
  2. 前記アプリケーション画面は、複数の要素を木構造に配置した木構造データから形成されており、
    前記要素関連付け部は、前記木構造データにおける構造上の関係に基づいて、前記文字列入力要素と前記実行指示要素とを関連付ける、
    請求項1に記載のユーザ操作検出システム。
  3. 前記役割推定部は、推定対象の要素の属性値に基づいて前記推定対象の要素の役割を推定する第1役割推定部を含んでおり、
    前記第1役割推定部は、
    前記文字列入力要素の属性値に基づいて前記文字列入力要素の役割を推定し、
    前記実行指示要素の属性値に基づいて前記実行指示要素の役割を推定する、
    請求項2に記載のユーザ操作検出システム。
  4. 前記第1役割推定部は、キーワードと役割と確信度とを対応づけて管理する役割データベースを使用することができ、
    前記第1役割推定部は、
    前記文字列入力要素の前記属性値に含まれるキーワードと同一のキーワードに対応づけられている役割および確信度を前記役割データベースから取得することで、前記文字列入力要素の役割を推定し、
    前記実行指示要素の前記属性値に含まれるキーワードと同一のキーワードに対応づけられている役割および確信度を前記役割データベースから取得することで、前記実行指示要素の役割を推定する、
    請求項3に記載のユーザ操作検出システム。
  5. 前記ユーザ操作記録データ生成部は、前記入力文字列と前記ひな形記憶部に記憶されている各ひな形データとの適合する度合いを示す適合度を算出し、最も適合度の高いひな形データを前記入力文字列に対応するひな形データであるとして選択する、
    請求項4に記載のユーザ操作検出システム。
  6. 前記ユーザ操作記録データ生成部は、選択された前記ひな形データと前記入力文字列との適合度を、前記ユーザ操作記録データに関連付けて出力する、
    請求項5に記載のユーザ操作検出システム。
  7. 予め設定される第1タイミングが到来すると、前記第1要素抽出部と前記役割推定部および前記要素関連付け部は作動し、
    予め設定される第2タイミングが到来すると、前記文字列抽出部および前記ユーザ操作記録データ生成部が作動する、
    請求項6に記載のユーザ操作検出システム。
  8. 前記木構造データには、前記木構造データを構成する前記複数の要素のデザインを規定するデザインデータが関連付けられており、
    前記デザインデータに基づいて、前記文字列入力要素と前記実行指示要素とをそれぞれ抽出する第2要素抽出部をさらに備えており、
    前記役割推定部は、推定対象の要素に関連する所定の関連要素に基づいて前記推定対象の要素の役割を推定する第2役割推定部を、さらに含んでおり、
    前記第2役割推定部は、
    前記第2要素抽出部により抽出される前記文字列入力要素と前記実行指示要素とを、推定対象の要素として扱い、
    前記デザインデータに基づいて、前記木構造データから前記推定対象の要素に関連する前記所定の関連要素を全て取得し、
    取得された前記所定の関連要素のそれぞれについて、前記推定対象の要素との関連の度合いを示す所定の関連度を取得し、
    前記所定の関連度に基づいて、前記所定の関連要素の中から一つを選択し、
    選択された前記所定の関連要素の属性値に基づいて、前記推定対象の前記文字列入力要素および前記実行指示要素の役割をそれぞれ推定する、
    請求項7に記載のユーザ操作検出システム。
  9. 前記所定の関連要素は、前記推定対象の要素から所定の距離内に存在するテキスト要素である、
    請求項8に記載のユーザ操作検出システム。
  10. 前記所定の関連度は、距離に基づく関連度、位置関係に基づく関連度、構造関係に基づく関連度のうち、いずれか少なくとも一つである、
    請求項9に記載のユーザ操作検出システム。
  11. 前記第1役割推定部による第1推定結果と前記第2役割推定部による第2推定結果とに基づいて、前記推定対象の要素の役割が決定される、
    請求項10に記載のユーザ操作検出システム。
  12. 前記クライアント端末と前記サーバとの通信内容を取得する通信取得部と、
    前記通信内容から文字列を抽出する通信文字列抽出部と、
    をさらに備え、
    前記ユーザ操作記録データ生成部は、
    前記文字列抽出部により抽出された前記入力文字列と、前記通信文字列抽出部により抽出された通信文字列とを照合することで、前記通信文字列と前記文字列入力要素との対応関係を特定し、
    前記入力文字列に対応する前記ひな形データと前記通信文字列とに基づいて、前記ユーザ操作記録データを生成する、
    請求項1に記載のユーザ操作検出システム。
  13. 前記クライアント端末から前記サーバへの通信内容を取得する通信取得部と、
    前記通信内容からファイルデータを抽出するファイルデータ抽出部と、
    さらに備え、
    前記ユーザ操作記録データ生成部は、抽出された前記ファイルデータに関する情報を含めて、前記ユーザ操作記録データを生成する、
    請求項1に記載のユーザ操作検出システム。
  14. 前記第1タイミングは、前記アプリケーション画面を構成するための前記木構造データの読込みが完了した場合であり、
    前記第2タイミングは、前記文字列入力要素に関連付けられた前記実行指示要素への操作が検出された場合である、
    請求項7に記載のユーザ操作検出システム。
  15. サーバ上で稼働するウェブアプリケーションに対するクライアント端末を用いたユーザ操作を、クライアント端末で検出するためのユーザ操作検出方法であって、
    前記クライアント端末は、所定のコンピュータプログラムを記憶するメモリと、前記メモリから前記所定のコンピュータプログラムを読み込んで実行するマイクロプロセッサと、前記サーバと通信するための通信インターフェース回路とを備えており、
    前記マイクロプロセッサが前記所定のコンピュータプログラムを実行することで、前記クライアント端末は、
    前記ウェブアプリケーションが提供するアプリケーション画面から、ユーザが文字列を入力するための文字列入力要素と、前記ウェブアプリケーションに対して所定の動作の実行を指示するための実行指示要素とをそれぞれ抽出する第1要素抽出ステップと、
    抽出された前記文字列入力要素および前記実行指示要素の、前記ウェブアプリケーションにおける役割を推定する役割推定ステップと、
    前記文字列入力要素と前記実行指示要素とを関連付ける要素関連付けステップと、
    前記実行指示要素に関連付けられた前記文字列入力要素に入力される入力文字列を抽出する文字列抽出ステップと、
    ウェブアプリケーションの種類に応じて用意されるひな形データであって、前記ウェブアプリケーションに対するユーザ操作を記録するためのひな形データを記憶するひな形記憶部から、前記文字列抽出ステップにより抽出された前記入力文字列に対応するひな形データを取得し、取得した前記ひな形データと前記入力文字列とに基づいて、ユーザ操作を記録したユーザ操作記録データを生成するユーザ操作記録データ生成ステップと、
    を実行する、
    ユーザ操作検出方法。
JP2014501940A 2012-03-02 2012-03-02 ユーザ操作検出システムおよびユーザ操作検出方法 Expired - Fee Related JP5764255B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/055458 WO2013128645A1 (ja) 2012-03-02 2012-03-02 ユーザ操作検出システムおよびユーザ操作検出方法

Publications (2)

Publication Number Publication Date
JPWO2013128645A1 true JPWO2013128645A1 (ja) 2015-07-30
JP5764255B2 JP5764255B2 (ja) 2015-08-19

Family

ID=49043550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014501940A Expired - Fee Related JP5764255B2 (ja) 2012-03-02 2012-03-02 ユーザ操作検出システムおよびユーザ操作検出方法

Country Status (3)

Country Link
US (1) US20130232424A1 (ja)
JP (1) JP5764255B2 (ja)
WO (1) WO2013128645A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10171400B2 (en) 2014-04-28 2019-01-01 International Business Machines Corporation Using organizational rank to facilitate electronic communication
JP2015212883A (ja) * 2014-05-02 2015-11-26 株式会社ランディード 情報提示システム、装置、方法、およびコンピュータプログラム
US11210362B2 (en) * 2014-05-31 2021-12-28 International Business Machines Corporation Script logging for markup language elements
EP3262531A1 (en) * 2015-02-24 2018-01-03 Entit Software LLC Element identifier generation
GB2565934B (en) 2016-04-27 2022-08-10 Coda Project Inc System, method, and apparatus for operating a unified document surface workspace
JP6721832B2 (ja) * 2016-08-24 2020-07-15 富士通株式会社 データ変換プログラム、データ変換装置及びデータ変換方法
CN107995977A (zh) * 2017-09-07 2018-05-04 深圳市云中飞网络科技有限公司 界面处理方法、装置、计算机存储介质及电子设备
CN108810268B (zh) * 2018-06-04 2020-11-03 珠海格力电器股份有限公司 操作记录的处理方法和装置
CN111767200B (zh) * 2020-06-23 2022-12-02 平安普惠企业管理有限公司 基于业务日志处理业务的方法、装置、计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009053740A (ja) * 2007-08-23 2009-03-12 Internatl Business Mach Corp <Ibm> 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム
JP2009129004A (ja) * 2007-11-20 2009-06-11 Fuji Xerox Co Ltd 文書操作履歴管理システム
JP2010026849A (ja) * 2008-07-22 2010-02-04 Hitachi Ltd 文書管理システム、文書管理プログラム及び文書管理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066037A1 (en) * 2002-04-10 2005-03-24 Yu Song Browser session mobility system for multi-platform applications
US7536636B2 (en) * 2004-04-26 2009-05-19 Kodak Graphic Communications Canada Company Systems and methods for comparing documents containing graphic elements
WO2006017493A2 (en) * 2004-08-02 2006-02-16 Justsystems Corporation Approach for creating a tag or attribute in a markup language document
US20070299713A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Capture of process knowledge for user activities
KR101652009B1 (ko) * 2009-03-17 2016-08-29 삼성전자주식회사 웹 텍스트의 영상화 장치 및 방법
US20110022945A1 (en) * 2009-07-24 2011-01-27 Nokia Corporation Method and apparatus of browsing modeling
US20110258538A1 (en) * 2010-03-31 2011-10-20 Heng Liu Capturing DOM Modifications Mediated by Decoupled Change Mechanism
JP5594001B2 (ja) * 2010-09-13 2014-09-24 セイコーエプソン株式会社 情報処理装置,情報処理方法及びそのプログラム
GB2488790A (en) * 2011-03-07 2012-09-12 Celebrus Technologies Ltd A method of controlling web page behaviour on a web enabled device
US8793593B2 (en) * 2011-09-21 2014-07-29 Facebook, Inc. Integrating structured objects and actions generated on external systems into a social networking system
KR102078570B1 (ko) * 2013-07-16 2020-02-19 삼성전자주식회사 휴대 단말기에서 사용자 행위 정보를 제공하는 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009053740A (ja) * 2007-08-23 2009-03-12 Internatl Business Mach Corp <Ibm> 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム
JP2009129004A (ja) * 2007-11-20 2009-06-11 Fuji Xerox Co Ltd 文書操作履歴管理システム
JP2010026849A (ja) * 2008-07-22 2010-02-04 Hitachi Ltd 文書管理システム、文書管理プログラム及び文書管理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6012020955; 太田賢、外4名: 'スマートフォン向けプライバシ強化型操作履歴ミドルウェアの設計と実装' 情報処理学会論文誌 論文誌ジャーナル [CD-ROM] 第53巻,第2号, 20120215, p.825-835, 一般社団法人 情報処理学会 *
JPN6012020957; 木本亮司、外1名: 'ブラウザ操作履歴に基づいたWebサイト改善ツール' 情報処理学会研究報告 2011 April [DVD-ROM] , 20110415, p.1-7, 一般社団法人 情報処理学会 *
JPN6012020958; 青木義則、外2名: 'Webブラウザ操作の記録・再生システム' 情報処理学会研究報告(99-DPS-95) 第99巻,第94号, 19991118, p.25-30, 社団法人 情報処理学会 *

Also Published As

Publication number Publication date
US20130232424A1 (en) 2013-09-05
WO2013128645A1 (ja) 2013-09-06
JP5764255B2 (ja) 2015-08-19

Similar Documents

Publication Publication Date Title
JP5764255B2 (ja) ユーザ操作検出システムおよびユーザ操作検出方法
US11595477B2 (en) Cloud storage methods and systems
US10706325B2 (en) Method and apparatus for selecting a network resource as a source of content for a recommendation system
US10430481B2 (en) Method and apparatus for generating a content recommendation in a recommendation system
US10817663B2 (en) Dynamic native content insertion
CN106528657A (zh) 浏览器跳转至应用程序的控制方法及装置
US9020947B2 (en) Web knowledge extraction for search task simplification
US7860971B2 (en) Anti-spam tool for browser
US9916364B2 (en) Personalization of news articles based on news sources
US20160328477A1 (en) System and method for displaying of most relevant vertical search results
CN101111836A (zh) 用于信息捕获及检索的方法及系统
CN104915413A (zh) 一种健康检测方法及系统
JP2020515944A (ja) インターネットコンテンツ内の要素の直接的なブラウザ内のマークアップのためのシステムおよび方法
US10558727B2 (en) System and method for operating a browsing application
WO2021057383A1 (zh) 日志查询方法、装置、设备及计算机可读存储介质
US10810256B1 (en) Per-user search strategies
JP2013109513A (ja) 情報表示制御装置、情報表示制御方法、及びプログラム
RU2669172C2 (ru) Способ и система мониторинга согласованности веб-сайта
JP6763433B2 (ja) 情報収集システム、情報収集方法、及び、プログラム
US20220067078A1 (en) Aggregation system, Response Summary Process, and Method of Use
US9355175B2 (en) Triggering answer boxes
JP5363561B2 (ja) コラボラティブクローリングによるリッチインターネットアプリケーションのためのアクセシビリティを向上させる方法及びそのコンピュータ・プログラム
Agrawal et al. A survey on content based crawling for deep and surface web
JP5954053B2 (ja) 検索支援システム、検索支援方法、およびコンピュータプログラム
WO2015056112A1 (en) A system and method for determining a search response to a research query

Legal Events

Date Code Title Description
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: 20150602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150612

R150 Certificate of patent or registration of utility model

Ref document number: 5764255

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees