CS架构客户端软件升级方案

来源:互联网 发布:知乎炸鱼 编辑:程序博客网 时间:2024/04/26 23:01

目的

满足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.0patchVersion=0.0.1.3autoUpdateSwitch=0;自动更新开关,0:自动更新,1:手动更新,默认为自动更新serverIP=sdoc.vrv.comServerPort=80updateCfgURI=\securedoc\sdclientupdate.xml;服务器升级配置文件地址downloadPath=F:\ProgramFiles\SDClient\Download;升级文件下载路径APP= F:\Program Files\SDClient;程序安装路径updateInstalledFlag=0;下载的更新是否已经安装标志位,0:未安装,1:已安装


数据定义:

//更新文件基本信息 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;