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/313494 ,如需转载请自行联系原作者
相关文章
|
16天前
|
安全 数据管理 中间件
云LIS系统源码JavaScript+B/S架构MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示
检验科云LIS系统源码是医疗机构信息化发展的重要趋势。通过云计算技术实现数据的集中管理和共享可以提高数据利用效率和安全性;通过高效灵活的系统设计和可扩展性可以满足不同医疗机构的需求;通过移动性和智能化可以提高医疗服务的精准度和效率;通过集成性可以实现医疗服务的协同性和效率。因此,多医院版检验科云LIS系统源码将成为未来医疗机构信息化发展的重要方向之一。
26 2
|
4天前
|
前端开发 Java 关系型数据库
Java医院绩效考核系统源码B/S架构+springboot三级公立医院绩效考核系统源码 医院综合绩效核算系统源码
作为医院用综合绩效核算系统,系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
23 2
|
13天前
|
API 开发者 UED
构建高效微服务架构:后端开发的新趋势移动应用与系统:开发与优化的艺术
【4月更文挑战第30天】 随着现代软件系统对可伸缩性、灵活性和敏捷性的日益需求,传统的单体应用架构正逐渐向微服务架构转变。本文将探讨微服务架构的核心概念,分析其优势,并着重讨论如何利用最新的后端技术栈实现一个高效的微服务系统。我们将涵盖设计模式、服务划分、数据一致性、服务发现与注册、API网关以及容器化等关键技术点,为后端开发者提供一份实操指南。 【4月更文挑战第30天】 在数字化时代的浪潮中,移动应用和操作系统的紧密交织已成为日常生活和商业活动的基石。本文将深入探讨移动应用开发的关键技术、跨平台开发工具的选择以及移动操作系统的架构和性能优化策略。通过分析当前移动应用开发的挑战与机遇,我们将
|
14天前
|
存储 运维 监控
|
15天前
|
前端开发 NoSQL 数据库
切图仔做全栈:React&Nest.js社区平台(一)——基础架构与邮箱注册、JWT登录实现
切图仔做全栈:React&Nest.js社区平台(一)——基础架构与邮箱注册、JWT登录实现
|
17天前
|
消息中间件 监控 中间件
探索微服务架构下的系统弹性设计
【4月更文挑战第26天】 在当今快速迭代和持续部署的软件发展环境中,系统的弹性设计成为维护高可用性和稳定性的关键因素。本文将深入探讨在微服务架构下如何实现系统弹性,包括识别潜在的故障点、设计容错机制、以及通过实践案例分析提升系统整体的韧性。我们将讨论一系列策略,如服务降级、超时管理、重试策略、断路器模式等,旨在为开发者提供一套实用的系统弹性设计方案。
|
21天前
|
缓存 监控 算法
Python性能优化面试:代码级、架构级与系统级优化
【4月更文挑战第19天】本文探讨了Python性能优化面试的重点,包括代码级、架构级和系统级优化。代码级优化涉及时间复杂度、空间复杂度分析,使用内置数据结构和性能分析工具。易错点包括过度优化和滥用全局变量。架构级优化关注异步编程、缓存策略和分布式系统,强调合理利用异步和缓存。系统级优化则涵盖操作系统原理、Python虚拟机优化和服务器调优,需注意监控系统资源和使用编译器加速。面试者应全面理解这些层面,以提高程序性能和面试竞争力。
18 1
Python性能优化面试:代码级、架构级与系统级优化
|
21天前
|
运维 安全 定位技术
云HIS系统采用B/S架构云端SaaS服务的方式提供,使用用户通过浏览器即能访问
云HIS系统采用B/S架构云端SaaS服务的方式提供,使用用户通过浏览器即能访问
26 2
|
4天前
|
存储 监控 API
构建高效微服务架构:后端开发的现代实践
【5月更文挑战第9天】 在本文中,我们将深入探讨如何在后端开发中构建一个高效的微服务架构。通过分析不同的设计模式和最佳实践,我们将展示如何提升系统的可扩展性、弹性和维护性。我们还将讨论微服务架构在处理复杂业务逻辑和高并发场景下的优势。最后,我们将分享一些实用的工具和技术,以帮助开发者实现这一目标。
|
1天前
|
监控 API 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第12天】 在现代软件开发的浪潮中,微服务架构已经成为了设计复杂系统的首选模式。它通过将大型应用程序拆分成一组小而专注的服务来增强系统的可维护性和可扩展性。本文将探讨微服务架构的关键概念、优势以及如何在后端开发中实现一个高效的微服务系统。我们还将讨论一些常见的挑战和最佳实践,以帮助开发者避免陷入常见的陷阱。
15 6