
文章插图
应用服务位于UI与后台之间,后台我们可以认为它是一异构的系统或者是数据库之类的 。应用服务的位置位于前端与后端之间,起到类似一个服务API的作用,但是SOA中的服务还远远不止这一个应用服务,如果我们的SOA架构中只有一种类型的服务,那么这会增加我们系统的耦合程度,因为你没有对系统的服务进行层次的划分,你的业务功能会直接的落到某一个应用线上的服务,继续往下看 。
2.2.组合服务
组合服务是对应用服务的一个组合,根据实际项目的规模大小,不一定非要进行物理的隔离,在代码层面的服务化也是可以的,在将来的某一天有必要的情况下再进行物理的拆分,毕竟物理的拆分有着严重的成本和代价,对系统的稳定性带来很多挑战 。所以经验告诉我们必要的时候在进行拆分 。”分布式系统设计的第一个原则就是尽量不要分布式“,这是马丁.福勒大师说的,现在理解确实感同身受 。

文章插图
组合服务对下层的应用服务进行了组合,完成了一个基本的业务动作,应用服务中是最基本的基础性的原子性的操作 。但是在复杂的业务需求下大部分业务功能都需要跨越多个应用线来完成一个最外层的企业动作 。提交订单可能需要穿过很多应用线,订单管理、仓库、财务等等环节 。所以这里我们还需要一个能在最外层对组合服务进行编排的业务服务 。这个编排服务可以完全是自动化的,通过工作流引擎进行组合自动化来完成,这对企业应用的自动化流程很有意义 。
2.3.业务服务(编排服务)
业务服务是最外层的服务,向下编排了组合服务 。业务服务位于最上层,当需要有跨越多个应用线来完成的业务,这个业务就放入业务服务中 。比如提交订单,先检查库存、扣减库存(冻结库存),然后下单,再往后通知财务,再往后通知物流等等都是一个复杂的企业服务线 。这种最外层的业务逻辑如果你不进行SOA分层然后将其放入最外层的业务服务中,你把它放入任何一个应用线都会使系统调用混乱不堪 。所以问题就是需要进行纵向的划分层次 。如果进行了SOA的层次划分后就不会出现互相乱用的情况 。其实这里可以参考阿里的服务设计方法 。(李智慧写的一本大型互联网架构与实践里面也讲到了服务要划分层次)

文章插图
当在业务服务中执行的业务逻辑时,需要跨越多个应用线来完成 。这部分的逻辑也说是职责,如果不放入这个位置,放在哪个应用线都不合适,放入哪个应用线都会使系统调用出现混乱 。其实这里的问题就是我们不能用一个维度来进行SOA系统的设计,本来服务就具有组合特性,所以适当的提升服务的层次是有好处的,但是应用服务和组合服务可以在代码层面上进行构建,而业务服务也叫编排服务是需要进行物理隔离的,毕竟考虑到系统复杂度和稳定性问题这是值得的 。在排查问题,系统性能、稳定性等等方面,物理的隔离有一定的作用,毕竟业务服务本来就是来组合多个应用线的,这样做会使整个系统架构很清晰 。
四.SOA架构特点:
系统集成:站在系统的角度,解决企业系统间的通信问 题,把原先散乱、无规划的系统间的网状结构,梳理成 规整、可治理的系统间星形结构,这一步往往需要引入 一些产品,比如 ESB、以及技术规范、服务管理规范; 这一步解决的核心问题是【有序】
- 正月二十五用上供上香吗 正月二十五是什么日子
- 为什么中古貂不能买 中古貂皮都是什么人穿过的
- 古诗中常见的两大抒情方式 借景抒情和托物言志的区别是什么
- 黄晓明Angelababy离婚了 演员黄晓明结婚时间是什么时候
- 淘宝店铺开直通车的条件是什么?直通车精准匹配是什么?
- 淘宝直通车和开车精灵的区别是什么?开车精灵怎么样?
- 直通车开车精灵怎么用?是什么意思?
- 亚马逊评价怎么只评价星级?星级评价标准是什么?
- 京东金融还款日期怎么修改?修改方法是什么?
- 抱怨的近义词是什么意思 抱怨的近反义词语
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
