C2软件架构风格

前言

C2架构风格是一种常见的层次体系架构风格。该架构风格概括而言,是由连接件绑定的按一定规则运行的并行构件网络,在该架构风格中,各构件之间不能直接连接,只能通过连接件的异步通信机制进行交互,使得构件的替换或更新不影响架构,这种方式体现了高内聚,松耦合的设计思想。

C2简介

特点

在C2架构风格中,构件与连接件有以下几点:

  1. 构件之间不能直接连接
  2. 构件,连接件都有顶部与底部
  3. 构件顶部或底部只能与连接件底部或顶部相连,
  4. 连接件相互之间可通过顶部及底部连接
  5. 构件不感知下一层构件
  6. 构件可以感知上一层构件
  7. 构件之间通过连接件的异步消息机制交互

C2架构图所下所示:

C2软件架构风格_第1张图片

 

C2架构

消息机制

在C2风格中,构件与构件之间只能通过消息进行交互中,因此将消息分为了两类,

  1. 请求:下一层构件通过顶层向上一层构件底层发送的消息
  2. 通知:上一层构件通过底层向下一层构件发送的消息

 

从上可知,C2中的构件存在两个部件,即

  1. 顶层域:能对哪些通知做出响应及会发出哪些请求
  2. 底层域:能请收哪些请求及会发出哪些通知

 

同时若构件之间的消息如果不能直接解析,还需要一个域转换器进行消息及请求的转换。

 

构件组成

在C2中一个完整的符合定义的构件由以下几个部分组成。

C2软件架构风格_第2张图片

 

构件组成

InternalObject:内部对象,业务领域的具体实现

Wrapper:内部对象的包装类,可选项

DomainTranslator:域转换器,可选,用于对接收到的请求或响应进行转换

Dialog&Constranits:控制器,接收到请求或响应并转换成内部调用

优点

松耦合,上层构件对下层构件不感知,方便更新或替换下层构件。

高内聚,构件之间通过消息交互,相对独立,可以封装任意复杂度的构件至系统中

易扩展修改,构件只与上下层构件交互,功能的修改最多只影响上下层,不扩散影响。

可重用,只要符合请求及响应标准,就可重用构件。

缺点

效率低若业务处理涉及多个构件层次,在系统执行过程中将存在性能损耗

层次不清:难以划分出合适的,正确的层次结构,有时由于需求,需要跨层交互,增加复杂性

 

 

案例

OSI参考模型

你可能感兴趣的:(系统架构)