一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

从电子邮件环境到消息收发环境的消息重新路由的制作方法

2022-06-16 08:00:17 来源:中国专利 TAG:

从电子邮件环境到消息收发环境的消息重新路由
1.相关申请的交叉引用
2.本专利申请要求于2019年10月30日提交的美国临时专利申请no.62/927,892的优先权权益,该临时专利申请的公开内容通过引用并入本文中。
技术领域
3.本发明总体上涉及促进通信的路由。更具体地说,提供了动态重新路由消息的技术。例如,实施方式可以将通信从电子邮件环境重定向到消息收发环境,以便通过一个或多个客户端执行服务。


背景技术:

4.客户端经常使用电子邮件与用户就各种主题进行交流。然而,电子邮件的广泛普及导致电子邮件消息的发送和接收过多,每月收到的消息多达1216条。例如,据估计,每天有1245亿封商业电子邮件被发送和接收。然而,在2018年,企业对消费者的电子邮件的打开率仅为20.7%,点击率为4.2%。用户对电子邮件的平均响应时间为2.5天,平均转换率为3.3%,90%的电子邮件都是垃圾邮件。转换是根据某人采取所需动作来衡量的,例如销售、优惠券使用、表格填写等。
5.sms(短消息服务)是一种文本消息收发服务,它使用标准化的通信协议在两个移动电话设备之间实现基于文本的通信。mms(多媒体消息服务)是一种消息收发服务,它使用标准化通信协议在能够发送图像和文本的两个移动电话设备之间实现通信。消息收发服务对用户来说很方便,因为它们实现异步通信,在消息进入时提醒用户,而用户不必像在传统的基于音频的电话呼叫中那样时刻注意。与电子邮件相比,2018年sms的全球平均打开率为95%,用户响应时间为90秒,链接点击率为19%。平均转换量为32%,平均每个月只收到178条文本消息,只有1%的文本消息是垃圾文本消息。其他消息收发渠道(例如apple business chat、whatsapp、web messaging和facebook messenger)也存在类似统计数据。


技术实现要素:

6.术语实施方式和类似术语意图广泛地指代本发明和所附权利要求的所有主题。包含这些术语的表述不应当被理解为限制本文所描述的主题或者限制所附权利要求的含义或范围。本文涵盖的本发明的实施方式由所附权利要求限定,而不由本发明内容限定。本发明内容是本发明的各个方面的高度概括并且介绍了在以下具体实施方式部分进一步描述的一些概念。本发明内容不意图标识所要保护的主题的关键或本质特征,也不意图单独用于确定所要保护的主题的范围。应当通过参考本发明的整个说明书的合适部分、任一或所有附图以及每项权利要求来理解该主题。
7.在本领域中需要从电子邮件环境到消息收发环境的通信的改进且智能的重新路由。网络设备(例如,用户的设备)可用于向客户端设备(例如,企业的设备)生成电子邮件。通信管理系统可以拦截电子邮件并从电子邮件中提取用户的意图或请求。通信管理系统可
以通过聊天通信通道发送意图或请求,使用客户端设备的代理可以经由聊天通信通道通过聊天窗口查看意图或请求。代理可以经由客户端设备通过聊天通信通道向通信管理系统提交对意图或请求的响应。通信管理系统可以向网络设备生成包括响应和网络设备与客户端设备之间的对话历史的电子邮件。
8.本发明的某些实施方式包括一种计算机实现的方法。该方法包括接收发往与客户端相关联的账户的请求电子邮件消息。请求电子邮件消息包括正文,正文指定意图。该方法还包括识别请求电子邮件消息的接收者。接收者与账户相关联。该方法还包括从请求电子邮件消息的正文中提取意图。该方法还包括通过聊天通信通道发送意图。当接收者收到意图时,接收者可以使用聊天通信通道进行响应。该方法还包括通过聊天通信通道接收对意图的响应。该方法还包括生成响应电子邮件消息。响应电子邮件消息包括响应以及与请求电子邮件消息的接收者和发送者相关联的对话历史。此外,响应和对话历史被包括在响应电子邮件消息的正文中。该方法还包括发送响应电子邮件消息。
9.在一些实施方式中,将意图连同与请求电子邮件消息的接收者和发送者相关联的对话历史发送给接收者,其中将意图并入对话历史中。在一些实施方式中,账户与一组接收者相关联,并且该方法还包括基于该意图从该组接收者中识别所述接收者。在一些实施方式中,与客户相关联的账户还与技能相关联,并且由于接收者被分配该技能,该接收者被识别。在一些实施方式中,该方法还包括将页眉和页脚插入到响应电子邮件消息中,其中页眉和页脚与客户端相关联。在一些实施方式中,该方法还包括轮询客户端服务器以接收请求电子邮件消息。在一些实施方式中,该方法还包括接收另一电子邮件消息,确定与请求电子邮件消息相对应的对话会话处于活动状态,以及发送对另一电子邮件消息的响应。对另一电子邮件消息的响应包括使用与请求电子邮件消息相对应的对话会话的指示。
10.本发明的某些实施方式包括一种系统。该系统可以包括一个或多个数据处理器;以及包含指令的非暂时性计算机可读存储介质,该指令当在一个或多个数据处理器上执行时,使得一个或多个数据处理器执行上文和本文所述的方法。
11.本发明的某些实施方式包括一种有形地体现在非暂时性机器可读存储介质中的计算机程序产品,该计算机程序产品包括被配置为使得数据处理装置执行上文和本文描述的方法的指令。
附图说明
12.结合附图描述本发明:
13.图1示出了网络交互系统的实施方式的框图;
14.图2示出了包括连接管理系统的网络交互系统的实施方式的框图;
15.图3示出了连接组件的操作的协议栈映射的表示;
16.图4表示根据一个实施方式的多设备通信交换系统;
17.图5示出了连接管理系统的实施方式的框图;
18.图6示出了在通信会话期间用于动态和自动消息处理的网络环境的框图;
19.图7示出了在电子邮件和消息收发环境之间重新路由通信的消息环境的框图;
20.图8示出了根据至少一个实施方式的用于以对话消息的形式将电子邮件消息从用户路由到与客户端相关联的代理或机器人的过程的说明性示例;
21.图9示出了根据至少一个实施方式的用于将对话消息转换为电子邮件消息以将对话消息传送给用户的过程的说明性示例;
22.图10示出了根据至少一个实施方式的用于配置电子邮件消息设置以使电子邮件消息能够从用户路由到相应代理、代理组或机器人的界面的说明性示例;
23.图11示出了根据至少一个实施方式的用于向特定客户端电子邮件地址分配技能以能够将电子邮件消息从用户转发到相应代理、代理组或机器人的界面的说明性示例;
24.图12示出了根据至少一个实施方式的用于配置电子邮件消息的页眉和页脚以使其包括在客户端电子邮件消息响应中的界面的说明性示例;
25.图13示出了根据至少一个实施方式的用于参与和用户的对话以解决意图或请求的界面的说明性示例;以及
26.图14示出了可以实现各种实施方式的环境的说明性示例。
27.在附图中,相似的组件和/或特征可以具有相同的附图标记。此外,相同类型的各种组件可以通过在附图标记后加上破折号和第二标记来区分,第二标记在相似的组件之间进行区分。如果在说明书中仅使用了第一附图标记,则该描述适用于具有相同的第一附图标记的相似组件中的任一者,而与第二附图标记无关。
具体实施方式
28.随后的描述仅提供(一个或多个)实施方式的优选示例,并且不意图限制本发明的范围、适用性或配置。相反,随后的(一个或多个)实施方式的优选示例的描述将向本领域技术人员提供用于实现实施方式的优选示例的使能描述。应当理解,在不脱离如所附权利要求书所阐述的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
29.图1示出了实现并支持本文中描述的特定实施方式和特征的网络交互系统的实施方式的框图100。特定实施方式涉及在网络设备105(其可以由用户110操作)和与客户端125相关联的客户端设备130之间建立连接通道。在特定实施方式中,网络交互系统可以包括终端设备115(其可以由代理120操作)。
30.在特定实施方式中,用户110可以是尝试经由电话设备132联系客户端125的个人。客户端125可以是提供、操作或运行服务的实体,或者是这种实体雇佣或由该实体分配以执行如本文中所描述的客户端125可用的任务的个人。代理120可以是个人,例如支持代理,其任务是向用户110提供有关服务的支持或信息。在大量代理中,代理的子集可能适合于为特定客户端125提供支持或信息。代理120可以与客户端125有关或无关。每个代理可以与一个或多个客户端125相关联。在一些非限制性示例中,用户110可以是尝试经由手机进行预约的个人,客户端125可以是提供医疗服务的公司,并且代理120可以是由公司雇佣的代表。在各种实施方式中,用户110、客户端125和代理120可以是其他个人或实体。
31.尽管图1仅示出了单个的网络设备105、终端设备115和客户端设备130,但是交互系统可以包括这些类型的设备中的一种设备或多种设备中的每一者的多个或许多(例如,数十个、数百个或数千个)。类似地,虽然图1仅示出了单个用户110、代理120和客户端125,但是交互系统100可以包括这种实体中的一者或多者中的每一者的多个或许多。因此,可能有必要确定要选择哪个终端设备与给定的网络设备进行通信。另外使事情复杂化的是,远程服务器140也可以被配置为接收并响应以选择网络设备通信。
32.连接管理系统150可以促进通信的战略路由。通信可以包括具有内容的消息(例如,基于来自实体的输入(诸如键入或口头输入)定义的消息)。该通信还可以包括:附加数据,例如关于发送设备的数据(例如,ip地址、账户标识符、设备类型和/或操作系统);目的地址;客户端的标识符;网页或网页元素(例如,在生成通信时或以其他方式与通信相关联的正在访问的网页或网页元素)的标识符或在线历史数据;时间(例如一天中的时间和/或日期);和/或目的地址。在通信中可以包括其他信息。在一些情况中,连接管理系统150将整个通信路由至另一设备。在一些情况中,连接管理系统150修改通信或生成新的通信(例如,基于初始通信)。新的或修改后的通信可以包括消息(或其经处理版本)、(例如,关于发送设备、网页或在线历史记录和/或时间的)附加数据的至少一些(或全部)和/或由连接管理系统150识别的其他数据(例如,与特定账户标识符或设备相关联的账户数据)。新的或修改后的通信也可以包括其他信息。
33.战略路由促进的一部分可以包括在网络设备105与一个或多个终端设备115之间建立、更新和使用一个或多个连接通道。例如,在从网络设备105接收到通信后,连接管理系统150可以首先估计通信对应于哪个客户端(如果有的话)。在识别客户端之后,连接管理系统150可以识别与该客户端相关联的用于与网络设备105进行通信的终端设备115。在一些情况中,该识别可以包括评估多个代理(或专家或代表)中的每一者的简介,多个代理中的每个代理(例如,代理120)与终端设备(例如,终端设备115)相关联。该评估可以涉及网络设备消息中的内容。
34.在一些情况中,连接管理系统150可以确定在网络设备105和与客户端(或远程服务器140)相关联的终端设备之间是否建立了任何连接通道,并且如果是,则确定是否要使用这种通道来交换包括所述通信在内的一系列通信。
35.在选择终端设备115来与网络设备105通信时,连接管理系统150可以在网络设备105和终端设备115之间建立连接通道。在一些情况中,连接管理系统150可以将消息发送到所选择的终端设备115。该消息可以请求接受所提议的与网络设备105进行通信的分配或者识别已经生成了这种分配。该消息可以包括关于网络设备105的信息(例如,ip地址、设备类型和/或操作系统)、关于相关联用户110的信息(例如,所说的语言、已经与客户端交互的持续时间、技能水平、情绪和/或主题偏好)、接收到的通信、用于生成通信并将其发送到网络设备105的代码(例如,可点击的超链接)、和/或用于生成通信并将其发送到网络设备105的指令。
36.在一种情况中,可以通过连接管理系统150来路由网络设备105与终端设备115之间的通信。这种配置可以允许连接管理系统150监控通信交换并检测问题(例如,如基于规则所定义的问题),例如任一设备的无响应或延长的延迟。此外,这种配置可以促进通信的选择性存储或完整存储,这可以稍后用于例如评估通信交换的质量和/或支持学习以更新或生成路由规则,从而促进特定的后通信目标。
37.在一些实施方式中,连接管理系统150可以实时监控通信交换,并且基于实时通信执行自动化动作(例如,基于规则的动作)。例如,当连接管理系统150确定通信与特定项目(例如,产品)有关时,连接管理系统150可以自动向终端设备115发送包含关于该项目的附加信息(例如,可用项目的数量、到与该项目有关的支持文档的链接、或关于该项目或类似项目的其他信息)的附加消息。
38.在一种情况中,指定的终端设备115可以与网络设备105通信而无需通过连接管理系统150中继通信。设备105、115中的一者或两者可以(或者可以不)向连接管理系统150报告特定的通信度量或内容,以促进通信监控和/或数据存储。
39.如上所述,连接管理系统150可以将选择的通信路由到远程服务器140。远程服务器140可以被配置为以预定方式提供信息。例如,远程服务器140可以响应于通信而访问定义的一个或多个待发送的文本段落、语音记录和/或文件。远程服务器140可以基于例如对接收到的通信的分析(例如,语义或映射分析)来选择特定的文本段落、记录或文件。
40.可以基于至少部分地由一个或多个客户端设备130定义或由其提供的规则和/或数据来执行在连接管理系统150处执行的路由和/或其他确定或处理。例如,客户端设备130可以发送标识代理的优先级、终端设备类型、和/或主题/技能匹配度的通信。作为另一示例,客户端设备130可以标识一个或多个权重以应用于可能影响路由确定的各种变量(例如,语言兼容性、预测的响应时间、设备类型和能力、和/或终端设备负载平衡)。将理解的是,哪些终端设备和/或代理将与客户端相关联可以是动态的。来自客户端设备130和/或终端设备115的通信可以提供指示以下内容的信息:给定的终端设备和/或代理将作为与客户端相关联的一个终端设备和/或代理被添加或移除。例如,客户端设备130可以发送具有ip地址以及关于具有该地址的终端设备是要添加到列表中还是从该列表移除的指示的通信,该列表标识与客户端相关联的终端设备。
41.每个通信(例如,设备之间的通信、设备与连接管理系统150之间的通信、远程服务器140与连接管理系统150之间的通信、或远程服务器140与设备之间的通信)可以在一个或多个网络170上进行。该一个或多个网络170中可以包括开放式或封闭式网络的任意组合。合适的网络的示例包括互联网、个人局域网、局域网(lan)、广域网(wan)或无线局域网(wlan)。其他网络也可能适用。该一个或多个网络170可以完全并入内联网、外联网或其组合内,或者可以包括内联网、外联网或其组合。在一些情况中,该一个或多个网络170中的网络包括短程通信通道,诸如蓝牙或蓝牙低功耗通道。在一个实施方式中,可以通过诸如安全套接层(ssl)或传输层安全性(tls)之类的安全通信协议来实现两个或更多个系统和/或设备之间的通信。此外,可以基于任何方便的、已知的或待开发的方式对数据和/或交易细节进行加密,这些方式例如但不限于数据加密标准(des)、三重des、rivest-shamir-adleman加密(rsa)、blowfish加密、高级加密标准(aes)、cast-128、cast-256、去相关快速密码(dfc)、微型加密算法(tea)、extended tea(xtea)、校正块tea(xxtea)和/或rc5等。
42.例如,网络设备105、终端设备115和/或客户端设备130可以包括便携式电子设备(例如,智能电话、平板电脑、便携式计算机或智能可穿戴设备)或非便携式电子设备(例如,一个或多个台式计算机、智能家电、服务器和/或处理器)。连接管理系统150可以与网络、终端设备和客户端设备分开设置,或者可以是一个或多个这样的设备的一部分(例如,通过在设备上安装应用程序)。远程服务器140可以与每个设备和连接管理系统150分开设置,和/或可以是另一设备或系统的一部分。尽管图1中的每个设备、服务器和系统被示为单个设备,但是应当理解,可以替代地使用多个设备。例如,可以使用一组网络设备来传输来自单个用户的各种通信,或者远程服务器140可以包括服务器堆栈。
43.软件代理或应用程序可以被安装在所描绘的设备、系统或服务器上和/或在所描绘的设备、系统或服务器上可执行。在一种情况中,软件代理或应用程序被配置为使得描绘
的各个元素可以互补的方式起作用。例如,可以将设备上的软件代理配置为收集关于设备使用情况的数据并将其发送到单独的连接管理系统,并且可以将单独的连接管理系统上的软件应用程序配置为接收和处理该数据。
44.图2示出了网络交互系统200的另一实施方式的框图200。总体上,图2示出了被配置和布置为使网络设备205能够与一个或多个终端设备215通信的各种组件。所描绘的实例包括在三个局域网235中包括的九个终端设备215。
45.在一些情况中,来自网络设备205的通信包括目的数据(例如,目的ip地址),其至少部分或全部指示哪个终端设备将接收该通信。网络交互系统200可以包括可以处理目的数据并促进适当的路由的一个或多个网络间连接组件240和/或一个或多个网络内连接组件255。
46.每个网络间连接组件245可以连接到多个网络235,并且可以具有安装的多个网卡(例如,每个卡连接到不同的网络)。例如,网络间连接组件245可以连接到广域网270(例如,互联网)和一个或多个局域网235。在所描绘的实例中,为了将通信从网络设备205发送到任何终端设备,在所描绘的系统中,通信必须由多个网络间连接组件245来处理。
47.当网络间连接组件245接收到通信(或与该通信相对应的一组数据包)时,网络间连接组件245可以确定路由的至少一部分,以将该通信传递给与目的地相关联的网络。可以使用例如路由表(例如,存储在路由器处)来确定该路由,该路由表可以包括基于传入消息(例如,来自另一路由器或另一设备)生成的、或学习的一个或多个预先定义的路由。
48.网络间连接组件245的示例包括路由器260和网关265。网络间连接组件245(例如,网关265)可以被配置为在网络系统之间或协议之间转换。例如,网关265可以促进传输控制协议/互联网协议(tcp/ip)设备与互联网分组交换/序列分组交换(ipx/spx)设备之间的通信。
49.在局域网235处接收到通信后,可能仍需要执行进一步的路由。可以通过诸如交换机280或集线器285之类的网络内连接组件255来执行这样的网络内路由。每个网络内连接组件255可以(例如,无线地或有线地,诸如通过以太网电缆)被连接至多个终端设备215。集线器285可以被配置为将所有接收到的通信重复到它所连接到的每个设备。每个终端设备然后可以评估每个通信以确定该终端设备是否是目的设备或者该通信是否将被忽略。交换机280可以被配置为选择性地将通信仅定向到目的终端设备。
50.在一些情况中,局域网235可以被划分成多个段,每个段可以与独立的防火墙、安全规则和网络协议相关联。可以在一个、多个或所有段中的每者中提供网络内连接组件255,以促进段内路由。桥接器280可以被配置为跨段275路由通信。
51.为了跨网络或在网络内适当地路由通信,各种组件分析通信中的目的数据。例如,这样的数据可以指示通信将被路由到哪个网络、通信将被路由到网络内的哪个设备、或者终端设备将要处理(和忽略)哪些通信。然而,在一些情况中,不能立即清楚哪个终端设备(或甚至哪个网络)要参与来自网络设备的通信。
52.为了说明,可以配置一组终端设备以便提供类似类型的响应通信。因此,可以预期,可以以类似的方式来响应来自网络设备的通信中的查询,而不管该通信被路由到哪个网络设备。虽然该假设在高水平上可能是正确的,但是与终端设备有关的各种细节可能导致特定的路由与其他路由相比是有利的。例如,所述集合中的终端设备关于(例如)以下可
能彼此不同:支持哪些通信通道、与网络设备的地理和/或网络接近度、和/或相关联代理的特征(例如,知识库、经验、所说的语言、可用性、一般性格或情绪等)。因此,选择路由可以促进更快的响应,该更快的响应更准确地和/或完整地响应于网络设备通信。复杂的是,将网络设备映射至终端设备的静态路由可能无法解释通信主题、通道类型、代理可用性等的变化。
53.在图2中,连接管理系统250可以被配置为用作中继和/或目的地址。因此,例如,一组网络设备205可以发送多个通信,每个通信将连接管理系统250标识为目的地。连接管理系统250可以接收各个通信,并且可以同时监控一组终端设备(例如,以便生成针对每个终端设备的度量)。基于监控和规则,连接管理系统250可以识别其可以将各个通信中继到的终端设备215。根据该实施方式,终端设备通信可以类似地定向到一致的目的地(例如,连接管理系统150的目的地),以用于进一步中继,或者终端设备可以开始直接与相应的网络设备通信。这些实施方式可以促进有效路由和全面的通信监控。
54.应当理解,能够预期图2的许多变型。例如,连接管理系统250可以与连接组件(例如,网络间连接组件245或网络内连接组件255)相关联,使得对应于连接管理系统250(或其一部分)的应用程序安装在该组件上。例如,可以独立地执行应用程序或通过与类似或互补的一个或多个应用程序(例如,在一个或多个其他组件、网络设备或远程服务器上执行的应用程序)通信来执行应用程序。
55.图3示出了连接组件的操作的协议栈映射的表示300。更具体地,图3标识了在开放系统交互(open systems interaction,osi)模型中的对应于各种连接组件的操作层。
56.osi模型可以包括多个逻辑层302-314。这些层布置成有序堆栈,使得层302-312中的每个层服务较高层次,而层304-314中的每个层由较低层服务。osi模型包括物理层302。物理层302可以定义参数物理通信(例如,电、光或电磁通信)。物理层302还定义连接管理协议,例如建立和关闭连接的协议。物理层302还可以定义流控制协议和传输模式。
57.链路层304可以管理节点到节点(node-to-node)的通信。链路层304可以检测并纠正错误(例如,物理层302中的传输错误)以及管理访问许可。链路层404可以包括媒体访问控制(media access control,mac)层和逻辑链路控制(logical link control,llc)层。
58.网络层306可以协调跨同一网络中的节点(例如,作为数据报)的传输数据(例如,具有可变长度的传输数据)。网络层306可以将逻辑网络地址转换为物理机器地址。
59.传输层308可以管理发送和接收质量。传输层308可以提供用于传输数据的协议,例如传输控制协议(tcp)。传输层308可以执行用于传输的数据包的分段/重组,并且可以检测并解释在层302-306中发生的传输错误。会话层310可以发起、维持和终止本地应用程序和远程应用程序之间的连接。会话可以用作远程程序交互的一部分。表示层312可以基于已知由应用程序或网络层接受的数据类型来加密、解密和格式化数据。
60.应用层314可以与控制或管理通信的软件应用程序进行交互。通过这样的应用程序,应用层314可以(例如)识别目的地、本地资源状态或可用性和/或通信内容或格式化。各个层302-314可以执行可用并适用的其他功能。
61.网络内连接组件322被示出在物理层302中操作,网络内连接组件324被示出在链路层304中操作。更具体地,集线器可以在物理层中操作,使得可以关于通信的接收和发送来控制操作。由于集线器缺乏寻址通信或过滤数据的技能,因此集线器几乎没有能力在更
高层次操作。同时,交换机可以在链路层404中操作,因为交换机能够基于地址(例如,mac地址)过滤通信帧。
62.同时,网络间连接组件326、328被示出在更高层次(例如,层306-314)上操作。例如,路由器可以基于地址(例如,ip地址)过滤通信数据包。路由器可以基于地址将数据包转发至特定端口,以便将数据包定向至适当的网络。网关可以在网络层及其以上层操作,执行类似的过滤和定向以及数据的进一步转换(例如,跨协议或架构)。
63.在各种实施方式中,连接管理系统350可以与各个层中的一个、多个、全部或任何层进行交互和/或在各个层中的一个、多个、全部或任何层上操作。例如,连接管理系统350可以与集线器交互,以便动态地调整集线器与哪些终端设备或客户端设备通信。作为另一示例,连接管理系统350可以与桥接器、交换机、路由器或网关进行通信,以便影响该组件选择哪个终端设备作为目的地址(例如,mac、逻辑或物理地址)。作为另外的示例,连接管理系统350可以监控、控制或定向传输层308上的数据包的分段、会话层310上的会话持续时间、和/或表示层312上的加密和/或压缩。在一些实施方式中,连接管理系统350可以通过与在特定层上操作的设备(例如,在链路层304上操作的交换机)交换通信(例如,发送命令至该设备)、通过以特定的方式路由或修改现有通信(例如,在网络设备和客户端设备之间的通信)、和/或通过基于现有通信生成包含特定信息(例如,新目的地址)的新通信来与各个层进行交互。因此,连接管理系统350可以通过与各种设备的交互和/或通过影响在各种协议栈层处的操作来影响通信路由和通道建立(或维持或终止)。
64.图4表示根据一实施方式的多设备通信交换系统400。该系统包括网络设备405,该网络设备被配置为在各种类型的通信通道上与各种类型的终端设备和客户端设备通信。
65.在所描绘的实例中,网络设备405可以通过蜂窝网络(例如,通过基站410)传输电话消息或文本消息通信。该通信可以被路由至客户端位置423或终端位置443。连接管理系统430接收该通信并标识哪个客户端设备或终端设备将响应于该通信。这种确定可以取决于识别该通信所属的客户端(例如,基于指示客户端的内容分析或用户输入)并确定与该客户端相关联的一个或多个终端设备中的每个终端设备的一个或多个度量。例如,在图4中,终端设备440a、440b和440c的每个集群可以对应于不同的客户端。终端设备可以在地理上共同定位或是分散的。可以基于存储的或学习的数据和/或(例如,基于可用性的)实时监控来确定所述度量。
66.连接管理系统430可以通过一个或多个路由器435或其他网络间连接组件或网络内连接组件与各种终端设备和客户端设备以及其他组件进行通信。连接管理系统430可以在一个或多个数据存储器处收集、分析和/或存储来自(或关于)通信、终端设备操作、客户端规则、和/或与用户相关联的动作(例如,在线活动)的数据。这种数据可能影响通信路由。
67.客户端设备415能够接收并处理电子邮件通信和文本消息。为了处理从网络设备405接收的通信,客户端设备415可以联接到服务器420。服务器420可以接收并响应于来自客户端设备415的对关于在客户端位置423处提供的商品或服务的信息的询问,该信息例如产品信息、约定时间表、操作小时、位置信息、联系信息等。
68.图5示出了连接管理系统的实施方式的框图500。消息接收器接口505可以接收消息。在一些情况中,例如,可以接收消息作为由源设备(例如,与连接管理系统分开设置或在同一外壳内)发送的通信的一部分,所述源设备例如网络设备。在一些情况中,该通信可以
是一系列通信的一部分或通信交换的一部分,该一系列通信或通信交换可以包括正在两个设备(例如,网络设备和客户端设备)之间路由的一系列消息或消息交换。该消息或通信交换可以是设备之间的交互的一部分和/或可以定义设备之间的交互。通信通道或操作通道可以包括用于促进设备之间的路由和通信交换的一个或多个协议(例如,路由协议、任务分配协议和/或寻址协议)。
69.在一些情况中,消息可以包括基于在本地或远程用户界面处接收的输入而生成的消息。例如,消息可以包括基于按钮或按键或记录的语音信号生成的消息。在一种情况中,消息包括自动生成的消息,例如在检测到网络设备已经提供特定输入命令(例如,键序列)时生成的消息。该消息可以包括指令或请求,例如用于发起通信交换的指令或请求。
70.在一些情况中,该消息可以包括客户端的标识符或与客户端的标识符相关联。例如,消息可以明确地标识客户端(或与客户端相关联的设备);消息可以包括与客户端相关联的网页或应用程序页面,或和与客户端相关联的网页或应用程序页面相关联;消息可以包括与客户端相关联的目的地址,或和与客户端相关联的目的地址相关联;或者消息可以包括与客户端相关联的项目(例如,产品)或服务的标识,或和与上述项目(例如,产品)或服务的标识相关联。为了说明,网络设备可以呈现特定客户端的应用程序页面,该应用程序页面可以提供将通信发送至代理的选项。在接收到与消息相对应的用户输入时,可以生成包含该消息和特定客户端的标识符(例如,至电话号码的文本消息)的通信。
71.处理引擎510可以处理所接收的通信和/或消息。处理可以包括例如提取特定的一个或多个数据元素(例如,消息、客户端标识符、网络设备标识符、账户标识符等)。处理可以包括转换格式或通信类型(例如,以与特定设备类型、操作系统、通信通道类型、协议和/或网络兼容)。
72.消息评估引擎515可以评估(例如,提取或接收的)消息。评估可以包括识别例如消息的一个或多个类别或标签。类别或标签类型的示例可以包括(例如)主题(topic)、情绪、复杂性和紧急性。对消息进行分类与标记消息之间的差异可以在于类别可以是受限的(例如,根据预定义的类别选项的集合),而标签可以是开放的。主题可以包括例如技术问题、使用问题、或请求。例如,可以基于对消息的语义分析(例如,通过识别关键字、句子结构、重复的词、标点符号和/或非冠词)、用户输入(例如,已经选择了一个或多个类别)、和/或与消息相关联的统计数据(例如,键入速度和/或响应延迟)来确定类别或标签。
73.在一些情况中,消息评估引擎515可以确定用于消息的度量。度量可以包括例如字符数、单词数、大写字母数、全部大写的单词数、或特定字符或标点符号(例如,感叹号、问号和/或句号)的实例数。度量可以包括比率,诸如以感叹号(或问号)结尾的句子的分数、全部大写的单词的分数等。
74.消息评估引擎515可以将消息、消息度量和/或消息统计数据存储在消息数据存储器520中。每个消息还可以与其他数据(例如,元数据)相关联地存储,所述其他数据例如为标识相应的源设备、目的设备、网络设备、终端设备、客户端、一个或多个类别、一个或多个阶段和/或与消息相关联的统计数据的数据。连接管理系统的各种组件(例如,消息评估引擎515和/或交互管理引擎525)可以查询消息数据存储器520以检索查询响应消息、消息度量和/或消息统计数据。
75.交互管理引擎525可以确定将通信路由至哪个设备以及接收设备和发送设备将如
何通信。这些确定中的每一者可以取决于例如特定的网络设备(或与特定用户相关联的任何网络设备)是否先前已与客户端设备或一组终端设备中的终端设备(例如,与连接管理系统相关联的任何终端设备、或与一个或多个特定客户端相关联的任何终端设备)进行通信。
76.在一些情况中,当网络设备(或与同一用户或简介相关联的其他网络设备)先前已经与给定终端设备进行通信时,通信路由通常可偏向于该同一终端设备。可影响路由的其他因素可以包括:例如,终端设备(或相应的代理)是否可用和/或终端设备的预测的响应延迟。这些因素可以绝对地或相对于与其他终端设备相对应的类似度量来考虑。重新路由规则(例如,特定于客户端的或一般的规则)可以指示如何评估和加权这些因素以确定是否放弃代理一致性。
77.当网络设备(或与同一用户或账户相关联的其他网络设备)先前未与给定终端设备进行通信时,可以基于诸如以下的因素执行终端设备的选择:例如,各种代理的知识库与通信主题对应的程度、各种代理在给定时间和/或通道类型上的可用性、终端设备(例如,与客户端相关联的终端设备)的类型和/或能力。在一种情况中,规则可以标识如何确定诸如这些因素的一个或多个因素的子参数以及分配给每个参数的权重。通过组合(例如,求和)加权子参数,可以确定每个代理的参数。然后可以通过比较终端设备的参数来进行终端设备的选择。
78.关于确定设备将如何通信,交互管理引擎525可以(例如)确定客户端设备或终端设备是否通过(例如)sms消息、电子邮件通信、语音呼叫、视频通信等来响应通信。可以基于例如以下项来选择通信类型:通信类型优先级列表(例如,至少部分地由客户端或用户来定义);先前从网络设备接收的通信的类型(例如,以便促进一致性)、接收的消息的复杂性、网络设备的能力、和/或一个或多个终端设备的可用性。显然,一些通信类型将导致实时通信(例如,期望快速消息响应的情况),而其他通信类型可能导致异步通信(例如,消息之间的延迟(例如,几分钟或几小时)是可接受的情况)。
79.此外,交互管理引擎525可以确定是否应该建立、使用或终止两个设备之间的连续通道。可以构造连续通道,以促进将未来的通信从网络设备路由到指定的终端设备或客户端设备。这种偏向甚至可以跨消息系列持续存在。在一些情况下,连续通道的表示(例如,识别代理的表示)可以被包括在要呈现在网络设备上的呈现中。以这种方式,用户可以理解通信将被一致地路由以提高效率。
80.在一种情况下,可以使用本文描述的一个或多个因素和规则(例如,包括所述一个或多个因素中的每一个因素的权重)来生成参数以确定对应于给定网络设备和终端设备的连接参数。该参数可以与整体匹配度或特定于给定通信或通信系列的匹配度有关。因此,例如,参数可以反映给定终端设备被预测适合响应网络设备通信的程度。在一些情况下,参数分析可用于识别将给定通信路由到的每一个终端设备以及是否建立、使用或终止连接通道。当参数分析用于同时解决路由决策和通道决策时,与每个决策相关的参数可以以相同、相似或不同的方式确定。
81.因此,例如,应当理解,可以根据参数是预测长期匹配的强度还是响应特定消息查询来考虑不同的因素。例如,在前一种情况下,整体时间表和时间区间的考虑可能很重要,而在后一种情况下,即时可用性可能更重要。可以为单个网络设备/终端设备的组合确定一个参数,或者可以确定多个参数,每个参数表征给定网络设备和不同终端设备之间的匹配
度。
82.为了说明,可以评估与客户端相关联的一组三个终端设备的潜在通信路由。可以为每个与特定通信的匹配度相关的终端设备生成参数。前两个终端设备中的每一个可能先前已经与已经发送该通信的网络设备进行了通信。来自网络设备的输入可能已经指示与和第一设备的(一个或多个)通信的交互相关联的正反馈。因此,第一、第二和第三设备的(如根据规则计算的)过去交互子参数可以分别为10、5和0。(负反馈输入可能导致负子参数。)可以确定只有第三终端设备可用。可以预测,第二终端设备将在15分钟内可以响应,而第一终端设备要到第二天才能响应。因此,第一设备、第二设备和第三设备的快速响应子参数可以是1、3和10。最后,可以估计,(与终端设备相关联的)代理对通信中的主题的了解程度。可以确定与第三终端设备相关联的代理比与其他两个设备相关联的代理更了解,从而产生子参数3、4和9。在该示例中,该规则不包括加权或归一化参数(尽管在其他情况下,规则可以包括这些参数),导致参数为14、11和19。因此,该规则可以指示消息将被路由到具有最高参数的设备,即第三终端设备。如果路由到特定终端设备不成功,则可以将消息路由到具有次高参数的设备,依此类推。
83.可以将参数与一个或多个绝对或相对阈值进行比较。例如,可以将一组终端设备的参数相互比较来识别高参数以选择通信可以路由到的终端设备。作为另一示例,可以将参数(例如,高参数)与一个或多个绝对阈值进行比较以确定是否与终端设备建立连续通道。建立连续通道的总阈值可以(但不必需)高于给定消息系列中一致地路由通信的阈值。总阈值和用于确定是否一致地路由通信的阈值之间的差异可能是因为考虑到通道的扩展效用,强匹配在连续通道上下文中很重要。在一些实施方式中,用于使用连续通道的总阈值可以(但不必需)低于用于建立连续通道和/或用于在给定消息系列中一致地路由通信的阈值。
84.交互管理引擎525可以在各种上下文中与账户引擎530交互。例如,账户引擎530可以在账户数据存储器535中查找网络设备或终端设备的标识符,以识别与该设备相对应的账户。此外,账户引擎530可以维持关于先前通信交换的数据(例如,时间、涉及的(一个或多个)其他设备、通道类型、问题解决阶段、(一个或多个)主题和/或相关联的客户端标识符)、连接通道(例如,对于一个或多个客户端中的每个客户端,指示:是否有任何通道存在、与每个通道相关联的终端设备、建立时间、使用频率、上次使用的日期、任何通道约束和/或支持的通信类型)、用户或代理偏好或约束(例如,关于终端设备选择、响应延迟、终端设备一致性、代理专业知识、和/或通信类型偏好或约束)、和/或用户或代理特征(例如,年龄、所说的或优选的(一种或多种)语言、地理位置、兴趣等)。
85.此外,交互管理引擎525可以向账户引擎530提醒各种连接通道(connection-channel)动作,使得可以更新账户数据存储器535以反映当前通道数据。例如,在建立通道时,交互管理引擎525可以通知账户引擎530该建立,并且标识网络设备、终端设备、账户和客户端中的一者或多者。账户引擎530可以(在一些情况中)随后通知用户该通道的存在,使得该用户可以意识到代理一致性是可用的。
86.交互管理引擎525还可以与客户端映射引擎540交互,客户端映射引擎540可以将通信映射至一个或多个客户端(和/或相关联的品牌(brand))。在一些情况中,从网络设备本身接收的通信包括对应于客户端的标识符(例如,客户端、网页或应用程序页面的标识
符)。该标识符可以作为(例如,客户端映射引擎540可以检测的)消息的一部分而被包含或作为包含消息的通信中的其他数据而被包含。然后,客户端映射引擎540可以在客户端数据存储器545中查找该标识符,以检索关于客户端和/或客户端的标识符的附加数据。
87.在一些情况中,消息可以不特别对应于任何客户端。例如,消息可以包括一般查询。客户端映射引擎540可以例如对消息执行语义分析、识别一个或多个关键字并且标识与(一个或多个)关键字相关联的一个或多个客户端。在一些情况中,标识出单个客户端。在一些情况中,标识出多个客户端。然后可以通过网络设备呈现每个客户端的标识,使得用户可以选择要与之(例如,通过相关联的终端设备)通信的客户端。
88.客户端数据存储器545可以包括与客户端相关联的一个或多个终端设备(和/或代理)的标识。终端路由引擎550可以检索或收集与一个、多个或所有的这种终端设备(和/或代理)中的每一者有关的数据,以便影响路由确定。例如,终端路由引擎550可以维持终端数据存储器555,终端数据存储器555可以存储诸如终端设备的设备类型、操作系统、通信类型(communication-type)能力、安装的应用程序附件、地理位置和/或标识符(例如,ip地址)的信息。某些信息可以动态地更新。例如,基于(例如)来自终端设备的通信(例如,标识该设备是否处于睡眠状态、是否关闭/开启、不活跃/活跃,或标识是否在一段时间内已接收到输入)、通信路由(例如,指示终端设备是否参与通信交换的一部分或被分配为通信交换的一部分)、或者来自网络设备或终端设备的指示通信交换已经结束或开始的通信,可以动态地更新指示终端设备是否可用的信息。
89.应当理解,在各种上下文中,参与一个或多个通信交换不一定表示终端设备不可用于参与另一通信交换。诸如通信类型(例如,消息)、客户端标识的或用户标识的目标响应时间、和/或(例如,一般的或关于用户的)系统负载的各种因素可能影响终端设备可参与多少交换。
90.当交互管理引擎525已经识别了参与通信交换或连接通道的终端设备或客户端设备时,交互管理引擎525可以通知终端路由引擎550,终端路由引擎550可以从终端数据存储器555检索关于该终端设备的任何相关数据,诸如目的地址(例如ip地址)、设备类型、协议等。然后,处理引擎510可以(在一些情况中)修改该包含消息的通信或者生成新的通信(包含消息)以便具有特定的格式、遵守特定的协议等。在一些情况中,新的或修改后的消息可以包括附加数据,例如对应于网络设备的账户数据、消息记录和/或客户端数据。
91.然后,消息发送器接口560可以将该通信发送至终端设备或客户端设备。该发送可以包括例如到容纳在单独外壳内的设备的有线或无线发送。终端设备可以包括与连接管理系统在相同或不同网络(例如,局域网)中的终端设备。因此,将通信发送至终端设备可以包括将通信发送至网络间连接组件或网络内连接组件。
92.图6示出了用于在通信会话期间重新路由通信的网络环境600的框图。如图6所示,用户601可以使用网络设备605向特定客户端发送电子邮件消息645以获得帮助。网络设备605可以是能够发送和接收电子邮件和文本消息形式的通信的任何合适的设备,例如移动设备。在一些实施方式中,网络设备605还可以能够进行电话呼叫。电子邮件消息645可以被发往与客户端相关联的特定电子邮件地址。例如,如果用户601希望与客户端的技术人员互动来解决技术问题,则用户601可以通过网络设备605生成发往与客户端的技术支持小组相关联的电子邮件地址的电子邮件消息645。作为另一示例,如果用户601希望与账单专家互
动来解决与用户的账单相关联的问题,则用户601可以通过网络设备605生成发往与客户端的账单小组相关联的电子邮件地址的电子邮件消息645。因此,用户601使用的接收者电子邮件地址可以指示将接收电子邮件消息645并与用户601交互以解决其中指定的问题的客户端的特定小组。
93.网络设备605可以通过简单邮件传输协议(smtp)将电子邮件消息645发送到传出邮件服务器(未示出)。传出邮件服务器可以与域名系统(dns)服务器交互,以识别与接收者电子邮件地址中指定的域名相关联并对应于客户端电子邮件服务器610的互联网协议(ip)地址或其他网络地址。客户端电子邮件服务器610可以是任何合适的服务器的形式,该服务器能够充当用于传输和传送电子邮件消息的电子邮件交换器。
94.在一个实施方式中,连接管理系统615通过消息轮询子系统620轮询客户端电子邮件服务器610以获得客户端电子邮件服务器610接收到的任何新的电子邮件消息,包括来自网络设备605的电子邮件消息645。消息轮询子系统620可以在连接管理系统615的计算系统或其他系统(例如,服务器、虚拟机实例等)上实现。替选地,消息轮询子系统620可以实现为在连接管理系统615的计算系统上执行的应用程序或其他进程。消息轮询子系统620的配置可以由客户端通过连接管理系统615来执行,从而客户可以配置其账户以实现其代理和希望与客户端交互的用户之间的电子邮件通信。例如,通过连接管理系统615,客户端可以指示它希望将其客户端电子邮件服务器610连接到其连接管理系统账户,以允许在用户和客户端的代理之间进行电子邮件通信。
95.在一个实施方式中,连接管理系统615使客户端能够定义与客户端相关联的哪个实体或实体组将接收发往客户端的电子邮件消息。例如,通过连接管理系统615,客户端可以将特定电子邮件地址与特定代理或代理组相关联,这些代理或代理组可以熟练处理用户可能发送给客户端的特定问题。例如,客户端可以将电子邮件地址“techsupport@example.com”与代表客户端熟练处理技术支持问题的代理或代理组相关联。作为另一个示例,客户端可以将电子邮件地址“billing@example.com”与代表客户端熟练处理账单问题的代理或代理组相关联。
96.在一个实施方式中,连接管理系统615使客户端能够将特定电子邮件地址与机器人或其他可以自动生成响应和/或使用机器学习算法和/或人工智能的自动化进程相关联。例如,机器人或其他自动化进程可以评估来自用户601的消息以提取用户601表达的意图,并且该意图可用于确定对用户意图的适当响应和/或解决方案。例如,在一个实施方式中,机器人可以使用机器学习模型来处理用户的消息,以便从消息中识别和提取意图。机器学习模型可用于执行消息的语义分析(例如,通过识别关键字、句子结构、重复词、标点符号和/或非冠词)来识别消息中表达的意图。机器人使用的机器学习模型可以使用监督学习技术进行动态训练。例如,可以选择输入消息的数据集和输入消息中包含的已知意图来训练机器学习模型。在一些实现方式中,用于训练机器学习模型的已知意图可以包括这些意图的特征。可以评估机器学习模型以基于提供给机器学习模型的输入样本消息来确定机器学习模型是否正在从每个消息中提取预期意图。基于该评估,可以修改机器学习模型以增加机器学习模型生成期望结果的可能性。机器学习模型可以进一步通过征求用户(包括用户601)关于从提交的消息获得的提取意图的反馈来动态训练。例如,在提交提取的意图以供解决之前,可以将提取的意图呈现给用户601以确定提取的意图是否对应于用户601提交的
消息。因此,可以利用来自用户601的响应,根据机器学习模型从消息中识别意图的准确性来训练机器学习模型。
97.在一个实施方式中,机器人使用自然语言处理(nlp)或其他人工智能来向用户601询问可用于补充意图并允许定制识别用于该意图的适当解决方案的附加信息。例如,机器人可以询问用户601以识别用户601的位置、用于解决意图的时间范围等。用户601向机器人提供的响应可用于进一步缩小机器人在响应用户601和提供对用户意图的解决方案时可能执行的动作的集合。
98.为了设置用于路由到特定代理、代理组和/或机器人的特定电子邮件地址,客户端可以向连接管理系统615提供电子邮件地址、相应密码或与电子邮件地址相关联的其他凭证信息、和电子邮件设置。例如,客户端可以提供客户端电子邮件服务器610的互联网消息访问协议(imap)地址、客户端电子邮件服务器610的smtp地址等。客户端通过连接管理系统615可以测试连接管理系统615和客户端电子邮件服务器610之间的连接,以确保可以从客户端电子邮件服务器610轮询电子邮件消息并且电子邮件消息可以通过客户端电子邮件服务器610从连接管理系统615发送给用户。
99.在一个实施方式中,如果消息轮询子系统620从客户端电子邮件服务器610获得电子邮件消息645,则消息轮询子系统620可以将电子邮件消息645发送到连接管理系统615的消息转换子系统625。消息转换子系统625可以在连接管理系统615的计算系统或其他系统(例如,服务器、虚拟机实例等)上实现。替选地,消息转换子系统625可以被实现为在连接管理系统615的计算系统上执行的应用程序或其他进程。在一个实施方式中,消息转换子系统625可以从电子邮件消息645的正文中提取来自用户601的消息。此外,消息转换子系统625可以从电子邮件消息645的主题行中提取文本,因为主题行可以包括在识别用户意图时可能与代理或机器人相关的附加信息。
100.在一个实施方式中,消息转换子系统625解析电子邮件消息645中指定的电子邮件地址以识别哪个代理、代理组或机器人将接收该消息。如上所述,客户端可以将特定电子邮件地址与代理、代理组或机器人相关联,该代理、代理组或机器人可以与连接管理系统615交互以与客户端的客户和其他用户互动。在一些情况下,代理或代理组可以使用由连接管理系统615提供的界面通过连接管理系统615建立的通信会话与用户交互。这种交互可以通过界面以对话的形式呈现,由此在用户601和代理之间交换的消息可以以聊天窗口内的聊天的形式呈现给代理。
101.在一个实施方式中,消息转换子系统625访问对话数据存储器630以确定接收到的电子邮件消息645是否对应于用户601与特定代理或机器人之间的现有对话。例如,消息转换子系统625可以查询对话数据存储器630以识别与用户的电子邮件地址或其他识别信息(例如,姓名、位置等)、和接收者电子邮件地址或与接收者电子邮件地址相对应的特定技能的组合相对应的任何现有条目(例如,与接收者电子邮件地址相关联的代理、代理组或机器人的客户端指定等)。如果消息转换子系统625从对话数据存储器630中识别出用户601和对应于接收者电子邮件地址的代理或机器人之间的现有对话,则消息转换子系统625可以确定接收到的电子邮件消息645是否对应于现有对话。例如,消息转换子系统625可以确定接收到的电子邮件消息645是否包括代理/机器人与用户601之间针对接收到的电子邮件消息645中指定的特定意图的任何先前通信。如本文更详细地描述的,用户601和特定代理/机器
人之间的电子邮件消息可以包括用户601和特定代理/机器人之间的完整对话历史。因此,如果消息转换子系统625确定接收到的电子邮件消息645不包括该对话历史并且用户601具有与接收者电子邮件地址相关联的代理/机器人的现有对话,则该消息转换子系统625可以确定用户601正试图发起与代理/机器人的附加对话。
102.如果消息转换子系统625确定用户601正试图发起与和指定的接收者电子邮件地址相关联的代理/机器人的附加对话,则消息转换子系统625可以响应于电子邮件消息645生成可发送给用户601的自动响应。自动响应可以由客户端定义,由此客户端可以提供定制的响应,该定制的响应向用户601指示它根据先前请求或意图具有打开的与客户端的现有对话。此外,客户端可以通过自动响应来指示用户601响应与现有对话相对应的现有电子邮件线程,以继续与客户端的现有对话。消息转换子系统625可以响应于电子邮件消息645生成电子邮件消息并将该自动响应并入电子邮件消息中。消息转换子系统625可以将该电子邮件消息发送到连接管理系统615的消息传送子系统635,该消息传送子系统635可以将该电子邮件消息发送到客户端电子邮件服务器610以通过其网络设备605传送给用户601。
103.如果消息转换子系统625确定电子邮件消息645对应于用户601与代理/机器人之间的现有对话,则消息转换子系统625可以从对话数据存储器630中获取现有对话并将从电子邮件消息645中提取的消息并入现有对话中。消息转换子系统625可以将更新的对话发送到与代理/机器人相关联的客户端设备640以供处理。在一个实施方式中,可以经由聊天窗口将对话呈现给代理,代理可以通过聊天窗口评估完整的对话历史和在完整对话历史的上下文中来自用户601的新消息。因此,不是以电子邮件格式呈现来自电子邮件消息645的用户消息,消息转换子系统625可以以聊天提要的形式呈现用户601和代理之间的对话,以便反映实际对话。
104.在一个实施方式中,如果消息转换子系统625确定电子邮件消息645对应于新的意图或请求,则消息转换子系统625将电子邮件消息645的正文和主题行转换成对话消息并确定对话消息的适当接收者。例如,消息转换子系统625可以评估在电子邮件消息645中指定的接收者电子邮件地址,并基于接收者电子邮件地址识别将接收对话消息的代理、代理组或机器人。例如,如果接收者电子邮件地址对应于特定代理,则消息转换子系统625可以向代理的客户端设备640发送通知以指示已经接收到新的对话消息。代理可以经由其客户端设备640,通过连接管理系统615提供的用户界面访问连接管理系统615,以通过聊天窗口访问对话消息。连接管理系统615可以向代理指示对话消息是通过电子邮件消息645接收的。作为另一示例,如果接收者电子邮件地址对应于特定的代理组,则消息转换子系统625可以将对话消息添加到与该代理组相关联的代理队列。这可以允许代理组中的代理从队列中检索对话消息并通过聊天窗口访问对话消息。
105.如上所述,代理可以通过聊天窗口或由连接管理系统615提供的其他界面来查看对话消息,就好像代理通过聊天对话与用户601进行了互动一样。通过聊天窗口,代理可以查看对话历史(如果有的话)并向用户601提供响应。响应可以类似于聊天响应,由此代理可以与用户601交互,就好像参与了与用户601典型的聊天对话一样。如果代理提交对对话消息的响应,则消息转换子系统625可以生成新的电子邮件消息650,该新的电子邮件消息650可以并入代理的响应以传送给用户601。在一个实施方式中,消息转换子系统625从对话数据存储器630获得代理/机器人与用户601之间的完整对话历史以包含在新的电子邮件消息
650中。该对话历史可用于为提交的响应提供上下文,以及为消息转换子系统625提供用户601和代理/机器人之间的现有对话的跟踪机制,如上所述。
106.消息转换子系统625可以将来自代理/机器人的响应转换成电子邮件消息格式以包含在新的电子邮件消息650中。此外,消息转换子系统625可以将用户601和代理/机器人之间的任何现有对话历史记录并入新的电子邮件消息650中。因此新的电子邮件消息650的正文可以向用户601提供完整的对话历史,并为来自代理/机器人的新消息提供上下文。新的电子邮件消息650可以发往用户的电子邮件地址。此外,新的电子邮件消息650中指定的发送者电子邮件地址可以对应于用户601提交的原始电子邮件消息645中指定的接收者电子邮件地址。消息转换子系统625可以将该新的电子邮件消息650提供到连接管理系统615的消息传送子系统635以传送给用户601。消息传送子系统635可以在连接管理系统615的计算系统或其他系统(例如,服务器、虚拟机实例等)上实现。替选地,消息传送子系统635可以实现为在连接管理系统615的计算系统上执行的应用程序或其他进程。
107.消息传送子系统635可以使用客户端电子邮件服务器610的smtp地址将新的电子邮件消息650发送到客户端电子邮件服务器610以传送到网络设备605。应该注意,smtp地址可以对应于不同于通过其接收用户电子邮件消息的客户端传入电子邮件服务器的客户端传出电子邮件服务器。例如,imap地址和smtp地址可以对应于不同的客户端电子邮件服务器。用户601可以通过其网络设备605接收新的电子邮件消息650以及来自代理/机器人的对用户的电子邮件消息645的最新响应,电子邮件消息650可以包括用户601和代理/机器人之间的完整对话历史。因此,用户601可以使用电子邮件消息与代理/机器人通信,由此响应以电子邮件格式被接收,并且查看来自用户601的消息的代理/机器人可以与这些消息交互,就好像代理/机器人通过聊天会话与用户601互动一样。
108.图7示出了重新路由电子邮件和消息收发环境之间的通信的消息环境的框图。用户700可以使用网络设备705向客户端710发送电子邮件消息720。可以将电子邮件720发送到与客户端710相关联的地址,或者发送到服务器的地址,服务器基于包括在电子邮件消息720中的信息将电子邮件消息720路由到客户端710。在一些实施方式中,可以在用户700访问与客户端710相关联的网站或广告之后发送电子邮件消息720。客户端710可以是任何商品或服务提供商。
109.例如,用户700可以使用网络设备705向客户端710发送电子邮件消息720,说明“我可以预约吗?”。尽管示出的是网络设备705发起对话,但是能想到,客户端710可以替选地发起对话。例如,用户700可以使用网络设备705向与客户端710相关联的地址发送电子邮件,并且客户端710可以通过连接管理系统715进行响应。
110.连接管理系统715可以拦截消息720并将消息720重新路由到消息收发环境,例如上文结合图6描述的聊天环境。在消息收发环境中,消息720可以被转换成对话消息725,该对话消息725可以通过连接管理系统715提供的聊天窗口或其他用户界面呈现给客户端710。作为响应,客户端710可以搜索其日程安排系统以确定何时可进行预约,并在消息收发环境中发送响应消息730,说明“可在星期一上午10点或下午1点进行预约”。连接管理系统715可以拦截消息730并将其重新路由到电子邮件环境,在该电子邮件环境中可以将消息730转换为电子邮件消息735。新的电子邮件消息735可以包括由客户端710生成的响应、以及用户700和客户端710之间针对特定意图的任何对话历史。然后可以将消息735路由到网
络设备705。
111.尽管关于经由网络设备705发起与用户700的对话的连接管理系统715进行了示出和描述,但是可以设想用户700可以替选地发起与连接管理系统715的对话。此外,尽管网络设备705和客户端710之间被示出和描述为直接连接,但是可以设想连接管理系统715可以类似地接合在网络设备705和客户端710之间。
112.图8示出了根据至少一个实施方式的用于以对话消息的形式将电子邮件消息从用户路由到与客户端相关联的代理或机器人的过程800的说明性示例。过程800可由前述的连接管理系统执行。在步骤805,连接管理系统从与客户端相关联的用户接收电子邮件消息。例如,连接管理系统可以实现消息轮询子系统,该消息轮询子系统被配置为轮询客户端电子邮件服务器以寻找发往客户端域的电子邮件消息。这些电子邮件消息可以由与客户端相关联的用户提交,并且电子邮件消息可以对应于用户从客户端寻求解决方案的特定请求或意图。例如,用户可以向客户端提交电子邮件消息以解决技术问题、账单问题或客户端可以解决的任何其他问题。
113.在步骤810,连接管理系统可以解析电子邮件消息以识别要接收该消息的特定实体。例如,在一个实施方式中,连接管理系统评估电子邮件消息的接收者电子邮件地址以识别如客户端所定义的与接收者电子邮件地址相关联的特定技能。特定技能可以对应于特定代理、代理组或由客户端配置以使用人工智能生成对消息的自动响应的机器人。例如,具有接收者电子邮件地址“techsupport@example.com”的电子邮件消息可以对应于技术支持技能。连接管理系统可以评估技术支持技能并识别与客户端相关联的已知代表该客户端处理技术支持问题的特定代理、代理组或机器人。
114.在步骤815,连接管理系统确定用户与代理、代理组或机器人之间是否存在现有对话。例如,连接管理系统可以查询对话数据存储器以识别与用户的电子邮件地址或其他识别信息(例如,姓名、位置等)、和接收者电子邮件地址或与接收者电子邮件地址相对应的特定技能的组合相对应的任何现有条目。如果连接管理系统确定在用户和与接收者电子邮件地址相关联或与对应于接收者电子邮件地址的特定技能相关联的代理或机器人之间不存在对话,则连接管理系统可以在步骤820识别可以接收消息并向用户提供响应的代理、代理组或机器人。例如,如果接收者电子邮件地址对应于特定代理,则连接管理系统可以向代理的客户端设备发送通知以指示已经接收到新的对话消息。代理可以经由其客户端设备通过连接管理系统提供的用户界面访问连接管理系统,以通过聊天窗口访问对话消息。连接管理系统可以向代理指示对话消息是通过电子邮件消息接收的。作为另一个示例,如果接收者电子邮件地址对应于特定的代理组,则消息转换子系统可以将对话消息添加到与该代理组相关联的代理队列。这可以允许代理组中的代理从队列中检索对话消息并通过聊天窗口访问对话消息。
115.如果连接管理系统识别出用户与对应于接收者电子邮件地址的代理或机器人之间的现有对话,则连接管理系统可以在步骤825确定接收到的电子邮件消息是否对应于现有对话。例如,连接管理系统可以确定接收到的电子邮件消息是否包括代理/机器人与用户之间针对接收到的电子邮件消息中指定的特定意图的任何先前通信。如果连接管理系统确定接收到的电子邮件消息不包括该对话历史并且用户具有与和接收者电子邮件地址相关联的代理/机器人的现有对话,则在步骤830,连接管理系统可以指示用户响应与现有对话
相对应的现有电子邮件线程,以便继续与客户端的现有对话。
116.如果连接管理系统确定电子邮件消息对应于用户和代理/机器人之间的现有对话,或者电子邮件消息对应于已为其识别代理、代理组或机器人的新意图或请求,则在步骤835,连接管理系统可以将接收到的电子邮件消息转换为可以在代理的聊天窗口内呈现或者由代理或机器人以其他方式处理的对话消息,就好像该消息是通过与用户的聊天会话收到的一样。在一个实施方式中,如果电子邮件消息对应于用户与代理或机器人之间的现有对话,则除了对话消息之外,连接管理系统还可以将对话的对话历史提供给代理或机器人。该对话历史可以包括由连接管理系统代表用户提供给代理或机器人的任何先前获得的对话消息以及由代理或机器人提交给用户的任何响应。在步骤840,连接管理系统可以将对话消息连同用户和代理/机器人在整个现有对话中提交的任何先前消息一起发送到代理或机器人以供处理。对话可以通过聊天窗口呈现给代理,代理可以通过聊天窗口评估完整的对话历史以及在完整对话历史的上下文中的来自用户的新消息。因此,不是以电子邮件格式呈现来自电子邮件消息的用户消息,连接管理系统可以以聊天提要的形式呈现用户和代理之间的对话,以便反映实际对话。
117.图9示出了根据至少一个实施方式的用于将对话消息转换为电子邮件消息以向用户传送对话消息的过程900的说明性示例。过程900可由前述的连接管理系统执行。在步骤905,连接管理系统从代理或机器人接收对话消息以传送给用户。如上所述,代理可以通过由连接管理系统提供的聊天窗口或其他界面查看对话消息,就好像代理通过聊天会话与用户互动一样。通过聊天窗口,代理可以查看对话历史(如果有的话)并向用户提供响应。该响应可以类似于聊天响应,由此代理可以与用户交互,就好像参与了与用户的典型聊天会话一样。
118.如果代理提交对来自用户的对话消息的响应,则消息连接管理系统在步骤910可以生成新的电子邮件消息,该新的电子邮件消息可以并入代理的响应以传送给用户。新的电子邮件消息可以指定用户的电子邮件地址、以及用户最初使用的用于将原始电子邮件消息发送给客户端以解决意图或请求的客户端的电子邮件地址。此外,在步骤915,连接管理系统从对话数据存储器中获得代理/机器人与用户之间的完整对话历史,以包含在新的电子邮件消息中。如上所述,该对话历史可用于为提交的响应提供上下文,以及为连接管理系统提供用于用户与代理/机器人之间的现有对话的跟踪机制。
119.在步骤920,连接管理系统可以将来自代理/机器人的响应转换成电子邮件消息格式以包含在新的电子邮件消息中。此外,在步骤925,连接管理系统可以将用户和代理/机器人之间的任何现有对话历史并入新的电子邮件消息中。因此,新的电子邮件消息的正文可以为用户提供完整的对话历史,并为来自代理/机器人的新消息提供上下文。新的电子邮件消息可以发往用户的电子邮件地址。进一步地,新的电子邮件消息中指定的发送者电子邮件地址可以与用户提交的原始电子邮件消息中指定的接收者电子邮件地址相对应。
120.在步骤930,连接管理系统可以响应于用户的意图或请求将新的电子邮件消息发送给用户。连接管理系统可以通过消息传送子系统,使用客户端电子邮件服务器的smtp地址将新的电子邮件消息发送给客户端电子邮件服务器,以传送给用户。用户可以通过其网络设备接收新的电子邮件消息以及代理/机器人对用户的电子邮件消息的最新响应,该新的电子邮件消息可以包括用户与代理/机器人之间的完整对话历史。因此,用户可以使用电
子邮件消息与代理/机器人通信,从而以电子邮件格式接收响应,并且查看来自用户的消息的代理/机器人可以与这些消息交互,就好像该代理/机器人通过聊天会话与用户互动一样。
121.图10示出了根据至少一个实施方式的用于配置电子邮件消息设置以使得来自用户的电子邮件消息能够被路由到相应代理、代理组或机器人的界面1000的说明性示例。如图10所示,客户端可以与界面1000交互以配置或以其他方式设置他们的对话环境,以在用户和与客户端相关联的代理/机器人之间并入电子邮件消息收发。如图10所示,客户端可以定义要与特定客户电子邮件地址相关联的电子邮件账户的类型。例如,客户端可以将电子邮件地址“techsupport@example.com”与其技术支持账户相关联。对于此账户,客户端可以提供其用户名、密码和/或访问客户端的传入电子邮件服务器和传出电子邮件服务器可能需要的任何其他凭证集合。
122.通过该界面,可能需要客户端为其传入电子邮件服务器和传出电子邮件服务器提供配置信息。例如,如图10所示,客户端可能需要指定传入电子邮件账户类型(例如,imap)和传入电子邮件账户的设置(例如,传入电子邮件账户服务器的网络地址、传入电子邮件账户服务器的端口号、是否启用了安全套接字层(ssl)等)。此外,通过界面1000,客户端可能需要指定传出电子邮件账户类型(例如,smtp)和传出电子邮件账户的设置(例如,传出电子邮件账户服务器的网络地址、端口号、是否启用ssl等)。
123.一旦客户端已经使用界面1000为其传入电子邮件服务器和传出电子邮件服务器以及电子邮件账户设置提供配置信息,则客户端可以测试连接管理系统与客户端的传入电子邮件服务器和传出电子邮件服务器之间的连接,以确保可以从传入电子邮件服务器接收电子邮件消息,并且可以将电子邮件消息发送到传出电子邮件服务器并传送到其相应的目的地。如果检测到问题,则客户端可以使用界面1000来解决问题并根据需要更改任何配置设置。如果已成功建立连接,则客户端可以继续将电子邮件账户与特定技能或实体相关联,该技能或实体将处理发往该电子邮件账户的消息。
124.图11示出了根据至少一个实施方式的用于向特定客户端电子邮件地址分配技能以使得能够将电子邮件消息从用户转发到相应代理、代理组或机器人的界面1100的说明性示例。通过界面1100,客户端可以通过下拉菜单或其他界面元素呈现其各种技能。技能可以是与客户端相关联的代理和/或机器人的专业领域。客户端可以将代理、代理组和/或机器人与特定技能相关联,以便如果确定接收到的消息需要具有特定技能的代理或机器人,则可以将消息路由到具有该特定技能的代理或机器人。
125.通过界面1100,客户端可以将特定客户端电子邮件账户或地址与特定技能相关联。例如,客户端可以将电子邮件地址“techsupport@example.com”与“技术支持”技能相关联。这可以使连接管理系统将发往“techsupport@example.com”的电子邮件消息路由到与“技术支持”技能相关联的代理、代理组和/或机器人。
126.如上所述,连接管理系统可以确定接收到的电子邮件消息是否包括代理/机器人与用户之间针对在接收到的电子邮件消息中指定的特定意图的任何先前通信。如果连接管理系统确定接收到的电子邮件消息不包括对话历史并且用户具有与和接收者电子邮件地址相关联的代理/机器人的现有对话,则连接管理系统可以自动指示用户响应与现有对话相对应的现有电子邮件线程,以继续与客户端的现有对话。通过界面1100,客户端可以生成
可以由连接管理系统提供的响应,以自动指示用户响应现有的电子邮件线程(例如,打开的对话)。该响应可以用作指示用户响应现有的电子邮件线程以便继续其与和客户端相关联的代理/机器人的对话的指示。
127.图12示出了根据至少一个实施方式的用于将电子邮件消息的页眉和页脚配置为包括在客户端电子邮件消息响应中的界面1200的说明性示例。通过界面1200,客户端可以定义和/或上传要包括在代表客户端发送给用户的每个电子邮件消息中的页眉和页脚。在一个实施方式中,连接管理系统可以要求客户端使用连接管理系统提供的模板来定义要包括在他们的发给用户的电子邮件消息中的页眉和页脚。例如,通过界面1200,连接管理系统可以指示客户端下载超文本标记语言(html)示例包,该示例包包括用于定义客户端电子邮件消息的页眉和页脚的一个或多个文件。该一个或多个文件可以包括一组关于如何创建页眉和页脚的说明以及用于创建页眉和页脚的模板。使用这些模板,客户端可以生成新的页眉和/或页脚,这些页眉和/或页脚可以自动包含在客户端发给用户的电子邮件消息中。
128.如果客户端提交页眉和/或页脚以包含在其电子邮件消息中,则连接管理系统可以评估所提供的页眉和/或页脚以确保它们满足连接管理系统的一个或多个要求。例如,连接管理系统可以评估所提供的页眉和/或页脚,以确保所提供的页眉和/或页脚不包括任何恶意或未经授权的成分。此外,连接管理系统可以评估所提供的页眉和/或页脚以确保它们符合由连接管理系统建立的一个或多个样式指南。如果连接管理系统确定所提供的页眉和/或页脚不符合这些指南或检测到问题,则连接管理系统可以拒绝所提供的页眉和/或页脚并指示客户端进行任何必要的更改。然而,如果连接管理系统确定所提供的页眉和/或页脚满足由连接管理系统建立的指南,则连接管理系统可以将所提供的页眉和/或页脚并入从与客户端相关联的代理或机器人和相应客户端电子邮件地址发给用户的任何消息中。
129.图13示出了根据至少一个实施方式的用于参与和用户的对话以解决意图或请求的界面1300的说明性示例。界面1300可由与客户端相关联的代理使用。可以为代理分配特定技能,例如“技术支持”、“销售”、“账单”等。如上所述,客户端可以将特定电子邮件账户与技能相关联。作为说明性示例,客户端可以将电子邮件账户“techsupport@example.com”与其“技术支持”技能相关联。这可以使连接管理系统将发往“techsupport@example.com”电子邮件地址的电子邮件消息路由到分配给“技术支持”技能的代理、代理组或机器人。如图13所示,与客户端相关联的代理可以由于消息被发往与代理所分配的技能相关联的电子邮件地址而从用户获得该消息。
130.如上所述,连接管理系统可以将来自用户的电子邮件消息转换成可以在聊天窗口内呈现给代理的对话消息。如图13所示,来自用户的消息在聊天窗口内被呈现为对话消息。对话消息可以类似于从用户接收的电子邮件消息的正文,由此对话消息可以指示要处理的意图或请求。连接管理系统可以通过界面1300指示来自用户的对话消息是从接收的电子邮件消息转换而来的。例如,如图13所示,对于用户和代理之间的特定对话(例如,聊天会话),连接管理系统可以指示用户的消息是通过电子邮件消息、用户使用的客户端电子邮件地址、和用户的电子邮件地址接收到的。
131.在一个实施方式中,通过界面1300,代理可以提交响应于从其电子邮件消息转换的用户对话消息的对话消息。连接管理系统可以将代理的对话消息转换为电子邮件消息,该电子邮件消息可以发往用户的电子邮件地址,如界面1300中指定的那样。连接管理系统
可以将客户端上传的任何页眉和/或页脚、以及用户和代理之间的现有对话历史并入该电子邮件消息中。该对话历史可以类似于通过界面1300呈现的对话历史。该对话历史可以用作用户和代理之间的通信会话的标识符。因此,接收电子邮件消息的用户可以能够查看该对话历史并确定代理的以电子邮件格式的响应的上下文。用户可以对电子邮件消息做出响应,但是将另一电子邮件消息发送到客户端电子邮件地址,并且用户提交的响应可以作为界面1300内的对话消息呈现给代理。
132.图14示出了根据一些实现方式的计算系统架构1400,该计算系统架构1400包括使用连接1406(诸如总线)彼此电通信的各种组件。示例系统架构1400包括处理单元(cpu或处理器)1404和系统连接1406,系统连接1406将包括系统存储器1420(诸如rom 1418和ram 1416)的各种系统组件联接到处理器1404。系统架构1400可以包括高速存储器的高速缓存1402,高速缓存1402直接与处理器1404连接、极为接近于处理器1404、或者集成为处理器1404的一部分。系统架构1400可以将来自存储器1420和/或存储设备1408的数据复制到高速缓存1402,以被处理器1404快速访问。这样,高速缓存可以提高性能,而避免处理器1404在等待数据时延迟。这些模块和其他模块可以控制或被配置成控制处理器1404执行各种动作。
133.也可以使用其他可用的系统存储器1420。存储器1420可以包括具有不同性能特性的多种不同类型的存储器。处理器1404可以包括:任何通用处理器以及被配置成控制处理器1404的硬件或软件服务,诸如存储在存储设备1408中的服务1 1410、服务2 1412、和服务3 1414;以及专用处理器,其中软件指令被并入实际处理器设计中。处理器1404可以是完全独立的计算系统,包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称或非对称的。
134.为了使用户能够与计算系统架构1400进行交互,输入设备1422可以表示任何数量的输入机构,诸如用于讲话的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、讲话等等。输出设备1424也可以是本领域技术人员已知的多种输出机构中的一种或多种输出机构。在一些情况中,多模式系统可以使用户能够提供多种类型的输入以与计算系统架构1400通信。通信接口1426可以总体上管理和控制用户输入和系统输出。对在任何特定硬件布置上的操作没有限制,因此随着硬件或固件布置的发展,这里的基本特征可以很容易替代为改进的硬件或固件布置。
135.存储设备1408是非易失性存储器并且可以是硬盘或者可以存储可由计算机访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储器设备、数字通用光盘、盒式磁带、ram 1416、rom 1418、及其混合。
136.存储设备1408可以包括用于控制处理器1404的服务1410、1412、1414。能够想到其他硬件或软件模块。存储设备1408可以连接到系统连接1406。在一个方面,执行特定功能的硬件模块可以包括存储在与所需的硬件组件连接的计算机可读介质中的软件组件,以执行所述功能,所述硬件组件诸如处理器1404、连接1406、输出设备1424等等。
137.可以使用计算系统执行所公开的方法。示例计算系统可以包括处理器(例如,中央处理单元)、存储器、非易失性存储器、和接口设备。存储器可以存储数据和/或一个或多个代码集、软件、脚本等。计算机系统的组件可以经由总线或通过某一其他已知或方便的设备联接在一起。处理器可以被配置成例如通过执行例如存储在存储器中的代码来执行本文所
描述的方法的全部或部分。用户设备或计算机、提供商服务器或系统、或者暂停数据库更新系统中的一者或多者可以包括计算系统的组件或这种系统的变型系统的组件。
138.本发明预想到采用任何合适的物理形式的计算机系统,包括但不限于销售点系统(“pos”)。作为示例而非限制,计算机系统可以是嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(诸如,例如模块计算机(com)或模块系统(som))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务终端(kiosk)、大型机、计算机系统网格、移动电话、个人数字助理(pda)、服务器、或以上两者或更多者的组合。适当时,计算机系统可以:包括一个或多个计算机系统;为统一的或分布式的;跨多个位置;跨多个机器;和/或驻留在云中,该云可以包括一个或多个网络中的一个或多个云组件。适当时,一个或多个计算机系统可以基本上没有空间或时间限制而执行本文所描述或所示出的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统可以实时或以批量模式执行本文所描述或所示出的一种或多种方法的一个或多个步骤。适当时,一个或多个计算机系统可以在不同时间或在不同位置执行本文所描述或所示出的一种或多种方法的一个或多个步骤。
139.处理器可以例如为传统微处理器,诸如英特尔奔腾微处理器或摩托罗拉功率pc微处理器。相关领域技术人员能够认识到术语“机器可读(存储)介质”或“计算机可读(存储)介质”包括可由处理器访问的任何类型的设备。
140.存储器可以通过例如总线联接到处理器。通过示例而非限制,存储器可以包括随机存取存储器(ram),诸如动态ram(dram)和静态ram(sram)。存储器可以是本地的、远程的、或分布式的。
141.总线还可以将处理器联接到非易失性存储器和驱动单元。非易失性存储器通常是磁性软盘或硬盘、磁光盘、光盘、只读存储器(rom)(诸如cd-rom、eprom、或eeprom)、磁卡或光卡、或另一种形式的用于大量数据的存储装置。该数据中的某些数据通常在计算机中的软件执行期间通过直接存储器访问过程来写入存储器中。非易失性存储装置可以是本地的、远程的、或分布式的。非易失性存储器是可选的,因为可以使用存储器中可用的所有适用数据创建系统。典型的计算机系统通常会至少包括处理器、存储器、以及将存储器联接到处理器的设备(例如,总线)。
142.软件可以存储在非易失性存储器和/或驱动单元中。实际上,对于大的程序,甚至可能不能将整个程序存储在存储器中。然而,应当理解,对于要运行的软件,如果需要,其可以移动到适于处理的计算机可读位置,并且为了说明目的,该位置在本文中称为存储器。即使当软件被移动到存储器以用于执行,处理器也可以使用硬件寄存器来存储与软件相关联的值以及使用理想地用于加速执行的本地缓存。如本文所使用的,当软件程序被称为“在计算机可读介质中实施的”时,软件程序被假设为存储在任何已知或方便位置(从非易失性存储装置至硬件寄存器)。当与程序相关联的至少一个值存储在可由处理器读取的寄存器中时,该处理器被认为是“被配置成执行程序”。
143.总线还可以将处理器联接到网络接口设备。接口可以包括调制解调器或网络接口中的一者或多者。能够理解,调制解调器或网络接口可以被视为计算机系统的一部分。接口可以包括模拟调制解调器、综合业务数字网(isdn)调制解调器、线缆调制解调器、令牌环接口、卫星传输接口(例如,“直接pc”)、或其他用于将一计算机系统联接到其他计算机系统的接口。接口可以包括一个或多个输入和/或输出(i/o)设备。通过示例而非限制,i/o设备可
以包括键盘、鼠标或其他定点设备、磁盘驱动器、打印机、扫描仪、以及其他输入和/或输出设备(包括显示设备)。通过示例而非限制,显示设备可以包括阴极射线管(crt)、液晶显示器(lcd)、或某一其他适用的已知或方便的显示设备。
144.在操作中,计算机系统可由包括文件管理系统(诸如磁盘操作系统)的操作系统软件控制。具有相关联的文件管理系统软件的操作系统软件的一个示例是来自华盛顿州雷德蒙德的microsoft corporation(微软公司)的被称为的操作系统系列及其相关联的文件管理系统。具有其相关联的文件管理系统软件的操作系统软件的另一个示例是linux
tm
操作系统及其相关联的文件管理系统。文件管理系统可以存储在非易失性存储器和/或驱动单元中,并且可以使处理器执行由操作系统所需的各种动作,以输入和输出数据以及将数据存储在存储器中,包括将文件存储在非易失性存储器和/或驱动单元上。
145.具体实施方式的某些部分可以依据对计算机存储器中的数据位的操作的算法和符号表示来呈现。这些算法描述和表示是数据处理领域的技术人员所使用的手段,以将其工作的实质最有效地传达给本领域的其他技术人员。算法在这里并且通常被设想成导致所期望的结果的操作的自洽序列。操作是那些需要物理量的物理操纵的操作。通常,虽然非必须,但这些物理量采用能够被存储、被转移、被组合、被比较、和以其他方式被操纵的电信号或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、数字等有时是方便的。
146.然而,应当记住,所有这些术语和类似术语是与合适的物理量相关联的并且仅仅是应用于这些物理量的方便的标签。除非以与以下讨论明显不同的方式明确声明,否则应当理解,贯穿整个说明书,使用诸如“处理”或“计算(computing)”或“计算(calculating)”或“确定”或“显示”或“生成”等的术语的讨论是指计算机系统或类似电子计算设备的动作和过程,所述计算机系统或类似电子计算设备将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵并转换成其他类似地表示为计算机系统的存储器或寄存器或其他这种信息存储、传输或显示设备内的物理量的数据。
147.本文中呈现的算法和显示并非固有地与任何特定计算机或其他装置相关。各种通用系统可以与根据本文教导的程序一起使用,或者可以证实构建更专门的装置来执行一些示例的方法是方便的。根据以下描述,所需的用于各种这些系统的结构将显现。此外,并未参考任何特定编程语言来描述技术,因此各种示例可以使用各种编程语言来实现。
148.在各种实现方式中,系统作为独立设备进行操作或者可以连接(例如,联网)到其他系统。在联网部署中,系统可以在客户端-服务器网络环境中作为服务器或客户端系统进行操作,或者在点对点(或分布式)网络环境中作为对等系统进行操作。
149.系统可以是服务器计算机、客户端计算机、个人计算机(pc)、平板pc、膝上型计算机、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、iphone(苹果手机)、blackberry(黑莓手机)、处理器、电话、网络设备、网络路由器、交换机或桥接器、或能够执行指定待由该系统采取的动作的一组指令(按顺序或者以其他方式)的任何系统。
150.虽然机器可读介质或机器可读存储介质作为示例被示为单个介质,但术语“机器可读介质”和“机器可读存储介质”应被理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“机器可读介质”和“机器可读存储介质”还应理解为包括能够存储、编码或携带一组供系统执行的指令
并且使系统执行本文公开的任何一种或多种方法或模块的任何介质。
151.通常,被执行以实现本发明的实现方式的例程可以实现为操作系统或专用应用程序、组件、程序、对象、模块或被称为“计算机程序”的指令序列的一部分。计算机程序通常包括在不同时间在计算机中的各种存储器和存储设备中设置的一个或多个指令,并且所述指令在被计算机中的一个或多个处理单元或处理器读取并执行时,致使该计算机进行操作以执行涉及本发明的各种方面的元素。
152.此外,尽管已经在功能完善的计算机和计算机系统的上下文中描述了示例,但是本领域技术人员能够理解,各种示例能够作为程序客体而以各种形式分布,而且不管实际用于实现分布的机器或计算机可读介质的具体类型如何,本发明都同样适用。
153.机器可读存储介质、机器可读介质、或计算机可读(存储)介质的其他示例包括但不限于:可记录类型介质,诸如易失性和非易失性存储器设备、软盘和其他可移除磁盘、硬盘驱动器、光盘(例如,光盘只读存储器(cd rom)、数字通用光盘(dvd)等)等等;以及传输类型介质,诸如数字和模拟通信链路。
154.在一些情况中,存储器设备的操作(诸如从二进制1到二进制0的状态改变或者反之亦然)例如可以包括变换(诸如物理变换)。利用特定类型的存储器设备,这种物理变换可以包括物品向不同状态或事物的物理变换。例如,但非限制地,对于某些类型的存储器设备,状态的改变可以涉及电荷的积累和存储或者所存储的电荷的释放。类似地,在其他存储器设备中,状态的改变可以包括磁取向的物理改变或变换或者分子结构的物理改变或变换,诸如从晶体到非晶体或者反之亦然。前述内容不意图为其中存储器设备中从二进制1到二进制0(或者反之)的状态改变可以包括变换(诸如物理变换)所有示例的穷尽列表。而是,前述内容意图作为说明性示例。
155.存储介质通常可以为非暂时性设备或者可以包括非暂时性设备。在该情况下,非暂时性存储介质可以包括有形设备,这意味着该设备具有具体的物理形式,但是该设备的物理状态可以改变。因此,例如,非暂时性是指尽管状态改变但是保持有形的设备。
156.以上描述和附图是说明性的而不能解释为将主题限制到所公开的确切形式。相关领域的技术人员能够理解,鉴于上述公开内容可以有许多修改和变型。描述了许多具体细节来提供对本发明的透彻理解。然而,在某些情况中,众所周知的或常规的细节没有被描述,从而避免使描述模糊不清。
157.如本文中所使用的,术语“连接”、“联接”、或其任何变型当应用于系统的模块时,意味着两个或更多个元件之间直接或间接的任何连接或联接;元件之间的联接或连接可以是物理的、逻辑的、或其任何组合。此外,词语“本文”、“以上”、“以下”、以及类似含义的词语,当用于本技术中时,应该是指本技术整体,而不是本技术的任何特定部分。当上下文允许时,在以上具体实施方式部分中的使用单数或复数的词语也可以分别包括复数或单数。在关于两个或更多个项目的列表中,词语“或”涵盖该词语的所有如下解释:列表中项目的任一者、列表中所有项目、或者列表中项目的任何组合。
158.本领域技术人员能够理解,所公开的主题可以以下面未示出的其他形式和方式来实施。应当理解,关系型术语的使用(如果有的话,诸如第一、第二、顶部和底部等)仅用于将一个实体或动作与另一个实体或动作区分开,而不必要求或暗示这些实体或动作之间的任何这种实际关系或顺序。
159.尽管过程或方框以给定顺序呈现,但是替选实现方式可以执行具有不同顺序的步骤的例程或采用具有不同顺序的方框的系统,并且一些过程或方框可以被删除、移动、添加、细分、取代、组合和/或修改,以提供替选组合或子组合。可以以各种不同方式实现这些过程或方框中的每一者。此外,尽管过程或方框有时被示出为串行执行,但是这些过程或方框也可以并行执行或者可以在不同时间执行。另外,本文中提到的任何特定数字都只是示例:替选实现方式可以采用不同的值或范围。
160.本文中提供的本发明的教导可以应用于其他系统,而不必是上述系统。上述各种示例的元素和动作可以被结合以提供进一步的示例。
161.以上提到的任何专利和申请和其他参考文件(包括可能在所附递交文件中列出的任何参考文件)通过引用并入本文。如果需要,可以修改本发明的方面来采用上述各个参考文件的系统、功能和概念,以提供本发明的其它进一步的示例。
162.可以根据以上具体实施方式来对本发明做出这些和其他改变。尽管以上描述描述了特定示例,并且描述了预期的最好方式,但是不管上述内容的文本呈现得多么详细,教导都可以以许多方式实践。系统的细节可以在其实现方式细节上进行相当大的变化,但是仍然被本文所公开的主题所包括。如上所述,当描述本发明的某些特征或方面时所使用的特定术语不应当被看作是暗示该术语在本文中被重新定义以限制到与该术语相关联的本发明的任何特定特性、特征或方面。通常,在所附权利要求书中所使用的术语不应当被解释为将本发明限制到说明书中所公开的特定实现方式,除非以上具体实施方式部分明确定义了这些术语。因此,本发明的实际范围不仅包括所公开的实现方式,而且包括根据权利要求实践或实现本发明的所有等同方式。
163.尽管以某些权利要求形式呈现了本发明的某些方面,但是发明人预期到任何数量的权利要求形式的本发明的各个方面。任何旨在根据35u.s.c.
§
112(f)进行处理的权利要求将以表述“用于
……”
开头。因此,申请人保留在递交本技术之后添加附加权利要求的权利以寻求这些用于本发明的其他方面的附加权利要求形式。
164.在本发明的上下文内,在本说明书中所使用的术语通常具有其在本领域和在每个术语所使用的特定上下文中的通常含义。用于描述本发明的特定术语在以上或者说明书中的其他地方进行讨论,以为实践者提供关于本发明的描述的附加指导。为了方便,某些术语可以被突出,例如使用大写、斜体、和/或引号。使用突出不会对术语的范围和含义有任何影响;在同一上下文中,无论术语是否被突出,该术语的范围和含义都是相同的。能够理解,同一元素可以以多于一种的方式被描述。
165.因此,本文所讨论的任何一个或多个术语可以使用替选语言和同义词,但也不是基于术语是否在本文中详尽或讨论而对其赋予任何特殊意义。提供了某些术语的同义词。一个或多个同义词的记载并不排除其他同义词的使用。包括本文所讨论的任何术语的示例的本说明书中任何地方使用的示例都仅是说明性的,并且不意图进一步限制本发明或任何示例性术语的范围和含义。同样地,本发明并不限于本说明书中所给出的各个示例。
166.下面给出根据本发明的示例的设备、装置、方法及其相关结果的示例,但不意图进一步限制本发明的范围。需要注意的是,为了阅读者方便,可以在示例中使用标题或副标题,但不以任何方式限制本发明的范围。除非另外定义,否则本文所使用的所有技术术语和科学术语具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。在有冲突的
情况下,将以包括定义的本文为准。
167.本说明书的一些部分描述了对信息进行操作的算法和符号表示的示例。这些算法描述和表示通常由数据处理领域的技术人员用于将其工作实质有效地传达给本领域的其他技术人员。当从功能上、从计算上、或从逻辑上描述这些操作时,这些操作被理解成将由计算机程序或等效电路、微代码等实现。此外,还已经证实将这些操作的布置称为模块有时是方便的,且不失通用性。所描述的操作及其相关联的模块可以体现在软件、固件、硬件、或其任意组合中。
168.本文描述的任何步骤、操作、或过程可以利用一个或多个硬件或软件模块单独地或与其他设备结合地执行或实现。在一些示例中,软件模块利用包括计算机可读介质的计算机程序客体来实现,计算机可读介质包含计算机程序代码,计算机程序代码可由计算机处理器执行以用于执行所描述的步骤、操作、或过程中的任一者或全部。
169.示例还可以涉及用于执行本文中的操作的装置。该装置可以被专门构建以用于所需目的,和/或该装置可以包括通过计算机中存储的计算机程序选择性激活或重新配置的通用计算设备。这种计算机程序可以存储在非暂时性、有形的计算机可读存储介质或适用于存储电子指令的任何类型的介质中,所述介质可以联接到计算机系统总线。此外,本说明书中提及的任何计算系统都可以包括单个处理器或者可以是采用多处理器设计以提高计算能力的架构。
170.示例还可以涉及由本文描述的计算进程形成的客体。该客体可以包括由计算进程产生的信息,其中该信息存储在非暂时性、有形的计算机可读存储介质上以及可以包括计算机程序客体或本文描述的其他数据组合的任何实现方式。
171.已经主要出于可读性和指导目的而选择本说明书中所使用的语言,而不是选择这些语言来描绘或约束主题。因此,不意图通过详细描述来限制本发明的范围,而是通过基于本技术发布的任何权利要求来限制。因此,示例的公开意图是说明性的,而非对主题的范围的限制,主题的范围在所附权利要求中阐述。
172.在以上描述中给出了特定细节以提供对用于上下文连接系统的系统和组件的各种实现方式的透彻理解。然而,本领域普通技术人员应当理解,可以在没有这些特定细节的情况下实践上述实现方式。例如,电路、系统、网络、进程、和其他组件可以被示为框图形式中的组件,以免在不必要的细节上使实施方式模糊不清。在其他情况下,可以示出公知的电路、进程、算法、结构和技术而没有不必要的细节,以避免使实施方式模糊不清。
173.另外,应当注意,各个实现方式可以被描述为过程,该过程被描绘为流程图、作业图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新安排操作的顺序。当一个过程的操作完成时,该过程将终止,但是可以具有未包含在图中的附加步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止可对应于该函数返回到调用函数或主函数。
174.客户端设备、网络设备、和其他设备可以是计算系统,该计算系统包括一个或多个集成电路、输入设备、输出设备、数据存储设备、和/或网络接口等等。集成电路可以包括例如一个或多个处理器、易失性存储器、和/或非易失性存储器等等。输入设备可以包括例如键盘、鼠标、小键盘、触摸界面、麦克风、相机和/或其他类型的输入设备。输出设备可以包括例如显示屏、扬声器、触觉反馈系统、打印机和/或其他类型的输出设备。诸如硬盘驱动器或
闪存的数据存储设备可以使计算设备能够临时地或永久地存储数据。诸如无线或有线接口的网络接口可以使计算设备能够与网络通信。计算设备的示例包括台式计算机、膝上型计算机、服务器计算机、手持计算机、平板电脑、智能电话、个人数字助理、数字家庭助理、以及已经并入计算设备的机器和装置。
175.术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光存储设备、以及能够存储、包含、或承载(一个或多个)指令和/或数据的各种其他介质。计算机可读介质可以包括非暂时性介质,该非暂时性介质中可以存储数据,并且不包括无线地或通过有线连接传播的载波和/或暂时性电信号。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如光盘(cd)或数字通用光盘(dvd)的光存储介质、闪存、存储器或存储器设备。计算机可读介质可以具有其上存储的代码和/或机器可执行指令,其可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。一代码段可以通过传递和/或接收信息、数据、自变量、参数、或存储内容而与另一代码段或硬件电路关联。信息、自变量、参数、数据等可以通过包括存储器共享、消息传递、令牌传递、网络传输等的任何适当手段来进行传递、转发或传输。
176.以上讨论的各种示例还可以通过硬件、软件、固件、中间件、微代码、硬件描述语言、或它们的任何组合来实现。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读存储介质(例如,用于存储程序代码或代码段的介质)中。在集成电路中实现的(一个或多个)处理器可以执行必要任务。
177.当组件被描述成“被配置成”执行某些操作时,这种配置可以例如通过将电子电路或其他硬件设计成执行操作、通过将可编程电子电路(例如,微处理器、或其他合适的电子电路)编程为执行操作、或者其任何组合来完成。
178.结合本文公开的实现方式描述的各种说明性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件、或其组合。为了清楚地说明硬件和软件的这种可互换性,以上已经在其功能方面总体上描述了各种说明性组件、块、模块、电路、和步骤。这种功能被实现为硬件还是软件取决于特定应用和对整个系统的设计约束。技术人员可以针对每种特定应用以不同方式实现所描述的功能,但是这种实现决策不应被解释为造成偏离本发明的范围。
179.本文描述的技术也可以在电子硬件、计算机软件、固件或其任何组合中实现。这样的技术可以在多种设备中的任何一种中实现,例如通用计算机、无线通信设备手机、或具有多种用途的集成电路设备,包括在无线通信设备手机和其他设备中的应用程序。描述为模块或组件的任何特征都可以在集成逻辑设备中一起实现,或者作为分立但可互操作的逻辑设备单独实现。如果以软件实现,则该技术可以至少部分地由包括程序代码的计算机可读数据存储介质实现,该程序代码包括指令,该指令当被执行时,执行上述方法中的一种或多种。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括包装材料。计算机可读介质可以包括存储器或数据存储介质,例如随机存取存储器(ram)(例如同步动态随机存取存储器(sdram))、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦可编程只读存储器(eeprom)、闪存、磁或光数据存储介质等。附加地或替选地,这些技术可以至少部分地通过计算机可读通信介质来实现,该计算机可读通信介质
承载或传送指令或数据结构形式的程序代码并且这些指令或数据结构可以由计算机访问、读取和/或执行,例如传播的信号或波。
180.程序代码可以由处理器执行,处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)、或其他等效的集成或离散逻辑电路。这种处理器可以被配置成执行本发明中描述的任何技术。通用处理器可以是微处理器;但是在替选方案中,处理器可以是任何常规处理器、控制器、微控制器、或状态机。处理器也可以实现为计算设备的组合,例如dsp和微处理器的组合、多个微处理器、与dsp核结合的一个或多个微处理器、或者任何其他这种配置。因此,本文中所使用的术语“处理器”可以是指任何前述结构、前述结构的任何组合、或适于实现本文所描述的技术的任何其他结构或装置。此外,在一些方面中,可以在被配置成用于实现暂停数据库更新系统的专用软件模块或硬件模块内提供本文所描述的功能。
181.已经出于说明和描述的目的呈现了技术的前述详细描述。该详细描述并非详尽的,也不意图将技术限制到所公开的确切形式。鉴于以上教导可以有许多修改和变型。选择所描述的实施方式是为了最好地解释技术的原理、其实践应用、以及使本领域其他技术人员能够在各种实施方式中利用该技术并且与适用于预期的特定用途的各种修改一起利用该技术。意图通过权利要求来限定该技术的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献