(57)【要約】【解決手段】期間内のセッション中に受信されたデータパケット集合を取得する。集合の各パケットにセッションの一意識別子を関連付ける。期間内の選択セッションのスキューを、選択セッションの識別子が関連付けられた少なくとも２つのデータパケットの各受信デバイスクロックと各送信デバイスクロックとの間の速度差に基づいて決定する。選択セッションは、コンピューティングデバイスに関連付けられる。各データパケットについて、決定されたスキューおよびパケットのそれぞれのタイムスタンプ情報に基づいて、アップ時間を計算する。各アップ時間が、以前のセッション又は選択セッションに以前関連付けられたセッションに関連付けられたパケットについて以前計算されたアップ時間と一致するか否かを識別する。コンピューティングデバイスに関連付けられたセッションのリストをアップ時間と以前計算されたアップ時間の間の識別された一致に基づいて更新する。【選択図】図１
2020510379.tif 000002
【特許請求の範囲】
【請求項１】
タイムスタンプデータに基づいてセッションを関連付けるための方法であって、
或る時間期間内の１つ以上のセッションの最中に受信されたデータパケットの集合を取得するステップであって、前記データパケットの集合内の各パケットに、それぞれのセッションの一意の識別子が関連付けられているステップと、
前記時間期間内の前記セッションから選択される一セッションのパケットについてスキューを決定するステップであって、前記決定は、前記選択されたセッションの前記一意の識別子が関連付けられた少なくとも２つのデータパケットのそれぞれの受信デバイスクロックとそれぞれの送信デバイスクロックとの間の速度差に基づき、前記選択されたセッションは、クライアントデバイスに関連付けられているステップと、
前記取得したデータパケットの各々についてアップ時間を計算するステップであって、前記計算されるアップ時間は、前記決定されたスキューおよび前記データパケットのそれぞれのタイムスタンプ情報に基づくステップと、
前記計算されたアップ時間の各々が、以前に選択されたセッションに関連付けられたパケットについて以前に計算されたアップ時間と一致するか否かを識別するステップと、
前記それぞれの計算されたアップ時間と前記以前に計算されたアップ時間との間の１つ以上の識別された一致に基づいて、前記クライアントデバイスに関連付けられたセッションのリストを更新するステップと
を含む方法。
【請求項２】
前記セッションは、ＴＣＰセッションである、請求項１に記載の方法。
【請求項３】
前記取得したパケットのうちの１つを、前記選択されたセッションに関して前記時間期間内で最も最近に受信されたパケットとして識別するステップと、
前記識別されたパケットが前記選択されたセッションの前記一意の識別子に関連付けられていることに基づいて、前記選択されたセッションを識別するステップと
をさらに含む、請求項２に記載の方法。
【請求項４】
ＩＰアドレスに基づいて前記取得したデータパケットをフィルタ処理するステップ
をさらに含む、請求項１に記載の方法。
【請求項５】
少なくとも１つの外れ値データパケットを破棄するステップ
をさらに含む、請求項１に記載の方法。
【請求項６】
前記外れ値データパケットは、それぞれのタイムスタンプデータに基づいて前記集合に関する他のデータパケットに対して選択されたパーセンタイルに入ることに基づいて識別される、請求項５に記載の方法。
【請求項７】
少なくとも１つのデータパケットを、前記少なくとも１つのデータパケットにタイムスタンプデータが関連付けられていない場合に破棄するステップ
をさらに含む、請求項１に記載の方法。
【請求項８】
各々のデータパケットの前記それぞれのタイムスタンプは、前記クライアントデバイスからのタイムスタンプおよびサーバからのタイムスタンプを含む、請求項１に記載の方法。
【請求項９】
前記スキューを決定するステップは、
スキューの決定のための前記少なくとも２つのデータパケットを選択するステップであって、前記２つのデータパケットは、前記選択されたセッションから前記時間期間内で最も最近に受信された第１のデータパケットと、前記選択されたセッションに関して所定の時間間隔だけ先に受信された第２のデータパケットとを含むステップと、
前記第１のデータパケットの前記クライアントデバイスのタイムスタンプおよび前記サーバのタイムスタンプ、ならびに前記第２のデータパケットの前記クライアントデバイスのタイムスタンプおよび前記サーバのタイムスタンプに基づいて、前記スキューを計算するステップと
を含む、請求項８に記載の方法。
【請求項１０】
前記スキューを計算するステップは、
前記第１のデータパケットの前記サーバのタイムスタンプと前記第２のデータパケットの前記サーバのタイムスタンプとの間の差を決定するステップと、
前記第１のデータパケットの前記クライアントデバイスのタイムスタンプと前記第２のデータパケットの前記クライアントデバイスのタイムスタンプとの間の差を決定するステップと、
前記サーバのタイムスタンプの差を前記クライアントデバイスの差で除算するステップと
を含む、請求項９に記載の方法。
【請求項１１】
前記アップ時間を計算するステップは、前記スキューを前記クライアントデバイスのタイムスタンプに乗算し、積を前記サーバのタイムスタンプから減算するステップを含む、請求項８に記載の方法。
【請求項１２】
前記それぞれの計算されたアップ時間は、前記それぞれの計算されたアップ時間が前記以前に計算されたアップ時間の所定の範囲内にある場合に、前記以前に計算されたアップ時間に一致すると見なされる、請求項１に記載の方法。
【請求項１３】
前記クライアントデバイスにおけるセッションが、識別子に関連付けられる、請求項１に記載の方法。
【請求項１４】
同じ識別子を有するセッションは、単一のセッションとして取り扱われる、請求項１３に記載の方法。
【請求項１５】
前記更新されたセッションのリストは、後のセッションとの比較の際に単一のセッションとして取り扱われる、請求項１４に記載の方法。
【請求項１６】
タイムスタンプデータに基づいてセッションを関連付けるためのサーバシステムであって、
メモリに格納された命令を実行するプロセッサであって、前記プロセッサによる前記命令の実行が、
或る時間期間内の１つ以上のセッションの最中に受信されたデータパケットの集合を取得し、前記データパケットの集合内の各パケットに、それぞれのセッションの一意の識別子が関連付けられており、
前記時間期間内の前記セッションから選択される一セッションのパケットについてスキューを決定し、前記決定は、前記選択されたセッションの前記一意の識別子が関連付けられた少なくとも２つのデータパケットのそれぞれの受信デバイスクロックとそれぞれの送信デバイスクロックとの間の速度差に基づき、前記選択されたセッションは、クライアントデバイスに関連付けられており、
前記取得したデータパケットの各々についてアップ時間を計算し、前記計算されるアップ時間は、前記決定されたスキューおよび前記データパケットのそれぞれのタイムスタンプ情報に基づき、
前記計算されたアップ時間の各々が、選択されたセッション以前に一致したセッションに関連付けられたパケットについて以前に計算されたアップ時間と一致するか否かを識別する、プロセッサと、
前記クライアントデバイスに関連付けられたセッションのリストを格納するメモリであって、前記格納されたセッションのリストは、前記それぞれの計算されたアップ時間と前記以前に計算されたアップ時間との間の１つ以上の識別された一致に基づいて更新されるメモリと
を備えるサーバシステム。
【請求項１７】
タイムスタンプデータに基づいてセッションを関連付けるための方法を実行するためにプロセッサによって実行することができるプログラムを具体化させた非一時的なコンピュータ可読記憶媒体であって、
前記方法は、
或る時間期間内の１つ以上のセッションの最中に受信されたデータパケットの集合を取得するステップであって、前記データパケットの集合内の各パケットに、それぞれのセッションの一意の識別子が関連付けられているステップと、
前記時間期間内の前記セッションから選択される一セッションのパケットについてスキューを決定するステップであって、前記決定は、前記選択されたセッションの前記一意の識別子が関連付けられた少なくとも２つのデータパケットのそれぞれの受信デバイスクロックとそれぞれの送信デバイスクロックとの間の速度差に基づき、前記選択されたセッションは、クライアントデバイスに関連付けられているステップと、
前記取得したデータパケットの各々についてアップ時間を計算するステップであって、前記計算されるアップ時間は、前記決定されたスキューおよび前記データパケットのそれぞれのタイムスタンプ情報に基づくステップと、
前記計算されたアップ時間の各々が、以前のセッションに関連付けられたパケットについて以前に計算されたアップ時間と一致するか否かを識別するステップと、
前記それぞれの計算されたアップ時間と前記以前に計算されたアップ時間との間の１つ以上の識別された一致に基づいて、前記クライアントデバイスに関連付けられたセッションのリストを更新するステップと
を含む、非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ウェブサイトおよびアプリケーションに関する。より具体的には、本発明は、（例えば、同じデバイスの）タイムスタンプに基づくセッションの関連付けに関する。
【背景技術】
【０００２】
インターネットおよびウェブリソースの使用は、産業化された世界の全体のほぼあらゆる場所に存在する。ユーザは、通常は、無線であるか、あるいは有線接続によるかにかかわらず、通信ネットワークを介して通信を行うことができる多数のコンピューティングデバイスのいずれかを使用してインターネットにアクセスする。より具体的には、ユーザは、コンピューティングデバイス上のアプリケーション（例えば、ブラウザ）を使用して、１つ以上のウェブサーバおよびアプリケーションサーバによってホストされる多数のウェブページおよびウェブサイトのいずれかのコンテンツにアクセスすることができる。本明細書において使用されるとき、ブラウザおよびブラウザ識別子への言及は例示であり、他の種類のアプリケーションを除外するものと解釈されるべきではない。それどころか、本開示は、さまざまなアプリケーションに適用可能であり、さまざまなアプリケーションを含む。
【０００３】
要求に応じて、指定されたウェブページに関連するコンテンツをユーザのコンピューティングデバイスにダウンロードすることができ、さらに、ユーザのコンピューティングデバイスが、表示すべきウェブページをレンダリングすることができる。そのようなダウンロードされるコンテンツとして、ドキュメント、グラフィック、オーディオおよびビデオ、などを含むさまざまな異なる種類のファイル、ならびに関連データ（例えば、メタデータ、カスケードスタイルシートを含むスタイルシート）を挙げることができる。ダウンロードされたコンテンツを、コンピューティングデバイスのローカルメモリのブラウザキャッシュに保存することができる。特定のウェブページまたはウェブサイトのさまざまな要素およびコンポーネントは、時間の経過とともに変化する可能性がある（例えば、発行元が新たなコンテンツまたは更新されたコンテンツを公開する場合）。しかしながら、一部のコンポーネントまたは要素は、静的で変更されないままである。ユーザがウェブページを離れ、後に戻ろうとする場合、ブラウザキャッシュにより、コンピューティングデバイスは、ユーザがウェブページの再訪を望むときに同じウェブオブジェクトを再びダウンロードするのではなく、関連のウェブページに関する静的な不変のファイルをローカルメモリから取り出すことができる。
【０００４】
現時点において、ブラウザは、ウェブサイトによる入手および使用が可能な一意の識別子を何も含んでおらず、あるいはそのような一意の識別子を露出させることがない。現在のウェブサイトおよびウェブページは、特定のウェブページに関するユーザのアクティビティ（例えば、繰り返しの訪問）に関するデータを追跡および共有することができる。そのようなデータは、状態情報（例えば、好み、ショッピングカートのアイテム）を含むことができ、登録または認証情報（例えば、ユーザ名、パスワード、住所／居所）をもたらすことができ、あるいは閲覧履歴（例えば、どのウェブページを訪問したか、何回訪問したか、いつ訪問したか）を追跡することができる。しかしながら、現代生活のほぼすべての態様がインターネットアクティビティに反映され、あるいは他のかたちでインターネットアクティビティに関係する可能性があるため、追跡されるデータの一部が、特定の個人を個人的に識別できる可能性がある。したがって、このような個人を識別できるデータを含む追跡機構は、私的であり、秘密であり、さらには／あるいは慎重に扱われるべきユーザ情報が漏れる危険性がある。ユーザのプライバシーを保護するために、一部の法的管轄区域では、追跡できるデータの種類を制限する法律または規制すら存在することがある。
【０００５】
一方で、さまざまな発行人、サービスプロバイダ、および関連の団体が、所与のウェブページまたはウェブサイトを訪れるユーザトラフィックに関する統計データの取得に関心を持つことがある。ウェブサーバは、特定のウェブページに対するダウンロード要求の数を識別することがあるが、そのような要求が、同じユーザ（または、同じユーザ小集団）によって行われる可能性がある。したがって、このような指標では、ウェブサイトに関するトラフィックまたはユーザアクティビティの正確な状況を表すことができない可能性があるが、上述のさらに詳細なデータを使用すると、特定のユーザを個人的に識別できる情報が漏れる危険性がある。
【０００６】
さらに、ユーザは、さまざまなアプリケーションおよびブラウザを使用して、さまざまな異なるウェブサイトおよびコンテンツプロバイダを訪れる可能性がある。このような多様性は、例えばユーザが同じウェブサイトに異なるブラウザまたはアプリケーションを使用してアクセスできる場合に、トラフィックの追跡の可能性を困難にする可能性がある。複数のウェブサイトを考慮すると、問題はさらに複雑になる。このような異なるブラウザは、通常は情報の通信や交換を行わないため、このようなユーザがインターネットでどのように通信することができるかを完全に把握することは、きわめて困難となり得る。
【０００７】
したがって、異なるセッションを特定のデバイスに関連付けるための実証済みのシステムおよび方法が、技術的に必要とされている。
【発明の概要】
【０００８】
本発明の実施形態は、伝送制御プロトコル（ＴＣＰ）タイムスタンプに基づくセッションの関連付けを可能にする。或る時間期間内の１つ以上のＴＣＰセッションの最中に受信されたデータパケットの集合を取得することができる。集合の各々のパケットに、それぞれのセッションの一意の識別子（すなわち、セッションの発信元ＩＰアドレスおよびポート）が関連付けられていてよい。時間期間内の選択されたセッションのパケットのスキューを、該選択されたセッションの一意の識別子が関連付けられた少なくとも２つのデータパケットのそれぞれの受信デバイスクロックとそれぞれの送信デバイスクロックとの間の速度差に基づいて決定することができる。選択されたセッションは、コンピューティングデバイスに関連付けられていてよい。取得されたデータパケットの各々について、決定されたスキューおよび各々のデータパケットのそれぞれのタイムスタンプ情報に基づいて、アップ時間を計算することができる。計算されたアップ時間の各々が、以前のセッションまたは選択されたセッションに以前に関連付けられたセッションに関連付けられたパケットについて以前に計算されたアップ時間と一致するか否かを、識別することができる。コンピューティングデバイスに関連付けられたセッションのリストを、それぞれの計算されたアップ時間と以前に計算されたアップ時間との間の１つ以上の識別された一致に基づいて、更新することができる。
【０００９】
さまざまな実施形態が、ＴＣＰタイムスタンプに基づくセッションの関連付けのための方法を含むことができる。そのような方法は、或る時間期間内の１つ以上のセッションの最中に受信されたデータパケットの集合を取得するステップであって、各パケットに、それぞれのセッションの一意の識別子が関連付けられているステップと、選択されたセッション（コンピューティングデバイスに関連付けられている）のパケットについてのスキューを、選択されたセッションの一意の識別子が関連付けられた少なくとも２つのデータパケットのそれぞれの受信デバイスクロックとそれぞれの送信デバイスクロックとの間の速度差に基づいて決定するステップと、取得したデータパケットの各々について、アップ時間を、決定されたスキューおよび該データパケットのそれぞれのタイムスタンプ情報に基づいて計算するステップと、計算されたアップ時間の各々が、以前のセッションまたは選択されたセッションに以前に関連付けられたセッションに関連付けられたパケットについて以前に計算されたアップ時間と一致するか否かを識別するステップと、それぞれの計算されたアップ時間と以前に計算されたアップ時間との間の１つ以上の識別された一致に基づいて、コンピューティングデバイスに関連付けられたセッションのリストを更新するステップとを含むことができる。
【００１０】
さらなる実施形態は、タイムスタンプに基づいてセッションを関連付けるためのサーバシステムを含むことができる。そのようなシステムは、或る時間期間内の１つ以上のセッションの最中に受信され、各々のパケットにそれぞれのセッションの一意の識別子が関連付けられているデータパケットの集合を取得し、選択されたセッションのパケットについてのスキューを、選択されたセッションの一意の識別子が関連付けられた少なくとも２つのデータパケットのそれぞれの受信デバイスクロックとそれぞれの送信デバイスクロックとの間の速度差に基づいて決定し、取得したデータパケットの各々について、アップ時間を、決定されたスキューおよび該データパケットのそれぞれのタイムスタンプ情報に基づいて計算し、計算されたアップ時間の各々が、以前のセッションまたは選択されたセッションに以前に関連付けられたセッションに関連付けられたパケットについて以前に計算されたアップ時間と一致するか否かを識別するための命令を実行するプロセッサを含むことができる。そのようなシステムは、コンピューティングデバイスに関連付けられたセッションのリストを格納するメモリをさらに含むことができ、該格納されたセッションのリストを、それぞれの計算されたアップ時間と以前に計算されたアップ時間との間の１つ以上の識別された一致に基づいて更新することができる。
【００１１】
さらなる実施形態は、上述のタイムスタンプに基づくセッションの関連付けのための方法を実行するためにプロセッサによって実行可能なプログラムを具現化した非一時的なコンピュータ可読記憶媒体を含む。
【図面の簡単な説明】
【００１２】
【図１】タイムスタンプに基づくセッションの関連付けのためのシステムを実装することができる典型的なネットワーク環境を示している。
【００１３】
【図２】タイムスタンプに基づくセッションの関連付けのための方法を示すフローチャートである。
【００１４】
【図３】本発明の一実施形態を実施するために使用することができる典型的なコンピューティングシステムを示している。
【発明を実施するための形態】
【００１５】
本発明の実施形態は、タイムスタンプに基づくセッションの関連付けを可能にする。或る時間期間内の１つ以上のセッションの最中に受信されたデータパケットの集合を取得することができる。集合の各々のパケットに、それぞれのセッションの一意の識別子（例えば、セッションのクライアントＩＰアドレスおよびポート）が関連付けられていてよい。時間期間内の選択されたセッションのスキューを、該選択されたセッションの一意の識別子が関連付けられた少なくとも２つのデータパケットのそれぞれの受信デバイスクロックとそれぞれの送信デバイスクロックとの間の速度差に基づいて決定することができる。選択されたセッションは、コンピューティングデバイスに関連付けられていてよい。取得されたデータパケットの各々について、決定されたスキューおよびデータパケットのそれぞれのタイムスタンプ情報に基づいて、アップ時間を計算することができる。計算されたアップ時間の各々が、以前のセッションまたは選択されたセッションに以前に関連付けられたセッションに関連付けられたパケットについて以前に計算されたアップ時間と一致するか否かを、識別することができる。コンピューティングデバイスに関連付けられたセッションのリストを、それぞれの計算されたアップ時間と以前に計算されたアップ時間との間の１つ以上の識別された一致に基づいて、更新することができる。
【００１６】
図１が、識別子のタイムスタンプに基づく分析のためのシステムを実装することができるネットワーク環境１００を示している。ネットワーク環境１００は、通信ネットワーク１１０、１つ以上のユーザデバイス１２０Ａ〜Ｄ、サーバ１３０、識別子サーバ１４０、および１つ以上のサービスプロバイダ１５０を含むことができる。ネットワーク環境１００内のデバイスは、通信ネットワーク１１０を介して互いに通信することができる。
【００１７】
通信ネットワーク１１０は、ローカルの専有ネットワーク（例えば、イントラネット）であってよく、さらには／あるいはより大規模な広域ネットワークの一部であってよい。通信ネットワーク１１０は、インターネットなどの広域ネットワーク（ＷＡＮ）に通信可能に接続されてよいローカルエリアネットワーク（ＬＡＮ）であってよい。インターネットは、相互接続されたコンピュータおよびサーバの広範なネットワークであり、ネットワークサービスプロバイダを介して接続されたユーザ間のインターネットプロトコル（ＩＰ）データの伝送および交換を可能にする。ネットワークサービスプロバイダの例は、公衆交換電話網、携帯電話またはモバイルサービスプロバイダ、ケーブルサービスプロバイダ、デジタル加入者線（ＤＳＬ）サービスのプロバイダ、あるいは衛星サービスプロバイダである。通信ネットワーク１１０は、ネットワーク環境１００の種々の構成要素間の通信を可能にする。
【００１８】
ユーザは、汎用コンピュータ、携帯電話機、スマートフォン、スマートウォッチ、ウェアラブルデバイス、携帯情報端末（ＰＤＡ）、ポータブルコンピューティングデバイス（例えば、ラップトップ、ネットブック、タブレット）、デスクトップコンピューティングデバイス、ハンドヘルドコンピューティングデバイス、または通信ネットワーク１１０を介して通信することができる任意の他の種類のコンピューティングデバイス、など、任意のいくつかのさまざまな電子ユーザデバイス１２０Ａ〜Ｄを使用することができる。ユーザデバイス１２０は、ダウンロードによるサービスの場合に適切である場合があるが、ローカルキャッシュ、メモリカード、またはディスクドライブなどの他の記憶媒体からのデータにアクセスするように構成されてもよい。ユーザデバイス１２０は、ネットワークおよびメディアインターフェース、非一時的なコンピュータ可読ストレージ（メモリ）、およびメモリに格納され得る命令を実行するためのプロセッサなどの標準的なハードウェアコンピューティングコンポーネントを含むことができる。
【００１９】
加えて、ユーザデバイス１２０は、特定のウェブページおよび他のネットワークアクセス可能なデータの要求をユーザにとって可能にするブラウザアプリケーションを含むさまざまなアプリケーションを含むことができる。本明細書において使用されるとき、ブラウザおよびブラウザ識別子への言及は例示にすぎず、ブラウザおよびブラウザ識別子に関する教示は、他の種類のアプリケーションおよびアプリケーション識別子（例えば、Ａｐｐｌｅ  ＩＤＦＡ、Ｇｏｏｇｌｅ  ＡｄＩＤ）にも適用可能である。例えば、ユーザは、ユニホームリソースロケータ（ＵＲＬ）をブラウザアプリケーションに入力することができる。そのようなブラウザは、そのような要求を関連のウェブサーバ（例えば、サーバ１３０）に送信し、応答データ（例えば、ダウンロードすべき他のファイルへの参照を含むウェブページファイル）を受信し、そのような応答データを使用して、要求されたウェブページをレンダリングして表示することができる。ユーザデバイス１２０にダウンロードすることができるウェブページファイルは、ウェブページの一部として実際に表示されるコンテンツに対応するファイルだけでなく、関連するファイルも含み得る。
【００２０】
サーバ１３０、識別子サーバ１４０、およびサービスプロバイダ１５０は、ネットワークおよびメディアインターフェース、非一時的なコンピュータ可読記憶装置（メモリ）、ならびに命令を実行し、あるいはメモリに保存されていてよい情報にアクセスするプロセッサなどの標準的なハードウェアコンピューティングコンポーネントを含む技術的に知られた任意の種類のサーバまたは他のコンピューティングデバイスを含むことができる。複数のサーバの機能を、単一のサーバに統合してもよい。上述のサーバ（または、統合サーバ）のいずれも、特定のクライアント側、キャッシュ、またはプロキシサーバ特性を呈することができる。これらの特性は、サーバの特定のネットワーク配置またはサーバの特定の構成に依存し得る。
【００２１】
サーバ１３０は、あらゆる種類のウェブページまたはウェブサイトデータを含むウェブコンテンツをホストするために使用されるあらゆる種類のサーバであってよい。各々のウェブサイトに関連付けられた特定のファイルは、発行者（または、指定された管理者）によって管理され得る。ウェブサイトファイルは、他者の管理下のファイルへのリンクを含み得る。この点に関し、サーバ１３０からダウンロードされたウェブサイトファイルは、識別子ファイルへの参照（例えば、ＵＲＬ）、ならびに識別子ファイルとともに使用される随意によるローダーアプリケーション（例えば、Ｊａｖａ（登録商標）ｓｃｒｉｐｔコマンド）および関連のコードライブラリを含み得る。このような識別子ファイルは、ウェブサイトに特有であり得る。例えば、特定のウェブサイトの識別子が、そのウェブサイトのドメイン（または、他の特性）を含むことができ、あるいはそのウェブサイトのドメイン（または、他の特性）に基づくことができる。したがって、特定のブラウザ（または、他のアプリケーション）を使用して特定のユーザデバイスによって訪問された各々のウェブサイトを、一意の異なる識別子に関連付けることができる。
【００２２】
そのような識別子は、本出願と同時に係属中の関連の米国特許出願第１４／７１６，１８７号に開示のブラウザ識別子に関して開示されているやり方と同様のやり方で生成および管理することができ、この米国特許出願の開示は、参照により本明細書に援用される。さらに、本明細書で開示されるブラウザ識別子は、関連の米国特許出願第１４／７１６，１８７号に開示の発明とともに使用されてもよい。ブラウザ識別子は、デバイス上の異なるブラウザセッションに関連付けられ得る。同じデバイス上で異なるブラウザおよび異なるブラウザセッションが使用され得るため、さまざまなインジケータ（例えば、タイムスタンプ）を使用して、このような異なるブラウザおよびセッションを共通のデバイスに関連付けることができる。さらに、各々のセッションを、後述されるように、ＴＬＳセッション識別子、ＴＬＳセッションチケット、などを含む特定の識別子に同様に関連付けることができる。
【００２３】
さらに、識別子サーバ１４０は、種々の識別子（例えば、セッション識別子、ブラウザ識別子、デバイス識別子）の間の関連付けを引き出すことが可能であってよい。この点に関し、（デバイス識別子によって識別される）特定のユーザデバイス１２０を、１つ以上のセッションおよびブラウザ（または、他のアプリケーション）に関連付けることができる。したがって、識別子サーバ１４０は、受信したデータパケットの検査に基づいて１つ以上のそのような識別子（ウェブサイト、ブラウザ、セッション、またはデバイス）を識別することが可能であってよい。識別子サーバ１４０は、テーブルを作成および更新することにより、さまざまなインジケータの間の関連付けを保存することができる。例えば、セキュアセッション（例えば、セキュアソケットレイヤー（ＳＳＬ）セッションなど）は、クライアントとサーバとがＳＳＬ情報をネゴシエートし、その後にこのネゴシエートされたＳＳＬ情報を将来の接続のために再利用する場合に生じるセッションの再開を可能にすることができる。ＳＳＬセッションのセットアップは、通常はきわめて時間を消費するため、再度のネゴシエーションが不要であることが望ましい。セッションを再開するために、クライアントがセッションを識別できなければならない。ＳＳＬセッションＩＤおよびＴＬＳセッションチケットが、以前に選択されたセッションの識別および再開を可能にする２つの機構である。
【００２４】
追加のインジケータは、伝送制御プロトコル（ＴＣＰ）情報の使用に基づくことができる。ＴＣＰは、ウェブブラウザ、電子メール、およびその他のアプリケーションを含むさまざまなインターネットベースのアプリケーションによって使用される。特定のデバイスによるＴＣＰの使用に関連する情報（例えば、ＴＣＰパケットに存在する）は、さまざまなタイムスタンプ情報を含むことができ、あるいは示すことができる。現在の時刻、アップ時間、クロックスキューなど、その他の時間関連情報がＴＣＰパケットに関連付けられ得る。典型的な実施形態において、識別子サーバ１４０は、選択されたセッションのパケット（例えば、特定の現在の時刻、アップ時間、ソースＩＰアドレス、クロックスキュー、などのＴＣＰタイムスタンプ情報に関連付けられた）を受信し、パケットの関連付けられたタイムスタンプ情報（例えば、アップ時間）が、選択されたセッションに関連付けられ得る以前に受信したパケットの任意のタイムスタンプ情報と一致するか否かを判断し、一致する場合、セッション間の関連付けを引き出すことができる。さらに、記憶されたパケットリストを、異なる識別子（例えば、同じデバイスの異なるデバイス識別子）間の関連付けを行うために使用され得る関連付けられた識別子または他のインジケータで維持することができる。
【００２５】
クライアントのタイムスタンプが、通常はＴＣＰパケットに含まれ、サーバのタイムスタンプが、通常はＴＣＰパケットがサーバによって受信されたときに自動的に追加される一方で、他のタイムスタンプ関連情報（例えば、アップ時間およびクロックスキュー）を決定するために、さらに計算を適用することもできる。例えば、クライアントのタイムスタンプは、典型的にはコンピューティングデバイスが起動されて継続的に動作してからの経過時間を反映する時間の指標を提供する。とくには他のインジケータ（例えば、クロックスキュー）と組み合わせられたとき、計算されたアップ時間（デバイスが最後に起動されたとき）は、特定のデバイスを一意に識別できる可能性があり、何故ならば、お互いの何らかの時間ウインドウ内で受信されたそのデバイスのすべてのパケットは、同じ計算されたアップ時間を共有すると考えられるからである。クライアントのタイムスタンプに関して、デバイスは、デバイスが最後に起動されてから、または経過時間がリセットされてからの経過時間を記録および報告することができる。その経過時間は、さまざまなコンピューティングデバイスのさまざまなスケジュールに基づいてリセットされ得る（例えば、一部のデバイスは数日ごとにリセットされ、他のデバイスは数週間ごとにリセットされる）。経過時間は、異なるデバイスおよびオペレーティングシステムにおいて異なる粒度で増加し得る。増加の粒度は、ティック（ｔｉｃｋ）という単位で測定される。ティックは異なるシステムにおいて異なる時間を表すこともあり得るため、ティックによって表される時間を決定することによってデバイスの種類を明らかにするために、何らかのデバイス固有の計算が必要になり得る。結果は、リアルタイムで一貫して増加するタイムスタンプである。それを逆方向に計算することで、アップ時間が得られ、これはデバイスが最後に起動された時刻、またはタイムスタンプが最後にリセットされた時刻であり得る。したがって、アップ時間は、通常は、タイムスタンプがリセットされるような時刻まで、たとえ経過時間が増加しても同じままである。
【００２６】
したがって、識別子サーバ１４０によって使用されるそのようなインジケータは、セッション識別子（例えば、トランスポート層セキュリティ（ＴＬＳ）、セキュアソケット層（ＳＳＬ））、伝送制御プロトコル（ＴＣＰ）識別子（例えば、アップ時間、現在時刻、クロックスキュー）、インターネットプロトコル（ＩＰ）アドレス、ユーザエージェント識別子、などを含み得る。そのようなインジケータを個別に使用し、あるいは任意の組み合わせ（例えば、ＳＳＬセッション識別子およびＴＣＰタイムスタンプ）にて使用して、特定の共通ブラウザおよび／または特定のユーザデバイス１２０を共通の一致に基づいて識別することができる。典型的な実施形態は、異なるブラウザまたはデバイスの識別子間の接続を識別する際に、それぞれの決定論的値に基づいてインジケータの特定の組を選択することができる。例えば、ＳＳＬセッション識別子は、１つ以上のセッションの集合に固有であるため、同じブラウザの異なるブラウザ識別子を互いに関連付けるために使用可能である。同様に、現在の時刻、アップ時間、クロックスキュー、およびソースＩＰアドレスの組み合わせは、特定のデバイスに固有であるため、デバイスに関連付けられた異なる識別子間の接続を引き出すことを可能にする。
【００２７】
例えば、ウェブサイトをダウンロードする特定の要求は、１つ以上のインジケータに関連付けられた識別子（例えば、ＳＳＬセッション識別子）を参照することができる。そのようなＳＳＬセッション識別子を、記憶された情報と比較して、同じまたは異なるブラウザ識別子および／またはデバイス識別子と一緒に以前に使用されていたと識別子サーバ１４０によって判断することができる。同様に、要求側のコンピューティングデバイスに関連付けられたアップ時間を、同じまたは他のブラウザ識別子および／またはデバイス識別子と一緒に以前に識別または使用されたと識別子サーバ１４０によって判断することができる。
【００２８】
識別子に関する情報を、テーブルに格納することができ、テーブルは、同じブラウザ、アプリケーション、セッション、またはデバイスに関連付けられると判断された識別子のリストをさらに含むことができる。参照された識別子（または、関連するインジケータまたは識別子のいずれか）に関して保存されたテーブルが存在しない場合、新たなテーブルを生成することができる。保存されたテーブルが存在する場合、そのような保存されたテーブルを更新することができる。したがって、これらの識別子のうちの１つ以上を有するテーブルを、新たに到着する識別子（特定のインジケータに関連付けられている）および格納されている識別子（同じまたは異なるインジケータに関連付けられている）との一致に基づいて生成および更新することができる。例えば、識別子サーバ１４０が、２つの異なる識別子が同じインジケータ（例えば、ＳＳＬセッション識別子）を有することを発見した場合、識別子サーバ１４０は、それぞれのセッションが同じデバイスから由来していると判断することができる。各々のインジケータの寿命、可用性、および一意性は、異なるブラウザ、ユーザエージェント、および／またはオペレーティングシステムの間で異なり得る。したがって、例えば、特定のデバイスを除外するためにインジケータを組み合わせて使用することで、一致の検索を容易にすることができる。
【００２９】
いくつかの実施形態においては、第一者クッキーを、各々のウェブサイトの永続的識別子として使用することができる。クッキーは或る時間にわたって持続し得るが、そのようなクッキーは定期的に変更され得る。その後に、以下でさらに詳しく説明されるように、さまざまな一致パラメータ（例えば、ＳＳＬおよびアップ時間）を使用して、関連するクッキーを一緒に識別して引き出すことができる。この点に関し、識別子サーバ１４０は、任意の永続的識別子を他の永続的識別子に関連付けるために使用する能力を有すると理解されるべきである。したがって、時間の経過とともに、識別子サーバ１４０によって構築されたテーブルは、さまざまな識別子間の新たな接続および関連付けを識別するために成長し得る。
【００３０】
サービスプロバイダ１５０は、ブラウザの識別に基づいてさまざまなサービスを提供し得るサーバまたは他のコンピューティングデバイスを含み得る。例えば、サービスプロバイダ１４０は、リピート訪問に関する情報を使用して、（初回訪問者と比べて）リピート訪問者にターゲットを絞った広告を提供することができる。
【００３１】
図２が、タイムスタンプに基づくセッションの関連付けのための典型的な方法２００を示すフローチャートである。図２の方法２００は、これらに限られるわけではないがＣＤ、ＤＶＤ、またはハードドライブなどの不揮発性メモリ、などの非一時的なコンピュータ可読記憶媒体内の実行可能命令として具現化され得る。記憶媒体の命令は、（１つ以上の）プロセッサによって実行されて、記憶媒体をホストし、あるいは他のかたちで記憶媒体にアクセスするコンピューティングデバイスのさまざまなハードウェアコンポーネントに本方法を実施させることができる。図２で特定されるステップ（および、その順序）は例示にすぎず、これに限られるわけではないが、それらの実行の順序など、それらの種々の代替物、同等物、または派生物を含むことができる。
【００３２】
方法２００を使用して、時間とともに発生する可能性があるさまざまなネットワーク異常および不整合にもかかわらず、タイムスタンプに基づくセッションの関連付けを可能にすることができる。ネットワークジッタが存在する場合、同じデバイス１２０から送信されたデータパケットが、タイムスタンプデータの変動を経験する可能性がある。したがって、スキューを含むタイムスタンプに基づく指標は、異なるように見える可能性がある。そのような不規則性を補償するために、方法２００は、時間とともに受信されるパケットを評価することができる。そのようなパケットは、デバイス１２０のセッションの一意の識別子に関連付けられ得る。したがって、アップ時間の一致の識別により、複数のセッションが異なるデバイス識別子、ブラウザ識別子、ＴＬＳセッションＩＤ、ユーザエージェント、などに関連付けられているにもかかわらず同じデバイス１２０に属することを、（例えば、共通のアップ時間ｓに基づいて）識別することができる。これらのステップは、順番に図示および説明されているが、いくつかのステップは、同時に実行されても、異なる順序で実行されてもよい。
【００３３】
ステップ２０５において、データパケットを、所定の時間ウインドウ（例えば、２４時間）についてデータストアから取得することができる。データパケットは、ブラウザなどのネットワーク対応アプリケーションを動作させる１つ以上のユーザデバイス１２０Ａ〜Ｄから送信されてよく、識別子サーバ１４０において受信およびキャプチャされる。さらに、所定の時間ウインドウの経過の間に、異なるセッションに関連付けられたデータパケットが受信された可能性がある。各々のデータパケットは、ＩＰアドレス、ポート、コンピューティングデバイスのタイムスタンプ、サーバのタイムスタンプ、デバイス識別子、ブラウザ識別子、ユーザエージェント、オペレーティングシステムおよびバージョン、セッション情報（開始時刻）およびその他の情報、などの種々の識別子を含み得る。データパケットがキャプチャされる期間は、設定可能であってよい。
【００３４】
ステップ２１０において、取得されたデータパケットを、サーバのタイムスタンプによって示される受信時刻によって（例えば、最も最近に受信されたデータパケットから最も古いデータパケットに）ソートすることができる。
【００３５】
ステップ２１５において、評価されるパケットのセットは、セッション、発信元デバイス、受信時刻（例えば、最後の２４時間）、などを含む種々の因子に基づいてフィルタ処理することができる。対象のパラメータを満たさないデータパケットを、さらなる評価から除くことができる。例えば、ステップ２２０において、データパケットを、タイムスタンプ情報を有さないという理由でフィルタ処理によって除くことができる。さらに、パケットのセットを、受信時刻に基づいてステップ２３０（新しすぎる）およびステップ２３５（古すぎる）においてリファインすることができる。
【００３６】
いくつかの実施形態においては、パケットを外れ値であるという理由で評価から除くこともできる。さらに、コンピューティングデバイスがスリープモードに入るとき、クロックの動きがはるかに遅くなり、異常が発生する可能性がある。外れ値のパケットを、コンピューティングデバイスのタイムスタンプとサーバのタイムスタンプとの間の差に関して、所定のパーセンタイル（例えば、９５パーセンタイル）に含まれるかどうかに基づいて識別することができる。例えば、差が予想（例えば、９５パーセンタイル）よりもはるかに大きい場合、そのパケットを選択せず、計算および比較に含まれないようにすることができる。
【００３７】
パケットのリストがフィルタ処理された後に、スキューに関する分析のために２つのパケットが選択される。ネットワークレイテンシが一定ではない可能性があるため、パケットの異なるセットを選択すると、サーバがパケットを受信するタイミングが異なる（したがって、コンピューティングデバイスのタイムスタンプとサーバのタイムスタンプとの間の差が変化する結果となる）がゆえに、スキュー値が異なる可能性がある。選択されたパケットは、最も最近に受信されたパケットと、最も最近に受信されたパケットの受信から少なくとも所定の期間（例えば、少なくとも１秒）に受信された、次に最近受信されたパケットであってよい。他の実施態様では、最も最近に受信したパケットおよび最も古い受信パケットを選択することができる。
【００３８】
ステップ２４０において、取得されたリスト内の最も最近に受信されたパケットが、最後の既知のパケットとして設定される。ステップ２４５において、最後の既知のパケットの受信から少なくとも所定の最小時間（例えば、少なくとも１秒後）に受信された次の最近受信されたパケットをサーチすることができる。ステップ２５０で、次のパケットが見つかったかどうかを判断することができる。見つかっていない場合、この方法は、デバイスが一致することなく終了する。次のパケットが見つかった場合、この方法はステップ２５５に進む。
【００３９】
ステップ２５５において、スキューが計算され得る。スキューを計算するために、同じセッションまたは識別子から受信したデータパケットを一緒にさらに分析することができる（例えば、少なくとも所定の時間間隔を空けて受信した２つのデータパケット）。各々のデータパケットは、コンピューティングデバイス（クライアント）のタイムスタンプおよびサーバのタイムスタンプに関連付けられている。コンピューティングデバイスのタイムスタンプは、ＴＣＰプロトコルの下でコンピューティングデバイス１２０によってパケットに配置される。コンピューティングデバイスのタイムスタンプは、コンピューティングデバイスが再起動されてからの時間を表す（または、到達したタイムスタンプが最大値であり、ロールオーバーされる）。サーバのタイムスタンプは、サーバのクロックによるパケットが受信された実際の時間である。サーバのタイムスタンプおよびコンピューティングデバイスのタイムスタンプのどちらも、リアルタイムで進行する。
【００４０】
説明したように、スキューは、サーバのクロックと比較したクライアント（例えば、コンピューティングデバイス）のクロックの増加の速度を表す。そのため、スキュー値は、クライアントのタイムスタンプおよびサーバのタイムスタンプの進行速度の違いであり得、これはＣＰＵアーキテクチャおよびクロック速度の違い、ならびにクライアントとサーバとの間のその他の違いに起因し得る。スキューを、
ｓｋｅｗ＝（ｐ１．ｓ＿ｔｓ−ｐ２．ｓ＿ｔｓ）／（ｐ１．ｃ＿ｔｓ−ｐ２．ｃ＿ｔｓ）
のように計算することができ、
ここで、ｐ１．ｓ＿ｔｓは、第１の選択された（例えば、時間ウインドウ内で最も最近に受信された）データパケットのサーバのタイムスタンプであり、ｐ．２ｓ＿ｔｓは、第２の選択された（例えば、第１のパケットの少なくとも所定の時間前に受信された）データパケットのサーバのタイムスタンプであり、ｐ１．ｃ＿ｔｓは、第１のパケットのコンピューティングデバイスのタイムスタンプであり、ｐ２．ｃ＿ｔｓは、第２のデータパケットのコンピューティングデバイスのタイムスタンプである。
【００４１】
ステップ２６０において、最後の既知のパケットに関連付けられたセッション識別子を、既知のセッションリストに追加することができ、ステップ２６５において、取得されたリスト内の次のパケットを評価することができる。
【００４２】
ステップ２７０において、各々のパケットに関してアップ時間を計算することができる。説明したように、アップ時間は、クライアント（コンピューティングデバイスなど）のタイムスタンプがゼロになってからの時間を表す。このようなアップ時間を、
ｕｐｔｉｍｅ＝ｓ＿ｔｓ−（ｃ＿ｔｓ＊ｓｋｅｗ）
のように計算することができ、
ここでｓｋｅｗは、ステップ２５５に関して上述したように計算される。ステップ２７０の実行に続いて、評価される各々のデータパケットは、アップ時間に関連付けられ得る。いくつかの実施形態においては、セット内の最第１のパケット（例えば、以前に受信したパケットがない場合）に、単に第１のアップ時間を割り当てることができる。さらに、いくつかの実施態様においては、スキューをパケットの異なるセットに対して計算し、その後にアップ時間の計算に使用するために平均することができる。
【００４３】
ステップ２７５において、次のパケットに関連付けられたセッション識別子が既知のセッションリストにおいて発見されるかどうかを判定することができる。発見される場合、この方法はステップ２８０に進み、次のパケットが最後の既知のパケットに指定される。次のパケットに関連付けられたセッション識別子が既知のセッションリストにおいて発見されない場合、この方法はステップ２８５に進み、次のパケットのアップ時間が最後の既知のパケットのアップ時間と一致するかどうかを判定することができる。２つのアップ時間の値が所定の範囲内にある場合、一致が発見され得る。したがって、わずかな違いがあっても一致となり得る。一致は、関連するデータパケットが同じデバイスから発信された可能性が高いことを示す。アップ時間の一致が発見された場合、この方法はステップ２８０に進み、次のパケットが最後の既知のパケットに指定される。ステップ２８０から、アップ時間が一致しない場合に、この方法はステップ２９０に進み、取得されたリストに別のパケットが存在するかどうかを判定することができる。存在する場合、この方法はステップ２６５に戻り、リスト内の別の次のパケットを評価のために取得することができる。リストに他のパケットが存在しない場合、この方法は、更新された既知のセッションリストにて終了することができ、更新された既知のセッションリストを、異なるセッション識別子の間の新たに決定された一致に関してさまざまなデータベースを更新するために使用することができる。そのような更新は、デバイス識別子に関連付けられ得る格納されたテーブルに関連付けられたプライマリアップ時間に一致するアップ時間を有するデータパケットに関する情報を含むように（例えば、格納されたテーブル内の）さまざまなフィールドをマージすることを含み得る。したがって、複数の識別子が同じデバイスに関連付けられていると判断でき、異なる識別子に関する情報を共通のデバイスに対応する結合レコードに取り入れ、あるいは他のやり方でマージすることができる。
【００４４】
プライマリアップ時間は指定されてよい。（１つ以上のデバイス識別子によって識別されるように）デバイスに対して複数のアップ時間が計算されている場合、１つのアップ時間を選択して、テーブルのプライマリアップ時間として指定することができる。例えば、デバイスに関連付けられた最も最近に計算されたアップ時間をプライマリアップ時間として指定し、その後に、後に計算されるアップ時間との比較に使用することができる。このように、特定のデバイスに関連付けられたプライマリアップ時間を、ネットワークの異常およびジッタの影響に照らして必要に応じて維持および更新することができる。
【００４５】
方法２００は反復されてよい。
ｋ＝ｎ（既知のパケットを第１のパケットとして設定）
ｓｅｓｓｉｏｎＬｉｓｔ．ｐｕｓｈ（ｐａｃｋｅｔ（ｋ）．ｓｅｓｓｉｏｎｉｄ）
ｎ＝ｎ＋１（パケットインデックスを増やす）
ｗｈｉｌｅ  ｎ＜ｐａｃｋｅｔＬｉｓｔ．ｌｅｎｇｔｈ（処理すべきさらなるパケットが存在する）
ｉｆ  ｐａｃｋｅｔ（ｎ）．ｓｅｓｓｉｏｎｉｄ  ｉｓ  ｉｎ  ｓｅｓｓｉｏｎＬｉｓｔ
ｋ＝ｎ（これを最後の既知のパケットにする）
ｅｌｓｅ
ｉｆ  ｐａｃｋｅｔ（ｎ）．ｕｐｔｉｍｅ  ｍａｔｃｈｅｓ＊ｐａｃｋｅｔ（ｋ）．ｕｐｔｉｍｅ
ｋ＝ｎ（これを最後の既知のパケットにする）
ａｐｐｅｎｄ  ｐａｃｋｅｔ（ｎ）．ｄｅｖｉｃｅｉｄ  ｔｏ  ｓｅｓｓｉｏｎＬｉｓｔ（デバイスを記憶する）
ｎ＝ｎ＋１（パケットインデックスを増やす）
ここで、ｎはアレイ内のパケットのインデックスであり、ｋは既知のデバイスの最後のパケットのインデックスであり、ｓｅｓｓｉｏｎＬｉｓｔは最初の既知のセッションと同じデバイスであると判断されたすべてのセッションのリスト（開始する最初の既知のセッションを含む）であり、ｍａｔｃｈｅｓは所定の設定可能な期間の範囲内の値を指す。
【００４６】
図３が、本発明の一実施形態を実施するために使用することができる典型的なコンピューティングシステム３００を示している。図３のシステム３００は、ユーザデバイス１２０Ａ〜Ｄ、サーバ１３０、識別子サーバ１４０、およびサービスプロバイダ１５０の同類の状況において実装され得る。図３のコンピューティングシステム３００は、１つ以上のプロセッサ３１０およびメモリ３１０を含む。メインメモリ３１０は、一つには、プロセッサ３１０による実行のための命令およびデータを格納する。メインメモリ３１０は、動作中に実行可能コードを保存することができる。図３のシステム３００は、大容量記憶装置３３０、ポータブル記憶媒体ドライブ３４０、出力装置３５０、ユーザ入力装置３６０、グラフィックディスプレイ３７０、および周辺機器３８０をさらに含む。
【００４７】
図３に示されているコンポーネントは、単一のバス３９０を介して接続されるものとして示されている。しかしながら、コンポーネントを１つ以上のデータ移送手段を介して接続することが可能である。例えば、プロセッサユニット３１０およびメインメモリ３１０を、ローカルマイクロプロセッサバス３９０を介して接続でき、大容量記憶装置３３０、周辺機器３８０、ポータブル記憶装置３４０、およびディスプレイシステム３７０を、１つ以上の入力／出力（Ｉ／Ｏ）バス３９０を介して接続することができる。
【００４８】
磁気ディスクドライブまたは光ディスクドライブで実装され得る大容量記憶装置３３０は、プロセッサユニット３１０によって使用されるデータおよび命令を格納するための不揮発性記憶装置である。大容量記憶装置３３０は、本発明の実施形態を実施するためのシステムソフトウェアを、メインメモリ３１０にロードする目的で格納することができる。
【００４９】
ポータブル記憶装置３４０は、図３のコンピュータシステム３００にデータおよびコードを入力し、さらには図３のコンピュータシステム３００からデータおよびコードを出力するために、フロッピー（登録商標）ディスク、コンパクトディスク（ＣＤ）、またはデジタルビデオディスク（ＤＶＤ）などのポータブル不揮発性記憶媒体と協働する。本発明の実施形態を実施するためのシステムソフトウェアを、そのようなポータブル媒体に格納し、ポータブル記憶装置３４０を介してコンピュータシステム３００に入力することができる。
【００５０】
入力装置３６０は、ユーザインターフェースの一部を提供する。入力装置３６０は、英数字および他の情報を入力するためのキーボードなどの英数字キーパッド、あるいはマウス、トラックボール、スタイラス、またはカーソル方向キーなどのポインティングデバイスを含むことができる。加えて、図３に示されるシステム３００は、出力装置３５０を含む。適切な出力装置の例として、スピーカ、プリンタ、ネットワークインターフェース、およびモニタが挙げられる。
【００５１】
ディスプレイシステム３７０は、液晶ディスプレイ（ＬＣＤ）または他の適切なディスプレイ装置を含むことができる。ディスプレイシステム３７０は、テキストおよびグラフィック情報を受け取り、ディスプレイ装置への出力のために情報を処理する。
【００５２】
周辺機器３８０は、コンピュータシステムに追加機能を加えるための任意の種類のコンピュータサポート機器を含むことができる。例えば、周辺機器３８０は、モデムまたはルーターを含み得る。
【００５３】
図３のコンピュータシステム３００に含まれるコンポーネントは、本発明の実施形態における使用に好適であり得るコンピュータシステムにおいて典型的に見られるコンポーネントであり、技術的に周知の幅広い種類のそのようなコンピュータコンポーネントを代表するように意図されている。したがって、図３のコンピュータシステム３００は、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、電話機、モバイルコンピューティングデバイス、ワークステーション、サーバ、ミニコンピュータ、メインフレームコンピュータ、または任意の他のコンピューティングデバイスであってよい。コンピュータは、さまざまなバス構成、ネットワークプラットフォーム、マルチプロセッサプラットフォーム、などを含むこともできる。Ｕｎｉｘ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｍａｃｉｎｔｏｓｈ  ＯＳ、Ｐａｌｍ  ＯＳ、および他の適切なオペレーティングシステムなど、さまざまなオペレーティングシステムを使用することができる。
【００５４】
本発明は、さまざまな装置を使用して動作可能であってよいアプリケーションに実装され得る。非一時的なコンピュータ可読記憶媒体は、中央処理装置（ＣＰＵ）を実行させるための命令を提供することに関与する任意の媒体を指す。そのような媒体は、これらに限られるわけではないが、光または磁気ディスクなどの不揮発性媒体、ならびにダイナミックメモリなどの揮発性媒体など、多くの形態をとることができる。非一時的なコンピュータ可読媒体の一般的な形態として、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、ＣＤ−ＲＯＭディスク、デジタルビデオディスク（ＤＶＤ）、任意の他の光学媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨＥＰＲＯＭ、ならびに任意の他のメモリチップまたはカートリッジが挙げられる。
【００５５】
さまざまな形態の伝送媒体が、ＣＰＵを実行させるための１つ以上の命令の１つ以上のシーケンスの運搬に関与することができる。バス（例えば、バス３９０）が、データをシステムＲＡＭに運び、ＣＰＵがシステムＲＡＭから命令を取り出して実行する。システムＲＡＭが受信した命令を、随意により、ＣＰＵによる実行の前または後に、固定ディスクに保存することができる。さまざまな保存の形態、ならびにそれを実現するために必要なネットワークインターフェースおよびネットワーク接続形態を、同様に実装することができる。
【００５６】
種々の実施形態を上述したが、それらはあくまでも例として提示されているにすぎず、限定ではないことを理解すべきである。説明は、本発明の範囲を本明細書に記載の特定の形態に限定しようとするものではない。したがって、好ましい実施形態の幅および範囲は、上述の典型的な実施形態のいずれによっても制限されるべきではない。以上の説明が例示的であり、限定的なものではないことを理解すべきである。それどころか、この説明は、添付の特許請求の範囲によって定義され、あるいは他のやり方で当業者によって理解される本発明の精神および範囲内に含まれ得るような代案、修正、および同等物を包含するように意図される。したがって、本発明の範囲は、上記の説明を参照して決定されるべきではなく、代わりに、添付の特許請求の範囲およびその均等物の全範囲を参照して決定されるべきである。
【図１】
2020510379.tif 000003
【図２】
2020510379.tif 000004
【図３】
2020510379.tif 000005
【国際調査報告】
2020510379.tif 000006