多层架构设计与实践(多层结构模型设计)
ccwgpt 2025-05-08 17:10 31 浏览 0 评论
一、现有架构的问题
大型应用系统项目在安全性保障、灵活可扩展性、服务组件可管理可重用等方面提出了较高要求,而现有应用系统架构还不能满足这些需求,有待提升完善。先分析一下系统架构现状,物理架构和逻辑架构如下图所示:
由上图我们可看出这种架构主要有以下问题:
1、Web服务器安全性问题
现有应用系统的后台服务程序安装部署在一台Web应用服务器上,也就是MVC的Action/Serivce/DAO三层都在一个War包中。Web应用服务器部署在DMZ区,通过JDBC接口访问内网中的数据库服务器。一旦这台服务器被黑客攻击及获取了系统权限,则很容易通过SQL/JBDC接口侵入内网数据库,窃取、篡改甚至销毁关键数据资料。因而,从安全性考虑,需要将接入/交互层与应用服务(含DAO)层进行物理架构分离、分区部署,以保障数据库系统安全。
2、紧耦合性问题
现在的架构方式虽然在开发上已经有分层,现在也按MVC的方式进行构架,但在应用服务组件化、Web services松耦合性方面欠缺架构设计,为团队分工开发、局部功能模块优化升级、分布式部署带来了一些制约问题。
3、应用服务扩展性问题
在现有架构基础上进行应用服务扩展,从界面到DAO层都要有改动,各层都有牵制影响。因而,需要基于SOA松耦合架构设计思想,将应用服务(含DAO层)分离出来实现服务组件化,基于服务注册/发现机制以及服务总线ESB协调,实现动态服务扩展、灵活组合调用。
二、架构改进设计方案
1、合理分层设计
现有的架构设计已经有了清晰的分层设计,只是在部署及代码组织结构上耦合的比较紧,我们就在这二个方面进行封装后解耦合。在物理部署上,将接入/交互层与应用服务(含DAO)层进行拆分,如下图所示:
为了增强系统安全性和接入服务性能,引入接入/交互服务器,在这个服务器上专门用来部署与UI相关的应用(War包),包括HTML/CSS/JS和具有安全策略功能(防SQL注入、防篡改)的Action(JavaBean)。
通过对代码结构进行调整后,接入/交互服务器有多种调优方式,比如可加入页面静态化处理提升性能,增加缓存机制,提高用户体验。在配置上也比之前安全和轻很多,有关数据库访问方面的配置都放到内网的应用服务器上。
现有系统按下图方式重新组织构建,即可实现接入/交互层、应用服务层的物理分离及分服务器部署;服务请求方统一以HTTP/JSON接口调用RESTful Web Services服务。
建议使用Maven多模块主从架构方式构建WAR(Action) JAR(Server) JAR(DAO)
远程调用实例参考如下:其中Action和 Service分别布署在不同的服务器上。
注:这种方式适用于现有基于Spring框架构建的应用系统;若是异构系统,建议使用SOAP协议实现WebServices方式发布服务。
2、安全机制设计
我们可以借鉴WSDL和SOAP的Web Service安全规范来指导RESTful Web服务实现认证、授权、身份管理等安全需求。
为保证RESTfulWeb服务的安全性,设计考虑:
对客户端做身份认证;
l对敏感的数据做加密,并且防止篡改;
l身份认证之后的授权。
对客户端做身份认证,有几种常见的做法:
1)在请求中加签名参数:
l为每个接入方分配一个密钥,并且规定一种签名的计算方法。要求接入方的请求中必须加上签名参数;
l在实际项目中一般是设计动态加密种子数生成动态密钥,使每一次URL访问都有安全签名,很好的防止一个URL信息在不同的浏览器中可用。
2)对敏感的数据做加密,并且防止篡改,做法如下:
l部署SSL基础设施(即HTTPS),敏感数据的传输全部基于SSL。仅对部分敏感数据做加密(例如用户编号+密码),并加入某种随机数作为加密钥,以防范数据被篡改;
l身份认证之后的授权,主要是由应用来控制。通常应该实现某种基于角色+用户组的授权机制,可采用Shiro框架实现授权,也可以自定义来实现相关功能。
三、基于SOA架构的服务发布注册/查找机制
基于SOA架构设计理念,实现应用服务组件化并达到服务组件最大化重用目的,这就需要设计一套服务管理平台功能,包括服务发布/注册、服务查找、服务监控等功能。
下图描述了服务发布及注册、服务查找及服务调用的过程:
在此架构中有三类角色:服务提供者、服务注册中心、服务消费者。
1、服务提供者
服务提供者作为服务提供方,将自身的服务信息注册到服务注册中心,服务信息包含:
l隶属于哪个系统
l服务的IP,端口
l服务的请求URL
l服务的权重等
2、服务注册中心
服务注册中心主要提供所有服务注册信息的中心存储,同时负责将服务注册信息的更新通知实时Push给服务消费者(主要是通过zookeeper的Watcher机制来实现的)。
3、服务消费者
服务消费者主要职责如下:
1、服务消费者在启动时从服务注册中心获取需要的服务注册信息;
2、将服务注册信息缓存在本地;
3、监听服务注册信息的变更,如接收到服务注册中心的服务变更通知,则在本地缓
存中更新服务的注册信息;
4、根据本地缓存中的服务注册信息构建服务调用请求,并根据负载均衡策略(随机负载均衡,策略负载均衡等)来转发请求;
5、对服务提供方的存活进行检测,如果出现服务不可用的服务提供方,将从本地缓存中剔除。
服务消费者只在自己初始化以及服务变更时会依赖服务注册中心,在此阶段的单点故障通过zookeeper集群来进行保障。在整个服务调用过程中,服务消费者不依赖于任何第三方服务。
四、总结
本文从提高系统安全性以及实现应用服务组件化的角度出发,提出了应用系统多层架构设计方案及实践方法,并对Web服务安全、服务发布注册/查找机制提出了实现方法建议,供产品设计开发和项目实施人员参考。
文章为原创,欢迎点赞或收藏。如需转载请注明或联系我。如有大数据爱好者,欢迎共同探讨。
关于IDEADATAIDEADATA专注于从数据到信息的有效管理与应用,是领先的商业信息服务技术提供商,是数据仓库及大数据技术和应用的先行实践者。微信关注:IDEADATA大数据视界新浪微博:iDEADATA大数据视界公司官网:www.ideadata.com.cn
作者:头条号 / IDEADATA大数据
链接:
http://www.ideadata.com.cn/wisdomAction/readWisdom.do?id=77
来源:头条号(今日头条旗下创作平台)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关推荐
- 2025南通中考作文解读之四:结构框架
-
文题《继续走,迈向远方》结构框架:清晰叙事,层层递进示例结构:1.开头(点题):用环境描写或比喻引出“走”与“远方”,如“人生如一条长路,每一次驻足后,都需要继续走,才能看见更美的风景”。2.中间...
- 高中数学的知识框架(高中数学知识框架图第三章)
-
高中数学的知识框架可以划分为多个核心板块,每个板块包含具体的知识点与内容,以下为详细的知识框架结构:基础知识1.集合与逻辑用语:涵盖集合的概念、表示方式、性质、运算,以及命题、四种命题关系、充分条件...
- 决定人生的六大框架(决定人生的要素)
-
45岁的自己混到今天,其实是失败的,要是早点意识到影响人生的六大框架,也不至于今天的模样啊!排第一的是环境,不是有句话叫人是环境的产物,身边的环境包括身边的人和事,这些都会对一个人产生深远的影响。其次...
- 2023年想考过一级造价师土建计量,看这30个知识点(三)
-
第二章工程构造考点一:工业建筑分类[考频分析]★★★1.按厂房层数分:(1)单层厂房;(2)多层厂房;(3)混合层数厂房。2.按工业建筑用途分:(1)生产厂房;(2)生产辅助厂房;(3)动力用厂房;(...
- 一级建造师习题集-建筑工程实务(第一章-第二节-2)
-
建筑工程管理与实务题库(章节练习)第一章建筑工程技术第二节结构设计与构造二、结构设计1.常见建筑结构体系中,适用建筑高度最小的是()。A.框架结构体系B.剪力墙结构体系C.框架-剪力墙结构体系D...
- 冷眼读书丨多塔斜拉桥,这么美又这么牛
-
”重大交通基础设施的建设是国民经济和社会发展的先导,是交通运输行业新技术集中应用与创新的综合体现。多塔斜拉桥因跨越能力强、地形适应性强、造型优美等特点,备受桥梁设计者的青睐,在未来跨越海峡工程中将得...
- 2021一级造价师土建计量知识点:民用建筑分类
-
2021造价考试备考开始了,学霸君为大家整理了一级造价师备考所用的知识点,希望对大家的备考道路上有所帮助。 民用建筑分类 一、按层数和高度分 1.住宅建筑按层数分类:1~3层为低层住宅,4~6层...
- 6个建筑结构常见类型,你都知道吗?
-
建筑结构是建筑物中支承荷载(作用)起骨架作用的体系。结构是由构件组成的。构件有拉(压)杆、梁、板、柱、拱、壳、薄膜、索、基础等。常见的建筑结构类型有6种:砖混结构、砖木结构、框架结构、钢筋混凝土结构、...
- 框架结构设计经验总结(框架结构设计应注意哪些问题)
-
1.结构设计说明主要是设计依据,抗震等级,人防等级,地基情况及承载力,防潮抗渗做法,活荷载值,材料等级,施工中的注意事项,选用详图,通用详图或节点,以及在施工图中未画出而通过说明来表达的信息。2.各...
- 浅谈混凝土框架结构设计(混凝土框架结构设计主要内容)
-
浅谈混凝土框架结构设计 摘要:结构设计是个系统的全面的工作,需要扎实的理论知识功底,灵活创新的思维和严肃认真负责的工作态度。钢筋混凝土框架结构虽然相对简单,但设计中仍有很多需要注意的问题。本文针...
- 2022一级建造师《建筑实务》1A412020 结构设计 精细考点整理
-
历年真题分布统计1A412021常用建筑结构体系和应用一、混合结构体系【2012-3】指楼盖和屋盖采用钢筋混凝土或钢木结构,而墙和柱采用砌体结构建造的房屋,大多用在住宅、办公楼、教学楼建筑中。优点:...
- 破土动工!这个故宫“分院”科技含量有点儿高
-
故宫“分院”设计图。受访者供图近日,位于北京海淀区西北旺镇的故宫北院区项目已开始破土动工,该项目也被称作故宫“分院”,筹备近十年之久。据悉,故宫本院每年展览文物的数量不到1万件,但是“分院”建成后,预...
- 装配式结构体系介绍(上)(装配式结构如何设计)
-
PC构件深化、构件之间连接节点做法等与相应装配式结构体系密切相关。本节列举目前常见的几种装配式结构体系:装配整体式混凝土剪力墙结构体系、装配整体式混凝土框架结构体系、装配整体式混凝土空腔结构体系(S...
- 这些不是双向抗侧结构体系(这些不是双向抗侧结构体系的特点)
-
双向抗侧土木吧规范对双向抗恻力结构有何规定?为何不应采用单向有墙的结构?双向抗侧土木吧1.规范对双向抗侧力结构体系的要求抗侧力体系是指抵抗水平地震作用及风荷载的结构体系。对于结构体系的布置,规范针对...
- 2022一级建造师《建筑实务》1A412020 结构设计 精细化考点整理
-
1A412021常用建筑结构体系和应用一、混合结构体系【2012-3】指楼盖和屋盖采用钢筋混凝土或钢木结构,而墙和柱采用砌体结构建造的房屋,大多用在住宅、办公楼、教学楼建筑中。优点:抗压强度高,造价...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)