首页> 中国专利> 用于经由中间装置的片上系统进行流量优化的系统和方法

用于经由中间装置的片上系统进行流量优化的系统和方法

摘要

所描述的实施例包括用于输送网络应用的系统和方法。客户机装置和托管网络应用的服务器之间的中间装置与网络应用建立连接。中间装置接收编码的应用数据并对编码的应用数据进行解码。应用数据是编码的图形数据或音频数据。解码的应用数据可在客户机装置处呈现。中间装置将解码的应用图形和/或音频数据传输到客户机应用的客户机应用以进行呈现,以向用户提供对网络应用的访问。

著录项

  • 公开/公告号CN113169998A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 思杰系统有限公司;

    申请/专利号CN201980080043.6

  • 申请日2019-10-01

  • 分类号H04L29/08(20060101);

  • 代理机构11280 北京泛华伟业知识产权代理有限公司;

  • 代理人王勇

  • 地址 美国佛罗里达州

  • 入库时间 2023-06-19 11:55:48

说明书

本专利申请要求于2018年10月11日提交的名称为“SYSTEMS AND METHODS FORTRAFFIC OPTIMIZATION VIA SYSTEM ON CHIP OF INTERMEDIARY DEVICE”的美国专利申请No.16/157,867的优先权和利益,其全部内容出于所有目的通过引用全部合并于此。

技术领域

本申请总地涉及网络应用的管理,包括但不限于用于使用中间装置来优化来自web、远程托管的和软件即服务(SaaS)应用的流量的系统和方法。

背景技术

随着企业的劳动力变得更有移动性和在各种条件下工作,个人可以使用一个或多个客户机装置(包括个人装置)以访问网络资源,诸如web应用。由于客户机装置之间的不同,当使用不同的客户机装置时,对网络资源的用户体验可能会有所不同。

发明内容

本公开涉及用于输送网络应用的系统和方法。中间装置(在本文中有时称为Netscaler装置或网络设备)可以包括HDX引擎(在本文中也称为远程会话代理)。远程会话代理可以使用片上系统(或中间装置的其他处理器或计算装置)在中间装置处处理远程会话流量,以将托管的应用或桌面供应给客户机装置。就这一点而言,接收器应用(在本文中也称为客户机应用)可以接收并呈现处理后的远程会话流量,并且在客户机装置处呈现之前可能不必进一步处理或对处理后的远程会话流量进行解码。以类似的方式,可以在中间装置处处理或解码经由web、远程托管的或SaaS应用提供的内容。例如,处理后的内容可以对应于位图数据、原始音频数据、级联样式表(CSS)文件(或类似文件)等。可以将处理后的内容从中间装置传输到客户机装置以进行呈现(例如,无需进一步处理或解码)。

在一个方面,本公开涉及一种用于输送网络应用的方法。该方法可以包括通过客户机装置与托管网络应用的服务器中间的装置建立与网络应用的连接。该方法可以包括由装置经由所建立的连接来接收网络应用的应用数据,应用数据包括编码的图形数据或编码的音频数据中至少之一。该方法可以包括由装置将接收到的网络应用的应用数据解码为解码的图形数据或解码的音频数据中至少之一,以用于在客户机装置处进行呈现。该方法可以包括由装置将解码的图形数据或解码的音频数据中至少之一传输到客户机装置的客户机应用以进行呈现,以在客户机装置处向用户提供对网络应用的访问。

在一些实施例中,该方法还包括使集成在客户机应用中的嵌入式浏览器呈现解码的图形数据或解码的音频数据中至少之一。在一些实施例中,应用数据包括用户界面显示命令或消息。在一些实施例中,网络应用包括远程托管的应用、远程托管的桌面或软件即服务(SaaS)应用。

在一些实施例中,对接收到的应用数据进行解码还包括在网络级处优化接收到的应用数据,以用于在客户机装置处进行呈现。在一些实施例中,该方法还包括由装置监测在网络应用与客户机装置之间传送的流量。在一些实施例中,该方法还包括由装置提供安全浏览器,以用于在装置处呈现接收到的应用数据。

在一些实施例中,装置比服务器更靠近客户机装置。在一些实施例中,该方法还包括当客户机装置从经由装置的网络应用的会话断开连接时,由装置维持网络应用的状态。在一些实施例中,该方法还包括当经由装置的网络应用的会话从客户机装置转移到另一客户机装置时,由装置维持网络应用的状态。

在另一方面,本公开涉及一种用于输送网络应用的系统。该系统可以包括客户机装置和托管网络应用的服务器中间的装置。装置可以与网络应用建立连接。装置可以经由所建立的连接来接收网络应用的应用数据,应用数据包括编码的图形数据或编码的音频数据中至少之一。该装置可以将接收到的网络应用的应用数据解码为解码的图形数据或解码的音频数据中至少之一,以用于在客户机装置处进行呈现。装置可以将解码的图形数据或解码的音频数据中至少之一传输到客户机装置的客户机应用以进行呈现,以在客户机装置处向用户提供对网络应用的访问。

在一些实施例中,装置还被配置为使集成在客户机应用中的嵌入式浏览器呈现解码的图形数据或解码的音频数据中至少之一。在一些实施例中,应用数据包括用户界面显示命令或消息。在一些实施例中,网络应用包括远程托管的应用、远程托管的桌面或软件即服务(SaaS)应用。

在一些实施例中,装置还被配置为在网络级处优化接收到的应用数据,以用于在客户机装置处进行呈现。在一些实施例中,装置还被配置为监测在网络应用与客户机装置之间传送的流量。在一些实施例中,装置还被配置为提供安全浏览器,以用于在装置处呈现接收到的应用数据。

在一些实施例中,装置比服务器更靠近客户机装置。在一些实施例中,装置还被配置为当客户机装置从经由装置的网络应用的会话断开连接时,维持网络应用的状态。在一些实施例中,装置还被配置为当经由装置的网络应用的会话从客户机装置转移到另一客户机装置时,维持网络应用的状态。

附图说明

通过参考以下结合附图的描述,本解决方案的前述和其他目的、方面、特征和优点将变得更加明显和更好理解,其中:

图1是计算装置的实施例的框图;

图2是用于访问资源的云服务的说明性实施例的框图;

图3是企业移动性管理系统的示例实施例的框图;

图4是嵌入式浏览器的系统400的框图;

图5是用于使用安全浏览器的系统的示例实施例的框图;

图6是用于使用安全浏览器插件的浏览器重定向的实施方式的示例表示;

图7是使用安全浏览器的系统的示例实施例的框图;

图8是用于使用本地嵌入式浏览器和托管安全浏览器的系统的示例实施例的框图;

图9是用于使用本地嵌入式浏览器和托管安全浏览器的示例处理流程;

图10是用于管理用户对网页的访问的系统的示例实施例;

图11是用于输送网络应用的系统的一个实施例的框图;以及

图12是用于输送网络应用的方法的一个实施例的流程图。

根据下文结合附图时阐述的详细描述,本解决方案的特征和优点将变得更加明显,在附图中,相似的附图标记始终标识相应的元件。在附图中,相似的附图标记通常表示相同、功能相似和/或结构相似的元件。

具体实施方式

为了阅读以下各个实施例的描述,本说明书各部分的以下描述及其各自的内容可能是有帮助的:

A部分描述了一种计算环境,该计算环境可用于实践本文描述的实施例;

B部分描述了用于嵌入式浏览器的系统和方法。

C部分描述了用于输送网络应用的系统和方法。

在讨论本文B部分中详细的系统和方法的实施例的细节之前,讨论这样的实施例可以被部署的计算环境可能是有帮助的。

如图1所示,计算机101可以包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(RAM))、非易失性存储器128(例如,一个或多个硬盘驱动器(HDD)或其他磁性或光学存储介质、一个或多个固态驱动器(SSD)(例如闪存驱动器或其他固态存储介质)、一个或多个混合磁性和固态驱动器、和/或一个或多个虚拟存储卷(例如云存储)、或这种物理存储卷和虚拟存储卷或其阵列的组合)、用户界面(UI)123、一个或多个通信接口118和通信总线150。用户界面123可包括图形用户界面(GUI)124(例如,触摸屏、显示器等)和一个或多个输入/输出(I/O)装置126(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个照相机、一个或多个生物特征扫描仪、一个或多个环境传感器、一个或多个加速度计等)。非易失性存储器128存储操作系统115、一个或多个应用116和数据117,从而例如由处理器103从易失性存储器122中执行操作系统115和/或应用116的计算机指令。在一些实施例中,易失性存储器122可以包括一种或多种类型的RAM和/或高速缓冲存储器,其可以提供比主存储器更快的响应时间。可以使用GUI 124的输入装置来输入数据,或者可以从I/O装置126接收数据。计算机101的各种元件可以经由一条或多条通信总线(显示为通信总线150)进行通信。

图1所示的计算机101仅作为示例示出,因为可以通过任何计算或处理环境,以及利用可以具有能够如本文所述操作的合适的硬件和/或软件的任何类型的机器或机器组,来实现客户机、服务器、中间装置和其他网络装置。处理器103可以由执行一个或多个可执行指令(诸如计算机程序)的一个或多个可编程处理器来实现,用以执行系统的功能。如本文所使用的,术语“处理器”描述了执行功能、操作或操作序列的电路。功能、操作或操作序列可以被硬编码到电路中,或者通过存储在存储器装置中的指令被软编码和被电路执行。“处理器”可以使用数字值和/或使用模拟信号执行功能、操作或操作序列。在一些实施例中,“处理器”可以以一个或多个专用集成电路(ASIC)、微处理器、数字信号处理器(DSP)、图形处理单元(GPU)、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器、或具有关联存储器的通用计算机来实现。“处理器”可以是模拟、数字或混合信号。在一些实施例中,“处理器”可以是一个或多个物理处理器或一个或多个“虚拟”(例如,位于远程的或“云”)处理器。包括多个处理器核和/或多个处理器的处理器可以提供用于并行、同时执行多个指令或用于并行、同时执行多于一段数据上的一个指令的功能。

通信接口118可以包括一个或多个接口,以使计算机101能够通过各种有线和/或无线或蜂窝连接来访问诸如局域网(LAN)、广域网(WAN)、个人局域网(PAN)或互联网的计算机网络。

在所描述的实施例中,计算装置101可以代表客户机计算装置的用户执行应用。例如,计算装置101可以执行虚拟机,该虚拟机提供执行会话,应用在该执行会话(例如托管的桌面会话)内代表用户或客户机计算装置执行。计算装置101还可以执行终端服务会话以提供托管的桌面环境。计算装置101可以提供对包括以下中的一个或多个的计算环境的访问:一个或多个应用、一个或多个桌面应用以及可以在其中执行一个或多个应用的一个或多个桌面会话。

网络环境、计算机101以及客户机和服务器计算机的实施和操作的其他细节,可以参见2017年1月3日授予佛罗里达州劳德代尔堡的Citrix Systems,Inc.的美国专利No.9,538,345中的描述,其教导通过引用合并于此。

本公开涉及嵌入式浏览器的系统和方法。在客户机装置上执行的客户机应用可以允许用户访问由一个或多个服务器服务的和/或托管在一个或多个服务器上的应用(app),诸如web应用和软件即服务(SaaS)应用(以下有时通常称为网络应用)。嵌入或集成到客户机应用中的浏览器可以向用户呈现经由客户机应用访问或请求的网络应用,并且可以启用用户与网络应用之间的交互性。该浏览器有时被称为嵌入式浏览器,而具有嵌入式浏览器的客户机应用(CEB)有时被称为工作空间应用。客户机应用可以建立到一个或多个服务器的安全连接,以提供应用会话,以便用户使用客户机装置和嵌入式浏览器访问网络应用。嵌入式浏览器可以与客户机应用集成,以确保与网络应用相关的流量通过客户机应用路由和/或在客户机应用中处理,这可以为客户机应用提供流量的实时可见性(例如,当通过客户机应用进行解密时)、以及用户交互和行为。当经由用户界面(由客户机应用和嵌入式浏览器共享)请求网络应用,以及通过嵌入式浏览器在同一用户界面内呈现时,嵌入式浏览器可以为用户提供无缝体验。

客户机应用可以终止与网络应用的服务器建立的安全连接(诸如安全套接字层(SSL)虚拟专用网络(VPN)连接)的一端。客户机应用可以从网络应用接收加密的流量,并且可以在进一步处理(例如,由嵌入式浏览器呈现)之前对流量进行解密。客户机应用可以监测接收到的流量(例如,以加密分组的形式),并且还可以对解密的数据流和/或SSL协议栈的内部具有完全可见性。这种可见性可以允许客户机应用执行或促进基于策略的管理(例如,包括数据丢失防护(DLP)能力)、应用控制(例如,提高性能、服务水平)以及分析的收集和产生。例如,本地CEB可以为信息技术(IT)管理员提供用于通过CEB部署Web和SaaS应用的受控系统,并允许IT管理员经由CEB设置策略或配置,以执行上述任何活动。

许多Web和SaaS输送的应用从Web服务器连接到用户的通用浏览器(例如InternetExplorer、Firefox等)。一旦通过认证,便会加密此类网络应用的整个会话。然而,在这种情况下,管理员可能不具有对从用户的数字工作空间进入网络应用的内容、或离开网络应用并进入用户的数字工作空间的内容的可见性、分析、或控制。此外,在通用浏览器中查看的网络应用的内容可以被复制或下载(例如,由用户或程序)到潜在地任意应用或装置,从而导致可能违反数据安全性。

本系统和方法可以确保与网络应用相关联的流量是被引导通过CEB的。通过图示的方式,例如,当用户访问具有启用的安全断言标记语言(SAML)的SaaS web服务时,相应的访问请求可以被转发到一个指定的网关服务,该服务确定、检查或者验证CEB是否被用于提出该访问请求。响应于确定CEB被用于提出访问请求,网关服务可以执行或提供认证和单点登录(SSO),并且可以允许CEB直接连接到SaaS web服务。加密(例如标准加密)可用于CEB与SaaS web服务之间的应用会话。当来自web服务的内容在CEB中未加密以经由嵌入式浏览器查看时,和/或当输入经由CEB输入时,CEB可以提供用于例如控制和分析的选择性应用相关的信息上的附加服务。例如,分析代理或应用编程接口(API)可以被嵌入在CEB中以提供或执行附加服务。

CEB(有时被称为工作空间应用或接收器)可以与一个或多个网关服务、中间装置和/或网络服务器(有时统称为云服务或思杰云(Citrix Cloud))进行交互操作,以提供对网络应用的访问。与云服务的实施例的操作相关的环境的特征和元件如下所述。

图2示出了用于在访问包括网络应用的资源中使用的云服务的实施例。云服务可以包括企业移动性技术架构200,在一个说明性实施例中,其可以包括访问网关260。例如,该架构可以用于自携装置(BYOD)的环境中。该架构可以使客户机装置202(例如,手机或其它装置)的用户能够从客户机装置202访问企业或个人资源,并且使用客户机装置202以供个人使用。用户可以经由在客户机装置202上执行的客户机应用来访问这种企业资源204或企业服务208。用户可以使用由用户购买的客户机装置202或由企业提供给用户的客户机装置202来访问这种企业资源204或企业服务208。用户可以将客户机装置202仅用于商业用途或用于商业和个人用途。客户机装置可运行iOS操作系统和Android操作系统等。企业可以选择实施策略来管理客户机装置202。可以通过防火墙或网关来植入策略,使得客户机装置可以被识别、保护或安全验证,为客户机装置提供对企业资源的选择性或完全访问权限。这些策略可以是客户机装置管理策略、移动应用管理策略、移动数据管理策略或客户机装置、应用和数据管理策略的一些组合。通过施加客户机装置管理策略管理的客户机装置202可以被称为注册装置。该客户机装置管理策略可经由例如客户机应用施加。

在一些实施例中,客户机装置的操作系统可以被分成受管理分区210和未管理分区212。受管理分区210可以被施加策略以保护在受管理分区中运行的应用和存储在其中的数据。在受管理分区上运行的应用可以是安全应用。在其他实施例中,所有应用可以根据与该应用分开接收的一个或多个策略文件的集合来执行,并且该策略文件定义一个或多个安全参数、特征、资源限制和/或由客户机装置管理系统在应用在装置上执行时实施的其他访问控制。通过根据它们各自的策略文件进行操作,可以允许或限制每个应用与一个或多个其他应用和/或资源的通信,从而创建虚拟分区。因此,如本文所使用的,分区可以指存储器的物理分区部分(物理分区)、存储器的逻辑分区部分(逻辑分区)和/或如本文所述由于实施一个或多个策略和/或跨多个app的策略文件而创建的虚拟分区(虚拟分区)。换句话说,通过在受管理app上实施策略,那些app可能会被限制为只能与其他受管理app和受信任的企业资源进行通信,从而创建虚拟分区,未管理app和装置无法访问该虚拟分区。

安全应用可以是电子邮件(email)应用、web浏览应用、软件即服务(SaaS)访问应用、Windows应用访问应用等。客户机应用可包括安全应用启动器218。安全应用可以是安全本机应用214、由安全应用启动器218执行的安全远程应用222、由安全应用启动器218执行的虚拟化应用226,等等。安全本机应用214可以由安全应用包装器220包装。当在装置上执行安全本机应用时,安全应用包装器220可以包括在客户机装置202上执行的集成策略。安全应用包装器220可以包括元数据,该元数据将在客户机装置202上运行的安全本机应用214指向安全本机应用214可能需要的以完成安全本机应用214执行要求的任务的托管在企业的资源。由安全应用启动器218执行的安全远程应用222可以在安全应用启动器应用218内执行。由安全应用启动器218执行的虚拟化应用226可以利用客户机装置202上、企业资源204处等的资源。由安全应用启动器218执行的虚拟化应用226在客户机装置202上使用的资源可以包括用户交互资源、处理资源等。用户交互资源可以用于收集和传输键盘输入、鼠标输入、照相机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可以用于呈现用户界面,处理从企业资源204接收的数据等。由安全应用启动器218执行的虚拟化应用226在企业资源204处使用的资源可以包括用户界面生成资源、处理资源等。用户界面生成资源可以被用于组装用户界面、修改用户界面、刷新用户界面,等等。处理资源可以用于创建信息、读取信息、更新信息、删除信息等。例如,虚拟化应用可以记录与图形用户界面(GUI)相关联的用户交互,并将它们传达给服务器应用,其中服务器应用可以使用用户交互数据作为在服务器上运行的应用的输入。在该布置中,企业可以选择在服务器侧维持应用以及与应用相关联的数据、文件等。虽然企业可以根据此处通过确保一些应用在客户机装置上的部署(例如,通过客户机应用)的安全的原则来选择“移动化”它们,但也可以为特定应用选择该布置。例如,尽管可以确保一些应用在客户机装置上使用的安全性,但是其他应用可能没有准备好或不适合在客户机装置上部署,因此企业可以选择通过虚拟化技术为移动用户提供对未准备好的应用的访问。作为另一个示例,企业可能具有带有大型和复杂数据集的大型复杂应用(例如,物质资源计划应用),在这种情况下很难或不希望为客户机装置定制应用,因此企业可以选择通过虚拟化技术提供对应用的访问。作为又一个示例,企业可以具有维持高度安全数据(例如,人力资源数据、客户数据、工程数据)的应用,该应用可能被企业认为甚至对于安全的移动环境也太敏感,因此企业可以选择使用虚拟化技术允许移动访问这些应用和数据。企业可以选择在客户机装置上提供完全安全和功能完整的应用。企业可以使用客户机应用(可以包括虚拟化应用)来允许访问被认为更适合在服务器侧操作的应用。在一个实施例中,虚拟化的应用可以在安全存储位置中的一个中在移动电话上存储一些数据、文件等。例如,企业可以选择允许特定信息存储在电话中,而不允许其他信息。

结合本文中所描述的虚拟化应用,客户机装置可以具有被设计为呈现GUI并且然后记录用户与GUI的交互的虚拟化应用。该虚拟化应用可以将用户交互传送到服务器侧,以被服务器侧的应用作为用户与该应用的交互使用。作为响应,服务器侧的应用可以将新的GUI发送回客户机装置。例如,新的GUI可以是静态页面、动态页面、动画等,从而提供对远程资源的访问。

安全应用可以访问存储在客户机装置的受管理分区210中的安全数据容器228中的数据。安全包装应用214、由安全应用启动器执行的应用222,由安全应用启动器218执行的虚拟化应用226等可以访问在安全数据容器中保护的数据。存储在安全数据容器228中的数据可以包括文件、数据库等。存储在安全数据容器228中的数据可以包括限于特定的安全应用230,在安全应用232之间共享的数据等。限于安全应用的数据可以包括安全通用数据234和高度安全数据238。安全通用数据可以使用诸如高级加密标准(AES)128位加密之类的强加密形式,而高度安全数据238可以使用诸如AES 256位加密之类的非常强加密形式。当从装置管理器224接收到命令时,可以从装置中删除存储在安全数据容器228中的数据。安全应用可以具有双模式选项240。双模式选项240可以向用户呈现在非安全或非管理模式下操作安全应用的选项。在非安全或非管理模式下,安全应用可以访问存储在客户机装置202的非管理分区212上的非安全数据容器242中的数据。存储在非安全数据容器中的数据可以是个人数据244。存储在非安全数据容器242中的数据还可以由在客户机装置202的未管理分区212上运行的非安全应用248访问。当存储在安全数据容器228中的数据被从客户机装置202删除时,存储在非安全数据容器242中的数据可以保持在客户机装置202中。企业可能希望从客户机装置中删除由企业拥有、许可或控制的所选择的或所有的数据、文件和/或应用(企业数据),同时留下或以其它方式保留由用户拥有、许可或控制的个人数据、文件和/或应用(个人数据)。该操作可以称为选择性擦除。利用根据本文所述方面布置的企业和个人数据,企业可以执行选择性擦除。

客户机装置202可以连接到企业处的企业资源204和企业服务208,连接到公共互联网248等。该客户机装置可以通过虚拟专用网络连接来连接到企业资源204和企业服务208。虚拟专用网络连接(也称为微VPN或应用特定的VPN)可以特定于特定应用(例如,如微VPN 250所示)、特定装置、客户机装置上的特定安全区域(例如,如O/S VPN 252所示)等。例如,电话的安全区域中的每个包装应用都可以通过应用特定的VPN访问企业资源,从而可以基于与该应用相关联的属性(可能结合用户或装置属性信息)来授予对VPN的访问权限。虚拟专用网络连接可以承载Microsoft Exchange流量、Microsoft Active Directory流量、超文本传输协议(HTTP)流量、安全超文本传输协议(HTTPS)流量、应用管理流量等。虚拟专用网络连接可以支持并启用单点登录认证过程254。单点登录过程可以允许用户提供一组认证凭证,然后由认证服务258对其进行验证。然后,认证服务258可以向用户授予对多个企业资源204的访问权限,而无需用户向每个单独的企业资源204提供认证凭证。

虚拟专用网络连接可以由访问网关260建立和管理。访问网关260可以包括管理、加速和改善企业资源204到客户机装置202的输送的性能增强特征。访问网关还可以将流量从客户机装置202重新路由到公共互联网248,从而使客户机装置202能够访问在公共互联网248上运行的公共可用和非安全的应用。该客户机装置可以经由传输网络262连接到访问网关。传输网络262可以使用一种或多种传输协议,并且可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。

企业资源204可以包括电子邮件服务器、文件共享服务器、SaaS/Web应用、Web应用服务器、Windows应用服务器等。电子邮件服务器可以包括Exchange服务器、Lotus Notes服务器等。文件共享服务器可以包括ShareFile服务器等。SaaS应用可以包括Salesforce等。Windows应用服务器可以包括为提供旨在在本地Windows操作系统上运行的应用等而构建的任何应用服务器。企业资源204可以是基于本地的资源、基于云的资源等。企业资源204可由客户机装置202直接访问或通过访问网关260访问。客户机装置202可以经由传输网络262访问企业资源204。传输网络262可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。

云服务可以包括访问网关260和/或企业服务208。企业服务208可以包括认证服务258、威胁检测服务264、装置管理器服务224、文件共享服务268、策略管理器服务270、社交整合服务272、应用控制器服务274等。认证服务258可以包括用户认证服务、装置认证服务、应用认证服务、数据认证服务等。认证服务258可以使用凭证。凭证可以通过企业资源204等存储在客户机装置202上。存储在客户机装置202上的凭证可以被存储在客户机装置上的加密位置,凭证可以被临时存储在客户机装置202上以在认证等时使用。威胁检测服务264可以包括入侵检测服务、未授权访问尝试检测服务等。未授权访问尝试检测服务可以包括访问装置、应用、数据等的未授权的尝试。装置管理服务224可以包括配置、供应、安全、支持、监测、报告和报废服务。文件共享服务268可以包括文件管理服务、文件存储服务、文件协作服务等。策略管理器服务270可以包括装置策略管理器服务、应用策略管理器服务、数据策略管理器服务等。社交整合服务272可以包括联系人整合服务、协作服务、与诸如Facebook、Twitter和LinkedIn等的社交网络的整合。应用控制器服务274可以包括管理服务、供应服务、部署服务、分配服务、撤销服务、包装服务等。

企业移动性技术架构200可以包括应用商店278。应用商店278可以包括未包装应用280、预包装应用282等。可以从应用控制器274将应用填充在应用商店278中。客户机装置202可以通过访问网关260、通过公共互联网248等来访问应用商店278。可以提供具有直观且易于使用的用户界面的应用商店。

软件开发工具包284可以通过在应用周围提供安全包装为用户提供保护用户选择的应用的能力。然后,可以通过使用应用控制器274将已使用软件开发工具包284包装的应用填充到应用商店278中,使其对客户机装置202可用。

企业移动性技术架构200可以包括管理和分析能力。管理和分析能力可以提供与如何使用资源、使用资源的频率等有关的信息。资源可以包括装置、应用、数据等。如何使用资源可以包括哪些装置下载哪些应用、哪些应用访问哪些数据等。使用资源的频率可以包括应用的下载频率、应用访问特定数据集的次数等。

图3描绘了企业移动性管理系统300的说明性实施例。为了简单起见,已省略了以上参考图2已描述的移动性管理系统200的一些组件。图3中描绘的系统300的架构在许多方面与上面参考图2描述的系统200的架构相似,并且可以包括上面未提及的附加特征。

在这种情况下,左侧代表具有客户机代理304的注册客户机装置302,其与网关服务器306交互以访问各种企业资源308和服务309,例如Web或SaaS应用、Exchange、Sharepoint、公钥基础设施(PKI)资源、Kerberos资源、凭证发行服务,如右上方所示。网关服务器306可以包括云服务的特征和功能的实施例,例如访问网关260和应用控制器功能。尽管未具体示出,客户机代理304可以是客户机应用的一部分和/或与客户机应用交互,该客户机应用可以作为企业应用商店(店面)操作以选择和/或下载网络应用。

客户机代理304可以充当托管在企业数据中心中的Windows app/桌面的UI(用户界面)中间装置,其使用高清晰度用户体验(HDX)或独立计算架构(ICA)显示远程协议来访问。客户机代理304还可支持客户机装置302上的本机应用(例如本机iOS或Android应用)的安装和管理。例如,上图中所示的受管理应用310(邮件、浏览器、包装的应用)是在装置上本地执行的本机应用。该架构的客户机代理304和应用管理框架用于向企业资源/服务308提供策略驱动的管理能力和特征,诸如连接性和SSO(单点登录)。客户机代理304利用至其它网关服务器组件的SSO来处理向企业(例如向访问网关(AG))的主要用户认证。客户机代理304从网关服务器306获得策略以控制客户机装置302上的受管理应用310的行为。

本机应用310与客户机代理304之间的安全进程间通信(IPC)链路312代表管理通道,该管理通道允许客户机代理提供由应用管理框架314“包装”每个应用实施的策略。IPC通道312还允许客户机代理304提供使到企业资源308的连接性和SSO成为可能的凭证和认证信息。最终,IPC通道312允许应用管理框架314调用由客户机代理304实现的用户界面功能,例如在线和离线认证。

客户机代理304与网关服务器306之间的通信本质上是来自应用管理框架314的管理通道的扩展,该应用管理框架314包装了每个本机受管理的应用310。应用管理框架314从客户机代理304请求策略信息,客户机代理304又从网关服务器306请求策略信息。应用管理框架314请求认证,以及客户机代理304登录到网关服务器306(也被称为NetScaler访问网关)的网关服务部分。客户机代理304还可在网关服务器306上调用支持服务,其可产生输入材料以导出用于本地数据仓库316的加密密钥,或提供客户机凭证,该客户机凭证可使得能够对PKI保护的资源进行直接认证,如下文更充分地解释的。

更详细地,应用管理框架314“包装”每个受管理的应用310。这可以经由显式的构建步骤,或经由后构建处理步骤来合并。在首次启动应用310时,应用管理框架314可以与客户机代理304“配对”,以初始化安全IPC通道并获取该应用的策略。应用管理框架314可以实施在本地应用的策略的相关部分,例如客户机代理登录依赖性和一些包含策略,其限制了本地OS服务可以如何被使用,或者它们如何与应用310交互。

应用管理框架314可以使用客户机代理304通过安全IPC通道312提供的服务来促进认证和内部网络访问。专用和共享数据仓库316(容器)的密钥管理也可以通过受管理的应用310和客户机代理304之间的适当交互来管理。仓库316仅在在线认证之后才可用,或者,如果策略允许,可在离线认证后使其可用。仓库316的首次使用可能需要在线认证,并且在需要再次在线认证之前,离线访问最多可以限制为策略刷新期。

可直接从单个受管理的应用310通过访问网关306网络访问内部资源。应用管理框架314负责代表每个应用310协调网络访问。客户机代理304可以通过提供在在线认证之后获得的合适的时间有限的辅助凭证来促进这些网络连接。可以使用多种模式的网络连接,例如反向web代理连接和端到端VPN样式的隧道318。

邮件和浏览器管理的应用310可以具有特殊状态,并且可以利用对于任意包装的应用通常可能不可用的设施。例如,邮件应用可以使用特殊的后台网络访问机制,该机制允许它在延长的时间内访问Exchange,而无需完整的AG登录。浏览器应用可以使用多个专用数据仓库来隔离不同种类的数据。

该架构可以支持各种其他安全特征的合并。例如,在某些情况下,网关服务器306(包括其网关服务)可能不需要验证活动目录(AD)密码。企业可以自行决定是否将AD密码用作某些用户在某些情况下的认证因素。如果用户在线或离线(即,已连接或未连接到网络),则可以使用不同的认证方法。

逐步认证是一种特征,其中网关服务器306可以识别使用强认证来被允许访问更多敏感数据的受管理的本机应用310,并确保仅在执行适当的认证之后才允许访问这些应用,即使这意味着在先前较弱级别的登录之后,要求用户重新认证。

该解决方案的另一安全特征是对客户机装置302上的数据仓库316(容器)的加密。仓库316可以被加密,使得包括剪贴板/缓存数据、文件、数据库和配置在内的所有装置上的数据都受到保护。对于在线仓库,密钥可以存储在服务器(网关服务器306)上,对于离线仓库,密钥的本地副本可以通过用户密码或生物特征验证来保护。当数据被本地存储在装置302上的安全容器316中时,优选地,利用最低限度的AES 256加密算法。

还可以实现其他安全容器特征。例如,可以包括日志记录特征,其中记录在应用310内部发生的所有安全事件的日志并将其报告给后端。可以支持数据擦除,例如如果应用310检测到篡改,则可以用随机数据覆盖相关联的加密密钥,而不留下在文件系统上用户数据被破坏的提示。屏幕截图保护是另一个特征,应用可能会阻止任何数据存储在屏幕截图中。例如,可以将关键窗口的隐藏属性设置为YES。这可能会使得屏幕上当前显示的任何内容都被隐藏,从而产生空白屏幕截图,通常任何内容都将驻留在该屏幕截图上。

诸如通过防止任何数据在应用容器之外本地传输(例如通过将数据复制或发送至外部应用),可以防止本地数据传输。键盘高速缓存特征可操作来禁用敏感文本字段的自动更正功能。SSL凭证验证可能是可操作的,因此应用专门验证服务器SSL凭证,而不是将其存储在密钥链中。可以使用加密密钥生成特征,以便使用用户提供的密码或生物特征数据生成用于在装置上加密数据的密钥(如果需要离线访问)。如果不需要离线访问,可以将它与另一个随机生成的密钥进行异或并存储在服务器侧。密钥导出功能可以操作,使得从用户密码生成的密钥使用KDF(密钥导出功能,尤其是基于密码的密钥导出功能2(PBKDF2)),而不是为其创建密码散列。后者使密钥容易受到暴力破解或字典攻击。

此外,可以在加密方法中使用一个或多个初始化向量。初始化向量可以使得同一加密数据的多个副本产生不同的密文输出,从而防止重放和密码分析攻击。这也可以防止攻击者即使使用被盗的加密密钥也无法解密任何数据。此外,可以使用认证然后解密,其中仅在用户已经在应用内进行认证之后才对应用数据进行解密。另一个特征可以涉及在存储器中的敏感数据,仅当需要它时,它可以被保持在存储器中(而不是在磁盘上)。例如,登录凭证可能会在登录后从存储器中擦除,并且Objective-C实例变量中的加密密钥和其他数据不会被存储,因为它们很容易被引用。而是可以为这些手动分配存储器。

可以经由CEB实现非活动超时,其中,在策略定义的非活动时间段之后,终止用户会话。

可以以其他方式防止来自应用管理框架314的数据泄漏。例如,当将应用310置于后台时,可以在预定的(可配置的)时间段之后清除存储器。当置于后台时,可以对应用的最后显示的屏幕获取截图以加快前台操作进程。屏幕截图可能包含机密数据,因此应被清除。

另一安全特征涉及不使用用于访问一个或多个应用的AD(活动目录)322密码而使用OTP(一次性密码)320。在某些情况下,某些用户不知道(或不被允许知道)其AD密码,因此这些用户可以使用OTP 320进行认证,例如通过使用像SecurID这样的硬件OTP系统(OTP也可以由不同的供应商提供,例如Entrust或Gemalto)。在某些情况下,在用户使用用户ID进行认证之后,带有OTP 320的文本将被发送给用户。在某些情况下,只能将其实现为在线使用,提示是单个字段。

对于那些经由企业策略允许离线使用的应用310,可以实现离线密码以用于离线认证。例如,企业可能希望店面以这种方式被访问。在这种情况下,客户机代理304可以要求用户设置定制的离线密码并且不使用AD密码。网关服务器306可以提供策略来控制和执行有关密码的最小长度、字符类型组成和密码年龄的密码标准,例如标准Windows Server密码复杂性要求所描述的,尽管可以修改这些要求。

另一个特征涉及针对特定应用310的客户机侧凭证作为辅助凭证的启用(目的是经由应用管理框架微VPN特征访问PKI保护的web资源)。例如,应用可以利用这样的凭证。在这种情况下,可以支持使用ActiveSync协议的基于凭证的认证,其中来自客户机代理304的凭证可以由网关服务器306检索并在密钥链中使用。每个受管理应用可以具有一个关联的客户机凭证,该凭证由网关服务器306中定义的标签标识。

网关服务器306可以与企业专用web服务进行交互以支持客户机凭证的发行,以允许相关的受管理应用向内部PKI保护的资源进行认证。

客户机代理304和应用管理框架314可以被增强以支持获得和使用客户机凭证以向内部PKI保护的网络资源进行认证。可以支持多于一个凭证,例如以匹配各种级别的安全性和/或分离要求。凭证可由邮件和浏览器管理的应用使用,并最终由任意包装的应用使用(前提是那些应用使用web服务样式的通信模式,其中应用管理框架可以合理地居中调解https请求)。

iOS上的应用管理客户机凭证支持可能依赖于在每个使用时间段的每个受管理应用中的iOS密钥链中导入公钥加密标准(PKCS)12BLOB(二进制大对象)。应用管理框架客户机凭证支持可以使用具有私有内存密钥存储的HTTPS实施方式。客户机凭证可能永远不会存在于iOS密钥链中,也可能不会持久保留,除非可能存在于受到严格保护的“仅在线”数据值中。

也可以通过要求将客户机装置302向企业认证以提供附加的安全性实现相互SSL或TLS,反之亦然。也可以实现用于向网关服务器306进行认证的虚拟智能卡。

有限和完全的Kerberos支持都可以是附加特征。完全支持特征涉及使用AD密码或受信任的客户机凭证对活动目录(AD)322进行完全Kerberos登录,并获得Kerberos服务票证以响应HTTP协商认证挑战的能力。有限的支持特征涉及Citrix访问网关企业版(AGEE)中的约束委派,其中AGEE支持调用Kerberos协议转换,以便它可以响应于HTTP协商认证挑战,而获得和使用Kerberos服务票证(经受约束委派)。该机制在反向web代理(也称为公司虚拟专用网络(CVPN))模式中,以及在VPN和微VPN模式中http(但不是https)连接被代理时起作用。

另一特征涉及应用容器锁定和擦除,其可以在检测到越狱或获取超级权限时自动进行,并且作为来自管理控制台的推送命令而进行,并且即使在应用310未运行时也可以包括远程擦除功能。

可以支持企业应用商店的多站点架构或配置以及应用控制器,其允许用户在发生故障的情况下从多个不同位置之一进行服务。

在某些情况下,可以允许受管理应用310经由API(示例OpenSSL)访问凭证和私钥。可以允许企业的受信任的受管理应用310使用应用的客户机凭证和私钥来执行特定的公钥操作。例如,当应用的行为类似于浏览器并且不使用凭证访问时,当应用读取“我是谁”的凭证时,当应用使用凭证来建立安全会话令牌时,以及当应用使用私钥以进行重要数据(例如,事务日志)的数字签名或临时数据加密时,可以相应地识别和处理各种用例。

现在参考图4,描绘了嵌入式浏览器的系统400的框图。在简要概述中,该系统400可以包括具有用于用户的数字工作空间的客户机装置402、客户机应用404、在至少一个网络装置上432上操作的云服务408、以及从一个或多个服务器430服务的和/或托管在一个或多个服务器430上的网络应用406。客户机应用404可以例如包括以下中至少之一:嵌入式浏览器410、网络代理412、云服务代理414、远程会话代理416或安全容器418。云服务408可以例如包括在以下中至少之一:安全浏览器420、访问网关422(或CIS,例如,用于登记和/或认证客户机应用和/或用户)、或分析服务424(或CAS,例如,用于从客户机应用接收信息以进行分析)。网络应用406可以包括批准的应用426和未批准的应用428。

在一个或多个实施例中,上述元件或实体中的每一个以硬件、或硬件和软件的组合实现。系统400的每个组件可以使用以上结合图1详细描述的硬件或硬件或软件的组合来实现。例如,这些元件或实体的每一个可以包括任何应用、程序、库、脚本、任务、服务、进程或在客户机装置402、至少一个网络装置432和/或在一个或多个服务器430的硬件上执行的任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。例如,至少一个网络装置432和/或一个或多个服务器430可以包括以上结合至少例如图1描述的计算装置的任何元件。

客户机装置402可以包括以上结合至少例如图1描述的计算装置的任何实施例。客户机装置402可以包括任何用户装置,诸如台式计算机、膝上型计算机、平板装置、智能电话、或任何其他移动或个人装置。客户机装置402可以包括用户的数字工作空间,该用户的数字工作空间可以包括文件系统、高速缓存或存储器(例如,包括电子剪贴板)、容器、应用和/或客户机装置402上的其他资源。数字工作空间可以包括或扩展到客户机装置402可访问的一个或多个网络,诸如内联网和互联网,包括可经由一个或多个网络访问的文件系统和/或其他资源。例如,可以通过使用具有嵌入式浏览器410(CEB)的客户机应用404来保护数字工作空间的一部分。数字工作空间的安全部分可以包括例如文件系统、高速缓存或内存(例如,包括电子剪贴板)、应用、容器和/或分配给CEB、和/或由CEB分配给经由CEB访问的网络应用406的其他资源。数字工作空间的安全部分还可以包括由CEB(经由一个或多个策略)指定的用于包括在数字工作空间的安全部分的资源(例如,特定的本地应用可以经由策略被指定允许接收从网络应用获得的数据)。

客户机应用404可以包括一个或多个组件,诸如嵌入式浏览器410、网络代理412、云服务代理414(有时称为管理代理)、远程会话代理416(有时称为HDX引擎)和/或安全容器418(有时称为安全高速缓存容器)。例如,一个或多个组件可以作为客户机应用404或CEB的软件构建或发布的一部分进行安装,也可以单独获取或下载并安装/集成到客户机应用404或CEB的现有安装中。例如,客户机装置可以从网络装置432下载或以其他方式接收客户机应用404(或任何组件)。在一些实施例中,客户机装置可以将对客户机应用404的请求发送到网络装置432。例如,客户机装置的用户可以发起客户机应用的请求、下载和/或安装。网络装置432继而可发送客户机应用到客户机装置。在一些实施例中,网络装置432可以将用于客户机应用的设置或安装应用发送到客户机装置。在接收到时,客户机装置可以安装该客户机应用到客户机装置的硬盘上。在一些实施例中,客户机装置可以运行设置应用以打开或解压缩客户机应用的包。在一些实施例中,客户机应用可以是对安装在客户机装置上的另一个应用(例如,网络代理412)的扩展(例如,附加组件(add-on)、内插式附件(add-in)、小应用或插件(plug-in))。客户机装置可以安装客户机应用以与预安装的应用接口或互操作。在一些实施例中,客户机应用可以是独立应用。客户机装置可以安装客户机应用以作为单独的进程执行。

嵌入式浏览器410可以包括web浏览器应用或引擎的元件和功能。嵌入式浏览器410可以本地呈现网络应用作为客户机应用的组件或扩展。例如,嵌入式浏览器410可以在CEB内呈现SaaS/Web应用,这可以向CEB提供应用会话的完全的可视性和控制。嵌入式浏览器可以经由任何方式嵌入或合并到客户机应用中,例如直接集成(例如,编程语言或脚本插入)到客户机应用的可执行代码中,或经由插件安装。例如,嵌入式浏览器可以包括基于Chromium的浏览器引擎或其他类型的浏览器引擎,例如,可以使用Chromium嵌入式框架(CEF)将其嵌入到客户机应用中。嵌入式浏览器可以包括基于HTML5的布局图形用户界面(GUI)。嵌入式浏览器可以为合并了各种编程语言的客户机应用提供HTML呈现和JavaScript支持。例如,嵌入式浏览器的元件可以绑定到合并了C、C++、Delphi、Go、Java、.NET/Mono、Visual Basic 6.0和/或Python的客户机应用。

在一些实施例中,嵌入式浏览器包括安装在客户机应用上的插件。例如,插件可以包括一个或多个组件。一个这样的组件可以是ActiveX控件或Java控件,或者是能够加载到客户机应用中并在其中执行的任何其他类型和/或形式的可执行指令。例如,客户机应用可以加载和运行嵌入式浏览器的Active X控件,例如在客户机应用的存储空间或上下文中。在一些实施例中,嵌入式浏览器可以作为扩展安装在客户机应用上,并且用户可以选择启用或禁用插件或扩展。嵌入式浏览器(例如,经由插件或扩展)可以形成或操作为安全浏览器,用于保护、使用和/或访问数字工作空间的安全部分内的资源。

嵌入式浏览器可以合并超出标准或典型浏览器中的可用或可能的代码和功能。例如,嵌入式浏览器可以与安全容器418绑定或被分配给安全容器418,以定义用户数字工作空间的安全部分的至少一部分。嵌入式浏览器可以与客户机装置的高速缓存的一部分绑定或被分配给客户机装置的高速缓存的一部分,以形成安全剪贴板(例如,客户机装置本地或可扩展到其他装置),该剪贴板可以是安全容器418的至少一部分。嵌入式浏览器可以与客户机应用集成,以确保与网络应用相关的流量通过客户机应用路由和/或在客户机应用中进行处理,这可以为客户机应用提供流量的实时可见性(例如,当通过客户机应用解密时)。对流量的这种可见性可以允许客户机应用执行或促进基于策略的管理(例如,包括数据丢失防护(DLP)能力)、应用控制、以及分析的收集和产生。

在一些实施例中,嵌入式浏览器合并了客户机应用404的一个或多个其他组件,诸如云服务代理414、远程会话代理416和/或安全容器418。例如,用户可以使用嵌入式浏览器的云服务代理414与访问网关422(有时称为CIS)互操作以访问网络应用。例如,云服务代理414可以在嵌入式浏览器内执行,并且可以从嵌入式浏览器接收导航命令并将其发送到托管网络应用。云服务代理可以使用远程呈现协议将由网络应用生成的输出显示到嵌入式浏览器。例如,云服务代理414可以包括HTML5 Web客户机,其允许最终用户访问嵌入式浏览器上的远程桌面和/或应用。

客户机应用404和CEB在客户机装置的操作(OSI)栈的应用层上操作。客户机应用404可以包括和/或执行与云服务408互操作的一个或多个代理。客户机应用404可以接收、获得、检索或以其他方式访问各种策略(例如,企业的定制、指定或内部策略或规则)和/或数据(例如,来自云服务408的访问网关422和/或网络装置、或可以由企业管理的其他服务器)。客户机应用可以访问策略和/或数据以控制和/或管理网络应用(例如,SaaS、web或远程托管的应用)。网络应用的控制和/或管理可以包括网络应用的各个方面的控制和/或管理,例如访问控制、会话输送、可用特征或功能、服务级别、流量管理和监测等等。网络应用可以来自企业的提供者或供应商(例如,salesforce.com、SAP、Microsoft Office 365),来自企业本身或来自另一个实体(例如,Dropbox或Gmail服务)。

例如,云服务代理414可以提供与网络应用的使用和/或访问有关的策略驱动的管理能力和特征。例如,云服务代理414可以包括策略引擎,以应用(例如,从云服务接收到的)一个或多个策略来确定对诸如网络应用的资源的访问控制和/或连接性。例如,当在客户机应用和提供SaaS应用的服务器430之间建立会话时,云服务代理414可以应用一个或多个策略来控制会话的流量级别和/或流量类型(或其他方面),例如来管理SaaS应用的服务级别。可以控制或管理的应用流量的其他方面可以包括:应用于流量的加密级别和/或加密类型、对于用户所允许的交互级别、对网络应用的某些功能(例如打印屏幕、保存、编辑或复制功能)的受限访问、对使用或传输从网络应用获得的数据的限制、限制对两个或更多个网络应用的并发访问、限制对某些文件存储库或其他资源的访问等等。

云服务代理414可传达或馈送信息至云服务408的分析服务424,例如对CEB可见的有关SaaS交互事件的信息。使用CEB的这种配置可以监测或捕获信息以进行分析,而无需在客户机装置和服务器430之间放置内联装置或代理,也无需使用SaaS API网关“带外”方法。在一些实施例中,云服务代理414不在嵌入式浏览器内执行。在这些实施例中,用户可以类似地使用云服务代理414来与访问网关(或CIS)422互操作以访问网络应用。例如,云服务代理414可以向访问网关(或CIS)422注册和/或认证,并且可以从访问网关(或CIS)422获得网络应用的列表。云服务代理414可以包括和/或作为应用商店(或店面)进行操作,以供用户选择和/或下载网络应用。当登录以访问网络应用时,云服务代理414可以从嵌入式浏览器拦截和传送导航命令到网络应用。云服务代理可以使用远程呈现协议将由网络应用生成的输出显示到嵌入式浏览器。例如,云服务代理414可以包括HTML5 web客户机,其允许最终用户访问嵌入式浏览器上的远程桌面和/或应用。

在一些实施例中,云服务代理414为用户和/或客户机装置提供单点登录(SSO)能力以访问多个网络应用。云服务代理414可以例如通过与访问网关422通信,来执行用户认证以访问网络应用以及其他网络资源和服务。例如,云服务代理414可以认证或向访问网关422注册,以访问云服务408和/或网络应用406的其他组件。响应于认证或注册,访问网关422可以为(或代表)用户和/或客户机应用向网络应用执行认证和/或SSO。

客户机应用404可以包括网络代理412。网络代理412有时被称为软件定义的广域网(SD-WAN)代理、mVPN代理或微VPN代理。该网络代理412可以建立或促进建立客户机应用和一个或多个资源(例如,服务于网络应用的服务器430)之间的网络连接。网络代理412可以为来自客户机应用的请求的连接执行握手,以访问网络应用,并且可以建立请求的连接(例如,安全或加密的连接)。网络代理412可以例如经由虚拟专用网络(VPN)连接到企业资源(包括服务)。例如,网络代理412可以建立客户机应用和提供网络应用406的服务器430之间的安全套接字层(SSL)VPN。VPN连接,有时也被称为微VPN或应用专用VPN,可能特定于特定的网络应用、特定的装置、客户机装置上的特定的安全区域等,例如上面结合图3所讨论的。作为某些示例,这样的VPN连接可以承载Microsoft Exchange流量、Microsoft ActiveDirectory流量、超文本传输协议(HTTP)流量、安全超文本传输协议(HTTPS)流量。

远程会话代理416(有时被称为HDX引擎)可包括上文结合图2所讨论的客户机代理304的特征,例如,以支持显示远程协议(例如,HDX或ICA)。在一些实施例中,远程会话代理416可以根据诸如远程桌面协议(RDP)、设备链接协议(ALP)、远程帧缓冲(RFB)协议和ICA协议的任何各种协议建立远程桌面会话和/或远程应用会话。例如,远程会话代理416可以为客户机装置的用户建立远程应用会话以访问企业网络应用。远程会话代理416可以例如在由网络代理412建立的安全连接(例如,VPN)之内或之上建立远程应用会话。

客户机应用或CEB可以包括安全容器418或与安全容器418相关联。安全容器可以包括在客户机装置内的可访问和/或由客户机装置可访问的一种或多种类型的资源的逻辑或虚拟描述。例如,安全容器418可以指数字工作空间的整个安全部分,或安全部分的特定方面。在一些实施例中,安全容器418对应于安全高速缓存(例如,电子或虚拟剪贴板),并且可以动态地合并用户的每个客户机装置的本地高速缓存的一部分,和/或受保护或安全(例如,加密)的用户的基于云的高速缓存。安全容器可以定义文件系统的一部分,和/或描绘分配给CEB和/或经由CEB访问的网络应用的资源。安全容器可以包括例如以上结合图2讨论的安全数据容器228的元件。CEB可以被配置为(例如,经由策略)限制、禁止或禁用识别为在安全容器内的资源和/或数据上的某些动作或活动。安全容器可以被定义以指定安全容器内的资源和/或数据对于误用、滥用和/或泄漏进行监测。

在某些实施例中,安全容器与实现各种企业安全特征的安全浏览器(例如,嵌入式浏览器410或安全浏览器420)的使用有关或涉及其使用。被配置为在安全浏览器内运行的网络应用(或由安全浏览器访问的网页)可以有效地继承由安全浏览器实现的安全机制。这些网络应用可以被视为包含在安全容器内。使用这种安全浏览器可以使企业实施内容过滤策略,例如,其中员工被阻止从其客户机装置访问特定网站。例如,可以使用安全浏览器来使客户机装置用户无需VPN即可访问公司内部网络。

在一些实施例中,安全容器可以支持用于保护企业资源的各种类型的补救措施。一种这样的补救措施是锁住客户机装置、或客户机装置上存储要保护的数据的安全容器,以使得客户机装置或安全容器只能用例如管理员提供的有效密码来解锁。在一些实施例中,这些和其他类型的补救措施可以基于在客户机装置上检测到的条件而自动调用(例如,经由策略的应用),或者可以由管理员远程启动。

在一些实施例中,安全容器可以包括用于文档的安全文档容器。文档可以包括任何计算机可读文件,其包括文本、音频、视频和/或其他类型的信息或媒体。文档可以包括这些媒体类型中的任何单独一个或组合。如本文所解释的,安全容器可以帮助防止企业信息向客户机装置的不同应用和组件以及向其他装置传播。企业系统(可以部分或全部在云网络内)可以将文档传输到各种装置,这些装置可以被存储在安全容器中。安全容器可以防止客户机装置的未授权的应用和其他组件访问安全容器内的信息。对于允许用户使用自己的客户机装置访问、存储和使用企业数据的企业,在客户机装置上提供安全容器有助于保护企业数据。例如,在客户机装置上提供安全容器可以在每个客户机装置上的一个位置集中企业数据,并且可以促进在需要时,从每个客户机装置对企业数据的选择性的或完全的删除。

安全容器可以包括实现存储文档和/或其他类型的文件的文件系统的应用。文件系统可以包括客户机装置的计算机可读存储器的一部分。文件系统可以在逻辑上与客户机装置的计算机可读存储器的其他部分分离。以这种方式,例如,企业数据可以被存储在安全容器中,并且私有数据可以被存储在客户机装置的计算机可读存储器的单独部分中。该安全容器可以允许CEB、经由CEB访问的网络应用、本地安装的应用和/或客户机装置的其他组件从文件系统中读取、写入和/或删除信息(如果被授权这样做)。从安全容器删除数据可以包括:删除存储在安全容器中的实际数据,删除指向存储在安全容器中的数据的指针,删除用于解密存储在安全容器中的数据的加密密钥,等等。该安全容器可以由例如客户机应用、管理员或客户机装置制造商安装。安全容器可以使得删除存储在文件系统中的部分或全部企业数据,而无需修改存储在安全容器外部的客户机装置上的私有数据。文件系统可以促进从文件系统中选择性或完全地删除数据。例如,企业系统的授权组件可以基于例如编码规则从文件系统中删除数据。在一些实施例中,客户机应用可以响应于从企业系统接收删除命令,从文件系统中删除数据。

安全容器可以包括访问管理器,该访问管理器管理客户机装置的应用和其他组件对文件系统的访问。可以基于在文档和/或在文件系统中由客户机应用维持的文档访问策略(例如,编码规则),管理对文件系统的访问。文档访问策略可以基于以下限制对文件系统的访问:(1)客户机装置的哪个应用或其他组件正在请求访问,(2)正在请求哪些文档,(3)时间或日期,(4)客户机装置的地理位置,(5)请求的应用或其他组件是否提供了正确的证书或凭证,(6)客户机装置的用户是否提供正确的凭证,(7)其他条件,或它们的任何组合。用户的凭证可以包括例如密码、安全性问题(例如,您的高中的吉祥物是什么?)的一个或多个答案、生物特征信息(例如,指纹扫描、眼球扫描)等。因此,通过使用访问管理器,可以将安全容器配置为仅由被授权访问安全容器的应用访问。作为一个示例,访问管理器可以使安装在客户机装置上的企业应用能够访问存储在安全容器中的数据,并防止非企业应用访问存储在安全容器中的数据。

对文档访问的时间和地理限制可能是有用的。例如,管理员可以部署文档访问策略,该文档访问策略将文档(存储在安全容器中)的可用性限制到指定的时间窗口和/或客户机装置在其中必须驻留才能访问文档的地理区域(例如,由GPS芯片确定)。此外,文档访问策略可以指示安全容器或客户机应用从安全容器中删除文档,或者在指定的时间段到期时或在客户机装置被带到定义的地理区域之外的情况下,使文档不可用。

一些文档可以具有禁止该文档在安全容器内被保存的访问策略。在这样的实施例中,仅当用户例如经由云服务登录或认证时,文档才可用于在客户机装置上查看。

访问管理器还可以被配置为在远程装置(例如,企业资源或其他企业服务器)和安全容器之间实施某些连接模式。例如,访问管理器可以要求由安全容器从远程装置接收的文档和/或从安全容器发送到远程装置的文档例如通过安全隧道/连接进行传输。访问管理器可以要求对发送到安全容器和从安全容器发送的所有文档进行加密。该客户机应用或访问管理器可以被配置为加密从安全容器发送的文档以及解密发送到安全容器的文档。安全容器中的文档也可以加密形式存储。

安全容器可以被配置为防止客户机装置或其他装置的未授权应用或组件使用文档或文档包括的数据或安全容器。例如,可以对有权从安全容器访问文档的客户机装置应用进行编程,以防止用户复制文档数据并将其粘贴到另一个文件或应用界面中,或者在本地在安全容器之外将文档或文档数据保存为新文件。类似地,安全容器可以包括文档查看器和/或编辑器,其不允许这样的复制/粘贴和本地保存操作。此外,可以将访问管理器配置为防止这种复制/粘贴和本地保存操作。此外,安全容器和被编程并授权从安全容器访问文档的应用可以被配置为防止用户将这种文档附加到电子邮件或其他形式的通信中。

一个或多个应用(例如,安装在客户机装置上的应用,和/或经由CEB访问的网络应用)可以被编程或控制(例如,经由基于策略的实施)以将企业相关的数据仅写入安全容器中。例如,可以为应用的源代码提供安全容器的资源名称。类似地,远程应用(例如,在除客户机装置以外的装置上执行)可以被配置为将数据或文档仅发送到安全容器(而不是客户机装置的其他组件或存储器位置)。将数据存储到安全容器可以自动地进行,例如,在应用、客户机应用、和/或安全浏览器的控制下。可以对客户机应用进行编程,以对存储在安全容器中或将要存储在安全容器中的文档进行加密或解密。在某些实施例中,安全容器只能由这种应用(在客户机装置或远程装置上)使用:被编程为识别和使用安全容器的应用,并且该应用具有授权这样做。

网络应用406可以包括批准的网络应用426和未批准的网络应用428。通过非限制性示例的方式,批准的网络应用426可以包括来自Workday、Salesforce、Office 365、SAP等的网络应用,而未批准的网络应用426可以包括来自Dropbox、Gmail等的网络应用。例如,图4示出了经由CEB访问批准的应用426的情况。在操作(1)中,安装在客户机装置402上的客户机应用404的用户实例可以向云服务408的访问网关422注册或认证。例如,用户可以向客户机装置402认证该用户,并登录到客户机装置402。客户机应用可以自动执行或由用户激活。在一些实施例中,用户可以在客户机应用签到(例如,通过向客户机应用认证用户)。响应于登录或签到,客户机应用可以向访问网关422注册或认证用户和/或客户机应用。

在操作(2)中,响应于注册或认证,访问网关422可以识别或检索可用的或预分配给用户的列举的网络应用的列表,并且可以将该列表提供给客户机应用。例如,响应于注册或认证,访问网关可以识别用户和/或检索用户的用户简档。根据身份和/或用户简档,访问网关可以确定列表(例如,检索与用户简档和/或用户身份匹配的网络应用的存储的列表)。该列表可以对应于为用户批准的网络应用的列表。访问网关可以将列表发送到客户机应用或嵌入式浏览器,该列表可以经由客户机应用或嵌入式浏览器呈现给用户(例如,在店面用户界面中)以供选择。

在操作(3)中,用户可以通过从呈现给用户的网络应用列表中进行选择,来启动与批准的网络应用(例如SaaS应用)的连接。例如,用户可以点击经由客户机应用或者嵌入式浏览器显示的批准的网络应用的图标或其他表示。该用户动作可以触发CEB向配置网络应用的服务器发送连接或访问请求。该请求可以包括对服务器(例如,SaaS提供者)的请求,以与访问网关进行通信以认证用户。例如,服务器可以向访问网关发送请求以认证用户。

在操作(4)中,访问网关可以与服务器执行SSO,以认证用户。例如,响应于服务器对用户进行认证的请求,访问网关可以向用于SSO的服务器430提供用户的凭证,以访问所选择的网络应用和/或其他批准的网络应用。在操作(5)中,用户可以基于SSO(例如,使用凭证)登录到所选择的网络应用。客户机应用(例如,网络代理412和/或远程会话代理416)可以与服务器430建立安全连接和会话以访问所选择的网络应用。CEB可以解密经由安全连接接收到的应用流量。CEB可以监测经由CEB和到服务器430的安全连接发送的流量。

在操作(6)中,客户机应用可以将信息提供给云服务408的分析服务424,以进行分析处理。例如,客户机应用404的云服务代理414可以监测或捕获与所选择的网络应用的用户交互事件。云服务代理414可以将用户交互事件传达到分析服务424,以进行处理以产生分析。

图5描绘了用于使用安全浏览器的系统的示例实施例。在简要概述中,该系统包括云服务408、网络应用406和客户机装置402。在一些实施例中,系统的各种元件类似于以上针对图4所描述的元件,但是客户机应用(具有嵌入式浏览器)在客户机装置402中不可用。标准或典型的浏览器在客户机装置上可能是可用的,例如,用户可以从该浏览器发起访问批准的网络应用的请求。可以经由可由管理员设置或自动设置的策略(例如,经由人工智能)将网络应用指定为批准的或未批准的。

例如,在操作(1)中,用户可以使用标准浏览器登录到网络应用。为了访问批准的网络应用,用户可以经由标准浏览器访问预定义URL和/或配置网络应用的服务器的相应网页,以发起访问网络应用的请求。在一些实施例中,请求可以被转发到指定的网关服务或被指定的网关服务拦截(例如,在该请求的数据路径中)。例如,网关服务可以驻留在客户机装置上(例如,作为可执行程序),或者可以驻留在例如云服务408的网络装置432上。在一些实施例中,访问网关可以对应于或包括网关服务。网关服务可以确定所请求的网络应用是否为批准的网络应用。网关服务可以确定CEB是否发起了请求。该网关服务可以检测或以其他方式确定该请求是从在客户机装置中的非CEB的源发起的(例如,通过标准的浏览器发起的)。在一些实施例中,不需要指定的网关服务来检测或确定该请求是否从CEB发起,例如如果所请求的网络应用是批准的,该用户正在通过标准浏览器发起该请求,和/或被访问的是预定义的URL和/或相应网页。

在操作(2)中,服务器可以经由云服务408的访问网关对用户进行认证。服务器可以响应于请求,与访问网关进行通信以对用户进行认证。例如,该请求可以包括服务器与访问网关进行通信以认证用户的指示。在一些实施例中,服务器被预配置为与访问网关通信以认证用户,用于访问批准的网络应用的请求。服务器可以向访问网关发送请求以认证用户。响应于服务器认证用户的请求,访问网关可以将用户的凭证提供给服务器430。

在操作(3)中,网关服务和/或服务器可以定向(或重定向)所有流量到安全浏览器420,其提供安全浏览服务。这可以响应于以下中至少之一:确定所请求的网络应用是批准的网络应用,确定从非CEB的源发起该请求,确定所请求的网络应用是批准的,确定用户正在经由标准浏览器发起请求,和/或确定访问预定义的URL和/或相应的网页。

可以将用户的URL会话重定向到安全浏览器。例如,服务器、网关服务和/或访问网关可以响应于该确定,生成和/或发送URL重定向消息至标准浏览器。标准浏览器的安全浏览器插件可以接收URL重定向消息,并且可以例如向安全浏览器420发送访问未批准的网络应用的请求。安全浏览器420可以将请求定向到未批准的网络应用的服务器。URL重定向消息可以指示标准浏览器(和/或安全浏览器插件)将来自标准浏览器的流量(例如,发往网络应用)定向至托管在网络装置上的安全浏览器420。这可以经由动态路由通过安全浏览器服务提供无客户机访问和控制。在一些实施例中,在与服务器(例如,使用SSO)执行用户的认证之前,所有流量至安全浏览器420的重定向被启动或被配置。

在一些实施例中,网关服务可以定向或请求所请求的网络应用的服务器与安全浏览器420通信。例如,网关服务可以定向服务器和/或安全浏览器在服务器和安全浏览器之间建立安全连接,以建立用于网络应用的应用会话。

在一些实施例中,安全浏览器420包括托管在云服务408的网络装置432上的浏览器。安全浏览器420可以包括以上至少结合例如图4描述的安全浏览器420的一个或多个特征。所托管的浏览器可以包括CEB的嵌入式浏览器,其在网络装置432上托管,而不是在客户机装置上。所托管的浏览器可以包括托管在网络装置432上的CEB的托管虚拟化版本的嵌入式浏览器。与安装在客户机装置上的CEB类似,流量通过网络装置上托管的CEB路由,这允许管理员具有对通过CEB的流量的可视性,并保留对安全策略控制、分析和/或性能管理的控制。

图6示出了用于使用安全浏览器插件的浏览器重定向的示例实现。在简要概述中,该实施方式包括具有在客户机装置上操作的安全浏览器插件516的web浏览器512、以及驻留在网络装置上的托管的web浏览器(或安全浏览器)522。web浏览器512可以对应于标准浏览器,而不是如上面结合例如图4所讨论的嵌入式浏览器。安全浏览器插件516可在第一网络510内执行并访问在第二网络530中的服务器430。第一网络510和第二网络530是出于说明的目的,并且可以用更少或更多的计算机网络代替。安全浏览器插件516可以安装在标准浏览器512上。插件可以包括一个或多个组件。一个这样的组件可以包括ActiveX控件或Java控件或能够加载到标准浏览器中并在其中执行的任何其他类型和/或形式的可执行指令。例如,标准浏览器可以在标准浏览器的存储空间或上下文中,加载并运行安全浏览器插件516的Active X控件。在一些实施例中,安全浏览器插件可以作为扩展安装在标准浏览器上,并且用户可以选择启用或禁用该插件或扩展。安全浏览器插件可以进行与安全浏览器420通信和/或操作,以保护、使用和/或访问数字工作空间的安全部分内的资源。

通过使用在标准浏览器512内操作的安全浏览器插件516,经由标准浏览器512访问的网络应用可以被重定向到托管的安全浏览器。例如,安全浏览器插件516可以被实现和/或设计为检测网络应用正在经由标准浏览器访问,并且可以定向/重定向与网络应用相关联的来自客户机装置的流量至托管的安全浏览器。托管的安全浏览器可以将从网络应用接收的流量定向到安全浏览器插件516和/或客户机代理514,以例如进行呈现和/或显示。客户机代理514可以在web浏览器512和/或安全浏览器插件内执行,并且可以包括以上结合至少例如图4讨论的客户机应用404的特定元件或特征。例如,客户机代理514可以包括用于在web浏览器512处呈现网络应用的远程会话代理416。在一些实施例中,在托管的安全浏览器处呈现网络应用,并且所呈现的数据被传送或镜像到安全浏览器插件516和/或客户机代理514以进行处理和/或显示。

通过示例的方式,用户可能正在远程工作并且可能想要访问网络应用,该网络应用是在安全的企业网络的内部,而用户正在连接到不安全网络的计算装置上工作。在这种情况下,用户可以利用在第一网络510中执行的标准浏览器512,其中第一网络510可以包括不安全的网络。用户想要访问的服务器430可能在第二网络530上,其中第二网络530包含例如安全的企业网络。用户可能无法通过点击安全网站532的内部统一记录定位符(URL)从不安全的第一网络510访问服务器430。即,用户在从外部不安全网络510执行标准浏览器512时,可能需要利用不同的URL(例如,外部URL)。外部URL可以被定向到,或者可以寻址被配置成在第二网络530(例如,安全网络)内访问服务器430的一个或多个托管的web浏览器522。为了保持安全访问,安全浏览器插件516可以将内部URL重定向到托管的安全浏览器的外部URL。

安全浏览器插件516能够实现网络检测,以便识别是否将内部URL重定向到外部URL。标准浏览器512可以接收包括在安全网络内执行的网站的内部URL的请求。例如,标准浏览器512可以接收响应于用户在标准浏览器中输入web网址(例如,用于安全网站532)的请求。安全浏览器插件516可以将用户web浏览器应用512从内部的URL重定向到托管的web浏览器应用的外部的URL。例如,安全浏览器插件516可以用在安全网络530内执行的托管的web浏览器应用522的外部URL替换内部URL。

安全浏览器插件516可以允许将客户机代理514连接到托管的web浏览器应用522。客户机代理514可以包括插件组件,例如ActiveX控件或Java控件或能够加载到标准浏览器512中并在其中执行的任何其他类型和/或形式的可执行指令。例如,客户机代理514可以包括由标准浏览器512加载和运行的ActiveX控件,诸如在用户web浏览器应用512的存储空间或上下文中。客户机代理514可以被预配置为在用户web浏览器应用512内呈现托管的web浏览器应用522的内容。

客户机代理514可以连接到服务器或云/托管的web浏览器服务520,其使用瘦客户机或远程显示协议来呈现由在服务520上执行的托管的web浏览器应用522生成的显示输出。瘦客户机或远程显示协议可以是以下协议的非穷举列表中的任何一个:由佛罗里达州劳德代尔的思杰系统公司开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙德的微软公司制造的远程桌面协议(RDP)。

托管的web浏览器应用522可以在全屏模式中导航到所请求的网络应用,并且可以呈现所请求的网络应用。客户机代理514可以例如基于正在以全屏模式显示的内容以无缝和透明的方式呈现web浏览器应用512上的网络应用的内容或重现,使得看起来该内容正被标准浏览器512显示。换句话说,可以给用户的印象是网站内容是由用户web浏览器应用512而不是由托管的web浏览器应用522显示的。客户机代理514可以使用瘦客户机或远程显示协议,将由用户web浏览器应用512生成的导航命令发送到托管的web浏览器应用522。由于导航命令对托管的web浏览器应用522的显示输出的改变,可以由客户机代理514反映在用户web浏览器应用512中,从而给用户印象:导航命令是由用户web浏览器应用512执行的。

再次参考图5,在操作(4)中,可以在标准浏览器上打开新的浏览器选项卡,以呈现或显示安全浏览器会话。例如,可以通过安全浏览器插件建立或打开新的浏览器选项卡。安全浏览器插件和/或客户机代理可以从安全浏览器会话接收数据,并且可以如以上结合例如图6所讨论的那样在新的浏览器选项卡内呈现网络应用。

在操作(5)中,安全浏览器可以将经由网络应用的所有用户交互事件馈送回分析服务以进行处理。安全的浏览器插件可以在浏览器选项卡内监测并拦截定向到网络应用的重现的任何用户交互事件。因此,用户可以使用本机(或标准)的浏览器访问网络应用,同时经由云服务和安全浏览器的互操作(在没有客户机应用的情况下),允许对网络应用的流量的可见性。

图7描绘了使用安全浏览器的系统的另一个示例性实施例。在简要概述中,该系统包括云服务408、网络应用406和客户机装置402。在一些实施例中,系统的各种元件与以上针对图5描述的元件相似。在客户机装置402中,具有嵌入式浏览器的客户机应用不可用。在客户机装置上,标准的或典型的(例如,HTML5)浏览器是可用的,用户可以从其发起访问未批准的网络应用的请求。可以经由可由管理员设置或自动设置的策略(例如,经由人工智能)将网络应用指定为批准的或未批准的。

在操作(1)中,用户可以尝试使用标准浏览器登录到未批准的网络应用。用户可以尝试访问配置该网络应用的服务器的网页,并发起访问该网络应用的请求。在一些实施例中,请求可以被转发到指定的网关服务或被指定的网关服务拦截(例如,在请求的数据路径中)。例如,网关服务(有时称为SWG)可以驻留在客户机装置上(例如,作为可执行程序),或者可以驻留在例如云服务408的网络装置432上。网关服务可以检测或以其他方式确定所请求的网络应用是否为批准的网络应用。网关服务可以确定CEB是否发起了请求。网关服务可以检测或以其他方式确定该请求是从客户机装置中除CEB之外的源发起的(例如,由标准浏览器发起的)。

在操作(2)中,网关服务检测到所请求的网络应用是未批准的网络应用。网关服务可以例如从请求中提取信息(例如,目的地址、所请求的网络应用的名称),并将该信息与来自批准和/或未批准的网络应用的数据库的信息进行比较。网关服务可以基于比较确定所请求的网络应用是未批准的网络应用。

在操作(3)中,响应于该确定,网关服务可以阻止对所请求的网络应用的访问,例如通过阻止请求。响应于该确定,网关服务可以生成和/或发送URL重定向消息至标准浏览器。URL重定向消息可以类似于图5中操作(3)中从服务器发送到标准浏览器的URL重定向消息。标准浏览器的安全浏览器插件可接收URL重定向消息,并且可以例如向安全浏览器420发送访问未批准的网络应用的请求。安全浏览器420可以将请求定向到未批准的网络应用的服务器。

未批准的网络应用的服务器可以例如响应于从安全浏览器接收到请求,经由云服务408的访问网关来认证用户。响应于该请求,服务器可以与访问网关通信以认证用户。服务器可以向访问网关发送认证用户的请求。响应于服务器对用户进行认证的请求,访问网关可以向服务器430提供用户的凭证。在认证时,安全浏览器(或相应的CEB)可以与服务器建立安全连接和应用会话。

在操作(4)中,可以在标准浏览器上打开新的浏览器选项卡,以呈现或显示安全浏览器的应用会话。例如,可以由安全浏览器插件建立或打开新的浏览器选项卡。安全浏览器插件和/或客户机代理可以从安全浏览器会话接收数据,并且可以在新的浏览器选项卡内呈现网络应用,如以上结合例如图5-6所讨论的。

在操作(5)中,安全浏览器可以经由网络应用将所有用户交互事件馈送回分析服务以进行处理。安全浏览器插件可以在浏览器选项卡内监测并拦截任何涉及网络应用重现的用户交互事件。因此,用户可以使用本机(或标准)浏览器访问网络应用,同时允许经由云服务和安全浏览器(在没有客户机应用的情况下)的互操作的对于网络应用的流量的可见性。

在某些实施例中,在CEB在客户机装置上不存在或不可用的情况下,执行浏览器重定向,使得经由用于处理的相应的托管安全浏览器(或托管CEB)访问每个请求的网络应用,而不是将所有流量重定向通过单个托管的安全浏览器(或托管的CEB)。每个专用的安全浏览器都可以提供分区功能并提高安全性。

CEB的使用,无论是托管的还是客户机装置本地的,都可以允许应用流量的端到端可见性以进行分析、服务水平协议(SLA)、资源利用、审计等。除了这种可见性,CEB可以配置有用于管理和控制任何这些方面以及其他方面的策略。例如,可以支持DLP特征以控制“复制和粘贴”活动、文件下载、文件共享以及例如实施水印。作为另一个示例,CEB可以配置有用于管理和控制对本地驱动器和/或装置资源(例如外围装置)的访问的策略。

现在参考图8,描绘了用于使用本地嵌入式浏览器和托管安全浏览器的系统的示例实施例。示出了环境,其中可以使用不同类型的客户机装置402A、402B(例如,在BYOD环境中),使得一个客户机装置可以在本地配备有合适的CEB,而另一客户机装置可能没有安装合适的本地CEB。在这样的环境中,可以使用图4、5和7中描述的系统,以基于本地安装的合适CEB的可用性支持客户机装置中的每一个。

图9描绘了用于使用本地嵌入式浏览器和托管安全浏览器的示例处理流程。该处理流程可以在以上图8中描述的环境中使用,以确定对于每个客户机装置访问网络应用应使用嵌入式浏览器还是托管的安全浏览器。例如,在操作901中,HTTP客户机可以尝试访问web服务(例如,网络应用的服务器)。在操作903中,web服务可以将HTTP客户机重定向到网关服务以进行认证。在操作905中,网关服务可以确定HTTP客户机是否为CEB。如果是这样,则在操作909中,网关服务可以确定CEB是否是合适的CEB,例如能够执行所定义的应用策略。如果是这样,则在操作911中,允许CEB访问web服务,并且可以执行所定义的策略。

如果网关服务确定该HTTP客户机不是CEB,则在操作907中,网关服务可使CEB的虚拟化版本被初始化并被托管在远程服务器(例如,云服务408的网络装置432)上。在一些实施例中,这样的托管CEB在网络装置432上可能已经可用,并且可以被选择使用。例如,在操作911中,CEB被允许访问web服务,并且可以执行所定义的策略。

如果网关服务确定HTTP客户机是CEB,但是该CEB不是合适的CEB,则在操作907中,网关服务可以使CEB的虚拟化版本被初始化并被托管在远程服务器(例如,云服务408的网络装置432)上。在一些实施例中,这样的托管CEB可能已经在网络装置432上可用,并且可以被选择使用。例如,在操作911中,CEB被允许访问web服务,并且可以执行所定义的策略。

在一些实施例中,如果用户正在请求访问位于公司数据中心中的web应用,则网关服务(在云服务中或在内部)可以在检测到具有CEB的客户机应用时允许访问。否则,可以将请求路由到具有CEB的托管虚拟化版本的服务,然后对访问进行认证和授权。

例如,在操作905和/或操作909中,关于HTTP客户机是否是CEB以及它是否是合适的CEB的决定可以由许多因素来确定。例如,为了确定HTTP客户机是否是CEB,该网关服务可以考虑例如包括以下中至少之一的因素:用户身份和认证的强度、客户机位置、客户机IP地址、用户身份被信任程度、客户机位置、客户机IP、客户机装置的越狱状态、反恶意软件状态、对客户机装置的企业策略的遵从、和/或客户机软件的完整性的远程证明或其他证据。

为了确定CEB能够兑现或支持所有定义的应用策略(这可以由于客户机版本、客户机OS平台和其他因素而变化),客户机装置的软件和网关服务可以执行能力协商和/或交换版本信息。在一些实施例中,网关服务可以查询或检查CEB的版本号或标识符,以确定CEB是否是要使用的合适的CEB。

驱动所有流量通过CEB,然后允许对访问基于SaaS和Web的系统的内容进行附加控制。SaaS和Web流量的数据丢失防护(DLP)可以通过CEB app来应用,其特征包括将对其他CEB访问应用或IT管理的装置的复制和粘贴控制。通过使内容只能在IT控制下下载到指定的文件服务器或服务,也可以执行DLP。

现在参考图10,描绘了用于管理用户对网页的访问的系统的示例实施例。某些网页(或网站)被认为是安全的,而另一些网页则可能是可疑的。用户可以通过标准浏览器经由相应的URL访问网页。例如,用户可以点击与URL相对应的链接,该链接可以包括在使用邮件应用正在查看的电子邮件中。访问网关(SWG)可以拦截通过点击链接而生成的访问请求,并且可以确定相应的URL是安全的还是可疑的。如果URL被认为是安全的,则访问网关可以允许请求继续进行至相应的网站或web服务器。如果该URL是可疑的,则访问网关可以重定向请求经由托管的安全浏览器处理。安全浏览器可以请求访问和访问网页(代表标准浏览器),并且可以允许将网页信息传送到标准浏览器,类似于经由浏览器重定向对网络应用的处理,如结合至少图7和5所讨论的。

本公开涉及用于输送网络应用的系统和方法。中间装置(在本文中有时称为Netscaler装置或网络设备)可以包括HDX引擎(在本文中也称为远程会话代理)。远程会话代理可以使用片上系统(或中间装置的其他处理器或计算装置)在中间装置处处理远程会话流量,以将托管的应用或桌面供应给客户机装置。就这一点而言,接收器应用(在本文中也称为客户机应用)可以接收并呈现处理后的远程会话流量,并且在客户机装置处呈现之前可能不必进一步处理或对处理后的远程会话流量进行解码。以类似的方式,可以在中间装置处处理或解码经由web、远程托管的或SaaS应用提供的内容。例如,处理后的内容可以对应于位图数据、原始音频数据、级联样式表(CSS)文件(或类似文件)等。可以将位图数据、原始音频数据、CSS文件等从中间装置传输到客户机装置以进行呈现(例如,无需进一步处理或解码)。

在一些情况下,客户机装置可以经由广域网(WAN)连接到中间装置。此外,中间装置可以经由局域网(LAN)连接到服务器。由于将流量从中间装置传输到客户机装置的距离和/或复杂性更大,因此在客户机装置处执行了很多流量处理,以管理或改善远程供应给客户机装置的网络应用的性能,如用户所体验的那样。例如,客户机装置可以解码并呈现各种远程托管的应用会话流量和web流量。由于客户机装置上的大量处理负载和繁重的工作,可能是本机的或托管在客户机装置上的应用可能会遇到性能下降的情况。客户机侧处理取决于不同类型或形式的客户机装置的特定处理能力,从而导致跨不同客户机装置(例如,对于同一网络应用)的不一致或变化的性能和用户体验。例如,在不同平台甚至浏览器之间(例如,对于web应用),用户体验可能会显著变化。

随着计算系统被转移到基于云的计算系统,前述配置可以被颠倒(例如,以具有在客户机装置和中间装置之间的LAN连接以及在中间装置和服务器之间的WAN连接)。在某些情况下,中间装置可以位于本地(例如,与客户机装置靠近或位于同一位置),并且虚拟输送代理(VDA)位于云中。在这些情况下,本系统和方法的实施例允许在中间装置处执行处理,因为在中间装置和VDA之间的优化需求可能更大。通过将(远程托管的会话流量和web编码数据的)处理转移到中间装置,中间装置可以将处理后的数据/流量传送到客户机装置,以进行最终呈现,而只需进行最少的处理或无需进行进一步的处理。

根据本文描述的实施例,网络装置(例如,网络打印机)可以从中间装置接收请求(例如,打印作业),根据当前的设计和实施方式,这是不容易实现的。例如,在中间装置处本地处理或解码了网络应用数据流量之后,中间装置可以将解码的数据直接传送到网络打印机以进行打印(例如,无需在网络打印机处进一步解码或处理)。相反,驻留在主机服务器(例如,托管网络应用)处的VDA可能不能将编码的流量(来自网络应用)引导到网络打印机以进行打印。

此外,图形解码能力在集中在中间装置上时可能变得更加一致,并且跨客户机装置平台的影响较小,因为中间装置处理解码并将最终输出提供给客户机装置以进行呈现。例如,可以在中间装置处执行音频和图形解码和/或优化(有时是呈现),并且可以将原始的(或优化的、质量更好的)音频和图形发送到客户机装置以进行呈现。在该方面,无论平台和客户机装置的类型如何,都向用户提供更好或更一致的音频/图形体验。而且,中间装置可以托管或执行安全浏览器,该安全浏览器例如为web或SaaS应用提供安全浏览器服务。因此,可能经由安全浏览器服务向用户提供潜在的不安全内容,否则在其他实施方式和配置中用户可能无法访问该内容。在一些实施例中,当用户将访问从一个客户机装置切换到另一客户机装置时,和/或当用户从网络应用的会话断开连接并重新连接到该网络应用的同一会话时,中间装置可以维持由客户机装置访问的网络应用的会话状态。

参考图11,描绘了用于输送网络应用的系统1100的一个实施例的框图。系统1100可以包括托管一个或多个网络应用1108的一个或多个服务器1102、执行客户机应用1116的客户机装置1104以及位于服务器1102和客户机装置1104之间的中间装置1106。中间装置1106可以包括用于在服务器1102和中间装置1106之间建立连接的网络代理1110。中间装置1106可以包括用于在托管在服务器1102上的网络应用1108和中间装置1106之间交换数据的远程会话代理1112。在某些情况下,可以对来自网络应用1108的数据进行编码。中间装置1106可以包括片上系统(SoC)1114,其可以对来自执行或以其他方式托管在服务器1102上的网络应用1108的编码的应用数据进行解码。网络代理1110可以与客户机装置1104建立连接。远程会话代理1112可以将解码的数据传送到客户机装置1104以在客户机应用1116内进行呈现。客户机装置1104可以在无需在客户机装置1104处(或之上/之内)进行进一步处理的情况下呈现解码的数据。

在一个或多个实施例中,以硬件或硬件和软件的组合来实现上述元件或实体中的每一个。系统1100的每个组件可以使用以上结合图1详细描述的硬件或硬件或软件的组合来实现。例如,这些元件或实体中的每一个可以包括在例如客户机装置1104、服务器1102和/或中间装置1106的硬件上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。

服务器1102可以执行、提供、供应和/或托管一个或多个网络应用1108。网络应用1108可以包括以上至少结合图2-5、7和8描述的任何类型或形式的网络应用406。服务器1102可以包括(例如,在图1中讨论的)易失性存储器122或非易失性存储器128的任何实施例,其可以存储网络应用1108,并且可以经由通信接口118与系统1100的其他各种组件通信。因此,在某些方面,服务器1102可以与参考图1描述的计算机101相似。客户机装置1104可以经由经由中间装置1106供应的网络应用的远程托管的会话来访问网络应用1108。

网络代理1110可以在服务器1102和中间装置1106之间建立网络连接。在一些实施例中,网络代理1110可以包括以上参考图4和图8描述的网络代理412的实施例的一个或多个元件。客户机装置1104可以(例如,经由图1中描绘的计算组件中的一个或多个)执行客户机应用1116,该客户机应用1116可以呈现来自网络应用1110的信息。客户机装置1104在某些方面可以类似于参考图4、5、7和8描述的客户机装置402。中间装置1106的远程会话代理1112可以从托管在服务器1102上/处的网络应用1108接收/检索应用数据。中间装置1106可以包括SoC 1114。SoC 1114可以被配置为对来自网络应用1108的数据进行解码,以经由客户机应用1112呈现在客户机装置1104上,如下所述。注意,尽管在中间装置1106内表示了网络代理1110和远程会话代理1112,但是在一些实施例中,网络代理1110和/或远程会话代理1112可以位于服务器1102处。在一些实施例中,系统1110可以包括与服务器1102和中间装置1106之间的网络连接相对应的网络代理和远程会话代理,以及与中间装置1106和客户机装置1104之间的网络连接相对应的网络代理和远程会话代理。

在一些实施例中,客户机应用1112可以包括以上至少结合图4和图8描述的客户机应用404的任何实施例的一个或多个元件。在一些实施例中,客户机应用1112可以包括嵌入式浏览器。具有嵌入式浏览器的客户机应用1112(CEB)可以包括以上至少结合图4和图8在之前描述的CEB的任何元件或实施例。在一些实施例中,客户机应用1112可以在由用户操作的客户机装置1104上执行。客户机装置1104可以包括以上至少结合图4、5、7和8描述的客户机装置402的任何实施例的一个或多个元件。

中间装置1106可以被设计或实现为与服务器1102上的网络应用1108建立连接。在一些实施例中,中间装置1106可以包括网络代理1110。网络代理1110可以在服务器1102和中间装置1106之间建立、创建、生成或以其他方式形成一个或多个连接。如上所述,尽管网络代理1110被示为位于中间装置1106处/之上/之内,但在一些实施例中,网络代理1110可以位于服务器1102处/之上/之内。

网络代理1110有时被称为SD-WAN代理、mVPN代理或微VPN代理。网络代理1110可以在中间装置1106和服务器1102(其托管和/或执行网络应用1108)之间建立或促进网络连接的建立。网络代理1110可以对来自中间装置1106(或客户机装置1104)的所请求的连接执行握手,以访问网络应用,并且可以建立所请求的连接。在一些实施例中,网络代理1110可以建立安全或加密的连接。例如,网络代理1110可以例如经由虚拟专用网络(VPN)连接到企业资源(包括服务和网络应用1108)。例如,网络代理1110可以在中间装置1106和服务器1102之间建立安全套接字层(SSL)VPN,其可以支持一个或多个网络应用1108的远程输送或供应。VPN连接有时被称为微VPN或应用特定的VPN,可以特定于特定的网络应用、特定的装置、客户机装置上的特定的安全区域等,例如,如上面结合图3所讨论的。作为一些示例,这样的VPN连接可以承载Microsoft Exchange流量、Microsoft Active Directory流量、超文本传输协议(HTTP)流量、超文本传输协议安全(HTTPS)流量。

在一些实施例中,网络代理1110可以被设计或实现为与服务器1102形成基于HTTP或基于web的会话。网络代理1110可以建立到服务器1102(例如,服务器1102的端口)的传输控制协议(TCP)连接。网络代理1110可以根据TCP在HTTP会话内与服务器1102交换各种命令。在一些实施例中,网络代理1110可以以类似于上述安全连接的方式来建立安全HTTP(例如,HTTPS)会话。

在这些实施例中,网络代理1110可以在服务器1102和中间装置1106之间形成或建立网络连接。在一些实施例中,网络代理1110可以在服务器1102和中间装置1106之间形成或建立安全连接(例如,SSL VPN连接)。

中间装置1106可以被设计或实现为发起供应会话以输送远程托管的应用或桌面会话。中间装置1106可以在由网络代理1110建立的网络连接之内或之间发起供应会话。在一些实施例中,远程会话代理1112可以发起供应会话(例如,其可以使用Citrix高清晰度用户体验(HDX)或独立计算架构(ICA)协议、或远程桌面协议(RDP)来建立)。供应会话和/或网络连接可以包括多个虚拟通道,用于将一种或多种类型的应用数据(例如,音频、图形、元数据、打印机数据、磁盘数据、智能卡数据等)传送给中间装置。例如,某些类型的应用数据可以各自经由供应会话内的专用虚拟通道来传送或通信,和/或某些类型的应用数据可以各自通过共享一个或多个虚拟通道而传送或通信至中间装置。虚拟通道可以对应于或包括与服务器侧应用进行通信的客户机侧虚拟驱动器。虚拟通道可以提供安全连接以在装置和/或应用之间进行通信。在客户机侧,虚拟通道可以对应于各自提供特定功能的虚拟驱动器。虚拟驱动器可以在表示层协议级别上操作。通过多路复用由例如WinStation协议层提供的通道,可以在任何给定时间激活许多这样的协议。多个虚拟通道可以在供应会话(例如,ICA/HDX会话或流量流)内被组合或多路复用。

远程会话代理1112可以根据诸如RDP、设备链路协议(ALP)、远程帧缓冲(RFB)协议和ICA协议的任何类型或形式的协议来发起供应会话。这样的协议可以允许在服务器1102处生成本机地托管在服务器1102上的应用或桌面会话的用户界面(UI)元素(或来自网络应用1108的其他应用数据)并且例如供应给客户机装置。可以使用这样的协议在服务器1102内对UI元素和其他应用数据进行编码以形成编码的应用数据或流量,然后将其输送或以其他方式供应给中间装置1106。因此,服务器1102可以生成应用数据,然后在将应用数据提供给中间装置1106之前对应用数据进行编码。在一些实施例中,服务器1102可以以编码格式生成应用数据(有时称为编码的应用数据),其被提供给中间装置1106。

在一些实施例中,网络应用1108中至少之一可以对应于远程托管的桌面、远程托管的应用或软件即服务(SaaS)应用。远程托管的桌面可以是托管在服务器1102上的虚拟桌面,其由客户机装置1104访问或被远程供应给客户机装置1104。在一些实施例中,远程托管的桌面的输送可以经由基于HDX的、基于ICA的、基于RDP等的会话和/或连接,如上所述。远程托管的应用可以是安装在远程托管的桌面环境上/之中的应用,因此可以在远程托管的桌面内访问。SaaS应用是集中托管的应用,其通常可以基于订阅进行访问。在一些实施例中,SaaS应用可以是基于web的应用。在其他实施例中,SaaS应用可以对应于远程托管的应用,因此可以在基于HDX/ICA/RDP的会话和/或连接中被输送。

中间装置1106可以被设计或实现为经由网络代理1110建立的网络连接来传输、接收、交换或以其他方式与网络应用1108通信。在一些实施例中,远程会话代理1112可以跨越由网络代理1110形成的网络连接与网络应用1108进行通信。托管在服务器1102上的网络应用1108可以创建、生成、产生、填充、编译或以其他方式形成用于在客户机装置1104处(例如,在客户机应用1116内)呈现的应用数据。该应用数据可以用于(例如,在客户机装置1104处)生成用于网络应用1108的用户界面(UI),(或包括信息或命令)以生成用于网络应用1108的用户界面(UI)。应用数据可以是与UI命令相对应的数据。UI命令可以是用于形成UI的小部件或其他元素(例如,大小、位置、类型、视觉特性)的命令。在一些实施例中,应用数据可以包括用于调节来自服务器1102的通信的各种流量特性的控制或配置流量,诸如数据速率、服务级别协议等。在一些实施例中,应用数据可以包括应用会话状态、各种用户简档信息、用户生成的数据、缓存数据等。在一些实施例中,应用数据可以包括图形和/或音频数据。在一些实施例中,应用数据可以包括网络装置指令。

在一些实施例中,网络应用1108可以以编码格式生成应用数据。本文所使用的编码的数据(或其变体,例如编码数据、进行编码的数据等)可以指可由具有解码数据格式或结构的能力的特定应用或软件访问的数据格式或结构。因此,编码的应用数据不是“原始的”或可独立于这种解码能力而被呈现或访问的可呈现数据(例如,解码的数据)。相反,编码的应用数据应先解码,然后才能在装置或端点处呈现。在一些实施例中,网络应用1108可以以可由网络应用特定软件访问的格式对应用数据进行编码。例如,应用数据可以采用编码格式,然后将其解码为级联样式表(CSS)文件,其然后可以被呈现为网络应用的用户界面。

编码的数据的其他各种示例和/或类型可以包括压缩的图形、图像或视频数据(编解码器)、压缩的音频数据等。编码的应用数据可以具有各种文件格式(或容器),例如音频-视频交错(AVI)、flash视频格式(FLV)、Windows媒体视频(WMV)、Apple QuickTime电影(MOV)、运动图片专家组4(MP4)、联合图像专家组(JPEG)、带标签的图像文件格式(TIFF)、图形交换格式(GIF)、计算机图形元文件(CGM)、波形音频文件格式(WAV)、音频交换文件格式(AIFF)、MPEG-1音频第3层(MP3)、高级音频编码(AAC)、Microsoft Word文档(DOC)、OfficeOpen XML文档(DOCX)、ASCII文本作为逗号分隔值(CSV)等。

在一些实施例中,编码的应用数据可以包括编码的用户界面显示命令或消息(例如,以HDX或ICA协议)。编码的应用数据可以是特定格式的命令或消息,其对应于类似于CSS文件的用户界面小部件的各种特性(例如,大小、位置、类型、视觉特性)。这些示例中的解码的应用数据可以包括CSS文件,该CSS文件可被呈现以产生原始形式的图形(例如,位图或其他原始的图形数据),该图形被显示或呈现而无需进一步处理。解码的应用数据的其他示例可以包括纯文本、原始音频数据等。

在这些示例中的每一个中,编码的应用数据使用特定的解码器(其可以是文件格式或特定于容器的)来解码应用数据以进行呈现(例如,在客户机装置1104处),而无需进一步处理。因此,解码的应用数据在客户机装置1104处为可呈现的格式。例如,解码的应用数据可以是CSS文件和各种样式元素。来自解码的应用数据的CSS文件和各种样式元素可用于呈现网络应用1108的用户界面。

中间装置1106可以被设计或实现为从网络应用1108接收编码的流量。中间装置1106可以经由由网络代理1110建立的网络连接从服务器1102上的网络应用1108接收编码的应用数据。中间装置1106的远程会话代理1112可以接收或访问编码的应用数据。例如,响应于用户刷新或访问命令等,远程会话代理1116可以以各种间隔访问网络应用1108,以更新、刷新、下载或以其他方式检索编码的应用数据。在一些实施例中,服务器1102(例如,经由VDA)可以实时地(或者以各种间隔或刷新率)将编码的应用数据提供给远程会话代理1112。在每种情况下,远程会话代理1112可以经由网络代理1110建立的网络连接从服务器1102接收编码的应用数据。

中间装置1106可以例如在中间装置的网络级或网络层处使用或利用中间装置的硬件(例如,处理器)来转换、破译、解密、解释或以其他方式解码(以下称为“解码”)来自网络应用1108的编码的流量数据。如本文中所使用的,解码(及其变体,诸如解码的、进行解码等)可以指产生可在装置处呈现而无需进一步处理的数据格式或结构(例如,在根据OSI模型的网络级或网络层处)。例如,中间装置1106可以使用SoC 1114对来自机载网络应用1108的编码的流量进行解码。SoC 1114可以是或包括集成电路或硬件装置,该集成电路或硬件装置包括计算机或其他电子系统的一个或多个组件。例如,SOC 1114可以包括中央处理单元(CPU)、存储器、用于接收数据的I/O端口、辅助存储装置等。SoC 1114可以包括取决于各种应用的其他组件。在一些实施例中,SoC 1114对应于例如在网络级或网络层处专用于处理或解码远程托管的供应流量(例如,用于网络应用会话)的一个或多个处理器或电路。就这一点而言,SoC 1114可以被专门设计或实现为处理远程供应以及网络流量类型的处理和/或解码。

在一些实施例中,远程会话代理1112可以将应用数据路由到SoC 1114以用于例如在OSI模型的网络层或另一层处进行解码。这可以将应用数据的解码和/或处理从客户机装置转移到中间装置上的硬件。中间装置(例如,SoC 1114)可以操作、运行和/或充当在网络级处理或优化流量的客户机应用(例如,Citrix Receiver HDX引擎)。在一些实施例中,远程会话代理1112可以将所有应用数据路由到SoC 1114以进行解码或处理,而不管应用数据是否采用编码格式。在某些实施例中,远程会话代理1112可以识别应用数据的子集,用于路由到SoC 1112以进行解码。子集可以包括被编码(或以某种格式编码,例如AVC/H.264编码)的应用数据。远程会话代理1112可以基于哪个网络应用1108正在提供应用数据、特定结构、格式或应用数据的容器等来识别子集。

SoC 1114可以被设计或实现为例如在网络层或网络级对来自网络应用1108的流量进行解码。例如,SoC 1114可以包括解码器。解码器可以被设计或实现为将来自网络应用1108的编码的流量解码为可呈现的格式。编码的流量可以包括网络层分组。解码器可以对网络层分组中的编码的有效载荷和/或报头信息进行解码。在一些实施例中,SoC 1114可以包括多个解码器。每个解码器可以是特定于网络应用的。例如,中间装置1106可以从解码器存储中选择、检索和/或激活一个或多个解码器。当在服务器1102处对应用进行安装、存储、执行、访问等操作时,和/或经由中间装置访问或输送应用时,可以选择解码器。在一些实施例中,解码器可以本地地存储在SoC 1114上(例如,存储器或辅助存储装置中)。在一些实施例中,当网络应用1108被安装或以其他方式存储在服务器1102上时,解码器可以与网络应用1108打包在一起并由中间装置1106检索。当网络应用1108被安装、存储、访问等时,也可以由服务器1102将解码器提供给中间装置1106。在一些实施例中,解码器可以是硬件解码器,诸如AVC/H/264硬件解码器。解码器可以内置在SoC 1114中。因此,解码器可以是SoC1114用于对编码的应用数据进行解码的硬件或软件。

SoC 1114可以在中间装置1106处对应用数据进行解码以进行呈现。SoC 1114可以对应用数据进行解码以在客户机装置1104处(例如,在客户机应用1116的嵌入式浏览器内)进行呈现。SoC 1114可以对应用数据进行解码以在中间装置1106处(例如,如下所述在中间装置1106的安全浏览器内)进行呈现。SoC 1114可以根据编码协议对编码的应用数据进行解码。例如,SoC 1114的各种解码器可以是或包括用于对各种类型的数据进行编码和解码的各种编码协议。SoC 1114可以根据用于特定类型的应用数据的编码协议来对编码的应用数据进行解码。应用数据可以包括图形数据、音频数据和/或其他类型的数据。某些类型的数据可以经由一个或多个虚拟通道传送到中间装置。SoC 1114可以在中间装置处对这些数据中的任何一个进行解码、处理和/或优化,从而例如从客户机装置转移这种处理。

作为一个示例,SoC 1114可以将编码的图形数据解码为解码的图形数据。例如,中间装置11106的远程会话代理1112可以接收JPEG格式或容器的编码的图形数据。远程会话代理1112可以将编码的图形数据提供给SoC 1114。SoC 1114可以将编码的图形数据解码为解码的图形数据(例如以位图格式),该解码的图形数据可以在客户机装置1104处呈现而无需进一步处理(例如,无需进一步解码)。

作为另一示例,SoC 1114可以将编码的音频数据解码为解码的音频数据。例如,中间装置1106的远程会话代理1112可以接收MP3格式或容器的编码的音频数据。远程会话代理1112可以将编码的音频数据提供给SoC1114。SoC 1114可以将编码的音频数据解码为原始音频格式,该原始音频格式可以在客户机装置1104处呈现而无需进一步处理。

作为又一个示例,SoC 1114可以解码编码的UI应用数据以用于显示网络应用1108的UI。解码的应用数据可以包括CSS文件。每个CSS文件可以包括一系列规则,这些规则描述了例如页面的拓扑细节,诸如字体、颜色、文本大小等,各种音频或视频格式等。SoC 1114可以将编码的应用数据解码为CSS文件,该CSS文件可以在客户机装置1104处呈现而无需进一步处理。

在这些示例的每一个中,远程会话代理1112接收编码的应用数据,该编码的应用数据被提供给SoC 1114。在编码的应用数据中的任何一个被呈现或以其他方式提供给客户机装置1104之前,SoC 1114对编码的应用数据进行解码。因此,客户机装置1104不对来自网络应用1108的应用数据执行处理或其他解码,而是在中间装置处执行该处理或其他解码。

中间装置1106可以被设计或实现为将解码的应用数据传输到客户机装置1104的客户机应用1116,以向用户呈现或以其他方式显示用于网络应用1108的用户界面。在一些实施例中,网络应用1110可以与客户机装置1104(以类似于上述中间装置1106与服务器1102之间的网络连接的方式)建立连接,并且远程会话代理1112可以将解码的应用数据传送到客户机应用1116以进行呈现。在其他实施例中,中间装置1106可以包括用于服务器1102和中间装置1106之间的网络连接以及用于中间装置1106和客户机装置1104之间的网络连接的相应的网络代理1110和远程会话代理1112。

在中间装置1106对由中间装置1106接收到的应用数据进行解码之后,中间装置1106可以将解码的应用数据传输到客户机装置1104。当应用数据被解码时(例如,在从SoC1114检测到或注册“停止”、“完成”或其他命令之后),远程会话代理1112可以从SoC 1114接收解码的应用数据,并且可以将解码的应用数据传送到客户机装置1104。在一些实施例中,当中间装置1106对编码的应用数据进行解码时,中间装置1106可以将解码的应用数据(例如,连续地或间隔地)传输到客户机装置。远程会话代理1112可以在应用数据被解码时从SoC 1114接收解码的应用数据,并且一旦接收到解码的应用数据,就可以将解码的应用数据传送到客户机装置1104。

在一些实施例中,中间装置1106可以确定应用数据是否定向到(或以其他方式针对)网络装置(诸如网络打印机、传真机等)。例如,系统1100可以包括一个或多个网络装置,诸如网络打印机、传真机等。可以由网络代理1110以类似于上述网络连接的方式在中间装置1106和网络装置之间建立网络连接。远程会话代理1112可以基于例如各种数据结构特性、与该应用数据相关联的地址等来识别用于网络装置的应用数据。在远程会话代理1112识别该应用数据是针对该网络装置的情况下,远程会话代理1112可以将该应用数据从中间装置1106定向、传输或以其他方式传送到该网络装置。例如,在中间装置1106处本地地处理或解码了网络应用数据的流量之后,中间装置1106可以将解码的数据直接传送到网络打印机以进行打印(例如,无需在网络打印机处进一步解码或处理)。这样的实施例提供了中间装置1106和各种网络装置之间的直接通信,这在其他设计或实施方式中可能不容易实现。

在一些实施例中,中间装置1106可以被设计或实现为提供用于呈现解码的应用数据的安全浏览器(例如,在中间装置1106处)。安全浏览器可以类似于以上至少参考图4、5、7、8和10描述的安全浏览器420。被配置为在安全浏览器中访问或呈现的网络应用(或由安全浏览器访问的网页)可以有效地约束于由安全浏览器实现的安全机制。可以将这些网络应用视为(例如安全地)包含在安全容器内。使用这种安全浏览器可以使企业实施内容过滤策略,例如,其中阻止员工直接从其客户机装置访问某些网站。例如,可以使用安全浏览器来使客户机装置用户无需VPN即可访问公司内部网。

安全浏览器可以代表客户机装置呈现解码的应用数据。安全浏览器可以例如在中间装置1106处生成并呈现用于网络应用1108的用户界面。当在中间装置1106处(例如在安全浏览器上)呈现应用数据(例如,用户界面)时,中间装置1106可以将原始或解码的数据(例如,与所呈现的应用数据相对应)传送到客户机装置1104。所呈现的应用数据(例如以位图形式)可以被客户机装置1104用来在客户机装置1104处呈现、显示或以其他方式提供用户界面。例如,中间装置1106可以向客户机装置1104提供位图数据,该位图数据被传送到客户机装置1104的显示器,从而有效地镜像客户机装置1104上的安全浏览器。类似地,中间装置1106可以向客户机装置提供RAW音频数据,该RAW音频数据被传送到客户机装置1104的扬声器。在这些实施例的每一个中,客户机装置1104可以用作虚拟呈现或显示装置。这样的实施例可以维持客户机装置1104的完整性,并允许用户通过在中间装置处托管的安全浏览器来访问不安全或未批准的页面或网络应用。

在一些实施例中,中间装置1106可以使集成在客户机应用1116中的嵌入式浏览器呈现解码的应用数据。嵌入式浏览器可以类似于以上至少参考图4和8描述的嵌入式浏览器410。嵌入式浏览器可以包括web浏览器应用或引擎的元素和功能。嵌入式浏览器可以本地地呈现网络应用,作为客户机应用1116的组件或扩展。嵌入式浏览器可以经由任何方式嵌入或合并到客户机应用1116中,诸如直接集成(例如,编程语言或脚本插入)到客户机应用1116的可执行代码中,或经由插件安装。例如,嵌入式浏览器可以包括基于Chromium的浏览器引擎或其他类型的浏览器引擎,例如,可以使用Chromium嵌入式框架(CEF)将其嵌入到客户机应用1116中。嵌入式浏览器可以包括基于HTML5的布局图形用户界面(GUI)。嵌入式浏览器可以为合并了各种编程语言的客户机应用提供HTML呈现和JavaScript支持。例如,嵌入式浏览器的元件可以绑定到合并了C、C++、Delphi、Go、Java、.NET/Mono、Visual Basic6.0和/或Python的客户机应用1116。

在解码的应用数据包括CSS文件的实施例中,嵌入式浏览器(或安全浏览器)可以解析CSS文件以构造用于网络应用1108的用户界面的呈现。嵌入式浏览器(或安全浏览器)可以根据CSS文件呈现用户界面(例如,具有根据CSS文件的规范定位和构造的各种小部件)。嵌入式浏览器可以向用户显示用户界面以供访问。因此,用户可以与客户机装置1104上的网络应用1108的用户界面交互,该用户界面已经在中间装置1106处(例如,在SoC 1114上)被解码。在一些实施例中,当来自网络应用1108的数据在SoC 1114处被接收和解码时,可以在客户机装置1104处呈现和显示用户界面。就这一点而言,来自网络应用1108的流量逐步、动态或连续地被解码并传送给嵌入式浏览器(或安全浏览器)。这样的实施例可以改善访问网络应用时的用户体验。

在一些实施例中,中间装置1106可以优化接收到的应用数据以在客户机装置1104处呈现或以其他方式提供给客户机装置1104。如本文中所使用的,优化可以指根据客户机装置特定的特性对数据的修改以实现性能特性。例如,SoC 1114可以在数据在客户机装置处呈现之前重新配置或修改应用数据。SoC 1114可以重新配置或修改应用数据以提高检索、呈现或向客户机装置1104提供应用数据(或原始数据)的效率。SoC 1114可以根据客户机装置1104的各种规范,诸如显示分辨率或比例、着色选项、帧刷新率、扬声器输出能力等,来优化应用数据。例如,当网络代理1110在中间装置1106和客户机装置1104之间建立网络连接时,这种客户机装置1104规范可以(例如,由客户机装置1104)被传送给中间装置1106。

SoC 1114可以根据客户机装置1104的规范来选择应用数据的各种配置。SoC 1114可以选择应用数据的配置来实现客户机装置1104的各种性能特性,诸如装置速度、显示器或在其上呈现的用户界面的清晰度、音频声音等。作为一个示例,SoC 1114可以选择较低的分辨率以增加客户机装置1104的电池寿命,其中客户机装置1104是移动装置。作为另一示例,SoC 1114可以为具有相对大的显示器的客户机装置1104选择更高的显示比例。作为又一个示例,SoC 1114可以根据客户机装置1104的显示类型(例如,高清晰度与标准清晰度,LED)来选择不同的着色选项。在这些示例的每一个中,SoC 1114可以根据客户机装置1104的特定特性来修改应用数据以实现性能特性。因此,中间装置1106可以优化应用数据。

在一些实施例中,中间装置1106可以监测在网络应用1108、中间装置1106和/或客户机装置1104之间传送的流量。例如,中间装置1106可以监测接收到的流量(例如,以加密分组的形式),并且还对解密/解码的数据流和/或SSL堆栈具有完全可见性。该可见性可以允许中间装置1106执行或促进基于策略的管理(例如,包括数据丢失防护(DLP)能力)、应用控制(例如,以改善性能、服务级别)以及分析的收集和产生。例如,这种可见性可以为信息技术(IT)管理员提供可控系统,用于通过CEB部署web和SaaS应用,并允许IT管理员经由CEB设置策略或配置,以执行上述活动中的任何一个。

在一些实施例中,当客户机装置1104从网络应用1108的会话断开连接时,中间装置1106可以维持网络应用1108的状态。当网络应用1108的会话从客户机装置1104转移到另一个客户机装置1104时,中间装置1106可以维持网络应用1108的状态。在网络应用1108的会话期间,中间装置1106可以维持网络应用1108的操作状态。网络应用1108的操作状态可以包括执行代码/行/子例程标识符/指示符、高速缓存状态、输入/输出(I/O)状态、UI状态及其组合。中间装置1106可以缓存这些操作状态中的一些(或全部)。在一些实施例中,中间装置1106可以(例如,由远程会话代理1112通过网络代理1110建立的通信链路)向服务器1102发送消息,以例如响应于客户机装置从网络应用的会话断开连接来暂停执行或存储/缓存网络应用1108的这些操作状态中的一些或全部。例如,可以存储或缓存操作状态,直到客户机装置1104的用户恢复到相同客户机装置(或不同客户机装置1104)上的会话为止。在一些实施例中,操作状态(也称为会话状态)可以被存储或缓存直到过期时间为止。这样的实施例可以通过改善应用会话的移动性并防止意外的会话数据丢失来增加用户体验。

参考图12,其描绘了用于输送网络应用的方法的一个实施例的流程图。该方法的功能可以使用本文结合图1-11详细描述的组件来实现或由其执行。简要而言,中间装置与网络应用建立连接(1205)。中间装置接收编码的应用数据(1210)。中间装置对应用数据进行解码(1215)。中间装置将应用数据传输到客户机应用(1220)。

现在参考操作(1205),并且在一些实施例中,中间装置建立与网络应用的连接。在一些实施例中,中间装置位于客户机装置和托管网络应用的服务器之间。中间装置可以位于比服务器更靠近客户机装置的位置。例如,中间装置可以在地理位置上更靠近客户机装置。在一些实施例中,就网络路径长度而言,中间装置可以位于更靠近客户机装置的位置。中间装置可以更好地适配或定位成执行来自服务器的网络流量的处理和优化。中间装置可以通过在板上执行处理来提供更好的用户体验,这可以提高跨客户机装置平台的图形解码的一致性。

在一些实施例中,中间装置可以包括网络代理。网络代理可以在中间装置和服务器(其托管网络应用)之间建立或促进网络连接的建立。网络代理可以为来自客户机应用或客户机装置的所请求的连接执行握手,以访问网络应用,并且可以建立所请求的连接。在用户选择与启动或以其他方式打开(例如,显示在客户机装置的客户机应用上的)网络应用相关联的图标或其他链接之后,网络代理可以例如为所请求的连接执行握手。在一些实施例中,网络代理可以响应于在服务器上安装或以其他方式包括的网络应用来为所请求的连接执行握手。

在一些实施例中,网络代理可以建立安全或加密的连接。例如,网络代理可以例如经由VPN连接连接到服务器。例如,网络代理可以在中间装置和服务器之间建立SSL VPN连接。

在一些实施例中,网络代理可以被设计或实现为形成、维持或建立与服务器的HTTP会话。例如,网络代理可以建立到服务器的TCP连接。网络代理可以根据TCP在HTTP会话内与服务器交换各种命令。在一些实施例中,网络代理可以以类似于上述安全或加密连接的方式建立安全HTTP会话。因此,网络代理通常可以建立或促进服务器与中间装置之间的网络连接的建立,在一些实施例中,网络连接可以是安全的网络连接(例如,SSL VPN)。

中间装置可以被设计或实现为发起用于远程托管的应用或桌面会话的供应会话。中间装置可以在由网络代理建立的网络连接之内或跨越由网络代理建立的网络连接发起供应会话。在一些实施例中,中间装置可以包括远程会话代理。远程会话代理可以发起供应会话(例如,其使用Citrix HDX、ICA协议或RDP来建立)。远程会话代理可以根据诸如RDP、ALP、RFB协议和ICA协议的任何类型或形式的协议来发起供应会话。远程会话代理可以发起供客户机装置的用户访问网络应用的供应会话。

在一些实施例中,网络应用中的至少一个可以是远程托管的桌面、远程托管的应用或软件即服务(SaaS)应用。远程托管的桌面可以是托管在由客户机装置访问的服务器上的虚拟桌面。因此,用户可以从客户机装置远程操作托管在服务器处的虚拟桌面。在一些实施例中,如上所述,远程托管的桌面可以基于HDX、基于ICA、基于RDP等。远程托管的应用可以是安装在远程托管的桌面环境内的应用,因此可以在远程托管的桌面内访问。SaaS应用是集中托管的应用,通常可以基于订阅进行访问。在一些实施例中,SaaS应用可以包括基于web的应用。在其他实施例中,SaaS应用可以包括远程托管的应用,并且因此是基于HDX/ICA/RDP的应用。

现在参考操作(1210),并且在一些实施例中,中间装置接收编码的应用数据。在一些实施例中,中间装置可以经由在操作(1205)处建立的网络连接来接收编码的应用。中间装置可以从网络应用接收编码的应用数据。编码的应用数据可以包括编码的图形数据或编码的音频数据。

网络应用可以在服务器处执行命令、过程、指令等。例如,网络应用和/或VDA可以使用上述各种协议(例如,RDP、ALP、RFB、ICA协议)来生成应用数据。例如,这样的协议可以允许将应用或桌面会话的UI元素或本机地托管在服务器上的其他应用数据跨网络供应给另一个装置。可以使用这样的协议(例如,由VDA)对那些UI元素和其他应用数据进行编码,并且将其输送或以其他方式供应给中间装置。因此,应用数据可用于生成网络应用的UI。应用数据可以包括与UI命令相对应的数据。UI命令可以包括用于形成UI的小部件(例如,大小、位置、类型、视觉特性)的命令。在一些实施例中,应用数据可以包括用于调节来自服务器的通信的各种流量特性的控制或配置流量,诸如数据速率、服务级别协议等。在一些实施例中,应用数据可以包括应用状态、各种用户简档信息、用户生成的数据、缓存数据等。在一些实施例中,应用数据可以包括图形或音频数据。

网络应用和/或VDA可以以编码格式生成应用数据。在其他实施例中,网络应用可以以解码格式生成应用数据,并且在将应用数据传输到中间装置之前对应用数据进行编码。在一些实施例中,网络应用可以以特定于网络应用的软件可访问或可解码的格式对应用数据进行编码。例如,应用数据可以是编码格式,其在呈现以形成用于网络应用的用户界面之前被解码,以生成级联样式表(CSS)文件。

中间装置可以经由网络代理建立的网络连接从服务器上的网络应用接收编码的应用数据。中间装置的远程会话代理可以接收编码的应用数据(或者远程供应会话可以将编码的应用数据提供给远程会话代理)。因此,远程会话代理可以接收编码的应用数据。

现在参考操作(1215),并且在一些实施例中,中间装置对应用数据进行解码。在一些实施例中,中间装置将接收到的网络应用的应用数据解码为解码的图形数据或解码的音频数据中的至少一个,以在客户机装置处进行呈现。尽管在本公开中有时引用图形和/或音频数据,但是这些仅是示例性的,并且无意于以任何方式进行限制。(例如,来自供应会话的任何虚拟通道的)任何类型或形式的应用数据可以类似地应用例如多媒体数据、磁盘数据、剪贴板数据、打印机数据等。

中间装置可以对来自网络应用的编码的应用数据进行解码。中间装置可以通过SoC对来自机载网络应用的编码的应用数据进行解码。SoC可以是或包括集成电路、处理器或硬件装置,其包括计算机或其他电子系统的一个或多个组件。例如,SoC可以包括中央处理单元(CPU)、存储器、用于接收数据的I/O端口和/或辅助存储装置等。

SoC可以被设计或实现为对来自网络应用的流量(例如,应用数据)进行解码。例如,SoC可以包括解码器。解码器可以被设计或实现为将来自网络应用的编码的流量解码为可呈现格式。在一些实施例中,SoC可以包括多个解码器。每个解码器可以是特定于网络应用的。例如,中间装置(例如,远程会话代理)可以从解码器存储中检索解码器。当在服务器处对应用进行安装、存储、访问等操作时,远程会话代理可以检索解码器。解码器可以本地地存储在SoC上(例如,在存储器或辅助存储装置中)。在一些实施例中,解码器可以与网络应用打包在一起。在这些实施例中,当网络应用被安装或以其他方式存储在服务器上时,远程会话代理可以检索解码器。在一些实施例中,当网络应用被安装、存储、访问等时,服务器可以将解码器提供给远程会话代理。在一些实施例中,解码器可以是诸如或类似于AVC/H/264硬件解码器的硬件解码器。解码器可以内置在SoC1114中。因此,解码器可以是SoC 1114用于对编码的应用数据进行解码的硬件或软件。

SoC可以在中间装置处对应用数据进行解码以进行呈现。在一些实施例中,SoC可以在中间装置处对应用数据进行解码,以在客户机装置处(例如,在客户机应用内)进行呈现。在其他实施例中,SoC可以在中间装置处对应用数据进行解码,以在中间装置处进行呈现(例如,通过安全浏览器,如下所述)。SoC可以根据编码协议对编码的应用数据进行解码。例如,SoC的各种解码器可以是或包括各种编码协议,用于对来自相应应用的各种类型的数据进行编码和解码。SoC可以根据针对特定类型的应用数据的编码协议对编码的应用数据进行解码。

在一些实施例中,中间装置可以(例如,在网络层或网络级处)优化接收到的应用数据,以在客户机装置处呈现或以其他方式提供给客户机装置。中间装置可以将应用数据的处理、优化和/或解码从客户机装置转移到中间装置的硬件。例如,SoC可以在客户机装置处呈现数据之前重新配置或修改应用数据。SoC可以重新配置或修改应用数据,以改善检索、呈现或向客户机装置提供应用数据(或原始数据)的效率。SoC可以根据客户机装置的各种规范,诸如显示分辨率或比例、着色选项、帧刷新率、扬声器输出能力等,来优化应用数据。当网络代理在中间装置和客户机装置之间建立网络连接时,这种客户机装置规范可以(例如,由客户机装置)被传送给中间装置。SoC可以根据客户机装置的规范来选择应用数据的各种配置。SoC可以选择应用数据的配置来实现客户机装置的各种性能特性,诸如装置速度、显示器或在其上呈现的用户界面的清晰度、音频声音等。因此,SoC可以根据客户机装置的特定特性来修改应用数据以实现性能特性,从而优化应用数据。

在一些实施例中,中间装置可以提供用于呈现解码的应用数据(例如,在中间装置处呈现解码的应用数据)的安全浏览器。被配置为在安全浏览器内运行的网络应用(或由安全浏览器访问的网页)可以有效地约束于由安全浏览器实现的安全机制。使用这种安全浏览器可以使企业实施内容过滤策略,例如,其中阻止员工从其客户机装置访问某些网站或其他未批准的内容或源。

安全浏览器可以代表客户机装置呈现解码的应用数据。安全浏览器可以例如在中间装置处呈现用于网络应用的用户界面。当在中间装置处(例如,在安全浏览器上)呈现应用数据(例如,用户界面)时,中间装置可以将原始或解码的数据(例如,与所呈现的应用数据相对应)传送给客户机装置。所呈现的应用数据(例如,以位图形式)可以由客户机装置用来在客户机装置处呈现、显示或以其他方式提供用户界面。例如,中间装置可以向客户机装置提供位图数据,该位图数据被传送到客户机装置的显示器,从而有效地镜像客户机装置上的安全浏览器。类似地,中间装置可以向客户机装置提供RAW音频数据,该RAW音频数据被传送到客户机装置的扬声器。在这些实施例的每一个中,客户机装置充当虚拟呈现或显示装置。这样的实施例可以维持客户机装置的完整性,并且允许用户通过在中间装置处托管的安全浏览器来访问不安全或未批准的页面或应用。

现在参考操作(1220),并且在一些实施例中,中间装置将应用数据传输到客户机应用数据。在一些实施例中,中间装置将解码的图形数据和/或解码的音频数据传输到客户机装置的客户机应用以进行呈现,以提供用户对网络应用的访问。在一些实施例中,网络应用可以与客户机装置(以类似于上述在中间装置和服务器之间建立的网络连接的方式)建立连接,并且远程会话代理可以将解码的应用数据传送给客户机应用以进行呈现。在其他实施例中,中间装置可以包括用于服务器和中间装置之间的网络连接以及用于中间装置和客户机装置之间的网络连接的相应网络代理和远程会话代理。

中间装置可以在对中间装置接收到的应用数据进行解码之后,将解码的应用数据传输到客户机装置。当应用数据被解码时,远程会话代理可以从SoC接收解码的应用数据,并且可以将解码的应用数据传送到客户机装置。在一些实施例中,当中间装置对编码的应用数据进行解码时,中间装置可以传输解码的应用数据。远程会话代理可以在应用数据被解码时从SoC接收解码的应用数据,并且一旦接收到解码的应用数据,便将解码的应用数据传送到客户机装置。就这一点而言,客户机装置可以一次全部呈现解码的应用数据,或在接收到解码的数据的部分时呈现解码的应用数据。

在一些实施例中,中间装置可以使集成在客户机应用中的嵌入式浏览器呈现解码的应用数据。嵌入式浏览器可以将网络应用本地呈现为客户机应用的组件或扩展。

在解码的应用数据是CSS文件的实施例中,嵌入式浏览器(或安全浏览器)可以解析CSS文件以构造用于网络应用的用户界面的呈现。嵌入式浏览器(或安全浏览器)可以根据CSS文件(例如,具有根据CSS文件的规范定位和构造的各种小部件)呈现用户界面。嵌入式浏览器(或安全浏览器)可以向用户显示用户界面以供访问。因此,用户可以与在客户机装置上呈现的网络应用的用户界面进行交互。在一些实施例中,可以使用在SOC处解码的数据在客户机装置处呈现和显示用户界面。在这方面,来自网络应用的流量被解码并传送到嵌入式浏览器以进行呈现或显示。

在一些实施例中,中间装置可以监测在网络应用、中间装置和/或客户机装置之间传送的流量。例如,中间装置可以监测接收到的流量(例如,以加密分组的形式),并且还具有对解密的数据流和/或SSL堆栈的完全可见性。该可见性可以允许中间装置执行或促进基于策略的管理(例如,包括数据丢失防护(DLP)能力)、应用控制(例如,以改善性能、服务级别)以及分析的收集和产生。

在一些实施例中,当客户机装置从网络应用的会话断开连接时,中间装置可以维持网络应用的状态。当网络应用的会话从客户机装置转移到另一客户机装置时,中间装置可以维持网络应用的状态。在网络应用的会话期间,中间装置可以维持网络应用的操作状态。网络应用的操作状态可以包括执行代码/行/子例程标识符/指示符、高速缓存状态、输入/输出(I/O)状态、UI状态及其组合。中间装置可以缓存这些操作状态中的一些(或全部)。在一些实施例中,中间装置可以向服务器发送消息(例如,由远程会话代理通过网络代理建立的通信链路),以例如响应于客户机装置从网络应用的会话断开连接来暂停执行或存储/缓存网络应用的这些操作状态中的一些或全部。例如,可以存储或缓存操作状态,直到客户机装置的用户恢复到相同客户机装置(或不同客户机装置)上的会话为止。在一些情况下,操作状态(也称为会话状态)可以被存储或缓存直到过期时间为止。这样的实施例可以通过改善应用会话的移动性并防止意外的数据丢失来增加用户体验。

应当理解,上述系统可以提供那些组件中的任一个或每一个的多个组件,并且这些组件可以在独立的机器上或者在一些实施例中在分布式系统中的多个机器上提供。可以通过使用编程和/或工程技术来生产软件、固件、硬件或其任何组合,将上述系统和方法实现为方法、设备或制造产品。另外,可以将上述系统和方法作为嵌入在一个或多个制造产品之上或之中的一个或多个计算机可读程序来提供。本文所使用的术语“制造产品”旨在包括可从一个或多个计算机可读装置可访问的或嵌入其中的代码或逻辑、固件、可编程逻辑、存储装置(例如EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子装置、计算机可读非易失性存储单元(例如CD-ROM、USB闪存、硬盘驱动器等)。可以从文件服务器访问该制造产品,该文件服务器经由网络传输线、无线传输介质、在空间传播的信号、无线电波、红外信号等提供对计算机可读程序的访问。该制造产品可以是闪存卡或磁带。该制造产品包括硬件逻辑以及嵌入在计算机可读介质中的由处理器执行的软件或可编程代码。通常,计算机可读程序可以以任何编程语言(例如LISP、PERL、C、C++、C#、PROLOG)或任何字节代码语言(例如JAVA)实现。软件程序可以作为目标代码存储在一个或多个制造产品之上或之中。

尽管已经描述了方法和系统的各种实施例,但是这些实施例是示意性的,并且绝不限制所描述的方法或系统的范围。相关领域的技术人员可以在不脱离所描述的方法和系统的最广泛范围的情况下,对所描述的方法和系统的形式和细节进行改变。因此,本文描述的方法和系统的范围不应受到任何示意性实施例的限制,而应根据所附权利要求及其等同物来定义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号