CN1668009A - 用于分发软件的更新分发系统的体系结构和方法 - Google Patents
用于分发软件的更新分发系统的体系结构和方法 Download PDFInfo
- Publication number
- CN1668009A CN1668009A CNA2005100081508A CN200510008150A CN1668009A CN 1668009 A CN1668009 A CN 1668009A CN A2005100081508 A CNA2005100081508 A CN A2005100081508A CN 200510008150 A CN200510008150 A CN 200510008150A CN 1668009 A CN1668009 A CN 1668009A
- Authority
- CN
- China
- Prior art keywords
- service node
- update service
- software
- update
- sub
- 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
Links
- 238000009826 distribution Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000013475 authorization Methods 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 28
- 238000003860 storage Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 14
- 230000000694 effects Effects 0.000 claims description 8
- 230000000737 periodic effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 15
- 230000000875 corresponding effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000009434 installation Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005059 dormancy Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/266—Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提出了一种用于分发软件更新的分层软件更新分发系统和方法。该更新分发系统包括一根更新服务节点和至少一个更新服务节点。在一更新分发系统中,除根更新服务节点之外,每一更新服务节点具有一个父更新服务节点。每一更新服务节点可担当对子更新服务节点的父更新服务节点。
Description
技术领域
本发明涉及软件和计算机网络,尤其涉及一种用于分发软件更新的更新分发系统的体系结构和方法。
背景技术
几乎所有可购买的软件产品都要经受连续不断的修订过程以修复或更新软件的特征。软件产品的每一修订经常要求添加新文件、用较新的修订替换现有文件、删除废弃文件或这些行动的各种组合。替换软件产品的较旧的文件、添加新文件、删除废弃文件、通过添加和/或删除功能改变软件产品的配置和行为的这一过程将在下文被称为“更新产品”,并且包括更新产品中使用的二进制文件、数据文件、更新指令、元数据等的数据集合在下文被较简单地称为“更新”。
一旦软件提供商创建了软件产品的更新,以解决问题、增强安全性或添加新特征,则软件提供商将希望令该更新对其顾客群广泛地可用。通常,如当更新针对纠正产品中的瑕疵或解决严重的安全问题时,软件提供商将希望更新被尽可能快地安装到顾客的计算机上。实际上,大多数软件提供商具有将软件更新尽可能快且无麻烦地分发到他们的顾客的商业动机。
计算机行业在连接到网络,尤其是因特网的计算机的数量上经历了爆发性的增长。由于这一爆发性的增长,并由于通过对因特网的连接可用的通信能力,因特网已经变为软件提供商用于向其顾客分发更新的重要且完整的渠道。实际上,因特网已经变成许多软件提供商用于向其顾客提供软件更新的主要分发渠道。软件提供商通常最感兴趣的是通过因特网分发软件更新,因为通过因特网的电子更新分发减少了其总成本,并使顾客在软件更新一旦可用时就能够获得它们。这些软件更新越来越频繁地通过因特网自动执行,而无需用户干预。
尽管因特网现在常用作从软件提供商分发软件更新的渠道,然而经常会出现一些问题。两个这样的问题包括(1)涉及更新分发架构/资源的效率,以及(2)对软件更新的分发和安装的管理控制。
对于分发资源的效率,网络,包括因特网,仅拥有有限量的通信资源,这通常被称为带宽。有限量的通信带宽通常导致瓶颈,尤其是对于流行软件产品的软件更新,如微软公司的Windows家族操作系统和相关的生产产品。即使软件更新在遍及因特网分布的多个下载位置上可用,也会存在这类瓶颈。出现这类瓶颈的一个原因是因特网上可用的非结构化访问模型。例如,如果计算机A处的第一用户请求对软件产品的最新下载,该下载通过第一用户的独立服务提供商(ISP)。此外,该请求作为单个的、个别的访问来处理,这意味着该请求独立于,且不相关于任何其它网络话务和/或请求来处理。由此,如果恰巧具有相同ISP的计算机B处的第二用户请求与第一用户相同的下载,则来自第二用户的请求也被作为单个的、个别的访问来处理。在这一示例中,同一下载将通过同一架构发送两次,因为每一请求被单独地处理。很明显,如果用户数量有相当大的增加,有限的通信带宽将变为瓶颈。在这一相当常见的示例中,如果下载在本地位置上高速缓存,并且每一用户请求从本地高速缓存中得到满足,则将会更有效。
对于分发的控制,许多组织,尤其是大型组织,具有合法的理由来控制更新向其计算机的分发。例如,不幸的是,某些更新具有或引入“破坏”软件产品的特征的瑕疵,通常被称为程序错误。这些被破坏的特征可能是不重要的,但是它们过于频繁地弄乱企业的对任务关键的特征。可选地,如果移除了对任务关键的特征,或者其行为实际上由特定的软件更新改变了,它们可被“破坏”。由于企业无法负担丢失其对任务关键的特征,负责的企业在将更新发行到其剩余的计算机之前,将在某一段时间内在受控的环境中首先评估并测试每一软件更新。这一评估时间段准许组织确认更新是否会对任务关键的特征产生不利的影响。仅在令人满意地确定更新将不会贬损任务关键特征之后,才准许该更新被分发到组织的其它计算机。很明显,大多数组织必须行使对其计算机上的软件更新的安装的控制。
企业或组织经常需要控制软件更新的分发的另一原因是确保组织中计算机之间的一致性。信息服务部门具有所有计算机可在其上操作的标准化的目标平台是十分重要的,不论它是用于文字处理程序还是操作系统。如果没有标准,软件和计算机维护可能会不必要地复杂和困难。
本地控制重要的又一原因是用于记账目的。在大型组织中,个别地在计算机上安装软件,或对组织中的每一计算机个别地维护特定软件产品的许可证通常是低效的。相反,单个场地许可证(site license)准许组织在众多计算机上运行一个软件产品。由此,可要求组织报告在该场地许可证下运行产品的计算机的数量,或组织需限制在场地许可证下运行产品的计算机的数量。所有这些原因经常要求对软件更新分发的本地控制。
鉴于上述涉及软件更新分发的各种问题,需要一种用于提供对软件更新的分发的控制,以及提高其分发效率的可扩充软件更新分发体系结构。本发明解决了现有技术中这些和其它问题。
发明内容
依照本发明,提出了一种用于通过通信网络分发软件更新的软件更新分发系统。该软件更新分发系统包括一根更新服务节点,以及至少一个子更新服务节点。依照本发明的各方面,根更新服务节点和至少一个子更新服务节点用分级的方式来组织。根更新服务节点是至少一个子更新服务节点的父更新服务节点。除根更新服务节点之外,每一更新服务节点具有一父更新服务节点。每一子更新服务节点也可以是该软件更新分发系统层次中至少一个其它更新服务节点的父节点。另外,根更新服务节点从软件提供商处获取软件更新。至少一个子更新服务节点的每一个从其父更新服务节点处获取该软件更新。
依照本发明的其它方面,提出了用于向客户机计算机分发软件更新的更新服务节点和子更新服务节点。更新服务节点包括用于储存软件更新的更新存储。更新服务节点也包括一web服务接口,更新服务节点通过其从其父更新服务节点处获取软件更新,并且更新服务节点通过其向子更新服务节点分发软件更新。更新服务节点还包括一管理应用编程接口(API),使用管理用户界面的管理员通过其建立用于向子更新服务节点分发软件更新的规则。更新服务节点还包括一子更新模块,用于依照所建立的规则确定哪些软件更新可用于分发到子更新服务节点。
依照本发明的另外一些方面,提出了一种软件更新系统中子更新服务节点用于从其父更新服务节点获取软件更新的方法。该子更新服务节点从其父更新服务节点处获取软件产品列表。该软件产品列表标识父更新服务节点为其分发软件更新的那些软件产品。子更新服务节点选择软件更新所搜寻的软件产品。子更新服务节点然后向标识所搜寻更新的那些软件产品的父更新服务节点提交请求。作为响应,子更新服务节点接收标识对子更新服务节点可用的所选择的软件产品的软件更新的更新列表。子更新服务节点然后从父更新服务节点处获取该软件更新列表中每一软件更新。
依照本发明的还有一些方面,提出了一种在父更新服务节点上执行的、用于向子更新服务节点分发软件更新的方法。从子更新服务节点接收请求软件更新目录的请求。向子更新服务节点返回标识父更新服务节点向其分发软件更新的软件产品的软件更新目录。然后接收对所选择的软件产品的软件更新列表的请求。作为响应,父更新服务节点确定所选择的软件产品的任何软件更新是否可用于子更新服务节点。向子更新服务节点返回标识被确定为可用于子更新服务节点的所选择的软件产品的那些软件更新的更新列表。该更新列表依照一唯一的更新标识符标识了可用的软件更新。接收请求对应于更新列表中标识的可用软件更新的元数据的更新请求,该更新请求标按其唯一标识符标识了可用软件更新。作为响应,向客户机更新服务节点返回更新元数据。更新元数据包括对应于软件更新的信息,包括用于获取对应的更新负载的参考。
附图说明
当结合附图阅读以下详细描述时,可以更容易且更好地理解本发明的上述方面和许多附加的优点,附图中:
图1是依照本发明的各方面形成的示例性更新分发系统的图示;
图2所示是依照本发明的各方面形成的更新服务节点的示例性逻辑组件的框图;
图3所示是依照本发明的各方面形成的根更新服务节点的示例性逻辑组件的框图;
图4所示是依照本发明的各方面,当从父更新服务节点向子更新服务节点提供软件更新时,父更新服务节点和子更新服务节点之间的示例性交换的框图;
图5所示是在子更新服务节点上执行的周期性地从其父更新服务节点处获取更新的示例性例程的流程图;
图6是适用于在图5的示例性例程的用于从父更新服务节点处获取更新目录的示例性子例程的流程图;
图7是适用于图5的示例性例程的用于从父更新服务节点处获取软件更新的示例性子例程的流程图;以及
图8是用于处理来自子更新服务节点的更新请求的示例性例程的流程图。
具体实施方式
依照本发明的各方面,提出了一种以分层方式组织的、用于分发软件更新的更新分发系统。为本发明的目的,如上所述,软件更新可涉及替换或删除较旧和/或废弃的文件、添加另外的文件、改变软件产品的配置等等。另外,尽管未特别地针对技术和文字意义上的软件产品的软件更新,然而本发明的各方面可有利地用于分发软件产品。因此,尽管以下描述是按照在更新分发系统中分发软件更新来作出的,但它仅为说明性的目的,并且不应当被解释为局限本发明。
图1是依照本发明的各方面形成的示例性更新分发系统100的图示。依照本发明,在诸如所示的更新分发系统100的更新分发系统的“顶部”的是一根更新服务节点102。诸如软件提供商110的软件提供商通过向根更新服务节点102提交更新,经由更新分发系统100分发其软件更新。依照本发明的各方面,诸如软件提供商110的软件提供商可通过网络,如因特网108向根更新服务节点102提交其软件更新。
诸如示例性更新分发系统100的分层更新分发系统可能包括除根更新服务节点102之外的至少一个其它更新服务节点。如图1所示,该示例性更新分发系统100包括根更新服务节点102和两个额外的更新服务节点:更新服务节点104和更新服务节点106。依照本发明,每一分层更新分发系统在根更新服务节点102下以树形结构来组织。换言之,更新分发系统中的每一更新服务节点具有零个或多个子更新服务节点。由此,尽管示例性更新分发系统100示出每一父更新服务节点(即,根更新服务节点102和更新服务节点104)仅有一个子节点,然而这仅为说明性目的,并且不应当被解释为局限本发明。此外,依照本发明的一个实施例,除根更新服务节点102之外,更新分发系统中的每一更新服务节点具有一个父更新服务节点。因此,如图1所示,更新服务节点104是根更新服务节点102的子节点,而更新服务节点106是更新服务节点104的子节点。在一个可选实施例中,子更新服务节点可从多个父更新服务节点(未示出)处接收更新。如可以见到的,除根更新服务节点102之外,每一更新服务节点既可以是子更新服务节点,也可以是父更新服务节点。
如示例性更新分发系统100中所示的,根更新服务节点102通过因特网108与更新服务节点104通信。然而,应当理解,这仅为说明性的,并且不应当被解释为局限本发明。更新分发系统中的每一更新服务节点只需能够通过某一通信网络与其父和/或子节点通信。由此,尽管更新服务节点104通过因特网108与其父节点一根更新服务节点102通信,它可选地可通过局域网124与其子节点,如更新服务节点106通信。
同样在图1中示出的,更新服务节点106驻留在局域网124的子网126中。作为一个示例,局域网124可对应于该组织的通用企业网络,并且更新服务节点104表示企业通过其对父节点一根更新服务节点102的连接链接到更新分发系统100。此外,子网126可对应于企业网络内可标识的计算机组,如测试/评估组、远程定位办公室或任务关键组。如下文将更详细地描述的,依照本发明的各方面,更新服务节点104上的管理员能够控制对更新服务节点106的更新分发,并最终控制对客户机的更新分发。
应当理解,每一更新服务节点,包括根更新服务节点102和更新服务节点104和106,被配置成向子更新服务节点和客户机计算机两者分发软件更新。如图1所示,示例性更新分发系统100包括客户机计算机112-122。每一更新服务节点,包括根更新服务节点102,依照本地配置信息向子更新服务节点和客户机计算机分发更新。依照一个实施例,管理员定义组,并将更新分发规则与那些组相关联。每一更新服务节点具有至少一个分发组。
作为示出更新分发系统如何操作的一个示例,假定局域网124对应于企业组织的企业网络。依照本发明的一个实施例,更新服务节点104的管理员可定义企业网络124的多个分发组,包括评估组,它对应于包括更新服务节点106和客户机计算机120和122的子网126,用于评估对通用企业网络124的更新的适合性;以及通用企业组,包括更新服务节点104和客户机计算机114-118。
对于评估组,管理员包括更新服务节点106作为成员,并将规则与该组相关联,使得一旦更新变得可用,它们就立即被分发到评估组的成员。可选地,对于通用企业组,管理员添加客户机计算机114-118,并关联规则,使得如果又管理员特别地授权,更新仅被分发到通用企业组的成员。也假定子更新服务节点106的管理员创建默认组,它由评估子网126中的客户机计算机120和122构成,可向其立即分发任何新的软件更新。
继续上述示例,软件提供商110向根更新服务节点102提交软件更新。依照在根更新服务节点102处建立的规则,更新最终被分发到企业更新服务节点104。在接收更新之后,其每一个的规则由管理员建立,企业更新服务节点104将更新分发到评估组的成员(仅被定义为子更新节点106),但是保持来自通用企业组的更新直到向该组分发更新的特定授权。
继续上述示例,在接收更新之后,评估更新服务节点106处理对于每一定义的组的更新。在本示例中,评估更新服务节点106仅有一个组。然而,如上所述,在实际的实现中,可以定义多个组,每一组具有一套唯一的相关联的分发规则。对于本示例,评估更新服务节点106立即使更新变得可用于分发到客户机计算机120和122。客户机计算机120和122现在可以被更新,并且评估周期/过程可以开始。
继续上述示例,当企业更新服务节点104的管理员对该更新适用于通过整个企业网络124分发感到足够满意时,管理员然后明确地授权该更新被分发到通用企业组的成员。企业更新服务节点104相应地使该更新对客户机114-118可用。应当理解,评估更新服务节点106也可被包括在通用企业组中。然而,由于评估更新服务节点106已被更新,不需要额外的更新相关行动来将更新分发到评估子网126。
如可通过上述示例见到的,本发明提供了本地分发控制和下载效率方面的重要益处。除上述本地分发控制方面之外,也实现了通信带宽的重大节省。例如,尽管图1所示的示例性企业网络124包括五个客户机计算机,然而软件提供商的更新从根更新服务节点102下载到企业更新服务节点104仅一次。因此很明显,当由更新服务节点服务的客户机计算机的数量增加时,父更新服务节点和客户机更新服务节点之间的通信带宽使用保持不变,由此实际上减少了所使用的通信带宽量。另外,更新分发系统是可扩充且可伸缩的。更新分发系统在至少两方面是可扩充的:可向父更新服务节点添加任何数量的子更新服务节点,并且子更新服务节点也可以是父更新服务节点。因此,可以调整更新分发系统的每一子树以满足个别的需求。
本发明实现的另一益处是管理员在他所负责的客户机计算机和网络上建立并实施一致软件平台的简易性。例如,管理员确保客户机计算机上的一致软件平台的现有过程一般是:确定软件平台是什么,即,应当安装哪些更新而不安装哪些更新;确定每一客户机计算机上的软件平台的状态;以及将适当的软件更新推入客户机计算机中用于安装。即使在最初的努力之后,管理员必须频繁地重复该过程,以确保软件平台保持一致。与这些现有技术方法相反,通过使用上述更新分发系统,以及支持将客户机机器分组成不同的目标组的架构和使不同的更新以不同的目标组为目标(在下文描述)的能力,管理员可以为他所负责的网络和/或客户机计算机的软件更新安装指定期望状态。管理员通过一管理员API(也在下文描述)为任何数量的客户机计算机和/或客户机计算机组指定期望状态。一旦建立/指定了期望更新状态,管理员可依赖于更新分发系统来实施贯穿整个更新分发系统的更新分发。更新分发系统用于确保系统中的客户机符合由管理员指示的期望状态。通过周期性的行动,更新分发系统不断地试图使不符合期望状态的那些客户机计算机达到符合。另外,通过将特定的安装属性与软件更新相关联,诸如强制安装属性或最终期限安装属性,更新分发系统减轻了管理员与维护一致软件平台相关联的实现细节的相当大一部分的负担。将安装属性与软件更新相关联以控制客户机计算装置上的行为的更详细描述在2004年3月12日共同提交且共同转让的名为“控制客户机计算机上的安装更新行为(Controlling Installation Update Behaviors On a Client Computer)”,委托摘要号MSFT-1-122459的待决美国专利申请中有描述,该申请通过引用结合于此。
图2所示是依照本发明的各方面形成的更新服务节点200,如企业更新服务节点104(图1)或评估更新服务节点106(图1)的示例性逻辑组件的框图。如图2所示,更新服务节点200包括更新web服务202、客户机更新模块204、子更新模块206以及报告模块208。示例性更新服务节点200也包括验证/授权模块210、管理应用编程接口(API)212、更新内容存储214、管理员用户界面218和更新信息存储216。
更新web服务202提供了一组常见的web服务,客户机计算机、子更新服务节点和父更新服务节点可通过其与更新服务节点通信。例如,参考图1,为使子/评估更新服务节点106能够从父/企业更新服务节点104获得软件更新,客户机通过父节点的更新服务web服务202通信。类似地,当父更新服务节点,如根更新服务节点102具有传递到其子更新服务节点104的信息时,包括更新,父更新服务节点通过子节点的更新web服务202通信。
客户机更新模块204处理客户机计算机和更新服务节点200之间关于储存在更新服务节点上的更新和更新信息的通信。更新相关的通信包括,但不限于,响应于客户机请求分发更新并向客户机计算机提供可用软件产品和相关联的更新的列表。客户机更新模块204也负责确定客户机计算机是否被授权来依照相关联的分发规则获取特定的更新,并用客户机计算机被授权来访问的更新相关信息来响应客户机计算机。
子更新模块206处理父更新服务节点和其子更新服务节点之间的更新相关通信。更新相关通信包括,但不限于,标识对子更新服务节点可用的软件产品和相关联的更新的列表,以及响应来自子更新服务节点的更新请求。下游更新模块206负责确定子更新服务节点是否被授权来依照相关联的分发规则获取特定的更新,并用子更新服务节点被授权来访问的更新相关信息来响应子更新服务节点。
报告模块208生成更新相关报告,如哪些组已收到或尚未收到特定更新、哪些客户机计算机已下载/安装或尚未下载/安装更新、更新服务节点上有什么更新可用等等。这些报告可如由管理员内部地使用,并且也可通过父节点的更新服务接口202提交到父更新服务节点。如上所述,企业通常需要确定哪些客户机计算机安装了特定更新,比如为了记账目的或为了维护目的。由报告模块208生成的信息/报告可以是这些报告的基础。
验证/授权模块210负责验证,即确定特定客户机计算机或子更新服务节点的身份,并确定客户机计算机或子更新服务节点是否被授权来访问更新服务节点200上的可用更新。对于已被验证并被授权来访问更新服务节点上的更新的那些客户机计算机和子更新服务节点,验证/授权模块210签发必须结合获取更新一起使用的授权令牌。授权令牌的签发和使用在下文参考图4A和4B更详细地来描述。
管理API 212表示应用程序接口,通过其可行使更新服务节点200的控制,并且更新最终通过其来储存和分发。当更新web服务202从客户机计算机和子更新服务节点接收各种更新相关请求时,这些请求直接或间接地通过客户机更新模块204和子更新模块206被分解成对管理API 212的调用。结合管理用户界面218或安装在更新服务节点200上被合适地配置成使用管理API 212的某些其它程序,管理员最终控制该更新服务节点以及任何子更新服务节点和客户机计算机的更新过程的所有方面。
通过管理用户界面218,管理员可通过管理API 212配置并维护更新服务节点200。由此,通过管理用户界面218,管理员创建、修改、删除组,并关联每一组的规则。此外,使用管理用户界面218,管理员建立客户机计算机或子更新服务节点属于那一组。通过管理用户界面218,管理员也可明确地向客户机计算机或子更新服务节点授权更新的分发、配置更新服务节点200以周期性地向其父更新服务节点查询新更新、配置报告参数并察看内部报告等等。如上所述,尽管管理用户界面218准许管理员行使对更新服务节点200的各方面的控制,然而驻留在更新服务节点200上的另一应用程序也合适地适用于用管理API 212来操作,它可替代管理用户界面218来使用。
如上所述,依照本发明的一个实施例,更新服务节点200包括更新内容存储214和更新信息存储216两者。更新内容存储214储存表示软件更新的实际文件,如二进制和补丁文件。相反,更新信息存储216储存对应于更新服务节点200上可用的更新的信息和元数据,包括储存在更新内容存储214中的更新文件。依照一个实施例,更新内容存储214和更新信息存储216都是关系型数据库。尽管示出示例性更新服务节点200具有两个数据存储,本发明不应当被如此限制。在一个替换实施例中,更新内容存储214和更新信息存储216可在单个信息存储中组合。
依照本发明的各方面,即使更新不物理地储存在更新内容存储214中,也可向客户机计算机和子更新服务节点呈现软件更新为在更新服务节点200上“可用”。更具体地,与在更新服务节点200上立即下载并储存实际的更新文件相反,引用父更新服务节点或别处的更新文件的链接可被替代地储存在更新服务节点上。由此,如果客户机计算机请求更新,或子更新服务节点请求实际更新,然后从父更新服务节点上取出更新并储存在更新内容存储214中,以准备好将其传送到客户机计算机或子更新服务节点。本领域的技术人员认识到,这一类型的更新访问被称为及时下载(just-in-time downloading)。以这一方式,“可用”更新在它被实际请求之前不需要通过各种网络通道来分发。依照本发明的各方面,更新服务节点200的管理员可选择性地确定是否要以及时方式获取软件更新。
尽管图2的以上描述示出了示例性更新服务模块200的各种组件,然而应当理解,也可存在更新服务模块的其它组件。此外,上述组件应当被理解为逻辑组件,不必要为实际组件。在一个实际的实现中,依照实现确定,上述组件可以被组合在一起和/或与其它组件相组合。另外,应当理解,尽管更新服务节点200可被视为网络上的服务器计算机,然而在一个实际的实现中,更新服务节点可以在任何数量类型的计算装置上实现。例如,每一更新服务节点200可以在单个独立的计算机系统上实现和/或安装,或可选地在包括多个计算装置的分布式计算系统上实现和/或安装。
图3所示是依照本发明的各方面形成的根更新服务节点300,如图1所示的根更新服务节点102的示例性逻辑组件的框图。类似于更新服务节点200(图2)的逻辑组件,根更新服务节点300包括更新web服务202、子更新模块206以及验证/授权模块210。另外,示例性根更新服务节点300也包括管理API 212,更新内容存储214和更新信息存储216。可任选地,根更新服务节点300也可包括客户机更新模块204,报告模块208和管理用户界面218。
客户机更新模块204是根更新服务节点300的可任选组件,取决于根更新服务节点是否直接向客户机计算机提供软件更新。例如,参考图1,作为直接服务客户机计算机112的根更新服务节点,根更新服务节点102可包括可任选客户机更新模块204。然而,如果根更新服务节点300不直接服务客户机计算机,则可省略客户机更新模块204。
报告模块208对根更新服务节点300是可任选的,因为根更新服务节点没有向其提供更新报告的父更新服务节点。然而,在根更新服务节点的管理员需要更新报告的意义上,可任选地包括报告模块208。
除包含包括在更新服务节点200(图2)中的逻辑组件之外,根更新服务节点300也包括软件提供商接口302。软件提供商接口302提供通信接口,软件提供商110(图1)可通过其直接向根更新服务节点300提交软件更新,并间接向示例性更新分发系统100提交软件更新。
类似于图2的更新服务节点200,图3的以上描述示出了示例性根更新服务模块300的各种组件。然而,应当理解,也可存在根更新服务模块的其它组件。此外,上述组件应当被理解为是逻辑组件,不必要是实际的组件。在一个实际的实现中,依照实现确定,上述标识的组件可被组合在一起和/或与其它组件相组合。另外,应当理解,尽管根更新服务节点200可被视为网络上的服务器计算机,然而在一个实际的实现中,更新服务节点可在任何数量的计算装置上实现。例如,根更新服务节点300可以在单个单独的计算机系统,或可选地在包括多个计算装置的分布式计算系统上实现和/或安装。
为更好地理解如何遍及整个更新分发系统100从根更新服务节点分发更新,证明了父更新服务节点和子更新服务节点之间的一个示例性交换的说明。图4所示是依照本发明的各方面,父更新服务节点402和子更新服务节点404之间在从父更新服务节点向子更新服务节点传播软件更新时的示例性交换400。如可以见到的,该示例性图被划分成两半,左半边对应于父更新服务节点402的行动和事件,右半边对应于子更新服务节点404的行动和事件。
为参考图4来讨论的目的,还应当理解,父更新服务节点402可以是或不是更新分发系统100中的根更新服务节点。另外,为本讨论的目的,假定父更新服务节点402由管理员配置,使得子更新服务节点404在未被管理员明确地授权来接收软件更新之前无法接收软件更新。
如示例性交换400中所示的,在事件406开始,父更新服务节点402从软件提供商110处接收软件更新,如果父更新服务节点是根更新服务节点102,则直接接收,如果不是,则通过更新分发系统100间接接收。在父更新服务节点402从软件提供商110处接收软件更新之后的某一点,子更新服务节点404开始从父更新服务节点处获取软件更新的过程。
依照一个实施例,子更新服务节点404可被配置成在周期性的基础上从父更新服务节点202处自动获取可用的软件更新。更具体地,管理员可通过管理用户界面218选择性地配置子更新服务节点404,以在周期性的基础上自动获取父更新服务节点402上可用的最新的软件更新。作为一个示例,管理员可配置子更新服务节点404,以在每日和/或每小时的基础上从其父更新服务节点402处获取最新的软件更新,并可以指定开始自动更新过程的一天中的时间。也可使用其它周期性的时间表和准则。类似地,管理员可通过管理用户界面218来手动启动更新过程。
为开始更新过程,在事件408,子更新服务节点404向父更新服务节点402验证并授权其本身。向父更新服务节点402的验证和授权提供了对软件更新的分发的控制元素,从而将更新分发限制到授权的更新服务节点。验证和授权技术在本领域中是众所周知的,可采用任何数量的技术来向父更新服务节点402验证和授权子更新服务节点404。本发明不限于任何一个技术。
在正确地向父更新服务节点402验证和授权之后,在事件410,父更新服务节点402向子更新服务节点404返回授权令牌。依照一个实施例,授权令牌是对时间敏感的令牌,它向子更新服务节点404提供了授权,以在有限的时间量内对父更新服务节点进一步执行更新活动。由此,如果子更新服务节点404被不正确地向父更新服务节点验证和授权,则不会返回任何授权令牌,并且子更新服务节点无法执行任何其它更新相关活动,除验证和授权之外。类似地,在更新令牌超时之后,子更新服务节点404无法对父更新服务节点402执行任何进一步的更新相关活动,除重新验证和重新授权之外。
在接收授权令牌之后,在事件412,子更新服务节点404连同授权令牌一起向父更新服务节点提交对产品更新目录的请求。产品更新目录表示父更新服务节点402分发软件更新的软件产品的内容的列表或表格。
依照本发明的各方面,不要求子更新服务节点404传播其父更新服务节点402上可用的所有软件更新。例如,参考图1的示例性更新分发系统,企业更新服务节点104可具有对根更新服务节点102上可用的软件产品的仅一小部分的场地许可证。因此,企业更新服务节点104不必要获取根更新服务节点102上可用的所有软件更新,因为大多数更新从不使用。因此,更新服务节点的管理员可选择性地建立更新服务节点上哪些软件产品更新可用。除选择软件产品之外,管理员也可选择性地标识涉及软件产品的额外的、更具体的方面,以将更新过程中消耗的网络带宽量最小化。例如,除选择软件产品之外,管理员可选择性地为所选择的软件产品指定仅请求软件更新的英语版本。类似地,管理员可选择性地指定仅下载具有特定属性的软件更新。作为这些特定属性的一个示例,管理员可为所选择的软件产品仅请求安全相关的软件更新,或软件提供商110认为关键的那些软件更新。总之,依照本发明的各方面,管理员可依照软件更新的任何可标识的属性或方面为所选择的软件产品请求软件更新列表。
依照本发明的一个方面,从父更新服务节点402获得的更新产品目录标识了更新对其可用的所有软件产品,不论子更新服务节点404是否被配置成分发每一产品的更新。然而,依照本发明的一个替换方面,从父更新服务节点402处获得的更新产品目录仅标识了子更新服务节点被配置成向其分发更新的那些软件产品。例如,可依照子更新服务节点303所属的一个或多个组来确定限制哪些软件产品将在产品更新目录中列出。
在事件414,父更新服务节点402向子更新服务节点404返回产品更新目录。在事件416,子更新服务节点404从产品更新目录中选择当前需要最新更新的那些产品。应当注意,即使产品更新目录可能仅列出子更新服务节点404所分发的那些软件产品,然而子更新服务节点可被配置成在不同的时候或按不同的周期时间表获取不同软件产品的更新。
在事件418,子更新服务节点404连同授权令牌一起提交更新同步请求,它标识子更新服务节点当前正在搜寻其更新的所选择产品。同步请求中包括的是标识对子更新服务节点404上的产品可用的最新更新的信息。标识产品的最新更新的信息在下文被称为“更新锚(update anchor)”。每一软件产品的更新锚通常储存在更新信息存储216(图2)中。在一个实施例中,更新锚包括修订号以及与其相关联的日期。
响应于更新同步请求,在事件420,父更新服务节点402确定哪些新更新(如果有的话)对子更新服务节点404可用。如上所述,该确定基于与特定软件更新相关联的特定规则和子更新服务节点404是其成员的一个或多个组,以及更新锚。对于本示例,如上所述,先前接收的软件更新被明确地不对子更新服务节点404授权。因此,在事件406接收的软件更新不被确定为对子更新服务节点404“可用”。因此,在事件422,向子更新服务节点404返回一更新列表,而不标识在事件406接收的软件更新。依照本发明的各方面,更新列表依照同步请求标识了父更新服务节点402上“可用”的所有更新。在一个实施例中,更新列表用一与更新相关联的唯一标识符来标识每一“可用”更新信息。
在事件424,由于更新列表是空的,即,当前在父更新服务节点402上没有更新“可用”,则子更新服务节点404的更新过程简单地延迟或休眠一段确定的时间。依照当前示例,在延迟时段期间,在事件426,父更新服务节点402的管理员授权在事件406接收的软件更新可以被分发到子更新服务节点404。
在事件428(图4B),子更新服务节点404再一次通过向父更新服务节点402验证和授权其本身来开始自动更新过程。作为响应,在事件430,父更新服务节点402向子更新服务节点404返回授权令牌。
在事件432,子更新服务节点404连同授权令牌一起向父更新服务节点402提交产品更新目录的请求。在事件434,父更新服务节点402向子更新服务节点404返回产品更新目录。在事件436,子更新服务节点404为期望更新的更新目录选择产品。在事件438,子更新服务节点404用授权令牌提交标识那些所选择的产品的更新同步请求。
由于子更新服务节点404被授权来获取先前在事件406处接收的软件更新,因此在事件440,父更新服务节点402确定该软件更新对子更新服务节点“可用”,并在更新列表中包括对应的更新信息。之后,在事件442,父更新服务节点402向子更新服务节点404返回更新列表,该更新列表现在标识在事件406处接收的软件更新。
由于具有标识在父更新服务节点402上“可用”的更新的更新列表,子更新服务节点404现在具有获取软件更新所需的信息。依照本发明的一个实施例,子更新服务节点404在以下两个部分从父更新服务节点402获取软件更新:获取更新元数据,以及获取更新内容或文件,下文称为更新负载。依照本发明的其它方面,更新元数据描述了软件更新的相关方面,包括但不限于:唯一地标识更新的更新标识符、与软件更新相关联的修订号信息、该软件更新是否应当被认为是优先级、语言专用信息、与其它软件更新的关系、用于下载目的更新负载的位置、安装处理程序例程等等。
通常用两个部分,即更新元数据和更新负载来下载整个软件更新是有利的某些原因是更新负载通常显著大于更新元数据,并且更新负载不总是立即需要的,即,需要用于安装到客户机计算机(如果在任何时候需要的话)。由此,依照本发明的一个实施例,更新负载与更新元数据分离地下载,并仅当需要时才下载。本领域的技术人员将认可这一下载技术为惰性下载(lazy downloading),或可选地为及时下载。依照本发明的各方面,管理员可配置更新服务节点来以及时的方式,或在获取更新元数据之后立即获取更新负载。此外,在一个替换实施例中,更新元数据和更新负载可以共同下载。
如图4B所示,由于具有在更新列表中标识的更新,在事件444,子更新服务节点404依照更新列表中其唯一的标识符请求“可用”软件更新的更新元数据。对于与父更新服务节点402的大多数其它通信交换,更新请求与授权令牌一起提交。应当注意,尽管在所示的示例中,所有的更新元数据在一次访问中下载,然而依照本发明的替换方面(未示出),更新元数据可以在一次以上访问中下载。例如,在第一次访问中,首先下载确定软件更新是否适用和/或合乎需要所需的更新元数据的仅一些元素,如适用规则和对其它软件更新的依赖性。然后,在确定更新适用和/或合乎需要之后,可获取更新元数据的剩余部分。作为响应,在事件446,父更新服务节点402向子更新服务节点404返回软件更新的更新元数据,子更新服务节点404进而将更新元数据储存在更新信息存储216中。
可任选地,在事件448,子更新服务节点404提交从父更新服务节点402下载更新负载的请求。作为响应,在事件450,父更新服务节点402向子更新服务节点404返回更新负载,子更新服务节点404进而将其储存在更新内容存储214中。在一个替换实施例中,子更新服务节点404从更新元数据中指定的位置的存储位置中下载更新负载,该存储位置可以不是父更新服务节点402。
由于现在在子更新服务节点404上发生了更新活动,因此在事件452,子更新服务节点生成更新报告,并将其提交给父更新服务节点402,该报告略述了最近刚发生的更新活动。之后,子更新服务节点404再一次延迟,直到下一次该更新过程被调度来运行(未示出)。
本领域的技术人员可以理解,上述事件用于说明目的,并反映了一组特定的示例性事件和环境。很清楚,依照特定的细节和情况,也可以出现其它事件,它们会导致对上述事件的某些变化。另外,应当理解,尽管子更新服务节点404从父更新服务节点402处获取最新的“可用”软件更新,然而子更新服务节点可以同时处理来自其子更新服务节点的更新请求。因此,上述事件序列应当被视为仅说明性的,并非局限本发明。
图5所示是在子更新服务节点,如图1的企业更新服务节点104上执行的,用于周期性地从其父更新服务节点获取更新的示例性例程500的流程图。在块502开始,子更新服务节点从父更新服务节点获取“可用”更新的经同步的更新列表。从父更新服务节点获取“可用”更新的经同步的更新列表在下文参考图6来描述。
图6是示例性子例程600的流程图,它适用于图5的示例性例程500,用于从父更新服务节点获取“可用”更新的经同步的更新列表。在块602开始,如上文相对于图4A和4B所描述的,子更新服务节点向父更新服务节点验证并授权其本身,并且响应于正确的验证和授权,接收一授权令牌。在块604,连同该授权令牌一起,子更新服务节点建立与父更新服务节点的通信参数。建立通信参数准许父和子更新服务节点正确地建立父节点和子节点都理解的公用基础。通信参数包括但不限于:通信更新协议或版本;产品分组;等等。
在建立了与父更新服务节点的通信参数之后,在块606,子更新服务节点获取描述父更新服务节点向其提供/分发更新的软件产品的产品更新目录。在块608,子更新服务节点选择当前正在搜寻更新的那些软件产品更新。在块610,子更新服务节点向父更新服务节点提交更新同步请求,包括授权令牌和与所选择的软件产品相关联的“锚”,它标识了已经在子更新服务节点上的现有修订和更新。
响应于更新同步请求,在块612,子更新服务节点从父更新服务节点获取更新列表、依照父更新服务节点上“可用”的软件更新来同步,“可用”是依照当前储存在子更新服务节点上的内容的。如上所述,更新列表用唯一的标识符标识了父更新服务节点上对子更新服务节点“可用”的那些软件更新。之后,示例性子例程600终止。
再次参考图5,在从父更新服务节点获取了经同步的更新列表之后,在判别块504,确定当前是否有任何软件更新“可用于”从父更新服务节点下载。这一确定是依照经同步的更新列表中是否有任何更新标识符来作出的。如果当前没有任何软件更新“可用于”下载,则示例性例程500前进到延迟块510,其中,示例性例程延迟/休眠,直到下一更新周期出现。可选地,如果有更新“可用于”从父更新服务节点下载,则在块506,子更新服务节点从父更新服务节点获取更新。从父更新服务节点获取“可用”更新在下文参考图7来描述。
图7所示是适用于图5的示例性例程500的、用于从父更新服务节点获取“可用”软件更新的示例性子例程700的流程图。在块702开始,选择更新列表中的第一更新标识符。在块704,子更新服务节点从父更新服务节点获取对应于所选择的更新标识符的更新元数据,并将其储存在更新信息存储216中。
依照一个实施例,在块706,子更新服务节点从父更新服务节点获取对应于所选择的更新标识符的更新负载,并将该更新负载储存在更新内容存储212中。可任选地,更新内容不需要直接被下载到子更新服务节点。如上所述,子更新服务节点可选择性地被配置成以及时的方式从父更新节点下载更新。依照该可任选处理,如图7所示,与从块704前进到块706相反,示例性子例程700可任选地从块704前进到判别块708。
在判别块708,在获取了所选择的更新标识符的更新元数据之后,并可任选地获取了更新负载之后,确定更新列表中是否有另外的更新标识符。如果有另外的更新标识符,则在块710,选择更新列表中的下一更新标识符,并且子例程700返回到块704以进行另外的处理。例程700继续,直到在判别块708确定更新列表中没有更多的更新标识符,在那时,示例性子例程700终止。
返回到图5,在从父更新服务节点获取了“可用”更新之后,在块508,子更新服务节点向父更新服务节点报告更新活动。之后,在延迟块510,示例性例程500延迟/休眠一段预定时间,直到下一更新周期,然后前进到块502以重复上述更新过程。
如图5所示,在判别块504,即使当父更新服务节点上没有任何更新“可用”时,子更新服务节点也可任选地被配置成向父更新服务节点报告其更新活动。依照这一替换配置,当没有更新可用时,示例性例程500可前进到块508,以报告更新活动。
图8是在父更新服务节点上实现的、用于响应于来自子更新服务节点的更新同步请求生成标识“可用”更新的经同步的更新列表的示例性例程800的流程图。在块802开始,父更新服务节点从子更新服务节点接收对标识“可用”更新的更新列表的更新同步请求。在块804,选择更新同步请求中标识的第一软件产品。
在判别块806,确定对标识的软件产品是否有任何可用更新。这一确定是依照储存在更新信息存储216中的软件产品的元数据、依照由子更新服务节点提供的更新锚、并依照与子更新服务节点所属的组相关联的分发规则来作出的。依照该确定,如果有更新“可用”,则在块808,与“可用”更新相关联的唯一更新标识符被写入更新列表中。在将“可用”更新的唯一更新标识符写入更新列表中之后,在块810,确定更新同步请求中是否标识了任何更多的其它软件产品。如果在更新同步请求中有另外的更新软件产品,则在块814,父更新服务节点选择更新同步请求中标识的下一软件产品,并返回到判别块806以确定对所选择的软件产品是否有“可用”更新。可选地,如果更新同步请求中没有标识更多的软件产品,则在块814,将更新列表返回到子更新服务节点。之后,示例性子例程800终止。
尽管示出并描述了本发明的各个实施例,包括较佳实施例,然而可以理解,可在不脱离本发明的精神和范围的情况下作出各种改变。
Claims (29)
1.一种用于通过通信网络分发软件更新以分发到客户机计算机的软件更新分发系统,其特征在于,它包括:
一根更新服务节点;以及
至少一个子更新服务节点;
其中,所述根更新服务节点和所述至少一个子更新服务节点以一分层方式组织,使得所述根更新服务节点是所述至少一个子更新服务节点的父更新服务节点,其中,除所述根更新服务节点之外,每一更新服务节点具有一父更新服务节点,并且其中,所述至少一个子更新服务节点的每一个也可以是至少一个其它子更新服务节点的父更新服务节点;以及
其中,所述根更新服务节点从一软件提供商处获取软件更新,并且其中,所述至少一个子更新服务节点的每一个通过从其父更新服务节点处获取所述软件更新来获取用于分发到客户机计算机的软件更新。
2.如权利要求1所述的软件更新分发系统,其特征在于,所述根更新服务节点包括:
一更新存储,用于储存软件更新;
一更新web服务,所述根更新服务节点通过其经由所述通信网络向其子更新服务节点分发软件更新;以及
一软件提供商接口,软件提供商通过其经由所述通信网络向所述根更新服务节点提交其软件更新。
3.如权利要求2所述的软件更新分发系统,其特征在于,所述至少一个子更新服务节点的每一个包括:
一更新存储,用于储存软件更新;
一更新web服务,所述子更新服务节点通过其经由所述通信网络从其父更新服务节点处获取软件更新,并且所述子更新服务节点通过其经由所述通信网络向其子更新服务节点分发软件更新;
一管理应用编程接口(API),管理员使用一管理用户界面通过其建立用于向其子更新服务节点分发软件更新的规则;以及
一子更新模块,用于依照所建立的规则确定哪些软件更新可用于分发到其子更新服务节点。
4.如权利要求3所述的软件更新分发系统,其特征在于,所述至少一个子更新服务节点的每一个还包括:
一报告模块,用于生成并向所述父更新服务节点发送更新活动报告;
一验证和授权模块,用于确定一更新服务节点是否被授权来从其子更新服务节点获取软件更新;以及
一客户机更新模块,用于向客户机计算机分发软件更新。
5.如权利要求4所述的软件更新分发系统,其特征在于,所述更新存储包括一储存了所述软件更新的更新负载的更新内容存储,以及一储存所述软件更新的更新元数据的更新信息存储。
6.如权利要求5所述的软件更新分发系统,其特征在于,所述子更新服务节点通过从所述父更新服务节点获取所述软件更新的更新元数据,并从所述父更新服务节点单独地获取所述软件更新的更新负载,来从所述父更新服务节点获取所述软件更新。
7.如权利要求6所述的软件更新分发系统,其特征在于,所述子更新服务节点以及时的方式从所述父更新服务节点获取所述软件更新的更新负载。
8.如权利要求4所述的软件更新分发系统,其特征在于,所述客户机更新模块依照由管理员使用所述管理用户界面通过所述管理API建立的规则来向客户机计算机分发软件更新。
9.如权利要求8所述的软件更新分发系统,其特征在于,所述根更新服务节点还包括一客户机更新模块,用于向客户机计算机分发软件更新。
10.如权利要求3所述的软件更新分发系统,其特征在于,所述子更新服务节点可选择性地被配置成周期性地从所述父更新服务节点获取可用软件更新。
11.一种用于向客户机计算机和子更新服务节点分发软件更新的更新服务节点,其特征在于,它包括:
一更新存储,用于储存软件更新;
一更新web服务,所述更新服务节点通过其经由一通信网络从一父更新服务节点获取软件更新,并且所述更新服务节点通过其经由所述通信网络向子更新服务节点分发软件更新;
一管理应用编程接口(API),管理员使用一管理用户界面通过其建立用于向所述子更新服务节点分发软件更新的规则;以及
一子更新模块,用于依照所建立的规则确定哪些软件更新可用于被分发到所述子更新服务节点。
12.如权利要求11所述的更新服务节点,其特征在于,它还包括:
一报告模块,用于向所述父更新服务节点生成更新活动报告;
一验证和授权模块,用于确定一子更新服务节点是否被授权来从所述更新服务节点获取软件更新;以及
一客户机更新模块,用于向客户机计算机分发软件更新。
13.如权利要求12所述的更新服务节点,其特征在于,所述更新存储包括一储存所述软件更新的更新负载的更新内容存储,以及一储存所述软件更新的更新元数据的更新信息存储。
14.如权利要求13所述的更新服务节点,其特征在于,所述更新服务节点通过从所述父更新服务节点获取所述软件更新的更新元数据,并从所述父更新服务节点单独地获取所述软件更新的更新负载,来从所述父更新服务节点获取所述软件更新。
15.如权利要求14所述的更新服务节点,其特征在于,所述更新服务节点以及时的方式从所述父更新服务节点获取所述软件更新的更新负载。
16.如权利要求12所述的更新服务节点,其特征在于,所述更新模块依照由管理员使用所述管理用户界面通过所述管理API建立的规则向客户机计算机分发软件更新。
17.如权利要求11所述的更新服务节点,其特征在于,所述子更新服务节点可以被选择性地配置成周期性地从所述父更新服务节点获取可用软件更新。
18.一种由软件更新系统中的子更新服务节点通过一通信网络从一父更新服务节点获取软件更新的方法,其特征在于,所述方法包括以下步骤:
(a)从所述父更新服务节点获取一软件产品列表,所述父更新服务节点向所述软件产品提供软件更新;
(b)从所述软件产品列表中选择一软件产品;
(c)向所述父更新服务节点提交一对与所选择的软件产品相对应的可用软件更新的请求;
(d)获取一标识对所述子更新服务节点可用的所选择的软件产品的软件更新的软件更新列表;
(e)从所述父更新服务节点获取所述软件更新列表中的每一软件更新。
19.如权利要求18所述的方法,其特征在于,从所述父更新服务节点获取所述软件更新列表中的每一软件更新包括:
从所述父更新服务节点获取对应于所述软件更新的元数据;以及
获取所述更新负载。
20.如权利要求19所述的方法,其特征在于,获取所述更新负载包括当一子更新服务节点或一客户机更新服务节点需要时,以及时的方式获取所述更新负载。
21.如权利要求20所述的方法,其特征在于,向所述父更新服务节点的对与所选择的软件产品相对应的可用软件更新的请求包括一更新锚,所述更新锚标识了所述更新服务节点上当前可用的所选择软件产品的最新修订和更新。
22.如权利要求21所述的方法,其特征在于,它还包括首先向所述父更新服务节点提交一验证和授权请求,并响应于所述验证和授权请求获取一授权令牌的步骤;
并且其中,从所述子更新服务节点到所述父更新服务节点的每一后续通信是用所述授权令牌作出的。
23.如权利要求18所述的方法,其特征在于,步骤(a)-(e)是在周期性的基础上执行的。
24.一种具有计算机可执行指令的计算机可读媒质,当所述指令在一更新服务计算机上执行时,实现一种方法,其特征在于,所述方法包括以下步骤:
(a)从所述父更新服务节点获取一软件产品列表,所述父更新服务节点向所述软件产品提供软件更新;
(b)从所述软件产品列表中选择一软件产品;
(c)向所述父更新服务节点提交一对与所选择的软件产品相对应的可用软件更新的请求;
(d)获取一标识对所述子更新服务节点可用的所选择的软件产品的软件更新的软件更新列表;
(e)从所述父更新服务节点获取所述软件更新列表中的每一软件更新。
25.一种在软件更新分发系统的一父更新服务节点上经由通信网络执行的、向一子更新服务节点分发软件更新的方法,其特征在于,所述方法包括:
(a)从一子更新服务节点接收一对软件更新目录的请求,所述软件更新目录标识所述父更新服务节点向其提供软件更新的软件产品;
(b)向所述子更新服务节点返回一软件更新目录;
(c)接收一对所述子更新服务节点可用的所选择的软件产品的软件更新列表的请求;
(d)确定所选择的软件产品的任何软件更新是否对所述子更新服务节点可用;
(e)向所述子更新服务节点返回标识被确定为对所述子更新服务节点可用的所选择的软件产品的那些软件更新的软件更新列表,所述软件更新列表依照一唯一更新标识符标识了可用软件更新;
(f)从所述子更新服务节点接收一对与可用软件更新相对应的元数据的更新请求,所述更新请求按其唯一更新标识符标识了所述可用软件更新;以及
(g)返回对应于所述更新请求中标识的软件更新的更新元数据,所述更新元数据包括对应于所述软件更新的信息,包括用于获取所述对应更新负载的引用。
26.如权利要求25所述的方法,其特征在于,它还包括:
在步骤(a)-(g)之前:
从所述子更新服务节点接收一验证和授权请求;
确定所述子更新服务节点是否被授权来从所述父更新服务节点获取软件
更新;以及
如果所述子更新服务节点被授权来从所述父更新服务节点获取软件更
新,则向所述子更新服务节点返回一授权令牌;以及
其中,从所述子更新服务节点到所述父更新服务节点的每一后续通信是用所述授权令牌作出的。
27.如权利要求26所述的方法,其特征在于,它还包括:
接收一对与所述更新请求中标识的软件更新相对应的更新负载的更新请求;以及
返回与所述更新请求中标识的软件更新相对应的更新负载;
28.如权利要求25所述的方法,其特征在于,对所选择的软件产品的软件更新列表的所述请求包括一更新锚,它标识了所述子更新服务节点上对应于所选择的软件产品的最新更新信息;以及
其中,确定所选择的软件产品的任何软件更新是否对所述子更新服务节点可用包括依照所述更新锚,并依照与向所述子更新服务节点的软件更新分发相关联的规则,来确定是否有任何更新对所述子更新服务节点可用。
29.一种具有计算机可执行指令的计算机可读媒质,当所述指令在一父更新服务计算机上执行时,实现一种方法,其特征在于,所述方法包括以下步骤:
(a)从一子更新服务节点接收一软件更新目录请求,所述软件更新目录标识了所述父更新服务节点向其提供软件更新的软件产品;
(b)向所述子更新服务节点返回一软件更新目录;
(c)接收一对所述子更新服务节点可用的所选择的软件产品的软件更新列表的请求;
(d)确定所选择的软件产品的任何软件更新是否对所述子更新服务节点可用;
(e)向所述子更新服务节点返回一标识被确定为对所述子更新服务节点可用的所选择的软件产品的那些软件更新的软件更新列表,所述软件更新列表依照一唯一更新标识符标识了可用软件更新;
(f)从所述子更新服务节点接收一对与可用软件更新相对应的元数据的更新请求,所述更新请求按其唯一更新标识符标识了所述可用软件更新;以及
(g)返回对应于所述更新请求中标识的软件更新的更新元数据,所述更新元数据包括对应于所述软件更新的信息,包括用于获取所述对应更新负载的引用。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/799,351 US7853609B2 (en) | 2004-03-12 | 2004-03-12 | Update distribution system architecture and method for distributing software |
US10/799,351 | 2004-03-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1668009A true CN1668009A (zh) | 2005-09-14 |
CN1668009B CN1668009B (zh) | 2010-10-13 |
Family
ID=34827676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100081508A Expired - Fee Related CN1668009B (zh) | 2004-03-12 | 2005-02-06 | 用于分发软件的更新分发系统的体系结构和方法 |
Country Status (16)
Country | Link |
---|---|
US (1) | US7853609B2 (zh) |
EP (1) | EP1575244A3 (zh) |
JP (1) | JP4902120B2 (zh) |
KR (1) | KR101159338B1 (zh) |
CN (1) | CN1668009B (zh) |
AU (1) | AU2005200345B2 (zh) |
BR (1) | BRPI0500134A (zh) |
CA (1) | CA2494475A1 (zh) |
MX (1) | MXPA05001672A (zh) |
MY (1) | MY150140A (zh) |
NO (1) | NO332249B1 (zh) |
NZ (1) | NZ538168A (zh) |
RU (1) | RU2408063C2 (zh) |
SG (2) | SG115728A1 (zh) |
TW (1) | TWI370408B (zh) |
ZA (1) | ZA200501209B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100407650C (zh) * | 2005-11-10 | 2008-07-30 | 中国工商银行股份有限公司 | 分布式业务系统中的软件版本升级系统及其方法 |
CN101383720B (zh) * | 2007-09-05 | 2011-05-11 | 大唐移动通信设备有限公司 | 受控网元的软件更新方法及受控网元、操作维护中心 |
CN103020180A (zh) * | 2012-11-28 | 2013-04-03 | 北京奇虎科技有限公司 | 一种基于控制节点部署程序的方法和装置 |
CN103488677A (zh) * | 2013-07-22 | 2014-01-01 | 广州唯品会信息科技有限公司 | 项目配置方法和装置 |
WO2014078992A1 (zh) * | 2012-11-20 | 2014-05-30 | 杭州华为数字技术有限公司 | 一种升级方法和节点设备 |
CN104504496A (zh) * | 2014-12-02 | 2015-04-08 | 成都万象天龙科技有限公司 | 一种基于进销存系统的控制系统与控制方法 |
CN104537455A (zh) * | 2014-12-02 | 2015-04-22 | 成都万象天龙科技有限公司 | 一种基于进销存系统的带加密功能的控制系统与控制方法 |
CN104537456A (zh) * | 2014-12-02 | 2015-04-22 | 成都万象天龙科技有限公司 | 一种基于进销存系统的带加密管控功能的控制系统与控制方法 |
CN106502226A (zh) * | 2008-11-25 | 2017-03-15 | 费舍-柔斯芒特系统股份有限公司 | 过程控制系统中的软件部署管理器整合 |
CN110998519A (zh) * | 2017-05-30 | 2020-04-10 | 法国电力公司 | 用于配电网的分层设备软件更新 |
CN111866169A (zh) * | 2018-01-23 | 2020-10-30 | 创新先进技术有限公司 | 一种服务更新方法及装置、系统 |
Families Citing this family (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7478381B2 (en) * | 2003-12-15 | 2009-01-13 | Microsoft Corporation | Managing software updates and a software distribution service |
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 |
US7568195B2 (en) * | 2003-12-16 | 2009-07-28 | Microsoft Corporation | Determining a maximal set of dependent software updates valid for installation |
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 |
BRPI0508244B1 (pt) * | 2004-03-12 | 2017-10-10 | Microsoft Technology Licensing, Llc | Update service node having an application programming interface |
US7526534B2 (en) * | 2004-07-16 | 2009-04-28 | Cassatt Corporation | Unified system services layer for a distributed processing system |
JP2006119848A (ja) * | 2004-10-20 | 2006-05-11 | Fujitsu Ltd | ソフトウェア更新プログラム、ソフトウェア更新装置およびソフトウェア更新方法 |
US20060117075A1 (en) * | 2004-12-01 | 2006-06-01 | International Business Machines Corporation | Prerequisite, dependent and atomic deltas |
US8219807B1 (en) | 2004-12-17 | 2012-07-10 | Novell, Inc. | Fine grained access control for linux services |
US8151245B2 (en) * | 2004-12-17 | 2012-04-03 | Computer Associates Think, Inc. | Application-based specialization for computing nodes within a distributed processing system |
US8271785B1 (en) | 2004-12-20 | 2012-09-18 | Novell, Inc. | Synthesized root privileges |
US20060153208A1 (en) * | 2005-01-11 | 2006-07-13 | Costanzo Francis P | Discovery, deployment, and security systems and methods |
US7818734B2 (en) * | 2005-01-21 | 2010-10-19 | Callwave, Inc. | Methods and systems for transferring data over a network |
US7490072B1 (en) | 2005-02-16 | 2009-02-10 | Novell, Inc. | Providing access controls |
TWI270789B (en) * | 2005-03-03 | 2007-01-11 | Via Tech Inc | Method for automatically installing software program |
US7716661B2 (en) * | 2005-03-16 | 2010-05-11 | Microsoft Corporation | Embedded device update service |
US7634548B2 (en) * | 2005-04-02 | 2009-12-15 | Microsoft Corporation | Distributed service deliver model |
US20060224623A1 (en) * | 2005-04-02 | 2006-10-05 | Microsoft Corporation | Computer status monitoring and support |
US8352935B2 (en) | 2005-05-19 | 2013-01-08 | Novell, Inc. | System for creating a customized software distribution based on user requirements |
US8074214B2 (en) * | 2005-05-19 | 2011-12-06 | Oracle International Corporation | System for creating a customized software installation on demand |
US8577761B1 (en) * | 2005-06-30 | 2013-11-05 | Oracle America, Inc. | System and method for dynamic offering topologies |
WO2007067190A2 (en) * | 2005-12-06 | 2007-06-14 | Triactive, Inc. | Discovery, deployment, and security systems and methods |
US7716658B2 (en) * | 2005-12-09 | 2010-05-11 | Oracle America, Inc. | Method and apparatus for optimizing patching of objects containing references |
US7840955B1 (en) * | 2005-12-30 | 2010-11-23 | United Services Automobile Association (Usaa) | Method and system for restoring software |
US8046755B2 (en) * | 2005-12-30 | 2011-10-25 | Sap Ag | Deploying software based on a calculated deployment risk level |
JP5071113B2 (ja) * | 2006-02-01 | 2012-11-14 | 富士通株式会社 | オブジェクト関係表示プログラムおよびオブジェクト関係表示方法 |
DE102006005365A1 (de) * | 2006-02-07 | 2007-08-16 | Sick Ag | Verfahren zum Aktualisieren der Firmware von Feldgeräten |
JP4976021B2 (ja) * | 2006-02-10 | 2012-07-18 | 株式会社リコー | ダウンロードシステム、拠点サーバ及びプログラム |
US8676973B2 (en) | 2006-03-07 | 2014-03-18 | Novell Intellectual Property Holdings, Inc. | Light-weight multi-user browser |
JP2009536395A (ja) * | 2006-06-19 | 2009-10-08 | サムスン エレクトロニクス カンパニー リミテッド | Otaが可能な端末の情報アップグレードシステム及び方法{informationupgradesystemandmethodforota−capabledevice} |
US8775572B2 (en) | 2006-06-23 | 2014-07-08 | Microsoft Corporation | Public network distribution of software updates |
CN101512969B (zh) * | 2006-09-06 | 2011-10-05 | 网络通保安有限公司 | 推式更新系统 |
US8620817B2 (en) * | 2006-09-14 | 2013-12-31 | Flexera Software, Inc. | Method and system for creating license management in software applications |
US8224930B2 (en) * | 2006-09-19 | 2012-07-17 | The Invention Science Fund I, Llc | Signaling partial service configuration changes in appnets |
KR101079592B1 (ko) | 2006-11-03 | 2011-11-04 | 삼성전자주식회사 | 디스플레이장치 및 그 정보갱신방법 |
US8056070B2 (en) * | 2007-01-10 | 2011-11-08 | Goller Michael D | System and method for modifying and updating a speech recognition program |
US8224974B1 (en) * | 2007-01-29 | 2012-07-17 | Intuit Inc. | Method and apparatus for downloading information |
US8196134B2 (en) * | 2007-02-08 | 2012-06-05 | Microsoft Corporation | Network service for a software change catalog |
US8762984B2 (en) * | 2007-05-31 | 2014-06-24 | Microsoft Corporation | Content distribution infrastructure |
US8214470B2 (en) * | 2007-11-02 | 2012-07-03 | Telefonaktiebolaget L M Ericsson (Publ) | Upgrading software in radio base station nodes |
CN101453416A (zh) * | 2007-11-30 | 2009-06-10 | 国际商业机器公司 | 用于远程程序安装的包预取的服务节点、网络及其方法 |
US8521145B2 (en) * | 2008-01-08 | 2013-08-27 | Telefonaktiebolaget L M Ericsson (Publ) | Software distribution between radio base stations |
US8522231B2 (en) * | 2008-01-30 | 2013-08-27 | International Business Machines Corporation | Updating a plurality of computers |
US8171560B2 (en) * | 2008-04-07 | 2012-05-01 | Microsoft Corporation | Secure content pre-distribution to designated systems |
US8340131B2 (en) * | 2008-05-05 | 2012-12-25 | Sentilla Corporation, Inc. | Efficient broadcast of data in a communication network |
US20090288071A1 (en) * | 2008-05-13 | 2009-11-19 | Microsoft Corporation | Techniques for delivering third party updates |
JP5081089B2 (ja) * | 2008-07-17 | 2012-11-21 | キヤノン株式会社 | 放送受信装置、及びその制御方法 |
JP4826834B2 (ja) * | 2008-08-07 | 2011-11-30 | 日本電気株式会社 | 通信システム、接続装置、情報通知方法、プログラム |
US10387140B2 (en) | 2009-07-23 | 2019-08-20 | S3G Technology Llc | Modification of terminal and service provider machines using an update server machine |
CN101989208A (zh) * | 2009-08-04 | 2011-03-23 | 鸿富锦精密工业(深圳)有限公司 | 软件更新方法 |
US8984013B2 (en) | 2009-09-30 | 2015-03-17 | Red Hat, Inc. | Conditioning the distribution of data in a hierarchical database |
US9031987B2 (en) * | 2009-09-30 | 2015-05-12 | Red Hat, Inc. | Propagation of data changes in distribution operations in hierarchical database |
US8996453B2 (en) | 2009-09-30 | 2015-03-31 | Red Hat, Inc. | Distribution of data in a lattice-based database via placeholder nodes |
EP2375345A1 (en) * | 2010-04-08 | 2011-10-12 | Accenture Global Services Limited | System for supplying digital content |
US9083762B2 (en) * | 2010-05-28 | 2015-07-14 | Greg Saunders | System and method for providing hybrid on demand services to a work unit |
CN102271146B (zh) * | 2010-06-04 | 2016-03-30 | 中兴通讯股份有限公司 | 一种多个人网设备协同下载的方法和系统 |
US9122998B2 (en) * | 2010-07-28 | 2015-09-01 | International Business Machines Corporation | Catalog-based software license reconciliation |
US9230273B2 (en) | 2010-07-28 | 2016-01-05 | International Business Machines Corporation | Creation and use of constraint templates |
US9495710B2 (en) * | 2010-09-20 | 2016-11-15 | Sony Corporation | Social networking management server |
JP5574905B2 (ja) * | 2010-10-08 | 2014-08-20 | 株式会社野村総合研究所 | モジュール配布システム |
US9141410B2 (en) * | 2011-03-08 | 2015-09-22 | Rackspace Us, Inc. | Pluggable allocation in a cloud computing system |
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 |
US8671185B2 (en) * | 2011-05-03 | 2014-03-11 | Facebook, Inc. | Data transmission between devices based on bandwidth availability |
CA2744165A1 (en) * | 2011-06-23 | 2012-12-23 | Ibm Canada Limited - Ibm Canada Limitee | Centrally controlled proximity based software installation |
US8613101B2 (en) | 2011-09-12 | 2013-12-17 | Microsoft Corporation | Software distribution service federation |
US8959504B2 (en) | 2011-10-18 | 2015-02-17 | Microsoft Corporation | Update scanning |
JP5684173B2 (ja) * | 2012-03-05 | 2015-03-11 | 株式会社東芝 | 情報処理装置及びクライアント管理方法 |
US9152410B2 (en) * | 2012-06-21 | 2015-10-06 | Vaibhav KHANDELWAL | Auto-update while running client interface with handshake |
US9110755B2 (en) * | 2012-08-10 | 2015-08-18 | Microsoft Technology Licensing, Llc | Aggregation of update sets |
EP2907330B1 (en) | 2012-10-09 | 2018-07-25 | Nokia Technologies Oy | Method and apparatus for disabling algorithms in a device |
US9418072B2 (en) * | 2013-03-04 | 2016-08-16 | Vmware, Inc. | Cross-file differential content synchronization |
EP3014428A4 (en) * | 2013-06-28 | 2017-03-22 | Samsung Electronics Co., Ltd. | Method and apparatus for updating application |
KR101491018B1 (ko) * | 2013-07-10 | 2015-02-06 | 에스케이플래닛 주식회사 | 클라우드 오픈 api 기반 토큰을 이용한 클라우드 서비스 점검 시스템, 클라우드 서비스 점검 방법 및 이를 위한 장치 |
US10489132B1 (en) * | 2013-09-23 | 2019-11-26 | Sprint Communications Company L.P. | Authenticating mobile device for on board diagnostic system access |
RU2571726C2 (ru) * | 2013-10-24 | 2015-12-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ проверки целесообразности установки обновлений |
US9971987B1 (en) * | 2014-03-25 | 2018-05-15 | Amazon Technologies, Inc. | Out of order data management |
CN104301383A (zh) * | 2014-09-05 | 2015-01-21 | 小米科技有限责任公司 | 一种升级方法、装置及设备 |
US9619244B2 (en) | 2014-09-05 | 2017-04-11 | Xiaomi Inc. | Method and system for upgrading an electronic device |
CN105005487B (zh) * | 2015-06-29 | 2018-06-22 | 清华大学 | 一种持续服务的高性能集群操作系统在线升级方法 |
CN105204915A (zh) * | 2015-10-29 | 2015-12-30 | 小米科技有限责任公司 | 应用程序更新方法、装置及系统 |
US20170344355A1 (en) * | 2016-05-27 | 2017-11-30 | GM Global Technology Operations LLC | Updating vehicle system modules |
RU2649292C2 (ru) * | 2016-06-24 | 2018-03-30 | Акционерное общество "Лаборатория Касперского" | Способ формирования списка агентов обновлений |
US20180018161A1 (en) * | 2016-07-13 | 2018-01-18 | Blackberry Limited | Updating firmware at enterprise devices |
RU2634183C1 (ru) | 2016-09-08 | 2017-10-24 | Акционерное общество "Лаборатория Касперского" | Способ рассылки обновлений |
US10089661B1 (en) * | 2016-12-15 | 2018-10-02 | Amazon Technologies, Inc. | Identifying software products to test |
JP6584440B2 (ja) | 2017-01-27 | 2019-10-02 | キヤノン株式会社 | 情報処理システム、情報処理ステムの制御方法およびそのプログラム。 |
US10001986B1 (en) * | 2017-02-09 | 2018-06-19 | International Business Machines Corporation | Updating software instances |
US10365910B2 (en) * | 2017-07-06 | 2019-07-30 | Citrix Systems, Inc. | Systems and methods for uninstalling or upgrading software if package cache is removed or corrupted |
EP3770422A1 (en) * | 2019-07-23 | 2021-01-27 | Siemens Gamesa Renewable Energy A/S | Updating software and/or firmware of a plurality of wind turbine devices |
US11720372B2 (en) | 2019-12-04 | 2023-08-08 | Vmware, Inc. | Managing the creation and execution of update campaigns in an multitenancy hierarchy |
US20220138352A1 (en) * | 2020-11-05 | 2022-05-05 | EMC IP Holding Company LLC | Multi-Cloud Framework for Data Protection Using Threshold-Based File Reconstruction |
US11507366B1 (en) | 2021-06-22 | 2022-11-22 | Microsoft Technology Licensing, Llc | Dynamically controlled check-in frequency for an update management system |
TWI768989B (zh) * | 2021-06-28 | 2022-06-21 | 神達數位股份有限公司 | 資料更新方法及輔助系統 |
US20230306117A1 (en) * | 2022-03-28 | 2023-09-28 | Lenovo Global Technology (United States) Inc. | Signed update package including a software update payload and compatibility data |
Family Cites Families (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0792744B2 (ja) * | 1990-08-20 | 1995-10-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 多重レベル適用業務ソフトウェアをデータ処理装置にインストールする方法。 |
SE513182C2 (sv) * | 1991-06-12 | 2000-07-24 | Icl Systems Ab | Förfarande och system för att revidera data i ett distribuerat datasystem |
DE69230452T2 (de) * | 1991-08-19 | 2000-08-24 | Sun Microsystems, Inc. | Verfahren und Vorrichtung zur Änderungskontrolle in mehreren Entwicklungsumgebungen |
WO1994025913A2 (en) * | 1993-04-30 | 1994-11-10 | Novadigm, Inc. | Method and apparatus for enterprise desktop management |
US5860012A (en) * | 1993-09-30 | 1999-01-12 | Intel Corporation | Installation of application software through a network from a source computer system on to a target computer system |
US5835911A (en) * | 1994-02-08 | 1998-11-10 | Fujitsu Limited | Software distribution and maintenance system and method |
US5845090A (en) * | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
GB9412553D0 (en) * | 1994-06-22 | 1994-08-10 | At & T Global Solutions Intern | Method and apparatus for distributing software |
US5491820A (en) * | 1994-11-10 | 1996-02-13 | At&T Corporation | Distributed, intermittently connected, object-oriented database and management system |
US5787153A (en) * | 1995-09-29 | 1998-07-28 | Unisys Corporation | System for incremental redistribution of telephony applications computing workload |
US5845077A (en) * | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer |
US5706431A (en) * | 1995-12-29 | 1998-01-06 | At&T | System and method for distributively propagating revisions through a communications network |
US6049671A (en) * | 1996-04-18 | 2000-04-11 | Microsoft Corporation | Method for identifying and obtaining computer software from a network computer |
JPH09305675A (ja) | 1996-05-20 | 1997-11-28 | Nec Corp | 汎用アプリケーションの配付方式 |
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 |
US6237020B1 (en) * | 1996-10-01 | 2001-05-22 | International Business Machines Corporation | Task-oriented automatic distribution of software |
US5933647A (en) * | 1997-01-24 | 1999-08-03 | Cognet Corporation | System and method for software distribution and desktop management in a computer network environment |
JPH10269085A (ja) * | 1997-03-27 | 1998-10-09 | Tec Corp | サテライトコンピュータのプログラム更新方法 |
US6314565B1 (en) * | 1997-05-19 | 2001-11-06 | Intervu, Inc. | System and method for automated identification, retrieval, and installation of multimedia software components |
US6055363A (en) * | 1997-07-22 | 2000-04-25 | International Business Machines Corporation | Managing multiple versions of multiple subsystems in a distributed computing environment |
AU2204699A (en) * | 1997-12-24 | 1999-07-19 | Qualcomm Incorporated | Method and system for software version management in a network management system |
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 |
US6094679A (en) * | 1998-01-16 | 2000-07-25 | Microsoft Corporation | Distribution of software in a computer network environment |
US6192518B1 (en) * | 1998-01-22 | 2001-02-20 | Mis Only, Inc. | Method for distributing software over network links via electronic mail |
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 |
US7080371B1 (en) * | 1998-03-03 | 2006-07-18 | Siebel Systems, Inc. | Method, system, apparatus and program product for distribution and instantiation of software upgrades |
US6167567A (en) * | 1998-05-05 | 2000-12-26 | 3Com Corporation | Technique for automatically updating software stored on a client computer in a networked client-server environment |
US6330715B1 (en) * | 1998-05-19 | 2001-12-11 | Nortel Networks Limited | Method and apparatus for managing software in a network system |
SE514762C2 (sv) | 1998-05-28 | 2001-04-23 | Ericsson Telefon Ab L M | Förfarande, anordning och portabel terminal för programvarunedladdning i ett trådlöst näverk samt sådant telekommunikationsnät |
US6799277B2 (en) * | 1998-06-04 | 2004-09-28 | Z4 Technologies, Inc. | System and method for monitoring software |
US6353926B1 (en) * | 1998-07-15 | 2002-03-05 | Microsoft Corporation | Software update notification |
US7073172B2 (en) * | 1998-09-21 | 2006-07-04 | Microsoft Corporation | On demand patching of applications via software implementation installer mechanism |
US6289511B1 (en) * | 1998-09-29 | 2001-09-11 | Telephonaktiebolaget Lm Ericsson | Method and system for distributing software in a telecommunications network |
US6301708B1 (en) * | 1998-11-12 | 2001-10-09 | Hewlett-Packard Company | Software installation process using abstract data and program files |
US6938075B1 (en) | 1998-12-24 | 2005-08-30 | Computer Associates Think, Inc. | Method and apparatus for hierarchical software distribution packages including composite packages |
US6408434B1 (en) * | 1999-01-07 | 2002-06-18 | Sony Corporation | System and method for using a substitute directory to automatically install an update program |
US6725377B1 (en) * | 1999-03-12 | 2004-04-20 | Networks Associates Technology, Inc. | Method and system for updating anti-intrusion software |
US6385766B1 (en) * | 1999-05-20 | 2002-05-07 | Dell Usa L.P. | Method and apparatus for windows-based installation for installing software on build-to-order computer systems |
CA2402254A1 (en) | 1999-08-16 | 2001-02-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of distributing software updates in an event-driven network |
JP3671759B2 (ja) * | 1999-08-26 | 2005-07-13 | 株式会社日立製作所 | ソフトウェア配布方法およびシステム |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
EP1107108A1 (en) * | 1999-12-09 | 2001-06-13 | Hewlett-Packard Company, A Delaware Corporation | System and method for managing the configuration of hierarchically networked data processing devices |
US7191208B1 (en) * | 1999-12-14 | 2007-03-13 | International Business Machines Corporation | Methods of selectively distributing data in a computer network and systems using the same |
US6754678B2 (en) * | 1999-12-20 | 2004-06-22 | California Institute Of Technology | Securely and autonomously synchronizing data in a distributed computing environment |
FR2809839A1 (fr) | 1999-12-30 | 2001-12-07 | Thomson Multimedia Sa | Procede de telechargement de donnees procedees par des signaux d'annonce |
US6615405B1 (en) * | 2000-01-06 | 2003-09-02 | Power Quest Corporation | Method and system for distributing and maintaining software across a computer network |
JP2001222424A (ja) * | 2000-02-08 | 2001-08-17 | Fujitsu Ltd | ソフトウェアライセンス管理装置,ソフトウェアライセンス管理方法およびソフトウェアライセンス管理用プログラム記録媒体 |
JP2001265603A (ja) * | 2000-03-22 | 2001-09-28 | Nec Corp | 自動振分ソフトウエア配布システム及びその方法 |
US6618857B1 (en) * | 2000-03-27 | 2003-09-09 | Microsoft Corporation | Method and system for installing software on a computer system |
US6549914B1 (en) * | 2000-05-17 | 2003-04-15 | Dell Products, L.P. | System and method for statistical file preload for factory installed software in a computer |
US6701521B1 (en) * | 2000-05-25 | 2004-03-02 | Palm Source, Inc. | Modular configuration and distribution of applications customized for a requestor device |
US6912711B1 (en) * | 2000-05-25 | 2005-06-28 | International Business Machines Corporation | Method of applying an update to a contained collection of program and data files based upon versions |
JP2002007255A (ja) * | 2000-06-27 | 2002-01-11 | Nec Corp | ダウンロードの配布先管理方法 |
KR100455566B1 (ko) * | 2000-06-30 | 2004-11-09 | 인터내셔널 비지네스 머신즈 코포레이션 | 코드 갱신을 위한 장치 및 방법 |
JP3666796B2 (ja) * | 2000-07-14 | 2005-06-29 | 日本電信電話株式会社 | データ配信システムにおけるダウンロード方法及びそのプログラムを記憶した記憶媒体 |
GB0017336D0 (en) * | 2000-07-15 | 2000-08-30 | Ibm | Preferable modes of software package deployment |
CA2423175A1 (en) * | 2000-09-22 | 2002-03-28 | Patchlink.Com Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
US20020075824A1 (en) * | 2000-12-14 | 2002-06-20 | Willekes Tom J. | System and method for distributing files in a wireless network infrastructure |
US7143406B2 (en) * | 2001-01-23 | 2006-11-28 | Wildtangent, Inc. | Asynchronous software update |
US7140012B2 (en) * | 2001-03-09 | 2006-11-21 | Bea Systems, Inc. | Method and apparatus for multi-version updates of application services |
US20040015961A1 (en) * | 2001-03-19 | 2004-01-22 | International Business Machines Corporation | Method and apparatus for automatic prerequisite verification and installation of software |
US6957426B2 (en) * | 2001-04-05 | 2005-10-18 | Hewlett-Packard Development Company L.P. | Independent tool integration |
US6976251B2 (en) * | 2001-05-30 | 2005-12-13 | International Business Machines Corporation | Intelligent update agent |
US6954928B2 (en) * | 2001-08-08 | 2005-10-11 | Hewlett-Packard Development Company, L.P. | Method for selecting a set of patches to update a system of programs |
US20030037325A1 (en) * | 2001-08-17 | 2003-02-20 | Hargrove David C. | System and methods for automatically installing a correct software version from media containing multiple software versions |
US6535924B1 (en) * | 2001-09-05 | 2003-03-18 | Pluris, Inc. | Method and apparatus for performing a software upgrade of a router while the router is online |
US7003767B2 (en) * | 2001-10-02 | 2006-02-21 | International Business Machines Corp. | System and method for remotely updating software applications |
DE10148877A1 (de) * | 2001-10-04 | 2003-04-30 | Siemens Ag | Verfahren zum Verteilen von Daten in einem Datennetz |
JP2003150342A (ja) * | 2001-11-13 | 2003-05-23 | Seiko Epson Corp | ドライバ管理システム |
EP1459175A4 (en) * | 2001-11-28 | 2008-10-22 | Ibm | METHOD AND APPARATUS FOR DYNAMICALLY CREATING SOFTWARE OBJECTS |
CN1350230A (zh) | 2001-12-03 | 2002-05-22 | 复旦大学 | 病毒库主动分发系统 |
NO20021247D0 (no) * | 2002-03-13 | 2002-03-13 | Ericsson Telefon Ab L M | Fremgangsmåte og system for oppgradering av programvare |
US20030200300A1 (en) * | 2002-04-23 | 2003-10-23 | Secure Resolutions, Inc. | Singularly hosted, enterprise managed, plural branded application services |
US20040006586A1 (en) | 2002-04-23 | 2004-01-08 | Secure Resolutions, Inc. | Distributed server software distribution |
JP3810343B2 (ja) * | 2002-05-24 | 2006-08-16 | 三菱電機株式会社 | 映像システム、映像機器、ソフトウェアのインストール方法、この方法を実行するプログラム、及びこのプログラムを記憶した記録媒体 |
US20040031029A1 (en) * | 2002-08-06 | 2004-02-12 | Kyu-Woong Lee | Methods and systems for automatically updating software components in a network |
US7370092B2 (en) * | 2002-09-12 | 2008-05-06 | Computer Sciences Corporation | System and method for enhanced software updating and revision |
US20040059703A1 (en) * | 2002-09-23 | 2004-03-25 | Jerry Chappell | Cascading behavior of package generation/installation based on variable parameters |
JP4408033B2 (ja) * | 2002-09-24 | 2010-02-03 | 株式会社リコー | 遠隔管理システム |
US7664984B2 (en) * | 2002-10-09 | 2010-02-16 | Xpoint Technologies, Inc. | Method and system for updating a software image |
US20040076166A1 (en) * | 2002-10-21 | 2004-04-22 | Patenaude Jean-Marc Guy | Multi-service packet network interface |
US20040088700A1 (en) * | 2002-10-31 | 2004-05-06 | Chung-I Lee | System and method for automatically installing software on client computers via a network |
US7814476B2 (en) * | 2002-10-31 | 2010-10-12 | Oracle America, Inc. | Systems and methods for updating software |
US7096464B1 (en) * | 2002-12-02 | 2006-08-22 | Sap Aktiengesellschaft | Software update method and apparatus |
US7181739B1 (en) * | 2003-03-14 | 2007-02-20 | Novell, Inc. | Installation relationship database |
EP1687767A1 (en) * | 2003-11-14 | 2006-08-09 | Koninklijke Philips Electronics N.V. | Product data exchange |
US7546594B2 (en) * | 2003-12-15 | 2009-06-09 | Microsoft Corporation | System and method for updating installation components using an installation component delta patch in a networked environment |
US20050172284A1 (en) * | 2004-01-30 | 2005-08-04 | Dandekar Shree A. | Method and system for automated generation of customized factory installable software |
US20070180490A1 (en) * | 2004-05-20 | 2007-08-02 | Renzi Silvio J | System and method for policy management |
US20060130045A1 (en) * | 2004-11-19 | 2006-06-15 | Jonathan Wesley | Systems and methods for dynamically updating computer systems |
US7937697B2 (en) * | 2005-05-19 | 2011-05-03 | International Business Machines Corporation | Method, system and computer program for distributing software patches |
-
2004
- 2004-03-12 US US10/799,351 patent/US7853609B2/en active Active
-
2005
- 2005-01-18 JP JP2005010920A patent/JP4902120B2/ja active Active
- 2005-01-21 KR KR1020050005821A patent/KR101159338B1/ko active IP Right Grant
- 2005-01-25 BR BR0500134-0A patent/BRPI0500134A/pt not_active IP Right Cessation
- 2005-01-26 RU RU2005101832/08A patent/RU2408063C2/ru not_active IP Right Cessation
- 2005-01-27 CA CA002494475A patent/CA2494475A1/en not_active Withdrawn
- 2005-01-28 AU AU2005200345A patent/AU2005200345B2/en not_active Ceased
- 2005-02-01 NO NO20050547A patent/NO332249B1/no not_active Application Discontinuation
- 2005-02-04 TW TW094103761A patent/TWI370408B/zh not_active IP Right Cessation
- 2005-02-04 MY MYPI20050430A patent/MY150140A/en unknown
- 2005-02-06 CN CN2005100081508A patent/CN1668009B/zh not_active Expired - Fee Related
- 2005-02-07 SG SG200500870A patent/SG115728A1/en unknown
- 2005-02-07 SG SG200706848-9A patent/SG136135A1/en unknown
- 2005-02-10 ZA ZA200501209A patent/ZA200501209B/xx unknown
- 2005-02-10 NZ NZ538168A patent/NZ538168A/en not_active IP Right Cessation
- 2005-02-11 MX MXPA05001672A patent/MXPA05001672A/es active IP Right Grant
- 2005-02-22 EP EP05101318A patent/EP1575244A3/en not_active Withdrawn
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100407650C (zh) * | 2005-11-10 | 2008-07-30 | 中国工商银行股份有限公司 | 分布式业务系统中的软件版本升级系统及其方法 |
CN101383720B (zh) * | 2007-09-05 | 2011-05-11 | 大唐移动通信设备有限公司 | 受控网元的软件更新方法及受控网元、操作维护中心 |
CN106502226A (zh) * | 2008-11-25 | 2017-03-15 | 费舍-柔斯芒特系统股份有限公司 | 过程控制系统中的软件部署管理器整合 |
WO2014078992A1 (zh) * | 2012-11-20 | 2014-05-30 | 杭州华为数字技术有限公司 | 一种升级方法和节点设备 |
CN104471894A (zh) * | 2012-11-20 | 2015-03-25 | 杭州华为数字技术有限公司 | 一种升级方法和节点设备 |
CN104471894B (zh) * | 2012-11-20 | 2018-02-09 | 杭州华为数字技术有限公司 | 一种升级方法和节点设备 |
CN103020180A (zh) * | 2012-11-28 | 2013-04-03 | 北京奇虎科技有限公司 | 一种基于控制节点部署程序的方法和装置 |
CN103488677A (zh) * | 2013-07-22 | 2014-01-01 | 广州唯品会信息科技有限公司 | 项目配置方法和装置 |
CN103488677B (zh) * | 2013-07-22 | 2017-09-22 | 广州唯品会信息科技有限公司 | 项目配置方法和装置 |
CN104537456A (zh) * | 2014-12-02 | 2015-04-22 | 成都万象天龙科技有限公司 | 一种基于进销存系统的带加密管控功能的控制系统与控制方法 |
CN104537455A (zh) * | 2014-12-02 | 2015-04-22 | 成都万象天龙科技有限公司 | 一种基于进销存系统的带加密功能的控制系统与控制方法 |
CN104504496A (zh) * | 2014-12-02 | 2015-04-08 | 成都万象天龙科技有限公司 | 一种基于进销存系统的控制系统与控制方法 |
CN110998519A (zh) * | 2017-05-30 | 2020-04-10 | 法国电力公司 | 用于配电网的分层设备软件更新 |
CN111866169A (zh) * | 2018-01-23 | 2020-10-30 | 创新先进技术有限公司 | 一种服务更新方法及装置、系统 |
CN111866169B (zh) * | 2018-01-23 | 2023-08-18 | 创新先进技术有限公司 | 一种服务更新方法及装置、系统 |
Also Published As
Publication number | Publication date |
---|---|
SG136135A1 (en) | 2007-10-29 |
US20050203968A1 (en) | 2005-09-15 |
CA2494475A1 (en) | 2005-09-12 |
NO20050547L (no) | 2005-09-13 |
ZA200501209B (en) | 2006-10-25 |
SG115728A1 (en) | 2005-10-28 |
KR20050091999A (ko) | 2005-09-16 |
NO332249B1 (no) | 2012-08-06 |
NZ538168A (en) | 2006-08-31 |
NO20050547D0 (no) | 2005-02-01 |
JP4902120B2 (ja) | 2012-03-21 |
TWI370408B (en) | 2012-08-11 |
CN1668009B (zh) | 2010-10-13 |
RU2408063C2 (ru) | 2010-12-27 |
EP1575244A2 (en) | 2005-09-14 |
RU2005101832A (ru) | 2006-07-10 |
US7853609B2 (en) | 2010-12-14 |
EP1575244A3 (en) | 2006-06-21 |
AU2005200345B2 (en) | 2010-04-29 |
JP2005259114A (ja) | 2005-09-22 |
TW200530847A (en) | 2005-09-16 |
MY150140A (en) | 2013-11-29 |
MXPA05001672A (es) | 2005-09-22 |
KR101159338B1 (ko) | 2012-09-07 |
BRPI0500134A (pt) | 2005-11-01 |
AU2005200345A1 (en) | 2005-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1668009A (zh) | 用于分发软件的更新分发系统的体系结构和方法 | |
CN1668010A (zh) | 用来在更新分发系统中分发更新元数据的基于标记模式 | |
CN101069172A (zh) | 用于管理更新分发系统中软件更新的分发的应用程序编程接口 | |
US7590669B2 (en) | Managing client configuration data | |
US20050125525A1 (en) | Method, system, and storage medium for providing intelligent distribution of software and files | |
US20080209503A1 (en) | Method and system for managing license objects to applications in an application platform | |
CN1777867A (zh) | 使用增量压缩打补丁更新文件的系统和方法 | |
CN1735862A (zh) | 用于更新网络化环境中的安装组件的系统和方法 | |
US20110196793A1 (en) | Generic feature licensing framework | |
US20040088700A1 (en) | System and method for automatically installing software on client computers via a network | |
CN110737506A (zh) | 一种虚拟机镜像版本管理的方法 | |
CN106484458A (zh) | 一种开放型软件仓库管理系统及其管理方法 | |
US11372859B2 (en) | Efficiently supporting value style access of MOBs stored in SQL LOB column by providing value based semantics for LOBs in RDBMS | |
CN1218246C (zh) | 一种智能网业务管理接入点自动升级的方法 | |
Installation | Administration Guide | |
IL166812A (en) | Update distribution system architecture and method for distributing software | |
MXPA06010207A (en) | Application programming interface for administering the distribution of software updates in an update distribution system |
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: 20150430 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150430 Address after: Washington State Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC Address before: Washington State Patentee before: Microsoft Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101013 |