2023年11月26日发(作者:)

Technology

技术

一种C/S模式下客户端软件版本自动检测

升级方法的设计与实现

贾令涛

(中国飞机强度研究所,陕西西安 710065)

[摘 要]

C/S模式适用于客户端需处理复杂业务逻辑的应用系统中,但是由于客户端部署在应用环境的多个终端,自动检测升

级客户端软件版本成为提高应用系统维护效率的有效手段之一。为此,本文设计并实现了一种C/S模式下客户端软件版本自动检测

升级方法:客户端软件启动时,自动对比客户端配置文件与服务器端数据库中的版本信息,在版本不一致时,客户端应用程序自动下

载更新客户端软件及配置文件,实现客户端软件版本的自动更新。应用结果表明,该方法能够可靠实现客户端软件的自动升级,提高

客户端的维护效率。

[关键词]

C/S模式;客户端;自动升级

[中图分类号][文献标志码]

TP311.1 A

互联网和局域网的发展,基于网络的多种软件系统的应

用,给人们的生活和工作带来了变革性的改变。而基于网

络的应用系统架构模式大致可以分为两种,B/S(Brower/

Server,浏览器/服务器)模式和C/S(Client/Server,客户

/服务器)模式。前者由于其便于部署维护的特性成为越

来越流行的应用模式,但后者能充分发挥客户端性能的特性

也使得其在需要处理复杂业务逻辑的场景中有一席之地。不

过,C/S模式需要根据业务调整而不断升级多种客户端软件

的问题,确实成为影响C/S模式扩展应用的重要因素之一。

为了能够发挥C/S模式的优势,解决客户端软件版本升

级已经成为开发C/S模式应用系统的一项基本工作

[1-3]

。本文

通过对业务需求的分析,采用C/S模式设计开发客户端软件,

以实现手持设备与数据服务器的数据同步,同时通过对C/S

模式下客户端软件自动升级解决方案的分析与研究

[4-5]

,实现

了一种客户端软件自动检测升级方法,主要包含客户端软件

版本自动检测、客户端软件自动下载安装、更新失败时自动

回退版本。

1 总体设计

1.1 业务分析

为了实现重点设备全生命周期的统一管理,在工作现场

采用手持设备记录设备使用记录,之后通过客户端软件将数

据同步至数据服务器,完成设备相关数据的全生命周期管控。

根据业务需要,客户端和手持设备在局域网的多个地方

均有接入,但是软件的版本升级需要统一管理维护,因此对

客户端软件和手持设备软件进行版本的自动检测和升级,成

为软件推广应用的必要功能之一。

1.2 方法设计

1 客户端软件版本自动检测升级流程

的版本信息和对应安装文件,在此基础上,运行图1的升级

流程。

步骤1:打开客户端软件,软件将在后台自动线启动版本

检测模块,根据本地配置文件连接服务器,如果连接失败,

则提示用户确认服务器参数是否正确,之后再次连接服务器;

如果连接成功,进入步骤2。

步骤2:从服务器获取最新的客户端版本号,并与本地配

置文件中的版本号进行比对,如果版本号一致,则直接打开

客户端软件;如果版本号不一致,则提示用户可以升级客户

端版本,进入步骤3。

步骤3:用户可以选择是否升级版本,如果选择不升级,

本方法在软件启动时将会自动连接数据库,检测本地版

本是否为最新版本,不是最新版本则可启动自动升级程序,

则直接启动客户端软件;否则,客户端软件将启动自动升级

模块,进入步骤4。

步骤4:备份当前版本的客户端软件和手持设备软件,根

据服务器上获取的地址下载新版客户端软件和手持设备软件,

并运行客户端软件。

步骤5:如果客户端启动成功,进入步骤6;如果客户端

软件启动失败,则回退到备份版本,提示用户升级失败,关

闭客户端软件。

步骤6:关闭自动升级模块,更新本地配置文件中的版本

信息,客户端软件升级完成。

2 应用实例

根据业务环境分析,客户端在物理上分布在局域网的多

个接入点,同时手持设备与客户端配套部署。根据上述设计,

一旦打开客户端软件,版本检测模块就会启动,检测服务器

侧最新版本是否与本地版本一致,然后根据具体客户端软件

的相应条件进行版本升级或软件运行。

下面以服务器侧版本已经升级,客户端软件尚未升级为

例,描述通过本文方法实现客户端软件版本检测和升级的整

个流程。

(1)打开客户端软件之后,版本检测模块连接服务器,

获取数据库中的版本信息。如果连接失败,则弹出如图2

示的数据库连接参数配置界面;如果连接成功,则在判断版

本需要升级时,弹出图3所示界面,需要用户确认是否升级。

2 服务器参数配置界面

3 用户确认是否升级

(2)用户确认升级后,系统跳转到升级进度指示界面,

如图4所示。在升级过程中,会提示版本更新进度。

4 版本更新进度提示

(3)当版本更新完毕,如果新版本软件启动测试失败,

则回退到之前的版本,如图5所示,用户可选择继续使用原

自动化技术与应用

版本工作;如果新版本软件启动测试成功,则提示软件更新

成功,如图6所示。

5 版本回退成功提示

6 版本更新成功提示

通过上述流程,客户端软件更新成功,用户可以使用最

新版本的客户端软件开展相关的业务工作。

3 结束语

本文通过对业务需求的分析,选用C/S模式开发应用系

统以支撑现场工作中的复杂操作。为了使应用系统为广大终

端用户所接受,避免客户端软件版本更新产生过多复杂的用

户操作,实现了本文的客户端软件版本自动检测升级方法。

通过在用户点击客户端软件时,后台自动启动版本检测模块、

与用户交互式的升级选项、升级失败自动回退旧版本等方式,

全面提升客户端软件维护效率,降低用户升级操作复杂度,

为用户带来了较好的使用体验。

实际应用结果表明,本文方法不仅提升了客户端软件的

升级维护效率,同时,通过选择性升级、升级失败自动回退

等功能,在升级失败时也能够保证客户端的正常工作。

参考文献

[1]肖江文,廖幼文. C/S 结构下客户端软件自动升级的方

法研究[J]. 计算机工程与应用, 2005, 41(35): 95-97.

[2] 曾样松,文登敏.C/S 模式客户端应用程序自动升级研

究与实现[J].现代计算机, 2009(9):198200.

[3] 岳国华.分布式环境下C/S 模式客户端软件自动在

线升级的设计与实现[J].西安科技大学学报,2011(1) :

7276.

[4] 贺晓春. 基于C/S 模式的客户端软件自动升级设计与

实现[J]. 自动化与仪器仪表, 2017(3): 137-139.

[5] 程浩. 基于.NET的客户端自动升级系统的设计与实现

[J]. 计算机与网络,2014(10): 52-54.

作者简介

贾令涛(1983-), 男,陕西咸阳人,硕士研究生,高级

工程师,研究方向:计算机应用与数据管理技术。

今日制造与升级