1.对于垂直架构,虽然有了明确的分层,但是前后端开发仍然藕合在一起
2.针对垂直架构的不足,又提出了SOA架构
3. SOA:(Service Oriented Architecture) 面向服务的架构
(1)把工程拆分成服务层、表现层两个工程
<1>服务层中包含业务逻辑,只需要对外提供服务
<2>表现层只需处理和页面的交互,业务逻辑都是调用服务层的服务来实现
(2) SOA是把服务分成了若干,表现层分成了若干。
(3)表现层和服务层没有耦合关系,表现层可以用任意一个服务层
(4)开发的时候,仅仅是增加服务层和Web层2个工程,并不会把服务层和Web层当成一个整个工程
(5)传统的SOA是一种面向服务的单体架构,强调服务共享和重用,各个服务之间通过网络调用
<1>业务逻辑层可以重复使用
<2>如果功能需求没有变化,只需要需改表现层即可
<3>SOA架构多使用于传统行业,一次编写重复使用,重复体系其面向服务的特点
(6)是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型
4.SOA的特征:
(1)明确定义的接口:后端只关注业务接口开发,前端只关注接口的调用
(2)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来
(3)SOA更适合需要与许多其他应用程序集成的大型复杂企业应用程序环境
(4)将重复公用的功能抽取为组件,以组件服务的方式给各各系统提供服务
(5)服务之间采用webservice、rpc等方式进行通信
(6)ESB企业服务总线作为服务之间通信的桥梁
5.SOA架构优缺点:
(1)优点:
<1>将重复的功能抽取为服务,提高开发效率,提高系统的可重用性、可维护性
<2>可以针对不同服务的特点制定集群及优化方案
<3>ESB企业服务总线作为项目与服务之间通信的桥梁
<4>可重用:同的web层可以共用一个服务层
<5>松耦合:前后端分离,完全独立开发
(2)缺点:
<1>服务之间的界限模糊,不利于开发及维护
<2>虽然使用了ESB,但是服务的接口协议不固定,种类繁多,不利于系统维护
<3>抽取的组件服务的粒度过大,组件与服务之间耦合性高
6.扩展:企业服务总线ESB
(1)企业服务总线是一个具有标准接口、实现了互连、通信、服务路由
(2)提供消息驱动、事件驱动和文本导向的处理模式,支持基于内容的服务路由
(3)企业服务总线的功能:
<1>集成服务:提供基础的服务与定制的服务
<2>公用服务:提供内置的各种公用服务。例如,认证服务,日志服务等
<3>服务协议转换
(4)目前应用数据总线的有阿里的dubbo,还有zookeeper