在网络化的资源上进行源文件和包的增量复制的制作方法

文档序号:6444418阅读:153来源:国知局
专利名称:在网络化的资源上进行源文件和包的增量复制的制作方法
技术领域
本发明涉及企业管理。更具体地说,所公开的发明涉及在企业网络内的软件应用系统的安装和维护。
背景技术
因特网和环球网(WWW)已对企业网络产生了极大的影响,公司使用它们进行电子商务和因特网存取以及客户/服务器应用系统和传统的网络服务(比如电子邮件)。有效的系统和网络管理通过如下的措施降低并控制成本实行有效的资产管理、降低高强度任务比如安装、维护和重新配置软件所需的时间、使大范围的数据通信链路的成本最小、使系统在停工期的成本最小、提供适当等级的服务,等等。
对于在地理上跨越较大区域的公司来说在企业网络中安装和维护软件是主要的成本。这是因为维护公司计算机系统的绝大部分成本通常来自软件的安装、支持和维护。几个厂商提供了整个企业管理方案以在整个企业中安装和维护软件应用系统。
但不幸的是,常规的整个企业管理软件安装和维护技术一般具有这样的局限它们通常要求相当大量的并且可能是昂贵的企业网络带宽来在整个企业网络上进行大数据量通信以执行比如软件安装、更新或修复。
例如,安装、更新或修复软件应用系统的整个企业管理技术通常包含给在企业中的任何数量的源文件发布点(DP)发送完整的软件包。完整的软件包例如包括一个或多个软件应用系统,该应用软件系统带有与对被包括的软件应用系统的安装、删除、修复或其它的维护所需的所有的相应文件(例如数据文件、配置文件、脚本文件等)。DP是最终用户从其中安装新的软件应用系统安装、更新和/或修复用的软件应用系统源文件的位置。企业可以具有几千个DP以服务不同的网络化设备(例如,终端用户计算机、打印机以及其它的外围设备、网络器具等)的软件要求。
从由中央统一管理的源文件服务器发布到目标DP的每个软件包可能包括正确执行和配置特定的软件应用系统所需的任何数量的文件(例如,可能几十、几百或几千个文件)。此外,每包的软件安装/删除脚本确保,在它们将当前的软件包的内容拷贝到目标DP上之前,从目标DP中删除软件应用系统的任何的先前安装的版本。根据这一点,很清楚的是,常规的整个企业管理软件安装和维护技术通常要求使用相当大的甚至可能特别昂贵的网络带宽来在企业的每个DP中安装和/或维护软件。
通过下述的结构和程序可解决传统系统和程序在整个企业网络上安装、更新以及维护软件应用系统的这些局限性以及其它的局限性。

发明内容
所公开的结构和程序在网络化资源上复制源文件。具体地说,服务器接收对应于在先前的源文件组和一个或多个新源文件组之间的差别的包更新通知。响应接收包更新通知,识别对应于该差别的源文件的增量(delta)组。确定为增量复制配置的在企业网络中的一组源和/或发布服务器。将所识别的源文件的增量组发送给所确定的源和/或发布服务器。


在整个附图中相同的标号用于表示相似的特征和部件。
附图1所示为在网络化的资源上执行源文件和包的增量复制的实例性系统。
附图2所示为在站点体系中通过将增量源和/或增量包复制到任何数量的第一级和第二级站点来管理在企业中的源文件的发布的附图1的实例性源服务器的特征。
附图3所示为在网络化的资源上执行源文件和包的增量复制的实例性程序。
附图4所示为附图3的实例性程序以在网络化的资源上执行源文件和包的增量复制(DR)的进一步特征。具体地说,附图4所示为将增量源发送给使用(enable)DR的那些站点的进一步的实例性特征。
附图5所示为附图3的实例性程序以在网络化的资源上执行源文件的DR的进一步特征。具体地说,附图5所示为将增量包发送给使用DR的那些站点的进一步的实例性特征。
具体实施例方式
下文的描述阐述了实例性的主题以在带有子位置的位置之间执行源文件和包的增量复制。这些实例性主题满足规定的条件。但是,这些描述本身并不希望限制本专利的范围。而是,结合其它当前或将来的技术,本发明人认为所要求保护的主题还可以以其它的方式实施以包括不同的部件或与在本说明书中描述的部件类似的部件的结合。
概述所描述的主题执行源包和文件的增量复制以将软件发布给网络化的计算机。具体地说,在企业网络内的中央的或第一级的服务器产生并发布完整包或增量包以在企业内的发布点上安装、更新、修复和/或一般维护软件。例如这种第一级服务器和发布点可以以部分执行Microsoft’s System Management Server(SMS)技术的相应服务器为代表,这种技术已经被适当地修改以并入本详细描述的说明书的新技术。
不管是以完整包、增量包发布源文件还是作为增量源(即,仅仅源文件变化/更新的镜像拷贝),所发布的包都将包括发布点安装、更新、修复或一般维护特定站点的软件清单所需的所有文件(例如,软件源文件、删除和/或安装脚本、数据文件等)。(最终用户通过存取站点软件清单可以在它们相应的客户上存取和安装站点软件)。具体地说,如果需要的是,完整包包括从DP中完整地删除的对应于先前安装的任何软件应用系统的所有文件的脚本。完整包也包括将与软件应用系统相对应的所有源文件、数据文件、脚本等完整地安装在DP上的脚本。
与这种完整包相反,增量包或增量源仅包括与在特定DP上先前安装的软件相比的差别、变化或增量,这些差别、变化或增量是更新、修复及其维护在DP上的软件应用系统所需的。一旦被DP接收,打开增量文件可以删除一个或多个先前安装的源文件、数据、文件、脚本等以及带有相应的更新和/或修复版本的对应部分的替换。
此外,中央的企业服务器可以产生增量包,以使将在特定的DP上的源文件或软件应用系统从一个特定的版本更新到另一个版本。在该实例中,与在中央的服务器上的当前的版本相比,如果在特定的DP上的源文件或应用系统是过期的几个版本,则构造所产生的增量包以仅包括在特定的DP上删除和安装在不同版本之间的差别所需的那些文件。这种过程称为“规范化”,因为它使在特定的DP上的软件清单与在第一级父服务器(它可以是或不是企业的中央服务器)上的软件清单同步。
此外,如果基于每个DP的相应的要求源文件必须复制到许多不同的状态,则增量复制构造并发布不同的增量包以使仅相对于将特定的DP正确更新到当前版本状态所要求的文件(或者所请求的版本状态)更新每个DP。(如果要产生新的DP或源位置,则增量复制将发送完整包或完整源文件给特定的站点,因此可以开始起源文件位置的作用)。
由于源文件的有效运动是使在较大的或在物理上完全不同的企业内不同位置之间昂贵的且可能是非常昂贵的带宽使用最小的关键,与在背景技术部分中所描述的常规的发布技术相比,所描述的在带有子位置的位置之间的源文件和包复制可以实质地减小整个企业管理软件发布拷贝的次数和通信通路带宽的消耗。
实例性系统附图1所示为从在通信通路104比如网络(例如,企业内部互联网和/或因特网)上的中央父站点(如,站点102)到任何数量的子站点106实施源文件和包的增量复制的实例性系统100。每个站点(即,102至106的第一级和第二级站点)是在相同的局域网(LAN)上的一个或多个区域的组。一个区域是在相应的站点102或106内作为一组管理的一组服务器和客户(例如,相对于站点102所示的服务器108和客户110)。(下文参考附图2-4更详细地描述实例性服务器108的特征)。
通过将站点组织为分级结构表示在系统100内的父站点和子站点。父站点(例如站点102)是包括在分级结构中在它之下的其它站点(例如站点106)的站点(中央的和/或第一级的)。子站点是报告给在分级结构中在它之上的父站点的站点(第一级的或第二级的)。第一级站点存储用于它自己和它的子站点的系统数据比如软件清单信息等(例如系统数据可以本地存储在数据库比如SQL数据库中)。第二级站点将它的数据(例如软件清单信息)报告给第一级站点并且不存储其它站点的数据。在系统100中每个第一级和第二级站点能够与它的相应的父站点和任何中间子站点进行数据(例如软件清单、增量复制包等)通信。
在这种实例性的系统100中,站点102是父站点,它也是中央站点,因为它在系统100或站点分析结构中的顶部。因此,中央站点102也是存储用于管理为所有的其它站点106以完整包和/或增量复制包发布源文件的全系统的信息的第一级站点。在另一实例中,第一级站点106-2是父站点(例如,站点106-N的父站点)以及子站点(例如中央/第一级站点102的子站点)。
因此,系统100包括中央站点102和任何数量的子站点106。因此,系统100的特定的系统结构可大可小并且能够被构造成适合于特定的组织、管理和/或管理要求(例如,系统100的父/子站点体系可以几乎是平面的或者可以是很多层的,具有少数几个站点或多个站点)。
虽然所示的服务器108和客户110对应于站点102,并且每个其它的站点106也具有相应的服务器108和客户110。每个服务器108是源服务器和/或发布服务器。源服务器108包括要发布给位于子站点106上的发布服务器108(“子站点”是当前的站点的子站点)的原始源文件。发布服务器108接收增量源文件(例如作为镜像拷贝)和/或拆开通过源服务器108所发布的完整或增量复制包,由此使在该站点上的客户110可得到该文件(即,接收增量源或包文件)。这意味着虽然下文的描述涉及使增量源和/或增量包218从源服务器108或200发送到发布服务器108,但是可以理解的是接收发布服务器108的增量源/包218自身可以是将所接收的源/包218发布给位于子站点106的其它的发布服务器108的源服务器108。(下文参考附图2-4更详细地分别描述实例性的服务器108的特征)。
根据系统100所需的管理确定将特定的服务器108构造成源和/或发布服务器108。但是,因为第一级站点102也是站点分层结构100的中央站点102(即,它存储管理所有其它的第一级和第二级站点的源文件的发布的全系统的信息),因此中央站点至少具有一个源服务器108。此外,每个站点(第一级或第二级)必须具有至少一个发布服务器108。
客户110是包括耦合到存储器的处理器的任何计算装置,其中存储器包括计算机可执行的指令以将源文件接收并安装到存储器中并将源文件清单报告给发布服务器108。(存储器包括读和写的易失性和非易失性计算机可读媒体的任何组合)。因此,客户装置110可作为如下许多不同的计算装置110中的任一种运行,比如个人计算机、图像服务器计算机、小型客户、大型客户、手持或膝上型设备、多处理器系统、微处理器系统、置顶盒、可编程用户电子器件、无线电话、应用专用集成电路(ASIC)、网络PC、小型计算机、大型计算机等。
实例性增量包和源文件服务器附图2所示为存储用于管理以完整或增量复制包和/或作为增量源文件将源文件发布给在附图1的站点体系100中的任何数量的第一级和第二级站点的全系统信息的实例性源服务器200(例如附图1的源服务器108)的特征。源服务器200包括在总线203上耦合到系统存储器204的处理器202。
总线203表示几种类型中的一种或多种总线结构,包括存储器总线或存储器控制器、外设总线、加速的图形端口和使用任何总线结构的处理器或局部总线。作为举例但不是限制性的,这种结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线和也称为中楼总线的外设部件互连(PCI)总线。
系统存储器204包括许多种计算机可读媒体。这种媒体可以是通过处理器202可存取的任何商用媒体,它包括易失性和非易失性媒体、可移动或不可移动媒体。例如,系统存储器204包括易失性存储器形式的计算机可读媒体,比如随机存取存储器(RAM)和/或非易失性存储器,比如只读存储器(ROM)。基本的输入/输出系统(BIOS)包含有助于在计算机200内的元件之间比如在启动的过程中传递信息的基本程序,它存储在ROM中。RAM通常包含通过处理器202可立即存取或马上运行的至少一部分数据208和程序模块204。
处理器202被构造为从存储器204的应用系统或程序模块206部分中获取并执行计算机程序指令。以通过计算机执行的计算机可执行的指令的通常方式描述程序模块204。一般地,程序模块204包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、部件、数据结构等。
在网络化的资源上执行源文件和包的增量复制的实例性系统和程序在附图1的分布式计算环境100中实施,在这种分布式计算环境中通过由通信网络链接的远程处理装置执行任务。因此,程序模块204可以位于包括存储器存储装置的本地和远程计算机存储器媒体中。
源服务器200的程序模块204例如包括增量包和增量源管理器模块210和其它的应用系统212(例如,操作系统、全企业管理应用系统、网页浏览器等)。处理器也可以被构造成从存储器204的数据208部分中获取数据,同时执行程序模块204。数据208例如包括站点分级体系的原始源文件214的软件清单216、增量包218、配置数据220和其它的数据。现在描述模块206和数据208的实例性特征。
完整包和增量包管理器模块210有利于在企业网络中不同的DP站点106上安装、更新、修复和/或配置软件应用系统和其它源文件214。为实现这些,管理器模块210构造、维护完整包、增量包218和/或增量源(例如至少一个源文件214)并将其连同指定的脚本或任务发送给这些不同的DP。包和任务的组合使管理器模块210可以在LAN或广域网(WAN)上进行软件通信,将软件和其它的数据发布到在站点106上的指定的DP服务器,以及从指定的站点106(例如服务器108)中删除软件或源文件214。
完整包包括对应于特定的应用系统的所有的源文件214(包括数据、脚本等),不管某些源文件214是否已经被改变、更新等,而其它的源文件没有。换句话说,一个完整包并不是仅仅包括与先前版本的软件包相比的改变或“增量”。一旦接收了完整包,发布服务器108在数据库(如果它第一级站点)中存储该包,如果压缩该包,则在将它的相应的内容存储到存储器比如客户110的数据库中之前对包进行解压以便访问和可能的进一步发布给在子站点106上的其它发布服务器108(如果有的话)。
与完整包相对比,增量包或增量源218仅包括自将先前的包(完整或增量)已经发送给一个或多个子站点106时起已经改变的那些源文件214。例如,源服务器108(尤其是包管理器模块210)构造增量包218以便仅以特定的发布服务器108所需的那些源文件214更新特定的发布服务器108。
因此,管理器模块210产生增量包218或识别增量源218以复制对应于应用系统的任何数量的源文件214的不同配置。因为增量包218仅包括源文件变化、更新、调整、对应的脚本(用于自动安装和增量包218内容的配置)等,发布的增量包可能实质上比完整包小,在常规的方式中将完整包发送给发布服务器108。发送更小的增量包218(如同增量源218)给在大的和/或在物理上完全不同的企业中的任何数量发布服务器108对企业的限制通信通路数据通过量或带宽和处理资源产生实质更小的影响。
一旦接收增量包218,发布服务器108在数据库(如果它是第一级站点的话)中存储增量包218,并且如果压缩包,则在将它的相应内容存储在存储器比如客户110的数据库中之前解压该包以便访问和可能的到在子站点106上的其它的发布服务器108(如果有的话)的其它的发布。
现在参考附图3和4的实例性增量包应用编程接口(API)和实例性程序300描述增量包和源文件管理器210的进一步特征,进一步阐述它们每个增量源文件和/或包218的产生、维护和发布的相应的特征。
用于增量包的产生和操作的实例性API包管理器模块210包含许多新的增量复制文件API以构造、维护和发布增量源文件和/或包218(连同指定的脚本或任务)给发布服务器108。(增量源文件和/或包产生信息、维护和发布API在下文中称为增量包API)。API可以以任何方式实施。例如,增量包API可以作为部件对象模型(COM)对象实施。COM是十分公知的面向对象的编程模型,它定义了对象如何在单个的应用系统或应用系统之间作用。在COM中,客户软件通过指向与接口相关的功能组的指针存取对象,这称为对象方法(methods-on the object)。现在描述一组实例性的增量文件API。
产生压缩的文件增量接口将源文件与原始文件(都以源文件214表示)进行比较,可以压缩或可以不压缩它。基于在原始文件中存储的文件记录进行压缩;如果压缩了该文件,则不要求解压。如果已经增加或改变了文件则压缩它并将其增加到增量包218(改变的文件替换在包中的它的相应的过期的文件)。如果已经从应用系统中删除了特定的文件,则这个接口给增量包218增加记录或标志,它表示从相应的完整包222中已经删除了特定的文件。
合并压缩的文件数据接口将改变的或增量文件合并到压缩的文件中。换句话说,这个接口根据增量文件的内容从压缩的文件中增加、替换或删除条目。通过产生临时的输出文件可以实现这些,在临时输出文件中通过根据需要从增量文件或原始压缩文件中增加数据可以产生新的压缩文件。然后以新的文件替换在完整包222中的旧的文件。
规范化的压缩文件增量接口获取序列增量文件单并从旧的增量文件中删除冗余数据以节省磁盘空间以及减小增量更新所要求的网络数据通过量(例如,如果将文件增加到第一增量中,从第二增量中删除,然后再次将某些修改(即,与在第一增量中的文件比较)增加到第三数据中,仅一次将文件发送给特定的发布服务器,而不管三个增量版本如何。
合并压缩的文件增量接口获取序列增量文件单并产生包含在原始文件中所有变化的单个文件。将这个增量应用到压缩文件中等效于将每个原始增量应用到客户从其中安装应用系统/文件的源位置中。
复制包接口评价在目的子站点106上的包版本差异并产生适当的增量包218。例如,按照在父站点上的数据库中所要求,获得的远程包版本接口确定子站点发布点版本条目的最低的发布服务器106包版本。这种在最低发布点包版本中在父站点之间的包版本之间的差异被发送给产生包增量接口以合并这些版本的增量以产生要发送给子站点106的完整增量包218。
产生包增量接口合并中间增量包版本的增量以产生最新的增量包以发送给所有的子站点106。如果任何中间增量遗失或者被破坏,则从在产生包的站点102上的压缩包源文件夹中删除它们,还一并标记包括比被破坏的版本更早的版本的包的任何增量以便删除。
获得远程包版本功能查询在父站点、父站点发布点、子站点和子站点发布点上的源214的完整包版本中的增量。这种接口返回最小的指定的站点106的源214版本。
增量包产生和管理的实例性程序附图3所示为在网络化的资源上执行源文件和包的增量复制的实例性程序300。在方块302中,通过附图1的中央源服务器102接收包更新通知消息。这种通知消息指示当前在中央的服务器102上的源文件的完全或完整包222已经被更新、修改或某些改变。管理控制台的管理者(例如,SMS管理者控制台)可以响应在完整包222中的源文件的更新产生这种通知消息。
在产生和/或更新这种完整包222时,管理者指定特定的包数据源选项以指示(1)压缩的源文件拷贝(一个包)是否应该从相应的源服务器108发送给相应的发布服务器108;或者(2)源文件是否应该以未封装的形式(即增量源文件)从在源服务器108上的源目录214或224发送给相应的发布服务器108。
包数据源选项可能以许多不同的方式与特定的包222相关。例如,包数据源选项可以存储在源服务器108上作为配置数据220、软件清单数据220、作为在特定的包222中的标题等。
在块304中,响应已接收包更新通知(块302),包管理器评价站点控制文件220。这种评价识别特定的目标站点106以接收更新并进一步指示是否为增量复制(DR)而配置在目标站点106上的发布服务器108;即,作为增量包/源218接收并管理这种更新的能力。如果服务器108能够接收增量更新并为任何子发布点和/或站点产生增量更新,则服务器108是使用增量的。
在块306中,包管理器210将完整包222发送给那些不使用DR的发布服务器108。
在块308中,包管理器210将增量包或增量源发送给那些使用DR的发布服务器108。(是否给特定的站点106发送增量包或源取决于对应于所接收的包更新通知(块302)的包222的包数据源选项;下文参考附图4更详细地描述这些特征)。
在块310中,包管理器210对指示由于某些原因(例如由于通信失败、破坏数据等)造成特定的增量包218(规则的或规范化的)的发送不成功的所有的站点106进行自动恢复。这种成功/失败的表示可以以许多方式确定。例如,发布服务器108可以将状态消息发送给发送源服务器108,在这里状态消息指示接收或安装所发送的增量包或增量源218成功或失败。
为执行块312的自动恢复操作,包管理器210可以再次试图将最新产生的增量包218(规则的或规范化的)发送给表示先前失败接收、安装或构造所发送的包218或222的那些发布服务器108。可替换的是,包管理器210可以将所压缩的更新完整包222发送给指示了这种失败的状态的发布服务器108。(参考附图4的块408更详细地描述实例性压缩更新完整包222)。这样,包管理器210能够在发布服务器108进行包/源通信/安装失败的情况下执行自动恢复机构。
在块314中,增量包管理器210通过从旧的增量包218中删除冗余数据对增量包218进行规范化。具体地说,包管理器210相对于最新产生的增量包218的内容评价先前产生的增量包218的内容(块308)。根据保持这种信息的在附图2中的增量版本历史数据文件216可以很容易地确定相应的旧的增量包218的内容。通过将所有缓存的增量包218(即对应于特定的完整包222)规范化为单个最新的增量包218来进一步减小数据存储器的要求。
附图4所示为在整个网络化的资源上执行源文件和包的增量复制的附图3的实例性程序300的进一步特征。具体地说,附图4进一步示出了将增量源或增量包发送给使用DR的那些发布服务器108,如上文参考附图3的块308所示。
在块402中,已经确定在特定的站点106(附图3的块304)中使用DR,在中央源服务器108上的增量包管理器210确定先前为新的完整包222的发布选择的特定的数据源选项。(即,如上文参考附图3的块302讨论)在第一次产生源文件214的包222时,管理者指定特定的包222数据源选项。数据源选项是(1)使用源的压缩拷贝;或者,(2)总是从源清单中获得文件。在第一次发送包222时包管理器210为父站点106 DP108不同地产生并发布增量包218,管理者基于该增量包选择特定的选项。
在块404中,如果“总是从源清单中获得文件”不是包发布选项,则在附图5的块502(以页面标号“A”表示)继续详细说明程序300的块308。否则,在块406中,包管理器210执行增量源文件218到站点106 DP108的镜像拷贝操作。为实现这个操作,增量源管理器210将在新的包222中的源文件之间的文件属性与软件清单或在相应的目标发布服务器108中已有的源文件进行比较。以这种方式进行比较的源文件属性例如包括文件名、文件大小、文件时间标记和/或文件路径。
增量包管理器210维护在软件清单216数据文件中的站点软件清单。如果在新的包222中的特定的源文件与在特定的发布服务器108上的源文件不同(例如,被增加、被删除、被修改等),则特定的源文件拷贝到特定的发布服务器108;否则特定的源文件不拷贝到特定的发布服务器108。
块402和404的特定的数据发布确定操作(即,包或源文件是否要发送给子站点106)更专用于企业的中央源服务器108。在子站点106从父站点102或102接收包或源文件时,所接收的源文件包的任何进一步分发都以与接收它们的方式相同的方式发送给任何接收站点106的子站点106(如果有的话)。
附图5所示为在网络化的资源上执行源文件和包的增量复制的附图3的实例性程序300的进一步特征。具体地说,附图5所示为将增量源或增量包发送给那些使用DR的站点108的进一步的实例性特征,如上文参考附图3和4的块308所描述。
在块502中,如果“使用源的压缩的拷贝”是包的发布选项,则增量包管理器210通过比较在原始发布的完整包222中的源文件和新包222的源文件内容产生增量包218。在原始包222和新包222之间的差异存储在新的增量包218中。
在块504中,包管理器210将最新产生的增量包218(块502)合并到对应于所接收的更新通知(附图3的块302)的原始压缩的包文件222以在新包222中产生源文件的完全压缩的二进制等价文件。然后通过源服务器108将这种压缩的更新的完整包222存储以用于后续的使用(例如,用于响应附加的更新通知消息(附图3的块302),用于在附图3的块312的自动恢复机构中使用,等)。
在块506中,对于其目标是接收包更新的每个发布服务器108(附图3的块302),增量包管理器210从在所接收的包更新(块302)中表示的源文件中确定当前正被每个相应目标的发布服务器108所使用的包的版本是否过期不止一个版次。在块(508)中,对于使用与所接收的包更新(块302)相比过期不超过一个版次的每个相应的发布服务器108,增量包管理器210将新近产生的增量包218(块502)发送给相应的发布服务器108。
在块510中,对于与所接收的包更新(块302)相比当前具有过期不止一个版次的包的每个相应的发布服务器108,增量包管理器210产生相应的规范化的增量包218。规范化的增量包218包括使特定的发布服务器108从它的源文件的过期版本到当前的源文件版本所需的整个源文件,如由最新产生的增量包218所示。
为执行这种规范化的操作,增量包管理器210确定使相应的发布服务器108内容从它的特定的源文件版本到当前的源文件版本所需的每个相应的源文件,如最新产生的增量包218(块502)所示。基于这些所确定的源文件差异增量包管理器210将一个或多个先前产生的增量包218与最新产生的增量包218合并(块502)以产生规范化的增量包218。
在包管理器210中缓存先前的增量包文件218直到在特定的源发布服务器108配置数据220中识别的最大数量。这种最大的增量包缓存数可能基于许多标准。例如,默认数量的缓存增量包218可取决于系统100的特定的站点106的配置、子站点106的数量和更新为包222的数量和频率等。
此外,包管理器210可以产生规范化的增量包218,这些增量包218仅包括那些使在发布服务器108上的特定的软件应用系统从特定的版本更新到另一指定的版本所需的源文件差异,所指定的版本不必是最新的版本。包/源管理器210以许多不同的方法中的任意方法确定发布服务器108希望哪种软件应用版本。例如,包/源管理器210通过到服务器108的通信消息询问希望哪个软件应用版本,并响应这种询问发布服务器108以它所希望的版本作出响应。此外,这种版本信息可以作为配置数据220存储并因此进行更新。
在块512中,增量包管理器210将相应的规范化的增量包218发送给具有相应的包的发布服务器108,该相应的包与所接收的包更新(块304)相比过期不止一个版次。
计算机可读媒体从在通信通路104比如网络(例如企业内部互联网和/或因特网)的中央父站点102到任何数量子站点106执行源文件和包的增量复制的实例性主题可以在某些形式的计算机可读媒体上存储或发送。计算机可读媒体可以是由计算机可存取的任何可用媒体。例如(但不限于),计算机可读媒体可以包括“计算机存储媒体”和“通信媒体”。
“计算机存储媒体”包括以任何方法实施的易失性和非易失性、可移动的和非可移动的媒体或存储信息的技术比如计算机可读指令、数据结构、程序模块或其它的数据。计算机存储媒体包括(但不限于)RAM、ROM、EEPROM、高速存储器或其它的存储技术、CD-ROM、数字通用盘(DVD)或其它的光学存储器、盒式磁带、磁带、磁盘存储器或其它的磁性存储装置或能够用作存储所需的信息并可由计算机存取的任何其它的媒体。
“通信媒体”通常包含计算机可读指令、数据结构、程序模块或在已调制的数据信号中的其它的数据,比如载波或其它的传输机构。通信媒体也包括任何信息输送媒体。
术语“已调制的数据信号”是指具有一个或多个特征集或以对该信号中的信息进行编码的方式改变的信号。作为举例但并不限于,通信媒体包括有线媒体(比如有线网络或直接有线连接)和无线媒体(比如声、RF、红外和其它的无线媒体)。任何上述的媒体的组合也都包括在计算机可读媒体的范围内。
总结所述的结构和程序用于在网络化的资源上执行源文件和包的增量复制。虽然在本说明书中就特定的结构特征和方法步骤已经描述了在网络化的资源上执行源文件和包的增量复制的结构和系统,但是应该理解的是如在附加的权利要求中所定义的结构程序不必限于所描述的特定的特征或操作。相反所公开的特定的结构和操作是作为实施所要求的保护的主题的优选形式。
权利要求
1.一种在网络化的资源上复制源文件的方法,该方法包括接收对应于在先前的源文件组和一个或多个新源文件组之间的差别的包更新通知;响应接收包更新通知,识别对应于该差别的源文件的增量组;确定为增量复制配置的在企业网络中的一组源和/或发布服务器;和将源文件的增量组发送给源和/或发布服务器。
2.如在权利要求1中所述的方法,其中该差别对应于对先前的源文件组进行的源文件的修改、删除或增加。
3.如在权利要求1中所述的方法,其中发送源文件的增量组进一步包括将源文件的增量组压缩成增量包;和将增量包发送给所述组的服务器以便随后拆包、安装和/或进一步发布。
4.如在权利要求1中所述的方法,其中发送源文件的增量组进一步包括镜象到源和/或发布服务器的源文件的增量组。
5.如在权利要求1中所述的方法,在发送操作之前,进一步包括识别源和/或发布服务器的特定的一个服务器,该特定的一个服务器具有与由新的源文件组所表示的特定版本相比过期不止一个版次的当前包;产生包括一组源文件的规范化的增量包,该增量包可以由所述特定的一个服务器用于更新当前的包以使它是至少更接近该特定的版本的一个版次;和其中发送给该特定的一个服务器的源文件的增量组是规范化的增量包。
6.如在权利要求1中所述的方法,在发送操作之前,进一步包括识别源和/或发布服务器的特定的一个服务器,该特定的一个服务器具有与由新的源文件组所表示的特定版本相比过期不止一个版次的当前包;产生包括一组源文件的规范化的增量包,该增量包可以由所述特定的一个服务器用于更新当前的包以使它对应于该特定的版本;和其中发送给该特定的一个服务器的源文件的增量组是规范化的增量包。
7.如在权利要求1中所述的方法,进一步包括基于源文件的增量组的内容通过从先前增量包中删除数据来规范化先前的增量包。
8.如在权利要求1中所述的方法,进一步包括将先前缓存的增量包规范化为单个最新的增量包,该增量包并入了由源文件的增量组所表示的差别;和删除先前缓存的增量包。
9.如在权利要求1中所述的方法,进一步包括确定与将源文件的增量组发送给每个源和/或发布服务器相对应的相应的成功或失败状态;和响应确定源和/或发布服务器的特定一个服务器的失败状态,将新的源文件组发送给所述特定的一个服务器,该新的源文件组表示源文件的完整包。
10.如在权利要求1中所述的方法,进一步包括确定与将源文件的增量组发送给每个源和/或发布服务器相对应的相应的成功或失败状态;和响应确定源和/或发布服务器的特定一个服务器的失败状态,将源文件的增量组重新发送给所述特定的一个服务器。
11.一种计算机可读媒体,该媒体包括在网络化的资源上复制源文件的计算机可执行指令,该计算机可执行的指令包括执行如下步骤的指令接收对应于在先前的源文件组和一个或多个新源文件组之间的差别的包更新通知;响应接收包更新通知,识别对应于该差别的源文件的增量组;确定为增量复制配置的在企业网络中的一组源和/或发布服务器;和将源文件的增量组发送给源和/或发布服务器。
12.如在权利要求11中所述的计算机可读媒体,其中该差别对应于对先前的源文件组进行的源文件的修改、删除或增加。
13.如在权利要求11中所述的计算机可读媒体,其中发送源文件的增量组的指令进一步包括如下的指令将源文件的增量组压缩成增量包;和将增量包发送给所述组的服务器以便随后拆包、安装和/或进一步发布。
14.如在权利要求11中所述的计算机可读媒体,其中发送源文件的增量组的指令进一步包括镜象到源和/或发布服务器的源文件的增量组的指令。
15.如在权利要求11中所述的计算机可读媒体,在发送操作的指令之前,进一步如下的指令包括识别源和/或发布服务器的特定的一个服务器,该特定的一个服务器具有与由新的源文件组所表示的特定版本相比过期不止一个版次的当前包;产生包括一组源文件的规范化的增量包,该增量包可以由所述特定的一个服务器用于更新当前的包以使它是至少更接近该特定的版本的一个版次;和其中发送给该特定的一个服务器的源文件的增量组是规范化的增量包。
16.如在权利要求11中所述的计算机可读媒体,进一步包括基于源文件的增量组的内容通过从先前增量包中删除数据来规范化先前的增量包的指令。
17.如在权利要求11中所述的计算机可读媒体,进一步包括如下的指令将先前缓存的增量包规范化为单个最新的增量包,该增量包并入了由源文件的增量组所表示的差别;和删除先前缓存的增量包。
18.如在权利要求11中所述的计算机可读媒体,进一步包括如下的指令确定与将源文件的增量组发送给每个源和/或发布服务器相对应的相应的成功或失败状态;和响应确定源和/或发布服务器的特定一个服务器的失败状态,将新的源文件组发送给所述特定的一个服务器,该新的源文件组表示源文件的完整包。
19.如在权利要求11中所述的计算机可读媒体,进一步包括如下的指令确定与将源文件的增量组发送给每个源和/或发布服务器相对应的相应的成功或失败状态;和响应确定源和/或发布服务器的特定一个服务器的失败状态,将源文件的增量组重新发送给所述特定的一个服务器。
20.一种在网络化的资源上复制源文件的服务器计算装置,该服务器计算装置包括处理器;和耦合到处理器的存储器,该存储器包括计算机可执行的用于执行如下步骤的指令接收对应于在先前的源文件组和一个或多个新源文件组之间的差别的包更新通知;响应接收包更新通知,识别对应于该差别的源文件的增量组;确定为增量复制配置的在企业网络中的一组源和/或发布服务器;和将源文件的增量组发送给源和/或发布服务器;和其中处理器被构造成获取和执行计算机可执行的指令。
21.如在权利要求20中所述的服务器计算装置,其中该差别对应于对先前的源文件组进行的源文件的修改、删除或增加。
22.如在权利要求20中所述的服务器计算装置,其中发送源文件的增量组的指令进一步包括如下的指令将源文件的增量组压缩成增量包;和将增量包发送给所述组的服务器以便随后拆包、安装和/或进一步发布。
23.如在权利要求20中所述的服务器计算装置,其中发送源文件的增量组的指令进一步包括镜象到源和/或发布服务器的源文件的增量组的指令。
24.如在权利要求20中所述的服务器计算装置,在发送操作的指令之前,进一步如下的指令包括识别源和/或发布服务器的特定的一个服务器,该特定的一个服务器具有与由新的源文件组所表示的特定版本相比过期不止一个版次的当前包;产生包括一组源文件的规范化的增量包,该增量包可以由所述特定的一个服务器用于更新当前的包以使它是至少更接近该特定的版本的一个版次;和其中发送给该特定的一个服务器的源文件的增量组是规范化的增量包。
25.如在权利要求20中所述的服务器计算装置,进一步包括基于源文件的增量组的内容通过从先前增量包中删除数据来规范化先前的增量包的指令。
26.如在权利要求20中所述的服务器计算装置,进一步包括如下的指令将先前缓存的增量包规范化为单个最新的增量包,该增量包并入了由源文件的增量组所表示的差别;和删除先前缓存的增量包。
27.如在权利要求20中所述的服务器计算装置,进一步包括如下的指令确定与将源文件的增量组发送给每个源和/或发布服务器相对应的相应的成功或失败状态;和响应确定源和/或发布服务器的特定一个服务器的失败状态,将新的源文件组发送给所述特定的一个服务器,该新的源文件组表示源文件的完整包。
28.如在权利要求20中所述的服务器计算装置,进一步包括如下的指令确定与将源文件的增量组发送给每个源和/或发布服务器相对应的相应的成功或失败状态;和响应确定源和/或发布服务器的特定一个服务器的失败状态,将源文件的增量组重新发送给所述特定的一个服务器。
29.一种在网络化的资源上复制源文件的服务器计算装置,该服务器计算装置包括用于执行如下步骤的处理装置接收对应于在先前的源文件组和一个或多个新源文件组之间的差别的包更新通知;响应接收包更新通知,识别对应于该差别的源文件的增量组;确定为增量复制配置的在企业网络中的一组源和/或发布服务器;和将源文件的增量组发送给源和/或发布服务器。
30.如在权利要求29中所述的服务器计算装置,其中该差别对应于对先前的源文件组进行的源文件的修改、删除或增加。
31.如在权利要求29中所述的服务器计算装置,其中发送源文件的增量组的装置进一步包括用于执行如下步骤的装置将源文件的增量组压缩成增量包;和将增量包发送给所述组的服务器以便随后拆包、安装和/或进一步发布。
32.如在权利要求29中所述的服务器计算装置,其中发送源文件的增量组的装置进一步包括镜象到源和/或发布服务器的源文件的增量组的装置。
33.如在权利要求29中所述的服务器计算装置,进一步包括用于执行如下步骤的装置识别源和/或发布服务器的特定的一个服务器,该特定的一个服务器具有与由新的源文件组所表示的特定版本相比过期不止一个版次的当前包;产生包括一组源文件的规范化的增量包,该增量包可以由所述特定的一个服务器用于更新当前的包以使它是至少更接近该特定的版本的一个版次;和其中发送给该特定的一个服务器的源文件的增量组是规范化的增量包。
34.如在权利要求29中所述的服务器计算装置,进一步包括基于源文件的增量组的内容通过从先前增量包中删除数据来规范化先前的增量包的装置。
35.如在权利要求29中所述的服务器计算装置,进一步包括用于执行如下步骤的装置将先前缓存的增量包规范化为单个最新的增量包,该增量包并入了由源文件的增量组所表示的差别;和删除先前缓存的增量包。
36.如在权利要求29中所述的服务器计算装置,进一步包括用于执行如下步骤的装置确定与将源文件的增量组发送给每个源和/或发布服务器相对应的相应的成功或失败状态;和响应确定源和/或发布服务器的特定一个服务器的失败状态,将新的源文件组发送给所述特定的一个服务器,该新的源文件组表示源文件的完整包。
37.如在权利要求29中所述的服务器计算装置,进一步包括用于执行如下步骤的装置确定与将源文件的增量组发送给每个源和/或发布服务器相对应的相应的成功或失败状态;和响应确定源和/或发布服务器的特定一个服务器的失败状态,将源文件的增量组重新发送给所述特定的一个服务器。
全文摘要
所公开的结构和程序在网络化资源上复制源文件。具体地说,服务器接收对应于在先前的源文件组和一个或多个新源文件组之间的差别的软件包更新通知。响应接收软件包更新通知,识别对应于该差别的源文件的增量组。确定为增量复制配置的在企业网络中的一组源和/或发布服务器。将所识别的源文件的增量组发送给所确定的源和/或发布服务器。
文档编号G06F9/445GK1455348SQ03108650
公开日2003年11月12日 申请日期2003年4月2日 优先权日2002年4月3日
发明者保罗·约瑟夫·莱曼·肖特兰德, 高瑞夫·拉夫·达蔓, 大卫·C·詹姆斯, 拉杰高波兰·巴卓·纳拉亚南, 马丁·内皮尔·戴伊, 戴尼欧·尼超拉斯·卓斯夫·卓, 多伊尔·S·克隆柯, 郑凯·肯尼斯·潘, 布鲁斯·W·科柏兰德 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1