2024年6月11日发(作者:)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.3
(22)申请日 2011.07.07
(71)申请人 昆明伯尔瑞科技开发有限公司;昆明有色冶金设计研究院股份公司
地址 650200 云南省昆明市官渡区十二棵橡树庄园51栋1单元102号
(72)发明人 范建炜 张洪建 范毅龙
(74)专利代理机构 昆明祥和知识产权代理有限公司
代理人 和琳
(51)
H04L29/06
H04L29/08
(10)申请公布号 CN 102223380 A
(43)申请公布日 2011.10.19
权利要求说明书 说明书 幅图
(54)发明名称
一种基于网络服务的客户端自动升
级框架及其应用
(57)摘要
一种基于Webservice的客户端自动
升级框架及其应用,涉及计算机系统升级
技术,尤其是一种客户端程序种类繁多复
杂的软件产品进行自动升级的框架及其方
法。本发明的框架包括一个定制的满足需
要的派生类文件、一个Webservice服务以
及一个编制的升级文件清单。本发明的框
架使用了独立性的应用框架结构,独立的
基于Webservice升级文件服务器,独立的
登录认证方式,独立的客户端应用类型,
可以应用于各种类型的客户端应用系统。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种基于Webservice的客户端自动升级框架,其特征在于该框架包括:
一个定制的派生类文件,包括压缩文件方法和文件处理方法;
一个Webservice服务,用以调用准备好的服务器方法,该方法是编程语言编写的
方法,存放于服务器端,用于处理客户端与服务器端的连接请求以及处理客户端的
连接请求;
一个编制的升级文件清单,文件存放于服务器端,定义服务器端的升级内容,文件
存放的文件夹以及这些文件的名称。
2.如权利要求1所述的一种基于Webservice的客户端自动升级框架的应用,其特征
在于具体应用步骤为:
(1)客户端程序启动自动升级模块后,将调用Webservice代理类检测服务器端的
升级文件清单;
(2)根据升级文件清单比较本地的同名文件,确定哪些文件需要下载更新,并按
照定制的派生类文件的内容进行文件下载处理;
(3)按照升级文件清单所定义,使用别名保存下载的升级文件到客户端的相应文
件夹下;
(4)升级过程完成后,根据自动升级模块定义进行后期处理及退出。
3.如权利要求1所述的一种基于Webservice的客户端自动升级框架,其特征在于文
件压缩方法定义包括:
None: 不压缩处理, 是默认方式;
GZip: 使用.NET的GZipCompress组件压缩;
Deflate: 使用DeflateCompress组件压缩;
Custom: 使用定制的数据压缩处理方法。
4.如权利要求1所述的一种基于Webservice的客户端自动升级框架,其特征在于文
件处理方法定义则包括:
Override: 覆盖或增加, 无论客户端是否存在该文件, 强制覆盖;
NewFile: 客户端不存时下载该文件, 用于新发布文件;
Version: 先比较程序集, 如果非程序集则比较文件版本, 否则该配置项无效,是默认
升级方式。
说 明 书
技术领域
本发明涉及计算机系统升级技术,尤其是一种客户端程序种类繁多复杂的软件产品
进行自动升级的框架及其方法。
背景技术
计算机软件应用中通过光盘或安装程序发布的窗体应用程序或客户端系统,在版本
升级中由于需要在每个客户端通过光盘分别单独进行升级,因此存在较多的困难。
而采用C/S结构设计开发的软件系统相对于通过光盘安装的程序,由于Microsoft
在其.NET平台上提供了Smart Client 技术,因此即便在客户端程序更新时,服务器
端也需要到每个用户的机子上去部署,但这也比客户端通过光盘分别单独升级便利。
这种升级方式具有启动前更新或启动后更新即下次运行时安装两种模式,但使用时
客户端需要证书,也不能在下载前做文件压缩处理,不可指定客户端文件安装路径,
只能针对.NET程序集,不能发布部署其它类型的文件,如数据库文件、非程序集
文件等,因此缺乏应用灵活性,同时也存在下载占宽带、安装花时间和使用时占用
本地资源的缺点。
FTP文件服务器升级模式作为一个较早的软件自动升级模式,曾经被采用,该模式
通过架设升级的FTP服务器来处理客户端的升级请求,从而完成升级过程。但是
FTP的升级模式需要配置给每个客户端一个升级账号,以连接到FTP服务器,这
种方式不方便大用户量的软件升级管理。而且FTP是一个公开使用的标准,因此,
如果采用通用的传输方法,则对于需要安全加密传输的内容将起不到很好的保密作
用。
发明内容
本发明的目的是为了解决C/S模式下的客户端升级效率低的问题,提供一种C/S系
统自动升级处理框架及方法。与原有的Smart Client升级、FTP文件服务器升级相
比具有更高的升级效率。
本发明的一种基于Webservice的客户端自动升级框架,其特征在于该框架包括:
一个定制的派生类文件,包括压缩文件方法和文件处理方法;
一个Webservice服务,用以调用准备好的服务器方法,该方法是编程语言编写的
方法,存放于服务器端,用于处理客户端与服务器端的连接请求以及处理客户端的
连接请求;
一个编制的升级文件清单,文件存放于服务器端,定义服务器端的升级内容,文件
存放的文件夹以及这些文件的名称。
其中,文件压缩方法定义包括:
None: 不压缩处理, 是默认方式;
GZip: 使用.NET的GZipCompress组件压缩;
Deflate: 使用DeflateCompress组件压缩;
Custom: 使用定制的数据压缩处理方法。
文件处理方法定义则包括:
Override: 覆盖或增加, 无论客户端是否存在该文件, 强制覆盖;
NewFile: 客户端不存时下载该文件, 用于新发布文件;
Version: 先比较程序集, 如果非程序集则比较文件版本, 否则该配置项无效,是默认
升级方式。
本发明框架的具体应用步骤为:
(1)客户端程序启动自动升级模块后,将调用Webservice代理类检测服务器端的
升级文件清单;
(2)根据升级文件清单比较本地的同名文件,确定哪些文件需要下载更新,并按
照定制的派生类文件的内容进行文件下载处理;
(3)按照升级文件清单所定义,使用别名保存下载的升级文件到客户端的相应文
件夹下;
(4)升级过程完成后,根据自动升级模块定义进行后期处理及退出。
自动升级模块是按照本发明所提供的标准接口和协议,针对实际情况进行定制开发
的。自动升级模块按照本发明框架所使用的标准接口和协议开发完成后,与软件主
程序一同部署到客户端,根据定制开发的需求,自动升级模块根据需求适时的启动,
通过定义好的接口,按照协议与本发明的框架进行通信,进入自动升级过程,并在
升级完成后,根据需求进行后期处理及退出。
在本发明中,派生类文件的文件处理方法可指定多种升级方式,版本比较,包括程
序集版本或文件版本、文件覆盖或新加文件。如果源文件或程序集版本比服务器升
级文件清单中的版本低,则升级;如果选择文件覆盖,则直接替换原有的客户端程
序文件,如果选择新加文件,则在相应的文件路径后面追加服务器下载过来的新文
件,实现灵活的文件更新、升级操作。压缩处理方法则可使用
GzipStream/DeflateStream压缩文件,也能定制自己的文件压缩算法,在网络宽带
较为紧张的环境之中,可以提高传输的可靠性、安全性,节省带宽,以及客户端、
服务器端的物理资源。
文件清单则可指定客户端文件,在升级文件清单中可以指定客户端文件的安装文件
夹,能够细致的控制每一个更新升级的目标文件,以及他们的存放地址,做到可控
性最大,保障复杂情况下的系统升级和更新。
本发明的框架使用了独立性的应用框架结构,独立的基于Webservice升级文件服
务器,独立的登录认证方式,独立的客户端应用类型,可以应用于各种类型的客户
端应用系统,包含但不限于桌面客户端应用系统、移动设备客户端应用系统以及嵌
入式客户端应用系统。本发明旨在为软件自动升级建立一套标准的、完整的框架,
该框架规范了各类接口的标准和使用方式,让软件升级的过程能够自动化、智能化
以及简单化。
在本发明中,使用了可扩展读写文件方法,通过重写服务器端与客户端方法,可以
扩展升级文件的读写行为,如新建文件夹,重命名旧文件为新文件添加只读属性等
操作。并使用了可扩展压缩处理方法,压缩方法类的读写文件方法全部是
protected virtual,均可以重写。可以根据客户的需求,重新定义或者新增压缩算法,
适应各类业务场景的需求,保持本发明的灵活性和可扩展性。
本发明的框架如一个供水管道系统,水源则为我们的升级服务器,用水者就是我们
的客户端,无论是什么样的水源,水库水、河水、地下水、雨水等,也无论是什么
样的用水者,工厂、农产、田地、普通生活者等,本发明均能将水从源头送到用水
者处,它不依赖于水源或者用水者。本发明是一个介于服务端和客户端中间的一座
桥梁,无论服务端提供的内容是什么类型的,无论客户端是如何使用的,本发明均
能为两者之间的沟通搭建方便的渠道,不依赖于服务端或者客户端具体的形式。
附图说明
图1是框架的类层次结构图。
图2是本发明框架应用流程图。
具体实施方式 实施例1:一种选矿工艺设计系统,该系统基于Webservice的客户端自动升级框架 进行升级更新。在本次升级中,需要对系统的主程序文件以及程序 的一个图片文件进行升级。 该框架包括: 一个编制的升级文件清单; 清单格式如下: <?xml version="1.0" encoding="utf-8"?> <FileList> <File Name = "" CompressKind = "Delflate" U pgradeKind = "Version" /> <File Name = "" CompressKind = "Custom" UpgradeKin d = "Override" /> </FileList> 在清单中,定义了文件路径“Name”,传输方式“CompressKind”,升级方式 “UpgradeKind”。文件存放的文件夹为“UpgradeFilesProgram”,文件 名称为“”;文件存放的文件夹为“UpgradeFilesIcos”,文件 名称为“”。 一个定制的满足需要的派生类文件,所定义的具体内容中主程序文件采用Deflate 压缩方式传输即CompressKind= Deflate,并且升级方式为版本对比 UpgradeKind=Version方式。图片文件则采用自定义的压缩传输方式,即 CompressKind= Custom,而升级方式为覆盖原文件即UpgradeKind=Override。 一个Webservice服务,用以调用准备好的服务器方法,以及处理客户端的连接请 求。 该次升级的具体步骤包括: (1)客户端用户在打开主程序之前,先手动启动自动升级模块,自动升级模块则 调用本发明相应的自动升级框架。 (2)升级框架在客户端启动后,与远程升级服务器通过WebService服务进行沟通。 (3)获取远程服务器的升级文件清单,将结果返回客户端。 (4)客户端按照清单,对比本地文件,判断是否需要升级。 (5)判断结果为需要对系统的主程序文件以及程序的一个图片文件 进行升级。从远程升级服务器下载相应的文件,下载方法根据升级文件清 单的指示,使用Deflate压缩的传输方式从服务器端下载主程序文件 到本地;而图片文件使用自定义的压缩传输方式从服务器端下载到本地。 (6)下载完成后,自动升级框架根据升级文件清单指示,按照清单要求的文件处 理方法,将新下载的主程序文件与原有的主程序文件进行版本比对, 需要升级的则以文件名“”保存到“UpgradeFilesProgram”文件夹下; 将新下载的图片文件则以文件名称为“”覆盖 到 “UpgradeFilesIcos”文件夹下。 (7)退出升级框架,按照定制的自动升级模块的需求,启动一个bat命令行脚本, 对升级过程中产生的临时文件进行清理,并自动启动软件主程序。 实施例2:一种内部聊天程序,该程序基于WebService的客户端自动升级框架进 行升级。在本次升级中,需要对系统的数据库文件以及程序的一个 类库文件进行升级。 该框架包括: 一个编制的升级文件清单; 则清单如下格式: <?xml version="1.0" encoding="utf-8"?> <FileList> <File Name = "" CompressKind = "GZip" UpgradeKind = "Override" /> <File Name = "" CompressKind = "None" UpgradeKind = "NewFile" /> </FileList> 在清单中,定义了文件路径为“Name”,传输方式为“CompressKind”,升级方式为 “UpgradeKind”,没有定义文件存放的文件夹和名称。 一个定制的满足需要的派生类文件,包括压缩处理方法和文件处理方法。数据库文 件采用GZip压缩方式传输即ompressKind= Gzip方式,并且升级方式为替换原文 件即Override方式,类库文件采用普通传输方式即CompressKind=None,不压缩的 方式,升级方式为新加入一个文件即UpgradeKind=NewFile。 一个Webservice服务,用以调用准备好的服务器方法,以及处理客户端的连接请 求。 具体步骤包括: (1)客户端用户启动自动升级模块,自动升级模块则调用本发明相应的自动升级 框架。 (2)升级框架在客户端启动后,与远程升级服务器通过WebService服务进行沟通。 (3)获取远程服务器的升级文件清单,将结果返回客户端。 (4)客户端按照清单,对比本地文件,判断是否需要升级。 (5)判断结果为需要对数据库文件以及程序的一个类库文件 进行升级,从远程升级服务器下载相应的文件,下载方法根据升级文 件清单的指示,使用GZip压缩的传输方式,从服务器端下载数据库 文件到本地;使用普通传输方式,从服务器端下载类库文件到本地。 (6)下载完成后,自动升级框架根据升级文件清单指示,按照清单要求的文件处 理方法,将新下载的数据库文件覆盖相应路径下原有的数据库文件, 将新下载的类库文件添加到相应路径下。 (7)退出升级框架,重新启动主程序,使用最新版本的程序。


发布评论