欢迎来到天天文库
浏览记录
ID:14464887
大小:102.00 KB
页数:9页
时间:2018-07-28
《自动更新模块的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、c/s系统自动更新系统2008-4-29需求3技术框架3详细设计4需求基于C/S的应用系统由于客户端分布在不同的地方,给软件的更新维护造成了很多困难。本系统力图设计成一个通用的c/s系统更新程序,该程序独立于应用程序之外运行,通过配置文件对需要更新的应用系统进行配置,更新源以压缩包的方式存放在ftp服务器的独立更新目录下。本系统的所有功能如下所示:本系统的限制:1、配置文件的格式必须符合本系统的规范;2、版本文件(verson.ini)的格式必须符合本系统规范;3、本系统传输的是rar的压缩文件,所以客户端必须安装winrar压缩软件;技术框架本系统拟采用delphi7.0编码;ftp
2、客户端采用indy控件系列的TIdftp;配置文件中的密码加密采用开源的TWCDESComp控件;本系统拟规划以下几个对象:²THtIni对象:读写配置文件的对象;²TAppItem对象:核心对象,包括每一个应用的表现界面及核心操作等,每一个应用程序更新项目对应一个该对象;²THtFtp对象:封装了TIdftp的对象,用以同ftp服务器交互;²THtFile对象:文件操作对象,包括文件的删除,备份,复制等;²THtRar对象:调用外部的winrar程序解压缩文件的操作;²THtLog对象:记录更新日志的对象,主要是记录更新、备份的日期及结果;以下是各个对象的分工协作方式:详细设计1.f
3、tp服务器目录规范一个应用一个目录,比如app1,目录中至少包含一个verson.ini文件,当然也应该包含应用系统的更新压缩包,比如app1.rar;1.verson.ini文件的规范Verson.ini是版本控制文件,放置在ftp服务器的应用系统更新目录下,除第一次更新外,在客户端的应用程序目录下也应该有一份。本文件的规范如下:[verson]verson=1.01每次更新程序运行时,首先从ftp服务器上把该文件下来,然后同客户端需要更新的应用系统的版本文件对比,如果已经是最新版本了,就不再更新了,否则才开始更新。2.更新程序的配置文件规范更新程序的配置文件和更新程序主程序在同一目
4、录下,文件名是autoupdate.ini,该文件的规范如下:[general]ftpserver=10.2.254.1ftpuser=downuserftppass=########winrarpath=d:winrarwinrar.exe[app1]remotepath=ndyxpath=e:dyxname=农电营销管理系统describle=为石河子18个农牧团场开发的专用用电营销程序[app2]remotepath=gryxpath=e:gryxname=供热营销管理信息系统describle=为石河子供热公司开发的专用用热营销程序每增加一个应用就在该文件中加一节,比
5、如[app3]、[app4]…….其中”path”是客户端应用程序的路径,如果是第一次更新,该路径自动创建;”remotepath”是远程ftp服务器上的更新目录名称;3.界面设计l标准界面l配置文件中没有配置更新项目时的界面:l点击“更新”按钮时的等待界面l设置ftp服务器密码及测试ftp服务器界面该界面建议普通用户看不见,特殊用户通过非常规方法才能看见;1.TAppItem对象以下列出本对象的主要属性和行为:TAppItem=classprivate//更新项目的容器控件FpalBk:TPanel;//更新项目的描述控件FrichEdtDes:TRichEdit;//更新按钮Fsp
6、Update:TSpeedButton;//恢复按钮FspRestore:TSpeedButton;//传进来的日志对象FappLog:THtLog;//传进来的配置文件对象FappIni:THtIni;//创建的Ftp对象FappLtp:THtFtp;//创建的解压缩对象FappRar:THtRar;//创建的文件操作对象FappFile:THtFile;...........public//对象创建方法constructorcreate(aLog:ThtLog,aIni:THtIni);//对象销毁方法destructordestory;//组装界面元素procedureassem
7、bleMe;.............propertyappIni:THtinireadFappiniwriteFappIni;propertyappLog:THtLogreadFappLogwriteFappLog;protected//单击"更新"按钮的事件procedureOnUpdateClick(sender:Tobject);//单击"恢复"按钮的事件procedureOnRestoreClick(sender:TObject);.
此文档下载收益归作者所有