專利名稱:用于多版本W(wǎng)eb文檔的Web服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及因特網(wǎng),更具體地說(shuō)涉及訪問(wèn)和跟蹤可經(jīng)因特網(wǎng)訪問(wèn)的內(nèi)容的問(wèn)題。
背景技術(shù):
通過(guò)因特網(wǎng)的HTTP協(xié)議使之成為可能的因特網(wǎng)以及具體來(lái)說(shuō)的WWW在我們?cè)L問(wèn) 信息的方式上呈現(xiàn)變革性的發(fā)展。圖1示出WWW123提供的信息訪問(wèn)系統(tǒng)101如何觀察具 有Web瀏覽器和用于永久存儲(chǔ)數(shù)據(jù)的硬盤驅(qū)動(dòng)器129的計(jì)算機(jī)127的用戶。此類系統(tǒng)稱為 Web客戶端125。除了 Web客戶端125外,系統(tǒng)101還包括可經(jīng)WWW 123訪問(wèn)的Web服務(wù)器 111。如有關(guān)Web服務(wù)器111 (a)的詳細(xì)圖示,Web服務(wù)器包括處理器113 (a)和含有可經(jīng)Web 訪問(wèn)的文檔121的數(shù)據(jù)存儲(chǔ)器119(a)。這些文檔在下文中稱為Web文檔。Web文檔121可 以包含任何類型的信息或多種類型信息的混合;例如它可以是圖像或音頻文件以及文本文 檔。為了訪問(wèn)WffW上的文檔,客戶端125中的Web瀏覽器的用戶向Web 123提供該Web 文檔的URL(統(tǒng)一資源定位符)。Web 123將URL路由到Web服務(wù)器111 (i),該Web服務(wù)器 lll(i)包含URL指定的Web文檔。Web服務(wù)器lll(i)通過(guò)將指定的Web文檔經(jīng)Web提供到 Web客戶端125來(lái)響應(yīng)該URL。瀏覽器然后顯示該Web文檔。Web文檔通常包含至其他Web 文檔的鏈接,即URL。當(dāng)用戶通過(guò)單擊這些鏈接的其中之一來(lái)選擇它時(shí),瀏覽器將URL提供 到Web 123,如剛才所述由駐留該Web文檔的Web服務(wù)器將Web文檔提供到Web客戶端。123處示出了一個(gè)示范URL。URL具有三個(gè)主要的部分協(xié)議105,它指定將用于檢 索Web文檔的因特網(wǎng)協(xié)議,在此情況中為WWW中使用的http協(xié)議;主機(jī)名107,它指定存儲(chǔ) Web文檔的Web服務(wù)器111 (i);以及Web頁(yè)面源信息109,它指定要如何定位Web文檔或以 其他方式在Web服務(wù)器111 (i)產(chǎn)生Web文檔。在示范URL 103中,Web頁(yè)面源信息109是 “路徑名”,它指示如何在Web服務(wù)器111 (i)可訪問(wèn)的文件系統(tǒng)中定位Web文檔;在其他URL 中,Web頁(yè)面源信息109可以指定查詢數(shù)據(jù)庫(kù)來(lái)定位Web文檔的程序或即時(shí)地構(gòu)造整個(gè)或部 分Web文檔的程序。在Web服務(wù)器111 (a)中通過(guò)執(zhí)行源信息解釋代碼117 (a)來(lái)解釋W(xué)eb 頁(yè)面源信息109。如下是URL的完整語(yǔ)法<協(xié)議名> //<主機(jī)名 > 〈端口號(hào)>/<路徑名> ? <參數(shù)列表><協(xié)議名 >、< 主機(jī)名 > 和 < 路徑名 > 均已解釋;〈端口號(hào)〉指定Web服務(wù)器111 (a) 監(jiān)聽(tīng)Web頁(yè)源信息109指定的信息所在的端口 ;廣泛使用的協(xié)議(如HTTP協(xié)議)的應(yīng)用程 序具有URL中未指定端口號(hào)的情況下客戶端125為該協(xié)議提供的缺省端口號(hào)。< 參數(shù)列表 >是源信息解釋代碼117解釋的參數(shù)的列表;這些參數(shù)可以指定要執(zhí)行的程序和用于該程序的數(shù)據(jù)參數(shù)。該參數(shù)列表由一個(gè)或多個(gè)以&字符分隔的參數(shù)名-參數(shù)值對(duì)組成。<參數(shù)名 > = < 參數(shù)值1 . . &<參數(shù)名 > = < 參數(shù)值>無(wú)論何時(shí),只要將Web客戶端125連接到提供對(duì)WWW 123訪問(wèn)的物理網(wǎng)絡(luò),Web客 戶端125此時(shí)就可以訪問(wèn)處于工作狀態(tài)的任何Web服務(wù)器111。因?yàn)榇蠖鄶?shù)Web服務(wù)器持 續(xù)工作,所以經(jīng)WWW可獲取的大多數(shù)信息在任何時(shí)間任何地點(diǎn)都是可獲取的。因此,Web用 戶往往不復(fù)制他們?cè)赪eb客戶端125中檢索到的信息;而是將含有該信息的Web文檔的URL 保存在感興趣URL列表131中。此類列表的一個(gè)示例是大多數(shù)Web瀏覽器提供的“收藏夾” 或“書(shū)簽”列表。當(dāng)用戶希望再次訪問(wèn)信息時(shí),用戶只需單擊收藏夾列表中的URL,由此將 URL提供到瀏覽器。保存URL而不是它們引用的Web文檔存在優(yōu)缺點(diǎn)。二者都來(lái)自WWW的動(dòng)態(tài)特性。 URL不是Web文檔的圖書(shū)館卡編目號(hào)。圖書(shū)的圖書(shū)館卡編目號(hào)唯一地標(biāo)識(shí)圖書(shū)的特定版本。 如果出新版本的圖書(shū),則它得到新的圖書(shū)館卡編目號(hào)。新的卡編目號(hào)將與其他版本的編號(hào) 相似,因?yàn)閮蓚€(gè)版本將以相同方式分類,但是將不會(huì)與其他版本的編號(hào)完全相同。因?yàn)槊總€(gè) 版本擁有各自的圖書(shū)館卡編目號(hào),所以抄寫(xiě)下特定版本的卡編目號(hào)的讀者十年后將該編號(hào) 呈交給擁有該版本的圖書(shū)館,將得到該版本。與之相比,URL僅標(biāo)識(shí)Web服務(wù)器111 (i)和該服務(wù)器響應(yīng)Web頁(yè)源信息將返回的 Web文檔。沒(méi)有任何保證可確保該URL指定的服務(wù)器將是可用的甚至仍存在,也無(wú)法保證服 務(wù)器將返回的Web文檔與客戶端保存該URL時(shí)所顯示的文檔相同。實(shí)際返回什么完全取決 于服務(wù)器。這種安排的優(yōu)點(diǎn)在于服務(wù)器一般返回的是該Web文檔的最近版本。對(duì)于例如包 含天氣預(yù)報(bào)或股市報(bào)價(jià)的許多Web文檔,這的確是所需要的。其缺點(diǎn)在于Web文檔的較舊 版本不再可通過(guò)URL訪問(wèn),并完全不可訪問(wèn)。當(dāng)前可訪問(wèn)的Web文檔與較舊版本具有什么 關(guān)系常常也是不明確的。這樣導(dǎo)致困難的一個(gè)問(wèn)題是軟件的文件。越來(lái)越多地,軟件制造 商通過(guò)WWW提供此類文件;如果該文件的URL指定軟件的當(dāng)前版本,則完全沒(méi)有給擁有較舊 版本的用戶留下文件。Web瀏覽器127的用戶需要解決此問(wèn)題的唯一方式是在他的Web客 戶端中保存文件的本地版本。這樣做,用戶當(dāng)然喪失Web最重要的一個(gè)優(yōu)勢(shì)能夠保存URL 而不是副本。解決該問(wèn)題的一個(gè)嘗試是建立Web歸檔服務(wù),例如mm. archive, org中可得到的。 此類服務(wù)有通用檔案所存在的所有問(wèn)題它們都很巨大,但是常常沒(méi)有個(gè)人所需要的,人們 通常很少或不輸入檔案要保存什么。此外,Web客戶端可訪問(wèn)的大量信息并非公眾可獲取 的,因此將不通過(guò)歸檔服務(wù)歸檔。這種情況出現(xiàn)在Web服務(wù)器位于防火墻后面,該防火墻將 公眾因特網(wǎng)與所說(shuō)的內(nèi)聯(lián)網(wǎng)隔開(kāi),該內(nèi)聯(lián)網(wǎng)利用因特網(wǎng)但是僅對(duì)該內(nèi)聯(lián)網(wǎng)所屬組織已知的 Web客戶端可訪問(wèn)。因此,該服務(wù)器可被也在該防火墻后面或?qū)τ诜阑饓κ且阎腤eb客戶 端訪問(wèn),但是對(duì)于一般的Web客戶端不可訪問(wèn)。此類內(nèi)聯(lián)網(wǎng)是目前組織內(nèi)通信的首選方式 的其中之一。本文公開(kāi)的本發(fā)明的目的在于提供用于克服通過(guò)URL訪問(wèn)其文檔的上述問(wèn)題的 技術(shù)。
發(fā)明內(nèi)容
本發(fā)明的目的通過(guò)倉(cāng)庫(kù)(r印ository)服務(wù)器來(lái)實(shí)現(xiàn),該倉(cāng)庫(kù)服務(wù)器提取文檔URL指定的文檔,將該文檔的副本存儲(chǔ)在倉(cāng)庫(kù)服務(wù)器,并向倉(cāng)庫(kù)服務(wù)器提供存儲(chǔ)副本的URL,Web 客戶端可使用該URL來(lái)提取存儲(chǔ)副本。倉(cāng)庫(kù)服務(wù)器使存儲(chǔ)副本與該文檔的文檔URL相關(guān), 并且與存儲(chǔ)副本在倉(cāng)庫(kù)服務(wù)器中的標(biāo)識(shí)符相關(guān)。倉(cāng)庫(kù)服務(wù)器因此可以包含特定文檔URL表 示的多個(gè)版本的文檔的存儲(chǔ)副本,同時(shí)每個(gè)存儲(chǔ)副本對(duì)應(yīng)于一個(gè)唯一的倉(cāng)庫(kù)服務(wù)器URL。倉(cāng) 庫(kù)還為存儲(chǔ)副本創(chuàng)建指紋。指紋是存儲(chǔ)副本的小編碼版本,它保存表征存儲(chǔ)副本的結(jié)構(gòu)和 內(nèi)容的信息。指紋是可比較的,用于確定一對(duì)文檔的相似度。將每個(gè)存儲(chǔ)副本的指紋與倉(cāng) 庫(kù)中存儲(chǔ)副本相關(guān)聯(lián),倉(cāng)庫(kù)還將與給定存儲(chǔ)副本相似的其他存儲(chǔ)副本的列表與該給定存儲(chǔ) 副本相關(guān)聯(lián)。由提供到倉(cāng)庫(kù)服務(wù)器的客戶端的頁(yè)面組成的用戶界面允許客戶端的用戶登記文 檔,登記該文檔通過(guò)指定該操作并提供該文檔的文檔URL來(lái)執(zhí)行。倉(cāng)庫(kù)服務(wù)器通過(guò)如下操 作來(lái)響應(yīng)制作存儲(chǔ)副本,制作存儲(chǔ)副本的倉(cāng)庫(kù)URL,使存儲(chǔ)副本與文檔URL和存儲(chǔ)副本的 標(biāo)識(shí)符相關(guān),制作存儲(chǔ)副本的指紋,以及制作相似存儲(chǔ)副本的存儲(chǔ)副本的列表。用戶界面還允許用戶提取文檔的內(nèi)容,提取文檔的內(nèi)容通過(guò)指定該操作并輸入至 倉(cāng)庫(kù)服務(wù)器的存儲(chǔ)副本的倉(cāng)庫(kù)URL來(lái)執(zhí)行。倉(cāng)庫(kù)服務(wù)器通過(guò)如下操作響應(yīng)倉(cāng)庫(kù)URL 首先 使用與存儲(chǔ)副本相關(guān)聯(lián)的文檔URL以確定該文檔在網(wǎng)絡(luò)上是否可訪問(wèn);如果可以,則將客 戶端重定向到文檔URL指定的位置;如果文檔不可訪問(wèn),則返回倉(cāng)庫(kù)URL指定的存儲(chǔ)副本。此外,用戶界面還允許用戶跟蹤文檔的存儲(chǔ)副本。用戶在客戶端中指定倉(cāng)庫(kù)URL 和操作,而倉(cāng)庫(kù)服務(wù)器通過(guò)提供具有與倉(cāng)庫(kù)URL指定的副本相關(guān)的文檔URL相同的文檔URL 的存儲(chǔ)副本的倉(cāng)庫(kù)URL的列表來(lái)響應(yīng)。在該操作的一個(gè)實(shí)施例中,倉(cāng)庫(kù)服務(wù)器還通過(guò)提供 與倉(cāng)庫(kù)URL指定的存儲(chǔ)副本相似的存儲(chǔ)副本的倉(cāng)庫(kù)URL的列表來(lái)響應(yīng)。從任何一個(gè)列表中 選擇倉(cāng)庫(kù)URL使倉(cāng)庫(kù)服務(wù)器通過(guò)向客戶端提供倉(cāng)庫(kù)URL指定的存儲(chǔ)副本來(lái)響應(yīng)。在其他方面,本發(fā)明涉及用于制作和比較指紋的技術(shù),包括用于確定兩個(gè)存儲(chǔ)副 本是否足夠相似以保證指紋的比較的技術(shù)、用于制作倉(cāng)庫(kù)URL的技術(shù)和重寫(xiě)和使用存儲(chǔ)副 本中的鏈接的技術(shù)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),在閱讀下文的具體實(shí)施方式
和附圖時(shí)顯而易見(jiàn)將設(shè)想 到其他目的和優(yōu)點(diǎn),其中
圖1示出用于經(jīng)因特網(wǎng)訪問(wèn)信息的現(xiàn)有技術(shù)系統(tǒng); 圖2是本發(fā)明的Web服務(wù)器的框圖; 圖3是服務(wù)器的⑶I的最上層Web頁(yè)面; 圖4示出在Web上該頁(yè)面不可獲取的情況下呈現(xiàn)的Web頁(yè)面; 圖5示出用戶請(qǐng)求版本跟蹤的情況下呈現(xiàn)的Web頁(yè)面; 圖6是登記的文檔表215的實(shí)體關(guān)系圖; 圖7示出HTML文檔和由該文檔構(gòu)成的樹(shù); 圖8示出用于制作指紋的算法;
圖9示出通過(guò)比較由文檔構(gòu)成的指紋來(lái)確定文檔的相似性的算法;以及 圖10示出用于針對(duì)不相似性過(guò)濾文檔的算法。
附圖中的引用編號(hào)具有三個(gè)或三個(gè)以上的數(shù)字最右邊兩個(gè)數(shù)字是余下數(shù)字指示的附圖中的引用編號(hào)。因此,引用編號(hào)203的項(xiàng)首先在圖2中以項(xiàng)203形式出現(xiàn)。
具體實(shí)施例方式下文的具體描述首先呈示多版本文檔的Web服務(wù)器的概述,然后將描述用戶界 面,最后將呈示W(wǎng)eb服務(wù)器的多種組成部分的細(xì)節(jié)。用于多版本文檔的Web服務(wù)器的概述圖2圖2是用于多版本W(wǎng)eb文檔的Web服務(wù)器201的框圖。在下文一些部分中,服務(wù) 器201稱為倉(cāng)庫(kù)服務(wù)器。從Web客戶端125的角度來(lái)看,Web服務(wù)器201是標(biāo)準(zhǔn)Web服務(wù)器 111。當(dāng)客戶端125將指定Web服務(wù)器201的URL置于Web 123上時(shí),Web 123將該URL傳 遞到服務(wù)器201,服務(wù)器201通過(guò)向客戶端125返回Web頁(yè)面來(lái)響應(yīng)URL。與任何其他Web 服務(wù)器一樣,服務(wù)器201具有兩個(gè)主要組成部分響應(yīng)指定服務(wù)器201的主機(jī)名115的URL 來(lái)執(zhí)行代碼的處理器202,以及用于URL指定的Web頁(yè)面或用于制作該Web頁(yè)面所需的信 息的存儲(chǔ)器。這里,存儲(chǔ)器119包括用戶界面的Web頁(yè)面225,Web客戶端125使用該用戶 界面來(lái)控制文檔服務(wù)器201和登記Web文檔的數(shù)據(jù)庫(kù)213。登記Web文檔是已經(jīng)在服務(wù)器 201中登記的Web文檔,即服務(wù)器201已經(jīng)在Web文檔在數(shù)據(jù)庫(kù)213中登記時(shí)制作了該Web 文檔的副本223,并已經(jīng)制作登記版本URL 227,其中多版本文檔服務(wù)器201可以通過(guò)向作 為登記版本URL的源的Web客戶端125提供登記版本URL 227引用的版本副本223來(lái)響應(yīng) 登記版本URL 227。在該優(yōu)選實(shí)施例中,副本223有兩個(gè)部分作為與登記時(shí)接收的副本完 全一樣的副本的原始副本222,以及其中重寫(xiě)了鏈接的重寫(xiě)副本224。稍后將詳細(xì)論述為什 么重寫(xiě)鏈接是必要的以及如何實(shí)現(xiàn)。利用登記版本URL 227提取Web頁(yè)面登記版本URL 227是標(biāo)準(zhǔn)的URL 它指定協(xié)議105、主機(jī)名107 (這里是服務(wù)器201 的主機(jī)名)和Web頁(yè)面源信息109。登記版本URL 227中的Web頁(yè)面源信息包括指定程序 230的參數(shù)列表,上述程序230要在處理器202中執(zhí)行以提供要在程序執(zhí)行中使用的Web頁(yè) 面和數(shù)據(jù)。這里,程序是gc,它提取登記Web頁(yè)面的內(nèi)容,gc是處理器202執(zhí)行的版本位 置代碼203中的程序之一。當(dāng)執(zhí)行版本位置代碼203時(shí),服務(wù)器201是稍后稱為登記文檔 提供器的一個(gè)實(shí)施例,gc取用兩個(gè)參數(shù)唯一地標(biāo)識(shí)數(shù)據(jù)庫(kù)213中的登記Web頁(yè)面的副本 223的登記標(biāo)識(shí)符231和所提取的頁(yè)面的原始URL 233。在優(yōu)選實(shí)施例中,當(dāng)多版本文檔服 務(wù)器201接收到登記版本URL 227時(shí),它執(zhí)行g(shù)c程序。gc首先嘗試建立服務(wù)器201與原始 URL 233指定的服務(wù)器111 (i)之間的連接;如果成功的話,gc重定向Web客戶端以使用原 始URL 233提取Web頁(yè)面。如果建立連接的嘗試失敗,則gc使用登記ID 231來(lái)定位數(shù)據(jù) 庫(kù)213中的副本223,然后將該副本返回到Web客戶端125。當(dāng)如剛才所描述的在使用時(shí), 多版本文檔服務(wù)器201確保當(dāng)Web客戶端125將登記版本URL 227提供到服務(wù)器201時(shí), 客戶端125將接收到由登記標(biāo)識(shí)符231所指定的Web頁(yè)面的副本223,即使原始URL 233指 定的文檔是不可獲取時(shí)。版本位置代碼203需要解釋登記版本URL 227的信息包含在登記文檔表215中的 登記信息217中。登記信息217使副本223與用于提取據(jù)由之制作副本223的Web頁(yè)面的 原始URL相關(guān)以及與唯一地標(biāo)識(shí)該副本223的登記標(biāo)識(shí)符相關(guān)。因?yàn)榈怯洏?biāo)識(shí)符唯一地標(biāo) 識(shí)副本223,所以數(shù)據(jù)庫(kù)213可以包含由原始URL標(biāo)識(shí)的不同版本的Web文檔。而且,因?yàn)榈怯洏?biāo)識(shí)符包括在登記版本URL 227中,所以登記版本URL對(duì)于每個(gè)版本是唯一的,并且可 被客戶端125用于從服務(wù)器201提取特定版本的副本223。在優(yōu)選實(shí)施例中,這通過(guò)將來(lái)自 URL227的登記ID 231輸入到服務(wù)器201提供的用戶界面來(lái)執(zhí)行;在其他版本中,這可以通 過(guò)將URL 227提供到用戶界面,然后指定服務(wù)器201是否要返回原始URL 223當(dāng)前指定的 版本或登記標(biāo)識(shí)符231指定的副本。正如稍后將更詳細(xì)解釋的,對(duì)于給定副本223 (i),用戶 還可以指定他或她想要原始副本222 (i)還是重寫(xiě)副本224 (i)。在服務(wù)器201中登記Web頁(yè)面Web客戶機(jī)的用戶通過(guò)將要登記的Web頁(yè)面的URL輸入到用戶界面Web頁(yè)面225 的Web頁(yè)面而在服務(wù)器201中登記Web頁(yè)面。響應(yīng)從Web頁(yè)面的輸入,服務(wù)器201執(zhí)行登 記代碼207,該登記代碼207提取URL當(dāng)前指定的文檔,為它生成登記ID,在登記信息217 中為該登記ID創(chuàng)建項(xiàng)(包括原始URL、登記ID和該文檔的副本在數(shù)據(jù)庫(kù)213中的位置), 然后創(chuàng)建副本223的URL 227并將其返回到用戶,然后該用戶可以如上述地使用它。當(dāng)執(zhí) 行登記代碼207時(shí),服務(wù)器201是稍后稱為文檔登記器的一個(gè)實(shí)施例。Web頁(yè)面的自動(dòng)登記服務(wù)器201的優(yōu)選實(shí)施例將執(zhí)行Web頁(yè)面的自動(dòng)登記。在優(yōu)選實(shí)施例中,服務(wù)器 201的管理員可以指定一定范圍的感興趣IP地址。服務(wù)器201將執(zhí)行自動(dòng)登記代碼212,這 提取那些地址處的Web內(nèi)容并在服務(wù)器201中如上述地登記它們。自動(dòng)登記的變化包括1.鏈接的自動(dòng)登記從登記URL開(kāi)始,分析該URL標(biāo)識(shí)的文檔中的所有引用鏈接, 并自動(dòng)登記那些URL鏈接。系統(tǒng)可以提供選項(xiàng)以將URL的登記限于來(lái)自相同Web網(wǎng)站(域) 的那些。2.鏈接的遞歸自動(dòng)登記從登記URL開(kāi)始,以遞歸方式跟蹤URL標(biāo)識(shí)的文檔中的 所有URL鏈接,只要它們來(lái)自相同Web網(wǎng)站(域)。注意該選項(xiàng)對(duì)于某些Web網(wǎng)站將是耗時(shí) 的。3.自動(dòng)計(jì)劃的登記設(shè)置時(shí)間表以登記其內(nèi)容版本和更改均是頻繁/周期性的且 重要的某些URL。例如,可以使用每日時(shí)間表自動(dòng)登記指向內(nèi)部每日“應(yīng)做”列表的URL。當(dāng)然,可以將鏈接的自動(dòng)登記和鏈接的遞歸自動(dòng)登記與其他形式的自動(dòng)登記組 合。本發(fā)明的其他實(shí)施例還可以提供用戶界面,該用戶界面允許服務(wù)器201的用戶設(shè)置Web 客戶端125的用戶個(gè)人感興趣的URL的自動(dòng)登記。使用下文描述的文檔指紋和指紋比較技 術(shù),另一個(gè)實(shí)施例中的服務(wù)器201可以將文檔的自動(dòng)登記限于與已經(jīng)登記的文檔有實(shí)質(zhì)性 不同的那些。使用服務(wù)器201產(chǎn)生副本223的版本歷史登記信息217還可以用于提供使用特定原始URL提取的版本副本223的版本歷 史。因?yàn)榈怯浶畔⑹乖糢RL與登記ID相關(guān),所以處理器202可以使用登記ID查詢登記 信息217并接收與該登記ID所標(biāo)識(shí)的副本223的URL具有相同原始URL的文檔版本的副 本223的登記標(biāo)識(shí)符的列表。服務(wù)器201使用登記ID和原始URL來(lái)構(gòu)造登記ID所指定的 副本223的URL 227的列表。該列表作為Web頁(yè)面中的鏈接被返回到Web客戶端125,然后 用戶就可以單擊鏈接以選擇特定的版本。當(dāng)服務(wù)器201接收到對(duì)應(yīng)于所選鏈接的URL 227 時(shí),它使用該URL將URL 227所指定的副本223返回到Web客戶端125。在其他實(shí)施例中, 服務(wù)器201可以響應(yīng)原始URL或登記版本URL 227的輸入來(lái)提供版本歷史。在前一種情況中,原始URL用于執(zhí)行查詢;在后一種情況中,來(lái)自登記版本URL 227的原始URL 233用于 執(zhí)行查詢。URL 搜索服務(wù)器201可以具有數(shù)以千計(jì)的登記文檔,每個(gè)登記文檔具有各自的副本223和 登記版本URL 227。在一些實(shí)施例中,提供URL搜索功能會(huì)是有用的。在URL搜索中,Web 客戶端125處的用戶將搜索字符串輸入到服務(wù)器201提供的Web頁(yè)面225,服務(wù)器201搜 索包含用戶輸入的搜索字符串的原始URL的登記信息217。當(dāng)然在搜索字符串中可以使用 通配字符。服務(wù)器201還可以提供區(qū)分大小寫(xiě)和不區(qū)分大小寫(xiě)搜索和基于URL或登記時(shí)間 的排序。作為從URL搜索操作的輸出,服務(wù)器201返回Web頁(yè)面,Web頁(yè)面上具有包含匹配 URL 227的鏈接的列表和對(duì)應(yīng)于每個(gè)匹配URL的登記ID 231和登記時(shí)間。這里應(yīng)該指出的是雖然服務(wù)器201登記URL,但是剛才描述的技術(shù)可以結(jié)合任何 類型的可用于提取數(shù)據(jù)項(xiàng)的定位符或標(biāo)識(shí)符來(lái)使用。為此,有時(shí)在下文中使用通用術(shù)語(yǔ)文 檔定位符作為任何其他類型的可用于提取數(shù)據(jù)項(xiàng)的定位符或標(biāo)識(shí)符的URL的通用術(shù)語(yǔ)。如 下是登記所需的項(xiàng)·將三件事彼此相關(guān)的服務(wù)器201可獲取的數(shù)據(jù)結(jié)構(gòu)-服務(wù)器201可訪問(wèn)的已登記的數(shù)據(jù)項(xiàng)的副本;-登記時(shí)用于提取數(shù)據(jù)項(xiàng)的原版的文檔定位符;以及-唯一地標(biāo)識(shí)服務(wù)器201可訪問(wèn)的副本的副本登記標(biāo)識(shí)符?!し?wù)器201通過(guò)提取副本來(lái)響應(yīng)副本的文檔定位符。對(duì)副本223執(zhí)行的操作可以對(duì)版本副本223執(zhí)行許多操作,這進(jìn)一步增加服務(wù)器201的有用性。其中有 相對(duì)鏈接重寫(xiě)、對(duì)副本223進(jìn)行指紋處理、基于它們的指紋比較副本223,以及將索引包括 到數(shù)據(jù)庫(kù)213中的副本223的內(nèi)容中。鏈接重寫(xiě)Web頁(yè)面使用HTML來(lái)定義(超文本標(biāo)記語(yǔ)言)。在HTML中,可以將至另一個(gè)Web 頁(yè)面的鏈接編寫(xiě)為絕對(duì)鏈接,絕對(duì)鏈接指定完整的URL,包括協(xié)議105、主機(jī)名107和Web頁(yè) 面源信息109,或者編寫(xiě)為相對(duì)鏈接,相對(duì)鏈接由追加到用戶用來(lái)提取包含相對(duì)鏈接的Web 頁(yè)面的URL的Web頁(yè)面源信息109組成。因?yàn)槭褂孟鄬?duì)鏈接構(gòu)成的URL總是具有來(lái)自用于 提取含該相對(duì)鏈接的Web頁(yè)面的URL的協(xié)議和主機(jī)名,所以使用相對(duì)鏈接引用與包含該相 對(duì)鏈接的Web頁(yè)面相同的主機(jī)中包含的其他Web頁(yè)面。當(dāng)在服務(wù)器201中登記URL并且將該URL指定的Web頁(yè)面的副本添加到版本副本 223時(shí),副本223自然不再存在于為其寫(xiě)副本223的原版的主機(jī)的Web服務(wù)器中,并且副本 223中的相對(duì)鏈接將結(jié)束用于提取副本223的URL,即指定服務(wù)器201的URL。為了解決這 個(gè)問(wèn)題,當(dāng)服務(wù)器201提取正在登記的URL所引用的Web頁(yè)面并將該Web頁(yè)面的副本添加 到版本副本223時(shí),它制作兩個(gè)副本_其一,原始副本222,這是登記時(shí)提取的原版的真正 副本,其二,重寫(xiě)副本224,這是在其中重寫(xiě)了版本副本223中的所有相對(duì)鏈接的副本,由此 當(dāng)用戶單擊相對(duì)鏈接時(shí),服務(wù)器201提供絕對(duì)URL,該絕對(duì)URL與登記版本URL 227 一樣采 用gc程序以將客戶端125重定向到從其中獲取所提取的Web頁(yè)面的主機(jī)的主機(jī)名所構(gòu)成 的URL指定的服務(wù)器111 (i)。服務(wù)器201執(zhí)行此操作所需的信息是從正在登記的URL獲取的。該優(yōu)選實(shí)施例還以相同方式重寫(xiě)大多數(shù)絕對(duì)鏈接的URL,其中利用gc程序?qū)⒖蛻舳?125重定向到原始絕對(duì)鏈接中指定的服務(wù)器111 (i)。指紋處理版本副本223文檔的指紋是比文檔小得多的值,它是以可以比較兩個(gè)文檔的指紋來(lái)確定文檔彼 此的相似程度的方式根據(jù)文檔產(chǎn)生的。指紋與散列函數(shù)產(chǎn)生的文檔摘要不同,在于兩個(gè)摘 要的比較只能指示產(chǎn)生這些摘要的文檔是否相同。另一方面,指紋比較指示正在比較的文 檔的相似度。文檔服務(wù)器201在登記文檔時(shí)采用指紋處理代碼209制作每個(gè)登記文檔的指 紋,并將指紋存儲(chǔ)在指紋信息219中。稍后將詳細(xì)解釋優(yōu)選實(shí)施例中使用的指紋處理算法。比較版本副本223因?yàn)榉?wù)器201中的每個(gè)版本副本223具有一個(gè)指紋,所以可以通過(guò)將版本副本 223 (i)的指紋與版本副本223 (j)的指紋相比較來(lái)確定任意兩個(gè)版本副本223 (i)和(j)之 間的相似性。該比較通過(guò)文檔比較代碼211來(lái)執(zhí)行。在優(yōu)選實(shí)施例中,服務(wù)器201為每個(gè)版 本副本223維護(hù)該特定版本副本223與其原始URL與該特定版本副本具有相同主機(jī)名107 的版本副本223之間的指紋比較的結(jié)果列表。當(dāng)Web客戶端125的用戶請(qǐng)求給定版本副本223的版本歷史時(shí),服務(wù)器201不僅 返回與用戶作為輸入提供到客戶端125的登記ID 231相關(guān)聯(lián)的版本副本具有相同原始URL 233的版本副本223的鏈接列表,而且還返回至指紋比較結(jié)果列表中出現(xiàn)的版本副本223的 鏈接的列表。與鏈接一起包括的是至給定版本副本223的鏈接所指定的版本副本的相似度 的值。在其他實(shí)施例中,用戶可以僅僅提供文檔的登記ID或從用戶界面Web頁(yè)面225中的 列表中選擇至該文檔的鏈接能夠獨(dú)立于版本歷史操作來(lái)獲取相似的版本副本的列表。能夠 顯示兩個(gè)版本副本223之間的相似度具有兩個(gè)重要的優(yōu)點(diǎn)·當(dāng)制作給定原始URL引用的版本的版本歷史時(shí),版本相似度允許用戶進(jìn)行有關(guān) 版本之間的關(guān)系的一些推測(cè)?!と绻嗤蚍浅O嗨频膬?nèi)容已經(jīng)與來(lái)自相同Web網(wǎng)站的兩個(gè)不同原始URL相關(guān) 聯(lián),則這些不同原始URL的副本223之間的相似度反映與這些原始URL相關(guān)聯(lián)的內(nèi)容實(shí)質(zhì) 是相同的。對(duì)版本副本223建索引可以采用2004年3月26日提交的、Hu等人的USSN 10/810,756、標(biāo)題為具 有永久性用戶可訪問(wèn)的位圖值的數(shù)據(jù)管理系統(tǒng)(A databasemanagement system with persistent,user-accessible bitmap values)中所描述的技術(shù)來(lái)制作數(shù)據(jù)庫(kù)213中的版 本副本223的內(nèi)容的位圖索引??梢詫?duì)所有版本副本223制作索引,或者可以對(duì)與給定原 始URL相關(guān)聯(lián)的版本副本223制作單獨(dú)的索引??梢允褂梅?wù)器201的方式示例服務(wù)器201具有如下特征·它可以在Web文檔所來(lái)自的Web站點(diǎn)不可用時(shí)提供該文檔的版本副本223?!さ怯浿谱鱓eb文檔所來(lái)自的Web站點(diǎn)上當(dāng)前可獲取的文檔的版本的版本副本 223,并將該副本和原始URL關(guān)聯(lián)到版本編號(hào),以便可以跟蹤該Web文檔的版本。 登記可以是自動(dòng)的?!た梢运阉靼姹靖北?23的原始URL。
·使版本副本223與指紋819相關(guān),這允許對(duì)版本副本進(jìn)行比較。下文將解釋利用這些特征的服務(wù)器201的使用。服務(wù)器201作為共享信息的魯棒源一個(gè)公司可能具有許多內(nèi)部Web站點(diǎn)的內(nèi)聯(lián)網(wǎng),包括位于PC上的一些個(gè)人Web頁(yè) 面。當(dāng)這些站點(diǎn)的其中之一工作時(shí),其上的Web文檔當(dāng)然可被獲取。在高可用性處理器和 數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)的服務(wù)器201可以解決該問(wèn)題。可以在服務(wù)器201中自動(dòng)登記一般需要 隨時(shí)可供獲取的來(lái)自內(nèi)部Web站點(diǎn)的Web文檔。該公司的工作人員可以使用該文檔的登記 版本URL 227來(lái)提取它。如上文所描述的,服務(wù)器201將通過(guò)如下操作響應(yīng)登記版本URL: 首先嘗試使用該文檔的原始URL233以將Web客戶端125重定向到該文檔的主Web站點(diǎn),如 果失敗的話,則將提供URL 227的登記ID 231引用的版本副本223??梢詫⒁源朔绞绞褂?的服務(wù)器201與已修改為搜索公司的內(nèi)聯(lián)網(wǎng)的搜索引擎組合。當(dāng)搜索引擎索引到Web文檔 時(shí),也將該文檔登記到服務(wù)器201,搜索引擎返回的URL列表是Web文檔的登記副本223的 URL 227 列表。服務(wù)器201作為Web文檔的版本的源目前,如果公司希望制作可通過(guò)單個(gè)URL獲取的Web文檔的歷史版本,則響應(yīng)該單 個(gè)URL產(chǎn)生的Web頁(yè)面必須是歷史版本的列表,而且該列表必須在每次新版本成為可供獲 取時(shí)被更新。利用服務(wù)器201,公司只需在服務(wù)器201中登記每個(gè)新版本;為了查看可用的 版本副本223并檢索它們中的任何一個(gè),用戶只需利用登記版本URL227對(duì)這些版本的其中 之一使用版本跟蹤操作。服務(wù)器201作為用戶希望保留并使之可供其他人獲取的Web文檔的版本的存儲(chǔ)位
置目前,如果某個(gè)人發(fā)現(xiàn)他自己和其他人當(dāng)前感興趣的Web文檔的版本,則感興趣 的那些人接收到稍后可能完全失效的Web文檔的URL或檢索出與當(dāng)前感興趣的版本不同的 文檔版本??梢酝ㄟ^(guò)登記感興趣的Web文檔的版本并將它的登記版本URL 227提供到對(duì)登 記版本感興趣的那些人來(lái)避免這種情況。優(yōu)選實(shí)施例中的用戶界面的詳情圖3-5圖3示出第一用戶界面Web頁(yè)面225,服務(wù)器201向希望使用服務(wù)器201來(lái)登記 Web頁(yè)面、提取Web頁(yè)面或跟蹤存儲(chǔ)在服務(wù)器201中的特定頁(yè)面的版本的用戶返回該第一用 戶界面Web頁(yè)面225。在303處是用戶可以輸入要登記的URL、登記版本URL 227或登記ID 編號(hào)231以使服務(wù)器201提取原始文檔或副本223或跟蹤服務(wù)器201中的文檔的副本的可 寫(xiě)字段。當(dāng)輸入了 URL或登記ID編號(hào)時(shí),用戶單擊字段303下的按鈕的其中之一以指定操 作。正如從標(biāo)簽可看到的,當(dāng)用戶單擊按鈕305時(shí),服務(wù)器201登記字段303中的URL。當(dāng) 登記該URL時(shí),服務(wù)器301返回315所示的含有內(nèi)容的Web頁(yè)面;如圖中所示,所返回的頁(yè) 面指示已經(jīng)登記了 URL 317并由登記產(chǎn)生的登記版本URL 227。如果已登記了 URL 317,則 消息315如此指示。當(dāng)字段303包含URL 227或登記ID 231時(shí),所發(fā)生的情況取決于用戶單擊了按鈕 307-313中的哪一個(gè)。·如果用戶單擊獲取內(nèi)容(Get cpmtemts)按鈕307,則服務(wù)器201嘗試建立至該 文檔的原始URL所指定的服務(wù)器111 (i)的連接,并將Web客戶端125重定向到該服務(wù)器。如果嘗試失敗,則服務(wù)器201提取URL 227或登記ID 231指定的版本副本223,并將其提供 到客戶端125。服務(wù)器301能夠重定向客戶端125時(shí)出現(xiàn)的Web頁(yè)面僅僅是服務(wù)器111 (i) 上當(dāng)前可獲取的版本;如果重定向失敗且服務(wù)器301提取版本副本223 (i),則所出現(xiàn)的是 圖4所示的Web頁(yè)面401。Web頁(yè)面401由重寫(xiě)副本224產(chǎn)生,并且它包括說(shuō)明鏈接已被重 寫(xiě)并指示登記副本223 (i)的日期和時(shí)間的突出顯示的圖例403?!と绻脩魡螕簟罢?qǐng)跟蹤它(Track it please),,按鈕309,則服務(wù)器301產(chǎn)生Web 頁(yè)面501 (圖5),其中包含URL 227或登記ID 231指定的副本223的版本列表503和與URL 227指定的副本相似的副本223的列表505。在每個(gè)列表項(xiàng)中,指定副本223的登記ID和 登記副本223的時(shí)間;在相似的副本的列表中,每個(gè)項(xiàng)還包含507所示的相似度的值。在 509,最后,頁(yè)面指示何時(shí)執(zhí)行跟蹤。單擊列表項(xiàng)使該項(xiàng)表示的版本副本223的重寫(xiě)副本224 返回。 如果用戶單擊“獲取版本(Get that version) ”按鈕311,則返回的是URL 227 或登記ID 231指定的版本副本223的重寫(xiě)副本224。顯示內(nèi)容與圖4所示的相同。·如果用戶單擊“獲取它的原版(Get it in original) ”按鈕313,則所返回的是 URL 227或登記ID 231指定的版本副本223的原始版本222。當(dāng)然該界面的許多其他版本也是可能的。在一些應(yīng)用中,并非所有這些操作都是 必需的。例如,如果服務(wù)器201僅僅要確保Web文檔的版本始終可供獲取并且自動(dòng)或僅通 過(guò)系統(tǒng)管理器來(lái)登記文檔,則可能只需要獲取內(nèi)容操作。相似地,如果使用服務(wù)器201僅僅 是為了跟蹤版本并且自動(dòng)或僅通過(guò)系統(tǒng)管理器登記版本,則可能僅需要跟蹤操作。在一些 實(shí)施例中,僅系統(tǒng)管理器將對(duì)原始副本224感興趣,所以用戶將只查看到重寫(xiě)副本224。在 其他實(shí)施例中,界面可以提供用于其他操作的按鈕,例如獨(dú)立于版本跟蹤操作或URL搜索 操作的文檔比較操作。登記文檔表215的詳情在優(yōu)選實(shí)施例中,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中的登記文檔表215中包含使登記ID 231與 Web頁(yè)面的原始URL 233相關(guān)的信息以及指紋處理和文檔比較所需的信息。圖6是表215 的實(shí)體關(guān)系示意圖以及它們之間的關(guān)系。圖6中的虛線框表示表與圖2所示的信息類型之 間的關(guān)系。由登記信息217開(kāi)始,該信息包含在兩個(gè)表中PAGE_CACHE表601和REGISTERED_ URL表607。REGISTERED_URL表607使登記ID 231與原始URL 233相關(guān)。表607中對(duì)應(yīng)于 每個(gè)登記版本副本223有一行。行中與當(dāng)前論述有關(guān)的字段是包含版本副本223的原始URL 233的REG_URL字段field 233、包含版本副本223的登記ID231且對(duì)于該行是唯一關(guān)鍵字 的REG_ID字段、以及包含表示登記版本副本223的日期和時(shí)間的數(shù)據(jù)時(shí)間戳的REGISTER_ TIME字段。PAGE_CACHE表601使登記ID 231與版本副本223相關(guān)。表601中對(duì)應(yīng)于每個(gè)登記 版本副本223有一行,因此對(duì)應(yīng)于REGISTERED_URL表607中的每一行在表601中有一行。該 行中與當(dāng)前上下文有關(guān)的字段是包含版本副本的登記ID 231且對(duì)于該行是唯一關(guān)鍵字的 REG_ID 字段、C0NTENT_ENC0DING、C0NTENT_TYPE、以及 LAST_M0DIFIED,它們?nèi)堪嘘P(guān) 版本副本223的信息,并且版本副本223的兩個(gè)版本FULL_C0NTENT字段中的重寫(xiě)副本224 和0RIG_C0NTENT字段中的原始版本222。REG_ID同時(shí)出現(xiàn)在PAGE_CACHE和REGISTERED_URL表中進(jìn)一步使原始URL與版本副本223相關(guān)。FINGER_PRINT表609中包含指紋信息219。表609中對(duì)應(yīng)于每個(gè)登記ID 231有 一行,因此對(duì)應(yīng)于每個(gè)版本副本223有一行。該行中的相關(guān)字段是包含版本副本233的登 記ID 231且對(duì)于該行是唯一關(guān)鍵字的REG_ID字段、包含由版本副本的原始版本222制作 的指紋的FINGER_PRINT字段、以及包含來(lái)自與REG_ID字段的值指定的版本副本223相同 的Web站點(diǎn)且與REG_ID字段的值標(biāo)識(shí)的版本副本具有實(shí)質(zhì)相似性的版本副本223的列表 的SIMILAR_PAGES字段。該列表對(duì)于每個(gè)版本副本包含版本副本的登記ID和指示該版本 副本與該行的REG_ID字段值標(biāo)識(shí)的版本副本之間的相似度的值。LAST_FUZZY_MATCH_TIME 字段包含指示SIMILAR_PAGES字段中的列表被更新的最后時(shí)間的時(shí)間-日期時(shí)間戳。REFERENCED_LINK 表 617 禾Π ALL_LINK 表 613 中包含鏈接信息 221。版本副本 223 中發(fā)現(xiàn)的每個(gè)不同的鏈接由唯一的鏈接ID值標(biāo)識(shí)。ALL_LINK表613中對(duì)應(yīng)于每個(gè)鏈接有 一個(gè)行。鏈接的行使鏈接ID (在LINK_ID字段中)與原始Web頁(yè)面中的絕對(duì)或相對(duì)鏈接指 定的URL所對(duì)應(yīng)的絕對(duì)URL (在LINK_URL字段中)相關(guān)。LINK_ID字段的值是該行的唯一 關(guān)鍵字。REFERENCED_LINK表617使登記ID與該登記ID指定的版本副本223中的鏈接的 鏈接ID相關(guān)。對(duì)于每個(gè)登記ID,對(duì)應(yīng)于該登記ID指定的版本副本223中的每個(gè)鏈接有一 行。REG_ID字段包含版本副本的登記ID 231,而LINK_ID字段包含REG_ID字段中的這些 鏈接的其中之一的鏈接ID。通過(guò)登記ID對(duì)REFERENCED_LINK表617的查詢將返回該登記 ID標(biāo)識(shí)的版本副本223中的鏈接的鏈接ID列表,然后可以在ALL_LINK表使用這些鏈接ID 來(lái)獲取這些鏈接的URL。在優(yōu)選實(shí)施例中,使用鏈接信息221對(duì)兩個(gè)版本副本233是否足夠 相似以保證比較它們的指紋作出閾值確定。Web服務(wù)器201操作的詳情當(dāng)結(jié)合圖3-5的圖形用戶界面研究圖6的表時(shí),立即顯見(jiàn)對(duì)URL登記、獲取登記 URL的內(nèi)容、跟蹤版本、獲取副本223的重寫(xiě)副本224和獲取副本223的原始版本222的操 作是如何執(zhí)行的。登記當(dāng)在輸入用戶界面頁(yè)面301的字段303中輸入原始URL并且用戶單擊“登記 URL (Register URL) ”按鈕305時(shí),登記代碼207獲取登記的唯一登記ID 231,在PACE_CACHE 表601中設(shè)置一個(gè)行且使其中的REG_ID字段的值是登記ID 231,然后將原始URL引用的 內(nèi)容的副本222保存在該行的0RIG_C0NTENT字段。登記代碼207還為C0NTENT_ENC0DING 和C0NTENT_TYPE字段提供來(lái)自副本222的相關(guān)值,并且使用鏈接重寫(xiě)代碼205來(lái)重寫(xiě)副 本222中的鏈接以產(chǎn)生副本224,然后將副本224存儲(chǔ)在該行的FULL_C0NTENT字段中。鏈 接重寫(xiě)代碼205還根據(jù)需要在ALL_LINK表613和REFERENCED_LINK表617中設(shè)置用于鏈 接的行。然后登記代碼在REGISTERED_URL表607中為新登記標(biāo)識(shí)符和原始url設(shè)置新的 行,并對(duì)該新項(xiàng)設(shè)置時(shí)間戳。視實(shí)施例而定,登記代碼207可以在登記時(shí)間調(diào)用指紋處理代 碼209來(lái)進(jìn)行新版本副本223的原始版本222的指紋處理或在稍后執(zhí)行指紋處理。當(dāng)執(zhí)行 它時(shí),在FINGER_PRINT表609中為新版本副本223和指紋設(shè)置一個(gè)行。因?yàn)閷⑿掳姹靖北?223的指紋與來(lái)自相同Web站點(diǎn)的所有其他版本副本223的指紋進(jìn)行比較需要相當(dāng)多的資 源,所以通常將在稍后執(zhí)行在SIMILAR_PAGES中設(shè)置列表。自動(dòng)登記基本如剛才所描述的 那樣來(lái)工作,例外的是由Web爬行器(Web crawler)來(lái)提供原始URL。
獲取內(nèi)容當(dāng)用戶將登記版本URL 227或登記ID 231輸入到字段303并單擊“獲取內(nèi)容(Gwt content)”按鈕307時(shí),服務(wù)器201執(zhí)行版本位置代碼203。使用輸入的登記ID 231或來(lái) 自輸入的登記URL 227的登記ID 231來(lái)定位REGISTERED_URL表607中對(duì)應(yīng)于該登記ID 231的行,服務(wù)器201使用REG_URL字段中的原始URL 233嘗試建立與原始URL 233指定 的服務(wù)器的連接。如果服務(wù)器201成功,則它將Web客戶端125重定向到該服務(wù)器;否則, 服務(wù)器201從PAGE_CACHE 601中該登記ID的行提取登記ID標(biāo)識(shí)的版本副本的重寫(xiě)副本 224。從REGISTERED_URL表607中該登記ID的行中的REGISTERJTIME字段獲取附有重寫(xiě) 副本224的指示403中的日期-時(shí)間輸出。跟蹤具有特定原始URL的Web文檔的登記版本當(dāng)用戶將登記版本URL 227或登記ID 231輸入到字段303并單擊“請(qǐng)跟蹤它 (Track it please)”按鈕309時(shí),服務(wù)器201還執(zhí)行屬于版本位置代碼203的一部分 的代碼。該代碼的執(zhí)行使服務(wù)器201使用與登記版本URL 227中的登記ID相關(guān)聯(lián)的或 REGISTERED_URL 表 607 中的原始 URL 來(lái)定位 REGISTERED_URL 表 607 中所有其 REG_URL 字 段233具有與原始URL的值相同的值的行。當(dāng)然這些行對(duì)應(yīng)于存儲(chǔ)在服務(wù)器201中對(duì)應(yīng)于 原始URL的Web文檔的版本。該代碼然后使服務(wù)器201使用這些行來(lái)產(chǎn)生每個(gè)行的登記版 本URL227,并使用登記版本URL 227在Web頁(yè)面501中產(chǎn)生版本503的列表。跟蹤與給定登記版本相似的Web文檔的登記版本在優(yōu)選實(shí)施例中,Web頁(yè)面501還包括與登記版本URL 227或登記ID 231指定的 登記Web文檔223相似的登記Web文檔223的列表505。在優(yōu)選實(shí)施例中,版本位置代碼 203使服務(wù)器201根據(jù)登記ID的列表和表FINGER_PRINT 609中對(duì)應(yīng)于登記ID 231的行中 的字段SIMILAR_PAGES中的相似性值來(lái)制作列表505。檢索Web文檔的特定版本副本223當(dāng)用戶將登記版本URL 227或登記ID 231輸入到字段303并單擊“獲取該版本 (Get that version) ”按鈕311時(shí),版本位置代碼203使服務(wù)器201從來(lái)自輸入的登記ID 231或來(lái)自輸入的URL 227的登記ID 231所指定的PAGE_CACHE表601的行中的字段FULL_ CONTENT中檢索重寫(xiě)副本224。當(dāng)用戶執(zhí)行相同操作并單擊“獲取它的原版(Get it in original) ”按鈕313時(shí),版本位置代碼303使服務(wù)器201從該行的字段0RIG_C0NTENT檢索 原始副本222。鏈接重寫(xiě)的詳情如上文所描述的,當(dāng)服務(wù)器201登記Web文檔時(shí),服務(wù)器201重寫(xiě)該Web文檔中的 相對(duì)鏈接以產(chǎn)生該Web文檔的重寫(xiě)副本224。服務(wù)器201執(zhí)行以進(jìn)行重寫(xiě)的代碼是鏈接重 寫(xiě)代碼205,它采用如下方法來(lái)重寫(xiě)正在登記的Web文檔中遇到的每個(gè)URL。URL rewriteUrl(URL baseURL, URL url).{1.首先,基于baseURL和url構(gòu)造absoluteURL。注意如果url不是相對(duì)URL,則 absoluteURL 將等于 url。2.其次,如果url來(lái)自HTML表單操作,例如〈form action =〃 ..." >,則返回 absoluteURL。
3.否則,構(gòu)造http //wru-server-host-and-path ? gc = l&url = absoluteURL 并返回它。注 意這里構(gòu)造的是包含原始URL 233但不包含登記ID 231的特定形式的登記版本URL 227。服務(wù)器201然后將該特定形式的URL 227寫(xiě)入到重寫(xiě)副本224,以替代原始鏈接中 的URL。當(dāng)用戶查看重寫(xiě)副本224并單擊具有重寫(xiě)URL的鏈接時(shí),服務(wù)器201接收該特定形 式的登記版本URL 227,并如上文所描述的作為標(biāo)準(zhǔn)登記版本URL 227來(lái)響應(yīng)它將Web客 戶端125重定向到特殊URL 227中所包含的絕對(duì)URL指定的Web文檔。在其他實(shí)施例中, 如果該Web文檔是不可獲取的且在服務(wù)器201中有對(duì)應(yīng)于該URL的存儲(chǔ)副本,則服務(wù)器201 可以提取該副本,并且在一些情況中可以提取其登記日期使之與包含該鏈接的副本最相關(guān) 的副本。實(shí)際上,在一些實(shí)施例中,服務(wù)器201可以首先嘗試提取相關(guān)的存儲(chǔ)副本,而不是 提取當(dāng)前版本。并不使用該特定形式的URL 227來(lái)重寫(xiě)HTML表單操作構(gòu)造〈form action ="url" >中的URL,因?yàn)樗鼈兺莾H在過(guò)去是原始文檔的源的Web服務(wù)器中可獲取的 一些處理邏輯的入口點(diǎn)。一個(gè)示例是〈form action = “ login, jsp" >。為了解決此問(wèn)題, 僅將HTML表單操作中的URL重寫(xiě)為源服務(wù)器的絕對(duì)URL。重寫(xiě)代碼205還使服務(wù)器201只要在它遇到或設(shè)置表613中尚不存在的絕對(duì)URL 時(shí)便向ALL_LINK表613中添加一行,以及只要在它遇到或設(shè)置表617中沒(méi)有版本副本223 的登記ID的行所對(duì)應(yīng)的絕對(duì)URL且在ALL_LINK表613中遇到該絕對(duì)URL的鏈接ID時(shí)便 在REFERENCED_LINK表617中為重寫(xiě)版本224屬于的版本副本添加一行。指紋處理的詳情概述如下是用于發(fā)現(xiàn)相似版本副本223的登記URL的整個(gè)流程·使用下文解釋的算法為給定登記版本URL 227表示的副本223生成指紋 按需要在ALL_LINK表613和REFERENCED_LINK表617中設(shè)置通過(guò)鏈接重寫(xiě)執(zhí)行 以產(chǎn)生重寫(xiě)版本224而產(chǎn)生的絕對(duì)鏈接的行。 假設(shè)給定副本223的原始URL 233的情況下,獲取所有其原始URL 233具有與該 給定副本的原始URL的主機(jī)名和端口相同的主機(jī)名107和端口的其他副本223的登記ID 231和指紋的列表?!な褂眯问綐?biāo)準(zhǔn)對(duì)該列表進(jìn)行過(guò)濾,以快速消除與該給定副本223具有無(wú)意義的 相似性的副本223。在該優(yōu)選實(shí)施例中,使用REFERENCED_LINK表617中的信息來(lái)實(shí)現(xiàn)此操作?!?duì)于通過(guò)過(guò)濾的副本223,對(duì)指紋應(yīng)用下文定義的模糊匹配算法。·制作支持與該給定副本223合理相似度的副本223的登記ID231和相似度的列表。指紋處理算法圖7和8該部分描述優(yōu)選實(shí)施例中用來(lái)根據(jù)HTML文檔產(chǎn)生指紋的技術(shù),可以將該指紋與 使用相同技術(shù)產(chǎn)生的另一個(gè)指紋比較以確定制作指紋所用的HTML文檔之間的相似度。之 所以可以比較這些指紋來(lái)確定相似度是因?yàn)樗鼈儼琀TML文檔中所含的所有結(jié)構(gòu)信息的 縮小表示以及HTML文檔的內(nèi)容的縮小表示??梢哉{(diào)整這里描述的用于對(duì)HTML文檔進(jìn)行指 紋處理的技術(shù)以便在表示清楚地將文檔的結(jié)構(gòu)信息與文檔的內(nèi)容分離的任何文檔表示中使用。如圖7中707所示,HTML文檔可以視為樹(shù)。在該樹(shù)中,有兩種類型的節(jié)點(diǎn)節(jié)點(diǎn) 709,表示HTML文檔中的結(jié)構(gòu)信息;以及節(jié)點(diǎn)711,包含HTML文檔的實(shí)際內(nèi)容。內(nèi)容節(jié)點(diǎn) 711 —般包含文本。701所示的樹(shù)由701所示的簡(jiǎn)單HTML文檔形成。如圖中703所示,結(jié) 構(gòu)信息由HTML標(biāo)記提供。每個(gè)標(biāo)記被包圍在尖括號(hào)中,而內(nèi)容不在其中,如圖中705所示。 標(biāo)記一般成對(duì)出現(xiàn),例如<html>、</html>,其中標(biāo)記對(duì)的第一個(gè)標(biāo)記指示該標(biāo)記所應(yīng)用的 HTML文檔部分的開(kāi)始,而第二個(gè)標(biāo)記指示結(jié)束。一對(duì)標(biāo)記可以在它之間嵌套其他標(biāo)記或標(biāo) 記對(duì)。在樹(shù)707中,每個(gè)標(biāo)記節(jié)點(diǎn)709包含來(lái)自文檔701的對(duì)應(yīng)標(biāo)記,每個(gè)文本節(jié)點(diǎn)711包 含對(duì)應(yīng)的文本。如果指紋要用于確定HTML文檔的相似性,指紋必須捕獲由它的HTML標(biāo)記定義的 文檔結(jié)構(gòu)以及它的文本或其他內(nèi)容,但是還必須實(shí)質(zhì)性地小于用于產(chǎn)生它們的HTML文檔。 在優(yōu)選實(shí)施例中使用的技術(shù)中,通過(guò)對(duì)這些標(biāo)記編碼并將HTML文檔中的標(biāo)記置換為它們 編碼的版本來(lái)縮減標(biāo)記的大小。為了縮減指紋中內(nèi)容的大小同時(shí)保留內(nèi)容的可比性,可采 用多種技術(shù)1.使用例如MD5的消息摘要算法,由消息生成固定大小的消息摘要;2.使用例如安全散列標(biāo)準(zhǔn)的標(biāo)準(zhǔn)散列技術(shù)對(duì)內(nèi)容進(jìn)行散列處理;3.將文本置換為其一部分以及或許外加整個(gè)文本的長(zhǎng)度。前兩種技術(shù)都是公知的。有關(guān)MD5的詳情請(qǐng)參閱http://WWW. faqs. org/rfcs/ rfcl321.html ;有關(guān)安全散列標(biāo)準(zhǔn)的詳情請(qǐng)參閱 http://www. itl. nist. gov/fipspubs/ fipl80-l.htm。該優(yōu)選實(shí)施例采用第三個(gè)選擇。例如,我們可以選擇使用第一個(gè)(或中間 或最后一個(gè))詞加文本長(zhǎng)度。我們還可以使用第一個(gè)(中間或最后一個(gè))非空格字符加文 本長(zhǎng)度。第三個(gè)選擇產(chǎn)生比前兩個(gè)選擇短的文本表示,并且需要的計(jì)算也較少;其缺點(diǎn)是檢 測(cè)到文本中改變的概率低于采用散列或摘要的技術(shù)。在該優(yōu)選實(shí)施例中,以文本的前兩個(gè)非空格小寫(xiě)字符加文本長(zhǎng)度信息構(gòu)成的文本 特征替代文本。其他實(shí)施例可以選擇其他字符,其選擇通常取決于語(yǔ)言。將長(zhǎng)度信息按58 模數(shù)化(modularize),然后將64加模數(shù)化的結(jié)果。模數(shù)化并加64為了使長(zhǎng)度信息由可被 人可讀的ASCII字符表示。注意,64是的ASCII碼,121是“y”的ASCII碼。試探性地 選擇這兩個(gè)數(shù)字64和58,它們應(yīng)該是可調(diào)節(jié)的系統(tǒng)參數(shù)。其他實(shí)施例可以使用MD5或某個(gè) 其他散列標(biāo)準(zhǔn)來(lái)設(shè)置文本的特征。圖8示出算法805和將該算法應(yīng)用于HTML文檔701所得到的指紋819。在801所 示的是文檔701中采用的HTML標(biāo)記的編碼。表801的每個(gè)行具有起始標(biāo)記及其對(duì)應(yīng)的結(jié) 束標(biāo)記的編碼。由此,行803給出<HTML>和</HTML>的編碼。在805所示的是,優(yōu)選實(shí)施例中采用的指紋處理算法的偽代碼。在最上層,算法具 有三個(gè)部分初始化807、指紋產(chǎn)生循環(huán)809和在817返回指紋。初始化807將指紋變量初 始化為空字符串。循環(huán)809運(yùn)行直到讀取并處理了整個(gè)HTML文檔為止。在樹(shù)707中有三 種不同類型的節(jié)點(diǎn)用于HTML起始標(biāo)記的那些節(jié)點(diǎn)、用于HTML結(jié)束標(biāo)記的那些節(jié)點(diǎn)和包含 內(nèi)容的那些節(jié)點(diǎn)。IF語(yǔ)句811處理HTML起始標(biāo)記它僅僅發(fā)現(xiàn)對(duì)應(yīng)于該起始標(biāo)記的編碼 的表單,并將該編碼的表單置于指紋中;IF語(yǔ)句813對(duì)HTML結(jié)束標(biāo)記執(zhí)行相同操作。內(nèi)容 節(jié)點(diǎn)711由IF語(yǔ)句815來(lái)處理,它按如上所描述來(lái)操作向指紋添加文本的前兩個(gè)非空格小寫(xiě)字符,然后添加其值由文本長(zhǎng)度來(lái)確定的第三個(gè)字符。使用來(lái)自HTML文檔701的上文算法生成了圖8所示的指紋819。821處示出編 碼的<HTML>起始標(biāo)記,825處示出編碼的</HTML>結(jié)束標(biāo)記,以及823處示出用于表征文 本Hello!的字符串。依據(jù)圖707的樹(shù),算法通過(guò)處理節(jié)點(diǎn)709(b)并將處理結(jié)果添加到 指紋819、然后依此類推地處理節(jié)點(diǎn)709(d)、節(jié)點(diǎn)709(f)、節(jié)點(diǎn)711 (a)、節(jié)點(diǎn)709(g)、節(jié)點(diǎn) 709(h)、節(jié)點(diǎn)711(b)、節(jié)點(diǎn)709⑴、節(jié)點(diǎn)709(e)和節(jié)點(diǎn)709(c)來(lái)產(chǎn)生指紋819。使用指紋計(jì)算HTML文檔的相似性圖9憑直覺(jué)地,給定按剛才所描述的從兩個(gè)HTML文檔產(chǎn)生的兩個(gè)字符串指紋,指紋中 所共有的子字符串中的字符總數(shù)越大,產(chǎn)生這兩個(gè)指紋的HTML文檔的相似度越高。圖9是基于上述直覺(jué)的算法901的偽代碼。下文呈示的算法的詳情取決于指紋中 所用的HTML起始標(biāo)記的表示,但是該算法可以容易地調(diào)整為由其他文檔表示構(gòu)成的指紋。 該算法取一對(duì)指紋fpl和fp2作為自變量,其中fp_不長(zhǎng)于fp2。該算法從較短的指紋(稱 為源指紋)開(kāi)始,查找第一個(gè)“〈”,它是源指紋中映射的HTML標(biāo)記的定界符,從該找到的 位置開(kāi)始查找最長(zhǎng)的共有子字符串,然后移到共有子字符串之后的下一個(gè)“〈”,并重復(fù)該過(guò) 程。該算法使用需要理解的兩個(gè)函數(shù)locate_substring()和IongestSubstrO。locate_SubString()定位下一個(gè)匹配子字符串。該函數(shù)取用三個(gè)參數(shù)。第一個(gè)參 數(shù)是源指紋。第二個(gè)參數(shù)是將在源指紋中找到的子字符串。第三個(gè)參數(shù)定義源字符串中用 于匹配的起始位置。例如,IocateSubStringC' abcabc",‘‘ ab",2)將返回4。如果沒(méi) 有發(fā)現(xiàn)匹配的,則IocateSubString將返回0。IongestSubstr (fpl, fp2, delimPos)返回 fpl 中起始于位置 delimPos 且也是 fp2 中的子字符串的最長(zhǎng)可能子字符串。例如,longestSubstr(〃 xyABCG⑶1234",〃 88890AB CGGABZGGD1234",3)將返回 “ABCGG,,。接下來(lái)詳細(xì)描述,在903,初始化步驟初始化標(biāo)出源字符串中的位置的兩個(gè)變量: IastPos,它標(biāo)出源指紋中將開(kāi)始進(jìn)行匹配的當(dāng)前位置,以及delimPos,它標(biāo)出當(dāng)前“〈”定 界符字符在源指紋中的位置。IastPos被初始化為1,delimPos被初始化為源指紋中的第 一個(gè)“〈”。將這兩個(gè)指紋之間的相似性(similarity)初始化為O。這兩個(gè)指紋的處理在執(zhí) 行while循環(huán)905中執(zhí)行,該循環(huán)運(yùn)行直到在源指紋中找不到左尖括號(hào)“〈”為止。在循環(huán) 體中,執(zhí)行的第一件事是開(kāi)始查找fpl的在當(dāng)前“〈”字符開(kāi)始處的部分與fp2全部之間的 最長(zhǎng)子字符串匹配(906);如果該匹配長(zhǎng)度大于或等于6個(gè)字符,則將該匹配的長(zhǎng)度添加到 變量similarity。將當(dāng)前匹配長(zhǎng)度或至少1添加到lastPos,并在IastPos處開(kāi)始,查找下 一個(gè)“〈”字符,并重復(fù)循環(huán)905。當(dāng)循環(huán)終止時(shí),通過(guò)將變量similarity的當(dāng)前值除以源指 紋的長(zhǎng)度來(lái)計(jì)算文檔的相似性。注意IF語(yǔ)句906中的數(shù)字“6”是試探性選擇的。它應(yīng)該屬于可調(diào)的系統(tǒng)參數(shù)。該 參數(shù)的目的在于設(shè)置所發(fā)現(xiàn)的共有子字符串的大小的下限。憑直覺(jué)地,如果僅發(fā)現(xiàn)非常短 的子字符串的匹配,例如是HTML中的“
”的“<v”,發(fā)現(xiàn)此類匹配的事實(shí)表明產(chǎn)生指紋的 HTML文檔的相似性很小。作為對(duì)上面算法的可能改進(jìn),一旦定位了共有子字符串,就可以從 fp2移除它,由此將不再進(jìn)一步對(duì)fp2測(cè)試匹配。雖然這是有點(diǎn)耗時(shí)。限制要執(zhí)行的指紋比較的次數(shù)圖10因?yàn)榉?wù)器201中有每個(gè)版本副本223的指紋,所以可以將任何版本副本的指紋819與任何其他版本副本223的指紋比較。當(dāng)然大多數(shù)情況中,比較都將顯示沒(méi)有相似性; 但是從指紋查找要求算法901的性能,其執(zhí)行時(shí)間對(duì)于不相似的指紋來(lái)說(shuō)比相似指紋慢。 這里所需要的是一種方法以在執(zhí)行指紋比較之前過(guò)濾文檔對(duì),以便僅對(duì)具有合理概率是相 似的文檔執(zhí)行指紋比較。在優(yōu)選實(shí)施例中,使用兩種分開(kāi)的技術(shù)來(lái)過(guò)濾文檔對(duì)。一種技術(shù)用于在FINGER_ PRINT表609中給定頁(yè)面的行中設(shè)置SIMILAR_PAGES列表。該列表中的頁(yè)面限于來(lái)自與給 定頁(yè)面相同Web站點(diǎn)的頁(yè)面。另一種技術(shù)是檢查要比較相似性的版本副本223中所含的鏈 接的不相似性。該技術(shù)基于如下觀察·相似的HTML文檔往往具有相似的鏈接數(shù)量,這些鏈接往往在兩個(gè)文檔中指向相 同的Web站點(diǎn)?!?HTML文檔中的鏈接按遠(yuǎn)比HTML文檔的內(nèi)容或標(biāo)記變更速度慢的速度變更。根據(jù)前述內(nèi)容,如果對(duì)于由文檔服務(wù)器201正在比較的一對(duì)版本副本223可以確 定該文檔對(duì)中的這兩個(gè)文檔具有數(shù)量差異很大的鏈接或這些鏈接在這兩個(gè)文檔對(duì)中不指 向相同Web站點(diǎn),則顯然該對(duì)副本223是不相似的,并且無(wú)需比較它們的指紋。當(dāng)然可以將 這兩種過(guò)濾技術(shù)組合。當(dāng)然立即將顯見(jiàn)到有關(guān)HTML文檔中的鏈接的觀察同等地適用于任 何其他文檔表示中的鏈接,以及可以將這些過(guò)濾技術(shù)與包含鏈接的任何類型的文檔一起使 用。服務(wù)器201維護(hù)有關(guān)它需要基于REFERENCED_LINK表617中的鏈接不相似性來(lái)過(guò) 濾的鏈接的信息??梢岳谜诒容^的副本223的登記ID查詢REFERENCED_LINK表617 來(lái)獲取過(guò)濾操作所需的所有信息。對(duì)副本對(duì)的每個(gè)副本223的查詢確定副本對(duì)中的每個(gè)版 本副本223的鏈接的數(shù)量。查詢還返回版本副本223中鏈接的LINK_ID值的列表,并可以 比較這些值。如果兩個(gè)列表中都出現(xiàn)相同LINK_ID值,則兩個(gè)版本副本223具有至相同URL 的鏈接。圖10示出基于鏈接不相似性的過(guò)濾的算法。正如根據(jù)前文論述所期望的,以兩個(gè) 步驟執(zhí)行該算法。第一步1001確定副本對(duì)的每個(gè)版本副本包含多少鏈接并基于此執(zhí)行過(guò) 濾。IinkNuml包含副本對(duì)中的第一副本223中的鏈接數(shù),linkNum2包含副本對(duì)中的第二副 本223中的鏈接數(shù)。應(yīng)用兩個(gè)測(cè)試1003和1005,除非副本對(duì)223通過(guò)兩個(gè)測(cè)試的其中之 一,否則過(guò)濾掉它。測(cè)試1003僅讓組合鏈接數(shù)不大于7的副本對(duì)223通過(guò)。測(cè)試1005將兩 個(gè)文檔中的鏈接數(shù)之差除以兩個(gè)文檔中的鏈接數(shù)之和+2,如果除法的結(jié)果小于1/3,則讓 該副本對(duì)通過(guò)。所用的數(shù)字7、2和0.3333也是試探性選擇的。它們可以屬于系統(tǒng)的可調(diào) 節(jié)配置參數(shù)。第一條件表明如果這兩個(gè)URL包含僅少量的引用鏈接,則應(yīng)該讓它通過(guò)。第 二條件表明如果這兩個(gè)URL的引用鏈接的數(shù)量之差在預(yù)定義的范圍內(nèi),則過(guò)濾器應(yīng)該讓它 通過(guò)。第二步1007確定兩個(gè)頁(yè)面共有的鏈接的數(shù)量。totalLinksNum是副本對(duì)223的其 中之一中的鏈接數(shù);sameLinksNum是兩個(gè)副本223中都有的鏈接的相同URL的數(shù)量。1015 處示出通過(guò)的條件。該測(cè)試中使用的數(shù)量也是試探性選擇的,它們應(yīng)該是可調(diào)節(jié)的系統(tǒng)配 置參數(shù)。該條件表明如果較之引用鏈接的總數(shù),相同鏈接的數(shù)量合理地大,則過(guò)濾器應(yīng)該讓 該副本對(duì)223通過(guò)。當(dāng)一對(duì)副本同時(shí)通過(guò)測(cè)試1001和測(cè)試1007時(shí),服務(wù)器201將比較該 副本對(duì)的指紋。
前文“具體實(shí)施方式
”為相關(guān)技術(shù)領(lǐng)域的技術(shù)人員描述了如何制作和使用本發(fā)明 的倉(cāng)庫(kù)服務(wù)器,并進(jìn)一步描述了發(fā)明人用于實(shí)現(xiàn)倉(cāng)庫(kù)服務(wù)器的目前已知的最佳方式。對(duì)于 相關(guān)技術(shù)領(lǐng)域的技術(shù)人員來(lái)說(shuō),使用不同于本文所描述的優(yōu)選實(shí)施例來(lái)實(shí)現(xiàn)本發(fā)明是顯見(jiàn) 的。例如,優(yōu)選實(shí)施例在因特網(wǎng)和http協(xié)議提供的環(huán)境中工作,因此該優(yōu)選實(shí)施例的許多 細(xì)節(jié)是由環(huán)境決定的。但是有必要確保通??山?jīng)網(wǎng)絡(luò)訪問(wèn)的文檔的副本在它們不可經(jīng)網(wǎng)絡(luò) 獲取時(shí)或需要從當(dāng)前可經(jīng)網(wǎng)絡(luò)訪問(wèn)的那些副本獲取不同版本時(shí)可訪問(wèn)的任何場(chǎng)合中都可 以采用本發(fā)明的原理。在優(yōu)選實(shí)施例中,使用關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中的表來(lái)維護(hù)倉(cāng)庫(kù)中存儲(chǔ)的副本之間的必 要關(guān)系、副本的文檔URL、標(biāo)識(shí)倉(cāng)庫(kù)服務(wù)器中的副本的標(biāo)識(shí)符、副本及其指紋、以及副本及其 相似副本的列表。這些表當(dāng)然可以采取非本文所公開(kāi)的形式的許多形式,此外,為能夠表示 必要關(guān)系的數(shù)據(jù)結(jié)構(gòu)以及關(guān)系表的任何安排都是有效的。本發(fā)明的給定實(shí)現(xiàn)可以不執(zhí)行優(yōu) 選實(shí)施例執(zhí)行的所有操作,或者可以執(zhí)行優(yōu)選實(shí)施例不執(zhí)行的操作。當(dāng)然優(yōu)選實(shí)施例的用 戶界面由http協(xié)議的要求、優(yōu)選實(shí)施例執(zhí)行的操作以及發(fā)明人的喜好來(lái)決定,并且許多其 他用戶界面也是可能的。利用指紋,優(yōu)選實(shí)施例的許多細(xì)節(jié)作為如下事實(shí)的結(jié)果指紋設(shè)計(jì)為根據(jù)HTML文 檔制作,但是本文所描述用于制作和比較指紋的技術(shù)可以容易地調(diào)整以適應(yīng)具有結(jié)構(gòu)性組 成部分以及內(nèi)容的任何形式的文檔。就所有前文原因而言,“具體實(shí)施方式
”應(yīng)視為在各方面均是示范性的而非限定性 的,本文公開(kāi)的本發(fā)明的范圍不應(yīng)由“具體實(shí)施方式
”來(lái)決定,而是由根據(jù)專利法所允許的 完整范圍解釋的權(quán)利要求來(lái)決定。
權(quán)利要求
一種可經(jīng)網(wǎng)絡(luò)訪問(wèn)并對(duì)第一文檔定位符標(biāo)識(shí)的文檔的存儲(chǔ)副本具有訪問(wèn)權(quán)的倉(cāng)庫(kù)服務(wù)器,所述倉(cāng)庫(kù)服務(wù)器包括文檔登記器,接收文檔的第一文檔定位符并通過(guò)使用所述第一文檔定位符經(jīng)所述網(wǎng)絡(luò)從另一個(gè)服務(wù)器提取所述文檔的副本、將所述副本存儲(chǔ)在所述倉(cāng)庫(kù)服務(wù)器可訪問(wèn)的存儲(chǔ)器中、計(jì)算所述倉(cāng)庫(kù)服務(wù)器中的所述存儲(chǔ)副本與其他存儲(chǔ)副本之間的相似性來(lái)對(duì)此響應(yīng),所述相似性將有關(guān)所述存儲(chǔ)副本的結(jié)構(gòu)和內(nèi)容信息都納入考慮,將所述存儲(chǔ)副本與相似的其他存儲(chǔ)副本關(guān)聯(lián),并為所述副本制作第一標(biāo)識(shí)符;以及登記文檔提供器,當(dāng)在所述倉(cāng)庫(kù)服務(wù)器中從客戶機(jī)接收到所述第一標(biāo)識(shí)符時(shí)通過(guò)提供與接收到的標(biāo)識(shí)符所指定的存儲(chǔ)副本相關(guān)的相似存儲(chǔ)副本的第二標(biāo)識(shí)符列表來(lái)進(jìn)行響應(yīng)。
2.如權(quán)利要求1所述的倉(cāng)庫(kù)服務(wù)器,其特征在于所述文檔登記器還計(jì)算相似性值,每個(gè)相似性值指示所述存儲(chǔ)副本與所述存儲(chǔ)副本相 關(guān)的其他相似存儲(chǔ)副本的其中之一的相似度;以及所述登記文檔提供器還對(duì)所述列表中的每個(gè)存儲(chǔ)副本的第二標(biāo)識(shí)符附有其他存儲(chǔ)副 本與所述接收到的標(biāo)識(shí)符所指定的存儲(chǔ)副本的相似性的相似性值。
3.如權(quán)利要求2所述的倉(cāng)庫(kù),其特征在于所述文檔登記器還將相似性列表與所述存儲(chǔ)副本相關(guān),所述列表對(duì)應(yīng)于每個(gè)其他相似 副本指示所述其他相似副本的相似性值。
4.如權(quán)利要求1所述的倉(cāng)庫(kù)服務(wù)器,其特征在于所述文檔登記器通過(guò)計(jì)算所述存儲(chǔ)副本和所述其他存儲(chǔ)副本的指紋并將所述存儲(chǔ)副 本的指紋與所述其他存儲(chǔ)副本的指紋比較來(lái)計(jì)算所述存儲(chǔ)副本與所述其他存儲(chǔ)副本之間 的相似性。
5.如權(quán)利要求4所述的倉(cāng)庫(kù)服務(wù)器,其特征在于所述登記器使存儲(chǔ)副本的指紋與所述存儲(chǔ)副本相關(guān)。
6.如權(quán)利要求1所述的倉(cāng)庫(kù)服務(wù)器,其特征在于所述登記文檔提供器還通過(guò)提供從所述客戶端接收的所述列表中的標(biāo)識(shí)符指定的存 儲(chǔ)副本來(lái)響應(yīng)所述標(biāo)識(shí)符。
7.如權(quán)利要求6所述的倉(cāng)庫(kù)服務(wù)器,其特征在于所述第二標(biāo)識(shí)符是指定所述倉(cāng)庫(kù)服務(wù)器中的存儲(chǔ)副本的第二文檔定位符。
8.如權(quán)利要求7所述的倉(cāng)庫(kù)服務(wù)器,其特征在于所述第一標(biāo)識(shí)符是指定所述倉(cāng)庫(kù)服務(wù)器中的存儲(chǔ)副本的第二文檔定位符。
9.一種用于網(wǎng)絡(luò)中的倉(cāng)庫(kù)服務(wù)器的文檔定位符,所述文檔定位符定位存儲(chǔ)在所述倉(cāng)庫(kù) 服務(wù)器中的文檔的副本,并且所述副本是另一個(gè)文檔定位符制作副本時(shí)在所述網(wǎng)絡(luò)中可定 位的文檔的副本,所述文檔定位符包括用于所述網(wǎng)絡(luò)中的所述倉(cāng)庫(kù)服務(wù)器的標(biāo)識(shí)符;另一個(gè)文檔定位符;以及用于所述服務(wù)器中的存儲(chǔ)副本的標(biāo)識(shí)符,所述標(biāo)識(shí)符是關(guān)系表中的唯一關(guān)鍵字,并且 所述唯一關(guān)鍵字與另一個(gè)文檔定位符和存儲(chǔ)副本相關(guān)。
10.如權(quán)利要求9所述的文檔定位符,其特征在于僅在所述另一個(gè)文檔定位符指定的文檔在所述網(wǎng)絡(luò)中不可獲得的情況下,所述倉(cāng)庫(kù)服 務(wù)器通過(guò)提供所述標(biāo)識(shí)符標(biāo)識(shí)的存儲(chǔ)副本對(duì)所述倉(cāng)庫(kù)服務(wù)器中接收到的文檔定位符進(jìn)行 響應(yīng)。
11.如權(quán)利要求9所述的文檔定位符,其特征在于所述倉(cāng)庫(kù)服務(wù)器通過(guò)提供與所接收的文檔定位符中的另一個(gè)文檔定位符相關(guān)的其他 存儲(chǔ)副本的文檔定位符的列表來(lái)對(duì)接收的文檔定位符進(jìn)行響應(yīng)。
12.如權(quán)利要求9所述的文檔定位符,其特征在于所述文檔定位符是統(tǒng)一資源定位符,其中主機(jī)名指定所述倉(cāng)庫(kù)服務(wù)器,并且參數(shù)包括 其值是另一個(gè)文檔定位符的第一參數(shù)、其值是唯一關(guān)鍵字的第二參數(shù)、以及程序的第三參 數(shù),其中所述程序在所述倉(cāng)庫(kù)服務(wù)器中執(zhí)行時(shí),僅在另一個(gè)文檔定位符指定的文檔在網(wǎng)絡(luò) 中不可獲得的情況下,才提供唯一關(guān)鍵字標(biāo)識(shí)的所述存儲(chǔ)副本。
全文摘要
本申請(qǐng)公開(kāi)了用于多版本W(wǎng)eb文檔的Web服務(wù)器。一種可經(jīng)網(wǎng)絡(luò)訪問(wèn)并對(duì)第一文檔定位符標(biāo)識(shí)的文檔的存儲(chǔ)副本具有訪問(wèn)權(quán)的倉(cāng)庫(kù)服務(wù)器,包括文檔登記器,接收文檔的第一文檔定位符并通過(guò)使用第一文檔定位符經(jīng)網(wǎng)絡(luò)從另一個(gè)服務(wù)器提取文檔的副本、將副本存儲(chǔ)在倉(cāng)庫(kù)服務(wù)器可訪問(wèn)的存儲(chǔ)器中、計(jì)算倉(cāng)庫(kù)服務(wù)器中的存儲(chǔ)副本與其他存儲(chǔ)副本之間的相似性來(lái)對(duì)此響應(yīng),相似性將有關(guān)存儲(chǔ)副本的結(jié)構(gòu)和內(nèi)容信息都納入考慮,將存儲(chǔ)副本與相似的其他存儲(chǔ)副本關(guān)聯(lián),并為副本制作第一標(biāo)識(shí)符;以及登記文檔提供器,當(dāng)在倉(cāng)庫(kù)服務(wù)器中從客戶機(jī)接收到第一標(biāo)識(shí)符時(shí)通過(guò)提供與接收到的標(biāo)識(shí)符所指定的存儲(chǔ)副本相關(guān)的相似存儲(chǔ)副本的第二標(biāo)識(shí)符列表來(lái)進(jìn)行響應(yīng)。
文檔編號(hào)G06F17/30GK101937443SQ20101012509
公開(kāi)日2011年1月5日 申請(qǐng)日期2005年5月4日 優(yōu)先權(quán)日2004年5月6日
發(fā)明者Z·吳 申請(qǐng)人:甲骨文國(guó)際有限公司