内容纲要
分层架构
分层架构也叫 N 层架构。其能够较好的支撑扩展的本质其一在于隔离关注点,即每个层中的组件只会处理本层的逻辑,其二在于分层时保证层与层之间的依赖是稳定的。
设计核心
- 不能太多层
- 需要保证各层之间的差异足够清晰
- 边界足够明显
- 让人看到架构图后就能看懂整个架构
架构特点
- 特点:层层传递(一旦分层确定,整个业务流程按照层进行依次传递,不能在层之间跳跃)
- 优点
- 降低系统复杂度(强制将分层依赖限定为两两依赖)
- 缺点
- 冗余(不管业务简单与否,每层都必须参与处理)
- 性能浪费(每一层都要处理;在机器性能过剩的现在,影响不大)
常见分层架构
C(Client)/S 架构 & B(Browser)/S 架构
- 划分的对象
- 整个业务系统
- 划分的维度
- 用户交互
- 和用户交互的部分独立为一层
- 支撑用户交互的后台作为另一层
- 用户交互



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



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



SOA
SOA 即 Service Oriented Architecture,中文翻译为“面向服务架构”。
关键概念
服务
所有业务功能都是一项服务,服务就意味这对外提供开放能力,当其他系统需要使用这项功能时,不需要定制化开发。服务可大可小,可简单也可复杂。
ESB
ESB 的英文全称为 Enterprise Service Bus,中文翻译为“企业服务总线”。它将企业中的各个服务连在一起。
松耦合
松耦合的目的是减少各个服务之间的依赖关系和互相影响。



使用场景
SOA 通常在更高的层级出现(如:企业采用 SOA 架构来构建 IT 系统),而不会单独用在某个独立系统(如:人事管理系统)中。
特点
- 优点
- 解决传统 IT 系统重复建设和扩展效率低问题
- 缺点
- 复杂度增加(ESB:协议转换、数据转换、透明动态路由等)