(57)【特許請求の範囲】
【請求項１】
クライアントデバイスによって、前記クライアントデバイスの物理的位置を検出するステップと、
前記クライアントデバイスの1つまたは複数のプロセッサによって、情報クエリを受信するステップと、
前記1つまたは複数のプロセッサによって、前記情報クエリに基づいて検索要求を生成するステップと、
前記クライアントデバイスの通信モジュールによって、前記検索要求および前記クライアントデバイスの前記検出された位置をウェブサーバに送信するステップと、
前記通信モジュールによって、前記検索要求に対する応答および位置信号を受信するステップであって、前記応答が、前記クライアントデバイスの前記検出された位置に基づく位置選択された検索結果を含み、前記位置信号が、前記検出された位置が前記クライアントデバイスの以前に検出された位置からしきい値距離以内であるかどうかを示し、前記しきい値距離が、検索結果の密度、ユーザクリックパターン、および受信されたリフレッシュ要求の量を含む、1つまたは複数の要因に基づいて可変である、ステップと、
前記1つまたは複数のプロセッサによって、前記位置信号に基づいて、前記受信された検索結果をリフレッシュするか、ウェブページ全体をリフレッシュするか、それとも前記受信された検索結果と前記ウェブページ全体のどちらもリフレッシュしないかを判定するステップとを含む、
方法。
【請求項２】
前記検出するステップの前に、
前記1つまたは複数のプロセッサによって、初期情報クエリを受信するステップと、
前記1つまたは複数のプロセッサによって、前記初期情報クエリに基づいて初期検索要求を生成するステップと、
前記クライアントデバイスの前記通信モジュールによって、前記初期検索要求を前記ウェブサーバに送信するステップと、
前記通信モジュールによって、前記初期検索要求に対する応答および位置要求を受信するステップとをさらに含む、
請求項1に記載の方法。
【請求項３】
前記位置要求が、前記クライアントデバイスの前記物理的位置を検出するように前記クライアントデバイスに指示する、
請求項2に記載の方法。
【請求項４】
前記初期検索要求に対する前記応答が、前記クライアントデバイスのIPアドレスに基づいて推定された位置、または前記クライアントデバイスの前記以前に検出された位置に基づく初期検索結果を含む、
請求項2または請求項3に記載の方法。
【請求項５】
前記判定に応答して、前記クライアントデバイスが、リフレッシュされた検索結果を前記ウェブサーバに要求する、
請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記判定に応答して、前記クライアントデバイスが、前記クライアントデバイスの表示装置上に提示するための前記ウェブページ全体をリフレッシュする、
請求項1から4のいずれか一項に記載の方法。
【請求項７】
ウェブサーバの1つまたは複数の処理デバイスによって、クライアントデバイスから検索要求および位置情報を受信するステップであって、前記位置情報が、前記クライアントデバイスの検出された物理的位置を含む、ステップと、
前記1つまたは複数の処理デバイスによって、前記クライアントデバイスの前記受信された検出された物理的位置を前記クライアントデバイスの以前に受信された物理的位置と、しきい値に基づいて比較するステップであって、前記しきい値が、検索結果の密度、ユーザクリックパターン、および受信されたリフレッシュ要求の量を含む、1つまたは複数の要因に基づいて可変である、ステップと、
前記比較に応答して、前記受信された検出された物理的位置と前記以前に受信された物理的位置との間の距離が前記しきい値よりも大きいかそれとも小さいかを示す、位置信号を生成するステップと、
前記検索要求に応答して、前記受信された位置情報に基づいて検索結果を生成するステップと、
前記生成された検索結果を前記クライアントデバイスに、前記生成された位置信号とともに送信するステップとを含む、
方法。
【請求項８】
可変である前記しきい値が、1つまたは複数の所定の値である、
請求項7に記載の方法。
【請求項９】
前記生成された検索結果をリフレッシュするようにとの要求を前記クライアントデバイスから受信するステップをさらに含む、
請求項7または請求項8に記載の方法。
【請求項１０】
前記生成された結果をリフレッシュするようにとの前記要求が、前記生成された位置信号に基づいてもたらされる、
請求項9に記載の方法。
【請求項１１】
前記送信するステップが、
位置要求を送信するステップを含み、
前記位置要求が、前記クライアントデバイスの前記物理的位置を検出するように前記クライアントデバイスに指示する、
請求項7から10のいずれか一項に記載の方法。
【請求項１２】
前記クライアントデバイスの前記以前に受信された物理的位置が、前記ウェブサーバによってメモリ内に格納される、
請求項7から11のいずれか一項に記載の方法。
【請求項１３】
クライアントデバイスであって、前記クライアントデバイスは、
ユーザ入力を受信するように構成された1つまたは複数のユーザ入力デバイスを含む、ユーザインターフェースモジュールと、
1つまたは複数のプロセッサを含む処理モジュールと、
データ、および前記処理モジュールによって実行するための命令を格納するように構成された1つまたは複数のメモリを有する、メモリモジュールと、
1つまたは複数のリモートデバイスと双方向通信するように構成されたワイヤレストランシーバを含む、通信モジュールとを備え、
前記処理モジュールが、前記ユーザインターフェースモジュール、前記メモリモジュール、および前記通信モジュールに動作可能に結合され、前記処理モジュールが、
前記クライアントデバイスの物理的位置を検出すること、
前記ユーザインターフェースモジュールを介して、情報クエリを受信すること、
前記情報クエリに基づいて検索要求を生成すること、
前記通信モジュールを介して、前記検索要求および前記クライアントデバイスの前記検出された位置をウェブサーバに送信すること、
前記通信モジュールを介して、前記検索要求に対する応答および位置信号を受信することであって、前記応答が、前記クライアントデバイスの前記検出された位置に基づく位置選択された検索結果を含み、前記位置信号が、前記検出された位置が前記クライアントデバイスの以前に検出された位置からしきい値距離以内であるかどうかを示し、前記しきい値距離が、検索結果の密度、ユーザクリックパターン、および受信されたリフレッシュ要求の量を含む、1つまたは複数の要因に基づいて可変である、受信すること、ならびに
前記位置信号に基づいて、前記受信された検索結果をリフレッシュするか、ウェブページ全体をリフレッシュするか、それとも前記受信された検索結果と前記ウェブページ全体のどちらもリフレッシュしないかを判定することを行うように構成される、
クライアントデバイス。
【請求項１４】
前記処理モジュールが、前記検出することの前に、
前記ユーザインターフェースモジュールを介して、初期情報クエリを受信することと、
前記情報クエリに基づいて初期検索要求を生成することと、
前記通信モジュールを介して、前記初期検索要求を前記ウェブサーバに送信することと、
前記通信モジュールを介して、前記初期検索要求に対する応答および位置要求を受信することとを行うようにさらに構成される、
請求項13に記載のクライアントデバイス。
【請求項１５】
前記位置要求が、前記クライアントデバイスの前記物理的位置を検出するように前記クライアントデバイスに指示する、
請求項14に記載のクライアントデバイス。
【請求項１６】
前記判定に応答して、前記クライアントデバイスが、リフレッシュされた検索結果を前記ウェブサーバに要求するか、または前記クライアントデバイスの表示装置上に提示するための前記ウェブページ全体をリフレッシュする、
請求項14または請求項15に記載のクライアントデバイス。
【請求項１７】
サーバシステムであって、前記サーバシステムは、
1つまたは複数のプロセッサを含む処理モジュールと、
データ、および前記処理モジュールによって実行するための命令を格納するように構成された1つまたは複数のメモリを有する、メモリモジュールと、
1つまたは複数のワイヤレスステーションおよび1つまたは複数のクライアントデバイスを含む1つまたは複数のリモートデバイスと双方向通信するように構成されたワイヤレストランシーバを含む、通信モジュールとを備え、
前記処理モジュールが、前記メモリモジュールおよび前記通信モジュールに動作可能に結合され、
前記通信モジュールを介して、クライアントデバイスから検索要求および位置情報を受信することであって、前記位置情報が、前記クライアントデバイスの検出された物理的位置を含む、こと、
前記クライアントデバイスの前記受信された検出された物理的位置を前記クライアントデバイスの以前に受信された物理的位置と、しきい値に基づいて比較することであって、前記しきい値が、検索結果の密度、ユーザクリックパターン、および受信されたリフレッシュ要求の量を含む、1つまたは複数の要因に基づいて可変である、こと、
前記比較に応答して、前記受信された検出された物理的位置と前記以前に受信された物理的位置との間の距離が前記しきい値よりも大きいかそれとも小さいかを示す、位置信号を生成すること、
前記検索要求に応答して、前記受信された位置情報に基づいて検索結果を生成すること、ならびに
前記通信モジュールを介して、前記生成された検索結果を前記クライアントデバイスに、前記生成された位置信号とともに送信することを行うように構成される、
サーバシステム。
【請求項１８】
前記処理モジュールが、前記通信モジュールを介して、前記生成された検索結果をリフレッシュするようにとの要求を前記クライアントデバイスから受信するようにさらに構成され、
前記生成された結果をリフレッシュするようにとの前記要求が、前記生成された位置信号に基づいてもたらされる、
請求項17に記載のサーバシステム。
【請求項１９】
前記処理モジュールが、前記生成された検索結果を位置要求とともに送信するように構成され、
前記位置要求が、前記クライアントデバイスの前記物理的位置を検出するように前記クライアントデバイスに指示する、
請求項17または請求項18に記載のサーバシステム。
【請求項２０】
プロセッサによって、請求項1から12のいずれか一項に記載の方法を実行するように構成された、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その開示がここに参照により本明細書に組み込まれている、2017年11月7日に出願した米国特許出願第15/805,277号の継続出願である。
本開示は、位置変化に対するウェブページ上での対処に関する。
【背景技術】
【０００２】
意味のある検索結果および他の情報を、モバイルクライアントデバイスのユーザに提供するには、そのデバイスの位置、または少なくとも概略位置を特定する必要がある。位置は、クライアントデバイスにおいて、例としてGPSを使用して決定され得る。位置はまた、ネットワーク側で、例としてクライアントデバイスのIPアドレスから、ワイヤレス信号の三角測量によって、または他の技法によって、決定され得る。
【０００３】
しかし、クライアントデバイスが移動してその位置が変化するとき、クライアントクエリに対する、位置に適した応答を提供することは、困難となる場合がある。例として、クライアントデバイスがその位置を決定する状況下では、その位置がクッキー内に格納されてよい。クッキーは、将来的な検索で使用され得るが、現在の検索クエリがサブミットされる時点で、現在の位置情報は利用可能ではない。したがって、ウェブサーバが現在の位置情報を把握していないので、位置の影響を受けやすい検索結果は、クライアントデバイスのウェブブラウザにおいて受信されたときにはすでに陳腐になっている場合がある。
【０００４】
1つの解決策は、現在の位置を用いて結果をリフレッシュするために、ウェブページをブラウザにリロードすることである。しかし、これにより、レーテンシが著しく増大する(例えば2倍になる)。それにより、クライアントデバイスとウェブサーバの両方上で実施される処理の量も増大する。また、クライアントデバイスでは、それによりバッテリ寿命に悪影響が及ぶ場合がある。したがって、ブラウザをこのように自動的にリフレッシュすることは、多くの状況下では、最も効率的な手法とはなり得ない。
【発明の概要】
【課題を解決するための手段】
【０００５】
本技術の態様には、クライアントデバイスの位置が変化した結果として、クエリの結果またはウェブページ自体が変化することになるかどうかを判定することが関与する。1つのシナリオでは、クライアントデバイスの旧(以前の)位置が、クライアントデバイスのクッキー内に利用可能である。これは、現在のウェブページをレンダリングする際に使用される位置である。ウェブページが、例として新たなクエリに応答して、リロードされるとき、ウェブサーバが、更新された位置情報を受信する。ウェブサーバは、更新された位置情報に基づいて、クライアントデバイスが以前の位置から移動した距離を測定することができる。位置変化が検索結果またはウェブページにどれほどの影響を及ぼすことになるかに応じて、関連部分またはウェブページの全体がリフレッシュされ得る。
【０００６】
本技術の一態様によれば、クライアントデバイスによって、クライアントデバイスの物理的位置を検出することと、クライアントデバイスの1つまたは複数のプロセッサによって、情報クエリを受信することと、1つまたは複数のプロセッサによって、情報クエリに従って検索要求を生成することと、クライアントデバイスの通信モジュールによって、検索要求およびクライアントデバイスの検出された位置をウェブサーバに送信することとを含む、方法が提供される。方法は、通信モジュールによって、検索要求に対する応答および位置信号を受信することも含む。応答は、クライアントデバイスの検出された位置に基づく位置選択された検索結果を含む。位置信号は、検出された位置がクライアントデバイスの以前に検出された位置からしきい値距離以内であるかどうかを示す。方法は、1つまたは複数のプロセッサによって、位置信号に従って、受信された検索結果をリフレッシュするか、ウェブページ全体をリフレッシュするか、それとも受信された検索結果とウェブページ全体のどちらもリフレッシュしないかを判定することも含む。
【０００７】
一例では、方法は、検出することの前に、1つまたは複数のプロセッサによって、初期情報クエリを受信することと、1つまたは複数のプロセッサによって、情報クエリに従って初期検索要求を生成することと、クライアントデバイスの通信モジュールによって、初期検索要求をウェブサーバに送信することと、通信モジュールによって、初期検索要求に対する応答および位置要求を受信することとをさらに含む。位置要求は、クライアントデバイスの物理的位置を検出するようにクライアントデバイスに指示することができる。初期検索要求に対する応答は、クライアントデバイスの推定された位置に基づく初期検索結果を含んでよい。
【０００８】
別の例では、判定に応答して、クライアントデバイスが、リフレッシュされた検索結果をウェブサーバに要求する。また、さらなる例では、判定に応答して、クライアントデバイスが、クライアントデバイスの表示装置上に提示するためのウェブページ全体をリフレッシュする。
【０００９】
本技術の別の態様によれば、ウェブサーバの1つまたは複数の処理デバイスによって、クライアントデバイスから検索要求および位置情報を受信することを含む方法が提供される。位置情報は、クライアントデバイスの検出された物理的位置を含む。方法は、1つまたは複数の処理デバイスによって、クライアントデバイスの受信された検出された物理的位置をクライアントデバイスの以前に受信された物理的位置と、しきい値に従って比較することも含む。比較に応答して、方法は、受信された検出された物理的位置と以前に受信された物理的位置との間の距離がしきい値よりも大きいかそれとも小さいかを示す、位置信号を生成する。検索要求に応答して、受信された位置情報に従って検索結果が生成され、生成された検索結果が、クライアントデバイスのユーザに提示するためにクライアントデバイスに、生成された位置信号とともに送信される。
【００１０】
一例では、しきい値が所定の値である。別の例では、しきい値が、検索結果の密度、ユーザクリックパターン、および受信されたリフレッシュ要求の量を含む、1つまたは複数の要因に従って可変である。
【００１１】
一代替形態によれば、方法は、生成された検索結果をリフレッシュするようにとの要求をクライアントデバイスから受信することも含む。この場合、生成された結果をリフレッシュするようにとの要求は、生成された位置信号に従ってもたらされてよい。
【００１２】
別の代替形態では、送信することが、位置要求を送信することをさらに含む。位置要求は、クライアントデバイスの物理的位置を検出するようにクライアントデバイスに指示する。さらなる代替形態では、クライアントデバイスの以前に受信された物理的位置が、ウェブサーバによってメモリ内に格納される。
【００１３】
本技術のさらに別の態様によれば、ユーザ入力を受信するように構成された1つまたは複数のユーザ入力デバイスを含む、ユーザインターフェースモジュールと、1つまたは複数のプロセッサを含む処理モジュールと、データ、および処理モジュールによって実行するための命令を格納するように構成された1つまたは複数のメモリを有する、メモリモジュールと、1つまたは複数のリモートデバイスと双方向通信するように構成されたワイヤレストランシーバを含む、通信モジュールとを有する、クライアントデバイスが提供される。処理モジュールは、ユーザインターフェースモジュール、メモリモジュール、および通信モジュールに動作可能に結合される。処理モジュールは、クライアントデバイスの物理的位置を検出することと、ユーザインターフェースモジュールを介して、情報クエリを受信することと、情報クエリに従って検索要求を生成することと、通信モジュールを介して、検索要求およびクライアントデバイスの検出された位置をウェブサーバに送信することとを行うように構成される。処理モジュールは、通信モジュールを介して、検索要求に対する応答および位置信号を受信するようにも構成される。応答は、クライアントデバイスの検出された位置に基づく位置選択された検索結果を含む。位置信号は、検出された位置がクライアントデバイスの以前に検出された位置からしきい値距離以内であるかどうかを示す。処理モジュールは、位置信号に従って、受信された検索結果をリフレッシュするか、ウェブページ全体をリフレッシュするか、それとも受信された検索結果またはウェブページ全体のどちらかをリフレッシュしないかを判定するようにさらに構成される。
【００１４】
1つのシナリオでは、処理モジュールが、検出することの前に、ユーザインターフェースモジュールを介して、初期情報クエリを受信することと、情報クエリに従って初期検索要求を生成することと、通信モジュールを介して、初期検索要求をウェブサーバに送信することと、通信モジュールを介して、初期検索要求に対する応答および位置要求を受信することとを行うようにさらに構成される。
【００１５】
一例では、位置要求は、クライアントデバイスの物理的位置を検出するようにクライアントデバイスに指示する。別の例では、判定に応答して、クライアントデバイスが、リフレッシュされた検索結果をウェブサーバに要求するか、またはクライアントデバイスの表示装置上に提示するためのウェブページ全体をリフレッシュする。
【００１６】
また、本技術のさらなる態様によれば、1つまたは複数のプロセッサを含む処理モジュールと、データ、および処理モジュールによって実行するための命令を格納するように構成された1つまたは複数のメモリを有する、メモリモジュールと、1つまたは複数のワイヤレスステーションおよび1つまたは複数のクライアントデバイスを含む1つまたは複数のリモートデバイスと双方向通信するように構成されたワイヤレストランシーバを含む、通信モジュールとを備える、サーバシステムが提供される。処理モジュールは、メモリモジュールおよび通信モジュールに動作可能に結合され、通信モジュールを介して、クライアントデバイスから検索要求および位置情報を受信するように構成される。位置情報は、クライアントデバイスの検出された物理的位置を含む。処理モジュールは、クライアントデバイスの受信された検出された物理的位置をクライアントデバイスの以前に受信された物理的位置と、しきい値に従って比較することと、比較に応答して、受信された検出された物理的位置と以前に受信された物理的位置との間の距離がしきい値よりも大きいかそれとも小さいかを示す、位置信号を生成することとを行うようにも構成される。処理モジュールは、検索要求に応答して、受信された位置情報に従って検索結果を生成することと、通信モジュールを介して、生成された検索結果を、クライアントデバイスのユーザに提示するためにクライアントデバイスに、生成された位置信号とともに送信することとを行うようにさらに構成される。
【００１７】
1つのシナリオでは、しきい値が、検索結果の密度、ユーザクリックパターン、および受信されたリフレッシュ要求の量を含む、1つまたは複数の要因に従って可変である。別のシナリオでは、処理モジュールが、通信モジュールを介して、生成された検索結果をリフレッシュするようにとの要求をクライアントデバイスから受信するようにさらに構成され、その場合、生成された結果をリフレッシュするようにとの要求は、生成された位置信号に従ってもたらされる。また、さらなるシナリオでは、生成された検索結果の送信が、クライアントデバイスの物理的位置を検出するようにクライアントデバイスに指示する位置要求を送信することを含むように、処理モジュールが構成される。
【００１８】
本明細書に添付されているのは、本技術のさまざまな特徴および態様を示す1組の図面である。図面中、同様の参照番号は同様の要素を指す。下で各図面について簡単に論じる。
【図面の簡単な説明】
【００１９】
【図１Ａ】従来のウェブブラウザ検索プロセスを示す図である。
【図１Ｂ】本開示の態様による、例示的位置関連ウェブブラウザ検索プロセスを示す図である。
【図２Ａ】本開示の態様による、位置関連検索プロセスを実装するように構成された例示的クライアント通信デバイスの図である。
【図２Ｂ】本開示の態様による、位置関連検索プロセスを実装するように構成された例示的ウェブサーバの図である。
【図３】本開示の態様による、例示的ネットワークを示す図である。
【図４】本開示の態様による、プロセスの特徴を示す図である。
【図５】本開示の態様による、プロセスの特徴を示す図である。
【発明を実施するための形態】
【００２０】
以下の説明は、特許請求の範囲に記載の実施形態に基づくものであり、本明細書において明示的に説明していない代替実施形態に関して、特許請求の範囲を限定するものと解釈すべきではない。
【００２１】
概要
本明細書において論じる手法は、システムが、クライアントデバイスの位置が変化したと判断されたときに、ウェブページの1つまたは複数の部分および検索結果を選択的に更新することを可能にするものである。
【００２２】
最初に、図1Aに示す従来の手法。この場合、クライアントデバイスのウェブブラウザが、ユーザ入力に基づいて検索要求または他のクエリを生成すると、そのクエリがウェブサーバに送信される。ウェブサーバは、クライアントデバイスの位置を、例としてIPアドレスリバースジオロケーションを介して、またはクライアントデバイスによって以前に決定された位置に基づいて、推定する。この推定された位置に応答して、ウェブサーバは、可能な検索結果を決定し、1つまたは複数の結果を選択し、それがクライアントデバイスに戻される。受信後、結果は、クライアントデバイスのユーザに提示される。このプロセスが、検索クエリが生成されるたびに反復され得る。
【００２３】
上で述べたように、新たな位置が決定されるたびにクライアントデバイス上にウェブページをリロードすることが可能である。しかし、これにより、他のクライアントデバイスおよびネットワーク全体に影響を及ぼし得るネットワークトラフィックの増大に加えて、レーテンシが増し、プロセッサおよびバッテリ資源に悪影響が及ぶ。本明細書において論じる選択的更新手法は、そのような問題を回避し、というのも、位置が少なくともしきい値量だけ変化したと判断された場合にのみ、ウェブページの1つまたは複数の部分および検索結果をリロードする必要があるためである。それにも関わらず、この選択的更新手法は、位置関連情報をクライアントデバイスのユーザに提供することのできる能力を維持する。
【００２４】
この一例が、本技術の態様を示す図1Bに示されている。この場合、クライアントデバイスは、ユーザ入力に基づいて初期検索要求を生成することができる。この時点で、クライアントデバイスは任意の位置情報を有していない場合があり、またはそのような情報が陳腐でありかつ信頼性のないものである場合がある。例として、最終の既知の位置は、10分前、1時間前、1日前などに決定されていてよい。いずれにしても、クエリはウェブサーバに送信される。クエリの受信後、ウェブサーバは、クライアントデバイスの初期位置を推定して、その推定された初期位置に基づいてクエリに対する応答を生成する。
【００２５】
クライアントデバイスに応答が送られるとき、位置要求が添付されるかまたは場合によっては別途送られる。結果をユーザに提示することに加えて、クライアントデバイスは、位置要求に対しても作用する。下でより詳細に論じるように、位置情報は、クライアントデバイスによってクッキーとして格納されてよい。次いで、新たな検索要求が生成されたときに、クッキーの位置情報が新たな検索要求の一部として含められる。
【００２６】
ウェブサーバは、新たな要求を受信すると、受信された位置情報をパースし、それを使用して、要求に対する応答を作り出すことが可能である。上記のように、この位置情報は、陳腐でありかつクライアントデバイスの現在の位置を反映していない場合があることに留意されたい。それにも関わらず、そのような位置情報に基づく応答がクライアントデバイスに、別の位置要求とともに提供される。クライアントデバイスは、この位置要求に対して作用し、最新の情報を含めるようにクッキーを更新するかまたは置き換える。
【００２７】
この時点で、図1Bに示すように、さらなる検索要求が生成される。クッキーの位置情報がさらなる検索要求の一部として含められる。ここで、ウェブサーバは、位置情報の何らかの変化があるかどうかを評価することが可能である。変化がある場合、変化量が解析され、変化量から、結果を変更するか、それともそうでなければウェブページを部分的にまたは完全にリフレッシュするかが判定される。結果の変更が正当であるかどうかを判定するために、位置の差がクライアントデバイスまたはウェブサーバにおいても解析されてよい。
【００２８】
例示的構成
図2Aは、本明細書において開示する技法とともに用いることのできる例示的クライアントデバイス200を示す。図示のように、デバイス200は、中央処理装置204および/またはグラフィックプロセッサ206などの1つまたは複数のコンピュータプロセッサを有する、処理モジュール202、ならびに命令210およびデータ212を格納するように構成された、メモリモジュール208を含む。プロセッサは、並列に動作してもよく、しなくてもよく、またプロセッサとしては、ASIC、コントローラ、および他のタイプのハードウェア回路があり得る。プロセッサは、ユーザからユーザインターフェースモジュール214を通じて情報を受信するように、また表示インターフェースを有する表示モジュール216の表示デバイス上で情報をユーザに提示するように構成される。
【００２９】
ユーザインターフェースモジュール214は、ユーザからユーザ入力を介してコマンドを受信し、それらを所与のプロセッサにサブミットできるように変換することができる。ユーザインターフェースモジュールは、ウェブブラウザ(図示せず)にリンクしていてよい。ユーザ入力としては、タッチスクリーン、キーパッド、マウス、スタイラスペン、マイクロホン、または他のタイプの入力デバイスのうちの1つまたは複数があり得る。表示モジュール216は、表示デバイスを駆動してユーザにグラフィカル情報および他の情報を提示するのに適した回路を備えてよい。例として、グラフィカル情報は、グラフィックプロセッサ206によって生成され得、一方、CPU204は、クライアントデバイス200の動作全体を管理する。グラフィカル情報により、表示モジュール216上にユーザクエリに対する応答を表示することができる。例として、処理モジュールは、メモリモジュール208内に格納された命令およびデータを使用して、ブラウザアプリケーションまたは他のサービスを実行し、ブラウザアプリケーションまたは他のサービスに関連する情報を、表示モジュール216を介してユーザに提示することができる。メモリモジュールは、ブラウザ情報、位置情報などのためのデータベースまたは他の記憶装置を含んでよい。
【００３０】
メモリモジュール208は、1つもしくは複数のコンピュータ可読媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットのうちの1つまたは複数として実装することができる。メモリモジュール208としては、例えば、フラッシュメモリおよび/またはNVRAMがあり得、メモリモジュール208は、ハードドライブまたはメモリカードとして具現化されてよい。あるいは、メモリモジュール208としては、DVD、CD-ROM、書込み可能メモリ、および読出し専用メモリもあり得る。一実装形態では、コンピュータプログラム製品が、情報キャリア内に有形に具現化される。コンピュータプログラム製品は、1つまたは複数のプロセッサによって実行されると、本明細書において説明するような1つまたは複数の方法を実施する、命令210などの命令を収容する。命令は、ウェブブラウザをインスタンス化してもよい。情報キャリアは、メモリモジュール208などのコンピュータ可読媒体または機械可読媒体である。図2Aは、プロセッサ、メモリモジュール、およびデバイス200の他の要素を、同一の全体ブロック内にあるものとして機能的に示しているが、そのようなコンポーネントは、同一の物理的ハウジング内に格納されてもよく、されなくてもよい。例えば、命令およびデータの一部または全てが、リムーバブル記憶媒体(例えば光学ドライブ、高密度テープドライブ、またはUSBドライブ)である情報キャリア上に格納され、他のものが、読出し専用コンピュータチップ内に格納されてよい。
【００３１】
データ212は、プロセッサによって、命令210に従って取り出され、格納され、または修正され得る。例として、特許請求される本主題は、どんな特定のデータ構造によっても限定されないが、データは、コンピューティングデバイスのレジスタ内、複数の異なるフィールドおよびレコードを有するテーブルとしてのリレーショナルデータベース、XMLドキュメント、またはフラットファイル内に格納されてよい。データは、任意のコンピューティングデバイス可読形式でフォーマットされてもよい。
【００３２】
命令210は、プロセッサによって直接的に実行される(機械コードなどの)、または間接的に実行される(スクリプトなどの)、任意の命令セットであってよい。例えば、命令は、コンピューティングデバイスコードとして、コンピューティングデバイス可読媒体上に格納されてよい。その点に関して、「命令」および「プログラム」という用語は、本明細書において交換可能に使用され得る。命令は、プロセッサによって直接的に処理できるようにオブジェクトコード形式で格納されてもよく、要求時に解釈されるかまたは前もってコンパイルされる、スクリプトまたは独立したソースコードモジュールの集合を含む、他の任意のコンピューティングデバイス言語で格納されてもよい。命令の関数、メソッド、ルーチンについては下で、より詳細に説明する。
【００３３】
やはり図2Aに示されているように、クライアントデバイス200は、ウェブサーバを含む他のデバイスおよびシステムと通信するための通信モジュール218を含む。通信モジュール218は、ワイヤレストランシーバを含み、あるいはこのモジュールは、有線トランシーバを含んでもよい。クライアントデバイス200は通信モジュール218を介して他のリモートデバイスと、近距離無線通信(near-field communication)、ブルートゥース(登録商標)、ブルートゥース(登録商標)ローエナジー(LE)、または他のアドホックネットワークなどの短距離通信プロトコル、インターネット、イントラネット、仮想プライベートネットワーク、広域ネットワーク、ローカルネットワーク、1つまたは複数の企業にとって独自の通信プロトコルを使用したプライベートネットワーク、イーサネット(登録商標)、WiFiおよびHTTP、ならびに前述のものの組合せを含む、さまざまなコンフィグレーションおよびプロトコルを使用して、通信することができる。
【００３４】
加えて、図示のようなクライアントデバイス200は、1つまたは複数の位置および配向センサ220を含む。位置および配向センサ220は、クライアントコンピューティングデバイス100の位置および配向を決定するように構成される。例えば、これらのコンポーネントは、デバイスの緯度、経度、および/または高度を決定するためのGPSレシーバ、ならびに加速度計、ジャイロスコープ、または別の方向/速度検出デバイスを含んでよい。クライアントデバイス200は、静止画像を捕捉し、ビデオストリームを記録するための1つまたは複数のカメラ222、スピーカ224、および電力モジュール226、ならびにユーザに触覚フィードバックまたは他の情報を提供するためのアクチュエータ(図示せず)を含んでもよい。
【００３５】
図2Bは、本明細書において開示する技法とともに用いることのできる例示的ウェブサーバ250を示す。図示のように、ウェブサーバ250は、上でモバイルクライアントデバイス200について説明したものと類似のさまざまなコンポーネントを含む。例として、このウェブサーバは、中央処理装置254および/またはグラフィックプロセッサ256などの1つまたは複数のコンピュータプロセッサを有する、処理モジュール252、ならびに命令260およびデータ262を格納するように構成された、メモリモジュール258を含む。プロセッサは、並列に動作してもよく、しなくてもよく、またプロセッサとしては、ASIC、コントローラ、および他のタイプのハードウェア回路があり得る。
【００３６】
メモリモジュール208の場合と同じく、メモリモジュール258は、1つもしくは複数のコンピュータ可読媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットのうちの1つまたは複数として実装することができる。メモリモジュール208としては、例えば、フラッシュメモリおよび/またはNVRAMがあり得、メモリモジュール208は、ハードドライブまたはメモリカードとして具現化されてよい。あるいは、メモリモジュール258としては、DVD、CD-ROM、高密度テープドライブ、および他のタイプの書込み可能メモリまたは読出し専用メモリもあり得る。一実装形態では、コンピュータプログラム製品が、情報キャリア内に有形に具現化される。コンピュータプログラム製品は、1つまたは複数のプロセッサによって実行されると、本明細書において説明するような1つまたは複数の方法を実施する、命令260などの命令を収容する。情報キャリアは、メモリモジュール208などのコンピュータ可読媒体または機械可読媒体である。図2Bは、プロセッサ、メモリモジュール、およびウェブサーバ250の他の要素を、同一の全体ブロック内にあるものとして機能的に示しているが、そのようなコンポーネントは、同一の物理的ハウジング内に格納されてもよく、されなくてもよい。例えば、命令およびデータの一部または全てが、リムーバブル記憶媒体(例えば光学ドライブ、高密度テープドライブ、またはUSBドライブ)である情報キャリア上に格納され、他のものが、読出し専用コンピュータチップ内に格納されてよい。
【００３７】
メモリモジュール258のデータ262は、プロセッサによって、命令260に従って取り出され、格納され、または修正され得る。例として、特許請求される本主題は、どんな特定のデータ構造によっても限定されないが、データは、コンピューティングデバイスのレジスタ内、複数の異なるフィールドおよびレコードを有するテーブルとしてのリレーショナルデータベース、XMLドキュメント、またはフラットファイル内に格納されてよい。データは、任意のコンピューティングデバイス可読形式でフォーマットされてもよい。命令210の場合と同じく、命令260は、プロセッサによって直接的に実行される(機械コードなどの)、または間接的に実行される(スクリプトなどの)、任意の命令セットであってよく、命令210についての上の議論は、命令260にも当てはまる。
【００３８】
例として、処理モジュール252のプロセッサは、分散型アーキテクチャとして構成されてよい。分散型アーキテクチャでは、ウェブサーバ250は、例としてクラウドコンピューティング構成の複数のサーバユニットを備えてよい。包括的なアーキテクチャであろうと分散型アーキテクチャであろうと、プロセッサはデータベース264に動作可能に結合される。データベース264は、画像、関心のある場所についての情報、広告コンテンツなどのような、検索クエリに対する結果を提供するために使用される情報を含んでよい。そのような情報は、複数の別々のデータベース内に格納されてよい。データベースは、例としてクラウドコンピューティングアーキテクチャの複数のメモリモジュールまたは他の記憶デバイスにわたって分散されてよい。
【００３９】
やはり図2Bに示されているように、ウェブサーバ250は、ネットワーク内のクライアントデバイスおよび他の要素を含めて、他のデバイスおよびシステムと通信するための通信モジュール266を含む。通信モジュール266は、ワイヤレストランシーバを含む。通信モジュール266は、ワイヤレストランシーバに加えてまたはその代わりに、有線トランシーバを含んでもよい。ウェブサーバ250は通信モジュール266を介して他のリモートデバイスと、近距離無線通信、ブルートゥース(登録商標)、ブルートゥース(登録商標)ローエナジー(LE)、または他のアドホックネットワークなどの短距離通信プロトコル、インターネット、イントラネット、仮想プライベートネットワーク、広域ネットワーク、ローカルネットワーク、1つまたは複数の企業にとって独自の通信プロトコルを使用したプライベートネットワーク、イーサネット(登録商標)、WiFiおよびHTTP、ならびに前述のものの組合せを含む、さまざまなコンフィグレーションおよびプロトコルを使用して、通信することができる。加えて、図示のようなウェブサーバ250は、電力モジュール272を含む。図2Aに示すコンピュータコンポーネントを含む他のシステム要素が、ウェブサーバ250内に含まれてもよい。
【００４０】
図3は、異なるクライアントデバイス300、例えば3001、3002、および3003がコンテンツまたは他の情報をウェブサーバなどのサーバ320に通信システム310を介して要求することのできる、例示的構成を示す。クライアントデバイス300は、上でクライアントデバイス200に関して論じたコンポーネントの一部または全てを含んでよい。クライアントデバイスは、ラップトップ(3001)、タブレット(3002)、セルラー電話またはPDA(3003)などを含んでよい。しかし、スマートウォッチやヘッドマウントディスプレイなどのウェアラブル電子機器を含む他のクライアントデバイスが用いられてもよい。そのようなどんなクライアントデバイスも、本明細書において開示するように、図1Bに示すように要求を送り、目標とする結果をネットワークから受信することができる。
【００４１】
ほんの一例として、要求は、パースされ、ネットワーク上の1つまたは複数のサーバに転送されてよい。1つのサーバ320が示されているが、本明細書において提供されるサービスの機能は、クラウドコンピューティングネットワークなど、1つまたは複数のサーバまたは他のコンピュータシステムによって実施されてもよい。要求、位置情報、および対応する応答は、バス330を介して伝えられてよい。1つまたは複数のデータベース340が、クライアントデバイスクエリに対する応答を供給するために、サービスによって使用されてよい。
【００４２】
例示的方法およびユースケース
上で述べたように、本技術の特徴は、さまざまなユースケースにおいて実装することができる。例示的ユースケースについて下で論じる。
【００４３】
1つのユースケースでは、ユーザが、クライアントデバイス上のウェブブラウザを介して情報を要求することができる。例として、情報は、レストラン、コーヒーショップ、自動車ディーラー、ミュージアムなどのような関心地点についてであり得る。他のユースケースには、オンラインショッピングまたは他の発注が関与してよい。ユーザは、バス時刻表、住宅の賃貸物件、旅行者の関心地点、メニューなどについての情報を要求することもある。さらに他のユースケースには、オンラインショッピングまたは他の発注が関与してよい。さらなる例としては、地図クエリまたは方向クエリがあり得る。とはいえ、本技術はクエリに依存しない。
【００４４】
クエリのタイプに関わらず、クライアントデバイスのブラウザはクエリを、クライアントデバイスの通信モジュールを介してネットワークに送るように構成される。1つの例示的シナリオが、図4の流れ図400に関して示されている。この場合、ブロック402において、ユーザ入力からユーザインターフェースモジュールを介してクエリが受信される。ブロック404において、クライアントデバイスの1つまたは複数のプロセッサが、受信されたクエリに従って、ウェブブラウザを介して初期検索要求を生成する。この時点で、ブロック406によって、初期検索クエリが、通信モジュールを介して図2Bのウェブサーバ250などのウェブサーバに送信される。
【００４５】
ブロック408によって、通信モジュールが初期検索クエリに対する応答を受信する。応答は、検索結果、クライアントデバイスの表示モジュールおよび表示インターフェースを介してウェブページ上に提示され得る画像および他の情報を含んでよい。上で述べたように、ウェブサーバは、位置関連検索結果を提供するために、クライアントデバイスの位置を推定することができる。受信された応答は、ウェブサーバからの位置要求も含む。処理モジュールは、ブロック410に示すように、クライアントデバイスの現在の位置を取得するために、位置および配向センサモジュールに関連するアプリケーションプログラムインターフェース(API)、例として、ジオロケーションJavaScript(登録商標) APIを使用してよい。現在の位置は、クライアントデバイスのメモリ内に、例としてクッキーに関連する情報として格納されてよい。
【００４６】
次に、ブロック412において、ユーザ入力からユーザインターフェースモジュールを介して新たなクエリが受信される。ブロック414において、クライアントデバイスの1つまたは複数のプロセッサが、受信されたクエリに従って、ウェブブラウザを介して新たな検索要求を生成する。この時点で、ブロック416によって、新たな検索クエリがウェブサーバに、クライアントデバイスの取得された位置とともに送信される。
【００４７】
上で説明したプロセスと同様に、ブロック418によって、通信モジュールが新たな検索要求に対する応答を受信する。この場合、新たな応答は、取得された位置に基づいて準備されたものである。この新たな受信された応答は、ウェブサーバからの位置要求も含む。新たな位置要求に応答して、ブロック420に示すように、クライアントデバイスの現在の位置が取得される。現在の位置は、クライアントデバイスが移動したかどうかに応じて、以前に取得された位置と同じ場合もあり、それとは異なっている場合もある。この新たな位置は、クライアントデバイスのメモリ内に、例としてクッキーに関連する情報として格納されてよい。一例では、新たな位置は、以前に格納された位置を置き換えてよい。
【００４８】
次いで、ブロック422において、ユーザ入力からユーザインターフェースモジュールを介してさらなるクエリが受信される。ブロック424において、クライアントデバイスの1つまたは複数のプロセッサが、受信されたクエリに従って、ウェブブラウザを介してさらなる検索要求を生成する。この時点で、ブロック426によって、新たな検索クエリがウェブサーバに、クライアントデバイスの現在の位置とともに送信される。次いで、ブロック428において、通信モジュールが、さらなる検索クエリに対する応答を受信する。ウェブサーバから位置信号も含まれてよい。この場合、新たな応答は、最新の取得された位置に基づいて準備されたものである。下でさらに論じるように、位置信号を含む、ウェブサーバから受信された情報に基づいて、システムは、ブロック430に示すように、検索結果またはウェブページの他の部分を更新するか、それともウェブページ全体をリロードするかを判定することができる。
【００４９】
一例では、位置信号が、ウェブサーバに提供された以前の検出された位置と最近の位置との間の差が小さく、所与のしきい値の範囲内に入っている、ということを示す。この場合、クライアントデバイスは、検索結果のリフレッシュを要求せず、またウェブページのリフレッシュをしない。ここで、表示されたウェブページの一部としてユーザに提示される地図がある場合、地図上でのクライアントデバイスの現在の位置は、この時点で示されるか更新されてよい。
【００５０】
一方、位置信号が、この差が大きく、所与のしきい値の範囲外にある、ということを示すとき、結果はリフレッシュされる。これは、さらなるクエリをウェブサーバに送ることによって行われてよい。リフレッシュには、単に検索結果か、またはウェブページ全体をリフレッシュすることが関与してよい。例として、位置が変化したことにより影響を受けるのが、局所的な結果のみであると判断されるとき、リフレッシュは検索結果に限定されてよい。また、ウェブ結果全体が変化することになると判断されるとき、ウェブページ全面がリロードされることになる。一例によれば、所与の市について1つのウェブページがある場合、クライアントデバイスが依然としてその市内にあると分かる場合には、そのウェブページはリロードされない。クライアントデバイスの現在の位置が、別の場所であることが判明した場合、ウェブページはリロードされる。これに基づいて、クライアントデバイスは、選択された検索結果および他の情報を、クライアントデバイスの表示モジュールを介して、ユーザに提示する。
【００５１】
この手法により、ウェブサーバに送られる要求の量、およびクライアントデバイスとウェブサーバの両方にかかる負担が、最小限に抑えられる。
【００５２】
図5に移ると、この図は、ウェブサーバが検索要求を受信して処理する、例示的プロセス500を示す。ブロック502に示すように、クライアントデバイスから初期検索要求が受信される。ブロック504において、初期検索要求についての初期位置推定が実施される。これは、ウェブサーバ自体によってか、またはウェブサーバに関連する位置サービスによって行われてよい。初期位置推定を決定することには、初期検索要求の受信元のIPアドレスに従って位置を特定することが関与してよい。次いで、ブロック506において、ウェブサーバが、初期位置推定に基づいて1組の検索結果を生成する。ブロック508において、ウェブサーバが、検索結果に位置要求を添付する。位置要求および検索結果は、クライアントデバイスに送信し戻される。あるいは、位置要求はクライアントデバイスに、検索結果とは別途送られてもよい。
【００５３】
その後、ブロック510において、ウェブサーバが、クライアントデバイスから新たな検索要求を受信する。この場合、位置要求が以前に送信されていたので、新たな検索要求には、クライアントデバイスの位置情報が付随している。この位置情報は、位置情報が取得されてからクライアントデバイスが移動したかどうかに応じて、現在のものである場合もあり、そうではない場合もある。
【００５４】
ブロック512において、ウェブサーバが、検索要求および位置情報をパースする。この位置情報は、例として図2Bのデータベース264、または何らかの他のタイプのメモリ内に格納される。ブロック514において、ウェブサーバが、受信された位置情報に基づいて1組の検索結果を生成する。ブロック516において、これらの検索結果に新たな位置要求が添付され、それらがクライアントデバイスに戻される。
【００５５】
後のある時点で、ブロック518において、ウェブサーバがクライアントデバイスからさらなる検索要求を受信する。この場合、位置要求が以前にブロック516において送信されていたので、さらなる検索要求には、クライアントデバイスの位置情報が付随している。ブロック510の場合と同じく、この位置情報は、位置情報が取得されてからクライアントデバイスが移動したかどうかに応じて、現在のものである場合もあり、そうではない場合もある。
【００５６】
次いで、ブロック520において、ウェブサーバが、最近受信された位置情報を以前に受信された位置情報と比較する。上で図4に関して述べたように、以前の位置情報と現在の位置情報との間の差(デルタ)が、それがしきい値未満であるかそれともしきい値よりも大きいかを確かめるために評価される。この差がしきい値以内であるとき、位置変化は位置関連検索結果またはクライアントデバイスのウェブページ上に提示される他の情報に影響を及ぼさないほど小さい、と判断される。一方、この差がしきい値の範囲外にあるとき、位置変化はこの情報に対していくらかの影響を与える可能性がある。この比較の結果に基づいて、ウェブブラウザによって位置信号が生成される。位置信号は、単純なブール識別子または他の情報であってよい。
【００５７】
しきい値は所定のものであってよく、特定の半径、例として1km、2km、またはその前後に設定されてよい。しきい値は、さまざまな要因に応じて可変であってもよい。例として、結果の密度がしきい値に影響を及ぼすことがある。一例では、ある市のある地域などの関心領域内に、5件のコーヒーハウスがある場合がある。この場合、しきい値は数百メートル(またはその前後)に低減されてよい。または、市全体にホームセンタもしくは家具店が1件しかない場合がある。この場合、しきい値は10km(またはその前後)に増大されてよい。別の要因は、どれだけ頻繁に結果がクリックされているか、またはどれだけ多くの異なる結果がクリックされているかを含む、ユーザクリックパターンであってよい。さらに別の要因は、どれだけ頻繁に、結果をリフレッシュするようにとの要求をプロセスがトリガするかであってよい。システムは、そのような要因の任意の組合せに応答して、しきい値を増減させることができる。
【００５８】
ブロック522において、クライアントデバイスから受信された最近の位置情報に基づいて検索結果が生成される。ブロック524において、検索結果に位置信号が添付される。新たな位置要求も含められてよい。次いで、ブロック526において、この情報がクライアントデバイスに戻される。
【００５９】
ウェブサーバが、検索結果またはウェブページ全体がリロードされるべきかどうかについての判定をすることもできる。これにより、ウェブサーバとクライアントデバイスとの間で送信されるデータトラフィック量が、場合によってはさらに低減され得る。この状況下では、位置識別子をクライアントデバイスに送る必要がない。例として、ウェブサーバに提供された以前の検出された位置と最近の位置との間の差が小さく、所与のしきい値の範囲内に入っているとき、検索結果またはウェブページのリフレッシュは開始されない。ウェブサーバによる解析が、この差が大きく、所与のしきい値の範囲外にある、ということを示すとき、ウェブサーバは、結果のリフレッシュを開始することができる。また、ウェブ結果全体が変化することになると判断されるとき、ウェブサーバは、ウェブページ全面のリロードを開始することができる。
【００６０】
図中に描かれ本明細書において説明された論理フローおよびプロセスフローは、明示的な定めのない限り、特定の順序または順番に限定されない。加えて、他のステップが設けられてもよく、説明したフローからステップが無くされてもよく、他のコンポーネントが、説明したシステムに追加されてもよく、そこから除去されてもよい。
【００６１】
本技術については本明細書において、特定の実施形態に即して説明してきたが、これらの実施形態は、本技術の原理および適用例の例示にすぎないことを理解されたい。したがって、添付の特許請求の範囲によって定められるような本技術の趣旨および範囲から逸脱することなく、例示的実施形態に多数の変更を加えることができること、および他の構成を考案できることを、理解されたい。
【符号の説明】
【００６２】
100  クライアントコンピューティングデバイス
200  例示的クライアントデバイス、モバイルクライアントデバイス
202  処理モジュール
204  中央処理装置、CPU
206  グラフィックプロセッサ
208  メモリモジュール
210  命令
212  データ
214  ユーザインターフェースモジュール
216  表示モジュール
218  通信モジュール
220  位置および配向センサ
222  カメラ
224  スピーカ
226  電力モジュール
250  例示的ウェブサーバ
252  処理モジュール
254  中央処理装置
256  グラフィックプロセッサ
258  メモリモジュール
260  命令
262  データ
264  データベース
266  通信モジュール
272  電力モジュール
300  クライアントデバイス
3001  クライアントデバイス、ラップトップ
3002  クライアントデバイス、タブレット
3003  クライアントデバイス、セルラー電話またはPDA
310  通信システム
320  サーバ
330  バス
340  データベース
400  流れ図
500  例示的プロセス
【図１Ａ】
0006963635.tif 000002
【図１Ｂ】
0006963635.tif 000003
【図２Ａ】
0006963635.tif 000004
【図２Ｂ】
0006963635.tif 000005
【図３】
0006963635.tif 000006
【図４】
0006963635.tif 000007
【図５】
0006963635.tif 000008