(57)【特許請求の範囲】
【請求項１】
クライアントの物理的な位置を決定するためのシステムであって、
１つ以上のプロセッサであって、
前記クライアントへ送信されるリクエストされたデータおよび前記クライアントから送信され第１のサーバにおいて受信されるデータに関連付けられているネットワーク伝送時間、並びに前記クライアントへ送信されるリクエストされたデータおよび前記クライアントから送信され第２のサーバにおいて受信されるデータに関連付けられているネットワーク伝送時間を決定し、前記リクエストされたデータは、前記クライアントに、前記第１のサーバ及び前記第２のサーバにデータを送信させるように構成されており、
前記第１のサーバについてのキーパラメータのセット、および前記第２のサーバについてのキーパラメータのセットを決定し、
前記第１のサーバに関連付けられているネットワーク伝送時間、前記第２のサーバに関連付けられているネットワーク伝送時間、前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを１つ以上のデータ処理モデルに入力することに少なくとも一部基づいて、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を決定し、
少なくとも一部には、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を使用することによって、前記クライアントに関連付けられている物理的な位置を決定するように構成されている１つ以上のプロセッサと、  
前記１つ以上のプロセッサに接続され、前記１つ以上のプロセッサに命令を提供するように構成されている１つ以上のメモリと、を備えるシステム。
【請求項２】
請求項１に記載のシステムであって、
前記第１のサーバに関連付けられているネットワーク伝送時間は、リクエストされたデータを前記クライアントに送信することに関連付けられている開始時間、及び前記クライアントから送信されたデータを前記第１のサーバが受信することに関連付けられている終了時間に少なくとも一部基づいて、決定される、システム。
【請求項３】
請求項１に記載のシステムであって、
前記第２のサーバに関連付けられているネットワーク伝送時間は、リクエストされたデータを前記クライアントに送信することに関連付けられている開始時間、及び前記クライアントから送信されたデータを前記第２のサーバが受信することに関連付けられている終了時間に少なくとも一部基づいて、決定される、システム。
【請求項４】
請求項１に記載のシステムであって、
前記第１のサーバについてのキーパラメータのセットは、前記第１のサーバによって処理される１秒あたりの取引数、前記第１のサーバによって受信される１秒あたりのページリクエスト数、前記クライアントから送信されたデータを前記第１のサーバが受信したときの週の曜日、前記クライアントから送信されたデータを前記第１のサーバが受信したときのシステム時間のうちの１つ以上を含む、システム。
【請求項５】
請求項１に記載のシステムであって、
前記第２のサーバについてのキーパラメータのセットは、前記第２のサーバによって処理される１秒あたりの取引数、前記第２のサーバによって受信される１秒あたりのページリクエスト数、前記クライアントから送信されたデータを前記第２のサーバが受信したときの週の曜日、前記クライアントから送信されたデータを前記第２のサーバが受信したときのシステム時間のうちの１つ以上を含む、システム。
【請求項６】
請求項１に記載のシステムであって、
前記リクエストされたデータは、位置決めコードを含み、前記位置決めコードは、前記クライアントに、前記第１のサーバ及び前記第２のサーバにデータを送信させるように構成されている、システム。
【請求項７】
請求項１に記載のシステムであって、
前記１つ以上のデータ処理モデルは、キーパラメータのセットの中の少なくとも１つと、ネットワーク伝送時間と、サーバとクライアントとの間の距離とを関係付ける、関数関係式を含む、システム。
【請求項８】
請求項１に記載のシステムであって、
前記クライアントに関連付けられている物理的な位置を決定することは、前記クライアントと前記第１のサーバとの間の距離、前記クライアントと前記第２のサーバとの間の距離、前記第１のサーバに関連付けられている物理的な位置、及び前記第２のサーバに関連付けられている物理的な位置を使用して、一組の方程式を決定することを含む、システム。
【請求項９】
クライアントの物理的な位置を決定するための方法であって、
前記クライアントへ送信されるリクエストされたデータおよび前記クライアントから送信され第１のサーバにおいて受信されるデータに関連付けられているネットワーク伝送時間、並びに前記クライアントへ送信されるリクエストされたデータおよび前記クライアントから送信され第２のサーバにおいて受信されるデータに関連付けられているネットワーク伝送時間を決定し、前記リクエストされたデータは、前記クライアントに、前記第１のサーバ及び前記第２のサーバにデータを送信させるように構成されており、 
前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを決定し、
前記第１のサーバに関連付けられているネットワーク伝送時間、前記第２のサーバに関連付けられているネットワーク伝送時間、前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを１つ以上のデータ処理モデルに入力することに少なくとも一部基づいて、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を決定し、
少なくとも一部には、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を使用することによって、前記クライアントに関連付けられている物理的な位置を決定すること、
を備える方法。
【請求項１０】
請求項９に記載の方法であって、
前記第１のサーバに関連付けられているネットワーク伝送時間は、リクエストされたデータを前記クライアントに送信することに関連付けられている開始時間、及び前記クライアントから送信されたデータを前記第１のサーバが受信することに関連付けられている終了時間に少なくとも一部基づいて、決定される、方法。
【請求項１１】
請求項９に記載の方法であって、
前記第２のサーバに関連付けられているネットワーク伝送時間は、リクエストされたデータを前記クライアントに送信することに関連付けられている開始時間、及び前記クライアントから送信されたデータを前記第２のサーバが受信することに関連付けられている終了時間に少なくとも一部基づいて、決定される、方法。
【請求項１２】
請求項９に記載の方法であって、
前記第１のサーバについてのキーパラメータのセットは、前記第１のサーバによって処理される１秒あたりの取引数、前記第１のサーバによって受信される１秒あたりのページリクエスト数、前記クライアントから送信されたデータを前記第１のサーバが受信したときの週の曜日、前記クライアントから送信されたデータを前記第１のサーバが受信したときのシステム時間のうちの１つ以上を含む、方法。
【請求項１３】
請求項９に記載の方法であって、
前記第２のサーバについてのキーパラメータのセットは、前記第２のサーバによって処理される１秒あたりの取引数、前記第２のサーバによって受信される１秒あたりのページリクエスト数、前記クライアントから送信されたデータを前記第２のサーバが受信したときの週の曜日、前記クライアントから送信されたデータを前記第２のサーバが受信したときのシステム時間のうちの１つ以上を含む、方法。
【請求項１４】
請求項９に記載の方法であって、
前記リクエストされたデータは、位置決めコードを含み、前記位置決めコードは、前記クライアントに、前記第１のサーバ及び前記第２のサーバにデータを送信させるように構成されている、方法。
【請求項１５】
請求項９に記載の方法であって、
前記１つ以上のデータ処理モデルは、キーパラメータのセットの中の少なくとも１つと、ネットワーク伝送時間と、及びサーバとクライアントとの間の距離を関係付ける、関数関係式を含む、方法。
【請求項１６】
請求項９に記載の方法であって、
前記クライアントに関連付けられている物理的な位置の決定は、前記クライアントと前記第１のサーバとの間の距離、前記クライアントと前記第２のサーバとの間の距離、前記第１のサーバに関連付けられている物理的な位置、及び前記第２のサーバに関連付けられている物理的な位置を使用して、一組の方程式を決定することを含む、方法。
【請求項１７】
クライアントの物理的な位置を決定するためのコンピュータプログラムであって、
前記クライアントへ送信されるリクエストされたデータおよび前記クライアントから送信され第１のサーバにおいて受信されるデータに関連付けられているネットワーク伝送時間、並びに前記クライアントへ送信されるリクエストされたデータおよび前記クライアントから送信され第２のサーバにおいて受信されるデータに関連付けられているネットワーク伝送時間を決定するための機能と、前記リクエストされたデータは、前記クライアントに、前記第１のサーバ及び前記第２のサーバにデータを送信させるように構成されており、
前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを決定するための機能と、
前記第１のサーバに関連付けられているネットワーク伝送時間、前記第２のサーバに関連付けられているネットワーク伝送時間、前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを１つ以上のデータ処理モデルに入力することに少なくとも一部基づいて、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を決定するための機能と、
少なくとも一部には、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を使用することによって、前記クライアントに関連付けられている物理的な位置を決定するための機能と、
をコンピュータによって実現させるコンピュータプログラム。
【請求項１８】
請求項１に記載のシステムであって、前記第１のサーバについての前記キーパラメータセットは前記第１のサーバのネットワーク混雑状態を記述する１または複数の特性を含み、前記第２のサーバについての前記キーパラメータセットは前記第２のサーバのネットワーク混雑状態を記述する１または複数の特性を含み、前記第１のサーバの前記ネットワーク混雑状態は前記クライアントから前記第１のサーバに送信される前記データの受信測定パラメータに少なくとも影響し、前記第２のサーバの前記ネットワーク混雑状態は前記クライアントから前記第のサーバに送信される前記データの受信測定パラメータに少なくとも影響する、システム。
【請求項１９】
請求項１に記載のシステムであって、前記リクエストされたデータはページアクセスリクエストに応じて前記クライアントに送信される、システム。
【請求項２０】
請求項１に記載のシステムであって、前記リクエストされたデータはページデータに関連して前記クライアントに送信される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、あらゆる目的のために、参照によって本明細書に組み込まれる、２０１１年９月２６日に出願された、発明の名称を「ＭＥＴＨＯＤ  ＡＮＤ  ＤＥＶＩＣＥ  ＦＯＲ  ＯＢＴＡＩＮＩＮＧ  ＴＨＥ  ＴＲＵＥ  ＰＨＹＳＩＣＡＬ  ＡＤＤＲＥＳＳＥＳ  ＯＦ  ＮＥＴＷＯＲＫ  ＣＬＩＥＮＴＳ（ネットワーククライアントの真の物理アドレスを得るための方法及びデバイス）」とする、中国特許出願第２０１１１０２８８７９１．９号に基づく優先権を主張する。
【０００２】
本出願は、ネットワーク技術に関し、特に、ネットワーククライアントの物理的な位置を決定する技術に関する
【背景技術】
【０００３】
一部のネットワークアプリケーション環境では、ネットワーククライアント（より厳密には、このようなネットワーククライアントデバイスを使用しているネットワークユーザ）の物理的な位置を決定することが役立つ。例えば、電子商取引ウェブサイトでは、地理的位置を隠したネットワーククライアントによって実施される活動は、不正行為と高い相関性がある。したがって、詐欺などの望ましくない行為を防ぐためには、ネットワーククライアントの物理的な位置を正確に決定し、クライアントにおけるユーザによって提供されるアドレスと比較することが有利だろう。例えば、決定されたネットワーククライアントの物理的な位置が、クライアントにいるユーザによって提供されているアドレスに一致しない場合、詐欺が検出される恐れがある。
【０００４】
従来、ネットワーククライアントの物理的な位置を決定するための一般的な技術は、ネットワーククライアントのインターネットプロトコル（ＩＰ）アドレスに依存している。ＩＰアドレスが、ＩＰアドレス対地理的所在のマッピングテーブルで検索され、物理的な位置が決定される。しかしながら、ユーザは、様々な手段を通じて（例えばプロキシサービスの使用を通じて）自身の本当のＩＰアドレスを隠す又は変えることがあるので、ＩＰアドレスは、必ずしも、ネットワーククライアントの物理的な位置を決定するための信頼のおける基準であるとは限らない。
【図面の簡単な説明】
【０００５】
以下の詳細な説明及び添付の図面において、本発明の様々な実施形態が開示される。
【０００６】
【図１】クライアントと、少なくとも２つのサーバとで構成されているシステムを示した図である。
【０００７】
【図２】ネットワーククライアントの物理的な位置を決定するためのプロセスの一実施形態を示したフローチャートである。
【０００８】
【図３】クライアントと、それぞれが既知の物理的な位置を有する４つのサーバとで構成されているシステムの一例である。
【０００９】
【図４】それぞれの物理的な位置が既知である４つのサーバを使用してクライアントの物理的な位置を決定するためのプロセスの一実施形態を示したフローチャートである。
【００１０】
【図５】物理的な位置が既知である様々なサーバを使用してクライアントの物理的な位置を決定するためのシステムの一実施形態を示した図である。
【００１１】
【図６】物理的な位置が既知である様々なサーバを使用してクライアントの物理的な位置を決定するためのシステムの一実施形態を示した図である。
【発明を実施するための形態】
【００１２】
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能なストレージ媒体に実装されたコンピュータプログラム製品、並びに／又は結合先のメモリに記憶された命令及び／若しくは結合先のメモリによって提供される命令を実行するように構成されるプロセッサなどのプロセッサのような、数々の形態で実現することができる。本明細書では、これらの実現形態、又は本発明がとりうるその他のあらゆる形態が、技術と称されてよい。総じて、開示されたプロセスのステップの順序は、本発明の範囲内で変更されてよい。別途明記されない限り、タスクを実施するように構成されるものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成される汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実装されてよい。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成される１つ以上のデバイス、回路、並びに／又は処理コアを言う。
【００１３】
本発明の原理を例示した添付の図面とともに、以下で、本発明の１つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態との関わりのもとで説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び均等物を網羅している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供され、本発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施されうる。明瞭さを期するために、本発明に関係する技術分野で知られる技術要素は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
【００１４】
ネットワーククライアントの物理的な位置（物理的所在とも言う）の決定について説明される。一部の実施形態では、ネットワーククライアントの物理的な位置を決定するために、クライアントは、少なくとも２つのサーバと通信する。このような各サーバの物理的な位置は、既知である。例えば、サーバの物理的な位置は、三次元空間座標、縦横座標、又は全地球測位システム（ＧＰＳ）座標で表されてよい。一部の実施形態では、クライアントは、データを求めるリクエストを第１のサーバから送信する。すると、第１のサーバは、リクエストされたデータをクライアントに送り返し、このようなデータは、クライアントに、少なくとも第２のサーバにリクエストメッセージを送信させる。一部の実施形態では、これらの各サーバの物理的な位置は、既知である。一部の実施形態では、第１のサーバがクライアントにデータを送信し次いでクライアントが第２のサーバにリクエストメッセージを送信することに関連付けられている合計ネットワーク伝送時間が、その第２のサーバに関連付けられている「双方向ネットワーク伝送時間」と称される。一部の実施形態では、クライアントがリクエストメッセージを送信した先の各サーバについて、そのサーバのネットワーク混雑状態に関連付けらている１つ以上のキーパラメータが決定される。サーバのネットワーク混雑状態は、サーバが取り扱っている、クライアントとのデータ伝送に従事することなどの全てのトラフィックに関してサーバがどの程度占有されているかを記述している。例えば、サーバとクライアントとの間における通信の伝送時間は、サーバのネットワーク混雑状態によって影響され得るので、ネットワーク混雑状態の計算は、双方向ネットワーク伝送時間に対して更なるコンテクスト（決定する際の判断材料）を与える。一部の実施形態では、少なくとも２つの各サーバについて、双方向ネットワーク伝送時間及びキーパラメータが決定されると、このような値は、（例えば過去データを使用してトレーニングされた）１つ以上のデータ処理モデルが、クライアントと各サーバとの間としてありうる距離を出力するために、そのデータ処理モデルに入力されてよい。クライアントと各サーバとの間のこれらの少なくとも２つの距離は、クライアントの物理的な位置を決定するために使用されてよい。
【００１５】
図１は、クライアントと、少なくとも２つのサーバとで構成されているシステムを示した図である。この例では、システムは、クライアント１０２と、サーバ１０４と、サーバ１０６とを含む。一部の実施形態では、システム１００は、サーバ１０４及びサーバ１０６に追加して更なるサーバを含んでいてよい。一部の実施形態では、システム１００内のサーバの数にかかわらず、各サーバの物理的な位置は、予め知られている。各サーバの少なくとも物理的な位置が予め知られていることから、クライアント１０２の物理的な位置は、クライアント１０２のＩＰアドレスに依存する代わりに、少なくとも一部にはクライアント１０２と各サーバとの間における通信の確立に基づいて、決定されるだろう。
【００１６】
一部の実施形態では、クライアント１０２は、サーバ１０４及びサーバ１０６のいずれか又は両方から遠く離れていてよい。一部の実施形態では、クライアント１０２は、高速データネットワーク及び／又は電気通信ネットワークを含むネットワークを通じてサーバ１０４及びサーバ１０６のいずれか又は両方と通信していてよい。一部の実施形態では、サーバ１０４及びサーバ１０６のいずれか又は両方が、クライアント１０２以外のクライアントと通信していてよい。一部の実施形態では、サーバ１０４及びサーバ１０６は、ともに、同じシステム時間を有する。
【００１７】
クライアント１０２の物理的な位置を決定する幾つかの実施形態が、以下の図２のプロセス２００と併せて説明される。
【００１８】
図２は、ネットワーククライアントの物理的な位置を決定するためのプロセスの一実施形態を示したフローチャートである。一部の実施形態では、プロセス２００は、システム１００において実行に移されてよい。
【００１９】
プロセス２００は、それぞれの物理的な位置が既知である少なくとも２つのサーバを使用してクライアントの物理的な位置を決定するために使用されてよい。
【００２０】
ステップ２０２では、リクエストされたデータがクライアントに送信されクライアントが第１のサーバにデータを送信することに関連付けられているネットワーク伝送時間、及びリクエストされたデータがクライアントに送信されクライアントが第２のサーバにデータを送信することに関連付けられているネットワーク伝送時間が決定される。一部の実施形態では、ネットワーク伝送時間（場合によっては「双方向ネットワーク伝送時間」と称される）は、サーバから送信されたリクエストされたデータがクライアントで受信されるために及び（リクエストされたデータによって引き起こされて）クライアントによって送信された別の通信が次いで同じ又は別のサーバで受信されるためにかかる時間の長さを言う。クライアント及びこのような各サーバは、適切であれば、既に取り決められたデータ伝送方式を有すると想定される。例えば、ネットワーク伝送時間は、リクエストされたデータがサーバからクライアントに送信される開始時間を記録し、（そのリクエストされたデータの少なくとも一部分に起因して）クライアントから送信されたリクエストメッセージが同じサーバ又は別のサーバで受信される終了時間を記録し、記録された開始時間と終了時間との差を、リクエストされたメッセージを受信したサーバに関連付けられているネットワーク伝送時間として使用することによって、決定されるだろう。
【００２１】
例えば、ネットワーク伝送時間の決定は、クライアントが第１のサーバからのデータをリクエストすることによって開始されてよい。例えば、クライアントデバイスでウェブサイトを閲覧しているユーザが、あるエレメントを選択し、クライアントに、ウェブサイトのサポートに関連付けられている第１のサーバからのデータをリクエストさせてよい。リクエストの受信に応えて、第１のサーバは、リクエストされたデータをクライアントに送り返し、また、第１のサーバがデータを送信した時間を記録してよい。リクエストされたデータをクライントが受信したら、リクエストされたデータに関連付けられているメカニズムが、クライアントに、第１のサーバ及び第２のサーバの両方にリクエストメッセージを送信させてよい。例えば、このようなメカニズムは、クライアントに別のサーバにリクエストメッセージを送信させるように構成されている位置決めコードであってよい。受信されたリクエストメッセージのコンテンツに基づいて、第１のサーバ及び第２のサーバは、クライアントからリクエストが受信された時間を終了時間として記録するように構成される。次いで、第１のサーバ及び第２のサーバのいずれか（又は第３のサーバ）が、第１のサーバに関連付けられている開始時間と終了時間との差を第１のサーバに関連付けられている双方向ネットワーク伝送時間として及び第２のサーバに関連付けられている開始時間と終了時間との差を第２のサーバに関連付けられているネットワーク伝送時間として計算しうるように、第１のサーバ又は第２のサーバのいずれか一方が、もう一方のサーバと通信してよい。
【００２２】
図１の例に戻ると、物理的な位置を決定されるクライアントは、クライアント１０２であってよく、第１のサーバは、サーバ１０４であってよく、第２のサーバは、サーバ１０６であってよい。クライアント１０２においてウェブサイトを閲覧しているユーザが、ウェブサイトにおいて或るエレメントを選択し、クライアント１０２に、ウェブサイトに関連付けられているサーバ１０４からのデータをリクエストさせるので、例えば、クライアント１０２は、サーバ１０４からのデータをリクエストし得る。クライアント１０２からのリクエストの受信に応えて、サーバ１０４は、リクエストされたデータをクライアント１０２に送り返してよく、また、リクエストされたデータをサーバ１０４が送信した時間を開始時間として記録してよい。例えば、サーバ１０４によって送信されたリクエストされたデータは、クライアント１０２にサーバ１０４及びサーバ１０６の両方に或る種のリクエストを送信させるコンピュータコードを含んでいてよい。サーバ１０４及びサーバ１０６のそれぞれが、クライアント１０２からのリクエストを受信したら、サーバ１０４及びサーバ１０６は、それぞれ、自身がリクエストを受信した時間を終了時間として記録してよい。次いで、サーバ１０４及びサーバ１０６のいずれか（又は第３のサーバ）が、開始時間と終了時間との差として双方向ネットワーク伝送時間を計算してよい。
【００２３】
クライアントの物理アドレスを見つけるためには、縦横座標又は三次元座標ｘ、ｙ、及びｚのような、少なくとも２つの座標が必要であるので、クライアントの物理アドレスの決定は、少なくとも２つの式を含む一組の方程式を確立することを含む。したがって、ネットワーク伝送時間の決定は、少なくとも２つのサーバの、同じクライアントとの間におけるネットワーク伝送時間を決定することを必要とする。
【００２４】
ステップ２０４では、第１のサーバについてのキーパラメータ値のセットが決定され、第２のサーバについてのキーパラメータ値のセットが決定される。
【００２５】
一部の実施形態では、各キーパラメータは、サーバがクライアントと通信する方式に影響しうる、サーバのネットワーク混雑状態の特性又は特色を含む。例えば、クライアントのリクエストを受信する際に、多くのトラフィックを取り扱っているときは、そのサーバは、クライアントに対して応答するのに長い時間を要するだろう。一部の実施形態では、サーバのネットワーク混雑状態は、（クライアントとのデータ伝送に従事することなどの）ネットワークトラフィックの処理のためにそのサーバがどの程度忙しくしているかの状態を言い、決定された双方向ネットワーク伝送時間に対して更なるコンテクストを与えるだろう（そして、関係するネットワーク伝送時間に合わせてサーバとクライアントとの間の距離の関係を修正するのに役立つだろう）。
【００２６】
一部の実施形態では、サーバのネットワーク混雑状態を特性化するために使用されうるキーパラメータとして、サーバが提供するように構成されているサービスの数、サーバによって処理される１秒あたりの取引数、データ伝送が発生した週の曜日、サーバがクライアントからリクエストメッセージを受信したときのシステム時間が挙げられる。前掲のキーパラメータは、単なる例に過ぎず、このようなキーパラメータに代わって又は追加して、その他のキーパラメータが使用されてもよい。一部の実施形態では、考慮されるかもしれないキーパラメータの範囲は、クライアントの物理的な位置の決定に対して望まれる精度に関係する。クライアントの物理的な位置の決定に対する精度要件が低い場合、上述されたキーパラメータのように、１つ又は数個のキーパラメータが選択されてよい。しかしながら、クライアントの物理的な位置に対する精度要件が高い場合、上述された全てのキーパラメータのように、より多くのキーパラメータが選択されてよい。
【００２７】
図１の例に戻ると、サーバ１０４によってサーバ１０４についてのキーパラメータセットが決定されてよく、サーバ１０６によってサーバ１０６についての別のキーパラメータセットが決定されてよい（すなわち、サーバ１０４及び１０６は、それぞれ、自身のキーパラメータセットを決定するように構成される）。
【００２８】
ステップ２０６では、クライアントと第１のサーバとの間の距離、及びクライアントと第２のサーバとの間の距離が、少なくとも一部には、第１のサーバに関連付けられているネットワーク伝送時間、第２のサーバに関連付けられているネットワーク伝送時間、第１のサーバに関連付けられているキーパラメータ値のセット、及び第２のサーバに関連付けられているキーパラメータ値のセットを１つ以上のデータ処理モジュールに入力することに基づいて、決定される。
【００２９】
例えば、１つ以上のデータ処理モデルは、それぞれ、統計モデル、又はコンピュータによって作成されたソフトウェアモデルであってよい。１つ以上の処理モデルは、サーバとクライアントとの間の距離、キーパラメータ、サーバとクライアントとの間でデータ伝送が生じた時間（例えば週の曜日及びシステム時間）、サーバ及びクライアントに関連付けられている双方向ネットワーク伝送時間の間の関係を記述している。各サーバの（例えば各サーバによって計算された）キーパラメータを、（１つ以上の）データ処理モデルに適用することによって、その（１つ以上の）データ処理モデルは、各サーバとクライアントとの間の距離を得るために使用することができる。一部の実施形態では、１つ以上のデータ処理モデルは、データ分類技術を使用して構築され、過去データに基づいてトレーニングされる。例えば、１つ以上のデータ処理モデルをトレーニングするために使用される過去データサンプルとして、様々な過去サーバと様々な過去クライアントとの間の距離、過去サーバと過去クライアントとの間におけるネットワーク伝送時間、及び各過去サーバに対応するキーパラメータが挙げられる。一部の実施形態では、データ処理モデルは、各サーバについて構築され、そのサーバに関連付けられている過去データに基づいてトレーニングされてよい。一部の実施形態では、データ処理モデルは、サーバとクライアントとの間の距離を、サーバに関連付けられているキーパラメータ、サーバとクライアントとの間でデータ伝送が生じた時間（例えば週の曜日及びシステム時間）、並びにサーバ及びクライアントに関連付けられている双方向ネットワーク伝送時間に数学的に関係付ける、関数関係式を含んでいてよい。
【００３０】
少なくとも２つのサーバに対応する決定されたキーパラメータ及び決定されたネットワーク伝送時間を、（１つ以上の）データ処理モデルに提供することによって、当該（１つ以上の）データ処理モデルは、第１のサーバとクライアントとの間の距離及び第２のサーバとクライアントとの間の距離を出力しうる。
【００３１】
図１の例に戻り、１つ以上のデータ処理モデルが、クライアント１０２とサーバ１０４との間の距離、及びクライアント１０２とサーバ１０６との間の別の距離を出力しうるように、当該モデルに、サーバ１０４から送信されたリクエストされたデータがクライアント１０２で受信されるためにかかる及びクライアント１０２によって送信されたリクエストメッセージがサーバ１０４に戻って受信されるためにかかる時間の長さの合計に関連付けられているネットワーク伝送時間、サーバ１０４から送信されたリクエストされたデータがクライアント１０２で受信されるために及びクライアント１０２によって送信されたリクエストメッセージがサーバ１０６で受信されるためにかかる時間の長さの合計に関連付けられているネットワーク伝送時間、サーバ１０４について決定されたキーパラメータ値のセット、並びにサーバ１０６について決定された別のキーパラメータ値のセットが入力されてよい。
【００３２】
ステップ２０８では、少なくとも一部には、クライアントと第１のサーバとの間の距離、及びクライアントと第２のサーバとの間の距離を使用することによって、クライアントに関連付けられている物理的な位置が決定される。
【００３３】
少なくとも２つの各サーバの物理的な位置が既知であるので、決定されたクライアントと第１及び第２の各サーバとの間の距離と、これらの少なくとも２つのサーバの既知の物理的な位置とを使用し、一組の距離方程式を解くことによって、クライアントの物理的な位置を決定することが可能である。２つの距離に関連付けられているこの一組の方程式の解が一意の値である場合は、この一意の値に対応する２つの座標がクライアントの物理的座標を表す。しかしながら、この一組の方程式の解が一意の値でない場合は、クライアントの物理的な位置を決定するために少なくとも３つのサーバが使用される必要があり、この場合は、各サーバからクライアントまでに対応して決定された少なくとも３つの距離を使用することによって、クライアントの物理的な位置が一意に決定されうる。
【００３４】
図１の例に戻り、クライアント１０２とサーバ１０４との間の距離及びクライアント１０２とサーバ１０６との間の距離を使用する一組の方程式によって、一意な解が得られない場合は、クライアント１０２の物理的な位置は、サーバ１０４及びサーバ１０６を使用するだけでは決定されず、ただし、サーバ１０４及びサーバ１０６と、少なくとも１つの第３のサーバとを使用すれば決定されうることが決定される。以下の図３及び図４は、少なくとも３つのサーバを使用してクライアントの物理的な位置を決定する一例を論じている。
【００３５】
図３は、クライアントと、それぞれが既知の物理的な位置を有する４つのサーバとで構成されているシステムの一例である。この例では、クライアント３０２は、高速データネットワーク及び／又は電気通信ネットワークを含むネットワークを通じて第１のサーバ、第２のサーバ、第３のサーバ、又は第４のサーバの任意と通信していてよい。一部の実施形態では、クライアント３０２は、第１のサーバ、第２のサーバ、第３のサーバ、又は第４のサーバのいずれかから遠く離れていてよい。一部の実施形態では、第１のサーバ、第２のサーバ、第３のサーバ、又は第４のサーバのいずれかが、クライアント３０２以外のクライアントと通信していてよい。第１のサーバ、第２のサーバ、第３のサーバ、及び第４のサーバは、それぞれ、同じサービス又は少なくとも幾分異なるサービスを実施してよい。第１のサーバ、第２のサーバ、第３のサーバ、及び第４のサーバのそれぞれの物理的な位置は、既知である。
【００３６】
クライアント３０２の物理的な位置を決定する幾つかの実施形態が、以下の図４のプロセス４００と併せて説明される。
【００３７】
図４は、それぞれの物理的な位置が既知である４つのサーバを使用してクライアントの物理的な位置を決定するためのプロセスの一実施形態を示したフローチャートである。プロセス４００の例は、システム３００のクライアント３０２の物理的な位置を決定するために使用されてよい。
【００３８】
ステップ４０２では、クライアントによって送信されたページアクセスリクエストが、第１のサーバで受信される。
【００３９】
図３の例を参照すると、クライアント３０２によって送信されたページアクセスリクエストは、システム３００の第１のサーバによって受信されてよい。例えば、クライアント３０２を使用しているユーザが、第１のサーバに関連付けられているウェブサイトにおいて或る選択を行い、それによって、（例えば新しいウェブページに関連付けられている）更なるデータがクライアント３０２で表示されることを求めるリクエストを送信させるときに、クライアント３０２は、ページアクセスリクエストを送信するだろう。
【００４０】
ステップ４０４では、ページアクセスリクエストに関連付けられているページデータが、第１の記録時間に第１のサーバによってクライアントに送信される。このページデータは、クライアントに１つ以上のサーバのそれぞれにリクエストを送信させるように構成されている位置決めコードを含む。
【００４１】
第１のサーバは、次いで、リクエストされたページデータをクライアント３０２に送り返す。更に、リクエストされたページデータをクライアント３０２に送信し終わったときに、第１のサーバは、その時点におけるシステム時間をｔ１として記録する。
【００４２】
クライアント３０２に送り返されたこのページデータは、位置決めコードを含む。例えば、第１のサーバは、クライアント３０２からページアクセスリクエストを受信する前に、その全てのページデータに位置決めコードを追加してよい、又は第１のサーバは、ページを求めるクライアント３０２からのアクセスリクエストを受信した後に、そのページデータに位置決めコードを含めることができる。
【００４３】
この位置決めコードは、少なくとも２つのサーバに関連付けられているネットワークアドレス情報を含む。プロセス４００のこの例では、位置決めコードは、第２のサーバ、第３のサーバ、及び第４のサーバに関連付けられているネットワークアドレス情報（例えばメディアアクセス制御アドレス）を含んでいてよい。クライアントの物理的な位置を決定するためには、物理的な位置が既知である３つの異なるサーバがあればよいので、別の例では、第１のサーバは、第２のサーバ、第３のサーバ、及び第４のサーバのうちの１つと同じであってよい。
【００４４】
この例では、位置決めコードは、以下のように使用されてよい。すなわち、クライアント３０２が、第１のサーバから受信されたリクエストされたページデータを分析するときに、位置決めコードは、トリガされ、クライアント３０２に、位置決めコードにネットワークアドレス情報を含まれる各サーバ（第２のサーバ、第３のサーバ、及び第４のサーバ）にリクエストメッセージを送信させる。各サーバに送信させられたリクエストメッセージは、クライアント３０２の物理的な位置を決定することに関連付けられている適切な機能を各受信サーバに実施させるように構成されている別の形態のコード及び／又は命令を含む。一部の実施形態では、ページデータのなかの早い段階で位置決めコードがクライアント３０２によって分析させることを保証するために、位置決めコードは、ページデータのうちクライアント３０２によって最初に分析される位置に含められる。
【００４５】
ステップ４０６では、クライアントによって、ページデータが受信され、クライアントは、ページデータに含まれる位置決めコードによって、１つ以上のサーバのそれぞれにリクエストメッセージを送信させられる。
【００４６】
クライアント３０２がページデータを受信及び分析するときに、位置決めコードは、トリがされ、クライアント３０２に、第２のサーバ、第３のサーバ、及び第４のサーバのそれぞれにリクエストメッセージを送信させる。
【００４７】
異なるクライアントから送信されたリクエストメッセージをサーバが区別することができるように、一部の実施形態では、クライアント３０２は、自身が各サーバに送信するリクエストメッセージに、自身をクライアント３０２として一意に識別する情報を含めてよい。
【００４８】
ステップ４０８では、１つ以上のサーバのそれぞれによって、リクエストメッセージが受信され、１つ以上のサーバのそれぞれは、自身がリクエストメッセージを受信したその時点における時間を記録する。
【００４９】
第２のサーバ、第３のサーバ、及び第４のサーバがそれぞれリクエストメッセージを受信した後、各サーバは、リクエストメッセージに基づいてクライアント３０２の物理的な位置を決定することに関連付けられている機能を各サーバが実施する必要性を学習する。一部の実施形態では、クライアント３０２の物理的な位置を決定することに関連付けられているこのような機能は、サーバがクライアント３０２からリクエストメッセージを受信したときの時間を記録することと、ページデータが第１のサーバによって送信されたときに関連付けられている第１の記録時間及びサーバがクライアント３０２からリクエストメッセージを受信したときに関連付けられている記録時間を使用して、双方向ネットワーク伝送時間を決定することとを含む。
【００５０】
例えば、第２のサーバは、クライアント３０２からリクエストメッセージを受信したときに、その時点におけるシステム時間ｔ２１を記録した。第２のサーバは、次いで、ページデータが第１のサーバによって送信されたときに関連付けられている第１の記録時間ｔ１及び第２のサーバがクライアント３０２からリクエストメッセージを受信したときに関連付けられている記録時間ｔ２１を使用して、双方向ネットワーク伝送時間Δｔ２を計算して得ることができる。例えば、第２のサーバに関連付けられている双方向ネットワーク伝送時間は、Δｔ２＝ｔ２１−ｔ１として表されるだろう。
【００５１】
同様に、第３のサーバは、クライアント３０２からリクエストメッセージを受信したときのシステム時間をｔ３１として記録してよい。第３のサーバは、次いで、ページデータが第１のサーバによって送信されたときに関連付けられている第１の記録時間ｔ１及び第３のサーバがクライアント３０２からリクエストメッセージを受信したときに関連付けられている記録時間ｔ３１を使用して、双方向ネットワーク伝送時間Δｔ３を計算して得ることができる。例えば、第３のサーバに関連付けられている双方向ネットワーク伝送時間は、Δｔ３＝ｔ３１−ｔ１として表されるだろう。また、第４のサーバは、クライアント３０２からリクエストメッセージを受信したときのシステム時間をｔ４１として記録してよい。第４のサーバは、次いで、ページデータが第１のサーバによって送信されたときに関連付けられている第１の記録時間ｔ１及び第４のサーバがクライアント３０２からリクエストメッセージを受信したときに関連付けられている記録時間ｔ４１を使用して、双方向ネットワーク伝送時間Δｔ４を計算して得ることができる。例えば、第４のサーバに関連付けられている双方向ネットワーク伝送時間は、Δｔ４＝ｔ４１−ｔ１として表されるだろう。
【００５２】
例えば、第１のサーバによって記録されたシステム時間ｔ１は、第２のサーバ、第３のサーバ、及び第４のサーバがそのそれぞれの双方向ネットワーク伝送時間を決定することを促すために、第１のサーバによってこれらのその他のサーバに報告されてよい。
【００５３】
ステップ４１０では、１つ以上のサーバのそれぞれに対応するキーパラメータのセットが決定される。
【００５４】
上記のように、サーバに関連付けられているキーパラメータのセットは、サーバがクライアントとのデータ伝送に従事している間におけるそのサーバのネットワーク混雑状態を特性化するものである。サーバのその時点におけるネットワーク混雑状態を特性化するものとして、複数のキーパラメータ（特色）があってよい。この例で使用されるキーパラメータとしては、サーバによって処理される１秒あたりの取引数（Δ取引ｉ／Δｔｉ）（例えば、商取引ウェブサイトによって処理される１秒あたりの商取引数を設定期間Δｔｉで除算したもの）、サーバによって受信される１秒あたりのページリクエスト数（Δｐｖｉ／Δｔｉ）、週の曜日（例えば、月曜日におけるネットワーク混雑状態は、日曜日のそれとは大きく異なる）、及びシステム時間（例えば、午前１０時におけるネットワーク混雑状態は、午後１０時におけるそれとは大きく異なる）が挙げられる。
【００５５】
選ばれたキーパラメータに対応する値を決定する際に、各サーバは、サーバによって処理される１秒あたりの取引数と、サーバがクライアント３０２からリクエストメッセージを受信したときにサーバによって受信されている１秒あたりのページリクエスト数とを計算し、サーバがクライアント３０２からリクエストメッセージを受信したときの週の曜日及びシステム時間を決定してよい。
【００５６】
ステップ４１２では、少なくとも一部には、１つ以上のサーバのそれぞれに対応する双方向ネットワーク伝送時間及び１つ以上のサーバのそれぞれに対応するキーパラメータのセットを１つ以上のデータ処理モデルに入力することに基づいて、１つ以上のサーバのそれぞれとクライアントとの間の距離が決定される。
【００５７】
プロセス４００を実施する前に、１つ以上のデータ処理モデルが構築され、過去データに基づいてトレーニングされる。このような１つ以上のデータ処理モデルは、サーバとクライアントとの間の距離Ｓ、並びにキーパラメータ（Δ取引ｉ／Δｔｉ、Δｐｖｉ／Δｔｉ、サーバとクライアントとの間でデータ伝送が生じた時間（例えば週の曜日及びシステム時間）、及びサーバとクライアントとの間における双方向ネットワーク伝送時間Δｔ）の間の関係を特性化するものである。各サーバによって計算されたキーパラメータ（Δ取引ｉ／Δｔｉ、Δｐｖｉ／Δｔｉ、並びに週の曜日及びシステム時間）、並びにΔｔを、１つ以上のデータ処理モデルに入力することによって、モデルは、それぞれの各サーバとクライアントとの間の距離を出力するだろう。
【００５８】
１つ以上のデータ処理モデルを構築するプロセスの一例は、代表的なデータマイニング分類アルゴリズムを使用してよい。
【００５９】
一例では、分類のトレーニングプロセスは、決定木のＣ５実装を使用して実施されてよい。具体的には、トレーニングプロセスの一例は、以下のようであってよい。すなわち、１つ以上のデータ処理モデルに対するトレーニングセットとして使用するために、サーバとクライアントとの間の距離Ｓや、サーバとクライアントとの間における双方向ネットワーク時間Δｔなどの、既知の実験データ（例えば過去データ）を取得し、異なる時間領域（特性／特色選択プロセス）におけるサーバのキーパラメータ（例えば、Δ取引ｉ／Δｔｉ、Δｐｖｉ／Δｔｉ、並びに週の曜日及びシステム時間）を決定し、データ処理モデルをトレーニング（例えば、Ｓ、Δｔ、及びキーパラメータを嵌め込んで、決定木のＣ５実装を実行）し、データ処理モデルを得ることができる。
【００６０】
（１つ以上の）データ処理モデルの構築に使用されうるアルゴリズムとしては、多くの種類が可能であり、Ｃ５決定木は、その一例にすぎない。Ｃ５決定木によるトレーニングによって得られた（１つ以上の）モデルは、特定の関数式が未知であるブラックボックスである。サポートベクトルマシン（ＳＶＭ）などの、その他の既知の分類アルゴリズムが使用されてもよい。ＳＶＭ技術は、特定の関数関係を決定しうる。変数は、以下のように定義されると想定される。すなわち、システムタイムがｔ、週の曜日がweek（曜日）、サーバによって処理される１秒あたりの取引数がΔ取引ｉ／Δｔｉ、サーバによって受信される１秒あたりのページリクエスト数がΔｐｖｉ／Δｔｉ、双方向ネットワーク伝送時間がΔｔ、サーバ−クライアント間距離がＳであると想定される。したがって、１つ以上のデータ処理モデルのトレーニング中に、このようなキーパラメータのそれぞれについて、対応する加重係数ｗが得られる。例えば、このような各キーパラメータ及びネットワーク伝送時間について、対応する加重係数が決定された後は、特定のサーバについてのＳを得るために加重キーパラメータ間の関係を記述しているモデルは、関数関係式：Ｓ＝ｗ１×ｔ＋ｗ２×曜日＋ｗ３×Δ取引ｉ／Δｔｉ＋ｗ４×Δｐｖｉ／Δｔｉ＋ｗ５×Δｔで表されるだろう。
【００６１】
各キーパラメータの加重を得た後は、サーバ−クライアント間距離とネットワーク伝送時間との間の関係は、ネットワーク混雑状態とネットワーク伝送時間との関係を特性化するキーパラメータを含めること、並びに決定された加重に基づいて各キーパラメータ及びネットワーク伝送時間が及ぼす影響を加重することによって補正されてよい。したがって、一部の実施形態では、Ｓ＝ＶＴの算出方法のみに頼ることによって可能であるよりも更に正確に、クライアントの物理的な位置が得られるだろう。
【００６２】
トレーニングプロセスは、既知の（過去の）Ｓ、ｔ、曜日、Δ取引ｉ／Δｔｉ、Δｐｖｉ／Δｔｉ、及びΔｔの値に基づいて、ｗ１、ｗ２、ｗ３、ｗ４、及びｗ５の各値を決定することを含む。各キーパラメータは、任意の指数次数であるように決定されてよく、例えば、キーパラメータは、Ｓ＝ｗ１×（２の二乗）＋ｗ２×（曜日のＮ乗）＋ｗ３×Δ取引ｉ／Δｔｉ＋ｗ４×Δｐｖｉ／Δｔｉ＋ｗ５×Δ５のように、二乗又は三乗であるように決定されてよい。各キーパラメータの加重係数を決定した後は、この特定のモデルについての関数関係式が決定されてよい。モデルについての関数関係式が決定されたら、その式は、その他の全てのキーパラメータ及びネットワーク伝送時間（すなわち、ｔ、曜日、Δ取引ｉ／Δｔｉ、Δｐｖｉ／Δｔｉ、及びΔｔ）、並びにそれらのそれぞれの加重（例えばｗ１、ｗ２、ｗ３、ｗ４、及びｗ５）を既知の値として与えられたうえで、サーバとクライアントとの間の距離Ｓを決定するために使用されてよい。
【００６３】
システム３００の例に戻り、関数関係式は、第２のサーバ、第３のサーバ、及び第４のサーバのそれぞれについて決定されてよい。したがって、クライアント３０２と各サーバとの間の距離Ｓを決定するために、そのサーバについて決定された関数関係式に、決定された双方向ネットワーク伝送時間（例えばΔｔ）及びキーパラメータ（例えば、ｔ、曜日、Δ取引ｉ／Δｔｉ、Δｐｖｉ／Δｔｉ）が代入される。Ｓ２は、第２のサーバとクライアント３０２との間の距離を表し、Ｓ３は、第３のサーバとクライアント３０２との間の距離を表し、Ｓ４は、第４のサーバとクライアント３０２との間の距離を表すものとする。Ｓ２、Ｓ３、及びＳ４のこのような計算は、それぞれのサーバで実施されてよい、又は第２、第３、及び第４のサーバのうちの１つで実施されてよい、又は指定のサーバは、第２、第３、及び第４のサーバ以外のサーバであってよい（そして、各サーバのキーパラメータセット及びネットワーク伝送時間は、計算の実施のために指定のサーバに送信されてよい）。
【００６４】
ステップ４１４では、少なくとも一部には、１つ以上のサーバのそれぞれとクライアントとの間の距離に基づいて、クライアントに関連付けられている物理的な位置が決定される。
【００６５】
例えば、各サーバの物理的な位置は、既知の三次元（ｘ、ｙ、及びｚ）地理座標を含む。すると、クライアント３０２の物理的な位置を決定するために、第２、第３、及び第４のサーバの距離Ｓ２、Ｓ３、Ｓ４と既知の物理的な位置（例えば既知の（ｘ、ｙ、ｚ）座標）とを基準にして一組の方程式を設定することができる。たとえ、第２、第３、及び第４のサーバのそれぞれが、自身のＳ２値、Ｓ３値、及びＳ４値（と、第２、第３、及び第４のサーバのそれぞれの物理的な位置と）を計算したとしても、Ｓ２値、Ｓ３値、及びＳ４値は、指定のサーバが、クライアント３０２の物理的な位置を決定するために一組の方程式を設定して解くために、その指定のサーバに送信されてよい。
【００６６】
物理的な位置が未知であるクライアントと通信するために、物理的な位置が既知である様々なサーバを使用することによって、クライアントの通信に関連付けられている時間及びサーバのそれぞれのネットワーク混雑状態から、様々なキーパラメータ又はキー特色が抽出され、クライアントのＩＰアドレスを使用してクライアントの物理的な位置を決定するよりも更に正確に、クライアントの物理的な位置が決定されるだろう。
【００６７】
図５は、物理的な位置が既知である様々なサーバを使用してクライアントの物理的な位置を決定するためのシステムの一実施形態を示した図である。この例では、システム５００は、時間決定ユニット５０１と、パラメータ決定ユニット５０２と、距離決定ユニット５０３と、所在決定ユニット５０４とを含む。
【００６８】
モジュール、ユニット、及びサブユニットは、１つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又はプログラム可能論理装置及び／若しくは特定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、モジュール、ユニット、及びサブユニットは、本発明の実施形態で説明される方法を（パソコン、サーバ、ネットワーク機器などの）計算装置に実行させるための幾つかの命令を含み尚且つ（光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの）不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化することができる。モジュール、ユニット、及びサブユニットは、１つのデバイスに実装されてよい、又は複数のデバイスに分散されてよい。
【００６９】
時間決定ユニット５０１は、クライアントと少なくとも２つのサーバとの間におけるデータ伝送時間に基づいて、クライアントへの少なくとも２つのサーバのネットワーク伝送時間を決定するように構成される。
【００７０】
パラメータ決定ユニット５０２は、少なくとも２つのサーバのそれぞれのキーパラメータセットを得るように構成され、キーパラメータは、サーバがクライアントとのデータ伝送に従事しているときのサーバのネットワーク混雑状態を特性化するように選択される。
【００７１】
距離決定ユニット５０３は、予め構築された１つ以上のデータ処理モデルと、少なくとも２つのサーバに対応するキーパラメータセットと、ネットワーク伝送時間とを使用して、各サーバとクライアントとの間の距離を計算するように構成される。
【００７２】
所在決定ユニット５０４は、各サーバとクライントとの間の距離と、各サーバの既知の物理的な位置とを使用して、クライアントの物理的な位置を計算して得るように構成される。
【００７３】
一部の実施形態では、時間決定ユニット５０１は、先ず、２つのサーバとクライアントとの間におけるネットワーク伝送時間を決定するように構成される。例えば、ネットワーク伝送時間は、クライント及びサーバが互いとのデータ伝送を取り決めた後に個々のデータ伝送開始時間及び終了時間を記録することによって計算されてよい。また、以下のようであってもよい。すなわち、クライアントがサーバを通常訪問し、サーバがクライアントにアクセスデータを送り返したときに、時間記録がトリガされ、その時間が開始時間として記録される。次いで、クライアントによるデータの受信によって、クライアントは、このサーバに及び少なくとも１つのその他のサーバにデータ伝送を行い、このサーバ及びその他のサーバは、データ受信時間を記録する。次いで、各サーバは、開始時間と、サーバ自身の記録データ受信時間とに基づいて、自身とクライアントとの間における双方向ネットワーク伝送時間を得る。時間決定ユニット５０１がネットワーク伝送時間を取得した後、パラメータ決定ユニット５０２は、サーバとクライアントとの間の距離とネットワーク伝送時間との関係に対してコンテクストを与えるために、サーバとクライアントとの間で行われているデータ伝送時における各サーバのネットワーク混雑状態を特性化する様々なキーパラメータに対応する値を決定する。ネットワーク混雑状態を特性化するキーパラメータの例としては、サーバによって処理される１秒あたりの取引数、サーバによって受信される１秒あたりのページリクエスト数、サーバがクライアントから通信を受信したときの週の曜日、及びサーバがクライアントから通信を受信したときのサーバシステム時間が挙げられる。キーパラメータが決定された後、距離決定ユニット５０３は、少なくとも２つのキーパラメータと、双方向ネットワーク伝送時間と、予め構築された１つ以上のデータ処理モデルとを使用して、各サーバとクライアントとの間の距離を計算する。この予め構築されたデータ処理モデルは、既知の過去データに対してデータマイニング分類アルゴリズムを用いることによって計算されて得られたデータ処理モデルである。距離決定ユニット５０３は、少なくとも２つのサーバのキーパラメータと、ネットワーク伝送時間とを、少なくとも関数関係式を含むデータ処理モデルに入力し、各サーバとクライアントとの間の距離を計算する。最後に、所在決定ユニット５０４は、各サーバとクライアントとの間の距離と、各サーバの物理的な位置とに基づいて、クライアントの物理的な位置を計算する。
【００７４】
図６は、物理的な位置が既知である様々なサーバを使用してクライアントの物理的な位置を決定するためのシステムの一実施形態を示した図である。一部の実施形態では、システム５００に代わり、システム６００が使用されてよい。
【００７５】
システム５００と同様に、システム６００もやはり、上述のような、パラメータ決定ユニット５０２と、距離決定ユニット５０３と、所在決定ユニット５０４とを含む。システム５００と異なり、システム６００は、時間決定ユニット５０１に代わる後述のような時間決定ユニット６０１と、更にモデル構築ユニット６０５とを含む。
【００７６】
時間決定ユニット６０１は、第１の決定サブユニット６０１１と、第２の決定サブユニット６０１２と、時間計算サブユニット６０１３とを含む。
【００７７】
第１の決定サブユニット６０１１は、第１のサーバが第１のデータをクライアントに送信し終えたときの開始システム時間を決定するように構成される。この第１のデータは、位置決めコードを含む。第１の位置決めコードは、第１のデータを受信した後に、クライントが、その位置決めコードによって、該位置決めコード内のネットワーク情報にしたがって少なくとも第１のサーバ及び第２のサーバに第２のデータを送信させられるように、少なくとも第２のサーバに関するネットワークアドレス情報を含む。例えば、位置決めコードは、クライアントによって最初に分析される可能性が高い第１のデータの位置に配置される。
【００７８】
第２の決定サブユニット６０１２は、クライアントによって送信された第２のデータが第１のサーバによって受信されたときの第１の終了システム時間、及びクライアントによって送信された第２のデータが第２のサーバによって受信されたときの第２の終了システム時間を決定するように構成される。クライアントは、第１のデータに含まれる位置決めコードを分析した後、第２のデータを第１のサーバ及び第２のサーバに送信させられる。
【００７９】
時間計算サブユニット６０１３は、第１の終了システム時間及び第２の終了システム時間のそれぞれと、第１のシステム時間との間の差を、サーバ及びクライアントに関連付けられている双方向ネットワーク伝送時間として計算するように構成される。
【００８０】
モデル構築ユニット６０５は、既知の過去データに対してデータマイニング分類技術を使用して、１つ以上のデータ処理モデルを計算して得るように構成される。例えば、過去データとしては、過去サーバと過去クライアントとの間の距離、過去サーバと過去クライアントとの間におけるネットワーク伝送時間、及び過去サーバのキーパラメータ値が挙げられる。時間決定ユニット６０１によって決定されたネットワーク伝送時間は、双方向ネットワーク伝送時間であるので、モデル構築ユニット６０５における過去サーバ−過去クライアント間ネットワーク伝送時間もまた、双方向ネットワーク伝送時間である。
【００８１】
時間決定ユニット６０１は、上述の３つのサブユニットを通じて、サーバとクライアントとの間における双方向ネットワーク伝送時間を決定する。更に、パラメータ決定ユニット５０２が上述のキーパラメータを決定した後、距離決定ユニット５０３は、モデル構築ユニット６０５によって構築された（１つ以上の）データ処理モデルに基づいて、サーバ−クライアント間距離の計算を実施する。次いで、所在決定ユニット５０４は、クライアントの物理的な位置を計算する。
【００８２】
説明の便宜上、上記のデバイスを説明するときは、各モジュールがその機能にしたがって個別に説明される。もちろん、本出願を実行に移す際は、様々なユニットの機能が同じ又は複数のソフトウェア構成及び／又はハードウェア構成で実現されてよい。
【００８３】
上記の実施形態の説明からわかるように、当業者ならば、本出願が、ソフトウェアに汎用ハードウェアプラットフォームを加えたものの助けによって実現可能であることを、はっきり理解することができる。このような理解に基づいて、本出願の技術的提案は、本質的にであれ、又は既存の技術に寄与する部分に関してであれ、ソフトウェア製品の形で具現化可能である。これらのコンピュータソフトウェア製品は、例えばＲＯＭ／ＲＡＭ、ディスケット、及びコンパクトディスクなどのストレージ媒体に記憶させることができ、本出願の実施形態で又は本出願の実施形態の特定の部分で説明された方法を一式のコンピュータ機器（パソコン、サーバ、又はネットワーク機器などであってよい）に実行させるために使用される特定の数のコマンドを含む。
【００８４】
本出願に含まれる各実施形態は、進行形で説明されており、その説明は、各実施形態のなかの同一の又は類似の部分どうしを相互に参照されてよい。各実施形態の説明は、その他の実施形態との相違箇所に焦点を合わせている。特に、デバイスの実施形態に関しては、基本的に、方法の実施形態と同様であるゆえに、比較的簡単に説明されている。関連の態様については、方法の実施形態の説明部分を参照することができる。上述されたデバイスの実施形態は、例示的なものに過ぎない。そこで別々のコンポーネントとして説明されているユニットは、物理的に別々であっても又はそうでなくでもよく、ユニットとして示されたコンポーネントは、物理的なユニットであっても又はそうでなくてもよい、すなわち、一箇所に配置されても又は複数のネットワークユニットに分散されてもよい。本明細書におけるモジュールは、その一部又は全部が、本出願の目的を実現するために実際の必要要件に基づいて選ばれたものであってよい。当業者ならば、創造的な労力を費やすことなくそれを理解及び実現することができる。
【００８５】
本出願は、汎用又は専用の、数々のコンピュータシステム環境又はコンピュータシステム構成のなかで使用することができる。例えば、パソコン、サーバコンピュータ、携帯端末すなわち持ち運び式の機器、タブレット端末、マイクロプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、大型コンピュータ、上記のシステム若しくは機器のうちの任意を含む分散コンピューティング環境などが挙げられる。
【００８６】
本出願は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能コマンドを一般的な背景として説明することができる。総じて、プログラムモジュールは、特定のタスクを実行するために又は特定の抽象データ型を実現するために、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本出願は、また、分散コンピューティング環境のなかでも実行に移すことができ、このような分散コンピューティング環境では、タスクは、通信ネットワークを通じて接続されたリモート処理装置によって実行される。分散コンピューティング環境では、プログラムモジュールは、ストレージ機器を含むローカルな又はリモートのコンピュータにおけるストレージ媒体上に配置することができる。
【００８７】
上記の説明は、本出願を実現するための特定の一手段に過ぎない。当業者ならば、本出願の原理から逸脱することなく数々の改善及び潤色をなしうること、並びにそのような改善及び潤色もまた、本出願による保護の範囲内であると見なされるべきであることが、留意されるべきである。
【００８８】
以上の実施形態は、理解を明瞭にすることを目的として幾らか詳細に説明されてきたが、本発明は、与えられた詳細に限定されない。本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的なものであり、非限定的である。
適用例１：クライアントの物理的な位置を決定するためのシステムであって、１つ以上のプロセッサであって、前記クライアントへのリクエストされたデータの送信および前記クライアントから第１のサーバへのデータの送信に関連付けられているネットワーク伝送時間、並びに前記クライアントへのリクエストされたデータの送信および前記クライアントから第２のサーバへのデータの送信に関連付けられているネットワーク伝送時間を決定し、前記第１のサーバについてのキーパラメータのセット、および前記第２のサーバについてのキーパラメータのセットを決定し、前記第１のサーバに関連付けられているネットワーク伝送時間、前記第２のサーバに関連付けられているネットワーク伝送時間、前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを１つ以上のデータ処理モデルに入力することに少なくとも一部基づいて、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を決定し、少なくとも一部には、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を使用することによって、前記クライアントに関連付けられている物理的な位置を決定するように構成されている１つ以上のプロセッサと、  前記１つ以上のプロセッサに接続され、前記１つ以上のプロセッサに命令を提供するように構成されている１つ以上のメモリと、を備えるシステム。
適用例２：適用例１に記載のシステムであって、前記第１のサーバに関連付けられているネットワーク伝送時間は、リクエストされたデータを前記クライアントに送信することに関連付けられている開始時間、及び前記クライアントによって送信されたデータを前記第１のサーバが受信することに関連付けられている終了時間に少なくとも一部基づいて、決定される、システム。
適用例３：適用例１に記載のシステムであって、前記第２のサーバに関連付けられているネットワーク伝送時間は、リクエストされたデータを前記クライアントに送信することに関連付けられている開始時間、及び前記クライアントによって送信されたデータを前記第２のサーバが受信することに関連付けられている終了時間に少なくとも一部基づいて、決定される、システム。
適用例４：適用例１に記載のシステムであって、前記第１のサーバについてのキーパラメータのセットは、前記第１のサーバによって処理される１秒あたりの取引数、前記第１のサーバによって受信される１秒あたりのページリクエスト数、前記クライアントから送信されたデータを前記第１のサーバが受信したときの週の曜日、前記クライアントから送信されたデータを前記第１のサーバが受信したときのシステム時間のうちの１つ以上を含む、システム。
適用例５：適用例１に記載のシステムであって、前記第２のサーバについてのキーパラメータのセットは、前記第２のサーバによって処理される１秒あたりの取引数、前記第２のサーバによって受信される１秒あたりのページリクエスト数、前記クライアントから送信されたデータを前記第２のサーバが受信したときの週の曜日、前記クライアントから送信されたデータを前記第２のサーバが受信したときのシステム時間のうちの１つ以上を含む、システム。
適用例６：適用例１に記載のシステムであって、前記リクエストされたデータは、前記クライアントに、前記第１のサーバ及び前記第２のサーバにデータを送信させるように構成されている、システム。
適用例７：適用例１に記載のシステムであって、前記リクエストされたデータは、位置決めコードを含み、前記位置決めコードは、前記クライアントに、前記第１のサーバ及び前記第２のサーバにデータを送信させるように構成されている、システム。
適用例８：適用例１に記載のシステムであって、前記１つ以上のデータ処理モデルは、キーパラメータのセットの中の少なくとも１つと、ネットワーク伝送時間と、サーバとクライアントとの間の距離とを関係付ける、関数関係式を含む、システム。
適用例９：適用例１に記載のシステムであって、前記クライアントに関連付けられている物理的な位置を決定することは、前記クライアントと前記第１のサーバとの間の距離、前記クライアントと前記第２のサーバとの間の距離、前記第１のサーバに関連付けられている物理的な位置、及び前記第２のサーバに関連付けられている物理的な位置を使用して、一組の方程式を決定することを含む、システム。
適用例１０：クライアントの物理的な位置を決定するための方法であって、前記クライアントへのリクエストされたデータの送信、および前記クライアントから第１のサーバへのデータの送信に関連付けられているネットワーク伝送時間、並びに前記クライアントへのリクエストされたデータの送信、および前記クライアントから第２のサーバへのデータの送信に関連付けられているネットワーク伝送時間を決定し、前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを決定し、前記第１のサーバに関連付けられているネットワーク伝送時間、前記第２のサーバに関連付けられているネットワーク伝送時間、前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを１つ以上のデータ処理モデルに入力することに少なくとも一部基づいて、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を決定し、少なくとも一部には、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を使用することによって、前記クライアントに関連付けられている物理的な位置を決定すること、を備える方法。
適用例１１：適用例１０に記載の方法であって、前記第１のサーバに関連付けられているネットワーク伝送時間は、リクエストされたデータを前記クライアントに送信することに関連付けられている開始時間、及び前記クライアントによって送信されたデータを前記第１のサーバが受信することに関連付けられている終了時間に少なくとも一部基づいて、決定される、方法。
適用例１２：適用例１０に記載の方法であって、前記第２のサーバに関連付けられているネットワーク伝送時間は、リクエストされたデータを前記クライアントに送信することに関連付けられている開始時間、及び前記クライアントによって送信されたデータを前記第２のサーバが受信することに関連付けられている終了時間に少なくとも一部基づいて、決定される、方法。
適用例１３：適用例１０に記載の方法であって、前記第１のサーバについてのキーパラメータのセットは、前記第１のサーバによって処理される１秒あたりの取引数、前記第１のサーバによって受信される１秒あたりのページリクエスト数、前記クライアントから送信されたデータを前記第１のサーバが受信したときの週の曜日、前記クライアントから送信されたデータを前記第１のサーバが受信したときのシステム時間のうちの１つ以上を含む、方法。
適用例１４：適用例１０に記載の方法であって、前記第２のサーバについてのキーパラメータのセットは、前記第２のサーバによって処理される１秒あたりの取引数、前記第２のサーバによって受信される１秒あたりのページリクエスト数、前記クライアントから送信されたデータを前記第２のサーバが受信したときの週の曜日、前記クライアントから送信されたデータを前記第２のサーバが受信したときのシステム時間のうちの１つ以上を含む、方法。
適用例１５：適用例１０に記載の方法であって、前記リクエストされたデータは、前記クライアントに、前記第１のサーバ及び前記第２のサーバにデータを送信させるように構成されている、方法。
適用例１６：適用例１０に記載の方法であって、前記リクエストされたデータは、位置決めコードを含み、前記位置決めコードは、前記クライアントに、前記第１のサーバ及び前記第２のサーバにデータを送信させるように構成されている、方法。
適用例１７：適用例１０に記載の方法であって、前記１つ以上のデータ処理モデルは、キーパラメータのセットの中の少なくとも１つと、ネットワーク伝送時間と、及びサーバとクライアントとの間の距離を関係付ける、関数関係式を含む、方法。
適用例１８：適用例１０に記載の方法であって、前記クライアントに関連付けられている物理的な位置の決定は、前記クライアントと前記第１のサーバとの間の距離、前記クライアントと前記第２のサーバとの間の距離、前記第１のサーバに関連付けられている物理的な位置、及び前記第２のサーバに関連付けられている物理的な位置を使用して、一組の方程式を決定することを含む、方法。
適用例１９：非一時的なコンピュータ読み取り可能ストレージ媒体に実装された、クライアントの物理的な位置を決定するためのコンピュータプログラム製品であって、前記クライアントへのリクエストされたデータの送信、および前記クライアントから第１のサーバへのデータの送信に関連付けられているネットワーク伝送時間、並びに前記クライアントへのリクエストされたデータの送信、および前記クライアントから第２のサーバへのデータの送信に関連付けられているネットワーク伝送時間を決定するためのコンピュータ命令と、前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを決定するためのコンピュータ命令と、前記第１のサーバに関連付けられているネットワーク伝送時間、前記第２のサーバに関連付けられているネットワーク伝送時間、前記第１のサーバについてのキーパラメータのセット、及び前記第２のサーバについてのキーパラメータのセットを１つ以上のデータ処理モデルに入力することに少なくとも一部基づいて、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を決定するためのコンピュータ命令と、少なくとも一部には、前記クライアントと前記第１のサーバとの間の距離、及び前記クライアントと前記第２のサーバとの間の距離を使用することによって、前記クライアントに関連付けられている物理的な位置を決定するためのコンピュータ命令と、を備えるコンピュータプログラム製品。
【図１】
0005805321.tif 000002
【図２】
0005805321.tif 000003
【図３】
0005805321.tif 000004
【図４】
0005805321.tif 000005
【図５】
0005805321.tif 000006
【図６】
0005805321.tif 000007