專利名稱:實(shí)現(xiàn)軟件升級(jí)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件升級(jí)技術(shù),更具體地說,涉及一種實(shí)現(xiàn)軟件升級(jí)的方法。
背景技術(shù):
軟件升級(jí)主要通過客戶端/服務(wù)器(client/server,簡(jiǎn)稱CS)的方式實(shí)現(xiàn)遠(yuǎn)程升級(jí),主要是將最新版本的軟件升級(jí)數(shù)據(jù)庫存放在下載服務(wù)器上,客戶端用戶通過互聯(lián)網(wǎng)采用HTTP(超連接傳輸協(xié)議)或FTP(文件傳輸協(xié)議)的方式直接從服務(wù)器上下載所需的升級(jí)數(shù)據(jù)。
目前,即時(shí)通訊軟件(Instant Messenger,簡(jiǎn)稱IM)(如QQ/TM)客戶端的升級(jí)流程主要通過如下步驟來完成(如圖1所示)S1.消息服務(wù)器獲取即時(shí)通訊軟件客戶端的上線情況,包括該客戶端即時(shí)通訊軟件的號(hào)碼、IP地址以及版本號(hào),然后消息服務(wù)器對(duì)需要升級(jí)的客戶端即時(shí)通訊軟件發(fā)送升級(jí)消息,提示用戶檢測(cè)到可以升級(jí)的版本,并詢問用戶是否需要升級(jí);S2.如果用戶需要升級(jí),則點(diǎn)擊確定,然后自動(dòng)和信息服務(wù)器建立HTTP鏈接,從信息服務(wù)器獲取最新升級(jí)程序和對(duì)應(yīng)版本升級(jí)壓縮包的信息;S3.如果用戶的升級(jí)程序需要更新,則從下載服務(wù)器上下載最新的升級(jí)程序;然后從下載服務(wù)器下載升級(jí)壓縮包S4.客戶端本地運(yùn)行升級(jí)程序,并將該升級(jí)壓縮包進(jìn)行解壓縮,例如覆蓋原有文件等等。至此,即時(shí)通訊軟件升級(jí)完成。
由于目前的即時(shí)通訊軟件已經(jīng)發(fā)布了很多版本,所有往往同一時(shí)期存在數(shù)個(gè)不同版本的即時(shí)通訊軟件在客戶端運(yùn)行。但由于現(xiàn)有的即時(shí)通訊軟件一般采取模塊化方式開發(fā),各個(gè)功能部分都以模塊化方式集成,因此各個(gè)模塊的開發(fā)進(jìn)度以及升級(jí)版本都很難做到步調(diào)一致,統(tǒng)一將所有模塊進(jìn)行升級(jí)幾乎是不可能的。如果針對(duì)不同版本、不同模塊搭建不同的服務(wù)器來解決上述問題,雖然是可行的,但是這樣勢(shì)必會(huì)造成服務(wù)器硬件資源的大量占用,降低了使用效率,同時(shí)也加大了工作人員進(jìn)行升級(jí)信息修改的工作量。
因此,現(xiàn)有技術(shù)方案都存在以下缺點(diǎn)(1)占用的資源比較龐大,需要三種類型的服務(wù)器,降低整個(gè)系統(tǒng)的經(jīng)濟(jì)效率與使用效率;(2)對(duì)多版本支持度不夠,而且涉及到的服務(wù)器類型比較多,中間流程比較復(fù)雜,造成出現(xiàn)工作瓶頸的地方比較多,數(shù)據(jù)進(jìn)行多次傳遞也往往會(huì)更容易丟失;(3)造成服務(wù)器端請(qǐng)求大量聚集,從而導(dǎo)致很多請(qǐng)求無法滿足,引起升級(jí)失敗,直接影響用戶體驗(yàn)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種通過客戶端軟件自動(dòng)進(jìn)行升級(jí)的方法,能夠簡(jiǎn)化原有升級(jí)系統(tǒng),降低客戶端與多個(gè)服務(wù)器進(jìn)行通訊的次數(shù),減少出現(xiàn)升級(jí)失敗的可能環(huán)節(jié)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是構(gòu)造一種實(shí)現(xiàn)軟件升級(jí)的方法,該方法包括以下步驟a.判斷預(yù)定網(wǎng)頁上的腳本程序是否生成控件的對(duì)象實(shí)例;b.如果沒有生成,則提供下載鏈接并提示用戶下載,如果生成,則執(zhí)行步驟c;c.判斷調(diào)用所述生成對(duì)象實(shí)例的函數(shù)接口是否能獲取軟件的版本號(hào),如果能獲取,則執(zhí)行步驟d,如果不能獲取,則提供下載鏈接并提示用戶下載;d.根據(jù)該版本號(hào)判斷是否需要升級(jí),如果需要,則通過運(yùn)行所述軟件的升級(jí)程序從下載服務(wù)器下載升級(jí)壓縮包。
在本發(fā)明所述的方法中,如果所述軟件沒有升級(jí)程序,所述步驟d還包括d1.提供下載鏈接并提示用戶下載升級(jí)程序;d2.接收到用戶點(diǎn)擊所述鏈接后下載所述升級(jí)程序,并通過運(yùn)行所述升級(jí)程序從下載服務(wù)器下載升級(jí)壓縮包。
在本發(fā)明所述的方法中,在所述步驟a中,所述預(yù)定網(wǎng)頁是指嵌入能獲取軟件客戶端的版本號(hào)以及確定升級(jí)策略的腳本程序的網(wǎng)頁。
在本發(fā)明所述的方法中,在所述步驟a中,所述控件是在進(jìn)行安裝軟件程序時(shí)注冊(cè)的,并在每次啟動(dòng)軟件時(shí)都作重新更新注冊(cè)。
在本發(fā)明所述的方法中,在所述步驟d中,所述升級(jí)程序包括升級(jí)壓縮包下載地址、升級(jí)壓縮包的大小以及HASH值。
在本發(fā)明所述的方法中,所述步驟d還包括對(duì)從所述下載服務(wù)器所下載的升級(jí)壓縮包的大小與HASH進(jìn)行校驗(yàn)的步驟。
在本發(fā)明所述的方法中,,所述控件是指Activex控件。
在本發(fā)明所述的方法中,所述腳本程序是指JaveScript腳本程序。
在本發(fā)明所述的方法中,所述軟件是即時(shí)通信軟件。
本發(fā)明的有益效果是(1)能簡(jiǎn)化原有升級(jí)系統(tǒng),降低客戶端與多個(gè)服務(wù)器進(jìn)行通訊的次數(shù),減少出現(xiàn)升級(jí)失敗的可能環(huán)節(jié)。
(2)因?yàn)橛脩舸蜷_網(wǎng)頁時(shí)機(jī)不同,所以可以分散用戶的升級(jí)分布,更有效率的利用服務(wù)器,緩解在特定時(shí)間過于擁擠的請(qǐng)求服務(wù)的問題。
(3)有的工作遷移到容易修改的web頁面來完成,這樣便于調(diào)控,方便測(cè)試,可以更迅速的完成相應(yīng)工作。
(4)不需要用戶運(yùn)行客戶端軟件就可以進(jìn)行升級(jí)完畢,減少用戶操作步驟。
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中圖1是現(xiàn)有技術(shù)實(shí)現(xiàn)軟件升級(jí)流程的示例圖;圖2是本發(fā)明客戶端實(shí)現(xiàn)軟件升級(jí)的流程圖。
具體實(shí)施例方式
ActiveX組件技術(shù)是Microsoft對(duì)于一系列策略性面向?qū)ο蟪绦蚣夹g(shù)和工具的稱呼,其中主要的技術(shù)是組件對(duì)象模型。組件作為腳本和基于Web應(yīng)用程序的基本構(gòu)造塊,可以提供一個(gè)或多個(gè)對(duì)象以及對(duì)象的方法和屬性。ActiveX組件是一個(gè)文件,該文件包含執(zhí)行某項(xiàng)或一組任務(wù)的代碼,它一般被包含在動(dòng)態(tài)鏈接庫(.dll)或可執(zhí)行文件(.exe)中。組件的一大優(yōu)點(diǎn)就是可以被大多數(shù)應(yīng)用程序再使用(這些應(yīng)用程序稱為組件容器)。一個(gè)ActiveX控件可由不同語言的開發(fā)工具開發(fā)。
JavaScript語言的前身叫作Livescript。自從Sun公司推出著名的Java語言之后,Netscape公司引進(jìn)了Sun公司有關(guān)Java的程序概念,將自己原有的Livescript重新進(jìn)行設(shè)計(jì),并改名為JavaScript。JavaScript是一種基于對(duì)象和事件驅(qū)動(dòng)并具有安全性能的解釋性編程語言,與HTML超文本標(biāo)識(shí)語言、Java腳本語言一起實(shí)現(xiàn)在一個(gè)網(wǎng)頁中鏈接多個(gè)對(duì)象,與網(wǎng)絡(luò)客戶交互作用,從而可以開發(fā)客戶端的應(yīng)用程序,它是通過嵌入或調(diào)入在標(biāo)準(zhǔn)的HTML語言中實(shí)現(xiàn)的。可以被內(nèi)置于HTML頁面中由瀏覽器或客戶端機(jī)器解釋,它也可以運(yùn)行在服務(wù)器端,不過出于緩解服務(wù)器的壓力,更多的應(yīng)用于客戶端機(jī)器上。下面以即時(shí)通訊軟件的升級(jí)為例進(jìn)行說明,但本發(fā)明并不限于即時(shí)通訊軟件。
圖3是基于ActiveX控件和JavaScript語言實(shí)現(xiàn)即時(shí)通訊軟件升級(jí)的流程圖,如圖所示,當(dāng)客戶端瀏覽相關(guān)網(wǎng)頁(步驟200中),首先判斷網(wǎng)頁上的JavaScript程序是否生成所需要的ActiveX控件對(duì)象實(shí)例(步驟202中),如果這個(gè)對(duì)象實(shí)例無法生成,表明此客戶端不存在即時(shí)通訊軟件,這時(shí)頁面會(huì)出現(xiàn)讓用戶下載即時(shí)通訊軟件的提示信息和下載鏈接(步驟204中)。如果這個(gè)對(duì)象實(shí)例可以生成,則判斷是否能調(diào)用客戶端即時(shí)通訊軟件的Activex控件所提供的函數(shù)接口(步驟206中),該Activex控件是在即時(shí)通訊軟件安裝程序進(jìn)行安裝的時(shí)候注冊(cè)的,在即時(shí)通訊軟件每次啟動(dòng)時(shí)也會(huì)將本目錄下的這個(gè)動(dòng)態(tài)鏈接庫重新注冊(cè)一遍,例如可表示為var cpAdder=new ActiveXObject(“external_name”),external_name為外部調(diào)用該Activex控件時(shí)所使用的文件名,cpAdder則可以調(diào)用實(shí)例所提供的函數(shù)接口cpAdder.GetLastQQVersion()來獲得即時(shí)通訊軟件版本號(hào)。如果通過這個(gè)函數(shù)接口無法獲得版本號(hào),則表示用戶已使用的版本過久,也需要升級(jí)并提供下載鏈接和提示用戶下載(步驟208中),如果通過這個(gè)方法可以獲得版本號(hào)(步驟210中),則判斷軟件版本是否需要升級(jí)(步驟212中),如果不需要,則提示用戶已使用最新的軟件版本(步驟214中),如果需要,則根據(jù)各個(gè)版本號(hào)所對(duì)應(yīng)的升級(jí)策略,該升級(jí)策略包含有需要升級(jí)的升級(jí)程序的鏈接地址等信息,并通過將網(wǎng)頁上的style.display=″none″修改為style.display=″″來顯示出來(步驟216中),用戶根據(jù)網(wǎng)頁顯示出來的鏈接地址下載自動(dòng)升級(jí)程序(步驟218中),該升級(jí)程序中已經(jīng)包含了上述升級(jí)策略中寫在信息服務(wù)器中的升級(jí)壓縮包的下載地址和升級(jí)壓縮包的尺寸大小,HASH值等信息,并點(diǎn)擊該升級(jí)程序進(jìn)行升級(jí),該升級(jí)程序會(huì)自動(dòng)從上述下載地址下載升級(jí)壓縮包,并根據(jù)升級(jí)壓縮包的尺寸大小,HASH等值進(jìn)行校驗(yàn),然后將該升級(jí)壓縮包進(jìn)行解壓縮,例如覆蓋原有文件等等。升級(jí)工作完全在用戶機(jī)器上進(jìn)行,至此,即時(shí)通訊軟件升級(jí)流程完成(步驟220中)。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種實(shí)現(xiàn)軟件升級(jí)的方法,其特征在于,包括以下步驟a.判斷預(yù)定網(wǎng)頁上的腳本程序是否生成控件的對(duì)象實(shí)例;b.如果沒有生成,則提供下載鏈接并提示用戶下載,如果生成,則執(zhí)行步驟c;c.判斷調(diào)用所述生成對(duì)象實(shí)例的函數(shù)接口是否能獲取軟件的版本號(hào),如果能獲取,則執(zhí)行步驟d,如果不能獲取,則提供下載鏈接并提示用戶下載;d.根據(jù)該版本號(hào)判斷是否需要升級(jí),如果需要,則通過運(yùn)行所述軟件的升級(jí)程序從下載服務(wù)器下載升級(jí)壓縮包。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,如果所述軟件沒有升級(jí)程序,所述步驟d還包括d1.提供下載鏈接并提示用戶下載升級(jí)程序;d2.接收到用戶點(diǎn)擊所述鏈接后下載所述升級(jí)程序,并通過運(yùn)行所述升級(jí)程序從下載服務(wù)器下載升級(jí)壓縮包。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟a中,所述預(yù)定網(wǎng)頁是指嵌入能獲取軟件客戶端的版本號(hào)以及確定升級(jí)策略的腳本程序的網(wǎng)頁。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟a中,所述控件是在進(jìn)行安裝軟件程序時(shí)注冊(cè)的,并在每次啟動(dòng)軟件時(shí)都作重新更新注冊(cè)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟d中,所述升級(jí)程序包括升級(jí)壓縮包下載地址、升級(jí)壓縮包的大小以及HASH值。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟d還包括對(duì)從所述下載服務(wù)器所下載的升級(jí)壓縮包的大小與HASH進(jìn)行校驗(yàn)的步驟。
7.根據(jù)權(quán)利要求4任意一項(xiàng)所述的方法,其特征在于,所述控件是指Activex控件。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述腳本程序是指JaveScript腳本程序。
9.根據(jù)權(quán)利要求1-8任意一項(xiàng)所述的方法,其特征在于,所述軟件是即時(shí)通信軟件。
全文摘要
本發(fā)明涉及一種實(shí)現(xiàn)軟件升級(jí)的方法,包括a.判斷預(yù)定網(wǎng)頁上的腳本程序是否生成控件的對(duì)象實(shí)例;b.如果沒有生成,則提供下載鏈接并提示用戶下載,如果生成,則執(zhí)行步驟c;c.判斷調(diào)用所述生成對(duì)象實(shí)例的函數(shù)接口是否能獲取軟件的版本號(hào),如果能獲取,則執(zhí)行步驟d,如果不能獲取,則提供下載鏈接并提示用戶下載;d.根據(jù)該版本號(hào)判斷是否需要升級(jí),如果需要,則通過運(yùn)行所述軟件的升級(jí)程序從下載服務(wù)器下載升級(jí)壓縮包。本發(fā)明能簡(jiǎn)化原有升級(jí)系統(tǒng),降低客戶端與多個(gè)服務(wù)器進(jìn)行通訊的次數(shù),減少出現(xiàn)升級(jí)失敗的可能環(huán)節(jié)。
文檔編號(hào)H04L12/00GK1991757SQ200510121478
公開日2007年7月4日 申請(qǐng)日期2005年12月28日 優(yōu)先權(quán)日2005年12月28日
發(fā)明者楊謙, 岳上 申請(qǐng)人:騰訊科技(深圳)有限公司