(57)【要約】      （修正有）【課題】サーバとインタフェース接続するクライアント・アプリケーションにおけるユーザ対話パターンをモニタするための方法を提供する。【解決手段】分析サーバ１０６は、クライアント計算機１１０ａ〜ｃ上で実行されるエージェントから、クライアント・アプリケーションとのユーザ対話のシーケンス及びユーザ対話に応答して行われたクライアント・アプリケーションとサーバ１０２ａ、１０２ｂとの間のデータ・トラフィックのイベント、を含む分析データを受信する。分析サーバ１０６は、分析データからイベントをグルーピングし、分析データ内のユーザ識別子毎に、ユーザ識別子に対応付けられた形成済みグループの間のパターンを識別する。分析サーバ１０６は更に、識別済みパターンの識別子毎に、形成済みグループの中の識別子のノーマル状態を計算する。【選択図】図１
2015185166.tif 000002
【特許請求の範囲】
【請求項１】
サーバ（１０２ａ〜ｂ）とインタフェース接続し、かつ、クライアント計算機（１１０ａ〜ｃ）上でレンダリングされるクライアント・アプリケーションにおけるユーザ対話（４１２ａ〜ｃ）のパターンをモニタするための方法であって、
該方法は、
クライアント計算機（１１０ａ〜ｃ）上で実行されるエージェント（４１６）から、該クライアント・アプリケーションとのユーザ対話（４１２ａ〜ｃ）のシーケンスに関連する分析データ（４１４）と、該ユーザ対話（４１２ａ〜ｃ）に応答して行われた、該クライアント・アプリケーションとサーバ（１０２ａ〜ｂ）間のデータ・トラフィックのイベント（４１６ａ〜ｃ）と、を受信するステップ（Ｓ３０２）であって、各ユーザ対話（４１２ａ〜ｃ）及び各データ・トラフィックのイベント（４１６ａ〜ｃ）が、該ユーザ対話（４１２ａ〜ｃ）を実行するユーザのユーザ識別子に対応付けられているステップ（Ｓ３０２）と、
各ユーザ対話（４１２ａ〜ｃ）と、該ユーザ対話（４１２ａ〜ｃ）に応答して行われたデータ・トラフィックのイベント（４１６ａ〜ｃ）のすべてとをグルーピングし、かつ、各グループを、該グループにグルーピングされた該ユーザ対話（４１２ａ〜ｃ）と該データ・トラフィックのイベントのすべてとに基づくグループ識別子を用いてラベル付けし、かつ、各グループを、該ユーザ対話（４１２ａ〜ｃ）に対応付けられた前記ユーザ識別子と対応付けすることによって、前記分析データ（４１４）からグループを形成するステップ（Ｓ３０４）と、
前記分析データ（４１４）内の各ユーザ識別子に対して、
該ユーザ識別子に対応付けられた前記形成済みグループ間のパターンを識別し、各パターンをラベル付けして、そして該識別済みパターンに関連する情報をデータ格納手段（１０８）に格納するステップ（Ｓ３０６）であって、各パターンは、少なくとも、開始グループ及び終了グループを含む該形成済みグループのシーケンスを含み、かつ該ユーザ対話（４１２ａ〜ｃ）のシーケンスに対応しており、該ラベル付けは該パターンに属する該グループのシーケンスの該グループ識別子に基づくパターン識別子を用いて行われ、該識別済みパターンに関連する情報には少なくとも該各パターンのパターン識別子が含まれるようなステップ（Ｓ３０６）と、
該データ格納手段（１０８）に格納された、識別済みパターン識別子の各々に対して、
前記形成済みグループの中から該識別済みパターン識別子のノーマル状態を算出するステップ（Ｓ３０８）であって、
該ノーマル状態は、
該識別済みパターンの識別子を持つ該パターンの開始グループと同一のグループ識別子を持つグループに対応する、ユニークなユーザ識別子の数と、
該識別済みパターンの識別子を持つ該パターンのグループの該シーケンスと同一のグループ識別子を持つグループのシーケンスに対応する、ユニークなユーザ識別子の数と、の間の差異に基づいているようなステップ（Ｓ３０８）と、
を含むことを特徴とする、分析サーバ（１０６）によって実行される方法。
【請求項２】
各ユーザ識別子は、少なくとも一つのユーザ・タイプを含み、
前記方法は、さらに、
前記データ格納手段（１０８）に格納された識別済みパターン識別子の各々に対して、
該少なくとも一つのユーザ・タイプのうちの特定のユーザ・タイプの各々に対して、
前記形成済みグループの中で、該特定のユーザ・タイプに対する該識別済みパターン識別子のノーマル状態を算出するステップ（Ｓ３０８）
を含み、
該ノーマル状態の算出は、
該特定のユーザ・タイプを含み、かつ該識別済みパターン識別子を持つ前記パターンの前記開始グループと同一のグループ識別子を持つグループに対応するユニークなユーザ識別子の数と、
該特定のユーザ・タイプを含み、かつ該識別済みパターン識別子を持つパターンのグループの該シーケンスと同一のグループ識別子を持つグループのシーケンスに対応付けされているユニークなユーザ識別子の数と、
に基づいていること、
を特徴とする、請求項１に記載の方法。
【請求項３】
さらに、
前記データ格納手段（１０８）に格納され、かつ、二つ以上のグループを含み、かつ、少なくとも同一の開始グループと終了グループを持つ識別済みパターンをグルーピングし、かつ、それぞれのグルーピング済みパターン毎に、
該グルーピング済みパターンをパターン識別子でラベル付けし、そして
該グルーピング済みパターンに関連する情報を前記データ格納手段（１０８）に格納するステップ（Ｓ３１２）であって、
該パターン識別子は、該グルーピング済みパターン内にグルーピングされたパターンの中のグループのシーケンスのグループ識別子に基づいており、
該グルーピング済みパターンに関連する情報には、少なくとも、該グルーピング済みパターンのパターン識別子が含まれるようなステップ（Ｓ３１２）と、
それぞれのグルーピング済みパターン毎に、該グルーピング済みパターンをラベル付けする該パターン識別子に対するノーマル状態を、該グルーピング済みパターン内にグルーピングされたパターンのノーマル状態を合算することによって計算するステップ（Ｓ３１４）と、を含むこと、
を特徴とする、請求項１〜２のいずれかに記載の方法。
【請求項４】
さらに、各々の計算されたノーマル状態毎に、対応する前記パターン識別子に対するノーマル状態と、該対応するパターン識別子と、を前記データ格納手段（１０８）に格納するステップ（Ｓ３１０）を含むこと、
を特徴とする、請求項１〜３のいずれかに記載の方法。
【請求項５】
前記グルーピング済みパターンをラベル付けする、前記パターン識別子と前記ノーマル状態を格納する前記ステップは、前記グルーピング済みパターン内でグルーピングされている該格納済みパターンの該ノーマル状態のうちの少なくとも一つが閾値レベル未満である場合に実行されること、
を特徴とする、請求項３に従属する場合の請求項４に記載の方法。
【請求項６】
さらに、
一定期間に亘ってパターン識別子の前記ノーマル状態の変化をモニタするステップと、
該ノーマル状態の変化が閾値を超えた場合にエラー状態を生成するステップと
を含むこと、
を特徴とする、請求項１〜５のいずれかに記載の方法。
【請求項７】
さらに、
一定期間に渡ってパターン識別子の特定のユーザ・タイプに対する前記ノーマル状態の変化をモニタするステップと、
該ノーマル状態の変化が閾値を超えた場合にエラー状態を生成するステップと、
を含むこと、
を特徴とする、請求項２、又は、請求項２に従属する場合の請求項３〜６のいずれかに記載の方法。
【請求項８】
前記期間の長さが該期間におけるクライアント・アプリケーションとのユーザ対話（４１２ａ〜ｃ）の数に基づいていること、
を特徴とする、請求項６〜７のいずれかに記載の方法。
【請求項９】
前記期間の長さが前記サーバ（１０２ａ〜ｂ）上の、制限時間内での変化に基づいていること、
を特徴とする、請求項６〜７のいずれかに記載の方法。
【請求項１０】
各々のクライアント・アプリケーションが複数のサーバ（１０２ａ〜ｂ）とインタフェース接続すること、
を特徴とする、請求項１〜９のいずれかに記載の方法。
【請求項１１】
前記クライアント・アプリケーションは、ＷｅｂサイトをレンダリングするＷｅｂブラウザであり、かつ、前記グループ識別子は、前記ユーザ対話（４１２ａ〜ｃ）が実行されるＷｅｂページの状態に基づいていること、
を特徴とする、請求項１〜１０のいずれかに記載の方法。
【請求項１２】
前記グループ識別子の少なくともいくつかは、前記ユーザ対話（４１２ａ〜ｃ）が実行されるＷｅｂページのＵＲＬに基づいていること、
を特徴とする、請求項１１に記載の方法。
【請求項１３】
各グループをグループ識別子でラベル付けする前記ステップが、
クライアント・アプリケーション・セッション固有のデータを、前記データ・トラフィックのイベント（４１６ａ〜ｃ）及び前記対応するユーザ対話（４１２ａ〜ｃ）から削除し、そして、次に、該データ・トラフィックのイベント（４１６ａ〜ｃ）及び該対応するユーザ対話（４１２ａ〜ｃ）の残りの部分に基づくグループ識別子で各グループをラベル付けするステップと、を含むこと、
を特徴とする、請求項１〜１２のいずれかに記載の方法。
【請求項１４】
サーバ（１０２ａ〜ｂ）とインタフェース接続し、かつ、クライアント計算機（１１０ａ〜ｃ）上でレンダリングされるクライアント・アプリケーションにおけるユーザ対話（４１２ａ〜ｃ）パターンをモニタするための分析サーバ（１０６）であって、
該分析サーバ（１０６）は、
クライアント計算機（１１０ａ〜ｃ）上で実行されるエージェント（４１６）から、該クライアント・アプリケーションとのユーザ対話（４１２ａ〜ｃ）のシーケンスに関連する分析データ（４１４）と、該ユーザ対話（４１２ａ〜ｃ）に応答して行われた、該クライアント・アプリケーションと該サーバ（１０２ａ〜ｂ）間のデータ・トラフィックのイベント（４１６ａ〜ｃ）と、を受信する（Ｓ３０２）ように適合された受信部（２０２）であって、各ユーザ対話（４１２ａ〜ｃ）及び各データ・トラフィックのイベント（４１６ａ〜ｃ）が、該ユーザ対話（４１２ａ〜ｃ）を実行するユーザのユーザ識別子に対応付けられている受信部（２０２）と、
各ユーザ対話（４１２ａ〜ｃ）と、該ユーザ対話（４１２ａ〜ｃ）に応答して行われたデータ・トラフィックのイベント（４１６ａ〜ｃ）のすべてとをグルーピングし、かつ、各グループを、該ユーザ対話（４１２ａ〜ｃ）と該グループにグルーピングされたデータ・トラフィックのイベントのすべてとに基づくグループ識別子を用いてラベル付けし、そして、各グループを、該ユーザ対話（４１２ａ〜ｃ）に対応付けられている該ユーザ識別子と対応付けすることによって、前記分析データ（４１４）からグループを形成する（Ｓ３０４）ように適合されたイベント・グルーピング部（２０４）と、
前記分析データ（４１４）内のユーザ識別子毎に、
該ユーザ識別子に対応付けられた前記形成済みグループの間のパターンを識別し（Ｓ３０６）、各パターンは、少なくとも、開始グループ及び終了グループを含む該形成済みグループのシーケンスを含み、かつ、該パターンが該ユーザ対話（４１２ａ〜ｃ）のシーケンスに対応しており、さらに、
各パターンを、該パターンに属する該グループのシーケンスの該グループ識別子に基づくパターン識別子でラベル付けし（Ｓ３０６）、そして、
少なくとも該各パターンのパターン識別子が含まれる、該識別済みパターンに関連する情報をデータ格納手段（１０８）に格納する（Ｓ３０６）、
ように適合されたパターン識別部（２０６）と、
前記データ格納手段（１０８）に格納された前記識別済みパターン識別子の各々に対して、前記形成済みグループの中から識別済みパターン識別子のノーマル状態を算出する（Ｓ３０８）ように適合されたノーマル状態計算部（２０８）であって、
該ノーマル状態は、
該識別済みパターン識別子を持つ該パターンの前記開始グループと同一のグループ識別子を持つグループに対応する、ユニークなユーザ識別子の数と、
該識別済みパターン識別子を持つ該パターンのグループの前記シーケンスと同一のグループ識別子を持つグループのシーケンスに対応する、ユニークなユーザ識別子の数と、の間の差異に基づいている、ノーマル状態計算部（２０８）と、
を含むこと、を特徴とする分析サーバ（１０６）。
【請求項１５】
クライアント計算機（１１０ａ〜ｃ）上で実行されるエージェント（４１６）であって、
該クライアント計算機（１１０ａ〜ｃ）はサーバ（１０２ａ〜ｂ）とインタフェース接続するクライアント・アプリケーションをレンダリングし、
該エージェント（４１６）は、ユーザ対話パターンをモニタする分析サーバ（１０６）に遠隔接続されており、かつ、
該クライアント・アプリケーションとのユーザ対話（４１２ａ〜ｃ）を識別するための手段（７０２）と、
該識別済みのユーザ対話（４１２ａ〜ｃ）に対するユーザ・セッションを識別するための手段（７０４）と、
該ユーザ対話（４１２ａ〜ｃ）に応答して行われた該クライアント・アプリケーションと該サーバ（１０２ａ〜ｂ）間のデータ・トラフィックのイベント（４１６ａ〜ｃ）とを識別するための手段（７０６）と、
該ユーザ対話（４１２ａ〜ｃ）と該ユーザ識別子とを該識別されたユーザ・セッションに基づき対応付けして、かつ、該ユーザ対話（４１２ａ〜ｃ）に応答して行われた該クライアント・アプリケーションと該サーバ（１０２ａ〜ｂ）との間の該識別済みのデータ・トラフィックのイベント（４１６ａ〜ｃ）と該ユーザ識別子とを対応付ける手段（７０８）と、
該識別済みのユーザ対話（４１２ａ〜ｃ）と該識別済みのデータ・トラフィックのイベント（４１６ａ〜ｃ）とを含む分析データ（４１４）を該分析サーバ（１０６）に転送するための手段（７１０）と、
を有すること、を特徴とするエージェント（４１６）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバとインタフェース接続するクライアント・アプリケーションにおけるユーザ対話パターンをモニタするために分析サーバが実行する方法に関する。本発明は、さらに、該方法を実行する分析サーバに関する。本発明は、さらに、分析データを特定して分析サーバに転送するためにクライアント計算機上で実行されるエージェントに関する。
【背景技術】
【０００２】
クライアント・アプリケーション、例えばＷｅｂサイトをレンダリングするＷｅｂブラウザにおけるユーザ対話をモニタする理由は、いくつかある。一つの理由は、初期段階で、エラーがクライアント・アプリケーションにおいて発生したことを発見することである。このようなエラーには、例えば、ボタン又はドロップダウンがもはや適切に機能していないことがある。クライアント・アプリケーションでのこのようなエラーによって、クライアント・アプリケーションのユーザ対話パターンが変わることがある。該モニタは、また、統計的利用の目的で行われることがある。
【０００３】
上記のようなユーザ対話のモニタ・プロセスには、しばしば、複雑で、継続的に変化するセットアップ・シナリオが関係する。新しいプロセスの実装、展開がこれまで以上に迅速に行われている。クライアント・アプリケーションにおいて実装又は変更されたすべての新しいプロセスに対して、該新しいプロセスが正しく機能することを確認するためにモニタを実装する必要がある。これは、歴史的に、対話パターンをスクリプトで記述し、エージェントに該スクリプトを実行させ、そして、実ユーザによる該クライアント・アプリケーションの使用をシミュレートすることにより行われてきた。この手法は、リソースが重く複雑になる。この理由は、スクリプトの人手記述が新しいプロセス毎に必要になるからである。また、それぞれの新しいプロセスを特定し定義することもリソースを重くする。前記クライアント・アプリケーションの開発毎に、新たなモニタ・スクリプトの追加、又は既存のスクリプトの変更が必要になることがある。
【０００４】
ＵＳ２０１３−００６７３２７（ＩＢＭ社（登録商標））には、ユーザのアクションを記録するイベント・パターン・スクリプトを記録するためのソリューションが記載されている。ユーザ自身が該記録を始動して、該アプリケーションと対話することができる。これらのスクリプトは、後で使用して比較し、異常を発見することができる。該文献に記載された方法は、リソースが重く、かつ複雑であり、また、人間の対話が必要である。また、新しいプロセスが実装されると、明らかに、新しいスクリプトの記録が必要になる。
【０００５】
さらに、前記クライアント・アプリケーションがサーバに接続されることがある。そして、ユーザ対話は、データ・トラフィックのイベントを発生させ、該イベントが該クライアント・アプリケーションとサーバの間で送信されることがある。このような設定では、該サーバにおけるエラーによってもまた、該クライアント・アプリケーションのユーザ対話パターンが変わることがある。ユーザ対話をモニタする通常の手法は、歴史的に、ユーザ対話へ応答するときのサーバの処理を分析することによって行われてきた。この手法では、依然、新しいモニタ・スクリプト又は分析スクリプトが、新しいプロセスの実装毎に必要になる。さらに、クライアント・アプリケーションのオーナは、サーバに対するホスト型ソリューションを使用する場合、該サーバへのアクセス権を持ってない可能性がある。
【０００６】
したがって、ユーザ対話パターンをモニタする改良された方法に対するニーズが存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
そこで、本発明の目的は、一つ又は複数の上記問題点を解決するか、少なくとも、削減することである。上記の目的は、基本的には、添付特許請求範囲の独立請求項によって達成される。
【課題を解決するための手段】
【０００８】
第一の態様によれば、本発明は分析サーバによって実行される方法によって実現される。該方法は、サーバとインタフェース接続し、かつ、クライアント計算機上でレンダリングされるクライアント・アプリケーションにおけるユーザ対話パターンをモニタする。この方法には、クライアント計算機上で実行されるエージェントから、クライアント・アプリケーションとのユーザ対話のシーケンスに関連する分析データ、及び、該クライアント・アプリケーションとサーバ間のユーザ対話に応答して行われたデータ・トラフィックのイベントを受信するステップが含まれる。各ユーザ対話及び各データ・トラフィックのイベントは、ユーザ対話を実行するユーザのユーザ識別子に対応付けられている。
【０００９】
該方法はさらに以下のステップを含む。すなわち、各ユーザ対話と、該ユーザ対話に応答して行われたデータ・トラフィックのイベントのすべてと、をグルーピングして、そして、各グループを該ユーザ対話と該グループにグルーピングされたデータ・トラフィックのイベントのすべてに基づくグループ識別子を用いてラベル付けし、かつ、各グループを、ユーザ対話に対応付けられた前記ユーザ識別子と対応付けすることによって、前記分析データからグループを形成するステップを含む。
【００１０】
該方法は、さらに、以下のステップを含む。すなわち、前記分析データ内の各ユーザ識別子に対して、ユーザ識別子に対応付けられた形成済みグループ間のパターンを識別するステップであって、各パターンは、少なくとも開始グループ及び終了グループを含む該形成済みグループのシーケンスを含み、かつ、ユーザ対話のシーケンスに対応しており、そして、該パターンに属する該グループのシーケンスのグループ識別子に基づくパターン識別子で各パターンのラベル付けを行うステップと、少なくとも各パターンのパターン識別子を含む、識別済みパターンに関連する情報をデータ格納手段に格納するステップと、を含む。
【００１１】
前記方法はさらに、前記データ格納手段に格納された、識別済みパターン識別子の各々に対して、前記形成済みグループの中から識別済みパターン識別子のノーマル状態を算出するステップを含む。該ノーマル状態は、２つの値の間の差異に基づいて算出される。第一の値は、該パターンの開始グループと同一のグループ識別子を持つグループに対応する、ユニークなユーザ識別子の数である。第二の値は、識別されたパターン識別子を持つパターンのグループのシーケンスと同一のグループ識別子を持つグループのシーケンスに対応付けられる、ユニークなユーザ識別子の数である。
【００１２】
用語「クライアント・アプリケーション」によって本明細書の文脈で理解されるべきものには、例えば、Ｗｅｂブラウザ、スマートクライアント・アプリケーション、シン・クライアント、又はクライアント計算機上で実行される他のソフトウェアベースのアプリケーションがある。クライアント計算機には、デスクトップ・コンピュータ、ラップトップ・コンピュータ、スマート・フォン、タブレット・コンピュータ、及びスマート・ウォッチ等がある。
【００１３】
用語「サーバ」によって本明細書の文脈で理解されるべきものには、任意の種類のサーバがあり、例えば、Ｗｅｂサーバ、Ｗｅｂページや画像等のコンテンツを保存するサーバとして動作するローカル・サービス、電子メール等があり、ローカルには（すなわち、クライアント計算機上で実行中のサービスには）、専用のネットワーク・サーバのようなリモート・キャッシュ・サーバがある。
【００１４】
用語「データ・トラフィック」によって本明細書の文脈で理解されるべきものには、任意の種類のデータ・トラフィックがあり、該データ・トラフィックは、ＨＴＴＰ、ＴＣＰ、ＪＳＯＮ、ＷｅｂＳｏｃｋｅｔ等の任意の種類のプロトコル又はフォーマットを使用すると理解されるべきである。
【００１５】
用語「クライアント計算機上で実行されるエージェント」によって本明細書の文脈で理解されるべきものには、例えば、クライアント側スクリプト、又は任意の他のソフトウェア・アプリケーションがある。該スクリプト、又は他のソフトウェア・アプリケーションは、ユーザ対話、及びクライアント・アプリケーションへの、及びクライアント・アプリケーションからのデータ・トラフィックのイベントを識別することができて、さらに、該データを、ユーザ対話パターンをモニタする分析サーバ等のリモートサーバに送信する。
【００１６】
用語「分析データ」によって本明細書の文脈で理解されるべきものには、すべてのクライアント計算機からのデータがあり、該クライアント計算機では、エージェントがインストールされ又は実行中であり、同時にクライアント・アプリケーションを実行中である。なお、該エージェント（複数可）からのデータは継続的に受信されており、分析サーバは受信したデータから継続的にグループを形成し、かつ、該形成済みグループは該分析サーバ、すなわち、ＲＡＭやディスク（又は、分析サーバに接続されたデータベース）に格納される。これは、次のいずれかの条件が満たされるまで継続される。一実施形態によると、該条件には、一定数のグループが形成されたことが含まれる。他の実施形態によれば、該条件には、グループが、１時間、１分、１日、又は他の適切な時間枠の間に形成されることが含まれる。さらに別の実施形態によると、該条件には、該格納された形成済みグループのバイト・サイズがしきい値のバイト・サイズを超えたことが含まれる。本発明の方法の残りのステップは、上記条件のいずれかが満たされるときに続けて実行される。
【００１７】
前記形成済みグループをディスク上に格納することの利点は、該形成済みグループ間でのパターンを識別するときにスライディング・ウィンドウ手法を採用することができることである。この意味は、新たに形成、格納したグループに対して、以前に格納されたグループの中でパターンが既に識別されているグループは、パターンを識別するために再利用することができることであり、この時点で、新しいグループが追加され、かつ、以前から格納されているグループのうちの、例えば、第１グループを削除してもよい。このため、該格納されたグループは、先入れ先出し（ＦＩＦＯ）キュー上で観測することができ、該キューは、パターンを識別するために継続的に使用される。
【００１８】
用語「ユーザ対話」には、クライアント・アプリケーションとのユーザ対話の任意の種類が包含されると理解されるべきであり、例えば、ボタンのクリック、ドロップ・ダウンリストでの選択、チェックボックスのチェック有無、メニュー項目を選択するリンクのクリック等がある。
【００１９】
なお、分析データから作られるグループは、同一ユーザによって実行される、すなわち、同一のユーザ識別子に対応付けられている、一つ又は複数のユーザ対話、及び、一つ又は複数のユーザ対話と対応付けられたサーバに対してかつ該サーバから送信されるデータ・トラフィックのすべてのイベントを含むことができる。
【００２０】
用語「ユーザ対話のシーケンス」によって本明細書の文脈で理解されるべきことは、一つのパターンが、ユーザ対話を含む第一のグループと、後続のユーザ対話を含む少なくとも一つの第二のグループとを含み、かつ、少なくとも２つのユーザ対話が同一ユーザによって実行されることである。これは、さらに、本明細書の詳細な説明で例示される。
【００２１】
用語「ユーザ識別子」によって本明細書の文脈で理解されるべきものは、特定のユーザを識別する任意の種類の識別子である。該ユーザ識別子は、セッション単位又は特定のクライアント計算機単位でユニークにすることができる。クライアント計算機は、例えば、該クライアント計算機のＩＰ番号又は、ネットワークカードのＭＡＣアドレスで決まる。さらに、クライアント・ソフトウェアのライセンスを使用するか、又はアプリケーション起動時にライセンス・マネージャにソフトウェア・ライセンスを照会するか、又は、専用のユーザ識別子提供サーバ／サービスに、ユニークに決まっているユーザ識別子を照会する。該ユーザ識別子は、さらに、クライアント計算機毎の専用の時間枠の間、又は、クライアント計算機を使用するユーザのログインに基づく時間枠の間、同一である。
【００２２】
用語「データ格納手段」によって本明細書の文脈で理解されるべきものは、ＲＡＭ、ディスク、又はデータベース等の任意の種類の記憶手段である。該データ格納手段は、分析サーバから遠隔地にあってもよいし、又は分析サーバ上にローカルに存在してもよい。データベースには、複数個のデータベースを備えた分散データベースがある。該データ格納手段は、例えば、ＲＡＭとデータベースの両方を含んでよく、又は、上述の格納手段の任意の他の組み合わせを含んでもよい。
【００２３】
本発明が基づいている知見は、エージェントをクライアント上に配置すること、例えば、Ｗｅｂサイトに簡単なスクリプトを配置すること、及び、クライアント・アプリケーションとのユーザ対話に関連するすべてのデータ、及び、ユーザ対話に応答して行われたクライアント・アプリケーションとサーバ間のデータ・トラフィックのイベントとを分析サーバへ送信することによって、ユーザ対話のモニタを行うために必要な構成を実質的に削減することができる、ということである。新しいプロセスに対しては、ユーザによるスクリプト記述又は定義は必要ない。代わりに、このような新しいプロセスは、分析サーバによって自動的に識別され、モニタされる。
【００２４】
分析サーバは、ユーザ識別子に対応付けられたデータを受信するので、ユーザ対話のシーケンスを追跡して、該シーケンス及び対応するデータ・トラフィックのイベントをパターンとして格納することができる。少なくとも一つのユーザ対話と該ユーザ対話に対応付けられた任意のトラフィック・イベントをグルーピングして、該グループを、グルーピングした対話とイベントに関連する分析データ（の一部）に基づくグループ識別子でラベル付けすることにより、該グループ識別子を使用して、前記分析データ中で同一グループ識別子を持つ他のグループを検索することができる。ここで、同一のグループ識別子で識別されたグループは、異なるユーザによって行われたユーザ対話から生じる可能性がある。従って、本発明は、パターンのモニタに関しては、異なるユーザによって実行されるユーザ対話を「同一のユーザ対話」として特定することを可能にする。
【００２５】
特定のユーザから形成されたグループから特定されるパターンと、他のユーザから形成されたグループから特定されるパターンとは、該パターンのグループのグループ識別子がユーザ間で一致する場合、上記と同様にして同一と考えることができる。
【００２６】
なお、識別済みパターンに関する情報を格納するステップは、識別済みパターンのパターン識別子が既にデータ格納手段に存在するかどうかをチェックして、識別済みパターンのパターン識別子がデータ格納手段に存在しない場合にのみ、該情報を格納するステップを含んでもよい。
【００２７】
全てのパターンを識別し、パターン識別子でラベル付けした後、形成済みグループ内のすべての識別されたユーザ全体のパターンのノーマル状態を計算することができる。基本的に、これは、パターンを開始するユーザ数と該パターンを終了するユーザ数を比較することによって行われる。該状態は、従って、パーセンテージとして定義することができる。例えば、ＡとＢが二つのグループを表すとして、シーケンスＡ−Ｂのノーマル状態が３３％で、シーケンスＡ−Ｃのノーマル状態が２０％とする。残りの４７％では、例えば、グループＡに対するユーザ対話が発生した後に、クライアント・アプリケーションを終了している。これの意味するところは、もし１００人がパターンＡ−Ｃを開始している場合、すなわち、ユニークなユーザ識別子の数（１００）が、識別済みパターン識別子（例えば、「Ａ−Ｃ」）を持つパターンの開始グループと同一のグループ識別子（例えば、「Ａ」）を持つグループと対応付けられている場合、２０人のユーザが該パターンを終了している、すなわち、ユニークなユーザ識別子の数（２０）が、識別済みパターン識別子（例えば、「Ａ−Ｃ」）を持つパターンのグループのシーケンス（例えば、グループＡにグループＣが続いているシーケンス）と同一のグループ識別子（例えば、「Ａ」、「Ｃ」）を持つグループのシーケンス（例えば、グループＡにグループＣが続いているシーケンス）に対応されている。これは、さらに、本出願の詳細な説明において説明される。
【００２８】
本発明が有利である理由は、クライアント・アプリケーション又はサーバ上に実装された新しいプロセスが直ちに新しいパターンを生じさせて、該新しいパターンが分析サーバによって識別され、ノーマル状態を与えられるということである。スクリプトの記述又は人手による同様の交信は不要である。
【００２９】
本発明のいくつかの実施形態によれば、各ユーザ識別子は、少なくとも一つのユーザ・タイプを含む。本実施形態によれば、この方法は、さらに、データ格納手段に格納された識別済みパターン識別子の各々に対して、及び少なくとも一つのユーザ・タイプのうちの特定のユーザ・タイプの各々に対して、形成済みグループの中で、特定のユーザ・タイプに対する識別済みパターン識別子のノーマル状態を計算するステップを含む。該ノーマル状態は、２つの値の間の差に基づいている。第一の値は、該特定のユーザ・タイプを含み、かつ、該識別済みパターン識別子を持つパターンの開始グループと同一のグループ識別子を持つグループに対応する、ユニークなユーザ識別子の数であり。第二の値は、該特定のユーザ・タイプを含み、かつ、該識別済みパターン識別子を持つパターンの該グループのシーケンスと同一のグループ識別子を持つグループのシーケンスに対応付けられた、ユニークなユーザ識別子の数である。
【００３０】
ユーザ対話をモニタする場合、特定のタイプのユーザの対話をモニタすることが有意な場合がある。これを支援するために、各ユーザ識別子は、ユーザのタイプに関する情報を含むユーザ・タイプを少なくとも一つ含むことができる。該ユーザ・タイプは、例えば、ユーザが使用しているＷｅｂブラウザの種類、ユーザが住んでいる国及び／又は都市、又はユーザが使用するインターネット・サービス・プロバイダ（ＩＳＰ）等を指定することができる。特定のユーザ・タイプに対するパターンのノーマル状態は、パターンのノーマル状態の全体に対する場合と同様に実現されるが、特定のユーザ・タイプ、すなわち、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ（登録商標）又はＭｏｚｉｌｌａ  Ｓｗｅｄｅｎ（登録商標）を持つユーザに対するグループ及びパターンのみが、ノーマル状態を計算するために使用される。
【００３１】
本発明のいくつかの実施形態によれば、前記方法は、さらに、前記データ格納手段に格納された、識別され、二つ以上のグループを含み、かつ、少なくとも同一の開始グループと終了グループを持つパターンをグルーピングするステップを含む。該方法は、さらに、それぞれのグルーピング済みパターン毎に、該グルーピング済みパターンをパターン識別子でラベル付けするステップを含んでもよい。該パターン識別子は、グルーピング済みパターンの中にあるグルーピングされたパターンのグループのシーケンスのグループ識別子に基づいている。前記方法は、さらに、前記グルーピング済みパターンに関連する情報を前記データ格納手段に格納するステップを含む。ここで、該情報には、少なくとも、該グルーピング済みパターンのパターン識別子が含まれる。次に、該グルーピング済みパターンをラベル付けする該パターン識別子に対する前記ノーマル状態の計算が、グルーピングされた格納済みパターンのノーマル状態を該グルーピング済みパターン内に追加することによって行われる。
【００３２】
ユーザ対話の可能なシーケンスを多く含むクライアント・アプリケーションでは、あるタイプの識別済みパターンをグルーピング済みパターンにグルーピングして、ユーザ対話のより多くの一般的なシーケンスのノーマル状態を計算し、かつモニタすることが有意義であろう。該あるタイプの識別済みパターンは、少なくとも同一の開始グループと同一の終了グループを含む。
【００３３】
本発明のいくつかの実施形態によれば、前記方法は、さらに、各々の計算されたノーマル状態毎に、対応するパターン識別子に対するノーマル状態と、該対応するパターン識別子とを前記データ格納手段に格納するステップを含む。この意味することは、形成済みグループ間で識別済みパターン識別子の任意のノーマル状態、及び／又は、特定のユーザ・タイプに対する識別済みパターンの識別子の任意のノーマル状態、及び／又は、グルーピング済みパターンをラベル付けするパターン識別子に対する任意のノーマル状態のうちのノーマル状態を前記データ格納手段に格納することができることである。任意のタイプのパターン（例えば、パターン識別子）の格納済みのノーマル状態は、統計目的、又は、任意の他のタイプのユーザ対話をモニタする目的のために使用することができる。
【００３４】
本発明のいくつかの実施形態によれば、前記グルーピング済みパターンをラベル付けする、前記パターン識別子と前記ノーマル状態を格納するステップの実行は、グルーピング済みパターン内でグルーピングされている該格納されたパターンの該ノーマル状態のうちの少なくとも一つが閾値レベル未満である場合に実行される。本実施形態によれば、ノーマル状態が少ないパターンのみが格納される。すなわち、例えば、ユーザがグループＴに進む前にグループＤからグループＥに進むことが異常であり、グループＤからグループＢ、グループＴと進むことがはるかに一般的である場合、有意なことは、該２つのパターンをグルーピング済みパターン、Ｄ−Ｅ｜Ｂ−Ｔにグルーピングして該パターンのノーマル状態をモニタすることであろう。この理由は、異常なパターンＤ−Ｅ−Ｔのノーマル状態は、大多数のユーザが該シーケンスのユーザ対話を実行する場合にのみ急変動する可能性があるためである。
【００３５】
本発明のいくつかの実施形態によれば、該方法は、さらに、一定期間に亘ってパターン識別子の前記ノーマル状態の変化をモニタするステップと、該ノーマル状態の変化が閾値を超えた場合にエラー状態を生成するステップとを含むことができる。
【００３６】
本実施形態の利点は、分析サーバが、パターンのノーマル状態の変化を検出し、エラー状態を生成して、該エラー状態を、例えば、Ｗｅｂサイトの管理者又はクライアント・アプリケーションのオーナのサポート／品質部門に送信することができるということである。該エラー状態を使用して、該クライアント・アプリケーションが正しく機能していることを確認することができる。
【００３７】
本発明のいくつかの実施形態によれば、前記方法は、さらに、あるパターン識別子の特定のユーザ・タイプに対する前記ノーマル状態の変化を一定期間に亘ってモニタするステップと、該ノーマル状態の変化が閾値を超えた場合にエラー状態を生成するステップと、を含む。
【００３８】
本実施形態の利点は、分析サーバが、特定のユーザ・タイプに対して、パターンのノーマル状態の変化を検出し、エラー状態を生成して、該エラー状態を、例えば、Ｗｅｂサイトの管理者又はクライアント・アプリケーションのオーナのサポート／品質部門に送信することができることができるということである。該エラー状態を使用して、該クライアント・アプリケーションが正しく機能していることを確認することができる。
【００３９】
本発明のいくつかの実施形態によれば、前記期間の長さは、該期間におけるクライアント・アプリケーションとのユーザ対話の数に基づいている。したがって、該方法は、例えば、夜間や大きな休暇期間に、クライアント・アプリケーションと対話するユーザの数の急激な変化に対してより大きな耐性がある。
【００４０】
本発明のいくつかの実施形態によれば、前記期間の長さは、前記サーバ上の時限的な変化に基づいている。したがって、本方法は、例えば、Ｗｅｂサイト上のキャンペーンに対してより大きな耐性がある。このＷｅｂサイト上のキャンペーンは、短時間でユーザ対話パターンのノーマル状態を変更する可能性がある。この場合には、Ｗｅｂサイトの管理者は、ノーマル状態の変動を予想しているので、エラー状態の送信を望まないこともある。
【００４１】
本発明のいくつかの実施形態によれば、各々のクライアント・アプリケーションは、複数のサーバとインタフェース接続することができる。前記エージェントは、クライアント計算機上のみで実行されるので、各サーバに、又は、各サーバから送信されるデータ・トラフィックをモニタする必要のあるサーバの数には影響されない。本発明の方法の拡張性と簡明性は、モニタ・エージェントが、複数のサーバに存在しなければならない場合に比べて、大幅に改善されている。
【００４２】
本発明のいくつかの実施形態によれば、前記クライアント・アプリケーションは、ＷｅｂサイトをレンダリングするＷｅｂブラウザであり、前記グループ識別子は、ユーザ対話が実行されるＷｅｂページの状態に基づいている。
【００４３】
用語「Ｗｅｂページの状態」によって本明細書の文脈で理解されるべきものには、例えば、Ｗｅｂページ上のＡｊａｘコントロールにおけるコンテンツ、又は、ドロップ・ダウン・メニューにおける現在選択された項目、又は、Ｗｅｂページ上の任意の可能な状態がある。前記グループ識別子は、ユーザ対話が行われたときに、クライアント・アプリケーションがどのような状態にあるかに基づくことができる。Ｗｅｂページの状態を使用して、どういう要素がＷｅｂページを構築しているかに関係なく、これを達成することができる。いくつかの実施形態によれば、Ｗｅｂページの状態は、ＷｅｂページのＵＲＬであってもよい。
【００４４】
本発明のいくつかの実施形態によれば、グループ識別子で各グループをラベル付けするステップは、前記データ・トラフィックのイベント及び前記対応するユーザ対話から、クライアント・アプリケーション・セッション固有のデータを削除し、そして、次に、該データ・トラフィックのイベント及び該対応するユーザ対話の残りの部分に基づくグループ識別子で各グループをラベル付けするステップを含む。本発明のいくつかの実施形態によれば、分析データは、データベース、又は上記で定義された他のデータ格納手段に保存される。ユーザ固有のデータ及びセッション固有のデータをデータ・トラフィックのイベント及びユーザ対話に関連するデータから除去することにより、前記格納するステップをより速く実行し、必要なメモリを少なくすることができる。削除されるデータは、例えば、タイムスタンプ、データ・トラフィックのイベントに含まれるデータの一部のユニークな識別子、プロトコル固有のデータ等に関係する。また、以降の分析のためのデータを一時的に（すなわち、上記の議論のいずれかの条件が満たされるまで）保存する前にユーザ固有のデータ及びセッション固有のデータをデータ・トラフィックのイベント及びユーザ対話に関連するデータから除去することにより、前記格納ステップは必要とするメモリを少なくし、より時間効率をよくすることができる。さらに、ユーザ固有のデータ及びセッション固有のデータをデータ・トラフィックのイベント及びユーザ対話に関連するデータから除去することにより、グルーピング及びグループの識別を大幅に単純化することができる。
【００４５】
第二の態様において、本発明は、サーバとインタフェース接続しクライアント計算機上でレンダリングされるクライアント・アプリケーションにおけるユーザ対話パターンをモニタするための分析サーバを提供する。
【００４６】
前記分析サーバは、クライアント計算機上で実行されるエージェントから、分析データを受信するようにてきよう適合された受信部を有する。該分析データは、該クライアント・アプリケーションとのユーザ対話のシーケンス、及び、該ユーザ対話に応答して行われた、該クライアント・アプリケーションと該サーバ間のデータ・トラフィックのイベントを含む。各ユーザ対話及びデータ・トラフィックのイベントは、該ユーザ対話を実行するユーザのユーザ識別子に対応付けられている。
【００４７】
該分析サーバはさらに、前記分析データからグループを形成するように適合されたイベント・グルーピング部を有する。該グループの形成は、各ユーザ対話と、該ユーザ対話に応答して行われたデータ・トラフィックのイベントのすべてと、をグルーピングし、各グループを、該ユーザ対話及び該グループにグルーピングされたデータ・トラフィックのイベントのすべてと、に基づくグループ識別子でラベル付けし、そして、各グループを該ユーザ対話に対応付けられている該ユーザ識別子とを対応付けることによって行われる。
【００４８】
分析サーバは、さらに、パターン識別部を有する。該パターン識別部は、分析データ内のユーザ識別子毎に、該ユーザ識別子に対応付けられた該形成済みグループからパターンを識別するように適用されている。各パターンは形成済みグループのシーケンスを含み、該シーケンスは少なくとも開始グループと終了グループを含む。該パターンは該ユーザ対話のシーケンスに対応する。そして、該パターン識別部は、パターン識別子で各パターンをラベル付けする。各パターン識別子は該パターンに属する該グループの該シーケンスの該グループ識別子に基づいている。さらに、該パターン識別部は、識別済みパターンに関連する情報をデータ格納手段に格納する。該情報には、少なくとも、各パターンのパターン識別子が含まれる。
【００４９】
前記分析サーバは、ノーマル状態計算部を有する。該ノーマル状態計算部は、前記データ格納手段に格納された識別済みパターン識別子毎に、前記形成済みグループの中から識別済みパターン識別子のノーマル状態を算出する。該ノーマル状態は、該識別済みパターン識別子を持つ該パターンの開始グループと同一のグループ識別子を持つグループに対応する、ユニークなユーザ識別子の数と、該識別済みパターン識別子を持つ該パターンのグループのシーケンスと同一のグループ識別子を持つグループのシーケンスに対応付するユニークなユーザ識別子の数との差に基づいている。
【００５０】
なお、上述の各部位は、前記分析サーバ上で、例えば、該分析サーバ内の一つ又は複数のプロセッサによって実行される、単一のソフトウェアに実装することができる。該部位は、また、該分析サーバ上で実行される、異なる接続されたソフトウェアに実装してもよい。その場合には、一つ又は複数の上記部位を、単一のソフトウェアに実装することができる。
【００５１】
いくつかの実施形態によれば、前記分析サーバは、コンピュータ読み取り可能な記録媒体を有する。該媒体に記録されているのは一つ又は複数のプログラムであり、該プログラムは、処理装置（例えば、前記分析サーバ）上で実行されるときに本発明の第一の態様に基づく方法を実行する。
【００５２】
第３の態様において、本発明は、クライアント計算機上で実行されるエージェントを提供し、該クライアント計算機はサーバとインタフェース接続するクライアント・アプリケーションをレンダリングし、該エージェントはユーザ対話パターンをモニタする分析サーバに遠隔接続されている。該エージェントは、該クライアント・アプリケーションとのユーザ対話を識別するための手段と、該識別済みのユーザ対話に対するユーザ・セッションを識別するための手段と、該ユーザ対話に応答して行われた該クライアント・アプリケーションと該サーバ間のデータ・トラフィックのイベントを識別するための手段と、該ユーザ対話と該ユーザ識別子とを該識別されたユーザ・セッションに基づき対応付けする手段と、該ユーザ対話に応答して行われた該クライアント・アプリケーションと該サーバ間の該データ・トラフィックのイベントを該ユーザ識別子と対応付けする手段と、該識別済みのユーザ対話及び該識別済みのデータ・トラフィックのイベントを含む分析データを該分析サーバに転送するための手段と、を有する。
【００５３】
第二及び第三の態様は、一般に、第一の態様と同様の特徴及び利点を持っていることが多い。
【００５４】
本発明の他の目的、特徴及び利点は、以下の詳細な開示、及び図面から明らかになるであろう。
【図面の簡単な説明】
【００５５】
以降、本発明の態様についてのより詳細な説明が、本発明の実施形態を示す添付図面を参照して行われる。
【図１】本発明の実施形態に係る分析サーバを含むシステムの図である。
【図２】本発明の実施形態に係る分析サーバを説明するブロック図である
【図３】本発明の実施形態による、ユーザ対話のパターンをモニタするための方法を説明するフローチャートである。
【図４】Ｗｅｂサイトとのユーザ対話を説明する概略図である。
【図５】本発明の実施形態に係るパターンを説明する図である。
【図６】パターンのノーマル状態の変化をモニタするためのさまざまな時間間隔を説明する概略図である。
【図７】本発明の実施形態による、クライアント計算機上で実行されるエージェントを説明するブロック図である。  図に示すように、各レイヤ及び領域の大きさは、説明のために誇張されており、従って、各図は、本発明の実施形態の概略的な構造を説明するために提供される。類似の参照番号は、全体を通して類似の構成要素を指している。
【発明を実施するための形態】
【００５６】
以降、本発明を、添付図面を参照して詳細に説明する。該添付図面には、本発明の現時点での好ましい実施形態が示されている。本発明は、しかしながら、多くの異なる形態で実施することができ、本明細書に記載の実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、徹底して、完全かつ十分に、本発明の請求範囲を当業者に伝えるために開示されている。
【００５７】
図１では、一例として、システム１００を示している。システム１００ではクライアント・アプリケーションにおけるユーザ対話パターンがモニタされる。該クライアント・アプリケーションは、サーバ１０２ａ〜ｂとインタフェース接続しクライアント計算機１１０ａ〜ｃ上でレンダリングされる。該システム１００は、データ格納手段１０８に接続された分析サーバ１０６を有する。該データ格納手段１０８は、本例では、データベース１０８であるが、ハード・ドライブ、ＲＡＭ、又はそれらの組み合わせであってもよく、その目的は、少なくともパターン識別子と該パターン識別子に対応するノーマル状態を格納することである。本実施形態では、分析サーバ１０６とデータベース１０８は別個の装置であるが、他の実施形態では、該分析サーバにデータベース１０８を含む。図１の例示的なシステムでは、３つのククライアント計算機１１０ａ〜ｃは、二つのサーバ１０２ａ〜ｂ及び分析サーバ１０６にネットワーク１１２を介して接続されている。ネットワーク１１２としては、例えば、インターネットやイントラネットがある。クライアント計算機１１０ａ〜ｃの各々は、サーバ１０２ａ〜ｂとインタフェース接続するクライアント・アプリケーションをレンダリングする。クライアント計算機１１０ａ〜ｃの各々は、さらに、エージェントを有する。該エージェントは、クライアント計算機１１０ａ〜ｃ上のクライアント・アプリケーションとのユーザ対話、及び該ユーザ対話に応答してなされたクライアント・アプリケーションと２つのサーバ１０２ａ〜ｂとの間のデータ・トラフィックのイベントを識別する。該エージェントの機能は、図４及び図７の説明と合わせて以降さらに説明される。
【００５８】
分析サーバによって実行される方法、すなわち、サーバとインタフェース接続しライアント計算機上にレンダリングされるクライアント・アプリケーションにおけるユーザ対話パターンをモニタするための方法、及び、このような分析サーバ１０６の構成要素を、図２及び図３と併せて説明する。
【００５９】
分析サーバ１０６は、受信ステップＳ３０２の実行に適合された受信部２０２を有する。該受信ステップでは、クライアント計算機上で実行されるエージェントから分析データを受信する。該分析データは、該クライアント・アプリケーションとのユーザ対話のシーケンス、及び、該ユーザ対話に応答して行われた該クライアント・アプリケーションとサーバとの間のデータ・トラフィックのイベントに関連している。各ユーザ対話、及び該ユーザ対話に応答して行われたデータ・トラフィックのイベントは、該ユーザ対話を実行したユーザのユーザ識別子に対応付けられている。前記分析サーバは、いくつかの実施形態では、エージェントから継続的に受信する分析データを格納する一時的データ格納手段（図示せず）を有している。該分析データは、後で使用するために、例えば、パターンのノーマル状態を確認するために格納される。該一時的データベースは、分析サーバ１０６に置かれてもよいし、又は別のデバイスに置かれて分析サーバに遠隔接続されてもよい。さらに、いくつかの実施形態によれば、受信した分析データは、（さらに）より永久的なデータ格納手段、例えば、データ格納手段１０８に格納され、分析プロセスにおいて後で使用され、例えば、モニタ結果の検証のために、又は、分析データに関するさらなる情報が必要な場合に使用される。
【００６０】
分析サーバ２０２は、さらに、イベント・グルーピング部２０４を有する。該イベント・グルーピング部２０４は、前記分析データからグループを形成する（ステップＳ３０４）。該グループの形成は、前記ユーザ識別子に対応付けられたデータ・トラフィックの各イベントを対応するユーザ対話とグルーピングすることによって行われる。そして、該イベント・グルーピング部２０４は、各グループにラベル付けをする。該ラベル付けは、データ・トラフィックのイベントと、対応するユーザ対話とに基づくグループ識別子で行われる。該イベント・グルーピング部は、さらに、各グループを、該ユーザ対話に対応付けられている該ユーザ識別子と対応付けする。該イベント・グルーピング部２０４は、分析データを、前記受信部２０２から、上記のように継続的に受信する。
【００６１】
いくつかの実施形態によれば、前記ユーザ識別子に対応付けられたデータ・トラフィックの各イベントを対応するユーザ対話とグルーピングする際に、クライアント・アプリケーション・セッション専用データが、データ・トラフィックのイベント及び対応するユーザ対話から除去される。この意味は、例えば、ユーザ対話が電子店舗で起こり、該ショップでユーザが仮想ショッピングカート内に特定の品物を入れる場合、該ユーザ対話は該ユーザが「購入」ボタンをクリックすることにあたり、前記クライアント・アプリケーション・セッション固有データは製品の識別子、「購入」ボタンをクリックする時のタイムスタンプ、製品等の色であってもよい。この例では、唯一の有意なことは、ユーザが、例えば女性用ジャケットページの上の「購入」ボタンをクリックしたこと、及び、データ・イベントに、カートに品物が一つ入っていると言う情報が含まれていることである。
【００６２】
図２でわかるように、イベント・グルーピング部２０４は、形成済みグループを格納するために、必要に応じてデータ格納手段１０８に接続することができる。該イベント・グルーピング部は、いくつかの実施形態によれば、更に、上記のように、「洗浄」されたユーザ対話及びデータ・トラフィックのイベントを、データ格納手段１０８に格納することができる。これは、すべての対話及びデータ・トラフィックの格納に比べて、データ格納にあまりスペースを必要としない。該イベント・グルーピング部２０４は、各グループのラベル付けをグループ識別子で行う。該グループ識別子は、例えば、グループ内のユーザ対話とデータ・トラフィックのハッシュ値、又は、上記のように洗浄されたユーザ対話及びデータ・トラフィックのイベントのハッシュ値である。該グループ識別子は、このように、グループ内のユーザ対話（複数可）が行われたときの、クライアント・アプリケーションの状態を反映している。上記電子店舗の例では、該グループ識別子は、例えば、女性用ジャケットのページのＵＲＬを反映してもよいし、これに基づいて作られてもよい。該電子店舗が、例えばＡｊａｘコントロールに基づいている場合、これは、該電子店舗内の多くの又はすべての「ページ」が同一のＵＲＬを持つことを意味するが、該グループ識別子は、Ａｊａｘコントロールの状態を反映してもよいし、これに基づいて作られてもよい。該Ａｊａｘコントロールの状態には、女性用ジャケットの供給状況が提示されている。該イベント・グルーピング部は、また、各グループと、該グループのユーザ対話（複数可）に対応付けられているユーザ識別子との対応付けをする。
【００６３】
分析サーバ１０６は、さらに、パターン識別部２０６を有する。該パターン識別部２０６は、前記分析データ内のユーザ識別子毎に、該ユーザ識別子に対応付けられた形成済みグループの間のパターンを識別する（ステップＳ３０６）ように適用されている。該形成済みグループは、前記イベント・グルーピング部２０４から渡される。各パターンには、該形成済みグループのシーケンスが含まれる。各パターンは、少なくとも開始グループ及び終了グループを含み、該パターンがユーザ対話のシーケンスに対応するようになっている。パターンの形成については、さらに、図５と併せて説明する。パターン識別部２０６は、各パターンを、該パターンのグループのシーケンスのグループ識別子に基づくパターン識別子でラベル付けする。該パターン識別子は、例えば、該パターンに含まれるグループのグループ識別子のリストにすることができる。これが有便利な理由は、該パターン内のグループがパターン識別子から容易に逆追跡することができるからである。複数の実施形態によれば、パターン識別部２０６は、また、識別済みパターンを格納する（ステップＳ３０６）ために、データ格納手段１０８に接続される。各パターンに対して保存される情報は、少なくとも、各パターンのパターン識別子を含む。該パターン識別子が上記に従って構成されている場合、該パターン識別子を持つパターンのグループは、容易に逆追跡することができる。
【００６４】
前記分析サーバはさらに、ノーマル状態算出部２０８を有する。該ノーマル状態算出部２０８は、データ格納手段１０８に格納された識別済みパターンの識別子毎に、形成済みグループの中の、識別済みパターンの識別子のノーマル状態を計算する（ステップＳ３０８）ように適用されている。ノーマル状態の計算は、さらに、図５と併せて議論するが、該計算は、イベント・グルーピング部２０４から受信することができる情報とパターン識別部２０６から受信することができる情報の両方に基づいている。ノーマル状態計算部２０８は、このように、イベント・グルーピング部２０４に接続し、パターン識別部２０６から接続されることができる。他の実施形態では、ノーマル状態計算部２０８は、ノーマル状態を計算するために必要なデータをデータベース１０８から抽出することができる。
【００６５】
前記分析サーバは、複数の実施形態によれば、さらに、パターン格納部２１０を有することができる。該パターン格納部２１０は、パターン識別子毎に、パターン識別子と該パターン識別子に対応するノーマル状態とをデータ格納手段１０８に格納する（ステップＳ３１０）ように適用されている。
【００６６】
図３では、さらに、分析サーバ１０６によって実行される方法の任意のステップＳ３１２、Ｓ３１４について説明している。以降、ステップＳ３１２、Ｓ３１４について図５と併せて説明する。いくつかの実施形態によれば、該方法はさらに、３つ以上のグループを含み少なくとも同一の開始グループと終了グループを持つ識別済みパターンをグルーピングするステップＳ３１２を有する。図５では、３つのパターン又はシーケンスが、図５内でＡ〜Ｈとラベル付けされており、３つ以上のグループを含み、かつ、同一の開始グループと終了グループを持っている。これらのパターンは、パターンＡ−Ｃ−Ｅ、Ａ−Ｂ−Ｅ、及びＡ−Ｄ−Ｅである。いくつかの実施形態によれば、これらの３つのパターンは、一つのグルーピング済みパターン、Ａ−Ｃ｜Ｂ｜Ｄ−Ｅにグルーピングすることができる。ここで、表記Ｃ｜Ｂ｜Ｄは、グループＣ、Ｂ、Ｄのいずれかを、グルーピング済みパターンにおける中間グループにすることができることを表わしている。このグルーピング済みパターンは、開始グループ及び終了グループのグループ識別子に基づくパターン識別子でラベル付けしてもよいが、前記可能な中間グループＣ、Ｂ、Ｄに基づく何らかの追加が伴うことになろう。
【００６７】
パターンのノーマル状態の計算について、表１を用いて説明する。
【表１】
2015185166.tif 000003
【００６８】
第一の列はパターンを示す。図５のパターンのそれぞれは、表１に一つの行を持つ。表１に見られるように、各パターンはグループＡから始まっている。「グループ１」の下の値は、したがって、各パターンに対して、ユニークなユーザ識別子の数を表す。該ユニークなユーザ識別子は、該識別済みパターン識別子を持つパターンの開始グループと同一のグループ識別子（例えば、「Ａ」）を持つグループに対応している。該パターンにおける最後のグループの値は、従って、該識別済みパターン識別子を持つ該パターンのグループの該シーケンスと同一のグループ識別子を持つグループのシーケンスに対応付けられた、ユニークなユーザ識別子の数に対応する。従って、５０００のユーザ（ユーザ識別子）がパターンＡ−Ｂ−Ｅ（パターン識別子）を開始したことになり、これらの５０００のユーザ識別子のうち、１００はグループＢまで継続し、この１００のうちの９０はグループＥまで継続することにより該パターンを終了している。パターンＡ−Ｂ−Ｅのノーマル状態は、従って５０００分の９０＝１．８％である。同様に、５０００ユーザ（ユーザ識別子）が、パターンＡ−Ｃ−Ｅを開始している。この５０００のユーザ識別子のうち、１０００はグループＣまで継続し、１０００のうちの７００はグループＥまで継続することにより該パターンを終了している。パターンＡ−Ｃ−Ｅのノーマル状態は、従って、５０００分の７００＝１４％である。パターンＡ−Ｄ−Ｅ（１％）、Ａ−Ｇ−Ｈ（６％）、及びＡ−Ｆ（２０％）のノーマル状態も、同一の方法で計算される。
【００６９】
上述のグルーピング済みパターンＡ−Ｃ｜Ｂ｜Ｄ−Ｅのノーマル状態は、グルーピング済みパターン内のグルーピングされたパターンのノーマル状態を加算することによって計算される。グルーピング済みパターンＡ−Ｃ｜Ｂ｜Ｄ−Ｅのノーマル状態は、従って、１．８＋１４＋１＝１６．８％になる。
【００７０】
いくつかの実施形態によれば、グルーピング済みパターン及びグルーピング済みパターンのノーマル状態の格納は、該グルーピング済みパターン内にグルーピングされている格納済みパターンのノーマル状態のうち少なくとも一つが閾値レベルよりも低い場合にのみ行われる。したがって、上記の例では、閾値レベルが１％より大きい場合、グルーピング済みパターン（の識別子）Ａ−Ｃ｜Ｂ｜Ｄ−Ｅとそのノーマル状態が格納されるが、閾値レベルが１％未満である場合、該格納ステップは実行されない。
【００７１】
いくつかの実施形態によれば、グルーピング済みパターンにおけるノーマル状態のうちの一つ以外のすべてが、閾値レベル未満になる場合にのみ格納が行なわれる。上記の例では、閾値レベルが例えば１．５％の場合、グルーピング済みパターンＡ−Ｃ｜Ｂ｜Ｄ−Ｅは格納されない。いくつかの実施形態によれば、このような場合、Ａ−Ｄ−Ｅ（閾値レベル未満）は、Ａ−Ｂ−Ｅ又はＡ−Ｃ−Ｅとグルーピングされ、その後、格納することができる。
【００７２】
いくつかの実施形態によれば、閾値レベルを超えるノーマル状態を持つパターン（グルーピング済みの又は通常の）が格納され、したがって、モニタされる。クライアント・アプリケーションのオーナは、例えば、一定の数のパターンのノーマル状態をモニタすることにのみ興味があるかもしれない。他の実施形態によれば、最高数のパターンのみが、すなわち、ノーマル状態が最高数のパターンのみが格納される。
【００７３】
いくつかの実施形態によれば、各ユーザ識別子は、少なくとも一つのユーザ・タイプを含む。従って、ユーザ対話パターンのモニタは、特定のユーザ・タイプ・レベルのユーザに関して行うことができる。たとえば、電子店舗のオーナの不安が、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ（登録商標）を使用して電子店舗を閲覧中のユーザが製品に対する支払いの問題に遭遇するかも知れないということの場合、該オーナの希望は、ユーザ・タイプ「Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ」に関してユーザ対話パターンをモニタすることであろう。表２は、表１と同様のことを説明しているが、ユーザ・タイプ「Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ」を持つユーザのみについて説明している。換言すれば、表２の「グループ１」の下の値は、従って、パターン毎にユニークなユーザ識別子の数を表わすが、該ユーザ識別子は該特定のユーザ・タイプ（例えば、「Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ」）を含み、識別済みのパターン識別子を持つパターンの開始グループと同一のグループ識別子（例えば、「Ａ」）を持つグループと対応している。該パターンの最後のグループの値は、結果的に、ユニークなユーザ識別子の数に対応するが、該最後のグループのユーザ識別子は、前記特定のユーザ・タイプを含み、識別済みパターンの識別子を持つパターンのグループのシーケンスと同一のグループ識別子を持つグループのシーケンスに対応している。
【表２】
2015185166.tif 000004
【００７４】
以上のことから、前記Ｗｅｂサイトのオーナにわかることは、例えば、わずか１％のユーザが該パターンＡ−Ｆを完了するだけであり、表１のケース全体の２０％と比較してわずかであること、しかし、代わりにＦｉｒｅｆｏｘのユーザの３０％がパターンＡＧＨを完了しているが、表１全体のケースでは６％であることであろう。このパターンＡ−Ｆは、例えば、製品の支払いに対応し、パターンＡ−Ｇ−Ｈは、ヘルプ・ページの読み込みに対応する可能性がある。なお、上記の議論は、パターンをグルーピングし、該パターンを格納する前にフィルタリングすることに関するものであるが、該議論はユーザ・タイプ・レベルに関するユーザ対話パターンに対しても同じく有効であり得ることに留意されたい。
【００７５】
ユーザ対話パターンのモニタを行う目的は、クライアント・アプリケーションが期待通りに動作することを確認することであるが、この期待が、ユーザ対話パターンのノーマルな状態が日々ほとんど同一のままであることを意味する場合がある。このため、いくつかの実施形態によれば、一定期間に亘ってパターン（識別子）のノーマル状態の変化をモニタする場合がある。ノーマル状態が閾値レベルを超える場合、エラー状態を生成し、例えば、クライアント・アプリケーション等のオーナに送信又は提示することができる。ノーマル状態に関するこの乖離の分析は、異なるタイプの時間枠に亘って起こり得る。該時間枠は、１時間、１日等、固定してもよい。該時間枠は、動的に変えるようにしてもよく、時間の長さは、クライアント・アプリケーションの使用量に基づくことができる。これを図６に示す。点線５０２のそれぞれは、エージェントから受信した分析データを示す。各線上の点の数は、各エージェントから受信したデータの発生率を表す。多くのドットは、大量のデータがエージェントから送信されていることを意味する。前記時間枠は、矩形５０４、５０６によって表される。該矩形の幅は、時間枠の長さに対応する。図６に示すように、第一の時間枠５０４は第二の時間枠よりも短い。この理由は、第一の時間枠５０４の間に、６つのエージェントすべてが、分析サーバにデータを送信しているからである。第二の時間枠の間、最もビジーなエージェントの一つは、該エージェントが報告の担当になっているクライアント・アプリケーションの使用報告を停止している。次にビジーなエージェントもまた、クライアント・アプリケーションの使用報告を停止している。この結果、第二の時間枠５０６の間に、これらのクライアント・アプリケーションの使用率は低下し、第二の時間枠５０６は、図示のように長くなっている。
【００７６】
ただし、図６及び図６の上記説明は、実際を非常に簡略化した説明であり、時間枠の長さを決定する考え方を簡略化して説明していることに留意されたい。実際の実装では、時間枠５０４、５０６にはデータを報告するエージェントが数千入ることがあり、一般的に特定のエージェントが、時間枠全体に亘ってデータを報告するようなことはない。
【００７７】
さらに、図６の内容は、また、前記分析サーバが使用する時間枠を説明するために使用することができることに留意されたい。該分析サーバが該時間枠を使用する目的は、分析データを収集してグループを形成し、次に、パターンを識別して、パターン毎にノーマル状態を計算するためである。
【００７８】
クライアント計算機上で実行されるエージェントのコンポーネント及び機能について、図４及び図７と併せて以降説明する。ここで、クライアント計算機は、サーバとインタフェース接続するクライアント・アプリケーションをレンダリングし、該エージェントはユーザ対話パターンをモニタするために分析サーバに遠隔接続されている。図４では、Ｗｅｂサイト（クライアント・アプリケーション）とのユーザ対話４１２ａ〜ｃを例示的に示している。該Ｗｅｂサイトは、サーバ１０２とインタフェース接続している。エージェント４１６（図７にも示す）は遠隔接続された分析サーバ１０８に分析データ４１４を送信している。該分析データは、ユーザ対話４１２ａ〜ｃとデータ・トラフィックのイベント４１６ａ〜ｃに関連しており、該データ・トラフィックのイベントは、該Ｗｅｂサイトと該サーバ１０２との間でユーザ対話４１２ａ〜ｃに応答して、生成される。ユーザ４１０は、該Ｗｅｂサイトと対話している。該ユーザはまず、一番目のページ４０２に入り、ユーザ対話４１２ａを行う。エージェント４１６は、クライアント・アプリケーションとのユーザ対話４１２ａを識別するための手段７０２を有する。該エージェントはさらに、識別済みのユーザ対話に対応するユーザ・セッションを識別するための手段７０４、及び、識別済みのユーザ対話４１２ａを識別されたユーザ・セッションに基づいてユーザ識別子と対応付けるための手段７０８を有する。その結果、エージェント４１６は、ユーザ・セッションを識別して、ユーザ対話に関するすべての情報をユーザ識別子（該当セッション中の）と対応付けて、次に分析サーバ１０８に該データを転送する（４１４）
【００７９】
ユーザ対話４１２ａはデータ・トラフィックのイベント４１６ａを引き起こす。該イベント４１６ａは、Ｗｅｂサイトとサーバ１０２の間で、ユーザ対話４１２ａに応答して発生する。エージェント４１６は、さらに、データ・トラフィックのイベント４１６ａを識別するための手段７０６を有する。該イベント４１６ａは、クライアント・アプリケーションとサーバ１０２との間で、ユーザ対話４１２ａに応答して起こされる。該エージェント４１６は、さらに、識別済みのデータ・トラフィックのイベント４１６ａを、ユーザ識別子と対応付ける手段７０８を有する。該データ・トラフィックのイベント４１６ａは、クライアント・アプリケーションとサーバ１０２との間で、ユーザ対話４１２ａに応答してなされる。従って、該エージェント４１６は、識別済みのデータ・トラフィックのイベントに関するすべての情報をユーザ識別子と対応付けてから（図４に記載したセッション期間中に）、該データを分析サーバ１０８に転送する。
【００８０】
エージェント４１４は、さらに、識別済みのユーザ対話４１２ａ及び識別済みのデータ・トラフィックのイベント４１６ａを含む分析データ４１４を分析サーバ１０８に転送するための手段７１０を有する。
【００８１】
ユーザ４１０は、引き続きＷｅｂサイトとの対話４１２ｂ〜ｃを行い、これらのユーザ対話は、データ・トラフィックのイベント４１６ｂ〜ｃを引き起こす。該イベントは、Ｗｅｂサイトとサーバ１０２の間で、ユーザ対話４１２ｂ〜ｃに応答して発生する。該エージェントは、これらの対話４１２ｂ〜ｃとデータ・トラフィックのイベント４１６ｂ〜ｃを識別し、識別済みのユーザ対話４１２ｂ〜ｃと識別済みのデータ・トラフィックのイベント４１６ｂ〜ｃとを含む分析データ４１４を分析サーバ１０８へ上記と同様にして転送する。
【符号の説明】
【００８２】
１００    システム
１０２ａ〜ｃ    サーバ
１１０ａ〜ｃ    クライアント計算機
１０８    データ格納手段
１０６    分析サーバ
２０２    受信部
２０４    イベント・グルーピング部
２０６    パターン識別部
２０８    ノーマル状態算出部
２１０    パターン格納部
４１０    ユーザ
４１２ａ〜ｃ    ユーザ対話
４１６ａ〜ｃ    データ・トラフィックのイベント
４１４    分析データ
４１６    エージェント
５０２    エージェントから受信した分析データ
５０４、５０６    時間枠
７０２    ユーザ対話識別手段
７０４    ユーザ・セッション識別手段
７０６    データ・トラフィック・イベント識別手段
７０８    ユーザ対話とユーザ識別子との対応付け手段
７１０    分析データ転送手段
【図１】
2015185166.tif 000005
【図２】
2015185166.tif 000006
【図３】
2015185166.tif 000007
【図４】
2015185166.tif 000008
【図５】
2015185166.tif 000009
【図６】
2015185166.tif 000010
【図７】
2015185166.tif 000011
【外国語明細書】
2015185166000001.pdf