李海建
(天津天鐵冶金集團計控電訊廠,河北涉縣056404)
程序自動升級在物流管理系統中的應用
李海建
(天津天鐵冶金集團計控電訊廠,河北涉縣056404)
針對在C/S模式下客戶端軟件升級困難的問題,設計了一種軟件自動升級程序。將該程序嵌入到物流管理系統中,通過FTP、服務器以及線程技術等,實現了在系統登錄前自動下載最新程序的功能,提高了工作效率,減少了軟件維護的工作量。
程序;自動升級;C#語言
隨著計算機技術的發展以及服務器等硬件設施的快速提升,B/S(瀏覽器/服務器)的架構模式所受到的桎梏也越來越小,優點越來越突出,逐漸為大多數編程人員所接受。C/S架構的程序可維護性差、布置困難,升級不方便,使B/S架構即網頁版系統應用廣泛,而C/S越來越不被人所重視的主要原因之一。雖然B/S的模式優點不可忽略,但C/S(客戶端/服務器)模式也因其數據量小、響應時間短、安全性高等優勢,在解決幾十到上百個用戶的局域網中,仍然是一個不錯的選擇。而根據我廠自身的硬件、客戶端的實際情況,我們對物流管理系統采用了C/S模式。然而因為客戶端比較分散,應用程序的升級每個客戶端都需要重新安裝程序一次,特別情況需要現場指導,十分繁瑣。那么在C/S架構下的程序當有新版本發布時,為實現客戶端自動升級,通過自動升級在物流系統上的應用,闡述C/S架構的程序如何實現自動升級,并取得了很好的效果。
考慮到系統分模塊的特性,利用C#語言的特點,將每個模塊都生成了dll文件,這樣做的特點是文件更新時,只會影響單個更新模塊,不影響系統其他模塊的使用,而且每次更新的文件小,能實現快速加載。客戶端只需要下載最新的dll文件后,就能實現程序的升級。判別一個文件是否是新文件的方法有幾種:文件大小、文件日期以及文件的版本號。物流管理系統的升級采用版本號來識別,每次模塊重新生成后,C#語言會自動更新一個版本號,通過與客戶端該文件的版本號的對比,發現最新的文件,之后進行自動更新,達到程序升級的目的。
3.1 建立ftp網站和更新模版文件update.xml
在局域網的服務器上,建立一個ftp網站,用來存放升級的文件update.xml和各個模塊的dll文件。該文件用來存放物流管理系統中的所有模塊信息以及對應的版本號,如果其中某個模塊需要變動,則只需在程序中將該模塊重新生成新的dll文件,之后將dll文件的版本號更新到update.xml對應模塊下即可。該update.xml下的模塊存放方式如下:

3.2 客戶端存放update.xml
該文件在客戶端程序安裝時一同存放到程序的根目錄下,文件保存的內容是程序當前各個模塊的信息以及版本號。其內部格式與ftp服務器上的update.xml的格式一致,目的是用來與ftp服務器上的update.xml文件做對比,查看是否有最新文件。
3.3 編寫線程,在登錄前加載升級窗
該升級窗口主要是在客戶端登錄程序時出現,顯示內容為需要升級的模塊文件和update.xml模版文件。
3.4 對比服務器update.xml文件和客戶端的update.xml文件的內容
通過方法分別讀取服務器文件和客戶端文件,

分別將內容存放到listbox的容器下,利用C#語言提供的函數version來比較兩個listbox下每行的模塊版本號,發現最新的,并將之顯示在第三個listbox容器中,而客戶端能看到的就是第三個listbox所顯示的內容即需升級的文件名稱。


確定更新的文件后,利用ftp傳輸協議將最新文件從服務器下載到客戶端安轉程序的根目錄下,從而實現程序的自動升級。

利用網絡傳輸協議、xml以及C#語言等技術特點,通過模塊版本號的比較,實現了C/S模式下的軟件自動升級,取得了良好的效果,極大地減少了軟件維護的工作量,為今后的自主研發軟件提供了參考。
[1] Christian Nagel.C#高級編程[M].7版.李銘,譯.北京:清華出版社,2008.
Application of Automatic Program Upgrading to Logistics Management System
LI Hai-jian
(Computerized Telecommunication Factory,Tianjin Tiantie Metallurgy Group,She County, Hebei Province 056404,China)
An automatic software upgrading program was designed to tackle the difficulty of client software upgrading in C/S mode.Built into logistics management system,the said program realized the function of automatically downloading the latest application before system login via FTP,server and simultaneous multithreading technology.The working efficiency was improved with less software maintenance.
program;automatic upgrading;C language
10.3969/j.issn.1006-110X.2015.06.007
2015-08-15
2015-09-10
李海建(1979—),男,本科,工程師,主要從事軟件編程方面的研究工作。