3 主要工作流程
3.1 升级信息的下载和检验
前端软件启动升级功能后,首先需要从服务器端下载升级配置信息。升级配置文件是一个INI类型的文件,其包含软件版本、需更新文件以及完整系统组成等信息。具体格式如下:
UpdateConfig.ini file include:
[BaseInfo] //软件升级的基本信息
CurrentVer= //当前最新版本号
MainFileName= //软件主文件名称
AfterDownloadRun= //下载完成后运行的文件名称
UpdateFilesNumber= //需要更新的文件数
TotalFilesNumber= //系统包含的总文件数
[UpdateFiles] //需要更新的文件列表
1=%Path%FileName1 //需要更新的文件名称和路径
2=%Path%FileName2
3=%Path%FileName3
……
[TotalFiles] //系统包含的所有文件列表
1=%Path%FileName1,FileSize
2=%Path%FileName2,FileSize
3=%Path%FileName3,FileSize
……
前端软件以HTTP协议连接服务器端(这种方式可不受网络防火墙的限制),在指定位置下载配置文件,并读取版本信息。得到服务器端最新版本号后,判断当前软件是否需要升级,如果需要升级,则启动升级模块,接下来的软件下载和文件更新等过程工作由升级模块完成。
3.2 软件下载
软件升级模块启动后,根据配置文件提供的文件更新列表(UpdateFiles栏的内容),从服务器端依次将需要更新的文件下载到一个暂存目录。文件下载过程中,对于已经下载的每一个文件,检查与服务器端文件大小是否对应,以便确认文件的完整性。全部需要更新的文件下载完成后,进入新版软件的更新阶段。
3.3 软件更新
升级模块完成服务器端文件下载过程后,首先终止旧版本软件的运行,并检查升级配置文件中BaseInfo的AfterDownloadRun项的内容,如果是当前主文件名,则说明只需要停止运行主程序,并将已经下载的所有文件按文件名称以及所带的路径覆盖原文件即可,如果AfterDownloadRun项的内容是SETUP.EXE(安装文件名称,可自行设定),则说明系统新需要进行整体安装后才能替换旧系统,这时,就应该在暂存路径下执行SETUP.EXE文件,开始新系统的安装过程。系统更新完成后,启动新软件,终止升级模块的运行,升级过程结束。
3.4 软件维护
软件维护的目的是在软件更新完成后检查整个应用系统的完整性,或是在应用系统受到意外破坏后也可以使用该功能对系统进行维护。软件维护按照升级配制信息中的TotalFiles项中提供的全部文件列表进行,TotalFiles列表中,有系统所包含的所有文件的文件名称和大小,升级维护模块根据此列表对当前系统进行检查,如果有文件和列表的信息不符合,说明此文件已经不是正版软件提供的原文件,此时就应该从服务器重新下载需要维护的文件,然后替换现文件。
4 软件设计
升级软件的设计分两部分完成,一是内嵌于主程序的升级控件Update.Ocx,其功能是完成升级信息的检测和启动升级模块。升级控件采用标准C语言设计成通用的ocx文件,目的是可以方便地应用于VB、VC、DELPHI、C++BUILDER等程序设计语言编写的软件,与Update.exe组成一个通用的软件升级模块;二是独立的升级模块Update.exe,它的功能是由内嵌于前端软件中的升级控件启动并完成软件的升级或维护过程。Update.exe根据升级配置文件的信息,从服务器端下载需要更新的文件,并终止当前旧版本软件的运行,将旧版软件更新为新软件后启动新软件。软件升级过程入图所示: 
5 结 论
根据以上思路设计完成的软件智能升级和维护模块目前已经在录井数据远程传输前端系统进行推广应用,经过一年多的实际应用,结果表明,该模块的运用减少了前端软件的维护工作量,提升了软件升级换代的速度。由于升级模块以标准的ocx和exe文件组成,可同样运用于其它软件系统的升级工作中。




