CN1480837A - 以完全无影响方式安装软件应用程序的系统和方法 - Google Patents

以完全无影响方式安装软件应用程序的系统和方法 Download PDF

Info

Publication number
CN1480837A
CN1480837A CNA03145240XA CN03145240A CN1480837A CN 1480837 A CN1480837 A CN 1480837A CN A03145240X A CNA03145240X A CN A03145240XA CN 03145240 A CN03145240 A CN 03145240A CN 1480837 A CN1480837 A CN 1480837A
Authority
CN
China
Prior art keywords
application program
component
detail form
computer
application
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.)
Granted
Application number
CNA03145240XA
Other languages
English (en)
Other versions
CN100365569C (zh
Inventor
Aw
A·W·坎特
M·邓恩
S·帕塔萨拉蒂
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1480837A publication Critical patent/CN1480837A/zh
Application granted granted Critical
Publication of CN100365569C publication Critical patent/CN100365569C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

所述的是一种机制,用于提供可从一远程位置安装的软件应用程序而不影响已经安装的软件应用程序。本发明提供一种机制,用于安装包括完整地自描述组分的应用程序。然后把一应用程序的每个组分标识在一与该应用程序一起存储的应用程序明细单。该应用程序明细单还包括描述该应用程序的每个组分的各种依赖关系的信息。对该应用程序感兴趣的一远程用户可如该应用程序明细单所述那样下载该应用程序至一本地存储器位置。该应用程序的任何共享组分也被共享,除了任何现有的、可能已经依赖于该共享组分的一以前版本应用程序继续依赖该以前版本。一个应用程序的不同版本是在本地并行地存储的。

Description

以完全无影响方式安装软件应用程序的系统和方法
                              背景技术
软件开发者一直努力简化软件开发过程。这样做的一种方法是重复使用代码,只要这样做有意义。例如,非常多的软件应用程序用打开文件对话框提示用户。在各个软件应用程序中执行该任务可能几乎相同,而且每个应用程序必须使用向用户显示该对话框的代码。与其迫使软件开发者独立地创建不同的唯一的对话框,不如现在让开发者已经使用共享公共代码的库,可使用如对话框这样的公共代码代替独立开发的代码。使用用于重复使用代码的共享库大大地简化开发过程并减少由于人的错误而引入的错误数量。虽然比完全定制的软件好,但使用共享库并不是没有问题。
当利用共享库编写多个软件应用程序时,每个应用程序变成依赖于该共享库在该软件应用程序所预期的状态中是可用的。对该共享库进行的任何修改,可能且经常会导致引用该共享库的软件应用程序发生不可预知的行为。这冷却了开发改进很可能由许多软件应用程序共享的代码的热情。在提供共享库的升级或修改时存在一种障碍因素,因为即使该升级是改正代码中的一个错误,该升级可能导致其它软件应用程序停止正常运行。不可能在每一可能遇到的情形下测试一段共享代码,因为每一新的软件应用程序创建另外的以前没有的情形。
共享库所关联的这些困难已经增加了安装与升级软件应用程序的困难。可能曾经有一时期在安装或升级一软件应用程序时不用担心影响其它软件应用程序。可是,用了共享库就不再有那样的时候了。在当今环境中,安装一包括共享库的应用程序可能导致另一个软件应用程序发生故障,如果该其它软件应用程序依赖于该共享库。常常难以准确地说出甚至对共享库所做的最轻微改变可能对其它应用程序产生的是什么影响。这是一般不自动执行安装或升级应用程序的一个原因。一般是在用户干涉下执行安装或升级,而且可能更重要的地,伴随一对于用户的该处理可能导致其它应用程序不希望的结果的警告。这些警告通常使用户惊慌失措,尤其对于不了解为什么会发生这样一个事件或如何纠正问题的单纯用户。
这些与其它问题常常使繁忙的软件安装与升级难以完成。用户因为担心(至少部分地)他们现有的应用程序会中断而已经减缓接受通过单击一网页上的超链接安装与执行的可下载软件的简单性。软件开发者出于同样的担心已经减缓提供这样的可下载软件现有的下载和安装软件的手法还没有消除那些担心。
也没有任何下载与安装软件的替代方法似乎被本行业更为接受。例如,主机应用程序概念在本质上是存储和安装在可被远程访问的服务器上的应用程序。只有当应用程序的用户界面方面(例如击键、鼠标移动和点击和屏幕显示)可在客户计算机与服务器之间传送时,客户计算机才能连接至服务器并执行该应用程序。可是,因为通过网络执行应用程序对相关性能的影响,这个模型不能达到广泛接受的程度。用户经验是直接依赖客户机与服务器之间连接的带宽,而如果网络故障,则主机应用程序完全无有。因此,可容易地下载和安装或升级的远程管理软件的便利性已经避开了软件群体。
                              发明概述
本发明的目标是提供可从远程位置安装的软件应用程序而不影响已经安装的应用程序。本发明提供一种机制用于安装包含完全自描述的组件的应用程序。随后在和该应用程序一起存储的一应用程序明细单中标识该应用程序的每一个组件。该应用程序明细单还包括描述该应用程序的每个组分各种依赖关系的信息。对该应用程序兴趣的远程用户可如该应用程序明细单所述那样将该应用程序下载至本地存储位置。该应用程序的任何共享组分也被共享,除了任何现有的、可能已经依赖于该共享组分的一以前版本应用程序继续依赖该以前版本。一个应用程序的不同版本是在本地并行地存储的。
                              附图说明
图1是功能结构图,可实施本发明实现的一分布网络环境的概观。
图2是功能结构图,更详细地说明依照本发明为在远程客户计算机上安装的应用程序代码服务的示例服务器。
图3是功能结构图,说明依照本发明可能从服务器检索和写入应用程序的示例客户计算机。
图4是例证性屏幕显示,依照本发明的一个实施例由允许远程应用程序下载的网络浏览软件提供的。
图5是逻辑流程图,主要说明检索和安装一在网络内正在使用的应用程序的过程。
图6是逻辑流程图,主要说明按照本发明的一个实施例使应用程序自描述并在网络上可用于下载的过程。
                             发明详细说明
本发明的目标是用于提供一种基于明细单、安装时可不影响现有软件的可下载的软件应用程序的系统和方法。
图1是功能结构图,可实施本发明实现的一分布网络环境的概观。如图1所示,两台或多台计算机,诸如服务器102和客户计算机120在网络105内相连接。这些计算机可能是在公司环境中连接的,其中网络105可能是局域网或广域网。同样,这些计算机可在广域网如互联网内任意地连接。
服务器102是一计算系统,被设定为使资源可用于与网络105相连接的其它计算系统。服务器102可包括网络服务软件用于提供互联网有关资源,如超文本标记语言(HTML)文件或其它类似文件。服务器102包括服务器数据存储器110形式的本地存储器。在数据存储器110上至少有一些资源由服务器102把它们在网络105年使用。特别是应用程序代码105和应用程序明细单112都存储在数据存储器110中,将结合附图2在后面作详细地描述。服务器102还包括其它应用程序(后面详述)用于维护应用程序代码115和用于建立并维护应用程序明细单112和其它有关的文档与资源。在此实现中,服务器102使应用程序代码115和应用程序明细单112在网络105内被其它计算系统使用。
客户计算机是一计算系统,被设定为执行本地运行的应用程序以及与在网络105内的其它计算机相连接。客户计算机120还包括客户机数据存储器106形式的本地存储器。在客户机数据存储器106中存有本地应用程序存储器109和预订信息107。客户计算机120还包括其它未示出的应用程序,用于与在网络内的其它计算机交互(例如互联网浏览软件等)和用于维护本地应用程序代码109和预订信息107。客户计算机120和其它突出的组分将结合图3在下面更详细地描述。
简要地说,客户计算机120的用户可以任何常规方式连接至服务器102。服务器102显示一网页或一些其它资源,使存在于服务器数据存储器110中的文件可用。在响应用户选择一个链接或相似行为时,应用程序明细单112被带到客户计算机120。应用程序明细单112用名称、一些标识符和有可能用与应用程序相关联的杂凑值唯一地标识应用程序。应用程序明细单112详细地描述应用程序代码115,包括每个组分、它们的版本和依赖关系。在查阅应用程序明细单112后,如果该应用程序代码115还未安装于客户计算机120上,则将应用程序115从服务器102带到客户计算机120并安装。
依照本发明,应用程序代码115可安装于客户计算机120而不用担心影响现有的软件应用程序。现在有些计算系统对应用程序的每个组分使用“强名称”,强名称包括该组分足够的信息,可从其它相似组分中唯一地识别该组件。例如,一组分的强名称如一共享动态链接库,可包括该组分的版本号、创建号等等。强名称的使用给组分一个利用数字式签名和公共密钥的全球唯一识别。
在客户计算机120上的每个应用程序是充分地自描述的,使每个应用程序的每个组分的依赖关系是已知的(包括它们的强名称)。此外,在应用程序明细单112中充分描述在应用程序115中的每个组件,包括它的依赖关系,从而可确定应用程序代码115中的一个特定共享组分是否与客户计算机120上的任何现有应用程序冲突。为此,没有以其准确状态存在于客户计算机120上的该应用程序代码115的每个组分从服务器102被卸下。任何现有代码,共享的或不共享的,在客户计算机120上保持未动。这样,在客户计算机120上的任何现有应用程序继续和以前一样和原来的共享组分一起运行,而新下载的应用程序包括它需要成功地运行的所有组分。只有当改变现有应用程序的依赖关系以引用一共享组分的较新版本时(如由强名称所标识的),该现有应用程序才会使用那个共享组分的下载版本。
图2是功能结构图,更详细地说明依照本发明为在远程客户计算机上安装的应用程序代码服务的示例服务器。如所示的,服务器102包括一应用程序的两个版本,应用程序版本A201和应用程序版本B201。该应用程序的每个版本包括几个程序文件(210,260),如可执行文件、配置文件等等。该应用程序的每个版本还可包括装配(211,261),它们是可在两个或多个应用程序中共享的动态链接库。做为选择,一应用程序的组分可以是修补程序,被应用于该程序的一个已安装版本的现有组分。该应用程序的各个组分可用归档或压缩格式(例如用CAB文件或ZIP格式)存储以节约存储空间并减少下载带宽。
如上所述,可用唯一地把每个组分与其它组件相区别的强名称标识该应用程序中的组分。特别是用强名称标识要被共享的任何装配211、261。在此例中,应用程序版本A201是由网络服务器软件255正在提供给在网络105内的其它计算系统。其它版本应用程序版本B202被存储在服务器102供将来使用或用于归档目的。
当被调用时,明细单生成程序225判断所选择应用程序的版本,如应用程序版本A201,并确定在各个组分中的依赖关系。然后明细单生成程序225为所选择应用程序的版本创建一应用程序明细单212。在一实施例中,该应用程序明细单212是一基于可扩展标记语言(XML)的文档,该文档用强名称标识所选择的应用程序的每个组分,并可包括附加信息以帮助唯一地标识每个组分,如杂凑值、公共密钥令牌等等。这样性质的一示例应用程序明细单作为“附录A一示例应用程序明细单”包括在本文档中。在另外一实施例中,该应用程序明细单212可以是封装在该应用程序的可执行组件的一入口点里面的信息。虽然在本文档中将本发明的应用程序明细单212描述为一特殊的文件,但它应该被解释为用任何形式描述应用程序的组分的信息,并且它可以存在于在此所述的以外的位置。在此所述的应用程序明细单212只是作为示例而已。
此外,明细单生成程序225还可创建一默认的预订明细单250,标识网络服务器软件255目前正在提供的应用程序为各个版本中的哪一个。预订明细单250是另一个基于XML的文件,包括指向应用程序的当前版本的应用程序明细单212的识别信息(例如通用资源定位)。本发明的实施例所使用的一个示例预订明细单作为“附录B一示例预订明细单”包括在此文档中。
网络服务器255可使HTML文件或其它包括一指向预订明细单250的超链接的网络可访问页面被使用。用此方法,远程计算机可访问该HTML文件,激活该超链接,得到该预订明细单250,随后检索如该预订明细单250所标识的该应用程序的当前版本。这样,通过简单地修改该预订明细单250标识该应用程序的另一个版本,一发布程序能立即开始提供该应用程序的其它版本。因为每个版本是完整的和自描述的,所以改变当前版本不用担心一旦检索并安装新的当前版本将对其它软件应用程序产生负面影响。预订明细单250还可包括其它信息,诸如一消费系统应该如何经常检查以更新、什么时候应该进行检查等等。
图3是功能结构图,较详细说明依照本发明可从服务器检索和载入应用程序的示例客户计算机。客户计算机120包括网络浏览软件302使用户能够连接在网络内的远程位置。网络浏览软件302可作为组分包括在一操作系统或类似的系统之中。在此例中,网络浏览软件302允许客户计算机120的用户从一服务器如上面所述的服务器102得到包括一预订明细单250超链接的网页或类似的网页。暂时转到图4,所示为网络浏览软件302的一个示例显示412,包括可能由上面所述的服务器102所提供的网页410。该网页410可能是一资源,使软件应用程序可供远程计算系统下载使用。该网页410包括一超链接460指向上面所述的预订明细单250。做为选择,该超链接460可被设定为直接指向应用程序明细单212而不是预订明细单250。
可以理解为网页410可在互联网、公司内部互联网或任何其它网络可访问的位置内被提供。激活超链接460使预订明细单250从该服务器被下拉。应该理解为网页460只是用户接收预订明细单250的通知的一种方法。例如,可在电子邮件消息或类似消息中提供预订明细单250的链接。在另一种选择中,也可提供多重超链接(例如超链接470)指向存储于服务器102上的应用程序的其它版本。用此方法,不想要应用程序当前版本的用户可以选择检索和安装该应用程序的一个较旧的或替换版本。
回到图3,一旦预订明细单250被检索到,将它交给激活组件308处理。在此实施例中,激活组件308被设定为分析预订明细单250并提取足够的信息以识别对应的应用程序,如该应用程序的名称、版本和位置。如果超链接460直接指向应用程序明细单212,则可从应用程序明细单212直接检索那些信息。有了那些信息,激活组件308能查询本地应用程序存储器109以确定所识别的应用程序是否已经在本地存储于客户计算机120中。本地应用程序存储器109包括已安装应用程序305的本地拷贝,和应用程序特有的安全信息307。更特别的是,当每个应用程序被下载,它所关联的URL和应用程序代码一起被高速缓存。这样做是为了当安装该应用程序时有效的安全权限继续应用于随后执行该应用程序的场合。例如,如果从一互联网位置(如由它的URL所规定的)下载一应用程序,那么应用于该互联网区域的安全权限可在每次执行时被应用于该应用程序。
如果激活组分308确定在预订明细单250所标识的应用程序没有在本地安装,则激活组件308可将有关应用程序的信息传给下载组分309。下载组分被设定为检索应用程序所关联的下载数据315并在本地安装应用程序。更特别地,下载组分309可检索预订明细单250所标识的应用程序明细单212并分析应用程序明细单212以标识应用程序代码和依赖关系。下载组分309然后可从服务器102检索还未在本地存储的任何应用程序代码。再次注意因为每个应用程序代码是由强名称标识的,只有那些与应用程序明细单所标识的组分相同的本地组分被使用,而其它组件从服务器102被检索。同样,下载组分可能是能应用于应用程序的现有版本的已安装组件的修补程序,可进一步减少下载费用。在从服务器102下载修补程序的情况下,应该理解为该修补程序是应用于现有应用程序代码的拷贝,但随后在本地作为应用程序的一独立的新的版本存储。这个过程保持了应用程序的每个版本并行的性质,同时进一步减小了下载的负担。一旦下载应用程序代码,下载组分309可验证与该组分相关联的任何签名以确定它们的真实性,执行杂凑检查以确保正确的组件已被检索,并将应用程序代码交付给应用程序存储器109。做为选择,可把某个组分标识为在请求时而不是立即被下载。
一数字权限管理系统可以实施(或者在服务器102或者在客户计算机120或在两者上),要求下载组分309验证与客户计算机120或用户所关联的信息以确保有足够授权来下载与安装应用程序。此外,作为安装过程一部分,可向用户提示,获得需要的许可协议,购买该应用程序。
虽然在图3中示作单一实体,但应用程序存储器109实际上可存在于客户机数据存储器106中的多个位置。例如,应用程序存储器109可包括存储许多应用程序代码的一个位置和存储共享组分的另一个位置(例如全局装配高速缓冲)。
在最后向本地应用程序存储器109提交应用程序代码后,激活组分308用服务器组分312注册应用程序。服务器组分312是一本地服务程序,为对预订的应用程序的修改负责周期性地轮询已注册的预订明细单如预订明细单250。服务器组分312维护标识每个预订的应用程序的预订信息314、它们的预订明细单的位置和在那时用来确定预订明细单是否已经被修改的一时间间隔。在一实现中,当客户计算机120空闲时,服务器组分312试图检索对应预订的应用程序的预订明细单,并且如果发生任何修改时,将修改过的预订明细单交给激活组件308自动地带回预订的应用程序的任何新版本。
而且,因为每个应用程序是并行地存储的,在每个应用程序的组分之间没有冲突。于是,可下载与安装应用程序的新版本而不会影响其它已安装的应用程序。如上所述,这是通过使用应用程序的强名称组件实现的,此外,因为在本地并行地安装应用程序,每个应用程序版本是唯一的,如果用户想要回到以前使用的版本,它为有效的重新运行提供增强的支持。简而言之,因为每个应用程序与其它应用程序无关,可卸载一个应用程序而不用担心影响其它应用程序,同样安装它们时不会影响现有的应用程序。
应该注意本发明所设想的并行安装是通过给某个应用程序代码特别是共享组分赋予强名称来实现的。使用常规或传统的命名技术并行安装的试图,其中的组分不是全球唯一的,可能由于各种原因而失败。例如,简单地将一应用程序的所有组分存储在一个目录中是不太令人满意的,因为它使修补一共享组分更为困难。如果一个组分是由安装的应用程序和其它应用程序共享的,那么对那个组分应用一个修补程序也需要为了应用该修补程序对其它所有情况下的那个共享组分进行定位。不能唯一地区分组分(通过强名称或一些其它机制),只是创建号(例如)不同的二或多个相同的组分不能方便地共存于一共享组分位置。本发明克服了这些限制。
在预订被注册后,激活组分308将控制传给受管理主机组分330,它根据应用程序被检索到的位置的URL和安全权限在一安全应用程序范围内(例如“沙箱”)启动应用程序。此外,应用程序或应用程序的组分可由一发布程序数字化签名。如果这么做,该发布程序的数字化签名可用于为正在执行的应用程序提供在沙箱之外的权限。换言之,可能存储于客户计算机120上的安全信息为来自特定发布程序的应用程序提供超过或在附加于沙箱应用程序的普通权限之上的权限。受管理主机组分330也可为提出要的组分提供下载和为共享组分提供的单一引证。
图5是逻辑流程图,主要说明检索和安装一在网络内正在使用的应用程序的过程。该过程开始于一用户表示想要以某种方式安装应用程序,如通过选择一与该应用程序有关的链接。该过程开始于方框503,开始检索与该应用程序相关联的一预订明细单。在一实施例中,一网页上超链接指向预订明细单和该用户通过触发该超链接表示想要下载和安装该应用程序,引起预订明细单被下载至客户计算机。
在方框505,检索包含描述该应用程序的一应用程序明细单。在此实施例中,该预订明细单包含标识该应用程序明细单所在处的信息。根据这个信息,检索该应用程序明细单。
在判断框507,对该应用程序的相同版本是否已经在本地存在作出判断。这一判断可通过分析该应用程序明细单,以识别关于该应用程序的标识信息,并将该标识信息与在本地安装的应用程序作比较来完成。如果已经安装了相同的该应用程序,该过程在方框517执行该应用程序的在本地存储的版本。否则,该过程继续至方框509。
在方框509,下载该应用程序的组分。随后可下载该应用程序明细单所标识的每个组分。可以理解为作为该下载过程的部分,可将每个组分的说明与已经在本地存储的每个组分的说明比较并且可以省去下载已经在本地存储的任何组分。
在方框511,将下载的组分存储在本地应用程序存储器中。共享组分可存储在一全局或系统高速缓冲,以使它们可用于多个应用程序。
在方框515,为预订注册该应用程序。在一实施例中,一个服务器组分周期性地轮询在一个预订的应用程序的当前发布版本中的修改。这是通过定位一预订明细单、由该应用程序的发布程序维护、并将预订明细单所标识的应用程序的版本与当前已安装的应用程序比较而完成的。根据预定单的设置,该预定应用程序的较新版本可以自动下载至客户计算机。在某些情况下,如大应用程序,可向用户显示一UI表示正在进行下载并提供该下载和安装的进度。最后在方框517,执行在本地安装的应用程序。
图6是逻辑流程图,主要说明按照本发明的一个实施例使应用程序自描述并在网络内用于下载的过程。当一应用程序发布程序或开发者表示想要使一应用程序可用于下载时进入该过程。处理从方框603开始。
在方框603,分析一应用程序以确定它的组成部分(组分)并标识在每个组成部分之间的依赖关系。该信息可存储在与该应用程序相关联的应用程序明细单中。
在方框606,创建一标识已安装应用程序的预订明细单并在网络内使它供可能想要下载该应用程序的用户使用。该预订明细单包括唯一地标识该应用程序和标识该应用程序位置的信息。在一实施例中,预订明细单包括一指向对应于该应用程序的应用程序明细单的URL。
在方框611,将该应用程序和预订明细单拷贝至在网络内公众公共可访问的位置。在一实施例中,该公共可访问位置可对应于由网络服务软件维护的一公共共享。在另一实施例中,该公共可访问位置可对应于一公司企业内部互联网或类似互联网。
在方框615中,向可能想要下载该应用程序的用户发布一预订明细单链接。例如,可创建包括一预订明细单链接的网页。想要下载该应用程序至客户计算机的用户可访问该网页并激活该链接。在响应时,该预订明细单可被检索到该用户的客户计算机。如果适当地配置该客户计算机,随后可下载该预订明细单所指向的该应用程序并安装在该客户计算机上。
上面的描述、实例和数据为本发明的结构的制作与使用提供了完整的说明。由于在不脱离本发明的精神与范围内可制作本发明的许多实施例,因此本发明属于在这后面所附的权利要求书。
                       附录A示例应用程序明细单
<?xml version=″1.0″encoding=″UTF-8″standalone=″yes″?>
<assembly xmlns:asm_namespace_vl=″urn:schemas-microsoft-com:asm.vl″
manifestVersion=″1.0″>
  <assemblyIdentity

    name=″Microsoft.Fusion.ClickOnceTest.URT.MultiLevel″

    version=″1.0.0.0″

    processorArchitecture=″x86″

    type=″application″

    language=″*″

    publicKeyToken=″144CC461D95B64FF″/>
  <description>

    Microsoft.Fusion.ClickOnceTest.URT.MultiLevel
  </description>
  <application>.

    <shellState

      friendlyName=″ClickOnceTest.URT.MultiLevel″

      showCommand=″normal″

      hotKey=″0″

      entryPoint=″″

      entryImageType=″.NetAssembly″/>

    <activation assemblyName=″MultiLevel″/>
  </application>
  <file name=″buildAll.cmd″
hash=″C39911F3F35068013F1AB9ED8DC58469″/>
  <file name=″L1_Asm1.cs″hash=″A24B49E13CE5A409D857BC05DC46B5F7″/>
  <file name=″L1_Asm2.cs″hash=″2061EF44BD9ECE958EF5EBB9FC10C335″/>
  <file name=″L1_Asm3.cs″hash=″461DC925229846952A4D0B81A8688D7B″/>
  <file name=″L1_Asm4.cs″hash=″96DF5C47919BF7C4A3C04AA1FD3F274D″/>
  <file name=″L2_Asm1_Dep1.cs″
hash=″2DB9715F8369340F1D3D1F290A4FF8B1″/>
  <file name=″L2_Asm1_Dep2.cs″
hash=″142D1D046CE13F279F0B07714365D495″/>
  <file name=″L2_Asm2_Dep1.cs″
hash=″E002AA267654F32EC115C5A8F297CE58″/>
  <file name=″L2_Asm3_Dep1.cs″
hash=″1B09608FEF6D6065A221B8ACFB90CFA6″/>
  <file name=″L2_Asm3_Dep2.cs″
hash=″3A90FA6BF2E4755718FF1E8B35BB701D″/>
  <file name=″L3_Asm3_Dep2_SubDep1.cs″
hash=″64BDB1C8E105D7560CCFA942705B1DC5″/>
  <file name=″MultiLevel.cs″
hash=″4DAFA9788DBFCD281A1C3EE486B0809F″/>
  <file name=″readme.txt″hash=″8726A66D3EDC6B36C9F41E1085A894E7″/>
  <file name=″TopLevel.cs″
hash=″B7F904FAC94B10AA864245E27D272F54″/>
  <dependency>

    <dependentAssembly>
				
				<dp n="d10"/>
       <assemblyIdentity name=″L1_Asm1″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/>

        <install codebase=″L1_Asm1.dll″/>

     </dependentAssembly>

     <dependentAssembly>

       <assemblyIdentity name=″L1_Asm2″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/>

       <install codebase=″L1_Asm2.dll″/>

     </dependentAssembly>

     <dependentAssembly>

       <assemblyIdentity name=″L1_Asm3″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/>

       <install codebase=″L1_Asm3.dll″/>

     </dependentAssembly>

     <dependentAssembly>

       <assemblyIdentity name=″L1_Asm4″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/>

       <install codebase=″L1_Asm4.dll″/>

     </dependentAssembly>

     <dependentAssembly>

       <assemblyIdentity name=″L2_Asm1_Dep1″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/>

       <install codebase=″L2_Asm1_Dep1.dll″/>

     </dependentAssembly> 

     <dependentAssembly>

       <assemblyIdentity name=″L2_Asm1_Dep2″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/>

       <install codebase=″L2_Asm1_Dep2.dll″/>

      </dependentAssembly>

      <dependentAssembly>

       <assemblyIdentity name=″L2_Asm2_Dep1″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/>

       <install codebase=″L2_Asm2_Dep1.dll″/>

     </dependentAssembly>

     <dependentAssembly>

       <assemblyIdentity name=″L2_Asm3_Dep1″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/ >

       <install codebase=″L2_Asm3_Dep1.dll″/>

     </dependentAssembly>

     <dependentAssembly>

       <assemblyIdentity name=″L2_Asm3_Dep2″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/>

       <install codebase=″L2_Asm3_Dep2.dll″/>

     </dependentAssembly>

     <dependentAssembly>

        <assemblyIdentity name=″L3_Asm3_dep2_subDep1″
version=″1.2.3.4″publicKeyToken=″e8ed396099c4b4e9″
processorArchitecture=″x86″language=″x-ww″/>

       <install codebase=″L3_Asm3_dep2_subDep1.dll″/>

     </dependentAssembly>

     <dependentAssembly>
				
				<dp n="d11"/>
       <assemblyIdentity name=″MultiLevel″version=″0.0.0.0″
processorArchitecture=″x86″language=″x-ww″/>

       <install codebase=″MultiLevel.exe″/>

      </dependentAssembly>

      <dependentAssembly>

       <assemblyIdentity name=″TopLevel″version=″1.2.3.4″
publicKeyToken=″e8ed396099c4b4e9″processorArchitecture=″x86″
language=″x-ww″/>

       <install codebase=″TopLevel.dll″/>

     </dependentAssembly>
   </dependency>
</assembly>
                           附录B示例预定明细单
<assembly xmlns:asm_namespace_v1=″urn:schemaa-microsoft-com:asm.v1″
manifestversion=″1.0″>
  <assemblyIdentity

     type=″subscription″

     name=″Microsoft.Fusion.ClickOnceTest.URT.MultiLevel″

     version=″1.0.0.0″

     publicKeyToken=″144CC461D95B64FF″

     processorArchitecture=″x86″

     language=″*″/>
  <description>

     MutilLevel.NetAssembly Application
  </description>
  <dependency>

    <dependentAssembly>

       <assemblyIdentity

         type=″application″

         name=″Microsoft.Fusion.ClickOnceTest.URT.MultiLevel″

         version=″1.0.0.0″

         publicKeyToken=″144CC461D95B64FF″

         processorArchitecture=″x86″

         language=″x-ww″/>

       <install
codebase=″http://fusiontest/ClickOnce/TestApps/URTApps/MultiLevel/Mi
crosoft.Fusion.ClickOnceTest.URT.MultiLevel.manifest″

         type=″required″/>

       <subscription

         synchronizeInterval=″1″

         intervalUnit=″hours″

         synchronizeEvent=″onApplicationStartup″

         eventDemandConnection=″no″/>

    </dependentAssembly>
  </dependency>
</assembly>

Claims (25)

1.一用计算机可执行指令编码的计算机可读介质,其特征在于,所述计算机可读介质包括:
启动对标识一应用程序和该应用程序的位置的明细单的检索;
下载与该应用程序相关联的组分至一本地数据存储器,每个组分是充分自描述以使其与其它组分相区别;以及
为预订注册该应用程序,其中,预订进一步包括周期性地检索该预订明细单以确定该预订明细单是否标识另一个应用程序,如果是,则为其它应用程序重复下载和注册步骤。
2.如权利要求1所述的计算机可读介质,其特征在于,所述明细单包括一预订明细单。
3.如权利要求1所述的计算机可读介质,其特征在于,所述明细单包括一应用程序明细单。
4.如权利要求1所述的计算机可读介质,其特征在于,启动对所述明细单的检索进一步包括激活与下载所述应用程序关联的在一网页上一个链接。
5.如权利要求1所述的计算机可读介质,其特征在于,启动对所述明细单的检索进一步包括由一自动预订服务程序根据预订信息进行检索所述的明细单的检索。
6.如权利要求5所述的计算机可读介质,其特征在于,所述预订信息进一步包括标识存储在所述本地数据存储器中的应用程序的信息,对所述信息的周期性更新已被注册。
7.如权利要求1所述的计算机可读介质,其特征在于,所述明细单包括一预订明细单,其中,所述指令进一步包括,在下载组分之前,检索与所述应用程序相关联的且在该预订明细单中所标识的一应用程序明细单,该应用程序明细单包括每个组分说明,足以使其与其它组分中相区别。
8.如权利要求7所述的计算机可读介质,其特征在于,所述应用程序明细单进一步描述与所述应用程序相关联的每个组分的依赖关系。
9.如权利要求1所述的计算机可读介质,其特征在于,至少所述组分中一个组分包括一共享组分。
10.如权利要求9所述的计算机可读介质,其特征在于,所述共享组分包括一装配。
11.如权利要求10所述的计算机可读介质,其特征在于,所述装配包括一强名称。
12.一种用来从一远程存储器位置安装一应用程序的计算机可执行方法,其特征在于,所述方法包括:
标识与该应用程序相关联的一应用程序明细单,该应用程序明细单包括足够的信息,以唯一地标识该应用程序的每个组分;以及
下载该应用程序的组分至一本地存储器,每个组分充分地自描述使依赖已经安装的组分的现有应用程序继续依赖那些已经安装的组分,而该应用程序依赖与该应用程序一起下载的组件。
13.如权利要求12所述的计算机可执行的方法,其特征在于,所述方法进一步包括:
比较所述应用程序明细单中的信息与本地安装的应用程序,以确定所述应用程序的任何组分是否与一本地安装的应用程序一起存在,如果是,则将所述应用程序的组分的下载限制成对那些还没有和一本地安装的应用程序一起存在组分的下载。
14.如权利要求12所述的计算机可执行的方法,其特征在于,所述应用程序的组分包括应用于相应组分的安装版本的修补程序,并进一步包括将所述应用程序的组分的下载限制在该修补程序的下载。
15.如权利要求14所述的计算机可执行的方法,其特征在于,所述预订明细单进一步包括所述应用程序明细单的位置的标识符。
16.如权利要求12所述的计算机可执行的方法,其特征在于,标识所述应用程序明细单包括下载一指向所述应用程序明细单的预订明细单。
17.如权利要求12所述的计算机可执行的方法,其特征在于,所述方法进一步包括注册根据预订明细单中的变化而自动升级的应用程序。
18.如权利要求12所述的计算机可执行的方法,其特征在于,所述方法进一步包括根据预订明细单中的修改重复所述方法,该预订明细单是与所述应用程序相关联。
19.如权利要求18所述的计算机可执行的方法,其特征在于,标识所述应用程序明细单包括下载指向所述应用程序明细单的该预订明细单。
20.一用数据结构编码的计算机可读介质,其特征在于,所述计算机可读介质包括:
一第一字段,该字段包括一应用程序的一唯一标识符;
一组第二字段,该字段标识该应用程序的每个组分,每个组分在其它组件中是可唯一地区分的;以及
一组第三字段,该字段标识该应用程序的每个组分,而该应用程序的每个组分依赖它而成功运行。
21.如权利要求20所述的计算机可读介质,其特征在于,所述第一字段进一步包括与所述应用程序相关联的一杂凑值。
22.如权利要求20所述的计算机可读介质,其特征在于,所述每个第二字段进一步包括与对应于对应的第二字段的一个组分相关联的一杂凑值。
23.如权利要求20所述的计算机可读介质,其特征在于,所述数据结构包括一基于XML的文档。
24.如权利要求20所述的计算机可读介质,其特征在于,在所述第三字段组中所标识的依赖关系用一强名称标识所述的被依赖的组分。
25.如权利要求24所述的计算机可读介质,其特征在于,在所述第三字段组中所标识的依赖关系用一公共密钥令牌标识所述的被依赖的组件。
CNB03145240XA 2002-06-27 2003-06-25 以完全无影响方式安装软件应用程序的系统和方法 Expired - Fee Related CN100365569C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/184,710 US20040003390A1 (en) 2002-06-27 2002-06-27 System and method for installing a software application in a non-impactfull manner
US10/184,710 2002-06-27

Publications (2)

Publication Number Publication Date
CN1480837A true CN1480837A (zh) 2004-03-10
CN100365569C CN100365569C (zh) 2008-01-30

Family

ID=29717974

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB03145240XA Expired - Fee Related CN100365569C (zh) 2002-06-27 2003-06-25 以完全无影响方式安装软件应用程序的系统和方法

Country Status (6)

Country Link
US (1) US20040003390A1 (zh)
EP (1) EP1376345A3 (zh)
JP (1) JP2004038962A (zh)
KR (1) KR20040002739A (zh)
CN (1) CN100365569C (zh)
TW (1) TW200402658A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100464299C (zh) * 2006-08-08 2009-02-25 北京飞天诚信科技有限公司 一种计算机软件更新的方法
CN102360297A (zh) * 2011-06-30 2012-02-22 四川长虹电器股份有限公司 在线应用加载的方法
CN102426530A (zh) * 2010-10-20 2012-04-25 微软公司 使用高特权过程远程安装软件
CN104375850A (zh) * 2013-08-15 2015-02-25 鸿富锦精密工业(深圳)有限公司 软件程序更新系统及方法
WO2016095489A1 (zh) * 2014-12-18 2016-06-23 中兴通讯股份有限公司 一种可执行模块的提供、加载方法、终端、存储介质

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US8620286B2 (en) * 2004-02-27 2013-12-31 Synchronoss Technologies, Inc. Method and system for promoting and transferring licensed content and applications
US8615566B1 (en) 2001-03-23 2013-12-24 Synchronoss Technologies, Inc. Apparatus and method for operational support of remote network systems
US20040010786A1 (en) * 2002-07-11 2004-01-15 Microsoft Corporation System and method for automatically upgrading a software application
US20080313282A1 (en) * 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7765281B1 (en) * 2003-03-10 2010-07-27 Motive, Inc. Large-scale targeted data distribution system
US7457831B2 (en) * 2003-03-31 2008-11-25 Microsoft Corporation Peripheral device driver maintenance scheme for networked peripheral device clients
US7984434B1 (en) * 2003-05-21 2011-07-19 Altera Corporation Nondestructive patching mechanism
US20040237082A1 (en) * 2003-05-22 2004-11-25 Alcazar Mark A. System, method, and API for progressively installing software application
US7395534B2 (en) * 2003-05-22 2008-07-01 Microsoft Corporation System and method for progressively installing a software application
KR100953160B1 (ko) * 2003-06-26 2010-04-20 삼성전자주식회사 네트워크 장치 및 이를 이용하는 상이한 저작권 관리방식을 갖는 네트워크 장치간의 컨텐츠 호환성 제공 방법
EP1652048A4 (en) 2003-07-21 2009-04-15 Fusionone Inc ORDERING NEWS MANAGEMENT SYSTEM
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
US8930944B2 (en) * 2003-11-18 2015-01-06 Microsoft Corporation Application model that integrates the web experience with the traditional client application experience
US7539686B2 (en) * 2004-03-12 2009-05-26 Microsoft Corporation Tag-based schema for distributing update metadata in an update distribution system
EP1574949A1 (en) * 2004-03-12 2005-09-14 Sap Ag Method for modifying the software configuration of a computer system
JP2005293109A (ja) * 2004-03-31 2005-10-20 Canon Inc ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
CN1998224A (zh) 2004-05-12 2007-07-11 富盛旺公司 高级联络识别系统
US9542076B1 (en) 2004-05-12 2017-01-10 Synchronoss Technologies, Inc. System for and method of updating a personal profile
US7552431B2 (en) * 2004-08-31 2009-06-23 Microsoft Corporation Multiple patching in a single installation transaction
US7703090B2 (en) * 2004-08-31 2010-04-20 Microsoft Corporation Patch un-installation
US7552430B2 (en) * 2004-08-31 2009-06-23 Microsoft Corporation Patch sequencing
US7747998B2 (en) * 2004-08-31 2010-06-29 Microsoft Corporation Elevated patching
US20060059481A1 (en) * 2004-09-16 2006-03-16 Rodney Smith Presenting, delivering and installing electronic downloads with an installed list
US8341531B2 (en) * 2004-09-30 2012-12-25 Microsoft Corporation Content formatting and installation techniques
US8245221B2 (en) * 2004-09-30 2012-08-14 Microsoft Corporation Content formatting and installation techniques
US7673148B2 (en) * 2004-10-15 2010-03-02 Microsoft Corporation Versioning component for applications
EP1811377A4 (en) * 2004-10-27 2009-04-01 Panasonic Corp RECEPTION DEVICE
US20060112152A1 (en) * 2004-11-22 2006-05-25 Microsoft Corporation Smart patching by targeting particular prior versions of a file
US8495619B2 (en) * 2005-06-29 2013-07-23 Flexera Software Llc Method and system for pre-deployment conflict checking
US7870547B2 (en) * 2005-08-10 2011-01-11 Cisco Technology, Inc. Method and apparatus for managing patchable software systems
JP2007053556A (ja) * 2005-08-17 2007-03-01 Fuji Xerox Co Ltd 複合機
US7433888B2 (en) * 2005-08-25 2008-10-07 Microsoft Corporation Schema packaging, distribution and availability
US8677348B1 (en) 2005-10-17 2014-03-18 Cisco Technology, Inc. Method and apparatus for determining least risk install order of software patches
US8051298B1 (en) * 2005-11-29 2011-11-01 Sprint Communications Company L.P. Integrated fingerprinting in configuration audit and management
US8006240B2 (en) * 2005-12-01 2011-08-23 International Business Machines Corporation Support continuous availability by allowing the use of multiple concurrent versions of shared artifact libraries, with proper bind-drain semantics, for long-lived process application consumers
US8607213B2 (en) * 2005-12-05 2013-12-10 International Business Machines Corporation SCORM manifest reconciliation
JP4844205B2 (ja) * 2006-04-05 2011-12-28 富士ゼロックス株式会社 ソフトウェアコンポーネントのインストール方法、インストーラ、及び複合機
US20070288389A1 (en) * 2006-06-12 2007-12-13 Vaughan Michael J Version Compliance System
US7496893B2 (en) * 2006-06-15 2009-02-24 International Business Machines Corporation Method for no-demand composition and teardown of service infrastructure
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US7519711B2 (en) * 2006-06-15 2009-04-14 International Business Machines Corporation Method for middleware assisted system integration in a federated environment
US7950007B2 (en) * 2006-06-15 2011-05-24 International Business Machines Corporation Method and apparatus for policy-based change management in a service delivery environment
US20070300280A1 (en) * 2006-06-21 2007-12-27 Turner Media Group Interactive method of advertising
US20070300273A1 (en) * 2006-06-21 2007-12-27 Gary Turner Interactive television application and content enhancement
US8082442B2 (en) * 2006-08-10 2011-12-20 Microsoft Corporation Securely sharing applications installed by unprivileged users
US8615801B2 (en) * 2006-08-31 2013-12-24 Microsoft Corporation Software authorization utilizing software reputation
US8099789B2 (en) * 2006-09-29 2012-01-17 Lenovo (Singapore) Pte. Ltd. Apparatus and method for enabling applications on a security processor
WO2008094508A2 (en) 2007-01-26 2008-08-07 Fusionone, Inc. System for and method of backing up content for use on a mobile device
CN101652790B (zh) 2007-04-03 2013-12-11 国际商业机器公司 用相关的产品信息填充软件目录的方法和系统
US20080260352A1 (en) * 2007-04-19 2008-10-23 Gary Turner Recorded advertisement enhancement
US20080263581A1 (en) * 2007-04-19 2008-10-23 Gary Turner Recorded commercial optimization method and system
US20080267589A1 (en) * 2007-04-27 2008-10-30 Gary Turner Television bandwidth optimization system and method
US20090133014A1 (en) * 2007-11-16 2009-05-21 Nokia Corporation Methods, apparatuses and computer program product for automatic download of software dependencies on installation
JP5112842B2 (ja) * 2007-12-18 2013-01-09 株式会社リコー 通信システム
US20090183182A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Dynamic Composition of Virtualized Applications
US8346897B2 (en) 2008-02-25 2013-01-01 Jon Jaroker System and method for deploying and maintaining software applications
US8776038B2 (en) 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
TW201025133A (en) * 2008-12-22 2010-07-01 Asustek Comp Inc Method for installing application program and computer system
KR101006841B1 (ko) * 2009-02-05 2011-01-12 주식회사 푸른기술 지폐방출기용 지폐 카세트의 지폐 정렬 및 가압장치
JP4692652B2 (ja) * 2009-02-18 2011-06-01 コニカミノルタビジネステクノロジーズ株式会社 ライセンス管理システム、ライセンス管理コンピュータ、ライセンス管理方法およびライセンス管理プログラム
US8539477B2 (en) * 2009-02-24 2013-09-17 Microsoft Corporation Managed environment update selection
US8458690B2 (en) * 2009-04-29 2013-06-04 Microsoft Corporation Automated software deployment triggered by state differences in distributed systems
US8954958B2 (en) 2010-01-11 2015-02-10 Code Systems Corporation Method of configuring a virtual application
US8959183B2 (en) * 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
US9104517B2 (en) 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8819671B2 (en) * 2010-03-31 2014-08-26 Ca, Inc. Facilitating software acquisition
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US8612946B2 (en) * 2010-05-17 2013-12-17 Red Hat, Inc. Cross-building support using dependency information
US8620914B1 (en) * 2010-05-18 2013-12-31 Google Inc. Ranking of digital goods in a marketplace
US9218359B2 (en) 2010-07-02 2015-12-22 Code Systems Corporation Method and system for profiling virtual application resource utilization patterns by executing virtualized application
US9021015B2 (en) 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
US8943428B2 (en) 2010-11-01 2015-01-27 Synchronoss Technologies, Inc. System for and method of field mapping
US8838679B2 (en) * 2010-12-22 2014-09-16 Microsoft Corporation Providing state service for online application users
US10430515B1 (en) * 2011-07-18 2019-10-01 Intuit Inc. Electronic document signatures and signature retrieval involving mobile communication device
US9823917B2 (en) * 2011-10-20 2017-11-21 Facebook, Inc. Update application user interfaces on client devices
US8959604B2 (en) 2011-11-25 2015-02-17 Synchronoss Technologies, Inc. System and method of verifying a number of a mobile terminal
JP5723760B2 (ja) * 2011-12-28 2015-05-27 Kddi株式会社 アプリケーション解析装置、アプリケーション解析システム、およびプログラム
GB2501287A (en) * 2012-04-18 2013-10-23 Ibm Installing applications at selected runtime instances
US20130339487A1 (en) * 2012-06-15 2013-12-19 Andy Wu Method and Apparatus for URL Handling
US8589911B1 (en) * 2012-07-26 2013-11-19 Google Inc. Intent fulfillment
US9727848B2 (en) * 2013-04-29 2017-08-08 Alex Bligh Field programmable hierarchical cloud billing system
US20140357357A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
US9524157B2 (en) * 2013-08-06 2016-12-20 Salesforce.Com, Inc. Providing an improved web user interface framework for building web applications
US9298923B2 (en) * 2013-09-04 2016-03-29 Cisco Technology, Inc. Software revocation infrastructure
US9430216B2 (en) * 2014-05-11 2016-08-30 Lumension Security, Inc. Self-contained executable for predetermined software updating
KR20160088629A (ko) * 2015-01-16 2016-07-26 삼성전자주식회사 광고 기반 애플리케이션 기능 실행 시스템 및 장치 그리고 그 방법
US9880824B2 (en) 2015-06-05 2018-01-30 Apple Inc. On demand resources
US10447812B2 (en) 2015-06-05 2019-10-15 Apple Inc. On demand resources
US10684839B2 (en) * 2016-06-15 2020-06-16 Red Hat Israel, Ltd. Plugin for software deployment
US10606450B2 (en) * 2016-06-24 2020-03-31 Accenture Global Solutions Limited Method and system for visual requirements and component reuse driven rapid application composition
US10083029B2 (en) * 2016-11-09 2018-09-25 Red Hat, Inc. Detect application defects by correlating contracts in application dependencies
US10447814B2 (en) 2017-02-02 2019-10-15 Microsoft Technology Licensing, Llc Joint servicing of software packages
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
US11200034B2 (en) * 2017-10-23 2021-12-14 Open Text Sa Ulc Universal application framework for streamlined frontend development of user interface applications
US11036522B2 (en) 2017-12-19 2021-06-15 Citrix Systems, Inc. Remote component loader
US11055087B2 (en) * 2018-03-16 2021-07-06 Google Llc Leveraging previously installed application elements to install an application
US10740085B2 (en) * 2018-11-30 2020-08-11 Target Brands, Inc. Webserver interface for deployment management tool
CN110633087B (zh) * 2019-08-13 2023-07-25 上海联影医疗科技股份有限公司 客户端安装方法、装置和存储介质
US11921859B2 (en) * 2021-11-04 2024-03-05 Dell Products L.P. System and method for managing device security during startup

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6110228A (en) * 1994-12-28 2000-08-29 International Business Machines Corporation Method and apparatus for software maintenance at remote nodes
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US6049671A (en) * 1996-04-18 2000-04-11 Microsoft Corporation Method for identifying and obtaining computer software from a network computer
US6006034A (en) * 1996-09-05 1999-12-21 Open Software Associates, Ltd. Systems and methods for automatic application version upgrading and maintenance
US5960204A (en) * 1996-10-28 1999-09-28 J.D. Edwards World Source Company System and method for installing applications on a computer on an as needed basis
GB9623298D0 (en) * 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
US6151708A (en) * 1997-12-19 2000-11-21 Microsoft Corporation Determining program update availability via set intersection over a sub-optical pathway
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6154878A (en) * 1998-07-21 2000-11-28 Hewlett-Packard Company System and method for on-line replacement of software
US6282711B1 (en) * 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
CN1296220A (zh) * 1999-11-01 2001-05-23 城市集团发展中心有限公司 安装和/或升级自助金融交易终端的软件的方法和系统
US6807559B1 (en) * 2000-04-06 2004-10-19 Attachmate Corporation System and method for applet management
EP1168163A1 (en) * 2000-06-19 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Process for installing a software package in a client computer
WO2002051063A1 (en) * 2000-12-21 2002-06-27 Digimarc Corporation Methods, apparatus and programs for generating and utilizing content signatures
IES20010015A2 (en) * 2001-01-09 2002-04-17 Menlo Park Res Teoranta Content management and distribution system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100464299C (zh) * 2006-08-08 2009-02-25 北京飞天诚信科技有限公司 一种计算机软件更新的方法
CN102426530A (zh) * 2010-10-20 2012-04-25 微软公司 使用高特权过程远程安装软件
CN102426530B (zh) * 2010-10-20 2015-10-21 微软技术许可有限责任公司 使用高特权过程远程安装软件
CN102360297A (zh) * 2011-06-30 2012-02-22 四川长虹电器股份有限公司 在线应用加载的方法
CN102360297B (zh) * 2011-06-30 2013-09-25 四川长虹电器股份有限公司 在线应用加载的方法
CN104375850A (zh) * 2013-08-15 2015-02-25 鸿富锦精密工业(深圳)有限公司 软件程序更新系统及方法
WO2016095489A1 (zh) * 2014-12-18 2016-06-23 中兴通讯股份有限公司 一种可执行模块的提供、加载方法、终端、存储介质

Also Published As

Publication number Publication date
US20040003390A1 (en) 2004-01-01
JP2004038962A (ja) 2004-02-05
CN100365569C (zh) 2008-01-30
EP1376345A2 (en) 2004-01-02
KR20040002739A (ko) 2004-01-07
EP1376345A3 (en) 2007-06-20
TW200402658A (en) 2004-02-16

Similar Documents

Publication Publication Date Title
CN100365569C (zh) 以完全无影响方式安装软件应用程序的系统和方法
US8438559B2 (en) Method and system for platform-agnostic software installation
JP4549715B2 (ja) ネットワーク化された周辺デバイスクライアントのための周辺デバイスドライバ維持管理スキーム
US6353926B1 (en) Software update notification
US7664834B2 (en) Distributed operating system management
US6892382B1 (en) Method and apparatus for implementing deployment descriptors in an enterprise environment
US7703083B2 (en) Persisting and resolving application assembly binds
US8225292B2 (en) Method and system for validating a knowledge package
US7243346B1 (en) Customized library management system
US6301710B1 (en) System and method for creating a substitute registry when automatically installing an update program
US8352915B2 (en) Organization of application state and configuration settings
US6408434B1 (en) System and method for using a substitute directory to automatically install an update program
US20110138374A1 (en) Downtime reduction for enterprise manager patching
US20020174422A1 (en) Software distribution system
US20100281458A1 (en) Application modification framework
US20010029605A1 (en) Software package management
US20070261049A1 (en) Techniques to perform gradual upgrades
US20070143379A1 (en) Metadata driven deployment of applications
US20090265586A1 (en) Method and system for installing software deliverables
CN1455348A (zh) 在网络化的资源上进行源文件和包的增量复制
CN1578943A (zh) 用于应用配置的智能目录的方法和设备
US20040194064A1 (en) Generic test harness
US8595718B1 (en) Method and system for generating a knowledge package
EP1050813A2 (en) Method and apparatus for implementing deployment descriptions in an enterprise environment
US7389515B1 (en) Application deflation system and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080130

Termination date: 20150625

EXPY Termination of patent right or utility model