系统架构复习应用题

上传人:ni****g 文档编号:451856895 上传时间:2022-11-05 格式:DOC 页数:9 大小:409.01KB
返回 下载 相关 举报
系统架构复习应用题_第1页
第1页 / 共9页
系统架构复习应用题_第2页
第2页 / 共9页
系统架构复习应用题_第3页
第3页 / 共9页
系统架构复习应用题_第4页
第4页 / 共9页
系统架构复习应用题_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《系统架构复习应用题》由会员分享,可在线阅读,更多相关《系统架构复习应用题(9页珍藏版)》请在金锄头文库上搜索。

1、练习一、某公司欲针对Linux操作系统开发一个KWIC(Key Word in Context)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其它方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其它的方法实现这一功能。 在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家

2、从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。41、问题1(9 分) 在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。42、问题2(15 分) 请完成表1-1中的空白部分(用+表示优、-表示差),对王工和李工提出的架构风格进行评价,并指出采用李工方案的原因。43、问题3(6 分)图1-1是李工给出的架构设计示意图,请将恰当的功能描述填入图中的(1)一(4)。练习二、HIS在我国医院应用已经有10多年的历史,从第一代以解决收费为

3、目的的系统到现在电子病历的时代,医院信息系统的应用正不断向深度和广度扩展。目前某医院需要建设自己的HIS系统。其要求为:(1) 功能全面,易于修改(2) 响应速度快(3) 界面友好、操作方便(4) 成本低,维护方便(5) 便于统计和查询数据(6) 易于系统集成(7) 良好的支持医疗保险的能力(8) 数据标准化要高,易于社区联网(9) 支持远程医疗(10) 开发周期短关于系统架构的选择,在项目团队中有着不同的声音,有的成员提出应采用C/S模式,有的成员提出采用C/S/S模式,也有的提出应采用SOA架构。问题1(10分)项目组最终未选择SOA架构的原因有可能是(多选题,多选或选错一个,扣2分,扣完

4、为止):A. SOA架构中构件之间的耦合程度较高,不利于达到“维护方便”的要求B. SOA接口定义模糊,不利于达到“易于系统集成”的要求C. SOA开发难度较高,失败风险较大D. C/S/S模式中的构件为粗粒度,而SOA架构中的服务为细粒度,所以C/S/S模式更符合“良好的支持医疗保险的能力”E. 开发团队对SOA技术不熟F. SOA在“数据标注化要高,易于社区联网”方面难以达到要求问题2(10分)请完成下表中的空白部分(用+表示优、-表示差)需求B/SC/S/SC/S原因响应速度快(1)+(2)原因一:界面友好、操作方便(3)+(4)原因二:维护方便+(5)(6)原因三:易于系统集成(7)+

5、-原因四:支持远程医疗(8)(9)(10)原因五:问题3(10分)在用户需求中“易于修改、维护方便、易于系统集成”其实讲的都是软件的可维护性问题,这足以说明可维护性的重要。请说明可维护性由几个质量子特性组成,常见的软件维护有哪四种类型。试题分析【问题1】实际上是从另一个角度来分析SOA的优缺点。SOA有一系列显著优点:(1)明确定义的接口。服务请求者依赖于服务规约来调用服务,因此,服务定义必须长时间稳定,一旦公布,不能随意更改;服务的定义应尽可能明确,减少请求者的不适当使用;不要让请求者看到服务内部的私有数据。(2)自包含和模块化。服务封装了那些在业务上稳定、重复出现的活动和构件,实现服务的功

6、能实体是完全独立自主的,独立进行部署、版本控制、自我管理和恢复。(3)粗粒度。服务数量不应该太多,依靠消息交互而不是远程过程调用。通常消息量比较大,但是服务之间的交互频度较低。(4)松耦合。服务请求者可见的是服务的接口,其位置、实现技术、当前状态和私有数据等,对服务请求者而言是不可见的。(5)互操作性、兼容和策略声明。为了确保服务规约的全面和明确,策略成为一个越来越重要的方面。这可以是技术相关的内容,例如,一个服务对安全性方面的要求;也可以是与服务有关的语义方面的内容,例如,需要满足的费用或者服务级别方面的要求,这些策略对于服务在交互时是非常重要的。这些优点使得它具有良好的可维护性、易于集成、

7、标准化程度高(对外部系统能提供标准接口从而良好的支持外部系统)等,从这些方面来看SOA明显要优于其它几种架构,而SOA未被选中,其原因大多可能是由于项目团队对该技术不熟悉,如果引入这种新技术,有可能增加项目的实施成本和提高项目风险。【问题2】需求B/SC/S/SC/S说明响应速度快(1)-+(2)+C/S最优、C/S/S仅次、B/S最差界面友好、操作方便(3)-+(4)+C/S与C/S/S由于有客户端界面都比较友维护方便+(5)+(6)-C/S维护之后,更新困难,其它两者维护方便易于系统集成(7)+-C/S结构系统本身的耦合度较高,所以不易于集成。其它两者相对较好支持远程医疗(8)+(9)-(

8、10)-支持远程医疗说明需要连接互联网,而C/S与C/S/S一般只适合于局域网【问题3】可维护性由以下因素决定:(1)易分析性。软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。(2)易改变性。软件产品使指定的修改可以被实现的能力,实现包括编码、设计和文档的更改。如果软件由最终用户修改,那么易改变性可能会影响易操作性。(3)稳定性。软件产品避免由于软件修改而造成意外结果的能力。(4)易测试性。软件产品使已修改软件能被确认的能力。(5)维护性的依从性。软件产品遵循与维护性相关的标准或约定的能力。在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下四种:

9、(1)改正性维护。为了识别和纠正软件错误、改进软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护。(2)适应性维护。在使用过程中,外部环境(新的硬件、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化而去修改软件的过程就称为适应性维护。(3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。(4)预防性维护。这是指预先提高软件的可维护性、可

10、靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。练习三、 2013年6月13日,余额宝一期系统如期上线,业务量远超预期,给系统来了一个“下马威”。上线后数分钟内就达到了18万的用户。在2013年6月18日晚上,余额宝的用户量已突破了100万。2013年6月30日,余额宝用户数达到251.56万。在如此高速的业务增长压力之下,一期系统开始面对前所未有的直销和清算压力的冲击。这个新建的系统,是否能支撑起如此大的容量冲击?什么时候系统会达

11、到瓶颈?这些问题,悬而未解,如果依然使用IBM/Oracle/EMC的传统架构进行扩容,要达到预定目标,仅仅硬件设备采购及中间件的Licence费用就达到了数千万元人民币。这让公司陷入了深深的危机感中,再这样下去,一期系统将会很快面临瓶颈,成为业务增长的绊脚石。图1 一期系统构架图阿里金融云为二期系统提供了的云计算服务有ECS(弹性计算服务)、RDS(关系型数据库服务)和SLB(负载均衡服务)。这三个服务分别对应于一期系统中的HP和IBM服务器、Oracle数据库和硬件负载均衡设备,但这三种服务的单个实例的性能和容量,都比相应的物理设备小上一大截。图2 二期系统构架图2013年11月11日,余

12、额宝首次参加“双十一”大促,完成1679万笔赎回,1288万笔申购的清算工作,成功为639万用户正确分配收益。当天处理了61.25亿元的消费赎回,119.97亿元的转入申购。完成这些所有的清算工作,系统只用了46分钟。41、 问题1(11 分) 按照“蚁群战术”,需要将原有系统的业务逻辑拆分成多组小系统。如何进行系统拆分,难点在哪?答:系统水平拆分。按一个业务字段,如支付宝协议号作为拆分依据。对字段取哈希值以后根据拆分虚节点的个数进行求模。这样就可以简单地将所有请求拆分成多份。例如:在二期系统的拆分过程中,经过测算,需要使用50组业务节点,但在拆分时,考虑到扩展性,并未简单地拆分成50份,而是

13、拆分成1000份,然后每个节点处理20份数据。这样做的好处是将来如果系统遇到瓶颈,需要扩容时,不需要对拆分算法进行修改,而且数据平均迁移时只需要以库为级别进行,从而避免了拆表。难点:如何保证拆分尽可能平均和拆分后的扩展性。42、 问题2(9 分) 使用MySQL代替Oracle,原有的存储过程该怎么办呢?一些涉及多表join的操作在MySQL下执行效率较低该如何解决?如何将Oracle替换为MySQL请给出你的建议。 答:无论是单机性能还是功能,MySQL都无法与单机的Oracle匹敌。去Oracle。首先是将存储过程等MySQL不支持或支持不好的数据库逻辑上移到应用中。其次要将复杂度比较高的

14、SQL语句进行拆分,变成多条简单的SQL语句,从而提高MySQL的执行效率。也可以使用RDS提供的慢SQL查询功能,可以将整个系统执行效率比较慢的SQL呈现给用户,帮助用户优化SQL语句。43、问题3(10 分)一期系统部署在天弘基金在天津的数据中心,而二期系统却部署在阿里云在杭州的节点,如何做到无缝割接?数据迁移工程浩大,难度极高,请给出200字的建议。答:并且考虑到互联网用户的用户体验,一期系统和二期系统在上线期间,不允许出现业务中断,项目组必须在大数据量、异构环境、远程迁移等复杂环境下,实现无缝迁移。做到上线过程最终客户无感知。数据迁移是这个项目的重头戏,迁移过程中使用全量+增量+数据订正+并行运行检查等几个阶段完成。二期系统在生产环境部署完成后,将在异地的一期系统的全量数据打包,按照指定拆分算法拆成1000份以后,通过专线导入到二期系统中。导入以后,将异地的一期系统前置机转发服务打开,将所有实时请求转发到二期系统,这样两个系统同时处理请求。然后,在交易日之后,以一期系统为准,将二期系统中的数据进行订正和补全。这些所有的操作必须在24小时内完成是迁移成功的必要条件。数据迁移成功之后,两个系统实际上在并行运行。需要使用脚本每天对比两个系统中的数据,连续2周数据对比无误以后,由支付宝将请求地址从一期系统切换到二期系统,整个迁移才算完成。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号