[0038]以下の記述では、説明の目的で、本発明の実施形態の完全な理解を提供するために特定の詳細について記載する。しかしながら、これらの特定の詳細なしに様々な実施形態を実施することができることは明らかであろう。図面および説明は、限定的なものではない。
[0039]以下の説明は、例示的な実施形態のみを提供するものであり、本開示の範囲、適用性、または構成を限定するものではない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実施するための可能な説明を当業者に提供する。添付の特許請求の範囲に記載された本発明の趣旨および範囲から逸脱することなく、要素の機能および配置に様々な変更を加えることができることを理解されたい。
[0040]以下の説明では、実施形態の完全な理解を提供するために特定の詳細が与えられる。しかしながら、実施形態は、これらの特定の詳細なしで実施できることが理解されるであろう。例えば、回路、システム、ネットワーク、プロセス、および他の構成要素は、不必要な詳細で実施形態を不明瞭にしないために、ブロック図形式の構成要素として示すことができる。他の例では、実施形態を不明瞭にすることを避けるために、周知の回路、プロセス、アルゴリズム、構造、および技術を不必要な詳細なしに示すことができる。
[0041]また、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図で示されるプロセスとして説明することができることに留意されたい。フローチャートは、動作を逐次的なプロセスとして記述することができるが、動作の多くは並列にまたは同時に実行することができる。さらに、動作の順序は再配置されてもよい。プロセスは、その動作が完了した時点で終了するが、図面には含まれていない追加のステップが含まれてもよい。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応する場合には、その終了は、その関数を呼び出している関数または主関数に戻すことに対応することができる。
[0042]「機械可読記憶媒体」または「コンピュータ可読記憶媒体」という用語は、可搬型または非可搬型記憶装置、光学記憶装置、ならびに命令および/またはデータを記憶、格納、または搬送することができる様々な他の媒体を含むが、これらに限定されない。機械可読記憶媒体またはコンピュータ可読記憶媒体は、データを格納することができ、搬送波および/または無線または有線接続を介して伝搬する一時的な電子信号を含まない非一時的媒体を含むことができる。非一時的媒体の例としては、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスが挙げられるが、これらに限定されない。コンピュータプログラム製品は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組み合わせを表すコードおよび/または機械実行可能命令を含むことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡しおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合することができる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージ渡し、トークン渡し、ネットワーク送信などの任意の適切な手段を使用して、渡し、転送し、または送信することができる。
[0043]さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組み合わせによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実現される場合には、必要なタスク(例えば、コンピュータプログラム)を実行するためのプログラムコードまたはコードセグメントは、機械可読媒体に格納することができる。プロセッサは、必要なタスクを実行することができる。
[0044]いくつかの図面に示すシステムは、様々な構成で提供することができる。いくつかの実施形態では、システムは、システムの1つまたは複数の構成要素がクラウドコンピューティングシステム内の1つまたは複数のネットワークにわたって分散されている分散システムとして構成することができる。
[0045]本開示の特定の態様および特徴は、通信チャネルの確立を通して要求に応答する地理的に多様なリソースの優先順位付けおよび選択に関する。例えば、オブジェクトまたはオブジェクトのタイプに対応するコンテンツを含む要求を(ユーザデバイスから)受信することができる。要求は、要求位置に関連付けることができる。要求に対応し、かつ地理的に要求位置に近い位置に関連する1つまたは複数のオブジェクトを識別するために、データストアを問い合わせることができる。オブジェクトに関連するリソースを続いて識別することができる。次いで、(例えば)ユーザがリソースにクエリを提出してクエリ応答を受信できるように、ユーザデバイスと識別されたリソースに関連するデバイスとの間に通信チャネルを確立することができる。
[0046]例えば、ユーザは、ユーザデバイス(例えば、スマートフォン)を介して、1つまたは複数のオブジェクトに関する情報を含むURL(例えば、特定のエンティティまたはストアなどのクライアントに関連するURL)にアクセスすることができる。ユーザは、オブジェクトおよび/またはクライアントに関するリソースと通信する要求に対応する入力をユーザデバイスに入力することができる。次いで、1つまたは複数のオブジェクト、ユーザデバイスの位置および/またはURLもしくはウェブページに関連するクライアント(例えば、クライアントに関連する建物)を識別する要求通信を生成することができる。通信は、リモートサーバーに送信することができ、リモートサーバーは、要求に対応し、かつユーザデバイスの位置に近い位置を有する(例えば、特定の距離または領域内にあるか、あるいは、最も近いオブジェクトおよび/またはエンティティの所定数に含まれる)1つもしくは複数のオブジェクトおよび/またはエンティティを識別することができる。サーバーは、リソースのモバイルデバイスまたは他のユーザのモバイルデバイスなどの、識別されたオブジェクトまたは建物のうちの1つの位置またはその近くの別のデバイスを識別することができる。次いで、サーバーは、通信チャネルを介してユーザデバイスを他のデバイスに接続することを容易にすることができ、その結果、ユーザは、オブジェクトおよび/またはクライアントに関する知識があって地理的にユーザに近接している人と(例えば、電話またはチャットなどにより、リアルタイムに)通信することができる。この位置パラメータは、ユーザが物理的に訪問するために合理的にアクセス可能なオブジェクトについての情報を提供できるという利点を提供することができる。
別の例として、ユーザは、ユーザデバイス上にテーマパークアプリを開くことができる。そのアプリは、ユーザが、パークナビゲーションなどの様々なトピックについて誰かに話すための要求に対応する入力を行うことを可能にすることができる。各要求タイプは、パーク情報センターに関連付けられたパークナビゲーションなどのオブジェクトに関連付けることができる。単一のテーマパークは、所与のタイプの複数のオブジェクト(例えば、複数の情報センター)を含むことができる。要求通信は、要求タイプ(または対応するオブジェクトタイプ)およびユーザデバイスの位置を特定することができる。サーバーは、要求通信を受信し、ユーザデバイスの位置に近いオブジェクト(例えば、特定の距離内のオブジェクト、最も近いオブジェクト、またはいくつかの最も近いオブジェクトの中のオブジェクト)を特定することができる。次いで、サーバーは、特定されたオフィスの位置にあるデバイス(例えば、パーク情報センターの電話)とユーザデバイスとの間に通信チャネルを確立することができる。次いで、ユーザは、例えば、チャットまたは電話によりパーク情報センターのリソースと通信することができる。
[0048]本明細書で説明する実施形態は、ユーザデバイスとリソースデバイスとの間の通信チャネルの確立を容易にする。このようなチャネルは、例えば、ユーザデバイスからリソースデバイスにクエリを送信すること、およびリソースデバイスからユーザデバイスにクエリ応答を送信することを可能にすることができる。このようなクエリは、例えば、リソースデバイスに地理的に近いオブジェクトに関するものであってもよい(例えば、リソースがクエリを考慮してオブジェクトを評価できるように)。様々な例では、リソースは、計算リソース、ロボットまたは人間を含むことができる。リソースは移動可能であってもよい。リソースには、オブジェクトに関する情報を持つ(または情報にアクセスする)リソースを含めることができる。場合によっては、リソースとオブジェクトは同じクライアントに関連付けられる。例えば、クライアントがリソースとオブジェクトの両方を所有していてもよいし、クライアントがオブジェクトを提供していてもよいし、リソースがクライアントのリソースまたはエージェントであってもよい。
[0049]場合によっては、様々なリソースタイプおよび/または通信チャネルのタイプが利用可能であり、および/または要求のために選択される。例えば、リソースタイプの集合は、オブジェクトの近くに位置するリソース、リモートリソース、特定のオブジェクトまたはオブジェクトタイプに対応する仕様または知識ベース(例えば、情報のベース)を有するリソース、特定のオブジェクトまたはオブジェクトタイプに対応する仕様または知識ベースを持たないリソース、ヒューマンリソース、ロボットリソース、ならびにマシンリソース(例えば、自動受付システムまたは記録システム)のうちの2つ以上を含むことができる。特定の要求に対して、例えば、要求に割り当てられた優先度、要求負荷、様々なリソースの可用性、および/または情報のタイプに基づいて、1つまたは複数のリソースタイプを選択することができる。別の例として、通信チャネルタイプの集合は、電話チャネル、仮想チャットチャネル、および/またはメッセージ対話チャネルを含むことができる。特定の要求に対しては、例えば、要求の優先順位、要求負荷、様々なリソースの可用性、ユーザおよび/またはリソースの傾向、ならびに/あるいは異なる通信チャネルタイプを介した通信をサポートするためのユーザデバイスおよび/またはリソースデバイスの能力に基づいて、通信チャネルタイプを識別することができる。
[0050]一例として、リソースタイプは、オブジェクトがユーザデバイスの位置からある距離(例えば、規定された距離または距離範囲)内の位置で利用可能であるかどうかの判定に基づいて選択されてもよい。要求関連オブジェクトがその距離内に位置する場合には、リソースの選択は、オブジェクトおよび/またはユーザデバイスに近いリソースタイプの選択に向かって重み付けすることができる。そうでない場合には、選択はリソースタイプ選択の重み付けを有しないか、またはリモートリソースタイプに対して重み付けするリソース選択を有することができる。例示すると、ユーザデバイスからの要求は、クライアントに関連する特定のオブジェクトに関する情報であってもよい。ユーザデバイスの位置の近くのクライアントが識別され、そのオブジェクトが利用不可能である(例えば、クライアントに関連する建物内にはもはや位置していない)と判定することができる。この判定が与えられると、コールセンターのエージェントなどのように、クライアントに関連する建物から離れた(またはオブジェクトが利用可能であればオブジェクトに関連したであろう位置から離れた)リソースタイプを選択することができる。同様の結果は、情報に対する要求を処理するためにクライアントに関連する建物で利用可能なリソースがない場合にも発生する。
[0051]別の例として、リソースタイプは、ユーザデバイスとオブジェクトとの間の距離に基づいて選択されてもよい。例えば、ユーザデバイスがオブジェクトからある距離内(例えば、建物内またはオブジェクト位置から数フィート以内)にある場合には、オブジェクトおよび/またはユーザデバイスに近いリソースタイプを選択するための重み付けの選択を、他の状況よりも高くすることができる(および/または、要求に対応する仕様を有するリソースタイプなどの重み付けは、他の状況よりも低くすることができる)。例示するために、オブジェクトに関する要求通信をユーザデバイスから受信することができる。オブジェクトに対応する熟練または仕様を有するリソース(または限定されたリソース)が(例えば、ユーザデバイスの位置に対応するかまたはユーザデバイスの位置に近い位置で)利用可能でないと判定することができる。代替的なリソースタイプは、クライアントに関連する建物内の別のリソース(オブジェクトに対応する仕様を有しない)と、クライアントに関連する建物から離れた別のリソース(例えば、仕様を有する)と、を含むことができる。ユーザデバイスがクライアントに関連する建物内または建物からある距離内にある場合には、クライアントに関連する建物内のリソースに対するリソース選択重み付けは、それ以外の場合よりも高くすることができ、および/または、オブジェクトに対応する仕様を有するリソースに対するリソース選択重み付けは、それ以外の場合よりも低くすることができる。いくつかの例では、クライアントに関連する建物内の屋内近接センサを使用して、ユーザデバイスが建物内に位置している場合に有用なリソースへのガイダンスを提供することができる。
[0052]いくつかの実施形態では、リソース優先順位付け中に、リアルタイム(またはほぼリアルタイム)で取得され格納されたデータを使用して、リソースデバイス、オブジェクトおよび/またはユーザデバイスの1つまたは複数の地理的位置およびタイプが解析され評価される。この解析および評価を使用して、ユーザをリソースおよび/またはオブジェクトに導くことができる。本明細書で使用されるように、リアルタイムという用語は、特定のイベントに応答してとられるアクションに関するものとして、遅延を付加することなくその特定のイベントに応答してアクションをとることを意味する。例えば、リアルタイムで取得されるデータは、遅延を付加することなくデータを取得し、データを利用可能にすることを意味する。リソースの解析および評価のいくつかの例では、実施形態による使用のためにデータが送信される前にデータが取得された後のある期間内にデータを格納することができるので、遅延を付加してもよい。様々なセンサ、リソースのタイプ、および特殊化されたデバイスの1つもしくは複数のタイプの使用の実施例に関する様々な詳細を以下で説明する。
[0053]これらの例示的な実施例は、本明細書で説明する一般的な主題を導入するために与えられており、開示された概念の範囲を限定するものではない。以下のセクションでは、図面を参照して様々な特徴および実施例を説明するが、説明は例示的な実施例を説明するために使用され、例示的な実施例と同様に、本開示を限定するために使用するべきではない。
[0054]図1は、本明細書に記載の特定の実施形態および特徴を実現しサポートするネットワーク対話システム100の一実施形態のブロック図を示す。特定の実施形態は、ネットワークデバイス105(ユーザ110によって操作することができる)と端末デバイス115(エージェント120によって操作することができる)との間の接続チャネルを確立することに関する。エージェントは、本明細書ではプロバイダプロキシと呼ぶこともできる。特定の実施形態では、ネットワーク対話システム100は、クライアント125に関連するクライアントデバイス130を含むことができる。
[0055]特定の実施形態では、ユーザ110は、リモートサーバー140によって提供されるウェブページを閲覧するユーザ、または要求された性能(例えば、サービス)にアクセスするユーザであってもよい。クライアント125は、本明細書で説明するようにクライアント125に利用可能なタスクを実行するために、ウェブページもしくは要求された性能、またはそのようなクライアントに関連したもしくは割り当てられたリソースを提供、操作、または実行するクライアントであってもよい。エージェント120は、ウェブページまたは要求された性能(例えば、ウェブページ上で利用可能なアイテムに関する情報)に関してユーザ110にサポートまたは情報を提供することを任されたサポートエージェントまたはアソシエートなどのリソースであってもよい。多数のエージェントのうちで、エージェントの部分集合は、特定のクライアント125のためのサポートまたは情報を提供するために適切であり得る。エージェント120は、クライアント125に関連付けられても、関連付けられなくてもよい。各エージェントは、1つまたは複数のクライアント125に関連付けることができる。いくつかの非限定的な例では、ユーザ110はコンピューティングデバイスを使用してインターネットを検索することができ、クライアント125は公開されたアイテムを提供するクライアントであってもよく、エージェント120はクライアントに関連付けることができる。様々な実施形態では、ユーザ110、クライアント125、およびエージェント120は、他のリソースまたはエンティティであってもよい。
[0056]図1は、単一のネットワークデバイス105、端末デバイス115およびクライアントデバイス130のみを示しているが、対話システム100は、これらのタイプのデバイスの1つまたは複数の各々の複数または多数(例えば、数十、数百または数千)を含むことができる。同様に、図1は、単一のユーザ110、エージェント120およびクライアント125のみを示しているが、対話システム100は、そのようなエンティティの1つまたは複数の各々の複数または多数を含むことができる。したがって、所与のネットワークデバイスと通信するためにどの端末デバイスを選択するかを決定することが必要となる場合がある。さらに複雑な問題であるが、リモートサーバー140は、選択されたネットワークデバイス通信を受信し応答するように構成することもできる。
[0057]接続管理システム150は、通信の戦略的ルーティングを容易にすることができる。通信は、コンテンツを有するメッセージを含むことができる(例えば、タイプされたまたは話された入力などの、クライアントからの入力に基づいて決定される)。通信は、送信デバイス(例えば、IPアドレス、アカウントまたはプロファイル識別子、デバイスタイプおよび/またはオペレーティングシステム)、宛先アドレス、クライアントの識別子、URLまたはURL要素(例えば、通信が生成されたときに訪問されたまたは通信に関連付けられたウェブサイトまたはウェブサイト要素)またはオンライン履歴データの識別子、時間(例えば、時刻および/または日付)、ならびに/あるいは宛先アドレスに関するデータなどの追加データを含むことができる。他の情報を通信に含めることができる。場合によっては、接続管理システム150は、通信全体を別のデバイスにルーティングする。場合によっては、接続管理システム150は、通信を変更するか、あるいは(例えば、初期通信に基づいて)新たな通信を生成する。新たなまたは変更された通信は、メッセージ(またはその処理されたバージョン)、追加データ(例えば、送信デバイス、URLもしくは以前のオンラインデータ、および/または時間)の少なくとも一部(またはすべて)、および/または接続管理システム150によって識別された他のデータ(例えば、特定のプロファイル識別子またはデバイスに関連するユーザデータ)を含むことができる。新たなまたは変更された通信には、他の情報も含めることができる。
[0058]戦略ルーティング促進の一部は、ネットワークデバイス105と1つまたは複数の端末デバイス115との間の1つまたは複数の接続チャネルの確立、更新、および使用を含むことができる。例えば、ネットワークデバイス105から通信を受信すると、接続管理システム150は、最初に、その通信がどのクライアントに(もしあれば)対応するかを判定することができる。クライアントを識別すると、接続管理システム150は、ネットワークデバイス105との通信のためにクライアントに関連する端末デバイス115を識別することができる。場合によっては、その識別は、複数のエージェント(またはエキスパートまたはデリゲート)、すなわち端末デバイス(例えば、端末デバイス115)に関連する複数のエージェントの各エージェント(例えば、エージェント120)のそれぞれのプロファイルを評価することを含むことができる。評価は、ネットワークデバイス0メッセージ内のコンテンツに関するものであってもよい。端末デバイス115の識別は、例えば、2010年3月17日に出願された米国出願第12/725,799号に記載された技術を含むことができ、すべての目的のために参照によりその全体が本明細書に組み込まれる。
[0059]場合によっては、接続管理システム150は、ネットワークデバイス105とクライアント(またはリモートサーバー140)に関連する端末デバイスとの間に確立された接続チャネルがあるかどうか、もしあれば、その通信を含む一連の通信を交換するためにそのようなチャネルを使用するかどうかを決定することができる。この決定は、少なくとも部分的には、通信に関連するトピック、通信または過去の関連する通信に関連するセンチメント(例えば、メッセージ特性)値、端末デバイス115について表示された(例えば、相対的または絶対的な)応答待ち時間、および/または通信に関連する通信チャネルのタイプ(例えば、インスタントメッセージ、メッセージ、電子メール、電話)に依存してもよい。確立された通信チャネルを選択することにより、一貫性を向上させ、ネットワークデバイス105からの情報を複数回中継する必要性を低減することができる。一方、新しい通信チャネルを確立することを決定することにより、より特殊化されたエージェントからのより迅速な応答を容易にすることができる。
[0060]確立された通信チャネルを選択する(または引き続き使用する)かどうかの決定および/または新しい端末デバイスの選択は、(例えば、クライアントに関連する)1つまたは複数の端末デバイスのそれぞれが通信および/または関連するユーザに対応する程度を決定することを含むことができる。そのような対応は、例えば、エージェントに基づく情報が通信トピックに対応する程度、所与の時間および/またはチャネルタイプ上のエージェントの可用性、ユーザとエージェントとの間の言語類似性、ならびに/あるいはパーソナリティ(例えば、特性)解析に関するものであってもよい。
[0061]接続管理システム150は、ルーティング決定に影響を及ぼすために通信解析を使用することができる(例えば、通信を送信したネットワークデバイスから以前に通信を受信した端末デバイスに通信をルーティングするか、あるいは通信を受信または送信する端末デバイスを選択するかを決定する)。1つの通信解析は、現在または過去の通信または通信シリーズの1つまたは複数のカテゴリまたはタグを決定および評価することを含むことができる。例えば、通信には、トピック、チャネルタイプ(例えば、電子メール、SMSメッセージ、リアルタイムチャット、電話または非同期メッセージ)、言語、複雑さレベル、メッセージ特性、および/またはファイルタイプが接続されているかどうか、どのファイルタイプが接続されているかのそれぞれについてのカテゴリを割り当てることができ、端末デバイスの選択は、類似の、同じまたは関連する情報のベース、チャネルタイプの可用性、言語、習熟度レベル、メッセージ特性、および/またはファイルタイプ能力に関連する端末デバイスに対して選択重み付けを有することができる。エージェントの可用性状態データも解析して、適切な端末デバイスを決定することができる。通信解析は、ルーティング決定に影響を与えるために、デバイスまたはアプリケーションから受信した通信に対して規則を決定し適用することを含むことができる。
[0062]いくつかの実施形態では、接続管理システム150は、ネットワークデバイス105から受信した通信に含まれるデータを解析することができるリソース優先順位付けシステム(例えば、本明細書に記載した図7のリソース優先順位付けシステム720)を含むか、またはそれに関連付けることができる。通信におけるデータの解析に基づいて、リソース優先順位付けシステムは、ネットワークデバイス105に関連する位置を特定することができる。リソース優先順位付けシステムは、1つまたは複数の端末デバイス115に関連する位置に基づいて、1つまたは複数の端末デバイス115を選択することができる。例えば、リソース優先順位付けシステムは、ネットワークデバイス105に地理的に1最も近い端末デバイスを選択することができる。さらに、リソース優先順位付けシステムは、ネットワークデバイス105と選択された端末デバイス(例えば、ネットワークデバイス105に地理的に最も近い端末デバイス)との間に確立される通信リンクのタイプを選択することができる。例えば、通信リンクのタイプは、音声、データ、またはテキスト通信チャネルを介した通信を含むことができる。いくつかの例では、通信リンクのタイプは、本明細書に記載した取得パラメータに基づいて選択することができる。他の例では、通信リンクのタイプは、ネットワークデバイス105からの通信に含まれるデータに基づいて選択することができる。
[0063]接続管理システム150は、ネットワークデバイス105と通信するための端末デバイス115を選択すると、ネットワークデバイス105と端末デバイス115との間の接続チャネルを確立することができる。場合によっては、接続管理システム150は、選択された端末デバイス115にメッセージを送信することができる。メッセージは、ネットワークデバイス105と通信する提案された割り当ての確認応答を要求するか、またはその割り当てが生成されたことを識別することができる。メッセージは、ネットワークデバイス105に関する情報(例えば、IPアドレス、デバイスタイプ、および/またはオペレーティングシステム)、関連するユーザ110に関する情報(例えば、話した言語、クライアントとの対話の時間範囲、熟練度、メッセージ特性、および/またはトピックの傾向)、受信した通信、ネットワークデバイス105への通信を生成し送信するためのコード(例えば選択可能なリンクまたはハイパーリンク)、および/またはネットワークデバイス105への通信を生成し送信するための命令を含むことができる。
[0064]一例では、ネットワークデバイス105と端末デバイス115との間の通信は、接続管理システム150を介してルーティングすることができる。そのような構成は、接続管理システム150が通信交換を監視し、デバイスまたは拡張された待ち時間の非応答性などの問題(例えば規則に基づいて定義される)を検出することを可能にすることができる。さらに、このような構成は、通信の選択的なまたは完全な格納を容易にすることができ、それは後で、例えば通信交換の品質を評価するため、および/またはルーティング規則を更新もしくは生成するための学習をサポートして、通信後の特定の目標を改善するために使用されてもよい。
[0065]いくつかの実施形態では、接続管理システム150は、リアルタイムで通信を監視し、ライブ通信に基づいて自動アクション(例えば、規則ベースのアクション)を実行することができる。例えば、接続管理システム150は、通信が特定のアイテムに関係すると判断すると、接続管理システム150は、アイテムに関する追加情報(例えば、在庫アイテムの数量、アイテムに関するドキュメントをサポートするリンク、またはアイテムもしくは同様のアイテムに関する他の情報)を含む追加メッセージを端末デバイス115に自動的に送信することができる。
[0066]一例では、指定された端末デバイス115は、接続管理システム150を介して通信を中継することなく、ネットワークデバイス105と通信することができる。1つまたは両方のデバイス105、115は、通信監視および/またはデータ格納を容易にするために、特定の通信メトリックまたはコンテンツを接続管理システム150に報告してもよい(または報告しなくてもよい)。
[0067]上述したように、接続管理システム150は、選択された通信をリモートサーバー140にルーティングすることができる。リモートサーバー140は、所定の方法で情報を提供するように構成することができる。例えば、リモートサーバー140は、通信に応答して送信するための1つまたは複数のテキストパッセージ、音声記録および/またはファイルにアクセスすることができる。リモートサーバー140は、例えば、受信された2通信の解析(例えば、意味解析またはマッピング解析)に基づいて、特定のテキストパッセージ、記録またはファイルを選択することができる。
[0068]接続管理システム150で実行されるルーティングおよび/または他の決定もしくは処理は、1つまたは複数のクライアントデバイス130によって少なくとも部分的に定義されるかまたは提供される規則および/またはデータに基づいて実行することができる。例えば、クライアントデバイス130は、エージェントの優先順位付け、端末デバイスタイプ、トピックおよび/または熟練度の類似性、または他の適切な規則を識別する通信を送信することができる。別の例として、クライアントデバイス130は、ルーティング決定(例えば、言語互換性、指示された応答時間、デバイスタイプおよび能力、および/または端末デバイス負荷分散)に影響を及ぼす可能性のある様々な変数に適用する1つまたは複数の重み付けを特定することができる。どの端末デバイスおよび/またはエージェントをクライアントに関連付けるかは、動的であり得ることが理解されよう。クライアントデバイス130および/または端末デバイス115からの通信は、所与の端末デバイスおよび/またはエージェントがクライアントに関連するものとして追加または削除するべきであることを示す情報を提供することができる。例えば、クライアントデバイス130は、IPアドレスを有する通信と、そのアドレスを有する端末デバイスをクライアントに関連する端末デバイスを識別するリストに追加または削除するかどうかに関する指示と、を送信することができる。
[0069]いくつかの例では、接続管理システム150は、ネットワークデバイス105と第1の端末デバイス115との間の初期比較およびルーティングを容易にすることができる。例えば、ネットワークデバイス105からの通信で受信されたメッセージは、第1の端末デバイス115にルーティングすることができる。別の例として、通信管理システム150は、ネットワークデバイス105に通信(例えば、通信セッションを開始する)を送信する要求または命令を含むか、または指示する第1の端末デバイスに通信を送信することができる。
[0070]各通信(例えば、デバイス間、デバイスと接続管理システム150との間、リモートサーバー140と接続管理システム150との間、またはリモートサーバー140とデバイスとの間)は、1つまたは複数のネットワーク170を介して行うことができる。1つまたは複数のネットワーク170に、オープンネットワークまたはクローズドネットワークの任意の組み合わせを含めることができる。適切なネットワークの例には、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、または無線ローカルエリアネットワーク(WLAN)が含まれる。他のネットワークも同様に適している。1つまたは複数のネットワーク170は、イントラネット、エクストラネット、またはそれらの組み合わせの中に完全に組み込まれてもよいし、またはそれらを含んでもよい。場合によっては、1つまたは複数のネットワーク170内のネットワークは、ブルートゥース(登録商標)またはブルートゥース(登録商標)低エネルギーチャネルなどの短距離通信チャネルを含む。一実施形態では、2つ以上のシステムおよび/またはデバイス間の通信は、セキュアソケット層(SSL)またはトランスポート層セキュリティ(TLS)などのセキュアな通信プロトコルによって実現することができる。さらに、データおよび/または通信の詳細は、任意の便利な、公知の、または開発される方法に基づいて暗号化することができ、それは例えば、Data Encryption Standard(DES)、Triple DES、Rivest-Shamir-Adleman暗号化(RSA)、Blowfish暗号化、Advanced Encryption Standard(AES)、CAST-128、CAST-256、Decorrelated Fast Cipher(DFC)、Tiny Encryption Algorithm(TEA)、eXtended TEA(XTEA)、Corrected Block TEA(XXTEA)3、および/またはRC5などを含むが、これらに限定されない
[0071]ネットワークデバイス105、端末デバイス115および/またはクライアントデバイス130は、例えば、携帯電子デバイス(例えば、スマートフォン、タブレット、ラップトップコンピュータ、またはスマートウェアラブルデバイス)または非携帯電子デバイス(例えば、1つまたは複数のデスクトップコンピュータ、スマートアプライアンス、サーバー、および/またはプロセッサ)を含むことができる。接続管理システム150は、ネットワーク、端末およびクライアントデバイスから別々に収容することができ、あるいは1つまたは複数のそのようなデバイスの一部であってもよい(例えば、デバイス上のアプリケーションのインストールを介して)。リモートサーバー140は、各デバイスおよび接続管理システム150から別々に収容されてもよく、かつ/あるいは別のデバイスまたはシステムの一部であってもよい。図1の各デバイス、サーバーおよびシステムは単一のデバイスとして示しているが、複数のデバイスが代わりに使用されてもよいことが理解されよう。例えば、ネットワークデバイスの集合は、単一のユーザから様々な通信を送信するために使用することができ、またはリモートサーバー140はサーバースタックを含むことができる。
[0072]ソフトウェアエージェントまたはアプリケーションは、図示されたデバイス、システムまたはサーバー上にインストールされ、かつ/または実行可能であってもよい。一例では、ソフトウェアエージェントまたはアプリケーションは、様々な図示された要素が関連する(例えば、相補的な)仕方で動作できるように構成される。例えば、デバイス上のソフトウェアエージェントは、デバイス使用に関するデータを取得して別個の接続管理システムに送信するように構成することができ、別個の接続管理システム上のソフトウェアアプリケーションは、データを受信し処理するように構成することができる。
[0073]図2は、ネットワーク対話システム200の別の実施形態のブロック図を示す。一般に、図2は、ネットワークデバイス205が1つまたは複数の端末デバイス215と通信することを可能にするように構成され配置された様々な構成要素を示す。図示する例は、3つのローカルエリアネットワーク235に含まれる9つの端末デバイス215を含む。
[0074]場合によっては、ネットワークデバイス205からの通信は、どの端末デバイスが通信を受信するかを少なくとも部分的にまたは完全に示す宛先データ(例えば、宛先IPアドレス)を含む。ネットワーク対話システム200は、宛先データを処理して適切なルーティングを容易にすることができる1つもしくは複数のネットワーク間接続コンポーネント240および/または1つもしくは複数のネットワーク内接続コンポーネント255を含むことができる。
[0075]各ネットワーク間接続コンポーネント245は、複数のネットワーク235に接続することができ、複数のネットワークカード(例えば、異なるネットワークに接続された各カード)をインストールすることができる。例えば、ネットワーク間接続コンポーネント245は、広域ネットワーク270(例えば、インターネット)および1つまたは複数のローカルエリアネットワーク235に接続することができる。図示する例では、通信がネットワークデバイス205から端末デバイスのいずれかに送信されるためには、図示するシステムでは、通信は複数のネットワーク間接続コンポーネント245によって処理されなければならない。
[0076]ネットワーク間接続コンポーネント245が通信(または通信に対応するパケットの集合)を受信すると、ネットワーク間接続コンポーネント245は、宛先に関連するネットワークに通信を渡すルートの少なくとも一部を決定することができる。ルートは、4例えば、ルーティングテーブル(例えば、ルータに格納されている)を使用して決定することができ、ルーティングテーブルは、あらかじめ定義されるか、着信メッセージ(例えば、別のルータまたは別のルータデバイス)に基づいて生成されるか、あるいは学習される1つまたは複数のルートを含むことができる。
[0077]ネットワーク間接続コンポーネント245の例には、ルータ260およびゲートウェイ265が含まれる。ネットワーク間接続コンポーネント245(例えば、ゲートウェイ265)は、ネットワークシステムまたはプロトコル間で変換するように構成されてもよい。例えば、ゲートウェイ265は、TCP/IP(Transmission Control Protocol/Internet Protocol)デバイスと、IPX/SPX(Internetwork Packet Exchange/Sequenced Packet Exchange)デバイスと、の間の通信を容易にすることができる。
[0078]ローカルエリアネットワーク235で通信を受信すると、さらにルーティングを実行する必要があり得る。そのようなネットワーク内ルーティングは、スイッチ280またはハブ285などのネットワーク内接続コンポーネント255を介して実行することができる。各ネットワーク内接続コンポーネント255は、複数の端末デバイス215に(例えば、無線で、またはイーサネット(登録商標)ケーブルなどを介して有線で)接続することができる。ハブ285は、受信したすべての通信を、それが接続されている各デバイスに繰り返すように構成することができる。次いで、各端末デバイスは、各通信を評価して、端末デバイスが宛先デバイスであるかどうか、または通信を無視するかどうかを判断することができる。スイッチ280は、宛先端末デバイスのみに対して選択的に通信を指示するように構成することができる。
[0079]場合によっては、ローカルエリアネットワーク235を複数のセグメントに分割することができ、その各々を独立したファイアウォール、セキュリティ規則およびネットワークプロトコルに関連付けることができる。セグメント内ルーティングを容易にするために、1つまたは複数の、またはすべてのセグメントの各々に、ネットワーク内接続コンポーネント255を設けることができる。ブリッジ280は、セグメント275にわたって通信をルーティングするように構成することができる。
[0080]ネットワークを横切ってまたはネットワーク内で通信を適切にルーティングするために、様々なコンポーネントが通信の宛先データを解析する。例えば、そのようなデータは、通信をどのネットワークにルーティングするか、ネットワーク内のどのデバイスに通信をルーティングするか、または端末デバイスがどの通信を処理するか(無視するか)を示すことができる。しかし、場合によっては、ネットワークデバイスからの通信にどの端末デバイス(またはどのネットワーク)が参加するのかが直ちに明らかではない。
[0081]例示するために、端末デバイスの集合は、同様のタイプの応答通信を提供するように構成することができる。したがって、どのネットワークデバイスに通信がルーティングされているかに関わらず、ネットワークデバイスからの通信における問い合わせが同様の方法で応答されることが期待される。この仮定は高いレベルで当てはまる可能性があるが、端末デバイスに関する様々な詳細は、他のものと比較して有利な特定のルーティングを生じさせる可能性がある。例えば、集合内の端末デバイスは、(例えば)どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的および/またはネットワークの近接性、ならびに/あるいは関連するエージェントの特性(例えば、情報のベース、経験、話される言語、可用性、一般的な特徴、またはメッセージ特性など)に関して互いに異なってもよい。したがって、選択ルーティングは、ネットワークデバイス通信に、より正確かつ/または完全に応答するより速い応答を容易にすることができる。ネットワ5ークデバイスを端末デバイスにマッピングする静的ルーティングでは、通信トピック、チャネルタイプ、エージェントの可用性などの違いを特定できないことがある。
[0082]図3A~図3Cは、接続管理システムを含むネットワーク対話システム300a~300cの他の実施形態のブロック図を示す。図示するシステム300a~300cの各々は、単純化のために2つのローカルエリアネットワーク235のみを示すが、実施形態を拡張してローカルエリアネットワークの数を拡張することができることが理解されよう。システム300a~300cの各々は、接続管理システム350を含み、接続管理システム350は、どの端末デバイスがネットワークデバイス205と通信するかを特定することができ、接続チャネルを確立し管理(例えば、維持または閉鎖)することができ、交換において通信を再ルーティングするか、およびそれをいつするかを決定することなどができる。したがって、接続管理システム350は、ルーティング決定に影響を及ぼすために、通信、エージェント可用性、端末デバイスまたはエージェントの能力などを動的に、かつリアルタイムに評価するように構成することができる。
[0083]図3Aでは、接続管理システム350は、ネットワークデバイス205およびリモートサーバー340の各々に関連付けられている(例えば、接続管理システム350aはネットワークデバイス205に関連付けられ、接続管理システム350bはリモートサーバー340に関連付けられる)。例えば、接続管理システム350aおよび/または接続管理システム350bは、それぞれネットワークデバイス205およびリモートサーバー340のそれぞれにアプリケーションとしてインストールまたは格納することができる。アプリケーションの実行は、例えば、ネットワークデバイス205との通信に参加するように選択された端末デバイス215を識別するために、ネットワークデバイス205とリモートサーバー340との間の通信を容易にすることができる。この識別は、本明細書に開示する1つまたは複数の要因(例えば、可用性、通信のトピック/詳細のレベルとエージェントまたは端末デバイスの情報ベースとの比較、算出された予想待ち時間、チャネルタイプ可用性など)に基づいて行われる。
[0084]クライアントデバイス330は、ルーティング決定がどのように行われるべきかを指示するクライアントデータを提供することができる。例えば、そのようなデータは、特定の特性がどのように重み付けされ、比較され、または制限されるかに関する指示(例えば、ロードバランシングまたは示された応答待ち時間に関する)を含むことができる。クライアントデータには、通信チャネルをいつ確立(またはクローズ)するか、または異なるネットワークデバイスに通信をいつ再ルーティングするかに関する仕様も含まれる。クライアントデータを使用して、通信ルーティングなどの規則など、様々なクライアント特有の規則を定義することができる。
[0085]リモートサーバー340上で実行される接続管理システム350bは、端末デバイスに関する(例えば、所与のクライアントに関する)様々なメトリックを監視することができ、それらは例えば、どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的および/またはネットワーク近接度、端末デバイスとの通信待ち時間および/または安定性、端末デバイスのタイプ、端末デバイスの能力、端末デバイス(またはエージェント)が所与のネットワークデバイス(またはユーザ)と以前に通信したことがあるかどうか、ならびに/あるいは関連するエージェントの特性などである。したがって、通信管理システム350bは、メトリックに基づいてネットワークデバイス通信に、より正確かつ/または完全に応答するより速い応答を容易にするために、ルーティングを選択することを可能にすることができる。
[0086]図3Aに示す例では、ネットワークデバイス205とリモートサーバー340との間の通信は、宛先アドレスの早期識別を容易にすることができる。次いで、ネットワー6クデバイス205は、宛先アドレスを使用して、後続の通信を指示することができる。例えば、ネットワークデバイス205は、リモートサーバー340に初期通信を送信し(例えば、1つまたは複数のネットワーク間接続および広域ネットワークを介して)、リモートサーバー340は、1つまたは複数の対応するクライアントを識別することができる。次いで、リモートサーバー340は、1つまたは複数の対応するクライアントに関連する端末デバイスの集合を識別し、それらの端末デバイスのメトリックを取得することができる。メトリックは、通信に関与する端末デバイスを選択するように(例えば、リモートサーバー340によって)評価され、端末デバイスに関する情報(例えば、IPアドレス)をネットワークデバイス205に送信することができる。いくつかの実施形態では、リモートサーバー340は、連続的または定期的に、様々な端末デバイスのメトリックを取得および評価し、評価結果をデータストアに格納することができる。このような実施形態では、1つまたは複数の対応するクライアントに関連する端末デバイスの集合を識別すると、リモートサーバー340は、データストアからの格納された評価結果にアクセスし、格納された評価結果に基づいて通信交換に関与する端末デバイスを選択することができる。
[0087]図3Bでは、接続管理システム350は、リレーおよび/または宛先アドレスとして機能するように構成することができる。したがって、例えば、ネットワークデバイス205の集合は、それぞれが接続管理システム350を宛先として識別する通信を送信することができる。接続管理システム350は、各通信を受信することができ、(例えば、各端末デバイスのメトリックを生成するために)端末デバイスの集合を同時に監視することができる。監視および規則に基づいて、接続管理システム350は、各通信を中継することができる端末デバイス215を識別することができる。実施形態に応じて、端末デバイス通信は、同様に、さらなる中継のための一貫した宛先(例えば、接続管理システム350)に向けられてもよいし、端末デバイスが対応するネットワークデバイスと直接通信を開始してもよい。これらの実施形態は、効率的なルーティングおよび完全な通信監視を容易にすることができる。
[0088]図3Cに示す実施形態は、図3Bに示す実施形態と同様である。しかし、いくつかの実施形態では、接続管理システム350は、ネットワーク内コンポーネント(例えば、端末デバイス、ネットワーク内接続、またはその他)に直接接続される。
[0089]図3A~図3Cの多くの変形例が考えられることが理解されよう。例えば、接続管理システム350は、接続管理システム350(またはその一部)に対応するアプリケーションがコンポーネントにインストールされるように、接続コンポーネント(例えば、ネットワーク間接続コンポーネント245またはネットワーク内接続コンポーネント255)に関連付けることができる。アプリケーションは、例えば、単独で、あるいは1つまたは複数の類似のもしくは関連するアプリケーションと通信することによって実行することができる(例えば、1つまたは複数の他の構成要素、ネットワークデバイスまたはリモートサーバー上で実行する)。
[0090]図4は、接続コンポーネントの動作のプロトコルスタックマッピング400の表現を示す。より具体的には、図4は、様々な接続コンポーネントに対応するOSI(Open Systems Interaction)モデルにおける動作の層を識別する。
[0091]OSIモデルは、複数の論理層402~414を含むことができる。層は、層402~412がそれぞれより高いレベルを提供し、層404~414がそれぞれ下部層によって提供されるように、順序付けられたスタックに配置される。OSIモデルは、物理層402を含む。物理層402は、パラメータ物理的通信(例えば、電気的、光学的、または電磁的)を定義することができる。物理層402はまた、接続を確立し閉鎖するためのプロトコルなどの接続管理プロトコルを定義する。物理層402は、フロー制御プロトコルおよび伝送モードをさらに定義することができる。
[0092]リンク層404は、ノード対ノード通信を管理することができる。リンク層404は、エラー(例えば、物理層402における伝送エラー)を検出して訂正し、アクセス許可を管理することができる。リンク層404は、メディアアクセス制御(MAC)層および論理リンク制御(LLC)層を含むことができる。
[0093]ネットワーク層406は、同じネットワーク(例えば、データグラム)内のノード間で(例えば可変長の)データ転送を調整することができる。ネットワーク層406は、論理ネットワークアドレスを物理マシンアドレスに変換することができる。
[0094]トランスポート層408は、送信品質および受信品質を管理することができる。トランスポート層408は、伝送制御プロトコル(TCP)などのデータを転送するためのプロトコルを提供することができる。トランスポート層408は、送信のためにデータパケットのセグメント化/デセグメント化を実行することができ、層402~406で発生する伝送エラーを検出して追跡することができる。セッション層410は、ローカルアプリケーションとリモートアプリケーションとの間の接続を開始し、維持し、終了することができる。セッションは、リモートプロシージャの対話の一部として使用することができる。プレゼンテーション層412は、アプリケーション層またはネットワーク層によって確認応答されることが知られているデータタイプに基づいてデータを暗号化、解読およびフォーマットすることができる。
[0095]アプリケーション層414は、通信を制御または管理するソフトウェアアプリケーションと通信することができる。このようなアプリケーションを介して、アプリケーション層414は、(例えば)宛先、ローカルリソースの状態もしくは可用性、および/または通信コンテンツもしくはフォーマッティングを識別することができる。様々な層402~414は、利用可能かつ適用可能な他の機能を実行することができる。
[0096]ネットワーク内接続コンポーネント422、424は、物理層402およびリンク層404で動作するように示されている。より具体的には、通信の受信および送信に関して動作を制御できるように、ハブは物理層で動作することができる。ハブは、通信をアドレッシングする能力またはデータをフィルタリングする能力がないので、より高いレベルで動作する能力がほとんどまたは全くない。一方、スイッチは、アドレス(例えば、MACアドレス)に基づいて通信フレームをフィルタリングすることができるので、リンク層404で動作することができる。
[0097]一方、ネットワーク間接続コンポーネント426、428は、より高いレベル(例えば、層406~414)で動作するように示されている。例えば、ルータは、アドレス(例えば、IPアドレス)に基づいて通信データパケットをフィルタリングすることができる。ルータは、アドレスに基づいてパケットを特定のポートに転送し、パケットを適切なネットワークに送ることができる。ゲートウェイは、ネットワーク層以上で動作し、データを同様にフィルタリングし、方向付けし、さらに変換を行うことができる(例えば、プロトコルまたはアーキテクチャにわたって)。
[0098]接続管理システム450は、様々な実施形態において、様々な層のうちの1つまたは複数、すべて、またはいずれかと通信し、かつ/またはその上で動作することができる。例えば、接続管理システム450は、ハブと通信して、ハブがどの端末デバイスと通信するかを動的に調整することができる。別の例として、接続管理システム450は、コンポーネントが宛先(例えば、MAC、論理または物理)アドレスとしてどの端末デバイスを選択するかに影響を及ぼすように、ブリッジ、スイッチ、ルータまたはゲートウェイ8と通信することができる。さらなる例として、接続管理システム450は、トランスポート層408上のデータパケットのセグメント化、セッション層410上のセッション時間範囲、ならびに/あるいはプレゼンテーション層412上の暗号化および/または圧縮を監視、制御または指示することができる。いくつかの実施形態では、接続管理システム450は、特定の層(例えば、リンク層404上で動作するスイッチ)上で動作する機器と通信する(例えば、コマンドを送る)ことによって、特定の態様で(例えば、ネットワークデバイスと端末デバイスとの間の)既存の通信をルーティングまたは変更することによって、および/または既存の通信に基づいて特定の情報(例えば、新しい宛先アドレス)を含む新たな通信を生成することによって、様々な層と通信することができる。したがって、接続管理システム450は、様々なデバイスとの対話を介して、および/または様々なプロトコルスタック層で動作する影響を介して、通信ルーティングおよびチャネル確立(または保守または終了)に影響を及ぼすことができる。
[0099]図5は、一実施形態によるマルチデバイス通信対話システム500を表す。システム500は、様々なタイプの通信チャネルを介して様々なタイプの端末デバイスと通信するように構成されたネットワークデバイス505を含む。
[00100]図示する例では、ネットワークデバイス505は、セルラーネットワークを介して(例えば、基地局510を介して)通信を送信することができる。通信は、運用ネットワーク515にルーティングすることができる。運用ネットワーク515は、通信を受信し、どの端末デバイスが通信に応答するかを特定する接続管理システム520を含むことができる。そのような決定は、(例えば、コンテンツ解析またはクライアントを示すユーザ入力に基づいて)その通信が関係するクライアントを識別すること、ならびにクライアントに関連する1つまたは複数の端末デバイスのそれぞれについて1つまたは複数のメトリックを決定することに依存してもよい。例えば、図5では、端末デバイス530a~530cの各クラスタは異なるクライアントに対応することができる。端末デバイスは、地理的に同じ位置に配置されていてもよいし、分散されていてもよい。メトリックは、格納されたもしくは学習されたデータおよび/またはリアルタイムモニタリングに基づいて(例えば、可用性に基づいて)決定されてもよい。
[00101]接続管理システム520は、1つもしくは複数のルータ525または他のネットワーク間接続コンポーネントもしくはネットワーク内接続コンポーネントを介して様々な端末デバイスと通信することができる。接続管理システム520は、通信、端末デバイス動作、クライアント規則、および/またはユーザ関連動作(例えば、オンライン動作、プロファイルデータ、対話データなど)からのデータを、またはこれらに関連するデータを取得し、解析し、および/または1つもしくは複数のデータストアに格納することができる。そのようなデータは、通信ルーティングに影響を及ぼす可能性がある。
[00102]特に、通信ルーティングおよび/または処理に影響を及ぼすために、様々な他のデバイスをさらに使用することができる。例えば、図示する例では、接続管理システム520もウェブサーバー545に接続されている。したがって、接続管理システム540は、技術的なアイテムの仕様などのトピックに関連するデータを検索することができる。
[00103]ネットワークデバイス505はまた、ウェブサーバー(例えば、ストリーミングウェブサーバー545を含む)に接続することもできる。場合によっては、そのようなサーバーとの通信は、接続管理システム520との通信を開始するための初期オプションを提供した。例えば、ネットワークデバイス505は、特定のURLまたはウェブページを訪れている間に、通信機会が利用可能であり、そのようなオプションを提示することができることを検出することができる。
[00104]通信システム500の1つまたは複数の要素は、ソーシャルネットワーキングサーバー550に接続することもできる。ソーシャルネットワーキングサーバー550は、様々なユーザデバイスから受信したデータを集約することができる。したがって、例えば、接続管理システム520は、所与のトピックに対して一般的な(またはユーザ特有の)メッセージ特性を決定することができ、あるいは所与のユーザまたはユーザのクラスの1つまたは複数の一般的な動作を決定することができる。
[00105]図6は、接続管理システム600の一実施形態のブロック図を示す。メッセージ受信機インターフェース605は、メッセージを受信することができる。場合によっては、メッセージは、例えば、ネットワークデバイスまたは端末デバイスなどのソースデバイス(例えば、接続管理システム600とは別に収容されるか、または同じハウジング内に収容される)によって送信される通信の一部として受信することができる。場合によっては、通信は、2つのデバイス(例えば、ネットワークデバイスと端末デバイスとの)間でルーティングされる一連のメッセージを含むことができる一連の通信または通信交換の一部であってもよい。このメッセージまたは通信交換は、デバイス間の対話の一部であってもよいし、および/またはデバイス間の対話を定義してもよい。通信チャネルまたは運用チャネルは、デバイス間のルーティングおよび通信を容易にするために使用される1つまたは複数のプロトコル(例えば、ルーティングプロトコル、タスク割り当てプロトコルおよび/またはアドレッシングプロトコル)を含むことができる。
[00106]場合によっては、メッセージは、ローカルまたはリモートユーザインターフェースで受信された入力に基づいて生成されたメッセージを含むことができる。例えば、メッセージは、ボタンまたはキーの押下または記録された音声信号に基づいて生成されたメッセージを含むことができる。一例では、メッセージは、自動的に生成されたメッセージを含み、それは例えば、ネットワークデバイスが特定のアプリケーション(またはアプリ)ページまたはURLを提示しているか、あるいは特定の入力コマンド(例えば、キーシーケンス)を提供したことを検出した際に生成されるメッセージなどである。メッセージは、通信を開始するためなどの命令または要求を含むことができる。
[00107]場合によっては、メッセージは、クライアントの識別子を含んでもよいし、またはそれに関連付けられてもよい。例えば、メッセージは、クライアント(またはクライアントに関連するデバイス)を明示的に識別することができるか、メッセージは、クライアントに関連するURLまたはアプリケーションページ(例えば、モバイルアプリケーションまたはアプリ)を含む、またはそれに関連付けることができるか、メッセージは、クライアントに関連する宛先アドレスを含む、またはそれに関連付けることができるか、あるいはメッセージは、クライアントに関連するアイテムまたは要求された性能(例えば、クライアントによって提供されているか、クライアントによって取得されているか、またはクライアントがサービスしている)の識別を含む、またはそれに関連付けることができる。例示のために、ネットワークデバイスは、特定のクライアントのアプリケーションページを提示することができ、それはエージェントに通信を送信するオプションを提供することができる。メッセージに対応するユーザ入力を受信すると、メッセージおよび特定のクライアントの識別子を含むように通信を生成することができる。メッセージは、特定の端末デバイスまたは端末デバイスの特定の集合(例えば、エージェントまたはプロバイダプロキシによって使用される端末デバイス)にルーティングすることができる。
[00108]処理エンジン610は、受信した通信および/またはメッセージを処理することができる。処理は、例えば、1つまたは複数の特定のデータ要素(例えば、メッセージ、クライアント識別子、ネットワークデバイス識別子、プロファイル識別子など)を抽出することを含むことができる。処理は、フォーマッティングタイプまたは通信タイプを変換する(例えば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコルおよび/またはネットワークと互換性があるように)ことを含むことができる。
[00109]メッセージ評価エンジン615は、(例えば、抽出または受信された)メッセージを評価することができる。評価は、例えば、メッセージの1つもしくは複数のカテゴリまたはタグを識別することを含むことができる。カテゴリまたはタグタイプの例としては、トピック、メッセージの特徴、複雑さ、および緊急性などが挙げられる。メッセージをカテゴリ化することとタグ付けすることとの違いは、カテゴリは(例えば、カテゴリオプションの集合によって)限定することができるが、タグはオープンであってもよいということである。トピックは、例えば、オブジェクトまたはオブジェクトに関連する情報、要求された性能、技術的問い合わせ、または通信要求を含むことができる。カテゴリまたはタグは、例えば、メッセージの意味解析(例えば、キーワード、文構造、繰り返し単語、句読点、および/または非冠詞語を識別することによって)、ユーザ入力(例えば、1つまたは複数のカテゴリを選択した)、および/またはメッセージ関連パラメータ(例えば、タイプ速度および/または応答待ち時間)に基づいて決定することができる。
[00110]場合によっては、メッセージ評価エンジン615は、メッセージのメトリックを決定することができる。メトリックは、例えば、文字、単語、大文字、すべて大文字の単語または特定の文字もしくは句読点(例えば、感嘆符、疑問符および/またはピリオド)のインスタンスの数を含むことができる。メトリックには、感嘆符(または疑問符)で終わる文の割合、すべて大文字になっている単語の割合などの比率を含めることができる。
[00111]メッセージ評価エンジン615は、メッセージ、メッセージメトリックおよび/またはメッセージパラメータをメッセージデータストア620に格納することができる。各メッセージは、対応するソースデバイス、宛先デバイス、ネットワークデバイス、端末デバイス、クライアント、1つもしくは複数のカテゴリ、1つもしくは複数のステージおよび/またはメッセージに関連するパラメータを識別するデータなどの他のデータ(例えば、メタデータ)と関連付けて格納することもできる。接続管理システム600の様々なコンポーネント(例えば、メッセージ評価エンジン615および/または対話管理エンジン625)は、問い合わせ応答メッセージ、メッセージメトリックおよび/またはメッセージパラメータを検索するためにメッセージデータストア620に問い合わせることができる。
[00112]対話管理エンジン625は、どのデバイスに通信をルーティングするか、および受信デバイスと送信デバイスがどのように通信するかを決定することができる。これらの決定の各々は、例えば、特定のネットワークデバイス(または特定のユーザに関連する任意のネットワークデバイス)が、端末デバイス(例えば、接続管理システム600に関連する任意の端末デバイスまたは1つもしくは複数の特定のクライアントに関連する任意の端末デバイス)の集合内の端末デバイスと以前に通信したかどうかに依存してもよい。
[00113]場合によっては、ネットワークデバイス(または同じユーザまたはプロファイルに関連する他のネットワークデバイス)が所与の端末デバイスと以前に通信したことがある(例えば、クライアントに関する事項について)場合には、通信ルーティングは一般に同じ端末デバイスに対して選択重み付けを有する。ルーティングに影響を及ぼし得る他の要因は、例えば、以前の通信に関する推論されたまたは識別されたユーザもしくはエージェントメッセージ特性、現在の通信のトピック(例えば、以前の通信のトピックおよび/または1つまたは複数の端末デバイスもしくはエージェントに関連する情報のベースに関連する程度)、端末デバイス(または対応するエージェント)が利用可能であるかどうか、および/または端末デバイスの示された応答待ち時間を含むことができる。このような要因は、他の端末デバイスに対応する同様のメトリックに対して絶対的または相対的であるとみなすことができる。再ルーティング規則(例えば、クライアント特有の規則または一般的な規則)は、エージェントの一貫性を避けるかどうかを決定するために、そのような要因をどのように評価し重み付けするかを示すことができる。
[00114]ネットワークデバイス(または同じユーザもしくはプロファイルに関連する他のネットワークデバイス)が所与の端末デバイスと以前に通信していない(例えば、クライアントに関する事項について)場合には、端末デバイスの選択は、例えば、様々なエージェントの情報ベースが通信トピックに対応する程度、所与の時間および/またはチャネルタイプ上の様々なエージェントの可用性、端末デバイスのタイプおよび/または能力(例えば、クライアントに関連して)、ユーザとエージェントとの間の言語類似性、ならびに/あるいは特性解析などの要因に基づいて実行することができる。1つの例では、規則は、これらのような1つまたは複数の要因に割り当てる下位値および各値に割り当てる重みを決定する方法を特定することができる。重み付けされた下位値を組み合わせる(例えば、合計する)ことによって、各エージェントの値を決定することができる。次に、端末デバイスの値を比較する(例えば、高い値または最も高い値を選択する)ことによって、端末デバイスの選択を行うことができる。
[00115]デバイスがどのように通信するかを決定することに関して、対話管理エンジン625は、(例えば)電子メール、オンラインチャット、SMSメッセージ、音声通話、ビデオチャットなどを介して端末デバイスが通信に応答するかどうかを(例えば)決定することができる。通信タイプは、例えば、通信タイプの優先順位リスト(例えば、クライアントまたはユーザによって少なくとも部分的に設定される)、ネットワークデバイスから以前に受信した通信のタイプ(例えば、一貫性を改善するために)、受信されたメッセージの複雑さ、ネットワークデバイスの能力、および/または1つもしくは複数の端末デバイスの可用性に基づいて選択することができる。おそらく、いくつかの通信タイプは、(例えば、高速メッセージ応答が期待される)リアルタイム通信をもたらす一方で、他の通信タイプは非同期通信(例えば、メッセージ間の遅延(例えば、数分または数時間)が許容可能である)をもたらすことができる。
[00116]さらに、対話管理エンジン625は、2つのデバイス間の連続チャネルを確立し、使用し、または終了させるかどうかを決定することができる。連続チャネルは、ネットワークデバイスから特定の端末デバイスへの将来の通信のルーティングを容易にするように構成することができる。この連続チャネルは、メッセージシリーズ(例えば、日、週または月)にわたっても持続することができる。場合によっては、ネットワークデバイス上に提示されるプレゼンテーションに連続チャネルの表現(例えば、エージェントを識別する)を含めることができる。このようにして、ユーザは、通信を一貫してルーティングして効率を向上させることを理解することができる。
[00117]一例では、所与のネットワークデバイスおよび端末デバイスに対応する接続値を決定するために、本明細書に記載する1つまたは複数の要因および規則(例えば、1つまたは複数の要因のそれぞれに対する重みを含む)を使用して値を生成することができる。この値は、全体的な類似性または所与の通信もしくは通信シリーズに特有のものに関するものであってもよい。したがって、例えば、その値は、所与の端末デバイスがネットワークデバイス通信に応答するのに適していると判断される程度を反映することができる。場合によっては、値の解析を使用して、所与の通信をルーティングするための端末デバイスのそれぞれを識別し、接続チャネルを確立、使用、または終了するかどうかを識別することができる。値の解析を使用してルーティング決定とチャネル決定に対処する場合に、各決定に関連する値は、同じ、類似または異なる方法で決定することができる。
[00118]したがって、例えば、特定のメッセージ問い合わせに応答するための値対比較の強度を決定する値であるかどうかに応じて、異なる要因を評価することができることが理解されよう。例えば、前者の場合は、全体的な時間配分と時間帯の要因が重要になる場合があるが、後者の場合は、即時の可用性がより高く重み付けされ得る。単一のネットワークデバイス/端末デバイスの組み合わせについて値を決定することができ、または複数の値を決定することができ、各々は所与のネットワークデバイスと異なる端末デバイスとの間の比較を特徴付ける。
[00119]例示するために、クライアントに関連する3つの端末デバイスの集合は、可能な通信ルーティングについて評価されてもよい。特定の通信に対する比較に関する値を、端末デバイスごとに生成することができる。最初の2つの端末デバイスのそれぞれは、通信を送信したネットワークデバイスと以前に通信していてもよい。ネットワークデバイスからの入力は、第1のデバイスとの通信との対話の満足度を示している可能性がある。したがって、第1、第2、および第3のデバイスの過去の対話の下位値(規則によって算出される)は、それぞれ10、5および0とすることができる。(マイナスの満足度入力はマイナスの下位値をもたらす場合がある)第3の端末デバイスのみが直ちに利用可能であると決定されてもよい。第2の端末デバイスは15分以内に応答可能であるが、第1の端末デバイスは翌日まで応答することができないことが決定されてもよい。したがって、第1、第2および第3のデバイスの高速応答下位値は、1、3および10とすることができる。最後に、エージェント(端末デバイスに関連する)が、通信中のトピックに関する情報にアクセスできる程度を決定することができる。第3の端末デバイスに関連するエージェントは、他の2つのデバイスに関連するエージェントよりも知識があり、結果として3、4および9の下位値が得られることが決定されてもよい。この例では、規則には重み付けまたは正規化のパラメータが含まれていない(ただし、他の場合には含まれてもよい)ので、結果として14、12および19の値が得られる。したがって、規則は、メッセージが、第3の端末デバイスである、最高値を有するデバイスにルーティングされることを示すことができる。特定の端末デバイスへのルーティングが失敗した場合には、そのメッセージは次に高い値を有するデバイスにルーティングされ、以下同様である。
[00120]値は、1つまたは複数の絶対または相対しきい値と比較することができる。例えば、端末デバイスの集合についての値を互いに比較して高い値を特定し、通信をルーティングできる端末デバイスを選択することができる。別の例として、値(例えば、高い値)を1つまたは複数の絶対しきい値と比較して、端末デバイスとの連続チャネルを確立するかどうかを決定することができる。連続チャネルを確立するための全体的なしきい値は、所与の一連のメッセージにおける通信を一貫してルーティングするためのしきい値より高くてもよい(しかし、必ずしもそうする必要はない)。全体的なしきい値と通信が一貫してルーティングするかどうかを決定するためのしきい値との間のこのような差異は、チャネルの拡張されたユーティリティが与えられた場合に連続チャネルコンテキストにおいて連続性が重要であることを比較が示しているためである。いくつかの実施形態では、連続チャネルを使用するための全体的なしきい値は、連続チャネルを確立するため、および/または所与の一連のメッセージ内の通信を一貫してルーティングするためのしきい値よりも低くてもよい(しかし必ずしも必要ではない)。
[00121]対話管理エンジン625は、様々なコンテキストでプロファイルエンジン630と通信することができる。例えば、プロファイルエンジン630は、デバイスに対応するプロファイルを識別するために、ユーザデータストア635内のネットワークデバイスまたは端末デバイスの識別子を調べることができる。さらに、プロファイルエンジン630は、以前の通信(例えば、時間、他の関係するデバイス、チャネルタイプ、解決ステージ、トピックおよび/または関連するクライアント識別子)、接続チャネル(例えば、1つまたは複数のクライアントの各々について、チャネルが存在するかどうか、各チャネルに関連する端末デバイス、確立時間、使用頻度、最後に使用された日付、任意のチャネル制約および/またはサポートされる通信タイプ)、ユーザもしくはエージェント設定データ(例えば、嗜好)または制約(例えば、端末デバイスの選択、応答待ち時間、端末デバイスの一貫性、エージェントの専門知識、および/または通信タイプ制約に関する)ならびに/あるいはユーザまたはエージェントの特性(例えば、年齢、話されたまたは好まれる言語、地理的位置、興味など)に関するデータを保持することができる。
[00122]さらに、対話管理エンジン625は、ユーザデータストア635をチャネルデータで更新できるように、様々な接続チャネル動作を含む通知メッセージをプロファイルエンジン630に送信することができる。例えば、チャネルを確立すると、対話管理エンジン625は、プロファイルエンジン630に確立したことを通知し、ネットワークデバイス、端末デバイス、プロファイル、およびクライアントのうちの1つまたは複数を識別することができる。プロファイルエンジン630は、(場合によっては)利用しているエージェントの一貫性をユーザが知ることができるように、その後にチャネルの存在をユーザに通知することができる。
[00123]対話管理エンジン625はさらに、クライアントマッピングエンジン640と通信することができ、クライアントマッピングエンジン640は、通信を1つまたは複数のクライアント(および/または関連するブランド)にマッピングすることができる。場合によっては、ネットワークデバイス自体から受信される通信は、クライアントに対応する識別子(例えば、クライアントの識別子、アイテム、要求された性能、URL、またはアプリケーションページ)を含む。識別子は、メッセージ(例えば、クライアントマッピングエンジン640が検出することができる)の一部として含まれてもよく、またはメッセージを含む通信における他のデータとして含まれてもよい。次に、クライアントマッピングエンジン640は、クライアントに関する追加のデータおよび/またはクライアントの識別子を検索するために、クライアントデータストア645内の識別子を調べることができる。
[00124]場合によっては、メッセージは特にクライアントに対応していなくてもよい。例えば、メッセージには一般的な問い合わせが含まれていてもよい。クライアントマッピングエンジン640は、例えば、メッセージに関する意味解析を実行し、1つまたは複数のキーワードを識別し、そのキーワードに関連する1つまたは複数のクライアントを識別することができる。場合によっては、単一のクライアントが識別される。場合によっては、複数のクライアントが識別される。次いで、各クライアントの識別は、ユーザが(例えば、関連する端末デバイスを介して)通信するクライアントを選択することができるように、ネットワークデバイスを介して提示されてもよい。
[00125]クライアントデータストア645は、クライアントに関連する1つまたは複数の端末デバイス(および/またはエージェント)の識別を含むことができる。端末ルーティングエンジン650は、ルーティング決定に影響を及ぼすように、1つまたは複数またはすべてのそのような端末デバイス(および/またはエージェント)のそれぞれに関するデータを検索または取得することができる。例えば、端末ルーティングエンジン650は、端末データストア655を保持することができ、端末データストア655は、端末デバイスのデバイスタイプ、オペレーティングシステム、通信タイプの能力、インストールされたアプリケーションアクセサリ、地理的位置および/または識別子(例えば、IPアドレス)などの情報を格納することができる。情報はまた、経験レベル、位置、熟練度、情報のベース(エージェントがよく知っているトピック、および/または様々なトピックの情報アクセスのレベル)、特性メトリック、可用性時間範囲、話される言語および/または人口統計情報などのエージェント情報を含むことができる。一部の情報を動的に更新することができる。例えば、端末デバイスが利用可能であるかどうかを示す情報は、端末デバイスからの通信(例えば、デバイスがスリープ状態であるかどうかを識別し、オフ/オンし、アイドル状態/アクティブ状態にし、または入力が時間範囲内で受信されたどうかを識別する)、通信ルーティング(例えば、端末デバイスが通信交換に関与しているか、またはその一部になるように割り当てられているかを示す)、あるいは通信が終了したまたは開始したことを示すネットワークデバイスまたは端末デバイスからの通信に基づいて動的に更新することができる。
[00126]様々なコンテキストにおいて、1つまたは複数の通信交換(または通信セッション)に関与していることは、端末デバイスが別の通信交換に関与するために利用可能でないことを必ずしも示すものではないことが理解されよう。通信タイプ(例えば、メッセージ、電子メール、チャット、電話)、クライアントによって識別された、もしくはユーザによって識別された目標応答時間、および/またはシステム負荷(例えば、一般的に、またはユーザに関して)は、端末デバイスが関与し得る通信セッションの数に影響を及ぼすことがある。
[00127]対話管理エンジン625は、通信または接続チャネルに関与する端末デバイスを識別すると、端末ルーティングエンジン650に通知することができ、端末ルーティングエンジン650は、宛先(例えば、IP)アドレス、デバイスタイプ、プロトコルなどの、端末デバイスに関する任意の関連データを端末データストア655から検索することができる。次いで処理エンジン610は、(場合によっては)特定のフォーマットを有し、特定のプロトコルに準拠するなどするように、メッセージを含む通信を変更したり、新たな通信(メッセージを含む)を生成することができる。場合によっては、新しいメッセージまたは変更されたメッセージは、ネットワークデバイス、メッセージ履歴、および/またはクライアントデータに対応するプロファイルデータなどの追加データを含むことができる。
[00128]その後に、メッセージ送信機インターフェース660は、通信を端末デバイスに送信することができる。送信は、例えば、別個の筐体内に収容されたデバイスへの有線通信または無線送信を含むことができる。端末デバイスは、接続管理システム600と同じまたは異なるネットワーク(例えば、ローカルエリアネットワーク)に端末デバイスを含むことができる。したがって、通信を端末デバイスに送信することは、通信をネットワーク間接続コンポーネントまたはネットワーク内接続コンポーネントに送信することを含むことができる。
[00129]アイテムおよび要求された性能のプロバイダは、図1~図6に関して上述したシステムのいずれかを使用することができる。例えば、ユーザは、公開されたアイテムおよび要求された性能をプロバイダからインターネットを介して(デバイスまたはモバイルアプリケーションプラットフォームを使用して)アクセスすることができ、上記のシステムを使用してエージェント(またはプロバイダプロキシ)と通信することができる。ユーザは地理的に多様な地域のソースからトピックおよび情報を見つけて学ぶことができる。さらに、ユーザは、アイテムまたは要求された性能のソースの場所を見つけることができる。インターネットを使用して様々なメッセージが伝達され、大量のデータおよび情報が送信される。
[00130]図7は、本発明の一実施形態による対話環境700のブロック図である。例えば、対話環境700は、ネットワーク対話システム100の別の実施形態であってもよい。ユーザ705は、デバイスがユーザデバイス位置715にある間に、ユーザデバイス710を操作する。対話は、例えば、テキストの入力、デバイス上の仮想的なまたは非仮想的なボタン(例えばURL上の通信要求オプション)のクリック、および/または近接するオブジェクトコード(例えば、バーコードまたはQRコード(登録商標))を検出するためにデバイス上のカメラまたはセンサをトリガする入力の提供を含むことができる。
[00131]対話に応答して、ユーザデバイス710は、要求通信を生成して、リソース優先順位付けシステム720に送信することができる。要求通信は、ユーザデバイス位置(例えば、地理的座標、ユーザデバイス位置が任意の特定の建物または地理的位置にあるかどうかに関する表示、またはアドレス)、要求主体(例えば、トピックまたはクエリを識別する)を含むコンテンツ、クライアント(例えば、建物または地理的位置に関連するエンティティ)および/またはオブジェクトを識別すること(例えば、対話が検出されたときに提示されたスキャンされたコードまたはURLに対応する)、ならびに/あるいは1つもしくは複数の制約(例えば、通信チャネルのタイプに関して)を示すデータを含むことができる。場合によっては、要求通信データの少なくとも一部は、要求開始アクションが検出されている間に(例えば、アプリケーションページに対応するオブジェクトまたはクライアントを識別するために)、ユーザデバイス710上に提示されているURL(またはその一部)またはアプリケーションページに基づいて生成される。
[00132]リソース優先順位付けシステム720は、要求通信を解析して、要求に関連するオブジェクト725を識別することができる。オブジェクト725を識別することは、1つもしくは複数のオブジェクトプロパティおよび/またはオブジェクトタイプを識別することを含むことができる。例えば、要求通信がモデルABCスマートフォンに対応する場合には、オブジェクトを識別することは、モデルABCスマートフォンである特定のスマートフォンを識別するのではなく、モデルABCスマートフォンを識別することを含むことができる。場合によっては、オブジェクト725を識別することは、(例えば、特定のオブジェクトコードを識別することを介して)特定のオブジェクトを識別することを含むことができる。
[00133]リソース優先順位付けシステム720は、オブジェクト725に関連する1つまたは複数のオブジェクト位置730を識別することができる。例えば、オブジェクトは、オブジェクトの位置を識別するオブジェクト上の通信タグから受信したデータ、オブジェクトを(例えば、バーコードスキャンまたは送信を介して)検出し、検出されたオブジェクトおよびスキャナの位置を識別するスキャナから受信したデータ、特定の位置にあるオブジェクトの存在を報告するクライアントに基づいてエンティティのデバイスから受信したデータ、ならびに/あるいはオブジェクトがどこにいつ配信されるかを示す配信スケジュールを識別するデータに基づいて、データストア内のオブジェクト位置に関連付けることができる。場合によっては、所与のオブジェクト725を複数のオブジェクト位置730に関連付けることができる。リソース優先順位付けシステム720は、次に、場合によっては、オブジェクト位置の部分集合を、ユーザデバイス位置715に近いもの(例えば、ユーザデバイス位置715から5マイル以内の任意のオブジェクト位置、最上位の1つまたは5つの最も近いオブジェクト位置、など)として識別することができる。
[00134]リソース優先順位付けシステム720は、要求通信を評価して、オブジェクト725に近接するリソース(例えば、オブジェクト位置730からある距離内のリソース位置にあるリソース、またはオブジェクト位置がある同じ地理的領域(例えば、建物の位置)にあるリソース)を特定しようと試みるかどうかを決定することができる。この決定は、例えば、期待された要求-応答タスク時間範囲、オブジェクトに関連する取得パラメータ、要求負荷、1つまたは複数のリソース(例えば一般的なまたはオブジェクト位置の近くの)の可用性、ならびに/あるいは利用可能なリソース(例えば、オブジェクトの近くの位置および/または別の位置)の情報の仕様および/またはベースに基づいて行うことができる。
[00135]リソース優先順位付けシステム720は、リソースの集合のそれぞれに関するリソースデータにアクセスすることができる。各リソースは、例えば、リソースデバイス745a、745bに対応することができる。リソースデータは、対応するリソースのリソース位置740a、740bを識別することができ、これらは各リソースデバイス745a、745bの位置を追跡または要求することに基づいて識別され得る。リソースデータは、さらに、1つまたは複数のリソースのそれぞれについて、リソースの情報の仕様および/またはベースが要求のコンテンツに対応するかどうか(および/またはその程度)(例えば、リソースはオブジェクトが利用可能な部門に関連付けられているかどうか)、リソースが要求を処理するために利用可能であるかどうか、通信チャネル制約、ならびに/あるいはリソースに関連する取得パラメータを識別することができる
[00136]リソース優先順位付けシステム720は、リソースデータを使用して、割り当てられるリソースの集合の部分集合(例えば、1つのリソース)を識別し、その要求に応答することができる。場合によっては、そのような割り当ては、リソースデバイスからの提案された割り当てのための確認応答通信を受信することを条件にすることができる。
[00137]場合によっては、リソース優先順位付けシステム720は、リソースデバイスとユーザデバイス(例えば、電話、仮想チャット、ビデオチャットまたはメッセージチャネル)との間に確立する通信チャネルのタイプを識別することもできる。この決定は、例えば、要求の優先順位、要求負荷、および/または識別されたリソースデバイスの位置(例えば、ユーザデバイスまたはオブジェクトに対する)に基づいて行うことができる。
[00138]場合によっては、リソース優先順位付けシステム720は、リソースが要求を自ら処理するかどうかを決定する。この決定は、通信チャネルタイプの任意の識別に関連してもよいし、別々であってもよい。例えば、2つの要求のそれぞれについてリソースとユーザとの間で電話チャネルを確立することが決定されてもよい。一方、これらの場合のうちの1つのみでは、ユーザ位置に行くように命令がリソースに送信されてもよい。リソースが要求を自ら処理する(例えば、処理する、またはそれに応答する)かどうかの決定は、例えば、要求の優先順位、要求負荷および/または識別されたリソースデバイスの位置(例えば、ユーザデバイスまたはオブジェクトに対して)に基づいてもよい。
[00139]次にリソース優先順位付けシステム720は、識別されたリソースデバイスとユーザデバイス710との間に通信チャネル(例えば、識別されたタイプの)を確立することができる。通信チャネルを確立することは、例えば、デバイス間の電話コール、ビデオチャット、仮想テキストチャットまたはメッセージセッションを開始することを含むことができる。一例では、リソース優先順位付けシステム720は、最初に、ユーザデバイス710および識別されたリソースデバイスのそれぞれと接続し、次いで、デバイス間の直接接続を開始する。
リソース優先順位付けシステム720は、ユーザと通信するリソースによって費やされる時間などの、要求後のデータをさらに取得することができる(例えば、確立された通信チャネルを介しておよび/または自ら)。一例では、リソース優先順位付けシステム720が、識別されたリソースがユーザ705と自ら費やした時間範囲を決定できるように、ユーザデバイス位置715および識別されたリソースデバイスの位置を監視することができる。位置データは、リソースがユーザ705に向かって移動している間にリソースを追跡するためにさらに使用することができ、そのような追跡データは、リソースがどこにあるか、リソースへの到達方法、および/またはリソースがユーザデバイス位置715に到着するのにどれくらいかかるかをユーザ705に通知するために使用することができる。
要求後のデータは、要求特有の取得データをさらに含んでもよく、要求特有の取得データは、特定のオブジェクトまたは要求された性能が得られたかどうか、そのオブジェクトの属性(例えば、価格)、アイテムの数、および/または閲覧されたオブジェクトの数(例えば、ユーザデバイス追跡に基づいて決定することができる)を示すことができる。要求特有の取得データは、オブジェクト725を識別する要求、リソースが要求を処理または取り扱ったかどうか、確立された通信チャネルのタイプ、要求に費やされたリソースの時間範囲、ならびに/あるいはリソース識別子および/またはタイプなどの、他の要求および/または要求処理変数と共に格納することができる。
デバイス間の通信は、1つまたは複数のデータ経路ならびに1つまたは複数のネットワーク750を介して送信することができる。1つまたは複数のネットワーク750のネットワークは、有線ネットワーク(例えば、ファイバ、イーサネット(登録商標)、電力線イーサネット(登録商標)、同軸ケーブルを介したイーサネット(登録商標)、デジタル信号線(DSL)など)、無線ネットワーク(例えば、Zigbee(登録商標)、Bluetooth(登録商標)、WiFi(登録商標)、IR、UWB、WiFi-Direct、BLE、セルラー、LTE(登録商標)(Long-Term Evolution)、WiMax(登録商標)など)、または有線ネットワークと無線ネットワークの組み合わせを含むことができる。
[00143]ユーザデバイス710ならびに/あるいはリソースデバイス745aおよび/または745bは、通信を送信および受信することができる電子デバイスを含むことができる。例示的なタイプのユーザおよび/またはリソースデバイスには、電話、スマートフォン、ラップトップ、および/またはコンピュータが含まれる。ユーザおよび/またはリソースデバイスは、場合によっては、デバイスに格納されたオペレーティングシステムを有することができ、デバイスに格納されたアプリケーションを有することができ、インターネットにアクセスすることができ、ならびに/あるいはデバイスの現在位置を特定するための1つもしくは複数のセンサおよび/またはモジュールを含むことができる。ユーザおよび/またはリソースデバイスは、例えば、デバイスGPS受信機を介してGPS信号を受信し処理することによって、1つまたは複数のWiFiアクセスポイントから無線信号強度を検出し処理することによって、最近のユーザ入力を処理する(例えば、郵便番号(すなわち、位置識別子)または建物名などの位置を識別する)ことによって、ならびに/あるいは位置を特定するクライアントデバイスからの信号を検出することによって、それらの位置を決定することができる。
[00144]場合によっては、位置は繰り返して(例えば、規則的な間隔で)決定され(ユーザおよび/またはリソースデバイスによって)、リソース優先順位付けシステム720に送信される。場合によっては、位置は条件付きで決定され、かつ/または送信される。例えば、ユーザデバイスからの位置の送信は、要求開始動作が最近(例えば、ある時間範囲内で)検出されたかどうか、提供される要求応答のタイプ(例えば、要求の直接処理で要求に応答しない場合には前述の位置送信)および/または要求に対する応答が完了したものとして識別されたかどうかを条件にすることができる。別の例として、リソースデバイスからの位置の送信は、リソースが稼働中であるかどうかを条件にしてもよい。以下にさらに説明するように、デバイス位置を含むリアルタイム(またはほぼリアルタイム)の情報を格納し、優先順位付けおよび選択の決定に使用することができる。
[00145]図8は、リソース優先順位付けシステム720の一実施形態のブロック図を示す。リソース優先順位付けシステム720は、1つまたは複数のデバイス(例えば、サーバー)を含むことができる。したがって、いくつかの実施形態では、リソース優先順位付けシステム720は、分散型システムであってもよい(例えば、複数のサーバーを異なる地理的位置に配置することができる)。いくつかの実施形態では、リソース優先順位付けシステム720は、集中型システムであってもよい(例えば、複数のサーバーが同じ位置に配置される)。場合によっては、リソース優先順位付けシステム720の一部または全部がクラウド内にある。
[00146]一般に、リソース優先順位付けシステム720は、複数のエンジンを含むエンジンサブシステム805を含むことができる。エンジンサブシステム805は、リソース優先順位付けシステム720内の1つまたは複数のプロセッサを含むことができ、または使用することができる。単一のデバイスがすべてのエンジンを含むことができ、あるいはリソース優先順位付けシステム720内の複数のデバイスが異なるエンジンおよび/またはエンジンの異なる部分を含むことができることが理解されよう。例えば、リソース優先順位付けシステム720の1つのデバイスは、ステータスモニタエンジン825を含むことができ、別のデバイスは、ステータスモニタエンジンを含まなくてもよいが、代わりにクエリエンジン855を含むことができる。
[00147]エンジンサブシステム805内の1つまたは複数のエンジンは、ストレージサブシステム810のデータストアからデータを検索し、それにデータを格納し、そのデータを更新し、および/またはそれからデータを削除することができる。ストレージサブシステム810は、例えば、オペレーティングシステム、1つまたは複数のアプリケーション、および/または1つもしくは複数のデータストアを含むことができ、このデータストアはリレーショナルデータストアを含むことができる。場合によっては、図示するデータストアの複数を1つのデータストアに結合することができる。場合によっては、図示するデータストアのうちの単一のものがデータストアの集合を含むことができる。
[00148]エンジンサブシステム805は、着信通信を受信し、通信を生成し、発信通信を送信するように構成されたインターフェースエンジン815を含むことができる。通信は、ユーザデバイスまたはリソースデバイスなどのデバイス820との間で、1つまたは複数のネットワーク750を介して受信および/または送信することができる。インターフェースエンジンは、アプリケーション層、トランスポート層、インターネット層および/またはリンク層などの、プロトコルスタック内の1つまたは複数の層内で動作することができる。場合によっては、インターフェースエンジン815は複数のサブエンジンを含み、各サブエンジンは異なる1つまたは複数のプロトコルスタックで動作することができる(例えば、上記で識別された4つの各層で動作する異なるインターフェースサブエンジンを有する)。
[00149]アプリケーション層で動作している間、インターフェースエンジン815は、通信に含める適切なデータを取得し、宛先を特定し、および/または通信伝送を開始することができる。さらに、インターフェースエンジン815は、着信通信からデータを抽出し、そのデータを用いて、例えば、プレゼンテーションを生成または変更したり、データストアを更新したり(例えば、データの一部または全部を含むように)、あるいは動作を開始する(例えば、デバイスの位置を検出する命令などの通信の命令によって)ことができる。
[00150]トランスポート層で動作している間、インターフェースエンジン815は、送信通信データの集合を解析し、1つもしくは複数のパケットを生成するためにヘッダ(例えば、1つまたは複数のポート番号を識別する)を追加し、および/または宛先アプリケーションを識別するために1つもしくは複数の着信パケットを処理し、パケットデータを結合し、および/またはデータを宛先アプリケーションにルーティングすることができる。
[00151]ネットワーク層で動作している間、インターフェースエンジン815は、送信デバイスの送信元IPアドレスおよび/または宛先デバイスの宛先IPアドレスを特定することができる。次にインターフェースエンジン815は、送信元IPアドレスおよび/または宛先IPアドレスを有する別のヘッダを生成することができる。
[00152]リンク層で動作している間、インターフェースエンジン815は、IPパケットにデータリンク層プロトコルデータユニット(PDU)を追加することができ、かつ/またはメッセージからPDUを除去することができる。インターフェースエンジン815はまた、通信をビットに変換して、通信のビットをいつどのように物理層に送信するかを制御することができ、および/またはビットのストリームを受信し、かつ/または送信が発生したかどうかを判定することができる。
[00153]場合によっては、インターフェースエンジン815によって受信される通信は、ユーザ、オブジェクト、またはリソースに関するデータを有する通信を含むことができる。例えば、通信は、リソースデバイス、ユーザデバイスおよび/またはオブジェクトの位置ならびに時間、リソース、リソースデバイス、ユーザ、またはユーザデバイスに関連する通信制約(例えば、優先通信チャネルまたは非優先通信チャネルのタイプに関する、および/または、要求の直接処理を受信する、または受信しない傾向に関する)、リアルタイム可用性(例えば、リソースの)、情報または仕様のベース(例えば、リソースに関連する部門、ならびに/あるいは特定の業界、クライアントおよび/または部門のためにリソースが実行している(例えば、働いている)時間範囲)を含むことができる。
[00154]ステータスエンジン825は、そのような通信を処理して、ストレージサブシステム810内の1つまたは複数のデータストアを更新することができる。例えば、オブジェクトデータストア830は、オブジェクトの識別子(例えば、SKU番号またはストア識別子)またはオブジェクトのタイプをその位置に関連付けるように更新することができる。別の例として、リソースデータストア835を更新して、リソースまたはリソースデバイスの識別子(例えば、リソース名、リソースIDまたはデバイスIPアドレス)、リソース仕様(例えば、情報のベース、部門、および/またはクライアントとの関連付け)を位置に関連付けることができる。さらに別の例として、ユーザデータストア(図示せず)を更新して、ユーザ識別子(例えば、名前またはデバイスID)を位置に関連付けることができる。位置は、例えば、地理的座標、住所、建物識別子、または建物内位置(例えば、通路番号)を含むことができる。
[00155]場合によっては、インターフェースエンジン815によって受信される通信は、ユーザデバイスに対する要求を含む。要求通信は、リソース通信のための明示的な要求に対応する入力を検出することに応答して、ユーザデバイスによって生成および/または送信されたものであってもよいし、あるいは自動的に生成された要求(例えば、ユーザデバイスが特定のウェブサイト、アプリケーションページ、またはオブジェクト情報を提示していることを検出することによる)を含んでもよい。要求通信は、位置(「要求位置」であって、例えば、位置を特定する位置データを含んでもよいし、ユーザによって特定された位置(例えば、ユーザによって入力された位置識別子)、またはユーザデバイスによってそのユーザデバイスの位置であると決定された位置を含んでもよい)、ユーザデバイスまたは対応するユーザの識別子、ならびに/あるいは他の要求コンテンツを含むデータを含むことができる。
[00156]位置検出エンジン840は、通信から位置データを抽出し、(場合によっては)位置データを別の位置データフォーマットに変換することができる(例えば、地理的座標を位置識別子に変換する、または地理的座標を建物内位置に変換する)。場合によっては、位置検出エンジン840は、データストアの更新を容易にして、その位置をユーザおよび/またはユーザデバイスの識別子と関連付けることができ、それは新しい要素をデータストアに追加すること、または既存の要素を変更すること(例えば、位置を特定するためにユーザまたはユーザデバイス識別子に関連する要素を変更すること)を含むことができる。
[00157]コンテンツ解析エンジン845は、要求通信におけるコンテンツを解析することができる。例えば、コンテンツ解析エンジン845は、特定のタイプのデータに対応するデータ要素を抽出することができる。そのようなデータタイプは、例えば、URLまたはアプリケーションページのアドレス(例えば、要求通信が生成または送信されたときにユーザデバイスに提示されるもの)、オブジェクト識別子、オブジェクトのタイプの識別子、および/または行われている要求のタイプ(例えば、好ましいまたは好ましくないタイプの通信チャネルの識別子)を含むことができる。
[00158]オブジェクトエンジン850は、コンテンツ解析エンジン845によって実行されたコンテンツ解析の結果と、位置検出エンジン840によって検出された抽出された(および場合によっては処理された)位置と、を使用して、オブジェクトおよび/またはオブジェクトタイプを識別し、ならびに/あるいはオブジェクトが地理的領域内に位置するかどうかを決定する。オブジェクトエンジン850は、例えば、クエリエンジン855との協調を介して1つまたは複数のデータストアに問い合わせることによって、そのような識別および/または決定を実行することができる。
[00159]場合によっては、オブジェクトエンジン850は、まず、1つまたは複数のオブジェクトのそれぞれの識別子を識別する。オブジェクト識別子は通信に含まれてもよいし、あるいは通信はオブジェクトタイプなどのより一般的な情報を含んでもよい。後者の場合、オブジェクトエンジン850は、オブジェクトデータストア830に問い合わせて(クエリエンジン855を介して)、識別されたタイプの1つまたは複数のオブジェクトを識別することができる。そのような動作は、例えば、要求通信に基づいて1つまたは複数のタグを識別し、タグに関連するオブジェクト識別子についてオブジェクトデータストア830を検索することを容易にすることを含むことができる。一例では、オブジェクトのオブジェクトデータストア830のクエリは、1つまたは複数の制約を含む。例えば、制約は、検索がポイント位置(例えば、ユーザデバイスの位置)から所定の距離内にあるオブジェクト位置に関連する所与のタイプのオブジェクトに対するものであることを示す地理的制約を含むことができる。
[00160]オブジェクトエンジン850は、(例えば、クエリエンジン855によって提出された同じまたは後続のクエリを介して)各識別されたオブジェクトに関連するオブジェクト位置を識別することもできる。オブジェクト位置は、例えば、オブジェクトの地理的座標、建物内位置、オブジェクトが位置する特定の建物の識別子、および/またはオブジェクトが位置する建物の位置を含むことができる。
[00161]オブジェクトエンジン850は、(例えば、クエリエンジン855によって提出された同じまたは後続のクエリを介して)オブジェクト名、オブジェクト属性、および/または仕様などの追加のオブジェクトデータを識別することもできる。
[00162]スケジューリングエンジン860は、オブジェクト識別子およびオブジェクト位置(例えば、場合によっては他のデータも)を使用して、要求を処理、取り扱い、または応答するためにリソースを割り当てるかどうか、どのリソースを割り当てるか、ならびに/あるいは要求の注意のモード(例えば、開始される通信チャネルのタイプ、および/または通信タイプが変更されることを示すタスクをスケジュールするかどうか)を決定することができる。これらの決定は、優先順位付け規則データストア865に格納された1つまたは複数の優先順位付け規則によって行うことができる。優先順位付け規則は、例えば、クライアント特有であり(例えば、クライアント入力に少なくとも部分的に基づいて設定される)、様々なオブジェクトタイプに特有であり、クライアント特有ではなく、オブジェクトタイプにわたって特有ではなく、動的で、学習され、および/または静的なものであってもよい。例えば、優先順位付け規則は、取得結果(例えば、オブジェクトに関して特定の結果が生じるかどうか、ユーザがオブジェクトに関連するかどうか、ユーザがオブジェクトへの排他的アクセスを取得するかどうか)を算出する技法を指定することができ、決定(例えば、取得結果がしきい値を上回った場合に要求を処理、取り扱い、または応答するためにローカルリソースを割り当てることの決定)をどのように行うかを指定することができる。決定は、要求負荷、要求時間、ユーザ位置、ユーザ特有のデータ、ユーザ設定データ、および/または要求を開始した動作などの1つまたは複数の他の要因にも依存することができる。
[00163]場合によっては、エンゲージメントの決定(要求を処理、取り扱い、または応答するためにリソースを割り当てるかどうか、どのリソースを割り当てるか、および/または要求注意のモード)は、2001年8月6日に出願された米国特許出願第09/922,753号、2004年11月3日に出願された米国特許出願第10/980,613号、および/または2012年3月6日に出願された米国特許出願第13/413,158号に記載されている比較解析に基づいて行うことができる。上記出願の各々は、その全体が参照により本明細書に組み込まれる。例えば、決定は、ユーザデバイスからのセッション情報に依存してもよい。別の例として、可能な決定の空間をサンプリングするために初期決定を行うことができ、様々な入力(例えば、ユーザデバイス特性、オブジェクト特性、位置特性、リソース割り当てなど)を1つまたは複数の取得パラメータに関連付けるためにモデルを確立することができるように、取得パラメータを追跡することができる。モデルを使用して、取得目標(例えば、高い取得率および/または値)を改善するために様々なリソースをいつ、どのように割り当てるかを示すことができる値を算出することができる。さらに別の例として、潜在構造に対する部分最小二乗投影(PLS)、主成分解析(PCA)、またはPLSとPCAとの組み合わせを使用して統計モデルを生成することができる。このモデルは、様々な入力(例えば、ユーザデバイス特性、オブジェクト特性、位置特性、リソース割り当てなど)を1つまたは複数のクラスにマッピングすることができる。クラスは、取得目標および/または推測された取得パラメータ(例えば、リソースが効果的に割り当てられるように)を改善するのに、リソース割り当てが有効であるかどうか、および/またはどのタイプのリソース割り当てが有効であるかと推測されるかを示すことができる。
[00164]1つの例示的な例では、スケジューリングエンジン860は、オブジェクト位置が要求位置からある距離内にあるかどうか、および/またはオブジェクト位置と要求位置の両方がある領域内(例えば、同じ建物内または同じ地理的領域内)にあるかどうかを判定する。そうでない場合には、スケジューリングエンジン860が、要求を処理(例えば、取り扱い)するためにリモートリソースを割り当てることを決定することができる。そうである場合には、スケジューリングエンジン860が、ローカルリソースを要求に割り当てることを決定することができる。ローカルリソースは、オブジェクト位置および/または要求位置の近くにあるものを含むことができる。
[00165]リソース割り当ては、リソースの仕様(例えば、要求に対応する仕様を有するリソースを識別するため)、リソースの可用性(例えば、時間範囲内で利用可能な、または要求を処理もしくは取り扱いすることが期待されるリソースを識別するため)、および/またはリソースの位置(例えば、オブジェクト位置または要求位置の近くのリソース位置に関連するリソースを識別するため)に基づいて重み付けすることができる。スケジューリングエンジン860は、リソース追跡エンジン870と通信して、オブジェクトおよび/またはオブジェクト位置に関連するリソースを識別し、ならびに/あるいはそれらのリソース(例えば、仕様および/または位置)に関する1つまたは複数の詳細を識別することができる。
[00166]場合によっては、スケジューリングエンジン860は、所与の要求通信に対して、1つまたは複数のリソース(例えば、特定の位置および/または仕様に関連する)のそれぞれに優先順位付け値を割り当てる。所与のリソースが利用可能で、オブジェクト位置または要求位置の近くにある場合、要求関連オブジェクトに関連する仕様を有する場合(例えば、オブジェクトが位置する建物内に位置する場合)、および/または特定の取得パラメータ(例えば、リソースがオブジェクトに関して特定の取得結果を容易にする可能性が高いことを示す)に関連する場合には、その値を改善する(例えば増加させる)ことができる。優先順位付け規則は、1つまたは複数の値の生成方法および/または評価方法を指定することができる。例えば、規則は、1つまたは複数のしきい値を含むことができ、リソース選択のタイプ(例えば、任意のリソースを要求に割り当てるかどうか、確立する通信チャネルのタイプ、および/または直接通信を提供するかどうか)が、任意の(またはいくつかの)値によってしきい値が超過したかどうか、および/またはどのしきい値が超過したかに依存することを示すことができる。別の例として、規則は、要求を処理または取り扱いするために、リソースの集合の中で最も高い優先順位付け値を有するリソースを選択(または条件付きで選択)することを示すことができる。場合によっては、ストレージサブシステム810内の1つまたは複数のまたはすべてのデータストアは、リアルタイムデータを含み、ならびに/あるいはリソース追跡エンジン870は、要求-応答決定を容易にするためにリアルタイムデータを(例えば、格納されたまたは要求されたデータに基づいて)評価することができる。
[00167]例えば、スケジューリングエンジン860は、特定の建物を、ユーザデバイスに近接し、かつオブジェクトが位置する可能性のある建物であると特定することができる。次にリソース追跡エンジン870は、任意のリソースがエンゲージメントに利用可能であるかどうかを決定することができ(例えば、クエリエンジン855を介してリソースデータストア835に問い合わせることによって)、またはオブジェクトに関連する情報を提供することができる。条件が満たされた場合(例えば、そのようなリソースのしきい値数が識別された場合)には、そのような各リソースの位置を識別して、スケジューリングエンジン860に送信することができる(スケジューリングエンジン860は、要求を処理するために、要求またはオブジェクト位置に最も近い識別されたリソースを特定することができる)。
[00168]別の例として、スケジューリングエンジン860は、特定の建物を、利用可能な(例えば、在庫がある)オブジェクトを有する最も近い建物であると特定することができる。次に、リソース追跡エンジン870は、建物内の各稼働中のリソースの情報のベースおよび位置を(例えば、クエリエンジン855を介してリソースデータストア835に問い合わせることによって)識別することができる。優先順位付け値は、情報のベースが要求に関連するオブジェクトに対応する程度、およびリソース位置とオブジェクト位置もしくは要求位置との間の距離に基づいて、リソースごとに設定することができる。
[00169]場合によっては、スケジューリングエンジン860は、単一のリソースを識別して、要求および確立する通信チャネルのタイプを処理する。次に、スケジューリングエンジン860は、リソース(または対応するリソースデバイス)の識別子、要求の識別子(および/またはユーザデバイス、ユーザ、オブジェクト、要求位置、および/またはオブジェクト位置)、および/または通信チャネルのタイプの識別子に関連するタスクを生成することができる。スケジューリングエンジン860は、タスクを含むようにタスクデータストア875を更新することを容易にすることができる。そのようなタスク生成および/または格納は、リソースが他のタスク割り当てに利用できない(例えば、タスクが完了したものとして識別されるまで、またはある時間範囲の間)ことを示す効果を有することができる。
[00170]場合によっては、タスク割り当て(特定のリソースが特定の要求を処理することを示す)は、リソースに関連するリソースデバイスからの確認メッセージを受信するか、またはリソースデバイスからの拒否通信を受信しないことを条件とする。例えば、最初にスケジューリングエンジン860は、要求に対して1つまたは複数のリソースを特定し、要求を処理するための招待、肯定応答もしくは拒否するオプション、および/または1つもしくは複数の要求関連の詳細(例えば、オブジェクト、オブジェクト位置、および/または要求位置)を含むプレゼンテーションを提示する命令を有する各リソースのリソースデバイスに通信を送信することを容易にすることができる。スケジューリングエンジン860は、要求が処理されることを確認するリソース(例えば、最初に応答するリソース)にタスクを割り当てることができる。スケジューリングエンジン860は、例えば、最初に特定したリソースデバイスのそれぞれからタスクを拒否する通信が受信された場合、および/またはある時間範囲内に確認の通信が受信されなかった場合には、要求に対して1つまたは複数の他のリソースを特定するように進行することができる。
[00171]場合によっては、要求に対してリソースを選択し、および/またはタスクを生成すると、リソース処理エンジン880は、タスクのリソース性能を容易にすることができる。例えば、要求処理エンジン880は、リソースデバイスに送信する、関連する要求データ(例えば、ユーザの名前、要求位置、オブジェクト、要求に含まれるコンテンツのタイプ、オブジェクト位置、および/またはリソースデバイスの位置からオブジェクト位置もしくは要求位置までの方向)を問い合わせることができる。
[00172]別の例として、要求処理エンジン880は、リソースに関連するリソースデバイスとユーザデバイスとの間の通信チャネル(例えば、識別されたタイプの)の確立を容易にすることができる。通信チャネルは、例えば、音声、テキストまたはデータチャネルを含むことができる。様々な例では、このチャネルは、リソースが要求を直接処理する場合であっても、確立されても、されなくてもよい。音声、データまたはテキストチャネルは、要求が処理されることの指示、リソースが利用可能になる前の予想される遅延、リソースへの到達方法に関する指示、チャネルを介して提供することができる予備的情報などの、情報を送信することを可能にすることができる。
[00173]要求処理エンジン880は、例えば、識別されたリソースデバイスおよびユーザデバイスの一方または両方とのハンドシェイクプロセスに参加することによって、通信チャネルの確立を容易にすることができる。そのような通信は、TLSハンドシェイクプロトコルなどのプロトコルによって構成することができる。ハンドシェイクプロセスは、3方向プロトコルを含むことができ、および/またはセッションを確立するように構成することができる。例示的な通信には、同期メッセージ、同期確認応答メッセージが含まれる。場合によっては、通信チャネルを確立することに関与する通信は、要求に関連するユーザデバイスおよび識別されたリソースに関連するリソースデバイスのそれぞれと交換される。
[00174]場合によっては、要求処理エンジン880は、ユーザデバイスへのステータス通信の送信をさらに容易にし、ユーザデバイスは、(例えば)割り当てられたリソース、割り当てられたリソースのリソース位置、ならびに/あるいはリソースが利用可能になる、および/または要求位置もしくはオブジェクト位置に到着する予定の時刻を識別することができる。
[00175]リソースが特定の位置(例えば、オブジェクトまたは要求位置)に移動する場合、あるいはユーザがリソース位置について警告される、または警告された場合には、リソース追跡エンジン870は、タスク割り当ての後に、割り当てられたリソースに関連するリソースデバイスの位置を追跡することができる。追跡は、例えば、リソースがタスクを実行しているかどうかを判断し、ユーザデバイスに更新されたリソース位置を提供し、および/またはタスクが完了したかどうかを判断することを容易にすることができる。例えば、リソース追跡エンジン870は、リソースデバイスとユーザデバイスとの間の確立された通信チャネルが動作可能である限り、および/またはリソースデバイスの位置がユーザデバイスからある距離(例えば、5フィート)内にある限りは、リソースがタスク(要求の直接処理を提供する)を実行していると判断することができる。
[00176]割り当てられたリソースが所定の時間範囲内に特定のタスクの実行を開始できなかったと判断された場合には、スケジューリングエンジン860は、異なるリソースを識別する要求に対する新しいタスク割り当てを生成することができる。タスクが実行されたと判断された場合には、要求処理エンジン880は、それに応じてタスクデータストア875の更新を容易にし、および/またはリソースデータストア835を更新して、リソースがアクセス可能であることを示す。
[00177]取得解析エンジン885は、「取得」(例えば、購入)が行われたかどうか、(例えば、要求を受信してからある時間範囲内に、タスク完了時からある時間範囲内に、および/またはユーザデバイスが地理的領域を離れる前に)、取得値、取得回数、要求に関連するオブジェクトが取得に含まれていたかどうかを示すことができる要求に関する取得データを検索または問い合わせすることができる。可能な取得は、特定の位置(例えば、建物)で、電話により、確立された通信チャネルを介して、またはウェブページ上で行われたものを含むことができる。
[00178]取得解析エンジン885は、個々の要求に関する取得データを含むように取得データストア890の更新を容易にすることができる(例えば、要求の識別子を、関連するオブジェクト、オブジェクトタイプ、クライアント、割り当てられたリソース、確立された通信チャネルのタイプ、要求の人手による処理が提供されたかどうか、要求-応答タスク時間範囲、取得結果、取得値、および/または取得時間のうちの1つまたは複数の識別子と関連付ける)。取得解析エンジン885は、そのような取得データを使用して、オブジェクトタイプ、オブジェクト、リソース、リソースタイプ(例えば、ローカルまたはリモート、情報または仕様の要求比較ベースを有するか否か)、タスクの時間範囲、確立された通信チャネルのタイプ、要求の直接的な促進が提供されたかどうか、ならびに/あるいはユーザ位置の詳細(例えば、ユーザが建物内にいるかオブジェクト位置から離れているか)に関する取得パラメータ(例えば、取得確率、平均または中央取得値、取得量など)を生成することができる。
[00179]取得パラメータを用いて、リソース、リソースタイプ、通信チャネルタイプ、および要求に対する直接的な決定を識別することができる。例えば、要求に応答してリソースを提供すべきかどうか、提供するリソースのタイプ、確立する通信チャネルのタイプ(もしあれば)、および/またはリソースが要求を直接処理するかどうか、についての判断は、様々な可能な判断に関連する取得パラメータに基づいて影響を受ける可能性がある。1つまたは複数の取得パラメータ(例えば、クライアントにより識別されたリソース、リソースタイプ、オブジェクト、オブジェクトタイプ、通信チャネルタイプおよび/または直接表示)をさらにクライアントに提示することができる。
[00180]図9は、ユーザデバイス705の一実施形態のブロック図である。一般に、ユーザデバイス705は、複数のエンジンを含むエンジンサブシステム905を含むことができる。エンジンサブシステム905は、ユーザデバイス705内の1つまたは複数のプロセッサを含むことができ、または使用することができる。エンジンサブシステム905内の1つまたは複数のエンジンは、ストレージサブシステムのデータストアからデータを検索し、それにデータを格納し、そのデータを更新し、および/またはそれからデータを削除することができる。ストレージサブシステムは、例えば、オペレーティングシステム、1つまたは複数のアプリケーション、および/または1つもしくは複数のデータストア(例えば、プロファイルデータストア910)を含むことができ、このデータストアはリレーショナルデータストアを含むことができる。
[00181]エンジンサブシステム905は、着信通信を受信し、通信を生成し、発信通信を送信するように構成されたインターフェースエンジン915を含むことができる。通信は、リソースデバイス745および/またはリソース優先順位付けシステム720などのデバイスとの間で、1つまたは複数のネットワーク750を介して受信および/または送信することができる。インターフェースエンジン915は、アプリケーション層、トランスポート層、インターネット層および/またはリンク層などの、プロトコルスタック内の1つまたは複数の層内で動作することができる。インターフェースエンジン915は、インターフェースエンジン815に関して説明したように、いくつかのまたは複数の特性、機能、および/または構成を含むことができる。
[00182]インターフェースエンジン915によって送信することができる1つのタイプの通信は、要求通信を含む。要求通信は、オブジェクト検出エンジン925によって識別されたオブジェクト、および少なくともいくつかの場合には、位置検出エンジン930によって検出された要求位置に基づいて、要求定義エンジン920によって生成することができる。要求位置は、例えば、地理的座標、住所、都市、郵便番号、建物、建物内の位置、位置、および/またはオブジェクトもしくは要求された性能に関連する位置を含むことができる。
[00183]オブジェクト検出エンジン925は、例えば、URLまたはアプリケーションページに(プレゼンテーションエンジン927によって生成され、ユーザデバイス705のディスプレイ上に提示されるプレゼンテーションを介して)提示されているオブジェクトおよび/またはオブジェクトのタイプに基づいて、オブジェクトタイプを識別することができる。例えば、ユーザデバイスが、クライアントZのウェブサイト上にオブジェクトタイプYのオブジェクトXを提示している場合には、要求通信は、オブジェクトX、オブジェクトタイプY、およびクライアントZのうちの1つまたは複数の各々の識別子を含むことができる。
[00184]位置検出エンジン930は、例えば、検出された入力(例えば、現在位置または「ホーム」位置を識別する)および/またはセンササブシステム935によって検出されたデータに基づいて、ユーザデバイスの位置を検出することができる。一例では、センササブシステム935は、1つもしくは複数のセンサまたは受信機のそれぞれからの信号を検出し、検出、信号の信号強度、および/または信号の受信時刻に基づいて位置を決定するように構成することができる。例えば、センササブシステム935は、複数のGPS衛星の各々から信号を受信することができ、各信号の伝送遅延を使用する三角測量技術に基づいて現在位置を決定することができるGPS受信機940を含むことができる。別の例として、センササブシステム935は、クライアントデバイスからの信号を検出し、ユーザデバイス705の位置をクライアントデバイス(例えば、信号内で識別することができる)の位置に近似させる受信機を含むことができる。さらに別の例として、センササブシステム935は、1つまたは複数のWiFiアクセススポットから信号を受信するように構成された受信機を含むことができ、1つもしくは複数の信号源、信号強度、および/または信号待ち時間に基づいて位置を決定することができる。さらに別の例として、センササブシステム935は、近接オブジェクトコード(例えば、バーコードまたはQRコード(登録商標))または他のオブジェクトデータを検出するスキャナ945を含むことができ、ユーザデバイス105の位置を、識別されたオブジェクトに関連するものとして決定することができる。
[00185]場合によっては、位置検出エンジン930は、スキャナ945によって受信されたデータに基づいてユーザデバイス705の位置を決定(例えば、推定)することができる。例えば、スキャナ945は、オブジェクトからコード、バーコードまたは他のデータを検出するように構成することができる。場合によっては、スキャンされたデータ自体が位置の識別を含む。場合によっては、スキャンされたデータを位置に関連付けることができる。スキャナ945は、例えば、カメラ、QRリーダおよび/またはレーザスキャナを含むことができる。
[00186]要求通信は、ユーザデバイス705および/または関連ユーザに関する情報をさらに含むことができる。例えば、プロファイルデータストア910は、例えば、ユーザの識別子、通信チャネルの制約もしくは制限(例えば、仮想チャット通信チャネルが使用されないことを示す)、人口統計、以前の取得、オブジェクトタイプの制約、以前の位置、および/またはホーム位置を含むことができる。要求通信は、プロファイルデータストア910からのデータを含むことができる。
[00187]場合によっては、ユーザデバイスが特定のURLまたはアプリケーションページを提示していることを検出すると、オブジェクトが特定され、要求が設定され、および/または要求が送信される。場合によっては、ユーザデバイスがリソースを提供する要求(および/またはリソース注意の特定のタイプ)に対応する入力が提供されたことが検出されると、オブジェクトが特定され、要求が設定され、および/または要求が送信される。例えば、URLまたはアプリケーションページは、(例えば、一般的にはオブジェクトについて、またはオブジェクトに関する特定のトピックに関して)ユーザがリソースとの通信を要求するために選択するためのオプションを含むことができる。
[00188]場合によっては、推論エンジン950による表示を生成すると、オブジェクトが特定され、要求が設定され、および/または要求が送信される。表示は、例えば、ユーザがリソースと通信することを望む(例えば、一般的にまたは特定の方法で)こと、および/またはユーザが特定のオブジェクトもしくはオブジェクトタイプに関する追加の情報を要求すること、を示すものを含むことができる。推論エンジン950は、例えば、ユーザデバイス705の位置(位置検出エンジン930によって検出された)、ユーザデバイス705が特定の地理的領域(例えば、建物内の半径2フィート)内にとどまっている時間の範囲、ユーザデバイス705上に提示されているウェブページまたはアプリケーションページ、ユーザがウェブページまたはアプリケーションページを閲覧していた時間の範囲ならびに/あるいはユーザによって入力されたクエリに基づいてそのような表示を生成することができる。例えば、ユーザが、少なくとも所定の時間範囲の間、オブジェクトに関連するウェブページを閲覧した後に建物への道案内を要求する場合には、ユーザはそのオブジェクトに関するリソースデバイスとの通信を望むと推測することができる。
[00189]インターフェースエンジン915が要求送信を送信した後に、インターフェースエンジン915は、要求に応答する通信を受信することができ、例えば、割り当てられたリソースおよび/またはデバイス、識別されたオブジェクト位置、リソース位置、ならびに通信チャネルのタイプのうちの1つまたは複数を識別することができる。要求に応答する通信は、さらに、または代わりに、プレゼンテーション(例えば、視覚的、音声的および/または触覚的なプレゼンテーション)を提示するための命令などの命令を含むこともできる。場合によっては、プレゼンテーションは、プレゼンテーションデータ(例えば、要求通信のデータに含まれ、および/またはそれから導出される)を含むことができ、リソース(例えば、名前および/または仕様によって)、リソース仕様、リソース位置、リソース位置への指示、決定されたリソース戻り時間、および/または予想される通信のタイプを識別することができる。
[00190]インターフェースエンジン915は、通信チャネルを確立する(例えば、1つまたは複数の発信信号と協調して)ために、1つまたは複数の入力信号をさらに受信することができる。信号は、例えば、電話、チャット、テキストまたはデータ通信チャネルを確立するように構成することができる。一例では、着信信号は電話コールを含む。一例では、1つまたは複数の着信信号は、データ接続を容易にする。
[00191]例えば、1つまたは複数の着信信号は、チャネルのパラメータ(例えば、情報転送速度、符号化アルファベットおよび/または割込み手順)を識別するためのハンドシェイク処理の一部であってもよい。そのような通信は、TLSハンドシェイクプロトコルなどのプロトコルによって構成することができる。ハンドシェイクプロセスは、3方向プロトコルを含むことができ、および/またはセッションを確立するように構成することができる。例示的な通信には、同期メッセージ、同期確認応答メッセージが含まれる。場合によっては、通信チャネルを確立することに関与する通信は、リソース優先順位付けシステム720と通信される。それにもかかわらず、一旦チャネルが確立されると、それはリソースデバイス745と通信するために使用することができる。場合によっては、通信チャネルを確立することに関与する通信は、リソースデバイス745と通信される。
[00192]図10は、リソースデバイス745の一実施形態のブロック図を示す。一般に、リソースデバイス745は、複数のエンジンを含むエンジンサブシステム905を含むことができる。エンジンサブシステム1005は、リソースデバイス745内の1つまたは複数のプロセッサを含むことができ、または使用することができる。エンジンサブシステム1005内の1つまたは複数のエンジンは、ストレージサブシステムのデータストアからデータを検索し、それにデータを格納し、そのデータを更新し、および/またはそれからデータを削除することができる。ストレージサブシステムは、例えば、オペレーティングシステム、1つまたは複数のアプリケーション、および/または1つもしくは複数のデータストア(例えば、プロファイルデータストア1010)を含むことができ、このデータストアはリレーショナルデータストアを含むことができる。
[00193]エンジンサブシステム1005は、着信通信を受信し、通信を生成し、発信通信を送信するように構成されたインターフェースエンジン1015を含むことができる。通信は、ユーザデバイス705および/またはリソース優先順位付けシステム720などのデバイスとの間で、1つまたは複数のネットワーク150を介して受信および/または送信することができる。インターフェースエンジン1015は、アプリケーション層、トランスポート層、インターネット層および/またはリンク層などの、プロトコルスタック内の1つまたは複数の層内で動作することができる。インターフェースエンジン1015は、インターフェースエンジン815に関して説明したように、いくつかのまたは複数の特性、機能、および/または構成を含むことができる。
[00194]インターフェースエンジン1015によって送信することができる1つのタイプの通信は、位置通信を含む。位置通信は、リソースデバイス745の位置およびリソースデバイス745(および/または対応するリソース)の識別子を含むことができる。位置通信は、時間および/または他の情報をさらに含むことができる。
[00195]この位置は、位置検出エンジン1030によって決定することができる。その位置は、例えば、地理的座標、住所、建物、建物内の位置、商業位置および/または商業位置内の位置を含むことができる。位置検出エンジン1030は、例えば、検出された入力(例えば、位置、割り当てられた位置を識別する)に基づいて、および/またはセンササブシステム1035によって検出されたデータに基づいて、リソースデバイス745の位置を検出することができる。
[00196]一例では、センササブシステム1035は、1つもしくは複数のセンサまたは受信機のそれぞれからの信号を検出し、検出、信号の信号強度、および/または信号の受信時刻に基づいて位置を決定するように構成することができる。例えば、センササブシステム1035は、複数のGPS衛星の各々から信号を受信することができ、各信号の伝送遅延を使用する三角測量技術に基づいて特定の位置を決定することができるGPS受信機1040を含むことができる。別の例として、センササブシステム1035は、クライアントデバイス(例えば、情報センターにあるような信号送信機またはコンピュータ)からの信号を検出し、リソースデバイス745の位置をクライアントデバイス(例えば、信号内で識別することができる)の位置に近似させる受信機を含むことができる。さらに別の例として、センササブシステム1035は、1つまたは複数のWiFiアクセススポットから信号を受信するように構成された受信機を含むことができ、1つもしくは複数の信号源、信号強度、および/または信号待ち時間に基づいて位置を決定することができる。さらに別の例として、センササブシステム1035は、近接オブジェクトコード(例えば、バーコードまたはQRコード(登録商標))または他のオブジェクトデータを検出するスキャナ1045を含むことができ、ユーザデバイス705の位置を、識別されたオブジェクトに関連するものとして決定することができる。
[00197]場合によっては、位置検出エンジン1030は、スキャナ1045によって受信されたデータに基づいて、ユーザデバイス705の位置を決定することができる。例えば、スキャナ1045は、オブジェクトからコード、バーコードまたは他のデータを検出するように構成することができる。場合によっては、スキャンされたデータ自体が位置の識別を含む。場合によっては、スキャンされたデータを位置に関連付けることができる。スキャナ1045は、例えば、カメラ、QRリーダおよび/またはレーザスキャナを含むことができる。
[00198]場合によっては、位置通信は、繰り返し、連続的に、および/または定期的に生成および/または送信されてもよい。例えば、1分ごとに位置を決定することができ、決定された位置との位置通信を1分ごとに決定することができる。場合によっては、位置は条件付きで決定され、および/または位置通信は条件付きで送信される。例えば、加速度計1048は、連続的または定期的に加速度の読み取り値を生成または取得することができる。しきい値を超える加速度が検出された場合に、位置検出エンジン1030が位置を決定することができる(例えば、それ以外の場合には決定することができない)。別の例として、位置検出エンジン1030が、リソースデバイス745が以前の位置決定に対して少なくともしきい値距離だけ移動したと判定した場合には(例えば、その場合に限って)、位置通信を送信することができる。
[00199]場合によっては、インターフェースエンジン1015は、タスク通信を受信する。タスク通信は、例えば、要求位置、オブジェクト、オブジェクト位置、通信チャネルのタイプ、および/または要求の直接処理を提供するかどうかなどのタスク(例えば、割り当てられたタスクまたは割り当てのために提供されたタスク)に関する1つまたは複数の詳細を識別することができる。したがって、例えば、タスク通信は、タスクが、オブジェクトに関する情報を要求しているユーザと通信するために領域10の要求位置に行くことを含むこと、ならびに、これらのオブジェクトが領域10および建物の正面エリアに位置していることを示すことができる。別の例として、リソースデバイスで受信されるタスク通信は、タスクがユーザデバイスとの音声通信リンクを使用して通信することを含むことを示すことができる。
[00200]タスク通信を受信すると、プレゼンテーションエンジン1027は、タスク(または提案されたタスク)に関する、および/またはタスク通信に含まれる1つまたは複数の詳細を(例えば、リソースデバイス745のディスプレイ上に)提示することができる。場合によっては、タスクエンジン1055は、タスク通信のデータに基づいて1つまたは複数の追加の情報(提示することができる)を決定する。例えば、タスクエンジン1055は、特定の位置に到達するのにかかる時間、タスク関与時間、および/または取得確率を算出することができる。別の例として、タスクエンジン1055は、要求位置、オブジェクト位置および/またはリソース位置を識別するためにマップ(例えば、建物の)を生成または修正することができる。
[00201]場合によっては、プレゼンテーションは、タスクを拒否するオプションおよび/またはタスクを肯定応答する(例えば、受け入れる)オプションなどの、1つまたは複数の選択可能なオプションを伴うことができる。そのようなオプションの選択を検出することにより、タスクエンジン1055は、選択された応答、ならびに、例えばリソースデバイス745、関連リソース、および/またはリソースデバイス745の位置を識別するタスク応答通信を生成することができる。インターフェースエンジン1015は、リソース優先順位付けシステム720へのタスク応答通信の送信を容易にすることができる。
[00202]タスクエンジン1055はまた、タスク(例えば、割り当てられている、および/または肯定応答されているもの)の性能を追跡することもできる。例えば、タスクエンジン1055は、タスクに対応する任意の宛先位置(例えば、要求位置またはオブジェクト位置)に対するリソースデバイス745の位置を追跡することができる。タスクエンジン1055はまた、宛先位置に到着するのにかかる時間、宛先位置で費やされた時間、リソースデバイス745が、タスクに関連するユーザデバイスおよび/またはオブジェクトからある距離内にあった時間、ならびに/あるいはタスク完了入力がリソースデバイス745で受信されるまでの時間などの、1つまたは複数の様々なタスク性能時間範囲を監視することができる。タスクエンジンは、タスクの実行中に訪れた1つまたは複数の他のオブジェクトなどの、他のタスク特性も追跡することができる(例えば、リソースデバイス745がユーザデバイスと共に新しいオブジェクトの位置に移動し、少なくともある時間範囲にわたって新しいオブジェクト位置に比較的固定されたままであることを検出したときに推論することができる)。
[00203]タスクエンジン1055は、追跡されたタスク変数の1つまたは複数に対応するタスクデータ通信を生成することができ、インターフェースエンジン1015は、リソース優先順位付けシステム720へのタスクデータ通信の送信を容易にすることができる。そのような変数は、リソース優先順位付けシステム720によって使用されて、後続のリソース選択(例えば、宛先位置に素早く到着する人へのリソース選択に重み付けするリソース選択)および/または要求-応答戦略(例えば、リソース供給がユーザに複数のオブジェクトを訪問させる可能性のあるオブジェクトに関連する要求に優先順位を付けるため)に影響を及ぼすことができる。リソースに重み付けするリソース選択は、他のリソースよりもそのリソースの選択を優先することに対応することができる。
[00204]インターフェースエンジン1015は、通信チャネルを確立する(例えば、1つまたは複数の発信信号と協調して)ために、1つまたは複数の入力信号をさらに受信することができる。そのような信号は、例えば、タスク割り当てまたは確認応答の後に受信することができる。信号は、例えば、電話、チャット、テキストまたはデータ通信チャネルを確立するように構成することができる。一例では、着信信号は電話コールを含む。一例では、1つまたは複数の着信信号は、データ接続を容易にする。
[00205]例えば、1つまたは複数の着信信号は、チャネルのパラメータ(例えば、情報転送速度、符号化アルファベットおよび/または割込み手順)を識別するためのハンドシェイク処理の一部であってもよい。そのような通信は、TLSハンドシェイクプロトコルなどのプロトコルによって構成することができる。ハンドシェイクプロセスは、3方向プロトコルを含むことができ、および/またはセッションを確立するように構成することができる。例示的な通信には、同期メッセージ、同期確認応答メッセージが含まれる。場合によっては、通信チャネルを確立することに関与する通信は、リソース優先順位付けシステム720と通信される。それにもかかわらず、一旦チャネルが確立されると、チャネルは、タスクに関連するユーザデバイス705と通信するために使用することができる。場合によっては、通信チャネルを確立することに関与する通信は、ユーザデバイス705と通信される。
[00206]タスクに応答して要求の直接処理が提供される場合であっても、通信チャネル(例えば、電話またはデータ通信チャネル)を確立することができ、これは、リソースがオブジェクトまたは要求位置に向かって移動している間、またはユーザがリソース位置に移動している間に、オブジェクトに関する質問をする機会をユーザに提供できるからである。チャネルはまた、リソースが宛先位置に向かって移動する際の進捗状況を伝えること、および/またはオブジェクト位置もしくはリソース位置に到着するためのユーザへの指示を提供することを可能にすることができる。場合によっては、要求の直接処理を提供するリソースは、確立された通信チャネルを介してユーザと通信するのと同じリソースである。場合によっては、異なるリソースは、情報を直接提供するリソースと比較して、通信チャネルを介して通信する。これにより、ユーザは、データチャネルを介して通信され、直接的なリソースの歩行を妨害しないようにすることができる。このような場合、リソースデバイスは、(例えば、リソース優先順位付けシステム720を介しても介さなくても、また、ユーザデバイスに接続されたものと同じチャネルを介しても介さなくても)接続することができ、その結果、要求に関連する情報を直接的なリソースに中継することができる。
[00207]可用性検出エンジン1060は、リソースデバイス745に対応するリソースがタスク割り当てに利用可能である(または利用可能になる)かどうかを判断することができる。可用性検出エンジン1060は、例えば、リソースデバイス745の位置(例えば、リソースデバイス745が建物内にある場合、および/または最新のタスク宛先位置からのしきい値距離を超える場合、および/またはユーザデバイスからのしきい値距離を超える場合に、可用性推論がサポートされ得る)、リソースデバイス745の移動(例えば、リソースデバイス745が最近の平均速度またはしきい値を下回る加速度を有する場合に、可用性推論がサポートされ得る)、ならびに/あるいは、リソースデバイス745で受信された信号(例えば、最近の要求に対応するユーザデバイスからの信号が検出されない場合、および/またはそのような信号の強度がしきい値を下回るか、またはしきい値を超える強度の減少を有する場合に、可用性推論がサポートされ得る)を評価することができる。可用性検出エンジン1060は、さらに、または代わりに、リソースデバイス745で検出された入力に基づいて可用性または利用不可能性を検出することができる。例えば、グラフィカルユーザインターフェースは、リソースがタスク開始、使用不可能、タスク完了、および/または可用性を示す入力をすることを可能にするディスプレイ上に(プレゼンテーションエンジン1027を介して)提示することができる。
[00208]場合によっては、可用性通信は、リソースが利用可能かどうか、および/または可用性またはリソース745が変更されたことを識別できるリソース優先順位付けシステム720に(インターフェースエンジン1015を介して)送信することができる。可用性通信は、リソースが利用可能であるかどうか、リソースデバイス745の識別子、および/または関連するリソース、および/または現在の時間として表示を含むことができる。このような可用性通信は、例えば、定期的、規則的および/または連続的な時間に生成および/または送信することができる。一例では、位置通信は可用性データを含むこともできる。
[00209]場合によっては、タスクエンジン1055は、可用性データを使用して、タスク通信で識別されたタスクを確認応答(例えば、受け入れ)するか、または拒否するかどうかを自動的に決定することができる。例えば、リソースが利用できないことが検出されると、タスクを自動的に拒否することができる。タスク確認は、様々な場合に、自動的に別の方法で確認応答されるか、またはタスクが確認応答されたリソースからの入力を受信したときにのみ確認応答することができる。
[00210]図8~図10に示すブロック図は例示的なものであることが理解されよう。追加の構成要素(例えば、1つまたは複数のプロセッサ、ディスプレイ、タッチスクリーン、キーボード、スピーカおよび/またはバッテリ)は、示されていなくてもよい。さらに、1つのデバイスおよび/またはシステムに示された構成要素は、追加的または代替的に別のデバイスに設けられてもよい。例えば、オブジェクトエンジン850は、ユーザデバイス705内に設けられてもよい。
[00211]図11は、取得パラメータを生成するためのプロセス1100の一実施形態のフローチャートを示す。プロセス1100は、リソース優先順位付けシステム720によって、その一部または全部を実行することができる。
[00212]プロセス1100は、インターフェースエンジン815が要求通信の集合を受信するブロック1105から始まる。要求通信の集合内の各要求は、ユーザデバイスから受信することができ、オブジェクトに関連付けることができ、および/または情報に対する要求に対応することができる。要求通信の集合内の各要求は、ある時間範囲の間に受信されてもよい。場合によっては、要求通信の集合内の要求通信を同時に受信する必要はない。
[00213]次に、ブロック1110~1125は、要求通信の集合内の各要求に対して実行することができる。ブロック1110で、オブジェクトエンジン850は、要求に対応するオブジェクトを識別する。この識別は、位置検出エンジン840によって決定および/または抽出される要求位置、ならびに/あるいはコンテンツ解析エンジン845によって識別される要求コンテンツ(および/またはその処理されたバージョン)などの、要求通信におけるデータを使用して実行することができる。場合によっては、例えば、オブジェクトは、要求通信で識別されたオブジェクト、オブジェクトタイプ、および/またはURLもしくはアプリケーションページに対応するものを含むことができる。場合によっては、オブジェクトを識別することは、(クエリエンジン855を介して)オブジェクトデータストア830のクエリを生成し実行することを含むことができる。
[00214]ブロック1110で、スケジューリングエンジン860は、要求に対する任意のリソース割り当てを識別する。例えば、スケジューリングエンジン860は、リソースが要求に割り当てられたか割り当てられているかを判断することができる。そうでない場合には、その特性はリソースが割り当てられていないことを示すことができる。そうである場合には、スケジューリングエンジン860は、例えば、割り当てられたリソースの仕様、割り当てられたリソースの位置、および/または割り当てられたリソースの位置を識別することができる。スケジューリングエンジン860は、リソースが通信チャネルを介して要求に関連するユーザと通信するかどうか(もしあれば、どのタイプのものか)、および/またはリソースがユーザ位置でユーザと通信するかどうかなどの、行われた割り当てのタイプをさらに識別することができる。場合によっては、識別は、タスクデータストア875からデータを検索することによって実行される。場合によっては、要求通信が割り当てのために評価されている際に、識別が行われる(例えば、リアルタイムで)。
[00215]ブロック1120で、取得解析エンジン885は、要求に関連する1つまたは複数の取得を検出する。例えば、ブロック1120は、要求時間からある時間範囲内におよび/または要求に関連する日に、ユーザが要求に関連するオブジェクト(例えば、特定のウェブサイトまたは建物)および/または要求に関連するオブジェクトタイプのオブジェクト(例えば、特定の建物)を取得したかどうかを検出することを含むことができる。ブロック1120は、さらに、または代わりに、所与の建物および/またはある時間範囲において要求に関連するユーザによって行われた取得におけるアイテムの属性および/または数を検出することを含むことができる。場合によっては、取得データストア890からデータを検索することによって検出が実行される。場合によっては、取得データが検出される際に(例えば、リアルタイムで)検出が行われる。
[00216]ブロック1125では、オブジェクト特性、割り当て特性および取得結果がデータストア(例えば、取得データストア890)に関連付けられる。データは、例えば、要求時間、要求のタイプ、ユーザ特性、クライアント(例えば、建物に関連するクライアントなどのストア)識別子、および/または他の情報をさらに伴ってもよい。
[00217]ブロック1130で、取得解析エンジン885は、関連付けに基づいて1つまたは複数の取得パラメータを識別する。例えば、取得解析エンジン885は、モデルおよび/またはフィッティング技術を使用して、どの特性がどのような状況においておよび/またはどの程度まで取得結果に影響を与えるかを示す1つまたは複数のモデル変数および/またはフィッティング変数を生成することができる。例えば、線形、非線形、ロジスティック、回帰、サポートベクトルマシン、および/またはニューラルネットワークモデルを使用することができる。別の例として、取得パラメータは、1つまたは複数の変数のそれぞれに関連して生成されてもよい。例えば、取得パラメータは、そのリソースに割り当てられたタスクが他のリソースへのタスク割り当て(例えば、他の要因について制御する)に対して肯定的な取得結果につながる可能性の程度を示す単一のリソースに対して生成されてもよい。
[00218]図12は、要求通信に応答するリソース割り当てを容易にするためのプロセス1200の一実施形態のフローチャートを示す。プロセス1200は、リソース優先順位付けシステム720によって、その一部または全部を実行することができる。
[00219]プロセス1200はブロック1205で開始し、インターフェースエンジン815はユーザデバイスから要求通信を受信する。ブロック1205では、位置検出エンジン840は、要求通信のための要求位置を識別する。例えば、位置検出エンジン840は、オブジェクト識別子、オブジェクトタイプ識別子、オブジェクト名、オブジェクト関連用語、オブジェクトタグ、URLアドレス、アプリケーションページ識別子、および/またはクライアント識別子を含む要求通信からデータを抽出することができる。そのようなデータは、例えば、ヘッダ、メタデータまたはメッセージの内容であってもよい。
[00220]ブロック1215では、オブジェクトエンジン850は、要求に対応するオブジェクトまたはオブジェクトタイプを識別する。一例では、ブロック1215は、要求通信からオブジェクトまたはオブジェクトタイプの識別子を抽出することを含む。一例では、ブロック1215は、1つまたは複数の他のデータ(例えば、オブジェクト識別子、オブジェクトタイプ識別子および/またはオブジェクトタイプ)と関連する抽出されたデータ(例えば、クエリ用語)を含む。一例では、ブロック1215は、要求コンテンツ(例えば、オブジェクト識別子に基づいてオブジェクトタイプを識別する)に対する特定度を変更することを含む。
[00221]ブロック1220で、オブジェクトエンジン850は、オブジェクトまたはオブジェクトタイプに対応する1つまたは複数の位置および1つまたは複数の取得パラメータを識別する。場合によっては、オブジェクトデータストア830は、オブジェクト識別子、タイプ、タグ、名前、および/またはモデル識別子を1つまたは複数の位置に関連付けることができる。したがって、クエリ(例えば、オブジェクト識別子、オブジェクトタイプまたはオブジェクトタグの識別子を有する)は、識別されたオブジェクトまたはオブジェクトタイプに関連する1つまたは複数の位置を識別するように開始することができる(例えば、さらにクエリエンジン855を介して実行される)。場合によっては、識別されたオブジェクトまたはオブジェクトタイプに関連するすべてのオブジェクト位置が識別される。場合によっては、1つまたは複数の追加の制約が強制される。例えば、要求はオブジェクト(またはオブジェクトタイプ)Xに関連することができ、オブジェクトデータストア830は、オブジェクト(またはオブジェクトタイプ)Xが15のオブジェクト位置に関連付けられていることを示すことができる。このようなオブジェクト位置はすべて返されてもよく、またはクエリ制約に従うオブジェクト位置(例えば、要求位置からある距離内にあるオブジェクト位置)が返されてもよい。
[00222]取得パラメータは、例えば、取得データストア890のクエリを開始することによって識別することができる。クエリの結果は、例えば、1つまたは複数の平均、中央値、範囲、確率、従属変数および/またはモデル変数の重みを含むことができる。したがって、場合によっては、クエリ結果は、どのタイプのリソース割り当てが、オブジェクトもしくはオブジェクトタイプおよび/または1つもしくは複数の他の要求に関連する詳細に関連するので、所望の取得結果を生成する可能性が高いかに関する表示を含むことができる。例えば、取得結果は、要求に関連する変数を使用してモデル出力を生成するために使用される場合に、取得確率は、要求の直接処理が提供される場合には90%であり、通信チャネルのサポートのみが提供されている場合には40%であり、要求の処理がない場合には30%であることを示すモデル変数を含むことができる。
[00223]ブロック1225で、スケジューリングエンジン860は、要求通信に関連付ける可能性のある1つまたは複数のリソースを識別する。例えば、1つまたは複数のリソースは、オブジェクト(例えば、オブジェクトが位置する建物)またはオブジェクトタイプのオブジェクトを含むクライアント位置に関連する1つまたは複数のリソース、オブジェクトまたはオブジェクトタイプのオブジェクトを含む特定のクライアント位置に関連する1つまたは複数のリモートリソース(例えば、コールセンターにおける)、ある時間範囲の間に要求確認応答のために一般に利用可能であると決定されたリソース、ならびに/あるいはオブジェクトまたはオブジェクトタイプに対応する仕様を有するリソースを含むことができる。このようなリソースは、例えば、リソースデータストア835のクエリを容易にすることによって識別することができる。場合によっては、1つまたは複数のリソースは、様々な位置の駐留に関連するリソースを含むことができる。例えば、リソースは、異なる国、都市、および/または建物に位置していてもよい。
[00224]ブロック1230で、リソース追跡エンジン870は、1つまたは複数のリソースのうちの少なくとも1つ(例えば、またはそれぞれ)について、可用性、特性および位置を識別する。場合によっては、可用性は、リソースデータストア835のクエリを介して判断される。例えば、リソース追跡エンジン870は、着信する可用性通信に基づいて示された可用性を表すようにリソースデータストア835を管理することができ、クエリは、1つまたは複数の特定のリソースの可用性ステータスを識別するか、あるいは(例えば、1つまたは複数の特定のリソースの中で)任意の利用可能なリソースを識別するためのものであってもよい。
[00225]特性は、例えば、リソースが、オブジェクトもしくはオブジェクトタイプに関連する仕様、および/またはリソースに関連する1つもしくは複数の仕様を有するかどうかを含むことができる。特性は、リソースデータストア835のクエリを介して識別することができる。例えば、建物内の部門Xにリソースを割り当てることができ、部門XがオブジェクトA~Hを物理的に格納することができる。要求がオブジェクトDを識別した場合に、リソースの部門Xとの関連付けは、オブジェクトに関する情報のベースおよび/または仕様を有することを示すことができる。
[00226]その位置は、例えば、リソースデータストア835に問い合わせることによって決定することができる。例えば、リソース追跡エンジン870は、位置通信を受信すると、リソースおよび/またはリソースデバイスに関連するリソース位置を更新するために、リソースデータストア835を更新することができる。別の例として、リソース追跡エンジン870は、少なくとも1つのリソースのそれぞれへ位置要求を送信することを容易にし、リソース位置を応答に基づいて識別することができる。
[00227]ブロック1235で、スケジューリングエンジン860は、1つまたは複数のリソースのそれぞれについて、1つまたは複数の要求-応答タスク時間範囲を算出または設定する。1つまたは複数の要求-応答時間範囲は、例えば、通信チャネルを介してユーザと通信した時間、要求に関連する宛先位置に到達するまでの時間、ユーザと直接通信するのに費やされた時間、要求に関連する位置(例えば、目的地位置または要求処理中に移動された目的地)からベース位置まで移動するまでの時間、ならびに/あるいは、これらの時間のうちの1つまたは複数またはすべての組み合わせを含むことができる。
[00228]計算は、リソース位置とオブジェクトの位置に基づくことができ、さらにまたは代わりに、過去の要求処理データ(例えば、所与のリソース、リソースタイプ、直接の性質、通信チャネルタイプ、オブジェクト、オブジェクトタイプ、および/またはリソース仕様に関する)に基づいてもよい。
[00229]ブロック1240で、要求処理エンジン880は、要求処理動作を決定する。要求処理動作を決定することは、例えば、要求を処理するためにリソースを割り当てるかどうかを決定すること、要求を処理するためにローカルまたはリモートリソースを割り当てるかどうかを決定すること、リソースが要求を少なくとも部分的に直接処理するかどうかを決定すること、リソースが少なくとも部分的に通信チャネルを介して要求を処理するかどうかを決定すること、通信チャネルのタイプを決定すること、および/または要求を処理するためのリソースを決定することを含むことができる。
[00230]一例では、この決定は、オブジェクトに対応する取得パラメータを解析することを含む。例えば、取得確率および/または取得値が低く、リソース負荷が高い場合には、要求を処理するリソースがないこと、リモートリソースが要求を処理すること、直接処理が提供されないこと、および/または高スループットの通信チャネル(例えば、電話チャネルとは対照的な仮想チャネル)が使用されることを決定することができる。そのような決定は、1つまたは複数の絶対または相対しきい値に依存することができる。
[00231]一例では、要求処理動作を決定することは、要求の少なくとも一部を処理するためにリソースを決定することを含む。このリソース決定は、要求に関連する値を解析することを含むことができる。一例では、優先順位付け値は、1つまたは複数のリソースのそれぞれに関連付けられる。所与のリソースが利用可能であって、オブジェクト位置または要求位置に近接して位置する場合、特定の要求-応答タスク時間範囲に関連付けられている場合、要求に関連するオブジェクトに関連するバックグラウンド(例えば、オブジェクトを格納する建物に位置する)を有する場合、ならびに/あるいは、特定の取得パラメータ(例えば、リソースが特定のイベントを容易にする可能性が高いことを示す)に関連付けられている場合に、その値を改善する(例えば、増加させる)ことができる。この値は、優先順位付け規則に基づいて決定することができる。
[00232]リソースを決定することは、しきい値および/または最高値(または所定のまたは動的に決定された数の最高値の間の値)を超える値を有するリソースを決定することを含むことができる。場合によっては、タスク通信は、決定されたリソースのリソースデバイスに送信され、リソースデバイスは、タスク性能を確認応答および/または拒否する機会をリソースに提供することができる。例えば、タスク通信は、複数のリソースデバイス(例えば、より高い値の集合に関連するもの)に送信することができ、最初に応答するものにタスクを割り当てることができる。
[00233]タスクの詳細は、タスク通信を介して割り当てられたユーザデバイスに伝達することができる。タスクの詳細は、例えば、ユーザに関するデータ、オブジェクトもしくはオブジェクトタイプの識別子、オブジェクト位置、要求位置、要求のタイプ(例えば、求められる情報)、および/またはリソースがユーザと通信する方法を含むことができる。
[00234]場合によっては、(例えば、要求が少なくとも部分的にリソースによって応答されることが決定された場合に)、要求処理エンジン880は、ブロック1245で、識別されたリソースと要求に関連するユーザとの間の直接通信を促進する。この促進は、例えば、リソースデバイスとユーザデバイスとの間に通信チャネルを確立すること、リソースの位置をユーザのデバイスに送信すること、および/またはユーザの位置をリソースのデバイスに送信することを含むことができる。
[00235]図13は、一実施形態による要求処理に関連する対話環境1300を示す。環境1300は、少なくとも領域1395A~C(例えば、通路)を有する建物1396(例えば、店舗)を含む。ユーザ1345は領域1395Aにあり、リソース1305Bは領域1395Bにあり、リソース1305Aは領域1395Cにある。オブジェクト1350は領域1395Cにある。この例では、ユーザおよびユーザデバイスは、単一の構成要素1345として示されている。本明細書で論じるように、1つまたは複数のセンサを使用して、ユーザ、提供することができるリソース、および問い合わせの主題に関する情報を提供することができる。
[00236]図13に示す例では、ユーザ1345(例えば、建物1396に位置するリソースからの情報の要求元)は、建物1396で利用可能な特定のオブジェクトタイプに関する情報を要求する。リソース1305A~Bは、オブジェクトに関する情報を提供することができる建物内のエージェントである(例えば、それらはオブジェクトに関する特定の情報を提供するためのリソースであってもよい)。一実施形態では、リソース1305A~Bによってユーザに提供することができる1つのタイプのサポートは、異なるタイプのオブジェクト(例えば、容量、利用可能な色、サイズ、利用可能な要求された性能文書、およびオブジェクトに関する他の適切な情報)に関する特定の情報を提供することができるということである。
[00237]この実施形態では、オブジェクト位置1390は、建物1395内のオブジェクト1350(例えば、製品)の位置である。図13では、ユーザ1345に関連するユーザデバイス、およびリソース1305A~Bによって使用されるリソースデバイスは、無線アクセスポイント1379を使用してネットワークに結合することができる。いくつかの実施形態では、無線アクセスポイント1379は、WiFi(IEEE802.11ファミリ標準)、Bluetooth(登録商標)(Bluetooth(登録商標) SIG、Inc.によって公表された標準のファミリ)、BLE、近距離通信(ISO/IEC18092規格などを実現する)または任意の他の適切な通信プロトコルなどの、無線通信の1つまたは複数のタイプをサポートするように構成される。
[00238]図13に示すように、ユーザ1345およびリソース1305A~Bの位置は建物1396の内部にある。図13に示す項目(例えば、ユーザ1345とリソース1305A~Bの相対位置)は、上述したリアルタイムのリソース情報としてコンポーネントによって格納、保持、および/または使用される情報の一部を表す。いくつかの実施形態では、屋内近接システム1399を使用することにより、より高いレベルの位置精度を屋内で達成することができる。屋内近接システムの一例は、カリフォルニア州クパチーノのアップル社のIBEACON(登録商標)検出技術を含むことができる。他の技術も使用できることが理解されよう。屋内近接システム1399は、ユーザ1345によって保持されるユーザデバイスと、リソース1305A~Bによって使用されるリソースデバイスと、を追跡することができる。一実施形態では、オブジェクト1390は、屋内近接システム1399によって追跡することもでき、オブジェクト位置1390は、追加の精度に基づいて識別することができる。
[00239]一例では、ユーザ(例えば、ユーザ1345)は、建物1396で上記の特定のオブジェクト(例えば、冷蔵庫)を探している。オブジェクトを見つけることができない場合、ユーザ1345は、ユーザデバイスを使用してオブジェクトに関する追加情報を得る。ユーザデバイス上で動作するデバイスアプリケーションの一実施形態は、屋内近接センサ1399を使用して領域1395C(ユーザ位置1380)内のユーザ1345を探し出し、ユーザ1345に、情報が必要とされるオブジェクトに関するより多くの情報を要求するオプションを提供する。ユーザ1345は、より多くの情報のためのオプションを選択することができ、要求通信をリソース優先順位付けシステム(例えばリソース優先順位付けシステム720)に送信することができ、要求を処理することができる。
[00240]この例では、リソース優先順位付けシステム720は、オブジェクト位置1390を要求通信に関連するものとして識別する。図13には示していないが、建物1396内の他のオブジェクト位置が存在する場合があり(例えば、アクセス不能な保管室、保管棚上の高さ、または他の同様のアクセス不能な状況)、どの位置を要求通信に関連付けるかを決定するために、異なる要因を評価することができる。例えば、ユーザ1345の近くに位置し、建物領域内にあり、および/または少なくともいくつかのリソースに近い位置は、他の位置に対して優先的に識別することができる。
[00241]この例では、オブジェクト位置1390が選択されると、主題に精通した利用可能なリソースを識別し、優先順位を付けることができる。この例では、リソース1305A~Bは、近くのオブジェクト位置1390であり、かつオブジェクト1390に精通している。リソース優先順位付けシステム720は、リソースの識別子に関連してリソースデータストアに格納されたバックグラウンド情報(例えば、リソース経験、要求された性能熟練度、または他の適切なバックグラウンド情報)、ならびにリアルタイム(またはリアルタイムに近い)情報(例えば、オブジェクト1350からのリソース1305A~Bのそれぞれの距離、オブジェクト1350のアクセス可能性、または他の適切なリアルタイム情報などのリアルタイム情報)に基づいてリソース1305A~Bを優先順位付けすることができる。この例では、少なくとも、オブジェクト1350およびリソース1305Aが同じ領域1395Cにあり、リソース1305Aがオブジェクト1350により近いので、リソース1305Aはリソース1305Bよりも高い優先順位を付けることができる。この優先順位付けに基づいて、要求を処理するためにリソース1305Aを識別することができ、この選択は、リソース1305Aとユーザ1345との間の直接通信チャネルの確立を容易にする。いくつかの実施形態では、リソース1305Aとユーザ1345との間の通信に加えて、領域1395Aからオブジェクト位置1390への移動を案内するための指示が生成され、ユーザ1345に送信される。これらの指示は、オブジェクト1350の領域1395Cの位置のユーザ1345への通知などの、異なる形態で来てもよい。
[00242]環境1300は、図示したもの以外の構成要素を有してもよいことを理解されたい。さらに、図に示す実施形態は、本発明の実施形態を組み込むことができる環境の一例に過ぎない。いくつかの他の実施形態では、環境1300は、図に示しているより多くのまたはより少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または構成要素の異なる構成または配置を有してもよい。
[00243]図14は、一実施形態による要求処理に関連する対話環境1400のブロック図である。環境1400は、建物1496内のオブジェクト1450およびリソース1405を含む。ユーザ1445はユーザ位置1480にいるものとして識別され、建物1496はオブジェクト位置1490内にあるものとして識別される。この例では、ユーザ位置1480とオブジェクト位置1490の両方が地域1495内にある。
[00244]一例では、図14に示すように、ユーザ1445は、建物1496で提供される要求された性能に関するより多くの情報を必要とする。この例では、リソース1405A~Bは、要求された性能に関する情報を提供することができ、または要求された性能を提供することができるエージェントである。この例では、建物1496がオブジェクトである。この例では、ユーザ1445は、建物1496と同じ地域1495にある。
[00245]本明細書で使用するように、地域は、地理的領域またはユーザ1445によってアクセス可能な他の適切な位置を含むことができる。本明細書で論じられる他の実施形態と同様に、ユーザ1445は、この実施形態で優先順位付けされた「建物内」リソース(例えば、リソース1405A~B)の指示を受信することができるが、追加のタイプのリソースも図14に示す例で利用可能である。この実施形態では、コールセンター1485は、大量の電子通信(例えば、電話、電子メール、チャット、および他の適切なタイプの電子通信)を処理するために設定されたオフィスである。例えば、コールセンター1480内のコールセンターリソース1485は、地理的に多様なエリアのユーザからの通信を受信することができる。コールセンターは、通信リンクを介して(例えば、電話で)問い合わせに応答するタスクを与えられたリソースにリンクすることができる。
[00246]この例では、リソース優先順位付けシステムは、オブジェクト位置1490を、ユーザ1445に要求された情報を提供するリソースを有する位置として識別するが、さらに、コールセンター1480は、ユーザ1445の問い合わせに応答できるリソースを有する位置としても識別される。場合によっては、リソース1405A、1405Bおよび1485のうちのどれが利用可能であるか(またはある時間範囲内で利用可能である可能性が高いか)を最初に識別することができ、次いで、各利用可能なリソースに優先順位付け値を割り当てることができる(例えば、リソースがユーザ位置1480と同じ地域にあるかどうか、要求主題に関連する熟練度、および/またはリソースに関連する取得パラメータに基づいて)。一例では、最も高い優先順位付け値を有するリソースに要求を割り当てることができる。別の例では、しきい値を超える優先順位付け値を有する各リソースには、リソースが要求割り当てを確認応答することを可能にする通知を提供することができ、最初に応答するものが割り当てを受信することができる。場合によっては、割り当ては、(および/またはいくつかの)他の要求がすぐに来るかどうかに関する決定をさらに条件とする。例えば、他の取得パラメータと関連する別の要求通信が、その要求がまだ処理中であるときに受信されるという決定に起因して、最も高い優先順位付け値を有するリソースに要求が割り当てられないことが決定されてもよい。
[00247]環境1400は、図示したもの以外の構成要素を有してもよいことを理解されたい。さらに、図に示す実施形態は、本発明の実施形態を組み込むことができる環境の一例に過ぎない。いくつかの他の実施形態では、環境1400は、図に示しているより多くのまたはより少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または構成要素の異なる構成または配置を有してもよい。
[00248]図15は、一実施形態による要求処理に関連する対話環境1500のブロック図である。環境1500は、ユーザ1545、ユーザデバイス1540、リソース優先順位付けシステム1520A~B、リソース1505A~D、およびオブジェクト1550A~Bを含む。リソース優先順位付けシステム1520Aは、ネットワーク1570およびデータ経路1574、1576を介して、オブジェクト位置1590A~1590Cのデバイスおよび/またはシステムに結合される。ユーザデバイス1540は、データ経路1572を使用してネットワーク1570に結合される。
[00249]1つの例示的な例では、ユーザ1545は、住宅(例えば、ユーザ位置980)にいる。ユーザ1545は、特定のクライアントによって提供されている特定のオブジェクトに関するURLにアクセスすることができる。URLへのアクセスを検出すると、ユーザデバイス1540は、クライアント、オブジェクト、ユーザ位置およびユーザデバイス識別子を識別する要求通信を生成して送信することができる。
[00250]リソース1505A~Dは、オブジェクトを提供するクライアントのエージェントであり、これらのリソースは、このオブジェクトに関する情報を提供する(例えば、より多くの情報を提供する)ことができる。リソース1505A~1505Dによってユーザ1545に提供することができる1つのタイプのサポートは、異なるタイプのオブジェクトに関する特定の情報(例えば、サイズ、特徴、利用可能な色、可用性、属性、要求された性能、および/またはオブジェクトに関する他の適切な情報)を提供している。この例では、特定のオブジェクトはオブジェクト1550A~Bである。この例では、オブジェクト位置1590A~Cの各々は特定のエンティティのうちの1つである。
[00251]この実施形態では、追加のリソース優先順位付けシステム1520Bがオブジェクト位置1590Cに示されている。この実施形態では、リソース優先順位付けシステム1520Bは、オブジェクト位置1590Cに配置される(例えば、サーバー、リンクされたコンピューティングデバイス、または他の適切なシステムインストールオプションにインストールされた構成要素)。異なる実施形態は、2つ以上のリソース優先順位付けシステム1520A~Bを有してもよく、これらは異なる位置に配置され、異なるエンティティによって制御されてもよいことを理解されたい。例えば、リソース優先順位付けシステム1520Aは、実施形態を用いて要求された性能を企業に提供するクライアントによって操作される。リソース優先順位付けシステム(例えば、リソース優先順位付けシステム1520B)は、オブジェクト位置1590A~Cの企業によっても操作することができ、本明細書に記載した実施形態を使用して要求された性能を提供することができる。
[00252]複数のオブジェクト位置1590A~Cからリソースを評価するリソース優先順位付けシステム1520A~Bの一例を図15に示す。この例では、地理的位置(ユーザ位置1580)にいるユーザ1545は、利用可能な異なるオブジェクト位置1590A~Cを認識していない可能性がある。ユーザ1545にリソースを提供するために、リソース優先順位付けシステム1520Aは、異なる位置で利用可能なリソースの差異を評価することができる。
[00253]いくつかの実施形態は、オブジェクト位置1590A~Cを識別し、オブジェクト位置の中で利用可能なリソースを識別し、これらの識別されたリソース1590A~Dに優先順位を付けることができる。オブジェクト位置1590A~Cは、異なる特性(例えば、各位置で利用可能なリソース1505A~Dの数、または他の適切な特性)を有することができる。例えば、オブジェクト位置1590Cにはオブジェクトがない。いくつかの実施形態では、可用性レベルは、リソース位置選択に影響を及ぼすことができる別の要因である(例えば、リソース位置選択エンジンおよび/またはリソース優先順位付けシステムによって)。
[00254]オブジェクト位置1590Cはまた、オブジェクト位置1590A~Bよりもより多くの利用可能なリソース(例えば、リソース1505C~D)を有する。ここでの説明を前提として、本明細書で論じた選択および優先順位付け要因の変形例、ならびに議論されない他の使用可能な要因を、本明細書で論じる実施形態の範囲および趣旨の範囲内で使用できることが理解されよう。
[00255]一例では、少なくともリソース1505A~Bが利用可能なそれぞれのオブジェクト1550A~B(オブジェクト位置1590A~B)を有する位置にあるので、リソース1505A~Bはリソース1505C~Dよりも高い優先順位を付けることができる。この例を続けると、少なくともオブジェクト位置1590Aがオブジェクト位置1590Bよりもユーザ位置1580に近いので、リソース1505Aはリソース1505Bよりも高い優先順位を付けることができる。この優先順位付けに基づいて、リソース優先順位付けシステム1520A~Bの一方または両方がリソース1505Aを選択することができ、この選択は、リソース1505Aとユーザ1545との間の直接通信チャネルを容易にする。
[00256]環境1500は、図示したもの以外の構成要素を有してもよいことを理解されたい。さらに、図に示す実施形態は、本発明の実施形態を組み込むことができる環境の一例に過ぎない。いくつかの他の実施形態では、環境1500は、図に示しているより多くのまたはより少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または構成要素の異なる構成または配置を有してもよい。
[00257]図16および図17は、本発明の一実施形態による例示的なデバイスインターフェースを示す図である。図16に示すように、環境1600は、接続1672を使用してネットワーク1670に接続されたユーザデバイス1606を含む。ユーザデバイス1606は、例えば、モバイルデバイス、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブル電子デバイス、または任意の他の適切なコンピューティングデバイスなどの、コンピューティングデバイスを含むことができる。
[00258]ユーザデバイス1606は、ハイパーテキストマークアップ言語(HTML)ファイルを実行してURLにアクセスし、アクセスされたURLのコンテンツおよび/または1つもしくは複数のアプリケーションページを介してアプリケーションで制御されたコンテンツ(1つまたは複数のサーバーから受信することができる)を提示することができるインストールされたアプリケーションを表示するウェブブラウザ(例えば、Microsoft Explorer(登録商標)、Firefox(登録商標)、Google Chrome(登録商標)、または他の適切なウェブブラウザ)を含むことができる。アプリケーションは、特定の機能またはプログラムを実行するために、ユーザデバイスのプロセッサを使用して実行されるアプリケーションを含むことができる。特定の例では、ウェブページは、ウェブサーバーから受信またはダウンロードすることができる。上述したように、いくつかの実施形態は、リソース要求を使用して主題(例えば、特定のオブジェクト)について問い合わせるためにデバイス(例えば、ユーザデバイス710)を使用することを可能にする。これの一例は、ユーザデバイス1606が給湯器などのオブジェクトに関する情報を提供するために使用される状況である。より多くの情報を提供することができるアプリケーションを実行するために、デバイス1606上でウェブブラウザを使用することができる。
[00259]この例では、ウェブブラウザは、特定のオブジェクトに関連するクライアントのウェブサイトに向けられる。この例では、グラフィカルインターフェース1626はクライアントのウェブサイトを表示する。この例では、ウェブベースのアプリケーションにアクセスするウェブブラウザを使用するが、本明細書の説明によれば、ユーザデバイス1606にインストールされたネイティブアプリケーションを使用して、この例で説明する特徴を実現できることを理解されたい。
[00260]この例を続けると、金物店のウェブサイトをナビゲートし、給湯器に関する情報を表示している間に、通信インターフェースオーバーレイタブ1624をグラフィカルインターフェース1626により表示することができる。通信インターフェースオーバーレイタブ1624は、対話型であってもよく、ユーザデバイス1606上のウェブブラウザと共にライブで実行されてもよい。いくつかの実施形態では、ユーザデバイス1606のキーパッドまたはキーボード上の特定のキーの組み合わせ、ユーザデバイス1606のタッチスクリーンまたはタッチパッド上の特定のスワイプ動作またはマルチタッチ入力、あるいは他の特定の入力などの、ユーザデバイス1606の入力デバイスを使用して特定の入力が受信された後に、通信インターフェースオーバーレイタブ1624が見えるようにすることができる。この実施形態では、通信オーバーレイタブ1624を選択することにより、本明細書で説明するリソース優先順位付け選択プロセスが開始される。
[00261]場合によっては、通信オーバーレイタブ1624が提示されているかどうか、および/または通信オーバーレイタブ1624の1つもしくは複数の特性を決定する所望のウェブコードを識別するために、1つまたは複数の規則が評価される(例えば、デバイス特有の属性または提示されるURLのコンテンツなどの要因を処理する)。例示的な規則および規則の実施は、2014年9月9日に出願された米国特許出願第62/048,022号に開示されており、その全体がすべての目的のために参照により本明細書に組み込まれる。2014年10月5日に出願された米国特許出願第62/064,254号は、様々なオーバーレイ要素特性およびオーバーレイ要素特性を識別するための技術を開示している。この出願もまた、すべての目的のためにその全体が参照により本明細書に組み込まれる。例えば、通信オーバーレイタブ1024は、対話型であってもよく、および/または対話型のチャットウィンドウであってもよい。
[00262]この例では、通信オーバーレイタブ1624を選択することにより、XYZHardware.comウェブサイト(および/または関連する)のクライアントと、給湯器がその要求のオブジェクトであるという指示と、を識別する要求通信を生成することができる。要求通信は、ネットワーク1670を介してリソース優先順位付けシステムに送信することができる。
[00263]リソースが要求通信のために識別されると、インターフェース画面1706(図17に示す)を表示して、リソース通信が望ましいことをユーザが確認できるようにすることができる。一例では、インターフェース画面1706は、プロンプトを表示する。「近くの店舗のリソースと通信しますか?」を表示し、「いいえ」ボタン1708と「はい」ボタン1709とを表示することができる。ユーザデバイス1606と選択されたリソースデバイスとの間の直接通信チャネルを確立する動作は、「はい」ボタン1709の検出を条件とすることができる。別の実施形態では、リソース優先順位付けおよび選択プロセスは、「はい」ボタン1709が選択された後に開始される。
[00264]図18は、本発明の一実施形態によるコンピューティングデバイス(例えば、ユーザデバイス、リソースデバイス、またはリソース優先順位付けシステムデバイス)1800のブロック図を示す。コンピューティングデバイス1800は、ネットワーク接続を備えた任意のヒューマン-マシンインターフェースを含むことができる。コンピューティングデバイス1800は、ウェブページまたはURL(ユニフォームリソースロケータ)へのアクセスを可能にする能力を有することができる。例えば、コンピューティングデバイス1800は、セルラー電話、スマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、パーソナルデジタルアシスタント(PDA)、または任意の他の適切なデバイスを含むことができる。コンピューティングデバイス1800は、バス1818を使用して電気的に結合することができる(あるいは、適切に通信することができる)ハードウェア要素を含むことができる。一実施形態では、バス1818を使用して、プロセッサ1802がコア間および/またはメモリ1812と通信することができる。ハードウェア要素は、1つまたは複数のプロセッサ1802を含むことができ、それは、限定はしないが、1つまたは複数の専用プロセッサ(デジタル信号処理チップ、グラフィックスアクセラレータプロセッサなどの)と、カメラ、マウス、キーボード、タッチセンシティブスクリーン、タッチパッド、キーパッドなどを含むことができるがこれらに限定されない1つまたは複数の入力デバイス1816と、ディスプレイ、プリンタなどを含むことができるがこれらに限定されない1つまたは複数の出力デバイス1814と、を含むことができる。
[00265]コンピューティングデバイス1800は、バス1818に接続された1つまたは複数のネットワークトランシーバ1206を含むことができる。ネットワークトランシーバ1806は、クラウドまたはインターネットなどのネットワーク接続を介して信号を送信および/または受信するように動作することができる。
[00266]コンピューティングデバイス1800は、1つまたは複数の非一時的な機械可読記憶媒体または記憶装置(例えば、メモリ1812)をさらに含む(および/またはそれと通信する)ことができ、それらは、限定はしないが、ローカルおよび/またはネットワークアクセス可能な記憶装置を含むことができ、ならびに/あるいは、限定はしないが、ディスクドライブ、ドライブアレイ、光学記憶装置、ランダムアクセスメモリ(「RAM」)および/またはプログラム可能であり、フラッシュ更新可能であり得る読み出し専用メモリ(「ROM」)などの固体記憶装置などを含むことができる。そのような記憶デバイスは、限定はしないが、様々なファイルシステム、データベース構造などを含む任意の適切なデータ記憶装置を実装するように構成することができる。
[00267]様々な実施形態では、機能は、RAM、ROM、FLASH(登録商標)、またはディスクドライブなどのメモリ1812に、命令またはコードなどの1つまたは複数のコンピュータプログラムとして格納され、プロセッサ1802によって実行される。コンピューティングデバイス1800はまた、例えば、オペレーティングシステム、デバイスドライバ、実行可能ライブラリ、および/または1つもしくは複数のアプリケーションプログラムなどの他のコードを含むソフトウェア要素(例えば、メモリ1212内に配置される)を含むことができ、それらは様々な機能を実現するコンピュータプログラムを含むことができる。そのような機能またはコードは、本明細書に記載の動作を実行するためのコードを含むことができる。メモリ1812は、プロセッサ1802に様々な機能を実行させるように構成された1つまたは複数のコンピュータプログラムを格納する、非一時的な機械可読記憶媒体、プロセッサ可読メモリ、および/またはコンピュータ可読メモリであってもよい。他の実施形態では、説明した様々な機能をハードウェアで実行することができる。
[00268]特定のコンピューティングデバイスは、図18に示すものと比較して、より少ないまたは追加の構成要素を含むことができることが理解されよう。また、メモリ1812などの非一時的な機械可読記憶装置は、プロセッサによって実行され、実行されると、本明細書で説明する1つまたは複数の動作を実行するコードまたは命令を格納することができることも理解されよう。場合によっては、記憶媒体はコンピュータシステム内に組み込まれてもよい。他の実施形態では、記憶媒体は、コンピュータシステムとは別個のもの(例えば、コンパクトディスクなどの着脱可能な媒体)であってもよいし、および/またはインストールパッケージで提供されてもよく、それに格納された命令/コードをプログラム、構成、および/または実行するために使用することができる。1つまたは複数のコンピュータプログラムのこれらの命令は、コンピューティングデバイス1800によって実行可能な実行可能コードの形態をとることができ、かつ/あるいはソースおよび/またはインストール可能なコードの形態をとることができ、それは、コンピューティングデバイス1800上でコンパイルおよび/またはインストールされる(例えば、一般的に利用可能な様々なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティなどのいずれかを使用して)と、実行可能コードの形式をとる。
[00269]したがって、特定の実施形態は、要求通信を処理し、要求に対する応答を容易にするのに適したリソースを識別することに関する。この調整されたアプローチは、ユーザが自分の要求の処理を調整しようとしていたならば、システムの負荷を軽減できる。例えば、ユーザは、その代わりに、要求に応答するために適切な位置にあるものを識別するために、複数のリソースで時間を費やすことができる。別の例として、ユーザは、データのクエリを独立して処理しようとして、サーバーを過負荷にする可能性がある。このように、システムの効率を向上させることができる。さらに、要求処理に取得パラメータを導入することにより、効率的なリソース割り当てを行うことができ、取得結果を改善または最適化することができる。
[00270]特定の要件によって、実質的な変更を行うことができる。例えば、カスタマイズされたハードウェアが使用されてもよいし、および/または特定の要素がハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、もしくはその両方で実装されてもよい。さらに、他のアクセスまたはネットワーク入出力デバイスなどのコンピューティングデバイスへの接続を実現することができる。
[00271]前述の明細書では、本発明の態様についてその特定の実施形態を参照して説明したが、当業者は、本発明がそれに限定されないことを認識するであろう。上述した発明の様々な特徴および態様は、個別にまたは結合して使用することができる。さらに、実施形態は、本明細書のより広範な趣旨および範囲から逸脱することなく、本明細書に記載されたものを超える任意の数の環境および用途において利用することができる。したがって、本明細書および図面は、限定的ではなく例示的なものとみなすべきである。
[00272]前述の説明では、例示のために、方法を特定の順序で説明した。代替的な実施形態では、本方法は、記載した順序と異なる順序で実行してもよいことを理解されたい。また、上述の方法は、ハードウェア構成要素によって実行されてもよいし、または機械で実行可能な命令のシーケンスで具体化されてもよく、命令を用いてプログラムされた専用のプロセッサまたは論理回路などの機械に本方法を実行させるために使用することができる。これらの機械で実行可能な命令は、CD-ROMもしくは他のタイプの光ディスク、フロッピー(登録商標)ディスク、ROM、RAM、EPROM、EEPROM(登録商標)、磁気もしくは光カード、フラッシュメモリ、または電子命令を格納するのに適した他のタイプの機械可読媒体などの、1つまたは複数の機械可読媒体に格納することができる。あるいは、本方法は、ハードウェアとソフトウェアの組み合わせによって実行されてもよい。
[00273]構成要素が特定の動作を実行するように構成されている場合には、そのような構成は、例えば、その動作を実行するように電子回路または他のハードウェアを設計することによって、その動作を実行するようにプログラム可能な電子回路(例えば、マイクロプロセッサまたは他の適切な電子回路)をプログラムすることによって、あるいはそれらの任意の組み合わせによって、達成することができる。
[00274]本明細書では、本出願の例示的な実施形態について詳細に説明したが、本発明の概念は様々に具体化され使用されてもよく、添付の特許請求の範囲は、従来技術によって制限される場合を除いて、そのような変形例を含むと解釈することを意図している。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするためのリソース優先順位付けシステムであって、
デバイスからの要求通信を受信するインターフェースエンジンシステムであって、前記要求通信は、位置を示す位置データおよびオブジェクトに対応する要求コンテンツを含む、インターフェースエンジンシステムと、
前記位置データに基づいて前記デバイスの位置を示す要求位置を特定する位置検出エンジンと、
オブジェクトエンジンであって、
前記要求コンテンツに基づいてオブジェクトまたはオブジェクトタイプの識別子を識別し、
オブジェクトまたはオブジェクトタイプの前記識別子と前記要求位置とに基づいて1つまたは複数のオブジェクト位置を特定するオブジェクトエンジンと、
スケジューリングエンジンであって、1つまたは複数のプロセッサを使用して、
リソースの集合を識別し、
前記リソースの集合の各リソースに関連するリソース位置を特定し、
前記リソースの集合の各リソースについて、前記リソースに関連する前記リソース位置に依存する優先順位付け値を前記リソースに割り当て、
前記要求通信に少なくとも部分的に応答するために前記リソースの集合の中からリソースを選択し、前記リソースの前記選択は前記割り当てられた優先順位付け値に基づいており、
少なくとも1つの通信タイプが音声、データまたはテキスト通信チャネルを介した通信を含む通信タイプの集合を識別し、
前記通信タイプの集合の中から通信タイプを選択し、前記通信タイプの前記選択は、前記要求通信に関連する取得パラメータに基づく、スケジューリングエンジンと、
取得が生じたか否かまたは取得の値を示す以前の要求通信に関する取得データに基づいて、前記要求通信に関連する前記取得パラメータを識別する取得解析エンジンと、
前記選択された通信タイプが音声、データまたはテキスト通信チャネルを介した通信を含む場合に、前記デバイスと前記選択されたリソースに関連するリソースデバイスとの間の音声、データまたはテキスト通信チャネルの確立を容易にする要求処理エンジンと、を含むリソース優先順位付けシステム。
[C2] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記リソース優先順位付けシステムであって、前記リソースの集合の各リソースに割り当てられる前記優先順位付け値は、前記リソースに関連する前記リソース位置と前記1つまたは複数のオブジェクト位置のうちの1つのオブジェクト位置との間の分離距離に依存する、C1に記載のリソース優先順位付けシステム。
[C3] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記リソース優先順位付けシステムであって、前記リソースの前記選択および前記通信タイプの前記選択のうちの少なくとも一方は、要求負荷に依存する、C1に記載のリソース優先順位付けシステム。
[C4] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記リソース優先順位付けシステムであって、前記選択されたリソースの可用性表示を動的に更新するリソース追跡エンジンをさらに含み、前記更新は前記インターフェースエンジンで受信された1つまたは複数の新たな通信に基づいて実行され、前記可用性指示が前記要求通信の処理に関するタスクを実行するリソースを示す場合に、新たな要求通信に少なくとも部分的に応答するための前記リソースの新たな選択が禁止される、C1に記載のリソース優先順位付けシステム。
[C5] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記リソース優先順位付けシステムであって、前記リソースの集合の各リソースに割り当てられる前記優先順位付け値は、前記リソースの情報の仕様またはベースが前記オブジェクトまたはオブジェクトタイプに対応する程度に依存する、C1に記載のリソース優先順位付けシステム。
[C6] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記リソース優先順位付けシステムであって、前記リソースの前記選択および前記通信タイプの前記選択のうちの少なくとも一方は、前記要求位置と前記1つまたは複数のオブジェクト位置のうちの少なくとも1つとの間の分離距離に依存する、C1に記載のリソース優先順位付けシステム。
[C7] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記リソース優先順位付けシステムであって、前記要求コンテンツは、ウェブページまたはアプリケーションページの識別子を含む、C1に記載のリソース優先順位付けシステム。
[C8] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするためのコンピュータにより実施される方法であって、
デバイスからの要求通信を受信するステップであって、前記要求通信は、位置を示す位置データおよびオブジェクトに対応する要求コンテンツを含む、ステップと、
前記位置データに基づいて、前記デバイスの位置を示す要求位置を特定するステップと、
前記要求コンテンツに基づいてオブジェクトまたはオブジェクトタイプの識別子を識別するステップと、
1つまたは複数のプロセッサを使用して、オブジェクトまたはオブジェクトタイプの前記識別子と前記要求位置とに基づいて1つまたは複数のオブジェクト位置を特定するステップと、
リソースの集合を識別するステップと、
前記リソースの集合の各リソースに関連するリソース位置を特定するステップと、
前記リソースの集合の各リソースについて、前記リソースに関連する前記リソース位置に依存する優先順位付け値を前記リソースに割り当てるステップと、
前記1つまたは複数のプロセッサを使用して、前記要求通信に少なくとも部分的に応答するために前記リソースの集合の中からリソースを選択するステップであって、前記リソースの前記選択は前記割り当てられた優先順位付け値に基づく、ステップと、
少なくとも1つの通信タイプが音声、データまたはテキスト通信チャネルを介した通信を含む通信タイプの集合を識別するステップと、
取得が生じたか否かまたは取得の値を示す以前の要求通信に関する取得データに基づいて、前記要求通信に関連する前記取得パラメータを識別するステップと、
前記1つまたは複数のプロセッサを使用して、前記通信タイプの集合の中から通信タイプを選択し、前記通信タイプの前記選択は、前記要求通信に関連する前記取得パラメータに基づく、ステップと、
前記選択された通信タイプが音声、データまたはテキスト通信チャネルを介した通信を含む場合に、前記デバイスと前記選択されたリソースに関連するリソースデバイスとの間の音声、データまたはテキスト通信チャネルの確立を容易にするステップと、を含む方法。
[C9] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記方法であって、前記リソースの集合の各リソースに割り当てられる前記優先順位付け値は、前記リソースに関連する前記リソース位置と前記1つまたは複数のオブジェクト位置のうちの1つのオブジェクト位置との間の分離距離に依存する、C8に記載の方法。
[C10] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記方法であって、前記リソースの前記選択および前記通信タイプの前記選択のうちの少なくとも一方は、要求負荷に依存する、C8に記載の方法。
[C11] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記方法であって、
前記選択されたリソースの可用性表示を動的に更新するステップをさらに含み、前記更新はインターフェースエンジンで受信された1つまたは複数の新たな通信に基づいて実行され、前記可用性指示が前記要求通信の処理に関するタスクを実行するリソースを示す場合に、新たな要求通信に少なくとも部分的に応答するための前記リソースの新たな選択が禁止される、C8に記載の方法。
[C12] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記方法であって、前記リソースの集合の各リソースに割り当てられる前記優先順位付け値は、前記リソースの情報の仕様またはベースが前記オブジェクトまたはオブジェクトタイプに対応する程度に依存する、C8に記載の方法。
[C13] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記方法であって、前記リソースの前記選択および前記通信タイプの前記選択のうちの少なくとも一方は、前記要求位置と前記1つまたは複数のオブジェクト位置のうちの少なくとも1つとの間の分離距離に依存する、C8に記載の方法。
[C14] リソースを優先順位付けし、通信チャネルを確立することによって要求通信への応答を容易にするための前記方法であって、前記要求コンテンツは、ウェブページまたはアプリケーションページの識別子を含む、C8に記載の方法。
[C15] 非一時的な機械可読記憶媒体に有形に具現化されたコンピュータプログラム製品であって、1つまたは複数のデータプロセッサに対して処理を実行させるように構成された命令を含み、前記処理は、
デバイスからの要求通信を受信するステップであって、前記要求通信は、位置を示す位置データおよびオブジェクトに対応する要求コンテンツを含む、ステップと、
前記位置データに基づいて前記デバイスの位置を示す要求位置を特定するステップと、 前記要求コンテンツに基づいてオブジェクトまたはオブジェクトタイプの識別子を識別するステップと、
オブジェクトまたはオブジェクトタイプの前記識別子と前記要求位置とに基づいて1つまたは複数のオブジェクト位置を特定するステップと、
リソースの集合を識別するステップと、
前記リソースの集合の各リソースに関連するリソース位置を特定するステップと、
前記リソースの集合の各リソースについて、前記リソースに関連する前記リソース位置に依存する優先順位付け値を前記リソースに割り当てるステップと、
前記要求通信に少なくとも部分的に応答するために前記リソースの集合の中からリソースを選択するステップであって、前記リソースの前記選択は前記割り当てられた優先順位付け値に基づく、ステップと、
少なくとも1つの通信タイプが音声、データまたはテキスト通信チャネルを介した通信を含む通信タイプの集合を識別するステップと、
取得が生じたか否かまたは取得の値を示す以前の要求通信に関する取得データに基づいて、前記要求通信に関連する取得パラメータを識別するステップと、
前記通信タイプの集合の中から通信タイプを選択するステップであって、前記通信タイプの前記選択は、前記要求通信に関連する前記取得パラメータに基づく、ステップと、
前記選択された通信タイプが音声、データまたはテキスト通信チャネルを介した通信を含む場合に、前記デバイスと前記選択されたリソースに関連するリソースデバイスとの間の音声、データまたはテキスト通信チャネルの確立を容易にするステップと、を含む、コンピュータプログラム製品。
[C16] 前記リソースの集合の各リソースに割り当てられる前記優先順位付け値は、前記リソースに関連する前記リソース位置と前記1つまたは複数のオブジェクト位置のうちの1つのオブジェクト位置との間の分離距離に依存する、C15に記載のコンピュータプログラム製品。
[C17] 前記リソースの前記選択および前記通信タイプの前記選択のうちの少なくとも一方は、要求負荷に依存する、C15に記載のコンピュータプログラム製品。
[C18] 前記選択されたリソースの可用性表示を動的に更新するステップをさらに含み、前記更新はインターフェースエンジンで受信された1つまたは複数の新たな通信に基づいて実行され、前記可用性指示が前記要求通信の処理に関するタスクを実行するリソースを示す場合に、新たな要求通信に少なくとも部分的に応答するための前記リソースの新たな選択が禁止される、C15に記載のコンピュータプログラム製品。
[C19] 前記リソースの集合の各リソースに割り当てられる前記優先順位付け値は、前記リソースの情報の仕様またはベースが前記オブジェクトまたはオブジェクトタイプに対応する程度に依存する、C15に記載のコンピュータプログラム製品。
[C20] 前記リソースの前記選択および前記通信タイプの前記選択のうちの少なくとも一方は、前記要求位置と前記1つまたは複数のオブジェクト位置のうちの少なくとも1つとの間の分離距離に依存する、C15に記載のコンピュータプログラム製品。