当前位置: 首页 > news >正文

【系统架构师】-论文考点整理

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重新注册了一个域名,然后把网站换成了新的域名&#xf…...

python爬虫[简易版]

python爬数据[简易版] 对于每个网站的爬的原理基本是一样的,但是具体的代码写法的区别就在于爬的数据中解析出想要的数据格式: 以爬取有道词典中的图片为例: 第一步:打开网站,分析图片的数据源来自哪里, https://dict-subsidiary.youdao.com/home/content?invalid&pre…...

128天的创意之旅:从初心到成就,我的博客创作纪念日回顾

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

前端绘制流程节点数据

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

2024年顶级算法-黑翅鸢优化算法(BKA)-详细原理(附matlab代码)

黑翅鸢是一种上半身蓝灰色&#xff0c;下半身白色的小型鸟类。它们的显著特征包括迁徙和捕食行为。它们以小型哺乳动物、爬行动物、鸟类和昆虫为食&#xff0c;具有很强的悬停能力&#xff0c;能够取得非凡的狩猎成功。受其狩猎技能和迁徙习惯的启发&#xff0c;该算法作者建立…...

Linux 内核开发 28 内核模块文件ko文件介绍

Linux 内核开发 28 内核模块文件ko文件介绍 1. ELF格式简介 内核模块文件ko文件&#xff0c;格式为elf格式&#xff0c; ELF&#xff08;Executable and Linkable Format&#xff09;可执行链接格式&#xff0c;是一种用于存储可执行程序、目标代码、共享库和内核模块的标准文件…...

DDR5—新手入门学习(一)【1-5】

目录 1、DDR背景 &#xff08;1&#xff09;SDR SDRAM时代 &#xff1a; &#xff08;2&#xff09;DDR SDRAM的创新 &#xff1a; &#xff08;3&#xff09;DDR技术的演进 &#xff1a; &#xff08;4&#xff09;需求推动&#xff1a; 2、了解内存 &#xff08;1&…...

力扣HOT100 - 138. 随机链表的复制

解题思路&#xff1a; class Solution {public Node copyRandomList(Node head) {if(headnull) return null;Node p head;//第一步&#xff0c;在每个原节点后面创建一个新节点//1->1->2->2->3->3while(p!null) {Node newNode new Node(p.val);newNode.next …...

深入分析 Android Activity (五)

深入分析 Android Activity (五) 1. Activity 的进程和线程模型 在 Android 中&#xff0c;Activity 默认在主线程&#xff08;也称为 UI 线程&#xff09;中运行。理解进程和线程模型对于开发响应迅速且无阻塞的应用程序至关重要。 1.1 主线程与 UI 操作 所有 UI 操作必须…...

Kubernetes 应用滚动更新

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

五分钟”手撕“图书管理系统

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

8个实用网站和软件,收藏起来一定不后悔~

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

电商内卷时代,视频号小店凭借一己之力“脱颖而出”

大家好&#xff0c;我是电商笨笨熊 今年618各大电商平台花样百出&#xff1b; 某宝更是直接取消了“预售”&#xff0c;从5月就开始进入618预热期&#xff1b; 不少玩家既开心又难过&#xff0c;市场如此内卷&#xff0c;618确实是个爆发期&#xff0c;但更多的需要不断压低…...

【论文笔记】| 定制化生成PuLID

PuLID: Pure and Lightning ID Customization via Contrastive Alignment ByteDance, arXiv:2404.16022v1 Theme: Customized generation 原文链接&#xff1a;https://arxiv.org/pdf/2404.16022 Main Work 提出了 Pure 和 Lightning ID 定制 (PuLID)&#xff0c;这是一种用于…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...