一种基于网络服务的客户端自动升级框架及其应用

名称
一种基于网络服务的客户端自动升级框架及其应用
摘要

一种基于Webservice的客户端自动升级框架及其应用,涉及计算机系统升级技术,尤其是一种客户端程序种类繁多复杂的软件产品进行自动升级的框架及其方法。本发明的框架包括一个定制的满足需要的派生类文件、一个Webservice服务以及一个编制的升级文件清单。本发明的框架使用了独立性的应用框架结构,独立的基于Webservice升级文件服务器,独立的登录认证方式,独立的客户端应用类型,可以应用于各种类型的客户端应用系统。

权利要求(3)
1.一种基于网络服务的客户端自动升级方法,其特征在于该方法包括: (1)客户端程序启动自动升级模块后,自动升级模块则调用相应的自动升级框架,升级框架在客户端启动后,与远程升级服务器通过Webservice服务进行沟通,将调用Webservice代理类检测服务器端的升级文件清单;所述Webservice服务,用以调用准备好的服务器方法,该方法是编程语言编写的方法,存放于服务器端,用于处理客户端的连接请求; (2)根据升级文件清单比较本地的同名文件,确定哪些文件需要下载更新,并按照定制的派生类文件的内容进行文件下载处理;所述定制的派生类文件,包括压缩文件方法和文件处理方法; (3)按照编制的升级文件清单所定义的服务器端的升级内容、文件存放的文件夹以及这些文件的名称,使用别名保存下载的升级文件到客户端的相应文件夹下;所述升级文件清单的文件存放于服务器端。 (4)升级过程完成后,根据自动升级模块定义进行后期处理及退出。
2.如权利要求1所述的一种基于网络服务的客户端自动升级方法,其特征在于所述压缩文件方法的定义包括: None:不压缩处理,是默认方式; GZip:使用.NET 的 GZipCompress 组件压缩; Deflate:使用 DeflateCompress 组件压缩; Custom:使用定制的数据压缩处理方法。
3.如权利要求1所述的一种基于网络服务的客户端自动升级方法,其特征在于文件处理方法的定义包括: Override:覆盖或增加,无论客户端是否存在该文件,强制覆盖; NewFile:客户端不存在该文件时下载该文件,用于新发布文件; Vers1n:先比较程序集,如果没有程序集则比较文件版本,否则该Vers1n定义项无效,是默认升级方式。
说明
一种基于网络服务的客户端自动升级框架及其应用

技术领域

[0001] 本发明涉及计算机系统升级技术,尤其是一种客户端程序种类繁多复杂的软件产品进行自动升级的框架及其方法。

背景技术

[0002] 计算机软件应用中通过光盘或安装程序发布的窗体应用程序或客户端系统,在版本升级中由于需要在每个客户端通过光盘分别单独进行升级,因此存在较多的困难。而采用C/S结构设计开发的软件系统相对于通过光盘安装的程序,由于Microsoft在其.NET平台上提供了 Smart Client技术,因此即便在客户端程序更新时,服务器端也需要到每个用户的机子上去部署,但这也比客户端通过光盘分别单独升级便利。这种升级方式具有启动前更新或启动后更新即下次运行时安装两种模式,但使用时客户端需要证书,也不能在下载前做文件压缩处理,不可指定客户端文件安装路径,只能针对.NET程序集,不能发布部署其它类型的文件,如数据库文件、非程序集文件等,因此缺乏应用灵活性,同时也存在下载占宽带、安装花时间和使用时占用本地资源的缺点。

[0003] FTP文件服务器升级模式作为一个较早的软件自动升级模式,曾经被采用,该模式通过架设升级的FTP服务器来处理客户端的升级请求,从而完成升级过程。但是FTP的升级模式需要配置给每个客户端一个升级账号,以连接到FTP服务器,这种方式不方便大用户量的软件升级管理。而且FTP是一个公开使用的标准,因此,如果采用通用的传输方法,则对于需要安全加密传输的内容将起不到很好的保密作用。

发明内容

[0004] 本发明的目的是为了解决C/S模式下的客户端升级效率低的问题,提供一种C/S系统自动升级处理框架及方法。与原有的Smart Client升级、FTP文件服务器升级相比具有更闻的升级效率。

[0005] 本发明的一种基于Webservice的客户端自动升级框架,其特征在于该框架包括:

[0006] 一个定制的派生类文件,包括压缩文件方法和文件处理方法;

[0007] —个Webservice服务,用以调用准备好的服务器方法,该方法是编程语言编写的方法,存放于服务器端,用于处理客户端与服务器端的连接请求以及处理客户端的连接请求;

[0008] 一个编制的升级文件清单,文件存放于服务器端,定义服务器端的升级内容,文件存放的文件夹以及这些文件的名称。

[0009] 其中,文件压缩方法定义包括:

[0010] None:不压缩处理,是默认方式;

[0011] GZip:使用.NET 的 GZipCompress 组件压缩;

[0012] Deflate:使用 DeflateCompress 组件压缩;

[0013] Custom:使用定制的数据压缩处理方法。

[0014] 文件处理方法定义则包括:

[0015] Override:覆盖或增加,无论客户端是否存在该文件,强制覆盖;

[0016] NewFile:客户端不存时下载该文件,用于新发布文件;

[0017] Vers1n:先比较程序集,如果非程序集则比较文件版本,否则该配置项无效,是默认升级方式。

[0018] 本发明框架的具体应用步骤为:

[0019] (I)客户端程序启动自动升级模块后,将调用Webservice代理类检测服务器端的升级文件清单;

[0020] (2)根据升级文件清单比较本地的同名文件,确定哪些文件需要下载更新,并按照定制的派生类文件的内容进行文件下载处理;

[0021] (3)按照升级文件清单所定义,使用别名保存下载的升级文件到客户端的相应文件夹下;

[0022] (4)升级过程完成后,根据自动升级模块定义进行后期处理及退出。

[0023]自动升级模块是按照本发明所提供的标准接口和协议,针对实际情况进行定制开发的。自动升级模块按照本发明框架所使用的标准接口和协议开发完成后,与软件主程序一同部署到客户端,根据定制开发的需求,自动升级模块根据需求适时的启动,通过定义好的接口,按照协议与本发明的框架进行通信,进入自动升级过程,并在升级完成后,根据需求进行后期处理及退出。

[0024] 在本发明中,派生类文件的文件处理方法可指定多种升级方式,版本比较,包括程序集版本或文件版本、文件覆盖或新加文件。如果源文件或程序集版本比服务器升级文件清单中的版本低,则升级;如果选择文件覆盖,则直接替换原有的客户端程序文件,如果选择新加文件,则在相应的文件路径后面追加服务器下载过来的新文件,实现灵活的文件更新、升级操作。压缩处理方法则可使用GzipStream/DeflateStream压缩文件,也能定制自己的文件压缩算法,在网络宽带较为紧张的环境之中,可以提高传输的可靠性、安全性,节省带宽,以及客户端、服务器端的物理资源。

[0025] 文件清单则可指定客户端文件,在升级文件清单中可以指定客户端文件的安装文件夹,能够细致的控制每一个更新升级的目标文件,以及他们的存放地址,做到可控性最大,保障复杂情况下的系统升级和更新。

[0026] 本发明的框架使用了独立性的应用框架结构,独立的基于Webservice升级文件服务器,独立的登录认证方式,独立的客户端应用类型,可以应用于各种类型的客户端应用系统,包含但不限于桌面客户端应用系统、移动设备客户端应用系统以及嵌入式客户端应用系统。本发明旨在为软件自动升级建立一套标准的、完整的框架,该框架规范了各类接口的标准和使用方式,让软件升级的过程能够自动化、智能化以及简单化。

[0027] 在本发明中,使用了可扩展读写文件方法,通过重写服务器端与客户端方法,可以扩展升级文件的读写行为,如新建文件夹,重命名旧文件为新文件添加只读属性等操作。并使用了可扩展压缩处理方法,压缩方法类的读写文件方法全部是protected virtual,均可以重写。可以根据客户的需求,重新定义或者新增压缩算法,适应各类业务场景的需求,保持本发明的灵活性和可扩展性。

[0028] 本发明的框架如一个供水管道系统,水源则为我们的升级服务器,用水者就是我们的客户端,无论是什么样的水源,水库水、河水、地下水、雨水等,也无论是什么样的用水者,工厂、农产、田地、普通生活者等,本发明均能将水从源头送到用水者处,它不依赖于水源或者用水者。本发明是一个介于服务端和客户端中间的一座桥梁,无论服务端提供的内容是什么类型的,无论客户端是如何使用的,本发明均能为两者之间的沟通搭建方便的渠道,不依赖于服务端或者客户端具体的形式。

附图说明

[0029] 图1是框架的类层次结构图。

[0030] 图2是本发明框架应用流程图。

具体实施方式

[0031] 实施例1:一种选矿工艺设计系统,该系统基于Webservice的客户端自动升级框架进行升级更新。在本次升级中,需要对系统的主程序文件MainForm.exe以及程序的一个图片文件Logo, ico进行升级。

[0032] 该框架包括:

[0033] 一个编制的升级文件清单;

[0034] 清单格式如下:

[0035] <?xml vers1n="l.0" encoding="utf_8"?>

[0036] 〈FileList〉

[0037] 〈File Name = 〃\UpgradeFiles\Program\MainForm.exe〃 CompressKind =〃Delflate〃 UpgradeKind = 〃Vers1n〃 />

[0038] 〈File Name = "\UpgradeFiles\Icos\Log0.1co" CompressKind = "Custom"UpgradeKind = 〃0verride〃 />

[0039] 〈/FileList〉

[0040] 在清单中,定义了文件路径“Name”,传输方式“CompressKind”,升级方式“UpgradeKind”。MainForm.exe 文件存放的文件夹为 “\UpgradeFiles\Program\”,文件名称为“MainForm.exe” ;Log0.1co文件存放的文件夹为“\UpgradeFiles\Icos\”,文件名称为 “Logo, ico”。

[0041] 一个定制的满足需要的派生类文件,所定义的具体内容中主程序文件采用Deflate压缩方式传输即CompressKind= Deflate,并且升级方式为版本对比UpgradeKind=Vers1n方式。图片文件则采用自定义的压缩传输方式,即CompressKind=Custom,而升级方式为覆盖原文件即UpgradeKind=Override。

[0042] 一个Webservice服务,用以调用准备好的服务器方法,以及处理客户端的连接请求。

[0043] 该次升级的具体步骤包括:

[0044] (I)客户端用户在打开主程序之前,先手动启动自动升级模块,自动升级模块则调用本发明相应的自动升级框架。

[0045] (2)升级框架在客户端启动后,与远程升级服务器通过WebService服务进行沟通。

[0046] (3)获取远程服务器的升级文件清单,将结果返回客户端。

[0047] (4)客户端按照清单,对比本地文件,判断是否需要升级。

[0048] (5)判断结果为需要对系统的主程序文件MainForm.exe以及程序的一个图片文件Logo, ico进行升级。从远程升级服务器下载相应的文件,下载方法根据升级文件清单的指示,使用Deflate压缩的传输方式从服务器端下载主程序文件MainForm.exe到本地;而Logo, ico图片文件使用自定义的压缩传输方式从服务器端下载到本地。

[0049] (6)下载完成后,自动升级框架根据升级文件清单指示,按照清单要求的文件处理方法,将新下载的MainForm.exe主程序文件与原有的主程序文件进行版本比对,需要升级的则以文件名“MainForm.exe”保存到“\UpgradeFiles\Program\”文件夹下;将新下载的Logo, ico图片文件则以文件名称为“Logo, ico”覆盖到“\UpgradeFiles\Icos\”文件夹下。

[0050] (7)退出升级框架,按照定制的自动升级模块的需求,启动一个bat命令行脚本,对升级过程中产生的临时文件进行清理,并自动启动软件主程序。

[0051] 实施例2:—种内部聊天程序,该程序基于WebService的客户端自动升级框架进行升级。在本次升级中,需要对系统的数据库文件BlackList.mdb以及程序的一个类库文件WebTalk.dll进行升级。

[0052] 该框架包括:

[0053] 一个编制的升级文件清单;

[0054] 则清单如下格式:

[0055] <?xml vers1n="l.0" encoding="utf_8"?>

[0056] 〈FileList〉

[0057] 〈File Name = "\UpgradeFiles\BlackList.mdb" CompressKind = 〃GZip〃UpgradeKind = 〃0verride〃 />

[0058] 〈File Name = "\UpgradeFiles\WebTalk.dll" CompressKind = "None"UpgradeKind = 〃NewFile〃 />

[0059] 〈/FileList〉

[0060] 在清单中,定义了文件路径为“Name”,传输方式为“CompressKind”,升级方式为“UpgradeKind”,没有定义文件存放的文件夹和名称。

[0061] 一个定制的满足需要的派生类文件,包括压缩处理方法和文件处理方法。数据库文件采用GZip压缩方式传输即ompressKind= Gzip方式,并且升级方式为替换原文件即Override方式,类库文件采用普通传输方式即CompressKind=None,不压缩的方式,升级方式为新加入一个文件即UpgradeKind=NewFi Ie。

[0062] 一个Webservice服务,用以调用准备好的服务器方法,以及处理客户端的连接请求。

[0063] 具体步骤包括:

[0064] (I)客户端用户启动自动升级模块,自动升级模块则调用本发明相应的自动升级框架。

[0065] (2)升级框架在客户端启动后,与远程升级服务器通过WebService服务进行沟通。

[0066] (3)获取远程服务器的升级文件清单,将结果返回客户端。

[0067] (4)客户端按照清单,对比本地文件,判断是否需要升级。

[0068] (5)判断结果为需要对数据库文件BlackList.mdb以及程序的一个类库文件WebTalk.dll进行升级,从远程升级服务器下载相应的文件,下载方法根据升级文件清单的指示,使用GZip压缩的传输方式,从服务器端下载BlackList.mdb数据库文件到本地;使用普通传输方式,从服务器端下载WebTalk.dll类库文件到本地。

[0069] (6)下载完成后,自动升级框架根据升级文件清单指示,按照清单要求的文件处理方法,将新下载的BlackList.mdb数据库文件覆盖相应路径下原有的数据库文件,将新下载的WebTalk.dll类库文件添加到相应路径下。

[0070] (7)退出升级框架,重新启动主程序,使用最新版本的程序。

附图:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值