六种常见软件架构模式(部分)

软件架构模式分析了解软件架构模式概念学习常见的架构模式熟悉架构模式应用方法 万物皆是接口,万物都是增删改查 概念 架构的定义 架构是构成一个系统的基础组

软件架构模式分析

  1. 了解软件架构模式概念

  2. 学习常见的架构模式

  3. 熟悉架构模式应用方法

 

 

万物皆是接口,万物都是增删改查

概念

架构的定义

架构是构成一个系统的基础组织结构,包括系统的组件构成,组件间的相互关系、系统和其所在环境的关系、以及知道架构设计和演进的相关准则。

 

架构的特性

  • 架构定义系统的结构

  • 架构定义系统的行为和交互

  • 架构只关注影响系统的重要元素

  • 架构遵循一种架构风格

  • 架构需要平衡干系人的需求

  • 架构受所处环境的约束,反过来也影响它的环境

  • 架构不仅仅要实现最后产出,还必须保证是合理和正确的。

  • 大多数的架构难点都和质量参数相关,而不是功能需求。

  • 跟我重复:上下文上下文上下文

 

架构风格

架构风格定义:以结构组织模式定义的一类系统族。一种软件体系结构风格刻画了一个类似结构和语义的系统家族。内容包括:

  • 构件

  • 交互关系

  • 约束条件

遵循架构风格的好处:

  • 建立共识

    • 架构遵循某种风格,使相关人员更加理解架构,降低沟通成本。

    • 遵循架构风格,可以加快架构选型

  • 架构沉淀

    • 基于架构风格,可以快速的明确架构中需要复用/沉淀的构件,形成架构框架

  • 促进复用

    • 架构规划中遵循适合的架构风格,可以提升效率,规避风险

    • 设计中遵循架构风格,提升开发效率。

 

架构风格风格分类
数据流风格 批处理
  管道/过滤器
调用/返回风格 主程序/子程序
  面对对象风格
  层次风格
独立构建风格 进程通讯
  事件系统
虚拟机风格 解释器
  基于规则的系统
仓库风格 数据库系统
  超文本系统
  黑板系统

 

框架是软件,架构不是软件

 

 

框架的作用:

  • 通过框架实现了架构的沉淀落地

  • 框架的质量决定了系统整体架构的质量

  • 对框架的验证,验证了整体系统架构

 

架构模式

  1. 模式定义:模式(Pattern)是表示上下文(Context)、系统目(System of Forces)、 解决方案(Solution)三个方面关系的一个规则,每个模式描述了一个在某种 Context 下个跌里风发生的问题,以及该问题解决方案的核心所在,模式即是一个事物(thing)又是一个过程(process),不仅描述该事物本身,而且提出了通过怎样的过程来产生该事物。

  2. 架构模式定义:

    • 架构模式是对以往系统的架构抽象而形成的模板

    • 是对某个具体环境下问题的结构性解决方案

    • 内容包括:

      • 提供一些事先定义好的子系统,指定它们的责任

      • 给出把它们组织在一起的法则和指南.

  3. 架构风格与架构模式的异同:

    • 概念上,通常可以互用

    • 架构风格反映了系统遵循的某种模式,是一类系统的抽象总结描述

    • 架构模式,是架构风格具体化的模板,可以包含—种或多种架构风格,是为了实现某个目标,而形成的解决方案模板。

 

模式的构成

 

 

 

模式的层次分类

架构模式(ArchitectureStyles):

  • 是系统的高层次策略,涉及到大尺度的组件以及整体性质

  • 可作为具体软件架构的模板,是开发一个软件系统时的基本设计决策

  • 规定了系统范围结构特性,架构模式的好坏影响到总体布局和框架性结构

  • 架构模式如:分层架构、SOA架构、事件驱动架构等

设计模式(Design Patterns):

  • 是中等尺度的结构策略。实现了一些大尺度组件的行为和它们之间的关系

  • 模式的好坏不会影响到系统的总体布局和总体框架

  • 设计模式定义出子系统或组件的微观结构

  • 设计模式如:代理模式、观察者模式等23个基本设计模式

代码模式(Idioms):

  • 是特定的范例和与特定语言有关的编程技巧

  • 处理特定设计问题的实现,关注设计和实现方面

  • 模式的好坏会影响中等尺度组件的内部、外部的结构或行为的底层细节

  • 如:比如,类名,变量名,函数名的命名规则;编码规范;异常处理的规则等

 

FEAF(联邦企业架构框架)

 

 

 

常见的架构模式

架构的崩坍

 

 

 

向前兼容、向后兼容

 

六种常见的架构模式

  1. 分层架构

  2. SOA架构

  3. 微服务架构

  4. 事件驱动架构

  5. 内存空间架构

  6. 微内核架构

 

 

 

分层架构

 

 

 

 

 

 

 

分层架构反模式 - 层开放

 

 

 

 

分层架构模式评估

 

SOA架构

 

 

 

 

SOA架构的基本特征

 

 

 

 

SOA参考模型

 

 

 

 

SOA的优缺点

 

 

 

 

SOA架构模式评估

 

微服务

 

 

 

 

 

微服务架构来源分析

 

 

 

 

微服务架构特征1

 

 

 

 

微服务架构特征2

 

 

 

 

微服务架构 - 拓扑结构1

 

 

 

 

微服务架构 - 拓扑结构2

 

 

 

 

微服务与SOA架构差异

 

 

 

 

微服务粒度问题

 

 

六大架构模式评估

 

 

 

 

 

架构设计原则和过程

 

 

 

明确架构大方向 - 架构模式的选择

 

 

 

 

架构评估 - 运行态架构质量

 

 

 

架构评估 - 开发态架构质量

 

 

 

 

架构的平衡性评估 - 架构质量间的关系

 

 

 

 

混搭的架构模式

 

架构模式与技术专业委员会的关系