程序自动升级在物流管理系统中的应用
2015-12-31李海建
李海建
(天津天铁冶金集团计控电讯厂,河北涉县056404)
程序自动升级在物流管理系统中的应用
李海建
(天津天铁冶金集团计控电讯厂,河北涉县056404)
针对在C/S模式下客户端软件升级困难的问题,设计了一种软件自动升级程序。将该程序嵌入到物流管理系统中,通过FTP、服务器以及线程技术等,实现了在系统登录前自动下载最新程序的功能,提高了工作效率,减少了软件维护的工作量。
程序;自动升级;C#语言
1 引言
随着计算机技术的发展以及服务器等硬件设施的快速提升,B/S(浏览器/服务器)的架构模式所受到的桎梏也越来越小,优点越来越突出,逐渐为大多数编程人员所接受。C/S架构的程序可维护性差、布置困难,升级不方便,使B/S架构即网页版系统应用广泛,而C/S越来越不被人所重视的主要原因之一。虽然B/S的模式优点不可忽略,但C/S(客户端/服务器)模式也因其数据量小、响应时间短、安全性高等优势,在解决几十到上百个用户的局域网中,仍然是一个不错的选择。而根据我厂自身的硬件、客户端的实际情况,我们对物流管理系统采用了C/S模式。然而因为客户端比较分散,应用程序的升级每个客户端都需要重新安装程序一次,特别情况需要现场指导,十分繁琐。那么在C/S架构下的程序当有新版本发布时,为实现客户端自动升级,通过自动升级在物流系统上的应用,阐述C/S架构的程序如何实现自动升级,并取得了很好的效果。
2 设计思路
考虑到系统分模块的特性,利用C#语言的特点,将每个模块都生成了dll文件,这样做的特点是文件更新时,只会影响单个更新模块,不影响系统其他模块的使用,而且每次更新的文件小,能实现快速加载。客户端只需要下载最新的dll文件后,就能实现程序的升级。判别一个文件是否是新文件的方法有几种:文件大小、文件日期以及文件的版本号。物流管理系统的升级采用版本号来识别,每次模块重新生成后,C#语言会自动更新一个版本号,通过与客户端该文件的版本号的对比,发现最新的文件,之后进行自动更新,达到程序升级的目的。
3 技术实现
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传输协议将最新文件从服务器下载到客户端安转程序的根目录下,从而实现程序的自动升级。
4 结束语
利用网络传输协议、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—),男,本科,工程师,主要从事软件编程方面的研究工作。