【系统架构师】-论文考点整理
1、软件架构风格
1.1、概述
1、软件架构为软件系统提供了一个结构、行为和属性的高级抽象。
2、软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约束。
1.2、作用
1、软件架构是项目干系人进行交流的手段。
2、软件架构是可传递和可复用的模型,通过研究软件架构可能预测软件的质量。
3、软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。
1.3、视角与视图
参考 【系统架构师】-软件架构设计-CSDN博客
2、系统可靠性分析与设计
2.1、定义
系统在规定的时间内及规定的环境条件下,完成规定功能的能力,就是系统无故障运行的概率。
2.2、4个子特性
成熟性、容错性、易恢复性、依从性
2.3、提高系统可靠性技术
(1)冗余技术;
(2)软件容错技术;
(3)双机容错技术;
(4)集群技术。
2.4、正文概述
在架构设计期间,可靠性的要求是较为明确的,系统的核心模块运行可靠性要有保障。因此我们回顾主流的软件可靠性设计技术:
(1)容错设计技术:是应用程序所运行的软件或硬件中发生的错误并从错误中恢复所采用的设计技术,主要包括:恢复块设计、N 版本程序设计、冗余设计、卫防式程序设计等,它的设计要求,要有错误自我修复的能力;
(2) 检错技术: 是建立软件系统查错机制,对程序中模块进行监控,旦超过设定的闹值或检测到错误发出报警通知负责人处理错误,主要包括:漏洞扫描、记录日志等,它的设计要求,要有系统监控与预警错误的能力;
(3) 降低复杂度设计: 通过简化软件结构,缩短程序代码,优化软件数据流向,降低软件复杂度,从而提高软件可靠性,它的设计要求,系统的程序实现是简单的、尽量降低复杂程度。
在回顾了主流的软件可靠性设计之后,我们重点的分析了核心功能可靠性设计要求,例如:资源搜索、资源预览、资源下载、扫码支付等这些核心功能,要有错误的修复能力,因此决定采用容错设计技术实现这些功能运行可靠性。另外,要实现系统的错误预警处理,能够对系统出现的异常、错误进行收集与处理,因此决定采用检错技术实现系统监控。
参考 【系统架构师】-系统可靠性分析与设计_可靠性计算 mttf-CSDN博客
3、系统安全性与保密性设计
3.1、概述
指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
安全性又可划分为机密性[信息不泄露给未授权的用户] 、完整性[防止信息被篡改] 、不可否认性[不可抵赖] 及可控性[对信息的传播及内容具有控制的能力] 等特性。
3.2、战术
抵抗攻击 | 通过各种技术手段和策略减少系统遭受攻击的可能性 | 使用加密技术保护数据,实施访问控制 |
检测攻击 | 识别正在进行或已经发生的攻击,以便及时采取响应措施 | 安装入侵检测系统(IDS),日志分析 |
从攻击中恢复 | 在系统遭受攻击后,恢复系统的正常运行状态 | 数据备份和恢复方案,错误隔离和修复 |
3.3、四大分类
信息安全:预警、保护、检测、响应、恢复和反击
网络安全:认证鉴别、访问控制。机密性(密钥)、完整性、抗抵赖性
数据库安全:实体、参照、自定义完整性约束
系统安全:系统架构的脆弱性
1、软件设计的瑕疵
2、软件实现中的弱点
3、软甲本身的瑕疵
4、系统和网络的错误配置
参考:【系统架构师】-第18章-安全架构设计-CSDN博客
4、微服务架构
4.1、概述
微服务架构是一种新型的架构模式,将一个大型的单个应用或服务拆分成多个微服务,每个服务运行在其独立的进程内,服务之间相互协调,互相配置,为用户提供最终的价值。
4.2、优势及挑战
基于微服务的系统包含以下优势:
(1)复杂应用解耦。微服务架构将单一模块应用分解为多个微服务,同时保持总体功能不变。(2)独立。微服务在系统软件生命周期中是独立开发、测试及部署的。
(3)技术选型灵活。每个开发团队可根据自身应用的业务需求发展状况选择合适的体系架构与技术。
(4)容错。故障会被隔离在单个服务中。
(5)松耦合,易扩展。
基于微服务的系统带来的挑战:
(1)分布式特性。分布式系统的编程难度更大,因为远程调用慢,而且总存在失败的风险;
(2)最终一致性。分布式系统的强一致性很难,开发人员需要处理最终一致性的问题;
(3)运维复杂性:需要成熟的运维团队,管理很多需要重新部署的服务。
5、企业集成架构
1)数据集成:数据集成是一种白盒集成,集成点位于中间件处,需要考虑各集成子系统的数据流向,并将各个子系统有机结合起来,主要包含基于中间件技术的集成架构;
2)表现集成:是一种黑盒集成,即将各个界面子系统集成在一起,无需考虑各个子系统内部的具体数据流向
3)控制集成:也被称为应用集成,是一种黑盒集成,并且集成点位于程序代码中,用户仅需要对各子系统进行简单的API函数调用,主要包括基于API函数的集成架构。
参考 软考高级之系统架构师之企业应用集成EAI_企业应用集成 表示 控制 数据-CSDN博客
6、基于架构的软件设计ABSD、SAAM、ATAM
6.1、基于场景的评估方式分类
架构权衡分析法 ATAM(质量属性)、软件架构分析法 SAAM 、成本效益分析法 CBAM。
6.2、ATAM
基于SAAM,主要针对性能、实用性、安全性、可修改性。对这些质量属性评价和折中
过程
描述和介绍阶段:描述ATAM方法,描述业务动机,描述架构
调查和分析阶段:确定架构方法,生成质量属性效用树,分析架构方法
测试阶段:讨论场景和对场景分级,分析架构方法
最终阶段:描述评估结果
参考 【系统架构师】-软件架构评估_架构师如何评估一个系统-CSDN博客
7、设计模式
8、质量属性设计
相关文章:

【系统架构师】-论文考点整理
1、软件架构风格 1.1、概述 1、软件架构为软件系统提供了一个结构、行为和属性的高级抽象。 2、软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约束。 1.2、作用 1、软件架构是项目干系人进行交流的手段。 2、软件架构是可传递和可复用的模型&…...

Android Activity 设计详解
文章目录 Android Activity 设计说明1. Activity 的生命周期2. Activity 的启动模式3. Activity 的通信4. Activity 的布局和视图管理5. Activity 的配置变化处理6. Activity 的保存和恢复状态7. Activity 的任务和返回栈 总结 Android Activity 设计说明 在 Android 中&#…...
国家开放大学,javaScript程序设计-形考任务-实训五:设计登录和注册页|实训六:设计简单的购物车
实训五:设计登录和注册页 1. 题目 设计登录和注册页。 2. 目的 (1)掌握表单域的引用方法。 (2)掌握常用控件的基本方法。 (3)掌握事件的处理方法。 (4)理解Cookie…...

微服务可用性之隔离
摘要 本文主要微服务场景下服务的可用性保障之隔离。隔离又分为几种情况,动静隔离、读写隔离、热点隔离、资源隔离等场景。 为什么要隔离 本质上是对资源进行分割确保在出现故障的时候服务只是部分不可用,不至于系统陷入整体性瘫痪,…...

设计模式——概述
1.设计模式定义 设计模式是软件设计中常见问题的典型解决方案,可用于解决代码中反复出现的设计问题。设计模式的出现可以让我们站在前人的肩膀上,通过一些成熟的设计方案来指导新项目的开发和设计,以便于我们开发出具有更好的灵活性和可扩展性&#…...
#P0564. 数组元素查找升级版
问题描述 给你 n 个数,再给你一个数 k,查找 k 在这 n 个数中第一次出现的位置(从 0 开始计数),不存在输出 No。 输入 多组测试数据,对于每组测试数据: 第一行输入一个整数 n (1 ≤ n ≤ 100…...

如何修改WordPress网站的域名
我的网站用的是Hostease的虚拟主机,但是域名是之前在其他平台买的,而且已经快到期了,因为主机和域名在不同的平台上,管理不太方便,所以我又在Hostease重新注册了一个域名,然后把网站换成了新的域名…...
python爬虫[简易版]
python爬数据[简易版] 对于每个网站的爬的原理基本是一样的,但是具体的代码写法的区别就在于爬的数据中解析出想要的数据格式: 以爬取有道词典中的图片为例: 第一步:打开网站,分析图片的数据源来自哪里, https://dict-subsidiary.youdao.com/home/content?invalid&pre…...

128天的创意之旅:从初心到成就,我的博客创作纪念日回顾
文章目录 🚀机缘:初心的种子——回望创作之旅的启航🌈收获:成长的果实——128天创作之旅的宝贵馈赠❤️日常:创作与生活的交织👊成就:代码的艺术🚲憧憬:未来的蓝图 &…...

前端绘制流程节点数据
根据数据结构和节点的层级、子节点id,前端自己绘制节点位置和关联关系、指向、已完成节点等 <template><div><div>通过后端节点和层级,绘制出节点以及关联关系等</div><div class"container" ref"container&…...

2024年顶级算法-黑翅鸢优化算法(BKA)-详细原理(附matlab代码)
黑翅鸢是一种上半身蓝灰色,下半身白色的小型鸟类。它们的显著特征包括迁徙和捕食行为。它们以小型哺乳动物、爬行动物、鸟类和昆虫为食,具有很强的悬停能力,能够取得非凡的狩猎成功。受其狩猎技能和迁徙习惯的启发,该算法作者建立…...
Linux 内核开发 28 内核模块文件ko文件介绍
Linux 内核开发 28 内核模块文件ko文件介绍 1. ELF格式简介 内核模块文件ko文件,格式为elf格式, ELF(Executable and Linkable Format)可执行链接格式,是一种用于存储可执行程序、目标代码、共享库和内核模块的标准文件…...

DDR5—新手入门学习(一)【1-5】
目录 1、DDR背景 (1)SDR SDRAM时代 : (2)DDR SDRAM的创新 : (3)DDR技术的演进 : (4)需求推动: 2、了解内存 (1&…...

力扣HOT100 - 138. 随机链表的复制
解题思路: class Solution {public Node copyRandomList(Node head) {if(headnull) return null;Node p head;//第一步,在每个原节点后面创建一个新节点//1->1->2->2->3->3while(p!null) {Node newNode new Node(p.val);newNode.next …...
深入分析 Android Activity (五)
深入分析 Android Activity (五) 1. Activity 的进程和线程模型 在 Android 中,Activity 默认在主线程(也称为 UI 线程)中运行。理解进程和线程模型对于开发响应迅速且无阻塞的应用程序至关重要。 1.1 主线程与 UI 操作 所有 UI 操作必须…...

Kubernetes 应用滚动更新
Kubernetes 应用版本号 在 Kubernetes 里,版本更新使用的不是 API 对象,而是两个命令:kubectl apply 和 kubectl rollout,当然它们也要搭配部署应用所需要的 Deployment、DaemonSet 等 YAML 文件。 在 Kubernetes 里应用都是以 …...

五分钟”手撕“图书管理系统
前言: 图书馆管理系统需要结合JavaSE的绝大部分知识,是一个很好的训练项目。 为了让大家更加方便的查阅与学习,我把代码放开头,供大家查询。 还有对代码的分析,我将以类为单位分开讲解。 目录 全部代码 Main类 Us…...

8个实用网站和软件,收藏起来一定不后悔~
整理了8个日常生活中经常能用得到的网站和软件,收藏起来一定不会后悔~ 1.ZLibrary zh.zlibrary-be.se/这个网站收录了超千万的书籍和文章资源,国内外的各种电子书资源都可以在这里搜索,98%以上都可以在网站内找到,并且支持免费下…...

电商内卷时代,视频号小店凭借一己之力“脱颖而出”
大家好,我是电商笨笨熊 今年618各大电商平台花样百出; 某宝更是直接取消了“预售”,从5月就开始进入618预热期; 不少玩家既开心又难过,市场如此内卷,618确实是个爆发期,但更多的需要不断压低…...

【论文笔记】| 定制化生成PuLID
PuLID: Pure and Lightning ID Customization via Contrastive Alignment ByteDance, arXiv:2404.16022v1 Theme: Customized generation 原文链接:https://arxiv.org/pdf/2404.16022 Main Work 提出了 Pure 和 Lightning ID 定制 (PuLID),这是一种用于…...
leetcode sql50题
在中文站没找到对应的集合,想来自己动手拷贝过来,方便大家面试复习用,对应英文站点: https://leetcode.com/studyplan/top-sql-50/ Select #1757. 可回收且低脂的产品 链接: https://leetcode.cn/problems/recyclable-and-low-fa…...
PHP文件读取漏洞全面剖析:触发点与利用技术
PHP文件读取漏洞全面剖析:触发点与利用技术 引言 PHP作为Web开发中最流行的语言之一,其文件操作功能强大但也暗藏风险。文件读取漏洞是PHP应用中最常见的安全问题之一,攻击者利用这些漏洞可以读取服务器敏感文件,甚至实现远程代…...
Python爬虫:trafilatura 的详细使用(快速提取正文和评论以及结构,转换为 TXT、CSV 和 XML)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、trafilatura 概述1.1 trafilatura介绍1.2 亮点特色1.3 安装二、基本使用2.1 从URL直接提取内容2.2 输出格式控制2.3 从HTML字符串提取2.4 使用命令行工具三、高级功能3.1 全局设置3.2 提取参数定制3.3 多线程批量处…...

项目-- Json-Rpc框架
目录 项目简介环境搭建Ubuntu-22.04 第三方库使用JsonCppMuduo基础类EventLoop类TcpConnection类Buffer类TcpClient类TcpServer类 服务端基本搭建客户端基本搭建 future 项目设计通用模块设计Rpc功能模块设计发现者设计提供者设计服务注册中心设计 Topic功夫模块设计主题管理中…...

linux下gpio控制
linux下gpio控制 文章目录 linux下gpio控制1.中断命令控制/sys/class/gpio/export终端命令控制led 2.应用程序控制 3.驱动代码控制 1.中断命令控制 通用GPIO主要用于产生输出信号和捕捉输入信号。每组GPIO均可以配置为输出输入以及特定的复用功能。 当作为输入时,内…...

《Vuejs设计与实现》第 8 章(挂载与更新)
目录 8.1 挂载子节点与属性 8.2 HTML Attributes 与 DOM Properties 8.3 设置元素属性的正确方式 8.4 处理 class 属性 8.5 卸载操作 8.6 区分 vnode 类型 8.7 事件处理优化 8.8 事件冒泡与更新时机问题 8.9 子节点的更新 8.10 文本节点和注释节点 8.11 片段…...
pandas 字符串存储技术演进:从 object 到 PyArrow 的十年历程
文章目录 1. 引言2. 阶段1:原始时代(pandas 1.0前)3. 阶段2:Python-backed StringDtype(pandas 1.0 - 1.3)4. 阶段3:PyArrow初次尝试(pandas 1.3 - 2.1)5. 阶段4…...

TCP相关问题 第一篇
TCP相关问题1 1.TCP主动断开连接方为什么需要等待2MSL 如上图所示:在被动链接方调用close,发送FIN时进入LAST_ACK状态,但未收到主动连接方的ack确认,需要被动连接方重新发送一个FIN,而为什么是2MSL,一般认为丢失ack在…...

AUTOSAR实战教程--标准协议栈实现DoIP转DoCAN的方法
目录 软件架构 关键知识点 第一:PDUR的缓存作用 第二:CANTP的组包拆包功能 第三:流控帧的意义 配置过程 步骤0:ECUC模块中PDU创建 步骤1:SoAD模块维持不变 步骤2:DoIP模块为Gateway功能添加Connection 步骤3:DoIP模块为Gateway新增LA/TA/SA 步骤4:PDUR模…...

应用层协议:HTTPS
目录 HTTPS:超文本传输安全协议 1、概念 2、通信过程及关键技术 2.1 通信过程 1> TLS握手协商(建立安全通道) 2> 加密数据传输 2.2 关键技术 1> 对称加密算法 2> 非对称加密 3> 对称加密和非对称加密组合 4> 数…...