负载平衡的持久连接技术的制作方法

文档序号:22506121发布日期:2020-10-13 09:43阅读:75来源:国知局
负载平衡的持久连接技术的制作方法

本申请是分案申请,其原申请的国际申请号为pct/us2014/033210,国际申请日是2014年4月7日,中国国家申请号为201480032600.4,进入中国的日期为2015年12月7日,发明名称为“负载平衡的持久连接技术”。

相关申请

本申请要求2013年4月8日提交的名称为“负载平衡的持久连接技术(load-balanced,persistentconnectiontechniques)”的美国专利申请号13/858,753的优先权,所述申请的全部内容以引用的方式并入本文。



背景技术:

随着计算装置(如台式计算机、平板计算机、娱乐系统和便携式通信装置)的激增,家庭正变得更加有线的和连接的。随着计算装置发展,已引进了许多不同的方法以便允许用户与这些装置交互,如通过机械装置(例如,键盘、鼠标等)、触摸屏、动作和手势。与计算装置交互的另一种方法是通过语音。

附图说明

参考附图来描述详细的说明。在图中,参考数字的最左侧的数字标识在其中所述参考数字首次出现的图。在不同的图中使用的相同参考数字指示类似或相同的部件或特征。

图1示出设置在家庭环境中的说明性语音交互计算结构。所述结构包括物理上位于家中并且通信地耦合至远程计算资源的语音控制装置。

图2附加详细示出图1的结构。如图所示,每个语音控制装置通过负载平衡服务连接至远程计算资源述负载平衡服务将连接请求路由至不同的服务器实例。

图3示出图2的语音控制装置与服务器实例之间的示例性连接。这种单个物理连接包括多个虚拟信道,通过所述多个虚拟信道可多路复用发送至客户端装置并且由其接收的数据。

图4描绘图1的语音控制装置或其他客户端装置可实施的示例性过程的流程图。

图5描绘图1的远程计算资源可实施的示例性过程的流程图。

图6示出在图1的语音控制装置中实施的所选择的功能部件的框图。

具体实施方式

本公开部分地描述了用于在客户端装置与一个或多个远程计算资源之间创建持久连接的技术,所述持久连接可形成网络可访问的计算平台的一部分。这种连接可被认为是“永久的”或“几乎永久的”,以便允许客户端装置在几乎任何时间同时将数据发送至远程资源并且从其接收数据。因为客户端装置需要能够在任何时间发送和/或接收数据,当客户端装置通电时,可建立这些“永久的”或“几乎永久的”连接。也就是说,当每个客户端装置通电时,各自的客户端装置可尝试与网络可访问的计算平台建立连接。

为了创建此类连接,本文所描述的客户端装置可被配置来请求到虚拟互联网协议(vip)地址的连接。因为远程计算资源可服务大量的客户端装置,所述客户端装置可被预先配置来连接到一些不同的vip地址中的特定的一个,所述一些不同的vip地址中的每一个可对应于网络可访问的计算平台的服务器实例的多个ip地址。

当客户端装置通过调用与特定的客户端装置相关联的vip地址请求连接时,可通过与vip相关联的负载平衡服务接收所述请求。这种服务随后可识别哪些ip地址对应于vip,并且可选择将路由对其的请求的所述ip地址中的一个(以及,因此服务器实例中的一个)。由此,负载平衡服务可平衡在服务器实例上的负载。此后客户端装置建立到与所选择的ip地址相关联的服务器实例的连接,虽然对于客户端它看起来好像它已经与vip地址本身简单地建立了连接。

在已经在客户端装置与远程计算资源之间建立了单个连接之后,客户端装置和/或远程计算资源可通过所述连接创建一个或多个虚拟信道,所述虚拟信道可为双边的,以使得在一些实例中,可能以一个或两个方向发送通信。例如,客户端装置可建立第一虚拟信道用于将第一音频信号上传到远程计算资源,同时远程计算资源可建立第二虚拟信道用于将音频信号发送到客户端装置并且用于通过客户端输出。在每帧或多帧的基础上可多路复用通过这些虚拟信道发送的数据,以使得双向通信看起来像被并行发送。例如,连接的第一帧可用于通过第一虚拟信道将数据发送到远程计算资源,第二帧可用于通过第二虚拟信道将数据发送到客户端装置,等等。通过多路复用多个虚拟信道,对于客户端装置和远程计算资源两者呈现出各自的虚拟信道为不同连接,虽然在客户端装置与远程计算资源之间仅存在单个连接。通过利用单个连接而不是多个连接,减少了耦合客户端装置和远程计算资源的成本。

另外,在客户端装置连接到远程计算资源的服务器实例之后,服务器实例或负载平衡服务可在装置定位服务处注册所述实例已经与哪个客户端装置连接的指示。例如,当客户端装置与具有特定的ip地址的服务器实例建立连接时,所述服务器实例可在由装置定位服务保持的表格中存储客户端装置的装置标识符(did)的指示。装置定位服务保持的表格可存储did到ip地址的映射。由此,当远程计算资源的另一个服务器实例发送旨在用于特定的客户端装置的数据时,这种服务器实例可根据映射识别连接到期望的客户端装置的服务器实例。其他服务器实例随后可将数据提供到保持连接的服务器实例,以使得后者的服务器实例可将数据依次提供到客户端装置。

另外,可断开在客户端装置和服务器实例之间的连接,并且在其中一定量时间内在客户端装置和服务器实例之间没有数据或少于阈值量的数据被交换的实例中可重新建立后续连接。例如,如果在阈值时间量内客户端装置既没有接收也没有发送数据到其连接的服务器实例,那么客户端装置可被配置来切断在其自身与远程计算资源之间的连接。此后,客户端装置可再次通过调用与客户端装置相关联的vip地址与远程计算资源建立连接。此外,负载平衡服务可接收请求并且路由所述请求,以便潜在地在客户端装置和与vip地址相关联的不同的服务器实例之间建立连接。

另外,如果在阈值时间量之后客户端装置不切断连接,那么在稍微高于第一阈值的第二阈值时间量之后,服务器实例可被配置来切断连接。在这个实例中,服务器实例作为在客户端装置未能切断连接的事件中的故障保护。当意识到连接已被断开(由于服务器实例切断连接)时,客户端装置此后可调用vip地址以便建立新的连接。

尽管上文实例描述当在一段时间内在客户端装置与服务器实例之间少于阈值量的数据被交换时切断连接,但是可出于许多其他原因切断连接。例如,如果客户端装置未能认证但是从服务器实例请求数据,或如果在托管实例的物理服务器上的处理负载太大,那么响应于托管实例的物理服务器关闭,可仅基于连接的时间量(例如,建立连接后十五分钟)、在一段时间内从客户端装置发送到服务器实例的数据量、在一段时间内从服务器实例发送到客户端装置的数据量切断连接。在其他实例中,如果在这两个实体之间的流量太慢、如果带宽太受限制、如果连接的质量太差等等,那么客户端装置或服务器实例可切断连接。在又一些实例中,如果在一定量的时间内客户端装置没有认证、如果客户端装置发送除认证请求以外的某个请求作为初始请求等等,那么服务器实例可切断与客户端装置形成的连接,所述客户端装置与已被确定为恶意的ip地址相关联。尽管已提供了一些实例,但是应当理解,客户端装置和/或服务器实例可出于一系列不同的原因切断这些连接。

上文介绍的装置和技术可在各种不同的结构和背景下实施。下文描述了一个非限制性和示例性实施方式。尽管这个实施方式示出客户端装置作为语音控制装置,但是应当理解,在其他实施方式中,客户端装置可包括移动电话、平板计算装置、膝上型计算机、台式计算机、电子书阅读器装置和/或类似物。

图1示出设置在包括用户104的家庭环境102中的说明性语音交互计算结构100。结构100还包括电子语音控制装置106,用户104可与所述电子语音控制装置106交互。在示出的实施方式中,语音控制装置106定位在家庭环境102的房间内的桌子上。在其他实施方式中,它可被放置或安装在任何数量的位置处(例如,天花板、墙壁、灯中、桌子下、椅子下等)。另外,多于一个的装置106可定位在单个房间中,或一个装置可用于适应来自多于一个的房间的用户交互。

一般来说,语音控制装置106具有包括至少一个麦克风108的麦克风单元和包括至少一个扬声器110的扬声器单元,以便促进与用户104和/或其他用户的音频交互。在一些实例中,在没有触觉输入组件(例如,键盘、按键、触摸屏、操纵杆、控制按钮等)或显示器的情况下实施语音控制装置106。在某些实施方式中,可采用有限组的一个或多个触觉输入组件(例如,启动配置的专用按钮、电源开/关等)。然而,用户与电子装置106交互的主要模式以及可能的唯一模式可为通过语音输入和音频输出。下文参考图6更详细地提供了语音控制装置106的一个示例性实施方式。

语音控制装置106的麦克风108检测来自环境102的音频,如从用户104发出的声音。如图所示,语音控制装置106包括处理器112和存储器114,所述存储器114存储或以另外访问语音识别引擎116。如本文所用,处理器可包括多个处理器和/或具有多核的处理器。语音识别引擎116执行对基于由麦克风捕获的声音(如由用户104所说的话语)产生的音频信号的语音识别。语音控制装置106可响应于识别来自用户104的不同语音执行某些动作。用户可讲出预先定义的命令(例如,“唤醒”、“睡眠”),或当与装置106交互时可使用更随意的谈话风格(例如,“我想去看电影。请告诉我当地电影院在放映什么。”)。

在一些实例中,语音控制装置106可结合计算资源118运行,或以另外利用远离环境102的计算资源118。例如,语音控制装置106可通过网络120耦合到远程计算资源118。如图所示,远程计算资源118可被实施作为一个或多个服务器122(1)、122(2)、…、122(p),并且在一些实例中,可形成被实施作为通过网络(如互联网)保持和访问的处理器、存储器、软件、数据访问等的计算基础设施的网络可访问计算平台的一部分。远程计算资源118不需要终端用户知道递送服务的系统的物理位置和配置。用于这些远程计算资源118的相关联的通用表达包括“按需计算”、“软件即服务(saas)”、“平台计算”、“网络可访问平台”、“云服务”、“数据中心”,等等。

服务器122(1)-(p)可包括处理器和存储器。如图所示,服务器122(1)-(p)可保持一个或多个服务器实例124(1)-(n)。每个物理服务器可保持一个或多个服务器实例,并且每个服务器实例可被配置来保持与一个或多个客户端装置(如语音控制装置106)的连接。在这个实例中,服务器实例124(n)保持与语音控制装置的连接。如图所示,示例性服务器实例124(n)可存储和利用语音处理引擎126,用于从装置106接收音频信号、识别语音、以及潜在地促使动作的执行作为响应。例如,引擎126可通过对音频信号执行自然语言理解(nlu)技术来识别在音频信号内的语音。另外,引擎126可提供用于通过文本到语音(tts)在客户端装置(例如,装置106)上输出的音频。在一些实例中,假定服务器实例124(n)可具有远超过语音控制装置106的计算能力的计算能力,那么语音控制装置106可将音频数据上传到服务器实例124(n)用于处理。因此,语音控制装置106可利用语音处理引擎126用于对从环境102捕获的在音频执行相对复杂的分析。

不管语音识别本地发生或离开环境102远程地发生,语音控制装置106可从用户104接收语音输入,并且装置106和/或资源118可执行语音识别以便解释用户的操作请求或命令。所述请求可用于基本上任何类型的操作,如数据库查询、请求和消费娱乐(例如,游戏、寻找并播放音乐、电影或其他内容等)、个人管理(例如,排日历、记录笔记等)、在线购物、金融交易,等等。在一些实例中,装置106还与存储在用户104的一个或多个客户端装置上的客户端应用程序交互。在一些实例中,用户104还可通过这种“伴随应用程序”与装置104交互。例如,用户104可利用伴随应用程序的图形用户界面(gui)以便替代语音命令做出对装置106的请求。另外或可替换地,装置106可与伴随应用程序通信以便使信息浮现至用户104,如由用户提供到装置106的向前的语音命令(以及装置如何解释这些命令),为对由用户发出的语音命令的补充的内容(例如,用于由用户104所请求的在装置106上播放的歌曲的封面艺术),等等。另外,在一些实例中,装置106可响应于接收语音命令将授权请求发送到伴随应用程序,以使得装置106不符合语音命令直到接收以通过伴随应用程序接收用户响应的形式的许可。

语音控制装置106可通过有线技术(例如,导线、usb、光纤电缆等)、无线技术(例如,wifi、rf、蜂窝、卫星、蓝牙等)或其他连接技术可通信地耦合到网络120。网络120代表任何类型的通信网络,其包括数据和/或语音网络,并且可使用有线基础设施(例如,电缆、cat5、光纤电缆等)、无线基础设施(例如,wifi、rf、蜂窝、微波、卫星、蓝牙等)和/或其他连接技术来实施。

如图所示,语音控制装置106的存储器114还存储或以另外访问语音识别引擎116和连接模块128。连接模块128起到建立到服务器实例124(1)-(n)中一个的连接的作用。如图所示,连接模块128被预先配置来调用特定的vip地址130。装置106和其他装置的制造商可使用多个vip地址中的一个来配置每个装置,所述vip地址中的每一个映射到各自服务器实例的一个或多个ip地址。如下文所述,通过改变分配到客户端装置(如语音控制装置106)的vip地址,可平衡分配到服务器实例的负载。

如下文详细描述,连接模块128还包括虚拟信道模块132、计时器134和预先配置的时间延迟136。

为了创建与远程计算资源的连接(例如,当装置106通电时),连接模块128可调用预先配置的vip地址130,所述预配置的vip地址130对应于远程计算资源118的负载平衡服务138的服务器。负载平衡服务138起到通过路由连接请求到与每个vip地址相关联的不同的实例来将负载分配在服务器实例124(1)-(n)上的作用。如图所示,负载平衡服务138对应于一个或多个vip地址140,其包括vip地址130,并且还存储vip到ip映射142。vip到ip映射142指示哪些服务器实例ip地址对应于哪些vip(预先配置在客户端装置上,如装置106)。因此,当装置106发出使用vip地址130的连接请求时,负载平衡服务138识别哪些ip地址对应于这个vip地址130。服务138随后选择这些ip地址中的一个,并且将连接请求路由到对应的服务器实例,如在这个实例中的服务器实例124(n)。在这个实例中,尽管映射142指示服务器实例通过它们的ip地址来识别,但是在其他实施方式中,这些实例可通过它们的各自主机名称或通过在其他实施方案中的其他识别信息来识别。

如图所示,示例性服务器实例124(n)包括ip地址144和注册模块146。当装置106与服务器实例124(n)建立连接时,注册模块146可指示到装置定位服务148的这种连接。装置定位服务148包括装置标识符(did)到ip映射150,所述映射150映射哪些客户端装置连接到哪些服务器实例。此外,尽管在这个实例中,映射150指示服务器实例通过它们的ip地址来识别,但是在其他实施方式中,这些实例可由它们的各自主机名称或通过在其他实施方案中的其他识别信息来识别。

因此,当服务器实例具有待发送到特定的客户端装置的数据,但是不直接地连接到特定的客户端装置时,服务器实例可查找哪些服务器实例保持与客户端装置的连接并且可将这个数据提供到对应的实例。接收数据的服务器实例可依次将数据提供到特定的客户端装置。尽管这个实例描述服务器实例124(n)的注册模块146在装置定位服务148处注册这个信息,但是在其他实例中,负载平衡服务138或另一实体可将这个信息发送到装置定位服务148。

如图所示,服务器实例124(n)还包括虚拟信道模块152。一旦装置106已经与服务器实例124(n)建立这样的连接,虚拟信道模块132(在语音控制装置106上)和虚拟信道模块152就各自起到通过连接创建一个或多个虚拟信道的作用。例如,如果装置106产生音频信号(例如,基于由麦克风108检测的声音等),那么虚拟信道模块132可创建用于将音频信号发送到服务器实例124(n)的虚拟信道。类似地,如果服务器实例124(n)具有待发送到客户端装置的数据(例如,用于在扬声器110上输出的音频信号、控制装置106的部件的控制消息等),那么虚拟信道模块152可创建用于将这个数据发送到装置106的虚拟信道。

在一些实例中,可多路复用通过单个连接的多个虚拟信道发送的数据。例如,连接可实施在每帧或多帧的基础上,在通过虚拟信道发送数据之间重复的协议。例如,第一虚拟信道可在第一帧期间发送数据,第二虚拟信道可在第二帧期间发送数据,等等。

服务器实例124(n)还可包括连接模块154,所述连接模块154还包括计时器156。连接模块154起到保持到语音控制装置106(并且可能,同时到多个其他客户端装置)的连接的作用。回到语音控制装置106的计时器134,计时器134起到测量装置106保持连接到服务器实例的时间量、既没有从服务器实例124(n)接收数据也没有发送数据到服务器实例124(n)(从语音控制装置106)的时间量等的作用。在计时器134指示在阈值时间量内没有数据(或少于阈值量的数据)已经被发送或接收之后,连接模块128可切断与服务器实例124(n)的连接。此后,连接模块128可再次尝试创建连接,在尝试进行这个连接之前,等待由时间延迟136指示的时间量。可被预先配置用于装置106的时间延迟136可指示模块132等待一定量的时间,所述一定量的时间包括一定程度的随机性。例如,时间延迟136可指示在失去或切断与服务器实例的连接之后,模块132在一秒(加或减半秒)之后应首先尝试重新连接。如果那个尝试没有成功,那么时间延迟136可指示模块132应等待两秒(加或减一秒)。预先配置的随机性程度,以及因此时间延迟136可随着客户端装置而变化。通过以这种方法改变时间延迟,如果托管多个服务器实例的一个服务器离线(例如,由于维护、故障,等等),那么改变的时间延迟确保连接到托管在那个服务器上的服务器实例的每个客户端装置将不尝试在完全相同的时间重新连接到远程计算资源118,这可能在给定时刻导致不期望的负载。

连接模块154的计时器156可同时起到与计时器134相似的作用。例如,计时器156可测量既没有发送数据到语音控制装置106也没有从其接收数据的时间量。在阈值时间量之后,计时器156可指导连接模块154切断与装置106的连接。在一些实例中,计时器134可被设置来在计时器156之前切断连接,使得计时器156作为在连接模块128在经过阈值时间量(与计时器134相关联)流逝之后未成功切断连接的事件中的故障保护。例如,如果十四分钟之后没有发送也没有接收数据,那么连接模块128可被配置来切断连接,尽管如果十五分钟之后没有发送也没有接收数据并且客户端装置还没有切断连接,那么连接模块154可被配置来切断连接。当然,在其他实施方式中,本协议可被倒转。

图1另外示出可包括查找模块158的服务器实例124(n)。如上所述,在一些实例中,服务器实例124(n)可具有待发送到另一个客户端装置的数据,所述服务器实例124(n)没有连接到所述另一个客户端装置。查找模块158可起到查找对应于客户端装置的did的ip地址的作用,实例124(n)具有用于所述ip地址的数据。在确定来自映射150的这个信息之后,服务器实例124(n)可将数据提供到合适的服务器实例,所述服务器实例可依次将数据提供到客户端装置。

最后,图1示出示例性服务器实例124(n)包括一个或多个应用程序160。应用程序可能以任何数目的方式与客户端装置(如语音控制装置106)交互。例如,应用程序160可包括提供用于在装置106处输出提醒用户104执行特定任务(例如,买牛奶)的音频的提醒应用程序,发用于送在装置106处输出的音乐的应用程序,等等。在一些实例中,存储在特定的服务器实例上的应用程序利用查找模块158来确定特定的客户端装置与远程计算资源118的哪个服务器实例连接。由此,应用程序能够将某个内容(例如,提醒)提供到这个客户端装置。此外,尽管图1示出应用程序160驻留在服务器实例124(n)上,但是在其他实施方式中,应用程序160(以及其他应用程序)可另外地和/或可选择地驻留在其他服务器或第三方服务器上。

图2示出结构100的实例200的另外细节。在这个实例中,示例性结构200包括语音控制装置202(1)、202(2)、202(3)、…、202(r)。这些装置的每一个已被预先配置来通过调用特定的vip地址建立连接。例如,装置202(1)已被配置来调用vip地址204(1),装置202(2)已被配置来调用vip地址204(2),装置202(3)已被配置来调用vip地址204(3),以及装置202(r)已被配置来调用vip地址204(1)。另外,每个装置202(1)-(r)与各自的装置id(did)206(1),206(2)、…、206(r)相关联,所述装置id可包括装置的序列号等等。

如图所示,负载平衡服务138将每个vip地址204(1)-(q)映射到对应于各自的服务器实例210(1)、210(2)、210(3)、…、210(s)的一个或多个对应的ip地址208(1)、208(2)、208(3)、…、208(s)。负载平衡服务138还从客户端装置202(1)-(r)接收连接请求,这些请求定址到特定的vip地址。服务138随后将这个信息映射到对应的ip地址,并且选择将路由对其的请求的ip地址。在这个实例中,假定装置202(1)-(r)与其相关联的变化vip地址,客户端装置202(1)与服务器实例210(1)连接,客户端装置202(2)与服务器实例210(2)连接,客户端装置202(3)与服务器实例210(3)连接,并且客户端装置202(r)与服务器实例210(s)连接。如图所示并且如上文所述,在客户端装置与服务器实例建立连接之后,各自的服务器实例在装置定位服务148处存储所述关联的指示。

图3示出在语音控制装置202(1)与服务器实例210(1)之间的示例性连接300。如图所示,可通过这种单个连接300建立多个虚拟信道302(1)、302(2)、…、302(m)。装置202(1)可响应于识别装置具有待发送到服务器实例210(1)的数据建立虚拟信道。类似地,服务器实例210(1)可响应于识别其具有待发送到装置202(1)的数据建立虚拟信道。如上所述,连接300可实施多路复用发送到客户端装置并从其接收的数据的协议。在这个实例中,装置202(1)通过虚拟信道302(1)发送数据到服务器实例210(1),同时服务器实例210(1)通过虚拟信道302(2)和302(m)发送数据到装置202(1)时。尽管图1-3示出装置106通过负载平衡服务138连接到服务器实例,但是在连接300形成之后装置106可直接与服务器实例通信(即,可绕过服务器138)。另外,尽管一些实施方案在客户端装置与服务器实例之间实施单个连接,但是在其他实施方案中,可建立多个连接(例如,用于将tts提供到客户端装置的一个、用于将音乐提供到装置的一个、用于从装置上传音频信号的一个等)。

图4示出语音控制装置或其他客户端装置可实施的示例性过程400的流程图。本文所述的每个过程如逻辑流程图所示,所述每个过程的每个操作代表能够在硬件、软件或其组合中实施的操作序列。在软件的背景下,操作表示存储在一个或多个计算机可读介质上的计算机可执行指令,当所述计算机可执行指令由一个或多个处理器执行时,执行所叙述的操作。一般来说,计算机可执行指令包括执行特定功能或实施特定抽象数据类型的例行程序、程序、对象、部件、数据结构等。

计算机可读介质可包括非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质可包括硬盘、软盘、光盘、cd-rom、dvd、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、闪存存储器、磁卡或光卡、固态存储装置或适合于存储电子指令的其他类型的存储介质。另外,在一些实施方案中,计算机可读介质可包括瞬时计算机可读信号(以压缩或非压缩形式)。不管是否使用载体调剂,计算机可读信号的实例包括但不限于,计算机系统托管或运行计算机程序的信号,所述计算机程序可被配置来访问包括通过互联网或其他网络下载的信号。最后,不希望将描述操作的次序理解为限制性,并且任何数量的所描述的操作可能以任何次序和/或并行结合来实施所述过程。

过程400包括在402处,客户端装置使用存储在客户端装置上的vip地址与网络可访问平台的服务器实例建立连接。在成功地建立连接之后,在404处客户端装置可通过连接建立第一虚拟信道。在406处,客户端装置进行到通过第一虚拟信道将数据发送到服务器实例,并且在408处,可通过第二虚拟信道从服务器实例接收数据。

在410处,客户端装置可确定在阈值时间量内是否既没有发送也没有接收数据。如果否,则意味着在该时间量内至少一些数据已被发送或接收,那么在412处客户端装置保持与服务器实例的连接。如果是,然而(意味着既没有发送也没有接收数据),那么在414处客户端装置切断与服务器实例的连接。客户端随后装置进行到通过调用在装置配置上的vip地址重新建立连接。尽管图4描述用于切断在客户端装置和服务器实例之间的连接的一个实例,但是如上所述可出于各种其他原因切断这些连接。

图5描述远程计算资源118可实施的示例性过程500的流程图。这个过程500可由单个服务器或通过资源118的多个服务器执行。在502处,资源118从客户端装置接收请求以便与资源118建立连接。在504处,资源将请求路由到服务器实例以便与服务器实例创建连接。例如,可在特定的vip地址处接收请求,所述请求可被映射到一个或多个ip地址,在这之后可选择一个或多个地址的ip地址。随后可将请求路由到对应于所选择的ip地址的服务器实例。

在506处,资源118存储在客户端装置的did与服务器实例的ip地址之间的映射。另外,在508处资源(例如,连接的服务器实例)可建立第一虚拟信道。在510处,资源(例如,资源实施的协议)可在通过第一虚拟信道发送数据与通过第二虚拟信道从客户端装置接收数据之间多路复用。

在512处,资源可确定在阈值时间量内是否还没有发送也没有接收数据。如果否,则意味着在这个时间量内至少一些数据已被发送或接收,随后在514处,资源(例如,服务器实例)保持与客户端装置的连接。

另外,以及如上所述,应用程序可具有待发送到客户端装置的数据。如果是,那么在516处,应用程序参考在did与ip地址之间的映射,以便识别客户端装置连接到的ip地址。在518处,应用程序随后将数据发送到与所识别的ip地址相关联的服务器实例,所述服务器实例依次将这个数据发送到合适的客户端装置。所描述的过程500还示出假定在512处一些数据被确定已在客户端装置与服务器实例之间被发送或接收,在520处,服务器实例可保持与其连接至的客户端装置的连接。

然而,如果在512处服务器实例确定在阈值时间量内没有数据被发送或接收,并且如果客户端装置保持连接到所述实例,那么在522处服务器实例切断与客户端装置的连接。此后一段时间,远程计算资源可再次从相同的客户端装置或不同的客户端装置接收请求以便与资源建立连接。此外,尽管图5描述用于切断在客户端装置和服务器实例之间的连接的一个实例,但是如上所述,可出于各种其他原因切断这些连接。

图6更详细地示出语音控制装置106的一个实施方式的选择的功能组件。一般来说,语音控制装置106可被实施作为独立装置,所述独立装置在功能能力(具有有限的输入/输出部件、存储器)和处理能力方面相对简单。例如,语音控制装置106既没有键盘、按键或在一些实施方式中的其他形式的机械输入,它也没有为促进可视显示和用户触觉输入的显示器和触摸屏。相反,可实施装置106,其具有接收和输出音频的能力、网络接口(基于无线或有线)、电源和有限的处理/存储能力。

在示出的实施方式中,语音控制装置106包括处理器112和存储器114。存储器114可包括计算机可读存储介质(“crsm”),所述计算机可读存储介质可为可由处理器112访问以便执行存储在存储器上的指令的任何可用的物理介质。在一种基本的实施方式中,crsm可包括随机存取存储器(“ram”)和闪存存储器。在其他实施方式中,crsm可包括但不限于,只读存储器(“rom”)、电可擦除可编程只读存储器(“eeprom”)、或可用于存储所需信息并且可由处理器112访问的任何其他介质。

语音控制装置106包括麦克风单元,所述麦克风单元包括一个或多个麦克风108以便接收音频输入(如用户语音输入)。装置106还包括扬声器单元,所述扬声器单元包括一个或多个扬声器110以便输出音频声音。将一个或多个编解码器602耦合到麦克风108和扬声器110,以便编码和/或解码音频信号。编解码器可在模拟格式与数字格式之间转换音频数据。用户可通过对装置106讲话来与其交互,并且麦克风108捕获声音以及产生包括用户语音的音频信号。编解码器602编码用户语音并且将那个音频数据传输到其他组件。装置106可通过扬声器110发出可听的语句来对用户进行反向通信。以这种方式,用户仅通过语音来与语音控制装置交互,而不使用对其他类型的装置常见的键盘或显示器。

在示出的实例中,语音控制装置106包括耦合到一个或多个天线606的一个或多个无线接口604以便促进无线连接到网络。无线接口604可实施各种无线技术中的一个或多个,如wifi、蓝牙、rf等等。

一个或多个装置接口608(例如,usb、宽带连接等)可被进一步设置成装置106的一部分,以便促进有线连接到网络,或与其他无线网络通信的插式网络装置。一个或多个功率单元610被进一步设置以便将功率分配到装置106上的各种组件。

语音控制装置106被设计成以从用户接收语音命令(例如,单词、短语、句子等)以及输出可听的反馈到用户的形式支持与用户的音频交互。因此,在示出的实施方式中,没有或几乎没有触觉输入装置,如导航按钮、按键、操纵杆、键盘、触摸屏,等等。也没有用于文本或图形输出的显示器。在一个实施方式中,语音控制装置106可包括非输入控制机制,如用于增加/减少音量的基本音量控制按钮以及电源和重启按钮。也可以有一个或多个简单的发光元件(例如,围绕装置的顶部周围的led)以便指示如当电源开着时的状态或指示何时命令被接收。但在其他方面,装置106不使用或者在一些实例中需要使用任何输入装置或显示器。

几个模块(如指令、数据存储等)可存储在存数器114内并且被配置成在处理器112上执行。操作系统模块612被配置成在装置106内管理硬件和服务(例如,无线单元、编解码器等)并且耦合到装置106以利于其他模块。另外,存储器114可包括语音识别引擎116和连接模块128。

虽然已用特定于结构特征的语言描述了主题,但是应当理解,所附权利要求中定义的主题不必限于所描述的具体特征。相反地,具体特征作为实施权利要求的说明性形式来公开。

条款:

1.一种系统,其包括:

一个或多个处理器;以及

存储计算机可执行指令的一个或多个计算机可读介质,当所述计算机可执行指令由所述一个或多个处理器执行时,促使所述一个或多个处理器执行包括以下各项的动作:

从客户端装置接收第一请求以在所述客户端装置与服务器实例之间建立连接;

至少部分地响应于接收所述第一请求,在所述客户端装置与多个服务器实例的第一服务器实例之间建立连接;

至少部分地基于在一段时间内在所述客户端装置与所述第一服务器实例之间传输的数据量断开所述连接;以及

至少部分地响应于所述断开,从所述客户端装置接收第二请求以与服务器实例建立连接。

2.如条款1所述的系统,所述动作还包括,在所述断开之前,在通过所述连接的第一信道从所述客户端装置发送数据到第一所述服务器实例与在所述客户端装置处通过所述连接的第二信道从所述第一服务器实例接收数据之间重复。

3.如条款1所述的系统,所述动作还包括存储所述客户端装置已与所述第一服务器实例建立所述连接的指示,所述指示包括与所述客户端装置相关联的装置标识符(did)和所述第一服务器实例的标识符。

4.如条款1所述的系统,其中至少部分地基于在一段时间内在所述客户端装置和所述第一服务器实例之间传输的数据量断开所述连接包括当在15分钟内在所述客户端装置与所述第一服务器实例之间还没有数据传输时断开所述连接。

5.一种设备,其包括:

麦克风单元,所述麦克风单元检测声音并基于所述声音产生第一音频信号;

扬声器,所述扬声器输出对应于从一个或多个网络可访问计算资源接收的第二音频信号的声音;

一个或多个处理器;以及

存储器,所述存储器存储地址和计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器执行时,促使所述一个或多个处理器执行包括以下各项的动作:

使用所述地址在所述设备与所述一个或多个网络可访问计算资源之间建立连接;

经由所述连接将所述第一音频信号发送到所述一个或多个网络可访问计算资源;

经由所述连接从所述一个或多个网络可访问计算资源接收所述第二音频信号;以及

至少部分地基于在一段时间内从所述设备传输到所述一个或多个网络可访问计算资源的数据量或在一段时间内从所述一个或多个网络可访问计算资源传输到所述设备的数据量中的至少一个切断所述连接。

6.如条款5所述的设备,其中所述第一音频信号的所述发送和第二音频信号的所述接收包括在通过所述连接的第一信道发送所述第一音频信号的一个或多个帧与通过所述连接的第二信道接收所述第二音频信号的一个或多个帧之间重复。

7.如条款5所述的设备,其中所述地址包括映射到所述一个或多个网络可访问计算资源的多个服务器实例的虚拟互联网协议(vip)地址。

8.如条款5所述的设备,其中所述连接是第一连接,并且所述切断包括:

确定在一段时间内在所述设备与所述一个或多个网络可访问计算资源之间没有数据被传输;

切断所述第一连接;以及

使用所述地址在所述设备与所述一个或多个网络可访问计算资源之间建立第二连接。

9.一个或多个计算机可读介质,其存储计算机可执行指令,当所述计算机可执行指令由一个或多个处理器执行时,促使所述一个或多个处理器执行包括以下各项的动作:

在客户端装置与服务器实例之间建立连接;

在所述客户端装置的麦克风处产生音频信号,所述音频信号包括来自用户的语音命令;

将所述音频信号提供到所述服务器实例;

从所述服务器实例接收对所述语音命令的响应;

经由所述客户端装置的扬声器输出所述响应;

断开所述连接并且至少部分地基于所述连接的属性重新建立后续连接。

10.如条款9所述的一个或多个计算机可读介质,其中所述连接的所述属性包括:在一段时间内在所述客户端装置与所述服务器实例之间传输的数据量、在一段时间内从所述客户端装置传输到所述服务器实例的数据量、在一段时间内从所述服务器实例传输到所述客户端装置的数据量、所述连接的持续时间、或所述连接的带宽。

11.如条款9所述的一个或多个计算机可读介质,所述动作还包括在通过所述连接的第一信道将数据从所述客户端装置发送到所述服务器实例与在所述客户端装置处通过所述连接的第二信道从所述服务器实例接收数据之间重复。

12.如条款9所述的一个或多个计算机可读介质,其中所述连接的所述建立至少部分地响应于所述客户端装置的通电而发生。

13.如条款9所述的一个或多个计算机可读介质,其中所述连接的所述建立包括使用虚拟互联网协议(vip)地址,所述vip地址对应在所述服务器实例与一个或多个其他服务器实例之间平衡负载的负载平衡服务。

14.如条款9所述的一个或多个计算机可读介质,其中:

所述服务器实例形成网络可访问计算平台的一部分;以及

所述连接的所述建立不管所述客户端装置是否具有待发送到所述网络可访问计算平台的数据而发生。

15.如条款9所述的一个或多个计算机可读介质,所述动作还包括在通过所述连接的第一信道从所述客户端装置发送数据到所述服务器实例与在所述客户端装置处通过所述连接的第二信道从所述服务器实例接收数据之间重复,并且其中通过所述第一信道从所述客户端装置的所述数据的所述发送包括发送基于在环境内检测的声音由所述客户端装置产生的音频信号,所述客户端装置驻留在所述环境内。

16.如条款9所述的一个或多个计算机可读介质,其中所述重新建立包括在所述断开后的一定时间量尝试重新建立后续连接,所述一定时间量包括随机性的程度。

17.一个或多个计算装置,其包括:

一个或多个处理器;以及

存储计算机可执行指令的一个或多个计算机可读介质,当所述计算机可执行指令由所述一个或多个处理器执行时,促使所述一个或多个处理器执行包括以下各项的动作:

从客户端装置接收请求以与服务器实例建立连接;

路由所述请求,以使得所述客户端装置与多个服务器实例的第一服务器实例建立连接;以及

基于至少部分地响应于所述连接的属性、所述第一服务器实例的属性或所述客户端装置的属性切断所述连接。

18.如条款17所述的一个或多个计算装置,其中所述连接的所述属性包括在一段时间内从所述第一服务器实例发送到所述客户端装置或从所述客户端装置由所述第一服务器实例接收的数据量。

19.如条款17所述的一个或多个计算装置,其中所述第一服务器实例的所述属性包括托管所述第一服务器实例的物理服务器关闭的指示。

20.如条款17所述的一个或多个计算装置,其中所述请求由负载平衡服务接收,所述负载平衡服务与由所述客户端装置调用的虚拟互联网协议(vip)地址相关联。

21.如条款17所述的一个或多个计算装置,其中所述客户端装置的所述属性是所述客户端装置未被授权连接到所述第一服务器实例。

22.如条款17所述的一个或多个计算装置,所述动作还包括存储所述客户端装置已与所述第一服务器实例建立所述连接的指示,所述指示包括与所述客户端装置相关联的装置标识符(did)以及与所述第一服务器实例相关联的标识符。

23.如条款22所述的一个或多个计算装置,所述动作还包括:

通过计算装置访问所述指示以获得所述第一服务器实例的标识符;

通过所述计算装置发送数据到所述第一服务器实例,所述数据旨在用于所述客户端装置;以及

通过所述第一服务器实例发送所述数据到所述客户端装置。

24.如条款23所述的一个或多个计算装置,其中所述数据包括用于在所述客户端装置的扬声器上输出的音频信号。

25.如条款23所述的一个或多个计算装置,其中所述数据包括指导所述客户端装置执行特定操作的控制消息。

26.如条款17所述的一个或多个计算装置,所述动作还包括通过所述服务器实例建立所述连接的第一信道,通过所述第一信道将数据发送到所述客户端装置并且在所述服务器实例处以及通过所述连接的第二信道从所述客户端装置接收数据。

27.如条款26所述的一个或多个计算装置,其中所述第一信道和所述第二信道被多路复用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1