CN112789841A - 在远程访问或基于云的网络环境中访问资源 - Google Patents

在远程访问或基于云的网络环境中访问资源 Download PDF

Info

Publication number
CN112789841A
CN112789841A CN201980064739.XA CN201980064739A CN112789841A CN 112789841 A CN112789841 A CN 112789841A CN 201980064739 A CN201980064739 A CN 201980064739A CN 112789841 A CN112789841 A CN 112789841A
Authority
CN
China
Prior art keywords
resource
gateway
application
resources
network
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
Application number
CN201980064739.XA
Other languages
English (en)
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems 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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN112789841A publication Critical patent/CN112789841A/zh
Pending legal-status Critical Current

Links

Images

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/14Session management
    • H04L67/141Setup of application sessions
    • 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/10Protocols in which an application is distributed across nodes in the network
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • 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/45587Isolation or security of virtual machine instances
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer

Abstract

作为远程访问或基于云的网络环境的一部分,客户端装置可以通过使用至网关的连接或通过使用绕开所述网关的连接来访问资源。使用哪个连接可以基于由所述网络环境提供的所述资源的网络位置和所述客户端装置的网络位置。例如,如果所述客户端装置和资源位于相同的网络位置或连接到相同的本地网络,则所述客户端装置可以通过使用绕开所述网关的连接来访问所述资源。如果所述客户端装置和所述资源位于不同的网络位置或连接到不同的本地网络,则所述客户端装置可以连接到所述网关以访问所述资源。

Description

在远程访问或基于云的网络环境中访问资源
相关申请的交叉引用
本申请要求于2018年8月28日提交的美国非临时专利申请号16/114,764的优先权,其内容以引用的方式整体明确并入本文。
技术领域
本文描述的各方面总体涉及在远程访问或基于云的网络环境中连接到资源和访问资源。本文描述的额外方面涉及一种客户端装置,其基于网络环境的某些状况使用至网关装置的连接或绕开网关的连接来访问资源。
背景技术
远程访问环境和基于云的环境可以为装置提供对连接资源的访问。例如,资源可以用于启动和执行应用程序(例如,桌面),其可以由装置使用,就像装置本身在执行应用程序一样。一些远程访问和基于云的网络环境包括网关。在一些网络环境中,为了访问资源,装置可首先连接到网关。然后,网关可以代表装置与资源进行通信。网关的引入可引入与装置和资源相关联的通信延迟。因此,通过引入网关降低了网络的整体性能。
另外,网关可以是向客户端装置提供云服务的计算平台的一部分,并且计算平台可以作为云服务的一部分分配资源以执行应用程序。终端装置、资源和计算平台可以经由广域网彼此通信和/或可以物理地位于不同的位置。由于客户端装置、网关和资源经由广域网通信或位于不同的位置,可能将不期望的延迟引入到系统中。另外,通过充当客户端装置和资源之间的中介,网关可能将额外的且不期望的故障点引入到系统中。
发明内容
以下呈现了本文描述的各个方面的简化概述。该概述不是宽泛性综述,并且不意图标识必需的或重要的元素或描绘权利要求的范围。以下概述仅以简化形式呈现一些概念以作为下面提供的更详细描述的介绍性序言。
为了克服上述限制并且克服在阅读和理解本公开时将显而易见的其他限制,本文描述的各方面涉及允许客户端装置作为远程访问或基于云的网络环境的一部分通过使用至网关的连接或通过使用绕开网关的连接来访问资源的方法、装置和系统。使用哪个连接可以基于资源的网络位置和客户端装置的网络位置。例如,如果客户端装置和资源位于相同的网络位置或连接到相同的本地网络,则客户端装置可以通过使用绕开网关的连接来访问资源。如果客户端装置和资源位于不同的网络位置或连接到不同的本地网络,则客户端装置可以连接到网关以访问资源。另外,由于远程访问或基于云的网络环境中的资源可以被组织成一个或多个资源组或以其他方式与一个或多个资源组相关联,因此绕开网关的能力可基于:如果网关被绕开,客户端装置能够与哪些资源组进行通信。
另外,使用绕开网关的连接可以优先于使用至网关的连接。鉴于在资源和客户端装置位于相同的网络位置或连接到相同的本地网络的情况下绕开网关的能力,可以基于资源和客户端装置位于相同的网络位置或连接到相同的本地网络来执行资源选择。例如,如果所述资源位于与客户端装置相同的网络位置或连接到与所述客户端装置相同的本地网络,则可以选择资源以启动和执行应用程序。
作为一些示例,在第一网络位置处的计算装置可以传输对资源组标识的一个或多个第一请求。所述计算装置可以从与第一资源组相关联的第一资源接收第一资源组标识。所述第一资源可以位于所述第一网络位置。所述计算装置可以基于所述第一资源组标识确定:如果网关被绕开,则所述计算装置能够与所述第一资源组进行通信的第一指示。所述网关可以位于第二网络位置。所述计算装置可以向与所述网关相关联的计算平台传输启动第一应用程序的请求。所述计算平台可以位于所述第二网络位置。启动所述第一应用程序的所述请求可以包括如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示。所述计算装置可以从所述计算平台接收用于基于至所述资源的连接绕开所述网关的第一应用程序会话的第一配置数据。所述计算装置可以基于所述第一配置数据连接到所述第一资源。所述计算装置可以使用至所述资源的所述连接来执行所述第一应用程序会话。
基于对本公开的讨论,应了解这些和额外的方面。
附图说明
通过参考以下考虑了附图的描述,可以获取对本文描述的各方面及其优点的更完整的理解,其中相同的附图标记表示相同的特征,并且在附图中:
图1描绘了可以根据本文描述的一个或多个说明性方面使用的说明性计算机系统架构。
图2描绘了可以根据本文描述的一个或多个说明性方面使用的说明性远程访问系统架构。
图3描绘了可以根据本文描述的一个或多个说明性方面使用的说明性虚拟化(管理程序)系统架构。
图4描绘了可以根据本文描述的一个或多个说明性方面使用的说明性基于云的系统架构。
图5描绘了可以根据本文描述的一个或多个说明性方面使用的说明性企业移动管理系统。
图6描绘了可以根据本文描述的一个或多个说明性方面使用的另一个说明性企业移动管理系统。
图7描绘了可以根据本文描述的一个或多个方面使用的用于在远程访问或基于云的网络环境中连接到资源的示例框图。
图8A至图8D示出了示例流程,其中客户端装置确定并更新所标识的资源组的指示。
图9A至图9C示出了示例流程,其中客户端装置基于所标识的资源组的所述指示,通过使用绕开网关的连接来访问资源。
图10A至图10D示出了示例流程,其中客户端装置基于所标识的资源组的指示,通过使用至网关的连接来访问资源。
图11示出了用于使客户端装置在远程访问或基于云的网络环境中通过绕开网关来与资源进行通信的示例方法。
具体实施方式
在以下对各种实施方案的描述中,参考了上面标识的且形成其一部分的附图,并且其中以图示的方式示出了可以实践本文描述的各方面的各种实施方案。应理解,在不脱离本文描述的范围的情况下,可以利用其他实施方案并且可以进行结构和功能上的修改。各个方面能够具有其他实施方案,并且能够以各种不同的方式来实践或实施。
作为下面更详细描述的主题的一般介绍,本文描述的各方面涉及在远程访问或基于云的网络环境中连接到资源并且访问资源。本文描述的额外方面涉及一种客户端装置,其基于网络环境的某些状况使用至网关装置的连接或绕开网关的连接来访问资源。
更具体地,作为远程访问或基于云的网络环境的一部分,客户端装置可以通过使用至网关的连接或通过使用绕开所述网关的连接来访问资源。使用哪个连接可以基于被注册用于由网络环境提供的服务的资源的网络位置和客户端装置的网络位置。例如,如果所述客户端装置和资源位于所述相同的网络位置或连接到所述相同的本地网络,则所述客户端装置可以通过使用绕开所述网关的连接来访问所述资源。如果所述客户端装置和所述资源位于不同的网络位置或连接到不同的本地网络,则所述客户端装置可以连接到所述网关以访问所述资源。通过绕开网关,可以减少客户端装置与资源之间的通信延迟,并且可以减少系统中的故障点。如果客户端装置和资源连接到不同的网络(例如,客户端装置连接到用户的家庭网络而资源连接到企业的内联网),则客户端装置可以使用至网关的连接来访问资源。另外,由于远程访问或基于云的网络环境中的资源可以被组织成一个或多个资源组或以其他方式与一个或多个资源组相关联,因此绕开网关的能力可能基于:如果网关被绕开,客户端装置能够与哪些资源组进行通信。
应理解,本文使用的措词和术语是出于描述的目的,而不应被认为是限制性的。相反地,本文所使用的短语和术语将被给予其最广泛的解释和含义。“包括”和“包含”及其变体的使用意味着涵盖其后列出的项目及其等同物,以及额外的项目及其等同物。术语“安装”、“连接”、“耦合”、“定位”、“接合”和类似术语的使用旨在包括直接和间接安装、连接、耦合、定位和接合。
计算架构
可以在包括独立的、联网的、远程访问的(例如,允许装置远程地访问桌面或其他应用程序)、虚拟化的和/或基于云的环境等等的各种不同的系统环境中利用计算机软件、硬件和网络。图1示出了可以用于在独立和/或联网环境中实现本文描述的一个或多个说明性方面的系统架构和数据处理装置的一个示例。各种网络节点103、105、107和109可以经由广域网(WAN)101,诸如互联网互连。也可以使用或替代地使用其他网络,包括专用内联网、公司网络、局域网(LAN)、城域网(MAN)、无线网络、个人网络(PAN)等。网络101是出于说明目的,并且可以用更少或额外的计算机网络代替。局域网133可以具有任何已知LAN拓扑中的一个或多个,并且可以使用各种不同协议中的一个或多个,例如以太网。装置103、105、107和109以及其他装置(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其他通信介质连接到网络中的一个或多个。
如本文所用和附图中所描绘的术语“网络”不仅指其中远程存储装置经由一个或多个通信路径耦合在一起的系统,而且还指可以不时地耦合至具有存储能力的这种系统的独立装置。因此,术语“网络”不仅包括“物理网络”,还包括“内容网络”,其由驻留在所有物理网络中的数据(归因于单个实体的)组成。
这些部件可以包括数据服务器103、web服务器105和客户端计算机107、109。数据服务器103提供用于执行本文描述的一个或多个说明性方面的数据库和控制软件的整体访问、控制和管理。数据服务器103可以连接到web服务器105,用户可以通过该web服务器与其交互并且根据请求获得数据。替代地,数据服务器103可以充当web服务器本身并且直接连接到互联网。数据服务器103可以通过局域网133、广域网101(例如,互联网),经由直接连接或间接连接,或经由某种其他网络连接到web服务器105。用户可以使用远程计算机107、109,例如使用web浏览器来经由通过web服务器105托管的一个或多个外部暴露的网站连接到数据服务器103而与数据服务器103进行交互。客户端计算机107、109可以与数据服务器103协同使用以访问存储在其中的数据,或者可以用于其他目的。例如,如本领域中已知的,用户可以使用互联网浏览器从客户端装置107访问web服务器105,或者通过执行软件应用程序来进行,软件应用程序通过计算机网络(诸如,互联网)与web服务器105和/或数据服务器103进行通信。
服务器和应用程序可以组合在相同的物理机器上,并且保留单独的虚拟或逻辑地址,或者可以驻留在单独的物理机器上。图1仅示出了可以使用的网络架构的一个示例,并且本领域的技术人员应了解,所使用的特定网络架构和数据处理装置可以改变,并且次于其所提供的功能,如本文进一步描述的。例如,可以在单个服务器上组合由web服务器105和数据服务器103提供的服务。
每个部件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理装置。数据服务器103,例如可以包括控制数据服务器103的整体操作的处理器111。数据服务器103还可以包括随机存取存储器(RAM)113、只读存储器(ROM)115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等)以及存储器121。输入/输出(I/O)119可以包括用于读取、写入、显示和/或打印数据或文件的各种接口单元和驱动器。存储器121还可以存储用于控制数据处理装置103的整体操作的操作系统软件123,用于指示数据服务器103执行本文描述的各方面的控制逻辑125,以及提供可以或可以不结合本文描述的各方面使用的辅助、支持和/或其他功能的其他应用程序软件127。控制逻辑125在本文中也可以被称为数据服务器软件125。数据服务器软件125的功能可以指基于编码到控制逻辑125中的规则自动做出的、由用户将输入提供到系统中而手动做出的和/或基于用户输入(例如,查询、数据更新等)的自动处理的组合的操作或决策。
存储器121还可以存储用于执行本文描述的一个或多个方面的数据,包括第一数据库129和第二数据库131。在一些实施方案中,第一数据库129可以包括第二数据库131(例如,作为单独的表、报告等)。也就是说,信息可以存储在单个数据库中,或分成不同的逻辑、虚拟或物理数据库,这取决于系统设计。装置105、107和109可以具有与关于装置103所描述的类似或不同的架构。本领域技术人员应了解,如本文描述的数据处理装置103(或装置105、107或109)的功能可以例如跨多个数据处理装置扩展以跨多个计算机分布处理负载,从而基于地理位置、用户访问级别、服务质量(QoS)等来分离交易。
一个或多个方面可以在计算机可用或可读数据和/或计算机可执行指令中,诸如在由如本文描述的一个或多个计算机或其他装置执行的一个或多个程序模块中体现。一般来说,程序模块包括在由计算机中的处理器或其他装置执行时执行特定任务或实现特定抽象数据类型的例行程序、程序、对象、部件、数据结构等。可以用源代码编程语言编写模块,然后对语言进行编译以供执行,或者可以用脚本语言编写模块,诸如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)。可以将计算机可执行指令存储在诸如非易失性存储装置的计算机可读介质上。可以利用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光学存储装置、磁存储装置和/或它们的任何组合。另外,表示如本文描述的数据或事件的各种传输(非存储)介质可以按行进穿过信号传导介质(诸如金属线、光纤)和/或无线传输介质(例如,空气和/或空间)的电磁波形式在来源与目的地之间传送。本文描述的各个方面可以体现为一种方法、一种数据处理系统或一种计算机程序产品。因此,各种功能可以全部或部分地体现在软件、固件和/或硬件或硬件等同物中,诸如集成电路、现场可编程门阵列(FPGA)等。特定的数据结构可以用于更有效地实现本文描述的一个或多个方面,并且此类数据结构被预期在本文描述的计算机可执行指令和计算机可用数据的范围内。
进一步参考图2,本文描述的一个或多个方面可以在远程访问环境中实现。图2描绘了可以根据本文描述的一个或多个说明性方面使用的在说明性计算环境200中包括计算装置201的示例性系统架构。计算装置201可以用作被配置为向客户端访问装置提供虚拟机的单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a。计算装置201可以具有处理器203,其用于控制服务器206a及其相关联的部件(包括RAM 205、ROM207、输入/输出(I/O)模块209和存储器215)的整体操作。
I/O模块209可以包括计算装置201的用户可以通过其提供输入的鼠标、小键盘、触摸屏、扫描仪、光学阅读器和/或触针(或一个或多个其他输入装置),并且还可以包括用于提供音频输出的扬声器中的一个或多个以及用于提供文本、视听和/或图形输出的视频显示装置中的一个或多个。软件可以存储在存储器215和/或其他存储装置中以向处理器203提供指令,以用于将计算装置201配置为专用计算装置,以便执行本文描述的各种功能。例如,存储器215可以存储由计算装置201使用的软件,诸如操作系统217、应用程序219和相关联的数据库221。
计算装置201可以在支持至一个或多个远程计算机(诸如终端240(也称为客户端装置))的连接的联网环境中操作。终端240可以是包括以上关于计算装置103或201描述的许多或所有元件的个人计算机、移动装置、膝上型计算机、平板电脑或服务器。图2中描绘的网络连接包括局域网(LAN)225和广域网(WAN)229,但是也可以包括其他网络。当在LAN联网环境中使用时,计算装置201可以通过网络接口或适配器223连接到LAN 225。当在WAN联网环境中使用时,计算装置201可以包括调制解调器或其他广域网接口227以用于通过WAN229,诸如计算机网络230(例如,互联网)来建立通信。应了解,所示的网络连接是说明性的,并且可以使用在计算机之间建立通信链路的其他装置。计算装置201和/或终端240还可以是包括各种其他部件(诸如电池、扬声器和天线(未示出))的移动终端(例如,移动电话、智能电话、个人数字助理(PDA)、笔记本电脑等)。
本文描述的各方面也可以与许多其他通用或专用计算系统环境或配置一起操作。可以适合于与本文描述的各方面一起使用的其他计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人计算机(PC)、小型计算机、大型计算机、包括上述系统或装置中的任一个的分布式计算环境等。
如图2所示,一个或多个客户端装置240可以与一个或多个服务器206a至206n(在本文中通常称为“一个或多个服务器206”)通信。在一个实施方案中,计算环境200可以包括安装在服务器206和客户端机器240之间的网络设备。网络设备可以管理客户端/服务器连接,并且在一些情况下可以在多个后端服务器206之间实现负载平衡客户端连接。
在一些实施方案中,客户端机器240可以被称为单个客户端机器240或单组客户端机器240,而服务器206可以被称为单个服务器206或单组服务器206。在一个实施方案中,单个客户端计算机240与一个以上的服务器206通信,而在另一实施方案中,单个服务器206与一个以上的客户端机器240通信。在又一个实施方案中,单个客户端机器240与单个服务器206通信。
在一些实施方案中,客户端机器240可以由以下非穷举性术语中的任一个来引用:客户端机器;客户端;客户端计算机;客户端计算装置;客户端计算装置;本地机器;远程机器;客户端节点;端点;和/或端点节点。在一些实施方案中,服务器206可以由以下非穷举性术语中的任一个来引用:服务器;本地机器;远程机器;服务器场;或主机计算装置。
在一个实施方案中,客户端机器240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施方案中,虚拟机可以是由类型1或类型2管理程序(例如,由Citrix Systems、IBM、VMware开发的管理程序或任何其他管理程序)管理的任何虚拟机。在一些方面,虚拟机可以由管理程序管理,而在其他方面,虚拟机可以由在服务器206上执行的管理程序或在客户端240上执行的管理程序管理。
一些实施方案包括客户端装置240,其显示由在服务器206或其他远程定位的机器上远程执行的应用程序生成的应用程序输出。在这些实施方案中,客户端装置240可以执行虚拟机接收器程序或应用程序以在应用窗口、浏览器或其他输出窗口中显示输出。在一个示例中,应用程序是桌面,而在其他示例中,该应用程序是生成或呈现桌面的应用程序。桌面可以包括图形壳,该图形壳可以为其中可以集成本地和/或远程应用程序的操作系统的实例提供用户界面。如本文所使用的,应用程序是在已经加载了操作系统(以及可选地,还有桌面)的实例之后执行的程序。
在一些实施方案中,服务器206使用远程呈现协议或其他程序将数据发送到在客户端上执行的瘦客户端或远程显示应用程序,以呈现由在服务器206上执行的应用程序生成的显示输出。瘦客户端或远程显示协议可以是以下非穷举性协议列表中的任一个:由佛罗里达州劳德代尔堡的Citrix Systems有限公司开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙德市的微软公司制造的远程桌面协议(RDP)。
远程计算环境可以包括一个以上的服务器206a至206n,使得例如在云计算环境中将服务器206a至206n按逻辑分组在一起成为服务器场206。服务器场206可以包括在地理上分散并且同时被逻辑分组在一起的服务器206,或者彼此相邻地定位并且同时被逻辑分组在一起的服务器206。服务器场206内在地理上分散的服务器206a至206n在一些实施方案中可以使用WAN(广域网)、MAN(城域网)或LAN(局域网)进行通信,其中不同地理区域可以表征为:不同大陆;大陆的不同区域;不同的国家;不同的州;不同的市;不同的校园;不同的房间;或前述地理位置的任何组合。在一些实施方案中,服务器场206可以作为单个实体进行管理,而在一些实施方案中,服务器场206可以包括多个服务器场。
在一些实施方案中,服务器场可以包括执行基本上类似类型的操作系统平台(例如WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器206。在其他实施方案中,服务器场206可以包括执行第一类型的操作系统平台的第一组的一个或多个服务器,以及执行第二类型的操作系统平台的第二组的一个或多个服务器。
服务器206可以根据需要被配置为任何类型的服务器,例如文件服务器、应用程序服务器、web服务器、代理服务器、设备、网络设备、网关、应用程序网关、网关服务器、虚拟化服务器、部署服务器、安全套接层(SSL)VPN服务器、防火墙、web服务器、应用程序服务器,或被配置为主应用程序服务器、执行活动目录的服务器、或执行提供防火墙功能、应用功能或负载平衡功能的应用程序加速程序的服务器。也可以使用其他服务器类型。
一些实施方案包括第一服务器206a,其从客户端机器240接收请求、将请求转发到第二服务器206b(未示出),并且用来自第二服务器206b(未示出)的响应来响应由客户端机器240生成的请求。第一服务器206a可以获取客户端机器240可用的应用程序的枚举,以及与托管应用程序的枚举中标识的应用程序的应用程序服务器206相关联的地址信息。然后,第一服务器206a可以使用web界面来呈现对客户端的请求的响应,并且直接与客户端240通信以向客户端240提供对所标识的应用程序的访问。一个或多个客户端240和/或一个或多个服务器206可以通过网络230(例如,网络101)传输数据。
图3示出了说明性桌面虚拟化系统的高级架构。如图所示,桌面虚拟化系统可以是单服务器或多服务器系统或云系统,其包括被配置为将虚拟桌面和/或虚拟应用程序提供给一个或多个客户端访问装置240的至少一个虚拟化服务器301。如本文所使用的,桌面是指其中可以托管和/或执行一个或多个应用程序的图形环境或空间。桌面可以包括图形壳,该图形壳可以为其中可以集成本地和/或远程应用程序的操作系统的实例提供用户界面。应用程序可以包括在已经加载了操作系统(以及可选地,还有桌面)的实例之后执行的程序。操作系统的每个实例可以是物理的(例如,每个装置一个操作系统)或虚拟的(例如,在单个装置上运行的OS的许多实例)。每个应用程序可以在本地装置上执行,或在远程定位的(例如,远程的)装置上执行。
计算机装置301可以被配置为虚拟化环境(例如,单服务器、多服务器或云计算环境)中的虚拟化服务器。图3所示的虚拟化服务器301可以被部署为图2中所示的服务器206和/或其他已知的计算装置的一个或多个实施方案和/或由其实现。虚拟化服务器301中包括硬件层,该硬件层可以包括一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308以及一个或多个物理存储器316。在一些实施方案中,固件312可以存储在物理存储器316中的存储元件内,并且可以由物理处理器308中的一个或多个执行。虚拟化服务器301还可以包括操作系统314,所述操作系统314可以存储在物理存储器316中的存储器元件中并且由物理处理器308中的一个或多个执行。再进一步,管理程序302可以存储在物理存储器316中的存储器元件中并且可以由物理处理器308中的一个或多个执行。
在物理处理器308中的一个或多个上可以执行一个或多个虚拟机332A至332C(统称为332)。每个虚拟机332可以具有虚拟磁盘326A至326C和虚拟处理器328A至328C。在一些实施方案中,第一虚拟机332A可以使用虚拟处理器328A执行包括工具堆栈324的控制程序320。控制程序320可以被称为控制虚拟机Dom0、Domain 0或用于系统管理和/或控制的其他虚拟机。在一些实施方案中,一个或多个虚拟机332B至332C可以使用虚拟处理器328B至328C执行访客操作系统330A至330B。
虚拟化服务器301可以包括硬件层310,其具有与虚拟化服务器301通信的一件或多件硬件。在一些实施方案中,硬件层310可以包括一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308以及一个或多个物理存储器316。物理部件304、306、308和316可以包括例如上述部件中的任一个。物理装置306可以包括例如,网络接口卡、视频卡、键盘、鼠标、输入装置、监视器、显示装置、扬声器、光学驱动器、存储装置、通用串行总线连接、打印机、扫描仪、网络元件(例如,路由器、防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等)或者连接到虚拟化服务器301或与其通信的任何装置。硬件层310中的物理存储器316可以包括任何类型的存储器。物理存储器316可以存储数据,并且在一些实施方案中可以存储一个或多个程序或一组可执行指令。图3示出了其中固件312可以存储在虚拟化服务器301的物理存储器316内的实施方案。存储在物理存储器316中的程序或可执行指令可以由虚拟化服务器301的一个或多个处理器308执行。
虚拟服务器301还可以包括管理程序302。在一些实施方案中,管理程序302可以是由虚拟化服务器301上的处理器308执行以创建和管理任何数量的虚拟机332的程序。管理程序302可以被称为虚拟机监视器或平台虚拟化软件。在一些实施方案中,管理程序302可以是可执行指令和监测在计算机上执行的虚拟机的硬件的任意组合。管理程序302可以是类型2管理程序,其中管理程序在于虚拟化服务器301上执行的操作系统314内执行。然后,虚拟机可以在高于管理程序302的级别下执行。在一些实施方案中,类型2管理程序可以在用户的操作系统的上下文内执行,使得类型2管理程序与用户的操作系统交互。在其他实施方案中,虚拟化环境中的一个或多个虚拟化服务器301可以替代地包括类型1管理程序(未示出)。类型1管理程序可以通过直接访问硬件层310内的硬件和资源而在虚拟化服务器301上执行。也就是说,虽然类型2管理程序302通过主机操作系统314访问系统资源(如图所示),但是类型1管理程序可以在没有主机操作系统314的情况下直接访问所有系统资源。类型1管理程序可以直接在虚拟化服务器301的一个或多个物理处理器308上执行,并且可以包括存储在物理存储器316中的程序数据。
在一些实施方案中,管理程序302可以以模拟可直接访问系统资源的操作系统330或控制程序320的任何方式向在虚拟机332上执行的操作系统330或控制程序320提供虚拟资源。系统资源可以包括但不限于物理装置306、物理磁盘304、物理处理器308、物理存储器316和虚拟化服务器301的硬件层310中包括的任何其他部件。管理程序302可以用于模拟虚拟硬件、对物理硬件进行分区、将物理硬件虚拟化、和/或执行提供对计算环境的访问的虚拟机。在其他实施方案中,管理程序302可以控制针对在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分区。管理程序302可以包括由加利福尼亚州帕洛阿尔托的VMWare公司制造的那些管理程序、XENPROJECT管理程序(这是开源产品,其开发由开源XenProject.org社区监督)、由微软提供的HyperV、VirtualServer或虚拟PC管理程序、或其他管理程序。在一些实施方案中,虚拟化服务器301可以执行管理程序302,其创建可以在其上执行访客操作系统的虚拟机平台。在这些实施方案中,虚拟化服务器301可以被称为主机服务器。这种虚拟化服务器的示例是由佛罗里达州劳德代尔堡市的Citrix Systems公司提供的XENSERVER。
管理程序302可以创建在其中执行访客操作系统330的一个或多个虚拟机332B至332C(统称为332)。在一些实施方案中,管理程序302可以加载虚拟机图像以创建虚拟机332。在其他实施方案中,管理程序302可以在虚拟机332内执行访客操作系统330。在其他实施方案中,虚拟机332可以执行访客操作系统330。
除了创建虚拟机332之外,管理程序302可以控制至少一个虚拟机332的执行。在其他实施方案中,管理程序302可以向至少一个虚拟机332呈现由虚拟化服务器301提供的至少一个硬件资源(例如,硬件层310内可用的任何硬件资源)的抽象。在其他实施方案中,管理程序302可以控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可以包括确定虚拟机332是否应访问处理器308以及物理处理器能力如何被呈现给虚拟机332。
如图3所示,虚拟化服务器301可以托管或执行一个或多个虚拟机332。虚拟机332是一组可执行指令,当由处理器308执行时,一组可执行指令可以模仿物理计算机的操作,使得虚拟机332可以很像物理计算装置那样执行程序和过程。虽然图3示出了其中虚拟化服务器301托管三个虚拟机332的实施方案,但是在其他实施方案中,虚拟化服务器301可以托管任意数量的虚拟机332。在一些实施方案中,管理程序302可以向每个虚拟机332提供该虚拟机332可用的物理硬件、存储器、处理器和其他系统资源的唯一虚拟视图。在一些实施方案中,唯一虚拟视图可以基于以下项中的一者或多者:虚拟机权限、将策略引擎应用于一个或多个虚拟机标识符、访问虚拟机的用户、在虚拟机上执行的应用程序、虚拟机访问的网络、或任何其他所需标准。例如,管理程序302可以创建一个或多个不安全虚拟机332和一个或多个安全虚拟机332。可以防止不安全虚拟机332访问资源、硬件、存储器位置以及安全虚拟机332可以被允许访问的程序。在其他实施方案中,管理程序302可以向每个虚拟机332提供该虚拟机332可用的物理硬件、存储器、处理器和其他系统资源的基本相似的虚拟视图。
每个虚拟机332可以包括虚拟磁盘326A至326C(统称为326)和虚拟处理器328A至328C(统称为328)。在一些实施方案中,虚拟磁盘326是虚拟化服务器301的一个或多个物理磁盘304的虚拟化视图,或虚拟化服务器301的一个或多个物理磁盘304的一部分。物理磁盘304的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施方案中,管理程序302为每个虚拟机332提供物理磁盘304的唯一视图。因此,在这些实施方案中,当与其他虚拟磁盘326相比时,每个虚拟机332中包括的特定虚拟磁盘326可以是唯一的。
虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施方案中,物理处理器308的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施方案中,虚拟处理器328具有至少一个物理处理器308的基本上所有的相同特性。在其他实施方案中,虚拟处理器308提供物理处理器308的修改视图,使得虚拟处理器328的至少一些特性不同于对应的物理处理器308的特性。
进一步参考图4,本文描述的一些方面可以在基于云的环境中实现。图4示出了云计算环境(或云系统)400的示例。如图4所见,客户端计算机411至414可以与云管理服务器410通信以访问云系统的计算资源(例如,主机服务器403a至403b(在本文中统称为“主机服务器403”)、存储资源404a至404b(在本文中统称为“存储资源404”)和网络资源405a至405b(在本文中统称为“网络资源405”))。
管理服务器410可以在一个或多个物理服务器上实现。管理服务器410可以运行例如佛罗里达州劳德代尔堡的Citrix Systems公司的CLOUDPLATFORM、或OPENSTACK等。管理服务器410可以管理各种计算资源,包括云硬件和软件资源,例如,主机计算机403、数据存储装置404和联网装置405。云硬件和软件资源可以包括专用和/或公共部件。例如,云可以被配置为待由一个或多个特定客户或客户端计算机411至414和/或通过专用网络使用的专用云。在其他实施方案中,公共云或混合的公共-专用云可以由其他客户通过开放网络或混合网络使用。
管理服务器410可以被配置为提供用户界面,云运营商和云客户可以通过所述用户界面与云系统400交互。例如,管理服务器410可以提供应用程序设计接口(API)的集合和/或具有用户界面的一个或多个云运营商控制台应用程序(例如,基于web的应用程序或独立应用程序)以允许云运营商管理云资源、配置虚拟化层、管理客户帐户并且执行其他云管理任务。管理服务器410还可以包括API的集合和/或具有用户界面的一个或多个客户控制台应用程序,这些用户界面被配置为经由客户端计算机411至414从终端用户接收云计算请求,例如,用于创建、修改或销毁云内的虚拟机的请求。客户端计算机411至414可以经由互联网或某种其他通信网络连接到管理服务器410,并且可以请求对由管理服务器410管理的计算资源中的一个或多个的访问。响应于客户端请求,管理服务器410可以包括资源管理器,其被配置为基于客户端请求在云系统的硬件层中选择和供应物理资源。例如,云系统的管理服务器410和额外部件可以被配置为通过网络(例如,互联网)为客户端计算机411至414处的客户供应、创建和管理虚拟机及其操作环境(例如,管理程序、存储资源、由网络元件提供的服务等),从而为客户提供计算资源、数据存储服务、联网能力以及计算机平台和应用程序支持。云系统还可以被配置为提供各种特定服务,包括安全系统、开发环境、用户界面等。
某些客户端411至414可能是相关的,例如,代表相同终端用户创建虚拟机的不同客户端计算机,或者隶属于相同公司或组织的不同用户。在其他示例中,某些客户端411至414可能是不相关的,诸如隶属于不同公司或组织的用户。对于不相关的客户端,关于任何一个用户的虚拟机或存储装置的信息可能对其他用户隐藏。
现在参考云计算环境的物理硬件层,可用性区域401至402(或区域)可以指物理计算资源的并置集合。区域可以在地理上与整个计算资源云中的其他区域分开。例如,区域401可以是位于加利福尼亚的第一云数据中心,并且区域402可以是位于佛罗里达的第二云数据中心。管理服务器410可以位于可用性区域中的一个处或位于单独的位置处。每个区域可以包括内部网络,该内部网络通过网关与该区域外部的装置(诸如管理服务器410)介接。云的最终用户(例如,客户端411至414)可能会或可能不会意识到区域之间的区别。例如,最终用户可以请求创建具有指定数量的存储器、处理能力和网络能力的虚拟机。管理服务器410可以响应用户的请求,并且可以分配资源来创建虚拟机,而无需用户知晓虚拟机是使用来自区域401还是区域402的资源创建的。在其他示例中,云系统可以允许终端用户请求在特定区域中或区域内的特定资源403至405上分配虚拟机(或其他云资源)。
在该示例中,每个区域401至402可以包括各种物理硬件部件(或计算资源)403至405(例如,物理托管资源(或处理资源)、物理网络资源、物理存储资源、交换机和可以用于向客户提供云计算服务的额外硬件资源)的布置。云区域401至402中的物理托管资源可以包括一个或多个计算机服务器403,诸如上述的虚拟化服务器301,其可以被配置为创建和托管虚拟机实例。云区域401或402中的物理网络资源可以包括一个或多个网络元件405(例如,网络服务提供商),其包括被配置为向云客户提供网络服务的硬件和/或软件,诸如防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等。云区域401至402中的存储资源可以包括存储磁盘(例如,固态驱动器(SSD)、磁硬盘等)和其他存储装置。
图4中示出的示例云计算环境还可以包括虚拟化层(例如,如图1至图3所示),该虚拟化层具有被配置为创建和管理虚拟机并使用云中的物理资源向客户提供其他服务的额外硬件和/或软件资源。虚拟化层可以包括管理程序(如上文在图3中所述)以及提供网络虚拟化、存储虚拟化等的其他部件。虚拟化层可以作为与物理资源层分离的层,或者可以与物理资源层共享相同的硬件和/或软件资源中的一些或全部。例如,虚拟化层可以包括安装在具有物理计算资源的虚拟化服务器403中的每一个中的管理程序。可以替代地使用已知的云系统,例如,WINDOWS AZURE(华盛顿州雷德蒙德市的微软公司)、AMAZON EC2(华盛顿州西雅图市的亚马逊公司)、IBM BLUE CLOUD(纽约州阿蒙克市的IBM公司)等。
企业移动管理架构
图5表示在“自带装置”(BYOD)环境中使用的企业移动技术架构500。架构使得移动装置502的用户既能够访问来自移动装置502的企业或个人资源又能够将移动装置502用于个人用途。用户可以使用由用户购买的移动装置502或由企业提供给用户的移动装置502来访问此类企业资源504或企业服务508。用户可以将移动装置502用于仅商业用途或者用于商业和个人用途。移动装置502可以运行iOS操作系统、Android操作系统等。企业可以选择实现策略来管理移动装置502。策略可以以一种方式通过防火墙或网关实现,使得移动装置502可以被标识、保护或进行安全检验,并且被提供对企业资源(例如,504和508)的选择性或完全访问权。策略可以是移动装置管理策略、移动应用程序管理策略、移动数据管理策略或者移动装置、应用程序和数据管理策略的某种组合。通过应用移动装置管理策略进行管理的移动装置502可以被称为登记的装置。
在一些实施方案中,移动装置502的操作系统可以被分成受管理分区510和不受管理分区512。受管理分区510可以使策略应用于自身以对在受管理分区510上运行的应用程序和存储在受管理分区510中的数据进行保护。在受管理分区510上运行的应用程序可以是安全应用程序。在其他实施方案中,所有应用程序可以根据与该应用程序分开接收的一个或多个策略文件的集合来执行,并且一个或多个策略文件的集合限定一个或多个安全参数、特征、资源限制和/或在移动装置502上执行应用程序时由移动装置管理系统强制实施的其他访问控制。通过根据其各自的策略文件进行操作,可以允许或限制每个应用程序与一个或多个其他应用程序和/或资源的通信,从而创建虚拟分区。因此,如本文所使用的,分区可以指代存储器的物理分区部分(物理分区)、存储器的逻辑分区部分(逻辑分区)和/或由于如本文描述的跨多个应用程序强制实施一个或多个策略和/或策略文件而创建的虚拟分区(虚拟分区)。换句话说,通过对受管理应用程序强制实施策略,那些应用程序可以限于仅能够与其他受管理应用程序和受信企业资源进行通信,从而创建不受管理的应用程序和装置不可访问的虚拟分区。
安全应用程序可以是电子邮件应用程序、web浏览应用程序、软件即服务(SaaS)访问应用程序、Windows Application访问应用程序等。安全应用程序可以是安全本地应用程序514、由安全应用程序启动器518执行的安全远程应用程序522、由安全应用程序启动器518执行的虚拟化应用程序526等。安全本地应用程序514可以由安全应用程序包装器520包装。安全应用程序包装器520可以包括当安全本地应用程序514在移动装置502上执行时在移动装置502上执行的集成策略。安全应用程序包装器520可以包括元数据,该元数据将在移动装置502上运行的安全本地应用程序514指向在企业处托管的资源(例如,504和508),安全本地应用程序514可能需要该资源以完成在执行安全本地应用程序514时所请求的任务。由安全应用程序启动器518执行的安全远程应用程序522可以在安全应用程序启动器518内执行。由安全应用程序启动器518执行的虚拟化应用程序526可以利用移动装置502上、企业资源504处等的资源。由安全应用程序启动器518所执行的虚拟化应用程序526在移动装置502上使用的资源可以包括用户交互资源、处理资源等。用户交互资源可以用于收集和传输键盘输入、鼠标输入、相机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可以用于呈现用户界面,处理从企业资源504接收的数据等。由安全应用程序启动器518所执行的虚拟化应用程序526在企业资源504处使用的资源可以包括用户界面生成资源、处理资源等。用户界面生成资源可以用于组装用户界面、修改用户界面、刷新用户界面等。处理资源可以用于创建信息、读取信息、更新信息、删除信息等。例如,虚拟化应用程序526可以记录与图形用户界面(GUI)相关联的用户交互并且将其传达到服务器应用程序,其中服务器应用程序将使用用户交互数据作为对在服务器上操作的应用程序的输入。在这种布置中,企业可以选择维持服务器侧上的应用程序以及与应用程序相关联的数据、文件等。虽然企业可以选择通过对一些应用程序进行保护以部署在移动装置502上而根据本文的原理“移动”所述一些应用程序,但是此布置也可以被选择用于某些应用程序。例如,虽然一些应用程序可以被保护以在移动装置502上使用,但是其他应用程序可能未准备好或适于部署在移动装置502上,因此企业可以选择通过虚拟化技术向移动用户提供对未准备好应用程序的访问权。作为另一个示例,企业可以具有含有大而复杂的数据集的大的复杂应用程序(例如,材料资源计划应用程序),其中为移动装置502定制应用程序将非常困难或换句话说是不可取的,因此企业可以选择通过虚拟化技术提供对应用程序的访问权。作为又一个示例,企业可以具有维持高度安全数据(例如,人类资源数据、客户数据、工程数据)的应用程序,所述应用程序可以被企业视为对于甚至是安全移动环境来说过于敏感,因此企业可以选择使用虚拟化技术来允许对此类应用程序和数据的移动访问。企业可以选择在移动装置502上提供完全安全和完全功能的应用程序两者以及虚拟化应用程序526,以允许访问被认为在服务器侧更正确地操作的应用程序。在一个实施方案中,虚拟化应用程序526可以将一些数据、文件等存储在安全存储位置中的一个中的移动装置502上。企业例如可以选择允许某些信息而不准许其他信息被存储在移动装置502上。
结合如本文描述的虚拟化应用程序526,移动装置502可以具有被设计来呈现GUI以及然后记录与GUI的用户交互的虚拟化应用程序526。虚拟化应用程序526可以将用户交互传达到服务器侧以由服务器侧应用程序用作与应用程序的用户交互。作为响应,服务器侧上的应用程序可以将新的GUI传输回移动装置502。例如,新的GUI可以是静态页面、动态页面、动画等,从而提供对远程资源的访问。
安全应用程序514可以访问存储在移动装置502的受管理分区510中的安全数据容器528中的数据。在安全数据容器528中保护的数据可以由安全本地应用程序514、由安全应用程序启动器518执行的安全远程应用程序522、由安全应用程序启动器518执行的虚拟化应用程序526等访问。存储在安全数据容器528中的数据可以包括文件、数据库等。存储在安全数据容器528中的数据可以包括受限于在安全应用程序532当中共享的具体安全应用程序530等的数据。受限于安全应用程序的数据可以包括一般安全数据534和高度安全数据538。一般安全数据可以使用强的加密形式(诸如,高级加密标准(AES)128位加密等),而高度安全数据538可以使用非常强的加密形式(诸如,AES 256位加密)。存储在安全数据容器528中的数据可以在接收到来自装置管理器524的命令时从移动装置502删除。安全应用程序(例如,514、522和526)可以具有双模式选项540。双模式选项540可以向用户呈现以不安全或不受管理模式操作安全应用程序的选项。在不安全或不受管理模式中,安全应用程序可以访问存储在移动装置502的不受管理分区512上的不安全数据容器542中的数据。存储在不安全的数据容器中的数据可以是个人数据544。存储在不安全数据容器542中的数据也可以由在移动装置502的不受管理分区512上运行的不安全应用程序546访问。当从移动装置502删除存储在安全数据容器528中的数据时,存储在不安全数据容器542中的数据可以保持在移动装置502上。企业可能想要从移动装置502删除由企业拥有、许可或控制的选定或所有数据、文件和/或应用程序(企业数据),同时留下或以其他方式保留由用户拥有、许可或控制的个人数据、文件和/或应用程序(个人数据)。该操作可以被称为选择性擦除。在企业和个人数据根据本文所描的方面进行布置的情况下,企业可以执行选择性擦除。
移动装置502可以连接到企业处的企业资源504和企业服务508,连接到公共互联网548等。移动装置502可以通过虚拟专用网络连接而连接到企业资源504和企业服务508。虚拟专用网络连接(也称为微VPN或应用程序专用VPN)可以专门用于特定应用程序(如由微VPN 550所示)、特定装置、移动装置上的特定安全区域(如由O/S VPN 552所示)等。例如,移动装置502的安全区域中的包装的应用程序中的每一个可以通过应用程序专用VPN来访问企业资源,使得将基于与应用程序相关联的属性来授权对VPN的访问(可能与用户或装置属性信息相结合)。虚拟专用网络连接可以承载Microsoft Exchange流量、Microsoft ActiveDirectory流量、超文本传送协议(HTTP)流量、超文本传送协议安全(HTTPS)流量、应用程序管理流量等。虚拟专用网络连接可以支持和启用单点登录认证进程554。单点登录进程可以允许用户提供单组认证凭证,其随后由认证服务558进行验证。认证服务558接着可以授权用户访问多个企业资源504,而无需用户将认证凭证提供给每个个体企业资源504。
虚拟专用网络连接可以由访问网关560建立和管理。访问网关560可以包括管理、加速和提高企业资源504到移动装置502的输送的性能增强特征。访问网关560还可以将流量从移动装置502重新路由到公共互联网548,从而使得移动装置502能够访问在公共互联网548上运行的公开可用且不安全的应用程序。移动装置502可以经由传送网络562连接到访问网关560。传送网络562可以使用一个或多个传送协议并且可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
企业资源504可以包括电子邮件服务器、文件共享服务器、SaaS应用程序、Web应用程序服务器、Windows应用程序服务器等。电子邮件服务器可以包括Exchange服务器、LotusNotes服务器等。文件共享服务器可以包括ShareFile服务器等。SaaS应用程序可能包括Salesforce等。Windows应用程序服务器可以包括构建来提供意图在本地Windows操作系统上运行的应用程序的任何应用程序服务器等。企业资源504可以是基于前提的资源、基于云的资源等。企业资源504可以由移动装置502直接或通过访问网关560进行访问。企业资源504可以由移动装置502经由传送网络562进行访问。
企业服务508可以包括认证服务558、威胁检测服务564、装置管理器服务524、文件共享服务568、策略管理器服务570、社交整合服务572、应用程序控制器服务574等。认证服务558可以包括用户认证服务、装置认证服务、应用程序认证服务、数据认证服务等。认证服务558可以使用证书。证书可以由企业资源504等存储在移动装置502上。存储在移动装置502上的证书可以存储在移动装置502上的加密位置中,证书可以临时存储在移动装置502上以在认证时使用等。威胁检测服务564可以包括入侵检测服务、未授权访问尝试检测服务等。未授权访问尝试检测服务可以包括访问装置、应用程序、数据等的未授权尝试。装置管理服务524可以包括配置、供给、安全、支持、监视、报告和解除服务。文件共享服务568可以包括文件管理服务、文件存储服务、文件协作服务等。策略管理器服务570可以包括装置策略管理器服务、应用程序策略管理器服务、数据策略管理器服务等。社交整合服务572可以包括联系人整合服务、协作服务、与诸如Facebook、Twitter和LinkedIn的社交网络的整合等。应用程序控制器服务574可以包括管理服务、供给服务、部署服务、分配服务、撤销服务、包装服务等。
企业移动技术架构500可以包括应用程序商店578。应用程序商店578可以包括未包装应用程序580、预包装应用程序582等。应用程序可以从应用程序控制器574填充在应用程序商店578中。应用程序商店578可以由移动装置502通过访问网关560、通过公共互联网548等进行访问。应用程序商店578可以设置有直观和易用的用户界面。
软件开发工具包584可以向用户提供通过如此说明书中先前所描述的包装应用程序而对由用户选择的应用程序进行保护的能力。接着可以通过使用应用程序控制器574将已经使用软件开发工具包584包装的应用程序填充在应用程序商店578中而使所述应用程序可用于移动装置502。
企业移动技术架构500可以包括管理和分析能力588。管理和分析能力588可以提供与使用资源的方式、使用资源的频率等相关的信息。资源可以包括装置、应用程序、数据等。使用资源的方式可以包括哪些装置下载哪些应用程序、哪些应用程序访问哪些数据等。使用资源的频率可以包括应用程序已经被下载的频率、具体数据集被应用程序访问的次数等。
图6是另一说明性企业移动管理系统600。出于简洁起见已经省略了以上参考图5所描述的移动管理系统500的部件中的一些。图6中所描绘的系统600的架构在许多方面类似于以上参考图5所描述的系统500的架构,并且可以包括以上未提及的额外的特征。
在这种情况下,左手侧表示向客户端代理604登记的移动装置602,所述客户端代理604与网关服务器606(其包括访问网关和应用程序控制器功能)交互以访问各种企业资源608和服务609,诸如Exchange、Sharepoint、公钥基础设施(PKI)资源、Kerberos资源、证书发行服务,如以上右手侧所示。虽然未明确示出,但移动装置602还可以与企业应用程序商店(StoreFront)交互以用于选择和下载应用程序。
客户端代理604充当用于在企业数据中托管的使用高清晰度用户体验(HDX)/ICA显示远程协议进行访问的Windows app/桌面的UI(用户界面)媒介。客户端代理604还支持本地应用程序(诸如本地iOS或Android应用程序)在移动装置602上的安装和管理。例如,上图所示的受管理应用程序610(邮件、浏览器、包装的应用程序)均是在移动装置602上本地执行的本地应用程序。客户端代理604和此架构的应用程序管理框架用于提供策略驱动的管理能力和特征,诸如到企业资源/服务608的连接性和SSO(单点登录)。客户端代理604处理对企业,通常为用至其他网关服务器部件的SSO进行的对访问网关(AG)606的主要用户认证。客户端代理604从网关服务器606获得策略以控制移动装置602上受管理应用程序610的行为。
本地应用程序610与客户端代理604之间的安全进程间通信(IPC)链路612表示管理信道,所述管理信道可以允许客户端代理供应待由“包装”每个应用程序的应用程序管理框架614强制实施的策略。IPC信道612还可以允许客户端代理604供应实现到企业资源608的连接性和SSO的凭证和认证信息。最后,IPC信道612可以允许应用程序管理框架614调用由客户端代理604实现的用户界面功能,诸如在线和离线认证。
客户端代理604与网关服务器606之间的通信实质上是管理信道从包装每个本地受管理应用程序610的应用程序管理框架614的扩展。应用程序管理框架614可以从客户端代理604请求策略信息,所述客户端代理604继而可以从网关服务器606请求策略信息。应用程序管理框架614可以请求认证,并且客户端代理604可以登入网关服务器606的网关服务部分(也称为NETSCALER访问网关)。客户端代理604还可以呼叫网关服务器606上的支持服务,所述支持服务可以产生输入材料以导出本地数据仓库616的加密密钥,或者可以提供可以实现对PKI保护的资源的直接认证的客户端证书,如以下更全面地解释。
更详细地,应用程序管理框架614“包装”每个受管理的应用程序610。这可以经由明确的构建步骤或经由构建后的处理步骤来并入。在首次启动应用程序610时,应用程序管理框架614可以与客户端代理604“配对”,以初始化安全IPC信道612并且获取用于该应用程序的策略。应用程序管理框架614可以强制实施本地应用的策略的相关部分,诸如客户端代理登录依赖项和遏制策略中的一些,遏制策略限制了可以如何使用本地OS服务,或者其可以如何与受管理的应用程序610交互。
应用程序管理框架614可以使用由客户端代理604在安全IPC信道612上提供的用户服务以有助于认证和内部网络访问。用于专用和共享数据仓库616(容器)的密钥管理还可以由受管理应用程序610与客户端代理604之间的适当交互进行管理。仓库616可以仅在在线认证之后可用,或可以在策略允许的情况下在离线认证之后变得可用。首次使用仓库616可能需要在线认证,并且离线访问可能至多局限于再次需要在线认证之前的策略刷新期。
对内部资源的网络访问可以直接通过访问网关606从各个受管理的应用程序610发生。应用程序管理框架614可以负责代表每个受管理应用程序610策划网络访问。客户端代理604可以通过提供在在线认证之后获得的合适时间的有限二级凭证来促进这些网络连接。可以使用多个网络连接模式,诸如反向web代理连接和端对端VPN式隧道618。
邮件和浏览器管理的应用程序610具有特殊状态并且可以利用任意包装应用程序通常可能不可用的设施。例如,邮件应用程序610可以使用特殊后台网络访问机制,所述特殊后台网络访问机制允许所述邮件应用程序610在延长的时间段内访问交换服务器608而无需完全AG登录。浏览器应用程序610可以使用多个专用数据仓库616来隔离不同种类的数据。
此架构可以支持各种其他安全特征的并入。例如,网关服务器606(包括其网关服务)在一些情况下可能无需验证活动目录(AD)密码。企业可以自行决定在一些情形下AD密码是否可以用作一些用户的认证因素。在用户在线或离线(即,连接到或未连接到网络)的情况下,可以使用不同认证方法。
阶升认证是一种特征,其中网关服务器606可以标识被允许访问需要强认证的高度机密数据的受管理本地应用程序610,并且确保仅在执行适当认证之后才准许访问这些应用程序,即使这意味着在先前较弱级别的登入之后用户需要重新认证也同样如此。
此方案的另一安全特征是移动装置602上的数据仓库616(容器)的加密。仓库616可以进行加密,使得所有装置上数据(包括文件、数据库和配置)受到保护。对于在线仓库,密钥可以存储在服务器(网关服务器606)上,并且对于离线仓库,密钥的本地副本可以通过用户密码或生物特征验证进行保护。如果或当数据本地存储在安全容器616中的移动装置602上时,可能优选的是利用AES 256加密算法的最小值。
还可以实现其他安全容器特征。例如,可以包括记录特征,其中在受管理应用程序610内部发生的安全事件可以被记录并且报告给后端。诸如如果或当受管理应用程序610检测到篡改时,可以支持数据擦除,可以用随机数据覆写相关联的加密密钥,从而不会在文件系统上留下用户数据被破坏的提示。屏幕截图保护可以是另一特征,其中应用程序可以防止任何数据存储在屏幕截图中。例如,密钥窗口的隐藏属性可以被设置为“是”。这可以使当前在屏幕上显示的任何内容被隐藏,从而产生任何内容通常将驻留的空白屏幕截图。
本地数据传送可以通过诸如防止任何数据在本地传送出应用程序容器(例如,通过将信息复制或发送给外部应用程序)来防止。键盘高速缓存特征可以操作来禁用敏感文本字段的自动纠正功能。SSL证书验证可以是可操作地,使得应用程序专门验证服务器SSL证书,而不是将所述服务器SSL证书存储在密钥链中。可以使用加密密钥生成特征,使得使用由用户供应的密码短语或生物特征数据来生成用于对移动装置602上的数据进行加密的密钥(如果需要离线访问的话)。其可以是XORed,其中在无需离线访问的情况下另一密钥随机生成并且存储在服务器侧上。密钥导出函数可以进行操作,使得从用户密码生成的密钥使用KDF(密钥导出函数,尤其是基于密码的密钥导出函数2(PBKDF2))而不是创建所述KDF的加密哈希值。后者使密钥易受暴力攻击或字典式攻击。
此外,在加密方法中可以使用一个或多个初始化向量。初始化向量将使相同加密数据的多个副本产出不同密码文本输出,从而防止重放攻击和密码分析攻击两者。这也将防止攻击者即使使用窃取的加密密钥也无法解密任何数据。此外,可以使用认证后解密,其中应用程序数据仅在用户已经在应用程序内进行认证之后被解密。另一特征可能涉及存储器中的敏感数据,所述敏感数据可以仅在被需要时才保持在存储器(而不在磁盘)中。例如,可以在登入之后从存储器擦除登入凭证,并且不存储加密密钥和目标C实例变量内的其他数据,因为它们容易被引用。而是可以为这些手动分配存储器。
可以实现不活动超时,其中在策略定义的不活动时间段之后,终止用户会话。
可以以其他方式防止来自应用程序管理框架614的数据泄露。例如,如果或当受管理应用程序610被置于后台中时,可以在预定(可配置)时间段之后清除存储器。当在后台运行时,可以对应用程序最后显示的屏幕进行快照,以加快前台进程。屏幕截图可以包含机密数据并且因此应进行清除。
另一安全特征可能涉及使用OTP(一次性密码)620而不使用AD(活动目录)622密码来访问一个或多个应用程序。在一些情况下,一些用户并不知晓(或不被准许知晓)他们的AD密码,因此这些用户可以使用OTP 620,诸如通过使用硬件OTP系统,像SecurID(OTP也可以由不同供应商,诸如Entrust或Gemalto提供)进行认证。在一些情况下,在用户用用户ID进行认证之后,可以用OTP 620向用户发送文本。在一些情况下,这可以仅针对在线使用来实现,其中提示为单个字段。
可以实现离线密码以用于经由企业策略准许离线使用的那些受管理应用程序610的离线认证。例如,企业可能想要以此方式访问StoreFront。在此情况下,客户端代理604可能需要用户设置定制离线密码并且不使用AD密码。网关服务器606可以关于最小长度、字符种类组合和密码期限来提供控制和强制实施密码标准的策略,诸如标准Windows服务器密码复杂性要求所描述的,但是可以修改这些要求。
另一特征可涉及将某些应用程序610的客户端侧证书实施为二级凭证(目的是经由应用程序管理框架微VPN特征访问PKI保护的web资源)。例如,受管理应用程序610可以利用这种证书。在此情况下,可以支持使用ActiveSync协议进行的基于证书的认证,其中来自客户端代理604的证书可以由网关服务器606检索并且在密钥链中使用。每个受管理应用程序610可以具有由在网关服务器606中定义的标签标识的一个相关联的客户端证书。
网关服务器606可以与企业专用web服务交互以支持客户端证书的发行,从而允许相关受管理应用程序对内部PKI保护的资源进行认证。
客户端代理604和应用程序管理框架614可以被增强以支持获得和使用客户端证书来对内部PKI保护的网络资源进行认证。可以支持多于一个证书,诸如以匹配各种等级的安全和/或分离需求。证书可以由邮件和浏览器管理的应用程序610使用,并且最终由任意包装的应用程序610使用(假设那些应用程序使用web服务式通信模式,其中应用程序管理框架调解HTTPS请求是合理的)。
iOS上的应用程序管理客户端证书支持可能依赖于针对每个使用期将公钥加密标准(PKCS)12BLOB(二进制大对象)导入每个受管理应用程序610中的iOS密钥链中。应用程序管理框架客户端证书支持可以将HTTPS实现与私有存储器内密钥存储一起使用。客户端证书可能不存在于iOS密钥链中,并且可能无法持久保存,除非可能在受到严格保护的“仅在线”的数据值中。
还可以实现相互SSL或TLS以通过要求向企业认证移动装置602和向移动装置602认证企业而提供额外的安全性。还可以实现用于向网关服务器606认证的虚拟智能卡。
有限的和完全的Kerberos支持两者可以是额外的特征。完全支持特征涉及以下能力:使用AD密码或受信客户端证书向活动目录(AD)622进行完全Kerberos登入,并且获得Kerberos服务票据以对HTTP协商认证挑战作出响应。有限支持特征涉及Citrix访问网关企业版(AGEE)中的约束委派,其中AGEE支持调用Kerberos协议转换,使得其可以响应于HTTP协商认证挑战而获得和使用Kerberos服务票据(服从于约束委派)。此机制在反向web代理(亦称公司虚拟专用网络(CVPN))模式下并且当HTTP(但不是HTTPS)连接在VPN和微VPN模式下被代理时起作用。
另一特征可能涉及应用程序容器锁定和擦除,其可能在检测到越狱或获得超级用户时自动发生,以及作为来自管理控制台的推送命令发生,并且可以包括远程擦除功能(甚至当受管理的应用程序610非运行时)。
可以支持企业应用程序商店的多站点架构或配置以及应用程序控制器,其允许在发生故障的情况下从几个不同位置中的一个为用户提供服务。
在一些情况下,可以允许受管理应用程序610经由API(例如,OpenSSL)访问证书和专用密钥。可以允许企业的受信管理应用程序610用应用程序的客户端证书和专用密钥来执行具体公用密钥操作。诸如如果或当应用程序表现得像浏览器并且无需证书访问时,如果或当应用程序读取“我是谁”的证书时,如果或当应用程序使用证书来构建安全会话令牌时,以及如果或当应用程序将专用密钥用于重要数据的数字签署(例如,交易日志)或用于临时数据加密时,可以相应地标识和处理各种使用案例。
使用到网关的连接或绕开网关的连接来访问资源
如上所述,本文描述的方面涉及在远程访问或基于云的网络环境中连接到资源和访问资源。本文描述的额外方面涉及一种客户端装置,其基于网络环境的某些状况使用至网关装置的连接或绕开网关的连接来访问资源。结合这些方面以及其他方面,图7描绘了用于在远程访问或基于云的网络环境中连接到资源的示例框图。为了简单起见,贯穿本公开讨论的示例将把由远程访问或基于云的网络环境提供的服务称为基于云的服务。这些示例也可以用于远程访问服务。对于许多示例,基于云的服务和远程访问服务可以互换使用。
在图7中,示出了简化的示例网络环境700。示例网络环境700可以使一个或多个客户端装置能够提供和使用一个或多个基于云的服务或其他类型的远程访问服务。示例网络环境700包括位于各种不同网络位置的计算装置和计算平台。如图所示,示例网络环境包括四个示例网络位置:外部网络位置705、第一企业网络位置720、第二企业网络位置745和远程网络位置760。四个网络位置中的每一个可以经由广域网(例如,互联网)彼此通信和/或可以位于地理上不同的位置。作为一个示例,外部网络位置705可以是管理或以其他方式控制基于云的服务的提供商的设施并且可以位于弗吉尼亚州的阿灵顿;第一企业网络位置720可以是使用基于云的服务的企业的第一设施并且可以位于马萨诸塞州的波士顿;第二企业网络位置745可以是企业的第二设施并且可以位于宾夕法尼亚州的费城;以及远程网络位置760可以是企业雇员的住所并且可以位于马萨诸塞州伍斯特。
由网络环境700提供的基于云的服务中的一个或多个可以是对企业网络位置的资源(例如,第一资源725、第二资源730和第三资源750)的访问。资源可以启动和执行各种应用以供客户端装置使用。客户端装置对资源正在执行的应用程序的使用可以被称为应用程序会话。可以启动和使用的应用程序的一个示例是远程桌面应用程序。在整个本公开中提供了可以启动和使用的应用程序类型的其他示例,包括例如图5的企业资源504和图6的企业资源608。实际上,资源725、730和750可以代表结合图1至图6描述的不同的企业资源。
另外,资源725、730和750中的每一个可以包括可单独寻址的部件。例如,资源725、730和750中的每一个包括连接器(分别为727、732和752)和主机(分别为729、734和754)。连接器和主机中的每一个可以具有其自己的网络地址,并且可能能够向网络环境的其他部件(包括,例如,网关718、代理714、配置712和客户端装置728)发送和接收通信。连接器中的每一个可以被配置为向配置712注册其各自的资源并且与代理714通信以为启动应用程序做准备。另外,连接器中的每一个可以被配置为响应从客户端装置(例如,客户端装置728或客户端装置765)接收的对标识的请求。连接器有时被称为边缘服务器。
主机中的每一个可以被配置为使得能够连接到由资源正在执行的应用程序。主机中的每一个可以与准备启动应用程序相结合地与其资源的连接器通信。此外,作为由客户端装置正在执行的应用程序会话的一部分,主机中的每一个可以被配置为与网关718或与客户端装置(例如,装置728)通信。主机可以被配置为向应用程序会话提供来自资源的应用程序数据。作为一个示例,如果资源725正在为客户端装置765执行桌面应用程序,主机729则可以将指示对桌面应用程序的用户界面的更新的数据传输至网关718。在接收到时,网关718可以将数据转发到客户端装置765。客户端装置765可以基于数据来重新生成显示以将更新并入用户界面。主机的一个示例可以是虚拟交付代理(VDA),诸如Citrix Systems开发的HDX服务器。
另外,每个资源725、730和750可以被组织成资源组或以其他方式与资源组相关联。每个资源组可以被分配给其自己的网络地址(例如,互联网协议(IP)地址或多播地址)及其自己的标识符(例如,字母数字字符串或在资源组中唯一的某种其他代码)。资源组可以被组织为位于相同网络位置的一个或多个资源的集合。然而,即使其他资源位于相同的网络位置,资源也可以被组织到其自己的资源组中。例如,资源725、730和750中的每一个可以与其自己的资源组相关联。实际上,为了讨论和本公开的示例的简洁性,贯穿本公开讨论的示例将关于被组织成其自己的资源组或以其他方式与其自己的资源组相关联的每个资源725、730和750(例如,第一资源725与第一资源组相关联;第二资源730与第二资源组相关联;以及第三资源750与第三资源组相关联)来进行讨论。用于资源组的服务可以被配置为连接器的一部分或为与资源的连接器/主机分开的独立实体。为了讨论和本公开的示例的简洁性,用于资源组的服务被配置为连接器的一部分。
作为可以组织资源组的方式的替代示例,资源725和730可以与第一网络位置相关联,并且资源750可以与第二资源组相关联。作为可以组织资源组的方式的另一替代示例,资源组可以被组织为包括两个资源(例如,资源725和730),但是也可以仅包括单个连接器。换句话说,代替被配置用于资源725和730的连接器727和732,那两个连接器中的只有一个可以被配置用于资源组。
外部网络位置705的计算平台710可以管理和/或控制对资源725、730和750的访问。如经由连接721、722和723所表示的,计算平台710也许能够与资源725、730和750中的每一个进行通信。可以经由广域网路由在计算平台710与资源725、730和750之间的通信。用于管理和/或控制对资源(例如资源725、730和750)的访问的服务可以包括配置712、代理714、应用程序商店716和网关718。计算平台710和/或计算平台710的服务可以代表结合图1至图6描述的系统架构的不同部分。例如,应用程序商店716可以是图5的应用程序商店578;网关718可以是图5的网关560;计算平台710可以是图6的网关606;或计算平台710的服务可以是图5的企业服务508的一部分。
作为服务712至718的简要概述,配置712可以被配置成为基于云的服务注册资源725、730和750,并且维护哪些资源当前处于活动状态或以其他方式被注册为基于云的服务的一部分的信息。代理714可以被配置为选择资源以启动和执行供客户端装置使用的应用程序。应用程序商店716可以被配置为向客户端装置提供与基于云的服务相关联的数据,包括例如,用于应用程序会话的配置数据。网关718可以被配置为在客户端装置和资源之间转发与应用程序会话相关联的数据。
示例网络环境700包括可以使用基于云的服务的两个示例客户端装置。如图所示,客户端装置728位于第一企业位置720,并且客户端装置765位于远程网络位置760。客户端装置例如可以是移动装置,其能够移入/移出网络环境700中描绘的各个网络位置。作为一个示例,客户端装置728可以从第一企业网络位置720移动并且到达远程网络位置760或第二企业网络位置745。客户端装置728和765可以代表结合图1至图6描述的不同客户端,包括例如,图1的装置107或109;图2的装置240;源于图5的移动装置502;或移动装置602。
客户端装置728和765中的每一个也许能够通信或连接到计算平台710或计算平台710的具体服务。实际上,如图7所示,客户端装置728和765中的每一个也许能够通信或连接到应用程序商店716和网关718。此外,经由网关718,客户端装置728和765中的每一个也许能够与资源725、730和750进行通信。实际上并且作为一个示例,客户端装置728可以经由网关718与第三资源750进行通信。为了与计算平台710和/或资源725、730和750进行通信,客户端装置可能正在执行一个或多个应用程序,其使得能够访问基于云的服务(例如,CitrixSystems的Citrix接收器和Citrix Systems的HDX引擎)。
如上所述,网关718可能在资源与客户端装置之间的通信中引入不期望的延迟,并且可能充当系统中的额外故障点。作为一个示例,第一资源725和客户端装置728被描绘为处于相同的网络位置,而网关718处于不同的网络位置。经由网关718从客户端装置728到资源725的通信从第一企业网络位置720行进到外部网络位置705,并且随后返回至第一企业网络位置720。这样的行程可能会引入延迟。可以通过绕开网关718来减少该延迟。网关718可以被绕开的一个示例是当应用程序会话涉及位于相同网络位置或以其他方式能够使用本地网络彼此通信的客户端装置和资源时的情况。此外,通过绕开网关718,如果网关发生了故障或以其他方式中断了正常方式的操作,在资源与客户端装置之间的通信也可以不中断地继续进行。例如,网关718的本地网络可能拥塞,并且这可能导致发送到网关718的一些通信丢失。如果客户端装置728绕开网关718(例如,通过经由第一企业网络位置720的本地网络直接通信至资源725),客户端装置728则可以不受影响网关718的拥塞影响。
示例网络环境700示出了客户端装置728、第一资源725和第二资源730全部位于第一企业网络位置。因为客户端装置728和第一资源725位于相同的网络位置,因此其也许能够使用第一企业网络位置720的本地网络,诸如内联网彼此通信。连接736至742示出了客户端装置728与第一资源725和第二资源730通信的能力。因此,使用第一企业网络位置720的本地网络,客户端装置728也许能够与在第一企业网络位置720处的资源725和730的每个连接器和每个主机进行通信。如以下将更详细描述的,这些通信可以允许客户端装置728使用绕开网关718的连接来与资源725或730执行应用程序会话。绕开网关718的一种方法是使客户端装置728通过使用第一企业网络位置720的本地网络执行应用程序会话。使用第一企业网络位置720的本地网络可以允许客户端装置728直接与主机729或734通信(分别由连接740和742表示)。
所描绘的布置的额外细节和变型将在下面结合剩余的附图,并且特别是结合图8A至图8D、图9A至图9C,图10A至图10D和图11进行讨论。此外,示例网络环境700仅描绘了网络位置的一种示例布置。许多其他变型也是可能的。例如,代替位于外部网络位置705,计算平台710可以位于不同的网络位置,诸如第二企业网络位置745。作为另一示例,代替仅包括一个网关718,系统可以包括多个网关(例如,一个在第一企业网络位置720处并且第二个在第二企业网络位置745处)。为了选择与哪个网关进行通信,客户端装置可以首先对每个网关进行ping操作并且然后选择至其的延迟较短的网关。作为又一个示例,可能存在额外的网络位置,包括另外的外部网络位置、企业网络位置和远程网络位置。
图8A至图8D示出了示例流程,其中客户端装置确定和/或更新所标识的资源组的指示。为了简洁起见,基于图7的网络环境700示出了图8A至图8D的示例流程。特别地,图8A至图8D的示例流程包括客户端装置728、应用程序商店716、配置712、代理714、第一资源725、第二资源730、第三资源750以及用于这三个资源中的每一个的连接器(分别为云连接器727、732和752)。
在图8A中,流程开始于三个资源向云配置712注册。因此,在801至803,第一资源725、第二资源730和第三资源750中的每一个可以将注册消息传输到配置712。注册消息可以允许资源加入基于云的服务的可用资源池。每个注册消息可以包括用于该资源的地址信息,以及与该资源相关联的其他标识符。例如,用于第一资源725的注册消息可以包括用于第一资源725的一个或多个网络地址或主机名。特别地,用于第一资源725的注册消息可以包括用于连接器727的IP地址和用于主机729的IP地址,用于与第一资源725相关联的资源组的网络地址(例如,IP或多播地址),以及用于与第一资源725相关联的资源组的标识符。资源也可以向代理714(未示出)注册。
在805处,配置712可以基于在801至803处传输的注册消息来确定资源信息。资源信息可以包括用于资源和/或资源组的地址信息。作为一个示例,资源信息可以包括用于连接器727的IP地址、用于主机729的IP地址、用于连接器732的IP地址、用于主机734的IP地址、用于连接器752的IP地址和用于主机754的IP地址,以及用于与资源725、730和750相关联的三个资源组中的每一个的网络地址。作为提醒,为了简洁起见,贯穿本公开所讨论的示例假定每个资源725、730和750与其自己的资源组相关联。资源信息可以包括每个资源组的标识符(例如,与第一资源725相关联的第一资源组的第一标识符、与第二资源730相关联的第二资源组的第二标识符以及与第三资源750相关联的第三资源组的第三标识符)。
另外,用于资源组的地址可以由配置712确定(代替包括在注册消息中)。在这样的示例中,配置712可以基于注册消息确定资源组的标识符的列表(例如,一个条目用于资源组的每个唯一标识符)。对于列表上的每个条目,配置712可以确定用于资源组的网络地址(例如,将多播地址分配给资源组)。另外,虽然未在图8A的流程中示出,但是配置712可以将指示资源组的地址的消息传输到资源,因此,例如,向资源通知其所属的资源组的地址(例如,可以将指示用于第一资源组的地址的消息传输到资源725,可以将指示用于第二资源组的地址的消息传输到资源730,以及可以将指示用于第三资源组的地址的消息传输到资源750)。
在805处,代理714可以传输资源信息。资源信息可以被传输到配置712。
在807处,客户端装置728可以发起对一个或多个基于云的服务的访问。这可以通过用户选择或以其他方式指示客户端装置728执行使得能够访问基于云的服务的一个或多个应用程序来执行。
在809处,与使得能够访问一个或多个基于云的服务相关联地,客户端装置728可以传输对帐户记录的请求。该请求可以被传输到应用程序商店716。
在810处,应用程序商店716可以基于对账户记录的请求传输对资源信息的请求。该请求可以被传输到配置712。
在811处,配置712可以传输资源信息,作为对在809处的应用程序商店716的请求的响应。
继续图8B,在813处,应用程序商店716可以传输资源信息,作为对在809处的客户端装置728的请求的响应。资源信息可以作为帐户记录的一部分进行额外,或者可以格式化并且作为其自己的数据结构传输。帐户记录可以包括被配置为允许客户端装置728发起对资源和应用程序的访问和/或启动资源和应用程序的元数据。在一些示例中,应用程序商店716可以将资源信息的一部分传输到客户端装置728。例如,应用程序商店716可以传输一个或多个消息,其包括用于与资源相关联的每个连接器的地址信息(例如,用于连接器727、732和752的地址);用于资源组的地址信息(例如,用于第一资源组、第二资源组和第三资源组的地址);以及资源组的标识符(例如,用于第一资源组、第二资源组和第三资源组的标识符)。
在815处,客户端装置728可以传输对资源组标识的一个或多个请求。客户端装置可以基于在813处接收到的资源信息来传输一个或多个请求。例如,如果资源信息包括用于三个资源组的网络地址,客户端装置728则可以传输三个请求,一个请求用于每个资源组。每个请求包括相应资源组的地址信息。如图8B的示例流程中描绘的以及基于三个资源组,客户端装置经由第一企业网络位置720的本地网络执行对资源组标识的三个请求的传输:一个用于第一资源组,一个用于第二资源组,并且一个用于第三资源组。可以使用异步或多播通信技术来执行每个传输。如图8B的示例流程中描绘的,对资源组标识的请求由第一资源725和第二资源730(如实线所指示)接收,而不是由第三资源750(如虚线所指示)接收。这是因为示例网络环境700描绘了客户端装置728位于与第一资源725和第二资源730相同的网络位置处。通过位于与第一资源725和第二资源730相同的网络位置处,用于第一资源组的请求的传输将由第一资源725接收,并且用于第二资源组的请求的传输将由第二资源730接收。然而,由于第三资源750不位于与客户端装置728相同的网络位置处,用于第三资源组的请求将不会由第三资源750接收。另外,如图8B的示例流程中描绘的,由于用于资源组的服务被配置为连接器的一部分,每个资源的连接器可以接收对资源组标识的请求。
在接收到对资源组标识的请求时,资源可以以资源标识来响应。因此,基于第一资源725位于与客户端装置728相同的网络位置处,在817处,第一资源725可以将第一资源组标识传输到客户端装置728,第一资源组标识包括第一资源组的标识符。基于第二资源730位于与客户端装置728相同的网络位置处,在819处,第二资源730可以将第二资源组标识传输到客户端装置728,第二资源组标识包括第二资源组的标识符。基于第三资源750位于不同的网络位置处,第三资源750基于未接收到对资源标识的请求,可以不传输其资源组标识。此外,由于用于资源组的服务被配置为连接器的一部分,因此连接器727可以传输第一资源组标识,并且连接器732可以传输第二资源组标识。
基于所接收的一个或多个资源组标识,客户端装置728可以在821处确定所标识的资源组的指示。所标识的资源组的指示可以指示如果网关718被绕开,客户端装置728能够与哪些资源组进行通信。换句话说,所标识的资源组的指示可以指示客户端装置728能够使用网络位置的本地网络与哪些资源进行通信。例如,如在图8B的示例流程中描绘的,基于接收到第一资源组标识和第二资源组标识,客户端装置728可以确定用于指示与第一资源725相关联的第一资源组以及与第二资源730相关联的第二资源组的所标识的资源组的指示。因此,所标识的资源组的指示指示客户端装置728能够与第一资源725和第二资源730进行通信,并且可以绕开网关718以用于那两个资源组。所标识的资源组的指示可以包括用于每个标识的资源组的标识符(例如,所标识的资源组的指示可以包括第一资源组的标识符和第二资源组的标识符。
图8C和图8D的示例流程描绘了基于网络状况的变化致使所标识的资源组的指示的更新的示例。特别地,图8C的示例流程描绘了示例,其中所标识的资源组的指示基于用于资源的地址信息的变化进行更新。特别地,图8C的示例被描绘为基于用于第一资源725的地址信息的变化而执行。图8D的示例流程描绘了示例,其中所标识的资源组的指示基于至网络位置的本地网络的网络连接的变化进行更新。特别地,图8D的示例被描绘为基于客户端装置728从第一企业网络位置720移动到第二企业网络位置而执行。
继续图8C的示例流程,在823处,应用程序商店716可以将更新的资源信息传输到客户端装置728。可以将更新的资源信息作为对帐户记录的定期更新的一部分来进行传输。
与在813处传输的资源信息相比,更新的资源信息可以指示为服务注册的资源的一个或多个变化,资源的地址信息的一个或多个变化等。例如,第一资源725可以传输注册消息,其指示用于第一资源的地址信息的变化(例如,连接器727或用于第一资源725的资源组可能已通过网络运营商或经由定期地址租赁分配新的网络地址,并且可以传输注册消息以指示代理714的变化)。基于所指示的变化,代理714可以确定更新的资源信息。更新的资源信息可以指示用于第一资源725的新地址信息。可以经由配置712将更新的资源信息传输到应用程序商店716。
在825处,客户端装置728可以基于更新的资源信息传输对资源组标识的一个或多个请求。如图8C的示例流程中描绘的,客户端装置728保持在第一企业网络位置720处。因此,源于客户端装置728的传输将由第一资源725和第二资源730接收。然而,由于第三资源750保持不位于与客户端装置728相同的网络位置处,因此传输将不会由第三资源750接收。
基于接收到对资源组标识的请求,在827处,第一资源725可以将第一资源标识传输到客户端装置728。基于接收到对资源组标识的请求,在829处,第二资源730可以将第二资源标识传输到客户端装置728。
基于接收到第一资源组标识和第二资源组标识,客户端装置728可以在831处更新所标识的资源组的指示。如图所示,在更新之后,所标识的资源组的指示可以包括第一资源组的标识符和第二资源组的标识符。
继续图8D的示例流程,在831处,客户端装置728可以确定到本地网络的网络连接已经改变。可以基于客户端装置728从网络位置的本地网络断开连接或者基于客户端装置728连接到新网络位置的本地网络来执行该确定。例如,图8D的示例流程是基于客户端装置从第一企业网络位置720移动到第二企业网络位置745来进行描绘的。因此,基于该移动,客户端装置728可以与第一企业网络位置720的本地网络断开连接,并且可以连接到第三企业网络位置745的本地网络。客户端装置728可以基于与第一企业网络位置720的本地网络的断开连接或至第三企业网络位置745的本地网络的连接来确定网络连接已经改变。
在833处,客户端装置728可以基于确定到本地网络的网络连接已经改变来传输对资源组标识的一个或多个请求。由于网络位置的变化,客户端装置728现在位于与第三资源750相同的网络位置。因此,源于客户端装置728的传输将由第三资源750接收。然而,由于移动之后第一资源725和第二资源730不位于与客户端装置728相同的网络位置处,因此传输将不会由第一资源725和第二资源730(如虚线所指示)接收。
基于在移动之后第三资源位于与客户端装置728相同的网络位置处,在835处,第三资源750可以将第三资源标识传输到客户端装置728。
基于第三资源标识,客户端装置728可以在837处更新所标识的资源组的指示。如图所示,在更新之后,所标识的资源组的指示可以包括第三资源组的标识符。
虽然图8C和图8D描绘了致使所标识的资源组的指示更新的两个示例,所标识的资源组的指示可以基于其他网络状况进行更新。例如,可以基于从基于云的服务注销资源来更新对所标识的资源组的指示的更新(可以从所标识的资源组的指示移除注销的资源),或者如果客户端装置从企业网络位置移动到远程网络位置(可以更新所标识的资源组的指示以指示如果网关718被绕开,客户端装置728则可能无法与资源中的任一个进行通信)。
图8A至图8D的示例流程描绘了示例,其中确定和/或更新了用于客户端装置的所标识的资源组的指示。图9A至图9C和图10A至图10D的示例流程描绘了示例,其中所标识的资源组的指示可以用作确定是否使用至网关的连接或使用绕开网关的连接来访问资源的基础。特别地,图9A至图9C的示例流程描绘了示例,其中客户端装置基于所标识的资源组的指示通过使用绕开网关的连接来访问资源。图10A至图10D的示例流程描绘了示例,其中客户端装置基于所标识的资源组的指示通过使用至网关的连接来访问资源。
从图9A至图9C的示例流程开始,为了简洁起见,图9A至图9C的示例流程是基于图7的网络环境700示出的。特别地,图9A至图9C的示例流程包括客户端装置728、应用程序商店716、配置712、代理714、网关718、第一资源725、第三资源750、用于第一资源725的连接器727、用于第一资源725的主机729、用于第三资源750的连接器752和用于第三资源750的主机754。
在901处,客户端装置728可以传输启动应用程序的请求。该请求可以包括所标识的资源组的指示。该请求可以被传输到应用程序商店716。另外,请求的传输可以基于经由客户端装置728的用户界面对应用程序的用户选择。应用程序可以由基于云的服务托管。
为了提供图9A至图9C的流程中的特定示例,将关于指示第一资源725和第二资源730来讨论所标识的资源组的指示。换句话说,对于图9A至图9C的示例流程,所标识的资源组的指示指示如果网关718被绕开,客户端装置728则可以与第一资源725和第二资源730进行通信。例如,如果客户端装置728、第一资源725和第二资源730全部位于第一企业网络位置720处,则可能发生这种所标识的资源组的指示。
在903处,应用程序商店716可以基于启动应用程序的请求传输对应用程序启动数据的请求。应用程序启动数据可以包括指示可以分配哪个资源和/或主机来启动和/或执行应用程序的信息。该请求可以包括所标识的资源组的指示。该请求可以被传输到代理714。
通常,为了发起应用程序启动数据的准备,代理714可以基于所标识的资源线的指示和资源可用性信息来选择用于执行应用程序的资源。例如,资源可用性信息可以指示哪些资源可用于执行应用程序(例如,具有可以被分配用于应用程序的处理器容量)。所标识的资源组的指示可以指示如果网关718被绕开,客户端装置728可以与哪些资源进行通信。代理714可以基于绕开网关的优先化来尝试从资源可用性信息中选择资源。
例如,代理714可以首先分析资源可用性信息以确定哪些资源可用于执行应用程序。可用于执行应用程序的资源也可以被称为可用资源。当启动应用程序和/或分配主机时,资源可用性信息可以由代理714进行跟踪和管理。另外,每个资源可以指示哪些主机当前正在执行应用程序,或者可以指示哪些主机是资源的当前主机池的一部分。基于该信息,代理714可以确定哪些资源可用于执行应用程序。例如,如果资源具有至少一个能够执行应用程序并且空闲(例如,当前未执行应用程序)的主机,该资源则可能是可用的。
然后,代理714可以将可用资源与由所标识的资源组的指示所指示的那些进行比较。如果资源既可用又由所标识的资源组的指示所指示,代理714则可以选择该资源以执行应用程序。换句话说,代理714可以优先选择既可用于执行应用程序又可绕开网关的资源。如果可用资源中的至少两个碰巧由所标识的资源组的指示所指示,代理714则可以基于负载平衡过程从那些资源中进行选择(例如,选择具有最大剩余容量的资源)。如果可用资源中没有一个碰巧由所标识的资源组的指示所指示,代理714则可以基于负载平衡过程或基于网络健康状况来选择可用资源中的一个(例如,选择地理上最接近客户端装置728的资源)。
如图9A的示例流程中描绘的,在905处,代理714可以基于所标识的资源组的指示和资源可用性信息来选择第一资源725以执行应用程序。第一资源725的选择可能是由于所标识的资源组的指示和资源可用性信息都指示第一资源725而导致的。换句话说,可以基于如果网关718被绕开,客户端装置728能够与其进行通信,以及基于资源725可用于执行应用程序来选择第一资源725。另外,基于资源的选择,代理714可以确定将启动和执行应用程序的主机的地址信息(例如,IP地址)。
在907处,代理714可以传输消息以配置用于启动应用程序。基于对第一资源725的选择,该消息可以被传输到第一资源725。该消息可以包括主机的网络地址和要启动的应用程序的标识符。如图9A中描绘的,代理714可以将消息传输到第一资源725的连接器727。
继续图9B的示例流程,在909至913处,第一资源725可以配置以启动应用程序。如图9B的示例流程中描绘的,第一资源725可以使用连接器727和主机729执行该配置。例如,在909处,基于接收到配置用于启动应用程序的请求,连接器727可以将准备启动应用程序的请求传输到主机729。在910处,主机729可以配置其自身以启动应用程序。这可以包括分配资源(例如,实例化和/或分配虚拟机)以用于执行应用程序。在成功配置之后,在911处,主机729可以传输为应用程序准备好了主机的指示。在913处,连接器727可以基于从主机729接收到指示来传输应用程序准备好启动的指示。913处的指示可以被传输到代理714。
继续图9C的示例流程,在915处,代理714可以基于从第一资源725接收到应用程序准备好启动的指示来传输用于启动应用程序的主机信息。主机信息可以包括将执行应用程序的主机的地址信息。此外,主机信息可以指示是否要绕开网关718,和/或包括资源组的标识符(例如,如果主机729要启动应用程序,主机信息则可以包括与第一资源725相关联的第一资源组的标识符)。主机信息可以指示主机的一种或多种能力,包括例如,主机是否支持某种类型的加密、VPN连接或微VPN连接。在图9C的示例中,主机信息可以包括主机729的地址信息和网关718将被绕开的指示。主机信息可以被传输到应用程序商店716,并且可以表示对应用程序商店716对应用程序启动数据的请求的响应。
应用程序商店716可以基于主机信息来生成配置数据。配置数据可以包括客户端装置建立到网关或资源的连接所必需的信息。一旦建立了,该连接则可以在应用程序会话期间由客户端装置使用。配置数据可以指示使用几种不同类型的连接。例如,配置数据可以指示客户端装置728将建立到网关718的连接,或者将建立绕开网关718的连接。配置数据还可以指示与该连接相关联的各种安全机制,包括,例如,该连接要使用特定类型的加密,使用VPN连接还是使用微VPN连接。配置数据可以是配置文件,诸如独立计算机架构(ICA)文件。
应用程序商店716可以基于主机信息中包括的任何指示(例如,主机能力的指示或网关将被绕开的指示)来确定将使用哪种类型的连接。应用程序商店716还可以基于其自身对主机信息的分析以及所标识的资源组的指示来确定将使用哪种类型的连接。例如,应用程序商店716可以从主机信息提取资源组的标识符,并且确定所标识的资源组的指示包括匹配的标识符。基于该匹配,可以使用绕开网关的连接。此外,应用程序商店716可以请求用于生成配置数据的额外信息(例如,图10C的1017至1019)。
如图9C的示例流程中描绘的,在917处,应用程序商店716可以为绕开网关718的应用程序会话生成配置数据。该配置数据可能是由于选择了第一资源725以执行应用程序并且基于第一资源725是由所标识的资源组的指示所指示的资源中的一个而产生的。换句话说,可以基于执行应用程序的资源-在该示例中,为第一资源725-以及客户端装置728位于相同的网络位置处来确定用于绕开网关718的应用程序会话的配置数据。
在919处,应用程序商店716可以将配置数据传输到客户端装置728。该配置数据可以表示对客户端装置728对启动应用程序的请求的响应。
为了访问由第一资源725正在执行的应用程序,客户端装置728可以建立由配置数据指示的类型的连接。如图9C的示例流程中描绘的,在921处,客户端装置728可以基于配置数据连接到第一资源725的主机729并且可以绕开网关718(例如,图7的连接740)。到主机729的连接可以是加密的数据连接(例如,传输层安全性(TLS)加密连接)、VPN连接或微VPN连接。另外,主机729和客户端装置728之间的连接可以使用第一企业网络位置720的本地网络,而不是将第一企业网络位置720介接到其他网络位置的广域网。换句话说,经由主机729与客户端装置728之间的连接传输的数据可以仅使用第一企业网络位置720的联网资源(例如,路由器),并且可以不退出第一企业网络位置720。以这种方式,客户端装置728可以通过使用本地网络以连接到第一资源725来绕开网关718。
基于在第一资源725和客户端装置728之间建立的连接,第一资源725可以启动应用程序并且允许由客户端装置728访问应用程序。因此,如图9C的示例流程中描绘的,在923处,主机729可以启动应用程序。在925处,可以使用客户端装置728和第一资源725的主机729之间的连接来执行应用程序会话。例如,如果应用程序是远程桌面应用程序,主机729则可以经由绕开网关718的连接传输对远程桌面应用程序的用户界面的更新。在接收到更新时,客户端装置728可以重新生成显示以并入远程桌面应用程序的用户界面的更新。更新可以基于主机729和客户端装置728之间的连接仅使用第一企业网络位置720的网络资源来进行传输,可以不退出第一企业网络位置720并且可以绕开网关718。
图10A至图10D示出了示例流程,其中客户端装置基于所标识的资源组的指示,通过使用至网关的连接来访问资源。为了简洁起见,示出了基于图7的网络环境700的图10A至图10D的示例流程。特别地,图10A至图10D的示例流程包括客户端装置728、应用程序商店716、配置712、代理714、网关718、第一资源725、第三资源750、用于第一资源725的连接器727、用于第一资源725的主机729、用于第三资源750的连接器752和用于第三资源750的主机754。
在1001处,客户端装置728可以传输启动应用程序的请求。该请求可以包括所标识的资源组的指示。该请求可以被传输到应用程序商店716。另外,请求的传输可以基于经由客户端装置728的用户界面对应用程序的用户选择。应用程序可以由基于云的服务托管。
为了提供图10A至图10D的流程中的特定示例,将关于包括与第一资源725和第二资源730相关联的资源组的标识符来讨论指示。换句话说,对于图10A至图10D的示例流程,所标识的资源组的指示指示如果网关718被绕开,客户端装置728可以与和第一资源725相关联的第一资源组以及和第二资源730相关联的第二资源组进行通信。例如,如果客户端装置728、第一资源725和第二资源730全部位于第一企业网络位置720处,则可能发生这种所标识的资源组的指示。
在1003处,应用程序商店716可以基于启动应用程序的请求传输对应用程序启动数据的请求。该请求可以包括所标识的资源组的指示。该请求可以被传输到代理714。
在1005处,代理714可以基于所标识的资源组的指示和资源可用性信息来选择第三资源750以执行应用程序。对第三资源750的选择可能是由于指示第一资源725和第二资源730不可用于执行应用程序的资源可用性信息导致的。在该示例中,网关718无法被绕开,这是因为第一资源725和第二资源730不可用于执行应用程序。换句话说,可以基于可用于执行应用程序的资源750来选择第三资源750。
在1007处,代理714可以传输消息以配置用于启动应用程序。基于对第三资源750的选择,该消息可以被传输到第三资源750。如图10A中描绘的,代理714可以将消息传输到第三资源750的连接器752。
继续图10B的示例流程,在1009-1013处,第三资源750可以配置为启动应用程序。如图10B的示例流程中描绘的,第三资源750可以使用连接器752和主机754执行该配置。例如,在1009处,基于接收到配置用于启动应用程序的请求,连接器752可以将准备启动应用程序的请求传输到主机754。在1010处,主机754可以配置其自身以启动应用程序。这可以包括分配资源(例如,实例化和/或分配虚拟机)以用于执行应用程序。在成功配置之后,在1011处,主机754可以传输为应用程序准备好了主机754的指示。在1013处,连接器752可以基于从主机754接收到指示来传输应用程序准备好启动的指示。1013处的指示可以被传输到代理714。
继续图10C的示例流程,在1015处,代理714可以基于从第三资源750接收到应用程序准备好启动的指示来传输用于启动应用程序的主机信息。在图10C的示例中,主机信息可以包括主机754的地址信息和网关718不会被绕开的指示。主机信息可以被传输到应用程序商店716,并且可以表示对应用程序商店716对应用程序启动数据的请求的响应。
在图10C的示例中,基于主机信息,应用程序商店716可以生成用于使用至网关718的连接的应用程序会话的配置数据。然而,应用程序商店716可能需要执行额外动作来准备生成配置数据(如1017至1019处描绘的)。因此,如在1017处描绘的,应用程序商店716可以将对网关信息的请求传输到网关718。作为对请求的响应,在1019处,网关718可以将网关信息传输到应用程序商店716。网关信息可以包括网关的地址信息。另外,网关信息可以包括网关718的一种或多种能力的指示,包括,例如,网关718是否支持某些类型的加密、VPN连接或微VPN连接。
在1021处,应用程序商店716可以生成用于使用至网关718的连接的应用程序会话的配置数据。该配置数据可能是由于选择了第三资源750以执行应用程序并且基于第三资源750不是由所标识的资源组的指示所指示的资源中的一个而产生的。换句话说,可以基于执行应用程序的资源-在该示例中,为第三资源750-和客户端装置728位于不同的网络位置处来确定用于使用至网关718的连接的应用程序会话的配置数据。
在1023处,应用程序商店716可以将配置数据传输到客户端装置728。该配置数据可以表示对客户端装置728对启动应用程序的请求的响应。
为了访问由第三资源750正在执行的应用程序,客户端装置可以建立由配置数据指示的类型的连接。如图10D的示例流程中描绘的,在1025处,客户端装置728可以基于配置数据连接到网关718,并且网关718可以在客户端装置728和第三资源750之间转发数据。到网关718的连接可以是加密的数据连接(例如,传输层安全性(TLS)加密连接)、VPN连接或微VPN连接。另外,网关718和客户端装置728之间的连接可以使用第一企业网络位置720的本地网络和将第一企业网络位置720介接到外部网络位置705的广域网。换句话说,经由网关718与客户端装置728之间的连接传输的数据可以包括除了第一企业网络位置720的那些之外的联网资源,并且可以退出第一企业网络位置720。
基于在网关718和客户端装置728之间建立的连接,网关718可以传输应用程序会话的开始的指示。该指示可以被传输到第三资源750,并且特别地,被传输到第三资源750的主机754。基于从网关718接收到指示,第三资源750可以启动应用程序并且允许由客户端装置728访问该应用程序。因此,如在图10D的示例流程中描绘的,在1029处,主机754可以启动应用程序。在1031处,可以使用客户端装置728和网关718之间的连接来执行应用程序会话。作为应用程序会话的一部分,网关718可以在主机754和客户端装置728之间转发数据。例如,如果应用程序是远程桌面应用程序,主机754则可以将远程桌面应用程序的用户界面的更新传输到客户端装置728并且经由网关718进行。在接收到更新时,客户端装置728可以重新生成显示以并入远程桌面应用程序的用户界面的更新。更新可以基于网关718和客户端装置728之间的连接使用第一企业网络位置720的网络资源和广域网来进行传输。
基于上述的图9A至图9C和图10A至图10D的示例流程,客户端装置也许能够使用至网关的连接或绕开网关的连接来访问基于云的服务的资源。该示例流程提供了示例,其中客户端装置访问一个或多个基于云的服务,并且特别地执行用于由基于云的网络环境的资源所执行的应用程序的应用程序会话。示例流程示出了如果执行了应用程序的资源和客户端装置共享网络位置,则可以绕开基于云的网络环境的网关。此外,示例流程示出了如果执行应用程序的资源和客户端装置不共享网络位置,则仍可以使用网关。
用于说明在基于云的网络环境中可以绕开网关的方式的另一种方式可以是讨论客户端装置结合图9A至图9C和图10A至图10D的示例流程执行的各种步骤。图11示出了用于使客户端装置通过绕开网关来与资源进行通信的示例方法。执行类似于图11的方法可以允许客户端装置728根据图9A至图9C和图10A至图10D的示例流程执行。
在步骤1101处,客户端装置可以传输对资源组标识的一个或多个请求。该传输可能旨在由为基于云的服务注册的每个资源接收。另外,该传输可以由多播传输并且经由客户端装置的网络位置(例如,第一企业网络位置720)的本地网络来执行。
客户端装置可以基于接收到资源信息来执行对资源组标识的一个或多个请求的传输。资源信息可以例如,基于客户端装置发起对基于云的服务的访问,基于客户端装置传输对帐户记录的请求,以及基于客户端装置确定网络状况已改变来接收。网络状况的示例包括至本地网络的连接,断开至本地网络的连接,用于为基于云的服务注册的资源的地址信息的变化,以及为基于云的服务注册了哪些资源中的变化。
在步骤1103处,客户端装置可以基于对资源组标识的一个或多个请求,从为基于云的服务注册的一个或多个资源接收一个或多个资源组标识。通常,只有资源接收到对资源标识的请求,才可以从资源接收资源组标识。如果资源位于与客户端装置相同的网络位置处,资源则可以接收对资源标识的请求。因此,客户端装置可以从位于与客户端装置相同的网络位置处的一个或多个资源接收一个或多个资源标识。
在步骤1105处,客户端装置可以基于一个或多个资源组标识来确定所标识的资源组的指示。所标识的资源组的指示可以指示如果网关被绕开,客户端装置能够与哪些资源组进行通信。换句话说,所标识的资源组的指示可以指示客户端装置能够使用客户端装置的网络位置的本地网络与哪些资源组进行通信。
在步骤1107处,客户端装置可以生成启动应用程序的请求。该应用程序可以由基于云的服务提供,并且一旦启动,就可以由为基于云的服务注册的资源中的一个执行。启动应用程序的请求可以包括所标识的资源组的指示。
在步骤1109处,客户端装置可以传输启动应用程序的请求。该请求可以被传输到基于云的服务的计算平台。计算平台的网络位置可以与客户端装置的网络位置不同。例如,计算平台可以被配置为除了其他之外提供网关,并且因此计算平台可以位于外部网络位置处。外部网络位置可以与客户端装置的网络位置不同。实际上,客户端装置的网络位置和外部网络位置可以至少由广域网分开。另外,计算平台可以被配置为提供应用程序商店,并且启动应用程序的请求可以被传输到应用程序商店。
在步骤1111处,客户端装置可以从计算平台接收用于绕开网关的应用程序会话的配置数据。配置数据可以是ICA文件。另外,如果被选择用来执行应用程序的资源也是由所标识的资源组的指示所指示的资源中的一个,则可能已经产生了配置数据。换句话说,如果要执行应用程序的资源和客户端装置都位于相同的网络位置处,则可能已经产生了该配置数据。
在步骤1113处,客户端装置可以基于配置数据连接到要执行应用程序的资源。该连接可以是加密的数据连接、VPN连接或微VPN连接。另外,在资源与客户端装置之间的连接可以使用客户端装置的网络位置的本地网络,而不是将客户端装置的网络位置介接到其他网络位置(诸如,外部网络位置)的广域网。换句话说,经由资源与客户端装置之间的连接传输的数据可以仅使用客户端装置的网络位置的联网资源,并且可以不退出客户端装置的网络位置。以这种方式,客户端装置可以绕开网关。
在步骤1115处,客户端装置可以使用绕开网关的连接来执行应用程序会话。例如,如果该应用程序是远程桌面应用程序,则该资源可以经由绕开网关的连接传输对远程桌面应用程序的用户界面的更新。在接收到更新时,客户端装置728可以重新生成显示以并入远程桌面应用程序的用户界面的更新。更新可以基于资源和客户端装置之间的连接仅使用客户端装置的网络位置的网络资源进行传输,可以不退出客户端装置的网络位置并且可以绕开网关。
结合图9A至图9C、图10A至图10C和图11讨论的示例仅是可以基于贯穿本公开描述的方法、框图和系统架构等实现的许多实施方案中的一些。
尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应理解,所附权利要求中定义的主题不必限于上述的特定特征或动作。而是,上述的特定特征和动作被描述为所附权利要求的示例实现方式。

Claims (20)

1.一种方法,其包括:
由位于第一网络位置的计算装置传输对资源组标识的一个或多个第一请求;
由所述计算装置从与第一资源组相关联的第一资源并且经由所述网络接收第一资源组标识,其中所述第一资源位于所述第一网络位置;
基于所述第一资源组标识确定如果网关被绕开,则所述计算装置能够与所述第一资源组进行通信的第一指示,其中所述网关位于第二网络位置;
由所述计算装置并且向与所述网关相关联的计算平台传输启动第一应用程序的请求,其中所述计算平台位于所述第二网络位置,并且其中启动所述第一应用程序的所述请求包括如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示;
由所述计算装置并且从所述计算平台接收用于基于至所述第一资源的连接绕开所述网关的第一应用程序会话的第一配置数据;
由所述计算装置并且基于所述第一配置数据连接到所述第一资源;以及
由所述计算装置使用至所述第一资源的所述连接来执行所述第一应用程序会话。
2.如权利要求1所述的方法,其还包括:
由所述计算装置并且向所述计算平台传输启动第二应用程序的请求,其中启动所述第二应用程序的所述请求包括如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示;
由所述计算装置并且从所述计算平台接收用于连接至所述网关的第二应用程序会话的第二配置数据;
由所述计算装置并且基于所述第二配置数据连接至所述网关;以及
由所述计算装置使用至所述网关的所述连接来执行所述第二应用程序会话。
3.如权利要求1所述的方法,其中所述第一资源组标识包括所述第一资源组的标识符,并且其中如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示包括所述第一资源组的所述标识符。
4.如权利要求1所述的方法,其还包括:
由所述计算装置并且基于确定网络状况已改变来传输对资源标识的一个或多个第二请求;
由所述计算装置并且从与第二资源组相关联的第二资源接收第二资源标识;
基于所述第二资源标识确定如果所述网关被绕开,则所述计算装置能够与所述第二资源组进行通信的第二指示。
5.如权利要求4所述的方法,其中所述网络状况是基于所述计算装置移动到第三网络位置,其中所述第二资源位于所述第三网络位置。
6.如权利要求1所述的方法,其中所述第一配置数据包括独立计算架构(ICA)文件,其中所述资源包括连接器和主机,其中所述第一资源组标识是从所述连接器接收的,并且其中至所述第一资源的所述连接是至所述主机的。
7.如权利要求1所述的方法,其中所述第一网络位置和所述第二网络位置由广域网分开,并且其中至所述第一资源的所述连接被配置为在不使用所述广域网的情况下传输数据。
8.如权利要求1所述的方法,其中至所述第一资源的所述连接被配置为在不离开所述第一网络位置的情况下传输数据。
9.一种设备,其包括:
一个或多个处理器;以及
存储可执行指令的存储器,所述可执行指令在由所述一个或多个处理器执行时,使得所述设备:
传输对资源组标识的一个或多个第一请求;
从与第一资源组相关联的第一资源接收第一资源组标识,其中所述第一资源和所述设备位于第一网络位置;
基于所述第一资源组标识,确定如果网关被绕开,则所述设备能够与所述第一资源组进行通信的第一指示,其中所述网关位于第二网络位置;
向与所述网关相关联的计算平台传输启动第一应用程序的请求,其中所述计算平台位于所述第二网络位置,并且其中启动所述第一应用程序的所述请求包括如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示;
从所述计算平台接收用于基于至所述第一资源的连接绕开所述网关的第一应用程序会话的第一配置数据;
基于所述第一配置数据连接到所述第一资源;以及
使用至所述第一资源的所述连接来执行所述第一应用程序会话。
10.如权利要求9所述的设备,其中所述可执行指令在由所述一个或多个处理器执行时,使得所述设备:
向所述计算平台传输启动第二应用程序的请求,其中启动所述第二应用程序的所述请求包括如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示;
从所述计算平台接收用于连接至所述网关的第二应用程序会话的第二配置数据;
基于所述第二配置数据连接至所述网关;以及
使用至所述网关的所述连接来执行所述第二应用程序会话。
11.如权利要求9所述的设备,其中所述第一资源组标识包括所述第一资源组的标识符,并且其中如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示包括所述第一资源组的所述标识符。
12.如权利要求9所述的设备,其中所述可执行指令在由所述一个或多个处理器执行时,使得所述设备:
基于确定网络状况已改变,传输对资源标识的一个或多个第二请求;
从与第二资源组相关联的第二资源接收第二资源标识;
基于所述第二资源标识确定如果所述网关被绕开,则所述计算装置能够与所述第二资源组进行通信的第二指示。
13.如权利要求12所述的设备,其中所述网络状况是基于所述计算装置移动到第三网络位置,其中所述第二资源位于所述第三网络位置。
14.如权利要求9所述的设备,其中所述第一配置数据包括独立计算架构(ICA)文件,其中所述资源包括连接器和主机,其中所述第一资源组标识是从所述连接器接收的,并且其中至所述第一资源的所述连接是至所述主机的。
15.如权利要求9所述的设备,其中所述第一网络位置和所述第二网络位置由广域网分开,并且其中至所述第一资源的所述连接被配置为在不使用所述广域网的情况下传输数据。
16.一种或多种存储可执行指令的计算机可读介质,所述可执行指令在被执行时,使得设备:
传输对资源组标识的一个或多个第一请求;
从与第一资源组相关联的第一资源接收第一资源组标识,其中所述第一资源和所述设备位于第一网络位置;
基于所述第一资源组标识,确定如果网关被绕开,则所述设备能够与所述第一资源组进行通信的第一指示,其中所述网关位于第二网络位置;
向与所述网关相关联的计算平台传输启动第一应用程序的请求,其中所述计算平台位于所述第二网络位置,并且其中启动所述第一应用程序的所述请求包括如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示;
从所述计算平台接收用于基于至所述第一资源的连接绕开所述网关的第一应用程序会话的第一配置数据;
基于所述第一配置数据连接到所述第一资源;以及
使用至所述第一资源的所述连接来执行所述第一应用程序会话。
17.如权利要求16所述的一种或多种计算机可读介质,其中所述可执行指令在被执行时,使得所述设备:
向所述计算平台传输启动第二应用程序的请求,其中启动所述第二应用程序的所述请求包括如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示;
从所述计算平台接收用于连接至所述网关的第二应用程序会话的第二配置数据;
基于所述第二配置数据连接至所述网关;以及
使用至所述网关的所述连接来执行所述第二应用程序会话。
18.如权利要求16所述的一种或多种计算机可读介质,其中所述第一资源组标识包括所述第一资源组的标识符,并且其中如果所述网关被绕开,则所述计算装置能够与所述第一资源组进行通信的所述第一指示包括所述第一资源组的所述标识符。
19.如权利要求16所述的一种或多种计算机可读介质,其中所述可执行指令在被执行时,使得所述设备:
基于确定网络状况已改变,传输对资源组标识的一个或多个第二请求;
从第二资源接收第二资源组标识;
基于所述第二资源组标识确定如果所述网关被绕开,则所述计算装置能够与所述第二资源组进行通信的第二指示。
20.如权利要求16所述的一种或多种计算机可读介质,其中所述第一配置数据包括独立计算架构(ICA)文件,其中所述资源包括连接器和主机,其中所述第一资源标识是从所述连接器接收的,并且其中至所述第一资源的所述连接是至所述主机的。
CN201980064739.XA 2018-08-28 2019-08-27 在远程访问或基于云的网络环境中访问资源 Pending CN112789841A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/114,764 US11075999B2 (en) 2018-08-28 2018-08-28 Accessing resources in a remote access or cloud-based network environment
US16/114,764 2018-08-28
PCT/US2019/048230 WO2020046856A1 (en) 2018-08-28 2019-08-27 Accessing resources in a remote access or cloud-based network environment

Publications (1)

Publication Number Publication Date
CN112789841A true CN112789841A (zh) 2021-05-11

Family

ID=67928887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980064739.XA Pending CN112789841A (zh) 2018-08-28 2019-08-27 在远程访问或基于云的网络环境中访问资源

Country Status (6)

Country Link
US (2) US11075999B2 (zh)
EP (1) EP3844938B1 (zh)
CN (1) CN112789841A (zh)
AU (1) AU2019332913B2 (zh)
CA (1) CA3111145C (zh)
WO (1) WO2020046856A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11063959B2 (en) * 2018-12-06 2021-07-13 ColorTokens, Inc. Secure and seamless remote access to enterprise applications with zero user intervention
US10929237B2 (en) * 2019-01-22 2021-02-23 Bank Of America Corporation Error handling tool
US11310279B2 (en) * 2019-04-05 2022-04-19 International Business Machines Corporation Implementation of selected enterprise policies
US11297036B1 (en) 2019-09-03 2022-04-05 Rapid7, Inc. Single whitelisted ingress endpoint on 1 and 2 way TLS connections
US11201897B1 (en) * 2019-09-03 2021-12-14 Rapid7, Inc. Secure multiplexed routing
US11522913B1 (en) 2019-09-03 2022-12-06 Rapid7, Inc. Simplifying networking setup complexity for security agents
CA3135722C (en) * 2020-07-29 2022-05-17 Citrix Systems, Inc. Sharing resources between client devices in a virtual workspace environment
US11212237B1 (en) * 2020-07-29 2021-12-28 Citrix Systems, Inc. Sharing resources between client devices in a virtual workspace environment
US11556332B2 (en) * 2021-02-23 2023-01-17 International Business Machines Corporation Application updating in a computing environment using a function deployment component
US20230068880A1 (en) * 2021-08-27 2023-03-02 EMC IP Holding Company LLC Function-based service framework with trusted execution platform
US11855840B2 (en) * 2021-10-30 2023-12-26 Hewlett Packard Enterprise Development Lp Smart zero-touch provisioning (ZTP)
CN114760304A (zh) * 2022-03-30 2022-07-15 中国电信股份有限公司 算力信息的处理方法、处理系统及算力网关

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102197400A (zh) * 2008-10-24 2011-09-21 微软公司 用于直接访问网络的网络位置确定
CN103563294A (zh) * 2011-06-30 2014-02-05 国际商业机器公司 用于云计算平台安全性的认证和授权方法
CN104813607A (zh) * 2012-12-28 2015-07-29 华为技术有限公司 用于专用网络的基于电子集合的两级访问控制
WO2015109950A1 (zh) * 2014-01-27 2015-07-30 华为技术有限公司 业务资源组实现方法及装置
CN105579965A (zh) * 2013-09-23 2016-05-11 亚马逊科技公司 经由提供商定义接口的客户端驻地资源控制

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953889B2 (en) * 2006-08-03 2011-05-31 Citrix Systems, Inc. Systems and methods for routing VPN traffic around network disruption
CA2773510C (en) 2009-09-18 2015-06-23 Nec Corporation Communication system and communication control method
US9237240B2 (en) 2012-11-13 2016-01-12 Obihai Technology, Inc. Communications management and gateway bypassing system
US9853898B1 (en) * 2015-04-29 2017-12-26 Juniper Networks, Inc. Dynamic service chain provisioning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102197400A (zh) * 2008-10-24 2011-09-21 微软公司 用于直接访问网络的网络位置确定
CN103563294A (zh) * 2011-06-30 2014-02-05 国际商业机器公司 用于云计算平台安全性的认证和授权方法
CN104813607A (zh) * 2012-12-28 2015-07-29 华为技术有限公司 用于专用网络的基于电子集合的两级访问控制
CN105579965A (zh) * 2013-09-23 2016-05-11 亚马逊科技公司 经由提供商定义接口的客户端驻地资源控制
WO2015109950A1 (zh) * 2014-01-27 2015-07-30 华为技术有限公司 业务资源组实现方法及装置

Also Published As

Publication number Publication date
EP3844938A1 (en) 2021-07-07
US11438421B2 (en) 2022-09-06
CA3111145A1 (en) 2020-03-05
WO2020046856A1 (en) 2020-03-05
US20210314409A1 (en) 2021-10-07
EP3844938B1 (en) 2023-09-27
CA3111145C (en) 2023-09-26
US11075999B2 (en) 2021-07-27
AU2019332913A1 (en) 2021-04-29
US20200076902A1 (en) 2020-03-05
AU2019332913B2 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
CN111052706B (zh) 将单点登录扩展到联合登录提供者的依赖方的方法
US11722465B2 (en) Password encryption for hybrid cloud services
CN109558721B (zh) 客户端应用程序的安全单点登录和条件访问的方法和系统
CN111133729B (zh) 保护用于在两个端点之间通信的数据连接的安全性
US11627120B2 (en) Dynamic crypto key management for mobility in a cloud environment
CN108028845B (zh) 使用导出凭证注册企业移动装置管理服务的系统和方法
US11438421B2 (en) Accessing resources in a remote access or cloud-based network environment
CN107566400B (zh) 用于确定应用的操作模式的方法
US10743357B2 (en) Virtual private networking based on peer-to-peer communication
US11062041B2 (en) Scrubbing log files using scrubbing engines
CN111066307B (zh) 包装延续令牌以支持跨不同地理位置的多个服务器的分页
US20220094547A1 (en) Enhanced token transfer
CN112425130A (zh) 使用与装置相关联的身份数据来将通信引导至另一装置
CN111566619A (zh) 虚拟桌面中的本地映射账户
WO2022133373A1 (en) Native application integration for enhanced remote desktop experiences
US11366883B2 (en) Reflection based endpoint security test framework
CN113574837A (zh) 跟踪客户端设备上的图像发送者

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