目的:
满足C/S架构的客户端软件升级和补丁安装需要。
概念:
u 整包升级:软件功能进行了大范围的变更,主版本号发生变化,客户端需要重新安装。
u 补丁包升级:软件修复部分bug,功能进行了小范围调整或变更。
u 文件升级:软件的个别文件进行了细微的调整或bug修复,为最小粒度软件升级。
框架:
客户端主要由升级管理主程序和提供升级功能的底层支持库构成,
服务端主要由升级包管理web支持页面构成。
流程:
1、升级整体流程图如下:
2、升级配置文件
2.1服务端升级配置文件 升级配置文件
Xml文件分为两个部分:
u 升级策略:升级方式,升级范围等
u 升级文件:三种升级文件。
n 安装包,在程序重新打包,重大修改时使用。
n 补丁包,功能模块的修复和增加,使用最多。
n 模块,单个文件的替换和增加。
以下为XML配置文件:
- <?xml version="1.0" encoding="UTF-8">
- <UPDATE>
- <POLICY>
- <OPEN>0:升级打开 1:升级关闭</OPEN>
- <CLIENT>
- <IP>192.168.10.1-192.168.10.255</IP>
- <IP>192.168.1.1-192.168.1.10</IP>
- </CLIENT>
- </POLICE>
- <INSTALL_PACKAGE>
- <NAME>SecureDOCClientSetup.exe</NAME>
- <VERSION>2.0.11.6321</VERSION>
- <SOFTWARE_MAME>EESecureDoc</SOFTWARE_NAME>
- <MD5>56324412236514522365527820216504798220</MD5>
- <SIZE>5020</SIZE>
- <FORCE>0:强制升级 1:非强制升级</FORCE>
- <ZIP>0:压缩 1:不压缩</ZIP>
- <UP_TIME>2013/8/16</UP_TIME>
- <OS_VER>MicrosoftWindows 6.1.7601 </OS_VER>
- <URL>http://192.168.4.10:8080/file/soft/package</URL>
- <INSTALL_TYPE>0:卸载安装 1:覆盖安装</INSTALL_TYPE>
- </INSTALL_PACKAGE>
- <PATCH_PACKAGE>
- <NAME>EE_DOC20012301.EXE</NAME>
- <VERSION>0.0.1.7552</VERSION>
- <SOFTWARE_NAME> EESecureDoc</SOFTWARE_NAME>
- <SOFTWARE_BASE_VER>2.0.11</SOFTWARE_BASE_VER>
- <SOFTWARE_UP_VER>2.0.12</SOFTWARE_UP_VER>
- <OS_VER> Microsoft Windows 6.1.7601 </OS_VER>
- <SIZE>100</SIZE>
- <FORCE>0:强制升级 1:非强制升级</FORCE>
- <ZIP>0:压缩 1:不压缩</ZIP>
- <URL> http://192.168.4.10:8080/file/soft/patchPackage</URL>
- <MD5>841052305621005442FDSA1552015988204523015</MD5>
- <UP_TIME>2013/8/16</UP_TIME>
- <UP_INFO_LIST>
- <UP_INFO>修正了模块更新失败进程不退出BUG </UP_INFO>
- <UP_INFO>完成模块更新与安装包更新程序</UP_INFO>
- <UP_INFO_LIST>
- </PATCH_PACKAGE>
- <UPDATE_FILES>
- <FILE>
- <NAME>DocProc.dll</NAME>
- <VERSION>2.0.6.0</VERSION>
- <URL> http://192.168.4.10:8080/file/soft/dll/DocProc.dll</URL>
- <SIZE>150</SIZE>
- <FORCE>0:强制升级 1:非强制升级</FORCE>
- <MD5>0144AB1DA4FD2284422014532DDDACDFEGH</MD5>
- <OS_VER> MicrosoftWindows 6.1.7601 </OS_VER>
- <OVER_WRITE>0:覆盖 1:保留备份</OVER_WRITE>
- <DEST_PATH>{APP}/SDClient/DocProc.dll</PATH>
- </FILE>
- </UPDATE_FILES>
- </UPDATE>
2.2户端升级配置文件
- [settings]
- product=SecureDOC文档安全保护系统
- productVersion=1.3.2.0
- patchVersion=0.0.1.3
- autoUpdateSwitch=0
- ;自动更新开关,0:自动更新,1:手动更新,默认为自动更新
- serverIP=sdoc.vrv.com
- ServerPort=80
- updateCfgURI=\securedoc\sdclientupdate.xml
- ;服务器升级配置文件地址
- downloadPath=F:\ProgramFiles\SDClient\Download
- ;升级文件下载路径
- APP= F:\Program Files\SDClient
- ;程序安装路径
- updateInstalledFlag=0
- ;下载的更新是否已经安装标志位,0:未安装,1:已安装
数据定义:
来源:https://i-blog.csdnimg.cn/blog_migrate/f70f1572ed51375c754fb68d895e3b4b.png
- //更新文件基本信息
- Typedef struct FILEBASEINFO{
- CharszName[32];
- CharszURL[256];
- CharszVersion[32];
- CharszMD5[32];
- Int nSize;
- CharszUpTime[64];
- } FileBaseInfo;
- //更新文件运行环境
- Typedef struct FILEENVIRONMENT{
- CharszOSVersion[32];
- CharszSoftName[16];
- CharszSoftVersion[32];
- }FileEnvironment;
- // 补丁包
- Typedef struct PATCHINFO {
- FileBaseInfoptInfo;
- FileEnvironmentfiEnrnt;
- CharszSoftUpVer[32];
- Char szDescription[256];
- Boolsilent;
- BoolbForce;
- } patchInfo;
- // 整包
- Typedef struct PACKINFO{
- FileBaseInfopkInfo;
- FileEnvironmentfiEnrnt;
- BoolbOverWrite;
- BoolbForce;
- } packInfo;
- // 模块文件
- Typedef struct MODULEINFO{
- FileBaseInfomodInfo;
- FileEnvironmentfiEnrnt;
- CharszDestPath[128];
- BoolbBackUp;
- } ModuleInfo;