CN107683461A - 在虚拟桌面基础设施中使用多个协议 - Google Patents

在虚拟桌面基础设施中使用多个协议 Download PDF

Info

Publication number
CN107683461A
CN107683461A CN201680018045.9A CN201680018045A CN107683461A CN 107683461 A CN107683461 A CN 107683461A CN 201680018045 A CN201680018045 A CN 201680018045A CN 107683461 A CN107683461 A CN 107683461A
Authority
CN
China
Prior art keywords
communication
function
communication protocol
computer
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680018045.9A
Other languages
English (en)
Other versions
CN107683461B (zh
Inventor
戴维·佩西
内拉姆曼加勒·克里希纳斯瓦米·斯里尼瓦斯
哈基姆丁·哈尼夫
尤金·迈克尔·法雷尔
迪帕克·苏里亚纳拉亚纳
瓦伦·维尔马
埃里克·乔纳森·特尔维克
南森·巴塞洛缪·托马斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN107683461A publication Critical patent/CN107683461A/zh
Application granted granted Critical
Publication of CN107683461B publication Critical patent/CN107683461B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种用于为服务提供商环境中的虚拟桌面实例选择通信协议的方法可以包括:使用与第一通信协议相关联的第一通信信道,向客户端计算设备提供对在服务器计算机上运行的虚拟桌面实例的访问。检测来自所述设备的用户的功能请求,所述所请求的功能不被所述第一通信协议支持。可以基于所述所请求的功能来从多个可用通信协议选择第二通信协议。所述第二通信协议可以支持所述所请求的功能。可以验证用于使用所述第二通信协议的用户授权。在成功验证之后,使用所述第二通信协议在所述服务器计算机与所述设备之间建立第二通信信道用于执行所述功能,同时使用所述第一通信信道保持对所述虚拟桌面实例的访问。

Description

在虚拟桌面基础设施中使用多个协议
背景技术
云计算是可在远程位置中获得并可在网络(例如互联网)上访问的计算资源(硬件和软件)的使用。在具有许多计算设备的计算环境(例如具有许多服务器计算机的虚拟服务器或云计算环境)中,计算资源的使用可以提供若干优势,包括成本优势和/或能够快速适应变化的计算资源需求。
为了促进对数据中心资源的更多利用,虚拟化技术可允许单个物理计算机器托管一个或多个虚拟桌面实例,对于连接的计算机用户来说,这些虚拟桌面实例作为独立的计算机机器出现并操作。通过虚拟化,单个物理计算设备可以动态方式创建、维护或删除虚拟机。反过来,用户可以从数据中心请求计算机资源,并且可以在“根据需要”的基础上或至少在“按要求”的基础上向用户提供不同数量的虚拟机资源。随着对云计算资源的使用的增加,运行虚拟桌面实例的一些云计算环境在管理资源分配和提供通信能力以满足与虚拟桌面实例相关联的客户请求的功能方面可能效率不高。
附图简述
将参考附图描述根据本公开内容的各种实施方案,其中:
图1是根据本公开的实施方案的支持服务提供商中的虚拟桌面基础设施的示例性网络环境的图。
图2是根据本公开的实施方案的用于使用一个或多个通信协议访问虚拟桌面实例的示例性客户端计算设备认证的框图。
图3是根据本公开的实施方案的运行可将多个通信协议与多个设备部件相关联的远程计算应用的示例性客户端计算设备的框图。
图4是示出根据本公开的示例性实施方案的使用协议选择服务在多租户环境中运行的多个虚拟机实例的示例性***图。
图5示出了根据一个实施方案的包括与控制平面相关联的多个管理部件的示例性***的进一步细节,所述控制平面可以用于提供协议选择。
图6示出了根据一个实施方案作为用于运行虚拟机实例的硬件资产的多个主机计算机、路由器和交换机的示例,其中主机计算机具有可配置的协议选择相关功能。
图7-8是根据本公开的实施方案的为服务提供商环境中的虚拟桌面实例选择通信协议的示例性方法的流程图。
图9描绘了可以实现所描述的创新的合适的计算环境的一般化示例。
详述
虚拟机映像含有操作***(例如,Linux)和在虚拟环境中启动虚拟机所需的其它数据。虚拟机映像类似于物理计算机的磁盘卷,并且可以包括文件***、操作***和作为机器启动所需的其它部件。为了启动虚拟机,需要选择硬件。硬件选择可通过可允许各种不同大小的存储器、CPU容量、I/O性能等实例类型来实现。虚拟机映像和实例类型的组合可用于创建可以在例如多租户网络环境中的主机服务器计算机的云计算资源上启动的“实例”或虚拟机。如本文所使用,术语“虚拟机”和“虚拟机实例”是可互换的。
如本文所使用,术语“虚拟桌面基础设施”是指具有多个服务器计算机的环境,其中桌面操作***可以在多个服务器计算机中的至少一个上启动的虚拟机实例上运行。运行桌面操作***的虚拟机实例可以称为虚拟桌面实例。尽管在由服务提供商提供的虚拟桌面基础设施的上下文中描述了本文公开的至少一些实施方案,但其它实施方案可以在本地(on-premise)网络或者与服务提供商网络和本地网络的组合下使用。
以下描述涉及支持创建可以使用多种通信协议的虚拟桌面基础设施环境的技术和解决方案。更具体地,服务提供商环境的用户可以使用客户端计算设备来访问在虚拟机上运行的虚拟桌面实例。可以使用与第一通信协议相关联的通信信道来提供对虚拟桌面实例的访问。用户可以请求可能不被第一通信协议支持的功能(例如,USB重定向)。可以使用服务提供商的协议选择服务来选择支持所请求的功能的另一(第二)通信协议。可以使用协议选择表和/或一个或多个策略文档(例如,全局策略文档和/或与用户的客户账户相关联的策略文档)来执行协议选择。用户可以被认证用于使用第二通信协议,并且在认证时,可以建立第二通信信道来处理所请求的功能,同时第一通信信道仍然是打开的。在示例性实施方案中,用于服务提供商环境网络的一个或多个网络健康特性(例如,网络等待时间)和/或客户端计算设备和运行虚拟桌面实例的服务器计算机的一个或多个软件和/或硬件特性(例如,CPU、存储器、GPU可用性、操作***版本等)可以用于确定所有通信是否都应切换到与第二通信协议相关联的第二通信信道,或者通信是否应在第一通信信道与第二通信信道之间分开。在这方面,可以使用多个通信协议来支持客户端计算设备对虚拟桌面实例的访问。
图1是根据本公开的实施方案的支持服务提供商中的虚拟桌面基础设施的示例性网络环境的图。参考图1,网络环境100可以包括经由网络112与客户端计算设备110通信的服务提供商102。服务提供商102可以是多租户云网络环境,其中一个或多个客户端(例如,客户端计算设备110的用户)可以运行一个或多个服务器计算机上的一个或多个虚拟机实例(VMI)(例如,服务器计算机106上的实例126)(即使在图1中仅示出了单个服务器计算机106,服务提供商102可以使用多个服务器计算机)。例如,虚拟机实例126可以执行操作***和应用软件的实例来创建虚拟桌面实例。在一个或多个服务器计算机上运行的每个虚拟桌面实例均可以被一个或多个客户端计算设备(例如客户端计算设备110)访问。服务器计算机(例如,106)可以是例如由(或代表)服务提供商102的一个或多个客户端操作的客户端服务器。服务提供商102还可以包括具有多个端点118、…、124的端点服务104和协议选择服务(PSS)108。
虚拟桌面实例126还可以包括协议代理128。协议代理128可以包括合适的逻辑、接口和/或代码,并且可能可操作以管理虚拟桌面实例126的流传输,包括为新的通信链路设立新的通信端口,和/或终止现有的通信链路和端口。在示例性实施方案中,协议代理128可以作为实例126上的应用运行。
服务器计算机106可以包括实例管理器130。实例管理器122可以在与虚拟桌面实例126相同的服务器计算机(例如,106)上,或者在单独的计算机上。实例管理器130可以跟踪在服务器计算机(例如,106)上执行的实例的进度、监视和协调由用户在经由客户端计算设备与实例(例如,126)进行互动时创建的数据的存储、并监视服务提供商102的服务器计算机的和在客户端计算设备(例如,110)上运行的远程计算应用(例如,116)的整体健康状况和状态。实例管理器130可以是管理平面(例如,管理服务器计算机)的一部分,如图5所示。
服务器计算机106还可以包括管理程序131和服务器能力块132。管理程序131可以被配置为使得能够执行服务器计算机106上的多个实例(例如,实例126)。下面参考图4及图6进一步讨论管理程序。服务器计算机106可以具有各种本地计算资源,例如中央处理单元和架构、存储器、大容量存储、图形处理单元(GPU)、通信网络可用性和带宽等。服务器计算机106的各种计算资源的信息被指定为服务器能力132。
客户端计算设备110可以用于向用户提供对远程操作***(例如,虚拟桌面实例126)以及应用的访问。在说明性实施方案中,客户端计算设备110可以对应于各种各样的计算设备,包括个人计算设备、膝上型计算设备、手持式计算设备、终端计算设备、移动设备(例如,移动电话、平板计算设备、电子书阅读器等)、无线设备、各种电子设备和电器等。在说明性实施方案中,客户端计算设备110包括用于经由例如广域网或局域网的通信网络112建立通信的必要的硬件和软件部件。例如,客户端计算设备110可以配备有联网设备和浏览器软件应用,所述联网设备和浏览器软件应用促进经由互联网或内联网与服务提供商102中的服务器计算机106中的一个或多个的通信。客户端计算设备110可以具有各种本地计算资源,例如中央处理单元和架构、存储器、大容量存储、图形处理单元(GPU)、通信网络可用性和带宽等。关于客户端计算设备110的各种计算资源的信息被指定为客户端能力114。
在一个实施方案中,客户端计算设备110可以运行远程计算应用116。远程计算应用116可以请求访问由服务提供商102的服务器计算机106托管的虚拟桌面实例(例如,126)。远程计算应用116还可以管理客户端计算设备110与服务提供商102之间的远程计算会话。另外,远程计算应用116可以促进在一个或多个通信协议端点(例如,使用多个通信协议中的一个的通信链路)与设备部件(如图3中更详细地示出)之间建立连接。
端点服务104可以包括多个端点118、…、124。端点118、…、124中的每一个均可以包括合适的逻辑、电路、接口和/或代码,并且可能可操作以提供一个或多个服务提供商客户端(例如,客户端设备110的用户)的认证,并促进客户端计算设备110与服务器计算机(例如,106)之间的通信。端点118、…、124中的每一个可以包括安全网关、路由器或可操作以使用与多个通信协议中的至少一个相关联的一个或多个通信链路(例如,与通信协议1、…、N相关联的通信链路146、…、148和142、…、144)的另一网络设备。另外,端点服务104内的端点中的每一个可以是位于与服务提供商102相关联的多个单独区域(例如,单独地理区域)中的一个中的云端点。下面参考图2在本文中描述用于在客户端计算设备110、端点服务104和服务器计算机106之间建立安全链路的示例性通信序列。
协议选择服务(PSS)108可以包括合适的逻辑、电路、接口和/或代码,并且可能可操作以选择通信协议并且促进在客户端计算设备110与服务器计算机106之间建立与通信协议相关联的通信链路(或信道)。PSS 108还可以使用策略文档(例如,138和/或140),其可以指定与协议选择功能有关的一个或多个策略。例如,客户帐户策略138可以指定客户(例如,计算设备110的用户)被授权使用与访问虚拟桌面实例126相关联的特定功能的一个或多个通信协议。可以由客户端设备110的用户请求的与对虚拟桌面实例126的访问有关的示例性功能可以包括多媒体数据处理功能、USB数据处理功能(例如,USB重定向)、虚拟信道数据处理功能和键盘数据处理功能。可以使用的与所请求的功能有关的示例性通信协议可以包括PC-over-IP(PCoIP)通信协议和远程桌面协议(RDP)。
全局策略140可以指定可以使用的与服务提供商环境102的所有用户有关的协议选择策略。策略文档138和140可以由例如管理员通过管理门户141更新。在选择通信协议期间,PSS 108还可以使用网络监视器136和协议决策表134,以及确定是否同时维持打开的两个或更多个通信链路(例如,其中的每一者与不同的通信协议相关联)或者是否使用单个通信链路切换计算设备110、端点服务104和服务器计算机102之间的所有通信业务量。例如,PSS 108可以接收关于客户端能力114、服务器能力132的信息和来自网络监视器136的信息,并且使用所接收的信息来确定是否将来自基于一个通信协议的现有通信链路的通信切换到基于另一种通信协议的新的通信链路。从网络监视器供应的信息可以包括关于服务提供商102内的通信网络的健康信息,例如网络等待时间、带宽等。
根据本公开的示例性实施方案,PSS 108可以被实现为服务提供商102内的独立服务(如图1中所示),或者其可以被实现为一个或多个服务器计算机(例如,106)内的代码库(即,软件)。
图2是根据本公开的实施方案的用于使用一个或多个通信协议访问虚拟桌面实例的示例性客户端计算设备认证的框图。参考图1-2,设备110的用户可以是服务提供商102的客户端,并且可以使用服务器计算机106来运行虚拟桌面实例126(例如,用户可以付费的方式从服务提供商102获得客户账户,从而使用户有权在一个或多个服务器计算机(如服务器计算机106)上运行的一个或多个实例上启动虚拟桌面)。换句话说,虚拟桌面实例126可以与设备110的用户的客户帐户相关联。用户一次可能拥有不止一个虚拟桌面实例,但一次可能能够登录和使用一个虚拟桌面实例。
在用于获得对虚拟桌面实例126的访问的示例性通信交换中,客户端计算设备110的用户可以通过(在参考编号1处)将登录ID(用户名)和密码(或与客户帐户相关联的任何其它登录/认证凭证)发送到端点118来起始与端点服务104的通信。端点118可以认证用户,并且可以(在参考编号2处)将认证令牌210发送回到客户端计算设备110。客户端设备110然后可以(在参考编号3处)将认证令牌210发送到端点120。端点120可以(在参考编号4处)将令牌转发到端点118,以确认令牌属于请求用户,并且用户具有有效的客户账号。可以(在参考编号5处)将用户被认证的确认从端点118发送到端点120。然后,端点120可以(在参考编号6处)返回虚拟桌面实例标识212(其可以包括端口编号、例如用于使用协议1建立通信链路204的端口)、网关IP地址214和安全令牌216。网关IP地址214可以是端点122的IP地址,端点122可以在使用通信链路202和204的同时在客户端计算设备110与虚拟桌面实例126之间作为代理进行操作。安全令牌216可以用于认证客户端设备110,以使用端点122作为代理,使用多个可用通信协议中的至少一个(例如,协议1)与虚拟桌面实例126进行通信。
可以将虚拟桌面实例标识212、网关IP地址214和安全令牌216传送到端点122(在参考编号7处)。端点122可(在参考编号8处)将安全令牌216传送到已发出令牌的端点120。端点120可以认证令牌216,并且可以将对认证的确认往回提供给端点122(在参考编号9处)。协议选择服务108然后可以与在虚拟桌面实例126处(例如,使用虚拟桌面实例标识212)的协议代理128进行通信,并且使协议代理128打开用于使用通信协议1建立通信链路204的新端口。可以通过协议选择服务使用协议决策表134来选择通信协议1。更具体地,协议决策表134可以使一个或多个设备功能(例如,设备110访问实例128所请求的或必需的功能)与从多个可用通信协议选择的一个或多个通信协议相关联。
在示例性实施方案中,PSS 108可以使用全局策略文档和/或客户账户策略138来选择用于通信链路202和204的通信协议。策略文档138/140可以指定将哪个通信协议用于计算设备110访问虚拟桌面实例126所需的特定功能。在使用这种协议建立链路之前,PSS108还可以认证客户端设备110的用户来使用给定的通信协议。可以使用例如客户帐户策略138来执行用户认证,客户帐户策略138可以指定客户端/用户被授权在服务提供商环境内使用哪些协议。
在协议代理128打开新端口之后,可以使用通信协议1建立通信链路202和204(或图1中的链路142、146),以使客户端设备110能够访问虚拟桌面实例126。在另一个示例性实施方案中,PSS 108可以检测由客户端设备110请求的新功能,其中新功能不被与通信信道/链路202/204相关联的通信协议1支持。例如,设备110的用户可以使用与访问实例126有关的USB记忆棒,然而,USB重定向可能不被通信协议1支持。由参考编号1-6指示的通信序列可以再次发生,然而,端点120可返回识别端点123的网关IP地址214,以及授权用户和客户端设备110使用与通信协议2相关联的通信链路206/208访问作为设备110与虚拟桌面实例126之间的代理的端点123的安全令牌216。
PSS 108可以选择通信协议2,使得它支持不被协议1支持的所请求的功能。协议2的选择可以基于协议决策表134、全局策略140和/或客户帐户策略138。作为替代,新协议2也可以由用户选择并经由端点123传送到PSS 108。与通信链路204类似,协议代理128可以建立与协议2相关联的新端口,使得PSS 108(或协议代理128)可以打开与通信协议2相关联的新的通信链路206/208(或图1中的144/148)。在这方面,客户端计算设备110可以同时使用至少两个不同的通信协议访问虚拟桌面实例126(即,通信链路202、…、208被同时打开和使用)。
在另一个示例性实施方案中,PSS 108可以使用客户端能力114、服务器能力132和/或来自网络监视器136的信息(例如,网络等待时间信息)来确定是否将来自第一协议类型的一个通信链路(例如,使用协议1的链路202/204)的通信业务量卸载(切换)到第二协议类型的另一通信链路(例如,使用协议2的链路206/208)。这种通信分配功能可以自动地或者经过网络管理员的批准(例如经由门户141)来执行。另外,在任何时间使用新的通信协议(例如,建立新的通信链路以处理某一功能)或者将通信业务量从一个协议切换(完全或部分地)到另一个协议,可以在客户端计算设备110处显示通知。
图3是根据本公开的实施方案的运行可将多个通信协议与多个设备部件相关联的远程计算应用的示例性客户端计算设备的框图。参考图3,示出了使用多个通信链路306、…、308的客户端计算设备110,所述多个通信链路使用不同的通信协议1、…、X。每个通信链路306、…、308可以用于处理由客户端设备110使用以访问虚拟桌面实例的特定类型的功能或通信。另外,通信链路306、…、308可以在对应的协议端点302、…、304处进入客户端计算设备110。根据本公开的示例性实施方案,远程计算应用116可以确定与给定协议相关联的一个或多个设备部件,且然后将来自该协议的通信业务量引导到一个或多个部件。例如,如果通信链路306使用RDP协议来处理USB重定向,则远程计算应用116可以将协议端点302与设备部件312(例如,USB端口与提供USB访问功能的相关联的部件)相关联。
图4是示出根据本公开的示例性实施方案的使用协议选择服务在多租户环境中运行的多个虚拟机实例的示例性***图。更具体地说,图4是基于网络的服务提供商400的计算***图,其示出了可以使用本文所述的实施方案的一个环境。作为背景,服务提供商400(即,云提供商)能够将计算和存储容量作为服务提供给最终接收者(例如,租户或客户)的社区。服务提供商400可以与图1-3中所示的服务提供商102相同。
在示例性实施方案中,服务提供商400可以由组织或代表组织为组织建立。也就是说,服务提供商400可以提供“私有云环境”。在另一个实施方案中,服务提供商400支持多租户环境,其中多个客户独立地操作(即,公共云环境)。一般来说,服务提供商400可以提供以下模型:基础设施即服务(“IaaS”)、平台即服务(PaaS)和/或软件即服务(SaaS)。可以提供其它模型。对于IaaS模型,服务提供商400可以将计算机提供为物理或虚拟机和其它资源。如下面进一步描述,虚拟机可以作为客体由管理程序运行。PaaS模型提供了计算平台,所述计算平台可以包括操作***、程序设计语言执行环境、数据库和web服务器。应用开发人员可以在服务提供商平台上开发和运行其软件解决方案,而无需购买和管理基础硬件和软件的成本。SaaS模型允许在服务提供商中安装和操作应用软件。在一些实施方案中,最终用户使用联网的客户设备例如台式计算机、膝上型计算机、平板电脑、智能手机等运行web浏览器或其它轻量级客户应用访问服务提供商400。本领域技术人员将认识到,服务提供商400可以被描述为“云”环境。
具体示出的服务提供商400包括多个服务器计算机402A-402D。虽然仅显示了四个服务器计算机,但可以使用任何数量的服务器计算机,且大型中心可以包括数千个服务器计算机。服务器计算机402A-402D可以提供用于执行软件实例406A-406D的计算资源。在一个实施方案中,实例406A-406D是虚拟机。如本领域中已知,虚拟机是如同物理机执行应用的机器(即,计算机)的软件实现方式的实例。在该示例中,服务器计算机402A-402D中的每一个可以被配置来执行管理程序408或另一类型的程序,所述另一类型的程序被配置来使得能够在单个服务器上执行多个实例406。例如,服务器402A-402D中的每一个可以(例如,经由管理程序408)配置以支持一个或多个虚拟机分区,其中每个虚拟机分区能够运行虚拟机实例(例如,服务器计算机402A可以被配置为支持三个虚拟机分区,其中的每一个运行对应的虚拟机实例)。另外,实例406中的每一个可以被配置为执行一个或多个应用。
服务提供商400还可以包括协议选择服务440,其可以具有本文关于PSS 108描述的功能。协议选择服务440可以被实现为提供商400内的独立服务、专用服务器(类似于服务器402A-402D)、一个或多个服务器402内的代码库和/或可以被实现为执行管理功能的服务器计算机404的一部分。例如,协议选择服务440可以被实现为管理部件410的一部分(如图5所看到)。
应理解,尽管本文公开的实施方案主要在虚拟机的上下文中描述,但可以在本文公开的概念和技术的情况下利用其它类型的实例。例如,可以在存储资源、数据通信资源以及其它类型的计算资源的情况下利用本文公开的技术。本文所公开的实施方案还可能直接在计算机***上执行应用的全部或一部分,而不利用虚拟机实例。
可以保留一个或多个服务器计算机404用于执行用于管理服务器计算机402、实例406、管理程序408和/或协议选择服务440的操作的软件部件。例如,服务器计算机404可以执行管理部件410。客户可以访问管理部件410以配置由客户购买的实例406的操作的各个方面。例如,客户可以购买、出租或租赁实例,并且对实例的配置进行改变。客户还可以指定与所购买实例如何回应于需求而进行缩放有关的设置。
服务器计算机404还可以包括存储器452,其可以被协议选择服务440用作处理存储器。自动缩放部件412可以基于客户定义的规则来缩放实例406。在一个实施方案中,自动缩放部件412允许客户指定用于确定应何时将新实例实例化的放大规则,以及用于确定应何时终止现有实例的缩小规则。自动缩放部件412可以由在不同服务器计算机402或其它计算设备上执行的多个子部件组成。自动缩放部件412可以通过内部管理网络监视可用的计算资源,并基于需要修改可用的资源。
可以使用部署部件414来协助客户部署计算资源的新实例406。部署部件可以访问与实例相关联的帐户信息,例如帐户的所有者是谁、***信息、所有者的国籍等。部署部件414可以从客户接收配置,其包括描述应如何配置新实例406的数据。例如,配置可以指定要安装在新实例406中的一个或多个应用、提供脚本和/或要执行以用于配置新实例406的其它类型的代码、提供指定应如何准备应用高速缓存的高速缓存逻辑以及其它类型的信息。部署部件414可以利用客户提供的配置和高速缓存逻辑来配置、准备好和启动新的实例406。配置、高速缓存逻辑和其它信息可以由客户使用管理部件410指定,或者通过将此信息直接提供给部署部件414来指定。实例管理器(例如,图5中的550)可以被认为是部署部件414的一部分。
客户帐户信息415可以包括与多租户环境的客户相关联的任何期望的信息。例如,客户的账户信息可以包括客户的唯一标识符、客户地址、账单信息、许可信息、用于启动实例的自定义参数、调度信息、自动缩放参数、用于访问帐户的先前的IP地址等。
可以利用网络430来将服务器计算机402A-402D和服务器计算机404互连。网络430可以是局域网(LAN),并且可以连接到广域网(WAN)440,使得最终用户可以访问服务提供商400。应理解,图4所示的网络拓扑结构已经简化,并且可以利用更多的网络和联网设备来互连本文公开的各种计算***。
图5示出了根据一个实施方案的包括与控制平面相关联的多个管理部件的示例性***的进一步细节,所述控制平面可以用于提供协议选择。更具体地说,图5更详细地示出了可以在服务提供商400的多租户环境内实现协议选择服务440的管理部件410。
为了访问和利用实例(例如图4的实例406),可以使用客户设备。客户设备510可以是移动式或其它的多种计算设备中的任一者,包括蜂窝电话、智能电话、手持式计算机、个人数字助理(PDA)、台式计算机等。客户设备510可以通过端点512来与服务提供商400通信,端点512可以是被设计来接收和处理应用程序设计接口(API)请求的DNS地址。特别地,端点512可以是被配置为暴露API的web服务器。使用API请求,客户设备510可以提出请求来实现本文描述的任何功能,或者访问由服务提供商400提供的一个或多个服务。可以在服务提供商400内部的其它服务515同样可以向端点512提出API请求。来自客户端的API请求可以通过接纳控制514并进入协议选择服务440,以便访问服务提供商400的与协议选择相关的功能。
可能包括或可能不包括在服务提供商400中(和/或管理部件410内)的其它一般管理服务包括接纳控制514,例如,一个或多个计算机作为接纳控制web服务一起操作。接纳控制514可以对服务提供商400内的数据的服务或存储的API请求进行认证、验证和解包。容量***516负责确定需要如何配置服务器以便通过在预测、配备以及实时配置和分配容量方面管理和配置物理库存来满足对不同实例类型的需求。容量***516维护容量池数据库518中的可用库存池。容量***516还可以监视容量水平,以便知道资源是容易获得还是受限制。
实例管理器550控制网络中的虚拟机实例的启动和终止。当(例如通过API请求)接收到指令来启动实例时,实例管理器550从容量池518中拉取资源,并在已经决定的主机服务器计算机上启动实例。存储管理器522和网络资源管理器524与实例管理器类似。存储管理器522涉及存储卷的起始和终止,而网络资源管理器524涉及路由器、交换机、子网等的起始和终止。分区网络540将进一步关于图6来描述,并且包括实例被启动的物理层。
协议选择服务440可以执行本文所述的协议选择功能(例如,参考PSS108描述的功能)。PSS 440可以与接纳控制514(例如,接收新的功能请求和建立新的通信链路的请求或者将通信从一个协议类型切换到另一个协议类型的请求)、与分区网络540(例如,用于访问在服务器计算机上运行的虚拟桌面实例)、策略文件138/140以及协议决定表134(例如,如关于图1所述)通信。
图6示出了根据一个实施方案作为用于运行虚拟机实例的硬件资产的多个主机计算机、路由器和交换机的示例,其中主机计算机具有可配置的协议选择相关功能。更具体地说,图6示出了分区网络640和与其相关联的物理硬件。分区网络640可以包括由例如路由器616的路由器耦合在一起的多个数据中心,例如数据中心610a、…、610n。
路由器616读取所接收的数据包中的地址信息,并确定数据包的目的地。如果路由器决定不同的数据中心含有主机服务器计算机,则将数据包转发到所述数据中心。如果数据包被寻址到数据中心610a中的主机,则将所述数据包传递到网络地址转译器(NAT)618,所述转译器将数据包的公共IP地址转换为私有IP地址。NAT 618还将私有地址转译为绑定在数据中心610a之外的公共地址。附加的路由器620可以被耦合到NAT 618以将数据包路由到主机服务器计算机的一个或多个机架630。每个机架630可以包括耦合到多个主机服务器计算机的交换机632。在641处以扩充视图示出了特定的主机服务器计算机。
每个主机641具有基础硬件650。在硬件650上方运行层的是管理程序或内核层660。管理程序或内核层660可以被分类为1型或2型管理程序。1型管理程序直接在主机硬件650上运行,以控制硬件并管理客体操作***。2型管理程序在常规的操作***环境内运行。因此,在2型环境中,管理程序可以是在操作***之上运行的不同的层,且操作***与***硬件互动。不同类型的管理程序包括基于Xen、Hyper-V、ESXi/ESX、Linux等,但也可以使用其它管理程序。在示例性实施方案中,管理程序层660可以包括DFS软件409,其可以用于安装DSN或DMN,如本文所述。
管理层670可以是管理程序的一部分或与其分离,并且通常包括访问硬件650所需的设备驱动器。分区680是由管理程序隔离的逻辑单元。每个分区680可以被分配硬件层的存储器、CPU分配、存储等的其自己的部分。另外,每个分区可以包括虚拟机及其自己的客体操作***(例如,VMI1可以在分区1上运行,并且VMIn可以在分区n上运行)。因此,每个分区680是被设计为独立于其它分区来支持其自己的虚拟机的容量的抽象部分。分区680上的一个或多个VMI(VMI1、…、VMIn)也可以执行与客户帐户相关联的虚拟桌面实例(VDI),类似于图1中的VDI 126。
图7-8是根据本公开的实施方案的为服务提供商环境中的虚拟桌面实例选择通信协议的示例性方法的流程图。参考图1-2和图7,当协议选择服务108可以使用与第一通信协议相关联的第一通信信道向客户端计算设备(例如,110)提供对在服务提供商环境中的服务器计算机(例如,106)上运行的虚拟桌面实例(例如,126)的访问时,示例性方法700可以在702开始。例如,端点服务104和客户端设备110可以执行如参考图2所描述的安全认证序列,PSS 108可认证设备110来使用通信协议1,且然后基于通信协议1建立通信链路202/204用于访问虚拟桌面实例126。
在704处,PSS 108可以检测来自客户端计算设备110的用户的对功能的请求,其中所请求的功能不被第一通信协议支持(即,与现有通信链路202/204相关联的协议1)。例如,所请求的功能可以是多媒体数据处理功能、USB数据处理功能、虚拟信道数据处理功能和/或键盘数据处理功能中的一者。在706处,PSS 108可以基于所请求的功能自多个可用通信协议选择第二通信协议,第二通信协议支持所请求的功能。PSS 108可以选择通信协议2,使得它支持不被协议1支持的所请求的功能。协议2的选择可以基于协议决策表134、全局策略140和/或客户帐户策略138。例如,在708处,PSS 108可以通过咨询客户帐户策略138和/或全局策略140来验证用户是否被授权使用第二通信协议(例如协议2)。
在710处,在成功验证之后,PSS 108可以使用第二通信协议(例如,协议2)在服务器计算机和客户端计算设备之间建立第二通信信道(例如,206/208),同时使用第一通信信道(例如,202/204)保持对虚拟桌面实例126的访问。与通信链路204类似,协议代理128可以建立与协议2相关联的新端口,使得PSS 108(或协议代理128)可以打开与通信协议2相关联的新的通信链路206/208(或图1中的144/148)。
参考图1-2和图8,当PSS 108可以授权客户端计算设备(110)的用户使用在服务提供商环境中可用的多个通信协议时,示例性方法800可以在802处开始。例如,PSS 108可以授权计算设备110的用户使用可用协议1、…、N中的一个或多个来建立基于这样的协议的各种通信链路。在804处,PSS 108可以使用与多个通信协议中的第一通信协议相关联的第一通信信道向客户端计算设备110提供对在服务提供商环境中的服务器计算机上运行的虚拟桌面实例(例如,126)的访问。例如,在设备110的用户已被认证(例如,基于参考图2和参考编号1-11描述的安全交换)之后,PSS可以使用通信协议1建立通信链路202/204。
在806处,PSS 108可以基于网络等待时间(例如,如由网络监视器136测量)、客户端计算设备的特性(例如,114)或服务器计算机的特性(例如,132)中的一个或多个通过第二通信信道(例如,206/208)向客户端计算设备110提供对虚拟桌面实例126的至少一些访问,其中第二通信信道与多个通信协议中的第二通信协议相关联。例如,PSS 108可以使用客户端能力114、服务器能力132和/或来自网络监视器136的信息(例如,网络等待时间信息)来确定是否将来自第一协议类型的一个通信链路(例如,使用协议1的链路202/204)的通信业务量卸载(或切换)到第二协议类型的另一通信链路(例如,使用协议2的链路206/208)。这种通信分配功能可以自动地或者经过网络管理员的批准(例如经由门户141)来执行。
图9描绘了可以实现所描述的创新的合适的计算环境的一般化示例。参考图9,计算环境900不旨在暗示对使用范围或功能的任何限制,因为创新可以在多种通用或专用计算***中实现。例如,计算环境900可以是各种计算设备(例如,台式计算机、膝上型计算机、服务器计算机、平板计算机等)中的任何一个。
参考图9,计算环境900包括一个或多个处理单元910、915和存储器920、925。在图9中,此基本配置930包含在虚线内。处理单元910、915执行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、专用集成电路(ASIC)中的处理器或任何其它类型的处理器。在多处理***中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图9示出了中央处理单元910以及图形处理单元或协处理单元915。有形存储器920、925可以是可由处理单元访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、快闪存储器等),或此两者的某一组合。存储器920、925以可适合于由处理单元执行的计算机可执行指令的形式存储实现本文所述的一个或多个创新(例如,功能)的软件980。
计算***可具有附加特征。例如,计算环境900包括存储设备940、一个或多个输入设备950、一个或多个输出设备960和一个或多个通信连接970。例如总线、控制器或网络的互连机构(未示出)将计算环境900的部件进行互连。通常,操作***软件(未示出)为在计算环境900中执行的其它软件提供操作环境,并且协调计算环境900的部件的活动。
有形存储设备940可以是可移除的或不可移除的,并且包括磁盘、磁带或磁带盒、CD-ROM、DVD或可用于以非暂时性方式存储信息并且可以在计算环境900内访问的任何其它介质。存储设备940存储用于实现本文所述的一个或多个创新的软件980的指令。
输入设备950可以是触摸输入设备,例如键盘、鼠标、笔或轨迹球、语音输入设备、扫描设备或向计算环境900提供输入的另一设备。输出设备960可以是显示器、打印机、扬声器、CD写入器或提供来自计算环境900的输出的另一设备。
通信连接970使得能够通过通信介质与另一个计算实体通信。通信介质传达例如计算机可执行指令、音频或视频输入或输出或经调制数据信号中的其它数据的信息。经调制数据信号是使其特性中的一个或多个以对信号中的信息进行编码这样的方式设定或改变的信号。通过举例的方式,而非限制,通信介质可以使用电、光、RF或其它载体。
虽然为了方便介绍而以特定、顺序的次序描述了一些所公开方法的操作,但应理解,这种描述方式涵盖重新布置,除非下面所述的具体语言需要特定的排序。例如,按顺序描述的操作可能在某些情况下被重新布置或同时执行。此外,为简单起见,附图可能没有示出所公开的方法可结合其它方法一起使用的各种方式。
任何所公开的方法可以被实现为计算机可执行指令,所述计算机可执行指令存储在一个或多个计算机可读存储介质(例如,一个或多个光学媒体光盘、易失性存储器部件(例如DRAM或者SRAM),或者非易失性存储器部件(例如快闪存储器或硬盘驱动器))上并且在计算机(例如,任何市售的计算机,包括智能电话或包括计算硬件的其它移动设备)上执行。术语计算机可读存储介质不包括通信连接,例如信号和载波。任何用于实现所公开技术的计算机可执行指令以及在实现所公开实施方案期间创建和使用的任何数据可被存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如专用软件应用、或经由web浏览器访问或下载的软件应用、或其它软件应用(例如远程计算应用)的一部分。这样的软件可以在例如单个本地计算机(例如,任何合适的市售计算机)上执行,或在使用一个或多个网络计算机的网络环境中执行(例如,经由互联网、广域网、局域网、客户服务器网络(例如云计算网络)或其它这样的网络)。
为了清楚起见,仅描述了基于软件的实现方式的某些选定方面。省略了本领域中公知的其它细节。例如,应理解,所公开的技术不限于任何特定的计算机语言或程序。例如,所公开的技术可以通过用C++、Java、Perl、JavaScript、Adobe Flash或任何其它合适的程序设计语言编写的软件来实现。同样地,所公开的技术不限于任何特定的计算机或硬件类型。合适的计算机和硬件的某些细节是公知的,并且不需要在本公开中详细阐述。
还应充分理解,本文所述的任何功能均可至少部分地由一个或多个硬件逻辑部件而非软件来执行。例如,但不限于,可以使用的说明性的类型的硬件逻辑部件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上******(SOC)、复杂可编程逻辑器件(CPLD)等。
此外,任何基于软件的实施方案(包括,例如用于使计算机执行任何所公开方法的计算机可执行指令)可被上传、下载或通过合适的通信措施远程访问。这种合适的通信措施包括例如互联网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括RF、微波和红外线通信)、电子通信或其它此类通信措施。
本公开的实施方案可以鉴于以下条款来描述:
1.一种用于为服务提供商环境中的虚拟桌面实例选择通信协议的方法,所述方法包括:
向客户端计算设备并使用与第一通信协议相关联的第一通信信道,提供对在所述服务提供商环境中的服务器计算机上运行的虚拟桌面实例的访问;
检测来自所述客户端计算设备的用户的功能请求,所述所请求的功能不被所述第一通信协议支持;
基于所述所请求的功能,从多个可用通信协议选择第二通信协议,所述第二通信协议支持所述所请求的功能;
验证所述用户是否被授权使用所述第二通信协议;以及
在成功验证之后,使用所述第二通信协议在所述服务器计算机与所述客户端计算设备之间建立第二通信信道,同时使用所述第一通信信道保持对所述虚拟桌面实例的访问。
2.根据条款1所述的方法,其进一步包括:
接收信息,所述信息指示:
所述客户端计算设备和所述服务器计算机的至少一个特性;以及
与所述服务提供商环境相关联的网络等待时间。
3.根据条款2所述的方法,其进一步包括:
基于以下各项中的一个或多个来确定是否关闭所述第一通信信道并使用所述第二通信信道提供对所述虚拟桌面实例的访问:
所述网络等待时间;
所述客户端计算设备的所述至少一个特性;或
所述服务器计算机的所述至少一个特性。
4.根据任一前述条款所述的方法,其中所述多个可用通信协议被列在所述服务提供商环境内的协议决策表中,所述多个可用通信协议中的每一个与由所述客户端计算设备执行的一个或多个功能相关联。
5.根据条款4所述的方法,其中所述验证进一步包括:
访问所述用户的客户帐户策略以确定所述用户是否被授权使用所述协议决策表中的所述多个可用通信协议中的一个或多个。
6.根据任一前述条款所述的方法,其中所述所请求的功能是以下各项中的至少一个:
多媒体数据处理功能;
USB数据处理功能;
虚拟信道数据处理功能;或
键盘数据处理功能。
7.一种包括指令的计算机可读存储介质,所述指令在执行时使计算机***:
向客户端计算设备并使用与多个通信协议的第一通信协议相关联的第一通信信道,提供对在服务器计算机上运行的虚拟桌面实例的访问;以及
基于网络等待时间、所述客户端计算设备的特性或所述服务器计算机的特性中的一个或多个,经由第二通信信道向所述客户端计算设备提供对所述虚拟桌面实例的所述访问中的至少一些;
其中所述第二通信信道与所述多个通信协议中的第二通信协议相关联。
8.根据条款7所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
关闭所述第一通信信道并提供对所述虚拟桌面实例的所述访问到与所述第二通信协议相关联的所述第二通信信道。
9.根据条款7或8所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
将与对所述虚拟桌面实例的所述访问相关联的多个功能中的至少一个切换到所述第二通信信道,同时使用所述第一通信信道向所述客户端计算设备提供所述多个功能中的至少另一个。
10.根据条款9所述的计算机可读存储介质,其中所述多个功能包括以下各项中的至少一个:
多媒体数据处理功能;
USB数据处理功能;
虚拟信道数据处理功能;或
键盘数据处理功能。
11.根据条款7-10中任一项所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***同时使用所述第一及第二通信协议来提供对所述虚拟桌面实例的所述访问。
12.根据条款7-11中任一项所述的计算机可读存储介质,其中所述多个通信协议包括以下各项中的至少一个:
PC-over-IP(PCoIP)通信协议;
Web实时通信(WebRTC)协议;或
远程桌面协议(RDP)。
13.根据条款7-12中任一项所述的计算机可读存储介质,其中所述客户端计算设备的所述至少一个特性或所述服务器计算机的所述至少一个特性包括以下各项中的至少一个:
至少一个CPU特性;
加密或解密设备的可用性;
存储器容量;或
图形处理单元(GPU)的可用性。
14.根据条款7-13中任一项所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
检测来自所述客户端计算设备的功能请求,所述所请求的功能不被所述第一通信协议支持。
15.根据条款14所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
验证所述所请求的功能被所述第二通信协议支持;以及
在成功验证之后,使用所述第二通信信道向所述客户端计算设备提供所述所请求的功能。
16.根据条款14或15所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
确定所述所请求的功能是否被所述第二通信协议支持;以及
在确定所述所请求的功能不被所述第二通信协议支持后:
基于所述所请求的功能,从所述多个通信协议选择第三通信协议,所述第三通信协议支持所述所请求的功能;以及
使用所述第三通信协议在所述服务器计算机与所述客户端计算设备之间建立第三通信信道用于执行所述功能,同时使用所述第一及第二通信信道保持对所述虚拟桌面实例的访问。
17.一种***,其包括:
通过网络耦合在一起以形成服务提供商环境的多个服务器计算机,所述服务器计算机的至少一部分用于执行虚拟桌面实例;以及
通信地耦合到所述多个服务器计算机和客户端计算设备的协议选择服务,所述协议选择服务可操作以:
向所述客户端计算设备提供所述虚拟桌面实例中的一个的第一功能,所述第一功能使用第一通信协议来提供;以及
向所述客户端设备提供所述虚拟桌面实例中的所述一个的第二功能,所述第二功能使用第二通信协议来提供并且与所述第一功能同时被提供,所述第一通信协议和所述第二通信协议是不同的协议。
18.根据条款17所述的***,其中所述协议选择服务进一步可操作以:
检测来自所述客户端计算设备或来自所述多个服务器计算机的对所述第二功能的请求,所述第二功能不被所述第一通信协议支持;
基于对所述第二功能的所述请求选择所述第二通信协议;以及
使用所述第二通信协议在所述多个服务器计算机与所述客户端计算设备之间建立通信信道。
19.根据条款17或18所述的***,其中所述协议选择服务进一步可操作以:
接收信息,所述信息指示所述客户端计算设备的至少一个特性、所述多个服务器计算机中的一个或多个的至少一个特性或与所述服务提供商环境相关联的网络等待时间。
20.根据条款19所述的***,其中所述协议选择服务进一步可操作以基于所述所接收的信息确定是否停止使用所述第一通信协议。
所公开的方法、装置和***不应被解释为以任何方式进行限制。相反,本公开内容涉及各种单独地以及以各种相互组合和子组合的所公开的实施方案的所有新颖的和非显而易见的特征和方面。所公开的方法、装置和***不限于任何特定的方面或特征或其组合,所公开的实施方案也不要求存在任何一个或多个特定的优点或解决任何一个或多个特定的问题。
鉴于可应用所公开的本发明的原理的许多可能的实施方案,应认识到,所示出的实施方案仅是本发明的优选实施方案,而不应被视为限制本发明的范围。相反,本发明的范围由所附的权利要求书限定。因此,作为发明所要求的是所有这些都在这些权利要求的范围内。

Claims (15)

1.一种包括指令的计算机可读存储介质,所述指令在执行时使计算机***:
向客户端计算设备并使用与多个通信协议的第一通信协议相关联的第一通信信道,提供对在服务器计算机上运行的虚拟桌面实例的访问;以及
基于网络等待时间、所述客户端计算设备的特性或所述服务器计算机的特性中的一个或多个,经由第二通信信道向所述客户端计算设备提供对所述虚拟桌面实例的所述访问中的至少一些;
其中所述第二通信信道与所述多个通信协议中的第二通信协议相关联。
2.根据权利要求1所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
关闭所述第一通信信道并提供对所述虚拟桌面实例的所述访问到与所述第二通信协议相关联的所述第二通信信道。
3.根据任一前述权利要求所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
将与对所述虚拟桌面实例的所述访问相关联的多个功能中的至少一个切换到所述第二通信信道,同时使用所述第一通信信道向所述客户端计算设备提供所述多个功能中的至少另一个。
4.根据权利要求3所述的计算机可读存储介质,其中所述多个功能包括以下各项中的至少一个:
多媒体数据处理功能;
USB数据处理功能;
虚拟信道数据处理功能;或
键盘数据处理功能。
5.根据任一前述权利要求所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***同时使用所述第一及第二通信协议来提供对所述虚拟桌面实例的所述访问。
6.根据任一前述权利要求所述的计算机可读存储介质,其中所述多个通信协议包括以下各项中的至少一个:
PC-over-IP(PCoIP)通信协议;
Web实时通信(WebRTC)协议;或
远程桌面协议(RDP)。
7.根据任一前述权利要求所述的计算机可读存储介质,其中所述客户端计算设备的所述至少一个特性或所述服务器计算机的所述至少一个特性包括以下各项中的至少一个:
至少一个CPU特性;
加密或解密设备的可用性;
存储器容量;或
图形处理单元(GPU)的可用性。
8.根据任一前述权利要求所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
检测来自所述客户端计算设备的功能请求,所述所请求的功能不被所述第一通信协议支持。
9.根据权利要求8所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
验证所述所请求的功能被所述第二通信协议支持;以及
在成功验证之后,使用所述第二通信信道向所述客户端计算设备提供所述所请求的功能。
10.根据权利要求8或9所述的计算机可读存储介质,其中所述指令在执行时进一步使所述计算机***:
确定所述所请求的功能是否被所述第二通信协议支持;以及
在确定所述所请求的功能不被所述第二通信协议支持后:
基于所述所请求的功能,从所述多个通信协议选择第三通信协议,所述第三通信协议支持所述所请求的功能;以及
使用所述第三通信协议在所述服务器计算机与所述客户端计算设备之间建立第三通信信道用于执行所述功能,同时使用所述第一及第二通信信道保持对所述虚拟桌面实例的访问。
11.一种***,其包括:
通过网络耦合在一起以形成服务提供商环境的多个服务器计算机,所述服务器计算机的至少一部分用于执行虚拟桌面实例;以及
通信地耦合到所述多个服务器计算机和客户端计算设备的协议选择服务,所述协议选择服务可操作以:
向所述客户端计算设备提供所述虚拟桌面实例中的一个的第一功能,所述第一功能使用第一通信协议来提供;以及
向所述客户端设备提供所述虚拟桌面实例中的所述一个的第二功能,所述第二功能使用第二通信协议来提供并且与所述第一功能同时被提供,所述第一通信协议和所述第二通信协议是不同的协议。
12.根据权利要求11所述的***,其中所述协议选择服务进一步可操作以:
检测来自所述客户端计算设备或来自所述多个服务器计算机的对所述第二功能的请求,所述第二功能不被所述第一通信协议支持;
基于对所述第二功能的所述请求选择所述第二通信协议;以及
使用所述第二通信协议在所述多个服务器计算机与所述客户端计算设备之间建立通信信道。
13.根据权利要求11或12所述的***,其中所述协议选择服务进一步可操作以:
接收信息,所述信息指示所述客户端计算设备的至少一个特性、所述多个服务器计算机中的一个或多个的至少一个特性或与所述服务提供商环境相关联的网络等待时间。
14.根据权利要求13所述的***,其中所述协议选择服务进一步可操作以基于所述所接收的信息来确定是否停止使用所述第一通信协议。
15.一种用于为服务提供商环境中的虚拟桌面实例选择通信协议的方法,所述方法包括:
向客户端计算设备并使用与第一通信协议相关联的第一通信信道,提供对在所述服务提供商环境中的服务器计算机上运行的虚拟桌面实例的访问;
检测来自所述客户端计算设备的用户的功能请求,所述所请求的功能不被所述第一通信协议支持;
基于所述所请求的功能,从多个可用通信协议选择第二通信协议,所述第二通信协议支持所述所请求的功能;
验证所述用户是否被授权使用所述第二通信协议;以及
在成功验证之后,使用所述第二通信协议在所述服务器计算机与所述客户端计算设备之间建立第二通信信道,同时使用所述第一通信信道保持对所述虚拟桌面实例的访问。
CN201680018045.9A 2015-03-25 2016-03-22 用于选择通信协议的方法、***和计算机可读存储介质 Active CN107683461B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/668,543 2015-03-25
US14/668,543 US10911574B2 (en) 2015-03-25 2015-03-25 Using multiple protocols in a virtual desktop infrastructure
PCT/US2016/023633 WO2016154226A1 (en) 2015-03-25 2016-03-22 Using multiple protocols in a virtual desktop infrastructure

Publications (2)

Publication Number Publication Date
CN107683461A true CN107683461A (zh) 2018-02-09
CN107683461B CN107683461B (zh) 2021-09-17

Family

ID=55640988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680018045.9A Active CN107683461B (zh) 2015-03-25 2016-03-22 用于选择通信协议的方法、***和计算机可读存储介质

Country Status (6)

Country Link
US (1) US10911574B2 (zh)
EP (1) EP3274819A1 (zh)
JP (1) JP6621838B2 (zh)
CN (1) CN107683461B (zh)
CA (1) CA2980737C (zh)
WO (1) WO2016154226A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989102A (zh) * 2018-07-05 2018-12-11 广州禹龙信息科技有限公司 双协议桌面云的配置方法及***
CN111936983A (zh) * 2018-04-27 2020-11-13 惠普发展公司,有限责任合伙企业 基于至虚拟计算机的输入/输出设备信号的消息
CN112199156A (zh) * 2019-10-11 2021-01-08 谷歌有限责任公司 车辆的可扩展计算架构
CN113168350A (zh) * 2018-09-24 2021-07-23 思杰***有限公司 用于各种应用之间的桥接协议的***和方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10320526B1 (en) 2014-11-07 2019-06-11 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US10530700B2 (en) 2015-07-07 2020-01-07 Strong Force Iot Portfolio 2016, Llc Message reordering timers
US10999012B2 (en) 2014-11-07 2021-05-04 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US9825733B1 (en) 2014-11-07 2017-11-21 Speedy Packets, Inc. Packet coding based network communication
US9992126B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US9992088B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US10397233B2 (en) 2015-04-20 2019-08-27 Bomgar Corporation Method and apparatus for credential handling
US10229262B2 (en) 2015-04-20 2019-03-12 Bomgar Corporation Systems, methods, and apparatuses for credential handling
WO2016186629A1 (en) * 2015-05-15 2016-11-24 Hewlett-Packard Development Company, L.P. Display of server capabilities
US10757079B2 (en) * 2016-01-12 2020-08-25 Jens Schmidt Method and system for controlling remote session on computer systems using a virtual channel
EP3414877B1 (en) * 2016-02-10 2019-07-17 Telefonaktiebolaget LM Ericsson (publ) Technique for transport protocol selection and setup of a connection between a client and a server
US10044810B2 (en) * 2016-03-31 2018-08-07 Dell Products L.P. Selectively implementing reliability mechanisms based on the type of USB device that is redirected over a remote session
US10732621B2 (en) 2016-05-09 2020-08-04 Strong Force Iot Portfolio 2016, Llc Methods and systems for process adaptation in an internet of things downstream oil and gas environment
US10382475B2 (en) * 2016-07-01 2019-08-13 Genesys Telecommunications Laboratories, Inc. System and method for preventing attacks in communications
US10701206B2 (en) 2016-07-01 2020-06-30 Genesys Telecommunications Laboratories, Inc. System and method for contact center communications
CN108123925B (zh) * 2016-11-30 2021-07-30 中兴通讯股份有限公司 资源共享的方法、装置及***
US11587196B2 (en) * 2017-04-10 2023-02-21 Dell Products L.P. Information handling system remote desktop protocol selection
US20190047581A1 (en) * 2017-08-14 2019-02-14 GM Global Technology Operations LLC Method and apparatus for supporting mission-critical applications via computational cloud offloading
JP7245914B2 (ja) * 2019-02-14 2023-03-24 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 能力情報を送信する方法及び装置
US11429395B2 (en) * 2020-01-02 2022-08-30 Jpmorgan Chase Bank, N.A. Peripheral device support in thin client environments
CN113301004B (zh) * 2020-06-17 2023-05-09 阿里巴巴集团控股有限公司 数据处理方法、装置、通信方法和单网卡虚拟机
US11516276B1 (en) * 2022-01-04 2022-11-29 Vmware, Inc. Dynamically switching between synchronous and asynchronous communication channels
CN116015852A (zh) * 2022-12-26 2023-04-25 国网江苏省电力有限公司扬州供电分公司 一种基于国家电网信息的虚拟云桌面安全管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137151A (zh) * 2010-01-22 2011-07-27 微软公司 多链路远程协议
US20120317181A1 (en) * 2011-06-07 2012-12-13 Syed Mohammad Amir Husain Zero Client Device with Integrated Secure KVM Switching Capability
US20140229608A1 (en) * 2013-02-14 2014-08-14 Alcatel-Lucent Canada Inc. Parsimonious monitoring of service latency characteristics
WO2014198567A1 (en) * 2013-06-14 2014-12-18 Tocario Gmbh Method and system for enabling access of a client device to a remote desktop

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984130B2 (en) 2006-07-14 2011-07-19 Cellco Partnership Multimedia next generation network architecture for IP services delivery based on network and user policy
US8856860B2 (en) 2006-08-18 2014-10-07 Cisco Technology, Inc. System and method for implementing policy server based application interaction manager
US9106696B2 (en) * 2009-04-15 2015-08-11 Wyse Technology L.L.C. Method and apparatus for portability of a remote session
US8332517B2 (en) 2010-03-31 2012-12-11 Incnetworks, Inc. Method, computer program, and algorithm for computing network service value pricing based on communication service experiences delivered to consumers and merchants over a smart multi-services (SMS) communication network
US20120331032A1 (en) * 2011-06-22 2012-12-27 Microsoft Corporation Remote Presentation Session Connectionless Oriented Channel Broker
TWM438792U (en) * 2011-12-06 2012-10-01 Guo-Cheng Huang Improved structure for wrapper protector
JP6112779B2 (ja) * 2012-05-21 2017-04-12 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、及びプログラム
FR3000339A1 (fr) * 2012-12-20 2014-06-27 France Telecom Procede de traitement de requetes d'acces a des services de virtualisation informatique, passerelle de virtualisation et navigateur web
US20140280959A1 (en) 2013-03-15 2014-09-18 Eric J. Bauer Application server instance selection based on protocol latency information
US9674312B2 (en) * 2013-06-28 2017-06-06 Netapp, Inc. Dynamic protocol selection
US10440066B2 (en) * 2013-11-15 2019-10-08 Microsoft Technology Licensing, Llc Switching of connection protocol
US20160198021A1 (en) * 2015-01-02 2016-07-07 Citrix Systems, Inc. Dynamic protocol switching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137151A (zh) * 2010-01-22 2011-07-27 微软公司 多链路远程协议
US20120317181A1 (en) * 2011-06-07 2012-12-13 Syed Mohammad Amir Husain Zero Client Device with Integrated Secure KVM Switching Capability
US20140229608A1 (en) * 2013-02-14 2014-08-14 Alcatel-Lucent Canada Inc. Parsimonious monitoring of service latency characteristics
WO2014198567A1 (en) * 2013-06-14 2014-12-18 Tocario Gmbh Method and system for enabling access of a client device to a remote desktop

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111936983A (zh) * 2018-04-27 2020-11-13 惠普发展公司,有限责任合伙企业 基于至虚拟计算机的输入/输出设备信号的消息
CN108989102A (zh) * 2018-07-05 2018-12-11 广州禹龙信息科技有限公司 双协议桌面云的配置方法及***
CN113168350A (zh) * 2018-09-24 2021-07-23 思杰***有限公司 用于各种应用之间的桥接协议的***和方法
CN112199156A (zh) * 2019-10-11 2021-01-08 谷歌有限责任公司 车辆的可扩展计算架构
CN112199156B (zh) * 2019-10-11 2024-01-12 谷歌有限责任公司 车辆的可扩展计算方法、设备和介质
US11880701B2 (en) 2019-10-11 2024-01-23 Google Llc Extensible computing architecture for vehicles

Also Published As

Publication number Publication date
US10911574B2 (en) 2021-02-02
CA2980737A1 (en) 2016-09-29
US20160286003A1 (en) 2016-09-29
JP2018518728A (ja) 2018-07-12
EP3274819A1 (en) 2018-01-31
WO2016154226A1 (en) 2016-09-29
CA2980737C (en) 2021-09-07
CN107683461B (zh) 2021-09-17
JP6621838B2 (ja) 2019-12-18

Similar Documents

Publication Publication Date Title
CN107683461A (zh) 在虚拟桌面基础设施中使用多个协议
US11044305B2 (en) Cloud federation as a service
US9485101B2 (en) Provisioning digital certificates in a network environment
CN108062248A (zh) 异构虚拟化平台的资源管理方法、***、设备及存储介质
US11816669B2 (en) Index of usability for a replacement payment card
US20150347742A1 (en) Configuring identity federation configuration
US20130318241A1 (en) Live directory of cloud tenants to enable inter-tenant interaction via cloud
CN107637026A (zh) 在分布式计算环境中的虚拟机实例上执行命令
US11244311B2 (en) Decentralized smart resource sharing between different resource providers
CN108959972A (zh) 合作的基于规则的安全
US11323427B2 (en) Mixed-mode cloud on-premise secure communication
US11082413B2 (en) Secure network connections
US20190372985A1 (en) Sensitive information accessibility in blockchain
Slawik et al. Cyclone: The multi-cloud middleware stack for application deployment and management
US11425639B2 (en) Trusted method for consuming and sharing Wi-Fi internet access
US11943221B2 (en) Preventing masquerading service attacks
US20240187410A1 (en) Preventing masquerading service attacks
US20240129306A1 (en) Service to service communication and authentication via a central network mesh
JP2023552457A (ja) フェデレーテッド認証のための第二要素ベースのレルム選択
US20180018445A1 (en) Social Sharing of Software Products
Verma et al. IMPACT OF SECURITY ISSUES IN CLOUD COMPUTING ENVIRONMENT: A SURVEY
Student Stable Cloud Federations in the Sky: Formation Game and Mechanism

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant