CN115454582A - 用于使用基于组件的连接租约的虚拟会话连接的系统和方法 - Google Patents
用于使用基于组件的连接租约的虚拟会话连接的系统和方法 Download PDFInfo
- Publication number
- CN115454582A CN115454582A CN202211115013.4A CN202211115013A CN115454582A CN 115454582 A CN115454582 A CN 115454582A CN 202211115013 A CN202211115013 A CN 202211115013A CN 115454582 A CN115454582 A CN 115454582A
- Authority
- CN
- China
- Prior art keywords
- connection
- lease
- computing
- virtual
- appliance
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/826—Involving periods of time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种计算设备可以包括存储器和处理器,所述处理器与所述存储器协作,且被配置成生成针对由客户端设备选择的公布资源的连接租约。所述连接租约可以提供用于将所述客户端设备连接到与公布资源相对应的虚拟计算会话的指令。每个连接租约可以包括对所选择的公布资源来说唯一的公布资源租约组件和由多个不同公布资源共享的公共租约组件。
Description
本申请为分案申请,其母案的发明名称为“用于使用基于组件的连接租约的虚拟会话连接的系统和方法”,申请日为2020年4月22日,申请号为202080026699.2。
背景技术
许多组织现在正在使用应用和/或桌面虚拟化,以提供更灵活的选项,以满足它们的用户的变化的需要。在桌面虚拟化中,用户的计算环境(例如,操作系统、应用和/或用户设置)可以与用户的物理计算设备(例如,智能电话、膝上型电脑、台式计算机)分离。使用客户端-服务器技术,可以在远程服务器中存储且由远程服务器管理“虚拟化桌面”,而不是在客户端设备的本地储存器中。
存在若干不同类型的桌面虚拟化系统。作为示例,虚拟桌面基础设施(VDI)指代在驻留于服务器上的虚拟机内部运行用户桌面和/或应用的过程。虚拟化系统还可以被实现在云计算环境或云系统中,其中,可以使用计算资源(例如,桌面虚拟化服务器)、储存盘、联网硬件和其他物理资源的池以供给虚拟桌面和/或提供对共享应用的访问。
发明内容
一种计算设备可以包括存储器和处理器,所述处理器与所述存储器协作,且被配置成生成针对由客户端设备选择的公布资源的连接租约。所述连接租约可以提供用于将所述客户端设备连接到与公布资源相对应的虚拟计算会话的指令。每个连接租约可以包括对所选择的公布资源来说唯一的公布资源租约组件和由多个不同公布资源共享的公共租约组件。
在一个示例实现方式中,所述客户端设备可以通过至少一个虚拟递送器具连接到所述虚拟计算会话,并且所述公共租约组件可以包括与所述至少一个虚拟递送器具相关联的网络地址。此外,所述客户端设备可以通过至少一个网关器具连接到所述虚拟递送器具,并且所述公共租约组件可以进一步包括与所述至少一个网关器具相关联的网络地址。根据另一示例,所述虚拟计算会话中的至少一些可以包括基于云的虚拟计算会话,并且所述客户端设备可以通过至少一个云接口器具连接到所述基于云的虚拟计算会话。由此,所述公共租约组件可以包括与所述至少一个云接口器具相关联的网络地址。
在一个示例实现方式中,所述客户端设备可以通过被成组为不同区域的多个虚拟递送器具连接到所述虚拟计算会话,并且所述公共租约组件可以包括针对虚拟递送器具的给定组的区域定名。在一些示例实施例中,并且,所述公共租约组件可以包括所述虚拟递送器具的不同有序列表。
作为示例,所述公共租约组件可以包括下述各项中的至少一个:网络传输类型设置、音频设置、显示分辨率设置、安全性设置和驱动映射启用设置。而且作为示例,所述虚拟计算会话可以包括下述各项中的至少一个:虚拟应用会话、虚拟桌面会话、web应用会话、软件即服务(SaaS)应用会话和桌面即服务(DaaS)会话。
此外,所述处理器还可以被配置成:彼此无关地更新所述公布资源租约组件和所述公共租约组件。作为示例,所述公布资源租约组件可以包括下述各项中的至少一个:资源键全局唯一标识符(GUID)、用户标识符和到期时间。
相关方法可以包括:在服务器处生成针对由客户端设备选择的公布资源的连接租约,其中所述连接租约提供用于将所述客户端设备连接到与所述公布资源相对应的虚拟计算会话的指令。每个连接租约可以包括对所选择的公布资源来说唯一的公布资源租约组件和由多个不同公布资源共享的公共租约组件。
相关计算系统可以包括:多个客户端设备,被配置成选择与虚拟计算会话相对应的公布资源;以及服务器,被配置成生成针对由所述客户端设备选择的公布资源的连接租约。每个连接租约可以包括对所选择的公布资源来说唯一的公布资源租约组件和由多个不同公布资源共享的公共租约组件。所述计算系统可以进一步包括:至少一个虚拟递送器具,被配置成基于所述连接租约将所述客户端设备连接到相应虚拟计算会话。
附图说明
图1是在其中可以实现本公开的各种方面的计算设备的网络环境的示意框图。
图2是有益于实践图1中图示的客户机或远程机的实施例的计算设备的示意框图。
图3是在其中可以实现本公开的各种方面的云计算环境的示意框图。
图4是根据示例实施例的根据基于组件的连接租约提供虚拟计算会话访问的计算系统的示意框图。
图5是图4的系统的示例实现方式的示意框图。
图6是图示了根据示例实现方式的连接租约文件共享文件夹及其连接租约组件的图5中所示的客户端设备的示意框图。
图7是图示了根据示例实施例的可在图5的系统内执行以触发连接租约创建的客户端设备呼叫家(call home)序列的顺序流程图。
图8是根据示例实施例的根据基于模板的连接租约生成提供虚拟计算会话访问的计算系统的示意框图。
图9是图8的系统的示例实现方式的示意框图。
图10A和10B是图示了根据示例实施例的可在图9的系统内执行的连接租约同步操作的顺序流程图的第一和第二部分。
图11是图示了与图4的系统的服务器相关联的示例方法方面的流程图。
图12是图示了与图8的系统的连接租约发布器具相关联的示例方法方面的流程图。
具体实施方式
使用连接租约的目的是:允许用户连接到他们的虚拟租用工作量和/或服务,即使连接租约基础设施不可达亦如此,这可能出于多种原因。然而,连接租约生成可能是昂贵的过程,这是因为它涉及多个查询和处理操作。此外,当谈到递送公布app和桌面时,该过程还可能相当复杂,涉及例如管理虚拟递送器具、目录、递送组、应用组和公布资源。
另外,由于连接租约是相对不频繁地刷新的用户权利的静态快照,因此用户将典型地在连接时不具有最近实时信息,作为可替换方案,在系统可达时使用一次性传统连接文件(例如,独立计算架构(ICA)文件)以及仅当系统停机时才使用连接租约也可以有助于解决这些差距。然而,这还可能导致不同代码路径被执行,且因而导致潜在地不一致的用户体验(例如,长的相对于短的登录时间)以及当为了回复力而依赖于极少执行的连接租约代码路径时的故障风险。本文公开的系统和方法有利地通过提供复合的和/或基于模板的连接租约生成途径,来有助于解决这些技术挑战,从而得到更少的处理操作和实时或近实时租约更新能力。
参考在其中示出示例实施例的附图来作出本说明书。然而,可以使用许多不同实施例,并且因此,说明书不应当被理解为限于本文阐述的特定实施例。自始至终,相似的数字指代相似的元素。
如本领域技术人员在阅读以下公开内容时应当领会的那样,本文描述的各种方面可以体现为设备、方法或计算机程序产品(例如,具有用于执行所提及的操作或步骤的计算机可执行指令的非瞬变计算机可读介质)。相应地,那些方面可以采取全硬件实施例、全软件实施例或组合软件和硬件方面的实施例的形式。
此外,这种方面可以采取由一个或多个计算机可读储存介质存储的计算机程序产品的形式,该一个或多个计算机可读储存介质具有体现在储存介质中或上的计算机可读程序代码或指令。可以利用任何合适计算机可读储存介质,包括硬盘、CD-ROM、光学储存设备、磁储存设备和/或其任何组合。
首先参考图1,在其中可以实现本公开的各种方面的非限制性网络环境101包括一个或多个客户机102A-102N、一个或多个远程机106A-106N、一个或多个网络104、104'、以及在计算环境101内安装的一个或多个器具108。客户机102A-102N经由网络104、104'与远程机106A-106N通信。
在一些实施例中,客户机102A-102N经由中间器具108与远程机106A-106N通信。所图示的器具108位于网络104、104'之间,且还可以被称作网络接口或网关。在一些实施例中,器具108可以作为应用递送控制器(ADC)而操作,以给客户端提供对业务应用以及在数据中心、云中部署或作为软件即服务(SaaS)跨一系列客户端设备而递送的其他数据的访问,和/或提供其他功能,诸如负载平衡等。在一些实施例中,可以使用多个器具108,并且可以部署(一个或多个)器具108作为网络104和/或104'的一部分。
客户机102A-102N一般可以被称作客户机102、本地机02、客户端102、客户端节点102、客户端计算机102、客户端设备102、计算设备102、端点102或端点节点102。远程机106A-106N一般可以被称作服务器106或服务器场106。在一些实施例中,客户端设备102可以具有下述能力:起寻求对由服务器106提供的资源的访问的客户端节点和针对其他客户端设备102A-102N提供对托管资源的访问的服务器106两者的作用。网络104、104'一般可以被称作网络104。网络104可以以有线和无线网络的任何组合而配置。
服务器106可以是任何服务器类型,诸如例如:文件服务器;应用服务器;web服务器;代理服务器;器具;网络器具;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;安全套接字层虚拟专用网(SSL VPN)服务器;防火墙;web服务器;执行活动目录的服务器;云服务器;或者执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器。
服务器106可以执行、操作或以其他方式提供可作为以下各项中的任一个的应用:软件;程序;可执行指令;虚拟机;管理程序;网页浏览器;基于web的客户端;客户端-服务器应用;瘦客户端计算客户端;ActiveX控件;Java小应用程序;与像软IP电话之类的基于互联网协议的语音(VoIP)通信相关的软件;用于流送视频和/或音频的应用;用于促进实时数据通信的应用;HTTP客户端;FTP客户端;奥斯卡(Oscar)客户端;远程登录客户端;或者可执行指令的任何其他集合。
在一些实施例中,服务器106可以执行远程呈现服务程序或下述其他程序:该其他程序使用瘦客户端或远程显示协议,以捕获由在服务器106上执行的应用生成的显示输出,并将应用显示输出传输到客户端设备102。
在另外其他实施例中,服务器106可以执行给客户端设备102的用户提供对计算环境的访问的虚拟机。客户端设备102可以是虚拟机。虚拟机可以由例如管理程序、虚拟机管理器(VMM)或服务器106内的任何其他硬件虚拟化技术管理。
在一些实施例中,网络104可以是:局域网(LAN);城域网(MAN);广域网(WAN);广域网中的软件定义联网(SD-WAN);主要公共网104;以及主要专用网104。附加实施例可以包括使用各种协议以在移动设备之间通信的移动电话网络的网络104。对于无线局域网(WLAN)内的短距离通信,协议可以包括802.11、蓝牙和近场通信(NFC)。
SD-WAN企业的一个特别有利的实现方式由Citrix SD-WAN提供,Citrix SD-WAN允许企业更加可扩缩地且以容易连接到云的有成本效益的方式呈送它们的WAN。Citrix SD-WAN包含集成的数据库和深分组检查,以识别包括个体SaaS应用的应用并智能地引导业务量从支路到互联网、云或SaaS。此外,Citrix SD-WAN还提供了下述能力:经由安全web网关将业务量从支路路由到互联网,从而递送基于云的安全性,包括防火墙、URL过滤和使用率计费。
图2描绘了有益于实践客户端设备102、器具108和/或服务器106的实施例的计算设备100的框图。计算设备100包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(RAM))、非易失性存储器138、用户接口(UI)123、一个或多个通信接口118和通信总线150。
非易失性存储器128可以包括:一个或多个硬盘驱动器(HDD)或者其他磁或光学储存介质;一个或多个固态驱动器(SSD),诸如闪速驱动器或其他固态储存介质;一个或多个混合磁和固态驱动器;和/或一个或多个虚拟储存卷(诸如,云储存器)或者这种物理储存卷和虚拟储存卷或其阵列的组合。
用户接口123可以包括图形用户界面(GUI)124(例如触摸屏、显示器等)和一个或多个输入/输出(I/O)设备136(例如鼠标、键盘、麦克风、一个或多个扬声器、一个或多个相机、一个或多个生物测量扫描仪、一个或多个环境传感器和一个或多个加速度计等)。
非易失性存储器128存储操作系统115、一个或多个应用116和数据117,使得例如操作系统115和/或应用116的计算机指令由易失性存储器122外的(一个或多个)处理器103执行。在一些实施例中,易失性存储器122可以包括可比主存储器供应更快响应时间的一种或多种类型的RAM和/或高速缓冲存储器。可以使用GUI 124的输入设备来录入数据,或者可以从(一个或多个)I/O设备126接收数据。计算机100的各种元件可以经由通信总线150进行通信。
所图示的计算设备100仅被示作示例客户端设备或服务器,且可以由具有任何类型的机器或机器集合的任何计算或处理环境实现,该任何类型的机器或机器集合可以具有能够如本文描述的那样操作的合适硬件和/或软件。
(一个或多个)处理器103可以由一个或多个可编程处理器实现以执行一个或多个可执行指令(诸如,计算机程序),以执行系统的功能。如本文所使用,术语“处理器”描述执行功能、操作或操作序列的电路。该功能、操作或操作序列可以被硬编码到电路中,或凭借存储器设备中保存的指令而软编码并由电路执行。处理器可以使用数字值和/或使用模拟信号来执行功能、操作或操作序列。
在一些实施例中,处理器可以体现在一个或多个专用集成电路(ASIC)、微处理器、数字信号处理器(DSP)、图形处理单元(GPU)、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器或具有关联存储器的通用计算机中。
处理器103可以是模拟、数字或混合信号。在一些实施例中,处理器103可以是一个或多个物理存储器或者一个或多个虚拟(例如,远程定位或云)处理器。包括多个处理器核的处理器和/或多个处理器可以提供用于并行、同时执行指令或用于在多于一段数据上并行、同时执行一个指令的功能。
通信接口118可以包括一个或多个接口,以使计算设备100能够通过包括蜂窝连接的多种有线和/或无线连接来访问计算机网络,诸如LAN、WAN或SD-WAN、个域网(PAN)或因特网。
在所描述的实施例中,计算设备100可以代表客户端设备的用户来执行应用。例如,计算设备100可以执行由管理程序管理的一个或多个虚拟机。每个虚拟机可以提供应用在其内代表用户或客户端设备来执行的执行会话,诸如,托管桌面会话。计算设备100还可以执行终端服务会话,以提供托管桌面环境。计算设备100可以提供对远程计算环境的访问,该远程计算环境包括一个或多个应用、一个或多个桌面应用、以及一个或多个应用可在其中执行的一个或多个桌面会话。
可以使用由Fort Lauderdale, Florida的Citrix系统公司(“Citrix系统”)提供的Citrix管理程序来实现示例虚拟化服务器106。虚拟app和桌面会话可以进一步由也来自Citrix系统的Citrix虚拟App和桌面提供。Citrix虚拟App和桌面是利用从任何设备对包括虚拟app、桌面和数据会话的虚拟会话的普遍访问来增强生产率的应用虚拟化解决方案,外加实现可扩缩VDI解决方案的选项。虚拟会话可以进一步包括例如软件即服务(SaaS)和桌面即服务(DaaS)会话。
参考图3,描绘了云计算环境160,其还可以被称作云环境、云计算或云网络。云计算环境160可以提供共享计算服务和/或资源向多个用户或租户的递送。例如,共享资源和服务可以包括但不限于网络、网络带宽、服务器、处理、存储器、储存器、应用、虚拟机、数据库、软件、硬件、分析学和智能。
在云计算环境160中,一个或多个客户端162A-162C(诸如,上面描述的那些客户端)与云网络164通信。云网络164可以包括后端平台,例如,服务器、储存器、服务器场或数据中心。用户或客户端162A-162C可以对应于单个组织/租户或多个组织/租户。更特别地,在一个示例实现方式中,云计算环境160可以提供服务于单个组织的私有云(例如,企业云)。在另一示例中,云计算环境160可以提供服务于多个组织/租户的社区或公共云。
在一些实施例中,可以利用(一个或多个)网关器具或服务以提供对云计算资源和虚拟会话的访问。作为示例,由Citrix系统公司提供的Citrix网关可以是预置(on-premises)部署的或被部署在公共云上,以给用户提供对虚拟、SaaS和web应用的安全访问和单点登录。此外,为了保护用户免于web威胁,可以使用诸如Citrix安全Web网关之类的网关。Citrix安全Web网关使用基于云的服务和本地高速缓存以检验URL信誉和类别。
在更进一步的实施例中,云计算环境160可以提供作为公共云和私有云的组合的混合云。公共云可以包括由第三方对客户端162A-162C或企业/租户维护的公共服务器。服务器可以被场外定位在远程地理位置中或以其他方式定位。
云计算环境160可以提供资源池化,以经由客户端162A-162C通过多租户环境或多租户模型来服务于多个用户,该多租户环境或多租户模型具有响应于相应环境内的不同需求而动态指派和重新指派的不同物理和虚拟资源。多租户环境可以包括可提供软件、应用或软件应用的单个实例以服务于多个用户的系统或架构。在一些实施例中,云计算环境160可以提供按需自我服务,以跨针对多个客户端162A-162C的网络单边供给计算能力(例如,服务器时间、网络储存)。作为示例,供给服务可以是通过诸如Citrix供给服务(CitrixPVS)之类的系统来提供的。Citrix PVS是通过共享桌面图像将补丁、更新和其他配置信息递送到多个虚拟桌面端点的软件流送技术。云计算环境160可以提供弹性,以响应于来自一个或多个客户端162的不同需求而动态地扩充或缩减。在一些实施例中,云计算环境160可以包括或提供监视服务,以监视、控制和/或生成与所提供的共享服务和资源相对应的报告。
在一些实施例中,云计算环境160可以提供不同类型的云计算服务的基于云的递送,该不同类型的云计算服务诸如例如:软件即服务(SaaS)170、平台即服务(PaaS)172、基础设施即服务(IaaS)174和桌面即服务(DaaS)176。IaaS可以指代用户租借使用在指定时间段期间需要的基础设施资源。IaaS提供商可以供应来自大池的储存器、联网、服务器或虚拟化资源,从而允许用户通过按需访问更多资源来快速扩大。IaaS的示例包括由Seattle,Washington的Amazon.com公司提供的AMAZON WEB SERVICES、由San Antonio, Texas的Rackspace US公司提供的RACKSPACE CLOUD、由Mountain View, California的Google公司提供的Google计算引擎或由Santa Barbara, California的RightScale公司提供的RIGHTSCALE。
PaaS提供商可以供应由IaaS提供的包括例如储存器、联网、服务器或虚拟化的功能以及诸如例如操作系统、中间件或运行时资源之类的附加资源。PaaS的示例包括由Redmond, Washington的Microsoft公司提供的WINDOWS AZURE、由Google公司提供的Google App引擎和由San Francisco, California的Heroku公司提供的HEROKU。
SaaS提供商可以供应PaaS所提供的资源,包括储存器、联网、服务器、虚拟化、操作系统、中间件或运行时资源。在一些实施例中,SaaS提供商可以供应包括例如数据和应用资源的附加资源。SaaS的示例包括由Google公司提供的GOOGLE APPS、由San Francisco,California的Salesforce.com公司提供的SALESFORCE或由Microsoft公司提供的OFFICE365。SaaS的示例还可以包括数据储存器提供商,例如:来自Citrix系统的Citrix共享文件、由San Francisco, California的Dropbox公司提供的DROPBOX、由Microsoft公司提供的Microsoft SKYDRIVE、由Google公司提供的Google驱动器或由Cupertino, California的Apple公司提供的Apple ICLOUD。与SaaS类似,DaaS(其也被称作托管桌面服务)是虚拟桌面基础设施(VDI)的形式,其中,虚拟桌面会话典型地是作为云服务连同在虚拟桌面上使用的app一起递送的。来自Citrix系统的Citrix云是DaaS递送平台的一个示例。DaaS递送平台可以是在公共云计算基础设施上托管的,该公共云计算基础设施诸如例如:来自Redmond,Washington的Microsoft公司的AZURE CLOUD(本文称“Azure”)或由Seattle, Washington的Amazon.com公司提供的AMAZON WEB SERVICES(本文称“AWS”)。在Citrix云的情况下,Citrix工作区app可以被用作用于将app、文件和桌面带到一起(不论是预置的还是在云中)以递送统一体验的单入口点。
现在转至图4,首先描述了计算系统40,其有利地提供了用于将客户端设备连接到虚拟计算会话的高效复合(模块化)连接租约(CL)设计。用于提供对虚拟计算会话的访问的一个示例架构是来自本申请人Citrix系统公司的Citrix虚拟App和桌面(CVAD)。Citrix虚拟App是应用虚拟化平台,其有助于利用从不同客户端设备对虚拟app和基于服务器的桌面的普遍访问来优化生产率。CVAD承载与Citrix虚拟App相同的所有功能,外加实现可扩缩虚拟桌面基础设施(VDI)的选项。Citrix虚拟App/CVAD可用作云服务或预置配置。
这种计算机虚拟化基础设施可以利用用于认证客户端设备的独立计算架构(ICA)文件,以访问相应虚拟会话和计算资源。ICA是被设计以用于在网络上传输Windows图形显示数据以及键盘和鼠标输入的协议。ICA文件包含短寿命安全票权威机构(STA)和登录票。STA票可以用于授权经由网关(例如,Citrix网关)到虚拟递送器具(例如,Citrix虚拟递送代理(VDA))的连接。登录票可以使用户单点登录(SSOn)到虚拟计算会话中。在CVAD的情况下,这是在不同客户端设备上以及在不同网络上通过“高清晰度”体验(HDX)会话来完成的,该“高清晰度”体验(HDX)会话可以对集中式应用和桌面的用户来说可用。Citrix HDX被构建在ICA远程协议顶上。利用任何网络基础设施(远程的或以其他方式),防御外部攻击(例如,拦截和重放攻击)的安全性始终是重要关注。例如,连接租约提供了长寿命授权,以建立到虚拟递送器具的网络连接。
由于连接租约是长寿命的(例如,基于策略,几小时到数周)并且攻击机会窗口因而长得多,因此安全性要求可能更关键。因此,连接租约被加密且签名。连接租约还可以被撤销以应对诸如被盗设备、受损用户账户、被关闭的用户账户等之类的事件。仅当客户端/端点设备或主机(例如,虚拟递送器具)关于CL发布服务(CLIS)或代理商(broker)在线时,才可以应用连接租约撤销,这不是针对连接租约的使用的要求,这是由于意在以离线模式使用连接租约。
连接租约生成可能是昂贵的过程,这是因为它涉及多个查询和处理操作。例如,在一些虚拟化系统中,代理商执行操作,包括:当单个用户触发单个app的启动时,运行多个存储过程并检验静态以及实时数据。当谈到递送公布app和桌面时,过程可能相当复杂,涉及例如管理虚拟递送器具、目录、递送组、应用组和公布资源。
诸如各种一对一或一对多关联、优先级、区域和偏好、会话共享、加标签等之类的配置和策略使到连接(例如,ICA)文件的单个启动请求的解析变得复杂。此外,针对单个用户的连接租约的生成将涉及确定用户有权参与的所有可能app、桌面、资源位置和关联配置,包括各种连接情形(内部、外部)。就代理商上的负担和连接租约管理服务而言,这将是用户同时从不同位置启动所有他们的app和桌面的等同替换(例如,100个app乘以2)。乘以组织中的用户的数目(例如,10000个用户)导致到代理商的2百万个有效启动请求。例如,每个人将在星期一来工作,连接到系统,这触发了连接租约续期。这可能导致由于一次有太多请求的系统的过载而引起的服务失效。甚至对于单个活动用户,公布资源枚举(例如,给客户端设备提供可用app和桌面的列表)可能变得非常慢、超时或失效,从而导致差的或被破坏的用户体验(UX),这是由于它将要求生成针对用户的许多租约。
诸如应用编程接口(API)节流之类或在各种(包括随机)时间处具有端点请求连接租约的技术可能潜在地有助于化除代理商上的负担,尽管导致了增加的复杂度。
每公布资源的连接租约数据可以相对较小,例如大约数千字节。然而,在一些情形中,用户可能有权参与相对较大数目的app。尽管罕见,但权利可能达到数千个app。此外,信息亭/共享设备可以托管多个用户,并且瘦客户端可以具有少量可用存储器,且因而难以应对与许多权利相关联的大量数据。另外,在每次启动(例如,Citrix HDX启动)时发送大的整块连接租约将消耗更多带宽并减慢针对给定用户的连接过程。
如上所提及,使用连接租约的目的是:允许用户连接到他们租用的工作量和/或服务,即使系统不可达亦如此。然而,由于连接租约是相对不频繁地(例如,一周一次)刷新的用户权利的静态快照,因此用户不会在连接时具有不反映例如对公布资源或连接基础设施的更新的最近实时信息。例如,该信息可以包括以下各项中的一个或多个:用户权利更新,例如,管理员已经添加或移除app;虚拟递送器具功率或负载管理更新(例如,虚拟递送器具被上载、被下载或过载);用户会话位置(在一些情况下包括池化桌面);与已在来自不同设备的会话中启动的所有当前运行的app有关的信息等。
可替换地,在系统可达时使用一次性传统连接文件(例如,ICA文件)以及仅当系统停机时才使用连接租约也可以有助于解决这些差距。然而,这还可能导致不同代码路径被执行,且因而导致潜在地不一致的用户体验(例如,长的相对于短的登录时间)以及当为了回复力而依赖于极少执行的连接租约代码路径时的故障风险。
本文公开的系统和方法有利地有助于解决上面提及的技术挑战,以及提供附加优点。图4的系统40图示性地包括:多个客户端设备41(诸如,上面提及的那些客户端设备),被配置成选择与虚拟计算会话43相对应的公布资源。如下面将进一步讨论的那样,公布资源是用户能够在由预置的或基于云的虚拟化服务器托管的虚拟计算会话43内在客户端设备41上远程访问的可用桌面、app等。系统40进一步图示性地包括:服务器42,被配置成生成针对由客户端设备41选择的公布资源的连接租约。更特别地,每个连接租约包括对所选择的公布资源来说唯一的公布资源租约组件和由多个不同公布资源共享的公共租约组件,如下面将进一步讨论。计算系统40还图示性地包括:一个或多个虚拟递送器具44,被配置成基于连接租约将客户端设备41连接到相应虚拟计算会话43。
另外参考图5-7,将参考示例连接租约管理系统50和顺序图70中图示的关联操作(其是在Citrix工作区平台内实现的)来进一步理解以上内容。然而,应当领会,这只是在其中可以利用本文描述的连接租约技术的一个示例虚拟化平台,并且在不同实施例中可以使用其他平台或实现方式。
系统50有利地提供了后台模式中的高效复合连接租约管理,这意味着:在连接租约的自主同步的情况下,连接租约管理的部分可以被提前执行,而不必响应于连接租约请求(按需)而立即执行。如下面将进一步讨论的那样,租约更新的该自主同步可以由系统50在租约已被生成且仍然活动之后执行,而不必重新生成整个租约。在所图示的示例中,上面描述的租约发布服务器42是使用作为Citrix工作区的一部分的连接租约发布服务(CLIS)52来实现的。客户端设备51经由Citrix工作区店面55以及网关连接租约服务59与CLIS 52对接。同样在所图示的示例中,客户端设备51运行端点管理应用,在该示例中,端点管理应用是Citrix工作区App(CWA)56,这允许客户端设备与工作区店面55对接。CWA 56通过工作区店服务72来枚举公布资源,这可以是在独立且异步的基础上完成的。系统50进一步图示性地包括可在连接租约生成过程中利用的与CLIS 52相关联的共享存储器(这里称云文件储存器68),如下面将进一步讨论。此外,在所图示的示例中,CLIS 52和连接租约服务58(针对CVAD)两者都具有其自身的相应CLIS数据库66(例如,SQL)和CVAD CL服务数据库67(例如,SQL)。此外,CLIS 52包括业务逻辑69以执行本文描述的所提及的处理操作。
此外,在该示例中,CWA 56呼叫家到CLIS 52,并且CLIS通过呼叫到托管公布资源的资源提供商中来编排连接租约创建,如下面将进一步讨论。如图7中可见,当CWA 56发起呼叫家到认证(auth)管理器71时,该过程开始,认证(auth)管理器71可以包括相对长寿命的主要会话密钥/令牌和与CLIS 52相关联的次要令牌。认证管理器71可以被嵌入例如本机或基于云(托管)的浏览器中,并且在接收到呼叫家时,它执行次要令牌的查找。auth管理器给CLIS 52提供次要令牌,且可选地提供与客户端设备51相关联的公钥。可替换地,客户端设备51公钥可以先前被存储在云中,作为针对长寿命刷新令牌的设备注册的一部分。
CLIS 52证实次要令牌的签名并对其内容进行解密,以执行权利检验(例如,客户端设备51有权参与什么公布资源)并确定所要求的连接租约的类型(例如CL类型GUID等)。CLIS 52然后可以从工作区店服务72获得针对连接租约的优先级次序,且然后触发CVAD连接租约服务58以执行云中的后台连接租约创建,如下面将进一步讨论。系统50进一步图示性地包括与CVAD连接租约服务58相关联的CVAD SQL数据库67。
来自CWA 56的呼叫家操作的使用有利地通过针对活动用户及其注册的设备51预留连接租约的创建来减少系统资源上的负载,这与所有许可用户形成对照。此外,这可以有利地有助于简化由CWA 56执行的操作,这是因为不会要求提供资源键GUID的长列表等。此外,不是对店进行枚举的每个人都可以有权接收连接租约。指定用户客户端设备51感兴趣的连接租约类型也可能是重要的。例如,用户A的桌面设备1可能仅要求桌面连接租约,而相同用户A的移动设备2可能要求移动连接租约。
在一个示例实现方式中,客户端设备51可以周期性地呼叫家,这可以在REDIS(开源,存储器中数据结构店)被清除或者云服务中的任何其他内部失效发生的情形(诸如,云平台失效)中提供相对鲁棒的途径。在一些实施例中,可以针对呼叫家而利用渐进式webapp(PWA)(web组件)或供给侧平台(SSP)(本机组件)。PWA供应了来自云的代码共享和更新的优点。每当PWA被加载时,PWA都可以呼叫家。另一途径针对的是周期性或基于事件的呼叫家,这可以利用附加PWA服务工作器支持,其在后台运行。在一种途径中,呼叫家可以是例如周期性地、在店刷新时或在PWA(重新)开始时执行的。在其他途径中,CWA 56(PWA或SSP)可以检验是否连接租约可用。例如,失效可能已经在同步期间或在云中发生。如果在某个超时之后未找到所要求的连接租约,则CWA 56然后可以主动执行呼叫家。
呼叫家可能不是每当它被执行时都触发连接租约的刷新或创建。例如,如果最终用户设备连接租约已经存在,或者针对用户的中间连接租约的创建在进行中,如下面将进一步讨论,那么CLIS 52什么都不做。否则,CLIS 52触发CL创建。
如上所提及,CLIS 52以复合或组件(例如,模块化)方式生成连接租约。更特别地,每个连接租约包括公布资源租约组件(PRLC)和一个或多个公共租约组件(CLC)。PRLC是对正在针对其而创建连接租约的特定公共资源来说唯一的相对较小的公布资源租约组件(PRLC)。PRLC指向其他CLC,该其他CLC由多个不同公布资源(且因而由PRLC)共享,且可以包括诸如例如公共参数、直接资源位置、网关资源位置、资源位置排序等之类的信息。在一个示例实施例中,PRLC和CLC租约组件可以被实现为链接的JSON文档,尽管在不同实施例中可以使用其他合适途径。除了其他以外,模块化租约结构的一个优势是:它可以有助于减少针对关于连接租约的客户端设备51(例如,CWA 56)软件更新的需要,并且,可以通过对租约组件(例如,JSON文档)自身的更新来实现许多所需改变。
以其中连接租约被实现为链接在一起的复合JSON文档的示例继续,针对每个客户端设备51每公布资源(诸如,在CVAD的情况下,公布桌面或公布app)生成相应PRLC。PRLC可以被实现为引用其他(CLC)JSON文档的相对较小的JSON文档。整体上,连接租约可以被视为由引用CLC(其也是JSON文件)的主/聚集JSON文件(PRLC)制成的复合物。
在示例实现方式中,每个连接租约JSON文件包括来自CLIS 52的密码签名。每个连接租约文件还可以包括以明文存在的清单。连接租约的相关章节还可以出于安全性原因而加密。可由PRLC引用的CLC的示例包括:公共参数(例如,针对CVAD的公共ICA参数,诸如网络传输类型、音频设置、显示分辨率设置、安全性设置、驱动映射启用设置等),也被称作“Comp-Params”;资源位置定向(例如,当网关连接租约服务59不存在或不可用时的资源位置),也被称作“Comp-ResLocsDirect”;资源位置网关(例如,当网关连接租约服务59存在时的资源位置),也被称作“Comp-ResLocsGateway”;以及资源位置次序(例如,定义资源位置的次序),也被称作“Comp-ResLocsOrder”。用于将PRLC链接到CLC的引用机制可以是例如CLC的文件名,尽管还可以使用其他引用机制。
更特别地,PRLC可以包括列出它所引用的CLC的文件名的引用章节。如上所提及,CLC可以由多个PRLC引用。这可以提供若干技术优势。例如,可以更新CLC,而不必更新引用它的(潜在地许多的)PRLC。此外,该途径还可以减少针对CLC而需要的储存空间,这是由于CLC在潜在地许多PRLC之间是公共的且因而仅需要被存储一次(不是针对不同连接租约多次)。另外,不是所有CLC都需要被发送到所有实体(例如客户端设备51、网关60、虚拟递送器具53(例如,Citrix VDA)、CVAD代理商57等)。例如,公共参数CLC可以被客户端设备51而不是其他实体利用,这有助于与具有一个整块连接租约相比减少网络业务量。
为了避免经由连接租约文件重命名进行篡改,在一些实施例中,每个所签名的连接租约可以包括命名为“文件名”的JSON成员,其包括连接租约的JSON文件的名称。PRLC的文件名可以遵循下述模式:
CL-<[App/Desk]Name>-<ResourceKey (GUID)>.V<N>.json
以下是PRLC文件名的示例:
CL-Desktop1-9D47CB39-BCD6-4668-8BEB-AE135CCB4D10.V1.json
在一个示例实施例中,可以在JSON文件扩展名(.json)之前对PRLC文件进行版本化(利用以.V1、.V2、[…]、.VN的形式存在的点表示法)。CLC的文件名可以遵循下述模式:
CL-Comp-<CompType>-<GUID>.V<N>.json,
其中<CompType>可以是例如“Params”、“ResLocsDirect”、“ResLocsGateway”或“ResLocsOrder”,
以下是CLC文件名的示例:
CL-Comp-Params-BB009218-98F6-4AB2-A4D7-0F007C2672C7.V2.json
在一个示例实施例中,可以在JSON文件扩展名(.json)之前对CLC文件进行版本化(利用以.V1、.V2、[…]、.VN的形式存在的点表示法)。PRLC引用章节的示例是以下(JSON对象):
"comp-references": {
"r1": "CL-Comp-Params-BB009218-98F6-4AB2-A4D7-0F007C2672C7.V2.json",
"r2": "CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V1.json",
"r3": "CL-Comp_ResLocsGateway-9CA78F81-BAD7-46E7-B19E-E6291FB7BC2F.V1.json",
"r4": CL-Comp-ResLocsOrder-4DD357F4-C310-4FA9-A7E1-862650FCD853.V5.json"
}
引用成员名称以形式r<N>存在,例如r1、r2、r3等。每个引用是处于相同同步文件夹中的JSON文件名。
再一次,连接租约文件可以遵循具体格式,在本示例中,该具体格式是JSON,尽管还可以使用其他结构化类型/值格式(例如XML、ASN.1等)。在下面的描述中,对象意指“JSON对象”并且阵列意指“JSON阵列”,
顶级(未命名)对象
文档对象
清单对象(明文)
组件引用对象(明文,可选)
有效载荷(利用对称密钥而加密)
签名 – 对象阵列
经加密的对称密钥 – 对象阵列。
有效载荷可以是利用对称密钥加密的。此外,对称密钥可以是利用接收连接租约的实体的公钥加密的。在一个示例实施例中,由于多个实体可以成功接收连接租约(例如客户端设备51、网关60、虚拟递送器具53等),因此对称密钥相应地是利用目的地实体的公钥加密多次的。在另一实施例中,对称密钥可以最初仅针对客户端设备51而加密。然后,在连接租约交换协议阶段期间,在建立到对应网关60或虚拟递送器具53的信任链之后,发起实体(例如,网关的客户端设备51)在通过所建立的连接发送对称密钥之前,利用接收实体的公钥(例如,分别是网关或虚拟递送器具公钥)对对称密钥重新加密。
在JSON被用作连接租约格式的情况下,签名可以以例如JSON Web签名(JWS)格式(RFC 7515)存在。而且作为示例,对称密钥可以以JSON Web密钥(JWK)格式(RFC 7517)存在,且可以是利用目的地实体的公钥加密的。
此外,每个PRLC和CLC可以包括以明文存在的清单(例如,JSON对象),且可以包括以下公共成员中的一个或多个:租约标识符(leaseId),其是每连接租约的唯一GUID;租约类型(leaseType),其是连接租约的类型的描述性名称(例如,Resource、Resource-Comp-Params、Resource-Comp-ResLocsDirect、Resource-Comp-ResLocsGateway、Resource-Comp-ResLocsOrder);租约类型键(leaseTypeKey),其是每连接租约的唯一GUID;文件名(fileName),其是包括当前连接的文件的名称(这要防止连接租约文件重命名,这是由于每个连接租约文件包括签名);来自模板(fromTemplate),其是可选的且包含用于生成当前连接租约(如果有的话)的模板文件的名称,如下面将进一步讨论;工作区URL(workspaceUrl),其是连接租约所属于的工作区的URL(例如,“acme.citrix.cloud.com”);以及客户ID(customerId),其是唯一客户标识符(ID)。
PRLC清单还可以包括一个或多个具体成员,诸如:资源键(resourceKey),其是每公布资源(例如,针对CVAD的桌面或app)的唯一GUID,并且资源键可以被包括在PRLC JSON文件名中;从……起有效(validFrom),其是PRLC变为有效的日期(例如,以RFC 3339格式存在);有效至(validTo),其是资源CL变为无效的日期(以RFC 3339格式存在);用户身份(userId),其是当前资源连接租约适用于的用户的唯一标识符;端点设备ID(endpointDeviceId),其是当前资源连接租约适用于的客户端或端点设备的唯一标识符;端点设备公钥拇指指纹(端点设备公共拇指指纹),其是客户端或端点设备公钥的散列(例如,SHA256);代理商公钥(brokerPublicKeys),其是包含(一个或多个)代理商(一个或多个)公钥的JWK的阵列。在一些实现方式中,如果期望的话,这些成员中的一个或多个可以有助于支持来自CVAD代理商57和虚拟递送器具53的所签名的允许、否定和重定向目标响应。
在一个示例实施例中,可以对连接租约文件进行版本化。例如,版本可以被包括,作为每个连接租约的文件名的一部分。连接租约文件的版本化有利地提供了下述能力:更新CLC(或多个CLC),而无需更新引用它的PRLC。为了做到这一点,CWA 56在解析PRLC(CWA最初利用被包括在PRLC文件名中的资源键找到该PRLC)的引用时执行针对所引用的CLC文件名以及还有具有更新版本的任何文件名的查找。如果找到更新版本(或多于一个),则选择CLC的最近版本。例如,如果PRLC引用章节包括以下内容:
"compReferences": {
…
"r2": "CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V1.json",
…
}
其中CWA连接租约文件同步文件夹61包括下述两者:
CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V1.json,以及
CL-Comp_ResLocsDirect-8ED78F81-AFD7-46E0-B19E-E6291FB7AD1F.V2.json,
然后,使用ResLocsDirect CLC的V2版本。
在这点上,CLC可以与其先前版本向后兼容。如果PRLC的引用的解析失效,那么如果存在具有较早版本的PRLC,则CWA 56尝试使用它,并开始解析其引用。如果这失效或者不存在较早版本,那么CWA可以使用传统(非模块化)租用途径(如果期望的话)来执行标准ICA启动。如果需要以CLC不向后兼容的这种方式更新CLC,那么例如可以发布新CLC(具有不同的租约ID)并且可以相应地更新关联PRLC(利用引用新CLC的更新版本)。
在一些实现方式中,CLC可以被设置成永不到期。如果CLC过时(例如,新资源位置已经被添加),那么它被文件的更新版本或完全不同的文件(具有不同的租约ID)替代。结合先前描述的连接租约引用解析机制将连接租约的先前版本保持在同步文件夹61中(尽管典型地选择最近CLC,如果存在的话)允许更新连接租约文件(PRLC和CLC),而无需锁定机制。例如,当新连接租约文件正在被同步时,可以保持PRLC(及其相关CLC)的先前版本。如果同步在资源的CWA 56启动(并且因此,引用的解析)失效期间未完成(例如,丢失的CLC),则CWA默认到仍然存在的PRLC的先前版本。如果这也失效,那么可以执行ICA启动,如上所提及。
根据另一示例实施例,取代在连接租约同步期间使用版本化途径,可以使用锁定机制。更特别地,在连接租约文件的同步期间,同步文件夹61上的锁由同步引擎62(其将在下面参考图10A-10B进一步讨论)获取。当同步完成时,释放锁。如果不能获取锁(例如,正在执行CWA资源启动),那么同步引擎62等待能够这样做。类似地,当CWA 56启动公布app或桌面时,同步文件夹61上的锁由CWA 56获取。当不再需要连接租约文件(例如,它们可以被拷贝到专用位置以保持锁达最短可能时间量)时,释放锁。如果不能获取锁(例如,同步在进行中),则CWA 56在放弃并执行ICA启动之前等待能够这样做达所设置的时间量,如上所描述。
CLIS 52维持包括针对每个用户的连接租约的虚拟文件夹63,虚拟文件夹63进一步图示性地包括子文件夹64,子文件夹64具有针对用户的被供给以供系统50使用的相应设备中的每一个的租约。也就是说,客户端设备51处的本地安全储存器中存储的同步文件夹61的内容将对应于CLIS 52处的相应子文件夹64的那些内容。在图6中所示的示例实施例中,同步文件夹61图示性地包括两个PRLC(PRLC1和PRLC2)以及六个CLC(CLC1-CLC6)。这里再一次,PRLC中的每一个对应于相应公布资源(例如,app或桌面),且包括适于关联资源的适当资源键GUID、用户ID、到期时间等。
前两个CLC(CLC1-CLC2)包括被指派给客户端设备51以用于访问特定资源的地理区或给定区域中的适当实体地址(例如虚拟递送器具53、网关60、连接器65等)的成组。在所图示的示例中,PRLC1引用CLC1(区域1地址),而PRLC2引用CLC2(区域2地址)。这种指派可以基于客户端设备51在给定时间处的物理位置而变化。此外,在其他实施例中,这些地址不需通过区域而成组,并且,可以针对相应类型的实体(例如虚拟递送器具53、网关60、连接器65等)使用不同CLC。尽管在所图示的示例中示出了仅两个PRLC,但应当领会,其他PRLC可以被包括且也共享CLC1和/或CLC2,并且其他CLC地址文件也可以被包括。
此外,CLC3-CLC6由PRLC1和PRLC2两者共享。更特别地,CLC3包括相应虚拟计算会话73的位置(例如,运行虚拟计算会话的虚拟化服务器或主机的位置),CLIS 52可以有利地响应于位置中的改变而更新该位置。CLC4图示性地包括针对活动的和断开的虚拟计算会话73的状态指示符,其允许虚拟递送器具53在适用时将客户端设备51重新连接到先前建立的活动的和断开的会话。这里再一次,随着虚拟计算会话73被关闭等,可以类似地实时执行对CLC4的更新。
CLC5包括虚拟递送器具53的有序列表,客户端设备51应当连接到该虚拟递送器具53以获得给定虚拟计算会话73。例如,不同客户端设备51可以被指派有虚拟递送器具53的不同有序列表,以有助于提供跨虚拟递送器具的组的负载平衡和/或期望可用性。此外,CLC6包括如上所提及的公共参数,其可以包括网络传输类型(例如用户数据报协议(UDP)相对于传输控制协议(TCP)等)、音频设置显示分辨率设置、安全性设置、驱动映射设置(例如,启用/未启用)等。这里再一次,这些CLC也可以随着改变发生(例如新虚拟递送器具53上线、公共参数被改变等)而被实时更新。
在一些实施例中,可以对连接租约创建和更新进行优先化。例如,CLIS 52可以与工作区店服务72通信以检索用户连接优先级次序,例如最喜欢的和最近使用的公布资源。CLIS 52还可以将该优先级次序馈送到连接租约服务58中。因此,最重要的连接租约将首先得以创建。
另外参考图11的流程图210,现在描述与图4的计算系统40相关联的示例方法方面。该方法以在框212处生成如上所描述的CLC而开始(框211)。也就是说,由于在不同公布资源之间共享CLC,因此它们可以在是时候创建最终连接租约之前被生成,这可以有利地允许在非高峰时间处执行CLC处理,并相应地提供例如负载平衡和/或计算资源的更高效使用。服务器42在框213处接收由客户端设备41进行的公布资源选择,且可以在框214处基于此来生成包括唯一PRLC和关联CLC的连接租约并将它们提供给客户端设备,如上所讨论,这图示性地使图11的方法结束。如上所讨论,连接租约提供用于经由虚拟递送器具44将客户端设备41连接到与公布资源(例如虚拟app和桌面、Web/SaaS app等)相对应的虚拟计算会话43的适当指令。
转至图8,现在首先参考所图示的计算系统80来描述另一有利连接租约生成方面。如上所描述,计算系统80图示性地包括:多个客户端设备81,其被配置成选择与要在客户端设备处远程访问的虚拟计算会话83相对应的公布资源。计算系统80进一步图示性地包括:连接租约模板器具89,被配置成生成与公布资源相对应的多个连接租约模板,并将连接租约模板存储在共享存储器88(例如,基于云的储存系统)中。计算系统80还图示性地包括:连接租约发布器具82,被配置成访问共享存储器88中存储的连接租约模板,并基于连接租约模板来供给针对相应客户端设备81的连接租约。连接租约由连接租约发布器具82响应于由客户端设备81对公布资源的选择而按需供给,如下面将进一步讨论。计算系统80还图示性地包括:一个或多个虚拟递送器具84,其被配置成基于连接租约将客户端设备81连接到相应虚拟计算会话83,如上类似地讨论。
将参考现在参考图9-10B描述的示例实现方式来进一步理解以上内容。图9的系统90和图10A-10B的顺序图230中所示的该示例实现方式是使用Citrix工作区和Citrix云平台来实现的,且共享上面讨论的系统50中利用的相同组件中的若干组件。这里再一次,应当注意,这只是在其中可以利用基于模板的连接租约操作的一个示例平台,并且这些技术也可以被并入其他合适虚拟化平台中。
在所图示的示例中,再一次使用Citrix工作区的连接租约发布服务(CLIS)来实现连接租约发布器具52。CLIS 52通过经由连接租约模板器具58呼叫到资源提供商91中来编排连接租约创建,在该示例中,这由上面描述的连接租约服务提供。资源提供商91与CLIS52之间的流水线中的连接租约的传递可以例如经由连接租约服务REST API 74。
连接租约服务58在共享存储器中创建初始连接租约模板92和中间连接租约模板93,在该示例中,该共享存储器是上面提及的云文件储存器68。此外,CLIS 52随后访问云文件储存器68中的初始连接租约模板92和/或中间连接租约模板,并生成或供给中间连接租约94和最终连接租约95。
模板92、93和连接租约94、95可以在概念上被视为用于租约生成的“工厂”组装线,其中,初始模板92在组装线的开始处,并且最终连接租约是组装线的结尾处的完成的租约(也就是说,可以用于将给定客户端设备51与相应虚拟计算会话73相连接的最终连接租约,如图5中所示)。如下面将进一步讨论的那样,该途径的优势是:它在实现的各种阶段处提供连接租约,使得可以创建新租约或者可以比必须从头开始重新创建每个租约更容易且快速地更新旧租约。
更特别地,初始连接租约模板92可以包括相对高级的租约信息,诸如例如资源递送组(RDG)和公共连接参数。递送组是从一个或多个机器目录中选择的机器的合集。RDG指定哪些用户可以使用哪些虚拟机,外加对那些用户来说可用的应用和/或桌面。如上所提及,公共连接参数可以包括网络传输类型、音频/显示设置、安全性设置、驱动映射设置等。
中间连接租约模板93并入有来自相应初始模板的信息,外加附加特殊化信息。例如,附加信息可以包括:app组定名;资源权利(例如用户有权参与的app、用户被允许启动的桌面的数目等);会话共享约束;加标签;以及每用户的资源位置次序。在不同实施例中,其他参数也可以被包括在初始和/或中间连接租约模板92、93中。
CLIS 52生成和存储包括相应中间连接租约模板中的所有信息的中间连接租约,外加更进一步的特殊化细节。例如,中间连接租约可以进一步包括:可针对不同用户设备而重新加密的用户专用连接租约;资源位置网关连接租约,使得所指派的网关60(参见图6)不必每当连接被发起时都由CLIS 52查询。资源位置定向连接租约可以被提供给网关60,使得它可以利用仅网关60实例理解的密钥对虚拟递送器具53地址进行加密。这可以被实现为附加安全性措施,以有助于防止虚拟递送器具53信息免于暴露于客户端设备51。
除与给定客户端设备51相关联的具体信息外,最终连接租约95还包括相应中间连接租约94的信息。更特别地,该设备专用信息可以包括上面描述的针对具体用户设备而加密和签名的PRLC和CLC组件。此外,附加信息也可以被包括以促进自主同步、可支持性等。
在所图示的示例中,连接租约模板器具58和CLIS 52两者都使用相同共享云文件储存器68。然而,在不同实施例中,连接租约模板器具58和CLIS 52可以被指派有云文件储存器68内的不同分区,或者完全使用不同的文件储存器。也就是说,本文对“共享”存储器的引用意味着:连接租约模板器具58将模板92和/或93存储在对CLIS 52来说可访问(或与CLIS 52共享)的位置中,使得它可以访问模板,但CLIS不必然需要对模板储存区域的写入访问,也不必将其连接租约94和/或95保存在那里。在任何情况下,模板92、93和中间连接租约94的使用都有利地有助于减少云负载和储存,并且在不同实现方式中,可以在适当时选择针对连接租约模板器具58和CLIS 52而使用的特定云文件储存器68的分配,以有助于促进这些目的。
在一些实施例中,如果期望的话,可以抽象云文件储存器68的使用。例如,可以在对文件储存器进行抽象的共享库中在Azure、AWS或Citrix共享文件上实现桥设计模式。更特别地,共享的API可以在没有全新共享服务的情况下被不同服务在编程级别处使用,或者例如,可以使用具有REST API的共享云文件储存器服务。
如上所提及,分离服务(连接租约模板器具58和CLIS 52)使用分离数据库67、66。在一些配置中,数据库67、66还可以共享抽象API。连接租约索引有助于通过GUID、或通过用户设备信息、或通过使用数据库外键等来找到连接租约。然后,指针被发现为指向连接租约被存储在云文件储存器68中的地方。在一个示例实现方式中,具有持久用户DB的Citrix共享文件可以用于实现数据库66和/或67。作为示例,REDIS + SQL DB可以基于其性能、回复力和持久能力而被使用,尽管在不同实施例中可以使用其他平台。
可以将配置、权利、机器状态、会话状态、连接租约到期、撤销等中的更新从资源提供商91的“工厂”链中的不同阶段传播到CLIS 52,以有利地得到部分或完整连接租约更新。也就是说,可以将事件从远程提供商91发送到CLIS 52,在本示例中,这是经由连接租约模板器具58来完成的。
代理商57(参见图5)也可以在“工厂”模式中将连接租约更新传播到连接租约模板器具58和/或CLIS 52。例如,这种更新可以包括:机器目录、递送组、app组或其他改变;app添加/移除;用户权利更新;虚拟递送器具53功率管理更新;虚拟递送器具下/上状态(例如,在线或离线);池化虚拟递送器具功率管理;虚拟递送器具负载改变;用户会话位置(例如池化虚拟递送器具等);以及工作区漫游,例如,允许用户可能已从第一客户端设备51启动的当前运行的app迁移到用户的客户端设备中的另一客户端设备。
CLIS 52还可以检验连接租约到期并续期连接租约,例如基于最近用户活动(活动用户)、最近设备呼叫家、最近登录等。在这点上,在一些实施例中,CLIS 52可以基于最近已使用的用户的客户端设备51之一来续期与给定用户相关联的最终连接租约95中的一些或全部。例如,用户可能未在扩展时段内使用她的膝上型电脑,但她的桌面设备已经在该时段内被有规律地使用。由此,CLIS 52知道用户仍然是活动的,且因而可以被配置成基于演示用户仍然活动的桌面设备的使用来续期针对膝上型电脑的租约。
在一个示例实现方式中,CLIS 52可以周期性地(例如,每7天(尽管还可以使用其他时间段))检验到期/续期租约。在另一示例实施例中,CLIS 52可以将连接租约续期与呼叫家的节奏相联系,例如,如果在某个时间量(例如计及长假时间的一个月等)中未发生呼叫家,则它可以停止生成每用户设备的新连接租约。CLIS 52可以出于该目的而保持每用户设备的时间戳。
还可以将各种途径用于连接租约撤销。在一种示例途径中,不每用户执行连接租约撤销,但可以在云实现方式被黑等情况下支持批量撤销。在其他实现方式中,可以启用个体连接租约撤销。例如,与证书撤销列表的模式类似,CLIS 52可以向虚拟递送器具53和网关60发送要撤销的GUID。在另一示例途径中,可以从云文件储存器移除中间和/或最终连接租约94、95,并且CL同步引擎62也可以相应地从客户端设备51移除它们。
另外参考图10A-10B的顺序图230,在一些实现方式中,CWA同步引擎62可以自主地将来自用户的虚拟文件夹63的连接租约同步到客户端设备51处的连接租约文件同步文件夹61中。该过程以客户端51针对来自连接租约同步引擎62的用户的虚拟文件夹63(和子文件夹64)请求到根同步文件夹位置的同步而开始。客户端设备51进一步基于来自认证管理器71的会话密钥来请求次要令牌同步,该会话密钥被auth管理器返回到客户端。客户端设备51然后基于所同步的次要令牌来关于连接租约同步引擎62初始化,并且连接租约同步引擎将auth发送到连接租约文件同步服务器75,连接租约文件同步服务器75相应地返回auth令牌。这允许连接租约同步引擎62开始同步过程。
更特别地,连接租约同步引擎62从连接租约文件同步文件夹61检索本地同步文件夹,且然后基于auth令牌将请求发布给连接租约文件同步服务器75。连接租约文件同步服务器75然后从CLIS SQL数据库66检索用户设备同步文件夹信息,并将它返回到连接租约同步引擎62。连接租约同步引擎62然后检验连接租约文件信息的文件夹改变/日期列表,并将它与本地同步文件夹61信息进行比较。连接租约同步引擎62然后可以迭代地与连接租约文件同步服务器75协作以从云文件储存器68读取连接租约文件信息,并存储、更新或删除客户端设备51的本地同步文件夹61处的适当连接租约文件。
对于嵌入式(例如,CWA)浏览器实现方式,可以在店刷新时激活同步引擎62。可替换地,还可以执行后台刷新,例如从渐进式Web App(PWA)服务工作器。
以上途径可以有利地用于提供高效复合(模块化)连接租约设计。此外,这些途径还提供了用于使用模板、中间和最终用户设备CL的连接租约后台的基于事件的生成和管理的“工厂”模式。由此,针对权利和连接引导上的增强的回复力和准确的实时数据,提供了分层机会途径。本文阐述的途经的其他优势可以包括连接技术的改进的回复力、可扩缩性、安全性和用户体验中的一个或多个。
以上途径的其他优势可以包括CL到客户端设备的自主单向同步以及用于执行下述操作的机制:减小客户端设备/端点和云上的连接租约的总体大小;减少网络业务量;减小云上的负载,包括代理商57、工作区55、CLIS 52等;促进遥测和可支持性;在复杂度和递增改进发生在云中的同时保持端点(例如,CWA)相对简单;改进关于连接租约的回复力、安全性和用户体验。
现在参考图12的流程图220来描述与图8的系统80相关的方法方面。在框221处开始,响应于由客户端设备81对公布资源的选择(框222),该方法图示性地包括:在框223处,使用连接租约发布器具82来访问与公布资源91相对应的连接租约模板,其被存储在共享存储器68中。该方法进一步图示性地包括:在框224处,使用连接租约发布器具82基于所存储的连接租约模板来供给针对相应客户端设备81的连接租约,这使所图示的方法结束(框225)。如上所提及,可以响应于由客户端设备81对公布资源的选择而按需供给连接租约,并且连接租约可以提供用于将客户端设备连接到与公布资源相对应的虚拟计算会话83的指令。
进一步的示例实施例
以下示例是进一步的示例实施例,对本领域技术人员来说,其他排列和配置将从这些示例实施例中变得明显。
示例A针对的是计算设备,包括:存储器和处理器,所述处理器与所述存储器协作,且被配置成生成针对由客户端设备选择的公布资源的连接租约。所述连接租约提供用于将所述客户端设备连接到与所述公布资源相对应的虚拟计算会话的指令。每个连接租约包括对所选择的公布资源来说唯一的公布资源租约组件和由多个不同公布资源共享的公共租约组件。
示例B包括示例A的主题,其中所述客户端设备通过至少一个虚拟递送器具连接到所述虚拟计算会话;并且其中所述公共租约组件包括与所述至少一个虚拟递送器具相关联的网络地址。
示例C包括示例A和B的主题,其中所述客户端设备通过至少一个网关器具连接到所述虚拟递送器具;并且其中所述公共租约组件包括与所述至少一个网关器具相关联的网络地址。
示例D包括示例A的主题,其中所述虚拟计算会话中的至少一些包括基于云的虚拟计算会话;其中所述客户端设备通过所述至少一个云接口器具连接到所述基于云的虚拟计算会话;并且其中所述公共租约组件包括与所述至少一个云接口器具相关联的网络地址。
示例E包括示例A的主题,其中所述客户端设备通过被成组为不同区域的多个虚拟递送器具连接到所述虚拟计算会话;并且其中所述公共租约组件包括针对虚拟递送器具的给定组的区域定名。
示例F包括示例A的主题,其中所述至少一个虚拟递送器具包括多个虚拟递送器具;并且其中所述公共租约组件包括所述虚拟递送器具中的至少一些的有序列表。
示例G包括示例A的主题,其中所述公共租约组件包括下述各项中的至少一个:网络传输类型设置、音频设置、显示分辨率设置、安全性设置和驱动映射启用设置。
示例H包括示例A的主题,其中所述处理器进一步被配置成:彼此无关地更新所述公布资源租约组件和所述公共租约组件。
示例I包括示例A的主题,所述公布资源租约组件包括下述各项中的至少一个:资源键全局唯一标识符(GUID)、用户标识符和到期时间。
示例J涉及一种方法,包括:在服务器处生成针对由客户端设备选择的公布资源的连接租约,所述连接租约提供用于将所述客户端设备连接到与所述公布资源相对应的虚拟计算会话的指令。每个连接租约包括对所选择的公布资源来说唯一的公布资源租约组件和由多个不同公布资源共享的公共租约组件。
示例K包括示例J的主题,其中所述客户端设备通过至少一个虚拟递送器具连接到所述虚拟计算会话;并且其中所述公共租约组件包括与所述至少一个虚拟递送器具相关联的网络地址。
示例L包括示例J和K的主题,其中所述客户端设备通过至少一个网关器具连接到所述虚拟递送器具;并且其中所述公共租约组件包括与所述至少一个网关器具相关联的网络地址。
示例M包括示例J的主题,其中所述虚拟计算会话中的至少一些包括基于云的虚拟计算会话;其中所述客户端设备通过所述至少一个云接口器具连接到所述基于云的虚拟计算会话;并且其中所述公共租约组件包括与所述至少一个云接口器具相关联的网络地址。
示例N包括示例J的主题,其中所述客户端设备通过被成组为不同区域的多个虚拟递送器具连接到所述虚拟计算会话;并且其中所述公共租约组件包括针对虚拟递送器具的不同组的区域定名。
示例O涉及一种计算系统,包括:多个客户端设备,被配置成选择与虚拟计算会话相对应的公布资源;服务器,被配置成生成针对由所述客户端设备选择的公布资源的连接租约,每个连接租约包括对所选择的公布资源来说唯一的公布资源租约组件和由多个不同公布资源共享的公共租约组件;以及至少一个虚拟递送器具,被配置成基于所述连接租约将所述客户端设备连接到相应虚拟计算会话。
示例P包括示例O的主题,其中所述公共租约组件包括与所述至少一个虚拟递送器具相关联的网络地址。
示例Q包括示例O的主题,进一步包括:至少一个网关器具,被配置成将所述客户端设备连接到所述至少一个虚拟递送器具;并且其中所述公共租约组件包括与所述至少一个网关器具相关联的网络地址。
示例R包括示例O的主题,其中所述虚拟计算会话中的至少一些包括基于云的虚拟计算会话;进一步包括:至少一个云接口器具,被配置成将所述客户端设备连接到所述基于云的虚拟计算会话;并且其中所述公共租约组件包括与所述至少一个云接口器具相关联的网络地址。
示例S包括示例O的主题,其中所述公共租约组件包括虚拟计算会话位置;并且其中所述服务器响应于所述虚拟计算会话位置中的改变而更新所述公共租约组件。
示例T包括示例O的主题,其中所述公共租约组件进一步包括针对活动的和断开的会话的状态指示符;并且其中所述至少一个虚拟递送器具进一步被配置成将所述客户端设备重新连接到先前建立的活动的和断开的会话。
示例AA涉及一种计算设备,包括:存储器和处理器,所述处理器与所述存储器协作,且被配置成访问与共享存储器中存储的公布资源相对应的多个连接租约模板;以及使用连接租约发布器具基于所存储的连接租约模板来供给针对相应客户端设备的连接租约。所述连接租约是响应于由所述客户端设备对所述公布资源的选择而按需供给的,并且所述连接租约提供用于将所述客户端设备连接到与所述公布资源相对应的虚拟计算会话的指令。
示例BB包括示例AA的主题,其中所述模板包括:初始模板,包括第一连接参数;以及中间模板,包括第一参数和第二连接参数。
示例CC包括示例AA和BB的主题,其中所述第一连接参数包括公布资源递送组和公共连接参数中的至少一个。
示例DD包括示例AA和BB的主题,其中所述第二连接参数包括应用组、资源权利、会话共享约束、加标签参数和资源位置次序中的至少一个。
示例EE包括示例AA的主题,其中所述处理器进一步被配置成基于所述连接租约模板来生成且在所述共享存储器中存储中间连接租约,并且每个中间连接租约与相应用户相关联;并且其中所述处理器被配置成将所述中间连接租约供给到针对与每个用户相关联的相应客户端设备的最终连接租约中。
示例FF包括示例AA和EE的主题,其中所述处理器进一步被配置成:基于与给定用户相关联的最终连接租约中的至少一个在到期时段期间的使用,来在所述到期时段结束之前续期与所述给定用户相关联的所有最终连接租约。
示例GG涉及一种方法,包括:使用连接租约发布器具来访问与共享存储器中存储的公布资源相对应的多个连接租约模板;以及使用所述连接租约发布器具基于所存储的连接租约模板来供给针对相应客户端设备的连接租约。所述连接租约是响应于由所述客户端设备对所述公布资源的选择而按需供给的,并且所述连接租约提供用于将所述客户端设备连接到与所述公布资源相对应的虚拟计算会话的指令。
示例HH包括示例GG的主题,其中所述模板包括:初始模板,包括第一连接参数;以及中间模板,包括第一参数和第二连接参数。
示例II包括示例GG和HH的主题,其中所述第一连接参数包括公布资源递送组和公共连接参数中的至少一个。
示例JJ包括示例GG和HH的主题,其中所述第二连接参数包括应用组、资源权利、会话共享约束、加标签参数和资源位置次序中的至少一个。
示例KK包括示例GG的主题,进一步包括使用所述连接租约发布器具基于所述连接租约模板来生成且在所述共享存储器中存储中间连接租约,其中每个中间连接租约与相应用户相关联;并且其中所述供给包括将所述中间连接租约供给到针对与每个用户相关联的相应客户端设备的最终连接租约中。
示例LL包括示例GG和KK的主题,进一步包括:使用所述连接租约发布器具,基于与给定用户相关联的最终连接租约中的至少一个在到期时段期间的使用,来在所述到期时段结束之前续期与所述给定用户相关联的所有最终连接租约。
示例MM涉及一种计算系统,包括:多个客户端设备,被配置成选择与虚拟计算会话相对应的公布资源;连接租约模板器具,被配置成生成与所述公布资源相对应的多个连接租约模板,并将所述连接租约模板存储在共享存储器中;连接租约发布器具,被配置成访问所述共享存储器中的连接租约模板,并基于所述连接租约模板来供给针对相应客户端计算设备的连接租约,所述连接租约是响应于由所述客户端设备对所述公布资源的选择而按需供给的;以及至少一个虚拟递送器具,被配置成基于所述连接租约将所述客户端设备连接到相应虚拟计算会话。
示例NN包括示例MM的主题,其中所述模板包括:初始模板,包括第一连接参数;以及中间模板,包括第一参数和第二连接参数。
示例OO包括示例MM和NN的主题,其中所述第一连接参数包括公布资源递送组和公共连接参数中的至少一个。
示例PP包括示例MM和NN的主题,其中所述第二连接参数包括应用组、资源权利、会话共享约束、加标签参数和资源位置次序中的至少一个。
示例QQ包括示例MM的主题,其中所述连接租约发布器具进一步被配置成:基于所述连接租约模板来生成且在所述共享存储器中存储中间连接租约,每个中间连接租约与相应用户相关联;以及将所述中间连接租约供给到针对与每个用户相关联的相应客户端计算设备的最终连接租约中。
示例RR包括示例MM和QQ的主题,其中所述连接租约发布器具进一步被配置成:基于与给定用户相关联的最终连接租约中的至少一个在到期时段期间的使用,来在所述到期时段结束之前续期与所述给定用户相关联的所有最终连接租约。
示例SS包括示例MM的主题,其中所述至少一个虚拟递送代理包括多个虚拟递送代理;并且其中所述连接租约发布器具进一步被配置成:基于对所述虚拟递送代理的改变来供给针对所述客户端计算设备的新连接租约。
示例TT包括示例MM的主题,其中所述连接租约发布器具进一步被配置成基于对参与所述公布资源的权利的改变来供给针对所述客户端计算设备的新连接租约。
受益于以上描述和关联附图中呈现的教导,本领域技术人员将想到许多修改和其他实施例。因此,应当理解,以上内容不应限于示例实施例,并且修改和其他实施例意在被包括在所附权利要求书的范围内。
Claims (20)
1.一种计算设备,包括:
存储器和处理器,所述处理器与所述存储器协作,且被配置成:
接收提供用于连接到计算会话的指令的连接租约,以及
请求包括所述连接租约的到所述计算会话的连接;
其中每个连接租约包括对公布资源来说唯一的第一组件以及由所述第一组件引用且与其他连接租约中的多个不同公布资源公共地共享的第二组件,所述第二组件是与所述第一组件无关地可更新的。
2.如权利要求1所述的计算设备,其中所述处理器通过至少一个虚拟递送器具连接到所述计算会话;并且其中所述第二组件包括与所述至少一个虚拟递送器具相关联的网络地址。
3.如权利要求2所述的计算设备,其中所述处理器通过至少一个网关器具连接到所述至少一个虚拟递送器具;并且其中所述第二组件包括与所述至少一个网关器具相关联的网络地址。
4.如权利要求1所述的计算设备,其中所述计算会话中的至少一些包括基于云的虚拟计算会话;其中所述处理器通过至少一个云接口器具连接到所述基于云的虚拟计算会话;并且其中所述第二组件包括与所述至少一个云接口器具相关联的网络地址。
5.如权利要求1所述的计算设备,其中所述处理器通过被成组为不同区域的多个虚拟递送器具连接到所述计算会话;并且其中所述第二组件包括针对虚拟递送器具的给定组的区域定名。
6.如权利要求1所述的计算设备,其中所述处理器通过至少一个虚拟递送器具连接到所述计算会话;并且其中所述第二组件包括所述虚拟递送器具中的至少一些的有序列表。
7.如权利要求1所述的计算设备,其中所述第二组件包括下述各项中的至少一个:网络传输类型设置、音频设置、显示分辨率设置、安全性设置和驱动映射启用设置。
8.如权利要求1所述的计算设备,其中所述第一组件包括下述各项中的至少一个:资源键全局唯一标识符(GUID)、用户标识符和到期时间。
9.一种方法,包括:
在计算设备处接收提供用于连接到计算会话的指令的连接租约,以及
从所述计算设备请求包括所述连接租约的到所述计算会话的连接;
其中每个连接租约包括对公布资源来说唯一的第一组件以及由所述第一组件引用且与其他连接租约中的多个不同公布资源公共地共享的第二组件,所述第二组件是与所述第一组件无关地可更新的。
10.如权利要求9所述的方法,其中所述计算设备通过至少一个虚拟递送器具连接到所述计算会话;并且其中所述第二组件包括与所述至少一个虚拟递送器具相关联的网络地址。
11.如权利要求10所述的方法,其中所述计算设备通过至少一个网关器具连接到所述至少一个虚拟递送器具;并且其中所述第二组件包括与所述至少一个网关器具相关联的网络地址。
12.如权利要求9所述的方法,其中所述计算会话中的至少一些包括基于云的虚拟计算会话;其中所述计算设备通过至少一个云接口器具连接到所述基于云的虚拟计算会话;并且其中所述第二组件包括与所述至少一个云接口器具相关联的网络地址。
13.如权利要求9所述的方法,其中所述计算设备通过被成组为不同区域的多个虚拟递送器具连接到所述计算会话;并且其中所述第二组件包括针对虚拟递送器具的给定组的区域定名。
14.如权利要求9所述的方法,其中所述计算设备通过至少一个虚拟递送器具连接到所述计算会话;并且其中所述第二组件包括所述虚拟递送器具中的至少一些的有序列表。
15.一种具有计算机可执行指令的非瞬变计算机可读介质,所述计算机可执行指令用于使计算设备执行包括下述各项的步骤:
接收提供用于连接到计算会话的指令的连接租约,以及
请求包括所述连接租约的到所述计算会话的连接;
其中每个连接租约包括对公布资源来说唯一的第一组件以及由所述第一组件引用且与其他连接租约中的多个不同公布资源公共地共享的第二组件,所述第二组件是与所述第一组件无关地可更新的。
16.如权利要求15所述的非瞬变计算机可读介质,其中所述计算设备通过至少一个虚拟递送器具连接到所述计算会话;并且其中所述第二组件包括与所述至少一个虚拟递送器具相关联的网络地址。
17.如权利要求16所述的非瞬变计算机可读介质,其中所述计算设备通过至少一个网关器具连接到所述至少一个虚拟递送器具;并且其中所述第二组件包括与所述至少一个网关器具相关联的网络地址。
18.如权利要求15所述的非瞬变计算机可读介质,其中所述计算会话中的至少一些包括基于云的虚拟计算会话;其中所述计算设备通过至少一个云接口器具连接到所述基于云的虚拟计算会话;并且其中所述第二组件包括与所述至少一个云接口器具相关联的网络地址。
19.如权利要求15所述的非瞬变计算机可读介质,其中所述计算设备通过被成组为不同区域的多个虚拟递送器具连接到所述计算会话;并且其中所述第二组件包括针对虚拟递送器具的给定组的区域定名。
20.如权利要求15所述的非瞬变计算机可读介质,其中所述计算设备通过至少一个虚拟递送器具连接到所述计算会话;并且其中所述第二组件包括所述虚拟递送器具中的至少一些的有序列表。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/416481 | 2019-05-20 | ||
US16/416,481 US11012374B2 (en) | 2019-05-20 | 2019-05-20 | Systems and methods for virtual session connection using component-based connection leases |
CN202080026699.2A CN113614695A (zh) | 2019-05-20 | 2020-04-22 | 用于使用基于组件的连接租约的虚拟会话连接的系统和方法 |
PCT/US2020/029224 WO2020236382A1 (en) | 2019-05-20 | 2020-04-22 | Systems and methods for virtual session connection using component-based connection leases |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080026699.2A Division CN113614695A (zh) | 2019-05-20 | 2020-04-22 | 用于使用基于组件的连接租约的虚拟会话连接的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454582A true CN115454582A (zh) | 2022-12-09 |
Family
ID=70740746
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211115528.4A Pending CN115469952A (zh) | 2019-05-20 | 2020-04-22 | 用于使用基于组件的连接租约的虚拟会话连接的系统和方法 |
CN202080026699.2A Pending CN113614695A (zh) | 2019-05-20 | 2020-04-22 | 用于使用基于组件的连接租约的虚拟会话连接的系统和方法 |
CN202211115013.4A Pending CN115454582A (zh) | 2019-05-20 | 2020-04-22 | 用于使用基于组件的连接租约的虚拟会话连接的系统和方法 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211115528.4A Pending CN115469952A (zh) | 2019-05-20 | 2020-04-22 | 用于使用基于组件的连接租约的虚拟会话连接的系统和方法 |
CN202080026699.2A Pending CN113614695A (zh) | 2019-05-20 | 2020-04-22 | 用于使用基于组件的连接租约的虚拟会话连接的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (3) | US11012374B2 (zh) |
EP (3) | EP3998531A1 (zh) |
JP (3) | JP7111912B2 (zh) |
CN (3) | CN115469952A (zh) |
AU (3) | AU2020279011B2 (zh) |
CA (1) | CA3135197A1 (zh) |
WO (1) | WO2020236382A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11601402B1 (en) * | 2018-05-03 | 2023-03-07 | Cyber Ip Holdings, Llc | Secure communications to multiple devices and multiple parties using physical and virtual key storage |
US11012374B2 (en) * | 2019-05-20 | 2021-05-18 | Citrix Systems, Inc. | Systems and methods for virtual session connection using component-based connection leases |
US11032381B2 (en) * | 2019-06-19 | 2021-06-08 | Servicenow, Inc. | Discovery and storage of resource tags |
JP7233342B2 (ja) * | 2019-08-08 | 2023-03-06 | 株式会社日立製作所 | サービス連携支援システムおよびその方法 |
US11853100B2 (en) * | 2021-04-12 | 2023-12-26 | EMC IP Holding Company LLC | Automated delivery of cloud native application updates using one or more user-connection gateways |
US11474840B1 (en) * | 2021-05-17 | 2022-10-18 | Citrix Systems, Inc. | Computing device and related methods providing virtual session launching from previously cached assets |
JP7340663B1 (ja) | 2022-07-13 | 2023-09-07 | 株式会社三菱Ufj銀行 | リソース申請システム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104106052A (zh) * | 2012-02-16 | 2014-10-15 | 西里克斯系统公司 | 用于主控的服务的连接租赁 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917976B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Message-based leasing of resources in a distributed computing environment |
KR20070045282A (ko) | 2004-07-23 | 2007-05-02 | 사이트릭스 시스템스, 인크. | 네트워크 노드 간의 통신을 최적화하기 위한 시스템 및방법 |
US8732182B2 (en) * | 2004-12-02 | 2014-05-20 | Desktopsites Inc. | System and method for launching a resource in a network |
US9009327B2 (en) | 2007-08-03 | 2015-04-14 | Citrix Systems, Inc. | Systems and methods for providing IIP address stickiness in an SSL VPN session failover environment |
US8856783B2 (en) | 2010-10-12 | 2014-10-07 | Citrix Systems, Inc. | Allocating virtual machines according to user-specific virtual machine metrics |
US9703609B2 (en) * | 2009-05-29 | 2017-07-11 | Red Hat, Inc. | Matching resources associated with a virtual machine to offered resources |
JP5403447B2 (ja) * | 2010-03-20 | 2014-01-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理システム、仮想マシン管理方法、及びプログラム |
WO2011117958A1 (ja) | 2010-03-20 | 2011-09-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理方法、及びプログラム |
US8886806B2 (en) * | 2010-04-07 | 2014-11-11 | Accenture Global Services Limited | Generic control layer in a cloud environment |
US8812688B2 (en) * | 2010-09-28 | 2014-08-19 | Nokia Corporation | Method and apparatus for providing shared connectivity |
US8699499B2 (en) * | 2010-12-08 | 2014-04-15 | At&T Intellectual Property I, L.P. | Methods and apparatus to provision cloud computing network elements |
JP5772127B2 (ja) * | 2011-03-25 | 2015-09-02 | 富士通株式会社 | 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム |
JP5606477B2 (ja) * | 2012-03-13 | 2014-10-15 | 株式会社東芝 | クライアント管理システム |
JP5439559B2 (ja) | 2012-08-10 | 2014-03-12 | 株式会社日立製作所 | セキュリティ管理装置及び方法並びにプログラム |
KR20140098919A (ko) * | 2013-01-31 | 2014-08-11 | 한국전자통신연구원 | 실시간 가상 데스크탑 서비스를 위한 가상머신 제공 방법 및 서비스 게이트웨이 |
JP6258135B2 (ja) * | 2014-06-25 | 2018-01-10 | 株式会社東芝 | 情報処理装置および動作制御方法 |
US10474485B2 (en) * | 2014-08-07 | 2019-11-12 | Vmware, Inc. | Individualizing virtual hardware configurations of deployed desktop virtual machines using custom resource templates |
JP6519273B2 (ja) * | 2015-03-30 | 2019-05-29 | 日本電気株式会社 | 仮想マシン及びリモートデスクトップシステム |
US10075537B2 (en) * | 2015-08-27 | 2018-09-11 | Accenture Global Services Limited | Action execution architecture for virtual machines |
JP6803777B2 (ja) * | 2017-03-15 | 2020-12-23 | キヤノン株式会社 | 情報処理装置、制御方法およびプログラム |
US11012374B2 (en) * | 2019-05-20 | 2021-05-18 | Citrix Systems, Inc. | Systems and methods for virtual session connection using component-based connection leases |
-
2019
- 2019-05-20 US US16/416,481 patent/US11012374B2/en active Active
- 2019-05-24 US US16/421,846 patent/US11018992B2/en active Active
-
2020
- 2020-04-22 EP EP21216444.6A patent/EP3998531A1/en not_active Withdrawn
- 2020-04-22 AU AU2020279011A patent/AU2020279011B2/en active Active
- 2020-04-22 CN CN202211115528.4A patent/CN115469952A/zh active Pending
- 2020-04-22 CN CN202080026699.2A patent/CN113614695A/zh active Pending
- 2020-04-22 CA CA3135197A patent/CA3135197A1/en not_active Abandoned
- 2020-04-22 CN CN202211115013.4A patent/CN115454582A/zh active Pending
- 2020-04-22 EP EP21216406.5A patent/EP3998530A1/en not_active Withdrawn
- 2020-04-22 EP EP20726587.7A patent/EP3973392A1/en active Pending
- 2020-04-22 WO PCT/US2020/029224 patent/WO2020236382A1/en unknown
- 2020-04-22 JP JP2021558668A patent/JP7111912B2/ja active Active
-
2021
- 2021-05-11 US US17/316,821 patent/US11483255B2/en active Active
-
2022
- 2022-07-21 JP JP2022116391A patent/JP2022160493A/ja active Pending
- 2022-07-21 JP JP2022116392A patent/JP2022160494A/ja active Pending
- 2022-08-15 AU AU2022215325A patent/AU2022215325B2/en not_active Expired - Fee Related
- 2022-08-17 AU AU2022218514A patent/AU2022218514B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104106052A (zh) * | 2012-02-16 | 2014-10-15 | 西里克斯系统公司 | 用于主控的服务的连接租赁 |
Also Published As
Publication number | Publication date |
---|---|
CN113614695A (zh) | 2021-11-05 |
AU2022215325A1 (en) | 2022-09-08 |
AU2022215325B2 (en) | 2022-12-01 |
JP2022160493A (ja) | 2022-10-19 |
EP3998530A1 (en) | 2022-05-18 |
JP7111912B2 (ja) | 2022-08-02 |
AU2022218514A1 (en) | 2022-09-08 |
CA3135197A1 (en) | 2020-11-26 |
WO2020236382A1 (en) | 2020-11-26 |
JP2022160494A (ja) | 2022-10-19 |
AU2022218514B2 (en) | 2022-12-01 |
CN115469952A (zh) | 2022-12-13 |
US11483255B2 (en) | 2022-10-25 |
US11018992B2 (en) | 2021-05-25 |
JP2022528532A (ja) | 2022-06-14 |
AU2020279011A1 (en) | 2021-10-28 |
US11012374B2 (en) | 2021-05-18 |
US20210266271A1 (en) | 2021-08-26 |
EP3998531A1 (en) | 2022-05-18 |
AU2020279011B2 (en) | 2022-06-16 |
US20200374239A1 (en) | 2020-11-26 |
US20200374351A1 (en) | 2020-11-26 |
EP3973392A1 (en) | 2022-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020279011B2 (en) | Systems and methods for virtual session connection using component-based connection leases | |
US10574644B2 (en) | Stateful session manager | |
US9916188B2 (en) | Provisioner for cluster management system | |
US10708329B2 (en) | Application streaming using access and execution environments | |
JP2019032869A (ja) | 共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること | |
US20210042197A1 (en) | Automatic restore for a failed virtual computing session | |
CA3135722C (en) | Sharing resources between client devices in a virtual workspace environment | |
US11922190B2 (en) | Systems and methods for autonomous provision of desktop as a service (DAAS) | |
US11297065B2 (en) | Technology for computing resource liaison | |
US20230195493A1 (en) | Virtual device enrollment and management | |
US11764978B2 (en) | Method and system for certificate management | |
US11212237B1 (en) | Sharing resources between client devices in a virtual workspace environment | |
Marinescu | Cloud infrastructure | |
JP2022536479A (ja) | クライアントデバイスへリンクされた電力管理を備えたデスクトップ仮想化 |
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 |