利用Web Services實現軟件自動升級_第1頁
利用Web Services實現軟件自動升級_第2頁
利用Web Services實現軟件自動升級_第3頁
利用Web Services實現軟件自動升級_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、利用Web Services實現軟件自動升級摘要:軟件維護升級工作是軟件生命周期最重要的環節。為了解決以往/S(lient/Server)模式下的客戶端軟件升級效率低的問題,設計了/S應用系統自動升級處理程序。該程序利用ebServies技術、#和XL語言,通過網絡來完成/S應用系統的自動升級。與原有手工升級、FTP文件服務器升級和第三方控件升級相比,升級效率更高。該方案具有較好的參考價值。關鍵詞:#;ebServies;XL;軟件自動升級中圖法分類號:文獻標志碼:1引言隨著計算機網絡應用技術的不斷發展,在開發IS系統時,大多采用基于/S(客戶機/服務器)模式或B/S(瀏覽器/服務器)模式。現

2、在B/S模式以其真正意義上的瘦客戶機/胖服務器模式優勢占據了主導地位。但是由于客戶機/服務器模式具有的數據流量孝響應時間短、安全性高等特點,在解決幾十個到幾百個用戶的局域網中,仍然是一個不錯的選擇1-3。在/S模式下,應用程序的每次升級都需要在每個客戶端重新安裝應用程序,這是一項十分繁瑣的事情。面對這個實際問題,這里設計了一個通過軟件實現自動升級技術方案,彌補了這一缺陷,有較好的參考價值。2設計思路判斷一個文件是否要更新,可以通過判斷文件的大孝修改日期和文件的版本號來實現3-5。發現最新的則提示用戶是否升級。在ebServies中實現一個GetVer的ebethd方法,其作用是獲取當前的最新版

3、本。然后將現在版本與最新版本比較,如果有新版本,則進行升級。3自動升級的技術實現(1)編寫升級模板文件Update.xl準備一個文件(Update.xl),作為一個升級用的模板。desriptin升級記錄/desriptinfilelistunt=4surepath=./update/itenae=usterAppliatin.exesize=value/iteitenae=Interp.SHDV.dllsize=value/iteSHDV.DLL是InternetExplrer的一個組件,該組件負責控制對從eb站點返回的URL和信息的處理。(2)編寫ebServies的GetVer方法Get

4、Ver方法用于取得軟件的更新版本。ebethd(Desriptin=取得更新版本)PublistringGetVer()XlDuentd=neXlDuent();d.Lad(Server.apPath(update.xl);XlEleentrt=d.DuentEleent;returnrt.SeletSingleNde(versin).Inertest;(3)編寫ebServies的GetUpdateData方法GetUpdateData方法用于在線更新軟件。ebethd(Desriptin=在線更新軟件)SapHeader(sHeader)publiSyste.Xl.XlDuentGetUp

5、dateData()/驗證用戶是否登陸if(sHeader=null)returnnull;if(!DataPrvider.GetInstane.hekLgin(sHeader.Usernae,sHeader.Passrd)returnnull;/取得更新的xl模板內容XlDuentd=neXlDuent();d.Lad(Server.apPath(update.xl);.lunenang.XlEleentrt=d.DuentEleent;/看看有幾個文件需要更新XlNdeupdateNde=rt.SeletSingleNde(filelist);stringpath=updateNde.At

6、tributessurepath.Value;intunt=int.Parse(updateNde.Attributesunt.Value);/將xl中的value用實際內容替換fr(inti=0;i=updateNde.hildNdesi;stringfileNae=path+iteNde.Attributesnae.Value;FileStreafs=File.penRead(Server.apPath(fileNae);iteNde.Attributessize.Value=fs.Length.TString();BinaryReaderbr=neBinaryReader(fs);/這里

7、是文件的實際內容,使用了Base64String編碼iteNde.SeletSingleNde(value).InnerText=nvert.TBase64String(br.ReadBytes(int)fs.Length),0,(int)fs.Length);br.lse();fs.lse();returnd;(4)編寫客戶端的UpDate方法首先引用此ebServies,例如命名為:ebSvs,stringnVer=Start.GetServie.GetVer();if(Appliatin.PrdutVersin.pareT(nVer)=0)update();在本代碼中Start.GetS

8、ervie是ebSvs的一個靜態實例。功能是:首先檢查版本,將結果與當前版本進行比較,如果為新版本則執行UpDate方法。update的作用是將升級的XL文件下載下來,保存為執行文件目錄下的一個Update.xl文件。任務完成,退出程序,等待Update.Exe來進行升級。vidupdate()this.statusBarPanel1.Text=正在下載.;Syste.Xl.XlDuentd=(Syste.Xl.XlDuent)Start.GetServie.GetUpdateData();d.Save(Appliatin.StartupPath+update.xl);Syste.Diagns

9、tis.Press.Start(Appliatin.StartupPath+update.exe);lse();Appliatin.Exit();(5)編寫客戶端的Update.ExeUpdate.exe的功能主要是:首先就是找到主進程;如果沒有關閉,則用Press.Kill()來關閉主程序。然后則用一個XlDuent來Lad程序生成的update.xl文件。用xl文件里指定的路徑和文件名來生成指定的文件,在這之前先前已經存在的文件刪除。更新完畢后,則重新啟動主應用程序。這樣更新就完成了。privatevidFr1_Lad(bjetsender,Syste.EventArgse)Syste.D

10、iagnstis.Pressps=Syste.Diagnstis.Press.GetPresses();freah(Syste.Diagnstis.Presspinps)/essageBx.Sh(p.PressNae);if(p.PressNae.TLer()=usterappliatin)p.Kill();break;XlDuentd=neXlDuent();d.Lad(Appliatin.StartupPath+update.xl);XlEleentrt=d.DuentEleent;XlNdeupdateNde=rt.SeletSingleNde(filelist);stringpath=

11、updateNde.Attributessurepath.Value;intunt=int.Parse(updateNde.Attributesunt.Value);fr(inti=0;i=updateNde.hildNdesi;stringfileNae=iteNde.Attributesnae.Value;FilEinffi=neFileInf(fileNae);fi.Delete();/File.Delete(Appliatin.StartupPath+fileNae);this.label1.Text=正在更新:+fileNae+(+iteNde.Attributessize.Valu

12、e+).;FileStreafs=File.pen(fileNae,Filede.reate,FileAess.rite);fs.rite(Syste.nvert.FrBase64String(iteNde.SeletSingleNde(value).InnerText),0,int.Parse(iteNde.Attributessize.Value);fs.lse();label1.Text=更新完成;File.Delete(Appliatin.StartupPath+update.xl);label1.Text=正在重新啟動應用程序.;Syste.Diagnstis.Press.Start

13、(usterAppliatin.exe);lse();Appliatin.Exit();這里為了簡單起見,沒有使用異步方法,當然使用異步方法能更好的避免并發調用產生的沖突,這個需要讀者自己去添加。4結束語借助ebServies實現軟件的自動升級,不僅設計簡單,實現起來也很容易,取得了良好的效應,大大減輕了維護的工作量。本方案具有較好的參考價值。參考文獻1楊繼家,張麗靜,張曉蕾面向/S模式下的客戶端軟件自動升級的實現J微計算機應用,2005(5),290-293YANGJi-jia,ZHANGLi-jing,ZHANGXia-leiAnrealizatinfAutatiallyupdatingr

14、ientingt/SAppliatinSysteJirputerAppliatins,2005(5),290-2932何航校,蔣兆遠一種改進的通用客戶端自動升級模型及實現J蘭州交通大學學報(自然科學版),2005(8),110-113HEHang-xia,JIANGZha-yuanAnIprvedUniversalAutUpgradedelflientanditsRealizatinJurnalfLanzhuJiatngUniversity(NaturalSienes),2005(8),110-1133烏云高娃動態升級在IS系統中的實現與應用J計算機工程與設計,2005(10),2854-28

15、56UYUNGa-aIpleentatinandappliatinfdynaiupgradetehniqueinISJputerEngineeringandDesign,2005(10),2854-28564葉利華,陶宏才,梁田基于的軟件在線升級技術J成都信息工程學院學報,2005(2),73-75YELi-hua,TAHng-ai,LIANGTianSftareliveupdatingtehnlgybasednJJurnalfhengduUniversityfInfratinTehnlgy,2005(2),73-755余穎,董旭源,高宏/S模式管理信息系統實現自動升級和維護的方法J佳木斯大學學報(自然科學版),2005(4),200-202Ipleentatinfsftareaut-updatebyebServiesAbstrat:Thesftareaintainingandupdatingisaniprtantsetininthesftarelifeyle.ThispaperakesusefthetehnlgyfebServies、#andXLLanguag

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論