随着对业务系统进行垂直化改造之后,以业务功能纬度拆分出来多个子系统,而在各个子系统中,会存在比较多的共享业务,比如用户信息查询,在支付业务中会涉及到、在首页中也会涉及到。那么势必会造成重复开发产生非常多的冗余代码。那么这个时候就引入了服务化改造的思想,也就是SOA
把一些通用的、会被多个上层服务调用的模块独立拆分出来,形成一些共享的基础服务。这些被拆分出来的共享服务相对来说是比较独立,并且可重用。 比如用户管理服务,包含用户注册、用户查询等功能。比如单点登录服务;
SOA的核心目标就是通过服务的流程化来实现业务的灵活性,而这个流程化其实就是一系列相关联的任务组成,这一系列相关联的任务可以通过一系列的服务组合来实现具体的业务功能
SOA面向服务架构,从语义上说,它与面向过程、面向对象、面向组件一样,是一种软件组建及开发的方式。所以在SOA中,服务是最核心的抽象手段,业务被划分为一些列粗粒度的业务服务和业务流程
SOA中更强调ESB企业服务总线,企业服务总线可以使得服务之间的交互是动态的,以及服务位置是透明的。这样的好处是服务的调用者和服务的提供者之间是高度解耦的。从而使得服务有更高的灵活性以及隔离性。
ESB: 是从面相服务架构(SOA)发展过来的,主要是对多个系统中的服务调用者和服务提供者的解耦。ESB本身提供了服务暴露、接入、协议转化、数据格式转化、路由等功能。
SOA
主要解决的问题:
1. 信息孤岛
2. 互联互通
3. 业务重用