《从 0 开始学架构》学习归整(十六)分层架构和SOA

内容纲要

分层架构

分层架构也叫 N 层架构。其能够较好的支撑扩展的本质其一在于隔离关注点,即每个层中的组件只会处理本层的逻辑,其二在于分层时保证层与层之间的依赖稳定的。

设计核心

  • 不能太多层
  • 需要保证各层之间的差异足够清晰
  • 边界足够明显
  • 让人看到架构图后就能看懂整个架构

架构特点

  • 特点:层层传递(一旦分层确定,整个业务流程按照层进行依次传递,不能在层之间跳跃)
  • 优点
    • 降低系统复杂度(强制将分层依赖限定为两两依赖)
  • 缺点
    • 冗余(不管业务简单与否,每层都必须参与处理)
    • 性能浪费(每一层都要处理;在机器性能过剩的现在,影响不大)

常见分层架构

C(Client)/S 架构 & B(Browser)/S 架构

  • 划分的对象
    • 整个业务系统
  • 划分的维度
    • 用户交互
      • 和用户交互的部分独立为一层
      • 支撑用户交互的后台作为另一层

C/S

MVC 架构、MVP 架构

  • 划分的对象
    • 单个业务子系统
  • 划分的维度
    • 职责
      • 不同的职责划分到独立层
    • 特点
      • 各层依赖关系比较灵活

MVC

逻辑分层架构

  • 划分的对象
    • 单个业务子系统
    • 整个业务系统
  • 划分的维度
    • 职责
      • 不同的职责划分到独立层
    • 特点
      • 层自顶向下依赖(操作系统内核架构、TCP/IP架构 等)

Andriod

SOA

SOA 即 Service Oriented Architecture,中文翻译为“面向服务架构”。

关键概念

服务

所有业务功能都是一项服务,服务就意味这对外提供开放能力,当其他系统需要使用这项功能时,不需要定制化开发。服务可大可小,可简单也可复杂。

ESB

ESB 的英文全称为 Enterprise Service Bus,中文翻译为“企业服务总线”。它将企业中的各个服务连在一起。

松耦合

松耦合的目的是减少各个服务之间的依赖关系和互相影响。

松耦合

使用场景

SOA 通常在更高的层级出现(如:企业采用 SOA 架构来构建 IT 系统),而不会单独用在某个独立系统(如:人事管理系统)中。

特点

  • 优点
    • 解决传统 IT 系统重复建设和扩展效率低问题
  • 缺点
    • 复杂度增加(ESB:协议转换、数据转换、透明动态路由等)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注