用于自动同步分布文档的版本的方法和装置 本发明一般涉及计算机软件的领域,并且特别涉及在象因特网这样的分布计算环境中的文档副本的管理。
因特网已经变成一种文化设备,作为信息和娱乐的来源。许多企业创建因特网网址作为他们市场工作的一个整体部分,把该企业提供的产品或服务通知给客户,或者提供其它用于产生品牌忠诚度的信息。许多联邦、国家和地区政府机构也采用因特网网址用于提供信息的目的,特别是必须通过视频图像与社会的所有部门进行交互作用地机构,这一部门例如国家税务局和国家的干部。在线地提供信息向导和/或公共记录的可搜索数据库,可降低运行成本。
当前,内容提供者和/或作者,无论他们是个人或公司,都通常尝试以如下两种方式中的一种方式在网络上发布他们的资源(文档、标志、数据、图像、等等),这两种方式为:他们提供必须装载所有资源的服务器,或者允许他们的资源被复制在远程位置。一个这样的例子是在网址上的广告横幅。这些方法中的每一个都存在问题。对于前者,作者的服务器必须有极大的带宽以跟得上有可能产生的大量点击次数。通常该带宽是不足的,因此造成广告下载缓慢,从而导致应当“快速”的网页下载缓慢。如果服务器发生故障,该方法还具有世界范围的影响。
对于第二种方法,广告者几乎完全丧失了控制力。在因特网上同步文档/图像/标志在实践上是不可能的。所有广告者能够做的是提供更新,并且希望远程位置即时地更新改变的内容。另外,由于每个网址必须具有不同(但是一致)的副本,可能由不同的名字来标识,并且确定的由不同的唯一网址/路径/文件名来标识,即使许多副本已经被从其它网址下载到用户,文档/图像必须通过网络重新发送到用户一一例如,无所不在的可口可乐(Coca Co1a)标志。因此,不同的名称、或者在不同网址上的相同名称使得浏览器认为它们是不同的文档/图像/标志。
因此,提供一种用于分布文档的方法和设备是有利的。
本发明提供一种用于在分布计算环境中同步第一文档的副本的方法。到达用于第一文档的最佳存储库的路径以及到达用于第一文档的主存储库的路径被嵌入在第二文档。第一文档的副本被从最佳存储库中取出。检查主存储库,以确定所取出的副本是否为第一文档的最新版本。响应该判断结果,即所取出副本是第一文档的最新版本,第二文档被用所取出的副本格式化。
本发明的新特点在所附权利要求书中提出。但是,当结合附图阅读本说明书时,该发明本身以及所用的最佳模式、其它目的和优点将在如下参照所示实施例的详细描述得到最好的理解。
图1示出可以实现本发明的分布数据处理系统的图示;
图2示出可以根据本发明实现的数据处理系统的方框图;
图3示出数据处理系统的方框图;
图4示出本发明的优选实施例;
图5示出本发明的另一个实施例;
图6示出本发明优选实施例的流程图;
图7示出本发明高速缓存机制的流程图;
图8示出用于实现本发明的文档装载功能的伪码的一个实例;
图9示出用于实现本发明的文档检查功能的伪码的一个实例;
图10-11示出网络浏览器的屏幕图像。
现在参照附图,特别参照图1,其中示出可以实现本发明的分布数据处理系统的图示。
分布处理系统100是计算机的网络,其中可以实现本发明。分布数据处理系统100包含网络102,它是用于提供在分布数据处理系统100中连接的各种设备和计算机之间的通讯链路的介质。网络102可以包括永久连接,例如线路或光纤线缆,或者通过电话连接进行的暂时连接。
在所示实例中,服务器104与存储装置106一同连接到网络102。另外,客户机108、110和112也连接到网络102。这些客户机108、110和112例如可以是个人计算机或者网络计算机。对于该应用的目的,网络计算机是任何连接到网络并从连接到网络的其它计算机接收程序、数据或者其它应用程序的任何计算机。在所示实例中,服务器104提供数据给客户机108-112,该数据例如引导文件、操作系统图像和应用程序。服务器104还作为用于要被分配给多个客户机和/或其它服务器的文件(例如,图形文件、文档、标语、广告,等等)。客户机108、110和112是连到服务器104的客户机。分布数据处理系统100可以包括未示出的其它服务器、客户机和其它设备。分布数据处理系统一般还包括打印机114、116和118。象客户机110这样的客户机可以直接打印到打印机114。象客户机108和客户机112这样的客户机没有直接附加的打印机。这些客户机可以打印到附在服务器104上的打印机116,或者打印到作为不需要连接到用于打印文档的计算机的网络打印机的打印机118。另外,客户机110可以打印到打印机116或打印机118,这取决于打印机的类型和文档要求。
在所示实例中,分布数据处理系统100是因特网,网络102表示使用TCP/IP协议套件来相互通信的世界范围的网络和网关的集合。但是,本发明不限于因特网,并且可以使用其它网络包括但不限于局域网(“LAN”)和广域网(“WAN”)。在因特网的中心是由路由数据和信息的几千个商业、政府、教育和其它计算机系统所构成的主节点和主计算机之间的高速数据通信链路的主干。当然,分布数据处理系统100还可以用多个不同类型的网络实现,例如,内部网和局域网。
图1为一个实例而不是对于本发明处理的结构限制。
参照图2,其中示出根据本发明的数据处理系统的方框图,该系统可以用服务器实现,例如图1中的服务器104。数据处理系统200可以是包括多个连接到系统总线206的处理器202和204的对称多处理器(SMP)系统。另外,可以采用单个处理器系统。存储控制器/高速缓冲存储器208还连接到系统总线206,其提供到本地存储器209的接口。输入/输出总线桥路210连接到系统总线206,并且提供一个到输入/输出总线212的接口。如图所示,存储控制器/高速缓冲存储器208和输入/输出总线桥路210可以被集成为一体。
连接到输入/输出总线212的外设部件互连(PCI)总线桥路214提供一个到PCI局部总线216的接口。多个调制解调器218-220可以连接到PCI总线216。典型的PCI总线设备将支持四个PCI扩展槽或者附加连接器。到图1中的网络计算机108-112通信链路可以通过调制解调器218和经附加板(扩展板)连接到PCI局部总线216的网络适配器220提供。
附加PCI总线桥路222和224提供用于附加PCI总线226和228的接口,从它可以支持附加调制解调器和网络适配器。按照这种方式,服务器200可以连接到多个网络计算机。如图所示,存储器映射图形适配器230和硬盘232还可以直接或间接地连接到输入/输出总线212。
本领域内的普通技术人员将认识到图2中所示的硬件可以有所变化。例如,还可以使用其它外围设备,例如硬盘驱动器等等,或者取代所示的硬件。所示的实例不是对本发明的结构的限制。
图2中所示的数据处理系统例如可以是IBM RISC/系统6000,在美国纽约州阿蒙克市的国际商用机器公司(IBM)的一种产品,它运行高级交互执行(AIX)操作系统。
现在参照图3,其中示出可以实现本发明的数据处理系统的方框图。数据处理系统300是客户计算机的一个实例。数据处理系统300还可以用于运行网络浏览器软件,例如Netscape Navigator或者微软Internet Exp1orer。数据处理系统300采用外围部件互连(PCI)局部总线结构。尽管所示实例采用PCI总线,但是也可以采用其它总线结构,例如Micro Channe1(微通道)和ISA(工业标准结构)总线结构。处理器302和主存储器通过PCI桥路308连接到PCI局部总线306。PCI桥路308还可以包括用于处理器302的集成存储控制器和高速缓冲存储器。到PCI局部总线306的其它连接还可以通过直接部件互连,或者通过附加板进行。在所示实例中,局域网(LAN)适配器310、SCSI主总线适配器312和扩展总线接口314通过直接部件连接连接到PCI局部总线306。相反,音频适配器316图形适配器318和音频/视频适配器(A/V)319通过插入到扩展槽中的附加板连接到PCI局部总线306。扩展总线接口314提供用于键盘和鼠标适配器320、调制解调器322、以及附加存储器324的连接。在所示实例中,SCSI主总线适配器312提供用于硬盘驱动器326、磁带驱动器328、CD-ROM驱动器330以及数字视频光盘只读存储器驱动器(DVD-ROM)332的连接。典型的PCI局部总线应用将支持三个或四个PCI扩展槽或者附加连接器。
一种操作系统运行在处理器302上并且用于协调和提供在图3中的数据处理系统300中的各种部件的控制。该操作系统可以是一种市场上可购得的操作系统,例如OS/2,它可以从国际商用机器公司获得。“OS/2”是国际商用机器公司的商标。象JAVA这样的面向对象的编程系统可以与该操作系统相结合而运行,从JAVA程序或者在数据处理系统300上执行的应用程序提供对操作系统调用。用于操作系统的指令、面向对象的操作系统和应用程序或者程序位于象硬盘驱动器326这样的存储设备中,并且被装载到由处理器302所执行的主存储器304上。
本领域内的普通技术人员将认识到,在图3中的硬件可以根据应用而变化。例如,其它外围设备,例如光盘驱动器等等,可以附加在图3中所示的硬件上使用,或者取代图3中所示的硬件。所示实例不是对本发明结构的限制。例如,本发明的处理可以应用于微处理器数据处理系统。
本发明的优选实施例在图4中示出位于本地服务器410上的网址包含目标文件说明(HTML连接,等等),其中包含可以找到目标文档的多个名称和潜在位置。目标文档例如可以是图形文件、文档、标语、广告,等等。一个路径名指向“最佳”位置410,一个或多个路径名指向一个或多个“回退”(fa11back)位置420,并且一个路径名指向“主”位置430。象Netscape Navigator或者微软Internet Explorer这样的网络浏览器通过网络102从最佳位置410把目标文档下载到用户450。该“最佳”位置410通常是本地位置,并且通常是用于浏览器下载的目标文档的最快副本。在空闲时间中,浏览器检查下载版本与“主”网址430上的版本,并且如果必要的话,更新目标文档。如果目标文档不能在“最佳”位置410获得,则网络浏览器检查“回退”位置420,并且尝试从“回退”位置420下载目标文档。如果“最佳”位置410和任何“回退”位置420都不能访问,则网络浏览器从“主”位置430下载目标文档。
例如,在当前系统下,HTML可以是这样:<IMG SRC =”images/colelogo. gif” WIDTH=129 HEIGHT=128>但是,应用本发明,HTML将为如下:<IMG SRC=“images/colelogo. gif” WIDTH=128 HEIGHT=128ALTSRC=“http://www. logoserver. com/coke/logos/coke. gif”ALSTSRC=HTTP://www. fallback. com/images/gif/coke/logo. gifMASTERSRC=http://www. cocacola. com/logos/coke. gif>
因此,“最佳”位置是通过相关链路“images/cokelogo.gif”下载HTML的位置。如果该链路失败(或者因为本地服务器的较差性能),“logoserver.com”和“fallback.com”将被利用所提供的名字而尝试。如果这些链路也失败,则尝试同“cocaco1a.com”检索“主”副本。应当知道,这些HTML链路一般是嵌入在浏览器搜索的文档中的标签。
在原始HTML文档被完成下载之后,主服务器被询问以确定被显示的文档/图像/标志是否为最新的一个。但是,如果主服务器和回退(fallback)服务器都不要用,则不做比较。另外,如果主服务器和回退服务器都不可用,则网络浏览器继续定期的尝试对它们的访问,以便于把当前文档与主文档相比较。
可选择的是,仅仅当最佳存储库中的副本比特定的时期更早时,即,如果该副本比一天更旧,回退存储库和主存储库才被检查。因此,将避免对主服务器和回退服务器的不必要访问。
本发明的另一个实施例在图5中示出。在本实施例中,不同于每个本地服务器570、572、574、576、578和580通过与图4中所示的实施例相同的“回退”服务器420的系统链接回“主”服务器,主文档的副本被创建并且存储在几个“始发”服务器560、562和564,并且这些“始发”服务器560、562和564作为“主”服务器430,用于本地服务器570、572、574、576、578和580以及回退服务器(未示出)的分散组(discrete group)。这些“始发”服务器560、562和564通过网络102连接到“主”服务器。本地服务器570、572、574、576、578通过网络102连接到相应地“始发”服务器560、562和564。类似地,用户540、542和544通过网络102连接到相应的本地服务器570、572、574、576、578。对于本领域内的专业人员显然可以看出,可以利用更多或更少的始发服务器和本地服务器以及更多或更少的用户,而不脱离本发明的范围和精神。因此,图5中所示的系统仅仅作为实例而不是作为本发明的限制。
用于用户540的网络测览器尝试从该网页所在的本地服务器572获得目标文档。如果网络浏览器不能够通过本地服务器572或任何它的回退服务器(未示出)访问目标文档,则用于用户540的网络浏览器从“始发”服务器560下载目标文档。用于用户542的网络浏览器通过本地服务器574下载目标文档,并且如果该尝试以及对所有“回退”服务器的尝试失败,则通过始发服务器562下载目标文档。类似地,用于用户544的网络浏览器通过本地服务器578下载目标文档,并且如果该尝试以及对所有“回退”服务器的尝试失败,则通过始发服务器564下载目标文档。
无论何时当主目标文档被改变时,主服务器430通过网络102对始发服务器560、562和564进行更新。然后‘‘始发”服务器560、562和564对“回退”服务器进行更新,该回退服务器反过来对本地服务器570、572、574、576、578进行更新。因此,目标文档的作者或所有人能够保证被使用的文档是最新副本,而不减慢包含对该目标文档的引用的网页的下载时间。
本发明的优选实施例的流程图在图6中示出。运行象NetscapeNavigator这样的网络浏览程序的用户访问包含到目标文档的多条路径的网页,该文档被包含在所观察的网页中(步骤610)。网络浏览器检查到该目标文档的所有路径的路径名与以前缓存的文档的路径名相比较(步骤615)。如果一个路径名与以前缓存的文档相一致,则以前缓存的版本被用于下载该网页(步骤617)。如果该目标文档以前没有被缓存,则网络浏览器查询最佳位置,以确定该目标文档是否可以从该位置下载(步骤620)。如果该目标文档可以从最佳位置获得,则利用来自该最佳位置的目标文档产生该网页(步骤625)。
如果目标文档不能从最佳位置获得,则网络浏览器查询第一回退位置,以确定该目标文档是否可以获得(步骤630)。如果为是,则利用从回退位置下载的目标文档产生该网页(步骤635)。如果回退位置不可用,则网络浏览器确定是否有另一个回退位置被列出(步骤637)。
如果存在另一个回退位置(步骤637),则网络浏览器查询下一个回退位置,以确定该目标文档是否可以获得(步骤630),并且该处理如上文所述继续进行。如果不存在另一个回退位置(步骤637),则利用从主位置下载的目标文档产生该网页(步骤640)。
如果该网页是利用从缓存版本(步骤617)、最佳位置(步骤625)、或者从回退位置(步骤635)下载的目标文档产生的,则网络浏览器检查下载的目标文档的副本与存在于主位置上的目标文档的版本相比较。如果两者不同,则所下载目标文档必须被更新,以便于与位于主位置的目标文档完全相同(步骤670)。使目标文档不能够从特定位置获得的情况的一个例子是当用于该位置的服务器离线的时候。
关于确定一个图像或文档是否以前被缓存的方法的进一步的细节在此参照图7中所示的流程图给出。当网页被下载时,所有与该网页一同下载的对任何文档的所有参考名被缓存(步骤710)。这样名称包括最佳源名、候选源名、以及主源名。当一个新网页被下载时(步骤720),该浏览器确定用于包含在新网页中的每个文档的最佳源名、候选源名和主源名(步骤730)。然后,浏览器在高速缓冲存储器中搜索与该文档相关的所有参考名(步骤740),以确定是否有一个参考名存在于该高速缓冲存储器中(步骤740)。如果一个与该文档相关的参考名匹配于以前缓存的文档相关的有效名,则以前缓存的文档被下载(步骤760)。如果没有与该文档相关的参考名匹配于缓存的参考名,则浏览器尝试从由该网页所提供的一个位置下载文档(步骤770)。一旦该文档被下载,则它将与每个由网页所提供的参考名一同存储在高速缓冲存储器中(步骤780)。只要该文档保留在高速缓冲存储器中,则在该文档将来被引用的任何时候,它将从该高速缓冲存储器装载。另外,该文档的多个副本将不被缓存。仅仅该文档的一个副本在该高速缓冲存储器中。但是,该副本还将把与该文档相关的所有参考名附加在其本身上。
适合于从多个位置中的一个下载图像的下载算法800的一个实例在图8中示出。部分810指示浏览器尝试从最佳位置“SRC”下载图像。如果该浏览器不能够从最佳位置下载图像,则部分820指示该浏览器尝试从第一回退位置“ALTSRC”下载图像。部分820还指示浏览器尝试每一个相继的回退位置“ALTSRC”,直到该图像被成功地下载,或者知道每个回退位置都被尝试过,并且已经失败。如果在浏览器已经尝试所有回退位置之后,图像还没有被下载,则部分830指示浏览器尝试从主位置“MASTERSRC”下载图像。如果浏览器仍然不能够下载图像,则部分840指示浏览器在该图像所在的显示区域中显示“链接中断”图像。
检验算法900在图9中示出。在该图像被下载之后,在空闲时间中,浏览器进行检验,以保证所下载图像是该图像的最新版本。部分910收集关于所下载图像的数据,这种数据包括参考文档的统一资源定位符(“URL”)、该图像的本地“SRC”名、该图像的“MASTERSRC”名、日期/时间标记、图像文件的大小、以及校验和。部分920指示浏览器查询主源“MASTERSRC”所在的服务器,以确定所下载图像是否过期,或者它是否该图像的最新版本。如果该图像过期,则部分930指示浏览器从包含该图像“MASTERSRC”的主副本的服务器下载图像。部分930还指示浏览器用新的图像来代替高速缓冲存储器中的旧图像,并且使显示该图像的任何位置无效。
参照图10和11将有助于理解本发明的应用。首先参照图10,用户利用网络浏览器1020从网络上下载网页1030。网页1030包含最佳名、替代名和主名,通过它们访问要显示在网页1030上的标志1010。网络浏览器1020从最佳本地服务器下载标志1010(通常是最快的方法),并且把标志1010显示在网页1030上。在空闲时间中,浏览器1020查询标志1010的主源位置,以确定最新的版本是否被下载。在该实例中,最新版本没有被下载。在从主源接收到所下载标志1010过期的通知之后,网络浏览器1020从主源下载更新的标志1110,并且把它显示给用户,如图11中所示。另一方面,如果所下载标志1010已经是该标志1010的最新版本,则由用户所看到的图像将保持相同。因此,本发明使得所分布文档的所有人能够对该文档的内容保持控制,而不减慢包含这些文档的网页的下载时间。
因此,本发明的一个优点是使得网址具有第三方文件(标志、文档、标语、广告,等等)的最快本地副本,而仍然使得作者接近实时地控制该文件。另外,它允许浏览器通过它们的共同“主”和“替代”名来识别共同文档/图像的同一性,减少网页的下载时间,从而减少在网页中加入广告的令人反感的程度。
图8和9中所示的伪码利用线性算法画出,用于澄清对本发明的理解。但是,应当指出,对于实践的原因,所用的实际算法可能是事件驱动算法。应当指出,尽管“图像”被用于图8和9中,但是可以使用任何文档类型,并且受影响的超文本标识语言(“HTML”)标签是任何涉及“SRC”或类似于SRC的成份的标签。另外,应当指出,尽管本发明已经参照仅仅一个主位置进行的描述,但是,只要作者对在每个主位置上的文档的内容具有直接控制,则本发明同样可以应用于多个主位置的情况。另外,主源位置可以是网络服务器。
应当注意,尽管本发明已经在HTML的环境下描述,但是本领域内的专业技术人员可以明显地看出象可扩展标识语言这样的其它标识语言也可以使用。另外,应当知道,本发明应用于万维网(也称为“WWW”)、因特网、内部网、局域网、以及广域网上的文档,并且最佳、回退和主源可以位于这些网络上,以及包括位置类型的各种组合。应当指出,该文档可以是网页,但是不一定是网页。另外,应当指出,如果客户不能够访问主源,则图像可以从一个回退源更新。另外,尽管主要参照图像的更新进行描述,但是应当指出所给的仅仅是一个实例,并且该图像可以由任何类型的文档所代替,其中例如该文档可以包含图像、文本、声音或它们的组合。
应当注意尽管本发明已经对于全功能的数据处理系统进行描述,但是本领域内的普通技术人员将认识到,本发明的处理程序能够以计算机可读介质的形式以及各种形式发布,并且同样可以应用本发明,而与被实际使用以执行该发布的特定类型的信号载体无关。计算机可读介质的例子包括可记录类型的介质,例如软盘、硬盘驱动器、RAM和CD-ROM,以及象数字和模拟通信链路这样的传输型介质。
本发明的描述被给出用于解释和说明的目的,但是不是为了以所公开的形式穷尽本发明,或者对本发明进行限制。本领域内的普通技术人员显然可以作出许多显而易见的改进和变化。本实施例被选择和描述以最好地解释本发明的原理、实际应用、以及使其它普通技术人员能够理解本发明,以便于通过各种改变特定应用的各种实施例。