到云计算环境中的工作空间的低延迟连接的制作方法

文档序号:12287755阅读:398来源:国知局
到云计算环境中的工作空间的低延迟连接的制作方法与工艺

许多公司和其他组织操作计算机网络,所述计算机网络使众多计算系统互连以支持它们的操作,诸如其中计算系统位于同一位置(例如,作为本地网络的一部分)或者替代地位于多个不同的地理位置中(例如,经由一个或多个私有或公共中间网络加以连接)。例如,容纳显著数量的互连的计算系统的数据中心已变得司空见惯,诸如由单个组织操作并用于所述组织的私有数据中心和由实体进行商业运营来向顾客或客户端提供计算资源的公共数据中心。一些公共数据中心运营商为由各种客户端所拥有的硬件提供网络访问、电力以及安全安装设施,而其他公共数据中心运营商提供还包括可供其客户端使用的硬件资源的“全方位服务”设施。然而,随着典型数据中心规模和范围的不断扩大,供应、操纵和管理物理计算资源的任务变得越来越复杂。

用于商用硬件的虚拟化技术的出现已针对管理大规模计算资源而为具有多样化需求的许多客户端提供益处,从而允许各种计算资源有效且安全地由多个客户端共享。例如,虚拟化技术可通过为每个用户提供由单个物理计算机器托管的一个或多个虚拟机而允许所述单个物理计算机器在多个用户之间共享,其中每个此类虚拟机是充当不同逻辑计算系统的软件模拟,所述逻辑计算系统为用户提供以为自己是给定硬件计算资源的唯一操作者和管理员的错觉,同时还提供各种虚拟机之间的应用隔离和安全性。此外,一些虚拟化技术能够提供跨越两个或更多个物理资源的虚拟资源,诸如具有跨越多个不同物理计算系统的多个虚拟处理器的单个虚拟机。利用虚拟化,单个物理计算装置可按照动态方式创建、维持或删除虚拟机。反过来,用户可从数据中心请求计算机资源并在“按需”基础上或至少在“按请求”基础上被提供变化数量的虚拟机资源。在一些系统中,虚拟化计算资源可用于实现虚拟桌面。

附图说明

图1为示出根据至少一些实施方案的示例性提供者网络环境的方框图。

图2为示出根据至少一些实施方案的示例性提供者网络的方框图,所述提供者网络向客户端提供存储虚拟化服务和硬件虚拟化服务。

图3为示出根据至少一些实施方案的联网计算环境的方框图,所述联网计算环境包括与服务提供者计算机网络通信的客户端计算装置。

图4为示出根据至少一些实施方案的示例性服务提供者数据中心的方框图。

图5为示出根据至少一些实施方案的向客户端提供私有网络的示例性提供者网络的方框图。

图6为示出根据至少一些实施方案的示例性联网环境的方框图,在所述示例性联网环境中向客户端提供虚拟桌面服务。

图7A为示出根据至少一些实施方案的示例性联网环境的方框图,在所述示例性联网环境中,位于存在点位置处的网关部件在虚拟桌面服务的虚拟私有云内操作。

图7B为示出根据至少一些实施方案的示例性联网环境的方框图,在所述示例性联网环境中,位于存在点位置处的一些网关部件在虚拟桌面服务的虚拟私有云内操作并且其他在对等VPC内操作。

图8为示出方法的一个实施方案的流程图,所述方法用于通过位于存在点位置处的网关部件向客户端提供虚拟桌面服务。

图9为示出方法的一个实施方案的流程图,所述方法用于通过位于存在点位置处的网关部件,管理工作空间提供者与客户端之间的交互视频流量。

图10为示出方法的一个实施方案的流程图,所述方法用于通过位于存在点位置处的网关部件,使客户端连接到工作空间服务并且与工作空间服务通信。

图11为示出根据不同实施方案的示例性计算机系统方框图,所述示例性计算机系统实现本文所描述的一些或所有技术。

虽然在本文中通过对若干实施方案和示意性附图举例的方式描述了实施方案,但本领域的那些技术人员应认识到,实施方案不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非意图将实施方案限于所公开的特定形式,而相反,其意图在于涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等效物和替代方案。本文中使用的标题都仅用于组织目的,并且并不意图用于限制本说明书或权利要求书的范围。贯穿本申请所使用的词语“可以”是在许可的意义上(即意指具有可能性)、而非强制的意义上(即意指必须)使用。类似地,词语“包括(include/including/includes)”表示包括但不限于。

具体实施方式

用于提供到系统中的工作空间(例如,虚拟桌面实例)的低延迟连接(或通信通道)的系统和方法的各种实施方案在本文中描述,所述系统向客户端提供虚拟化计算资源。提供虚拟计算服务的计算系统可产生和管理在客户端计算装置与托管在服务提供者的网络上的虚拟桌面实例(工作空间)之间的远程计算会话。例如,系统可实现工作空间服务,交互视频流通过所述工作空间服务递送到终端用户(在其自身计算装置上)。工作空间服务性能的一大部分(例如,在递送交互视频流中的延迟和/或所递送的视频流的质量)可取决于提供连接的网络(或网络系列),交互视频流通过所述连接递送到终端用户(例如,从托管在服务提供者的网络上的虚拟计算资源实例一直到坐落在终端用户的办公室中的客户端装置的通信通道)。一般来说,交互视频流的递送可以是非常时间敏感的,因为任何种类的不利网络影响可影响针对终端用户的连接的质量。在一些实施方案中,本文所描述的系统和方法可最小化该路径的部分,所述部分横越公共网络(例如,公共互联网)并且因此将交互视频流暴露到相对低质量网络,工作空间服务对所述相对低质量网络几乎没有控制。

在一些实施方案中,本文所描述的系统可实现用于工作空间服务的虚拟私有云(VPC),其向外延伸到在多个地理分布的存在点(POP)位置处的安全网关部件或访问网关部件(在本文中有时被称为“网关部件”或简单地称为“网关”)。换言之,这些系统可包括网关部件,所述网关部件在靠近终端用户的客户端装置物理定位的计算节点上执行,同时在操作工作空间服务的VPC内操作(并且在工作空间服务的控制下保持)。在一些实施方案中,此方法可通过使用安全、可靠、低延迟、高带宽、低损耗和低抖动通信通道来提供高质量连接和终端用户体验,所述通信通道用于在切换到网关部件与客户端装置之间的潜在较不可靠、较高延迟公共网络连接之前,将虚拟桌面会话的交互视频流传送直到尽可能靠近客户端装置的点。注意,术语“连接”和“通信通道”在以下的描述中可在某种程度上可互换地使用。然而,在各种实施方案中,在虚拟桌面实例与客户端装置之间的通过网关部件的连接或通信通道可能实现或可能未实现(或依赖)高级别信号交换协议,并且不限于特定类型的联网部件或在联网部件之间的特定类型的虚拟连接或物理连接。

在一些实施方案中,服务提供者的联网环境可包括多个虚拟桌面实例,所述多个虚拟桌面实例中的每一个托管在共同实现虚拟桌面(工作空间)服务的多个计算节点中的相应一个上。这些计算节点可定位在多个可用性区中(例如,在不同建筑物、城市、国家或区域中)的数据中心内。在一些实施方案中,此联网环境可包括多个网关部件,所述多个网关部件中的每一个托管在可用性区中的一个的POP位置处的相应计算节点上。如在本文中更详细描述的,虚拟桌面服务的这些网关部件和管理部件可在虚拟桌面服务的虚拟私有云内彼此互操作,并且可通过虚拟私有网络彼此通信。在一些实施方案中,可使用托管在POP位置处的计算节点上的虚拟化资源实例来实现网关部件。

在一些实施方案中,响应于对虚拟桌面会话的客户端请求,服务可将虚拟计算资源实例配置成虚拟桌面实例(其上实现虚拟桌面会话)。此虚拟计算资源实例可以是多个虚拟资源实例中的一个,所述多个虚拟资源实例在客户端的虚拟私有云内操作(或参与),所述多个虚拟资源实例代表所述客户端被例示和/或配置(例如,代表其从客户端装置接收请求的客户端)。一个或多个其他虚拟计算资源实例可被配置来实现服务的管理部件。

响应于对虚拟桌面会话的客户端请求,服务也可建立在虚拟计算资源实例与位于客户端装置附近的POP位置处的网关部件之间的安全、可靠、低延迟连接(例如,通过虚拟私有网络),以用于会话的双向交互视频流的传送。例如,交互视频流可包括从虚拟桌面实例传送到客户端装置的像素流、以及从客户端装置传送到虚拟桌面实例的输入,所述输入表示与虚拟桌面实例的用户交互。在一些实施方案中,交互视频流可包括命令,所述命令从虚拟桌面实例传送到客户端装置,并且表示指导客户端装置产生和/或呈现用于通过客户端装置显示的像素(例如,代替像素流或除像素流之外)的指令。如在本文中更详细描述的,网关部件可以是托管在各种POP位置处的多个此类网关部件中的一个,并且可至少部分由于其邻近客户端被选择用于在提供会话中使用。例如,网关部件可以是托管在与客户端装置(从其接收请求)相同的城市、国家或区域中的POP位置处的多个网关部件中的一个。注意,网关部件被托管在其中的可用性区可不同于用于会话的资源实例位于其中的可用性区。在一些实施方案中,服务的管理部件(例如,在服务的VPC内操作的管理部件)可自动选择网关部件,而在其他实施方案中服务的客户端部分可选择网关部件。一旦服务已经建立在虚拟计算资源实例与网关部件之间的连接(并且在客户端装置与网关部件之间建立连接),服务可在虚拟桌面会话上开始虚拟桌面会话并且发起用于会话的交互视频流的传送。

在不同实施方案中,本文所描述的系统和方法可在网络环境上实现,或通过网络环境内的一个或多个计算系统实现。在图11中示出在其上可实现用于固定在本文所描述的云计算环境中的工作空间的技术的实施方案的示例性计算机系统。用于实现这些技术的各种系统和方法的实施方案通常在服务提供者的背景下在本文中描述,所述服务提供者通过中间网络(诸如互联网)向客户端提供虚拟化资源(例如,虚拟化计算和存储资源),所述虚拟化资源在服务提供者的提供者网络上实现。图1-7和图11(以及其对应描述)示出和描述示例性环境,在所述示例性环境中,本文所描述的系统和方法的实施方案可实现并且不旨在是限制的。在至少一些实施方案中,通过提供者网络向服务提供者的客户端提供的资源中的至少一些可以是在与其他客户端共享的多租户硬件上和/或专用于特定客户端的硬件上实现的虚拟化计算资源。每个虚拟化计算资源可称为资源实例。资源实例可例如租借或租赁给服务提供者的客户端。例如,服务提供者的客户端可经由对服务的API访问提供者网络的一个或多个服务,以便获得和配置资源实例以及建立和管理包括资源实例的虚拟网络配置(例如,虚拟化私有网络)。

在一些实施方案中,资源实例可例如根据硬件虚拟化技术来实现,所述硬件虚拟化技术使得多个操作系统能够同时在主计算机上(即,作为主机上的虚拟机(VM))运行。主机上的管理程序或虚拟机监视器(VMM)可通过虚拟平台呈现主机上的VM并且监测VM的执行。每个VM可设置有一个或多个私有IP地址;主机上的VMM可以知道主机上的VM的私有IP地址。采用这种硬件虚拟化技术的系统的示例在图4中示出并且在以下详细描述。

注意,在各种实施方案中,本文所描述的用于提供虚拟计算服务的系统可跨多个“可用性区”部署,所述“可用性区”的每个可包括其自身物理不同的独立基础设施,在所述基础设施上实现一系列计算节点。在一些实施方案中,每个可用性区可驻留在不同地理位置或区域中,而在其他实施方案中,多个可用性区可驻留在相同地理位置或区域中。

示例性提供者网络环境

这个部分描述了其中可实现如本文所述的方法的实施方案的示例性提供者网络环境。然而,这些示例性提供者网络环境并非旨在进行限制。在各种实施方案中,在这些提供者网络环境中,服务提供者可托管代表顾客的可以被终端用户访问的虚拟化资源实例。例如,与代表其托管虚拟化资源实例的顾客相关联的终端用户(例如,相同组织或企业的成员)可以能够使用客户端装置上的客户端应用来访问虚拟化资源实例。在一些实施方案中,虚拟化资源实例可被配置来实现虚拟桌面实例。

图1示出根据至少一些实施方案的示例性提供者网络环境。提供者网络100可通过一个或多个虚拟化服务110向客户端提供资源虚拟化,所述一个或多个虚拟化服务110允许客户端购买、租借或以其他方式获得在一个或多个数据中心中的提供者网络或多个提供者网络内的装置上实现的虚拟化资源(包括但不限于计算和存储资源)的实例112。私有IP地址116可与资源实例112相关联;私有IP地址是提供者网络100上的资源实例112的内部网络地址。在一些实施方案中,提供者网络100还可提供客户端可从提供者100获得的公共IP地址114和/或公共IP地址范围(例如,第四版互联网协议(IPv4)地址或第六版互联网协议(IPv6)地址)。

常规地,提供者网络100通过虚拟化服务110可允许服务提供者的客户端(例如,操作客户端网络150A、150B或150C的客户端,所述客户端网络中的每一个可包括一个或多个客户端装置152)动态地使指派或分配给客户端的至少一些公共IP地址114与指派给客户端的特定资源实例112相关联。提供者网络100还可允许客户端将先前映射到分配给客户端的一个虚拟化计算资源实例112的公共IP地址114重新映射到同样分配给客户端的另一个虚拟化计算资源实例112。例如,使用由服务提供者提供的虚拟化计算资源实例112和公共IP地址114,服务提供者的客户端(诸如客户端网络150A的操作者)可实现客户端特定的应用并且将客户端的应用呈现在中间网络140(诸如互联网)上。中间网络140上的其他网络实体120然后可产生到由客户端网络150A发布的目的地公共IP地址114的流量;流量路由到服务提供者数据中心,并且在数据中心处通过网络底层路由到虚拟化计算资源实例112的当前映射到目的地公共IP地址114的私有IP地址116。类似地,来自虚拟化计算资源实例112的响应流量可通过网络底层路由回到中间网络140上,到源实体120。

如本文所使用的私有IP地址是指提供者网络中的资源实例的内部网络地址。私有IP地址只可在提供者网络内路由。源于提供者网络外部的网络流量不直接路由至私有IP地址;替代地,流量使用映射至资源实例的公共IP地址。提供者网络可包括提供网络地址转换(NAT)或类似功能以执行从公共IP地址到私有IP地址并且反之亦然的映射的网络装置或设备。

如本文使用,公众IP地址是由服务提供者或客户端分配至资源实例的互联网可路由网络地址。路由至公共IP地址的流量例如经由1:1网络地址转换(NAT)来转换,并且转发至资源实例的相应私有IP地址。

一些公共IP地址可由提供者网络基础设施指派给特定资源实例;这些公共IP地址可称为标准公共IP地址或简单地称为标准IP地址。在至少一些实施方案中,将资源实例的标准IP地址映射至私有IP地址是所有资源实例类型的默认启动配置。

至少一些公共IP地址可被分配给提供者网络100的客户端或由其获得;客户端然后可将其被分配的公共IP地址指派给分配给客户端的特定资源实例。这些公共IP地址可称为客户端公共IP地址或简单地称为客户端IP地址。替代如标准IP地址的情况下那样由提供者网络100指派给资源实例,客户端IP地址可由客户端通过例如由服务提供者提供的API指派给资源实例。不像标准IP地址,客户端IP地址可以被分配给客户端账户并且由相应客户端根据需要或希望重新映射到其他资源实例。在一些实施方案中,客户端IP地址与客户端的账户而不是特定资源实例相关联,并且客户端控制所述IP地址,直到客户端选择释放它为止。不像常规静态IP地址,客户端IP地址可允许客户端通过将客户端的公共IP地址重新映射到与客户端的账户相关联的任何资源实例来屏蔽资源实例或可用性区故障。客户端IP地址例如可使得客户端能够通过将客户端IP地址重新映射到替换资源实例来解决客户端的资源实例或软件的问题。

还应注意,在一些实施方案中,经由虚拟化服务110使其对于客户端(例如,客户端装置152)可用的资源实例112可包括多个网络接口。例如,至少一些虚拟化计算资源实例(包括被配置来实现虚拟桌面实例的一些)可包括用于与客户端网络150的各种部件通信的一个网络接口、以及用于与提供者网络100外部的另一个网络(未示出)上的资源或其他网络实体通信的另一个网络接口。

图2为根据至少一些实施方案的另一个示例性提供者网络环境的方框图,所述提供者网络环境向客户端提供存储虚拟化服务和硬件虚拟化服务。在此示例中,硬件虚拟化服务220向客户端提供多个计算资源224(例如,VM)。计算资源224可例如租借或租赁给提供者网络200的客户端(例如,实现客户端网络250的客户端)。每个计算资源224可设置有一个或多个私有IP地址。提供者网络200可被配置来将分组从计算资源224的私有IP地址路由到公共互联网目的地,以及从公共互联网源路由到计算资源224。

提供者网络200可使得例如通过本地网络256联接到中间网络240的客户端网络250能够通过联接到中间网络240并联接到提供者网络200的硬件虚拟化服务220实现虚拟计算系统292。在一些实施方案中,硬件虚拟化服务220可提供一个或多个API 202(例如,web服务接口),通过API 202,客户端网络250可以(例如)通过控制台294访问由硬件虚拟化服务220提供的功能。在至少一些实施方案中,在提供者网络200处,客户端网络250处的每个虚拟计算系统292可对应于租赁、租借或以其他方式提供给客户端网络250的计算资源224。

客户端可从虚拟计算系统292的实例和/或另一个客户端装置290或控制台294(例如)通过一个或多个API 202访问存储虚拟化服务210的功能,以访问来自由提供者网络200提供的虚拟数据存储216的数据以及将数据存储到虚拟数据存储216。在一些实施方案中,可在客户端网络250处提供虚拟化数据存储网关(未示出),所述虚拟化数据存储网关可本地高速缓存(例如)频繁被访问的至少一些数据或重要数据,并且可通过一个或多个通信通道与虚拟化数据存储服务210通信,以从本地高速缓存上传新的或修改的数据,使得数据的主存储(虚拟化数据存储216)得以维持。在至少一些实施方案中,用户可通过虚拟计算系统292和/或在另一个客户端装置290上安装并访问虚拟数据存储216的一个或多个存储卷218,所述一个或多个存储卷218中的每一个作为本地虚拟化存储装置298呈现给用户。

虽然图2中未示出,但是还可通过API 202从提供者网络200内的资源实例访问虚拟化服务。例如,客户端、设施服务提供者或其他实体可通过API 202从提供者网络200上的相应私有网络内部访问虚拟化服务,以请求分配私有网络内或另一个私有网络内的一个或多个资源实例。注意,在一些实施方案中,硬件虚拟化服务220可被配置来提供已经被配置来实现虚拟桌面实例的计算资源224,所述虚拟桌面实例可在用户看来像本地桌面(通过虚拟计算系统292实现)。还应注意,在一些实施方案中,经由硬件虚拟化服务220使其对于客户端可用的计算资源224可包括多个网络接口。例如,它们的至少一些可包括用于与客户端网络250的各种部件通信的一个网络接口、以及用于与提供者网络200外部的另一个网络(未示出)上的计算资源或其他网络实体通信的另一个网络接口。

在一些实施方案中,服务提供者网络的各种部件可被配置用于产生和管理在客户端计算装置与程序执行服务(PES)平台的一个或多个远程数据中心计算机所托管的虚拟桌面实例之间的远程计算会话。许多数据中心可以组织为单个PES平台的一部分,所述PES平台可以促进PES的顾客对数据中心的资源的利用。在一些实施方案中,PES可包括几百个或几千个数据中心计算机。例如,在一些实施方案中,客户端计算装置可在一个或多个远程计算会话期间访问虚拟桌面实例,并且虚拟桌面实例可给用户提供客户端桌面环境的所有能力,但其中集中供应客户端所访问的服务。

在一些实施方案中,用户经由客户端计算装置可传输请求以便加载诸如远程计算应用的应用。在接收请求之后,客户端计算装置可与PES平台通信以便开始远程计算会话。在一个实施方案中,在客户端计算装置与PES平台之间的通信可包括登录信息。在其他实施方案中,通信还可包括信息识别资源使用信息、处理要求、或有关客户端计算装置的用户的远程计算会话的持续时间或条件的规则。客户端计算装置可另外传送关于装置状态的各种信息,包括但不限于,装置资源(例如,处理能力、存储器、存储装置、网络使用等)的当前或未来可用性。使用所接收的信息,PES平台可识别一个或多个虚拟桌面实例用于在一个或多个远程计算会话中执行。在一个示例中,PES平台可例示或致使已经例示在数据中心计算机上的虚拟机实例,并且虚拟机实例可包括操作系统。客户端计算装置可随后与虚拟机建立远程计算会话,操作系统的用户接口(例如,操作系统的输出,诸如图形用户接口、声音等)可经由虚拟机实例或虚拟桌面实例的特定网络接口发送到客户端计算装置,并且向用户呈现(例如,图形用户接口可在客户端计算装置的显示器上呈现)。操作系统可使用与用户相关联的并且存储在PES可访问的桌面存储上的桌面配置文件,以便通过设置桌面背景、屏幕保护、桌面布局、指针优选设置、声音设置等来配置用于用户的虚拟桌面实例。诸如鼠标和键盘活动的用户输入可随后被发送到虚拟机(经由虚拟机实例或虚拟桌面实例的特定网络接口),并且注入到操作系统中,好像用户直接在虚拟机处执行所述活动。

在一些实施方案中,PES平台可在远程计算会话期间接收或产生数据,所述数据与客户端计算装置和所述客户端计算装置上的虚拟桌面实例的交互相关联。数据可包括用户数据和优选设置、文件等。在接收数据之后,PES平台可将数据保存到与虚拟桌面实例相关联的桌面存储。在一些实施方案中,桌面存储可在卷上或在另一个逻辑块存储装置上实现。在一些实施方案中,PES可创建数据的备份副本,或另外将数据存储到中央存储库。保存的数据可随后用于恢复由于故障(诸如虚拟桌面实例、托管虚拟桌面实例的服务器、网络等的故障)已经中断的远程计算会话。通过保存用户数据,PES平台可确保在对客户端计算装置用户的最小延时和破坏的情况下,远程计算会话的重新建立发生。

在一些实施方案中,所提供的虚拟桌面实例可根据在PES的用户配置文件存储处存储的用户配置文件来配置。虚拟桌面实例的配置也可根据实例的监测使用来调整。在一些实施方案中,用户配置文件可由与控制用户的使用的实体相关联的管理员设置。用户配置文件可指示与执行一个或多个虚拟桌面实例的PES计算机相关联的各种存储器和处理要求,以及对虚拟桌面实例的要求。例如,用户配置文件可指示在使用虚拟桌面实例时给予用户对其访问的程序。用户配置文件还可指示与远程计算会话相关联的最大时间或成本。PES可在放置和配置虚拟桌面实例时,将用户的用户配置文件考虑在内。此外,还可基于用户与虚拟桌面随时间的交互来调整放置决定和配置决定。

图3为示出示例性联网计算环境300的方框图,所述示例性联网计算环境300包括通过通信网络304与服务提供者计算机网络305通信的客户端计算装置306。客户端计算装置306可用于向用户提供对远程操作系统和应用的访问。在各种实施方案中,客户端计算装置306可以对应于各种各样的计算装置,包括个人计算装置、膝上型计算装置、手持式计算装置、终端计算装置、移动装置(例如,移动电话、平板计算装置、电子书阅读器等)、无线装置、各种电子装置和设备等。在一些实施方案中,客户端计算装置306包括用于通过通信网络304(诸如广域网或局域网)建立通信的必要硬件和软件部件。例如,客户端计算装置306可以配备有促进经由互联网或内部网络进行通信的联网设备和浏览器软件应用。客户端计算装置306可以具有不同的本地计算资源,诸如中央处理单元和架构、存储器、大容量存储装置、图形处理单元、通信网络可用性和带宽等。

在一个实施方案中,客户端计算装置306可运行远程计算应用330。远程计算应用330可请求对服务提供者计算机网络305所托管的虚拟桌面实例的访问。远程计算应用330还可管理在客户端计算装置306与服务提供者计算机网络305之间的远程计算会话。如在图3中所示出的,服务提供者计算机网络305也可包括PES平台302。图3中示出的PES平台302对应于与服务提供者相关的一个或多个数据中心的逻辑关联。PES平台302可与多个数据中心计算机相关联,例如像数据中心计算机310。每个数据中心计算机310可托管一个或多个虚拟桌面实例314。例如,数据中心计算机310可通过执行物理装置上的虚拟机来托管虚拟桌面实例。虚拟机可执行操作系统和应用软件的实例以便创建虚拟桌面实例。由PES 302执行的每个虚拟桌面实例可以被一个或多个客户端计算装置(诸如客户端计算装置306)访问。

在一些实施方案中,数据中心计算机310可与服务提供者计算机网络305内的私有网络地址(诸如IP地址)相关联,以使得它们可以不是由客户端计算装置306可直接访问的。虚拟桌面实例314可与公共网络地址相关联,所述公共网络地址可通过服务提供者计算机网络305的边缘处的网关可用。因此,虚拟桌面实例314可以是由客户端计算装置306经由公共网络地址可直接寻址的。相关领域的技术人员将认识到,每个数据中心计算机310将包括物理计算装置资源和软件,以便执行多个虚拟桌面实例314或动态例示虚拟桌面实例314。此类例示可基于诸如来自客户端计算装置306的特定请求。

如在图3中所示出的,数据中心计算机310可包括一个或多个实例管理器322。实例管理器322可以在与相应实例314相同的计算机上、或在单独的计算机上。实例管理器322可追踪在数据中心计算机310上执行的实例的进程,经由客户端计算装置监测和协调用户所创建的数据的存储同时与实例314交互,并且监测数据中心计算机310和在客户端计算装置306上运行的远程计算应用的总体健康和状态。实例管理器322可使通过追踪和监测收集的信息与PES平台302的数据中心管理部件301通信,以便有效管理在数据中心计算机310与客户端计算装置306之间的各种远程计算会话。

如在图3中所示出的,服务提供者网络305还可包括存储服务平台303。存储服务平台303可包括,或连接到,一个或多个存储服务器307。存储服务器307可用于存储由虚拟桌面实例314产生或利用的数据。由虚拟桌面实例314产生或利用的数据可基于在客户端计算装置306与PES 302之间的经由一个或多个远程计算会话的交互。

在一些实施方案中,存储服务平台303可逻辑上组织和维持与桌面存储中的托管的虚拟桌面实例314相关联的信息。与桌面存储中维持的虚拟桌面实例314相关联的信息可包括,但不限于,用户优选设置、用户或顾客-特定的策略、与程序数据执行相关联的信息、用户内容、对用户内容的参考等。例如,用户用来在其他存储装置上存储音乐、文件等的文件夹(包括通过存储服务提供者)还可经由对那些存储位置的参考映射到桌面存储。也就是说,输入/输出操作(诸如对打开这些文件夹中的文件的请求)可重定向到桌面存储。由此,当用户试图打开存储在他的或她的文件夹中的文件时,请求可通过在虚拟桌面实例中运行的操作系统重定向到桌面存储。除用户所创建的数据之外,用户的桌面配置文件也可存储在与用户的虚拟桌面实例相关联的桌面存储上,所述用户的桌面配置文件可包括例如桌面的配置信息,诸如背景图片、字体、图标布置等。在一些实施方案中,服务提供者计算机网络305可以能够通过将数据存储在独立于数据中心计算机310的存储服务器上,减轻运行虚拟桌面实例314的数据中心计算机310的故障或与数据中心计算机310上的虚拟桌面实例314的执行相关联的错误的影响。另外,服务提供者网络305还可通过维持桌面存储中的信息,促进与多个虚拟桌面实例314的客户端交互。在一些实施方案中,如果一个虚拟桌面实例314出故障,新实例可以被启动并且附接到相同桌面存储,所述桌面存储先前附接到出故障的虚拟桌面实例314。

在各种实施方案中,桌面存储可以跨多个服务器分布,它们可以出于性能目的在不同网络区域中的服务器上复制,或它们可以出于备份或故障性能目的跨具有独立故障配置文件的多个服务器复制。例如,服务器可附接到不同电源或冷却系统,服务器可定位在数据中心的不同机房中或不同数据中心中,和/或服务器可附接到不同路由器或网络交换机。在一些实施方案中,桌面存储可定位在一个存储服务器上,并且对桌面存储进行的改变可复制到不同存储服务器上的另一个桌面存储。此类复制可创建用户的数据的备份副本。如果桌面存储出故障或虚拟桌面实例314失去其到桌面存储的连接,PES 302可将虚拟桌面实例314的连接从桌面存储切换到备份桌面存储。

如在图3中所示出的,PES平台302还可包括中央存储装置(诸如PES存储库340),用于存储由存储服务器307上的各种桌面存储和备份存储所存储的数据。数据中心计算机310和存储服务器307可以还包括促进通信的额外软件或硬件部件,所述额外软件和/或硬件部件包括但不限于用于选择支持所请求的应用的虚拟机的实例且/或向DNS名称服务器提供信息以促进请求路由的负载平衡或负载共享软件/硬件部件。

如在此示例中所示出的,服务提供者计算机网络305可包括用户配置文件存储308。用户配置文件存储308可用于存储,例如,在使用虚拟桌面实例314时用户被给予访问的各种程序。所存储的用户配置文件还可指示与不同用户的远程计算会话相关联的最大时间或成本。PES平台302可在放置、配置和/或管理虚拟桌面实例314时将用户配置文件考虑在内。PES平台302也可包括,或连接到,虚拟桌面图像存储309。虚拟桌面图像存储309可包括操作系统的模板图像而不用按照用户配置文件施加的定制化。

在一些实施方案中,数据中心计算机310和存储服务器307可被认为在逻辑上分组,而不管所述部件或所述部件的部分是否在物理上是分开的。例如,服务提供者计算机网络305可维持分开的位置,以用于提供虚拟桌面实例314和存储部件。另外,尽管数据中心计算机310在图3中被示出为与PES平台302逻辑相关联,数据中心计算机310可能以用于最好服务其用户的各种人口统计特征的方式地理分布。另外,相关领域的技术人员将认识到,服务提供者计算机网络305可以与各种额外的计算资源相关联,此类额外的计算装置用于管理内容和资源等。例如,服务提供者计算机网络305(和/或在其上实现的虚拟桌面实例314中的各种一些)可被配置来通过通信网络304或通过另一个通信网络与其他网络实体320通信(例如,虚拟桌面实例314中的至少一些可包括可用于访问一个或多个其他网络实体320的网络接口,所述网络接口是与可用于和客户端计算装置306通信的网络接口分开和不同的)。这些其他网络实体320可包括,例如,其他客户端网络或其计算装置、提供用于服务从客户端计算装置306接收的请求的资源的计算系统、和/或通过互联网访问其他服务、应用、或数据的网络或其计算装置。

在一些实施方案中,可基于各种情景来确定与用户或客户端计算装置相关联的处理要求。在一些实施方案中,所述确定可基于在启动远程计算应用330时的用户请求。例如,用户可以被呈现有显示资源和应用的各种选项的图形用户接口(GUI)。用户可随后选择他们希望访问的应用、或可替代地选择那些应用的版本。例如,一个用户可希望访问应用的基本版本,而另一个用户可希望访问相同应用的专业版本。所述确定还可基于如由与用户相关联的实体的管理员所确定的、为某些用户预先选择的选项。例如,预先选择的选项可向用户呈现,作为用户可能希望访问的不同的应用程序包的列表。在一些情况下,可关于用户的历史使用数据做出确定,一旦从用户接收请求,PES平台302可确定所述历史使用数据。在其他情况下,一旦发起远程计算会话,处理要求的确定可基于用户的过程使用的进行中的监测。在此类情况下,适当资源实例的选择可在建立会话之后动态改变,并且对新实例的动态改变可如以上相对于图3所描述的执行。在一些实施方案中,远程计算应用330可请求虚拟桌面会话代表客户端打开,响应于此虚拟桌面实例314可以被例示,被配置用于客户端的使用,和/或通过网络304连接到客户端计算装置306(例如,经由虚拟桌面实例314的两个网络接口中的一个)。

在一些实施方案中,实现VM和VMM的服务提供者网络可使用互联网协议(IP)隧道技术,以便通过提供者网络内的不同主机上的客户端资源实例之间的网络底层封装和路由客户端数据分组。提供者网络可包括物理网络底层,所述物理网络底层包括联网装置诸如路由器、交换机、网络地址转换器(NAT)等以及装置之间的物理连接。提供者网络可采用IP隧道技术以便提供覆盖网络,经由所述覆盖网络封装分组(即已经用覆盖网络元数据标记的客户端分组,所述元数据包括但不限于用于通过覆盖网络路由的覆盖网络地址信息)可经由隧道或覆盖网络路线穿过网络底层。IP隧道技术可提供用于在网络底层上创建覆盖网络的映射和封装系统,并且可为覆盖网络层(公共IP地址)和网络底层(私有IP地址)提供单独的命名空间。在至少一些实施方案中,可针对映射目录检查在覆盖网络层中的封装分组,以便确定其隧道底层目标(私有IP地址)应当是什么。IP隧道技术可提供覆盖在物理网络底层上的虚拟网络拓扑;呈现给客户端的接口(例如,服务API)附接到覆盖网络,使得当客户端资源实例提供分组将被发送到的IP地址时,IP地址通过与可确定IP覆盖地址位于何处的映射服务通信而在虚拟空间中运行。覆盖网络技术的示例性使用在图4中示出并且在以下详细描述。

在各种实施方案中,主机上的客户端资源实例可根据状态协议(诸如传输控制协议(TCP))和/或根据无状态协议(诸如用户数据报协议(UDP))与相同主机或不同主机上的其他客户端资源实例通信。然而,客户端分组根据覆盖网络协议通过发送VMM来封装并且通过接收VMM来解封。主机上的VMM,在接收来自主机上的客户端资源实例的并且目标是另一个客户端资源实例的IP地址的客户端分组(例如,TCP或UDP分组)之后,根据覆盖网络(或IP隧道)协议封装或标记客户端分组,并且将封装分组发送到覆盖网络上以用于递送。封装分组可随后根据IP隧道技术经由覆盖网络路由到另一个VMM。另一个VMM将覆盖网络封装从分组剥离,并且将客户端分组(例如,TCP或UDP分组)递送到主机上的实现目标客户端资源实例的适当VM。换言之,在一些实施方案中,尽管在服务提供者计算环境(例如,服务提供者数据中心)中可能存在单个基础物理网络,本文所描述的封装可允许其看起来好像每个客户端应用(或一个或多个客户端应用在其上执行的每个客户端资源实例)正在其自身虚拟网络上运行(例如,用于多个客户端应用的数据分组可在相同物理网络上行进,但它可能看起来好像针对每个客户端应用的流量在私有网络上行进)。

在一些实施方案中,覆盖网络可以是根据无连接(或无状态)IP协议实现的无状态网络。在一些此类实施方案中,发送的VMM将封装分组发送到覆盖网络上用于路由和递送,但不接收有关分组的递送的确认(ACK)或其他响应。在其他实施方案中,VMM可接收有关封装分组的递送的ACK或其他响应。

图4示出根据至少一些实施方案的示例性数据中心(例如,使用IP隧道技术在网络底层上实现覆盖网络的一个数据中心)。如在此示例中所示出的,提供者数据中心400可包括网络底层,所述网络底层包括联网装置412,诸如路由器、交换机、网络地址转换器(NAT)等。至少一些实施方案可采用互联网协议(IP)隧道技术来提供覆盖网络,可使用隧道经由所述覆盖网络将封装分组传递通过网络底层410。IP隧道技术可提供用于在网络(例如,图4的数据中心400中的本地网络)上创建覆盖网络的映射和封装系统,并且可为覆盖层(公共IP地址)和网络底层410层(私有IP地址)提供单独的命名空间。可针对映射目录(例如,由映射服务430提供)检查覆盖层中的分组,以确定它们的隧道底层目标(私有IP地址)应该是什么。IP隧道技术提供虚拟网络拓扑(覆盖网络);呈现给客户端的接口(例如,服务API)附接到覆盖网络,使得当客户端提供客户端想要将分组发送到的IP地址时,IP地址通过与知道IP覆盖地址位置的映射服务(例如,映射服务430)通信而在虚拟空间中运行。

在至少一些实施方案中,IP隧道技术可将IP覆盖地址(公共IP地址)映射到底层IP地址(私有IP地址),将分组封装在两个命名空间之间的隧道中,并且经由隧道将分组递送到其中封装从分组剥离的正确端点。在图4中,示出从主机420A上的虚拟机(VM)424A到中间网络440上的装置(例如,计算系统470、本地网络450上的计算系统452、或数据中心46)的示例性覆盖网络隧道434A、以及主机420B上的VM 424B与主机420A上的VM 424A之间的示例性覆盖网络隧道434B。在一些实施方案中,可在发送之前以覆盖网络分组格式封装分组,并且可在接收之后剥离覆盖网络分组。在其他实施方案中,替代以覆盖网络分组形式封装分组,可在发送之前将覆盖网络地址(公共IP地址)嵌入分组的底层地址(私有IP地址)中,并且在接收之后将覆盖网络地址从分组地址剥离。作为示例,可使用32位IPv4(第四版互联网协议)地址作为公共IP地址来实现覆盖网络,并且IPv4地址可作为在底层网络上作为私有IP地址使用的128位IPv6(第六版互联网协议)地址的一部分来嵌入。

其中可实现本文所描述的用于固定在云计算环境中的工作空间的技术的实施方案的至少一些网络可包括使得多个操作系统能够同时在主计算机(例如,图4的主机420A和420B)上(即作为主机420上的虚拟机(VM)424)运行的硬件虚拟化技术。VM 424(其中一些可被配置来实现虚拟桌面实例以用于客户端的使用)可例如租借或租赁给网络提供者的客户端。在主机420上的管理程序、或虚拟机监视器(VMM)422可用作主机420上的VM 424和/或其他虚拟化资源实例的实例管理器,其可包括通过虚拟平台呈现主机上的VM 424并且监测VM 424的执行。每个VM 424可设置有一个或多个私有IP地址;主机420上的VMM 422可以知道主机上的VM 424的私有IP地址。映射服务430可以知道服务本地网络上的IP地址的路由器或其他装置的所有网络IP前缀和IP地址。这包括服务多个VM 424的VMM422的IP地址。映射服务430可例如集中在一个服务器系统上,或可替代地可分布在网络上的两个或更多个服务器系统或其他装置之间。网络可使用例如映射服务技术和IP隧道技术以例如在数据中心400网络内的不同主机420上的VM 424之间路由数据分组;需注意,内部网关协议(IGP)可用于在这种本地网络内交换路由信息。

此外,诸如提供者数据中心400网络(有时称为自主系统(AS))的网络可使用映射服务技术、IP隧道技术和路由服务技术来将分组从VM 424路由到互联网目的地以及从互联网源路由到VM 424。需注意,外部网关协议(EGP)或边界网关协议(BGP)通常用于在互联网上的源与目的地之间进行互联网路由。图4示出根据至少一些实施方案的实现网络的示例性提供者数据中心400,所述网络提供资源虚拟化技术并且通过连接到互联网转接提供者的边缘路由器414提供完全互联网访问。提供者数据中心400可例如使得客户端能够通过硬件虚拟化服务(诸如图2中的硬件虚拟化服务220)实现虚拟计算系统(VM424)并且能够通过存储虚拟化服务(诸如图2中的存储虚拟化服务210)在存储资源418上实现虚拟化数据存储416。

在一些实施方案中,数据中心400网络可实现IP隧道技术、映射服务技术和路由服务技术,以将流量路由到虚拟化资源并从虚拟化资源路由流量,例如将分组从数据中心400中的主机420上的VM 424路由到互联网目的地,以及从互联网源路由到VM 424。互联网源和目的地可包括例如连接到中间网络440的计算系统470和连接到本地网络450的计算系统452,本地网络450连接到中间网络440(例如,通过将网络450连接到互联网转接提供者的边缘路由器414)。提供者数据中心400网络还可在数据中心400中的资源之间路由分组,例如从数据中心400中的主机420上的VM 424路由到同一主机或数据中心400中的其他主机420上的其他VM 424。在一些实施方案中,至少一些VM 424可包括两个或更多个网络接口。例如,它们可包括可用于在VM 424与提供者代表其托管VM 424的客户端之间的通信的一个网络接口、以及可用于访问在除提供者网络和客户端网络之外的网络上的外部资源、计算系统、数据中心、或互联网目的地的第二(分开和不同的)网络接口,所述提供者网络和客户端网络中的任一个或两者可采用IP隧道技术,如本文所描述的。

提供数据中心400的服务提供者还可提供另外的数据中心460,所述另外的数据中心460包括类似于数据中心400的硬件虚拟化技术并且也可连接到中间网络440。分组可从数据中心400转发至其他数据中心460,例如从数据中心400中的主机420上的VM 424转发至另一个类似数据中心460中的另一个主机上的另一个VM,并且反之亦然。

虽然上文描述了使得多个操作系统能够作为主机上的虚拟机(VM)同时在主计算机上运行的硬件虚拟化技术,其中VM可租借或租赁给网络提供者的客户端,但是硬件虚拟化技术还可用于以类似方式将其他计算资源(例如,存储资源418)作为虚拟化资源提供给网络提供者的客户端。

注意,公共网络广义上可定义为向多个实体提供开放访问并且在多个实体之间提供互连性的网络。互联网或万维网(WWW)是公共网络的示例。共享网络广义上可定义为与访问通常不受限的公共网络相比、访问仅限于两个或更多个实体的网络。共享网络可包括例如一个或多个局域网(LAN)和/或数据中心网络,或互连以形成广域网(WAN)的两个或更多个LAN或数据中心网络。共享网络的示例可包括但不限于公司网和其他企业网。共享网络可以在从覆盖局部地区的网络到全球网络范围中的任何位置。需注意,共享网络可与公共网络共享至少一些网络基础设施,并且共享网络可联接到一个或多个其他网络,所述一个或多个其他网络可包括在其他网络与共享网络之间具有受控访问的公共网络。与公共网络(诸如互联网)相比,共享网络也可被视为私有网络。在实施方案中,共享网络或公共网络可用作在提供者网络与客户端网络之间的中间网络,或在提供者网络与其他网络实体(例如,在除提供者网络和客户端网络之外的提供者代表其托管VM424的网络上的外部资源、计算系统、数据中心、或互联网目的地)之间的中间网络。

在一些实施方案中,尽管存在执行本文所描述的客户端应用和其他过程的物理计算机,客户端应用可作为虚拟机在物理计算机上运行。例如,云计算环境的内部过程可在云计算环境中的控制面层(或管理程序)中执行,所述云计算环境的内部过程被配置来管理这些虚拟机的创建,为这些虚拟机供应资源,和/或代表客户端和/或其应用执行其他管理任务(例如,监测资源使用、顾客记账、服务计费等)。相比之下,客户端应用(例如,实现应用部件的每个资源实例)可在云计算环境的数据面层中执行。在这些层下面,在一些实施方案中,对于每个主机节点(或对于多个托管节点)可能仅存在一个物理网络卡,但每个资源实例可执行好像它具有其自身网络(例如,虚拟网络)。在一些实施方案中,每个资源实例可具有其自身数据面网络连接,但可进行本地API呼叫(例如,到相同节点上的部件的呼叫)而不需要依赖这些数据面网络连接。

在一些实施方案中,顾客可具有在本地机器上运行的应用,但可在云计算环境中供应资源实例以便在本地机器上的故障的情况下使用。在一些实施方案中,多个资源实例可在云计算环境中执行,以便代表客户端实现分布式应用。在不同实施方案中,云计算环境可以是其中每个应用(和/或每个虚拟私有网络)可具有其自身命名空间的多租户环境。在一些实施方案中,每个客户端可具有其自身的网络连通性和/或吞吐能力(带宽)的分配。例如,数据面网络中的网络连通性和/或吞吐能力可被供应(例如,指定或保留)以用于使用各种客户端。

图5示出根据至少一些实施方案的示例性提供者网络,其将提供者网络上的私有网络提供给至少一些客户端。客户端在提供者网络500上的虚拟化私有网络560例如可使得客户端能够将它们在客户端网络550上的现有基础设施(例如,客户端装置552)连接到一组逻辑上隔离的资源实例(例如,VM 524A和524B以及存储装置518A和518B),并且能够扩展管理能力(诸如安全服务、防火墙和入侵检测系统)以便包括它们的资源实例。

在一些实施方案中,客户端的虚拟化私有网络560可通过私有通信通道542连接到客户端网络550。私有通信通道542可以是例如根据网络隧道技术或通过中间网络540的其他对等连接实现的隧道。中间网络可以是例如共享网络或公共网络(诸如互联网)。可替代地,私有通信通道542可通过虚拟化私有网络560与客户端网络550之间的直接的、专用的连接实现。

公共网络广义上可定义为向多个实体提供开放访问并且在多个实体之间提供互连性的网络。互联网或万维网(WWW)是公共网络的示例。共享网络广义上可定义为与访问通常不受限的公共网络相比、访问仅限于两个或更多个实体的网络。共享网络可包括例如一个或多个局域网(LAN)和/或数据中心网络,或互连以形成广域网(WAN)的两个或更多个LAN或数据中心网络。共享网络的示例可包括但不限于公司网和其他企业网。共享网络可以在从覆盖局部地区的网络到全球网络范围中的任何位置。需注意,共享网络可与公共网络共享至少一些网络基础设施,并且共享网络可联接到一个或多个其他网络,所述一个或多个其他网络可包括在其他网络与共享网络之间具有受控访问的公共网络。与公共网络(诸如互联网)相比,共享网络也可被视为私有网络。在实施方案中,共享网络或公共网络可用作提供者网络与客户端网络之间的中间网络。

为了为客户端在提供者网络500上建立虚拟化私有网络560,可将一个或多个资源实例(例如,VM 524A和524B以及存储装置518A和518B)分配给虚拟私有网络560。需注意,其他资源实例(例如,存储装置518C和VM 524C)可在提供者网络500上保持可用以供其他客户端使用。还可将公共IP地址范围分配给虚拟化私有网络560。此外,还可将提供者网络500的一个或多个联网装置(路由器、交换机等)分配给虚拟化私有网络560。可在虚拟化私有网络560处的私有网关562与客户端网络550处的网关556之间建立私有通信通道542。

在至少一些实施方案中,除了或替代私有网关562,虚拟化私有网络560可包括公共网关564,所述公共网关564使得虚拟化私有网络560内的资源能够通过中间网络540(代替或除了通过私有通信通道542)与实体(例如,网络实体544)直接通信,并且反之亦然。

在一些实施方案中,虚拟私有网络560可以但不必细分成两个或更多个子网(未示出)。例如,在包括私有网关562和公共网关564两者的实现方式中,私有网络可细分成包括可通过私有网关562到达的资源(在这个示例中为VM 524A和存储装置518A)的子网以及包括可通过公共网关564到达的资源(在这个示例中为VM 524B和存储装置518B)的子网。在其他实施方案,VM 524中的一个或多个可被配置来通过一个通过私有网关562的私有通信通道542访问客户端网络550(例如,经由被配置用于在VM 524与客户端装置552之间的通信的网络接口),并且通过一个通过公共网关564的替代性通信通道546访问其他网络实体544(例如,经由被配置用于在VM 524与外部资源、计算系统、数据中心、或除提供者网络500和客户端网络550之外的网络上的互联网目的地的网络接口,所述提供者网络500和客户端网络550中的任一个或两者可采用IP隧道技术,如本文所描述的)。在另外的其他实施方案中,私有网关和/或公共网关以及通信通道(包括私有网关562、公共网关564、私有通信通道542、替代性通信通道546和/或中间网络540)可能以各种不同组合中的任一个使用,以用于VM 524、客户端网络550与其他网络实体544之间的通信。

在一些实施方案中,客户端可将特定客户端公共IP地址指派给虚拟化私有网络560中的特定资源实例。中间网络540上的网络实体544然后可向由客户端发布的公共IP地址发送流量;流量由提供者网络500路由到相关联的资源实例。从资源实例返回的流量由提供者网络500可通过中间网络540路由回网络实体544。需注意,在资源实例与网络实体544之间路由流量可能需要进行网络地址转换以在资源实体的公共IP地址与私有IP地址之间进行转换。

至少一些实施方案可允许客户端将如图5中所示的客户端的虚拟化私有网络560中的公共IP地址重新映射到客户端的外部网络550上的装置。当(例如,从网络实体544)接收分组时,网络500可确定由分组指示的目的地IP地址已经重新映射到外部网络550上的端点并且通过私有通信通道542、替代性通信通道546、或中间网络540处理分组到相应端点的路由。响应流量可通过提供者网络500从端点路由到网络实体544,或可替代地可由客户端网络550直接路由到网络实体544。从网络实体544的角度,可能看起来好像网络实体544正在与客户端在提供者网络500上的公共IP地址通信。然而,网络实体544实际上可能正与客户端网络550上的端点通信。

虽然图5示出位于中间网络540上并且在提供者网络500外部的网络实体544,但是在其他实施方案中,网络实体可以是提供者网络500上的实体。例如,由提供者网络500提供的资源实例中的一个可以是向由客户端发布的IP地址发送流量的网络实体。在一些实施方案中,此流量可经由VM 524的网络接口来发送,所述网络接口是与通过其发送VM 524与客户端网络550之间的流量的网络接口分开和不同的。

虚拟桌面实例

在各种实施方案中,服务提供者可采用以上所描述的一个示例性提供者网络(或另一合适的提供者网络环境),以便实现云计算环境中的托管的桌面服务。在此类实施方案中,顾客可访问云计算环境中的提供者网络,以便请求一个或多个虚拟桌面实例在云中的例示和/或配置,并且可随后向一个或多个终端用户提供对那些虚拟桌面实例的访问(例如,通过客户端应用)。例如,组织或企业内的管理员可与服务提供者建立账户,可与服务提供者签订合同以便建立某个数目的虚拟桌面实例(其还可被称为“虚拟工作空间”或简单称为“工作空间”),并且(一旦建立虚拟桌面实例)可提供用于访问这些虚拟桌面实例的凭证。在此示例中,一旦已经建立虚拟桌面实例并且已经提供凭证,一个或多个终端用户可启动在其客户端装置(例如,计算机、平板装置,或其他移动装置)上的客户端应用,并且输入用于虚拟桌面实例的凭证,在这之后他们可登录到虚拟工作空间环境中。尽管虚拟工作空间环境通过云计算环境中的虚拟化资源实例实现,它可能在终端用户看来好像它是本地桌面,并且它可操作好像它是用户连接到的独立计算机。在一些实施方案中,虚拟工作空间环境可提供对生产力软件和其他软件程序的访问,如果用户登录到组织或企业所拥有的物理计算机中,用户通常将访问所述生产力软件和其他软件程序。

在一些实施方案中,这些虚拟工作空间可旨在替换台式计算机,例如,所述虚拟工作空间可旨在运行相同软件程序,组织或企业的成员(代表其例示和配置所述虚拟工作空间)将在处于办公室设置的台式计算机上访问所述相同软件程序(例如,执行终端用户生产力任务的应用)。注意,这些应用可能是或可能不是独立式应用。例如,在一些情况下,每个虚拟工作空间(和/或在其上运行的应用)可以是组织或企业的活动目录框架的一部分,并且一旦在登录到虚拟工作空间中之后已经认证由用户呈现的凭证,可以能够访问共享文件或在组织或企业的现有网络上的其他资源。

在一些实施方案中,在服务提供者网络上例示的每个虚拟桌面实例可包括两个(或更多个)网络接口,各自用于特定目的。在一些实施方案中,可基于用户意图和/或各种可应用策略中的任一个(例如,服务提供者的默认策略、顾客特定的策略、或应用特定的策略)控制这些虚拟网络接口。接口中的一个(在本文中有时被称为“E0”接口)可被配置来接收进入的终端用户请求,以便开始交互视频流(例如,连接到虚拟桌面实例)。一旦接收请求,此接口可被用作视频流到终端用户的接口。例如,描绘在虚拟桌面实例上执行的应用或操作系统的用户接口的图像(例如,诸如图形用户接口、声音等的应用或操作系统的输出)可以流式传送到客户端计算装置,并且向用户呈现(例如,描绘图形用户接口的图像可呈现在客户端计算装置的显示器上)。其他网络接口(在本文中有时被称为“E1”接口)可用于将终端用户web流量(诸如浏览器请求)从虚拟桌面实例发送到各种互联网目的地,和/或连接到组织或企业(代表其例示虚拟桌面实例)的内部网络上的共享资源。例如,在一些实施方案中,虚拟桌面实例的E1接口可以是具有到顾客(例如,代表其例示虚拟桌面实例的组织或企业)的内部网络的连接的虚拟私有云(VPC)的一部分。由此,虚拟桌面实例可接合到顾客的域,并且可具有对顾客的web服务器的访问,包括任何共享应用和/或数据。

在一些实施方案中,每个虚拟桌面实例的第一网络接口(E0接口)可被服务提供者完全控制。例如,在一些实施方案中,仅在该接口上允许的流量可以是发送到终端用户的视频流、以及有关在服务提供者控制下的管理功能的流量。第二接口(E1接口)可能不被虚拟桌面实例的终端用户直接使用,但可为托管虚拟桌面实例的虚拟化计算资源实例提供网络连接,所述网络连接与用于视频流的连接分开并且允许虚拟桌面实例(或在其上执行的应用或处理)访问其他网络和在其他网络上的网络实体。在一些实施方案中,E0接口可用于传送命令以便启动虚拟桌面实例上的浏览器应用,但从该浏览器应用向外到互联网的传送可能通过E1接口发生。

如先前所指出的,在一些实施方案中,本文所描述的系统可实现用于工作空间服务的虚拟私有云(VPC),其向外延伸以便访问在多个地理分布的存在点(POP)位置处的网关。在各种实施方案中,网关部件可用作沿产生像素流的虚拟桌面实例(工作空间)与接收流的客户端装置之间的路径的桥。在一些实施方案中,此类路径可用于传送命令,所述命令从虚拟桌面实例传送到客户端装置,并且表示指导客户端装置产生和/或呈现用于通过客户端装置显示的像素(例如,代替像素流或除像素流之外)的指令。在一个示例中,表示将由客户端装置显示的文本或图形的数据可作为像素流从虚拟桌面实例发送到客户端装置。然而,如果客户端装置将显示视频,虚拟桌面实例可向客户端装置发送在定位和访问视频中有用的链接、连同指示客户端装置应呈现用于显示的视频的命令。在其他实施方案中,表示图形处理命令的数据可从虚拟桌面实例传送到客户端装置,这可致使客户端装置产生和呈现用于在客户端装置上显示的像素。

在一些实施方案中,相同网关也可桥接重叠返回路径,所述重叠返回路径将表示与虚拟桌面实例(例如,键盘、触摸屏/板、和/或鼠标事件)的用户交互的数据从客户端装置传送回到虚拟桌面实例。在从服务提供者的出口上,这些访问网关可以是在通过公共网络传送像素流之前(例如,在其进入公共互联网之前)被服务控制的最后点。通过移动网关更靠近客户端装置,同时保持对其的控制作为工作空间服务的VPC的一部分,所述服务可提供较高质量连接和/或终端用户体验。例如,安全、可靠、低延迟高带宽、低损耗和/或低抖动连接(例如,通过虚拟私有网络)可用于在切换到网关部件与客户端装置之间的潜在较不可靠、高延迟公共网络连接之前,将用于虚拟桌面会话的双向交互视频流传送直到尽可能靠近客户端装置的点。

在一些实施方案中,网关部件可以是多租户访问网关,所述多租户访问网关为服务代表其托管虚拟桌面实例的多个不同工作空间客户端(例如,不同顾客或服务订户)提供网关功能性。注意,在一些实施方案中,网关部件仅可在递送虚拟桌面会话的交互视频流中被涉及,并且不用于虚拟桌面实例与客户端装置之间的其他类型的流量(例如,为其他目的,诸如安全、认证、或目录服务)或用于虚拟桌面实例与代表工作空间客户端的其他网络实体之间的流量。相反,这些其他类型的流量(其通常不像交互视频流那样时间敏感的或对各种网络效应敏感的)可通过其他接口传送到虚拟桌面实例(例如,经由E1型接口,如以上所描述的)。

如先前所指出的,被配置作为虚拟桌面实例的虚拟计算资源实例可托管在跨多个可用性区分布的多个数据中心中的计算节点上。类似地,工作空间服务的网关部件(其也可通过虚拟计算资源来实现)可托管在地理分布的存在点(POP)位置处的计算节点上。如以下更详细描述的,在一些实施方案中,服务可为自动指派网关部件用于特定客户端(例如,特定终端用户)。当客户端试图登入到工作空间服务时,服务可提供托管在相同区域(例如,客户端物理位于的区域)中的访问网关地址,并且可执行从虚拟桌面实例到该网关部件的映射。

如本文所描述的,在一些实施方案中,网关部件在工作空间服务管理的和对于所有客户端(例如,顾客或服务订户)共同的多租户VPC内参与。此VPC可用作用于工作空间服务的管理网络,并且也可用作将交互视频流量向外传送到各种POP位置处的网关部件的网络(例如,通过虚拟私有网络)。工作空间服务可提供客户端特定的VPC,并且代表每个客户端创建和管理的虚拟计算资源实例可参与这些VPC的一个。例如,这些客户端特定的VPC可以被客户端自身创建(或可发起其创建),或它们可以被代表其的服务创建。这些客户端VPC可传送除虚拟桌面会话的交互视频流之外的网络流量(例如,用于诸如结合域或允许终端用户浏览互联网网站的操作的网络流量)。在一些实施方案中,实现虚拟桌面实例的虚拟计算资源的部件也可附接到(或参与)工作空间服务的VPC(即服务的管理网络)。

如以下更详细描述的,在一些实施方案中,交互视频流可通过UDP网络协议传送,并且可在特定端口(例如,端口4172)上运行。然而,这是可能通常不在顾客的防火墙上开放的网络协议和端口。可能通常在顾客的防火墙上开放的另一个端口是TCP 443,其为安全TCP端口。在一些实施方案中,网关部件可以被放置在顾客的被配置来从UDP转换到TCP 443的不安全(或DMZ)网络中,以使得顾客不必须打开在其防火墙上的任何附加端口以便接收交互视频流。在此类实施方案中,终端用户可获取直到其住所上的网络的UDP(其是用于实时流量的非常有效的递送协议,诸如交互视频流,而没有TCP的开销)的益处,并且随后可将流转换到最后的TCP 443。例如,在客户端装置上运行的本地过程(本地网关)可从工作空间网关部件接收UDP流量,并且随后(就在顾客的防火墙的不安全侧上)可将其转换到TCP用于端口443。

本文所描述的用于提供到云计算环境中的工作空间的低延迟连接的技术可另外在图6-11中并且通过以下所描述的示例性实施方案来示出。例如,图6为示出根据至少一些实施方案的示例性联网环境的方框图,在所述示例性联网环境中向客户端提供虚拟桌面服务。如在此示例中所示出的,联网计算环境600可包括虚拟计算服务提供者610,其至少部分通过公共网络650与两个客户端计算装置670和680以及其他网络实体660通信。虚拟计算服务提供者610可包括多个虚拟计算资源实例,所述多个虚拟计算资源实例中的一些被配置为虚拟桌面(工作空间)实例,诸如虚拟桌面(工作空间)实例632和642。这些虚拟桌面(工作空间)实例可用于代表客户端托管虚拟桌面会话。在一些实施方案中,其他虚拟计算资源实例(例如,虚拟机的实例,如以上所描述的)可被配置用于托管应用,诸如数据流应用。这些虚拟计算资源实例中的任一个可包括物理计算装置资源和软件,以便提供虚拟机的多个实例或者以便动态地致使创建虚拟机的实例。这类创建可以基于特定请求,诸如来自客户端计算装置的请求,或工作空间服务(或其工作空间服务管理部件)可以自行发起虚拟机的实例的动态创建。注意,每个虚拟计算资源实例可包括一个或多个存储装置,以用于存储在网络资源或计算资源的递送和处理中所使用的任何类型的数据,在一些实施方案中,所述数据包括但不限于用户数据、状态信息、处理要求、历史使用数据以及来自内容提供者的资源,所述资源将由一个或多个虚拟计算资源实例处理并传输到各种客户端计算机。在一些实施方案中,一个或多个虚拟计算资源实例(或工作空间服务VPC 620内和/或每个顾客VPC 630或640内的其他部件)可包括促进通信的附加软件和/或硬件部件,包括但不限于,负载平衡或负载共享软件/硬件部件。

如在此示例中所示出的,虚拟桌面(工作空间)实例632和一个或多个其他计算和/或网络存储资源实例638可在虚拟计算服务提供者610的物理资源上的虚拟私有云630内代表客户端操作(参与),并且可通过虚拟私有网络(VPN)彼此通信。类似地,如在此示例中所示出的,虚拟桌面(工作空间)实例642和一个或多个其他计算和/或网络存储资源实例648可在虚拟计算服务提供者610的物理资源上的虚拟私有云640内代表客户端(例如,相同客户端或不同客户端)操作,并且可通过虚拟私有网络(VPN)彼此通信。如本文所描述的,这些虚拟桌面(工作空间)实例中的每一个可包括用作不同目的的两个分开和不同的网络接口。例如,虚拟桌面(工作空间)实例632包括用于与客户端通信(例如,经由一个工作空间网关626)的E0接口634、以及用于与其他网络实体660通信的E1接口636,同时虚拟桌面(工作空间)实例642包括用于与客户端通信(例如,经由一个工作空间网关626)的E0接口644、以及用于与其他网络实体660通信的E1接口646。

如通过图6中的实例所示出的,虚拟计算服务提供者610可包括多个“存在点”(或“POP”)位置624,其对应于在工作空间服务的虚拟私有云(被示出作为工作空间服务VPC 620)内的边缘节点。大体上,存在点是其中一个或多个物理计算节点(例如,服务器、路由器、交换机和/或其他部件)被配置来用作对互联网的访问点的物理位置。虚拟计算服务提供者610还可包括在工作空间服务VPC 620内操作的一个或多个工作空间服务管理部件622,其中的每一个管理代表客户端实现虚拟桌面实例(工作空间)的计算资源实例。例如,在一些实施方案中,工作空间服务管理部件622可包括用于建立在各种虚拟桌面(工作空间)实例和/或其他虚拟计算资源实例与客户端(虚拟计算服务提供者代表其托管这些资源实例)之间的连接的计算资源。在一些实施方案中,工作空间服务管理部件622可包括用于管理内容和资源等的计算资源。如在此示例中所示出的,虚拟桌面实例630和640的E0接口(被示出作为634和644)可分别在工作空间服务VPC 620内以及在顾客VPC 630和640内操作。

如在此示例中所示出的,每个工作空间POP位置624可包括一个或多个工作空间网关部件626,通过其客户端与虚拟桌面(工作空间)实例通信。每个工作空间POP位置624可包括用于解决来自客户端计算机670和680的DNS查询的DNS部件、和/或用于存储来自内容提供者的资源并且将各种请求的资源传输到各种客户端计算机的资源高速缓存部件(未示出)。在一些实施方案中,这些部件(或每个工作空间POP位置624内的其他部件)可包括促进通信的附加软件和/或硬件部件,包括但不限于,负载平衡或负载共享软件/硬件部件。注意,工作空间服务管理部件622和工作空间POP位置624的各种部件(包括工作空间网关部件626)可被认为是逻辑分组的(并且可在工作空间服务VPC 620内彼此互操作以及通过虚拟私有网络彼此通信),无论部件或部件的部分是否是物理分开的。例如,工作空间服务管理部件622和工作空间POP位置624的各种部件可能以用于最好服务客户端计算装置(诸如客户端670和680)的各种人口统计特征的方式在整个联网环境600上地理分布。另外,相关领域的技术人员将认识到,CDN服务提供者106可以与各种额外计算资源相关联,如用于管理内容和资源的额外计算装置等。在各种实施方案中,虚拟桌面(工作空间)实例632和642可以是使用与代表客户端管理其他类型的虚拟计算资源实例(例如,其他虚拟计算和/或存储资源实例638或648)的部件相同或不同的部件的管理。

如在此示例中所示出的,从虚拟计算服务提供者610接收虚拟计算和/或存储服务(例如,虚拟桌面服务)的每个客户端可包括在客户端装置上执行的工作空间服务的客户端侧部件。在一些实施方案中,工作空间服务的此客户端侧部件可在客户端的防火墙部件后面操作。例如,客户端670包括在防火墙672后面操作的工作空间服务客户端部件675,并且客户端680包括在防火墙682后面操作的工作空间服务客户端部件685。例如,交互视频流量可通过工作空间POP位置624处的一个工作空间网关部件626以及通过虚拟桌面实例的E0网络接口(例如,E0接口634或644),在客户端670或680中的一个与虚拟桌面实例(例如,虚拟桌面实例632或642)之间传送。在一些实施方案中,工作空间服务可通过从虚拟桌面实例到POP位置处(但未超过)的网关部件的安全、可靠和低延迟连接,提供(和控制)交互视频流的流式传送。换言之,在工作空间POP位置处的网关部件可表示在虚拟桌面实例与客户端之间连接的最后点,在所述最后点处通信在通过较不可靠和/或较高延迟公共网络传送以便到达其最后目的地(客户端)之前被工作空间服务控制。然而,通过将工作空间服务的网关部件定位更靠近客户端装置,在递送交互视频流时此类公共网络对服务性能的贡献可减少。

如本文所描述的,在一些实施方案中,工作空间服务的虚拟私有云可延伸,以便包括在可跨联网环境地理分布的工作空间存在点位置中的网关部件。根据至少一些实施方案的联网环境的一个示例通过图7A中的方框图示出,其中位于存在点位置处的网关部件在虚拟桌面(工作空间)服务的虚拟私有云内操作(参与),并且通过虚拟私有网络(VPN)彼此通信(以及与工作空间服务的其他部件通信)。在此示例中,联网环境700包括至少两个可用性区或区域。如以上所指出的,每个可用性区/区域可包括其自身物理不同、独立的基础设施,在所述基础设施上实现一系列计算节点(例如,在一个或多个数据中心内)。在一些实施方案中,每个可用性区/区域可驻留在不同地理位置或区域中,而在其他实施方案中,多个可用性区/区域可驻留在相同地理位置或区域中。在此示例中,联网环境700包括可用性区或区域710,所述可用性区或区域710包括数据中心712,并且数据中心712托管一个或多个工作空间实例714和/或工作空间管理部件716(例如,在数据中心712内的一个或多个计算节点上)。类似地,联网环境700包括可用性区或区域720,所述可用性区或区域720包括数据中心722,并且数据中心722托管一个或多个工作空间实例724和/或工作空间管理部件726(例如,在数据中心722内的一个或多个计算节点上)。

如以上所描述的,一个或多个工作空间实例(包括实现工作空间实例的任何和所有虚拟计算和/或存储资源)可在顾客VPC被托管在其中的相应数据中心中的顾客VPC内操作,并且一些或所有的工作空间实例(例如,工作空间实例714和/或724)可包括两个分开的和不同的网络接口,诸如本文所描述的E0和E1接口(未示出)。

如在图7A中所示出的,定位在不同可用性区或区域中的工作空间管理部件716和726可在工作空间服务VPC 730内操作,并且可提供功能性用于创建和/或配置虚拟桌面实例,选择通过其在虚拟桌面实例与客户端之间传送交互视频流的网关部件,建立虚拟桌面实例与客户端之间的连接和/或执行工作空间服务的其他管理或通信功能。此外,多个工作空间存在点(POP)网关部件(被示出作为WS POP网关部件731–736),尽管它们分布在两个可用性区/区域710和720之间,可在工作空间服务VPC内操作并且可与工作空间服务VPC 730内的工作空间服务的其他部件互操作(例如,通过VPN)。在一些实施方案中,任何或所有的工作空间实例714和/或724的E0接口也可与工作空间管理部件716和/或726互操作,和/或与工作空间服务VPC730内的任何WS POP网关部件731–736互操作(未示出)。如在此示例中所示出的,工作空间服务的一些或所有的工作空间POP网关部件可定位在代表客户端托管工作空间实例的数据中心之外。在其他实施方案中,工作空间服务的一些或所有的工作空间POP网关部件可定位在代表客户端托管工作空间实例的数据中心内。注意,在各种实施方案中,每个可用性区或区域中可存在两个或更多个数据中心,所述数据中心中的每一个可包括托管相应工作空间实例的多个计算节点。

在一些实施方案中,客户端可通过经由附近的工作空间网关部件(例如,位于客户端附近的存在点位置处的工作空间网关部件)连接来访问其工作空间(即工作空间服务代表客户端创造和管理的工作空间实例)。然而,这些网关部件可能未必托管在它们的工作空间实例被托管在其中的数据中心或可用性区/区域中。在图7A所示出的示例中,四个客户端(例如,客户端752、754、756和758)可通过WS POP网关部件731–726中的各种网关部件来访问各种工作空间实例(例如,托管在可用性区/区域710内的数据中心712中的工作空间实例714中的各种工作空间实例、或托管在可用性区/区域720内的数据中心722中的工作空间实例724中的各种工作空间实例)。在此,客户端752、754、756、和758可通过诸如互联网的公共网络(被示出作为公共网络740)连接到这些工作空间POP网关部件中的任一个(并且与其通信),无论它们的工作空间被托管在何处。如在此示例中所示出的,客户端752可通过可用性区/区域710中的WS POP网关部件732来访问工作空间实例714(在可用性区/区域710中的数据中心712中)或724(在可用性区/区域720中的数据中心722中)中的任一个,例如,如果通过其客户端752访问它的工作空间实例的客户端装置物理定位在可用性区/区域710中或附近。从另一方面来说,如果客户端752随后通过物理定位在另一个可用性区/区域中的客户端装置访问其工作空间实例,它可通过不同的工作空间POP网关部件访问其工作空间实例。

如先前所指出的,WS POP网关部件(诸如WS POP网关部件732)可以是多租户访问网关,所述多租户访问网关为服务代表其托管工作空间实例的多个不同工作空间客户端(例如,不同顾客或服务订户)提供网关功能性。在此示例中,客户端758也可通过可用性区/区域710中的WS POP网关部件732来访问工作空间实例714(在可用性区/区域710中的数据中心712中)或724(在可用性区/区域720中的数据中心722中)中的任一个,(例如,如果通过其客户端758访问它的工作空间实例的客户端装置物理定位在可用性区/区域710中或附近),并且可随后通过不同的工作空间POP网关部件访问其工作空间实例(例如,如果它通过物理定位在另一个可用性区/区域中的客户端装置来访问其工作空间实例)。

在图7A所示出的示例中,客户端754可通过可用性区/区域720中的WS POP网关部件734访问工作空间实例714(在可用性区/区域710中的数据中心712中)或724(在可用性区/区域720中的数据中心722中)中的任一个。类似地,客户端756可通过可用性区/区域720中的WS POP网关部件736访问工作空间实例714(在可用性区/区域710中的数据中心712中)或724(在可用性区/区域720中的数据中心722中)中的任一个。在一些实施方案中,客户端可首先试图通过一个网关部件访问其工作空间实例中的一个,并且随后(例如,如果试图连接到工作空间实例是不成功的,如果连接上的延迟是不可接受的,或如果通过其客户端访问工作空间实例的客户端装置改变)可试图通过另一个工作空间POP网关部件访问工作空间实例。

图7B为示出根据至少一些实施方案的向客户端提供工作空间服务的另一个示例性联网环境的方框图。联网环境705类似于图7A所示出的联网环境700。然而,在此示例中,在存在点位置处的一些网关部件在虚拟桌面服务的虚拟私有云(例如,工作空间服务VPC 730)内操作,而其他网关部件在紧密联接到虚拟桌面服务的虚拟私有云的对等VPC(例如,对等VPC 760)内操作。更具体地,在此示例中,WS POP网关部件731、732、733和734在虚拟桌面服务的虚拟私有云(例如,工作空间服务VPC 730)内操作,而WS POP网关部件735和736与对等VPC 760一起操作,所述对等VPC 760通过对等连接765通信联接到工作空间服务VPC 730。如在先前示例中,客户端756可通过可用性区/区域720中的WS POP网关部件736访问工作空间实例714(在可用性区/区域710中的数据中心712中)或724(在可用性区/区域720中的数据中心722中)中的任一个。然而,在此示例中,WS POP网关部件736在对等VPC 760内操作而不是在工作空间服务VPC 730内操作。注意,虽然WS POP网关部件736在对等VPC 760内操作,在WS POP网关部件736与客户端756所访问的任何工作空间实例之间的通信通道的可靠性和延迟可基本上类似于在工作空间服务VPC 730内操作的WS POP网关部件与客户端752、754、756、或758中的任一个所访问的工作空间实例之间的通信通道的可靠性和延迟。注意,在一些实施方案中,对等VPC(诸如对等VPC 760)可包括托管在多个可用性区或区域中的计算节点上的WS POP网关部件。还应注意,在另外的其他实施方案中,提供工作空间服务的联网环境的所有WS POP网关部件可在紧密联接到工作空间服务VPC的一个或多个对等VPC内操作,而不是在工作空间服务VPC自身内操作。

如先前所指出的,在一些实施方案中,工作空间服务可被配置来选择用于在取决于其位置处理虚拟桌面会话的交互视频流中使用的特定POP位置处的网关部件(例如,POP位置与交互视频流将被传送到的客户端装置的邻近度)。例如,如果客户端(例如,顾客或服务订户)正连接到来自纽约市内的客户端计算装置的虚拟桌面会话,所述会话的交互视频流可能通过与如果客户端正连接到来自上海的客户端计算装置的虚拟桌面会话不同的访问网关来处理(取决于适当的网关部件被托管在其上的位置),无论代表客户端托管会话的虚拟桌面实例的物理计算资源(例如,一个或多个计算节点)定位在何处。使用此方法,客户端无论其物理位置如何可体验良好的网络性能(其至少直到所选择的POP位置网关被工作空间服务自身控制)。换言之,在一些实施方案中,当客户端物理移动通过其所述客户端连接到虚拟桌面实例的装置时,服务可自动将会话的交互视频流量重新定向到最好的可用网关(例如,靠近客户端装置的网关)。

在一些实施方案中,在不同存在点处(例如,在不同地理区域中的边缘位置处)的至少一些资源(例如,物理计算资源和/或虚拟计算资源实例)可以被相同(或附近)的城市、国家或区域中的客户端供应作为在其使用预期中的工作空间服务的VPC内的网关部件。在一些实施方案中,如果并且当连接到来自相同地理区域中的客户端装置的工作空间服务的用户数目保证这种增加时,服务(或其管理部件)可供应附加的虚拟计算资源作为特定存在点位置处的网关部件(例如,增大支持客户端的连接的能力)。在不同实施方案中,网关实例的此自动扩展可按需针对工作空间服务集中执行,或在特定POP位置处执行。在一些实施方案中,服务可实现故障解决机构,通过所述故障解决机构在客户端装置与工作空间实例之间的流量可在与一个或多个网关部件的通信的损耗、或一个或多个网关部件被托管在其上的特定POP位置处的计算节点的故障之后,定向(或重新定向)到替代性网关部件(例如,未托管在离客户端装置最近的POP位置处的网关部件)。类似地,响应于网关部件(或POP位置)所经历的相对工作负载的改变,服务可将在客户端装置与工作空间实例之间的流量定向(或重新定向)到特定网关部件(和/或POP位置)。在一些实施方案中,如果来自客户端装置的流量需要被重新定向远离在客户端装置附近的网关部件(或POP位置)(例如,由于负载平衡的故障或任何其他原因),系统可自动将流量重新定向到最近的网关部件(或POP位置)。在其他实施方案中,此类流量被重新定向到的网关部件和/或POP位置可取决于负载平衡策略或用于从可用网关部件中选择网关部件的一些其他类型的优先级策略,所述网关部件可包括托管在客户端附近的存在点位置处的网关部件、以及托管在更远离客户端的存在点位置处的网关部件。

在一些实施方案中,服务可维持指示哪些网关可用于特定客户端的使用的信息,并且可给那些客户端提供可用网关部件(在特定POP位置处)的目的地地址的列表。例如,服务可被配置来自动确定一组两个或更多个网关部件,所述网关部件可用于提供客户端与虚拟计算服务之间的网络接口以及它们被托管在其上的存在点位置,并且将那个提供到工作空间服务的客户端侧部件(例如,代表特定客户端正执行的工作空间客户端过程)。在此类实施方案中,工作空间服务的客户端侧部件可被配置来从列表选择可用网关部件,并且如果试图通过所选择的网关部件连接到虚拟桌面实例和开始虚拟桌面会话失败,可被配置来在试图连接和开始会话中重复循环可用网关部件的列表。在一些实施方案中,服务可被配置来基于负载信息或可用性信息(例如,响应于先前可用网关部件被托管在其上的一个或多个计算节点上所经历的工作负载的增加或减少,与一个或多个先前可用网关部件的通信的损耗,或一个或多个先前可用网关部件被托管在其上的计算节点的故障)修改可用网关部件(在特定POP位置处)的目的地地址的列表,并且可向工作空间服务的客户端侧部件提供更新的列表。

图8为示出方法的一个实施方案的流程图,所述方法用于通过位于存在点位置处的网关部件向客户端提供虚拟桌面服务。如在810处所示出的,在此示例中,方法可包括从客户端接收登入到虚拟桌面服务并且开始虚拟桌面会话(例如,例示虚拟桌面实例和/或连接到虚拟桌面实例)的请求。如果未认证请求(例如,如果客户端未产生有效的凭证),如从820的否定出口所示出的,方法可包括将失败指示返回到客户端,如在825中。然而,如果认证请求,如从820的肯定出口所示出的),方法可包括配置虚拟桌面(工作空间)实例的虚拟计算资源以用于客户端的使用,如在830中。例如,方法可包括例示虚拟资源实例并且配置它以便代表客户端实现虚拟桌面(工作空间)。

如在此示例中所示出的,方法可包括确定通过其虚拟桌面会话的交互视频流应当传送到客户端的适当存在点(POP)位置,如在840中。在一些实施方案中,客户端(或终端用户)可选择特定POP位置(或其网关部件)用于在与虚拟桌面实例通信中使用。在其他实施方案,虚拟桌面服务可被配置来确定(自动地,例如,基于在各种网关部件的工作负载上通过其接收请求的客户端装置的位置,或使用其他标准或策略)多个可用POP位置(和/或其网关部件)中的哪些应当用于处理虚拟桌面实例与客户端之间的交互视频流流量。

一旦已经确定适合的POP位置(和/或其网关部件),方法可包括通过在工作空间服务的虚拟私有云内的选择的POP位置处的网关部件,建立客户端与工作空间实例之间的连接(或通信通道),如在850中。例如,在一些实施方案中,方法可包括工作空间服务的管理部件通过虚拟私有网络建立从虚拟桌面实例到POP位置处的网关部件的隧道或管道,以使得通过其传送虚拟桌面实例的交互流的可靠和低延迟连接可以被工作空间服务控制一直向外到POP位置,并且通过较不可靠和/或较高延迟公共网络传送的连接部分(例如,网关部件与客户端之间的通过公共互联网的连接)可以最小化。注意,通过POP位置处的网关部件建立客户端与工作空间实例之间的连接或通信通道的管理部件可能或可能不托管在计算节点上,在不同实施方案中,所述计算节点被物理定位在与托管网关部件的计算节点或托管工作空间实例的计算节点相同的区域或可用性区。

一旦建立连接,方法可包括发起使用客户端与虚拟桌面实例之间的交互视频流量的连接,如在860中。例如,方法可包括工作空间服务使得虚拟桌面实例对于客户端(其可包括提供客户端可使用的凭证以便访问虚拟化计算资源实例)可用,发起向客户端传送像素流(和/或用于产生和呈现像素的命令)用于显示,和/或准备接收和处理通过此连接从客户端接收的输入(例如,表示与虚拟桌面实例的用户交互的输入,诸如键盘输入、鼠标输入、或基于触摸的接口输入)。

图9为示出方法的一个实施方案的流程图,所述方法用于通过位于存在点位置处的网关部件,管理工作空间提供者与客户端之间的交互视频流量。如在910处所示出的,在此示例中,方法可包括在数据中心内,工作空间服务例示虚拟化计算资源实例,配置它用于作为代表客户端的虚拟桌面(工作空间)实例使用,以及开始虚拟桌面(工作空间)会话。在一些实施方案中,配置虚拟桌面实例以用于作为虚拟桌面(工作空间)实例使用并且开始工作空间会话可包括建立虚拟桌面(工作空间)实例与客户端之间的通信通道,代表所述客户端的虚拟桌面(工作空间)实例通过工作空间POP位置处的网关部件配置。如本文所描述的,在虚拟桌面(工作空间)实例与网关部件之间的通信通道部分可通过虚拟私有网络实现,而网关部件与客户端之间的通信通道部分可通过公共网络实现。一旦虚拟桌面实例被配置用于作为虚拟桌面(工作空间)实例使用并且已经建立通信通道,方法可包括管理虚拟桌面(工作空间)实例与客户端之间的在并行路径上的双向交互视频流量,所述两个并行路径可包括网关部件。例如,一个路径可用于将像素流(和/或用于产生和呈现像素的命令)从客户端的虚拟桌面(工作空间)实例传送到客户端,并且另一个路径可用于将输入从客户端传送到虚拟桌面(工作空间)实例。这两个并行路径分别由图9中的流程图的左侧和右侧上的并行路径示出。

如在此示例中所示出的,方法可包括工作空间实例通过UDP网络协议产生视频流用于在客户端装置上显示客户端工作空间,如在920中。例如,方法可包括响应于代表客户端在工作空间实例上执行应用,工作空间实例(或其虚拟化计算资源)通过UDP网络协议产生像素流。方法还可包括工作空间实例向在客户端装置位置附近的POP位置处的网关部件提供视频流,如在940中。如先前所指出的,在一些实施方案中,工作空间实例还可向客户端装置提供以下命令:表示指导客户端装置产生和/或呈现像素以用于由客户端装置(未示出)显示的指令。注意,如以上所描述的,网关部件可以是与工作空间服务的虚拟私有云内的工作空间管理部件通信和互操作(例如,通过虚拟私有网络通信)的多个网关部件中的一个,或它可在使用VPC对等机构通信联接到工作空间服务的虚拟私有云的分开的虚拟私有云内操作。例如,在网关部件在紧密联接到工作空间服务的VPC的对等VPC内操作的实施方案中,视频流(包括像素数据和/或用于在客户端装置处产生和/或呈现像素的命令)可通过跨越两个VPC的安全、可靠、低延迟通信通道从工作空间实例传送到网关部件。

方法可包括在客户端装置上执行的工作空间服务的客户端部件从网关部件接收UDP视频流并且将其转换到TCP,如在960中。例如,在一些实施方案中,客户端装置可通过客户端装置上的防火墙在端口4172上接收UDP流,并且在该防火墙后面,工作空间服务的客户端部件可将所述UDP流转换到TCP用于端口443。如在此示例中所示出的,方法可包括客户端侧应用在客户端装置上呈现和显示转换的视频流,如在980中。

同时(例如,在示出要素920–980中示出的操作正被执行时),方法还可包括工作空间服务的客户端部件向在客户端装置位置附近的POP位置处的网关部件提供输入(例如,与处理像素流的网关部件相同的网关部件),如在930中。例如,客户端可提供输入,其表示类似于包括本地桌面的用户交互的与虚拟桌面实例的用户交互(例如,包括键盘、基于触摸的接口和/或鼠标的交互)。

如在此示例中所示出的,方法可包括网关部件桥接从客户端到工作空间实例的返回路径,如在950中。注意,在一些情况下,此路径可跨可用性区和/或地理区域边界。方法还可包括工作空间实例接收客户端输入、执行请求的行动、并且响应于采用的行动产生视频流(例如,通过UDP网络协议),如在970中。一旦已经产生视频流,方法可在此示例中如在940中继续。

如在此示例中所示出的,由于从客户端接收的输入并且产生新像素流(和/或用于产生和呈现像素的命令)以及将其传送到客户端装置作为响应(被示出作为通过要素930、950、970、920、940、960和980的路径、以及从980至930的反馈),并且由于将响应于在工作空间实例上执行各种客户端应用而由工作空间实例产生的视频流传送到客户端装置(被示出为包括要素920、940、960、980的路径、以及从980到920的反馈),可重复在图9中示出并且对应于交互视频流的处理的操作。

图10为示出方法的一个实施方案的流程图,所述方法用于通过位于存在点位置处的网关部件,使客户端连接到工作空间服务并且与工作空间服务通信。如在1010处所示出的,在此示例中,方法可包括代表终端用户将工作空间实例托管在远程数据中心上的工作空间服务的客户端部件,接收网关部件被托管在其上的POP位置的目的地地址的列表。例如,在一些实施方案中,工作空间服务的客户端部件可在客户端装置上的客户端部件的例示(安装)或配置(初始化)期间,从工作空间服务接收这种列表(其可识别一组两个或更多个网关部件,所述网关部件可用于提供工作空间服务的客户端部件在其上执行的客户端装置与工作空间服务之间的通信接口、以及它们被托管在其上的存在点位置)。在一些此类实施方案中,客户端部件可周期性地、或在按需或按请求的基础上(例如,响应于网关部件的数目或配置的改变)接收更新的列表(或将向列表施加的更新)。

如在此示例中所示出的,方法可包括工作空间服务的客户端部件从包括在从工作空间服务接收的列表上包括的那些目的地地址中,选择网关部件被托管在其上的POP位置的目的地地址(如在1020中)。例如,在各种实施方案中,可自动或通过用户输入选择目的地地址,并且选择自身可基于在其上执行客户端部件的客户端装置的位置、在一个或多个POP位置处和/或由其各种网关部件所经历的工作负载、和/或其他标准或优选设置(其中的一些可以在工作空间服务的默认策略中或客户端特定的策略中指定)。如在图10中所示出的,方法可包括工作空间服务的客户端部件试图通过选择的POP位置处的网关部件与工作空间实例连接,如在1030中。

如果试图连接到工作空间实例是成功的(被示出作为从1040的肯定出口),方法可包括客户端部件开始通过选择的POP位置处的网关部件与工作空间实例交换交互视频流数据,这可包括从工作空间实例接收像素流并且(并行)返回用户输入(如在1050中),如本文所描述的。如先前所指出的,在一些实施方案中,交互视频流还可包括以下命令:所述命令从工作空间实例传送到客户端部件,并且表示指导客户端部件产生和/或呈现用于通过客户端装置显示的像素的指令。然而,如果试图连接到工作空间实例不是成功的(被示出作为从1040的否定出口),方法可包括工作空间服务的客户端部件为网关部件被托管在其处的POP位置选择另一个目的地地址,并且再次尝试与工作空间实例连接。这在图10中通过从1040的否定出口至1020的反馈来示出。注意,如本文所描述的,在工作空间实例与客户端之间除交互视频流之外的流量(例如,连接请求或其他类型的请求或数据)可通过与用于传送交互视频流的接口不同的工作空间实例接口来传送。例如,E0-型接口(诸如以上所描述的接口)可用于传送交互视频流,而E1-型接口(诸如以上所描述的接口)可用于传送其他类型的信息和/或与除代表其创建工作空间实例的工作空间服务客户端之外的网络实体通信。还应注意,在一些实施方案中,客户端(例如,顾客或服务订户)可能够指定(例如,通过工作空间服务的客户端部件的接口)对其工作空间实例的所有访问应当通过特定网关部件传送,无论通过其客户端访问它们的工作空间实例的客户端装置的物理位置如何。在其他实施方案中,客户端可能够指定默认网关部件以供使用(无论其位置如何),但可允许在某些情况下重写此默认。在另外的其他实施方案中,客户端可能够指定应当至少部分取决于通过其客户端访问它们的工作空间实例的客户端装置的物理位置选择网关部件以供使用。

注意,已经根据定位在对应于服务提供者网络边缘的POP位置处的网关部件描述许多示例性实施方案。然而,在其他实施方案中,本文所描述的用于提供到云计算环境中的工作空间的低延迟连接的技术可以应用到沿从工作空间实例到客户端装置的各种路径执行网络功能的其他类型的网关部件或路由器。例如,工作空间服务的虚拟私有云可向外延伸到类似的远程联网部件,所述远程联网部件不位于边缘位置,但被定位比数据中心更靠近客户端装置,工作空间实例被托管在其上的计算节点物理定位在所述数据中心中。在此类实施方案中,可通过经由直到那些远程联网部件的安全、可靠和低延迟连接(例如,通过工作空间服务所控制的虚拟私有网络)提供虚拟桌面会话的交互视频流来改善性能,从而减少沿路径的其他网络(例如,潜在较低质量网络)对客户端装置的影响。

说明性系统

在至少一些实施方案中,实现如本文所描述的用于提供到云计算环境中的工作空间的低延迟连接的一些或所有技术的系统可包括通用计算机系统,所述通用计算机系统包括或被配置来访问非暂时性计算机可访问(例如,计算机可读)介质,诸如图11所示出的计算机系统1100。例如,在各种实施方案中,本文所描述的任何或所有的计算机系统部件(包括,例如,在服务提供者网络上共同提供虚拟计算服务和/或虚拟存储服务的数据中心计算机和/或其他部件、虚拟化计算资源实例、虚拟机、虚拟机监视器或管理程序、工作空间管理部件、和/或虚拟桌面实例;网关部件或存在点位置处的其他部件;或客户端计算装置、工作空间服务的客户端侧部件、防火墙、或客户端网络上的其他部件)可使用类似于已经被配置来提供那些部件的功能性的计算机系统1100的计算机系统来实现。在示出的实施方案中,计算机系统1100包括通过输入/输出(I/O)接口1130耦接到系统存储器1120的一个或多个处理器1110。计算机系统1100还包括耦接到I/O接口1130的一个或多个网络接口1140。在一些实施方案中,网络接口1140可包括两个或更多个网络接口,其包括例如,被配置用于在托管在计算机系统1100上的虚拟化计算资源与其客户端之间的通信的网络接口,以及被配置用于在虚拟化计算资源与外部资源、计算系统、数据中心、或除代表其托管虚拟化计算资源的提供者网络和客户端网络之外的网络上的互联网目的地之间的通信的网络接口。

在各种实施方案中,计算机系统1100可以是包括一个处理器1110的单处理器系统,或包括若干处理器1110(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器1110可以是能够执行指令的任何处理器。例如,在各种实施方案中,处理器1110可以是实现各种指令集架构(ISA)任何一种架构的通用或嵌入式处理器,所述架构诸如x86、PowerPC、SPARC、或MIPS ISA或任何其他合适ISA。在多处理器系统中,处理器1110中的每一个通常可以但不一定实现相同的ISA。

系统存储器1120可被配置来存储可由处理器1110访问的指令和数据。在各种实施方案中,系统存储器1120可使用任何合适存储器技术来实施,所述存储器技术诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型存储器或任何其他类型的存储器。在所示出的实施方案中,实现一个或多个所需功能的程序指令和数据(诸如以上所描述的用于提供到云计算环境中的工作空间的低延迟连接的那些方法、技术和数据)被示出作为代码1125和数据1126存储在系统存储器1120内。

在一个实施方案中,I/O接口1130可被配置来协调处理器1110、系统存储器1120和装置中的任何外围装置之间的I/O流量,所述外围装置包括网络接口1140或其他外围接口中的任何。在一些实施方案中,I/O接口1130可执行任何必需协议、时序或其他数据变换以将来自一个部件(例如,系统存储器1120)的数据信号转换成适合于由另一个部件(例如,处理器1110)使用的格式。在一些实施方案中,I/O接口1130可包括对于通过各种类型的外围总线附接的装置的支持,所述外围总线诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的改变形式。在一些实施方案中,I/O接口1130的功能可分到两个或更多个单独的部件中,诸如北桥和南桥。另外,在一些实施方案中,I/O接口1130的一些或所有功能,诸如到系统存储器1120的接口,可直接并入处理器1110中。

网络接口1140可被配置来允许数据在计算机系统1100与附接到一个或多个网络1150的其他装置1160(例如像如附图中所示的其他计算机系统或装置)之间进行交换。在各个实施方案中,网络接口1140可以支持通过任何合适有线或无线通用数据网络(例如像以太网网络类型)进行通信。另外,网络接口1140可以支持通过电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、通过存储区域网络(诸如光纤通道SAN)或通过任何其他合适类型的网络和/或协议进行通信。

在一些实施方案中,系统存储器1120可以是被配置来存储如以上所描述的用于实现本文所描述的提供到云计算环境中的工作空间的低延迟连接的技术的各种实施方案的程序指令和数据的计算机可访问介质的一个实施方案。然而,在其他实施方案中,可以在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访问(例如,计算机可读)介质可包括非暂时性存储介质或存储器介质,诸如磁性介质或光学介质,例如通过I/O接口1130耦接到计算机系统1100的磁盘或DVD/CD。非暂时性计算机可访问(例如,计算机可读)存储介质还可以包括可作为系统存储器1120或另一类型的存储器包括在计算机系统1100的一些实施方案中的任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。另外,计算机可访问介质可包括传输介质或信号(诸如电信号、电磁信号或数字信号),通过通信介质(诸如网络和/或无线链路)传送,诸如可通过网络接口1140来实现。

本公开的实施方案可以鉴于以下条款来描述:

1.一种系统,其包括:

定位在多个地理区域中的多个计算节点,其共同向一个或多个客户端提供虚拟计算服务,所述计算节点中的每一个包括至少一个处理器和存储器;

多个虚拟化计算资源实例,各自在所述区域的相应一个中的数据中心内的所述计算节点的相应一个上执行;以及

多个网关部件,其中所述网关部件的每一个托管在位于所述区域的相应一个中的存在点位置处的所述计算节点的相应一个上;

其中所述虚拟化计算资源实例中的一个或多个被配置来实现虚拟桌面服务的管理部件;

其中所述多个网关部件中的至少一些和所述虚拟桌面服务的所述管理部件在所述虚拟桌面服务的虚拟私有云内彼此互操作;

其中所述虚拟化计算资源实例中的一个被配置来实现虚拟桌面实例;

其中所述多个网关部件中的两个或更多个被配置作为用于客户端装置与所述虚拟桌面服务之间的网络接口,其中客户端装置通过公共网络与所述两个或更多个网关部件通信;

其中响应于从客户端装置接收连接到所述虚拟桌面实例的请求,所述虚拟桌面服务的所述管理部件被配置来建立在所述虚拟桌面实例与所述两个或更多个所述网关部件中的一个之间的通信通道,用于交互视频流在所述客户端装置与所述虚拟桌面实例之间的双向传送,其中所述交互视频流包括从所述虚拟桌面实例传送到所述客户端装置的像素流、以及从所述客户端装置传送到所述虚拟桌面实例的多个输入,所述多个输入表示与所述虚拟桌面实例的用户交互。

2.如条款1所述的系统,其中所述两个或更多个所述网关部件中的所述一个和所述虚拟化计算资源实例定位在所述区域的不同区域中,所述虚拟桌面实例在所述虚拟化计算资源实例上执行。

3.如任何前述条款所述的系统,其中所述虚拟桌面服务的所述管理部件另外被配置来至少部分取决于所述客户端装置位于的所述区域确定,在建立所述通信通道之前,所述两个或更多个所述网关部件中的哪些用于所述交互视频流在所述客户端装置与所述虚拟桌面实例之间的双向传送。

4.如任何前述条款所述的系统,其中所述虚拟化计算资源实例是客户端的虚拟私有云内操作的多个虚拟化计算资源实例中的一个,所述虚拟桌面实例在所述虚拟化计算资源实例上执行。

5.一种方法,其包括:

由一个或多个计算机执行以下各项:

从客户端装置接收开始虚拟桌面实例上的虚拟桌面会话的请求,其中所述虚拟桌面实例托管在定位在多个可用性区中并且共同实现虚拟桌面服务的多个计算节点中的一个上;

建立在所述虚拟桌面实例与网关部件之间的通信通道,其中所述网关部件是被配置来提供在客户端装置与所述虚拟桌面服务之间的通信接口的多个网关部件中的一个,其中所述多个网关部件中的每一个托管在所述多个可用性区的相应一个中的存在点位置处的相应计算节点上,并且其中所述多个网关部件中的至少一些与所述虚拟桌面服务的一个或多个其他部件在所述虚拟桌面服务的虚拟私有云内互操作;以及

开始所述虚拟桌面实例上的虚拟桌面会话,其中所述开始包括发起交互视频流在所述虚拟桌面实例与所述客户端装置之间经由所述网关部件的传送,以使得所述客户端装置通过公共网络与所述网关部件通信,其中所述交互视频流包括从所述虚拟桌面实例传送到所述客户端装置的像素流、以及从所述客户端装置传送到所述虚拟桌面实例的多个输入,所述多个输入表示与所述虚拟桌面实例的用户交互。

6.如条款5所述的方法,其中所述虚拟桌面实例通过在客户端的虚拟私有云内操作的多个虚拟化计算资源实例中的一个实现,从所述客户端装置接收代表所述客户端的所述请求。

7.如条款5或6所述的方法,其中所述多个网关部件中的每一个是代表多个客户端提供客户端装置与所述虚拟桌面服务之间的通信接口的多租户网关部件。

8.如条款5-7中任一项所述的方法,其还包括,在所述建立之前:

至少部分取决于所述多个网关部件中的至少一个被托管在其处的所述存在点位置与所述客户端装置的接近度,确定所述多个网关部件中的哪一个用于处理所述交互视频流在所述客户端装置与所述虚拟桌面实例之间的传送。

9.如条款8所述的方法,

其中所述确定由所述虚拟桌面服务的管理部件自动执行,所述虚拟桌面服务在定位在除所述网关部件位于的可用性区之外的可用性区中的数据中心中的计算节点上执行。

10.如条款8所述的方法,

其中所述确定由在所述客户端装置上执行的所述虚拟桌面服务的客户端侧部件执行。

11.如条款10所述的方法,其还包括,在所述确定之前:

将信息传送到所述虚拟桌面服务的所述客户端侧部件,从而识别可用于提供所述客户端装置与所述虚拟桌面服务之间的通信接口的一组两个或更多个网关部件,并且识别它们被托管在其中的所述存在点位置。

12.如条款5-11中任一项所述的方法,

其中所述发起所述交互视频流在所述虚拟桌面实例与所述客户端装置之间经由所述网关部件的传送包括发起所述交互视频流从所述虚拟桌面实例到所述网关部件通过无状态、基于数据报的网络协议的传送。

13.如条款12所述的方法,其还包括:

通过所述公共网络上的部件将所述交互视频流从所述无状态基于数据报的协议网络协议转换到有状态网络协议;以及

向所述客户端装置上的逻辑端点提供所述转换的交互视频流。

14.如条款5-13中任一项所述的方法,其中多个网关部件的所述至少一些中的每一个通过所述虚拟桌面服务的所述虚拟私有云内执行的一个或多个虚拟化计算资源实例来实现。

15.如条款5-14中任一项所述的方法,其中所述网关部件在除所述虚拟桌面服务的所述虚拟私有云之外的虚拟私有云内操作,并且其中所述另一个虚拟私有云使用虚拟私有云对等机构通信联接到所述虚拟桌面服务的所述虚拟私有云。

16.如条款5-15中任一项所述的方法,其中所述交互视频流还包括一个或多个命令,所述一个或多个命令从所述虚拟桌面实例传送到所述客户端装置,并且表示指导所述客户端装置产生或呈现用于通过所述客户端装置显示的像素的指令。

17.一种存储程序指令的非暂时性计算机可读存储介质,所述程序指令在一个或多个计算机上执行时致使所述一个或多个计算机执行以下操作:

配置虚拟化计算资源实例以便代表一个或多个客户端提供虚拟桌面会话,其中所述虚拟化计算资源实例托管在定位在多个区域中并且共同提供虚拟计算服务的多个计算节点中的一个上;

从客户端接收打开所述虚拟化计算资源实例上的虚拟桌面会话的请求;

确定被配置来提供客户端与所述虚拟计算服务之间的网络接口的多个网关部件中的哪一个将用于处理交互视频流在所述虚拟化计算资源实例与所述客户端之间的传送,其中所述多个网关部件中的每一个托管在所述区域的相应一个中的存在点位置处的相应计算节点上,其中所述多个网关部件中的至少一些与所述虚拟计算服务的一个或多个其他部件在虚拟私有云内参与;以及其中所述确定至少部分取决于所述客户端位于的所述区域;

代表所述客户端建立在所述虚拟化计算资源实例与所述确定的网关部件之间的通信通道。

18.如条款17所述的非暂时性计算机可读存储介质,其中当在所述一个或多个计算机上执行时,所述程序指令致使所述一个或多个计算机执行以下操作:

开始所述虚拟化计算资源实例上的虚拟桌面会话,其中所述开始包括发起交互视频流在所述虚拟化计算资源与所述客户端之间经由所述网关部件的传送,以使得所述客户端通过公共网络与所述网关部件通信,其中所述交互视频流包括从所述虚拟化计算资源实例传送到所述客户端的像素流、以及从所述客户端传送到所述虚拟化计算资源实例的多个输入,所述多个输入表示与所述虚拟桌面实例的用户交互。

19.如条款17或18所述的非暂时性计算机可读存储介质,其中所述确定被配置来提供客户端与所述虚拟计算服务之间的网络接口的多个网关部件中的哪一个将用于处理交互视频流在所述虚拟化计算资源实例与所述客户端之间的传送包括自动识别托管在最靠近所述客户端的所述存在点位置的存在点位置处的计算节点上的网关部件。

20.如条款17-19中任一项所述的非暂时性计算机可读存储介质,其中所述确定被配置来提供客户端与所述虚拟计算服务之间的网络接口的多个网关部件中的哪一个将用于处理交互视频流在所述虚拟化计算资源实例与所述客户端之间的传送包括取决于用于从托管在所述客户端附近的存在点位置处的一个或多个计算节点上的所述多个网关部件的两个或更多个中选择网关部件的负载平衡策略或优先级策略,来选择托管在除最靠近所述客户端的所述存在点位置之外的存在点位置处的计算节点上的网关部件。

21.如条款17-20中任一项所述的非暂时性计算机可读存储介质,其中当在所述一个或多个计算机上执行时,所述程序指令致使所述一个或多个计算机执行以下操作:

自动确定一组两个或更多个网关部件,其可用于提供客户端与所述虚拟计算服务之间的网络接口、以及它们被托管在其处的所述存在点位置;以及

修改可用于提供客户端与所述虚拟计算服务之间的网络接口的所述一组两个或更多个网关部件,取决于以下中的一个或多个:所述两个或更多个网关部件被托管在其上的所述计算节点中的一个或多个上经历的工作负载的增加或减少、与所述两个或更多个网关部件中的一个的通信的损耗、或所述两个或更多个网关部件中的一个被托管在其上的计算节点的故障。

22.如条款17-21中任一项所述的非暂时性计算机可读存储介质,其中当在所述一个或多个计算机上执行时,所述程序指令致使所述一个或多个计算机执行以下操作:

响应于故障或错误情况的检测,确定被配置来提供客户端与所述虚拟计算服务之间的网络接口的所述多个网关部件中的不同一个将用于处理交互视频流在所述虚拟化计算资源实例与所述客户端之间的传送,以及

代表所述客户端建立在所述虚拟化计算资源实例与所述不同网关部件之间的通信通道。

如在图中所示和本文所描述的各种方法表示方法的示例性实施方案。所述方法可以软件、硬件或其组合实现。方法的顺序可以改变,并且各种要素可以添加、重新排序、组合、省略、修改等。

受益于本公开的本领域技术人员将清楚地知晓可做出各种修改和变化。旨在包括所有这些修改和变化,并且因此,以上描述应视为具有说明性而非限制性意义。

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