本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種組件更新方法、裝置和系統(tǒng)。
背景技術(shù):
com組件(即comcomponent)是微軟公司為了計算機工業(yè)的軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一種新的軟件開發(fā)技術(shù);隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,在com構(gòu)架下,人們可以開發(fā)出各種各樣的功能專一的com組件(以下簡稱組件),然后將它們按照需要組合起來,構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。
為了便于對系統(tǒng)的升級和定制,可以將系統(tǒng)中的組件用新的組件替換,一般的,將這個過程稱為“組件更新”;目前組件更新過程中,首先需要關(guān)閉加載了待更新組件的進程,隨后啟動升級進程,并通過該升級進程從服務(wù)器下載組件最新版本,最后用最新版本替換本地舊版本,再啟動被關(guān)閉的進程,從而完成組件更新。
在對現(xiàn)有技術(shù)的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),由于現(xiàn)有技術(shù)需要借助升級進程才能完成組件的更新,因此會導(dǎo)致組件更新不及時、帶寬消耗較大的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種組件更新方法、裝置和系統(tǒng),旨在提高組件更新的時效性、減少帶寬消耗。
為解決上述技術(shù)問題,本發(fā)明實施例提供以下技術(shù)方案:
一種組件更新方法,其中包括:
獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程;
基于所述預(yù)設(shè)更新線程,確定所述待更新組件的版本信息;
向服務(wù)器發(fā)送更新請求,所述更新請求攜帶所述版本信息;
當(dāng)所述服務(wù)器根據(jù)所述更新請求確定所述待更新組件需要更新時,從所述服務(wù)器下載更新文件,并根據(jù)所述更新文件更新所述待更新組件。
為解決上述技術(shù)問題,本發(fā)明實施例還提供以下技術(shù)方案:
一種組件更新裝置,其中包括:
獲取單元,用于獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程;
確定單元,用于基于所述預(yù)設(shè)更新線程,確定所述待更新組件的版本信息;
發(fā)送單元,用于向服務(wù)器發(fā)送更新請求,所述更新請求攜帶所述版本信息;
下載單元,用于當(dāng)所述服務(wù)器根據(jù)所述更新請求確定所述待更新組件需要更新時,從所述服務(wù)器下載更新文件;
更新單元,用于根據(jù)所述更新文件更新所述待更新組件。
為解決上述技術(shù)問題,本發(fā)明實施例還提供以下技術(shù)方案:
一種組件更新系統(tǒng),其中包括服務(wù)器以及如前述組件更新裝置;
所述服務(wù)器,用于接收所述組件更新裝置發(fā)送的更新請求,所述更新請求攜帶待更新組件的版本信息,根據(jù)所述版本信息確定所述待更新組件需要更新時,向所述組件更新裝置發(fā)送通知信息,以使所述組件更新裝置更新所述待更新組件。
相對于現(xiàn)有技術(shù),本發(fā)明實施例,首先,獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程,然后基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息;接著,向服務(wù)器發(fā)送攜帶該版本信息更新請求,當(dāng)服務(wù)器根據(jù)該更新請求確定待更新組件需要更新時,下載更新文件,并根據(jù)該更新文件更新待更新組件。即本發(fā)明實施例中待更新組件內(nèi)部啟動相應(yīng)的更新線程,并基于該更新進程與服務(wù)器進行版本信息對比以及更新文件下載等,從而可自動加載完成組件的更新,相對于基于借助外在的升級進程對組件進行更新的方式,提高了組件更新的時效性,同時減少帶寬消耗。
附圖說明
下面結(jié)合附圖,通過對本發(fā)明的具體實施方式詳細描述,將使本發(fā)明的技術(shù)方案及其它有益效果顯而易見。
圖1a是本發(fā)明實施例提供的組件更新系統(tǒng)的場景示意圖;
圖1b是本發(fā)明第一實施例提供的組件更新方法的流程示意圖;
圖2為本發(fā)明第二實施例提供的組件更新方法的流程示意圖;
圖3為本發(fā)明第三實施例提供的組件更新裝置的結(jié)構(gòu)示意圖;
圖4為本發(fā)明第四實施例提供的電子設(shè)備的結(jié)構(gòu)示意圖;
圖5是本發(fā)明第五實施例提供的組件更新系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
請參照圖式,其中相同的組件符號代表相同的組件,本發(fā)明的原理是以實施在一適當(dāng)?shù)倪\算環(huán)境中來舉例說明。以下的說明是基于所例示的本發(fā)明具體實施例,其不應(yīng)被視為限制本發(fā)明未在此詳述的其它具體實施例。
在以下的說明中,本發(fā)明的具體實施例將參考由一部或多部計算機所執(zhí)行的步驟及符號來說明,除非另有述明。因此,這些步驟及操作將有數(shù)次提到由計算機執(zhí)行,本文所指的計算機執(zhí)行包括了由代表了以一結(jié)構(gòu)化型式中的數(shù)據(jù)的電子信號的計算機處理單元的操作。此操作轉(zhuǎn)換該數(shù)據(jù)或?qū)⑵渚S持在該計算機的內(nèi)存系統(tǒng)中的位置處,其可重新配置或另外以本領(lǐng)域測試人員所熟知的方式來改變該計算機的運作。該數(shù)據(jù)所維持的數(shù)據(jù)結(jié)構(gòu)為該內(nèi)存的實體位置,其具有由該數(shù)據(jù)格式所定義的特定特性。但是,本發(fā)明原理以上述文字來說明,其并不代表為一種限制,本領(lǐng)域測試人員將可了解到以下所述的多種步驟及操作亦可實施在硬件當(dāng)中。
本文所使用的術(shù)語「模塊」可看做為在該運算系統(tǒng)上執(zhí)行的軟件對象。本文所述的不同組件、模塊、引擎及服務(wù)可看做為在該運算系統(tǒng)上的實施對象。 而本文所述的裝置及方法優(yōu)選的以軟件的方式進行實施,當(dāng)然也可在硬件上進行實施,均在本發(fā)明保護范圍之內(nèi)。
本發(fā)明實施例提供一種組件更新方法、裝置和系統(tǒng)。
參見圖1a,該圖為本發(fā)明實施例所提供的組件更新系統(tǒng)的場景示意圖,該組件更新系統(tǒng)可以包括組件更新裝置以及服務(wù)器,其中該組件更新裝置具體可以集成在終端(如手機、平板電腦)上,主要用于:獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程,然后,基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息,即待更新組件內(nèi)部啟動相應(yīng)的更新線程,并基于該更新線程對該組件進行更新;接著,向服務(wù)器發(fā)送更新請求,該更新請求攜帶該待更新組件的版本信息;當(dāng)服務(wù)器根據(jù)該更新請求確定待更新組件需要更新時,從服務(wù)器下載更新文件,并根據(jù)更新文件更新待更新組件,等等。
此外,該組件更新系統(tǒng)中服務(wù)器主要用于:接收前述組件更新裝置發(fā)送的更新請求,其中,該更新請求攜帶待更新組件的在本地的版本信息;當(dāng)該服務(wù)器根據(jù)該版本信息確定待更新組件需要更新時,向前述組件更新裝置發(fā)送通知信息,以使得該組件更新裝置根據(jù)該通知信息,及時對該待更新組件進行更新。
以下將分別進行詳細說明。
第一實施例
在本實施例中,將從組件更新裝置的角度進行描述,該組件更新裝置具體可以集成在終端上,該終端可以是手機、平板電腦等具有存儲單元并安裝有微處理器而具有運算能力的終端機。
一種組件更新方法,包括:獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程;基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息;向服務(wù)器發(fā)送更新請求,該更新請求攜帶該版本信息;當(dāng)服務(wù)器根據(jù)該更新請求確定所述待更新組件需要更新時,從服務(wù)器下載更新文件,并根據(jù)更新文件更新待更新組件。
請參閱圖1b,圖1b是本發(fā)明第一實施例提供的組件更新方法的流程示意圖。所述方法包括:
在步驟s101中,獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程。
在步驟s102中,基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息。
其中,所述步驟s101與步驟s102可具體為:
比如,每一組件內(nèi)部預(yù)先設(shè)置有更新線程,當(dāng)確定出組件需要更新時,該組件啟動其對應(yīng)的更新線程,并基于該更新線程實現(xiàn)對組件的更新。
可以理解的是,本實施例中,線程也被稱為輕量進程(lightweightprocesses),在計算機領(lǐng)域中,其是指運行中的程序的調(diào)度單位。線程是進程中的實體,一個進程可以擁有多個線程,一個線程必須有一個父進程。線程不擁有系統(tǒng)資源,只有運行必須的一些數(shù)據(jù)結(jié)構(gòu);它與父進程的其它線程共享該進程所擁有的全部資源。線程可以創(chuàng)建和撤消線程,從而實現(xiàn)程序的并發(fā)執(zhí)行。一般,線程具有就緒、阻塞和運行三種基本狀態(tài)。
進一步的,基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息可以包括:
步驟1、根據(jù)該預(yù)設(shè)更新線程,獲取相應(yīng)的預(yù)設(shè)時間間隔。
步驟2、按照該預(yù)設(shè)時間間隔,確定待更新組件的版本信息。
例如,該預(yù)設(shè)更新線程設(shè)置定時器,每隔預(yù)設(shè)時間間隔(如20分鐘或30分鐘等)觸發(fā)一次,當(dāng)定時器觸發(fā)時,確定待更新組件在本地的版本信息。
在步驟s103中,向服務(wù)器發(fā)送更新請求,該更新請求攜帶該版本信息。
在步驟s104中,當(dāng)服務(wù)器根據(jù)該更新請求確定待更新組件需要更新時,從服務(wù)器下載更新文件,并根據(jù)更新文件更新待更新組件。
其中,所述步驟s103與步驟s104可具體為:
可以理解的是,當(dāng)確定待更新組件在本地的版本信息之后,向服務(wù)器發(fā)送攜帶該版本信息的更新請求,從而可以根據(jù)該版本信息確定待更新組件是否需要更新。
例如,服務(wù)器接收到該更新請求后,先獲取該待更新組件的最新版本信息,將該最新版本信息與待更新組件在本地的版本信息進行比較,若該最新版本信息與待更新組件在本地的版本信息不一致,則可以確定待更新組件需要更新。
進一步的,在服務(wù)器確定出待更新組件需要更新時,發(fā)送通知信息,該通知信息指示需要對該待更新組件進行更新,進而,從服務(wù)器下載更新文件可以具體包括:
步驟a、接收服務(wù)器發(fā)送的指示需要更新的通知信息;
步驟b、根據(jù)該通知信息,從服務(wù)器下載更新文件。
例如,根據(jù)該通知信息的指示,從服務(wù)器中查找相應(yīng)的更新文件;其中,該更新文件可以是最新版本信息的組件整體對應(yīng)的更新文件,也可以是組件中需要更新的部分對應(yīng)的更新文件,此處不作具體限定。
本實施例中,根據(jù)更新文件更新待更新組件的方式可以有很多,比如,可以包括:
步驟a、將該更新文件拷貝至待更新組件所在目錄,生成新版本組件;
步驟b、在該新版本組件所在進程進行重新啟動后,加載該新版本組件;
步驟c、當(dāng)確定該新版本組件加載完成后,確定該新版本組件為更新后的待更新組件。
也就是說,在將更新文件拷貝至待更新組件所在目錄,生成新版本組件之后,還需要對該新版本組件所在進程(如所在的終端應(yīng)用等)進行重新啟動,并加載該新版本組件,當(dāng)確定該新版本組件加載完成后,則可以確定該待更新組件更新完畢。
更進一步的,在較為優(yōu)選的方式中,(步驟a中)將該更新文件拷貝至待更新組件所在目錄之前,還可以對各文件、組件進行命名,比如:
將該更新文件命名為第一標識信息,將待更新組件命名為第二標識信息。
基于此,在(步驟a中)生成新版本組件之后,還可以包括:根據(jù)前述第一標識信息和第二標識信息,對該新版本組件進行命名。
可具體的,比如,可以將該更新文件命名為“*.a.new”,將待更新組件命名為“*.a.old”,從而該新版本組件可以命名為“*.a”,以根據(jù)這些命名信息快速查找到對應(yīng)的文件/組件,便于該組件更新。
由上述可知,本發(fā)明實施例提供的組件更新方法,首先,獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程,然后基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息;接著,向服務(wù)器發(fā)送攜帶該版本信息更新請求,當(dāng)服務(wù)器根據(jù)該更新請求確定待更新組件需要更新時,下載更新文件,并根據(jù)該更新文件更新待更新組件。即本發(fā)明實施例中待更新組件內(nèi)部啟動相應(yīng)的更新線程,并基于該更新進程與服務(wù)器進行版本信息對比以及更新文件下載等,從而可自動加載完成組件的更新,相對于基于借助外在的升級進程對組件進行更新的方式,提高了組件更新的時效性,同時減少帶寬消耗。
第二實施例
根據(jù)第一實施例所描述的方法,以下將舉例作進一步詳細說明。
首先,設(shè)置組件更新裝置,該用于對組件進行更新的裝置可以集成在終端上,其次,設(shè)置服務(wù)器,該服務(wù)器用于在確定終端上的組件是否需要更新,當(dāng)確定需要更新時生成通知信息,以提醒組件更新裝置及時對組件進行更新。以下將進行詳細說明。
請參閱圖2,圖2為本發(fā)明第二實施例提供的組件更新方法的流程示意圖。所述方法包括:
在步驟s201中,終端控制組件啟動相應(yīng)的更新線程。
在步驟s202中,終端按照更新線程所指示的更新間隔,獲取組件的版本a。
其中,所述步驟s201與步驟s202可具體為:
比如,每一組件內(nèi)部都對應(yīng)設(shè)置自己的更新線程,其中,該更新線程中設(shè)置定時器,按設(shè)定的更新間隔觸發(fā),如每隔20分鐘、30分鐘觸發(fā)一次,等等;當(dāng)定時器觸發(fā),即更新間隔到達時,終端獲取組件的本地版本。
進一步的,比如,終端獲取本地組件的dll(dynamiclinklibrary,動態(tài)鏈接庫文件)的版本,為便于描述,本地組件dll的版本簡稱為版本a。
其中,dll文件又叫應(yīng)用程序拓展,是一種軟件文件類型,在windows中, 許多應(yīng)用程序并不是一個完整的可執(zhí)行文件,它們被分割成一些相對獨立的動態(tài)鏈接庫,即dll文件,放置于系統(tǒng)中。當(dāng)執(zhí)行某一個程序時,相應(yīng)的dll文件就會被調(diào)用。
在步驟s203中,終端向服務(wù)器發(fā)送更新請求,該更新請求攜帶版本a。
在步驟s204中,服務(wù)器接收該更新請求,獲取相應(yīng)組件的版本b。
在步驟s205中,服務(wù)器根據(jù)版本a和版本b,確定組件需要更新。
其中,所述步驟s203至步驟s205可具體為:
比如,服務(wù)器接收到該攜帶版本a的更新請求后,首先獲取相應(yīng)組件,其后檢測該組件最新dll版本,即更新時間最晚的版本,為便于描述,服務(wù)器上組件最新dll版本可簡稱為版本b。
假設(shè),版本a為“xxdll6.2”,版本b為“xxdll6.5”,因此,可認為版本b為版本a的最新更新版本,服務(wù)器確定相應(yīng)的組件需要更新。
在步驟s206中,服務(wù)器向終端發(fā)送通知信息。
在步驟s207中,終端接收該通知信息,并從服務(wù)器下載更新文件,得到更新后的組件。
在步驟s208中,終端在該組件所在進程進行重新啟動后,自動加載更新后的組件。
其中,所述步驟s206至步驟s208可具體為:
比如,當(dāng)服務(wù)器確定組件需要更新時,服務(wù)器向終端發(fā)送通知信息,以指示終端是否對組件進行更新;當(dāng)終端接收到該通知信息,即收到服務(wù)器回應(yīng)時,如果根據(jù)該通知信息知道需要更新組件,則可以使用超文本傳輸協(xié)議(http,hypertexttransferprotocol)從服務(wù)器下載更新文件。
進一步優(yōu)選的,下載的更新文件為最新版本dll文件,可以命名為“*.dll.new”,同時將本地的dll文件命名為“*.dll.old”;隨后,將“*.dll.new”拷貝到dll組件所在目錄,并將其重命名為“*.dll”。
需要說明的是,本發(fā)明實施例中,更新后的組件需要重啟后才能生效,比 如,終端在該dll組件所在進程進行重新啟動后,自動加載更新后的dll文件。
以組件a:xx瀏覽器服務(wù)程序與組件b:xbshellicon.dll的更新為例,之前這兩個組件的更新需要借助于瀏覽器的更新,與瀏覽器安裝包綁定;使用本發(fā)明提供的自更新方法后,組件a和組件b均可以靈活的配置升級,與瀏覽器安裝包解耦,在不需要瀏覽器重新發(fā)版的情況下,組件可以實現(xiàn)自更新,及時應(yīng)對各種變化,節(jié)約帶寬。
由上述可知,本發(fā)明實施例提供的組件更新方法,首先,獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程,然后基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息;接著,向服務(wù)器發(fā)送攜帶該版本信息更新請求,當(dāng)服務(wù)器根據(jù)該更新請求確定待更新組件需要更新時,下載更新文件,并根據(jù)該更新文件更新待更新組件。即本發(fā)明實施例中待更新組件內(nèi)部啟動相應(yīng)的更新線程,并基于該更新進程與服務(wù)器進行版本信息對比以及更新文件下載等,從而可自動加載完成組件的更新,也就是說,不需要借助其他進程,加載組件的進程自己就可以完成升級,更新前進程也不需要關(guān)閉,從而大大提高了組件更新的時效性,同時減少帶寬消耗。
第三實施例
為便于更好的實施本發(fā)明實施例提供的組件更新方法,本發(fā)明實施例還提供一種基于上述組件更新方法的裝置。其中名詞的含義與上述組件更新的方法中相同,具體實現(xiàn)細節(jié)可以參考方法實施例中的說明。
請參閱圖3,圖3為本發(fā)明實施例提供的組件更新裝置的結(jié)構(gòu)示意圖,其中所述組件更新裝置可以包括獲取單元301、確定單元302、發(fā)送單元303、下載單元304以及更新單元305;
其中,獲取單元301,用于獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程;確定單元302,用于基于所述預(yù)設(shè)更新線程,確定所述待更新組件的版本信息。
比如,每一組件內(nèi)部預(yù)先設(shè)置有更新線程,當(dāng)確定出組件需要更新時,該 組件啟動其對應(yīng)的更新線程,并基于該更新線程實現(xiàn)對組件的更新。
可以理解的是,本實施例中,線程也被稱為輕量進程,在計算機領(lǐng)域中,其是指運行中的程序的調(diào)度單位。線程是進程中的實體,一個進程可以擁有多個線程,一個線程必須有一個父進程。線程不擁有系統(tǒng)資源,只有運行必須的一些數(shù)據(jù)結(jié)構(gòu);它與父進程的其它線程共享該進程所擁有的全部資源。線程可以創(chuàng)建和撤消線程,從而實現(xiàn)程序的并發(fā)執(zhí)行。一般,線程具有就緒、阻塞和運行三種基本狀態(tài)。
進一步的,所述確定單元302可以包括:
獲取子單元,用于根據(jù)所述預(yù)設(shè)更新線程,獲取相應(yīng)的預(yù)設(shè)時間間隔;
確定子單元,用于按照所述預(yù)設(shè)時間間隔,確定所述待更新組件的版本信息。
例如,該預(yù)設(shè)更新線程設(shè)置定時器,每隔預(yù)設(shè)時間間隔(如20分鐘或30分鐘等)觸發(fā)一次,當(dāng)定時器觸發(fā)時,確定待更新組件在本地的版本信息。
其后,發(fā)送單元303,用于向服務(wù)器發(fā)送更新請求,所述更新請求攜帶所述版本信息;下載單元304,用于當(dāng)所述服務(wù)器根據(jù)所述更新請求確定所述待更新組件需要更新時,從所述服務(wù)器下載更新文件;更新單元305,用于根據(jù)所述更新文件更新所述待更新組件。
可以理解的是,當(dāng)確定待更新組件在本地的版本信息之后,向服務(wù)器發(fā)送攜帶該版本信息的更新請求,從而可以根據(jù)該版本信息確定待更新組件是否需要更新。
例如,服務(wù)器接收到該更新請求后,先獲取該待更新組件的最新版本信息,將該最新版本信息與待更新組件在本地的版本信息進行比較,若該最新版本信息與待更新組件在本地的版本信息不一致,則可以確定待更新組件需要更新。
進一步的,在服務(wù)器確定出待更新組件需要更新時,發(fā)送通知信息,該通知信息指示需要對該待更新組件進行更新,進而,所述下載單元304可以包括:
接收子單元,用于接收所述服務(wù)器發(fā)送的指示需要更新的通知信息;
下載子單元,用于根據(jù)所述通知信息,從所述服務(wù)器下載更新文件。
例如,根據(jù)該通知信息的指示,從服務(wù)器中查找相應(yīng)的更新文件;其中,該更新文件可以是最新版本信息的組件整體對應(yīng)的更新文件,也可以是組件中需要更新的部分對應(yīng)的更新文件,此處不作具體限定。
本實施例中,根據(jù)更新文件更新待更新組件的方式可以有很多,比如,所述更新單元305可以包括:
生成子單元,用于將所述更新文件拷貝至所述待更新組件所在目錄,生成新版本組件;
加載子單元,用于在所述新版本組件所在進程進行重新啟動后,加載所述新版本組件;
更新確定子單元,用于當(dāng)確定所述新版本組件加載完成后,確定所述新版本組件為更新后的待更新組件。
也就是說,在將更新文件拷貝至待更新組件所在目錄,生成新版本組件之后,還需要對該新版本組件所在進程(如所在的終端應(yīng)用等)進行重新啟動,并加載該新版本組件,當(dāng)確定該新版本組件加載完成后,則可以確定該待更新組件更新完畢。
更進一步的,在較為優(yōu)選的方式中,將該更新文件拷貝至待更新組件所在目錄之前,還可以對各文件、組件進行命名,基于此,所述裝置還可以包括:
命名單元,用于將所述更新文件命名為第一標識信息,將所述待更新組件命名為第二標識信息;在所述生成子單元生成新版本組件之后,根據(jù)所述第一標識信息和所述第二標識信息,對所述新版本組件進行命名。
可具體的,比如,可以將該更新文件命名為“*.a.new”,將待更新組件命名為“*.a.old”,從而該新版本組件可以命名為“*.a”,以根據(jù)這些命名信息快速查找到對應(yīng)的文件/組件,便于該組件更新。
具體實施時,以上各個單元可以作為獨立的實體來實現(xiàn),也可以進行任意組合,作為同一或若干個實體來實現(xiàn),以上各個單元的具體實施可參見前面的 方法實施例,在此不再贅述。
該組件更新裝置具體可以集成在終端上,該終端可以是手機、平板電腦等具有存儲單元并安裝有微處理器而具有運算能力的終端機。
由上述可知,本發(fā)明實施例提供的組件更新裝置,首先,獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程,然后基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息;接著,向服務(wù)器發(fā)送攜帶該版本信息更新請求,當(dāng)服務(wù)器根據(jù)該更新請求確定待更新組件需要更新時,下載更新文件,并根據(jù)該更新文件更新待更新組件。即本發(fā)明實施例中待更新組件內(nèi)部啟動相應(yīng)的更新線程,并基于該更新進程與服務(wù)器進行版本信息對比以及更新文件下載等,從而可自動加載完成組件的更新,相對于基于借助外在的升級進程對組件進行更新的方式,提高了組件更新的時效性,同時減少帶寬消耗。
第四實施例
請參考圖4,圖4為本發(fā)明實施例提供的一種電子設(shè)備,可以用于實施上述實施例中提供的組件更新方法。具體如下:
電子設(shè)備400包括處理器(cpu)401、包括隨機存取存儲器(ram)402和只讀存儲器(rom)403的系統(tǒng)存儲器404,以及連接系統(tǒng)存儲器404和處理器401的系統(tǒng)總線405。所述電子設(shè)備400還包括幫助計算機內(nèi)的各個器件之間傳輸信息的基本輸入/輸出系統(tǒng)(i/o系統(tǒng))406,和用于存儲操作系統(tǒng)413、應(yīng)用程序414和其他程序模塊415的大容量存儲設(shè)備407。
所述電子設(shè)備400包括處理器(cpu)401、包括隨機存取存儲器(ram)402和只讀存儲器(rom)403的系統(tǒng)存儲器404,以及連接系統(tǒng)存儲器404和處理器401的系統(tǒng)總線405。所述電子設(shè)備400還包括幫助計算機內(nèi)的各個器件之間傳輸信息的基本輸入/輸出系統(tǒng)(i/o系統(tǒng))406,和用于存儲操作系統(tǒng)413、應(yīng)用程序414和其他程序模塊415的大容量存儲設(shè)備407。
所述基本輸入/輸出系統(tǒng)406包括有用于顯示信息的顯示器408和用于用 戶輸入信息的諸如鼠標、鍵盤之類的輸入設(shè)備409。其中所述顯示器408和輸入設(shè)備409都通過連接到系統(tǒng)總線405的輸入輸出控制器410連接到處理器401。所述基本輸入/輸出系統(tǒng)406還可以包括輸入輸出控制器410以用于接收和處理來自鍵盤、鼠標、或電子觸控筆等多個其他設(shè)備的輸入。類似地,輸入輸出控制器410還提供輸出到顯示屏、打印機或其他類型的輸出設(shè)備。
所述大容量存儲設(shè)備407通過連接到系統(tǒng)總線405的大容量存儲控制器(未示出)連接到處理器401。所述大容量存儲設(shè)備407及其相關(guān)聯(lián)的計算機可讀介質(zhì)為客戶端設(shè)備400提供非易失性存儲。也就是說,所述大容量存儲設(shè)備407可以包括諸如硬盤或者cd-rom驅(qū)動器之類的計算機可讀介質(zhì)(未示出)。
不失一般性,所述計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括ram、rom、eprom、eeprom、閃存或其他固態(tài)存儲其技術(shù),cd-rom、dvd或其他光學(xué)存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設(shè)備。當(dāng)然,本領(lǐng)域技術(shù)人員可知所述計算機存儲介質(zhì)不局限于上述幾種。上述的系統(tǒng)存儲器404和大容量存儲設(shè)備407可以統(tǒng)稱為存儲器。
根據(jù)本發(fā)明的各種實施例,所述電子設(shè)備400還可以通過諸如因特網(wǎng)等網(wǎng)絡(luò)連接到網(wǎng)絡(luò)上的遠程計算機運行。也即電子設(shè)備400可以通過連接在所述系統(tǒng)總線405上的網(wǎng)絡(luò)接口單元411連接到網(wǎng)絡(luò)412,或者說,也可以使用網(wǎng)絡(luò)接口單元411來連接到其他類型的網(wǎng)絡(luò)或遠程計算機系統(tǒng)(未示出)。
所述存儲器還包括一個或者一個以上的模塊,所述一個或者一個以上模塊存儲于存儲器中,且被配置由一個或多個處理器401執(zhí)行,所述一個或多個模塊具有如下功能:
獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程;基于所述預(yù)設(shè)更新線程, 確定所述待更新組件的版本信息;向服務(wù)器發(fā)送更新請求,所述更新請求攜帶所述版本信息;當(dāng)所述服務(wù)器根據(jù)所述更新請求確定所述待更新組件需要更新時,從所述服務(wù)器下載更新文件,并根據(jù)所述更新文件更新所述待更新組件。
可選的,所述一個或多個模塊還具有如下功能:
根據(jù)所述預(yù)設(shè)更新線程,獲取相應(yīng)的預(yù)設(shè)時間間隔;按照所述預(yù)設(shè)時間間隔,確定所述待更新組件的版本信息。
可選的,所述一個或多個模塊還具有如下功能:
接收所述服務(wù)器發(fā)送的指示需要更新的通知信息;根據(jù)所述通知信息,從所述服務(wù)器下載更新文件。
可選的,所述一個或多個模塊還具有如下功能:
將所述更新文件拷貝至所述待更新組件所在目錄,生成新版本組件;在所述新版本組件所在進程進行重新啟動后,加載所述新版本組件;當(dāng)確定所述新版本組件加載完成后,確定所述新版本組件為更新后的待更新組件。
可選的,所述一個或多個模塊還具有如下功能:
將所述更新文件命名為第一標識信息;將所述待更新組件命名為第二標識信息;所述生成新版本組件之后,還包括:根據(jù)所述第一標識信息和所述第二標識信息,對所述新版本組件進行命名。
由上述可知,本發(fā)明實施例提供的電子設(shè)備中,首先,獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程,然后基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息;接著,向服務(wù)器發(fā)送攜帶該版本信息更新請求,當(dāng)服務(wù)器根據(jù)該更新請求確定待更新組件需要更新時,下載更新文件,并根據(jù)該更新文件更新待更新組件。即本發(fā)明實施例中待更新組件內(nèi)部啟動相應(yīng)的更新線程,并基于該更新進程與服務(wù)器進行版本信息對比以及更新文件下載等,從而可自動加載完成組件的更新,相對于基于借助外在的升級進程對組件進行更新的方式,提高了組件更新的時效性,同時減少帶寬消耗。
第五實施例
本發(fā)明實施例還提供一種基于上述組件更新方法的系統(tǒng)。其中名詞的含義與上述組件更新的方法中相同,具體實現(xiàn)細節(jié)可以參考方法實施例中的說明。
請參閱圖5,圖5為本發(fā)明實施例提供的組件更新系統(tǒng)500的結(jié)構(gòu)示意圖,其中所述組件更新系統(tǒng)500可以包括服務(wù)器501、以及如第三實施例提供的組件更新裝置502;
其中組件更新裝置502,主要用于獲取本地的待更新組件相對應(yīng)的預(yù)設(shè)更新線程;基于該預(yù)設(shè)更新線程,確定待更新組件的版本信息;向服務(wù)器發(fā)送更新請求,該更新請求攜帶該版本信息;當(dāng)服務(wù)器根據(jù)該更新請求確定所述待更新組件需要更新時,從服務(wù)器下載更新文件,并根據(jù)更新文件更新待更新組件。
服務(wù)器501,用于接收所述組件更新裝置發(fā)送的更新請求,所述更新請求攜帶待更新組件的版本信息,根據(jù)所述版本信息確定所述待更新組件需要更新時,向所述組件更新裝置發(fā)送通知信息,以使所述組件更新裝置更新所述待更新組件。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見上文針對組件更新方法的詳細描述,此處不再贅述。
本發(fā)明實施例提供的所述組件更新裝置,譬如為計算機、平板電腦、具有觸摸功能的手機等等,所述組件更新裝置與上文實施例中的組件更新方法屬于同一構(gòu)思,在所述組件更新裝置上可以運行所述組件更新方法實施例中提供的任一方法,其具體實現(xiàn)過程詳見所述組件更新方法實施例,此處不再贅述。
需要說明的是,對本發(fā)明所述組件更新方法而言,本領(lǐng)域普通測試人員可以理解實現(xiàn)本發(fā)明實施例所述組件更新方法的全部或部分流程,是可以通過計算機程序來控制相關(guān)的硬件來完成,所述計算機程序可存儲于一計算機可讀取存儲介質(zhì)中,如存儲在終端的存儲器中,并被該終端內(nèi)的至少一個處理器執(zhí)行,在執(zhí)行過程中可包括如所述組件更新方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲器、隨機存取記憶體等。
對本發(fā)明實施例的所述組件更新裝置而言,其各功能模塊可以集成在一個處理芯片中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中,所述存儲介質(zhì)譬如為只讀存儲器,磁盤或光盤等。
以上對本發(fā)明實施例所提供的一種組件更新方法、裝置和系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。