soa

SOA

SOA 的探索大概始于 2000 年(概念产生可能更早一些),大家知道当初 ERP、CRM、OA 之类的信息系统都是一套套部署起来的,不同系统往往由不同的供应商分别开发的,技术差别也很大,各个系统孤零零的,企业于是有了应用集成和数据集成的需求,SOA 就出来了,各个系统对外提供粗粒度的服务供外部系统访问,所有的服务都集中在一个 ESB 上,曾经 SOA 和 SOA 治理是信息化领域的热门话题,然而这种集成方式开发代价大、通信效率低,且有单点故障的风险, 实际上在企业中并没有得到大规模应用。

微服务架构则是在互联网相当成熟的时代,互联网业务规模增长快,变更多且频繁,互联网技术团队强烈关注 DevOps 和持续交付这样的研发理念,传统的单体架构无法满足迭代速度、系统扩展性、资源利用率优化等需求,微服务架构就闪亮登场了,通过解耦,解决掉各种难题。亚马逊、Netflix 和 Facebook 等主要的互联网公司,就是微服务架构实践的先驱,他们取得了很好的效果,也产生了一系列的最佳实践。


SOA(面向服务的软件架构、Service Oriented Architecture),是一种软件设计模式,主要应用于不同应用组件之间通过某种协议来互操作。例如典型的  通信网络协议。因此SOA是独立于任何厂商、产品、技术的。

SOA有两个层面的定义:

  • 从应用的角度定义:SOA是一种应用框架,它着眼于日常的业务应用,并将他们划分为单独的业务功能和流程,及所谓的服务。
  • 从软件的基本原理定义:SOA是一个组件模型,它将应用程序的不同功能单元(服务)通过这些服务之间定义良好的接口和契约联系起来。
SOA对于实现企业资源共享,打破 “信息孤岛” 的步骤如下:
  1. 把引用和资源转换为对象;
  2. 把这些服务编程标准的服务,形成资源的共享;
基于SOA的解决方案,SOA架构可分为五层水平:
  • 用户界面层 ---- 这些GUI的最终用户或应用程序访问的应用程序/服务接口;
  • 业务流程层 ---- 在应用方面的业务用例服务;
  • 服务层 ---- 服务合并在一起,提供统一的实时服务;
  • 服务组件层 ---- 用来建造服务的组件,如功能库、技术库、技术接口等;
  • 操作系统 ---- 这层包含数据模型,企业数据仓库,技术平台等;
因为SOA不依赖于任何技术,因此SOAP、RPC、REST是对SOA的不同实现。
 
 
 

二、SOA主要的使用场景,如下图:

   

通过上面的图我们可以看出,多个子系统直接相互交互,相互调用非常凌乱,这样我们就很不爽,所以我们就用到了我们的SOA架构,SOA又叫服务治理,SOA就是帮助我们把服务之间调用的乱七八糟的关系给治理起来,然后提供一个统一的标准,把我们的服务治理成下图所示,以前我们的服务是互相交互,现在是只对数据总线进行交互,这样系统就变得统一起来。

统一标准:各系统的协议、地址、交互方式。

 

在认识微服务之前,我们先来看一下在微服务未出现时的传统单体架构服务(即单机服务)。

 
 
 
原文地址:https://www.cnblogs.com/jentary/p/11381632.html