(57)【特許請求の範囲】
【請求項１】
クライアント−サーバトランザクションをアノテーションするためのシステムであって、前記システムは、
非トランザクションデータ及びトランザクションデータのストリームを受信するように構成されたインターフェースであって、
前記非トランザクションデータが、前記コンピュータのユーザによって取られた１つ以上のアクションに対応している、コンピュータ上の複数のイベントに関連付けられている情報を含み、前記非トランザクションデータが、前記複数のイベントの時点での前記コンピュータの表示のスクリーンショットを含み、前記スクリーンショットはカーソルと第１ユーザアクションに対応する第１のテキストフィールドと第２ユーザアクションに対応する第２のテキストフィールドとを含み、
トランザクションデータの前記ストリームが、前記コンピュータとサーバとの間の１つ以上のトランザクションを含み、かつ前記複数のイベントに関連付けられている、インターフェースと、
プロセッサであって、
トランザクションデータの前記ストリームを、複数の部分に分割することと、
前記複数の部分のうちの１つの部分の、前記複数の部分のうちの別の部分との類似性に基づいて、前記複数の部分を１つ以上のグループに分類することであって、前記１つ以上のグループ内に含まれる複数の部分の各々は前記コンピュータのユーザによって取られた１つ以上のアクションのトリガアクションに対応する、分類することと、
前記１つ以上のグループの各グループについて、前記トリガアクションを識別することであって、前記トリガアクションの識別のために前記カーソルと前記コンピュータの表示のスクリーンショット上の前記第１のテキストフィールドとの間の距離が測定されまた前記カーソルと前記コンピュータの表示のスクリーンショット上の前記第２のテキストフィールドとの間の距離が測定されるのでありかつ前記カーソルと最短距離にある前記テキストフィールドに対応する前記ユーザアクションがトリガアクションであると決定される、識別することと、
前記識別に少なくとも部分的に基づいて、前記複数のグループの各グループをラベリングすることと、
前記ユーザと前記サーバとの間の異常挙動を検出するために、前記ラベリングされたデータのグループを監視することと、を行うように構成されたプロセッサと、を備える、システム。
【請求項２】
前記プロセッサが、前記非トランザクションデータを前記トランザクションデータと相関させることによって、各グループが対応している前記１つ以上のアクションのうちの前記トリガアクションを識別するように、更に構成され、
前記プロセッサが、前記非トランザクションデータが前記トランザクションデータに対応している確率を判定することによって、前記ユーザによって取られた前記トリガアクションを識別するように、更に構成されている、請求項１に記載のシステム。
【請求項３】
前記プロセッサが、前記１つ以上のトランザクションに関連付けられている１つ以上のタイムスタンプに基づいて、トランザクションデータの前記ストリームを分割し、
前記プロセッサが、閾値に基づいて、前記複数の部分のうちの１つの部分が前記複数の部分のうちの別の部分と類似しているかどうかを判定する、請求項１に記載のシステム。
【請求項４】
前記プロセッサが、前記識別に基づいて、前記１つ以上のトランザクションの各々をラベリングするように、更に構成されている、請求項１に記載のシステム。
【請求項５】
ソフトウェアを実行するコンピュータでクライアント−サーバトランザクションをアノテーションするための方法であって、前記方法は、
前記コンピュータ上の複数のイベントに関連付けられているトランザクションデータのストリームを受信することであって、前記複数のイベントが、コンピュータのユーザによって取られた１つ以上のアクションに対応している、受信することと、
トランザクションデータの前記ストリームを、複数の部分に分割することと、
前記複数の部分のうちの１つの部分の、前記複数の部分のうちの別の部分との類似性に基づいて、前記複数の部分を１つ以上のグループに分類することであって、前記１つ以上のグループ内に含まれる複数の部分の各々は前記コンピュータのユーザによって取られた１つ以上のアクションのトリガアクションに対応する、分類することと、
非トランザクションデータを前記コンピュータから受信することであって、前記非トランザクションデータが、前記複数のイベントの時点での前記コンピュータの表示のスクリーンショットを含み、前記スクリーンショットはカーソルと第１ユーザアクションに対応する第１のテキストフィールドと第２ユーザアクションに対応する第２のテキストフィールドとを含む、受信することと、
前記１つ以上のグループの各グループについて、前記トリガアクションを識別することであって、前記トリガアクションの識別のために前記カーソルと前記コンピュータの表示のスクリーンショット上の前記第１のテキストフィールドとの間の距離が測定されまた前記カーソルと前記コンピュータの表示のスクリーンショット上の前記第２のテキストフィールドとの間の距離が測定されるのでありかつ前記カーソルと最短距離にある前記テキストフィールドに対応する前記ユーザアクションがトリガアクションであると決定される、識別することと、
前記識別に基づいて、各グループをラベリングすることと、
前記ユーザと前記サーバとの間の異常挙動を検出するために、前記ラベリングされたデータのグループを監視することと、を含む、方法。
【請求項６】
各グループが対応している前記１つ以上のアクションのうちの前記トリガアクションを識別することが、前記非トランザクションデータを前記トランザクションデータと相関させることを含み、
前記ユーザによって取られた前記トリガアクションを識別することが、前記非トランザクションデータが前記トランザクションデータに対応している確率を判定することを含む、請求項５に記載の方法。
【請求項７】
トランザクションデータの前記ストリームを分割することが、前記１つ以上のトランザクションに関連付けられている１つ以上のタイムスタンプに基づいており、
前記複数の部分のうちの１つの部分が前記複数の部分のうちの別の部分と類似しているかどうかを判定することが、閾値に基づいている、請求項５に記載の方法。
【請求項８】
前記非トランザクションデータが、前記コンピュータ上のイベントコレクタから受信される、請求項５に記載の方法。
【請求項９】
１つ以上のコンピューティングシステム内の１つ以上のコンピュータ可読非一時的ストレージ媒体であって、前記媒体に記録されたプログラムが、実行されると、
トランザクションデータのストリームを複数の部分に分割することであって、
トランザクションデータの前記ストリームが、コンピュータ上の複数のイベントに関連付けられ、前記複数のイベントが、前記コンピュータのユーザによって取られた１つ以上のアクションに対応している、分割することと、
前記複数の部分のうちの１つの部分の、前記複数の部分のうちの別の部分との類似性に基づいて、前記複数の部分を１つ以上のグループに分類することであって、前記１つ以上のグループ内に含まれる複数の部分の各々は前記コンピュータのユーザによって取られた１つ以上のアクションのトリガアクションに対応する、分類することと、
非トランザクションデータを前記コンピュータから受信することであって、前記非トランザクションデータが、前記複数のイベントの時点での前記コンピュータの表示のスクリーンショットを含み、前記スクリーンショットはカーソルと第１ユーザアクションに対応する第１のテキストフィールドと第２ユーザアクションに対応する第２のテキストフィールドとを含む、受信することと、
前記１つ以上のグループのうちの各グループについて、前記トリガアクションを識別することであって、前記トリガアクションの識別のために前記カーソルと前記コンピュータの表示のスクリーンショット上の前記第１のテキストフィールドとの間の距離が測定されまた前記カーソルと前記コンピュータの表示のスクリーンショット上の前記第２のテキストフィールドとの間の距離が測定されるのでありかつ前記カーソルと最短距離にある前記テキストフィールドに対応する前記ユーザアクションがトリガアクションであると決定される、識別することと、
前記識別に基づいて、前記複数のグループのうちの各グループをラベリングすることと、
前記ユーザと前記サーバとの間の異常挙動を検出するために、前記ラベリングされたデータのグループを監視することと、を行うように実行可能である論理を具現化する、プログラムを記録した媒体。
【請求項１０】
各グループが対応している前記１つ以上のアクションのうちの前記トリガアクションを識別することは、前記非トランザクションデータを前記トランザクションデータと相関させることを含み、
前記ユーザによって取られた前記トリガアクションを識別することは、前記非トランザクションデータが前記トランザクションデータに対応している確率を判定することを含む、請求項９に記載のプログラムを記録した媒体。
【請求項１１】
トランザクションデータの前記ストリームを分割することが、前記１つ以上のトランザクションに関連付けられている１つ以上のタイムスタンプに基づいている、請求項９に記載のプログラムを記録した媒体。
【請求項１２】
前記複数の部分のうちの１つの部分が前記複数の部分のうちの別の部分に類似しているかどうかを判定することが、閾値に基づいている、請求項９に記載のプログラムを記録した媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、クライアント−サーバトランザクションに関し、より具体的には、クライアント−サーバトランザクションをアノテーションするシステム及び方法に関する。
【背景技術】
【０００２】
クライアントコンピュータとサーバとの間のやりとりは、クライアント−サーバトランザクションデータを構成する。クライアント−サーバトランザクションデータは、クライアントコンピュータのユーザによって取られた基本的なアクションを確認するために、ファイルモニタによって使用され得る。しかしながら、多くの場合、クライアント−サーバのトランザクションデータの形式は、ファイルモニタにとって無意味である。その結果、リモートサービスとのユーザのインタラクションを監視することを任されたファイルモニタは、不明なサーバによって使用される構文を学習するのに多くの時間を費やすことがある。
【発明の概要】
【０００３】
一実施形態によれば、ソフトウェアを実行するコンピュータでクライアント−サーバトランザクションをアノテーションするための方法は、コンピュータ上の複数のイベントに関連付けられているトランザクションデータのストリームを受信することであって、複数のイベントは、コンピュータのユーザによって取られた１つ以上のアクションに対応している、受信することと、トランザクションデータのストリームを複数の部分に分割することと、を含む。本方法は、複数の部分を、複数の部分のうちの１つの部分と複数の部分のうちの別の部分との類似性に基づいて、１つ以上の部分に分類することと、複数のイベントに関する情報を含む非トランザクションデータを、コンピュータから受信することと、を更に含む。本方法はまた、１つ以上のグループの各グループについて、非トランザクションデータに基づいて、ユーザによって取られた１つ以上のアクションのうちの可能なアクションを識別することと、各グループを識別に基づいてラベリングすることと、を含む。
【０００４】
特定の実施形態は、１つ以上の技術的利点を提供することができる。例えば、本開示の一実施形態は、ログファイルの人間可読記述を生成することにより、クライアント−サーバトランザクションデータの手動レビュー及び分析に関連付けられているコストを低減することができる。別の例として、本開示の実施形態は、クライアント−サーバトランザクションデータのより高品質の、又はより正確なアノテーションをもたらすことができる。他の技術的利点は、以下の図面、説明、及び請求項から当業者に明らかになるであろう。更に、
上記の特定の利点が列挙されているが、様々な実施形態は、列挙された利点の全部若しくは一部を含んでもよく、又はいずれも含まなくてもよい。
【図面の簡単な説明】
【０００５】
本開示及びその利点をより完全に理解するために、以下の添付の図面と併せて以下の説明に対して参照が行われる。
【図１】特定の実施形態に従う、クライアント−サーバトランザクションをアノテーションするシステムの例示的なネットワーク環境を示す概略図である。
【図２】図１のシステムの一実施形態に従う、クライアント−サーバトランザクションをアノテーションするための例示的な方法を示すフロー図である。
【図３】特定の実施形態に従う、図２の方法に従って分割される前のトランザクションデータのストリームを示す概略図である。
【図４】特定の実施形態に従う、図１のシステムによって受信され得る非トランザクションデータ（ホバーイベントに関連している表示の内部表現）の一例を示す概略図である。
【図５Ａ】本開示のシステム及び方法に従う、クライアント−サーバトランザクションをアノテーションする異なる実施形態を示すフロー図である。
【図５Ｂ】本開示のシステム及び方法に従う、クライアント−サーバトランザクションをアノテーションする異なる実施形態を示すフロー図である。
【図５Ｃ】本開示のシステム及び方法に従う、クライアント−サーバトランザクションをアノテーションする異なる実施形態を示すフロー図である。
【図５Ｄ】本開示のシステム及び方法に従う、クライアント−サーバトランザクションをアノテーションする異なる実施形態を示すフロー図である。
【図６】クライアント−サーバトランザクションをアノテーションするためにログファイル相関器を実行し得る例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【０００６】
コンピュータのユーザのアクションを判定及びラベリングする能力は、リモートサービスとのユーザのインタラクションを監視するために重要であり得る。例えば、ユーザアクション情報は、リモートサービスのセキュリティを損なう異常挙動を検出するために使用され得る。しかしながら、単一のユーザアクションは、特定のユーザアクションを示すものでもないか、又は示唆するものですらない多数のトランザクションを含む可能性があるため、クライアント−サーバトランザクションデータを見ることによってユーザアクションを判定することは困難であり得る。これは、ユーザアクションの結果として１つ以上の任意のアクションが生成されることに起因し得る。例えば、ファイルの削除を伴うトランザクションは、ユーザがクリックすることによってファイルを選択すること（要求）、及びＨＴＴＰサーバがウェブページを更新してファイルが選択されたことを示すこと（応答）の要求−応答のペアを含み得る。このトランザクションを単独で見ると、この要求−応答のペアがユーザアクション「ファイルを削除する」に実際に関連付けられていると判定することは困難である。むしろ、トランザクションが任意であるため、ファイルモニタはこのトランザクションを任意の数のユーザアクションに関連付けることができる。したがって、ログファイルトランザクション情報を有意義に解釈して対応するユーザアクションを検出することができるシステムの必要性が存在する。
【０００７】
本開示の教示は、対応するユーザアクションを判定するために、ログファイルトランザクション情報をユーザのインタラクションと相関させる利点を認識している。以下は、これらの及び他の所望の機能を提供するためのクライアント−サーバトランザクションをアノテーションするシステム及び方法を説明する。
【０００８】
図１は、クライアント−サーバトランザクションに関連付けられているネットワーク１００を示す。ネットワーク１００は、各々が互いに通信可能に結合されたクライアントコンピュータ１１０、ＨＴＴＰサーバ１２０、プロキシサーバ１３０、及び監視デバイス１４０を含むことができる。
【０００９】
一般に、本開示の教示は、ログファイル相関器１８０を使用して、トランザクションデータを非トランザクションデータと相関させてクライアント−サーバトランザクションをアノテーションすることを認識している。監視デバイス１４０は、トランザクションデータ１５０（クライアントコンピュータ１１０とＨＴＴＰサーバ１２０との間のやりとりを表す）、及び非トランザクションデータ１７０（トランザクションデータ１５０に関連するイベントコレクタ１６０によって収集された情報を表す）を受信することができる。監視デバイス１４０上でログファイル相関器１８０を実行することは、トランザクションデータ１５０を非トランザクションデータ１７０と相関させることによって、ログファイルトランザクションのアノテーションを促す。ログファイルをアノテーションすることは、クライアントコンピュータ１１０のユーザによって行われたアクションの識別を容易にすることができる。
【００１０】
ネットワーク１００は、オーディオ、ビデオ、信号、データ、メッセージ、又はそれらの任意の組み合わせを送信することができる任意の相互接続システムを指すことができる。ネットワーク１００は、公衆交換電話網、パブリック又はプライベートデータネットワーク、ローカルエリアネットワーク（ＬＡＮ）、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、大都市圏ネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、インターネット、企業イントラネット、又は任意の他の好適な通信リンク、あるいはこれらの組み合わせなどのローカル、地域、若しくはグローバル通信又はコンピュータネットワーク、を含むことができる。これらのネットワークの１つ以上のうちの１つ以上の部分は、有線又は無線であってもよい。例示的な無線ネットワーク１００は、無線ＰＡＮ（ＷＰＡＮ）（例えば、ＢＬＵＥＴＯＯＴＨ（登録商標）  ＷＰＡＮ）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、携帯電話ネットワーク（例えば、汎欧州デジタル移動電話方式（ＧＳＭ（登録商標））ネットワーク）、若しくは他の好適な無線ネットワーク、又はこれらのうちの２つ以上の組み合わせを含むことができる。
【００１１】
クライアントコンピュータ１１０は、ハードウェア、ソフトウェア、若しくは埋め込み論理構成要素、又は２つ以上のかかる構成要素の組み合わせを含み、クライアントコンピュータ１１０によって実装又はサポートされる適切な機能を実行することができる電子デバイスであってもよい。限定ではなく一例として、クライアントコンピュータ１１０は、デスクトップコンピュータ、ノートブック若しくはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子書籍、ＧＰＳデバイス、カメラ、携帯情報端末（ＰＤＡ）、ハンドヘルド電子デバイス、携帯電話、スマートフォン、他の好適な電子デバイス、又はそれらの任意の好適な組み合わせなどのコンピュータシステムを含むことができる。本開示は、任意の好適なクライアントコンピュータ１４０を意図している。
【００１２】
クライアントコンピュータ１１０は、ネットワーク１００の１つ以上の構成要素（例えば、ＨＴＴＰサーバ１２０、プロキシサーバ１３０、及び監視デバイス１４０）に通信可能に結合されてもよい。一部の実施形態では、クライアントコンピュータ１１０は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、又はＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸなどのウェブブラウザを含んでもよく、１つ以上のアドオン、プラグイン、又は他の拡張子（例えば、イベントコレクタ１６０）を有してもよい。クライアントコンピュータ１１０のユーザは、ウェブブラウザを特定のサーバに向けるユニフォームリソースロケータ（ＵＲＬ）又は他のアドレスを入力してもよく、ウェブブラウザは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求（例えば、要求１５２）を生成し、ＨＴＴＰ要求をＨＴＴＰサーバ１２０に通信してもよい。サーバは、ＨＴＴＰ要求を受け入れ、ＨＴＴＰ要求に応答する１つ以上のファイル（例えば、応答１５４）をクライアントコンピュータ１１０に通信してもよい。応答ファイルは、１つ以上のハイパーテキストマークアップ言語（ＨＴＭＬ）ファイル、拡張マークアップ言語（ＸＭＬ）ファイル、ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）ファイル、カスケーディングスタイルシート（ＣＳＳ）ファイル、画像、他のファイル、又はＨＴＴＰ経由で転送可能な任意の他の好適なデータを含むことができる。クライアントコンピュータ１１０は、ユーザへの提示のために、サーバからの応答ファイルに基づいて、ウェブページをレンダリングしてもよい。本開示は、ＨＴＴＰトランザクションデータをアノテーションすることを具体的に説明し得るが、本開示は、ハイパーテキスト転送プロトコルセキュア（ＨＴＴＰ／Ｓ）トランザクションデータ又は任意の好適なネットワークプロトコルに関連する任意の他のトランザクションデータをアノテーションすることを認識している。
【００１３】
一部の実施形態では、クライアントコンピュータ１１０は、イベントコレクタ１６０を含む。イベントコレクタ１６０は、クライアントコンピュータ１１０上で発生したイベントに関する非トランザクションデータ１６０を収集するように構成されてもよい。一部の実施形態では、イベントコレクタ１６０は、クライアント側ソフトウェア（例えば、非トランザクションデータ１７０）内で発生したイベントに関する非トランザクション情報を捕捉する。例えば、イベントコレクタ１６０は、ウェブブラウザ及び／又はクライアントコンピュータ１１０上で動作するアプリケーションとのユーザのインタラクションに関連している情報を捕捉することができる。本明細書で使用するとき、インタラクションとは、ソフトウェアによって認識され、かつソフトウェアの状態の変化又はソフトウェアによる出力の生成をもたらし得る、ソフトウェアアプリケーションとの任意のインタラクションを指す。一部の実施形態では、イベントコレクタ１６０は、クライアント側ソフトウェアの拡張（例えば、ブラウザプラグイン）であってもよい。他の実施形態では、イベントコレクタ１６０は、クライアント側ソフトウェアのコードに導入されたコードの一部であってもよい。
【００１４】
イベントコレクタ１６０によって捕捉された非トランザクションデータ１７０は、イベントログ（例えば、以下の図４を参照して図解及び説明されるイベントログを参照のこと）に格納されてもよい。イベントログは、ユーザイベントのタイムスタンプ及びユーザイベントのトリガに関するデータなどの非トランザクションデータ１７０を含んでもよい。例として、イベントのトリガは、マウスクリック、マウスホバー、キーボード入力、及び／又はマウス、指、若しくはスタイラスによるドラッグ、タップ、若しくはピンチを含んでもよい。本開示は、特定のイベントトリガを説明するが、本開示は、イベントをトリガし得るクライアントコンピュータ１１０との任意の好適なユーザインタラクションを意図している。
【００１５】
非トランザクションデータ１７０は、イベントの時点でのソフトウェアの表示の状態に関連している情報を含んでもよい。例えば、イベントの時点での表示に関する情報は、表示の全部若しくは一部のスクリーンショット、スクリーンショットから処理されたデータ、及び／又は表示の内部表現の全部若しくは一部の処理から生じるデータ構造を含んでもよい。例えば、内部表現は、文書オブジェクトモデル（「ＤＯＭ」）及び／又はＱｔモデリング言語などの階層ツリーであってもよい。表示の内部表現は、図４を参照して以下で更に詳細に説明される。
【００１６】
非トランザクションデータ１７０はまた、イベントが発生した表示内の位置を含んでもよい。本開示は、「位置」が、表示の座標系においてイベントが発生しているものとして理解され得るところから近似的に推論され得る任意の情報を指し得ることを意図している。例えば、位置データは、マウスクリックの位置に対応している座標ペアとして表されてもよい。別の例として、位置データは、キーボードのストロークが記録されているリーフノードに至る表示のツリー表現におけるノードのパスとして表されてもよい。更に別の例として、位置データは、ユーザが画面をタップしたユーザインターフェース内のサブウィンドウによって表されてもよい。
【００１７】
イベントコレクタ１６０によって収集された非トランザクションデータ１７０は、更なる処理のためにネットワークを介して送信されてもよい。例えば、クライアントコンピュータ１１０は、非トランザクションデータ１７０を、プロキシサーバ１３０を介して監視デバイス１４０に送信してもよい。別の例として、クライアントコンピュータ１１０は、非トランザクションデータ１７０を監視デバイス１４０に直接送信してもよい。一部の実施形態では、非トランザクションデータは、通信インターフェース監視デバイス１４０によって受信される。本開示は、監視デバイス１４０が非トランザクションデータ１７０を受信する特定の方法を説明しているが、本開示は、監視デバイス１４０が非トランザクションデータ１７０を受信する任意の好適な方法を認識している。
【００１８】
ＨＴＴＰサーバ１２０は、一部の実施形態では、ウェブサーバであってもよい。ＨＴＴＰサーバ１２０は、クライアントコンピュータ（例えば、クライアントコンピュータ１１０）からの要求１５２を処理し、応答１５４をクライアントコンピュータに返してもよい。この要求−応答のやりとりは、本明細書では、単一のトランザクションと称される。
【００１９】
クライアントコンピュータ１１０とＨＴＴＰサーバ１２０との間の１つ以上のトランザクションは、クライアント−サーバトランザクションデータ（本明細書では「トランザクションデータ」とも称される）１５０を含んでもよい。トランザクションデータ１５０は、クライアントコンピュータ１１０とＨＴＴＰサーバ１２０との間の全てのやりとり（トランザクション）を表してもよい。一部の実施形態では、トランザクションデータ１５０は、単一の要求−応答のペア（１５２及び１５４）であってもよい。他の実施形態では、トランザクションデータ１５０は、２つ以上の要求−応答のペア（１５２及び１５４）を含んでもよい。クライアント−サーバトランザクションデータ１５０については、図３を参照して以下に更に詳細に説明する。
【００２０】
プロキシサーバ１３０は、一部の実施形態では、ネットワーク環境１００上に存在してもよい。プロキシサーバ１３０は、クライアントコンピュータ（例えば、クライアントコンピュータ１１０）とウェブサーバ（例えば、ＨＴＴＰサーバ１２０）との間の仲介手段として機能してもよい。一部の実施形態では、プロキシサーバ１３０は、クライアント−サーバトランザクションデータ１５０を記録してもよい。
【００２１】
クライアント−サーバトランザクションデータ１５０は、トランザクションの連続ストリーム（例えば、図３のトランザクションデータ３０５のストリーム）として記録されてもよい。一部の実施形態では、プロキシサーバ１３０は、トランザクションデータ１５０を内部ストレージドライブに保存することができる。その他の実施形態では、プロキシサーバ１３０によって記録されたトランザクションデータは、監視デバイス１４０のストレージ又はメモリのような外部ストレージドライブに保存されてもよい。本開示は、プロキシサーバを、トランザクションデータを記録するものとして説明及び図解するが、本開示は、クライアントコンピュータ１１０とサーバ１２０との間でトランザクションデータ１５０を捕捉するように構成された任意の好適な構成要素を認識している。
【００２２】
監視デバイス１４０は、一部の実施形態では、ネットワーク環境１００上に存在してもよい。一部の実施形態では、監視デバイス１４０は、図６のコンピュータシステム６００のようなコンピュータシステムである。一部の実施形態では、監視デバイス１４０は、クライアント−サーバトランザクションデータ１５０を格納するように構成されてもよい。監視デバイス１４０はまた、ログファイル相関器１８０を格納するように構成されてもよい。ログファイル相関器１８０は、本発明の実施形態に従う、クライアント−サーバトランザクション１５０のアノテーションを容易にするデータ処理プログラムである。一部の実施形態では、監視デバイス１４０はまた、非トランザクションデータ１７０を格納してもよい。
【００２３】
一部の実施形態では、ログファイル相関器１８０は、図２を参照して以下に説明する方法２００に従ってログファイルトランザクションをアノテーションする。トランザクションデータ１５０、及びそれを分割することは、図３を参照して図解及び説明される。非トランザクションデータ、具体的にはウェブサイトの内部表現は、図４を参照して以下に図解及び説明される。本開示の特定の実施形態に従った、トランザクション及び非トランザクション情報を処理する様々なフローが、図５Ａ〜図５Ｄを参照して図解及び説明される。最後に、ログファイル相関器を実行するように構成された監視デバイス１４０のようなコンピュータシステムが、図６を参照して図解及び説明される。
【００２４】
図２は、クライアント−サーバトランザクションをアノテーションするための方法２００を示すフロー図である。一部の実施形態では、図１のログファイル相関器１８０は、図２の方法を実施してもよい。図２の方法は、コントローラのメモリ（例えば、図６のメモリ６２０）のようなコンピュータ可読媒体に格納されたアルゴリズムを表してもよい。
【００２５】
ここで図２に戻ると、方法２００は工程２０５で開始してもよい。工程２１０で、ログファイル相関器１８０はトランザクションデータを受信する。一部の実施形態では、トランザクションデータは、プロキシサーバ１３０から監視デバイス１４０によって受信される。一部の実施形態では、トランザクションデータは、監視デバイス１４０の通信インターフェースによって受信される。
【００２６】
上述したように、トランザクションデータは、クライアントコンピュータ１１０とＨＴＴＰネットワーク１２０との間のやりとりを指すことができる。トランザクションデータは、特定の時間期間、ＨＴＴＰトラフィックの単一のストリームとして受信されてもよい。トランザクションデータは、クライアントコンピュータ１１０とＨＴＴＰサーバ１２０との間のイベントに対応している複数のトランザクションを含んでもよい。これらのイベントは、ユーザアクションに関連していてもよい。本明細書で使用するとき、ユーザアクションとは、クライアントソフトウェアを介してリモートサービスで発生する、１つ以上のイベントに対応しているクライアント−コンピュータのユーザの目的を指すことができる。一部の実施形態では、ユーザアクションは、クラウドアプリケーションによってサポートされることが知られているアクションであってもよい。例えば、ユーザアクションは、電子メールの送信、電子メールの受信、アップロード、ダウンロード、ファイルの送信、ファイルの移動、ファイルの削除、インスタントメッセージの送信、インスタントメッセージの受信、連絡先の追加などのうちの１つであってもよい。本開示は、ユーザアクションの特定のタイプを説明するが、本開示は、クライアントコンピュータ１１０のユーザの任意の好適なアクションを意図している。一部の実施形態では、方法２００は工程２２０に続いてもよい。
【００２７】
工程２２０で、ログファイル相関器１８０は、非トランザクションデータを受信する。一部の実施形態では、ログファイル相関器１８０は、クライアントコンピュータ１１０のイベントコレクタ１６０から非トランザクションデータを受信する。非トランザクションデータは、ユーザイベントのタイムスタンプ、ユーザイベントのトリガに関するデータ、ユーザイベントの時点での表示の状態、及び／又はユーザイベントが発生した表示内の位置を含んでもよい。一部の実施形態では、方法は、工程２３０に続く。
【００２８】
工程２３０で、ログファイル相関器１８０は、トランザクションデータを部分に分割する。本明細書で使用するとき、「部分」という用語は、「バースト」という用語と交換可能に使用され得る。例えば、図３を参照すると、これらの部分は、トランザクションのバーストと称される。一部の実施形態では、トランザクションデータの分割は、判定論的である。本明細書で使用するとき、判定論的分割とは、アルゴリズムが２回以上実行された場合でも、トランザクションデータの単一のセットから同じ部分を生成するアルゴリズムを指す。他の実施形態では、トランザクションデータの分割はランダム化される。本明細書で使用するとき、ランダム化された分割とは、アルゴリズムが２回以上実行されるときに、トランザクションデータの単一のセットから異なる部分を生成し得るアルゴリズムを指す。トランザクションデータの分割は、有限の一連の工程として、又は反復的に最適化若しくは統計的推定として実施されてもよい。一部の実施形態では、トランザクションデータの分割は、トランザクション到着間隔時間（すなわち、１つのトランザクションの開始又は終了時間から測定して、時間的に連続して発生するトランザクションの発生間の時間）、トランザクションの時点と収集されたイベントデータとの関係、及びトランザクションの内容、長さ、及び／又はテキストの特徴、並びに／あるいはイベントの内容、長さ、及び／又はテキストの特徴に基づいている。トランザクションデータ１５０は、各トランザクションが単一の部分に属するか、又は１つ以上の部分に属する確率を示す値が割り当てられるように分割されてもよい。
【００２９】
典型的には、単一のユーザアクションに関連するトランザクションは、同時に、又はほぼ同時に発生し、休止又は非活動期間が続く。本明細書で使用するとき、非活動期間とはまた、非トランザクションデータ１７０に関連付けられていないか、又は、対応していない時間期間を指すことができる。したがって、時間的に密接に発生するトランザクション（部分／バースト）を識別することは、単一のユーザアクションを示すことができる。
【００３０】
トランザクションデータは、全てのトランザクションのタイムスタンプを含んでもよい。一部の実施形態では、ログファイル相関器１８０は、各トランザクションのタイムスタンプに基づいて、トランザクションデータをトランザクションの部分に分割する。例えば、単一の部分内の全てのトランザクションは、同時に、又はほぼ同時に発生してもよい。一部の実施形態では、トランザクションデータは、非活動期間に基づいて分割される。例えば、第１の部分に対応しているトランザクションの第１のセットは、第１の時間期間内に発生することがあり、この第１の部分に非活動期間が続くことがあり、ここで、今度は、第２の時間期間内に発生する第２の部分に対応しているトランザクションの第２のセットが続くことがある。一部の実施形態では、方法２００は、工程２４０に続いてもよい。
【００３１】
工程２４０で、ログファイル相関器１８０は、部分を１つ以上のグループに分類する。一部の実施形態では、部分は、１つの部分と別の部分との類似性に基づいてグループに分類される。類似している部分が同じユーザアクションに対応している可能性があるため、グループは類似性に基づいて分類されてもよい。したがって、一部の実施形態では、ログファイル相関器１８０によって作成されたグループの数は、トランザクションデータ１５０のストリームに関連付けられているユーザアクションの数に対応している。他の実施形態では、ログファイル相関器１８０によって作成されたグループの数は、トランザクションデータ１５０のストリームに関連付けられているユーザアクションの数よりも大きい。例えば、一部の実施形態では、トランザクションデータ１５０が非トランザクションデータ（例えば、非活動期間中に記録されたトランザクションデータ１５０）と対応していない場合、ログファイル相関器１８０は、インスタンス内のユーザアクションよりも多くのグループを作成する。別の例として、単一のユーザのアクションに関連付けられているトラフィックが区別可能である（例えば、ファイルのダウンロードに関連付けられているトラフィックは、フォルダのダウンロードに関連付けられているトラフィックと区別可能であり得る）場合に、ログファイル相関器１８０は、インスタンス内のユーザアクションよりも多くのグループを作成することがある。更に他の実施形態では、ログファイル相関器１８０は、ユーザアクションよりも少ないグループを作成してもよい。これは、例えば、２つの別個のユーザアクションのトラフィックがほぼ同一である場合に発生する可能性がある（例えば、ユーザアクション「名前変更」のトラフィックは、ユーザアクション「移動」のトラフィックとほぼ同じである）。
【００３２】
部分は、一部の実施形態では、各分割が単一のグループに属するように分類されてもよい。他の実施形態では、部分は、特定のグループへの帰属の確率に基づいて分類されてもよい。例えば、一部の実施形態では、部分は、部分が１つ以上のグループに属する確率を示す値を割り当てられてもよい。帰属の確率は、任意の合理的な尺度によって判定されてもよい。
【００３３】
一部の実施形態では、部分を１つ以上のグループに分類することは、部分内の全てのトランザクションのテキスト及び／又は構造的類似性、部分の中で最も固有のトランザクションのテキスト及び／又は構造的類似性、非常に類似したトランザクションが異なる部分にわたって発生する順序、並びに／あるいは異なる部分からの非常に類似したトランザクションに存在する差違の規則性、に基づいている。一部の実施形態では、部分自体に関する情報は、部分をグループに分類するための類似性の有用な尺度（例えば、１つの部分内のトランザクションの数）であってもよい。
【００３４】
１つの部分が別の部分と類似しているかどうかを判定することは、一部の実施形態では、１つの部分の別の部分との類似性を測定することを含む。例えば、一部の実施形態では、類似性は、統計的分析に基づいて判定される。例えば、一部の実施形態では、余弦差は、１つの部分と別の部分との間で計算される。
【００３５】
類似度は、一部の実施形態では、閾値に基づいて判定される。例えば、一部の実施形態では、２つの部分間の余弦差が閾値と比較される。一部の実施形態では、余弦差が閾値以下である場合、２つの部分が類似していると判定される。他の実施形態では、余弦差が閾値よりも大きい場合、２つの部分は類似していないと判定される。
【００３６】
２つの部分が類似していると判定することは、一部の実施形態では、部分のトランザクションを比較することを含む。例えば、第１の部分は５つのトランザクションを含んでもよく、第２の部分は４つのトランザクションを含んでもよい。かかる場合、システムは、３つの類似しているトランザクションを共有していることを理由に、２つの部分が類似していると判定してもよい。他の実施形態では、２つの部分の非トランザクションデータ１７０を比較することによって、２つの部分の類似性を判定してもよい。本開示は、類似性を判定する特定の方法を説明するが、類似性は任意の好適な方法で判定されてもよい。
【００３７】
各グループは、一部の実施形態では、１つ以上の部分を含む。他の実施形態において、１つの部分は、それ自体のグループを含んでもよい。例えば、任意の他の部分と類似していない部分は、特定のユーザアクションに対応している、それ自体のグループを含んでもよい。
【００３８】
２つ以上の部分のグループに分類できない部分は、類似していないとみなされ得る。一部の実施形態では、１つ以上の類似していない部分は、１つ以上のグループを含んでもよい。かかるグループは、グループ内のいずれの部分とも類似していないため、「ノイズが多い」とみなされ得る。一部の実施形態では、「ノイズの多い」グループは、更なる処理から除外されてもよい。他の実施形態では、「ノイズの多い」グループを使用して、結果として生じるアノテーションに対する確実性を確立することができる。一部の実施形態では、方法２００は、工程２５０に続く。
【００３９】
工程２５０で、ログファイル相関器１８０は、非トランザクションデータに基づいて、各グループに対応している可能性のあるユーザアクションを識別する。一部の実施形態では、非トランザクションデータに基づいて可能なユーザアクションを識別することは、非トランザクションデータとトランザクションデータと相関させることを含む。一部の他の実施形態では、可能なユーザアクションを識別することは、非トランザクションデータがトランザクションデータに対応している確率を判定することを含む。
【００４０】
例えば、ログファイル相関器１８０は、関連するトランザクション及びイベントのタイムスタンプに基づいて、トランザクションデータの第１の部分を非トランザクションデータの第１の部分と相関させてもよい。非トランザクションデータの第１の部分は、マウスクリックの時点での表示のスクリーンショットを含んでもよい。スクリーンショットは、テキスト「ダウンロード」、「アップロード」、「削除」、ファイル名のリスト（例えば、「２０１５＿ｑｕａｒｔｅｒｌｙ＿ｒｅｐｏｒｔｓ．ｄｏｃｘ」及び「２０１６＿ｑｕａｔｅｒｌｙ＿ｒｅｐｏｒｔｓ．ｄｏｃｘ」）を記述してもよく、カーソルが「ＯＫ」を確認のプロンプト上で選択したことを示す。ログファイル相関器１８０は、可能なアクションのうちのどのアクションが、ユーザが撮影したスクリーンショット（ダウンロード、アップロード又は削除）に記述したかを推論してもよい。一部の実施形態では、この推論は、アクションテキストからカーソルまでの距離の測定に基づいていてもよい。例えば、ログファイル相関器１８０は、カーソルがテキスト「ダウンロード」に最も近い距離にあり、テキスト「アップロード」又は「除去」から遠くにあったと判定してもよい。かかるシナリオでは、ログファイル相関器１８０は、トランザクションデータの第１の部分に関連付けられているユーザアクションが「ダウンロード」であると判定してもよい。
【００４１】
同様に、ログファイル相関器１８０は、各グループについて可能なユーザアクションを識別してもよい。例えば、ログファイル相関器１８０は、ユーザの表示上のイベントと表示に記述されたユーザアクションとの間の距離を測定することにより、グループについて、全ての非トランザクションデータを検査してもよい。この情報に基づいて、ログファイル相関器１８０は、表示に記述された各ユーザアクションの確率を判定してもよい。例えば、ログファイル相関器１８０は、カーソルが特定のグループに関連しているスクリーンショットの８２％において、アクションテキスト「ダウンロード」に最も近かったと判定してもよい。ログファイル相関器はまた、カーソルが、グループに関連しているスクリーンショットの２％において、アクションテキスト「アップロード」に最も近かったこと、及びカーソルが、グループに関連しているスクリーンショットの１６％において、アクションテキスト「名前変更」に最も近かったことを判定してもよい。この情報に基づいて、ログファイル相関器１８０は、特定のグループが、その関連する確率がグループの中で最高であるため、ユーザアクション「ダウンロード」に関連していると識別してもよい。本開示は、非トランザクションデータからユーザアクションを推論する特定の方法を述べているが、本開示は、非トランザクションデータからユーザアクションを任意の好適な方法で推論することを認識している。
【００４２】
ログファイル相関器１８０は、一部の実施形態では、非トランザクションデータに基づいて、グループについて２つ以上のユーザアクションを識別してもよい。例えば、ログファイル相関器１８０は、これらのユーザアクションの各々が同じ確率（例えば、ユーザアクションがダウンロードである３３％の確率、ユーザアクションアップロードである３３％の確率、及びユーザアクションが名前変更である３３％の確率）を有している場合、グループがユーザアクション「ダウンロード」、「アップロード」、及び「名前変更」に関連していることを識別してもよい。かかるシナリオでは、ログファイル相関器１８０は、ユーザアクションがそのグループについて不明であると判定してもよい。一部の実施形態では、ログファイル相関器１８０は、グループについて、２つ以上のユーザアクションを識別することに応答して、更なる処理のためにグループにフラグを立ててもよい。フラグが立てられたことに応答して、ファイルモニタは、識別情報を手動でレビューするために通知されてもよい。
【００４３】
一部の実施形態では、可能なユーザアクションを識別することは、閾値分析を含む。例えば、ログファイル相関器１８０は、特定のユーザアクションがユーザによって取られた確率が８０％である場合、特定のユーザアクションを可能なユーザアクションとして選択してもよい。各グループについて可能なユーザアクションを識別することに関する上記の例を参照すると、ログファイル相関器１８０は、「ダウンロード」を、その関連する確率（８２％）が閾値（８０％）を超えたことを理由として、グループについての可能なユーザアクションとして識別してもよい。一部の他の実施形態では、ログファイル相関器１８０は、１つ以上の可能なユーザアクションに関連付けられている確率のいずれもが閾値を超えない場合、ユーザアクションが「不明」であると判定してもよい。ログファイル相関器１８０が、ユーザアクションがグループについて「不明」であると判定した場合、ログファイル相関器１８０は、手動レビューのためにグループにフラグを立ててもよい。一部の実施形態では、方法２００は、工程２６０に続いてもよい。
【００４４】
工程２６０で、ログファイル相関器１８０は、１つ以上のグループのうちの各グループにラベリングする。一部の実施形態では、各グループは、工程２５０で実施される識別に少なくとも部分的に基づいてラベリングされる。例えば、ログファイル相関器１８０は、グループがユーザアクション「ファイルのアップロード」に対応している可能性が高いと識別することに応答して、グループ「ファイルのアップロード」にラベリングしてもよい。一部の実施形態では、グループ内の各部分は、対応するユーザアクションの識別に基づいてラベリングされてもよい。一部の実施形態では、方法２００は、工程２６５で終了する。
【００４５】
したがって、非トランザクションデータをトランザクションデータと相関させることによって、ログファイル相関器１８０は、クライアント−サーバトランザクションをアノテーションすることができる。その結果、トランザクションデータを人間が監視することにより、トランザクションの部分の各グループに対応している可能なユーザアクションを判定することができる。
【００４６】
動作中、クライアントコンピュータ（例えば、クライアントコンピュータ１１０）のユーザは、ネットワーク（例えば、ＨＴＴＰネットワーク１２０）にアクセスするリモートサービスソフトウェアの使用を開始する。ユーザがソフトウェアとインタラクションすると、トランザクション及び非トランザクションデータが生成及び記録され得る。上述したように、プロキシサーバ１３０は、トランザクションデータを記録し、それを監視デバイス１４０に格納させることができる。一部の実施形態では、監視デバイス１４０の通信インターフェースは、トランザクションデータ１５０をプロキシサーバ１３０から受信し、監視デバイス１４０のプロセッサは、トランザクションデータ１５０を内部ストレージに格納させる。
【００４７】
ログファイル相関器１８０は、一部の実施形態では、トランザクションデータをバーストに分割するように構成される。図３は、分割のためのトランザクションデータ３０５のストリームを示す。上述したように、トランザクションデータ３０５は、１つ以上のユーザアクションに関連付けられている複数の要求−応答のペアを含んでもよい。本開示は、トランザクションデータをブラウザとサーバとの間の直接的なやりとりとして説明することができるが、要求−応答のペアは、複数の通信チャネルを介して同時に動作してもよい。例えば、図３は、トランザクションデータが３つのチャネル３４０（例えば、通信チャネル３４０ａ〜ｃ）を介して通信されることを示す。
【００４８】
図３で描写するように、トランザクションデータ３０５のストリームは、「Ａ」として示される「ログイン」アクションと、「Ｂ」として示される「ファイルを削除する」アクションと、の２つの別個のユーザアクションに関する。縦の点線は、ウェブページとのユーザインタラクション３２０を表す。例えば、インタラクション３２０ａは、ユーザがウェブページ上の「ログイン」ボタンをクリックすることに対応し得る。別の例として、インタラクション３２０ｂは、ユーザがファイルをクリックすることに対応しており、インタラクション３２０ｃは、ユーザがウェブページ上の「削除する」ボタンをクリックすることに対応していてもよい。
【００４９】
前述のように、単一のユーザアクションは、１つ以上のイベントに対応している１つ以上のトランザクションに関連付けられていてもよい。本明細書で使用するとき、イベントとは、ソフトウェア状態において変化を引き起こすか、又はソフトウェア出力を生成する、クライアントコンピュータ１１０との任意のユーザインタラクションを指す。図３に描写するように、各要求−応答のペアは、単一のトランザクション３３０を構成し、要求（黒い箱として示される）及び応答（白い箱として示される）を含む。一部のユーザアクションは単一のトランザクション３３０を含み得るが、一部のユーザアクションは２つ以上のトランザクション（例えば、ログインアクション「Ａ」及び削除アクション「Ｂ」を参照のこと）を含む。例として、図３で描写したように、「ファイルを削除する」アクションＢは、以下のイベントに対応し得る４つのトランザクション３３０ｇ〜ｊを含む。（１）ファイルの選択、（２）ファイル削除の表示、（３）ファイル削除の確認、及び（４）ページのリフレッシュ。
【００５０】
トランザクションデータは、特定のユーザアクションに対応している部分に分割されてもよい。例えば、一部の実施形態では、ログファイル相関器１８０は、トランザクションデータ３０５をバースト３１０（例えば、バースト３１０ａ及び３１０ｂ）に分割するように動作可能である。一部の実施形態では、トランザクションデータ３０５は、特定のトランザクション３３０に割り当てられたタイムスタンプに基づいて分割される。
【００５１】
一般に、ユーザは、ユーザがソフトウェアとインタラクションし、別のアクションを取る前にＨＴＴＰサーバからの応答を待つように、連続的にアクションを取る。例えば、ユーザは、ウェブページをフェッチする要求を送信し、ログインしようと試みる前にＨＴＴＰサーバがウェブページを取得するのを待ってもよい。典型的には、単一のユーザインタラクションは、秒単位で分割された連続した一連のトランザクションを迅速に生成し、これらの非常に短い間隔は、ユーザのインタラクション間の比較的長い間隔とは区別可能である。したがって、トランザクションデータ３０５は、バースト的になる傾向があり、すなわち、各トランザクションに短いか又は長い間隔が続くことがあり、ここで、短い間隔は、トランザクションが単一のユーザインタラクションに応答していることを示すことができ、長い間隔は、トランザクションが新しいユーザアクションに対応していることを示すことができる。これらの指示に基づいて、ログファイル相関器１８０は、短い及び長い間隔を識別し、それに応じてトランザクションデータ１５０を分割することができる。
【００５２】
ログファイル相関器１８０は、トランザクションデータ３０５に関連付けられているタイムスタンプを使用して、間隔を識別してもよい。一部の実施形態では、ログファイル相関器１８０は、迅速に連続して発生する全てのトランザクションを単一のバーストとしてクラスタリングする。例えば、図３に描写するように、トランザクションデータ３０５は、「ログイン」アクションＡに対応している時点に密接に関連する複数のトランザクション３３０ａ〜ｆ、その後に続く識別可能な非活動期間３５０、その後に続く「ファイルを削除する」アクションＢに密接に関連している複数のトランザクション３３０ｇ〜ｊを示す。このように、トランザクション３３０ａ〜ｆは、第１のバースト３１０ａにクラスタリングされてもよく、トランザクション３３０ｇ〜ｊは、第２のバースト３１０ｂにクラスタリングされてもよい。したがって、１つ以上のトランザクション３３０は（例えば時点によって）、関連しているものとして識別されてもよく、単一のバースト３１０にクラスタリングされてもよい。上述したように、バースト３１０は、単一のユーザアクションを示しているか又は示唆している可能性がある。例えば、バースト３１０ａはユーザアクションＡに対応している可能性があり、バースト３１０ｂはユーザアクションＢに対応している可能性がある。
【００５３】
ログファイル相関器１８０は、一部の実施形態では、バースト３１０を１つ以上のグループに分類してもよい。バーストの分類は、１つのバーストの別のバーストとの類似性に基づいていてもよい。一部の実施形態では、バーストは、各バーストに含まれる非トランザクションデータの類似性に基づいて１つ以上のグループに分類される。他の実施形態では、バーストは、各バーストに含まれるトランザクションデータの類似性に基づいて１つ以上のグループに分類される。例えば、第１のバーストは、表１の以下のトランザクションデータを含むことができる。
【００５４】
【表１】
0006564532.tif 000002
【００５５】
第２のバーストは、表２の以下のトランザクションデータを含むことができる。
【００５６】
【表２】
0006564532.tif 000003
【００５７】
ログファイル相関器１８０は、バースト１及びバースト２のトランザクションデータを比較し、これらのバーストが類似しており、同じグループに属すると判定してもよい。例えば、ログファイル相関器１８０は、バースト１及びバースト２が、５つの同一の要求−応答のペアを共有するため、バースト１及びバースト２が類似しており、したがって同じグループに属すると判定してもよい。
【００５８】
本開示では、トランザクション情報を人間可読形式で記述及び説明するが、これは、トランザクションデータの典型的な形式ではない。ほとんどの場合、トランザクションデータは、人間にとって無意味である。場合によっては、トランザクションデータは、完全な暗号である。
【００５９】
図３を別の例として取り上げると、ログファイル相関器１８０は、トランザクション３３０ａ〜ｆがトランザクション３３０ｇ〜ｊと十分に類似していないため、第１のバースト３１０ａが第２のバースト３１０ｂと類似していないと判定することができる。かかる場合、ログファイル相関器１８０は、第１のバースト３１０ａ及び第２のバースト３１０ｂを、トランザクションデータ３０５のストリーム内の他のバースト３１０と比較し続けてもよい。上述したように、本開示は任意の好適な方法でバーストを分類することを認識している。一部の実施形態では、トランザクションデータ３０５の各バースト３１０は、１つ以上の類似したバースト３１０を含むグループにあってもよい。他の実施形態では、１つ以上のバースト３１０は、それ自体のグループを含むことができる（例えば、バースト３１０がトランザクションデータ３０５の任意の他のバースト３１０と類似していない場合）。
【００６０】
特定の状況では、ユーザアクションがグループに関連付けられていると判定することが望ましい場合がある。上述のように、応答−要求のペアが単一のユーザアクションを示していない可能性があるため、どのユーザアクションがグループに関連付けられているかを判定することは困難であることがある。したがって、本開示は、非トランザクションデータをトランザクションデータと相関させて、クライアント−サーバトランザクションデータのアノテーションを容易にすることを認識している。
【００６１】
ログファイル相関器１８０は、一部の実施形態では、各グループに対応している可能なユーザアクションを識別することができる。例えば、ログファイル相関器１８０は、上記のバースト１及びバースト２を含むグループが、ユーザアクション「電子メールを送信する」に対応している可能性があると識別してもよい。一部の実施形態では、ユーザアクションがグループに対応しているかどうかを識別することは、非トランザクションデータに基づいている。
【００６２】
図４は、ホバーイベントに関連している表示の内部表現を示す。上述のように、クライアントコンピュータ１１０のイベントコレクタ１６０は、図６に描写される内部表現のような非トランザクションデータを捕捉してもよい。一部の実施形態では、イベントコレクタ１６０は、表示に関連付けられている全ての非トランザクションデータを捕捉する。他の実施形態では、イベントコレクタ１６０は、表示の一部のみに関連付けられている非トランザクションデータを捕捉する。例えば、イベントコレクタ１６０は、ユーザがインタラクションしたウェブページの部分（直接階層のノード）及びユーザがインタラクションした可能性のある部分（直接階層から１レベル深いノード）に関連付けられている非トランザクションデータを捕捉し、ウェブページの残りの部分に関連付けられている非トランザクションデータを除外してもよい。
【００６３】
図４に描写するように、イベントコレクタ１６０は、ユーザがインタラクションしたウェブページのノード（網掛けのノード）、及びユーザがインタラクションした可能性のあるノード（実線で囲まれた白いノード）に関連付けられている非トランザクションデータを捕捉する。例えば、ノード４０５は、マウスクリックイベントを表してもよく、一方でノード４１０は、ホバーイベントを表してもよい。図４に描写するように、イベントコレクタ１６０は、他のノード（破線で囲まれた白いノード）に関連付けられている非トランザクションデータ１７０を捕捉しない。このモデルを使用すると、イベントコレクタ１６０は、ユーザアクションを判定することに関係しない可能性がある情報を無視しながら、ユーザアクションを判定することに関係する情報を収集する可能性があり得る。
【００６４】
上述したように、非トランザクションデータ１７０は、ユーザイベントのタイムスタンプ、ユーザイベントのトリガに関するデータ、ユーザイベントの時点での表示の状態、及び／又はユーザイベントが発生した表示内の位置を含んでもよい。一部の実施形態では、イベントコレクタ１１０は、ユーザインタラクションごとにウェブページのビジュアルの全部又は一部を取得するように構成されてもよい。非トランザクションデータはまた、イベントの位置も含むため、ログファイル相関器１８０は、特定の時点でユーザがウェブページ上でインタラクションしていた内容を判定してもよい。
【００６５】
例えば、図４では、イベントコレクタ１６０は、ホバーイベント４１０に関連している非トランザクションデータ１７０を捕捉した。イベントログは、このイベントに関連付けられている全ての関係する非トランザクションデータ１７０を人間可読形式で表示してもよい。例えば、イベントログは、以下のように表示してもよい。
【００６６】
【表３】
0006564532.tif 000004
【００６７】
イベントログからの非トランザクションデータ１７０を使用して、ログファイル相関器１８０は、イベントを識別してもよい。例えば、ここでログファイル相関器１８０は、クライアントコンピュータ１１０のユーザが１３：０１に「サブタスクノート」ノードの上でホバーしたことを識別してもよい。
【００６８】
この識別は、次いで、イベントを特定のトランザクションと相関させるために使用されてもよい。この相関は、イベント及びトランザクションに関連付けられているタイムスタンプに基づいていてもよい。したがって、ログファイル相関器１８０は、特定のトランザクションが特定のイベントに対応していると判定してもよい。
【００６９】
一例として、ユーザがファイルをダウンロードしたい場合は、ウェブページ上の「ダウンロード」ボタンをクリックする。このユーザインタラクションに関連付けられているトランザクションデータは「ダウンロード」を列挙しない場合があるが、ウェブページは列挙する。イベントコレクタ１６０は、このマウスクリックに関連付けられている非トランザクションデータを捕捉してもよい。例えば、イベントコレクタ１６０は、ウェブページのビジュアル、マウスクリックの時点、及びマウスクリックの位置を捕捉してもよい）。ログファイル相関器１８０は、次いで、ユーザがページ上の特定のポイントでクリックし、ユーザがクリックしたポイントに位置するテキストは「ダウンロード」とラベリングされたと判定してもよい。結果として、ログファイル相関器１８０は、イベントと同じタイムスタンプを共有するトランザクションが単語「ダウンロード」に関連付けられているはずであると判定してもよい。したがって、非トランザクションデータ１７０をトランザクションデータ１５０と相関させて、クライアント−サーバトランザクションのストリーム内の各トランザクションに意味を与えることができる。
【００７０】
ログファイル相関器１８０は、一部の実施形態では、グループが特定のユーザアクションに対応していることを識別するように構成される。例えば、ログファイル相関器１８０は、グループ１がユーザアクション「電子メールを送信する」に関連していると識別してもよい。一部の実施形態では、ログファイル相関器１８０は、非トランザクションデータ１７０に基づいて、グループが特定のユーザアクションに対応していると識別する。
【００７１】
上記で詳述したように、ログファイル相関器１８０は、非トランザクション１７０をトランザクションデータ１５０と相関させることによって、各トランザクションに対応しているイベントを識別してもよい。ログファイル相関器１８０は、次いで、識別されたイベントのうちの１つを、グループに対応しているユーザアクションとして選択してもよい。例えば、ログファイル相関器１８０は、イベントがグループ内に現れる回数に基づいて、識別されたイベントを選択してもよい。別の例として、ログファイル相関器１８０は、閾値分析に基づいて、識別されたイベントを選択してもよい。
【００７２】
ログファイル相関器１８０は、グループ内の特定のトランザクションが無意味なイベントに関連することを判定するように更に構成されてもよい。例えば、ログファイル相関器１８０は、複数のグループに現れるトランザクションがユーザアクションを示すものではなく、更なる処理から除外されるべきであると判定してもよい。一部の実施形態では、ログファイル相関器１８０は、無意味なイベントに対応しているトランザクションを無視するように構成されてもよい。例えば、ログファイル相関器１８０は、識別されたイベントのうちの１つを選択するときに、無意味なイベントを無視するように構成されてもよい。結果として、グループについて識別されたユーザアクションは、ログファイル相関器１８０が無意味であると判定したイベントに基づくことはない。
【００７３】
図２を参照して上述したように、ログファイル相関器１８０はまた、トランザクションデータと相関することがより困難な非トランザクションデータを受信してもよい（例えば、非トランザクションデータが２つ以上の可能なユーザアクションを含む場合）。このように、本開示は、ログファイル相関器１８０が、非トランザクションデータに基づいて特定のユーザアクションが発生した確率又は可能性を判定することによって、ユーザによって取られる可能性のあるユーザアクションを識別できることを認識している。
【００７４】
ログファイル相関器１８０は、一部の実施形態では、グループについて識別されたユーザアクションに少なくとも基づいて、グループをラベリングするように構成されてもよい。一例として、ログファイル相関器１８０は、第１のグループのトランザクションがユーザアクション「電子メールを送信する」と関連している可能性があるという識別に基づいて、第１のグループ「電子メールを送信する」をラベリングしてもよい。一部の実施形態では、各グループは、全ての他のグループとは異なるようにラベリングされてもよい。一部の実施形態では、２つ以上のグループが同じラベルを共有してもよい。一部の実施形態では、グループは、２つ以上のユーザアクションでラベリングされてもよい。かかる場合、ログファイル相関器１８０は、更なる手動処理のために、かかるグループにフラグを立ててもよい。
【００７５】
図５Ａ〜図５Ｄは、クライアント−サーバトランザクションをアノテーションする異なるフローを示す。図５Ａ〜図５Ｄを参照して使用するとき、「バースト識別」、「バーストクラスタリング」、及び「アクションラベリング」という用語は、本開示の実施形態に従うトランザクション及び非トランザクションデータを処理する異なるステージを指す。「バースト識別」とは、図５Ａ〜図５Ｄを参照して使用するとき、トランザクションデータをバーストに分割することを指す。「バーストクラスタリング」とは、図５Ａ〜図５Ｄを参照して使用するとき、バーストを１つ以上のグループ（各グループはユーザアクションを示す）にクラスタリングすることを指す。「アクションラベリング」とは、図５Ａ〜５Ｄを参照して使用するとき、グループが特定のユーザアクションに対応しているという識別に基づいて、グループをラベリングすることを指す。
【００７６】
図５Ａは、連続して発生する３つの処理ステージを示す。例えば、トランザクション及び非トランザクション情報を受信すると、ログファイル相関器１８０は、バースト識別ステージ５０５を開始し、ここで、１つ以上のバーストがトランザクションデータから生成される。ログファイル相関器１８０は、次いで、バーストクラスタリングステージ５１０を開始してもよく、ここで、１つ以上のバーストは１つ以上のグループに分類される。ログファイル相関器１８０は、次いで、アクションラベリングステージ５１５を開始してもよく、ここで、１つ以上のバーストは、グループが関連付けられているユーザアクションに基づいてラベリングされる。
【００７７】
図５Ｂ及び図５Ｃは、２つの処理ステージが同時に発生し、１つの処理ステージが連続して発生する処理フローを示す。本明細書で使用するとき、「同時に」とは、処理ステージの結果が互いに依存していることを意味する。図５Ｂは、バースト識別５０５及びバーストクラスタリング５１０のステージが同時に発生し得、アクションラベリングステージ５１５が続くことを示す。図５Ｃは、バーストクラスタリング５１０及びアクションラベリング５１５のステージを同時に開始する前に発生するバースト識別ステージを示す。
【００７８】
最後に、図５Ｄは、３つの処理ステージが同時に発生し得ることを示す。したがって、システムは、バースト識別ステージ５０５、バーストクラスタリングステージ５１０、及び動作ラベリングステージ５１５を同時に開始することができる。
【００７９】
図６は、例示的なコンピュータシステム６００を示す。上述したように、監視デバイス１４０は、コンピュータシステム６００のようなコンピュータシステムであってもよい。コンピュータシステム６００は、任意の好適な物理的形態の任意の好適なコンピューティングシステムであってもよい。限定ではなく一例として、
コンピュータシステム６００は、仮想マシン（ＶＭ）、組み込みコンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（例えば、コンピュータオンモジュール（ＣＯＭ）若しくはシステムオンモジュール（ＳＯＭ））、デスクトップコンピュータシステム、ラップトップ若しくはノートブックコンピュータシステム、メインフレーム、コンピュータシステムのメッシュ、サーバ、アプリケーションサーバ、又はこれらのうちの２つ以上の組み合わせであってもよい。適切な場合には、コンピュータシステム６００は、１つ以上のコンピュータシステム６００を含み得、一体型若しくは分散型であり、複数の位置にわたり、複数のマシンにわたり、又は１つ以上のネットワーク内に１つ以上のクラウド構成要素を含み得る、クラウド内に駐在してもよい。適切な場合には、１つ以上のコンピュータシステム６００は、本明細書に記載又は図解される１つ以上の方法のうちの１つ以上の工程を、実質的な空間的又は時間的な制限なく実施してもよい。限定ではなく一例として、１つ以上のコンピュータシステム６００は、本明細書に記載又は図解される１つ以上の方法のうちの１つ以上の工程を、リアルタイムに又はバッチモードで実施してもよい。１つ以上のコンピュータシステム６００は、適切な場合には、本明細書に記載又は図解される１つ以上の方法のうちの１つ以上の工程を、異なる時点又は異なる位置で実施してもよい。
【００８０】
１つ以上のコンピュータシステム６００は、本明細書で説明又は図解される１つ以上の方法のうちの１つ以上の工程を実施してもよい。特定の実施形態では、１つ以上のコンピュータシステム６００は、本明細書に説明又は図解された機能を提供する。特定の実施形態では、１つ以上のコンピュータシステム６００上で動作するソフトウェアは、本明細書で説明又は図解される１つ以上の方法のうちの１つ以上の工程を実施し、あるいは本明細書に説明又は図解される機能を提供する。特定の実施形態は、１つ以上のコンピュータシステム６００のうちの１つ以上の部分を含む。本明細書では、コンピュータシステムへの参照は、コンピューティングデバイスを包含することができ、適切な場合には、その逆も可能である。更に、コンピュータシステムへの参照は、適切な場合には、１つ以上のコンピュータシステムを包含することができる。
【００８１】
本開示は、任意の好適な数のコンピュータシステム６００を意図している。本開示は、任意の好適な物理的形態を採るコンピュータシステム６００を意図している。限定ではなく一例として、コンピュータシステム６００は、埋め込みコンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（例えば、コンピュータオンモジュール（ＣＯＭ）若しくはシステムオンモジュール（ＳＯＭ）など）、デスクトップコンピュータシステム、ラップトップ又はノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末（ＰＤＡ）、サーバ、タブレットコンピュータシステム、又はこれらのうちの２つ以上の組み合わせであってもよい。適切な場合には、コンピュータシステム６００は、１つ以上のコンピュータシステム６００を含み得、一体型若しくは分散型であり、複数の位置にわたり、複数のマシンにわたり、複数のデータセンタにわたり、又は１つ以上のネットワーク内に１つ以上のクラウド構成要素を含み得る、クラウド内に駐在してもよい。適切な場合には、１つ以上のコンピュータシステム６００は、本明細書に記載又は図解される１つ以上の方法のうちの１つ以上の工程を、実質的な空間的又は時間的な制限なく実施してもよい。限定ではなく一例として、１つ以上のコンピュータシステム６００は、本明細書に記載又は図解される１つ以上の方法のうちの１つ以上の工程を、リアルタイムに又はバッチモードで実施してもよい。１つ以上のコンピュータシステム６００は、適切な場合には、本明細書に記載又は図解される１つ以上の方法のうちの１つ以上の工程を、異なる時点又は異なる位置で実施してもよい。
【００８２】
コンピュータシステム６００は、図６に描写されるような一部の実施形態では、プロセッサ６１０、メモリ６２０、ストレージ６３０、入力／出力（Ｉ／Ｏ）インターフェース６４０、通信インターフェース６５０、及びバス６６０を含んでもよい。本開示は、特定の構成において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明及び図解するが、本開示は、任意の好切な配置の任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを意図している。
【００８３】
プロセッサ６１０は、特定の実施形態では、コンピュータプログラムを構成するような命令を実行するためのハードウェアを含む。例えば、プロセッサ６１０は、ログファイル相関器１８０を実行して、クライアント−サーバトランザクション１５０のアノテーションを容易にしてもよい。限定ではなく一例として、命令を実行するために、プロセッサ６１０は、内部レジスタ、内部キャッシュ、メモリ６２０、又はストレージ６３０から命令を取り出し（又はフェッチし）得、その命令を復号及び実行し、次いで、１つ以上の結果を内部レジスタ、内部キャッシュ、メモリ６２０、又はストレージ６３０に書き込んでもよい。
【００８４】
特定の実施形態では、プロセッサ６１０は、データ、命令、又はアドレス用の１つ以上の内部キャッシュを含んでもよい。本開示は、適切な場合には、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ６１０を意図している。限定ではなく一例として、プロセッサ６１０は、１つ以上の命令キャッシュ、１つ以上のデータキャッシュ、及び１つ以上の変換ルックアサイドバッファ（ＴＬＢ）を含んでもよい。命令キャッシュ内の命令は、メモリ６２０又はストレージ６３０内の命令のコピーであってもよく、命令キャッシュは、プロセッサ６１０による命令の検索を加速してもよい。データキャッシュ内のデータは、プロセッサ６１０で実行中の命令が演算するためのメモリ６２０又はストレージ６３０内のデータ、プロセッサ６１０で実行中の後続の命令によるアクセスのために、又はメモリ６２０若しくはストレージ６３０に書き込むために、プロセッサ６１０で実行された以前の命令の結果、あるいは他の適好なデータのコピーであってもよい。データキャッシュは、プロセッサ６１０による読み出し又は書き込み演算を加速してもよい。ＴＬＢは、プロセッサ６１０の仮想アドレス変換を加速してもよい。特定の実施形態では、プロセッサ６１０は、データ、命令、又はアドレス用の１つ以上の内部レジスタを含んでもよい。本開示は、適切な場合には、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ６１０を意図している。適切な場合には、プロセッサ６１０は、１つ以上の演算論理装置（ＡＬＵ）を含んでもよく、マルチコアプロセッサであってもよく、又は１つ以上のプロセッサ１７５を含んでもよい。本開示は、特定のプロセッサを説明及び図解するが、本開示は、任意の好適なプロセッサを意図している。
【００８５】
メモリ６２０は、プロセッサ６１０が実行するための命令、又はプロセッサ６１０が演算するためのデータを格納するためのメインメモリを含んでもよい。限定ではなく一例として、コンピュータシステム６００は、ストレージ６３０又は別のソース（例えば、別のコンピュータシステム６００など）からメモリ６２０に命令をロードしてもよい。プロセッサ６１０は、次いで、メモリ６２０から内部レジスタ又は内部キャッシュに命令をロードしてもよい。命令を実行するために、プロセッサ６１０は、内部レジスタ又は内部キャッシュから命令を取り出し、その命令を復号してもよい。命令の実行中又は実行後に、プロセッサ６１０は、１つ以上の結果（中間又は最終結果であり得る）を内部レジスタ又は内部キャッシュに書き込んでもよい。プロセッサ６１０は、その結果の１つ以上をメモリ６２０に書き込んでもよい。特定の実施形態では、プロセッサ６１０は、１つ以上の内部レジスタ若しくは内部キャッシュ内、又はメモリ６２０内（ストレージ６３０又は他の場所ではなく）の命令のみを実行し、１つ以上の内部レジスタ若しくは内部キャッシュ内、又はメモリ６２０内（ストレージ６３０又は他の場所ではなく）のデータのみに対して演算する。１つ以上のメモリバス（これはそれぞれアドレスバス及びデータバスを含み得る）は、プロセッサ６１０をメモリ６２０に結合してもよい。バス６６０は、後述するように、１つ以上のメモリバスを含んでもよい。特定の実施形態では、プロセッサ６１０とメモリ６２０との間に１つ以上のメモリ管理ユニット（ＭＭＵ）が駐在し、プロセッサ６１０によって要求されたメモリ６２０へのアクセスを容易にする。特定の実施形態では、メモリ６２０は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合には、揮発性メモリであってもよい。このＲＡＭは、適切な場合には適切な場合には、ダイナミックＲＡＭ（ＤＲＡＭ）又はスタティックＲＡＭ（ＳＲＡＭ）であってもよい。更に、このＲＡＭは、シングルポート又はマルチポートのＲＡＭであってもよい。本開示は、任意の好適なＲＡＭを意図している。メモリ６２０は、適切な場合には、１つ以上のメモリ１８０を含んでもよい。本開示は特定のメモリを説明及び図解するが、本開示は任意の好適なメモリを意図している。
【００８６】
ストレージ６３０は、データ又は命令の大容量ストレージを含んでもよい。限定ではなく一例として、ストレージ６３０は、ハードディスクドライブ（ＨＤＤ）、フロッピーディスクドライブ、フラッシュメモリ、及び光ディスク、光磁気ディスク、磁気テープ、若しくはユニバーサルシリアルバス（ＵＳＢ）ドライブ、又はこれらの２つ以上の組み合わせを含んでもよい。ストレージ６３０は、適切な場合には、取り外し可能又は取り外し不能（又は固定）媒体を含んでもよい。ストレージ６３０は、適切な場合には、コンピュータシステム６００の内部又は外部にあってもよい。特定の実施形態では、ストレージ６３０は、不揮発性の固体メモリである。特定の実施形態では、ストレージ６３０は、読み出し専用メモリ（ＲＯＭ）を含む。適切な場合には、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書き換え可能ＲＯＭ（ＥＡＲＯＭ）、若しくはフラッシュメモリ、又はこれらの２つ以上の組み合わせであってもよい。本開示は、任意の好適な物理的形態を採る大容量ストレージ６３０を意図している。ストレージ６３０は、適切な場合には、プロセッサ６１０とストレージ６３０との間の通信を容易にする１つ以上のストレージ制御ユニットを含んでもよい。適切な場合には、ストレージ６３０は、１つ以上のストレージ１４０を含んでもよい。本開示は特定のストレージを説明及び図解するが、本開示は任意の好適なストレージを意図している。
【００８７】
Ｉ／Ｏインターフェース６４０は、コンピュータシステム６００と１つ以上のＩ／Ｏデバイスとの間の通信のための１つ以上のインターフェースを提供するハードウェア、ソフトウェア、又はその両方を含んでもよい。コンピュータシステム６００は、適切な場合には、これらのＩ／Ｏデバイスのうちの１つ以上を含んでもよい。これらのＩ／Ｏデバイスの１つ以上は、人間とコンピュータシステム６００との間の通信を可能にすることができる。限定ではなく例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロホン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なＩ／Ｏデバイス、又はこれらのうちの２つ以上の組み合わせを含んでもよい。Ｉ／Ｏデバイスは、１つ以上のセンサを含んでもよい。本開示は、任意の好適なＩ／Ｏデバイス、及びそれらのための任意の好適なＩ／Ｏインターフェース１８５を意図している。適切な場合には、Ｉ／Ｏインターフェース６４０は、プロセッサ６１０がこれらのＩ／Ｏデバイスのうちの１つ以上を駆動することを可能にする１つ以上のデバイス又はソフトウェアドライバを含んでもよい。Ｉ／Ｏインターフェース６４０は、適切な場合には、１つ以上のＩ／Ｏインターフェース１８５を含んでもよい。本開示は、特定のＩ／Ｏインターフェースを説明及び図解するが、本開示は、任意の好適なＩ／Ｏインターフェースを意図している。
【００８８】
通信インターフェース６５０は、コンピュータシステム６００と１つ以上の他のコンピュータシステム６００又は１つ以上のネットワーク（例えばネットワーク１００）との間の通信（例えば、パケットベースの通信など）のための１つ以上のインターフェースを提供するハードウェア、ソフトウェア、又はその両方を含んでもよい。限定ではなく一例として、通信インターフェース６５０は、イーサネット（登録商標）又は他のワイヤベースのネットワークと通信するネットワークインターフェースコントローラ（ＮＩＣ）又はネットワークアダプタ、あるいはＷｉ−Ｆｉネットワークなどのワイヤレスネットワークと通信するワイヤレスＮＩＣ（ＷＮＩＣ）又はワイヤレスアダプタを含んでもよい。本開示は、任意の好適なネットワーク及びそのための任意の好適な通信インターフェース６５０を意図している。限定ではなく一例として、コンピュータシステム６００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、大都市圏ネットワーク（ＭＡＮ）、若しくはインターネットの１つ以上の部分、又はこれらのうちの２つ以上の組み合わせと通信してもよい。これらのネットワークの１つ以上のうちの１つ以上の部分は、有線又は無線であってもよい。限定ではなく一例として、コンピュータシステム６００は、無線ＰＡＮ（ＷＰＡＮ）（例えば、ＢＬＵＥＴＯＯＴＨ（登録商標）  ＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、携帯電話ネットワーク（例えば、汎欧州デジタル移動電話方式（ＧＳＭ（登録商標））ネットワークなど）、若しくは他の好適な無線ネットワーク、又はこれらのうちの２つ以上の組み合わせと通信してもよい。コンピュータシステム６００は、適切な場合には、これらのネットワークのいずれかのための任意の好適な通信インターフェース６５０を含んでもよい。通信インターフェース６５０は、適切な場合には、１つ以上の通信インターフェース１９０を含んでもよい。本開示は、特定の通信インターフェースを説明及び図解するが、本開示は、任意の好適な通信インターフェースを意図している。
【００８９】
バス６６０は、コンピュータシステム６００の構成要素を互いに結合するハードウェア、ソフトウェア、又はその両方を含んでもよい。限定ではなく一例として、バス６６０は、アクセラレーテッドグラフィックスポート（ＡＧＰ）若しくは他のグラフィックスバス、強化業界標準アーキテクチャ（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＴ）相互接続、業界標準アーキテクチャ（ＩＳＡ）バス、インフィニバンド相互接続、低ピンカウント（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアルアドバンストテクノロジアタッチメント（ＳＡＴＡ）バス、ビデオエレクトロニクス規格協会ローカル（ＶＬＢ）バス、若しくは別の好適なバス、又はこれらの２つ以上の組み合わせを含んでもよい。バス６６０は、適切な場合には、１つ以上のバス２１２を含んでもよい。本開示は、特定のバスを説明及び図解するが、本開示は、任意の好適なバス又は相互接続を意図している。
【００９０】
コンピュータシステム６００の構成要素は、統合又は分離されていてもよい。一部の実施形態では、コンピュータシステム６００の構成要素は、それぞれ単一のシャーシ内に収容されてもよい。コンピュータシステム６００の動作は、より多くの、より少ない、又は他の構成要素によって実施されてもよい。更に、コンピュータシステム６００の動作は、ソフトウェア、ハードウェア、他のロジック、又はこれらの任意の好適な組み合わせを含み得る、任意の好適なロジックを使用して実施されてもよい。
【００９１】
本明細書では、コンピュータ可読非一時的ストレージ媒体は、適切な場合には、１つ以上の半導体ベースの又は他の集積回路（ＩＣ）（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）若しくは特定用途向けＩＣ（ＡＳＩＣ）など）、ハードディスクドライブ（ＨＤＤ）、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピーディスク、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、固体ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタルカード若しくはドライブ、任意の他の好適なコンピュータ可読非一時的ストレージ媒体、又はこれらのうちの２つ以上の任意の好適な組み合わせを含んでもよい。コンピュータ可読非一時的ストレージ媒体は、適切な場合には、揮発性、不揮発性、又は揮発性と不揮発性との組み合わせであってもよい。
【００９２】
本明細書では、別段に明記されていない限り、又は文脈によって示されていない限り、「又は」は排他的ではなく包含的である。したがって、本明細書では、別段に明記されていない限り、又は文脈によって示されていない限り、「Ａ又はＢ」は「Ａ、Ｂ、又はその両方」を意味する。更に、別段に明記されていない限り、又は文脈によって示されていない限り、「及び」は共同及び個別の両方である。したがって、本明細書では、別段に明記されていない限り、又は文脈によって示されていない限り、「Ａ及びＢ」は、「Ａ及びＢが共同的に、又は個別的に」を意味する。
【００９３】
本開示の範囲は、当業者なら理解するはずである、本明細書で説明又は図解される例示的実施形態に対する全ての変更、置換、変形、改変、及び修正を包含する。本開示の範囲は、本明細書で説明又は図解される例示的実施形態に限定されない。更に、本開示は、本明細書のそれぞれの実施形態が特定の構成要素、要素、機能、動作、又は工程を含むものとして説明及び図解するが、これらの実施形態のいずれも、当業者なら理解するはずである、本明細書のどこかで説明又は図解される構成要素、要素、機能、動作、又は工程のいずれかの任意の組み合わせ又は置換を含むことができる。更に、特定の機能を実施するように適合され、配置され、実施することが可能であり、実施するように構成され、実施することが可能にされ、実施するように動作可能である装置又はシステムあるいは装置又はシステムの構成要素に対する添付の特許請求の範囲での参照は、その装置、システム、又は構成要素がそのように適合され、配置され、可能であり、構成され、可能にされ、動作可能にされる限り、その装置、システム、構成要素又はその特定の機能が活動化され、オンにされ、又はロック解除されるか否かに関わらず、その装置、システム、構成要素を包含する。
【図１】
0006564532.tif 000005
【図２】
0006564532.tif 000006
【図３】
0006564532.tif 000007
【図４】
0006564532.tif 000008
【図５Ａ】
0006564532.tif 000009
【図５Ｂ】
0006564532.tif 000010
【図５Ｃ】
0006564532.tif 000011
【図５Ｄ】
0006564532.tif 000012
【図６】
0006564532.tif 000013