IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ライブパーソン, インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-18
(54)【発明の名称】ボット監視
(51)【国際特許分類】
   H04L 51/214 20220101AFI20231011BHJP
   H04L 51/02 20220101ALI20231011BHJP
   G06F 18/2411 20230101ALI20231011BHJP
   G06N 20/10 20190101ALI20231011BHJP
【FI】
H04L51/214
H04L51/02
G06F18/2411
G06N20/10
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023516792
(86)(22)【出願日】2021-09-15
(85)【翻訳文提出日】2023-04-11
(86)【国際出願番号】 US2021050401
(87)【国際公開番号】W WO2022060792
(87)【国際公開日】2022-03-24
(31)【優先権主張番号】63/078,718
(32)【優先日】2020-09-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FACEBOOK
2.BLACKBERRY
(71)【出願人】
【識別番号】511094772
【氏名又は名称】ライブパーソン, インコーポレイテッド
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】ヒギンス、マイケル
(72)【発明者】
【氏名】チェン、シー
(72)【発明者】
【氏名】ホー、チューチン
(72)【発明者】
【氏名】リカルト、エンダー
(57)【要約】
本開示は、一般に、通信のルーティングを促進することに関する。より具体的には、マルチチャネル能力で構成された通信セッション中に、複数のインテントを有するメッセージをボットと端末デバイスとの間で動的にルーティングするための技術が提供される。
【選択図】図11
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
監督基準のセットをメモリに記憶することと、前記監督基準のセットは信頼のしきい値レベルを含み、
ボットとクライアントデバイスのユーザとの間の会話における1つ以上のメッセージを監視することと、
前記会話に関係付けられたボット予測が前記信頼のしきい値レベルを満たさないことを検出することと、
エージェントデバイスからの入力を要求することと、前記エージェントデバイスは、前記会話に関する分類入力を提供し、
前記分類入力に従って、前記会話を1つ以上のエンドポイントデバイスにルーティングすることと、
前記分類入力に基づいて学習モデルを更新することとを含み、前記ボットは、次のボット予測を行うために、前記更新された学習モデルを使用する、コンピュータ実装方法。
【請求項2】
前記ボット予測が前記信頼のしきい値レベルを満たさないことを検出することは、
前記ボット予測に信頼スコアを割り当てることと、
前記割り当てられた信頼スコアを前記信頼のしきい値レベルと比較することとを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記会話を前記1つ以上のエンドポイントにルーティングすることは、リアルタイムに生じる、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記分類入力に基づいて、前記会話内の前記メッセージに注釈を付けるステップをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記学習モデルは、注釈付きメッセージに基づいて更新される、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記会話をルーティングすることは、前記分類入力を前記ボットに提供することを含み、前記分類は、前記ボット予測とは異なる予測に対応する、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記ボットは、前記信頼のしきい値レベルを満たさなかった前記ボット予測の代わりに、前記分類入力に対応する前記異なる予測を使用することによって、前記会話をルーティングする、請求項6に記載のコンピュータ実装方法。
【請求項8】
後続の会話をルーティングすることは、
前記更新された学習モデルに基づいて、前記次の予測を行うことと、前記予測は、前記信頼のしきい値レベルを満たし、
前記予測に基づいて、前記後続の会話を前記1つ以上のエンドポイントにルーティングすることとを含む、請求項1に記載のコンピュータ実装方法。
【請求項9】
前記入力を要求することは、予測オプションのセット内の前記予測をエージェントデバイスに提示することを含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
前記学習モデルを更新することは、前記分類入力に対応する他の分類入力に関係付けられた1つ以上の他の会話にさらに基づく、請求項1に記載のコンピュータ実装方法。
【請求項11】
前記分類入力は、前記会話内の前記メッセージからのコンテンツの1つ以上の選択をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項12】
前記監督基準のセットは、1つ以上の条件をさらに指定し、前記監督基準によって指定された前記条件に対応する前記会話の条件に基づいて、前記信頼のしきい値レベルを設定することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項13】
システムであって、
信頼基準のセットをメモリに記憶するメモリと、前記信頼基準のセットは信頼のしきい値レベルを含み、
通信ネットワークを通してデータを受信する通信インターフェースと、前記受信されたデータは、ボットとクライアントデバイスのユーザとの間の監視された会話における1つ以上のメッセージに関し、
1つ以上のプロセッサと、
動作を実行するように前記1つ以上のプロセッサによって実行可能な命令を含む1つ以上の非一時的機械読取可能記憶媒体を備え、前記動作は、
前記会話に関係付けられたボット予測が前記信頼のしきい値レベルを満たさないことを検出することと、
エージェントデバイスから前記会話に関する入力を要求することと、前記エージェントデバイスは、前記会話に関する分類入力を提供し、
前記分類入力に従って、前記会話を1つ以上のエンドポイントデバイスにルーティングすることと、
前記分類入力に基づいて、学習モデルを更新することとを含み、前記ボットは、次のボット予測を行うために、前記更新された学習モデルを使用する、システム。
【請求項14】
前記プロセッサは、
前記ボット予測に信頼スコアを割り当てることと、
前記割り当てられた信頼スコアを前記信頼のしきい値レベルと比較することとによって、
前記ボット予測が前記信頼のしきい値レベルを満たさないことを検出する、請求項13に記載のシステム。
【請求項15】
前記プロセッサは、前記会話を前記1つ以上のエンドポイントにリアルタイムでルーティングする、請求項13に記載のシステム。
【請求項16】
前記分類入力に基づいて、前記会話内の前記メッセージに注釈を付けるために前記プロセッサによって実行可能な命令をさらに含む、請求項13に記載のシステム。
【請求項17】
前記学習モデルは、注釈付きメッセージに基づいて更新される、請求項16に記載のシステム。
【請求項18】
前記プロセッサは、前記分類入力を前記ボットに提供することによって前記会話をルーティングし、前記分類は、前記ボット予測とは異なる予測に対応する、請求項13に記載のシステム。
【請求項19】
前記ボットは、前記信頼のしきい値レベルを満たさなかった前記ボット予測の代わりに、前記分類入力に対応する前記異なる予測を使用することによって、前記会話をルーティングする、請求項18に記載のシステム。
【請求項20】
前記プロセッサは、
前記更新された学習モデルに基づいて、前記次の予測を行うことと、前記予測は前記信頼のしきい値レベルを満たし、
前記予測に基づいて、後続の会話を前記1つ以上のエンドポイントにルーティングすることとによって、前記後続の会話をルーティングする、請求項13に記載のシステム。
【請求項21】
プロセッサは、予測オプションのセット内の前記予測を前記エージェントデバイスに提示することによって、前記入力を要求する、請求項13に記載のシステム。
【請求項22】
前記プロセッサは、前記分類入力に対応する他の分類入力に関係付けられた1つ以上の他の会話にさらに基づいて、前記学習モデルを更新する、請求項13に記載のシステム。
【請求項23】
前記分類入力は、前記会話内の前記メッセージからのコンテンツの1つ以上の選択をさらに含む、請求項13に記載のシステム。
【請求項24】
監督基準のセットは、1つ以上の条件をさらに指定し、前記監督基準によって指定された前記条件に対応する前記会話の条件に基づいて、前記信頼のしきい値レベルを設定するように実行可能な命令をさらに含む、請求項13に記載のシステム。
【請求項25】
命令を含む、非一時的機械読取可能記憶媒体であって、前記命令は、1つ以上のプロセッサによって実行されるとき、前記1つ以上のプロセッサに、
信頼基準のセットをメモリに記憶することと、前記信頼基準のセットは信頼のしきい値レベルを含み、
ボットとクライアントデバイスのユーザとの間の会話における1つ以上のメッセージを監視することと、
前記会話に関係付けられたボット予測が前記信頼のしきい値レベルを満たさないことを検出することと、
エージェントデバイスから前記会話に関する入力を要求することと、前記エージェントデバイスは、前記会話に関する分類入力を提供し、
前記分類入力に従って、前記会話を1つ以上のエンドポイントデバイスにルーティングすることと、
前記分類入力に基づいて、学習モデルを更新することとを含む動作を実行させ、前記ボットは、次のボット予測を行うために、前記更新された学習モデルを使用する、非一時的機械読取可能記憶媒体。
【請求項26】
前記ボット予測が前記信頼のしきい値レベルを満たさないことを検出することは、
前記ボット予測に信頼スコアを割り当てることと、
前記割り当てられた信頼スコアを前記信頼のしきい値レベルと比較することとを含む、請求項25に記載の非一時的機械読取可能記憶媒体。
【請求項27】
前記会話を前記1つ以上のエンドポイントにルーティングすることは、リアルタイムに生じる、請求項25に記載の非一時的機械読取可能記憶媒体。
【請求項28】
前記分類入力に基づいて、前記会話における前記メッセージに注釈をつけるように実行可能な命令をさらに含む、請求項25に記載の非一時的機械読取可能記憶媒体。
【請求項29】
前記学習モデルは、注釈付きメッセージに基づいて更新される、請求項28に記載の非一時的機械読取可能記憶媒体。
【請求項30】
前記会話をルーティングすることは、前記分類入力を前記ボットに提供することを含み、前記分類は、前記ボット予測とは異なる予測に対応する、請求項25に記載の非一時的機械読取可能記憶媒体。
【請求項31】
前記ボットは、前記信頼のしきい値レベルを満たすことができなかった前記ボット予測の代わりに、前記分類入力に対応する前記異なる予測を使用することによって、前記会話をルーティングする、請求項30に記載の非一時的機械読取可能記憶媒体。
【請求項32】
後続の会話をルーティングすることは、
前記更新された学習モデルに基づいて、前記次の予測を行うことと、前記予測は前記信頼のしきい値レベルを満たし、
前記予測に基づいて、前記後続の会話を前記1つ以上のエンドポイントにルーティングすることとを含む、請求項25に記載の非一時的機械読取可能記憶媒体。
【請求項33】
前記入力を要求することは、予測オプションのセット内の前記予測を前記エージェントデバイスに提示することを含む、請求項25に記載の非一時的機械読取可能記憶媒体。
【請求項34】
前記学習モデルを更新することは、前記分類入力に対応する他の分類入力に関係付けられた1つ以上の他の会話にさらに基づく、請求項25に記載の非一時的機械読取可能記憶媒体。
【請求項35】
前記分類入力は、前記会話内の前記メッセージからのコンテンツの1つ以上の選択をさらに含む、請求項25に記載の非一時的機械読取可能記憶媒体。
【請求項36】
監督基準の前記セットは、1つ以上の条件をさらに指定し、前記監督基準によって指定された前記条件に対応する前記会話の条件に基づいて、前記信頼のしきい値レベルを設定することをさらに含む、請求項25に記載の非一時的機械読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本特許出願は、「ボット監視」と題され、2020年9月15日に出願された米国仮特許出願番号第63/078,718号の優先権の利益を主張し、その開示は参照により本明細書に組み込まれる。
【0002】
[0002]本開示は、概してボット動作及びトレーニングに関し、より具体的には、ボット動作及びトレーニングの監視のための技術が提供される。
【背景技術】
【0003】
[0003]現在利用可能なボットは、モデルから動作することができる。モデルは経時的に更新されることができるが、それにもかかわらず、ボットエラー、故障、又は他の動作故障が発生することがある。したがって、ビジネスは、顧客のニーズ及び期待を満たすために、そのようなボット故障から引き継ぐために人間のエージェントを採用するかもしれない。しかしながら、様々なタスクを引き継ぐために人間のエージェントを必要とすることは非常に時間がかかるかもしれず、ある時点でモデルが更新されるまでボットは故障し続けるかもしれない。したがって、当該技術分野では、ボットの動作及びトレーニングを監視するための改善された方法及びシステムが必要とされている。
【発明の概要】
【0004】
[0004]実施形態という用語及び同様の用語は、本開示の主題事項と以下の特許請求の範囲とのすべてを広く指すことを意図されている。これらの用語を含んでいる記述は、本明細書で説明される主題事項を限定しないと、又は以下の特許請求の範囲の意味もしくは範囲を限定しないと理解されたい。本明細書で包含される本開示の実施形態は、この概要ではなく、以下の特許請求の範囲によって定義される。この概要は、本開示の様々な態様の高レベルの概観であり、以下の発明を実施するための形態のセクションにおいてさらに説明される概念のいくつかを紹介する。この概要は、請求項に記載される主題の重要な特徴又は必須の特徴を識別するようには意図されておらず、請求項に記載される主題事項の範囲を決定するために別個に使用されるようにも意図されていない。主題事項は、本開示の明細書全体と、いずれか又はすべての図面と、各請求項との適切な部分を参照することによって理解されたい。本開示の特定の実施形態は、コンピュータ実装方法を含む。この方法は、信頼のしきい値レベルを含む監視基準のセットをメモリに記憶することと、ボットとクライアントデバイスのユーザとの間の会話における1つ以上のメッセージを監視することと、会話に関係付けられたボット予測が信頼のしきい値レベルを満たさないことを検出することと、会話に関する分類入力を提供するエージェントデバイスからの入力を要求することと、分類入力に従って会話を1つ以上のエンドポイントデバイスにルーティングすることと、分類入力に基づいて学習モデルを更新することと、次のボット予測を行うためにボットによる更新された学習モデルの使用を提供することとを含むことができる。
【0005】
[0005]本開示のある特定の実施形態は、システムを含む。システムは、1つ以上のデータプロセッサと、命令を含む非一時的コンピュータ読取可能記憶媒体とを含んでいてもよく、命令は、1つ以上のデータプロセッサ上で実行されるとき、1つ以上のデータプロセッサに、上記及び本明細書で説明される方法を実行させる。
【0006】
[0006]本開示のある特定の実施形態は、データ処理装置に、上記及び本明細書で説明される方法を実行させるように構成された命令を含む、非一時的機械読取可能記憶媒体において有形に具現化されたコンピュータプログラム製品を含む。
【図面の簡単な説明】
【0007】
[0007]本開示は、添付の図面と併せて説明される。
図1】[0008]図1は、ネットワークインタラクションシステムの一実施形態のブロック図を示す。
図2】[0009]図2は、ネットワークインタラクションシステムの別の実施形態のブロック図を示す。
図3A】[0010]図3Aは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
図3B図3Bは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
図3C図3Cは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
図4】[0011]図4は、接続コンポーネントの動作のプロトコルスタックマッピングを表したものを示す。
図5】[0012]図5は、実施形態によるマルチデバイス通信交換システムを表す。
図6】[0013]図6は、接続管理システムの一実施形態のブロック図を示す。
図7】[0014]図7は、通信セッション中にボットと端末デバイスとを動的に切り替えるためのネットワーク環境のブロック図を示す。
図8】[0015]図8は、マルチプルチャネル環境にわたってエンドポイントを動的に選択するためのネットワーク環境を表すブロック図を示す。
図9】[0016]図9は、機械学習技術を使用してエンドポイント選択を拡張するためのネットワーク環境を表すブロック図を示す。
図10】[0017]図10は、ボット動作及びトレーニングを監視するための例示的なプロセスを示す。
図11】[0018]図11は、ボット動作及びトレーニングを監視するためのシステムが実装されてもよいネットワーク環境を表すブロック図を示す。
図12-1】[0019]図12-1は、ボット動作及びトレーニングを監視するための例示的なインターフェースを図示する。
図12-2】図12-2は、ボット動作及びトレーニングを監視するための例示的なインターフェースを図示する。
【0008】
[0020]添付の図面では、同様のコンポーネント及び/又は特徴は、同じ参照ラベルを有することができる。さらに、同じタイプの様々なコンポーネントは、参照ラベルの後に、ダッシュと、同様のコンポーネント同士を区別する第2のラベルとを続けることによって区別することができる。本明細書において第1の参照ラベルのみが使用される場合、その説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様のコンポーネントのうちの任意の1つに適用可能である。
【発明を実施するための形態】
【0009】
[0021]次の説明は、実施形態の好ましい例のみを提供し、本開示の範囲、適用性、又はコンフィギュレーションを限定するようには意図されない。むしろ、実施形態の好ましい例の次の説明は、実施形態の好ましい例を実施することを可能にする説明を当業者に提供する。様々な変更が、添付の特許請求の範囲に記載されるような趣旨及び範囲から逸脱することなく、要素の配置及び機能において行われてもよいことが理解される。
【0010】
[0022]図1は、本明細書で説明されるある実施形態及び機能を実装及びサポートする、ネットワークインタラクションシステム100の実施形態のブロック図を示す。ある実施形態は、ネットワークデバイス105(これは、ユーザ110によって動作されることができる)と、端末デバイス115(これは、エージェント120によって動作されることができる)との間の接続チャネルを確立することに関する。ある特定の実施形態では、ネットワークインタラクションシステム100は、クライアント125に関係付けられたクライアントデバイス130を含んでいてもよい。
【0011】
[0023]ある特定の実施形態では、ユーザ110は、ウェブサイトを閲覧している個人、又は遠隔サーバ140によって提供されるオンラインサービスにアクセスしている個人であることができる。クライアント125は、ウェブサイト又はオンラインサービスを提供、運用(operates)、又は運営する(runs)エンティティであることができ、あるいは本明細書で説明されるように、クライアント125に利用可能なタスクを実行するために、そのようなエンティティによって雇用又はアサインされた個人であることができる。エージェント120は、ウェブサイト又はオンラインサービスに関するサポート又は情報をユーザ110に提供することをタスクとして課されたサポートエージェント等の個人であることができる。多数のエージェントのうち、エージェントのサブセットが、特定のクライアント125に対してサポート又は情報を提供するのに適切であってもよい。エージェント120は、クライアント125と提携していても、提携していなくてもよい。各エージェントは、1つ以上のクライアント125に関係付けられることができる。いくつかの非限定的な例では、ユーザ110は、パーソナルコンピューティングデバイスからオンラインストアでショッピングする個人であることがあり、クライアント125は、製品をオンラインで販売する企業であることがあり、エージェント120は、この企業によって雇用された担当者であることがある。様々な実施形態では、ユーザ110、クライアント125、及びエージェント120は、他の個人又はエンティティであることがある。
【0012】
[0024]図1が単一のネットワークデバイス105、端末デバイス115、及びクライアントデバイス130のみを示している一方で、インタラクションシステム100は、複数又は多数(例えば、数十、数百、又は数千)の、これらのタイプのデバイスのうちの1つ以上のそれぞれを含むことができる。同様に、図1が単一のユーザ110、エージェント120及びクライアント125のみを示している一方で、インタラクションシステム100は、複数又は多数の、このようなエンティティのうちの1つ以上のそれぞれを含むことができる。したがって、所定のネットワークデバイスと通信するためにどの端末デバイスが選択されるべきかを決定する必要があるかもしれない。さらに複雑な問題として、遠隔サーバ140もまた、選択ネットワークデバイス通信を受信し及びそれに応答するように構成されてもよい。
【0013】
[0025]接続管理システム150は、通信の戦略的ルーティングを促進することができる。通信は、(例えば、タイプ入力又は音声入力等の、エンティティからの入力に基づいて定義された)コンテンツを有するメッセージを含むことができる。通信はまた、送信デバイスに関するデータ(例えば、IPアドレス、アカウント識別子、デバイスタイプ、及び/又はオペレーティングシステム)、宛先アドレス、クライアントの識別子、ウェブページ又はウェブページ要素(例えば、通信が生成されたときに訪問されているか、又は別の方法で通信に関係付けられているウェブページ又はウェブページ要素)の識別子又はオンライン履歴データ、時間(例えば、時刻及び/又は日付)、及び/又は宛先アドレス等の、追加のデータを含むことができる。他の情報も通信に含めることができる。いくつかの事例では、接続管理システム150は、通信全体を別のデバイスにルーティングする。いくつかの事例では、接続管理システム150は、通信を修正するか、又は(例えば、当初の通信に基づいて)新しい通信を生成する。新しい又は修正された通信は、メッセージ(又はその処理されたバージョン)、(例えば、送信デバイス、ウェブページ又はオンライン履歴、及び/又は時間に関する)追加のデータのうちの少なくともいくつか(又は全て)、及び/又は接続管理システム150によって識別された他のデータ(例えば、特定のアカウント識別子又はデバイスに関係付けられたアカウントデータ)を含むことができる。新しい又は修正された通信は、他の情報も含むことができる。
【0014】
[0026]戦略的ルーティング促進の一部は、ネットワークデバイス105と1つ以上の端末デバイス115との間の1つ以上の接続チャネルを確立、更新、及び使用することを含むことができる。例えば、ネットワークデバイス105から通信を受信すると、接続管理システム150は、まず(もしあれば)どのクライアントに通信が対応するかを推定することができる。クライアントを識別すると、接続管理システム150は、ネットワークデバイス105との通信のためにクライアントに関係付けられた端末デバイス115を識別することができる。いくつかの事例では、識別は、複数のエージェント(又は、エキスパートもしくは代行者(delegates))のそれぞれのプロファイルを評価することを含むことができ、複数のエージェントにおける各エージェント(例えば、エージェント120)は、端末デバイス(例えば、端末デバイス115)に関係付けられている。評価は、ネットワークデバイスのメッセージにおけるコンテンツに関連することができる。端末デバイス115の識別は、例えば、2010年3月17日に出願された米国出願第12/725,799号に記載された技術を含むことができ、これは、あらゆる目的のために、その全体が参照により本明細書に組み込まれている。
【0015】
[0027]いくつかの事例では、接続管理システム150は、ネットワークデバイス105と、クライアント(又は遠隔サーバ140)に関係付けられた端末デバイスとの間に何らかの接続チャネルが確立されているかどうか、及び確立されている場合には、その通信を含む一連の通信を交換するために、そのようなチャネルが使用されるべきかどうかを決定することができる。
【0016】
[0028]ネットワークデバイス105と通信するための端末デバイス115を選択すると、接続管理システム150は、ネットワークデバイス105と端末デバイス115との間の接続チャネルを確立することができる。いくつかの事例では、接続管理システム150は、選択された端末デバイス115にメッセージを送信することができる。メッセージは、ネットワークデバイス105と通信するための提案された割当ての受諾を要求してもよいか、又はそのような割当てが生成されたことを識別してもよい。メッセージは、ネットワークデバイス105に関する情報(例えば、IPアドレス、デバイスタイプ、及び/又はオペレーティングシステム)、関係付けられたユーザ110に関する情報(例えば、使用言語(language spoken)、クライアントとインタラクトした持続時間、スキルレベル、センチメント、及び/又はトピック選好)、受信された通信、ネットワークデバイス105への通信を生成及び送信するためのコード(例えば、クリック可能なハイパーリンク)、及び/又はネットワークデバイス105への通信を生成及び送信するための命令を含むことができる。
【0017】
[0029]一事例では、ネットワークデバイス105と端末デバイス115との間の通信は、接続管理システム150を通じてルーティングされることができる。このようなコンフィギュレーションは、接続管理システム150が、通信交換を監視することと、いずれかのデバイスの非応答性又は延長されたレイテンシ等の(例えば、規則に基づいて定義されるような)問題を検出することと、を可能にしてもよい。さらに、このようなコンフィギュレーションは、通信の選択的又は完全な記憶を促進することができ、これは、後に、例えば、通信交換の品質をアセスするために、及び/又は、特定の通信後ターゲット(post-communication targets)を増進する(promote)ようにルーティング規則を更新又は生成するための学習をサポートするために使用されてもよい。
【0018】
[0030]いくつかの実施形態では、接続管理システム150は、リアルタイムで通信交換を監視し、ライブ通信に基づいて、自動化されたアクション(例えば、規則ベースのアクション)を実行することができる。例えば、接続管理システム150が、通信が特定のアイテム(例えば、製品)に関連すると決定するとき、接続管理システム150は、アイテムに関する追加の情報(例えば、入手可能なアイテムの数量、アイテムに関連するサポート書類(support documents)へのリンク、又はアイテムもしくは類似のアイテムに関する他の情報)を含む追加のメッセージを端末デバイス115に自動的に送信してもよい。
【0019】
[0031]一事例では、指定された端末デバイス115は、接続管理システム150を通じて通信を中継することなく、ネットワークデバイス105と通信することができる。デバイス105、115の一方又は両方が、通信の監視及び/又はデータ記憶を促進するために、特定の通信メトリック又はコンテンツを接続管理システム150に報告してもよい(又は報告しなくてもよい)。
【0020】
[0032]上述されたように、接続管理システム150は、選択通信を遠隔サーバ140にルーティングしてもよい。遠隔サーバ140は、予め定められた方法で情報を提供するように構成されることができる。例えば、遠隔サーバ140は、通信に応答して送信するために、定義された1つ以上のテキストパッセージ、音声記録、及び/又はファイルにアクセスしてもよい。遠隔サーバ140は、例えば、受信された通信の分析(例えば、意味分析又はマッピング分析)に基づいて、特定のテキストパッセージ、記録、又はファイルを選択してもよい。
【0021】
[0033]接続管理システム150において実行されるルーティング及び/又は他の決定又は処理は、1つ以上のクライアントデバイス130によって少なくとも部分的に定義されるか又は提供されるデータ及び/又は規則に基づいて実行されることができる。例えば、クライアントデバイス130は、エージェントの優先順位付け、端末デバイスのタイプ、及び/又は、トピック/スキルマッチングを識別する通信を送信してもよい。別の例として、クライアントデバイス130は、ルーティング決定に潜在的に影響を及ぼす様々な変数(例えば、言語互換性、予測応答時間、デバイスタイプ及び能力、並びに/又は端末デバイスの負荷均衡化)に適用するための1つ以上の重みを識別してもよい。どの端末デバイス及び/又はエージェントがクライアントに関係付けられるべきかは、動的であってもよいことが理解されよう。クライアントデバイス130及び/又は端末デバイス115からの通信は、所定の端末デバイス及び/又はエージェントがクライアントに関係付けられたものとして追加又は削除されるべきであることを示す情報を提供してもよい。例えば、クライアントデバイス130は、IPアドレスと、そのアドレスを有する端末デバイスが、クライアント関連の端末デバイスを識別するリストに追加されるべきか、又はリストから削除されるべきかに関するインジケーションと、を有する通信を送信できる。
【0022】
[0034]各通信(例えば、デバイス間、デバイスと接続管理システム150との間、遠隔サーバ140と接続管理システム150との間、又は遠隔サーバ140とデバイスとの間)は、1つ以上のネットワーク170上で行われることができる。オープン又はクローズドネットワークの任意の組合せが、1つ以上のネットワーク170に含まれていることができる。好適なネットワークの例は、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、又はワイヤレスローカルエリアネットワーク(WLAN)を含む。他のネットワークも同様に好適であってもよい。1つ以上のネットワーク170は、イントラネット、エクストラネット、又はこれらの組合せ内に完全に組み込まれることができ、又はそれらを含むことができる。いくつかの事例では、1つ以上のネットワーク170におけるネットワークは、Bluetooth(登録商標)又はBluetooth Low Energyチャネル等の、短距離通信チャネルを含む。一実施形態では、2つ以上のシステム及び/又はデバイス間の通信は、セキュアソケットレイヤ(SSL)又はトランスポートレイヤセキュリティ(TLS)等の、セキュア通信プロトコルによって達成されることができる。加えて、データ及び/又はトランザクションの詳細は、限定はしないが、データ暗号化標準(DES)、トリプルDES、Rivest-Shamir-Adleman暗号(RSA)、Blowfish暗号、Advanced Encryption Standard(AES)、CAST-128、CAST-256、無相関化高速暗号(DFC:Decorrelated Fast Cipher)、Tiny Encryption Algorithm(TEA)、eXtended TEA(XTEA)、Corrected Block TEA(XXTEA)、及び/又はRC5等のような、任意の便利な、既知の、又は将来開発される方法に基づいて、暗号化されてもよい。
【0023】
[0035]ネットワークデバイス105、端末デバイス115、及び/又はクライアントデバイス130は、例えば、ポータブル電子デバイス(例えば、スマートフォン、タブレット、ラップトップコンピュータ、又はスマートウェアラブルデバイス)、又は非ポータブル電子デバイス(例えば、1つ以上のデスクトップコンピュータ、スマート家電、サーバ、及び/又はプロセッサ)を含むことができる。接続管理システム150は、ネットワークデバイス、端末、及びクライアントデバイスとは別個に収容されることができ、又は(例えば、デバイス上でのアプリケーションのインストールを介して)1つ以上のそのようなデバイスの一部であってもよい。遠隔サーバ140は、各デバイス及び接続管理システム150とは別個に収容されてもよく、及び/又は、別のデバイス又はシステムの一部であってもよい。図1における各デバイス、サーバ、及びシステムが、単一のデバイスとして示されている一方で、代わりに複数のデバイスが使用されてもよいことが理解されよう。例えば、ネットワークデバイスのセットが、単一のユーザから様々な通信を送信するために使用されることができ、又は遠隔サーバ140が、サーバスタックを含んでいてもよい。
【0024】
[0036]ソフトウェアエージェント又はアプリケーションが、図示されたデバイス、システム、又はサーバ上にインストールされてもよく、及び/又はその上で実行可能であってもよい。一事例では、ソフトウェアエージェント又はアプリケーションは、様々な図示された要素が相補的な形で動作できるように構成される。例えば、デバイス上のソフトウェアエージェントは、デバイス使用に関するデータを収集し、別個の接続管理システムに送信するように構成されることができ、別個の接続管理システム上のソフトウェアアプリケーションが、このデータを受信及び処理するように構成されることができる。
【0025】
[0037]図2は、ネットワークインタラクションシステム200の別の実施形態のブロック図を示す。一般に、図2は、ネットワークデバイス205が、1つ以上の端末デバイス215と通信することを可能にするように構成及び配置された様々なコンポーネントを図示する。描かれた事例は、3つのローカルエリアネットワーク235に含まれる9個の端末デバイス215を含む。
【0026】
[0038]いくつかの事例では、ネットワークデバイス205からの通信は、どの端末デバイスが通信を受信すべきかを少なくとも部分的に又は完全に示す宛先データ(例えば、宛先IPアドレス)を含む。ネットワークインタラクションシステム200は、宛先データを処理し、適切なルーティングを促進できる、1つ以上のインターネットワーク接続コンポーネント240及び/又は1つ以上のイントラネットワーク接続コンポーネント255を含むことができる。
【0027】
[0039]各インターネットワーク接続コンポーネント245は、複数のネットワーク235に接続されることができ、複数のネットワークカードをインストールできる(例えば、各カードは異なるネットワークに接続される)。例えば、インターネットワーク接続コンポーネント245は、広域ネットワーク270(例えば、インターネット)及び1つ以上のローカルエリアネットワーク235に接続できる。描かれた事例では、通信がネットワークデバイス205から端末デバイスのいずれかに送信されるためには、描かれたシステムでは、通信は複数のインターネットワーク接続コンポーネント245によって処理されなければならない。
【0028】
[0040]インターネットワーク接続コンポーネント245が通信(又は通信に対応するパケットのセット)を受信するとき、インターネットワーク接続コンポーネント245は、この通信を宛先に関係付けられたネットワークに渡すルートの少なくとも一部を決定できる。ルートは、例えば、(例えば、ルータにおいて記憶された)ルーティングテーブルを使用して決定でき、これは、予め定義されたか、(例えば、別のルータからか又は別のデバイスからの)到来するメッセージに基づいて生成されたか、又は学習された1つ以上のルートを含むことができる。
【0029】
[0041]インターネットワーク接続コンポーネント245の例は、ルータ260及びゲートウェイ265を含む。インターネットワーク接続コンポーネント245(例えば、ゲートウェイ265)は、ネットワークシステム又はプロトコル間で変換するように構成されてもよい。例えば、ゲートウェイ265は、送信制御プロトコル/インターネットプロトコル(TCP/IP)デバイスと、インターネットワークパケット交換/シーケンスパケット交換(IPX/SPX)デバイスとの間の通信を促進してもよい。
【0030】
[0042]ローカルエリアネットワーク235において通信を受信すると、更なるルーティングが依然として実行される必要があるかもしれない。このようなイントラネットワークルーティングは、スイッチ280又はハブ285等の、イントラネットワーク接続コンポーネント255を介して実行できる。各イントラネットワーク接続コンポーネント255は、(例えば、ワイヤレスに、又はイーサネット(登録商標)ケーブル等を介して有線で)複数の端末デバイス215に接続できる。ハブ285は、それが接続されている各デバイスに対して、全ての受信された通信を繰り返すように構成できる。次いで、各端末デバイスは、端末デバイスが宛先デバイスであるかどうか、又は通信が無視されるべきであるかどうかを決定するために、各通信を評価できる。スイッチ280は、通信を宛先端末デバイスのみに選択的に向けるように構成できる。
【0031】
[0043]いくつかの事例では、ローカルエリアネットワーク235は、複数のセグメントに分割されることができ、そのそれぞれが、独立したファイアウォール、セキュリティ規則、及びネットワークプロトコルに関係付けられることができる。イントラネットワーク接続コンポーネント255は、イントラセグメントルーティングを促進するために、1つ、複数、又は全てのセグメントのそれぞれにおいて設けられることができる。ブリッジ280は、セグメント275にわたって通信をルーティングするように構成されることができる。
【0032】
[0044]ネットワークにわたって、又はネットワーク内で通信を適切にルーティングするために、様々なコンポーネントが通信における宛先データを分析する。例えば、そのようなデータは、通信がどのネットワークにルーティングされるべきか、通信がネットワーク内のどのデバイスにルーティングされるべきか、又は端末デバイスがどの通信を処理すべきか(無視すべきか)を示すことができる。しかしながら、いくつかの事例では、ネットワークデバイスからの通信にどの端末デバイスが参加すべきか(又はどのネットワークが参加すべきかさえも)は直ぐには分からない。
【0033】
[0045]図示するために、端末デバイスのセットが、同様のタイプの応答通信を提供するように構成されてもよい。したがって、ネットワークデバイスからの通信におけるクエリは、どのネットワークデバイスに通信がルーティングされるかにかかわらず、同様の方法で応答されてもよいことが予期されてもよい。この仮定は、高いレベルで当てはまるかもしれないが、端末デバイスに関係する様々な詳細は、特定のルーティングが他のものと比較して有利になることをもたらすことができる。例えば、セット内の端末デバイスは、(例えば)どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的近接性及び/もしくはネットワーク近接性、及び/又は、関係付けられたエージェントの特性(例えば、知識ベース、経験、使用言語、可用性、一般的な性格又はセンチメント等)に関して互いに異なるかもしれない。したがって、選択ルーティングは、ネットワークデバイスの通信により正確に及び/又は完全に応答する、より高速な応答を促進してもよい。1つの問題点は、ネットワークデバイスを端末デバイスにマッピングする静的ルーティングが、通信のトピック、チャネルタイプ、エージェントの可用性等におけるバリエーションを考慮できないかもしれないことである。
【0034】
[0046]図3A図3Cは、接続管理システムを含むネットワークインタラクションシステム300a~cの他の実施形態のブロック図を示す。描かれたシステム300a~cのそれぞれは、簡略化のために2つのローカルエリアネットワーク235のみを示しているが、ローカルエリアネットワークの数を増やすために、実施形態を拡張できることが理解されてもよい。システム300a~cのそれぞれは、接続管理システム350を含み、これは、どの端末デバイスがネットワークデバイス205と通信すべきかを識別でき、接続チャネルを確立及び管理(例えば、維持する又は閉じる)でき、交換において通信を再ルーティングするかどうか及びいつ再ルーティングするかを決定できる、等する。したがって、接続管理システム350は、ルーティング決定に影響を及ぼすために、通信、エージェントの可用性、端末デバイス又はエージェントの能力等を動的にかつリアルタイムで評価するように構成できる。
【0035】
[0047]図3Aでは、接続管理システム350は、ネットワークデバイス205及び遠隔サーバ340のそれぞれに関係付けられている(例えば、接続管理システム350aは、ネットワークデバイス205に関係付けられており、接続管理システム350bは、遠隔サーバ340に関係付けられている)。例えば、接続管理システム350a及び/又は接続管理システム350bは、それぞれネットワークデバイス205及び遠隔サーバ340のそれぞれにアプリケーションとしてインストール又は記憶できる。アプリケーションの実行は、例えば、ネットワークデバイス205との通信交換に参加するために選択される端末デバイス215を識別するための、ネットワークデバイス205と遠隔サーバ340との間の通信を促進できる。識別は、本明細書で開示される1つ以上のファクタ(例えば、可用性、通信のトピック/詳細レベルと、エージェント又は端末デバイスの知識ベースとの間のマッチング、予測レイテンシ、チャネルタイプの可用性等)に基づいて行われることができる。
【0036】
[0048]クライアントデバイス330は、ルーティング決定がどのように行われるべきか示すクライアントデータを提供できる。例えば、このようなデータは、特定の特性をどのように重み付け又はマッチングさせるべきかに関するインジケーション、又は制約もしくはバイアス(例えば、負荷バランシング又は予測応答レイテンシに関係する)を含むことができる。クライアントデータはまた、通信チャネルがいつ確立される(又は閉じられる)べきか、又は異なるネットワークデバイスに通信がいつ再ルーティングされるべきかに関する仕様も含むことができる。クライアントデータは、通信ルーティング等のための規則等の、様々なクライアント固有の規則を定義するために使用できる。
【0037】
[0049]遠隔サーバ340上で実行中の接続管理システム350bは、どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的近接性及び/もしくはネットワーク近接性、端末デバイスとの通信のレイテンシ及び/もしくは安定性、端末デバイスのタイプ、端末デバイスの能力、端末デバイス(又はエージェント)が所定のネットワークデバイス(又はユーザ)と以前に通信したことがあるかどうか、並びに/又は、関係付けられたエージェントの特性(例えば、知識ベース、経験、使用言語、可用性、一般的な性格又はセンチメント等)のような、端末デバイスに関係する(例えば、所定のクライアントに関係する)様々なメトリックを監視できる。したがって、接続管理システム350bは、メトリックに基づいて、ネットワークデバイスの通信により正確に及び/又は完全に応答する、より高速な応答を促進するようにルーティングを選択することが可能となってもよい。
【0038】
[0050]図3Aに描かれる例では、ネットワークデバイス205と遠隔サーバ340との間の通信交換は、宛先アドレスの早期識別を促進できる。次いで、ネットワークデバイス205は、後続の通信を向けるために、宛先アドレスを使用してもよい。例えば、ネットワークデバイス205は、(例えば、1つ以上のインターネットワーク接続及び広域ネットワークを介して)遠隔サーバ340に初期通信を送ってもよく、遠隔サーバ340は、1つ以上の対応するクライアントを識別してもよい。次いで、遠隔サーバ340は、1つ以上の対応するクライアントに関係付けられた端末デバイスのセットを識別し、それらの端末デバイスについてのメトリックを収集してもよい。メトリックは、通信交換に関与させる端末デバイスを選択するために(例えば、遠隔サーバ340によって)評価されることができ、端末デバイスに関係する情報(例えば、IPアドレス)が、ネットワークデバイス205に送られることができる。いくつかの実施形態では、遠隔サーバ340は、様々な端末デバイスについてのメトリックを継続的又は周期的に収集及び評価し、評価結果をデータストアに記憶してもよい。このような実施形態では、1つ以上の対応するクライアントに関係付けられた端末デバイスのセットを識別すると、遠隔サーバ340は、データストアからの記憶された評価結果にアクセスし、記憶された評価結果に基づいて、通信交換に関与させる端末デバイスを選択できる。
【0039】
[0051]図3Bでは、接続管理システム350は、中継器及び/又は宛先アドレスとして機能するように構成されることができる。したがって、例えば、ネットワークデバイス205のセットは、それぞれが接続管理システム350を宛先として識別する通信を送信してもよい。接続管理システム350は、各通信を受信でき、端末デバイスのセットを(例えば、各端末デバイスについてのメトリックを生成するために)同時並行に監視できる。監視及び規則に基づいて、接続管理システム350は、それが各通信を中継してもよい端末デバイス215を識別できる。実施形態に応じて、端末デバイスの通信は、同様に、更なる中継のために(例えば、接続管理システム350の)一貫した宛先に向けられてもよいか、又は、端末デバイスは、対応するネットワークデバイスと直接通信することを開始してもよい。これらの実施形態は、効率的なルーティング及び徹底した通信の監視を促進できる。
【0040】
[0052]図3Cに描かれている実施形態は、図3Bのものと同様である。しかしながら、いくつかの実施形態では、接続管理システム350は、イントラネットワークコンポーネント(例えば、端末デバイス、イントラネットワーク接続、又はその他)に直接接続される。
【0041】
[0053]図3A図3Cの多くのバリエーションが企図されることが理解されよう。例えば、接続管理システム350は、接続管理システム350(又はその一部)に対応するアプリケーションが、コンポーネント上にインストールされるように、接続コンポーネント(例えば、インターネットワーク接続コンポーネント245又はイントラネットワーク接続コンポーネント255)に関係付けられてもよい。アプリケーションは、例えば、独立に、又は(例えば、1つ以上の他のコンポーネント、ネットワークデバイス、又は遠隔サーバ上で実行中の)1つ以上の同様の又は相補的なアプリケーションと通信することによって、実行してもよい。
【0042】
[0054]図4は、接続コンポーネントの動作のプロトコルスタックマッピング400を表したものを示す。より具体的には、図4は、様々な接続コンポーネントに対応する開放型システムインタラクション(OSI:Open Systems Interaction)モデルにおける動作の層を識別する。
【0043】
[0055]OSIモデルは、複数の論理層402~414を含むことができる。これらの層は、層402~412がそれぞれ上位レベルをサービスし、層404~414がそれぞれ下位層によってサービスされるように、順序付けられたスタックにおいて配置されている。OSIモデルは、物理層402を含む。物理層402は、パラメータの物理的通信(例えば、電気的、光学的、又は電磁的)を定義できる。物理層402はまた、接続を確立及び閉じるためのプロトコル等の接続管理プロトコルを定義する。物理層402は、フロー制御プロトコル及び送信モードをさらに定義できる。
【0044】
[0056]リンク層404は、ノード間通信を管理できる。リンク層404は、エラー(例えば、物理層402における送信エラー)を検出及び訂正し、アクセス許可を管理できる。リンク層404は、媒体アクセス制御(MAC)層及び論理リンク制御(LLC)層を含むことができる。
【0045】
[0057]ネットワーク層406は、(例えば、データグラムとして)同じネットワーク内のノードにわたる(例えば、可変長の)データの転送を調整できる。ネットワーク層406は、論理ネットワークアドレスを物理機械アドレスに変換できる。
【0046】
[0058]トランスポート層408は、送信品質及び受信品質を管理できる。トランスポート層408は、送信制御プロトコル(TCP)等の、データを転送するためのプロトコルを提供できる。トランスポート層408は、送信用のデータパケットのセグメント化/非セグメント化を実行でき、層402~406において発生する送信エラーを検出し、それに対処できる。セッション層410は、ローカルアプリケーションとリモートアプリケーションとの間の接続を開始、維持、及び終了させることができる。セッションは、リモートプロシージャインタラクションの一部として使用されてもよい。プレゼンテーション層412は、アプリケーション層又はネットワーク層によって受け入れられることが知られているデータタイプに基づいて、データを暗号化、解読、及びフォーマットできる。
【0047】
[0059]アプリケーション層414は、通信を制御又は管理するソフトウェアアプリケーションとインタラクトできる。そのようなアプリケーションを介して、アプリケーション層414は、(例えば)宛先、ローカルリソースの状態もしくは可用性、及び/又は通信のコンテンツもしくはフォーマッティングを識別できる。様々な層402~414は、利用可能かつ適用可能な場合、他の機能を実行できる。
【0048】
[0060]イントラネットワーク接続コンポーネント422、424は、物理層402及びリンク層404において動作するように示されている。より具体的には、通信の受信及び送信に関して動作が制御できるように、ハブが物理層で動作できる。ハブには、通信をアドレス指定する又はデータをフィルタリングする能力がないため、それらは、上位レベルで動作する能力をほとんど又は全く有していない。一方、スイッチは、それらがアドレス(例えば、MACアドレス)に基づいて通信フレームをフィルタリングすることが可能であるので、リンク層404で動作できる。
【0049】
[0061]一方、インターネットワーク接続コンポーネント426、428は、上位レベル(例えば、層406~414)で動作するように示されている。例えば、ルータは、アドレス(例えば、IPアドレス)に基づいて、通信データパケットをフィルタリングできる。ルータは、パケットを適切なネットワークに向けるように、アドレスに基づいて特定のポートにパケットを転送できる。ゲートウェイは、ネットワーク層及びそれより上位で動作し、同様のフィルタリング及び誘導、並びに(例えば、プロトコル又はアーキテクチャにわたる)更なるデータのトランスレーションを実行できる。
【0050】
[0062]接続管理システム450は、様々な実施形態において、様々な層のうちの1つ、複数、全て、又は任意のものとインタラクトでき、及び/又はその上で動作できる。例えば、接続管理システム450は、どの端末デバイスとハブが通信するかを動的に調整するように、ハブとインタラクトできる。別の例として、接続管理システム450は、コンポーネントが宛先(例えば、MAC、論理、又は物理)アドレスとしてどの端末デバイスを選択するかに影響を及ぼすように、ブリッジ、スイッチ、ルータ、又はゲートウェイと通信できる。更なる例として、接続管理システム450は、トランスポート層408上のデータパケットのセグメント化、セッション層410上のセッション持続時間、並びに/又は、プレゼンテーション層412上での暗号化及び/もしくは圧縮を、監視、制御、又は指示できる。いくつかの実施形態では、接続管理システム450は、特定の層で動作する機器(例えば、リンク層404で動作するスイッチ)と通信を交換すること(例えば、それにコマンドを送ること)によって、(例えば、ネットワークデバイスと端末デバイスとの間の)既存の通信を特定の方法でルーティング又は修正することによって、及び/又は、既存の通信に基づいて特定の情報(例えば、新しい宛先アドレス)を含む新しい通信を生成することによって、様々な層とインタラクトできる。したがって、接続管理システム450は、様々なデバイスとのインタラクションを介して、及び/又は様々なプロトコルスタック層での動作に影響を及ぼすことを介して、通信ルーティング及びチャネル確立(あるいは、維持又は終了)に影響を及ぼすことができる。
【0051】
[0063]図5は、一実施形態によるマルチデバイス通信交換システム500を表す。システム500は、様々なタイプの通信チャネル上で様々なタイプの端末デバイスと通信するように構成されたネットワークデバイス505を含む。
【0052】
[0064]描かれる事例では、ネットワークデバイス505は、セルラネットワーク上で(例えば、基地局510を介して)通信を送信できる。通信は、動作ネットワーク515にルーティングされることができる。動作ネットワーク515は、通信を受信し、どの端末デバイスが通信に応答すべきかを識別する接続管理システム520を含むことができる。このような決定は、(例えば、コンテンツ分析又はクライアントを示すユーザ入力に基づいて)その通信が関係するクライアントを識別することと、クライアントに関係付けられた1つ以上の端末デバイスのそれぞれについて1つ以上のメトリックを決定することとに依存することがある。例えば、図5では、端末デバイス530a~cの各クラスタは、異なるクライアントに対応できる。端末デバイスは、地理的にコロケートされてもよいか、又は分散されてもよい。メトリックは、記憶もしくは学習されたデータ及び/又はリアルタイムの監視に基づいて(例えば、可用性に基づいて)決定されてもよい。
【0053】
[0065]接続管理システム520は、1つ以上のルータ525、又は他のインターネットワークもしくはイントラネットワーク接続コンポーネントを介して、様々な端末デバイスと通信できる。接続管理システム520は、1つ以上のデータストアにおいて、通信、端末デバイスの動作、クライアント規則、及び/又はユーザ関連のアクション(例えば、オンラインアクティビティ)からの、又はそれらに関係するデータを収集、分析、及び/又は記憶してもよい。このようなデータは、通信ルーティングに影響を及ぼしてもよい。
【0054】
[0066]特に、通信ルーティング及び/又は処理に影響を及ぼすために、様々な他のデバイスがさらに使用できる。例えば、描かれる事例では、接続管理システム520はまた、ウェブサーバ540にも接続される。したがって、接続管理システム520は、技術的製品詳細等のような、関心対象のデータを検索できる。
【0055】
[0067]ネットワークデバイス505はまた、ウェブサーバ(例えば、ウェブサーバ545を含む)に接続されてもよい。いくつかの事例では、そのようなサーバとの通信には、接続管理システム520と通信交換を開始するための初期オプションが提供される。例えば、ネットワークデバイス505は、特定のウェブページを訪問している間に、通信機会が利用可能であることを検出してもよく、そのようなオプションが提示されることができる。
【0056】
[0068]通信システム500の1つ以上の要素がまた、ソーシャルネットワーキングサーバ550に接続されることができる。ソーシャルネットワーキングサーバ550は、様々なユーザデバイスから受信したデータを集約できる。したがって、例えば、接続管理システム520は、所定のユーザ又はユーザのクラスの一般的な(又はユーザ固有の)挙動を推定することが可能であってもよい。
【0057】
[0069]図6は、接続管理システム600の実施形態のブロック図を示す。メッセージ受信機インターフェース605が、メッセージを受信できる。いくつかの事例では、メッセージは、例えば、ネットワークデバイス又は端末デバイス等の、(例えば、接続管理システム600とは別個に収容されるか、又は同じハウジング内に収容される)ソースデバイスによって送信された通信の一部として受信されることができる。いくつかの事例では、通信は、一連の通信又は通信交換の一部であることがあり、これは、2つのデバイス(例えば、ネットワークデバイス及び端末デバイス)間でルーティングされている一連のメッセージ又はメッセージ交換を含むことができる。このメッセージ又は通信交換は、デバイス間のインタラクションの一部であってもよく、及び/又はそれを定義してもよい。通信チャネル又は動作チャネルは、デバイス間のルーティング及び通信交換を促進するために使用される1つ以上のプロトコル(例えば、ルーティングプロトコル、タスク割当てプロトコル、及び/又はアドレス指定プロトコル)を含むことができる。
【0058】
[0070]いくつかの事例では、メッセージは、ローカル又はリモートユーザインターフェースにおいて受信された入力に基づいて生成されたメッセージを含むことができる。例えば、メッセージは、ボタンもしくはキーの押下又は記録された音声信号に基づいて生成されたメッセージを含むことができる。一事例では、メッセージは、ネットワークデバイスが特定のアプリページ又はウェブページを提示していること、又は特定の入力コマンド(例えば、キー順)を提供したことを検出した際に生成されるもの等の、自動的に生成されたメッセージを含む。メッセージは、通信交換を開始するためのもの等の、命令又は要求を含むことができる。
【0059】
[0071]いくつかの事例では、メッセージは、クライアントの識別子を含むことができ、又はそれに関係付けられることができる。例えば、メッセージは、クライアント(又はクライアントに関係付けられたデバイス)を明示的に識別でき、メッセージは、クライアントに関係付けられたウェブページ又はアプリページを含むことができ、又はそれに関係付けられることができ、メッセージは、クライアントに関係付けられた宛先アドレスを含むことができ、又はそれに関係付けられることができ、あるいは、メッセージは、クライアントに関係付けられたアイテム(例えば、製品)又はサービスの識別を含むことができ、又はそれに関係付けられることができる。例として、ネットワークデバイスは、特定のクライアントのアプリページを提示してもよく、これは、エージェントに通信を送信するためのオプションを提供してもよい。メッセージに対応するユーザ入力を受信すると、メッセージ及び特定のクライアントの識別子を含むように、通信が生成されてもよい。
【0060】
[0072]処理エンジン610は、受信された通信及び/又はメッセージを処理してもよい。処理は、例えば、1つ以上の特定のデータ要素(例えば、メッセージ、クライアント識別子、ネットワークデバイス識別子、アカウント識別子等)を抽出することを含むことができる。処理は、(例えば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコル及び/又はネットワークと互換性があるように)フォーマッティング又は通信タイプを変換することを含むことができる。
【0061】
[0073]メッセージアセスメントエンジン615が、(例えば、抽出又は受信された)メッセージをアセスしてもよい。アセスメントは、例えば、メッセージについての1つ以上のカテゴリ又はタグを識別することを含むことができる。カテゴリ又はタグのタイプの例は、(例えば)トピック、センチメント、複雑さ、及び緊急性を含むことができる。メッセージをカテゴリ分類することと、タグ付けすることとの間の違いは、カテゴリが(例えば、カテゴリオプションの予め定められたセットにしたがって)限定されることができる一方で、タグは自由(open)であることができることである。トピックは、例えば、技術的問題、使用の質問(a use question)、又は要求を含むことができる。カテゴリ又はタグは、例えば、(例えば、キーワード、文構造、繰り返された単語、句読文字及び/又は冠詞でない単語を識別することによる)メッセージの意味分析、(例えば、選択された1つ以上のカテゴリを有する)ユーザ入力、及び/又はメッセージ関連の統計値(例えば、タイピング速度及び/又は応答レイテンシ)に基づいて決定されることができる。
【0062】
[0074]いくつかの事例では、メッセージアセスメントエンジン615は、メッセージについてのメトリックを決定できる。メトリックは、例えば、文字数、単語数、大文字数、全て大文字の単語数、又は特定の文字もしくは句読点(例えば、感嘆符、疑問符、及び/又はピリオド)の事例の数を含むことができる。メトリックは、感嘆符(又は疑問符)で終わる文の割合、全て大文字の単語の割合等の比率を含むことができる。
【0063】
[0075]メッセージアセスメントエンジン615は、メッセージ、メッセージメトリック、及び/又はメッセージ統計値をメッセージデータストア620に記憶できる。各メッセージはまた、対応するソースデバイス、宛先デバイス、ネットワークデバイス、端末デバイス、クライアント、1つ以上のカテゴリ、1つ以上の段階、及び/又はメッセージ関連の統計値を識別するデータ等の、他のデータ(例えば、メタデータ)に関連して記憶できる。接続管理システム600の様々なコンポーネント(例えば、メッセージアセスメントエンジン615及び/又はインタラクション管理エンジン625)は、クエリ応答メッセージ、メッセージメトリック、及び/又はメッセージ統計値を検索するために、メッセージデータストア620に問い合わせることができる。
【0064】
[0076]インタラクション管理エンジン625は、どのデバイスに通信がルーティングされるべきか、並びに受信デバイス及び送信デバイスがどのように通信すべきかを決定できる。これらの決定のそれぞれは、例えば、特定のネットワークデバイス(又は特定のユーザに関係付けられた任意のネットワークデバイス)が、端末デバイスのセットにおける端末デバイス(例えば、接続管理システム600に関係付けられた任意の端末デバイス、又は1つ以上の特定のクライアントに関係付けられた任意の端末デバイス)と以前に通信しことがあるかどうかに依存することがある。
【0065】
[0077]いくつかの事例では、ネットワークデバイス(又は、同じユーザもしくはプロファイルに関係付けられた他のネットワークデバイス)が、所定の端末デバイスと以前に通信したことがあるとき、通信ルーティングは、一般に、同じ端末デバイスに向かってバイアスされることができる。ルーティングに影響を及ぼしてもよい他のファクタは、例えば、端末デバイス(又は対応するエージェント)が利用可能であるかどうか、及び/又は端末デバイスの予測応答レイテンシを含むことができる。このようなファクタは、絶対的に、又は他の端末デバイスに対応する同様のメトリックに対して相対的に考慮されてもよい。再ルーティング規則(例えば、クライアント固有の規則又は一般的規則)が、エージェント一貫性を断念する(forego)かどうかを決定するために、そのようなファクタがどのようにアセスされ、重み付けされるべきかを示すことができる。
【0066】
[0078]ネットワークデバイス(又は同じユーザもしくはアカウントに関係付けられた他のネットワークデバイス)が所定の端末デバイスと以前に通信したことがないとき、端末デバイスの選択は、例えば、様々なエージェントの知識ベースが通信のトピックに対応する程度、所定の時間での及び/又はチャネルタイプ上での様々なエージェントの可用性、(例えば、クライアントに関係付けられた)端末デバイスのタイプ及び/又は能力等のファクタに基づいて実行されることができる。一事例では、規則は、これらのような1つ以上のファクタに対するサブパラメータと、各パラメータに割り当てるべき重みとをどのように決定するかを識別できる。重み付けされたサブパラメータを組み合わせる(例えば、合計する)ことによって、各エージェントについてのパラメータが決定できる。次いで、端末デバイスの選択が、端末デバイスのパラメータを比較することによって行われることができる。
【0067】
[0079]デバイスがどのように通信すべきか決定することに関して、インタラクション管理エンジン625は、(例えば)端末デバイスが、(例えば)SMSメッセージ、音声通話、ビデオ通信等を介して通信に応答すべきかどうかを決定できる。通信タイプは、例えば、(例えば、クライアント又はユーザによって少なくとも部分的に定義される)通信タイプ優先順位リスト、(例えば、一貫性を増進するように)ネットワークデバイスから以前に受信された通信のタイプ、受信されたメッセージの複雑さ、ネットワークデバイスの能力、及び/又は、1つ以上の端末デバイスの可用性に基づいて選択されることができる。明らかに、いくつかの通信タイプは、(例えば、高速メッセージ応答が予期される)リアルタイム通信をもたらすことになる一方で、その他は、(例えば、メッセージ間の(例えば、数分又は数時間の)遅延が許容可能である)非同期通信をもたらすことがある。
【0068】
[0080]さらに、インタラクション管理エンジン625は、2つのデバイス間の連続チャネルが確立、使用、又は終了されるべきかどうかを決定できる。連続チャネルは、ネットワークデバイスから指定された端末デバイスへの将来の通信のルーティングを促進するように構造化されることができる。このバイアスは、メッセージ系列(message series)にわたってさえも持続できる。いくつかの事例では、(例えば、エージェントを識別する)連続チャネルの表現が、ネットワークデバイス上で提示されるべき提示に含まれることができる。このようにして、ユーザは、効率を増進するために、通信が一貫してルーティングされるべきであることを理解できる。
【0069】
[0081]一事例では、パラメータが、所定のネットワークデバイス及び端末デバイスに対応する接続パラメータを決定するために、本明細書で説明される1つ以上のファクタと、(例えば、1つ以上のファクタのそれぞれについての重みを含む)規則とを使用して生成されることができる。パラメータは、全体的な一致又は所定の通信もしくは通信系列に固有の一致に関係してもよい。したがって、例えば、パラメータは、所定の端末デバイスがネットワークデバイス通信に応答するのに適していると予測される程度を反映してもよい。いくつかの事例では、パラメータ分析が、所定の通信をルーティングすべき端末デバイスのそれぞれを識別するために、及び接続チャネルを確立、使用、又は終了させるかどうかを識別するために使用できる。パラメータ分析がルーティング決定とチャネル決定との両方に対処するために使用されるとき、各決定に関連するパラメータは、同じ、同様の、又は異なる方式で決定されてもよい。
【0070】
[0082]したがって、例えば、パラメータが、長期一致(long-term match)の強度を予測するためのものであるか、特定のメッセージクエリに応答するためのものであるかに応じて、異なるファクタが考慮されてもよいことが理解されよう。例えば、前者の場合には、全体的なスケジュール及び時間帯の考慮が重要であってもよく、一方、後者の場合には、即時の可用性がより高く重み付けされてもよい。1つのパラメータが、単一のネットワークデバイス/端末デバイスの組合せに対して決定されることができ、又は所定のネットワークデバイスと異なる端末デバイスとの間の一致をそれぞれ特徴付けている複数のパラメータが決定されることができる。
【0071】
[0083]例として、クライアントに関係付けられた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、11及び19となる。したがって、規則は、最も高いパラメータを有するデバイス、すなわち、第3の端末デバイスに、メッセージがルーティングされるべきであることを示してもよい。特定の端末デバイスへのルーティングが失敗した場合、そのメッセージは、次に高いパラメータを有するデバイスにルーティングされることができ、以下同様である。
【0072】
[0084]パラメータは、1つ以上の絶対しきい値又は相対しきい値と比較されてもよい。例えば、通信がルーティングされることができる端末デバイスを選択するために、端末デバイスのセットについてのパラメータが、高いパラメータを識別するために互いに比較されることができる。別の例として、パラメータ(例えば、高いパラメータ)が、端末デバイスとの連続チャネルを確立するかどうかを決定するために、1つ以上の絶対しきい値と比較されることができる。連続チャネルを確立するための全体的なしきい値は、(そうである必要はないが)所定の一連のメッセージにおいて通信を一貫してルーティングするためのしきい値よりも高くなってもよい。全体的なしきい値と、通信を一貫してルーティングするかどうかを決定するためのしきい値との間のこの差は、チャネルの拡張された有用性を仮定すると、連続チャネルの文脈では、強い一致が重要であるからであってもよい。いくつかの実施形態では、連続チャネルを使用するための全体的なしきい値は、(そうである必要はないが)所定の一連のメッセージにおいて通信を一貫してルーティングするための、及び/又は連続チャネルを確立するためのしきい値よりも低くなってもよい。
【0073】
[0085]インタラクション管理エンジン625は、様々な文脈において、アカウントエンジン630とインタラクトできる。例えば、アカウントエンジン630は、デバイスに対応するアカウントを識別するために、アカウントデータストア635内のネットワークデバイス又は端末デバイスの識別子をルックアップしてもよい。さらに、アカウントエンジン630は、以前の通信交換に関するデータ(例えば、回数、関与した他のデバイス、チャネルタイプ、解決段階、トピック及び/又は関係付けられたクライアント識別子)、(例えば、-1つ以上のクライアントのそれぞれについて-何らかのチャネルが存在するかどうか、各チャネルに関係付けられた端末デバイス、確立時間、使用頻度、最終使用日付、任意のチャネル制約及び/又はサポートされる通信のタイプを示す)接続チャネルに関するデータ、(例えば、端末デバイスの選択、応答レイテンシ、端末デバイスの一貫性、エージェントの専門知識、及び/又は通信タイプの選好もしくは制約に関連する)ユーザ又はエージェントの選好又は制約に関するデータ、及び/又は、ユーザ又はエージェントの特性に関するデータ(例えば、年齢、使用言語又は選好の言語、地理的ロケーション、関心等)を維持できる。
【0074】
[0086]さらに、インタラクション管理エンジン625は、アカウントデータストア635が現在のチャネルデータを反映するように更新されることができるように、アカウントエンジン630に様々な接続チャネルアクションを知らせることができる。例えば、チャネルを確立すると、インタラクション管理エンジン625は、アカウントエンジン630に確立を通知し、ネットワークデバイス、端末デバイス、アカウント、及びクライアントのうちの1つ以上を識別できる。その後、アカウントエンジン635は、(いくつかの事例では)利用されているエージェント一貫性をユーザが認識できるように、チャネルの存在をユーザに通知できる。
【0075】
[0087]インタラクション管理エンジン625は、クライアントマッピングエンジン640とさらにインタラクトでき、それは、通信を1つ以上のクライアント(及び/又は関係付けられたブランド)にマッピングできる。いくつかの事例では、ネットワークデバイス自体から受信される通信が、クライアントに対応する識別子(例えば、クライアント、ウェブページ、又はアプリページの識別子)を含む。識別子は、(例えば、クライアントマッピングエンジン640が検出してもよい)メッセージの一部として含まれることができ、又はメッセージ包含通信における他のデータとして含まれることができる。次いで、クライアントマッピングエンジン640は、クライアント及び/又はクライアントの識別子に関する追加のデータを検索するために、クライアントデータストア645内の識別子をルックアップしてもよい。
【0076】
[0088]いくつかの事例では、メッセージは、特にいずれのクライアントにも対応しないかもしれない。例えば、メッセージは、一般的なクエリを含んでいてもよい。クライアントマッピングエンジン640は、例えば、メッセージに対して意味分析を実行し、1つ以上のキーワードを識別し、キーワードに関係付けられた1つ以上のクライアントを識別してもよい。いくつかの事例では、単一のクライアントが識別される。いくつかの事例では、複数のクライアントが識別される。次いで、各クライアントの識別が、ユーザが(例えば、関係付けられた端末デバイスを介して)通信すべきクライアントを選択できるように、ネットワークデバイスを介して提示されてもよい。
【0077】
[0089]クライアントデータストア645は、クライアントに関係付けられた1つ以上の端末デバイス(及び/又はエージェント)の識別を含むことができる。端末ルーティングエンジン650が、ルーティング決定に影響を及ぼすために、1つ、複数、又は全てのそのような端末デバイス(及び/又はエージェント)のそれぞれに関係するデータを検索又は収集できる。例えば、端末ルーティングエンジン650は、端末データストア655を維持してもよく、これは、端末デバイスのデバイスタイプ、オペレーティングシステム、通信タイプの能力、インストールされたアプリケーションアクセサリ、地理的ロケーション、及び/又は識別子(例えば、IPアドレス)等の情報を記憶できる。一部の情報は、動的に更新されることができる。例えば、端末デバイスが利用可能であるかどうかを示す情報は、(例えば)端末デバイスからの通信(例えば、デバイスがスリープ状態にあるか、オフ/オンにされているか、非アクティブ/アクティブ状態にあるかを識別し、又は入力が時間期間内に受信されたかどうかを識別する)、通信ルーティング(例えば、端末デバイスが通信交換に関与しているかどうか、又はその一部に割り当てられているかどうかを示す)、又は通信交換が終了又は開始したことを示す、ネットワークデバイス又は端末デバイスからの通信に基づいて、動的に更新されてもよい。
【0078】
[0090]様々な文脈では、1つ以上の通信交換に従事していることは、必ずしも端末デバイスが別の通信交換に従事するのに利用可能でないことを示すとは限らないことが理解されよう。通信タイプ(例えば、メッセージ)、クライアントにより識別されたもしくはユーザにより識別されたターゲット応答時間、及び/又は(例えば、一般的な、又はユーザに関する)システム負荷等の様々なファクタが、端末デバイスがいくつの交換に関与してもよいかに影響を及ぼしてもよい。
【0079】
[0091]インタラクション管理エンジン625が通信交換又は接続チャネルに関与させるべき端末デバイスを識別したとき、それは、端末ルーティングエンジン650に通知でき、端末ルーティングエンジン650は、端末データストア655から、宛先(例えば、IP)アドレス、デバイスタイプ、プロトコル等のような、端末デバイスに関する任意の関連データを検索してもよい。次いで、処理エンジン610は、(いくつかの事例では)特定のフォーマットを有し、特定のプロトコルに準拠するように等、メッセージ包含(message-inclusive)通信を修正でき、又は(メッセージを含む)新しい通信を生成できる。いくつかの事例では、新しい又は修正されたメッセージは、ネットワークデバイスに対応するアカウントデータ、メッセージクロニクル、及び/又はクライアントデータ等の、追加のデータを含んでいてもよい。
【0080】
[0092]次いで、メッセージ送信機インターフェース660が、通信を端末デバイスに送信できる。送信は、例えば、別個のハウジングに収容されたデバイスへのワイヤード送信又はワイヤレス送信を含んでいてもよい。端末デバイスは、接続管理システム600と同じ又は異なるネットワーク(例えば、ローカルエリアネットワーク)内の端末デバイスを含むことができる。したがって、端末デバイスに通信を送信することは、インター又はイントラネットワーク接続コンポーネントに通信を送信することを含むことができる。
【0081】
[0093](例えば、ユーザによって動作される)ネットワークデバイスとの通信セッション中に、ボットと(例えば、生身のユーザによって動作される)端末デバイスとの間で動的に切り替えるためのシステム及び方法が提供される。いくつかのインプリメンテーションでは、ボットは、ネットワークデバイスと自律的に通信するように構成されることができる。さらに、ボットは、特定の能力のために構成されることができる。能力の例は、データベースレコードを更新すること、ユーザに更新を提供すること、ユーザに関する追加のデータをエージェントに提供すること、ユーザのインテントを決定すること及びインテントに基づいてユーザを宛先システムにルーティングすること、ユーザと通信しているエージェントに対する応答を予測又は提案すること、1つ以上の追加のボット又はエージェントを含むように通信セッションを段階的に拡大させること、並びに他の好適な能力を含むことができる。いくつかのインプリメンテーションでは、ボットが、(例えば、チャット対応インターフェースを使用して)通信セッション中に(例えば、ユーザによって動作される)ネットワークデバイスと通信している間に、通信サーバが、ボットを端末デバイスに切り替えることを自動的かつ動的に決定できる。例えば、ボットは、ある特定のタスク(例えば、ユーザに関係付けられたデータベースレコードを更新すること)に関してユーザと通信でき、一方、端末デバイスは、(例えば、技術的問題を解決するために、通信チャネルを使用して通信する等)より困難なタスクについてユーザと通信できる。
【0082】
[0094]いくつかのインプリメンテーションでは、通信セッション中に、ボットと端末デバイスとの間で切り替えるかどうかを決定することは、通信セッションにおけるメッセージの、1つ以上の特性の分析に基づくことができる。さらに、動的センチメントパラメータが、メッセージ、会話、エンティティ、エージェント等のセンチメントを表すために生成されることができる。例えば、動的センチメントパラメータが、ユーザがボットに不満を抱いていることを示す場合、システムは、生身のエージェントがユーザと通信できるように、ボットを端末デバイスに自動的に切り替えることができる。あらゆる目的のために、その開示全体が参照により本明細書に組み込まれている、2016年6月2日に出願された米国シリアル番号第15/171,525号を参照されたい。いくつかの例では、ボットと端末デバイスとの間で切り替えるかどうかを決定することは、ユーザからのプロンプトなしで実行できる。決定は、通信セッション(例えば、チャット)における現在のメッセージの特性、以前の通信セッションにおいてユーザによって送信された以前のメッセージの特性、会話における複数のメッセージにわたる特性(例えば、センチメント)の軌跡、又はユーザに関係付けられた追加の情報(例えば、プロファイル情報、選好情報、及びユーザに関係付けられた他の好適な情報)を含む、任意の数のファクタに基づいて、通信サーバにおいて自動的に実行されることができる。
【0083】
[0095]図7は、通信セッション中にボットと端末デバイスとを動的に切り替えるためのネットワーク環境のブロック図を示す。いくつかのインプリメンテーションでは、ネットワーク環境700は、ネットワークデバイス705と、通信サーバ710と、端末デバイス715と、ボット720とを含むことができる。通信サーバ710は、少なくとも1つの記憶デバイスを備えた1つ以上のプロセッサを備えたサーバであることができ、本明細書で説明される方法及び技術を実行するように構成されることができる。たとえば、通信サーバ710は、(たとえば、ユーザによって動作させられる)ネットワークデバイスと(たとえば、エージェントによって動作させられる)端末デバイスとの間の通信セッションを管理できる。通信サーバ710は、ネットワークデバイス705及び端末デバイス715が、通信セッション中に互いと通信できるように、ネットワークデバイス705と端末デバイス715との間に通信チャネルを確立できる。通信セッションは、ネットワークデバイス705と端末デバイス715との間の1つ以上のメッセージの交換を促進できる。本開示は、通信セッション中のメッセージの交換に限定されない。他の形態の通信が、通信セッション、たとえば、ビデオ通信(たとえば、ビデオフィード)及びオーディオ通信(たとえば、ボイスオーバIP接続)によって促進されることができる。
【0084】
[0096]いくつかのインプリメンテーションでは、通信サーバ710は、ネットワークデバイス705とボット720との間に通信チャネルを確立できる。ボット720は、実行されるとき、ネットワークデバイス705と自律的に通信するように構成されたコードであることができる。例えば、ボット720は、ネットワークデバイス705に関係付けられたユーザとの会話を開始するためのメッセージを自動的に生成するための、及び/又はネットワークデバイス705からのメッセージに自動的に応答するためのボットであることができる。加えて、通信サーバ710は、プラットフォームに関係付けられることができる。クライアント(例えば、プラットフォームに対する外部システム)は、プラットフォームを使用して、それらの内部通信システムにおけるボットを展開できるいくつかの例では、クライアントは、プラットフォームにおいてそれら独自のボットを使用でき、これは、クライアントが、本明細書で説明される方法及び技術をそれらの内部通信システムに実装することを可能にする。
【0085】
[0097]いくつかのインプリメンテーションでは、ボットは、1つ以上のソースによって定義されることができる。例えば、データストア730は、通信サーバのクライアントによって定義された(例えば、作成又はコーディングされた)ボットを表すコードを記憶できる。例えば、独自のボットを定義したクライアントは、ボットを通信サーバ710にロードできる。クライアントによって定義されたボットは、クライアントボットデータストア730に記憶されることができる。データストア740は、サードパーティシステムによって定義されたボットを表すコードを記憶できる。例えば、サードパーティシステムは、独立したソフトウェアベンダを含むことができる。データストア750は、通信サーバ710に関係付けられたエンティティによって定義されたボットを表すコードを記憶できる。例えば、エンティティによってコーディングされたボットは、ボットが実行され、ユーザと自律的に通信できるように、通信サーバ710にロードされることができ、又は通信サーバ710によってアクセス可能であることができる。いくつかのインプリメンテーションでは、通信サーバ710は、クラウドネットワーク760を使用して、データストア730、データストア740、及び/又はデータストア750に記憶されたボットにアクセスできる。クラウドネットワーク760は、任意のネットワークであってもよく、インターネット等のオープンネットワーク、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、キャンパスエリアネットワーク(CAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、ワイヤレスローカルエリアネットワーク(WLAN)、イントラネット、エクストラネット、又は他のバックボーン等のプライベートネットワークを含むことができる。
【0086】
[0098]さらに、端末デバイス715は、エージェントによって動作されることができる。端末デバイス715は、任意のポータブル(たとえば、モバイルフォン、タブレット、ラップトップ)であることができ、又は非ポータブルデバイス(たとえば、電子キオスク、デスクトップコンピュータ、など)であることができる。いくつかの事例では、エージェントは、端末デバイス715上で実行しているブラウザを使用してウェブサイトにアクセスできる。たとえば、ウェブサイトは、端末デバイス715のブラウザ上で実行しているコンソール又はプラットフォームを含むことができる。エージェントは、ブラウザを使用してプラットフォームにログインできる。1つ以上のログイン資格証明(たとえば、ユーザ名、パスワード、など)は、エージェントがコンソール又はコンソール内に含まれたウェブアプリケーションに対するアクセスを得ることを可能にする前に、エージェントの識別子を認証するために使用されることができる。コンソールの例は、1つ以上のAPI(アプリケーションプログラミングインターフェース)、1つ以上の関数を含むダッシュボード、通信セッションを確立すること又はそれに参加することが可能な(プラグインをダウンロードする必要なしに)ウェブブラウザ上で実行するウェブホストアプリケーション、及び他の好適なインターフェースを含むプラットフォームを含むことができる。さらに、コンソールは、実行されることができる、1つ以上のウェブアプリケーション又は関数を含むことができる。ウェブアプリケーション又は関数は、ブラウザにおいて、通信サーバ710、ローカルサーバ、遠隔サーバ、又は他の好適なコンピューティングデバイスにおいて、実行できる。たとえば、ウェブアプリケーション、ネイティブアプリケーション、又は関数は、エージェントが、ユーザと通信すること、ユーザと1つ以上のボットとの間の通信を閲覧することを可能にできる。
【0087】
[0099]いくつかのインプリメンテーションでは、通信サーバ710は、特定の通信セッション中にボット720と端末デバイス715との間で動的に切り替えるように構成されることができる。例えば、通信サーバ710は、ネットワークデバイス705とボット720との間の通信セッションを促進できる。ボット720は、通信セッション中にネットワークデバイス705と1つ以上のメッセージを交換することによって、ネットワークデバイス705と自律的に通信するように構成されることができる。通信サーバ710は、ボット720の代わりに、生身のエージェントがネットワークデバイス705と通信できるように、ボット720を端末デバイス715に(又は場合によってはその逆に)切り替えるかどうかを動的に決定できる。いくつかのインプリメンテーションでは、切り替えは、ネットワークデバイス705又は端末デバイス715からのプロンプトなしに実行されることができる。例えば、切り替えは、端末デバイスを要求するようにネットワークデバイス705にプロンプトすることなく、ネットワークデバイス705とボット720との間で交換されるメッセージのメッセージパラメータ(例えば、メッセージ又は一連のメッセージのセンチメントを表すスコア)に基づくことができる。
【0088】
[00100]いくつかのインプリメンテーションでは、通信サーバ710は、ボット720とネットワークデバイス705との間で交換されたメッセージの特性に基づいて、ボット720と端末デバイス715とを自動的に切り替えることを決定できる。いくつかの事例では、特性(たとえば、メッセージパラメータ)を決定するためにメッセージのテキストを分析することは、メッセージに関係するテキスト又は非テキスト属性の分析を含むことができる。たとえば、通信サーバ710は、メッセージ内に含まれたテキストの1つ以上の行をネットワークデバイス705から抽出できる。通信サーバ710は、テキストの1つ以上の行がアンカーを含むかどうかを識別できる。アンカーの例は、極性に関連するテキストの列(たとえば、感情又は意図、負極性又は苛立ち極性に対応する「苛立つ」という語、正極性に対応する「幸せ」という語、など)を含む。たとえば、1つのクライアントにとって「論争」という用語は否定的であることがあるが、第2のクライアントにとっては中立又は肯定的であることがある。いくつかの事例では、アンカーは、教師あり機械学習技術を使用して動的に決定されることができる。たとえば、1つ以上のクラスタリングアルゴリズムが、記憶されたメッセージ内のパターンを見出すために記憶されたメッセージ上で実行されることができる。クラスタリングされたメッセージは、アンカーを決定するためにさらにフィルタ処理され評価されることができる。さらに、識別されたアンカー近くの1つ以上の語は、増幅詞に対して構文解析されることができる。増幅詞の一例は、「とても」、「あまり」、「ちょっと」、など、アンカーの極性に関係する強度を増大又は低下させる用語である。この特性は、たとえば、タイプ速度、(たとえば、感嘆符、疑問符、など)メッセージ内で使用される特殊文字の数、(たとえば、キーワード、文の構造、反復語、句読文字、及び/又は冠詞ではない語を識別することによる)メッセージの意味分析、(たとえば、選択された1つ以上のカテゴリを有する)ユーザ入力、及び/又はメッセージ関連統計(たとえば、応答レイテンシ)を含むことができる。
【0089】
[00101]非限定的な例として、メッセージパラメータは、負の極性の高い強度を示す数値であることができる(例えば、0~100のスケールで20のメッセージパラメータであり、より低い数は負の極性を示し、より高い数は正の極性を示す)。アルゴリズムが、メッセージパラメータを計算するために使用されることができる。例えば、アルゴリズムは、教師あり機械学習技術に基づいてもよい。更なる例では、「ちょっと」という用語が、(例えば、「私は~をちょっと好きではない」という文でのように)アンカー「好きではない」に近い場合、「ちょっと」という用語は、負の極性の中程度の強度を示す増幅詞用語として識別されてもよい。この場合、メッセージパラメータは、負の極性の中程度の強度の識別に基づいて生成されることができる。非限定的な例として、メッセージパラメータは、負の極性の中程度の強度を示す数値であることができる(例えば、20のメッセージパラメータとは対照的に40のメッセージパラメータ)。いくつかの事例では、メッセージパラメータは、どのセカンダリキューが通信を記憶すべきかを決定するために使用されることができる。
【0090】
[00102]いくつかのインプリメンテーションでは、メッセージの特性は、メッセージに関係付けられたセンチメントであることがある。メッセージパラメータは、メッセージのセンチメントを表すことができる。例えば、メッセージのセンチメントが喜びである場合、メッセージパラメータは、ある値又は値の範囲であることができ、一方、メッセージのセンチメントが怒りである場合、メッセージパラメータは、別の値又は値の範囲であることができる。ボットと端末デバイスとの間で切り替えるかどうかを決定することは、メッセージパラメータに基づくことができ、これは、通信サーバ710において受信される新しいメッセージごとに継続的かつ自動的に更新される。
【0091】
[00103]いくつかのインプリメンテーションでは、通信サーバ710は、ネットワークデバイス705から受信されたメッセージに対する応答を推奨又は予測してもよい。たとえば、通信サーバ710は、ネットワークデバイス705から受信されたメッセージを評価し、それらの受信されたメッセージに対する応答を推奨するために機械学習モデルを使用することができる、メッセージ推奨システムを含むことができる。メッセージ推奨システムは、ネットワークデバイス705と通信中のエージェントを支援するために推奨されるメッセージのセットを端末デバイス715上に表示できる。
【0092】
[00104]図8は、複数の通信チャネルにわたってエンドポイントを動的に選択するためのネットワーク環境800を表すブロック図を示す。いくつかのインプリメンテーションでは、ネットワーク環境800は、ネットワークデバイス805と、端末デバイス810と、通信サーバ820と、を含んでいてもよい。ネットワークデバイス805は、ネットワークデバイス705と同様であってもよく、したがって、ここでは簡潔さのために説明を省略する。端末デバイス810は、端末デバイス715と同様であってもよく、したがって、ここでは簡潔さのために説明を省略する。通信サーバ820は、通信サーバ710と同様であってもよく、したがって、ここでは簡潔さのために説明を省略する。
【0093】
[00105]通信サーバ820は、ネットワークデバイス805と端末デバイス810との間の通信チャネルを確立してもよいか、又はその確立を促進してもよい。図8に図示されるように、通信サーバ820は、通信チャネルC840を確立してもよく、これは、ネットワークデバイス805と端末デバイス810が、1つ以上のメッセージを交換することを可能にする。非限定的な例として、通信チャネルC840は、ウェブサイトのウェブチャット機能であってもよく、通信チャネルB835は、モバイルデバイス(例えば、スマートフォン)上で実行中のチャットアプリケーションであってもよく、通信チャネルA830は、エージェントがユーザと通信することを可能にするボイスオーバーインターネットプロトコル(VOIP)オーディオチャネルであってもよい。
【0094】
[00106]通信サーバ820は、ネットワークデバイス805と自律的に通信するようにボット825を構成してもよい。いくつかのインプリメンテーションでは、ボット825は、ボット825が通信チャネルC840を使用してネットワークデバイス805と通信することを可能にする、1つ以上のプロトコルにアクセスし、それを実行してもよい。上記の非限定的な例を続けると、ボット825は、ウェブサイトのウェブチャット機能を通して通信するためのプロトコルにアクセスし、それを実行してもよい。この例では、プロトコルは、ウェブチャット機能を使用してメッセージを交換するための、ウェブチャット機能に固有のコーディング言語を含んでいてもよい。プロトコルは、実行されるとき、端末デバイス810においてエージェントによって入力されたメッセージ(例えば、テキスト文字列又は他のコンテンツ)を構造化コンテンツ(例えば、独立したデータフィールドに分離されたコンテンツ)に変換し、構造化コンテンツをウェブサイトのウェブチャット機能の要素にマッピングするコードを含んでいてもよい。端末デバイス810において(例えば、エージェントによって)入力が受信されると、ボット825は、メッセージがウェブチャット機能を使用して通信されることを可能にするために、構造化コンテンツをウェブチャット機能の要素にトランスレートできる。
【0095】
[00107]いくつかのインプリメンテーションでは、ボット825はまた、通信チャネルB835を使用してネットワークデバイス805と通信するように構成されることができる。通信チャネルB835は、通信チャネルC840とは異なる通信チャネルであることができる。さらに、通信チャネルB835は、通信を促進するために、通信チャネルC840に必要とされる要素とは異なる要素を必要としてもよい。ボット825は、構造化コンテンツを通信チャネルB835の要素にトランスレートするように構成されることができる。上記で説明された非限定的な例を続けると、通信チャネルB835は、スマートフォン上で実行中のネイティブアプリケーションのアプリ内チャット機能であってもよい。1つ以上の要素が、通信チャネルB835を使用した通信を促進するために必要とされてもよい。例えば、FACEBOOK MESSENGERは、スマートフォン上で実行中のネイティブアプリケーションであってもよい。この例では、FACEBOOK MESSENGERの1つ以上の要素は、FACEBOOK MESSENGERを使用して通信を促進するために必要とされる、FACEBOOK MESSENGERに固有のテンプレートであってもよい。ボット825が通信チャネルB835を使用して通信することを可能にするプロトコルは、FACEBOOK MESSENGERアプリケーション内のメッセージとして構造化コンテンツを送信するために、構造化コンテンツをFACEBOOK MESSENGERネイティブアプリケーションのテンプレートにマッピングしてもよい。
【0096】
[00108]いくつかの例では、モバイルアプリケーション(例えば、モバイルネイティブアプリケーション)は、ネットワークデバイス(例えば、スマートフォン)のオペレーティングシステムを使用して実行されることができる(モバイルデバイスに、又は1つ以上の外部サーバに記憶された)実行可能コードを含んでいてもよい。いくつかの例では、モバイルアプリケーションは、(モバイルデバイスにおいて生成及び記憶される)ネイティブユーザインターフェース(UI)コンポーネントから構成されるが、(例えば、ウェブベースのコーディング言語を使用して)インタープリタ型言語で記述されているハイブリッドモバイルアプリケーションを含んでいてもよい。本開示は、モバイルネイティブアプリケーション又はハイブリッドアプリケーションに限定されず、したがって、任意のタイプのモバイルアプリケーションが、本明細書で説明される方法において使用されてもよい。
【0097】
[00109]いくつかのインプリメンテーションでは、ボット825はまた、通信チャネルA830を使用してネットワークデバイス805と通信するように構成されることができる。通信チャネルA835は、通信チャネルC840及び通信チャネルB835とは異なる通信チャネルであることができる。さらに、通信チャネルA830は、通信を促進するために、通信チャネルC840及び通信チャネルB835に必要とされる要素とは異なる要素を必要としてもよい。ボット825は、構造化コンテンツを通信チャネルA830の要素にトランスレートするように構成されることができる。上記で説明された非限定的な例を続けると、通信チャネルA830は、ネットワークデバイス805と端末デバイス810との間のVOIPオーディオ通信リンクであってもよい。1つ以上の要素が、通信チャネルA830を使用した通信を促進するために必要とされてもよい。プロトコルは、通信チャネルA830に関係付けられた要素への構造化コンテンツのマッピングを含んでいてもよい。
【0098】
[00110]いくつかのインプリメンテーションでは、通信サーバ820は、ボット825が通信チャネルにかかわらずネットワークデバイス805と継続的に通信できるように、異なる通信チャネル間で通信セッションを動的に、自律的に、及び/又は自動的に転送するように構成されてもよい。例えば、ネットワークデバイス805は、第1の通信チャネル845(すなわち、通信チャネルC840)を使用して、端末デバイス810と通信していることがあってもよい。ネットワークデバイス805は、ネットワークデバイス805を動作しているユーザが、通信セッションのために現在使用されている通信チャネルを変更しようと意図していることを示すメッセージを送信してもよい。例えば、ネットワークデバイス805は、第2の通信チャネル850が、端末デバイス810との通信セッションを継続するためのターゲット通信チャネルであることを示してもよい。ボット825は、通信チャネルが第1の通信チャネル845から第2の通信チャネル850に変更されるべきであるというインジケーションを自動的に検出できる。例えば、ボット825は、通信チャネルが変更されるべきであることを検出するために、通信セッション中に交換されるメッセージを継続的に評価してもよい。通信チャネルが変更されるべきであるというインジケーションを検出すると、通信サーバは、ネットワークデバイス805に関係付けられたユーザ識別子を識別してもよい。例えば、ユーザデータデータベース815は、様々なユーザのためのユーザ識別子を記憶してもよい。ユーザ識別子は、ネットワークデバイスを一意的に識別するテキスト及び/又は数字の文字列であってもよい。任意の所定の時間において、通信サーバ820が、同じユーザ識別子が2つのアクティブな通信チャネルに関係付けられていると決定した場合、通信サーバ820は、ネットワークデバイスが通信セッションを継続するが、通信チャネルを変更することを要求していると認識できる。
【0099】
[00111]通信サーバ820は、異なる通信チャネル間の継続性をサポートするように構成されてもよい。例えば、ターゲット通信チャネル(例えば、第2の通信チャネル850)は、第1の通信チャネル845の代わりに第2の通信チャネル850を使用してではあるが、ネットワークデバイス805との通信セッションを継続するために、ボット825によって自動的に使用されることができる。いくつかのインプリメンテーションでは、ボット825は、第2の通信チャネル850を使用して、ネットワークデバイス805にメッセージを自動的に送信してもよい。ネットワークデバイス805にメッセージを送信することは、通信チャネルの転送が完了したことをネットワークデバイス805に示してもよい。いくつかのインプリメンテーションでは、通信サーバ820は、通信チャネルが第1の通信チャネル845から第2の通信チャネル850に変更されたことを自動的に検出してもよい。例えば、通信サーバ820は、ネットワークデバイス805が第1の通信チャネル845を使用してボット825と通信しているときに、ネットワークデバイス805に関係付けられたユーザ識別子を認識してもよい。ネットワークデバイス805が(例えば、通信セッション中に通信チャネルを変更する意図を示すことなく)第2の通信チャネル850の使用を開始した場合、通信サーバ820は、ネットワークデバイス805についてのユーザ識別子が、現在2つのアクティブな通信チャネル(例えば、第1の通信チャネル845及び第2の通信チャネル850)に関係付けられていることを自動的に検出できる。通信サーバ820は、第1の通信チャネル845がメッセージの最近の履歴(例えば、過去5分以内に送信又は交換されたメッセージ)に関係付けられていること、及び、第2の通信チャネル850がメッセージの最近の履歴(例えば、過去数分以内)に関係付けられていないことを検出できる。結果として、通信サーバ820は、ネットワークデバイス805が通信セッションを第1の通信チャネル845から第2の通信チャネル850に転送することを要求していると決定できる。通信サーバ820は、第2の通信チャネル850に関係付けられたプロトコルにアクセスし、ボット825又は端末デバイス810が、第1の通信チャネル845を使用する代わりに、第2の通信チャネル850を使用してネットワークデバイス805と通信することを可能にするために、アクセスされたプロトコルを使用してボット825を実行することによって、転送を実施できる。
【0100】
[00112]いくつかのインプリメンテーションでは、1つ以上の機械学習技術が、ネットワークデバイス805の通信チャネル使用におけるパターンを識別するために使用されることができる。例えば、ネットワークデバイス805による通信チャネルの使用は、追跡及び記録されることができる(及び履歴データとして記憶されることができる)。特定のエンティティ(例えば、ボット、企業、端末デバイス、エージェント等)と通信するときに、どの通信チャネルをネットワークデバイス805が使用する可能性が最も高いかを識別するために、機械学習技術が履歴データに適用されてもよい。端末デバイス810(又はボット825もしくはその他任意の端末デバイス)からネットワークデバイス805への通信を開始するとき、通信サーバ820は、(機械学習技術の結果に基づいて)ネットワークデバイス805が使用する可能性が最も高いタイプの通信チャネルを確立できる。ネットワークデバイス805が異なる通信チャネルをより頻繁に使用し始めるにつれて、通信サーバ820は、この変化する傾向を識別し、最も使用されている、又は最も頻繁に使用されている通信チャネルを使用して、通信セッションを開始できる。
【0101】
[00113]図9は、機械学習技術を使用してエンドポイント選択を向上させるためのネットワーク環境900を表すブロック図を示す。ネットワーク環境900は、(ユーザによって動作される)ネットワークデバイス905と、通信サーバ910と、ボット915と、端末デバイス920と、を含んでいてもよい。通信サーバ910は、ネットワークデバイス905並びに少なくとも1つのボット915及び端末デバイス920が通信することを可能にする通信チャネルの確立を促進できる。
【0102】
[00114]通信サーバ910は、インテリジェントルーティングシステム925と、メッセージ推奨システム930と、メッセージデータストア935と、を含んでいてもよい。インテリジェントルーティングシステム925及びメッセージ推奨システム930のそれぞれは、ある動作を実施するための命令を実行する、プロセッサとメモリとを有する1つ以上のコンピューティングデバイスを含んでいてもよい。いくつかのインプリメンテーションでは、インテリジェントルーティングシステム925は、ネットワークデバイスから受信された通信を適切な宛先にインテリジェントにルーティングするように構成されたボットであってもよい。インテリジェントルーティングシステム925は、1つ以上の機械学習技術又は人工知能技術に、メッセージをインテリジェントにルーティングすることを行わせるコードを実行するように構成された1つ以上のプロセッサを含んでいてもよい。いくつかのインプリメンテーションでは、インテリジェントルーティングシステム925は、ネットワークデバイス905から受信されたメッセージに関係付けられた宛先を予測するモデルをトレーニングするために、1つ以上の機械学習技術を実行できる。
【0103】
[00115]非限定的な例として、インテリジェントルーティングシステム925は、通信サーバ910(例えば、ユーザが様々なデバイスにわたって互いに通信することを可能にするように構成されたネイティブアプリケーション)によって確立又は促進された通信チャネルを通じて、ネットワークデバイス905からメッセージを受信してもよい。インテリジェントルーティングシステム925は、上記で説明されたある実施形態にしたがって、到来するメッセージを評価してもよい。例えば、インテリジェントルーティングシステム925は、トレーニングされた機械学習モデルを使用して、受信されたメッセージに含まれるコンテンツ(例えば、テキスト、オーディオクリップ、画像、エモティコン、又は他の好適なコンテンツ)を評価してもよい。メッセージのコンテンツは、予測された宛先(例えば、特定の端末デバイス又はボット)を生成するために、機械学習モデルに入力されることができる。機械学習モデルは、ネットワークデバイス905から受信されたフィードバック信号940に基づいて、継続的にトレーニングされてもよい。いくつかのインプリメンテーションでは、インテリジェントルーティングシステム925は、予測された宛先についてネットワークデバイス905からの確認応答を要求してもよい。非限定的な例として、インテリジェントルーティングシステム925は、機械学習技術を使用してメッセージを評価してもよく、評価の結果は、ボット915がメッセージについての宛先であるという予測を含んでいてもよい。確認するために、インテリジェントルーティングシステム925は、フィードバック信号940を自動的に要求してもよい。例えば、フィードバック信号940は、ネットワークデバイス905に対して、ボット915がメッセージ(例えば、「技術サポートが正しい宛先でしょうか?」)についての正しい宛先であるかどうかを確認応答することを求める要求を含んでいてもよい。ネットワークデバイス905が、ボット915が正しい宛先(例えば、ネットワークデバイス905を動作するユーザによって意図された宛先)であるという確認応答を送信した場合には、インテリジェントルーティングシステム925は、受信されたメッセージと全く同じ又は類似のコンテンツ(例えば、コンテンツにおいて10パーセントの差等の、類似性のしきい値)を含む将来のメッセージが、ボット915にルーティングされるべきであることを予測するように、機械学習モデルをトレーニングしてもよい。しかしながら、インテリジェントルーティングシステム925が、ボット915が受信されたメッセージについての正しい又は意図された宛先ではなく、むしろ端末デバイス920が正しい又は意図された宛先であったことを示すフィードバック信号940を受信した場合、インテリジェントルーティングシステム925は、受信されたメッセージと全く同じ又は類似のコンテンツを含む将来のメッセージが、(ボット915の代わりに)端末デバイス920にルーティングされることになるように、機械学習モデルをトレーニングできる。いくつかのインプリメンテーションでは、インテリジェントルーティングシステム925は、将来のメッセージを端末デバイス920にルーティングするように機械学習モデルを直ちに更新又はトレーニングしなくてもよく、むしろ、インテリジェントルーティングシステム925は、受信されたメッセージと全く同じ又は類似のコンテンツを有する全ての将来のメッセージを端末デバイス920にルーティングする前に、ボット915への正しくないルーティングのしきい値数まで待ってもよい。非限定的な例として、インテリジェントルーティングシステム925は、ネットワークデバイスが、ボット915が正しい又は意図された宛先ではないことを示すフィードバック信号を送信してきた5つの事例の後に、(ボット915にルーティングされるべきであると予測されていた)将来のメッセージを、ボット915の代わりに端末デバイス920にルーティングし始めてもよい。
【0104】
[00116]いくつかの実施形態では、インテリジェントルーティングシステム925は、メッセージ中の特定の要求を処理するための受信された入札(bids)に基づいて、所定のメッセージをどこにルーティングするかを選択してもよい。インテリジェントルーティングシステム925は、異なるサービスに意図をブロードキャストし、誰が要求を処理することに入札したいかを決定してもよい。入札当事者は、要求を成功裏に処理するその信頼度と、要求の処理を実行する計画とで応答してもよい。インテリジェントルーティングシステム925は、入札当事者からの全ての応答を評価し、機械学習ポリシーに基づいて、所定のメッセージに対してどの入札当事者を使用すべきかを決定してもよい。
【0105】
[00117]メッセージデータストア935は、1つ以上のネットワークデバイスから過去に受信された(たとえば、すべてではないが)いくつかの又はすべてのメッセージを記憶してもよい。さらに、メッセージデータストア935は、ネットワークデバイスとの前の通信セッション中に端末デバイス又はボットによって送信されたいくつかの又はすべてのメッセージをも記憶してもよい。メッセージデータストア935は、通信セッション中にネットワークデバイスによってボットに送信されたいくつかの又はすべてのメッセージをも記憶してもよい。さらに、メッセージデータストア935は、通信セッション中にボットによってネットワークデバイスに送信されたいくつかの又はすべてのメッセージを記憶してもよい。いくつかのインプリメンテーションでは、メッセージデータストア935は、通信サーバ910(たとえば、それによって送信された又はそれにおいて受信された)処理されたすべてのメッセージのデータベースであってもよい。
【0106】
[00118]メッセージ推奨システム930は、メッセージデータストア935において記憶されたメッセージのデータベースを分析してもよい。いくつかのインプリメンテーションでは、メッセージ推奨システム930は、1つ以上の機械学習アルゴリズム又は人工知能アルゴリズムを使用して、メッセージデータストア935において記憶されたメッセージを評価してもよい。たとえば、メッセージ推奨システム930は、メッセージデータストア935内に記憶されたメッセージのデータベースに対して、K-meansクラスタリング、ミーンズシフト(means-shift)クラスタリング、ノイズを有するアプリケーションの密度ベース空間クラスタリング(DBSCAN:Density-Based Spatial Clustering of Applications with Noise)クラスタリング、混合ガウスモデル(GMM)を使用したエクスペクテーションマキシマイゼーション(EM:Expectation-Maximization)クラスタリング、及び他の好適な機械学習アルゴリズムなど、1つ以上のクラスタリングアルゴリズムを実行してもよい。いくつかのインプリメンテーションでは、エージェントを支援するための応答メッセージを予測するために、リカレントニューラルネットワーク(RNN)又は畳み込みニューラルネットワーク(CNN)が使用されてもよい。いくつかのインプリメンテーションでは、メッセージ推奨システム930は、通信セッション中にネットワークデバイスから受信された到来メッセージに対する応答を予測する目的ですべての前のメッセージを評価するために、サポートベクターマシン(SVM)、教師あり、半教師あり、アンサンブル技術、又は教師なし機械学習技術を使用してもよい。たとえば、メッセージ推奨システム930は、ネットワークデバイスから受信されたメッセージ(又は、ボット又は端末デバイスから通信サーバ910において受信されたメッセージ)のコンテンツを評価し、評価の結果をメッセージデータストア935内に記憶された前のメッセージの1つ以上のクラスタと比較してもよい。いったんクラスタが識別されると、メッセージ推奨システム930は、信頼性しきい値に基づいて、最も関連する応答メッセージを識別できる。たとえば、(たとえば、ネットワークデバイス905から通信サーバ910において受信された)到来メッセージは、到来メッセージのコンテンツに基づく技術的問題に対応してもよい。メッセージ推奨システム930は、到来メッセージのコンテンツの評価(たとえば、テキスト評価)に基づいて、到来メッセージが技術的問題に対応することを識別できる。メッセージ推奨システム930は、技術的問題に関係するメッセージのクラスタを識別するために、メッセージデータストア935にアクセスできる。メッセージ推奨システム930は、信頼性しきい値に基づいて、メッセージのクラスタ内の1つ以上の応答メッセージを選択できる。非限定的な例として、信頼性アルゴリズムは、信頼スコアを生成するために実行されることができる。信頼スコアは、割合が低ければ低いほど、その応答が到来メッセージに対する良好な予測である可能性が低くなり、割合が高ければ高いほど、その応答が到来メッセージに対する良好な予測である可能性が高くなる、割合値であってよい。最小信頼性しきい値は、各発見されたパターンに関係する確実性又は信用性の測度と定義されてもよい。さらに、信頼性アルゴリズムの一例は、アプリオリアルゴリズム、2つのデータセット間の類似性を示す類似性アルゴリズム、及び他の好適な信頼性アルゴリズムであってもよい。
【0107】
[00119]図10は、ボット動作を監視及びトレーニングするために例示的プロセスを示している。図示された方法では、ある基準が定義され、メモリ中に記憶されてもよい。このような基準は、ボット(又はボットのセット)と顧客との間で行われる会話に適用可能であってもよい。会話が基準を満たさないと識別されたとき、会話は、人間のエージェントに関係付けられたエージェントデバイスにエスカレートされる。例えば、ボットは、顧客の特定の意図(例えば、特定を製品を購入又は返却する、住所、パスワード、又はたのユーザ情報を更新する必要がある)に関する予測を行ってもよい。エージェントは、会話をレビューし、会話を分類又は再分類してもよい入力を提供してもよい。会話は、分類入力を考慮して実施を継続するためにボットに返されてもよい。加えて、分類入力は、ボットに関係付けられた学習モデルを更新するために使用されてもよく、そのような更新された学習モデルは、後続の会話を実施するために使用されてもよい。
【0108】
[00120]ステップ1005において、信頼のしきい値レベルを含む監視基準のセットに関する監視基準のセットがメモリに記憶されてもよい。そのような記憶された基準は、ボットを用いて現在行われている会話をエスカレートする決定を行う際に測定及び考慮されてもよいファクタ(及びそのレベル)を定義してもよい。監視基準のセットは、例えば、信頼のしきい値レベルを決定するために使用される、1つ以上の条件を指定してもよい。指定された条件は、会話内で検出され、カウントされ、測定され、又は他の方法で評価され、信頼のしきい値と比較されてもよい。会話内のメッセージ又はメッセージのセットの異なる側面が、記憶された基準に対して評価されてもよい。いくつかの実施形態では、異なる基準のセットが、異なるボット、部門、地理的ロケーション、及びシステムに適用されてもよい。このような基準はまた、特定のビジネスエンティティ又は産業にカスタマイズされてもよい。
【0109】
[00121]ステップ1010において、ボットとクライアントデバイスのユーザとの間の会話における1つ以上のメッセージが監視され、ステップ1005において記憶された監視基準のセットに対して評価されてもよい。このような監視は、特定のボット、特定のボットのグループ、特定の部門、又はシステム全体に対して行われてもよい。何を監視するかの指定は、異なるエンティティ又はビジネスに対してカスタマイズされてもよく、関係付けられたエージェントのセットに対してカスタマイズされてもよい。例えば、新しいボットのタイプに関係付けられたメッセージが監視のために指定されてもよい。
【0110】
[00122]ステップ1015において、監視されたメッセージは、顧客の特定のニーズに関する1つ以上の意図を予測するためにさらに渡されてもよい。例えば、ある会話キューは、製品情報、購入、及びユーザ情報の更新に関係付けられた意図を示してもよい。そのような意図は、例えば、製品情報の提供、購入注文、及び更新されたユーザ情報の処理をそれぞれ課されたボットに会話をルーティングする際に、会話及び結果のボットの調整を推進してもよい。
【0111】
[00123]ユーザ意図に関する各予測は、記憶された基準に基づいて、スコア化されてもよく(信頼スコア)、スコアは、信頼のしきい値レベルと比較されてもよい。いくつかの例では、ユーザの意図に関するボット予測のうちの1つ以上は、少なくとも設定された信頼のしきい値レベルを満たすことができ、ボットは、介入を必要とせずに顧客のニーズを満たす方法で会話を行うことを進めることができる。ステップ1020において、特定の会話についての予測された意図は、少なくとも信頼のしきい値レベルを満たさないかもしれない。例えば、その意図予測に割り当てられた信頼スコアが信頼のしきい値レベルと比較され、信頼のしきい値を満たさないと見出されるとき、ボットによる特定の意図予測は、信頼のしきい値レベルを満たさないかもしれない。
【0112】
[00124]ステップ1025において、入力の要求はエージェントデバイスに送られてもよく、これは、会話に関する分類入力を提供することによって応答することができる。会話が信頼のしきい値レベルを完全に満たすことができないものとしてフラグ付けされるとき、そのような失敗は、顧客満足のあるレベルを維持するために、エージェントに会話をエスカレートする必要があってもよいことを示してもよい。このように、エージェント介入が要求されてもよい。識別された会話を行うタスクを完全にエージェントに引き継ぐよりもむしろ、要求は、(例えば、信頼のしきい値レベルを満たさない1つ以上の他の識別された意図予測の中から)信頼のしきい値レベルを満たさない特定の意図予測に関する入力を具体的に要求してもよい。例示的な実施形態では、要求は、信頼のしきい値レベルを満たさなかった特定の意図予測に関係付けられた会話の少なくとも一部を提示してもよい。いくつかの実施形態は、入力の要求に関係付けられたオプションのセットをさらに提示してもよい。このようなオプションは、異なるタイプのボット(又は意図予測を改善するために必要とされる会話の他のパラメータ)に関係付けられてもよい。
【0113】
[00125]ステップ1030において、エージェントデバイスからの入力をボットに提供することができ、ボットは、そのような入力を使用して、会話を分類し、1つ以上のエンドポイントデバイス(例えば、他のボット又はエージェント)にルーティングすることができる。このような分類及びルーティングは、信頼のしきい値レベルを満たさなかった識別された予測と同じであってもよく、又は異なっていてもよい。分類入力が購入意図に関するより良好な意図予測を可能にする場合、例えば、会話は、購入注文を受けるように設計されたボットに引き継がれてもよい。いくつかの例では、1つ以上のエンドポイントへの会話のルーティング及び引き継ぎは、会話が進行中であるときにリアルタイムで行われてもよい。たとえば、ボットは、会話がエージェントデバイスにエスカレートされたときでさえも、1つ以上の潜在的な意図に関する後続の質問を尋ね続けることができる。
【0114】
[00126]ステップ1035において、何れかの新たな注釈がボットに関係付けられた学習モデルに追加する準備ができているか否かが決定されてもよく、準備ができていない場合、方法はステップ1010に戻り、更なる会話が監視され続けてもよい。学習モデルに追加する準備ができている注釈がある場合、方法はステップ1040に進んでもよい。現在の会話に関連するボット動作を満足に容易にすることに加えて、エージェントデバイスからの分類入力はまた、将来の会話における同じボット、同じタイプのボット、及び/又は他のシステムボットによる使用のために、学習モデルに保存され、追跡されてもよい。このような分類入力は、例えば、会話への注釈のように機能してもよい。いくつかの例では、学習モデルは、単一の注釈付き会話に基づいて、又は、同じ又は類似の分類入力にしたがう同じ又は類似の方法で注釈を付けられた複数の会話に基づいて、更新されてもよい。
【0115】
[00127]ステップ1040において、将来の会話の使用のために、新たな分類入力を学習モデルに追加してもよい。例えば、将来の類似の会話を行うボットは、もはや信頼のしきい値レベルを満たさない予測を行わないかもしれない。このように、将来の類似の会話は、したがって、エージェントデバイスにエスカレートされない。代わりに、(例えば、ステップ1030の意図予測又はルーティング決定にしたがう)意図予測に達するように次の会話を行うときに、ボットは、(エージェントデバイスからの分類入力に基づいて直ちに更新された)学習モデルをリアルタイムで使用してもよい。このような意図予測は、少なくとも信頼のしきい値レベルを満たす分類スコアをさらに割り当てられてもよい。
【0116】
[00128]図11は、ボット動作及びトレーニングを監視するためのシステムが実装されてもよいネットワーク環境を表すブロック図を示している。図示されるように、ネットワーク環境は、顧客デバイス1105、ボット対話管理1110、ボット意図認識1115、ボット監視1120、及びエージェントデバイス1125にそれぞれ関係付けられた動作によって分類されてもよい。したがって、会話は、到来通信のリアルタイム分析に基づいて、複数の異なるデバイス及びシステムを伴い、それらの間でルーティングされてもよい。
【0117】
[00129]ボット対話管理動作は、電話、テキスト(例えば、SMS、MMS、インスタントメッセージ)、グラフィック等を含む、当技術分野で知られている任意のモードを介して顧客と通信することに関与する機能を含むことができる。そのような対話管理動作は、顧客に挨拶すること、質問をすること、又は特定の顧客情報のためのプロンプトを提供すること、及び顧客への応答を生成することを含んでいてもよい。応答生成は、対話管理に対する学習モデルに基づいてもよく、対話管理及び分類に関連する(例えば、エージェントデバイスからの)入力に基づいてもよい。会話に関するデータは、継続的にリアルタイムで追跡され、履歴データと併せて記憶されてもよい。履歴データ及びリアルタイムデータはまた、学習モデルに組み込まれてもよく、それによって、履歴データ及びリアルタイムデータを考慮して動的に更新される。学習モデルに対するそのような更新はさらに、時間とともに同様の会話に対して行われる予測及び推奨に対する動的調整をもたらしてもよい。異なる学習モデルはまた、ボットを動作する異なるエンティティ(例えば、企業、ブランド)、異なる顧客、及びそのカテゴリにカスタマイズされてもよい。
【0118】
[00130]意図認識動作は、テキスト分類、意図認識に関する対話注釈、及び意図関連モデルのトレーニングを含むことができる。一方、顧客は、会話、予め定められた文脈(例えば、ボタン、ドロップダウンメニュー)によるインタラクション、自然言語通信を開始できるように、このような情報に対して促されてもよい。上述したように、そのような情報は、様々な異なるタイプの通信チャネルを通して提供されてもよい。チャネルにかかわらず、そのような顧客入力は、ボット対話管理1110、意図認識1115、及びボット監視1120に関連する動作をリアルタイムで実行するために構文解析され、分析され、使用されてもよい。
【0119】
[00131]ステップ1130において、顧客デバイス1105は、通信システム内で会話を開始することができる。顧客デバイス1105は、上記で説明したチャネルのいずれかを通して会話を開始することができる。このような開始は、明示的に(例えば、オプションの要求又は選択)又は暗示的に(例えば、繰り返される検索、延長されるブラウンジング)なされてもよい。開始に基づいて、通信セッションは、顧客デバイス1105とチャットボット(例えば、チャットボット対話管理システム1110)との間に確立されてもよい。
【0120】
[00132]ステップ1135において、チャットボット対話管理システム1110は、挨拶又は他のプロンプトを顧客デバイスに送信することによって、会話の開始又は通信セッションの確立に応答してもよい。いくつかのインプリメンテーションでは、通信セッションは、顧客デバイス1105の顧客が選択(例えば、ドロップダウンメニューからボタンクリック)又はステップ1140において予め定められたコンテンツとインタラクトを行ってもよいグラフィックユーザインターフェースに関係付けられてもよい。チャットボット対話管理システム1110は、予め定められた対話管理規則及びポリシーに基づいて、そのような選択又はインタラクションに応答することができる。
【0121】
[00133]いくつかの例では、顧客デバイスの顧客1105は、ステップ1150などにおいて自然言語通信を入力してもよい。次いで、ステップ1155において、チャットボット意図認識システム1115は、1つ以上の学習モデルに従って自然言語通信を分類してもよい。そのような学習モデルは、複数の異なる会話に関する履歴データとリアルタイムデータの両方を含んでいてもよい。データは、特定の顧客、関与する任意のチャットボット又はエージェント、オペレーティングエンティティ、キーワード及びフレーズ、交換された実際のメッセージ、ルーティング決定、会話結果、並びに他の文脈データに関するデータを含んでいてもよい。
【0122】
[00134]ステップ1160において、分類に関係付けられた信頼スコアが指定された基準又はしきい値を満たすか否かが決定される。しきい値を満たす場合、方法はステップ1165に進み、チャットボット対話管理システム1110は分類に基づいて自然言語通信に応答することができる。分類に関係付けられた信頼スコアが指定された基準又はしきい値を満たさない場合、方法はステップ1170に進み、現在会話に関与しているチャットボット対話管理システム1110がユーザテキストをサービスすることができるか否かが決定される。現在会話に関与しているチャットボット対話管理システム1110がユーザテキストをサービスすることができない場合、方法はステップ1180に進み、会話は別のボット又はエージェントにルーティングされる。
【0123】
[00135]現在会話に関与しているチャットボット対話管理システム1110が実際にユーザテキストをサービスすることができると決定されたといったん決定されると、方法はステップ1175に進むことができ、エージェントデバイス1125を使用するライブエージェントは、顧客デバイス1105の顧客によって入力された自然言語通信の分類に関してリアルタイムで問い合わせられる。したがって、自然言語通信が、ある信頼のレベル(例えば、80%、90%)でチャットボット意図認識システム1115によってカテゴリ化できない状況では、自然言語通信(及び関連する文脈データ)は、リアルタイム分類のためにエージェントデバイス1125に提供されてもよい。
【0124】
[00136]エージェントデバイス1125のライブエージェントによって提供される分類は、継続された会話のために方法がステップ1165に戻ると、チャットボット対話管理システム1110に提供されてもよい。加えて、エージェントデバイス1125のライブエージェントによって提供される分類はまた、ステップ1185において、記憶のためにデータベースに追加されてもよい。エージェントデバイス1125のライブエージェントからの分類はまた、類似自然言語通信を伴う他の進行中の会話が更新前より高い信頼のレベルで分類されてもよいように、リアルタイムで1つ以上の学習モデルを更新するために使用されてもよい。
【0125】
[00137]いくつかのインプリメンテーションでは、エージェントデバイス1125のライブエージェントはまた、自然言語通信又は他の会話データに注釈を提供してもよい。このような注釈は、意図を理解するために、さらなる文脈及び補足情報を提供してもよい。
【0126】
[00138]ステップ1190において、分類に関係付けられた任意の新しい注釈が存在したかどうかが決定されてもよい。新しい注釈が存在しない場合、方法は終了してもよい。分類に関係付けられた任意の新しい注釈が存在する場合、方法は、ステップ1195に進んでもよく、注釈は、意図認識及び自然言語通信の分類のために使用されるデータに追加される。次いで、ステップ1199において、そのようなデータに依存する任意の学習モデルが、分類及び関係付けられた注釈に基づいてリアルタイムで再トレーニングされてもよい。
【0127】
[00139]ボット監視動作は、信頼スコアを評価することと、信頼スコアを指定されたしきい値と比較することと、新しい分類入力及び新しい注釈を学習モデルデータベースに追加することとを含む、図11に関して説明された動作を含んでいてもよい。ボット監視は、テキスト分類を含んでいてもよい、人間エージェントからの入力とともにさらに動作してもよく、これは、現在の会話のためのルーティング命令を与えるために直接又は間接的に使用されてもよい。さらに、ボットによって行われる将来の会話について、同じ分類入力が人間エージェントから要求されなくてもよいように、このような入力は、学習モデル及びデータベースを更新するために使用されてもよい。
【0128】
[00140]図12は、ボット動作及びトレーニングを監視するための例示的なインターフェースを図示している。そのようなインターフェースは、ボットからの要求に応答して、エージェントデバイス上に提示されてもよい。図示されるように、このようなインターフェースは、いくつかの部分、(例えば、ボットエスカレーションに関係付けられた)異なる会話のリスト1210と、エージェント監視グラフィックユーザインターフェース内に(ルーティングオプションとともに)示されてもよい1つの特定の会話の詳細なビュー1220と、会話に関係付けられた特定のキャンペーン(例えば、ビジネス)に関する詳細情報1230と、概要GUI1240とを含んでいてもよい。
【0129】
[00141]異なる会話のリスト1210は、ある基準又はしきい値を満たさなかった分類を有する現在の自然言語通信に基づいて、エージェントデバイス1125にルーティングされていてもよい。さらに、インターフェースのエージェント監視GUI1220部分に図示されるように、自然言語通信は、(例えば、異なる分類に対応する)異なるオプションのセットと共に提示されてもよい。分類がチャットボット対話管理システム1110に提供されて、分類に基づいて応答を策定し、したがって会話を継続することができるので、オプションは、自然言語通信をリアルタイムで分類するように選択可能であってもよい。また、エージェントデバイス1125のエージェントが分類を行う際に文脈データ1230を参照することができるように、文脈データ1230は、インターフェースに提供されてもよい。そのような文脈データは、特定のキャンペーンに関するデータ、特定の会話に関するデータ、又は顧客に関する個人データを含んでもよい。
【0130】
[00142]人間のエージェントが、エージェント監視GUI1220内に提示されたオプションのうちの1つを選択するとき、その後、そのようなオプションを使用して、会話に関係付けられた意図予測を分類することができる。インターフェースの概要GUI1240部分を使用して、分類に関係付けられた注釈を入力することができる。会話は、意図予測に対して選択されたオプションにしたがって動作するようにボットに返されてもよい。加えて、そのような選択は、類似の会話の文脈において分析され、将来の会話においてボットによって使用される関係する学習モデルを更新するために使用されてもよい。一方、分類及び注釈は、メッセージ分類及び意図認識のための学習モデルを改良するために使用されてもよい。このような学習モデルは、進行中の会話及び将来の会話に適用されてもよく、これは、その後、このような分類に対する異なる分類及び信頼レベルをもたらすことができる。
【0131】
[00143]ボット監視のために開示されるシステム及び方法は、コンピューティングサーバを使用して実行することができる。例となるコンピューティングサーバは、プロセッサ(例えば、中央処理ユニット)、メモリ、不揮発性メモリ、及びインターフェースデバイスを含むことができる。メモリは、データ及び/又は1つ以上のコードセット、ソフトウェア、スクリプト等を記憶してもよい。コンピュータサーバのコンポーネントは、バスを介して、又は何らかの他の既知のもしくは便利なデバイスを通して、互いに結合できる。プロセッサは、例えば、例えばメモリに記憶されたコードを実行することによって、本明細書で説明された方法の全て又は一部を実行するように構成されてもよい。ユーザデバイスもしくはコンピュータ、プロバイダサーバもしくはサーバ、又はサスペンドされたデータベース更新サーバのうちの1つ以上が、コンピューティングサーバ又はそのようなサーバのバリエーションのコンポーネントを含んでいてもよい。
【0132】
[00144]本開示は、ポイントオブセールサーバ(「POS」)を含むがこれに限定されない、任意の適切な物理的形態をとるコンピュータサーバを企図する。限定ではなく例として、コンピュータサーバは、埋込み型コンピュータサーバ、サーバオンチップ(SOC)、シングルボードコンピュータサーバ(SBC)(例えば、コンピュータオンモジュール(COM)又はサーバオンモジュール(SOM)等)、デスクトップコンピュータサーバ、ラップトップもしくはノートブックコンピュータサーバ、インタラクティブキオスク、メインフレーム、コンピュータサーバのメッシュ、移動体電話機、パーソナルデジタルアシスタント(PDA)、サーバ、又はこれらのうちの2つ以上の組み合わせであってもよい。適切な場合、コンピュータサーバは、1つ以上のコンピュータサーバを含んでいてもよく;単一か又は分散されてもよく;複数のロケーションにまたがってもよく;複数の機械にまたがってもよく;及び/又は1つ以上のネットワーク内の1つ以上のクラウドコンポーネントを含んでいてもよいクラウド内に存在してもよい。適切な場合、1つ以上のコンピュータサーバは、実質的な空間的又は時間的制限なしに、本明細書で説明又は図示された1つ以上の方法の1つ以上のステップを実行してもよい。限定ではなく、例として、1つ以上のコンピュータサーバは、本明細書で説明又は図示された1つ以上の方法の1つ以上のステップをリアルタイムで又はバッチモードで実行してもよい。1つ以上のコンピュータサーバは、適切な場合、本明細書で説明又は図示された1つ以上の方法の1つ以上のステップを、異なる時間又は異なるロケーションにおいて実行してもよい。
【0133】
[00145]プロセッサは、たとえば、インテルペンティアム(登録商標)マイクロプロセッサ又はモトローラパワーPCマイクロプロセッサなど、従来のマイクロプロセッサであってもよい。関連する技術の当業者は、「機械読取可能(記憶)媒体」又は「コンピュータ読取可能(記憶)媒体」という用語には、プロセッサによってアクセス可能な任意のタイプのデバイス含むということを認識するであろう。
【0134】
[00146]メモリは、たとえば、バスによってプロセッサに結合されることができる。メモリは、限定ではなく例として、ダイナミックRAM(DRAM)及びスタティックRAM(SRAM)など、ランダムアクセスメモリ(RAM)を含むことができる。メモリは、ローカルに、遠隔に、又は分散して存在することができる。
【0135】
[00147]バスはまた、プロセッサを不揮発性メモリ及びドライブユニットに結合することができる。不揮発性メモリは、磁気フロッピー(登録商標)ディスクもしくはハードディスク、光磁気ディスク、光ディスク、CD-ROM、EPROM、もしくはEEPROM(登録商標)などのリードオンリーメモリ(ROM)、磁気カードもしくは光カード、又は大量のデータ用の別の形態の記憶装置であることが多い。このデータの一部が、ダイレクトメモリアクセス処理によって、コンピュータ内でソフトウェアの実行中にメモリに書き込まれることが多い。不揮発性記憶装置は、ローカルに、遠隔に、又は分散して存在することができる。不揮発性メモリは、メモリ内で利用可能な全ての適用可能なデータを用いてサーバが作成されてもよいので任意的である。一般的なコンピュータサーバは、通常、少なくともプロセッサ、メモリ、及びメモリをプロセッサに結合するデバイス(たとえば、バス)を含む。
【0136】
[00148]ソフトウェアは、不揮発性メモリ及び/又はドライブユニットに格納することができる。実際、大きいプログラムの場合、プログラム全体をメモリに記憶することさえ可能でないかもしれない。とはいえ、ソフトウェアを実行するためには、必要であれば、それは処理に適したコンピュータ読取可能ロケーションに移動され、例示を目的として、そのロケーションは、本明細書ではメモリと呼ばれることが理解されるべきである。ソフトウェアが実行のためにメモリに移動されるときでさえも、プロセッサは、ソフトウェアに関係付けられた値を記憶するためのハードウェアレジスタと、理想的には実行を高速化する機能を果たすローカルキャッシュとを利用できる。本明細書で使用される場合、ソフトウェアプログラムは、ソフトウェアプログラムが「コンピュータ読取可能媒体で実現される」と言及されるとき、(不揮発性記憶装置からハードウェアレジスタまで)あらゆる既知の又は便利なロケーションにおいて記憶されていると仮定される。プロセッサは、プログラムに関係付けられた少なくとも1つの値が、プロセッサによって読取可能なレジスタに記憶されているとき、「プログラムを実行するように構成されている」と見なされる。
【0137】
[00149]バスはまた、プロセッサをネットワークインターフェースデバイスに結合することができる。インターフェースは、モデム又はネットワークインターフェースのうちの1つ以上を含むことができる。モデム又はネットワークインターフェースは、コンピュータサーバの一部であると見なされることができることが理解されよう。インターフェースは、アナログモデム、統合サービスデジタルネットワーク(ISDN0モデム、ケーブルモデム、トークンリングインターフェース、衛星伝送インターフェース(例えば、「ダイレクトPC」)、又はコンピュータサーバを他のコンピュータサーバに結合するための他のインターフェースを含むことができる。インターフェースは、1つ以上の入力及び/又は出力(I/O)デバイスを含むことができる。I/Oデバイスは、限定ではなく例として、キーボード、マウス又は他のポインティングデバイス、ディスクドライブ、プリンタ、スキャナ、並びにディスプレイデバイスを含む他の入力デバイス及び/又は出力デバイスを含むことができる。ディスプレイデバイスは、限定ではなく例として、陰極線管(CRT)、液晶ディスプレイ(LCD)、又は何らかの他の適用可能な既知の又は便利なディスプレイデバイスを含むことができる。
【0138】
[00150]動作中、コンピュータサーバは、ディスクオペレーティングサーバなどのファイル管理サーバを含むオペレーティングサーバソフトウェアによって制御できる。関係するファイル管理サーバソフトウェアを有するオペレーティングサーバソフトウェアの一例は、ワシントン州レドモンドのMicrosoft CorporationからのWindows(登録商標)として知られるオペレーティングサーバのファミリー、及びそれらの関係するファイル管理サーバである。関係するファイル管理サーバソフトウェアを有するオペレーティングサーバソフトウェアの別の例は、Linux(登録商標)オペレーティングサーバ及びその関係するファイル管理サーバである。ファイル管理サーバは、不揮発性メモリ及び/又はドライブユニットに格納することができ、プロセッサに、オペレーティングサーバによって必要とされる様々な動作を実行させて、データを入出力し、不揮発性メモリ及び/又はドライブユニットにファイルを格納することを含む、メモリにデータを記憶することができる。
【0139】
[00151]詳細な説明のいくつかの部分を、コンピュータメモリ内のデータビット上の動作のアルゴリズム及び記号表現に関して提示してもよい。これらのアルゴリズム的記述及び表現は、データ処理技術分野の当業者によって、彼らの作業の内容を他の当業者に最も効果的に伝えるために使用される手段である。アルゴリズムは、本明細書において、及び一般に、所望の結果をもたらす、動作の首尾一貫したシーケンス(self-consistent sequence)であると考えられている。動作は、物理量の物理的操作を必要とするものである。必ずしもではないが、通常、これらの量は、記憶される、転送される、組み合わされる、比較される、又は他の方法で操作されることが可能な電気信号又は磁気信号の形をとる。主に一般的な使用法の理由から、これらの信号を、ビット、値、要素、シンボル、文字、項(terms)、数字、又はこれらに類するものとして参照することが、時として好都合であることがわかっている。
【0140】
[00152]しかしながら、これらのすべて及び類似の用語は、適切な物理量と関係付けられるものであり、単に、これらの量に適用される便利なラベルにすぎないことに留意されたい。以下の議論から明らかであるように、そうではないとの具体的に述べられない限り、本願全体を通して、「処理すること」、又は「演算すること」、又は「計算すること」、又は「決定すること」、又は「表示すること」、又は「生成すること」、又はこれらに類するもののような用語を利用した議論は、コンピュータサーバのレジスタ及びメモリ内で物理(電子)量として表されるデータを操作して、コンピュータサーバメモリ又はレジスタ、あるいは、他のそのような情報記憶装置、送信又は表示デバイス内で物理量として類似して表される他のデータへと変換する、コンピュータサーバ又は類似する電子コンピューティングデバイスのアクション及び処理を指していることが理解される。
【0141】
[00153]本明細書で提示されるアルゴリズム及びディスプレイは、任意の特定のコンピュータ又は他の装置に本質的に関連しない。様々な汎用サーバは、本明細書の教示に従ってプログラムとともに使用されてもよいか、又はいくつかの例の方法を実行するためにより特殊な装置を構築するのに便利であるとがわかるかもしれない。様々なこれらのサーバのために必要とされる構造が以下の説明から明らかになるであろう。さらに、技術は、任意の特定のプログラミング言語を参照しながら説明されず、したがって、様々な例は、様々なプログラミング言語を使用して実装されてもよい。
【0142】
[00154]様々なインプリメンテーションでは、サーバは、スタンドアロンデバイスとして動作するか、又は他のサーバに接続(例えば、ネットワーク接続)されてもよい。ネットワーク化された展開では、サーバは、クライアントサーバネットワーク環境においてサーバ又はクライアントサーバのキャパシティで動作してもよいか、又はピアツーピア(又は、分散型)ネットワーク環境におけるピアサーバとして動作してもよい。
【0143】
[00155]サーバは、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、ラップトップコンピュータ、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、セルラ電話機、iPhone(登録商標)、Blackberry、プロセッサ、電話機、ウェブアプライアンス、ネットワークルータ、スイッチもしくはブリッジ、又はそのサーバによって行われるべきアクションを指定する命令のセットを(順次又は他の方法で)実行することが可能な任意のサーバであってもよい。
【0144】
[00156]機械読取可能媒体又は機械読取可能記憶媒体は、例として、単一の媒体であるように示されているが、「機械読取可能媒体」及び「機械読取可能記憶媒体」という用語は、命令の1つ以上のセットを記憶する単一の媒体又は複数の媒体(例えば、集中型もしくは分散型データベース、並びに/又は関係するキャッシュ及びサーバ)を含むと解釈されるべきである。「機械読取可能媒体」及び「機械読取可能記憶媒体」という用語はまた、サーバによる実行のための命令のセットを記憶、符号化、又は搬送することが可能であり、サーバに本明細書で開示される方法論又はモジュールのうちの任意の1つ以上を実行させる、任意の媒体を含むと解釈されるものとする。
【0145】
[00157]一般に、本開示のインプリメンテーションを実現するために実行されるルーチンは、オペレーティングサーバ又は特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、又は「コンピュータプログラム」と呼ばれる命令のシーケンスの一部として実現されてもよい。コンピュータプログラムは、典型的には、コンピュータ内の様々なメモリ及び記憶デバイス内に様々な時間に設定され、コンピュータ内の1つ以上の処理ユニット又はプロセッサによって読み取られ実行されるとき、本開示の様々な態様を含む要素を実行するための動作をコンピュータに実行させる1つ以上の命令を含む。
【0146】
[00158]さらに、例が、完全に機能するコンピュータ及びコンピュータサーバの文脈で説明されているが、当業者であれば、様々な例が様々な形態でプログラムオブジェクトとして配布されることが可能であること、及び本開示が、実際に配布を行うために使用される特定のタイプの機械読取可能媒体又はコンピュータ読取可能媒体にかかわらず、等しく適用されることを理解するであろう。
【0147】
[00159]機械読取可能記憶媒体、機械読取可能媒体、又はコンピュータ読取可能(記憶)媒体のさらなる例は、特に、揮発性及び不揮発性メモリデバイス、フロッピー及び他のリムーバブルディスク、ハードディスクドライブ、光ディスク(例えば、コンパクトディスクリードオンリーメモリ(CD ROM)、デジタル多用途ディスク(DVD)等)等の記録可能なタイプの媒体、並びにデジタル及びアナログ通信リンク等の送信タイプの媒体を含むがこれらに限定されない。
【0148】
[00160]いくつかの状況では、バイナリ1からバイナリ0への、又はその逆への状態における変化等のメモリデバイスの動作が、例えば、物理的変換等の変換を備えてもよい。特定のタイプのメモリデバイスでは、このような物理的変換は、異なる状態又は物への物品の物理的変換を備えてもよい。例えば、限定はしないが、いくつかのタイプのメモリデバイスについては、状態における変化は、電荷の蓄積及び貯蔵、又は貯蔵された電荷の解放を伴ってもよい。同様に、他のメモリデバイスでは、状態の変化は、磁気方位における物理的変化もしくは変換、又は結晶性から非結晶性への、もしくはその逆へ等の分子構造における物理的変化もしくは変換を備えてもよい。前述は、メモリデバイス中でのバイナリ1からバイナリ0への、又はその逆への状態における変化が物理的変換等の変換を備えてもよい、全ての例の網羅的なリストであるようには意図されない。むしろ、前述は、例示的な例として意図される。
【0149】
[00161]記憶媒体は、典型的に、非一時的であってもよいか、又は非一時的デバイスを含んでいてもよい。この文脈では、非一時的記憶媒体は、有形であるデバイスを含んでいてもよく、これは、デバイスがその物理的状態を変化させることができるが、デバイスが具体的な形のある物理的形態を有することを意味する。したがって、例えば、非一時的とは、状態におけるこの変化にもかかわらず、有形のままであるデバイスを指す。
【0150】
[00162]上記の説明及び図面は例示的であり、主題事項を開示された厳密な形態に限定するものとして解釈されるべきではない。当業者は、多くの修正及び変形が上記の開示に照らして可能であることを理解できる。本開示の完全な理解を提供するために、多数の特定の詳細が説明された。しかしながら、ある特定の事例では、説明を不明瞭にすることを回避するために、周知又は従来の詳細は説明されていない。
【0151】
[00163]本明細書で使用される場合、サーバのモジュールに適用されるときの「接続された」、「結合された」という用語、又はそれらの任意の変形は、2つ以上の要素間の直接的又は間接的な任意の接続又は結合を意味し、要素間の接続の結合は、物理的、論理的、又はそれらの任意の組み合わせであることがある。加えて、「本明細書において」、「上記」、「以下」という用語、及び同様の趣旨の用語は、本願で使用されるとき、本願の任意の特定の部分ではなく、本願全体を指すものとする。文脈が許す場合、単数又は複数の数を使用する上記の発明を実施するための形態における用語はまた、それぞれ複数又は単数の数を含んでいてもよい。2つ以上のアイテムのリストに関する、「又は」という用語は、その用語の次の解釈の全てを網羅する:リスト中のアイテムのうちのいずれか、リスト中のアイテムの全て、又はリスト中のアイテムの任意の組み合わせ。
【0152】
[00164]当業者は、開示された主題事項が、以下に示されていない他の形態及び方法で具現化されてもよいことを理解されよう。もしあれば、第1、第2、最上位及び最下位、並びにこれらに類するもののような関連用語の使用は、そのようなエンティティ又はアクション間の任意のそのような実際の関連又は順序を必ずしも必要とすること又は暗示することなく、1つのエンティティ又はアクションを別のものから区別するためにのみ使用されることが理解される。
【0153】
[00165]プロセス又はブロックが所定の順序で提示されているが、代替インプリメンテーションは、異なる順序で、ステップを有するルーチンを実行するか、又はブロックを有するサーバを用いることができ、代替又はサブ組み合わせを提供するために、いくつかのプロセス又はブロックを削除、移動、追加、再分割、置換、組み合わせ、及び/又は修正することができる。これらのプロセス又はブロックのそれぞれは、様々な異なる方法で実現されてもよい。また、プロセス又はブロックは、時として順次実行されるものとして示されているが、これらのプロセス又はブロックは、代わりに、並行して実行されてもよいか、又は異なった時間に実行されてもよい。さらに、本明細書で言及される任意の特定の数は、例に過ぎず、代替のインプリメンテーションは、異なる値又は範囲を採用してもよい。
【0154】
[00166]本明細書で提供される本開示の教示は、必ずしも上記で説明したサーバではなく、他のサーバに適用できる。上記で説明された様々な例の要素及び動作は、さらなる例を提供するために組み合わせることができる。
【0155】
[00167]添付の出願書類に列挙されてもよい任意のものを含む、上記の任意の特許及び出願並びに他の参考文献は、参照により本明細書に組み込まれる。本開示の態様は、必要に応じて、上記で説明された様々な参考文献のサーバ、機能、及び概念を用いるために修正されて、本開示のなおさらなる例を提供できる。
【0156】
[00168]上記の詳細な説明に照らして、本開示に対してこれら及び他の変更を行うことができる。上記の説明は、ある例を説明し、企図される最良のモードを説明しているが、上記がテキスト中でいかに詳細に書かれていたとしても、本教示は多くの方法で実施されることができる。サーバの詳細は、本明細書に開示される主題事項によって依然として包含されながらも、そのインプリメンテーションの詳細において大幅に異なるかもしれない。上でも述べられたように、本発明の特定の特徴又は態様を説明するときに使用される特定の用語は、その用語が関係付けられた本開示の任意の特定の特性、特徴、又は態様に限定されるように、その用語が本明細書で再定義づけられることを暗に意味するように受け取られるべきではないことに留意すべきである。一般に、以下の特許請求の範囲で使用される用語は、上記の詳細な説明のセクションがそのような用語を明示的に定義しない限り、本開示を本明細書で開示される特定のインプリメンテーションに限定するように解釈されるべきではない。したがって、本開示の実際の範囲は、開示されたインプリメンテーションだけでなく、特許請求の範囲の下で本開示を実施又は実現する全ての同等な方法も包含する。
【0157】
[00169]本開示のいくつかの態様がいくつかの請求項の形式で以下に提示されているが、発明者は、任意の数の請求項の形式で本開示の様々な態様を企図する。米国特許法112条(f)の下で扱われることが意図されるあらゆる請求項は、「ための手段(means for)」という語句で始まることになる。したがって、出願人は、本開示の他の態様のためのそのような追加の請求項の形式を遂行するために本出願を出願した後に追加の請求項を追加する権利を留保する。
【0158】
[00170]本明細書において使用される用語は、概して、本開示の文脈内で各用語が使用される特定の文脈において当技術分野におけるそれらの通常の意味を有する。本開示について説明するために使用されるいくつかの用語は、本開示の説明に関して実施者に追加の案内を与えるために上記で又は本明細書の他の場所で説明される。便宜上、いくつかの用語は、たとえば、大文字化、イタリック、及び/又は引用符を使用して強調されてもよい。強調の使用は、用語の範囲及び意味に対して影響を有さず、用語の範囲及び意味は、それが強調されているか否かにかかわらず、同じ文脈において同じである。同じ要素が2つ以上の方法で説明できることを理解されよう。
【0159】
[00171]したがって、代替的な文言及び類義語が本明細書で説明される用語のうちのいずれか1つ以上に使用されてもよく、また、用語が本明細書で詳述又は説明されるか否かにいかなる特別な重要性も置かれない。いくつかの用語のための類義語が与えられる。1つ以上の類義語の詳述が他の類義語の使用を除外しない。本明細書で説明されるあらゆる用語の例を含む本明細書の任意の場所での例の使用は、例示的なものにすぎず、本開示又はあらゆる例示された用語の範囲及び意味をさらに限定することは意図されない。同様に、本開示は、本明細書で与えられる様々な例に限定されない。
【0160】
[00172]本開示の範囲をさらに限定する意図なしに、本開示の例による機器、装置、方法及びそれらの関係する結果の例が以下で与えられる。タイトル又はサブタイトルが読者の便宜のために例中で使用されてもよく、いかなる場合も、これは、本開示の範囲を限定すべきでないことに留意されたい。別段に定義されていない限り、本明細書で使用されるすべての技術的な及び科学的な用語は、本開示が関係する当業者によって一般に理解されるものと同じ意味を有する。矛盾する場合、定義を含めて、本文書が優先することにする。
【0161】
[00173]本明細書のいくつかの部分は、情報に対する動作のアルゴリズム及び記号表現に関して例について説明する。これらのアルゴリズムの記述及び表現は、データ処理分野の当業者によって、自身の仕事の本質を他の当業者に効果的に伝達するために一般的に使用される。これらの動作は、機能的に、計算量的に、又は論理的に説明されているが、コンピュータプログラム又は等価な電気回路、マイクロコードなどによって実装されると理解される。さらに、一般性を失うことなく、モジュールとして動作のこれらの構成に言及することが時々好都合であることもわかっている。説明された動作及びそれらの関係するモジュールは、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組合せで具現化されてもよい。
【0162】
[00174]本明細書で説明されるステップ、動作、又はプロセスのうちのいずれかは、単独で又は他のデバイスとの組合せで、1つ以上のハードウェアモジュールもしくはソフトウェアモジュールを用いて実行又は実装されてもよい。いくつかの例では、ソフトウェアモジュールは、コンピュータプログラムコードを含んでいるコンピュータ読取可能媒体を備えるコンピュータプログラムオブジェクトで実装され、これにより、説明されたステップ、動作、又はプロセスのうちのいずれか又は全てを実行するためのコンピュータプロセッサによって実行されることができる。
【0163】
[00175]例はまた、本明細書の動作を実行するための装置に関連してもよい。この装置は、必要な目的のために特別に構築されてもよく、及び/又はコンピュータに記憶されたコンピュータプログラムによって選択的に起動又は再構成される汎用コンピューティングデバイスを備えてもよい。そのようなコンピュータプログラムは、コンピュータサーババスに結合されてもよい、非一時的、有形コンピュータ読取可能記憶媒体、又は電子命令を記憶するのに適した任意のタイプの媒体に記憶されてもよい。さらに、本明細書で言及される任意のコンピューティングサーバは、単一のプロセッサを含んでもよく、又はコンピューティング能力を高めるために複数のプロセッサ設計を採用するアーキテクチャであってもよい。
【0164】
[00176]例は、本明細書で説明されるコンピューティングプロセスによって生成されるオブジェクトにも関連してもよい。そのようなオブジェクトは、コンピューティングプロセスから結果として生じた情報を備えてもよく、ここで、情報は、非一時的、有形コンピュータ読取可能記憶媒体上に記憶され、コンピュータプログラムオブジェクト又は本明細書で説明される他のデータ組み合わせの任意のインプリメンテーションを含んでいてもよい。
【0165】
[00177]本明細書で使用される文言は、主に読みやすさ及び教示目的のために選択されたものであり、主題事項を詳細に描写又は制限するために選択されたものではない。したがって、本開示の範囲は、この詳細な説明ではなく、本明細書に基づく出願に関して発行される任意の特許請求の範囲によって限定されることが意図される。したがって、例の開示は、以下の特許請求の範囲に記載される主題事項の範囲を例示するものであり、限定するものではないことが意図される。
【0166】
[00178]文脈接続サーバのためのサーバ及びコンポーネントの様々なインプリメンテーションの完全な理解を与えるために、上記の説明において具体的な詳細が与えられた。しかしながら、上述のインプリメンテーションがこれらの特定の詳細なくして実施できることが当業者に理解されるべきである。例えば、回路、サーバ、ネットワーク、プロセス、及び他のコンポーネントが、不要な詳細で実施形態を曖昧にしないように、ブロック図形式のコンポーネントとして示されてもよい。他の例では、周知の回路、プロセス、アルゴリズム、構造、及び技術が、実施形態を曖昧にすることを避けるために、不要な詳細なく示されてもよい。
【0167】
[00179]また、個々のインプリメンテーションが、フローチャート、フロー図、データフロー図、構造図、又はブロック図として描かれるプロセスとして説明されてもよいことに留意されたい。フローチャートは、連続的なプロセスとして動作を説明してもよいが、動作の多くは並行して又は同時に実行されることができる。さらに、動作の順序は再配置されてもよい。プロセスは、その動作が完了したときに終了するが、図面に含まれていない追加のステップを有してもよい。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応してもよい。プロセスが関数に対応するとき、その終了は、関数の呼び出し又は主関数に関数が戻ることに対応できる。
【0168】
[00180]クライアントデバイス、ネットワークデバイス、及び他のデバイスは、とりわけ、1つ以上の集積回路、入力デバイス、出力デバイス、データ記憶デバイス、及び/又はネットワークインターフェースを含むコンピューティングサーバであることがある。集積回路は、例えば、とりわけ、1つ以上のプロセッサ、揮発性メモリ、及び/又は不揮発性メモリを含むことができる。入力デバイスは、例えば、キーボード、マウス、キーパッド、タッチインターフェース、マイクロフォン、カメラ、及び/又は他のタイプの入力デバイスを含むことができる。出力デバイスは、例えば、ディスプレイスクリーン、スピーカ、触覚フィードバックサーバ、プリンタ、及び/又は他のタイプの出力デバイスを含むことができる。ハードドライブ又はフラッシュメモリ等のデータ記憶デバイスは、コンピューティングデバイスがデータを一時的又は永久的に記憶することを可能にできる。ワイヤレス又はワイヤードインターフェース等のネットワークインターフェースは、コンピューティングデバイスがネットワークと通信することを可能にできる。
【0169】
[00181]コンピューティングデバイスの例は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレット、スマートフォン、パーソナルデジタルアシスタント、デジタルホームアシスタント、並びにコンピューティングデバイスが組み込まれているマシン及び装置を含む。
【0170】
[00182]「コンピュータ読取可能媒体」という用語は、ポータブル又は非ポータブル記憶デバイスと、光記憶デバイスと、命令及び/又はデータを記憶、包含、あるいは搬送することが可能である様々な他の媒体とを含むが、それらに限定されない。コンピュータ読取可能媒体は、データを記憶することができ、ワイヤレスにあるいはワイヤード接続を通して伝搬する搬送波及び/又は一時的電子信号を含まない、非一時的媒体を含んでいてもよい。非一時的媒体の例は、磁気ディスク又はテープや、コンパクトディスク(CD)又はデジタル多用途ディスク(DVD)等の光記憶媒体や、フラッシュメモリ、メモリ又はメモリデバイスを含んでいてもよいがこれらに限定されない。コンピュータ読取可能媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、又は命令、データ構造、もしくはプログラムステートメントの任意の組み合わせを表してもよい、コード及び/又は機械実行可能な命令を記憶してもよい。コードセグメントは、情報、データ、引数、パラメータ、又はメモリコンテンツを渡すこと及び/又は受け取ることによって、別のコードセグメント又はハードウェア回路に結合されてもよい。情報、引数、パラメータ、データ、等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信、又はこれらに類するもの含む任意の適した手段を介して渡されてもよいか、転送されてもよいか、又は送信されてもよい。
【0171】
[00183]さらに、上述したさまざまな例はさらに、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はそれらの任意の組み合わせによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェア又はマイクロコードで実現されるとき、必要なタスクを実行するためのプログラムコード又はコードセグメント(例えば、コンピュータプログラム製品)は、コンピュータ読取可能媒体又は機械読取可能媒体(例えば、プログラムコード又はコードセグメントを記憶するための媒体)に記憶されてもよい。集積回路で実現されるプロセッサが、必要なタスクを実行してもよい。
【0172】
[00184]コンポーネントがある動作を実行する「ように構成される」ものとして説明される場合、そのようなコンフィギュレーションは、例えば、動作を実行するように電子回路又は他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路(例えば、マイクロプロセッサ、又は他の適した電子回路)をプログラミングすることによって、又はそれらの任意の組み合わせで、達成されることができる。
【0173】
[00185]本明細書に開示されたインプリメンテーションに関連して説明された様々な例示的な論理ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの組み合わせとして実現されてもよい。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、及びステップが、それらの機能性の観点から一般的に上述されている。そのような機能性が、ハードウェアとして実現されるか、又はソフトウェアとして実現されるかは、特定のアプリケーション及びサーバ全体に課せられる設計制約に依存する。当業者は、説明された機能性を特定のアプリケーションごとに様々な方法で実現してもよいが、そのようなインプリメンテーションの決定は、本開示の範囲からの逸脱を引き起こしているとして解釈されるべきではない。
【0174】
[00186]ここに説明された技術はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいて実現されてもよい。そのような技術は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、又はワイヤレス通信デバイスハンドセット及び他のデバイスにおけるアプリケーションを含む複数の用途を有する集積回路デバイスなどの様々なデバイスのうちの任意のものにおいて実現されてもよい。モジュール又はコンポーネントとして説明されたどの特徴も、集積論理デバイスにおいて共に、又はディスクリートではあるが相互運用可能な論理デバイスとして別個に、実現されてもよい。ソフトウェアにおいて実現される場合、本技術は、命令が実行されるとき、上述された方法のうちの1つ以上を実行する命令を含むプログラムコードを備えるコンピュータ読取可能データ記憶媒体によって少なくとも部分的に実現されてもよい。コンピュータ読取可能データ記憶媒体は、コンピュータプログラム製品の一部を形成してもよく、それは、パッケージング材料を含んでいてもよい。コンピュータ読取可能媒体は、同期ダイナミックミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、不揮発ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM(登録商標))、FLASH(登録商標)メモリ、磁気又は光データ記憶媒体、及びこれらに類するもののようなメモリ又はデータ記憶媒体を備えていてもよい。本技術は加えて、又は代替として、命令又はデータ構造の形態でプログラムコードを搬送又は通信し、並びに伝搬される信号又は波のような、コンピュータによってアクセス、読み取り、及び/又は実行されることができる、コンピュータ読取可能通信媒体によって少なくとも部分的に実現されてもよい。
【0175】
[00187]プログラムコードは、プロセッサによって実行されてもよく、それは、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は他の同等の集積回路又はディスクリート論理回路のような1つ以上のプロセッサを含んでいてもよい。そのようなプロセッサは、本開示に説明された技術のうちの任意のものを実行するように構成されてもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替では、プロセッサは、任意の従来のプロセッサ、制御装置、マイクロ制御装置、又は、状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携した1つ以上のマイクロプロセッサ、あるいは任意の他のそのようなコンフィギュレーションとして実現されてもよい。したがって、本明細書で使用される場合、「プロセッサ」という用語は、前述の構造の任意のもの、前述の構造の任意の組み合わせ、又は本明細書で説明された技術のインプリメンテーションに好適なその他任意の構造又は装置を指してもよい。加えて、いくつかの態様では、本明細書で説明された機能性は、サスペンドされたデータベース更新サーバの実現のために構成された専用のソフトウェアモジュール又はハードウェアモジュール内で提供されてもよい。
【0176】
[00188]本テクノロジーの前述の詳細な説明は、例示及び説明を目的として提示されてきた。それは、網羅的であること、又は本テクノロジーを開示された厳密な形態に限定することを意図したものではない。上記教示を踏まえて、多くの修正及びバリエーションが可能である。説明された実施形態は、テクノロジーの原理、その実際の適用を最もよく説明するために、また、他の当業者が、様々な実施形態において、及び企図される特定の使用に適した様々な修正を伴って、テクノロジーを利用することを可能にするために選ばれた。本テクノロジーの範囲は、特許請求の範囲によって定義されることが意図される。
【0177】
[00189]したがって、本発明の特定の実施形態を説明してきた。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に記載されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。
図1
図2
図3A
図3B
図3C
図4
図5
図6
図7
図8
図9
図10
図11
図12-1】
図12-2】
【国際調査報告】