基于策略的应用递送的制作方法

文档序号:6442372阅读:156来源:国知局
专利名称:基于策略的应用递送的制作方法
技术领域
本发明涉及网络技术,尤其涉及远程应用递送。
背景技术
桌面虚拟化允许计算设备的用户所执行的软件应用与用户的计算设备的硬件、操作系统(“OS”)和本地配置解耦。将远程应用递送到用户的计算设备的多种方法可用,各自具有特定的能力、优点和缺点。例如,应用虚拟化允许应用通过网络连接从在虚拟应用服务器上维护的虚拟化应用包被部署到用户计算设备。应用虚拟化可消除对要在用户计算设备上本地安装、配置和维护应用的要求。相反,虚拟应用运行时可在计算机上执行,并流传输来自服务器上的虚拟化应用包的应用组件。另外,应用组件可被本地地高速缓存在用户计算设备上,从而允许在即使不存在网络连接的情况下应用也被用户执行。然而,如果应用未被高速缓存或者应用的组件频繁改变,则可能需要过多的网络带宽量来部署应用。此外,应用在用户计算设备上本地地执行,这可能需要足够的本地处理资源以及到向应用供应数据的其他系统的网络连接。会话虚拟化允许用户在诸如远程桌面服务(“RDS”)服务器等远程服务器上远程地执行应用。不需要将应用组件本地地安装或部署到用户计算设备。相反,“瘦客户机”应用在用户计算设备上本地地执行,该“瘦客户机”应用将在RDS服务器上执行的应用的用户界面延伸至用户计算设备。因为应用在远程服务器上执行,应用组件以及到数据源的连接的全部或几乎全部都存在于远程服务器上。然而,具有图形密集的用户界面的应用在虚拟会话中可能无法很好地执行,且可能需要用户计算设备和RDS服务器之间的恒定网络连接以便用户在远程服务器上执行应用。虚拟桌面基础结构(“VDI”)更进一步地扩展了瘦客户机对应用的访问的概念,从而将操作系统和应用环境的单个实例分配给通过瘦客户机从用户计算设备进行连接的用户。VDI允许集中式地维护用户应用和环境的安装和配置,以及将用户应用的执行与在其他操作系统实例中操作的其他用户隔离开。然而,如会话虚拟化那样,VDI要求全时(full-time)网络连接以便用户计算设备的用户在他们的环境中执行应用并与应用交互。在典型的企业环境中,用户可从各个位置以及在各个条件下工作,诸如从连接到局域网(“LAN”)的他们的主办公室工作站工作、在分公司中的工作站上工作、通过WI-FI连接从他们的膝上型计算机工作、通过家中数字用户线(“DSL”)从家庭办公室工作、在路上从他们的无线电话工作等等。将特定应用递送到用户计算设备的最佳方法在这些情形中可能改变。例如,对从家里工作的用户的应用递送方法可以是使用VDI来优化用户体验。然而,当用户正从办公室工作时,将应用直接流传输到用户的工作站可能是最佳方法。最佳方法可基于多个条件,诸如可用的网络带宽、用户计算设备的能力、用户的身份、应用的本质和/或关键程度、网络连接的安全性等等。然而,用户可能不知晓每个应用递送方法的特定能力、优点和缺点。用户可手动地选择觉得的最佳应用递送方法,或者仅仅简单地使用默认方法来执行应用。这可能导致应用的失败递送或部分递送,或者由于应用不可用而导致的较差的终端用户体验。此处所做出的本发明正是对于这些和其他考虑事项而提出的。

发明内容
本文描述了用于基于集中式地维护的策略来自动选择最佳应用递送方法的技术。使用所述技术,管理人员可基于应用的性能、安全性和连接性要求以及用户环境中可能存在的各种条件来创建并维护将应用递送到终端用户计算设备的中央策略。当用户发起应用时,可使用基于用户环境的当前条件从集中式地维护的策略中确定的应用递送方法将应用递送到用户的计算设备。以此方式,将使用最佳或最优的应用递送方法来将应用递送到终端用户计算设备,而不管环境条件怎么样且不需要用户的特定知识或动作。根据各实施例,在用户的计算设备上执行的代理接收要发起应用的请求。代理向策略服务器请求关于该应用程序的集中式地维护的应用布置策略文档。应用布置策略文档可描述用于基于多个条件来确定用于将应用递送到用户计算设备的方法的策略。代理基于应用布置策略文档和当前条件来选择用于递送应用的方法,然后使用所选的递送方法来发起应用程序。应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。提供本发明内容以便以简化形式介绍在以下具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中提及的任何或所有缺点的实现。


图I是示出由此处呈现的各实施例提供的说明性操作环境和若干软件组件的各方面的框图;图2是示出根据此处描述的各实施例的用于基于集中式地维护的策略来自动选择最佳应用递送方法的方法的流程图;以及图3是示出能够实现此处呈现的各个实施例的各方面的计算系统的说明性计算机硬件和软件体系结构的框图。
具体实施例方式以下具体实施方式
涉及用于基于集中式 地维护的策略和计算设备的当前环境来自动选择用于将应用递送到终端用户计算设备的最佳方法的技术。尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中呈现了此处描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将明白,可以利用其他计算机系统配置来实施此处描述的主题,这些计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。在以下详细描述中,参考了构成本发明的一部分并作为说明示出各具体实施例或示例的附图。在附图中,在全部若干附图中相似的附图标记表示相似的元素。图I示出根据此处提供的各实施例的、包括用于基于集中式地维护的策略来自动选择最佳应用递送方法的若干软件组件的说明性操作环境100。环境100包括用户计算设备102。用户计算设备102可以是个人计算机(“PC”),诸如台式工作站、膝上型计算机或笔记本计算机;个人数字助理(“PDA”);无线电话;机顶盒;游戏控制台;应用服务器;主存基于Web的应用程序的Web服务器;或可为用户执行应用程序的任何其他计算设备。根据各实施例,用户计算设备102可被配置有用于将远程应用程序递送到设备的多个方法。具体地,用户计算设备102可执行虚拟应用客户机104。虚拟应用客户机104可允许用户计算设备102启动并执行尚未安装在设备上的应用程序。虚拟应用客户机104可改为通过网络106实时地或近乎实时地流传输来自虚拟应用服务器108的应用程序的组件。虚拟应用客户机104和虚拟应用服务器108可基于来自华盛顿州雷蒙德市微软公司的MICROSOFT APP-V技术、来自佛罗里达州劳德代尔堡市的CITRIX SYSTEMS有限公司的CITRIXXENAPP 技术或任何其他应用流传输和虚拟化平台或技术。网络106可以是LAN、广域网(“WAN”)、因特网或将用户计算设备102连接到虚拟应用服务器108的任何其他联网技术。应用程序软件的组件可被存储在位于虚拟应用服务器108可访问的存储设备112上的虚拟化应用包110中。根据各实施例,虚拟化应用包110由多个数据块组成,该数据块包含应用程序结构信息以及各个组件文件和应用的其他元素。虚拟应用包110可由管理人员通过在管理计算机上安装传统软件应用程序并记录对本地文件系统和例如反映应用程序的典型本地安装的注册表作出的改变来创建。虚拟化应用包110中的各块被流传输到虚拟应用客户机104以允许应用程序在用户计算设备102上执行。在一个实施例中,虚拟应用客户机104将虚拟化应用包110块高速缓存在本地高速缓存中,以使得在与虚拟应用服务器108之间不存在网络连接的情况下应用程序也可供在用户计算设备102上执行。虚拟应用客户机104可创建独立的虚拟环境(被称为沙箱)以执行从虚拟应用服务器108流传输的每一应用程序。应用沙箱允许应用程序的组件与系统的其余部分隔离地执行。例如,应用程序可使用它自己版本的通用库文件来执行,这样就没有因安装另一软件包或对用户计算设备102的OS的更新而盖写库文件的危险。另外,由应用程序的初始化或执行作出的任何改变被进一步隔离到应用沙箱。如果应用程序的用户修改与应用有关的配置文件或注册表项,则这些改变可只反映在该程序在其中执行的特定应用沙箱中。用户计算设备102还可执行远程桌面客户机114。远程桌面客户机114可允许用户计算设备102的用户跨网络106开始应用程序的远程执行实例并与其交互,诸如在远程服务器计算机118上执行的应用实例116。远程桌面客户机114可使用远程桌面协议(“RDP”)来与例如运行MICROSOFT WINDOWS SERVER 操作系统的远程服务器计算机118通信。根据一个实施例,远程桌面客户机114可以用用户计算设备的用户可能无法容易地对本地执行的应用和远程执行的应用进行区分的方式将在远程服务器计算机118上执行的应用实例116的用户界面显示在用户计算设备102上的窗口中。远程服务器计算机118可通过远程桌面客户机114从在服务器上维护的单个应用、映像(未示出)为执行应用程序的每一用户计算设备102发起独立的应用实例116。应用映像可由管理人员以例如用户无关的方式被安装和维护在远程服务器计算机118上。在一个实施例中,远程服务器计算机118可使用上述方式流传输来自虚拟应用服务器108的每一应用 实例116的应用程序。用户计算设备102还可执行虚拟桌面客户机120。虚拟桌面客户机120可以是轻量客户机程序,它向用户计算设备102的用户呈现跨网络106主存在远程虚拟桌面服务器124上的虚拟桌面环境122。虚拟桌面环境122可提供用户可在其中发起应用程序的实例并与其交互的环境。应用程序可被安装在虚拟桌面环境122中并被配置为专用于虚拟桌面环境122中的用户。虚拟桌面服务器124也可用上述方式流传输来自虚拟应用服务器108的应用程序。用户计算设备102还可包括应用执行代理130。应用执行代理130可以是用户计算设备102上的程序,该程序从用户计算设备102的用户接收对执行特定应用程序的请求。例如,应用执行代理130可链接到对应于用户桌面上的应用程序的应用快捷方式。当用户从桌面选择应用快捷方式时,应用执行代理130可基于当前环境的条件和集中式地维护的策略来确定用于将所请求的应用程序递送到用户计算设备102的最佳方法,如下面将参照图2更详细地描述的。为了确定要对所请求的应用程序使用的应用递送的最佳方法,应用执行代理130可跨网络106向应用布置策略服务器132请求关于所请求的应用程序的应用布置策略文档134。应用布置策略文档134可描述用于基于各种用户和/或设备条件将特定应用程序递送到用户计算设备102的策略。应用布置策略服务器132可将关于各应用的多个应用布置策略文档134维护在数据存储136中,诸如应用布置策略服务器可访问的数据库或其他存储机制。应用布置策略文档134可以是例如包含描述适用策略的结构化数据的可扩展标记语言(“XML”)文档。应用布置策略文档134可由管理人员在数据存储136中创建并集中式地维护。例如,当管理人员创建特定应用程序的虚拟应用包110并将其存储在虚拟应用服务器108上时,可创建关于该应用的一个或多个应用布置策略文档134。在从应用执行代理130接收到请求之后,应用布置策略服务器132可从数据存储136检索所请求的应用程序的描述适用于用户计算设备102的当前用户的策略的应用布置策略文档134,并将该文档返回至应用执行代理130。应用执行代理130随后可从接收到的应用布置策略文档134以及用户环境的当前条件确定将所请求的应用程序递送到用户计算设备102的最佳方法,如下文参考图2进一步描述的。在确定递送所请求的应用程序的最佳方法之后,应用执行代理130可通过被配置为使用所选方法的客户机来发起应用程序的执行。例如,应用执行代理130可通过用户计算设备102上配置的虚拟应用客户机104、远程桌面客户机114、或虚拟桌面客户机120来发起所请求的应用程序。根据一个实施例中,应用执行代理130可使用用户计算设备102的用户不容易知晓所选的执行方法的方式来发起所请求的应用程序的执行。此外,虚拟应用客户机104、远程桌面客户机114和虚拟桌面客户机120可使用一致的方式将正在执行的应用程序的用户界面呈现给用户计算设备102的用户,从而使得应用递送和执行方法对用户而言可能不是显而易见的。
现在参考图2,将提供关于此处呈现的实施例的附加细节。应当理解,参考图2所述的逻辑操作被实现为(I)在计算系统上运行的一系列计算机实现的动作或程序模块和/或(2)计算系统内的互连机器逻辑电路或电路模块。取决于计算系统的性能及其他要求,可以选择不同的实现。因此,此处所描述的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑,以及其任何组合来实现。还应该明白,可以执行比附图中示出并在此处描述的操作更多或更少的操作。这些操作还可按与所述次序不同的次序来执行。图2示出根据此处描述的各实施例的用于基于集中式地维护的策略来自动选择最佳应用递送方法的例程200。例程200可由在用户计算设备102上执行的应用执行代理130和/或在应用布置策略服务器132上执行的模块的组合来执行。可以明白,例程200也可由在其他计算设备上执行的其他模块或组件执行,或者由模块、组件和计算设备的任何组合来执行。
例程200在操作202开始,在那里应用执行代理130从用户计算设备102的用户接收执行应用程序的请求。例如,如以上参照图I所描述的,用户可从用户桌面选择对应于所需应用程序的、链接到应用执行代理130的应用快捷方式。例程200从操作202进行到操作204,在那里,应用执行代理130向应用布置策略服务器132请求关于所请求的应用程序的应用布置策略文档134。应用布置策略服务器132随后从数据存储136检索适用的应用布置策略文档134,并将策略文档返回至应用执行代理130。根据一个实施例,应用布置策略服务器132基于所请求的应用程序和/或用户计算设备102的当前用户的角色来选择数据存储136中的适用的应用布置策略文档134。用户的角色可包括用户的身份、用户在组织中的角色、安全或管理组成员资格等等。例如,管理人员可在第一应用布置策略文档134中为一组用户创建用于递送特定应用程序的一个策略,而在第二应用布置策略文档中为不同组的用户创建递送该应用的另一策略。例如在应用程序的商业关键程度对于不同用户组而言被认为是不同的时候,情况可能是这样。应用布置策略服务器132在从数据存储136选择适用的应用布置策略文档134时可考虑当前用户的组成员资格。可以明白,应用布置策略服务器132在从数据存储136中的关于所请求的应用程序的应用布置策略文档134中进行选择时可考虑当前用户的人的其他方面。在其他实施例中,可在单个应用布置策略文档134中为不同用户组维护关于所请求的应用程序的递送的不同策略,且应用执行代理130可根据用户计算设备102上的用户角色确定适用的策略。例程200随后从操作204进行到操作206,在那里,应用执行代理130基于检索到的应用布置策略文档134确定用于将所请求的应用程序递送到用户计算设备102的最佳方法。如以上参照图I所描述的,应用布置策略文档134描述基于各种用户和/或设备上下文的递送所请求的应用程序的策略。应用布置策略文档134可指定应用执行代理130在确定最佳应用递送方法时要考虑的多个因素或条件。在一个实施例中,应用布置策略文档134指定要考虑的多个环境条件,诸如用户计算设备102的物理位置(例如,在办公室中、在用户的家中等)、设备当前使用的网络连接(例如,办公室LAN、企业WAN、经由VPN链接、通过因特网连接等)、网络连接的安全性(例如,加密的)、用户计算设备的类型和能力(例如,处理器速度、存储器、显示屏幕分辨率、用户输入设备等)等等。应用布置策略文档134还可指定其他动态条件,诸如网络连接上的当前网络负载、各服务器上的处理负载等。在另一实施例中,应用布置策略文档134还指定应用执行代理130要考虑的静态条件。这些静态条件可包括应用程序的大小(在应用流传输的上下文中)、应用程序的性能(在需要客户机侧处理能力的上下文中)、用户界面的图形密集度(在通过RDP执行应用的上下文中)等等。这些静态条件可在例如创建应用程序的虚拟应用包110并将其存储在虚拟应用服务器108上时由管理人员确定。应用布置策略文档134中可指定的其他静态条件包括应用程序的商业关键程度、应用程序的优先级(在当前服务器负载和/或其他服务器侧条件的上下文中)、用户计算设 备102的当前用户的角色等等。可以明白,除了本文描述的这些条件,可在应用布置策略文档134中指定在确定用于将应用程序递送到用户计算设备102的最佳方法时要考虑的其他动态和静态条件。所有这些条件都旨在被包括在本申请中。在另一实施例中,应用执行代理130还可考虑应用布置策略文档134以外的因素或条件,诸如由用户计算设备102的用户为所请求的应用程序指定的偏好应用递送方法。某些因素和/或条件可规定或排除特定应用递送方法。例如,商业关键的应用程序,由于应用程序从内部安全数据源检索的数据的敏感本质,在用户计算设备102在企业LAN外部连接时只经由远程桌面客户机114被递送到用户计算设备。类似地,具有尤其图形密集的用户界面的应用程序,因为将导致的较差的用户体验,可能不经由远程桌面客户机114来递送。其他条件可按有利于特定应用递送方法的方式加权,如果该其他条件没有规定或排除的话。例如,应用布置策略文档134可指定流传输应用程序的虚拟应用服务器108的超载条件应该按有利于选择远程桌面应用递送方法的方式来加权。类似地,可使用用户指定的偏好应用递送方法来发起所请求的应用程序,如果应用布置策略文档134中指定的其他条件不阻止的话。可以明白,应用执行代理130可被配置为,通过例如查询用户计算设备和/或虚拟应用服务器提供的应用编程接口( “API”),确定应用布置策略文档134指定的动态条件,诸如用户计算设备102的网络连接的当前类型或虚拟应用服务器108的当前负载。在一个实施例中,应用布置策略服务器132还可确定某些动态条件,如虚拟应用服务器108、远程服务器计算机118、虚拟桌面服务器122等的当前负载。根据一个实施例,应用执行代理130评估应用布置策略文档134中指定的条件和因素,来确定用于所请求的应用程序的最佳或规定的应用递送方法。在另一实施例中,应用执行代理130可基于应用布置策略文档134指定的条件和因素来确定要使用的可用应用递送方法的优先级。在确定用于所请求的应用程序的最佳或规定的应用递送方法之后,例程200从操作206进行至操作208,在那里,应用执行代理130确定应用递送方法当前对用户计算设备102是否可用。例如,基于应用布置策略文档134确定的最佳或规定的应用递送方法可能未被配置在用户计算设备102上,或者可能不能够在当前用户环境中运行。如果应用执行代理130确定最佳应用递送方法是可用的,则例程200从操作208进行至操作210,在那里,应用执行代理130使用所确定的应用递送方法来发起所请求的应用程序。例如,在确定应用流传输是用于所请求的应用程序的最佳应用递送方法之后,应用执行代理130通过配置在用户计算设备102上的虚拟应用客户机104来发起所请求的应用程序。从操作210,例程200结束。根据一个实施例,在操作208,如果应用执行代理130确定最佳应用递送方法是不可用的,则应用执行代理可检查以确定按基于应用布置策略文档134确定的优先级次序的下一应用递送方法在用户计算设备102上是否可用。在另一实施例中,在确定最佳或规定的应用递送方法是不可用的之后,例程200进行至操作212,在那里,应用执行代理130取消应用执行请求并通知用户所请求的应用递送方法在用户计算设备102上是不可用的。从操作212,例程200结束。图3示出计算机300的示例计算机体系结构,计算机300能够按以上给出的方式执行此处描述的用于基于集中式地维护的策略来自动选择最佳应用递送方法的软件组件。图3所示的计算机体系结构示出常规服务器计算机、台式计算机、膝上型计算机、笔记本计算机、PDA、无线电话或其他计算设备,并可以用来执行此处给出的被描述为在用户计算设备102或其他服务器或计算机上执行的软件组件的任何方面。图3所示的计算机体系结构包括一个或多个中央处理单元(“CPU”) 302。CPU 302可以是执行计算机300的操作所需的算术和逻辑运算的标准处理器。CPU 302通过从一个分立的物理状态转换到下一状态来执行必要的运算,该转换是通过操纵在各状态之间不同并改变这些状态的开关元件来实现的。开关元件一般可包括维持两个二进制状态中的一个的电子电路,诸如触发电路,以及基于一个或多个其他开关元件的状态的逻辑组合来提供输出状态的电子电路,诸如逻辑门。这些基本开关元件可被组合以创建更复杂的逻辑电路,包括寄存器、加减器、算术逻辑单元、浮点单元和其他逻辑元件。该计算机体系结构还包括含有随机存取存储器(“RAM”)314和只读存储器316 (“ROM”)的系统存储器308、以及将存储器耦合至CPU 302的系统总线304。基本输入/输出系统被存储在ROM 316中,该系统包含帮助诸如在启动期间在计算机300中的元件之间传递信息的基本例程。计算机300还包括用于存储操作系统318、应用程序和其他程序模块的大容量存储设备310,这将在本文中更为详尽地描述。大容量存储设备310通过连接至总线304的大容量存储控制器(未示出)连接到CPU 302。大容量存储设备310为计算机300提供非易失性存储。计算机300可通过变换大容量存储设备310的物理状态来反映被存储的信息来将信息存储在该设备上。在本说明书的不同的实现中,物理状态的具体变换可取决于各种因素。这样的因素的示例可以包括,但不仅限于用于实现大容量存储设备的技术,大容量存储设备被表征为主存储还是辅存储等等。例如,计算机300可通过向大容量存储控制器发出以下指令来将信息存储到大容量存储设备310 :变更磁盘驱动器内的特定位置的磁特性;变更光存储设备中的特定位置的反射或折射特性;或变更固态存储设备中的特定电容、晶体管或其他分立元件的电特性。在不背离本发明的范围和精神的情况下,物理介质的其他变换是可能的。计算机300还可通过检测大容量存储设备内的一个或多个特定位置的物理状态或特性来从大容量存储设备310读取信息。
如上简述,多个程序模块和数据文件可存储在计算机300的大容量存储设备310和RAM 314中,包括适用于控制计算机的操作的操作系统318。大容量存储设备310和RAM314还可以存储一个或多个程序模块。具体地,大容量存储设备310和RAM 314可存储应用执行代理130和/或应用布置策略文档134,这两者都在上文参考图I详细描述过。大容量存储设备310和RAM 314还可存储其他类型的程序模块或数据。除了上述大容量存储设备310之外,计算机300能够访问其他计算机可读介质以存储和检索信息,诸如程序模块、数据结构或其他数据。本领域技术人员应该明白,计算机可读介质可以是计算机300可访问的任何可用介质,包括计算机可读存储介质和通信介质。通信介质包括瞬时信号。计算机可读存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机可读存储介质包括但不限于,RAM、ROM、EPROM、EEPR0M、闪存或其他固态存储器技术,⑶-ROM、数字多功能盘(DVD)、HD-DVD、蓝光、或其他光学存储,磁带盒、磁带、磁盘存储或其他磁存储设备,或可以用来存储所需信息并可由计算机300访问的任何其他介质。计算机可读存储介质可以用在被加载到计算机300中时可将计算机系统从通用计算系统变换成能够实现此处描述的各实施例的专用计算机的计算机可执行指令来编码。计算机可执行指令可通过变更计算机可读存储介质中的特定位置的电、光、磁或其他物理特性来在该介质上编码。这些计算机可执行指令通过如上所述的指定CPU 302如何在各状态之间转换来变换计算机300。根据一个实施例,计算机300能够访问存储计算机可执行指令的计算机可读存储介质,所述指令在由计算机执行时执行以上参照图2描述的用于基于集中式地维护的策略来自动选择最佳应用递送方法的例程200。根据各实施例,计算机300可使用通过网络106到远程计算设备和计算机系统的逻辑连接在联网环境中操作,所述网络诸如LAN、WAN、因特网或本领域已知的任何拓扑结构的网络。计算机300可以通过连接至总线304的网络接口单元306来连接到网络106。应当理解,网络接口单元306还可以被用来连接到其他类型的网络和远程计算机系统。计算机300还可包括用于接收和处理来自包括键盘、鼠标、触摸垫、触摸屏、电子指示笔、或其它类型的输入设备等多个输入设备的输入的输入/输出控制器312。类似地,输入/输出控制器312可向诸如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪或其他类型的输出设备等显示设备提供输出。可以明白,计算机300可以不包括图3所示的全部组件,可以包括未在图3中明确示出的其它组件,或者可使用完全不同于图3所示的体系结构。基于上述,应该明白此处提供了用于基于集中式地维护的策略来自动选择最佳应用递送方法的技术。虽然以计算机结构特征、方法动作、以及计算机可读存储介质专用的语言描述了本文呈现的主题,但是应该理解,在所附权利要求书中所限定的本发明不一定仅限于本文描述的具体特征、动作、或介质。相反,这些具体特征、动作和介质是作为实现权利要求的示例形式来公开的。
上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。
权利要求
1.一种用计算机可执行指令编码的计算机存储介质,所述指令在由计算机(102)执行时使得所述计算机(102)执行以下动作 接收要发起应用程序的请求; 向应用布置策略服务器(132)请求关于所述应用程序的应用布置策略文档(134); 从所述应用布置策略服务器(132)接收所述应用布置策略文档(134),其中所述应用布置策略文档(134)描述用于基于一个或多个条件来选择用于递送所述应用程序的方法的策略; 基于所述应用布置策略文档(134)中描述的策略和当前条件来确定用于将所述应用程序递送到所述计算机的方法;以及 使用所述确定的用于递送所述应用程序的方法来发起所述应用程序。
2.如权利要求I所述的计算机可读存储介质,其特征在于,所述应用布置策略文档所描述的条件中的一个或多个基于所述计算机的位置或当前联网环境。
3.如权利要求I所述的计算机可读存储介质,其特征在于,所述应用布置策略文档所描述的条件中的一个或多个基于所述计算机的能力。
4.如权利要求I所述的计算机可读存储介质,其特征在于,所述应用布置策略文档所描述的条件中的一个或多个基于所述应用程序的静态属性。
5.如权利要求I所述的计算机可读存储介质,其特征在于,所述应用布置策略服务器基于所述计算机的当前用户的角色,从关于所述应用程序的多个集中式地维护的应用布置策略文档中选择要响应于所述请求返回的应用布置策略文档。
6.一种用于确定将应用程序递送到用户计算设备(102)的方法的计算机实现的方法,所述方法包括执行指令以使一个或多个计算机执行以下操作 接收要发起所述应用程序的请求; 基于所述用户计算设备(102)的当前用户的角色,从关于所述应用程序的一个或多个应用布置策略文档(134)中选择应用布置策略文档(134); 基于所述应用布置策略文档(134)和当前条件来确定用于将所述应用程序递送到所述用户计算设备(102)的方法;以及 使用所述确定的用于递送所述应用程序的方法来发起所述应用程序。
7.如权利要求6所述的计算机实现的方法,其特征在于,如果所述确定的用于递送所述应用程序的方法在所述用户计算设备上不可用,则取消要发起所述应用程序的请求。
8.如权利要求6所述的计算机实现的方法,其特征在于,所述用于递送所述应用程序的方法是从以下各项中的一项选择的流传输虚拟化应用、在虚拟会话中执行所述应用程序的实例、或者在远程桌面会话中执行所述应用。
9.一种用于自动选择将应用程序递送到用户计算设备(102)的方法的系统,所述系统包括 在所述用户计算设备(102)上执行的应用执行代理(130),且所述应用执行代理(130)被配置为 接收要发起所述应用程序的请求; 向应用布置策略服务器(132)请求关于所述应用程序的应用布置策略文档(134); 从所述应用布置策略服务器(132)接收所述应用布置策略文档(134),其中所述应用布置策略文档(134)描述用于基于一个或多个条件来选择用于递送所述应用程序的方法的策略; 基于所述应用布置策略文档(134)中描述的策略和当前条件来确定用于将所述应用程序递送到所述用户计算设备(102)的方法;以及 使用所述确定的用于递送所述应用程序的方法来发起所述应用程序;以及 所述应用布置策略服务器(132)被配置为 响应于来自所述应用执行代理(130)的请求,基于所述用户计算设备(102)的当前用户的角色,从关于所述应用程序的多个集中式地维护的应用布置策略文档(134)中选择所述应用布置策略文档(134),以及 将所选的应用布置策略文档(134)返回至所述应用执行代理(130)。
10.如权利要求9所述的系统,其特征在于,所述一个或多个条件包括基于以下各项中的一个或多个所述用户计算设备的当前用户的角色、所述用户计算设备的位置或联网环境、所述用户计算设备的能力、或所述应用程序的静态属性。
全文摘要
本发明描述了基于策略的应用递送。本文描述了用于基于集中式地维护的策略来自动选择最佳应用递送方法的技术。在用户计算设备上执行的代理接收要发起应用的请求。代理向策略服务器请求关于应用程序的集中式地维护的应用布置策略文档。应用布置策略文档可描述用于基于多个条件确定用于将应用递送到用户计算设备的方法的策略。代理基于应用布置策略文档和当前条件来选择用于应用递送的方法,然后使用所选的应用递送方法来发起应用程序。
文档编号G06F9/46GK102637137SQ20111043103
公开日2012年8月15日 申请日期2011年12月20日 优先权日2010年12月21日
发明者A·M·安德森, C·凯凯, K·H·雷厄森, L·P·德索扎, S·E·斯特恩斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1