專利名稱::一種程序升級(jí)下載方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
,具體涉及一種程序升級(jí)下載方法和裝置。
背景技術(shù):
:對(duì)于程序升級(jí)來說,比如游戲程序等應(yīng)用程序,一般存在兩種方式一是整包升級(jí),就是將一個(gè)程序版本的所有文件組合安裝包,由終端升級(jí)程序下載之后執(zhí)行對(duì)原有版本進(jìn)行安裝或升級(jí)。二是差異升級(jí),方式是將數(shù)據(jù)文件按照某種方式存儲(chǔ),并形成一個(gè)數(shù)據(jù)文件列表,將這些數(shù)據(jù)文件的部分信息寫入,終端的升級(jí)程序先下載數(shù)據(jù)文件列表并與本地文件比對(duì),形成差異列表,之后下載相應(yīng)的數(shù)據(jù)文件進(jìn)行升級(jí)。但是在實(shí)際中,現(xiàn)有技術(shù)可對(duì)產(chǎn)品隔一段時(shí)間做一次新版本,以使新用戶無需從原始版本開始安裝,然后逐個(gè)升級(jí)至最新版本。比如,對(duì)于一個(gè)初始版本安裝包A,其后續(xù)數(shù)據(jù)文件包括數(shù)據(jù)文件Al,數(shù)據(jù)文件A2,為了保證客戶端能夠進(jìn)行差異升級(jí)需要一個(gè)單獨(dú)的列表文件LI將對(duì)A,A1,A2的相關(guān)信息進(jìn)行順序存儲(chǔ)。而為了使后續(xù)新的用戶可以直接安裝當(dāng)前最新的產(chǎn)品,則可將A+A1+A2做成第二版的安裝包B,而在此之后出現(xiàn)的數(shù)據(jù)文件針對(duì)第二版的數(shù)據(jù)文件BI,B2,那么為了保證安裝初始版本的客戶端和第二版本的客戶端均可正常升級(jí),那么需要對(duì)初始版本的數(shù)據(jù)文件重新更改列表文件,并針對(duì)第二版本的數(shù)據(jù)文件更改列表文件;那么以此類推,如果為了使客戶端不用從初始版本開始安裝產(chǎn)品,并逐個(gè)升級(jí)至最新狀態(tài),隨著升級(jí)的數(shù)據(jù)的增加,其版本可能越來越多,存在于服務(wù)器中的文件相應(yīng)增加量更多。對(duì)于整包升級(jí),文件的一致性比較好,不用考慮版本問題,下載邏輯比較簡(jiǎn)單,但對(duì)于用戶來說,下載量比較大,每次升級(jí)都會(huì)有較多的冗余數(shù)據(jù)。對(duì)于差異升級(jí),只下載差異數(shù)據(jù),缺點(diǎn)是文件量很大,但是對(duì)于前述情況,如果針對(duì)同一產(chǎn)品,其版本很多的時(shí),首先,由于各版本的文件之間需要保持一致,那么隨著版本的大量增加,各種版本相應(yīng)的文件數(shù)量增加,導(dǎo)致維持各種版本文件的一致性的邏輯也越來越復(fù)雜。其次,由于服務(wù)器中存在各種版本的文件,導(dǎo)致目錄中文件過多,而對(duì)于某個(gè)客戶端的升級(jí)請(qǐng)求,服務(wù)器查詢其存儲(chǔ)的相應(yīng)于所述升級(jí)請(qǐng)求的文件時(shí),需要遍歷的文件也非常龐大,影響服務(wù)器性能。再次,由于相應(yīng)文件個(gè)數(shù)相對(duì)很多,對(duì)于存儲(chǔ)和管理不方便,并且占用存儲(chǔ)空間也大。
發(fā)明內(nèi)容鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種程序升級(jí)下載裝置、系統(tǒng)和相應(yīng)的一種程序升級(jí)下載方法。依據(jù)本發(fā)明的一個(gè)方面,提供了一種程序升級(jí)下載的方法,包括生成一個(gè)可執(zhí)行文件,所述可執(zhí)行文件用于將用于原始安裝的升級(jí)數(shù)據(jù)、以及后續(xù)新獲得的用于升級(jí)的升級(jí)數(shù)據(jù)存入所述可執(zhí)行文件數(shù)據(jù)區(qū),并在所述升級(jí)數(shù)據(jù)區(qū)的指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)列表文件數(shù)據(jù);所述列表文件數(shù)據(jù)記錄的包括安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)的文件特征信息,和安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;基于所述可執(zhí)行文件的程序升級(jí)下載過程包括接收客戶端的程序升級(jí)下載請(qǐng)求;根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù);如果存在,則根據(jù)列表文件數(shù)據(jù)記錄的所述升級(jí)數(shù)據(jù)在在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從所述可執(zhí)行文件數(shù)據(jù)區(qū)中提取升級(jí)數(shù)據(jù)并將所升級(jí)數(shù)據(jù)提供給客戶端下載??蛇x的,所述根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的數(shù)據(jù)包括從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù);通知客戶端將其可執(zhí)行文件中的`第二列表文件數(shù)據(jù)上傳;將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段??蛇x的,所述根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù)包括從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù)提供給客戶端下載;接收客戶端發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求;所述升級(jí)數(shù)據(jù)下載請(qǐng)求包括通過客戶端提取本地的第二列表文件數(shù)據(jù),并將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較后,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段??蛇x的,所述將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段包括將第一列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息,并與第二列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果未出現(xiàn)新的文件特征信息,則可判斷客戶端下載已經(jīng)結(jié)束;如果出現(xiàn)新的文件特征信息,則從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段。可選的,所述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)??蛇x的,所述將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段包括按順序逐個(gè)將第一列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息與本第二列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果出現(xiàn)新的文件特征信息,則停止比較,并從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段??蛇x的,所述根據(jù)所述客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從可執(zhí)行文件的數(shù)據(jù)區(qū)中提取數(shù)據(jù)并將所述升級(jí)數(shù)據(jù)提供給客戶端下載包括·從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段開始提取升級(jí)數(shù)據(jù)的字節(jié)流發(fā)送給客戶端??蛇x的,所述列表文件數(shù)據(jù)中各升級(jí)數(shù)據(jù)的文件特征信息中還包括升級(jí)數(shù)據(jù)段的校驗(yàn)信息;進(jìn)一步的,當(dāng)所述客戶端下載完所述升級(jí)數(shù)據(jù)后,計(jì)算所述升級(jí)數(shù)據(jù)的校驗(yàn)信息,并將所述校驗(yàn)信息與列表文件數(shù)據(jù)中該升級(jí)數(shù)據(jù)的校驗(yàn)信息進(jìn)行比較;如果校驗(yàn)通過,則存儲(chǔ)所述升級(jí)數(shù)據(jù)段;如果校驗(yàn)失敗,則通知客戶端所述升級(jí)數(shù)據(jù)錯(cuò)誤。依據(jù)本發(fā)明的另一個(gè)方面,提供了一種程序升級(jí)下載的裝置,包括可執(zhí)行文件生成模塊,適于生成一個(gè)可執(zhí)行文件,所述可執(zhí)行文件用于將用于原始安裝的升級(jí)數(shù)據(jù)、以及后續(xù)新獲得的用于升級(jí)的升級(jí)數(shù)據(jù)存入所述可執(zhí)行文件數(shù)據(jù)區(qū),并在所述升級(jí)數(shù)據(jù)區(qū)的指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)列表文件數(shù)據(jù);所述列表文件數(shù)據(jù)記錄的包括安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)的文件特征信息,和安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;升級(jí)請(qǐng)求接收模塊,適于接收客戶端的程序升級(jí)下載請(qǐng)求;判斷模塊,適于根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù);升級(jí)數(shù)據(jù)提供模塊,適于如果存在,則根據(jù)列表文件數(shù)據(jù)記錄的所述升級(jí)數(shù)據(jù)在在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從所述可執(zhí)行文件數(shù)據(jù)區(qū)中提取升級(jí)數(shù)據(jù)并將所升級(jí)數(shù)據(jù)提供給客戶端下載??蛇x的,所述判斷模塊包括第一列表文件提取模塊一,適于從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù);第二列表文件獲取模塊一,適于通知客戶端將其可執(zhí)行文件中的第二列表文件數(shù)據(jù)上傳;第一判斷模塊,適于將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段??蛇x的,所述判斷模塊包括第一列表文件提取模塊二,適于從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù)提供給客戶端下載;升級(jí)數(shù)據(jù)下載請(qǐng)求接收模塊,適于接收客戶端發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求;所述升級(jí)數(shù)據(jù)下載請(qǐng)求包括通過客戶端提取本地的第二列表文件數(shù)據(jù),并將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較后,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段??蛇x的,所述判斷模塊包括第二判斷模塊,適于將第一列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息,并與第二列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果未出現(xiàn)新的文件特征信息,則可判斷客戶端下載已經(jīng)結(jié)束;如果出現(xiàn)新的文件特征信息,則從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段。可選的,所述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)??蛇x的,所述判斷模塊包括第二判斷模塊,適于按順序逐個(gè)將第一列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息與本第二列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果出現(xiàn)新的文件特征信息,則停止比較,并從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段??蛇x的,所述升級(jí)數(shù)據(jù)提供模塊包括第一提取模塊,適于從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段開始提取升級(jí)數(shù)據(jù)的字節(jié)流發(fā)送給客戶端。可選的,所述列表文件中各升級(jí)數(shù)據(jù)的文件特征信息中還包括升級(jí)數(shù)據(jù)段的校驗(yàn)信息;進(jìn)一步的,在所述客戶端還包括校驗(yàn)?zāi)K,適于所述客戶端下載完所述升級(jí)數(shù)據(jù)后,計(jì)算所述升級(jí)數(shù)據(jù)的校驗(yàn)信息,并將所述校驗(yàn)信息與列表文件數(shù)據(jù)中該升級(jí)數(shù)據(jù)的校驗(yàn)信息進(jìn)行比較;如果校驗(yàn)通過,則存儲(chǔ)所述升級(jí)數(shù)據(jù)段;如果校驗(yàn)失敗,則通知客戶端所述升級(jí)數(shù)據(jù)錯(cuò)誤。根據(jù)本發(fā)明的一種程序升級(jí)下載的方法可以在服務(wù)器將所有各種適于升級(jí)的數(shù)據(jù),與初始安裝程序設(shè)置于同一可執(zhí)行文件中,然后在該可執(zhí)行文件中指定一個(gè)固定位置存放列表文件數(shù)據(jù),所述列表文件數(shù)據(jù)各種版本的適于升級(jí)的數(shù)據(jù)段的文件特征信息,該文件特征信息包括各適于升級(jí)的數(shù)據(jù)段存儲(chǔ)于該可執(zhí)行文件中的位置;那么基于此可執(zhí)行文件,客戶端對(duì)原產(chǎn)品進(jìn)行升級(jí)時(shí),則首先從服務(wù)器獲取該可執(zhí)行文件指定位置的列表文件數(shù)據(jù),對(duì)其進(jìn)行解析并與本地列表文件數(shù)據(jù)進(jìn)行比較,判斷是否存在需要下載的數(shù)據(jù)段,如果存在則從服務(wù)器中所述可執(zhí)行文件的該數(shù)據(jù)段所在位置下載該數(shù)據(jù),即可進(jìn)行升級(jí)。本發(fā)明由此解決了現(xiàn)有技術(shù)中首先由于各版本的文件之間需要保持一致,那么隨著版本的大量增加,各種版本相應(yīng)的文件數(shù)量增加,導(dǎo)致維持各種版本文件的一致性的邏輯也越來越復(fù)雜;其次,由于服務(wù)器中存在各種版本的文件,導(dǎo)致目錄中文件過多,而對(duì)于某個(gè)客戶端的升級(jí)請(qǐng)求,服務(wù)器查詢其存儲(chǔ)的相應(yīng)于所述升級(jí)請(qǐng)求的文件時(shí),需要遍歷的文件也非常龐大,影響服務(wù)器性能。再次,由于相應(yīng)文件個(gè)數(shù)相對(duì)很多,對(duì)于存儲(chǔ)和管理不方便,并且占用存儲(chǔ)空間也大的問題;本發(fā)明取得了如下的有益效果首先,升級(jí)數(shù)據(jù)和安裝程序文件只有一份可執(zhí)行文件,不用為最新用戶做新版本安裝程序,所有安裝程序版本只有一份,那么充分保證了文件版本一致性;其次,并且大大減少文件了的數(shù)量,保證服務(wù)器查找文件的效率;再次,文件量很小,可以有針對(duì)性的對(duì)文件進(jìn)行緩存,提高服務(wù)器的下載效率;最后還能大大節(jié)省磁盤存儲(chǔ)空間的有益效果。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅適于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種程序升級(jí)下載的方法實(shí)施例一的流程示意圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種程序升級(jí)下載方法實(shí)施例二的流程示意圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的可執(zhí)行文件的磁盤文件結(jié)構(gòu)示意圖;圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種程序升級(jí)下載裝置的結(jié)構(gòu)示意圖;以及圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種程序升級(jí)下載系統(tǒng)的結(jié)構(gòu)示意圖。具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。參照?qǐng)D1其示出了本發(fā)明一種程序升級(jí)下載的方法實(shí)施例一的流程示意圖,具體可以包括步驟S100,生成一個(gè)可執(zhí)行文件,所述可執(zhí)行文件用于將用于原始安裝的升級(jí)數(shù)據(jù)、以及后續(xù)新獲得的用于升級(jí)的升級(jí)數(shù)據(jù)存入所述可執(zhí)行文件數(shù)據(jù)區(qū),并在所述升級(jí)數(shù)據(jù)區(qū)的指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)列表文件數(shù)據(jù);所述列表文件數(shù)據(jù)記錄的包括安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)的文件特征信息,和安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;在本發(fā)明實(shí)施例中,針對(duì)安裝程序會(huì)設(shè)置一個(gè)可執(zhí)行文件,其中可執(zhí)行文件如windows系統(tǒng)中的.exe,.dll等結(jié)構(gòu)的文件。其中,如圖3,其示出了可執(zhí)行文件(即PE文件,PE文件被稱為可移植的執(zhí)行體是PortableExecute的全稱,常見的EXE、DLL、0CX、SYS、COM都是PE文件)的磁盤文件結(jié)構(gòu),可執(zhí)行文件包括DOS文件頭、PE頭部、Sections表、代碼段、重定位數(shù)據(jù)段和數(shù)據(jù)區(qū)(即各個(gè)數(shù)據(jù)段)。在一個(gè)PE文件的開始處,我們會(huì)看到一個(gè)DOS文件頭,它使任何PE文件都是一個(gè)有效的MS-DOS可執(zhí)行文件。之后是文件頭(按COFF格式),用來說明該二進(jìn)制文件將運(yùn)行在何種機(jī)器之上、分幾個(gè)區(qū)段、鏈接的時(shí)間、是可執(zhí)行文件還是DLL、等等,后面包括Section表,即“數(shù)據(jù)目錄”數(shù)組;這些目錄包含許多指向各“段”數(shù)據(jù)的指針。之后就是數(shù)據(jù)段,各節(jié)中的內(nèi)容才是你執(zhí)行一個(gè)程序真正需要的東西,代碼段和重定位數(shù)據(jù)段存儲(chǔ)產(chǎn)品的安裝邏輯,數(shù)據(jù)區(qū)中指定位置存儲(chǔ)了列表文件數(shù)據(jù),并且存儲(chǔ)了升級(jí)數(shù)據(jù)。所述列表文件數(shù)據(jù)記錄的內(nèi)容包括存儲(chǔ)在所述可執(zhí)行文件的數(shù)據(jù)區(qū)中各適于升級(jí)的升級(jí)數(shù)據(jù)的文件特征信息,所述文件特征信息包括各升級(jí)數(shù)據(jù)的文件特征信息、和相對(duì)可執(zhí)行文件的在數(shù)據(jù)區(qū)的字節(jié)位置或者數(shù)據(jù)段。本發(fā)明的原始升級(jí)數(shù)據(jù)(可以理解為初始安裝程序),和后續(xù)的升級(jí)數(shù)據(jù)(可以理解為后續(xù)的升級(jí)包)通過上述步驟設(shè)置在一個(gè)可執(zhí)行文件中。在本發(fā)明實(shí)施例中,從服務(wù)器側(cè)說明本發(fā)明的實(shí)施過程?;谒隹蓤?zhí)行文件的程序升級(jí)下載過程包括步驟S110,接收客戶端的程序升級(jí)下載請(qǐng)求;客戶端可發(fā)送程序升級(jí)下載請(qǐng)求至服務(wù)器,以通知服務(wù)器針對(duì)該客戶端進(jìn)行程序升級(jí)下載流程。具體的程序升級(jí)下載請(qǐng)求可包括客戶端的身份信息,比如IP地址信息等。步驟S120,根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù);在服務(wù)器側(cè)提供的可執(zhí)行文件中的指定字節(jié)位置或者數(shù)據(jù)段存在一個(gè)第一列表文件數(shù)據(jù),在客戶端存對(duì)應(yīng)可執(zhí)行文件的第二列表文件數(shù)據(jù),那么即可將第一列表文件數(shù)據(jù)的文件特征信息和第二列表文件數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷服務(wù)器側(cè)的可執(zhí)行文件中是否存在客戶端未下載的升級(jí)數(shù)據(jù)的文件特征信息,從而可獲知服務(wù)器側(cè)的可執(zhí)行文件中是否存在客戶端未下載的升級(jí)數(shù)據(jù)??蛇x的,所述根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的數(shù)據(jù)包括步驟S11,服務(wù)器從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù);服務(wù)器從服務(wù)器側(cè)的可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù)。步驟S12,服務(wù)器通知客戶端將其可執(zhí)行文件中的第二列表文件數(shù)據(jù)上傳;服務(wù)器通知客戶端將客戶端中的可執(zhí)行文件中的第二列表文件數(shù)據(jù)上傳步驟S13,服務(wù)器將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段。服務(wù)器將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段??蛇x的,所述根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù)包括步驟S21,服務(wù)器從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù)提供給客戶端下載;步驟S22,客戶端提取本地的第二列表文件數(shù)據(jù)`,并將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較后,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;步驟S23,客戶端根據(jù)所述客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段生成升級(jí)數(shù)據(jù)下載請(qǐng)求,并發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求至服務(wù)器;步驟S24,服務(wù)器接收客戶端發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求。即服務(wù)器接收客戶端發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求,而所述升級(jí)數(shù)據(jù)下載請(qǐng)求包括客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段??蛇x的,所述將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段包括步驟S31,將第一列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息,并與第二列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;步驟S32,如果未出現(xiàn)新的文件特征信息,則可判斷客戶端下載已經(jīng)結(jié)束;步驟S33,如果出現(xiàn)新的文件特征信息,則從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段??蛇x的,所述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)。即將升級(jí)數(shù)據(jù)按升級(jí)先后順序存入服務(wù)器的可執(zhí)行文件的數(shù)據(jù)區(qū)中。進(jìn)一步的,所述將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段包括步驟S41,按順序逐個(gè)將第一列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息與本第二列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;步驟S42,如果出現(xiàn)新的文件特征信息,則停止比較,并從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段。因?yàn)榭蓤?zhí)行文件中按順序進(jìn)行存儲(chǔ),那么指定字節(jié)位置或者數(shù)據(jù)段中的列表文件數(shù)據(jù)也可按順序進(jìn)行記錄,那么則可按順序逐個(gè)將第一列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息與本第二列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息,如果出現(xiàn)新的文件特征信息,則停止比較,那么可節(jié)省的比較時(shí)間。步驟S130,如果存在,則根據(jù)列表文件數(shù)據(jù)記錄的所述升級(jí)數(shù)據(jù)在在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從所述可執(zhí)行文件數(shù)據(jù)區(qū)中提取升級(jí)數(shù)據(jù)并將所升級(jí)數(shù)據(jù)提供給客戶端下載。因升級(jí)數(shù)據(jù)下載請(qǐng)求提示了從可執(zhí)行文件的哪個(gè)位置提取數(shù)據(jù)提供給客戶端下載以進(jìn)行升級(jí),那么服務(wù)器即可根據(jù)該提示的各位置,從可執(zhí)行文件中提取數(shù)據(jù)提供給客戶端下載??蛇x的,在前步驟S52,的情況下,所述根據(jù)所述客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從可執(zhí)行文件的數(shù)據(jù)區(qū)中提取數(shù)據(jù)并將所述升級(jí)數(shù)據(jù)提供給客戶端下載包括步驟S42,從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段開始提取升級(jí)數(shù)據(jù)的字節(jié)流發(fā)送給客戶端。由于可執(zhí)行文件時(shí)按升級(jí)使用順序存儲(chǔ)的升級(jí)數(shù)據(jù),只提示了相對(duì)可執(zhí)行文件開始位置開始下載的偏移·字節(jié),那么本步驟即可從該提示的偏移字節(jié)開始,將其之后存在的數(shù)據(jù)全提取出來提供給客戶端下載,因而不會(huì)出錯(cuò),也因服務(wù)器只需判斷開始偏移位置和最終的結(jié)束位置,而不用做其他額外的位置判斷,從而提高了服務(wù)器的判斷和下載效率。另外,可選的,所述列表文件數(shù)據(jù)中各升級(jí)數(shù)據(jù)的文件特征信息中還可包括升級(jí)數(shù)據(jù)段的校驗(yàn)信息;比如對(duì)升級(jí)數(shù)據(jù)段的數(shù)據(jù)內(nèi)容做MD5(MD5,信息摘要算法第5版)計(jì)算得到MD5值,對(duì)應(yīng)進(jìn)行存儲(chǔ)。進(jìn)一步的包括步驟D11,所述客戶端下載完所述升級(jí)數(shù)據(jù)后,計(jì)算所述升級(jí)數(shù)據(jù)的校驗(yàn)信息,并將所述校驗(yàn)信息與列表文件數(shù)據(jù)中該升級(jí)數(shù)據(jù)的校驗(yàn)信息進(jìn)行比較;比如對(duì)下載得到的每個(gè)升級(jí)數(shù)據(jù)段的內(nèi)容進(jìn)行MD5計(jì)算,將計(jì)算得到的MD5值,與前面步驟下載得到的列表文件數(shù)據(jù)中對(duì)應(yīng)該數(shù)據(jù)段存儲(chǔ)的MD5值進(jìn)行比較。步驟D12,如果校驗(yàn)通過,則存儲(chǔ)所述升級(jí)數(shù)據(jù)段;如果MD5值相同,則校驗(yàn)通過,則存儲(chǔ)所述升級(jí)數(shù)據(jù)段。步驟D13,如果校驗(yàn)失敗,則通知客戶端所述升級(jí)數(shù)據(jù)錯(cuò)誤。如果MD5值相同,則校驗(yàn)失敗,則通知客戶端所述升級(jí)數(shù)據(jù)錯(cuò)誤,需要重新下載坐寸ο參照?qǐng)D2,其示出了本發(fā)明一種程序升級(jí)下載的方法實(shí)施例二的流程示意圖,具體可以包括步驟100,生成一個(gè)可執(zhí)行文件,所述可執(zhí)行文件用于將用于原始安裝的升級(jí)數(shù)據(jù)、以及后續(xù)新獲得的用于升級(jí)的升級(jí)數(shù)據(jù)存入所述可執(zhí)行文件數(shù)據(jù)區(qū),并在所述升級(jí)數(shù)據(jù)區(qū)的指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)列表文件數(shù)據(jù);所述列表文件數(shù)據(jù)記錄的包括安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)的文件特征信息,和安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;步驟110,接收客戶端的程序升級(jí)下載請(qǐng)求;客戶端可發(fā)送程序升級(jí)下載請(qǐng)求至服務(wù)器,以通知服務(wù)器針對(duì)該客戶端進(jìn)行程序升級(jí)下載流程。具體的程序升級(jí)下載請(qǐng)求可包括客戶端的身份信息,比如IP地址信息等。另外,在本步驟之前,還可包括服務(wù)器可根據(jù)當(dāng)前可執(zhí)行文件的更新情況,通知客戶端進(jìn)行程序升級(jí)下載。比如服務(wù)器將可執(zhí)行文件的升級(jí)數(shù)據(jù)更新了,則可通知各個(gè)客戶端對(duì)程序進(jìn)行升級(jí)。步驟120,從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù)提供給客戶端下載;在本發(fā)明實(shí)施例中,針對(duì)安裝程序會(huì)設(shè)置一個(gè)可執(zhí)行文件,其中可執(zhí)行文件如windows系統(tǒng)中的.exe,.dll等結(jié)構(gòu)的文件。其中,如圖3,其示出了可執(zhí)行文件(即PE文件,PE文件被稱為可移植的執(zhí)行體是PortableExecute的全稱,常見的EXE、DLL、0CX、SYS、COM都是PE文件)的磁盤文件結(jié)構(gòu),可執(zhí)行文件包括DOS文件頭、PE頭部、Sections表、代碼段、重定位數(shù)據(jù)段和數(shù)據(jù)區(qū)(即各個(gè)數(shù)據(jù)段)。在一個(gè)PE文件的開始處,我們會(huì)看到一個(gè)DOS文件頭,它使任何PE文件都是一個(gè)有效的MS-DOS可執(zhí)行文件。之后是文件頭(按COFF格式),用來說明該二進(jìn)制文件將運(yùn)行在何種機(jī)器之上、分幾個(gè)區(qū)段、鏈接的時(shí)間、是可執(zhí)行文件還是DLL、等等,后面包括Section表,S卩“數(shù)據(jù)目錄”數(shù)組;這些目錄包含許多指向各“段”數(shù)據(jù)的指針。之后就是數(shù)據(jù)段,各節(jié)中的內(nèi)容才是你執(zhí)行一個(gè)程序真正需要的東西,代碼段和重定位數(shù)據(jù)段存儲(chǔ)產(chǎn)品的安裝邏輯,數(shù)據(jù)區(qū)中指定位置存儲(chǔ)了列表文件數(shù)據(jù),并且存儲(chǔ)了升級(jí)數(shù)據(jù)。所述列表文件數(shù)據(jù)記錄內(nèi)容的包括存儲(chǔ)在所述可執(zhí)行文件的數(shù)據(jù)區(qū)中各適于升級(jí)的升級(jí)數(shù)據(jù)的文件特征信息,所述文件特征信息包括各升級(jí)數(shù)據(jù)的文件特征信息、和相對(duì)可執(zhí)行文件的字節(jié)位置或者數(shù)據(jù)段。在可執(zhí)行文件中,每個(gè)數(shù)據(jù)段相對(duì)可執(zhí)行文件最開始位置均存在偏移字節(jié),那么可預(yù)先約定哪個(gè)偏移字節(jié)開始存儲(chǔ)列表文件數(shù)據(jù),即將適于升級(jí)的升級(jí)數(shù)據(jù)的包括文件特征信息、偏移字節(jié)等信息存儲(chǔ)于該指定偏移字節(jié)。那么服務(wù)器和客戶端可在進(jìn)行升級(jí)流程時(shí)指定讀取該指定偏移字節(jié)的列表文件數(shù)據(jù)進(jìn)行處理。優(yōu)選的,所述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)。即按照安裝時(shí)先后使用升級(jí)數(shù)據(jù)的順序,將升級(jí)數(shù)據(jù)在數(shù)據(jù)區(qū)中按該順序存儲(chǔ),比如安裝時(shí)按順序使用升級(jí)數(shù)據(jù)al、a2、a3,那么可在數(shù)據(jù)區(qū)存儲(chǔ)al的數(shù)據(jù)段偏移字節(jié)靠前,存儲(chǔ)a2的數(shù)據(jù)段緊接在al后,存儲(chǔ)a3的數(shù)據(jù)段緊接在a2后。那么在本步驟中,服務(wù)器接收到客戶端的程序升級(jí)下載請(qǐng)求后,根據(jù)該程序升級(jí)下載請(qǐng)求針對(duì)的可執(zhí)行文件,首先從可執(zhí)行文件數(shù)據(jù)區(qū)中指定的字節(jié)位置或者數(shù)據(jù)段提取列表文件數(shù)據(jù),提供給客戶端下載。比如指定數(shù)據(jù)區(qū)中,相對(duì)可執(zhí)行文件開始位置的偏移字節(jié)為ml至偏移位置為m2位置之間的數(shù)據(jù)段,提取該位置數(shù)據(jù)段的字節(jié)流,將其提供給客戶端下載。其中,如圖3,可執(zhí)行文件開始位置的偏移位置為O。步驟130,接收客戶端發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求;所述升級(jí)數(shù)據(jù)下載請(qǐng)求包括通過客戶端提取本地的第二列表文件數(shù)據(jù),并將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較后,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;在客戶端接收到所述列表文件數(shù)據(jù)后,客戶端會(huì)將列表文件數(shù)據(jù)中的文件特征信息與本地該程序的文件特征信息進(jìn)行比較,判斷當(dāng)前下載的列表文件數(shù)據(jù)中的文件特征信息是否存在本地沒有的各升級(jí)數(shù)據(jù)段的文件特征信息,以判斷是否客戶端的程序是否需要升級(jí)。如果存在,那么提取所述升級(jí)數(shù)據(jù)段的相對(duì)可執(zhí)行文件的字節(jié)位置或者數(shù)據(jù)段,比如相對(duì)可執(zhí)行文件開始位置的偏移字節(jié),然后根據(jù)該字節(jié)位置或者數(shù)據(jù)段生成升級(jí)數(shù)據(jù)下載請(qǐng)求。具體的,所述可執(zhí)行文件中的一字節(jié)位置或者數(shù)據(jù)段由客戶端將所述列表文件數(shù)據(jù)與本地列表文件數(shù)據(jù)進(jìn)行比較包括步驟All,客戶端解析所下載的列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息,并與客戶端本地列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征彳目息;客戶端將從服務(wù)器下載得到的列表文件數(shù)據(jù)的字節(jié)流保存至對(duì)應(yīng)的本地列表數(shù)據(jù)文件中,然后解析該列表文件中記錄的各升級(jí)數(shù)據(jù)的文件特征信息,比如文件特征信息,字節(jié)位置或者數(shù)據(jù)段等信息。在本發(fā)明中,客戶端將當(dāng)前下載的列表文件數(shù)據(jù)中的文件特征信息,與本地列表文件數(shù)據(jù)中的文件特征信息進(jìn)行比較,判斷當(dāng)前下載的列表文件數(shù)據(jù)中是否有新的文件特征信息出現(xiàn)。步驟A12,如果未出現(xiàn)新的文件特征信息,則可判斷下載已經(jīng)結(jié)束;如果未出線新的文件特征信息,那么客戶端即可判斷程序當(dāng)前版本已是最新版本,則下載過程結(jié)束,不再生成和發(fā)送升級(jí)數(shù)據(jù)下載請(qǐng)求。步驟A13,如果出現(xiàn)新的文件特征信息,則提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段,并基于所述字節(jié)位置或者數(shù)據(jù)段生成所述升級(jí)數(shù)據(jù)下載請(qǐng)求。如果出線新的文件特征信息,則提取文件特征信息對(duì)應(yīng)的升級(jí)數(shù)據(jù)段的在可執(zhí)行文件數(shù)據(jù)區(qū)中的字節(jié)位置或者數(shù)據(jù)段,比如相對(duì)可執(zhí)行文件開始位置的偏移字節(jié),然后基于該字節(jié)位置或者數(shù)據(jù)段生成升級(jí)數(shù)據(jù)下載請(qǐng)求。進(jìn)一步的,在所述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)的基礎(chǔ)上,所述可執(zhí)行文件中的一字節(jié)位置或者數(shù)據(jù)段由客戶端將所述列表文件數(shù)據(jù)與本地列表文件數(shù)據(jù)進(jìn)行比較包括步驟B11,客戶端按順序逐個(gè)將下載的列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息與本地的列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;即從列表文件數(shù)據(jù)存儲(chǔ)各升級(jí)數(shù)據(jù)的文件特征信息的先后順序,逐個(gè)將當(dāng)前下載的列表文件中升級(jí)數(shù)據(jù)段的文件特征信息,與本地的升級(jí)數(shù)據(jù)段的文件特征信息進(jìn)行比較。步驟B12,如果未出現(xiàn)新的文件特征信息,則可判斷下載已經(jīng)結(jié)束。步驟B13,如果出現(xiàn)新的文件特征信息,則停止比較,并提取所述新升級(jí)數(shù)據(jù)的所述字節(jié)位置或者數(shù)據(jù)段,并基于所述字節(jié)位置或者數(shù)據(jù)段生成所述升級(jí)數(shù)據(jù)下載請(qǐng)求。當(dāng)出現(xiàn)新升級(jí)數(shù)據(jù)段時(shí),即新文件特征信息時(shí),則對(duì)當(dāng)前下載的列表數(shù)據(jù)中的剩余文件特征信息不再進(jìn)行比較,節(jié)省資源耗用。然后基于當(dāng)前新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段生成升級(jí)請(qǐng)求。步驟140,根據(jù)列表文件數(shù)據(jù)記錄的所述升級(jí)數(shù)據(jù)在在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從所述可執(zhí)行文件數(shù)據(jù)區(qū)中提取升級(jí)數(shù)據(jù)并將所升級(jí)數(shù)據(jù)提供給客戶端下載。因升級(jí)數(shù)據(jù)下載請(qǐng)求提示了從可執(zhí)行文件的哪個(gè)位置提取數(shù)據(jù)提供給客戶端下載以進(jìn)行升級(jí),那么服務(wù)器即可根據(jù)該提示的各位置,從可執(zhí)行文件中提取數(shù)據(jù)提供給客戶端下載??蛇x的,在前述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)和步驟Bll至步驟B13的基礎(chǔ)上,所述根據(jù)所述升級(jí)數(shù)據(jù)下載請(qǐng)求,從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段提取升級(jí)數(shù)據(jù),提供給客戶端下載包括步驟Cll,根據(jù)所述升級(jí)數(shù)據(jù)下載請(qǐng)求,從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段開始提取升級(jí)數(shù)據(jù)的字節(jié)流發(fā)送給客戶端;由于可執(zhí)行文件時(shí)按升級(jí)使用順序存儲(chǔ)的升級(jí)數(shù)據(jù),并且步驟B13生成的升級(jí)數(shù)據(jù)請(qǐng)求中,只提示了相對(duì)可執(zhí)行文件開始位置開始下載的偏移字節(jié),那么本步驟即可從該提示的偏移字節(jié)開始,將其之后存在的數(shù)據(jù)全提取出來提供給客戶端下載,因而不會(huì)出錯(cuò),也因服務(wù)器只需判斷開始偏移位置和最終的結(jié)束位置,而不用做其他額外的位置判斷,從而提高了服務(wù)器的判斷和下載效率。另外,在所述列表數(shù)據(jù)文件中還可包括升級(jí)數(shù)據(jù)段的文件大小(比如大小為500字節(jié)),進(jìn)一步的,所述客戶端接收時(shí)包括所述客戶端根據(jù)各升級(jí)數(shù)據(jù)段的文件大小,將接收到的字節(jié)流逐個(gè)存儲(chǔ)為相應(yīng)升級(jí)數(shù)據(jù)段的本地升級(jí)數(shù)據(jù)文件。比如服務(wù)器從可執(zhí)行文件偏移字節(jié)1000字節(jié)位置開始提取數(shù)據(jù)給客戶端下載,而從該位置開始第一個(gè)文件al大小為500字節(jié),第二個(gè)文件a2為800字節(jié),第三個(gè)文件a3為300字節(jié)。那么服務(wù)器從第可執(zhí)行文件偏移1000字節(jié)處提取數(shù)據(jù)給客戶端,客戶端判斷接收到的字節(jié)總數(shù)到500時(shí),則將這段字節(jié)流保存為al,接收到的字節(jié)流總數(shù)為1300時(shí),則將800-1300之間的字節(jié)流保存為a2,接收到的字節(jié)流總數(shù)為1600時(shí),則將1300-1600之間的字節(jié)流保存為a3。如此客戶端則可根據(jù)安裝邏輯基于下載得到的新的升級(jí)數(shù)據(jù)文件進(jìn)行升級(jí)。參照?qǐng)D4,其示出了本申請(qǐng)一種程序升級(jí)下載的裝置的實(shí)施例的結(jié)構(gòu)示意圖,包括可執(zhí)行文件生成模塊310,適于生成一個(gè)可執(zhí)行文件,所述可執(zhí)行文件用于將用于原始安裝的升級(jí)數(shù)據(jù)、以及后續(xù)新獲得的用于升級(jí)的升級(jí)數(shù)據(jù)存入所述可執(zhí)行文件數(shù)據(jù)區(qū),并在所述升級(jí)數(shù)據(jù)區(qū)的指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)列表文件數(shù)據(jù);所述列表文件數(shù)據(jù)記錄的包括安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)的文件特征信息,和安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;升級(jí)請(qǐng)求接收模塊320,適于接收客戶端的程序升級(jí)下載請(qǐng)求;判斷模塊330,適于根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù);升級(jí)數(shù)據(jù)提供模塊340,適于如果存在,則根據(jù)列表文件數(shù)據(jù)記錄的所述升級(jí)數(shù)據(jù)在在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從所述可執(zhí)行文件數(shù)據(jù)區(qū)中提取升級(jí)數(shù)據(jù)并將所升級(jí)數(shù)據(jù)提供給客戶端下載??蛇x的,所述判斷模塊包括第一列表文件提取模塊一,適于從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù);第二列表文件獲取模塊一,適于通知客戶端將其可執(zhí)行文件中的第二列表文件數(shù)據(jù)上傳;第一判斷模塊,適于將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段??蛇x的,所述判斷模塊包括第一列表文件提取模塊二,適于從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù)提供給客戶端下載;升級(jí)數(shù)據(jù)下載請(qǐng)求接收模塊,適于接收客戶端發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求;所述升級(jí)數(shù)據(jù)下載請(qǐng)求包括通過客戶端提取本地的第二列表文件數(shù)據(jù),并將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較后,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段。可選的,所述判斷模塊包括第二判斷模塊,適于將第一列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息,并與第二列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果未出現(xiàn)新的文件特征信息,則可判斷客戶端下載已經(jīng)結(jié)束;如果出現(xiàn)新的文件特征信息,則從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段??蛇x的,所述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)??蛇x的,所述判斷模塊包括第二判斷模塊,適于按順序逐個(gè)將第一列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息與本第二列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果出現(xiàn)新的文件特征信息,則停止比較,并從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段??蛇x的,所述升級(jí)數(shù)據(jù)提供模塊包括從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段開始提取升級(jí)數(shù)據(jù)的字節(jié)流發(fā)送給客戶端??蛇x的,所述升級(jí)數(shù)據(jù)提取模塊包括第一提取模塊,適于根據(jù)所述升級(jí)數(shù)據(jù)下載請(qǐng)求,從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段開始提取升級(jí)數(shù)據(jù)的字節(jié)流發(fā)送給客戶端??蛇x的,所述列表文件中各升級(jí)數(shù)據(jù)的文件特征信息中還包括升級(jí)數(shù)據(jù)段的校驗(yàn)信息;進(jìn)一步的,在所述客戶端還包括校驗(yàn)?zāi)K,適于所述客戶端下載完所述升級(jí)數(shù)據(jù)后,計(jì)算所述升級(jí)數(shù)據(jù)的校驗(yàn)信息,并將所述校驗(yàn)信息與列表文件數(shù)據(jù)中該升級(jí)數(shù)據(jù)的校驗(yàn)信息進(jìn)行比較;如果校驗(yàn)通過,則存儲(chǔ)所述升級(jí)數(shù)據(jù)段;如果校驗(yàn)失敗,則通知客戶端所述升級(jí)數(shù)據(jù)錯(cuò)誤。參照?qǐng)D5,其示出了一種程序升級(jí)下載的系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖,包括服務(wù)器410和客戶端420;所述服務(wù)器410包括升級(jí)請(qǐng)求接收模塊411,適于接收客戶端的程序升級(jí)下載請(qǐng)求;列表文件提取模塊412,適于從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù)提供給客戶端下載;升級(jí)數(shù)據(jù)下載請(qǐng)求接收模塊413,適于接收客戶端發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求;所述升級(jí)數(shù)據(jù)下載請(qǐng)求包括通過客戶端提取本地的第二列表文件數(shù)據(jù),并將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較后,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;升級(jí)數(shù)據(jù)提取模塊414,適于根據(jù)列表文件數(shù)據(jù)記錄的所述升級(jí)數(shù)據(jù)在在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從所述可執(zhí)行文件數(shù)據(jù)區(qū)中提取升級(jí)數(shù)據(jù)并將所升級(jí)數(shù)據(jù)提供給客戶端下載。所述客戶端420包括升級(jí)請(qǐng)求發(fā)送模塊421,適于發(fā)送所述程序升級(jí)下載請(qǐng)求;比較模塊422,適于通過客戶端提取本地的第二列表文件數(shù)據(jù),并將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較后,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;升級(jí)數(shù)據(jù)下載請(qǐng)求生成模塊423,適于基于所述字節(jié)位置或者數(shù)據(jù)段生成所述升級(jí)數(shù)據(jù)下載請(qǐng)求;升級(jí)數(shù)據(jù)下載請(qǐng)求發(fā)送模塊424,適于發(fā)送所述升級(jí)數(shù)據(jù)下載請(qǐng)求??蛇x的,所述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)。可選的,在所述客戶端中,所述比較模塊包括解析比較模塊,適于客戶端解析所下載的列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息,并與客戶端本地列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果未出現(xiàn)新的文件特征信息,則可判斷下載已經(jīng)結(jié)束;如果出現(xiàn)新的文件特征信息,則提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段,轉(zhuǎn)入升級(jí)數(shù)據(jù)下載請(qǐng)求生成模塊。可選的,所述比較模塊包括順序比較模塊,適于客戶端按順序逐個(gè)將下載的列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息與本地的列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果出現(xiàn)新的文件特征信息,則停止比較,并提取所述新升級(jí)數(shù)據(jù)的所述字節(jié)位置或者數(shù)據(jù)段,并轉(zhuǎn)入升級(jí)數(shù)據(jù)下載請(qǐng)求生成模塊??蛇x的,所述升級(jí)數(shù)據(jù)提取模塊包括第一提取模塊,適于根據(jù)所述升級(jí)數(shù)據(jù)下載請(qǐng)求,從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段開始提取升級(jí)數(shù)據(jù)的字節(jié)流發(fā)送給客戶端;可選的,所述列表文件中各升級(jí)數(shù)據(jù)的文件特征信息中還包括升級(jí)數(shù)據(jù)段的校驗(yàn)信息;進(jìn)一步的,在所述客戶端還包括校驗(yàn)?zāi)K,適于所述客戶端下載完所述升級(jí)數(shù)據(jù)后,計(jì)算所述升級(jí)數(shù)據(jù)的校驗(yàn)信息,并將所述校驗(yàn)信息與列表文件數(shù)據(jù)中該升級(jí)數(shù)據(jù)的校驗(yàn)信息進(jìn)行比較;如果校驗(yàn)通過,則存儲(chǔ)所述升級(jí)數(shù)據(jù)段;如果校驗(yàn)失敗,則通知客戶端所述升級(jí)數(shù)據(jù)錯(cuò)誤。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中。可以把實(shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的一種程序升級(jí)下載設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為適于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。權(quán)利要求1.一種程序升級(jí)下載的方法,包括生成一個(gè)可執(zhí)行文件,所述可執(zhí)行文件用于將用于原始安裝的升級(jí)數(shù)據(jù)、以及后續(xù)新獲得的用于升級(jí)的升級(jí)數(shù)據(jù)存入所述可執(zhí)行文件數(shù)據(jù)區(qū),并在所述升級(jí)數(shù)據(jù)區(qū)的指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)列表文件數(shù)據(jù);所述列表文件數(shù)據(jù)記錄的包括安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)的文件特征信息,和安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;基于所述可執(zhí)行文件的程序升級(jí)下載過程包括接收客戶端的程序升級(jí)下載請(qǐng)求;根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù);如果存在,則根據(jù)列表文件數(shù)據(jù)記錄的所述升級(jí)數(shù)據(jù)在在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從所述可執(zhí)行文件數(shù)據(jù)區(qū)中提取升級(jí)數(shù)據(jù)并將所升級(jí)數(shù)據(jù)提供給客戶端下載。2.如權(quán)利要求1所述的方法,所述根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的數(shù)據(jù)包括從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù);通知客戶端將其可執(zhí)行文件中的第二列表文件數(shù)據(jù)上傳;將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段。3.如權(quán)利要求1所述的方法,所述根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),并比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù)包括從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù)提供給客戶端下載;接收客戶端發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求;所述升級(jí)數(shù)據(jù)下載請(qǐng)求包括通過客戶端提取本地的第二列表文件數(shù)據(jù),并將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較后,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段。4.如權(quán)利要求1所述的方法,所述將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段包括將第一列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息,并與第二列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果未出現(xiàn)新的文件特征信息,則可判斷客戶端下載已經(jīng)結(jié)束;如果出現(xiàn)新的文件特征信息,則從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段。5.如權(quán)利要求1所述的方法,所述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)。6.如權(quán)利要求5所述的方法,所述將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段包括按順序逐個(gè)將第一列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息與本第二列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果出現(xiàn)新的文件特征信息,則停止比較,并從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段。7.如權(quán)利要求6所述的方法,所述根據(jù)所述客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從可執(zhí)行文件的數(shù)據(jù)區(qū)中提取數(shù)據(jù)并將所述升級(jí)數(shù)據(jù)提供給客戶端下載包括從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段開始提取升級(jí)數(shù)據(jù)的字節(jié)流發(fā)送給客戶端。8.如權(quán)利要求1所述的方法,所述列表文件數(shù)據(jù)中各升級(jí)數(shù)據(jù)的文件特征信息中還包括升級(jí)數(shù)據(jù)段的校驗(yàn)信息;進(jìn)ー步的,當(dāng)所述客戶端下載完所述升級(jí)數(shù)據(jù)后,計(jì)算所述升級(jí)數(shù)據(jù)的校驗(yàn)信息,并將所述校驗(yàn)信息與列表文件數(shù)據(jù)中該升級(jí)數(shù)據(jù)的校驗(yàn)信息進(jìn)行比較;如果校驗(yàn)通過,則存儲(chǔ)所述升級(jí)數(shù)據(jù)段;如果校驗(yàn)失敗,則通知客戶端所述升級(jí)數(shù)據(jù)錯(cuò)誤。9.一種程序升級(jí)下載的裝置,包括可執(zhí)行文件生成模塊,適于生成一個(gè)可執(zhí)行文件,所述可執(zhí)行文件用于將用于原始安裝的升級(jí)數(shù)據(jù)、以及后續(xù)新獲得的用于升級(jí)的升級(jí)數(shù)據(jù)存入所述可執(zhí)行文件數(shù)據(jù)區(qū),并在所述升級(jí)數(shù)據(jù)區(qū)的指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)列表文件數(shù)據(jù);所述列表文件數(shù)據(jù)記錄的包括安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)的文件特征信息,和安裝數(shù)據(jù)和各升級(jí)數(shù)據(jù)在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段;升級(jí)請(qǐng)求接收模塊,適于接收客戶端的程序升級(jí)下載請(qǐng)求;判斷模塊,適于根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取所述可執(zhí)行文件數(shù)據(jù)區(qū)中指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)的第一列表文件數(shù)據(jù)和獲取對(duì)應(yīng)客戶端可執(zhí)行文件的第二列表文件數(shù)據(jù),井比較所述第一列表文件數(shù)據(jù)和第二列表文件數(shù)據(jù)的文件特征信息,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù);升級(jí)數(shù)據(jù)提供模塊,適于如果存在,則根據(jù)列表文件數(shù)據(jù)記錄的所述升級(jí)數(shù)據(jù)在在數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段,從所述可執(zhí)行文件數(shù)據(jù)區(qū)中提取升級(jí)數(shù)據(jù)并將所升級(jí)數(shù)據(jù)提供給客戶端下載。10.如權(quán)利要求9所述的裝置,所述判斷模塊包括第一列表文件提取模塊一,適于從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù);第二列表文件獲取模塊一,適于通知客戶端將其可執(zhí)行文件中的第二列表文件數(shù)據(jù)上傳;第一判斷模塊,適于將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段。11.如權(quán)利要求9所述的裝置,所述判斷模塊包括第一列表文件提取模塊二,適于從所述可執(zhí)行文件數(shù)據(jù)區(qū)的指定字節(jié)位置或者數(shù)據(jù)段中,提取第一列表文件數(shù)據(jù)提供給客戶端下載;升級(jí)數(shù)據(jù)下載請(qǐng)求接收模塊,適于接收客戶端發(fā)送的升級(jí)數(shù)據(jù)下載請(qǐng)求;所述升級(jí)數(shù)據(jù)下載請(qǐng)求包括通過客戶端提取本地的第二列表文件數(shù)據(jù),并將第二列表文件數(shù)據(jù)與第一列表文件數(shù)據(jù)的文件特征信息比較后,獲得的客戶端未下載的升級(jí)數(shù)據(jù)在所述可執(zhí)行文件數(shù)據(jù)區(qū)中存儲(chǔ)的字節(jié)位置或數(shù)據(jù)段。12.如權(quán)利要求9所述裝置,所述判斷模塊包括第二判斷模塊,適于將第一列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息,并與第二列表文件數(shù)據(jù)中的各升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果未出現(xiàn)新的文件特征信息,則可判斷客戶端下載已經(jīng)結(jié)束;如果出現(xiàn)新的文件特征信息,則從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段。13.如權(quán)利要求9所述的裝置,所述列表文件中的各升級(jí)數(shù)據(jù)的文件特征信息,按升級(jí)先后使用順序記錄;所述升級(jí)數(shù)據(jù)在所述可執(zhí)行文件中按升級(jí)先后使用順序存儲(chǔ)。14.如權(quán)利要求13所述的裝置,所述判斷模塊包括第二判斷模塊,適于按順序逐個(gè)將第一列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息與本第二列表文件數(shù)據(jù)中升級(jí)數(shù)據(jù)的文件特征信息進(jìn)行比較,判斷是否出現(xiàn)新的文件特征信息;如果出現(xiàn)新的文件特征信息,則停止比較,并從列表文件數(shù)據(jù)中提取所述新的文件特征信息對(duì)應(yīng)的字節(jié)位置或者數(shù)據(jù)段。15.如權(quán)利要求14所述的裝置,所述升級(jí)數(shù)據(jù)提供模塊包括第一提取模塊,適于從可執(zhí)行文件的所述字節(jié)位置或者數(shù)據(jù)段開始提取升級(jí)數(shù)據(jù)的字節(jié)流發(fā)送給客戶端。16.如權(quán)利要求9所述的裝置,所述列表文件中各升級(jí)數(shù)據(jù)的文件特征信息中還包括升級(jí)數(shù)據(jù)段的校驗(yàn)信息;進(jìn)一步的,在所述客戶端還包括校驗(yàn)?zāi)K,適于所述客戶端下載完所述升級(jí)數(shù)據(jù)后,計(jì)算所述升級(jí)數(shù)據(jù)的校驗(yàn)信息,并將所述校驗(yàn)信息與列表文件數(shù)據(jù)中該升級(jí)數(shù)據(jù)的校驗(yàn)信息進(jìn)行比較;如果校驗(yàn)通過,則存儲(chǔ)所述升級(jí)數(shù)據(jù)段;如果校驗(yàn)失敗,則通知客戶端所述升級(jí)數(shù)據(jù)錯(cuò)誤。全文摘要本發(fā)明公開了一種程序升級(jí)下載方法和裝置,涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
。所述方法包括將用于各種升級(jí)數(shù)據(jù)存入一個(gè)可執(zhí)行文件數(shù)據(jù)區(qū),并在所述升級(jí)數(shù)據(jù)區(qū)的指定字節(jié)位置或數(shù)據(jù)段存儲(chǔ)列表文件數(shù)據(jù);接收客戶端的程序升級(jí)下載請(qǐng)求;根據(jù)所述程序升級(jí)下載請(qǐng)求,獲取服務(wù)器可執(zhí)行文件第一列表文件數(shù)據(jù)和客戶端可執(zhí)行文件第二列表文件數(shù)據(jù)并進(jìn)行比較,判斷是否存在客戶端未下載的升級(jí)數(shù)據(jù);如果存在,則從所述可執(zhí)行文件數(shù)據(jù)區(qū)中提取升級(jí)數(shù)據(jù)并將所升級(jí)數(shù)據(jù)提供給客戶端下載。本發(fā)明所有安裝程序版本只有一份,那么充分保證了文件版本一致性,減少文件了的數(shù)量,保證服務(wù)器查找文件的效率,提高服務(wù)器的下載效率,還能節(jié)省磁盤存儲(chǔ)空間。文檔編號(hào)H04L29/08GK103051689SQ201210533790公開日2013年4月17日申請(qǐng)日期2012年12月11日優(yōu)先權(quán)日2012年12月11日發(fā)明者王東玉,蘇云琳申請(qǐng)人:北京奇虎科技有限公司,奇智軟件(北京)有限公司