必答题-试题一(软件架构设计与评估)
某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。
该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程,采用自助方式进行智能应用设计、实现与部署,并可以开发新算法组件加入平台中。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)平台用户分为算法工程师、软件工程师和管理员等三种角色,不同角色的功能界面有所不同;
(b)平台应该具备数据库保护措施,能够预防核心数据库被非授权用户访问;
(c)平台支持分布式部署,当主站点断电后,应在20秒内将请求重定向到备用站点;
(d)平台支持初学者和高级用户两种界面操作模式,用户可以根据自己的情况灵活选择合适的模式;
(e)平台主站点宕机后,需要在15秒内发现错误并启用备用系统;
(f)在正常负载情况下,机器学习流程从提交到开始执行,时间间隔不大于5秒;
(g)平台支持硬件扩容与升级,能够在3人•天内完成所有部署与测试工作;
(h)平台需要对用户的所有操作过程进行详细记录,便于审计工作;
(i)平台部署后,针对界面风格的修改需要在3人•天内完成;
(j)在正常负载情况下,平台应在0.5秒内对用户的界面操作请求进行响应;
(k)平台应该与目前国内外主流的机器学习应用开发平台的界面风格保持一致;
(l)平台提供机器学习算法的远程调试功能,支持算法工程师进行远程调试。
在对平台需求、质量属性描述和架构特性进行分析的基础上,公司的架构师给出了三种候选的架构设计方案,公司目前正在组织相关专家对平台架构进行评估。
【问题1】 (9分)
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。 请将合适的质量属性名称填入图1-1中(1)、(2)空白处,并从题干中的(a)-(l)中选择合适的质量属性描述,填入(3)-(6)空白处,完成该平台的效用树。
![图片[1]-[软考高级-系统架构设计师-2021年下半年]下午考试主观题-案例分析真题-IT谷](http://itgu.com/wp-content/uploads/2024/10/image-46.png)
【问题2】 (16分)
针对该系统的功能,赵工建议采用解释器(interpreter)架构风格,李工建议采用管道过滤器(pipe-and-filter)的架构风格,王工则建议采用隐式调用(implicit invocation)架构风格。请针对平台的核心应用场景,从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析,并指出该平台更适合采用哪种架构风格。
(1)性能
(2)可修改性
(3)(e)可用性
(4)(j)性能
(5)(h)安全性
(6)(i)可修改性
【解析】
首先我们需要注意的是:在架构评估中,质量效用树,默认有4大质量属性,分别为:性能、可用性、安全性和可修改性,这个条件题目一般不直接给出,需要考生掌握这个知识背景。所以(1)和(2)只能在性能和可修改性中选择。由于(f)是性能要求,所以(1)填性能,(2)为可修改性。(e)强调了系统出故障限定多长时间切换到备用系统,是典型的系统修复时间限定,属于可用性。(j)强调响应时间,应为性能。(h)强调记录操作并审计,属于安全性。(i)强调做系统修改时,时限要求,为可修改性。
本题系统中有多个应用场景提到了系统分角色有不同的操作流程与界面,以及在修改扩充系统时,需要能够在限定时间内快速完成任务。基于这样的情况,我们从两方面进行分析:
解释器:机器学习流程定义的灵活性高,学习算法的可扩展性强。因为解释器风格可以通过自定义流程规则及配套流程解释引擎开发,做到用户层面的流程完全定义,而不需要修改代码,所以无论是修改已有的业务流程,还是要扩展不同的角色,创建新角色的流程都非常便利。解释器按照输入输出格式将学习算法封装为组件,通过解释器机制动态增加或删除算法组件,并支持动态调用,学习算法的可扩展性强。
管道过滤器: 机器学习流程定义的灵活性低,学习算法的可扩展性弱。因为管道过滤器是把数据处理职能做成过滤器,把数据传递做成管道,此时如果流程不发生变化,是可以通过这种方式实现的,但一旦流程变化,或是扩展功能,需要对过滤器进行修改调整,或是流程在程序层面重建,此时必须修改代码完成任务。管道过滤器按照输入输出格式将学习算法封装为组件,如果需要增加或删除组件,需要停止平台并进行重新部署,学习算法的可扩展性弱。
隐式调用: 机器学习流程定义的灵活性一般, 学习算法的可扩展性一般。 隐式调用强调的是通过间接方式进行调用,如采用事件机制,要完成某个动作时先触发事件,事件与相关动作关联,以提升灵活度,本题中可把角色执行业务的流程用事件触发。这种做法比管道过滤器强,但弱于完全自定义的解释器。 隐式调用按照输入输出格式将学习算法封装为处理函数,支持动态增加和删除函数,学习算法的可扩展性一般。
经过综合比较与分析,可以看出该系统更适合使用解释器风格。
【解析】
此问考查架构风格的应用,给出3种备选风格供我们选择,其中特别强调了流程定义的灵活性和可扩展性,这里面流程定义符合我们课程中强调的“自定义”的特性,最合适的解决方案是解释器,它是自定义流程,所以最为灵活。有了结论,便可按“顺势而为”的技巧组织答题内容了。同时本题一定注意在回答时,按题目要求把场景加进来。答题描述层面可参看以下说法:
解释器:机器学习流程定义的灵活性高, 学习算法的可扩展性强。因为解释器风格可以通过自定义流程规则及配套流程解释引擎开发,做到用户层面的流程完全定义,而不需要修改代码,所以无论是修改已有的业务流程,还是要扩展不同的角色,创建新角色的流程都非常便利。 解释器按照输入输出格式将学习算法封装为组件,通过解释器机制动态增加或删除算法组件,并支持动态调用, 学习算法的可扩展性强 。
管道过滤器: 机器学习流程定义的灵活性低, 学习算法的可扩展性弱。 因为管道过滤器是把数据处理职能做成过滤器,把数据传递做成管道,此时如果流程不发生变化,是可以通过这种方式实现的,但一旦流程变化,或是扩展功能,需要对过滤器进行修改调整,或是流程在程序层面重建,此时必须修改代码完成任务。管道过滤器按照输入输出格式将学习算法封装为组件,如果需要增加或删除组件,需要停止平台并进行重新部署, 学习算法的可扩展性弱。
隐式调用: 机器学习流程定义的灵活性一般, 学习算法的可扩展性一般。 隐式调用强调的是通过间接方式进行调用,如采用事件机制,要完成某个动作时先触发事件,事件与相关动作关联,以提升灵活度,本题中可把角色执行业务的流程用事件触发。这种做法比管道过滤器强,但弱于完全自定义的解释器。 隐式调用 按照输入输出格式将学习算法封装为处理函数,支持动态增加和删除函数, 学习算法的可扩展性 一般。
经过综合比较与分析,可以看出该系统更适合使用解释器风格。
选答题-试题二(软件系统设计与建模)
某医院拟委托软件公司开发一套预约挂号管理系统,以便为患者提供更好的就医体验,为医院提供更加科学的预约管理。本系统的主要功能描述如下:(a)注册登录,(b)信息浏览,(c)账号管理,(d)预约挂号,(e)查询与取消预约,(f)号源管理,(g)报告查询,(h)预约管理,(i)报表管理和(j)信用管理等。
【问题1】(6分)
若采用面向对象方法对预约挂号管理系统进行分析,得到如图2-1所示的用例图。请将合适的参与者名称填入图2-1中的(1)和(2)处,使用题干给出的功能描述(a)~(j),完善用例(3)~(12)的名称。
![图片[2]-[软考高级-系统架构设计师-2021年下半年]下午考试主观题-案例分析真题-IT谷](http://itgu.com/wp-content/uploads/2024/10/image-47.png)
【问题2】(10分)
预约人员(患者)登录系统后发起预约挂号请求,进入预约界面。进行预约挂号时使用数据库访问类获取医生的相关信息,在数据库中调用医生列表,并调取医生出诊时段表,将医生出诊时段反馈到预约界面,并显示给预约人员;预约人员选择医生及就诊时间后确认预约,系统反馈预约结果,并向用户显示是否预约成功。
采用面向对象方法对预约挂号过程进行分析,得到如图2-2所示的顺序图,使用题干中给出的描述,完善图2-2中对象(1),及消息(2)~(4)的名称,请简要说明在描述对象之间的动态交互关系时,协作图与顺序图存在哪些区别。
![图片[3]-[软考高级-系统架构设计师-2021年下半年]下午考试主观题-案例分析真题-IT谷](http://itgu.com/wp-content/uploads/2024/10/image-48-1024x646.png)
【问题3】(9分)
采用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型,请分别介绍这3种模型,并详细说明它们之间的关联关系,针对上述模型,说明哪些模型可用于软件的需求分析?
(1)预约人员(患者)
(2)医院管理人员
(3)(a)注册登录
(4)~(8)(b)信息浏览(c)账号管理(d)预约挂号(e)查询与取消预约(g)报告查询
(9)~(12)(f)号源管理(h)预约管理(i)报表管理(j)信用管理
【解析】
该问考查UML中的用例图填充,首先根据题意可以分析出患者这个参与者。而另一个参与者题目没有明示,然而从号源管理、预约管理等用例来看,定性为“医院管理员”较为合适,医院管理员是一个系统中比较常见的角色,起系统管理职能。
然后通过用例的名称来分析判断哪些用例归属于患者哪些归属于医院管理员,按这个逻辑很容易分析出:
患者:(a)注册登录(b)信息浏览(c)账号管理(d)预约挂号(e)查询与取消预约(g)报告查询
医院管理员:(a)注册登录(f)号源管理(h)预约管理(i)报表管理(j)信用管理
从而根据图中参与者对应的用例数给参与者和用例定位到具体的空中。
(1)预约人员(患者)
(2)预约挂号请求
(3)显示医生可预约时段
(4)显示预约是否成功
顺序图强调的是对象交互的时间次序。协作图强调的是对象之间的组织结构。
【解析】
该问考查UML中的顺序图,本问比较容易,紧扣题目描述来组织内容即可,从题干中“预约人员(患者)登录系统后发起预约挂号请求,进入预约界面”的信息可知(1)应为预约人员(患者),(2)为预约挂号请求;从题干中“将医生出诊时段反馈到预约界面,并显示给预约人员”的信息可知(3)应为显示医生可预约时段;从题干中“系统反馈预约结果,并向用户显示是否预约成功”的信息可知(4)应为显示预约是否成功。
对象模型用于描述系统数据结构;动态模型用于描述系统控制结构;功能模型用于描述系统功能。
这3种模型都涉及数据、控制和操作等共同的概念,但侧重点不同,从不同侧面反映了系统的实质性内容,综合起来全面地反映了对目标系统的需求。
功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候做;对象模型则定义了做事情的实体。
对象模型、动态模型和功能模型均可用于软件的需求分析。
【解析】
该问考查了一个较为早期提出的面向对象模型——OMT。OMT方法的OOA模型包括对象模型、动态模型和功能模型。
对象模型表示静态的,结构化的“数据”性质,它是对模拟客观世界实体的对象及对象间的关系映射,描述了系统的静态及结构。通常用类图表示。对象模型描述系统中对象的静态结构、对象之间的关系、对象的属性、对象的操作。对象模型表示静态的、结构上的、系统的“数据”特征。对象模型为动态模型和功能模型提供了基本的框架。对象模型用包含对象和类的对象图来表示。
动态模型表示瞬间的,行为化的系统控制性质,它规定了对象模型中的对象合法化变化序列。通常用状态图表示。动态模型描述与时间和操作顺序有关的系统特征——激发事件、事件序列、确定事件先后关系的状态以及事件和状态的组织。动态模型表示瞬间的、行为上的、系统的“控制”特征。动态模型用状态图来表示,每张状态图显示了系统中一个类的所有对象所允许的状态和事件的顺序。
功能模型表示变化的系统的功能性质,它指明了系统应该做什么,因此直接地反映了用户对目标系统的需求,通常用数据流图表示。功能模型描述与值变换有关的系统特征——功能、映射、约束和函数依赖。
选做题-试题三(嵌入式数据架构设计)
数据架构(Data architecture)是系统架构设计的主要工作之一。它主要用于描述业务数据以及数据间的关系。数据架构着重考虑“数据需求”,关注的是持久化数据的组织。数据架构的设计过程主要包括:数据定义、数据分布与数据管理。某公司为了适应宇航装备的持续发展,提升本公司的核心竞争力,改变原来事件驱动的架构设计模式。公司领导将新产品架构规划工作交给张工。张工经过分析、调研给出了本企业宇航产品的未来架构规划方案。
【问题1】(9分)
张工在规划方案中指出:宇航装备要实现以数据为中心的架构设计模式,就应改变传统的各个子系统独立的设计方式,打破原宇航装备的生产关系。为了达到这个目标,我们首先要解决装备数据的共享、管理和存储等问题,做好顶层的数据架构规划工作。请用300字以内的文字说明数据定义、数据分布与数据管理的具体内涵。
【问题2】(7分)
张工在规划方案中提出公司未来产品设计要遵从一种开放式的架构体系,并在此基础上完善数据架构的设计工作,形成一套规格化的数据模型语言。张工给出了基于FACE(FutureAirborne Capability Environment)架构的新产品架构,其中,图3-1说明了数据模型语言在架构模型中的作用。
![图片[4]-[软考高级-系统架构设计师-2021年下半年]下午考试主观题-案例分析真题-IT谷](http://itgu.com/wp-content/uploads/2024/10/image-49.png)
请根据你所掌握的数据架构的相关知识,从以下a~g中进行选择,填充完善图3-1中的(1)~(7)空。
a.数据模型定义
b.平台数据模型(PDM)
c.UoP(Unit of Portability)数据模型(UM)
d.提炼
e.传输定义
f.代码和配置
g.概念数据模型(CDM)
【问题3】(9分)
“数据需求”是数据架构设计中需要着重考虑的问题。在张工给出的基于FACE架构的新产品架构中,分别就架构中的各个部分逐条给出了需求项。请判断表3-1给出的9项需求是否属于数据需求。
![图片[5]-[软考高级-系统架构设计师-2021年下半年]下午考试主观题-案例分析真题-IT谷](http://itgu.com/wp-content/uploads/2024/10/image-50.png)
数据定义:数据定义确保数据架构全面、一致、完整,反映业务本质,划分系统边界,明确数据引用和集成接口。数据模型涵盖概念、逻辑、物理模型及标准。
数据分布:数据分布基于业务需求,包括业务、分析和存储。分析数据在业务各环节和系统间的关系,选择合适的数据存储模式。
数据管理:数据管理是要制定贯穿数据生命周期的各项管理制度。涉及数据模型、分布、质量和安全等制度,确保数据生命周期内的有效管理。同时,需确定数据管理组织或岗位,确保数据管理的专业性和高效性。
【解析】
数据定义在构建和管理数据系统中扮演着至关重要的角色。它不仅要反映业务模式的本质,确保数据架构能够满足业务需求的全面、一致和完整性,还要确保数据的高质量。数据定义的过程包括划分应用系统边界,这有助于明确各个系统之间的界限和交互方式;明确数据引用关系,这可以确保数据在系统中的正确流动和使用;以及定义应用系统间的集成接口,这对于实现系统间的无缝集成和数据共享至关重要。数据模型是数据定义的核心,它包括数据概念模型、数据逻辑模型、数据物理模型和数据标准。
数据分布是数据系统分布的基础,它涉及数据业务、数据分析和数据存储等方面。数据业务主要关注数据在业务各环节的创建、引用、修改或删除的关系;数据分析则侧重于在单一应用系统中分析数据结构与应用系统各功能间的引用关系,以及在多个系统间分析数据的引用关系;数据存储则包括分析数据集中存储和数据分布存储两种模式,需要根据实际需求选择适合的数据分布策略。
数据管理则是确保数据在整个生命周期中都能得到妥善管理的关键。它涵盖了数据模型与数据标准管理、数据分布管理、数据质量管理和数据安全管理等多个方面。通过制定这些管理制度,可以确保数据的准确性、完整性、可用性和安全性。同时,确定数据管理组织或岗位也是非常重要的,这可以确保有专门的人员负责数据的日常管理和维护。
(1)a
(2)g
(3)b
(4)f
(5)c
(6)d
(7)e
![图片[6]-[软考高级-系统架构设计师-2021年下半年]下午考试主观题-案例分析真题-IT谷](http://itgu.com/wp-content/uploads/2024/10/image-51-1024x576.png)
(1)否
(2)是
(3)否
(4)是
(5)是
(6)否
(7)是
(8)否
选做题-试题四(数据库设计)
某医药销售企业因业务发展,需要建立线上药品销售系统,为用户提供便捷的互联网药品销售服务。该系统除了常规药品展示、订单、用户交流与反馈功能外,还需要提供当前热销产品排名、评价分类管理等功能。通过对需求的分析,在数据管理上初步决定采用关系数据库(MySQL)和数据库缓存(Redis)的混合架构实现。
经过规范化设计之后,该系统的部分数据库表结构如下所示。
供应商(供应商ID,供应商名称,联系方式,供应商地址);
药品(药品ID,药品名称,药品型号,药品价格,供应商ID);
药品库存(药品ID,当前库存数量);
订单(订单号码,药品ID,供应商ID,药品数量,订单金额)。
【问题1】(9分)
在系统初步运行后,发现系统数据访问性能较差。经过分析,刘工认为原来数据库规范化设计后,关系表过于细分,造成了大量的多表关联查询,影响了性能。例如当用户查询商品信息时,需要同时显示该药品的信息、供应商的信息、当前库存等信息。
为此,刘工认为可以采用反规范化设计来改造药品关系的结构,以提高查询性能。修改后的药品关系结构为:
药品(药品ID,药品名称,药品型号,药品价格,供应商ID,供应商名称,当前库存数量);
请用200字以内的文字说明常见的反规范化设计方法,并说明用户查询商品信息应该采用哪种反规范化设计方法。
【问题2】(9分)
王工认为,反规范化设计可提高查询的性能,但必然会带来数据的不一致性问题。请用200字以内的文字说明在反规范化设计中,解决数据不一致性问题的三种常见方法,并说明该系统应该采用哪种方法。
【问题3】(7分)
该系统采用了Redis来实现某些特定功能(如当前热销药品排名等),同时将药品关系数据放到内存以提高商品查询的性能,但必然会造成Redis和MySQL的数据实时同步问题。
(1)Redis的数据类型包括String、 Hash、 List、 Set和ZSet等,请说明实现当前热销药品排名的功能应该选择使用哪种数据类型。
(2)请用200字以内的文字解释说明解决Redis和MySQL数据实时同步问题的常见方案。
常见的反规范化技术包括:
(1)增加冗余列:增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。
(2)增加派生列:增加派生列指增加的列可以通过表中其他数据计算生成。它的作用是在查询时减少计算量,从而加快查询速度。
(3)重新组表:重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
(4)分割表:有时对表做分割可以提高性能。
用户查询商品信息应该采用:增加冗余列。
用户查询商品信息时,需要显示药品信息(药品表中),供应商信息(供应商表),库存信息(库存表中) ,此时查询的是药品表,但表中缺了供应商的信息和库存信息,可以通过增加冗余列的方式把这些信息并过来。以避免连接操作带来的查询性能下降。
【解析】
常见的反规范化技术包括:
(1)增加冗余列
增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。例如:以规范化设计的理念,学生成绩表中不需要字段“姓名”,因为“姓名”字段可以通过学号查询到,但在反规范化设计中,会将“姓名”字段加入表中。这样查询一个学生的成绩时,不需要与学生表进行连接操作,便可得到对应的“姓名”。
(2)增加派生列
增加派生列指增加的列可以通过表中其他数据计算生成。它的作用是在查询时减少计算量,从而加快查询速度。例如:订单表中,有商品号、商品单价、采购数量,我们需要订单总价时,可以通过计算得到总价,所以规范化设计的理念是无须在订单表中设计“订单总价”字段。但反规范化则不这样考虑,由于订单总价在每次查询都需要计算,这样会占用系统大量资源,所以在此表中增加派生列“订单总价”以提高查询效率。
(3)重新组表
重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。
(4)分割表
有时对表做分割可以提高性能。表分割有两种方式。
水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。水平分割通常在下面的情况下使用。
情况1:表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,提高查询效率。
情况2:表中的数据本来就有独立性,例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另外一些数据不常用。
情况3:需要把数据存放到多个介质上。
垂直分割:把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。如果一个表中某些列常用,而另外一些列不常用,则可以采用垂直分割,另外垂直分割可以使得数据行变小,一个数据页就能存放更多的数据,在查询时就会减少I/O次数。其缺点是需要管理冗余列,查询所有数据需要连接操作。
在本空中,比较难的一个问题是,指出目前的情况应采用哪种解决方案,此时有部分考生在增加冗余列和重新组表中犹豫,但注意,题目已经了明示,指出刘工给出了新的药品关系,而未说明其它关系有什么变化,此时只是针对单个表增加了冗余列。所以课程中强调的“顺势而为”很重要。
针对反规范化数据不一致问题,可采用的解决方案包括:
1、触发器数据同步。
2、应用程序数据同步。
3、批处理同步。
本系统应该采用应用程序数据同步或者触发器数据同步方式。
【解析】
反规范化在解决查询方面效率问题的同时,带来了数据不一致问题。解决方案,常见的有:
1、触发器数据同步
2、应用程序数据同步
3、批处理同步
(1)热销药品排名适合用:ZSet,即有序集合类型。
(2)
1、实时同步方案,先查缓存,查不到再从DB查询,并保存到缓存;更新缓存时先更新数据库,再将缓存设置过期。
2、异步队列方式同步,可采用消息中间件处理。
3、通过数据库插件完成数据同步。
4、利用触发器进行缓存同步。
【解析】
本问题中,第1个小问题问的是热销药品排名适合用哪种数据类型,Redis中的数据类型包括:
![图片[7]-[软考高级-系统架构设计师-2021年下半年]下午考试主观题-案例分析真题-IT谷](http://itgu.com/wp-content/uploads/2024/10/image-52.png)
热销药品排行榜应选用有序集合Zset,原因是排行榜既要去重,也要排序,用这种结构最为合适。
要实现Redis和MySQL之间的同步,常见方法包括:
1、实时同步方案,先查缓存,查不到再从DB查询,并保存到缓存;更新缓存时先更新数据库,再将缓存设置过期。
2、异步队列方式同步,可采用消息中间件处理。
3、通过数据库插件完成数据同步。
4、利用触发器进行缓存同步。
选做题-试题五(Web系统架构设计)
某公司拟开发一个智能家居管理系统,该系统的主要功能需求如下:1)用户可使用该系统客户端实现对家居设备的控制,且家居设备可向客户端反馈实时状态;2)支持家居设备数据的实时存储和查询;3)基于用户数据,挖掘用户生活习惯,向用户提供家居设备智能化使用建议。
基于上述需求,该公司组建了项目组,在项目会议上,张工给出了基于家庭网关的传统智能家居管理系统的设计思路,李工给出了基于云平台的智能家居系统的设计思路。经过深入讨论,公司决定采用李工的设计思路。
【问题1】 (8分)
请用400字以内的文字简要描述基于家庭网关的传统智能家居管理系统和基于云平台的智能家居管理系统在网关管理、数据处理和系统性能等方面的特点,以说明项目组选择李工设计思路的原因。
【问题2】 (12分)
请从下面给出的(a) ~ (j) 中进行选择,补充完善图5-1中空(1) ~ (6)处的内容,协助李工完成该系统的架构设计方案。
![图片[8]-[软考高级-系统架构设计师-2021年下半年]下午考试主观题-案例分析真题-IT谷](http://itgu.com/wp-content/uploads/2024/10/image-53.png)
(a) Wi-Fi
(b) 蓝牙
(c)驱动程序
(d)数据库
(e)家庭网关
(f)云平台
(g)微服务
(h)用户终端
(i)鸿蒙
(j)TCP/IP
【问题3】 (5分)
该系统需实现用户终端与服务端的双向可靠通信,请用300字以内的文字从数据传输可靠性的角度对比分析TCP和UDP通信协议的不同,并说明该系统应采用哪种通信协议。
网关管理:云平台更强,可以实现远程网关管理,可以对不同地点的多种设备进行统一管理,管理能力更强。
数据处理:云平台的海量存储空间、高计算性能和灵活的拓展功能,为基于用户数据的智能预测和决策方法提供了更好的支持。而家庭网关将数据的存储及处理交付网关,由于网关硬件性能的限制,可能存在家居设备海量数据存储及智能应用需求得不到有效的支持等问题 。
系统性能:数据存在云上数据库中,通信效率更高,同时云也有更强的数据处理能力,所以会更高效。家庭网关的独立管理,一旦网关被售出,后期便难以进行系统的升级和拓展。
【解析】
注意”顺势而为“的答题,题目已告知最终选定的是云平台,所以云平台应在大多数方面比传统平台更具优势。具体情况为:
网关管理:云平台更强,可以实现远程网关管理,可以对不同地点的多种设备进行统一管理,管理能力更强。
数据处理:云平台的海量存储空间、高计算性能和灵活的拓展功能,为基于用户数据的智能预测和决策方法提供了更好的支持。而家庭网关将数据的存储及处理交付网关, 由于网关硬件性能的限制,可能存在家居设备海量数据存储及智能应用需求得不到有效的支持等问题 。
系统性能:数据存在云上数据库中,通信效率更高,同时云也有更强的数据处理能力,所以会更高效。家庭网关的独立管理,一旦网关被售出,后期便难以进行系统的升级和拓展。
(1)(h)用户终端
(2)(i)鸿蒙
(3)(f)云平台
(4)(d)数据库
(5)(e)家庭网关
(6)(c)驱动程序
【解析】
该题原图为:
![图片[9]-[软考高级-系统架构设计师-2021年下半年]下午考试主观题-案例分析真题-IT谷](http://itgu.com/wp-content/uploads/2024/10/image-54.png)
在分析解决问题时,注意抓一些关键点。如驱动程序与硬件平台是紧密相关的,因为硬件没有驱动程序是无法在应用层级使用的。数据库对应软件系统做支撑,提供数据。鸿蒙是与IOS之类操作系统并列的国产操作系统。
该系统应采用TCP协议,这样才能保障用户终端和服务端之间的双向可靠通信。
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP之所以可靠,是因为建立连接时有3次握手,通信时有回应机制,所以丢了包,能重传以保障通信可靠性。
UDP是一种面向无连接的传输层通信协议,丢了包不会重传,所以不能保障通信可靠性。
【解析】
本问题考查TCP与UDP的基本特性,属于上午综合知识部分网络中讲到的核心内容,TCP与UDP最大的区别在于TCP可靠而UDP不可靠,有这个基本概念,组织应答内容也就容易了。
2 以上提供的代码或者素材均为作者提供和网友推荐收集整理而来,仅供学习和研究使用;
3 若作商业用途,请联系原作者授权,若本站侵犯了您的权益请 联系站长 进行删除处理;
暂无评论内容