软考 - 架构设计师 知识点总结 架构的分类按软件层划分网络架构系统架构数据架构业务架构应用架构平台架构按解决的问题领域划分电商架构支付架构搜索架构安全架构性能架构游戏架构多媒体架构等按工作深度划分集成架构业务架构模块架构框架架构中间件架构软件架构引擎架构服务器架构编程语言架构架构设计类型架构设计可分为集中式架构分层架构分布式架构SOA架构面向资源架构进程间通信IPC进程间通信IPCInter-Process Communication指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作才有了进程间通信。这些进程可以运行在同一计算机上或网络连接的不同计算机上。IPC 技术包括消息传递同步共享内存远程过程调用IPC 是一种标准的 Unix 通信机制。IPC 的两种类型本地过程调用LPC用于多任务操作系统中使得同时运行的任务能互相会话。这些任务共享内存空间使任务同步和互相发送信息。远程过程调用RPC类似于 LPC但在网络上工作。最初出现在 Sun 微系统公司和 HP 公司的 UNIX 操作系统中。通过 IPC 和 RPC程序能利用其它程序或计算机处理的进程。客户机/服务器模式计算把远程过程调用与消息传递等技术作为系统间通信的一种机制。架构设计的目的架构设计的主要目的是解决软件系统复杂度带来的问题。网关扩展与任务分发单个网关扩展成多个后需要将任务分发给不同的网关。常见方法包括DNS 轮询智能 DNSCDN内容分发网络GSLB 设备全局负载均衡高可用性高可用通过冗余备份和失效转移实现。设计原则合适简单演化微服务能力要求每个微服务都应具备以下能力稳定性可靠性伸缩性容错能力高性能可监控文档化灾备能力补充说明Kafka 支持消息顺序但一台 Broker 宕机后会产生消息乱序。软件架构核心模式精要架构模式概览架构模式核心思想优点缺点适用场景单体架构所有功能高度耦合集中部署简单、直接难维护、难扩展小型应用或初期项目分层架构按职责水平分离上层调用下层结构清晰、易管理易产生层级耦合传统企业级应用微服务架构按业务拆分为自治服务松耦合弹性、可扩展、技术灵活分布式系统复杂复杂的大型系统事件驱动架构组件通过事件异步通信高扩展性、高响应性最终一致性、复杂度高实时系统、数据流处理微核架构核心系统 插件模块动态扩展灵活性好、隔离性强契约设计复杂IDE、浏览器、可扩展应用无服务器架构函数为单位事件触发云托管零运维、按需付费冷启动、厂商锁定事件驱动、突发任务云架构云环境设计原则集合多模式综合全球部署、高可用性云厂商依赖需要横向扩展的现代应用详细说明1. 单体架构核心: 所有功能模块高度耦合集中开发、部署为一个整体优点: 简单、直接缺点: 难维护、难扩展适用: 小型应用或初期项目2. 分层架构核心: 按职责表现层、业务层、数据层水平分离上层调用下层。层之间通过接口通信。优点: 结构清晰、易管理缺点: 易产生层级耦合适用: 传统企业级应用3. 微服务架构核心: 按业务能力拆分为小规模、自治的服务松耦合、独立部署。常见模式restful api模式、restful应用模式、集中消息模式优点: 弹性、可扩展、技术灵活缺点: 分布式系统复杂网络、数据、运维适用: 复杂的大型系统4. 事件驱动架构核心: 组件通过事件异步通信高度解耦。主要部件事件、事件队列、分发器、事件通道、事件处理优点: 高扩展性、高响应性缺点: 最终一致性、复杂度高适用: 实时系统、数据流处理5. 微核架构核心: 最小核心系统插件引擎 多个功能插件模块优点: 极强的灵活性和可扩展性缺点: 核心与插件契约设计复杂适用: IDE、浏览器、需要第三方扩展的应用6. 无服务器架构核心: 以函数为单位运行由事件触发云平台托管基础设施优点: 零运维、按需付费、自动伸缩缺点: 冷启动、厂商锁定适用: 事件驱动型、突发负载任务7. 云架构核心: 云环境中构建应用的设计原则集合多模式综合。主要部分处理单元、虚拟中间件优点: 全球部署、高可用性、成本优化缺点: 云厂商依赖、网络延迟适用: 需要横向扩展的现代应用系统架构的常用建模方法可以将分成4种:结构型、框架模型、动态模型和过程模型。结构模型:这是一个最直观、最普遍的建模方法。此方法以架构的构件、连接件和其他概念来刻画结构。通过结构来反映系统的重要语义内容包括系统的配置、约束、隐含的假设条件、风格和性质。研究结构模型的核心是架构描述语言。框架模型:框架模型与结构模型类似但它不太侧重描述结构的细节而更侧重整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应问题的结构。动态模型:动态模型是对结构或框架模型的补充主要研究系统的“大颗粒”行为的性质。例如描述系统的重新配置或演化。这里的动态可以是指系统总体结构的配置、建立或拆除通信或计算的过程这类系统模型常是激励型的。过程模型:过程模型是研究构造系统的步骤和过程其结构是遵循某些过程脚本的结果。架构风格架构风格适用场景管道-过滤器风格用于将系统分成若干独立的步骤主程序/子系统和面向对象的架构风格用于对组件内部进行设计虚拟机风格用于构造解释器或专家系统C/S和B/S风格适合于数据和处理分布在一定范围,通过网络连接构成系统平台/插件风格用于具有插件扩展功能的应用程序MVC风格用于用户交互程序的设计SOA风格用在企业集成等方面C2风格(Component-Connector组件-连接器架构风格)用于GUI软件开发,用以构建灵活和可扩展的应用系统等C2架构风格解析特性维度详细说明全称Component-Connector组件-连接器架构风格核心思想通过严格的组件层级规则和异步消息机制实现松耦合基本组成组件独立计算单元 连接器消息路由组件通信方式组件间通过连接器进行异步消息通知非直接调用关键约束1. 顶层组件不允许直接通信2. 底层组件通信必须通过上层连接器3. 组件间保持松耦合关系主要优势• 极高的系统灵活性• 良好的可扩展性• 组件可独立替换和修改• 支持并发处理典型应用•GUI应用程序开发• 需要高度灵活性的软件系统• 可扩展应用框架C2风格通过严格的分层消息传递机制为GUI系统提供了高度灵活和可扩展的架构解决方案特别适合需要频繁交互和动态扩展的图形化应用场景。安全攸关软件的安全性设计主要因素目标、过程、数据目标等级失效状态简要说明目标数量A级灾难性的软件异常会导致的后果是航空器无法安全飞行和着陆66B级危害性的软件异常会导致的后果是严重降低了航空器或机组在克服不利运行情况时的能力65C级严重的软件异常会导致的后果是显著降低了航空器或机组在克服不利运行情况时的能力56D级不严重的软件异常会导致的后果是轻微降低了航空器或机组在克服不利运行情况时的能力28E级没有影响的软件异常会导致的后果是不会影响航空器或机组任何能力0过程软件计划过程(需求过程、设计过程、编码过程、集成过程)软件开发过程软件综合过程(验证过程、配置管理过程、质量保证过程、审定联络过程)数据将生命周期中产生的文档、代码、报表、记录等所有产品统称为软件生命周期数据。计算机网络功能数据通信资源共享管理集中化分布式处理负载均衡指标性能指标速率带宽吞吐量时延(发送时延、传播时延、处理时延、排队时延)往返时间(RTT)利用率(信道利用率、网络利用率)非性能指标费用质量标准化可靠性可扩展和可升级性易管理性和维护性通信技术信道物理信道 - 由传输介质和设备组成 - 有线信道、无线信道逻辑信道 - 发送端、接收端间的虚拟线路信道容量C B*log_{2}(1S/N)C代表信道容量单位是 b/sB代表信号带宽单位是 HzS代表信号平均功率单位是 WN代表噪声平均功率单位是 WS/N代表信噪比单位是 dB(分贝)以太网最大帧长1518字节(最大数据帧1500字节、最小帧长64字节-不足时加入填充位)帧头设有32位用于CRC32校验(参与校验的是帧头中除前导字段和帧起始符之外的部分)DMAC(目的MAC地址) - SMAC(源MAC地址) - Length/Type(2字节数据,值大于1500时代表数据帧类型,值小于1500则代表数据帧的长度) - Data/Pad(数据/填充字符) - FCS(帧校验字符)无线局域网(WLAN)以微波、激光、红外线等无线电波作为传输介质假设WLAN需无线网卡和访问接入点AP安装便捷、使用灵活、经济节约、易于扩展广域网(WAN)城域网(MAN)主要技术:DQDB(由双总线构成) - IEEE802.65G高速率、低时延、大连接网络切片OSI应用层表示层会话层传输层 - TCP、UDP网络层 - 路由器 - IP、ICMP、IGMP、ARP、RARP数据链路层 - 网桥、交换机(自动寻址与交换、避免端口冲突、提高网络吞吐)物理层 - 中继器(识别信号然后再生信号可以连接不同物理介质)TCP/IP应用层(应用层、表示层、会话层)传输层(传输层)网络层(网络层)网络接口层(数据链路层、物理层)交换机 - 数据链路层功能集线功能中继功能 - 转发帧时重新生成不失真的信号桥接功能隔离冲突域原理转发路径学习 - 记录数据帧中的源MAC地址建立MAC地址表数据转发 - 根据MAC地址表进行转发数据泛洪 - MAC地址表不存在时想所有端口转发(不包含源端口)链路地址更新 - MAC地址表每隔一定时间更新一次(如300s)协议生成树协议STP - 避免环路链路聚合 - 提高带宽、提升链路可靠性路由器 - 网络层在多个网络上交换和路由数据包根据信道情况自动选择和设定路由按最佳路径、先后顺序发送信号路由表 - 包含网络目的地址、端口、下一跳地址、发送代价协议内部网关协议IGPRIP-1、RIP-2 路由信息协议基于距离矢量算法的路由协议利用跳数作为计量标准IGRP - 内部网关路由协议 - 思科的专有协议EIGRP - 增强型IGRP拓扑结构变化时才发送路由更新IS-IS - 中间系统到中间系统基于链路状态路由协议OSPF - 开放式最短路径优先属于链路状态路由协议。提出了区域的概念外部网关协议EGPBGP协议网络工程网络规划网络设计网络实施UML常用图用例图由参与者Actor、用例Use Case边界以及它们之间的关系构成的用于描述系统功能的视图。用例之间的关系有包含、扩展、泛化。类图展现了一组对象、接口、协作和它们之间的关系。类之间的关系有关联、依赖、实现、泛化。对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。构件图描述一个封装的类和它的接口、端口以及由内嵌的构件和连接件构成的内部结构。组合结构图用于画出结构化类的内部内容。顺序图序列图由一组对象或参与者以及它们之间可能发送的消息构成。强调消息的时间次序的交互图。通信图强调收发消息的对象或参与者的结构组织。强调的是对象之间的组织结构关系。定时图强调消息跨越不同对象或参与者的实际时间而不仅仅只是关心消息的相对顺序。状态图用来描述一个特定的对象所有可能的状态以及由于各种事件的发生而引起的状态之间的转移和变化。活动图将进程或其他计算的结构展示为计算内部一步步的控制流和数据流。可并行。部署图软件和硬件组件之间的物理关系以及处理节点的组件分布情况。制品图描述计算机中一个系统的物理结构通常与部署图一起使用。包图描述由模型本身分解而成的组织单元以及它们之间的依赖关系。交互概览图是活动图和顺序图的混合物UML系统架构视图与对应图表视图要点描述图形表示关心人员用例视图描述系统的功能需求系统功能模型用例图客户、分析者、设计者、开发者和测试者逻辑视图描述如何实现系统内部的功能系统的静态结构和应发送消息而出现的动态协作关系类图、对象图、状态图、顺序图、协作图和活动图系统分析和设计人员进程视图描述系统的并发性并处理这些线程间的通信和同步它将系统分割成并发执行的控制线程及处理这些线程的通信和同步状态图、顺序图、协作图、活动图、构件图和部署图开发者和系统集成者实现视图描述系统代码构件组织和实现模块及它们之间的依赖关系构件图设计者、开发者和测试者部署视图定义系统中软硬件的物理体系结构及连接、哪个程序或对象驻留在哪台计算机上执行部署图开发者、系统集成者和测试者注用例视图是系统的中心视图它定义了系统的外部行为是其他视图的核心和基础。多媒体概述媒体是承载信息的载体即信息的表现形式如文字、声音、图像、动画、视频等。媒体分为以下五类① 感觉媒体定义指用户接触信息的感觉形式直接作用于人的感官产生感觉视、听、嗅、味、触觉的媒体。举例视觉、听觉、触觉。② 表示媒体定义指信息的表示形式。感觉媒体转换成表示媒体后能够在计算机上进行加工处理和传输。举例图像、声音、视频等。③ 表现媒体显示媒体定义表现和获取信息的物理设备。分类举例输入表现媒体键盘、鼠标、扫描仪、话筒、数码相机、摄像机。输出表现媒体显示器、打印机、音箱、投影仪。④ 存储媒体定义用于存储表示媒体的物理介质。举例硬盘、软盘、光盘、ROM 及 RAM 等。⑤ 传输媒体定义传输表示媒体即数据编码的物理介质。举例电缆、光缆、电磁波等。系统工程为了最好地实现系统对系统组成要素、组织结构、信息流、控制机构等进行分析研究的科学方法目的最优规划最优设计最优管理最优控制系统工程方法霍尔的三维结构用于组织喝管理大型工程建设项目时间维度系统工程活动从开始到结束按时间顺序排列的全过程规划拟定方案研制生产安装运行更新逻辑维度时间维度的每个阶段内要进行的工作内容喝应该遵循的思维程序明确问题确定目标系统综合系统分析优化决策实施知识维度专业科学知识切克兰德方法P.切克兰德把霍尔方法论称为“硬科学”方法论他自己的方法论称为“软科学”方法论。其核心不是“最优化”而是“比较”与“探寻”。工作过程认识问题根底定义建立概念模型比较及探寻选择设计与实施评估与反馈。并行工程方法对产品及相关过程进行并行、集成化处理的系统方法和综合技术产品的设计开发期间以最快的速度按要求的质量完成。各项工作由此相关的项目小组完成对出现的问题协调解决。依据适当的信息系统工具综合集成法分为简单系统和巨系统整体论原则相互联系原则有序性原则动态原则WSR系统方法物理、事理、人理方法论的简称理解意图制定目标调查分析构造策略选择方案协调关系实现构想生命周期探索性研究阶段 — 识别利益攸关者的需求探索创意和技术。概念阶段 — 细化利益攸关者的需求探索可行概念提出有望实现的解决方案。