系统架构设计师第二期模考试卷(案例分析)
发布时间:2024-11-13 09:11:05浏览次数:12023 年下半年系统架构设计师第二期模考试卷(案例分析)1、希赛集团拟对旗下资源分享平台进行升级,以提高用户在购买资源时在线支付环节及下载资源环节的效率和安全性。在系统的需求分析与架构设计阶段,公司提出的需求和关键质量属性场景如下:(a)正常负载情况下,系统必须在 0.1 秒内对用户的交易请求进行响应; (b)在线支付必须保证 99.9%的安全性; (c)主服务器出现故障失效后,备用服务器需在 3 分钟内接替相关事务处理工作;(d)在线支付功能模块添加新的支付机构应在 1 个工作日内完成; (e)系统拟引入 PKI 体系,这将提高安全性,但同时将降低性能; (f)用户信息数据库授权必须保证 99.9%可用; (g)更改结算规则接口必须在 10 人日内完成; (h)假设每秒钟用户交易请求的数量是 50 个,处理请求的时间为 10 毫秒,则“在 1 秒内完成用户的交易请求”这一要求是可以实现的;(i)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计; (j)用户发起支付请求后系统必须在5秒内完成支付功能; (k)目前对系统支付业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性; (l)系统出现严重故障不得不停止服务时,修复时间不超过 20 分钟; (m)系统需要提供远程调试接口。在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了三个候选的架构设计方案。公司目前正在组织系统开发的相关人员对系统架构进行评估。问题内容:【问题 1】(16 分)在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。选择题干描述的(a)~(m),填入(1)~(8)空白处,完成该系统的效用树。
商只需考虑应用程序的多种需求和传输协议,软件开发商也不必了解硬件的实质和操作过程,实现对设备数据采集的统一管理。
【问题 2】(9 分)在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用 300 字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)~(m)中各选出 1 个对系统架构风险、敏感点和权衡点最为恰当的描述。试题答案:【问题 1】性能:(1)(2)填(a)(j)可用性:(3)(4)填(c)(l)可修改性:(5)(6)填(d)(g)安全:(7)(8)填(b)(f)【问题 2】系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。题干描述中,(k)描述的是系统架构风险;(i)描述的是敏感点;(e)描述的是权衡点。2、阅读以下关于 Web 系统架构设计的叙述,在答题纸上回答问题 1 至问题 3。【说明】希赛公司的在线教育平台因业务扩展,访问量不断增大,现有系统访问速度缓慢,有时甚至出现系统故障瘫痪等现象。面对这一情况,公司召开项目组讨论会议,寻求该商务平台的改进方案。讨论会上,陈工提出可以利用镜像站点、CDN 内容分发等方式解决并发访问量带来的问题。而王工认为,仅仅依靠上述外网加速技术不能完全解决系统现有问题,如果访问量持续增加,系统仍存在崩溃的可能。王工提出应同时结合 Web 内网加速技术优化系统改进方案,如综合应用负载均衡、缓存服务器、Web 应用服务器等。经过讨论,公司最终决定采用王工的思路,完成改进系统的设计方案。问题内容:
【问题 1】(10 分)针对王工提出的改进方案,从 a ~o 中分别选出各技术的相关描述和对应常见支持工具/技术填入表 1中的(1) ~(10) 处。(a)响应 Web 请求处理(b)可采用软件级和硬件级任务分配机制实现业务分流(c)将内存的对象映射存储到数据库中(d)对单次请求的处理,不依赖其他请求(e)通过部署本地化结点,尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输得更快、更稳定(f)文件存储系统,快速查找文件(g)HDFS(h)Redis(i)Hibernate(j)主从复制(k)cookie 存 session(l)响应式图片(m)JSON(n)Nginx(o) WebLogic【问题 2】(9 分)负载均衡的算法可分为静态算法与动态算法,请用 200 字以内的文字解释两类算法的含义,并各列举两种算法。【问题 3】(6 分)当单机服务器升级为集群时,会面临一些挑战,有状态服务便是其中一个。请判断以下构件是有状态服务还是无状态服务:(1)登录认证构件(2)试卷搜索构件(3)在线答题构件试题答案:【问题 1】(1)(c) (2)(i) (3)(h) (4)(b) (5)(n)(6)(d) (7)(k) (8)(a) (9)(o) (10)(e)【问题 2】静态算法是不考虑服务器动态负载的算法,包括:
(1)轮转算法:轮流将服务请求(任务)调度给不同的节点(即:服务器)。(2)加权轮转算法:考虑不同节点处理能力的差异。(3)源地址哈希散列算法:根据请求的源 IP 地址,作为散列键从静态分配的散列表找出对应的节点。(4)目标地址哈希散列算法:根据请求目标 IP 做散列找出对应节点。(5)随机算法:随机分配,简单,但不可控。动态算法是考虑服务器动态负载的算法,包括:(1)最小连接数算法:新请求分配给当前活动请求数量最少的节点,每个节点处理能力相同的情况下。(2)加权最小连接数算法:考虑节点处理能力不同,按最小连接数分配。(3)加权百分比算法:考虑了节点的利用率、硬盘速率、进程个数等,使用利用率来表现剩余处理能力。【问题 3】(1)有状态服务 (2)无状态服务 (3)有状态服务3、阅读以下关于嵌入式系统软件设计的叙述,在答题纸上回答问题 1 至问题 3。某软件公司长期从事移动智能终端设备等嵌入式软件研制工作,积累了丰富的嵌入式软件开发经验。某日,该公司经理派在嵌入式软件开发方面已具有很强经验的王工程师到某宇航设备研制单位洽谈一项软件合作项目,但是,在与对方洽谈需求时王工程师感觉沟通并不顺畅,许多概念较难达成一致。主要原因是王工程师长期从事移动智能终端的软件开发,开发平台主要是 Android 操作系统,开发语言是 Java,而这次洽谈是王工程师第一次接触宇航系统软件,对于其特殊需求和要求缺少相关知识积累,不了解强实时、高安全和高可靠嵌入式软件设计等方面应用。问题内容:【问题 1】(7 分)王工程师与某宇航设备研制单位洽谈的业务,涉及了嵌入式系统的知识。根据你的理解请用 100 字以内文字说明嵌入式系统的主要特点。【问题 2】(8 分)王工程师到某宇航设备研制单位洽谈软件项目时,宇航设备研制单位技术人员提出了以下需求:此宇航设备主要面向无人飞行器,用于飞行姿态控制,实现飞行器的自主起飞和着陆,要求应用软件按最高安全等级(即 A 级软件要求)开发。为了提高飞行器系统的安全性和可靠性,便于应用软件的可重用性,需要选择一款满足宇航设备要求的嵌入式操作系统,并在操作系统之上开发飞行器控制软件。请根据你对嵌入式操作系统选择方法的理解,判断表 3-1 给出的有关选择嵌入式操作系统的观点是否正确,将解答写在表格的对应栏内。 表 3-1 选择嵌入式操作系统的 8 种观点
【问题 3】(10 分)请用 300 字以内文字,说明宇航设备的嵌入式软件与移动智能终端嵌入式软件在安全性(safety)、实时性、交互性设计和编码方面的要求有何差异,请填写表 3-2 中的空格(1)~(8),将解答写在表格的对应栏内。 表 3-2 两类软件的主要差异试题答案:【问题 1】(7 分)嵌入式系统具有以下特点:(1)系统专用性强。嵌入式系统是针对具体应用的专门系统。(2)系统实时性强。很多嵌入式系统对外来事件要求在限定的时间内及时做出响应,具有实时性。(3)软硬件依赖性强。嵌入式系统的专用性决定了其软硬件的互相依赖性很强,两者必须协同设计,以达到共同实现预定功能的目的,并满足性能、成本和可靠性等方面的严格要求。(4)处理器专用。嵌入式系统的处理器一般是为某一特定目的和应用而专门设计的。(5)多种技术紧密结合。嵌入式系统通常是计算机技术、半导体技术、电力电子技术、机械技术与各行业的具体应用相结合的产物。(6)系统透明性。嵌入式系统在形态上与通用计算机系统差异甚大。(7)系统资源受限。嵌入式系统为了达到结构紧凑、高可靠性和低成本的目的,其存储容量、I/O设备的数量和处理器的处理能力都比较有限。【问题 2】(8 分)(1)√ (2)× (3)√ (4)√ (5)√ (6)√ (7)× (8)√【问题 3】(10 分)
4、某电子商务企业因发展良好,客户量逐步增大,企业业务不断扩充,导致其原有的 B2C 商品交易平台已不能满足现有业务需求。因此,该企业委托希赛公司重新开发一套商品交易平台。平台建设涉及到:交易平台、物流平台、仓储平台、支付平台、广告平台等。由于牵涉系统众多,还包括企业外部的,所以涉及到集成与信息机制的应用。同时业务情况复杂,开发人员不免需要使用较为复杂的 SQL语句来完成一些业务数据需求。新平台建设时,会充分利用好现有的系统,不需要重新开发的,将考虑沿用原来的系统。为满足客户的各项要求,王工提出使用 J2EE 平台多层分布式应用程序模型来应对。问题内容:【问题 1】 (4 分)在对遗留系统进行处置时,一般从业务与技术两个维度将遗留系统分成 4 个象限,请简述每个象限的技术与业务特点(即技术先进,还是落后,业务水平高低情况)及遗留系统对应的处置策略。【问题 2】 (15 分,每空 1.5 分)J2EE 平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件可被分别部署到不同的机器中。请从选项 (a) - (q) 中为架构图中(1) - (10) 处空白选择相应的内容,完成 J2EE 的 N 层体系结构。备选答案:(a)业务逻辑层(b)界面层(c)负载均衡层(d)持久层(e)UDDI(f)Servlet(g)Tomcat(h)Applet(i)EntityBean(j)SessionBean(k)Hibernate(l)MyBatis(m)Memcache(n)JMS(o)MySQL(p)CDN(q)RMI/IIOP【问题 3】 (6 分)当系统面对超高并发时,往往无法采用单一服务器解决所有问题,此时可用到负载均衡技术。请解释什么是负载均衡的静态调度算法和动态调度算法,并分别列举至少 2 种典型算法。
试题答案:【问题 1】1、高水平、高价值区。适用:改造策略。2、低水平、高价值区。适用:继承策略。3、低水平、低价值区。适用:淘汰策略。4、高水平、低价值区。适用:集成策略。【问题 2】(1)(h)Applet(2)(g)Tomcat(3)(f)Servlet(4)(j)SessionBean(5)(i)EntityBean(6)(d)持久层(7)(l)MyBatis(8)(o)MySQL(9)(q)RMI/IIOP(10)(n)JMS【问题 3】静态算法不考虑服务器的动态负载情况,按计划的方式分配任务。动态算法考虑服务器动态负载,根据服务器负载结合算法进行任务分配。静态算法:轮转算法、加权轮转算法、源地址哈希散列算法、目标地址哈希散列算法、随机算法。动态算法:最小连接数算法、加权最小连接数算法、加权百分比算法。相同的情况下。(2)加权最小连接数算法:考虑节点处理能力不同,按最小连接数分配。(3)加权百分比算法:考虑了节点的利用率、硬盘速率、进程个数等,使用利用率来表现剩余处理能力。5、阅读以下关于 Web 系统架构设计的叙述,在答题纸上回答问题 1 至问题 3。【说明】某公司拟开发一款基于 Web 的工业设备检测系统,以实现对多种工业数据的分类采集,运行状态检测以及相关信息的管理。该系统应具备以下功能:现场设备状态采集功能:根据数据类型对设备检测指标状态信号进行分类采集;设备采集数据传输功能:利用可靠的传输技术,实现将设备数据从制造现场传输到系统后台;设备检测显示功能:对设备的运行状态、工作状态以及报警状态进行检测并提供相应的图形化界面;设备信息管理功能:支持设备运行历史状态,报警记录、参数信息的查询。同时,该系统还需满足以下非功能性需求:(a)系统应支持大于 100 个工业设备的运行检测;(b)设备数据从制造现场传输到系统后台传输时间小于 1s;(c)系统应在 7*24 小时工作;(d)可抵御常见 XSS 攻击;(e)系统在故障情况下,应在 0.5 小时内恢复;(f)支持数据审计。面对系统需求,公司召开项目讨论会议,制定系统设计方案,最终决定使用三层拓扑结构,即现场设备数据采集层、Web 检测服务层和前端 Web 显示层。问题内容:【问题 1】(6 分)请按照性能、安全性和可用性三种非功能性需求分类将题干的(a)~(f)填入 (1)~(3) 空白处。非功能性需求归类表:
【问题 2】(14 分)该系统 Web 检测服务层拟采用 SSM 框架进行系统研发。SSM 工作流程图如下图 5-1 所示,请从下面给出的(a) ~ (k)中进行选择,补充完善图 5-1 中(1) ~(7)处空白的内容。(a) Connection Pool(b) Struts2(c) Persistent Layer(d) Mybatis(e) HTTP(f) MVC(g) Kafka(h) View Layer(i) JSP(j) Controller Layer(k) Spring
【问题 3】(5 分)该工业设备检测系统拟采用工业控制领域中统一的数据访问机制,实现与各种不同设备的数据交互,请用 100 以内的文字说明采用标准的数据访问机制的原因。试题答案:【问题 1】(1)a、b(2)d、f(3)c、e【问题 2】(1)a(2)c(3)d(4)k(5)j(6)h(7)i【问题 3】该工业设备检测系统需与不同设备进行数据交互,采用标准的数据访问机制,可以在硬件供应商和软件开发商之间建立一套完整的规则。只要遵循这套规则,数据交互对两者来说都是透明的,硬件供应