|
只是构想,什么时候想做了,什么时候再做。
2010年会很忙的。
有愿意合作开发的可以...联系我
我只是在策略上阐述了一下工作原理,而具体的开发平台不限,具体的内部构建方法也不限。
--------------------------------------------------------------------------------
各个服务器在内网,而且数据库 仓库 和 编译服务器必须分开,以减小风险。
这里维护着四张表:
1、总体的包记录,其中包含所有的包信息
2、附表1,记录新添加的包。
3、附表2,记录进入编译队列的包。
4、附表3,记录已完成包。
总表字段有
id, name, src_addr, md5sum, size, SBU, summary
附表1,2,3字段有
id, src_addr, md5sum, size, SBU
id, 在整个数据库中起唯一标识
SBU(Standard Build Unit) 编译时间(约)
size 和 SBU用来决定编译顺序 (只有SBU很大, 且附表1中记录很多时起作用)
src_addr *.src.rpm 下载地址
md5sum 下载后用来效验是否完整, 三次错误后停止, 并认为下载错误,.
各个服务器之间由守护程序监听端口信息完成, 可以将各个模块安装在同一服务器上也可以装在不同服务器上。
守护程序能与数据库连接,操作其中的表。
初步分功能模块来实现
1、网站模块,要求可以提交包信息,根据包状态来锁定记录(即2号状态不能修改),所有的记录只能添加和修改,不能删除。其他附加的扩展功能,如:前台页面,包搜索页面,实现每个包中的评论页面。每个包的投票系统。
注:包状态可以通过查询 附表1 和 附表2 来确定。
2、守护程序,分4块,对应四个服务器功能
1)端口监听,统一的数据包格式,传递命令和附件。
2)操作数据库
3)编译包时逻辑上的先后顺序,遇到错误的处理策略(即操作三个附表)
3、数据库优化
下面是各个模块间概括的接口描述。
数据库维护4张表
1、总体的包记录,其中包含所有的包信息
2、附表1,记录新添加的包。
3、附表2,记录进入编译队列的包。
4、附表3,记录已完成包。
网站添加包记录时在1 2表中各添加记录
各个服务器守护程序对应如下
server_website 网站服务器(1)
server_download 下载服务器(2)
server_compile 编译服务器(3)
server_apt 仓库服务器(4)
server_website 检测 附表2 如果编译队列为空,则检测附表1,将附表1中的记录放入附表2中,即进入编译缓冲队列。
server_website 将附表2(编译缓冲队列)中所有的记录信息发送给 server_download,server_download 根据 src_addr下载包至固定目录。
server_download完成下载,发送信息和下载包所在目录至server_compile,编译服务器对src.rpm包编译(此处不知有没有恶意的script可以执行)
server_compile编译完成后,将包上传到server_apt,同时server_apt更新仓库,并删除数据库 附表2 的相关记录,在附表3中添加记录以表示完成编译。
这样就很明了了,大家手上有什么程序可以实现相关功能,可以直接开发出demo来。
注意各个模块间的接口。
领取各个模块,开一个项目描述具体的接口。各个模块的项目人员可以通过查看其他分项目接口描述来开发。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|