XXX管理平台系统——架构

简介:
XXX管理平台系统架构
前言
系统架构是项目中技术 实现的最重要的环节。系统架构的良好与否关系到系统的性能指标、安全指标、稳定性指标、可扩展性、业务实现等等。
系统架构涉及到系统硬件的选型、网络拓扑、操作系统选型、数据库 选型、 B/S 与 C/S 的选型、 B/S 各框架的选择、缓存的实现、数据库设计等诸多方面。
在大型 IT 企业 中,项目经理和架构师是分离的;但对于国内 IT 公司尤其是小企业来说,就成了一种奢望。项目经理一肩挑的现状至少短期之内还是无法改变的,这自然也增加了项目经理的痛苦指数和工作量。
关于系统架构是什么?我最认同一句话:架构即关注点分离。
项目经理不是万能的,系统架构需要更广博的知识,当然某些方面专业的知识也是必须的,这取决于平时知识的积累和总结,也需要其他团队成员共同的努力。
关于部分系统架构图的内容参见:
系统硬件
关于系统硬件的选型,首先是根据业务需求和性能指标确定硬件的需求数量和相应型号;举例说:一个普通的 B/S 系统需要有 web 应用服务器,数据库服务器,如果对于性能有较高的要求,则需要增添 cache 服务器;如果对于稳定性和高可用性有特殊的要求,则需要对相应的服务器进行集群处理。
关于系统硬件的选型,一是关于厂商的选择 ( 有 IBM 和 HP 之争 ) ,一是关于机器架构的选择 (PC 服务器和小型机 ) ,再则是某种机型的选择(在本系统中主要为 HP360 和 HP580 );再细的话就是更细型号的选择了 (HP360 、 HP580 都至少有十几种型号 ) ,最后是机器选件,比如是否需要扩充硬盘、内存或者 CPU 。
其实最重要的一项就是预算,呵呵。本系统的硬件采购是由甲方采购的,但是架构是由自己做的,方案如果有之前的案例就会很轻松很多,很不幸,这个方案改了几十版,跨度达到 4 个月。无他,对硬件,我不熟。
系统软件
关于系统软件的选择主要上是操作系统、数据库、开发工具
选择什么样的操作系统与计算机硬件本身有很密切的联系,当然也与甲方的要求有关。 Linux/Windows/ 专有 UNIX 都是可选项, windows 囿于安全性 原因,一般不为推崇; UNIX 与硬件有很大关联,一般也很少用;所以普遍选择的是 Linux ;
关于操作系统版本的选择,一般建议选择目前市面比较稳定的版本,最新的版本往往意味着兼容性问题,太老的版本一般有性能问题;
关于操作系统的 32/64 位的选择,这个需要硬件的支持;在 64 位 CPU 上安装 32 位的操作系统意味着资源的浪费;在这个项目上曾经考虑有所欠妥,结果造成了一定的问题。
关于数据库的选择,与操作系统有一定关系,也和对系统的安全性、稳定性、高并发性有一定关系;虽然一个好的 DBA 在任何一种数据库上都可以构建出高可用性的数据库,呵呵。
关于开发工具的选择,与操作系统相关,也与甲方的要求有关,开发工具一向有 java 和微软 两条线路之争;在本系统中采用的当然是 java 了。
关于 web 中间件的选择,与开发工具、操作系统都有关系, JBOSS , websphere , tomcat , resin , web logic 都有一定的拥蹇和市场;取决与甲方的要求和本团队对相应系统的熟悉程度。
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 技术架构本来就是一个虚虚实实的框架,呵呵。
系统同步和接口架构
关于数据同步,在本平台中是最重要的环节,缺少数据的系统是无用的;为了实现系统数据同步架构,我曾先后在虚拟机上进行过 oracle 高级复制、 Oracle Stream 的测试 ,也曾为了该同步和公司技术总监吵过 N 多次,他主张用程序来实现,不过在他那边总是不了了之。
尽管通过测试,高级复制和 stream 都可以实现实时数据同步,不过我知道在实际生产环境中是远远不会这么简单的;
首先源数据和目标源的结构并非完全一致,允许目标源的结构大于原数据源的结构
其次多环节数据实时同步,从中心数据库到电信数据库,再从电信数据库同步到网通数据库。
再次各数据库均采用 RAC 方式,现实的例子中很少有类似应用。
最后 Oracle 的 stream 有许多的 bug ,需要进行不断调试和 patch 升级。
事实上,在同步方案的过程中,也遭遇到很大的困难,前后的测试和最终顺利实施经历了 2 个月之久,不过 stream 仍需要不断的人工监控和干预。我相信到目前为止即使市面上也没有任何一种完全稳定的同步方案。
关于 MQ 、 Webservice 、 LDAP 接口,目前的业务和技术虽然已经完全实现,但是还缺乏稳定性和一致性。
总结
系统架构是项目最重要的技术部分,它是否应该是项目经理的职责,暂且不谈;从现实的角度而言,技不压身,技能服众还是很有意义的;从项目经理角度来看,你能够准确的对项目进度、难度、工作量进行评估,对团队成员面临的困难迅速给出解决方案,减少项目经理和团队成员的沟壑;从团队成员角度来看,信任自己的项目经理,也是项目成功的一个重要因素。
项目经理能够通过对系统架构的设计 , 尽快评估出各部分的工作量 , 以安排相应的人力资源和工作计划 , 做到有的放矢 , 实际上本项目虽然包含几个业务系统 , 加上对本公司相关资源和技能的评估 , 但我个人认为系统集成和数据同步等在项目实施中占据了 50% 的工作量 .
 








本文转自baoqiangwang51CTO博客,原文链接:http://blog.51cto.com/baoqiangwang/312998 ,如需转载请自行联系原作者
相关文章
|
测试技术 Apache 开发工具
Apache Cordova开发环境搭建(二)VS Code
原文:Apache Cordova开发环境搭建(二)VS Code 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011127019/article/details/56335719 ...
4016 0
|
11月前
|
人工智能 运维 Serverless
ModelScope 模型一键上线?FunModel 帮你 5 分钟从零到生产
FunModel 依托 Serverless + GPU,天然提供了简单,轻量,0 门槛的模型集成方案,给个人开发者良好的玩转模型的体验,也让企业级开发者快速高效的部署、运维和迭代模型。在阿里云 FunModel 平台,开发者可以做到:模型的快速部署上线:从原来的以周为单位的模型接入周期降低到 5 分钟,0 开发,无排期;一键扩缩容,让运维不再是负担:多种扩缩容策略高度适配业务流量,实现“无痛运维”。
|
4月前
|
人工智能 运维 数据挖掘
2026年SCRM价格指南:多少钱一年、怎么收费、怎么选不踩坑
SCRM价格从几千到几十万差在哪?本文拆解2026年SCRM收费标准、预算区间、长期成本和选型避坑,帮企业判断哪类系统真正适合自己,避免低价入坑、高价浪费。
490 0
|
5月前
|
编解码 网络安全
如何利用Aeroshell的VNC连接功能 ?基于Deepin桌面环境配置远程桌面完整指南
本文详解Deepin DDE下TigerVNC远程桌面黑屏/断连问题的根因与解决方案:绕过systemd依赖,手动启动dde-session、dock等核心组件,并配置dbus环境;附tigervnc 共享桌面备选方案及防火墙、自启配置,实测可用。(239字)
426 0
|
7月前
|
SQL 中间件 API
PythonWeb基础-FastAPI使用
FastAPI是一个基于Python的高性能Web框架,专为构建API接口服务设计。摘要涵盖以下核心内容:1)基础使用包括项目创建、路由定义和参数处理(路径/查询/请求体参数);2)请求响应机制支持JSON、HTML等多种格式;3)中间件和依赖注入实现通用逻辑复用;4)ORM数据库操作完整流程,包含模型定义、CRUD操作和复杂查询(条件/聚合/分页)。框架特性包括异步支持、自动数据验证、类型提示和交互式文档,显著提升开发效率和API性能。
|
关系型数据库 API 数据库
基于Patroni的PostgreSQL高可用环境部署
在部署PostgreSQL到生产环境中时,选择适合的高可用方案是一项必不可少的工作。本文介绍基于Patroni的PostgreSQL高可用的部署方法,供大家参考。
8653 153
|
存储 安全 Ubuntu
Linux入门创建一个快捷方式
Linux入门创建一个快捷方式
1414 0
Linux入门创建一个快捷方式
|
运维 网络协议 Linux
linux系统命令 losf详解
**lsof命令**(List Open Files)是Linux系统中一个非常实用的工具,用于列出当前系统上所有打开的文件以及与之关联的进程。以下是对lsof命令的详细介绍: ### 一、基本功能 lsof命令可以显示系统中被进程打开的文件,这些文件可以是普通文件、目录、网络套接字、设备文件等。通过lsof命令,用户可以方便地查看哪些文件被哪些进程打开,以及这些文件的状态信息。 ### 二、基本语法 lsof命令的基本语法为:`lsof [选项] [文件]`。其中,选项用于指定lsof命令的行为,文件则是可选的,用于指定要查询的文件。 ### 三、常用选项 * `-a` 或 `-
1250 6
|
小程序 前端开发 Java
(JAVA)支付宝小程序登录相关(authToken获取用户唯一userId、encryptedData解密手机号)
(JAVA)支付宝小程序登录相关(authToken获取用户唯一userId、encryptedData解密手机号)
1484 0

热门文章

最新文章