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

来源:互联网 发布:玉林玉柴公司招cnc编程 编辑:程序博客网 时间:2024/05/08 11:01

目的

满足C/S架构的客户端软件升级和补丁安装需要。

概念:

u      整包升级:软件功能进行了大范围的变更,主版本号发生变化,客户端需要重新安装。

u      补丁包升级:软件修复部分bug,功能进行了小范围调整或变更。

u      文件升级:软件的个别文件进行了细微的调整或bug修复,为最小粒度软件升级。

框架:

客户端主要由升级管理主程序和提供升级功能的底层支持库构成,

服务端主要由升级包管理web支持页面构成。




流程:


1、升级整体流程图如下:



2、升级配置文件

2.1服务端升级配置文件        升级配置文件

Xml文件分为两个部分:

u       升级策略:升级方式,升级范围等

u       升级文件:三种升级文件。

n        安装包,在程序重新打包,重大修改时使用。

n        补丁包,功能模块的修复和增加,使用最多。

n        模块,单个文件的替换和增加。

以下为XML配置文件:

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8">  
  2. <UPDATE>  
  3.     <POLICY>  
  4.               <OPEN>0:升级打开 1:升级关闭</OPEN>  
  5.               <CLIENT>  
  6.                      <IP>192.168.10.1-192.168.10.255</IP>  
  7.                      <IP>192.168.1.1-192.168.1.10</IP>  
  8.           </CLIENT>  
  9.     </POLICE>  
  10.        <INSTALL_PACKAGE>  
  11.               <NAME>SecureDOCClientSetup.exe</NAME>  
  12.               <VERSION>2.0.11.6321</VERSION>  
  13.               <SOFTWARE_MAME>EESecureDoc</SOFTWARE_NAME>  
  14.               <MD5>56324412236514522365527820216504798220</MD5>  
  15.               <SIZE>5020</SIZE>  
  16.               <FORCE>0:强制升级 1:非强制升级</FORCE>  
  17.               <ZIP>0:压缩 1:不压缩</ZIP>  
  18.               <UP_TIME>2013/8/16</UP_TIME>  
  19.               <OS_VER>MicrosoftWindows 6.1.7601 </OS_VER>  
  20.               <URL>http://192.168.4.10:8080/file/soft/package</URL>  
  21.               <INSTALL_TYPE>0:卸载安装 1:覆盖安装</INSTALL_TYPE>  
  22. </INSTALL_PACKAGE>  
  23. <PATCH_PACKAGE>  
  24.        <NAME>EE_DOC20012301.EXE</NAME>  
  25.        <VERSION>0.0.1.7552</VERSION>  
  26.        <SOFTWARE_NAME> EESecureDoc</SOFTWARE_NAME>  
  27.        <SOFTWARE_BASE_VER>2.0.11</SOFTWARE_BASE_VER>  
  28.        <SOFTWARE_UP_VER>2.0.12</SOFTWARE_UP_VER>  
  29.       <OS_VER> Microsoft Windows 6.1.7601 </OS_VER>  
  30.        <SIZE>100</SIZE>  
  31.        <FORCE>0:强制升级 1:非强制升级</FORCE>  
  32.        <ZIP>0:压缩 1:不压缩</ZIP>  
  33.        <URL> http://192.168.4.10:8080/file/soft/patchPackage</URL>  
  34.        <MD5>841052305621005442FDSA1552015988204523015</MD5>  
  35.        <UP_TIME>2013/8/16</UP_TIME>  
  36.                      <UP_INFO_LIST>  
  37.                                 <UP_INFO>修正了模块更新失败进程不退出BUG </UP_INFO>  
  38.                                  <UP_INFO>完成模块更新与安装包更新程序</UP_INFO>  
  39.                        <UP_INFO_LIST>  
  40. </PATCH_PACKAGE>  
  41. <UPDATE_FILES>  
  42.        <FILE>  
  43.               <NAME>DocProc.dll</NAME>  
  44.               <VERSION>2.0.6.0</VERSION>  
  45.               <URL> http://192.168.4.10:8080/file/soft/dll/DocProc.dll</URL>  
  46.               <SIZE>150</SIZE>  
  47.                <FORCE>0:强制升级 1:非强制升级</FORCE>  
  48.               <MD5>0144AB1DA4FD2284422014532DDDACDFEGH</MD5>  
  49.               <OS_VER> MicrosoftWindows 6.1.7601 </OS_VER>  
  50.               <OVER_WRITE>0:覆盖 1:保留备份</OVER_WRITE>     
  51.               <DEST_PATH>{APP}/SDClient/DocProc.dll</PATH>  
  52.        </FILE>  
  53. </UPDATE_FILES>  
  54. </UPDATE>  


  2.2户端升级配置文件

[html] view plaincopy
  1. [settings]  
  2. product=SecureDOC文档安全保护系统  
  3. productVersion=1.3.2.0  
  4. patchVersion=0.0.1.3  
  5. autoUpdateSwitch=0  
  6. ;自动更新开关,0:自动更新,1:手动更新,默认为自动更新  
  7. serverIP=sdoc.vrv.com  
  8. ServerPort=80  
  9. updateCfgURI=\securedoc\sdclientupdate.xml  
  10. ;服务器升级配置文件地址  
  11. downloadPath=F:\ProgramFiles\SDClient\Download  
  12. ;升级文件下载路径  
  13. APPF:\Program Files\SDClient  
  14. ;程序安装路径  
  15. updateInstalledFlag=0  
  16. ;下载的更新是否已经安装标志位,0:未安装,1:已安装  


数据定义:

[cpp] view plaincopy
  1. //更新文件基本信息  
  2.  Typedef struct FILEBASEINFO{  
  3.               CharszName[32];  
  4.               CharszURL[256];  
  5.               CharszVersion[32];  
  6.               CharszMD5[32];  
  7.               Int nSize;  
  8.               CharszUpTime[64];  
  9. } FileBaseInfo;  
  10.                       
  11. //更新文件运行环境  
  12. Typedef struct FILEENVIRONMENT{  
  13.               CharszOSVersion[32];  
  14.               CharszSoftName[16];  
  15.               CharszSoftVersion[32];  
  16.        }FileEnvironment;  
  17.  // 补丁包  
  18. Typedef struct PATCHINFO {  
  19.    FileBaseInfoptInfo;  
  20.    FileEnvironmentfiEnrnt;  
  21.    CharszSoftUpVer[32];  
  22.    Char szDescription[256];  
  23.    Boolsilent;  
  24.    BoolbForce;  
  25. } patchInfo;  
  26. // 整包  
  27. Typedef struct PACKINFO{  
  28.    FileBaseInfopkInfo;  
  29.    FileEnvironmentfiEnrnt;  
  30.    BoolbOverWrite;  
  31.    BoolbForce;  
  32. } packInfo;  
  33. // 模块文件  
  34. Typedef struct MODULEINFO{  
  35.    FileBaseInfomodInfo;  
  36.    FileEnvironmentfiEnrnt;  
  37.    CharszDestPath[128];  
  38.    BoolbBackUp;  
  39. } ModuleInfo;  
来源:http://blog.csdn.net/szv123_rier/article/details/10181581
0 0