首页> 中国专利> 应用程序的远程自动供应和发布

应用程序的远程自动供应和发布

摘要

描述了用于应用程序的自动供应和发布的技术。自动供应过程通过使应用程序的相应文件包被预先存储在服务器中来允许应用程序的自动安装。随后,自动进行这些应用程序的发布。通过采用这一自动过程,减少了远程应用程序的供应和发布中涉及的延迟,从而使该过程更高效。

著录项

  • 公开/公告号CN101821729A

    专利类型发明专利

  • 公开/公告日2010-09-01

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200880112322.8

  • 申请日2008-10-09

  • 分类号G06F15/16(20060101);G06N3/04(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人顾嘉运;钱静芳

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 00:39:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):G06F15/16 变更前: 变更后: 登记生效日:20150429 申请日:20081009

    专利申请权、专利权的转移

  • 2013-04-24

    授权

    授权

  • 2010-10-20

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20081009

    实质审查的生效

  • 2010-09-01

    公开

    公开

说明书

背景

诸如微软公司的终端服务TM(Terminal ServicesTM)等远程计算系统使得多个用户能访问被主存在服务器计算机上的远程应用程序。所提供的服务还可包括各种阻止未经授权的用户访问应用程序的认证系统。

在此类远程计算系统环境中,系统管理员可将应用程序加载到服务器计算机上。此后,作为定义各种策略并管控安全性的一部分,系统管理员可为一个或多个用户设置策略。此类策略可允许或限制用户可在服务器计算机处执行的应用程序的数量或操作的类型。例如,系统管理员可将特定应用程序的可用性限于一组特定用户。随后,系统管理员还可基于策略在网页上发布用户可访问的应用程序的列表。用户可随后直接从相关应用程序被发布到其上的网页中访问相关应用程序。

在完成供应过程后,系统管理员可为一个或多个用户设置涉及访问应用程序的策略。这些策略可包括例如向特定用户分配对某些应用程序的读/写权限。系统管理员可通过一个或多个网页为每一用户发布应用程序的列表。网页担当用于用户的用户界面并包括用户可通过其访问应用程序的应用程序图标。在服务器中加载应用程序并随后发布这些应用程序以供用户使用的过程是耗时且麻烦的。因此,仍留有改善将应用程序存储在服务器计算机中并发布应用程序以供用户使用的方式的需要。

概述

提供此概述以介绍涉及应用程序的远程自动供应和发布的概念。这些概念将在以下详细描述中进一步描述。本概述并不旨在标识所要求保护的主题的必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

在一实现中,标识或发现文件夹或文件系统中的应用程序包,使用应用程序运行时组件或虚拟化协调器来执行协调,且远程应用程序供应组件或供应模块使得应用程序对用户可用。

附图简述

参考附图来描述详细描述。在附图中,附图标记中最左边的数字标识该附图标记首次出现的附图。在各附图中,使用相同的标号来指示相同的特征和组件。

图1是示出用于应用程序的远程自动供应和发布的示例性网络体系结构的框图。

图2是示出用于实现应用程序的远程自动供应和发布的服务器计算机的框图。

图3是示出用于应用程序的远程自动供应和发布的示例性工作流的流程图。

图4是示出用于实现应用程序的远程自动供应的示例性过程的流程图。

图5是示出用于实现应用程序的远程自动发布的示例性过程的流程图。

图6是示出示例性计算环境的框图。

详细描述

此发明涉及用于实现在诸如微软公司的终端服务TM等远程计算环境中的应用程序的远程自动供应和发布的技术。具体而言,本发明涉及在远程计算环境中提供较快的远程应用程序对用户的供应和发布。此处的技术通过提供被主存在远程或终端服务器计算机上的应用程序的自动供应和发布来应对此挑战。该自动供应过程允许了应用程序的自动化安装。这些应用程序可使其相应文件包被存储在服务器上。随后,自动执行这些应用程序的发布。这减少了远程应用程序的供应和发布中涉及的延迟,从而使得该过程更加高效。

此处描述的技术可用于多种不同的操作环境和系统中。以下描述多种多样的实现。在下文中讨论适用于实现各种实现的示例性环境。

用于实现在远程计算环境中的应用程序的远程自动供应和发布的示例性系统和方法在正由诸如个人计算机等计算设备执行的计算机可执行指令(程序模块)的一般上下文中描述。程序模块一般包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。尽管本发明的系统和方法在上述上下文中描述,但此后描述的动作和操作是用硬件或其他形式的计算平台来实现的。

示例性网络体系结构

图1示出用于实现应用程序的远程自动供应和发布的示例性网络体系结构100。为此,网络体系结构100包括网络102,任何数量的客户机设备104-1、104-2、…、104-N(被统称为客户机设备104)通过该网络与远程服务器或服务器计算机106通信。例如,网络体系结构100可包括服务器计算机106,该服务器计算机106与多个个人计算机(PC)、web服务器、以及遍布世界的其它计算设备交互。或者,在另一可能的实现中,网络体系结构100可包括通过局域网(LAN)或广域网(WAN)或任何其它网络来与单个服务器通信的有限数量的PC。在又一实现中,网络体系结构100可包括直接连接到服务器计算机106的一个或多个客户机设备104。

网络102可包括局域网(LAN)、广域网、无线网络、光学网络、城域网(MAN)等。客户机设备104可包括通用计算设备、膝上型计算设备、移动计算设备等。

服务器计算机106可主存可由客户机设备104访问的若干远程应用程序。信息技术(IT)或系统管理员可复制与应用程序相关联的文件集合并将所复制的文件存储在服务器106中的预定义位置处。例如,该预定义位置可以是文件夹、文件系统等。作为示例,该文件集合对正确安装相应的应用程序可能是必要的。此类文件集合的示例包括但不限于应用程序位、配置文件等。该文件集合可从诸如压缩盘、软盘、其它计算设备等外部源获得。在一实现中,该文件集合可被存储在位于通过网络102连接到服务器计算机106的外部存储设备中的一预定义位置中。

服务器计算机106可通过程序模块108来实现应用程序的远程自动供应和发布。程序模块108可包括虚拟化协调器110、供应模块112、以及发布模块114。虚拟化协调器110通过频繁地监视预定义位置来标识与任何应用程序相关联的任何文件集合的存在。在一实现中,在标识文件集合后,虚拟化协调器110将文件集合复制到服务器计算机106中以供安装应用程序。供应模块112收集文件集合并基于在文件集合中存在的配置文件将应用程序安装到服务器计算机106上。

在一实现中,虚拟化协调器110可标识文件集合的存在并指示供应模块112直接从预定义位置中收集文件集合以供安装应用程序。

虚拟化协调器110还可基于可发布哪个应用程序来构造必要的数据。例如,该数据可包括应用程序图标、应用程序路径、应用程序名称、远程桌面协议(RDP)文件等。在一实现中,一旦构造了数据,虚拟化协调器110即可指示发布模块114在网页上发布应用程序以供用户通过客户机设备104访问。发布模块114基于从虚拟化协调器110处接收到的数据在网页中发布应用程序。在一实现中,该应用程序可在可包括之前由系统管理员包括的应用程序的现有网页中发布。该网页可以是可使用特定应用程序图标向用户呈现应用程序的用户界面。这一网页可在于服务器106处接收到来自客户机设备104中的一个或多个的请求后向用户显示。

示例性服务器实现

图2示出用于实现应用程序的远程自动供应和发布的服务器计算机106的示例性体系结构和功能组件。服务器106包括处理器200、系统存储器202、网络接口204、以及输入/输出(I/O)接口206。网络接口204提供对各种各样的网络的连接,如网络102、以及其它如有线网络(例如,LAN、电缆等)和无线网络(例如,WLAN、蜂窝、卫星等)等网络。输入/输出接口206为服务器计算机106提供数据输入和输出能力。输入/输出接口206可包括例如鼠标端口、键盘端口等。

系统存储器202存储程序模块108和程序数据208。程序模块108包括例如虚拟化协调器110、供应模块112、发布模块114、运行时模块210、控制管理模块212、以及其它模块214(例如,操作系统或用于提供运行时环境的操作系统(OS)、多个用户之间的联网通信等)。

虚拟化协调器110可提供若干功能,包括担当远程计算机(例如,终端服务TM)环境的中央单元;通过监视预定义位置来执行文件包标识;以及启动应用程序对用户的自动供应和发布的过程。

如前所述,虚拟化协调器110可被用来标识与应用程序有关的文件集合在预定义位置中的存在。虚拟化协调器110可指示运行时模块210收集文件集合并将它们作为新文件包216存储在服务器计算机106中。虚拟化协调器110触发供应模块112通过客户机设备104向用户本地供应应用程序。

在一实现中,虚拟化协调器110可指示供应模块112收集新文件包216并向客户机设备104供应应用程序。例如,供应模块112(即,微软SoftGridTM客户端)可由虚拟化协调器110指示来复制新文件包216并将应用程序安装在服务器106中。在此类情况中,新文件包216可以是微软SoftGridTM包。在此类情况中,供应模块112可采用微软SoftGridTM应用程序运行时环境来供应应用程序。应该注意,微软SoftGridTM应用程序运行时环境允许将应用程序从服务器计算机106实时部署到客户机设备104。

一旦可使得应用程序对用户可用,虚拟化协调器110即指示发布模块114发布应用程序以便由诸如客户机设备104等用户访问。如上所述,在指示发布模块114发布应用程序之前,虚拟化协调器110可构造生成发布应用程序的请求所必需的数据。

控制管理模块212控制虚拟化协调器110的操作。例如,控制管理模块212可基于从系统管理员处接收到的请求开始或停止虚拟化协调器110的执行。控制管理模块212与虚拟化协调器110之间的交互在下文中参考图3更详细地描述。

在一实现中,在发布过程期间,发布模块114可使用新的可用应用程序来更新预先存在的对用户可用的应用程序的列表以生成经更新的列表218。基于经更新的列表218,发布模块114生成可通过客户机设备104向用户呈现的应用程序发布网页220。

在一实现中,发布模块114可通过向预先存在的应用程序列表追加经更新的列表218来发布应用程序发布网页220。在另一实现中,应用程序发布网页220可以是可使用应用程序来更新的预先存在的网页。因此,服务器计算机106在来自用户的请求后可显示应用程序发布网页220。

示例性工作流图

图3示出用于应用程序的自动供应和发布的示例性工作流图300。工作流300示出从将文件集合存储在预定义位置到其中发布应用程序并使得应用程序对用户可用的阶段的过程的逐步流程。

工作流300示出虚拟化协调器110,该虚拟化协调器110连续监视预定义位置302以标识可指示与新应用程序相关联的文件的存在的任何文件的到达(过程304)。该文件可被系统管理员复制到预定义位置302中。在一实现中,虚拟化协调器110可被配置成收集并复制与要安装的应用程序相关联的文件并将其作为新文件包216存储在服务器计算机106中(即,过程306)。在另一实例中,新文件包216可以是可被包括在服务器计算机106中的持久存储存储器。

虚拟化协调器110可基于被存储在新文件包216中的文件来指示供应模块112在服务器106中供应或安装应用程序以供本地使用(即,过程308)。在一实现中,在过程308期间,虚拟化协调器110可指示供应模块112从预定义位置302中收集与要安装的应用程序相关联的文件。在接收到这一指令后,供应模块112从预定义位置302中收集要安装的应用程序的文件(即,过程310)。

系统管理员可通过虚拟化配置用户界面(UI)312来配置控制管理模块212以启动或终止虚拟化协调器110的操作(即,过程314和316)。在一实现中,如过程318所示,虚拟化协调器110可基于直接通过虚拟化配置UI 312从系统管理员处接收到的指令来操作。

过程320示出由虚拟化协调器110向发布模块114给出的向网页发布应用程序、并使应用程序对远程用户可用的指令。发布模块114随后在过程322期间将应用程序添加到经更新的列表218中。应该注意,经更新的列表218可以是预先存在的应用程序列表,该列表可使用新应用程序来不断地更新。在一实现中,经更新的列表218可用于确认由用户通过客户机设备104生成的任何应用程序请求。该经更新的列表218可在交互324期间通过应用程序发布网页220向用户显示。

示例性方法

参考图1-3描述了用于应用程序的远程自动供应和发布的示例性过程。这些过程可在计算机可执行指令的一般上下文中描述。一般而言,计算机可执行指令可包括执行特定功能或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构、过程、模块、功能等。这些过程还能在其中功能由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,计算机可执行指令可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。

图4示出了用于应用程序的远程自动供应的示例性方法400。过程400被示为逻辑流程图中的框的集合,这表示可用硬件、软件或其组合实现的一系列操作。在软件上下文中,各个框表示当由一个或多个处理器执行时完成既定操作的计算机指令。

描述方法的次序并不旨在解释为限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现替换方法。另外,可从该方法中删除各个框而不背离此处所述的主题的精神和范围。此外,本方法可用任何合适的硬件、软件、固件或其组合来实现而不背离本发明的范围。

在框402,将与要安装的应用程序相关联的文件传送到预定义位置中。例如,系统管理员从连接到服务器计算机106的外部源中收集与应用程序相关联的文件集合,并将该文件集合复制到预定义位置302。

在框404,标识与应用程序相关联的文件到达预定义位置。例如,虚拟化协调器110可周期性地监视预定义位置302以确定与要安装在服务器计算机106上的应用程序有关的文件集合是否存在。控制管理模块212可基于通过虚拟化配置UI 312从系统管理员处接收到的输入来发送指令。该输入可以是例如控制虚拟化协调器110的操作的指令。

在框406,可以预先高速缓存应用程序以供本地使用。虚拟化协调器110可从预定义位置302收集与应用程序相关联的文件集合并将该文件集合作为新文件包216存储在服务器计算机106中。在一实现中,虚拟化协调器110可指示供应模块112收集新文件包216以供本地使用。

在框408,为远程客户机设备供应应用程序。虚拟化协调器110可指示供应模块112安装应用程序以使应用程序对诸如客户机设备104等用户可用。在一实现中,供应模块112还可被配置成基于从系统管理员处接收到的输入来设置每一用户的权限和与应用程序的可访问性相关联的策略。

例如,虚拟化协调器110可告知供应模块112应用程序可由一组用户访问。此类告知可由系统管理员通过虚拟化配置UI 312向虚拟化协调器110提供。一旦此类权限和策略由供应模块112设置,应用程序可准备好由用户访问。

图5示出了用于应用程序的远程自动发布的示例性方法500。在框502,构造生成发布新应用程序的请求所必需的数据。虚拟化协调器110可生成用于在网页上发布被处理成对诸如客户机设备104等用户可用以供访问的新应用程序的数据。如前所述,该数据可包括例如应用程序名称、应用程序路径、应用程序图标、以及RDP文件。例如,在发布了应用程序图标时,用户可通过选择该应用程序图标来访问应用程序。

在框504,生成向远程用户发布新应用程序的请求。例如,虚拟化协调器110可收集发布所需的数据并基于所收集到的数据来指示发布模块114发布新应用程序。此外,虚拟化协调器110可向发布模块114传送数据以提供用于发布新应用程序的支持细节。

在框506,确定要发布的应用程序列表。例如,发布模块114可标识当前由用户访问的应用程序。基于这些应用程序,发布模块114可如在网页上生成应用程序列表。在一实现中,发布模块114可标识预先在服务器计算机106上存在的应用程序列表并发布新应用程序的细节作为附加列表。

在框508,使用新应用程序来更新该应用程序列表。例如,发布模块114可将新应用程序包括在该应用程序列表中以生成经更新的应用程序列表218。

在框510,在网页中发布新应用程序。发布模块114将该应用程序与经更新的列表中存在的应用程序一起发布在网页中。网页可由用户访问以使用该新应用程序。

示例性计算机环境

图6示出了可用于实现此处所述的技术,且整体或部分地表示此处所述的元素的示例性通用计算机环境600。计算机环境600仅是计算环境的一个示例,而非旨在对计算机和网络体系结构的使用范围或功能提出任何限制。计算机环境600也不应被解释成对于在示例计算机环境600中所示出的任一组件或其组合有任何依赖或要求。

计算机环境600包括计算机602形式的通用的基于计算的设备。计算机602例如可以是台式计算机、手持式计算机、笔记本或膝上型计算机、服务器计算机、游戏控制台等。计算机602的各组件可以包括但不限于:一个或多个处理器或处理单元604、系统存储器606、以及将包括处理器604在内的各系统组件耦合至系统存储器606的系统总线608。

系统总线608表示任何若干类型的总线结构中的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用任何各种总线体系结构的处理器或局部总线。作为示例,这样的体系结构可包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为夹层(Mezzanine)总线)。

计算机602通常包括各种计算机可读介质。这样的介质可以是能由计算机602访问的任何可用介质,包括易失性和非易失性介质以及可移动和不可移动介质。

系统存储器606包括诸如随机存取存储器(RAM)610等易失性存储器形式的计算机可读介质,和/或诸如只读存储器(ROM)612等非易失性存储器形式的计算机可读介质。示出了包含帮助在诸如启动期间在计算机602内元件之间传递信息的基本例程的基本输入/输出系统(BIOS)614,它被存储在ROM612中。RAM 610通常包含处理单元604可以立即访问和/或目前正在操作的数据和/或程序模块。

计算机602还可以包括其他可移动/不可移动、易失性/非易失性的计算机存储介质。作为示例,图6示出用于读写不可移动非易失性磁介质(未示出)的硬盘驱动器616。此外,图6示出用于对可移动、非易失性磁盘620(例如,“软盘”)读写的磁盘驱动器618,此外,图6示出用于对诸如CD-ROM、DVD-ROM、或其它光学介质等可移动、非易失性光盘624读和/或写的光盘驱动器622。硬盘驱动器616、磁盘驱动器618和光盘驱动器622各自通过一个或多个数据介质接口626连接至系统总线608。或者,硬盘驱动器616、磁盘驱动器618和光盘驱动器622也可通过一个或多个接口(未示出)连接至系统总线608。

盘驱动器及其相关联的计算机可读介质向计算机602提供对计算机可读指令、数据结构、程序模块以及其它数据的非易失性存储。尽管该示例示出了硬盘616、可移动磁盘620和可移动光盘624,可以理解可存储可由计算机访问的数据的其它类型的计算机可读介质也可用来实现该示例性计算系统和环境,这些介质如盒式磁带或其它磁存储设备、闪存卡、CD-ROM、数字多功能盘(DVD)或其它光盘存储、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等等。

众多程序模块可储存在硬盘616、磁盘620、光盘624、ROM 612和/或RAM 610中,作为示例包括操作系统626、一个或多个应用程序628、其它程序模块630和程序数据632。每个这样的操作系统626、一个或多个应用程序628、其它程序模块630以及程序数据632(或其某种组合)可实现支持分布式文件系统的常驻组件的全部或部分。

用户可通过诸如键盘634和定点设备636(例如“鼠标”)等输入设备向计算机602输入命令和信息。其他输入设备638(未具体示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、串行端口、扫描仪等。这些和其它输入设备通过耦合到系统总线608的输入/输出接口640连接到处理单元604,但也可通过其它接口和总线结构如并行端口、游戏端口或通用串行总线(USB)来连接。

监视器642或其他类型的显示设备也经由诸如视频适配器644等接口连接至系统总线608。除监视器642之外,其它输出外围设备可包括诸如扬声器(未示出)和打印机646等组件,这些组件可通过输入/输出接口640连接至计算机602。

计算机602可使用至一台或多台远程计算机(如远程基于计算的设备648)的逻辑连接在网络化环境中操作。作为示例,远程基于计算的设备648可以是个人计算机、便携式计算机、服务器、路由器、网络计算机、对等设备或者其它常见网络节点等。远程基于计算的设备648被示为可以包括在本文中相对于计算机602描述的许多或全部元素和特征的便携式计算机。

计算机602和远程计算机648之间的逻辑连接被描绘为局域网(LAN)650和通用广域网(WAN)652。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。

当在LAN联网环境中实现时,计算机602通过网络接口或适配器654连接到局域网650。当在WAN联网环境中实现时,计算机602通常包括调制解调器656或用于在广域网652上建立通信的其它装置。调制解调器656可以是计算机602内置或外置的,其可通过输入/输出接口640或其它适当的机制连接到系统总线608。可以理解,所示网络连接是示例性的,也可采用在计算机602和648之间建立通信链接的其他手段。

在诸如对计算环境600示出的网络化环境中,相对于计算机602描绘的程序模块或其部分可被存储在远程存储器存储设备中。作为示例,远程应用程序658驻留在远程计算机648的存储器设备上。为说明起见,应用程序和诸如操作系统的其他可执行程序组件在这里被示为离散的块,但可以理解,这样的程序和组件在不同的时间驻留在基于计算的设备602的不同存储组件中,并由计算机的数据处理器来执行。

各种模块和技术在此处可在诸如程序模块等由一个或多个计算机或其他设备执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。

这些模块和技术的实现可以存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质传输。计算机可读介质可以是可由计算机访问的任何可用介质。作为示例而非限制,计算机可读介质可包括“计算机存储介质”和“通信介质”。

“计算机存储介质”包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或者任何其他可用于存储所需信息并可由计算机访问的介质。

或者,框架的各部分可用硬件或硬件、软件和/或固件的组合来实现。例如,可将一个或多个专用集成电路(ASIC)或可编程逻辑器件(PLD)设计或编程为实现该框架的一个或多个部分。

结论

虽然已经用结构特征和/或方法特定的语言描述了用于实现应用程序的远程自动供应和发布的各实施例,但是应该理解所附权利要求的主题不必限于所述的特定特征或方法。相反,公开了具体特征和方法作为用于提供应用程序的远程自动供应和发布的示例性实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号