栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

架构师修炼系列【SOA架构】

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

架构师修炼系列【SOA架构】

SOA的背景

SOA 提出的背景是企业内部的 IT 系统重复建设且效率低下, 主要体现在:

  • 企业各部门有独立的 IT 系统,比如人力资源系统、财务系统、销售系统 ,这些系统可能都涉及人员管理,各 IT 系统都需要重复开发人员管理的功能
  • 随着业务的发展,复杂度越来越高,更多的流程和业务需要多个IT系统合作完成
  • 各个独立的 IT 系统可能采购于不同的供应商,实现技术不同,企业自己也不太可能基于这些系统进行重构
SOA详解

为了应对传统 IT 系统存在的问题, SOA 提出了 三个关键概念

  • 服务:所有业务功能都是一项服务,服务就意味着要对外提供开放的能力,当其他系统需要使用这项功能时,无须定制化开发,服务可大可小,可简单也可复杂
    例如,人力资源管理可以是一项服务,包括人员基本 信息管理、请假管理、组织结构管理等功能;而人员基本信息管理也可以作为一项独立 的服务,组织结构管理也可以作为一项独立的服务 。 到底是划分为粗粒度的服务,还是 划分为细粒度的服务,需要根据企业的实际情况进行判断
  • ESB:Enterprise Service Bus,中文翻译为“企业服务总线”。从名字就可以看出,ESB 参考了计算机总线的概念 。计算机中的总线将各个不同的设备连接在一起,ESB 将企业中各个不同的服务连接在一起。因为各个独立的服务是异构的,如果没有统一的标准,则各个异构系统对外提供的接口是各式各样的 。SOA使用ESB来屏蔽异构系统对外提供各种不同的接口方式,以此来达到服务间高效的互联互通
  • 松糯合:松辑合的目的是减少各个服务间的依赖和互相影响 。因为采用SOA架构后,各个服务是相互独立运行的,甚至都不清楚某个服务到底有多少对其他服务的依赖。如果做不到松祸合,某个服务一升级,依赖它的其他服务全部故障,这样肯定是无法满足业务需求的,但实际上真正做到松辅合并没有那么容易,要做到完全后向兼容,是一项复杂的任务
典型的SOA架构


SOA 架构是比较高层级的架构设计理念,一般情况下我们可以说某个企业采用了 SOA 的 架构来构建 IT 系统,但不会说某个独立的系统采用了 SOA 架构
例如,某企业采用 SOA 架构, 将系统分为“人力资源管理服务”“考勤服务”“财务服务”,但人力资源管理服务本身不会再使 用 SOA 进行设计,也不会再重新使用独立的一套 ESB

SOA解决了传统IT系统重复建设和扩展效率低的问题,但其本身也引入了更多的复杂性,SOA 最广为人垢病的就是 ESB, ESB 需要实现与各种系统间的协议转换、数据转换、透明的动态路由等功能 。例如,下图中ESB将JSON转换为Java

下图中 ESB 将阻ST 协议转换为 RMI 和 AMQP 两个不同的协议

ESB虽然功能强大,但现实中的协议有很多种,如JMS、WS、HTTP、RPC 等,数据格式 也有很多种,如 XML、JSON 、二进制、HTML等 。ESB要完成这么多协议和数据格式的互相转换,工作量和复杂度都很大,而且这种转换是需要耗费大量计算性能的,当ESB承载的消息太多时,ESB本身会成为整个系统的性能瓶颈

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911674.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号