CN111108736A - 使用云服务的接收器和浏览器的自动地址故障切换 - Google Patents

使用云服务的接收器和浏览器的自动地址故障切换 Download PDF

Info

Publication number
CN111108736A
CN111108736A CN201880061481.3A CN201880061481A CN111108736A CN 111108736 A CN111108736 A CN 111108736A CN 201880061481 A CN201880061481 A CN 201880061481A CN 111108736 A CN111108736 A CN 111108736A
Authority
CN
China
Prior art keywords
storefront
receiver
web
cloud
cloud service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880061481.3A
Other languages
English (en)
Other versions
CN111108736B (zh
Inventor
安得鲁·因尼斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN111108736A publication Critical patent/CN111108736A/zh
Application granted granted Critical
Publication of CN111108736B publication Critical patent/CN111108736B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/1034Reaction to server failures by a load balancer
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

用于计算设备(“CD”)的自动地址故障切换的系统和方法。该方法包括:通过CD访问云服务(“CS”);通过CD进行系统缓存操作,以本地存储(a)由CS提供的主店面的店面Web UI和(b)多个云连接器地址的离线副本;从CD正在执行的应用程序/桌面交付解决方案的接收器向每个CS和云连接器地址发送静默请求;如果CS响应了静默请求,则使用CS的地址操作接收器,用于进行对主店面的Web API调用;如果CS未响应静默请求,则使用与可达云连接器相关联的云连接器地址之一操作接收器或Webview,用于进行对主店面的Web API调用。

Description

使用云服务的接收器和浏览器的自动地址故障切换
技术领域
本公开总体上涉及计算系统。更具体地,本公开涉及用于使用云服务的应用程序/桌面(Application/Desktop)交付解决方案的接收器(Receiver)和Web浏览器(Browser)的自动地址(例如,统一资源定位符(“URL”))故障切换(failover)的实施系统和方法。
背景技术
传统的工作区服务(Workspace Service,“WS”)使用云托管的店面(StoreFront),用于使终端用户获得对应用程序和虚拟桌面的访问。本文使用的术语“店面”是指企业应用程序商店,其为用户提供界面以访问虚拟桌面和应用程序。对于某些客户来说,云被用作代理服务(brokering service),使正在使用预置软件(“on-prem”)的用户获得对应用程序/桌面交付解决方案(例如XenApp/Xen Desktop(“XA/XD”)的主机设备的访问。店面容易丢失云连接。
发明内容
本公开涉及用于计算设备的自动地址故障切换的实施系统和方法。该方法包括:由所述计算设备访问云服务;由所述计算设备进行系统缓存操作,以本地存储(a)由所述云服务提供的主店面的店面Web用户界面(“UI”)和(b)多个云连接器(Cloud Connector)地址的离线副本;从客户端计算设备正在执行的应用程序/桌面交付解决方案的接收器向所述云服务和所述多个云连接器地址中的每一个发送静默请求;如果所述云服务响应了所述静默请求,则使用所述云服务的地址操作所述接收器,用于进行对所述主店面的Web应用程序编程界面(“API”)调用;如果所述云服务未响应所述静默请求,则使用与可达云连接器相关联的所述多个云连接器地址之一操作所述接收器或Webview,用于进行对备份店面的WebAPI调用。
在某些方案中,所述系统缓存操作由所述应用程序/桌面交付解决方案的Web浏览器、所述店面Web UI或所述接收器进行。所述接收器是Web接收器或本机接收器。所述Web接收器配置为用Web浏览器进行操作,而所述本机接收器配置为提供Webview。这两个接收器均包含客户端软件,该客户端软件是访问由远离所述计算设备的服务器托管的应用程序和完整桌面所必需的。
至少在所述云服务不可到达时,所述计算设备加载所述店面Web UI的所述离线副本。所述客户端计算设备还生成与响应于所述静默请求的所述云服务和云连接器中的至少一个相关联的地址的列表。在进行对所述备份店面的所述Web API调用之前,认证所述可达云连接器。每次开始新的店面会话时,和/或每次接收到用户-软件交互以通过所述接收器或Webview进行操作时,都发送所述静默请求。该操作可以包括但不限于应用程序启动或应用程序刷新。
附图说明
将参考附图描述本解决方案,其中在所有附图中,相同的数字表示相同的项目。
图1是说明性系统的图示。
图2是说明性计算设备的图示。
图3A-3B(统称为“图3”)提供了用于操作Web接收器的说明性方法的流程图。
图4A-4B(统称为“图4”)提供了用于操作本机(Native)接收器的说明性方法的流程图。
具体实施方式
容易理解的是,可以以各种各样的不同配置来布置和设计如本文一般描述的以及在附图中示出的实施例的组件。因此,下面对附图中所示的各种实施例的更详细的描述并非旨在限制本公开的范围,而仅仅是各种实施例的代表。尽管在附图中给出了实施例的各个方面,但是除非特别指出,否则附图不一定按比例绘制。
在不脱离其精神或本质特征的情况下,本解决方案可以以其他特定形式来体现。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本解决方案的范围由所附权利要求而非本详细描述来指示。落入权利要求的等同含义和范围内的所有改变均应包含在其范围内。
在整个说明书中对特征、优点或类似语言的引用不意味着可以用本解决方案实现的所有特征和优点都应该是或者在本解决方案的任何单个实施例中。而是,提及特征和优点的语言应被理解为是指结合一实施例描述的特定特征、优点或特点包括在本解决方案的至少一个实施例中。因此,在整个说明书中对特征和优点以及类似语言的讨论可以但不一定指代相同的实施例。
此外,可以在一个或多个实施例中以任何合适的方式组合所描述的本解决方案的特征、优点和特点。根据本文的描述,相关领域的技术人员将认识到,可以在没有一具体实施例的一个或多个特定特征或优点的情况下实践本解决方案。在其他情况下,在某些实施例中可以认识到可能不存在于本解决方案的所有实施例中的附加特征和优点。
在整个说明书中对“一个实施例”、“一实施例”或类似语言的引用意味着结合所指示的实施例描述的具体特征、结构或特点包括在本解决方案的至少一个实施例中。因此,在整个说明书中,短语“在一个实施例中”、“在一实施例中”和类似语言可以但不一定都是指代相同的实施例。
除非上下文另外明确指出,否则本文中所使用的单数形式“一”、“一个”和“该”包括复数引用。除非另有定义,否则本文中使用的所有技术和科学术语具有与本领域普通技术人员通常理解的相同含义。本文中所使用的术语“包括”是指“包括但不限于”。
如以上在本文的背景技术部分中讨论的,传统的WS使用云托管的店面,用于使终端用户获得对应用程序和虚拟桌面的访问。对于某些客户(例如,商业组织)来说,云被用作代理服务,用于在预置软件上(或正在使用预置软件)的终端用户(例如,员工)获得对也在预置程序上的应用程序/桌面交付解决方案的主机的访问。需要一种应急(fallback)访问机制来使该代理服务能够抵御云连接的丢失。也就是说,仅需要连接到预置软件上的组件。意图是使商业组织可以完全失去它们的因特网访问,而不仅仅是对云托管的店面的访问,并且该解决方案仍允许人们访问其预置软件桌面应用程序。为了有效,该应急机制应自动运行而不需要额外的客户设置或干预,更不要求终端用户的知识或行为改变。
尽管可以明确地重新配置端点(end point)设备以指向新的店面地址(例如,URL),或者向用户解释如何重新配置其应用程序/桌面交付解决方案的接收器,以使用新地址(例如,URL),甚至在某些情况下这是必须的,但是非常希望地址(例如,URL)变更自动传播到接收器和Web浏览器,而无需终端用户干预。本文使用的术语“接收器(Receiver)”是指具有应用程序/桌面交付解决方案(例如,XA/XD)的客户端组件的本机接收器和/或Web接收器,其被配置为从集中式主机(例如,服务器或云基础架构)访问完整的桌面和各个应用程序。本文使用的术语“Web浏览器”是指用于检索、呈现和遍历万维网(“WWW”)上的信息资源的软件应用程序。每个信息资源都由URL标识。信息资源可以包括但不限于网页、图像、视频和其他内容。自动传播需要使用监视工具进行补充,该监视工具将跟踪此过程的成功并识别仍在使用旧地址(例如,URL)的用户或设备,以使客户能够平稳地管理该过程并确定何时可以停用或放弃旧地址(例如,URL)。
本解决方案基于以下提议:云连接器(例如,连接到Active Directory的服务器)可以(作为客户选择的选项)包括“隐藏”或备份店面组件以及备份桌面交付控制器(Desktop Delivery Controller,以下简称“DDC”)组件,这些组件被自动配置为提供对位于预置软件上的云管理的资源的备份访问。备份DDC组件通过利用本地主机缓存机制来维护来自云应用程序/桌面交付服务的相关发布信息的缓存,并且备份店面组件由云连接器自动配置有由云店面汇集的本地连接器DDC和任何其他预置软件应用程序/桌面交付解决方案部署的地址。由云管理的阈值软件虚拟桌面代理(Virtual Desktop Agent,“VDA”)已经使用云连接器作为其针对云DDC的代理注册点,因此,除了在将注册请求转发到云DDC失败时将其传送到备份DDC以外,无需进行任何改变。
剩下的挑战是接收器端点不了解云连接器,并且没有在连接失败时切换到备份DDC的地址(例如,URL)的逻辑,因此不会自动故障切换到备份组件。可以将自定义应急逻辑添加到本机接收器(例如,Citrix Receiver)。Web浏览器也需要类似的解决方案,因为那仍然是大多数终端用户最常用的访问方式。切换逻辑还需要考虑尝试从可能连接到诸如Internet的外部网络的端点联系内部网络资源时固有的安全风险。安全保护措施应使客户能够承担的负担尽可能少。
一个相关的问题是,店面被设计为具有单个负载平衡地址用于多个服务器,因此,无论店面部署的规模如何,接收器都只有一个地址(例如,URL)要处理。如果不进行任何改变,则意味着客户必须配置负载平衡地址用于云连接器,并部署负载平衡机制,如WindowsNetwork Load Balancing(“NLB”)或NetScaler,并且可能向所有云连接器发布传输层安全性(Transport Layer Security,“TLS”)服务器证书用于负载平衡(“LB”)地址。这将构成大量的额外管理工作,这与云连接器机器完全由云管理并且可以根据需要添加新实例进行替换或补充的模型相抵触。不将所有可用的云连接器用于备份会增加故障切换情况下的失败风险,例如,通过在单个云连接器上施加过多的负载。
鉴于上述情况,本解决方案涉及使用云服务为接收器和Web浏览器进行自动地址(例如,URL)故障切换的实施系统和方法。在某些方案中,HTML5离线机制以及用于X1类本机接收器的等效物用于使接收器和Web浏览器能够自动故障切换到使用备份云连接器或等效服务器进行本地应用程序/桌面交付解决方案资源访问。
与使用Web界面的PNAgent客户端的传统解决方案不同,本解决方案适用于Web浏览器以及本机接收器,并且与店面一起使用时,不需要客户执行任何明确的配置工作,如限定备份服务器地址(例如,URL)。由于本解决方案是自动配置的,因此没有客户可能将不适当的服务器指定为备份的危险,例如,与主服务器相比,配置设置或资源馈送不兼容的服务器。如果配置不正确匹配,则本机接收器可能会对订阅的应用程序的状态感到困惑,并认为该应用程序已被撤消而不仅仅是不可用。特别是在将应用程序流式传输到设备时,如果本地应用程序副本被错误地删除,则可能对终端用户造成严重后果。与App Streaming(“AS”)一起使用时,这是困扰着PNAgent解决方案的一个反复出现的问题。本文使用的术语“AppStreaming”是指按需分发软件的一种形式,其中仅需要将应用程序代码的必要部分安装在客户端设备上(即,当终端用户在应用程序中执行操作时,必要的代码和文件会在需要时通过网络106交付给客户端设备。
当测试内部服务器(例如,可从佛罗里达的思杰系统公司获得的云连接器)的备份地址(例如,URL)是否可到达时,本解决方案包括防止错误连接到错误主机的措施,例如,如果端点设备在外部网络上。即使不使用TLS,也可以为用户凭据提供自动保护。
现在参考图1,提供了说明性系统100的图示。系统100实施用于使用云服务为本机接收器114和Web浏览器116进行自动地址(例如,URL)故障切换的方法。在这方面,系统100包括客户设施140和云服务提供商设施142。客户设施140包括客户的一个或多个客户建筑物,如商业组织。客户具有多个终端用户1021-102N。终端用户可以包括但不限于员工。终端用户1021-102N分别使用客户端计算设备1041-104N用于各种目的,如访问和使用由云服务提供商提供的云服务。在这方面,客户端计算设备1041-104N被配置为促进对应用程序和虚拟桌面的访问,而不会由于连接丢失而造成中断。因此,客户端计算设备1041-104N已经在其上安装并执行各种软件应用程序。这些软件应用程序包括但不限于预置软件112、本机接收器114、Web浏览器116和/或Web接收器118。
在某些方案中,本机接收器114和Web接收器118可以分别包括但不限于佛罗里达州的思杰系统公司提供的思杰接收器和佛罗里达州的思杰系统公司提供的用于网址的思杰接收器。思杰接收器包含访问由远离客户端设备的服务器托管的应用程序和完整桌面所需的客户端软件。本解决方案在这方面不受限制。
客户端计算设备1041-104N还具有内部存储的各种信息。此信息包括但不限于帐户记录136。客户端计算设备1041-104N能够通过内联网相互通信,并通过因特网与外部设备通信。内联网和互联网在图1中被示出为网络106。
外部设备包括位于云服务提供商设施142处的一个或多个云服务服务器108。云服务提供商设施142包括云服务提供商的一个或多个建筑物。服务器108被配置为促进对应用程序和虚拟桌面的访问,而不会由于连接丢失而造成中断。因此,服务器108已经在其上安装并执行各种软件应用程序。这些软件应用程序包括但不限于主店面120和主桌面交付控制器(“DDC”)124。店面和DDC在本领域中是众所周知的,因此在此将不进行描述。在此可以使用任何已知的或即将已知的店面和/或DDC。服务器108还被配置为访问存储有发布信息160的数据存储110,并且还能够针对数据存储110进行写入/读取。
系统100中还设置有一个或多个云连接器150。所述云连接器位于客户设施140上。云连接器在本领域中是众所周知的,因此将不会在此详细描述。在此可以使用任何已知或即将已知的云连接器而不受限制,只要其被配置为提供备份店面和DDC即可。在所有方案中,每个云连接器都包含一台服务器。
在某些方案中,每个云连接器都托管备份店面122和备份DDC126。每个云连接器都具有系统缓存128,在该系统缓存128中存储有发布信息130。发布信息包括存储在数据存储110中的发布信息160的全部或部分。发布信息130、160包括但不限于软件应用程序、代码和/或媒体内容(例如,文本、图像、视频等)。
在其他方案中,备份店面和DDC安装在与连接器分开的机器上,前提是它们仍链接到系统缓存。系统缓存可以由云连接器管理,但可以存储在托管备份店面和DDC的分开的机器上,也可以从云连接器复制到这些机器上。
在某些方案中,本解决方案利用了通用Web用户界面(UI)的接收器X1设计,用于Web浏览器116和本机接收器114。本机接收器114通过使用HTML5离线应用程序缓存模式的简化版本从主店面120提前下载Web UI资产132进行工作,同时将Web接收器118更改为使用标准HTML5机制(应用程序缓存或可能的Service Worker)以针对Web浏览器116进行相同的操作。在某些方案中,系统缓存更新组件设置有与系统缓存128通信的云服务108。值得注意的是,Web接收器118包括在Web浏览器116中运行的Web UI应用程序。
接收器114和Web浏览器116在具有与主店面120的连接时自动检查Web UI资产132的更改,并适时地更新这些资产的本地缓存,并因此即使没有与主店面120的连接,也可以加载和运行缓存的Web UI资产132。
需要备份地址(例如,URL)的缓存知识,以在云连接丢失时支持故障切换。一种自然的方法是使用发现文档(Discovery Document)或其他元数据用于店面120,并将其下载并缓存在HTML5本地存储中用于Web浏览器情况。它已由本机接收器114保存在磁盘或注册表中。
为了防止在尝试联系云连接器地址(例如,URL)时意外连接到错误的主机,可以使用若干种措施来补充或替代TLS保护的默认推荐:对不可重播的认证方法的限制;服务器验证秘密的应用层认证机制;对可重播凭证的应用层保护;和策略控件,其仅允许具有外部安全保护措施的端点使用云连接器地址(例如,URL)(例如,默认情况下禁用备份URL缓存,但是通过使用本地策略覆写能够将其用于内部网络上已知的特定端点)。
现在参考图2,提供了计算设备200的示例性架构的图示。图1的计算设备1041-104N、云连接器150和服务器108与计算设备200相同或相似。因此,对计算设备200的讨论足以理解系统100的这些组件。
在某些方案中,本解决方案以客户端-服务器架构使用。因此,图2中所示的计算设备架构足以理解客户端计算设备和服务器的细节。
计算设备200可以包括比图2中所示的组件更多或更少的组件。然而,所示的组件足以公开实施本解决方案的说明性解决方案。图2的硬件架构表示代表性计算设备的一种实施方式,该代表性计算设备被配置为能够如本文所述使用云服务为应用程序/桌面交付解决方案的接收器和Web浏览器进行自动地址(例如,URL)故障切换。这样,图2的计算设备200实施本文描述的方法的至少一部分。
计算设备200的一些或全部组件可以作为硬件、软件和/或硬件和软件的组合来实施。硬件包括但不限于一个或多个电子电路。该电子电路可以包括但不限于无源组件(例如,电阻器和电容器)和/或有源组件(例如,放大器和/或微处理器)。无源和/或有源组件可适于、布置成和/或编程为执行本文描述的一个或多个方法、程序或功能。
如图2中所示,计算设备200包括用户接口202、中央处理单元(“CPU”)206、系统总线210、通过系统总线210连接到计算设备200的其他部分并且可访问的存储器212、以及连接到系统总线210的硬件实体214。用户接口可以包括输入设备和输出设备,它们促进用户-软件交互,用于控制计算设备200的操作。输入设备包括但不限于物理和/或触摸键盘250。输入设备可以经由有线或无线连接(例如,
Figure BDA0002420058130000091
连接)连接到计算设备200。输出设备包括但不限于扬声器252、显示器254和/或发光二极管256。
至少一些硬件实体214执行涉及访问和使用存储器212的动作,该存储器可以是随机存取存储器(“RAM”)、磁盘驱动器和/或光盘只读存储器(“CD-ROM”)。硬件实体214可以包括磁盘驱动单元216,该磁盘驱动单元包括计算机可读存储介质218,计算机可读存储介质218上存储有被配置为实施本文所描述的一个或多个方法、过程或功能的一组或多组指令220(例如,软件代码)。在计算设备200执行指令220的过程中,指令220也可以全部或至少部分地驻留在存储器212内和/或CPU 206内。存储器212和CPU 206也可以构成机器可读介质。本文使用的术语“机器可读介质”是指存储所述一组或多组指令220的单个介质或多个介质(例如,集中式或分布式数据库和/或关联的高速缓存和服务器)。本文使用的术语“机器可读介质”还指代能够存储、编码或携带一组指令220以供计算设备200执行并且使计算设备200执行本公开的任何一个或多个方法的任何介质。
现在参考图3,提供了用于操作Web浏览器(例如,图1的Web浏览器116)的说明性方法300的流程图。方法300开始于302,并且继续到304,其中执行用于云服务的首次使用(“FTU”)的动作。在这方面,终端用户(例如,图1的终端用户1021)启动安装在客户端计算设备(例如,图1的客户端计算设备1041)上的Web浏览器。在某些方案中,Web浏览器提供选项卡式文档界面(Tabbed Document Interface,“TDI”),TDI可以在单个窗口中维护多个网页或文档。显示时,每个项目占据Web浏览器的整个查看区域。通过多个浏览器选项卡(tab)中的相应一个来选择每个项目以进行显示。本解决方案在这方面不受限制。Web浏览器可以包括不支持选项卡或多个窗口的Web浏览器。
接下来在306,终端用户使用主店面地址(例如,URL)打开浏览器选项卡。结果,主店面(例如,图1的主店面120)的店面Web UI加载到浏览器选项卡中,如308所示。主店面由云服务提供。在310,Web浏览器和/或店面Web UI执行系统缓存操作。该系统缓存操作被执行为在客户端计算设备本地存储(a)店面Web UI和(b)云连接器地址的离线缓存副本。云连接器地址可以包括但不限于URL和/或反向代理URL。URL可以经由网关引用云连接器(例如,图1的云连接器150)。在312,使用主店面完成操作,或者与云服务的连接丢失。
在第二次使用(“STU”)期间,使用Web浏览器以使用主店面地址访问主店面,如314所示。这次,店面Web UI的离线缓存副本可选地加载到Web浏览器。例如,当无法联系云服务时,离线缓存的副本被加载到Web浏览器中,如316所示。
此时,在318,Web接收器(例如,图1的Web接收器118)执行操作,以将静默请求发送到提供主店面的云服务(例如,图1的云服务服务器108),并发送到与在310本地存储的云连接器地址相关联的云连接器(例如,图1的云连接器150)。在某些方案中,静默请求包括具有可配置的超时的Ajax调用,该超时被选择为将故障切换延迟限制为合理长度。Ajax调用在本领域中是众所周知的,因此在此将不进行描述。在320,Web接收器从可达的云服务和/或云连接器,即,在所配置的超时时间段内响应各自静默请求的那些服务器,接收响应。在322,生成地址(例如,URL)列表。该列表中的地址与可达的云服务和/或云连接器相关联。本解决方案不限于列表实施方式。在此可以使用表格、数据映射和其他数据组织技术而没有限制。
在列表生成之后,确定云服务是否响应了静默请求。如果是[324:是],则执行326,在326,Web接收器使用云服务的地址操作,用于进行对主店面的Web API调用。Web API调用在本领域中是众所周知的,因此在此将不进行描述。如果不是[324:否],则方法300继续到图3B的328。
如图3B中所示,328涉及从与第一可达云连接器相关联的地址列表中选择地址。该地址可以随机选择,也可以按照预定顺序选择。然后,在330,Web接收器使用在328中选择的地址进行操作。在332,Web接收器执行操作以认证第一可达云连接器。认证设备的技术在本领域中是众所周知的。在此可以不受限制地使用任何已知或即将已知的设备认证技术。
无论地址是用于直接访问还是用于网关代理访问,Web接收器都必须注意检测何时地址将被解析到错误的服务器,例如何时存在强制网络访问门户(例如,酒店WiFi)或DNS提供商返回不存在的主机的登录页面地址。作为深度防御措施,云连接器应支持应用程序协议层认证机制,以允许Web接收器验证其是否到达有效的云连接器。例如,Web接收器可以在众所周知的URL上公开一个无法猜测的随机数,其中将该数字从主店面报告给店面WebUI的代码,或者如果Web浏览器支持WebCrypto,则可以使用公钥/私钥对。
为了支持TLS访问,如果客户已将Microsoft AD证书服务部署为内部公钥基础架构(Public Key Infrastructure,“PKI”),则云连接器可以使用标准AD自动注册机制来获取机器证书。否则,客户可以为每台云连接器机器手动设置服务器证书,或者使用包括在基本机器映像中的通配符证书。如果未启用TLS,但客户不愿意明文允许AD密码凭证,则可以将云连接器的备份店面实例配置为仅支持域直通认证(又名Kerberos/NTLM),这在没有TLS的公司内部网络上使用是相对安全的。这将支持已部署有可用于Windows接收器的域直通(SSON)组件的Web接收器端点,只要云连接器机器位于允许静默直通的因特网浏览器(“IE”)区域(zone)中即可。它还能够被几乎任何Web浏览器使用,尽管如果端点设备未加入域或者Web浏览器不支持静默域直通,它将触发浏览器密码提示。终端用户在连接到预置软件应用程序/桌面会话时会具有另一个密码提示,但这对于故障切换访问情况是可以接受的。
作为选择,如果可以使用WebCrypto,则在确认服务器可以用相应的私钥对质询进行签名之后,可以用云连接器的公钥对密码或其他可重播凭据进行加密。
再次参考图3B,在334确定第一可达云连接器是否被认证。如果第一可达云连接器未被认证[334:否],则执行336,其中从与第二云连接器相关联的列表中选择另一地址。然后,使用该地址重复330-334。
如果第一或第二可达云连接器被认证[334:是],则执行338,其中Web接收器使用与被认证的云连接器相关联的地址操作,用于进行对备份店面(例如,图1的备份店面122)的Web API调用。接下来,在340,Web接收器接收用户软件交互以注销备份店面会话或接收备份店面超时的通知。在稍后的某个时间,Web接收器接收开始下一个店面会话的请求(例如,通过用户登录或页面刷新),如342所示。作为响应,执行344,其中方法300返回到318。
现在参考图4A-4B,提供了用于操作本机接收器(例如,图1的本机接收器114)的说明性方法400的流程图。如图4A中所示,方法400从402开始并继续到404,其中终端用户(例如,图1的终端用户1021)启动安装在客户端计算设备(例如,图1的客户端计算设备1041)上的本机接收器。该本机接收器配置为提供Webview。Webview在本领域中是众所周知的,因此这里将不再详细描述。仍然应该理解,Webview包括用于OS的系统组件,其允许软件应用程序直接在应用程序内显示来自WWW的内容。
接下来,在406,客户端计算设备接收用户-软件输入,以在FTU期间提供主店面地址。然后在408由本机接收器执行系统缓存操作。执行系统缓存操作以将(a)用于主店面(例如,图1的主店面120)的店面Web UI(b)云连接器地址的离线缓存副本存储在客户端计算设备本地。主店面由云服务提供。云连接器地址可以包括但不限于URL和/或反向代理URL。URL可以经由网关来引用云连接器(例如,图1的云连接器150)。一旦系统缓存操作被完全执行,就将店面Web UI的离线副本加载到Webview中,如410所示。在412,使用主店面完成操作或丢弃与云服务的连接。
在STU期间,将店面Web UI的离线副本再次加载到Webview中,如414所示。在416,本机接收器将静默请求发送到提供主店面的云服务以及与在408存储在本地的云连接器地址相关联的云连接器。在410,本机接收器从可达的云服务和/或云连接器,即响应相应静默请求的那些服务器,接收响应。在422,生成地址列表(例如,URL)。该列表中的地址与可达的云服务和/或云连接器相关联。
在列表生成之后,确定云服务是否响应了静默请求。如果是[424:是],则执行426,其中本机接收器和/或Webview使用用于云服务的地址操作,用于进行对主店面的Web API调用。Web API调用在本领域中是众所周知的,因此在此将不进行描述。如果不是[424:否],则方法400继续到图4B的428。
如图4B中所示,428涉及从与第一可达云连接器相关联的地址列表中选择地址。可以随机地或者按预定顺序选择该地址。然后,在430本机接收器和/或Webview使用在428中选择的地址进行操作。在432,本机接收器执行操作以认证第一可达云连接器。认证设备的技术在本领域中是众所周知的。在此可以不受限制地使用任何已知或即将已知的设备认证技术。
在434确定第一可达云连接器是否被认证。如果第一可达云连接器未被认证[334:否],则执行436,其中从与第二云连接器相关联的列表中选择另一地址。然后,使用该地址重复430-434。
如果第一或第二可达云连接器被认证[434:是],则执行438,其中本机接收器和/或Webview使用与被认证的云连接器相关联的地址操作,用于进行对备份店面(例如,图1的备份店面122)的Web API调用。接下来,在440,本机接收器通过本机接收器和/或Webview(例如,通过用户-软件交互来登录或启动应用程序,或通过应用程序刷新)接收(a)用户-软件交互以注销备份店面会话,(b)备份店面超时的通知,或(c)用户-软件交互以进行操作。随后,执行442,其中方法400返回到418。
在某些本机接收器方案中,授权(Auth)管理器用于通过店面Web UI调解所有网络通信和认证。本机接收器可能还具有本机商店(Native Store)客户端组件(如Windows上的Self Service插件),该组件与店面Web UI并行运行,并且由店面Web UI代码使用以执行某些操作(如应用程序启动)。例如当用户在Windows“开始”菜单或桌面上启用快捷方式或文件类型关联时,可以在根本不加载店面Web UI代码的情况下使用本机商店客户端组件。
结果,最好由本机接收器代码而不是店面Web UI层来处理备份URL的知识。这将在授权管理器上方的通用商店API抽象层(abstraction layer)上进行,其充当从店面Web UI或本机商店客户端组件进行API调用的漏斗点(funnel point)。抽象层将根据需要自动将API请求定向到备份URL代表调用代码,并添加指示故障切换模式何时生效的专门的返回代码或信号。
当用户打开本机接收器时,本机接收器立即加载缓存的店面Web UI代码,然后尝试与云的主店面进行网络通信。当店面Web UI代码启动对店面的API请求时,该API请求通过本机商店API抽象层路由到授权管理器组件。本机商店客户端类似地运行。
本机接收器维护云的主店面的本地配置数据,其还提供网关访问路径的知识。即使未与配置的商店相关联,授权管理器也能够向任何URL发出直接Web服务请求,并对因响应而产生的认证挑战做出响应,因此对云连接器的备份店面的直接认证非常简单。如果可经由预置软件NetScaler网关(“NSG”)到达云连接器,则向授权管理器提供网络拓扑的知识。这通过明确定义链接到主商店的商店的发现文档(Discovery Document)或服务记录中的每个云连接器(带有关联的网关和信标)的备份店面来完成。
进行API调用时,授权管理器咨询本机接收器中的单独可达性逻辑,以确定主店面的地址(例如,URL)是否可达,或者该地址的任何相关网关连接路径是否可达。如果API请求由于主店面的可达性不足而失败,但是备份店面是可达的,则API请求失败,并出现明显的错误情况。然后,商店API抽象层将自动上下文切换到备份店面并重试该请求。如前所述,独特的返回码或信号用于通知商店API客户端逻辑故障切换模式已生效。
可以基于本解决方案来构建其他潜在特征。一些客户具有大的地理分布环境,以至于他们针对不同地理位置具有多个应用程序/桌面交付解决方案部署,并且对终端用户进行培训以了解哪种部署适合执行特定任务。由于分布在世界各地的部署数量众多,因此通过单个店面进行的所有部署的汇集无法提供令人满意的性能。客户希望在诸如基于浏览器的瘦客户端终端的所有访问设备上显示有通用“主画面”,该主画面具有所有部署的列表,以便用户可以在获取登录画面之前选择相关的部署。
本解决方案可以适于解决这种情况,从而将不同的部署视为由特定商店列出的备份商店,该特定商店主要用于交付通用的(定制的)Web UI。定制的Web UI示出所有商店的列表供用户选择,而不是在故障切换的上下文中由Web UI代码自动选择。然后,Web UI代码可以访问所选商店API,如故障切换情况中那样。之所以可行,是因为所有商店交互都使用Ajax来进行,并且可以通过在每个商店服务器上进行适当的跨域资源共享(Cross-OriginResource Sharing,“CORS”)配置进行跨域访问。因为所有商店都属于同一组织,所以由能够访问另一服务器上的资源(以及访问所述另一服务器所需的登录凭据)的一个商店控制Web UI代码是可以接受的。
通过在商店之间引入单点登录(Single Sign-On,“SSO”)信任链接(可以设计为允许商店之间的安全密码共享),或者如果不需要密码共享(例如,如果使用联合身份认证服务(Federated Authentication Service,“FAS”)进行启动,或者如接收器SSON或智能卡直通(pass-through)之类的机制),则仅仅通过使用所有商店都信任的标准身份提供者(Identity Provider,“IdP”),可以实现从Web接收器到多个商店的集成登录。
尽管已经相对于一个或多个实施方式示出和描述了本解决方案,但是本领域的其他技术人员在阅读并理解了本说明书和附图之后将会想到等同的变更和修改。另外,尽管可能已经仅针对几种实施方式中的一种实施方式公开了本解决方案的特定特征,但是这种特征可以与其他实施方式的一个或多个其他特征组合,这对于任何给定的或特定的应用可能是期望的和有优势的。因此,本解决方案的广度和范围不应受到任何上述实施例的限制。而是,本解决方案的范围应根据所附权利要求及其等同物来限定。

Claims (18)

1.一种用于计算设备的自动地址故障切换的方法,包括:
由所述计算设备访问云服务;
由所述计算设备进行系统缓存操作以本地存储(a)由所述云服务提供的主店面的店面Web用户界面UI和(b)多个云连接器地址的离线副本,;
从客户端计算设备正在执行的应用程序/桌面交付解决方案的接收器向所述云服务和所述多个云连接器地址中的每一个发送静默请求;
如果所述云服务响应了所述静默请求,则使用所述云服务的地址操作所述接收器,用于进行对所述主店面的Web应用程序编程界面API调用;和
如果所述云服务未响应所述静默请求,则使用与可达云连接器相关联的所述多个云连接器地址之一操作所述接收器或Webview,用于进行对备份店面的Web API调用。
2.根据权利要求1所述的方法,其中所述系统缓存操作由所述应用程序/桌面交付解决方案的Web浏览器、所述店面Web UI或所述接收器来进行。
3.根据权利要求1所述的方法,其中所述接收器是Web接收器或本机接收器。
4.根据权利要求1所述的方法,还包括:至少在所述云服务不可达时,由所述计算设备进行加载操作,以加载所述店面Web UI的所述离线副本。
5.根据权利要求1所述的方法,还包括:生成与响应了所述静默请求的所述云服务和云连接器中的至少一个相关联的地址的列表。
6.根据权利要求1所述的方法,还包括:在进行对所述备份店面的Web API调用之前,认证所述可达云连接器。
7.根据权利要求1所述的方法,还包括:每次开始新的店面会话时,重复所述发送。
8.根据权利要求1所述的方法,还包括:每次接收到用户-软件交互以经由所述接收器或Webview进行操作时,重复所述发送。
9.根据权利要求8所述的方法,其中所述操作包括应用程序启动或应用程序刷新。
10.一种系统,包括:
处理器;和
非暂时性计算机可读存储介质,其包括编程指令,所述编程指令配置为使所述处理器实施用于自动地址故障切换的方法,其中所述编程指令包括以下指令:
访问云服务;
进行系统缓存操作以本地存储(a)由所述云服务提供的主店面的店面Web用户界面UI和(b)多个云连接器地址的离线副本;
从应用程序/桌面交付解决方案的接收器向所述云服务和所述多个云连接器地址中的每一个发送静默请求;
如果所述云服务响应了所述静默请求,则使用所述云服务的地址操作所述接收器,用于进行对所述主店面的Web应用程序编程接口API调用;和
如果所述云服务未响应所述静默请求,则使用与可达云连接器相关联的所述多个云连接器地址之一操作所述接收器或Webview,用于进行对备份店面的Web API调用。
11.根据权利要求10所述的系统,其中所述系统缓存操作由所述应用程序/桌面交付解决方案的Web浏览器、所述店面Web UI或所述接收器来进行。
12.根据权利要求10所述的系统,其中所述接收器是Web接收器或本机接收器。
13.根据权利要求10所述的系统,其中所述编程指令还包括至少在所述云服务不可达时加载所述店面Web UI的离线副本的指令。
14.根据权利要求10所述的系统,其中所述编程指令还包括生成与响应了所述静默请求的所述云服务和所述云连接器中的至少一个相关联的地址的列表的指令。
15.根据权利要求10所述的系统,其中所述编程指令还包括在进行对所述备份店面的所述Web API调用之前认证所述可达云连接器的指令。
16.根据权利要求10所述的系统,其中每次开始新的店面会话时,发送所述静默请求。
17.根据权利要求10所述的系统,其中每次接收到用户-软件交互以经由所述接收器或Webview进行操作时,发送所述静默请求。
18.根据权利要求17所述的系统,其中所述操作包括应用程序启动或应用程序刷新。
CN201880061481.3A 2017-09-22 2018-09-11 用于计算设备的自动地址故障切换的方法和系统 Active CN111108736B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/712,405 2017-09-22
US15/712,405 US10389822B2 (en) 2017-09-22 2017-09-22 Automated address failover for receivers and browsers using a cloud service
PCT/US2018/050441 WO2019060178A1 (en) 2017-09-22 2018-09-11 AUTOMATED ADDRESS SWITCH FOR RECEIVERS AND BROWSERS USING CLOUD SERVICE

Publications (2)

Publication Number Publication Date
CN111108736A true CN111108736A (zh) 2020-05-05
CN111108736B CN111108736B (zh) 2021-08-03

Family

ID=63998731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880061481.3A Active CN111108736B (zh) 2017-09-22 2018-09-11 用于计算设备的自动地址故障切换的方法和系统

Country Status (6)

Country Link
US (1) US10389822B2 (zh)
EP (1) EP3662643B1 (zh)
CN (1) CN111108736B (zh)
AU (1) AU2018337626B2 (zh)
CA (1) CA3075175C (zh)
WO (1) WO2019060178A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10673837B2 (en) 2018-06-01 2020-06-02 Citrix Systems, Inc. Domain pass-through authentication in a hybrid cloud environment
US11474840B1 (en) 2021-05-17 2022-10-18 Citrix Systems, Inc. Computing device and related methods providing virtual session launching from previously cached assets
WO2022246343A1 (en) * 2021-05-17 2022-11-24 Citrix Systems, Inc. Computing device and related methods providing virtual session launching from previously cached assets
EP4312418A1 (en) * 2022-07-29 2024-01-31 Abb Schweiz Ag Method for automatic selection of servers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102132255A (zh) * 2008-05-29 2011-07-20 思杰系统有限公司 故障切换时使用备份虚拟服务器的指标通过多个虚拟服务器负载平衡的系统和方法
CN105190557A (zh) * 2012-10-16 2015-12-23 思杰系统有限公司 用于通过多级api集成在公共与私有云之间进行桥接的系统和方法
US20160210209A1 (en) * 2015-01-15 2016-07-21 Cisco Technology, Inc. High availability and failover

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9240965B2 (en) * 2010-08-31 2016-01-19 Sap Se Methods and systems for business interaction monitoring for networked business process
US20140304804A1 (en) * 2013-04-03 2014-10-09 Epsilon Technology Solutions, Inc On-premise cloud appliance
US10069700B2 (en) * 2015-03-31 2018-09-04 Interactive Intelligence Group, Inc. System and method for offline survivability

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102132255A (zh) * 2008-05-29 2011-07-20 思杰系统有限公司 故障切换时使用备份虚拟服务器的指标通过多个虚拟服务器负载平衡的系统和方法
CN105190557A (zh) * 2012-10-16 2015-12-23 思杰系统有限公司 用于通过多级api集成在公共与私有云之间进行桥接的系统和方法
US20160210209A1 (en) * 2015-01-15 2016-07-21 Cisco Technology, Inc. High availability and failover

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RAMPRASADTECH: "Citrix XenApp and Desktop (Studio) Questions & Answers", 《来自互联网:HTTP://RAMPRASADTECH.COM/WP-CONTENT/UPLOADS/2017/11/XENAPP-AND-DESKTOP-INTERVIEW-QUESTIONS-ANSWERS-7.X-OCT2017.PDF》 *

Also Published As

Publication number Publication date
WO2019060178A1 (en) 2019-03-28
CN111108736B (zh) 2021-08-03
CA3075175A1 (en) 2019-03-28
US10389822B2 (en) 2019-08-20
EP3662643A1 (en) 2020-06-10
AU2018337626A1 (en) 2020-03-26
US20190098095A1 (en) 2019-03-28
EP3662643B1 (en) 2020-09-09
AU2018337626B2 (en) 2020-12-24
CA3075175C (en) 2021-03-02

Similar Documents

Publication Publication Date Title
US11792274B2 (en) Managing browser session navigation between one or more browsers
US11501057B2 (en) Enabling file attachments in calendar events
US20200366661A1 (en) Using credentials stored in different directories to access a common endpoint
US10826905B2 (en) Secure access to on-premises web services from multi-tenant cloud services
US9672380B2 (en) Stack fusion architecture including distributed software clusters to enable software communication services
US20190207812A1 (en) Hybrid cloud network configuration management
CN111108736B (zh) 用于计算设备的自动地址故障切换的方法和系统
US11381945B2 (en) Use of identity data associated with a device for directing communications to another device
US11522847B2 (en) Local mapped accounts in virtual desktops
WO2016171735A1 (en) Secure in-band service detection
US20160164924A1 (en) Stack Fusion Software Communication Service
CN113518091A (zh) 多用户认证方法、装置、系统及存储介质
Wesselius et al. Publishing Exchange Server

Legal Events

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