摘 要 本文介绍了软件升级技术的发展状况,并根据录井数据远程传输软件的专业特点,提出了进行前端软件智能升级和维护的设计思路,设计实现了录井数据远程传输系统前端软件智能升级和维护技术模块。
主 题 词 软件 网络 升级 维护
0 引 言
目前,录井信息远程传输技术已经在我国石油录井行业得到广泛的推广应用,并取得了较大的成就。中原油田地质录井处在几年前就已经着手进行录井信息远程传输系统的研制,并在近一两年逐步在探井和开发井现场进行了推广应用。该系统的成功推广和应用为油田各级生产管理部门提供了及时、可靠的信息服务,为生产管理和决策提供了有力的依据,大大降低了生产管理成本,提高了工作效率,为实现数字化生产和网络化办公奠定了坚实的基础。该系统的设计和应用中,我们在前端软件中采用了智能升级技术,该技术的应用为提高系统整体推广进度以及在前端软件维护上都起到了事半功倍的作用,节约了软件设计和维护人员的时间,在一定程度上提高了工作效率。本文主要阐述前端智能升级模块的设计思路和方法。
1 智能升级技术现状
软件智能升级技术是网络技术迅速发展和广泛应用的产物。在互联网大规模应用之前,各类应用软件主要以单机模式,软件的升级和维护需要软件专业人员亲自上门才能进行,软件应用的后期工作量可想而知。互联网的快速发展衍生出了B/S(浏览器/服务器) 和C/S(客户端/服务器)两种不同模式的软件设计方法。B/S主要以服务器端提供数据服务而在客户端只需要用户启动IE浏览器即可进行信息浏览和提交,由于不需要在客户端安装其它额外的软件,使用简单等特点,所以,这种方式被称之为瘦客户端,并广泛应用于各个领域。而互联网初期兴起的C/S软件设计模式由于需要在客户端安装专门的软件(俗称胖客户端),并且需要人工升级和维护等方面的原因,其应用领域正逐渐减小。但是,存在就有其合理性,B/S软件设计模式虽然在客户端很精简,但其在功能上有很大的局限性,仅仅能够提供服务器端发布的信息浏览和较简单的信息交互功能,在一些较特殊的行业以及一些比较专业的应用,这种方式是无法满足需求的。
随着网络技术的快速发展和普及,已经有越来越多的专业软件生产商开始利用互联网提供的有利条件对自己的软件产品进行网络化升级,有效提高了软件的性能,降低了软件维护成本。录井信息远传技术是一个依托于互联网的专业应用领域,它所完成的工作包括录井仪器实时数据采集、自动传输等功能,其前端用户以前线生产小队为主,分布在各个地方,人工软件维护成本可想而知。如何有效利用网络技术,及时进行前端软件升级,对前端软件进行智能化的维护,是提高系统整体性能的关键。现今软件升级技术主要是通过网络完成软件版本的更新换代,本技术在对前端软件进行升级的同时,还可对前端软件进行有效的维护,避免了由于软件设计问题或操作问题而引起的不良后果。
2 主要思路和框架
软件升级模块的主要思想是通过前端系统与服务器端服务模块的交互,及时获取软件的最新版本信息,从服务器下载新版软件,替换在用的软件并重新运行,这一过程就完成了软件的升级过程。而由于前端软件本身虽然能够完成新版软件的检测和下载,但其无法让下载的新软件替换它本身并重新运行,因此,必须借助第三方的力量才能完成整个软件的升级过程。这个第三方,我们称之为升级和维护模块(以下简称为升级模块)。
完成新版软件的升级和维护过程,需要涉及四方面的内容:1、前端软件本身;2、前端软件升级配置文件;3、软件升级模块;4、新版软件及其附属文件。其中,前端软件本身完成连接服务器并下载升级配置文件、检查软件版本的功能;升级模块根据升级配置文件的软件升级信息,从服务器端下载升级涉及的所有文件到本地暂存路径,并终止当前软件的运行,将当前软件替换为新软件,重新启动当前软件等。同时,升级模块还可以根据升级配置文件中包含的软件内容信息,对软件环境进行检查,及时更新被改动的软件和不完整的部分,使整个系统能够始终保持版本最新、内容最完整,以此保证系统的正常运行。另外,即使目前不需要升级,由于病毒或其它异常情况的出现造成软件系统不完善,操作人员可以及时利用升级模块提供的软件维护功能对系统进行完整性检查,修补系统缺损部分。
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文件组成,可同样运用于其它软件系统的升级工作中。