传统可扩展架构模式:分层架构和SOA

第81篇

极客时间《从0开始学架构》课程笔记。

分层架构

分层架构也叫N层架构,一般至少是2层,如C/S、B/S;常见3层架构如MVC、MVP;4层以上架构比较少见。
根据划分维度和对象分为以下3类:

1、C/S架构、B/S架构

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


C/S 架构结构图

2、MVC架构、MVP架构

将不同的职责划分到独立层,但各层的依赖关系比较灵活。
划分对象:单个业务子系统
划分维度:职责

MVC架构

3、逻辑分层架构

与MVC、MVP不同,逻辑分层架构中的层是自顶向下依赖的。典型的有操作系统内核架构、TCP/IP 架构
划分对象:单个业务子系统或整个业务系统
划分维度:职责

Android 操作系统架构图

分层架构的核心和本质

分层架构设计核心:需要保证各层之间的差异足够清晰,边界足够明显,让人看到架构图后就能看懂整个架构,
分层架构的本质:隔离关注点(separation of concerns),即每个层中的组件只会处理本层的逻辑。
分层原则:要保证层与层之间的依赖是稳定的,才能真正支撑快速扩展。
分层架构的特点:层层传递,也就是说一旦分层确定,整个业务流程是按照层进行依次传递的,不能在层之间进行跳跃。

分层架构的优缺点

优点:强制将分层依赖限定为两两依赖,降低了整体系统复杂度。

缺点:
1、冗余。不管这个业务有多么简单,每层都必须要参与处理,甚至可能每层都写了一个简单的包装函数。
2、性能。因为每一次业务请求都需要穿越所有的架构分层,有一些事情是多余的,理论上多少都会有一些性能的浪费,但是在实际应用中可以忽略不计。

SOA

SOA 的全称是 Service Oriented Architecture,中文翻译为“面向服务的架构”。
SOA 更多是在传统企业(例如,制造业、金融业等)落地和推广,在互联网行业并没有大规模地实践和推广。
SOA 出现 的背景是企业内部的 IT 系统重复建设且效率低下

SOA的3个关键概念

1、服务

所有业务功能都是一项服务,服务就意味着要对外提供开放的能力,当其他系统需要使用这项功能时,无须定制化开发。服务可大可小,可简单也可复杂,需要根据企业的实际情况进行判断。

2、ESB

ESB 的全称是 Enterprise Service Bus,中文翻译为“企业服务总线”。ESB 将企业中各个不同的服务连接在一起,统一各个异构系统对外提供接口的标准,屏蔽异构系统对外提供各种不同的接口方式,以此来达到服务间高效的互联互通。

3、 松耦合

松耦合的目的是减少各个服务间的依赖和互相影响。因为采用 SOA 架构后,各个服务是相互独立运行的,甚至都不清楚某个服务到底有多少对其他服务的依赖。可以说某个企业采用了 SOA 的架构来构建 IT 系统,但不会说某个独立的系统采用了 SOA 架构。SOA 解决了传统 IT 系统重复建设和扩展效率低的问题,但其本身也引入了更多的复杂性。

你可能感兴趣的:(传统可扩展架构模式:分层架构和SOA)