專利名稱:一種基于網(wǎng)絡(luò)服務(wù)的客戶端自動(dòng)升級框架及其應(yīng)用的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)升級技術(shù),尤其是一種客戶端程序種類繁多復(fù)雜的軟件產(chǎn)品進(jìn)行自動(dòng)升級的框架及其方法。
背景技術(shù):
計(jì)算機(jī)軟件應(yīng)用中通過光盤或安裝程序發(fā)布的窗體應(yīng)用程序或客戶端系統(tǒng),在版本升級中由于需要在每個(gè)客戶端通過光盤分別單獨(dú)進(jìn)行升級,因此存在較多的困難。而采用C/S結(jié)構(gòu)設(shè)計(jì)開發(fā)的軟件系統(tǒng)相對于通過光盤安裝的程序,由于Microsoft在其.NET平臺(tái)上提供了 Smart Client技術(shù),因此即便在客戶端程序更新時(shí),服務(wù)器端也需要到每個(gè)用戶的機(jī)子上去部署,但這也比客戶端通過光盤分別單獨(dú)升級便利。這種升級方式具有啟動(dòng)前更新或啟動(dòng)后更新即下次運(yùn)行時(shí)安裝兩種模式,但使用時(shí)客戶端需要證書,也不能在下載前做文件壓縮處理,不可指定客戶端文件安裝路徑,只能針對.NET程序集,不能發(fā)布部署其它類型的文件,如數(shù)據(jù)庫文件、非程序集文件等,因此缺乏應(yīng)用靈活性,同時(shí)也存在下載占寬帶、安裝花時(shí)間和使用時(shí)占用本地資源的缺點(diǎn)。FTP文件服務(wù)器升級模式作為一個(gè)較早的軟件自動(dòng)升級模式,曾經(jīng)被采用,該模式通過架設(shè)升級的FTP服務(wù)器來處理客戶端的升級請求,從而完成升級過程。但是FTP的升級模式需要配置給每個(gè)客戶端一個(gè)升級賬號(hào),以連接到FTP服務(wù)器,這種方式不方便大用戶量的軟件升級管理。而且FTP是一個(gè)公開使用的標(biāo)準(zhǔn),因此,如果采用通用的傳輸方法, 則對于需要安全加密傳輸?shù)膬?nèi)容將起不到很好的保密作用。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決C/S模式下的客戶端升級效率低的問題,提供一種C/S 系統(tǒng)自動(dòng)升級處理框架及方法。與原有的Smart Client升級、FTP文件服務(wù)器升級相比具有更高的升級效率。本發(fā)明的一種基于Webservice的客戶端自動(dòng)升級框架,其特征在于該框架包括 一個(gè)定制的派生類文件,包括壓縮文件方法和文件處理方法;
一個(gè)Webservice服務(wù),用以調(diào)用準(zhǔn)備好的服務(wù)器方法,該方法是編程語言編寫的方法,存放于服務(wù)器端,用于處理客戶端與服務(wù)器端的連接請求以及處理客戶端的連接請求;
一個(gè)編制的升級文件清單,文件存放于服務(wù)器端,定義服務(wù)器端的升級內(nèi)容,文件存放的文件夾以及這些文件的名稱。其中,文件壓縮方法定義包括 None:不壓縮處理,是默認(rèn)方式;
GZip:使用· NET 的 GZipCompress 組件壓縮; Deflate:使用 DeflateCompress 組件壓縮; Custom:使用定制的數(shù)據(jù)壓縮處理方法。
文件處理方法定義則包括
Override:覆蓋或增加,無論客戶端是否存在該文件,強(qiáng)制覆蓋; NewFile:客戶端不存時(shí)下載該文件,用于新發(fā)布文件;
Version:先比較程序集,如果非程序集則比較文件版本,否則該配置項(xiàng)無效,是默認(rèn)升級方式。本發(fā)明框架的具體應(yīng)用步驟為
(1)客戶端程序啟動(dòng)自動(dòng)升級模塊后,將調(diào)用Webservice代理類檢測服務(wù)器端的升級文件清單;
(2)根據(jù)升級文件清單比較本地的同名文件,確定哪些文件需要下載更新,并按照定制的派生類文件的內(nèi)容進(jìn)行文件下載處理;
(3)按照升級文件清單所定義,使用別名保存下載的升級文件到客戶端的相應(yīng)文件夾
下;
(4)升級過程完成后,根據(jù)自動(dòng)升級模塊定義進(jìn)行后期處理及退出。自動(dòng)升級模塊是按照本發(fā)明所提供的標(biāo)準(zhǔn)接口和協(xié)議,針對實(shí)際情況進(jìn)行定制開發(fā)的。自動(dòng)升級模塊按照本發(fā)明框架所使用的標(biāo)準(zhǔn)接口和協(xié)議開發(fā)完成后,與軟件主程序一同部署到客戶端,根據(jù)定制開發(fā)的需求,自動(dòng)升級模塊根據(jù)需求適時(shí)的啟動(dòng),通過定義好的接口,按照協(xié)議與本發(fā)明的框架進(jìn)行通信,進(jìn)入自動(dòng)升級過程,并在升級完成后,根據(jù)需求進(jìn)行后期處理及退出。在本發(fā)明中,派生類文件的文件處理方法可指定多種升級方式,版本比較,包括程序集版本或文件版本、文件覆蓋或新加文件。如果源文件或程序集版本比服務(wù)器升級文件清單中的版本低,則升級;如果選擇文件覆蓋,則直接替換原有的客戶端程序文件,如果選擇新加文件,則在相應(yīng)的文件路徑后面追加服務(wù)器下載過來的新文件,實(shí)現(xiàn)靈活的文件更新、升級操作。壓縮處理方法則可使用GzipStream/DeflateStream壓縮文件,也能定制自己的文件壓縮算法,在網(wǎng)絡(luò)寬帶較為緊張的環(huán)境之中,可以提高傳輸?shù)目煽啃?、安全性,?jié)省帶寬,以及客戶端、服務(wù)器端的物理資源。文件清單則可指定客戶端文件,在升級文件清單中可以指定客戶端文件的安裝文件夾,能夠細(xì)致的控制每一個(gè)更新升級的目標(biāo)文件,以及他們的存放地址,做到可控性最大,保障復(fù)雜情況下的系統(tǒng)升級和更新。本發(fā)明的框架使用了獨(dú)立性的應(yīng)用框架結(jié)構(gòu),獨(dú)立的基于Webservice升級文件服務(wù)器,獨(dú)立的登錄認(rèn)證方式,獨(dú)立的客戶端應(yīng)用類型,可以應(yīng)用于各種類型的客戶端應(yīng)用系統(tǒng),包含但不限于桌面客戶端應(yīng)用系統(tǒng)、移動(dòng)設(shè)備客戶端應(yīng)用系統(tǒng)以及嵌入式客戶端應(yīng)用系統(tǒng)。本發(fā)明旨在為軟件自動(dòng)升級建立一套標(biāo)準(zhǔn)的、完整的框架,該框架規(guī)范了各類接口的標(biāo)準(zhǔn)和使用方式,讓軟件升級的過程能夠自動(dòng)化、智能化以及簡單化。在本發(fā)明中,使用了可擴(kuò)展讀寫文件方法,通過重寫服務(wù)器端與客戶端方法,可以擴(kuò)展升級文件的讀寫行為,如新建文件夾,重命名舊文件為新文件添加只讀屬性等操作。并使用了可擴(kuò)展壓縮處理方法,壓縮方法類的讀寫文件方法全部是protected virtual,均可以重寫??梢愿鶕?jù)客戶的需求,重新定義或者新增壓縮算法,適應(yīng)各類業(yè)務(wù)場景的需求,保持本發(fā)明的靈活性和可擴(kuò)展性。本發(fā)明的框架如一個(gè)供水管道系統(tǒng),水源則為我們的升級服務(wù)器,用水者就是我們的客戶端,無論是什么樣的水源,水庫水、河水、地下水、雨水等,也無論是什么樣的用水者,工廠、農(nóng)產(chǎn)、田地、普通生活者等,本發(fā)明均能將水從源頭送到用水者處,它不依賴于水源或者用水者。本發(fā)明是一個(gè)介于服務(wù)端和客戶端中間的一座橋梁,無論服務(wù)端提供的內(nèi)容是什么類型的,無論客戶端是如何使用的,本發(fā)明均能為兩者之間的溝通搭建方便的渠道,不依賴于服務(wù)端或者客戶端具體的形式。
圖1是框架的類層次結(jié)構(gòu)圖。圖2是本發(fā)明框架應(yīng)用流程圖。
具體實(shí)施例方式實(shí)施例1 一種選礦工藝設(shè)計(jì)系統(tǒng),該系統(tǒng)基于Webservice的客戶端自動(dòng)升級框架進(jìn)行升級更新。在本次升級中,需要對系統(tǒng)的主程序文件MainForm. exe以及程序的一個(gè)圖片文件Logo, ico進(jìn)行升級。該框架包括
一個(gè)編制的升級文件清單; 清單格式如下
< xml version=〃l. 0〃 encoding=〃utf_8〃?> <FileList>
<FiIe Name = "\UpgradeFiles\Program\MainForm. exe" CompressKind = 〃Delflate〃 UpgradeKind = "Version" />
<File Name = "\UpgradeFiles\Icos\Logo. ico" CompressKind = "Custom" UpgradeKind = "Override" /> </FileList>
在清單中,定義了文件路徑“Name”,傳輸方式“CompressKind”,升級方式 "UpgradeKind"0 MainForm. exe 文件存放的文件夾為“\UpgradeFiles\Program\文件名稱為"MainForm. exe” ;Logo, ico文件存放的文件夾為“\UpgradeFiles\Icos\”,文件名稱為“Logo, ico,,。一個(gè)定制的滿足需要的派生類文件,所定義的具體內(nèi)容中主程序文件采用Deflate壓縮方式傳輸即CompressKind= Deflate,并且升級方式為版本對比 UpgradeKind=Version方式。圖片文件則采用自定義的壓縮傳輸方式,即CompressKind= Custom,而升級方式為覆蓋原文件即UpgradeKind=Override。一個(gè)Webservice服務(wù),用以調(diào)用準(zhǔn)備好的服務(wù)器方法,以及處理客戶端的連接請求。該次升級的具體步驟包括
(1)客戶端用戶在打開主程序之前,先手動(dòng)啟動(dòng)自動(dòng)升級模塊,自動(dòng)升級模塊則調(diào)用本發(fā)明相應(yīng)的自動(dòng)升級框架。(2)升級框架在客戶端啟動(dòng)后,與遠(yuǎn)程升級服務(wù)器通過WebService服務(wù)進(jìn)行溝通。
(3)獲取遠(yuǎn)程服務(wù)器的升級文件清單,將結(jié)果返回客戶端。(4)客戶端按照清單,對比本地文件,判斷是否需要升級。(5)判斷結(jié)果為需要對系統(tǒng)的主程序文件MainForm. exe以及程序的一個(gè)圖片文件Logo, ico進(jìn)行升級。從遠(yuǎn)程升級服務(wù)器下載相應(yīng)的文件,下載方法根據(jù)升級文件清單的指示,使用Deflate壓縮的傳輸方式從服務(wù)器端下載主程序文件MainForm. exe到本地;而 Logo, ico圖片文件使用自定義的壓縮傳輸方式從服務(wù)器端下載到本地。(6)下載完成后,自動(dòng)升級框架根據(jù)升級文件清單指示,按照清單要求的文件處理方法,將新下載的MainForm. exe主程序文件與原有的主程序文件進(jìn)行版本比對,需要升級的則以文件名“MainForm. exe”保存到“\UpgradeFiles\Program\”文件夾下;將新下載的 Logo, ico圖片文件則以文件名稱為“Logo, ico”覆蓋到“\UpgradeFiles\Icos\”文件夾下。(7)退出升級框架,按照定制的自動(dòng)升級模塊的需求,啟動(dòng)一個(gè)bat命令行腳本, 對升級過程中產(chǎn)生的臨時(shí)文件進(jìn)行清理,并自動(dòng)啟動(dòng)軟件主程序。實(shí)施例2 —種內(nèi)部聊天程序,該程序基于WebService的客戶端自動(dòng)升級框架進(jìn)行升級。在本次升級中,需要對系統(tǒng)的數(shù)據(jù)庫文件BlackList.mdb以及程序的一個(gè)類庫文件WebTalk. dll進(jìn)行升級。該框架包括
一個(gè)編制的升級文件清單; 則清單如下格式
< xml version=〃l. 0〃 encoding=〃utf_8〃?> <FileList>
<FiIe Name = "\UpgradeFiles\BlackList.mdb" CompressKind = "GZip" UpgradeKind = "Override" />
<FiIe Name = "\UpgradeFiles\WebTalk.dll" CompressKind = "None" UpgradeKind = 〃NewFile〃 /> </FileList>
在清單中,定義了文件路徑為“Name”,傳輸方式為“CompressKind”,升級方式為 “UpgradeKind”,沒有定義文件存放的文件夾和名稱。一個(gè)定制的滿足需要的派生類文件,包括壓縮處理方法和文件處理方法。數(shù)據(jù)庫文件采用GZip壓縮方式傳輸即ompressKind= Gzip方式,并且升級方式為替換原文件即 Override方式,類庫文件采用普通傳輸方式即CompressKinc^None,不壓縮的方式,升級方式為新加入一個(gè)文件即UpgradeKind=NewFile。一個(gè)Webservice服務(wù),用以調(diào)用準(zhǔn)備好的服務(wù)器方法,以及處理客戶端的連接請求。具體步驟包括
(1)客戶端用戶啟動(dòng)自動(dòng)升級模塊,自動(dòng)升級模塊則調(diào)用本發(fā)明相應(yīng)的自動(dòng)升級框架。(2)升級框架在客戶端啟動(dòng)后,與遠(yuǎn)程升級服務(wù)器通過WebService服務(wù)進(jìn)行溝
ο(3)獲取遠(yuǎn)程服務(wù)器的升級文件清單,將結(jié)果返回客戶端。
(4)客戶端按照清單,對比本地文件,判斷是否需要升級。(5)判斷結(jié)果為需要對數(shù)據(jù)庫文件BlackList.mdb以及程序的一個(gè)類庫文件 WebTalk. dll進(jìn)行升級,從遠(yuǎn)程升級服務(wù)器下載相應(yīng)的文件,下載方法根據(jù)升級文件清單的指示,使用GZip壓縮的傳輸方式,從服務(wù)器端下載BlackList. mdb數(shù)據(jù)庫文件到本地;使用普通傳輸方式,從服務(wù)器端下載WebTalk. dll類庫文件到本地。(6)下載完成后,自動(dòng)升級框架根據(jù)升級文件清單指示,按照清單要求的文件處理方法,將新下載的BlackList. mdb數(shù)據(jù)庫文件覆蓋相應(yīng)路徑下原有的數(shù)據(jù)庫文件,將新下載的WebTalk. dll類庫文件添加到相應(yīng)路徑下。(7)退出升級框架,重新啟動(dòng)主程序,使用最新版本的程序。
權(quán)利要求
1.一種基于Webservice的客戶端自動(dòng)升級框架,其特征在于該框架包括 一個(gè)定制的派生類文件,包括壓縮文件方法和文件處理方法;一個(gè)Webservice服務(wù),用以調(diào)用準(zhǔn)備好的服務(wù)器方法,該方法是編程語言編寫的方法,存放于服務(wù)器端,用于處理客戶端與服務(wù)器端的連接請求以及處理客戶端的連接請求;一個(gè)編制的升級文件清單,文件存放于服務(wù)器端,定義服務(wù)器端的升級內(nèi)容,文件存放的文件夾以及這些文件的名稱。
2.如權(quán)利要求1所述的一種基于Webservice的客戶端自動(dòng)升級框架的應(yīng)用,其特征在于具體應(yīng)用步驟為(1)客戶端程序啟動(dòng)自動(dòng)升級模塊后,將調(diào)用Webservice代理類檢測服務(wù)器端的升級文件清單;(2)根據(jù)升級文件清單比較本地的同名文件,確定哪些文件需要下載更新,并按照定制的派生類文件的內(nèi)容進(jìn)行文件下載處理;(3)按照升級文件清單所定義,使用別名保存下載的升級文件到客戶端的相應(yīng)文件夾下;(4)升級過程完成后,根據(jù)自動(dòng)升級模塊定義進(jìn)行后期處理及退出。
3.如權(quán)利要求1所述的一種基于Webservice的客戶端自動(dòng)升級框架,其特征在于文件壓縮方法定義包括None:不壓縮處理,是默認(rèn)方式; GZip:使用· NET 的 GZipCompress 組件壓縮; Deflate:使用 DeflateCompress 組件壓縮; Custom:使用定制的數(shù)據(jù)壓縮處理方法。
4.如權(quán)利要求1所述的一種基于Webservice的客戶端自動(dòng)升級框架,其特征在于文件處理方法定義則包括Override:覆蓋或增加,無論客戶端是否存在該文件,強(qiáng)制覆蓋; NewFile:客戶端不存時(shí)下載該文件,用于新發(fā)布文件;Version:先比較程序集,如果非程序集則比較文件版本,否則該配置項(xiàng)無效,是默認(rèn)升級方式。
全文摘要
一種基于Webservice的客戶端自動(dòng)升級框架及其應(yīng)用,涉及計(jì)算機(jī)系統(tǒng)升級技術(shù),尤其是一種客戶端程序種類繁多復(fù)雜的軟件產(chǎn)品進(jìn)行自動(dòng)升級的框架及其方法。本發(fā)明的框架包括一個(gè)定制的滿足需要的派生類文件、一個(gè)Webservice服務(wù)以及一個(gè)編制的升級文件清單。本發(fā)明的框架使用了獨(dú)立性的應(yīng)用框架結(jié)構(gòu),獨(dú)立的基于Webservice升級文件服務(wù)器,獨(dú)立的登錄認(rèn)證方式,獨(dú)立的客戶端應(yīng)用類型,可以應(yīng)用于各種類型的客戶端應(yīng)用系統(tǒng)。
文檔編號(hào)H04L29/06GK102223380SQ20111019020
公開日2011年10月19日 申請日期2011年7月7日 優(yōu)先權(quán)日2011年7月7日
發(fā)明者張洪建, 范建煒, 范毅龍 申請人:昆明伯爾瑞科技開發(fā)有限公司, 昆明有色冶金設(shè)計(jì)研究院股份公司