天天看点

XXX管理平台系统——架构

XXX管理平台系统架构

前言

关于系统架构是什么?我最认同一句话:架构即关注点分离。

项目经理不是万能的,系统架构需要更广博的知识,当然某些方面专业的知识也是必须的,这取决于平时知 识的积累和总结,也需要其他团队成员共同的努力。

关于部分系统架构图的内容参见:

<a href="http://space.itpub.net/6517/6517/viewspace-609654">http://space.itpub.net/6517/viewspace-609654</a>

系统硬件

关于系统硬件的选型,一是关于厂商的选择(有IBM和HP之争),一是关于机器架构的选择(PC服务器和小型机),再则是某种机型的选择(在本系统中主要为HP360和HP580);再细的话就是更细型号的选择了(HP360、HP580都至少有十几种型号),最后是机器选件,比如是否需要扩充硬盘、内存或者CPU。

其实最重要的一项就是预算,呵呵。本系统的硬件采购是由甲方采购的,但是架构是由自己做的,方案如果 有之前的案例就会很轻松很多,很不幸,这个方案改了几十版,跨度达到4个月。无他,对硬件,我不熟。

关于操作系统版本的选择,一般建议选择目前市 面比较稳定的版本,最新的版本往往意味着兼容性问题,太老的版本一般有性能问题;

关于数据库的选择,与操作系统有一定关系,也和对系统的安全性、稳定性、高并发性有一定关系;虽然一 个好的DBA在任 何一种数据库上都可以构建出高可用性的数据库,呵呵。

B/S架构

关于系统软件架构通常是指的是B/S部分实现的具体框架,此部分仍属于技术架构部分。

众所周知,B/S的框架有不下数十种,常用的有SSH(Structs + Spring + Hibernate)和SSI(Structs + Spring + iBatis),SSH和SSI从 本质上没有什么不同,就是实现业务逻辑层、控制层、数据持久层和展现层的分离。

B/S缓存的架构:OS Cache + Eh Cache

        说到软件架构,我就不太在行了;我做过Powerbuilder,ASP,java(JSP,HTML,CSS,Javascript,structs,spring,xml,xsl,ajax,web service)不过都是入门级水平,实在连个称职的程序员都算不上,唯 一的好处就是对方方面面都略知一二,查资料方便一点而已,呵呵。我个人只是在数据仓库和数据库开发、设计方面还算有点研究。

幸亏下面有相应的项目经理,也是项目中的技术经理,他在这方面是权威,B/S技术架构本来就是一个虚虚实实的框架, 呵呵。

系统同步和接口架构

尽管通过测试,高级复制和stream都可以实现实时数据同步,不过我知道在实际生产环境中是远远不会这么简单的;

首先源数据和目标源的结构并非完全一致,允许目标源的结构大于原数据源的结构

其次多环节数据实时同步,从中心数据库到电信数据库,再从电信数据库同步到网通数据库。

最后Oracle的stream有许多的bug,需要进行不断调试和patch升级。

事实上,在同步方案的过程中,也遭遇到很大的困难,前后的测试和最终顺利实施经历了2个月之久,不过stream仍需要不断的人工监控和干预。我相信到目前为止即使市面上也没有任何一种完全稳定的同步方案。

关于MQ、Webservice、LDAP接口,目前的业务和技术虽然已经完全实现,但是还缺乏稳定性和一致性。

总结

系统架构是项目最重要的技术部分,它是否应该是项目经理的职责,暂且不谈;从现实的角度而言,技不压 身,技能服众还是很有意义的;从项目经理角度来看,你能够准确的对项目进度、难度、工作量进行评估,对团队成员面临的困难迅速给出解决方案,减少项目经理 和团队成员的沟壑;从团队成员角度来看,信任自己的项目经理,也是项目成功的一个重要因素。

项目经理能够通过对系统架构的设计,尽快评估出各部分的工作量,以安排相应的人力资源和工作计划,做到有的放矢,实际上本项目虽然包含几个业务系统,加上对本公司相关资源和技能的评估,但我个人认为系统集成和数据同步等在项目实施中占据了50%的工作量.

本文转自baoqiangwang51CTO博客,原文链接:http://blog.51cto.com/baoqiangwang/313494,如需转载请自行联系原作者