[0026]添付の図では、同様の構成要素および/または特徴は、同じ参照ラベルを有することができる。さらに、同じタイプの様々な構成要素は、参照ラベルの後に、ダッシュと、同様の構成要素を区別する第2のラベルとを続けることによって区別され得る。本明細書において第1の参照ラベルのみが使用される場合、説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様の構成要素のどの1つにも適用可能である。
[0027]以下の説明は、(1つまたは複数の)実施形態の好ましい例を与えるにすぎず、本開示の範囲、適用可能性または構成を限定することは意図されない。そうではなく、(1つまたは複数の)実施形態の好ましい例の以下の説明は、実施形態の好ましい例を実装することを可能にする説明を当業者に与える。添付の特許請求の範囲に記載された趣旨と範囲とから逸脱することなく、様々な変更が、要素の機能と配置とにおいて行われ得ることを理解されたい。
[0028]図1は、本明細書で説明されるいくつかの実施形態および特徴を実装およびサポートするネットワーク対話システムの一実施形態のブロック図100を示す。いくつかの実施形態は、(ユーザ110によって動作され得る)ネットワークデバイス105と、クライアント125に関連付けられたクライアントデバイス130との間の接続チャネルを確立することに関する。いくつかの実施形態では、ネットワーク対話システムは、(エージェント120によって動作され得る)端末デバイス115を含むことができる。
[0029]いくつかの実施形態では、ユーザ110は、電話デバイス132を介してクライアント125に連絡することを試みる個人であり得る。クライアント125は、サービスを提供するか、動作させるか、または実行するエンティティであるか、あるいは本明細書で説明されるようにクライアント125にとって利用可能なタスクを実施するためにそのようなエンティティによって採用されたかまたは割り当てられた個人であり得る。エージェント120は、サービスに関するサポートまたは情報をユーザ110に提供するというタスクを与えられたサポートエージェントなどの個人であり得る。多数のエージェントのうち、エージェントのサブセットが、特定のクライアント125にサポートまたは情報を提供するために適切であり得る。エージェント120は、クライアント125と提携することも、提携しないこともある。各エージェントは、1つまたは複数のクライアント125に関連付けられ得る。いくつかの非限定的な例では、ユーザ110は、セルフォンを介してアポイントメントを予約することを試みる個人であり得、クライアント125は、医療サービスを提供する会社であり得、エージェント120は、会社によって採用された代表者であり得る。様々な実施形態では、ユーザ110、クライアント125、およびエージェント120は、他の個人またはエンティティであり得る。
[0030]図1は単一のネットワークデバイス105、端末デバイス115、およびクライアントデバイス130のみを示すが、対話システムは、これらのタイプのデバイスのうちの1つまたは複数の各々のうちの複数または多数(たとえば、数十、数百または数千)を含むことができる。同様に、図1は、単一のユーザ110、エージェント120およびクライアント125のみを示すが、対話システム100は、そのようなエンティティのうちの1つまたは複数の各々のうちの複数または多数を含むことができる。したがって、所与のネットワークデバイスと通信するために、どの端末デバイスが選択されるべきかを決定することが必要であり得る。さらに複雑なことには、リモートサーバ140も、ネットワークデバイス通信を選択するために受信および応答するように構成され得る。
[0031]接続管理システム150は、通信の戦略的ルーティングを促進することができる。通信は、(たとえば、タイプされたまたは話された入力など、エンティティからの入力に基づいて定義された)コンテンツをもつメッセージを含むことができる。通信はまた、送信デバイスに関するデータ(たとえば、IPアドレス、アカウント識別子、デバイスタイプおよび/またはオペレーティングシステム)、宛先アドレス、クライアントの識別子、ウェブページもしくはウェブページ要素(たとえば、通信が生成されたときに訪問されているまたは他の方法で通信に関連付けられた、ウェブページまたはウェブページ要素)の識別子またはオンライン履歴データ、時間(たとえば、時刻および/または日付)、および/または宛先アドレスなど、追加のデータを含むことができる。他の情報が通信中に含まれ得る。いくつかの事例では、接続管理システム150は、通信全体を別のデバイスにルーティングする。いくつかの事例では、接続管理システム150は、(たとえば、初期通信に基づいて)通信を修正するかまたは新しい通信を生成する。新しいまたは修正された通信は、メッセージ(またはそれの処理されたバージョン)、(たとえば、送信デバイス、ウェブページまたはオンライン履歴および/もしくは時間に関する)追加のデータの少なくとも一部(またはすべて)、および/または接続管理システム150によって識別された他のデータ(たとえば、特定のアカウント識別子またはデバイスに関連付けられたアカウントデータ)を含むことができる。新しいまたは修正された通信は、同様に他の情報を含むことができる。
[0032]戦略的ルーティング促進の一部は、ネットワークデバイス105と1つまたは複数の端末デバイス115との間の1つまたは複数の接続チャネルを確立、更新および使用することを含むことができる。たとえば、ネットワークデバイス105から通信を受信すると、接続管理システム150は、通信が(もしあれば)どのクライアントに対応するかを最初に推定することができる。クライアントを識別すると、接続管理システム150は、ネットワークデバイス105との通信のためにクライアントに関連付けられた端末デバイス115を識別することができる。いくつかの事例では、識別は、複数のエージェント(または専門家または代表)の各々のプロファイルを評価することを含むことができ、複数のエージェント中の各エージェント(たとえば、エージェント120)は、端末デバイス(たとえば、端末デバイス115)に関連付けられる。評価は、ネットワークデバイスメッセージ内のコンテンツに関係することができる。
[0033]いくつかの事例では、接続管理システム150は、何らかの接続チャネルが、ネットワークデバイス105と、クライアント(またはリモートサーバ140)に関連付けられた端末デバイスとの間に確立されるかどうかと、そうである場合、そのようなチャネルが、その通信を含む一連の通信を交換するために使用されるべきであるかどうかとを決定することができる。
[0034]ネットワークデバイス105と通信するための端末デバイス115を選択すると、接続管理システム150は、ネットワークデバイス105と端末デバイス115との間の接続チャネルを確立することができる。いくつかの事例では、接続管理システム150は、選択された端末デバイス115にメッセージを送信することができる。メッセージは、ネットワークデバイス105と通信するための提案される割当ての受付けを要求するか、またはそのような割当てが生成されたことを識別し得る。メッセージは、ネットワークデバイス105に関する情報(たとえば、IPアドレス、デバイスタイプ、および/またはオペレーティングシステム)、関連付けられたユーザ110に関する情報(たとえば、話される言語、クライアントと対話した持続時間、スキルレベル、感情、および/またはトピック選好)、受信された通信、ネットワークデバイス105への通信を生成および送信するためのコード(たとえば、クリック可能なハイパーリンク)、ならびに/またはネットワークデバイス105への通信を生成および送信するための命令を含むことができる。
[0035]一事例では、ネットワークデバイス105と端末デバイス115との間の通信は、接続管理システム150を通してルーティングされ得る。そのような構成は、接続管理システム150が、通信交換を監視し、デバイスまたは拡張されたレイテンシのいずれかの非応答性などの(たとえば、ルールに基づいて定義された)問題を検出することを可能にすることができる。さらに、そのような構成は、たとえば、特定の通信後のターゲットを推進するために、通信交換の品質を査定し、および/またはルーティングルールを更新もしくは生成するための学習をサポートするために、後で使用され得る、通信の選択的なまたは完全な記憶を促進することができる。
[0036]いくつかの実施形態では、接続管理システム150は、通信交換をリアルタイムで監視し、ライブ通信に基づいて、自動化されたアクション(たとえば、ルールベースのアクション)を実施することができる。たとえば、接続管理システム150が、通信が特定のアイテム(たとえば、製品)に関すると決定したとき、接続管理システム150は、アイテムに関する追加の情報(たとえば、入手可能なアイテムの量、アイテムに関係するドキュメントをサポートするためのリンク、またはアイテムもしくは同様のアイテムに関する他の情報)を含んでいる追加のメッセージを端末デバイス115に自動的に送信することができる。
[0037]一事例では、指定された端末デバイス115は、接続管理システム150を通して通信を中継することなしにネットワークデバイス105と通信することができる。一方または両方のデバイス105、115は、通信監視および/またはデータ記憶を促進するために、特定の通信メトリックまたはコンテンツを接続管理システム150に報告することがある(または報告しないことがある)。
[0038]上述のように、接続管理システム150は、選択の通信をリモートサーバ140にルーティングし得る。リモートサーバ140は、所定の様式で情報を提供するように構成され得る。たとえば、リモートサーバ140は、通信に応答して送信するために、定義された1つまたは複数のテキストパッセージ、音声記録および/またはファイルにアクセスし得る。リモートサーバ140は、たとえば、受信された通信の分析(たとえば、セマンティックまたはマッピング分析)に基づいて、特定のテキストパッセージ、記録またはファイルを選択し得る。
[0039]接続管理システム150において実施されるルーティングおよび/または他の決定もしくは処理は、1つまたは複数のクライアントデバイス130によって少なくとも部分的に定義または提供されたルールおよび/またはデータに基づいて実施され得る。たとえば、クライアントデバイス130は、エージェントの優先度付け、端末デバイスタイプ、および/またはトピック/スキルマッチングを識別する通信を送信し得る。別の例として、クライアントデバイス130は、ルーティング決定に潜在的に影響を及ぼす様々な変数(たとえば、言語適合性、予測される応答時間、デバイスタイプおよび能力、ならびに/または端末デバイス負荷分散)に適用されるべき1つまたは複数の重みを識別し得る。どの端末デバイスおよび/またはエージェントがクライアントに関連付けられるべきかは、動的であり得ることを諒解されよう。クライアントデバイス130および/または端末デバイス115からの通信は、所与の端末デバイスおよび/またはエージェントが、クライアントに関連付けられたものとして追加または削除されるべきであることを示す情報を提供し得る。たとえば、クライアントデバイス130は、IPアドレスと、クライアントに関連付けられた端末デバイスを識別するリストからそのアドレスをもつ端末デバイスが追加または削除されるべきかどうかに関する指示とを伴う通信を送信することができる。
[0040](たとえば、デバイス間の、デバイスと接続管理システム150との間の、リモートサーバ140と接続管理システム150との間の、またはリモートサーバ140とデバイスとの間の)各通信は、1つまたは複数のネットワーク170上で生じ得る。オープンまたはクローズドネットワークの任意の組合せが、1つまたは複数のネットワーク170に含まれ得る。好適なネットワークの例は、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはワイヤレスローカルエリアネットワーク(WLAN)を含む。他のネットワークも好適であり得る。1つまたは複数のネットワーク170は、イントラネット、エクストラネット、またはそれらの組合せ内に完全に組み込まれ得るか、あるいはイントラネット、エクストラネット、またはそれらの組合せを含み得る。いくつかの事例では、1つまたは複数のネットワーク170中のネットワークは、Bluetooth(登録商標)またはBluetooth Low Energyチャネルなどの短距離通信チャネルを含む。一実施形態では、2つまたはそれ以上のシステムおよび/またはデバイス間の通信は、セキュアソケットレイヤ(SSL)またはトランスポートレイヤセキュリティ(TLS)などのセキュア通信プロトコルによって達成され得る。加えて、データおよび/またはトランザクション詳細は、限定はしないが、データ暗号化規格(DES)、トリプルDES、リベスト-シャミア-エーデルマン暗号化(RSA)、ブローフィッシュ暗号化、高度暗号化規格(AES)、CAST-128、CAST-256、無相関化高速暗号(DFC:Decorrelated Fast Cipher)、小型暗号化アルゴリズム(TEA:Tiny Encryption Algorithm)、拡張TEA(XTEA)、補正ブロックTEA(XXTEA)、および/またはRC5など、任意の好都合な、既知の、または開発されるべき様式に基づいて暗号化され得る。
[0041]ネットワークデバイス105、端末デバイス115および/またはクライアントデバイス130は、たとえば、ポータブル電子デバイス(たとえば、スマートフォン、タブレット、ラップトップコンピュータ、またはスマートウェアラブルデバイス)または非ポータブル電子デバイス(たとえば、1つまたは複数のデスクトップコンピュータ、スマートアプライアンス、サーバ、および/またはプロセッサ)を含むことができる。接続管理システム150は、ネットワーク、端末およびクライアントデバイスとは別個に格納され得るか、または(たとえば、デバイスへのアプリケーションのインストールを介して)1つまたは複数のそのようなデバイスの一部であり得る。リモートサーバ140は、各デバイスおよび接続管理システム150とは別個に格納され得、ならびに/あるいは別のデバイスまたはシステムの一部であり得る。図1における各デバイス、サーバおよびシステムは単一のデバイスとして示されているが、複数のデバイスが代わりに使用され得ることを諒解されよう。たとえば、ネットワークデバイスのセットは、単一のユーザからの様々な通信を送信するために使用され得るか、またはリモートサーバ140は、サーバスタックを含み得る。
[0042]ソフトウェアエージェントまたはアプリケーションは、図示されたデバイス、システムまたはサーバにインストールされ、および/またはそれらの上で実行可能であり得る。一事例では、ソフトウェアエージェントまたはアプリケーションは、様々な図示された要素が相補的様式で働くことができるように構成される。たとえば、デバイス上のソフトウェアエージェントは、デバイス使用に関するデータを収集し、別個の接続管理システムに送信するように構成され得、別個の接続管理システム上のソフトウェアアプリケーションは、そのデータを受信および処理するように構成され得る。
[0043]図2は、ネットワーク対話システム200の別の実施形態のブロック図200を示す。概して、図2は、ネットワークデバイス205が1つまたは複数の端末デバイス215と通信することを可能にするように構成および配置された様々な構成要素を示す。図示された事例は、3つのローカルエリアネットワーク235中に含まれる9つの端末デバイス215を含む。
[0044]いくつかの事例では、ネットワークデバイス205からの通信は、どの端末デバイスが通信を受信すべきであるかを少なくとも部分的にまたは完全に示す宛先データ(たとえば、宛先IPアドレス)を含む。ネットワーク対話システム200は、宛先データを処理し、適切なルーティングを促進することができる、1つまたは複数のネットワーク間接続構成要素240および/または1つまたは複数のネットワーク内接続構成要素255を含むことができる。
[0045]各ネットワーク間接続構成要素245は、複数のネットワーク235に接続され得、インストールされた複数のネットワークカード(たとえば、異なるネットワークに接続された各カード)を有することができる。たとえば、ネットワーク間接続構成要素245は、ワイドエリアネットワーク270(たとえば、インターネット)と、1つまたは複数のローカルエリアネットワーク235とに接続され得る。図示された事例では、通信がネットワークデバイス205から端末デバイスのうちのいずれかに送信されるために、図示されたシステム中で、通信は複数のネットワーク間接続構成要素245によって扱われなければならない。
[0046]ネットワーク間接続構成要素245が、通信(または通信に対応するパケットのセット)を受信したとき、ネットワーク間接続構成要素245は、宛先に関連付けられたネットワークに通信をパスするためのルートの少なくとも一部を決定することができる。ルートは、たとえば、あらかじめ定義されているか、(たとえば、別のルータからもしくは別のデバイスからの)着信メッセージに基づいて生成されるか、または学習される、1つまたは複数のルートを含むことができる、(たとえば、ルータに記憶された)ルーティングテーブルを使用して決定され得る。
[0047]ネットワーク間接続構成要素245の例は、ルータ260とゲートウェイ265とを含む。ネットワーク間接続構成要素245(たとえば、ゲートウェイ265)は、ネットワークシステムまたはプロトコル間でコンバートするように構成され得る。たとえば、ゲートウェイ265は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)間およびネットワーク間パケット交換/逐次パケット交換(IPX/SPX:Internetwork Packet Exchange/Sequenced Packet Exchange)デバイス間の通信を促進し得る。
[0048]ローカルエリアネットワーク235において通信を受信すると、さらなるルーティングが依然として実施される必要があり得る。そのようなネットワーク内ルーティングは、スイッチ280またはハブ285などのネットワーク内接続構成要素255を介して実施され得る。各ネットワーク内接続構成要素255は、(たとえば、ワイヤレスに、またはイーサネット(登録商標)ケーブルを介してなどワイヤードに)複数の端末デバイス215に接続され得る。ハブ285は、すべての受信された通信を、ハブ285が接続された各デバイスに再送するように構成され得る。各端末デバイスは、次いで、端末デバイスが宛先デバイスであるかどうか、または通信が無視されるべきであるかどうかを決定するために、各通信を評価することができる。スイッチ280は、通信を宛先端末デバイスのみに選択的にダイレクトするように構成され得る。
[0049]いくつかの事例では、ローカルエリアネットワーク235は、複数のセグメントに分割され得、それらの各々は、独立したファイアウォール、セキュリティルールおよびネットワークプロトコルに関連付けられ得る。ネットワーク内接続構成要素255は、セグメント内ルーティングを促進するために、1つ、複数またはすべてのセグメントの各々の中に提供され得る。ブリッジ280は、セグメント275を越えて通信をルーティングするように構成され得る。
[0050]ネットワークを越えてまたはネットワーク内で通信を適切にルーティングするために、様々な構成要素は、通信中の宛先データを分析する。たとえば、そのようなデータは、通信がどのネットワークにルーティングされるべきか、通信がネットワーク内のどのデバイスにルーティングされるべきか、または端末デバイスがどの通信を処理すべきか(反対に、無視すべきか)を示し得る。しかしながら、いくつかの事例では、どの端末デバイス(また、さらにどのネットワーク)が、ネットワークデバイスからの通信に参加すべきであるかは、直ちに明らかでない。
[0051]例示のために、端末デバイスのセットは、同様のタイプの応答通信を提供するように構成され得る。したがって、ネットワークデバイスからの通信中のクエリは、どのネットワークデバイスに通信がルーティングされるかにかかわらず、同様の様式で応答され得ることが予想され得る。この仮定は高レベルでは真であり得るが、端末デバイスに関係する様々な詳細は、他のものと比較して有利である特定のルーティングを生じることができる。たとえば、セット中の端末デバイスは、(たとえば)どの通信チャネルがサポートされるか、ネットワークデバイスへの地理的および/またはネットワーク近接度、ならびに/あるいは関連付けられたエージェントの特性(たとえば、知識ベース、経験、話される言語、利用可能性、一般的なパーソナリティまたは感情など)に関して、互いに異なり得る。したがって、選択ルーティングは、ネットワークデバイス通信に対してより正確におよび/または完全に応答する、より高速な応答を促進し得る。厄介な問題は、ネットワークデバイスを端末デバイスにマッピングする静的ルーティングが、通信トピック、チャネルタイプ、エージェント利用可能性などの変動を考慮することに失敗し得ることである。
[0052]図2では、接続管理システム250は、リレーおよび/または宛先アドレスとして働くように構成され得る。したがって、たとえば、ネットワークデバイス205のセットは、接続管理システム250を宛先として各々が識別する通信を送信し得る。接続管理システム250は、各通信を受信することができ、(たとえば、各端末デバイスについてのメトリックを生成するために)端末デバイスのセットを同時に監視することができる。監視とルールとに基づいて、接続管理システム250は、接続管理システム250が各通信を中継し得る端末デバイス215を識別することができる。実施形態によっては、端末デバイス通信は、さらなる中継のために(たとえば、接続管理システム250の)一貫した宛先に同様にダイレクトされ得るか、または端末デバイスは、対応するネットワークデバイスと直接通信し始め得る。これらの実施形態は、効率的なルーティングと、徹底的な通信監視とを促進することができる。
[0053]図2の多くの変形形態が企図されることを諒解されよう。たとえば、接続管理システム250は、接続管理システム250(またはそれの一部)に対応するアプリケーションが構成要素上にインストールされるように、接続構成要素(たとえば、ネットワーク間接続構成要素245またはネットワーク内接続構成要素255)に関連付けられ得る。アプリケーションは、たとえば、独立して、あるいは(たとえば、1つまたは複数の他の構成要素、ネットワークデバイスまたはリモートサーバ上で実行している)1つまたは複数の同様のまたは相補的アプリケーションと通信することによって実施され得る。
[0054]図3は、接続構成要素の動作のプロトコルスタックマッピングの表現300を示す。より詳細には、図3は、様々な接続構成要素に対応する開放型システム間相互接続(OSI:Open Systems Interaction)モデル中の動作のレイヤを識別する。
[0055]OSIモデルは、複数の論理レイヤ302~314を含むことができる。レイヤは、レイヤ302~312が各々上位レベルをサービスし、レイヤ304~314が各々下位レイヤによってサービスされるように、順序付きスタック中に配置される。OSIモデルは物理レイヤ302を含む。物理レイヤ302は、パラメータ物理的通信(たとえば、電気的、光学的、または電磁的)を定義することができる。物理レイヤ302はまた、接続を確立および閉鎖するためのプロトコルなど、接続管理プロトコルを定義する。物理レイヤ302は、フロー制御プロトコルと、送信モードとをさらに定義することができる。
[0056]リンクレイヤ304は、ノードツーノード通信を管理することができる。リンクレイヤ304は、エラー(たとえば、物理レイヤ302における送信エラー)を検出および訂正し、アクセス許可を管理することができる。リンクレイヤ404は、媒体アクセス制御(MAC)レイヤと、論理リンク制御(LLC)レイヤとを含むことができる。
[0057]ネットワークレイヤ306は、(たとえば、データグラムとして)同じネットワーク中のノードにわたって(たとえば、可変長の)データを転送することを協調させることができる。ネットワークレイヤ306は、論理ネットワークアドレスを物理機械アドレスにコンバートすることができる。
[0058]トランスポートレイヤ308は、送信および受信品質を管理することができる。トランスポートレイヤ308は、送信制御プロトコル(TCP)など、データを転送するためのプロトコルを提供することができる。トランスポートレイヤ308は、送信のためのデータパケットのセグメント化/非セグメント化を実施することができ、レイヤ302~306において生じる送信エラーを検出および考慮することができる。セッションレイヤ310は、ローカルアプリケーションとリモートアプリケーションとの間の接続を開始、維持、および終了することができる。セッションは、リモートプロシージャ対話の一部として使用され得る。プレゼンテーションレイヤ312は、アプリケーションレイヤまたはネットワークレイヤによって受け付けられることが知られているデータタイプに基づいて、データを暗号化、解読、およびフォーマットすることができる。
[0059]アプリケーションレイヤ314は、通信を制御または管理するソフトウェアアプリケーションと対話することができる。そのようなアプリケーションを介して、アプリケーションレイヤ314は、(たとえば)宛先、ローカルリソース状態または利用可能性、および/あるいは通信コンテンツまたはフォーマッティングを識別することができる。様々なレイヤ302~314は、利用可能および適用可能なとき、他の機能を実施することができる。
[0060]ネットワーク内接続構成要素322、324は、物理レイヤ302およびリンクレイヤ304において動作するように示されている。より詳細には、ハブは、動作が通信の受信と送信とに関して制御され得るように、物理レイヤにおいて動作することができる。ハブは、通信に対処する能力またはデータをフィルタ処理する能力がないので、ハブは、上位レベルで動作する能力を、ほとんどからまったく持たない。一方、スイッチは、それらがアドレス(たとえば、MACアドレス)に基づいて通信フレームをフィルタ処理することが可能であるので、リンクレイヤ404において動作することができる。
[0061]一方、ネットワーク間接続構成要素326、328は、上位レベル(たとえば、レイヤ306~314)で動作するように示されている。たとえば、ルータは、アドレス(たとえば、IPアドレス)に基づいて通信データパケットをフィルタ処理することができる。ルータは、パケットを適切なネットワークにダイレクトするために、アドレスに基づいてパケットを特定のポートにフォワーディングすることができる。ゲートウェイは、ネットワークレイヤ以上において動作し、同様のフィルタ処理およびダイレクティング、ならびに(たとえば、プロトコルまたはアーキテクチャにわたる)データのさらなる変換を実施することができる。
[0062]接続管理システム350は、様々な実施形態では、様々なレイヤの1つ、複数、すべてまたはいずれかと対話し、および/またはそれらの上で動作することができる。たとえば、接続管理システム350は、ハブがどの端末デバイスまたはクライアントデバイスと通信するかを動的に調整するために、ハブと対話することができる。別の例として、接続管理システム350は、構成要素が宛先(たとえば、MAC、論理、または物理)アドレスとしてどの端末デバイスを選択するかに影響を及ぼすために、ブリッジ、スイッチ、ルータまたはゲートウェイと通信することができる。さらなる例として、接続管理システム350は、トランスポートレイヤ308上のデータパケットのセグメント化、セッションレイヤ310上のセッション持続時間、ならびに/あるいはプレゼンテーションレイヤ312上の暗号化および/または圧縮を監視、制御、またはダイレクトすることができる。いくつかの実施形態では、接続管理システム350は、特定のレイヤ上で動作する機器(たとえば、リンクレイヤ304上で動作するスイッチ)と通信を交換する(たとえば、それにコマンドを送る)ことによって、特定の様式で(たとえば、ネットワークデバイスとクライアントデバイスとの間の)既存の通信をルーティングまたは修正することによって、および/あるいは既存の通信に基づいて特定の情報(たとえば、新しい宛先アドレス)を含んでいる新しい通信を生成することによって、様々なレイヤと対話することができる。このようにして、接続管理システム350は、様々なデバイスとの対話を介して、および/または様々なプロトコルスタックレイヤにおける動作に影響を及ぼすことを介して、通信ルーティングおよびチャネル確立(または維持または終了)に影響を及ぼすことができる。
[0063]図4は、一実施形態によるマルチデバイス通信交換システム400を表す。システム400は、様々なタイプの通信チャネルを介して様々なタイプの端末デバイスおよびクライアントデバイスと通信するように構成されたネットワークデバイス405を含む。
[0064]図示された事例では、ネットワークデバイス405は、セルラーネットワーク上で(たとえば、基地局410を介して)電話またはテキストメッセージ通信を送信することができる。通信は、クライアントロケーション423または端末ロケーション443にルーティングされ得る。接続管理システム430は、通信を受信し、どのクライアントデバイスまたは端末デバイスが通信に応答するべきであるかを識別する。そのような決定は、(たとえば、クライアントを示すコンテンツ分析またはユーザ入力に基づいて)その通信が関係するクライアントを識別することと、クライアントに関連付けられた1つまたは複数の端末デバイスの各々について1つまたは複数のメトリックを決定することとに依存することができる。たとえば、図4では、端末デバイス440a~cの各クラスタは、異なるクライアントに対応することができる。端末デバイスは、地理的にコロケートされるかまたは分散され得る。メトリックは、(たとえば、利用可能性に基づいて)記憶もしくは学習されたデータおよび/またはリアルタイム監視に基づいて決定され得る。
[0065]接続管理システム430は、1つまたは複数のルータ435または他のネットワーク間もしくはネットワーク内接続構成要素を介して、様々な端末デバイスおよびクライアントデバイスおよび他の構成要素と通信することができる。接続管理システム430は、通信、端末デバイス動作、クライアントルール、および/または1つまたは複数のデータストアにおけるユーザ関連アクション(たとえば、オンラインアクティビティ)からの、またはそれらに関する、データを収集、分析、および/または記憶し得る。そのようなデータは、通信ルーティングに影響を及ぼし得る。
[0066]クライアントデバイス415は、電子メール通信およびテキストメッセージを受信および処理することが可能であり得る。ネットワークデバイス405からの受信された通信を処理するために、クライアントデバイス415はサーバ420に結合され得る。サーバ420は、製品情報、アポイントメントスケジュール、動作の時間、ロケーション情報、連絡先情報など、クライアントロケーション423において提供される商品またはサービスに関する情報についてのクライアントデバイス415からの照会を受信および応答し得る。
[0067]図5は、接続管理システムの一実施形態のブロック図500を示す。メッセージ受信機インターフェース505は、メッセージを受信することができる。いくつかの事例では、メッセージは、たとえば、ネットワークデバイスなど、(たとえば、接続管理システムとは別個に、または同じハウジング内に格納された)ソースデバイスによって送信される通信の一部として受信され得る。いくつかの事例では、通信は、2つのデバイス(たとえば、ネットワークデバイスおよびクライアントデバイス)間でルーティングされる一連のメッセージまたはメッセージ交換を含むことができる、一連の通信または通信交換の一部であり得る。このメッセージまたは通信交換は、デバイス間の対話の一部であり得、および/またはそれを定義し得る。通信チャネルまたは動作可能なチャネルは、デバイス間のルーティングと通信交換とを促進するために使用される1つまたは複数のプロトコル(たとえば、ルーティングプロトコル、タスク割当てプロトコルおよび/またはアドレス指定プロトコル)を含むことができる。
[0068]いくつかの事例では、メッセージは、ローカルまたはリモートユーザインターフェースにおいて受信された入力に基づいて生成されるメッセージを含むことができる。たとえば、メッセージは、ボタンもしくはキー押下または記録されたスピーチ信号に基づいて生成されたメッセージを含むことができる。一事例では、メッセージは、ネットワークデバイスが特定の入力コマンド(たとえば、キーシーケンス)を提供したことを検出すると生成されるものなど、自動的に生成されるメッセージを含む。メッセージは、通信交換を開始するためのものなど、命令または要求を含むことができる。
[0069]いくつかの事例では、メッセージは、クライアントの識別子を含むか、またはそれに関連付けられ得る。たとえば、メッセージは、クライアント(またはクライアントに関連付けられたデバイス)を明示的に識別することができるか、メッセージは、クライアントに関連付けられたウェブページまたはアプリページを含むかまたはそれに関連付けられ得るか、メッセージは、クライアントに関連付けられた宛先アドレスを含むかまたはそれに関連付けられ得るか、あるいはメッセージは、クライアントに関連付けられたアイテム(たとえば、製品)またはサービスの識別情報を含むかまたはそれに関連付けられ得る。例示のために、ネットワークデバイスは、エージェントに通信を送信するためのオプションを提供し得る、特定のクライアントのアプリページを提示していることがある。メッセージに対応するユーザ入力を受信すると、通信は、メッセージと特定のクライアントの識別子と(たとえば、電話番号に対するテキストメッセージ)を含むように生成され得る。
[0070]処理エンジン510は、受信された通信および/またはメッセージを処理し得る。処理は、たとえば、1つまたは複数の特定のデータ要素(たとえば、メッセージ、クライアント識別子、ネットワークデバイス識別子、アカウント識別子など)を抽出することを含むことができる。処理は、(たとえば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコルおよび/またはネットワークとの適合性があるように)フォーマッティングまたは通信タイプを変換することを含むことができる。
[0071]メッセージ査定エンジン515は、(たとえば、抽出または受信された)メッセージを査定し得る。査定は、たとえば、メッセージのための1つまたは複数のカテゴリーまたはタグを識別することを含むことができる。カテゴリーまたはタグタイプの例は、(たとえば)トピック、感情、複雑さ、および緊急度を含むことができる。メッセージをカテゴリー分類することと、タグ付けすることとの間の差は、カテゴリーは(たとえば、カテゴリーオプションのあらかじめ定義されたセットに従って)限定され得るが、タグはオープンであり得ることであり得る。トピックは、たとえば、技術的問題、使用の質問、または要求を含むことができる。カテゴリーまたはタグは、たとえば、(たとえば、キーワード、文構造、繰り返されるワード、句読文字および/または非冠詞ワードを識別することによる)メッセージのセマンティック分析、(たとえば、選択された1つまたは複数のカテゴリーを有する)ユーザ入力、および/またはメッセージ関連の統計(たとえば、タイピングスピードおよび/または応答レイテンシ)に基づいて決定され得る。
[0072]いくつかの事例では、メッセージ査定エンジン515は、メッセージについてのメトリックを決定することができる。メトリックは、たとえば、文字、ワード、大文字、すべて大文字のワード、または特定の文字もしくは句読点(たとえば、感嘆符、疑問符および/もしくはピリオド)のインスタンスの数を含むことができる。メトリックは、感嘆符(または疑問符)で終了する文の比、すべて大文字で書かれたワードの比などの比率を含むことができる。
[0073]メッセージ査定エンジン515は、メッセージ、メッセージメトリックおよび/またはメッセージ統計をメッセージデータストア520に記憶することができる。各メッセージはまた、対応するソースデバイス、宛先デバイス、ネットワークデバイス、端末デバイス、クライアント、1つまたは複数のカテゴリー、1つまたは複数のステージおよび/あるいはメッセージ関連の統計を識別するデータなどの)他のデータ(たとえば、メタデータ)に関連して記憶され得る。接続管理システムの様々な構成要素(たとえば、メッセージ査定エンジン515および/または対話管理エンジン525)は、クエリ応答メッセージ、メッセージメトリックおよび/またはメッセージ統計を取り出すために、メッセージデータストア520に問い合わせることができる。
[0074]対話管理エンジン525は、通信がどのデバイスにルーティングされるべきであるかと、受信デバイスおよび送信デバイスがどのように通信するべきであるかとを決定することができる。これらの決定の各々は、たとえば、特定のネットワークデバイス(または特定のユーザに関連付けられたいずれかのネットワークデバイス)が前に端末デバイスのセット中のクライアントデバイスまたは端末デバイス(たとえば、接続管理システムに関連付けられたいずれかの端末デバイス、あるいは1つまたは複数の特定のクライアントに関連付けられたいずれかの端末デバイス)と通信したかどうかに依存することができる。
[0075]いくつかの事例では、ネットワークデバイス(または同じユーザもしくはプロファイルに関連付けられた他のネットワークデバイス)が、前に所与の端末デバイスと通信したとき、通信ルーティングは、概して、同じ端末デバイスのほうへバイアスされ得る。ルーティングに影響を及ぼし得る他のファクタは、たとえば、端末デバイス(または対応するエージェント)が利用可能であるかどうか、および/または端末デバイスの予測される応答レイテンシを含むことができる。そのようなファクタは、他の端末デバイスに対応する同様のメトリックに対して絶対的または相対的に考慮され得る。再ルーティングルール(たとえば、クライアント固有のまたは一般的なルール)は、エージェント一貫性を控えるべきかどうかを決定するために、そのようなファクタがどのように査定され、重み付けされるべきであるかを示すことができる。
[0076]ネットワークデバイス(または同じユーザもしくはアカウントに関連付けられた他のネットワークデバイス)が、前に所与の端末デバイスと通信していないとき、端末デバイス選択は、たとえば、様々なエージェントの知識ベースが通信トピックに対応する範囲、所与の時間におけるおよび/またはチャネルタイプにわたる様々なエージェントの利用可能性、(たとえば、クライアントに関連付けられた)端末デバイスのタイプおよび/または能力などのファクタに基づいて実施され得る。一事例では、ルールは、これらおよび各パラメータに割り当てるべき重みなど、1つまたは複数のファクタに対するサブパラメータをどのように決定すべきかを識別することができる。重み付けされたサブパラメータを組み合わせる(たとえば、合計する)ことによって、各エージェントについてのパラメータが決定され得る。次いで、端末デバイス選択が、端末デバイスのパラメータを比較することによって行われ得る。
[0077]デバイスがどのように通信するべきであるかを決定することに関して、対話管理エンジン525は、(たとえば)クライアントデバイスまたは端末デバイスが(たとえば)SMSメッセージ、電子メール通信、音声呼、ビデオ通信などを介して通信に応答するべきであるかどうかを決定することができる。通信タイプは、たとえば、(たとえば、少なくとも部分的にクライアントまたはユーザによって定義された)通信タイプ優先度リスト、(たとえば、一貫性を推進するための)ネットワークデバイスから前に受信された通信のタイプ、受信されたメッセージの複雑さ、ネットワークデバイスの能力、および/または1つまたは複数の端末デバイスの利用可能性に基づいて選択され得る。明らかに、いくつかの通信タイプは、(たとえば、高速なメッセージ応答が予想される)リアルタイム通信を生じることになり、他のものは、(たとえば、メッセージ間の(たとえば、数分あるいは数時間の)遅延が許容できる)非同期通信を生じることがある。
[0078]さらに、対話管理エンジン525は、2つのデバイス間の連続的チャネルが確立、使用、または終了されるべきであるかどうかを決定することができる。連続的チャネルは、ネットワークデバイスから、指定された端末デバイスまたはクライアントデバイスへの将来の通信のルーティングを促進するように構築され得る。このバイアスは、メッセージシリーズにわたってさえ残存することができる。いくつかの事例では、(たとえば、エージェントを識別する)連続的チャネルの表現は、ネットワークデバイス上に提示されるべきプレゼンテーション中に含まれ得る。このようにして、ユーザは、効率を促進するために通信が一貫してルーティングされるべきであることを理解することができる。
[0079]一事例では、パラメータは、所与のネットワークデバイスおよび端末デバイスに対応する接続パラメータを決定するために、本明細書で説明される1つまたは複数のファクタおよび(たとえば、1つまたは複数のファクタの各々についての重みを含む)ルールを使用して生成され得る。パラメータは、全体的なマッチ、あるいは所与の通信または通信シリーズに固有のものに関係し得る。したがって、たとえば、パラメータは、所与の端末デバイスが、ネットワークデバイス通信に応答することに適していることが予測される程度を反映し得る。いくつかの事例では、パラメータ分析は、所与の通信をそれにルーティングすべき端末デバイスの各々と、接続チャネルを確立、使用または終了すべきかどうかとを識別するために使用され得る。パラメータ分析が、ルーティング決定とチャネル決定の両方に対処するために使用されるとき、各決定に関係するパラメータは、同じ、同様の、または異なる様式で決定され得る。
[0080]したがって、たとえば、パラメータが、長期的マッチの強度対特定のメッセージクエリに応答するための強度を予測することになるかどうかに応じて、異なるファクタが考慮され得ることを諒解されよう。たとえば、前者の事例では、全体的なスケジュールおよび時間帯の考慮が重要であり得るが、後者の事例では、即時の利用可能性がより高く重み付けされ得る。単一のネットワークデバイス/端末デバイスの組合せのためにあるパラメータが決定され得るか、または所与のネットワークデバイスと異なる端末デバイスとの間のマッチをそれぞれ特徴づける、複数のパラメータが決定され得る。
[0081]例示のために、クライアントに関連付けられた3つの端末デバイスのセットが、潜在的な通信ルーティングについて評価され得る。特定の通信についてのマッチに関する、各々についてのパラメータが生成され得る。最初の2つの端末デバイスの各々は、通信を送信したネットワークデバイスと前に通信していることがある。ネットワークデバイスからの入力が、第1のデバイスとの(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の端末デバイスである、最も高いパラメータをもつデバイスにルーティングされるべきであることを示し得る。特定の端末デバイスへのルーティングが不成功である場合、メッセージは、次に高いパラメータをもつデバイスにルーティングされ得、以下同様である。
[0082]パラメータは、1つまたは複数の絶対しきい値または相対しきい値と比較され得る。たとえば、端末デバイスのセットのためのパラメータは、通信がそれにルーティングされ得る端末デバイスを選択するための高いパラメータを識別するために、互いに比較され得る。別の例として、パラメータ(たとえば、高いパラメータ)は、端末デバイスとの連続的チャネルを確立すべきかどうかを決定するために、1つまたは複数の絶対しきい値と比較され得る。連続的チャネルを確立するための全体的なしきい値は、所与の一連のメッセージにおいて通信を一貫してルーティングするためのしきい値よりも高くなり得る(ただし、そうである必要はない)。全体的なしきい値と、通信を一貫してルーティングすべきかどうかを決定するためのしきい値との間のこの差異は、チャネルの拡張されたユーティリティを仮定すれば、連続的チャネルのコンテキストでは、強いマッチが重要であるためであり得る。いくつかの実施形態では、連続的チャネルを使用するための全体的なしきい値は、連続的チャネルを確立するための、および/または所与の一連のメッセージにおいて通信を一貫してルーティングするためのしきい値よりも低くなり得る(ただし、そうである必要はない)。
[0083]対話管理エンジン525は、様々なコンテキストにおいて、アカウントエンジン530と対話することができる。たとえば、アカウントエンジン530は、ネットワークデバイスまたは端末デバイスに対応するアカウントを識別するために、アカウントデータストア535中でそのデバイスの識別子をルックアップし得る。さらに、アカウントエンジン530は、前の通信交換(たとえば、時間、(1つまたは複数の)関与する他のデバイス、チャネルタイプ、解決段階、(1つまたは複数の)トピックおよび/または関連付けられたクライアント識別子)、(たとえば、1つまたは複数のクライアントの各々について、何らかのチャネルが存在するかどうか、各チャネルに関連付けられた端末デバイス、確立時間、使用頻度、最後の使用日、何らかのチャネル制約および/またはサポートされる通信のタイプを示す)接続チャネル、(たとえば、端末デバイス選択、応答レイテンシ、端末デバイス一貫性、エージェント専門知識、および/または通信タイプ選好もしくは制約に関係する)ユーザまたはエージェント選好または制約、および/あるいはユーザまたはエージェント特性(たとえば、年齢、話されるまたは選好される(1つまたは複数の)言語、地理的ロケーション、関心など)に関するデータを維持することができる。
[0084]さらに、対話管理エンジン525は、アカウントデータストア535が現在のチャネルデータを反映するように更新され得るように、アカウントエンジン530に様々な接続チャネルアクションについてアラートすることができる。たとえば、チャネルを確立すると、対話管理エンジン525は、アカウントエンジン530にその確立を通知し、ネットワークデバイス、端末デバイス、アカウント、およびクライアントのうちの1つまたは複数を識別することができる。アカウントエンジン535は、(いくつかの事例では)その後、ユーザが、エージェント一貫性が役立っていることに気づくことができるように、ユーザにチャネルの存在を通知することができる。
[0085]対話管理エンジン525は、通信を1つまたは複数のクライアント(および/または関連付けられたブランド)にマッピングすることができる、クライアントマッピングエンジン540とさらに対話することができる。いくつかの事例では、ネットワークデバイス自体から受信される通信は、クライアントに対応する識別子(たとえば、クライアント、ウェブページ、またはアプリページの識別子)を含む。識別子は、(たとえば、クライアントマッピングエンジン540が検出し得る)メッセージの一部として含まれるか、またはメッセージを包含している通信中の他のデータとして含まれ得る。クライアントマッピングエンジン540は、次いで、クライアントに関する追加のデータおよび/またはクライアントの識別子を取り出すために、クライアントデータストア545中の識別子をルックアップし得る。
[0086]いくつかの事例では、メッセージは、どんなクライアントにも特に対応しないことがある。たとえば、メッセージは、一般的なクエリを含み得る。クライアントマッピングエンジン540は、たとえば、メッセージに対してセマンティック分析を実施し、1つまたは複数のキーワードを識別し、(1つまたは複数の)キーワードに関連付けられた1つまたは複数のクライアントを識別し得る。いくつかの事例では、単一のクライアントが識別される。いくつかの事例では、複数のクライアントが識別される。各クライアントの識別情報は、次いで、ユーザが(たとえば、関連付けられた端末デバイスを介して)通信すべきクライアントを選択することができるように、ネットワークデバイスを介して提示され得る。
[0087]クライアントデータストア545は、クライアントに関連付けられた1つまたは複数の端末デバイス(および/またはエージェント)の識別情報を含むことができる。端末ルーティングエンジン550は、ルーティング決定に影響を及ぼすために、1つ、複数またはすべてのそのような端末デバイス(および/またはエージェント)の各々に関係するデータを取り出すかまたは収集することができる。たとえば、端末ルーティングエンジン550は、端末デバイスのデバイスタイプ、オペレーティングシステム、通信タイプ能力、インストールされたアプリケーションアクセサリー、地理的ロケーションおよび/または識別子(たとえば、IPアドレス)などの情報を記憶することができる、端末データストア555を維持し得る。一部の情報は動的に更新され得る。たとえば、端末デバイスが利用可能であるかどうかを示す情報は、(たとえば)(たとえば、デバイスがスリープであるか、オフ/オンにされているか、非アクティブ/アクティブであるかどうかを識別するか、または入力が時間期間内に受信されたかどうかを識別する)端末デバイスからの通信、(たとえば、端末デバイスが、通信交換の一部に関与するかまたは通信交換の一部になるように割り当てられているかどうかを示す)通信ルーティング、あるいは通信交換が終了または開始したことを示すネットワークデバイスまたは端末デバイスからの通信に基づいて、動的に更新され得る。
[0088]様々なコンテキストにおいて、1つまたは複数の通信交換に関与することは、端末デバイスが別の通信交換に関与するために利用可能でないことを必ずしも示すとは限らないことを諒解されよう。(たとえば、概してまたはユーザに関して)通信タイプ(たとえば、メッセージ)、クライアント識別されたもしくはユーザ識別されたターゲット応答時間、および/またはシステム負荷などの様々なファクタは、端末デバイスがいくつの交換に関与し得るかに影響を及ぼし得る。
[0089]対話管理エンジン525が、通信交換または接続チャネルに関与すべき端末デバイスまたはクライアントデバイスを識別したとき、それは、端末ルーティングエンジン550に通知することができ、端末ルーティングエンジン550は、宛先(たとえば、IP)アドレス、デバイスタイプ、プロトコルなど、端末デバイスに関する何らかの関係するデータを端末データストア555から取り出し得る。処理エンジン510は、次いで(いくつかの事例では)、特定のフォーマットを有すること、特定のプロトコルに準拠することなどのために、メッセージを包含している通信を修正するか、または(メッセージを含む)新しい通信を生成することができる。いくつかの事例では、新しいまたは修正されたメッセージは、ネットワークデバイスに対応するアカウントデータ、メッセージクロニクル、および/またはクライアントデータなど、追加のデータを含み得る。
[0090]メッセージ送信機インターフェース560は、次いで、通信を端末デバイスまたはクライアントデバイスに送信することができる。送信は、たとえば、別個のハウジング中に格納されたデバイスへのワイヤードまたはワイヤレス送信を含み得る。端末デバイスは、接続管理システムと同じまたは異なるネットワーク(たとえば、ローカルエリアネットワーク)中の端末デバイスを含むことができる。したがって、通信を端末デバイスに送信することは、通信をネットワーク間またはネットワーク内接続構成要素に送信することを含むことができる。
[0091]図6は、通信セッション中の通信の再ルーティングのためのネットワーク環境600のブロック図を示す。図6に示されているように、ユーザ601は、支援のために特定のクライアントに電子メールメッセージ645を送るためにネットワークデバイス605を使用し得る。ネットワークデバイス605は、電子メールおよびテキストメッセージの形式の通信を送信および受信することが可能である、モバイルデバイスなど、任意の好適なデバイスであり得る。いくつかの実施形態では、ネットワークデバイス605は、さらに、通話を行うことが可能であり得る。電子メールメッセージ645は、クライアントに関連付けられた特定の電子メールアドレスにアドレス指定され得る。たとえば、ユーザ601が、技術的問題に対処するためにクライアントの技術者に関与することを望む場合、ユーザ601は、ネットワークデバイス605を介して、クライアントの技術サポートグループに関連付けられた電子メールアドレスにアドレス指定された電子メールメッセージ645を生成し得る。別の例として、ユーザ601が、ユーザの請求に関連付けられた問題に対処するために請求専門家を関与させることを望む場合、ユーザ601は、ネットワークデバイス605を介して、クライアントの請求グループに関連付けられた電子メールアドレスにアドレス指定された電子メールメッセージ645を生成し得る。したがって、ユーザ601によって利用される受信側電子メールアドレスは、電子メールメッセージ645を受信し、そこで指定された問題に対処するためにユーザ601と対話するべきである、クライアントの特定のグループを示し得る。
[0092]ネットワークデバイス605は、簡易メール転送プロトコル(SMTP)を介して、電子メールメッセージ645を発信メールサーバ(図示せず)に送信し得る。発信メールサーバは、受信側電子メールアドレス中で指定されたドメイン名に関連付けられ、クライアント電子メールサーバ610に対応する、インターネットプロトコル(IP)アドレスまたは他のネットワークアドレスを識別するために、ドメインネームシステム(DNS)サーバと対話し得る。クライアント電子メールサーバ610は、電子メールメッセージの送信および配信のための電子メール交換として働くことが可能である、任意の好適なサーバの形式のものであり得る。
[0093]一実施形態では、接続管理システム615が、ネットワークデバイス605からの電子メールメッセージ645を含む、クライアント電子メールサーバ610によって受信された新しい電子メールメッセージを取得するために、メッセージポーリングサブシステム620を介して、クライアント電子メールサーバ610をポーリングする。メッセージポーリングサブシステム620は、接続管理システム615のコンピューティングシステムまたは他のシステム(たとえば、サーバ、仮想マシンインスタンスなど)上に実装され得る。代替的に、メッセージポーリングサブシステム620は、接続管理システム615のコンピューティングシステム上で実行されるアプリケーションまたは他のプロセスとして実装され得る。メッセージポーリングサブシステム620の構成が、接続管理システム615を通してクライアントによって実施され得、それにより、クライアントは、それのアカウントを、それのエージェントと、クライアントと対話することを望むユーザとの間の電子メール通信を可能にするように構成し得る。たとえば、接続管理システム615を介して、クライアントは、ユーザとクライアントのエージェントとの間の電子メール通信を可能にするために、それのクライアント電子メールサーバ610をそれの接続管理システムアカウントに接続することを望むことを示し得る。
[0094]一実施形態では、接続管理システム615は、クライアントが、クライアントに関連付けられたどのエンティティまたはエンティティのグループが、クライアントにアドレス指定された電子メールメッセージを受信するべきであるかを定義することを可能にする。たとえば、接続管理システム615を介して、クライアントが、特定の電子メールアドレスを、ユーザがクライアントに送り得る特定の問題を扱うスキルがあることがある、特定のエージェントまたはエージェントのグループに関連付け得る。たとえば、クライアントが、電子メールアドレス「techsupport@example.com」を、クライアントに代わって技術サポート問題を扱うスキルがあるエージェントまたはエージェントのグループに関連付け得る。別の例として、クライアントが、電子メールアドレス「billing@example.com」を、クライアントに代わって請求問題を扱うスキルがあるエージェントまたはエージェントのグループに関連付け得る。
[0095]一実施形態では、接続管理システム615は、クライアントが、特定の電子メールアドレスを、自動的に、ならびに/あるいは機械学習アルゴリズムおよび/または人工知能を使用して応答を生成し得るボットまたは他の自動プロセスに関連付けることを可能にする。たとえば、ボットまたは他の自動プロセスが、ユーザ601によって表された意図を抽出するためにユーザ601からのメッセージを評価し得、それは、ユーザの意図に対する適切な応答および/または解決を決定するために使用され得る。たとえば、一実施形態では、ボットは、メッセージから意図を識別および抽出するために、ユーザのメッセージを処理するために機械学習モデルを使用し得る。機械学習モデルは、メッセージ中で表された意図を識別するために、(たとえば、キーワード、文構造、繰り返されるワード、句読文字および/または非冠詞ワードを識別することによって)メッセージのセマンティック分析を実施するために使用され得る。ボットによって利用される機械学習モデルは、教師あり学習技法を使用して動的にトレーニングされ得る。たとえば、入力メッセージのデータセットと、入力メッセージに含まれる知られている意図とが、機械学習モデルのトレーニングのために選択され得る。いくつかの実装形態では、機械学習モデルをトレーニングするために使用される知られている意図は、これらの意図の特性を含み得る。機械学習モデルは、機械学習モデルに供給される入力サンプルメッセージに基づいて、機械学習モデルがメッセージの各々から予想される意図を抽出しているかどうかを決定するために評価され得る。この評価に基づいて、機械学習モデルは、機械学習モデルが所望の結果を生成する可能性を高めるために修正され得る。機械学習モデルは、サブミットされたメッセージから取得された抽出された意図に関して、ユーザ601を含むユーザにフィードバックを要請することによって、さらに動的にトレーニングされ得る。たとえば、解決のために、抽出された意図をサブミットすることより前に、抽出された意図は、抽出された意図が、ユーザ601によってサブミットされるメッセージに対応するかどうかを決定するために、ユーザ601に提示され得る。ユーザ601からの応答は、したがって、メッセージからの意図を識別する際に、機械学習モデルの精度に基づいて機械学習モデルをトレーニングするために利用され得る。
[0096]一実施形態では、ボットは、意図を補足し、意図のための適切な解決の適合された識別を可能にするために使用され得る追加情報についてユーザ601に問い合わせるために、自然言語処理(NLP)または他の人工知能を使用する。たとえば、ボットは、ユーザ601のロケーション、どの時間フレームが意図の解決のためのものであるかなどを識別するために、ユーザ601に問い合わせ得る。ユーザ601によってボットに提供される応答は、さらに、ボットが、ユーザ601に応答し、ユーザの意図に対する解決を提供する際に実施し得るアクションのセットを狭めるために使用され得る。
[0097]特定のエージェント、エージェントのグループ、および/またはボットにルーティングするための特定の電子メールアドレスをセットアップするために、クライアントは、接続管理システム615に、電子メールアドレスと、電子メールアドレスおよび電子メール設定に関連付けられた対応するパスワードまたは他の証明情報とを提供し得る。たとえば、クライアントは、クライアント電子メールサーバ610のインターネットメッセージアクセスプロトコル(IMAP)アドレス、クライアント電子メールサーバ610のSMTPアドレスなどを提供し得る。クライアントは、電子メールメッセージが、クライアント電子メールサーバ610からポーリングされ得ることと、電子メールメッセージが、クライアント電子メールサーバ610を介して接続管理システム615からユーザに送信され得ることとを保証するために、接続管理システム615を介して、接続管理システム615とクライアント電子メールサーバ610との間の接続をテストし得る。
[0098]一実施形態では、メッセージポーリングサブシステム620が、クライアント電子メールサーバ610から電子メールメッセージ645を取得する場合、メッセージポーリングサブシステム620は、電子メールメッセージ645を接続管理システム615のメッセージコンバージョンサブシステム625に送信し得る。メッセージコンバージョンサブシステム625は、接続管理システム615のコンピューティングシステムまたは他のシステム(たとえば、サーバ、仮想マシンインスタンスなど)上に実装され得る。代替的に、メッセージコンバージョンサブシステム625は、接続管理システム615のコンピューティングシステム上で実行されるアプリケーションまたは他のプロセスとして実装され得る。一実施形態では、メッセージコンバージョンサブシステム625は、電子メールメッセージ645の本文から、ユーザ601からのメッセージを抽出し得る。さらに、メッセージコンバージョンサブシステム625は、ユーザの意図を識別する際に、電子メールメッセージ645の件名が、エージェントまたはボットに関係し得る追加情報を含み得るとき、件名からテキストを抽出し得る。
[0099]一実施形態では、メッセージコンバージョンサブシステム625は、どのエージェント、エージェントのグループ、またはボットがメッセージを受信するべきであるかを識別するために、電子メールメッセージ645中で指定された電子メールアドレスをパースする。上述のように、クライアントは、クライアントの顧客および他のユーザに関与するために、接続管理システム615と対話し得るエージェント、エージェントのグループ、またはボットに特定の電子メールアドレスを関連付け得る。いくつかの事例では、エージェントまたはエージェントのグループは、接続管理システム615によって提供されたインターフェースを使用して接続管理システム615によって確立された通信セッションを介して、ユーザと対話し得る。この対話は、インターフェースを介して会話の形式で提示され得、したがって、ユーザ601とエージェントとの間で交換されるメッセージは、チャットウィンドウ内のチャットの形式でエージェントに表され得る。
[0100]一実施形態では、メッセージコンバージョンサブシステム625は、受信された電子メールメッセージ645が、ユーザ601と特定のエージェントまたはボットとの間の既存の会話に対応するかどうかを決定するために、会話データストア630にアクセスする。たとえば、メッセージコンバージョンサブシステム625は、ユーザの電子メールアドレスまたは他の識別情報(たとえば、名前、ロケーションなど)と、受信側電子メールアドレスまたは受信側電子メールアドレスに対応する特定のスキル(たとえば、受信側電子メールアドレスに関連付けられたエージェント、エージェントのグループ、またはボットのクライアント指定など)との組合せに対応する既存のエントリを識別するために、会話データストア630に問い合わせ得る。メッセージコンバージョンサブシステム625が、会話データストア630から、ユーザ601と、受信側電子メールアドレスに対応するエージェントまたはボットとの間の既存の会話を識別する場合、メッセージコンバージョンサブシステム625は、受信された電子メールメッセージ645が既存の会話に対応するかどうかを決定し得る。たとえば、メッセージコンバージョンサブシステム625は、受信された電子メールメッセージ645が、受信された電子メールメッセージ645中で指定された特定の意図についての、エージェント/ボットとユーザ601との間の前の通信を含むかどうかを決定し得る。本明細書でより詳細に説明されるように、ユーザ601と特定のエージェント/ボットとの間の電子メールメッセージは、ユーザ601と特定のエージェント/ボットとの間の完了した会話履歴を含み得る。したがって、メッセージコンバージョンサブシステム625が、受信された電子メールメッセージ645がこの会話履歴を含まず、ユーザ601が、受信側電子メールアドレスに関連付けられたエージェント/ボットとの既存の会話を有すると決定した場合、メッセージコンバージョンサブシステム625は、ユーザ601が、エージェント/ボットとの追加の会話を開始することを試みていると決定し得る。
[0101]メッセージコンバージョンサブシステム625が、ユーザ601が指定された受信側電子メールアドレスに関連付けられたエージェント/ボットとの追加の会話を開始することを試みていると決定した場合、メッセージコンバージョンサブシステム625は、電子メールメッセージ645に応答して、ユーザ601に送信され得る自動応答を生成し得る。自動応答は、クライアントによって定義され得、それにより、クライアントは、ユーザ601に、それが、前の要求または意図からの、クライアントとの解決していない既存の会話を有することを示す、適合された応答を提供し得る。さらに、クライアントは、自動応答を介して、ユーザ601に、クライアントとの既存の会話を続けるために、既存の会話に対応する既存の電子メールスレッドに応答するように命令し得る。メッセージコンバージョンサブシステム625は、電子メールメッセージ645に応答して電子メールメッセージを生成し、この自動応答を電子メールメッセージに組み込み得る。メッセージコンバージョンサブシステム625は、この電子メールメッセージを、接続管理システム615のメッセージ配信サブシステム635に送信し得、メッセージ配信サブシステム635は、ユーザ601のネットワークデバイス605を介したユーザ601への配信のためにクライアント電子メールサーバ610に電子メールメッセージを送信し得る。
[0102]メッセージコンバージョンサブシステム625が、電子メールメッセージ645がユーザ601とエージェント/ボットとの間の既存の会話に対応すると決定した場合、メッセージコンバージョンサブシステム625は、会話データストア630から既存の会話を取得し、電子メールメッセージ645からの抽出されたメッセージを既存の会話に組み込み得る。メッセージコンバージョンサブシステム625は、更新された会話を、処理のために、エージェント/ボットに関連付けられたクライアントデバイス640に送信し得る。一実施形態では、会話は、チャットウィンドウを介してエージェントに提示され得、チャットウィンドウを通して、エージェントは、完了した会話履歴のコンテキストにおいて、完了した会話履歴およびユーザ601からの新しいメッセージを評価し得る。したがって、電子メールメッセージ645からのユーザのメッセージを電子メールフォーマットで提示するのではなく、メッセージコンバージョンサブシステム625は、実際の会話をミラーリングするために、ユーザ601とエージェントとの間の会話をチャットの形式で提示し得る。
[0103]一実施形態では、メッセージコンバージョンサブシステム625が、電子メールメッセージ645が新しい意図または要求に対応すると決定した場合、メッセージコンバージョンサブシステム625は、電子メールメッセージ645の本文および件名を会話メッセージにコンバートし、会話メッセージのための適切な受信側を決定する。たとえば、メッセージコンバージョンサブシステム625は、電子メールメッセージ645において指定された受信側電子メールアドレスを評価し、受信側電子メールアドレスに基づいて、会話メッセージを受信するべきであるエージェント、エージェントのグループ、またはボットを識別し得る。たとえば、受信側電子メールアドレスが特定のエージェントに対応する場合、メッセージコンバージョンサブシステム625は、新しい会話メッセージが受信されたことを示すために、エージェントのクライアントデバイス640に通知を送信し得る。エージェントは、それのクライアントデバイス640を介して、チャットウィンドウを介して会話メッセージにアクセスするために、接続管理システム615によって提供されるユーザインターフェースを介して、接続管理システム615にアクセスし得る。接続管理システム615は、会話メッセージが電子メールメッセージ645を介して受信されたことをエージェントに示し得る。別の例として、受信側電子メールアドレスが、エージェントの特定のグループに対応する場合、メッセージコンバージョンサブシステム625は、会話メッセージを、エージェントのグループに関連付けられたエージェントキューに追加し得る。これは、エージェントのグループからのエージェントが、キューから会話メッセージを取り出し、チャットウィンドウを介して会話メッセージにアクセスすることを可能にし得る。
[0104]上述のように、エージェントは、エージェントが、チャット会話を通してユーザ601に関与したかのように、接続管理システム615によって提供されるチャットウィンドウまたは他のインターフェースを介して、会話メッセージをレビューし得る。チャットウィンドウを通して、エージェントは、(もしあれば)会話履歴をレビューし、ユーザ601に応答を提供し得る。応答はチャット応答と同様であり得、それにより、エージェントは、ユーザ601との一般的なチャット会話に関与するかのように、ユーザ601と対話し得る。エージェントが会話メッセージに対する応答をサブミットする場合、メッセージコンバージョンサブシステム625は、ユーザ601への配信のために、エージェントの応答を組み込み得る、新しい電子メールメッセージ650を生成し得る。一実施形態では、メッセージコンバージョンサブシステム625は、会話データストア630から、新しい電子メールメッセージ650中に含めるために、エージェント/ボットとユーザ601との間の完了した会話履歴を取得する。この会話履歴は、上記で説明されたように、サブミットされた応答にコンテキストを提供するために、ならびに、ユーザ601とエージェント/ボットとの間の既存の会話のためのメッセージコンバージョンサブシステム625のためのトラッキング機構を提供するために使用され得る。
[0105]メッセージコンバージョンサブシステム625は、新しい電子メールメッセージ650中に含めるために、エージェント/ボットからの応答を、電子メールメッセージフォーマットにコンバートし得る。さらに、メッセージコンバージョンサブシステム625は、ユーザ601とエージェント/ボットとの間の既存の会話履歴を、新しい電子メールメッセージ650に組み込み得る。したがって、新しい電子メールメッセージ650の本文は、完了した会話履歴をユーザ601に提供し、エージェント/ボットからの新しいメッセージのためのコンテキストを提供し得る。新しい電子メールメッセージ650は、ユーザの電子メールアドレスにアドレス指定され得る。さらに、新しい電子メールメッセージ650中で指定された送信側電子メールアドレスは、ユーザ601によってサブミットされた元の電子メールメッセージ645中で指定された、受信側電子メールアドレスに対応し得る。メッセージコンバージョンサブシステム625は、ユーザ601への配信のために、この新しい電子メールメッセージ650を、接続管理システム615のメッセージ配信サブシステム635に提供し得る。メッセージ配信サブシステム635は、接続管理システム615のコンピューティングシステムまたは他のシステム(たとえば、サーバ、仮想マシンインスタンスなど)上に実装され得る。代替的に、メッセージ配信サブシステム635は、接続管理システム615のコンピューティングシステム上で実行されるアプリケーションまたは他のプロセスとして実装され得る。
[0106]メッセージ配信サブシステム635は、ネットワークデバイス605への配信のために、新しい電子メールメッセージ650をクライアント電子メールサーバ610に送信するために、クライアント電子メールサーバ610のSMTPアドレスを使用し得る。SMTPアドレスが、ユーザ電子メールメッセージがそれを通して受信される着信クライアント電子メールサーバとは異なる、発信クライアント電子メールサーバに対応し得ることに留意されたい。たとえば、IMAPアドレスとSMTPアドレスとは、異なるクライアント電子メールサーバに対応し得る。ユーザ601は、それのネットワークデバイス605を介して、ユーザ601とエージェント/ボットとの間の完了した会話履歴、ならびにエージェント/ボットからユーザの電子メールメッセージ645への最も最近の応答とを含み得る、新しい電子メールメッセージ650を受信し得る。したがって、ユーザ601は、電子メールメッセージを使用してエージェント/ボットと通信し得、それにより、応答が、電子メールフォーマットで受信され、ユーザ601からのメッセージをレビューするエージェント/ボットが、エージェント/ボットがチャットセッションを介してユーザ601に関与したかのように、これらのメッセージと対話し得る。
[0107]図7は、電子メールとメッセージング環境との間の通信を再ルーティングするメッセージ環境のブロック図を示す。ユーザ700は、電子メールメッセージ720をクライアント710に送るためにネットワークデバイス705を使用し得る。電子メール720は、クライアント710に関連付けられたアドレスに、または、電子メールメッセージ720中に含まれる情報に基づいてサーバがクライアント710にルーティングするサーバのアドレスに、送られ得る。いくつかの実施形態では、電子メールメッセージ720は、ユーザ700が、クライアント710に関連付けられたウェブサイトまたは広告にアクセスした後に、送られ得る。クライアント710は、商品またはサービスプロバイダであり得る。
[0108]たとえば、ユーザ700は、「アポイントメントを取ることができますか?」と述べる電子メールメッセージ720をクライアント710に送信するために、ネットワークデバイス705を使用し得る。ネットワークデバイス705が会話を開始するように示されているが、クライアント710が代替的に会話を開始し得ると考えられる。たとえば、ユーザ700は、クライアント710に関連付けられたアドレスに電子メールを送るために、ネットワークデバイス705を使用することができ、クライアント710は、接続管理システム715を介して応答することができる。
[0109]接続管理システム715は、図6に関して上記で説明されたように、メッセージ720をインターセプトし、メッセージ720を、チャット環境など、メッセージング環境に再ルーティングし得る。メッセージング環境内で、メッセージ720は会話メッセージ725にコンバートされ得、会話メッセージ725は、接続管理システム715によって供給されるチャットウィンドウまたは他のユーザインターフェースを介して、クライアント710に提示され得る。それに応じて、クライアント710は、利用可能なアポイントメントがいつであるかを決定するためにそれのスケジューリングシステムを探索し、メッセージング環境内で、「アポイントメントは、月曜日午前10時または午後1時に利用可能です」と述べる応答メッセージ730を送ることができる。接続管理システム715はメッセージ730をインターセプトし、それを電子メール環境に再ルーティングし得、そこで、メッセージ730が、電子メールメッセージ735にコンバートされ得る。新しい電子メールメッセージ735は、クライアント710によって生成された応答、ならびに、特定の意図についての、ユーザ700とクライアント710との間の会話履歴を含み得る。次いで、メッセージ735は、ネットワークデバイス705にルーティングされ得る。
[0110]接続管理システム715がネットワークデバイス705を介してユーザ700とのそれの会話を開始することに関して図示および説明されたが、ユーザ700が代替的に接続管理システム715との会話を開始し得ると考えられる。さらに、ネットワークデバイス705とクライアント710との間の直接接続として図示および説明されたが、接続管理システム715が、ネットワークデバイス705とクライアント710との間を同様にインターフェースし得ると考えられる。
[0111]図8は、少なくとも1つの実施形態による、会話メッセージの形式でユーザから、クライアントに関連付けられたエージェントまたはボットに、電子メールメッセージをルーティングするためのプロセス800の例示的な例を示す。プロセス800は、上述の接続管理システムによって実施され得る。ステップ805において、接続管理システムは、クライアントに関連付けられたユーザから、電子メールメッセージを受信する。たとえば、接続管理システムは、クライアントドメインにアドレス指定された電子メールメッセージについて、クライアント電子メールサーバをポーリングするように構成されたメッセージポーリングサブシステムを実装し得る。これらの電子メールメッセージは、クライアントに関連付けられたユーザによってサブミットされ得、電子メールメッセージは、ユーザがクライアントからの解決を求めている、特定の要求または意図に対応し得る。たとえば、ユーザは、技術的問題、請求問題、またはクライアントによって対処され得る他の問題に対処するために、電子メールメッセージをクライアントにサブミットし得る。
[0112]ステップ810において、接続管理システムは、メッセージを受信するべきである特定のエンティティを識別するために、電子メールメッセージをパースし得る。たとえば、一実施形態では、接続管理システムが、クライアントによって定義された、受信側電子メールアドレスに関連付けられた特定のスキルを識別するために、電子メールメッセージの受信側電子メールアドレスを評価する。特定のスキルは、人工知能を使用してメッセージへの自動応答を生成するために、クライアントによって構成される特定のエージェント、エージェントのグループ、またはボットに対応し得る。たとえば、「techsupport@example.com」の受信側電子メールアドレスを有する電子メールメッセージは、技術サポートスキルに対応し得る。接続管理システムは、技術サポートスキルを評価し、クライアントに代わって技術サポート問題を扱うことが知られている、クライアントに関連付けられた特定のエージェント、エージェントのグループ、またはボットを識別し得る。
[0113]ステップ815において、接続管理システムは、ユーザと、エージェント、エージェントのグループ、またはボットとの間の既存の会話があるかどうかを決定する。たとえば、接続管理システムは、ユーザの電子メールアドレスまたは他の識別情報(たとえば、名前、ロケーションなど)と、受信側電子メールアドレスまたは受信側電子メールアドレスに対応する特定のスキルとの組合せに対応する既存のエントリを識別するために、会話データストアに問い合わせ得る。接続管理システムが、ユーザと、受信側電子メールアドレス、または受信側電子メールアドレスに対応する特定のスキルに関連付けられた、エージェントまたはボットとの間の既存の会話がないと決定した場合、接続管理システムは、ステップ820において、メッセージを受信し、応答をユーザに提供し得る、エージェント、エージェントのグループ、またはボットを識別し得る。たとえば、受信側電子メールアドレスが特定のエージェントに対応する場合、接続管理システムは、新しい会話メッセージが受信されたことを示すために、エージェントのクライアントデバイスに通知を送信し得る。エージェントは、それのクライアントデバイスを介して、チャットウィンドウを介して会話メッセージにアクセスするために、接続管理システムによって提供されるユーザインターフェースを介して、接続管理システムにアクセスし得る。接続管理システムは、会話メッセージが電子メールメッセージを介して受信されたことをエージェントに示し得る。別の例として、受信側電子メールアドレスが、エージェントの特定のグループに対応する場合、メッセージコンバージョンサブシステムは、会話メッセージを、エージェントのグループに関連付けられたエージェントキューに追加し得る。これは、エージェントのグループからのエージェントが、キューから会話メッセージを取り出し、チャットウィンドウを介して会話メッセージにアクセスすることを可能にし得る。
[0114]接続管理システムが、ユーザと、受信側電子メールアドレスに対応するエージェントまたはボットとの間の既存の会話を識別した場合、接続管理システムは、ステップ825において、受信された電子メールメッセージが既存の会話に対応するかどうかを決定し得る。たとえば、接続管理システムは、受信された電子メールメッセージが、受信された電子メールメッセージ中で指定された特定の意図についての、エージェント/ボットとユーザとの間の前の通信を含むかどうかを決定し得る。接続管理システムが、受信された電子メールメッセージがこの会話履歴を含まず、ユーザが、受信側電子メールアドレスに関連付けられたエージェント/ボットとの既存の会話を有すると決定した場合、接続管理システムは、ステップ830において、クライアントとの既存の会話を続けるために、ユーザに、既存の会話に対応する既存の電子メールスレッドに応答するように命令し得る。
[0115]接続管理システムが、電子メールメッセージが、ユーザとエージェント/ボットとの間の既存の会話に対応するか、または、電子メールメッセージが、エージェント、エージェントのグループ、またはボットがそれのために識別された、新しい意図または要求に対応すると決定した場合、接続管理システムは、ステップ835において、受信された電子メールメッセージを会話メッセージにコンバートし得、会話メッセージは、エージェントのチャットウィンドウ内で提示され得るか、または場合によっては、メッセージが、ユーザとのチャットセッション上で受信されたかのように、エージェントまたはボットによって処理され得る。一実施形態では、電子メールメッセージが、ユーザと、エージェントまたはボットとの間の既存の会話に対応する場合、接続管理システムは、会話メッセージに加えて、会話についての会話履歴を、エージェントまたはボットに提供し得る。この会話履歴は、ユーザに代わって、接続管理システムによって、エージェントまたはボットに提供された、前に取得された会話メッセージと、エージェントまたはボットによってユーザにサブミットされた応答とを含み得る。ステップ840において、接続管理システムは、既存の会話全体にわたって、ユーザとエージェント/ボットとによってサブミットされた前のメッセージとともに、処理のために、会話メッセージをエージェントまたはボットに送信し得る。会話は、チャットウィンドウを介してエージェントに提示され得、チャットウィンドウを通して、エージェントは、完了した会話履歴のコンテキストにおいて、完了した会話履歴およびユーザからの新しいメッセージを評価し得る。したがって、電子メールメッセージからのユーザのメッセージを電子メールフォーマットで提示するのではなく、接続管理システムは、実際の会話をミラーリングするために、ユーザとエージェントとの間の会話をチャットの形式で提示し得る。
[0116]図9は、少なくとも1つの実施形態による、ユーザ会話メッセージへの配信のために会話メッセージを電子メールメッセージにコンバートするためのプロセス900の例示的な例を示す。プロセス900は、上述の接続管理システムによって実施され得る。ステップ905において、接続管理システムは、ユーザへの配信のために、エージェントまたはボットから会話メッセージを受信する。上述のように、エージェントは、エージェントが、チャットセッションを通してユーザに関与したかのように、接続管理システムによって提供されるチャットウィンドウまたは他のインターフェースを介して、会話メッセージをレビューし得る。チャットウィンドウを通して、エージェントは、(もしあれば)会話履歴をレビューし、ユーザに応答を提供し得る。応答はチャット応答と同様であり得、それにより、エージェントは、ユーザとの一般的なチャットセッションに関与するかのように、ユーザと対話し得る。
[0117]エージェントが、ユーザからの会話メッセージに対する応答をサブミットする場合、メッセージ接続管理システムは、ステップ910において、ユーザへの配信のために、エージェントの応答を組み込み得る、新しい電子メールメッセージを生成し得る。新しい電子メールメッセージは、ユーザの電子メールアドレス、ならびに、意図または要求の解決のために、クライアントに元の電子メールメッセージを送信するために、最初にユーザによって使用されたクライアントの電子メールアドレスを指定し得る。さらに、ステップ915において、接続管理システムは、会話データストアから、新しい電子メールメッセージ中に含めるために、エージェント/ボットとユーザとの間の完了した会話履歴を取得する。この会話履歴は、上記で説明されたように、サブミットされた応答にコンテキストを提供するために、ならびに、ユーザとエージェント/ボットとの間の既存の会話のための接続管理システムのためのトラッキング機構を提供するために使用され得る。
[0118]接続管理システムは、ステップ920において、新しい電子メールメッセージ中に含めるために、エージェント/ボットからの応答を、電子メールメッセージフォーマットにコンバートし得る。さらに、接続管理システムは、ステップ925において、ユーザとエージェント/ボットとの間の既存の会話履歴を、新しい電子メールメッセージに組み込み得る。したがって、新しい電子メールメッセージの本文は、完了した会話履歴をユーザに提供し、エージェント/ボットからの新しいメッセージのためのコンテキストを提供し得る。新しい電子メールメッセージは、ユーザの電子メールアドレスにアドレス指定され得る。さらに、新しい電子メールメッセージ中で指定された送信側電子メールアドレスは、ユーザによってサブミットされた元の電子メールメッセージ中で指定された、受信側電子メールアドレスに対応し得る。
[0119]ステップ930において、接続管理システムは、ユーザの意図または要求に応答して、ユーザに新しい電子メールメッセージを送信し得る。接続管理システムはメッセージ配信サブシステムを介して、ユーザへの配信のために、新しい電子メールメッセージをクライアント電子メールサーバに送信するために、クライアント電子メールサーバのSMTPアドレスを使用し得る。ユーザは、それのネットワークデバイスを介して、ユーザとエージェント/ボットとの間の完了した会話履歴、ならびにエージェント/ボットからユーザの電子メールメッセージへの最も最近の応答とを含み得る、新しい電子メールメッセージを受信し得る。したがって、ユーザは、電子メールメッセージを使用してエージェント/ボットと通信し得、それにより、応答が、電子メールフォーマットで受信され、ユーザからのメッセージをレビューするエージェント/ボットが、エージェント/ボットがチャットセッションを介してユーザに関与したかのように、これらのメッセージと対話し得る。
[0120]図10は、少なくとも1つの実施形態による、ユーザからの電子メールメッセージが、対応するエージェント、エージェントのグループ、またはボットにルーティングされることを可能にするための電子メールメッセージ設定を構成するためのインターフェース1000の例示的な例を示す。図10に示されているように、クライアントが、インターフェース1000と対話して、ユーザと、クライアントに関連付けられたエージェント/ボットとの間の電子メールメッセージングを組み込むように、それらの会話の環境を構成するか、または場合によってはセットアップし得る。図10に示されているように、クライアントが、特定のクライアント電子メールアドレスに関連付けられるべきである電子メールアカウントのタイプを定義し得る。たとえば、クライアントが、電子メールアドレス「techsupport@example.com」をそれの技術サポートアカウントに関連付け得る。このアカウントのために、クライアントは、クライアントの着信および発信電子メールサーバにアクセスするために必要とされ得る、それのユーザ名、パスワード、および/または証明の他のセットを提供し得る。
[0121]インターフェースを通して、クライアントは、それの着信および発信電子メールサーバについての構成情報を提供することを必要とされ得る。たとえば、図10に示されているように、クライアントは、着信電子メールアカウントタイプ(たとえば、IMAP)と、着信電子メールアカウントの設定(たとえば、着信電子メールアカウントサーバのネットワークアドレス、着信電子メールアカウントサーバのためのポート番号、セキュアソケットレイヤ(SSL)が有効にされるかどうか、など)とを指定することを必要とされ得る。さらに、インターフェース1000を通して、クライアントは、発信電子メールアカウントタイプ(たとえば、SMTP)と、発信電子メールアカウントの設定(たとえば、発信電子メールアカウントサーバのネットワークアドレス、ポート番号、SSLが有効にされるかどうか、など)とを指定することを必要とされ得る。
[0122]クライアントが、インターフェース1000を使用して、それの着信および発信電子メールサーバについての構成情報と電子メールアカウント設定とを提供すると、クライアントは、電子メールメッセージが、着信電子メールサーバから受信され得ることと、電子メールメッセージが発信電子メールサーバに送られ得、それらの対応する宛先に配信されることとを保証するために、接続管理システムとクライアントの着信および発信電子メールサーバとの間の接続をテストし得る。問題が検出された場合、クライアントは、インターフェース1000を使用して、問題のトラブルシューティングを行い、必要に応じて構成設定を変更し得る。接続が正常に確立された場合、クライアントは、電子メールアカウントを、電子メールアカウントにアドレス指定されたメッセージを処理するべきである、特定のスキルまたはエンティティに関連付けることに進み得る。
[0123]図11は、少なくとも1つの実施形態による、ユーザから、対応するエージェント、エージェントのグループ、またはボットへの電子メールメッセージのフォワーディングを可能にするために、特定のクライアント電子メールアドレスにスキルを割り当てるためのインターフェース1100の例示的な例を示す。インターフェース1100を通して、クライアントは、ドロップダウンメニューまたは他のインターフェース要素を介して、それの様々なスキルを提示され得る。スキルは、クライアントに関連付けられたエージェントおよび/またはボットの専門分野であり得る。クライアントは、エージェント、エージェントのグループ、および/またはボットを特定のスキルに関連付け得、その結果、受信されたメッセージが、特定のスキルを有するエージェントまたはボットを必要とすることを決定された場合、メッセージは、この特定のスキルを有するエージェントまたはボットにルーティングされ得る。
[0124]インターフェース1100を通して、クライアントは、特定のクライアント電子メールアカウントまたはアドレスを特定のスキルに関連付け得る。たとえば、クライアントが、電子メールアドレス「techsupport@example.com」を「技術サポート」スキルに関連付け得る。これは、接続管理システムに、「techsupport@example.com」にアドレス指定された電子メールメッセージを、「技術サポート」スキルに関連付けられたエージェント、エージェントのグループ、および/またはボットにルーティングさせ得る。
[0125]上述のように、接続管理システムは、受信された電子メールメッセージが、受信された電子メールメッセージ中で指定された特定の意図についての、エージェント/ボットとユーザとの間の前の通信を含むかどうかを決定し得る。接続管理システムが、受信された電子メールメッセージが会話履歴を含まず、ユーザが、受信側電子メールアドレスに関連付けられたエージェント/ボットとの既存の会話を有すると決定した場合、接続管理システムは、クライアントとの既存の会話を続けるために、ユーザに、既存の会話に対応する既存の電子メールスレッドに応答するように自動的に命令し得る。インターフェース1100を通して、クライアントは、ユーザに、既存の電子メールスレッド(たとえば、解決していない会話)に応答するように自動的に命令するために、接続管理システムによって提供され得る応答を生成し得る。この応答は、クライアントに関連付けられたエージェント/ボットとのユーザの会話を続けるために、既存の電子メールスレッドに応答するようにとのユーザへの命令として働き得る。
[0126]図12は、少なくとも1つの実施形態による、クライアント電子メールメッセージ応答中に含まれるべき電子メールメッセージヘッダおよびフッタを構成するためのインターフェース1200の例示的な例を示す。インターフェース1200を通して、クライアントは、クライアントに代わってユーザに送られる各電子メールメッセージ中に含まれるべきヘッダおよびフッタを、定義および/またはアップロードし得る。一実施形態では、接続管理システムは、クライアントが、接続管理システムによって供給されるテンプレートを使用して、ユーザへのそれらの電子メールメッセージ中に含まれるべきヘッダおよびフッタを定義することを必要とすることができる。たとえば、インターフェース1200を通して、接続管理システムは、クライアントに、クライアント電子メールメッセージのためのヘッダおよびフッタを定義するための1つまたは複数のファイルを含む、ハイパーテキストマークアップ言語(HTML)の例示的パッケージをダウンロードするように命令し得る。これらの1つまたは複数のファイルは、ヘッダおよびフッタ、ならびにヘッダおよびフッタを作成するためのテンプレートをどのように作成すべきかに関する命令のセットを含み得る。これらのテンプレートを使用して、クライアントは、ユーザへのそれの電子メールメッセージ中に自動的に含まれ得る、新しいヘッダおよび/またはフッタを生成し得る。
[0127]クライアントが、それの電子メールメッセージ中に含めるためのヘッダおよび/またはフッタをサブミットする場合、接続管理システムは、提供されたヘッダおよび/またはフッタが接続管理システムの1つまたは複数の要件を満たすことを保証するために、ヘッダおよび/またはフッタを評価し得る。たとえば、接続管理システムは、提供されたヘッダおよび/またはフッタが、悪意のある、または場合によっては無認可の構成要素を含まないことを保証するために、ヘッダおよび/またはフッタを評価し得る。さらに、接続管理システムは、提供されたヘッダおよび/またはフッタが、接続管理システムによって確立された1つまたは複数のスタイルガイドラインに準拠することを保証するために、ヘッダおよび/またはフッタを評価し得る。接続管理システムが、提供されたヘッダおよび/またはフッタがこれらのガイドラインに準拠しない、または問題が他の方法で検出されると決定した場合、接続管理システムは、提供されたヘッダおよび/またはフッタを拒否し、必要な変更を行うようにクライアントに命令し得る。しかしながら、接続管理システムが、提供されたヘッダおよび/またはフッタが接続管理システムによって確立されたガイドラインを満たすと決定した場合、接続管理システムは、提供されたヘッダおよび/またはフッタを、クライアントおよび対応するクライアント電子メールアドレスに関連付けられたエージェントまたはボットからユーザへのメッセージに組み込み得る。
[0128]図13は、少なくとも1つの実施形態による、意図または要求に対処するためにユーザとの会話に関与するためのインターフェース1300の例示的な例を示す。インターフェース1300は、クライアントに関連付けられたエージェントによって利用され得る。エージェントは、「技術サポート」、「販売」、「請求」など、特定のスキルに割り当てられ得る。上述のように、クライアントは、特定の電子メールアカウントをスキルに関連付け得る。例示的な例として、クライアントは、電子メールアカウント「techsupport@example.com」をそれの「技術サポート」スキルに関連付け得る。これは、接続管理システムに、「techsupport@example.com」電子メールアドレスにアドレス指定された電子メールメッセージを、「技術サポート」スキルに割り当てられたエージェント、エージェントのグループ、またはボットにルーティングさせ得る。図13に示されているように、クライアントに関連付けられたエージェントは、ユーザからのメッセージが、エージェントの割り当てられたスキルに関連付けられた電子メールアドレスにアドレス指定された結果として、そのメッセージを取得し得る。
[0129]上述のように、接続管理システムは、ユーザからの電子メールメッセージを、チャットウィンドウ内でエージェントに提示され得る会話メッセージにコンバートし得る。図13に示されているように、ユーザからのメッセージが、会話メッセージとしてチャットウィンドウ内に提示される。会話メッセージは、ユーザからの受信された電子メールメッセージの本文と同様であり得、それにより、会話メッセージは、対処されるべきである意図または要求を示し得る。接続管理システムは、インターフェース1300を介して、ユーザからの会話メッセージが、受信された電子メールメッセージからコンバートされたことを示し得る。たとえば、図13に示されているように、接続管理システムは、ユーザとエージェントとの間の特定の会話(たとえば、チャットセッション)について、ユーザのメッセージが電子メールメッセージを介して受信されたことと、ユーザによって使用されるクライアント電子メールアドレスと、ユーザの電子メールアドレスとを示し得る。
[0130]一実施形態では、インターフェース1300を介して、エージェントは、ユーザの電子メールメッセージからコンバートされたユーザの会話メッセージに応答する会話メッセージをサブミットすることができる。接続管理システムは、インターフェース1300において指定されているように、エージェントの会話メッセージを、ユーザの電子メールアドレスにアドレス指定され得る電子メールメッセージにコンバートし得る。接続管理システムは、この電子メールメッセージに、クライアントによってアップロードされたヘッダおよび/またはフッタ、ならびにユーザとエージェントとの間の既存の会話履歴を組み込み得る。この会話履歴は、インターフェース1300を介して提示される会話履歴と同様であり得る。この会話履歴は、ユーザとエージェントとの間の通信セッションのための識別子として働き得る。したがって、電子メールメッセージを受信するユーザは、電子メールフォーマットで、会話履歴をレビューし、エージェントの応答のコンテキストを決定することが可能であり得る。ユーザは、電子メールメッセージに応答するが、別の電子メールメッセージをクライアント電子メールアドレスに送信し得、ユーザによってサブミットされる応答が、インターフェース1300内の会話メッセージとしてエージェントに提示され得る。
[0131]図14は、いくつかの実装形態による、バスなどの接続1406を使用して互いに電気通信している様々な構成要素を含むコンピューティングシステムアーキテクチャ1400を示す。例示的なシステムアーキテクチャ1400は、処理ユニット(CPUまたはプロセッサ)1404と、ROM1418およびRAM1416などのシステムメモリ1420を含む様々なシステム構成要素をプロセッサ1404に結合するシステム接続1406とを含む。システムアーキテクチャ1400は、プロセッサ1404に直接接続されたか、プロセッサ1404に極めて近接しているか、またはプロセッサ1404の一部として組み込まれた、高速メモリのキャッシュ1402を含むことができる。システムアーキテクチャ1400は、プロセッサ1404による迅速なアクセスのために、メモリ1420および/または記憶デバイス1408からキャッシュ1402にデータをコピーすることができる。このようにして、キャッシュは、データを待っている間のプロセッサ1404遅延を回避する性能の向上を提供することができる。これらおよび他のモジュールは、様々なアクションを実施するようにプロセッサ1404を制御することができ、またはプロセッサ1404を制御するように構成され得る。
[0132]他のシステムメモリ1420も、使用のために利用可能であり得る。メモリ1420は、異なる性能特性をもつ、複数の異なるタイプのメモリを含むことができる。プロセッサ1404は、任意の汎用プロセッサと、プロセッサ1404ならびに専用プロセッサを制御するように構成された、記憶デバイス1408に記憶されたサービス1 1410、サービス2 1412、およびサービス3 1414など、ハードウェアまたはソフトウェアサービスとを含むことができ、ここで、ソフトウェア命令が実際のプロセッサ設計に組み込まれる。プロセッサ1404は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含んでいる、完全自己完結型コンピューティングシステムであり得る。マルチコアプロセッサは、対称的または非対称的であり得る。
[0133]コンピューティングシステムアーキテクチャ1400とのユーザ対話を可能にするために、入力デバイス1422は、スピーチのためのマイクロフォン、ジェスチャまたはグラフィカル入力のためのタッチセンシティブスクリーン、キーボード、マウス、モーション入力、スピーチなど、任意の数の入力機構を表すことができる。出力デバイス1424も、当業者に知られているいくつかの出力機構のうちの1つまたは複数であり得る。いくつかの事例では、マルチモーダルシステムは、ユーザが、コンピューティングシステムアーキテクチャ1400と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース1426は、概して、ユーザ入力とシステム出力とを統制および管理することができる。任意の特定のハードウェア構成上で動作することに対する制限はなく、したがって、ここでの基本的特徴は、改善されたハードウェア構成またはファームウェア構成が開発されるにつれて、それらで容易に代用され得る。
[0134]記憶デバイス1408は、不揮発性メモリであり、磁気カセット、フラッシュメモリカード、固体メモリデバイス、デジタル多用途ディスク、カートリッジ、RAM1416、ROM1418、およびそれらのハイブリッドなど、コンピュータによってアクセス可能であるデータを記憶することができるハードディスクまたは他のタイプのコンピュータ可読媒体であり得る。
[0135]記憶デバイス1408は、プロセッサ1404を制御するためのサービス1410、1412、1414を含むことができる。他のハードウェアモジュールまたはソフトウェアモジュールが企図される。記憶デバイス1408は、システム接続1406に接続され得る。一態様では、特定の機能を実施するハードウェアモジュールは、その機能を行うために、プロセッサ1404、接続1406、出力デバイス1424などの必要なハードウェア構成要素に関連して、コンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
[0136]開示された方法は、コンピューティングシステムを使用して実施され得る。例示的なコンピューティングシステムは、プロセッサ(たとえば、中央処理ユニット)と、メモリと、不揮発性メモリと、インターフェースデバイスとを含むことができる。メモリは、データおよび/または1つまたは複数のコードセット、ソフトウェア、スクリプトなどを記憶し得る。コンピュータシステムの構成要素は、バスを介してあるいは何らかの他の知られているまたは好都合なデバイスを通して一緒に結合され得る。プロセッサは、たとえば、たとえばメモリに記憶されたコードを実行することによって本明細書で説明される方法のすべてまたは一部を行うように構成され得る。ユーザデバイスもしくはコンピュータ、プロバイダサーバもしくはシステム、または中断されたデータベース更新システムのうちの1つまたは複数は、コンピューティングシステムの構成要素またはそのようなシステムの変形形態を含み得る。
[0137]本開示は、限定はしないが、ポイントオブセールシステム(「POS」)を含む任意の好適な物理的形態をとるコンピュータシステムを企図する。限定ではなく例として、コンピュータシステムは、埋込みコンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)もしくはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、またはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステムは、ユニタリーであるかもしくは分散された、複数のロケーションにわたる、複数の機械にわたる、および/または1つもしくは複数のネットワーク中の1つもしくは複数のクラウド構成要素を含み得るクラウド中に存在する1つまたは複数のコンピュータシステムを含み得る。適切な場合、1つまたは複数のコンピュータシステムは、実質的な空間的または時間的制限なしに本明細書で説明または例示されている1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定ではなく例として、1つまたは複数のコンピュータシステムは、リアルタイムでまたはバッチモードで本明細書で説明または例示されている1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステムは、適切な場合、異なる時間にまたは異なるロケーションで本明細書で説明または例示されている1つまたは複数の方法の1つまたは複数のステップを実施し得る。
[0138]プロセッサは、たとえば、Intel Pentium(登録商標)マイクロプロセッサまたはMotorola power PCマイクロプロセッサなどの従来のマイクロプロセッサであり得る。「機械可読(記憶)媒体」または「コンピュータ可読(記憶)媒体」という用語がプロセッサによってアクセス可能である任意のタイプのデバイスを含むことを、当業者は認識されよう。
[0139]メモリは、たとえば、バスによってプロセッサに結合され得る。メモリは、限定ではなく例として、ダイナミックRAM(DRAM)およびスタティックRAM(SRAM)などのランダムアクセスメモリ(RAM)を含むことができる。メモリは、ローカルであるか、リモートであるか、または分散され得る。
[0140]バスはまた、プロセッサを不揮発性メモリおよび駆動ユニットに結合することができる。不揮発性メモリは、しばしば、磁気フロッピー(登録商標)もしくはハードディスク、光磁気ディスク、光ディスク、CD-ROM、EPROM、もしくはEEPROM(登録商標)などの読取り専用メモリ(ROM)、磁気もしくは光学カード、または大量のデータのための別の形式の記憶装置である。このデータの一部は、しばしば、直接メモリアクセスプロセスによって、コンピュータ中のソフトウェアの実行中にメモリに書き込まれる。不揮発性記憶装置は、ローカルであるか、リモートであるか、または分散され得る。システムが、メモリ中で利用可能なすべての適用可能なデータを用いて作成され得るので、不揮発性メモリは随意である。典型的なコンピュータシステムは、通常、少なくともプロセッサと、メモリと、メモリをプロセッサに結合するデバイス(たとえば、バス)とを含むことになる。
[0141]ソフトウェアは、不揮発性メモリおよび/または駆動ユニットに記憶され得る。実際、大きいプログラムでは、メモリにプログラム全体を記憶することが可能でないことさえある。それにもかかわらず、ソフトウェアを実行するために、必要な場合、処理に適したコンピュータ可読ロケーションに移動され、説明のために、そのロケーションは、本明細書ではメモリと呼ばれることを理解されたい。ソフトウェアが実行のためにメモリに移動された場合でも、プロセッサは、ソフトウェアに関連付けられた値を記憶するためにハードウェアレジスタと、理想的には、実行を高速化するように働くローカルキャッシュとを利用することができる。本明細書では、ソフトウェアプログラムが「コンピュータ可読媒体中に実装される」と呼ばれるときに、ソフトウェアプログラムは、任意の知られているまたは好都合なロケーション(不揮発性記憶装置からハードウェアレジスタまで)に記憶されていると仮定される。プログラムに関連付けられた少なくとも1つの値がプロセッサによって読取り可能なレジスタに記憶されるとき、プロセッサは、「プログラムを実行するように構成される」と見なされる。
[0142]バスはまた、プロセッサをネットワークインターフェースデバイスに結合することができる。インターフェースは、モデムまたはネットワークインターフェースのうちの1つまたは複数を含むことができる。モデムまたはネットワークインターフェースがコンピュータシステムの一部であると見なされ得ることを諒解されよう。インターフェースは、アナログモデム、統合サービスデジタルネットワーク(ISDN0モデム、ケーブルモデム、トークンリングインターフェース、衛星送信インターフェース(たとえば、「直接PC」)、またはコンピュータシステムを他のコンピュータシステムに結合するための他のインターフェースを含むことができる。インターフェースは、1つまたは複数の入力および/または出力(I/O)デバイスを含むことができる。I/Oデバイスは、限定ではなく例として、キーボードと、マウスもしくは他のポインティングデバイスと、ディスクドライブと、プリンタと、スキャナと、ディスプレイデバイスを含む他の入力および/または出力デバイスとを含むことができる。ディスプレイデバイスは、限定ではなく例として、陰極線管(CRT)、液晶ディスプレイ(LCD)、または何らかの他の適用可能な知られているもしくは好都合なディスプレイデバイスを含むことができる。
[0143]動作中、コンピュータシステムは、ディスクオペレーティングシステムなどのファイル管理システムを含むオペレーティングシステムソフトウェアによって制御され得る。関連付けられたファイル管理システムソフトウェアをもつオペレーティングシステムソフトウェアの一例は、ワシントン州RedmondのMicrosoft CorporationからのWindows(登録商標)として知られるオペレーティングシステムのファミリーおよびそれらの関連付けられたファイル管理システムである。それの関連付けられたファイル管理システムソフトウェアをもつオペレーティングシステムソフトウェアの別の例は、Linux(登録商標)オペレーティングシステムおよびそれの関連付けられたファイル管理システムである。ファイル管理システムは、不揮発性メモリおよび/または駆動ユニットに記憶され得、データを入力および出力することと、不揮発性メモリおよび/または駆動ユニット上にファイルを記憶することを含むメモリにデータを記憶することとをオペレーティングシステムが行うために必要とされる様々な行為を実行することをプロセッサに行わせることができる。
[0144]詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズムおよび記号表現に関して提示され得る。これらのアルゴリズムの説明および表現は、データ処理分野の当業者によって、自身の仕事の本質を他の当業者に最も効果的に伝達するために使用される手段である。アルゴリズムは、本明細書では、および一般には、所望の結果をもたらす自己無撞着な一連の演算であると想到される。演算は、物理量の物理的操作を必要とするものである。通常、必ずしも必要とは限らないが、これらの量は、記憶、転送、結合、比較、および他の方法で操作されることが可能な電気信号または磁気信号の形式をとる。主に一般的な用法という理由で、これらの信号をビット、値、要素、記号、文字、項、数、などと呼ぶことが時々便利であることがわかっている。
[0145]ただし、これらおよび同様の用語はすべて、適切な物理量に関連付けられるべきものであり、これらの量に適用される便利なラベルにすぎないことに留意されたい。別段に明記されていない限り、以下の説明から明らかなように、説明全体にわたって、「処理する」または「算出する」または「計算する」または「決定する」または「表示する」または「生成する」などの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリまたはレジスタまたは他のそのような情報記憶、送信もしくはディスプレイデバイス内の物理量として同様に表される他のデータに変換するコンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよびプロセスを指すことを諒解されたい。
[0146]本明細書で提示されるアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関連しない。様々な汎用システムは、本明細書の教示に従ってプログラムとともに使用され得るか、またはいくつかの例の方法を実施するためにより特殊な装置を構築するのに便利であることがわかり得る。様々なこれらのシステムのために必要とされる構造が以下の説明から明らかになるであろう。さらに、技法は、任意の特定のプログラミング言語を参照しながら説明されず、したがって、様々な例は、様々なプログラミング言語を使用して実装され得る。
[0147]様々な実装形態では、システムは、スタンドアロンデバイスとして動作するか、または他のシステムに接続(たとえば、ネットワーク化)され得る。ネットワーク化された展開では、システムは、クライアントサーバネットワーク環境におけるサーバもしくはクライアントシステムの容量で、またはピアツーピア(もしくは分散)ネットワーク環境におけるピアシステムとして動作し得る。
[0148]システムは、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、ラップトップコンピュータ、セットトップボックス(STB)、携帯情報端末(PDA)、セルラー電話、iPhone(登録商標)、Blackberry(登録商標)、プロセッサ、電話、ウェブ機器、ネットワークルータ、スイッチもしくはブリッジ、またはそのシステムによってとられるべきアクションを指定する命令のセット(連続またはそれ以外)を実行することが可能な任意のシステムであり得る。
[0149]機械可読媒体または機械可読記憶媒体が、例として、単一の媒体であるものとして示されているが、「機械可読媒体」および「機械可読記憶媒体」という用語は、命令の1つまたは複数のセットを記憶する単一の媒体または複数の媒体(たとえば、集中もしくは分散データベース、ならびに/または関連付けられたキャッシュおよびサーバ)を含むものととられるべきである。「機械可読媒体」および「機械可読記憶媒体」という用語はまた、システムによる実行のための命令のセットを記憶、符号化、または搬送することが可能であり、システムに本明細書で開示される方法またはモジュールのうちの任意の1つまたは複数を実施させる任意の媒体を含むものととられるものとする。
[0150]概して、本開示の実装形態を実装するために実行されるルーチンは、オペレーティングシステムの部分または特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュールまたは「コンピュータプログラム」と呼ばれる一連の命令として実装され得る。コンピュータプログラムは、一般に、コンピュータ中の様々なメモリおよび記憶デバイス中の様々な時間における1つまたは複数の命令セットを備え、命令セットは、コンピュータ中の1つまたは複数の処理ユニットまたはプロセッサによって読み取られ、実行されたとき、コンピュータに、本開示の様々な態様に関与する要素を実行するために動作を実施させる。
[0151]さらに、完全に機能するコンピュータおよびコンピュータシステムの文脈で例が説明されたが、様々な例が様々な形式のプログラムオブジェクトとして分散されることが可能であること、および分散に実際に影響を及ぼすために使用される特定のタイプの機械またはコンピュータ可読媒体にかかわらず本開示が等しく適用されることを、当業者は諒解されよう。
[0152]機械可読記憶媒体、機械可読媒体、またはコンピュータ可読(記憶)媒体のさらなる例は、限定はしないが、特に、揮発性および不揮発性メモリデバイス、フロッピーおよび他のリムーバブルディスク、ハードディスクドライブ、光ディスク(たとえば、コンパクトディスク読取り専用メモリ(CD ROM)、デジタル多用途ディスク(DVD)など)などの記録可能タイプ媒体と、デジタルおよびアナログ通信リンクなどの送信タイプ媒体とを含む。
[0153]いくつかの状況では、バイナリ1からバイナリ0への、またはその逆の状態の変化など、メモリデバイスの演算は、たとえば、物理的変換などの変換を備え得る。特定のタイプのメモリデバイスでは、そのような物理的変換は、異なる状態または物への物品の物理的変換を備え得る。たとえば、限定はしないが、いくつかのタイプのメモリデバイスの場合、状態の変化は、電荷の累積および蓄積、あるいは蓄積された電荷の解放を伴い得る。同様に、他のメモリデバイスでは、状態の変化は、磁気方位の物理的変化もしくは変換または結晶状からアモルファスへのもしくはその逆の分子構造の物理的変化もしくは変換を備え得る。上記は、メモリデバイスにおけるバイナリ1のバイナリ0へのまたはその逆への状態の変化が物理的変換などの変換を備え得る、すべての例の網羅的なリストであることを意図されない。むしろ、上記は例示的な例として意図される。
[0154]記憶媒体は、一般に、非一時的であるか、または非一時的デバイスを備え得る。このコンテキストでは、非一時的記憶媒体は、有形であるデバイスを含み得、これは、デバイスが具体的な物理的形式を有することを意味するが、デバイスはそれの物理的状態を変化させ得る。したがって、たとえば、非一時的は、状態のこの変化にもかかわらず有形のままであるデバイスを指す。
[0155]上記の説明および図面は、例示的なものであり、主題を開示される正確な形式に限定するものと解釈すべきではない。上記の開示に照らして多くの修正形態および変形形態が可能であることを、当業者は諒解することができる。本開示の完全な理解を与えるために、多数の具体的な詳細が説明された。しかしながら、いくつかの事例では、説明を不明瞭にすることを回避するために、よく知られているまたは従来の詳細が説明されていない。
[0156]本明細書で使用する「接続された」、「結合された」という用語またはそれの任意の変形形態は、システムのモジュールに適用されるときに、2つまたはそれ以上の要素間の直接的または間接的な任意の接続または結合を意味し、要素間の接続の結合は、物理的、論理的、またはそれらの任意の組合せであり得る。さらに、「本明細書で(herein)」、「上記で(above)」、「以下で(below)」などの用語、および同様の意味の用語は、本明細書で使用されるとき、本明細書の任意の特定の部分ではなく、本明細書を全体として指すものとする。文脈が許せば、単数または複数を使用する、上記の発明を実施するための形態における用語は、それぞれ複数または単数をも含み得る。2つまたはそれ以上の項目のリストに関する「または(or)」という用語は、リスト内の項目のうちのいずれか、リスト内の項目のうちのすべて、またはリスト内の項目の任意の組合せという用語の解釈のうちのすべてをカバーする。
[0157]開示される主題が、以下に示されていない他の形式および方式において実施され得ることを、当業者は諒解されよう。第1の(first)、第2の(second)、上部の(top)および下部の(bottom)などの関係を示す用語の使用は、もしあれば、1つのエンティティまたはアクションを、そのようなエンティティまたはアクションの間のいかなるそのような実際の関係または順序を必要とするかまたは暗示することなしに、別のものと区別するためだけに使用されることを理解されたい。
[0158]プロセスまたはブロックが所与の順序で提示されているが、代替実装形態は、異なる順序で、ステップを有するルーチンを実施するか、またはブロックを有するシステムを採用し得、いくつかのプロセスまたはブロックは、代替または部分組合せを提供するために削除、移動、追加、再分割、置換、連結、および/または修正され得る。これらのプロセスまたはブロックの各々は、様々な異なる方法で実装され得る。また、プロセスまたはブロックは、時々連続して実施されているように示されているが、これらのプロセスまたはブロックは、代わりに並行して実施され得るか、または異なる時間に実施され得る。さらに、本明細書において言及された任意の特定の数は例にすぎず、代替実装形態は、異なる値または範囲を採用し得る。
[0159]本明細書で提供される開示の教示は、必ずしも上記で説明されたシステムに限らず他のシステムに適用され得る。上記で説明された様々な例の要素および行為は、さらなる例を与えるために組み合わされ得る。
[0160]添付の出願書類中にリストされ得るものを含む上記で言及された任意の特許および出願および他の参考文献は、参照により本明細書に組み込まれる。本開示の態様は、必要な場合、本開示のまたさらなる例を与えるために上記で説明された様々な参考文献のシステム、機能、および概念を採用するために修正され得る。
[0161]これらおよび他の変更は、上記の発明を実施するための形態に照らして本開示に行われ得る。上記の説明がいくつかの例について説明し、企図される最良の態様について説明するが、文章中でいかに詳述されているように見えたとしても、教示は多くの方法で実施され得る。システムの詳細は、本明細書で開示される主題によって依然として包含されるが、それの実装詳細において大幅に変動し得る。上記のように、本開示のいくつかの特徴または態様について説明するときに使用される特定の用語は、その用語が関連付けられる開示の任意の特定の特性、特徴、または態様に制限されるように、その用語が本明細書で再定義されていることを暗示するものととられるべきではない。概して、以下の特許請求の範囲において使用される用語は、上記の発明を実施するための形態セクションがそのような用語を明示的に定義しない限り、本明細書において開示される特定の実装形態に本開示を制限するものと解釈されるべきではない。したがって、本開示の実際の範囲は、開示される実装形態だけでなく、特許請求の範囲の下で本開示を実施または実装するすべての等価な方法をも包含する。
[0162]本開示のいくつかの態様がいくつかの請求項の形式で以下に提示されているが、発明者は、任意の数の請求項の形式で本開示の様々な態様を企図する。米国特許法112条(f)の下で扱われることが意図されるあらゆる請求項は、「ための手段(means for)」という用語で始まることになる。したがって、出願人は、本開示の他の態様のためのそのような追加の請求項の形式を遂行するために本出願を出願した後に追加の請求項を追加する権利を留保する。
[0163]本明細書において使用される用語は、概して、本開示のコンテキスト内で、および各用語が使用される特定のコンテキストにおいて、当技術分野におけるそれらの通常の意味を有する。本開示について説明するために使用されるいくつかの用語は、本開示の説明に関して実施者に追加の案内を与えるために上記でまたは本明細書の他の場所で説明される。便宜上、いくつかの用語は、たとえば、大文字化、イタリック体、および/または引用符を使用して強調され得る。強調の使用は、用語の範囲および意味に対して影響を及ぼさず、用語の範囲および意味は、それが強調されているか否かにかかわらず、同じコンテキストにおいて同じである。同じ要素が2つ以上の方法で説明され得ることを諒解されよう。
[0164]したがって、代替的な文言および同義語が本明細書で説明される用語のうちのいずれか1つまたは複数について使用され得、また、用語が本明細書で詳述または説明されるか否かにいかなる特別な重要性も置かれない。いくつかの用語のための類義語が与えられる。1つまたは複数の類義語の詳述が他の類義語の使用を除外しない。本明細書で説明されるあらゆる用語の例を含む本明細書の任意の場所での例の使用は、例示的なものにすぎず、本開示またはあらゆる例示された用語の範囲および意味をさらに限定することは意図されない。同様に、本開示は、本明細書で与えられる様々な例に限定されない。
[0165]本開示の範囲をさらに限定する意図なしに、本開示の例による機器、装置、方法およびそれらの関係する結果の例が以下で与えられる。タイトルまたはサブタイトルが読者の便宜のために例中で使用され得、いかなる場合も、これは、本開示の範囲を限定するべきでないことに留意されたい。別段に定義されていない限り、本明細書で使用されるすべての技術的なおよび科学的な用語は、本開示が関係する当業者によって一般に理解されるものと同じ意味を有する。矛盾する場合、定義を含めて、本開示が優先することにする。
[0166]本明細書のいくつかの部分は、情報に対する動作のアルゴリズムおよび記号表現に関して例について説明する。これらのアルゴリズムの説明および表現は、データ処理分野の当業者によって、自身の仕事の本質を他の当業者に効果的に伝達するために一般的に使用される。これらの動作は、機能的に、計算量的に、または論理的に説明されているが、コンピュータプログラムまたは等価な電気回路、マイクロコードなどによって実装されると理解される。さらに、一般性を失うことなく、モジュールとして動作のこれらの構成に言及することが時々好都合であることもわかっている。説明された動作およびそれらの関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せで実施され得る。
[0167]本明細書で説明されるステップ、動作、またはプロセスのいずれかは、単独でまたは他のデバイスと組み合わせて、1つまたは複数のハードウェアまたはソフトウェアモジュールを用いて実施または実装され得る。いくつかの例では、ソフトウェアモジュールは、コンピュータプログラムコードを含んでいるコンピュータ可読媒体を備えるコンピュータプログラムオブジェクトを用いて実装され、これは、説明されたステップ、動作、またはプロセスのいずれかまたはすべてを実施するためのコンピュータプロセッサによって実行され得る。
[0168]例はまた、本明細書における動作を実施するための装置に関係し得る。本装置は、必要とされる目的のために特別に構築され得、および/または、本装置は、コンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化または再構成される汎用コンピューティングデバイスを備え得る。そのようなコンピュータプログラムは、コンピュータシステムバスに結合され得る非一時的、有形コンピュータ可読記憶媒体、または電子命令を記憶するのに好適な任意のタイプの媒体に記憶され得る。さらに、本明細書で言及される任意のコンピューティングシステムは、単一のプロセッサを含み得るか、または増加された計算能力のための複数のプロセッサ設計を採用するアーキテクチャであり得る。
[0169]例はまた、本明細書で説明されるコンピューティングプロセスによって生成されるオブジェクトに関係し得る。そのようなオブジェクトは、コンピューティングプロセスから生じた情報を備え得、ここで、情報は、非一時的、有形コンピュータ可読記憶媒体上に記憶され、コンピュータプログラムオブジェクトまたは本明細書で説明される他のデータ組合せの任意の実装形態を含み得る。
[0170]本明細書において使用された文言は、主に、読みやすさおよび教示目的のために選択されており、それは、主題を画成または制限するために選択されていないことがある。したがって、本開示の範囲が、この詳細な説明によってではなく、本明細書に基づく出願上に公表された特許請求の範囲によって限定されることが意図される。したがって、例の開示は、添付の特許請求の範囲に記載されている主題の範囲の限定ではなく、説明のためのものであることが意図される。
[0171]コンテキスト接続システムのためのシステムおよび構成要素の様々な実装形態の完全な理解を与えるために具体的な詳細が前の説明で与えられた。しかしながら、上記で説明された実装形態がこれらの具体的な詳細なしに実施され得ることを当業者は理解されよう。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、実施形態を不要な詳細で不明瞭にしないように、ブロック図の形式において構成要素として示され得る。他の事例では、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法が不要な詳細なしに示され得る。
[0172]個々の実装形態が、フローチャート、流れ図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明されることがあることにも留意されたい。フローチャートは動作を連続プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。プロセスの動作が完了されるとき、プロセスは終了されるが、図中に含まれない追加のステップを有し得る。プロセスは、方法、機能、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが機能に対応するとき、それの終了は、呼出し関数またはメイン関数への関数の復帰に対応することができる。
[0173]クライアントデバイス、ネットワークデバイス、および他のデバイスは、特に、1つまたは複数の集積回路、入力デバイス、出力デバイス、データ記憶デバイス、および/またはネットワークインターフェースを含むコンピューティングシステムであり得る。集積回路は、特に、たとえば、1つまたは複数のプロセッサ、揮発性メモリ、および/または不揮発性メモリを含むことができる。入力デバイスは、たとえば、キーボード、マウス、キーパッド、タッチインターフェース、マイクロフォン、カメラ、および/または他のタイプの入力デバイスを含むことができる。出力デバイスは、たとえば、ディスプレイスクリーン、スピーカー、触覚フィードバックシステム、プリンタ、および/または他のタイプの出力デバイスを含むことができる。ハードドライブまたはフラッシュメモリなどのデータ記憶デバイスは、コンピューティングデバイスが、一時的にまたは永続的にデータを記憶することを可能にすることができる。ワイヤレスまたはワイヤードインターフェースなどのネットワークインターフェースは、コンピューティングデバイスがネットワークと通信することを可能にすることができる。コンピューティングデバイスの例は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレット、スマートフォン、携帯情報端末、デジタルホームアシスタント、ならびにコンピューティングデバイスが組み込まれた機械および装置を含む。
[0174]「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、ならびに(1つまたは複数の)命令および/またはデータを記憶、含有、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得る非一時的媒体を含み得、それは、ワイヤレスにまたはワイヤード接続を介して伝搬する搬送波および/または一時的電子信号を含まない。非一時的媒体の例は、限定はしないが、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスを含み得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得るコードおよび/または機械実行可能命令をその上に記憶していることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツをパスおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を介してパス、フォワーディング、または送信され得る。
[0175]上記で説明された様々な例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読または機械可読記憶媒体(たとえば、プログラムコードまたはコードセグメントを記憶するための媒体)に記憶され得る。集積回路中に実装される(1つまたは複数の)プロセッサが、必要なタスクを実施し得る。
[0176]構成要素が、ある動作を実施する「ように構成されて」いるものとして説明される場合、そのような構成は、たとえば、動作を実施するように電子回路または他のハードウェアを設計することによって、動作を実施するようにプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の好適な電子回路)をプログラムすることによって、またはそれらの任意の組合せによって、達成され得る。
[0177]本明細書において開示される実装形態に関連して説明される、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概して、それらの機能に関して上記で説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
[0178]本明細書で説明される技法は、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せにおいても実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのうちのいずれかにおいて実装され得る。モジュールまたは構成要素として説明された特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別個に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの1つまたは複数を実施する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASH(登録商標)メモリ、磁気もしくは光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形式でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
[0179]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示において説明される技法のうちのいずれかを実施するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または、任意の他のそのような構成としても実装され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または、本明細書で説明される技法の実装に適した任意の他の構造もしくは装置のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明される機能は、中断されたデータベース更新システムを実装するために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に与えられ得る。
[0180]本技術の上記の詳細な説明は、例示および説明のために提示された。それは、網羅的なものであることも、開示される正確な形式に本技術を限定するものであることも意図されない。上記の教示に照らして、多くの修正形態および変形形態が可能である。本技術の原理およびそれの実際的適用例について最良に説明し、他の当業者が、様々な実施形態において、企図された特定の用途に好適であるような様々な修正を加えて本技術を最良に利用することを可能にするために、説明される実施形態が選定された。本技術の範囲が特許請求の範囲によって定義されることが意図される。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
クライアントに関連付けられたアカウントにアドレス指定された要求電子メールメッセージを受信することと、ここにおいて、前記要求電子メールメッセージが本文を含み、ここにおいて、前記本文が意図を指定する、
前記要求電子メールメッセージのための受信側を識別することと、ここにおいて、前記受信側が前記アカウントに関連付けられる、
前記要求電子メールメッセージの前記本文から前記意図を抽出することと、
チャット通信チャネル上で前記意図を送信することと、ここにおいて、前記意図が前記受信側によって受信されたとき、前記受信側が、前記チャット通信チャネルを使用して応答することができる、
前記チャット通信チャネル上で前記意図に対する応答を受信することと、
応答電子メールメッセージを生成することと、ここにおいて、前記応答電子メールメッセージが、前記応答と、前記要求電子メールメッセージの前記受信側および送信側に関連付けられた会話履歴とを含み、ここにおいて、前記応答と前記会話履歴とが、前記応答電子メールメッセージの本文中に含まれる、
前記応答電子メールメッセージを送信することと
を備える、コンピュータ実装方法。
[C2]
前記意図が、前記要求電子メールメッセージの前記受信側および前記送信側に関連付けられた前記会話履歴とともに前記受信側に送信され、ここにおいて、前記意図が前記会話履歴に組み込まれる、C1に記載のコンピュータ実装方法。
[C3]
前記アカウントが、受信側のグループに関連付けられ、
前記コンピュータ実装方法が、前記意図に基づいて受信側の前記グループから前記受信側を識別することをさらに備える、
C1に記載のコンピュータ実装方法。
[C4]
前記クライアントに関連付けられた前記アカウントが、スキルにさらに関連付けられ、
前記受信側は、前記受信側が前記スキルに割り当てられたことの結果として、識別される、
C1に記載のコンピュータ実装方法。
[C5]
ヘッダおよびフッタを前記応答電子メールメッセージに挿入することをさらに備え、ここにおいて、前記ヘッダおよび前記フッタが前記クライアントに関連付けられる、C1に記載のコンピュータ実装方法。
[C6]
前記要求電子メールメッセージを受信するためにクライアントサーバをポーリングすることをさらに備える、C1に記載のコンピュータ実装方法。
[C7]
他の電子メールメッセージを受信することと、
前記要求電子メールメッセージに対応する会話セッションがアクティブであると決定することと、
前記他の電子メールメッセージに対する応答を送信することと、ここにおいて、前記他の電子メールメッセージに対する前記応答が、前記要求電子メールメッセージに対応する前記会話セッションを利用するようにとの命令を含む、
をさらに備える、C1に記載のコンピュータ実装方法。
[C8]
1つまたは複数のプロセッサと、
命令をその上に記憶するメモリと
を備える、システムであって、前記命令は、前記1つまたは複数のプロセッサによって実行されたことの結果として、前記システムに、
クライアントに関連付けられたアカウントにアドレス指定された要求電子メールメッセージを受信することと、ここにおいて、前記要求電子メールメッセージが本文を含み、ここにおいて、前記本文が意図を指定する、
前記要求電子メールメッセージのための受信側を識別することと、ここにおいて、前記受信側が前記アカウントに関連付けられる、
前記要求電子メールメッセージの前記本文から前記意図を抽出することと、
チャット通信チャネル上で前記意図を送信することと、ここにおいて、前記意図が前記受信側によって受信されたとき、前記受信側が、前記チャット通信チャネルを使用して応答することができる、
前記チャット通信チャネル上で前記意図に対する応答を受信することと、
応答電子メールメッセージを生成することと、ここにおいて、前記応答電子メールメッセージが、前記応答と、前記要求電子メールメッセージの前記受信側および送信側に関連付けられた会話履歴とを含み、ここにおいて、前記応答と前記会話履歴とが、前記応答電子メールメッセージの本文中に含まれる、
前記応答電子メールメッセージを送信することと
を行わせる、システム。
[C9]
前記意図が、前記要求電子メールメッセージの前記受信側および前記送信側に関連付けられた前記会話履歴とともに前記受信側に送信され、ここにおいて、前記意図が前記会話履歴に組み込まれる、C8に記載のシステム。
[C10]
前記アカウントが、受信側のグループに関連付けられ、
前記命令が、前記システムに、前記意図に基づいて受信側の前記グループから前記受信側を識別することをさらに行わせる、
C8に記載のシステム。
[C11]
前記クライアントに関連付けられた前記アカウントが、スキルにさらに関連付けられ、
前記受信側は、前記受信側が前記スキルに割り当てられたことの結果として、識別される、
C8に記載のシステム。
[C12]
前記命令が、前記システムに、ヘッダおよびフッタを前記応答電子メールメッセージに挿入することをさらに行わせ、ここにおいて、前記ヘッダおよび前記フッタが前記クライアントに関連付けられる、C8に記載のシステム。
[C13]
前記命令が、前記システムに、前記要求電子メールメッセージを受信するためにクライアントサーバをポーリングすることをさらに行わせる、C8に記載のシステム。
[C14]
前記命令は、前記システムに、
他の電子メールメッセージを受信することと、
前記要求電子メールメッセージに対応する会話セッションがアクティブであると決定することと、
前記他の電子メールメッセージに対する応答を送信することと、ここにおいて、前記他の電子メールメッセージに対する前記応答が、前記要求電子メールメッセージに対応する前記会話セッションを利用するようにとの命令を含む、
をさらに行わせる、C8に記載のシステム。
[C15]
実行可能命令をその上に記憶する非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムの1つまたは複数のプロセッサによって実行されたことの結果として、前記コンピュータシステムに、
クライアントに関連付けられたアカウントにアドレス指定された要求電子メールメッセージを受信することと、ここにおいて、前記要求電子メールメッセージが本文を含み、ここにおいて、前記本文が意図を指定する、
前記要求電子メールメッセージのための受信側を識別することと、ここにおいて、前記受信側が前記アカウントに関連付けられる、
前記要求電子メールメッセージの前記本文から前記意図を抽出することと、
チャット通信チャネル上で前記意図を送信することと、ここにおいて、前記意図が前記受信側によって受信されたとき、前記受信側が、前記チャット通信チャネルを使用して応答することができる、
前記チャット通信チャネル上で前記意図に対する応答を受信することと、
応答電子メールメッセージを生成することと、ここにおいて、前記応答電子メールメッセージが、前記応答と、前記要求電子メールメッセージの前記受信側および送信側に関連付けられた会話履歴とを含み、ここにおいて、前記応答と前記会話履歴とが、前記応答電子メールメッセージの本文中に含まれる、
前記応答電子メールメッセージを送信することと
を行わせる、非一時的コンピュータ可読記憶媒体。
[C16]
前記意図が、前記要求電子メールメッセージの前記受信側および前記送信側に関連付けられた前記会話履歴とともに前記受信側に送信され、ここにおいて、前記意図が前記会話履歴に組み込まれる、C15に記載の非一時的コンピュータ可読記憶媒体。
[C17]
前記アカウントが、受信側のグループに関連付けられ、
前記実行可能命令が、前記コンピュータシステムに、前記意図に基づいて受信側の前記グループから前記受信側を識別することをさらに行わせる、
C15に記載の非一時的コンピュータ可読記憶媒体。
[C18]
前記クライアントに関連付けられた前記アカウントが、スキルにさらに関連付けられ、
前記受信側は、前記受信側が前記スキルに割り当てられたことの結果として、識別される、
C15に記載の非一時的コンピュータ可読記憶媒体。
[C19]
前記実行可能命令が、前記コンピュータシステムに、ヘッダおよびフッタを前記応答電子メールメッセージに挿入することをさらに行わせ、ここにおいて、前記ヘッダおよび前記フッタが前記クライアントに関連付けられる、C15に記載の非一時的コンピュータ可読記憶媒体。
[C20]
前記実行可能命令が、前記コンピュータシステムに、前記要求電子メールメッセージを受信するためにクライアントサーバをポーリングすることをさらに行わせる、C15に記載の非一時的コンピュータ可読記憶媒体。