亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于優(yōu)化數(shù)據(jù)集的變化的系統(tǒng)和方法

文檔序號:6456787閱讀:196來源:國知局

專利名稱::用于優(yōu)化數(shù)據(jù)集的變化的系統(tǒng)和方法
技術(shù)領(lǐng)域
:本發(fā)明涉及在計算機環(huán)境中的數(shù)據(jù)傳播,本發(fā)明尤其涉及提取數(shù)據(jù)集中的變化以用于在計算機網(wǎng)絡(luò)中分發(fā)這些變化。
背景技術(shù)
:現(xiàn)今,通過計算機網(wǎng)絡(luò)發(fā)送數(shù)據(jù)是非常普遍的。由于技術(shù)進(jìn)步,所發(fā)送的數(shù)據(jù)量迅速增長,使得與以前相比能夠以更高的速度發(fā)送和處理更多數(shù)據(jù)。此外,新的應(yīng)用也需要更多數(shù)據(jù),因為這些新的應(yīng)用變得更加復(fù)雜。計算機系統(tǒng)一其中數(shù)據(jù)傳播技術(shù)是最重要的部分之一一的例子是電子交易系統(tǒng)。證券、衍生物、商品和其它金融工具的電子交易導(dǎo)致必須分發(fā)給用戶的大量數(shù)據(jù),這些用戶需要這些數(shù)據(jù)來作出交易決定、統(tǒng)計計算和其它評估。在高性能計算機系統(tǒng)中提取和發(fā)送所有這些信息的過程對處理器的要求非常高。CPU的時間量是稀有資源,不應(yīng)該浪費在本可以避免的執(zhí)行步驟上。此外,連接到這樣的中央交易系統(tǒng)的用戶典型地希望盡可能快地?fù)碛行畔?。在這些情況下,通過例如更新硬件來提高中央系統(tǒng)的性能可能是不夠的。為了擺脫系統(tǒng)中的瓶頸或者其它潛在問題,必須使用額外的技術(shù)。因此,一種這樣的額外技術(shù)是使處理器的工作更有效。例如,當(dāng)在用戶終端上更新數(shù)據(jù)集時,存在不同的方法。一種通常使用的并且是明顯的解決方案是一直發(fā)送替換舊數(shù)據(jù)集的全新數(shù)據(jù)集。這在數(shù)據(jù)集中只有一部分?jǐn)?shù)據(jù)已經(jīng)發(fā)生變化時通常是低效的。因此更有效的方式可以是只發(fā)送已經(jīng)變化的數(shù)據(jù)集部分。更進(jìn)一步的改進(jìn)是發(fā)送delta變化。另一種已知技術(shù)是發(fā)送描述兩個數(shù)據(jù)集之間的差異的運算符。對第一數(shù)據(jù)集應(yīng)用該運算符可以將第一數(shù)據(jù)集轉(zhuǎn)變成第二數(shù)據(jù)集。通過選擇作用于數(shù)據(jù)集的良好的運算符集,優(yōu)化是可能的?,F(xiàn)今,可用于提取數(shù)據(jù)集差異的方法是不足的。因此,需要發(fā)展技術(shù)以用于以有效方式一例如通過更少的步驟一提取和選擇運算符以便于減少處理器上的負(fù)載,并且用于減少在計算機系統(tǒng)中的諸如帶寬的數(shù)據(jù)傳播。
發(fā)明內(nèi)容因此,本發(fā)明是目標(biāo)是提供用于產(chǎn)生待發(fā)送給遠(yuǎn)程終端的更新數(shù)據(jù)集的解決方案。本發(fā)明的另一目標(biāo)是提供從數(shù)據(jù)集中有效地提取數(shù)據(jù)的解決方案。本發(fā)明的另一目標(biāo)是提供一種解決方案,該解決方案基于數(shù)據(jù)集之間的差異有效地提取和/或選擇運算符。本發(fā)明的另一目標(biāo)是提供產(chǎn)生待發(fā)送給遠(yuǎn)程終端的數(shù)據(jù)結(jié)構(gòu)的解決方案。本發(fā)明的另一目標(biāo)是提供使用更少處理器時間的解決方案。根據(jù)本發(fā)明的第一方面,上述目標(biāo)和其它目標(biāo)通過一種用于產(chǎn)生待發(fā)送給遠(yuǎn)程終端的更新數(shù)據(jù)集的計算機系統(tǒng)實現(xiàn),該更新數(shù)據(jù)集包括描述包含分類數(shù)據(jù)元的第一數(shù)據(jù)集與包含分類數(shù)據(jù)元的第二數(shù)據(jù)集之間的差異的運算符,該計算機系統(tǒng)包括一存儲器,該存儲器包括第一數(shù)據(jù)集和第二數(shù)據(jù)集,—比較器,該比較器可與存儲器連接用于將第二數(shù)據(jù)集中的數(shù)據(jù)元與第一數(shù)據(jù)集中的數(shù)據(jù)元順次比較,笫一次比較的結(jié)果控制第一數(shù)據(jù)集中的哪個數(shù)據(jù)元與第二數(shù)據(jù)集中的哪個數(shù)據(jù)元將在第二次比較中進(jìn)行比較,在每次比較之后更新存儲器中的變化參數(shù),并且在檢測到第二數(shù)據(jù)集中的數(shù)據(jù)元與第一數(shù)據(jù)集中的數(shù)據(jù)元一致時初始化選擇器,—所述選擇器,該選擇器可與存儲器和比較器連接,該選擇器適于基于存儲器中存儲的變化參數(shù)來確定運算符,并且將確定的運算符存儲在存儲器中,由此產(chǎn)生待發(fā)送給遠(yuǎn)程終端的、包括描述第一數(shù)據(jù)集和第二數(shù)據(jù)集之間差異的運算符的更新數(shù)據(jù)集。該計算機系統(tǒng)所具有的優(yōu)點是,使得例如交易系統(tǒng)的計算機系統(tǒng)可以通過使用更少的CPU時間來更有效地產(chǎn)生更新數(shù)據(jù)集。例如,其原因在于該計算機系統(tǒng)使得通過從頭到尾將每個數(shù)據(jù)集只運行一遍就可以對第一數(shù)據(jù)集和第二數(shù)據(jù)集進(jìn)行比較。該計算機系統(tǒng)進(jìn)一步包括與選擇器相關(guān)聯(lián)的通信器,用于產(chǎn)生和發(fā)送包括更新數(shù)據(jù)集的更新消息。該消息可以包括諸如列表、陣列、位棋盤(bitboard)、堆棧、堆(heap)、樹或者集合等等的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包括待發(fā)送給遠(yuǎn)程終端的數(shù)據(jù)集。優(yōu)選地,通過使用FIX標(biāo)準(zhǔn)來發(fā)送消息,然而可以使用本領(lǐng)域技術(shù)人員熟知的任何其它協(xié)議來發(fā)送該消息,所述協(xié)議例如是0mnetAPI、XTP、SSL或者任何其它標(biāo)準(zhǔn)或者專有的協(xié)議。優(yōu)選地,第一數(shù)據(jù)集和第二數(shù)據(jù)集包括隨時間變化的動態(tài)數(shù)據(jù)元。例如,第一數(shù)據(jù)集可以是在時間Tl時交易系統(tǒng)中的命令薄,第二數(shù)據(jù)集可以是在時間T2時的命令薄。命令薄中的數(shù)據(jù)可能已經(jīng)在時間Tl和T2期間發(fā)生了變化,因為針對銷售金融工具進(jìn)行買入或者報價的新命令可能已經(jīng)進(jìn)入。信息傳播系統(tǒng)可以按照特定的預(yù)定時間間隔或者基于命令薄中的活動而向遠(yuǎn)程終端傳播信息。例如,如果命令薄沒有接收到任何新命令,則向遠(yuǎn)程終端發(fā)送新的更新是沒有意義的。然而,當(dāng)新命令進(jìn)入命令薄時,則必須向遠(yuǎn)程終端傳播新信息。因此,當(dāng)在這個時間點發(fā)生活動時,發(fā)送更新消息可能是必要的。可能在命令薄中發(fā)生變化的另一個例子是在狀態(tài)轉(zhuǎn)換期間,例如當(dāng)開啟或者關(guān)閉命令薄時。因此,第二數(shù)據(jù)集是第一數(shù)據(jù)集的后續(xù)版本(laterversion)。這樣,中央系統(tǒng)可以比較已經(jīng)發(fā)生了什么變化,并且因為中央系統(tǒng)知道遠(yuǎn)程終端擁有什么數(shù)據(jù)集,因此該中央系統(tǒng)可以提取運算符以存儲和發(fā)送到更新數(shù)據(jù)集中。此外,也可以將第一數(shù)據(jù)集和第二數(shù)據(jù)集之間的變化的特定部分發(fā)送給具體的遠(yuǎn)程終端,因為遠(yuǎn)程終端上的用戶可能希望得到與數(shù)據(jù)集的不同部分有關(guān)的信息。優(yōu)選地,運算符是從包括下列運算符的組中確定的添加運算符、刪除運算符、替換運算符。通過基于變化參數(shù)確定這些運算符,可以產(chǎn)生更新數(shù)據(jù)集。如后面在本文獻(xiàn)中所描述的那樣,這些運算符可以結(jié)合起來。變化參數(shù)優(yōu)選地包括與第一數(shù)據(jù)集相關(guān)的第一計數(shù)器和與第二數(shù)據(jù)集相關(guān)的第二計數(shù)器。這樣,可以以更準(zhǔn)確的方式監(jiān)控和管理選擇過程。因此,選擇器可以基于與第一數(shù)據(jù)集相關(guān)的第一計數(shù)器和與第二數(shù)據(jù)集相關(guān)的第二計數(shù)器之間的關(guān)系來確定運算符。這加速了選擇過程,因為所述關(guān)系優(yōu)選地是從一組關(guān)系中所選擇的關(guān)系,所述組包括>、<、=、>、<或者*?;谟嫈?shù)器之間的關(guān)系,可以確定至少一個運算符添加、刪除、替換。變化參數(shù)可以進(jìn)一步包括與第一數(shù)據(jù)集關(guān)聯(lián)的第一位置參數(shù)和與第二數(shù)據(jù)集關(guān)聯(lián)的第二位置參數(shù),以用于對比較器在第一數(shù)據(jù)集和第二數(shù)據(jù)集中的邏輯位置進(jìn)行追蹤。這樣,可以以更加準(zhǔn)確的方式監(jiān)控和管理對第一列表和第二列表進(jìn)行順序比較的結(jié)果。運算符可以包括delta變化。因此,如果只有一部分?jǐn)?shù)據(jù)元已經(jīng)變化,則該運算符可以描述已經(jīng)變化的這部分?jǐn)?shù)據(jù)元。然而,該運算符也可以描述應(yīng)該例如刪除或者替換或者添加整個數(shù)據(jù)元。每個數(shù)據(jù)元在正常情況下至少包括鍵(key)。然而,數(shù)據(jù)元也可以包括數(shù)據(jù)部分。一般地,數(shù)據(jù)部分可以是空的。然而在交易系統(tǒng)中,典型的鍵是命令薄中的價格。數(shù)據(jù)部分可以例如是針對那個價格的總?cè)萘俊H欢?,如果鍵包括價格和時間,則發(fā)送整個鍵不總是必要的。數(shù)據(jù)元分類可以基于價格和時間,但是只有價格可以被發(fā)送給遠(yuǎn)程終端。在本發(fā)明的第二方面中,上述目標(biāo)和其它目標(biāo)通過包括如上所述的計算機系統(tǒng)的電子交易系統(tǒng)來實現(xiàn)。因此在電子交易系統(tǒng)中,計算機系統(tǒng)可以是集成模塊。該計算機系統(tǒng)也可以是作為信息提取系統(tǒng)來單獨出售的獨立模塊。在本發(fā)明的第三方面中,上述目標(biāo)和其它目標(biāo)通過用于產(chǎn)生待發(fā)送給遠(yuǎn)程終端的更新數(shù)據(jù)集的方法實現(xiàn),該更新數(shù)據(jù)集包括描述包含分類數(shù)據(jù)元的第一數(shù)據(jù)集與包含分類數(shù)據(jù)元的第二數(shù)據(jù)集之間差異的運算符,所述方法包括下列步驟—將第一數(shù)據(jù)集中的數(shù)據(jù)元與第二數(shù)據(jù)集中的數(shù)據(jù)元順次地比較,第一次比較的結(jié)果控制第一數(shù)據(jù)集中的哪個數(shù)據(jù)元與第二數(shù)據(jù)集中的哪個數(shù)據(jù)元將在第二次比較中進(jìn)行比較,一在每次比較之后,將更新參數(shù)在存儲器中進(jìn)行更新,—在檢測到第二數(shù)據(jù)集中的數(shù)據(jù)元與第一數(shù)據(jù)集中的數(shù)據(jù)元一致時,對選擇過程進(jìn)行初始化,該選擇過程基于存儲在存儲器中的變化參數(shù)來確定運算符,—將確定的運算符存儲在存儲器中,從而產(chǎn)生待發(fā)送給遠(yuǎn)程終端的更新數(shù)據(jù)集,該更新數(shù)據(jù)集包括描述第一數(shù)據(jù)集與第二數(shù)據(jù)集之間差異的運算符。該方法所具有的優(yōu)點是,使得諸如交易系統(tǒng)的計算機系統(tǒng)可以通過使用更少的CPU時間而更有效地產(chǎn)生更新數(shù)據(jù)集,因為本發(fā)明例如使得通過從頭到尾將每個數(shù)據(jù)集只運行一遍就可以對第一數(shù)據(jù)集和第二數(shù)據(jù)集進(jìn)行比較。該方法可以進(jìn)一步包括關(guān)聯(lián)所確定的運算符來比較數(shù)據(jù)元的步驟。這樣,系統(tǒng)可以跟蹤運算符應(yīng)該被用于哪個數(shù)據(jù)元。該方法也可以包括這樣的步驟從包括下列運算符添加運算符、刪除運算符、替換運算符的組中確定至少一個運算符。通過基于變化參數(shù)來確定這些運算符可以產(chǎn)生更新數(shù)據(jù)集。如下面在本文獻(xiàn)中所描述的那樣,可以將這些運算符結(jié)合起來。如上所述,變化參數(shù)可以包括與第一數(shù)據(jù)集相關(guān)的第一計數(shù)器和與第二數(shù)據(jù)集相關(guān)的第二計數(shù)器。因此,該方法可以進(jìn)一步包括基于與第一數(shù)據(jù)集相關(guān)的第一計數(shù)器和與第二數(shù)據(jù)集相關(guān)的第二計數(shù)器之間的關(guān)系來確定運算符的步驟。優(yōu)選地,每個數(shù)據(jù)元都包括鍵和數(shù)據(jù)部分,該方法可以進(jìn)一步包括將第一數(shù)據(jù)集的數(shù)據(jù)元的鍵和數(shù)據(jù)部分中至少一個與第二數(shù)據(jù)集的數(shù)據(jù)元的鍵和數(shù)據(jù)部分中至少一個進(jìn)行比較的步驟。如早先提到的,第一數(shù)據(jù)集和第二數(shù)據(jù)集可以包括隨時間變化的動態(tài)息。在本發(fā)明的第四方面中,上述目標(biāo)和其它目標(biāo)通過根據(jù)任何一個前述方面和/或?qū)嵤├挠嬎銠C程序產(chǎn)品來實現(xiàn),該計算機程序產(chǎn)品存儲在數(shù)據(jù)載體上。本發(fā)明的這些和其它方面從后面所述的實施例中變得明顯并且參照后面的實施例進(jìn)行解釋。圖l示出計算機網(wǎng)絡(luò)的概貌,在該計算機網(wǎng)絡(luò)中可以使用本發(fā)明。圖2示出包括存儲器、第一數(shù)據(jù)集、第二數(shù)據(jù)集、變化參數(shù)、比較器、選擇器、更新數(shù)據(jù)集和接口的電子裝置。圖3示出包括數(shù)據(jù)元的數(shù)據(jù)集,以及包括鍵和數(shù)據(jù)的數(shù)據(jù)元。圖4示出用于迭代在文中所述的數(shù)據(jù)集的算法。圖5示出數(shù)據(jù)集A和數(shù)據(jù)集B。9圖6示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖7示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖8示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖9示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖IO示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖11示出由選擇方法選擇的第一運算符。圖12示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖13示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖14示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖15示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖16示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖17示出數(shù)據(jù)集A中的數(shù)據(jù)元與數(shù)據(jù)集B中的數(shù)據(jù)元的比較。圖18示出由選擇方法選擇的附加運算符。圖19示出包括由選擇方法選擇的運算符的更新數(shù)據(jù)集。圖20示出使用運算符之前的數(shù)據(jù)集A和數(shù)據(jù)集B。圖21示出更新數(shù)據(jù)集中的一行。圖22示出應(yīng)用第一運算符之后的數(shù)據(jù)集A的變化。圖23示出更新數(shù)據(jù)集中的一行。圖24示出應(yīng)用第二運算符之后的數(shù)據(jù)集A的變化。圖25示出更新數(shù)據(jù)集中的一行。圖26示出應(yīng)用第三運算符之后的數(shù)據(jù)集A的變化。圖27示出更新數(shù)據(jù)集中的一行。圖28示出應(yīng)用第四運算符之后的數(shù)據(jù)集A的變化。圖29示出將運算符應(yīng)用于數(shù)據(jù)集A之后的結(jié)果。圖30示出選擇方法B。具體實施例方式圖l示出包括遠(yuǎn)程終端l、中央計算機2以及網(wǎng)關(guān)或者路由器3的計算機網(wǎng)絡(luò)。在不同的裝置之間,存在通過具有不同粗細(xì)的線4示出的連接。所述粗細(xì)表示帶寬(數(shù)據(jù)速率)。粗線具有高的數(shù)據(jù)速率,而細(xì)線具有低的數(shù)據(jù)速率。圖1中的3個前端計算機在屏幕上有字母,這表示該前端計算機是屬于用戶A、B和C的遠(yuǎn)程終端。通過包括線4和諸如路由器等等的網(wǎng)絡(luò)裝置的網(wǎng)絡(luò)將更新數(shù)據(jù)集6從中央計算機2發(fā)送給遠(yuǎn)程終端1。更新數(shù)據(jù)集6在根據(jù)本發(fā)明的計算機系統(tǒng)5中產(chǎn)生。圖2示出根據(jù)本發(fā)明的計算機系統(tǒng)5。計算機系統(tǒng)5包括存儲器IO、比較器14、選擇器15和用于發(fā)送更新數(shù)據(jù)集7的接口16。存儲器10包括第一數(shù)據(jù)集11和第二數(shù)據(jù)集12。此外,該存儲器包括用于存儲變化參數(shù)13的區(qū)域、用于存儲更新數(shù)據(jù)集7的區(qū)域和用于存儲運算符18的區(qū)域。圖3示出數(shù)據(jù)集11和該數(shù)據(jù)集中的數(shù)據(jù)元17的放大部分。在該圖中,數(shù)據(jù)元17既包括鍵又包括數(shù)據(jù)部分。然而,在本發(fā)明的另一實施例中,數(shù)據(jù)元17可以至少包括鍵部分。在下面,將參照附圖詳細(xì)闡述本發(fā)明。將要解釋可以如何決定/選擇運算符的細(xì)節(jié)。下面是用于選擇運算符的方法的例子,所屬運算符以有效方式描述了兩個數(shù)據(jù)集之間的差異。數(shù)據(jù)集由一個或者幾個數(shù)據(jù)元組成,其中每個數(shù)據(jù)元都具有鍵和可能的數(shù)據(jù)部分。鍵與分類算法一起為每個數(shù)據(jù)元給出在數(shù)據(jù)集中的邏輯位置。該方法基于(1)對有效的運算符集進(jìn)行設(shè)計。(2)對有效算法進(jìn)行設(shè)計以評估兩個數(shù)據(jù)集的差異,并且使用運算符集來描述這些差異。為了達(dá)到該目的,該算法對兩個數(shù)據(jù)集使用一次遍歷(one—passtraversing)。該方法使用下述運算符集來描述兩個數(shù)據(jù)集之間的變化:<table>tableseeoriginaldocumentpage11</column></row><table>方法介紹在兩個數(shù)據(jù)集中(鍵和數(shù)據(jù)部分都)一致的數(shù)據(jù)元是未變化的。該算法將未變化的數(shù)據(jù)元考慮為屏障(barrier)。該方法使用屏障來確認(rèn)什么時候可以執(zhí)行對運算符的優(yōu)化。該方法基于這樣的觀察,即可以對在檢測到屏障之前使用的運算符進(jìn)行優(yōu)化。假設(shè)數(shù)據(jù)集A和B,見圖5。從數(shù)據(jù)集A中,可以應(yīng)用若干運算符來實現(xiàn)數(shù)據(jù)集B。下面描述的算法和方法提取這些將數(shù)據(jù)集A轉(zhuǎn)化成數(shù)據(jù)集B的運算符。在遍歷數(shù)據(jù)集期間,優(yōu)選使用下面的計數(shù)器并Del和弁Add。這些計數(shù)器在初始時被設(shè)置成O或者任何其它滿足相同目標(biāo)的對應(yīng)值。然后根據(jù)鍵的分類命令,優(yōu)選地從開始遍歷數(shù)據(jù)集A和數(shù)據(jù)集B。數(shù)據(jù)集A中的實際邏輯位置在下面稱為APos,該APos包括針對數(shù)據(jù)集A的位置參數(shù)。數(shù)據(jù)集B中的實際邏輯位置在下面稱為BPos,該BPos包括針對數(shù)據(jù)集B的位置參數(shù)。APos和BPos在初始時被設(shè)置為數(shù)據(jù)集A和B中的笫一邏輯位置。初始化設(shè)置弁Add-0和并De卜0。將APos和BPos設(shè)置成數(shù)據(jù)集A和B中的第一邏輯位置。設(shè)置APosStart=APos和BPosStart=BPos。算法將數(shù)據(jù)集A和B迭代,并計算#Add和并Del:1.將在邏輯位置APos處的A集數(shù)據(jù)元與在邏輯位置BPos處的B集數(shù)據(jù)元進(jìn)行比較。a.如果沒有A數(shù)據(jù)元和B數(shù)據(jù)元,使用下面的方法B選擇運算符,然后繼續(xù)進(jìn)行步驟2(完成(Done))。b.如果鍵是一致的,但是數(shù)據(jù)部分不同,則弁Add加1,#Del加1,APos加l,BPos加l。繼續(xù)進(jìn)行步驟1并且比較下一數(shù)據(jù)元。c.如果A數(shù)據(jù)元的鍵(根據(jù)分類命令)比B數(shù)據(jù)元的鍵更差,或者沒有A數(shù)據(jù)元,則#Add加1并且BPos加1。繼續(xù)進(jìn)行步驟l并且比較下一數(shù)據(jù)元。d.如果A數(shù)據(jù)元的鍵(根據(jù)分類命令)比B數(shù)據(jù)元的鍵更好,或者沒有B數(shù)據(jù)元,則#Del加1并且APos加1。繼續(xù)進(jìn)行步驟1并且比較下一數(shù)據(jù)元。e.如果鍵和數(shù)據(jù)部分都一致,則發(fā)現(xiàn)了屏障。如果(弁Add^0或者#Del*0),則使用下面的方法B來選擇運算符。繼續(xù)設(shè)置井Add-0和并Del-0。將APos加1并且將BPos加1。設(shè)置APosStart=APos和BPosStart=BPos。繼續(xù)進(jìn)行步驟1并且比較下一數(shù)據(jù)元。2.完成(Done)方法B。選擇運算符將弁Del與#Add比較。a.如果并Del〉#Add,則選擇下列運算符在邏輯位置APosStart處的刪除(N=#Del)運算符。接著是來自B集元素的#Add個添加運算器,從邏輯位置APosStart開始。b.如果井Del-井Add,則選擇下列運算符來自B集元素的#Add個替換運算器,從邏輯位置APosStart開始。c.如果并Del<#Add,則選擇下列運算符來自B集元素的#Del個替換運算器,從邏輯位置APosStart開始。接著是來自B集元素的(#Add-#Del)個添加運算器,從APosStart+井Del開始。例子下面是參照附圖描述不同方法步驟的例子。根據(jù)在圖5中示出的表格,想象兩個數(shù)據(jù)集A和B。優(yōu)選基于鍵來對數(shù)據(jù)元進(jìn)行分類,導(dǎo)致在邏輯位置1處的最高值。數(shù)據(jù)集A表示舊的數(shù)據(jù)集,而數(shù)據(jù)集B表示新的數(shù)據(jù)集。任務(wù)是將數(shù)據(jù)集A轉(zhuǎn)變成數(shù)據(jù)集B。該方法的執(zhí)4亍設(shè)置井Add—和弁De卜0。將APos設(shè)置在數(shù)據(jù)集A中的第一邏輯位置,將BPos設(shè)置在數(shù)據(jù)集B中的第一邏輯位置,給定Apos=l和Bpos=l。設(shè)置APosStart-APos和BPosStart=BPos,給定AposStart=l和BPosStart=l。該方法和系統(tǒng)開始初始化計數(shù)器,該計數(shù)器優(yōu)選在對數(shù)據(jù)集進(jìn)行迭代期間使用。然后開始迭代步驟,其中將變化參數(shù)并Add和弁Del迭代并增加。步驟1.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。因為Apos和Bpos都被設(shè)置為l,這意味著比較在列表中的第一數(shù)據(jù)元。然而,如果以另一方式對數(shù)據(jù)集中的數(shù)據(jù)元進(jìn)行分類,則該方法可能首先開始比較其它數(shù)據(jù)元。該比較描繪在圖6中。在這種情況下,99比101更差(見算法步驟c)(在數(shù)據(jù)集A中的數(shù)據(jù)元(Apos=l)比在數(shù)據(jù)集B中的數(shù)據(jù)元(Bpos=l)更差),因此井Add加l,假定井Add-l。BPos加l,假定BPos=2。繼續(xù)算法中的步驟1并比較下一數(shù)據(jù)元。步驟2.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。現(xiàn)在Bpos計數(shù)器已經(jīng)加1,因此數(shù)據(jù)集A中在(Apos=l)處的數(shù)據(jù)元與數(shù)據(jù)集B中在(Bpos=2)處的數(shù)據(jù)元進(jìn)行比較。該比較在圖7中示出。99比100更差(見算法步驟c),因此弁Add加l,假定并Add-2。BPos加l,假定BPos-3。繼續(xù)算法中的步驟1并比較下一數(shù)據(jù)元。步驟3.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。與上述步驟相似。該比較在圖8中示出。99好于97(見算法步驟d),因此弁Del加1,假定并Del-l。APos加l,假定Apos-2。繼續(xù)算法中的步驟1并比較下一數(shù)據(jù)元。步驟4.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。該比較在圖9中示出。98好于97(見算法步驟d),因此弁Del加l,假定弁Del-2。APos加1,假定Apos=3。繼續(xù)算法中的步驟1并比較下一數(shù)據(jù)元。步驟5.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。該比較在圖10中示出。鍵和數(shù)據(jù)部分都相同(見算法步驟e),因此已經(jīng)到達(dá)了屏障。使用方法B來初始化選擇器并選擇運算符。步驟6.將并Del與弁Add進(jìn)行比較。才艮據(jù)方法B,步驟b可以在該情況下應(yīng)用(b)#Del(2)=#Add(2)并且因此選擇下列運算符14替換2(弁Add)運算符,從B集選擇數(shù)據(jù),從邏輯位置AposStart-l開始。所選擇的運算符在圖11中示出。步驟7.對數(shù)據(jù)集A和數(shù)據(jù)集B中的數(shù)據(jù)元的迭代和比較繼續(xù)進(jìn)行。設(shè)置并Add—和弁Del-0。為了達(dá)到屏障將計數(shù)器增加,APos加1并且BPos加l,假定Apos=4并且Bpos=4。設(shè)置APosStart-APos并且BPosStart=BPos,假定APosStart-4并且BPosStart=4。繼續(xù)算法中的步驟1并且比較下一數(shù)據(jù)元。步驟8.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。該比較在圖12中示出。96好于93(見算法步驟d),因此并Del加l,假定并De卜l。APos加1,假定APos=5。繼續(xù)算法中的步驟1并且比較下一數(shù)據(jù)元。步驟9.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。該比較在圖13中示出。95好于93(見算法步驟d),因此并Del加l,假定弁De卜2。APos加1,假定APos=6。繼續(xù)算法中的步驟1并且比較下一數(shù)據(jù)元。步驟10.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。該比較在圖14中示出。94好于93(見算法步驟d),因此弁Del加1,假定弁De卜3。APos加1,假定APos=7。繼續(xù)算法中的步驟1并且比較下一數(shù)據(jù)元。步驟11.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。該比較在圖15中示出。鍵一致,但是數(shù)據(jù)部分不同(10不等于15)(見算法步驟b)。#Add加1,假定弁Add-l。#Del加1,假定弁De卜4。APos加1,假定APos=8。BPos加1,假定BPos=5。繼續(xù)算法中的步驟1并且比較下一數(shù)據(jù)元。步驟12.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。該比較在圖16中示出。沒有B數(shù)據(jù)元(為空)(見算法步驟d)。弁Del加l,假定井Del-5。APos加l,假定APos=9。繼續(xù)算法中的步驟1并且比較下一數(shù)據(jù)元。步驟13.將A集的數(shù)據(jù)元與B集的數(shù)據(jù)元進(jìn)行比較。該比較在圖17中示出。數(shù)據(jù)集A中在APos(9)處的數(shù)據(jù)元和數(shù)據(jù)集B中在BPos(5)處的數(shù)據(jù)元為空,因此應(yīng)用該算法中的步驟a。該算法中的步驟a初始化選擇器,因此應(yīng)用如在步驟14中所述的方法B。在該選擇之后繼續(xù)進(jìn)行步驟2(完成)。步驟14.通過使用選擇方法B,將計數(shù)器并Del與計數(shù)器弁Add進(jìn)行比較。根據(jù)選擇方法B中的選擇步驟(a),#Del(5)>#Add(1),因此優(yōu)選如下選擇運算符在邏輯位置APosStart(4)的刪除5(#Del)運算符。接著是來自B集數(shù)據(jù)元的添加1(#Add)運算符,從邏輯位置APosStart(4)開始。所選擇的運算符在圖18中示出。步驟15.該算法中的最后步驟2(完成)如上所述在步驟14中實現(xiàn)。在完成該算法的迭代和方法B之后,描述從數(shù)據(jù)集A到數(shù)據(jù)集B的變化的運算符的全部數(shù)量被存儲在存儲器中,優(yōu)選與對應(yīng)的邏輯位置、鍵和數(shù)據(jù)部分一起存儲。產(chǎn)生包括運算符、邏輯位置、鍵和數(shù)據(jù)部分的更新數(shù)據(jù)集,如在圖19中示出的那樣。在另一實施例中,可以通過鍵來表示邏輯位置。在這種情況下,接收更新數(shù)據(jù)集的終端優(yōu)選包括邏輯位置如何相互關(guān)聯(lián)以便能夠?qū)?shù)據(jù)元分類的信息。因此,邏輯位置不必是l、2、3…等等。也可以由A、B、C...等等來表示,只要位置具有相互關(guān)聯(lián)以利于分類就可以。利用對數(shù)據(jù)集A和對包括如在圖19中示出的運算符的更新數(shù)據(jù)集的認(rèn)識,可以通過從開始至結(jié)束順次地每次使用一個運算符來生成數(shù)據(jù)集B,利用附圖20—29在下面示出如何這樣做的步驟方法說明。圖20示出在更新數(shù)據(jù)集被應(yīng)用于數(shù)據(jù)集A之前的數(shù)據(jù)集A和數(shù)據(jù)集B的情況。因此,通過使用圖19中的更新數(shù)據(jù)集,下面的步驟從數(shù)據(jù)集A生成數(shù)據(jù)集B。通過將在圖21中示出的圖19中的更新數(shù)據(jù)集的第一行應(yīng)用于數(shù)據(jù)集A,獲得了如在圖22中示出的經(jīng)過修改的數(shù)據(jù)集A。通過將在圖23中示出的圖19中的更新數(shù)據(jù)集的第二行應(yīng)用于數(shù)據(jù)集A,獲得了如在圖24中示出的經(jīng)過修改的數(shù)據(jù)集A。通過將在圖25中示出的圖19中的更新數(shù)據(jù)集的笫三行應(yīng)用于數(shù)據(jù)集A,獲得了如在圖26中示出的經(jīng)過修改的數(shù)據(jù)集A。通過將在圖27中示出的圖19中的更新數(shù)據(jù)集的第四行應(yīng)用于數(shù)據(jù)集A,獲得了如在圖28中示出的經(jīng)過修改的數(shù)據(jù)集A。如在圖29中示出的,運算符現(xiàn)在已經(jīng)將數(shù)據(jù)集A轉(zhuǎn)換成數(shù)據(jù)集B。在上述說明中,術(shù)語"包括"不排除其它數(shù)據(jù)元或者步驟,并且"一個"不排除多個。此外,術(shù)語"包含"不排除其它數(shù)據(jù)元或者步驟。1權(quán)利要求1.一種用于產(chǎn)生待發(fā)送給遠(yuǎn)程終端的更新數(shù)據(jù)集的計算機系統(tǒng),該更新數(shù)據(jù)集包括描述包含分類數(shù)據(jù)元的第一數(shù)據(jù)集與包含分類數(shù)據(jù)元的第二數(shù)據(jù)集之間的差異的運算符,該計算機系統(tǒng)包括-存儲器,該存儲器包括第一數(shù)據(jù)集和第二數(shù)據(jù)集,-比較器,該比較器能夠與存儲器連接用于將第二數(shù)據(jù)集中的數(shù)據(jù)元與第一數(shù)據(jù)集中的數(shù)據(jù)元順次比較,第一次比較的結(jié)果控制第一數(shù)據(jù)集中的哪個數(shù)據(jù)元與第二數(shù)據(jù)集中的哪個數(shù)據(jù)元將在第二次比較中進(jìn)行比較,在每次比較之后更新存儲器中的變化參數(shù),并且在檢測到第二數(shù)據(jù)集中的數(shù)據(jù)元與第一數(shù)據(jù)集中的數(shù)據(jù)元一致時初始化選擇器,-所述選擇器,該選擇器能夠與存儲器和比較器連接,該選擇器適于基于存儲器中存儲的變化參數(shù)來確定運算符,并且將所確定的運算符存儲在存儲器中,由此產(chǎn)生待發(fā)送給遠(yuǎn)程終端的、包括描述第一數(shù)據(jù)集和第二數(shù)據(jù)集之間差異的運算符的更新數(shù)據(jù)集。2.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),進(jìn)一步包括與選擇器相關(guān)聯(lián)的通信器,用于產(chǎn)生和發(fā)送包括所述更新數(shù)據(jù)集的更新消息。3.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中第一數(shù)據(jù)集和第二數(shù)據(jù)集包括隨時間變化的動態(tài)數(shù)據(jù)元。4.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中笫二數(shù)據(jù)集是第一數(shù)據(jù)集的后續(xù)版本。5.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中運算符從包括下列運算符的組中確定—添加運算符,一刪除運算符,—替換運算符。6.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中所述變化參數(shù)包括與第一數(shù)據(jù)集相關(guān)的第一計數(shù)器和與第二數(shù)據(jù)集相關(guān)的笫二計數(shù)器。7.根據(jù)權(quán)利要求6所述的計算機系統(tǒng),其中所述選擇器基于與第一數(shù)據(jù)集相關(guān)的笫一計數(shù)器和與第二數(shù)據(jù)集相關(guān)的第二計數(shù)器之間的關(guān)系選擇運算符。8.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中所述變化參數(shù)進(jìn)一步包括與第一數(shù)據(jù)集關(guān)聯(lián)的第一位置參數(shù)和與第二數(shù)據(jù)集關(guān)聯(lián)的第二位置參數(shù),以用于對比較器在第一數(shù)據(jù)集和第二數(shù)據(jù)集中的位置進(jìn)行追蹤。9.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中所述運算符包括delta變化。10.根據(jù)權(quán)利要求1所述的計算機系統(tǒng),其中每個數(shù)據(jù)元包括鍵和數(shù)據(jù)部分。11.一種包括根據(jù)權(quán)利要求1所述的計算機系統(tǒng)的電子交易系統(tǒng)。12.—種用于產(chǎn)生待發(fā)送給遠(yuǎn)程終端的更新數(shù)據(jù)集的方法,所述更新數(shù)據(jù)集包括描述包含分類數(shù)據(jù)元的第一數(shù)據(jù)集與包含分類數(shù)據(jù)元的第二數(shù)據(jù)集之間差異的運算符,所述方法包括下列步驟—將第一數(shù)據(jù)集中的數(shù)據(jù)元與第二數(shù)據(jù)集中的數(shù)據(jù)元順次地比較,第一次比較的結(jié)果控制第一數(shù)據(jù)集中的哪個數(shù)據(jù)元與第二數(shù)據(jù)集中的哪個數(shù)據(jù)元將在第二比較中進(jìn)行比較,—在每次比較之后,將更新參數(shù)在存儲器中進(jìn)行更新,—在檢測到第二數(shù)據(jù)集中的數(shù)據(jù)元與第一數(shù)據(jù)集中的數(shù)據(jù)元一致的情況下,對選擇過程進(jìn)行初始化,該選擇過程基于存儲器中存儲的變化參數(shù)來確定運算符,—將所確定的運算符存儲在存儲器中,從而產(chǎn)生待發(fā)送給遠(yuǎn)程終端的更新數(shù)據(jù)集,該更新數(shù)據(jù)集包括描述第一數(shù)據(jù)集與笫二數(shù)據(jù)集之間差異的運算符。13.根據(jù)權(quán)利要求12所述的方法,進(jìn)一步包括步驟將所確定的運算符與所比較的數(shù)據(jù)元相關(guān)聯(lián)。14.根據(jù)權(quán)利要求12所述的方法,進(jìn)一步包括步驟從包括下列運算符的組中確定至少一個運算符一添加運算符,一刪除運算符,一替換運算符。15.根據(jù)權(quán)利要求12所述的方法,其中所述變化^t包括與第一數(shù)據(jù)集相關(guān)的第一計數(shù)器和與第二數(shù)據(jù)集相關(guān)的第二計數(shù)器,該方法進(jìn)一步包括基于與第一數(shù)據(jù)集相關(guān)的第一計數(shù)器和與第二數(shù)據(jù)集相關(guān)的第二計數(shù)器之間的關(guān)系來確定運算符的步驟。16.根據(jù)權(quán)利要求12所述的方法,其中每個數(shù)據(jù)元包括鍵和數(shù)據(jù)部分,該方法進(jìn)一步包括將第一數(shù)據(jù)集的數(shù)據(jù)元的鍵和數(shù)據(jù)部分中至少一個與第二數(shù)據(jù)集的數(shù)據(jù)元的鍵和數(shù)據(jù)部分中至少一個進(jìn)行比較的步驟。17.根據(jù)權(quán)利要求12所述的方法,其中第一數(shù)據(jù)集和第二數(shù)據(jù)集包括隨時間變化的動態(tài)信息。18.—種根據(jù)權(quán)利要求12的計算機程序產(chǎn)品,該計算機程序產(chǎn)品在數(shù)據(jù)載體上存儲。全文摘要一種用于產(chǎn)生待發(fā)送給遠(yuǎn)程終端的更新數(shù)據(jù)集的系統(tǒng)和方法。該更新數(shù)據(jù)集包括描述在兩個數(shù)據(jù)集之間差異的運算符,從而遠(yuǎn)程終端能夠?qū)⑴f的數(shù)據(jù)集轉(zhuǎn)換為更新的數(shù)據(jù)集。該系統(tǒng)包括用于比較數(shù)據(jù)集中數(shù)據(jù)元的比較器,和用于基于存儲器中保存的變化參數(shù)來選擇運算符的選擇器。文檔編號G06F17/30GK101611402SQ200780046878公開日2009年12月23日申請日期2007年12月14日優(yōu)先權(quán)日2006年12月20日發(fā)明者L·詹森,S·蘭茨申請人:歐睦技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1