CN113348444A - 提供基于上下文的软件即服务(saas)应用会话切换的计算机系统和相关方法 - Google Patents

提供基于上下文的软件即服务(saas)应用会话切换的计算机系统和相关方法 Download PDF

Info

Publication number
CN113348444A
CN113348444A CN202080011867.0A CN202080011867A CN113348444A CN 113348444 A CN113348444 A CN 113348444A CN 202080011867 A CN202080011867 A CN 202080011867A CN 113348444 A CN113348444 A CN 113348444A
Authority
CN
China
Prior art keywords
computing device
client computing
saas application
session
saas
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
CN202080011867.0A
Other languages
English (en)
Inventor
G·莫姆基洛夫
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 CN113348444A publication Critical patent/CN113348444A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • G06F9/4875Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
    • 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
    • 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/148Migration or transfer of 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/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

计算机系统可以包括被配置成运行软件即服务(SaaS)应用的本地会话的客户端计算设备。该系统可以进一步包括服务器,该服务器被配置成针对客户端计算设备运行SaaS应用的托管会话。客户端计算设备和服务器可以协作以基于与客户端计算设备相关联的上下文在SaaS应用的本地会话和SaaS应用的托管会话之间切换。

Description

提供基于上下文的软件即服务(SAAS)应用会话切换的计算机 系统和相关方法
背景技术
传统上,个人计算机包括操作系统、应用和用户设置的组合,其每个都由所有者或管理员持续(on an ongoing basis)单独管理。然而,许多组织现在正在使用桌面虚拟化来提供更灵活的选项来解决(address)它们的用户的不同需求。在桌面虚拟化中,用户的计算环境(例如,操作系统、应用和/或用户设置)可以与用户的物理计算设备(例如,智能电话、膝上型计算机、台式计算机)分离。使用客户端-服务器技术,“虚拟化桌面”可以被存储在远程服务器中并由远程服务器管理,而不是被存储在客户端计算设备的本地存储装置中。
有若干种不同类型的桌面虚拟化系统。例如,虚拟桌面基础架构(VDI)指代在驻留在服务器上的虚拟机内运行用户桌面的过程。VDI和其他基于服务器的桌面虚拟化系统可以为每个用户提供个性化的桌面,同时允许集中管理和安全。这样的系统中的服务器可以包括用于虚拟桌面映像和系统配置信息的存储装置,以及用于提供虚拟桌面并允许用户与它们互连的软件组件。例如,VDI服务器可以包括一个或多个管理程序(虚拟机管理器)来创建和维护多个虚拟机、用于管理(一个或多个)管理程序的软件、连接代理以及用于供应和管理虚拟桌面的软件。
桌面虚拟化系统可以使用单个虚拟化服务器或作为服务器网格互连的服务器的组合来实现。例如,云计算环境或云系统可以包括计算资源的池(例如桌面虚拟化服务器)、存储磁盘、联网硬件和可以被用于供应虚拟桌面的其他物理资源、以及用于为云系统提供管理和客户入口(portal)的附加计算设备。
云系统可以通过网络为客户动态创建和管理虚拟机,从而为远程客户提供计算资源、数据存储服务、联网功能以及计算机平台和应用支持。例如,云系统中的客户可能请求具有指定处理器速度和存储器以及指定磁盘存储的量的新的虚拟机。在云系统内,资源管理器可以从云资源池(例如,服务器、存储磁盘)选择可用物理资源的集合,并且可以根据客户的指定的计算参数来供应和创建新的虚拟机。云计算服务可以用私有和/或公共组件为多个客户服务,并且可以被配置成提供各种特定服务,包括web服务器、安全系统、开发环境、用户接口以及诸如此类。
软件即服务(SaaS)是一种用于软件交付的云计算方法,通过该方法,软件应用被集中托管在云中并在订阅的基础上提供给用户。SaaS应用被提供用于许多领域,包括商业、会计以及甚至游戏应用。SaaS应用通常经由浏览器程序在具有瘦客户端的客户端设备上访问。
发明内容
计算机系统可以包括被配置成运行软件即服务(SaaS)应用的本地会话的客户端计算设备。该系统可以进一步包括服务器,该服务器被配置成针对客户端计算设备运行SaaS应用的托管会话。客户端计算设备和服务器可以协作以基于与客户端计算设备相关联的上下文在SaaS应用的本地会话和SaaS应用的托管会话之间切换。
在一个示例实现中,与客户端计算设备相关联的上下文可以对应于客户端计算设备的位置。在一些实施例中,客户端计算设备可以与具有多个不同角色的用户账户相关联,并且与客户端计算设备相关联的上下文可以对应于来自多个不同角色之中的活跃角色。在另一个示例实现中,上下文可以对应于由SaaS应用请求的事务的类型。在更进一步的实现中,上下文可以对应于与由SaaS应用正在执行的操作相关联的安全风险级别。
此外,与客户端计算设备相关联的上下文可以对应于与SaaS应用的托管会话相关联的等待时间。在另一示例中,客户端计算设备可以包括至少一个输入设备,并且与客户端计算设备相关联的上下文可以对应于由SaaS应用对使用至少一个输入设备的调用。更特别地,至少一个输入设备可以包括相机、麦克风和加速度计中的至少一个。此外,与客户端计算设备相关联的上下文可以对应于与由SaaS应用正在执行的操作相关联的处理级别。
相关方法可以包括在客户端计算设备处运行SaaS应用的本地会话,以及在服务器处针对客户端计算设备运行SaaS应用的托管会话。该方法可以进一步包括基于与客户端计算设备相关联的上下文在SaaS应用的本地会话和SaaS应用的托管会话之间切换。
附图说明
图1是其中可以实现本公开的各种方面的计算设备的网络环境的框图。
图2是对用于实施图1中图示的客户端机器或远程机器的实施例有用的计算设备的框图。
图3是根据示例实施例的提供软件即服务(SaaS)应用会话在本地和托管SaaS应用会话之间切换的计算系统的框图。
图4是图3的计算系统的示例实现的框图,其图示了基于与客户端计算设备相关联的位置在本地和托管SaaS应用会话之间切换。
图5是图3的计算系统的示例实现的框图,其图示了基于不同用户角色在本地和托管SaaS应用会话之间切换。
图6A-6B是图3的计算系统的示例实现的框图,其图示了基于不同的事务请求类型在本地和托管SaaS应用会话之间切换。
图7A-7B是图3的计算系统的示例实现的框图,其图示了基于不同的安全风险级别在本地和托管SaaS应用会话之间切换。
图8是图3的计算系统的示例实现的框图,其图示了基于等待时间在本地和托管SaaS应用会话之间切换。
图9是图3的计算系统的示例实现的框图,其图示了基于对使用与客户端计算设备相关联的输入设备的调用在本地和托管SaaS应用会话之间切换。
图10是图3的客户端计算设备的显示屏的一系列前视图,其图示了基于与由SaaS应用正在执行的操作相关联的处理级别在本地和托管SaaS应用会话之间切换的示例实现。
图11是图示与图3的计算系统相关联的示例方法方面的框图。
具体实施方式
参考附图进行本描述,其中示出了示例实施例。然而,可以使用许多不同的实施例,并且因此描述不应被解释为限于本文中阐述的特定实施例。相同的数字贯穿始终指代相同的元件。
如由本领域技术人员在阅读以下公开内容时将理解的,本文中描述的各种方面可以被实现为设备、方法或计算机程序产品(例如,具有用于执行所提到的操作或步骤的计算机可执行指令的非暂时性计算机可读介质)。因此,那些方面可以采取完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。
此外,这样的方面可以采取由一个或多个计算机可读存储介质存储的计算机程序产品的形式,该计算机可读存储介质具有在存储介质中或在存储介质上实现的计算机可读程序代码或指令。可以利用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光学存储设备、磁性存储设备和/或其任何组合。
首先参考图1,其中可以实现本公开的各种方面的非限制性网络环境101包括一个或多个客户端机器102A-102N、一个或多个远程机器106A-106N、一个或多个网络104、104'以及安装在计算环境101中的一个或多个装备(appliance)108。客户端机器102A-102N经由网络104、104'与远程机器106A-106N通信。
在一些实施例中,客户端机器102A-102N经由中间装备108与远程机器106A-106N通信。图示的装备108被定位在网络104、104'之间并且也可以被称为网络接口或网关。在一些实施例中,装备108可以作为应用交付控制器(ADC)来操作,以向客户端提供对部署在数据中心、云中或跨一系列客户端设备作为软件即服务(SaaS)交付的商业应用和其他数据的访问,和/或提供诸如负载平衡等的其他功能。在一些实施例中,可以使用多个装备108,并且(一个或多个)装备108可以被部署为网络104和/或104'的部分。
客户端机器102A-102N通常可以被称为客户端机器102、本地机器102、客户端102、客户端节点102、客户端计算机102、客户端设备102、计算设备102、端点102或端点节点102。远程机器106A-106N通常可以被称为服务器106或服务器群106。在一些实施例中,客户端设备102可以具有既作为寻求对由服务器106提供的资源的访问的客户端节点并且又作为为其他客户端设备102A-102N提供对托管资源的访问的服务器106的能力。网络104、104'通常可以被称为网络104。网络104可以以有线和无线网络的任何组合来配置。
服务器106可以是任何服务器类型,诸如例如:文件服务器;应用服务器;web服务器;代理服务器;装备;网络装备;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;安全套接字层虚拟专用网络(SSL VPN)服务器;防火墙;web服务器;执行活跃目录的服务器;云服务器;或执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器。
服务器106可以执行、操作或以其他方式提供应用,该应用可以是以下各项中的任何一个:软件;程序;可执行指令;虚拟机;管理程序;web浏览器;基于web的客户端;客户端-服务器应用;瘦客户端计算客户端;ActiveX控件;Java小程序;与互联网协议语音(VoIP)通信相关的软件,比如软IP电话;用于流式传输视频和/或音频的应用;用于促进实时数据通信的应用;HTTP客户端;FTP客户端;Oscar客户端;Telnet客户端;或任何其他可执行指令集。
在一些实施例中,服务器106可以执行远程呈现服务程序或使用瘦客户端或远程显示协议来捕获由在服务器106上执行的应用生成的显示输出并将应用显示输出传输到客户端设备102的其他程序。
在又一些其他实施例中,服务器106可以执行虚拟机,该虚拟机向客户端设备102的用户提供对计算环境的访问。客户端设备102可以是虚拟机。虚拟机可以由例如管理程序、虚拟机管理器(VMM)或服务器106内的任何其他硬件虚拟化技术来管理。
在一些实施例中,网络104可能是:局域网(LAN);城域网(MAN);广域网(WAN);主要公共网络104;以及主要专用网络104。附加实施例可以包括使用各种协议来在移动设备之间通信的移动电话网络的网络104。对于无线局域网(WLAN)内的短距离通信,协议可以包括802.11、蓝牙和近场通信(NFC)。
图2描绘了对用于实施客户端设备102、装备108和/或服务器106的实施例有用的计算设备100的框图。计算设备100包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(RAM))、非易失性存储器128、用户接口(UI)123、一个或多个通信接口118和通信总线150。
非易失性存储器128可以包括:一个或多个硬盘驱动器(HDD)或其他磁性或光学存储介质;一个或多个固态驱动器(SSD),诸如闪存驱动器或其他固态存储介质;一个或多个混合磁性和固态驱动器;和/或一个或多个虚拟存储卷,诸如云存储装置,或这样的物理存储卷和虚拟存储卷或其阵列的组合。
用户接口123可以包括图形用户接口(GUI)124(例如,触摸屏、显示器等)和一个或多个输入/输出(I/O)设备126(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个相机、一个或多个生物计量(biometric)扫描仪、一个或多个环境传感器以及一个或多个加速度计等)。
非易失性存储器128存储操作系统115、一个或多个应用116和数据117,使得例如操作系统115和/或应用116的计算机指令由易失性存储器122之外的(一个或多个)处理器103执行。在一些实施例中,易失性存储器122可以包括可以提供比主存储器更快的响应时间的一种或多种类型的RAM和/或高速缓存存储器。数据可以使用GUI 124的输入设备来输入或从(一个或多个)I/O设备126接收。计算机100的各种元件可以经由通信总线150通信。
图示的计算设备100仅被示出为示例客户端设备或服务器,并且可以由具有任何类型的机器或机器的集合的任何计算或处理环境来实现,所述机器或机器的集合可以具有能够如本文中描述的那样操作的合适的硬件和/或软件。
(一个或多个)处理器103可以由一个或多个可编程处理器实现以执行一个或多个可执行指令,诸如计算机程序,以执行系统的功能。如本文中所使用的,术语“处理器”描述执行功能、操作或操作的序列的电路。功能、操作或操作的序列可以被硬编码到电路中或通过保存在存储器设备中并由电路执行的指令软编码。处理器可以使用数字值和/或使用模拟信号来执行功能、操作或操作的序列。
在一些实施例中,处理器可以在一个或多个专用集成电路(ASIC)、微处理器、数字信号处理器(DSP)、图形处理单元(GPU)、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器或具有相关联的存储器的通用计算机中实现。
处理器103可以是模拟、数字或混合信号。在一些实施例中,处理器103可以是一个或多个物理处理器,或者一个或多个虚拟(例如,远程定位的或云)处理器。包括多个处理器核的处理器和/或多个处理器可以提供用于并行、同时执行指令或用于并行、同时对多于一条数据执行一条指令的功能。
通信接口118可以包括一个或多个接口以使得计算设备100能够通过多种有线和/或无线连接(包括蜂窝连接)访问诸如局域网(LAN)、广域网(WAN)、个域网(PAN)或互联网的计算机网络。
在所描述的实施例中,计算设备100可以代表客户端设备的用户执行应用。例如,计算设备100可以执行由管理程序管理的一个或多个虚拟机。每个虚拟机可以提供其中应用代表用户或客户端设备执行的执行会话,诸如托管桌面会话。计算设备100还可以执行终端服务会话以提供托管桌面环境。计算设备100可以提供对远程计算环境的访问,该远程计算环境包括一个或多个应用、一个或多个桌面应用以及一个或多个应用可以在其中执行的一个或多个桌面会话。
配置为客户端设备102或配置为服务器106或配置为客户端设备102和服务器106的中间装备的计算设备100及其操作的附加描述可以在美国专利第9,176,744号和第9,538,345号中找到,所述美国专利通过引用被整体地并入本文中。'744和'345专利两者都被转让给本公开的当前受让人。
现在转向图3,首先描述有利地提供软件即服务(SaaS)应用会话迁移的计算系统30。系统30说明性地包括一个或多个客户端计算设备31和一个或多个服务器32。作为示例,客户端计算设备31可以是台式计算机、膝上型计算机、平板计算机、智能电话等。客户端计算设备31可以以不同方式运行SaaS应用会话。一种用于例如经由托管浏览器运行来自服务器32的托管SaaS应用会话33。然而,另一种方法用于在客户端计算设备31处运行本地(又名移动)SaaS应用会话,这可能比嵌入式浏览器更方便,尽管具有比托管SaaS应用会话33中可用潜在地减少的功能。
作为示例,计算机系统30可以被实现为统一端点管理(UEM)系统,其中服务器32为企业提供以实行对客户端计算设备31的集中控制。应当注意,系统30的其他配置也是可能的,诸如例如企业移动性管理(EMM)配置。在这样的实现中,服务器32允许为用户访问各种应用和数据而实施数据丢失预防(DLP)和/或其他安全策略,并且在一些情况下可以结合安装在客户端计算设备31上的移动设备管理(MDM)代理来实现。此外,系统30可以利用移动应用管理(MAM)方法,其在应用级别处提供企业控制以用于管理和保护应用数据,而无需在客户端计算设备31上安装代理。根据一个示例实现,服务器32可以被实现为CitrixWorkspace实现的部分结合Citrix Netscaler Secure Web Gateway,以提供SaaS应用访问,如下文进一步讨论的那样,但是将理解,在不同实施例中可以使用其他系统和平台。
一般来说,本地SaaS应用是在客户端计算设备上运行并经由互联网直接与目标主机(例如,SaaS服务器)通信的应用。在一些情况下,本地SaaS应用可以在管理框架(例如,UEM/EMM)内操作,该框架根据某些规则和许可级别提供对互联网和/或企业资源的访问,如上所述。托管的SaaS应用会话在云或网络服务器32上(诸如在虚拟计算会话中)远程运行,并在客户端计算设备31处本地显示。作为示例,这可以经由托管浏览器来完成,所述托管浏览器诸如通过Citrix Secure Browser Standard Service提供的那些浏览器。然而,将理解,在不同实施例中可以使用其他形式的管理和托管浏览器。
一般来说,本方法允许客户端计算设备31和服务器32有利地协作以基于与客户端计算设备31相关联的上下文在SaaS应用的本地会话和SaaS应用的托管会话33之间切换。与客户端计算设备31相关联的上下文通常可以与SaaS应用正在如何被使用、与SaaS应用会话相关联的度量、客户端计算设备31正在何处使用等有关。客户端计算设备31和/或服务器32可以基于这些上下文参数中的多个之一中的改变,并且在一些实现中以透明的方式(即,用户不知道)在相同SaaS应用的不同会话之间动态地或自动地转换。在一些实施例中,如果期望的话,还可以在切换发生之前提示用户批准切换。
在现在参考图4讨论的一个示例实现中,与客户端计算设备31相关联的上下文可以对应于客户端计算设备的位置。在图示的示例中,在第一时间,客户端计算设备处于第一位置(位置1)处,在那里它使用由服务器32提供的托管SaaS应用会话33。然而,在转换到第二位置(位置2)时,客户端计算设备31与服务器32协作以转换或切换到本地SaaS应用会话。作为示例,如果客户端计算设备31处于工作位置处,则客户端计算设备可以切换到托管SaaS应用会话33,并且当客户端计算设备离开工作位置的附近时,则它切换到本地SaaS应用会话。将理解,在不同实现中可以使用各种其他位置触发器。
根据现在参考图5描述的另一个示例实施例,客户端计算设备31可以与具有多个不同角色的用户账户相关联,所述角色诸如例如工作角色和个人/家庭角色。因此,在这种情况下,用于在托管和本地SaaS应用会话之间切换的上下文可以对应于不同用户角色中的哪个当前是活跃的。在本示例中,当工作角色是活跃的(例如,用户已经登录到他们的企业账户上)时,则使用托管的SaaS会话。然而,当工作角色不再是活跃的(例如,客户端计算设备31从企业账户登出(logged off))时,则发生到本地SaaS会话的转换,如所示的那样。当然,在不同的实施例中可以使用其他角色和会话切换布置。
现在参考图6A-6B描述又一个上下文示例。这里,上下文对应于由SaaS应用请求的事务的类型。在图示的示例中,本地SaaS应用会话最初正由客户端计算设备31使用并且正在从互联网60请求公开可用的数据(图6A)。然而,当对安全企业资源进行第二次请求(例如,从企业服务器61访问公司数据库等)时,上下文中的该变化导致切换到托管的SaaS应用会话33,该托管的SaaS应用会话33可以与企业服务器61对接(interface)以便检索安全企业数据。各种其他类型的事务请求也可以被用于触发SaaS应用会话切换。
在现在参考图7A-7B描述的更进一步的实现中,上下文可以对应于安全风险级别。在图示的示例中,当确定相对低的安全风险级别时,由客户端计算设备31使用本地SaaS应用会话,从而允许客户端计算设备31经由互联网60直接通信。例如,当客户端计算设备31已经安装并运行适当的防病毒软件时,风险级别可能是低的。另一个风险级别因素可能是客户端计算设备是否已经安装/运行已知安全风险的任何可疑应用。又一个风险级别因素可能是客户端计算设备31是正在由用户照管(attended)还是无人照管,这可以基于键盘(例如,用户是否正在活跃地打字)、相机等来确定。
另一方面,当基于这些(或其他)安全因素中的一个或多个确定存在更高的风险级别时,则客户端计算设备31可以相应地切换到托管的SaaS应用会话33,其然后可以通过其更鲁棒的(robust)安全接口处置互联网60通信等。在使用Citrix Workspace的示例实现中,该框架允许收集与这样的安全因素相关的遥测数据(telemetry),尽管也可以使用其他方法或系统。
在现在参考图8描述的又一个示例中,与客户端计算设备相关联的上下文可以对应于与SaaS应用的托管会话相关联的等待时间。在图示的示例中,客户端计算设备31最初运行来自服务器32的托管SaaS应用会话33,但是由于一些原因,托管SaaS应用会话经受相对高的等待时间(例如,高于期望阈值)。结果,客户端计算设备与服务器32协作以切换到具有与其相关联的较低等待时间的本地SaaS应用会话。然而,应该注意,例如,如果与本地SaaS应用会话相关联的等待时间超过等待时间阈值,则切换也可以走另一条路(go theother way)(即,从本地到托管)。
还应该注意,在一些实现中,当等待时间越过(cross)期望的阈值时,这可能覆盖(override)安全协议,所述安全协议否则将禁止使用一个或另一个会话。即,该实施例可以与关于图7A-7B描述的实施例结合,使得安全策略通常可以规定要使用哪个会话,直到该会话的等待时间越过等待时间阈值,这意味着从安全角度来看,默认会话否则从UX角度来看将是有问题的,并且然后将执行到另一个SaaS应用会话的切换。还应当注意,本文中描述的其他实施例可以类似地结合各种实现来使用,例如,一个上下文触发器提供默认配置并且另一个上下文触发器导致默认配置的改变,或者在其他情况下,在SaaS应用会话中的改变发生之前可能需要多个上下文触发器。
在现在参考图9讨论的又一示例中,客户端计算设备可以包括一个或多个输入设备90,诸如相机、麦克风、加速度计等。此外,与客户端计算设备31相关联的上下文可以对应于由SaaS应用对使用(一个或多个)输入设备90的调用。例如,用于提交公司费用报告的SaaS应用在一些情况下可能需要收据的图片,在此刻客户端计算设备31可以从托管的SaaS应用会话33切换到具有本地控制输入设备90的能力的本地SaaS应用会话,而托管的SaaS应用会话没有本地控制输入设备90的能力。如果期望的话,当不再需要或不再使用输入设备90时,切换回到托管的SaaS应用会话33可以发生。
现在参考图10描述又一示例,其中与客户端计算设备31相关联的上下文对应于与由SaaS应用正在执行的操作相关联的处理级别。即,可以由托管SaaS应用会话33执行更广泛或计算密集的操作,并且反之亦然。在该示例中,示出了客户端计算设备31的显示200,其中提供了本地和托管SaaS应用会话两者的选项卡(tab)视图,并且允许用户通过在适当的选项卡上点击通过用户接口在它们之间选择。这里,最初选择了针对本地SaaS应用会话的选项卡,但是当需要复杂或冗长的处理操作时,用户点击托管的SaaS应用会话选项卡,以由此切换到托管的SaaS应用会话。该方法有利地提供了将更复杂的工作流卸载到基于web的SaaS应用会话的本地SaaS应用,而托管的SaaS应用会话在后台中静默操作。
应当注意,在所有实施例中,上述多选项卡视图不需要被用于在托管和本地SaaS应用会话之间切换,即,它可以如上面讨论的那样自动完成。此外,如果期望的话,也还可以使用图10中所示的选项卡视图用户接口来实现上述实施例。
现在参考图11的流程图210描述相关方法方面。在块211处开始,SaaS应用的本地会话在客户端计算设备31处运行,并且在块212-213处,用于客户端计算设备31的SaaS应用的托管会话33在服务器32处运行。该方法进一步说明性地包括在块214处基于与客户端计算设备31相关联的上下文在SaaS应用的本地会话和SaaS应用的托管会话33之间切换,如上面进一步讨论的那样。图11的方法说明性地在块215处结束。
上述方法有利地提供了取决于上下文变化的在SaaS应用会话的各种主机或版本之间的动态和可选自动转换。在管理的访问环境(例如,UEM/EEM)中,可以使用到应用的网络层中的“钩(hook)”基于请求/响应记录来确定上下文中的变化。结果,以上讨论的实现有利地提供了改进的虚拟计算环境,其具有在不同SaaS应用会话之间的动态切换以适应给定客户端计算设备正在其中操作的当前上下文。
关于确定客户端计算设备上下文的另外的细节,以及用于在不同SaaS应用会话之间转换的技术,可以在共同未决申请第15/971,157号和第16/156,256号中找到。这些申请也被转让给本申请人,并且所述两个申请由此通过引用被整体地并入本文中。
受益于前述描述和相关联附图中给出的教导,本领域技术人员将想到许多修改和其他实施例。因此,要理解,前述内容不限于示例实施例,并且修改和其他实施例旨在被包括在所附权利要求的范围内。

Claims (20)

1.一种计算机系统,包括:
客户端计算设备,其被配置成运行软件即服务(SaaS)应用的本地会话;以及
服务器,其被配置成针对客户端计算设备运行SaaS应用的托管会话;
其中,客户端计算设备和服务器协作以基于与客户端计算设备相关联的上下文在SaaS应用的本地会话和SaaS应用的托管会话之间切换。
2.如权利要求1所述的计算机系统,其中,与客户端计算设备相关联的上下文对应于客户端计算设备的位置。
3.如权利要求1所述的计算机系统,其中,客户端计算设备与具有多个不同角色的用户账户相关联,并且其中,与客户端计算设备相关联的上下文对应于来自多个不同角色之中的活跃角色。
4.如权利要求1所述的计算机系统,其中,与客户端计算设备相关联的上下文对应于由SaaS应用请求的事务的类型。
5.如权利要求1所述的计算机系统,其中,与客户端计算设备相关联的上下文对应于与由SaaS应用正在执行的操作相关联的安全风险级别。
6.如权利要求1所述的计算机系统,其中,与客户端计算设备相关联的上下文对应于与SaaS应用的托管会话相关联的等待时间。
7.如权利要求1所述的计算机系统,其中,客户端计算设备包括至少一个输入设备;并且其中,与客户端计算设备相关联的上下文对应于由SaaS应用对使用至少一个输入设备的调用。
8.如权利要求7所述的计算机系统,其中,至少一个输入设备包括相机、麦克风和加速度计中的至少一个。
9.如权利要求1所述的计算机系统,其中,与客户端计算设备相关联的上下文对应于与由SaaS应用正在执行的操作相关联的处理级别。
10.一种方法,包括:
在客户端计算设备处运行软件即服务(SaaS)应用的本地会话;
在服务器处针对客户端计算设备运行SaaS应用的托管会话;以及
基于与客户端计算设备相关联的上下文,在SaaS应用的本地会话和SaaS应用的托管会话之间切换。
11.如权利要求10所述的方法,其中,与客户端计算设备相关联的上下文对应于客户端计算设备的位置。
12.如权利要求10所述的方法,其中,客户端计算设备与具有多个不同角色的用户账户相关联,并且其中,与客户端计算设备相关联的上下文对应于来自多个不同角色之中的活跃角色。
13.如权利要求10所述的方法,其中,与客户端计算设备相关联的上下文对应于由SaaS应用请求的事务的类型。
14.如权利要求10所述的方法,其中,与客户端计算设备相关联的上下文对应于与由SaaS应用正在执行的操作相关联的安全风险级别。
15.如权利要求10所述的方法,其中,与客户端计算设备相关联的上下文对应于与SaaS应用的托管会话相关联的等待时间。
16.如权利要求10所述的方法,其中,客户端计算设备包括至少一个输入设备;并且其中,与客户端计算设备相关联的上下文对应于由SaaS应用对使用至少一个输入设备的调用。
17.一种方法,包括:
在包括至少一个输入设备的客户端计算设备处运行软件即服务(SaaS)应用的本地会话;以及
在服务器处针对客户端计算设备运行SaaS应用的托管会话;
基于由SaaS应用对使用至少一个输入设备的调用来切换到SaaS应用的本地会话,并且基于与由SaaS应用正在执行的操作相关联的处理级别高于阈值级别来切换到SaaS应用的托管会话。
18.如权利要求17所述的方法,进一步包括基于客户端计算设备的位置在SaaS应用的本地会话和SaaS应用的托管会话之间切换。
19.如权利要求17所述的方法,进一步包括基于由SaaS应用请求的事务的类型,在SaaS应用的本地会话和SaaS应用的托管会话之间切换。
20.如权利要求17所述的方法,进一步包括基于与由SaaS应用正在执行的操作相关联的安全风险级别,在SaaS应用的本地会话和SaaS应用的托管会话之间切换。
CN202080011867.0A 2019-02-01 2020-01-23 提供基于上下文的软件即服务(saas)应用会话切换的计算机系统和相关方法 Pending CN113348444A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/264,830 US11165871B2 (en) 2019-02-01 2019-02-01 Computer system providing context-based Software as a Service (SaaS) application session switching and related methods
US16/264830 2019-02-01
PCT/US2020/014700 WO2020159782A1 (en) 2019-02-01 2020-01-23 Computer system providing context-based software as a service (saas) application session switching and related methods

Publications (1)

Publication Number Publication Date
CN113348444A true CN113348444A (zh) 2021-09-03

Family

ID=69740540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080011867.0A Pending CN113348444A (zh) 2019-02-01 2020-01-23 提供基于上下文的软件即服务(saas)应用会话切换的计算机系统和相关方法

Country Status (9)

Country Link
US (2) US11165871B2 (zh)
EP (1) EP3918475A1 (zh)
JP (1) JP7046278B2 (zh)
KR (1) KR102354362B1 (zh)
CN (1) CN113348444A (zh)
AU (1) AU2020215507B2 (zh)
BR (1) BR112021015112B1 (zh)
CA (1) CA3127727C (zh)
WO (1) WO2020159782A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11190403B2 (en) * 2019-10-22 2021-11-30 Vmware, Inc. Configuration management for co-management
US11711279B2 (en) * 2021-10-26 2023-07-25 Juniper Networks, Inc. Application records using session information

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650303B1 (en) * 2013-03-29 2014-02-11 Citrix Systems, Inc. Data management for an application with multiple operation modes
EP3171271A1 (en) * 2015-11-17 2017-05-24 Sap Se Dynamic load balancing between client and server
CN109074274A (zh) * 2016-05-23 2018-12-21 思杰系统有限公司 虚拟浏览器集成

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405830B2 (en) * 2007-02-28 2016-08-02 Aol Inc. Personalization techniques using image clouds
US9239740B2 (en) * 2009-06-16 2016-01-19 Microsoft Technology Licensing, Llc Program partitioning across client and cloud
US9176744B2 (en) 2011-05-20 2015-11-03 Citrix Systems, Inc. Quickly provisioning a virtual machine by identifying a path to a differential file during pre-boot
US20130060842A1 (en) * 2011-08-21 2013-03-07 World Software Corporation Remote desktop and data management system
US9195768B2 (en) * 2011-08-26 2015-11-24 Amazon Technologies, Inc. Remote browsing session management
US20140040979A1 (en) * 2011-10-11 2014-02-06 Citrix Systems, Inc. Policy-Based Application Management
US9280377B2 (en) * 2013-03-29 2016-03-08 Citrix Systems, Inc. Application with multiple operation modes
US8613070B1 (en) 2012-10-12 2013-12-17 Citrix Systems, Inc. Single sign-on access in an orchestration framework for connected devices
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US9369449B2 (en) * 2013-03-29 2016-06-14 Citrix Systems, Inc. Providing an enterprise application store
US9355223B2 (en) * 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
WO2014168962A1 (en) * 2013-04-09 2014-10-16 Citrix Systems, Inc. Providing a native desktop using cloud-synchronized data
US10243786B2 (en) * 2013-05-20 2019-03-26 Citrix Systems, Inc. Proximity and context aware mobile workspaces in enterprise systems
US9866640B2 (en) * 2013-09-20 2018-01-09 Oracle International Corporation Cookie based session management
US20150188779A1 (en) * 2013-12-31 2015-07-02 Jut, Inc. Split-application infrastructure
WO2015105499A1 (en) * 2014-01-10 2015-07-16 Citrix Systems, Inc. Providing mobile application management functionalities
US9628329B2 (en) * 2014-03-21 2017-04-18 Citrix Systems, Inc. Ubiquitous collaboration in managed applications
US9858174B2 (en) * 2014-09-26 2018-01-02 Oracle International Corporation Updatable native mobile application for testing new features
US9538345B2 (en) 2015-01-28 2017-01-03 Citrix Systems, Inc. Systems and methods for performing load balancing and message routing for short message peer to peer protocol
US10409577B2 (en) * 2017-06-07 2019-09-10 Vmware, Inc. Hybrid application delivery that combines download and remote access

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650303B1 (en) * 2013-03-29 2014-02-11 Citrix Systems, Inc. Data management for an application with multiple operation modes
EP3171271A1 (en) * 2015-11-17 2017-05-24 Sap Se Dynamic load balancing between client and server
CN109074274A (zh) * 2016-05-23 2018-12-21 思杰系统有限公司 虚拟浏览器集成

Also Published As

Publication number Publication date
CA3127727A1 (en) 2020-08-06
BR112021015112B1 (pt) 2022-06-21
US20220038543A1 (en) 2022-02-03
US20200252468A1 (en) 2020-08-06
US11165871B2 (en) 2021-11-02
KR102354362B1 (ko) 2022-01-20
EP3918475A1 (en) 2021-12-08
CA3127727C (en) 2022-03-01
KR20210109044A (ko) 2021-09-03
AU2020215507B2 (en) 2022-02-03
AU2020215507A1 (en) 2021-08-19
JP7046278B2 (ja) 2022-04-01
WO2020159782A1 (en) 2020-08-06
BR112021015112A2 (pt) 2021-10-05
JP2022514985A (ja) 2022-02-16

Similar Documents

Publication Publication Date Title
AU2019261875B2 (en) Computer system providing SaaS application session state migration features and related methods
US20200336514A1 (en) CLIENT COMPUTING DEVICE PROVIDING PREDICTIVE PRE-LAUNCH SOFTWARE AS A SERVICE (SaaS) SESSIONS AND RELATED METHODS
US20220038543A1 (en) Computer system providing context-based software as a service (saas) application session switching and related methods
US20220239647A1 (en) Computing system providing saas application access with different capabilities based upon user personas
US10958705B2 (en) Client computing device providing end-to-end quality of service (QoS) control for software as a service (SaaS) sessions and related methods
EP3690683A1 (en) Computer system providing anonymous remote access to shared computing sessions and related methods
US10834205B2 (en) Network appliance having forwarding traffic mode to reduce traffic loss and related methods
US20210034389A1 (en) Desktop virtualization with linked power management to client devices

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210903

RJ01 Rejection of invention patent application after publication