系统架构概述

一、 系统架构的核心概念与模型

1. 架构的定义

  • 核心内涵:体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系,以及指导它的设计和发展的原则
  • 经典公式:软件体系结构 = {构件(Component),连接件(Connector),约束(Constraint)}
  • IEEE定义:架构是系统中一组基础概念和属性,表现为元素关系 以及设计与演进基本原则

2. 架构设计的过程与作用

  • 迭代过程:在建立软件架构的初期,选择一个合适的架构风格是首要任务。通过架构模型理解架构属性,为未来的实现与演化建立目标
  • 核心作用:
    • 解决复杂需求,分解问题
    • 保障性能、安全性等非功能属性(质量属性)
    • 支持系统集成与扩展
    • 作为开发蓝图指导团队协作

架构模型分类

  • 结构模型:以架构的构建、连接件和其他概念来刻画结构
  • 框架模型:侧重于整体结构的抽象模式
  • 动态模型描述:对结构或框架模型的补充,主要研究系统的大颗粒行为的性质。(如系统的重新配置或演化)
  • 4+1 视图模型: 逻辑视图(功能)、开发视图(代码组织)、过程视图(并发/同步)、物理视图(部署拓扑)+ 场景视图(用例)

二、 主流架构风格详解

1. 数据流风格

  • 管道-过滤器风格:专门用于将系统分成若干独立的步骤,数据在管道中流动,经过过滤器的处理(适用于数据处理流水线)

2. 调用/返回风格

  • 分层架构(Layered Architecture):事实上的标准架构。分为:
    • 表现层(UI交互)
    • 业务层(业务逻辑)
    • 持久层(SQL处理)
    • 数据层(数据存储)
  • C/S风格:主要用于网络连接的分布式系统
  • MVC风格:专门用于用户交互程序的设计
  • C2风格:用于GUI软件开发,用以构建灵活和可扩展的应用系统等

3. 独立构件风格

  • 事件驱动架构(EDA):通过事件进行异步通信
    • 事件队列(接收入口)
    • 分发器(路由到不同业务单元)
    • 事件通道(连接分发器与处理器)
    • 事件处理器(实现具体业务逻辑)
  • 平台/插件风格(微核架构):内核较小,主要功能和业务逻辑通过插件实现,具有极高的扩展性

4. 虚拟机风格

  • 提供类似虚拟机的运行环境,典型应用包括解释器或专家系统

5. 面向服务与分布式风格

  • SOA风格:主要用于企业集成,强调服务复用与松耦合
  • 微服务架构:围绕特定业务功能构建的独立部署单元。三种实现模式:
    • RESTful API 模式(云服务常用)
    • RESTful 应用模式(企业内部多功能应用)
    • 集中消息模式(采用消息代理实现队列与负载平衡)
  • 云架构:主打高扩展性 ,通过将数据复制到内存并封装业务能力为处理单元来实现。依赖四类中间件:
    • 消息中间件(请求与会话控制)
    • 数据中间件(数据复制与同步)
    • 处理中间件(协调处理单元)
    • 部署中间件(启停与负载监控)

三、 架构设计的方法论与评估

1. 基于架构的软件开发(ABSD)

  • 核心思想:由商业、质量和需求共同驱动,强调递归细化和迭代优化
  • 三个基础:功能分解、架构风格选择、软件模版应用
  • 六个子过程:体系功能需求、设计、文档化、复审、实现、演化

2. 核心质量属性与权衡

  • 性能:响应时间、吞吐量(策略:资源优化、负载均衡)
  • 可用性/可靠性:系统持续运行能力(策略:冗余设计、故障恢复、主从复制)
  • 可维护性:模块化与接口隔离(策略:抽象、信息隐藏)
  • 安全性:防范威胁(策略:加密、访问控制、防火墙)

3. 架构评估方法

  • ATAM(架构权衡分析法):最常用的评估方法,通过场景分析验证架构可行性,寻找敏感点、风险点和非风险点

四、 架构设计核心原则

  • 高内聚低耦合:模块功能集中,减少模块间依赖
  • 开闭原则:对扩展开发,对修改封闭
  • 单一职责原则:每个模块仅负责一个明确的功能
  • 抽象与治理:通过接口标准化隐藏细节,组件独立运行与部署(如容器化)
相关推荐
marsh02061 小时前
61 openclaw电商系统架构:从需求到实现的完整方案
ai·系统架构·技术美术
@insist1232 小时前
系统架构设计师-计算机系统基础核心考点精析
系统架构·软考·系统架构设计师·软件水平考试
HavenlonLabs16 小时前
硬件 + SaaS 产品的工程化路径:从系统架构、PCB 设计到工程样机
网络·安全·架构·系统架构·安全架构
夜月yeyue21 小时前
STM32 DMA 双缓冲采样
linux·stm32·单片机·嵌入式硬件·系统架构
小短腿的代码世界1 天前
Qt D-Bus深度解析:跨进程通信高级架构与源码实现
qt·架构·系统架构
zhuhai_xigedian1 天前
源网荷储一体化 vs 传统供用电模式:差异、优势与转型路径
大数据·人工智能·分布式·系统架构·能源
热爱正能量1 天前
电商架构图
系统架构
@insist1231 天前
系统架构设计师-存储管理核心机制:页式、段式、段页式架构原理
架构·系统架构·软考·系统架构设计师·软件水平考试
@insist1232 天前
系统架构设计师-操作系统进程管理核心知识点详解
架构·系统架构·软考·系统架构设计师·软件水平考试