soa是啥 soa是什么意思


一.SOA概述
SOA 是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)模型的方法 。SOA 并不是一个新鲜事物,而只是面向对象模型的一种替代 。虽然基于 SOA 的系统并不排除使用 OOD 来构建单个服务,但是其整体设计却是面向服务的 。由于 SOA 考虑到了系统内的对象,所以虽然SOA 是基于对象的,但是作为一个整体,它却不是面向对象的 。
SOA 系统原型的一个典型例子是 CORBA,它已经出现很长时间,其定义的概念与 SOA 相似 。SOA 建立在 XML 等新技术的基础上,通过使用基于 XML 的语言来描述接口,服务已经转到更动态且更灵活的接口系统中,CORBA 中的 IDL 无法与之相比 。图 9-13 描述了一个完整的 SOA 模型 。

soa是啥 soa是什么意思

文章插图

在 SOA 模型中,所有的功能都定义成了独立的服务 。服务之间通过交互和协调完成业务的整体逻辑 。所有的服务通过服务总线或流程管理器来连接 。这种松散耦合的架构使得各服务在交互过程中无需考虑双方的内部实现细节,以及部署在什么平台上 。
二.SOA 设计原则
在 SOA 架构中,继承了来自对象和构件设计的各种原则,例如,封装和自我包含等 。那些保证服务的灵活性、松散耦合和复用能力的设计原则,对 SOA 架构来说同样是非常重要的 。关于服务,一些常见的设计原则如下:
(1)明确定义的接口 。服务请求者依赖于服务规约来调用服务,因此,服务定义必须长时间稳定,一旦公布,不能随意更改;服务的定义应尽可能明确,减少请求者的不适当使用;不要让请求者看到服务内部的私有数据 。
(2)自包含和模块化 。服务封装了那些在业务上稳定、重复出现的活动和构件,实现服务的功能实体是完全独立自主的,独立进行部署、版本控制、自我管理和恢复 。
(3)粗粒度 。服务数量不应该太多,依靠消息交互而不是远程过程调用,通常消息量比较大,但是服务之间的交互频度较低 。
(4)松耦合 。服务请求者可见的是服务的接口,其位置、实现技术、当前状态和私有数据等,对服务请求者而言是不可见的 。
(5)互操作性、兼容和策略声明 。为了确保服务规约的全面和明确,策略成为一个越来越重要的方面 。这可以是技术相关的内容,例如,一个服务对安全性方面的要求;也可以是与业务有关的语义方面的内容,例如,需要满足的费用或者服务级别方面的要求,这些策略对于服务在交互时是非常重要的 。
【soa是啥 soa是什么意思】三.SOA的架构层次
进行SOA类型的架构设计就需要搞清楚SOA架构模型才行 。并不能想当然的对系统进行简单的拆分就行,需要搞清楚SOA的架构模型是怎样的,每一块是干什么用的,这样设计由分析阶段输出的需求时才能正确的划分职责 。
如果把SOA的架构简单的理解为是多个子系统之间的整合其实有点太过于简单,也没有真正搞清楚SOA的架构模型 。按照SOA的正确方法论及目标模型,其实SOA在实现架构落地上,需要考虑到对服务的组合,不断的重用现有的服务,让企业应用可以逐步集成,快速实现业务的迭代 。其实这就是本节要讲的服务的分层,通过分层将服务按照使用类型进行分配,上层服务对下层服务的包装,下层服务负责原子性的操作,上层服务对下层服务进行业务性的组合 。
我们来看具体的每一层的作用及主要职责 。
2.1.应用服务(原子服务)
应用服务就是诸如:订单服务、仓库服务、销售服务、客户管理服务,这些服务直接对应不同的应用系统,直接服务这些应用系统的原子操作 。订单服务直接原子性的插入订单,没有任何跨其他服务的分支逻辑 。仓库服务只管自己的仓库逻辑 。同样其他的应用服务只管好自己的职责,杜绝对其他服务的调用 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。