计算环境选择技术的制作方法

文档序号:12071197阅读:136来源:国知局
计算环境选择技术的制作方法与工艺

本申请案要求2014年9月22日提交的、题目为“COMPUTING ENVIRONMENT SELECTION TECHNIQUES”的共同未决的美国专利申请号14/492,648的优先权,所述申请的全部内容以引用的方式并入本文。



背景技术:

通常使用虚拟计算环境来提供对生产力和其他应用的访问。例如,用户可以与服务器建立连接以便访问在服务器上执行的应用。可使用各种技术来提供如同应用在本地执行的可用性。例如,用户装置的显示器可以根据桌面隐喻提供图形用户接口,由此使得用户能够打开远程执行的应用并且与其交互。在一些实例中,使用组织的自身硬件(诸如在组织的数据中心中托管的服务器)来提供这种功能。在其他实例中,计算资源服务提供者利用其硬件来代表客户托管虚拟计算环境。此类系统有时通常被称为“虚拟桌面基础设施”(VDI)。

客户端计算装置和其对应虚拟计算系统环境可各自具有各种安装的应用,所述应用可用于访问存储在客户端计算装置或虚拟计算系统环境内的一个或多个数据文件。用于提供虚拟计算系统环境的常规配置通常是不灵活的,通常使得难以在一个环境与另一个环境之间切换。此外,在一些情况下,允许应用的本地执行可增加安全风险,诸如当客户端计算装置是便携式计算机(例如,笔记本或平板计算机)并且应用访问敏感数据时。在其他情况下,特定文件类型的文件可在一个环境中是可用的,但没有可操作以打开和处理文件的适当应用。

附图简述

将参考附图描述根据本公开的各个实施方案,在附图中:

图1示出其中可实现各种实施方案的环境的说明性实例;

图2示出根据至少一个实施方案的环境的说明性实例,其中虚拟计算环境服务的一个或多个部件被配置来使得用户能够访问虚拟计算环境;

图3示出根据至少一个实施方案的环境的说明性实例,其中用户的计算装置的一个或多个部件被配置来启用与虚拟计算环境服务的通信和访问;

图4示出根据至少一个实施方案的用户的计算装置环境的说明性实例,其中用户可以选择存储在计算装置内的一个或多个数据文件;

图5示出根据至少一个实施方案的用户的计算装置环境的说明性实例,其中响应于策略实现通过接口在虚拟计算环境内利用所选择的数据文件;

图6示出根据至少一个实施方案的用户的计算装置环境的说明性实例,其中通过在计算装置环境内执行应用来利用所选择的数据文件;

图7示出根据至少一个实施方案的用于确定计算环境的过程的说明性实例,其中可使用应用来利用所选择的数据文件;

图8示出根据至少一个实施方案的用于利用一个或多个策略来确定计算环境的过程的说明性实例,其中可以利用所选择的数据文件;

图9示出根据至少一个实施方案的用于响应于确定应用不可用于使用数据文件而将数据文件转移到不同的计算环境的过程的说明性实例;以及

图10示出其中可实现各种实施方案的环境。

详细描述

在以下描述中,将描述各种实施方案。出于解释的目的,将阐述具体的配置和细节,以便提供对实施方案的透彻理解。然而,对本领域的技术人员将明显的是,在没有具体细节的情况下也可以实践实施方案。此外,为了不使所描述的实施方案晦涩,可省略或简化众所周知的特征。

本文描述和建议的技术涉及选择计算环境,其中访问用于利用位于本地计算环境中或虚拟计算系统环境中的一个或多个数据文件的应用。在实施方案中,实体使用计算装置(例如,膝上型计算机、台式计算机、移动装置等)以便利用存储在计算装置上的数据文件。数据文件可以与安装在计算装置上的各种应用相关联。例如,当实体选择数据文件时,计算装置可以启动安装在计算装置上的相关联应用以便使得用户能够为他/她的目的而利用数据文件。在一些实例中,实体是组织的雇员并且被配给计算装置以便支持组织的商业需求。然而,本文描述的技术适用于其中使用虚拟计算系统环境的其他上下文。

在实施方案中,组织可以在计算装置上安装位置确定应用,其可以被配置来用作各种数据文件类型的默认应用。例如,当实体选择特定数据文件而不是执行可用于访问数据文件的应用时,计算装置可执行此位置确定应用。位置确定应用可以被配置来评估由组织提供并且在计算装置的注册表或其他机构中编码的策略,以便确定策略是否指定将在本地计算装置环境内利用数据文件,或是否将在虚拟计算系统环境内使用数据文件。例如,如果策略指定可以在本地计算装置环境内利用数据文件,则位置确定应用可以致使计算装置执行安装在装置上的应用,所述应用可以被实体用来利用所选择的数据文件。

如果位置确定应用基于在计算装置的注册表文件中编码的策略确定将在虚拟计算系统环境内使用数据文件,则位置确定应用可以致使计算装置发起与虚拟计算环境服务的通信会话以便启动虚拟计算环境接口。此接口可以是图形用户接口(GUI),其可以使得实体能够与包括可与各种数据文件类型相关联的各种应用的虚拟机实例交互。在实施方案中,位置确定应用致使计算装置将所选择的数据文件发送到由虚拟计算环境服务提供的物理主机(即物理计算机系统),以便将数据文件存储在物理主机内的数据存储库内。这可使得能够在虚拟计算环境内使用此数据文件。

一旦数据文件已经被传输到虚拟计算环境服务内的物理主机,位置确定应用就可向虚拟计算环境内的应用传输一个或多个可执行指令,以便致使在环境中启动应用以及致使应用访问数据文件。这可使得实体能够利用接口与此应用和在虚拟计算环境内访问的数据文件交互。当实体已经在此环境中完成利用数据文件时,应用可将数据文件存储在与用户的计算装置不同的位置中。此外,虚拟计算环境服务可将更新的数据文件传输到其中它可以被同步和存储的实体的计算装置。

在替代性实施方案中,实体通过可通过他/她的计算装置访问的接口在虚拟计算环境内选择数据文件。如果访问所选择的数据文件所需的应用在虚拟计算环境中是不可用的,则虚拟计算环境服务可访问实体配置文件或实体的计算装置,以便确定配置文件中的信息是否指示在实体的计算装置上安装了合适的应用。如果在实体的计算装置上安装了合适的应用,则虚拟计算环境服务可将所选择的数据文件传输到实体的计算装置并且致使在计算装置内启动应用,从而使得实体能够利用本地(例如,从实体角度来看)计算环境内的数据文件。

以这种方式,可以基于应用可用性和策略定义,在最优计算环境中访问和利用由实体选择的数据文件。另外,本文描述和建议的技术促进另外的技术优点。例如,因为在一些实施方案中,虚拟计算环境服务可将数据文件传输到其中应用对实体可以是可用的以便访问此数据文件的环境,所以实体可以能够从任何合适的环境访问数据文件而不需要手动地将数据文件转移到另一个位置或环境以便访问数据文件或在能够利用数据文件的他/她的计算装置或虚拟计算环境内安装应用。

图1示出其中可实现各种实施方案的环境100的说明性实例。在环境100中,用户通过计算装置102(例如,膝上型计算机、台式计算机、移动装置等)可以与操作系统接口104交互,以便访问存储在计算装置102内的一个或多个数据文件106。操作系统接口104可以是图形用户接口,用户通过安装在计算装置102上的一个或多个用户输入装置可以利用所述图形用户接口,以便与存储在计算装置102内的应用、文件结构和数据文件的一个或多个图标图形表示交互。例如,如图1所示,用户可以利用他/她的计算装置102来与操作系统接口104内的光标108交互,以便选择计算机图标110、垃圾图标112和一个或多个数据文件图标106。可利用这些图标106、110、112以便通过接口104访问操作系统、应用、文件结构和数据文件自身的各种功能。

当用户利用光标108来选择数据文件图标106以便利用相关联的数据文件时,安装在计算装置102上的操作系统可确定所选择的数据文件是否与安装在计算装置102上的一个或多个应用相关联。例如,响应于用户利用光标108来选择数据文件图标106,操作系统可访问注册表文件以便确定特定数据文件类型是否与安装在计算装置102上的一个或多个应用相关联。如果特定数据文件类型与特定应用相关联,则操作系统可执行应用并且使得能够通过此应用来使用数据文件。例如,如果特定数据文件是文字处理文档,则可使用任何合适的文字处理应用来打开文档。在另一个实例中,如果特定数据文件是电子表格文档,则可使用任何合适的电子表格应用来打开文档。虽然为了说明的目的在本公开中自始至终使用注册表文件,但是可以在其他机构中编码一个或多个策略,所述其他机构可用于确定特定数据文件类型是否与安装在计算装置102上的一个或多个应用相关联。例如,一些操作系统可以被配置来利用除注册表文件以外的设置,以便对存储在用户的计算装置102内的这些一个或多个策略进行编码。

在实施方案中,所选择的数据文件可以与用户的计算装置102的管理员或别的监督实体安装在计算装置102上的位置确定应用相关联,而不是通过计算装置102与用户安装和可访问的应用相关联。位置确定应用可以被配置来访问安装在计算装置102上的一个或多个注册表文件,以便识别可以与所选择的数据文件类型相关联的一个或多个策略。这些策略可指定是通过安装在计算装置102上的应用,还是通过单独计算环境中可用的应用来利用特定类型的数据文件。如果一个或多个策略指定可使用安装在计算装置102上的应用访问特定类型的数据文件,则位置确定应用可致使操作系统执行适当的应用,并且通过计算装置102和操作系统接口104使得用户能够利用应用以便与所选择的数据文件交互。

然而,如果一个或多个策略指定不利用安装在计算设备102上的任何应用来使用所选择的数据文件,则位置确定应用可致使操作系统发起与一个或多个虚拟计算环境服务器114的通信会话,以便访问其中可以利用所选择的数据文件的虚拟计算环境。虚拟计算环境服务器114可包括一个或多个物理主机,其可用于例示一个或多个虚拟机图像。此外,虚拟计算环境可以是可不采用桌面隐喻的单租户(例如,一次仅可由单个用户使用)桌面或其他单租户虚拟计算环境。这些一个或多个虚拟机图像可包括操作系统和一个或多个应用,其在被例示时可以安装在这些虚拟计算环境服务器114内的一个或多个物理主机上。与计算装置102一样,虚拟计算环境服务器114可以给用户提供虚拟计算环境接口116,所述虚拟计算环境接口116可用于与虚拟计算环境内可用的一个或多个应用交互。

位置确定应用可致使安装在计算装置102上的操作系统启动用户客户端,所述用户客户端可用于访问此虚拟计算环境接口116。附加地,位置确定应用可将所选择的数据文件传输到这些虚拟计算环境服务器114,其中数据文件可以存储在与用户的计算装置102不同的位置内,在所述位置中特定用户的虚拟机图像已经被例示。在实施方案中,位置确定应用向虚拟计算环境服务器114传输一个或多个凭证集以便启用对用户的验证。如果虚拟计算环境服务器114不能够验证用户,则服务器114可以拒绝对通过用户的计算装置102访问虚拟计算环境接口116的位置确定应用请求。

如果一个或多个虚拟计算环境服务器114能够验证用户,则位置确定应用可以向虚拟计算环境的操作系统传输一个或多个可执行指令,以便致使在虚拟计算环境内执行应用118以使得能够使用所选择的数据文件。用户通过可通过操作系统接口104可用的用户客户端,可以能够利用虚拟计算环境接口116与应用118和所选择的数据文件交互。当用户完成在虚拟计算环境内利用数据文件时,一个或多个虚拟计算环境服务器114可将更新的数据文件存储在其中可以例示虚拟机图像的物理主机内。附加地,虚拟计算环境服务器114可将更新的数据文件传输到用户计算装置102,所述用户计算装置102可使此更新的数据文件与存储在其中的数据文件同步。

在替代性环境中,用户通过虚拟计算环境接口118选择用于在虚拟计算环境内使用的数据文件。当用户选择数据文件时,一个或多个虚拟计算环境服务器114可确定特定虚拟机图像是否包括适当的应用以使得能够使用数据文件。如果虚拟计算环境服务器114确定在虚拟计算环境内没有适当的应用是可用的,则虚拟计算环境服务器114可以诸如通过对装置102的一个或多个应用编程接口(API)调用与用户的计算装置102通信,以便确定能够用来使得能够使用数据文件的应用在计算装置102的操作系统环境内是否是可用的。如果识别了应用,则虚拟计算环境服务器114可访问用户账户信息数据存储内的用户的账户信息,以便确定是否可使用用户的计算装置102来访问所选择的数据文件类型。

如果可使用安装在用户的计算装置102上的应用来访问数据文件,则虚拟计算环境服务器114可将所选择的数据文件从其中虚拟机图像被例示的物理主机传输到用户的计算装置102。此外,虚拟计算环境服务器114可将可执行指令传输到安装在用户的计算装置102上的操作系统,以便执行特定应用并且使得能够通过应用使用数据文件。因此,用户可以能够通过操作系统接口104利用此应用来使用所选择的数据文件。一旦用户已经完成使用数据文件,用户的计算装置102就可将更新的数据文件传输到虚拟计算环境服务器114,所述虚拟计算环境服务器114可使更新的数据文件与存储在与用户的计算装置102不同的位置内的现有数据文件同步。

如上所述,如果位置确定应用至少部分地基于存储在用户的计算装置内的注册表文件中编码的一个或多个策略来确定将在虚拟计算环境内利用所选择的数据文件,则位置确定应用可致使用户的计算装置发起与虚拟计算环境服务的通信会话以便访问此环境。此外,位置确定应用可将一个或多个可执行指令传输到虚拟计算环境服务,其可致使在此环境内启动特定应用,从而使得能够在虚拟计算环境内使用所选择的数据文件。因此,图2示出根据至少一个实施方案的环境200的说明性实例,其中虚拟计算环境服务202的一个或多个部件被配置来使得用户能够访问虚拟计算环境。

在环境200中,虚拟计算环境服务202可以给用户提供接口204,所述接口204可以使得用户能够通过他/她的计算装置206访问虚拟计算环境服务202。用户可通过一个或多个通信网络(诸如互联网)来利用接口204。接口204可包含某些安全保护,以便确保用户具有访问虚拟计算环境服务202的授权。例如,为了访问虚拟计算环境服务202,用户在使用接口204时可能需要提供用户名和对应的密码或加密密钥。另外,提交到接口204的请求(例如,API调用)可能需要使用密码密钥生成的电子签名,以使得所述电子签名可由虚拟计算环境服务202验证,诸如通过授权系统(未示出)。

一旦用户已经通过他/她的计算装置206接口204获得对虚拟计算环境服务202的访问,虚拟计算环境服务202就可允许用户通过接口204与管理子系统208交互。例如,管理子系统206可使得用户能够远程管理和维持一个或多个虚拟机图像。这些虚拟机图像可以被维持在虚拟机图像数据存储210内的数据存储装置中。当用户提交对设置虚拟机实例的请求时,虚拟计算环境服务202可识别用户已经请求的机器图像,并且分配对于处理机器图像所必要的资源(例如,操作机器图像的组件所需要的处理器和随机存取存储器(RAM))。机器图像可在例如可充当所述实例的物理主机212的一个或多个物理存储装置(例如,一个或多个服务器或硬盘驱动器)上被例示。

虚拟计算环境服务202还可以为服务202的每个用户维持可以在用户配置文件数据存储214内记录的用户账户。每个用户配置文件可包括一个或多个策略,所述一个或多个策略可指定是否可以在用户的虚拟计算环境内、在用户的计算装置206内、或在任何其他环境中启动可用于使得用户能够利用特定数据文件类型的应用。例如,用户的计算装置206的管理员可以生成可应用于用户的账户的策略,所述策略指定仅可以在用户的虚拟计算环境内打开某些数据文件。还可以在用户的计算装置206上的一个或多个注册表文件中编码此策略。

当用户使用他/她的计算装置206试图打开存储在装置206上的特定数据文件时,安装在装置206上的操作系统可确定安装在装置206上的哪个应用与所选择的数据文件相关联。例如,在实施方案中,操作系统至少部分地基于存储在计算装置206内的一个或多个注册表文件来确定所选择的数据文件与位置确定应用相关联。此应用可以不是用户可访问的,并且可以被装置206的上述管理员安装在计算装置206上。位置确定应用可以被配置来在用户选择数据文件时访问一个或多个注册表文件,以便识别与特定数据文件类型有关的任何策略。例如,策略可指定使用安装在用户的计算装置206上的应用将打不开特定类型的数据文件。此外,这些策略可指定将在特定虚拟计算环境内打开特定类型的数据文件。策略还可指定其中可以打开数据文件的一个或多个虚拟计算环境的排序。可以至少部分地基于这些虚拟计算环境的一个或多个安全方面来创建排序。例如,可以在这些一个或多个虚拟计算环境的排序内的较高位置中指定具有重要安全保护(例如,数据加密、防火墙实现、病毒扫描等)的虚拟计算环境。

如果位置确定应用至少部分地基于这些一个或多个策略确定在本地(例如,相对于用户的计算装置206)内打不开所选择的数据文件,则位置确定应用可致使用户的计算装置206发起与虚拟计算环境服务202的通信会话,以便使得用户能够通过接口204访问他/她的虚拟计算环境。在一些实施方案中,位置确定应用可以向虚拟计算环境服务202提供访问服务202所需的用户凭证。响应于由位置确定应用提供的用户访问他/她的虚拟计算环境的请求,管理子系统208可访问用户配置文件数据存储214内的用户的账户,以便识别已经为用户的虚拟计算环境例示了特定虚拟机图像的特定物理主机212。一旦管理子系统208已经识别物理主机212,管理子系统208就可以使得用户能够通过接口204访问他/她的虚拟计算环境。另外,位置确定应用可将选择的数据文件传输到虚拟计算环境服务202,其中管理子系统208可将数据文件存储在除用户的计算装置206之外的不同位置内。

一旦数据文件已经被存储在除用户的计算装置206之外的不同位置内,并且用户通过接口204已经获得对他/她的虚拟计算环境的访问,位置确定应用就可以将一个或多个可执行指令传输到管理子系统208,以致使应用可用于使得能够使用将在虚拟计算环境内启动的所选择的数据文件。这可以使得用户能够通过他的用户计算装置206来使用此虚拟计算环境内的数据文件。当用户已经在虚拟计算环境内完成使用所选择的数据文件时,管理子系统208可将更新的数据文件传输到用户的计算装置206,以便使用户的计算装置206内的数据文件和虚拟计算环境同步。

在实施方案中,用户通过接口204选择将在虚拟计算环境内打开的一个或多个数据文件。响应于此选择,管理子系统208可确定用户所利用的特定虚拟机实例是否包括打开这些数据文件所需的一个或多个应用。如果管理子系统208不能够识别能够打开所选择的数据文件的任何应用,则管理子系统208可访问用户配置文件数据存储214以便识别关于这些特定数据文件的任何策略。例如,如上所述,用户的计算装置206的管理员可以在特定策略中指定:用户的计算装置206具有打开数据文件所需的一个或多个应用,并且用户被授权在本地(例如,在用户的计算装置206环境内)使用这些应用。

如果管理子系统208不能够识别可用于打开所选择的一个或多个数据文件的应用,则管理子系统208可以拒绝用户打开这些数据文件的请求,无论所述应用通过所述虚拟机实例提供,通过对于用户可用的其他虚拟机实例提供,还是安装在用户的计算装置206上。然而,如果管理子系统208能够识别其中应用可用于打开所选择的数据文件的替代性环境,则管理子系统208可将数据文件和可执行指令传输到所选择的环境,以便致使启动应用并且使得能够使用该环境内的数据文件。例如,如果在用户的计算装置206内可以找到打开所选择的数据文件所需的应用,则管理子系统208可以从物理软管212获得所选择的数据文件,并且将这些数据文件和可执行指令传输到用户的计算装置206,以便致使用户的计算装置206启动所选择的应用并且使得能够使用这些数据文件。一旦用户已经完成利用用户的计算装置206内的应用和数据文件,用户的计算装置206就可将更新的数据文件传输到虚拟计算环境服务202,所述虚拟计算环境服务202通过管理子系统208可以使这些获得的数据文件与存储在除用户的计算装置206之外的不同位置内的数据文件同步。

如上所述,用户可以利用计算装置来启动一个或多个应用以便打开一个或多个数据文件。在一些实施方案中,所选择的数据文件可以与位置确定应用相关联,所述位置确定应用可用于确定是否可使用安装在计算装置上的应用来打开数据文件,或者是否仅可以在虚拟计算环境内打开数据文件。因此,图3示出根据至少一个实施方案的环境300的说明性实例,其中用户的计算装置304的一个或多个部件被配置来启用与虚拟计算环境服务314的通信和访问。如图3所示,计算装置304可包括一个或多个处理器312(例如,中央处理单元(CPU)),所述一个或多个处理器312可以被配置来通过总线子系统与多个外围子系统通信并且可操作地耦接到多个外围子系统。这些外围子系统可包括存储子系统306,所述存储子系统306包括用于利用一个或多个应用308的存储器子系统和文件存储子系统310、一个或多个用户接口输入装置、一个或多个用户接口输出装置、网络接口子系统等。除了输入装置的传感器之外,外围子系统还可包括一个或多个传感器。此类传感器可包括但不限于全球定位系统(GPS)传感器、加速度计、温度传感器等。

存储子系统306可提供计算机可读存储介质,其用于存储可提供本公开的至少一个实施方案的功能的基本编程和数据结构。在被一个或多个处理器执行时可提供本公开的一个或多个实施方案的功能的应用或其部件(程序、代码模块(即编程模块)、指令)可以存储在存储子系统306中。这些应用模块或指令可以由一个或多个处理器312执行。存储子系统306可附加地提供用于存储根据本公开使用的数据的存储库。存储子系统306可包括存储器子系统和文件/盘存储子系统310。

当用户302利用用户计算装置304来打开存储在文件存储子系统310内的一个或多个数据文件时,一个或多个处理器312可访问文件存储子系统310内的一个或多个注册表文件,以便识别可用于打开所选择的一个或多个数据文件的一个或多个应用308。例如,一个或多个注册表文件可指定将使用安装在计算装置304上的位置确定应用来打开所选择的一个或多个数据文件。存储在文件存储子系统内的一个或多个注册表文件可以由一个或多个管理员提供,所述一个或多个管理员的任务为在利用计算装置304时建立用户302权限。

这些一个或多个注册表文件可以进一步编码一个或多个策略,其中策略可指定由计算装置304的用户302选择的所选择的一个或多个数据文件是否可使用安装在计算装置304上的应用308来打开这些数据文件。位置确定应用可访问在一个或多个注册表文件中编码的这些一个或多个策略,以便确定是否将在计算装置304环境内打开所选择的数据文件。如果位置确定应用至少部分地基于这些策略确定使用安装在计算装置304上的应用308将打不开一个或多个数据文件,而是必须使用虚拟计算环境内的应用来打开所述一个或多个数据文件,则位置确定应用可以致使一个或多个处理器312将一个或多个可执行指令传输到网络接口子系统,所述网络接口子系统可提供到虚拟计算环境服务314的接口。网络接口子系统可以使得能够传输应用308数据和其他信息(诸如访问系统(例如,接收网页)的电子请求),并且可以使得能够接收对请求的响应(诸如网页或其他信息)。

一旦已经在计算装置304与虚拟计算环境服务314之间建立通信信道,则一个或多个处理器312可将可执行指令传输到文件存储子系统306,以便将一个或多个所选择的数据文件传输到虚拟计算环境服务314。另外,一个或多个处理器312可执行用户客户端应用,以便使得用户302能够利用计算装置304来与虚拟计算环境服务314所提供的虚拟计算环境交互。例如,在实施方案中,一个或多个处理器312将可执行指令传输到虚拟计算环境服务314,所述虚拟计算环境服务314可致使服务在用户302的虚拟计算环境内启动应用并且打开一个或多个提供的数据文件。当用户302完成在虚拟计算环境内使用一个或多个数据文件时,虚拟计算环境服务314可将更新的数据文件传输到计算装置304,其中一个或多个处理器312可以使这些接收的数据文件与存储在文件存储子系统310内的数据文件同步。

在实施方案中,响应于用户302在他/她的虚拟计算环境内选择了一个或多个数据文件,虚拟计算环境服务314确定在此环境中没有应用可用来打开所选择的数据文件。虚拟计算环境服务314还可至少部分地基于在用户302的配置文件内指定的信息,确定计算装置304包括打开所选择的数据文件所需的一个或多个应用308。因此,虚拟计算环境服务314可将一个或多个数据文件传输到计算装置304,其中一个或多个处理器312可将接收到的数据文件存储在文件存储子系统310内。此外,一个或多个处理器312可以启动由虚拟计算环境服务314指定的应用308,并致使应用308打开所接收的一个或多个数据文件以供使用。

如上所述,用户通过计算装置可以与操作系统接口交互以便打开存储在计算装置内的一个或多个数据文件。操作系统接口可以是GUI,用户通过安装在计算装置上的一个或多个用户输入装置可以利用所述GUI,以便与存储在计算装置内的应用、文件结构和数据文件的一个或多个图标图形表示交互。因此,图4示出根据至少一个实施方案的用户的计算装置环境400的说明性实例,其中用户可以选择存储在计算装置内的一个或多个数据文件412。计算装置环境400可以是可用于与在其中可执行的一个或多个数据文件和应用交互的操作系统接口。

计算装置环境400可包括一个或多个图标,所述一个或多个图标可以表示可在计算装置环境400内执行的一个或多个功能。例如,如图4所示,计算装置环境400可包括计算机图标402,所述计算机图标402可用于访问各种存储装置(例如,硬盘驱动器等)、外围装置(例如,CD-ROM驱动器、DVD驱动器等)和网络装置。计算装置环境400还可包括垃圾图标404,所述垃圾图标404可以启用对可用于将一个或多个数据文件从计算装置环境400移除的应用的访问。计算装置环境400还可包括文件夹图标406,所述文件夹图标406可用于访问计算装置的文件结构内的特定数据文件容器。应当注意,图4中所示的图标不是可在计算装置环境400内可用的仅有图标,并且可以为计算装置环境400内的各种功能提供附加图标和/或替代图标。

计算装置环境400还可包括应用按钮416,所述应用按钮416可用于访问安装在计算装置上的一个或多个应用。当用户在接合应用按钮416后选择应用时,计算装置可以在可在计算装置环境400上显示的新环境面板内启动应用。这可以使得用户能够与应用交互,并且请求从此环境面板的内部打开一个或多个数据文件。

当用户使用用户接口装置(例如,光标414)选择文件夹图标406时,计算装置的一个或多个处理器可致使计算装置环境400显示环境面板408,所述环境面板408可包括存储在计算装置内的一个或多个数据文件410、412的一个或多个图标表示。从一个或多个数据文件410、412的这些一个或多个图标表示,用户可以利用光标414来选择特定数据文件412并且请求在计算装置环境400内打开数据文件412。响应于此请求,计算装置可以至少部分地基于与所选择的数据文件412相关联的一个或多个注册表文件来确定哪个应用可用于打开所选择的数据文件412。如以下将结合图5和图6更详细描述的,所选择的数据文件412可以与位置确定应用相关联,所述位置确定应用可确定将在计算装置环境400内打开,还是在虚拟计算环境内打开所选择的数据文件412。应当注意,在一些实施方案中,计算装置环境400还可以是每次仅可以被单个用户使用的单租户桌面。

如上所述,当用户选择一个或多个数据文件时,计算装置可以至少部分地基于与一个或多个数据文件相关联的一个或多个注册表文件,确定可以启动哪个应用以便打开所选择的一个或多个的数据文件。例如,管理员可以在一个或多个注册表文件内指定在可打开一个或多个数据文件之前,计算装置将启动位置确定应用。在一些实施方案中,此应用可以至少部分地基于在一个或多个注册表文件中编码的一个或多个策略,确定将在远程虚拟计算环境中打开一个或多个所选择的数据文件。因此,图5示出根据至少一个实施方案的用户的计算装置环境500的说明性实例,其中响应于策略实现通过接口502在虚拟计算环境内利用所选择的数据文件。

当位置确定应用至少部分地基于在一个或多个注册表文件中编码的一个或多个策略,确定将在远程虚拟计算环境内打开一个或多个所选择的数据文件时,计算装置可以启动可由用户使用以便与虚拟计算环境交互的虚拟计算环境接口502。如上所述,位置确定应用可致使计算装置建立与虚拟计算环境服务的通信信道,以便使得用户能够访问他/她的虚拟计算环境。例如,虚拟计算环境服务可以从计算装置接收将在虚拟计算环境内打开的一个或多个数据文件。此外,虚拟计算环境服务可以从计算装置接收可执行指令,这可致使虚拟计算环境服务启动可用于打开所选择的一个或多个数据文件的应用。

一旦已经建立虚拟计算环境服务与计算装置之间的连接,虚拟计算环境服务可以使得用户能够利用计算装置环境500内的虚拟计算环境接口502来访问用户的虚拟计算环境。虚拟计算环境可包括计算装置环境500内包括的许多特征。例如,虚拟计算环境可类似地包括应用按钮504,所述应用按钮504可以由用户通过虚拟计算环境接口502使用,以便选择可以在虚拟计算环境内启动的一个或多个应用。另外,虚拟计算环境可以基于与安装在计算装置上的操作系统类似的操作系统,尽管在一些情况下,虚拟计算环境可以利用仍能够处理一个或多个所选择的数据文件的不同操作系统。

虚拟计算环境在此环境内执行应用时可以创建应用面板506,所述应用面板506可以使得用户能够通过虚拟计算环境接口502与应用交互。一个或多个数据文件508可以在此应用面板506内呈现给用户,这可以使得用户能够创建、删除、修改和以其他方式更改一个或多个数据文件508的内容。当用户已经完成使用一个或多个数据文件508时,用户可以通过关闭应用面板506来终止应用。虚拟计算环境服务可将更新的数据文件发送到计算装置,所述计算装置可使接收的数据文件与存储在其中的一个或多个数据文件同步。

如上所述,用户可以利用他/她的计算装置,以便使用安装在计算装置上或虚拟计算环境内的一个或多个应用来打开一个或多个数据文件。例如,当用户在计算装置环境内选择数据文件时,计算装置可以至少部分地基于在一个或多个注册表文件中编码的关联,确定序可使用哪个应用程以便打开一个或多个数据文件。可替代地,这些一个或多个注册表文件可指定一个或多个数据文件将由位置确定应用分析,以便确定将在计算装置环境内打开,还是在远程虚拟计算环境中打开一个或多个数据文件。如果一个或多个数据文件与除了位置确定应用之外的应用相关联,或位置确定应用确定将在计算装置环境内打开一个或多个数据文件,则计算装置可以启动计算装置环境内的应用并且使得应用能够打开这些选择的数据文件。因此,图6示出根据至少一个实施方案的用户的计算装置环境600的说明性实例,其中通过在计算装置环境600内执行应用来利用所选择的数据文件。计算装置环境600可以类似于上面结合图4描述的计算装置环境。

当位置确定应用确定将使用安装在计算装置上的应用打开由用户选择的一个或多个数据文件,或一个或多个数据文件与除了位置确定应用之外的应用相关联时,计算装置可在计算装置环境600内启动可以用于打开所选择的一个或多个数据文件的应用。例如,在启动之后,应用可在计算装置环境600内生成应用面板602,所述应用面板602可以使得用户能够利用一个或多个用户接口装置(例如,光标)以便与应用交互。应用可以用一个或多个所选择的数据文件604的内容来填充应用面板602,这可以使得计算装置的用户能够按需修改这些内容。一旦用户已经完成他/她对一个或多个数据文件604的使用,用户就可以通过关闭应用面板602来终止应用。这可致使计算装置保存对这些一个或多个数据文件的任何改变。

如上所述,当用户选择存储在他/她的计算装置内的一个或多个数据文件时,计算装置可以至少部分地基于一个或多个注册表文件来确定这些一个或多个数据文件是否可能需要通过位置确定应用的附加分析,以便确定是否将通过计算装置环境或通过远程虚拟计算环境来访问这些一个或多个数据文件。可替代地,如果一个或多个数据文件不与位置确定应用相关联,则计算装置可以启动安装在计算装置上的应用以百年打开一个或多个数据文件并且使得能够通过计算装置环境使用它们。因此,图7示出根据至少一个实施方案的用于确定计算环境的过程700的说明性实例,其中可使用应用来利用所选择的数据文件。过程700可以由计算装置的一个或多个处理器执行,其中可以存储由用户选择的一个或多个数据文件。

当用户通过计算装置环境(例如,操作系统接口)选择他/她想要打开和使用的一个或多个数据文件时,一个或多个处理器可以检测702用户对这些一个或多个数据文件的选择,并且确定704这些一个或多个数据文件是否与位置确定应用相关联。例如,一个或多个处理器可致使计算装置访问与所选择的一个或多个文件相关联的一个或多个注册表文件,以确定哪些应用可用于访问这些一个或多个数据文件。此外,注册表文件可指定将用于一个或多个数据文件的默认应用。在实施方案中,计算装置的管理员生成一个或多个注册表文件,并且在这些注册表文件内编码一个或多个数据文件默认与位置确定应用相关联。

在替代性实施方案中,用户选择可具有不同文件类型的一批一个或多个数据文件。一个或多个处理器响应于检测到用户对此批一个或多个文件的选择,可以为该批一个或多个文件中的每个文件确定704数据文件是否与位置确定应用相关联。例如,一个或多个处理器可以评估与该批一个或多个数据文件中的每个数据文件相关联的一个或多个注册表文件,以便确定哪些应用将用于访问这些一个或多个数据文件。至少部分地基于这些一个或多个注册表文件,一个或多个处理器可以为该批一个或多个数据文件中的每个数据文件而在本地计算环境内启动位置确定应用和/或其他应用。

如果一个或多个处理器确定所选择的一个或多个数据文件不与位置确定应用相关联,则一个或多个处理器可致使计算装置通过使用安装在计算装置上的本地(例如,相对于计算装置)应用来打开706所选择的一个或多个数据文件。例如,一个或多个处理器可致使计算装置启动安装在计算装置上的应用,并且使得用户能够利用应用来访问所选择的一个或多个数据文件。然而,如果一个或多个数据文件与位置确定应用相关联,则一个或多个处理器可致使计算装置启动708位置确定应用,以便确定710是否使用安装在计算装置上的应用来本地打开所选择的一个或多个数据文件。

如上所述,位置确定应用可以被配置来评估在与所选择的一个或多个数据文件相关联的一个或多个注册表文件中编码的一个或多个策略,以便确定是否将在计算装置环境内本地打开这些数据文件,或是否仅可以在远程虚拟计算环境中打开这些数据文件。如果位置确定应用确定将本地打开一个或多个数据文件,则应用可将此确定发送到一个或多个进程,作为响应,所述进程可致使计算装置通过使用安装在计算装置上的本地应用来打开706所选择的一个或多个数据文件。

如果不能本地打开一个或多个数据文件,则一个或多个处理器可以启动712虚拟计算环境接口(诸如图5所示的接口),以便访问虚拟计算环境服务并且使得用户能够访问其中可以打开一个或多个数据文件的他/她的虚拟计算环境。例如,一个或多个处理器可以将可执行指令传输到计算装置的网络接口子系统,这可致使网络接口子系统与虚拟计算环境服务建立通信信道。随后,一个或多个处理器可以给虚拟计算环境服务提供访问用户的虚拟计算环境所需的一个或多个用户证书。这可以使得虚拟计算环境服务能够验证用户并且提供对用户的虚拟计算环境的访问。另外,一个或多个处理器可将所选择的一个或多个数据文件传输到虚拟计算环境服务,以便使得能够在虚拟计算环境内使用它们。在替代性实施方案中,一个或多个处理器将请求传输到虚拟计算环境服务以便供应可用于生成虚拟计算环境的虚拟机实例。

一旦已经启动虚拟计算环境接口,则一个或多个处理器可以将可执行指令传输714到虚拟计算环境服务器,以便在虚拟计算环境内启动适当的应用来打开一个或多个数据文件。这可致使虚拟计算环境服务启动应用并且在虚拟计算环境内打开一个或多个数据文件。此外,这可以使得用户能够通过虚拟计算环境接口与此远程应用交互并且利用一个或多个打开的数据文件。

如上所述,存储在用户的计算装置内的一个或多个数据文件可以与位置确定应用相关联,所述位置确定应用可以被配置来确定将在计算装置环境内本地打开,还是在远程虚拟计算环境内打开一个或多个数据文件。因此,图8示出根据至少一个实施方案的用于利用一个或多个策略来确定计算环境的过程800的说明性实例,其中可以打开所选择的数据文件。过程800可以由上述位置确定应用执行,所述位置确定应用可以被配置来访问与所选择的一个或多个数据文件和用户策略相关联的一个或多个注册表文件,以便确定将在何处打开一个或多个数据文件。此外,位置确定应用可以被配置来与计算装置的一个或多个处理器交互,以便利用本地计算装置环境启动其他应用或启动虚拟计算环境接口,以便使得能够在远程虚拟计算环境内访问一个或多个数据文件。

如以上结合图7所描述的,计算装置的一个或多个处理器在检测到用户已经选择一个或多个数据文件之后,可确定一个或多个数据文件是否将由位置确定应用分析。例如,一个或多个处理器可致使计算装置访问与所选择的一个或多个数据文件相关联的一个或多个注册表文件,以便确定在选择一个或多个数据文件时将启动的默认应用。如果一个或多个注册表文件指定待启动的默认应用是位置确定应用,则一个或多个处理器可以启动此应用以便执行对一个或多个数据文件的分析。

当启动位置确定应用时,应用可以从一个或多个处理器接收802用户信息和/或所选择的一个或多个数据文件的标识符。所选择的一个或多个数据文件的用户信息和/或标识符可以使得位置确定应用能够识别存储在计算装置内的可以与所选择的一个或多个数据文件相关联的一个或多个注册表文件。此外,所选择的一个或多个数据文件的用户信息和/或标识符可以使得位置确定应用能够识别804在这些一个或多个注册表文件中编码的关于特定用户和所选择的一个或多个数据文件的文件格式的任何相关策略。例如,一个或多个策略可指定是否可以在用户的计算机装置内使用特定数据文件格式。另外,一个或多个策略可对于特定用户指定使用安装在计算装置上的任何应用不能打开一个或多个数据文件,而是仅可以通过虚拟计算环境来访问一个或多个数据文件。通过评估这些一个或多个策略,位置确定应用可以能够确定806是否将本地打开所选择的一个或多个数据文件。

如果位置确定应用至少部分地基于一个或多个策略确定将本地打开一个或多个数据文件,则位置确定应用可致使一个或多个处理器在计算装置环境内启动808本地应用,以使得本地应用可以打开一个或多个数据文件并且使得用户能够通过本地应用来利用这些一个或多个数据文件。可替代地,如果位置确定应用确定将在远程虚拟计算环境内打开一个或多个数据文件,则位置确定应用可致使一个或多个处理器启动(810)虚拟计算环境接口,这可以使得用户能够利用他/她的计算装置来访问他/她的虚拟计算环境并且在虚拟计算环境内打开一个或多个数据文件。

如上所述,用户可以利用虚拟计算环境接口来选择存储在虚拟计算环境内的一个或多个数据文件。虚拟计算环境可包括可用于打开一个或多个数据文件的一个或多个应用。然而,在一些实施方案中,虚拟计算环境可不包括打开所选择的一个或多个数据文件所需的应用。在这种情况下,虚拟计算环境服务的管理子系统可能需要确定用户的计算装置或其他计算环境是否包括合适的应用。此外,服务可能需要确定用户是否被授权在这些环境中的任何环境中打开这些数据文件。因此,图9示出根据至少一个实施方案的用于响应于确定应用不可用于使用数据文件而将数据文件转移到不同的计算环境的过程900的说明性实例。过程900可以由上述虚拟计算环境服务执行,所述虚拟计算环境服务可以被配置来评估适用于用户的一个或多个策略并且与一个或多个计算环境交互。

当用户与虚拟计算环境交互时,他/她可以选择可以存储在此环境内的一个或多个数据文件。这可以使得虚拟计算环境服务能够检测902虚拟计算环境内的一个或多个数据文件的用户选择,并且确定904可以被启动以便打开所选择的数据文件的应用在此环境内是否可用。例如,虚拟计算系统服务可以评估用于生成虚拟计算环境的虚拟机图像,以便确定哪些应用包括在环境内。如果可用于打开所选择的一个或多个数据文件的应用在虚拟计算环境内是可用的,则虚拟计算环境服务可以启动906适当的应用并且使得能够通过虚拟计算环境接口使用一个或多个数据文件。

如果在虚拟计算环境内没有应用是可用的,则虚拟计算环境服务可确定(908)用户的计算装置(例如,本地计算装置环境)是否包括可用于打开所选择的一个或多个数据文件的一个或多个应用。例如,虚拟计算环境服务可访问用户配置文件数据存储,以便识别与虚拟计算环境的用户相关联的用户配置文件。此用户配置文件可指定可以安装在用户的计算装置上的一个或多个应用。可替代地,虚拟计算环境服务可以将一个或多个API调用传输到用户的计算装置,以便请求有关安装在计算装置上的一个或多个应用的信息。任一方法可以使得虚拟计算环境服务能够确定910所需的应用是否安装在用户的计算装置上。

如果计算装置不包括可用于打开一个或多个数据文件的应用,则虚拟计算环境服务可以向用户通知912用于打开一个或多个数据文件的任何附加选项。例如,在一些实施方案中,虚拟计算系统服务可以通知用户可包括用于打开所选择的一个或多个数据文件的一个或多个合适的应用的其他虚拟机图像,并且允许用户确定他/她是否希望在物理主机上例示此特定虚拟机图像。可替代地,由于没有应用可以被定位,虚拟计算环境服务可以拒绝用户打开一个或多个数据文件的请求。在替代性实施方案中,虚拟计算环境服务可以使得用户能够访问虚拟计算环境应用市场,其中用户可以能够获得打开一个或多个数据文件所需的一个或多个应用的许可。在从此市场获得许可之后,虚拟计算环境服务可以通过安装一个或多个应用并且只要许可是有效的就使得用户能够利用这些一个或多个应用,增补用户的虚拟计算环境。

可替代地,如果打开一个或多个数据文件所需的一个或多个应用在用户的计算装置内是可用的,则虚拟计算环境服务可识别914用于在用户的计算装置环境内打开所选择的一个或多个数据文件的一个或多个策略。例如,虚拟计算环境服务可访问用户配置文件数据存储内的用户配置文件,以便识别由计算装置或其他监督机构的管理员定义的这些一个或多个策略。一个或多个策略可指定哪些数据文件类型或格式可以在用户的计算装置环境中打开和/或不能在此环境内打开。至少部分地基于这些一个或多个策略,虚拟计算环境服务可确定916是否可使用安装在用户的计算装置上的应用来打开所选择的一个或多个数据文件。

因为确定在用户的计算装置环境内会打不开一个或多个数据文件,虚拟计算环境服务可以向用户通知912用于打开一个或多个数据文件的任何附加选项。然而,如果可以在用户的计算装置环境内打开一个或多个数据文件,则虚拟计算环境服务可以向用户的计算装置提供918所选择的一个或多个数据文件并且将一个或多个可执行指令传输到计算装置,所述可执行指令在被执行时可致使计算装置启动使得能够在用户的计算装置环境内使用一个或多个数据文件所需的一个或多个应用。

图10示出用于实现根据各种实施方案的各方面的示例环境1000的各方面。如将了解,尽管出于解释目的使用基于web的环境,但是可视情况使用不同环境来实现各种实施方案。环境包括电子客户端装置1002,其可包括可操作来通过适当网络1004发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回装置的用户的任何适当装置。这类客户端装置的实例包括个人计算机、手机、手持式消息传送装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络可包括任何适当网络,包括内部网、互联网、蜂窝网、局域网、卫星网络,或任何其他这类网络和/或上述网络的组合。用于这种系统的部件可至少部分地取决于所选择的网络和/或环境的类型。用于通过这种网络通信的协议和部件是众所周知的,因而本文将不再详细讨论。通过网路进行的通信可通过有线或无线连接及其组合来实现。在这个实例中,网络包括互联网,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器1006,但是对于其他网络来说,可使用服务类似目的的替代装置,如本领域普通技术人员所显而易见的。

说明性环境包括至少一个应用服务器1008和一个数据存储1010。应理解,可存在可链接起来或以其他方式来配置的若干应用服务器、层或其他元件、进程或部件,它们可交互以执行诸如从适当数据存储获得数据的任务。如本文所使用的服务器可用各种方式来实现,诸如硬件装置或虚拟计算机系统。在一些上下文中,服务器可以是指正在计算机系统上执行的编程模块。如本文所使用的,除非另行说明或从上下文清楚地看出,否则术语“数据存储”是指能够存储、访问和检索数据的任何装置或装置组合,其可包括任何标准、分布式、虚拟或集群式环境中的任何组合和任何数目的数据服务器、数据库、数据存储装置和数据存储介质。应用服务器可包括任何适当硬件、软件和固件,所述硬件、软件和固件用于视执行客户端装置的一个或多个应用的各方面的需要而与数据存储集成,从而处理应用的一些或所有的数据访问和业务逻辑。应用服务器可与数据存储协作提供访问控制服务,并且能够生成可用于向用户提供的内容,包括但不限于文本、图形、音频、视频和/或其他内容,所述内容可以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)或另一种合适的客户端侧结构化语言的形式通过web服务器向用户提供。传递到客户端装置的内容可由客户端装置处理,以便提供呈一种或多种形式的内容,所述形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉(包括触觉、味觉和/或嗅觉)来感知的形式。所有请求和响应的处理以及客户端装置1002与应用服务器1008之间的内容递送可由使用以下PHP的web服务器来处理:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML或此实例中的其他合适的服务器侧结构化语言。应理解,web服务器和应用服务器不是必要的且仅仅是示例性部件,因为本文所讨论的结构化代码可在如本文其他地方所讨论的任何适当装置或主机上执行。此外,除非从上下文清楚地看出,否则如由单个装置执行的本文所述的操作可由可形成分布式和/或虚拟系统的多个装置共同执行。

数据存储1010可包括用于存储与本公开的特定方面相关的数据的若干单独数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机构和介质。例如,所示数据存储可包括用于存储生成数据1012和用户信息1016的机构,所述生成数据1012和用户信息1016可用于提供用于生成侧的内容。数据存储还被示出为包括用于存储日志数据1014的机构,所述日志数据1014可用于报告、分析或其他这类目的。应理解,可能存在可能需要存储在数据存储中的许多其他方面,诸如页面图像信息和访问权信息,所述方面可视情况存储在上文列出的机构中的任何机构中或存储在数据存储1010中的另外机构中。数据存储1010可通过与其相关联的逻辑来操作,以便从应用服务器1008接收指令,并且响应于所述指令获得数据、更新数据或以其他方式处理数据。应用服务器1008可响应于所接收指令提供静态数据、动态数据或静态数据和动态数据的组合。动态数据(诸如web日志(博客)、购物应用、新闻服务以及其他这类应用中使用的数据)可由如本文所描述的服务器侧结构化语言生成,或可由在应用服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个实例中,用户可通过由用户操作的装置提交对某种类型的项目的搜索请求。在这种情况下,数据存储可访问用户信息以核实用户的身份,并且可访问目录详细信息以获得关于所述类型的项目的信息。接着可将信息以诸如网页上的结果列表的形式返回给用户,用户能够通过用户装置1002上的浏览器来查看所述网页。可在专用浏览器页面或窗口中查看感兴趣的特定项目的信息。然而,应当指出的是,本公开的实施方案未必限于网页背景,但可更一般地应用于大体上处理请求,其中所述请求未必是对内容的请求。

每个服务器通常将包括提供用于所述服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时允许所述服务器执行其预期的功能。操作系统的适合实现方式和服务器的一般功能是众所周知的或可商购的,并且易于由本领域普通技术人员实现,尤其是根据本文中的公开内容来实现。

在一个实施方案中,环境是分布式和/或虚拟计算环境,所述环境利用通过通信链路、使用一个或多个计算机网络或直接连接来互连的若干计算机系统和部件。但是,本领域普通技术人员应理解,这种系统可在具有比图10所示更少或更多部件的系统中同样顺利地操作。因此,对图10中的系统1000的描绘本质上应视为说明性的,并且不限制本公开的范围。

可鉴于以下条款对本公开的实施方案进行描述:

1.一种计算机实现的方法,其包括:

在配置有可执行指令的计算装置的控制下,

检测所述计算装置的输入装置中的指示打开数据文件的命令的输入,可使用安装在所述计算装置上的至少一个应用来访问所述数据文件,并且所述数据文件具有对应的文件类型;

至少部分地基于与所述文件类型相关联的策略,确定将在与所述计算装置的所述环境不同的虚拟计算环境中打开所述数据文件;

将所述数据文件传输到所述虚拟计算环境;以及

传输一个或多个可执行指令,以便致使服务器启动可用于在所述虚拟计算环境内打开所述数据文件的应用。

2.如条款1所述的计算机实现的方法,其还包括:

从所述服务器接收修改的数据文件,所述修改的数据文件由于在所述虚拟计算环境内使用所述应用来打开所述数据文件而创建;以及

使所述数据文件和所述修改的数据文件同步。

3.如条款1或2所述的计算机实现的方法,其中在所述计算机系统的操作系统的注册表文件中编码所述策略,所述注册表文件指定具有所述对应文件类型的数据文件将与位置确定应用相关联,所述位置确定应用被配置来确定将在所述虚拟计算环境中打开所述数据文件。

4.如条款1-3中任一项所述的计算机实现的方法,其还包括由于确定将在所述虚拟计算环境中打开所述数据文件,提供与所述计算装置的用户相关联的一个或多个凭证以便使得所述计算装置能够用于访问所述虚拟计算环境。

5.一种系统,其包括:

一个或多个处理器;

包括指令的存储器,当由所述一个或多个处理器执行时,所述指令致使所述系统:

在第一计算环境中检测打开数据文件的命令;

至少部分地基于与所述数据文件相关联的策略,确定将在第二计算环境中打开所述数据文件,所述第一计算环境和所述第二计算环境被网络分开;以及

将致使在所述第二计算环境内打开所述数据文件的信息传输到所述第二计算环境。

6.如条款5所述的系统,其中可使用在所述第一计算环境内可用的至少一个应用来访问所述数据文件。

7.如条款5或6所述的系统,其中在与所述数据文件相关联的注册表文件中编码所述策略。

8.如条款5-7中任一项所述的系统,其中所述第二计算环境是可通过所述第一计算环境的网络接口访问的单租户虚拟计算环境。

9.如条款5-8中任一项所述的系统,其中所述指令在被所述一个或多个处理器执行时还致使所述系统:

在所述第一计算环境中检测打开第二数据文件的命令;

至少部分地基于与所述第二数据文件相关联的策略,确定将在所述第一计算环境内使用应用来打开所述第二数据文件;以及

启动所述应用以便使得能够使用所述第二数据文件。

10.如条款5-9中任一项所述的系统,其中所述第一计算环境是通过所述网络流式传输到所述系统的单租户虚拟计算环境。

11.如条款5-10中任一项所述的系统,其中所述指令在被所述一个或多个处理器执行时还致使所述系统:

从所述第二计算环境接收修改的数据文件,所述修改的数据文件由于在所述第二计算环境内使用所述应用来打开所述数据文件而创建;以及

在所述第一计算环境内使所述数据文件和所述修改的数据文件同步。

12.如条款5-11中任一项所述的系统,其中由于确定将在所述第二计算环境中打开所述数据文件,所述指令在被所述一个或多个处理器执行时还致使所述系统提供与所述第一计算环境的用户计算装置相关联的一个或多个凭证,以便使得所述用户计算装置能够访问所述第二计算环境。

13.一种非暂时性计算机可读存储介质,其具有存储在其上的可执行指令,当由计算机系统的一个或多个处理器执行时,所述指令致使所述计算机系统至少:

响应于在第一计算环境内检测到打开具有对应文件类型的数据文件的命令,

至少部分地基于与所述文件类型相关联的策略,从所述计算机系统可访问的多个单租户虚拟计算环境中选择单租户虚拟计算环境;以及

将致使在所述选择的单租户虚拟计算环境内打开所述数据文件的信息传输到所述选择的计算环境。

14.如条款13所述的非暂时性计算机可读存储介质,其中所述多个单租户虚拟计算环境包括所述第一计算环境。

15.如条款13或14所述的非暂时性计算机可读存储介质,其中所述指令还包括以下指令:其在被所述一个或多个处理器执行时,致使所述计算机系统提供与所述第一计算环境的用户计算装置相关联的一个或多个凭证,以便使得所述用户计算装置能够访问所述选择的单租户虚拟计算环境。

16.如条款13-15中任一项所述的非暂时性计算机可读存储介质,其中所述第一计算环境包括与所述选择的单租户虚拟计算环境的操作系统不同的操作系统。

17.如条款13-16中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括以下指令:其在被所述一个或多个处理器执行时,由于从所述多个单租户虚拟计算环境选择所述单租户虚拟计算环境,致使所述计算机系统传输致使供应所述选择的单租户虚拟计算环境的信息。

18.如条款13-17中任一项所述的非暂时性计算机可读存储介质,其中与所述文件类型相关联的所述策略至少部分地基于所述多个单租户虚拟计算环境中的每个单租户虚拟环境的一个或多个安全方面,指定所述单租户虚拟计算环境的排序。

19.如条款13-18中任一项所述的非暂时性计算机可读存储介质,其中在所述第一计算环境的操作系统的注册表文件中编码所述策略,所述注册表文件指定具有所述对应文件类型的数据文件将与位置确定应用相关联,所述位置确定应用被配置来确定将在所述选择的单租户虚拟计算环境中打开所述数据文件。

20.如条款13-19中任一项所述的非暂时性计算机可读存储介质,其中可使用在所述第一计算环境内可用的至少一个应用来访问所述数据文件。

可在广泛多种操作环境中进一步实现各个实施方案,所述操作环境在一些情况下可包括一个或多个用户计算机、计算装置或者可用于操作多个应用中的任何一个的处理装置。用户或客户端装置可包括多个通用个人计算机中的任一种,诸如运行标准操作系统的台式机、膝上型计算机或平板计算机,以及运行移动软件并且能够支持多种网络连接协议和消息传送协议的蜂窝装置、无线装置和手持式装置。这种系统还可包括多个工作站,所述工作站运行多种可商购得的操作系统和用于诸如开发和数据库管理目的的其他已知应用中的任一种。这些装置还可包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统和能够通过网络通信的其他装置。这些装置还可包括虚拟装置,诸如虚拟机、管理程序以及能够通过网络通信的其他虚拟装置。

本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购得的协议中的任一种进行通信,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共互联网文件系统(“CIFS”)以及AppleTalk。网络可以是例如局域网、广域网、虚拟专用网、互联网、内部网、外部网、公共交换电话网、红外网、无线网、卫星网络以及上述网络的任何组合。

在利用web服务器的实施方案中,web服务器可以运行多种服务器或中间层级应用中的任一种,包括超文本传送协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器和业务应用服务器。所述服务器还能够响应来自用户装置的请求而执行程序或脚本,如通过执行一个或多个可以实施为一个或多个以任何编程语言(诸如C、C#或C++)或任何脚本语言(诸如Ruby、PHP、Perl、Python或TCL)及其组合撰写的脚本或程序的web应用。所述服务器还可包括数据库服务器,包括但不限于可从和商购得的服务器以及开源服务器(诸如MySQL、Postgres、SQLite、MongoDB),以及能够存储、检索和访问结构化或非结构化数据的任何其他服务器。数据库服务器可包括基于表格的服务器、基于文件的服务器、非结构化服务器、关系式服务器、非关系式服务器或这些和/或其他数据库服务器的组合。

环境可包括如上文讨论的多种数据存储以及其他存储器和存储介质。这些可驻留在多种位置中,诸如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或远离网络上的计算机中的任何或所有计算机。在一组特定实施方案中,信息可驻留于在本领域技术人员熟悉的存储区域网(“SAN”)中。类似地,用于执行属于计算机、服务器或其他网络装置的功能的任何必要的文件可视情况存储在本地或远程。在系统包括计算机化装置的情况下,每个这种装置可包括可通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。这种系统还可以包括一个或多个存储装置,诸如磁盘驱动器、光存储装置和固态存储装置(诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)),以及可移动介质装置、存储卡、闪存卡等。

这类装置还可包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外线通信装置等)和工作存储器,如上文所讨论。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移动存储装置以及用于暂时和/或更永久地含有、存储、传输和检索计算机可读信息的存储介质。系统和各种装置通常还将包括位于至少一个工作存储器装置内的多个软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或web浏览器。应了解,替代性实施方案相比上文描述的实施方案可具有众多变化。例如,也可使用定制硬件,和/或特定元件可以硬件、软件(包括可移植软件,诸如小应用程序)或两者来实现。此外,可以采用与其他计算装置诸如网络输入/输出装置的连接。

用于包含代码或部分代码的存储介质和计算机可读介质可包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术所实现的易失性和非易失性、可移动和不可移动的介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、闪存或其他存储器技术、光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所需信息且可由系统装置访问的任何其他介质。基于本文所提供的公开内容和教义,本领域普通技术人员将了解实现各种实施方案的其他方式和/或方法。

因此,应以说明性意义而不是限制性意义来理解本说明书和附图。然而,将明显的是:在不脱离如权利要求书中阐述的本发明的更宽广精神和范围的情况下,可以对本发明做出各种修改和改变。

其他变型在本公开的精神内。因此,尽管所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中详细描述所示的其某些实施方案。然而,应理解,并不意图将本发明局限于所公开的一种或多种具体形式,但相反,意图涵盖落在本发明的精神和范围内的所有修改、替代构造和等效物,如所附权利要求书中所限定。

在描述所公开实施方案的上下文中(尤其是在以下权利要求书的上下文中),术语“一个(a/an)”和“所述”以及类似指称对象的使用应解释为涵盖单数和复数两者,除非本文另外指示或以其他方式明显地与上下文矛盾。术语“包含”、“具有”、“包括”和“含有”应解释为开放式术语(即,意味着“包括但不限于”),除非另外注解。当无修饰并且指代物理连接时,术语“连接的”应解释为部分地或全部地纳入在以下解释内:附接到或连结在一起,即使存在介入物。除非本文另外指示,否则本文中对值范围的列举仅仅意图用作单独地表示落入所述范围的各单独值的速记方法,并且犹如本文单独描述地那样将各单独值并入本说明书中。除非本文另外指示或与上下文矛盾,否则术语“集”(例如,“项目集”)或“子集”的使用解释为包括一个或多个成员的非空集合。此外,除非本文另外指示或与上下文矛盾,否则术语对应集的“子集”不一定指对应集的真子集,而是子集和对应集可以相等。

除非另外指出或另外由上下文明确否定,诸如以下形式的短语:“A、B、和C中的至少一个”或“A、B和C中的至少一个”的连接性语言另外应通过如通常用于呈现一个项目、项目等的上下文理解,可以是A或B或C、或所述组A和B和C的任何非空子组。例如,在具有三个成员的组的说明性实例中,连接性短语“A、B、和C中的至少一个”或“A、B和C中的至少一个”是指以下组中的任一个:{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}。因此,此类连接性语言一般并非意图暗示某些实施方案需要A中的至少一个、B中的至少一个以及C中的至少一个每个存在。

可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下实行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。代码可以(例如)计算机程序的形式存储在计算机可读存储介质上,所述计算机程序包括可由一个或多个处理器执行的多个指令。计算机可读存储介质可以是非暂时性的。

本文所提供的任何以及所有实例或示例性语言(例如,“如”)的使用仅意图更好地说明本发明的实施方案,并且除非另外要求,否则不会对本发明的范围施加限制。本说明书中的语言不应解释为将任何非要求的元素指示为实践本发明所必需。

本文中描述了本公开的实施方案,包括发明人已知用于执行本发明的最佳模式。在阅读了上述描述后,这些所述实施方案的变化对本领域的技术人员将变得显而易见。发明人希望技术人员视情况采用此类变型,并且发明人意图以不同于如本文具体描述的方式来实践本公开的实施方案。因此,经适用的法律许可,本公开的范围包括在此所附的权利要求书中叙述的主题的所有修改和等效物。此外,本公开的范围涵盖其所有可能变型中的上述元素的任意组合,除非本文另外指示或以其他形式明显地与上下文矛盾。

本文所引用的所有参考文件,包括公开案、专利申请和专利,特此按如下程度以引用方式并入本文中:如同每一个参考文件都个别地和特别地表示为以引用方式并入到本文中并且其全部内容都进行了陈述。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1