2024年系统架构师---下午题目真题

news2024/11/23 17:17:55

1. 数据仓库架构风格的优缺点:

        优点:

        1)数据统一保存在中央数据仓库,数据处理流程相对独立,支持交互式处理。

        缺点:

        1)仓库风格不支持并行,效率低。

        2)仓库风格容错性和健壮性好。

2.仓库风格相关概念:仓库风格是一种数据共享风格,主要有两大类:

        传统数据库:传统数据库是由输入流中的事件来驱动信息处理,把执行结构存储到中央数据单元。

        黑板:由中央数据单元的当前状态来驱动系统运行,用来解决状态冲突并处理可能存在的不确定性知识源。黑板常用信号处理,如语音识别、模式识别、机器翻译、句法分析等。

        优点:

        1)便于多客户共享大量数据,不必关心数据的产生、由谁提供、如何提供等;

        2)便于将构件作为知识源添加到系统中来;

        3)解决问题的多方法性;

        4)具有可修改性和可维护性;

        5)有可重用的知识源

        6)支持容错性和健壮性

        缺点:

        1)对共享数据结构,不同知识源要达成一致

        2)需要同步机制、加锁机制来保障数据的完整性和健壮性,增加了系统设计的复杂度

        3)测试困难

        4)缺少对并行机的支持,效率低

        5)开发成本高

3.管道过滤器架构的概念:管道过滤器架构风格是由一系列处理单元(过滤器)组成,每个单元的输出是下一个单元的输入。过滤器负责处理数据,管道负责数据传输,如Linux/Unix中的shell,传统的编译器就是管道过滤器风格;

        优点:

        1)高内聚,过滤器是执行特定功能的处理服务,具有较强的内聚性

        2)低耦合,过滤器之间仅通过管道进行通信

        3)可重用,支持过滤器的重用

        4)能简单地实现并发或者顺序系统

        5)可扩展性,容易增加新的过滤器

        6)灵活性,过滤器功能可重新定义,管道路线可改变

        缺点:

        1)管道中数据传输需要通用标准

        2)难以支持基于事件的交互

5.企业集成的概念:

        1)数据集成:是为了解决不同应用和系统之间的数据共享和交换需求,具体包括共享信息管理、共享模型管理和数据操作管理三个部分。共享信息管理通过定义统一的集成服务模型和共享信息访问机制,完成对集成平台运行过程中产生数据信息的共享、分发和存储管理;共享模型管理则提供数据资源配置管理、基础资源关系管理,资源运行生命周期管理及相应的业务数据协同监控管理等功能;数据操作管理则为集成平台用户提供数据操作服务,包括多通道的异构模型之间的数据转换、数据映射、数据传递和数据操作等功能服务。数据集成的模式包括:数据联邦、数据复制模式、基于结构的数据集成模式;

        2)应用集成:是指两个或者多个应用系统根据业务逻辑的需要而进行的功能之间的相互调用和互操作。应用集成需要在数据集成的基础上完成。应用集成在底层的网络集成和数据集成的基础上实现异构应用系统之间应用层次上的互操作。它们共同构成了实现企业集成化运行最顶层集成所需要的技术层次上的支持。应用集成的模式包括:集成适配器模式、集成信使模式、集成面板模式和集成代理模式。

        3)企业集成:应用软件系统从功能逻辑上可以分为表示、业务逻辑和数据三个层次。其中表示层负责完成系统与用户交互的接口定义;业务逻辑层主要根据具体业务规则完成相应业务数据的处理;数据层负责存储由业务逻辑层处理所产生的业务数据,它是系统中相对稳定的部分。支持企业之间应用集成和交互的集成平台通常采用多层结构,其目的是在最大程度上提高系统的柔性。在集成平台的具体设计开发中,还需要按照功能的通用程度对系统实现模块进行分层。企业集成的模式包括:前端集成模式、后端集成模式和混合集成模式。

6.软件缺陷相关的定义:软件缺陷(Defect)又称为bug,所谓的软件缺陷,即为计算机软件或者程序中存在的某种破坏正常运行能力的问题、错误、或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。IEEE729-1983对缺陷有一个标准的定义:从产品内部看,缺陷是软件产品开发或者维护过程中存在的错误,毛病等各种问题:从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。

        产生的原因:在软件开发的过程中,软件缺陷的产生是不可避免的。那么造成软件缺陷的主要原因有哪些?从软件本身、团队和技术团队等角度分析,就可以了解造成软件缺陷的主要因素。软件缺陷的产生主要是由软件产品的特点和开发过程决定的。

        软件本身:

        1)需求不清晰,导致设计目标偏离客户的需求,从而引起功能或产品特征上的缺陷。

        2)系统结构非常复杂,而又无法设计成一个很好的层次结构或组件结构,结果导致意想不到的问题或系统维护、扩充上的困难;即使设计成良好的面向对象的系统,由于对象、类太多,很难完成对各种对象、类相互作用的组合测试,而隐藏着一些参数传递,方法调用、对象状态变化等方面问题。

        3)对程序逻辑路径或数据范围的边界考虑不够周全,漏掉某些边界条件,造成容量或边界错误。

        4)对一些实时应用,要进行精心设计和技术处理,保证精确的时间同步,否则容易引起时间上不协调,不一致带来的问题。

        5)没有考虑系统崩溃后的自我恢复或数据的异地备份、灾难性恢复等问题,从而存在系统安全性、可靠性的隐患。

        6)系统运行情况复杂,不仅用户使用的计算机环境千变万化,包括用户的各种操作方式或各种不同的输入数据,容易引起一些特定用户环境下的问题,在系统实际应用中,数据量很大,从而引起强度或负载问题。

        9)由于通信端口多,存取和加密手段的矛盾性等,会造成系统的安全性或适用性等问题

        10)新技术的采用,可能涉及技术或者系统兼容的问题,事先没有考虑到。

        团队工作:

        1)系统需求分析时对客户的需求理解不清楚,或者和用户的沟通存在一些困难。

        2)不同阶段的开发人员相互理解不一致。例如,软件设计人员对需求分析的理解有偏差,编程人员对系统设计规格说明书某些内容重视不够,或存在误解。

        3)对于设计或编程上一些假定或依赖性,相关人员没有充分沟通

        4)项目组成员技术水平参差不齐,新员工较多,或者培训不够等原因也容易引起问题

        技术问题:

        1)算法错误:在给定条件下没能给出正确或准确的结果

        2)语法错误:对于编译性语言程序,编译器可以发现这类问题;但对于解释型语言程序,只能在测试运行时发现

        3)计算和精度问题:计算的结果没有满足所需要的精度

        4)系统结构不合理,算法选择不科学,造成系统性能低下

        5)接口参数传递不匹配,导致模块集成出现问题

        项目管理问题:

        1)缺乏质量文化,不重视质量计划,对质量、资源、任务、成本等的平衡性把握不好,容易挤掉需求分析、评审、测试等时间,遗留的缺陷会比较多。

        2)系统分析时客户的需求不是十分清楚,或者和用户的沟通存在一些困难。

        3)开发周期短,需求分析,设计、编程、测试等各项工作不能完全按照定义好的流程来进行,工作不够充分,结果也就不完整、不准确,错误较多;周期短,还给各类开发人员造成太大的压力,引起一些人为的错误

        4)开发流程不完善,存在太多的随机性和缺乏严谨的内审或评审机制,容易产生问题

        5)文档不完善,风险估计不足等

8.云原生的相关概念:

        1)服务化原则:通过服务化架构拆分不同生命周期的业务单元,实现业务单元的独立迭代,从而加快整体的迭代速度,保障迭代的稳定性。同时,服务化架构采用的是面向接口的编程方式,增加了软件的复用程度,增强了水平扩展的能力。服务化设计原则还强调在架构层面抽象化业务模块之间的关系,从而帮助业务模块实现服务流量(而非网络流量)的策略控制和治理,而无须关注这些服务是基于何种编程语言开发的。通过微服务,需要将单体应用进一步进行拆分,按照业务边界重新划分成分布式应用,使得应用与应用之间不再直接共享数据,而是通过约定好的契约进行通信,以提高扩展性,业务化垂直扩展(Scale Up),并将微服务水平扩展(Scale Out)

        2) 弹性原则:系统部署规模可以随着业务量的变化自动调整大小,而无须根据事先的容量规划准备固定的硬件和软件资源,优秀的弹性能力不仅能够改变企业的IT成本模式,使得企业不用再考虑额外的软、硬件资源成本支持(闲置成本),也能更好地支持业务规模的爆发式扩张,不再因为软、硬件资源储备不足而留下问题。也就是说,弹性原则是指系统部署规模可以根据业务量的变化自动调整大小,而无须根据事先的容量规划准备固定的硬件和软件资源。

        3)可观测性原则:强调主动性,在云计算这样的分布式系统重,主动通过日志、链路跟踪和度量等手段,让一次App点击产生的多次服务调用耗时,返回值和参数都清晰可见,甚至可以下钻到每次第三方软件调用,sql请求,节点拓扑、网络响应等信息中。运维、开发和业务人员通过这样的观测能力可以实时掌握软件的运行情况,并获得前所未有的关联分析能力,以便不断优化业务的健康度和用户体验。简言之,可观测性更强调主动性,在云计算这样的分布式系统中,主动通过日志、链路跟踪和度量等手段,让一次APP点击产生的多次服务调用耗时,返回值、参数都可见。

        4)韧性原则:韧性原则是指根据软件所依赖的软硬件组件出现异常的时候,软硬件表现出来的抵御能力,这些异常通过包括硬件故障、硬件资源瓶颈(如CPU或者网卡带宽耗尽)、业务流量超出软件设计承受能力,影响机房正常工作的故障或者灾难,所依赖软件发生故障可能造成业务不可用的潜在影响因素,业务上线后,在运行期的大部分时间里,可能还会遇到各种不确定性输入和不稳定依赖的情况,当这些非正常场景出现时,业务需要尽可能的保证服务的质量,满足当前以联网服务为代表的“永远在线”的要求。因此,韧性能力的核心设计理念是面向失败设计,即考虑如何在各种依赖不正常的情况下,减少异常对系统及服务质量的影响并尽快恢复正常。简言之,韧性是指当软件所依赖的软硬件组件出现异常时,软件所表现出来的抵御能力。韧性的原则的实践与常见架构主要包括:服务异步化能力、服务治理能力(重试、限流、降级、熔断、反压)、主从模式、集群模式、多可用区(AZ,Availability Zone)的高可用、单元化、跨区域容灾、异地多活等。

        5)自动化原则:通过IaC、GitOps、OAM、Operator和大量自动化交付工具在CI/CD(持续集成/持续交付)流水线中的实践,企业可标准化企业内部的软件交付过程,也可以在标准化的基础上实现自动化,即通过配置数据自描述和面向终态的交付过程,实现整个软件交付和运维的自动化。

        6)零信任原则:传统安全架构认为防火墙内的一切都是安全的,而零信任模型假设防火墙边界已经被攻破了,且每个请求都来自于不可信网络,因此每个请求都是需要经过验证的。第一,不能基于IP配置安全策略。第二,身份应该成为基础设施;第三,假设物理边界被攻破,需要严格控制安全半径。

        7)架构持续演进原则:云原生架构本身也应该且必须军持续演进的能力,而不是一个封闭式的,被设计后一成不变的架构。特别是在野外高速迭代的时候,更应该考虑如何保证架构演进与业务发展之间的平衡。演进式架构是指软件开发的初始阶段,就可以通过可拓展和松耦合设计,让后续可能发生的变更更加容易,升级性重构的成本更低,并且能够发生在开发实践、发布实践和整体敏捷度等软件生命周期中的任何阶段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2230853.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM、JRE、JDK区别和联系

JVM(java virtual machine):Java虚拟机主要包括类加载器、执行引擎、本地接口和运行时数据区,其中运行时数据区是JVM的主要部分。JVM的主要作用是将class文件中的二进制数据加载到运行时数据区的方法区,在堆区生成相应的java.lang.Class对象&…

Vue中ref、reactive、toRef、toRefs的区别

一、ref、reactive setup 函数中默认定义的变量并不是响应式的(即数据变了以后页面不会跟着变),如果想让变量变为响应式的变量,需要使用 ref 和 reactive 函数修饰变量。 ref 函数可以把基本类型变量变为响应式引用reactive 函数…

Linux安装es和kibana

安装Elasticsearch 参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html#targz-enable-indices 基本步骤下载包,解压,官网提示: wget https://artifacts.elastic.co/downloads/elasticsearc…

spreadjs实现类似于企业微信的协同提示

核心代码 import * as GC from "grapecity-software/spread-sheets";function HighlightLayout(name:string){this.name name;this._eventNs ".HighlightLayout" name || "";this._sheetRangesInfo {} } HighlightLayout.prototype.bind f…

Linux云计算 |【第五阶段】PROJECT3-DAY1

主要内容: 跳板机(堡垒机)的概念、部署JumpeServer 一、跳板机(堡垒机)的概念 跳板机(Jump Server 或 Bastion Host)是一种网络安全设备或服务器,也称堡垒机,是一类可作…

PAT甲级-1133 Splitting A Linked List

题目 题目大意 给定一个链表的首节点地址和节点个数&#xff0c;以及一个数k。要求重新排列该链表&#xff0c;使其按<0 &#xff0c;> 0 && < k&#xff0c;>k 的顺序排序。但是不改变原有顺序&#xff0c;比如-4 -> -6 -> -2&#xff0c;不需要再…

重新回顾反向传播与梯度下降:训练神经网络的基石

有关反向传播与梯度下降&#xff1a;流程与公式推导 背景前向传播反向传播 背景 反向传播则是一种训练神经网络的算法&#xff0c;目前我们使用的深度学习模型大都是通过这种方法训练的。它的核心思想是通过计算损失函数相对于每个参数的导数&#xff0c;来更新神经网络中的权重…

Java | Leetcode Java题解之第524题通过删除字母匹配到字典里最长单词

题目&#xff1a; 题解&#xff1a; class Solution {public String findLongestWord(String s, List<String> dictionary) {int m s.length();int[][] f new int[m 1][26];Arrays.fill(f[m], m);for (int i m - 1; i > 0; --i) {for (int j 0; j < 26; j) {…

PHP合成图片,生成海报图,poster-editor使用说明

之前写过一篇使用Grafika插件生成海报图的文章&#xff0c;但是当我再次使用时&#xff0c;却发生了错误&#xff0c;回看Grafika文档&#xff0c;发现很久没更新了&#xff0c;不兼容新版的GD&#xff0c;所以改用了intervention/image插件来生成海报图。 但是后来需要对海报…

机器人领域中的scaling law:通过复现斯坦福机器人UMI——探讨数据规模化定律(含UMI的复现关键)

前言 在24年10.26/10.27两天&#xff0c;我司七月在线举办的七月大模型机器人线下营时&#xff0c;我们带着大家一步步复现UMI「关于什么是UMI&#xff0c;详见此文&#xff1a;UMI——斯坦福刷盘机器人&#xff1a;从手持夹持器到动作预测Diffusion Policy(含代码解读)」&…

丝杆支撑座的更换与细节注意事项

丝杆支撑座是支撑连接丝杆和电机的轴承支撑座&#xff0c;分固定侧和支撑侧&#xff0c;它们都有用预压调整的JIS5级的交界处球轴承。在自动化设备中是常用的传动装置&#xff0c;作为核心部件&#xff0c;对设备精度、稳定性和生产效率产生直接影响。在长时间运行中&#xff0…

行业深耕+全球拓展双轮驱动,用友U9 cloud加速中国制造全球布局

竞争加剧、供应链动荡、出海挑战……在日益激烈的市场竞争和新的全球化格局中&#xff0c;中国制造业的数智化转型已经步入深水区。 作为面向中型和中大型制造业的云ERP&#xff0c;用友U9 cloud一直是中国制造业转型升级的参与者和见证者。自2021年发布以来&#xff0c;用友U…

C#实现word和pdf格式互转

1、word转pdf 使用nuget&#xff1a; Microsoft.Office.Interop.Word winform页面&#xff1a; 后端代码&#xff1a; //using Spire.Doc; //using Spire.Pdf; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Sy…

Spring MVC 完整生命周期和异常处理流程图

先要明白 // 1. 用户发来请求: localhost:8080/user/1// 2. 处理器映射器(HandlerMapping)的工作 // 它会找到对应的Controller和方法 GetMapping("/user/{id}") public User getUser(PathVariable Long id) {return userService.getById(id); }// 3. 处理器适配…

wps宏代码学习

推荐学习视频&#xff1a;https://space.bilibili.com/363834767/channel/collectiondetail?sid1139008&spm_id_from333.788.0.0 打开宏编辑器和JS代码调试 工具-》开发工具-》WPS宏编辑器 左边是工程区&#xff0c;当打开多个excel时会有多个&#xff0c;要注意不要把…

vscode | 开发神器vscode快捷键删除和恢复

目录 快捷键不好使了删除快捷键恢复删除的快捷键 在vscode使用的过程中&#xff0c;随着我们自身需求的不断变化&#xff0c;安装的插件将会持续增长&#xff0c;那么随之而来的就会带来一个问题&#xff1a;插件的快捷键重复。快捷键重复导致的问题就是快捷键不好使了&#xf…

Java-02

笔试算法&#xff1a; 41. 回文串 我们称一个字符串为回文串&#xff0c;当且仅当这个串从左往右和从右往左读是一样的。例如&#xff0c;aabbaa、a、abcba 是回文串&#xff0c;而 ab、ba、abc 不是回文串。注意单个字符也算是回文串。 现在&#xff0c;给你一个长度为n的…

《数字图像处理基础》学习05-数字图像的灰度直方图

目录 一&#xff0c;数字图像的数值描述 &#xff11;&#xff0c;二值图像 &#xff12;&#xff0c;灰度图像 3&#xff0c;彩色图像 二&#xff0c;数字图像的灰度直方图 一&#xff0c;数字图像的数值描述 在之前的学习中&#xff0c;我知道了图像都是二维信息&…

6.1、实验一:静态路由

源文件获取&#xff1a;6.1_实验一&#xff1a;静态路由.pkt: https://url02.ctfile.com/f/61945102-1420248902-c5a99e?p2707 (访问密码: 2707) 一、目的 理解路由表的概念 会使用基础命令 根据需求正确配置静态路由 二、准备实验 1.实验要求 让PC0、PC1、PC2三台电脑…

集成ruoyi-it管理系统,遇到代码Bug

前言&#xff1a;这次ruoyi框架开发it管理系统&#xff0c;出现很多问题&#xff0c;也有学到很多东西&#xff0c;出现几个问题&#xff0c;希望下次项目不会出现或者少出现问题&#xff1b;其中还是有很多基础知识有些忘记&#xff0c;得多多复习 1&#xff1a;当写的代码没…