使用虚拟应用访问远程存储的文件的方法和系统与流程

文档序号:28421312发布日期:2022-01-11 22:11阅读:125来源:国知局
使用虚拟应用访问远程存储的文件的方法和系统与流程
使用虚拟应用访问远程存储的文件的方法和系统


背景技术:

1.云存储系统指代一种形式的计算机数据存储装置,其中数字数据作为虚拟存储架构存储在逻辑池中。物理计算机数据存储装置本身可以跨越多个服务器(这些服务器有时在多个位置中),以将数字数据存储为云存储的数据。云存储的数据由云服务提供者访问和管理。


技术实现要素:

2.提供本发明内容来以简化形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识要求保护的主题的关键或必要特征或组合,也不旨在用于限制要求保护的主题的范围。
3.在一个方面,一种方法包括由计算设备上的工作空间客户端从工作空间服务器取回第一组资源关联。该第一组资源关联标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。方法还包括由工作空间客户端根据第一组资源关联来生成第二组资源关联。该第二组资源关联标识虚拟化服务器上的可操作以对一个或多个数据文件类型中的每一个执行操作的应用子集。方法还包括由计算设备上的存储提供者客户端获得第二组资源关联。存储提供者客户端被配置为使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
4.在一个实施例中,该方法还可以包括:由工作空间客户端建立与工作空间服务器的计算会话。该工作空间客户端取回虚拟化服务器上的被授权以由计算设备的用户访问的应用。
5.在实施例中,该方法还可以包括:由存储提供者客户端将第二组资源关联存储在计算设备的高速缓存中;以及响应于与工作空间服务器的计算会话的终止,由存储提供者客户端清除高速缓存。存储提供者可以是远程存储提供者。
6.在另一方面,一种方法包括由工作空间服务器从代理服务器(broker server)取回第一组资源关联。该第一组资源关联标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。方法还包括由工作空间服务器生成第二组资源关联。该第二组资源关联标识虚拟化服务器上的可操作以对一个或多个数据文件类型中的每一个执行操作的应用子集。方法还包括由工作空间服务器上的存储提供者客户端获得第二组资源关联。存储提供者客户端被配置为使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
7.在实施例中,方法还可以包括:由工作空间服务器建立与代理服务器的计算会话。工作空间服务器可以取回虚拟化服务器上的被授权以由与工作空间服务器通信的计算设备的用户访问的应用。
8.在另外的实施例中,方法还可以包括:由存储提供者客户端将第二组资源关联存储在工作空间服务器的高速缓存中;以及响应于与代理服务器的计算会话的终止,由存储提供者客户端清除高速缓存。存储提供者可以是远程存储提供者。
9.在其他方面,一种方法包括由工作空间服务器从计算设备接收针对虚拟化服务器上的应用的请求。该请求包括应用标识符(id)和到数据文件的文件路径,该数据文件在存储提供者上,并且应用要对该数据文件执行操作。方法还包括由工作空间服务器从存储提供者获得会话句柄。会话句柄包括使计算设备能够根据在计算设备与虚拟化服务器之间的计算会话来访问存储提供者的信息。方法还包括由工作空间服务器生成包括用于建立计算会话和数据会话的信息的连接描述文件,其中,计算会话是在计算设备与虚拟化服务器之间的,并且数据会话是在虚拟化服务器与存储提供者之间的。另外地,方法包括由工作空间服务器向计算设备提供连接描述文件,使得连接描述文件的执行使计算设备的用户能够使用由虚拟化服务器提供的应用来对数据文件执行操作。
10.在一个实施例中,方法还可以包括由工作空间服务器向认证平台发出针对授权令牌的请求,该授权令牌由计算设备使用以访问可从存储提供者访问的数据文件。该请求可以包括至少用户的凭证和到数据文件的文件路径。
11.在另一实施例中,方法还可以包括通过由工作空间服务器向存储提供者发送针对会话句柄的请求来获得会话句柄。该请求可以包括授权令牌。授权令牌可以在有限时间内为计算设备提供对数据文件的访问。
12.在其他实施例中,方法可以包括由工作空间服务器从与虚拟化服务器通信的代理服务器取回虚拟化服务器上的应用的地址。到存储提供者的路径可以是到远程存储装置的路径。
13.在实施例中,数据文件可以经由来自计算设备上的电子邮件(e-mail)客户端的e-mail消息的附件呈现给用户。响应用户对附件的选择,e-mail客户端可以将数据文件上传到存储提供者。因此,方法还可以包括由工作空间服务器接收来自e-mail客户端的针对的应用的请求,以从e-mail客户端的用户接口(ui)预览数据文件。
14.在一些实施例中,方法可以包括通过由工作空间服务器向虚拟化服务器提供应用id和会话句柄来生成连接描述文件。
15.在另外的实施例中,响应于接收到应用id和文件路径,虚拟机可以由虚拟化服务器建立。可以利用计算硬件和/或软件资源建立虚拟机以建立与计算设备的计算会话;并且建立与存储提供者的数据会话,使得应用可以使计算设备的用户能够对可从存储提供者访问的数据文件执行操作。
16.在附加的实施例中,计算会话中的应用的执行可以由虚拟机延迟,直到数据会话被建立为止。虚拟机也可以阻止计算会话终止,直到数据会话中的保存操作完成为止。
17.在另外的方面,一种非暂时性计算机可读介质包括计算机可执行指令,该计算机可执行指令当由一个或多个处理器执行时,使得一个或多个处理器从工作空间服务器取回第一组资源关联。该第一组资源关联标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。计算机可执行指令还使得一个或多个处理器生成第二组资源关联。该第二组资源关联标识虚拟化服务器上的可操作以对一个或多个数据文件类型中的每一个执行操作的应用子集。该第二组资源关联使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
18.在实施例中,非暂时性计算机可读介质还可以包括计算机可执行指令,该计算机可执行指令当被执行时,使得一个或多个处理器进行以下操作:建立与工作空间服务器的
计算会话;以及取回虚拟化服务器上的被授权以由计算设备的用户访问的应用。
19.在另一实施例中,非暂时性计算机可读介质还可以包括计算机可执行指令,该计算机可执行指令当被执行时,使得一个或多个处理器进行以下操作:将第二组资源关联存储在高速缓存中;以及响应于与工作空间服务器的计算会话的终止,清除高速缓存。存储提供者可以是远程存储提供者。
20.在又一方面,非暂时性计算机可读介质包括计算机可执行指令,该计算机可执行指令当由一个或多个处理器执行时,使得一个或多个处理器从代理服务器取回第一组资源关联。该第一组资源关联标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。计算机可执行指令还使得一个或多个处理器生成第二组资源关联。该第二组资源关联标识虚拟化服务器上的可操作以对一个或多个数据文件类型中的每一个执行操作的应用子集。该第二组资源关联使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
21.在附加的方面,一种非暂时性计算机可读介质包括计算机可执行指令,该计算机可执行指令当由一个或多个处理器执行时,使得一个或多个处理器从计算设备接收针对虚拟化服务器上的应用的请求。该请求包括应用标识符(id)和到数据文件的文件路径,该数据文件存储在存储提供者上,并且应用要对该数据文件执行操作。计算机可执行指令还使得一个或多个处理器从存储提供者获得会话句柄。会话句柄包括使计算设备能够根据在计算设备与虚拟化服务器之间的计算会话来访问存储提供者的信息。计算机可执行指令还使得一个或多个处理器进行以下操作:生成包括用于建立计算会话和数据会话的信息的连接描述文件,其中,计算会话是在计算设备与虚拟化服务器之间的,并且数据会话是在虚拟化服务器与存储提供者之间的;以及向计算设备提供连接描述文件,使得连接描述文件的执行使计算设备的用户能够使用由虚拟化服务器提供的应用来对数据文件执行操作。
22.在实施例中,非暂时性计算机可读介质还可以包括计算机可执行指令,该计算机可执行指令在被执行时使得一个或多个处理器向认证平台发出针对授权令牌的请求,该授权令牌由计算设备使用以访问可从存储提供者访问的数据文件。该请求可以包括至少用户的凭证和到数据文件的文件路径。
23.在附加的实施例中,非暂时性计算机可读介质还可以包括计算机可执行指令,该计算机可执行指令在被执行时使得一个或多个处理器通过向存储提供者发送针对会话句柄的请求来获得会话句柄。该请求包括授权令牌。授权令牌可以在有限时间内为计算设备提供对数据文件的访问。
24.在另外的实施例中,非暂时性计算机可读介质可以包括计算机可执行指令,该计算机可执行指令在被执行时使得一个或多个处理器从与虚拟化服务器通信的代理服务器取回虚拟化服务器上的应用的地址。到存储提供者的路径可以是到远程存储装置的路径。
25.在实施例中,数据文件可以经由来自计算设备上的电子邮件(e-mail)客户端的e-mail消息的附件呈现给用户。响应用户对附件的选择,e-mail客户端可以将数据文件上传到存储提供者。另外地,非暂时性计算机可读介质还可以包括计算机可执行指令,该计算机可执行指令在被执行时使得一个或多个处理器接收来自e-mail客户端的针对的应用的请求,并且其中,请求包括用于从e-mail客户端的用户接口(ui)预览数据文件的请求。
26.在另一实施例中,非暂时性计算机可读介质还可以包括计算机可执行指令,该计
算机可执行指令在被执行时使得一个或多个处理器通过向虚拟化服务器提供应用id和会话句柄来生成连接描述文件。
27.在一方面,一种设备包括存储器和耦合到该存储器的一个或多个处理器。一个或多个处理器被配置为使用存储在存储器中的工作空间客户端,来从工作空间服务器取回第一组资源关联。该第一组资源关联标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。一个或多个处理器还被配置为使用工作空间客户端来生成第二组资源关联。该第二组资源关联标识虚拟化服务器上的可操作以对一个或多个数据文件类型中的每一个执行操作的应用子集。一个或多个处理器还被配置为使用存储在存储器中的存储提供者客户端,来获得第二组资源关联。存储提供者客户端被配置为使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
28.在实施例中,一个或多个处理器还可以被配置为:使用工作空间客户端来建立与工作空间服务器的计算会话;以及使用工作空间客户端来取回虚拟化服务器上的被授权以由计算设备的用户访问的应用。
29.在另一实施例中,一个或多个处理器还可以被配置为:使用存储提供者客户端来将第二组资源关联存储在耦合到一个或多个处理器的高速缓存中;以及响应于与工作空间服务器的计算会话的终止,使用存储提供者客户端来清除高速缓存。存储提供者可以是远程存储提供者。
30.在其他方面,一种服务器包括存储器和耦合到该存储器的一个或多个处理器。一个或多个处理器被配置为从代理服务器取回第一组资源关联。该第一组资源关联标识可由虚拟化服务器上的每个应用执行的一个或多个数据文件类型。一个或多个处理器还被配置为生成第二组资源关联。该第二组资源关联标识虚拟化服务器上的可操作以对一个或多个数据文件类型中的每一个执行操作的应用子集。另外地,第二组资源关联使虚拟化服务器上的一个或多个应用能够执行可从存储提供者访问的至少一个数据文件。
31.在实施例中,一个或多个处理器还可以被配置为:建立与代理服务器的计算会话;以及取回虚拟化服务器上的被授权以由与虚拟化服务器通信的计算设备的用户访问的应用。
32.在其他实施例中,一个或多个处理器还可以被配置为:将第二组资源关联存储在耦合到一个或多个处理器的高速缓存中;以及响应于与代理服务器的计算会话的终止,清除高速缓存。存储提供者可以是远程存储提供者。
33.在附加的方面,一种服务器包括存储器和耦合到该存储器的一个或多个处理器。一个或多个处理器被配置为从计算设备接收针对虚拟化服务器上的应用的请求。该请求包括应用标识符(id)和到数据文件的文件路径,该数据文件存储在存储提供者上,并且应用要对该数据文件执行操作。一个或多个处理器还被配置为从存储提供者获得会话句柄。会话句柄包括使计算设备能够根据在计算设备与虚拟化服务器之间的计算会话来访问存储提供者的信息。一个或多个处理器还被配置为:生成包括用于建立计算会话和数据会话的信息的连接描述文件,其中,计算会话是在计算设备与虚拟化服务器之间的,并且数据会话是在虚拟化服务器与存储提供者之间的;以及向计算设备提供连接描述文件,使得连接描述文件的执行使计算设备的用户能够使用由虚拟化服务器提供的应用来对数据文件执行操作。
34.在实施例中,一个或多个处理器还可以被配置为向认证平台发出针对授权令牌的请求,该授权令牌由计算设备使用以访问可从存储提供者访问的数据文件。该请求可以包括至少用户的凭证和到数据文件的文件路径。
35.在附加的实施例中,一个或多个处理器还可以被配置为通过向存储提供者发送针对会话句柄的请求来获得会话句柄。该请求包括授权令牌。授权令牌可以在有限时间内为计算设备提供对数据文件的访问。
36.在其他实施例中,一个或多个处理器还可以被配置为从与虚拟化服务器通信的代理服务器取回虚拟化服务器上的应用的地址。到存储提供者的路径可以是到远程存储装置的路径。
37.在另外的实施例中,数据文件可以经由来自计算设备上的电子邮件(e-mail)客户端的e-mail消息的附件呈现给用户。响应用户对附件的选择,e-mail客户端可以将数据文件上传到存储提供者。因此,一个或多个处理器可以被配置为接收来自e-mail客户端的针对的应用的请求,并且其中,请求包括用于从e-mail客户端的用户接口(ui)预览数据文件的请求。
38.在另一实施例中,一个或多个处理器可以被配置为通过向虚拟化服务器提供应用id和会话句柄来生成连接描述文件。
39.在实施例中,响应于接收到应用id和文件路径,虚拟机可以由虚拟化服务器建立。可以利用计算硬件和/或软件资源建立虚拟机以建立与计算设备的计算会话;并且建立与存储提供者的数据会话,使得应用可以使计算设备的用户能够对可从存储提供者访问的数据文件执行操作。
40.在附加的实施例中,计算会话中的应用的执行可以由虚拟机延迟,直到数据会话被建立为止。另外地,虚拟机也可以阻止计算会话终止,直到数据会话中的保存操作完成为止。
附图说明
41.通过以下对实施例的更具体的描述,如附图中示出的,前述和其他目标、特征和优点将变得显而易见,在附图中,贯穿不同的视图,相同的附图标记指代相同的部分。附图不一定按比例绘制,而是将重点放在说明实施例的原理上。
42.图1是其中可以根据本文描述的概念的一个或多个说明性方面来实现本公开的各种方面的计算设备的网络环境的框图。
43.图2是根据本文描述的概念的一个或多个说明性方面的计算设备的框图。
44.图3描绘了根据本文描述的概念的一个或多个说明性方面的说明性操作环境。
45.图4是根据本文描述的概念的一个或多个说明性方面的用于枚举由服务器托管的应用的文件类型关联的说明性方法的流程图。
46.图5是根据本文描述的概念的一个或多个说明性方面的用于枚举由服务器托管的应用的文件类型关联的说明性过程流程。
47.图6是根据本文描述的概念的一个或多个说明性方面的用于枚举由服务器托管的应用的文件类型关联的另一说明性过程流程。
48.图7是根据本文描述的概念的一个或多个说明性方面的说明性方法的流程图,该
说明性方法涉及使用虚拟应用来访问和/或操作存储在远程存储装置中的文件。
49.图8是根据本文描述的概念的一个或多个说明性方面的说明性过程流程,该说明性过程流程涉及使用虚拟应用来访问和/或操作存储在远程存储装置中的文件。
50.图9是根据本文描述的概念的一个或多个说明性方面的另一说明性过程流程,该另一说明性过程流程涉及使用虚拟应用来访问和/或操作存储在远程存储装置中的文件。
51.图10是根据本文描述的概念的一个或多个说明性方面的用于启动虚拟计算会话的说明性过程流程。
具体实施方式
52.在各种实施例的描述中,参考上面标识的并且形成本文一部分的附图,并且在附图中通过图示的方式示出了其中可以实践本文描述的概念的方面的各种实施例。应当理解,可以利用其他实施例,并且可以在不脱离本文描述的概念的范围的情况下进行结构和功能修改。因此,应当理解,可以在除了本文具体描述的那些实施例之外的实施例中实现本文描述的概念的各种方面。还应当认识到的是,本文描述的概念能够以与本文具体描述的那些方式不同的方式来实践或执行。
53.应当理解,本文所使用的措辞和术语是出于描述的目的,并且不应被视为限制性的。而是,本文所使用的短语和术语应当被给予其最宽泛的解释和含义。“包括”和“包含”及其变体的使用意味着涵盖下文列出的项目及其等同物,以及附加的项目及其等同物。术语“连接的”、“耦合的”和类似的术语的使用意味着包括直接和间接的连接和耦合。
54.计算架构
55.关于图1,可以在其中实现本公开内容的各种方面的非限制性网络环境101包括一个或多个客户端机器102a-102n、一个或多个远程机器106a-106n、一个或多个网络104、104’以及安装在计算环境101内的一个或多个装置108。客户端机器102a-102n经由网络104、104’与远程机器106a-106n通信。
56.在一些实施例中,客户端机器102a-102n经由中间装置108与远程机器106a-106n通信。所示的装置108位于网络104、104’之间,并且也可以被称为网络接口或网关。在一些实施例中,装置108可以作为应用交付控制器(adc)操作,以向客户端提供对跨客户端设备的范围被部署在数据中心、云计算环境中或作为软件即服务(saas)交付的商业应用和其他数据的访问,和/或提供诸如负载平衡等之类的其他功能。在一些实施例中,可以使用多个装置108,并且可以部署(多个)装置108作为网络104和/或网络104’的一部分。
57.客户端机器102a-102n通常可以被称为客户端机器102、本地机器102、客户端102、客户端节点102、客户端计算机102、客户端设备102、计算设备102、端点102或端点节点102。远程机器106a-106n通常可以被称为服务器106或服务器场106。在一些实施例中,客户端设备102可以具有既用作寻求访问由服务器106提供的资源的客户端节点又用作提供对针对其他客户端设备102a-102n的托管的资源的访问的服务器106的能力。网络104、104’通常可以被称为网络104。可以以有线网络和无线网络的任何组合来配置网络104。
58.服务器106可以是任何服务器类型,例如:文件服务器;应用服务器;web服务器;代理服务器;装置;网络装置;网关;应用网关;网关服务器;虚拟化服务器;部署服务器;安全套接字层虚拟专用网(ssl vpn)服务器;防火墙;web服务器;执行活动目录的服务器;云服
务器;或执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器。
59.服务器106可以执行、操作或以其他方式提供可以是以下各项中的任一个的应用:软件;程序;可执行指令;虚拟机;管理程序;web浏览器;基于web的客户端;客户端-服务器应用;瘦客户端计算客户端;activex控件;java小程序;与互联网协议语音(voip)通信相关的软件,例如,软ip电话;用于流送视频和/或音频的应用;用于促进实时数据通信的应用;http客户端;ftp客户端;oscar客户端;telnet客户端;或任何其他可执行指令集。
60.在一些实施例中,服务器106可以执行使用瘦客户端或远程显示协议的远程呈现服务程序或其他程序来捕获由在服务器106上执行的应用生成的显示输出并将该应用显示输出发送到客户端设备102。
61.在另外的实施例中,服务器106可以执行虚拟机,该虚拟机向客户端设备102的用户提供对计算环境的访问。客户端设备102可以是虚拟机。可以通过例如管理程序、虚拟机管理器(vmm)或服务器106内的任何其他硬件虚拟化技术来管理虚拟机。
62.在一些实施例中,网络104可以是:局域网(lan);城域网(man);广域网(wan);主要公共网络104;以及主要专用网络104。附加实施例可以包括使用各种协议在移动设备之间通信的移动电话网络的网络104。对于无线局域网(wlan)内的短程通信,协议可以包括ieee 802.11、蓝牙和近场通信(nfc)。
63.关于图2,图1的客户端设备102、装置108和/或服务器106可以实质上类似于计算设备100。计算设备100包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(ram))、非易失性存储器128、用户接口(ui)123、一个或多个通信接口118以及通信总线150。
64.非易失性存储器128可以包括:一个或多个硬盘驱动器(hdd)或其他磁性或光学存储介质;一个或多个固态驱动器(ssd),例如,闪存驱动器或其他固态存储介质;一个或多个混合磁和固态驱动器;和/或一个或多个虚拟存储卷(例如,云存储装置),或这种物理存储卷和虚拟存储卷或其阵列的组合。
65.用户接口123可以包括图形用户接口(gui)124(例如,触摸屏、显示器等)和一个或多个输入/输出(i/o)设备126(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个相机、一个或多个生物统计扫描仪、一个或多个环境传感器以及一个或多个加速度计等)。
66.非易失性存储器128存储操作系统115、一个或多个应用116和数据117,使得例如在易失性存储器122外部由(多个)处理器103执行操作系统115和/或应用116的计算机指令。在一些实施例中,易失性存储器122可以包括一种或多种类型的ram和/或高速缓冲存储器,其可以提供比主存储器更快的响应时间。可以使用gui 124的输入设备来键入数据,或者可以从(多个)i/o设备126接收数据。计算设备100的各种元件可以经由通信总线150进行通信。
67.所示的计算设备100仅被示为示例客户端设备或服务器,并且可以由具有任何类型的机器或机器集合的任何计算环境或处理环境来实现,该机器或机器集合可以具有能够如本文所描述地操作的合适的硬件和/或软件。
68.(多个)处理器103可以由一个或多个可编程处理器实现以执行一个或多个可执行指令(例如,计算机程序),从而执行系统的功能。如本文所使用的,术语“处理器”描述了执行功能、操作或操作的序列的电路。功能、操作或操作的序列可以被硬编码到电路中,或者
可以通过保存在存储器设备中并由电路执行的指令的方式软编码。处理器可以使用数字值和/或使用模拟信号来执行功能、操作或操作的序列。
69.在一些实施例中,处理器可以体现在一个或多个专用集成电路(asic)、微处理器、数字信号处理器(dsp)、图形处理单元(gpu)、微控制器、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、多核心处理器或具有关联存储器的通用计算机中。
70.处理器103可以是模拟、数字或混合信号的。在一些实施例中,处理器103可以是一个或多个物理处理器,或者一个或多个虚拟(例如,远程定位的或云计算环境)处理器。包括多个处理器核心的处理器和/或多个处理器可以提供用于并行、同时执行指令或用于对多于一个数据片段并行、同时执行一个指令的功能。
71.通信接口118可以包括一个或多个接口,以使计算设备100能够通过各种有线连接和/或无线连接(包括蜂窝连接)访问计算机网络,例如,局域网(lan)、广域网(wan)、个域网(pan)或互联网。
72.在所描述的实施例中,计算设备100可以代表客户端设备的用户来执行应用。例如,计算设备100可以执行由管理程序管理的一个或多个虚拟机。每个虚拟机可以提供执行会话(例如,托管的桌面会话),在该会话内,应用代表用户或客户端设备执行。计算设备100还可以执行终端服务会话以提供托管的桌面环境。计算设备100可以提供对包括一个或多个应用、一个或多个桌面应用以及其中可以执行一个或多个应用的一个或多个桌面会话的远程计算环境的访问。
73.被配置作为客户端设备102或服务器106或到客户端设备102和服务器106的中间装置的计算设备100及其操作的附加描述可以在美国专利第9,176,744号和第9,538,345号中找到,这些美国专利以其整体通过引用并入本文。

744和

345专利两者被转让给本公开的当前受让人。
74.使用虚拟应用来生成数据文件类型关联&打开云存储的文件
75.工作空间虚拟化是一种使用应用虚拟化(例如,使用软件技术将计算机程序从在其上执行这些计算机程序的底层操作系统中封装出来)向客户端计算机分发应用的一种方式。因此,工作空间虚拟化是一种封装和隔离整个计算工作空间的方法。在一个示例中,工作空间包括操作系统内核之上的那些元素(例如,应用、数据、设置和提供功能桌面计算环境所要求的任何非特权操作系统子系统)。因此,工作空间虚拟化使工作空间内的应用能够彼此交互。
76.客户端设备的用户可以建立与托管虚拟应用(例如,microsoft )的一个或多个服务器的计算会话。为了访问一个或多个服务器,用户通过向一个或多个服务器提供认证凭证来建立与一个或多个服务器的计算会话。认证凭证可以包括例如用户名称和密码。一旦用户建立了计算会话,用户就可能要求由远程存储提供者(在本文也称为“云存储提供者”)存储的文档文件或其他资源。
77.为了访问文档文件,用户根据计算会话建立与远程存储提供者的数据会话。由于远程存储提供者不能访问由用户使用以建立计算会话的认证凭证,因此远程存储提供者要求输入用户的认证凭证。
78.因此,在常规系统中,用户可以仅通过手动键入他们的认证凭证来建立数据会话以访问远程存储提供者。例如,远程存储提供者不知道用户已被认证,因为对计算会话进行
认证通常要求实际凭证(例如,ad凭证(用户名称、密码)),该实际凭证不同于用于对远程存储提供者进行认证的凭证集,例如,电子邮件地址和不同的密码。
79.相比之下,客户端设备通过在认证平台(服务器)的帮助下对工作空间进行认证,能够将经认证的用户身份映射到已经安全地选择加入共享认证平台的其他资源提供者之间,而不是仅仅映射到作为用于发布的虚拟应用和桌面的资源提供者的代理。例如,远程存储提供者是资源提供者的另一实例。代理和远程存储提供者在其使用认证平台方面也称为“依赖方”。对作为成为“依赖方”的资源提供者的不同云服务的引导通常利用安全地提供给这些云服务的管理员的服务密钥来执行。引导还包括公钥的注册。因此,这些服务密钥很小且数量有限,通常每个依赖方一个或两个密钥,这些密钥有时可能会轮换。
80.对于用于生成例如dropbox和/或onedrive令牌的认证平台,dropbox和/或onedrive云服务将各自必须(例如,通过利用服务密钥和相应的公钥进行注册)加入认证平台并成为“依赖方”。然后,认证平台将能够对认证令牌(前述“数据片段”)进行加密,使得只有对应的云服务(例如,dropbox或onedrive)能够解密和验证。
81.托管计算会话的vda(例如,由机器创建服务(mcs)通过将物理硬件或vm加上操作系统和用户层等组合在一起而即时创建的池化vda)数量庞大,并且在某些情况下具有有限的寿命。在一些实例中,每次用户注销时都会销毁并重新创建池化vda,从而使其针对下一个用户保持“常青(ever green)”且安全。citrix安全浏览器也是这种情况,其中每次用户关闭(注销)安全浏览器时,都会重新创建一个新的linux vda。
82.因此,服务密钥与vda的潜在使用将带来可扩展性和管理挑战,并且因此是不切实际的。因此,vda本身不会成为认证平台的“依赖方”。
83.作为该问题的解决方案,如本技术中进一步描述的,首先从认证平台获得认证令牌,使得该认证令牌可以与另一个特定的依赖方(在这种情况下为远程存储提供者)一起使用。形成认证令牌使得其仅可以由指定的依赖方使用,例如,利用对称密钥对内容进行加密,然后利用依赖方的公钥对该对称密钥进行加密。因此,认证令牌内容仅可以由依赖方解密和读取。然后,使用认证令牌来从远程存储提供者获取会话句柄。
84.然后,可以将该会话句柄放置在解析的vda处(如在本文描述的说明性示例方法中所讨论的)。可替代地,会话句柄可以通过诸如hdx计算会话之类的计算会话来提供(如在至少结合图10描述为“选项:存储提供者会话句柄”的另一说明性示例中所讨论的)。
85.sson的困难的方面在于首先获得会话句柄,然后将会话句柄安全地存储在解析的vda处,以便稍后仅在用户已经经由计算会话安全地登录vda并且是可信的之后,才由vda处的远程存储提供者驱动映射器有利地重用。
86.如本文更详细地描述的,本公开的实施例针对在一个或多个云存储提供者与托管虚拟应用的一个或多个服务器之间共享认证凭证,使得用户能够无缝地访问虚拟应用,以对可从云存储提供者访问的数据文件执行操作。在实施例中,使用会话句柄来共享认证凭证。
87.关于图3,计算环境300包括经由网络301、302通信地耦合到服务器315、321、324的客户端设备305。计算环境300可以是云计算环境(例如,图1的网络环境101),并且客户端设备305和服务器315、321、324可以被配置为与图1的客户端机器102和服务器106实质上类似地操作。网络301、302可以实质上类似于图1的网络104、104’。
88.在实施例中,客户端设备305的用户可能希望使用虚拟化服务器324上的一个或多个资源327来打开存储在远程存储装置322上的文件。资源327可以包括但不限于软件应用(“应用”)、虚拟桌面、文档、文件、网络、服务器、存储装置和服务。例如,用户可能希望使用应用(例如,microsoft word)查看存储在远程存储装置322上的文件(例如,microsoft word文档)和/或对存储在远程存储装置322上的文件(例如,microsoft word文档)执行操作。远程存储提供者321可以是云存储服务(例如,和dropbox
tm
),其管理对存储在远程存储装置322上的文件的访问。远程存储装置322可以是云存储装置或任何存储或能够如图2所描述地存储电子数据的任何设备。
89.在一个示例中,服务器315(在本文也称为工作空间服务器315)被配置为管理针对资源327和其他资源(例如,由远程存储提供者321存储的文件)的计算会话。
90.为了建立针对资源327中的一个或多个的计算会话,用户通过在客户端设备305上执行虚拟化客户端310的工作空间客户端311来建立与工作空间服务器315的工作空间会话。工作空间客户端311执行一个或多个认证和工作空间会话协议(例如,citrix的交付服务认证(ds认证)协议和citrix的storefront(sf)服务(又称为工作空间服务协议))来建立工作空间会话。
91.在实施例中,工作空间客户端311可以被实现为用于web javascript(js)和/或客户端设备305上的本地应用的接收机。用于web js的接收机可以是从工作空间服务器315接收到的js,并且能够执行认证和工作空间会话协议。
92.在实施例中,用于web js的接收机可以在客户端设备305本地的独立浏览器的上下文中执行(例如,用于web的接收机的js部分或citrix的html5接收机)。
93.在其他实施例中,用于web js的接收机还可以在本地应用的嵌入式浏览器部分(例如,本地citrix工作空间应用(cwa)的基于chromium嵌入式框架(cef)的浏览器部分)的上下文中执行。另外地,用于web js的接收机能够呈现枚举的资源的ui,例如,枚举的发布的虚拟应用和桌面。
94.有利地,由于呈现的ui完全或实质上是基于web的,因此该呈现的ui可以被容易地修改、保持最新和重塑形象(例如,具有客户特定的标志、配色方案等,而不是看起来由诸如citrix之类的工作空间云服务提供者提供)。
95.在实施例中,本地应用的使用具有本地集成和扩展特征集的附加优势,该本地集成和扩展特征集可能以其他方式在本地浏览器内是不可能的或不允许的。
96.在实施例中,扩展特征可以包括:创建代表发布的虚拟应用和桌面的本地桌面快捷方式或开始菜单项;运行与基于web的计算会话引擎313(例如,来自citrix的基于web的html5 hdx引擎)相对的具有更高性能特征和更好ux的本地计算会话引擎313(例如,来自citrix的本地hdx引擎);支持高级功能,例如,将usb设备重定向到虚拟环境、“无缝”发布的虚拟应用窗口、发布的虚拟应用的任务栏分组等等。
97.然而,在实施例中,本地应用(例如,citrix的cwa)的使用可能要求显式安装并且在某些情况下要求附加的配置,而纯粹基于web的方法(例如,citrix的html5接收机)不要求任何附加的安装,并且因此,尽管性能和功能集更有限,但该基于web的方法可能是实用的且优选的。在图8-9的说明性过程流程中进一步详细讨论了用于web js和本地应用的接收机的功能。
98.响应于从工作空间客户端311接收到用于建立工作空间会话的请求,工作空间服务器315可以通过将用户的认证凭证(例如,用户名称和密码)发送到认证平台318(其可以是诸如图1的服务器106之类的服务器)来认证客户端设备305的用户。认证平台318(例如,citrix cloud identity platform、microsoft azure ad、经由云连接器访问的本地部署客户ad等)通过执行对例如查找表、数据库或标识用户身份的其他结构的查找来验证用户的认证凭证。在成功认证之后,认证平台318可以向工作空间服务器315返回主认证令牌,该主认证令牌提供授权并定义用户的资源类型权利。在其他实施例中,主认证令牌可以基于先前的认证由工作空间客户端311直接提供给工作空间服务器315。
99.基于经验证的用户身份,工作空间服务器315然后可以确定用户被授权访问的资源类型,例如,发布的虚拟应用和桌面、云存储的文件等。此外,工作空间服务器315然后可以联系相应的资源提供者服务器(例如,代理服务器320和远程存储提供者321),以分别从每个资源提供者枚举用户有权(或被授权访问)的一个或多个特定资源的列表。代理服务器320和远程存储提供者321可以是诸如图1的服务器106之类的服务器。然后,工作空间服务器315可以经由工作空间客户端311向用户呈现一个或多个枚举的资源。
100.生成文件类型关联
101.另外地,在验证用户的认证凭证后,工作空间客户端311或工作空间服务器315可以生成数据文件类型关联,该数据文件类型关联使由虚拟化服务器324存储的一个或多个应用能够执行由远程存储提供者321存储或可从远程存储提供者321访问的一个或多个文件。
102.在一个示例实施例中,工作空间客户端311从工作空间服务器315接收用户的凭证已经被认证的通知。在接收到通知之后,工作空间客户端311取回一组资源关联(例如,第一组资源关联),该组资源关联标识可从工作空间服务器315执行的资源327(例如,应用)的数据文件类型。资源关联可以是数据结构,包括但不限于数组、表、树或列表。在一些实施例中,第一组资源关联可以包括应用文件类型关联(fta)。使用第一组资源关联,工作空间客户端311生成另一组资源关联(例如,第二组资源关联),该另一组资源关联标识可以对每种数据文件类型执行例如打开以查看、编辑、保存等的资源327的子集。第一组资源关联的元素可以采用例如[应用n,应用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数据文件类型。
[0103]
被配置为允许用户访问由远程存储提供者321存储的文件的存储提供者客户端
312从工作空间客户端311获得第二组资源关联。存储提供者客户端312可以是(例如,经由客户端设备305的触摸屏)呈现可选择图标的用户接口(ui)插件,该可选择图标表示由远程存储提供者321存储或可从远程存储提供者321访问的文件。在该上下文中,ui插件可以被定义为利用特定于资源提供者客户端(例如,存储提供者客户端312)的附加功能来扩展工作空间客户端311的功能的附加组件。ui插件可以采用js、html、css等形式,并且可以经由定义良好的接口集来与工作空间客户端311通信。在一些实施例中,用于工作空间客户端311的ui插件可以是citrix的sharefile ui插件、drobox的ui插件和microsoft的onedriveui插件。在一些实施例中,ui插件可用的接口可以包括用于从工作空间客户端311返回第二组资源关联的api,例如,数据文件类型的列表和可操作以执行每个对应的数据文件类型的发布的虚拟应用(资源327)的相关联的列表。
[0104]
在另一示例实施例中,工作空间服务器315从代理服务器320取回第一组资源关联,该第一组资源关联标识可从工作空间服务器315执行的资源327(例如,应用)的数据文件类型。代理服务器320经由工作空间服务器315协商来自客户端设备305的针对一个或多个资源327的计算会话启动请求。协商可以包括枚举允许向工作空间服务器315认证的用户访问的资源327或在这之前枚举资源327。使用第一组资源关联,工作空间服务器315生成第二组资源关联,该第二组资源关联标识能够执行每个数据文件类型的资源327的子集(在实施例中,根据第一组资源关联生成第二组资源关联可以以与上文在工作空间客户端和存储提供者客户端的上下文中先前描述的技术相同或相似的方式来实现)。远程存储提供者321可以从工作空间服务器315获得第二组资源关联。远程存储提供者321可以使用第二组资源关联来向最终用户或另一服务提供利用资源327中的一个执行云存储的文件的选项。
[0105]
使用虚拟应用来打开云存储的文件
[0106]
在实施例中,工作空间服务器315可以接收来自用户的针对资源327中的一个的请求,以经由例如工作空间客户端311执行由远程存储提供者存储的数据文件。该请求可以包括资源标识符以及到数据文件在远程存储装置322中的位置的文件路径。在一些实施例中,远程存储装置可以是由citrix的sharefile(又称为citrix files)、drobox、microsoft onedrive等提供的文件存储装置,并且可以由microsoft azure、amazon web services(aws)或其他云平台中的云文件存储装置支持。在实施例中,资源标识符可以是唯一的字母数字字符串或可以标识特定资源的任何其他唯一的码。例如,字母数字串“a001”可以标识应用,例如,由虚拟化服务器324存储的microsoft word。
[0107]
在接收到请求时,工作空间服务器315从认证平台318获得远程存储认证令牌(即,可以用于验证真实性的数据片段),如关于图8-9更详细地描述的。使用远程存储认证令牌,工作空间服务器315从远程存储提供者321取回远程存储会话句柄,同样如关于图8-9更详细地描述的。在实施例中,远程存储会话句柄可以包含或指向加密的数据块(data blob),该加密的数据块包含标识以下各项的信息:客户id、用户id、用户虚拟(例如,高度可用、分布式、复制等)文件夹或一组虚拟文件夹、访问权限(例如,读取和/或写入)、发布日期和时间、到期日期和时间、以及任何附加的访问控制或遥测信息,这些信息对于代表经验证的用户安全地建立与远程存储提供者321的数据会话可能是必要的。在一些实施例中,远程存储会话句柄可以是随机生成的数字,其用作保存前述加密的数据块的表内的指针或索引。工作空间服务器315向代理服务器320发送针对包括远程存储会话句柄的所请求的资源的地
址的请求。
[0108]
响应于接收到请求,代理服务器320解析所请求的资源的名称(例如,应用名称),如下文进一步描述的。代理服务器320向虚拟化服务器324发送命令以准备针对所请求的资源的与客户端设备305的计算会话。在实施例中,命令可以包括远程存储会话句柄。
[0109]
响应于接收到命令,虚拟化服务器324缓存远程存储会话句柄并建立虚拟机328以托管和执行来自资源327的所请求的资源。为此,虚拟化服务器32可以供应执行所请求的资源所需的物理和/或软件计算资源。例如,虚拟化服务器324可以包括管理程序(未示出),其对被包括在虚拟化服务器324的硬件和/或软件层(未示出)中的执行所请求的资源所需的物理和/或计算资源进行分配。一旦建立了虚拟机328,虚拟化服务器324就向代理服务器320返回建立在客户端设备305与虚拟机328之间的计算会话所要求的信息。该信息可以包括例如虚拟机328的ip地址和端口、优选的传输协议(例如tcp或udp)、区域(位置)、完全合格的应用路径和可执行模块名称,因此该信息可以稍后在托管所请求的资源的机器处执行,等等。代理服务器320进而将信息传递到工作空间服务器315。
[0110]
使用该信息,工作空间服务器315生成连接描述文件,该连接描述文件包括用于建立针对所请求的资源的计算会话的所有所要求的指令和用于访问由远程存储提供者321存储的数据文件的信息(例如,数据文件路径)。连接描述文件还可以包括网关地址,该网关地址可以用于经由网关远程建立计算会话。工作空间服务器315可以基于解析的虚拟机328的区域(位置)来确定网关地址。在实施例中,网关可以类似于图1的装置108。在实施例中,连接描述文件可以是由客户端设备305使用以根据citrix的ica协议建立计算会话的独立计算机架构(ica)文件,如关于图8-10更详细讨论的。工作空间服务器315将连接描述文件发送到客户端设备305。
[0111]
使用连接描述文件,由客户端设备305上的虚拟化客户端310托管的计算会话引擎313发起针对所请求的资源的计算会话。例如,计算会话引擎313从连接描述文件中提取虚拟机328的ip地址和端口,以经由网络302建立与虚拟机328的直接计算会话。作为另一示例,计算会话引擎313从连接描述文件中提供网关地址,以经由网关(图3中未示出)建立与虚拟机328的远程计算会话。在实施例中,网关可以类似于图1的装置108。在实施例中,计算会话引擎313可以使用提取的虚拟机328的ip地址和端口、优选的传输等向虚拟机328发送连接请求。响应于接收到连接请求,虚拟机328可以使用缓存的远程存储会话句柄针对数据文件建立与远程存储提供者321的数据会话,如关于图10更详细地描述的。
[0112]
关于图4,方法400涉及生成数据文件类型关联,该数据文件类型关联使由虚拟化服务器存储的一个或多个应用能够执行由远程存储提供者存储或可从远程存储提供者访问的一个或多个文件(例如,分别为图3的虚拟化服务器324和远程存储提供者321)。
[0113]
在第一示例中,方法400由工作空间客户端(例如,图3的工作空间客户端311)执行。在405处,该方法包括由工作空间客户端从工作空间服务器(例如,图3的工作空间服务器315)获得第一组资源关联。例如,可以通过与代理服务器通信的工作空间服务器获得资源,其中该代理服务器随后枚举发布的资源。可以通过查询安装的应用元数据(例如,使用shell集成api,或读取注册表配置)来获得第一资源关联列表(例如,fta)。第一资源关联列表也可以由管理员明确地配置或覆盖(例如,管理员可以覆盖默认的应用fta)。然后,可以由代理服务器返回第一资源关联列表作为用于枚举的发布的资源的元数据。
[0114]
第一组资源关联可以是标识可由多个资源中的一个资源(例如,图3的资源327)执行的数据文件类型的第一组资源关联。在410处,方法400包括由工作空间客户端根据第一组资源关联来生成第二组资源关联。第二组资源关联可以是标识可以执行数据文件类型的资源的子集的第二组资源关联。
[0115]
可以使用各种不同的技术来生成第二组资源关联。例如,可以通过对处理单个文件的应用的列表进行优先排序来生成第二组资源关联。而且,可以通过使用用户的收藏夹和近期使用的应用列表来确定优先级次序以生成第二组资源关联。或者,工作空间服务器可以利用特定的文件类型来请求服务(例如,citrix analytics service(cas)),以获得近期/频繁使用的应用。信息可以由cwa和/或虚拟化服务器收集并提供给cas。或者,可以例如基于收藏夹的应用来将应用固定为用于打开文件的默认应用。或者,用户仅点击文件并利用默认应用或优先级次序中的第一个应用来打开该文件。或者,用户可以仅右键单击以接收菜单,可以从该菜单中选择第二组资源关联。
[0116]
在415处,方法400还包括向存储提供者客户端(例如,图3的存储提供者客户端312)提供第二组资源关联。
[0117]
在第二示例中,方法400可以由工作空间服务器(例如,图3的工作空间服务器315)执行。因此,在405处,该方法包括由工作空间服务器从代理服务器(例如,图3的代理服务器320)获得第一组资源关联。在410处,方法400包括由工作空间服务器使用第一组资源关联来生成第二组资源关联。在415处,方法400还包括向存储提供者(例如,图3的远程存储提供者321)提供第二组资源关联。
[0118]
关于图5,过程流程500涉及由工作空间客户端505生成数据文件类型关联,该数据文件类型关联使由虚拟化服务器存储的一个或多个应用能够执行由远程存储提供者存储或可从远程存储提供者访问的一个或多个文件(例如,分别为图3的虚拟化服务器324和远程存储提供者321)。工作空间客户端505可以实质上类似于图3的工作空间客户端311。工作空间客户端505取回第一组资源关联,该第一组资源关联标识资源中的每一个(例如,图3的资源327)可以从工作空间服务器510执行的数据文件类型,该工作空间服务器510可以实质上类似于间图3的工作空间服务器315。在实施例中,工作空间客户端505通过向工作空间服务器510发送枚举资源请求来取回第一组资源关联。例如,工作空间服务器510接收枚举资源请求并将其转发到代理服务器(未示出,例如,图3的代理服务器320)。代理服务器320然后通过读取存储的第一组资源关联来响应该请求,该第一组资源关联标识可由多个资源中的一个资源(例如,图3的资源327)执行的数据文件类型。可以使用上面描述的技术中的一个来获得第一资源关联列表(例如,fta)。还如上面所指出的,然后可以由代理服务器返回第一资源关联列表作为用于枚举的发布的资源的元数据。
[0119]
使用第一组资源关联,工作空间客户端505生成第二组资源关联,该第二组资源关联标识可以执行每种数据文件类型的资源的子集。例如,工作空间客户端505可以从第一组资源关联中提取用于资源中的每一个的文件类型关联(fta)的列表,并重新组织该列表以标识可以执行每种数据文件类型的资源的列表。存储提供者客户端515(例如,图3的存储提供者客户端312)从工作空间客户端505获得第二组资源关联。
[0120]
关于图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的计算会话的终止而清除高速缓存。
[0121]
关于图7,方法700涉及使用虚拟应用来访问和/或操作存储在远程存储提供者中或可从远程存储提供者访问的文件,如可以由诸如图3的工作空间服务器315之类的工作空间服务器执行的。在705处,方法700包括从客户端设备的用户接收针对虚拟应用(“应用”)的请求,以执行由远程存储提供者存储或可从远程存储提供者访问的数据文件(例如,分别是图3的客户端设备305和远程存储提供者321)。在实施例中,虚拟应用可以是图3的资源327中的一个。
[0122]
在710处,方法700还包括从远程存储提供者获得会话句柄,该会话句柄使虚拟应用能够对数据文件执行用户操作。在示例中,获得会话句柄可以包括从认证平台(例如,图3的认证平台318)取回授权令牌。另外地,在715处,方法700包括根据图3和图8-9中描述的技术中的任一个来向托管虚拟应用的虚拟机(例如,图3的虚拟机328)提供会话句柄。此外,在720处,方法700包括使客户端设备能够针对虚拟应用建立与虚拟机的计算会话,以根据图3和图8-10中描述的技术中的任一个来对数据文件执行用户操作。
[0123]
关于图8,示例过程流程800涉及使用虚拟应用来访问和/或操作存储在远程存储装置中或可通过远程存储装置访问的文件。该过程开始于客户端设备801的用户使用由虚拟交付代理(“vda”)845交付给用户的虚拟应用来选择云存储的文件,该虚拟应用可以由虚拟化服务器托管的虚拟机来执行(例如,分别是图3的虚拟化服务器324和虚拟机328)。云存储的文件可以由远程存储提供者835存储在远程存储装置中(例如,分别是图3的远程存储提供者321和远程存储装置322)。存储提供者客户端810可以在客户端设备801的触摸屏上呈现表示云存储的文件的可选择图标。在该说明性示例中,存储提供者客户端810可以作为citrix的sharefile ui插件提供,但是技术人员应理解,该存储提供者客户端810也可以实质上类似于图3的存储提供者客户端312。存储提供者客户端810可以以指示云存储的文件的数据文件类型和/或可操作以执行云存储的文件的一个或多个虚拟应用的方式向用户呈现图标。因此,用户可以选择默认虚拟应用或用户优选的虚拟应用来执行云存储的文件。因此,响应于用户的选择,存储提供者客户端810向客户端设备801上的工作空间客户端815发送启动信号(或启动协议),该启动信号包括例如应用id和到云存储的文件位置的文件路径。在该示例中,工作空间客户端815被表示为citrix的用于web javascript(js)的接收机,但也可以实质上类似于图3的工作空间客户端311。工作空间客户端815将启动协议发送到工作空间服务器802,该工作空间服务器802可以实质上类似于图3的工作空间服务器
315。
[0124]
在该说明性示例中,工作空间服务器802包括citrix的storefront web应用编程接口(api)820,但是技术人员应理解,可以使用被配置为接受、服务或代理来自基于web的应用的请求的任何web api。另外地,在该说明性示例中,工作空间服务器802包括存储服务825(即,citrix的存储服务),但是技术人员应理解,可以实现被配置为控制对一个或多个资源(例如,图3的资源327)的访问的任何资源管理器。在所示示例中,storefront web api 820(也称为用于web代理api的接收机)调用由存储服务825提供的存储服务api,但技术人员应理解,任何其他api组合都是可能的,包括例如实质上包含了存储服务api的功能的storefront web api 820。
[0125]
storefront web api 820接收启动信号(或启动协议),并将该启动信号传递给存储服务825。在接收到启动信号(或启动协议)之后,存储服务825向认证平台830发出针对远程存储认证令牌的请求。认证平台830被表示为citrix的交付服务(ds)认证服务,但也可以实质上类似于图3的认证平台318。请求可以包括用户的认证凭证(例如,用户名称和密码)和虚拟应用的资源标识符。在实施例中,资源标识符可以是唯一的字母数字字符串或可以标识特定资源的任何其他唯一的码。例如,字母数字串“a001”可以标识应用,例如,由vda 845交付的microsoft word。认证服务器830可以通过执行对例如查找表、数据库或标识用户身份的其他结构的查找来验证用户的认证凭证。在成功认证之后,认证服务器830可以向存储服务825返回主认证令牌,该主认证令牌提供授权并定义用户的资源类型权利。在其他实施例中,主认证令牌可以基于先前的认证由用于web js的接收机815直接提供给存储服务825。基于经验证的用户身份,存储服务825然后可以确定用户被授权访问的资源类型,例如,发布的虚拟应用和桌面、云存储的文件等。一旦确定用户有权访问由远程存储提供者835存储的文件,存储服务825就可以使用主认证令牌以从认证平台830请求用于访问远程存储提供者835的辅助(或委托的)认证令牌。在该示例中,辅助认证令牌可以被称为远程存储认证令牌。认证平台830可以将远程存储认证令牌返回给存储服务825。
[0126]
使用远程存储认证令牌,存储服务825向远程存储提供者835发送远程存储会话句柄(“会话句柄”)请求。在该示例中,远程存储提供者835被表示为citrix的sharefile资源提供者,但是技术人员应理解,远程存储提供者835可以实质上类似于图3的远程存储提供者321。会话句柄请求可以包括远程存储认证令牌。
[0127]
在接收到会话句柄请求之后,远程存储提供者835将会话句柄发送到存储服务825。响应于接收到会话句柄,存储服务825将针对包括会话句柄的虚拟应用的地址的请求发送到代理840(例如,图3的代理服务器320)。代理840可以负责聚合、管理和监视多个vda 845实例。代理840还可以通过首先确定其中安装和发布虚拟应用的vda 845实例的合适集合,然后基于各种附加标准(例如,vda 845)当前可用或与所有其他vda 845实例相比加载最少来使负载均衡到单个(解析的)vda 845实例,来负责解析虚拟应用的地址。
[0128]
响应于接收到该请求,代理840解析虚拟应用的名称(例如,应用名称),如上面关于图3所描述的。另外地,代理840向vda 845发送命令以准备针对虚拟应用的与客户端设备801的计算会话。在实施例中,命令可以包括会话句柄。
[0129]
响应于接收到命令,vda 845缓存会话句柄并向代理840返回在客户端设备801与vda 845之间建立计算会话所要求的信息。该信息可以包括例如托管vda 845并被配置为托
管虚拟应用的虚拟机的ip地址和端口,如上面关于图3所描述的。代理840进而将信息传递到存储服务825。
[0130]
使用该信息,存储服务825生成连接描述文件,该连接描述文件包括用于针对所请求的资源建立计算会话的指令和用于访问由远程存储提供者835存储的数据文件的信息(例如,数据文件路径)。在实施例中,连接描述文件可以是独立计算机架构(ica)文件,该ica文件由客户端设备801的计算会话引擎(例如,citrix的hdx引擎805或图3的计算会话引擎313)使用以根据citrix的ica协议来建立计算会话,如关于图10更详细地讨论的。存储服务825经由storefront web api 820和用于web js的接收机815将连接描述文件发送到hdx引擎805。
[0131]
利用连接描述文件,hdx引擎805通过向vda 845发送启动连接协议,来发起针对虚拟应用的计算会话以执行云存储的文件。vda 845接收启动连接协议并且针对客户端设备801建立计算会话(例如,虚拟计算会话)以访问虚拟应用。另外地,vda发起与远程存储提供者835的数据会话,以使虚拟应用的用户能够对云存储的文件执行操作,如关于图10更详细地描述的。
[0132]
关于图9,示例过程流程900涉及使用虚拟应用来访问和/或操作存储在远程存储装置中的文件,并且开始于客户端设备901的用户使用由虚拟交付代理(“vda”)945交付给用户的虚拟应用来选择云存储的文件,该虚拟应用可以由虚拟化服务器托管的虚拟机来执行(例如,分别是图3的虚拟化服务器324和虚拟机328)。云存储的文件可以由远程存储提供者935存储在远程存储装置中(例如,分别是图3的远程存储提供者321和远程存储装置322)。存储提供者客户端910可以在客户端设备901的触摸屏上呈现表示云存储的文件的可选择图标。在该特定示例中,存储提供者客户端910表示为citrix的sharefile ui插件,但是技术人员应理解,该存储提供者客户端910也可以实质上类似于图3的存储提供者客户端312。存储提供者客户端910可以以指示云存储的文件的数据文件类型和/或可操作以执行云存储的文件的一个或多个虚拟应用的方式向用户呈现图标。因此,用户可以选择默认虚拟应用或用户优选的虚拟应用来执行云存储的文件。因此,响应于用户的选择,存储提供者客户端312向包括用于web js的接收机915和本地接收机920的工作空间客户端发送启动信号(或启动协议)。启动信号(或启动协议)包括例如应用id和云存储的文件的文件路径位置。工作空间客户端可以实质上类似于图3的工作空间客户端311。工作空间客户端(本地接收机920)将启动信号(或启动协议)发送到工作空间服务器(存储服务925),该工作空间服务器可以实质上类似于图3的工作空间服务器315。在该说明性示例中,工作空间服务器925被表示为citrix的存储服务,但是技术人员应理解,可以实现被配置为控制对一个或多个资源(例如,图3的资源327)的访问的任何资源管理器。
[0133]
在接收到请求时,工作空间服务器925向认证平台930发出针对远程存储认证令牌的请求。认证平台930被表示为citrix的交付服务(ds)认证服务,但也可以实质上类似于图3的认证平台318。请求可以包括用户的认证凭证(例如,用户名称和密码)和虚拟应用的资源标识符。在实施例中,资源标识符可以是唯一的字母数字字符串或可以标识特定资源的任何其他唯一的码。例如,字母数字串“a001”可以标识应用,例如,由vda 845交付的microsoft word。认证平台930可以通过执行对例如查找表、数据库或标识用户身份的其他结构的查找来验证用户的认证凭证。在成功认证之后,认证服务器930可以向工作空间服务
器925返回主认证令牌,该主认证令牌提供授权并定义用户的资源类型权利。在其他实施例中,主认证令牌可以基于先前的认证由用于web js的接收机915直接提供给工作空间服务器925。基于经验证的用户身份,工作空间服务器925然后可以确定用户被授权访问的资源类型,例如,发布的虚拟应用和桌面、云存储的文件等。一旦确定用户有权访问由远程存储提供者935存储的文件,工作空间服务器925就可以使用主认证令牌以从认证平台930请求用于访问远程存储提供者935的辅助(或委托的)认证令牌。在该示例中,辅助认证令牌可以被称为远程存储认证令牌。认证平台930可以将远程存储认证令牌返回给工作空间服务器925。
[0134]
使用远程存储认证令牌,工作空间服务器925向远程存储提供者935发送远程存储会话句柄(“会话句柄”)请求。在该示例中,远程存储提供者935被表示为citrix的sharefile资源提供者,但是技术人员应理解,远程存储提供者935可以实质上类似于图3的远程存储提供者321。会话句柄请求可以包括远程存储认证令牌。
[0135]
在接收到会话句柄请求之后,远程存储提供者35将会话句柄发送到工作空间服务器925。响应于接收到会话句柄,工作空间服务器925将针对包括会话句柄的虚拟应用的地址的请求发送到代理940(例如,图3的代理服务器320)。代理940可以负责聚合、管理和监视多个vda 945实例。代理940还可以通过首先确定其中安装和发布虚拟应用的vda 945实例的合适集合,然后基于各种附加标准(例如,vda 945)当前可用或与所有其他vda 945实例相比加载最少来使负载均衡到单个(解析的)vda 945实例,来负责解析虚拟应用的地址。
[0136]
响应于接收到该请求,代理940解析虚拟应用的名称(例如,应用名称),如上面关于图3所描述的。另外地,代理940向vda945发送命令以准备针对虚拟应用的与客户端设备901的计算会话。在实施例中,命令可以包括会话句柄。
[0137]
响应于接收到命令,vda 945缓存会话句柄并向代理940返回在客户端设备901与vda 945之间建立计算会话所要求的信息。该信息可以包括例如托管vda 945并被配置为托管虚拟应用的虚拟机的ip地址和端口,如上面关于图3所描述的。代理940进而将信息传递到工作空间服务器925。
[0138]
使用该信息,工作空间服务器925生成连接描述文件,该连接描述文件包括用于针对所请求的资源建立计算会话的指令和用于访问由远程存储提供者935存储的数据文件的信息(例如,数据文件路径)。在实施例中,连接描述文件可以是由客户端设备901的计算会话引擎(例如,citrix的hdx引擎905或图3的计算会话引擎313)使用以根据citrix的独立计算机架构(ica)协议建立计算会话的ica文件,如关于图10更详细地讨论的。工作空间服务器925经由本地接收机920将连接描述文件发送到hdx引擎905。
[0139]
利用连接描述文件,hdx引擎905通过向vda 945发送启动连接协议,来发起针对虚拟应用的计算会话以执行云存储的文件。vda 945接收启动连接协议和针对客户端设备901的建立的计算会话(例如,虚拟计算会话)以访问虚拟应用。另外地,vda发起与远程存储提供者935的数据会话,以使虚拟应用的用户能够对云存储的文件执行操作,如关于图10更详细地描述的。
[0140]
关于图10,详细的过程流程1000开始于计算会话引擎(“引擎”)1005(例如,hdx引擎805、905和图3的计算会话引擎313)发起针对发布的虚拟应用(“应用”)1015的计算会话以由远程存储提供者(“存储提供者”)1030执行云存储的文件。在实施例中,引擎1005由客
户端设备(例如,图5的客户端设备305)执行,并且应用1015由虚拟化服务器会话代理(“会话代理”)1010交付到客户端设备。会话代理1010可以实质上分别类似于图8的vda 845和图9的vda 945。因此,会话代理1010可以由诸如图3的服务器324之类的虚拟化服务器来执行。
[0141]
引擎1005使用如上面在图8-9中描述的连接描述文件(例如,ica文件),通过向会话代理1010发送启动连接(“lc”)协议来发起计算会话。lc协议可以包括标识应用1015的信息(例如,应用id、地址和/或名称),以及到云存储的文件位置的文件路径。在一些实施例中,lc协议还可以包括会话句柄,例如,关于图3、图8和图9描述的会话句柄。例如,在其中会话代理1010不缓存会话句柄的实施例中,lc协议可以包括会话句柄,如上面在图3、图8和图9中所描述的。
[0142]
响应于接收到lc协议,会话代理1010标识与云存储的文件相关联的存储提供者。在实施例中,会话代理1010可以通过搜索将文件路径与存储提供者进行关联的表或其他数据结构来标识存储提供者。在标识出了存储提供者之后,会话代理1010将加载信息发送到与标识出的存储提供者相对应的远程存储提供者插件(“插件”)1020(例如,图3的远程存储提供者插件325)。在实施例中,会话代理1010可以利用包括存储提供者会话句柄选项的加载协议。
[0143]
插件1020可以安装在虚拟化服务器上以向会话代理1010提供与存储提供者1030的接口。加载信号包括云存储的文件的文件路径并且还可以包括会话句柄。因此,插件1020使用加载信号来建立从会话代理到存储提供者1030的数据会话(例如,数据路径)。在实施例中,插件1020可以将加载信号提供给远程存储提供者驱动映射器(“驱动映射器”)1025,其建立了数据会话(例如,图3的远程存储提供者驱动映射器326)。驱动映射器1025也可以被安装在虚拟化服务器上,并基于用户通过虚拟应用对云存储的文件执行的操作来为会话代理1010提供本地资源,以管理和更新云存储的文件。在实施例中,插件1020或驱动映射器1025向存储提供者1030发送包括会话句柄的数据路径协议。在一些实施例中,在接收到会话句柄之后,存储提供者1030查询与会话句柄相关联的数据,例如,对由会话句柄包含或指向的数据块进行解密。解密的数据块可能包含标识以下各项的信息:客户id、用户id、用户虚拟(例如,高度可用、分布式、复制等)文件夹或一组虚拟文件夹、访问权限(例如,读取和/或写入)、发布日期和时间、到期日期和时间、以及任何附加的访问控制或遥测信息,这些信息对于代表经验证的用户安全地建立与远程存储提供者1030的数据会话可能是必要的。在建立会话句柄有效时,存储提供者1030通过将数据会话映射到云存储装置中的经认证用户的虚拟文件夹来完成数据会话的建立。
[0144]
驱动映射器1025初始化本地环境以使虚拟应用能够对云存储的文件执行操作。例如,驱动映射器1025建立云存储的文件的本地副本并将本地文件(即,到副本的路径)映射到去往云存储的文件的远程位置的文件路径。在实施例中,驱动映射器1025生成表或其他数据结构,该表或其他数据结构将本地文件路径映射到去往云存储的文件的远程位置的文件路径的副本。
[0145]
一旦建立了数据会话,驱动映射器1025就经由插件1020向会话代理1010提供本地文件路径。会话代理1010向应用1015发出启动信号,该启动信号包括到副本的本地文件路径。因此,应用1015通过将具有本地文件路径的打开文件信号发送到驱动映射器1025来打开本地文件。一旦打开了副本,应用1015就可以基于来自应用1015的用户的输入来对副本
执行读取/写入/保存操作。应用1015将每个读取/写入操作发送到驱动映射器1025,该驱动映射器1025进而向存储提供者1030发出读取/写入/保存同步信号。存储提供者1030然后使用同步信号来更新云存储的文件。例如,同步信号可以包括读取/写入/保存操作以及云存储的文件的文件路径。
[0146]
响应于从用户接收到终止信号(例如,关闭文件),应用1015可以向驱动映射器1025发出关闭信号。另外地,在用户关闭应用1015之后,计算会话可以被终止。响应于应用1015关闭和/或挂起计算会话的终止,会话代理1010可以向插件1020发出卸载信号,然后插件1020向驱动映射器1025发出关闭信号。
[0147]
响应于接收到关闭信号,驱动映射器1025向存储提供者1030发出写入同步信号。因此,存储提供者1030执行云存储的文件与副本的同步。因此,写入同步信号用于确保在与应用的计算会话终止之前,云存储的文件包括副本的所有读取/写入/保存操作。一旦同步完成,驱动映射器1025就向插件1020发送关闭完成信号,该插件1020经由卸载完成信号来建议会话代理1010它可以终止计算会话。
[0148]
上面描述的系统和方法可以以数字电子电路、计算机硬件、固件和/或软件实现。实现方式可以作为计算机程序产品。实现方式可以例如在机器可读存储设备中,以供数据处理装置执行或控制数据处理装置的操作。例如,实现方式可以是可编程处理器、计算机和/或多个计算机。
[0149]
计算机程序可以以任何形式的编程语言(包括编译和/或解释语言)编写,并且计算机程序可以以任何形式部署,包括作为独立程序或作为子例程、元素和/或适合在计算环境中使用的其他单元部署。可以部署计算机程序以在一个计算机或一个站点的多个计算机上执行。
[0150]
方法步骤可以由一个或多个可编程处理器执行,该可编程处理器执行计算机程序以通过对输入数据进行操作并生成输出来执行本文所描述的实施例的功能。方法步骤也可以由专用逻辑电路来执行并且装置可以被实现为专用逻辑电路。例如,电路可以是fpga(现场可编程门阵列)和/或asic(专用集成电路)。子程序和软件代理可以指代计算机程序、处理器、特殊电路、软件和/或硬件的实现该功能的部分。
[0151]
通过示例的方式,适于执行计算机程序的处理器包括通用处理器和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本要素是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机可以包括、可以可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),以从其接收数据和/或向其传送数据。
[0152]
数据传输和指令也可以通过通信网络发生。适于体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,通过示例的方式,该非易失性存储器包括半导体存储器设备。例如,信息载体可以是eprom、eeprom、闪速存储器设备、磁盘、内部硬盘、可移除磁盘、磁光盘、cd-rom和/或dvd-rom盘。处理器和存储器可以由专用逻辑电路补充和/或合并到专用逻辑电路中。
[0153]
为了提供与用户的交互,可以在具有显示设备的计算机上实现上面描述的技术。例如,显示设备可以是阴极射线管(crt)和/或液晶显示器(lcd)监视器。例如,与用户的交
互可以是向用户显示信息,并且用户可以通过键盘和定点设备(例如,鼠标或轨迹球)向计算机提供输入(例如,与用户接口元素交互)。可以使用其他种类的设备来提供与用户的交互。例如,其他设备可以以任何形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈)向用户提供反馈。例如,可以以任何形式接收来自用户的输入,包括声学、语音和/或触觉输入。
[0154]
上面描述的技术可以在包括后端组件的分布式计算系统中实现。例如,后端组件可以是数据服务器、中间件组件和/或应用服务器。上面描述的技术可以在包括前端组件的分布式计算系统中实现。例如,前端组件可以是具有图形用户接口的客户端计算机、用户可以通过其与示例实现方式交互的web浏览器和/或用于发送设备的其他图形用户接口。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(lan)、广域网(wan)、互联网、有线网络和/或无线网络。
[0155]
系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络进行交互。客户端和服务器的关系是由于在相应的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序而产生的。
[0156]
基于分组的网络可以包括例如互联网、运营商互联网协议(ip)网络(例如,局域网(lan)、广域网(wan)、校园网(can)、城域网(man)、家庭局域网(han))、专用ip网络、ip专用分支交换(ipbx)、无线网络(例如,无线电接入网络(ran)、802.11网络、802.16网络、通用分组无线电服务(gprs)网络、hiperlan)和/或其他基于分组的网络。基于电路的网络可以包括例如公共交换电话网(pstn)、专用分支交换(pbx)、无线网络(例如,ran、蓝牙、码分多址(cdma)网络、时分多址(tdma)网络、全球移动通信系统(gsm)网络)和/或其他基于电路的网络。
[0157]
发送设备可以包括例如计算机、具有浏览器设备的计算机、电话、ip电话、移动设备(例如,蜂窝电话、个人数字助理(pda)设备、膝上型计算机、电子邮件设备)和/或其他通信设备。浏览器设备包括例如具有万维网浏览器(例如,可从microsoft公司获得的internet可从mozilla公司获得的firefox)的计算机(例如,台式计算机、膝上型计算机)。移动计算设备包括例如
[0158]“包括”、“包含”和/或每个术语的复数形式都是开放式的并且包括所列部分并且可以包括未列出的附加部分。“和/或”是开放式的并且包括所列部分中的一个或多个以及所列部分的组合。
[0159]
本领域技术人员将认识到,在不脱离所描述的概念的精神或基本特性的情况下,所描述的概念可以以其他特定形式体现。因此,前述实施例在所有方面都被认为是说明性的,而不是限制本文所描述的概念。因此,概念的范围由所附权利要求书指示,而不是由前述说明书指示,因此在权利要求书的等效物的含义和范围内的所有改变都旨在包含在其中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1