- 论坛徽章:
- 0
|
原帖由 bluesjsp 于 2005-12-5 13:20 发表
谢谢思平的理解
to bigapple2008 : 你好, 其实上面我总结的7点都是我的猜想,并没有得到实践物验证, 发到这里,旨在希望大家给点意见, 也给想做软件升级的同胞们一点思路.
我前阶段在 linux 平台做,思路和你的差不多。
我在服务器端是用一个 CGI 程序控制的。
客户端的升级程序流程大概是这样的:
1,收集本机各个模块的版本信息。
2,将版本信息发送到服务器端。
3,服务器端经过一阵子运算,得到一个 url 列表。每个 url 代表一个模块的链接。
4,客户端收到 url 列表后,一个一个下载,下载可以使用 wget 或者 Perl 的 LWP,下载下来的东西可以放到 /tmp 目录
5,下载全部完成后,对每一个模块循环调用“升级”指令。
服务器端(CGI)的流程是:
1,接受到客户端的升级请求后,从一个模块依赖文件中,检索到每个客户端模块的最新版本。
2,将最新版本的 url 送给客户端。
模块依赖文件有两种方式可以维护:
1,有些比较有规律的,可以放在 makefile 或者是 auto-build 脚本里。
2,不太有规律的,可以开发一个 GUI 界面,由产品经理或者开发部经理手工维护。
模块的定义:
1,每个模块都完成了一个相对独立的功能。
2,每个模块都应该提供自己的升级脚本(和程序打包、压缩到一起),客户端下载到模块后,自动调用此脚本。
以上思路大多数都是通用的,
还有一些和我的具体产品有关的思路,没有列出来。
大家一起讨论一下。
我现在遇到的最头疼的问题,莫过于应用程序关联的配置文件的升级了。
每次版本变化,都伴随着配置文件的变化,
简单的用最新的版本替代客户端的版本肯定是行不通的,因为那样的话客户端的配置就丢了。
但是保留老配置的话有些新的配置条目又增加不上去,
更何况有些配置文件行的先后顺序都会有影响。
我的体会是,随好设计一个好的语法,将所有的配置文件都写成一种格式的。
好比 .ini 那种方法就不错。
我这里是没办法了,
因为有一些是 linux 操作系统的配置,本来就不是很统一。
再加上开发人员也不受我约束…… |
|