[發(fā)明專利]一種基于特征匹配的打包文件更新方法有效
| 申請?zhí)枺?/td> | 201210406587.7 | 申請日: | 2012-10-23 |
| 公開(公告)號: | CN102937903A | 公開(公告)日: | 2013-02-20 |
| 發(fā)明(設計)人: | 陳飛舟;吳才忠;劉暢 | 申請(專利權)人: | 珠海金山網絡游戲科技有限公司;成都西山居互動娛樂科技有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 廣州嘉權專利商標事務所有限公司 44205 | 代理人: | 陳國榮 |
| 地址: | 519000 廣東省珠*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 特征 匹配 打包 文件 更新 方法 | ||
技術領域
本發(fā)明涉及一種打包文件更新方法,尤其涉及一種基于特征匹配的打包文件更新方法。
背景技術
現有軟件客戶端資源通常采用打包方式存儲,從而獲得傳輸方便、資源保密、以及更加快速訪問速度等優(yōu)點。在對打包文件進行更新的過程中,傳統(tǒng)更新過程將需要更新的增量數據文件打包到更新包中,并以追加和覆蓋的方式替換掉打包文件中需要更新的包內文件。然而在更新較為平凡的打包文件中,常會出現具備相同內容的文件被反復更新的現象。已經更新至客戶端打包文件中的相同內容的文件,可能多次出現在不同版本的更新包中并被反復更新,這樣會使得更新包體積變大,并增加在線更新過程中的網絡流量增和更新時間的開銷。
發(fā)明內容
為了解決現有技術中存在的上述問題,本發(fā)明的目的在于提供一種基于特征匹配的打包文件更新方法,減少打包文件更新過程中的內容傳輸,節(jié)省更新時間。
本發(fā)明所采用的技術方案是,一種基于特征匹配的打包文件更新方法,包括以下步驟:
???步驟1:在文件打包后的完整包中建立特征值表;
步驟2:為每一個打包文件計算出特征值并保存到特征值表中;
步驟3:把要寫入的更新文件打包為更新包,在更新包制作過程中,比較更新文件的特征值與完整包里特征值表中的數據;
步驟4:若特征值不存在于此表中,則認為完整包中尚未存在此文件,此時將文件的數據和索引信息寫入更新包,將更新包加入到完整包內,并將其更新后的位置信息與特征值記錄到特征值表中;
步驟5:若特征值存在于特征值表中,則表明此文件已經存在于完整包中,此時僅將特征值對應的位置信息寫入更新包的索引中,再將更新包加入到完整包內。
進一步,所述特征值包括文件內容哈希值,所述文件內容哈希值是在打包過程中按照設定的哈希算法對文件內容進行計算得出的數字摘要,文件內容哈希值為特征值的主要組成部分。
進一步,為了克服哈希值存在的哈希沖突問題,所述特征值中還包括其他描述文件的確定性信息,所述確定性信息由文件內某一小段原始數據、文件大小、文件最后修改日期中的一種或多種組成,文件內容哈希值和確定性信息組成特征值。
進一步,所述位置信息包含更新后完整包中包內文件距離打包文件頭部的偏移值和文件長度,具備相同特征值的包內文件對應相同的位置信息。
進一步,所述索引信息由文件標識和文件偏移值決定組成。所述文件標識是文件名或文件名哈希值,文件標識唯一標識打包文件內的文件;所述文件偏移值反映文件在打包文件內的位置。
本發(fā)明的有益效果是:
與現有技術相比,采用本發(fā)明的方法對打包文件進行更新時,不同更新包中相同內容的文件由于具備相同的特征值,不會多次被放入更新包中,從而減少了包文件更新過程中的網絡流量和更新的時間開銷。
具體實施方式
本發(fā)明提出了一種基于特征匹配的打包文件更新方法,該方法涉及文件打包過程以及更新過程,打包過程即將文件寫入文件包的過程,其輸出可以是一個具備完整數據的完整包,亦可以是一個僅具備增量數據的更新包;更新過程即將更新包中的文件更新至完整包的過程,更新過程中將在完整包中追加新的包內文件數據并更新包內文件索引。
本發(fā)明的打包文件更新方法操作流程如下:首先,在文件打包后的完整包中建立特征值表;然后,為每一個打包文件計算出特征值并保存到特征值表中;將更新文件打包為更新包,并比較更新文件的特征值與完整包里特征值表中的數據;若特征值不存在于此表中,則認為完整包中尚未存在此文件,此時將文件的數據和索引信息寫入更新包,將更新包內容加入到完整包內,并將其更新后的位置信息與特征值記錄到特征值表中;若特征值存在于特征值表中,則表明此文件已經存在于完整包中,此時僅將特征值對應的位置信息寫入更新包的索引中,而不必包含具體的包內文件數據,再將更新包加入到完整包內。
本方法的一個實現例子為:設a.txt與b.txt文件已經存在與完整包中,此時需要將c.txt文件增加到更新包中。由于檢測到c.txt文件與b.txt文件有相同的特征值,則此時c.txt文件的具體內容是不會被寫入更新包中的,而只將c.txt的索引信息寫入更新包,即“文件標識”=c.txt,“偏移值”=0x456,如下方表1。若將來更新包中有d.txt文件,而此文件的特征值與原有的a.txt、b.txt、c.txt的特征值都不相同,則在寫入它的索引信息的同時,還需要寫入d.txt的數據內容,和將d.txt文件的特征值記錄入特征值表。
表1
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海金山網絡游戲科技有限公司;成都西山居互動娛樂科技有限公司,未經珠海金山網絡游戲科技有限公司;成都西山居互動娛樂科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210406587.7/2.html,轉載請聲明來源鉆瓜專利網。





