|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。 1。体系架构:
采取模块化思惟,分为3层:
a。数据存储层:利用mysql来寄存bbs的一切数据,包含用户信息,
文章数据,用户函件,用户动静,体系数据(?),关头成绩:
数据库的计划,是不是用文件来帮助。
b。体系功效层:完成bbs的根基功效,由多个并列模块构成,向下
挪用mysql的函数会见数据库,向上,承受处置恳求,将处置的
了局前往下层,依据恳求类型,前往成败了局和其他数据。并且
模块高度天真,可以便利的修正增添。包含:
** 用户模块,处置用户的注册,根基数据的修正,权限的变更,
网友信息的查询。
** 版面模块,完成文章宣布,文章的读取,文章的删除,文章
的加标志,读改删权限反省,此模块对数据库的请求最高。
** 精髓区模块,包含精髓区的文章,目次的增添,删除,高低移 动
(?)读改删权限反省,目次布局是个中的难点。
** 函件模块,包含发新函件,读删函件,信笺标志,新函件的通
知
** 动静模块,包含发送动静,承受动静,新动静告诉,动静回忆,
动静存函件。
** 体系静态模块,包含以后上站人数,以后静态,因为变化频仍,
此类数据用同享内存完成能够更好。
** 聊天模块,双人聊天是不是能自创icq的做法,由两边直接通话,
但聊天了局存函件能够较费事,同时,为兼容telnet功效,当
下层办事层为telnet时,增添专门的模块来停止处置。
** 聊天室模块,使用同享内存仍是数据库?开房间,外面的权限
成绩。
依据需求,还能增添新的功效。例如:举动看板模块,但关于非
telnet终端,意义好象不大。。。。。
c。办事层:直接和客户机对话,依据客户机的恳求,挪用功效模块获得
数据,然后将数据发送回客户端,依据客户真个类型,分离开辟分歧
的办事模块,而且尽量公道停止笼统,使对分歧的办事层,能共用
体系功效层的模块。详细包含:
++ cq66办事端,接纳原cq66的体例,偏重新计划协定,撑持体系功效
层的一切功效,但要用专门的客户端法式(cq66),假如能做到向
下兼容则更好,客户端法式要随办事真个晋级而晋级,用户能够有
点方便。有需求可以在传输过程当中到场加密功效,相似ssh。
++ telnet办事端,采取旧bbs的体例,有些功效不撑持,客户端不必
晋级,办事器端要保留客户方的形态,并依据客户真个按键来判别
形态的转移,并由此得出所需的数据,(例如浏览某篇文章),然
后再向体系功效层恳求数据,然后将数据加以处置(例如加上顶行,
尾行)然后前往数据,可以在现有的bbsd上修正,可以省去io模块
的设计但难度较大,除文章方面好一点外,其他对照难改,但从头
写起太吃力。
++ httpd办事端,所需的功效更少,绝对较复杂,原本直接挪用mysql
数据库也行,直接可以用php,但思索到分层的准绳,建议仍用c编
cgi的体例完成不知能不克不及在本来的基本上修正呢?估量不可。
体系的关头和难点:
a。数据库的设计,mysql撑持大批的table吗?例如几万?每一个
用户最少一个表,然后每一个版一个表,精髓区的表布局能够更庞杂。
但应当总会比如今bbs的文件布局明晰一些,效力也高一点吧,排序
和cache的功效可以信任mysql吧。
b。mysql中文本字段的巨细限制,限制一篇文章不得大于64k不外分吧,
并且从效力的角度,将一篇文章以最大2k的块为单元寄存能够更好,
如许,当telnet用户看文章时,telnet办事器不必每次都查询数据库
读取几十k的数据,再将个中的某2k传给用户,可部分抵偿数据库字段
不克不及象文件那样从两头读取一局部。不外如许文章字段数据的办理
对照庞杂。
2。体系开辟企图:
先思索用户模块和版面模块,计划好数据布局,应当很轻易和现有bbsd联合
起来的。然后再思索其他模块?。。。。。。。
(//以下有空再写。。。。。先睡觉去。。hmm.........)
3。数据库设计
4。用户模块设计
5。版面模块设计
6。bbsd和cq66办事器端改革
7。初步测试企图 。我先把我自己学习PHP的过程做一下概括: |
|