CN113906390A - 用于使用虚拟应用访问远程存储文件的方法和系统 - Google Patents

用于使用虚拟应用访问远程存储文件的方法和系统 Download PDF

Info

Publication number
CN113906390A
CN113906390A CN202080040004.6A CN202080040004A CN113906390A CN 113906390 A CN113906390 A CN 113906390A CN 202080040004 A CN202080040004 A CN 202080040004A CN 113906390 A CN113906390 A CN 113906390A
Authority
CN
China
Prior art keywords
server
session
storage provider
application
file
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
CN202080040004.6A
Other languages
English (en)
Inventor
G·莫姆齐洛夫
M·英盖尔
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 CN113906390A publication Critical patent/CN113906390A/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种方法包括:通过计算设备上的工作区客户端从工作区服务器取回第一资源关联集合。所述第一资源关联集合标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。所述方法还包括:通过所述工作区客户端从所述第一资源关联集合生成第二资源关联集合。所述第二资源关联集合标识所述虚拟化服务器上的、可操作以对所述一个或多个数据文件类型中的每个数据文件类型执行操作的应用的子集。所述方法还包括:通过所述计算设备上的存储提供者客户端获得所述第二资源关联集合。所述存储提供者客户端被配置为:使所述虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。

Description

用于使用虚拟应用访问远程存储文件的方法和系统
背景技术
云存储系统是指一种将数字数据存储在逻辑池中作为虚拟存储架构的计算机数据存储的形式。物理计算机数据存储本身可以跨越多个服务器(有时在多个位置)来将数字数据存储为云存储数据。云存储数据由云服务提供者访问和管理。
发明内容
提供本概括部分以便用简化的形式介绍将在以下的详细描述中进一步描述的概念选择。本概括部分并不是旨在标识要求保护的主题的关键特征或本质特征或组合,也不是使用该概括部分来限制要求保护的主题的保护范围。
在一个方面,一种方法包括:通过计算设备上的工作区客户端从工作区服务器取回第一资源关联集合。第一资源关联集合标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。该方法还包括:通过工作区客户端从第一资源关联集合生成第二资源关联集合。第二资源关联集合标识虚拟化服务器上的、可操作以对一个或多个数据文件类型中的每个数据文件类型执行操作的应用的子集。该方法还包括:通过计算设备上的存储提供者客户端获得第二资源关联集合。存储提供者客户端被配置为:使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
在实施例中,该方法还可以包括:通过工作区客户端建立与工作区服务器的计算会话。工作区客户端取回虚拟化服务器上的被授权由计算设备的用户访问的应用。
在实施例中,该方法还可以包括:通过存储提供者客户端将第二资源关联集合存储在计算设备的高速缓存中;以及响应于与工作区服务器的计算会话的终止,通过存储提供者客户端来清除高速缓存。存储提供者可以是远程存储提供者。
在另一个方面,一种方法包括:通过工作区服务器从代理服务器取回第一资源关联集合。第一资源关联集合标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。该方法还包括:通过工作区服务器生成第二资源关联集合。第二资源关联集合标识虚拟化服务器上的、可操作以对一个或多个数据文件类型中的每个数据文件类型执行操作的应用的子集。该方法还包括:通过空间服务器上的存储提供者客户端获得第二资源关联集合。存储提供者客户端被配置为:使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
在实施例中,该方法还可以包括:通过工作区服务器建立与代理服务器的计算会话。工作区服务器可以取回虚拟化服务器上的被授权由与工作区服务器通信的计算设备的用户访问的应用。
在另一些实施例中,该方法还可以包括:通过存储提供者客户端将第二资源关联集合存储在工作区服务器的高速缓存中;以及响应于与代理服务器的计算会话的终止,通过存储提供者客户端来清除高速缓存。存储提供者可以是远程存储提供者。
在其他方面,一种方法包括:通过工作区服务器接收来自计算设备的针对虚拟化服务器上的应用的请求。请求包括应用标识符(ID)和去往如下数据文件的文件路径,所述数据文件存储提供者上的,并且应用将对该数据文件执行操作。该方法还包括:通过工作区服务器从存储提供者获得会话句柄。会话句柄包括如下信息,该信息使得计算设备能够从计算设备和虚拟化服务器之间的计算会话访问存储提供者。该方法还包括:通过工作区服务器生成连接描述文件,连接描述文件包括用于建立计算会话和数据会话的信息,其中,计算会话在计算设备和虚拟化服务器之间,并且数据会话在虚拟化服务器和存储提供者之间。此外,该方法包括:通过工作区服务器向计算设备提供连接描述文件,使得连接描述文件的执行使计算设备的用户能够使用由虚拟化服务器提供的应用来对数据文件执行操作。
在实施例中,该方法还可以包括:通过工作区服务器向认证平台发出针对授权令牌的请求,所述授权令牌由计算设备用来访问可从存储提供者访问的数据文件。请求可以包括至少用户的凭证和去往数据文件的文件路径。
在另一个实施例中,该方法还可以包括:通过由工作区服务器向存储提供者发送针对会话句柄的请求来获得会话句柄。请求可以包括授权令牌。授权令牌可以提供在有限时间期间对数据文件的计算设备访问。
在其他实施例中,该方法可以包括:通过工作区服务器从与虚拟化服务器通信的代理服务器取回虚拟化服务器上的应用的地址。去往存储提供者的路径可以是去往远程存储的路径。
在实施例中,数据文件可以经由来自计算设备上的电子邮件客户端的电子邮件(e-mail)消息的附件呈现给用户。响应用户对附件的选择,电子邮件客户端可以将数据文件上传到存储提供者。因此,该方法还可以包括:通过工作区服务器从电子邮件客户端接收针对应用的请求以预览来自电子邮件客户端的用户界面(UI)的数据文件。
在一些实施例中,该方法可以包括:通过由工作区服务器向虚拟化服务器提供应用ID和会话句柄来生成连接描述文件。
在另外的实施例中,响应于接收到应用ID和文件路径,虚拟化服务器可以建立虚拟机。可以使用计算硬件和/或软件资源来建立虚拟机以便与计算设备建立计算会话;以及建立与存储提供者的数据会话,使得应用可以使计算设备的用户能够对可从存储提供者访问的数据文件执行操作。
在另外的实施例中,计算会话中的应用的执行可以被虚拟机延迟,直到数据会话被建立。在数据会话中的保存操作完成之前,虚拟机还可以阻止计算会话终止。
在另外的方面,一种非暂时性计算机可读介质包括计算机可执行指令,当由一个或多个处理器执行时,该计算机可执行指令使一个或多个处理器:从工作区服务器取回第一资源关联集合。第一资源关联集合标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。计算机可执行指令还使一个或多个处理器生成第二资源关联集合。第二资源关联集合标识虚拟化服务器上的、可操作以对一个或多个数据文件类型中的每个数据文件类型执行操作的应用的子集。第二资源关联集合使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
在实施例中,该非暂时性计算机可读介质还可以包括计算机可执行指令,当被执行时,计算机可执行指令使一个或多个处理器用于:建立与工作区服务器的计算会话;以及取回虚拟化服务器上的被授权由计算设备的用户访问的应用。
在另一实施例中,该非暂时性计算机可读介质还可以包括计算机可执行指令,当被执行时,计算机可执行指令使一个或多个处理器用于:将第二资源关联集合存储在高速缓存中;以及响应于与工作区服务器的计算会话的终止来清除高速缓存。存储提供者可以是远程存储提供者。
在又一方面,一种非暂时性计算机可读介质包括计算机可执行指令,当由一个或多个处理器执行时,计算机可执行指令使一个或多个处理器用于:从代理服务器取回第一资源关联集合。第一资源关联集合标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。计算机可执行指令还使一个或多个处理器生成第二资源关联集合。第二资源关联集合标识虚拟化服务器上的、可操作以对一个或多个数据文件类型中的每个数据文件类型执行操作的应用的子集。第二资源关联集合使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
在另外的方面,一种非暂时性计算机可读介质包括计算机可执行指令,当由一个或多个处理器执行时,计算机可执行指令使一个或多个处理器从计算设备接收针对虚拟化服务器上的应用的请求。请求包括应用标识符(ID)和去往如下数据文件的文件路径,该数据文件存储在存储提供者上、并且应用将对该数据文件执行操作。计算机可执行指令还使一个或多个处理器从存储提供者获得会话句柄。会话句柄包括如下信息,该信息使得计算设备能够从计算设备和虚拟化服务器之间的计算会话访问存储提供者。计算机可执行指令还使一个或多个处理器用于:生成连接描述文件,该连接描述文件包括用于建立计算会话和数据会话的信息,其中,计算会话在计算设备和虚拟化服务器之间,并且数据会话在虚拟化服务器和存储提供者之间;以及向计算设备提供连接描述文件,使得连接描述文件的执行使计算设备的用户能够使用由虚拟化服务器提供的应用来对数据文件执行操作。
在实施例中,非暂时性计算机可读介质还可以包括计算机可执行指令,当被执行时,计算机可执行指令使一个或多个处理器向认证平台发出针对授权令牌的请求,所述授权令牌由计算设备用来访问可从存储提供者访问的数据文件。请求可以包括至少用户的凭证和去往数据文件的文件路径。
在另外的实施例中,非暂时性计算机可读介质还可以包括计算机可执行指令,当被执行时,计算机可执行指令使一个或多个处理器通过向存储提供者发送针对会话句柄的请求来获得会话句柄。请求包括授权令牌。授权令牌可以提供在有限时间期间对数据文件的计算设备访问。
在另外的实施例中,非暂时性计算机可读介质还可以包括计算机可执行指令,当被执行时,这些计算机可执行指令使一个或多个处理器用于:从与虚拟化服务器通信的代理服务器取回虚拟化服务器上的应用的地址。去往存储提供者的路径可以是去往远程存储的路径。
在实施例中,数据文件可以经由来自计算设备上的电子邮件客户端的电子邮件(e-mail)消息的附件呈现给用户。响应用户对附件的选择,电子邮件客户端可以将数据文件上传到存储提供者。此外,非暂时性计算机可读介质还可以包括计算机可执行指令,当被执行时,这些计算机可执行指令使一个或多个处理器用于:从电子邮件客户端接收对应用的请求,并且其中,请求包括从电子邮件客户端的用户界面(UI)预览数据文件的请求。
在另一实施例中,非暂时性计算机可读介质还可以包括计算机可执行指令,当被执行时,这些计算机可执行指令使一个或多个处理器通过向虚拟化服务器提供应用ID和会话句柄来生成连接描述文件。
在一个方面,设备包括存储器以及耦合至存储器的一个或多个处理器。一个或多个处理器被配置为:使用存储在存储器中的工作区客户端从工作区服务器取回第一资源关联集合。第一资源关联集合标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。一个或多个处理器还被配置为:使用工作区客户端生成第二资源关联集合。第二资源关联集合标识虚拟化服务器上的、可操作以对一个或多个数据文件类型中的每个数据文件类型执行操作的应用的子集。一个或多个处理器还被配置为:使用存储在存储器中的存储提供者客户端获得第二资源关联集合。存储提供者客户端被配置为:使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
在实施例中,一个或多个处理器还可以被配置为:使用工作区客户端建立与工作区服务器的计算会话;以及使用工作区客户端取回虚拟化服务器上的被授权由计算设备的用户访问的应用。
在另一实施例中,一个或多个处理器还可以被配置为:使用存储提供者客户端将第二资源关联集合存储到耦合至一个或多个处理器的高速缓存中;以及响应于与工作区服务器的计算会话的终止,使用存储提供者客户端来清除高速缓存。存储提供者可以是远程存储提供者。
在其他方面,服务器包括存储器以及耦合至存储器的一个或多个处理器。一个或多个处理器被配置为:从代理服务器取回第一资源关联集合。第一资源关联集合标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。一个或多个处理器还被配置为:生成第二资源关联集合。第二资源关联集合标识虚拟化服务器上的、可操作以对一个或多个数据文件类型中的每个数据文件类型执行操作的应用的子集。另外,第二资源关联集合使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
在实施例中,一个或多个处理器还可以被配置为:建立与代理服务器的计算会话;以及取回虚拟化服务器上的被授权由与虚拟化服务器通信的计算设备的用户访问的应用。
在其他实施例中,一个或多个处理器还可以被配置为:将第二资源关联集合存储到耦合至一个或多个处理器的高速缓存中;以及响应于与代理服务器的计算会话的终止来清除高速缓存。存储提供者可以是远程存储提供者。
在另外的方面,服务器包括存储器以及耦合至存储器的一个或多个处理器。一个或多个处理器被配置为:从计算设备接收针对虚拟化服务器上的应用的请求。请求包括应用标识符(ID)和去往如下数据文件的文件路径,该数据文件存储在存储提供者上、并且应用将该数据文件其执行操作。一个或多个处理器还可以被配置为:从存储提供者获得会话句柄。会话句柄包括如下信息,该信息使得计算设备能够从计算设备和虚拟化服务器之间的计算会话访问存储提供者。一个或多个处理器还被配置为:生成连接描述文件,该连接描述文件包括用于建立计算会话和数据会话的信息,其中,计算会话在计算设备和虚拟化服务器之间,并且数据会话在虚拟化服务器和存储提供者之间;以及向计算设备提供连接描述文件,使得连接描述文件的执行使计算设备的用户能够使用由虚拟化服务器提供的应用来对数据文件执行操作。
在实施例中,一个或多个处理器还可以被配置为:向认证平台发出针对授权令牌的请求,所述授权令牌由计算设备用来访问可从存储提供者访问的数据文件。请求可以包括至少用户的凭证和去往数据文件的文件路径。
在另外的实施例中,一个或多个处理器还可以被配置为:通过向存储提供者发送针对会话句柄的请求来获得会话句柄。请求可以包括授权令牌。授权令牌可以提供在有限时间期间对数据文件的计算设备访问。
在其他实施例中,一个或多个处理器还可以被配置为:从与虚拟化服务器通信的代理服务器取回虚拟化服务器上的应用的地址。去往存储提供者的路径可以是去往远程存储的路径。
在其他实施例中,数据文件可以经由来自计算设备上的电子邮件客户端的电子邮件(e-mail)消息的附件呈现给用户。响应用户对附件的选择,电子邮件客户端可以将数据文件上传到存储提供者。因此,一个或多个处理器可以被配置为:从电子邮件客户端接收针对应用的请求,并且其中,请求包括用于从电子邮件客户端的用户界面(UI)预览数据文件的请求。
在另一实施例中,一个或多个处理器还可以被配置为:通过向虚拟化服务器提供应用ID和会话句柄来生成连接描述文件。
在实施例中,响应于接收到应用ID和文件路径,虚拟化服务器可以建立虚拟机。可以使用计算硬件和/或软件资源来建立虚拟机以便与计算设备建立计算会话;以及建立与存储提供者的数据会话,使得应用可以使计算设备的用户能够对可从存储提供者访问的数据文件执行操作。
在另外的实施例中,计算会话中的应用的执行可以被虚拟机延迟,直到数据会话被建立。另外,在数据会话中的保存操作完成之前,虚拟机可以阻止计算会话终止。
附图说明
通过以下对实施例的更具体描述,前述和其它目的、特征和优点将变得显而易见,如附图所示,其中相同的附图标记在不同的视图中指代相同的部分。附图不一定按比例绘制,而是将重点放在说明实施例的原理上。
图1是根据本文描述的概念的一个或多个说明性方面的,可以在其中实现本公开内容的各个方面的计算设备的网络环境的框图。
图2是本文描述的概念的一个或多个示出的方面的,计算设备的框图。
图3描绘了根据本文描述的概念的一个或多个说明性方面的说明性操作环境。
图4是根据本文描述的概念的一个或多个说明性方面的、用于枚举由服务器托管的应用的文件类型关联的说明性方法的流程图。
图5是根据本文中描述的概念的一个或多个说明性方面的、用于枚举由服务器托管的应用的文件类型关联的说明性过程流。
图6是根据本文中描述的概念的一个或多个说明性方面的、用于枚举由服务器托管的应用的文件类型关联的另一说明性过程流。
图7是根据本文中描述的概念的一个或多个说明性方面的一种说明性方法的流程图,该方法涉及使用虚拟应用来访问和/或操作存储在远程存储中的文件。
图8是根据本文中描述的概念的一个或多个说明性方面的说明性过程流,其涉及使用虚拟应用来访问和/或操作存储在远程存储中的文件。
图9是根据本文中描述的概念的一个或多个说明性方面的另一说明性过程流,其涉及使用虚拟应用来访问和/或操作存储在远程存储中的文件。
图10是根据本文中描述的概念的一个或多个说明性方面的、用于启动虚拟计算会话的说明性过程流。
具体实施方式
在下面的各种实施例的详细描述中参考了上文指出的附图,附图形成了具体实施方式的一部分,并且在附图中通过说明的方式示出了在其中可以实践本文描述的概念的方面的各个实施例。应当理解:可以在不脱离本文描述的概念的范围的前提下使用其他实施例,并进行结构和功能修改。因此应当理解,本文中描述的概念的各个方面可以在除了本文中具体描述的那些实施例之外的实施例中实现。还应当意识到,本文中描述的概念能够以不同于本文中具体描述的方式来实践或执行。
应当理解,本文中使用的措辞和术语是为了描述的目的,并且不应被视为限制性的。相反,本文中使用的短语和术语将被赋予其最广泛的解释和含义。“包括(including)”和“包含(comprising)”及其变体的使用意在涵盖其后列出的项目及其等价物以及附加项目及其等价物。术语“连接”、“耦合”和类似术语的使用意味着包括直接和间接连接及耦合。
计算架构
关于图1,图1是非限制性网络环境101,在该非限制性网络环境101中可以实现本公开内容的各个方面,非限制性网络环境101包括一个或多个客户端机器102A-102N、一个或多个远程机器106A-106N、一个或多个网络104、104’,以及安装在计算环境101内的一个或多个装置108。客户端机器102A-102N经由网络104、104’,与远程机器106A-106N进行通信。
在一些实施例中,客户端机器102A-102N经由中间装置108与远程机器106A-106N进行通信。所示出的装置108位于网络104、104’之间,并且也可以称为网络接口或网关。在一些实施例中,装置108可以用作应用交付控制器(ADC),以在某个范围的客户端设备上,向客户端提供对业务应用和部署在数据中心、云计算环境中的其它数据的访问,或者提供对传送成软件即服务(SaaS)的访问,和/或提供诸如负载平衡之类的其它功能。在一些实施例中,可以使用多个装置108,并且可以将装置108部署为网络104和/或104’的一部分。
客户端机器102A-102N通常可以称为客户端机器102、本地机器102、客户端102、客户端节点102、客户端计算机102、客户端设备102、计算设备102、端点102或端点节点102。通常,远程机器106A-106N可以称为服务器106或服务器群106。在一些实施例中,客户端设备102可以具有充当为寻求访问服务器106提供的资源的客户端节点、以及为其它客户端设备102A-102N提供对托管资源的访问的服务器106的功能。通常,网络104、104’可以称为网络104。可以有线和无线网络的任何组合来配置网络104。
服务器106可以是任何服务器类型,例如:文件服务器;应用服务器;网络服务器;代理服务器;装置;网络装置;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;安全套接字层虚拟专用网(SSL VPN)服务器;防火墙;网络服务器;执行活动目录的服务器;云服务器;或者执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器。
服务器106可以执行、操作或以其它方式提供可以是以下任意一种的应用:软件;程序;可执行指令;虚拟机;管理程序;网络浏览器;基于网络的客户端;客户端服务器应用;瘦客户端计算客户端;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,图1的客户端设备102、装置108和/或服务器106可以基本上类似于计算设备100。计算设备100包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(RAM))、非易失性存储器128、用户界面(UI)123、一个或多个通信接口118和通信总线150。
非易失性存储器128可以包括:一个或多个硬盘驱动器(HDD)或者其它磁性或光学存储介质;诸如闪存驱动器或其它固态存储介质之类的一个或多个固态驱动器(SSD);一个或多个混合磁驱动器和固态驱动器;和/或一个或多个虚拟存储卷,例如云存储、或这些物理存储卷和虚拟存储卷或其阵列的组合。
用户界面123可以包括图形用户界面(GUI)124(例如,触摸屏、显示器等等)和一个或多个输入/输出(I/O)设备126(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个照相机、一个或多个生物特征扫描仪、一个或多个环境传感器以及一个或多个加速度计等)。
非易失性存储器128存储操作系统115、一个或多个应用116和数据117,使得例如处理器103执行易失性存储器122之外的操作系统115和/或应用116的计算机指令。在一些实施例中,易失性存储器122可以包括一种或多种类型的RAM和/或高速缓冲存储器,它们可以提供比主存储器更快的响应时间。可以使用GUI 124的输入设备来输入数据,或者可以从I/O设备126接收数据。计算设备100的各种元件可以经由通信总线150进行通信。
仅将所示的计算设备100示出为示例性客户端设备或服务器,并且所示的计算设备100可以由具有任何类型的机器或机器集合的任何计算或处理环境来实现,该机器或机器集合可以具有能够如本文所描述方式进行操作的适当硬件和/或软件。
处理器103可以由一个或多个可编程处理器实现,以执行一个或多个可执行指令(例如,计算机程序),从而执行系统的功能。如本文所使用的,术语“处理器”描述了执行功能、操作或操作序列的电路。可以将功能、操作或操作序列硬编码到电路中,或者通过存储在存储器设备中并由电路执行的指令来软编码。处理器可以使用数字值和/或使用模拟信号,来执行该功能、操作或操作序列。
在一些实施例中,处理器可以体现在一个或多个专用集成电路(ASIC)、微处理器、数字信号处理器(DSP)、图形处理单元(GPU)、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器或者具有相关联存储器的通用计算机中。
处理器103可以是模拟、数字或混合信号。在一些实施例中,处理器103可以是一个或多个物理处理器、或者一个或多个虚拟(例如,远程定位或云计算环境)处理器。包括多个处理器核的处理器和/或多个处理器可以提供用于并行地、同时地执行指令的功能,或者用于并行地、同时地对多条数据执行一条指令的功能。
通信接口118可以包括一个或多个接口,以使计算设备100能够通过各种有线和/或无线连接(包括蜂窝连接),访问诸如局域网(LAN)、广域网(WAN)、个域网(PAN)或互联网之类的计算机网络。
在所描述的实施例中,计算设备100可以代表客户端设备的用户执行应用。例如,计算设备100可以执行由管理程序管理的一个或多个虚拟机。每个虚拟机可以提供一个执行会话(例如,托管的桌面会话),在该执行会话中,应用代表用户或客户端设备进行执行。计算设备100还可以执行终端服务会话,以提供托管的桌面环境。计算设备100可以提供对包括一个或多个应用、一个或多个桌面应用、以及可以在其中执行一个或多个应用的一个或多个桌面会话的远程计算环境的访问。
可在编号为9,176,744和9,538,345的美国专利中找到对计算设备100的其他描述及其操作,计算设备100被配置为客户端设备102或服务器106或者客户端设备102和服务器106的中间装置,通过引用的方式将上述两个美国专利的完整内容并入本文。编号为9,176,744和9,538,345的美国专利二者都被转让给了本公开内容的当前受让人。
使用虚拟应用生成数据文件类型关联以及打开云存储文件
工作区虚拟化是一种使用应用虚拟化(例如,使用软件技术从计算机程序在其上执行的底层操作系统封装计算机程序)将应用分发到客户端计算机的方式。因此,工作区虚拟化是一种封装和隔离整个计算工作区的方法。在一个示例中,工作区包括操作系统内核之上的那些元素(例如,应用、数据、设置以及提供功能性桌面计算环境所需的任何非特权操作系统子系统)。因此,工作区虚拟化使工作区内的应用能够彼此交互。
客户端设备的用户可以与托管虚拟应用(例如,Microsoft
Figure BDA0003380660200000121
)的一个或多个服务器建立计算会话。为了访问一台或多台服务器,用户通过向一台或多台服务器提供认证凭证来建立与一台或多台服务器的计算会话。认证凭证可以包括例如用户名和密码。一旦用户建立了计算会话,用户可能需要由远程存储提供者(在本文中也被称为“云存储提供者”)存储的文档文件或其他资源。
为了访问文档文件,用户从计算会话建立与远程存储提供者的数据会话。由于远程存储提供者无权访问用户用于建立计算会话的认证凭证,因此远程存储提供者需要输入用户的认证凭证。
因此,在传统系统中,用户只能通过手动输入他们的认证凭证来访问远程存储提供者来建立数据会话。例如,远程存储提供者不知道用户已被认证,因为对计算会话的认证通常需要实际凭证,例如,AD凭证(用户名、密码),这与用于对远程存储提供者进行认证的凭证集合(例如电子邮件地址和不同的密码)不同。
相比之下,客户端设备通过在认证平台(服务器)的帮助下向工作区进行认证,能够将经过认证的用户身份映射到安全地选择加入共享认证平台的其他资源提供者之间,而不仅仅是作为已发布虚拟应用和桌面的资源提供者的代理。例如,远程存储提供者是资源提供者的另一个实例。代理和远程存储提供者在使用认证平台方面也被称为“依赖方”。作为变成“依赖方”的资源提供者的不同云服务的引导通常使用安全地提供给这些云服务的管理员的服务密钥来执行。引导还包括公钥的注册。因此,这些服务密钥很小且数量有限,通常每个依赖方一到两个密钥,有时可能会轮换。
例如,对于生成Dropbox和/或Onedrive令牌的认证平台,DropBox和/或OneDrive云服务各自必须加入认证平台并且变成“依赖方”,例如,通过使用服务密钥和相应的公钥进行注册。然后,认证平台将能够对授权令牌(上述“数据片段”)进行加密,以便只有相对应的云服务(例如,DropBox或OneDrive)能够进行解密和验证。
承载计算会话的VDA数量众多,并且在某些情况下寿命有限,例如,机器创建服务(MCS)通过将物理硬件或VM加上操作系统和用户层等组合在一起动态创建的合成的VDA。在一些实例中,每次用户注销时都会销毁并重新创建合成的VDA,从而保持它“永远绿色”并为下一个用户提供安全保障。Citrix安全浏览器也是如此,每次用户关闭(注销)安全浏览器时,都会重新创建新的LINUX VDA。
因此,将服务密钥与VDA一起使用会带来可扩展性和管理挑战,并且因此是不切实际的。因此,VDA本身不会变成认证平台的“依赖方”。
作为该问题的解决方案,如本申请中进一步描述的,首先从认证平台获得授权令牌,以便它可以与另一个特定的依赖方(在这种情况下为远程存储提供者)一起使用。形成授权令牌使得它只能由指定的依赖方使用,例如,内容用对称密钥来加密,然后用依赖方的公钥来加密。因此,授权令牌内容只能由依赖方解密和读取。然后,使用授权令牌从远程存储提供者获得会话句柄。
然后可以将该会话句柄存放在已解析的VDA处(如本文中描述的说明性示例方法中所讨论的)。替换地,会话句柄可以通过诸如HDX计算会话之类的计算会话来提供(如在至少结合图10描述为“选项:存储提供者会话句柄”的另一个说明性示例中所讨论的)。
SSOn的难点在于以下方面:首先获得会话句柄,然后将会话句柄安全地存储在已解析的VDA中,以便只有在用户经由计算会话安全地登录到VDA并且受到信任之后,由远程存储提供者驱动映射器在VDA处有利地重用。
如本文更详细地描述的,本公开内容的实施例涉及在一个或多个云存储提供者与托管虚拟应用的一个或多个服务器之间共享认证凭证,使得用户能够无缝访问虚拟应用,以便对从云存储提供者可访问的数据文件执行操作。在实施例中,使用会话句柄来共享认证凭证。
关于图3,计算环境300包括经由网络301、302通信耦合至服务器315、321、324的客户端设备305。计算环境300可以是云计算环境(例如,诸如图1的网络环境101)并且客户端设备305和服务器315、321、324可以被配置为与图1的客户端机器102和服务器106基本类似地操作。网络301、302可以基本类似于图1的网络104、104'。
在实施例中,客户端设备305的用户可能希望使用虚拟化服务器324上的一个或多个资源327打开存储在远程存储322上的文件。资源327可以包括但不限于软件应用(“apps”)、虚拟桌面、文档、文件、网络、服务器、存储和服务。例如,用户可能希望使用应用(例如,Microsoft Word)来查看存储在远程存储器322上的文件(例如,Microsoft Word文档)和/或对这些文件执行操作。远程存储提供者321可以是管理对存储在远程存储322上的文件的访问的云存储服务,例如
Figure BDA0003380660200000141
和DropboxTM。远程存储322可以是云存储或能够存储如图2中描述的电子数据的任何存储或者任何设备。
在示例中,服务器315(本文中也被称为工作区服务器315)被配置为:管理用于资源327和其他资源(例如由远程存储提供者321存储的文件)的计算会话。
为了针对资源327中的一个或多个建立计算会话,用户通过在客户端设备305上执行虚拟化客户端310的工作区客户端311来建立与工作区服务器315的工作区会话。工作区客户端311执行一个或多个认证和工作区会话协议(例如,诸如,Citrix和StoreFront(SF)服务的递送服务认证(DS Auth)协议,也被称为Citrix的工作区服务协议)以建立工作区会话。
在实施例中,工作区客户端311可以被实施为客户端设备305上的Web JavaScript(JS)和/或本机应用的接收机。Web JS的接收机可以是从工作区服务器315接收的、并且能够执行认证和工作区会话协议的JS。
在实施例中,Web JS的接收机可以在客户端设备305本地的独立浏览器的上下文中执行(例如,诸如,用于Web的接收机的JS部分或Citrix的HTML5接收机)。
在其他实施例中,用于Web JS的接收机也可以在本机应用的嵌入式浏览器部分(例如,本机Citrix工作区应用(CWA)的基于Chromium嵌入式框架(CEF)的浏览器部分)的上下文中执行。此外,用于Web JS的接收机能够渲染枚举资源的UI,例如枚举的已发布的虚拟应用和桌面。
有利地,由于该接收机完全或基本上基于网络,因此渲染的UI可以很容易地修改、保持最新和重新命名(例如,使用客户特定的徽标、配色方案等,而不是显示为由工作区云服务提供者(例如Citrix)提供的)。
在实施例中,本机应用的使用具有本机集成和扩展特征集的附加优势,否则本地浏览器内可能无法或不允许使用本地集成和扩展特征集。
在实施例中,扩展特征可以包括创建本地桌面快捷方式或表示已发布的虚拟应用和桌面的开始菜单项;与基于网络的计算会话引擎313(例如,来自Citrix的基于网络的HTML5 HDX引擎)相比,运行具有更高性能特征和更好的UX的本机计算会话引擎313(例如,来自Citrix的本机HDX引擎);支持高级功能,例如将USB设备重定向到虚拟环境、“无缝”发布的虚拟应用窗口、已发布的虚拟应用的任务栏分组,等等。
在实施例中,本机应用(例如,Citrix的CWA)的使用可以需要显式安装,并且在某些情况下需要额外的配置,而纯基于网络的方法(例如,Citrix的HTML5接收机)不需要任何额外的安装,并且因此尽管性能和功能集更有限,但它可以是实用和优选的。在图8-图9的说明性过程流中更详细地讨论了用于Web JS和本机应用的接收机的功能。
响应于从工作区客户端311接收到用于建立工作区会话的请求,工作区服务器315可以通过将用户的认证凭证(例如,用户名和密码)发送到认证平台318来对客户端设备305的用户进行认证,认证平台318可以是服务器,例如图1的服务器106。认证平台318(例如,Citrix云身份平台、微软Azure AD、经由云连接器访问的本地客户AD,等等)通过执行对例如查找表、数据库或标识用户身份的其他结构的查找来验证用户的认证凭证。在成功认证后,认证平台318可以向工作区服务器315返回主要认证令牌,其提供授权并定义用户的资源类型权利。在其他实施例中,主要认证令牌可以基于先前认证由工作区客户端311直接提供给工作区服务器315。
基于经验证的用户身份,工作区服务器315然后可以确定用户被授权访问的资源类型,例如,已发布的虚拟应用和桌面、云存储文件,等等。此外,工作区服务器315然后可以联系相应的资源提供者服务器(例如,代理服务器320和远程存储提供者321),以便分别从每个资源提供者枚举用户有权(或被授权访问)的一个或多个特定资源的列表。代理服务器320和远程存储提供者321可以是服务器,诸如图1的服务器106。工作区服务器315然后可以经由工作区客户端311向用户呈现一个或多个枚举的资源。
生成文件类型关联
此外,在验证用户的认证凭证后,工作区客户端311或工作区服务器315可以生成数据文件类型关联,其使由虚拟化服务器324存储的一个或多个应用能够执行由远程存储提供者321存储的或可从远程存储提供者321访问的一个或多个文件。
在一个示例实施例中,工作区客户端311从工作区服务器315接收用户的凭证已经被认证的通知。在接收到通知之后,工作区客户端311取回资源关联集合(例如,第一资源关联集合),其标识可从工作区服务器315执行的资源327(例如,应用)的数据文件类型。资源关联可以是数据结构,包括但不限于数组、表格、树或列表。在一些实施例中,第一资源关联集合可以包括应用文件类型关联(FTA)。使用第一资源关联集合,工作区客户端311生成另一个资源关联集合(例如,第二资源关联集合),其标识可以执行(例如,打开以供查看、编辑、保存,等等)每个数据文件类型的资源327子集。例如,第一资源关联集合的元素可以采用[App N,App N的FTA的列表]的形式,而第二资源关联集合的元素可以采用例如[文件类型N,应用列表]的形式。第一资源关联集合的元素和/或第二资源关联的元素可以表示为JSON对象。作为另一个更具体的例子,第一资源关联集合可以包括{[Winword.exe,{.doc,.docx,.dotm,.dotx,.pdf,.rtf,.xml,.txt}],[Notepad.exe,{.m,.ps1,.puml,.txt}],…},在这种情况下,第二资源关联集合可以包括{[.doc,{Winword.exe}],[.docx,{Winword.exe}],[.dotm,{Winword.exe}],[.dotx,{Winword.exe}],[.pdf,{Winword.exe}],[.rtf,{Winword.exe}],[.xml,{Winword.exe}],[{.m,{Notepad.exe}],[.ps1,{Notepad.exe}],[.puml,{Notepad.exe}],[.txt,{Winword.exe,Notepad.exe}]}。换句话说,在该具体示例中,大多数数据文件类型可以仅使用资源327的单个选项来执行,即单个发布的虚拟应用(Winword.exe或Notepad.exe,但不是二者),而可以选择Winword.exe或Notepad.exe作为已发布虚拟应用来执行.txt数据文件类型。
被配置为允许用户访问由远程存储提供者321存储的文件的存储提供者客户端312从工作区客户端311获得第二资源关联集合。存储提供者客户端312可以是用户界面(UI)插件,其呈现(例如,经由客户端设备305的触摸屏)表示由远程存储提供者321存储的或可从远程存储提供者321访问的文件的可选择图标。在该上下文中,UI插件可以被定义为利用特定于资源提供者客户端(例如存储提供者客户端312)的附加功能来扩展工作区客户端311的功能的附加组件。UI插件可以采用JS、HTML、CSS等的形式,并且可以经由明确定义的接口集与工作区客户端311通信。在一些实施例中,工作区客户端311的UI插件可以是Citrix的ShareFile UI插件、Drobox的UI插件以及微软公司的OneDrive UI插件。在一些实施例中,UI插件可用的接口可以包括用于从工作区客户端311返回第二资源关联集合的API,第二资源关联集合例如,数据文件类型的列表以及可操作以执行每个相应数据文件类型的已发布的虚拟应用(资源327)的相关联列表。
在另一个示例实施例中,工作区服务器315从代理服务器320取回第一资源关联集合,其标识可从工作区服务器315执行的资源327(例如,应用)的数据文件类型。代理服务器320经由工作区服务器315针对一个或多个资源327协商来自客户端设备305的计算会话启动请求。协商可以包括或之前有对资源327的枚举,向工作区服务器315认证的用户被允许访问该资源327的枚举。使用第一资源关联集合,工作区服务器315生成第二资源关联集合,其标识能够执行每个数据文件类型的资源327的子集(在实施例中,从第一资源关联集合生成第二资源关联集合可以是以如下方式来完成的,该方式与先前在工作区客户端和存储提供者客户端的上下文中在上文描述的技术相同或类似)。远程存储提供者321可以从工作区服务器315获得第二资源关联集合。远程存储提供者321可以使用第二资源关联集合来向终端用户或另一服务提供用于使用资源327之一执行云存储文件的选项。
使用虚拟应用打开云存储文件
在实施例中,工作区服务器315可以接收来自用户的针对资源327之一的请求以经由例如工作区客户端311执行由远程存储提供者存储的数据文件。该请求可以包括资源标识符和去往远程存储322中的数据文件的位置的文件路径。在一些实施例中,远程存储可以是由Citrix的ShareFile(也被称为Citrix Files)、Drobox、Microsoft OneDrive等提供的文件存储,并且可以由Microsoft Azure、Amazon Web Services(AWS)或其他云平台中的云文件存储所支持。在实施例中,资源标识符可以是一串唯一的字母数字字符或任何其他唯一代码,其可以标识特定资源。例如,字母数字字符串“A001”可以标识应用,例如,由虚拟化服务器324提供的Microsoft Word。
在接收到请求时,工作区服务器315从认证平台318获得远程存储认证令牌(即,可以用于验证真实性的一段数据),如针对图8-图9更详细地描述的。使用远程存储认证令牌,工作区服务器315从远程存储提供者321取回远程存储会话句柄,也如针对图8-图9更详细地描述的。在实施例中,远程存储会话句柄可以包含或指向加密数据块,该加密数据块包含标识下列各项的信息:客户ID、用户ID、用户虚拟(例如,高可用、分布式、复制的,等等)文件夹或虚拟文件夹集合、访问权限(例如,读取和/或写入)、发布日期和时间、到期日期和时间,以及代表经认证的用户安全地建立与远程存储提供者321的数据会话可能需要的任何额外的访问控制或遥测信息。在一些实施例中,远程存储会话句柄可以是随机生成的数字,用作保存上述加密数据块的表格内的指针或索引。工作区服务器315向代理服务器320发送针对包括远程存储会话句柄的所请求资源的地址的请求。
响应于接收到该请求,代理服务器320对所请求的资源的名称(例如,应用名称)进行解析,如下文进一步描述的。代理服务器320向虚拟化服务器324发送命令以针对所请求的资源准备与客户端设备305的计算会话。在实施例中,命令可以包括远程存储会话句柄。
响应于接收到命令,虚拟化服务器324对远程存储会话句柄进行高速缓存,并建立虚拟机328以托管和执行来自资源327的所请求的资源。为此,虚拟化服务器324可以提供执行所请求的资源所需要的物理和/或软件计算资源。例如,虚拟化服务器324可以包括管理程序(未示出),其分配执行所请求的资源所需的虚拟化服务器324的硬件和/或软件层(未示出)中包括的物理和/或计算资源。一旦建立了虚拟机328,虚拟化服务器324就向代理服务器320返回建立客户端设备305和虚拟机328之间的计算会话所需的信息。该信息可以包括,例如,虚拟机328的IP地址和端口、偏好的传输协议(例如,TCP或UDP)、区域(位置)、完全限定的应用路径和可执行模块名称,使得它可以稍后在托管所请求的资源的机器上执行,等等。代理服务器320进而将该信息传递到工作区服务器315。
使用该信息,工作区服务器315生成连接描述文件,该连接描述文件包括用于针对所请求的资源建立计算会话所需要的所有指令以及用于访问由远程存储提供者321存储的数据文件的信息(例如,数据文件路径)。连接描述文件还可以包括可用于经由网关远程建立计算会话的网关地址。工作区服务器315可以基于经解析的虚拟机328的区域(位置)来确定网关地址。在实施例中,网关可以类似于图1的装置108。在实施例中,连接描述文件可以是由客户端设备305用来根据Citrix的ICA协议建立计算会话的独立的计算机架构(ICA)文件,如针对图8-图10更详细地讨论的。工作区服务器315将连接描述文件发送到客户端设备305。
使用连接描述文件,由客户端设备305上的虚拟化客户端310托管的计算会话引擎313发起针对所请求的资源的计算会话。例如,计算会话引擎313从连接描述文件中提取虚拟机328的IP地址和端口,以经由网络302与虚拟机328建立直接计算会话。作为另一个示例,计算会话引擎313从连接描述文件中提取网关地址以经由网关(图3中未示出)与虚拟机328建立远程计算会话。在实施例中,网关可以类似于图1的装置108。在实施例中,计算会话引擎313可以使用虚拟机328的提取的IP地址和端口、偏好的传输等向虚拟机328发送连接请求。响应于接收到连接请求,虚拟机328可以使用高速缓存的远程存储会话句柄针对数据文件建立与远程存储提供者321的数据会话,如针对图10更详细描述的。
关于图4,方法400涉及生成数据文件类型关联,其使得由虚拟化服务器存储的一个或多个应用能够执行由远程存储提供者存储的或者可从远程存储提供者访问的一个或多个文件(例如,分别是图3的虚拟化服务器324和远程存储提供者321)。
在第一示例中,方法400由工作区客户端(例如,图3的工作区客户端311)执行。在405处,该方法包括:通过工作区客户端从工作区服务器(例如,图3的工作区服务器315)获得第一资源关联集合。例如,可以通过与代理服务器通信的工作区服务器来获得资源,代理服务器随后枚举已发布资源。可以通过查询安装的应用元数据来获得资源关联的第一列表(例如,FTA),例如,使用外壳集成API,或读取注册表配置。资源关联的第一列表也可以由管理员明确配置或覆盖(例如,管理员可以覆盖默认的应用FTA)。资源关联的第一列表然后可以由代理服务器作为用于枚举的已发布资源的元数据返回。
第一资源关联集合可以是标识可由多个资源中的资源(例如,图3的资源327)执行的数据文件类型的第一资源关联集合。在410处,方法400包括:通过工作区客户端从第一资源关联集合生成第二资源关联集合。第二资源关联集合可以是标识可以执行数据文件类型的资源子集的第二资源关联集合。
可以使用多种不同的技术来生成第二资源关联集合。例如,可以通过对处理单个文件的应用列表进行优先级排序来生成第二资源关联集合。此外,可以通过使用用户的收藏夹和最近使用的应用列表来确定优先级顺序来生成第二资源关联集合。或者工作区服务器可以请求服务(例如,Citrix分析服务(CAS))来获得最近/经常使用的具有特定文件类型的应用。信息可由CWA和/或虚拟化服务器收集并提供给CAS。或者可以将应用固定为默认应用以打开文件,例如,基于最喜欢的应用。或者用户只需单击文件并使用默认应用或按优先级顺序的第一个应用来打开它。或者用户可以简单地右键单击以接收从中选择第二资源关联集合的菜单。
在415处,方法400还包括:向存储提供者客户端(例如,图3的存储提供者客户端312)提供第二资源关联集合。
在第二示例中,方法400可以由工作区服务器(例如,图3的工作区服务器315)执行。因此,在405处,该方法包括:通过工作区服务器从代理服务器(例如,图3的代理服务器320)获得第一资源关联集合。在410处,方法400包括:通过工作区服务器使用第一资源关联集合生成第二资源关联集合。在415处,方法400还包括:向存储提供者(例如,图3的远程存储提供者321)提供第二资源关联集合。
关于图5,处理流程500涉及通过工作区客户端505生成数据文件类型关联,其使得由虚拟化服务器存储的一个或多个应用能够执行由远程存储提供者存储的或者可从远程存储提供者访问的一个或多个文件(例如,分别是图3的虚拟化服务器324和远程存储提供者321)。工作区客户端505可以基本类似于图3的工作区客户端311。工作区客户端505从工作区服务器510取回标识每个资源(例如,图3的资源327)可以执行的数据文件类型的第一资源关联集合,工作区服务器510可以基本类似于图3的工作区服务器315。在实施例中,工作区客户端505通过向工作区服务器510发送枚举资源请求来取回第一资源关联集合。例如,工作区服务器510接收枚举资源请求并将其转发到代理服务器(未示出,例如图3的代理服务器320)。代理服务器320然后通过读取存储的第一资源关联集合来响应该请求,该第一资源关联集合标识可由多个资源中的资源(例如,图3的资源327)执行的数据文件类型。可以使用上述技术之一获得资源关联(例如,FTA)的第一列表。还如上所述,资源关联的第一列表然后可以由代理服务器作为用于枚举的已发布资源的元数据返回。
使用第一资源关联集合,工作区客户端505生成第二资源关联集合,其识别可以执行每个数据文件类型的资源子集。例如,工作区客户端505可以从第一资源关联集合中提取每个资源的文件类型关联(FTA)的列表,并重新组织该列表以识别可以执行每个数据文件类型的资源的列表。存储提供者客户端515(例如,诸如图3的存储提供者客户端312)从工作区客户端505获得第二资源关联集合。
关于图6,处理流程600涉及通过工作区服务器605生成数据文件类型关联,其使得由虚拟化服务器存储的一个或多个应用能够执行由远程存储提供者存储的或者可从远程存储提供者访问的一个或多个文件(例如,分别是图3的虚拟化服务器324和远程存储提供者321)。工作区服务器605可以基本类似于图3的工作区服务器315。工作区服务器605从代理服务器610取回第一资源关联集合,该第一资源关联集合标识可由资源(例如,图3的资源327)执行的数据文件类型,代理服务器610可以基本类似于图3的代理服务器320。在实施例中,工作区服务器605通过向代理服务器610发送枚举资源请求来取回第一资源关联集合。使用第一资源关联集合,工作区服务器605生成第二资源关联集合,其识别可以执行每个数据文件类型的资源集合。存储提供者客户端615(例如,诸如图3的远程存储提供者321的客户端)从工作区服务器605获得第二资源关联集合。在另外的实施例中,存储提供者客户端615可以将第二资源关联集合存储在工作区服务器605的高速缓存中。存储提供者客户端还可以响应于与代理服务器610的计算会话的终止而清除高速缓存。
关于图7,方法700涉及使用可以由工作区服务器(例如图3的工作区服务器315)执行的虚拟应用来访问和/或操作存储在远程存储提供者中或者可以从远程存储提供者访问的文件。在705处,方法700包括:从客户端设备的用户接收针对虚拟应用(“app”)的请求,以执行由远程存储提供者存储或可从远程存储提供者访问的数据文件(例如,分别是图3的客户端设备305和远程存储提供者321)。在实施例中,虚拟应用可以是图3的资源327中的一个。
在710处,方法700还包括:从远程存储提供者获得使虚拟应用能够对数据文件执行用户操作的会话句柄。在示例中,获得会话句柄可以包括:从认证平台(例如,图3的认证平台318)取回授权令牌。此外,在715处方法700包括:根据图3和图8-图9中描述的技术中的任一项技术向托管虚拟应用的虚拟机(例如,图3的虚拟机328)提供会话句柄。此外,在720处方法700包括使客户端设备能够建立与虚拟机的计算会话,以便虚拟应用根据图3和图8-图10中描述的技术中的任一项技术对数据文件执行用户操作。
关于图8,示例过程流800涉及使用虚拟应用来访问和/或操作存储在远程存储中或通过远程存储可访问的文件。该过程开始于客户端设备801的用户使用通过虚拟递送代理(“VDA”)845递送给用户的虚拟应用来选择云存储文件,该虚拟应用可以由虚拟化服务器(例如,分别为图3的虚拟机328和虚拟化服务器324)托管的虚拟机执行。云存储文件可以由远程存储提供者835(例如,分别为图3的远程存储322和远程存储提供者321)存储在远程存储中。存储提供者客户端810可以在客户端设备801的触摸屏上呈现表示云存储文件的可选图标。在该说明性示例中,存储提供者客户端810可以被提供为Citrix的ShareFile UI插件,但技术人员理解,它也可以与图3的存储提供者客户端312基本相似。存储提供者客户端810可以以如下方式向用户呈现图标,所述方式指示云存储文件的数据文件类型和/或可操作以执行云存储文件的一个或多个虚拟应用。因此,用户可以选择默认虚拟应用或用户偏好的虚拟应用来执行云存储文件。因此,响应于用户的选择,存储提供者客户端810向客户端设备801上的工作区客户端815发送启动信号(或启动协议),启动信号包括例如,应用ID以及去往云存储文件的位置的文件路径。在该示例中,工作区客户端815被表示为Citrix的用于Web JavaScript(JS)的接收机,但也可以基本类似于图3的工作区客户端311。工作区客户端815将启动协议发送到工作区服务器802,工作区服务器802可以基本类似于图3的工作区服务器315。
在该说明性示例中,工作区服务器802包括Citrix的StoreFront Web应用编程接口(API)820,但是技术人员理解,可以使用被配置为接受、服务或代理来自基于Web的应用的请求的任何Web API。另外,在该说明性示例中,工作区服务器802包括商店服务825,即,Citrix的商店服务,但是技术人员理解,可以实现被配置为控制对一个或多个资源(例如,图3的资源327)的访问的任何资源管理器。在图示示例中,StoreFront Web API820(也被称为用于Web代理API的接收机)调用由商店服务825提供的商店服务API,但技术人员理解,任何其他API组合都是可能的,包括例如,StoreFront Web API 820实质上包含了StoreServices API的功能。
Storefront Web API 820接收启动信号(或启动协议)并将其传递给商店服务825。在接收到启动信号(或启动协议)时,商店服务器825向认证平台830发出针对远程存储认证令牌的请求。认证平台830表示为Citrix的递送服务(DS)认证服务,但可以基本类似于图3的认证平台318。该请求可以包括用户的认证凭证(例如,用户名和密码)以及虚拟应用的资源标识符。在实施例中,资源标识符可以是一串唯一的字母数字字符或任何其他唯一代码,其可以标识特定资源。例如,字母数字字符串“A001”可以标识应用,例如,由VDA845提供的Microsoft Word。认证服务器830可以通过执行对例如查找表、数据库或标识用户身份的其他结构的查找来验证用户的认证凭证。在成功认证后,认证服务器830可以向商店服务825返回主要认证令牌,认证令牌提供授权并定义用户的资源类型权利。在其他实施例中,主要认证令牌可以基于先前认证由用于Web JS 815的接收机直接提供给商店服务825。基于经验证的用户身份,商店服务825然后可以确定用户被授权访问的资源类型,例如,已发布的虚拟应用和桌面、云存储文件,等等。一旦确定用户有权访问由远程存储提供者835存储的文件,商店服务825可以使用主要认证令牌从认证平台830请求次级(或委托的)认证令牌以访问远程存储提供者835。在该示例中,次级认证令牌可以被称为远程存储认证令牌。认证平台830可以将远程存储认证令牌返回给商店服务825。
使用远程存储认证令牌,商店服务825向远程存储提供者835发送远程存储会话句柄(“会话句柄”)请求。在该示例中,远程存储提供者835被表示为Citrix的ShareFile资源提供者,但技术人员理解,远程存储提供者835可以基本类似于图3的远程存储提供者321。会话句柄请求可以包括远程存储认证令牌。
在接收到会话句柄请求之后,远程存储提供者835将会话句柄,发送到商店服务825。响应于接收到会话句柄,商店服务825向代理840(例如,图3的代理服务器320)发送针对包括会话句柄的虚拟应用的地址的请求。代理840可以负责聚合、管理和监测多个VDA845实例。代理840还可以通过以下操作负责对虚拟应用的地址进行解析:首先确定安装和发布虚拟应用的合适的VDA845实例集合,并且然后基于各种附加条件(例如,VDA845当前可用,或者与所有其他VDA845实例相比负载最少)将负载平衡到单个(经解析的)VDA 845实例。
响应于接收到该请求,代理840对虚拟应用的名称(例如,应用名称)进行解析,如上文针对图3所描述的。此外,代理840向VDA845发送命令以准备针对虚拟应用的与客户端设备801的计算会话。在实施例中,命令可以包括会话句柄。
响应于接收到命令,VDA845高速缓存会话句柄并向代理840返回在客户端设备801和VDA845之间建立计算会话所需的信息。该信息可以包括,例如,托管VDA845并被配置为托管虚拟应用的虚拟机的IP地址和端口,如上文针对图3所描述的。代理840进而将信息传递到商店服务825。
使用该信息,商店服务825生成连接描述文件,该连接描述文件包括用于针对所请求的资源建立计算会话的指令以及用于访问由远程存储提供者835存储的数据文件的信息(例如,数据文件路径)。在实施例中,连接描述文件可以是由客户端设备801的计算会话引擎(例如,Citrix的HDX引擎805或图3的计算会话引擎313)用来根据Citrix的ICA协议建立计算会话的独立计算机架构(ICA)文件,如针对图10更详细讨论的。商店服务825经由StoreFront Web API 820和用于Web JS 815的接收机将连接描述文件发送到HDX引擎805。
使用连接描述文件,HDX引擎805通过向VDA845发送启动连接协议来发起针对虚拟应用的计算会话以执行云存储文件。VDA845接收启动连接协议并针对客户端设备801建立计算会话(例如虚拟计算会话)以访问虚拟应用。此外,VDA发起与远程存储提供者835的数据会话以使虚拟应用的用户能够对云存储文件执行操作,如针对图10更详细描述的。
关于图9,示例过程流900涉及使用虚拟应用来访问和/或操作存储在远程存储中的文件,并且开始于客户端设备901的用户使用虚拟递送代理(“VDA”)945递送给用户的虚拟应用来选择云存储文件,该虚拟应用可以由虚拟化服务器(例如,分别为图3的虚拟机328和虚拟化服务器324)托管的虚拟机执行。云存储文件可以由远程存储提供者935(例如,分别为图3的远程存储322和远程存储提供者321)存储在远程存储中。存储提供者客户端910可以在客户端设备901的触摸屏上呈现表示云存储文件的可选图标。在该特定示例中,存储提供者客户端910表示为Citrix的ShareFile UI插件,但技术人员理解,它也可以与图3的存储提供者客户端312基本相似。存储提供者客户端910可以以如下方式向用户呈现图标,所述方式指示云存储文件的数据文件类型和/或可操作以执行云存储文件的一个或多个虚拟应用。因此,用户可以选择默认虚拟应用或用户偏好的虚拟应用来执行云存储文件。因此,响应于用户的选择,存储提供者客户端312将启动信号(或启动协议)发送到工作区客户端,该客户端包括用于Web JS 915的接收机和本机接收机920。启动信号(或启动协议)包括例如应用ID和云存储文件的文件路径位置。工作区客户端可以基本类似于图3的工作区客户端311。工作区客户端(本地接收机920)将启动信号(或启动协议)发送到工作区服务器(商店服务925),其可以基本类似于图3的工作区服务器315。在该说明性示例中,工作区服务器925被表示为Citrix的商店服务,但是技术人员理解,可以实现被配置为控制对一个或多个资源(例如,图3的资源327)的访问的任何资源管理器。
在接收到请求时,工作区服务器925向认证平台930发出针对远程存储认证令牌的请求。认证平台930表示为Citrix的递送服务(DS)认证服务,但可以基本类似于图3的认证平台318。该请求可以包括用户的认证凭证(例如,用户名和密码)以及虚拟应用的资源标识符。在实施例中,资源标识符可以是一串唯一的字母数字字符或可以标识特定资源的任何其他唯一代码。例如,字母数字字符串“A001”可以标识应用,例如,由VDA945提供的Microsoft Word。认证平台930可以通过执行对例如查找表、数据库或标识用户身份的其他结构的查找来验证用户的认证凭证。在成功认证后,认证服务器930可以向工作区服务器925返回主要认证令牌,其提供授权并定义用户的资源类型权利。在其他实施例中,主要认证令牌可以基于先前认证由用于Web JS 915的接收机直接提供给工作区服务器925。基于经验证的用户身份,工作区服务器925然后可以确定用户被授权访问的资源类型,例如,已发布的虚拟应用和桌面、云存储文件,等等。一旦确定用户有权访问由远程存储提供者935存储的文件,工作区服务器925可以使用主要认证令牌从认证平台930请求次级(或委托)认证令牌以访问远程存储提供者935。在该示例中,次级认证令牌可以被称为远程存储认证令牌。认证平台930可以将远程存储认证令牌返回给工作区服务器925。
使用远程存储认证令牌,工作区服务器925向远程存储提供者935发送远程存储会话句柄(“会话句柄”)请求。在该示例中,远程存储提供者935被表示为Citrix的ShareFile资源提供者,但技术人员理解,远程存储提供者935可以基本类似于图3的远程存储提供者321。会话句柄请求可以包括远程存储认证令牌。
在接收到会话句柄请求之后,远程存储提供者935将会话句柄发送到工作区服务器925。响应于接收到会话句柄,工作区服务器925向代理940(例如,图3的代理服务器320)发送针对包括会话句柄的虚拟应用的地址的请求。代理940可以负责聚合、管理和监测多个VDA 945实例。代理940还可以通过以下操作负责对虚拟应用的地址进行解析:首先确定安装和发布虚拟应用的合适的VDA 945实例集合,并且然后基于各种附加标准(例如,VDA 945当前可用,或者与所有其他VDA 945实例相比负载最少)将负载平衡到单个(经解析的)VDA945实例。
响应于接收到该请求,代理940对虚拟应用的名称(例如,应用名称)进行解析,如上文针对图3所描述的。此外,代理940向VDA 945发送命令以针对虚拟应用准备与客户端设备901的计算会话。在实施例中,命令可以包括会话句柄。
响应于接收到命令,VDA 945高速缓存会话句柄并向代理940返回在客户端设备901和VDA 945之间建立计算会话所需的信息。该信息可以包括,例如,托管VDA 945并被配置为托管虚拟应用的虚拟机的IP地址和端口,如上文针对图3所描述的。代理940进而将信息传递到工作区服务器925。
使用该信息,工作区服务器925生成连接描述文件,该连接描述文件包括用于针对所请求的资源建立计算会话的指令以及用于访问由远程存储提供者935存储的数据文件的信息(例如,数据文件路径)。在实施例中,连接描述文件可以是独立计算机架构(ICA)文件,该ICA文件可以由客户端设备901的计算会话引擎(例如,Citrix的HDX引擎905或图3的计算会话引擎313)用来根据Citrix的ICA协议建立计算会话,如针对图10更详细讨论的。工作区服务器925经由本机接收机920将连接描述文件发送到HDX引擎905。
使用连接描述文件,HDX引擎905通过向VDA 945发送启动连接协议来发起针对虚拟应用的计算会话以执行云存储文件。VDA 945接收启动连接协议并针对客户端设备901建立计算会话(例如虚拟计算会话)以访问虚拟应用。此外,VDA发起与远程存储提供者935的数据会话以使虚拟应用的用户能够对云存储文件执行操作,如针对图10更详细描述的。
关于图10,详细的过程流1000开始于计算会话引擎(“引擎”)1005(例如,图3的HDX引擎805、905和计算会话引擎313)发起针对已发布的虚拟应用(“应用”)1015的计算会话以执行远程存储提供者(“存储提供者”)1030进行云存储的文件。在实施例中,引擎1005由客户端设备(例如,图5的客户端设备305)执行并且应用1015由虚拟化服务器会话代理(“会话代理”)1010递送到客户端设备。会话代理1010可以分别基本类似于图8和图9的VDA 845、945。因此,会话代理1010可以由虚拟化服务器(例如图3的服务器324)来执行。
引擎1005使用上面图8-图9中描述的连接描述文件(例如ICA文件),通过向会话代理1010发送启动连接(“LC”)协议来发起计算会话。LC协议可以包括标识应用1015的信息(例如,应用ID、地址和/或名称),以及去往云存储文件的位置的文件路径。在一些实施例中,LC协议还可以包括会话句柄,例如针对图3、图8和图9描述的会话句柄。例如,在会话代理1010不高速缓存会话句柄的实施例中,LC协议可以包括会话句柄,如图3、图8和图9中所描述的。
响应于接收到LC协议,会话代理1010识别与云存储文件相关联的存储提供者。在实施例中,会话代理1010可以通过搜索将文件路径与存储提供者相关联的表格或其他数据结构来识别存储提供者。在识别存储提供者时,会话代理1010将加载信息发送到与识别的存储提供者相对应的远程存储提供者插件(“插件”)1020(例如,图3的远程存储提供者插件325)。在实施例中,会话代理1010可以利用包括存储提供者会话句柄选项的加载协议。
插件1020可以安装在虚拟化服务器上以向会话代理1010提供与存储提供者1030的接口。加载信号包括云存储文件的文件路径,并且还可以包括会话句柄。因此,插件1020使用加载信号来建立从会话代理到存储提供者1030的数据会话(例如,数据路径)。在实施例中,插件1020可以向建立数据会话的远程存储提供者驱动映射器(“驱动映射器”)1025(例如,图3的远程存储提供者驱动映射器326)提供加载信号。驱动映射器1025也可以安装在虚拟化服务器上,并向会话代理1010提供本地资源以基于用户经由虚拟应用对云存储文件执行的操作来管理和更新云存储文件。在实施例中,插件1020或驱动映射器1025向存储提供者1030发送包括会话句柄的数据路径协议。在一些实施例中,在接收到会话句柄之后,存储提供者1030查询与会话句柄相关联的数据,例如,对会话句柄包含或指向的数据块进行解密。经解密的数据块可以包含标识以下各项的信息:客户ID、用户ID、用户虚拟(例如,高可用、分布式、复制的,等等)文件夹或虚拟文件夹集合、访问权限(例如,读取和/或写入)、发布日期和时间、到期日期和时间;以及代表经认证的用户安全地建立与远程存储提供者1030的数据会话可能需要的任何额外的访问控制或遥测信息。在确定会话句柄有效时,存储提供者1030通过将数据会话映射到云存储中的经认证用户的虚拟文件夹来完成数据会话的建立。
驱动映射器1025对本地环境进行初始化以使虚拟应用能够对云存储文件执行操作。例如,驱动映射器1025建立云存储文件的本地副本并将本地文件(即,副本的路径)映射到去往云存储文件的远程位置的文件路径。在实施例中,驱动映射器1025生成将本地文件路径映射到云存储文件的远程位置的文件路径的副本的表格或其他数据结构。
一旦建立了数据会话,驱动映射器1025经由插件1020向会话代理1010提供本地文件路径。会话代理1010向应用1015发出启动信号,该启动信号包括去往副本的本地文件路径。因此,应用1015通过将带有本地文件路径的打开文件信号发送到驱动映射器1025来打开本地文件。一旦副本被打开,应用1015就可以基于来自应用1015的用户的输入来对副本执行读/写/保存操作。应用1015将每个读/写操作发送到驱动映射器1025,驱动映射器1025进而向存储提供者1030发出读/写/保存同步信号。存储提供者1030然后使用同步信号来更新云存储文件。例如,同步信号可以包括读/写/保存操作以及云存储文件的文件路径。
响应于从用户接收到终止信号(例如,关闭文件),应用1015可以向驱动映射器1025发出关闭信号。此外,在用户关闭应用1015时,可以终止计算会话。响应于应用1015关闭和/或计算会话的挂起终止,会话代理1010可以向插件1020发出卸载信号,然后插件1020向驱动映射器1025发出关闭信号。
响应于接收到关闭信号,驱动映射器1025向存储提供者1030发出写同步信号。因此,存储提供者1030执行云存储文件与副本的同步。因此,写同步信号用于确保在与应用的计算会话终止之前,云存储文件包括副本的所有读/写/保存操作。一旦同步完成,驱动映射器1025向插件1020发送关闭完成信号,插件1020经由卸载完成信号通知会话代理1010:会话代理1010可以终止计算会话。
上述系统和方法可以在数字电子电路、计算机硬件、固件和/或软件中实现。该实施方式可以作为计算机程序产品。例如,该实施方式可以在机器可读存储设备中,以用于由数据处理装置执行或控制数据处理装置的操作。例如,该实施方式可以是可编程处理器、计算机和/或多台计算机。
计算机程序可以以任何形式的编程语言编写,包括经编译和/或解释的语言,并且计算机程序可以以任何形式部署,包括作为独立程序或作为子例程、元素和/或适合在计算环境中使用的其他单元。计算机程序可以部署在一台计算机上,或者部署在一个站点处的多台计算机上执行。
方法步骤可以由一个或多个可编程处理器执行,该可编程处理器执行计算机程序以通过对输入数据进行操作并生成输出来执行本文描述的实施的功能。方法步骤也可以由专用逻辑电路来执行并且装置可以实现为专用逻辑电路。例如,电路可以是FPGA(现场可编程门阵列)和/或ASIC(专用集成电路)。子例程和软件代理可以指实现该功能的计算机程序、处理器、特殊电路、软件和/或硬件的部分。
适合于执行计算机程序的处理器包括例如通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元素是用于执行指令的处理器和一个或多个用于存储指令和数据的存储设备。通常,计算机可以包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)、可以可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)以从该大容量存储设备接收数据和/或将数据传输到大容量存储设备。
数据传输和指令也可以通过通信网络发生。适合于体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,例如包括半导体存储器设备。例如,信息载体可以是EPROM、EEPROM、闪存设备、磁盘、内部硬盘、可移动磁盘、磁光盘、CD-ROM和/或DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充和/或并入到专用逻辑电路中。
为了提供与用户的交互,可以在具有显示设备的计算机上实施上述技术。例如,显示设备可以是阴极射线管(CRT)和/或液晶显示器(LCD)监视器。例如,与用户的交互可以是向用户显示信息,以及用户可以通过键盘和定点设备(例如,鼠标或轨迹球)向计算机提供输入(例如,与用户界面元素交互)。可以使用其他类型的设备来提供与用户的交互。例如,其他设备可以以任何形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈)提供给用户。例如,可以以任何形式接收来自用户的输入,包括声学、语音和/或触觉输入。
上述技术可以在包括后端组件的分布式计算系统中实施。例如,后端组件可以是数据服务器、中间件组件和/或应用服务器。上述技术可以在包括前端组件的分布式计算系统中实现。例如,前端组件可以是具有图形用户界面的客户端计算机、Web浏览器,用户可以通过该Web浏览器与示例实施方式交互和/或用于发送设备的其他图形用户界面。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(LAN)、广域网(WAN)、互联网、有线网络和/或无线网络。
该系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的计算机程序而产生的,并且彼此之间具有客户端-服务器关系。
基于分组的网络可以包括例如互联网、运营商互联网协议(IP)网络(例如,局域网(LAN)、广域网(WAN)、校园网(CAN)、城域网(MAN)、家庭局域网(HAN))、专用IP网络、IP专用分支交换机(IPBX)、无线网络(例如,无线电接入网(RAN)、802.11网络、802.16网络、通用分组无线电服务(GPRS)网络、HiperLAN)和/或其他基于分组的网络。基于电路的网络可以包括,例如,公共交换电话网(PSTN)、专用分支交换机(PBX)、无线网络(例如,RAN、蓝牙、码分多址(CDMA)网络、时分多址接入(TDMA)网络、全球移动通信系统(GSM)网络)和/或其他基于电路的网络。
发送设备可以包括例如计算机、具有浏览器设备的计算机、电话、IP电话、移动设备(例如,蜂窝电话、个人数字助理(PDA)设备、膝上型计算机、电子邮件设备)和/或其他通信设备。浏览器设备包括例如具有万维网浏览器(例如,可从微软公司获得的
Figure BDA0003380660200000321
Internet
Figure BDA0003380660200000322
可从Mozilla公司获得的
Figure BDA0003380660200000323
Firefox)的计算机(例如,桌面式计算机、膝上型计算机)。移动计算设备包括例如,
Figure BDA0003380660200000324
包含、包括和/或每个的复数形式都是开放式的并且包括所列部分并且可以包括未列出的附加部分。和/或是开放式的并且包括所列部分中的一个或多个和所列部分的组合。
本领域技术人员将认识到,在不脱离所描述的概念的精神或本质特征的情况下,所描述的概念可以以其他具体形式来体现。因此,前述实施例在所有方面都被认为是说明性的,而不是对本文中描述的概念的限制。因此,概念的范围由所附权利要求指示,而不是由前面的描述指示,并且因此在权利要求的等效含义和范围内的所有变化都旨在包含在其中。

Claims (33)

1.一种方法,其包括:
通过工作区服务器接收来自计算设备的针对虚拟化服务器上的应用的请求,所述请求包括应用标识符(ID)和去往如下数据文件的文件路径,所述数据文件存储在存储提供者上,并且所述应用将对所述数据文件执行操作;
通过所述工作区服务器从所述存储提供者获得会话句柄,所述会话句柄包括如下信息,所述信息使得所述计算设备能够从所述计算设备和所述虚拟化服务器之间的计算会话访问所述存储提供者;
通过所述工作区服务器生成连接描述文件,所述连接描述文件包括用于建立所述计算会话和数据会话的信息,其中,所述计算会话在所述计算设备和所述虚拟化服务器之间,并且所述数据会话在所述虚拟化服务器和所述存储提供者之间;以及
通过所述工作区服务器向所述计算设备提供所述连接描述文件,使得所述连接描述文件的执行使所述计算设备的用户能够使用由所述虚拟化服务器提供的所述应用来对所述数据文件执行操作。
2.根据权利要求1所述的方法,还包括:通过所述工作区服务器向认证平台发出针对授权令牌的请求,所述授权令牌由所述计算设备使用以访问从所述存储提供者能够访问的数据文件,其中,所述请求包括至少所述用户的凭证以及去往所述数据文件的所述文件路径。
3.根据权利要求2所述的方法,其中,获得所述会话句柄包括:通过所述工作区服务器向所述存储提供者发送针对所述会话句柄的请求,其中,所述请求包括所述授权令牌。
4.根据权利要求3所述的方法,其中,所述授权令牌提供在有限时间期间对所述数据文件的计算设备访问。
5.根据权利要求1所述的方法,还包括:通过所述工作区服务器从与所述虚拟化服务器通信的代理服务器取回所述虚拟化服务器上的所述应用的地址。
6.根据权利要求1所述的方法,其中,所述文件路径是去往远程存储提供者的路径。
7.根据权利要求4所述的方法,其中,所述数据文件经由来自所述计算设备上的电子邮件(e-mail)客户端的电子邮件消息的附件呈现给所述用户。
8.根据权利要求7所述的方法,其中,响应于所述用户对所述附件的选择,所述电子邮件客户端将所述数据文件上传到所述存储提供者;并且其中,所述方法还包括:
通过所述工作区服务器从所述电子邮件客户端接收针对所述应用的请求,并且其中,所述请求包括用于从所述电子邮件客户端的用户界面(UI)预览所述数据文件的请求。
9.根据权利要求5所述的方法,其中,生成所述连接描述文件包括:通过所述工作区服务器向所述虚拟化服务器提供所述应用ID和所述会话句柄。
10.根据权利要求1所述的方法,其中,响应于接收到所述应用ID和所述文件路径,由所述虚拟化服务器建立虚拟机,其中,利用计算硬件和/或软件资源建立所述虚拟机以用于:
建立与所述计算设备的所述计算会话;以及
建立与所述存储提供者的所述数据会话,使得所述应用能够使所述计算设备的所述用户能够对从所述存储提供者能够访问的数据文件执行所述操作。
11.根据权利要求10所述的方法,其中,所述计算会话中的所述应用的执行被所述虚拟机延迟,直到所述数据会话被建立。
12.根据权利要求10所述的方法,其中,在所述数据会话中的保存操作完成之前,所述虚拟机阻止所述计算会话终止。
13.一种包括计算机可执行指令的非暂时性计算机可读介质,当由一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器用于:
接收来自计算设备的针对虚拟化服务器上的应用的请求,所述请求包括应用标识符(ID)和去往如下数据文件的文件路径,所述数据文件存储在存储提供者上,并且所述应用将对所述数据文件执行操作;
从所述存储提供者获得会话句柄,所述会话句柄包括如下信息,所述信息使得所述计算设备能够从所述计算设备和所述虚拟化服务器之间的计算会话访问所述存储提供者;
生成连接描述文件,所述连接描述文件包括用于建立所述计算会话和数据会话的信息,其中,所述计算会话在所述计算设备和所述虚拟化服务器之间,并且所述数据会话在所述虚拟化服务器和所述存储提供者之间;以及
向所述计算设备提供所述连接描述文件,使得所述连接描述文件的执行使所述计算设备的用户能够使用由所述虚拟化服务器提供的所述应用来对所述数据文件执行操作。
14.根据权利要求13所述的非暂时性计算机可读介质,还包括计算机可执行指令,当被执行时,所述计算机可执行指令使所述一个或多个处理器用于:
向认证平台发出针对授权令牌的请求,所述授权令牌由所述计算设备使用以访问从所述存储提供者能够访问的数据文件,其中,所述请求包括至少所述用户的凭证以及去往所述数据文件的所述文件路径。
15.根据权利要求14所述的非暂时性计算机可读介质,还包括计算机可执行指令,当被执行时,所述计算机可执行指令使所述一个或多个处理器用于:
通过向所述存储提供者发送针对所述会话句柄的请求来获得所述会话句柄,其中,所述请求包括所述授权令牌。
16.根据权利要求14所述的非暂时性计算机可读介质,其中,所述授权令牌提供在有限时间期间对所述数据文件的计算设备访问。
17.根据权利要求13所述的非暂时性计算机可读介质,还包括计算机可执行指令,当被执行时,所述计算机可执行指令使所述一个或多个处理器用于:
从与所述虚拟化服务器通信的代理服务器取回所述虚拟化服务器上的所述应用的地址。
18.根据权利要求13所述的非暂时性计算机可读介质,其中,所述文件路径是去往远程存储提供者的路径。
19.根据权利要求15所述的非暂时性计算机可读介质,其中,所述数据文件经由来自所述计算设备上的电子邮件(e-mail)客户端的电子邮件消息的附件呈现给所述用户。
20.根据权利要求19所述的非暂时性计算机可读介质,其中,响应于所述用户对所述附件的选择,所述电子邮件客户端将所述数据文件上传到所述存储提供者,并且其中,所述非暂时性计算机可读介质还包括计算机可执行指令,当被执行时,所述计算机可执行指令使所述一个或多个处理器用于:
从所述电子邮件客户端接收针对所述应用的请求,并且其中,所述请求包括用于从所述电子邮件客户端的用户界面(UI)预览所述数据文件的请求。
21.根据权利要求17所述的非暂时性计算机可读介质,还包括计算机可执行指令,当被执行时,所述计算机可执行指令使所述一个或多个处理器用于通过向所述虚拟化服务器提供所述应用ID和所述会话句柄来生成所述连接描述文件。
22.一种服务器,其包括:
存储器;
一个或多个处理器,其耦合至所述存储器,所述一个或多个处理器被配置为:
接收来自计算设备的针对虚拟化服务器上的应用的请求,所述请求包括应用标识符(ID)和去往如下数据文件的文件路径,所述数据文件存储在存储提供者上,并且所述应用将对所述数据文件执行操作;
从所述存储提供者获得会话句柄,所述会话句柄包括如下信息,所述信息使得所述计算设备能够从所述计算设备和所述虚拟化服务器之间的计算会话访问所述存储提供者;
生成连接描述文件,所述连接描述文件包括用于建立所述计算会话和数据会话的信息,其中,所述计算会话在所述计算设备和所述虚拟化服务器之间,并且所述数据会话在所述虚拟化服务器和所述存储提供者之间;以及
向所述计算设备提供所述连接描述文件,使得所述连接描述文件的执行使所述计算设备的用户能够使用由所述虚拟化服务器提供的所述应用来对所述数据文件执行操作。
23.根据权利要求22所述的服务器,其中,所述一个或多个处理器还被配置为:向认证平台发出针对授权令牌的请求,所述授权令牌由所述计算设备使用以访问从所述存储提供者能够访问的数据文件,其中,所述请求包括至少所述用户的凭证以及去往所述数据文件的所述文件路径。
24.根据权利要求23所述的服务器,其中,所述一个或多个处理器还被配置为:通过向所述存储提供者发送针对所述会话句柄的请求来获得所述会话句柄,其中,所述请求包括所述授权令牌。
25.根据权利要求24所述的服务器,其中,所述授权令牌提供在有限时间期间对所述数据文件的计算设备访问。
26.根据权利要求22所述的服务器,其中,所述一个或多个处理器还被配置为:从与所述虚拟化服务器通信的代理服务器取回所述虚拟化服务器上的所述应用的地址。
27.根据权利要求22所述的服务器,其中,所述文件路径是去往远程存储提供者的路径。
28.根据权利要求22所述的服务器,其中,所述数据文件经由来自所述计算设备上的电子邮件(e-mail)客户端的电子邮件消息的附件呈现给所述用户。
29.根据权利要求28所述的服务器,其中,响应于所述用户对所述附件的选择,所述电子邮件客户端将所述数据文件上传到所述存储提供者;并且其中,所述一个或多个处理器还被配置为:从所述电子邮件客户端接收针对所述应用的请求,并且其中,所述请求包括用于从所述电子邮件客户端的用户界面(UI)预览所述数据文件的请求。
30.根据权利要求26所述的服务器,其中,所述一个或多个处理器还被配置为:通过向所述虚拟化服务器提供所述应用ID和所述会话句柄来生成所述连接描述文件。
31.根据权利要求22所述的服务器,其中,响应于接收到所述应用ID和所述文件路径,由所述虚拟化服务器建立虚拟机,其中,利用计算硬件和/或软件资源建立所述虚拟机以用于:
建立与所述计算设备的所述计算会话;以及
建立与所述存储提供者的所述数据会话,使得所述应用使所述计算设备的所述用户能够对从所述存储提供者能够访问的数据文件执行所述操作。
32.根据权利要求31所述的服务器,其中,所述计算会话中的所述应用的执行被所述虚拟机延迟,直到所述数据会话被建立。
33.根据权利要求31所述的服务器,其中,在所述数据会话中的保存操作完成之前,所述虚拟机阻止所述计算会话终止。
CN202080040004.6A 2019-05-07 2020-03-23 用于使用虚拟应用访问远程存储文件的方法和系统 Pending CN113906390A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/405,280 2019-05-07
US16/405,280 US11720291B2 (en) 2019-05-07 2019-05-07 Methods and systems for accessing remotely stored files using virtual applications
PCT/US2020/024181 WO2020226761A1 (en) 2019-05-07 2020-03-23 Methods and systems for accessing remotely stored files using virtual applications

Publications (1)

Publication Number Publication Date
CN113906390A true CN113906390A (zh) 2022-01-07

Family

ID=70334052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080040004.6A Pending CN113906390A (zh) 2019-05-07 2020-03-23 用于使用虚拟应用访问远程存储文件的方法和系统

Country Status (6)

Country Link
US (1) US11720291B2 (zh)
EP (1) EP3966684A1 (zh)
CN (1) CN113906390A (zh)
AU (1) AU2020270325A1 (zh)
CA (1) CA3138506A1 (zh)
WO (1) WO2020226761A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112583599B (zh) * 2020-11-26 2022-02-22 新华三大数据技术有限公司 通信方法及装置
US20230039612A1 (en) * 2021-08-06 2023-02-09 Dell Products, L.P. Systems and methods for use of peripheral hardware by modern workspaces
US20230266986A1 (en) * 2022-02-18 2023-08-24 Microsoft Technology Licensing, Llc Direct loading of client cloud files in a remote desktop

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7330872B2 (en) 2001-10-02 2008-02-12 Citrix Systems, Inc. Method for distributed program execution with web-based file-type association
US7117243B2 (en) 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
US6952714B2 (en) 2001-10-02 2005-10-04 Citrix Systems, Inc. Method for distributed program execution with server-based file type association
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7694082B2 (en) * 2005-07-29 2010-04-06 International Business Machines Corporation Computer program and method for managing resources in a distributed storage system
WO2010127365A1 (en) 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US20120079523A1 (en) * 2010-09-29 2012-03-29 Verizon Patent And Licensing, Inc. Unified video provisioning within a heterogeneous network environment
US9210213B2 (en) 2011-03-03 2015-12-08 Citrix Systems, Inc. Reverse seamless integration between local and remote computing environments
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
US9047441B2 (en) * 2011-05-24 2015-06-02 Palo Alto Networks, Inc. Malware analysis system
US8943564B2 (en) 2011-07-21 2015-01-27 International Business Machines Corporation Virtual computer and service
US9965151B2 (en) 2011-09-09 2018-05-08 Cloudon Ltd. Systems and methods for graphical user interface interaction with cloud-based applications
US10063430B2 (en) 2011-09-09 2018-08-28 Cloudon Ltd. Systems and methods for workspace interaction with cloud-based applications
CN103001992B (zh) * 2011-09-19 2018-01-09 中兴通讯股份有限公司 虚拟桌面实现系统及其使用方法
US20140122875A1 (en) 2012-10-31 2014-05-01 Ubs Ag Container-based management at a user device
US20140214921A1 (en) * 2013-01-31 2014-07-31 Onavo Mobile Ltd. System and method for identification of an application executed on a mobile device
US9607278B2 (en) * 2013-06-12 2017-03-28 Cloudon Ltd. Systems and methods for supporting social productivity using relevancy scoring
US10089458B2 (en) * 2013-09-26 2018-10-02 Citrix Systems, Inc. Separate, disposable execution environment for accessing unverified content
US10341414B2 (en) 2014-10-31 2019-07-02 Vmware, Inc. File sharing using remote applications
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
US10657228B1 (en) 2018-11-06 2020-05-19 Dropbox, Inc. Technologies for integrating cloud content items across platforms

Also Published As

Publication number Publication date
CA3138506A1 (en) 2020-11-12
WO2020226761A1 (en) 2020-11-12
AU2020270325A1 (en) 2021-11-25
US20200356309A1 (en) 2020-11-12
US11720291B2 (en) 2023-08-08
EP3966684A1 (en) 2022-03-16

Similar Documents

Publication Publication Date Title
US11303641B2 (en) Methods and systems for accessing remotely stored files using virtual applications
US9854063B2 (en) Enterprise application store for an orchestration framework for connected devices
CN113196724A (zh) 用于应用预启动的系统和方法
US9680873B1 (en) Trusted network detection
CN113906390A (zh) 用于使用虚拟应用访问远程存储文件的方法和系统
US11803398B2 (en) Computing device and associated methods providing browser launching of virtual sessions in an application
US10536559B2 (en) Blocking an interface of a redirected USB composite device
US11669626B2 (en) Resource access with use of bloom filters
US11509465B2 (en) Computing device and related methods providing virtual session access using group connection leases and user interface (UI) caches
WO2022066218A1 (en) Data loss protection on secondary displays
JP7027612B2 (ja) ヘルパを介したクライアントデバイスの匿名セッションへの接続
US11451635B2 (en) Secure session resume
US11474840B1 (en) Computing device and related methods providing virtual session launching from previously cached assets
US11803635B2 (en) Passing local credentials to a secure browser session
WO2022261830A1 (en) Mechanisms for secure user input
WO2022260752A1 (en) Enabling microapp access based on determined application states and user-initiated triggering events
US11316854B2 (en) Reverse authentication in a virtual desktop infrastructure environment
WO2022177613A1 (en) Computing device and associated methods providing browser launching of virtual sessions in an application
WO2022246343A1 (en) Computing device and related methods providing virtual session launching from previously cached assets

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220107