CN101902494A - 更新服务节点 - Google Patents

更新服务节点 Download PDF

Info

Publication number
CN101902494A
CN101902494A CN2009102258159A CN200910225815A CN101902494A CN 101902494 A CN101902494 A CN 101902494A CN 2009102258159 A CN2009102258159 A CN 2009102258159A CN 200910225815 A CN200910225815 A CN 200910225815A CN 101902494 A CN101902494 A CN 101902494A
Authority
CN
China
Prior art keywords
service node
update service
interface
update
acquisition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009102258159A
Other languages
English (en)
Other versions
CN101902494B (zh
Inventor
D·詹博沃
J·塞勒
K·肖曼
D·德冈
T·A·施彭赫姆
R·杰弗里斯
K·J·欧文斯
C·坦纳
王泉
N·A·汉弥尔顿
D·C·马尔
N·R·索伊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101902494A publication Critical patent/CN101902494A/zh
Application granted granted Critical
Publication of CN101902494B publication Critical patent/CN101902494B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提出了一种用于管理更新服务节点上软件更新的分发的应用程序编程接口(API)。该API提供了多个接口调用,通过这些接口调用,管理员可建立用于分发对更新服务节点可用的软件更新的规则。

Description

更新服务节点
本申请是国际申请日为2005年3月11日、国际申请号为PCT/US2005/008111、中国国家申请日为2005年3月11日、申请号为200580007302.0、发明名称为“用于管理更新分发系统中软件更新的分发的应用程序编程接口”的专利申请的分案申请。
技术领域
本发明涉及软件和计算机网络,尤其涉及用于管理更新分发系统中软件更新的分发的应用程序编程接口。
背景技术
几乎所有市场上可购买的软件产品都要经受连续的修订过程以修复或更新软件的特征。软件产品的每一版本经常需要添加新文件、用较新的版本替换现有文件、删除过时的文件、或这些动作的各种组合。替换软件产品的较旧的文件、添加新文件以及删除过时的文件的这一过程在下文中被称为“更新产品”,而更新产品时所使用的数据集合,包括二进制文件、数据文件、更新指令、元数据、数据库数据、系统注册表设置、安全设置等在下文中被简称为“更新”。
一旦软件供应商为软件产品创建了更新,无论该更新是修补问题、增强安全性还是添加新特征,软件供应商都希望使更新广泛地可用于其消费者基础。通常,诸如当更新针对纠正产品中的缺陷或解决关键的安全问题时,软件供应商希望尽可能快地在顾客的计算机上安装更新。实际上,大多数软件供应商都具有将软件更新尽可能快且无麻烦地分发到其消费者的商业动机。
计算机行业在连接到网络,尤其是连接到因特网的计算机的数量上经历了爆炸性的增长。由于这一爆炸性的增长,且由于通过到因特网的连接而变得可用的通信能力,因特网已成为了软件供应商用于向其顾客分发更新的重要且完整的渠道。事实上,因特网已成为了许多软件供应商用于向其顾客提供软件更新的主要分发渠道。软件供应商通常为了其最大的利益而通过因特网来分发软件更新,因为通过因特网的电子更新分发降低了其总成本,且使得顾客能够在软件更新一当可用时就获得它们。这些软件更新越来越频繁地通过因特网自动进行,而无需用户干预。
尽管因特网现在常用作用于从软件供应商分发软件的渠道,但是经常会出现若干问题。两个这样的问题包括(1)与更新分发基础结构/资源有关的效率,以及(2)对软件更新的分发和安装的管理控制。
对于分发资源的效率而言,包括因特网的网络仅拥有有限量的通信资源,通常被称为带宽。有限量的通信带宽经常会导致瓶颈,尤其是对于诸如微软公司的
Figure B2009102258159D0000021
家族操作系统和相关的生产产品等流行软件产品的更新而言。即使在遍及因特网分布的多个下载位置上有软件更新可用的情况下,也存在这样的瓶颈。出现这样的瓶颈的一个原因是因为因特网而变得可用的未结构化访问模型。例如,如果计算机A处的第一用户请求对软件产品的最新下载,则该下载通过第一用户的独立服务供应商(ISP)。此外,该请求作为单个个性化的访问来处理,这意味着该请求与任何其它网络话务和/或请求独立且无关地处理。由此,如果恰巧具有同一ISP的计算机B处的第二用户请求与第一用户相同的下载,则来自第二用户的请求也作为单个个性化的访问来处理。在本示例中,同一下载将通过同一基础结构发送两次,因为每一请求都是孤立地处理的。很清楚,如果用户数量大量增长,则有限的通信带宽将变为瓶颈。在相当常见的这一示例中,如果下载能被高速缓存在本地位置,且每一用户请求都从该本地高速缓存得到满足,则将会有效得多。
对于分发控制,许多公司,尤其是大公司具有合法的原因来控制向其计算机的更新分发。例如,不幸的是某些更新具有或引入通常被称为程序错误的缺陷,这些缺陷会“破坏”软件产品的特征。这些被破坏的特征可能是不重要的,但是它们时常会干扰企业的任务关键特征。由于企业无法承受丢失其任务关键特征,因此负责的企业在将更新发行到其剩余的计算机之前首先在受控环境中评估并测试每一软件更新某一段时间。这一评估时间段准许公司确认更新是否会不利地影响任务关键特征。仅当令人满意地确定更新不会使任何任务关键特征崩溃,才准许将该更新分发到公司的其余计算机。很清楚,大多数公司必须实行对软件更新在其计算机上的安装的控制。
企业和公司通常需要控制软件更新的分发的另一原因是确保公司中计算机之间的一致性。对信息服务部门重要的是具有所有计算机可在其上操作的标准化的目标平台,而不论是用于文字处理程序还是操作系统。如果没有标准,则软件和计算机维护将变得不必要地复杂和困难。
本地控制重要的又一原因是用于记账目的。在大公司中,将软件个别地安装到计算机上或对公司中的每一计算机个别地维护特定软件产品的许可证通常是低效的。相反,单个场地许可证准许公司在多台计算机上运行一个软件产品。由此,可能要求报告在场地许可证下运行产品的计算机的数量,或可能要求公司限制在场地许可证下运行产品的计算机的数量。所有这些原因通常要求对软件更新分发的本地控制。
鉴于上述与软件更新分发有关的各种问题,所需的是一种用于提供对软件更新的分发的控制以及提高其分发效率的可扩展软件更新分发体系结构。本发明解决了现有技术中发现的这些和其它问题。
发明内容
根据本发明的各方面,提出了一种更新服务节点,它具有用于管理该更新服务节点上的软件更新的分发的应用程序编程接口。该更新服务节点包括用于储存软件更新的更新存储。该更新服务节点还包括更新web服务,通过该更新web服务,更新服务节点经由通信网络从父更新服务节点获得软件更新,并且通过该更新web服务,更新服务节点经由通信网络将软件更新分发给子更新服务节点。此外,该更新服务节点包括管理应用程序编程接口(API),通过该API,管理员建立对向子更新服务节点和客户机计算机的软件更新分发的控制,其中该管理API是展现管理员通过其建立所述规则的多个接口调用的对象。
根据本发明的其它方面,提出了一种用于管理更新服务节点上的软件更新分发的应用程序编程接口。该API包括获得配置接口调用,它返回用于对更新服务节点读和写软件更新管理配置值的配置接口对象。该API还包括获得定购接口调用,它返回更新服务节点上所定义的定购接口对象。该API还包括获得更新接口调用,它返回对应于传入获得更新接口调用的更新标识符的更新接口对象;以及获得多个更新接口调用,它返回包含对应于传入获得多个更新接口调用的值的多个更新接口对象的更新集合对象。该API还包括获得计算机接口调用,它返回对应于与更新服务节点相关联且在获得计算机接口调用中标识的客户机计算机的客户机计算机对象;以及获得多个计算机接口调用,它返回包括对应于与更新服务节点相关联的客户机计算机的多个客户机计算机对象的计算机集合对象。另外,该API包括获得组接口调用,它返回获得组接口调用中标识的目标组对象;以及获得多个组调用接口,它返回包括对应于更新服务节点上的多个目标组的多个目标组对象的目标组集合对象。
根据本发明的另外一些方面,提出了一种用于分发软件更新的软件更新分发系统。该软件更新分发系统包括一更新服务节点以及与该更新服务节点相关联的管理应用程序编程接口(API)。该管理API是展示用于控制软件更新的分发的多个接口调用的接口对象。该管理API包括获得配置接口调用,它返回用于对更新服务节点读和写软件更新管理配置值的配置接口对象。该API还包括获得定购接口调用,它返回更新服务节点上定义的定购接口对象。该API还包括获得更新接口调用,它返回对应于传入获得更新接口调用的更新标识符的更新接口对象;以及获得多个更新接口调用,它返回包含对应于传入获得多个更新接口调用的值的多个更新接口对象的更新集合对象。该API还包括获得计算机接口调用,它返回对应于与更新服务节点相关联并在获得计算机接口调用中标识的客户机计算机的客户机计算机对象;以及获得多个计算机接口调用,它返回包括对应于与更新服务节点相关联的多个客户机计算机的多个客户机计算机对象的计算机集合对象。另外,该API包括获得组接口调用,它返回获得组接口调用中标识的目标组对象;以及获得多个组接口调用,它返回包括对应于更新服务节点上的多个目标组的多个目标组对象的目标组集合对象。
附图说明
当结合附图参考以下详细描述,本领域的技术人员可以更容易理解且更好地明白本发明的以上方面和许多附加优点,附图中:
图1是根据本发明的各方面形成的一个示例性更新分发系统的图示;
图2是示出根据本发明的各方面形成的更新服务节点的示例性逻辑组件的框图;
图3是示出根据本发明的各方面形成的根更新服务节点的示例性逻辑组件的框图;
图4是示出根据本发明的各方面在从父更新服务节点向子更新服务节点提供软件更新时父更新服务节点和子更新服务节点之间的示例性交换的框图;
图5是示出在子更新服务节点上执行的从其父更新服务节点周期性地获得更新的示例性例程的流程图;
图6是适于在图5的示例性例程中使用的用于从父更新服务节点获得更新目录的示例性子例程的流程图;
图7是适于在图5的示例性例程中使用的用于从父更新服务节点获得软件更新的示例性子例程的流程图;
图8是用于处理来自子更新服务节点的更新请求的示例性例程的流程图;
图9是示出对于配置更新服务节点以向客户机计算机分发软件更新而言如何使用管理API的图示;以及
图10是示出用于管理更新服务节点上的软件更新的分发的某些管理API调用的框图。
具体实施方式
根据本发明的各方面,提出了一种以分层结构方式组织的用于分发软件更新的更新分发系统。图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包括5个客户机计算机,但是软件供应商的更新仅从根更新服务节点102下载到公司更新服务节点104一次。因此,很清楚,当更新服务节点服务的客户机计算机的数量增加时,父更新服务节点和子更新服务节点之间的通信带宽使用率保持恒定,由此实质上减少了本应使用的通信带宽量。另外,更新分发系统既是可扩展又是可伸缩的。更新分发系统按以下至少两种方式是可扩展的:可向父更新服务节点添加任何数量的子更新服务节点,以及子更新服务节点也可以是父更新服务节点。更新分发系统的每一子树因此可被剪裁以满足个别需求。
图2是示出根据本发明的各方面形成的更新服务节点200,诸如公司更新服务节点104(图1)或评估更新服务节点106(图1)的示例性逻辑组件的框图。如图2所示,更新服务节点200包括更新web服务202、客户机更新模块204、子更新模块206以及报告模块208。示例性更新服务节点200还包括认证/授权模块210、管理应用程序编程接口(API)212、更新内容存储214、管理用户界面218以及更新信息存储216。
更新web服务202提供一组公共的web服务,通过该组web服务,客户机计算机、子更新服务节点以及父更新服务节点可与更新服务节点通信。例如,参考图1,为了使子/评估更新服务节点106能够从父/公司更新服务节点104获得软件更新,客户机通过父节点的更新web服务202通信。类似地,当诸如根更新服务节点102等父更新服务节点有包括更新的信息要传递到其子更新服务节点104时,父更新服务节点通过子节点的更新web服务202通信。
在本发明的一个实际的实施例中,由更新web服务202提供的一组公共的web服务,通常称为web服务接口包括以下调用:GetServerAuthConfig(获得服务器认证配置),用于从父更新服务节点获得认证配置信息;GetConfigData(获得配置数据)以及GetServerConfigData(获得服务器配置数据),用于获得父更新服务节点的配置信息和属性;GetServerCookie(获得服务器cookie),用于从父更新服务节点获得授权令牌;GetRevisionIdList(获得修订ID列表),用于从父更新服务节点获得更新列表;GetUpdateData(获得更新数据),用于从父更新服务节点获得更新元数据和更新有效载荷;以及ReportEvents(报告事件),用于向其父更新服务节点报告发生在更新服务节点上的更新活动。
客户机更新模块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的某一其它程序,管理员最终为该更新服务节点以及任何子更新服务节点和客户机计算机控制所有的更新处理方面。管理API的一个实际的实施例作为附录附加到本说明书,且将参考图9-XX来更详细描述。
通过管理用户界面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)下载。以此方式,“可用”更新在它被实际请求之前无需经由各种网络信道分发。根据本发明的各方面,更新服务节点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,根更新服务节点102包括可任选客户机更新模块204,因为该根更新服务节点直接服务客户机计算机112。然而,如果根更新服务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。如可以见到的,示例性图400被分成两半,其左半部分对应于父更新服务节点402的动作和事件,其右半部分对应于子更新服务节点404的动作和事件。
出于相对于图4进行讨论的目的,还应理解,父更新服务节点402可以是或不是更新分发系统100中的根更新服务节点。另外,出于本讨论的目的,假定父更新服务节点402由管理员配置成使子更新服务节点404在未被管理员明确授权的情况下可以不接收软件更新。
如示例性交换400中所示的,在事件406处开始,如果父更新服务节点402是根更新服务节点102,则它从软件供应商100直接接收软件更新,或者通过更新分发系统100间接接收软件更新。在父更新服务节点402从软件供应商100接收软件更新之后的某一点,子更新服务节点400开始从父更新服务节点获得软件更新的过程。
根据一个实施例,子更新服务节点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上可用的所有软件更新,因为大多数更新从不被使用。因此,更新服务节点上的管理员可选择性地确定哪些软件产品更新在更新服务节点上可用。
根据本发明的一方面,从父更新服务节点402获得的更新产品目录标识了更新对其可用的所有软件产品,而不论子更新服务节点404是否被配置成为每一产品分发更新。然而,根据本发明的一个替换方面,从父更新服务节点402获得的更新产品目录仅标识了请求的子更新服务节点被配置成为其分发更新的那些软件产品。例如,限制在产品更新目录中列出哪些软件产品可根据子更新服务节点404所属的一个或多个组来确定。
在事件414处,父更新服务节点402向子更新服务节点404返回产品更新目录。在事件416处,子更新服务节点404从产品更新目录中选择当前需要最新更新的那些产品。应当注意,即使产品更新目录可能仅列出子更新服务节点404分发的那些软件产品,但子更新服务节点可被配置成在不同的时间或在不同的周期性调度表上为不同的软件产品获得更新。
在事件418处,子更新服务节点404提交更新同步请求以及标识子更新服务节点当前正在寻求其更新的所选择产品的授权令牌。同步请求中包括标识对子更新服务节点404上的产品可用的最新更新的信息。标识产品的最新更新的信息在下文中称为“更新定位点”。每一软件产品的更新定位点通常储存在更新信息存储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中。
在一个实施例中,更新元数据包括但不限于:与特定更新相关联的唯一标识符;更新的描述,诸如更新的大小、更新所解决的问题、修订/定位点信息等等;更新适用性规则,诸如更新是否要求安装前一更新、更新是否必须被单独安装、更新是否取代其它可用更新等等;最终用户许可证同意数据;以及在更新有效载荷未储存在父更新服务节点402上的情况下用于定位和/或访问该更新有效载荷的URL。
可任选地,在事件448处,子更新服务节点404提交从父更新服务节点402下载更新有效载荷的请求。作为响应,在事件450处,父更新服务节点402向子更新服务节点404返回更新有效载荷,子更新服务节点404进而将其储存在更新内容存储214中。
由于更新活动现在发生在子更新服务节点404上,因此在事件452处,子更新服务节点生成并向父更新服务节点402提交列出最近刚发生的更新活动的更新报告。之后,更新服务节点404再次延迟,直到下一次更新过程被调度运行(未示出)。
本领域的技术人员可以理解,上述事件仅用于说明的目的,且反映了一组特定的示例性事件和情况。和清楚,根据导致对上述事件的某些变化的具体细节和情况,也可发生其它事件。另外,应当理解,尽管子更新服务节点404从父更新服务节点402获得最新的“可用”软件更新,但是子更新服务节点可同时处理来自其子更新服务节点的请求。因此,以上事件序列应被视为仅仅是说明性的,而非对本发明的限制。
图5是示出在子更新服务节点上,诸如图1的公司更新服务节点104上执行的,用于从其父更新服务节点周期性地获得更新的示例性例程500的流程图。在框502处开始,子更新服务节点从父更新服务节点获得“可用”更新的同步的更新列表。从父更新服务节点获得“可用”更新的同步的更新列表将在下文参考图6来描述。
图6是适于在图5的示例性例程500中使用的用于从父更新服务节点获得“可用”更新的同步的更新列表的示例性子例程600的流程图。在框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终止。
如上所述,通过管理API 212,经由管理用户界面218或某一其它类似地配备的模块管理了更新服务节点。为更好地理解管理API 212如何操作,图9是示出如何对将更新服务节点配置成向客户机计算机分发软件更新利用管理API的图示。
如图9所示,管理员使用管理API来生成订阅904和组906。在更新过程908期间,更新服务节点使用对该更新服务节点可用的更新902以及订阅904和组906来向诸如客户机计算机921-922等客户机计算机分发更新。
如本领域的技术人员所理解的,管理员生成对特定产品或产品家族的更新以及更新类别的订阅。例如,产品可以是微软公司的Internet Explorer产品,而订阅指示该产品正在等待可用更新。类似地,产品家族通常指示多个产品,诸如微软公司的Office作为一个产品家族,它包括多个可标识产品。订阅通常也标识被批准下载到客户机计算机的更新的类型。例如,更新的类型可以是关键的、严重的、一般的等等。
根据本发明的一个实施例,客户机计算机被组织成组,而订阅和更新被应用于组。在一个实际的实施例中,每一客户机计算机属于两个组:所有计算机组以及一个其它组。根据该实际实施例,更新服务节点定义了所有计算机组和一个其它的、未分配计算机组。通过管理API 212,管理员能够自由地定义任何数量的其它组,并向组分配客户机计算机。无法向组分配客户机计算机将客户机计算机保留在未分配组中。简言之,根据该实施例,客户机计算机属于所有计算机组和一个其它组。组可包括任何数量的客户机计算机。用于应用软件更新的客户机计算机的组在图9中被示为框910、924和926。
根据一个实际的实施例,管理API 212是通过其来配置和管理微软公司的Windows软件更新服务的接口。在该实施例中,管理API 212一般由接口对象IUpdateServer(更新服务器)实现或通过其来访问。IUpdateServer接口对象的一个实际实施例的描述在本节的末端作为表1列出。该IUpdateServer接口对象是作为2004年3月12日提交的美国临时申请第60/553,042号的一部分包括的管理API文档的一部分,该申请通过引用包含于此。然而,表1中标识的各种接口调用一般在下文参考图10来描述。
图10是示出用于管理更新服务节点上的软件更新的分发的某些管理API调用的框图。有了对IUpdateServer 1002对象的访问,调用者可作出用于获取更新服务节点配置信息1004、当前订阅信息1006、当前批准规则1008、更新服务节点状态信息1010、获得更新1012、获得客户机计算机1014和获得组1016的接口调用。
配置信息接口调用1004提供对更新服务节点的可配置(且可读)值的访问,包括但不限于可用语言、谁是父更新服务节点以及该父更新服务节点的位置、代理服务器和地址、更新服务节点与其父更新服务节点同步更新的模式等等。在一个实际实施例中,如附录中所描述的,配置信息接口调用1004是IUpdateServer对象上的“GetConfiguration”(获得配置)接口调用,它返回更新服务节点的IConfiguration(配置)接口对象的实例。IConfiguation接口对象在所包含的临时申请的API中有更详细的描述。
订阅信息接口调用1006提供了对订阅信息的访问,包括但不限于最新订阅工作的状态、下一订阅工作(例如,将特定更新下载到客户机计算机)何时完成、订阅同步的频率等等。在一个实际实施例中,有至少两个获得订阅信息的不同接口调用。IUpdateServer对象上的“GetSubscription”(获得订阅)接口调用返回对应于更新服务节点上的特定订阅的ISubscription(订阅)接口对象,而“GetSubscriptions”(获得多个订阅)接口调用返回ISubscription接口对象的集合。另外,订阅是使用“CreateSubscription”(创建订阅)接口调用来创建的,该接口调用创建更新服务节点上的空订阅。ISubscription接口对象的细节在所包含的临时申请的API中有描述。
更新服务节点状态接口调用1010提供对更新服务节点状态的访问,包括但不限于当前部署的更新、可用更新等。在一个实际的实施例中,“GetUpdatesSummary”(获得更新概述)接口调用返回描述更新服务节点的整体更新概述信息的概述集合对象。关于该接口调用的细节在所包含的临时申请的API中有描述。
获得更新接口调用1012提供对关于可用软件更新的信息的访问。更具体地,该接口调用提供对系统中可用的所有软件更新的访问。在一个实际的实施例中,有若干获得更新信息的接口调用。“GetUpdate”(获得更新)接口调用返回提供关于系统上的特定更新的信息的IUpdate(更新)对象。另外,“GetUpdates”(获得多个更新)接口调用返回对系统可用的IUpdates(多个更新)对象的集合。关于这些接口调用的其它细节在所包含的临时申请的API中提供。
获得计算机接口调用1014提供对与更新服务节点相关联的客户机计算机的访问。在一个实际的实施例中,有至少两个访问关于各种客户机计算机的信息的接口调用,包括但不限于“GetComputer”(获得计算机)接口调用,它返回对应于接口调用中标识的客户机计算机的IComputer(计算机)对象,以及“GetComputers”(获得多个计算机)接口调用,它返回IComputer对象的集合,该集合包括与更新服务节点相关联的所有客户机计算机。如上所述,关于IUpdateServer对象上的该接口调用的其它细节在所包含的临时申请的API中有描述。
获得组接口调用1016提供对更新服务节点上定义的组的访问。如上所述,在一个实际的实施例中,每一客户机计算机属于所有计算机组和一个其它组。如果客户机计算机未被分配给一个组,则给客户机计算机默认属于未分配组。至少在该实际实施例中,有多个接口调用可用,包括但不限于“GetTargetGroup”(获得目标组)接口调用,它返回对应于传入该接口调用的组标识符的ITargetGroup(目标组)对象,以及“GetTargetGroups”(获得多个目标组)接口调用,它返回对应于更新服务节点上定义的所有组的ITargetGroup对象的集合。
本领域的技术人员可以理解,尽管描述了某些接口调用,但它们不是一组穷举的接口调用。实际上,如附录中所示的,管理API的一个实际实施例包括众多接口调用,其中大部分都未具体描述。
关于下表,即表1,缩写WUS是Windows更新服务器的首字母缩写词。
表1
Figure B2009102258159D0000201
Figure B2009102258159D0000211
Figure B2009102258159D0000221
Figure B2009102258159D0000231
Figure B2009102258159D0000241
尽管示出并描述了本发明的各种实施例,包括较佳实施例,但可以理解,可在不脱离本发明的精神和范围的前提下对其进行各种改变。

Claims (17)

1.一种更新服务节点,包括:
更新存储,用于储存软件更新;
提供更新web服务的更新web服务模块,通过所述更新web服务,所述更新服务节点经由通信网络从父更新服务节点获得软件更新,并且通过所述更新web服务,所述更新服务节点经由所述通信网络向子更新服务节点分发软件更新;以及
提供管理应用程序编程接口API的管理API模块,通过所述管理API,管理员建立对软件更新向子更新服务节点和客户机计算机的分发的控制,其中所述管理API是展示管理员用于建立所述规则的多个接口调用的对象,
其中,所述软件更新包括更新元数据和更新有效载荷,当满足惰性下载条件时,软件更新向子更新服务节点的分发包括:将所述更新元数据下载到所述子更新服务节点,以及仅在所述子更新服务节点请求时将所述更新有效载荷下载到所述子更新服务节点。
2.如权利要求1所述的更新服务节点,其特征在于,所述管理API展示一获得配置接口调用,所述获得配置接口调用返回用于对所述更新服务节点读和写软件更新管理配置值的配置接口对象。
3.如权利要求2所述的更新服务节点,其特征在于,所述配置接口对象是IConfiguration接口对象。
4.如权利要求2所述的更新服务节点,其特征在于,所述管理API展示一获得订阅接口调用,所述获得订阅接口调用返回对应于传入所述获得订阅接口调用的订阅标识符的订阅接口对象。
5.如权利要求4所述的更新服务节点,其特征在于,所述订阅接口对象是ISubscription接口对象。
6.如权利要求4所述的更新服务节点,其特征在于,所述管理API展示一获得多个订阅接口调用,所述获得多个订阅接口调用返回所述更新服务节点上定义的订阅集合接口对象。
7.如权利要求4所述的更新服务节点,其特征在于,所述管理API展示一获得更新接口调用,所述获得更新接口调用返回对应于传入所述获得更新接口调用的更新标识符的更新接口对象。
8.如权利要求7所述的更新服务节点,其特征在于,所述更新接口对象是IUpdate接口对象。
9.如权利要求7所述的更新服务节点,其特征在于,所述管理API展示一获得多个更新接口调用,所述获得多个更新接口调用返回包含对应于传入所述获得多个更新接口调用的值的多个更新接口对象的更新集合对象。
10.如权利要求9所述的更新服务节点,其特征在于,传入所述获得多个更新接口调用的值包括已部署状态对象,且不包括隐藏更新布尔值。
11.如权利要求9所述的更新服务节点,其特征在于,所述管理API展示一获得计算机接口调用,所述获得计算机接口调用返回对应于与所述更新服务节点相关联且在所述获得计算机接口调用中标识的客户机计算机的客户机计算机对象。
12.如权利要求11所述的更新服务节点,其特征在于,所述客户机计算机对象是IComputer对象。
13.如权利要求11所述的更新服务节点,其特征在于,所述管理API展示一获得多个计算机接口调用,所述获得多个计算机接口调用返回包括对应于与所述更新服务节点相关联的多个客户机计算机的多个客户机计算机对象的计算机集合对象。
14.如权利要求13所述的更新服务节点,其特征在于,所述管理API展示一获得组接口调用,所述获得组接口调用返回所述获得组接口调用中标识的目标组对象。
15.如权利要求14所述的更新服务节点,其特征在于,所述管理API展示一获得多个组接口调用,所述获得多个组接口调用返回包括对应于所述更新服务节点上的多个目标组的多个目标组对象的目标组集合对象。
16.如权利要求1所述的更新服务节点,其特征在于,所述管理API是IUpdateServer接口对象。
17.如权利要求1所述的更新服务节点,其特征在于,所述管理API包括:
获得配置接口调用,所述获得配置接口调用返回用于对所述更新服务节点读和写软件更新管理配置值的配置接口对象;
获得订阅接口调用,所述获得订阅接口调用返回所述更新服务节点上定义的订阅接口对象;
获得更新接口调用,所述获得更新接口调用返回对应于传入所述获得更新接口调用的更新标识符的更新接口对象;
获得多个更新接口调用,所述获得多个更新接口调用返回包含对应于传入所述获得多个更新接口调用的值的多个更新接口对象的更新集合对象;
获得计算机接口调用,所述获得计算机接口调用返回对应于与所述更新服务节点相关联且在所述获得计算机接口调用中标识的客户机计算机的客户机计算机对象;
获得多个计算机接口调用,所述获得多个计算机接口调用返回包括对应于与所述更新服务节点相关联的多个客户机计算机的多个客户机计算机对象的计算机集合对象;
获得组接口调用,所述获得组接口调用返回所述获得组接口调用中标识的目标组对象;以及
获得多个组接口调用,所述获得多个组接口调用返回包括对应于所述更新服务节点上的多个目标组的多个目标组对象的目标组集合对象。
CN200910225815.9A 2004-03-12 2005-03-11 更新服务节点 Expired - Fee Related CN101902494B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US55304204P 2004-03-12 2004-03-12
US60/553,042 2004-03-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200580007302.0A Division CN100580653C (zh) 2004-03-12 2005-03-11 用于管理更新分发系统中软件更新的分发的应用程序编程接口

Publications (2)

Publication Number Publication Date
CN101902494A true CN101902494A (zh) 2010-12-01
CN101902494B CN101902494B (zh) 2013-05-29

Family

ID=34994199

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200910225815.9A Expired - Fee Related CN101902494B (zh) 2004-03-12 2005-03-11 更新服务节点
CN200580007302.0A Expired - Fee Related CN100580653C (zh) 2004-03-12 2005-03-11 用于管理更新分发系统中软件更新的分发的应用程序编程接口

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN200580007302.0A Expired - Fee Related CN100580653C (zh) 2004-03-12 2005-03-11 用于管理更新分发系统中软件更新的分发的应用程序编程接口

Country Status (10)

Country Link
US (1) US8245218B2 (zh)
EP (1) EP1723541B1 (zh)
JP (1) JP4916432B2 (zh)
KR (1) KR101086122B1 (zh)
CN (2) CN101902494B (zh)
AU (1) AU2005222887B2 (zh)
BR (1) BRPI0508244B1 (zh)
CA (1) CA2555446C (zh)
RU (1) RU2386218C2 (zh)
WO (1) WO2005089209A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020180A (zh) * 2012-11-28 2013-04-03 北京奇虎科技有限公司 一种基于控制节点部署程序的方法和装置
TWI690187B (zh) * 2018-01-23 2020-04-01 香港商阿里巴巴集團服務有限公司 服務更新方法及裝置、系統
CN111581223A (zh) * 2020-04-11 2020-08-25 北京城市网邻信息技术有限公司 一种数据更新方法、装置、终端设备及存储介质

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9134989B2 (en) 2002-01-31 2015-09-15 Qualcomm Incorporated System and method for updating dataset versions resident on a wireless device
US9092286B2 (en) * 2002-12-20 2015-07-28 Qualcomm Incorporated System to automatically process components on a device
US8626146B2 (en) 2003-10-29 2014-01-07 Qualcomm Incorporated Method, software and apparatus for performing actions on a wireless device using action lists and versioning
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
US8533700B1 (en) 2006-04-11 2013-09-10 Open Invention Networks, Llc Workstation uptime, maintenance, and reboot service
US8762418B1 (en) * 2006-05-31 2014-06-24 Oracle America, Inc. Metadata that allows refiltering and data reclassification without accessing the data
US8935380B2 (en) * 2006-09-22 2015-01-13 Oracle America, Inc. Automated product knowledge catalog
KR100825322B1 (ko) * 2007-01-31 2008-04-28 엘에스산전 주식회사 듀얼 포트 이더넷 상의 다수의 제어 모듈용 펌웨어 동시 업데이트 장치 및 업 데이트 방법
US8196134B2 (en) 2007-02-08 2012-06-05 Microsoft Corporation Network service for a software change catalog
JP4946592B2 (ja) 2007-04-20 2012-06-06 株式会社日立製作所 ダウンロード装置および方法、コンテンツ送受信システムおよび方法
US8762984B2 (en) 2007-05-31 2014-06-24 Microsoft Corporation Content distribution infrastructure
JP5065482B2 (ja) 2007-06-19 2012-10-31 クゥアルコム・インコーポレイテッド 無線環境においてデータセットを同期するための方法および機器
EP2015173A1 (en) * 2007-07-05 2009-01-14 Hewlett-Packard Development Company, L.P. Method of maintaining software updates by means of dependency expressions
JP4930279B2 (ja) * 2007-08-22 2012-05-16 日本電気株式会社 サーバ、構成情報配布元配布認証方法、エージェント、構成情報配布先配布認証方法、プログラムおよび構成情報配布システム
US20090327288A1 (en) * 2008-06-29 2009-12-31 Microsoft Corporation Content enumeration techniques for portable devices
JP4826834B2 (ja) * 2008-08-07 2011-11-30 日本電気株式会社 通信システム、接続装置、情報通知方法、プログラム
US9031987B2 (en) * 2009-09-30 2015-05-12 Red Hat, Inc. Propagation of data changes in distribution operations in hierarchical database
US8984013B2 (en) * 2009-09-30 2015-03-17 Red Hat, Inc. Conditioning the distribution of data in a hierarchical database
US20110078199A1 (en) * 2009-09-30 2011-03-31 Eric Williamson Systems and methods for the distribution of data in a hierarchical database via placeholder nodes
US8996453B2 (en) 2009-09-30 2015-03-31 Red Hat, Inc. Distribution of data in a lattice-based database via placeholder nodes
US8315174B2 (en) * 2009-12-31 2012-11-20 Red Hat, Inc. Systems and methods for generating a push-up alert of fault conditions in the distribution of data in a hierarchical database
US8875038B2 (en) * 2010-01-19 2014-10-28 Collarity, Inc. Anchoring for content synchronization
US9110690B2 (en) * 2010-04-28 2015-08-18 General Electric Company Systems, methods, and apparatus for deploying application code change configurations for multiple target controllers
US8898658B2 (en) * 2010-06-29 2014-11-25 Cisco Technology, Inc. Dynamic web resource provisioning
US9118505B2 (en) * 2010-11-05 2015-08-25 Blackberry Limited System and method for controlling updates on a mobile device
US9423920B2 (en) * 2010-12-22 2016-08-23 Sap Se System and method for modifying user interface elements
JP5655685B2 (ja) * 2011-04-14 2015-01-21 カシオ計算機株式会社 端末装置及びプログラム
KR101907009B1 (ko) * 2011-10-21 2018-10-12 삼성전자주식회사 디지털 상품을 설치하기 위한 장치 및 방법
US9032385B2 (en) 2011-12-28 2015-05-12 Lg Electronics Inc. Mobile terminal and control method thereof
US9262149B2 (en) 2012-04-12 2016-02-16 International Business Machines Corporation Managing incrementally applied system updates
US8667486B2 (en) * 2012-06-26 2014-03-04 Google Inc. Automatic provisioning of a software platform to a device ecosystem
US9110755B2 (en) * 2012-08-10 2015-08-18 Microsoft Technology Licensing, Llc Aggregation of update sets
WO2014094875A1 (en) * 2012-12-21 2014-06-26 Telefonaktiebolaget L M Ericsson (Publ) Security information for updating an authorization database in managed networks
US10362112B2 (en) * 2014-03-06 2019-07-23 Verizon Patent And Licensing Inc. Application environment for lighting sensory networks
CN104811772A (zh) * 2015-03-17 2015-07-29 四川长虹电器股份有限公司 第三方视频内容整合推送的方法
US10725758B2 (en) * 2015-03-17 2020-07-28 Automotive Data Solutions, Inc. Telematics system
US10362113B2 (en) * 2015-07-02 2019-07-23 Prasenjit Bhadra Cognitive intelligence platform for distributed M2M/ IoT systems
US10250437B2 (en) * 2015-10-29 2019-04-02 Arista Networks, Inc. Method and system for configuring network devices
US10432461B2 (en) 2015-12-04 2019-10-01 T-Mobile Usa, Inc. Peer-to-peer distribution of radio protocol data for software defined radio (SDR) updates
RU2649292C2 (ru) * 2016-06-24 2018-03-30 Акционерное общество "Лаборатория Касперского" Способ формирования списка агентов обновлений
KR102631529B1 (ko) * 2016-07-13 2024-01-31 (주)누리봄 단말 Native UI를 사용하는 동적 UI 배포 시스템 및 방법
RU2634183C1 (ru) * 2016-09-08 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ рассылки обновлений
US10404664B2 (en) 2016-10-25 2019-09-03 Arm Ip Limited Apparatus and methods for increasing security at edge nodes
US10572240B2 (en) * 2016-12-19 2020-02-25 Vmware Inc. Operating system update management for enrolled devices
US10362482B2 (en) 2016-12-21 2019-07-23 T-Mobile Usa, Inc. Network operation and trusted execution environment
JP6536618B2 (ja) * 2017-04-20 2019-07-03 富士通株式会社 情報処理装置、情報処理システム、及び制御プログラム
US10445503B2 (en) * 2017-07-14 2019-10-15 Google Llc Secure persistent software updates
EP3665566A4 (en) * 2017-08-08 2021-04-21 Crypto4A Technologies Inc. SECURE MACHINE-EXECUTED CODE DEPLOYMENT AND EXECUTION PROCESS AND SYSTEM
KR102417004B1 (ko) 2017-09-19 2022-07-07 삼성전자주식회사 전자 장치의 소프트웨어의 업데이트를 관리하기 위한 장치 및 방법
US10409586B1 (en) * 2018-02-16 2019-09-10 Wipro Limited Method and system for developing and delivering an update on human machine interface (HMI) application
CN112567819B (zh) * 2018-08-09 2024-08-30 Lg电子株式会社 在无线通信系统中发送wus的方法及其设备
JP7255105B2 (ja) * 2018-08-30 2023-04-11 ブラザー工業株式会社 アプリケーションプログラムおよびデータ転送システム
CN110896404B (zh) * 2018-09-12 2021-09-14 华为技术有限公司 数据处理的方法、装置和计算节点
CN110225078B (zh) * 2019-04-26 2022-05-13 深圳法大大网络科技有限公司 一种应用服务更新方法、系统及终端设备
US12074943B2 (en) * 2019-05-29 2024-08-27 Roche Diagnostics Operations, Inc. Techniques for providing data packages to analytical devices
US10785106B1 (en) 2019-07-29 2020-09-22 Microsoft Technology Licensing Llc Configuration change control for computing environments
US20240143303A1 (en) * 2022-10-26 2024-05-02 Microsoft Technology Licensing, Llc Deployment sequencing for dependent updates

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1350230A (zh) * 2001-12-03 2002-05-22 复旦大学 病毒库主动分发系统
US20020174034A1 (en) * 2001-05-17 2002-11-21 International Business Machines Corporation Method and apparatus for a distributed web commerce system
US20030061323A1 (en) * 2000-06-13 2003-03-27 East Kenneth H. Hierarchical system and method for centralized management of thin clients

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282712B1 (en) * 1995-03-10 2001-08-28 Microsoft Corporation Automatic software installation on heterogeneous networked computer systems
JP3762049B2 (ja) * 1997-06-27 2006-03-29 キヤノン株式会社 撮像装置及び撮像方法及びその撮像方法を記録した記録媒体
JP3617997B2 (ja) * 1997-11-14 2005-02-09 三菱電機株式会社 データ更新方式
JPH11232083A (ja) * 1998-02-17 1999-08-27 Toshiba Corp コンピュータシステムおよびリソース管理方法
JP3671759B2 (ja) 1999-08-26 2005-07-13 株式会社日立製作所 ソフトウェア配布方法およびシステム
JP3870701B2 (ja) * 2000-03-10 2007-01-24 株式会社日立製作所 コンピュータの階層情報管理方法および装置ならびにその処理プログラムを記録した記録媒体
US7086050B2 (en) * 2000-08-04 2006-08-01 Mcafee, Inc. Updating computer files
US7617289B2 (en) * 2002-02-22 2009-11-10 Bea Systems, Inc. System and method for using a data replication service to manage a configuration repository
JP2004005413A (ja) * 2002-03-25 2004-01-08 Sourcenext Corp ユーザサポートサーバ、構成認識システム、ユーザサポートシステム、構成認識方法及びユーザサポート方法
US20030200300A1 (en) * 2002-04-23 2003-10-23 Secure Resolutions, Inc. Singularly hosted, enterprise managed, plural branded application services
US7178144B2 (en) * 2002-04-23 2007-02-13 Secure Resolutions, Inc. Software distribution via stages
US7478385B2 (en) * 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US7913246B2 (en) * 2003-10-27 2011-03-22 American Power Conversion Corporation System and method for updating a software program
US7519964B1 (en) * 2003-12-03 2009-04-14 Sun Microsystems, Inc. System and method for application deployment in a domain for a cluster
US7853609B2 (en) * 2004-03-12 2010-12-14 Microsoft Corporation Update distribution system architecture and method for distributing software

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061323A1 (en) * 2000-06-13 2003-03-27 East Kenneth H. Hierarchical system and method for centralized management of thin clients
US20020174034A1 (en) * 2001-05-17 2002-11-21 International Business Machines Corporation Method and apparatus for a distributed web commerce system
CN1350230A (zh) * 2001-12-03 2002-05-22 复旦大学 病毒库主动分发系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020180A (zh) * 2012-11-28 2013-04-03 北京奇虎科技有限公司 一种基于控制节点部署程序的方法和装置
TWI690187B (zh) * 2018-01-23 2020-04-01 香港商阿里巴巴集團服務有限公司 服務更新方法及裝置、系統
CN111581223A (zh) * 2020-04-11 2020-08-25 北京城市网邻信息技术有限公司 一种数据更新方法、装置、终端设备及存储介质
CN111581223B (zh) * 2020-04-11 2023-08-22 北京城市网邻信息技术有限公司 一种数据更新方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
EP1723541A2 (en) 2006-11-22
JP2007529078A (ja) 2007-10-18
CN101902494B (zh) 2013-05-29
CA2555446A1 (en) 2005-09-29
EP1723541B1 (en) 2017-05-03
BRPI0508244B1 (pt) 2017-10-10
EP1723541A4 (en) 2008-12-31
KR101086122B1 (ko) 2011-11-25
RU2006136022A (ru) 2008-04-20
US8245218B2 (en) 2012-08-14
WO2005089209A3 (en) 2006-09-08
CN101069172A (zh) 2007-11-07
CA2555446C (en) 2013-06-18
RU2386218C2 (ru) 2010-04-10
JP4916432B2 (ja) 2012-04-11
BRPI0508244A (pt) 2007-07-31
AU2005222887B2 (en) 2010-07-01
WO2005089209A2 (en) 2005-09-29
US20070143390A1 (en) 2007-06-21
KR20070003926A (ko) 2007-01-05
CN100580653C (zh) 2010-01-13
AU2005222887A1 (en) 2005-09-29

Similar Documents

Publication Publication Date Title
CN100580653C (zh) 用于管理更新分发系统中软件更新的分发的应用程序编程接口
CN1668009B (zh) 用于分发软件的更新分发系统的体系结构和方法
TW514814B (en) Network system, device management system, device management method, data processing method, storage medium, and internet service provision method
US6880084B1 (en) Methods, systems and computer program products for smart card product management
CN102947797B (zh) 使用横向扩展目录特征的在线服务访问控制
KR100942127B1 (ko) 업데이트 배포 시스템에서 업데이트 메타데이터를 배포시키기 위한 태그-기반 스키마
CN101410800B (zh) 用于软件发布服务的系统和方法
CN100481978C (zh) 针对特征群体用户的用户识别模块业务和应用的实现方法
CN110032544A (zh) 云端服务的权限管理方法及其云端数据存储系统
AU770881B2 (en) Electronic bill presentment and payment
JP7368531B2 (ja) ブロックチェーンに基づく部屋在庫管理システム
MXPA06010207A (en) Application programming interface for administering the distribution of software updates in an update distribution system
IL166812A (en) Update distribution system architecture and method for distributing software
CN118802907A (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: 20150505

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

Effective date of registration: 20150505

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

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

Granted publication date: 20130529

Termination date: 20200311

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