CN101410800B - 用于软件发布服务的系统和方法 - Google Patents
用于软件发布服务的系统和方法 Download PDFInfo
- Publication number
- CN101410800B CN101410800B CN2004800013237A CN200480001323A CN101410800B CN 101410800 B CN101410800 B CN 101410800B CN 2004800013237 A CN2004800013237 A CN 2004800013237A CN 200480001323 A CN200480001323 A CN 200480001323A CN 101410800 B CN101410800 B CN 101410800B
- Authority
- CN
- China
- Prior art keywords
- software upgrading
- server
- client
- software
- request
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Abstract
本发明针对一种用于管理软件更新的系统和方法。更明确地说,本发明针对一种系统和方法,用于促进软件更新的选择和实现,同时,使选择和实现这些软件更新所要求的带宽和处理资源最小化。根据本发明的一个方面,软件更新服务控制对服务器上所存储的软件更新的访问。根据另一个方面,该软件更新服务与客户机同步,以识别可应用的更新。
Description
发明领域
本发明涉及软件和计算机网络,尤其涉及管理和传递软件更新的系统和方法。
发明背景
市场上最常见的软件产品要经受连续的修订过程,以修补或升级特征和/或功能。软件产品或组件的每一次修订可能需要添加新的文件和/或用更加新版本的文件替换现有的文件。一旦销售商隔离了软件产品问题并创建了该问题的解决方案,他可能希望将该修补放入更新中,并令更新对顾客广泛地可用。软件销售商具有尽可能快和无故障地向顾客分发软件更新的商业动机。
因特网为顾客提供了一种获得软件产品的最近更新的重要渠道。因特网使用率的蓬勃发展造成了顾客对软件产品和更新在线提供用于下载的常见期望。促进因特网的使用来分发更新也是软件销售商所感兴趣的,因为它减少了他们的成本,并允许顾客在修补可用于下载后立即可获得所确定问题的修补。因特网上的销售商站点可被设计成令发现和查找应用程序的更新文件是非常简单的。文件下载的技术方面大多数已从用户的观点中消失,并且它现在通常由操作系统来处理。
在常规的方法中,软件销售商将软件更新构造为“包”用于下载。包通常是自提取的可执行文件,它具有设置程序,并且产品的更新文件的每一个被嵌入并被压缩以使包更小。包的大小通常是每一改变的文件的压缩后大小的总和,加上提取代码本身的大小。在执行时,包将所包含的每一文件提取到一临时位置,然后开始设置程序以将每一文件安装到系统目录中一正确的位置。以压缩形式发货的文件在它们被安装时被解压。同一位置中名字相同的任一现有文件将简单地被替换文件所覆盖。
即使因特网令软件更新的广泛和快速分发成为可能,然而网络传输的有限带宽导致了问题。常见软件应用程序的绝对大小导致了更新的下载大小变得不合理的大。通常,用于产品的各种问题的多个修补将被组合成一个更新。如果销售商以常规的基础更新软件产品,则更新包的下载大小将继续增长,这是因为销售商无法在假设用户已经具有来自较早更新的那些文件的假设上省略这些文件。由于更新包组合了若干的完整文件,即使文件被压缩,它也可能相当大。有时,即使在最快的调制解调器连接上,下载的带宽效率也被降低。
常规下载过程的耗时方面当然是不合需要的。在某些情况下,顾客在下载这些文件的过程中支付了长距离或连接时间的费用。连接时间的任何减少将减少这些顾客的直接金钱成本。销售商通常也具有关于他们所提供的下载大小的可辨识成本,因此减小尺寸也可给予他们直接的金钱收益。减小下载的尺寸将增加他们的可用网络带宽,从而允许他们用现有的网络服务器设备来服务更多的顾客。
下载大的更新所花费的长时间也令下载过程变得更易受各种网络连接问题的攻击。对于为什么因特网话路可能会被过早地断开连接有多个原因,包括电话线噪声、呼叫等待信号以及无意的命令。某些因特网服务供应商实施了连接时间限制,限制了用户可以在单个话路中在线的时间量。如果当网络连接被切断时用户正在下载大文件,则他或她可能必须从头开始。最常见的操作系统和文件传输协议不允许文件传输的再继续,因此任何中间的进度将会丢失,并且传输必须重新开始。失败的几率如此之大,以致于许多用户发现在线获取更新几乎是不可能的。如果更新包的尺寸太大,则用户可能永远也无法完整地下载它。
减小软件更新的尺寸并提高带宽效率的一种尝试涉及增量补丁,或二进制补丁的使用。本领域的技术人员可以理解,增量补丁对应于当由计算装置执行时修改现有文件的专用软件代码。由于增量补丁包括专用软件代码,因此对文件的每一唯一版本需要唯一的增量补丁。当应用于软件更新时,软件更新服务可发送较小尺寸的更新增量补丁,而非发送完整的更新文件。已更新的增量补丁然后用于将现有文件修改成已更新的文件。
尽管更新增量补丁可潜在地减少更新文件所需的数据量,然而现有的增量打补丁方法在存在大量的文件版本的情况下管理可适用的增量文件的选择时是不够的。由于对文件的每一版本需要唯一的增量补丁,因此典型的软件更新系统通常会要求上百(如果不是上千)个对应于文件的每一唯一版本的唯一增量补丁。在一种方法中,支持增量打补丁的某些更新服务将所有可能的增量补丁发送到客户机计算装置。然而,这一方法通常在可能更新增量补丁的数量增加时也增加了实现软件更新所需的数据量。因此,潜在可适用的增量补丁的数量可迅速增长为与完整的更新文件相同的大小。在另一种方法中,网络化更新软件服务扫描客户机机器以选择对每一客户机机器可应用哪一增量补丁。尽管这减少了所发送的增量补丁信息量,然而它需要软件更新服务上的附加逻辑来扫描客户机机器并选择可适用的增量补丁。附加逻辑的使用增加了必须由服务提供的系统资源。此外,该方法通常阻止如通常由传统的web服务器所实现的网络高速缓存的使用。
除上述缺点之外,现有的系统无法传送某些类型的软件更新,如硬件驱动程序。如本领域中所已知的,专用软件更新,如应用于硬件驱动程序的软件更新,难以在大规模分发的基础上提供给用户,因为大多数专用软件更新仅在具有特殊硬件的客户计算机上起作用。例如,在大多数情况下,如果客户计算机获得了不兼容的硬件驱动程序升级,则该驱动程序升级的安装会导致致命的错误,或甚至会阻止计算机运行。
如可以从上述内容容易地理解的,需要一种具有服务器和多个客户机之间的软件更新的改进通信的系统和方法。另外,对具有允许更新服务在传送专用更新时以特定类型的客户机为目标的改进机制的软件更新系统和方法有需求。
发明概述
本发明针对一种用于管理软件更新的系统和方法。更明确地说,本发明针对一种系统和方法,用于促进软件更新的选择和实现,同时将选择和实现这些软件更新所要求的带宽和处理资源最小化。根据本发明的一个方面,软件更新服务控制对服务器上所存储的软件更新的访问。根据另一个方面,软件更新服务与客户机同步,以识别可应用的更新。
根据本发明的一个方面,提供了一种方法,用于在分布式处理系统中的客户机计算设备进程与服务器进程之间进行通信。根据该方法,客户机进程发出同步请求。如果客户机计算设备存储被安装的软件更新,则该同步请求包括该被安装的软件更新的标识符。如果该同步请求包括至少一个软件更新的标识符,则服务器进程接收该同步请求,并选择额外的软件更新。该额外的软件更新的选择取决于该额外的软件更新中所定义的先决条件的履行。该先决条件要求该同步请求包括至少一个特定软件更新的标识符。如果服务器进程确定该同步请求不包括至少一个软件更新的标识符,那么,它选择具有作为先决条件的空值的第一级软件更新。服务器进程发出该被选择的软件更新的指令部分。如果客户机计算设备包含履行被存储在被选择的软件更新中的适用性规则的条件的至少一个部分,那么,客户机进程接收被选择的软件更新的指令部分,并将被选择的软件更新的指令部分存储在客户机计算设备中,作为被安装的软件更新。
根据本发明的另一个方面,提供了一种方法,用于在分布式处理系统中的客户机计算设备进程与服务器进程之间进行通信。根据该方法,客户机进程发出授权请求。该授权请求包含与目标组相关联的客户机授权模块的标识符。如果服务器进程检测到与该目标组相关联的服务器软件模块的存在,那么,服务器进程接收该授权请求,并发出标识该目标组的服务器cookie。客户机进程接收标识该目标组的服务器cookie,并发出对至少一个软件更新的更新请求——其中,该请求包含服务器cookie。如果该软件更新与在服务器cookie中标识的目标组相关联,那么,服务器进程接收该更新请求,并发出软件更新。如果该软件更新与在服务器cookie中标识的目标组相关联,则客户机进程接收该软件更新。
根据本发明的另一个方面,提供了一种用于传递和管理软件更新的系统。该系统包括存储多个软件更新的第一数据库。被存储在该数据库中的单独的软件更新可以包括包含定义至少一个条件(包括空值)的适用性规则的指令数据字段。该指令部分包含一组先决条件(包括空值),这些先决条件标识安装该单独的软件更新所要求的一个或多个软件更新。被存储在该数据库中的单独的软件更新也可以包括包含文本数据的本地化数据字段,该文本数据描述与该单独的软件更新有关的通用信息。此外,被存储在该数据库中的单独的软件更新可以包括数据部分,该数据部分标识与该单独的软件更新相关联的至少一个数据流文件。
该系统也可以包括用于授权对第一数据库中所存储的软件更新的访问的授权服务器。如果客户机计算设备包含指出该客户机计算设备与目标组相关联的授权模块,那么,授权服务器发出用于允许客户机计算设备访问该单独的软件更新的服务器cookie。该服务器cookie包含该目标组的标识符。此外,该服务器cookie被传递给客户机计算设备,用于存储服务器cookie。
该系统还可以包括用于将更新提供给客户机计算设备的元数据服务器。如果软件更新与目标组相关联,则该软件更新被传递给客户机计算设备——其中,元数据服务器在通信上耦合到所述第一数据库。元数据服务器可以获得同步请求。如果客户机计算设备存储被安装的软件更新,则同步请求包括被安装的软件更新的标识符。该同步请求包括服务器cookie。如果同步请求包括至少一个被安装的软件更新的标识符,那么,元数据服务器也可以选择额外的软件更新,用于传递给客户机计算设备。额外的软件更新的选择取决于额外的软件更新中所定义的先决条件的履行。该先决条件要求同步请求包括至少一个被安装的软件更新的标识符。额外的软件更新与服务器cookie中所标识的目标组相关联。如果同步请求不包括至少一个被安装的软件更新的标识符,那么,元数据服务器也选择第一级软件更新,用于传递给客户机计算设备。这些第一级软件更新不包括先决条件。元数据服务器可以将被选择的软件更新的指令部分传递给客户机计算设备,用于存储;并且获得对与被选择的软件更新相关联的本地化数据的请求。另外,元数据服务器可以将与被选择的软件更新相关联的本地化数据传递给客户机计算设备。该本地化数据允许客户机计算设备生成对被选择的软件更新的数据部分的接收的下载请求。
该系统还可以包括通信上耦合到第一数据库的下载服务器。该下载服务器可以从客户机计算设备获得下载请求。该下载请求标识被选择的软件更新的数据部分。下载服务器可以将被选择的软件更新的数据部分传递给客户机计算设备。
根据本发明的另一个方面,提供了一种用于更新客户机计算设备上的数据的系统。该系统包括存储多个增量补丁的第一数据库。该系统也包括通信上耦合到所述第一数据库和客户机计算设备的服务器计算机。该服务器可以获得对用于更新安装在客户机计算设备上的一个或多个文件的一个或多个可用软件更新、标识用于更新被安装的文件的至少一个版本的多个可用增量补丁的自提取文件、以及安装在客户机计算设备上的这一个或多个文件的详细目录的选择。服务器也可以选择一个或多个可应用的增量补丁,来实现这些被选择的软件更新。这一个或多个可应用的补丁的选择对应于标识多个可用增量补丁的自提取文件到被安装在客户机计算设备上的一个或多个文件的详细目录的映射。服务器还可以发送对一个或多个被选择的增量补丁的请求。
根据本发明的另一个方面,提供了一种用于将软件更新传递给客户机计算设备的系统。该系统包括存储多个服务器授权模块的第一组件。该单独的服务器授权模块标识目标组。该系统还包括通信上耦合到第一组件的服务器计算机。服务器可以从客户机计算设备获得授权请求。该授权请求包含存储在客户机计算设备上的客户授权模块的标识符。如果客户机授权模块指出该客户机计算设备与目标组相关联,那么服务器可以进一步确定客户机计算设备是否与目标组相关联。如果客户机计算设备与目标组相关联,那么服务器可以进一步将服务器cookie从软件更新服务传递给客户机计算设备。服务器cookie标识该目标组。服务器也可以获得对存储在软件更新服务上的至少一个软件更新的请求——其中,该请求包含服务器cookie。响应于获得该请求,服务器可以确定软件更新是否与服务器cookie中所标识的目标组相关联。此外,如果软件更新与服务器cookie中所标识的目标组相关联,那么,服务器可以将软件更新从软件更新服务传递给客户机计算设备。
根据本发明的另一个方面,提供了一种其上存储单独的软件更新的数据结构的计算机可读介质。该计算机可读介质包括指令数据字段,该指令数据字段包含定义至少一个条件(包括空值)的适用性规则。该指令部分包含一组先决条件(包括空值),这些先决条件标识安装单独的软件更新所要求的一个或多个软件更新。该计算机可读介质也可以包括包含文本数据的本地化数据字段,该文本数据描述与单独的软件更新有关的通用信息。该计算机可读介质还可以包括数据部分,该数据部分标识与单独的软件更新相关联的至少一个数据流文件。
附图的简要描述
当结合附图阅读以下详细描述,可以更好地理解并更容易地明白本发明的上述方面以及许多附加的优点,附图中:
图1是依照本发明的软件更新系统的框图,包括客户机计算机以及提供更新软件的更新服务;
图2是图1的软件更新系统的框图,它依照本发明示出了向更新服务认证客户机计算装置;
图3是图1的软件更新系统的框图,它依照本发明示出了客户机计算装置和更新服务之间的可用更新的同步;
图4是图1的软件更新系统的框图,它依照本发明示出了软件更新信息从更新服务到客户机计算装置的发送;
图5是图1的软件更新系统的框图,它依照本发明示出了客户机计算装置对更新信息的处理和选择;
图6是图1的软件更新系统的框图,它依照本发明示出了客户机计算装置对增量补丁的合并和对更新文件的安装;
图7是依照本发明的软件更新例程的流程图,它示出了由客户机计算装置和更新服务实现的用于识别可用于安装在客户机计算装置上的软件更新;
图8是依照本发明提供对储存在更新服务上的更新的选择性访问的授权例程的协议图;
图9所示是依照本发明的授权例程的一组示例软件更新的框图;
图10是依照本发明将选择的一组软件更新从软件更新服务传递到客户机计算装置的同步例程的协议图;
图11所示是依照本发明用于显示对各个客户机计算装置可用的软件更新列表的图形用户界面的示例性部分的框图;
图12A和12B所示是依照本发明由客户机计算装置110实现以检索和安装请求的软件的软件更新处理子例程1200;以及
图13所示是依照本发明由客户机计算装置实现的用于更新基线安装组件的子例程的流程图。
具体实施方式
一般而言,本发明针对的是管理软件更新的系统和方法。更具体地,本发明针对的是便于软件更新的选择和实现,同时最小化选择和实现软件更新所需的带宽和处理资源的系统和方法。依照本发明,软件更新可对应于用于特定软件应用程序或操作系统的更新。此外,软件更新可包括软件驱动程序或对固件的更新,如系统BIOS。依照本发明的一个方面,提供了一种处理软件更新的系统和组件体系结构。依照本发明的另一方面,提供了一种便于向更新服务授权和同步客户机机器的更新协议和接口。依照本发明的又一方面,提供了一种适用增量补丁更新安装组件和各种已安装文件的方法。然而,本领域的技术人员可以理解,本申请中也可提供本发明的其它方面。此外,相关领域的技术人员可以理解,每一所标识的方面可被个别或作为公共的发明性方面的一部分来考虑。
图1的软件更新系统100所示是依照本发明的软件更新系统100的框图。一般而言,软件更新系统100可包括一个或多个客户机计算装置110、更新服务120以及外部更新提供者130。一般而言,更新服务120储存并管理传递到并安装在客户机计算装置110上的软件更新的分发。软件更新可由更新服务120或任意数量的外部更新提供者130来提供。
客户机计算装置110、更新服务120和外部更新提供者130通过网络101电子地通信。网络可以是局域网(LAN)或更大的网络,如广域网(WAN)或因特网。通过使用一般已知的软件,软件更新系统100可被配置成在客户机计算装置110和更新服务120的服务器121、122、123和124之间交换文档、命令和其它已知类型的信息。本领域和其它领域的技术人员可以理解,图1所示的软件更新系统100是用于实现本发明的一个合适的系统的简化示例,本发明并非局限于此示例。
如后文更详细地描述的,更新服务120的一个实施例包括若干服务器。如图1所示,更新服务120包括更新服务器121,用于管理更新服务120的全过程并协调更新服务120的服务器121、122、123和124的处理。授权服务器122生成客户机请求的授权cookie,这些授权cookie进而用于生成允许客户机计算机访问更新服务120提供的更新的服务器cookie。元数据服务器123提供关于更新服务120提供的更新的一般信息。元数据服务器123允许本发明的系统识别用于特定类型的客户机计算机或特定的客户机计算机组的特定更新。下载服务器124提供了用于传送与由更新服务120提供的软件更新相关联的数据文件的一个或多个软件组件。
外部更新提供者130可包括分发软件更新的一个或多个服务器。外部更新提供者130可与提供软件、软件更新或要分发到客户机计算机组的其它数据的实体相关联。例如,外部更新服务器130可以与期望使用更新服务120来分发一个或多个软件应用程序的更新的第三方软件开发者相关联。在另一示例中,外部更新提供者130可以与软件更新系统120相关联。
客户机计算装置110可以是储存并执行软件应用程序114的任何计算装置。客户机计算装置110可以从多个不同的计算机产品的任一个形成,包括但不限于,个人计算机(PC)、个人数字助理(PDA)、移动电话、双向寻呼机等等。如本领域或其它领域的普通技术人员所理解的,客户机计算装置110的体系结构可以采用任一合适的形式。例如,客户机计算装置110可包括用于提供与网络101的通信的网络接口。网络接口可以被配置成用于任何有线或无线网络连接,并用于任一合适的通信协议,如TCP/IP协议。另外客户机计算装置110可包括处理单元、显示器和存储器单元。存储器单元可储存操作客户机计算装置110所必须的程序代码,如操作系统116。另外,存储器单元储存用于控制和执行本发明的过程的更新管理组件112。
软件更新系统100储存软件程序,当被执行时,它们实现本发明。当被执行时,软件更新系统100储存、管理并选择性地传递软件更新。如下文更完整地描述的,除其它益处之外,本发明提供了用于定义和选择有资格接收软件更新的客户机计算装置的目标组的机制。本发明也提供了用于下载与软件更新相关联的数据文件的改进的机制。
为说明本发明的目的,提供了本发明的工作示例的详细描述。在描述该工作示例时,参考软件更新,它指的是软件应用程序的特定升级,例如,将媒体播放器版本6.0升级到媒体播放器版本7.0。如本领域的普通技术人员所理解的,这一软件更新可包括与软件更新相关联的多个数据文件的传递和安装。由此,为说明本发明的目的,在软件更新和包含软件更新的个别数据文件之间作出区分。
现在参考图2-6,描述更新客户机计算装置110上的一个或多个文件的软件更新系统100的组件之间的说明性交互。参考图2,软件更新服务通过由一个或多个外部更新提供者130发送软件更新信息来启动。如上所述,外部更新提供者130可以与软件更新系统100相关联。或者,软件更新信息可以由第三方外部更新提供者130发送。在本发明的一个说明性实施例中,软件更新信息可包括用于更新文件的软件代码、用于替换文件的软件代码、用于确定软件更新的可适用性的各种规则、和/或描述软件更新的显示信息。软件更新信息的发送可在任一时刻完成,并且不必要与其它所示的软件更新组件交互同时发生。
在从外部更新提供者130接收了软件更新信息之后,更新服务120生成一段或多段数据,以便于发送更新信息。数据可包括对应于用于更新文件的不同版本的软件增量补丁集的补丁存储文件。数据也可包括对应于将特定的文件版本映射到补丁存储文件中找到的对应增量的索引的补丁存储清单。数据还可包括对应于更新代理将用于请求和安装特定软件更新数据的信息的自提取文件,如后文更详细地描述的。相关领域的技术人员可以理解,补丁存储文件、补丁存储清单和自提取文件的生成可以在任一时刻完成,并不必要与其它所示的组件交互同时发生。
为启动对客户机的软件更新信息发送,客户机计算装置110启动对更新服务120的认证请求。在本发明的一个说明性实施例中,认证请求对应于客户机计算装置110和更新服务120之间的更新协议交互,这将在后文更详细描述。在完成了认证之后,更新服务120将认证cookie发送到客户机计算装置120。现在参考图3,已认证的客户机计算装置120然后启动与更新服务器120的可用更新的同步。在本发明的一个说明性实施例中,同步请求也对应于客户机计算装置110和更新服务120之间的更新协议交互,这将在后文更详细地描述。在完成了同步之后,客户机计算装置110接收所有可适用的软件更新的信息和描述更新的信息。然而,在本发明的一个说明性实施例中,没有下载任何启动更新的软件代码。
继续参考图3,在更新过程期间的某一时刻,接收到要安装的更新的选择。在本发明的一个说明性实施例中,可向用户呈现在同步期间接收到的软件更新信息,并要求选择一个适当的更新。或者,客户机计算装置110可以配备自动选择所有可适用的软件更新的方式。此外,客户机计算装置110也可具有允许它自动选择可用软件更新的一个子集的某些规则。再者,用户可通过诸如经由互联网网页与更新服务120通信来启动更新的选择。
现在参考图4,如果尚不存在更新代理,则更新管理组件112例示客户机计算装置110上的更新代理118。更新代理118然后请求诸如自提取文件等软件更新信息包的发送。更新代理118接收自提取文件并执行对安装程序的任何更新,如后文更详细地描述的。此外,更新代理118可向更新服务120请求任何丢失或被破坏的信息。
现在参考图5,一旦更新代理118接收到了软件更新信息包,更新代理118执行安装在客户机计算装置110上的文件的清查。基于清查和软件更新信息包的比较,更新代理118确定需要哪一增量补丁或其它更新信息来完成所选择的更新。更新代理118然后发送对特定增量更新的请求。在本发明的一个实施例中,对软件更新的请求可对应于通过直接网络连接发送的直接请求,被称为手动更新。在本发明的另一实施例中,对软件更新的请求可以是不需要明显的用户行动而发送的后台请求。这一实施例被称为自动更新。
在本发明的一个说明性实施例中,如果软件更新对应于增量补丁,则更新代理118向更新服务120发送标识由包存储清单标识的特定增量补丁的请求。或者,在增量补丁不可用或者若干增量补丁失败的情况下,更新代理118可启动一后退过程。后退过程可包括对来自包存储文件的整个更新文件的完整副本的发送的请求。后退过程也可包括对自主式包内的整个更新文件的完整副本的发送的请求。
在本发明的一个说明性实施例中,更新服务120的下载服务器124可直接处理来自更新代理118的软件更新请求。或者,请求也可由任意数量的附加外部下载服务器来处理,如从更新服务120接收所请求的更新增量补丁的传统web服务器。例如,企业可使用内部服务器来更新客户机机器。另外,请求可由外部下载服务器来处理,其中,在处理先前的请求时高速缓存某些或所有更新增量补丁。另外,在此实施例中,下载可以被分发到能够服务超文本传输协议(“HTTP”)数据请求的若干另外的下载服务器。
参考图6,一旦接收到了软件更新信息,更新代理118将增量补丁与已安装文件合并,以生成更新文件。另外,更新代理118可确认合并程序是否成功地更新了适当的文件。如上所述,如果增量补丁不能被确认,则更新代理118可再次请求增量补丁或在若干次失败之后请求整个更新文件。一旦更新代理118获取了已被确认和更新文件,该文件被安装在客户机计算装置110上。
图7依照本发明的软件更新处理例程700的流程图,它示出了客户机计算装置110和软件更新服务120之间的交互。在框702,软件更新服务120授予对客户机计算机110的访问权限。在本发明的一个说明性实施例中,授予对客户机计算机的访问权限的过程可包括生成允许访问与特定的计算机组相关联的软件更新的服务器签发的cookie。授权过程的更详细解释将参考图8来描述。
在框704,客户机计算机110和软件更新服务120同步更新信息。在本发明的一个说明性实施例中,软件更新服务120向客户机计算装置110发送描述特定软件更新的元数据。元数据包含描述可用软件更新的信息,以允许用户选择一个或多个更新来安装。同步过程的更详细描述将在下文参考图9和10来描述。在框706,客户机计算装置110获取对要下载的可适用更新的选择。在本发明的一个说明性实施例中,对可适用更新的选择可对应于适用多个唯一用户界面以便于用户选择。用户界面的选择将在下文参考图11来更详细描述。
在框708,客户机计算装置110处理对可适用软件更新的用户选择,并与软件更新服务120接口以请求特定的更新信息。在本发明的一个说明性实施例中,客户机计算装置110选择并请求一个或多个可适用更新增量补丁。客户机计算装置110上的更新代理118然后可处理所请求的数据以实现所选择的软件更新。在框710,例程700终止。
参考图8,现在描述授予对客户机计算装置110的访问权限并对应于框702(图7)的协议图800。在本发明的一个说明性实施例中,软件更新服务120使用可扩充定目标机制,以控制客户机计算机110对更新和其它软件的访问。软件更新服务120结合了将特定软件更新与客户机计算装置110的一个或多个目标组相关联的机制。例如,软件更新服务120可限制特定的硬件驱动程序更新对具有特定硬件设备的特定品牌的客户机计算装置110的访问。在这一示例中,软件更新服务120可定义具有特定品牌名和特定硬件设备的客户机计算装置110的目标组,并限制特定软件下载向该目标组的发送。
在本发明的一个说明性实施例中,可扩充定目标机制可通过使用定义客户机计算装置到一个或多个目标组的成员资格的软件组件(“授权插件”)来促进。授权插件在客户机计算装置110上的存在定义了客户机计算装置是否属于授权插件的特定目标组。例如,目标组可包括具有特定软件应用程序的有效产品标识(“PID”)号的所有计算机。在这一示例中,如下文参考图8更详细地描述的,授权插件826可安装在客户机中,以从客户机计算装置的存储器模块中读取PID,并将所获取的PID传递到对应的PID服务器插件829。对应的PID插件此处也被称为PID确认程序829,使用了一种或多种方法来确定接收到的PID是否有效。一旦确定了储存在客户机计算装置110上的PID有效,则服务器生成指示客户机计算装置110是具有有效PID的目标组的成员的服务器cookie。在另一示例中,目标组可包括被指定为β测试(测试第二版)计算机的客户机计算装置。
在本发明的一个说明性实施例中,软件更新服务120的授权服务器122包含多个服务器授权插件,它们定义了授权服务器将识别的一组客户机计算装置目标组。每一服务器授权插件包含与储存在客户机计算装置110上的对应客户机授权插件传递数据的组件。以类似的方式,每一客户机计算装置110包括标识客户机所属的目标组的一个或多个授权插件。在本发明的一个说明性实施例中,客户机授权插件可在安装或升级软件应用程序期间,如安装或升级操作系统期间,被安装在每一客户机计算装置中。另外,服务器授权插件可以由期望控制对软件更新的访问的管理员动态地安装或移除。储存在客户机计算装置110和授权服务器122上的授权插件可以是实际的软件插件,或者授权插件可以被硬编码(hard code)成动态链接库。
如图8所示,授权服务器122包含三个示例服务器授权插件:(1)第一服务器授权插件828,它定义了包括所有计算机的目标组(后文称为“所有计算机目标组”);(2)第二服务器授权插件829,它定义了包括具有有效PID的计算机的目标组(后文称为“PID目标组”);以及(3)第三服务器授权插件830,它定义了包括β测试计算机的目标组(后文称为“β测试目标组”)。同样如图8所示,客户机计算装置110包含两个客户机授权插件:(1)第一客户机授权插件825,它指示客户机计算装置110是“所有计算机目标组”的成员;以及(2)第二客户机授权插件826,它指示客户机装置110是“PID目标组”的成员。在此示例中,客户机计算装置110不包含指示它是“β测试目标组”的成员的授权插件。如本领域的普通技术人员所理解的,每一客户机授权插件825和826可被配置成执行客户机计算装置110上的一个或多个功能,以协助确认过程。例如,第二客户机授权插件826可被配置成检查客户机计算装置110的存储器,以验证或获得已安装软件应用程序的PID。
如图8所示,授权子例程702在客户机计算装置110将配置请求803传递到授权服务器122时开始。在本发明的一个说明性实施例中,配置请求803是从被配置成获取描述储存在授权服务器122上的授权插件的信息的任一合适的软件组件形成的。如本领域的技术人员所理解的,配置请求803可使用一种被称为“GetConfig(获取配置)”的已知方法。响应于接收配置请求803,授权服务器122传递配置响应804,它包括标识储存在授权服务器122上的所有授权插件的信息。在一个实施例中,配置响应804包括串数组,它标识并描述了储存在授权服务器122上的所有授权插件。在本示例中,配置响应804包括标识第一服务器授权插件828、第二服务器授权插件829以及第三服务器授权插件830的信息。
在框805,客户机计算装置110响应于接收配置响应804生成一个或多个授权cookie。在框805的处理中,客户机计算装置110对每一对匹配的客户机和服务器授权插件生成授权cookie。由此,在本示例中,第一客户机授权插件825生成与“所有计算机目标组”相关联的第一授权cookie,因为第一客户机授权插件825和第一服务器授权插件828都与“所有计算机目标组”相关联。另外,第二客户机授权插件826生成与“PID目标组”相关联的第二授权cookie,因为第二客户机授权插件826和第二服务器授权插件829都与“PID目标组”相关联。未生成第三授权cookie,因为客户机计算装置110不具有指示它是“β测试目标组”的成员的授权插件。
如本领域的技术人员也可以理解的,框805的过程的一个实现可包括对本领域中称为“GetAuthCookie(获取授权cookie)”的一般已知的软件方法的使用。也可以理解,每一授权cookie的生成可涉及额外的处理。例如,第二客户机授权插件826可以被配置成检查储存在客户机系统注册表中的信息,以检索PID并在授权cookie中包括该PID。在其它示例中,框805的过程可包括与其它计算机或装置通信的过程。例如,客户机授权插件可与诸如声卡、扫描仪、视频卡等设备通信,以获取设备的构造和模型。在其它非限制示例中,客户机授权插件可与诸如指纹读取器等安全设备通信,以获取描述用户的信息。
一般而言,客户机授权插件可从客户机计算装置110的任何组件或通信上耦合至客户机计算装置110的任何其它计算装置读取配置信息。在其它示例中,客户机授权插件可被配置成使用一个或多个公钥或私钥应用编程接口(API),以收集并加密来自客户机的信息,这些信息将由对应的服务器插件来确认。在这些示例中,PID确认器插件826使用私钥API来加密客户机的PID,以将经加密的PID传递到服务器以供解密和确认。在其它实施例中,其它客户机授权插件可使用诸如指纹读取器或语音打印等生物测定措施,以构造传递到服务器供确认的授权cookie。在又一示例中,客户机授权插件可调用web服务或任一其它服务以将授权凭证或任一其它类型的数据传递到授权服务器122。
在本发明的一个说明性实施例中,每一授权cookie包括标识相关联的目标组的串。例如,串可指示特定的授权cookie与“PID目标组”相关联。每一授权cookie也包括用于在客户机和服务器之间传递数据的数据段。例如,与“PID目标组”相关联的授权cookie可具有包含实际PID的数据段。如本领域的普通技术人员所理解的,数据段可包含以诸如字节数组等任一格式储存的任何类型的数据。例如,如果客户机和服务器上的插件需要公钥和私钥的传递,则这类数据可在一个或多个授权cookie的数据段中加密。
一旦客户机计算装置110对每一对对应的客户机和服务器授权插件生成了授权cookie,客户机计算装置将所生成的授权cookie传递到授权服务器122。如图8所示,客户机计算装置110在cookie请求806中传递授权cookie。cookie请求806包括用于传递框805的处理中生成的授权cookie的数组的任一合适的格式。这一部分授权方法702的一种实现可包括对本领域中被称为“GetCookie(获取cookie)”的一般已知的软件方法的使用。
在一个实施例中,cookie请求806也包括储存在客户机计算装置110的存储器中的其它授权服务器cookie。如可以从以下描述中更容易地理解的,客户机计算装置110的存储器可储存在授权例程700的先前的执行中创建的旧授权服务器cookie。通过在cookie请求806中提供储存的授权服务器cookie,客户机计算装置110能够维护其在授权子例程702的先前的执行中被授予的访问特权。在本示例中,由于没有授权服务器cookie储存在客户机中,因此cookie请求806包括与“所有计算机目标组”相关联的第一授权cookie以及与“PID目标组”相关联的第二授权cookie。
下一步,如框807中所示,响应于接收cookie请求806,授权服务器122生成服务器cookie。在一个实施例中,对于每一接收到的授权cookie,向适当的服务器授权插件作出调用以生成服务器cookie数据。每一服务器授权插件生成的服务器cookie数据包括接收到的授权cookie中标识的每一目标组的标识符。在本示例中,由于cookie请求806包括与“所有计算机目标组”相关联的第一授权cookie,以及与“PID目标组”相关联的第二授权cookie,因此授权服务器122生成包括这些相应目标组的标识符的服务器cookie数据。在授权服务器122上,如果在cookie请求806中接收到旧服务器cookie,则将服务器cookie数据与旧服务器cookie组合,以生成新服务器cookie。在一个实施例中,新服务器cookie通过使用诸如三重DES等公众可用的加密方法来加密。
在本发明的一个说明性实施例中,服务器cookie可包括标识一个或多个相关联的目标组的经加密的信息。另外,服务器coookie可包括过期数据,它以明文格式和加密格式两者储存。以明文格式储存的过期数据由客户机计算装置110用于监视服务器cookie的过期。以加密格式储存的过期数据由软件更新服务120用于确定客户机计算装置110是否被授权来接收与特定目标组相关联的更新。在一个实施例中,服务器cookie的过期数据应用于服务器cookie中标识的所有目标组。或者,或除应用于整个服务器cookie的过期时间之外,服务器cookie可包括多个过期数据,其每一个可应用于个别的目标组。如本领域的普通技术人员所理解的,每一服务器cookie可包括附加数据。例如,服务器cookie可被配置成储存客户机状态信息,如授权子例程702的最后执行的时间标记。
一旦被生成,授权服务器cookie 809从授权服务器122传递到客户机计算装置110。下一步,如框811所示,服务器cookie然后被储存在客户机计算装置110的存储器中。当客户机计算装置110确定服务器cookie的至少一个组件过期时,客户机计算装置可重新执行授权方法702来获取新的服务器cookie。如上所述,在授权方法702的每一次随后的执行中,客户机计算装置110可在cookie请求806中将其储存的服务器cookie传递到授权服务器122。在一个实施例中,客户机不必发送请求803,除非服务器通知客户机,服务器配置已改变,即,添加了新的授权插件。
依照本发明的另一方面,软件更新服务120可提供用于在元数据服务器123和客户机计算装置110之间同步更新信息的同步子例程。通过使用唯一的软件更新层次,同步子例程可有效地标识应用于特定客户机计算装置的特定更新。另外,通过使用授权子例程702中生成的服务器cookie,同步子例程可选择性地授予对与特定目标组相关联的更新的访问权限。
依照本发明的一个说明性实施例,每一软件更新包括三个部分1)指令部分;(2)本地化的数据部分;以及(3)数据部分。如本领域的普通技术人员所理解的,每一更新可具有上述部分的一个或多个。例如,更新可包含指令部分、本地化的数据部分和数据流部分。在另一示例中,更新可仅包含用于测试客户机计算装置的一个或多个条件的指令部分。软件更新的各个部分在下文更详细地描述。
一般而言,指令部分包含两个子部分:(1)定义要由客户机计算装置110测试的一个或多个条件的适用性规则;以及(2)标识个别更新的正确安装所需要的一个或多个更新的一组先决条件。如后文所描述的,适用性规则可定义与计算机相关的多个条件,这些条件的每一个可通过使用任何逻辑操作符与其它条件相关联。例如,指令部分可包括确定计算机是否安装了Windows的特定版本的适用性规则。同样如下所述,该组先决条件可标识要求先前已被安装的一个或多个更新。例如,如后文参考图9更详细地描述的,个别的更新可包含列出个别更新的正确安装所需要的其它更新的先决条件。在其它示例中,同样如图9所示,该组先决条件可包括对逻辑操作符的使用以定义更复杂的先决条件规则。
指令部分也包含指示是否由依赖于特定更新的其它更新的代码,如布尔标志。为说明的目的,如果没有依赖于特定更新的其它更新,则该更新被认为是LEAF更新。用于指示更新是否为LEAF的布尔标志是在当添加或移除相关更新时由元数据服务器123动态地更新的。
每一更新的本地化数据部分包括描述更新的通用信息。例如,本地化数据部分可包括描述更新的特征和益处的信息。本地化数据部分也可包括更新的安装过程的文本描述。另外,本地化数据部分可包括与更新有关的任何其它数据或信息。例如,本地化数据可指示更新是高优先级更新。在另一示例中,本地化数据可提供特殊的安装消息,如指示更新不能与其它软件更新一起安装的消息。本地化信息可以是允许向用户显示其包含的信息的格式。
每一更新的数据部分包括更新的一个或多个二进制数据流。在一个实施例中,每一更新的数据部分可以与一个或多个数据文件相关联,如可执行文件、文档、链接库等等。如下文更详细地描述的,每一更新可以与数据文件的组合相关联,其每一个促进了客户机使用的软件的实际升级、安装或修改。例如,更新的安装可以通过使用包括完成所选择的更新所需的所有信息的单个CAB文件来促进。或者,更新的安装可通过使用用于更新储存在客户机计算装置上的一个或多个文件的多个个别更新来促进。
在本发明的一个说明性实施例中,软件更新可以按允许软件更新的受控分发的分层结构来排列。一般而言,更新的层次定义了更新之间的关系,并特别地指示了哪些更新依赖于其它更新。为说明的目的,图9中提供并示出了一组示例性更新。如图所示,示例更新900的层次包括基础更新组901、第二更新组902以及第三更新组903。一般而言,基础更新集901中的每一更新不具有需要其它更新的安装的先决条件。然而,第六更新921包含需要第一更新911、第二更新912、第三更新913的安装的先决条件。第七更新922包含需要第四更新914的安装的先决条件。第八更新931包含需要第六更新921和第五更新915的先决条件。因此,第八更新931也需要第一更新911、第二更新912和第三更新913的安装。为说明本发明的目的,给定示例更新集900的所有更新都与“所有计算机目标组”和“PID目标组”相关联。
如图9所示,并且如后文更详细描述的,每一更新包含指定更新安装的条件的适用性规则。例如,第一更新911需要操作系统的英语版本的安装。第二更新912需要WindowsXP版本SP1的安装。在另一示例中,第六更新921需要被称为XP PATCH1的软件补丁的安装。因此,如果未满足适用性规则,则客户机计算装置110将不安装更新。
图9也示出了指示是否有依赖于特定更新的其它更新的指令部分段。该段被称为LEAF,它可以是指示软件更新是一系列相关更新的最后一个更新的布尔值形式。为说明本发明的目的,如果没有其它更新列出特定更新为先决条件,则该特定更新是LEAF更新。如图9所示,第七更新922和第八更新931是仅有的两个LEAF更新。
图10示出了依照本发明形成的同步子例程704(图7)的协议图。一般而言,同步子例程704选择性地在客户机计算装置110和诸如元数据服务器123等服务器之间传递某些更新的指令部分,以标识可应用于客户机计算装置110的更新。如图10所示,为启动更新,客户机计算装置110首先处理已安装的更新,并将同步请求1051传递到元数据服务器123,请求对客户机可用的一个或多个更新。响应于接收同步请求1051,元数据服务器123向客户机计算装置110返回多个更新。如可以从以下描述中更容易地理解的,客户机计算装置110在传递同步请求1051之前处理本地储存的数据。
客户机计算装置110处理每一接收到的更新的指令部分,以确定是否能满足适用性规则中定义的条件。如果满足了个别的更新中定义的条件,为说明同步子例程1050的目的,个别更新是“已安装”的,并且所安装的更新被保存在客户机更新高速缓存的第一组成部分中。另一方面,如果未满足个别更新中定义的条件,则该个别更新被认为“失败”,并且失败的更新被保存在客户机更新高速缓存的第二组成部分中。在同步子例程1050的这一描述中,如果更新被安装,则可假定满足了先决条件和适用性规则的条件。为描述该子例程的目的,更新的安装不必要意味着与更新相关联的数据文件实际上被安装到客户机计算装置110中。
在一个实施例中,客户机更新高速缓存的两个组成部分可用于归类所接收到的更新。第一组成部分用于储存已安装的、非LEAF更新;第二组成部分用于储存客户机接收的所有其它更新,即未安装的更新。更新高速缓存的第二组成部分也可包括所有LEAF更新的存储。如下文更详细地描述的,储存在更新高速缓存中的更新可以被传递到元数据服务器123并由其处理,以标识可用于在客户机计算装置110上的安装的其它相关更新。
现在回头参考图10,将描述同步请求的细节,被示出为项1051、1055和1060。如本领域的普通技术人员所理解的,同步请求可由多个不同装置、进程、应用程序、用户启动的命令之一来启动,以请求更新。同步请求可由请求更新列表的用户、由客户机代理启动的自动更新、以及向元数据服务器123或更新服务120请求信息的任何其它软件组件启动。在一个实施例中,同步请求包括授权服务器cookie,如从授权例程702生成的授权服务器cookie。服务器cookie的使用允许服务器确定客户机是否为一个或多个目标组的成员。
每一同步请求也可包括储存在客户机更新高速缓存中的每一更新的标识符。更具体地,如果一个或多个更新储存在更新高速缓存中,同步请求包括具有用于已安装、非LEAF更新的标识符的第一部分;以及具有用于诸如LEAF更新、已失败更新以及未安装的其它更新等所有其它更新的标识符的第二部分。更新标识符可以是任何格式,包括但不限于,整数数组。或者,如果没有更新储存在客户机更新高速缓存中,则同步请求不配备更新标识符。当同步请求设备配备更新标识符时,同步请求提供客户机计算装置110没有任何高速缓存的更新的指示。
如图10所示,第一同步请求1051从客户机计算装置110传递到元数据服务器123。在本示例中,如果这是方法的第一次执行,则客户机的更新高速缓存将不包含任何更新。由此,第一同步请求1051不包含用于高速缓存的更新的标识符。响应于接收同步请求,如框1052所示,元数据服务器123确定同步请求是否包含至少一个更新标识符。如果确定同步请求不包含更新标识符,则元数据服务器1123通过选择用于传递到客户机计算装置110第一级更新来响应。如上所述,第一级更新可包括没有标识其它更新的先决条件的任何更新。
或者,如果确定同步请求包含至少一个更新标识符,则元数据服务器123检查服务器的已储存更新的先决条件,以选择用于传送到客户机的额外更新。在一个实施例中,元数据服务器123选择已实现先决条件的更新。在检查先决条件时,服务器使用同步请求的第一部分的更新,它包括安装在客户机上的非LEAF更新的标识符。
除选择已实现先决条件的更新之外,服务器也使用同步请求的第二部分中标识的更新,以过滤所选择的更新。更具体地,同步请求的第二部分中标识的未安装更新、LEAF更新和已失败更新用于过滤一个或多个所选择的更新。本发明的这一特征允许本发明的系统和方法避免储存在元数据服务器123上的更新的多次发送。
返回到本示例,由于第一同步请求1051不包括更新标识符,则元数据服务器123选择更新901的基础级,以传递到客户机计算装置110。参考图9所示的示例更新集,基础集更新901包括标号为911、912、913、914和915的更新。
在框1052的处理中,元数据服务器123也检查包含在同步请求1051中的授权服务器cookie,以标识与客户机计算装置110相关联的目标组。元数据服务器123也检查在框1052的过程中选择的更新的目标组。框1052的处理然后过滤出不与接收到的授权服务器cookie中标识的目标组相关联的所有所选择的更新。在本示例中,由于所有所选择的更新911、912、913、914和915与PID和所有计算机目标组相关联,因此所有所选择的更新都被发送到客户机计算装置110。
元数据服务器123然后在同步响应1053中将所选择的更新传递到客户机计算装置110。一般而言,每一同步响应包括服务器120发送的每一更新的指令部分。由此,在本示例中,第一同步响应1053包括标号为911、912、913、914和915的更新的指令部分。在一个实施例中,每一同步响应不包括每一更新的本地化数据部分或数据部分。
下一步,如框1054中所示,客户机计算装置110处理每一接收到的更新的指令部分,以确定是否可满足适用性规则中定义的条件。再次参考图9,客户机计算装置110处理接收到的更新911-915的指令部分。为说明本发明的目的,在本示例中假定客户机计算装置110的操作系统是Windows版本XP SP1的英语安装。也假定客户机计算装置110是Dell PC,并运行32位的X86处理器。由此,在处理示例更新集的指令部分时,客户机计算装置110可确定将满足第一更新911中定义的条件,因为计算机包含英语OS。将满足第二更新912中定义的条件,因为操作系统是Windows版本XP SP1。将满足第三更新913中定义的条件,因为客户机计算装置运行X96处理器。将满足第五更新915中定义的条件,因为客户机计算装置110是Dell PC。结果,第一更新911、第二更新912、第三更新913和第五更新915都被保存在客户机更新高速缓存的第一组成部分中。将不满足第四更新914中定义的条件,因为客户机计算装置110不运行64位的X86处理器。由此,第四更新914被认为是已失败的更新,并保存在客户机更新高速缓存的第二组成部分中。
返回到图10,在框1054的处理中,客户机计算装置110也确定是否需要后续的同步请求。在一个实施例中,如果至少一个所接收到的更新指示它不是LEAF更新,则确定需要后续的同步请求。在本发明的示例中,确定需要随后的同步请求,因为所有接收到的更新都不是LEAF更新。由此,客户机计算装置110将后续的同步请求1055传递到元数据服务器123。
如上所述,同步请求包括储存在客户机更新高速缓存中的每一更新的标识符。由此,在本示例中,后续的同步请求1055包括指示客户机上安装了第一更新911、第二更新922、第三更新913和第五更新915的第一数据部分。另外,后续的同步请求1055包括指示客户机上未成功地安装第四更新911的第二数据部分。
响应于接收后续的同步请求1055,如上所述,元数据服务器123确定后续的同步请求1055是否包含至少一个更新标识符。如果确定后续的同步请求包含至少一个更新标识符,元数据服务器123检查所有储存的更新的先决条件,以选择用于传送到客户机的额外更新。
再次参考本示例,在框1056的处理中,元数据服务器123将选择第六更新921,因为满足了它的先决条件。更具体地,如图9所示,第六更新921被选中用于传递到客户机计算装置110,因为其需要第一更新911、第二更新912和第三更新913的安装的先决条件已被实现。第七更新922和第八更新931将不被选中用于传递到客户机,因为它们的先决条件未被实现。更具体地,同步请求1055不包含第四更新914的标识符,它是第七更新922的先决条件。另外,同步请求855不包含第六更新921的标识符,它是第八更新931的先决条件。
返回到图10,同步子例程1050通过在后续响应1057中将所选择的更新从元数据服务器123传递到客户机计算装置110来继续。再次参考本示例,后续响应1057将包括与第六更新921有关的信息,它在后续响应1057中被传递到客户机110。
在接收到后续响应1057之后,客户机计算装置110处理后续响应1057的指令部分。类似于框1054的过程,客户机计算装置110处理每一接收到的更新的指令部分,以确定是否满足适用性规则中定义的条件。在本示例中,如果假设在客户机计算装置中已安装了XP PATCH1,则第六更新921被认为是已安装的,并且更新被写入客户机计算装置110的更新高速缓存中。由于第六更新921不是LEAF更新,因此客户机计算装置110发送包括储存在客户机更新高速缓存的第一和第二组成部分中的所有更新的另一同步请求1060。同步请求1060也包括授权服务器cookie。
在本示例中,通过使用上述元数据服务器123的处理,同步请求1060在框1061被处理,其中,服务器选择第八更新931。第八更新931被选中,因为同步请求1060指示第五和第六更新915和921已安装在客户机计算装置110上。假设第八更新931与授权服务器cookie中标识的相同目标组相关联,则在另一响应1062中将第八更新931的指令部分传递到客户机计算装置110。然后在框1063以类似于框1054和1059的处理的方式处理第八更新931。由于响应1062所有所接收的更新都是LEAF更新,因此不将后续请求发送回元数据服务器123。
在客户机计算装置110处,在确定了所有接收到的更新都是LEAF更新之后,或者如果在响应1062中没有接收到任何更新,则同步子例程1050将驱动程序同步请求1064从客户机计算装置110传递到元数据服务器123。如本领域的普通技术人员所理解的,驱动程序同步请求1064可包括描述安装在客户机计算装置110上的所有硬件的信息以及描述已安装软件的信息。类似于先前的软件同步请求(1051、1055和1060),驱动程序同步请求1064可将已安装的更新传递到服务器。另外,当前在客户机上高速缓存的所有驱动程序更新(如果有的话)被传递到服务器。
响应于接收驱动程序同步请求1064,元数据服务器123通过发送应用于客户机计算装置110的尚未高速缓存到客户机上的所有驱动程序更新来响应。如果满足其先决条件和条件,则在响应1065中将驱动程序更新发送到客户机计算装置110。传递驱动程序更新的响应1065较佳地传递每一更新的指令部分。驱动程序更新然后被写入客户机计算装置的更新高速缓存中。
在接收包含驱动程序更新的响应1065之后,同步子例程1050发送对所接收的软件和硬件更新的每一个的本地化数据的请求1066。如上所述,每一更新的本地化数据部分包括描述更新的通用信息。例如,本地化数据部分可包括描述更新的特征和益处的信息。本地化数据部分也可包括更新的安装过程的文本描述。另外,本地化数据部分可包括关于更新的任何其它数据或信息。
由此,在接收了对接收到的软件更新和硬件更新的每一个的本地化数据的请求1066之后,元数据服务器123通过发送客户机更新高速缓存中保存的所有接收到的软件更新和硬件更新的所有本地化数据来响应。一旦接收到,本地化数据可由软件应用程序来处理,以确定哪些更新需要被安装。或者,接收到的本地化数据可显示给用户,以向用户通知对客户机计算装置110可用的所有更新。在一个实施例中,接收到的本地化数据可在网页上显示。在本示例中,第六和第八更新921和931的本地化数据可以由客户机接收。如果本地化数据被储存在基础更新911、912、913和915中,则那些更新的本地化数据也由客户机接收。
图11示出了网页1100的一个示例,它显示了与对客户机可用的更新相关联的本地化数据的示例。为说明的目的,网页1100包括更新的第一详细描述1105和另一更新的第二详细描述1106。如图所示,每一更新分别与用于接收更新的用户选择的选择机制1103和1104相关联。同样如图所示,网页1100配备允许用户控制更新的选择到诸如元数据服务器123或下载服务器124等服务器的传递的控制按钮1101。
在本发明的一个方面中,客户机执行多个处理以增强网页1100的显示。例如,客户机计算装置110检查每一更新的本地化数据以确定特定更新是否是高优先级。这一特征可通过在本地化数据或特定更新的其它组件中查找指示特定更新是高优先级或紧急更新的文本来促进。如果客户机计算装置110检测到高优先级更新或紧急更新,则客户机在网页1100的可视部分中,如页面的顶部显示高优先级更新。另外,客户机可生成可视指示符,如专用的文本消息1120,指示该更新是高优先级更新。
客户机计算装置110也可检查每一更新的本地化数据,以确定特定更新是否需要排他安装,即,更新具有不能与另一更新的安装文件同时安装的安装文件。这一特征可通过在本地化数据或特定更新的其它组件中查找指示特定更新需要排他安装的文本来促进。如果客户机计算装置110检测到这一更新,则客户机显示一可视指示符,例如图11所示的文本消息1122,它具有需要排他安装的更新的描述。
返回到图7,软件更新例程700在框708继续,其中客户机计算装置110接收更新的选择。如上所述,响应于控制按钮1101的激励,对一个或多个更新的选择可由元数据服务器123或下载服务器124获得。一旦接收到了一个或多个更新的选择,软件更新例程700在框708继续,处理所选择的软件更新。
依照本发明的又一方面,软件更新服务120可提供一种在软件更新服务和客户机计算装置110之间选择和发送信息的方法。图12A和12B所示是依照本发明的软件更新处理子例程1200,它由客户机计算装置110实现,用于检索和安装所请求的软件。如上所述,一旦生成或接收到了对软件更新的选择,就可以实现软件更新处理子例程1200。参考图12A,在框1202,更新管理组件112例示更新代理118。在本发明的一个说明性实施例中,更新代理118是一种专用软件组件,用于确定需要什么软件更新信息来完成请求的软件更新、生成更新代理的安装组件的所需要的版本、通过将现有文件与增量补丁合并生成更新文件、和/或启动更新文件的安装。在更新代理118已被例示的情况下,可省略框1202。
在框1204,更新代理118从更新服务120获取软件更新信息。在本发明的一个说明性实施例中,更新服务120发送的软件更新信息是包的形式,如自提取文件,它包括可由更新代理使用的各种数据。在一个方面,包可包括对应于特定软件更新的所有文件的列表。另外,包可包括补丁存储清单的至少一部分的副本,该清单将要更新的文件的特定版本映射到储存在更新服务120上的补丁存储文件中的对应软件更新增量补丁。包也可包括用于要更新的每一文件的安装信息,它可包括完成安装所需要的安装组件的版本的标识。此外,包也可包括用于更新代理118的安装组件,或更新已储存在客户机计算装置110上的安装组件的版本的增量补丁。再者,包可包括允许更新代理确定软件更新是否成功的验证信息。例如,验证信息可包括更新文件的参考散列值用于比较。更新代理118也可验证包的内容。
在判别块1206,执行测试以确定更新代理118是否需要更新安装组件的版本以实现更新。相关领域的技术人员将认识到,在自提取文件中发送安装组件的完整副本可增加更新服务120对每一软件更新发送的数据量。因此,在本发明的一个说明性实施例中,可将安装组件的基线版本储存在客户机计算装置中,并通过安装组件增量补丁对当前软件更新的需求来特别更新。因此,自提取文件中的安装信息指令更新代理118任何所包括的安全组件更新是否需要与客户机计算装置110上的安装组件的基线版本合并。如果需要更新,则在框1208,更新代理118更新基线安装组件,如后文参考图13更详细讨论的。
一旦更新代理更新了安装组件,或者安装组件不需要更新,则在框1210,更新代理118执行安装在计算装置110上的文件和文件的特定版本的清查。在本发明的一个说明性实施例中,更新代理118可向客户机计算装置110文件系统查询在包内被标识为对应于所选择的更新的所有文件。或者,如果更新代理118最近已执行了清查,则可使用详细目录的高速缓存的版本。在框1212,更新代理118标识完成所请求的更新所需要什么软件更新信息。在本发明的一个说明性实施例中,包存储清单包括已安装文件的版本到所需要的增量补丁的映射。因此,如果增量打补丁可用,则更新代理118将使用该映射来标识特定的增量补丁及其在包存储文件中的偏移位置。或者,如果增量补丁不可用或不能实现,则更新代理118可标识整个文件用于下载。
现在参考图12B,在框1214,更新数据代理发送对已标识软件更新信息的请求。在本发明的一个说明性实施例中,更新代理118可通过指示特定范围的补丁,将对特定增量补丁的请求从补丁存储文件发送到更新服务120的下载服务器124。如上所述,补丁存储文件包括大量的可适用增量补丁,其中每一增量补丁由其在补丁存储文件中的位置来标识。由于补丁存储文件在某些实现中可能相当大,因此更新代理118可使用仅请求来自补丁存储文件中的特定位置的数据的请求,如补丁存储清单中所指示的。在本发明的一个替换实施例中,更新代理118可请求更新文件的整个副本和/或补丁存储文件的完整副本。
在本发明的一个替换实施例中,可能不排他地与更新服务120相关联的另一下载服务器可处理更新代理118请求。在这一实施例中,请求补丁存储文件可完整或部分地发送到网络上的任意数量的附加下载服务器。附加下载服务器可以是用于更新专用网络上的客户机的专用网络的一部分。此外,附加下载服务器可以是公共网络的一部分。在专用网络环境中,下载服务器可获取补丁存储文件的完整副本,用于处理客户机请求。或者,下载服务器也可在处理来自其它客户机的先前的数据请求时高速缓存补丁存储文件的各部分,并使用高速缓存数据来满足下载。因此,附加下载服务器可减少对更新服务120的下载服务器124的通信张力。
在框1216,更新代理118接收所请求的更新信息。在本发明的一个说明性实施例中,所请求的更新信息可以用两种方法发送。在被称为手动更新的第一种方法中,更新请求连同对直接HTTP数据传送响应的请求一起发送到更新服务120。在该方法中,更新服务120可使用可用于向更新代理118发送所请求数据的整个带宽的全部。在被称为自动更新的第二种方法中,更新请求连同对间接HTTP数据传送响应的请求一起发送到更新服务120。在这一响应中,更新服务120发送所请求的数据作为后台进程。后台进程可以用使用最小量可用带宽的方式来实现。此外,后台进程可在下载过程期间中断,并可在下一可用时刻重新开始。通过后台进程发送所请求数据的系统和方法的描述在2000年2月16日提交的,名为“System andMethod for Transferring Data Over aNetwork(通过网络传输数据的系统和方法)”的共同转让并共同提交的待决美国专利申请号09/505,735中有描述,该申请通过引用结合于此。相关领域的技术人员可以理解,前台和后台数据传输不必要反映所选择的软件更新的优先级,但是相反反映了如何分配带宽来获取更新信息。
一旦从更新服务接收到了所请求的信息,在框1218,更新代理118将增量补丁与对应的已安装文件合并。在本发明的一个说明性实施例中,更新代理118可高速缓存已安装文件的原始版本,以确保所选择的文件不会在下载和合并过程中改变。此外,高速缓存的已安装文件的原始版本可用于卸载所选择的更新。
在判别框1220,执行测试以确定更新文件是否有效。在本发明的一个说明性实施例中,更新代理118可使用散列算法,以将从更新信息包中获得并对应于有效文件更新的参考散列值与来自当前修改的文件的散列相比较。如果散列不匹配,则当前修改的文件不是有效的。相关领域的技术人员可以理解,可使用多种替换确认算法的任一种。如果更新文件不是有效的,则子例程1200返回到框1214,其中更新代理可再次请求更新信息。或者,如果更新代理118已若干次不成功地尝试了生成更新文件,则更新的代理可实现若干后退过程的任一种。在本发明的一个实施例中,更新代理118可向更新服务120请求储存在补丁存储文件中,并从补丁存储清单标识的更新文件的已完成副本。在本发明的另一实施例中,更新代理118可向更新服务120请求自主式文件中的更新文件的副本。在本发明的又一实施例中,另一子例程1200可以失败。
一旦所选择的文件有效,则在判别块1222,执行测试以确定是否需要任何额外的下载。在本发明的一个说明性实施例中,子例程1200进入一迭代循环,它在完成了先前选择的下载之后连续地核查额外的下载。如果文件的状态在下载期间改变,则更新代理118可继续请求对新状态改变的额外下载。如果需要额外的下载,则在框1224,更新代理118执行另一清查,并标识所有可适用的增量补丁。子例程1200然后返回到框1214。
一旦完成了所有的所请求的更新下载,在判别框1226,执行测试以确定客户机机器的状态是否改变。在本发明的一个说明性实施例中,在更新文件的更新信息和实际安装的下载和合并之间会经过某些时间。因此,在安装更新文件之前,更新代理确定客户机计算装置状态是否改变。如果状态已改变,则文件更新可能不是有效的,并且更新在框1228失败。或者,如果没有发生状态改变,则更新代理118在框1230安装更新文件,并且子例程1200返回到框1232。
现在参考图13,描述了由客户机计算装置110实现,用于更新对应于框1208(图12A)的基线安装组件的子例程1300。在判别框1302,执行测试以确定从更新服务120发送到更新代理118的自提取文件中是否包括了新的基线安装组件。在本发明的一个说明性实施例中,如果更新基线安装程序所需的增量补丁在大小上可与已更新安装组件的发送比较,则将发送新的基线安装组件。如果包括了已更新安装组件,则在框1304,更新代理安装已更新的基线安装组件作为新的安装组件。另外,新的已更新安装组件可以保存在客户机计算装置110的存储器中,以担当用于附加更新的基线安装程序。在框1306,子例程返回。
如果在自提取文件中未包括已更新的基线安装组件,则在框1308,更新代理118从自提取文件获取基线安装组件增量补丁。在本发明的一个说明性实施例中,基线安装组件增量补丁对应于可与基线安装组件合并来生成已更新基线安装组件的软件代码。因此,在框1310,更新代理将基线安装组件增量补丁与基线安装组件合并。在框1312,更新代理118然后将已更新基线安装组件制定为当前安装组件。在本发明的一个说明性实施例中,已更新安装组件在安装完成之后将不被保存。依照该实施例,更新代理118仅维护客户机计算装置110的存储器中有限数量的基线安装组件。因此,更新代理在每一次安装时生成临时的已更新安装组件。由于每一客户机计算装置110只能对应于有限数量的基线安装组件,因此仅需要更新服务120对每一客户机计算装置发送单个基线安装组件增量补丁。在框1314,子例程1300返回。
尽管示出并描述了本发明的较佳实施例,然而可以理解,可在不脱离本发明的精神和范围的情况下作出对其作出各种改变。例如,尽管此处描述的说明性示例应用于软件更新,然而本发明的范围包括除关于软件更新的信息的分发和传递之外的其它使用。因此,除非在本揭示中明确地排除了特定主题,可以理解,本发明的范围应用于不同于软件更新或除此之外的任何类型数据的分发和传递。
Claims (21)
1.一种用于在分布式处理系统中的客户机计算设备进程与服务器进程之间进行通信的方法,其特征在于,所述方法包括:
(a)由所述客户机计算设备进程发出一同步请求,其中,如果所述客户机计算设备存储一被安装的软件更新,则所述同步请求包括所述被安装的软件更新的标识符;
(b)由所述服务器进程接收所述同步请求;
(c)如果所述同步请求包括至少一个软件更新的标识符,则由所述服务器进程选择一额外的软件更新,其中,所述额外的软件更新的选择取决于对所述额外的软件更新中所定义的先决条件的履行,其中,所述先决条件要求所述同步请求包括至少一个特定软件更新的标识符;
(d)如果确定所述同步请求不包括至少一个软件更新的标识符,则由所述服务器进程选择以空值作为先决条件的第一级软件更新;
(e)由所述服务器进程发出所选择的软件更新的指令部分;
(f)由所述客户机计算设备进程接收所选择的软件更新的指令部分;
(g)如果所述客户机计算设备包含履行所选择的软件更新中存储的适用性规则的条件的至少一个部分,则由所述客户机计算设备进程将所选择的软件更新的指令部分存储在所述客户机计算设备中,作为被安装的软件更新,所述适用性规则定义了在安装与所述指令部分相关联的所选择的软件更新之前所述客户机计算设备所需要的至少一个条件。
2.如权利要求1所述的方法,其特征在于,所述方法还包括,如果所选择的软件更新的指令部分提供存在供所述客户机计算设备进程处理的额外的软件更新的指示,则由所述客户机计算设备进程重复(a)-(g)。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
由所述服务器进程发出所选择的软件更新的本地化数据部分;以及
由所述客户机计算设备进程接收所选择的软件更新的本地化数据部分,其中,一旦接收到所述本地化数据部分,所述客户机计算设备进程就调用一应用程序,以便在显示器上生成所选择的软件更新的本地化数据部分的显示。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
由所述客户机计算设备进程接收用于调用与所选择的软件更新相关联的数据文件的通信的命令;以及
由所述客户机计算设备进程发出用于传递与所选择的软件更新相关联的数据文件的命令;
由所述服务器进程接收用于传递与所选择的软件更新相关联的数据文件的命令,并调用一应用程序来下载所述数据文件。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
如果由所述客户机计算设备进程读取的存储器存储所述被安装的软件更新,则由所述客户机计算设备进程将所述被安装的软件更新的标识符并入所述同步请求中。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述客户机计算设备进程确定所选择的软件更新中存储的适用性规则的至少一个条件没有被履行,则由所述客户机计算设备进程将所选择的软件更新的指令部分存储在所述客户机计算设备中,作为失败的软件更新。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
由所述客户机计算设备进程将所述失败的软件更新的标识符并入所述同步请求中;
如果所选择的软件更新与所述失败的软件更新有关,则由所述服务器进程限制所选择的软件更新的发行。
8.一种在分布式处理系统中的客户机计算设备进程与服务器进程之间进行通信的方法,其特征在于,所述方法包括:
(a)由所述客户机计算设备进程发出一授权请求,其中,所述授权请求包含与一目标组相关联的客户机授权模块的标识符;
(b)由所述服务器进程接收所述授权请求;
(c)如果所述服务器进程检测到与所述目标组相关联的服务器软件模块的存在,则由所述服务器进程发出标识所述目标组的服务器cookie;
(d)由所述客户机计算设备进程接收标识所述目标组的所述服务器cookie;
(e)由所述客户机计算设备进程发出对至少一个软件更新的更新请求,其中,所述请求包含所述服务器cookie,所述至少一个软件更新包括包含至少一个适用性规则的指令部分,所述至少一个适用性规则定义了在安装与所述指令部分相关联的所选择的软件更新之前所述客户机计算设备所需要的至少一个条件;
(f)由所述服务器进程接收所述更新请求;
(g)如果所述软件更新与所述服务器cookie中标识的目标组相关联,则由所述服务器进程发行所述软件更新;以及
(h)如果所述软件更新与所述服务器cookie中标识的目标组相关联,则由所述客户机计算设备进程接收所述软件更新。
9.如权利要求8所述的方法,其特征在于,所述授权请求包括先前被存储的服务器cookie中的数据;并且,其中,由所述服务器进程发出的所述服务器cookie包括该先前被存储的服务器cookie的数据。
10.如权利要求8所述的方法,其特征在于,如果与所述服务器进程进行通信的服务器授权模块标识了与所述客户机授权模块相关联的一目标组,则确定所述客户机计算设备与同一目标组相关联。
11.如权利要求8所述的方法,其特征在于,所述服务器cookie包括一到期时间,其中,所述方法还包括,如果已经过了所述服务器cookie的到期时间,则所述服务器进程不发行所述软件更新。
12.如权利要求8所述的方法,其特征在于,所述服务器cookie用明文格式和加密格式来存储所述到期时间,并且,其中,所述服务器cookie包含标识至少一个目标组的加密数据,其中,所述方法还包括:
由所述客户机计算设备进程从所述服务器cookie获得所述到期时间,其中,所述客户机计算设备进程从用明文格式存储的到期时间中获得所述到期时间;以及
由所述客户机计算设备进程发出对至少一个软件更新的请求,其中,所述请求包括所述服务器cookie。
13.如权利要求8所述的方法,其特征在于,所述软件更新的发行包括发行所述软件更新的指令部分,并且,如果所述软件更新的指令部分指出存在额外的软件更新,则所述方法还包括:
由所述客户机计算设备进程发出对本地化数据的请求;
由所述服务器进程接收对本地化数据的请求;
由所述服务器进程发行所述软件更新的本地化数据部分;
由所述客户机计算设备进程接收所述本地化数据;以及
由所述客户机计算设备进程处理用于至少一个更新文件的选择的本地化数据部分。
14.一种用于传递和管理软件更新的系统,其特征在于,所述系统包括:
(a)存储多个软件更新的第一数据库,其中,存储在所述数据库中的单独的软件更新包括:
(i)包含定义在安装所述单独的软件更新之前客户机计算设备所需要的至少一个条件的适用性规则的指令数据字段,其中,所述适用性规则能够包括空值,其中,所述指令数据字段还包含标识安装所述单独的软件更新所要求的一个或多个软件更新的一组先决条件,并且,其中,该组先决条件能够包括空值;
(ii)包含文本数据的本地化数据字段,所述文本数据描述与所述单独的软件更新有关的通用信息;以及
(iii)标识与所述单独的软件更新相关联的至少一个数据流文件的数据部分;
(b)用于授权对存储在所述第一数据库中的软件更新的访问的授权服务器,其中,如果客户机计算设备包含指出所述客户机计算设备与一目标组相关联的授权模块,则所述授权服务器发出服务器cookie,用于允许所述客户机计算设备访问所述单独的软件更新,其中,所述服务器cookie包含所述目标组的标识符,并且,其中,所述服务器cookie被传递给所述客户机计算设备,用于存储所述服务器cookie;
(c)用于将更新提供给所述客户机计算设备的元数据服务器,其中,如果软件更新与所述目标组相关联,则所述软件更新被传递给所述客户机计算设备,其中,所述元数据服务器通信上耦合到所述第一数据库,并且,其中,所述元数据服务器用于:
(i)获得一同步请求,其中,如果所述客户机计算设备存储被安装的软件更新,则所述同步请求包括所述被安装的软件更新的标识符,其中,所述同步请求包括所述服务器cookie;
(ii)如果所述同步请求包括至少一个被安装的软件更新的标识符,则选择一额外的软件更新,用于传递给所述客户机计算设备,其中,所述额外的软件更新的选择取决于所述额外的软件更新中所定义的先决条件的履行,其中,所述先决条件要求所述同步请求包括至少一个被安装的软件更新的标识符,其中,所述额外的软件更新与在所述服务器cookie中标识的目标组相关联;
(iii)如果所述同步请求不包括至少一个被安装的软件更新的标识符,则选择第一级软件更新,用于传递给所述客户机计算设备,其中,所述第一级软件更新不包括先决条件;
(iv)将所选择的软件更新的指令部分传递给所述客户机计算设备,用于存储;
(v)获得对与所选择的软件更新相关联的本地化数据的请求;
(vi)将与所选择的软件更新相关联的本地化数据传递给所述客户机计算设备,其中,所述本地化数据允许所述客户机计算设备生成对所选择的软件更新的数据部分的接收的下载请求;
(d)通信上耦合到所述第一数据库的下载服务器,并且,所述下载服务器用于:
(i)从所述客户机计算设备获得所述下载请求,其中,所述下载请求标识所选择的软件更新的数据部分;以及
(ii)将所选择的软件更新的数据部分传递给所述客户机计算设备。
15.如权利要求14所述的系统,其特征在于,如果服务器授权模块标识所述目标组,则所述服务器cookie包含所述目标组的标识符。
16.如权利要求14所述的系统,其特征在于,所述服务器cookie包括一到期时间,并且,其中,所述元数据服务器用于:
确定是否已经过了所述服务器cookie的到期时间;
如果确定已经过了所述服务器cookie的到期时间,则限制所选择的软件更新的传递。
17.如权利要求14所述的系统,其特征在于,所述元数据服务器用于:
如果所述客户机计算设备存储一失败的软件更新,则在所述同步请求中获得所述失败的软件更新的标识符;
如果确定所述同步请求包括所述失败的软件更新的标识符,则限制与所述失败的软件更新有关的所选择的软件更新的传递。
18.如权利要求14所述的系统,其特征在于,所述下载服务器用于:
获得对一个或多个可用软件更新的选择,用于更新安装在所述客户机计算设备上的一个或多个文件;
获得一自提取文件,所述自提取文件标识用于更新被安装的文件的至少一个版本的多个可用增量补丁;
获得安装在所述客户机计算设备上的一个或多个文件的详细目录;
选择一个或多个可应用的增量补丁来实现所选择的软件更新,其中,选择所述一个或多个可应用的补丁对应于将标识所述多个可用增量补丁的自提取文件映射到安装在所述客户机计算设备上的一个或多个文件的详细目录;以及
发送对一个或多个所选择的增量补丁的请求。
19.一种用于将软件更新传递给客户机计算设备的系统,其特征在于,所述系统包括:
存储多个服务器授权模块的第一组件,其中,单独的服务器授权模块标识一目标组;
通信上耦合到所述第一组件的服务器计算机,所述服务器计算机用于:
从所述客户机计算设备中获得一授权请求,其中,所述授权请求包含存储在所述客户机计算设备上的客户机授权模块的标识符;
确定所述客户机计算设备是否与所述目标组相关联,其中,如果所述客户机授权模块指出所述客户机计算设备与所述目标组相关联,则确定所述客户机计算设备与所述目标组相关联;
如果确定所述客户机计算设备与所述目标组相关联,则将服务器cookie从所述软件更新服务传递到所述客户机计算设备,其中,所述服务器cookie标识了所述目标组;
获得对存储在所述软件更新服务上的至少一个软件更新的请求,其中,所述请求包含所述服务器cookie,所述至少一个软件更新包括包含至少一个适用性规则的指令部分,所述至少一个适用性规则定义了在安装与所述指令部分相关联的所述至少一个软件更新之前客户机计算设备所需要的至少一个条件;
响应于获得所述请求,确定软件更新是否与所述服务器cookie中标识的目标组相关联;以及
如果确定所述软件更新与所述服务器cookie中标识的目标组相关联,则将所述软件更新从所述软件更新服务传递到所述客户机计算设备。
20.一种用于在客户机计算设备与服务器计算设备之间进行通信的方法,所述方法包括:
(a)由所述服务器计算设备接收一同步请求,其中,如果所述客户机计算设备存储一被安装的软件更新,则所述同步请求包括所述被安装的软件更新的标识符;
(b)由所述服务器计算设备基于所述同步请求选择用于所述客户机计算设备的适合的软件更新;
(c)响应于所述同步请求,由所述服务器计算设备发出每一个适合的软件更新的指令部分,其中每个指令部分包括至少一个适用性规则,所述至少一个适用性规则定义了所述客户机计算设备在安装与所述指令部分相关联的所选择的软件更新之前所要求的至少一个条件;
(d)至少部分基于所述客户机计算设备对相应的适用性规则的所述至少一个条件是否履行的确定,在所述服务器计算设备处接收对适合的软件更新中的至少第一软件更新的本地化数据部分的请求;以及
(e)由所述服务器计算设备发出所述第一软件更新的本地化数据部分,每个本地化数据部分包括描述相应的适合的软件更新的额外的信息。
21.如权利要求20所述的方法,其特征在于,由所述服务器计算设备选择至少一个软件更新包括:
如果所述同步请求包括至少一个软件更新的标识符,则由所述服务器计算设备选择一额外的软件更新,其中对所述额外的软件更新的选择取决于对所述额外的软件更新中所定义的先决条件的履行,所述先决条件要求所述同步请求包括至少一个特定的软件更新的标识符;以及
如果所述同步请求不包括至少一个软件更新的标识符,则由所述服务器计算设备选择以空值作为先决条件的第一级软件更新。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/737,726 | 2003-12-15 | ||
US10/737,726 US7478381B2 (en) | 2003-12-15 | 2003-12-15 | Managing software updates and a software distribution service |
PCT/US2004/023965 WO2005060387A2 (en) | 2003-12-15 | 2004-07-23 | System and method for a software distribution service |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101410800A CN101410800A (zh) | 2009-04-15 |
CN101410800B true CN101410800B (zh) | 2011-07-13 |
Family
ID=34654196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004800013237A Active CN101410800B (zh) | 2003-12-15 | 2004-07-23 | 用于软件发布服务的系统和方法 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7478381B2 (zh) |
EP (1) | EP1579301B1 (zh) |
JP (1) | JP4871138B2 (zh) |
KR (1) | KR101130367B1 (zh) |
CN (1) | CN101410800B (zh) |
AU (1) | AU2004279162B8 (zh) |
BR (1) | BRPI0406412A (zh) |
CA (1) | CA2501499A1 (zh) |
MX (1) | MXPA05006615A (zh) |
RU (1) | RU2365983C2 (zh) |
WO (1) | WO2005060387A2 (zh) |
Families Citing this family (227)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5694546A (en) | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US6751794B1 (en) * | 2000-05-25 | 2004-06-15 | Everdream Corporation | Intelligent patch checker |
CA2423175A1 (en) * | 2000-09-22 | 2002-03-28 | Patchlink.Com Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US8479189B2 (en) | 2000-11-17 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | Pattern detection preprocessor in an electronic device update generation system |
US7409685B2 (en) | 2002-04-12 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Initialization and update of software and/or firmware in electronic devices |
US7574481B2 (en) * | 2000-12-20 | 2009-08-11 | Microsoft Corporation | Method and system for enabling offline detection of software updates |
GB2387001B (en) | 2001-10-22 | 2005-02-02 | Apple Computer | Intelligent interaction between media player and host computer |
US8150937B2 (en) | 2004-10-25 | 2012-04-03 | Apple Inc. | Wireless synchronization between media player and host device |
US7680849B2 (en) | 2004-10-25 | 2010-03-16 | Apple Inc. | Multiple media type synchronization between host computer and media device |
US8255361B2 (en) * | 2003-01-31 | 2012-08-28 | Oracle America, Inc. | Method and system for validating differential computer system update |
US8122106B2 (en) | 2003-03-06 | 2012-02-21 | Microsoft Corporation | Integrating design, deployment, and management phases for systems |
US8555273B1 (en) | 2003-09-17 | 2013-10-08 | Palm. Inc. | Network for updating electronic devices |
US7574706B2 (en) * | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
US7568195B2 (en) * | 2003-12-16 | 2009-07-28 | Microsoft Corporation | Determining a maximal set of dependent software updates valid for installation |
US7549042B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Applying custom software image updates to non-volatile storage in a failsafe manner |
US7614051B2 (en) * | 2003-12-16 | 2009-11-03 | Microsoft Corporation | Creating file systems within a file in a storage technology-abstracted manner |
US20050132357A1 (en) * | 2003-12-16 | 2005-06-16 | Microsoft Corporation | Ensuring that a software update may be installed or run only on a specific device or class of devices |
US7549148B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Self-describing software image update components |
JP2005242981A (ja) * | 2004-01-28 | 2005-09-08 | Seiko Epson Corp | サービス提供システム、アプリケーション管理システム、サービス提供装置、サービス提供プログラム、アプリケーション管理プログラムおよび記憶媒体、並びにサービス提供方法およびアプリケーション管理方法 |
US7539686B2 (en) * | 2004-03-12 | 2009-05-26 | Microsoft Corporation | Tag-based schema for distributing update metadata in an update distribution system |
US8051483B2 (en) | 2004-03-12 | 2011-11-01 | Fortinet, Inc. | Systems and methods for updating content detection devices and systems |
US7904895B1 (en) | 2004-04-21 | 2011-03-08 | Hewlett-Packard Develpment Company, L.P. | Firmware update in electronic devices employing update agent in a flash memory card |
US20050246529A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Isolated persistent identity storage for authentication of computing devies |
US10972536B2 (en) | 2004-06-04 | 2021-04-06 | Apple Inc. | System and method for synchronizing media presentation at multiple recipients |
US20070110074A1 (en) | 2004-06-04 | 2007-05-17 | Bob Bradley | System and Method for Synchronizing Media Presentation at Multiple Recipients |
US8797926B2 (en) | 2004-06-04 | 2014-08-05 | Apple Inc. | Networked media station |
US8443038B2 (en) | 2004-06-04 | 2013-05-14 | Apple Inc. | Network media device |
US7526534B2 (en) * | 2004-07-16 | 2009-04-28 | Cassatt Corporation | Unified system services layer for a distributed processing system |
US8526940B1 (en) | 2004-08-17 | 2013-09-03 | Palm, Inc. | Centralized rules repository for smart phone customer care |
US20060039566A1 (en) * | 2004-08-19 | 2006-02-23 | Xerox Corporation | System for installing software with encrypted client-server communication |
US7661102B2 (en) * | 2004-08-20 | 2010-02-09 | Smith Micro Software, Inc. | Method for reducing binary image update package sizes |
US8229301B2 (en) * | 2004-09-07 | 2012-07-24 | Finisar Corporation | Configuration of optical transceivers to perform custom features |
US7801449B2 (en) * | 2004-09-07 | 2010-09-21 | Finisar Corporation | Off-module optical transceiver firmware paging |
US20060059481A1 (en) * | 2004-09-16 | 2006-03-16 | Rodney Smith | Presenting, delivering and installing electronic downloads with an installed list |
US7802124B2 (en) | 2004-10-29 | 2010-09-21 | Finisar Corporation | Microcode configurable frequency clock |
US7957651B2 (en) * | 2004-10-29 | 2011-06-07 | Finisar Corporation | Configurable optical transceiver feature specific cost transaction |
US7974538B2 (en) | 2004-10-29 | 2011-07-05 | Finisar Corporation | Transaction for transceiver firmware download |
US8151245B2 (en) * | 2004-12-17 | 2012-04-03 | Computer Associates Think, Inc. | Application-based specialization for computing nodes within a distributed processing system |
US8219807B1 (en) | 2004-12-17 | 2012-07-10 | Novell, Inc. | Fine grained access control for linux services |
US8271785B1 (en) | 2004-12-20 | 2012-09-18 | Novell, Inc. | Synthesized root privileges |
US9021456B2 (en) * | 2004-12-22 | 2015-04-28 | International Business Machines Corporation | Using collaborative annotations to specify real-time process flows and system constraints |
US8457108B1 (en) | 2004-12-27 | 2013-06-04 | At&T Intellectual Property Ii, L.P. | Method and apparatus for monitoring client software usage in end user device |
US11314378B2 (en) | 2005-01-07 | 2022-04-26 | Apple Inc. | Persistent group of media items for a media device |
EP1688834A3 (en) * | 2005-02-03 | 2009-01-14 | LG Electronics Inc. | Video device having software upgrade function using wireless communication and method for controlling the same |
US7490072B1 (en) | 2005-02-16 | 2009-02-10 | Novell, Inc. | Providing access controls |
US7802144B2 (en) * | 2005-04-15 | 2010-09-21 | Microsoft Corporation | Model-based system monitoring |
US7797147B2 (en) * | 2005-04-15 | 2010-09-14 | Microsoft Corporation | Model-based system monitoring |
US20060253617A1 (en) * | 2005-04-22 | 2006-11-09 | Microsoft Corporation | Driver upgrade tools |
US8074214B2 (en) * | 2005-05-19 | 2011-12-06 | Oracle International Corporation | System for creating a customized software installation on demand |
US8352935B2 (en) | 2005-05-19 | 2013-01-08 | Novell, Inc. | System for creating a customized software distribution based on user requirements |
US8316129B2 (en) | 2005-05-25 | 2012-11-20 | Microsoft Corporation | Data communication coordination with sequence numbers |
US8549513B2 (en) * | 2005-06-29 | 2013-10-01 | Microsoft Corporation | Model-based virtual system provisioning |
US20070016393A1 (en) * | 2005-06-29 | 2007-01-18 | Microsoft Corporation | Model-based propagation of attributes |
US8577761B1 (en) * | 2005-06-30 | 2013-11-05 | Oracle America, Inc. | System and method for dynamic offering topologies |
JP4747733B2 (ja) * | 2005-08-22 | 2011-08-17 | ブラザー工業株式会社 | ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム |
US7668905B2 (en) * | 2005-09-07 | 2010-02-23 | International Business Machines Corporation | Method, system and computer program for providing web pages based on client state |
US9274774B2 (en) * | 2005-10-28 | 2016-03-01 | Google Inc. | Common installer server |
US8261258B1 (en) | 2005-10-28 | 2012-09-04 | Google Inc. | Common installer client |
US7941309B2 (en) | 2005-11-02 | 2011-05-10 | Microsoft Corporation | Modeling IT operations/policies |
US8078952B2 (en) | 2005-11-28 | 2011-12-13 | Microsoft Corporation | Site redirection |
US7813963B2 (en) * | 2005-12-27 | 2010-10-12 | The Pen | Interactive electronic desktop action method and system for executing a transaction |
US8676973B2 (en) | 2006-03-07 | 2014-03-18 | Novell Intellectual Property Holdings, Inc. | Light-weight multi-user browser |
KR100750169B1 (ko) * | 2006-03-08 | 2007-08-21 | 삼성전자주식회사 | 델타 파일 생성 방법 및 이를 이용한 소프트웨어 업데이트방법 |
US20070257354A1 (en) * | 2006-03-31 | 2007-11-08 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Code installation decisions for improving aggregate functionality |
WO2007113550A1 (en) * | 2006-03-31 | 2007-10-11 | British Telecommunications Public Limited Company | Exception handler for the upgrade of java objects in a distributed system |
US7793285B2 (en) * | 2006-03-31 | 2010-09-07 | Ricoh Company, Ltd. | Web installer driver and management through a remote network |
EP2002334A1 (en) * | 2006-03-31 | 2008-12-17 | British Telecommunications Public Limited Company | Xml-based transfer and a local storage of java objects |
EP2025095A2 (en) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Device management in a network |
RU2388045C2 (ru) * | 2006-06-19 | 2010-04-27 | Самсунг Электроникс Ко., Лтд. | Система и способ обновления программы для переносного устройства с поддержкой ота |
US8775572B2 (en) * | 2006-06-23 | 2014-07-08 | Microsoft Corporation | Public network distribution of software updates |
US8752044B2 (en) | 2006-07-27 | 2014-06-10 | Qualcomm Incorporated | User experience and dependency management in a mobile device |
US8074213B1 (en) * | 2006-08-11 | 2011-12-06 | Symantec Operating Corporation | Automatic software updates for computer systems in an enterprise environment |
US20080046879A1 (en) * | 2006-08-15 | 2008-02-21 | Michael Hostetler | Network device having selected functionality |
US7730480B2 (en) * | 2006-08-22 | 2010-06-01 | Novell, Inc. | System and method for creating a pattern installation by cloning software installed another computer |
US20130047145A1 (en) * | 2006-08-29 | 2013-02-21 | Quan-Jie Cui | Match analysis for encoding optimized update packages |
JP4842742B2 (ja) * | 2006-09-05 | 2011-12-21 | 富士通株式会社 | ソフトウェア管理プログラム、ソフトウェア管理方法およびソフトウェア管理装置 |
US8112508B1 (en) * | 2006-09-08 | 2012-02-07 | Dell Products L.P. | Delivering data from device management services to devices using bulletin system |
US7886292B2 (en) * | 2006-10-05 | 2011-02-08 | International Business Machines Corporation | Methodology of individualized software deployment for hardware-independent personal computer mass development |
US8122443B2 (en) * | 2006-12-14 | 2012-02-21 | International Business Machines Corporation | Dynamic multi-context delta view for merging structured data in a visual merge tool |
KR101368714B1 (ko) * | 2006-12-22 | 2014-03-05 | 삼성전자주식회사 | 이동식 저장장치, 소프트웨어 자동설치시스템 및소프트웨어 자동설치방법 |
US8850140B2 (en) | 2007-01-07 | 2014-09-30 | Apple Inc. | Data backup for mobile device |
CN101578580A (zh) * | 2007-01-07 | 2009-11-11 | 苹果公司 | 移动设备的数据备份 |
US8631088B2 (en) | 2007-01-07 | 2014-01-14 | Apple Inc. | Prioritized data synchronization with host device |
JP4905150B2 (ja) * | 2007-01-22 | 2012-03-28 | 富士通株式会社 | ソフトウェア動作実績管理システム、方法及びプログラム |
US20080281958A1 (en) * | 2007-05-09 | 2008-11-13 | Microsoft Corporation | Unified Console For System and Workload Management |
US20080288622A1 (en) * | 2007-05-18 | 2008-11-20 | Microsoft Corporation | Managing Server Farms |
US20090007096A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Secure Software Deployments |
KR100955426B1 (ko) * | 2007-08-10 | 2010-05-04 | (주)지란지교소프트 | 가상 플랫폼 실행방법 |
US7857222B2 (en) | 2007-08-16 | 2010-12-28 | Hand Held Products, Inc. | Data collection system having EIR terminal interface node |
US8938735B2 (en) * | 2007-08-31 | 2015-01-20 | Thomson Reuters Global Resources | Bootstrapper and software download manager |
US20090083441A1 (en) | 2007-09-24 | 2009-03-26 | Microsoft Corporation | Synchronization of web service endpoints in a multi-master synchronization environment |
US8413130B2 (en) * | 2007-10-03 | 2013-04-02 | International Business Machines Corporation | System and method for self policing of authorized configuration by end points |
US8281294B1 (en) * | 2007-11-12 | 2012-10-02 | Nvidia Corporation | System and method for representing and managing a multi-architecture co-processor application program |
US8726260B2 (en) * | 2007-11-26 | 2014-05-13 | Lenovo (Singapore) Pte Ltd | Techniques for providing software patches to a computer system |
US9208308B2 (en) | 2007-11-27 | 2015-12-08 | The Boeing Company | Alternate parts signature list file |
US8442751B2 (en) | 2007-11-27 | 2013-05-14 | The Boeing Company | Onboard electronic distribution system |
US8930310B2 (en) * | 2007-11-27 | 2015-01-06 | The Boeing Company | Proxy server for distributing aircraft software parts |
US8490074B2 (en) | 2007-11-27 | 2013-07-16 | The Boeing Company | Aircraft software part library |
US8683458B2 (en) * | 2007-11-30 | 2014-03-25 | Red Hat, Inc. | Automatic full install upgrade of a network appliance |
US8589592B2 (en) * | 2007-12-11 | 2013-11-19 | Red Hat, Inc. | Efficient object distribution |
US8266260B2 (en) * | 2007-12-11 | 2012-09-11 | Sharp Laboratories Of America, Inc. | Method and system for updating the software of multiple network nodes |
DE102007060990A1 (de) * | 2007-12-14 | 2009-06-18 | Codewrights Gmbh | Verfahren zum Erzeugen eines anwendungsspezifischen Installationspakets von Geräteobjekten |
US8340131B2 (en) * | 2008-05-05 | 2012-12-25 | Sentilla Corporation, Inc. | Efficient broadcast of data in a communication network |
US20090287917A1 (en) * | 2008-05-19 | 2009-11-19 | Microsoft Corporation | Secure software distribution |
US8418164B2 (en) | 2008-05-29 | 2013-04-09 | Red Hat, Inc. | Image install of a network appliance |
US20090313352A1 (en) * | 2008-06-11 | 2009-12-17 | Christophe Dupont | Method and System for Improving the Download of Specific Content |
US8503001B2 (en) * | 2008-06-18 | 2013-08-06 | Ricoh Company, Ltd. | Approach for updating usage information on printing devices |
US8930930B2 (en) * | 2008-09-04 | 2015-01-06 | International Business Machines Corporation | Updating a computer system |
US8719811B2 (en) * | 2008-10-07 | 2014-05-06 | Ricoh Company, Ltd. | Method of causing functions to be executed on business office appliances |
US8527614B2 (en) * | 2008-10-07 | 2013-09-03 | Ricoh Company, Ltd. | Method of deployment of remote patches to business office appliances |
US8898660B2 (en) * | 2008-11-25 | 2014-11-25 | Fisher-Rosemount Systems, Inc. | Systems and methods to provide customized release notes during a software system upgrade of a process control system |
US8914783B2 (en) * | 2008-11-25 | 2014-12-16 | Fisher-Rosemount Systems, Inc. | Software deployment manager integration within a process control system |
US8938717B1 (en) * | 2009-03-16 | 2015-01-20 | Xilinx, Inc. | Updating an installed computer program |
US8438558B1 (en) * | 2009-03-27 | 2013-05-07 | Google Inc. | System and method of updating programs and data |
EP2239659A1 (en) * | 2009-04-09 | 2010-10-13 | Siemens Aktiengesellschaft | A network device and a system thereof |
US8327351B2 (en) * | 2009-04-30 | 2012-12-04 | Sap Ag | Application modification framework |
US8495621B2 (en) * | 2009-06-15 | 2013-07-23 | Microsoft Corporation | Catalog-based software component management |
US8849717B2 (en) * | 2009-07-09 | 2014-09-30 | Simon Cooper | Methods and systems for upgrade and synchronization of securely installed applications on a computing device |
CN101989208A (zh) * | 2009-08-04 | 2011-03-23 | 鸿富锦精密工业(深圳)有限公司 | 软件更新方法 |
US8528037B2 (en) * | 2009-08-28 | 2013-09-03 | CSC Holdings, LLC | Dynamic application loader for set top box |
CN101674326B (zh) * | 2009-09-21 | 2012-09-05 | 中兴通讯股份有限公司 | 进程间同步通信实现方法及代理单元 |
US9003387B2 (en) * | 2009-09-25 | 2015-04-07 | Fisher-Rosemount Systems, Inc. | Automated deployment of computer-specific software updates |
US9128799B2 (en) * | 2009-11-09 | 2015-09-08 | Bank Of America Corporation | Programmatic creation of task sequences from manifests |
US9122558B2 (en) * | 2009-11-09 | 2015-09-01 | Bank Of America Corporation | Software updates using delta patching |
US20110113226A1 (en) * | 2009-11-09 | 2011-05-12 | Bank Of America Corporation | Distribution Of Software Updates |
US8972974B2 (en) * | 2009-11-09 | 2015-03-03 | Bank Of America Corporation | Multiple invocation points in software build task sequence |
US8584113B2 (en) * | 2009-11-09 | 2013-11-12 | Bank Of America Corporation | Cross-updating of software between self-service financial transaction machines |
US9176898B2 (en) * | 2009-11-09 | 2015-11-03 | Bank Of America Corporation | Software stack building using logically protected region of computer-readable medium |
US8671402B2 (en) * | 2009-11-09 | 2014-03-11 | Bank Of America Corporation | Network-enhanced control of software updates received via removable computer-readable medium |
US9497092B2 (en) | 2009-12-08 | 2016-11-15 | Hand Held Products, Inc. | Remote device management interface |
EP2360581A1 (en) * | 2010-01-18 | 2011-08-24 | Thomson Licensing | Method, system and device for execution of a software application |
US8316120B2 (en) * | 2010-02-02 | 2012-11-20 | Microsoft Corporation | Applicability detection using third party target state |
US20110238572A1 (en) * | 2010-03-25 | 2011-09-29 | Bank Of America Corporation | Remote Control Of Self-Service Terminal |
TW201135594A (en) * | 2010-04-08 | 2011-10-16 | Inventec Corp | System for updating software using separated modules and method thereof |
US9083762B2 (en) * | 2010-05-28 | 2015-07-14 | Greg Saunders | System and method for providing hybrid on demand services to a work unit |
US10102687B1 (en) | 2010-08-17 | 2018-10-16 | The Boeing Company | Information management system for ground vehicles |
US9052976B2 (en) * | 2010-11-08 | 2015-06-09 | Mckesson Financial Holdings | Methods, apparatuses and computer program products for facilitating efficient deployment of software |
US8863114B2 (en) * | 2010-12-06 | 2014-10-14 | Red Hat, Inc. | Managing software packages using a version control system |
US9519600B2 (en) | 2011-03-04 | 2016-12-13 | Microsoft Technology Licensing, Llc | Driver shimming |
US9003363B2 (en) * | 2011-03-21 | 2015-04-07 | Microsoft Technology Licensing, Llc | Device flags |
US8910142B2 (en) | 2011-04-13 | 2014-12-09 | Xerox Corporation | Method and system to regulate the electronic availability of application software updates based on information collected regarding installation, usage and support for these updates |
US8918782B2 (en) * | 2011-05-27 | 2014-12-23 | Microsoft Corporation | Software image distribution |
US8875100B2 (en) * | 2011-06-17 | 2014-10-28 | Microsoft Corporation | Pattern analysis and performance accounting |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US8856582B2 (en) | 2011-06-30 | 2014-10-07 | Microsoft Corporation | Transparent failover |
CN102395149A (zh) * | 2011-06-30 | 2012-03-28 | 中兴通讯股份有限公司 | Mme报文处理方法及装置 |
US8930940B2 (en) * | 2011-08-19 | 2015-01-06 | Yongyong Xu | Online software execution platform |
WO2013033222A1 (en) * | 2011-08-29 | 2013-03-07 | Fiberlink Communications Corporation | Platform for deployment and distribution of modules to endpoints |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
US9253164B2 (en) | 2011-09-12 | 2016-02-02 | Microsoft Technology Licensing, Llc | Distribution of portions of content |
US8613101B2 (en) | 2011-09-12 | 2013-12-17 | Microsoft Corporation | Software distribution service federation |
US8726263B2 (en) | 2011-09-28 | 2014-05-13 | Microsoft Corporation | Detection and installation of software on a per-user basis |
US8539123B2 (en) | 2011-10-06 | 2013-09-17 | Honeywell International, Inc. | Device management using a dedicated management interface |
US8621123B2 (en) | 2011-10-06 | 2013-12-31 | Honeywell International Inc. | Device management using virtual interfaces |
US8959504B2 (en) | 2011-10-18 | 2015-02-17 | Microsoft Corporation | Update scanning |
US8959142B2 (en) | 2012-02-29 | 2015-02-17 | Microsoft Corporation | Combining server-side and client-side user interface elements |
CN104303148B (zh) * | 2012-03-22 | 2018-10-19 | 爱迪德技术有限公司 | 更新软件组件 |
US8832018B2 (en) * | 2012-05-22 | 2014-09-09 | Sap Ag | Decision service manager |
US9244673B2 (en) | 2012-06-08 | 2016-01-26 | Apple Inc. | System and method for updating application archive files |
US9378026B2 (en) * | 2012-07-27 | 2016-06-28 | Daniel A. Dooley | Customizable application |
KR101199014B1 (ko) * | 2012-08-06 | 2012-11-09 | (주)네오위즈게임즈 | 멀티 프로세스 실행 프로그램 제공 방법, 이를 수행하는 멀티 프로세스 실행 프로그램 제공 서버 및 이를 저장한 기록 매체 |
RU2495487C1 (ru) * | 2012-08-10 | 2013-10-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ для определения доверия при обновлении разрешенного программного обеспечения |
RU2526754C2 (ru) | 2012-09-28 | 2014-08-27 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ подбора функций управления мобильными устройствами |
CN104981774B (zh) * | 2013-01-11 | 2020-09-18 | 辛纳科尔股份有限公司 | 背景控制面板配置选择的方法和系统 |
US9418072B2 (en) * | 2013-03-04 | 2016-08-16 | Vmware, Inc. | Cross-file differential content synchronization |
US9727831B2 (en) | 2013-03-15 | 2017-08-08 | Vivint, Inc. | Methods for prompting a user to use enhanced automation system features, and systems and devices related thereto |
US10026064B2 (en) | 2013-09-13 | 2018-07-17 | Microsoft Technology Licensing, Llc | Automatically recommending updates based on stored lifecycle information |
US9830142B2 (en) * | 2013-09-13 | 2017-11-28 | Microsoft Technology Licensing, Llc | Automatic installation of selected updates in multiple environments |
US9626176B2 (en) | 2013-09-13 | 2017-04-18 | Microsoft Technology Licensing, Llc | Update installer with technical impact analysis |
US9665359B2 (en) | 2013-09-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Automatically resolving conflicts after installation of selected updates in a computer system |
US9069641B2 (en) * | 2013-09-17 | 2015-06-30 | Blackberry Limited | Updating firmware on mobile devices |
GB2519790B (en) * | 2013-10-30 | 2017-07-12 | 1E Ltd | Configuration of network devices |
JP6432127B2 (ja) * | 2013-11-12 | 2018-12-05 | 株式会社リコー | 通信装置、通信システム、通信方法及び通信プログラム |
JP2015103105A (ja) * | 2013-11-26 | 2015-06-04 | 株式会社リコー | 通信装置、通信システム、及び通信プログラム |
EP3137994A2 (en) * | 2014-04-30 | 2017-03-08 | Schneider Electric Industries SAS | Systems and methods for delivering and accessing software components |
RU2595529C2 (ru) * | 2014-05-29 | 2016-08-27 | Общество С Ограниченной Ответственностью "Яндекс" | Способ селективной загрузки набора модулей, электронное устройство и носитель данных |
WO2016007563A1 (en) | 2014-07-07 | 2016-01-14 | Symphony Teleca Corporation | Remote Embedded Device Update Platform Apparatuses, Methods and Systems |
US9619244B2 (en) | 2014-09-05 | 2017-04-11 | Xiaomi Inc. | Method and system for upgrading an electronic device |
US20160098259A1 (en) * | 2014-10-02 | 2016-04-07 | The Boeing Company | Software Aircraft Part Installation System |
US10318271B2 (en) | 2015-01-05 | 2019-06-11 | Irdeto Canada Corporation | Updating software components in a program |
US9921823B2 (en) | 2015-01-09 | 2018-03-20 | Garmin International, Inc. | Line replacement unit (LRU) replacement process |
JP6478026B2 (ja) * | 2015-01-28 | 2019-03-06 | 株式会社リコー | 情報処理装置、プログラム、及び記録媒体 |
US10963430B2 (en) | 2015-04-01 | 2021-03-30 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
US9922201B2 (en) | 2015-04-01 | 2018-03-20 | Dropbox, Inc. | Nested namespaces for selective content sharing |
US20160350099A1 (en) * | 2015-05-29 | 2016-12-01 | Hewlett Packard Enterprise Development Lp | Application deployment to virtual machines |
US10042626B2 (en) * | 2015-06-29 | 2018-08-07 | Verizon Patent And Licensing Inc. | Software updates using client self-reporting and a hierarchical data structure |
US10250600B2 (en) | 2015-07-27 | 2019-04-02 | International Business Machines Corporation | Updating database drivers for client applications through a database server push |
US9740473B2 (en) | 2015-08-26 | 2017-08-22 | Bank Of America Corporation | Software and associated hardware regression and compatibility testing system |
US20170090910A1 (en) * | 2015-09-29 | 2017-03-30 | International Business Machines Corporation | Mobile device application installation with performance enhancement |
US9571573B1 (en) * | 2015-10-29 | 2017-02-14 | Dropbox, Inc. | Peer-to-peer synchronization protocol for multi-premises hosting of digital content items |
US10691718B2 (en) | 2015-10-29 | 2020-06-23 | Dropbox, Inc. | Synchronization protocol for multi-premises hosting of digital content items |
US10382312B2 (en) | 2016-03-02 | 2019-08-13 | Fisher-Rosemount Systems, Inc. | Detecting and locating process control communication line faults from a handheld maintenance tool |
US11605037B2 (en) | 2016-07-20 | 2023-03-14 | Fisher-Rosemount Systems, Inc. | Fleet management system for portable maintenance tools |
US10554644B2 (en) | 2016-07-20 | 2020-02-04 | Fisher-Rosemount Systems, Inc. | Two-factor authentication for user interface devices in a process plant |
US10270853B2 (en) | 2016-07-22 | 2019-04-23 | Fisher-Rosemount Systems, Inc. | Process control communication between a portable field maintenance tool and an asset management system |
US10374873B2 (en) | 2016-07-22 | 2019-08-06 | Fisher-Rosemount Systems, Inc. | Process control communication between a portable field maintenance tool and a process control instrument |
US10599134B2 (en) * | 2016-07-22 | 2020-03-24 | Fisher-Rosemount Systems, Inc. | Portable field maintenance tool configured for multiple process control communication protocols |
US10375162B2 (en) | 2016-07-22 | 2019-08-06 | Fisher-Rosemount Systems, Inc. | Process control communication architecture |
US10585422B2 (en) | 2016-07-22 | 2020-03-10 | Fisher-Rosemount Systems, Inc. | Portable field maintenance tool system having interchangeable functional modules |
US10505585B2 (en) | 2016-07-25 | 2019-12-10 | Fisher-Rosemount Systems, Inc. | Portable field maintenance tool with a bus for powering and communicating with a field device |
US10481627B2 (en) | 2016-07-25 | 2019-11-19 | Fisher-Rosemount Systems, Inc. | Connection check in field maintenance tool |
US10764083B2 (en) | 2016-07-25 | 2020-09-01 | Fisher-Rosemount Systems, Inc. | Portable field maintenance tool with resistor network for intrinsically safe operation |
CN106372139A (zh) * | 2016-08-27 | 2017-02-01 | 乐视控股(北京)有限公司 | 操作通知的生成方法、前台数据的更新方法及数据库系统 |
US10572240B2 (en) * | 2016-12-19 | 2020-02-25 | Vmware Inc. | Operating system update management for enrolled devices |
US10262124B2 (en) | 2017-01-18 | 2019-04-16 | Bank Of America Corporation | Autonomous software containers |
US10362166B2 (en) | 2017-03-01 | 2019-07-23 | At&T Intellectual Property I, L.P. | Facilitating software downloads to internet of things devices via a constrained network |
US10467842B2 (en) | 2017-03-17 | 2019-11-05 | Bank Of America Corporation | Portable item transfer container |
CN107025121B (zh) * | 2017-03-31 | 2020-10-09 | Oppo广东移动通信有限公司 | 软件升级方法、装置和电子装置 |
CN107172143A (zh) * | 2017-05-12 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种服务器集群中的软件同步方法及装置 |
US11922564B2 (en) | 2017-06-05 | 2024-03-05 | Umajin Inc. | Generative content system that supports location-based services and methods therefor |
US11188390B2 (en) * | 2017-06-05 | 2021-11-30 | Umajin Inc. | Method for configuring a server kit by a server management system |
US11954486B2 (en) | 2017-06-05 | 2024-04-09 | Umajin Inc. | Location tracking system and methods |
US11726822B2 (en) | 2017-06-05 | 2023-08-15 | Umajin Inc. | Systems and methods for providing digital twin-enabled applications |
US10496398B2 (en) * | 2017-07-25 | 2019-12-03 | Aurora Labs Ltd. | Hot updates to ECU software using tool chain |
US10503495B2 (en) * | 2017-08-02 | 2019-12-10 | Accenture Global Solutions Limited | Component management platform |
KR102417004B1 (ko) * | 2017-09-19 | 2022-07-07 | 삼성전자주식회사 | 전자 장치의 소프트웨어의 업데이트를 관리하기 위한 장치 및 방법 |
US10956143B2 (en) * | 2017-12-06 | 2021-03-23 | Hewlett Packard Enterprise Development Lp | Server updates |
US10993274B2 (en) | 2018-03-30 | 2021-04-27 | Apple Inc. | Pairing devices by proxy |
US10783929B2 (en) | 2018-03-30 | 2020-09-22 | Apple Inc. | Managing playback groups |
US11297369B2 (en) | 2018-03-30 | 2022-04-05 | Apple Inc. | Remotely controlling playback devices |
CN108874319B (zh) * | 2018-06-27 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种元数据更新方法、装置、设备及可读存储介质 |
US10614857B2 (en) | 2018-07-02 | 2020-04-07 | Apple Inc. | Calibrating media playback channels for synchronized presentation |
CN109857414B (zh) * | 2019-01-22 | 2022-05-17 | 上海微小卫星工程中心 | 卫星软件扩散方法和系统 |
US11140086B2 (en) | 2019-08-15 | 2021-10-05 | At&T Intellectual Property I, L.P. | Management of background data traffic for 5G or other next generations wireless network |
US11290531B2 (en) | 2019-12-04 | 2022-03-29 | Dropbox, Inc. | Immediate cloud content item creation from local file system interface |
CN111026735B (zh) * | 2019-12-10 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、设备及介质 |
KR20230103774A (ko) * | 2021-12-31 | 2023-07-07 | 엘지전자 주식회사 | 가전기기, 가전기기 업그레이드 방법 및 가전기기 업그레이드 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999740A (en) * | 1996-11-08 | 1999-12-07 | International Computers Limited | Updating mechanism for software |
CN1288199A (zh) * | 1999-09-09 | 2001-03-21 | 日本电气株式会社 | 响应用户引发事件更新客户的安装数据的方法 |
WO2001090892A1 (en) * | 2000-05-25 | 2001-11-29 | Everdream, Inc. | Intelligent patch checker |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5047928A (en) * | 1986-10-24 | 1991-09-10 | Wiedemer John D | Billing system for computer software |
US4796181A (en) | 1986-10-24 | 1989-01-03 | Wiedemer John D | Billing system for computer software |
US5155680A (en) * | 1986-10-24 | 1992-10-13 | Signal Security Technologies | Billing system for computing software |
US5155847A (en) * | 1988-08-03 | 1992-10-13 | Minicom Data Corporation | Method and apparatus for updating software at remote locations |
US5142680A (en) * | 1989-04-26 | 1992-08-25 | Sun Microsystems, Inc. | Method for loading an operating system through a network |
CA2053261A1 (en) * | 1989-04-28 | 1990-10-29 | Gary D. Hornbuckle | Method and apparatus for remotely controlling and monitoring the use of computer software |
US5473772A (en) * | 1991-04-02 | 1995-12-05 | International Business Machines Corporation | Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs |
US5267171A (en) * | 1990-03-29 | 1993-11-30 | Brother Kogyo Kabushiki Kaisha | Computer software vending machine |
JPH0792744B2 (ja) * | 1990-08-20 | 1995-10-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 多重レベル適用業務ソフトウェアをデータ処理装置にインストールする方法。 |
US5155484A (en) * | 1991-09-13 | 1992-10-13 | Salient Software, Inc. | Fast data compressor with direct lookup table indexing into history buffer |
AU662805B2 (en) * | 1992-04-06 | 1995-09-14 | Addison M. Fischer | A method for processing information among computers which may exchange messages |
US5528490A (en) * | 1992-04-10 | 1996-06-18 | Charles E. Hill & Associates, Inc. | Electronic catalog system and method |
US5586322A (en) * | 1992-06-11 | 1996-12-17 | Beck; Robert E. | Workgroup organized network manager with workstation comparison system |
US5359730A (en) * | 1992-12-04 | 1994-10-25 | International Business Machines Corporation | Method of operating a data processing system having a dynamic software update facility |
US5495411A (en) * | 1993-12-22 | 1996-02-27 | Ananda; Mohan | Secure software rental system using continuous asynchronous password verification |
US5421009A (en) * | 1993-12-22 | 1995-05-30 | Hewlett-Packard Company | Method of remotely installing software directly from a central computer |
US6038586A (en) * | 1993-12-30 | 2000-03-14 | Frye; Russell | Automated software updating and distribution |
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US5586304A (en) * | 1994-09-08 | 1996-12-17 | Compaq Computer Corporation | Automatic computer upgrading |
US5654901A (en) * | 1995-01-30 | 1997-08-05 | Telefonaktiebolaget Lm Ericsson | Loading software into field test equipment |
US5884323A (en) * | 1995-10-13 | 1999-03-16 | 3Com Corporation | Extendible method and apparatus for synchronizing files on two different computer systems |
US5845077A (en) * | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer |
KR100286008B1 (ko) * | 1995-12-30 | 2001-04-16 | 윤종용 | 소프트웨어 프로그램 자동 갱신방법 |
US6049671A (en) * | 1996-04-18 | 2000-04-11 | Microsoft Corporation | Method for identifying and obtaining computer software from a network computer |
US6151643A (en) * | 1996-06-07 | 2000-11-21 | Networks Associates, Inc. | Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer |
US6643506B1 (en) * | 1996-08-07 | 2003-11-04 | Telxon Corporation | Wireless software upgrades with version control |
US6347398B1 (en) * | 1996-12-12 | 2002-02-12 | Microsoft Corporation | Automatic software downloading from a computer network |
US5922072A (en) * | 1997-01-03 | 1999-07-13 | Ncr Corporation | Method and apparatus for creating alternate boot environments in a computer |
US6282709B1 (en) * | 1997-11-12 | 2001-08-28 | Philips Electronics North America Corporation | Software update manager |
US6035423A (en) * | 1997-12-31 | 2000-03-07 | Network Associates, Inc. | Method and system for providing automated updating and upgrading of antivirus applications using a computer network |
US6202207B1 (en) * | 1998-01-28 | 2001-03-13 | International Business Machines Corporation | Method and a mechanism for synchronized updating of interoperating software |
GB2333864B (en) * | 1998-01-28 | 2003-05-07 | Ibm | Distribution of software updates via a computer network |
US6052531A (en) * | 1998-03-25 | 2000-04-18 | Symantec Corporation | Multi-tiered incremental software updating |
US6330715B1 (en) * | 1998-05-19 | 2001-12-11 | Nortel Networks Limited | Method and apparatus for managing software in a network system |
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
KR20000041146A (ko) * | 1998-12-21 | 2000-07-15 | 구자홍 | 네트워크 컴퓨터의 소프트웨어 업데이트 방법 |
US6286138B1 (en) * | 1998-12-31 | 2001-09-04 | International Business Machines Corporation | Technique for creating remotely updatable programs for use in a client/server environment |
US6401239B1 (en) * | 1999-03-22 | 2002-06-04 | B.I.S. Advanced Software Systems Ltd. | System and method for quick downloading of electronic files |
US6490722B1 (en) * | 1999-03-30 | 2002-12-03 | Tivo Inc. | Software installation and recovery system |
US6574657B1 (en) * | 1999-05-03 | 2003-06-03 | Symantec Corporation | Methods and apparatuses for file synchronization and updating using a signature list |
US6425126B1 (en) * | 1999-05-19 | 2002-07-23 | International Business Machines Corporation | Apparatus and method for synchronizing software between computers |
JP2001067232A (ja) * | 1999-08-31 | 2001-03-16 | Hitachi Ltd | ソフトウエアの配信システムおよびソフトウエアの受信端末装置 |
KR20010076025A (ko) * | 2000-01-24 | 2001-08-11 | 이승룡 | 지정 클라이언트만의 사용을 위한 컴퓨터네트워크상에서의 암호화 파일 전송 방법 |
US7035878B1 (en) * | 2000-01-25 | 2006-04-25 | Fusionone, Inc. | Base rolling engine for data transfer and synchronization system |
GB0017336D0 (en) * | 2000-07-15 | 2000-08-30 | Ibm | Preferable modes of software package deployment |
US7035912B2 (en) * | 2000-08-28 | 2006-04-25 | Abaco.P.R., Inc. | Method and apparatus allowing a limited client device to use the full resources of a networked server |
US20020112230A1 (en) * | 2000-12-07 | 2002-08-15 | Scott John Charles | Software update management system with update chronology generator |
US7574481B2 (en) * | 2000-12-20 | 2009-08-11 | Microsoft Corporation | Method and system for enabling offline detection of software updates |
US7051327B1 (en) * | 2001-05-08 | 2006-05-23 | Gateway Inc. | System for providing data backup and restore with updated version by creating data package based upon configuration data application data and user response to suggestion |
KR20030016073A (ko) * | 2001-08-20 | 2003-02-26 | 엘지전자 주식회사 | 웹 상에서 쿠키를 통한 사용자 인증 방법 및 인증 시스템 |
US7761535B2 (en) * | 2001-09-28 | 2010-07-20 | Siebel Systems, Inc. | Method and system for server synchronization with a computing device |
US7257649B2 (en) * | 2001-09-28 | 2007-08-14 | Siebel Systems, Inc. | Method and system for transferring information during server synchronization with a computing device |
US7115919B2 (en) * | 2002-03-21 | 2006-10-03 | Hitachi, Ltd. | Storage system for content distribution |
US20030195951A1 (en) * | 2002-04-12 | 2003-10-16 | Wittel Walter I. | Method and system to dynamically detect, download and install drivers from an online service |
US6966058B2 (en) * | 2002-06-12 | 2005-11-15 | Agami Systems, Inc. | System and method for managing software upgrades in a distributed computing system |
US7478385B2 (en) * | 2003-01-17 | 2009-01-13 | National Instruments Corporation | Installing software using programmatic component dependency analysis |
US20050050142A1 (en) * | 2003-08-28 | 2005-03-03 | Aligo Inc. | Method and framework for transaction synchronization |
US7574706B2 (en) * | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
US7853609B2 (en) * | 2004-03-12 | 2010-12-14 | Microsoft Corporation | Update distribution system architecture and method for distributing software |
-
2003
- 2003-12-15 US US10/737,726 patent/US7478381B2/en active Active
-
2004
- 2004-07-23 CN CN2004800013237A patent/CN101410800B/zh active Active
- 2004-07-23 RU RU2005116849/09A patent/RU2365983C2/ru not_active IP Right Cessation
- 2004-07-23 WO PCT/US2004/023965 patent/WO2005060387A2/en not_active Application Discontinuation
- 2004-07-23 KR KR1020057007318A patent/KR101130367B1/ko active IP Right Grant
- 2004-07-23 EP EP04816784.5A patent/EP1579301B1/en active Active
- 2004-07-23 BR BR0406412-7A patent/BRPI0406412A/pt not_active Application Discontinuation
- 2004-07-23 AU AU2004279162A patent/AU2004279162B8/en active Active
- 2004-07-23 CA CA002501499A patent/CA2501499A1/en not_active Abandoned
- 2004-07-23 JP JP2006543793A patent/JP4871138B2/ja not_active Expired - Fee Related
- 2004-07-23 MX MXPA05006615A patent/MXPA05006615A/es active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999740A (en) * | 1996-11-08 | 1999-12-07 | International Computers Limited | Updating mechanism for software |
CN1288199A (zh) * | 1999-09-09 | 2001-03-21 | 日本电气株式会社 | 响应用户引发事件更新客户的安装数据的方法 |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
WO2001090892A1 (en) * | 2000-05-25 | 2001-11-29 | Everdream, Inc. | Intelligent patch checker |
Also Published As
Publication number | Publication date |
---|---|
EP1579301A4 (en) | 2009-11-11 |
EP1579301A2 (en) | 2005-09-28 |
AU2004279162B8 (en) | 2010-04-08 |
AU2004279162A1 (en) | 2005-06-30 |
MXPA05006615A (es) | 2005-10-21 |
US20050132349A1 (en) | 2005-06-16 |
EP1579301B1 (en) | 2018-08-29 |
KR101130367B1 (ko) | 2012-03-28 |
WO2005060387A3 (en) | 2009-04-02 |
JP4871138B2 (ja) | 2012-02-08 |
AU2004279162B2 (en) | 2010-03-04 |
JP2007523395A (ja) | 2007-08-16 |
WO2005060387A2 (en) | 2005-07-07 |
BRPI0406412A (pt) | 2005-10-04 |
CN101410800A (zh) | 2009-04-15 |
RU2365983C2 (ru) | 2009-08-27 |
RU2005116849A (ru) | 2006-01-20 |
US7478381B2 (en) | 2009-01-13 |
CA2501499A1 (en) | 2005-06-15 |
KR20060109284A (ko) | 2006-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101410800B (zh) | 用于软件发布服务的系统和方法 | |
CN1777867B (zh) | 使用增量压缩打补丁更新文件的系统和方法 | |
CN100416465C (zh) | 管理和传递软件更新的系统和方法 | |
CN100535857C (zh) | 用于更新网络化环境中的安装组件的系统和方法 |
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. |