当前位置: 首页 > news >正文

软件架构模式

目录

1.2层CS架构

2.三层CS架构

3.三层BS架构

4.混合架构

5.富互联网应用架构(RIA)

6.基于服务的架构(SOA)

1.WebService

2.ESB服务总线


软件架构模式包含2层CS架构,三层CS架构,三层BS架构,混合架构,富互联网应用架构,基于服务的架构

1.2层CS架构

胖客户端,升级维护困难,已被淘汰。其分为表示层和数据层。

  • 表示层:数据展示和业务处理。
  • 数据层:负责数据处理。

2.三层CS架构

瘦客户端,升级维护相对2层CS架构容易,但是在还没有大规模使用的时候出现了BS架构,没有大规模的发展起来。

其是把业务处理和数据处理抽出来,定义成业务层。三层是逻辑上的概念,三层可以分开部署也可以部署在一起

3.三层BS架构

与CS架构最大的区别就是0客户端,客户端使用浏览器,避免安装客户端的麻烦。

其分为客户端,web服务器,数据库服务器。页面动态支持能力没有CS架构好,查询速度也会慢一点

4.混合架构

bs架构和cs结构结合使用,扬长避短。其分为2类

  • 内外有别模式:外部使用bs架构,便于升级,避免安装客户端,内部因为管理统一可以使用cs架构,效率高
  • 查改有别模式:查询使用bs架构,涉及修改使用cs架构,安全性更高

5.富互联网应用架构(RIA)

我们现在平常使用的web应用就是属于这种架构。其是在传统的bs架构上使用新技术,加强了传统bs架构展现能力不强,交互能力不强的缺陷。

新技术有:ajax,flex,mushup

  • ajax是异步传输数据技术,可以传递页面的部分数据跟后台进行交互,然后局部刷新页面,这样用户体验会好很多
  • flex使用了flash类似的技术,用在页游中,可以达到类似与flash的效果
  • mushup技术是一种聚合技术,现在已经被淘汰了,在以前的手机上用到过,以前手机展示不了比较丰富的网页内容,mushup站点把web内容聚合在一起,然后通过html形式传给手机。

6.基于服务的架构(SOA)

服务标准化,松散耦合,粗粒度,传统的构建粒度会细一点,接口标准化。

其实现的方式有2种,WebService,ESB服务总线

1.WebService

强调把各种服务进行封装,包含服务请求者,服务提供者,服务注册中心。

协议包含

  • 服务发现协议:UDDI,DISCO
  • 服务描述协议:WSDL,XML Schema
  • 消息格式协议:REST,SOAP(WEB远程服务调用协议)
  • 编码格式协议:XML
  • 消息传输协议:HTTP,TCP/IP,SMTP

2.ESB服务总线

强调提供一条服务总线,然后把各服务挂载到服务总线上。

例如,把遗留的系统服务化,然后挂载到服务总线上

相关文章:

  • Eclipse Theia技术揭秘——脚手架源码分析
  • React AntV/G2Plot环形图Pie添加点击事件,即点击图环触发获取相关数据。
  • 导航【Java设计模式】
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • JavaScript4种数组随机选取实战源码
  • Python 教程之 Numpy(1)—— 什么是 Numpy?
  • $refs 、$nextTic、动态组件、name的使用
  • C语言实现简单通讯录,malloc,calloc,realloc,free动态内存分配的学习。
  • 【新人报到】【学习笔记】Python编程——入门
  • 【金融】中国vix、skew指数的Python实现
  • 外汇天眼:英镑暴跌英国国债暴跌 英国新政府宣布激进的减税促经济计划
  • 基于React的富文本编辑器——Braft Editor使用
  • vue项目docker打包通过k8s
  • 论文教程之阅读科学论文11步法,详细介绍了每个部分的关注点
  • [云原生] [kubernetes] 基于K8S安装kubesphere
  • 【个人向】《HTTP图解》阅后小结
  • 230. Kth Smallest Element in a BST
  • 77. Combinations
  • ECS应用管理最佳实践
  • Java面向对象及其三大特征
  • JS实现简单的MVC模式开发小游戏
  • leetcode98. Validate Binary Search Tree
  • Redis 懒删除(lazy free)简史
  • SpringCloud集成分布式事务LCN (一)
  • ucore操作系统实验笔记 - 重新理解中断
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端性能优化——回流与重绘
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 通过git安装npm私有模块
  • #DBA杂记1
  • #if 1...#endif
  • #Linux(权限管理)
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (五)网络优化与超参数选择--九五小庞
  • (一)Neo4j下载安装以及初次使用
  • (转)程序员技术练级攻略
  • (转)负载均衡,回话保持,cookie
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • *上位机的定义
  • .dwp和.webpart的区别
  • .equals()到底是什么意思?
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET 8.0 发布到 IIS
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net 发送邮件
  • .net反混淆脱壳工具de4dot的使用
  • @Bean有哪些属性
  • [20171113]修改表结构删除列相关问题4.txt